Organização e Arquitetura de Computadores I Parte de Controle Ivan Saraiva Silva Milano Gadelha
Sumário Introdução Topologia da parte de controle Implementação da PC Exemplo de Implementação Controle do MIC Lógica de Seqüenciamento do MIC
Introdução A parte de controle define, ciclo-a-ciclo, a seqüência de operações elementares executadas pela Parte Operativa Uma operação elementar é definida pelo conjunto de sinais que controlam em um ciclo o uso dos recursos da Parte Operativa. Uma Unidade de Controle (Parte de Controle) pode ser projetada Como uma memória de microprograma Como uma máquina de estados finitos
Topologia da Parte de Controle A Parte de Controle pode ser vista como uma Máquina de Moore. O estado atual define as computações a serem executadas no ciclo atual. A função próximo estado depende apenas do Estado Atual Maquina Meale Próximo estado é definido por: Resultados de Computações do estado atual Entradas Primárias do sistema.
Topologia da Parte de Controle Estado Atual Função de Saída Função Próximo Estado PO
Implementações da PC Diagrama de transição de estados Especifica estados existentes Especifica as condições de transição entre o estados Esconde uma tabela de transição de estado que mostra a implementação real
Implementações da PC Diagrama de transição de estados O estado atual é representado em um círculo Cada estado pode ser rotulado da seguinte forma Nome/Saída_produzida Mudanças de estado são indicadas por setas direcionais do estado atual para o próximo; Variáveis de entrada e saída, em cada transição estado são representadas ao lado da seta, separadas por barra
Exemplo de Implementação Reconhecedor de seqüências de uns Uma entrada de um bit Uma saída de um bit A saída é “1” se: O bit de entrada atual é “1” e Pelo menos os dois últimos bits da entrada foram “1”. 1 In Out
Exemplo de Implementação /Iniciar Iniciar Bit B/0 C/0 /Bit /Bit Bit /Bit /Bit D/0 E/1 Bit Bit
Exemplo de Implementação Para desenvolvermos uma tabela de estado Representar em coluna as 2n combinações da variável “estado atual” Representar em linha as 2m combinações das variáveis de entrada Na interseção linha/coluna representar, separados por barra, o próximo estado e os valores de saída do estado aual
Exemplo de Implementação /I /Bit /I Bit I /Bit I Bit C D A B A/0 B/0 D/0 E/0 E B/1 C/0 E/1
Exemplo de Implementação B C /I /Bit A/0 A/0 A/0 A/0 A/1 /I Bit A/0 A/0 A/0 A/0 A/1 I /Bit B/0 A/0 A/0 A/0 A/1 I Bit B/0 C/0 D/0 E/0 E/1
Exemplo de Implementação Bit Iniciar /Iniciar B/0 C/0 /I /Bit /Bit Bit /I /Bit A/0 D/0 /I /I /Bit E/1 Bit Bit
Controle do MIC A Unidade de controle do MIC não é baseada em máquinas de estado O MIC utiliza um controle microprogramado Que significa um programa que interpreta as instruções do MIC O microprograma representa uma visão abstrata da arquitetura
Microprograma Microprogramação envolve: Microinstrução Memória de microprograma Códigos de microprograma Microisntruções Sequenciamento de microinstruções Corresponde a execução sequencial do microprograma Microinstrução Palavra armazenada na memória de microprograma que “gera” um conjunto de sinais de controle para cada microtarefa executada na arquitetura.
Controle do MIC Relembrando a interface PC-PO do MIC AMUX: Controla a entrada do multiplexador ALU: Define a operação da ULA SH: Define se há deslocamento e a direção MBR: Habilita escrita no MBR a partir do deslocador MAR: Habilita escrita no MAR a partir do latch B RD: Requisita leitura da memória WR: Requisita escrita na memória ENC: Controla armazenamento nos registradores A, B e C : Endereços de leitura (A e B) e escrita (C) nos registradores
Controle do MIC RD WR C P C A C S P I R 1 -1 A M B M A B C D E F Z N MAR MBR ULA C P C A C S P I R T I R 1 -1 A M B M A B C D E F Z N 16
Controle do MIC A unidade de controle do MIC deve gerar, a cada ciclo, todos os sinais . Lógica de Cálculo do MPC MIR Registrador de Controle Micro MEM Memória de Controle Registrador MPC Seqüenciador
Controle do MIC “1” + MPC MEMORIA A M U X C O N D A D R A L U M B R M S H R D W R C B A
Lógica de Seqüenciamento do MIC Depende do código na micro-instrução atual do campo COND COND = 0 – Próxima instrução estará em MPC+1 COND = 1 – Próxima instrução estará em ADDR se N = 1, senão estará em MPC + 1 COND = 2 – Próxima instrução estará em ADDR se Z = 1, senão estará em MPC + 1 COND = 3 – Próxima instrução estará em ADDR
Exemplo de Microprograma Instrução LODD X Significado: AC := (M(x)) – conteudo da posição de memória X. Código de operação da instrução LODD “0000” mar := pc; rd; pc : pc + 1; rd; ir := mbr; if n goto 28; tir := lshift(ir + ir); if n goto 19; tir := lshift(tir); if n goto 11; alu := tir; if n goto 9; mar := ir; rd; rd; ac := mbr; goto 1;
Tarefas recomendadas Leitura do texto sobre sistemas seqüências que está na página do curso Leitura do material de apoio distribuído na sala de aula