49
Arquitetura de Computadores Introdução à arquitetura do hardware 1 José Delgado © 2012 Introdução à arquitetura do hardware Descodificação de endereços Núcleo do processador • Microprogramação

Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Embed Size (px)

Citation preview

Page 1: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 1 José Delgado © 2012

Introdução à arquitetura do hardware

• Descodificação de endereços

• Núcleo do processador

• Microprogramação

Page 2: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 2 José Delgado © 2012

Espaço de endereçamento

FFFFH

0000H

Esp

aço

de

end

ereç

amen

to

(co

m 1

6 b

its)

Memória 1

Periférico 1

Periférico 2

Periférico 3

Memória 2

Processador

Unidade de

controlo

Unidadede

dados

Bus de endereços

Bus de dados

Bus de controlo

Page 3: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 3 José Delgado © 2012

Diagrama de blocos

Processador Memória Periférico Descodificador

de endereços

Bus de dados

CS1 CS2

Bus de endereços

RD

WR

Page 4: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 4 José Delgado © 2012

Ciclo de bus com chip select

• Os chip selects

são normalmente

ativos a zero

• Os flancos

ascendentes dos

sinais de RD e

WR devem

ocorrer “dentro”

do período ativo

do chip select.

Relógio

Bus de

RD

WR

dados

endereços

Bus de dados

endereço

select Chip

Page 5: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 5 José Delgado © 2012

Descodificação de endereços

• Cada dispositivo liga aos bits de menor peso do bus de endereços

• O descodificador de endereços liga aos bits de maior peso do bus de endereços.

Processador Memória Periférico Descodificador

de endereços

Bus de dados

CS1

CS2

Bus de endereços

RD

WR

Page 6: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 6 José Delgado © 2012

• Supondo um processador de 8 bits com este mapa de endereços:

Mapa de endereços

ROM

Periféricos

RAM 1

RAM 0

000000

0FFFFF

100000

1FFFFF

FFFFFF

800000

500000

500FFF

– Quantos bits deve ter no mínimo o bus de endereços?

– Qual o espaço de endereçamento deste mapa de endereços?

– Qual a capacidade da RAM? – Qual a capacidade da ROM?

– Qual o espaço reservado para periféricos?

– Qual o espaço livre?

– Quantos bits de endereço devem ligar a cada módulo de RAM?

– E à ROM?

24

16 MB

2 MB 8 MB

4 KB

6 MB – 4 KB

20

23

Page 7: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 7 José Delgado © 2012

Geração dos chip selects

A23

A22 A21 A20

ROM

Periféricos

RAM 1

RAM 0

000000

0FFFFF

100000

1FFFFF

FFFFFF

800000

500000

500FFF

Decoder

1 para 8

A12..A19

Page 8: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 8 José Delgado © 2012

A23

A22 A21 A20

ROM

Periféricos

RAM 1

RAM 0 000000

0FFFFF 100000

1FFFFF

FFFFFF

800000

500000 500FFF

Decoder

1 para 8

A12..A19

Geração dos chip selects • A geração do chip select

dos “GRANDES” dispositivos é geralmente simples e feita à medida.

• A geração do chip select dos “pequenos” dispositivos é geralmente feita por discriminação de um bocado médio (com gates ou com outros descodificadores).

• A geração do chip select dos dispositivos “médios” é geralmente feita com descodificadores que dividem o mapa de endereços em bocados iguais.

• Regra geral, não deve haver sobreposições.

Page 9: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 9 José Delgado © 2012

Descodificação com PROM

Neste caso é possível programar os endereços em módulos de 4K.

ROM

Periféricos

RAM 1

RAM 0

000000

0FFFFF

100000

1FFFFF

FFFFFF

800000

500000

500FFF

A23

.

.

.

A12

PROM

(Programmable

ROM)

Em cada palavra da PROM, só um bit pode estar a 0.

Page 10: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 10 José Delgado © 2012

Descodificação com PROM • A PROM permite gerar

tantos chip selects quantos os bits da sua largura.

• Em cada palavra, só pode haver um bit a 0.

• Os bits de endereço da PROM ligam aos bits de maior peso do bus de endereços.

• São precisos tantos bits quantos os requeridos pelo dispositivo de endereçamento mais fino (que ocupará apenas uma palavra da PROM).

• Os dispositivos “maiores” (RAM, por exemplo) ocuparão várias palavras da PROM com o bit da saída respetiva a 0.

• Zonas do espaço de endereçamento sem dispositivo têm a palavra respetiva com os bits todos a 1.

ROM

Periféricos

RAM 1

RAM 0 000000

0FFFFF 100000

1FFFFF

FFFFFF

800000

500000 500FFF

A23

.

.

.

A12 PROM

(Programmable

ROM)

Page 11: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 11 José Delgado © 2012

Descodificação com PROM • Neste exemplo, cada

palavra da PROM corresponde a 4 K endereços do processador (para bater certo com o requerido pelos periféricos).

• Quantas palavras deve ter a PROM?

• Mudar o mapa de endereços implica apenas substituir ou reprogramar a PROM (que deve ser EPROM, EEPROM, FLASH, etc).

4 K

• Qual o conteúdo da PROM?

800 a FFF

501 a 7FF

500

200 a 4FF

100 a 1FF

000 a 0FF

1111 0111

1111 1111

1111 1011

1111 1111

1111 1101

1111 1110

ROM

vazio

periféricos

vazio

RAM 1

RAM 0

ROM

Periféricos

RAM 1

RAM 0 000000

0FFFFF 100000

1FFFFF

FFFFFF

800000

500000 500FFF

A23 .

.

. A12

PROM

(Programmable

ROM)

Page 12: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 12 José Delgado © 2012

Descodificação mista Isto permite que a PROM seja

8 vezes mais pequena, com

menos palavras repetidas.

ROM

Periféricos

RAM 1

RAM 0

000000

0FFFFF

100000

1FFFFF

FFFFFF

800000

500000

500FFF Decoder

1 para 8 A23

.

.

.

A15 PROM

(Programmable

ROM)

A12

A14 A13

Page 13: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 13 José Delgado © 2012

Endereçamento de

byte e de palavra • A memória é vista como um vetor

linear : – de bytes (8 bits), ou

– de palavras do processador (N bits)

• Endereçamento de byte: – Permite acesso direto a um byte

– Complica interface de memória (acesso aos bytes que não sejam o de menor peso de cada palavra)

– Espaço de endereçamento é menor

– PC e SP têm de variar de 2 em 2 (processador de 16 bits) ou de 4 em 4 (processador de 32 bits)

Endereçamento

de byte (P de 32 bits)

0CH

08H

04H

00H

10H

Endereçamento

de palavra

03H

02H

01H

00H

04H

Page 14: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 14 José Delgado © 2012

“Big-endian” vs “little-endian”

• Em ambos os casos, os inteiros representam-se com os

bits de maior peso à esquerda.

• A diferença está na ordem pela qual os bytes

aparecem.

Big-endian

0CH

08H

04H

00H

10H

8 9 A B

4 5 6 7

0 1 2 3

Little-endian

0CH

08H

04H

00H

10H

B A 9 8

7 6 5 4

3 2 1 0

Exemplo 03 0F 0A 07 H 03 0F 0A 07 H

Page 15: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 15 José Delgado © 2012

“Big-endian” vs “little-endian”

• No big-endian, o byte de maior peso está no byte com menor endereço (isto é, aparece primeiro quando se vai incrementando os endereços).

• No little-endian, é o byte de menor peso que aparece primeiro.

Big-endian

0CH

08H

04H

00H

10H

8 9 A B

4 5 6 7

0 1 2 3

Little-endian

0CH

08H

04H

00H

10H

B A 9 8

7 6 5 4

3 2 1 0

Exemplo 03 0F 0A 07 H 03 0F 0A 07 H

Page 16: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 16 José Delgado © 2012

“Big-endian” vs “little-endian”

• Esta distinção só é importante:

– Ao aceder aos bytes individuais de uma palavra;

– Ao trocar dados entre computadores.

Big-endian

0CH

08H

04H

00H

10H

8 9 A B

4 5 6 7

0 1 2 3

Little-endian

0CH

08H

04H

00H

10H

B A 9 8

7 6 5 4

3 2 1 0

Exemplo 03 0F 0A 07 H 03 0F 0A 07 H

Page 17: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 17 José Delgado © 2012

Acessos à memória flexíveis

• Alguns processadores suportam:

– Acessos a bytes e a palavras de 16 bits e 32 bits (potências de 8 bits até à largura da palavra do processador). Cada instrução tem de indicar o tipo de acesso;

– Acessos desalinhados a palavras, em qualquer endereço, o que pode implicar dois acessos e corte e costura...).

10

0CH

08H

04H

00H

10H 11 12 13

C D E F

8 9 A B

4 5 6 7

0 1 2 3

Acessos

alinhados em 8, 16

e 32 bits

Acesso desalinhado

(32 bits, endereço

01H)

Page 18: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 18 José Delgado © 2012

Bits de menor peso • As memórias são geralmente feitas

com chips (circuitos integrados) com largura de 8 bits, por isso são precisos: – 2 em paralelo para fazer 16 bits.

– 4 em paralelo para fazer 32 bits.

• Os vários chips em paralelo podem ser acedidos simultaneamente em cada acesso, e é o processador que depois individualiza os bytes, se necessário.

• No endereçamento de byte, os bits de menor peso do bus de endereço não ligam à memória: – num processador de 16 bits, A0

– num processador de 32 bits, A1 e A0

Endereçamento

de byte (P de 32 bits)

0CH

08H

04H

00H

10H

Endereçamento

de palavra

03H

02H

01H

00H

04H

Page 19: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 19 José Delgado © 2012

Ligação de RAMs em paralelo

RAM

(8 bits)

Descodificador

de endereços

31..24

CS-RAM

RD

WR

RAM

(8 bits)

RAM

(8 bits)

RAM

(8 bits)

23..16 15..8 7..0

Bus de endereços

An..A2 An..A2 An..A2 An..A2

Bus de dados

Processador

(32 bits)

BS3 BS0

• BS3..0 (Byte Select) – Indica que bytes são acedidos.

Page 20: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 20 José Delgado © 2012

Voltemos ao PEPE-8

• Objetivo: somar um número com todos os inteiros

positivos menores que ele.

soma = N + (N-1) + (N-2) + . . . + 2 + 1

1. soma 0 (inicializa soma com zero) 2. temp N (inicializa temp com N)

3. Se (temp < 0) salta para 8 (se temp for negativo, salta para o fim) 4. Se (temp = 0) salta para 8 (se temp for zero, salta para o fim) 5. soma soma + temp (adiciona temp a soma) 6. temp temp – 1 (decrementa temp)

7. Salta para 4 (salta para o passo 4) 8. Salta para 8 (fim do programa)

Page 21: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 21 José Delgado © 2012

Só uma constante por instrução

• Decompôr instruções com várias constantes em instruções mais

simples, cada uma só com uma constante.

• Já não há endereços e valores numéricos na mesma instrução).

• Usa-se um registo auxiliar (A) para guardar valores entre instruções.

0 M[soma] 0 0 A 0 1 M[soma] A

1 M[temp] N 2 A N 3 M[temp] A

2 Se (M[temp] < 0) PC 7 4 (A < 0) : PC 12

3 Se (M[temp] = 0) PC 7 5 (A = 0) : PC 12

4 M[soma] M[soma] + M[temp] 6 A A + M[soma] 7 M[soma] A

5 M[temp] M[temp] – 1 8 A M[temp] 9 A A – 1 10 M[temp] A

6 PC 3 11 PC 5

7 PC 7 12 PC 12

Page 22: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 22 José Delgado © 2012

Que operações são necessárias?

• Para correr o programa anterior, o hardware tem de suportar

as seguintes operações:

Operação Exemplo

Escrever uma constante no registo A A 0

Armazenar o registo A na memória M[soma] A

Ler uma célula de memória e escrever no registo A A M[temp]

Operação com o registo A e uma célula de memória como operandos A A + M[soma]

Operação com o registo A e uma constante como operandos A A – 1

Salto incondicional PC 7

Salto condicional (A = 0) : PC 12

Page 23: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 23

Arquitetura de base

José Delgado © 2012

Registo A

MUX

ALU

Memória

de dados

WR

endereço de dados

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

Memória de

instruções

SEL_ALU

PC

endereço de

instruções

Page 24: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 24 José Delgado © 2012

A M[endereço]

Registo A

MUX

ALU

Memória

de dados

WR

endereço de dados

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

Memória de

instruções

SEL_ALU

PC

endereço de

instruções

Page 25: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 25 José Delgado © 2012

M[endereço] A

Registo A

MUX

ALU

Memória

de dados

WR

endereço de dados

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

Memória de

instruções

SEL_ALU

PC

endereço de

instruções

Page 26: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 26 José Delgado © 2012

A A + M[endereço]

Registo A

MUX

ALU

Memória

de dados

WR

endereço de dados

resultado da operação

2.º operando

SEL_A

ESCR_A

Memória de

instruções

SEL_ALU

PC

endereço de

instruções

Page 27: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 27 José Delgado © 2012

A 0 ???

Registo A

MUX

ALU

Memória

de dados

WR

endereço de dados

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

Memória de

instruções

SEL_ALU

PC

endereço de

instruções

Page 28: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 28 José Delgado © 2012

A constante

constante

Registo A

MUX_A

ALU

Memória

de dados

WR

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

MUX_B

Memória de

instruções

SEL_B

Page 29: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 29 José Delgado © 2012

A A + constante

Registo A

MUX_A

ALU

Memória

de dados

WR

constante

resultado da operação

2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

MUX_B

Memória de

instruções

SEL_B

constante

1.º operando

Page 30: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 30 José Delgado © 2012

Salto (PC 7) ???

Registo A

MUX_A

ALU

Memória

de dados

WR

constante

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

MUX_B

Memória de

instruções

SEL_B

Page 31: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 31 José Delgado © 2012

PC constante

Registo A

MUX_A

ALU

Memória

de dados

WR

constante

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

MUX_B

Memória de

instruções

SEL_B

ESCR_PC

Page 32: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 32 José Delgado © 2012

(A = 0) : PC constante • SEL_PC (2 bits): não salta, salto incondicional, salto

condicional (se A = 0 e se A < 0)

Registo A

MUX_A

ALU

Memória

de dados

WR

constante

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

MUX_B

Memória de

instruções

SEL_B

ESCR_PC

SEL_PC

bit de maior peso

0 1

MUX_PC

. . .

8

8

1

1

Page 33: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 33 José Delgado © 2012

PEPE-8: instruções com todos os sinais de controlo

Processador (PEPE-8), versão preliminar

Unidade de Controlo Unidade de Dados

Registo A

MUX_A

ALU

Memória

de dados

WR

constante

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

MUX_B

Memória de

instruções

SEL_B

ESCR_PC

SEL_PC

bit de maior peso

0 1

MUX_PC

8

. . .8

1

1

Page 34: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 34 José Delgado © 2012

PEPE-8: instruções com opcodes

Processador (PEPE-8)

Unidade de Controlo Unidade de Dados

Registo A

MUX_A

ALU

Memória

de dados

WR

constante

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

constante

MUX_B

Memória de

instruções

SEL_B

ESCR_PC

SEL_PC

bit de maior peso

0 1

MUX_PC

ROM de

descodificação

opcode

. . .8

1

1

8

Page 35: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitectura de Computadores – Introdução à arquitectura do hardware 35 José Delgado © 2012

Linguagem assembly

Categoria Instrução

assembly Significado Opcode Descrição em RTL

Transferência de dados

LD valor Load (imediato) 00H A valor

LD [endereço] Load (memória) 01H A M[endereço]

ST [endereço] Store (memória) 02H M[endereço] A

Operações aritméticas

ADD valor Add (imediato) 03H A A + valor

ADD [endereço] Add (memória) 04H A A + M[endereço]

SUB valor Subtract (imediato) 05H A A – valor

SUB [endereço] Subtract (memória) 06H A A – M[endereço]

Operações lógicas

AND valor AND (imediato) 07H A A valor

AND [endereço] AND (memória) 08H A A M[endereço]

OR valor OR (imediato) 09H A A valor

OR [endereço] OR (memória) 0AH A A M[endereço]

Saltos JMP endereço Jump 0BH PC endereço

JZ endereço Jump if zero 0CH (A=0) : PC endereço

JN endereço Jump if negative 0DH (A<0) : PC endereço

Diversos NOP No operation 0EH

Page 36: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 36 José Delgado © 2012

Instrução LD [endereço]

Processador (PEPE-8)

Unidade de Controlo Unidade de Dados

Registo A

MUX_A

ALU

Memória

de dados

WR

resultado da operação

1.º operando 2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

constante

MUX_B

Memória de

instruções

SEL_B

ESCR_PC

SEL_PC

bit de maior peso

0 1

MUX_PC

ROM de

descodificação

opcode

. . .8

1

1

8

constante

Page 37: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 37 José Delgado © 2012

Instrução ADD valor

Processador (PEPE-8)

Unidade de Controlo Unidade de Dados

Registo A

MUX_A

ALU

Memória

de dados

WR

constante

resultado da operação

2.º operando

SEL_A

ESCR_A

SEL_ALU

PC

endereço de

instruções

constante

MUX_B

Memória de

instruções

SEL_B

ESCR_PC

SEL_PC

bit de maior peso

0 1

MUX_PC

ROM de

descodificação

opcode

. . .8

1

1

8

constante

1.º operando

Page 38: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitectura de Computadores – Introdução à arquitectura do hardware 38 José Delgado © 2012

Programação em assembly

Programa em RTL Programa em assembly

0 A 0 1 M[soma] A 2 A N 3 M[temp] A 4 (A < 0) : PC 12 5 (A = 0) : PC 12 6 A A + M[soma] 7 M[soma] A 8 A M[temp] 9 A A – 1 10 M[temp] A 11 PC 5 12 PC 12

00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH

início: LD 0

ST [soma] LD N ST [temp] JN fim teste: JZ fim ADD [soma] ST [soma] LD [temp] SUB 1 ST [temp] JMP teste fim: JMP fim

Page 39: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 39 José Delgado © 2012

Agora um processador de 16 bits

Processador

Núcleo do

processador

Cache de

instruções

Cache de

dados

Interface

de

memória

Memória

principal

(dados e

instruções)

instruções

dados

dados

endereços

dados/instruções

endereços

de instruções

endereços

de dados

WR

RD

• Já não faz uma instrução por ciclo de relógio

• Tem um ciclo de ações elementares por cada

instrução

Page 40: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 40 José Delgado © 2012

Controlo

Unidade de

controlo

CLK

Unidade

aritmética e

lógica (ALU)

A B

Unidade de

processamento

de dados

Banco de

registos

MPX

MPX

PC

Registo de

instrução

flags

endereços

dados

dados/instr.

Bus dados

Interface d

e mem

ória

Bus end.

Bus contr. F

Ciclo do processador Descodifica

Registo de

instrução

Controlo

flags

Executa Banco de

registos

MPX

Unidade

aritmética e

lógica (ALU)

Escreve resultado Banco de

registos

Unidade

aritmética e

lógica (ALU)

MPX

Busca instrução

Registo de

instrução

PC

MPX

Interface d

e mem

ória

MPX

Busca operandos

(registos) Banco de

registos

Busca operandos

(memória) Banco de

registos

MPX

Interface d

e mem

ória

MPX

Page 41: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 41 José Delgado © 2012

Controlo

Unidade de

controlo

CLK

Unidade

aritmética e

lógica (ALU)

A B

Unidade de

processamento

de dados

Banco de

registos

MPX

MPX

PC

Registo de

instrução

flags

endereços

dados

dados/instr.

Bus dados

Interface d

e mem

ória

Bus end.

Bus contr. F

Exemplo MOV R2, [R3]

ADD R1, R2

MOV [R3], R1

MOV R2, [R3]

RI M[PC]

PC PC + 2

R2 M[R3]

ADD R1, R2

RI M[PC]

PC PC + 2

R1 R1 + R2

MOV [R3], R1

RI M[PC]

PC PC + 2

M[R3] R1 PC PC PC

RI M[PC]

PC PC + 2

R2 M[R3]

RI M[PC]

PC PC + 2

R2 M[R3]

RI M[PC]

PC PC + 2

R2 M[R3]

RI M[PC]

PC PC + 2

R1 R1 + R2

RI M[PC]

PC PC + 2

R1 R1 + R2

RI M[PC]

PC PC + 2

R1 R1 + R2

RI M[PC]

PC PC + 2

M[R3] R1

RI M[PC]

PC PC + 2

M[R3] R1

RI M[PC]

PC PC + 2

M[R3] R1

Page 42: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 42 José Delgado © 2012

Estrutura do processador

Gerador de

constantes

Banco de

registos

Unidade de

Controlo

I-Cache

Interface de memória

D-Cache

Unidade de exceções

ALU

MUX

REM

MUX

MUX

Portas tristate

Barramento

de dados

D15..D0

Barramento

de endereços

A15..A0

WR

RD

BR

QB

GT

WA

IT

INT

3

INT

2

INT

1

INT

0

RE

SE

T

BA

CL

EO

AC

ES

SO

À M

EM

ÓR

IA

PC

Registo de

instruções

Page 43: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 43 José Delgado © 2012

Núcleo do processador

I_OK_M

PC +2

Cache de

dados

D_BARR_END

D_ENTR

D_ESCR

D_LE

Banco de

Registos

Gerador de

constantes

M

U

X

M

U

X

M

U

X

M

U

X

ALU

REG_A

4

4

4

REG_C

SEL_C

4

16

SEL_RE

3

1

IND_A

IND_B

SEL_RE

SAIDA_RE

ENTR_RE

BARR_B

BARR_ABARR_A

BARR_B

5OP_ALU

SAIDA_ALU

4

4

4

3..0

7..4

11

..8

15..1

2

SEL_CONST

3

ESCR_C

SAZ,

SAN,

SAC,

SAV

Registo de

instruções

M

U

XR

EM

D_SAIDA

D_LE

D_ESCR

SEL_A

PA_C

PA_A

PA_A

LE_USP

ESCR_USP

LE_USP

ESCR_USP

16

OP_ALU

C_RE

ESCR_C

IND_C

BARR_C

Sinais de

controlo

PA_C

D_BAD_BA

EXC

DIV0

EXCESSO

Para a Unidade

de Exceções

Para a Unidade

de Exceções

MUX

0 1

Condições de salto

(Z, NZ, N, NN, C, GT, LE, etc)

SEL_SALTO4

SALTA_PC

Relógio

D_OK

Cache de

instruções

I_BARR_END

I_SAIDA

I_OK

Exceções

de busca

Unidade de

Exceções

EXC_FIM

Fontes de exceções

NUM_EXC

Para a Unidade

de Exceções

M

U

X

MAP

Unidade de

Controlo

ESCR_RI

ESCR_RI

SEL_OP_B

SEL_BARR_C

ESCR_REM

SEL_OP_A

Page 44: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 44 José Delgado © 2012

Controlo microprogramado Entradas da unidade

de controlo

Registo de endereço

de controlo

Gerador do próximo

endereço

Próximo

endereço

Saídas para unidade

de controlo

Saídas para unidade de

processamento de dados

relógio

Bits de estado (flags)

microinstrução

ROM com

micro-

programa

Endereço da

microinstrução

Page 45: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 45 José Delgado © 2012

Controlo e circuito controlado

MPC

ROM de

micro-

código

+1

MICRO_SALTO

M

U

X

1

MUX2 2SEL_MICRO_SALTO

0 1 Z nZ

RA RB

X

ESCR_RA

SHR_RA

ESCR_RB

DEC_RB

N

Z

ESCR_RA

SHR_RA

ESCR_RB

DEC_RB

nZ

Deslocar o registo X

de N bits

Page 46: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 46 José Delgado © 2012

Micro-

programa

MPC

ROM de

micro-

código

+1

MICRO_SALTO

M

U

X

1

MUX2 2SEL_MICRO_SALTO

0 1 Z nZ

RA RB

X

ESCR_RA

SHR_RA

ESCR_RB

DEC_RB

N

Z

ESCR_RA

SHR_RA

ESCR_RB

DEC_RB

nZ

Page 47: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 47 José Delgado © 2012

Descodificação da instrução

Entradas da

unidade de

controlo

Registo de endereço

de controlo

Gerador do próximo

endereço

Próximo

endereço

Saídas para unidade de

controlo

Saídas para unidade de

processamento de dados

relógio

Bits de estado (flags)

microinstrução

ROM com

micro-

programa

Endereço da

microinstrução

ROM de

mapeamento

opcode

Registo de instrução

Page 48: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 48 José Delgado © 2012

Unidade de controlo

I_OK_M

I_OK_M

PC

ESCR_RI

+2

MP

C

+1

ROM de

Mapeamento

MICRO_SALTO

SEL_MICRO_SALTO

3

Cache de

dados

D_BARR_END

D_ENTR

D_ESCR

D_LE

Banco de

Registos

Gerador de

constantes

M

U

X

M

U

X

M

U

X

M

U

X

ALU

REG_A

4

4

4

REG_C

SEL_C

4

16

SEL_RE

3

1

IND_A

IND_B

SEL_RE

SAIDA_RE

ENTR_RE

BARR_B

BARR_ABARR_A

BARR_B

5OP_ALU

SAIDA_ALU

4

4

4

3..0

7..4

11

..8

15..1

2

SEL_CONST

3

ESCR_C

SAZ,

SAN,

SAC,

SAV

Registo de

instruções

M

U

X

RE

M

ESCR_REM

D_SAIDA

D_LE

D_ESCR

SEL_A

PA_C

PA_A

PA_A

LE_USP

ESCR_USP

LE_USP

ESCR_USP

16

OP_ALU

C_RE

ESCR_C

IND_C

BARR_C

Sinais de

controlo

PA_C

Unidade de

Controlo

D_BAD_BA

M

U

Xm_EXC1

Controlo MPC

SALTA_MPC

EXC

DIV0

EXCESSO

Para a Unidade

de Exceções

Para a Unidade

de Exceções

MUX

0 1

Condições de salto

(Z, NZ, N, NN, C, GT, LE, etc)

SEL_SALTO4

ROM de

micro-

código

SALTA_PC

Relógio

D_OK

Cache de

instruções

I_BARR_END

I_SAIDA

I_OK

Exceções

de busca

Unidade de

Exceções

EXC_FIM

Fontes de exceções0 1nSAZ

SANnSA0

SAZ

MUX

SA0

NUM_EXC

MAP

Para a Unidade

de Exceções

M

U

X

m_BSC1M

U

X

ESCR_RI

SEL_BARR_C

SEL_OP_A

SEL_OP_B

Page 49: Introdução à arquitetura do hardware · Voltemos ao PEPE-8 • Objetivo: somar um número com todos os inteiros positivos menores que ele. soma = N + (N-1) + (N-2) + . . . + 2

Arquitetura de Computadores – Introdução à arquitetura do hardware 49 José Delgado © 2012

Microprogramação