Arquiteturas de Computadores

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

O Processador: Via de Dados e Controle

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

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

DataPath II Tomando o controle!

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

Infra-estrutura de Hardware

Infra-estrutura de Hardware

Organização de Computadores

Arquiteturas de Computadores

Relembrando desempenho...

Relembrando desempenho...

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

ção de Computadores II

Arquiteturas de Computadores

SSC0114 Arquitetura de Computadores

Organização ou MicroArquitectura

O Porcessador: Via de Dados e Controle (Parte B: multiciclo) 1998 Morgan Kaufmann Publishers Ch5B 1

Arquiteturas de Computadores

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

Desenho do Processador

Arquitetura de Computadores. Prof. Alexandro Baldassin. 1o semestre/2018

Organização de Unidades de Processamento

Tiago Alves de Oliviera

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

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

Microcontroladores e Interfaces

Infraestrutura de Hardware. Instruindo um Computador

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

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

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

Infra-estrutura de Hardware

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

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

Organização e Arquitetura de Computadores I

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

SSC0611 Arquitetura de Computadores

UCP: Construindo um Caminho de Dados (Parte I)

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

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

SSC0112 Organização de Computadores Digitais I

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016

Unidade Central de Processamento UCP (CPU)

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

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

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

Introdução à Computação: Arquitetura von Neumann

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

Data Path / Control Path Controle do MIPS

Capítulo 4. O Processador

Organização de um processador

Pipelining. Luís Nogueira. Departamento Engenharia Informática Instituto Superior de Engenharia do Porto. Pipelining p.

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

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

Processador: Conceitos Básicos e Componentes

ORGANIZAÇÃO DE COMPUTADORES

Arquitetura de Computadores Aula 10 - Processadores

Aula 16: UCP: Conceitos Básicos e Componentes

Capítulo 6 Hazards Morgan Kaufmann Publishers. Ch6c 1

William Stallings Organização de computadores digitais. Capítulo 14 Operação da Unidade de Controle

MELHORAMENTO NO PROCESSADOR SIMPLES

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

UM PROCESSADOR SIMPLES

Especificação do Projeto de Processador RISC

Processador. Processador

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

SSC0902 Organização e Arquitetura de Computadores

Aula 15: Ciclo de Execução e Introdução ao Pipeline

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Nível da Lógica Digital

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

PSI3441 Arquitetura de Sistemas Embarcados

UCP: Caminho de Dados (Parte II)

Questionário Arquitetura e Organização de Computadores

Caminho de Dados e Unidade de Controle

Circuitos Integrados. Nível da Lógica Digital (Aula 7) Circuitos Combinacionais. Circuitos Lógicos Digitais Básicos. Multiplexadores (1)

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores INTRODUÇÃO

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Pipelining - analogia

Arquitetura de Computadores I

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

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Organização e Arquitetura de Computadores I

Arquitetura e Organização de Processadores. Aula 3. Processador MIPS Bloco operacional

PSI3441 Arquitetura de Sistemas Embarcados

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

Organização e Projeto de Computadores

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

2. A influência do tamanho da palavra

MIPS ISA (Instruction Set Architecture)

Aula 21: UCP: Instrução Jump, Monociclo vs. Multiciclo, Pipeline

Circuitos Sequenciais

Projeto de Processadores Programáveis

Arquiteturas de Computadores

Pipeline. Prof. Leonardo Barreto Campos 1

Organização de Computadores

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

Transcrição:

Arquiteturas de Computadores Implementação monociclo de IPS Fontes dos slides: Patterson & Hennessy book website (copyright organ Kaufmann) e Dr. Sumanta Guha

Implementando IPS Implementação do conjunto de instruções IPS Simplificado para conter somente Instruções lógico-aritméticas: add, sub, and, or, slt Instruções de referência à memória: lw, sw Instruções de controle de fluxo: beq, j 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits op rs rt rd shamt funct R-Format 6 bits 5 bits 5 bits bits op rs rt offset 6 bits 26 bits op address I-Format J-Format

Implementando IPS: Ciclo Busca/Execução Visão alto nível da implementação do ciclo de busca/execução de uma instrução usa o registrador contador de instrução (PC) para fornecer o endereço da instrução busca a instrução na memória e incrementa PC usa campos da instrução para selecionar os registradores a serem lidos executa a instrução repita Data Register # PC Address Registers Register # ALU memory Register # Address Data memory Data

Estilos para implementação do processador onociclo Executa cada instrução em um ciclo de relógio O ciclo de relógio deve ser longo o suficiente para que a instrução que demanda maior tempo seja executada desvantagem: tão rápido quanto a instrução mais lenta ulti-ciclos Quebra o ciclo de busca/execução em vários passos executa 1 passo em cada ciclo de relógio vantagem: cada instrução usa somente o número de ciclos que precisa Pipelined executa cada instrução em vários passos executa 1 passo / instrução em cada ciclo de relógio Processa múltiplas instruções em paralelo

Elementos funcionais Dois tipos de elementos funcionais no hardware: elementos que operam os dados (denominados elementos combinacionais ) elementos que contêm dados (denominados elementos de estado ou sequenciais)

Elementos Combinacionais Trabalham com uma função input output, e.g., ALU Lógica combinacional lê dados de entrada de um registrador e escreve dados no mesmo registrador ou em um diferente Leitura/escrita acontecem em um único ciclo elemento combinacional não armazena dado de um ciclo para outro Unidades de hardware com lógica combinacional State element 1 Combinational logic State element 2 State element Combinational logic Clock cycle

Elementos de Estado Elementos de estado armazenam dados, e.g., registradores e memória Todos os elementos de estado definem o estado da máquina

Elementos de estado no caminho de dados: Registradores Clock 5 bits 5 bits 5 bits 32 bits register number 1 register number 2 Register file register data data 1 data 2 32 bits 32 bits Sinal de controle Registradores com duas portas para leitura e uma porta para escrita

Elementos de estado no caminho de dados: Registradores Implementação: Clock Clock register number 1 Register 0 Register 1 Register n 1 Register n u x data 1 Register number 0 1 n-to-1 decoder n 1 n C Register 0 D C Register 1 D register number 2 u x data 2 Register data C Register n 1 D C Register n D Portas de entrada são implementadas com 2 multiplexadores de 5 bits para selecionar 32 registradores Porta de saída é implementada com um decodificador 5-to-32 para 32 registradores. O relógio é relevante para a escrita porque o estado do registrador só pode ser trocado na transição do relógio

Implementação de IPS monociclo A primeira implementação de IPS irá usar um único ciclo longo de relógio para cada instrução Cada instrução começa a ser executada em uma transição para cima do relógio e termina na próxima transição para cima Esta abordagem não é prática porque é muito mais devagar que uma implementação multiciclo onde cada instrução pode necessitar de números de ciclos diferentes Em uma implementação monociclo, cada instrução deve utilizar o mesmo tempo que a instrução mais lenta necessita Em uma implementação multiciclo, este problema é evitado porque instruções mais rápidas necessitam um número menor de ciclos Embora a abordagem monociclo não seja utilizada na prática, ela é simples e fácil de entender

Caminho de dados: Instrução Armazena/Busca & Incremento do PC address memory PC Add Sum PC address 4 Add a. memory b. Program counter c. Adder Três elementos usados para armazenar e buscar instruções e incrementar o PC memory Caminho de dados

Caminho de dados: Instrução Armazena/Busca & Incremento do PC ADD Instrução <- E[PC] PC <- PC + 4 4 PC ADDR emory RD

Caminho de dados: Instrução do tipo R Register numbers Data 5 3 register 1 5 5 register 2 Registers register data data 1 data 2 Reg Data ALU control Zero ALU ALU result a. Registers b. ALU register 1 register 2 Registers register data data 1 data 2 Reg 3 ALU operation Zero ALU ALU result Dois elementos usados para implementar instruções do tipo R Caminho de dados

Caminho de dados: Instrução do tipo R op rs rt rd shamt funct add rd, rs, rt R[rd] <- R[rs] + R[rt]; 5 5 5 RN1 RN2 WN RD1 Register File Operation 3 ALU Zero Reg RD2

Caminho de dados: Instrução Carrega/Armazena Address data em Data memory data Sign 32 extend register 1 register 2 Registers register data Reg data 1 data 2 3 ALU operation Zero ALU ALU result Address data em Data memory data em Sign 32 extend em a. Data memory unit b. Sign-extension unit Dois elementos adicionais usados para implementar instruções do tipo carrega/armazena Caminho de dados

Caminho de dados: Instrução Carrega/Armazena op rs rt offset/immediate 5 5 RN1 RN2 WN RD1 Register File Reg 5 RD2 E T N D 32 Operation 3 ALU lw rt, offset(rs) R[rt] <- E[R[rs] + s_extend(offset)]; Zero em ADDR emory em RD

Caminho de dados: Instrução Carrega/Armazena op rs rt offset/immediate 5 5 RN1 RN2 WN RD1 Register File Reg 5 RD2 E T N D 32 Operation 3 ALU sw rt, offset(rs) E[R[rs] + sign_extend(offset)] <- R[rt] Zero em ADDR emory em RD

Caminho de dados: Instrução de desvio PC + 4 from instruction datapath Add Sum Branch target Shift left 2 register 1 register 2 Registers register data Reg data 1 data 2 Sign 32 extend 3 ALU ALU operation Zero To branch control logic Caminho de dados

Caminho de dados: Instrução de desvio op rs rt offset/immediate PC +4 from instruction datapath ADD 5 5 RN1 RN2 WN RD1 Register File Operation ALU Zero <<2 Reg RD2 E T N D 32 beq rs, rt, offset if (R[rs] == R[rt]) then PC <- PC+4 + s_extend(offset<<2)

Caminho de dados para IPS I:onociclo Entrada deve ser conteúdo de registrador (formato R) ou metade da instrução com extensão de sinal (formato carrega/armazena) Dados vêm da ALU (tipo R) ou da memória (carrega) Combinando o caminho de dados para instruções do tipo R e carrega/armazena usando dois multiplexadores

Instruções do tipo R add rd,rs,rt 32 5 5 RN1 RN2 WN RD1 Register File 5 Operation 3 ALU Zero Reg RD2 E T N D 32 U ALUSrc em ADDR Data emory em RD emtoreg U

Instrução do tipo carrega lw rt,offset(rs) 32 5 5 RN1 RN2 WN RD1 Register File 5 Operation 3 ALU Zero Reg RD2 E T N D 32 U ALUSrc em ADDR Data emory em RD emtoreg U

Instrução do tipo armazena sw rt,offset(rs) 32 5 5 RN1 RN2 WN RD1 Register File 5 Operation 3 ALU Zero Reg RD2 E T N D 32 U ALUSrc em ADDR Data emory em RD emtoreg U

Caminho de dados para IP II: onociclo Add Somador separado da ALU porque as operações da ALU e incremento do PC devem ocorrer no mesmo ciclo de relógio 4 PC address memory register 1 register 2 register data Reg emória de dados e instruções separadas porque leitura de memória e instrução ocorrem no mesmo ciclo de relógio Registers data 1 data 2 Sign 32 extend ALUSrc u x Busca da instrução add 3 ALU operation Zero ALU ALU result Address data em em data Data memory emtoreg u x

Caminho de dados para IP III: onociclo PCSrc Novo multiplexador PC 4 address Add memory Endereço da instrução é PC+4 ou endereço do desvio register 1 register 2 register data Registers data 1 data 2 Reg Sign 32 extend Shift left 2 ALUSrc u x Add ALU result 3 ALU operation Zero ALU ALU result u x Address data Precisa de um somador extra porque os dois operam no mesmo ciclo em em data Data memory emtoreg u x Incluindo a capacidade de desvio e outro multiplexador

Execução da instrução add ADD 4 ADD U PC ADDR emory RD 32 5 5 RN1 RN2 WN RD1 Register File 5 <<2 Operation 3 ALU Zero PCSrc add rd, rs, rt Reg RD2 E 32 T N D U ALUSrc em ADDR Data emory em RD emtoreg U

Execução da instrução lw ADD 4 ADD U PC ADDR emory RD 32 5 5 RN1 RN2 WN RD1 Register File 5 <<2 Operation 3 ALU Zero PCSrc lw rt,offset(rs) Reg RD2 E 32 T N D U ALUSrc em ADDR Data emory em RD emtoreg U

Execução da instrução sw 4 ADD ADD U PC ADDR emory RD 32 5 5 RN1 RN2 WN RD1 Register File 5 <<2 Operation 3 ALU Zero PCSrc sw rt,offset(rs) Reg RD2 E 32 T N D U ALUSrc em ADDR Data emory em RD emtoreg U

Execução da instrução beq ADD 4 ADD U PC ADDR emory RD 32 5 5 RN1 RN2 WN RD1 Register File 5 <<2 Operation 3 ALU Zero PCSrc beq r1,r2,offset Reg RD2 E 32 T N D U ALUSrc em ADDR Data emory em RD emtoreg U

Controle Os dados de entrada da unidade de controle são: Os bits do campo opcode da instrução A unidade de controle gera Sinais de controle para a ALU Sinais de escrita e leitura para os elementos de armazenamento Sinais de controle para cada multiplexador

Controle da ALU Como controlar a ALU: controle principal envia 2-bits ALUOp para o campo de controle da ALU. Baseado em ALUOp e campo funct da instrução o controle da ALU gera os 3 bits do campo de controle da ALU Campo de controle da ALU 000 and 001 or 010 add 110 sub 111 slt Function ain Control 6 2 ALUOp ALU Control 3 ALU control input To ALU ALU deve executar funct field add para carregamentos/armazenamentos (ALUOp 00) sub para desvios (ALUOp 01) um entre and, or, add, sub, slt para instruções do tipo R, dependendo do campo da instrução funct (ALUOp 10)

Gerenciando bits de controle da ALU Tabela verdade para os bits de controle da ALU

Projetando o controle principal R-type opcode rs rt rd shamt funct 31-26 25-21 20-15-11 10-6 5-0 Load/store or branch opcode rs rt address 31-26 25-21 20-15-0 Observações sobre o formato da instrução IPS opcode está sempre nos bits 31-26 Dois registradores que devem ser lidos são sempre rs (bits 25-21) e rt (bits 20-) Registrador base para armazenamentos e carregamentos é sempre rs (bits 25-21) Deslocamento de -bits para desvios e armazenamentos e carregamentos é sempre definido pelos bits 15-0 Registrador destino para carregamentos é definido pelos bits 20- (rt) enquanto que para instruções do tipo R é definido pelos bits 15-11 (rd) (necessita de multiplexador)

Caminho de dados com controle I Adicionando controle ao caminho de dados III (e um novo multiplexador para selecionar registrador destino):

Sinais de controle Nome do sinal Efeito quando valor =0 Efeito quando valor =1 RegDst O identificador do registrador a ser escrito vem O identificador do registrador a ser escrito vem dos bits 20- dos bits 15-11 Reg Nenhum O registrador identificado é escrito com os dados que estão em data input ALUSrc O segundo operando da ALU vem O segundo operando da ALU vem do valor com sinal estendido do segundo registrador lido ( data 2) dos bits da instrução PCSrc O conteúdo do PC é substituído pela saída do somador O conteúdo do PC é substituído pela saída do somador que calcula o valor PC + 4 que calcula o endereço do desvio em Nenhum O conteúdo da memória que está no endereço é colocado na saída data output em Nenhum O conteúdo da memória endereçada é substituído pelo conteúdo que está em data input emtoreg O valor de entrada de escrita do registrador O valor de entrada de escrita do registrador data input vem da ALU data input vem da memória Efeitos dos sete sinais de controle

Caminho de dados com controle II 0 4 Add [31 26] Control RegDst Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add result ALU u x 1 PCSrc PC address memory [31 0] [25 21] [20 ] [15 11] 0 u x 1 register 1 data 1 register 2 Registers data 2 register data 0 u x 1 Zero ALU ALU result Address data Data memory data 1 u x 0 [15 0] Sign 32 extend ALU control [5 0] Unidade de controle: a entrada são os 6-bits do campo opcode da instrução, a saída são 7 sinais de 1-bit e 2-bits de sinal ALUOp