Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matı́as López
I Tamaño de memoria
I Dirección de memoria
I Unidad direccionable
I Instrucción
I Codificación de una instrucción
¿Qué tenı́a esto que ver?
30
1. direcciones = 1 2B/dir
GB
= 12×2 B 1
B/dir = 2 × 2
30
dir
1 30
bits por dirección = log2 (2 × 2 ) = 31 bits
2. direcciones = 2 2B/dir
GB
= 230 dir
bits por dirección = log2 (230 ) = 30 bits
3. direcciones = 416B/dir
GB
= 22 × 230 dir
bits por dirección = log2 (22 × 230 ) = 32 bits
Nuestro primer diseño de formato de instrucción
212 × 1B = 4KB
212 × 2B = 8KB
212 × 4B = 16KB
instrucción 1 → 00
instrucción 2 → 01
Ahora con varios... (solución) II
En total: dos instrucciones de este tipo.
Tipo 2 instrucciones con un registro y una dirección de memoria.
En este caso, necesitamos direccionar un registro y una
posición de memoria en cada instrucción; luego, quedan
disponibles 16 − 4 − 7 = 5 bits para codificar instrucciones.
5 bits (codop) 4 bits (reg) 7 bits (dir)
Codificamos los códigos de operación como se muestra a
continuación (recordando los prefijos de dos bits ya utilizados)
instrucción 1 → 10 000
..
.
instrucción 8 → 10 111
En total: ocho instrucciones de este tipo.
Tipo 3 instrucciones con dos registros.
Para este tipo de instrucciones necesitamos hacer referencia a
dos registros en cada instrucción; nos quedan 16 − 4 − 4 = 8
bits para codificar instrucciones.
8 bits (codop) 4 bits (reg) 4 bits (reg)
Ahora con varios... (solución) III
Codificamos los códigos de operación de la siguiente manera
(cuidando respetar que no haya superposición con los códigos
de las otras instrucciones)
instrucción 1 → 11 000000
..
.
instrucción 32 → 11 011111
En total hay treinta y dos instrucciones de este tipo.
Tipo 4 instrucciones sin operandos.
Como este tipo de instrucciones no tiene operandos podemos
usar hasta dieciséis bits para el código de operación.
16 bits (codop)
Sin embargo, no necesitamos usar todas las combinaciones
posibles, alcanza con codificar las dieciséis operaciones pedidas.
instrucción 1 → 11 100000 0000 0000
..
.
instrucción 16 → 11 100000 0000 1111
En total, dieciséis instrucciones de este tipo.
Un caso real...MSP430
Tipo 3 Saltos.
Tenemos que incluir un desplazamiento de diez bits. Por
lo cual quedan 16 − 10 = 6 bits para usar como códigos
de operación.
6 bits (codop) 10 bits (desplazamiento)
Codificamos los ocho saltos:
110001 → JEQ/JZ
..
.
111001 → JMP
2. El salto JLEU se toma si se cumple la condición C or Z. Por otra parte,
contamos con las instrucciones JZ y JC. Entonces, usando etiquetas,
podemos hacer una macro del salto usando estas instrucciones. La
instrucción “JLEU Etiqueta” se simula como:
JZ Etiqueta
JC Etiqueta
Lo que viene, lo que viene...