Escola de Engenharia
Universidade Federal de Minas Gerais (UFMG)
ELT123 - Arquitetura e Organização de Computadores
Tópico 7: Microarquitetura (Single-cycle)
Prof. Jhonattan Cordoba Ramirez
Introdução
• A microarquitetura, é a ligação entre a lógica e a arquitetura.
• Arranjo específico de:
• Registros
Software e aplicações
• Unidade Lógica e Aritméticas (ALU)
Sistema operacional
• Maquinas de estados finitos (FSM)
Arquitetura
• Memórias
Microarquitetura
Lógica Arquitetura MIPS pode ter muitas microarquiteturas
Circuitos digitais
• Arquitetura de um computador
Circuitos análogos
• Conjunto de instruções
Dispositivos
• Estado Arquitetural (EA)
Físicos
• Em MIPS, o Estado Arquitetural (EA) está composto por:
• Por 32 registros
• Contador de programa (PC)
Introdução
Tipo Conjunto de instruções
Aritméticas e/ou lógicas – Tipo
add, sub, and, or, slt
R
Memória lw, sw
Deslocamento beq
Depois de construir as microarquiteturas com essas instruções, vamos
estendê-las para suportarem addi e j
Microarquitetura MIPS
Instrução
Executa uma instrução
Único ciclo inteira em cada ciclo
(Single-cycle)
Limitação do tempo de ciclo?
Ciclo
Executa instruções em uma serie de ciclos mais curtos
Multiciclos
(Multicycle) Redução de custos de hardware, através da reutilização de blocos. SOMADOR
Implementa PIPELINE ao single-cycle.
Pipeline
É uma técnica usada para obter paralelismo dentro do mesmo
processador.
Processo do projeto
MIPS – 32 bits
Memoria de dados
Registros
Caminho de dados
Unidade Lógica e Aritméticas (ALU)
Caminho de
dados – 32 bits
Multiplexadores
A unidade de controle recebe a instrução atual a partir do caminho de dados
e informa ao caminho de dados como executar essa instrução.
Controle Especificamente, a unidade de controle produz os sinais de seleção do
multiplexador, enable dos registros, e escrita da memória para controlar o
funcionamento do caminho de dados.
Elementos de estado
PC Memoria de instrução Registro Memoria de dados
Memorias
Estado arquitetural (Contador de programa e registro)
Microarquitetura de ciclo único
PC – Contador do programa: Endereço de instrução que será executada.
Microarquitetura de ciclo único
Instrução de memoria lê e procura a instrução de 32 bits
• Instrução inicial lw – Em lw, ler registro origem com endereço base rs.
Microarquitetura de ciclo único
Imediato precisa offset de 16 bits para obter conjunto de 32
bits.
• SignImm possui 32 bits
Microarquitetura de ciclo único
ALU 010 = Adição
Valor armazenado no
registro
Resultado obtido de
Imediato + Extenção
Microarquitetura de ciclo único
Informação lida do endereço de memoria especificado é armazenado no registro de destino rt.
Microarquitetura de ciclo único
Microarquitetura de ciclo único
• Na implementação do sw, ALU soma endereço base ao imediato para encontrar endereço de memoria.
• Registro rt, é lido pelo sw como registrador de origem.
Microarquitetura de ciclo único
• Instruções tipo R: Leitura de dois registros, executa operação da ALU e o resultado é armazenado em
um outro registrador.
Microarquitetura de ciclo único
• Branch beq: Offset indica numero de instruções para o branch passar. PCBranch = PC+4+(SignImm*4)
Microarquitetura de ciclo único
Controle do ciclo único
Determina os sinais de controle com base nos campos opcode e funct.
𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼31:26 𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼05:00
Unidade de controle
MemtoReg
MemtoWrite
opcode31:26 Branch
Decodificador Valor no ALUop Ação
ALUSrc
principal
RegDst 00 Adição
RegWrite
01 Subtração
ALUop01:00 10 Consulta em funct
11 n/a
funct 05:00 ALUControl02:00
Decodificador
do ALU
Controle do ciclo único
Unidade de controle
Operações do ALU Operações do ALU
MemtoReg 000 A and B ALUop funct ALUControl
MemtoWrite
001 A or B 00 X 010 (add)
opcode31:26 Branch
Decodificador 010 A+B
ALUSrc X1 X 110 (sub)
principal
RegDst 011 Não é usado 1X 100000 010 (add)
RegWrite
100 �
A and B 1X 100010 110 (sub)
ALUop01:00 101 �
A or B 1X 100100 000 (and)
110 �
A-B 1X 100101 001 (or)
funct 05:00 ALUControl02:00
Decodificador 111 slt 1X 101010 111 (slt)
do ALU
1X 101011 011 (mult)
Controle do ciclo único
Exemplo:
Estabelecer valores para as variáveis de
controle em um processador de ciclo
único, para uma instrução Tipo-R, lw, sw
e beq.
Instrução opcode RegWrite RegDst ALUSrc Branch MemWrite MemtoReg ALUop
Tipo-R 000000 1 1 0 0 0 0 10
lw 100011 1 0 1 0 0 1 00
sw 101011 0 X 1 0 1 X 00
beq 000100 0 X 0 1 0 X 01
Exemplo instrução or
Instrução addi
Instrução opcode RegWrite RegDst ALUSrc Branch MemWrite MemtoReg ALUop
addi 001000 1 0 1 0 0 0 00
Instrução j
Instrução opcode RegWrite RegDst ALUSrc Branch MemWrite MemtoReg ALUop
j 000010 0 X X X 0 X XX
Análise de desempenho
• Execução de programas – Tempo de relógio.
• Tempo total de execução de BENCHMARKS.
𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆
𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡 𝑑𝑑𝑑𝑑 𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 = (𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 𝑑𝑑𝑑𝑑 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖)
𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶
• Numero de intruções?
• Ciclos por instrução – CPI (Cycles per instruction) é o número de ciclos de relógio
necessários para executar uma instrução média. É o inverso da taxa de transferência
(instruções por ciclo, ou IPC (instruction per cycles))
• Numero de segundos por ciclo é o período de relógio, Tc. O período de relógio é determinado
pelo caminho crítico através da lógica do processador.
• Desafio no projeto: Implementar um projeto que minimize o tempo de execução.
Análise de desempenho
Cada instrução em um microprocessador de
ciclo único, requer um ciclo de relógio.
Nesse caso o CPI é 1.
Tc = t pcqpc + t mem + max t RFread , t sext + t mux …
+t ALU + t mem + t mux + t RFsetup
Tc = t pcqpc + 2t mem + t RFread + t ALU + t mem +...
2t mux + t RFsetup
Exemplo de análise de desempenho
Ben Bitdiddle está contemplando a construção de um processador MIPS de ciclo-único em um processo de
fabricação CMOS de 65 nm. Ele concluiu que os elementos lógicos têm os atrasos apresentados na tabela
embaixo. Ajude a calcular o tempo de execução de um programa com 100 bilhões de instruções.
Tc = t pcqpc + 2t mem + t RFread + t ALU +... Elemento Parâmetro Atraso (ps)
2t mux + t RFsetup Reg clk to Q t pcqpc 30
Multiplexer t mux 25
Tempo de ciclo = 950 ps ALU t ALU 200
Mem. read t mem 250
1 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐
Texc = 100 × 109 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 950 × 10−12 𝑠𝑠𝑠𝑠𝑠𝑠 Reg. file read t RFread 150
𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖
Reg. file setup t RFsetup 20
Tempo de execução = 95 seg