Microarquitetura: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
JISSELEA (discussão | contribs)
pontuação
JISSELEA (discussão | contribs)
correções
Linha 1:
== Introdução ==
Microarquitetura ou μarch é a forma como um determinado conjunto de instruções (ISA) é implementado em um processador., Um determinado ISA podepodendo ser implementado com microarquiteturas diferentes. microarquiteturas.<sup>1</sup> As implementações podem variar devido a diferentes objetivos de um dado projeto ou a mudanças na tecnologia. A microarquitetura inclui os elementos constitutivos do processador e como estes interligam e interoperam para implementar o ISA. A ISA é aproximadamente o mesmo que o modelo de programação de um processador como visto por um programador de linguagem Assembly ou escritor de compilador. O ISA inclui o modelo de execução, registradores do processador, endereço e formatos de dados, entre outras coisas.
 
Existem diferenças entre arquitetura e microarquitetura de processadores. A arquitetura é um conjunto de registros, instruções e estruturas de dados, que são públicos para que possam ser utilizados pelos programadores. É através da arquitetura de um processador, que é possível definir se um conjunto de instruções é ou não compatível com a arquitetura. Por exemplo, se um conjunto processadores, utilizam a mesma arquitetura, isso significa que se em um desses processadores um certo conjunto de instruções pode ser executado, nos outros processadores com mesma arquitetura esse conjunto de instruções também poderá ser executado. A microarquitetura de um processador é o modo com que se usa a arquitetura para melhorar a velocidade e desempenho de processamento. É por isso que dentro de uma família de processadores, a microarquitetura pode ser atualizada frequentemente, pra melhorar o processamento, mas mesmo assim pode manter a arquitetura do processador.
 
Uma Microarquitetura é dividida em uma Parte Operativa e uma Parte de Controle. Parte Operativa (ou Caminho de Dados) - Constituída de todos os componentes responsáveis pela execução das operações elementares sobre os dados(transformações nos dados). Parte de Controle - Constituída de circuitos sequenciais e/ou memória de programa que gera o controle ciclo-a-ciclo da parte operativa.
A microarquitetura de um processador é o modo com que se usa a arquitetura para melhorar a velocidade e desempenho de processamento. É por isso que dentro de uma família de processadores, a microarquitetura pode ser atualizada frequentemente, pra melhorar o processamento, mas mesmo assim pode manter a arquitetura do processador.
 
A microarquitetura de uma máquina é geralmente representada com diagramas que descrevem as interligações dos vários elementos microarquiteturais da máquina, que pode ser tudo, desde portões individuais e registros, para completar a unidades de lógica e aritmética (ULA) e ainda maiores elementos. Estes diagramas geralmente separam o caminho de dados (onde os dados são colocados) e o caminho de controlo (que pode ser dito para dirigir os dados). Cada elemento da microarquitetura por sua vez é representado por um esquema que descreve as interconexões de portas lógicas usadas para implementá-lo. Cada porta lógica por sua vez é representado por um diagrama de circuito que descreve as conexões dos transistores usados para implementá-lo em alguma família lógica particular.
Uma Microarquitetura é dividida em uma Parte Operativa e uma Parte de Controle.
 
Parte Operativa (ou Caminho de Dados) - Constituída de todos os componentes responsáveis pela execução das operações elementares sobre os dados(transformações nos dados)
 
Parte de Controle - Constituída de circuitos sequenciais e/ou memória de programa que gera o controle ciclo-a-ciclo da parte operativa.
 
A microarquitetura de uma máquina é geralmente representada com diagramas que descrevem as interligações dos vários elementos microarquiteturais da máquina, que pode ser tudo, desde portões individuais e registros, para completar unidades de lógica e aritmética (ULA) e ainda maiores elementos. Estes diagramas geralmente separam o caminho de dados (onde os dados são colocados) e o caminho de controlo (que pode ser dito para dirigir os dados). Normalmente o diagrama conecta esses elementos com as setas e linhas grossas e finas linhas para distinguir entre ônibus de três estados - que requerem um buffer de três estado para cada dispositivo que dirige o ônibus; ônibus unidirecionais - sempre conduzidos por uma única fonte, como a forma como o barramento de endereços em computadores mais simples é sempre impulsionado pelo registo de endereços de memória; e linhas de controle individual. Computadores muito simples têm uma única organização barramento de dados - que têm um único barramento de três estados. O diagrama de computadores mais complexos geralmente mostra vários ônibus de três estados, que ajudam a máquina de fazer mais operações ao mesmo tempo.
 
Cada elemento da microarquitetura por sua vez é representado por um esquema que descreve as interconexões de portas lógicas usadas para implementá-lo. Cada porta lógica por sua vez é representado por um diagrama de circuito que descreve as conexões dos transistores usados para implementá-lo em alguma família lógica particular.
 
== Aspectos da microarquitetura ==
O caminho de dados em pipeline é o projeto central de dados mais comumente utilizados na microarquitetura hoje. Esta técnica é usada na maioria dos microprocessadores modernos, microcontroladores e DSPs. A arquitetura pipeline permiteatua múltiplascomo instruçõesuma paralinha sobreporde emmontagem execução,onde bemse comoproduz umamais linhaem demenos montagemtempo. O pipeline inclui diversas fases, que são fundamentais em projetos microarquitetura, algumas dessas etapas incluem instrução busca, decodificação de instruções, execução e gravação. Algumas arquiteturas incluem outras etapas, tais como acesso à memória. O projeto de pipeline é uma das tarefas centrais microarquiteturais.
 
Unidades de execução também são essenciais para a microarquitetura. Unidades de execução incluem unidades aritméticas lógicas (ALU), as unidades de ponto flutuante (FPU), unidades de carga / loja, previsão de desvios, e SIMD. Estas unidades executam as operações ou cálculos do processador. A escolha do número de unidades de execução, a sua latência e taxa de transferência é uma tarefa de projeto da microarquitetura central. O tamanho, a latência, o throughput ou periféricos como controladores de memoria e conectividade de memórias dentro do sistema também são decisões concepção microarquiteturais. Isso inclui decisões sobre o nível de desempenho e conectividade desses periféricos.
 
Como as decisões de design microarquitetura afetam diretamente o que se passa em um sistema o projeto da microarquitetura presta mais atenção aem questões como:
 
Área Chip / custo
Linha 26 ⟶ 19:
O consumo de energia
 
Complexidade lógica
complexidade Logic
 
Facilidade de conectividade
 
Manufaturabilidade
manufaturabilidade
 
Facilidade de depuração
Linha 36 ⟶ 29:
Testabilidade
 
== conceitosConceitos Microarquiteturais ==
Ciclo de instrução - Em geral, todos os processadores, microprocessadores de chip único ou implementações multi-chip programas executando as seguintes etapas executar:
Ciclo de instrução
 
Em geral, todos os processadores, microprocessadores de chip único ou implementações multi-chip programas executando as seguintes etapas executar:
 
Lê uma instrução e decodifica
Linha 51 ⟶ 42:
O ciclo de instrução é repetido continuamente até que a energia é desligada.
 
O aumento da velocidade de execução - Para complicar esta série de aparência simples de passos é o facto de a hierarquia de memória, que inclui o armazenamento em cache, a memória principal e de armazenamento não-volátil (como discos rígidos, onde as instruções e dados de programas residem), tem sido sempre mais lento do que o próprio processador. Uma quantidade considerável de pesquisa tem sido posta em projetos que evitam esses atrasos, tanto quanto possível. Ao longo dos anos, um objectivo central era de executar mais instruções em paralelo, aumentando assim a velocidade de execução de um programa eficaz. Estes esforços introduziram lógica e estruturas de circuitos complicadas.
O aumento da velocidade de execução
 
Para complicar esta série de aparência simples de passos é o facto de a hierarquia de memória, que inclui o armazenamento em cache, a memória principal e de armazenamento não-volátil (como discos rígidos, onde as instruções e dados de programas residem), tem sido sempre mais lento do que o próprio processador. Uma quantidade considerável de pesquisa tem sido posta em projetos que evitam esses atrasos, tanto quanto possível. Ao longo dos anos, um objectivo central era de executar mais instruções em paralelo, aumentando assim a velocidade de execução de um programa eficaz. Estes esforços introduziram lógica e estruturas de circuitos complicadas.
 
== Escolha de Conjunto de instruções ==