Arquitetura de Computadores - Operação da Unidade de Controle por Helcio Wagner da Silva Microoperações Execução de programa Ciclo de instrução Busca µO µO µO Ciclo de instrução Indireto µO Execução ... Ciclo de instrução interrupção µO 2 O Ciclo de Busca MAR MBR PC IR AC 0000000001100100 MAR MBR PC IR AC (a) Início MAR MBR PC IR AC 0000000001100100 0000000001100100 (b) Primeiro Passo 0000000001100100 0001000000100000 0000000001100100 (c) Segundo Passo MAR MBR PC IR AC 0000000001100100 0001000000100000 0000000001100100 0001000000100000 (d) Terceiro Passo 3 O Ciclo de Busca • Seqüência de eventos t1: MAR ← PC t2: MBR ← Memória PC ← PC + 1 t3: IR ← MBR µOs executadas simultaneamente • Seqüência de eventos alternativa t1: MAR ← PC t2: MBR ← Memória t3: PC ← PC + 1 µOs executadas simultaneamente IR ← MBR 4 O Ciclo Indireto • Após a instrução ter sido buscada, o próximo passo é buscar os operandos • Seqüência de eventos t1: MAR ← IR(Endereço) t2: MBR ← Memória t3: IR(Endereço) ← MBR(Endereço) 5 O Ciclo de Interrupção • Seqüência de eventos t1: MBR ← PC t2: MAR ← Endereço de salvamento PC ← Endereço da rotina t3: Memória ← MBR µOs executadas simultaneamente 6 O Ciclo de Execução • Ciclo complexo e imprevisível – Em uma máquina com N códigos de operação distintos, poderão existir N seqüência de µO • Exemplo #01 ADD R1, X • Seqüência de eventos t1: MAR ← IR(Endereço) t2: MBR ← Memória t3: R1 ← R1 + MBR 7 O Ciclo de Execução • Exemplo #02 ISZ X // o conteúdo da posição de memória X é incrementado de 1 e, se o resultado é zero, a próxima instrução será saltada • Seqüência de eventos t1: t2: t3: t4: MAR ← IR(Endereço) MBR ← Memória MBR ← MBR + 1 Memória ← MBR If (MBR = 0) then (PC ← PC + 1) 8 O Ciclo de Execução • Exemplo #03 BSA X // o endereço da instrução que segue a instrução BSA é armazenado na memória e a execução reinicia a partir do endereço X + 1 • Seqüência de eventos t1: MAR ← IR(Endereço) MBR ← PC t2: PC ← IR(Endereço) Memória ← MBR t3: PC ← PC + 1 9 O Ciclo de Instrução 11 (Interrupção) ICC ? 10 (Execução) Trata interrupção 00 (Busca) 01 (Indireto) Código de operação? Lê endereço Obtém instrução Executa instrução ICC = 00 Não ICC = 10 Interrupção? Endereçamento indireto? Sim Não ICC = 11 ICC = 00 ICC = 10 Sim ICC = 01 10 Controle do Processador • Elementos básicos – – – – – ULA Registradores Caminhos de dados internos Caminhos de dados externos Unidade de Controle • Funções da Unidade de Controle 1. Seqüenciamento 2. Execução 11 Modelo da Unidade de Controle Registrador de instrução Sinais de controle Internos ao µP ... Códigos de condição Unidade de Controle Sinais de controle do barramento Sinais de controle para o barramento relógio Barramento de controle 12 Sinais de Controle C5 C11 M B R C12 C10 C8 PC AC C4 C3 C1 C7 IR C9 C6 C0 M A R C2 relógio ULA C13 Unidade de Controle Sinais de controle Sinais de controle Códigos de condição 13 Sinais de Controle – ciclo de busca C5 C11 M B R C12 C10 C8 PC AC C4 C3 C1 C7 IR C9 C6 C0 C2 M A R t1: MAR ← PC C2 t2: MBR ← Memória PC ← PC + 1 C5,CR t3: IR ← MBR C4 relógio ULA C13 Unidade de Controle Sinais de controle Sinais de controle Códigos de condição 14 Sinais de Controle – ciclo indireto C5 C11 M B R C12 C10 C8 PC AC C4 C3 C1 C7 IR C9 C6 C0 C2 M A R t1: MAR ← IR(Endereço) C8 t2: MBR ← Memória t3: IR(Endereço) ← MBR(Endereço) C5,CR C4 relógio ULA C13 Unidade de Controle Sinais de controle Sinais de controle Códigos de condição 15 Sinais de Controle – ciclo de interrupção C5 C11 M B R C12 C10 C8 PC AC C4 C3 C1 C7 IR C9 C6 C0 M A R t1: MBR ← PC C1 t2: MAR ← End. Salvam. C5,CR PC ← End. rotina t3: Memória ← MBR C12,CW C2 relógio ULA C13 Unidade de Controle Sinais de controle Sinais de controle Códigos de condição 16 Organização Interna do Processador relógio Linhas de endereçamento Linhas de dados Unidade de Controle IR PC MAR MBR ULA AC Y Z Barramento Interno 17 Organização Interna do Processador relógio Linhas de endereçamento Linhas de dados Unidade de Controle IR PC MAR MBR ULA AC Y Z Barramento Interno t1: MAR ← IR(Endereço) t2: MBR ← Memória t3: Y ← MBR t4: Z ← AC + Y t5: AC ← Z 18 Implementação da Unidade de Controle • Implementação por HW – Unidade de Controle é reduzida a um circuito combinacional • Sinais lógicos de entrada são transformados em um conjunto de sinais lógicos de saída – os sinais de controle • Implementação microprogramada 19 Implementação por HW Registrador de intrução I1 I2 I3 ... Ik decodificador O1 O2 Relógio ... Om T1 T2 T3 ... Gerador de sinais de temporização (contador) O3 Tm Unidade de Controle C1 C2 C3 ... Códigos de condição Cw 20 Implementação por HW ENTRADAS SAÍDAS I1 I2 I3 I4 O1 O2 O3 O4 O5 O6 O7 O8 O9 O10 O11 O12 O13 O14 O15 O16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 Implementação por HW • Sinais de Controle P e Q – – – – PQ = 00 (Ciclo de busca) PQ = 01 (Ciclo indireto) PQ = 10 (Ciclo de execução) PQ = 11 (Ciclo de interrupção) • Expressão booleana para C5 C5 P Q T2 P Q T2 • Considerando que – C5 também é necessário durante o ciclo de instrução – As instruções LDA, ADD e AND façam uso da memória C5 P Q T2 P Q T2 P Q ( LDA ADD AND) T2 22