Organização de Computadores - Aula 05 - Arquitetura do conjunto de instruções
Organização e Arquitetura de Computadores
Visão Geral da Seção: Nesta aula, o foco está na arquitetura do conjunto de instruções de um computador, abordando a diferença entre organização e arquitetura de computadores.
Definições Importantes
- A organização de computador refere-se às unidades operacionais e suas interconexões que realizam as especificações arquiteturais.
- A arquitetura de computador está mais próxima do programador, determinando as instruções executáveis e o acesso à memória.
Arquitetura do Conjunto de Instruções
- O termo ISA (Arquitetura do Conjunto de Instruções) define o repertório de instruções de um computador.
- Diferentes processadores Intel compartilham a mesma ISA para garantir compatibilidade desde os anos 70.
Elementos da Arquitetura do Conjunto de Instruções
- Cinco elementos principais caracterizam a ISA, influenciando o funcionamento e desempenho dos programas.
- Repertório das operações inclui instruções aritméticas, lógicas, movimentação de dados e controle.
Continuação sobre Instruções e Controle
Visão Geral da Seção: Explora-se detalhes sobre as instruções disponíveis em uma arquitetura do conjunto de instruções e seu papel no controle do programa.
Tipos de Instruções
- As instruções envolvem operações lógico-aritméticas, movimentação de dados entre memória e registradores, além das instruções de controle.
Instruções e Tipos de Dados
Visão Geral da Seção: Nesta parte, são abordadas as instruções de desvio condicional, tipos e tamanhos de dados em arquiteturas de computadores.
Instruções de Desvio Condicional
- As instruções incluem desvios condicionais, como executar um desvio se uma igualdade for verdadeira ou executar sequencialmente.
- Em arquiteturas modernas, os dados podem ter diferentes tamanhos, como 8 bits em uma arquitetura de 64 bits.
Tipos e Tamanhos de Dados
- É essencial adaptar operações para diferentes tamanhos de palavras em arquiteturas variadas.
- Definir mapeamentos para tipos de dados é crucial, especialmente ao lidar com instruções de linguagens de alto nível.
Endereçamento e Formato da Instrução
Visão Geral da Seção: Aqui são discutidos aspectos relacionados ao endereçamento na execução das instruções e a definição do formato das mesmas.
Endereçamento dos Operandos
- O modo como os operandos são acessados varia conforme a arquitetura define seus modos de endereçamento.
- A forma como as operações são realizadas depende do apontamento para registradores ou memória.
Formato da Instrução
- O formato da instrução determina a identificação do tipo da operação e dos operandos envolvidos.
- É necessário definir o número e tipo dos operandos em cada instrução para garantir sua correta execução.
Armazenamento dos Operandos
Visão Geral da Seção: Esta parte explora o armazenamento dos operandos nas instruções e suas diversas fontes.
Fontes dos Operandos
- Os operandos podem ser provenientes diretamente das instruções, registradores acumuladores ou memória.
Abordagem de Conjunto de Instruções na Década de 50
Visão Geral da Seção: Nesta seção, são discutidas as abordagens de conjunto de instruções nas décadas de 50 e 70, destacando a complexidade das instruções e a evolução para conjuntos mais simples.
Complexidade das Instruções na Década de 50
- Na década de 50, as instruções eram complexas, com uma variedade extensa e combinações diversas.
- As instruções eram associadas a múltiplas funções para otimizar o uso da memória, visando realizar várias operações em uma única instrução.
Microprogramação e Instruções Complexas
- A microprogramação permitiu desenvolver instruções complexas que podiam ser armazenadas na memória e executadas no processador.
- Exemplos incluem instruções como comparação de operadores seguida por troca desses operadores em uma única qualificação.
Flexibilidade dos Modos de Endereçamento
- Os computadores CISC apresentavam flexibilidade nos modos de endereçamento, permitindo diferentes combinações entre registradores e memória.
- Essa flexibilidade resultava em instruções com largura variável, exigindo múltiplos ciclos para execução.
Evolução para Conjunto Reduzido de Instruções (RISC)
Visão Geral da Seção: Aqui é explorado o movimento em direção ao RISC nos anos 80, caracterizado por um conjunto reduzido e simplificado de instruções.
Características do RISC
- O RISC introduziu um conjunto reduzido de instruções mais simples, facilitando a decodificação e tornando o hardware mais eficiente.
- Todas as instruções RISC possuíam tamanho fixo (32 bits), simplificando o projeto e garantindo previsibilidade no processo.
Simplicidade versus Flexibilidade
- A arquitetura RISC oferecia poucos modos de endereçamento e formatos padronizados para garantir simplicidade e estabilidade no sistema.
Contextualização dos Projetos de Arquitetura de Processadores
Visão Geral da Seção: Nesta parte, são abordados os diferentes projetos de arquitetura de processadores ao longo do tempo e como essas variações impactam o desempenho.
Ciclos de Execução e Desempenho Variável
- O número de ciclos para executar cada instituição pode influenciar significativamente o desempenho, levando a resultados distintos dependendo da abordagem adotada em cada projeto.
Evolução das Arquiteturas
- A linhagem do ARM nos processadores é destacada, sendo amplamente utilizado em sistemas embarcados atualmente, juntamente com o surgimento do Spark e outros processadores empregados em servidores.
Complexidade das Instruções e Tecnologia
- A transição da arquitetura CISC para RISC é mencionada, ressaltando que mesmo empresas tradicionais como a Intel não seguem mais estritamente a filosofia CISC devido aos avanços tecnológicos e capacidade expandida das memórias.
Impacto nas Estratégias de Desempenho