Projeto do processador
Projeto de processador é um subcampo da engenharia da computação e 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 certo 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 o projeto do 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. Este 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.
Os projetos de processadores são frequentemente testados e validados em um ou vários FPGAs antes de enviar o projeto do processador para uma fundição para fabricação de semicondutores.
Detalhes
Básico
O design da CPU é dividido em vários componentes. As informações são transferidas por meio de caminhos de dados (como ALUs e pipelines). Esses caminhos de dados são controlados por lógica por unidades de controle. Os componentes de memória incluem arquivos de registro e caches para reter informações ou determinadas ações. Os circuitos de clock mantêm os ritmos internos e a temporização por meio de drivers de clock, PLLs e redes de distribuição de clock. O circuito do transceptor de pad permite que os sinais sejam recebidos e enviados e uma biblioteca de células de porta lógica que é usada para implementar a lógica.
CPUs projetadas para mercados de alto desempenho podem exigir designs personalizados (otimizados ou específicos para aplicativos (veja abaixo)) para cada um desses itens para atingir metas de frequência, dissipação de energia e área de chip, enquanto CPUs projetadas para mercados de desempenho inferior podem diminuir a carga de implementação adquirindo alguns desses itens comprando-os como propriedade intelectual. As técnicas de implementação da 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. Estilos lógicos comuns usados no projeto de 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 mais comuns).
Lógica de implementação
Os tipos de dispositivos usados para implementar a lógica incluem:
- Lógica de transistor-transistor chips de lógica de integração de pequena escala – não mais usado para CPUs
- Lógica de array programável e dispositivos lógicos programáveis – não mais usados para CPUs
- Emitter-coupled Logic (ECL) gate arrays – não mais comum
- arrays de portões CMOS – não mais usados para CPUs
- ICs produzidos em massa CMOS – a grande maioria de CPUs por volume
- CMOS ASICs – apenas para uma minoria de aplicações especiais devido à despesa
- arrays de portões programáveis de campo (FPGA) – comuns para microprocessadores macios e mais ou menos necessários para computação reconfigurada
Um projeto de design de CPU geralmente tem estas tarefas principais:
- Arquitetura de conjunto de instrução programável, que pode ser implementada por uma variedade de microarquiteturas
- Estudo arquitetônico e modelagem de desempenho em ANSI C/C++ ou SystemC
- Síntese de alto nível (HLS) ou nível de transferência de registo (RTL, por exemplo, lógica) implementação
- Verificação de RTL
- Projeto de circuito de componentes críticos de velocidade (caches, registros, ALUs)
- Síntese lógica ou design de nível lógico
- Análise de tempo para confirmar que todas as lógicas e circuitos serão executados na frequência de operação especificada
- Design físico incluindo pisoplanagem, lugar e rota de portões lógicos
- Verificar que as representações RTL, nível de portão, nível transistor e nível físico são equivalentes
- Verifica a integridade do sinal, manufacturabilidade do chip
Redesenhar um núcleo de CPU para uma área de matriz menor ajuda a encolher tudo (um "encolhimento de fotomáscara"), resultando no mesmo número de transistores em uma matriz menor. Ele melhora o desempenho (transistores menores comutam 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). A liberação de uma CPU no mesmo tamanho de matriz, 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 na maioria dos projetos eletrônicos complexos, o esforço de verificação lógica (provando que o projeto não possui bugs) agora domina o cronograma do projeto de uma CPU.
As principais inovações arquitetônicas da CPU incluem registro de índice, cache, memória virtual, pipelining de instrução, superescalar, CISC, RISC, máquina virtual, emuladores, microprograma e pilha.
Conceitos de microarquitetura
Tópicos de pesquisa
Uma variedade de novas ideias de design de CPU foram propostas, 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. Exemplos incluem SPECint e SPECfp, desenvolvidos pela Standard Performance Evaluation Corporation, e ConsumerMark desenvolvido 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 ser capaz de executar uma grande base de software pré-compilado pré-existente. Sendo relativamente desinformado em benchmarks de computador, alguns deles escolhem uma CPU particular com base na frequência de operação (veja Megahertz Myth).
- FLOPS - O número de operações de ponto flutuante por segundo é frequentemente importante na seleção de computadores para computação científica.
- Desempenho por watt - Os designers do sistema 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 designers do sistema que constroem computadores paralelos escolhem CPUs com base na velocidade por dólar.
- Os designers do sistema que constroem sistemas de computação em tempo real querem garantir a pior resposta. Isso é mais fácil de fazer quando a CPU tem baixa latência de interrupção e quando tem resposta determinística. (DSP)
- Programadores de computador que programam diretamente na linguagem de montagem querem uma CPU para apoiar um conjunto de instruções completo.
- Baixa potência - 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 naves espaciais.
- Impacto ambiental - Minimizando o impacto ambiental dos computadores durante a fabricação e reciclagem, bem durante o uso. Reduzir resíduos, reduzir materiais perigosos. (veja a computação verde).
Pode haver compensações na otimização de algumas dessas métricas. Em particular, muitas técnicas de projeto que fazem uma CPU funcionar mais rápido tornam o "desempenho por watt", "desempenho por dólar" e a "resposta determinística" muito pior, e vice-versa.
Mercados
Existem vários mercados diferentes nos quais as CPUs são usadas. Como cada um desses mercados difere em seus requisitos para 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 pelas vendas de CPU é para computação de uso geral, ou seja, desktops, laptops e servidores comumente usados em empresas e residências. Neste 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 usadas por este mercado. Uma porcentagem crescente desses processadores é para implementações móveis, como netbooks e laptops.
Como esses dispositivos são usados para executar incontáveis tipos diferentes de programas, esses designs de CPU não são direcionados especificamente para um tipo de aplicativo ou uma função. As demandas de poder executar uma ampla gama de programas com eficiência tornaram esses projetos de CPU entre os mais avançados tecnicamente, juntamente com algumas desvantagens de serem relativamente caros e com alto consumo de energia.
Economia de processador de ponta
Em 1984, a maioria das CPUs de alto desempenho precisava 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 vendidas). É usado em laboratórios de pesquisa do governo e universidades. Antes de 1990, o design da CPU costumava ser feito para esse mercado, mas as CPUs do mercado de massa organizadas em grandes clusters provaram ser mais acessíveis. A principal área restante de projeto de hardware ativo e pesquisa para computação científica é para sistemas de transmissão de dados de alta velocidade para conectar CPUs de mercado de massa.
Design integrado
Conforme medido pelas unidades enviadas, a maioria das CPUs está embutida em outras máquinas, como telefones, relógios, eletrodomésticos, veículos e infraestrutura. Os processadores embarcados são vendidos 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:
- Baixo custo é de alta importância.
- É importante manter uma baixa dissipação de energia como dispositivos embarcados muitas vezes têm uma vida de bateria limitada e muitas vezes é impraticável incluir ventiladores de resfriamento.
- Para dar menor custo do sistema, os periféricos são integrados com o processador no mesmo chip de silício.
- Manter periféricos no chip também reduz o consumo de energia como portas GPIO externas tipicamente exigem buffering para que eles possam fonte ou afundar as cargas de corrente relativamente altas que são necessárias para manter um sinal forte fora do chip.
- Muitas aplicações incorporadas têm uma quantidade limitada de espaço físico para circuitos; manter periféricos on-chip irá reduzir o espaço necessário para a placa de circuito.
- O programa e as memórias de dados são frequentemente integrados no mesmo chip. Quando a única memória do programa permitida é ROM, o dispositivo é conhecido como um microcontrolador.
- Para muitas aplicações incorporadas, a latência de interrupção será mais crítica do que em alguns processadores de uso geral.
Economia do processador incorporado
A família de CPU embarcada com o maior número total de unidades 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 é frequentemente incorporado como uma pequena parte de um sistema maior em um chip. O custo de 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 levam 0,4730 milímetros quadrados de silício.
A partir de 2009, mais CPUs foram produzidas usando os conjuntos de instruções da família de 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 trabalho.
A arquitetura do microcontrolador Parallax Propeller de 32 bits e o primeiro chip foram projetados por duas pessoas em cerca de 10 anos humanos de trabalho.
A arquitetura AVR de 8 bits e o primeiro microcontrolador AVR foram concebidos e projetados por dois estudantes 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.
Pesquisa e design de CPU educacional
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 trimestres de cursos de pós-graduação. Este projeto tornou-se a base do projeto comercial do processador SPARC.
Por cerca de uma década, todos os alunos da classe 6.004 no MIT faziam parte de uma equipe - cada equipe tinha um semestre para projetar e construir uma CPU simples de 8 bits a partir dos circuitos integrados da série 7400. 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" no momento. 24 pessoas contribuíram para o projeto de pesquisa MultiTitan de 3,5 anos, que incluiu projetar e construir um protótipo de CPU.
Núcleos de microprocessador de software
Para sistemas embarcados, os mais altos níveis de desempenho 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 menor, proporcionando um tempo de lançamento no mercado mais rápido.
Contenido relacionado
Achduart
Telecomunicações na Estônia
Telecomunicações em Antígua e Barbuda