• Nenhum resultado encontrado

Índice de tópicos abordados

N/A
N/A
Protected

Academic year: 2021

Share "Índice de tópicos abordados"

Copied!
50
0
0

Texto

(1)

Índice de tópicos abordados

Esta aula:

Microarquitetura MIPS

(2)

Microarquitetura MIPS

A Arquitetura de um computador pode ser divida em duas partes:  ISA – Instruction Set Architecture – MIPS tem instr. R, I e J

 Estado “arquitetural” – em MIPS representado por 32 re-gistradores e o PC (Program Counter).

MIPS pode ser implementado com diferentes microarquiteturas porém todas precisam suportar o mesmo estado arquitetural. Veremos como uma microarquitetura MIPS suporta o seguinte conjunto de instruções:

• Instruções de acesso à memória: lw e sw

• Instruções tipo R: add, sub, and, or, slt

(3)

Desenvolvimento do Projeto

Dividiremos a microarquitetura em 2 partes básicas:  Caminho de dados (“data path”)

 Controle

Iniciaremos com o hw que contém os elementos que definem o estado: memórias, conjunto de registradores e o PC.

Em seguida iremos adicionando blocos de lógica combinatória para definir o novo estado a partir do estado anterior, depen-dendo da instrução a ser executada.

Convernções de desenho utilizadas:

 linhas grossas – barramentos de dados de 32 bits.

 linhas média – barramentos menores, p. ex. com 5 bits.  linhas azuis – sinais de controle.

(4)

Elementos de estado do processador

A1 e A2 selecionam os registradores de origem rs e rt RD1 e RD2 contêm dados lidos de rs e rt A3 seleciona o registrador de destino rd WE3 habilita a escrita em rd WD3 disponibiliza os dados para escrita em rd Porta de escrita da memória de dados Porta de leitura da memória de dados Endereçamento da memória de dados Porta de leitura da memória de instruções Endereçamento da memória de instruções Program Counter

(5)

Processador de Ciclo Único

Princípio básico de operação:

1 Ciclo Leitura e armazenamento do endereço da instrução no PC (Program Counter) Leitura e decodificação da instrução Execução da Instrução p. ex. escrita Simultaneamente leitura do endereço da próxima instrução no PC

(6)

Instrução lw: escrita do registrador rt

lw rt, (imm)rs

rt recebe conteúdo da memória endereçado por [rs] + SE(imm)

32 bits da instrução

(7)

Instrução lw: obtenção do offset

lw rt, (imm)rs

Campo imm (bits 15:0) é estendido de 16 para 32 bits com sinal conteúdo de rs

(8)

Instr. lw: endereçamento da memória

endereço do dado na memória

endereço do dado na memória = [rs] + SE(imm)

(9)

Escrita do dado no reg de destino rt

dado endereçado é lido na memória registrador de destino rt é selecionado em A3

WE3 precisa estar habilitado (RegWrite = 1) para que a escrita ocorra escrita ocorre no próximo flanco ascendente de CLK

(10)

Endereço da próxima instr.: PC = PC + 4

PC’ = PC + 4 é determinado em paralelo com a execução de lw No próximo flanco ascendente de CLK, PC será atualizado = PC’

(11)

Instrução sw: escrita de rt na memória

sw rt, (imm)rs

Todo o hw utilizado na instrução lw será reutilizado. rt agora é origem. A diferença está nos sinais de controle: RegWrite = 0, MemWrite = 1

WE3 desabilitado

(12)

Inclusão de instruções tipo “R”

funct rd, rs, rt

reg destino é rd (em lw era rt)

mesma ALU atua sobre rs e rt

resultado da ALU vai para rd

três novos mux’s selecionam o novo caminho

(13)

Inclusão da instrução beq

ALU compara (subtrai) rs e rt

e emite sinal Zero se iguais

novo PC deriva de BTA ou PC + 4, selecionado por um MUX que é controlado pelo sinal PCSrc (= Zero AND Branch)

BTA

Se rs == rt programa salta para BTA (Branch Target Address)

(14)

Ciclo único completo, com controle

4 muxs:

seleciona entre end. rt e rd seleciona entre cont. rt e rdSel. entre cont. mem e reg Sel. entre branch

e PC+4

3 ALUS:

End + offset ou funct

BTA PC+=4

(15)

Lógica de Controle : ALU e Main

A lógica de controle é dividida em dois blocos:

Decodificador da ALU – depende só do campo funct Decodificador principal – depende só do campo op

Decodificador principal controla:

 Duas habilitações de escrita  4 MUX’s para selecionar sinais

Tabela para o

(16)
(17)

Tabela da Verdade p/ Decod. Principal

A Tabela deverá ser expandida para incorporar outras instruções não contempladas neste exemplo simplificado.

(18)

Processador Multiciclos

O processador de ciclo único apresenta algumas desvantagens:

 Ciclo de clock deve ser suficientemente longo para acomodar a instrução mais lenta.

 Necessita de 3 ALU’s independentes. Como cada instrução é processada em um único ciclo, a mesma ALU não pode ser aproveitada para mais de uma função.

 Precisa de memórias separadas para dados e instruções, o que é uma exigência pouco realista para a maior parte dos computadores.

Essas desvantagens podem ser atacadas dividindo-se cada instrução em múltiplos passos mais curtos, executados em ciclos separados.

(19)

Estado do processador multiciclos

Diferentemente do processador de ciclo único, no processador multiciclos, a memória de instruções e dados pode ser unificada, pois dados e intruções serão agora acessados em ciclos separados.

(20)

Ex.: Instrução lw em 5 ciclos

0 1 2 3 4 5 1º Ciclo Leitura da Instrução 2º Ciclo Decodi-ficação da Instrução 3º Ciclo Obtenção do endereço do operando 4º Ciclo Leitura do operando na memória 5º Ciclo Escrita do operando no registrador

(21)

Exemplo: lw – leitura da instrução

No 1º Ciclo, a memória foi endereçada com PC e disponibilizou a instrução em RD. Ao final do ciclo a instrução é armazenada em Instr. Para isso o sinal de controle IRWrite deve ser = 1

0 1 2 3 4 5

Leitura

(22)

Exemplo: lw – decodificação da instr.

No 2º Ciclo, a instrução é decodificada e o endereço base lido do registrador rs, e disponibilizado em RD1. Ao final do ciclo, o endereço base é armazenado em A.

Leitura de rs

0 1 2 3 4 5

Armazenamento do endereço base

(23)

imm

Exemplo: lw – decodificação da instr.

0 1 2 3 4 5

Ainda durante o 2º Ciclo, o offset é obtido do campo imm com extensão de sinal → SignImm

(24)

Instr. lw: endereçamento do operando

No 3º Ciclo, o endereço do operando = base + offset é obtido por meio da ALU. O sinal ALUControl deve estar ativo e configurar soma. Ao final do ciclo o endereço é armazenado em ALUOut

base offset Endereço do operando 0 1 2 3 4 5 Armazenamento do endereço do operando

(25)

lw: leitura do operando na memória

4º Ciclo: leitura do operando. Endereço ALUAOut aplicado em A, sinal IorD precisa ser = 1. Valor do operando disponibilizado em RD. Ao final do ciclo, o operando é armazenado em Data.

Leitura do operando Armazenamento

(26)

lw: escrita do operando em rt

5º Ciclo: escrita do operando. Valor Data aplicado em WD3, sinal

RegWrite precisa ser = 1. Endereço do registrador rt disponibiliza-do em A3. Ao final disponibiliza-do ciclo o operandisponibiliza-do é armazenadisponibiliza-do em rt.

Endereçamento de rt

0 1 2 3 4 5

Operando é escrito em rt

(27)

lw: incremento do PC

Durante o 1º ciclo, a ALU não está sendo usada. Ela pode ser a-proveitada para incrementar o PC’ = PC + 4. PCWrite de ser 1,

ALUSrcA deve selecionar PC e ALUSrcB de selecionar a cte 4.

Ao final do 1º Ciclo PC = PC + 4

(28)

Alterações para inclusão de sw

Toda a infraestrutura criada para lw pode ser aproveitada para sw.  No 3º ciclo o operando é lido de rt e armazenado em B.

 No 4º ciclo o operando e disponibilizado em WD e, ao final do ciclo, é armazenado na memória. (Um ciclo a menos que lw).

(29)

Alterações para instruções tipo R

No 3º ciclo a ALU opera sobre conteúdo de rs e rt e disponibiliza o resultado em WD3, para escrita em rd. RegDst deve ser = 1. No 4º ciclo o resultado da operação é armazenado em rd. Os sinais MemtoReg e RegWrite devem ser = 1.

(30)

Alterações para incluir instrução beq

No 3º ciclo o conteúdo de rs e rt é disponibilizado para compara-ção pela ALU. Sinal Zero é ativado ao fim do ciclo se forem iguais. No 2º ciclo BTA é computado pela ALU (= PC+ 4 + SE(imm) x 4). Si-nal PCEn é ativado. PCSrc = 1. Ao fim do ciclo PC = BTA.

Usa apenas 3 ciclos!

(31)
(32)

Controle do processador multiciclos

O decodificador da ALU permanece igual ao da versão ciclo único, pois as operações não se alteram.

O controlador principal precisa emitir sinais diferentes a cada ciclo, em dependência da instru-ção sendo executada.

Os sinais são de dois tipos:

 Habilitação de clock  Seleção de multiplexer

Esse tipo de controle é melhor implementado por meio de uma máquina de estados finita (FSM)

(33)

FSM para processador multiciclo

A máquina de estados finita ao lado, gera os sinais de controle para as instruções analisadas até agora: lw, sw, tipo R

e beq.

Os dois primeiros esta-dos, S0:Fetch e S1:De-code, são comuns a to-das as instruções. Os demais dependem da instrução.

(34)

Revisão ISA MIPS – Linguagem de Máquina

A Arquitetura MIPS codifica todas as instruções em 32 bits. Há apenas 3 padrões de codificação de instruções:

R – para instruções com operandos tipo registradores

I – para instruções com operandos imediatos

(35)

Revisão ISA MIPS – Instruções tipo “R”

Instruções tipo “R” seguem o padrão: funct rd, rs, rt

rd = registrador de destino

rs = primeiro registrador de origem (“source register”)

rt = segundo registrador de origem (letra “t” segue a letra “s”).

funct determina o tipo de operação – add, sub, etc.

Em linguagem de máquina, a sequência de registradores é diferente – veja os exemplos abaixo:

(36)

Revisão ISA MIPS – Instruções tipo “I”

Instruções tipo “I” seguem o padrão: op rt, rs, imm

rt = registrador de destino (ou 2º de origem)

rs = registrador de origem (“source register”)

imm = constante imediata (16 bits)

op determina o tipo de operação – addi, lw, etc. veja alguns exemplos abaixo:

(37)

Revisão ISA MIPS – Instruções tipo “J”

Instruções tipo “J” seguem o padrão: op imm

Imm = especifica bits 27:2 do endereço de destino do salto (JTA)

op determina o tipo de salto incondicional – j, jal. veja o exemplo para jal (= jump and link) abaixo:

JTA é o Jump Target Address, formado pela seguinte regra:

(38)

Revisão ISA MIPS – Intr. de desvio condicional

MIPS suporta duas instruções de desvio (“branch”) condicional:

beq – “branch if equal” bne – “branch if not equal” Ambas são instruções do tipo “I” (“immediate”)

beq rs, rt, imm bne rs, rt, imm

Se rs == rt salta para endereço especificado por imm (BTA).

Se rs != rt salta para endereço especificado por imm (BTA).

O endereço de destino BTA (“Branch Target Address”) é obtido

a partir de imm e de PC + 4 da seguinte forma:

BTA = PC + 4 + SE(imm) x 4 (SE = “Sign Extended”) Esse endereçamento é chamado de PC-Relative Addressing

(39)

Revisão ISA MIPS – Instr. de desvio condicional

PC + 4 PC + 8 PC + 12

No exemplo acima, BTA = PC + 12, portanto imm = 2 BTA = PC + 4 + SE(imm) x 4 = PC + 4 + 2 x 4 = PC + 12

PC

4 16 17 2

beq $s0 $s1 imm

6 bits 5 bits 5 bits 16 bits

(40)

Revisão ISA MIPS – Desvio incondicional com jr

A instrução jr (“jump register”) não é do tipo “J”.

jr é do tipo “R” e utiliza um registrador de origem rs.

Código de máquina: 0 16 x x x 8

op rs rt rd shamt funct

(41)

Revisão ISA MIPS – Modos de Endereçamento

Register-Only Addressing: endereço de todos os operandos de ori-gem e destino contidos em registradores. Usado por todas as ins-truções tipo “R”.

Immediate Addressing: utiliza o campo imm de 16 bits, em con-junto com registradores para o endereçamento. Usado por certas instruções tipo “I” como addi ou lui.

Base Addressing: usado por instruções de acesso à memória como

lw e sw. Endereço efetivo = Conteúdo de rs + SE(imm).

PC-Relative Addressing: usado na determinação do destino de sal-to em instruções de desvio condicional (branches).

BTA (“Branch Target Address”) = PC + 4 + SE(imm) x 4

Pseudo-Direct Addressing: usado na determinação do destino de salto em instruções tip “J” (j e jal).

(42)
(43)
(44)
(45)

Revisão de digital: soma e comparação

A subtração A – B é obtida via A + (-B) = A + (B/ + 1) B/ obtido com o inversor, +1 obtido forçando carry = 1

(46)
(47)
(48)

Revisão de digital: latches

O latch tipo D é também conhecido como “latch transparente”: – Enquanto CLK = 1 a entrada D passa para a saída.

(49)
(50)

Referências

Documentos relacionados

A presente investigação teve como objetivo geral o estudo dos fatores de risco e de proteção internos e externos utilizados perante a violência social, nomeadamente o bullying

Na terceita parte foi desenvolvida a ferramenta, que partindo de ficheiros de entrada com o posicionamento dos jogadores e da bola durante um jogo, consegue calcular automaticamente

Contudo, não é possível imaginar que essas formas de pensar e agir, tanto a orientada à Sustentabilidade quanto a tradicional cartesiana, se fomentariam nos indivíduos

Apesar de o mercado acionário brasileiro ter se tornado mais importante para a economia brasileira, sobretudo entre o período de 2002 para 2005 (Tabela 3), sua repre- sentatividade

Serve o presente relatório para descrever e refletir sobre as atividades realizadas durante o Estágio Profissionalizante do 6º ano do Mestrado Integrado em

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

• Os municípios provavelmente não utilizam a análise dos dados para orientar o planejamento de suas ações;. • Há grande potencialidade na análise dos micro dados do Sisvan

Para comprovar essa hipótese, adota-se como objetivo deste trabalho a análise da Teoria do Capital Humano e suas implicações para a captura da subjetividade dos indivíduos