Mind map
Equipe 8 - Capítulo 13 parte 4
Map content
Equipe 8 - Capítulo 13 parte 4
7-SPARC
- 1. A arquitetura SPARC (arquitetura de processador escalável — scalable processor architecture) refere-se a uma arquitetura definida pela Sun Microsystems. A Sun desenvolveu a sua própria implementação do SPARC, mas também licencia a arquitetura para outros fabricantes para produzirem máquinas compatíveis com SPARC. A arquitetura SPARC é inspirada na máquina RISC I de Berkeley e o seu conjunto de instruções e a sua organização de registradores é baseada no modelo RISC da Berkeley
- 1.1 Conjunto de registradores do SPARC
- 1.1.1 Assim como acontece com o RISC de Berkeley, a SPARC também faz uso de janelas de registradores. Cada janela consiste de 24 registradores e o número total de janelas depende da implementação e varia de 2 a 32 janelas.
- 1.1.2 O procedimento que faz a chamada coloca quaisquer parâmetros a serem passados em seus registradores outs; O procedimento chamado trata esses mesmos registradores como seus registradores ins. O processador mantém um ponteiro da janela atual (CWP — current window pointer), localizado no registrador de status do processador (PSR — processor status register), o qual aponta para a janela do procedimento atualmente em execução. A máscara da janela inválida (WIM — window invalid mask), também em PSR, indica quais janelas estão inválidas.
- 1.1.3 Com a arquitetura SPARC de registradores, normalmente não é necessário salvar e restaurar registradores para uma chamada de procedimento. O compilador é simplificado porque ele precisa se preocupar apenas com a alocação de registradores locais para um procedimento de uma maneira eficiente e não precisa se preocupar com a alocação de registradores entre procedimentos.
- 1.2 Conjunto de instruções
- 1.2.1 A maioria das instruções referencia apenas operandos de registradores. Instrução registrador-para-registrador possui três operandos e pode ser expressa desta forma Rd ; RS1 op S2 onde Rd e RS1 são referências de registradores; S2 pode se referir ou a um registrador ou a um operando imediato de 13 bits. Registrador zero (R0) é definido no hardware com o valor 0. Esta forma é bem adaptada a programas típicos que possuem uma grande proporção de escalares e constantes locais. As operações de ALU disponíveis podem ser agrupadas da seguinte forma:
- 1.2.2 Adição de inteiros (com ou sem carry).
- 1.2.3 Subtração de inteiros (com ou sem carry).
- 1.2.4 Operadores booleanos AND, OR, XOR e suas negações.
- 1.2.5 Deslocamento lógico à esquerda, lógico ou aritmético à direita.
- 1.2.6 Todas estas instruções, exceto os deslocamentos, podem opcionalmente definir quatro código condicionais (ZERO, NEGATIVO, OVERFLOW, CARRY). Inteiros com sinal são representados em forma de dois complementos de 32 bits. Apenas instruções simples de carregar e armazenar referenciam memória. Existem instruções de carregar e armazenar separadas para palavra (32 bits), palavra dupla, meia palavra e byte.
- 1.2.7 Para dois últimos casos, existem instruções para carregar essas grandezas como números com ou sem sinal. Números com sinal são estendidos para preencher o registrador de destino de 32 bits. Números sem sinal são completados com zeros. O único modo de endereçamento disponível além do modo de registrador é o modo por deslocamento. Isto é, o endereço efetivo (EA) de um operando consiste de um deslocamento a partir de um endereço contido em um registrador:
- EA = (RS1) + (RS2) ou AE = (RS1) + S2
- 1.2.8 Dependendo se o segundo operando é imediato ou uma referência de registrador. Para executar uma leitura ou escrita, um estágio extra é adicionado ao ciclo de instrução. Durante o segundo estágio, o endereço da memória é calculado usando o ALU; leitura ou escrita ocorre no terceiro estágio. Este modo de endereçamento único é bem versátil e pode ser usado para sintetizar outros modos de endereçamento. É instrutivo comparar a capacidade de endereçamento do SPARC com a do MIPS. O MIPS faz uso de um off set de 16 bits, comparado com o off set de 32 bits do SPARC. Por outro lado, o MIPS não permite que um endereço seja construído a partr dos conteúdos de dois registradores.
- 1.3 Formato da instrução
- 1.3.1 Assim como MIPS R4000, SPARC usa um conjunto simples de formatos da instrução de 32 bits. Todas as instruções começam com um opcode de 2 bits. Para maioria das instruções, isso é estendido com bits de opcode adicionais em outros lugares do formato. Para a instrução de Chamada (call), um operando de 30 bits é estendido com dois bits 0 para direita para formar um endereço relativo ao PC de 32 bits na forma de complemento de dois. As instruções são alinhadas dentro de um limite de 32 bits para que esta forma de endereçamento seja suficiente.
- 1.3.2 A instrução de Desvio inclui um campo condicional de 4 bits que corresponde ao padrão de 4 bits de código de condição, para que qualquer combinação de condições possa ser testada. O endereço relativo ao PC de 22 bits é estendido com dois zeros para a direita para formar um endereço de 24 bits em complemento de dois. Um recurso incomum da instrução Desvio é o bit de anulação. Quando o bit de anulação é igual a zero, a instrução depois do desvio é sempre executada, independentemente se o desvio é tomado. Esta é a típica operação de atraso de desvio encontrada em muitas máquinas RISC. No entanto, quando o bit de anulação é igual a um, a instrução depois do desvio só é executada se o desvio é tomado. O processador suprime o efeito dessa instrução mesmo que ela já esteja no pipeline.
- 1.3.3 Esse bit de anulação é útil porque torna mais fácil para o compilador preencher o delay slot que segue um desvio condicional. A instrução que é alvo do desvio sempre pode ser colocada no delay slot, porque se o desvio não for tomado, a instrução pode ser anulada. Esta técnica é desejável porque os desvios condicionais geralmente são tomados mais da metade das vezes. A instrução SETHI é uma instrução especial usada para carregar ou armazenar um valor de 32 bits.
- 1.3.4 Este recurso é necessário para carregar e armazenar endereços e constantes grandes. A instrução SETHI define os 22 bits de ordem mais alta de um registrador com seu operando imediato de 22 bits e os 10 bits de ordem mais baixa com zeros. Uma constante imediata de até 13 bits pode ser especificada em um dos formatos gerais e tal instrução pode ser usada para preencher os 10 bits restantes do registrador. Uma instrução de carregar ou armazenar também pode ser usada para alcançar um modo de endereçamento direto. Para carregar um valor da posição K na memória, poderíamos usar as seguintes instruções SPARC:
- 1.3.5 sethi %hi(K), %r8 ;carrega 22 bits de ordem mais alta do endereço da posição
- 1.3.6 ;K para o r egistrador r
- 1.3.7 ld [%r8 + %lo(K)], %r8 ;carrega conteúdo da posição K em r8
- 1.3.8 As macros %hi e %lo são usadas para definir operandos imediatos consistindo de bits de endereço apropriado de uma posição. Este uso de SETHI é semelhante ao uso da instrução LUI no MIPS. O formato de ponto flutuante é usado para operações de ponto flutuante. Dois registradores de origem e um de destino são definidos.
- 1.3.9 Finalmente, todas as outras operações, incluindo carregar, armazenar, operações aritméticas e lógicas usam um dos dois últimos formatos. Um dos formatos usa dois registradores de origem e um registrador de destino, enquanto outro usa um registrador de origem, um operando de 13 bits imediato e um registrador de destino.
- 1.1 Conjunto de registradores do SPARC
- 1. A arquitetura SPARC (arquitetura de processador escalável — scalable processor architecture) refere-se a uma arquitetura definida pela Sun Microsystems. A Sun desenvolveu a sua própria implementação do SPARC, mas também licencia a arquitetura para outros fabricantes para produzirem máquinas compatíveis com SPARC. A arquitetura SPARC é inspirada na máquina RISC I de Berkeley e o seu conjunto de instruções e a sua organização de registradores é baseada no modelo RISC da Berkeley
2 Controvérsia de RISC versus CISC
- 2.1 Durante muitos anos, a tendência geral na arquitetura e organização de computadores foi aumentar a complexidade do processador: mais instruções, mais modos de endereçamento, mais registradores especializados e assim por diante. O movimento RISC representa uma quebra fundamental com a filosofia por trás desta tendência. Naturalmente, o aparecimento de sistemas RISC e a publicação de artigos pelos seus proponentes exaltando as virtudes de RISC levaram a uma reação por parte daqueles envolvidos no projeto de arquiteturas CISC. O trabalho que foi feito avaliando os méritos da abordagem RISC pode ser agrupado em duas categorias:
- 2.1.1 Quantitativa: tenta comparar o tamanho do programa e a velocidade de execução dos programas em máquinas RISC e CISC que usam tecnologias comparáveis.
- 2.1.2 Qualitativa: analisa questões como suporte para linguagem de alto nível e uso otimizado do estado atual de VLSI. A maior parte do trabalho em avaliações quantitativas foi feito por aqueles que trabalham em sistemas RISC e foi, em grande parte, favorável à abordagem RISC. Outros analisaram a questão e não fi caram convencidos. Existem vários problemas ao se tentar fazer tais comparações:
- 2.2 A maior parte do trabalho em avaliações quantitativas foi feito por aqueles que trabalham em sistemas RISC e foi, em grande parte, favorável à abordagem RISC. Outros analisaram a questão e não ficaram convencidos. Existem vários problemas ao se tentar fazer tais comparações:
- 2.2.1 Não existem pares de máquinas RISC e CISC que sejam comparáveis em custo de ciclo de vida, nível de tecnologia, sofisticação do compilador, suporte de sistema operacional e assim por diante.
- 2.2.2 Não existe nenhum conjunto de programas de teste definitivo. Os desempenhos variam com o programa.
- 2.2.3 É difícil separar os efeitos de hardware dos efeitos provenientes da capacidade em escrever compiladores.
- 2.2.4 A maioria das análises comparativas sobre RISC foram feitas em máquinas “brinquedos” em vez de produtos comerciais. Além disso, a maioria das máquinas comercialmente disponíveis possui propagandas que as destacam como uma mistura de características RISC e CISC. Assim, uma comparação justa com uma máquina comercial real CISC é difícil.
- 2.3 A avaliação qualitativa é, quase que por definição, subjetiva. Vários pesquisadores voltaram a sua atenção para tal avaliação, mas os resultados são, na melhor das hipóteses, ambíguos e certamente sujeitos à replica e, é claro, à tréplica.
- 2.4 Em anos mais recentes, a controvérsia RISC versus CISC sumiu quase que totalmente. Isso aconteceu porque houve uma convergência gradual das tecnologias. Com o aumento da densidade dos chips e da velocidade do hardware, os sistemas RISC se tornaram mais complexos. Ao mesmo tempo, em um esforço para obter o máximo desempenho, os modelos CISC focaram em questões tradicionalmente associadas com RISC, como um aumento no número de registradores de uso geral e mais ênfase no projeto do pipeline de instruções.
- 2.1 Durante muitos anos, a tendência geral na arquitetura e organização de computadores foi aumentar a complexidade do processador: mais instruções, mais modos de endereçamento, mais registradores especializados e assim por diante. O movimento RISC representa uma quebra fundamental com a filosofia por trás desta tendência. Naturalmente, o aparecimento de sistemas RISC e a publicação de artigos pelos seus proponentes exaltando as virtudes de RISC levaram a uma reação por parte daqueles envolvidos no projeto de arquiteturas CISC. O trabalho que foi feito avaliando os méritos da abordagem RISC pode ser agrupado em duas categorias:
Information
- Description
- Mind Map on Equipe 8 - Capítulo 13 parte 4, created by GABRIEL GALVAO SOARES SILVA on 01/06/2022.
- Created by
- GABRIEL GALVAO SOARES SILVA
- Views
- 5
- Rating