Projeto do processador - Processor design

O projeto de processador é um subcampo da engenharia da computação e da engenharia eletrônica (fabricação) que lida com a criação de um processador , um componente-chave do hardware do computador .

O processo de design envolve a escolha de um conjunto de instruções e um determinado paradigma de execução (por exemplo, VLIW ou RISC ) e resulta em uma microarquitetura , que pode ser descrita em, por exemplo, VHDL ou Verilog . Para projeto de microprocessador , esta descrição é então fabricada empregando alguns dos vários processos de fabricação de dispositivos semicondutores , resultando em uma matriz que é ligada a um portador de chip . Esse portador de chip é então soldado ou inserido em um soquete em uma placa de circuito impresso (PCB).

O modo de operação de qualquer processador é a execução de listas de instruções. As instruções normalmente incluem aquelas para calcular ou manipular valores de dados usando registradores , alterar ou recuperar valores na memória de leitura / gravação, realizar testes relacionais entre valores de dados e controlar o fluxo do programa.

Projetos de processadores são frequentemente testados e validados em um FPGA antes de enviar o projeto do processador a uma fundição para a fabricação de semicondutores .

Detalhes

Fundamentos

O design da CPU é dividido em design dos seguintes componentes:

  1. caminhos de dados (como ALUs e pipelines )
  2. unidade de controle : lógica que controla os caminhos de dados
  3. Componentes de memória , como arquivos de registro , caches
  4. Relógio circuitos, como drivers de relógio, PLLs , redes de distribuição de relógio
  5. Circuito transceptor de pad
  6. Biblioteca de célula de porta lógica que é usada para implementar a lógica

CPUs projetadas para mercados de alto desempenho podem exigir designs customizados (otimizados ou específicos de aplicativo (veja abaixo)) para cada um desses itens para atingir frequência, dissipação de energia e objetivos de área de chip, enquanto CPUs projetadas para mercados de baixo desempenho podem diminuir a implementação ônus ao adquirir alguns desses itens, adquirindo-os como propriedade intelectual . Técnicas de implementação de lógica de controle ( síntese lógica usando ferramentas CAD) podem ser usadas para implementar caminhos de dados, arquivos de registro e relógios. Os estilos lógicos comuns usados ​​no projeto da CPU incluem lógica aleatória não estruturada, máquinas de estado finito , microprogramação (comum de 1965 a 1985) e matrizes lógicas programáveis (comuns na década de 1980, não são mais comuns).

Lógica de implementação

Os tipos de dispositivos usados ​​para implementar a lógica incluem:

Um projeto de design de CPU geralmente tem estas tarefas principais:

Redesenhar um núcleo da CPU para uma área menor da matriz ajuda a reduzir tudo (uma " redução da máscara fotográfica"), resultando no mesmo número de transistores em uma matriz menor. Ele melhora o desempenho (transistores menores trocam mais rápido), reduz a potência (fios menores têm menos capacitância parasita ) e reduz o custo (mais CPUs cabem no mesmo wafer de silício). Liberar uma CPU no mesmo tamanho, mas com um núcleo de CPU menor, mantém o custo quase o mesmo, mas permite níveis mais altos de integração em um chip de integração de grande escala (cache adicional, várias CPUs ou outros componentes), melhorando o desempenho e reduzindo o custo geral do sistema.

Como acontece com a maioria dos designs eletrônicos complexos, o esforço de verificação lógica (provando que o design não tem bugs) agora domina o cronograma de projeto de uma CPU.

As principais inovações arquitetônicas da CPU incluem registrador de índice , cache , memória virtual , pipelining de instrução , superescalar , CISC , RISC , máquina virtual , emuladores , microprograma e pilha .

Conceitos micro-arquitetônicos

Tópicos de pesquisa

Uma variedade de novas idéias de design de CPU foi proposta, incluindo lógica reconfigurável , CPUs sem relógio , RAM computacional e computação óptica .

Análise de desempenho e benchmarking

O benchmarking é uma forma de testar a velocidade da CPU. Os exemplos incluem SPECint e SPECfp , desenvolvidos pela Standard Performance Evaluation Corporation , e ConsumerMark, desenvolvidos pelo Embedded Microprocessor Benchmark Consortium EEMBC .

Algumas das métricas comumente usadas incluem:

  • Instruções por segundo - a maioria dos consumidores escolhe uma arquitetura de computador (normalmente arquitetura Intel IA32 ) para poder executar uma grande base de software pré-compilado pré-existente. Sendo relativamente desinformados em benchmarks de computador, alguns deles escolhem uma CPU particular com base na freqüência de operação (veja Megahertz Mito ).
  • FLOPS - O número de operações de ponto flutuante por segundo é freqüentemente importante na seleção de computadores para cálculos científicos.
  • Desempenho por watt - os designers de sistemas que constroem computadores paralelos , como o Google , escolhem CPUs com base em sua velocidade por watt de energia, porque o custo de alimentar a CPU supera o custo da própria CPU.
  • Alguns projetistas de sistemas que criam computadores paralelos escolhem CPUs com base na velocidade por dólar.
  • Os projetistas de sistemas que criam sistemas de computação em tempo real desejam garantir a resposta no pior caso. Isso é mais fácil de fazer quando a CPU tem baixa latência de interrupção e quando tem resposta determinística. ( DSP )
  • Os programadores de computador que programam diretamente em linguagem assembly desejam que uma CPU suporte um conjunto de instruções completo .
  • Baixa energia - Para sistemas com fontes de energia limitadas (por exemplo, solar, baterias, energia humana).
  • Tamanho pequeno ou baixo peso - para sistemas embarcados portáteis, sistemas para espaçonaves.
  • Impacto ambiental - Minimizando o impacto ambiental dos computadores durante a fabricação e reciclagem, bem como durante o uso. Reduzindo o desperdício, reduzindo os materiais perigosos. (veja computação verde ).

Pode haver compensações na otimização de algumas dessas métricas. Em particular, muitas técnicas de design que fazem a CPU funcionar mais rápido tornam o "desempenho por watt", o "desempenho por dólar" e a "resposta determinística" muito piores e vice-versa.

Mercados

Existem vários mercados diferentes nos quais CPUs são usadas. Como cada um desses mercados difere em seus requisitos de CPUs, os dispositivos projetados para um mercado são, na maioria dos casos, inadequados para os outros mercados.

Computação de uso geral

A grande maioria das receitas geradas com as vendas de CPU é para computação de uso geral, ou seja, desktops, laptops e servidores comumente usados ​​em empresas e residências. Nesse mercado, a arquitetura Intel IA-32 e a versão de 64 bits x86-64 dominam o mercado, com seus rivais PowerPC e SPARC mantendo bases de clientes muito menores. Anualmente, centenas de milhões de CPUs com arquitetura IA-32 são utilizadas por esse mercado. Uma porcentagem crescente desses processadores é para implementações móveis, como netbooks e laptops.

Uma vez que esses dispositivos são usados ​​para executar inúmeros tipos diferentes de programas, esses designs de CPU não são especificamente direcionados a um tipo de aplicativo ou função. As demandas de ser capaz de executar uma ampla gama de programas com eficiência tornaram esses designs de CPU os mais avançados tecnicamente, junto com algumas desvantagens de serem relativamente caros e de alto consumo de energia.

Economia de processador de última geração

Em 1984, a maioria das CPUs de alto desempenho levava de quatro a cinco anos para ser desenvolvida.

Computação científica

A computação científica é um nicho de mercado muito menor (em receita e unidades enviadas). É usado em laboratórios de pesquisa do governo e universidades. Antes de 1990, o design da CPU era frequentemente feito para esse mercado, mas as CPUs do mercado de massa organizadas em grandes clusters provaram ser mais acessíveis. A principal área restante do projeto e pesquisa de hardware ativo para computação científica é para sistemas de transmissão de dados de alta velocidade para conectar CPUs do mercado de massa.

Design embutido

Conforme medido por unidades enviadas, a maioria das CPUs está embutida em outras máquinas, como telefones, relógios, eletrodomésticos, veículos e infraestrutura. Processadores incorporados vendem no volume de muitos bilhões de unidades por ano, no entanto, principalmente a preços muito mais baixos do que os processadores de uso geral.

Esses dispositivos de função única diferem das CPUs de uso geral mais familiares de várias maneiras:

  • O baixo custo é de grande importância.
  • É importante manter uma baixa dissipação de energia, pois os dispositivos incorporados geralmente têm uma vida útil limitada da bateria e muitas vezes é impraticável incluir ventiladores de resfriamento.
  • Para reduzir o custo do sistema, os periféricos são integrados ao processador no mesmo chip de silício.
  • Manter os periféricos no chip também reduz o consumo de energia, pois as portas GPIO externas normalmente requerem buffer para que possam fornecer ou absorver as cargas de corrente relativamente altas necessárias para manter um sinal forte fora do chip.
    • Muitos aplicativos incorporados têm uma quantidade limitada de espaço físico para circuitos; manter os periféricos no chip reduzirá o espaço necessário para a placa de circuito.
    • O programa e as memórias de dados são freqüentemente integrados no mesmo chip. Quando a única memória de programa permitida é ROM , o dispositivo é conhecido como microcontrolador .
  • Para muitos aplicativos incorporados, a latência de interrupção será mais crítica do que em alguns processadores de uso geral.

Economia do processador embutido

A família de CPU incorporada com o maior número de unidades totais vendidas é a 8051 , com uma média de quase um bilhão de unidades por ano. O 8051 é amplamente utilizado porque é muito barato. O tempo de design agora é quase zero, porque está amplamente disponível como propriedade intelectual comercial. Agora, muitas vezes é incorporado como uma pequena parte de um sistema maior em um chip. O custo do silício de um 8051 agora é tão baixo quanto US $ 0,001, porque algumas implementações usam apenas 2.200 portas lógicas e usam 0,0127 milímetros quadrados de silício.

A partir de 2009, mais CPUs são produzidas usando o conjunto de instruções da arquitetura ARM do que qualquer outro conjunto de instruções de 32 bits. A arquitetura ARM e o primeiro chip ARM foram projetados em cerca de um ano e meio e 5 anos humanos de tempo de trabalho.

A arquitetura do microcontrolador Parallax Propeller de 32 bits e o primeiro chip foram projetados por duas pessoas em cerca de 10 anos de trabalho humano.

A arquitetura AVR de 8 bits e o primeiro microcontrolador AVR foram concebidos e projetados por dois alunos do Instituto Norueguês de Tecnologia.

A arquitetura 6502 de 8 bits e o primeiro chip MOS Technology 6502 foram projetados em 13 meses por um grupo de cerca de 9 pessoas.

Projeto de CPU educacional e de pesquisa

Os processadores Berkeley RISC I e RISC II de 32 bits foram projetados principalmente por uma série de alunos como parte de uma sequência de quatro quartos dos cursos de pós-graduação. Este projeto se tornou a base do projeto do processador SPARC comercial .

Por cerca de uma década, todos os alunos da aula de 6.004 no MIT faziam parte de uma equipe - cada equipe teve um semestre para projetar e construir uma CPU simples de 8 bits a partir de 7400 circuitos integrados da série . Uma equipe de 4 alunos projetou e construiu uma CPU simples de 32 bits durante aquele semestre.

Alguns cursos de graduação exigem uma equipe de 2 a 5 alunos para projetar, implementar e testar uma CPU simples em um FPGA em um único semestre de 15 semanas.

A CPU MultiTitan foi projetada com 2,5 homens / ano de esforço, o que foi considerado "relativamente pouco esforço de design" na época. 24 pessoas contribuíram para o projeto de pesquisa MultiTitan de 3,5 anos, que incluiu o projeto e a construção de um protótipo de CPU.

Núcleos de microprocessador soft

Para sistemas embarcados, os níveis de desempenho mais altos geralmente não são necessários ou desejados devido aos requisitos de consumo de energia. Isso permite o uso de processadores que podem ser totalmente implementados por técnicas de síntese lógica . Esses processadores sintetizados podem ser implementados em um período de tempo muito mais curto, proporcionando um tempo de colocação no mercado mais rápido .

Veja também

Referências

Referências gerais