Вы находитесь на странице: 1из 6

1

Facultad de Ingeniería - Ingeniería Biomédica


Arquitectura de Computadoras
Panamá, Panamá – Junio 26, 2018

ARQUITECTURA DEL PROCESADOR IA-32


Pérez, Gina A. Ceballos, Marvin H. Martínez, Karl J. Ávila, Christian R.


Abstract—In this chapter we will describe the architecture of II. DISEÑO BÁSICO DE UNA MICROCOMPUTADORA
the Intel IA-32 processor family and its host computational system,
from the programmer's point of view. This group includes all
Intel-compatible processors, such as AMD Athlon and Opteron. It
should be noted that the assembly language is an excellent tool to
learn the operation of a computer, for which it is necessary to have
a practical knowledge about computer hardware. For this
purpose, the concepts and details that we will see in this chapter
will help you understand the assembler language you write. To
avoid getting a superficial understanding of the architecture of a
machine, we will focus on the specific details about the IA-32
family, which will provide a solid basis for programming in
assembly language.
Se muestra el diseño básico de una microcomputadora
Index Terms—Assembler, Intel, processor, IA-32, assembly hipotética. La unidad central de procesamiento(CPU), en donde
language, programming, microcomputer, components. se realizan los cálculos y las operaciones lógicas, contiene un
número limitado de lugares de almacenamiento, conocidas
como registros; además contiene un reloj de alta frecuencia, una
I. INTRODUCTION unidad de control y una unidad aritmética-lógica.
• El reloj sincroniza las operaciones internas de la CPU con los
E n este capítulo describiremos la arquitectura de la familia
de los procesadores IA-32 de Intel y su sistema
computacional anfitrión, desde el punto de vista del
demás componentes del sistema.
• La unidad de control (CU) coordina la secuencia de los pasos
programador. En este grupo se incluyen todos los procesadores involucrados en la ejecución de instrucciones de máquina.
compatibles con Intel, como AMD Athlon y Opteron. Hay que • La unidad aritmética-lógica (ALU) realiza operaciones
destacar que el lenguaje ensamblador es una herramienta aritméticas como la suma y la resta, y operaciones lógicas como
excelente para aprender el funcionamiento de una computadora, AND, OR y NOT.
La CPU se une al resto de la computadora mediante terminales
para lo cual es necesario tener un conocimiento práctico acerca
que se conectan al zócalo de la CPU en la tarjeta madre de la
del hardware de computadora. Para este propósito, los
computadora. La mayoría de las terminales se conectan al bus
conceptos y detalles que veremos en este capítulo le ayudarán a
de datos, al bus de control y al bus de direcciones. La unidad de
comprender el lenguaje ensamblador que escriba. Para evitar almacenamiento de memoria es en donde se mantienen las
que obtenga una comprensión superficial de la arquitectura de instrucciones y los datos mientras se ejecuta un programa en la
una máquina, nos enfocaremos en los detalles específicos computadora.
acerca de la familia IA-32, que nos brindará una base sólida a
la hora de programar en lenguaje ensamblador.. Un bus es un grupo de cables en paralelo que transfieren datos
de una parte de la computadora a otra. Por lo general, el bus del
2

sistema de una computadora consiste en tres buses separados:


el bus de datos, el bus de control y el bus de direcciones. El bus La secuencia de pasos puede expresarse muy bien en
de datos transfiere instrucciones y datos entre la CPU y la seudocódigo:
memoria. El bus de control utiliza señales binarias para
sincronizar las acciones de todos los dispositivos conectados al  Iterar
bus del sistema. El bus de direcciones almacena las direcciones  Obtener la siguiente instrucción
de las instrucciones y los datos, cuando la instrucción actual que
 Avanzar el apuntador de instrucciones (IP)
está en ejecución transfiere datos entre la CPU y la memoria.
 Decodificar la instrucción
Reloj: Cada operación en la que intervienen la CPU y el bus del  Si se necesita un operando en memoria, leer el valor
sistema se sincroniza mediante un reloj interno que emite pulsos de la memoria
a una velocidad constante. Una instrucción de máquina  Ejecutar la instrucción
requiere, por lo menos, un ciclo de reloj para ejecutarse, y unas  Si el resultado es
cuantas instrucciones requieren más de 50 ciclos de reloj (por
ejemplo, la instrucción para multiplicar en el procesador 8088).
A menudo, las instrucciones que requieren acceso a la memoria
tienen ciclos de reloj vacíos, llamados estados de espera, debido
a las diferencias en las velocidades de la CPU, el bus del sistema
y los circuitos de memoria.

A. Ciclo de ejecución de instrucciones


La ejecución de una sola instrucción de máquina puede
dividirse en una secuencia de operaciones individuales,
conocidas como el ciclo de ejecución de instrucciones. El
apuntador de instrucciones contiene la dirección de la siguiente
instrucción. La cola de instrucciones guarda un grupo de
instrucciones que están a punto de ejecutarse. Para ejecutar una
instrucción de máquina se requieren tres pasos básicos:
búsqueda, decodificación y ejecución. Cuando la instrucción
B. Canalización de varias etapas
utiliza un operando en memoria, se requieren dos pasos más:
búsqueda de operan dos y almacenamiento del operando del Cada paso en el ciclo de instrucciones requiere cuando menos
resultado. A continuación, se describe cada uno de estos pasos: un pulso del reloj del sistema, a lo cual se le conoce como ciclo
de reloj. El procesador no tiene que esperar hasta que se
completen todos los pasos antes de empezar la siguiente
• Búsqueda: la unidad de control busca la instrucción en la instrucción, sino que puede ejecutar pasos en paralelo, con una
cola de instrucciones e incrementa el apuntador de técnica conocida como canalización.
instrucciones (IP). A este apuntador también se le conoce como
el contador del programa. Arquitectura superescalar
• Decodificación: la unidad de control decodifica la función Un procesador superescalar, o multinúcleo tiene dos o más
de la instrucción para determinar lo que ésta debe hacer. Los canalizaciones de ejecución, lo cual hace posible que haya dos
operan dos de entrada de la instrucción se pasan a la unidad instrucciones en la etapa de ejecución al mismo tiempo. El
aritmética-lógica (ALU), y se envían señales a la ALU para Pentium de Intel, con dos canalizaciones, fue el primer
indicar la operación que se va a realizar. procesador superescalar en la familia IA-32. El procesador
• Búsqueda de operan dos: si la instrucción utiliza un Pentium Pro fue el primero en usar tres canalizaciones.
operando de entrada ubicado en memoria, la unidad de control
utiliza una operación de lectura para obtener el operando y
copiarlo en los registros internos. Estos registros no son visibles Lectura de Memoria
para los programas de los usuarios. A menudo, el rendimiento de un programa depende de la
• Ejecución: la ALU ejecuta la instrucción, utilizando los velocidad del acceso a la memoria. La velocidad de acceso a la
registros con nombre y los registros internos como operan dos, CPU podría ser de varios gigahertz, mientras que el acceso a la
y envía el resultado a los registros con nombre y a la memoria. memoria se realiza a través de un bus del sistema que se ejecuta
La ALU actualiza las banderas de estado que proporcionan con una lentitud de 33 MHz. La CPU se ve obligada a esperar
información acerca del estado del procesador. uno o más ciclos de reloj hasta que se buscan y se obtienen los
• Almacenamiento del operando del resultado: si el operando operandos de la memoria para poder ejecutar las instrucciones.
de resultante está en memoria, la unidad de control utiliza una Los ciclos de reloj desperdiciados se conocen como estados de
operación de escritura para almacenar el dato. espera.
3

que pertenecen al mismo proceso. Por ejemplo, los programas


La figura 2-7 muestra, las subidas y bajadas del reloj (CLK) de juegos a menudo utilizan hilos individuales para controlar en
del procesador, a intervalos de tiempo regulares. En la fi gura, forma simultánea varios objetos gráficos. Los exploradores
un ciclo de reloj empieza cuando la señal del reloj cambia de Web utilizan varios hilos para cargar en forma simultánea las
nivel alto a bajo. Los cambios se llaman orillas, e indican el imágenes de gráfi cos y responder a la entrada que proporciona.
tiempo que ocupa la transición entre los estados.

III. MODOS DE OPERACIÓN


Los procesadores IA-32 tienen tres modos principales de
C. How programs are executed operación:
Los siguientes pasos describen, en secuencia, lo que ocurre Modo protegido: es el estado nativo del procesador, en el que
cuando un usuario de computadora ejecuta un programa desde están disponibles todas las instrucciones y características. Los
la línea de comandos: programas reciben áreas separadas de memoria llamadas
• El sistema operativo (OS) busca el nombre de archivo del segmentos, y el procesador evita que los programas hagan
programa en el directorio del disco actual. SI no puede referencia a la memoria que se encuentra fuera de sus
encontrar el nombre ahí, lo busca en una lista predeterminada segmentos asignados.
de directorios (llamados trayectorias). Modo de direccionamiento real: Este modo implementa el
• Si encuentra el nombre del archivo, el OS obtiene la entorno de programación del procesador 8086 de Intel, con unas
información básica sobre el archivo del programa del directorio cuantas características adicionales, como la habilidad de
en el disco, incluyendo el tamaño del archivo y su ubicación cambiar a otros modos.
física en la unidad de disco. Modo de administración del sistema: (SMM) proporciona al
• El OS determina la siguiente ubicación disponible en sistema operativo un mecanismo para implementar funciones,
memoria y carga el archivo del programa. Asigna un bloque de como la administración de energía y la seguridad del sistema.
memoria al programa e ingresa información acerca del tamaño Por lo general, estas funciones las implementan los fabricantes
y la ubicación del programa en una tabla. de computadoras, quienes personalizan el procesador para una
• El OS ejecuta una instrucción de salto que hace que la CPU configuración específica del sistema.
empiece la ejecución de la primera instrucción de máquina del
programa. Al momento en que el programa empieza a
A. Entorno básico de ejecución
ejecutarse, se le denomina proceso. El OS asigna un número de
identificación al proceso (ID del proceso), el cual se utiliza para
llevar el registro del proceso mientras se ejecuta. Espacio de direcciones
• El proceso se ejecuta por sí solo. Es función del OS registrar Los procesadores IA-32 pueden acceder a 4 GB de memoria en
la ejecución del proceso y responder a las solicitudes de modo protegido; este límite se basa en el tamaño de una
recursos del sistema. Algunos ejemplos de recursos son: dirección representada por un número entero binario sin signo,
memoria, archivos en disco y dispositivos de entrada-salida. de 32 bits. Los programas en modo de direccionamiento real
• Cuando termina el proceso, se elimina su manejador y la tienen un rango de memoria de 1 MB. Si el procesador se
memoria que utilizó se libera para que otros programas puedan encuentra en modo protegido y ejecuta varios programas en
utilizarla. modo 8086 virtual, cada programa tiene su propia área de
memoria de 1 MB.

Multitarea
Un sistema operativo multitarea puede ejecutar varias tareas Registros básicos de ejecución de un programa
al mismo tiempo. Una tarea se define ya sea como un programa Los registros son ubicaciones de almacenamiento de alta
(un proceso) o un hilo (subproceso) de ejecución. Un proceso velocidad, que se encuentran directamente dentro de la CPU, y
tiene su propia área de memoria y puede contener varios hilos están diseñados para una velocidad de acceso mucho mayor que
(o subprocesos). Un hilo comparte su memoria con otros hilos la de la memoria convencional. Por ejemplo, cuando se
optimiza un ciclo de procesamiento en base a la velocidad, los
4

contadores del ciclo se guardan en registros, en vez de variables. Controlan la operación de la CPU. Por ejemplo, pueden hacer
La fi gura 2-9 muestra los registros básicos de ejecución de un que la CPU salga de un ciclo después de ejecutar cada
programa. instrucción, generar una interrupción cuando se detecta un
desbordamiento aritmético, entrar al modo 8086 virtual y entrar
al modo protegido.
• La bandera Acarreo (CF) se activa cuando el resultado de
una operación aritmética sin signo es demasiado grande para
caber en el destino.
• La bandera Desbordamiento (OF) se activa cuando el
resultado de una operación aritmética con signo es demasiado
grande o pequeño para caber en el destino.
• La bandera Signo (SF) se activa cuando el resultado de una
operación aritmética o lógica genera un resultado negativo.
• La bandera Cero (ZF) se activa cuando el resultado de una
operación aritmética o lógica genera un resultado de cero.
• La bandera Acarreo auxiliar (AC) se activa cuando una
operación aritmética produce un acarreo del bit 3 al bit 4, en un
IV. UNITS operando de 8 bits.
• La bandera Paridad (PF) se activa si el byte menos
Registros de propósito general
Los registros de propósito general se utilizan principalmente significativo en el resultado contiene un número par de bits que
para las operaciones aritméticas y el movimiento de datos. sean 1.
Como se muestra en la siguiente fi gura, cada registro puede
direccionarse como un valor individual de 32 bits, o como dos Registros del sistema
valores de 16 bits. Los procesadores IA-32 tienen una variedad de registros
Algunos registros de propósito general tienen usos importantes del sistema
especializados: • IDTR (Registro de tabla de descriptores de interrupciones):
• EAX es el registro que utilizan de manera automática las dirección de la Tabla de descriptores de interrupciones, la cual
instrucciones de multiplicación y división. proporciona los medios para manejar las interrupciones (rutinas
• La CPU utiliza de manera automática a ECX como su del sistema).
contador de ciclo. • GDTR (Registro de tabla de descriptores globales):
• ESP direcciona datos en la pila (una estructura de memoria dirección de la Tabla de descriptores globales, una tabla que
del sistema). contiene apuntadores a los segmentos de estado de las tareas y
• ESI y EDI son los registros que utilizan las instrucciones de tablas de descriptores locales de los programas.
transferencia de memoria de alta velocidad. • LDTR (Registro de tabla de descriptores locales):
• EBP es el registro que utilizan los lenguajes de alto nivel apuntadores al código, los datos y la pila de los programas que
para hacer referencia a los parámetros de funciones y las se están ejecutando en un momento dado.
variables locales en la pila. • Registro de tareas: dirección del TSS (Segmento de estado
de tarea) para la tarea que se está ejecutando en un momento
dado.
Registros de segmento
Los registros de segmento indican las direcciones base de las • Registros de depuración: permiten que los programas
áreas preasignadas de memoria, conocidas como segmentos, establezcan puntos de interrupción al momento de depurar los
guardan instrucciones de un programa (código), otros guardan programas.
variables (datos), y otro segmento llamado segmento de pila • Registros de control CR0, CR2, CR3, CR4: contienen
guarda las variables de funciones locales y los parámetros de banderas de estado y campos de datos que controlan las
funciones. operaciones a nivel del sistema, como la conmutación, la
Apuntador de instrucciones paginación y la habilitación de la memoria caché (el registro
El registro EIP, o apuntador de instrucciones, contiene la CR1 no se utiliza).
dirección de la siguiente instrucción a ejecutar. Ciertas
instrucciones de máquina manipulan a EIP, para que el B. Unidad de punto flotante
programa se bifurque hacia una nueva ubicación. La unidad de punto flotante (FPU) de los procesadores IA-32
Registro EFLAGS realiza operaciones aritméticas de punto flotante, de alta
Bits binarios individuales que controlan la operación de la velocidad.
CPU, o que reflejan el resultado de alguna operación de la CPU.
Algunas instrucciones evalúan y manipulan las banderas
individuales del procesador.
Banderas de control
5

V. ADMINISTRACIÓN DE MEMORIA DEL


PROCESADOR IA-32 A. Controladores de dispositivos
¿Qué ocurre si se instala un nuevo dispositivo en la
Este se divide en dos, protegido y tiempo real. El modo computadora, que el BIOS desconozca? Cuando se inicia el
protegido es el más simple y poderoso; los demás se utilizan, sistema operativo, carga un programa controlador de
por lo general, cuando los programas deben acceder dispositivos que contiene funciones para comunicarse con el
directamente al hardware del sistema. En el modo de dispositivo. Un controlador de dispositivos funciona de forma
direccionamiento real sólo puede direccionarse 1MB de muy parecida al BIOS, pues proporciona funciones de entrada-
memoria, del 00000 al FFFFF hexadecimal. El procesador sólo
salida adaptadas a un dispositivo específico, o familia de
puede ejecutar un programa a la vez, pero puede interrumpir en dispositivos. Un ejemplo de ello es CDROM.SYS, que permite
forma momentánea ese programa para procesar las solicitudes a MS-DOS leer unidades de CD-ROM.
de los periféricos. Los programas de aplicación pueden leer y
modificar cualquier área de la RAM pueden leer pero no B. Programación en varios niveles
modificar cualquier área de la ROM.
Los programas en lenguaje ensamblador tienen poder y
A. En el modo protegido: el procesador puede ejecutar varios flexibilidad en el área de la programación de las operaciones de
programas al mismo tiempo. A cada proceso le asigna un total entrada-salida.
de 4GB de memoria. A cada programa se le puede asignar su
propia área reservada de memoria, y los programas no pueden VI. COMPONENTES DE UNA MICROCOMPUTADORA
acceder de manera accidental al código y los datos de los demás IA-32
programas. Este a su vez se divide en:
A primera vista, podemos ver el hardware (las partes físicas de
B. Modelo de segmentación plano: En este modelo, todos los la computadora) desde un macro nivel, analizando, los
segmentos se asignan al espacio completo de direcciones físicas periféricos. Después podemos ver los detalles internos del
de 32 bits de la computadora. Se requieren por lo menos dos procesador Intel, conocido como unidad central de
segmentos, uno para código y uno para datos. procesamiento (CPU). Por último vamos a ver la arquitectura
de software, que es la forma en que está organizada la memoria,
C. Modelo de varios segmento: En el modelo multisegmentos, y cómo interactúa el sistema operativo con el hardware.
cada tarea o programa recibe su propia tabla de descriptores de
segmento, conocida como tabla de descriptores locales (LDT). A. Tarjeta madre
Cada descriptor apunta a un segmento, que puede ser distinto El corazón de una microcomputadora es su tarjeta madre,
de los demás segmentos utilizados por otros procesos. un tablero de circuitos plano en el que se colocan la CPU
de la computadora, los procesadores de soporte (juego de
Sistema de entrada/salida chips), la memoria principal, los conectores de entrada-
¿Cómo funciona todo? Los programas de aplicación leen, de salida, los conectores de la fuente de alimentación, y las
manera rutinaria, la entrada que se recibe del teclado y de los ranuras de expansión.
archivos en disco, y escriben la salida en la pantalla y en
archivos. Las operaciones de E/S no se realizan mediante el B. Arquitecturas de los buses PCI y PCI Express
acceso directo al hardware, sino que podemos llamar a las a. El bus PCI (Interconexión de componentes
funciones que proporciona el sistema operativo. Hay periféricos) proporciona un puente de
operaciones de E/S disponibles en distintos niveles de acceso. conexión entre la CPU y otros dispositivos
del sistema, como discos duros, memoria,
• Funciones de lenguaje de alto nivel (HLL) controladores de video, tarjetas de sonido y
• Sistema operativo controladores de red.
• BIOS
b. Juego de chips de la tarjeta madre
c. La mayoría de las tarjetas madre contienen un
conjunto integrado de microprocesadores y
6

controladores, al cual se le conoce como Un sistema operativo multitareas puede ejecutar varias tareas
juego de chips (chipset). El juego de chips al mismo tiempo. Se ejecuta en un procesador que soporta la
determina en gran parte las capacidades de la conmutación de tareas, la habilidad de guardar el estado de la
computadora. tarea actual y transferir el control a una tarea distinta.
d. Salida de video Los procesadores IA-32 tienen tres modos básicos de
operación: modo protegido, modo de direccionamiento real y
e. El adaptador de video controla la modo de administración del sistema. Además, el modo 8086
visualización de texto y gráficos en virtual es un caso especial del modo protegido. Los registros
computadoras compatibles. Tiene dos son ubicaciones con nombre dentro de la CPU, a las que se
componentes: el controlador de video y la puede acceder con mucha mayor rapidez que la memoria
memoria de visualización de video. Todos los
convencional.
gráficos y el texto que se muestran en el
Los primeros procesadores Intel para la computadora
monitor se escriben en la RAM de
personal IBM se basaban en el enfoque del conjunto complejo
visualización de video, para después
enviarlos al monitor mediante el controlador de instrucciones (CISC). El conjunto de instrucciones Intel
de video incluye poderosas formas de direccionar datos e instrucciones,
que son relativamente operaciones complejas de alto nivel. Un
f. Un monitor de pantalla de cristal líquido enfoque completamente distinto para el diseño de
(LCD) digital directo recibe un flujo de bits microprocesadores es el conjunto reducido de instrucciones
digitales directamente desde el controlador (RISC). Un lenguaje máquina RISC consiste en un número muy
de video, muestran un texto más fi no que las pequeño de instrucciones cortas y simples, que el procesador
pantallas analógicas. pueda ejecutar con rapidez.
g. Memoria Las operaciones de entrada-salida se realizan a través de
distintos niveles de acceso, de manera similar al concepto de
En los sistemas basados en Intel se utilizan varios tipos de
máquina virtual. El sistema operativo se encuentra en el nivel
memoria: memoria de sólo lectura (ROM), memoria de sólo
lectura programable y borrable (EPROM), memoria dinámica más alto. El BIOS (Sistema básico de entrada-salida) es una
de acceso aleatorio (DRAM), RAM estática (SRAM), RAM de colección de funciones que se comunican directamente con los
video (VRAM) y RAM de metal-óxido semiconductor dispositivos de hardware. Los programas también pueden
complementario (CMOS)Puertos de entrada/salida e interfaces acceder en forma directa a los dispositivos de entrada-salida.
de dispositivos Bus serial universal (USB).
El puerto del Bus serial universal proporciona una conexión REFERENCES
inteligente de alta velocidad entre una computadora y los
[1] IRVINE, KIP R., “Arquitectura del Procesador IA-32,” en Lenguaje
dispositivos con soporte USB. Puede conectar unidades de una ensamblador para computadoras basadas en Intel, quinta ed.Florida
sola función (ratones, impresoras) o dispositivos compuestos International University School of Computing and Information Sciences.
con más de un periférico, que comparten el mismo puerto.

VI. CONCLUSION
La unidad central de procesamiento (CPU) es en donde se
realizan los cálculos y el procesamiento lógico. Contiene un
número limitado de ubicaciones de almacenamiento llamadas
registros, un reloj de alta frecuencia para sincronizar sus
operaciones, una unidad de control, y la unidad aritmética-
lógica.
La unidad de almacenamiento de memoria es en donde se
guardan las instrucciones y los datos, mientras se ejecuta un
programa de computadora. Un bus es una serie de alambres
paralelos que transmiten datos entre las diversas partes de la
computadora. La ejecución de una sola instrucción de máquina
puede dividirse en una secuencia de operaciones individuales,
conocidas como ciclo de ejecución de instrucciones. Las tres
operaciones primarias son: búsqueda, decodificación y
ejecución.
Un procesador superescalar es un procesador canalizado con
varias canalizaciones de ejecución. Dicho procesador es muy
útil cuando una de las etapas de ejecución requiere varios ciclos
de reloj.

Вам также может понравиться