Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal do Piauí Centro de Tecnologia Departamento de Engenharia Elétrica CIRCUITOS DIGITAIS II Prof. Marcos Zurita zurita@ufpi.edu.br www.ufpi.br/zurita Teresina - 2011 Microarquitetura 2 Circuitos Digitais II – Prof. Marcos Zurita Sumário ● 1. Microarquitetura ● 2. MIC-1 - Caminho de Dados ● 3. MIC-1 – Unidade de Controle ● 4. Temporização ● Bibliografia 3 Circuitos Digitais II – Prof. Marcos Zurita 1. Microarquitetura 4 Circuitos Digitais II – Prof. Marcos Zurita Microarquitetura Microarquitetura ● Pode ser dividida em duas partes: ● Caminho de Dados (parte operativa): composta pelos componentes responsáveis pela execução de operações elementares sobre os dados. ● Unidade de Controle: formada pelo circuito responsável pelo controle e coordenação da parte operativa, de modo a fazê-la executar as operações desejadas. Unidade de Controle Caminho de Dados (parte operativa) 5 Circuitos Digitais II – Prof. Marcos Zurita Microarquitetura MIC ● Microarquitetura didática proposta por Tanenbaum. ● Implementada em 4 versões: MIC-1, MIC-2, MIC-3 e MIC-4. ● Dedicada a executar um subconjunto das instruções da Máquina Virtual Java chamado IJVM. ● IJVM: Integer Java Virtual Machine – apenas instruções que operam com números inteiros. ● Modelo de memória Von Neumann. ● Capaz de acessar 32 bits de dados na memória simultaneamente (barramento de dados de 32 bits). ● Capaz de endereçar 4 GB de Memória Principal (barramento de endereços de 32 bits). 6 Circuitos Digitais II – Prof. Marcos Zurita 2. MIC-1 - Caminho de Dados 7 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados O Caminho de Dados do MIC-1 ● Composto por 3 barramentos de 32 bits e 4 componentes: ● Um conjunto de registradores; ● Uma ULA capaz de operar sobre os registradores; ● Um deslocador ligado à saída da ULA de modo a estender a gama de operações possíveis; ● Portas de comunicação com a memória principal. ULA A B RegistradoresMemóriaPrincipal C Deslocador 8 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ULA ● Puramente combinacional (não há flip-flops). ● 2 portas de entrada para operandos de 32 bits (A e B); ● 1 porta de saída da operação de 32 bits (C); ● 6 vias de controle (ULAc); ● 1 saída (1 bit) para indicar se a operação resultou em zero (Z) e outra para indicar se resultou em valor negativo (N). Z N A B C 6 ULAc ULA 9 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● A ULA de 32 bits pode ser implementada a partir de 32 ULAs de 1 bit (bit slices) conectadas de modo que o “vai um” (carry out) de uma é ligado ao “vem um” (carry in) da ULA de peso imediatamente maior. ● O terminal de “vem um” da ULA de peso zero é externado como uma linha de controle (INC) capaz de somar um ao valor final da operação selecionada. ● A habilitação das portas A e B é feita através de duas linhas de controle chamada ENA e ENB (não mostradas). 10 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados Bit Slice da ULA 11 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados Conexões da ULA ● A, B: Portas de entrada de operandos (32 bits). ● C: Porta de saída da operação (32 bits). ● Z: “Zero” - Indica que a operação resultou em C = 0. ● N: “Negativo” - indica que a operação resultou em C < 0. ● ULAc: Linhas de controle da ULA (6 bits): ● F0, F1: Determinam a operação a ser feita entre A e B. ● ENA, ENB: Habilitam as entradas A e B, respectivamente. ● INVA: Inverte os bits da entrada A. ● INC: INCrement - força um “vem um” no bit menos significativo do somador, incrementando em 1 o resultado da ULA. 12 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados Combinações úteis dos sinais de controle da ULA F0 F1 ENA ENB INVA INC FUNÇÃO 0 1 1 0 0 0 A 0 1 0 1 0 0 B 0 1 1 0 1 0 A 1 0 1 1 0 0 B 1 1 1 1 0 0 A + B 1 1 1 1 0 1 A + B + 1 1 1 1 0 0 1 A + 1 1 1 0 1 0 1 B + 1 1 1 1 1 1 1 B - A 1 1 0 1 1 0 B - 1 1 1 1 0 1 1 -A 0 0 1 1 0 0 A AND B 0 1 1 1 0 0 A OR B 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 -1 -A: complemento de 2 de A. 13 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados Deslocador ● Circuito puramente combinacional; ● 1 porta de entrada de 32 bits (E); ● 1 porta de saída de 32 bits (S); ● 2 vias de controle (SLL8 e SRA1); ● Capaz de deslocar a entrada 8 bits à esquerda, 1 bit à direita ou simplesmente copiar a entrada na saída. Deslocador 2 E S SSL8 SRA1 FUNÇÃO 0 0 S = E 0 1 S = E >> 1 1 0 S = E << 8 1 1 Não permitido 14 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados Deslocador Simples de 8 bits ● Capaz de deslocar a entrada 1 bit à esquerda ou à direita, conforme o valor de C. 15 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados Registradores e Portas ● A composição do caminho de dados da microarquitetura do MIC-1 até este momento, pode ser representada pela figura ao lado. ● 3 barramentos internos: ● A e B: Barramentos de leitura dos registradores; ● C: barramento de escrita nos registradores; ● 2 barramentos externos para comunicação com a memória (endereços e dados). Z N 2 6 ULA A BC Deslocador Registradores 16 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● Para que a microarquitetura possa acessar a memória são necessários registradores de endereço e dados (e portas): ● MAR: Memory Address Register. Registrador de Endereços de Memória. Guarda 32 bits do endereço de uma palavra de 32 bits da memória de dados. ● MDR: Memory Data Register. Registrador de Dados de Memória. Guarda uma palavra de 32 bits lidos da memória ou a serem escritos nela. Z N MAR MDR 2 6 ULA A BC Deslocador 17 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● Instruções de um programas são executados segundo uma ordem precisa; ● Uma microarquitetura necessita saber, sempre, qual a próxima instrução a ser executada; ● Deve haver um registrador apontador de programa (PC); ● PC: Program Counter. ● É desejável que esse registrador possa endereçar diretamente a memória de programa: ● Porta de endereço de programa. Z N MAR MDR 2 6 ULA A BC PC Deslocador 18 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● A Instrução lida da memória deve ser armazenada para decodificação e uso futuro. ● Deve haver um registrador de instrução: ● MBR: Memory Buffer Register. ● É desejável que esse registrador possa receber a instrução diretamente da memória de programa: ● Porta de instrução. Z N 2 6 ULA A BC MBR MAR MDR PC Deslocador 19 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● O MBR é o único registrador de 8 bits do MIC-1. ● Por outro lado, o barramento B é de 32 bits. ● O MBR pode ser carregado no barramento B de 2 formas: ● Como um dado sem sinal: os 24 bits à esquerda são zerados. ● Ex.: 0xA4 → 0x000000A4. Z N 2 6 ULA A BC MBRMBR MAR MDR PC Deslocador 20 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● O MBR é o único registrador de 8 bits do MIC-1. ● Por outro lado, o barramento B é de 32 bits. ● O MBR pode ser carregado no barramento B de 2 formas: ● Como um dado sem sinal: os 24 bits à esquerda são zerados. ● Ex.: 0xA4 → 0x000000A4. ● Como um dado com sinal (entre -128 e 127): os 24 bits à esquerda são copiados do bit mais significativode MBR. ● Ex.: 0xA4 → 0xFFFFFFA4. Z N 2 6 ULA A BC MBR MAR MDR PC Deslocador 21 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● A capacidade de empilhar e desempilhar dados numa região reservada da memória é impor- tante em muitas arquiteturas. ● É necessário um registrador apontador de pilha: ● SP: Stack Pointer – Apontador de Pilha. Z N MAR MDR 2 6 ULA A BC PC MBR SP Deslocador 22 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● A capacidade de empilhar e desempilhar dados numa região reservada da memória é impor- tante em muitas arquiteturas. ● É necessário um registrador apontador de pilha: ● SP: Stack Pointer – Apontador de Pilha. ● É necessário um registrador para armazenar o conteúdo do topo da pilha de operandos: ● TOS: Top Of Stack – Topo da Pilha. Armazena uma cópia do valor contido no topo da pilha. Z N MAR MDR 2 6 ULA A BC PC MBR SP TOS Deslocador 23 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● As variáveis locais de um procedimento precisam ser armazenadas em um local próprio da da pilha de operandos. ● É necessário um registrador apontador de variáveis: ● LV: Local Variables – Variáveis Locais. Aponta para o endereço inicial do conjunto de variáveis na memória principal. Z N MAR MDR 2 6 ULA A BC PC MBR SP LV TOS Deslocador 24 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● O uso de constantes é um recurso de grande utilidade em programação. ● Elas devem ser alocadas em uma região da memória inacessível à escrita pelos programas IJVM. ● É necessário um registrador apontador de constantes: ● CPP: Constant Pool Pointer – Apontador do Conjunto de Constantes. Aponta para o endereço inicial do conjunto de constantes na memória principal. Z N MAR MDR 2 6 ULA A BC PC MBR SP LV TOS CPP Deslocador 25 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● Antes de se chamar uma sub- rotina é necessário copiar o valor do PC em um registro temporário para que se possa retornar à execução após seu término. ● É necessário um registrador temporário para armazenar o valor anterior do PC: ● OPC: Old Program Counter – Contador de Programa Anterior. Registrador temporário utilizado para armazenar o valor do registrador PC antes de um desvio. Z N MAR MDR 2 6 ULA A BC PC MBR SP LV TOS CPP OPC Deslocador 26 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● Ao menos um registrador deve ser capaz de fornecer o operando esquerdo para a ULA (barramento A): ● H: Holding register – Registrador temporário utilizado para armazenar o segundo operando para a ULA. ● Permanentemente habilitado, seu conteúdo está constante- mente visível no barramento A. Z N 2 6 ULA A BC MBR H MAR MDR PC SP LV TOS CPP OPC Deslocador 27 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados Registradores do Caminho de Dados ● MAR: Memory Address Register – Registrador de endereços de memória. ● Guarda os 32 bits do endereço de uma palavra de 32 bits na memória de dados. ● Mapeado indiretamente no barramento de endereços já que os dados na memória são de 8 e não 32 bits. 28 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● MDR: Memory Data Register – Registrador de Dados de Memória ● Guarda uma palavra de 32 bits lidos da memória ou a serem escritos nela. ● PC: Program Counter – Apontador de Programa. ● Aponta para o endereço (32 bits) do byte que contém a próxima instrução a ser executada pela microarquitetura. ● MBR: Memory Buffer Register – Guarda 8 bits da instrução lida da memória de programa. ● É o único registrador de 8 bits do MIC-1. 29 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● SP: Stack Pointer – Apontador de Pilha. ● Aponta para o endereço do topo da pilha de operandos na memória principal. ● LV: Local Variables – Variáveis Locais. ● Aponta para o endereço inicial do conjunto de variáveis locais na memória principal. ● CPP: Constant Pool Pointer – Apontador do Conjunto de Constantes. ● Aponta para o endereço inicial do conjunto de constantes na memória principal. ● TOS: Top Of Stack – Topo da Pilha. ● Registrador destinado a armazenar uma cópia do valor contido no topo da pilha de operandos. 30 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 - Caminho de Dados ● OPC: Old Program Counter – Contador de Programa Anterior. ● Registrador temporário, utilizado para armazenar o valor anterior do registrador PC. ● Permite que a execução da principal possa ser retomada rapidamente após a execução de uma sub-rotina. ● H: Holding register – Registrador temporário utilizado para armazenar o segundo operando para a ULA. ● Permanentemente habilitado, seu conteúdo está constantemente visível no barramento A. 31 Circuitos Digitais II – Prof. Marcos Zurita 3. MIC-1 – Unidade de Controle 32 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Unidade de Controle ● A unidade de controle destina-se a decodificar as instru- ções recebidas e coordenar a operação dos componen- tes do caminho de dados de forma a executá-las. ● Sua concepção parte da análise de como estes compo- nentes devem interagir para a correta execução das instruções. ● Na microarquitetura projetada, estes componentes são: ● ULA; ● Deslocador; ● Registradores; ● Acesso à memória. 33 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Controle dos Registradores ● Ao todo, 8 registradores comunicam-se com o barramento B e 9 com o barramento C. ● Deve haver um controle para determinar quais registradores devem ser escritos e qual deve ser lido a cada ciclo. ● Barramento de sinais de controle de escrita nos registradores: 9 vias; Z N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 34 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Controle dos Registradores ● Ao todo, 8 registradores comunicam-se com o barramento B e 9 com o barramento C. ● Deve haver um controle para determinar quais registradores devem ser escritos e qual deve ser lido a cada ciclo. ● Barramento de sinais de controle de escrita nos registradores: 9 vias; ● Barramento de sinais de controle de leitura dos registradores: 9 vias, sendo 2 dedicadas à leitura de MBR (com e sem sinal). Z N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 35 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Controle do Acesso à Memória ● O acesso à memória principal é feito através de dois pares de registradores: ● MAR/MDR: dados de 32 bits; ● PC/MBR: instruções de 8 bits; ● Deve haver um controle para determinar quais registradores terão acesso aos barramentos de dados e endereços da memória. ● Sinais de controle de acesso à memória principal: Read, Write, Fetch (3 vias). Z N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 36 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● Read = 1: A memória é lida no endereço da palavra de 32 bits apontado por MAR e o valor guardado em MDR; ● Write = 1: O valor em MDR é escritona memória no endereço da palavra de 32 bits apontado por MAR. ● Fetch = 1: A memória é lida no endereço do byte apontado por PC e a instrução (valor de 8 bits) guardado em MBR. Z N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 37 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Temporização ● A análise da temporização de um ciclo de execução do CdD é uma etapa importante na elaboração da UC. Em especial, nota-se que: ● Exceto os registradores, todo o CdD é puramente combinacional. ● Pode-se ler e escrever no mesmo registrador num único ciclo. ● Ex.: Temporização para H=TOS+1. ΔxΔw Δy ΔzZ N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 38 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Subciclos para H=TOS+1 ● 1 - sinais de controle ajustados; ΔxΔw Δy ΔzZ N MAR MDR PC LV CPP TOS OPC H ULA A BC Deslocador MBR SP 2 6 2 6 3 (Read, Write, Fetch) 39 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Subciclos para H=TOS+1 ● 1 - sinais de controle ajustados; ● 2 - o registrador selecionado é carregado no barramento B; ΔxΔw Δy ΔzZ N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 40 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Subciclos para H=TOS+1 ● 1 - sinais de controle ajustados; ● 2 - o registrador selecionado é carregado no barramento B; ● 3 - operação da ULA e do deslocador; ΔxΔw Δy ΔzZ N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 41 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Subciclos para H=TOS+1 ● 1 - sinais de controle ajustados; ● 2 - o registrador selecionado é carregado no barramento B; ● 3 - operação da ULA e do deslocador; ● 4 - o resultado se propaga através do barramento C para os registradores. ΔxΔw Δy ΔzZ N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 42 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Subciclos para H=TOS+1 ● 1 - sinais de controle ajustados; ● 2 - o registrador selecionado é carregado no barramento B; ● 3 - operação da ULA e do deslocador; ● 4 - o resultado se propaga através do barramento C para os registradores. ● (subida do clock) - o resultado no barramento C é armazenado no(s) registrador(es) selecionado(s) para escrita. ΔxΔw Δy ΔzZ N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 43 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Geração dos Sinais de Controle ● Conforme foi visto, para controlar o CdD a UC deverá gerar 29 sinais, que podem ser divididos em 5 grupos: ● Escrita nos Registradores: 9 vias; ● Leitura dos Registradores: 9 vias; ● Controle da ULA e do Deslocador: 8 vias; ● Leitura/escrita da Memória Principal via MAR/MDR: 2 vias; ● Busca na Memória Principal via PC/BMR: 1 via. ● A geração dos sinais de controle deve ser feita com base em 2 informações fornecidas pelo CdD: ● A instrução contida em MBR: 8 vias; ● O estado da ULA (saídas N e Z): 2 vias. 44 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Conexões Entre o Caminho de Dados e a UC Unidade de Controle Z N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 9 8 45 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Implementação da Unidade de Controle ● A natureza cíclica de operação da unidade de controle (busca, decodificação e execução) sugere que, de alguma forma, sua implementação deve ser feita por um circuito de natureza sequencial. ● De maneira geral, pode-se dizer que a implementação desse circuito pode ser feita de duas maneiras distintas: ● Hardwired ● Microprogramada 46 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Unidade de Controle Hardwired ● Sinais de controle gerados a partir de circuitos lógicos sequenciais (flip-flops + portas logicas), com base no conteúdo do registrador de instruções e nos sinais de estado gerados pelo caminho de dados. ● Elevada velocidade de operação; ● Baixa flexibilidade quanto a alterações nas instruções; ● Sua complexidade aumenta dramaticamente com o aumento do número de instruções do processador. Unidade de Controle Caminho de Dados RI Z N ULA Circuito Sequencial 47 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Unidade de Controle Microprogramada ● Sinais de controle gerados a partir da execução de microinstruções armazenadas em uma memória dedicada denominada “Memória de Controle”. ● Simples de implementar e de realizar alterações; ● Facilidade na inclusão de novas instruções; ● Baixa velocidade de operação se comparada à implementação hardwired. ● Forma de implementação adotada para o MIC-1. Unidade de Controle Caminho de Dados RI Z N ULA Memória de Controle 48 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Unidade de Controle Microprogramada do MIC-1 Z N MAR MDR PC LV CPP TOS OPC H 2 6 ULA A BC Deslocador MBR SP 3 (Read, Write, Fetch) 9 8 Unidade de Controle N ZMBR 8 Sinais de controle . . . Registrador de Microinstruções Memória de Controle Sequenciador endereço dado (microinstrução) 49 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● A princípio, todos os 29 sinais de controle poderiam ser mapeados diretamente como bits de dados da memória de controle. ● Neste caso, o conteúdo armazenado pelo Registrador de Microinstruções (MIR) poderia ser representado por: ● Onde: ● ULA: bits de controle da ULA e do Deslocador ● C: bits de seleção dos registradores que deverão ser escritos pelo barramento C. ● Mem: bits de controle do acesso à memória (read, write, fetch). ● B: seleção do registrador que será lido pelo barramento B. ULA C Mem B 8 bits 9 bits 3 bits 9 bits Registrador de Microinstruções (MIR) 50 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● O mapeamento bit-a-bit dos sinais de controle do barramento C na memória de controle é desejável pois permite que uma microinstrução escreva um dado valor em mais de um registrador ao mesmo tempo; ● Por outro lado, o mesmo não é verdadeiro para os sinais de controle do barramento B; ● A seleção da leitura de mais de um registrador ao mesmo tempo geraria conflito e possivelmente dano físico aos componentes. TOS [0x55] OPC [0xaa] B ! 51 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● Uma boa solução para isto é fazer com que o controle dos sinais de escrita no barramento B seja intermediada por um decodificador capaz de endereça-los individualmente. ● Neste caso, poderia-se empregar um decodificador comercial do tipo 4 para 16. ● A seleção do registrador a ser lido pelo barramento B passa a precisar apenas de 4 bits no MIR. ULA C Mem B 8 bits 9 bits 3 bits Registrador de Microinstruções (MIR) 4 9 vias Decodificador 4 → 16 7 vias (não utilizadas) . . . . . . 52 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidadede Controle Seleção do Registrador a Ser Lido Pelo Barramento B ● Conforme o valor do campo B do MIR temos: ● 0: MDR ● 1: PC ● 2: MBR (MBR com sinal) ● 3: MBRU (MBR sem sinal) ● 4: CPP ● 5: LV ● 6: SP ● 7: TOS ● 8: OPC ● 9 a 15: nenhum registrador 53 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● Além de gerar os sinais de controle do CdD para cada ciclo, a UC deve também determinar o que deve ser feito no ciclo seguinte. ● Isso pode ser implementado incluindo-se bits adicionais em cada microinstrução. ● Para isto, serão adicionados dois campos ao código das microinstruções: ● NEXT_ADDRESS: Próximo Endereço – contém o endereço da potencial microinstrução seguinte na memória de controle; ● JAM: Determina como a próxima microinstrução será selecionada. Este campo consumirá 3 bits, a serem detalhados adiante. 54 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● Admitindo que a memória de controle adotada possua 512 endereços, o campo NEXT_ADDRESS deverá conter 9 bits para poder endereça-la. O Conjunto Memória de Controle + MIR Registrador de Microinstruções (MIR) J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT_ADDRESS Addr (9 bits) JAM (3 bits) Mem (3 bits) ULA (8 bits) C (9 bits) B (2 bits) Memória de Controle para armazenar o microprograma (512 x 36) 55 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Bits de Controle do MIR (resumo) ● JMPC: Jump to PC – Define se o endereço da próxima microinstrução será dado diretamente por NEXT_ADDRESS ou se através de operação com MBR. ● JAMN: Jump if Negative – Se habilitado, desvia a execução da próxima microinstrução para NEXT_ADDRESS + 0x100, caso N=1; ● JAMZ: Jump if Zero - Se habilitado, desvia a execução da próxima microinstrução para NEXT_ADDRESS + 0x100, caso Z=1; J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT_ADDRESS 56 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● SLL8: Shift Left Logical 8 – Habilita o deslocamento de 8 bits à esquerda no resultado da operação da ULA. ● SAR1: Shift Right Arithmetic - Habilita o deslocamento de 1 bit à direita no resultado da operação da ULA. ● F0, F1, ENA, ENB, INVA, INC: Ativam as linhas de controle da ULA de mesmo nome. ● H, OPC, TOS, CPP, LV, SP, PC, MDR e MAR: ativam a escrita nos respectivos registradores através do barra- mento C (múltiplos registradores podem ser escritos simultaneamente). J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT_ADDRESS 57 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● WRITE: Ordena a escrita na Memória Principal através de MAR e MDR; ● READ: Ordena a leitura da Memória Principal através de MAR e MDR; ● FETCH: Ordena a busca de instrução na Memória Principal através de PC e MBR. J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT_ADDRESS 58 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle O Sequenciador ● É o componente da UC responsável por determinar a sequência de operações necessárias para a execução de uma única instrução ISA. ● Deve produzir dois tipos de informação a cada ciclo: ● O estado de cada sinal de controle no sistema ● feito por intermédio do conjunto Memória de Controle + MIR; ● O endereço da próxima microinstrução a ser executada ● determinado por um circuito dedicado, tendo como base os sinais fornecidos pelo CdD (MBR, N e Z) e os campos NEXT_ADDRESS e JAM do Registrador de Microinstruções. 59 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle O Apontador de Microprograma ● Assim como no endereçamento da memória de progra- ma, o endereçamento da memória de microprograma também requer um registrador para conter o endereço da próxima microinstrução a ser buscada: ● MPC: MicroProgram Counter (9 bits). ● O MPC é um registrador sensível a nível alto, isto é, os valores colocados em suas entradas são copiados quando o clock da máquina está em “1”, ao contrário dos demais registradores do sistema cuja carga é feita na transição de subida do clock. ● A saída do MPC alimenta diretamente a porta de endereços da Memória de Controle. 60 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Modo de Operação do Sequenciador ● Consiste basicamente em determinar o próximo valor de MPC. Pode ser representada pelo algoritmo: Se (JAMN = 1) MPC[8] = NEXT_ADDRESS[8] OR N Se (JAMZ = 1) MPC[8] = NEXT_ADDRESS[8] OR Z Se (JAMN = 1 ou JAMZ = 1) MPC[8] = NEXT_ADDRESS[8] OR N OR Z Se (JMPC = 1) MPC[0..7] = NEXT_ADDRESS[0..7] OR MBR[0..7] Senão MPC[0..7] = NEXT_ADDRESS[0..7] Bit de mais alta ordem Bits inferi- ores 61 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● A função “Bit de mais alta ordem” F = (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8] ● A função “Bits inferiores” MPC[0..7] = (MBR[0..7] AND JMPC) OR NEXT_ADDRESS[0..7] Bit de mais alta ordem N Z (JAMN, JAMN) ADDR[8] F (MPC[8]) ADDR[0..7] MPC[0..7] MBR[0..7] JMPC 62 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Registradores da Unidade de Controle ● Ao contrário do CdD que possui vários registradores, a UC do MIC-1 possuí apenas 3, conforme foi visto: ● MIR: MicroInstruction Register – Registrador de micro- instruções. ● Composto de 36 bits divididos em 6 campos: ● NEXT_ADDRESS, JAM, ULA, C, Mem e B. ● MPC: Micro Program Counter – Contador de Micro Programa. Composto de 9 bits. ● Flip-flops N e Z: São registros de 1 bit destinados a armazenar o estado da última operação da ULA. ● Tendo definido todos os componentes do nosso proces- sador podemos visualizar seu diagrama completo. 63 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 Bit de mais alta ordem Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000 ULA Memória de controle para armazenar o microprograma (512 x 36) 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR MDR PC LV CPP TOS OPC H 2 2 6 8 9 9 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR SP Flip-flops (1 bit cada) 64 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Representação Modificada do MIC-1 ● O diagrama de blocos da microarquitetura do MIC-1 apresentadoanteriormente corresponde exatamente à apresentada pela literatura mais recente (Tanenbaum, “Organização Estruturada de Computadores”, 5ªEd.). ● Entretanto, para melhor refletir a estrutura detalhada até o momento, uma nova representação será adotada, contendo 2 pequenas alterações em relação à original: ● No bloco “Bits inferiores”, a largura do barramento de entrada NEXT_ADDRESS e de saída para o MPC será de 8 bits e não 9 (correspondendo a b0..b7); ● A conexão entre o bit NEXT_ADDRESS[8] do MIR e o bloco “Bit de mais alta ordem” será evidenciada. 65 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 (representação modificada) Bit de mais alta ordem Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000 ULA Memória de controle para armazenar o microprograma (512 x 36) 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR MDR PC LV CPP TOS OPC H 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR SP Flip-flops (1 bit cada) ADDR[8] 66 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Desvio Condicional em Microinstruções ● Porquê tantos artifícios são usados simplesmente para determinar o endereço da próxima microinstrução? ● Eficiência! ● Em instruções de salto condicional comuns normalmente é necessário especificar 2 endereços como parâmetro: if (u == 10) { // dois endereços de desvio são especificados aqui d++; // um endereço implícito associado a esta linha u = 0; } else { u++; // e outro a esta linha } 67 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● Para tornar o tamanho das microinstruções uniforme temos então duas soluções: ● ter dois endereços de desvio por microinstrução (desperdício de espaço), ou; ● ter apenas um endereço e determinar o outro com base no primeiro. ● No caso do MIC-1 a segunda solução é adotada e o endereço de desvio determinado somando-se 0x100 ao endereço base. Ex.: ● NEXT_ADDRESS=0x092, JMPC=0, JAMN=0, JAMZ=1; ● MPC poderá assumir dois valores: ● 0x092, se Z=0; ● 0x192, se Z=1. 68 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle ● A possibilidade de poder efetuar OR entre MBR e NEXT_ADDRESS dá a microinstrução a capacidade de executar a próxima instrução ISA armazenada em MBR. ● Normalmente quando JMPC=1, NEXT_ADDRESS é igual a 0x000 ou 0x100; ● Consequentemente, o próximo valor de MPC será igual a MBR ou MBR + 0x100; ● Em uma utilização típica, MBR contém o opcode de uma instrução ISA; ● De fato, a primeira microinstrução do microcódigo correspondente a cada instrução ISA é armazenada no endereço inicial apontado pelo próprio opcode da instrução ISA. 69 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 – Unidade de Controle Exemplo: ● Execução passo-a-passo da instrução ISA de OPCODE=0x03 a partir da microinstrução armazenada no endereço 0x001 da memória de controle. ● Obs.: o controle e operação do caminho de dados não serão mostrados neste exemplo, apenas os passos necessários para executar o desvio. 70 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 (1 - MPC → Memória de Controle) Bit de mais alta ordem Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000 ULA 000000001 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR MDR PC LV CPP TOS OPC H 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x03] SP Flip-flops (1 bit cada) ADDR[8] ... 000000000 000000001 000 100 000000100 000 . . . . . . . . . . . . 000000011 001 0011 71 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 (2 - Memória de Controle → MIR) Bit de mais alta ordem Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0011000000000 ULA 000000001 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR MDR PC LV CPP TOS OPC H 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x03] SP Flip-flops (1 bit cada) ADDR[8] ... 000000000 000000001 000 100 000000100 000 . . . . . . . . . . . . 000000011 001 0011 72 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 (3 - MIR → “Sequenciador”) Bit de mais alta ordem Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0011000000000 ULA 000000001 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR MDR PC LV CPP TOS OPC H 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x03] SP Flip-flops (1 bit cada) ADDR[8] ... 000000000 000000001 000 100 000000100 000 . . . . . . . . . . . . 000000011 001 0011 73 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 (4 - “Sequenciador” → MPC) Bit de mais alta ordem Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0011000000000 ULA 000000011 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR MDR PC LV CPP TOS OPC H 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x03] SP Flip-flops (1 bit cada) ADDR[8] ... 000000000 000000001 000 100 000000100 000 . . . . . . . . . . . . 000000011 001 0011 74 Circuitos Digitais II – Prof. Marcos Zurita MIC-1 (5 - Novo MPC → Memória de Controle) Bit de mais alta ordem Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0011000000000 ULA 000000011 MPC MIR - MicroInstructionRegister Decodificador 4 → 16 MAR MDR PC LV CPP TOS OPC H 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x03] SP Flip-flops (1 bit cada) ADDR[8] ... 000000000 000000001 000 100 000000100 000 . . . . . . . . . . . . 000000011 001 0011 75 Circuitos Digitais II – Prof. Marcos Zurita 4. Temporização 76 Circuitos Digitais II – Prof. Marcos Zurita Temporização ● Temporização do Caminho de Dados Saída do deslocador estabilizada Início do Ciclo 1 Registradores carregados instantaneamente do barramento C e da memória na transição de subida do clock 5 MPC disponível para escrita 6 Carga de valores em H e no barramento B 2 Δx Estabelecimento dos valores dos sinais que vão alimentar o caminho de dados 1 Δw Operação da ULA e do deslocador 3 Δy Propagação da saída do deslocador para os registradores 4 Δz Ciclo 1 Ciclo 2 Nesse momento o novo valor armazenado no MPC é usado para carregar o MIR com a nova microinstrução 7 77 Circuitos Digitais II – Prof. Marcos Zurita Temporização ● Exemplo: Microinstrução para fazer H=TOS+1; ● Assumindo que todos os registradores estão zerados e que o MPC aponta inicialmente para o endereço 0x000 da memória de controle. ● A microinstrução deve ativar o registrador TOS para leitura: ● MIR.B = 0x07 (0b0111); ● Da mesma forma, H deve ser habilitado para escrita: ● MIR.C.H = 1; ● Todos os demais bits de MIR.C devem ser iguais a zero: ● MIR.C = 0x100 (0b100000000); ● Para incrementar o conteúdo do barramento B em 1, o deslocador e a ULA devem receber: ● MIR.ULA = 0x35 (0b00110101); 78 Circuitos Digitais II – Prof. Marcos Zurita Temporização ● Admitindo que a próxima microinstrução a ser executada seja incondicionalmente a que está contida no endereço 0x001 da memória de controle, temos: ● MIR.NEXT_ADDRESS = 0x001 (0b000000001); ● MIR.JAM = 0x0 (0b000); ● Como nenhuma operação é realizada com a memória: ● MIR.Mem = 0x0 (0b000); ● O conteúdo completo da microinstrução é então: ● MIR = 0b000000001.000.00110101.100000000.000.0111 ● obs.: os pontos separam os campos NEXT_ADDRESS, JAM, ULA, C, Mem e B. 79 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x00] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000000000 000000001 000 100 000000100 000 . . . . . . . . . 000000011 001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000 ΔxΔw Δy Δz 00110101 100000000 000 0111 t < 0: ● Máquina inicializada; ● Registradores zerados; ● MPC aponta para 0x000. 80 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x00] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000 100 000 . . . . . . . . . 001 X X X X X X X X X X X X X X X X X X X X X XX XXXXXXXXXXXXX 00110101 100000000 000 0111 ΔxΔw Δy Δz 000000000 000000001 000000100 000000011 t = 0: ● Início do ciclo 1. ● MPC é usado para carregar MIR com a 1ª microinstrução. 81 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x00] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000 100 000 . . . . . . . . . 001 X X X X X X X X X X X X X X X X X X X X X XX XXXXXXXXXXXXX 00110101 100000000 000 0111 000000000 000000001 000000100 000000011 ΔxΔw Δy Δz 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001 t = Δw: ● Final do carregamento do MIR ● Os bits na saída do MIR tornam-se estáveis. 82 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x00] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000 100 000 . . . . . . . . . 001 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001 00110101 100000000 000 0111 000000000 000000001 000000100 000000011 ΔxΔw Δy Δz t = Δw + Δx: ● Os sinais de controle do caminho de dados propagam- se e tornam-se estáveis. 83 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x00] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000 100 000 . . . . . . . . . 001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000001 00110101 100000000 000 0111 000000000 000000001 000000100 000000011 t = Δw + Δx + Δy: ● ULA eDeslocador operam; ● As saídas N, Z e do Deslocador ficam disponíveis. ΔxΔw Δy Δz 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001 84 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x00] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000 100 000 . . . . . . . . . 001 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000 00110101 100000000 000 0111 000000000 000000001 000000100 000000011 t = Δw + Δx + Δy + Δz: ● A saída do deslocador chega até os registradores através do barramento C. ΔxΔw Δy Δz 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001 85 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000000 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x01] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000 100 000 . . . . . . . . . 001 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000 00110101 100000000 000 0111 000000000 000000001 000000100 000000011 t = “borda de subida”: ● Registradores carregados com o conteúdo do barramento C e da memória. ΔxΔw Δy Δz 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001 86 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000001 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x01] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000 100 000 . . . . . . . . . 001 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000 00110101 100000000 000 0111 000000000 000000001 000000100 000000011 t = “intervalo alto do ciclo”: ● MPC é carregado com o endereço da próxima microinstrução. ΔxΔw Δy Δz 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001 87 Circuitos Digitais II – Prof. Marcos Zurita Temporização Bit de mais alta ordem 0 0 Z N J M P C J A M N J A M Z S L L 8 S R A 1 F 0 F 1 E N A E N B I N V A I N C H O P C T O S C P P L V S P P C M D R M A R R E A D F E T C H W R I T E Barra- mento B NEXT ADDRESS ULA 000000001 MPC MIR - MicroInstruction Register Decodificador 4 → 16 MAR [0x00] MDR [0x00] PC [0x00] LV [0x00] CPP [0x00] TOS [0x00] OPC [0x00] H [0x01] 2 2 6 8 8 8 9 4 A BC Deslocador 3 (Read, Write, Fetch) 3 (Read, Write, Fetch) MBR [0x00] SP [0x00] Flip-flops (1 bit cada) ADDR[8] ... 000 100 000 . . . . . . . . . 001 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000 00110101 100000000 000 0111 000000000 000000001 000000100 000000011 t = “borda de descida”: ● Novo MPC é usado para carre- gar a próxima microinstrução. ● Início do ciclo 2. ΔxΔw Δy Δz X X X X X X X X X X X X X X X X X X X X X XX XXXXXXXXXXXXX 88 Circuitos Digitais II – Prof. Marcos Zurita Temporização Temporização de Operações com a Memória ● Por razões de simplificação, considera-se que a memó- ria principal do MIC-1 é capaz de responder, a solicita- ções de leitura ou escrita, após 1 ciclo de clock. ● Se um registrador de endereço (MAR ou PC) for carre- gado com o endereço a ser lido no final do ciclo 1 (borda de subida), o dado correspondente só estará disponível (em MDR ou MBR) no final do ciclo 2. ● Se o dado lido for um opcode na memória de programa, ele já poderá ser usado para computar o desvio da próxi- ma microinstrução (que é feito no intervalo alto do ciclo). ● Caso o dado lido seja um dado na memória de dados, ele só poderá ser utilizado no ciclo 3, quando as opera- ções com os registradores voltam a ocorrer. 89 Circuitos Digitais II – Prof. Marcos Zurita Temporização ● Exemplo 1: Operação de leitura de um opcode na memória principal via PC/MBR: Ciclo 1 Ciclo 2 Ciclo 3 O valor do endereço a ser lido é carregado no registrador PC 1 O opcode lido é carregado da porta para o registrador MBR 4 O opcode lido em MBR já pode ser utilizado aqui para determinar a próxima microinstrução 5 A memória recebe o novo endereço a ser lido. 2 A memória disponibiliza o dado lido na porta do registrador MBR. 3 Ciclo da Memória 90 Circuitos Digitais II – Prof. Marcos Zurita Temporização ● Exemplo 2: Operação de leitura de um dado na memória principal via MAR/MDR: Ciclo 1 Ciclo 2 Ciclo 3 O valor do endereço a ser lido é carregado no registrador MAR 1 O dado lido é carregado da porta para o registrador MDR 4 O dado lido em MDR pode ser utilizado a partir daqui 5 A memória recebe o novo endereço a ser lido. 2 A memória disponibiliza o dado lido na porta do registrador MDR. 3 Ciclo da Memória 91 Circuitos Digitais II – Prof. Marcos Zurita Bibliografia ● Andrew S. Tanenbaum, “Organização Estruturada de Computadores”, 5a Ed., Pearson, 2006. ● J. L. Hennessy & D. A. Patterson, “Arquitetura de Computadores - Uma Abordagem Quantitativa”, Editora Campus, 2003. ● Willians Stallings, “Arquitetura e Organização de Computadores”, 5ª Edição, Pearson, 2003. ● Albert Paul Malvino, “Microcomputadores e Microprocessadores”, McGraw-Hill, 1985. ● Herbert Taub, “Circuitos Digitais e Microprocessadores”, Mcgranw-Hill, 1984. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66 Slide 67 Slide 68 Slide 69 Slide 70 Slide 71 Slide 72 Slide 73 Slide 74 Slide 75 Slide 76 Slide 77 Slide 78 Slide 79 Slide 80 Slide 81 Slide 82 Slide 83 Slide 84 Slide 85 Slide 86 Slide 87 Slide 88 Slide 89 Slide 90 Slide 91
Compartilhar