prof. fábio m. costa instituto de informática universidade federal de goiás rganização de...

Post on 17-Apr-2015

103 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Prof. Fábio M. CostaInstituto de InformáticaUniversidade Federal de Goiás

Organização de Computadoresrganização de Computadores

Organização do ProcessadorOrganização do ProcessadorParte BParte B

Capítulo 5 – Patterson & HennessyCapítulo 5 – Patterson & Hennessy

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores2

Implementação Muticiclo

Dividir a execução de uma instrução em passos

Cada passo gasta 1 ciclo de relógio Permite que uma mesma unidade funcional

seja usada mais de uma vez por uma instrução:– uma única memória para dados e instruções– uma única UAL (sem os somadores especiais)

Elementos de estado são escritos na transição do relógio

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores3

Visão geral do caminho de dados multiciclo

Fig. 5.30

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores4

Elementos de estado intermediárioas

Armazenam um valor produzido durante um ciclo para uso no próximo ciclo (dentro da mesma instrução)– IR: instrução buscada da memória– MDR: dados lidos da memória– A e B: dados a serem alimentados nas entradas

respectivas da UAL– UALSaída: resultado produzido pela UAL

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores5

Caminho de dados detalhado(sem os sinais de controle)

Fig. 5.31

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores6

Caminho de dados com os sinais de controle

Fig. 5.32

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores7

Caminho de dados completo com a UC e lógica de atualização do PC...

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores8

Caminho de dados

Fig.5.33

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores9

Passos na execução de instruções...

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores10

Passos na execução de instruções

Regs[IR[20-16]] = MDR;

MDR = Mem[UALSaída]UALSaída = A +

extensão_sinal( IR[15-0]);

LW

PC = PC[31-28] || (IR[25-0]<<2);J

if (A==B) PC=UALSaída;BEQ

Mem[UALSaída] = B;SW

Regs[IR[15-11]] = UALSaída;

UALSaída =A op B;

A = Regs[IR[25-21]];

B = Regs[IR[20-16]];

UALSaída = PC + extensão_sinal( IR[15-0]) << 2;

IR = Mem[PC];PC = PC+ 4;

Tipo R

Passo 5: Escrita de

resultado para a instrução LW

Passo 4: Escrita de

resultado para instruções

tipo R e SW

Passo 3: Execução, cálculo de

endereço de memória,

desvio condicional

Passo 2: Decodificação

e Busca de Registradores

Passo 1: Busca da Instrução

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores11

Exercício

Analisar a possibilidade de:– Executar a instrução J em apenas dois

ciclos/passos– Executar a instrução LW em apenas quatro

ciclos/passos

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores12

Implementação da Unidade de Controle

Duas alternativas:– Máquina de estados– Microprogramação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores13

Implementação com máquina de estados: Visão geral

Fig. 5.36

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores14

Máquina de estados: Busca e Decodificação

Fig.5.37

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores15

Máquina deEstados:LW e SW

Fig. 5.38

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores16

Máquina de estados: Instruções Tipo R

Fig. 5.39

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores17

Máquina de estados: BEQ

Fig. 5.40

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores18

Máquina de estados: Desvio incondicional (J)

Fig. 5.41

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores19

Máquina de Estados Completa...

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores20 Fig. 5.42

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores21

Esboço da implementação

Fig. 5.43

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores22

Sinais deEntrada eSaída da UC

Fig. C.7

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores23

Equações lógicas da UC: Quais sinais são ativados em cada estado

Binário (S3 S2 S1 S0)Simbólico

0111

0100 + 0111

0010 + 0110 + 1000

0000 + 0001

0001 + 0010

1000

0110

1000

1001

0100

0000

0101

0000 + 0011

0011 + 0101

1000

0000 + 1001

XXXXXXestado7RegDst

XXXXXXestado4 + estado7EscReg

XXXXXXestado2 + estado6 + estado8UALFonteA

XXXXXXestado0 + estado1UALFonteB0

XXXXXXestado1 + estado2UALFonteB1

XXXXXXestado8UALOp0

XXXXXXestado6UAL0p1

XXXXXXestado8FontePC0

XXXXXXestado9FontePC1

XXXXXXestado4MemParaReg

XXXXXXestado0IREsc

XXXXXXestado5EscMem

XXXXXXestado0 + estado3LerMem

XXXXXXestado3 + estado5IouD

XXXXXXestado8PCEscCond

XXXXXXestado0 + estado9PCEsc

OperaçãoEquação lógica em função do(s) estado(s) corrente(s)Saída

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores24

Sinais de controle em função do estado corrente(Exercício: completar a tabela)

000EscReg

000RegDst

100UALFonteA

011UALFonteB0

110UALFonteB1

000UALOp0

000UAL0p1

000FontePC0

000FontePC1

000MemParaReg

001IREsc

000EscMem

001LerMem

000IouD

000PCEscCond

001PCEsc

1001100001110110010101000011001000010000

Valores das Entradas (S[3-0])Saídas

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores25

Equações lógicas da UC: Determinação do próximo estado (1)

(Op5 ... Op0)Simbólico

(Op = ´jmp´)

(Op = ´beq´)

-

(Op = ´tipo R´)

(Op = ´sw´)

-

(Op = ´lw´)

(Op = ´lw´) + (Op = ´sw´)

-

-

Operação

000010estado1PróximoEstado9 (1001)

000100estado1PróximoEstado8 (1000)

XXXXXXestado6PróximoEstado7 (0111)

000000estado1PróximoEstado6 (0110)

101011estado2PróximoEstado5 (0101)

XXXXXXestado3PróximoEstado4 (0100)

100011estado2PróximoEstado3 (0011)

100011 + 101011estado1PróximoEstado2 (0010)

XXXXXXestado0PróximoEstado1 (0001)

XXXXXXestado4 +estado5 + estado7 + estado8 + estado9

PróximoEstado0 (0000)

Estado(s) Corrente(s)

Saída(PE3 PE2 PE1 PE0)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores26

Equações lógicas da UC: Determinação do próximo estado (2)

(Op5 ... Op0)Simbólico

(Op = ´jmp´)

(Op = ´beq´)

-

(Op = ´tipo R´)

(Op = ´sw´)

-

(Op = ´lw´)

(Op = ´lw´) + (Op = ´sw´)

-

-

Operação

000010estado1PróximoEstado9 (1001)

000100estado1PróximoEstado8 (1000)

XXXXXXestado6PróximoEstado7 (0111)

000000estado1PróximoEstado6 (0110)

101011estado2PróximoEstado5 (0101)

XXXXXXestado3PróximoEstado4 (0100)

100011estado2PróximoEstado3 (0011)

100011 + 101011estado1PróximoEstado2 (0010)

XXXXXXestado0PróximoEstado1 (0001)

XXXXXXestado4 +estado5 + estado7 + estado8 + estado9

PróximoEstado0 (0000)

Estado(s) Corrente(s)

Saída(PE3 PE2 PE1 PE0)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores27

Equações lógicas da UC: Determinação do próximo estado (3)

(Op5 ... Op0)Simbólico

(Op = ´jmp´)

(Op = ´beq´)

-

(Op = ´tipo R´)

(Op = ´sw´)

-

(Op = ´lw´)

(Op = ´lw´) + (Op = ´sw´)

-

-

Operação

000010estado1PróximoEstado9 (1001)

000100estado1PróximoEstado8 (1000)

XXXXXXestado6PróximoEstado7 (0111)

000000estado1PróximoEstado6 (0110)

101011estado2PróximoEstado5 (0101)

XXXXXXestado3PróximoEstado4 (0100)

100011estado2PróximoEstado3 (0011)

100011 + 101011estado1PróximoEstado2 (0010)

XXXXXXestado0PróximoEstado1 (0001)

XXXXXXestado4 +estado5 + estado7 + estado8 + estado9

PróximoEstado0 (0000)

Estado(s) Corrente(s)

Saída(PE3 PE2 PE1 PE0)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores28

Equações lógicas da UC: Determinação do próximo estado (4)

(Op5 ... Op0)Simbólico

(Op = ´jmp´)

(Op = ´beq´)

-

(Op = ´tipo R´)

(Op = ´sw´)

-

(Op = ´lw´)

(Op = ´lw´) + (Op = ´sw´)

-

-

Operação

000010estado1PróximoEstado9 (1001)

000100estado1PróximoEstado8 (1000)

XXXXXXestado6PróximoEstado7 (0111)

000000estado1PróximoEstado6 (0110)

101011estado2PróximoEstado5 (0101)

XXXXXXestado3PróximoEstado4 (0100)

100011estado2PróximoEstado3 (0011)

100011 + 101011estado1PróximoEstado2 (0010)

XXXXXXestado0PróximoEstado1 (0001)

XXXXXXestado4 +estado5 + estado7 + estado8 + estado9

PróximoEstado0 (0000)

Estado(s) Corrente(s)

Saída(PE3 PE2 PE1 PE0)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores29

Equações lógicas da UC: Determinação do próximo estado (5)

(Op5 ... Op0)Simbólico

(Op = ´jmp´)

(Op = ´beq´)

-

(Op = ´tipo R´)

(Op = ´sw´)

-

(Op = ´lw´)

(Op = ´lw´) + (Op = ´sw´)

-

-

Operação

000010estado1PróximoEstado9 (1001)

000100estado1PróximoEstado8 (1000)

XXXXXXestado6PróximoEstado7 (0111)

000000estado1PróximoEstado6 (0110)

101011estado2PróximoEstado5 (0101)

XXXXXXestado3PróximoEstado4 (0100)

100011estado2PróximoEstado3 (0011)

100011 + 101011estado1PróximoEstado2 (0010)

XXXXXXestado0PróximoEstado1 (0001)

XXXXXXestado4 +estado5 + estado7 + estado8 + estado9

PróximoEstado0 (0000)

Estado(s) Corrente(s)

Saída(PE3 PE2 PE1 PE0)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores30

Implementação da lógica de controle através de uma ROM

Endereços: serão as entradas da lógica de controle– 6 bits de OpCode (bits 9-4) + 4 bits do estado corrente (bits 3-0)– i.e.: 10 bits: 210 = 1024 palavras (i.e. 1K palavras)

Palavras– 16 bits de sinais de controle do caminho de dados (bits 19-4)– 4 bits indicadores do próximo estado (bits 3-0)– Total: 20 bits

Tamanho da ROM: 1024 x 20 = 20Kbits– Obs.: muitas palavras serão desperdiçadas, por não

corresponderem a entradas significativas

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores31

Conteúdo da ROM (1): Sinais de controle em função do estado corrente

10000001000000001001

01000000101001001000

00000000000000110111

00000000010001000110

00101000000000000101

00000010000000100100

00110000000000000011

00000000000101000010

00000000000110000001

10010100000010000000

Conteúdo da palavra da ROM

(bits 19-4)

4 bits menos significativos do endereço

(estado corrente)

Tabela C.12

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores32

Conteúdo da ROM (2): Próximo estado em função do estado corrente e do opcode

ilegal000000000000000000001001

ilegal000000000000000000001000

ilegal000000000000000000000111

ilegal011101110111011101110110

ilegal000000000000000000000101

ilegal000000000000000000000100

ilegal010001000100010001000011

ilegal01010011XXXXXXXXXXXX0010

ilegal001000101000100101100001

0001000100010001000100010000

Qualquer outro valor

101011

(sw)

100011

(lw)

000100

(beq)

000010

(jmp)

000000

(Tipo R)

Estado corrente

S[3-0]

Op[5-0]

Fig. C-13

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores33

Otimização da implementação via ROM

Separar em duas ROMs:– Uma para conter os bits 19-4 da palavra de

controle Endereçada com os 4 bits menos significativos do

endereço (estado corrente)

– Outra ROM para conter os 4 bits menos significativos da palavra de controle

Endereçada com os 10 bits completos de endereço (6 do OpCode e 4 do estado corrente)

Qual o tamanho total das duas ROMs? Qual o design?

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores34

Implementação da lógica de controle com um PLA

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores35

Microprogramação

Simplifica o projeto do controle quando– O número de instruções é muito alto (centenas)– Há instruções complexas, que consomem vários ciclos

Uma forma textual de expressar a lógica de controle– Microprograma: seqüência de micro-instruções

representadas simbolicamente

Micro-instruções: determinam os sinais de controle que devem estar ativos em cada ciclo (i.e., estado) da execução de uma instrução

– Também determinam a próxima micro-instrução a ser executada: seqüenciamento

– São armazenadas em uma memória de controle (ROM)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores36

Formato das micro-instruções

Especifica como escolher a próxima micro-instrução a ser executada

Seqüenciamento

Especifica a fonte do valor que será escrito no PCControle de PCEsc

Especifica a leitura ou escrita na memória, bem como a fonte do endereço; se leitura, especifica também o registrador de destino

Memória

Especifica a leitura ou escrita no banco de registradores; se escrita, especifica também a fonte do valor a ser escrito

Controle de registrador

Especifica a fonte do segundo operando da UALSRC2

Especifica a fonte do primeiro operando da UALSRC1

Especifica a operação a ser realizada pela UAL no ciclo de relógio atual.

Controle da UAL

Função do campoNome do campo

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores37

Valores dos campos de uma micro-instrução (1)

Escrita a partir do MDR

Escrita a partir da UAL

LeituraControle de registrador

Estendido / deslocado

Estendido

4

BSRC2

A

PCSRC1

Código de função

Subtração

SomaControle da UAL

String - Nome da micro-instrução, usada para indicar a próxima micro-instrução a executar

Identificação

Valores possíveisNome do campo

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores38

Valores dos campos de uma micro-instrução (2)

Despacho i – usa o opcode e a tabela de despacho i para determinar a próxima micro-instrução a ser executada

Busca – inicia a busca da próx. instrução ISA

Seq – execução seqüencialSeqüenciamento

O endereço de desvio incondicional é usado para atualizar o PC

UALSaidaCond – escreve UALSaída no PC se o flag Zero estiver ativo

UAL – escreve a saída da UAL no PCControle PCEsc

Escrita, com endereço fornecido pela UAL

Leitura, com endereço fornecido pela UAL

Leitura, com endereço fornecido pelo PCMemória

Valores possíveisNome do campo

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores39

Seqüenciamento de micro-instruções

Seqüencial: a próxima micro-instrução a ser executada está no endereço seguinte na ROM de controle

– Apenas incrementa-se o endereço Busca: a próxima micro-instrução é a que executa a

busca da próxima instrução ISA a ser executada– Ao término da seqüência de micro-instruções que executou

uma dada instrução ISA Despacho: a próxima instrução é escolhida com

base no Opcode da instrução ISA sendo executada– Usado para indexar uma “tabela de despacho”, que contém

o endereço efetivo da próxima micro-instrução Tabelas de despacho: uma para cada estado com mais de

uma transição– Ex.: transições que partem do estado 1 na máq. de estados

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores40

Microprograma: Busca de instruções

Despa-cho 1

LeituraExtensão do sinal e desloca-mento de 2 bits à esquerda

PCAdd

SeqUALLer endereço especific. a partir do PC

4PCAddBusca

Seqüen-ciamento

Controle de PCEsc

MemóriaControle dos regis-tradores

SRC2SRC1Controle

da UAL

Identificação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores41

Microprograma: Instruções de acesso à memória

BuscaEscrita a partir do MDR

SeqLeitura do endereço especific. a partir da UAL

LW2

BuscaEscrita no endereço especific. a partir da UAL

SW2

Despacho 2

Extensão do sinal

AAddMem1

Seqüen-ciamento

Controle de PCEsc

MemóriaControle dos regis-tradores

SRC2SRC1Controle

da UAL

Identificação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores42

Microprograma: Instruções Tipo R

BuscaEscrita a partir da UAL

SeqBACódigo da função

(funct)

RFormat1

Seqüen-ciamento

Controle de PCEsc

MemóriaControle dos regis-tradores

SRC2SRC1Controle

da UAL

Identificação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores43

Microprograma: Instrução de desvio condicional

BuscaUALSaídaCond

BASubtBEQ1

Seqüen-ciamento

Controle de PCEsc

MemóriaControle dos regis-tradores

SRC2SRC1Controle

da UAL

Identificação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores44

Microprograma: Instrução de desvio incondicional

BuscaEndereço de desvio incondic.

JUMP1

Seqüen-ciamento

Controle de PCEsc

MemóriaControle dos regis-tradores

SRC2SRC1Controle

da UAL

Identificação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores45

Microprograma completo

BuscaEscrever a partir do MDR

SeqLer a partir de end. na UAL

LW2

Despacho2Ext AAddMem1

Despacho1LeituraExtDeslocPCAdd

BuscaEscrever em end. dado pela UAL

SW2

SeqBAfunctRFormat1

BuscaEscrever a partir da UAL

BuscaUALSaidaCond

BASubtr.BEQ1

BuscaEnd. desvio incondic.

JUMP1

SeqUALLer a partir de end. no PC

4PCAddBusca

Seqüen-ciamento

Controle de PCEsc

MemóriaControle dos registradores

SRC2SRC1Controle

da UAL

Identificação

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores46

Tabelas de Despacho

Tabela de Despacho 1

0010sw101011

0010lw100011

1000beq000100

1001jmp000010

0110Tipo R000000

Valor armazenado na tabela (próxima µ-instrução)

Nome da InstruçãoOperação (Opcode)

Tabela de Despacho 2

0101sw101011

0011lw100011

Valor armazenado na tabela (próxima µ-instrução)

Nome da InstruçãoOperação (Opcode)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores47

Implementação do microprograma

Duas partes:– Método para armazenar a função de controle

principal ROM, cujas palavras determinam:

– o valor das linhas de controle do caminho de dados– como selecionar a próxima micro-instrução

– Função de seqüenciamento incrementador (semelhante ao PC)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores48

Implementação do microprograma

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores49

Detalhamento...

(memória de controle)

Fig. C.15

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores50

Composição da Palavra de Controle

18 bits: bits 17-2: controle do caminho de dados

– Mesmos bits da Tabela C.12 (implementação da máquina de estados em ROM)

bits 1-0: indicam como determinar a próxima micro-instrução a ser executada

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores51

Detalhamento...

(memória de controle)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores52

Lógica de seleção do endereço da próxima micro-instrução (função de seqüenciamento)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores53

Significado dos bits AddrCtl (EndCtl) (bits 0 e 1 da palavra de controle)

Utilizar a saída do contador como o endereço da próxima µ-instrução

11

Obter endereço da próxima µ-instrução na tabela de despacho 2

10

Obter endereço da próxima µ-instrução na tabela de despacho 1

01

Ir para o estado 0 (busca)00

AçãoValor de AddrCtl

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores54

Valores dos bits AddrCtl (EndCtl) para cada micro-instrução (bits 0 e 1 da palavra de controle)

00Subst. o número do estado por 09

00Subst. o número do estado por 08

00Subst. o número do estado por 07

11Use o estado incrementado6

00Subst. o número do estado por 05

00Subst. o número do estado por 04

11Use o estado incrementado3

10Use a tabela de despacho 22

01Use a tabela de despacho 11

11Use o estado incrementado0

Valor de AddrCtl (EndCtl)

Ação da lógica de controle de endereço

Número do estado

(µ-instrução)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores55

Conteúdo da memória de controle

0010000001000000009

0001000000101001008

0000000000000000117

1100000000010001006

0000101000000000005

0000000010000000104

1100110000000000003

1000000000000101002

0100000000000110001

1110010100000010000

Bits 1-0 da palavra de controle

Bits 17-2 da palavra de controle

(ver Tabela C.12)

Número do estado

(µ-instrução)

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores56

Micromontador

Permite a codificação simbólica do microprograma– nomes simbólicos para as micro-instruções– rótulos em lugar de endereços

Gera o código binário que constituirá as palavras de controle armazenadas na memória de controle

Pode otimizar o uso de endereços seqüenciais para µ-instruções que executam em seqüência

– Otimiza o uso do contador de micro-programa (µ-PC)– i.e., mais µ-instruções vão ser seqüenciadas com base

apenas no incremento do contador

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores57

Outras otimizações

Codificação do micro-programa– Combinando linhas de controle mutuamente

exclusivas com o uso de decodificadores Ex.: 8 bits de controle que nunca são ativados

simultaneamente podem ser substituídas por 3 bits e um decodificador 3:8

– Permite reduzir o tamanho da palavra de controle (i.e., das micro-instruções)

Uso de vários formatos de micro-instruções Tarefa que pode ser realizada pelo micro-

assembler

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores58

Tratamento de Exceções

Eventos inesperados que mudam o fluxo normal de execução de instruções

Dois tipos:– Exceções: geradas internamente ao processador

Overflow aritimético Instrução inválida Chamada ao sistema operacional feita por um programa

do usuário

– Interrupções: originadas externamente Utilizadas por dispositivos de E/S para se comunicar

com o processador Mau funcionamento do hardware

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores59

Duas abordagens alternativas

Registrador de Causa (MIPS)– 32 bits– Armazena o tipo da exceção ocorrida– Desvio para uma área da memória que contém

código genérico de tratamento da exceção– O tratamento específico é feito com base no tipo

da exceção

Vetor de Interrupções (x86)– Cada exceção causa um desvio para um

endereço particular da memória, o qual contém código específico para o seu tratamento

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores60

Caminho de Dados com Tratamento de Exceções (Abordagem do MIPS) ...

Dois registradores adicionais:– EPC: guarda o endereço da instrução interrompida

Usado apenas se o tratamento da exceção permite a retomada da execução normal a partir do ponto onde foi interrompida

Não aplicável no MIPS simplificado– Causa: guarda o código da interrupção

0 = instrução indefinida 1 = overflow aritimético O valor desse registrador é decodificado pelo código

genérico de tratamento de interrupções para definir a rotina de tratamento específica a ser aplicada

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores61

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores62

Controle do Tratamento de Exceções - Dois novos estados:

PCSource

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores63

Máquina de Estados com Tratamento de Exceções...

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores64

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores65

Resumo das Alternativas de Implementação da Lógica de Controle

Prof. Fábio M. Costa - Instituto de Informática - UFG Organização de Computadores66

Trabalho - Preparativos

Estudar os dois simuladores de circuitos digitais disponíveis– Digital Works– Circuit Maker

Ambos disponíveis em:– www.inf.ufg.br/~fmc/orgcomp/simuladores

O trabalho consistirá em implementar o projeto do Capítulo 5 (Patterson&Hennessy) utilizando um destes simuladores

top related