Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Rendimiento Programacion
Rendimiento Programacion
1 Repertorio de instrucciones
Clasificacin de las instrucciones
2 Aplicaciones del repertorio de instrucciones
3.1.2 Repertorio de instrucciones y formato de la
Ejecucin alternativa
instruccin mquina Ejecucin iterativa
Parte III. Diseo del procesador Subrutinas
Mdulo 3.1 Lenguaje mquina y ensamblador
3 Formato de la instruccin mquina
Alternativas de diseo
Ingeniera Tcnica en Informtica Nmero de operandos explcitos
Ejemplos
Facultad de Informtica - Universidad Complutense de Madrid
4 Arquitecturas CISC y RISC
Arquitecturas CISC
Arquitecturas RISC
Ejempos
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Repertorio de instrucciones Repertorio de instrucciones
Clasificacin de las instrucciones Clasificacin de las instrucciones
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Repertorio de instrucciones Repertorio de instrucciones
Clasificacin de las instrucciones Clasificacin de las instrucciones
Instrucciones lgicas y de manipulacin de bits (1/2) Instrucciones lgicas y de manipulacin de bits (2/2)
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Repertorio de instrucciones Repertorio de instrucciones
Clasificacin de las instrucciones Clasificacin de las instrucciones
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Repertorio de instrucciones Repertorio de instrucciones
Clasificacin de las instrucciones Clasificacin de las instrucciones
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Aplicaciones del repertorio de instrucciones Aplicaciones del repertorio de instrucciones
Ejecucin alternativa Ejecucin alternativa
CMP a0 , b0
i f ( a0 cc0 b0 ) then BNcc0 i f 1
bloque0 bloque0
e l s e i f ( a1 cc1 b1 ) then JMP end
i f ( a cc b ) then CMP a , b bloque1 i f 1 CMP a1 , b1
blqthen BNcc e l s e BNcc1 i f 2
e l s e i f ( an ccn bn ) then bloque1
else blqthen
bloquen JMP end
blqelse JMP end else
end else blqelse blqelse i f n CMP an , bn
end end BNccn e l s e
bloquen
JMP end
else blqelse
end
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Aplicaciones del repertorio de instrucciones Aplicaciones del repertorio de instrucciones
Ejecucin alternativa Ejecucin iterativa
t a b l a DATA e t q 0
case a of DATA e t q 1
0: bloque0
1: bloque1 DATA e t q n Segn el valor de cierta condicin, se decide repetir la ejecucin de
cierto bloque de cdigo
n: bloquen MOVE a , D1 Con evaluacin al final: repeat..until
end LEA t a b l a (D1 t a m _ d i r ) , A1 Con evaluacin al principio: while
JMP ( A1 ) Con un nmero definido de iteraciones: for i=1,n
etq0 bloque0
JMP end
etq1 bloque1
JMP end
etqn bloquen
end
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Aplicaciones del repertorio de instrucciones Aplicaciones del repertorio de instrucciones
Ejecucin iterativa Ejecucin iterativa
repeat repeat bloque w h i l e a cc b do w h i l e CMP a , b
bloque CMP a , b bloque BNcc end
u n t i l a cc b BNcc r e p e a t end bloque
JMP w h i l e
end
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Aplicaciones del repertorio de instrucciones Aplicaciones del repertorio de instrucciones
Ejecucin iterativa Subrutinas
Supongamos:
Una memoria direccionada por bytes
Un tamao palabra de 16 bits
Un tamao de direccin de 32 bits
que un integer se representa mediante palabra
f o r c := n to m do MOVE n , c
bloque f o r CMP m, c
end BGT end
bloque procedure sub ( a , b : i n t e g e r ; v a r c : i n t e g e r )
INC c begin
bloque
JMP f o r
end
end
sub ( x , y , z ) ;
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Aplicaciones del repertorio de instrucciones Aplicaciones del repertorio de instrucciones
Subrutinas Subrutinas
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Aplicaciones del repertorio de instrucciones Aplicaciones del repertorio de instrucciones
Subrutinas Subrutinas
Subrutina con variables locales (1/5) Subrutina con variables locales (2/5)
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Aplicaciones del repertorio de instrucciones Aplicaciones del repertorio de instrucciones
Subrutinas Subrutinas
Subrutina con variables locales (3/5) Subrutina con variables locales (4/5)
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Formato de la instruccin mquina Formato de la instruccin mquina
Alternativas de diseo Alternativas de diseo
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Formato de la instruccin mquina Formato de la instruccin mquina
Alternativas de diseo Alternativas de diseo
Elementos constitutivos de una instruccin mquina Alternativas de diseo del formato de instruccin
Instruccin siguiente
En ocasiones es necesario especificar cul es la siguiente instruccin a
ejecutar A la hora de disear el formato de las instruc. mquina de un
Normalmente la ejecucin del programa es secuencial, donde la repertorio, debemos decidir
direccin de la siguiente instruccin suele ser implcita: Cul ser la longitud de las instrucciones
Dir. instr. siguiente = Dir. instr. actual + Longitud Todas las instrucciones de igual longitud
instr. actual Instrucciones de distinta longitud, segn el tipo de operacin a realizar
En las instrucciones de salto s es necesario especificar la dir. de la De cuntos campos constar la misma (dependiendo del tipo de
siguiente instruccin instruccin)
Ruptura de la secuencia normal del programa Cuntos bits ocuparn cada uno de esos campos
Codificacin de cada campo
Instruccin mquina
opcode op. fuente 1 ..... op. fuente n op. destino instr. siguiente
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Formato de la instruccin mquina Formato de la instruccin mquina
Alternativas de diseo Nmero de operandos explcitos
Instrucciones con tres operandos explcitos Instrucciones con dos operandos explcitos
Se especifican los tres operandos en la instruccin mquina Dos operandos explcitos y uno implcito
Cada operando puede soportar distintos modos de direccionamiento Uno de los operandos acta como fuente y destino
Cada operando puede soportar distintos modos de direccionamiento
Formato flexible, pero ocupa mucho espacio
Es menos flexible, pero ocupa menos espacio
Ejemplo
Ejemplo
ADD A,B,C (AB+C)
ADD B,C (BB+C)
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Formato de la instruccin mquina Formato de la instruccin mquina
Nmero de operandos explcitos Nmero de operandos explcitos
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Formato de la instruccin mquina Arquitecturas CISC y RISC
Ejemplos Arquitecturas CISC
CISC
Solucin
Complex Instruction Set Computer
Computador de conjunto de instrucciones complejo
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Arquitecturas CISC Arquitecturas RISC
Las instrucciones ocupan mucho espacio en memoria Repertorio de instrucciones simple y ortogonal
Al existir un gran nmero de instrucciones y de modos de Slo se dispone de instrucciones mquina bsicas
direccionamiento se necesita mucho espacio para codificar las Repertorio ortogonal: no existen varias instrucciones distintas para
instrucciones mquina y se tarda ms tiempo en leerlas de memoria realizar la misma operacin
El tiempo de acceso a memoria para captar instrucciones (Fetch)
resulta cada vez ms crtico conforme evolucionan los computadores Modos de direccionamiento sencillos
Cada operando slo soporta unos pocos modos de direccionamiento
simples
Debido a estos problemas a principio de los 80 surge la arquitectura RISC
Formatos de instruccin uniformes
(Computador de conjunto de instrucciones reducido)
Nmero reducido de formatos de instrucciones distintos
Idea bsica: hacer rpidos y eficientes los casos ms comunes a costa de
Todas las instrucciones de longitud similar
reducir la velocidad en los casos menos comunes
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Arquitecturas RISC Arquitecturas RISC
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Arquitecturas RISC Ejempos
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
Modo usuario
Modo normal de ejecucin de programas
No tiene acceso a determinadas instrucciones privilegiadas Tipos de datos: Visto en tema anterior
No tiene acceso a determinados registros del supervisor Registros de la arquitectura: Visto en tema anterior
Modo supervisor Registro de estado: Visto en tema anterior
Modo de ejecucin del Sistema Operativo y durante el tratamiento de
Modos de direccionamiento: Visto en tema anterior
interrupciones
Tiene acceso a todas las instrucciones privilegiadas y a registros del
supervisor
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
Caractersticas
Instrucciones de 0, 1 y 2 operandos
9 formatos distintos
Longitud entre 1 y 5 palabras
Contenidos de una instruccin mquina
Palabra operacin (OW, siempre presente)
Primera palabra de la instruccin: Contiene el cdigo de operacin,
modos de direccionamiento y tamao de los operandos
Palabra de extensin (EW, de 0 a 4)
Informacin adicional de los operandos: Valor inmediato y
desplazamiento
Codificacin modos de direccionamiento
Dos campos: modo y registro (6 bits)
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
Instrucciones de 0 operandos
EA
Codificacin de los modos de direccionamiento modo Registro
Directo de reg. de datos 000 No de reg. (Dn)
Directo de reg. de direcciones 001 No de reg. (An)
Indirecto de reg. 010 No de reg. (An)
Indirecto de reg. con postincr. 011 No de reg. (An) Instrucciones de 1 operando
Indirecto de reg. con predecr. 100 No de reg. (An)
Indirecto de reg. con desplaz. 101 No de reg. (An)
Indirecto de reg. index. con deplaz. 110 No de reg. (An)
Absoluto corto 111 000
Absoluto largo 111 001
Relativo al PC con deplaz. 111 010
Relativo al PC index. con deplaz. 111 011
Inmediato 111 100
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
Directo de registro
Enteros Reales en punto flotante
Tamao Byte (8 bits) Simple precisin (32 bits)
Tamao Media palabra (16 Doble precisin (64 bits) Inmediato
bits)
Tamao Palabra (32 bits)
Indirecto con desplazamiento
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
3.1.2 Repertorio de instrucciones y formato de la instruccin mquina 3.1.2 Repertorio de instrucciones y formato de la instruccin mquina
Arquitecturas CISC y RISC Arquitecturas CISC y RISC
Ejempos Ejempos
Ejemplo: ARM
Ejemplos de instrucciones