Estou tentando descobrir por que o uso de processadores de 64 bits é algo tão importante em um iPhone. Entendo que haverá o dobro de registros para que o processador possa trabalhar com o dobro de dados, o que deve aumentar o desempenho.
No entanto, não vejo muitos telefones com mais de 4 GB de memória em breve. Parece um exagero e afetaria negativamente a vida da bateria.
Outro problema que vejo é que a maioria das variáveis agora precisa do dobro da memória. Isso criará problemas em um ambiente móvel com pequenas quantidades de memória.
Acredito que o pessoal da Apple seja inteligente e provavelmente tenha ótimas razões para fazer isso, só estou tentando entendê-las.
EDITAR
Não sei muito sobre GPUs, mas me disseram que, com registros de 64 bits, 2 pixels podem ser carregados em cada registro e as operações podem ser executadas individualmente. Existe uma vantagem gráfica em relação a 64 bits?
Respostas:
Na maioria das vezes, está lançando um grande número por aí, porque impressiona as massas. Números maiores são obviamente superiores; portanto, qualquer coisa com um processador de 64 bits é claramente melhor do que algo com um processador de 32 bits. O novo CPU é significativamente melhor que o seu antecessor, mas, à moda da Apple, eles não tentam fazer marketing com base em especificações técnicas - apenas dizem que o A7 de 64 bits é mais novo e melhor que o 32- bit A-6 . Olhando para as especificações técnicas, no entanto, você vê:
Além disso, existe o fato de que eles podem começar a implantar hoje o hardware de 64 bits (compatível com versões anteriores), antes de enfrentarmos o 'muro de 4 GB'. Em alguns anos, quando 64 bits se tornar uma necessidade, todo o hardware o suportará e não haverá necessidade de lidar com arquiteturas herdadas de 32 bits.
fonte
Não existe "parede de 4 GB" no ARMv7, pois muitos núcleos do ARMv7 suportam LPAE (Large Physical Address Extension), que é um conceito semelhante ao PAE no x86, exceto que o LPAE usa endereçamento de 40 bits. Ou seja, o ARMv7 equipado com LPAE pode endereçar até 1 TB de RAM .
Também é importante mencionar que os próximos núcleos do ARMv8, incluindo o A7, não usarão o endereçamento físico de 64 bits . Muito provavelmente o A7 usará o endereçamento físico de 40 ou 44 bits. Mais tarde, dando acesso a no máximo 16 TB de RAM.
Obviamente, com o LPAE no ARMv7 ou no modo AArch32 no ARMv8, os aplicativos ainda têm 32 bits; portanto, o próprio aplicativo pode acessar apenas 4 GB por vez. Mas acho que não seria um problema em dispositivos móveis tão cedo.
Você se preocupa com o fato de os aplicativos usarem mais memória (ponteiros de 64 bits), mas esse não será o caso nos aplicativos executados no modo de 32 bits (AArch32).
Por outro lado, o ARMv8 fornece outras melhorias arquiteturais sobre o ARMv7, que não estão relacionadas ao AArch64.
TL, DR: 64 testemunhas de A7 são truques de marketing. Mesmo em sistemas com mais de 4 GB de RAM, ele não oferece vantagem significativa sobre o LPAE para aplicativos de 32 bits. E os aplicativos de 64 bits não chegarão tão cedo.
Atualização: Foi confirmado pelo executivo de marketing da Qualcomm (atualmente ex-executivo, pois foi rebaixado por esses comentários ).
fonte
Concentrar-se apenas em
A7
estarARMv8
lá é um ganho óbvio. O ARM está reiniciando seu conjunto de instruções e arquitetura.Sendo compativel com versões anteriores
ARMv7
, a próxima versão também afirmaPortanto,
ARMv8
desafia asARMv7
diferenças arquiteturais, fornecendo uma interface mais limpa para os desenvolvedores do sistema, que provavelmente removeria os recursos herdados que levariam a uma plataforma melhor. O que significa que você deve esperar um melhor desempenho / energia em vez de um impacto negativo na bateria.Veja mais em ARM Architecture Preview .
fonte
A maior vantagem de 32 bits para processadores de 64 bits é o movimento da memória, e não o tamanho da memória. Embora seja verdade que 32 bits podem impor um limite de 4 GB ao acesso direto. Existem muitas soluções de hardware / software para contornar esse limite.
Os processadores de 64 bits podem simplesmente ler / gravar mais dados em uma única operação de processador. Ele permite que o código de montagem execute operações em blocos de 8 bytes. Isso pode ter uma grande vantagem de desempenho em relação aos processadores de 32 bits. Os cálculos de ponto flutuante são mais rápidos entre 64 e 32 e, quando a CPU usa registros duplos, pode operar em blocos de dados de 128 bits.
Os processadores de 64 bits também têm larguras de banda maiores na memória física. Se você possui uma câmera que grava 1080p e deseja editar esse vídeo. A realização de uma operação em um arquivo de vídeo de 1 GB será simplesmente mais rápida em 64 bits.
Tudo acima é verdade, mesmo que o Ghz do processador permaneça o mesmo.
Se 64 bits é tão bom, por que não 128 bits?
Quanto mais bits você adicionar ao pipeline de uma CPU, mais dados ela terá que mover. A CPU não pode restringir essa largura de banda para 16 ou 32. Portanto, isso cria um problema para os desenvolvedores de software. A maioria dos softwares (seu calendário, anotações, etc.) não depende de muitos dados e, como resultado, 128 bits envolveriam muita largura de banda desperdiçada. Isso pode começar a prejudicar o desempenho e a vida útil da bateria. Portanto, os fabricantes de CPU precisam encontrar um equilíbrio entre a largura de banda e os requisitos de software.
Estou surpreso que a Apple tenha lançado um novo processador 64 tão cedo na vida da computação móvel. Eu acho que a verdadeira motivação para isso são gráficos 3D. Com um processador de 64 bits, o telefone pode mover mais dados para a GPU rapidamente. Isso permitirá jogos 3D rápidos e gráficos mais impressionantes. Você realmente começará a ver as vantagens de 64 bits em 3D em tempo real, porque esse processo depende muito dos dados.
fonte
cache lines
por barramentos de memória que podem ter 16 bits de 32 bits ou provavelmente 64 bits. Isso não é necessário, corresponde ao tamanho da palavra nativa do arco da CPU. Você está certo de que o grande problema é mover dados, mas esse problema pertence a outro domínio de hardware / arquitetura. O FP é feito na FPU, que na verdade é bastante rápido e pode trabalhar com tamanhos de precisão simples ou duplos. O mesmo para decodificação de vídeo ou 3D, na verdade, eles têm todos os seus próprios hardwares dedicados que não são necessariamente de 64 bits.what every programmer should know about memory
disponível gratuitamente para o curioso desenvolvedor akkadia.org/drepper/cpumemory.pdfIsso facilita as coisas ao lidar com grandes números. Grandes números são extremamente importantes em criptografia (após o PRISM ter um telefone celular seguro se tornar muito importante) e em aplicações científicas.
fonte
Embora você não tenha problemas agora, se continuar com 32 bits, certamente haverá problemas no futuro próximo. A lição aprendida no mundo da área de trabalho é que uma transição será um processo demorado e doloroso. Então você deve começar com isso mais cedo ou mais tarde.
Foi até surpreendente para mim que os smartphones não eram de 64 bits desde o início.
fonte
Não acho que haja muitos benefícios técnicos. Primeiro, acho que faz mais sentido quando você considera o iPad (ele possui uma bateria maior para suportar mais RAM, maior consumo de energia pelo processador etc.). Segundo, observe os outros anúncios em andamento no momento. A AMD acaba de anunciar que enviará processadores ARM de 64 bits em 2014. Isso é basicamente a Apple mantendo a liderança do mercado diante do que está chegando aos tablets Android e Win8 de ponta.
fonte
No curto prazo, praticamente nada. Na verdade, é um passo atrás em alguns aspectos. Existem três vantagens principais que eu conheço.
fonte
Benchmarks.
Para algumas implementações capazes de ambos os modos arquiteturais de 32 x 64 bits com ISA x86, MIPS e ARM, o modo de 64 bits é comparado mais rapidamente em alguns aplicativos importantes. Um dos principais motivos é que os ISAs de 64 bits são mais recentes e os arquitetos do ISA sabiam mais sobre as estatísticas do aplicativo e como otimizar esse conjunto de comportamentos do aplicativo ao definir o ISA. E um novo processador ISA precisa ser à prova de futuro contra as necessidades de memória de aplicativos que estão crescendo no ritmo da lei de Moore e que já cresceram mais de um milhão de vezes na área de dispositivos móveis.
Portanto, o novo arm64 ISA provavelmente faz benchmarks mais rapidamente em qualquer código com desempenho restrito que você possa desenvolver (ele possui no meu código), além de permitir que ponteiros C mudos abordem os vastos espaços de endereço virtual que provavelmente se tornarão comuns daqui a uma década (ou seja, muito menos tempo do que o ARM ISA original de 32 bits já existia).
O desempenho em seu conjunto específico de aplicativos (medida para confirmar) é um ótimo motivo para preferir o arm64.
fonte
O 64 bits permite muito mais compartilhamento de código com as compilações de desktop do OSX (que são todas de 64 bits)
fonte