- O Pentium da Intel, lançado em 1993, é um chip complexo com 3,3 milhões de transistores, mas, ao contrário dos chips modernos, seus transistores podem ser vistos ao microscópio, permitindo acompanhar diretamente a implementação interna das portas
- O projeto com células padrão transforma circuitos de baixo nível, como portas e flip-flops, em células reutilizáveis, organizadas em linhas para se adequar ao posicionamento e roteamento automáticos
- No die do Pentium, a área de células padrão aparece como faixas regulares, enquanto blocos otimizados manualmente, como cache, datapath e ROM de microcódigo, se destacam por serem mais densos e escuros
- O Pentium da família P54C usa processo de 600 nm, 3,3 V e 4 camadas de interconexão metálica, além de empregar amplamente circuitos BiCMOS, que reduziram o atraso de sinal em até 35%
- Inversores, NAND, OR-NAND, latch, flip-flop e buffer BiCMOS são todos combinações de pequenos circuitos de transistores, e o Pentium é um exemplo que permite observar o projeto digital com células padrão e BiCMOS dos anos 1990
Estrutura de células padrão visível no die do Pentium
- A Intel lançou o processador Pentium em 1993 e, depois, a linha continuou com Pentium Pro, Pentium II e outros, mantendo-se como marca de processadores de alto desempenho até os processadores Core substituírem a linha principal em 2006
- O Pentium original é um chip complexo com 3,3 milhões de transistores, mas, ao contrário dos chips modernos, seus transistores podem ser vistos ao microscópio
- Em fotos do die com as camadas metálicas removidas, o silício e os transistores individuais ficam expostos
- Os circuitos de células padrão são organizados em linhas uniformes, formando um padrão listrado
- Blocos funcionais otimizados manualmente aparecem mais densos, estruturados e escuros
- Exemplos incluem o cache à esquerda, o datapath no centro e a ROM de microcódigo à direita
Do layout manual às células padrão
- Os processadores do início dos anos 1970 normalmente tinham seus transistores posicionados manualmente, um a um
- Esse método podia alcançar alta densidade, mas era lento, difícil e sujeito a muitos erros
- Federico Faggin, projetista do Z80, teve de apagar três semanas de trabalho e recomeçar porque os últimos transistores não cabiam
- Células padrão são uma abordagem que cria uma biblioteca de células reutilizáveis para implementar cada porta, flip-flop e componente de baixo nível
- Cada célula tem altura fixa e largura variável conforme a necessidade
- As células podem ser dispostas em linhas, o que favorece a automação
- Linhas de células padrão em CMOS geralmente parecem duas faixas próximas
- Uma é a região dos transistores NMOS
- A outra é a região dos transistores PMOS
- O espaço entre as linhas é usado como canal de roteamento para a fiação entre células
- Alimentação e terra ficam distribuídos ao longo da parte superior e inferior de cada linha
O que faz o posicionamento e roteamento automáticos
- A estrutura fixa das células padrão facilita para o software de posicionamento e roteamento automáticos criar o layout
- A etapa de posicionamento busca uma disposição das células que reduza a distância entre células conectadas
- Interconexões longas desperdiçam área do die
- Caminhos longos aumentam a capacitância e tornam os sinais mais lentos
- A etapa de roteamento conecta as células posicionadas por meio da interconexão metálica real
- Tanto o posicionamento quanto o roteamento são problemas de otimização NP-complete
- A Intel começou a usar técnicas de posicionamento e roteamento automáticos a partir do processador 386
- O posicionamento era feito com o programa Timberwolf, desenvolvido por um pós-graduando da Universidade de Berkeley
- O roteamento usava software personalizado da Intel baseado em um método heurístico iterativo
- O projeto com células padrão ainda é usado em processadores atuais, mas o software evoluiu muito
Estrutura básica CMOS do Pentium
- Processadores modernos usam circuitos CMOS, que combinam dois tipos de transistor: NMOS e PMOS
- O transistor NMOS liga quando a gate está em nível alto, e o PMOS liga quando a gate está em nível baixo
- O NMOS é adequado para puxar a saída para baixa tensão
- O PMOS é adequado para puxar a saída para alta tensão
- O “C” de CMOS significa Complementary, porque NMOS e PMOS trabalham em conjunto para elevar ou reduzir a saída
- NMOS e PMOS não são totalmente simétricos por causa das propriedades físicas dos semicondutores, e o PMOS normalmente precisa ser maior que o NMOS
- Essa diferença ajuda a distinguir PMOS e NMOS nas fotos do die
Interconexão formada por 4 camadas metálicas
- A versão P54C do Pentium usa 4 camadas de interconexão metálica
- Os primeiros Pentium usavam 3 camadas metálicas, mas o die P54C passou para um processo de 4 camadas
- Na superfície do silício há regiões dopadas, e acima delas se formam interconexões de polissilício
- Quando o polissilício cruza o silício dopado, forma a gate do transistor
- O polissilício também é usado para interconexões de curta distância
- As camadas metálicas são numeradas de M1 a M4
- M1 é a camada metálica mais inferior
- M4 é a camada mais superior e mais espessa, usada principalmente para alimentação, terra e sinal de clock
- As conexões entre camadas são feitas por vias com plugs de tungstênio
- Apenas a M1 se conecta diretamente ao silício ou ao polissilício por meio de contacts
- As camadas de interconexão costumam alternar localmente entre direções horizontal e vertical para permitir o cruzamento dos sinais
- O software de posicionamento e roteamento automáticos precisa gerar milhões de caminhos complexos de interconexão com a maior densidade possível
Inversores e portas NAND
- Um inversor CMOS é composto por 1 PMOS e 1 NMOS
- Se a entrada é 1, o NMOS liga e a saída cai para 0
- Se a entrada é 0, o PMOS liga e a saída sobe para 1
- O inversor de célula padrão do Pentium tem a mesma estrutura de dois transistores
- A entrada é ligada às gates de polissilício dos dois transistores
- A interconexão metálica de saída é ligada aos dois transistores
- O well N onde fica o PMOS é mantido em potencial positivo por um well tap conectado a +3,3 V
- O Pentium foi fabricado em processo de 600 nm, e a largura das linhas de polissilício também é de cerca de 600 nm
- Isso é semelhante ao comprimento de onda da luz visível, de 400 a 700 nm, por isso as fotos ao microscópio parecem um pouco desfocadas
- Uma porta NAND CMOS é composta por 2 PMOS e 2 NMOS
- Quando as duas entradas estão altas, os dois NMOS ligam e a saída fica baixa
- Se qualquer uma das entradas estiver baixa, o PMOS liga e a saída fica alta
- Na célula padrão NAND do Pentium, duas linhas de polissilício cruzam o silício dopado e formam quatro transistores
- No lado PMOS, a saída sai pelo centro, formando a conexão em paralelo
- No lado NMOS, a saída sai pela direita, formando a conexão em série
- Mesmo sendo a mesma célula padrão NAND, o roteamento detalhado e o comprimento do polissilício variam conforme a posição das conexões de entrada, saída e alimentação
- A célula padrão não é uma simples cópia, mas ajustada para cada posição
- Células adjacentes são compactadas para que os transistores PMOS fiquem encostados, aumentando um pouco a densidade
Portas compostas e latch
- A biblioteca de células padrão inclui não apenas portas simples, mas também portas compostas
- A porta OR-NAND de 5 entradas calcula
~((A+B+C+D)⋅E)- No circuito NMOS,
AaDestão em paralelo eEestá em série - No circuito PMOS, ocorre o inverso:
AaDestão em série eEem paralelo - Para fornecer corrente suficiente, o lado PMOS tem dois conjuntos dos transistores
AaD, ficando muito maior que o bloco NMOS
- No circuito NMOS,
- O latch é um dos componentes centrais do circuito do Pentium e é um circuito de armazenamento de 1 bit controlado por clock
- Quando o clock está alto, ele fica transparente, e a entrada aparece imediatamente na saída
- Quando o clock está baixo, ele mantém o valor anterior
- O latch é implementado com um loop de realimentação que leva a saída de volta para a entrada
- No centro há um multiplexador que escolhe entre a saída anterior e a nova entrada
- Inversores amplificam o sinal de realimentação para que ele não enfraqueça e para que a saída possa acionar outros circuitos
Multiplexador com transistores de passagem
- O multiplexador dentro do latch usa transistores de passagem
- Em vez de puxar a saída para alimentação ou terra como uma porta lógica comum, ele deixa o sinal de entrada passar para a saída
- Quando o sinal de select está baixo, o par de transistores ligado à primeira entrada conduz, e a segunda entrada é bloqueada
- Quando o sinal de select está alto, o par de transistores ligado à segunda entrada conduz, e a primeira entrada é bloqueada
- A polaridade das gates no multiplexador é diferente da de portas lógicas comuns
- Em portas lógicas, usa-se sinal de gate com a mesma polaridade para que NMOS ou PMOS conduza e puxe a saída para baixo ou para cima
- No multiplexador, o PMOS e o NMOS correspondentes precisam conduzir ao mesmo tempo para deixar o sinal passar, então são necessários sinais de gate com polaridades opostas
- Por isso, o multiplexador inclui um inversor que gera o sinal complementar necessário
Implementação do flip-flop
- O Pentium usa flip-flops extensivamente
- O flip-flop é parecido com o latch, mas responde à borda do clock, e não ao nível do clock
- Ele armazena a entrada no instante em que o clock muda de baixo para alto
- E fornece esse valor na saída
- Por essa diferença, o flip-flop é mais útil em contadores, máquinas de estado e outros circuitos sincronizados
- O flip-flop do Pentium é formado por dois latches
- O primary latch deixa o valor passar quando o clock está baixo e o mantém quando o clock está alto
- O secondary latch tem comportamento de clock oposto
- Quando o clock muda de baixo para alto, o primary latch para de se atualizar ao mesmo tempo em que o secondary latch deixa esse valor passar
- Algumas variações possuem entrada de set ou reset com pequenas mudanças lógicas
- Set e reset contornam o clock e forçam a saída ao estado desejado
- Isso é útil para inicializar flip-flops com os valores corretos quando o processador é iniciado
Buffer BiCMOS e a característica do Pentium nos anos 1990
- O Pentium foi fabricado não só com CMOS, mas também com processo BiCMOS
- Algumas etapas extras são adicionadas ao processo normal de fabricação CMOS para criar transistores bipolares NPN e PNP
- Circuitos BiCMOS foram amplamente usados no Pentium e reduziram o atraso de sinal em até 35%
- A Intel também usou BiCMOS no Pentium Pro, Pentium II, Pentium III e Xeon, mas não no Pentium MMX
- À medida que a tensão dos chips caiu, as vantagens dos transistores bipolares também diminuíram, e o BiCMOS acabou deixando de ser usado em circuitos digitais
- O buffer BiCMOS de célula padrão do Pentium é mais complexo que um buffer CMOS
- 2 inversores
- transistor NPN de pull-up
- transistor NMOS de pull-down
- transistor PMOS de pull-up
- Nas fotos do die, o transistor NPN aparece com estrutura circular, ao contrário da estrutura linear de NMOS e PMOS, e é muito maior
- A interconexão metálica de saída também é mais espessa que a de sinais comuns, indicando maior capacidade de condução de corrente
Diferenças observadas na versão P54C
- A análise foi feita sobre a versão P54C do Pentium original
- O primeiro produto Pentium, o 80501, codinome P5, operava a 60 ou 66 MHz, usava 5 V, processo de 800 nm e tinha 3,1 milhões de transistores
- A Intel melhorou os problemas de consumo de energia e criou o 80502, codinome P54C
- Usa 3,3 V
- Opera entre 75 e 120 MHz
- O suporte a multiprocessamento foi adicionado, aumentando a contagem para 3,3 milhões de transistores
- Tem um circuito de clock mais avançado, capaz de elevar o clock interno até 100 MHz enquanto mantém o barramento externo em 50 a 66 MHz
- Usa processo de 600 nm e 4 camadas metálicas
- O die do P54C é visualmente quase igual ao do P5, mas há lógica de multiprocessamento adicionada na parte inferior e o circuito de clock na parte superior
- As células padrão provavelmente são semelhantes em outras versões do Pentium original
Circuitos simples que formam um processador complexo
- O layout com células padrão continua sendo amplamente usado em chips modernos
- Processadores modernos são pequenos demais para estudo ao microscópio por causa de seus transistores em escala nanométrica, mas o Pentium é grande o suficiente para permitir observação e engenharia reversa dos circuitos
- A biblioteca completa de células padrão do Pentium é muito maior e inclui de dezenas a centenas de tipos de células
- várias portas lógicas
- vários tamanhos
- células com diferentes capacidades de acionamento
- O uso de BiCMOS no Pentium é uma característica tecnológica típica dos anos 1990, quando essa abordagem estava no auge de popularidade
- Embora o BiCMOS tenha perdido praticidade em circuitos digitais por causa da mudança nos trade-offs, ele ainda tem papel importante em CIs analógicos, especialmente em aplicações de alta frequência
- Ao observar o Pentium de perto, dá para ver que até um processador complexo é construído como combinação de circuitos simples de transistores
1 comentários
Comentários no Hacker News
A Intel começou a usar técnicas de posicionamento e roteamento automáticos a partir do processador 386, porque eram muito mais rápidas que o layout manual e reduziam bastante os erros.
O posicionamento foi feito com um programa chamado Timberwolf, desenvolvido pelo pós-graduando Carl Sechen, de Berkeley, cujo orientador era Alberto Sangiovanni-Vincentelli.
https://ieeexplore.ieee.org/document/1052337
https://archive.computerhistory.org/resources/text/Oral_Hist...
Eles disseram que, dentro da Intel, não havia posicionamento automático nem roteamento automático, então havia preocupação sobre se conseguiriam terminar no prazo e se a área do chip ficaria grande demais para caber. Receberam de um pós-graduando de Berkeley um programa de posicionamento automático chamado Timberwolf para avaliar e, como pareceu bom o suficiente, usaram-no.
Mesmo depois que esse estudante se mudou para o MIT por causa de outro projeto, ele mantinha um terminal no quarto do campus e corrigia bugs sempre que apareciam; às vezes, eles ficavam bloqueados esperando até que ele terminasse a correção. Também aparece a frase: “se a gerência soubesse que estávamos usando a ferramenta de algum pós-graduando como metodologia essencial, jamais teria permitido”.
No Right-o também havia um texto sobre posicionamento e roteamento com células padrão no i386; junto com o link da entrevista em painel, ele também indica as áreas específicas do die do i386 em que células padrão foram usadas.
https://www.righto.com/2024/01/intel-386-standard-cells.html
Não consigo ver nenhuma imagem; a causa parece ser o Cloudflare.
Ao entrar na página, dá para passar pela verificação “are you human” do CF, mas a mesma verificação também é aplicada ao carregamento de cada imagem, e essa tela de verificação não é exibida ao usuário. No fim, uma página HTML é retornada no lugar da imagem, então as imagens não carregam.
Parecia que eles já tinham me recusado antes do captcha e estavam me torturando por diversão. O mais estranho é que o VirusTotal mostrava um segundo formulário de upload na página do captcha, mas esse formulário em si não tinha captcha.
O painel também não mostra que o Cloudflare esteja envolvido.
Se “os processadores modernos são pequenos demais para serem vistos ao microscópio por causa dos transistores em escala de nanômetros”, fico pensando se não deveríamos fazer uma vaquinha para comprar um bom microscópio eletrônico para o Ken.
O software de EDA moderno não teria ficado sofisticado o bastante para posicionar transistores sozinho, sem depender de células padrão?
Tenho trabalhado em um projeto para projetar e criar um software de EDA melhor; essa ferramenta consegue simular e otimizar cada transistor, definindo sua forma e posicionamento para alcançar baixo consumo, alta velocidade e baixo custo.
A desvantagem é que, por lidar com unidades de transistores em volume muito maior do que a EDA existente, ele precisa rodar em um pequeno supercomputador de US$ 100 mil ou em um cluster de FPGAs. Ainda assim, acho que é mais barato que a EDA existente e que permite criar chips e wafers mais rápidos, melhores e mais baratos com menos transistores.
A visão geral do software foi abordada indiretamente nesta apresentação: https://vimeo.com/731037615
Também gostaria de apresentar o próprio software de EDA, então seria bom receber um convite.
Outros pesquisadores e empresas também mostraram que é possível otimizar o projeto e o posicionamento de transistores para além de bibliotecas de células padrão e PDKs; por exemplo, este caso foi feito com software de EDA próprio: https://www.micromagic.com/news/Ultra-Low-Power_PressRelease...
Tenho bastante certeza de que a Apple usou essa abordagem no M1, M2, M3, M4, M5 e, especialmente, nos chips M2 e M5 Ultra de linha mais alta, mas não tenho provas definitivas.
Acredito que, apenas usando um software de EDA melhor do que o atual (CAD=> SYM=> FAB), a humanidade poderia projetar chips de computador 3 a 4 ordens de magnitude mais rápidos e fabricar chips muito mais baratos com pelo menos 2 ordens de magnitude menos energia. A Lei de Moore não acabou, e provar isso exige mais esforço do que um comentário no HN.
Até o posicionamento de células padrão precisa ser resolvido com heurísticas; se você descer do nível de células para o nível de transistores, o tamanho do problema aumenta e tudo piora.
De todo modo, a lógica é composta por portas padrão e blocos lógicos, como flip-flops, então é provável que o overhead de usar células padrão que implementam esses blocos de construção não seja tão grande.
Por isso, a complexidade do problema em relação à capacidade computacional disponível se manteve, em certa medida, constante, e o projeto com células padrão continua sendo uma forma eficiente de reduzir a complexidade do problema que as ferramentas de EDA precisam resolver.
Não vejo isso mudando na geração atual nem na próxima. Trabalho com EDA.
Caso contrário, o rendimento pode ficar instável ou imprevisível.
Uma diferença entre as células padrão mencionadas no texto e as células padrão atuais é que hoje há mais camadas metálicas, então os canais de roteamento desapareceram
Na época, era difícil fazer o metal atravessar as linhas de Vdd e de terra acima e abaixo da célula, então as linhas de polissilício eram estendidas até as bordas superior e inferior. O roteamento era feito levando o poli para dentro do canal e conectando as células com metal
Por isso, na foto, a linha de poli com a tampa removida parece uma só, mas, do ponto de vista do projeto, a parte dentro da célula é padrão e a parte dentro do canal é personalizada
Esse método funciona mesmo tendo apenas poli e a primeira camada de metal, mas, se houver camadas metálicas suficientes, é possível passar o roteamento por dentro da célula. Porém, é preciso evitar as vias que levam entradas e saídas até os transistores
Se você inverter uma linha de células sim, outra não, os PMOS das duas linhas passam a compartilhar o trilho de Vdd, e os NMOS das duas linhas passam a compartilhar o trilho de terra, gerando também um ganho adicional
Dissecar um processador dessa forma pode ser uma atividade educacional divertida, como dissecar um sapo na escola
Tem ainda a vantagem de não envolver questões de direitos dos animais
Se não for um chip coberto por epóxi, não é difícil, e olhar por dentro também é interessante. Para ver em detalhe é preciso um microscópio metalográfico, mas mesmo a olho nu dá para ver estruturas interessantes
Um processador, se manuseado corretamente, dura muito mais que um sapo e, em termos gerais, não se desgasta, então pode ser reutilizado repetidas vezes. Acho possível que o processo de fabricar um processador novo cause mais sofrimento a mais sapos do que matar um sapo para dissecação
Além disso, hoje temos reprodutores de vídeo no bolso. Dissecar um sapo pessoalmente pode ser mais educativo do que ver outra pessoa dissecando, mas tenho dúvidas se é mais educativo do que assistir a 20 vídeos de dissecação bem comentados. Não acho que seja necessário fazer os dois
Também há células padrão open source para quem tiver interesse
https://www.vlsitechnology.org/html/libraries.html
https://opensource.googleblog.com/2022/07/SkyWater-and-Googl...