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?
Respostas:
É 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.
fonte
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?
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!
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.
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.
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?
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.
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.
fonte
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.
fonte