Qual é o benefício do A7 de 64 bits no iPhone


21

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?


2
Apenas como uma observação lateral - mais poder de processamento significa que os programadores podem se dar ao luxo de ser mais preguiçosos do que antes (menos otimizações), uma razão poderia ser incentivar os desenvolvedores de aplicativos.
Vlad Preda

3
@ Chris.Stover - Hoje não há uma vantagem. É claro que amanhã um aplicativo iOS poderá usar mais memória quando os telefones tiverem mais memória. Em apenas 5 anos, a capacidade de memória do telefone aumentou em pelo menos 200%. Se a tendência continuar, poderemos ver telefones de 6 GB a 8 GB em um período muito curto de tempo. A Apple também espera quando faz algo assim. Tudo se resume ao fato de o ARM provavelmente licenciar apenas projetos de 64 bits no futuro. Tudo se resume ao fato de o telefone agora ter mais registros, o que realmente o torna mais rápido. A especificação de 64 bits não é importante hoje.
Ramhound 11/09/13

1
Não é duas vezes, é ordens de magnitude maior. Os processadores de 32 bits podem endereçar apenas 4 GB de RAM. Os processadores de 64 bits podem endereçar cerca de 18 Exabytes, o que é três ordens de magnitude maior.
World Engineer

7
não mais 640k limite de memória
Reactgular

1
Suspeita-se que o Nexus 5 tenha 3 GB de RAM e será lançado no próximo mês. Eu não acho que 4 GB + está tão longe quanto você imagina.
Brendon

Respostas:


25

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ê:

  • Chipworks de 28nm vs 32nm
  • Processador gráfico integrado aprimorado
  • Arquitetura ARM v8 v. ARM v7 (adiciona funções SIMD; salta de 13 para 31 registros de uso geral)
  • Memória principal na matriz (ou seja, mais rápida)

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.


1
Na verdade, não consigo encontrar a fonte das informações nos artigos do wiki. Outros sites estão reportando dual core a 1,5 GHz. Uma página da wiki diz que o A7 tem octa-core de 1,7 GHz. Veja o seguinte: en.wikipedia.org/wiki/Apple_(system_on_chip) pdadb.net/index.php?m=pdacomparer&id1=4962&id2=4829
Chris.Stover

2
@ Chris.Stover mostra apenas que a Apple não vende hardware com especificações técnicas - eles apenas querem pressionar "Mais novo e melhor!" com a próxima geração, em vez de dizer por que o novo hardware é realmente melhor.
Sean McSomething

2
O ARM v7 já suporta linhas de endereço de 40 bits (1 TB de RAM), embora os aplicativos nessa arquitetura de 32 bits possam endereçar apenas 4 GB cada. O Arm v8 atualmente suporta aplicativos de 32 bits, portanto a compatibilidade com versões anteriores não é um problema.
gbjbaanb 11/09/2013

16

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 ).

"Eu sei que há muito barulho porque a Apple fez [64 bits] no seu A7", disse Anand Chandrasekher, vice-presidente sênior e diretor de marketing da Qualcomm, em entrevista. "Eu acho que eles estão fazendo um truque de marketing. Não há benefício zero que um consumidor obtenha com isso".

Um benefício de 64 bits é mais capacidade de endereçamento de memória, mas isso não é relevante nos smartphones ou tablets atuais, disse Chandrasekher. O iPhone 5s possui apenas 1 GB de DRAM.

"Predominantemente ... você precisa dela para endereçamento de memória além de 4 GB. É isso. Você realmente não precisa disso para desempenho, e os tipos de aplicativos nos quais os 64 bits são usados ​​na maioria são aplicativos grandes e de classe de servidor", disse. Chandrasekher, que anteriormente dirigia o grupo de plataformas móveis da Intel. ( fonte )


9

Concentrar-se apenas em A7estar ARMv8lá é 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 afirma

  • Novo conjunto de instruções (A64)
  • Manipulação de exceção revisada para exceções no estado AArch64
  • Menos registros e modos bancários

Portanto, ARMv8desafia as ARMv7diferenç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 .


+1. Gruber também tem uma boa descrição das vantagens do ARMv8 em daringfireball.net/2013/09/the_iphone_5s_and_5c . (Role para "O A7: ARMv8 e arquitetura de 64 bits.")
Josh Kelley

4

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.


4
Arquiteturas de CPU recentes / modernas são muito complicadas do que você descreve aqui. As CPUs movem os dados da memória em unidades chamadas cache linespor 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.
auselen 13/09/13

4
Existe um ótimo documento chamado what every programmer should know about memorydisponível gratuitamente para o curioso desenvolvedor akkadia.org/drepper/cpumemory.pdf
auselen

2

Isso 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.


1

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.


Testei isso convertendo meu aplicativo atual para 32 bits. Eu tive vários avisos, mas nenhum erro. Felizmente, a apple tinha uma correção sugerida para cada aviso, então apenas cliquei em cada aviso e pressione enter para aceitar a correção. Demorou cerca de 5 minutos e eu estava em funcionamento em 64 bits. Sem dor de cabeça, sem problemas ... até agora
Chris.Stover

0

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.


0

No curto prazo, praticamente nada. Na verdade, é um passo atrás em alguns aspectos. Existem três vantagens principais que eu conheço.

  1. 64 bits é muito melhor com números maiores, o que é um benefício para a criptografia. O que pode ser uma combinação interessante com o scanner de impressão digital no telefone.
  2. Novamente na mesma linha, as melhorias de 64 bits e grandes números ajudam na renderização da física. O que é útil, considerando a quantidade de física usada na interface do usuário do iOS7. Isso também beneficia os desenvolvedores de jogos, especialmente em itens com tela maior, como o iPad.
  3. Também adiciona um certo grau de compatibilidade com os telefones atuais usando isso.

0

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.


-4

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)


No entanto, atualmente todo o aplicativo ios deve manter a compatibilidade de 32 bits, portanto qualquer código somente de 64 bits deve ser convertido para 32 bits.
precisa saber é o seguinte

1
Mas eles são uma arquitetura completamente diferente (x86-64 vs. armv8) de qualquer maneira. Ganho zero com isso (o programa gravado de maneira correta em C / C ++ / ObjC funcionará em qualquer número de bits, mesmo que não seja um requisito).
Jan Hudec 13/09/13
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.