DEC Alpha
O DEC Alpha, também conhecido como Alpha AXP, é um microprocessador de 64 bit construído na arquitetura RISC. Ele foi desenvolvido pela Digital Equipment Corporation (DEC).
Imagem: · BY-SA · Openverse
A empresa que procurava um sucessor para seu processador VAX que era de 32 bits, começou um projeto RISC com nome de "Prisma" no ano de 1980. Com a finalidade de oferecer aos usuário um microcódigo programavel que ficou conhecido como Epicode, juntamente com um SO chamado "Esmeralda", o qual executava programas do VMS. Mas o projeto prisma logo foi cancelado porque computadores VAX ainda estavam sendo vendidos e com isso a equipe achava que VAX teria um futuro promissor. Entre 1980 e nos primeiros anos da década de 90, processadores RISC com arquitetura MPIS e Sparc se tornaram populares por oferecer uma melhor relação entre custo/desempenho comparado com os sistemas VAX, e então a DEC decidiu criar um processador RISC que seria o sucessor do VAX, com base nos conceitos do projeto PRISMA, os responsáveis pelo novo projeto foram Richard L. Sites e Richard T. Witek, algumas características do PRISMA foram alteradas para atender alguns novos objetivos do Alpha, como por exemplo, o reajuste para que programas VMS pudessem rodar em uma velocidade razoável sem sofrer conversão e o novo design foi para uma atualização que passou de 32 bits do prisma para 64 bits, porque iria acabar os bits das arquiteturas de 32bits. Na criação de uma nova arquitetura foi levado em conta alguns objetivos como, alta performance, longevidade, capacidade de executar sistemas operacionais UNIX e VMS tendo uma migração fácil de arquiteturas VAX e MIPS, todos esses objetivos influenciaram na concepção do projeto.
Como um dos principais objetivos do projeto era longevidade e alta performance foi definido que o processador teria uma arquitetura de 64 bits, pois as arquiteturas que existiam na época ainda eram de 32 bits, sendo esse um dos principais pontos onde o Alpha se diferenciava das demais. Outro fato importante em que Alpha se destacou em relação aos concorrentes foi a técnica de múltiplas instruções, como não é possível acelerar um ciclo de clock, era necessário aumentar o trabalho que deve ser feito por um ciclo de clock, implementando cerca de 10 novas instruções por ciclo. Processador RISC com 64 bits, executava instruções de comprimento fixo de 32 bits cada, possui 32 registradores de inteiro e 32 registradores de ponto flutuante. 5 grupos foram criados para simplificar e facilitar ações pepiling no conjunto de instruções: A arquitetura foi projetada para sistemas multiprocessadores. Sua primeira versão executava dois comandos em unidades diferentes, em versões posteriores de 7 a 13 estágios de pipeline são processadas, dependendo da UC e a geração do processador.
Especificações da arquitetura
O conjunto de registradores foi definido sendo, 32 registradores de inteiros, 32 de ponto flutuante, 1 contador chamado de PC (program counter), 2 registradores de fechamento chamados LR0 e LR1, também um registrador FPCR (floating-point control register) para controle de ponto flutuante. Os registradores de inteiros receberam os nomes de R0 até R31, os de ponto flutuante de F0 até F31, sendo os registradores R31 e F31 sempre zeros (hardwired) e a escrita nestes registradores era ignorada. O registrador PC (Program Counter) é de 64 bits e contém o endereço da próxima instrução quando uma instrução é decodificada, incrementando ao seu valor atual. Os registradores LR0 e LR1 são usados pelas instruções de load e store/condicional para suporte a multiprocessadores.
Imagem: Birdman. · BY · Openverse
A primeira versão do processador (1992) foi o Alpha 21064 ou EV4, sendo o primeiro microprocessador CMOS, rodava em 192 MHz e meses depois chegou a rodar em 200 MHz, com design superescalar e superpipelined. A segunda versão, 21164 ou EV5 (1995), foi o primeiro a introduzir uma grande cache secundária no chip, com frequência de até 333 MHz, 500 MHz em 1996 e em 1998 chegou a velocidade de 666 MHz. A terceira versão,21264 ou EV6 (1998),com 450 MHz, foi a primeira a combinar alta frequência operacional e a micro-arquitetura de execução fora de ordem. Em 2001 foi lançado o 21264C/EV68CB com frequência de 1,25 GHz O controlador de memória no chip foi implementado pela primeira vez na quarta versão do processador, 21364 ou EV7 (2003). A versão 21464 ou EV8 teria sido a primeira a incluir multithreading simultâneo, mas esta versão não foi produzida porque a empresa DEC foi vendida para a Compaq. Como última versão que ficou conhecido apenas pelo projeto de pesquisa, EV9, teria sido o primeiro processador a possuir uma unidade de vetor.
Imagem: Appaloosa · BY-SA · Openverse
O projeto Alpha possui algumas diferenças comparando com outros processadores RISC convencionais, como principal diferença é que o projeto Alpha foi desenvolvido como uma arquitetura de 64 bits com um número mínimo de instruções de 32 bits, já outras arquiteturas RISC eram inicialmente de 32 bits e somente mais tarde foram ampliadas. Outra diferença significativa está no fato de que o Alpha foi projetado para permitir implementações de velocidade muito alta, onde as instruções são muito simples, as quais não possuem load de 4 registradores e realiza a verificação de bytes iguais a zero. O Alpha não tem nenhum registrador especial que impeça o pipelining de realizar várias operações. Todas as instruções interagem umas com as outras somente por uma instrução de escrita num registrador ou por memória e também uma leitura no mesmo lugar, com isso ficou fácil de criar implementações que emitissem várias instruções por ciclo de clock.
Imagem: Martijn Boer · PDM · Openverse
Este conjunto de instruções foi introduzido a partir do microprocessador 21164A (EV56), sua funcionalidade é de manipular tipos de dados de 8bits e 16bits, sua principal vantagem foi o fato de que antes de sua implementação existiam várias instruções para realizar a mesma implementação, assim melhorando a densidade do código e também influenciava no desempenho de aplicativos. Outro ponto positivo foi a facilidade com que era feita a emulação de máquinas x86 com o auxilio do BMX. Os processadores 21164PC (PCA56 e PCA57), 21264 (EV6) e o 21364 (EV7) foram os pioneiros na implementação das instruções MVI, adicionando instruções SIMD (Simple Instruction Multiple Data). Foi um conjunto de instruções simples, que era composto por instruções que operavam em tipos de dados inteiros, armazenando em registradores de inteiros. Teve como objetivo dois fatores que contribuíram para sua simplicidade, onde a decodificação de DVD era realizada por software, assim não requeria contribuição do hardware, no processador 21164. Outro fator foi a exigência de manter o propósito inicial do projeto que era de manter os ciclos de clock com alto desempenho, onde se fossem adicionadas muitas instruções reduziria a frequência de um ciclo.
A série de workstations e servidores DEC 3000 AXP, servidores DEC 4000 AXP e servidores DEC 7000 AXP e 10000, foram os primeiros sistemas baseado no DEC Alpha. DECpc AXP também conhecido como DEC 2000 AXP foi o primeiro sistema a oferecer suporte a Windos NT, tempos depois foi produzido as versões Celebris XL e Digital Personal Workstation PC com o processador 21164. DEC também produziu computadores industriais (VMEbus), incluindo o 64 AXPvme baseado no 21068 e o AXPvme 64LC, baseado no 21066. Como modelos mais recente temos, AXPvme 100, AXPvme 166 e AXPvme 230 baseados no processador 21064A. Os últimos foram o VME Alpha 5/352 e VME Alpha 5/480 que foram baseados no processador 21164. Em 1994 foi lançado uma linha de AlphaStation e sistemas AlphaServer, utilizando processadores 21064 ou 21164, introduziram barramento PCI, buffers compatíveis com VGA e PS/2 (teclados e mouses). A série 8000 AlphaServer substitui o DEC 7000/10000 AXP. O AlphaStation XP1000 foi o primeiro a trabalhar com processador 21264, os modelos mais recentes foram categorizados em DS (servidor departamental), ES (servido corporativo) ou GS (servidor global).
Imagem: stiefkind · CC0 · Openverse
Para ilustrar o desempenho comparativo de sistemas baseados em Alpha, alguns números de desempenho SPEC (SPECint95, SPECfp95) são listados abaixo. Levando em consideração um computador (CPU, barramento, memória, otimizador de compilador), não apenas a CPU e também considerar que estes dados são de 1992 a 1995. A tabela mostra que o desempenho da arquitetura Alpha comparando com a arquitetura da HP e Intel. O desempenho entre a Intel e a Alpha é considerável, chegando razoavelmente perto da Alpha, por outro lado a HP também é chega razoavelmente perto da Alpha, mas as duas rodam em taxas de clock (MHz) menores. O destaque da tabela abaixo mostra os valores de consumo de energia e o preço de uma CPU.


