Parte Operativa e Parte de Controle do MIPS



Documentos relacionados
Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

O Processador: Caminho de Dados e Controle

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

Organização de Computadores

Organização e Arquitetura de Computadores I

Organização de Unidades de Processamento

Componentes do Computador e. aula 3. Profa. Débora Matos

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

Aula 14: Instruções e Seus Tipos

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Arquiteturas de Computadores

Arquitetura de Computadores I

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

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

ção de Computadores II

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

Organização e Arquitetura de computadores

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Nível da Microarquitetura

28/9/2010. Unidade de Controle Funcionamento e Implementação

ULA Sinais de Controle enviados pela UC

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

Arquitetura de Computadores I

DataPath II Tomando o controle!

Índice. Tudo! (datapath de um ciclo)

Arquitetura de Computadores

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Arquitetura de Computadores. Tipos de Instruções

Caminho dos Dados e Atrasos

Introdução à Arquitetura de Computadores

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Infra-estrutura de Hardware

Infra-estrutura de Hardware

Pipelining - analogia

O Processador: Via de Dados e Controle

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

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

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

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

ARQUITECTURA DE COMPUTADORES

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas

Computadores de Programação (MAB353)

Organização e Arquitetura de Computadores I

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

RISC simples. Aula de Março de

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho

Arquiteturas de Computadores

Estrutura de um Computador

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Visão Geral de Pipelining

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

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

Arquitetura e Organização de Computadores

Relembrando desempenho...

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Data Path / Control Path Controle do MIPS

MODOS DE ENDEREÇAMENTO

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

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

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

Relembrando desempenho...

BARRAMENTO DO SISTEMA

Funcionamento básico de um computador

ARQUITETURA DE COMPUTADORES

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

ARQUITETURA DE COMPUTADORES

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

Organização de Computadores 1

Edeyson Andrade Gomes

Sistemas Computacionais II Professor Frederico Sauer

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

Introdução à Engenharia de Computação

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF Stall Stall ID EX MEM WB

Arquitectura de Computadores II. Revisão e implementação do datapath do MIPS

SSC0112 Organização de Computadores Digitais I

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

ARQUITETURA DE COMPUTADORES

SSC0114 Arquitetura de Computadores

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

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Organização de Computadores 1

Unidade Central de Processamento

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

Arquitetura de Computadores - Princípio de Funcionamento da CPU. Por Helcio Wagner da Silva

Organização Básica do Computador

Organização e Arquitetura de Computadores I. de Computadores

Capítulo 3 Processadores de Propósito Geral: Software

Arquitetura de Computadores. Linguagem de Máquina

Organização de Computadores Como a informação é processada?

Arquitetura de Computadores. Ivan Saraiva Silva

ArchC. Wesley Nunes Gonçalves

Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara

Arquitetura de Computadores. Ivan Saraiva Silva

CISC - Complex Instruction Set Computer

ARQUITETURA DE COMPUTADORES

2 Formalidades referentes ao trabalho

Transcrição:

Capítulo Parte Operativa e Parte de Controle do IPS Ricardo Jacobi niversidade de Brasília Departamento de Ciencia da Computacao Adaptado de Bruno Cunha e Carlos Llanos, IESB

Introdução O desempenho de uma máquina pode ser determinado por três fatores: número de instruções executadas período do clock (ou freqüência) Número de ciclos por instrução (CPI) O compilador e a ISA (Instruction Set Arquitecture) determinam a quantidade de instruções a serem executadas por certo programa

Introdução Este capitulo aborda a implementação de um subconjunto das instruções do IPS O interrelacionamento entre ISA e a implementação é exemplificado em dois projetos alternativos da parte operativa do processador PO uniciclo PO multiciclo

Arquitetura Von Neumann Estrutura básica de um processador nidade de Controle Barramentos Endereços s nidade Operativa Controle Processador emória

nidade Operativa Tambem chamada Parte Operativa, Via de s ou, em inglês, Datapath É construída a partir dos seguintes componentes: elementos de armazenamento (registradores, ffs) operadores lógico-aritméticos recursos de interconexão (barramentos, mux)

nidade Operativa IPS Será projetada para implementar o seguinte subconjunto de instruções do IPS: Instruções de referência a memória: load word (lw) e store word (sw) Instruções Aritméticas e lógicas: add, sub, and, or e slt Instruções de desvio de fluxo: equal (beq), jump (j)

Componentes Combinacionais Componentes combinacionais definem o valor de suas saidas apenas em funcao dos valores presentes nas suas entradas A 32 B 32 CarryIn Somador 32 Somador A B Soma Carry AL control 3 32 32 LA AL 32 Result Select A 32 B 32 32 Y

Componentes Sequenciais Componentes sequenciais tem um estado, que define seu valor em um dado instante de tempo Registrador: m conjunto de flip-flops tipo D (Registrador) Com n bits de entrada e saída entrada de habilitação de escrita (write enable) Habilitação de escrita (write enable): falso (0): O dado de saída não muda verdade (1): o dado de entrada será carregado (saída = entrada) write E Reg n n clk S

emória emória (idealizada) m barramento de entrada: Data In m barramento de saída: Data Out ma palavra é selecionada por: m endereço seleciona a palavra para ser colocada na saída (Data out) Write Enable = 1: Permite que a palavra selecionada seja escrita com a informação na entrada (Data in) Entrada de Clock (CLK) Sincroniza os processos de acesso à memória Write Enable Address Data In DataOut 32 Clk 32 Geralmente, os processos são sincronizados pela borda de subida ou de descida do clock

Estrategia de Temporizacao ma metodologia de temporização define quando os sinais podem ser lidos e quando eles podem ser escritos É necessário evitar situações de conflito, por exemplo, querer ler uma palavra e escrevê-la simultaneamente Será adotada uma metodologia de temporização sensível às transições do sinal do clock Nesta metodologia, qualquer valor armazenado nos elementos de estado só pode ser atualizado durante a transição do sinal de relogio (clk)

Estrategia de Temporizacao Elemento de Estado 1 Lógica Combinacional Elemento de Estado 2 Logica combinacional usualmente tem entradas e saidas conectadas a elementos de estado (sequenciais) O elemento de estado 2 so pode ser escrito depois de os dados estarem estaveis atraso de propagacao no elemento de estado 1 atraso da logica combinacional tempo de pre-carga (setup) no elemento de estado 2

Estrategia de Temporizacao Elemento de Estado 1 Lógica Combinacional Elemento de Estado 2 m ciclo, escrita no clock Elemento de Estado 1 write Lógica Combinacional ultiplos ciclos, com sinal de escrita Elemento de Estado 2 write

Criando a nidade Operativa ma maneira de se começar o projeto de uma unidade operativa (data path) é examinar cada um dos componentes necessários para a execução de cada uma das classes de instruções do IPS Elementos necessários: um lugar para armazenar as instruções (memória de instruções) m registrador para armazenar o endereço de instrução (Program Counter PC) m contador para incrementar o PC, para compor o endereço da próxima instrução (soma 4 para endereçar próxima instrução)

Criando a nidade Operativa... Elementos Básicos Endereço de Instrução Instrução PC Soma emória de Instruções Contador do programa (program counter) Somador

Busca de Instruções 4 Soma PC Endereço de Instrução Instrução write emoria de Instrucoes

Instruções Lógico-Aritméticas Formato de uma instrução tipo R no IPS: op rs rt rd shamt funct 6 bits bits bits bits bits 6 bits Semântica: $rd <- op($rs, $rt) Estrutura de suporte: banco de registradores

Banco de Registradores Dupla porta: leitura de dois registradores ao mesmo tempo Sinal de controle para escrita - leitura não necessita controle Identificação dos registradores ( bits) (32 bits) End Reg 1 End Reg 2 End Reg Dest Entrada Reg 1 Reg 2 s (32 bits) write (sinal de controle para escrita - 1 bit)

Projeto da LA A LA foi desenvolvida no capítulo anterior 3 bits de controle indicam a operação a ser realizada LAop Função 000 and 001 or 010 add 110 sub 111 slt A B 32 32 LAop 3 LA 32 Zero Resultado

Instruções Tipo R unid. operativa 3 Operação End Reg 1 Reg 1 zero End Reg 2 End Reg Destino Reg 2 LA resultado de escrita write

Instruções de Acesso a emória Formato da instrução tipo I (lw/sw): op rs rt endereço 6 bits bits bits 16 bits Ex: lw $8, 32($19) 3 19 8 32 end = $19 + 32

emória emória com um barramento de entrada independente do de saída Controle de escrita (write) e leitura (read) Barramento de endereços m acesso de cada vez write Endereço Saida Entrada read

Extensão de Sinal do Deslocamento Deslocamento na instrução deve ser extendido de 16 para 32 bits, mantendo-se o sinal se for negativo, 16 bits superiores = 1 se for positivo, 16 bits superiores = 0 16 Extensão 32 de sinal 16 bits 1000 0000 0000 0011 1111 1111 1111 1111 1000 0000 0000 0011 32 bits

Acesso a emória lw lê um dado da memória e escreve em um registrador conexão entre a saída da memória e a entrada do banco de registradores sw lê um dado de um registrador e escreve na memória ligação entre saida do banco de registradores e entrada de dados da memória endereço calculado através da LA saída da LA ligada ao barramento de endereços da memória

nidade Operativa lw/sw 3 Operação End Reg 1 End Reg 2 End Reg Destino de escrita Reg 1 Reg 2 LA zero saida Endereço Saida Entrada emoria de dados 16 Extens ão de 32 sinal

Instruções de Desvio beq $1, $2, desloc compara dois registradores soma desloc a PC+4 se $1 = $2 PC + 4 e o endereço da próxima instrução no montador utiliza-se uma versão simplificada, com o rótulo do destino beq $1, $2, Rótulo neste caso, o montador calcula o deslocamento desloc é um deslocamento de palavras, ou seja, cada unidade de desloc corresponde a 4 bytes

Instruções de Desvio A comparação entre os registradores é feita subtraindo-os na LA e verificando se o resultado é zero O PC deve ser carregado com PC + 4 ou PC + 4 + desloc*4, de acordo com o resultado do teste A multiplicação de desloc por 4 é feita deslocando-se de 2 bits o seu valor

Cálculo do Endereço de Desvio Proveniente do bloco busca de instrução (fetch) desl. à esq. de 2 bits PC + 4 soma Endereço de desvio 16 Extensão 32 de sinal

Circuito Cálculo Endereço Desvio End. Reg1 End. Reg2 End. Reg Destino Entrada lido 1 lido 2 PC + 4 desl. à esq. de 2 bits LA soma zero Endereço alvo do desvio condicional Para a lógica de controle do desvio condicional 16 Extensão de sinal 32

Observações Para realizar a comparação dos dois operandos precisamos usar o banco de registradores (os dois operandos estão lá) O cálculo do endereço de desvio foi incluído no circuito (já estudado) Na instrução não é preciso escrever no banco de registradores A comparação será feita pela LA, subtraindo-se os registradores e utilizando a saída zero para verificar a igualdade

IPS niciclo Foram desenvolvidas, na verdade, três tipos de unidades operativas: uma para instruções no formato R (add, sub, etc.) uma para instruções de no formato I ( load e store) uma para instruções condicionais (formato I) Na fase de projeto as vezes precisamos replicar recursos A via de dados mais simples deve-se propor executar as instruções num único período do clock Isto quer dizer que nenhum dos recursos pode ser usado mais de uma vez por instrução

Instruções Lóg/Arit e lw/sw Lógico-aritméticas Leitura-escrita Operação End Reg 1 End Reg 2 End Reg Destino Reg 1 Reg 2 3 LA zero saída Reg 1 Reg 2 Dest R1 R2 3 Operação LA zero Endereço saida Saida Entrada emoria 16 32 Sinal write

Combinando as nidades Operação da AL Instrução End Reg 1 End Reg 2 lido 1 3 zero Escem End Dest Entrada lido 2 LA Endereço Entrada lido EscReg Lerem 16 32 Extensão de sinal Lerem

Acrescentando a Busca so ma P C 4 Endereço Instrução Instruções End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 Operação 3 LA zero Escem lido Endereço Entrada EscReg 16 Extensão 32 de sinal Lerem

Final P C so ma 4 Endereço Instrução Instruções End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 Desl. Esq 2 bits. Operação 3 LA zero so ma Endereço Entrada Escem lido EscReg 16 Extensão 32 de sinal Lerem

Controle do IPS Cada operação requer a utilização adequada dos recursos do IPS Ex: add $t2, $s1, $s2 é necessário que os endereços dos operandos $s1 e $s2 sejam enviados ao banco de registradores Da mesma maneira, o endereço do registrador destino ($t2) deverá ser informando ao banco de registradores ma vez que o banco de registradores disponibilize os valores de $s1 e $s2, estes deverão ser encaminhados à LA Posteriormente, o resultado deverá ser escrito no banco de registradores (registrador $t1)

Controle da LA As operações da LA são controladas por um código de 3 bits: LAop Função 000 and 001 or 010 add 110 sub 111 slt As instruções lw e sw utilizam a operação de soma da LA As instruções do tipo R utilizam uma das operações

Identificação da Operação O campo funct, de 6 bits (no formato R) indica que tipo de operação aritmética/lógica será executada: op rs rt rd shamt funct 6 bits bits bits bits bits 6 bits Pode-se ainda utilizar 2 bits para identificar uma das instruções: 00 acesso à memória (lw, sw) 01 desvio (beq, bne) 10 lógico-aritméticas (add, sub,...)

Controle da LA Lógica da unidade de controle encarregada de gerar os bits que determinam a operação da LA func (campo instrução) tipo instrução 6 bits Controle da la 2 bits 3 bits operação LA

Lógica de Controle da LA P C so ma 4 Endereço Instrução Instruções End Reg 1 End Reg 2 End Dest Entrada EscReg lido 1 lido 2 Desl. Esq 2 bits. 3 LA zero so ma Endereço Entrada Escem lido 6 16 32 Extensão de sinal func Controle LA 2 TipoInst Lerem

Circuito de Controle Projeto do Circuito de controle da LA Código de operação da instrução xxx indica irrelevâncias (don't cares) LAop Operação da Instrução Campo da Função Operação desejada da LA Entrada de controle da LA LW 00 load word xxxxxx soma 010 SW 00 store word xxxxxx soma 010 Beq 01 branch equal xxxxxx subtração 110 Tipo R 10 add 100000 soma 010 Tipo R 10 subtract 100010 subtração 110 Tipo R 10 and 100100 and 000 Tipo R 10 or 100101 or 001 Tipo R 10 set less than 101010 set less than 111

Tabela Verdade Controle LA Considerando apenas os códigos que definem a operação: LAop Campo da Função Operação LAop1 LAop2 F F4 F3 F2 F1 F0 da LA 0 0 x x x x x x 010 x 1 x x x x x x 110 1 x x x 0 0 0 0 010 1 x x x 0 0 1 0 110 1 x x x 0 1 0 0 000 1 x x x 0 1 0 1 001 1 x x x 1 0 1 0 111

Equações Lógicas ma versão simplificada do projeto lógico: AL OP Campo de Função AL1 x 1 AL0 1 x F x x F4 x x F3 x x F2 x x F1 x 1 F0 x x Op2 = Alu0 + Alu1_F1 AL OP AL1 0 x AL0 x x F x x Op1 = Alu0 + Alu1 F4 x x Campo de Função F3 x x F2 x 0 F1 x x F0 x x

Equações Lógicas... AL OP Campo de Função AL1 1 1 AL0 x x F x x F4 x x F3 x 1 F2 x x F1 x x F0 1 x Op0 = Alu1(F3 + F0) LA1 LA0 F1 F3 F0 F2 Op2 Op1 Op0

nidade de Controle niciclo A unidade de controle deve, a partir do código da instrução, fornecer os sinais que realizam as instruções na unidade operativa Opcode bits[31-26] nidade de Controle Sinais de Controle para a via de dados

Controle do Add Por exemplo, a execução da instrução add $t1, $s0, $s2 requer as seguintes tarefas: encaminhar para a LA o conteúdo dos registradores $s0 e $s2 indicar para a LA que vai ser realizada uma operação da adição Encaminhar o resultado para o registrado $t1

Entrada da nidade de Controle as informações necessárias a execução de uma instrução são retiradas da própria instrução O opcode (código de operação) sempre está nos bits [31-26] Os 2 registradores a serem lidos (rs e rt) sempre estão nas posições [2-21] e [20-16] (para todos os formatos!!!) O registrador base (rs) para as instruções lw e sw sempre está especificado nas posições [2-21] Os 16 bits de deslocamento para as instruções beq, lw e sw estão sempre nas posições [1-0] O registrador destino está em uma das duas posições [20-16] para lw (registrador rt) [1-11] para instruções ariméticas/lógicas (registrador rd)

Sinais de Controle A unidade de controle de prover: sinais para os multiplexadores sinais de leitura e escrita para as memórias seleção da operação da LA controle do novo endereço a ser carregado no PC, para instruções de salto

Sinais de controle som a PC soma 4 Endereço Instrução Instruções RegDst End Reg 1 End Reg 2 End Dest Entrada EscReg lido 1 lido 2 Desl. Esq 2 bits. SelLA LA zero Endereço Entrada Escem lido SelPC SelReg 3 6 16 32 Extensão de sinal func Controle LA 2 OpLA Lerem

Instruções de Desvio A instrução de desvio condicional coloca: PC+Desl ou (salto) PC + 4 (instrução seguinte) no contador de programa PC É necessário selecionar SelPC em função: do código da instrução (beq, bne) do resultado da comparação (sinal zero da LA)

Controle de Desvio Opcode bits[31-26] nidade de Controle Desvia PC + 4 PC + Dsl 0 u x 1 SelPC zero LA

Sinais de Controle LerE: dado da memória no endereço especificado é lido e colocado na saída EscE: conteúdo da memória endereçado recebe o dado SelLA: 0 operando é a segunda saída do banco de registradores 1 operando é o deslocamento extendido RegDST: 0 índice do registrador destino é o campo rt da instrução 1 índice do registrador destino é o campo rd da intrução EscREG: escreve dado no registrador indexado SelPC: 0 PC recebe próximo endereço (PC+4) 1 PC recebe endereço de desvio SelREG: 0 registrador recebe saída da LA 1 registrador recebe saída da memória

Acionamento dos Sinais O acionamento é determinado diretamente pelos códigos das instruções Instrução RegDST SelLA SelREG EscREG LerE EscE Desvia la1 la0 Tipo R 1 0 0 1 0 0 0 1 0 lw 0 1 1 1 1 0 0 0 0 sw 1 0 0 1 0 0 0 beq 0 0 0 0 1 0 1

IPS niciclo so ma Contro le Desl. 2 bits. soma PC 4 Endereço Instrução Instruções End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 3 LA zero Endereço Entrada lido 6 16 32 Extensão de sinal func Controle LA

Lógica de Controle Entradas Saídas Rformat lw sw beq Op 0 1 1 0 Op4 0 0 0 0 Op3 0 1 1 0 Op1 0 1 1 0 Op0 0 1 1 0 RegDst 0 1 1 0 Sella 0 1 1 0 SelReg 0 1 1 0 EscReg 0 1 1 0 Lerem 0 1 1 0 Escem 0 1 1 0 Desvio 0 1 1 0 opla1 0 1 1 0 opla0 0 1 1 0

Implementação em PLA Op Op4 Op3 Op2 Op1 Op0 RegDst Sella SelReg EscReg Lerem Escem Desvio opla1 opla0

Exercício Estender a organização do IPS para dar suporte a execução de JP, desvio incondicional O endereço de desvio é obtido por: PC[31 28] # Instrução[2 0] # 00 onde # indica concatenação de bits

Problemas com IPS niciclo Período do relógio determinado pelo caminho mais longo instrução lw: leitura da instrução leitura do registrador de base, extensão de sinal cálculo do endereço leitura do dado da memória escrita em registrador TODAS as instruções levam o mesmo tempo para executar

Exemplo Supondo os seguintes tempos de execução das unidades do IPS: Acesso a memória: 10 ns LA e somadores: 10 ns Acesso ao banco de registradores: ns outros: 0 ns Quais os tempos de execução das instruções supondo uma implementação uniciclo e outra com ciclo variável, ou seja, duração do ciclo igual a duração da instrução?

Exemplo... Considerando a distribuição de instruções do benchmark gcc, a diferença de velocidade entre as implementações seria: GCC: 22% lw, 11% sw, 49% tipo-r, 16% beq, 2% jump Período uniciclo: 40 ns Período ciclo variável: 40*0.22 + 3*0.11 + 30*0.49 + 2*0.16 + 10*0.2 = 31.6 ns Ganho: 40/31.6 = 1,27

IPS ulticiclo Idéia: cada fase de execução de uma instrução dura um ciclo de relógio Instruções podem ser executadas em um número diferente de ciclos lw leva ciclos jump leva 1 ciclo add leva 4 ciclos

IPS ulticiclo Ciclo dimensionado de acordo com a fase mais demorada nidades funcionais podem ser utilizadas para realizar mais de uma operação durante a execução de uma instrução A organização da parte operativa pode ser reestruturada em função destas características

PO ulticiclo PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero 16 32 Extensão de sinal << 2

PO ulticiclo x PO niciclo Apenas uma memória, com instruções e dados Incremento do PC, cálculo do endereço de desvio, operações lógico-aritméticas realizadas todas pela mesma unidade funcional Introdução e ampliação dos multiplexadores nas entradas da LA Introdução do registrador de Instruções (RI), para armazenar a instrução lida

Controle ulticiclo 1. Busca da Instrução 1. RI = emoria[pc] 2. PC = PC + 4 2.Decodificação e busca de operandos 2.1 A = Reg[RI[2-21]] 2.2 B = Reg[RI[20-16]] 2.3 Rdesvio = PC + (ext-sinal(ir[1-0])) << 2 Rdesvio armazena o endereço de desvio pré-calculado de forma a liberar a LA para outras operações a utilização destes valores depende do tipo de instrução

Controle ulticiclo... 3.Execução 3.1 sla = A + ext-sinal(ir[1-0]) (acesso a memória) 3.2 sla = A op B (tipo R) 3.3 if (A == B) PC = Rdesvio (desvio condicional) 4.Acesso à memória ou escrita de registador 4.1 Acesso à memória: saídaem = emória[saila] ou emória[saila] = B (load) (store) 4.2 Reg[IR[1-11]] = saila; (R-type)

Controle ulticiclo.... Escrita da emória Reg[IR[20-16]] = saidaemória; Atualização do PC: saída da LA: endereçamento sequencial Rdesvio: qdo um salto condicional é realizado Jump: concatenação do PC com bits do RI multiplexador na entrada do PC para selecionar uma destas entradas

IPS ulticiclo Controle << 2 Rdesvio PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero 16 Extensão de sinal 32 << 2 LA

Fase 1: Busca Controle << 2 Rdesvio PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero 16 Extensão de sinal 32 << 2 LA

Fase 2: decodificação Controle << 2 Rdesvio PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero 16 Extensão de sinal 32 << 2 LA

Fase 3: Execução Desvio Controle << 2 Rdesvio PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero 16 Extensão de sinal 32 << 2 LA

Fase 3: Execução Log-Aritmética Controle << 2 Rdesvio PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero 16 Extensão de sinal 32 << 2 LA

Fase 3: Execução Acesso emória Controle << 2 Rdesvio PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero 16 Extensão de sinal 32 << 2 LA

Fase 4: Acesso emória/registrador Controle << 2 Rdesvio PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero Extensão de sinal 16 32 << 2 LA

Fase : Escrita Registrador (lw) Controle << 2 Rdesvio PC End. Leitura End. Escrita Saída RI End Reg 1 End Reg 2 End Dest Entrada lido 1 lido 2 4 LA zero 16 Extensão de sinal 32 << 2 LA

Controle com EF estrutura típica de uma máquina de estados: lógica de saída lógica de transição registrador de estado Control logic Output s PCWrite PCWriteCond IorD emread emwrite IRWrite emtoreg PCSource ALOp AL S rcb AL S rca R e gw rite R e gd st entradas externas (código da instrução) Inputs N S 3 N S 2 N S 1 N S 0 Op Op4 Op3 Op2 Op1 Op0 S3 S2 S1 S0 I nstruction re giste r opcode field S ta te re giste r

EF: Diagrama de Estados Cada nó do diagrama representa um estado A transição entre estados é indicada por arcos As condições de disparo de uma transição são associadas aos arcos Cada estado corresponde a um ciclo de relógio 2 3 emory address computation 4 ALSrcA = 1 ALSrcB = 10 ALOp = 00 (Op = 'LW') emread IorD = 1 emory access (Op = 'SW') Write-back step Start emwrite IorD = 1 emory access Instruction fetch 0 emread ALSrcA = 0 IorD = 0 IRWrite ALSrcB = 01 ALOp = 00 PCWrite PCSource = 00 6 (Op = 'LW') or (Op = 'SW') 7 Execution ALSrcA =1 ALSrcB = 00 ALOp= 10 RegDst = 1 RegWrite emtoreg = 0 8 R-type completion (Op = R-type) Branch completion ALSrcA = 1 ALSrcB = 00 ALOp = 01 PCWriteCond PCSource = 01 (Op = 'BEQ') Instruction decode/ register fetch 1 9 ALSrcA = 0 ALSrcB = 11 ALOp = 00 (Op = 'J') Jump completion PCWrite PCSource = 10 RegDst=0 RegWrite emtoreg=1

Detalhando a EF (I) Busca e decodificação Início Lerem SellaA = 0 IorD = 0 EscRI SellaB = 01 opla = 00 EscPC SelPC = 00 busca SellaA=0 SellaB=11 opla= 00 decodifica LW/SW R-Type BEQ JP

Detalhando a EF (II) 2 SellaA=1 SellaB=10 opla= 00 3 Lerem SellaA=1 IorD=1 SellaB=10 opla= 00 Escem SellaA=1 IorD=1 SellaB=10 opla= 00 4 Lerem SellaA=1 IorD=1 EscReg OrgReg SellaB=10 opla= 00 estado inicial

Detalhando a EF (III) 6 1 SellaA=1 SellaB=00 opla= 10 7 SellaA=1 RegDst=1 EscReg OrgReg=0 SellaB=00 opla= 10 estado inicial

Detalhando a EF (IV) 8 1 BEQ SellaA=1 SellaB=00 opla= 01 EscPCCond SelPC=01 9 1 JP EscPC SelPC=10 estado inicial estado inicial

Exemplo Considerando o exemplo do gcc, como fica o CPI do IPS multiciclo? lw: 22% ( ciclos) sw: 11% (4 ciclos) logarit: 49% (4 ciclos) ramificações: 16% (3 ciclos) saltos: 2% (3 ciclos)

Exemplo CPI = 0.22* + 0.11*4 + 0.49*4 + 0.16*3 + 0.02*3 = 1.1 + 0.44 + 1.96 + 0.48 + 0.06 = 4.04

icroprogramação O projeto da parte de controle através de diagramas de transição de estados pode rápidamente se tornar inviável se o número de estados for muito grande EF's de processadores complexos podem ter milhares de estados ma alternativa para projeto é seguir um processo semelhante a programação

icroinstruções ma microinstrução é definida pelos valores dos sinais de controle que atuam na unidade operativa durante um estado da EF A execução de uma instrução do processador pode então ser realizada através de uma sequência de microinstruções O conjunto de microinstruções que implementa o controle de um processador é chamado de microprograma

icroprograma O sequenciamento das microinstruções é realizado de forma similar a de um programa normal microinstruções são usualmente executadas em sequência -> correspondem a caminhos no diagrama de estados em alguns casos, a sequência a ser seguida depende de informações externas (código da instrução, por exemplo). Nestes casos, são necessários mecanismos de desvio

Formato da icroinstrução A microinstrução é dividida em campos que atuam sobre conjuntos de elementos da unidade operativa Os campos são escolhidos de acordo com sua finalidade. O controle da LA, por exemplo, seria associado a um campo O microprograma é usualmente implementado em RO ou PLA, onde cada microinstrução tem seu próprio endereço

icroinstrução do IPS cntrla: especifica a operação realizada pela LA no ciclo de relógio atual ula1: define o primeiro operando da LA ula2: define o segundo operando da LA dstla: especifica o registrador a receber o resultado da LA mem: indica se acesso é de leitura ou escrita e a origem do endereço memreg: especifica o registrador envolvido no acesso escpc: controla a escrita no PC proxi: especifica como escolher a próxima microinstrução

Sequenciamento da icroinstruções Três alternativas: incrementar o endereço da microinstrução atual valor seq no campo proxi saltar para o início do microprograma (inicia execução de uma nova instrução do IPS) valor fetch no campo proxi desviar de acordo com informação de controle valor despacha i no campo proxi o despacho de microinstruções é realizado com o auxílio de tabelas, implementadas com PLAs/ROs

Valores dos Campos cntrla soma: LA realiza uma soma func: operação definida pelo campo func da instrução sub: operação de subtração ula1 PC: usa o PC como primeiro operando ula2 rs: usa o registrador rs do banco de registradores 4: usar a constante 4 como segundo operando extend: usar a saída da extensão de sinal extdsl: usar a saída do deslocador de 2 bits rt: usar o registrador rt do banco como 2º operando

Valores dos Campos dstla Rdesvio: saída da LA é escrita no registrador de desvio rd: saída é escrita em registrador emoria lerpc: usar PC para endereçar a memória lerla: usar a saída da LA para endereçar a memória escla: escrever na memória usando LA para endereçar memreg RI: dado escrito no registrador de instruções escrt: dado escrito no registrador indicado na instrução lerrt: dado escrito na memória vem de registrador

Valores dos Campos escpc prox LA: saída da LA é escrita no PC Rdesvio: escreve Rdesvio no PC jump: escreve o endereço de salto no PC seq: escolhe a próxima instrução sequencialmente busca: volta para a primeira microinstrução despacha i: despachar a instrução utilizando a tabela i (1 ou 2)

icroprograma Label busca cntrla ula1 ula2 dstla emória memreg escpc prox soma PC 4 lerpc RI LA seq soma PC extdsl Rdesvio despacho Primeira microinstrução: cntrla, ula1, ula2: calcula PC + 4 memória, memreg: busca instrução e coloca em RI escpc: saída da LA vai para o PC seq: vai para a próxima microinstrução

Instruções lw e sw Label lwsw1 lw2 sw2 cntrla ula1 ula2 dstla emória memreg escpc prox soma rs extend despacho soma rs extend lerla seq soma rs extend lerla escrt busca soma rs extend escla lerrt busca lwsw1: lw2: sw2: calcula o endereço da memória, salta para lw2 ou sw2 lê a memória usando a saída da LA como endereço, próxima escreve no registrador, vai para a busca escreve na memória, LA com o endereço e o dado em rt, busca

icroprograma Completo Label cntrla ula1 ula2 dstla emória memreg escpc prox busca soma PC 4 lerpc RI LA seq soma PC Rdesvio despach1 lwsw1 soma rs extend despach2 lw2 soma rs extend lerla seq soma rs extend lerla escrt busca sw2 soma rs extend escla lerrt busca tipor func rs rt seq func rs rt rd busca beq1 sub rs rt Rdesvio busca jump1 jump busca

Exceções e Interrupções Exceções são mudanças no fluxo de execução devido a eventos inesperados gerados internamente ao processador Interrupções são mudanças no fluxo devido a eventos externos, tipicamente entrada e saída Exceções: instrução inválida overflow em operações aritmética Interrupções: DA acesso ao barramento

Exceções e Interrupções A unidade de controle deve identificar a causa da exceção e armazená-la para posterior tratamento pelo sistema operacional Além disso, deve informar o endereço onde ocorreu a exceção IPS utiliza dois registradores para isso: EPC: endereçoda instrução Cause: indicação da causa da exceção