Mind map
RISC : caracteristicas de execução de instruções e uso de um banco grande de registradores | grupo 2 | pagina 2
Map content
RISC : caracteristicas de execução de instruções e uso de um banco grande de registradores | grupo 2 | pagina 2
Uma das formas da evolução associada a computadores são as linguagens de programação. Assim, o principal custo no ciclo de vida de um sistema é o software, não o hardware. Somado ao custo e à inconveniência, está o elemento da falta de confiabilidade: é comum que programas, tanto sistemas como aplicações, continuem a apresentar novas falhas depois de anos de operação.
- A resposta dos pesquisadores e da indústria foi desenvolver linguagens de programação de alto nível ainda mais poderosas e complexas.
- Esta solução trouxe outro problema, conhecido como diferença semântica, a diferença entre operações fornecidas em linguagens de alto nível e aquelas fornecidas na arquitetura do computador.
- Os projetistas responderam com arquiteturas voltadas para acabar com essa diferença. Principais recursos incluem grandes conjuntos de instruções, dúzias de modos de endereçamento e várias instruções das linguagens de alto nível implementadas no hardware.
- Um número de estudos foi feito durante anos para determinar as características e padrões de execução das instruções de máquina geradas a partir de programas das linguagens de alto nível. Os resultados desses estudos inspiraram alguns pesquisadores a procurar por uma abordagem diferente: mais precisamente, tornar a arquitetura que suporta linguagens de alto nível mais simples, em vez de mais complexa.
- Os projetistas responderam com arquiteturas voltadas para acabar com essa diferença. Principais recursos incluem grandes conjuntos de instruções, dúzias de modos de endereçamento e várias instruções das linguagens de alto nível implementadas no hardware.
- Esta solução trouxe outro problema, conhecido como diferença semântica, a diferença entre operações fornecidas em linguagens de alto nível e aquelas fornecidas na arquitetura do computador.
- A resposta dos pesquisadores e da indústria foi desenvolver linguagens de programação de alto nível ainda mais poderosas e complexas.
Operações
- Instruções de atribuição predominam, sugerindo que a simples movimentação de dados é de alta importância. Há também uma preponderância de instruções condicionais (IF, LOOP). Essas instruções são implementadas na linguagem de máquina com algum tipo de instruções de comparação e desvio. Isso sugere que o mecanismo de controle sequencial do conjunto de instruções é importante.
Operandos
- O estudo de Patterson e Sequin, que já foi referenciado (PATTERSON e SEQUIN, 1982 ), analisou também a frequência dinâmica de ocorrência de classes de variáveis. Os resultados, consistentes entre programas C e Pascal, mostram que a maioria das referências é de variáveis escalares simples.
- Além disso, mais de 80% de escalares eram variáveis locais (para o procedimento). As referências para vetores/estruturas requerem uma referência prévia para o seu índice ou ponteiro, o qual é novamente um escalar local. Assim, existe uma predominância de referências para escalares, e estas são altamente localizadas.
- O estudo de Patterson analisou o comportamento dinâmico dos programas de linguagens de programação de alto nível, independentemente da arquitetura subjacente; e sugere que o principal candidato para otimização é o mecanismo para armazenar e acessar variáveis locais escalares.
- Além disso, mais de 80% de escalares eram variáveis locais (para o procedimento). As referências para vetores/estruturas requerem uma referência prévia para o seu índice ou ponteiro, o qual é novamente um escalar local. Assim, existe uma predominância de referências para escalares, e estas são altamente localizadas.
- O estudo de Patterson e Sequin, que já foi referenciado (PATTERSON e SEQUIN, 1982 ), analisou também a frequência dinâmica de ocorrência de classes de variáveis. Os resultados, consistentes entre programas C e Pascal, mostram que a maioria das referências é de variáveis escalares simples.
Chamadas de procedimento
- O estudo de Tanenbaum (1978) concluiu que para 98% de procedimentos chamados dinamicamente foram passados menos do que seis argumentos e que 92% deles usaram menos do que seis variáveis locais escalares.
- O mesmo grupo de Berkeley analisou também o padrão de chamadas e retornos de procedimentos em programas de alto nível. Eles concluíram que é raro haver uma grande sequência ininterrupta de chamadas de procedimento seguida pela correspondente sequência de retornos.
- Eles concluíram que um programa permanece confinado a uma janela relativamente estreita de profundidade de chamadas de procedimentos.
- O mesmo grupo de Berkeley analisou também o padrão de chamadas e retornos de procedimentos em programas de alto nível. Eles concluíram que é raro haver uma grande sequência ininterrupta de chamadas de procedimento seguida pela correspondente sequência de retornos.
- O estudo de Tanenbaum (1978) concluiu que para 98% de procedimentos chamados dinamicamente foram passados menos do que seis argumentos e que 92% deles usaram menos do que seis variáveis locais escalares.
Grande banco de registradores versus cache
- O arquivo de registradores, organizado em janelas, age como um pequeno buffer para guardar um subconjunto de variáveis que têm mais probabilidade de ser bastante usadas desse ponto de vista, o arquivo de registradores age como uma memória cache, embora uma memória muito mais rápida
- A cache guarda uma seleção de variáveis escalares recentemente usadas e pode fazer uso mais eficiente do espaço, porque ela reage dinamicamente a situações. Além disso, ela geralmente trata todas as referências de memória da mesma forma, incluindo instruções e outros tipos de dados
- Um banco de registradores pode fazer uso ineficiente de espaço a cache sofre de outro tipo de ineficiência: os dados são lidos da cache em blocos. Enquanto o banco de registradores contém apenas as variáveis em uso, a cache lê um bloco de dados do qual uma parte menor ou até maior não será usada.
- Existe uma característica pela qual a abordagem de registrador é claramente superior e que sugere que um sistema baseado em cache será sensivelmente mais lento. Essa distinção aparece na quantidade de overhead de endereçamento experienciada pelas duas abordagens.
- Um banco de registradores pode fazer uso ineficiente de espaço a cache sofre de outro tipo de ineficiência: os dados são lidos da cache em blocos. Enquanto o banco de registradores contém apenas as variáveis em uso, a cache lê um bloco de dados do qual uma parte menor ou até maior não será usada.
- A cache guarda uma seleção de variáveis escalares recentemente usadas e pode fazer uso mais eficiente do espaço, porque ela reage dinamicamente a situações. Além disso, ela geralmente trata todas as referências de memória da mesma forma, incluindo instruções e outros tipos de dados
- O arquivo de registradores, organizado em janelas, age como um pequeno buffer para guardar um subconjunto de variáveis que têm mais probabilidade de ser bastante usadas desse ponto de vista, o arquivo de registradores age como uma memória cache, embora uma memória muito mais rápida
Uso de um banco grande de registradores
- A razão pela qual o armazenamento em registradores é indicado é que esse é o dispositivo de armazenamento mais rápido disponível, mais rápido que a memória principal e que a cache é necessária uma estratégia que irá permitir que operandos acessados mais frequentemente sejam guardados em registradores, minimizando operações registrador-memória
- Duas abordagens básicas são possíveis, uma baseada em software e outra baseada em hardware. A abordagem em software depende do compilador para maximizar o uso de registradores. A abordagem de hardware é simplesmente usar mais registradores para que mais variáveis possam ser guardadas em registradores por mais tempo.
- A razão pela qual o armazenamento em registradores é indicado é que esse é o dispositivo de armazenamento mais rápido disponível, mais rápido que a memória principal e que a cache é necessária uma estratégia que irá permitir que operandos acessados mais frequentemente sejam guardados em registradores, minimizando operações registrador-memória
Information
- Description
- Mind Map on RISC : caracteristicas de execução de instruções e uso de um banco grande de registradores | grupo 2 | pagina 2, created by Thiago Pena on 01/06/2022.
- Created by
- Thiago Pena
- Views
- 12
- Rating