Upload
vuongcong
View
212
Download
0
Embed Size (px)
Citation preview
1Arquitetura e Organização de Computadores
Unidade Central de Processamento
Prof. Otávio [email protected]
Prof. Mário Luiz [email protected]
2Arquitetura e Organização de Computadores
Unidade Central de Processamento
Unidade Central de ProcessamentoUnidade Lógica e AritméticaMicro-ArquiteturasOrganização em Parte Operativa e de ControleControle MicroprogramadoControle FSM (Máquina de Estados Finitos)
3Arquitetura e Organização de Computadores
4Arquitetura e Organização de Computadores
A unidade central de processamento do computador busca, decodifica e executa as instruções dos programas.
As duas partes principais da CPU são o caminho dos dados (datapath) e a unidade de controle.
– O datapath consiste em uma unidade lógica-aritmética e unidade de armazenamento (registradores) que estão interconectados ao barramento de dados, que está conectado à memória principal.
– Os componentes da CPU realizam operações sequenciais de acordo com os sinais fornecidos pela unidade de controle.
Unidade Centralde Processamento
5Arquitetura e Organização de Computadores
Registrados mantém os dados guardados e podem ser prontamente acessados pela CPU.
Eles podem ser implementados utilizando flip-flops do tipo D.– Um registrador 32-bit requer 32 flip-flops D.
A unidade lógica-aritmética (ALU) é reponsável pelas operações lógicas e aritméticas requisitados pela unidade de controle.
A unidade de controle determina que ações devem ser executadas de acordo com os valores dos registros contador de programas (Program Counter) e de status (flags).
Unidade Centralde Processamento
6Arquitetura e Organização de Computadores
Unidade Centralde Processamento
7Arquitetura e Organização de Computadores
• A CPU compartilha dados com componentes de outros sistemas através do barramento de dados.– Um barramento é um conjunto de linhas que
transfere/suporta um bit por linha.• Dois tipos de barramentos são encontrados com frequência:
point-to-point e multipoint.
O Barramento (Bus)
8Arquitetura e Organização de Computadores
Barramentos são linhas de dados, linhas de controle e linhas de endereços.Enquanto as linhas de dados trasnferem bits de um dispositivo para outro, as linhas de controle determinam o fluxo dos dados e quando o dispositivo poderá acessar o barramento.Linhas de endereço determinam a localização da fonte de dados ou o destino do dado.Há diferentes tipos de conexão para diferentes dispositivos/unidades:
– Memória– I/O (Entrada/Saída)– CPU
O Barramento (Bus)
9Arquitetura e Organização de Computadores
Módulos do Computador
10Arquitetura e Organização de Computadores
Recebe e envia dados
Recebe endereços ( de localizações)
Recebe sinais de controle– Read– Write– Timing
Memória
11Arquitetura e Organização de Computadores
Similar à memória do ponto de vista dos computadores
Saída (Output)– Recebe dados do computador– Envia dados aos periféricos
Entrada (Input)– Recebe dados dos periféricos– Envia dados ao computadores
Entrada/Saída (I/O)
12Arquitetura e Organização de Computadores
Recebe sinais de controle do computador
Envia sinais de controle aos periféricos
Recebe endereços do computador– Número da porta para identificar periférico
Envia sinais de interrupção (controle)
Entrada/Saída (I/O)
13Arquitetura e Organização de Computadores
Leitura de Instruções e Dados
Escrita de Dados (Após processamento)
Envio de sinais de controle para outras unidades/dispositivos
Recebe (e atua) nas interrupções
Conexões da CPU
14Arquitetura e Organização de Computadores
Um caminho de comunicação entre dois ou mais dispositivos
Usualmente utiliza broadcast
Frequentemente agrupado– O número de canais em um barramento– Um barramento de 32 bits é um conjunto de 32
canais simples de um bit cada
Linhas de energia podem não ser exibidas, mas são essenciais.
O que é um barramento?
15Arquitetura e Organização de Computadores
Transferência de dados– Lembre-se que não há diferença entre “data” e
“instruction” neste nível
O comprimento da palavra é a chave que determina a performance
– 8, 16, 32, 64 bit
BarramentoDe Dados
16Arquitetura e Organização de Computadores
É necessário identificar a fonte e o destino dos dados
O barramento determina a capacidade máxima de memória de sistema.
– Por exemplo, o microprocessador 8080 tem 16 bit, sendo assim, o barramento de endereçamentos fornece 64k de espaço de endereçamento
BarramentoDe Endereços
17Arquitetura e Organização de Computadores
Controle e informações de tempo– Sinal de Leitura/Escrita na memória– Requisição de Interrupção– Sinais de Clock
BarramentoDe Controle
18Arquitetura e Organização de Computadores
BarramentoDe Controle
19Arquitetura e Organização de Computadores
Esquema de Interconexãodos Barramentos
20Arquitetura e Organização de Computadores
Muitos dispositivos em um único barramento podem levar a propagação de atraso.
Muitos sistemas utilizam múltiplos barramentos para evitar este problema.
Problemas deBarramentos Simples
21Arquitetura e Organização de Computadores
ISA (Industrial Standard Architecture)– Primeiro sistema aberto de arquitetura de barramento
para PCs– 8 bit
• 4.77 MHz, 20 address lines (1M address space)
– 16 bit (introduced with the 286)• 8.33 MHz, 24 address lines (16M address space)
EISA (Extended ISA)– Introduced in 88-89– 16/32 bit data lines, 24/32 bit address, 8.33MHz– Backward compatible with ISA, roughly twice the space of
ISA
ISA
22Arquitetura e Organização de Computadores
ISA
23Arquitetura e Organização de Computadores
Barramentos de AltaPerformance
24Arquitetura e Organização de Computadores
Dedicado– Linhas de endereço e de dados separadas
Multiplexado– Linhas compartilhadas– Linha de controle de validação de endereço ou
dado– Vantagem: menos linhas– Desvantagens
• Controle muito mais complexo• Controle de performance
Tipos deBarramentos
25Arquitetura e Organização de Computadores
Mais de um módulo controlando o barramento, por exemplo, controladores CPU e DMA.
Somente um módulo pode controlar o barramento por vez. O controle pode ser centralizado ou distribuído.
Controle de Barramento(Bus Arbitration)
26Arquitetura e Organização de Computadores
Centralizado– Um único dispositivo hardware controla o
acesso ao barramento• Controle do Barramento• Árbitro
– Pode ser parte da CPU ou estr separado
Distribuído– Cada módulo pode solicitar o controle do
barramento– Lógica de controle em todos os módulos
Controle de Barramento(Bus Arbitration)
27Arquitetura e Organização de Computadores
Coordenação de eventos no barramento
Síncrono (Synchronous)– Eventos são determinados pelos sinais de clock– Controle do barramento inclui uma linha de clock– Uma simples transição 1-0 é um ciclo de
barramento– Todos os dispositivos devem ler a linha de clock
Timing
28Arquitetura e Organização de Computadores
Timing
29Arquitetura e Organização de Computadores
Peripheral Component Interconnection
Intel released to public domain
33/100/133/266/333+ MHz clock, independent of processor
32 or 64 bit data and address lines (128 bit soon)– 50 lines– Supports up to 16 slots and ISA slots
• Normally, 2 ISA slot, 1 of which is a “shared” slot with PCI
– PCI Express x16 adapters and PCI Express x1 adapters
Barramento PCI
30Arquitetura e Organização de Computadores
PCI 32 bit slot
AGP slot
PCI Express x16 slot
PCI Express x1 slot
Slots PCI
31Arquitetura e Organização de Computadores
Systems lines– Including clock and reset
Address & Data– 32 time mux lines for address/data– Interrupt & validate lines
Interface Control
Arbitration– Not shared– Direct connection to PCI bus arbiter
Error lines
Linhas de BarramentoPCI (necessárias)
32Arquitetura e Organização de Computadores
Interrupt lines– Not shared
Cache support
64-bit Bus Extension– Additional 32 lines– Time multiplexed– 2 lines to enable devices to agree to use 64-bit
transfer
Linhas de BarramentoPCI (opcionais)
33Arquitetura e Organização de Computadores
Transaction between initiator (master) and target
Master claims bus
Determine type of transaction– e.g. I/O read/write
Address phase
One or more data phases
Comandos PCI
34Arquitetura e Organização de Computadores
Todo computador contém pelo menos um clock que sincroniza as atividades de seus dispositivos.
Um número fixo de clocks é necessário para a tranferência dos dados e para as operações computacionais.
A frequência do clock, medida em megahertz or gigahertz, determina a velocidade em que estas operações serão executadas.
O tempo do ciclo de clock está ligado à frequência de clock.
– Um clock de 800 MHz clock tem um tempo de ciclo de 1.25 ns.
Clocks
35Arquitetura e Organização de Computadores
• Velocidade de clock não pode ser confundido com performance da CPU.
• O tempo necessário para que a CPU execute um programa é dado pela equação:
– Nós podemos aumentar o throughput da CPU quando reduzimos o número de instruções em um programa, reduzimos o número de ciclos por instrução, ou reduzimos o número de nanosegundos por ciclo de clock.
Clocks
36Arquitetura e Organização de Computadores
O computador se comunica com o mundo através do subsistema de entrada/saída (I/O).
Os dispositivos de I/O são conectados à CPU através de várias interfaces.
Os dispositivos de I/O podem ser mapeados em memória (memory-mapped), onde o dispositivo se comporta como a memória principal, do ponto de vista da CPU.
Ou o dispositivo de I/O pode ser controlado por instruções (instruction-based), onde a CPU tem instruções específicas para o controle de I/O.
I/O Subsystem
37Arquitetura e Organização de Computadores
• Como o computador acessa uma localização de memória correspondente a um endereço específico?
• Podemos observar que 4M pode ser expresso como
2 2 × 2 20 = 2 22 words.• As localizações de memória para este espaço de
endereçamento vão de 0 até 2 22 -1.• Neste caso, o barramento de memória deste
sistema necessita de, pelo menos, 22 linhas de endereço.
Organização da Memória
38Arquitetura e Organização de Computadores
A memória física geralmente consiste em mais do que um chip de RAM.
O acesso à memória é mais eficiente quando ela está organizada em bancos de chips, com intervalos de acesso entre eles.
Uma parte do endereço fará a designação do banco de memória e outra parte apontará o endereço específico dentro daquele banco.
Organização da Memória
39Arquitetura e Organização de Computadores
Organizaçãoda Memória
40Arquitetura e Organização de Computadores
Organizaçãoda Memória
41Arquitetura e Organização de Computadores
Componentes do ComputadorTop Level
42Arquitetura e Organização de Computadores
Ciclo de Intruçãocom Interrupções
DECODE
43Arquitetura e Organização de Computadores
Fluxo de DadosDiagrama de Busca
44Arquitetura e Organização de Computadores
Diagrama de EstadosCiclos de Instrução
45Arquitetura e Organização de Computadores
Pode ter diversas formas
Depende da instrução que está sendo executada
Pode incluir– Memory read/write– Input/Output– Register transfers– ALU operations
Fluxo de DadosExecução
46Arquitetura e Organização de Computadores
Controle de TransferênciaInterrupções
47Arquitetura e Organização de Computadores
Múltiplas InterrupçõesSequenciais
48Arquitetura e Organização de Computadores
Múltiplas InterrupçõesAninhadas (Nested)
49Arquitetura e Organização de Computadores
Fluxo de ControlePrograma
50Arquitetura e Organização de Computadores
• A CPU é projetada e fabricada com o propósito único de
executar sucessivamente pequenas operações matemáticas
(ou outras manipulações simples com dados), na ordem e na
sequência definidas pela organização do programa.
• As atividades realizadas pela CPU podem ser divididas em
duas grandes categorias funcionais:
– Função processamento;
– Função controle.
Funções da CPU
51Arquitetura e Organização de Computadores
• A função processamento se encarrega de realizar as
atividades relacionadas com a efetiva execução de uma
operação, ou seja, processar.
• Processar o dado é executar com ele uma ação que
produza algum tipo de resultado.
Função deProcessamento
52Arquitetura e Organização de Computadores
• Tarefas comuns a esta função são as que realizam:
– Operações aritméticas (somar, subtrair, multiplicar, dividir);
– Operações lógicas (and, or, xor, etc);
– Movimentação de dados (memória - CPU, CPU - memória,
registrador - registrador etc);
– Desvios (alteração de sequência de execução de instruções);
– Operações de entrada ou saída.
Função deProcessamento
53Arquitetura e Organização de Computadores
• Fazem parte dessa área funcional os seguintes
dispositivos:
– Unidade Aritmética e Lógica (ALU);
– Acumulador (ACC);
– Registradores.
54Arquitetura e Organização de Computadores
M P
ULA ACCReg
Barramentode endereços
Barramentode dados
55Arquitetura e Organização de Computadores
Em 1980, David Patterson e Carlo Séquin começaram a projetar chips para CPU e cunharam o termo RISC para os chips que produziram.
Em 1984, Hennessy projetou e fabricou o MIPS. A partir daí começou a diferenciação e a guerra entre os defensores do CISC e RISC.
RISC x CISC
56Arquitetura e Organização de Computadores
CISC (Complex Instruction Set Computer)– Se caracteriza por possuir um conjunto de instruções
bastante complexo.– Possui uma quantidade muito maior de instruções.– Possui uma quantidade menor de registradores.
RISC (Reduced Instruction Set Computer)– Se caracteriza por possuir um conjunto de instruções
bastante simples.– Possui uma quantidade pequena de instruções.– Possui muitos registradores.
RISC x CISC
57Arquitetura e Organização de Computadores
Elementos funcionais de um processador:– Elementos que operam nos valores de dados
• São os elementos combinacionais.• Suas saídas dependem apenas da entrada atual.• Dada a mesma entrada, estes elementos sempre
produzem uma mesma saída.• Não possuem memória.
– Elementos que contêm estados• São os elementos seqüenciais• Possuem um armazenamento interno• Possuem, no mínimo, duas entradas e uma saída.
– Valores de entrada: clock e o dado a ser escrito.– Valor de saída: dado a ser lido.
• Clock informa quando se deve escrever. Porém, a leitura pode ser feita a qualquer momento.
Convenções Lógicasde Projetos
58Arquitetura e Organização de Computadores
Define quando os sinais podem ser lidos e quando podem ser escritos.
– Importante para estabelecer a sincronização destas operações.
• Sem uma metodologia de clocking, ou seja, sem a sincronização das leituras/escritas não teríamos garantia que o sinal lido corresponde ao valor antigo, ao valor recém-escrito ou ainda a uma mistura de ambos.
Metodologia deClocking
59Arquitetura e Organização de Computadores
Sincronização acionada por transição– Quaisquer valores armazenados em um
elemento seqüencial são atualizados apenas em uma transição de clock (transição de subida ou descida).
Metodologia deClocking
60Arquitetura e Organização de Computadores
Qualquer ULA é um aglomerado de circuitos lógicos e
componentes eletrônicos simples que, integrados,
realizam as operações já mencionadas.
Essas operações são sempre realizadas sobre duas
palavras da máquina.
Em geral, esse circuito que trabalha com palavras de n
bits é construído a partir de n circuitos idênticos, cada
qual responsável por uma posição individual de bits.
ULA
61Arquitetura e Organização de Computadores
Para que um dado possa ser transferido para a ULA, é necessário que ele permaneça, mesmo que por um breve instante, armazenado em um registrador.
O resultado de uma operação aritmética ou lógica realizada na ULA é armazenado temporariamente, para que possa ser reutilizado (por outra instrução) ou apenas para ser transferido para a memória.
Para atender a estes propósitos, a CPU é fabricada com uma certa quantidade de registradores, destinados ao armazenamento de dados.
O número de registradores e suas funções varia de processador para processador e é um dos maiores problemas no projeto de uma CPU.
Registradores
62Arquitetura e Organização de Computadores
Há sistemas nos quais um desses registradores, denominado acumulador (abrevia-se, em inglês, ACC), além de armazenar dados, serve de elemento de ligação da ALU com os outros dispositivos da CPU.
Os registradores da CPU são divididos em 2 tipos:
Registradores visíveis para o usuário
– Permite ao usuário minimizar referências à memória através do uso
deles.
Registradores de controle e de estado
– Utilizados pela UC para controlar operações da CPU e programas
privilegiados do sistema operacional para controlar a execução de
programas.
Registradores
63Arquitetura e Organização de Computadores
Registradores visíveis para o usuárioRegistradores visíveis para o usuário
a. Registradores de propósito geral
b. Registradores de dados
c. Registradores de endereço (segmento, apontador de
pilha e de índice)
d. Registradores de código de condição (flags)
Registradores
64Arquitetura e Organização de Computadores
Registradores de Controle e de EstadoRegistradores de Controle e de Estado
a. Contador de Programa– Contém o endereço da instrução a ser buscada.
b. Registrador de Instrução– Contém a última instrução a ser buscada.
c. Registradores de endereçamento à memória– Contém o endereço de uma posição da memória.
d. Registradores de armazenamento temporário de dados.– Contém uma palavra de dados a ser escrita na memória ou a palavra lida
mais recentemente.
Registradores
65Arquitetura e Organização de Computadores
Atividades:
• Busca da instrução a ser executada, armazenando-a em um registrador especialmente projetado para esta finalidade;
• Interpretação das ações a serem desencadeadas com a execução da instrução (se é soma, subtração, etc e como realizá-la);
• Geração de sinais de controle apropriados para ativação das atividades requeridas para a execução propriamente dita da instrução identificada. Estes sinais são enviados tanto para componentes internos (ULA, por ex.) quanto externos (MEM, E/S).
Função de Controle
66Arquitetura e Organização de Computadores
• Em resumo, a área de controle é projetada para entender o que fazer, como fazer e comandar quem vai fazer, no momento adequado.
• Os dispositivos básicos que devem fazer parte dessa área funcional são:
– Unidade de controle (UC);– Decodificador;– Registrador de instrução (RI) ou IR - "instruction register";– Contador de instrução (CI) ou PC "program counter";– Relógio ou "clock";– Registradores de endereço de memória (REM) e de dados da
memória (RDM).
Função de Controle
67Arquitetura e Organização de Computadores
M P
ULA
RDM
REMCIACCReg
Barramentode endereços
Barramentode dadosCPU
U CDecodificadorde instruções
RIClock
Barramentode controle
68Arquitetura e Organização de Computadores
69Arquitetura e Organização de Computadores
Uma implementação do MIPS simplificada, contendo somente:– Instruções de referência à memória: lw, sw – Instruções aritméticas e lógicas: add, sub, and, or, slt– Instruções de fluxo de controle: beq, j
• Implementação genérica:
– usar o contador de programa (PC) para fornecer o endereço da instrução
– Ler a instrução da memória– ler registradores– Usar a instrução para decidir exatamente o que fazer
• Todas as instruções usam a ALU após a leitura dos registradores
Por que? Referência a memória?Aritmética? Fluxo de controle?
Fluxo de Dadose Controle
70Arquitetura e Organização de Computadores
Resumo / Vista Simplificada:
Dois tipos de unidades funcionais:– Elementos que operam sobre dados (combinacional)– Elementos que contêm estado (sequencial)
Registers
Register #
Data
Register #
Datamemory
Address
Data
Register #
PC Instruction ALU
Instructionmemory
Address
Fluxo de Dadose Controle
71Arquitetura e Organização de Computadores
Sem clock vs. com clock
Clocks são usados em lógica síncrona – como um elemento que contem estado pode ser atualizado?
Tempo de ciclo
Borda de subida
Borda de descida
Fluxo de Dadose Controle
72Arquitetura e Organização de Computadores
Inclui as unidades funcionais que necessitamos para as instruções
PC
Instructionmemory
Instructionaddress
Instruction
a. Instruction memory b. Program counter
Add Sum
c. Adder
ALU control
RegWrite
RegistersWriteregister
Readdata 1
Readdata 2
Readregister 1
Readregister 2
Writedata
ALUresult
ALU
Data
Data
Registernumbers
a. Registers b. ALU
Zero5
5
5 3
16 32Sign
extend
b. Sign-extension unit
MemRead
MemWrite
Datamemory
Writedata
Readdata
a. Data memory unit
Address
Fluxo de Dadose Controle
73Arquitetura e Organização de Computadores
Operando A
Operando B
resultado
Flag de resultado zero
Fluxo de Dadose Controle
74Arquitetura e Organização de Computadores
Seta31
0
Result0a0
Result1a1
0
Result2a2
0
Operation
b31
b0
b1
b2
Result31
Overflow
Bnegate
Zero
ALU0Less
CarryIn
CarryOut
ALU1Less
CarryIn
CarryOut
ALU2Less
CarryIn
CarryOut
ALU31Less
CarryIn
32
32
32
Seleção
result
a
b
ALU
Linhas de controle:
000 = and001 = or010 = add
110 = subtract111 = slt
Fluxo de Dadose Controle
75Arquitetura e Organização de Computadores
endereçode 32 bitspelo PC
instrução de 32 bits
Fluxo de Dadose Controle
76Arquitetura e Organização de Computadores
Para leitura: deve fornecero endereço (Address) e acionar ocontrole de leitura (MemRead=1)
Para escrita deve fornecer o endereço (Address), o dadoa ser escrito no (Writedata) eacionar o controle de escrita
(MemWrite=1)
Fluxo de Dadose Controle
77Arquitetura e Organização de Computadores
endereço da próxima
de instrução
endereço da instrução corrente
Quando é sequencial, é o endereço da instrução corrente adicionado de 4 (memória de instruções constituída de bytes)
Fluxo de Dadose Controle
78Arquitetura e Organização de Computadores
Usar os multiplexadores para juntar os elementos
PC
Instructionmemory
Readaddress
Instruction
16 32
Add ALUresult
Mux
Registers
Writeregister
Writedata
Readdata 1
Readdata 2
Readregister 1Readregister 2
Shiftleft 2
4
Mux
ALU operation3
RegWrite
MemRead
MemWrite
PCSrc
ALUSrc
MemtoReg
ALUresult
ZeroALU
Datamemory
Address
Writedata
Readdata M
ux
Signextend
Add
Fluxo de Dadose Controle
79Arquitetura e Organização de Computadores
Selecionar as operações para executar (ALU, leitura/escrita, etc.)
Controlar o fluxo de dados (entradas para o multiplexador)
A informação vem de 32 bits da instrução
Exemplo:
add $8, $17, $18 Formato de Instrução:
000000 10001 10010 01000 00000 100000
op rs rt rd shamt funct
Operação da ALU baseada no tipo de instrução e código da função
Fluxo de Dadose Controle
80Arquitetura e Organização de Computadores
Fluxo de Dadose Controle
J-type (jump) and I-type (immediate) instructions are fully specified by op. R-type (register) instructions include an additional field funct to determine the exact operation. The fields used in these types are:
6 5 5 5 5 6 bits[ op | rs | rt | rd |shamt| funct] R-type[ op | rs | rt | address/immediate] I-type[ op | target address ] J-type
rs, rt, rd: register operands;Shamt: shift amount;Address/immediate: operand directly.
For example adding the registers 1 and 2 and placing the result in register 6 is encoded:[ op | rs | rt | rd |shamt| funct] 0 1 2 6 0 32 decimal 000000 00001 00010 00110 00000 100000 binary
81Arquitetura e Organização de Computadores
– Dado o tipo de instrução 00 = lw, sw01 = beq, 10 = aritmética
– Código de função para aritmética
Descrição de uma tabela verdade (que pode ser convertido em portas):
ALUOp Computado do tipo de instrução
ALUOp Funct field OperationALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
0 0 X X X X X X 0100 1 X X X X X X 1101 0 X X 0 0 0 0 0101 0 X X 0 0 1 0 1101 0 X X 0 1 0 0 0001 0 X X 0 1 0 1 0011 0 X X 1 0 1 0 111
Controle
82Arquitetura e Organização de Computadores
Lógica combinacional simples (tabela verdade)
Operation2
Operation1
Operation0
Operation
ALUOp1
F3
F2
F1
F0
F (5– 0)
ALUOp0
ALUOp
ALU control block
R-format Iw sw beq
Op0
Op1
Op2
Op3
Op4
Op5
Inputs
Outputs
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
Controle
83Arquitetura e Organização de Computadores
Calcular o tempo de ciclo assumindo atrasos desprezíveis exceto:– Memória (2ns), ALU e somadores (2ns), acesso aos registradores (1ns)
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31– 0]
Instruction [20– 16]
Instruction [25– 21]
Add
Instruction [5– 0]
RegWrite
4
16 32Instruction [15– 0]
0Registers
WriteregisterWritedata
Writedata
Readdata 1
Readdata 2
Readregister 1Readregister 2
Signextend
ALUresult
Zero
Datamemory
Address Readdata M
ux
1
0
Mux
1
0
Mux
1
0
Mux
1
Instruction [15– 11]
ALUcontrol
Shiftleft 2
PCSrc
ALU
Add ALUresult
Implementaçãode um ciclo
84Arquitetura e Organização de Computadores
Uma implementação do MIPS simplificada, contendo somente:– Instruções de referência à memória: lw, sw– Instruções aritméticas e lógicas: add, sub, and, or, slt– Instruções de fluxo de controle: beq, j
• Implementação genérica:
– Usar o contador de programa (PC) para fornecer o endereço da instrução
– Permitir a leitura da instrução da memória e dos registradores– Definir número e tamanho dos registradores– Criar instruções que se façam necessárias– Usar a instrução para decidir exatamente o que fazer
Implementação eFuncionamento
85Arquitetura e Organização de Computadores
Micro-Arquiteturas
86Arquitetura e Organização de Computadores
Uma Microarquitetura é dividida em uma Parte Operativa e uma Parte de Controle
• Parte Operativa (ou Caminho de Dados)– Constituída de todos os componentes responsáveis pela execução das operações elementares sobre os dados (transformações nos dados)
• Parte de Controle– Constituída de circuitos sequenciais e/ou memória de programa que gera o controle ciclo-a-ciclo da parte operativa
Micro-Arquiteturas
87Arquitetura e Organização de Computadores
Physics
Devices
Analog
Circuits
Digital
Circuits
Logic
Micro-
architecture
Architecture
Operating
Systems
Application
Software
electrons
transistors
diodes
amplifiers
filters
AND gates
NOT gates
adders
memories
datapaths
controllers
instructions
registers
device drivers
programs
Micro-Arquiteturas
88Arquitetura e Organização de Computadores
Micro-Arquitetura
89Arquitetura e Organização de Computadores
Parte Operativa
• Uma microarquitetura executa instruções que são armazenadas na memória
• Recupera e armazena dados em memória
LEITURA E ESCRITA NA MEMÓRIA
• Necessita de registradores de endereço e dados
• Necessidade de barramentos de endereços e dados
Micro-Arquitetura
90Arquitetura e Organização de Computadores
Parte Operativa
Micro-Arquitetura
91Arquitetura e Organização de Computadores
Parte Operativa
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
APONTADOR DE PROGRAMA• Necessidade de um registrador apontador de programa (PC)• Necessidade de realização de operações sobre o conteúdo do PC, para atualização a cada instrução
Micro-Arquitetura
92Arquitetura e Organização de Computadores
Parte Operativa
Micro-Arquitetura
93Arquitetura e Organização de Computadores
Parte Operativa
A Instrução lida da memória é armazenada para decodificação e uso futuro.
REGISTRADOR DE INSTRUÇÕES
• Necessidade armazenamento dos dados vindos da memória• Necessidade de um registrador de instrução
Micro-Arquitetura
94Arquitetura e Organização de Computadores
Parte Operativa
Micro-Arquitetura
95Arquitetura e Organização de Computadores
Parte Operativa
O processo de escrita de dados na memória também utiliza os registradores e barramentos de dados e endereços
CAMINHO PARA A SAÍDA DE DADOS
• Necessidade de recursos específicos para saída de dados.
Micro-Arquitetura
96Arquitetura e Organização de Computadores
Parte OperativaSaída de dados
Micro-Arquitetura
97Arquitetura e Organização de Computadores
Parte Operativa
Para realização de instruções aritméticas a existência de registrado internos aceleram a busca de dados
REGISTRADORES DE USO GERAL
• Necessidade de uma banco de registradores de propósito geral• Necessidade de uma ULA com um conjunto de operadores adequados
Micro-Arquitetura
98Arquitetura e Organização de Computadores
Parte Operativa
Micro-Arquitetura
99Arquitetura e Organização de Computadores
Parte Operativa
Instruções podem usar um, dois ou três endereços
– A = NOT A– A = A + B– A = B + C
• O uso de mais endereços requer mais bits no formato da instrução
REGISTRADOR ACUMULADOR
• Necessidade do uso de um registrador Acumulador (AC)
Micro-Arquitetura
100Arquitetura e Organização de Computadores
Parte Operativa
Micro-Arquitetura
101Arquitetura e Organização de Computadores
Parte Operativa
A Capacidade de empilhar e desempilhar dados em uma região reservada da memória é um recurso importante em muitas arquitetura
APONTADOR DE PILHA
• Necessidade de um registrador apontador de pilha (PS)
Micro-Arquitetura
102Arquitetura e Organização de Computadores
Parte Operativa
Micro-Arquitetura
103Arquitetura e Organização de Computadores
Parte Operativa
Micro-Arquitetura
104Arquitetura e Organização de Computadores
Parte Operativa
Muitas unidades da parte operativa de um processador necessitam de controle explicito
• Estes controles são gerados pela Parte de controle e enviados Ciclo-a-Ciclo à Parte de Controle
SINAIS DE CONTROLE
Micro-Arquitetura
105Arquitetura e Organização de Computadores
Parte Operativa
Micro-Arquitetura
106Arquitetura e Organização de Computadores
O projeto do nível de microarquitetura depende:– da arquitetura do conjunto das instruções a serem
implementadas– dos objetivos de custo e performance do computador que
estiver sendo projetadoA maioria das ISAs modernas, em particular os projetos RISC, tem instruções simples que podem ser executadas em um único ciclo de clockAs ISAs mais complexas, como a do Pentium, precisam de mais ciclos para executar uma única instrução. Neste caso faz-se necessário metodologias de sequenciamento de instruções mais otimizados para melhorar a performance da máquina em termos de tempo.
Micro-ArquiteturaControle
107Arquitetura e Organização de Computadores
Temporização do caminho de dados
O primeiro ciclo (explicito, do caminho de dados, apresentado na figura), pode ser visto como um conjunto de subciclos implícitos
O início do primeiro subciclo é marcado pela transição negativa do clock.
Micro-ArquiteturaControle
108Arquitetura e Organização de Computadores
Temporização do caminho de dados
As atividades, junto com sua duração (entre parênteses), que ocorrem durante os subciclos são:
– Os sinais de controle são ativados (dw - leia delta w)– O barramento B é carregado a partir dos registradores (dx)– A UAL e o deslocador operam (dy)– O resultado da operação da UAL e do deslocador se propaga através
do barramento C em direção aos registradores (dz)
O resultado é armazenado nos registradores na transição positiva do próximo clock
Micro-ArquiteturaControle
109Arquitetura e Organização de Computadores
Temporização do caminho de dados
É de responsabilidade dos engenheiros de projeto assegurar que essa transição positiva ocorra somente após passado o tempo dw+dx+dy+dz. Caso contrário a carga dos registradores não é realizada
Micro-ArquiteturaControle
110Arquitetura e Organização de Computadores
Microinstruções
Para controlar um caminho de dados, precisamos de um conjunto de sinais de controle que atuam sobre os componentes do nível da lógica digital.
Os valores desses sinais de controle especificam as operações a serem executadas em um ciclo do caminho de dados.
A figura abaixo mostra um possível formato para agrupar os bits de controle da nossa arquitetura em 6 grupos, e 36 sinais, assim divididos:
Micro-ArquiteturaControle
111Arquitetura e Organização de Computadores
Microinstruções
Micro-ArquiteturaControle
112Arquitetura e Organização de Computadores
Microinstruções
Endereço - contém o endereço da próxima instrução a ser potencialmente ativada
Desvio - determina como a próxima instrução será selecionada
UAL - especifica as funções da UAL e do deslocador
Barramento C - seleciona qual ou quais registradores serão carregados com o valor que estiver no barramento C
Memória - especifica as funções da memória (escrita, leitura ou busca)
Barramento B - seleciona a entrada do barramento B. Os 4 bits são suficientes para selecionar um dos 9 registradores que disponibilizará seus dados no barramento B.
Micro-ArquiteturaControle
113Arquitetura e Organização de Computadores
Controle Microprogramado: o Mic-1
Para decidir quais dos sinais de controle devem ser habilitados em cada ciclo faz-se necessário a inclusão de um sequenciador em nossa arquitetura.
O sequenciador:
é responsável pela execução de todos os passos necessários a execução de 1 única instrução do nível ISA.
produz dois tipos de informações a cada ciclo:– 1. O estado de cada sinal de controle do sistema– 2. O endereço da microinstrução que será executada em seguida
Micro-ArquiteturaControle
114Arquitetura e Organização de Computadores
A figura mostra o diagrama de blocos detalhado da microarquitetura Mic.
O diagrama de blocos tem 2 partes: O caminho de dados, à esquerda e a seção de controle, à direita.
Micro-ArquiteturaControle
115Arquitetura e Organização de Computadores
A memória de controle:
É o ítem maior e mais importante da parte de controle da máquina
Não deve ser confundida com a memória principal (RAM), acessível via MBR e MDR
Não precisa de sinais de leitura/escrita pois é uma memória ROM (só de leitura)
Guarda microinstruções, ao invés de instruções do nível ISA
Tem 512 palavras, cada palavra contendo uma instrução de 36 bits.
As microinstruções não são executadas sequencialmente, como as instruções da memória principal. Cada microinstrução especifica explicitamente sua sucessora.
Micro-ArquiteturaControle
116Arquitetura e Organização de Computadores
A memória de controle:
O endereço da próxima microinstrução é guardado no registrador MPC (Microprogram Counter)
O registrador de dados da memória de controle é chamado MIR (MicroInstruction Register). Sua função é armazenar a microinstrução corrente cujos bits alimentam os sinais de controle que operam o caminho de dados.
Micro-ArquiteturaControle
117Arquitetura e Organização de Computadores
Micro-ArquiteturaControle
118Arquitetura e Organização de Computadores
ALUSrcA
PCSrc
Branch
ALUSrcB1:0
Opcode5:0
ControlUnit
ALUControl2:0Funct5:0
MainController
(FSM)
ALUOp1:0
ALUDecoder
RegWrite
PCWrite
IorD
MemWrite
IRWrite
RegDst
MemtoReg
RegisterEnables
MultiplexerSelects
MIPS MulticicloUnidade de Controle
119Arquitetura e Organização de Computadores
Tc = tpcq_PC + tmux + max(tALU + tmux, tmem) + tsetup
SignImm
CLK
ARD
Instr / DataMemory
A1
A3
WD3
RD2
RD1WE3
A2
CLK
Sign Extend
RegisterFile
0
1
0
1 0
1
PC 0
1
PC' Instr25:21
20:16
15:0
5:0
SrcB20:16
15:11
<<2
ALUResult
SrcA
ALUOut
31:26
RegD
st
Branch
MemWrite
Mem
toReg
ALUSrcA
RegWriteOp
Funct
ControlUnit
Zero
PCSrc
CLK
CLK
ALUControl2:0
ALU
WD
WE
CLK
Adr
0
1Data
CLK
CLK
A
B00
01
10
11
4
CLK
ENEN
ALUSrcB1:0IRWrite
IorD
PCWritePCEn
MIPS MulticicloCaminho crítico
120Arquitetura e Organização de Computadores
Controle Microprogramadovs.
FSM (Máquina de Estados Finitos)
121Arquitetura e Organização de Computadores
Controle Microprogramado
A unidade de controle micro-programada é hoje em dia uma miniatura de computador que pode ser programada com seqüência de bits.
A unidade de controle micro-programada é utilizada para se desenvolver a implementação de complexas instruções que não podem ser implementadas e forma de hardware.
O inventor da micro-programação foi Maurice Wilkes em 1953, na Inglaterra. Sua idéia era de criar uma unidade de controle mais fácil de se projetar e mais flexível. A utilização da unidade de controle micro-programada tem algumas vantagens:
• Um computador base, que use a micro-programação pode emular outro computador.
• Uma instrução pode ser desenvolvida e ser utilizada em diferentes modelos de hardware
A IBM reconheceu a importância da unidade de controle micro-programada e implementou no computador IBM 360 em abril de 1964. Todos os modelos desta família de conputadores contavam com uma memória de controle rápida e barata, a qual estava microprogramada. Isto se tornou um grande sucesso a família IBM e desde então a microprogramação ficou popular em todo o mundo.
122Arquitetura e Organização de Computadores
MicroarquiteturaEstrutura logica e capacidades funcionais de hardware tal como é visto por um microprogramador.
MicroprogramaçãoÉ uma estratefia para implementar a unidade de controle de um processador que consiste em programar ao nivel das operacoes de transferencia de registros.
Unidade de Controle microprogramadaÉ um circuito lógico que permite realizar a execução em seqüência de um conjunto de instruções muito elementares chamadas de microinstruções.a Unidade de Controle é formada por- Memória de Controle (contem as microinstruções)- Seqüenciador - É o encarregado de manter a ordem correta da execução das microinstruções. Informa o local da próxima microinstrução a ser executada e guarda no contador de microprograma.- Contador de microprograma: É o registro que armazena a localização da próxima instrução a ser executada. Este loca se decodificara em DEC e selecionara uma posição da memória de controleT, HOLD, etc.)
Controle Microprogramado
123Arquitetura e Organização de Computadores
Micro-instrução: É uma palavra da ROM que contém micro-operações de controle.
Micro-operação: É o sinal digital que atua no controle.
Memória de Controle: Memória ROM que armazena o microprograma
Microprograma: É o conjunto de microinstruções que executa o controle
Microrotina: É o conjunto de microinstruções que executa uma função específica no microprograma.
Sequenciador: É um circuito responsável por informar a localização da próxima microinstrução que será executada a partir da microinstrução atual, o indicador de condição e o código da operação do registro de instruções.
Ele é encarregado de direcionar a memória do microprograma baseando-se no contador de microprograma. O Contador de microprograma é um registro que se incrementa com um relógio interno, mas que depende dos registros de estado e instrução e de alguns bits do registro da micro palavra. Em algumas situações determinadas toma valores preestabelecidos (RESET, INTERRUPT, HOLD, etc.)
Controle Microprogramado
124Arquitetura e Organização de Computadores
Controle Microprogramado
125Arquitetura e Organização de Computadores
Controle Microprogramado
126Arquitetura e Organização de Computadores
PCWritePCWriteCondIorD
MemtoRegPCSourceALUOpALUSrcBALUSrcARegWrite
AddrCtl
Outputs
Microcode memory
IRWrite
MemReadMemWrite
RegDst
Control unit
Input
Microprogram counter
Address select logic
Op[
5–
0]
Adder
1
Datapath
Instruction registeropcode field
BWrite
Microprogramação
127Arquitetura e Organização de Computadores
Máquinas de estado finito:– Um conjunto de estados e – Função próximo estado (determinado pelo estado atual e entrada)– Função de saída (determinada pelo estado atual e possivelmente
entrada)
– Usaremos uma máquina Moore (saída baseada somente no estado atual)
Next-statefunction
Current state
Clock
Outputfunction
Nextstate
Outputs
Inputs
Máquinas de EstadoFinito (FSM)
128Arquitetura e Organização de Computadores
Máquinas de Estado Finito (FSM)Elementos de um digrama de estados:• Estados• Transições de estado
EstadoRepresenta uma situação estável (ou seja, uma combinação de entradas e saídas) em que o sistema se pode encontrar, ao longo do tempo.Os atributos de um estado são:• O nome simbólico• O código binário (opcional)• A lista de variáveis (de Moore) ativas neste estado• O conjunto de transições que partem deste estado• O conjunto de transições que chegam a este estado
TransiçãoRepresenta uma mudança de um estado para outro, quando ocorre uma determinada combinação das entradas.Os atributos de uma transição são:• O estado de origem• O estado de destino• A condição de transição, em função das entradas• A lista de variáveis (de Mealy) ativas quando ocorre essa transição (opcional)
129Arquitetura e Organização de Computadores
As saídas não dependem somente das entradas, mas também da seqüência em que foram aplicadas.
......
Z1
Z2
Zn
X1
X2
Xm
Circuito
Seqüencial
Síncrono
Clock
Um circuito seqüencial deve “lembrar” a condição em que se encontra para poder determinar a condição seguinte, em função dos valores das entradas.
Circuitos Sequenciais
130Arquitetura e Organização de Computadores
Como exemplo, considere um contador síncrono crescente/decrescente.A aplicação de um sinal de clock não é suficiente para determinar o valor de contagem, a não ser que o valor de contagem anterior seja conhecido.
Circuitos Sequenciais
131Arquitetura e Organização de Computadores
Fli
p-F
lops
Cir
cui t
oC
omb i
naci
o nal
Entradax(t)
s(t)
z(t)clk
init
132Arquitetura e Organização de Computadores
Circuito Combinacional Circuito Combinacional
Flip-Flops
133Arquitetura e Organização de Computadores
Uma máquina de estados possui uma condição atual, representada pela combinação das saídas dos flip-flops no momento de clock estável (fora de uma borda) e uma condição seguinte, representada pela combinação lógica nas entradas dos flip-flops que levará as saídas dos flip-flops, no momento da borda de clock, ao próximo estado.
Máquinas de Estado Finito (FSM)
134Arquitetura e Organização de Computadores
Reg
ist r
ador
de
Est
ado
Red
eC
omb i
naci
o nal
x(t)
z(t)clk
rst
Estado Atual
Entrada Atual
Próximo Estado
Saída Atual
De forma geral, uma Máquina de estado pode ser desenhada com um circuito combinacional e um conjunto de flip-flops ou registrador de estado.
Máquinas de Estado Finito (FSM)
135Arquitetura e Organização de Computadores
Um circuito seqüencial cuja saída depende do estado atual e da entrada é
chamada de máquina de Mealy.
Stat
e R
egis
t er
C1
x(t) z(t)
clk
rst
Estado Atual
Entrada
Estado Seguinte
C2
Máquinas de Estado Finito (FSM)Mealy
136Arquitetura e Organização de Computadores
Flip
-Flo
ps
C1
x(t)
z(t)
clk
rst
Estado Atual
Entrada
Estado Seguinte
C2
Em alguns circuitos eqüenciais a saída depende somente do estado atual.
Está é chamada de máquina de Moore.
Máquinas de Estado Finito (FSM)Moore
137Arquitetura e Organização de Computadores
CLK
X
Y
Z
Entrada X e sinal de clock CLK
Saída Y indica máquina do tipo:
Saída Z indica máquina do tipo:
Mealy
Moore
Máquinas de Estado Finito (FSM)
138Arquitetura e Organização de Computadores
Exemplo de circuito para uma máquina do tipo Mealy
Máquinas de Estado Finito (FSM)
139Arquitetura e Organização de Computadores
Exemplo de circuito para uma máquina do tipo Moore
Máquinas de Estado Finito (FSM)
140Arquitetura e Organização de Computadores
O projeto de Máquinas de Estado consiste de 7 passos:
Passo 1 – Diagrama de Estados
Passo 2 – Tabela de Estados
Passo 3- Eliminação de Estados Equivalentes
Passo 4- Designação de Estados Auxiliares
Passo 5- Mapa de Estado Seguinte
Passo 6- Mapa de Excitação
Passo 7- Mapa de Saída
Máquinas de Estado Finito (FSM)Projeto
141Arquitetura e Organização de Computadores
Passo 1 – Diagrama de Estados
Um diagrama (gráfico) de estado consiste de:
1. Estados, representados por círculos com os nomes dos estados,
2. Transições, representadas por setas entre estados,
3. Saídas, representadas junto aos estados no caso das máquinas de Moore, ou
junto às transições para o caso das máquinas de Mealy.
Máquinas de Estado Finito (FSM)Projeto
142Arquitetura e Organização de Computadores
Máquinas de Estado Finito (FSM)Diagrama de Estados - Convenção
143Arquitetura e Organização de Computadores
S0 S1
0/0
CLR
1/1
1/0
0/1
SaídaEntrada
Estado
Transição do CLK(subida ou descida) Mealy
Máquinas de Estado Finito (FSM)Diagrama de Estados - Convenção
144Arquitetura e Organização de Computadores
S00
S11
0
CLR
1
1
0
Entrada
Saída
Transição do CLK(subida ou descida)
Moore
Máquinas de Estado Finito (FSM)Diagrama de Estados - Convenção
145Arquitetura e Organização de Computadores
S0 S1
0/0
CLR
1/1
1/0
0/1
S00
S11
0
CLR
1
1
0
Entrada
Saída
Transição do CLK(subida ou descida)
SaídaEntrada
Estado
Transição do CLK(subida ou descida) Mealy
Moore
Máquinas de Estado Finito (FSM)Diagrama de Estados - Convenção
146Arquitetura e Organização de Computadores
Moore
Supor uma entrada serial X por onde chegam números “1” e “0”.Diagrama para detectar se o número de “1”s recebidos é impar.
X Z
Clock
Máquinas de Estado Finito (FSM)Moore
147Arquitetura e Organização de Computadores
S11
01
1
0
Moore
Supor uma entrada serial X por onde chegam números “1” e “0”.Diagrama para detectar se o número de “1”s recebidos é impar.
X Z
Clock
S00CLR
Reset, estado inicial, nada detectado
Transição de Clock com entrada em “1”
Transição de Clock com Segundo 1 - Par
Transição de Clock com
entrada em “0”Detectado número
impar de “1”s
Par Impar
Máquinas de Estado Finito (FSM)Moore
148Arquitetura e Organização de Computadores
Obter o diagrama de estados de um circuito síncrono que detecte todas as ocorrências da seqüência 101. Considere máquina de Mealy.
Máquinas de Estado Finito (FSM)Mealy
149Arquitetura e Organização de Computadores
Obter o diagrama de estados de um circuito síncrono que detecte todas as ocorrências da seqüência 101. Considere máquina de Mealy.
S0CLR
00
S1
10
S2
00
11
1
0
0
0
Máquinas de Estado Finito (FSM)Mealy
150Arquitetura e Organização de Computadores
ExemploDetectar a seqüência 1101
Maq. Estados
din
doutclk
clr
din
dout
1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0
0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0
151Arquitetura e Organização de Computadores
S00
S10
S20
S30
S41
11
0
1
0 10
0
1
0
CLR
Máquinas de Estado Finito (FSM)Moore – Sequência 1101
152Arquitetura e Organização de Computadores
Exemplo: Obter o diagrama de estados de um circuito síncrono que detecte todas as ocorrências da seqüência 0010. Ocorrendo mais que dois 0 consecutivos, a máquina volta ao estado inicial após a ocorrência de um 1. Considere máquina de Mealy.
153Arquitetura e Organização de Computadores
S0 S1
CLR
S2 S300
01
00
10
10
10
S4
00
00
10
10
154Arquitetura e Organização de Computadores
Exemplo:Obter o diagrama de estados de um circuito síncrono que indique se o número de 0 recebidos for par e maior que zero. Se ocorrer dois 1 consecutivos, o circuito deve travar (com saída igual a zero). Maquina do tipo Moore.
155Arquitetura e Organização de Computadores
1
CLR S00
S10
0
S21
0PAR
0IMPAR
S60
S30
10
S40
1
0 S51
1
1 1 1
0,1
0
156Arquitetura e Organização de Computadores
O projeto de Máquinas de Estado consiste de 7 passos:
Passo 1 – Diagrama de Estados
Passo 2 – Tabela de Estados
Passo 3- Eliminação de Estados Equivalentes
Passo 4- Designação de Estados Auxiliares
Passo 5- Mapa de Estado Seguinte
Passo 6- Mapa de Excitação
Passo 7- Mapa de Saída
Máquinas de Estado Finito (FSM)Projeto
157Arquitetura e Organização de Computadores
PCWritePCSource = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA =1ALUSrcB = 00ALUOp= 10
RegDst = 1RegWrite
MemtoReg = 0
MemWriteIorD = 1
MemReadIorD = 1
ALUSrcA = 1ALUSrcB = 10ALUOp = 00
RegDst = 0RegWrite
MemtoReg=1
ALUSrcA = 0ALUSrcB = 11ALUOp = 00
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource = 00
Instruction fetchInstruction decode/
register fetch
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation
Memoryaccess
Memoryaccess R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
= 'B
EQ')
(Op
= 'J
')
(Op = 'SW
')
(Op
= 'L
W')
4
01
9862
753
Start
Máquinas de Estado FinitoEspecificação
158Arquitetura e Organização de Computadores
PCWrite
PCWriteCond
IorD
MemtoReg
PCSource
ALUOp
ALUSrcB
ALUSrcA
RegWrite
RegDst
NS3NS2NS1NS0
Op5
Op4
Op3
Op2
Op1
Op0
S3
S2
S1
S0
State register
IRWrite
MemRead
MemWrite
Instruction registeropcode field
Outputs
Control logic
Inputs
Máquinas de Estado FinitoImplementação
159Arquitetura e Organização de Computadores
ROM = "Read Only Memory"– Os valores das palavras de memória são fixas ao longo do tempo
Uma ROM pode ser usada para implementar uma tabela verdade– Se o endereço é de m-bits, podemos endereçar 2m entradas na ROM.– Nossas saídas são os bits de dados onde o endereço aponta.
m é a “altura", e n é a “largura"
m n
0 0 0 0 0 1 10 0 1 1 1 0 00 1 0 1 1 0 00 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 11 1 0 0 1 1 01 1 1 0 1 1 1
Máquinas de Estado FinitoImplementação em ROM