Professional Documents
Culture Documents
Clase #3
Facultad de Ingeniera
Universidad de la Repblica
Instituto de Computacin
Curso 2010
Veremos
Registros
Repertorio de instrucciones
Modos de direccionamiento
El stack
Formatos de datos
Control de la CPU
1
Estructura de la CPU
Recordemos, la CPU debe:
Interpretar instrucciones
2
Estructura interna de la CPU
Registros
La cantidad, tamao y funcin de los
registros vara segn el diseo del
procesador
Es una de las decisiones ms importantes
del diseo
Los registros constituyen el nivel superior
de la jerarqua de memoria (prximas
clases)
3
Tipos de Registros
Visibles al programador
Propsito general
Cuanto ms generales, mayor flexibilidad para el usuario
Frecuentemente existen restricciones. Ej., la suma se aplica
siempre sobre el registro AC.
Datos
operandos de ALU
Direcciones
segmento, puntero de stack, etc.
Cdigos de condicin
Se acceden implcitamente mediante instrucciones de salto
condicional
En general forman parte de la palabra de estado
4
Ejemplos de Organizacin de
Registros
5
Repertorio de instrucciones (2/2)
Formato
Tipos
Procesamiento
Almacenamiento
Transferencia de datos
Control
Tipos
Inmediato
Directo
Indirecto
Registro
Indirecto con registro
Con desplazamiento
Pila
6
Modos de direccionamiento (2/8)
Inmediato
El operando es parte de la instruccin
Ejemplo add 5 (AC <- AC + 5)
Instruction
Opcode Operand
Directo
El campo de direccin contiene la direccin
de memoria
Ejemplo: add A (AC<-AC+memoria(A))
7
Modos de direccionamiento (4/8)
Indirecto
La direccin de memoria del campo
direccin contiene la direccin de
memoria del operando
Ejemplo: add (a)
(AC<-AC+memoria(memoria(A)))
Registro
El operando est contenido en el registro
indicado en direccin
Ejemplo: inc R (R<-R+1)
8
Modos de direccionamiento (6/8)
9
Modos de direccionamiento (8/8)
Pila
En este caso se trabaja con operandos
relativos al tope del stack
Ejemplo: add
pop(tmp1)
pop(tmp2)
tmp1<-- tmp1 + tmp2
push (tmp1)
Llamadas anidadas
10
Uso del Stack (1/2)
11
Tipos de Datos: ejemplo
0 byte n byte 0
Little endian indica que el byte menos
significativo de la secuencia de bytes
ser almacenado en la direccin de 1 byte n-1 byte 1
memoria menor
2 byte n-2 byte 2
En la imagen se muestra cmo una
secuencia de bytes, byten byte0, se
guarda en memoria en cada caso.
byte0 es el menos significativo y byten
n byte 0 byte n
es el menos significativo
12
Ejemplo (1/3)
Como se lee?
Ejemplo (2/3)
Example of C Data Structure
13
Ejemplo (3/3):
otra visin del mapa
de memoria
Internet: big-endian
Operaciones de sockets proveen funciones de
conversin
htoi and itoh (Host to Internet & Internet to Host)
14
Control dentro de la CPU
Sabemos que
Los programas se ejecutan como una secuencia de
instrucciones
Cada instruccin se compone de una serie de pasos que
constituyen el Ciclo de Instruccin
Cada uno de estos pasos, a su vez, se desagrega
en un serie de pequeos pasos denominados
microoperaciones
La unidad de control es responsable de generar
esta secuencia de microoperaciones en el orden
temporal adecuado
La realizacin de estas microoperaciones genera
flujo de datos entre diferentes componentes de
la CPU
Arquitectura de Computadores II
Ejecucin de un programa
Arquitectura de Computadores II
15
Registros
Memory Address Register (MAR)
Conectado al bus de direcciones
Especifica direcciones para operaciones de lectura o
escritura
Memory Buffer Registry (MBR)
Conectado al bus de datos
Contiene datos a escribir o ledos
Program Counter (PC)
Contiene la direccin de la prxima instruccin
Instruccion Registry (IR)
Contiene la ltima instruccin cargada
Arquitectura de Computadores II
Ciclo de Instruccin
El ciclo de instruccin
est compuesto por
una serie de unidades
ms pequeas:
Ciclo de fetch.
Ciclo indirecto.
Ciclo de ejecucin.
Ciclo de interrupcin.
Arquitectura de Computadores II
16
Ciclo de Fetch
Obtiene una instruccin de memoria.
Microoperaciones:
t1: MAR <-- PC
t2: MBR <-- memory
PC <-- PC+1
t3: IR <-- MBR
o tambin
t1: MAR <-- PC
t2: MBR <-- memory
t3: PC <-- PC+1
IR <-- MBR
Arquitectura de Computadores II
Microoperaciones:
t1: MAR <-- IR(direccion)
t2: MBR <-- memory
t3: MAR <-- MBR
t4: MBR <-- memory
Arquitectura de Computadores II
17
Ciclo Indirecto (ii)
Arquitectura de Computadores II
Arquitectura de Computadores II
18
Ciclo de Interrupcin (i)
Luego del ciclo de ejecucin se verifica la
ocurrencia de una interrupcin y si las
interrupciones estn habilitadas se ejecuta el
ciclo de interrupcin.
Este ciclo vara mucho entre las distintas
arquitecturas.
Microoperaciones:
t1: MBR <-- PC
t2: MAR <-- direccin de respaldo PC
PC <-- direccin del manejador
t3: WRITE
Arquitectura de Computadores II
19
Ciclo de Ejecucin (i)
Puede ser muy variable
Depende de la instruccin a ejecutar
Puede incluir
Lectura/escritura de memoria
Entrada/Salida
Transferencia entre registros
Operaciones de la ALU
Arquitectura de Computadores II
Arquitectura de Computadores II
20
Preguntas
Arquitectura de Computadores II
21