Por que precisamos de tantos transistores em um chip e como eles são gerenciados?

7

Meu conhecimento é muito vago, pois tudo o que temos são diagramas visuais etc., mas temos endereços e registros de memória, a ULA sendo o coração (aparentemente). CPUs de núcleo único processam uma instrução de cada vez, AFAIK e multi-core têm paralelismo até certo ponto. Então, de onde vêm os milhões de transistores e como os 32 registros gerenciam tudo. Temos FPUs, eu sei, quantos transistores eles usariam aproximadamente. Qualquer maneira de obter uma idéia bastante simples do que a maioria dos transistores faz, por que mais significa mais rápido e como os registros 'gerenciam' tudo.

user12979
fonte
5
Eu acho que isso está abaixo da resolução do CS; talvez essa pergunta fosse melhor para a Engenharia Elétrica ? ( Esta questão pode ser útil.)
Raphael
2
Por que você diz que os registros gerenciam a CPU? Parece como dizer que um pedaço de papel na minha mesa me administra; não é o contrário?
precisa saber é o seguinte
bastante semelhante a esta pergunta como um computador funciona . a questão parece ser sobre como os diferentes transistores são alocados em diferentes fns da CPU. na verdade, a ALU mencionada tem uma parte significativa ... quanto à última pergunta "como os registros 'gerenciam' tudo" não é muito significativa, os registros não "gerenciam" nada, é mais por exemplo que um compilador "gerencia" o uso de registros por meio de otimização etc .... pode-se escrever código de trabalho que quase não usa registradores.
vzn
4
Por que mais transistores = mais poder de processamento? na Engenharia Elétrica SE pode ser do seu interesse. (Estou um pouco orgulhoso de minha resposta lá, mas pode ser um pouco técnico.)
Paul A. Clayton

Respostas:

14

Esta é uma grande questão. Para responder completamente, seria necessário muito mais espaço do que você gostaria de ler (sem mencionar que suspeito que exista um limite no tamanho de qualquer resposta SE), mas tentarei dar uma idéia do que está acontecendo na CPU.

Primeiro, um transistor (quando usado em uma CPU) é essencialmente um interruptor, como um interruptor de luz, exceto que você não precisa ativá-lo ou desativá-lo manualmente. Pelo contrário, é controlado por uma corrente elétrica. A coisa mais importante a entender é que os computadores modernos são dispositivos de dois estados: a única coisa que realmente importa é se um fio tem uma corrente ou não.

Em seguida, inicia-se o processo de design do chip, por exemplo, decidindo como um número inteiro (ou outros dados) será representado. Para números inteiros, digamos, os projetistas de chips geralmente decidem agrupando os fios em uma unidade lógica, portanto, com uma coleção de quatro fios, seria possível representar 16 padrões possíveis:0000,0001,1111, onde um padrão como 1101representaria uma tensão nos fios 1, 2 e 4 e nenhuma tensão no fio 3 e essa coleção pode ser interpretada como o número 13. Nesse exemplo, teríamos o que é conhecido como chip de 4 bits . Um computador moderno teria 32 ou 64 fios tratados como uma unidade.

Acontece que, com uma coleção de switches adequadamente conectados (também conhecidos como transistores), é possível fazer coisas como adicionar dois números, comparar dois números por igualdade, decidir se um número é zero ou não, e assim por diante. Freqüentemente, todas essas operações são realizadas de uma só vez, simultaneamente, e a relevante é escolhida pela instrução atual, que determina qual dos vários resultados usar e para onde esse resultado será enviado. Todo esse controle de tráfego também é controlado por comutadores, dependendo da instrução atual (no programa em execução). Além disso, coisas como memória e registros que armazenam informações também podem ser implementadas por essas opções.

Para ter uma idéia do número de transistores usados, um circuito somador em um ncomputador de bits pode exigir, digamos, 20n transistores, um nregistro de bits pode exigir 50.ntransistores e o circuito de controle de tráfego para enviar os resultados ao local certo podem exigir várias centenas a mais para cada bit. Não é difícil imaginar que, com muita funcionalidade e um amplo caminho de dados (o número de fios agrupados), uma CPU moderna possa facilmente levar milhões de transistores.

Quanto ao porquê "mais [transistores] significa mais rápido", a resposta é "não necessariamente", mas, em geral, dobrar a largura do caminho de dados, digamos de 32 bits para 64, oferece a capacidade de manipular números maiores em um único instruções ao custo de exigir mais transistores.

Finalmente, os registros realmente não "gerenciam tudo". Um registro é simplesmente uma unidade de armazenamento muito rápida, capaz de armazenar e recuperar informações muito mais rapidamente do que, digamos, a memória RAM. Por esse motivo, coisas como a instrução atual são frequentemente armazenadas em um registro especial (chamado de registro de instruções), simplesmente porque o acesso aos seus bits é muito rápido. A instrução atual realmente "gerencia tudo" e é armazenada em um registro de velocidade.

Essa é uma explicação muito abreviada - deixei de fora uma tonelada de detalhes e encaminhei muitas questões técnicas, mas espero que pelo menos lhe dê uma idéia do que acontece em um computador moderno. [entrando no modo pato e capa na expectativa de uivos de reclamações de engenheiros de computação]

Rick Decker
fonte
3
O "mais meios mais rápidos" veio dos muitos anos em que a Lei de Moore (escala de transistor) e escala de frequência estavam acontecendo quase na mesma taxa. Na mente de muitas pessoas, elas ainda estão um pouco confusas. Outra coisa a mencionar: há uma impressão aqui de que tudo é linear; no entanto, há vários lugares onde o número de transistores será polinomial ou superior no número de estágios, elementos ou fios.
Matthew G.
Esta é uma ótima resposta curta. Se você quiser a resposta longa e detalhada de um autor extremamente talentoso e famoso guru de programação do Windows, recomendo o livro Code, de Charles Petzold. Eu dei 7 ou 8 cópias deste livro e recomendo a quem quiser saber como os computadores modernos funcionam. Ele começa com blocos de construção lógicos simples que podem ser construídos a partir de relés elétricos e segue a progressão até uma CPU simples com acesso à memória. A cada capítulo em desenvolvimento, você vê para onde vão todos os transistores. Seu livro web page: charlespetzold.com/code
inflector
6

Normalmente, um bit de memória cache requer 6 transistores (alguns designs usam mais ou menos, com diferentes trocas; consulte http://en.wikipedia.org/wiki/Static_random-access_memory ), portanto, CPUs modernas com caches grandes gastam muitos transistores há.

As CPUs modernas também executam várias instruções simultaneamente, portanto, existem várias ALUs (unidades de execução) no chip, cada uma das quais é bastante complexa.

Certos algoritmos matemáticos na FPU podem ser acelerados pela pesquisa de tabela mais interpolação; a instrução recíproca de raiz quadrada nas unidades Intel SSE, por exemplo, é implementada com uma tabela que fornece precisão de 12 bits quase instantaneamente; essa tabela é essencialmente um pedaço de ROM no chip - ou seja, ainda mais transistores.

Russell Borogove
fonte
1

existem várias perguntas aqui e focaremos apenas uma delas. os transistores em um chip são "aproximadamente" proporcionais à área de superfície usada para os transistores. para que você possa encontrar diagramas de um chip que mostram os limites gráficos de diferentes subsistemas e simplesmente usar a fórmula de que o número de transistores em uma região é igual à proporção da área dessa região em relação à área total vezes o número total de transistores no chip.

exemplo neste artigo:

a figura 1 mostra os limites gráficos no chip. veja a figura 4, que mostra a área e o número de dispositivos em milhões para as funções separadas da CPU. a exceção é que parece que os circuitos de cache são muito densos e têm muito mais transistores por área, parece ter 3x os transistores em 2/3 da área. aparentemente neste chip se parece com os transistores dedicados ao cache rápido.

vzn
fonte
-2

A resposta simples é que os transistores são os componentes básicos de portas lógicas, registradores e dispositivos de armazenamento. suas várias configurações possibilitam ou não e flip-flops que compreendem os registradores e processadores de ordem superior. Procure o 7404 (não portão) 7408 (e) e o 7432 (ou portões). o 7474 básico e o 74279 são configurações de armazenamento. Não tenho certeza se o semicondutor nacional ainda publica o esquema real, mas os instrumentos do texas o fazem.

SkipBerne
fonte
3
Você está desenterrando muitas perguntas antigas, postando respostas que parecem não estar adicionando muito (ou de uma forma muito convincente). Antes de responder, considere cuidadosamente se você pode realmente adicionar algo que as respostas anteriores falham em fornecer e tenha o cuidado de apresentá-lo de forma digerível, seguindo os padrões científicos (referências, provas, ...)
Raphael
Eu não vi nenhuma resposta real do circuito para as perguntas. Eu acho que clareza e simplicidade contribuem para a discussão. não estou realmente interessado em sua opinião sobre minhas contribuições ou sobre a classificação de minhas respostas. na verdade, acho sua resposta um tanto esnobe e condescendente. talvez você deva seguir as mesmas expectativas e parar de tentar controlar os outros à liberdade de expressão.
precisa saber é o seguinte
1) Como moderador, estou avisando que você siga os nossos padrões para ajudá-lo a evitar decepções. 2) Não me importo com a sua opinião sobre minhas declarações. 3) A liberdade de expressão não se aplica aqui. Este é um site de propriedade de uma empresa, com uma comunidade sob mandato para moderar.
Raphael
usando este caso no ponto, apresentei referências; na verdade, citei a BÍBLIA da lógica TTL escrita pela TI. Eu pensei que o indivíduo que publicou esta pergunta não era claro sobre a eletrônica lógica e precisava de alguns para apontá-los para o básico. que tal isso não contribui para a discussão?
SkipBerne
2
Por um lado, não vejo nenhuma referência que possa ser reconhecida como tal em sua postagem. Então, você parece apenas dizer "eles são os blocos básicos de construção das portas lógicas, das quais as CPUs são construídas". Outras respostas já dizem o mesmo de uma maneira muito mais elaborada e explicativa.
Raphael