15
Arquitetura de Computadores Nível 1: Microarquitetura Rev1 www.portaleletronica.com.br Prof. Ricardo Tadeu Ferracioli 1 MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS A maioria dos computadores modernos consiste de dois ou mais níveis. Existem máquinas com até seis níveis, conforme mostra a Figura de hierarquia. O nível 0, na parte inferior, é o hardware verdadeiro da máquina. Seus circuitos executam os programas em linguagem de máquina do nível 1. Por razões de precisão, temos que mencionar a existência de outro nível abaixo do nosso nível 0. Esse nível, que não aparece na Figura de hierarquia por entrar no domínio da engenharia elétrica (e, portanto, estar fora do escopo), é chamado de nível de dispositivo. Nele, o projetista vê transistores individuais, que são os primitivos de mais baixo nível para projetistas de computador. Se alguém quiser saber como os transistores funcionam no interior, isso nos levará para o campo da física no estado sólido. Figura Nível

MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

  • Upload
    others

  • View
    22

  • Download
    1

Embed Size (px)

Citation preview

Page 1: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

1

MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS

A maioria dos computadores modernos consiste de dois ou mais níveis. Existem

máquinas com até seis níveis, conforme mostra a Figura de hierarquia. O nível

0, na parte inferior, é o hardware verdadeiro da máquina. Seus circuitos

executam os programas em linguagem de máquina do nível 1. Por razões de

precisão, temos que mencionar a existência de outro nível abaixo do nosso nível

0. Esse nível, que não aparece na Figura de hierarquia por entrar no domínio da

engenharia elétrica (e, portanto, estar fora do escopo), é chamado de nível de

dispositivo. Nele, o projetista vê transistores individuais, que são os primitivos

de mais baixo nível para projetistas de computador. Se alguém quiser saber

como os transistores funcionam no interior, isso nos levará para o campo da

física no estado sólido.

Figura Nível

Page 2: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

2

1. MICROARQUITETURA

O nível acima do lógico digital é o nível de microarquitetura. Sua função é

executar o nível ISA (Instruction Set Architecture – arquitetura do conjunto de

instruções) acima dele, como ilustrado na Figura Nível. O projeto do nível de

microarquitetura depende da ISA que está sendo implementada, bem como das

metas de custo e desempenho do computador.

✓ Função: implementar a camada ISA

− O projeto do nível de microarquitetura depende do conjunto de

instruções no nível ISA;

✓ Inicia-se o conceito de programa como uma sequência de instruções a

serem executadas diretamente pelos circuitos eletrônicos.

✓ A maior parte destas instruções envolve a movimentação de dados

através do caminho de dados, ou alguns testes simples.

✓ Em alguns computadores, a operação do caminho de dados é controlada

por um programa conhecido como microprograma.

O microprograma é um interpretador cuja função geral é buscar, decodificar e

executar instrução por instrução do nível ISA (i.e. instrução de máquina).

− Cada instrução de máquina é interpretada e pode dar origem à execução

de muitas microinstruções.

Page 3: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

3

Microprograma (interpretação):

• Função: buscar, decodificar e executar as instruções (de máquina), uma

a uma, usando o caminho de dados para a realização de uma tarefa.

- Exemplo: Execução de uma instrução de SOMA (ADD):

A instrução deve ser buscada na memória, seus operandos devem ser

localizados e trazidos para os registradores, a soma deve ser

calculada na ULA, e o resultado deve ser encaminhado para o lugar

apropriado.

• O microprograma é um conjunto de microinstruções.

• Ele é armazenado numa memória ROM do processador, chamada control

store, ou memória de controle.

• Cada microinstrução especifica os sinais de controle necessários para

controlar a microarquitetura.

Hardware (Microarquitetura):

• Em geral, enxerga-se:

− Um conjunto de 8 a 32 registradores

− O circuito da ULA (Unidade Lógica e Aritmética)

• Os registradores e a ULA são conectados para formar o Caminho de

Dados (Data Path), estrutura sobre a qual os dados fluem.

• A operação básica do caminho de dados

− Seleção de um-dois registradores para que a ULA opere sobre eles

Page 4: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

4

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 microprograma que

gera o controle ciclo-a-ciclo da parte operativa.

• Não existem os “princípios gerais de projeto de microarquitetura”.

- Depende do conjunto de instruções do nível ISA.

• Exemplo de microarquitetura adotado: MIC1.

- Um subconjunto da Máquina Virtual Java, em que há apenas instruções

inteiras -> IJVM.

• Nossa microarquitetura conterá um microprograma.

- Considere que cada instrução no nível ISA corresponde a uma função a

ser chamada pelo programa principal (microprograma)

- Cada função, formada por uma sequência de microinstruções, define os

passos a serem executados na microarquitetura.

Page 5: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

5

• Programa Principal:

- Composto por um loop que determina a função a ser chamada. E assim

sucessivamente.

• O microprograma tem um conjunto de variáveis que representam o estado do

computador.

- Cada função (que corresponde a uma instrução ISA) muda no mínimo

uma das variáveis que formam o estado.

- Na prática, essas variáveis correspondem aos registradores do sistema.

2. O CAMINHO DE DADOS

O caminho de dados é a parte da CPU que contém a ULA, suas entradas e

suas saídas. O caminho de dados de nossa microarquitetura de exemplo é

mostrado na Figura 2.1.

Como cada micro arquitetura é um caso especial, estudaremos um exemplo

conforme figura 2.1.

Os registradores de 32 bits, aos quais atribuímos nomes como PC, SP e MDR,

são acessíveis apenas no nível de microarquitetura (pelo microprograma). Eles

recebem esses nomes porque em geral contêm um valor correspondente à

variável do mesmo nome na arquitetura do nível de ISA. A maior parte dos

registradores pode dirigir seu conteúdo para o barramento B. A saída da ULA

comanda o deslocador e em seguida o barramento C, cujo valor pode ser escrito

em um ou mais registradores ao mesmo tempo. Por enquanto, não há nenhum

barramento A; incluiremos um mais adiante.

Page 6: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

6

• Caminho de Dados (Parte Operativa)

1) Contém a ULA e todas as suas entradas e saídas

- 6 linhas de seleção (F0,F1, ENA, ENB, INVA, INC)

- 2 entradas de dados (complemento de dois):

- 1º: sempre do registrador H (Holding)

- 2º: Qualquer um dos outros registradores, excluindo o H e MAR

2) Conjunto (array) de registradores

- Esses registradores só podem ser acessados no nível da

microarquitetura (ou seja, pelo microprograma).

• Em geral, esses registradores correspondem a variáveis (mesmo nome)

utilizadas no nível ISA.

Figura 2.1: Exemplo de caminho de dados de uma microarquitetura

Page 7: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

7

• MAR: guarda 32 bits do endereço de uma palavra da memória de dados;

• MDR: guarda uma palavra de 32 bits lidos da memória;

• PC: aponta para próxima instrução a ser executada;

• MBR: Guarda 8 bits da instrução lida da memória de programa;

• SP: aponta para o endereço do topo da pilha;

• LV: aponta para o endereço das variáveis locais na memória;

• CPP: aponta para o endereço do conjunto de constantes;

• TOS: armazena uma cópia do valor do topo da pilha dos operandos;

• OPC: armazena o valor anterior de PC;

• H: armazena temporariamente um operando da ULA.

O registrador mais importante é o Contador de Programa (PC – Program

Counter), que indica a próxima instrução a ser buscada para execução. (O nome

“contador de programa” é um tanto enganoso, porque nada tem a ver com contar

qualquer coisa; porém, o termo é de uso universal.) Também importante é o

Registrador de Instrução (IR – Instruction Register), que mantém a instrução que

está sendo executada no momento em questão. A maioria dos computadores

também possui diversos outros registradores, alguns de uso geral, outros de uso

específico. Outros registradores são usados pelo sistema operacional para

controlar o computador.

A ULA é idêntica à mostrada nas figuras 2.2 e 2.3. Sua função é determinada

por seis linhas de controle. O segmento de reta diagonal com rótulo “6” na Figura

2.1 indica que há seis linhas de controle de ULA, a saber:

➢ F0 e F1 para determinação da operação;

➢ ENA e ENB para habilitar individualmente suas entradas A e B;

➢ INVA para inverter a entrada de A;

➢ INC que força um vem-um para o bit menos significativo (incremento de

1).

Page 8: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

8

Figura 2.2: ULA de 1 bit.

Figura 2.3: Oito segmentos (slices) de ULA de 1 bit conectados para formar uma ULA de 8 bits.

Os sinais de habilitação e inversão não são mostrados por simplicidade.

Algumas das combinações mais interessantes são mostradas na Figura 2.4.

Contudo, nem todas as 64 combinações (6 𝑒𝑛𝑡𝑟𝑎𝑑𝑎𝑠 → 26) de linhas de controle

de ULA fazem algo de útil.

Page 9: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

9

Figura 2.4: Combinações úteis de sinais de ULA e a função executada.

A ULA da Figura 2.1 precisa de duas entradas de dados: uma entrada esquerda

(A) e uma entrada direita (B). Ligado à entrada esquerda está um registrador de

retenção, H. Ligado à entrada direita está o barramento B, que pode ser

carregado por cada uma de nove fontes, indicadas pelas nove setas cinza que

chegam até ele.

H pode ser carregado com a escolha de uma função da ULA que passe

diretamente da entrada direita (vinda do barramento B) para a saída da ULA.

Uma função desse tipo seria somar as entradas da ULA, porém, com ENA

negado, de modo que a entrada esquerda é forçada a zero. Adicionar zero ao

valor no barramento B resulta somente no valor no barramento B. Então, esse

resultado pode ser passado pelo deslocador sem modificação e armazenado em

H.

Page 10: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

10

3. OPERAÇÃO DE MEMÓRIA

Na execução de um programa há, em geral, quatro regiões logicamente distintas

na memória, que possuem funções específicas.

• Região de Código do Programa;

• Região de DADOS (Variáveis Globais)

• Pilha (Stack): dentre os diversos usos se destacam o endereço de retorno

das chamadas de função, argumentos para funções e variáveis locais,

além de guardar o estado atual da CPU.

• Heap: geralmente uma região de memória livre que um programa pode

usar para alocação dinâmica de memória (por exemplo).

• Uma microarquitetura executa instruções que são armazenadas na

memória.

• Instruções de um programa são executadas segundo uma ordem precisa.

• Uma microarquitetura necessita saber, sempre, qual a próxima instrução

a ser executada:

• Necessidade de um registrador apontador de programa (PC);

• Necessidade de realização de operações sobre o conteúdo do PC, para

atualização a cada instrução executada

• Existem duas “portas de memória” usadas pela máquina para se

comunicar com a memória, são elas:

1) Uma porta de 32 bits, que endereça palavras: controlada pelos

- registrador MAR (Memory Address Register – registrador de

endereço de memória);

Page 11: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

11

- registrador MDR (Memory Data Register – registrador de dados

de memória)

1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e

MBR

- Apenas de leitura

• O PC lê um byte da memória e o coloca nos 8 bits menos significativos do

registrador MBR;

• MBR – Memory Buffer Register

- Uma porta para leitura de dados usada quando se deseja ler da

memória dados de apenas 8 bits.

• Diferença na funcionalidade de MAR e PC é que eles são usados para

referenciar duas partes diferentes da memória

- MAR/MDR é usada para ler/escrever palavras de dados pertencentes

ao nível ISA;

- PC/MBR é usada para ler o programa executável (programa

constituído por um grupo de bytes).

• Transferência de Dados entre a MP e a CPU é realizada com o uso de dois

registradores especiais (para dados de 32 bits).

1) MAR – Memory Address Register

- REM – Registrador de Endereços de Memória

Page 12: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

12

- Armazena o endereço da memória, onde será lida ou gravada uma

palavra.

- Tamanho deve permitir acesso a todos os N endereços da memória

2) MDR – Memory Data Register

- RDM – Registrador de Dados da Memória

- Armazena a representação da informação (palavra) a ser transferida.

- Tamanho é, em geral, igual ao da palavra.

Cada um desses registradores (e todos os outros na Figura 1.1) é comandado

por um ou dois sinais de controle:

• Seta clara sob um registrador indica um sinal de controle que habilita a

saída do registrador para o barramento B. Visto que MAR não tem

Page 13: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

13

conexão com o barramento B, não tem sinal de habilitação. H também

não tem esse sinal porque está sempre habilitado, por ser a única entrada

esquerda possível da ULA.

• Seta negra sob um registrador indica um sinal de controle que escreve

(isto é, carrega) o registrador a partir do barramento C. Uma vez que MBR

não pode ser carregado a partir do barramento C, não tem um sinal de

escrita (embora tenha dois outros sinais de habilitação, descritos mais

adiante).

4. LEITURA DE DADOS

• A CPU coloca em MAR, o endereço da posição cujo conteúdo deve ser

lido;

• A CPU comanda uma leitura (sinal de controle para a memória - READ):

− MAR -> barramento de endereço

• O conteúdo (palavra) da posição do endereço contido em MAR, é então

transferido para o MDR

− barramento de dados -> MDR

5. ESCRITA DE DADO

• A CPU coloca em MAR o endereço de memória onde a palavra será gravada,

e em MDR a palavra a ser gravada.

• A CPU comanda uma gravação (sinal WRITE)

− MAR -> barramento de endereço

− MDR -> barramento de dados

• A palavra armazenada em MDR é então transferida para a posição de

memória cujo endereço está em MAR.

• O MAR guarda o endereço de uma palavra de 32 bits (devido às

necessidades da JVM... nível ISA)

- MAR = 0 => palavra 0 => bytes 0-3

- MAR = 1 => palavra 1 => bytes 4-7

- MAR = 2 => palavra 2 => bytes 8-11

Page 14: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

14

Page 15: MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e MBR - Apenas de leitura • O PC lê um byte da memória

Arquitetura de Computadores

Nível 1: Microarquitetura – Rev1

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

15

Para iniciar uma leitura ou escrita da memória, os registradores de memória

adequados devem ser carregados e em seguida deve ser emitido um sinal de

leitura ou escrita para a memória.

MAR (Memory Address Register) contém endereços de palavras, de modo que

os valores 0, 1, 2 etc. se referem a palavras consecutivas.

PC (contador de programa) contém endereços de bytes, portanto, os valores 0,

1, 2 etc. se referem a bytes consecutivos.

Essa diferença de funcionalidade é necessária porque MAR e PC serão usados

para referenciar duas partes diferentes da memória. A necessidade dessa

distinção ficará mais clara adiante. Por enquanto, basta dizer que a combinação

MAR/MDR é usada para ler e escrever palavras de dados de nível ISA e a

combinação PC/MBR é empregada para ler o programa executável de nível ISA,

que consiste em uma sequência de bytes. Todos os outros registradores que

contêm endereços usam endereço de palavras, como o MAR.