Arquitetura SUN UltraSPARC III Cu

Tasso Gomes de Faria1

1Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 – 91.501-970 – Porto Alegre – RS – Brazil [email protected]

Abstract. This document has the objective to describe the working of SUN ULTRASparc III Cu architecture. The intention is to bring together the study of the functioning of this architecture and all main features. At the end, we can analize with other RISC architectures.

Resumo. Este documento tem o objetivo de descrever o funcionamento da arquitetura da SUN UltraSPARC III Cu. Pretende-se reunir o estudo do funcionamento desta arquitetura e suas principais características. Ao final, analisaremos com outras arquiteturas RISC.

1. Introdução Os processadores sempre foram um dos principais objetos de estudos na busca de alto desempenho em sistemas computacionais. Desde sua invenção, as arquiteturas são especialmente desenvolvidas para a redução do tempo de processamento de determinadas tarefas. Estas arquiteturas podem ser padronizadas ou apresentarem sua estrutura fechada. O objeto de estudo deste trabalho é a arquitetura UltraSPARC III desenvolvida pela Inc. A arquitetura UltraSPARC é do tipo SPARC, Scalalable ARChitecture, a qual tem por característica ser aberta e baseada em RISC (Reduced Instruction Set Computer) [3]. Sabe-se que hoje, há um grande foco de estudo em alto desempenho, onde as máquinas devem ser aglomeradas, trocando informações e dividindo grandes e complexas tarefas. A grande vantagem de se padronizar uma arquitetura é, sem dúvida, a interação destas máquinas de diferentes fabricantes. Pensando nisso, desde 1989 a arquitetura SPARC é especificada por um comitê internacional (SPARC Architecture Committee of SPARC International), o qual é formado por um consórcio de empresas [2, 6]. A arquitetura SPARC foi criada pela Sun Microsystems em 1984, mas o primeiro produto surgiu em 1986, o qual foi desenvolvido pela Sun e a Fujitso. Desde então, surgiram muitas máquinas baseadas neste tipo de arquitetura. Em 1990, existiam mais de uma dúzia de empresas que já fabricavam arquiteturas SPARC e mais de 8.000 aplicações certificadas para compilar nelas [5]. Em 1994, o SPARC International publicou The SPARC Architecture Manual, Version 9 [6], o qual define uma máquina de 64 bits. A SPARC V9 fornecia 64 bits para endereços virtuais, 64 bits para dados inteiros, tolerância a falhas, rápida troca de contexto, entre outras. A primeira máquina UltraSPARC da Sun Microsystems era

compatível com a SPARC V9, e a partir daí, surgiram novas versões da arquitetura nesta família. Este trabalho procura estudar as principais características da UltraSPARC III Cu, e a partir da próxima seção estas serão demonstradas. Todo estudo foi compilado a partir de informações dadas pelo fabricante [5, 1].

2. Visão Geral da Arquitetura A arquitetura UltraSPARC III é composta por um processador superescalar de alta performance. Esta alta performance deve-se ao fato de poder executar quatro instruções por ciclo de máquina. Este processador é baseado na arquitetura RISC, no padrão SPARC V9 de 64 bits. As quatro instruções por ciclo acontecem mesmo que ocorra branches condicionais ou cache misses. Isto ocorre pois as unidades da arquitetura conseguem, assincronamente, tratar instruções de dados no resto do pipeline. Conforme o manual desta arquitetura, as instruções previstas são distribuídas em unidades funcionais desta arquitetura. Assim estas podem ser executadas em paralelo. Outras características do processador da arquitetura UltraSPARC III podem ser resumidas em:

• O processador executa quatro instruções por ciclo, e este tem nove unidades de execução e seis pipelines de execução; • Pipeline de 14 estágios; • Dados, ULA e endereços aritméticos de 64 bits; • Endereçamento virtual de 64 bits e 43 bits de espaço de endereçamento; • Mecanismo de prefetching de dados; • Unidade cache L2, a qual suporta até 2 vias de cache associativa; • Detecção de erro e recuperação; • Unidade de Gerência de Memória (Memory Management Unit - MMU) com um buffer de 1040 entradas (Translation Lookaside Buffer - TLB) para tradução. Este suporta até 4 MB de páginas; • Cache de nível 1 onde 64K são para dados, 32K para instruções, 2K para busca prévia e 2K para gravação.

Cabe ressaltar que a frequência do processador vai de 900 MHz a 1200 MHz. A versão inicial do UltraSPARC III foi fabricada com tecnologia 0.18µ de alumínio. Esta operava de 600 MHz a 750 MHz. Já a versão da UltraSPARC III Cu foi desenvolvida com tecnologia de Cobre de 0.15µ e operava de 900 a 1050 MHz. O último upgrade foi para 0.13µ chegando a 1200 Mhz. A próxima seção, serão apresentados os principais componentes da CPU da UltraSPARC III Cu.

3. Arquitetura da CPU A arquitetura da CPU da UltraSPARC III Cu foi desenvolvida para trabalhar com operações SIMD (Single Instruction Multiple Data). Sendo assim, o processador explora do paralelismo a nível de instrução. Além disso, possui caches para instruções e dados (L1). O processador também tenta explorar o paralelismo a nível de memória com uma pré-busca de dados. Portanto, o processador consiste de uma máquina de pré-busca de instrução, chamada de unidade de distribuição de instruções (issue unit). Esta é desvinculada do resto do pipeline pelo buffer de instrução. Cabe lembrar que a arquitetura possui diversas unidades, como: floating-point (ponto flutuante) execution unit, integer (inteiro) execution unit, unidade para load/store. O processador ainda deve controlar a cache L2, o barramento e o controlador de memória. A Figura 1 mostra um diagrama de bloco da arquitetura da CPU UltraSPARC III Cu.

Figura 1. CPU da UltraSPARC III Cu

Alguns elementos merecem destaque na análise desta arquitetura. A issue unit é responsável pela busca, armazenamento (em cache) de instruções para seus pipelines de execução. Cabe ressaltar que esta também é responsável por proporcionar grupos de instruções (quatro por ciclo). Já a cache de instruções tem 32KB de tamanho, com um conjunto de quatro vias de cache associativa. Os pipelines de execução (seis por processador) consistem dos seguintes elementos: duas ULAs (Unidade Lógica Aritmética), um pipeline de branch, um

pipeline de load/store, um pipeline de multiplicação de ponto-fluante e um pipeline de adição de ponto-flutuante. A gerência de memória é feita pelas MMUs (Memory Management Units), onde estas são separadas conforme sua função: para tradução de instruções ou para endereçamento de dados. O processador UltraSPARC III Cu pode suportar caches L2 de 1MB, 4MB ou 8MB. Esta possui duas vias de cache associativa (PIPT cache). Outras duas unidades são importantes para o processador. A primeira é a SIU (System Interface Unit), a qual é a porta externa do processador para o mundo. Todos dados são transferidos entre o processador e uma DRAM local (memória principal em outra CPU). A SIU é a máquina responsável por implementar um protocolo de coerência de cache entre sistemas multiprocessador. A outra unidade é a MCU ( Unit) a qual manda sinais de controle para a DRAM. Esta suporta uma memória principal de 128 MB a 16GB. Os registradores desta arquitetura são importantes no estudo da mesma. O processador consiste de muitos tipos de registradores que servem para várias propostas e são acessados de diversas maneiras [5].

4. Administração de Branches Uma das grandes vantagens desta arquitetura é como ela trabalha na administração de branches. A UltraSPARC III Cu implementa 4Kb de predição de branch baseada em histórico. Algumas predições podem gerar erros e estas predições erradas têm 7 ciclos de “penalidade”. Portanto, este volta, faz o fetch da instrução, e recomeça o processamento de novo. As instruções são lidas em paralelo, usando uma fila de quatro entradas (Branch Miss).

5. Organização da Memória Sabe-se que o acesso a memória é um dos grandes gargalos na busca de otimizar o tempo de execução de determinados programas em arquiteturas de alto desempenho. Para isto, cabe analisar como esta arquitetura (UltraSPARC III Cu) é organizada. Portanto, com os 43 bits de endereçamento de dados, a arquitetura permite um espaço virtual de endereçamento de 16 “quintilhões” de bytes. Além disso, a hierarquia de memória é eficiente onde esta tenta manter próxima a CPU, as instruções e dados necessários. Existem duas hierarquias de cache: L1 e L2. A L1 tem quatro caches, onde duas são consideradas grandes e as outras duas pequenas. A L2 é única na arquitetura. A Figura 2 apresenta como é a organização da memória desta arquitetura.

Figura 2. Organização da Memória

Conforme foi citado, L1 possui duas caches. As duas primeiras são para instruções de dados e por isso necessitam ser maiores. Já as duas menores, são caches para operações com ponto flutuante (prefetch caches). Estas estão inseridas no chip do processador. Já a cache L2, também armazena instruções e dados, mas está fora do chip, endereçada na SRAM.

6. Desempenho da Arquitetura UltraSPARC III Esta seção pretende analisar o desempenho da arquitetura UltraSPARC III. Não foi encontrada uma análise de desempenho da versão Cu, mas como estes arquiteturas são iguais, pode-se ter uma boa idéia de como esta arquitetura se comporta em altos processamentos. A análise de desempenho será baseada nos dados obtidos da SPEC. A SPEC (Standard Performance Evaluation Corporation) é um coorporação formada para estabelecer, manter e proporcionar um número de benchmarks padrões para avaliar computadores de alto desempenho. Esta analisa e publica seus resultados [4].

A Tabela 1 e Figura 3 mostram a comparação da arquitetura UltraSPARC III com arquiteturas RISC [3].

Tabela 1. SPECint 2000 para arquiteturas RISC

Figura 3. SPECint 2000 para arquiteturas RISC

Este bechmark foi baseado em número de instruções. A UltraSPARC III da SUN mostra um crescimento bem maior que as outras arquiteturas em relação a taxa de clock utilizada. Ela ainda não atingiu os índices das máquinas RISC da Fujitsu, mas seu crescimento é notável.

7. Considerações Finais Este documento procurou reunir as principais características da arquitetura ULTRASparc III Cu da Sun. A sua análise de desempenho mostrou que sua operação na execução de quatro instruções por ciclo torna-se uma vantagem a outras arquiteturas. Sabe-se que este estudo é preliminar, visto que esta arquitetura possui outras diversas vantagens as quais foram estabelecidas no seu desenvolvimento. Além disso, este documento limita-se às informações cedidas pelo fabricante.

8. Referências Bibliográficas

[1] An Overview of the UltraSPARC III Processor. Disponível em . Acesso em Maio de 2004.

[2] Paul, R. P., “SPARC Architecture, Assembly Language Programming, & C”. Prentice Hall, 1994.

[3] Rodrigues, L. F., Meira L. A., “Arquitetura de Processadores SPARC SUN”. Disponível em . Acesso em Maio de 2004.

[4] Standard Performance Evaluation Corporation. Disponível em . Acesso em Maio de 2004.

[5] UltraSPARC III Processor – User’s Manual. Disponível em .Acesso em Maio de 2004.

[6] Weaver, D. L. e Germond T, “The SPARC Architecture Manual”. Prentice Hall, 1994.