O Processador: Via de Dados e Controle



Documentos relacionados
DataPath II Tomando o controle!

lw, sw add, sub, and, or, slt beq, j

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Relembrando desempenho...

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Organização de Computadores

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Organização ou MicroArquitectura

SSC0114 Arquitetura de Computadores

Data Path / Control Path Controle do MIPS

Arquiteturas de Computadores

O Processador: Via de Dados e Controle (Parte C: microprogramação)

ção de Computadores II

Desenho do Processador

Datapath do MIPS. MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Sistemas Processadores e Periféricos Aula 5 - Revisão

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Tiago Alves de Oliviera

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

SSC0611 Arquitetura de Computadores

Capítulo 6 Hazards Morgan Kaufmann Publishers. Ch6c 1

Sistemas Processadores e Periféricos Aula 2 - Revisão

Microcontroladores e Interfaces

Organização e Arquitetura de Computadores I

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

SSC0112 Organização de Computadores Digitais I

CPU Implementação. Multiciclo. Prof. Carlos Bazilio

Capítulo 4. O Processador

Implementação da UCP. Construção do caminho de dados Controle Implementação monociclo. Organização de Computadores

Infraestrutura de Hardware. Instruindo um Computador

Organização e Arquitetura de Computadores I

Capítulo 6 Pipeline Morgan Kaufmann Publishers

Organização de um processador

Especificação do Projeto de Processador RISC

Introdução. Os mesmos princípios se aplicam a processadores. No MIPS as instruções são divididas normalmente em cinco etapas:

Capítulo MC10 Organização Básica de Processadores

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Pipelining - analogia

Arquitetura de Computadores I Prof. Ricardo Santos (Cap 2)

Organização de um processador

Organização e Arquitetura de Computadores I

Lab 9 Implementação do MIPS em VHDL e teste na FPGA

Unidade Central de Processamento

Questionário Arquitetura e Organização de Computadores

Aula 17: UCP: Construindo um Caminho de Dados (Parte I)

3. INSTRUÇÕES. Instrução é uma palavra da linguagem de máquina. Instruction Set do MIPS ( usado pela NEC, Nintendo, Silicon Graphics e Sony.

UCP: Construindo um Caminho de Dados (Parte I)

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

Sistemas de Computação. Instruções de Linguagem de Máquina

Prova 1 Eng. Elétrica Arquitetura de Computadores Prof. Celso A. Saibel Santos Nome: Data:

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

Microarquitetura IJVM. Datapath mic-1. Função dos Registradores. mic-1

Introdução I. Organização e Arquitetura de Computadores. Sequência 15 Parte Operativa do MIPS - I. Introdução II.

Organização e Arquitetura de Computadores I

Unidade Central de Processamento UCP (CPU)

Explorando o paralelismo entre instruções

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE

Índice. Tudo! (datapath de um ciclo)

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

O Funcionamento do Processador

Parte Operativa e Parte de Controle do MIPS

SSC0902 Organização e Arquitetura de Computadores

Capítulo 5. O Processador: Datapath & Controle

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

Arquitetura de Computadores. Linguagem de Máquina

Organização de Computadores 1

PSI3441 Arquitetura de Sistemas Embarcados

Organização e Arquitetura de Computadores I

Transcrição:

O Processador: Via de Dados e Controle Ch5A

Via de Dados e Controle Implementação da arquitetura MIPS Visão simplificada de uma arquitetura monociclo Instruções de memória: lw, sw Instruções lógicas aritméticas: add, sub, and, or, slt Instruções de desvio: beq, j Não implementadas: mult, div, jal, fp Implementação genérica: O contador de programa (PC) fornece o endereço da instrução Obtém instrução da memória Ler registradores Usar o opcode da instrução para decidir exatamente o que deve ser feito Todas as instruções utilizam a ULA após a leitura dos registradores Ch5A 2

Elementos de estado Clock é usado em lógica síncrona Quando um elemento de estado deve ser atualizado? falling edge cycle time rising edge Ch5A 3

Implementação da lógica baseada em clock Metodologia de disparo na borda Execução típica: Ler conteúdo de elementos de estado Enviar valores através de alguma lógica combinacional Escrever resultados para um ou mais elementos de estado State element Combinational logic State element 2 Clock cycle Ch5A 4

Banco de registradores (e Memória) Banco de registradores Memória: acesso Mem[addr] register number Register 0 Register Register n Register n M u x RD WR register number 2 M u x 2 Dados Endereço register number register number 2 Register file register 2 Ch5A 5

Uma visão simplificada Dados: lw, sw Arit: add, sub,.. op Log: slt Desvio: beq lw $t, 00($t2) add $t, $t2, $t3 slt $t, $t2, $t3 beq $t, $t2, label Fetch ou busca IR Mem[PC] PC PC + 4 lw, sw arit slt beq R Mem[R2+off] R R2 op R3 N R2<R3? R=R2? N S S R 0 R PC PC +off Ch5A 6

Mais detalhes de implementação Primeira abordagem: período de clock por instrução exec de uma instrução Visão simplificada Data Register # PC Address Registers Register # Register # Address Data Data Ch5A 7

Simple Implementation Include the functional units we need for each instruction address PC Add Sum Mem a. b. Program counter c. Adder Address Data 6 Sign 32 extend Register numbers Data 5 3 register 5 5 register 2 Registers register 2 Reg Data control Zero result Mem a. Data unit b. Sign extension unit Why do we need this stuff? a. Registers b. Ch5A 8

Busca (Fetch) Add 4 PC address Ch5A 9

Tipo R Instructio n register register 2 Registers W rite register W rite 2 RegW rite 3 operation Zero result Ch5A 0

Referência a Memória register register 2 Registers register Reg 2 3 operation Zero result Address Mem Data 6 Sign 32 extend Mem Ch5A

beq PC + 4 from instruction path Add Sum Branch target Shift left 2 register register 2 Registers register Reg 2 6 Sign 32 extend 3 operation Zero To branch control logic Ch5A 2

Construção da via de dados Uso de multiplexadores para seleção do valor dos dados PCSrc Add M ux 4 Shift left 2 Add result PC address register register 2 register Reg Registers 2 6 Sign 32 extend Src M ux 3 operation Zero result Address Mem Mem Data MemtoReg M ux Ch5A 3

s e Multiplexadores genérica: R R2 op R3 soma para endereço instrução: PC + 4 soma para endereço de desvio: PC + SignExt (ShiftLeft (Offset)) MUX 2: para escolher segundo operando da genérica R2 SignExt (Offset) MUX 2: para escolher o que será carregado no PC PC + 4 PC + SignExt (ShiftLeft (Offset)) MUX 2: para escolher qual é a origem do dado a ser escrito no Banco de Registradores lido da memória resultado da operação da genérica Ch5A 4

Controle Selecionar operações para uso da, leitura/escrita dos elementos, etc. Controlar o fluxo de dados (entrada dos multiplexadores) Todas as informações vêm dos 32 bits da instrução Exemplo: add $8, $7, $8 Formato da instrução 000000 000 000 0000 00000 00000 op rs rt rd shamt funct Operação da ULA é baseada nos campos opcode e função Ch5A 5

Controle Exemplo: lw $, 00($2) 35 2 00 op rs rt 6 bit offset Entrada de controle da ULA 000 AND 00 OR 00 add 0 subtract set on less than Ch5A 6

Controle da OPCODE Function op Operação lw ou sw xxx xxx 00 soma 000 000 tipo da instr. 0 depende da instr. beq xxx xxx 0 subtração OPCODE 6 Unid. Contr. (parte) op funct 6 2 Control 3 IR OPCODE Funct. Op Funct field Operation Op Op0 F5 F4 F3 F2 F F0 0 0 X X X X X X 00 X X X X X X X 0 X X X 0 0 0 0 00 X X X 0 0 0 0 X X X 0 0 0 000 X X X 0 0 00 X X X 0 0 Binv cod Inst Funct. add 32=20H sub 34=22H and 36=24H or 37=25H slt 42=2AH Ch5A 7

Lógica de controle da Op Op0 Op control block F3 Operation2 F (5 0) F2 F F0 Operation Operation0 Operation Op Funct field Operation Op Op0 F5 F4 F3 F2 F F0 0 0 X X X X X X 00 X X X X X X X 0 X X X 0 0 0 0 00 X X X 0 0 0 0 X X X 0 0 0 000 X X X 0 0 00 X X X 0 0 Inst Funct. add 32=20H sub 34=22H and 36=24H or 37=25H slt 42=2AH Ch5A 8

Campos da instrução e MUX adicional Tipo R op rs rt rd shamt funct 3 26 25 2 20 6 5 0 6 5 0 lw sw op rs rt addr 3 26 25 2 20 6 5 0 beq op rs rt addr 3 26 25 2 20 6 5 0 2 registradores a serem lidos em todos os tipos: campos rs (25 2) e rt (20 6) offset para beq, lw e sw: (5 0) Registradores de destino (write register) em dois lugares: lw e sw: rt (20 6) Tipo R: rd (5 ) Necessário MUX controlado por RegisterDestination: RegDst Ch5A 9

Controle 0 M ux 4 Add [3 26] Control RegDst Branch Mem MemtoReg Op Mem Src Reg Shift left 2 Add result PC address [3 0] [25 2] [20 6] [5 ] M ux 0 register register 2 Registers 2 register 0 M ux Zero result Address Data M ux 0 [5 0] 6 Sign 32 extend control [5 0] RegDst Src Memto Reg Reg Mem Mem Branch Op p0 R format 0 0 0 0 0 0 lw 0 0 0 0 0 sw X X 0 0 0 0 0 beq X 0 X 0 0 0 0 Ch5A 20

Unidade de Controle RegDst Src Memto Reg Reg Mem Mem Branch Op p0 R format 0 0 0 0 0 0 lw 0 0 0 0 0 sw X X 0 0 0 0 0 beq X 0 X 0 0 0 0 Formato R: 000 000 lw: 00 0 sw: 0 0 beq: 000 00 Inputs Op5 Op4 Op3 Op2 Op Op0 R format Iw sw beq Outputs RegDst Src MemtoReg Reg Mem Mem Branch Op OpO Ch5A 2

Implementação monocicloc Considerar os seguintes atrasos (2ns), and adders (2ns), register file access (ns) PCSrc Add M ux 4 Reg Shift left 2 Add result 0 PC address [3 0] [25 2] [20 6] M ux [5 ] 0 RegDst [5 0] register register 2 register 2 Registers 6 Sign 32 extend Src M ux 0 control Zero result Mem Address Data Mem MemtoReg M ux 0 [5 0] Op Ch5A 22

Adicionando a instrução jump [25 0] Shift Jump address [3 0] left 2 26 28 0 4 Add PC+4 [3 28] [3 26] Control RegDst Jump Branch Mem MemtoReg Op Mem Src Reg Shift left 2 Add result M u x M u x 0 PC address [3 0] [25 2] [20 6] [5 ] 0 M u x register register 2 Registers 2 register 0 M u x Zero result Address Data M u x 0 [5 0] 6 Sign 32 extend control [5 0] 2 address 3 26 25 0 Ch5A 23

Problemas com a alternativa de ciclo único Vantagem : CPI =? Desempenho? supor unidades em uso: Memória (2ns), (2ns), Registr (ns) Classe R Fetch Registr Registr lw Fetch Registr Mem Registr sw Fetch Registr Mem beq Fetch Registr j Fetch Classe Mem. Instr. Reg RD Data Mem Reg WR total R 2 2 0 6 lw 2 2 2 8 sw 2 2 2 7 beq 2 2 5 j 2 2 Ch5A 24

Problemas com o ciclo único (2) Desempenho: TCK = caminho crítico = 8 ns velocidade limitada pelo pior caso Alternativas: fazer clock com freqüência variável (muito custoso e complicado) picar a instrução em pequenas funções e executá las em vários ciclos de clock, uma (ou mais) por ciclo em vez de duração variável de ciclo, número variável Vantagens do multiciclo: velocidade: ciclo limitado pela operação mais lenta e não pela instrução mais lenta instruções mais simples executam mais rapidamente economia de hardware ter apenas :, memória, registrador usar uma vez todos esses, por ciclo Ch5A 25