Como as CPUs são projetadas?

21

Eu comecei a brincar com a eletrônica há um tempo atrás e a criar portas lógicas simples usando transistores. Eu sei que os circuitos integrados modernos usam CMOS em vez da lógica transistor-transistor. Não consigo deixar de pensar em como as CPUs são projetadas.

O design ainda é feito em um nível (sub) de porta lógica, ou não há mais muita inovação nessa área e passamos para um nível mais alto de abstração? Entendo como uma ALU é criada, mas há muito mais nas CPUs do que isso.

De onde vêm os projetos dos bilhões de transistores? Eles são gerados principalmente por software ou ainda há muita otimização manual?

Overv
fonte
2
Eu diria Verilog ou VHDL.
avakar
3
Embora esses tópicos sejam fascinantes, parece que estamos muito longe de "perguntas práticas e respondíveis com base nos problemas reais que você enfrenta" . Também posso imaginar um livro inteiro que responda a essa pergunta.
Martin
1
@ Overv, ainda há muito trabalho em que você assegura que os blocos de base que você está conectando sejam otimizados no nível do portão, então basta conectar esses blocos otimizados de maneira otimizada!
Kortuk
13
Votei em reabrir - embora eu concorde que uma resposta completa dizendo "tudo o que você precisa saber para construir uma CPU inteira do zero" não seja uma boa combinação para este site, acho que uma breve visão geral e alguns links seriam uma boa resposta aqui.
Davidcary 30/03/12
1
Estou surpreso que não tenhamos pessoas que trabalhem no setor de semicondutores que possam comentar sobre projetos ASIC mais complexos aqui. Como não sou especialista, isso é apenas algumas das coisas que ouvi: existe muito licenciamento nos núcleos IP e o campo pelo qual tudo é montado é chamado VLSI. Acredito que o design é feito em VHDL / Verilog com ferramentas de síntese altamente otimizadas - como isso se reduz ao nível de wafer e fabricado está além do meu conhecimento.
Jon G

Respostas:

10

É muito provável que CPU e SoC sejam usados ​​por linguagens de descrição de hardware como Verilog e VHDL (dois principais players).

Esses idiomas permitem diferentes níveis de abstração. No VHDL, você pode definir blocos lógicos como entidades; contém entradas e portas de saída. Dentro do bloco, você pode definir a lógica necessária. Digamos que você defina um bloco com a entrada A, entrada B e saída C. Você poderia escrever facilmente C = A e B; e basicamente criou um bloco de porta AND. Este é possivelmente o bloco mais simples que você pode imaginar.

Os sistemas digitais geralmente são projetados com uma forte hierarquia. Pode-se iniciar o 'nível superior' com as principais funções que uma CPU requer: memória do processador (múltiplo?), PCI-express e outros barramentos. Nesse nível, barramentos e sinais de comunicação entre a memória e o processador já podem estar definidos.

Quando você desce um nível, ele define o funcionamento interno de fazer algo "funcionar". Como exemplo de um microcontrolador, ele pode conter uma interface UART. A lógica real necessária para criar um UART funcional é definida um nível abaixo. Aqui, muitas outras lógicas podem ser necessárias para gerar e dividir o relógio necessário, dados do buffer (buffers FIFO), relatar dados para a CPU (algum tipo de barramento sistema).

O interessante do VHDL e do design digital é a reutilização de blocos. Você pode, por exemplo, copiar e colar o bloco UART no seu nível superior para criar 2 UARTs (bem, talvez não seja tão fácil assim, apenas se o bloco UART for capaz de ser tratado por qualquer pessoa!).

Esse design não é qualquer tipo de design no nível do portão. O VHDL também pode ser 'compilado' de forma a ser finalmente traduzido para portas lógicas. Uma máquina pode otimizar isso muito melhor do que um humano poderia (e mais rápido também). Por exemplo; as partes internas do bloco A requerem um inversor antes de emitir o sinal. O bloco B pega esse sinal de saída e o inverte mais uma vez. Bem, 2 inversores em série não fazem muito certo? Correto, para que você também possa deixá-los de fora. No entanto, no design de 'nível superior', você não poderá identificar os dois inversores em série. Você apenas vê duas portas conectadas. Um compilador pode otimizar isso muito mais rápido que um humano.

Basicamente, o que o design do sistema digital contém é a descrição de como a lógica deve 'se comportar', e o computador é usado para descobrir qual é a maneira mais eficiente de definir as portas lógicas individuais.

Hans
fonte
Assim como ainda existe um local para código de montagem no software, o design de hardware de nível inferior pode ser econômico em alguns casos. Por exemplo, as células SRAM costumam ser tão comumente usadas que projetos altamente otimizados são desenvolvidos para otimizar densidade (cache de último nível), latência de acesso (cache L1) ou outras características, especialmente em um fabricante de design integrado como a Intel.
Paul A. Clayton
@Paul, a pergunta intrigante que levanta para mim é quanto a Intel investe na otimização manual de seus projetos em comparação à gravação de passes de otimização de software que atingem as mesmas melhorias de desempenho de forma dinâmica e mais geral.
Ponkadoodle
6

Permitam-me simplificar e expandir meus comentários anteriores e conectar os pontos para aqueles que parecem precisar.

O design ainda é feito no nível da (sub) porta lógica?

  • SIM

O design é feito em vários níveis, o nível sub-lógico é sempre diferente . Cada redução de fabricação exige a mais brilhante experiência em física, química e litografia, à medida que a estrutura de um transistor muda e a geometria também muda para compensar as compensações, à medida que diminui para níveis atômicos e custa ~ bilhões de dólares a cada passo binário. Tamanho. Alcançar a geometria de 14nm é uma tarefa massiva em P&D, controle e gerenciamento de processos e isso ainda é um eufemismo!insira a descrição da imagem aqui

Por exemplo, as habilidades de trabalho necessárias para fazer isso incluem; - "FET, layouts personalizados no nível de célula e bloco, plantas baixas no nível do FUB, geração de visualização abstrata, extração de RC e verificação e depuração do esquema ao layout usando fases do desenvolvimento do projeto físico, incluindo extração parasitária, tempo estático, carga de arame modelos, geração de relógio, edição de polígono personalizada, algoritmos de localização automática e rota, planejamento de piso, montagem com chip completo, empacotamento e verificação. "*

- não há mais muita inovação nessa área? - ERRADO - Há uma inovação significativa e fortemente financiada na Física de Semicondutores, a julgar pela Lei de Moore e pelo número de patentes, ela nunca para. As economias de energia, calor e, portanto, quadruplicar a capacidade são recompensadas a cada vez.

- passamos a um nível mais alto de abstração? - Nunca parou de se mover. - Com a demanda por mais núcleos, fazendo mais de uma instrução como as CPUs ARM RISC, µCs ou MCU's mais poderosos, RAM inteligente com DDR4 que possui ECC por padrão e setores como flash com bits prioritários para busca urgente de memória. - A evolução da CPU e as mudanças arquiteturais nunca param. insira a descrição da imagem aqui

Deixe-me dar uma dica.Vá fazer uma pesquisa de emprego na Intel, AMD, TI ou AD for Engineers e consulte as descrições de cargo.

- De onde vêm os projetos dos bilhões de transistores? - Ele veio da adição de mais blocos de 64 bits de hardware. mas agora com falhas nos nanotubos, o pensamento precisa mudar da abordagem de cima para baixo dos blocos para a abordagem de baixo para cima dos nanotubos para fazê-lo funcionar.

  • Eles são gerados principalmente por software? com a língua firmemente plantada na bochecha ...
  • Na verdade, eles ainda estão extraindo projetos da Area51 de naves espaciais e ainda têm um caminho a percorrer ... até estarmos totalmente em conformidade com o tubo nano-nano. Um engenheiro entra na biblioteca e diz à nVidia que gostaríamos que você se juntasse a nós neste chip e se tornasse uma parte, que entra em um macro-bloco . O layout pode ser replicado como o Formigas no Toystory, mas o controle explícito de todas as conexões deve ser encaminhado / retirado manualmente, além de usar o DRC e o roteamento automático para comparação. Sim As ferramentas de automação estão sendo constantemente atualizadas para remover a duplicação e o desperdício de tempo.

    - ainda há muita otimização manual?

  • Considerando que uma companhia aérea economizou dinheiro suficiente para pagar seu salário, removendo apenas uma azeitona do jantar na Primeira Classe, a Intel procurará maneiras de remover o maior número possível de átomos dentro do prazo. Qualquer excesso de capacitância significa desperdício de calor, desempenho e opa também mais ruído, não tão rápido ...

Mas realmente os processadores crescem como Tóquio, não é da noite para o dia, mas dezenas de milhões vivem lá agora com melhorias constantes. Não aprendi a desenhar na Univ. mas, ao ler e tentar entender como as coisas funcionam, consegui acelerar a indústria rapidamente. Eu tenho 10 anos de experiência nos meus primeiros 5 anos no setor aeroespacial, design de instrumentos nucleares, design SCADA, monitoramento de processos, design de antenas, design e depuração automatizada de estações meteorológicas, VLF Rx's da PLL da OCXO, controle remoto de 2 vias de foguetes Black Brandt ... e esse foi apenas o meu primeiro emprego. Eu não tinha ideia do que poderia fazer.

Não se preocupe com bilhões de transistores ou tenha medo do que aprender ou do quanto você precisa saber. Apenas siga sua paixão e leia os periódicos comerciais entre o sono e você não ficará tão verde no trabalho e não parecerá mais trabalhar.

Lembro-me de ter que projetar um 741 "como" Op Amp como parte de um exame uma vez, em 20 minutos. Eu nunca o usei de verdade, mas reconheço bem os ótimos designs. Mas então ele tinha apenas 20 transistores.insira a descrição da imagem aqui

Mas como projetar uma CPU deve começar com uma Especificação, a saber; Por que projetar uma CPU e fazer benchmarks mensuráveis ​​para alcançar tais como; - Instruções de macro por segundo (MIPS) (mais importantes que o clock da CPU), por exemplo; - O chip Itanium da Intel é baseado no que eles chamam de design EPIC (Explicitly Parallel Instruction Computing). - Design de CPU patenteado pela Transmeta com microprocessadores de codificação de palavras com instruções muito longas (VLIWCMM). Eles processaram a Intel em 2006, fecharam as lojas e se estabeleceram em cerca de US $ 200 milhões em 2007. - Desempenho por watt (PPW), quando custos de energia> custo do chip (para servidores) - Ponto flutuante de operações por segundo (FLOPS) para desempenho matemático.

Existem muito mais métricas, mas nunca baseie a qualidade de design de uma CPU na velocidade de GHz (veja o mito)

Então, quais ferramentas de dia são necessárias para projetar CPUs? A lista não se encaixaria nesta página, do design físico de nível atômico ao design EMC físico EM / RF de malha dinâmica e ao engenheiro de teste de verificação de design de front-end, onde as habilidades necessárias incluem; - Simulação RTL de front-end - conhecimento da arquitetura de IA e de computador e design no nível do sistema - Verificação lógica e simulação lógica usando VHDL ou Verilog. - Programação orientada a objetos e vários protocolos de CPU, barramento / interconexão e coerência.

Tony Stewart Sunnyskyguy EE75
fonte
6
"Verilog" e "VHDL" apenas arranham a superfície de todas essas perguntas ingênuas e inspiradoras. O mundo real é muito mais analógico que digital do que você imagina.
Tony Stewart Sunnyskyguy EE75
Você tem uma explicação do circuito Op Amp em qualquer lugar. Tudo o que posso ver é um OTA em cascata, o resto é circuito Voodoo.
CyberMen
3
Uau. Pena que é principalmente irrelevante para a pergunta.
Dave Tweed
3
Devo dizer que essa foi uma leitura muito divertida. A mudança gradual do escritor para brincar com a pergunta original para ele, tentando fazer explodir a mente do leitor com números e vocabulário e, em seguida, fornecer alguma ajuda, seguida por uma reminiscência de seus dias de estudante com apenas uma pitada de arrogância e finalmente se mover para o clichê "é tão complicado que eu nunca poderia resumir aqui". Absolutamente lindo.
Ponkadoodle
E mesmo que esse comentário meu tenha sido um tanto satírico, espero que você o leve de ânimo leve. Sinceramente, gostei da leitura.
Ponkadoodle
2

Visão geral da AMD sobre o design da CPU

Versão da Intel

Nenhuma dessas informações fornece muitos detalhes, mas é interessante. Não aceite isso como resposta. Outros consideraram sua pergunta em detalhes e se esforçaram mais para tentar responder em detalhes.

rdivilbiss
fonte
Eu já tinha visto a página do TomsHardware antes. No entanto, ele explica como processadores são fabricados , não como eles são projetados
stevenvh