arquitetura-mips-cap2

Embed Size (px)

Citation preview

Infra-estrutura Hardware 2010 Arquitetura de Computadores 2009

Roteiro da Aula Introduo Operaes Aritmticas Representao dos operandos Uso de registradores

Representando as instrues Mais operaes sobre dados Desvios condicionais Subrotinas MIPS Outros processadores

Modos de Endereamento MIPS Outros processadoresInfra-estrutura Hardware 2010 Arquitetura de Computadores 2009

Conceitos Bsicos de Arquitetura de ComputadoresCaptulo 2

Infra-estrutura Hardware 2010

Computador: Hardware + Software

Infra-estrutura Hardware 2010 Arquitetura de Computadores 2009

Computador: Hardware + SoftwareAplicao Compilador Sistema Operacional Windows

Software

Montador

Hardware Processor Memory I/O systemDatapath & Control Digital Design Circuit Designtransistors

Repertrio de Instrues Arquitetura

Coordenao de muitos nveis de abstraoInfra-estrutura Hardware 2010

Representao da InformaoPrograma em Linguagem de alto nvel (e.g., C) Compilador Programa em linguagem assembly (e.g.,MIPS) Montador Programa em linguagem de Mquina (MIPS) Interpretao Hardware

temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;

lw $to, lw $t1, sw $t1, sw $t0,0000 1010 1100 0101 1001 1111 0110 1000 1100 0101 1010 0000

0($2) 4($2) 0($2) 4($2)0110 1000 1111 1001 1010 0000 0101 1100 1111 1001 1000 0110 0101 1100 0000 1010 1000 0110 1001 1111

Infra-estrutura Hardware 2010

Interface entre hw e sw: Repertrio de Instrues:

software

Repertrio de Instrues

hardware

Infra-estrutura Hardware 2010

Executando um programaBusca instruo Incrementa PC Decodifica instruo Busca operando Executa instruo Armazena resultadoInfra-estrutura Hardware 2010

Escopo deste curso......Arquitetura Conjunto de registradores Tipos de Dados Acesso memria Formato e Repertrio de instrues Organizao Tecnologia de memria Interfaces Implementao das instrues interconexes

Infra-estrutura Hardware 2010

Operaes aritmticas Aritmticas add a,b,c a=b+c a = b + c + d + e? sub a,b,c a=b-cTodas as instrues aritmticas possuem 3 operandos: destino, fonte 1, fonte 2A simplicidade favorecida pela regularidade

Infra-estrutura Hardware 2010

Expresses Aritmticas f = (g + h) - (i + j) Variveis auxiliares: t0 e t1 add t0,g,h add t1,i,j sub f,t0,t1

Infra-estrutura Hardware 2010

Operandos no Hardware Para se garantir o desempenho.... Operandos em registradores Vantagens: leitura e escrita em registradores so muito mais rpidas que em memria

Quanto menor mais rpido

Infra-estrutura Hardware 2010

Operandos no Hardware Registradores $s0, $s1, .... : armazenam variveis do programa $t0, $t1, .... : armazenam variveis temporrias

f = (g + h) - (i + j)? Variveis g,h,i e j esto armazenadas nos registradores $s0, $s1, $s2 e $s3

Infra-estrutura Hardware 2010

Tipos de Dados

Conceito Tipo de Dado Bits Sinais eltricos

Conceito Tipo de Dado Bits Sinais eltricos

Conceitual Ling. Progr. Arquitetura Fsico

Infra-estrutura Hardware 2010

Tipos de Dados Escalar nmeros Inteiros Ponto-Flutuante (real)

caracteres ASCII EBCDIC

dados lgicos

Infra-estrutura Hardware 2010

Inteiros Representao binria sinal-magnitude0000000000001010+ 10

1000000000001010- 10

complemento a 10000000000001010+ 10

1111111111110101- 10

complemento a 20000000000001010+ 10Infra-estrutura Hardware 2010

111111111110110- 10

Dados lgicos Representao Uma palavra0000000000000000Verdadeiro

0000000000000001Falso

Um bit0000000000100000Falso Verdadeiro

Infra-estrutura Hardware 2010

Ponto Flutuante Representao3,14 = 0,314 101 = 3,14 100 0, 000001 = 0,10 105

=1,00 10

6

n = f 10 e

sinal

expoente

mantissa (frao)

Infra-estrutura Hardware 2010

Ponto Flutuante Padro IEEEUnderflow negativo Overflow negativo Num. negativos representveis Zero Underflow positivo Num. positivos representveis Overflow positivo

10100Item Sinal Expoente Mantissa Total

10 100

0

10 100Preciso dupla 1 11 52 64

10100

Preciso simples 1 8 23 32Infra-estrutura Hardware 2010

Tipos de Dados Escalar nmeros Inteiros Ponto-Flutuante (real)

Estruturas (Esttico) Array Record

caracteres ASCII

Listas, rvores (Dinmico)

dados lgicos

Infra-estrutura Hardware 2010

Operandos na Memria Manipulando arrays: Armazenados na memria

Instrues que permitam transferncia de informao entre memria e registradorInstrues de Transferncia de Dados load word - lwArray: endereo inicial de memria elemento a ser transferidoInfra-estrutura Hardware 2010

Operandos na Memria Arrays no MIPS: endereo inicial: registrador

deslocamento: valor na instruo

Instruo Load Word: Copia contedo de palavra (32bits) de memria para registrador. lw reg_dst, desl(reg_end_inicial)

g = h + A[8] onde g e h esto nos registradores $s1 e $s2 e end. Inicial de A est em $s3. lw $t0, 8($s3) Infra-estrutura Hardware 2010 add $s1, $s2, $t0Infra-estrutura Hardware 2009

Operandos na Memria MIPS Inteiros com 32 bits Memria endereada por byte10 11 12 13 14 15 16 17

A[0]

End (A[0]) = 10 End (A[1]) = 14A[1]

End(A[i]) = End-inicial + i x 4Infra-estrutura Hardware 2010

Operandos na Memria Escrita em Memria Instruo Store Word: Copia contedo de palavra (32bits) de registrador para memria. sw reg_alvo, desl(reg_end_inicial)

A[12] = h + A[8] endereo inicial de A em $s3 e h em $s2 lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 48($s3)Infra-estrutura Hardware 2010

Operandos na Memria Array com varivel de indexao g = h + A[i] endereo inicial de A em $s3 e g, h e i esto em $s1, $s2 e $s4 add $t1, $s4, $s4 add $t1, $t1, $t1 add $t1, $t1, $s3 lw $t0, 0($t1) add $s1, $s2, $t0

Infra-estrutura Hardware 2010

Resumo Operandos no MIPS 32 registradores $s0, $s1,... $t0, $t1,...

230 palavras de memria palavras de 32 bits endereamento por byte

Infra-estrutura Hardware 2010

Resumo Linguagem de montagem do MIPS Aritmticas add regi, regj, regk regi = regj + regk

sub regi, regj, regk regi = regj - regk

Transferncia de dados lw regi, desl(reg_base) regi = mem(reg_base+desl)

sw regi, desl(reg_base) mem(reg_base+desl) = regiInfra-estrutura Hardware 2010

Computador de Programa Armazenado Instrues e Dados possuem uma representao numrica na memriaMemory Accounting program (machine code) Editor program (machine code) C compiler (machine code) Payroll data Book text Source code in C for editor program

Processor

Infra-estrutura Hardware 2010

Representao das instrues Informao tem uma representao numrica na base 2 codificao das instrues mapeamento de nomes de registradores para nmeros $s0 a $s7 : 16 a 23 $t0 a $t7 : 8 a 15

add $t0, $s1, $s200000 10001 op 0 17 rs 6 5 10010 18 rt 5 01000 rd 8 5 00000 100000 0 funct 32 5 6Infra-estrutura Hardware 2010

Representao das instrues Instrues do MIPS Aritmticasop 6 rs 5 rt 5 rd 5 shamt 5 funct 6

Transferncia de informaoop 6 rs 5 rt 5 deslocamento 16

Infra-estrutura Hardware 2010

Linguagem de Montagem vs. Linguagem de Mquina A[300] = h + A[300] lw $t0, 1200($t1) add $t0, $s2, $t0 sw $t0, 1200($t1)op 35 0 43 op 100011 000000 101011 rs 9 18 9 rt 8 8 8 rd 8 Shamt/end 1200 0 1200 funct 32

rs rt rd Shamt/end funct 01001 01000 0000 0100 1011 0000 10010 01000 01000 00000 100000 01001Arquitetura de Hardware 2010 0100 1011 0000 01000 0000 Infra-estrutura Computadores2009

Exemplo: uma CPU simples...Instruo nop lw reg, end(reg_base) sw reg, end(reg_base) add regi, regj,regk sub regi, regj, regk Descrio No operation reg. = mem (reg_base+end) Mem(reg_base+end) = reg Regi.