PDF de programación - Clase 3 - Arquitectura de Computadoras II

Imágen de pdf Clase 3 - Arquitectura de Computadoras II

Clase 3 - Arquitectura de Computadoras IIgráfica de visualizaciones

Publicado el 8 de Mayo del 2018
388 visualizaciones desde el 8 de Mayo del 2018
404,6 KB
41 paginas
Creado hace 13a (11/08/2010)
Arquitectura de Computadores II

Clase #3

Facultad de Ingeniería
Universidad de la República

Instituto de Computación
Curso 2010

Veremos

 Registros
 Repertorio de instrucciones
 Modos de direccionamiento

 El stack

 Formatos de datos
 Control de la CPU

Estructura de la CPU

 Recordemos, la CPU debe:

 Cargar instrucciones de memoria (Fetch)

 Interpretar instrucciones

 Procesar y transferir datos

 Se necesita almacenamiento temporal,

los registros

La CPU y el bus del sistema

Estructura interna de la CPU

Registros

 La cantidad, tamaño y función de los

registros varía según el diseño del
procesador

 Es una de las decisiones más importantes

del diseño

 Los registros constituyen el nivel superior

de la jerarquía de memoria (próximas
clases…)

Tipos de Registros

 Visibles al programador

 Propósito general

• Cuanto más 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.

 Códigos de condición

• Se acceden implícitamente mediante instrucciones de salto

condicional

• En general forman parte de la palabra de estado

 Control y estado (PC, IR, MBR y MAR)

 Algunos son visibles al programador y otros no
 Ej. PC, IR, MBR, MAR, palabra de estado

Palabra de Estado (Program
Status Word)

 Conjunto de bits de significado

individual

 Códigos de Condición

 Ej. el resultado de la última

operación fue cero (Z)

 Lectura implícita por parte del

programador
 Ej. Jump if zero

 Usualmente NO se pueden

setear explícitamente

 Otros bits

 Interrupt enable/disable
 Supervisor/usuario

Overflow Flag
Interrupt Flag

Trap Flag
Sign Flag
Zero Flag

Auxiliary Flag

Parity Flag
Carry Flag

O I T S Z A P C

Ejemplos de Organización de
Registros

Repertorio de instrucciones (1/2)

 Es el conjunto de instrucciones distintas que

puede ejecutar la CPU

 Elementos de una instrucción:

 Código de operación
 Referencia a operandos origen
 Referencia a operandos destino
 Referencia a la siguiente instrucción

 Operandos
 Registros
 Memoria
 Entrada/Salida

Repertorio de instrucciones (2/2)

 Formato

 Tipos

 Procesamiento
 Almacenamiento
 Transferencia de datos
 Control

Modos de direccionamiento (1/8)

 Tipos

 Inmediato
 Directo
 Indirecto
 Registro
 Indirecto con registro
 Con desplazamiento
 Pila

Modos de direccionamiento (2/8)

 Inmediato

 El operando es parte de la instrucción
 Ejemplo add 5 (AC <- AC + 5)

Instruction

Opcode

Operand

Modos de direccionamiento (3/8)

 Directo

 El campo de dirección contiene la dirección

de memoria

 Ejemplo: add A (AC<-AC+memoria(A))

Modos de direccionamiento (4/8)

 Indirecto

 La dirección de memoria del campo

dirección contiene la dirección de
memoria del operando

 Ejemplo: add (a)

(AC<-AC+memoria(memoria(A)))

Modos de direccionamiento (5/8)

 Registro

 El operando está contenido en el registro

indicado en dirección

 Ejemplo: inc R (R<-R+1)

Modos de direccionamiento (6/8)

 Indirecto con registro

 El operando está en la dirección contenida en el

registro indicado en dirección

 Ejemplo: load (AC) (AC<-memoria(AC))

Modos de direccionamiento (7/8)
 Con Desplazamiento

 Referencia a registro puede ser implícita o explícita
 Usos

• Relativo (jmp etiqueta, PC <- PC + etiqueta)
• Con registro base (load (R+5), (AC<-memoria(R+5))
• Indexado (mov R0, TABLA[R1])

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

Uso del Stack (1/2)

Uso del Stack (2/2)

Tipos de Datos: ejemplo

Orden de los Bytes:
Little-Endian y Big-Endian

 Indican de qué forma se almacena en

memoria la secuencia de bytes que
representan un escalar multi-byte

Big
Endian

Dir

 Little endian indica que el byte menos
significativo de la secuencia de bytes
será almacenado en la dirección de
memoria menor

 En la imagen se muestra cómo una

secuencia de bytes, byten… byte0, se
guarda en memoria en cada caso.
byte0 es el menos significativo y byten
es el menos significativo

byte n

byte n-1

byte n-2

0

1

2



Little
Endian

byte 0

byte 1

byte 2

n

byte 0

byte n

Ejemplo (1/3)

 Almacenar el hexa 12345678

 Address
 184
 185
 186
 187

Value (1)
12
34
56
78

Value(2)
78
56
34
12

 Como se lee?

Ejemplo (2/3)

Example of C Data Structure

Ejemplo (3/3):
otra visión del mapa
de memoria

Endian…no hay estándar?!

 Pentium (80x86), VAX: little-endian
 IBM 370, Moterola 680x0 (Mac original),

RISC: big-endian

 Internet: big-endian

 Operaciones de sockets proveen funciones de

conversión
• htoi and itoh (Host to Internet & Internet to Host)

Control dentro de la CPU

 Sabemos que

 Los programas se ejecutan como una secuencia de

instrucciones

 Cada instrucción se compone de una serie de pasos que

constituyen el Ciclo de Instrucción

 Cada uno de estos pasos, a su vez, se desagrega

en un serie de pequeños pasos denominados
microoperaciones

 La unidad de control es responsable de generar
esta secuencia de microoperaciones en el orden
temporal adecuado

 La realización de estas microoperaciones genera
flujo de datos entre diferentes componentes de
la CPU

Arquitectura de Computadores II

Ejecución de un programa

Arquitectura de Computadores II

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 leídos

 Program Counter (PC)

 Contiene la dirección de la próxima instrucción

 Instruccion Registry (IR)

 Contiene la última instrucción cargada

Arquitectura de Computadores II

Ciclo de Instrucción

 El ciclo de instrucción

está compuesto por
una serie de unidades
más pequeñas:
 Ciclo de fetch.
 Ciclo indirecto.
 Ciclo de ejecución.
 Ciclo de interrupción.

Arquitectura de Computadores II

Ciclo de Fetch

 Obtiene una instrucción de memoria.
 Microoperaciones:

t1: MAR <-- PC
t2: MBR <-- memory

PC <-- PC+1

t3: IR <-- MBR

o también

t1: MAR <-- PC
t2: MBR <-- memory
t3: PC <-- PC+1

IR <-- MBR

Arquitectura de Computadores II

Ciclo Indirecto (i)

 Direccionamiento directo: un acceso a memoria por

operando

 Direccionamiento Indirecto requiere más accesos a

memoria

 Se puede tomar como un subciclo de instrucción

adicional

 Microoperaciones:

t1: MAR <-- IR(direccion)
t2: MBR <-- memory
t3: MAR <-- MBR
t4: MBR <-- memory

Arquitectura de Computadores II

Ciclo Indirecto (ii)

Arquitectura de Computadores II

Ciclo de Instrucción con
indirección

Arquitectura de Computadores II

Ciclo de Interrupción (i)

 Luego del ciclo de ejecución se verifica la

ocurrencia de una interrupción y si las
interrupciones están habilitadas se ejecuta el
ciclo de interrupción.

 Este ciclo varía mucho entre las distintas

arquitecturas.

 Microoperaciones:
t1: MBR <-- PC
t2: MAR <-- dirección de respaldo PC

PC <-- dirección del manejador

t3: WRITE

Arquitectura de Computadores II

Ciclo de Interrupción (ii)

 PC actual se salva para permitir
retomar la ejecución después de
la interrupción

 Contenido del PC se copia al

MBR.

 Una posición de memoria

especial (Ej. stack pointer) se
carga al MAR

 MBR se escribe en memoria
 PC se carga con la dirección de la

rutina de atención a la
interrupción

 Fetch de la próxima instrucción

(primera de la rutina de atención
de la interrupción).

Arquitectura de Computadores II

Ciclo de Ejecución (i)

 Puede ser muy variable
 Depende de la instrucción a ejecutar
 Puede incluir

 Lectura/escritura de memoria
 Entrada/Salida
 Transferencia entre registros
 Operaciones de la ALU

Arquitectura de Computadores II

Ciclo de Ejecución (ii)

 Ejemplo 1

 Instrucción: add R1, X
 Microinstrucciones

t1: MAR <-- IR(direccion)
t2: READ
t3: R1 <-- R1 + MBR

 Ejemplo 2

 Instrucción: ISZ X (Incrementar y saltar si es cero)
 Microinstrucciones

t1: MAR <-- IR(direccion)
t2: READ
t3: MBR <-- MBR + 1
t4: WRITE

Si MBR = 0 entonces PC <-- PC + 1

Arquitectura de Computadores II

Preguntas

Arquitectura de Computadores II
  • Links de descarga
http://lwp-l.com/pdf10963

Comentarios de: Clase 3 - Arquitectura de Computadoras II (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad