Académique Documents
Professionnel Documents
Culture Documents
CMP237
1. Processadores RISC
dcada de 60 introduo de famlias de computadores (ex: IBM 360) distino entre arquitetura e organizao uso de microprogramao arquitetura x organizao possvel compromisso entre custo e desempenho no definido unicamente pela arquitetura impacto de uma instruo no decisivo na implementao microprogramao memria principal: ncleos, grande tempo de acesso memria de controle: semicondutora, barata grandes microprogramas no acrescentavam custo maior desempenho: mover software para microprogramas
CMP237
Processadores CISC
instrues mais complexas
facilitar tarefa dos compiladores aumentar desempenho
Digital VAX 11/780 303 instrues 16 modos de endereamento Intel 386 111 instrues 8 modos de endereamento Motorola 68020 109 instrues 18 modos de endereamento instrues com comprimento e formato variveis
CMP237
Mudanas no contexto
a partir da metade da dcada de 70 memria principal: semicondutores no lugar de ncleos memria principal no era mais 10 vezes mais lenta que memria de controle introduo de memrias cache baratas e rpidas acessos memria cache to rpidos quanto memria de controle efeitos colaterais de conjuntos complexos de instrues tempo de projeto mais longo, mais erros de projeto dificuldade no desenvolvimento de microcdigos com at 400 Kbytes
CMP237
Mudanas no contexto
compiladores utilizando sub-conjuntos da arquitetura difcil utilizao de instrues complexas otimizao de cdigo tornava possvel utilizao de instrues mais simples maioria das instrues do conjunto eram pouco utilizadas nas aplicaes mais comuns advento de circuitos VLSI e problemas no projeto de processadores em um chip nico
CMP237
Uso de instrues
exemplo: uso mdio de instrues do 8086 em 3 aplicaes assembler MASM, compilador Turbo C, Lotus 1-2-3 Transferncia de dados MOV 29 PUSH / POP 12 LEA 3 Aritmticas / lgicas CMP SAL / SHR / RCR INC / DEC ADD OR / XOR 2 4 4 10
CMP237
7 5 5 3 3
Fundamentos RISC
idia lanada no final da dcada de 70 por pesquisadores da Universidade de Berkeley desenvolver conjunto de instrues pequeno e bem simples mquina com arquitetura bem simples pode ter organizao mais eficiente e maior velocidade de operao perspectiva global de aumento de desempenho processador num chip nico
melhor aproveitamento de recursos escassos ganho na lgica de controle aproveitado no bloco operacional
maior nmero de instrues nos programas compensado por instrues mais rpidas instrues mais curtas transferir para o software ( compilador ) o esforo de otimizao do tempo de execuo
CMP237
CMP237
Exemplo
V1 = V2 + V3 + V4 + V5 V1 a V5 so variveis em memria Processador CISC supondo instrues com 3 endereos, ocupando 3 palavras V1 = V2 + V3 V1 = V1 + V4 V1 = V1 + V5 3 x 3 = 9 palavras 3 x 6 = 18 acessos memria LOAD LOAD ADD LOAD ADD LOAD ADD STORE R2, V2 R3, V3 R1, R2, R3 R4, V4 R1, R1, R4 R5, V5 R1, R1, R5 V1, R1 Processador RISC instrues ocupam 1 palavra
Medidas concretas
fase de execuo da instruo num nico ciclo de relgio instrues to rpidas quanto micro-instrues todas as instrues do mesmo tamanho e com o mesmo formato (ou com poucas variaes de formato) simplificar implementao do controle dados imediatos pequenos e deslocamentos pequenos usar modos de endereamento bem simples e poucos tipos de dados acesso memria principal apenas atravs de instrues LOAD e STORE demais instrues fazem operaes apenas entre registradores simplificar implementao do controle ( pipeline ) tornar operaes aritmticas e lgicas mais rpidas
CMP237
2. MIPS - Registradores
32 registradores de propsitos gerais de 32 bits
$0, $1, , $31 operaes inteiras endereamento
$0 tem sempre valor 0 $31 guarda endereo de retorno de sub-rotina 32 registradores de ponto flutuante de 32 bits (preciso simples) $f0, $f1, , $f31
podem ser usados em pares para preciso dupla
CMP237
CMP237
modo registrador
para instrues aritmticas e lgicas: dado est em registrador para instrues de desvio incondicional: endereo est em registrador
modo relativo ao PC
para instrues de branch condicional endereo a soma do PC com deslocamento contido na instruo deslocamento dado em palavras e precisa ser multiplicado por 4
CMP237
Modos de endereamento
modo imediato
para instrues aritmticas e lgicas dado imediato de 16 bits contido na prpria instruo dado estendido para 32 bits extenso com sinal nas instrues aritmticas extenso sem sinal nas instrues lgicas
CMP237
Modos de endereamento
modo absoluto
para instrues de desvio incondicional instruo tem campo com endereo de palavra com 26 bits endereo de byte obtido com dois bits menos significativos iguais a 0 4 bits mais significativos obtidos do PC s permite desvios dentro de uma rea de 256 Mbytes
PC
00 4 bits 26 bits
CMP237
instrues de tipo I
loads, stores operaes aritmticas e lgicas com operando imediato desvios condicionais (branches) desvios incondicionais para endereo em registrador
6 5 5 16
op-code
rs
rt
CMP237
op-code
rs
rt
rd
shamt
funct
instrues de tipo J
desvios com endereamento absoluto chamada de sub-rotina
6 26
op-code
endereo
CMP237
lbu, lhu load byte, halfword sem extenso de sinal sb, sh, sw store byte, halfword, word
6 5 5 16
op-code rs (base)
rt
deslocamento
CMP237
add, sub, and, or, nor, xor comparao slt compara dois registradores e coloca valor 1 ou 0 em registrador destino
6 5 5 5 5 6
op-code
rs
rt
rd
funct
op-code
rs
rt
operando imediato
CMP237
$5, $0, 10
5 5 16
op-code
add
6
rs
rt
operando imediato
op-code
rs
rt
rd
funct
CMP237
op-code
rs
rt
rd
shamt
funct
CMP237
op-code
rs
rt
funct
op-code
instruo jr
endereo
tipo I: endereo destino contido em registrador tambm serve para retornar de sub-rotina
6 5 15 6
op-code
rs
8
CMP237
op-code
endereo
op-code
rs
rd
funct
CMP237
op-code
rs
rt
offset
CMP237
CMP237