Você está na página 1de 25

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

Você também pode gostar