Estes são realmente, como Paul Simon cantou, os dias de milagres e maravilhas. Parece quase impossível acreditar que os engenheiros conseguiram projetar e construir uma máquina cujos componentes medem apenas 40nm. Isso é apenas um milésimo do diâmetro de um cabelo humano.

Ainda estamos fazendo esses dispositivos agora. Eles são chamados de unidades de processamento geral, e eles estão começando a desafiar a unidade central de processamento para seu título de longa data da peça de engenharia mais mágica encontrada em um computador..

Qual ameaça a CPU está enfrentando? Considere um processador de desktop topo de gama como a variante Sandy Bridge quad-core do Core i7 da Intel. Ela possui pouco menos de um bilhão de transistores. Uma unidade de processamento geral de ponta como a Cayman, da AMD, usada na placa de vídeo Radeon HD 6970, acumula um total de 2,64 bilhões de transistores.

Dado que possui nada menos que 1.536 processadores shader, 24 motores SIMD (single instruction multiple data) e 32 ROPs (unidades de operador raster), isto talvez não seja surpreendente. Esta é a história de como as GPUs da AMD são feitas - como uma idéia se torna silício usando alguns dos mais avançados e complexos mecanismos e mecanismos de engenharia. Continue lendo enquanto nos aprofundamos nos verdadeiros dias do milagre e maravilha.

1. O design de alto nível

Projetar uma unidade de processamento geral não começa com qualquer pensamento de transistores ou trilhas de cobre, mas com algo chamado especificação de requisito do produto, ou PRS - uma definição priorizada de todos os recursos que o novo chip deve ter. Pode não parecer muito excitante, mas o PRS atua como a lista de verificação em todo o processo de design.

Dado que o design é um exercício muito dispendioso, em termos de tempo e dinheiro, é de vital importância que o PRS forneça uma resposta adequada à pergunta: "O que exatamente estamos tentando construir aqui?"

Normalmente, levará seis meses para concluir o PRS. Milhares de engenheiros, incluindo arquitetos, designers de hardware, designers de placa, engenheiros de validação, engenheiros de software e engenheiros de firmware / BIOS estarão envolvidos, assim como representantes de gerenciamento de produtos, gerenciamento de tecnologia e relações com desenvolvedores..

O documento assume a forma de um banco de dados e pode incluir mais de 1.000 recursos, cada um dos quais pode ser qualquer coisa, desde uma frase estranha até uma especificação de 100 páginas..

Outra saída do design de alto nível - que os usuários de PCs mais experientes tecnicamente estarão familiarizados - é um diagrama de blocos. Embora não tenha nenhuma semelhança com a forma como os elementos da GPU serão dispostos no chip, ele inclui cada um dos principais blocos funcionais e mostra como os sinais passam entre eles..

2. Planta baixa e netlist

Equipes de engenheiros agora se preparam para trabalhar em duas áreas distintas do projeto. Primeiro, a planta baixa deve ser definida. Esta é uma representação física que levará em conta o tamanho esperado de cada bloco e onde ele deve ser posicionado em relação a outros blocos..

Aqui, é levado em conta quantos sinais passam entre os blocos com o objetivo de reduzir os comprimentos dos caminhos. Enquanto isso, outros engenheiros trabalham no design de nível de componente de cada um dos blocos.

No entanto, isso não é nada como design de circuitos eletrônicos, como previsto pelo leigo. Em vez de um diagrama de circuito, o design é criado em uma linguagem de descrição de hardware como VDHL. Se você estiver interessado, o acrônimo composto significa circuitos integrados de alta velocidade (isso é o que o 'V' significa) linguagem de descrição de hardware.

Parecendo muito com uma linguagem de programação, essa maneira de gerar circuitos fornece muitos dos benefícios oferecidos ao engenheiro de software. Mais importante ainda, os circuitos podem ser definidos hierarquicamente, por exemplo, tendo definido uma porta OR lógica de transistores individuais, isso pode ser usado na definição de um bloco mais complicado como um somador de um bit..

Da mesma forma, blocos de construção cada vez mais sofisticados são construídos pela reutilização do que já foi criado. Muitas vezes, o designer nem precisa definir os blocos de construção, porque eles estarão disponíveis em bibliotecas de terceiros.

Quando o código VDHL está completo, ele passa por um processo chamado síntese, que é o equivalente de compilar uma linguagem de programação. Enquanto a compilação de uma linguagem de programação verifica o código em busca de erros e, uma vez livre de erros, gera um arquivo contendo instruções individuais do processador, a saída da síntese é chamada netlist e define as conexões entre cada um dos componentes, incluindo os 2,64 bilhões transistores.

3. Verificação do circuito e emulação

A netlist pode ir diretamente para o processo de criação de máscaras, mas isso seria um problema, porque designs tão complicados quanto uma GPU nunca são 100% corretos na primeira tentativa. Além disso, dado que um conjunto de máscaras poderia custar US $ 1 milhão, testar o design em silício real seria proibitivamente caro.

Em vez disso, o design é verificado e emulado - uma operação extremamente intensa no processador que requer recursos de supercomputação. A verificação envolve o teste de blocos individuais com talvez milhares de testes por bloco. Cada vez que alguma coisa falha, a equipe de projeto recua para corrigir os erros e executa um conjunto completo de testes de simulação para garantir que a ação corretiva não tenha quebrado algo que funcionou corretamente..

Uma vez que todos os blocos individuais estejam operacionais, a equipe se move para a emulação. Isso significa exercitar a GPU como um todo, mas dada a quantidade de tempo de processamento necessária para simular um chip de transistor de vários bilhões, esses testes podem inicialmente não ser nada mais complicados do que desenhar um único pixel.

Além do teste funcional, a emulação também garante que o chip atenda aos requisitos em termos de velocidade de processamento.

4. Fazendo as máscaras

Com a simulação fora do caminho, os projetistas sabem que as conexões do circuito estão corretas, mas até agora, com exceção da planta de nível superior, não se pensou em onde os componentes vão para o chip. Isso é feito usando um pacote CAD especial, orientado pela planta.

Esse processo amplamente automatizado coloca cada componente e roteia as trilhas de cobre que, em última análise, as conectam todas juntas. O ponto culminante desse processo é um marco importante chamado de "tape out" e marca a transição do design para a fabricação.

Como a AMD é uma empresa de semicondutores fabless, este é também o ponto em que ela entrega o bastão à TSMC, sua fundição escolhida para GPUs. Antes que qualquer chip possa ser fabricado, a fundição precisa criar um conjunto de máscaras fotográficas que serão usadas na fotolitografia - uma para cada uma das muitas camadas pelas quais o circuito é construído no chip..

Usando os dados fornecidos no tape out (que pode ser imaginado como imagens dos padrões em cada camada), as máscaras são criadas como uma camada padronizada de cromo metálico opaco na superfície do vidro de quartzo..