Arquitetura e Organização de Computadores 1
Unidade Central de Processamento
Prof. Otávio Gomes
Prof. Mário Luiz Rodrigues
Arquitetura e Organização de Computadores 2
Unidade Central de Processamento
Unidade Central de Processamento Unidade Lógica e Aritmética
Micro-Arquiteturas
Organização em Parte Operativa e de Controle Controle Microprogramado
Controle FSM (Máquina de Estados Finitos)
Arquitetura e Organização de Computadores 3
Arquitetura e Organização de Computadores 4
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 Central
de Processamento
Arquitetura e Organização de Computadores 5
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 Central
de Processamento
Arquitetura e Organização de Computadores 6
Unidade Central
de Processamento
Arquitetura e Organização de Computadores 7
• 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)
Arquitetura e Organização de Computadores 8
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)
Arquitetura e Organização de Computadores 9
Módulos
do Computador
Arquitetura e Organização de Computadores 10
Recebe e envia dados
Recebe endereços ( de localizações) Recebe sinais de controle
– Read – Write – Timing
Memória
Arquitetura e Organização de Computadores 11
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)
Arquitetura e Organização de Computadores 12
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)
Arquitetura e Organização de Computadores 13
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
Arquitetura e Organização de Computadores 14
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?
Arquitetura e Organização de Computadores 15
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
Barramento
De Dados
Arquitetura e Organização de Computadores 16
É 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
Barramento
De Endereços
Arquitetura e Organização de Computadores 17
Controle e informações de tempo
– Sinal de Leitura/Escrita na memória – Requisição de Interrupção
– Sinais de Clock
Barramento
De Controle
Arquitetura e Organização de Computadores 18
Barramento
De Controle
Arquitetura e Organização de Computadores 19
Esquema de Interconexão
dos Barramentos
Arquitetura e Organização de Computadores 20
Muitos dispositivos em um único
barramento podem levar a propagação de atraso.
Muitos sistemas utilizam múltiplos
barramentos para evitar este problema.
Problemas de
Barramentos Simples
Arquitetura e Organização de Computadores 21
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
Arquitetura e Organização de Computadores 22
ISA
Arquitetura e Organização de Computadores 23
Barramentos de Alta
Performance
Arquitetura e Organização de Computadores 24
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 de
Barramentos
Arquitetura e Organização de Computadores 25
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)
Arquitetura e Organização de Computadores 26
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)
Arquitetura e Organização de Computadores 27
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
Arquitetura e Organização de Computadores 28
Timing
Arquitetura e Organização de Computadores 29
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
Arquitetura e Organização de Computadores 30
PCI 32 bit slot
AGP slot
PCI Express x16 slot
PCI Express x1 slot
Slots PCI
Arquitetura e Organização de Computadores 31
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 Barramento
PCI (necessárias)
Arquitetura e Organização de Computadores 32
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 Barramento
PCI (opcionais)
Arquitetura e Organização de Computadores 33
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
Arquitetura e Organização de Computadores 34
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
Arquitetura e Organização de Computadores 35
• 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
Arquitetura e Organização de Computadores 36
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
Arquitetura e Organização de Computadores 37
• 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
Arquitetura e Organização de Computadores 38
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
Arquitetura e Organização de Computadores 39
Organização
da Memória
Arquitetura e Organização de Computadores 40
Organização
da Memória
Arquitetura e Organização de Computadores 41
Componentes do Computador
Top Level
Arquitetura e Organização de Computadores 42
Ciclo de Intrução com Interrupções
DECODE
Arquitetura e Organização de Computadores 43
Fluxo de Dados
Diagrama de Busca
Arquitetura e Organização de Computadores 44
Diagrama de Estados
Ciclos de Instrução
Arquitetura e Organização de Computadores 45
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 Dados
Execução
Arquitetura e Organização de Computadores 46
Controle de Transferência
Interrupções
Arquitetura e Organização de Computadores 47
Múltiplas Interrupções
Sequenciais
Arquitetura e Organização de Computadores 48
Múltiplas Interrupções
Aninhadas (Nested)
Arquitetura e Organização de Computadores 49
Fluxo de Controle
Programa
Arquitetura e Organização de Computadores 50
• 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
Arquitetura e Organização de Computadores 51
• 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 de
Processamento
Arquitetura e Organização de Computadores 52
• 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 de
Processamento
Arquitetura e Organização de Computadores 53
• Fazem parte dessa área funcional os seguintes dispositivos:
– Unidade Aritmética e Lógica (ALU);
– Acumulador (ACC);
– Registradores.
Arquitetura e Organização de Computadores 54
M P
ULA ACC
Reg Barramento
de endereços Barramento
de dados
Arquitetura e Organização de Computadores 55
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
Arquitetura e Organização de Computadores 56
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
Arquitetura e Organização de Computadores 57
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ógicas
de Projetos
Arquitetura e Organização de Computadores 58
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 de
Clocking
Arquitetura e Organização de Computadores 59
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 de
Clocking
Arquitetura e Organização de Computadores 60
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
Arquitetura e Organização de Computadores 61
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
Arquitetura e Organização de Computadores 62
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
Arquitetura e Organização de Computadores 63
Registradores visíveis para o usuário Registradores 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
Arquitetura e Organização de Computadores 64
Registradores de Controle e de Estado Registradores 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
Arquitetura e Organização de Computadores 65
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
Arquitetura e Organização de Computadores 66
• 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
Arquitetura e Organização de Computadores 67
M P
ULA
RDM REM CI
ACC
Reg Barramento
de endereços Barramento
de dados CPU
U C Decodificador
de instruções
Clock RI
Barramento de controle
Arquitetura e Organização de Computadores 68
Arquitetura e Organização de Computadores 69
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 Dados
e Controle
Arquitetura e Organização de Computadores 70 Resumo / Vista Simplificada:
Dois tipos de unidades funcionais:
– Elementos que operam sobre dados (combinacional) – Elementos que contêm estado (sequencial)
Registers Register # Data Register #
Data memory Address
Data Register #
PC Instruction ALU
Instruction memory Address
Fluxo de Dados
e Controle
Arquitetura e Organização de Computadores 71 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 Dados
e Controle
Arquitetura e Organização de Computadores 72
Inclui as unidades funcionais que necessitamos para as instruções
PC Instruction
memory Instruction address
Instruction
a. Instruction memory b. Program counter
Add Sum
c. Adder
ALU control
RegWrite Registers Write
register
data 1Read
data 2Read Readregister 1
Readregister 2
Write data
resultALU ALU
Data
Data Register
numbers
a. Registers b. ALU
Zero 5
5
5 3
16 32
Sign extend
b. Sign-extension unit MemRead
MemWrite
Data memory Write
data
Readdata
a. Data memory unit Address
Fluxo de Dados
e Controle
Arquitetura e Organização de Computadores 73
Operando A
Operando B
resultado
Flag de resultado zero
Fluxo de Dados
e Controle
Arquitetura e Organização de Computadores 74
Set a31
0
Result0 a0
Result1 a1
0
Result2 a2
0
Operation
b31 b0
b1
b2
Result31
Overflow Bnegate
Zero ALU0
Less CarryIn
CarryOut
ALU1 Less CarryIn
CarryOut
ALU2 Less CarryIn
CarryOut
ALU31 Less CarryIn 32
32
32
Seleção
result a
b
ALU
Linhas de controle:
000 = and 001 = or 010 = add 110 = subtract
111 = slt
Fluxo de Dados
e Controle
Arquitetura e Organização de Computadores 75
endereço de 32 bits
pelo PC
instrução de 32 bits
Fluxo de Dados
e Controle
Arquitetura e Organização de Computadores 76
Para leitura: deve fornecer
o endereço (Address) e acionar o controle de leitura (MemRead=1)
Para escrita deve fornecer o endereço (Address), o dado a ser escrito no (Writedata) e acionar o controle de escrita
(MemWrite=1)
Fluxo de Dados
e Controle
Arquitetura e Organização de Computadores 77
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 Dados
e Controle
Arquitetura e Organização de Computadores 78 Usar os multiplexadores para juntar os elementos
PC
Instruction memory Readaddress
Instruction
16 32
Add ALUresult
Mu x
Registers
Write register Write data
data 1Read
data 2Read Readregister 1
Readregister 2
Shift left 2 4
Mu x
ALU operation 3
RegWrite
MemRead
MemWrite PCSrc
ALUSrc
MemtoReg resultALU
Zero ALU
memoryData Address
Write data
Readdata M ux
Sign extend Add
Fluxo de Dados
e Controle
Arquitetura e Organização de Computadores 79
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 Dados
e Controle
Arquitetura e Organização de Computadores 80
Fluxo de Dados e 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
Arquitetura e Organização de Computadores 81 – Dado o tipo de instrução
00 = lw, sw 01 = 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 Operation ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
0 0 X X X X X X 010
0 1 X X X X X X 110
1 0 X X 0 0 0 0 010
1 0 X X 0 0 1 0 110
1 0 X X 0 1 0 0 000
1 0 X X 0 1 0 1 001
1 0 X X 1 0 1 0 111
Controle
Arquitetura e Organização de Computadores 82 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
Arquitetura e Organização de Computadores 83
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
Instruction memory Readaddress
Instruction [31– 0]
Instruction [20– 16]
Instruction [25– 21]
Add
Instruction [5– 0]
RegWrite 4
16 32
Instruction [15– 0]
0 Registers
Write register Write data
Write data data 1Read
data 2Read Readregister 1
Readregister 2
Sign extend
resultALU Zero
Data memory Address Read
data M
ux 1 0
Mu x 1
0 Mu x 1
0 Mu x 1 Instruction [15– 11]
controlALU Shift left 2
PCSrc
ALU Add ALU
result
Implementação
de um ciclo
Arquitetura e Organização de Computadores 84
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 e
Funcionamento
Arquitetura e Organização de Computadores 85
Micro-Arquiteturas
Arquitetura e Organização de Computadores 86
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
Arquitetura e Organização de Computadores 87
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
Arquitetura e Organização de Computadores 88
Micro-Arquitetura
Arquitetura e Organização de Computadores 89
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
Arquitetura e Organização de Computadores 90
Parte Operativa
Micro-Arquitetura
Arquitetura e Organização de Computadores 91
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
Arquitetura e Organização de Computadores 92
Parte Operativa
Micro-Arquitetura
Arquitetura e Organização de Computadores 93
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
Arquitetura e Organização de Computadores 94
Parte Operativa
Micro-Arquitetura
Arquitetura e Organização de Computadores 95
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
Arquitetura e Organização de Computadores 96
Parte Operativa
Saída de dados
Micro-Arquitetura
Arquitetura e Organização de Computadores 97
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
Arquitetura e Organização de Computadores 98
Parte Operativa
Micro-Arquitetura
Arquitetura e Organização de Computadores 99
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
Arquitetura e Organização de Computadores 100
Parte Operativa
Micro-Arquitetura
Arquitetura e Organização de Computadores 101
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
Arquitetura e Organização de Computadores 102
Parte Operativa
Micro-Arquitetura
Arquitetura e Organização de Computadores 103
Parte Operativa
Micro-Arquitetura
Arquitetura e Organização de Computadores 104
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
Arquitetura e Organização de Computadores 105
Parte Operativa
Micro-Arquitetura
Arquitetura e Organização de Computadores 106
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 projetado
A maioria das ISAs modernas, em particular os projetos RISC, tem instruções simples que podem ser executadas em um único ciclo de clock
As 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-Arquitetura
Controle
Arquitetura e Organização de Computadores 107
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 108
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 109
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 110
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 111
Microinstruções
Micro-Arquitetura
Controle
Arquitetura e Organização de Computadores 112
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 113
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 114
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 115
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 116
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-Arquitetura
Controle
Arquitetura e Organização de Computadores 117
Micro-Arquitetura
Controle
Arquitetura e Organização de Computadores 118
ALUSrcA PCSrc
Branch ALUSrcB1:0 Opcode5:0
Control Unit
ALUControl2:0 Funct5:0
Main Controller
(FSM)
ALUOp1:0
ALU Decoder
RegWrite PCWrite
IorD
MemWrite IRWrite
RegDst MemtoReg
Register Enables Multiplexer Selects
MIPS Multiciclo
Unidade de Controle