Vitor Luan Pinto Silva Histria do SPARC Na dcada de 1970, os Unices eram muito populares nas universidades, mas nenhum computador pessoal era capaz de execut-los. Alunos de tais universidades eram obrigados a utilizar sistemas de tempo compartilhado, executando nos DEC PDP-11, VAX (muitas vezes sobrecarregados).
Motivado (entenda-se: frustrado) por esta situao, o estudante alemo Andy Bechtolsheim, durante sua ps-graduao em Stanford (1981), constri uma estao de trabalho a partir de peas e componentes encontrados no mercado. Esta mquina, utilizando uma CPU Motorola 68020, recebeu a alcunha 'SUN-1' (de Stanford University Network).
Vinod Khosla, indiano graduado em Stanford, viu nestas mquinas uma boa oportunidade de negcios. Juntamente com Bill Joy e Scott McNealy, fundaram a Sun Microsystems em 1982. At meados de 1987, os quatro empresrios resolveram projetar uma CPU, em vez de se utilizar das Motorola. Assim nasceu o SPARC.
Caractersticas.
O termo SPARC (Scalable Processor ARChitecture ou Sun Palo Alto Research Center) refere-se a uma arquitetura de microprocessador RISC de grande escala. SPARC uma marca registada de SPARC Inc. International, uma organizao estabelecida em 1989 para promover o SPARC.
A arquitetura SPARC inspirada na mquina RISC I de Berkeley, e seu conjunto de instrues e organizao de registradores fortemente baseado no modelo RISC de Berkeley.
SPARC uma arquitetura RISC (Reduced Instruction Set Computer) Computador com conjunto reduzido de instrues de 32/64 bits com pipeline.
Sua arquitetura orientada a registrador, ou seja, poucas instrues fazem referncia memria.
uma arquitetura aberta e no-proprietria.
Sua arquitetura no possui um desenho nico.
Sua arquitetura do tipo Load/Store, sendo as operaes restantes executadas nos registradores.
Registradores de propsito geral, controle e status.
Faz uso das Janelas de Registradores.
Reconhece trs formatos de dados.
SOLARIS Solaris um Sistema Operacional UNIX desenvolvido pela Sun Microsystems. As primeiras verses do Solaris (baseadas no cdigo do BSD) foram chamadas SunOS, tendo o seu nome alterado para Solaris 2 quando passou a ser baseado no System V.
Solaris conhecido por sua acessibilidade, especial no sistemas de SPARC, tambm por dar origem a muitas caractersticas inovativas tais como DTrace e ZFS. Solaris suporta arquiteturas baseadas nos processadores x86 e SPARC, e um sistema que segue a especificao POSIX. Embora seja desenvolvido historicamente como um software proprietrio, a maioria de seu cdigo-fonte hoje em dia est disponvel como o sistema OpenSolaris. Em sua verso 10, lanada no incio de 2005, Solaris oferece os seguintes recursos avanados:
DTrace: anlise e resoluo de problemas de performance, em tempo real;
Solaris Containers: consolidao de aplicaes em servidores de maior porte, atravs da criao de ambientes isolados e independentes;
Predictive Self-Healing: capacidade de antecipar-se ocorrncia de falhas que possam causar paradas crticas, isolando-as e recuperando-se;
Smarter Updating: atualizaes automticas e inteligentes atravs do Sun Update Connection; Integrated Open Source Applications: disponibilidade de centenas de aplicaes j integradas ao sistema;
ZFS: um novo tipo de sistema de arquivos que prov administrao simplificada, semntica transacional, integridade de dados end-to-end e grande escalabilidade.
Gerenciamento de processos
O SOLARIS um sistema multiprogramvel, onde cada usurio pode ter vrios processos ativos simultaneamente. Em um grande sistema, podem chegar a existir milhares de processos ativos ao mesmo tempo. O Kernel do sistema responsvel pelo controle desses processos, fornecendo primitivas que cuidam, por exemplo, da criao e da gerncia de processos.
Os processos so criados pela primitiva de sistema fork. Essa funo, ao ser chamada por um processo em execuo (processo-pai), cria uma cpia igual desse processo (processo-filho), um processo-pai pode ter vrios processos-filhos e estes tambm podem ter seus processos-filhos. A partir da, tanto o processo-pai, quanto o processo-filho tm seu prprio espao de endereamento. Dessa forma, as variveis de um no so visveis ao outro e vice-versa.
Diagrama esquemtico da arquitetura do processador SPARC: A Figura ao lado ilustra basicamente:
A CPU (UCP Unidade Central de Processamento), que a SUN denominou de unidade de inteiro (IU Integer Unit).
A unidade de ponto flutuante (FPU Floating Point Unit).
O Co-Processador (CP - Co-Processor).
O gerenciador de memria (MNU Memory Manager Unit)
A memria cache.
Alm do barramento interno que interliga os diferentes dispositivos e o barramento do sistema, para ligao com a memria principal externa e os perifricos.
Formato para dados Inteiro sem sinal (8 / 16 / 32 e 64 bits). Inteiro com sinal (8 / 16 / 32 e 64 bits). Ponto flutuante (32 / 64 e 128 bits). Obs. A arquitetura SPARC utiliza a nomenclatura big-endian. Registradores Assim como a arquitetura RISC de Berkeley, a arquitetura SPARC usa janelas de registradores. Cada janela consiste em 24 registradores, e o nmero total de janelas dependente de implementao, variando entre 2 e 32 janelas. Esquema de janelas de registradores do SPARC para trs procedimentos: A Figura ao lado apresenta uma implementao com oito janelas, usando um total de 136 registradores fsicos; esse nmero de janelas parece ser razovel. Os registradores fsicos 0 a 7 so registradores globais, compartilhados por todos os procedimentos. Cada processo v registradores lgicos numerados de 0 a 31.
Os registradores lgicos 24 a 31, conhecidos como ins, so compartilhados com o procedimento pai, que efetuou a chamada; os registradores lgicos 8 a 15, conhecidos como outs, so compartilhados com qualquer procedimento filho ou procedimento chamado. Essas duas partes sobrepem-se s outras janelas. Os registradores lgicos 16 a 23, conhecidos como locais, no so compartilhados e no se sobrepem a outras janelas. Neste outro exemplo, a figura ao lado mostra outra viso da sobreposio de registradores. O procedimento que efetua a chamada coloca os parmetros a serem passados em seus registradores outs; o procedimento chamado trata esses mesmos registradores fsicos como os seus registradores ins. Conjunto de instrues A Tabela enumera as instrues da arquitetura SPARC. A maioria das instrues usa apenas operandos em registradores. Formato de instrues O SPARC usa um conjunto simples de formatos de instruo de 32 bits
Todas as instrues comeam com um cdigo de operao de 2 bits. Para certas instrues, esse cdigo estendido com bits adicionais, em algum outro lugar no formato. Pipeline (O modelo UltraSPARC II ser usado como referncia) Pipeline O UltraSPARC II emprega uma pipeline de instrues de nove estgios, que se divide em duas partes para instrues de nmero inteiro e para instrues de ponto flutuante grficas.
Para uma instruo de nmero inteiro, so usados os seguintes estgios da pipeline:
Busca: at quatro instrues so buscadas na cache de instrues de cada vez. A previso de desvio tambm feita nesse estgio. Decodificao: esse estgio decodifica as instrues e as coloca na rea de armazenamento temporrio de instrues. Agrupamento: esse estgio seleciona at quatro instrues da rea de armazenamento temporrio de instrues para despache simultneo. Desse grupo, duas instrues podem ser instrues de nmero inteiro e outras duas, instrues de ponto flutuante ou grficas. Execuo: as duas ULAs de nmero inteiro efetuam acesso ao banco de registradores e executam as instrues de nmero inteiro. Esse estgio tambm calcula o endereo virtual para instrues de carga/armazenamento. Cache: esse estgio determina se o endereo virtual do estgio anterior resulta em acerto ou falta na cache. Nesse estgio, as operaes na ULA do estgio de execuo geram cdigos de condio, que so enviados para a unidade de busca antecipada e despacho de instrues, para verificar previses de desvio anteriores. Se a previso for incorreta, as instrues anteriores sero eliminadas da pipeline. A pipeline de instrues de ponto flutuante compartilha os trs primeiros e os dois ltimos estgios da pipeline de instrues de nmeros inteiros. Os quatro estgios exclusivos da pipeline de instrues de ponto flutuante so:
R: durante esse estgio, concluda a decodificao de instrues de ponto flutuante e instrues grficas e o banco de registradores acessado. X1: a execuo de instrues de ponto flutuante e de instrues grficas iniciada nesse estgio. X2: a execuo continua durante esse estgio. X3: a execuo se completa nesse estgio.
Evoluo Em 1984, um time de engenheiros da Sun Microsystems incluindo Bill Joy, se reuniu para definir a arquitetura SPARC, baseada profundamente nas especificaes RISC de Patterson. A tabela mostra a linha do tempo da SPARC. 1984 - David Patterson da UC Berkeley e Bill Joy da Sun Microsystems comeam a desenvolver a arquitetura. 1986 - Sun/Fujitsu implementa o primeiro processador SPARC SPARC Verso 7 publicada. 1987 - Sun-4/260, primeria workstation baseada na arquitetura SPARC. 1989 - Nascimento da SPARC International. 1990 - SPARC Verso 8 publicada 1991 - SPARCserver 600MP, primeiro sistema SPARC-based multiprocessado SPARC LT, primeiro SPARC-based laptop. 1992 - SuperSPARC I, primeiro processador SPARC superescalar Processador SPARClite Laptop SPARCbook SPARCard upgrade para PCs 1993 - Processador HyperSPARC SPARC Verso 9 publicada 1994 - Processador SuperSPARC II Padro IEEE 1754-1994 publicado ft SPARC computador tolerante a falhas. 1995 - Processador UltraSPARC I Processador SPARC64 Processador SPARClet
1996 - Processador TurboSPARC 1997 - Processador UltraSPARC II 2000 - Servidor SPARC STAR 2001 - Processador UltraSPARC III Processador SPARC64 IV UltraSPARC III Microprocessor Report's "Best Server/Workstation Processor" award
2002 - SPARCblade computador em uma placa de alta confiabilidade para aplicaes de telecomunicaes Laptop GENIALstation 2003 - LEON2 VHDL/V8 SPARCLETM Laptop computer UltraSPARC III UltraSPARC IIIi Fujitsu SPARC64(TM) V 2004 - UltraSPARC IV 2005 - UltraSPARC IV UltraSPARC T1 Sun's OpenSPARCTM LEON3 VHDL/V8 2007 - Fujitsu, SPARC64(TM) VI 2008 - Fujitsu, SPARC64(TM) VII Concluso A arquitetura SPARC/RISC possui grandes diferenciais em relao arquitetura CISC. Sua estrutura simples com conjunto de instrues reduzidas alcanam grandes velocidades e desempenho se comparado a processadores CISC de mesmo clock. Porm, esse desempenho dependente diretamente da qualidade do cdigo gerado pelo programador caso o cdigo seja mal desenvolvido a performance do processador SPARC/RISC pode ser sub-utilizada.