Publicado el 17 de Junio del 2019
749 visualizaciones desde el 17 de Junio del 2019
557,2 KB
54 paginas
Creado hace 9a (28/01/2015)
La arquitectura
CISCA
Miquel Albert Orenga
Gerard Enrique Manonellas
PID_00218266
CC-BY-SA • PID_00218266
La arquitectura CISCA
Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de
Reconocimiento-Compartir igual (BY-SA) v.3.0 España de Creative Commons. Se puede modificar la obra, reproducirla, distribuirla
o comunicarla públicamente siempre que se cite el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), y
siempre que la obra derivada quede sujeta a la misma licencia que el material original. La licencia completa se puede consultar en:
http://creativecommons.org/licenses/by-sa/3.0/es/legalcode.ca
CC-BY-SA • PID_00218266
Índice
La arquitectura CISCA
1.1.
Introducción...............................................................................................
Objetivos.......................................................................................................
1. Organización del computador........................................................
Procesador ....................................................................................
1.1.1. Organización de los registros ........................................
1.1.2. Unidad aritmética y lógica ............................................
1.1.3. Unidad de control .........................................................
1.2. Memoria principal .......................................................................
1.2.1. Memoria para la pila .....................................................
1.2.2. Memoria para la tabla de vectores de interrupción .......
1.3. Unidad de entrada/salida (E/S) ...................................................
1.4.
Sistema de interconexión (bus) ..................................................
2.
Juego de instrucciones......................................................................
2.1. Operandos ...................................................................................
2.2. Modos de direccionamiento .......................................................
Instrucciones ...............................................................................
2.3.
Instrucciones de transferencia de datos ........................
2.3.1.
2.3.2.
Instrucciones aritméticas ...............................................
Instrucciones lógicas ......................................................
2.3.3.
Instrucciones de ruptura de secuencia ..........................
2.3.4.
2.3.5.
Instrucciones de entrada/salida .....................................
2.3.6.
Instrucciones especiales .................................................
Estructuras de control .................................................................
Estructura if ...................................................................
2.4.1.
2.4.2.
Estructura if-else ............................................................
Estructura while .............................................................
2.4.3.
Estructura do-while ........................................................
2.4.4.
2.4.5.
Estructura for .................................................................
Estructura switch-case ....................................................
2.4.6.
2.4.
3. Formato y codificación de las instrucciones..............................
3.1. Codificación del código de operación. Byte B0 ..........................
3.2. Codificación de los operandos. Bytes B1-B10 .............................
3.3.
Ejemplos de codificación ............................................................
4. Ejecución de las instrucciones........................................................
Lectura de la instrucción ............................................................
Lectura de los operandos fuente .................................................
4.1.
4.2.
5
6
7
8
8
10
10
12
12
13
14
14
15
15
15
18
18
19
21
22
24
24
24
24
25
26
27
27
28
30
31
32
37
41
41
42
CC-BY-SA • PID_00218266
La arquitectura CISCA
4.3.
Ejecución de la instrucción y almacenamiento del operando
destino .........................................................................................
4.3.1. Operaciones de transferencia ........................................
4.3.2. Operaciones aritméticas y lógicas .................................
4.3.3. Operaciones de ruptura de secuencia ............................
4.3.4. Operaciones de Entrada/Salida ......................................
4.3.5. Operaciones especiales ...................................................
4.4. Comprobación de interrupciones ...............................................
Ejemplos de secuencias de microoperaciones .............................
4.5.
4.6.
Ejemplo de señales de control y temporización .........................
43
44
45
46
47
48
48
48
50
CC-BY-SA • PID_00218266
Introducción
5
La arquitectura CISCA
Dada la gran variedad de procesadores comerciales y dada la creciente com-
plejidad de estos, hemos optado por definir una máquina de propósito general
que denominaremos ComplexInstructionSetComputerArchitecture (CIS-
CA) y que utilizaremos en los ejemplos que nos ayudarán a entender mejor
los conceptos que trataremos en esta asignatura y en los ejercicios que iremos
proponiendo.
La arquitectura CISCA se ha definido siguiendo un modelo sencillo de máqui-
na, del que solo definiremos los elementos más importantes; así será más fá-
cil entender las referencias a los elementos del computador y otros conceptos
referentes a su funcionamiento.
Se ha definido una arquitectura para trabajar los conceptos teóricos generales
lo más parecida posible a la arquitectura x86-64 para facilitar el paso a la pro-
gramación sobre esta arquitectura real. Esta será la arquitectura sobre la que
se desarrollarán las prácticas.
CC-BY-SA • PID_00218266
Objetivos
6
La arquitectura CISCA
Con los materiales didácticos de este módulo se pretende que los estudiantes
alcancen los objetivos siguientes:
1. Conocer los elementos básicos de un computador sencillo y comprender
su funcionamiento.
2. Conocer el juego de instrucciones de una arquitectura concreta con unas
especificaciones propias.
3. Aprender los conceptos básicos de programación a partir de una arquitec-
tura sencilla pero próxima a una arquitectura real.
4. Ser capaz de convertir el código ensamblador que genera el programador
en código máquina que pueda interpretar el computador.
5. Entender qué hace cada una de las instrucciones de un juego de instruc-
ciones en ensamblador y ver qué efectos tiene sobre los diferentes elemen-
tos del computador.
6. Entender el funcionamiento de una unidad de control microprogramada
para una arquitectura concreta.
CC-BY-SA • PID_00218266
7
La arquitectura CISCA
1. Organización del computador
El computador se organiza en unidades funcionales que trabajan independien-
temente y que están interconectadas por líneas, habitualmente denominadas
buses, lo que nos permite describir el comportamiento funcional del compu-
tador, que da lugar a las especificaciones de la arquitectura del computador.
Tal como se ve en la figura siguiente, las unidades funcionales principales de
un computador son:
•
Registros
Procesador (CPU)
–
– Unidad aritmética y lógica (ALU)
– Unidad de control (UC)
• Unidad de memoria principal (Mp)
• Unidad de entrada/salida (E/S)
•
Sistema de interconexión (Bus)
CC-BY-SA • PID_00218266
8
La arquitectura CISCA
1.1. Procesador
1.1.1. Organización de los registros
Todos los registros son de 32 bits. Los bits de cada registro se numeran del 31
(bit de más peso) al 0 (bit de menos peso). Los registros del procesador (CPU)
son de cuatro tipos:
1)Registrosdepropósitogeneral. Hay 16 registros de propósito general, de
R0 a R15. El registro R15 es especial. Este registro se utiliza de manera implícita
en las instrucciones PUSH, POP, CALL y RET, pero también se puede utilizar
como registro de propósito general.
Registro R15
El registro R15 se puede deno-
minar también StackPointer
(SP).
CC-BY-SA • PID_00218266
9
La arquitectura CISCA
Registros visibles al
programador
Los registros de propósito ge-
neral son los únicos registros
visibles al programador, el res-
to de los registros que se expli-
can a continuación no son visi-
bles.
Bits de resultado activos
Consideramos que los bits de
resultado son activos cuando
valen 1, e inactivos cuando va-
len 0.
2)Registrosdeinstrucción. Los dos registros principales relacionados con el
acceso a las instrucciones son el contador de programa (PC) y el registro de
instrucción (IR).
El registro PC tendrá un circuito autoincrementador. Dentro del ciclo de eje-
cución de la instrucción, en la fase de lectura de la instrucción, el PC quedará
incrementado en tantas unidades como bytes tiene la instrucción. El valor del
PC a partir de este momento, y durante el resto de las fases de la ejecución de
la instrucción, se denota como PCup (PC updated) y apunta a la dirección de
la instrucción siguiente en la secuencia.
3)Registrosdeaccesoamemoria. Hay dos registros necesarios para cualquier
operación de lectura o escritura en memoria: el registro de datos de la memoria
(MBR) y el registro de direcciones de la memoria (MAR).
4)Registrosdeestadoydecontrol. Los bits del registro de estado son mo-
dificados por el procesador como resultado de la ejecución de instrucciones
aritméticas o lógicas. Estos bits son parcialmente visibles al programador me-
diante las instrucciones de salto condicional.
El registro de estado incluye los bits de resultado de cero, transporte, desbor-
damiento y signo.
Bitsderesultado
• Bitdecero(Z): se activa si el resultado obtenido es cero.
• Bitdetransporte(C): también llamado carry en la suma y borrow en la
resta.
Se activa si en el último bit que operamos en una operación aritmética se
produce transporte. Se activa si al final de la operación nos llevamos una
según
Comentarios de: La arquitectura CISCA (0)
No hay comentarios