A arquitetura sparc (arquitetura
de processador escalável), é uma
arquitetura definida pela Sun
Microsystems. É inspirada na
máquina de RISC I de Berkeley e o
conjunto de instruções e
organizações de registradores é
baseada no modelo RISC da
Berkeley.
Conjunto de registradores do SPARC A
SPARC faz uso de janelas de registradores.
Cada janela consiste em 24 registradores e
o numero total de janelas depende da
implementação e varia de 2 a 32 janelas.
Cada processador enxerga registradores
lógicos de 0 a 31. Registradores lógicos de
24 a 31 (ins): compartilhados com o
procedimento-pai Registradores lógicos de
8 a 15 (outs): compartilhados com qualquer
procedimento-filho. Nesta arquitetura,
normalmente não é necessário salvar e
restaurar registradores para uma chamada
de procedimento.
Formato de instrução Todas as instruções
começam com um opcode de 2 bits. Para
instrução de Chamada (call): operando de 30
bits é estendido com dois bits 0 para direita
para formar um endereço relativo ao PC. A
instrução chamada de DESVIO, inclui um
campo condicional de 4 bits. Um recurso
incomum da instrução Desvio é o bit
anulação. Quando é igual a zero, a instrução
depois do desvio é sempre executada,
independentemente se o desvio é tomado.
A arquitetura SPARC tem profunda influência nos
projetos RISC I e II da Universidade da Califórnia em
Berkeley. Esses projetos originais possuíam um
reduzido conjunto de instruções com o objetivo de
executá-las a uma taxa de quase uma instrução por
ciclo de clock. Isso fez da SPARC uma arquitetura
muito similar a MIPS em vários aspectos, incluindo a
não existência de instruções de multiplicar ou
dividir. Outra característica do SPARC influenciada
pelo movimento RISC é o Branch Delay Slot.
O processador SPARC possui normalmente até
160 registradores de uso geral. Desses 32 estão
visíveis para o software, sendo 8 um conjunto
de registradores globais(Apenas 7 estão
disponíveis, pois um é o g0, que possui sempre
o valor 0)e os outros 24 são registradores de
pilha. Esses 24 formam o que é chamado de
Janela de Registro. Essa janela é usada para
passar parâmetros de função e retorno de
valores, sendo movida para cima e para baixo
da pilha de registro. Cada janela tem 8
registradores locais .
A arquitetura já
passou por diversas
revisões. Entre as
principais estão, o
surgimento de
múltiplos Hardwares e
funcionalidades de
divisão na versão 8.