Está en la página 1de 12

Temas:

Clase
- Tecnologías de Mi-
croprocesadores.
UNIDAD Nº 3:
MICROPROCESADO-
RES
- Técnicas de Proce-
samiento.
- Direccionamiento
9
de Memoria.

OBJETIVOS DE LA CLASE:

 Comprender las diferencias entre las tecnologías de procesamiento


CISC y RISC.

 Entender la forma de trabajo del procesamiento secuencial y en pipe-


lines.

 Conocer cómo es la forma de trabajo del procesador.

INTRODUCCIÓN A LA CLASE:

En esta clase comenzamos el estudio del microprocesador. Se verá cuáles


son las dos tecnologías de procesamiento más utilizadas y la forma de ejecutar las
instrucciones por parte del microprocesador.

Se estudiará también cómo se realiza el direccionamiento de memoria y


cuáles son los principales registros de los procesadores de la familia x86.

ISSD – Fundamentos de Computadoras Clase 9 1


3. MICROPROCESADORES

Glosario: 3.1. Tecnologías de Microprocesadores


Compilador: es
Existen dos líneas de diseño en la construcción de microprocesadores:
un programa que
CISC y RISC. CISC se basa en la creencia de que un procesador debe proveer el
traduce un lenguaje de alto
nivel (como los de Visual
mayor número posible de instrucciones complejas para reducir el número de ins-

Studio) al lenguaje de trucciones ejecutadas. RISC, pretende incorporar en forma de circuitos, sólo los
máquina de una computa- conceptos lógicos necesarios y aumentar así la velocidad del microprocesador.
dora en particular. Un
programa compilado indica
CISC = Instrucciones complejas
que ha sido traducido y está
Tecnologías
listo para ser ejecutado por RISC = Instrucciones simples
la computadora.

3.1.1. CISC (Complex Instructions Set Computer)

Cada instrucción se traduce en su ejecución en una serie de instrucciones


más sencillas, determinadas por el microcódigo incorporado al microprocesador
(generalmente en ROM). La característica típica es el control por microcódigo, a
diferencia de los RISC que poseen el control cableado.

La secuencia típica de ejecución de instrucciones es:

Lenguaje de alto nivel



(Compilación)

Lenguaje de máquina

(Interpretación)

Microcódigo

(Traslado)

Ejecución

3.1.2. RISC (Reduced Instruction Set Computer)

La disminución del tiempo de acceso a memoria externa de los procesado-


res, a través de los avances en circuitos semiconductores y el uso de cachés de alta
velocidad, posibilitan la construcción de circuitos más sencillos dejando la tarea de
codificación de instrucciones de alto nivel al software. Su diseño se limita a un
ISSD – Fundamentos de Computadoras Clase 9 2
análisis de las instrucciones más importantes de un lenguaje o aplicación. Su objeti-
vo es reducir al mínimo el número de instrucciones (implementando sólo las más
importantes) por ciclo de reloj, aún teniendo que incrementar el número de instruc-
ciones por unidades de programación; lo consigue mediante:

 Un conjunto reducido de instrucciones (lo que permite reducir la com-


plejidad del chip).

 Instrucciones simples y de largo fijo (que posibilita que la mayor parte


de las instrucciones se ejecuten en un ciclo de reloj).

 Minimización del número de operaciones que acceden a la memoria ex-


terna.

 Utilización de pipelines para la ejecución de las instrucciones.

3.1.3. Técnicas de Procesamiento Glosario:

El pipeling es una técnica de implementación que surgió como una forma Procesamiento en
pipelines: Se traduce como
de acercar a 1 el número de instrucciones ejecutadas por ciclo de reloj, ya que per-
procesamiento en cadena.
mite la ejecución recurrente de varias instrucciones. En esta técnica, cada instruc-
Implica que ciertas opera-
ción se divide en segmentos que se conectan de cierta manera para ejecutar concu-
ciones internas de la com-
rrentemente diferentes etapas de instrucción; en cada ciclo de reloj comienza una
putadora se solapan o su-
instrucción, termina otra y se ejecutan otras (son necesarios al menos tres buses: dos perponen para lograr una
para la lectura simultánea de los operandos y un tercero para la escritura). mayor velocidad de proce-
samiento.

Figura 3.1. Ejecución Secuencial contra Ejecución en Pipelines.

En un momento dado, cada etapa de un pipeline puede estar trabajando una


instrucción diferente. El resultado de esta metodología no es la ejecución más rápi-
ISSD – Fundamentos de Computadoras Clase 9 3
da de una sola instrucción, sino un rendimiento general más rápido. Si a un pipeline
Comentario
le insume cuatro ciclos de reloj procesar una instrucción, tardará cinco ciclos para
¿Por qué el
completar dos instrucciones, y seis ciclos si las instrucciones son tres. Un procesa-
procesamiento en pipelines es
dor que no use la técnica de pipelines, puede tardar también los mismos cuatro
apropiado para las instrucciones
ciclos para completar una instrucción, pero le llevará ocho ciclos para dos instruc-
RISC? Imaginemos una fábrica
ciones, y doce ciclos para completar tres instrucciones. Las instrucciones RISC
en donde se produce en líneas de
montaje. Sólo es posible usar están pensadas para trabajar en pipelines. Debido a que todas las instrucciones tie-
esta técnica si los vehículos de nen la misma longitud, la mayoría de ellas tardan un ciclo en completar cada etapa
una misma línea son muy simi- del pipeline.
lares, ya que si alguno requiriera
Por lo tanto, si bien la mayoría de las instrucciones RISC no hacen mucho
trabajos muy distintos, la línea
más que la instrucción CISC promedio, superan ampliamente a las instrucciones
no podría respetarse. Por ejem-
plo, para llegar al extremo, no CISC porque se ubican y corren mejor en los pipelines.

pueden introducirse en la misma


línea de producción un avión y
Secuencial
un barco, ya que requerirían de Técnicas de
puestos de trabajo y de tiempos procesamiento Pipelines
de producción muy diferentes.

Las instrucciones RISC son


todas del mismo tamaño, es
decir que todas requieren la 3.2. Dentro del Microprocesador
misma cantidad de pasos; en
tanto que las instrucciones CISC Vamos a empezar a conocer cómo funciona internamente un microproce-
son muy distintas entre sí, algu- sador. Nos centraremos en la serie x86 de Intel, partiendo del procesador 8088, ya
nas que necesitan pocos pasos que hasta los procesadores multinúcleo actuales trabajan básicamente de la misma
para completarse, y otras con
manera, más allá de las innumerables actualizaciones que se hicieron desde la crea-
muchas etapas de ejecución.
ción del 8088.

3.2.1. Direccionamiento de Memoria en el 8088

El microprocesador direcciona la memoria de la PC para indicar a qué po-


sición o casillero debe ir un dato. A esta operación la efectúa mediante el uso del
bus de direcciones. Lo que ahora veremos es cómo se realiza realmente este proceso
dentro del procesador.

El 8088 y todos sus sucesores utilizan un procedimiento complicado para


acceder a la memoria, debido a su estructura interna.

El 8088 es un microprocesador de 16 bits, y por consiguiente, no puede


trabajar directamente con valores mayores de 16 bits; por lo tanto el valor decimal
más grande que puede representar es el 65535 o 64 K (2 16). En teoría, esto significa
que el 8088 sólo podría acceder a 64 K direcciones de memoria. Pero en realidad

ISSD – Fundamentos de Computadoras Clase 9 4


Comentario:

éste puede acceder a 1024 K (1 MB.). Esto es posible porque utiliza un esquema de Veamos una

direccionamiento de memoria llamado direcciones segmentadas. equivalencia de la vida real para


entender mejor cómo funcionan
El 8088 divide el espacio de memoria direccionable en un número arbitra- las direcciones segmentadas:
rio de segmentos, cada uno de los cuales contiene como máximo 64 KBytes. Cada
Si queremos enviar una carta a
segmento empieza en una localización que se conoce como dirección de segmento.
una determinada dirección,
Para acceder a los bytes individuales dentro del segmento, se emplea una dirección debemos utilizar algún tipo de
adicional llamada desplazamiento u offset. Estas direcciones siempre son relativas indicación. ¿Cuál empleamos?
al comienzo del segmento, por lo que también se llaman direcciones relativas. Indicamos el nombre de una
calle y la altura dentro de esa
calle. Por ejemplo, si queremos
Dirección de segmento: apunta enviar una carta a nuestra Insti-
a un bloque de 64K
Direccionamiento tución, colocaremos:
Segmentado de Calle: Alvear, Número: 270
Memoria
Dirección relativa: apunta a un Estamos usando dos parámetros:
byte dentro del bloque
el primero sería la dirección de
segmento (la calle) y el segundo

Las direcciones se crean y se manipulan combinando la dirección del seg- se refiere a un lugar específico,
dentro de ese bloque (el número
mento de 16 bits y una dirección relativa de 16 bits. La dirección de segmento se
de la casa, contando desde el
trata como si estuviera desplazada a la izquierda cuatro bits. Cuando se le suma la
comienzo de esa calle).
dirección relativa, se forma una dirección completa de 20 bits, que es la que viaja
por el bus de direcciones.

Figura 3.2. La dirección de segmento apunta al principio de un segmento de me-


moria de 64K, y la dirección relativa, que apunta a un byte específico dentro del
segmento, se combinan en la CPU para formar una dirección física de 20 bits

La dirección de segmento se escribe generalmente mediante 5 dígitos en


hexadecimal, para simplificar la notación. Las direcciones relativas se escriben con
valores hexadecimales de 4 dígitos. Cuando se suman estos dos números, forman
otro número hexadecimal de 5 dígitos, que es una dirección de 20 bits.

Cuando se escribe una dirección de 20 bits partida en segmento y dirección


relativa, se utiliza la notación 0000:0000, con el segmento en el lado izquierdo, los
dos puntos y la dirección relativa a la derecha.

ISSD – Fundamentos de Computadoras Clase 9 5


3.2.2. Los Catorce Registros del 8088

Glosario:
Parte importante de todos los procesadores son sus registros, “variables de
Registro: Un área hardware”, en los cuales pueden cargarse datos de la memoria, allí tratarlos con la
especial de almacenamiento ayuda de las instrucciones en lenguaje máquina y finalmente volverlos a escribir en
de alta velocidad, dentro del
la memoria.
microprocesador. Todos los
datos deben ser representados Dentro del 8088 hay 14 registros de 16 bits, cada uno de ellos con un obje-
en un registro antes de poder tivo especial:
ser procesados. Por ejemplo,
 Cuatro registros de trabajo que se utilizan temporalmente por los
si dos números van a ser
programas para almacenar resultados intermedios y los operandos
multiplicados, ambos números
que necesitan las operaciones aritméticas y lógicas.
deben estar en registros, y el
resultado también se colocará  Cuatro registros de segmento que almacenan las direcciones de co-
en un registro. mienzo de ciertos segmentos en la memoria.
El número de registros de un
 Cinco registros relativos que almacenan las direcciones relativas
microprocesador y el tamaño
que se emplean con las direcciones de segmento para indicar dónde
de cada uno de ellos (número
están situados los datos en la memoria.
de bits) ayudan a determinar la
potencia y la velocidad de una  Un registro de estado, formado por nueve bits que se emplean para
CPU. Por ejemplo, una CPU registrar la información del estado del 8088 y de las operaciones de
de 32 bits es aquella en la que
control del 8088.
sus registros tienen 32 bits de
ancho. Es decir que cada
instrucción de la CPU puede
manipular 32 bits de datos.

Usualmente, el movimiento de
datos a los registros es com-
pletamente invisible para el
usuario.

Figura 3.3. Los registros del 8088

ISSD – Fundamentos de Computadoras Clase 9 6


Registros de trabajo (AX, BX, CX, DX)
Registros Registros de segmento (CS, DS, SS, ES)
del 8088 Registros relativos (SP, BP, SI, DI, IP)
Registro de estado

3.2.2.1. Los Registros de Trabajo

Cuando una computadora está procesando información, gran parte del


Glosario:
tiempo el microprocesador lo gasta en traer y llevar datos a la memoria. Este tiempo
de acceso se puede reducir sustancialmente en muchas ocasiones, guardando en el Pila (stack): Se trata

interior del 8088 los operandos más usados y los resultados obtenidos. Hay cuatro de una estructura de datos (es

registros de 16 bits que se emplean con este propósito. decir, una forma de organizar
la información) en la cual los
Los registros de trabajo se conocen como AX, BX, CX y DX. Cada uno de elementos son quitados en el
ellos se puede a su vez subdividir y direccionar de forma separada, como si fueran orden inverso en que fueron
dos medio-registros de 8 bits. En tal caso, se puede referenciar al primer byte del colocados, el más reciente en
registro AX (el menos significativo, es decir el que está más a la izquierda) como llegar es el primero en quitarse.

AL, y al segundo byte como AH, y así sucesivamente. Pensemos en una pila de pla-
tos. El último plato que se
Aunque estos registros se encuentran disponibles para realizar cualquier ti- colocó en la pila, es el primero
po de trabajo, cada uno tiene asignado algún uso especial: que tomaremos cuando lo
necesitemos.
 El registro AX es un acumulador, y es el registro principal para
realizar operaciones aritméticas. También se conoce como LIFO
último en entrar, primero en
 El registro BX (base) se utiliza para apuntar el comienzo de una
salir. (last-in, first-out)
tabla de memoria.

 El registro CX (contador) se utiliza como un contador de repeti-


ción para control de bucles.

 El registro DX se utiliza para almacenar datos de 16 bits con


propósitos generales.

3.2.2.2. Los Registros de Segmento

Estos cuatro registros, llamados CS, DS, SS y ES, se utilizan para identifi-
car cuatro segmentos de 64 K específicos de memoria. Otros cinco registros relati-
vos se utilizan para almacenar la dirección interna del dato en el segmento de 64 K
que se determine.

 El registro CS localiza el segmento del código, es decir la dirección a


partir de la cual empieza el programa que está siendo ejecutado.

ISSD – Fundamentos de Computadoras Clase 9 7


 El registro DS localiza el segmento de datos, que es la dirección donde
empieza el área de memoria que almacena los datos que se están utili-
zando.

 El registro SS localiza el segmento de pila, que es la dirección donde


empieza un lugar de trabajo temporal que almacena parámetros y di-
recciones que utiliza el programa que está activo.

 El cuarto registro, denominado ES, apunta hacia un segmento extra,


que se utiliza normalmente como suplemento del segmento de datos.

3.2.2.3. Los Registros Relativos

Se utilizan los cinco registros relativos para localizar un byte en concreto,


dentro de un segmento específico de 64 K.

 El registro puntero de instrucción (IP), también llamado contador de


programa, proporciona la dirección relativa en el segmento de código
donde se encuentra localizada la instrucción del programa que se va a
ejecutar. Se utiliza junto con el registro CS.

 Los registros de pila, denominados puntero de pila (SP) y puntero de


base (BP) proporcionan direcciones relativas dentro del segmento de
pila.

 Los registros de índice, que son el índice de fuente (SI) y el índice de


destino (DI), se utilizan cuando se transfieren grandes listas de datos.

3.2.2.4. El Registro de Estado

Este registro es en realidad una colección de bits individuales de control,


denominados indicadores o flags. Sirve para la comunicación entre las instrucciones
consecutivas en lenguaje máquina, almacenando el estado de las operaciones
aritméticas y lógicas.

Por ejemplo, si una instrucción solicita al micro realizar una suma de dos
números de 16 bits, puede ocurrir que el resultado se “desborde” a 17 bits por el
acarreo. ¿Cómo sabe la instrucción siguiente que esto ha ocurrido, si el resultado se
almacena en un registro de 16 bits? Cuando sucede un desborde de este tipo, el
micro enciende un bit (lo pasa a 1) dentro del registro de estado, denominado bit de
carry. La siguiente instrucción verificará si esta “bandera” está encendida antes de
llevar el resultado a la memoria, para averiguar si existe el bit 17 de dicho número.

ISSD – Fundamentos de Computadoras Clase 9 8


3.2.3. El Microprocesador en Funcionamiento

Empecemos por suponer que nuestro micro debe ejecutar un programa. El


compilador inicializa el micro dándole información fundamental para poder ejecu-
tar el programa

a- ¿Dónde está el programa en la memoria?

El micro debe “recordar” permanentemente en qué bloque de la memoria está


el programa que está ejecutando. El compilador “anota” en el registro CS
(segmento de código) el número del bloque de la memoria (recordemos que se
trata de un registro de segmento, apunta a un bloque de memoria de 64 Kb.)
CS + IP
b- ¿Dónde comienza el programa dentro del bloque? Dónde está el programa
en la memoria y cuál es
El segmento de código indica en qué bloque está el programa, pero el micro
la siguiente instrucción a
no sabe dónde comienza, ni por qué instrucción va a cada momento. El com-
ejecutar.
pilador “anota” en el registro IP (puntero de instrucción) el número de byte
dentro del segmento de código donde está la primera instrucción a ejecutar. Se
trata de un registro relativo, llamado también contador de programa. Este con-
tador se incrementa automáticamente cada vez que se ejecuta una instrucción,
de manera tal que siempre le va indicando al micro dónde buscar la siguiente
instrucción a ejecutar.

c- ¿Dónde colocar las variables, arrays, etcétera?

Un programa necesita espacio en la memoria para colocar los datos con los DS

que opera. Por lo tanto, otra de las informaciones fundamentales que el micro En qué lugar de la me-

debe tener presente siempre es en qué bloque de la memoria puede efectuar moria se pueden colocar

esta operación sin riesgos. El compilador le “anota” el número de bloque en el datos.

registro DS (segmento de datos).

d- ¿Dónde está el stack (pila) de trabajo?

Muchas veces el programa necesita apilar datos. Por ejemplo, cuando realiza SS + BP
la llamada a un subprograma, debe “anotar” a dónde volver cuando termine SS + SP
con el subprograma. O necesita un lugar donde “enviar” los parámetros que le En qué bloque de memo-
pasa a un subprograma. Este tipo de información se almacena en una estructu- ria está la pila de datos,
ra de datos llamada pila o stack (nada que ver con la pila del reloj de la dónde está su base y
máquina que vemos sobre la placa madre). Dicha pila se aloja en un bloque de dónde su cima.
la memoria ¿cuál? El compilador le “anota” al micro el número de bloque en
el registro SS (segmento de pila).

ISSD – Fundamentos de Computadoras Clase 9 9


e- ¿Dónde comienza la pila?

Para que el micro sepa dónde colocar el primer dato dentro de la pila, necesita
la dirección concreta de un byte, además de conocer a través de SS cuál es el
bloque de memoria donde está la pila. El registro que mantiene anotado dónde
SS + BP
está el “piso” o la base de la pila de datos en la memoria se llama BP.
SS + SP
En qué bloque de memo- f- ¿Dónde está el último dato de la pila?
ria está la pila de datos,
Dijimos que en el stack el micro “apila” datos, y que siempre quita de la pila
dónde está su base y
el último elemento que introdujo. Es decir que necesita saber en qué dirección
dónde su cima.
exacta se encuentra el último dato de la pila, que es el primero que quitará
cuando lo necesite. ¿Necesita también la dirección exacta del resto de los ele-
mentos de la pila? No, pues cuando quite el de la cima, automáticamente ano-
tará la dirección inmediata anterior, con lo que apuntará nuevamente a la cima
de la pila. El registro que mantiene esta información se llama SP.

g- Comienza a trabajar
Comentario
Ya está preparada toda la información preliminar para que el micro comience
¿Parece
complicado? Lo a trabajar.
es. Es difícil de entender,  La secuencia normal de trabajo será la siguiente:
porque es muy detallado,
estamos hablando de mu- 1- Busca la primera instrucción: se fija en CS + IP
chas tareas muy básicas. 2- Trae los datos a los diferentes registros de trabajo AX, BX, CX, DX según
Por eso cuesta seguir la
lo necesite.
secuencia.
3- Opera con ellos y escribe el resultado también en un registro de trabajo.
¿Es necesario memorizar
estos pasos y los nombres 4- Incrementa automáticamente IP en uno, para que apunte a la siguiente ins-
de los registros? Definiti- trucción.
vamente no. Lo importante
5- Vuelve al paso número 1.
es comprender la naturaleza
del proceso.  ¿Si necesita guardar en memoria un dato?

1- Se fija en DS para obtener el bloque correcto.

 ¿Si necesita llamar a un subprograma?

1- Antes de saltar hacia la dirección del subprograma, anota en la cima de la


pila la dirección a la que debe volver una vez terminada la rutina. Para sa-
ber dónde anotar se fija en SS + SP y le suma 1 a SP.

2- Escribe en IP la dirección donde se encuentra el subprograma.

3- El micro mira en CS + IP a dónde está la siguiente instrucción, y trae la


primera orden del subprograma.

ISSD – Fundamentos de Computadoras Clase 9 10


4- Ejecuta una a una las instrucciones del subprograma, hasta que encuentra
la orden de volver al programa principal.

5- Se fija en SS + SP a dónde debe volver (allí lo había anotado en el paso 1)


Le resta a SP 1, para que apunte al dato anterior de la pila.

6- Escribe en IP la dirección que recuperó de la pila.

7- Cuando mira en CS + IP a dónde está la siguiente instrucción del progra-


ma, se encuentra con la línea correspondiente del programa principal.

8- Continúa normalmente.

 ¿Si necesita apuntar a otra dirección de memoria?


ES + SI
1- Cada programa tiene a su disposición registros “generales” para el uso que ES + DI
desee. Para apuntar a segmentos (bloques) de memoria, puede usar ES Registros para uso general
(segmento extra), y para direcciones relativas tiene SI y DI.

 ¿Si necesita dejar un mensaje a la instrucción siguiente, como que ocurrió un ESTADO
error o un desborde? Para comunicar errores o
situaciones especiales.
1- Activa (coloca un 1) en el bit adecuado dentro del registro de estado o
banderas.

La arquitectura del 8088, su forma de trabajo y de manejo de memoria, son


válidos para toda la familia de procesadores de Intel hasta la actualidad. No es posi-
ble modificar esta estructura, pues se convertirían en procesadores incompatibles
que no podrían ejecutar programas antiguos.

Obviamente han existido innumerables mejoras de rendimiento y de estra-


tegias de funcionamiento. Siempre se ha tratado de mejoras sobre la estructura
original, agregados y parches, pero aún hoy seguiremos encontrando los registros
AX, BX, CX, SS, etcétera.

ISSD – Fundamentos de Computadoras Clase 9 11


ACTIVIDADES

Responde al siguiente cuestionario

1- Explica las principales diferencias entre las principales tecnologías de micropro-


cesadores.

2- ¿Cuáles son las diferencias entre el procesamiento secuencial y el procesamien-


to en Pipelines?

3- ¿Qué permite al procesador 8088 direccionar hasta 1 MB de memoria?

4- Explica cuáles son los principales registros del procesador 8088.

5- ¿En qué registro del microprocesador se guardan las direcciones de memoria en


las que se guardan los datos?

ISSD – Fundamentos de Computadoras Clase 9 12

También podría gustarte