Sunteți pe pagina 1din 30

Arquitectura de Computadoras I 2013

ARQUITECTURA DE COMPUTADORES I

UNIDAD CENTRAL DE PROCESAMIENTO (CPU).

El microprocesador (o simplemente procesador) es el circuito integrado central y ms complejo de


un sistema informtico; a modo de ilustracin, se le suele asociar por analoga como el cerebro
de un computador. Es un circuito integrado constituido por millones de componentes
electrnicos. Constituye la unidad central de procesamiento (CPU) de un PC catalogado como
microcomputador.
Es el encargado de ejecutar los programas; desde el sistema operativo hasta las aplicaciones de
usuario; slo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones
aritmticas y lgicas simples, tales como sumar, restar, multiplicar, dividir, las lgicas binarias y
accesos a memoria.
Esta unidad central de procesamiento est constituida, esencialmente, por registros, una unidad
de control, una unidad aritmtico lgica (ALU) y una unidad de clculo en coma flotante
(conocida antiguamente como co-procesador matemtico).
El microprocesador est conectado, generalmente, mediante un zcalo especfico a la placa base de
la computadora. Normalmente, para su correcto y estable funcionamiento, se le adosa un sistema
de refrigeracin, que consta de un disipador de calor fabricado en algn material de alta
conductividad trmica, como cobre o aluminio, y de uno o ms ventiladores que fuerzan la
expulsin del calor absorbido por el disipador; entre ste ltimo y la cpsula del microprocesador
suele colocarse pasta trmica para mejorar la conductividad trmica. Existen otros mtodos ms
eficaces, como la refrigeracin lquida o el uso de clulas peltier para refrigeracin extrema,
aunque estas tcnicas se utilizan casi exclusivamente para aplicaciones especiales, tales como en
las prcticas de overclocking.

ORGANIZACIN.
Cmo se interconecta un sistema de cmputo?
Un sistema de cmputo est constituido por 3 subsistemas:
CPU,
Memoria,
E / S.
Los componentes deben poder comunicarse entre s, por medio de un camino de comunicacin
que pueda conectar dos o ms dispositivos. Existen conexiones independientes entre los distintos
dispositivos o conexiones a travs de un medio compartido.

INTERCONEXIN DE SUBSISTEMAS BUSES.

Es un camino de comunicacin que conecta dos o ms dispositivos. Usualmente broadcast. A


menudo se observa agrupados, un nmero de canales en un bus. Ejemplo: Bus de 32 bits son 32
canales separados de un solo bit cada uno.
Las lneas de energa pueden no mostrarse.

1 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

La siguiente grfica muestra la interconexin a travs de bus:

Bus de direccin.
Si el bus es compartido por diferentes elementos, stos deben tener identidades distintivas:
direcciones. La direccin de memoria identifica una celda de memoria en la que almacena
informacin.
Lectura y escritura se plantean respecto de la CPU.
Identifica el origen o el destino de los datos. La CPU necesita leer una instruccin (dato) de una
dada ubicacin en memoria.
El ancho del Bus determina la mxima capacidad de memoria del sistema. Por ejemplo: 8080 tiene
un bus de direcciones de 16 bits dando un espacio de direcciones de 64k.

Bus de datos.
Transporta datos. A este nivel no hay diferencia entre dato e instruccin. El ancho es un
valor determinante de las prestaciones. Po ejemplo: 8, 16, 32, 64 bits.

Bus de control.
Se relaciona a la informacin de control y temporizado. Po ejemplo: Seales de lectura/escritura
de Memoria o E/S, Seales de seleccin o habilitacin, Seales de Reloj (Clock) y Seales de
pedido de Interrupcin.

Estructura de interconeccin Bus

Buses mltiples

Es el conjunto de lneas que conectan los diversos mdulos del computador (Procesador, memoria,
E / S).

La estructura de interconeccin debe poder dar cobertura a los siguientes tipos de transferencias:

a) Memoria a procesador,
b) Procesador a memoria,
c) E / S a procesador,
d) Procesador a E / S,
e) Memoria a E / S (utilizando acceso directo a memoria DMA)
f) E / S a memoria (utilizando acceso directo a memoria DMA).

2 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Un bus entonces es, un medio de transmisin compartido. Cualquier seal transmitida por uno de
los dispositivos conectados, est disponible para que los otros dispositivos conectados al bus
puedan acceder a ella. Slo un dispositivo puede transmitir con xito en un momento dado.

Un bus est constituido por varios caminos de comunicacin. Cada lnea es capaz de transmitir
seales binarias. En un intervalo de tiempo, se pueden transmitir una secuencia de dgitos binarios
a travs de una nica lnea. Se pueden utilizar varias lneas del bus para transmitir dgitos binarios
a la vez, en paralelo.

Existen distintos tipo de buses en un computador, a distintos niveles dentro de la jerarqua del
sistema.

Estructura del bus.

El bus del sistema (System bus), que conecta los componentes principales del computados
(procesador, memoria y E / S), est compuesto de entre 50 y 100 lneas y a cada una se le asigna
una funcin especial. En resumen, como ya se explic, las lneas se clasifican en:

a) Lneas de datos: Proporcionas un camino para transmitir datos entre los mdulos del
sistema. La anchura del bus de datos se relaciona al nmero de lneas que puede incluir de
32 a cientos. El nmero de lneas determina cuantos bits se puede transferir al mismo
tiempo puesto que cada lnea puede transportar de a un bit a la vez. Determina las
prestaciones del conjunto del sistema.
b) Lneas de direccin: Se utilizan para designar la fuente o el destino del dato situado en el
bus de datos. La anchura determina la mxima capacidad de memoria posible en el
sistema. Las lneas se utilizan adems para direccionar los puertos de E / S.

3 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

c) Lneas de control: Se utilizan para controlar el acceso y el uso de lneas de datos y de


direcciones. Las seales de control transmiten tanto rdenes, que especifican rdenes a
realizar como informacin de temporizacin entre los mdulos, que indican la validez de
los datos y las direcciones.

Ejemplos: Escritura de memoria, Lectura de memoria, Escritura de E / S, Lectura de E / S,


Transferencia reconocida, Peticin del bus, Cesin del bus, Peticin de interrupcin,
Interrupcin reconocida, Reloj (Clock), Inicio (Reset).

d) Adems pueden existir lneas de alimentacin para suministrar energa a los mdulos
conectados al bus.

Funcionamiento.

Si un mdulo desea enviar un dato a otro, debe obtener el uso del bus y transferir el dato a travs
del bus.

Si un mdulo desea pedir un dato a otro mdulo, debe obtener el uso del bus y transferir la
peticin al otro mdulo mediante las lneas de control y direccin apropiadas. Despus debe
esperar a que el segundo mdulo enve el dato.

Fsicamente, es un conjunto de conductores elctricos paralelos, lneas de metal grabadas en una


tarjeta de circuito impreso. Los sistemas actuales tienden a tener sus componentes principales en
una misma tarjeta y los circuitos integrados incluyen ms elementos. Se puede adquirir un
computador pequeo y expandirlo ms adelante aadiendo ms tarjetas.

Jerarqua de buses mltiples.

Si se conecta un gran nmero de dispositivos al bus, las prestaciones pueden disminuir a causa de
que mayor es el retardo de propagacin al pasar el control de un bus de un dispositivo a otro, o a
causa de que el bus puede convertirse en un cuello de botella. En consecuencia, la mayora de los
computadores utilizan varios buses organizados jerrquicamente. Esta arquitectura tradicional,
muestra su debilidad a medida que los dispositivos de E / S ofrecen prestaciones cada vez
mayores. Entonces la industria ha propuesto un bus de alta velocidad, integrado con el resto del
sistema que requiere de un adaptador (Bridge), entre el bus de procesador y el bus de alta
velocidad. (Mezzanine architecture). Los dispositivos de velocidad menos pueden conectarse al
bus de expansin, que utiliza una interfaz para adaptar el trfico entre el bus de expansin y el
bus de alta velocidad.

4 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Diseo. Parmetros.

Tipo Dedicado Mtodo de arbitraje Centralizado

Multiplexado Distribuido

Temporizacin Sncrono Anchura del bus Direccin

Asncrono Datos

Tipo de transferencia de datos Lectura

Estructura

Lectura Modificacin Escritura

Lectura Despus de Escritura

Bloque

5 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Clases Descripcin Ejemplos Ventajas /


Parmetros
Desventajas
Est permanentemente asignada a una Lneas Ventaja de
funcin especfica o a un subconjunto separadas dependencia fsica:
de componentes del computador, en para Elevado
este caso, se refiere al uso de mltiples direcciones y rendimiento por
buses, cada uno de los cuales conecta datos. menos conflictos por
solo un subconjunto de mdulos. el acceso al bus.
Uso de un
bus de E / S Desventaja de
Dedicado para dependencia fsica:
interconectar Incremento en el
todos los tamao y costo en el
mdulos de E sistema.
/S

Tipo
No dedicado. La Ventaja: Uso de
informacin menos lneas, ahorro
de direccin y de espacio y costes.
datos podra
transmitirse a Desventaja:
travs del Circuitera ms
mismo compleja en cada
conjunto de mdulo. Reduccin
Multiplexado
lneas, si se de prestaciones.
utiliza una
lnea de
control de
direccin
vlida
(multiplexado
en el tiempo).
Un nico dispositivo hardware, El propsito es designar un
controlador del bus, es responsable de dispositivo como maestro del bus.
Centralizado asignar tiempos en el bus. Puede estar
en un mdulo separado o ser parte del
Mtodo de
procesador.
arbitraje
No existe un controlador central. Cada
mdulo dispone de lgica para
Distribuido
controlar el acceso y los mdulos actan
conjuntamente para compartir el bus.
La presencia de un evento est Ventaja: Es ms fcil
determinada por un reloj. El bus incluye de implementar y
una lnea de reloj a travs de la que se comprobar.
Temporizacin
transmite una secuencia en la que se
alternan intervalos regulares de igual Desventaja: Es
(Forma en que
Sncrono duracin a uno y a cero. Ciclo de reloj o menos flexible que
se coordinan los
de bus es un nico intervalo a uno la temporizacin
eventos del bus)
seguido de otro a cero. Todos los asncrona. Debido a
dispositivos del bus pueden leer la lnea que todos los
de reloj y todos los eventos comienzan a dispositivos en el

6 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

principios del ciclo. bus deben utilizar la


misma frecuencia de
reloj, el sistema no
puede aprovechar
las mejoras en las
prestaciones de los
dispositivos,
La presencia de un evento en el bus es Ventaja: Pueden
consecuencia y depende de que se compartir el bus,
produzca un evento previo una mezcla de
Asncrono dispositivos lentos y
rpidos, utilizando
tecnologas ms
antiguas y recientes.
Cuanto ms ancho es el bus, mayor es el Afecta a las
Datos nmero de bits que transmiten a la vez. prestaciones del
Anchura del sistema.
bus Cuanto ms ancho es el bus, mayor es el Afecta a la
Direccin rango de posiciones a las que se puede capacidad del
hacer referencia. sistema.
Existe un tiempo de espera mientras el
dato se est captando del dispositivo
esclavo para situarlo en el bus. Puede
haber un retardo si se necesita utilizar
algn procedimiento de arbitraje para
Lectura
acceder al control del bus en el resto de
la operacin. En caso de lneas
dedicadas, el esclavo pone el dato en el
bus de datos al reconocer la direccin y
disponga del mismo.
Puede haber un retardo si se necesita
utilizar algn procedimiento de
arbitraje para acceder al control al
control del bus en el resto de la
operacin.
Escritura
Tipo de
En caso de lneas dedicadas, el maestro
transferencia
pone el dato en el bus de datos cuando
de datos
se estabilizan las lneas de direccin y el
esclavo ha podido reconocer la
direccin.
Lectura seguida de escritura en la
Lectura
misma direccin. La direccin se
Modificacin
proporciona solo una vez, al comienzo
Escritura
de la operacin.
Lectura Operacin indivisible de escritura Para
Despus de seguida de lectura en la misma comprobar el
Escritura direccin. resultado.
Un ciclo de direccin viene seguido por
n ciclos de datos.
Bloque
El primer dato se transfiere a o desde la
direccin especificada y el resto a o
desde las direcciones siguientes.

7 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

PCI.

El bus PCI: Perhiperal Component Interconnet, de ancho de banda elevado, independiente del
procesador, se puede utilizar como bus de perifricos o bus para arquitectura de entreplanta.
Proporciona mejores prestaciones para los subsistemas de E / S, de alta velocidad. Se diseo para
ajustarse econmicamente a los requisitos de E / S de los sistemas. Se implementa con pocos
circuitos integrados y permite que otros buses se conecten al bus.

CPU ALU
Z, C, V, N

Operando A
Resultado
Operando B
Funcin

La instruccin se almacena temporalmente en un registro de la CPU llamado IR.


El bloque control puede leer IR y as saber qu hacer, dnde estn los operandos y dnde poner el
resultado.
Para saber dnde encontrar la prxima instruccin, hay un registro llamado PC. Program Counter
o Contador de Programa, que contiene la direccin de la primera instruccin, cuando el programa
va a ser ejecutado. Alcanzada la primera instruccin, el PC es incrementado para apuntar a la
siguiente instruccin.

CPU mejorada
Z, C, V, N

Operando A
Resultado
Operando B

PC Control y temporizado

IR

Todas las CPU tienen registros internos de propsito general que pueden ser referenciados por el
programador, como fuente destino ( ambos) en una instruccin.
Como si fuesen memoria, pero mucho ms rpidos. Son lugares de almacenamiento temporario:
D0, D1, D2, etc.

8 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Z, C, V, N
D0
D1
D2 Resultado
D3
D4

PC Control y temporizado

Bus interno IR

Bus de direcciones Bus de datos


MAR MBR

La CPU interacta con la memoria a travs de un par de registros que estn ocultos al
programador.

MAR = Registro de direccin de memoria.


MBR = Registro de dato de memoria.
Los registros estn conectados a los buses, segn muestra la figura precedente.
Adems, la CPU tiene otros registros que permiten almacenar direcciones, de tal forma de poder
brindar flexibilidad.

Z, C, V, N
D0 A0
D1 A1
D2 Resultado A2
D3 A3
D4 A4

PC Control y temporizado A5

Bus interno IR

Bus de direcciones Bus de datos


MAR MBR

9 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

CPU MEMORIA
0

1 Instruccin
PC MAR
2 Instruccin
.
. Datos
IR MBR
Datos
n-2

Unidad E/SAR
n-1
de
E/SBR
ejecucin

MDULO DE E / S

PC: Controlador de programa


IR: Registro de instruccin
MAR: Registro de direccin de memoria
MBR: Registro de buffer de memoria
E / S AR: Registro de direccin de E / S
E / S BR: Registro buffer de E / S

En conclusin, la CPU se encarga del control, intercambia datos con la memoria utilizando dos
registros internos (de la CPU): Un registro de direcciones de memoria MAR: Memory Address
Register, que especifica la direccinen memoria de la prxima lectura o escritura y un registro
para datos de MBR: Memory Buffer Register, que contiene el dato que se va a escribir en memoria
o donde se escribe el dato que se va a leer de memoria. Igualmente un registro de direcciones de E
/ S: E / S Address Register, especifica un dispositivo de E / S y un registro para datos de E / S: E
/ S Buffer Register se utiliza para intercambiar datos entre un mdulo de E / S y la CPU.
Un mdulo de memoria consta de un conjunto de posiciones, designadas por direcciones
numeradas secuencialmente. Cada posicin contiene un nmero binario que puede ser
interpretado como una instruccin o como un dato.
Un mdulo de E / S transfiere datos desde los dispositivos externos a la CPU y a la memoria y
viceversa. Contiene los registros internos (buffers) para almacenar los datos temporalmente, hasta
que puedan enviarse.

10 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

CONCEPTO DE INSTRUCCIN MODELO DE EJECUCIN DE INSTRUCCIONES


CICLO DE INSTRUCCIN FASES.

Una instruccin hace referencia a una instruccin mquina que es directamente interpretada y
ejecutada por el procesador, a diferencia de una instruccin de un lenguaje de alto nivel que
previamente a ser ejecutada tiene que ser compilada en una serie de instrucciones mquina.
La funcin bsica que realiza un computador es la ejecucin de un programa, constituido por un
conjunto de instrucciones almacenadas en memoria. El procesador es precisamente el que se
encarga de ejecutar las instrucciones especificadas en el programa. LA CPU procesa las
instrucciones y para ello, debe traerlas desde memoria una por vez y debe cumplir cada operacin
ordenada.
Se puede descomponer el procesamiento de instrucciones en dos etapas:
a) Bsqueda (captacin). El procesador lee la instruccin de memoria y
b) Ejecucin. Dependiendo de la instruccin, puede implicar varias operaciones, pues
una puede estar compuesta de ciertos nmeros de pasos.
El ciclo de instruccin es el procesamiento que requiere una instruccin. Se grafica a continuacin:

INICIO Captacin Ejecucin de


de la la
siguiente instruccin
instruccin

PARADA

Ciclo de captacin Ciclo de ejecucin

La ejecucin del programa se para solo si la mquina se desconecta, se produce algn tipo de error
irrecuperable o ejecuta una instruccin del programa que detiene el computador.

Al comienzo de cada ciclo de instruccin, la CPU capta una instruccin de memoria. Se utiliza un
registro PC: Program Counter, de forma tal de seguir la pista de la instruccin que debe captarse a
continuacin y a no ser que se indique lo contrario, la CPU incrementa el PC luego de captar cada
instruccin. De forma que se captar la siguiente instruccin de la secuencia pudindose ser esta
ltima alterada.

La instruccin captada se almacena en un registro de la CPU IR: Instruccin Register. La


instruccin se escribe utilizando un cdigo binario que especifica la accin que debe realizar la
CPU. sta interpreta la instruccin y lleva a cabo la accin requerida que puede ser:
a) Procesador Memoria,
b) Procesador E / S,
c) Procesamiento de Datos,
d) Control.

11 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

La ejecucin de una instruccin puede implicar una combinacin de estas acciones.


El procesador posee un nico registro de datos llamado AC: Acumulador. Tanto las instrucciones
como los datos son de 16 bits. As, es conveniente organizar la memoria utilizando posiciones de
16 bits, o palabras.

Ejemplo de la ejecucin de un programa con 3 ciclos de instruccin:


Formato de instruccin:
Codop Direccin
0 3 4 15
Lista parcial de Codops del ejemplo:
0001 = Cargar AC desde memoria.
0010 = Almacenar AC en memoria.
0101 = Sumar a AC el dato de memoria.
Ejecucin paso a paso:
Memoria Registros de la CPU
300 1940 PC 300
301 5941 AC
302 2941 IR 1940

940 0003
941 0002

Memoria Registros de la CPU


300 1940 PC 301
301 5941 AC 0003
302 2941 IR 1940

940 0003
941 0002

Memoria Registros de la CPU


300 1940 PC 301
301 5941 AC 0003
302 2941 IR 5941

940 0003
941 0002

Memoria Registros de la CPU


300 1940 PC 302
301 5941 AC 0005
302 2941 IR 5941

940 0003
941 0002

12 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

3+2=5

Memoria Registros de la CPU


300 1940 PC 302
301 5941 AC 0005
302 2941 IR 2941

940 0003
941 0002

Memoria Registros de la CPU


300 1940 PC 303
301 5941 AC 0005
302 2941 IR 2941

940 0003
941 0005

El ciclo de ejecucin de una instruccin puede ocasionar ms de una referencia a memoria, o bien
una operacin de E / S. A tales efectos se proporciona una visin ms detallada con forma de un
diagrama de estados. Para un ciclo de instruccin, algunos estados pueden no darse o pueden
visitarse ms de una vez.

Estados:
a) Clculo de la direccin de la instruccin IAC. Se determina la direccin de la siguiente
instruccin a ejecutar.
b) Captacin de instruccin IF (Instruction Fetch). LA CPU lee la instruccin desde su posicin
en memoria.
c) Decodificacin de la operacin indicada en la instruccin IOD (Instruction Operation
Decoding). Analiza la instruccin para determinar la operacin y operando/s a utilizar.
d) Clculo de la direccin del operando OAC (Operandon Addess Calculation), si la
instruccin implica una referencia a un operando en memoria o disponible mediante E / S.
e) Captacin de operando OF (Operand Fetch). Capta el operando desde memoria o se lee
desde el dispositivo de E / S.
f) Operacin con los datos DO (Data Operation).
g) Almacenamiento de operando OS (Operand Store).
b) , e) y g) ocasionan intercambios entre la CPU y la memoria o un mdulo de E / S. El resto de
estados, ocasiona operaciones internas a la CPU.

13 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Grficamente:

Captacin Captacin Almacenamiento


de deoperando deoperando
instruccin

Clculodela Decodificacin Clculodela Operacin Clculodela


direccinde delaoperacin direccinde condatos direccinde
instruccin delainstruccin operando operando

REPERTORIO DE INSTRUCIONES.

Es el conjunto completo de instrucciones completas que puede ejecutar el procesador.


El funcionamiento del computador est determinado por las instrucciones que ejecuta
(instrucciones mquina).
Su diseo, define muchas funciones de las funciones realizadas por el procesador.
Aspectos de diseo:
El repertorio de operaciones,
Los tipos de datos,
Los registros,
El direccionamiento.

Elementos constitutivos de una instruccin.


Cdigo de operacin (Cod. Op).
Referencia a operandos fuentes u origen.
Referencia al operando de destino o resultado.
Referencia a la siguiente instruccin. Cuando se necesita una referencia explcita, debe
suministrarse la direccin de memoria principal o virtual.

Dnde se almacenan operandos?


Memoria principal o memoria virtual o en memoria cache.
Registro de la CPU.
Dispositivo de E/S.

Representacin de instrucciones.
Cada instruccin se representa por una secuencia de bits. La instruccin est dividida en campos
correspondientes a los elementos constitutivos.
16 bits
4 bits 6 bits 6 bits
Cod.Op. Referencia a Referencia a
operando operando

14 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Durante la ejecucin, la instruccin se escribe en un registro de instruccin IR del procesador. ste


debe ser capaz debe ser capaz de extraer los datos de los campos de la instruccin para realizar la
operacin.
Las instrucciones se representan simblicamente pues es difcil manejar representaciones binarias
de las instrucciones mquina. Es por ello, que los Cod.Ops. se representan mediante
nemotcnicos. Cada Cod.Ops. simblico posee una representacin en binario fija.
Ejemplo: ADD Sumar; SUB Restar; MPY Multiplicar; DIV Dividir; LOAD Cargar
datos de memoria; STOR Almacenar datos en memoria.
Los operandos suelen representarse simblicamente tambin.
Ejemplo: ADD R, Y Suma el valor contenido en la posicin de datos Y al contenido del registro
R.

Tipo de instrucciones. De

Transferencia de datos Procesamiento de datos Almacenamiento. de datos Control


Instrucciones de E/S. Aritmticas y lgicas Instrucc. de memoria. De comprob. y
bifurcacin.

Decisiones en el diseo del conjunto de instrucciones.


El nmero de direcciones por instruccin es una decisin bsica de diseo.
Menos direcciones por instruccin significa instrucciones ms primarias, lo que requiere un
procesador menos complejo. Tambin da lugar a instrucciones ms cortas. Pero los
programas contiene mayor cantidad de instrucciones y esto supone mayor tiempo de
ejecucin y ms largos y complejos.
Con instrucciones de 1 direccin, el programador posee un registro de uso general AC. Para
instrucciones de mltiples direcciones suele disponerse de mltiples registros de uso
general, acelerando la ejecucin, pues su acceso es ms rpido.
La mayora de las mquinas contemporneas utilizan instrucciones de 2 y 3 direcciones.
Otra decisin es sobre los modos de direccionamiento puesto que existen diversos modos.

OPERANDOS.

Categoras.
Las instrucciones mquina operan con datos. Las categoras generales son:
Direcciones. Son nmeros enteros sin signo.
Nmeros: Enteros o en coma fija, en coma flotante, en decimal (Representado como decimal
empaquetado).
Caracteres: Existen cdigos que representan caracteres como secuencias de bits: ASCII (128
caracteres <>), EBCDIC, etc.
Datos lgicos: Bits (1 0). Ej: flags o indicadores.

OPERACIONES.

15 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Tipos de operaciones: Existen generales para todas las mquinas, pero el nmero de Cod.Ops.
vara de una mquina a otra.
Transferencias de datos. Debe especificarse: Ubicacin del operando fuente, Ubicacin del
operando destino, Tamao de los datos a ser transferidos, Modo de direccionamiento.
Diferentes movimientos diferentes instrucciones: Reg-Reg, Reg-Mem o Mem-Reg
O una instruccin y diferentes direcciones: MOV destino, fuente; copia fuente a destino
Aritmticas.
La ejecucin de una operacin aritmtica puede implicar operaciones de transferencia de
datos para ubicar operandos a la entrada de la ALU.
Lgicas. Adems de las operaciones bits a bits, las mquinas ofrecen diversas funciones de
desplazamiento y rotacin.
Conversin. Cambian el formato u operan sobre el formato de los datos.
Entrada/Salida.
Pocas instrucciones pero de acciones especficas: IN OUT.
Se pueden realizar utilizando instrucciones de movimiento de datos: MOVE.
Se pueden realizar a travs de un controlador aparte: DMA (Direct Memory Access)
Control del sistema. En general son reservadas para que las use el SO.
Control de flujo. Modifican el valor contenido en el registro PC.
Ejemplos: Salto Incondicional: JMP , Salto Condicional: JZ, Salto con retorno o llamada a
subrutina: CALL subrut . Para retornar al programa que llam, se debe utilizar la
instruccin RET como ltima instruccin del cuerpo de subrutina.

DIRECCIONAMIENTO.
Modos de direccionamiento.
La referencia a un operando en una instruccin, contiene o bien su valor (inmediato) o una
referencia a la direccin del operando.
Los diversos repertorios, utilizan una gran variedad de modos de direccionamiento.
Las tcnicas de direccionamiento permiten resolver el problema de no poder referenciar un rango
elevado de posiciones de memoria principal o virtual, pues el campo es limitado.

Tipos Ventajas Desventajas


Inmediato. El operando est en la No referencia a memoria. El tamao del nmero est
instruccin. Se puede utilizar para restringido a la longitud del campo
definir o utilizar constantes o para de direcciones.
fijar valores iniciales a variables. El
Nmero se almacena en Ca2. El bit
ms a la izquierda es para signo.
Directo de memoria o Absoluto. Es sencillo. El espacio de direcciones limitado.
Solo requiere una referencia a
memoria.
Indirecto. El campo de direcciones El espacio de direcciones es Las referencias a memoria son
referencia a la direccin de una grande. mltiples. Se requiere de 2
palabra en memoria, la cual referencias a memoria.
contenga la direccin del operando.
De registros. El campo de direccin No referencia a memoria. El nmero de registros es limitado.
referencia a un registro. El campo de Solo es necesario un campo
direcciones consta de 3 a 5 bits. pequeo de direcciones en la
instruccin.
Indirecto con registro. El campo de El espacio direcciones es grande. El tamao del nmero est

16 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

direcciones referencia a un registro. restringido a la longitud del campo


de direcciones.
Indirecto con Desplazamiento. Las Flexibilidad. Complejidad.
instrucciones deben tener dos
campos para direcciones pues
combina direccionamiento directo
con indirecto con registro. Se suma
el contenido de un registro al
contenido que est en la direccin
directa, formando la direccin
efectiva. Tipos:
Relativo: La direccin de la
instruccin actual se suma a l
campo de direcciones.
Con registro base: El registro
referenciado posee una direccin
de memoria y el campo de
direccin contiene un
desplazamiento de dicha
direccin.
Indexado: El campo de direccin
referencia una direccin de
memoria principal y el registro
referenciado contiene un
desplazamiento positivo desde
esa direccin.
Pila(o relativo al SP). Una pila es una No referencia a memoria. Su aplicabilidad es limitada.
matriz lineal de posiciones. Los
elementos de la cabecera de la pila
pueden residir en registros. El
puntero se mantiene en un registro.
Las referencias a posiciones de la
pila en memoria son,
direcciones de acceso indirecto
con registro.

FORMATO DE INSTRUCCIONES.
El formato de la instruccin define la forma de los distintos campos de la instruccin. El diseo del
formato debe considerar la longitud de las instrucciones: Fija o variable, los nmeros de bits
asignados al cdigo de operacin y a cada referencia a operando y la forma en que se determina
modo de direccionamiento.
El formato debe incluir un cdigo de operacin y 0 o ms operandos.

Longitud de instruccin. Esta decisin define la riqueza y flexibilidad de la mquina.

Fija
Variable

Variable El direccionamiento puede ser ms flexible, pero aumenta la complejidad del


procesador.
17 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Los diseadores pueden optar por utilizar varios formatos de instruccin de longitudes diferentes.

Se ve afectada por:
El tamao de la memoria,
La organizacin,
La estructura de buses,
La complejidad del procesador,
La velocidad del procesador,

Asignacin de los bits. Para una longitud de instruccin dada, existe un compromiso entre el
nmero de Cod.Ops. y la capacidad de direccionamiento. + nmeros de Cod.Ops. - nmeros de
bits disponibles para direccionamiento para una longitud dada.
Factores que definen a la definicin del uso dado a los bits de direccionamiento. A saber:
Nmero de modos de direccionamiento: Ms de un modo de direccionamiento hace que deban
ser explcitos y se requiere 1 o + bits de modo.
Nmero de operandos: Las aplicaciones tpicas permiten 2 direcciones.
Registros fuente de memoria: Es aconsejable tener de 8 a 32 registros visibles para el usuario.
Nmero de conjuntos de registros: La tendencia ha sido pasar de un solo banco de registros de
uso general a un grupo de 2 o + conjuntos se requiere bits de la instruccin.
Rango de direcciones: Est relacionado con el nmero de bits de direccionamiento.
Granularidad de las direcciones: Para direcciones que hacen referencia a memoria, pueden
direccionar a una palabra o a un byte.

Pasaje de alto nivel a mquina

Program Programa Objeto: Objeto:


Compilador Ensablador
a en alto en Mdulo en Libreras de
nivel lenguaje lenguaje rutinas en
ensambla mquina lenguaje
dor mquina

Lincado

Ejecutable:
Memoria SO
Programa
Loader
en Lenguaje
Mquina

18 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Compilador:
Programa informtico que traduce un programa escrito en lenguaje de programacin (alto nivel) a
otro lenguaje de programacin que la mquina podr entender o a otro lenguaje intermedio.
Anlisis:
o Lxico,
o Sintctico.
Sntesis.

Programa en lenguaje ensamblador:


Programa que permite ver a los programas como una secuencia de instrucciones y no como una
secuencia de nmeros.
Hace una traduccin simblica.
Si un programador quisiera programar en lenguaje mquina, necesitara introducir los programas
como datos binarios.
El lenguaje es en principio, un mapeo de cdigos a instrucciones comprensibles por el humano.

Ensamblador:
Programa encarga de tomar programas escritos en assembly y generar los cdigos que la
computadora entender.
Se enlaza el cdigo de bajo nivel y se aade el cdigo de las funciones que hay en las bibliotecas
del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo.

El simulador MMX88.

Programa cuyo propsito es simular una CPU y mostrar los pormenores de su funcionamiento.
Simula una computadora basada en una versin simplificada del procesador 8086 Intel.
Grficamente muestra los flujos de informacin existentes entre los diversos elementos que lo
componen.

19 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Los registros AX a DX, son de uso general, de 16 bits de longitud pero se pueden dividir en 2
partes de 8 bits: AH y AL.

ACCESO: Para acceder a la pantalla del simulador, luego de instalar, se debe acceder a
SIMULADOR> MSX88 del directorio raz.

ELABORACIN: El programa fuente deber se editado con un editor (Como ejemplo EDIT o
NOTEPAD: En este ltimo caso, luego de la ltima lnea de programa END se debe realizar un
ENTER) y grabado con extensin .asm. Se deber utilizar una sintaxis especificada.

EJECUCIN:
Luego deber ser ensamblado con ASM88 nombre.asm, producindose dos archivos: .o y .lst.
Luego deber enlazarse produciendo un archivo ejecutable .eje por medio de LINK88.
Por ltimo deber ser cargado en memoria utilizando L nombre y ejecutado mediante G.

Definicin de variables constantes, tablas

Variables: Como se referencia a ellas por una direccin en la memoria, en assembly, existen
instrucciones para definirlas.

20 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Sintaxis: nombre_variable especificador_tipo valor_ inicial


(a) (b) (c)

(a) Debe empezar con una letra o underscore (_), seguido de nmeros, letras o underscores.

(b) El tipo indica el tamao que ocupa en memoria: Byte (8 bits) o Word (16 bits)

(c) Puede no especificarse usando. ?, o especificarse. En este caso, se interpretan en decimal, a


menos que termine con h (hexa). Deben comenzar con un dgito decimal.

Ejemplo:
DB Byte
Var1 DB 0A00h

Constantes:
Sintaxis: Nombre EQU valor El valor no ocupa ninguna direccin en memoria.

Tablas: Extensin de definicin de variables.

Sintaxis: nombre_variable especificador_tipo valores

Ejemplo: tabla DB 1, 2, 4, 8, 16, 32, 64, 128


Tabla con 8 valores. Se puede ver como un arreglo inicializado con valores.

Strings: Puede verse como una tabla donde en cada celda se almacena cada carcter delstrin, o
Sintaxis alternativa: string DB Esto es un string.
EL modificador DUP permite en la definicin de una tabla, definir datos contenidos iguales o que
cumplen algn patrn repetitivo.
Sintaxis: cantidad DUP (valores)
Ejemplo: Definir un arreglo de 20 palabras conteniendo 1234h y 4321h alternadamente.

21 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

cantidad EQU 10
arreglo DW cantidad DUP (1234h, 4321h)

Cambio de direccin: Se permite cambiar sobre la marcha, la direccin a partir de la cual se


colocarn las cosas.

Sintaxis: ORG direccin


Ejemplo: ORG 1000h ..

Instrucciones.
Registros de propsito general de 16 bits: AX, BX, CX y DX.
Registros de 1 par de 8 bits: AX AH y AX.
IP contiene la direccin de la prxima instruccin a ejecutar.
SP contiene la direccin del tope de la fila.

De transferencia de datos
Tipos de instrucciones Aritmticas y Lgicas
del simulador MMX88 De transferencia de control
De manejo de interrupciones
De control

Instrucciones de transferencia de datos.


MOV: Permite realizar movimientos de datos entre registros o des un registro a la memoria o
viceversa. Desde memoria a memoria no se puede mediante una sola instruccin.
Sintaxis: MOV destino, origen
Origen y destino deben de ser del mismo tipo de datos
Ejemplo: MOV BX, AX

Instrucciones aritmticas.
a) Existen dos operaciones bsicas que puede realizar la CPU: Sumar y restar.
Sintaxis: ADD operando1, operando2
SUB operando1, operando2
b) Existen dos instrucciones que tienen en cuenta al flag de carry/borrow. Suman o restan
incluyendo a dicho flag.
Sintaxis: ADC operando1, operando2
SBB operando1, operando2
c) Existen dos instrucciones, casos particulares de ADD y SUB, que poseen un solo operando
y le suman o restan 1 al operando.

22 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Sintaxis: INC operando


DEC operando

Instrucciones de comparacin.
Es esencialmente el comportamiento de SUB, con excepcin de que el resultado no se almacena en
ninguna parte. Al hacer la resta causa que se modifiquen los flags y ver como han quedado los
flags, luego de producida la resta nos dice muchas cosas sobre los nmeros que se restaron.

Ejemplo: Si flag z queda en 1, entonces la resta fue 0, entonces los 2 nmero eran iguales.
Ejemplo: Si flag s qued en 1 viendo los operandos en Ca2, entonces el segundo operando era
mayor.

Sintaxis: CMP destino, fuente

Instrucciones lgicas.
AND operando1, operando2
OR operando1, operando2
XOR operando1, operando2
NOT operando
NEG operando
AND, OR y XOR realizan la operacin lgica correspondiente aplicada bit a bit sobre todos los bits
de ambos operandos.
NOT y NEG calculan sobre el operando el complemento a 1 y a 2 respectivamente.

Instrucciones de transferencia de control.


De salto.
Permiten realizar saltos alterando el flujo de control a lo largo de la ejecucin del programa.
Tienen un operando que indica la direccin que se le asignar al registro IP. En consecuencia, se
modifica cual va a ser la prxima instruccin que va a ejecutar la CPU.
Existen saltos incondicionales y condicionales.
Sintaxis:
JMP direccin Salta siempre.
JZ direccin Salta si z = 1.
JNZ direccin Salta si z = 0.
JS direccin Salta si s = 1.
JNS direccin Salta si s = 0.
JC direccin Salta si c = 1.
JNC direccin Salta si c = 0.
JO direccin Salta si o = 1.
JNO direccin Salta si o = 0.

23 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Instrucciones de control.
HLT Detiene la ejecucin del microprocesador hasta que llegue una interrupcin externa.
NOP No hace nada. Simplemente ocupa memoria.

Modo de direccionamiento indirecto.


Facilita el recorrido de las tablas va el registro BX.
Ejemplo:
ORG 1000h
Tabla DB 1, 2, 3, 4, 5 ;Se define una tabla y dos variables ms.
fin_tabla DB ?
resultado DB 0
ORG 2000h
MOVE BX, OFFSET tabla ;Indica que se debe cargar BX con la direccin de tabla y no con el
contenido.
MOVE CL, OFFSET fin_tabla OFFSET table ;Se asigna a CL la diferencia entre las
direcciones obteniendo la cantidad de datos de la
tabla.
Loop: MOV AL, [BX] ;Se asigna el contenido de la celda de memoria cuya direccin es el valor
contenido en BX.
INC BX;
XOR resultado, AL;
DEC CL;
JNZ Loop ;Cuando llegue al final de la tabla CL ser 0 y no se producir el salto condicional.

HLT;
END

Ejemplos:
1) Uso de MOV y separacin de variables del programa.
ORG 1000h
var_byte DB 20h
var_word DW ?
ORG 2000h
MOV AX, 1000h
MOV BX, AX.
MOV BL, var_byte
MOV var_word, BX
END
Las variables sern almacenadas a partir de la direccin 1000h.

24 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

Las instrucciones a partir de la direccin 2000h.


Cuando se asigna el valor inmediato 1000h al registro AX, se emplea el modo de
direccionamiento directo.
Los registros AX y BX, tienen 16 bits cada uno.
BL es la parte baja de BX.
Qu contiene var_word? 1020h.
Qu es 1020h? Es la direccin a la que var_word hace referencia.

Instante AX BX
AH AL BH BL
0 00 00 00 00
1 10 00 00 00
2 10 00 10 00
3 10 00 10 20
4 10 00 10 20

2) Instrucciones aritmticas.
ORG 1000h
dato1 DW 10
dato2 DW 20
resultado DW ?
ORG 2000h
MOV AX, dato1
MOV AX, dato2
MOV resultado, AX
END
Qu significa el carcter ?? El valor inicial de resultado no se especifica.
El registro AX se utiliza como variable auxiliar.

3) Instrucciones aritmticas. Utilizacin de ADC.


ORG 1000h
dato1_l DW 0FFFFh
dato1_h DW 0015h
dato2_l DW 0011h
dato2_h DW 0002h
ORG 2000h
MOV AX, dato1_l
ADD AX, dato2_l
MOV BX, dato1_h
ADC BX, dato2_h

25 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

END

0015 FFFF
+
0002 0011
0018 0010

Instante AX BX Flag C
0 0000 0000 0
1 FFFF 0000 0
2 0010 0000 1
3 0010 0015 1
4 0010 0018 0

Por qu se utiliza ADC y no ADD?

4) Definicin de etiquetas y aplicacin de instrucciones de salto.


ORG 2000h
MOV AX, 10
Lazo: .;
;
;
DEC AX
JNZ Lazo
Fin: JMP Fin
END
Se salta a la instruccin apuntada por la etiqueta Lazo, siempre y cuando el flag z quede en
0.
Fin: JMP Fin es un salto incondicional a la etiqueta Fin que apunta a esa misma
instruccin.

5) If then else. Se emula mediante la combinacin de instrucciones CMP y saltos condicionales e


incondicionales.
En Pascal
IF AL = 4 THEN
BEGIN
BL = 1;
CL = CL + 1;
END;

26 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

En Assembly
CMP AL, 4
JZ Then
JMP Fin_IF
Then: MOV BL, 1
INC CL
Fin_IF: HLT

Una mejora:
CMP AL, 4
JNZ FIN_IF
Then: MOV BL, 1
INC CL
Fin_IF: HLT

En Pascal
IF AL = 4 THEN
BEGIN
BL = 1;
CL= CL + 1;
END
En Asembly
CMP AL, 4
JZ Then
JNZ Else
JMP Fin_IF
ELSE Then: MOV BL, 1
BEGIN INC CL
BL = 2; Else: MOV BL, 2
CL = CL -1; DEC CL
END; Fin_IF: HLT

27 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

6) For. Se efecta un salto condicional.


En Pascal. En Assembly.
AL := 0; MOV AL, 0
FOR CL := 1 TO 10 DO MOV CL, 1
AL := AL + AL; Iterar: CMP CL, 10
JZ Fin
ADD AL, AL
INC CL
JMP Iterar
Fin: HLT

7) Repeat until. A diferencia de While, la condicin se evala luego de ejecutar el


cdigo a repetir al menos una vez.
En Assembly.
MOV AL, 0
MOV CL, 10
Iterar: ADD AL, AL
DEC CL
CMP CL, 1
JNZ Iterar
Fin: HLT

8) Arreglos y tablas. Encontrar el mximo valor de un arreglo.


En Pascal.
const
tabla: array [1..10] of Word = [5, 2, 10,
4, 5, 0, 4, 8, 1, 9];
var
max: Word;
begin
max := 0
for i := 1 to 10 d o
if table [i] > max then
max := table [i];
end.

28 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

En Assembly.
ORG 1000h
tabla dw 5, 2, 10, 4, 5, 0, 4, 8, 1, 9
max dw 0
ORG 2000h
MOV BX, OFFSET tabla ;(la direccin
;del comienzo)
MOV CL, 0
MOV AX, max
Loop: CMP [BX], AX; (Si el n en tabla es >=
;que AX no borrow)
JC Menor
MOV AX, [BX]
Menor: ADD BX, 2
INC CL
CMP CL, 10
JNZ Loop
MOV max, AX
HLT
END

Otras instrucciones.
De manejo de la pila: PSH, POP,
PUSHF, POPF.
Asociadas a subrutinas: CALL, RET.
De gestin de interrupciones; INT,
IRET, STI, CLI.
De entrada salida: IN, OUT.

29 UniversidadNacionaldeJosC.PazAPUAC12013

Arquitectura de Computadoras I 2013

30 Universidad Nacional de Jos C. Paz APU - ACI 2013

S-ar putea să vă placă și