Post on 17-Apr-2015
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