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.
Top Related