You are on page 1of 253

Arquitectura de

Computadoras

Evolucin de micros y PC
Arquitecturas de micros y PC
Registros y direccionamiento
Instrucciones
I t i
Arquitectura de PC
Evolucin de la Computadora

3000
AC

Babilonia
China, Japn???
Arquitectura de PC
Evolucin de la Computadora
Generacin cero: Computadoras mecnicas (1642 - 1945)

Blaise Pascal ((1642-Francia)) ~19 aos

mquina calculadora
mquina calculadora : sumar y restar Sumar, restar,
multiplicacin y divisin
Barn Gottfried Wilhem von Leibniz ((1673-Alemania))
Crea una mquina que permita sumar, restar, multiplicar y dividir.
Arquitectura de PC
Evolucin de la Computadora
Generacin cero: Computadoras mecnicas (1642 - 1945)

Telar de Joseph Marie Jacquard (1801-Francia):


Primer uso de las tarjetas perforadas para
almacenamiento de informacin binaria, en
este caso de patrones de tejidos.
tejidos

Precursores (Francia): Basile Bouchon (1725),


Jean-Baptiste Falcon (1728) y Jacques Vaucanson (1740)
Arquitectura de PC
Evolucin de la Computadora

Ada Lovelace
Charles Babbage (1792-1871, Cambridge)
150 aos depus:
Crea su maquina de Diferencias 1822

Despus crea la mquina analtica


(1834) capaz de ejecutar diferentes
algoritmos
l i mediante
di ell uso de d
tarjetas perforadas de cobre a la
entrada y salida.

sta fue la primera mquina


programable.
Arquitectura de PC
Evolucin de la Computadora
Generacin cero: Computadoras mecnicas (1642 - 1945)

George Boole (1815-1864, Inglaterra):

Crea en 1854 el algebra de Bool

Alan Mathison Turing (1912 1954, Inglaterre):


Crea 1937 la teora de computabilidad en la que se describen problemas
que no tienen solucin algortmica (mquina de Turing concepto de
Mquina con memoria infinita basada en una cinta infinita de smbolos).
Arquitectura de PC
Evolucin de la Computadora
Generacin cero: Computadoras mecnicas (1642 - 1945)
Konrad Zuse (Berln-1944)
Utiliz relevadores para construir
mquinas calculadoras. estas fueron las
primeras mquinas en utilizar relevadores
(rels -lgica digital) a nivel mundial

John Atanasoff y George Stibbitz

Di
Disearon mquinas
i calculadoras
l l d utilizando
tili d
aritmtica binaria. Atanasoff ide una
memoria de condensadores las cuales se
renovaban pperidicamente p para evitar qque se
perdiera la carga, a lo que llam
refrescamiento. Los chips actuales de memoria
dinmica (RAM) funcionan de esta manera.
Arquitectura de PC
Evolucin de la Computadora
Generacin cero: Computadoras mecnicas (1642 - 1945)
Howard Aiken & Grace Hopper
Construy el Mark I (IBM) en 1944 en Hardvard (mquina de
relevadores). Para cuando termin de construir su Mark II ya era
obsoleta la tecnologa de relevadores.
Arquitectura de PC
Evolucin de la Computadora
Generacin cero : Computadoras mecnicas (1642 - 1945)

Avances Relevantes de la poca:

-Primera mquina de cmputo.


-Primera mquina capaz de ejecutar diferentes algoritmos y
primer programador del mundo.
-Uso de relevadores en computadores (lgica digital).
C i de
-Concepcin d la
l memoria
i dinmica
di i
Algebra de Bool , aritmtica binaria y mquina de cmputo de
Turing.
Arquitectura de PC
Evolucin de la Computadora
1 generacin : Bulbos (1945 - 1955)

ENIGMA (1932) COLOSSUS (1943)


maquina alemana utilizada para la fue la respuesta de los ingleses
codificacin de mensajes durante ante la necesidad de descifrar los
la segunda guerra mundial. mensajes alemanes.

John Mauchley y J. Presper Eckert


construyeron la ENIAC (Electronic Numerical
I t
Integrator
t A d Computer)
And C t ) en 1946 para ell
clculo de las tablas de alcance de sus
misiles. este trabajo permiti que se divulgara
g
este avance logrando despertar
p el inters el los
computadores electrnicos. Luego crearon una
compaa que despus se convertira en Unisys
Corporation.
Arquitectura de PC
Evolucin de la Computadora
1 generacin : Bulbos (1945 - 1955)

John von Neumann (Hungra-USA)

Construy su versin del ENIAC basado en un nuevo modelo al cual


denomin "mquina IAS. Neumann se percat que el programa poda
ser almacenado en la memoria del computador y que la aritmtica
binaria resultaba ser mejor que la decimal
La primera mquina construida con el modelo
descrito por Neumann se llam EDSAC
(Electronic Delay Storage Automatic
Calculator) desarrollada por Maurice
Wilkes y sus colegas de Cambridge
(Inglaterra) se complet en Junio de 1949 y
(Inglaterra),
fue la primera computadora que almacenaba
programas.
IAS: Institute for Advanced Study
Arquitectura de PC
Evolucin de la Computadora
1 generacin : Bulbos (1945 - 1955)

Mquina
q de Von Neumann
Arquitectura de PC
Evolucin de la Computadora
1 generacin : Bulbos (1945 - 1955)

Avances de la poca:

-Primera mquina en utilizar Bulbos, componentes capaces de


producir comportamientos
p p digitales.
g
-Creacin del modelo de von Neumann en la que se describen
cinco componentes principales del computador. El modelo de
von Neumann defina el primer computador que almacenaba un
programa.
-Primeras computadoras comerciales de aplicaciones
cientficas de la empresa IBM (709), que hasta entonces venda
mquinas
i industriales
i d t i l y tarjetas
t j t perforadas.
f d
Arquitectura de PC
Evolucin de la Computadora
2 generacin : Transistores (1955 - 1965)

John Bardeen, Walter Brattain y William Schockley

Inventaron el transistor para los


Laboratorios Bell (USA) en 1948
Premio Nobel de fisica de 1956.

MIT
Desarrollaron la primera computadora de
transistores y se llamo TX-0 (computadora
Transistorizada eXperimental 0).
Arquitectura de PC
Evolucin de la Computadora
2 generacin : Transistores (1955 - 1965)

Kenneth Olsen (USA)

form una compaa denominada DEC (Digital Equipment Corporation)


en donde cre la PDP-1 en 1961 con un gran xito de mercado.

En el MIT se crea unos de los primeros juegos de computadoras del


mundo para la PDP-1.

Cuatro aos despus DEC introdujo al mercado la PDP-8, PDP-8 este


computador tena una innovacin importante: un bus nico
(conformado por un conjunto de alambres en paralelo que conectaba a
todos los componentes de la computadora).
Esta arquitectura marc una diferencia importante respecto de la
mquina de von Neumann centrada en la memoria; en la actualidad
todas las computadoras utilizan esta arquitectura.
Arquitectura de PC
Evolucin de la Computadora
2 generacin : Transistores (1955 - 1965)

Kenneth Olsen
Arquitectura de PC
Evolucin de la Computadora
2 generacin : Transistores (1955 - 1965)

Arquitectura orientada a memoria Arquitectura orientada a bus


Arquitectura de PC
Evolucin de la Computadora
2 generacin : Transistores (1955 - 1965)

IBM
Introduce al mercado dos modelos de computadoras transistorizadas, la
7090 (especficamente para uso cientfico) y la IBM 1401 (de uso
comercial pero muy verstil).

Control Data Corporation (CDC)

En 1964, se introdujo al mercado una computadora


muy avanzadad para la
l poca
d
denominada
i d 6600,
6600 con
un alto grado de paralelismo que obtuvo un
xito rotundo de inmediato en el rea cientfica. El
diseador de esta computadora
p fue Seymour
y Cray
y
padre de las supercomputadores.
Arquitectura de PC
Evolucin de la Computadora
2 generacin : Transistores (1955 - 1965)

Avances Relevantes de la poca:

-Invencin del transistor.


-La
a DEC modifica
od a el modelo
od o d de Von
o Neumann
u a creandoa do u
un bu
bus
nico
o
para comunicar a todos los dispositivos entre s.
-Surgimiento de las primeras computadoras con un alto grado de
paralelismo, precursoras de las supercomputadores.
Arquitectura de PC
Evolucin de la Computadora
3 generacin : Circuitos integrados (1965-1980)

Jack Kilby (Texas Instruments-USA)


Esta poca inicia en 1958 con la invencin de los circuitos integrados. En
1959, Robert Noyce refina el proceso de integracin haciendo posible
su utilizacin. Esta innovacin hizo posible crear computadoras ms
pequeas rpidas y flexibles reduciendo de forma importante los costos
pequeas,
Arquitectura de PC
Evolucin de la Computadora
3 generacin : Circuitos integrados (1965-1980)

IBM
Se desarrollo la System/360, la cual era la primera familia de
computadoras con diferentes en tamaos y potencia, pero que eran
compatibles entre si y posean un lenguaje ensamblador comn.
Otro avance importante de esta familia de computadoras fue la
multiprogramacin, que consiste en la capacidad de tener varios
programas en la memoria en ejecucin a la vez.

Entre
E t otras
t i
innovaciones
i estaban:
t b
Capacidad de emular a sus predecesores.
Mayor espacio de direccionamiento de memoria.
j los registros
Introdujo g orientados hacia p
palabras de 32 bits y la
memoria orientada a bytes.
Hoy en da aun se usan todas estas caractersticas en las PCs.
Arquitectura de PC
Evolucin de la Computadora
3 generacin : Circuitos integrados (1965-1980)

IBM System/360
Arquitectura de PC
Evolucin de la Computadora
3 generacin : Circuitos integrados (1965-1980)

(1968) Robert Noyce y Gordon Moore crean Intel


Corporation

(1969) Kenneth Thompson y Dennis Ritchie


crean el sistema operativo Unix y el Lenguaje
C(69-73), en los laboratorios AT&T .
Arquitectura de PC
E l i del
Evolucin d l Unix
U i
Arquitectura de PC
Evolucin de la Computadora
3 generacin : Circuitos integrados (1965-1980)

Avances Relevantes de la poca


p

-Invencin del circuito integrado.


-Surgen las primeras computadoras multitareas, capaces de
ejecutar varios programas de forma secuencial, todos compartiendo
la memoria.
-Capacidad de emulacin de otras arquitecturas.
-Mayor direccionamiento de memoria.
-Se orientan los registros a palabras mientras que la memoria
principal se ordena por bytes.
Arquitectura de PC
Evolucin de la Computadora
4 generacin : Integracin a muy grande escala (1980 - Hoy)

Para los aos ochenta la VLSI (integracin a muy grande escala, Very
L
Large S l off Integration)
Scale I t ti ) haba
h b hecho
h h posible
ibl colocar
l millones
ill d
de
transistores en un solo chip, dando origen a computadoras pequeas y
mas rapidas.

En esta poca se popularizo la computadora personal (PC de IBM),


inicialmente se vendieron paquetes con los componentes bsicos para
que el usuario construyera el equipo; pero no existan programas
comerciales ni sistemas operativos para estas computadoras.
computadoras
Arquitectura de PC
Evolucin de la Computadora
4 generacin : Integracin a muy grande escala (1980 - Hoy)

En esta epoca surgen las primeras computadoras Apple diseadas por


St
Steve J b y Steve
Jobs St W
Wozniak
i k en 1976 con sistemas
i t operativos
ti y
aplicaciones muy amigables.
Arquitectura de PC
Evolucin de la Computadora
4 generacin : Integracin a muy grande escala (1980 - Hoy)

En 1981 IBM entro a competir en el rea de las computadoras


personales con la IBM Personal Computer-PC, construida con
componentes comerciales fciles de conseguir para el momento,
incluyendo como procesador el 8080 de Intel
Arquitectura de PC
Evolucin de la Computadora
4 generacin : Integracin a muy grande escala (1980 - Hoy)
Microsoft (1975-Bill Gates y Paul Allen) crea el
sistema operativo de la IBM Personal Computer al
que denomino MS/DOS y despus dise el
Windows.
Arquitectura de PC
Evolucin de la Computadora
4 generacin : Integracin a muy grande escala (1980 - Hoy)

Avances Relevantes de la poca

-Se desarrolla la tecnologa VLSI.


-Se popularizan las computadoras personales (IBM, Apple).
-Cobra importancia el software, surgimiento de Microsoft.
-En 1982 Feynmann propone la mecnica cuntica como
herramienta de computacin.

Otras referencias de la historia de los computadores:


http://www.dma.eui.upm.es/historia_informatica/Flash/principal.htm
http://www.dma.eui.upm.es/historia informatica/Flash/principal.htm
http://www.computerhistory.org/
http://www.intel.com/content/www/us/en/history/historic-timeline.html
http://www.howstuffworks.com/microprocessor.htm
Arquitectura de PC
Arquitectura de la PC y de su CPU
Definiciones de Computador Digital
Cualquier dispositivo capaz de procesar informacin para
producir un resultado deseado.
deseado Sin importar cuan grande o pequeas
sean, tpicamente las computadoras realizan su trabajo en tres pasos
bien definidos: (1) aceptar una entrada, (2) procesar esta entrada de
acuerdo a reglas predefinidas (o programas), y (3) producir una salida.

Mquina electrnica, analgica o digital, dotada de una memoria


de gran capacidad y de mtodos de tratamiento de la
informacin, capaz de resolver problemas matemticos y lgicos
mediante la utilizacin automtica de programas informticos.
Arquitectura de PC
Arquitectura de la PC y de su CPU
Definiciones de Computador Digital
Es una mquina que usa informacin, llamada entradas, y la procesa
mediante un conjunto de instrucciones denominado programa de
aplicacin. Dadas las entradas y las instrucciones la computadora produce
y devuelve el resultado, a estos resultados se les denomina salida.

Los computadores son mquinas de procesamiento de la informacin. Se


utilizan para acceder y cambiar la informacin como nmeros,
nmeros texto
imgenes y msica.
Arquitectura de PC
Arquitectura de la PC y de su CPU
Computador Digital
Es un sistema electrnico de operacin digital compuesto por
procesadores, memorias y dispositivos de entrada/salida todos
interconectados mediante un bus comn (coleccin de cables en paralelo
que transmiten direcciones, datos y seales de control) para procesar
datos (informacin) segn diferentes tipos de algoritmos.
S sistemas
Son i t para ell procesamiento
i t ded datos
d t ded propsito
it general,l que
opera con lgica secuencial.
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura de Computadores
Se dedica a estudiar el diseo de los computadores, en especial lo
referente a las partes visibles a los programadores y usuarios.
usuarios Las
partes visibles de un sistema de computadora son los dispositivos de
Entrada y Salida, la Memoria, el CPU (instrucciones y tipos de datos) y los
Canales o Buses

CPU Mem

Buses

E/S
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : Buses
Los sistemas modernos de computadora presentan una arquitectura
orientada a buses. Los buses pueden
p definirse como conjuntos
j de
conexiones paralelas entre los diferentes componentes que conforman el
computador y funcionan como los mecanismos de comunicacin entre
los componentes de un computador.
Microcontroladores
Arquitectura de la PC y de su CPU
Arquitectura : Buses
Los principales buses que contienen los computadores son:

El bus o canal de direcciones: que permite al microprocesador especificar


direcciones de memoria o del espacio de entrada/salida, para la lectura o
escritura de la informacin.
El bus o canal de datos: transfiere datos entre el microprocesador, la
memoria y/o los dispositivos de entrada/salida.
El bus o canal de control: suministra las seales de control requeridas
para coordinar la comunicacin entre el microprocesador y el resto del
sistema
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : Buses
El ancho del canal de datos influye en la cantidad de datos que
pueden transferirse entre la memoria y el microprocesador,
microprocesador mientras
que el canal de direcciones determina la cantidad de memoria que
puede ser direccionada por el microprocesador.
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : Buses

Hoy en da, los microprocesadores Intel poseen dos grupos de buses,


uno frontal para la memoria y los dispositivos que transfieren ms
datos (como las tarjetas de video AGP y el bus PCI) y otro para los
dispositivos de entrada y salida (E/S) ms lentos.
lentos Al bus de la
memoria se le denomina NorthBridge y al bus de los dispositivos de
E/S se le denomina SouthBridge.
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : Buses

El bus SouthBridge
esta conectado al
sistema a travs del
bus PCI.
En el bus PCI
normalmente se
conectan dispositivos
como las tarjetas de
sonido, los puertos
paralelos, seriales y
usb,
b los
l di
discos d
duros,
etc.
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : Buses

Intel Celeron Mobile


Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : CPU
Representan el cerebro de los sistemas de computo
modernos y su funcin bsica es la de ejecutar
j los
programas almacenados en la memoria principal
coordinando todas las actividades del sistema de
computacin para procesar la informacin.
Los pasos bsicos seguidos por las CPU para la ejecucin de un
programa son:

Buscar las instrucciones en la memoria a travs de


direcciones predefinidas
Examinar y preprocesar estas instrucciones
Ejecutar una instruccin tras otra
Almacenar los resultados de vuelta en la memoria
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : CPU
La CPU se compone de cuatro partes fundamentales: la unidad de
control la unidad aritmtica lgica,
control, lgica los registros y el bus de conexin.
conexin
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : CPU
En la actualidad los microprocesadores poseen muchos ms
componentes que permiten realizar las mismas funciones con mayor
rapidez y un alto grado de paralelismo.
Arquitectura de PC
Arquitectura de la PC y de su CPU
Arquitectura : CPU
Funciones principales de los componentes principales de la CPU:
La unidad de control: que se encarga de buscar las
instrucciones en la memoria principal y determinar su tipo.
La unidad aritmtica lgica: que como bien lo indica su
nombre,
b esta
t a cargo d
de todas
t d llas operaciones
i aritmticas
it ti
y lgicas necesarias en la ejecucin de ciertas instrucciones.
Los registros: son memorias pequeas y de alta
velocidad que sirven para almacenar los operandos y
resultados de las operaciones realizadas por las diferentes
unidades de procesamiento de los CPU.
El bus: es el componente interno de la CPU encargado de
transmitir los datos, direcciones y seales de control, entre las
diferentes unidades del CPU.
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 4 bits

1971
4K

Palabra: 4-bits

45 instrucciones, 2300 Tx
108KHz
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 4 bits
Este microprocesador surge como una solucin a un
problema de diseo q
p que pplanteo una compaa
p jjaponesa
p
llamada Busicom en 1969 para la creacin de una
maquina calculadora basada en chips que cost
60,000$.
Intel Ted Hoff al examinar las
El ingeniero a cargo de este proyecto en Intel,
exigencias se percato de que era posible utilizar, en lugar de un
conjunto de chips, un microprocesador de 4 bits de propsito
general q
g que hara el mismo trabajo
j q
que el conjunto
j de chips
p ppropuesto
p
por Busicom. Estos eventos dieron origen al primer microprocesador
del mundo.

http://itibonzi.blogspot.com/2011/11/40-anos-del-primer-microprocesador.html
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 8 bits

1972

8008 48 instrucciones
3500 Tx, 200KHz

4K 16K 1974: 8080 10X


ms rpido, TTL
6000Tx y 2MHz
Palabra: 8-bits
1 K = 1024 direcciones
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 8 bits
1976

8085

El 8085 era mas rpido que el 8080 y adems incorporaba un


generador de reloj y el controlador del sistema
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 16 bits
1978

La evolucin a 16bits fue


8086
impulsada por la necesidad
de direccionar ms
memoria y por las
necesidades de incorporar
capacidades de
multiplicacin
l i li i y divisin
di i i
Poseen una capacidad para direccionar una
5-10 MHz 1000K=1MB memoria de 1MB lo que es lo mismo que
Tx 29000 512K palabras
l b (
(una palabra
l b ti
tiene 16
3 micrometro bits)
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 16 bits

Con el 8086 se introduce el manejo j


de la memoria por medio de
segmentos, a esto se le llamo
segmentacin de memoria. Estos
microprocesadores utilizan un registro
de 16 bits (palabra) capaz de
acceder a un segmento de memoria
de 64 K
Arquitectura de PC
Evolucin de los microprocesadores
Tx
T 134000
Microprocesador de 16 bits 1 micrometro
El 80286 (1982)
80186 representaba una mejora
real sobre la arquitectura
de 16 bits preexistente

Posea
P capacidad
id d para direccionar
di i una
mayor cantidad de memoria 16 MB
El 80186 fue utilizado (mediante 24 bits en el bus de direcciones)
mayoritariamente en y yya trabajaba
j a 16 MHz.
aplicaciones de control Incluy un nuevo modo de operacin, el
o como controlador de modo protegido introdujo mejor
dispositivos en las seguridad
g y pproteccin del sistema de
t j t
tarjetas madres
d o memoria, y el manejo de memoria
tarjetas de propsito virtual para el intercambio de segmentos
especifico de memoria
Arquitectura de PC
Evolucin de los microprocesadores
Tx 1200000
Microprocesador de 32 bits 1 micrometro

Tx 275000
1 5 micrometro
1.5

El 80386 fue el primero El 80486 (1989) tenia el doble de


en salir (1985) al la velocidad de reloj (66 MHz) que
mercado con una d
su predecesor y exista
i t una versin
i
velocidad de reloj de 33 que adicionalmente incorpora un
MHz y una capacidad coprocesador aritmtico (versin
de direccionamiento de 80486DX)) y una memoria cach
memoria de 4 GB de 8 KB en el chip
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits
En el 80386 se introdujo la paginacin como una herramienta
adicional para la administracin
de memoria en el modelo de
memoria segmentada y es el primer microprocesador en incorporar
etapas paralelas en procesamiento (lo que se conoce como
paralelismo). En el 80386 se incluyen 6 etapas de paralelismo
compuestas por unidades de procesamiento especifico

Unidad de interfaz del bus Unidad de ejecucin


j

Unidad de prebsqueda de instrucciones Unidad de segmentacin

Unidad de decodificacin de instrucciones Unidad de paginacin


Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits
Unidad de interfaz del bus: que permita el acceso a la memoria y a los
dispositi os de E/S po
dispositivos por pa
parte
te de las dems unidades
nidades del CPU
CPU.
Unidad de prebsqueda de instrucciones: permita recibir cdigo
objeto de la unidad del bus y colocarlo en una cola de 16 bytes.
Unidad de decodificacion de instrucciones: decodifica el cdigo de la
cola de la unidad de prebsqueda y lo convierte en microcodigo.
Unidad de ejecucin: ejecuta instrucciones de microcodigo.
Unidad de segmentacin: traduce direcciones lgicas a direcciones
lineales y realiza verificaciones de proteccin.
Unidad de paginacin: realiza la conversin de direcciones lineales a
fsicas, realiza verificaciones de proteccin de paginacin y mantiene un
cache con las paginas mas recientes usadas.
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits

El 386 incluyo tambin un nuevo modo de funcionamiento denominado


modo virtual-8086, cuyo propsito era el de mejorar la eficiencia en el
procesamiento de aplicaciones desarrolladas para los microprocesadores
8086 y 8088.

Estos microprocesadores son capaces de trabajar tanto con el modelo


de memoria segmentado como con el modelo de memoria plano
(en el cual todos los segmentos se solapan y tienen acceso a los 4GB
completos de memoria)
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits

El 80486 tenia el doble de la velocidad de reloj (66 MHz) que su


predecesor y exista una versin que adicionalmente incorpora un
coprocesador aritmtico (versin 80486DX) y una memoria cach
de 8 KB en el chip
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits
En el 80486 se aaden ms etapas paralelas; se dividen las unidades
d
de d
decodificacin
difi i y ejecucin
j i en cinco lneas
l d ejecucin
de
independientes que reciben el nombre de Pipeline

La tecnologa de Finalmente, se aade un


Finalmente
procesamiento cache nivel 1 al
paralelo permiti que microprocesador, se integra
estos procesadores la unidad de punto
ejecutaran una flotante al chip del CPU y
instruccin por se aaden caractersticas
ciclo de reloj. de ahorro energtico al
microprocesador
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits
Pipeline
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits: Pentium

Fue la evolucin de la g generacin x86. Apareci


p con
dos lneas de ejecucin (dos Pipelines, convirtindose
en la primera arquitectura superescalar de Intel)
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits: Pentium
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits: Pentium
Pentium adems:
Incluy un sistema de prediccin de ramificaciones de algoritmos
Incluy un controlador avanzado de control de interrupciones
(Advanced Programable Interrupt Controller-APIC) para permitir la conexin
de mltiples procesadores Pentium. Esta arquitectura permiti la ejecucin
de hasta dos instrucciones en un ciclo de reloj.
El cache se almaceno dentro del chip y se duplico su tamao,
d di
dedicando
d 8 KB a ddatos
t y los
l 8KB restantes
t t a cdigo.
di
Mejora la compatibilidad del modo virtual-8086 y expande el tamao de
los buses de datos internos de microprocesador a 128 bits y 256 bits.
El bus
b s de datos e
externo
te no incrementa
inc ementa de 32 bits a 64 bits.
bits
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits: Pentium
El ltimo procesador introducido en la familia Pentium
fue el Pentium MMX.
MMX Este inclua la tecnologa MMX
que usaba las instrucciones SIMD (single-instruction,
multiple-data) para el procesamiento en paralelo de
enteros empaquetados contenidos en registros MMX de
64 bits. 233 MH
MHz
Tx 3100000
La tecnologa MMX permiti 0.8 micrometro
mejorar grandemente el
rendimiento de estos
procesadores en la ejecucin de
aplicaciones multimedia,
procesamiento
i t dde imgenes
i y en
aplicaciones de compresin de
datos
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits: Architectura P6
se basan en una nueva micro-arquitectura superescalar que
ofrece mejor rendimiento que las arquitecturas anteriores con
la misma tecnologa de fabricacin

Los procesadores sper escalares de pueden iniciar la ejecucin


simultnea de varias instrucciones escalares en paralelo
permitiendo con esto ejecutar ms de una instruccin por ciclo de
reloj
Pentium Pro
Pentium II
Celeron
Pentium III
Pentium III Xeon
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits: Architectura P6
El Pentium Pro posea una arquitectura superescalar con tres lneas de
procesamiento ((tres Pipelines
p p de 12 etapasp c/u)
/ ) lo q
que le p
permiti
ejecutar hasta tres instrucciones por ciclo de reloj.
En este procesador tambin se
introdujo el concepto de ejecucin
dinmica y se le aadi un
segundo cach denominado cache
de nivel 2 con un tamao de 256
KB Por ultimo,
KB. ultimo incluyo un bus de
direcciones de 36 bits lo que le
permiti acceder a un total de 64GB
de memoria.
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador
Mi d ded 32 bits:
bit Architectura
A hit t P6
La ejecucin dinmica consiste en la capacidad
de predecir las ramificaciones del programa que
sern ejecutadas, hacer seguimiento de la
trayectoria de datos dentro del CPU para
aprovechar las oportunidades de ejecucin de
i t
instrucciones
i f
fuera d orden.
de d

Buscando con esto, adelantar la ejecucin de


i t
instrucciones
i posteriores
t i a las
l ramificaciones
ifi i con
datos independientes de las ramificaciones para
mantener ocupadas las unidades del CPU y luego
retirar los resultados de forma ordenada
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits: Architectura P6
Pentium III
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 32 bits: Architectura Netburst
Procesadores: Caractersticas:
Pentium 4 La arquitectura NetBurst mejora
Xeon la velocidad de la arquitectura
Mobile Pentium 4-M P6, incrementa el paralelismo
Pentium 4 EE de los pipelines a 20 etapas,
Pentium 4E ejecucion dinamica, aade las
Pentium
e t u 4F instrucciones
st ucc o es SS
SSE2,, SS
SSE3
3yuun
Pentium D cache nivel 3.
Pentium Extreme Edition
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 64-bits:
64 bits: Architectura IA-64
IA 64
Itanium, Itanium 2 Arquitectura EPIC (Explicitly
((descontinuados en parallel instruction computing)
p p g) o
2006) VLIW (Very long instruction word)
Microprocesador
p de 64-bits: Architectura IA-64 Core
Xeon Introduce SSSE3, Dual y Quad
Intel Core 2 cores, Soporte de Virtualizacin de
Pentium Dual Core OS,
Celeron
Celeron M
Arquitectura de PC
Evolucin de los microprocesadores
Microprocesador de 64-bits:
64 bits: Intel 64
Nehalem microarchitecture
Intel Pentium Hasta 12MB cache L2 comn para
Core i3 hasta 4 ncleos, Integra el GPU,
Core i5 otras mejoras
Core i7,
i7 Xeon
Microprocesador de 64-bits: Intel 64
Sandy Bridge / Ivy Bridge
Celeron, Pentium Cache L2 independiente por
Co
Core
e i3
3 ncleo y cache L3 comn
comn, Integra
Core i5 el GPU, otras mejoras.
Core i7
Arquitectura de PC
Evolucin de los microprocesadores

Hyperthreading y Dual-Core
La tecnologa Hyperthreading fue desarrollada para mejorar el
rendimiento de la arquitectura IA32 al ejecutar en sistemas operativos
multi-hilos y en la ejecucin de aplicaciones de un hilo pero que se
ejecutan en entornos multitareas

HyperThreading es una
tcnica que permite
simular dos
procesadores sobre uno
slo. Esto mejora la
velocidad de las
aplicaciones en un 30%
aprox.
Arquitectura de PC
Evolucin de los microprocesadores

Hyperthreading y Dual-Core
El Hyperthreading permite ejecutar dos o ms hilos de cdigos separados
en un mismo procesador al mismo tiempo.
Arquitectura de PC
Evolucin de los microprocesadores

Hyperthreading y Dual-Core
La Architectural State (AS) es la parte del CPU que mantiene la
informacin visible u oculta referente a los estados de los procesos, como
son:
Registros de control Registros de Propsito General
Instruction Flag Registers Adder Registers
Interrupt Mask Registers Address Registers
Memory management unit Registers Counter Registers
Status registers Index Registers
Stack Registers
String Registers
Arquitectura de PC
Evolucin de los microprocesadores

Hyperthreading y Dual-Core
Arquitectura de PC
Evolucin de los microprocesadores

Ley de Moore

La Ley de Moore fue una


observacin hecha por uno
de los ingenieros fundadores
de Intel, en la que se
establece que la cantidad
de transistores en los
circuitos integrados se
duplica cada 18 meses.
meses
Sorprendentemente, an hoy
esta ley sigue
mantenindose vigente
Arquitectura de PC
Evolucin de los microprocesadores

Ley de Moore
Arquitectura de -procesadores
Arquitectura Bsica

Arquitectura

Interfaces Tipos de
fsicas datos

Instrucciones
Arquitectura de -procesadores
Arquitectura Interna del CPU

Sin importar la generacin, los


microprocesadores funcionan siempre de forma
similar : buscan instrucciones de la memoria
principal y operan sobre datos obtenidos de
dicha memoria para generar resultados a ser
almacenados en la misma memoria o ser
desplegados al usuario

Almacenar o
Buscar Operar presentar
Arquitectura de -procesadores
Arquitectura Interna del CPU

Los microprocesadores ms antiguos tenan una sola


unidad que controlaba la interfase del canal y que
efectuaba todas las operaciones.
p Pero despus
p se fue
evolucionando el concepto de paralelismo,
aprovechando el tiempo ocioso de la memoria y el canal
para producir procesos mas rpidos y eficientes

A medida que evolucionaron las computadoras


comenzaron a aparecer
p varias unidades internas,,
todas destinadas a trabajar en paralelo. Estas
nuevas caractersticas permitieron realizar varias
operaciones simultneas
Arquitectura de -procesadores
Arquitectura Interna del CPU

Unidad de interfase del Canal


BIU: que tiene la funcin de
leer instrucciones de la
memoria y de leer o escribir
datos entre el microprocesador
y la memoria.

La memoria cach conectada a


la BIU: en donde se almacenan
las instrucciones y los datos
que se estima probable a ser
utilizados

El pre-recuperador: est
conectado a la salida del cach
y puede contener hasta 3
instrucciones de 1 byte sin
ejecutar

CPU - 40486
Arquitectura de -procesadores
Arquitectura Interna del CPU

Unidad decodificadora de
instrucciones: se ubica a la
salida del pre-recuperador y su
labor es identificar las
instrucciones enviarlas a la
unidad de control-prueba y
proteccin
Unidad de control-prueba y
proteccin: prueba y controla
las instrucciones decodificadas
por la unidad
decodificadora

Unidad de punto flotante:


unidad de ejecucin que
realiza las operaciones con
nmeros decimales

CPU - 40486
Arquitectura de -procesadores
Arquitectura Interna del CPU

La unidad de paginacin:
realiza convierte las
direcciones lineales en
direcciones fsicas cuando se
utiliza el mecanismo de
manejo de memoria virtual por
paginacin
La unidad de segmentacin:
convierte las direcciones de
memorias lgicas (modelo
segmentado) en direcciones
lineales (modelo plano)

La Unidad Aritmtica Lgica


ALU: realiza todas las
operaciones lgicas y las
aritmticas de nmeros
enteros

CPU - 40486
Arquitectura de -procesadores
Arquitectura Interna del CPU

En la actualidad los microprocesadores Intel


poseen muchas mas unidades internas, haciendo
crecer su paralelismo interno.

El paralelismo puede encontrarse a nivel del chip en forma de


mltiples
lti l unidades
id d i t
internas, en mltiples
lti l pipelines
i li o incluso
i l como
mltiples procesadores encapsulados en el mismo chip. Tambin es
posible conseguir niveles de paralelismo fuera del chip en una misma
tarjeta
j madre,, esto es,, en tarjetas
j madres q
que soporten
p mltiples
p
procesadores. Finalmente, se puede conseguir paralelismo a nivel de
computadores completos en dos formas principales como grids (o
rejillas de computadores) y como clusters (o conglomerados de
computadores).
computadores)
Arquitectura de -procesadores
Arquitectura Interna del CPU

Cluster

Grids
The link ed image cannot be display ed. The file may hav e been mov ed, renamed, or deleted. Verify that the link points to the correct file and location.

Arquitectura de -procesadores
Modos de operacin de los microprocesadores Intel
de la arquitectura IA-32

Los microprocesadores Intel mas modernos poseen cuatro modos de


operacin. Estos modos de operacin determinan que instrucciones y
caractersticas de la arquitectura estarn disponibles para la
programacin y ejecucin.

Modo
M d M d
Modo
Protegido Real

Modo de
administracin Modo IA-32e
de sistema

IA-32 (Intel Architecture, 32-bit), tambin conocida de manera genrica como x86. Es la arquitectura del conjunto
de instrucciones del procesador mas exitoso de Intel. Fue introducido en el microprocesador Intel 80386 en 1986
Arquitectura de -procesadores
Modos de operacin de los microprocesadores Intel
de la arquitectura IA-32

Modo Protegido
Este es el modo de trabajo nativo de los microprocesadores IA-32. En
este modo estn disponibles todas las instrucciones y caractersticas

disponible en la familia IA-32.
Modo de trabajo no default, pero natural para este tipo de
procesadores.
d
Se asigna por software desde Modo Real
Este es el modo de operacin recomendado para todos los
programas y sistemas
i operativos
i modernos.
d
Los datos y las instrucciones manejadas son de hasta 32bits y la
memoria se maneja por grupos o bloques denominados segmentos
de memoria
memoria.
Arquitectura de -procesadores
Modos de operacin de los microprocesadores Intel
de la arquitectura IA-32

Modo Protegido
Los segmentos de memoria son de diferentes tamaos y el
acceso a los mismos puede estar protegido.
El microprocesador tambin puede pasar del modo protegido al
modo de administracin del sistema si as se desea.
Ofrece un ambiente multitarea de ejecucin y un submodo
especial para mantener compatibilidad con el modo real
denominado modo virtual 8086.
Arquitectura de -procesadores
Modos de operacin de los microprocesadores Intel
de la arquitectura IA-32

Modo Real
Todos los microprocesadores Intel IA-32 inician su funcionamiento en modo
real.
l Este
E t modo
d implementa
i l t ell entorno
t d ejecucin
de j i del
d l procesador
d 8086
(tambin permite cambiar a cualquiera de los otros dos modos de
operacin).

La memoria se maneja mediante segmentos de tamao fijo


(hasta 64Kbytes). No existe proteccin de los segmentos e incluso
se pueden solapar.
En este modo existen restricciones en cuanto a los tipos de
instrucciones que pueden manejarse y el espacio de
direccionamiento es de 1MBytes.
En este modo todos los datos e instrucciones manejadas son de
16bits.
16bit
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Todos los modos de operacin de


los microprocesadores Intel de la
arquitectura IA-32, utilizan un
entorno
t d ejecucin
de j i comn

que no es mas que una serie de
recursos para el manejo de su
cdigo,
g , datos e informacin de su
estado de ejecucin.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de ejecucin bsica de programas: 16 registros


utilizados para la ejecucin de instrucciones de propsito
general que permiten realizar la mayora de las operaciones lgicas,
aritmtica de enteros y direccionamiento del
espacio de memoria. Estos registros se dividen en:
8 de p
propsito
p general
g
6 registros segmento
1 registro de bandera
1 registro apuntador de instrucciones

Registros x87 FPU: son los registros utilizados por la unidad de punto
flotante para realizar clculos numricos sobre nmeros punto flotante,
enteros y BCD. Estos registros
g se dividen en 8 registros
g de 80 bits de
propsito general, uno de estado, otro apuntador de instrucciones, uno
apuntador de datos.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros MMX: utilizados para realizar las operaciones SIMD. Son 8


registros de 64 bits.
Registros XMM: utilizados para realizar operaciones SSE, SSE2 y SSE3.
Son 8 registros de 128 bits y un registro de control de 32 bits.
Pila: existen recursos adicionales para el manejo de la Pila lo que ofrece
las herramientas necesarias para realizar llamadas y pase de parmetros
entre
t sub-rutinas.
b ti L Pila
La Pil se almacena
l en la
l memoria.i
Espacio de direccionamiento de memoria: los microprocesadores
de la arquitectura IA-32 pueden direccionar un espacio de memoria lineal
de 4 GB ((232 bytes)
y ) y una espacio
p de memoria fisica de 64 GB ((236
bytes).
Arquitectura de -procesadores
Recursos adicionales de la
Arquitectura IA-32

Existen otros recursos que no pertenecen al entorno bsico de ejecucin


pero que son caractersticas fundamentales de la arquitectura IA-32 y
representan recursos de suma importancia para la programacin de
aplicaciones y la administracin del sistema operativo.
operativo

Puertos de entrada y salida (E/S): es el modelo manejado por la


arquitectura para permitir transferir informacin entre el microprocesador y
los dispositivos de E/S.
Registros de control: se poseen 5 registros de control (CR0 al CR4) que
determinan el estado de operacin del microprocesador y de las tareas en
ejecucin.
ejecucin
Registros para el manejo de la memoria: utilizados para el manejo de la
memoria en modo protegido (GDTR, IDTR y LDTR).
Arquitectura de -procesadores
Recursos adicionales de la
Arquitectura IA-32

Registros de depuracion: utilizados para operaciones de depuracion (DR0


al DR7).
Registros
g de tipo
p de rango
g de memoria: utilizados para
p asignar
g tipos
p de
memoria a ciertas localidades de memoria
(MTRRs).
Registros especificos de la maquina: se utilizan para reportar
caracteristicas funcionales del procesador (MSRs)
(MSRs). La
mayoria de estos registros no estan disponibles para las aplicaciones de
usuario.
Registros de verificacion de la maquina: son registros (MSR) de control,
estado y reporte de errores utilizados para
el manejo de errores del microprocesador.
Registros contadores para la observacion del rendimiento: permiten
realizar observaciones del rendimiento sobre
eventos en el sistema.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de propsito general

Los registros de propsito general se utilizan en la forma en la que desee


ell programadord y se pueden
d direccionar
di i como registros
i t de
d 32 bits
bit (EAX,
(EAX
EBX, ECX, EDX, ESP, EBP, EDI, ESI), como registros de 16 bits (AX, BX,
CX, DX, SP, BP, DI, SI) y algunos como registros de 8 bits (AH, AL, BH,
BL,, CH,, CL,, DH,, DL).
)

Algunas de las instrucciones de los microprocesadores utilizan de forma


especial estos registros, es por esta razn que se les han asignado
nombres En lenguaje ensamblador los nombres de los registros se
nombres.
representan por dos o tres letras como por ejemplo AX, CH, BL.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de propsito general

EAX (Acumulador Acumulator): a menudo conserva los resultados de


operaciones aritmticas y lgicas.
lgicas (Puede direccionarse como EAX,
EAX AX,
AX AH y AL)
EBX (Base): contiene frecuentemente la direccin base (desplazamiento) de
los datos que hay en la memoria o la direccin base de una tabla de datos a ser
referenciada por la instruccin de conversin XLAT. (EBX, BX, BH y BL.)
ECX (Contador Counter): este registro contiene usualmente el conteo de
operaciones de desplazamiento de bits y rotaciones, para las operaciones
repetidas de cadenas y para las operaciones de ciclos o bucles de programas.
(ECX, CX, CH y CL)
EDX (Datos Data): puede contener la parte mas significativa de un
producto despus de una multiplicacin de 16 o 32 bits; puede contener la
parte mas significativa del dividendo antes de la divisin o el numero del
puerto de E/S (entrada/salida) para una instruccin de E/S. (EDX, DX, DH y DL)
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de propsito general

ESP (Apuntador de Pila Stack Pointer): permite direccionar datos


contenidos en una pila LIFO (ultimo en entrar primero en salir-Last
salir Last In First
Out). Es utilizado por las instrucciones PUSH y PULL o cuando se realizan
llamadas a subrutinas con las instrucciones CALL y RET. Este registro se
puede direccionar como ESP o SP.
EBP (Apuntador Base Base Pointer): se utiliza generalmente para
apuntar a una matriz de datos ubicados en una pila de memoria. Tambien se
utiliza para manejar los parametros pasados a un procedimiento en el marco
de pila del procedimiento. Este registro puede direccionar como EBP o BP.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de propsito general

EDI (Indice Destino Destiny Index): se utiliza generalmente para


apuntar de forma indirecta a direcciones de memoria donde se
almacenaran un conjunto de datos en cadena o arreglos. Se puede
direccionar como EDI o DI.
ESI (Indice Fuente Source Index): se utiliza para apuntar de forma
indirecta al lugar de memoria donde se encuentran los datos de una
cadena o arreglo de datos que seran copiados a otro lugar de memoria. Se
puede direccionar como ESI o SI.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros especiales

Existen dos registros de propsito especial en los


microprocesadores Intel: el EIP y el EFLAGS

EIP (Registro Apuntador de Instruccion-Instruction Pointer): es un


registro cuyo nico propsito es apuntar a la prxima instruccin que
va a ejecutar el microprocesador. Para conocer la direccin de la
instruccin a ejecutar se suma la direccin que contiene EIP al inicio
del segmento cdigo. Se puede direccionar como EIP (forma de
32bits) y como IP (forma de 16bits).
16bits)
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros especiales
EFLAGS (Banderas): este registro contiene una serie de bits que
indican el estado en el que se encuentra el microprocesador y el
programa actual despus de cada instruccin ejecutada y algunos de ellos
controlan su funcionamiento. Tambin se puede direccionar como FLAGS.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros especiales
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros especiales
EFLAGS
C (Acarreo Carry): indica si hubo acarreo o prstamo en operaciones
de suma y resta respectivamente, tambin indica la ocurrencia de errores
para ciertas instrucciones, como por ejemplo sobre flujo en operaciones
de aritmtica sobre nmeros enteros sin signo.
P (Paridad Parity): indica si el resultado de una operacin
tiene
paridad par. El 1 indica paridad par y el 0 indica paridad impar
(recurdese que la paridad es el conteo de los unos de un numero
binario), esto aplica para el byte menos significativo del resultado.
A (Medio acarreo hAlf carry): indica que hubo un acarreo o prstamo
entre el tercer y el cuarto bit de un byte en operaciones de suma y resta
con nmeros en representacin BCD. Instrucciones como DAA y DAS se
utilizan
tili para ajustar
j t losl valores
l de
d AL despus
d de
d haber
h b realizado
li d una
suma o resta BDC ajustando el valor contenido en AL segn lo indique
este bit. El microprocesador no utiliza de otra manera este bit.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros especiales
EFLAGS

Z (Cero Zero): indica cuando el resultado de una operacin matemtica


o logica es cero. Si el resultado es cero este bit se fija en uno (1), si el
resultado es distinto de cero se almacena un cero (0) en este bit.
S (Signo Sing): indica si el resultado de la operacin aritmtica de suma
o resta es positivo o negativo. Si S = 0 el resultado es positivo de lo
contrario es negativo. Es importante resaltar que en el bit de signo copia el
valor del bit mas significativo del resultado de cualquier instruccin que
afecte a las banderas.
T (Trampa Trap): se utiliza para habilitar las caractersticas de
depuracin del microprocesador (fija el modo de ejecucin paso simple).
Cuando T vale uno (1) la funcin de depuracin se encuentra habilitada,
habilitada
caso contrario se encuentra deshabilitada.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros especiales
EFLAGS
I (Interrupcion
(I t i Interrupt):
I t t) controla
t l ell funcionamiento
f i i t de
d las
l
interrupciones enmascarables del microprocesador. Si I = 0 se deshabilita la
entrada INTR y si I = 1 se habilita la entrada INTR.
D ((Direccion Direction): ) controla la seleccin de incremento o
decremento de los registros DI y SI en operaciones de cadenas o arreglos. Si
D = 1 hay decremento automtico en los registros mencionados, si D = 0
hay incremento automtico en estos registros. Esta bandera se fija en uno
con la instruccin STD (fijar D - set) y se coloca en cero con la instruccin
CLD (borrar D - clear).
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros especiales
EFLAGS

(Sobreflujo Overflow): este bit es importante solamente en operaciones


con signo de lo contrario no importa el estado de este bit. Este bit se coloca
en uno si el resultado de la suma o resta aritmtica exceden la
capacidad almacenamiento del microprocesador de lo contrario permanece
en cero. P.e. si se suma 7FH (+127) a 01H(+1) el resultado es 80H (-128)
esta es una situacin de sobre flujo si se trabaja con datos de 1 byte (8bits).
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de segmentos

Los registros segmentos permiten generar


las direcciones de memoria para el manejo
de los segmentos de memoria. Los registros
segmentos funcionan de forma diferente
dependiendo del modo de trabajo del
microprocesador. Los registros segmentos FS
y GS solo existen a partir de 80386.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de segmentos

CS (Registro segmento de cdigo Code


Segment): define la direccin
de memoria a
partir de la cual se almacenan los programas
y procedimientos que ejecuta el procesador.
El CS define la direccin inicial de un
segmento de 64KB en la que esta alojado el
cdigo a ejecutar cuando el procesador opera
en modo real; si el procesador se encuentra
en modod protegido
t id CS apunta t a la
l direccin
di i
de memoria donde se encuentra un
descriptor que describe la direccin inicial del
g
segmento de cdigo,
g , su longitud
g y sus
derechos de acceso.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de segmentos

DS ((Segmento
g de Datos Data Segment):
g )
define la direccin de memoria a partir de la
cual se almacenan la mayora de los datos de
un programa.

SS (Segmento de Pila Stack Segment):


indica el punto donde inicia la pila. Las
operaciones
i que trabajan
t b j con la l pila
il utilizan
tili
al registro ESP para apuntar al tope de la
misma. Tambin es posible acceder a datos
dentro de la ppila mediante el registro
g BP.
Arquitectura de -procesadores
Entorno bsico de ejecucin
de la familia IA-32

Registros de segmentos

ES ((Segmento
g Extra Extra Segment):
g )
contiene la direccin de un segmento de
extra de memoria utilizado para algunas
instrucciones de cadenas.

FS y GS: solamente existen a partir del 80386 y su objetivo es de


ofrecer a los programadores capacidad para disponer de dos segmentos
adicionales de memoria para datos.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Los microprocesadores Intel manejan la memoria en dos formas


diferentes. La memoria fsica es la que estos ven desde sus buses (es
la que ve el fabricante de hardware) y la memoria lgica la que se
(es la que ve el programador)
utiliza a nivel de la programacin
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Memoria Fsica

La memoria fsica se
organiza en bloques
pequeos de memoria
de 8 bits a los que se
les denomina bancos
de memoria, y el
numero de bancos de
memoria depende del
tamao
del bus de
datos del
microprocesador.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Memoria Lgica

La memoria lgica
g es la misma p
para todos
los microprocesadores Intel, se considera
como un gran bloque de memoria
organizado en bytes, con la nica distincin
entre los diferentes microprocesadores que
el tamao del bloque puede ser mas
grande o mas pequeo. Esta es la manera
como el programador ve la memoria, solo
se diferencia de un procesador de otro en
cuanto a la cantidad de memoria que
puede direccionar.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Memoria Lgica
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Modelos para el manejo de la memoria lgica

Los microprocesadores Intel no manejan la memoria fsica de


forma directa,
directa para ello utilizan tres modelos lgicos para el
manejo de la memoria:
Modelo Plano
Modelo Segmentado
Modelo Real.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Modelos para el manejo de la memoria lgica

Modelo Plano (Flat memory model)


Este es el modelo bsico para el manejo de la memoria lgica de los
microprocesadores Intel. En este modelo se maneja la memoria como un
espacio continuo de direcciones. A este espacio de memoria se le
denomina espacio lineal de direcciones. Tanto los programas como los
datos y la pila estn contenidos en este espacio de memoria.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Modelos para el manejo de la memoria lgica

Modelo Plano (Flat memory model)


Una direccin en este modelo de memoria se denomina direccin lineal.
La direccin lineal puede estar relacionada con las direcciones de
memoria fsica de forma directa o de forma indirecta.

En la relacin directa existe una


correspondencia uno a uno con las
direcciones fsicas del sistema

En la relacin indirecta se
t d
traducen llas direcciones
di i lineales
li l a
la fsicas a travs de un mecanismo
denominado paginacin.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Modelos para el manejo de la memoria lgica

Modelo Plano (Flat memory model) : Paginacin

Las pginas tienen tamao fijo. Ej: 4 Kbytes


Son contiguas (no se solapan ni son disjuntas)
Ventajas
V t j
Administracin simple de la memoria (tamao fijo)
Desventajas
Si requiero memoria para una variable de 1 byte el
sistema me asigna una pgina de 4 K completa
Si se requiere reubicar cdigo el algoritmo,
algoritmo en
principio, es complejo.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Modelos para el manejo de la memoria lgica

Modelo Segmentado (Segmented memory model)


En este modelo, la memoria aparece como bloques de direcciones
independientes denominados segmentos. Estos bloques se pueden pensar
como varios modelos planos de memoria independientes uno del otro,
organizados de igual forma por bytes.
bytes El cdigo los datos y la pila se
almacenan en segmentos de memoria distintos en este modelo.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Modelos para el manejo de la memoria lgica

Modelo Segmentado (Segmented memory model)


Las direcciones manejadas por este modelo para ubicar un byte dentro de
un segmento se denominan direcciones lgicas. Una direccin lgica se
conforma de un selector de segmento y un desplazamiento (estas
direcciones tambin reciben el nombre de punteros lejanos)

El selector de segmento identifica cual es el segmento al que se tendr


acceso y el desplazamiento identifica un byte dentro del espacio de
direccionamiento del segmento.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Modelos para el manejo de la memoria lgica

Modelo Segmentado (Segmented memory model)


Todos los segmentos definidos por este modelo se localizan
dentro del modelo plano de memoria. El microprocesador
posee mecanismos para convertir la direccin lgica de
memoria en direccin lineal.
lineal Esta traduccin es transparente
para el usuario y las aplicaciones.
Ventajas
Permite que las aplicaciones desarrolladas sean
reubicables en cualquier lugar de la memoria
Desventajas
Es
E engorroso administrar
d i i memoria
i con bloques
bl de
d
tamao variable
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Modelos para el manejo de la memoria lgica

Modelo Real (Real-address mode memory model)


Este es el modelo de manejo de memoria que utiliza el microprocesador
8086, en el cual solamente se tiene acceso a 1Mbyte de memoria. Existe
para proveer compatibilidad con los programas escritos para el 8086.

El modelo real es un caso especifico del modelo


segmentado. En el mismo se manejan segmentos de
memoriai de
d 64Kbytes.
64Kb t E este
En t modelo
d l las
l direcciones
di i
de memoria se denominan direcciones lgicas y se
calculan igual que como lo hace el modelo
g
segmentado, , mediante un selector de segmento
g y un
desplazamiento.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Clculo de las direcciones lineales en el modelo real

En el modelo real la memoria se direcciona a travs de un selector de


segmento y un desplazamiento
desplazamiento, al igual que en el modelo segmentado.
segmentado
El selector de segmentos en este modelo viene dado por una direccin
almacenada en uno de los seis registros segmentos y el desplazamiento
puede estar conformado por varios componentes
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Clculo de las direcciones lineales en el modelo real

La direccin lineal se calcula multiplicando al registro segmento por 10H


y sumndole el desplazamiento
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Clculo de las direcciones lineales en el modelo real

Ejemplo

Se posee un selector de segmento almacenado en el registro


DS = 1AB0H y un desplazamiento almacenado en un registro
de propsito general (AX = 1010H). Determine cual es su
di i lilineal.
direccin l

OJO: los registros segmento contienen la direccin donde


inicia el segmento y el desplazamiento indica cual es el byte
dentro del segmento seleccionado al que se desea acceder
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Clculo de las direcciones lineales en el modelo segmentado


El selector del segmento siempre esta ubicado en un registro segmento
y selecciona una estructura de datos denominada descriptor almacenada
en un lugar especial de la memoria.

El selector contiene tres elementos que permiten seleccionar al descriptor


Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Clculo de las direcciones lineales en el modelo segmentado

El RPL es el nivel de p privilegio


g solicitado por
p el usuario o la
aplicacin para acceder a un segmento, este debe ser mayor o igual
al nivel de privilegio del descriptor denominado DPL.
El campo TI establece si el descriptor seleccionado es de la tabla
de descriptores globales (TI = 0) o de la tabla de descriptores
locales (TI = 1).
El ndice indica cual descriptor dentro de la tabla de descriptores
es el que se ha seleccionado
seleccionado.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Clculo de las direcciones lineales en el modelo segmentado

Al seleccionar el
p ,
descriptor, se
utiliza la
informacin
contenida en el
para identificar
el inicio del
segmento, su
longitud y los
derechos de
acceso al
mismo.
Arquitectura de -procesadores
Manejo de la memoria en el microprocesador

Clculo de las direcciones lineales en el modelo segmentado

Finalmente, para calcular la direccin lineal correspondiente a la


direccin lgica en el modelo segmentado se suma la base del
descriptor y el desplazamiento

Ejemplo
suponga que un descriptor posee una base=FFA10000H y un
desplazamiento dado por el registro EBX=00001234H.
Determine cual es su direccin lineal.
Arquitectura de -procesadores
Modos de direccionamiento de memoria
Segn las diferentes combinaciones que pueden utilizarse para construir
una direccin efectiva (en funcin de los modos de operacin y modelos de
memoria), Intel define algunos modos comunes para el direccionamiento
d la
de l memoriai de
d datos.
d t
Arquitectura de -procesadores
Modos de direccionamiento de memoria

Base: es un valor almacenado en uno de los 8 registros de


propsito general.
ndice:
un valor almacenado en un registro de propsito
general (con excepcin del registro ESP que no puede ser
utilizado como ndice).
Factor de escala: es un factor que multiplica al ndice y puede
ser 1, 2, 4 u 8
Desplazamiento fijo: es un valor de 8bits, 16bits o 32bits
(puede estar representado por una etiqueta de memoria).
Arquitectura de -procesadores
Modos de direccionamiento de memoria
Existen diferentes consideraciones importantes cuando se calculan
direcciones efectivas de memoria. algunas de las mas importantes son:

La base, el ndice y el desplazamiento numrico pueden


utilizarse en cualquier combinacin.
Cualquiera
q de estos elementos puede
p utilizarse como mximo
una vez o puede omitirse.
Si la instruccin transfiere informacin de una fuente a un
destino, ambos tienen que ser del mismo tamao y el destino
nunca puede ser el registro segmento de cdigo CS.
No se admiten transferencias entre registros segmentos
Arquitectura de -procesadores
Modos de direccionamiento de memoria
Modo de Desplazamiento: se utiliza cuando la referencia a la
memoria viene dada por el elemento de desplazamiento fijo.

Modo de Base: solamente utiliza el elemento base para direccionar


un dato en la memoria de forma indirecta. Se dice que el
direccionamiento es indirecto porque esta almacenado en un registro.

Modo de Base + Desplazamiento: en este modo de


direccionamiento se utiliza un elemento base y uno de
desplazamiento.

Modo (ndice * Escala) + Desplazamiento: en este modo existen


solamente los elementos ndice, factor de escala y el desplazamiento.
Este modo es muy eficiente para direccionar arreglos estticos de
d t en memoria
datos i cuyo tamao
t sea de d 2,2 4 y 8 bytes.
b t El elemento
l t de
d
desplazamiento fijo ubica el inicio del arreglo y el elemento ndice
contiene el numero (ndice) del dato al que se desea acceder
Arquitectura de -procesadores
Modos de direccionamiento de memoria
Modo Base + ndice + Desplazamiento: es un modo complejo de
direccionamiento que usa los elementos base, ndice y desplazamiento.
Este modo permite direccionar arreglos bidimensionales

Modo Base + (ndice * Escala)+ Desplazamiento: es el modo de


direccionamiento mas complejo. Este modo permite direccionar de
forma eficiente a los elementos de una arreglo bidimensional de datos
en donde los elementos tengan tamao de 2, 4 u 8 bytes.
Arquitectura de -procesadores
Modos de direccionamiento de memoria
Problemas para el clculo de direcciones de memoria
Para determinar la direccin de memoria efectiva en todo momento se
debe conocer el modelo con el cual se este trabajando (modelo real o
modelo segmentado).
Los problemas propuestos utilizan las instrucciones:
MOV DEST,ORIG
MOV
DEST ORIG y PUSH
PUSH DATA
DATA
La 1ra permite instruccin se encarga de transferir datos de un
ORIGen a un DESTino y la 2da se utiliza para almacenar datos en el
segmento
g de pila.
p
Para la ejecucin de cada instruccin es necesario identificar el dato
que ser movido, su tamao y las direcciones destino y origen.
Debe indicarse en cada instruccin qque tipo
p de direccionamiento se
esta realizando (segn los modos de direccionamiento) y los valores de
los datos que tendrn los registros modificados.
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H

SS = AA00H

BP = 0006H

SP = 000AH A. MOV EAX,[BX+DI+2]


DI = 0005H

SI = 0002H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H A. MOV EAX,[BX+DI+2]


SS = AA00H

BP = 0006H
Se debe calcular la
SP = 000AH direccin de memoria
DI = 0005H deseada para luego
SI = 0002H asignar su contenido a
Va

EAX
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H A. MOV EAX,[BX+DI+2]


SS = AA00H

BP = 0006H Modo de direccionamiento


SP = 000AH Base mas ndice mas Desplazamiento fijo
DI = 0005H

SI = 0002H
Va

MD: B+I+D
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H A. MOV EAX,[BX+DI+2]


SS = AA00H Direccin de memoria = Selector*10H+Offset
BP = 0006H = DS
DS*10H
10H + BX + DI + 2
SP = 000AH = 2A20H*10H + 0003H + 0005H + 2
DI = 0005H
= 2A20AH
SI = 0002H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H A. MOV EAX,[BX+DI+2]


SS = AA00H

BP = 0006H

SP = 000AH
Contenido de memoria
EAX = [2A20AH] = BCAF6745H
DI = 0005H

SI = 0002H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H A. MOV EAX,[BX+DI+2] MD: B+I+D


SS = AA00H Direccin de memoria = Selector*10H+Offset
BP = 0006H = DS
DS*10H
10H + BX + DI + 2
SP = 000AH
= 2A20H*10H + 0003H + 0005H + 2
= 2A20AH
DI = 0005H

SI = 0002H Contenido de memoria: EAX = [2A20AH] = BCAF6745H


Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H

SS = AA00H

BP = 0006H

SP = 000AH
B: MOV BX,SS:[AX]
DI = 0005H

SI = 0002H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H B: MOV BX,SS:[AX]


SS = AA00H

BP = 0006H Modo de direccionamiento


SP = 000AH Base
DI = 0005H

SI = 0002H
Va

MD: B
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H B: MOV BX,SS:[AX]


SS = AA00H Direccin de memoria = Selector*10H+Offset
BP = 0006H = SS
SS*10H+AX
10H+AX
SP = 000AH = AA00H*10H + 000AH
DI = 0005H
= AA00AH
SI = 0002H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H B: MOV BX,SS:[AX]


SS = AA00H

BP = 0006H

SP = 000AH
Contenido de memoria
BX = [AA00AH] = 70FAH
DI = 0005H

SI = 0002H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H B: MOV BX,SS:[AX] MD: B


SS = AA00H Direccin de memoria = Selector*10H+Offset
BP = 0006H = SS
SS*10H+AX
10H+AX
SP = 000AH
= AA00H*10H + 000AH
= AA00AH
DI = 0005H

SI = 0002H Contenido de memoria: BX = [AA00AH] = 70FAH


Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H

SS = AA00H

BP = 0006H

SP = 000AH
C: MOV AH,BL
DI = 0005H

SI = 0002H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
I. Ejemplo para solucin de instrucciones en modo real
Vaciado de memoria:
AX = 000AH
alores iniciales para los registrros

BX = 0003H

CX = 1111H

DX = FFFFH

DS = 2A20H

CS = 1000H C: MOV AH,BL


SS = AA00H

BP = 0006H
Direccin
de memoria: no aplica
SP = 000AH Contenido de memoria: AH = BL = 03H
DI = 0005H Modo de direccionamiento: no aplica
SI = 0002H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido
Vaciado de memoria:
AX = 0002H
alores iniciales para los registrros

CX = 0001H

DX = 0004H

SS = 0020H

DS = 001CH

CS = 0001H

DI = 0013H

SI = 0004H

BP = 0002H

SP = 0008H
Va
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

D: MOV FS,[SP]
Modo de direccionamiento
Base

Direccin de memoria=
memoria Selector + Desplazamiento
= BASE+SP

Selector = SS = 0020H
= 0020H = 0000000000100|0|00 b

TI = 0 ((Tabla de descriptores
p globales)
g )
RPL = 00 (mayor nivel de privilegio)
ndice = 0000000000100 b = 4
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

D.- MOV FS,[SP]

Descriptor
7 [[00 | 00]] 6
5 [F6 | 0A] 4 Base: 000AA000H
3 [A0 | 00] 2 Lmite: 0100H
1 [01 | 00] 0

Direccin de memoria: BASE+SP = 000AA000H + 0008H = 000AA008H


Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

D.- MOV FS,[SP]

Direccin de memoria = BASE+SP


= 000AA000H + 0008H
= 000AA008H

Contenido de memoria
FS = [000AA008H] = DCBAH
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

D.- MOV FS,[SP]

Direccin de memoria = BASE+SP


= 000AA000H + 0008H
= 000AA008H

Contenido de memoria
FS = [000AA008H] = DCBAH
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

E.- MOV BX,[DX+2*SI]

Selector (DS) = 001CH = 0000000000011|1|00


TI = 1 (Tabla de descriptores locales)
RPL = 00 (mayor nivel de privilegio)
ndice = 0000000000011 b = 3

Descriptor
7 [00 | 00] 6
5 [F2 | 01] 4 Base: 00010000H
3 [00 | 00] 2 Lmite: 00BCH
1 [00 | BC] 0
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

E.- MOV BX,[DX+2*SI]

Direccin de memoria = BASE+DX+2*SI


= 00010000H + 0004H + 2*0004H
= 0001000CH

Contenido de memoria
BX = [0001000CH] = 982BH

Modo de direccionamiento
Base mas ndice Escalado
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

F.- PUSH 102AH

En general todas las direcciones


de la memoria se ordena de
forma ascendente de abajo
hacia arriba, pero en la pila se
ordena
d d
de fforma iinversa
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

F.- PUSH 102AH

LIFO
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

F.- PUSH 102AH


102AH

10 2A
[SP-1] 1Byte 1Byte
[SP 2]
[SP-2]
MSB LSB

Segmento de Pila

[SP]=0

SS
Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

F.- PUSH 102AH

[SP]
10 2A 10 [SP-1]
MSB LSB
2A [SP-2]

i) [SP-1] MSB ii) [SP-2] LSB


Arquitectura de -procesadores
Modos de direccionamiento de memoria
II. Ejemplo para solucin de instrucciones en modo protegido

F.- PUSH 102AH


1) Selector
Base
2) Descriptor

Direccin de memoria = BASE+SP


= 000AA000H + 0008H = 000AA008H

Contenido de memoria= [000AA007H] = 10H y [000AA006H] = 2AH


SP = SP-2 = 0006H

Modo de direccionamiento: De Pila.


Arquitectura de -procesadores
Datos manejados por IA-32

Los microprocesadores intel de la familia IA-32 manejan


diversos tipo de datos. Los datos en los microprocesadores intel
se pueden almacenar en forma de enteros, BCD y decimales.

Sin importar el tipo, existen unos formatos bsicos utilizados


por la familia IA-32 para el almacenamiento de estos datos:
Bytes (8 b)
Palabras (16 b)
Palabras dobles (32 b),
Palabras cudruples
p (64
( b))
Palabras cudruples dobles (128 b)

Los datos manejados sern almacenado en alguno de estos formatos


d
dependiendo
di d ded lo
l grande
d o pequeo
del
d l dato
d t que se d
desea representar
t o
del tamao con el que se desea operar.
Arquitectura de -procesadores
Datos manejados por IA-32

256

65.536

4.294.967.296

18.446.744.073.709.551.616

3,4028236692093846346337460743177e+38
Arquitectura de -procesadores
Datos manejados por IA-32

La organizacin de los datos en la memoria de los microprocesadores


intel se realiza colocando en las direcciones mas bajas de memoria los
datos menos significativos y en las direcciones mas altas las partes mas
significativas

Ejemplo
Palabra doble : 0A11BB2B H

0A 11 BB 2B
MSB LSB

Little Endian
Arquitectura de -procesadores
Datos manejados por IA-32
Datos Enteros
Los datos enteros se pueden almacenar en
binario simple cuando se desea representar
los enteros sin signo y en complemento a dos
cuando se desea representar enteros con signo.
En binario simple se usa cualquiera de los formatos vistos para almacenar
un dato. Es evidente que mientras mas grande sea el dato es
probable que se requiera un formato mas grande para poder almacenarlo
Arquitectura de -procesadores
Datos manejados por IA-32
Datos Enteros
Ejemplo : Presentar el numero entero 200 en formato de 1 byte

MSB LSB

Cuando se representan nmeros enteros en binario simple, el valor decimal


de dicho numero se puede obtener mediante la formula:

Donde BX es el bit en la posicin X


Arquitectura de -procesadores
Datos manejados por IA-32
Datos Enteros
Los enteros con signo se almacenan en complemento a dos. Bsicamente,
el cambio con respecto a los enteros con signo, esta en que el bit mas
significativo tiene ponderacin negativa mientras que todos los dems bits
de la representacin tienen ponderacin positiva.

Ejemplo : Presentar el numero -38 en formato de 1 byte


i) Representar 38 en binario: 3810 = 001001102
ii) Luego llevarlo a complemento a dos: tomando de derecha a izquierda,
escribir cada dgito hasta encontrar el primer "1", el cual debe de
escribirse A partir de este "1"
escribirse. 1 , convertir los "1"
1 en "0"
0 y los "0"
0 en "1"
1 .

-3810 = 110110102
Arquitectura de -procesadores
Datos manejados por IA-32
Datos decimales
En los microprocesadores modernos se utiliza la norma IEEE-754 para
representar los nmeros decimales.
Hoy en da existen tres formatos distintos de esta norma para representar
nmeros decimales:
Punto flotante de precisin simple
Punto flotante de precisin doble
Punto flotante de precisin doble extendida.
Arquitectura de -procesadores
Datos manejados por IA-32
Datos decimales
Arquitectura de -procesadores
Datos manejados por IA-32
Datos decimales
El Bit de signo indica si el numero es
positivo ((0)) o si es negativo
p g ((1)) y el
bit J existe solamente para el formato
de precisin doble extendida (para
los otros dos formatos es implcito).
El exponente se polariza para
representarlo siempre como numero
positivo y el significante representa la
parte decimal
Arquitectura de -procesadores
Datos manejados por IA-32
Datos decimales
Cuando se dice que el exponente utilizado esta polarizado, implica que
se la ha sumado una constante numrica.
numrica

Formato Constante
Precisin simple 127 (7FH)
Precisin doble 1023 (3FFH)
Precisin doble 16383 (3FFFH)
extendida

Los nmeros decimales pueden representarse en formato no normalizado


pero esto sucede solamente cuando se representan nmeros muy
pequeos.
Arquitectura de -procesadores
Datos manejados por IA-32
Datos decimales
Arquitectura de -procesadores
Datos manejados por IA-32
Datos decimales
Ejemplo : Se desea convertir el numero 34.062510 a la representacin
punto flotante de precisin sencilla

5+127=132
13210=100001002
Arquitectura de -procesadores
Datos manejados por IA-32
Datos BCD
En los microprocesadores intel se pueden manejar los nmeros BCD
(Binary-Coded Decimal) de forma directa. Tanto la unidad aritmtico-
l
lgica como la
l unidad
d d punto flotante
fl soportan operaciones en BCD.
C Ell
almacenamiento de estos nmeros puede ser en tres formas diferentes:
Formato desempacado
Formato
F t empacado
d
Formato empacado en 80 bits.

Decimal BCD
74 0111 0100
102 0001 0000 0010
Arquitectura de -procesadores
Datos manejados por IA-32
Datos BCD
El formato desempacado permite representar un digito BCD por cada byte.
El BCD se almacenara en la p parte menos significativa
g del byte
y y la parte
p
mas significativa del byte no se utiliza.

El formato empacado almacena dos dgitos BCD en un byte. En la parte


menos significativa del byte se almacena el digito BCD menos significativo
mientras que en la parte alta del byte se almacena el digito BCD mas
significativo. Cuando se requiera representar un numero entero de
dos dgitos, el digito menos significativo se almacenara en la parte baja del
byte y el digito mas significativo se almacenara en la parte alta del byte.

Para representar nmeros enteros de hasta dieciocho (18) dgitos


decimales en un formato de 80 b b. Este formato incluye el signo del
numero en el bit mas significativo (bit 79).
Arquitectura de -procesadores
Direccionamiento de memoria
Resumen
La memoria de los microprocesadores intel se direcciona a travs de
conjuntos
j de instrucciones diferentes dependiendo
p si se desea trabajar
j
con datos generales, datos de pila o programas.
Sin importar lo que esta almacenado en la memoria (datos,
programas o pila) ni del modelo de memoria manejado, al direccionar
la memoria se pueden utilizar un conjunto de combinaciones de
parmetros para construir la direccin efectiva: Modos de
direccionamiento
Arquitectura de -procesadores
Direccionamiento de memoria
Resumen
El direccionamiento implcito es importante al momento de ubicar los
datos con los cuales se este trabajando:
j
Arquitectura de -procesadores
Direccionamiento de memoria
Resumen
La instruccin por excelencia utilizada para manejar la memoria de
datos es la instruccin MOV DESTINO,FUENTE.
,
Esta instruccin siempre copia un dato de la fuente al destino. Los
operandos que se pueden utilizar en esta instruccin tanto para la
fuente como para el destino son los Registros, Memoria, Inmediato o
Entrada/Salida
Arquitectura de -procesadores
Direccionamiento de memoria
Resumen
Existen algunas restricciones para el uso de la instruccin MOV
Lo dos operandos usados deben ser del mismo tamao.
tamao
No se admiten transferencias entre memoria, de manera que los dos
operandos no pueden ser de memoria en una misma instruccin MOV.
No se pueden
p eden realizar
eali a copias de datos entre
ent e registros
egist os segmentos en una
na
misma instruccin.
El registro segmento de cdigo CS no puede ser operando destino de
ninguna instruccin de transferencia de datos.
datos Este registro solamente
puede ser cambiado por las instrucciones especiales para direccionar
cdigo
Los datos inmediatos nunca p
pueden ser operadores
p destino
Arquitectura de -procesadores
Direccionamiento de memoria
Resumen

Si solamente uno de los operandos tiene tamao definido este ser el


que establezca el tamao del dato que ser copiado.
Cuando ninguno de los dos operandos provea informacin sobre el
tamao del dato copiado,
copiado ser necesario utilizar prefijos especiales de
ensamblador que especifique el tamao en alguno de los dos operandos.
Para transferir bytes se usa byte ptr, para palabras word ptr, para
dobles palabras dword prt. Estas directivas de ensamblador se utilizan
solamente
l con operandos
d ded memoria.
i
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento de registro: transfiere un byte, palabra o doble


palabra de un registro a otro o entre un registro y una localidad de
memoria.

MOV DL,CH
DL CH ; transfiere 1 byte de CH a DL
MOV AX,BX ; transfiere 1 palabra de BX a AX
MOV ESP,EDI ; transfiere 1 palabra doble de EDI a ESP
MOV CS,CX ; no es permitido porque cambia a CS
MOV DS,ES ; no es permitida la transferencia entre registros
segmento
MOV BX,CL ; no es permitida la transferencia entre registros de
diferentes tamaos
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento inmediato: transfiere un dato inmediato del tamao


de un byte palabra o palabra doble hacia un registro
registro, direccin de
memoria o dispositivo de entrada/salida
MOV BH,20 ; transfiere 1 byte (20-decimal) al registro BH
MOV CX,12ABH
CX 12ABH ; ttransfiere
fi 1 palabra
l b (12ABH-hexadecimal
(12ABH h d i l)
al registro CX
MOV EDX,0A0000011H ; transfiere 1 palabra doble (A0000011H) al
registro
i EDX
MOV BX,'AB' ; transfiere el dato AB' al registro BX
((BH = 'B y BL = 'A'))
MOV DL,11000111b ; transfiere el dato binario 11000111b al
registro DL
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento directo: permite transferir datos entre una direccin de


memoria dada por un desplazamiento fijo,
fijo y un registro o dato inmediato

MOV AH,TABLA ;transfiere un byte de la direccin de memoria


TABLA (del segmento de datos) al registro AH

MOV BX,SS:DATO ;transfiere dos bytes de la direccin de


memoria DATO (del segmento de pila) al
registro BX
MOV ECX,ARREGLO ;transfiere cuatro bytes de la direccin de
memoria ARREGLO (del Segmento de datos)
al registro ECX
MOV ES:[1000H],BX
ES:[1000H] BX ;transfiere dos bytes del registro BX a la
direccin de memoria del segmento de extra
con desplazamiento de 1000H
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento directo: permite transferir datos entre una direccin de


memoria dada por un desplazamiento fijo,
fijo y un registro o dato inmediato

MOV BYTE PTR TABLA,20 ;transfiere el dato decimal 20 de un


y a la direccin de memoria TABLA
byte
(del segmento de datos)
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento indirecto por registro: transfiere datos entre una


localidad de memoria y un registro o un dato inmediato.
inmediato La direccin efectiva
de memoria se especifica a travs de un registro.

MOV DH,[AX] ;transfiere un byte de la direccin de


memoria del segmento de datos con
desplazamiento dado por AX al registro DH

MOV [BP],CX
[BP] CX ;transfiere
t ansfie e dos b
bytes
tes del registro
egist o CX a la
direccin de memoria del segmento
de pila con desplazamiento dado por BP
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento indirecto por registro: transfiere datos entre una


localidad de memoria y un registro o un dato inmediato.
inmediato La direccin efectiva
de memoria se especifica a travs de un registro.

MOV [EBX],EDX
[EBX] EDX ;transfiere cuatro bytes del registro EDX a
la direccin de memoria del segmento de
datos con desplazamiento dado por EBX

MOV [BX],[DI] ;no se pueden realizar transferencias de


memoria a memoria con la instruccin MOV
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento base-ms-ndice: transfiere datos entre una


l
localidad
l d d de
d memoria y un registro o un dato d inmediato.
d La direccin
d
efectiva de memoria se especifica a travs de un registro base y uno ndice

MOV AX,[BX+DI] ;transfiere dos bytes de la direccin de


memoria del segmento de datos con
desplazamiento dado por BX+DI hacia el
registro AX
MOV [BP+SI],CL
[BP SI] CL ;transfiere
t fi un b
byte
t ddell registro
i t CL a la
l
direccin de memoria del segmento de pila
con desplazamiento dado por BP+SI
MOV [[ECX+ESI],DH
], ;;transfiere un byte
y del registro
g DH a la
direccin de memoria del segmento de datos
con desplazamiento dado por ECX+ESI
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento base-ms-ndice:
Es comn utilizar este modo de
direccionamiento para ubicar datos
dentro de un arreglo de datos
unidimensional en la memoria.
ndice
Normalmente se interpreta al
registro base como la direccin del
inicio del arreglo y al registro Base
ndice como la distancia entre el
inicio del arreglo y el dato que se DS
d
desea ubicar
bi d t del
dentro d l mismo.
i
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento base-ms-ndice: EJEMPLO


Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento relativo a registro: transfiere datos entre una


l
localidad
l d d de
d memoria y un registro o un dato
d inmediato.
d La direccin
d
efectiva de memoria se especifica a travs de un registro base y un
desplazamiento fijo
MOV AH,[SI+10]
AH [SI 10] ;transfiere
t fi un b
byte
t dde lla direccin
di i de
d
memoria del segmento de datos con
desplazamiento dado por SI+10 al
registro
g AH
MOV TABLA[AX+4],BP ;transfiere dos bytes del registro BP a la
direccin de memoria del segmento de
datos con desplazamiento dado por
TABLA+AX+4
TABLA+AX+4
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey

Direccionamiento relativo a registro:

Este modo de direccionamiento puede ser utilizado para acceder a


elementos de un arreglo unidimensional de la misma manera como
se utiliza el de Base mas ndice ((con algunas
g diferencias).
)

La direccin del inicio del arreglo estar dada por un


desplazamiento fijo y la direccin del elemento a partir del inicio
del arreglo estar especificada por el registro
registro.
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey
Direccionamiento relativo a registro:

Como puede observarse, no es necesario inicializar al registro


BX para que apunte al inicio del arreglo de datos y en
consecuencia se ahorra una lnea de programacin
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey
Direccionamiento relativo a base-ms-ndice: transfiere datos
entre una localidad de memoria y un registro o un dato inmediato
inmediato. La
direccin efectiva de memoria se especifica a travs de un registro base
, uno ndice y un desplazamiento fijo.

MOV
MOV CX,[BX+SI+30H]
CX [BX+SI+30H] ;transfiere
t fi d
dos b
bytes
t d dell segmento
t
de datos con desplazamiento dado
por BX+SI+30H al registro CX
MOV TABLA[EBP+EDI],EBX
TABLA[EBP+EDI] EBX ;transfiere cuatro bytes del registro
EBX al segmento de pila con
desplazamiento dado por
EBP+EDI+TABLA
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey
Direccionamiento relativo a base-ms-ndice:
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey
Direccionamiento de ndice escalado: transfiere datos entre una
localidad de memoria y un registro o un dato inmediato. La direccin
efectiva de memoria se especifica a travs de un registro ndice
multiplicado por un factor de escala (1-2-4-8) y posiblemente con un
registro base y un desplazamiento fijo

MOV ECX,[EDX+4*EBX] ;transfiere cuatro bytes del segmento


de datos con desplazamiento dado
por EDX+4*EBX
EDX+4*EBX al registro ECX
MOV ARREGLO[8*ECX],AH ;transfiere un byte del registro AH al
segmento de datos con
desplazamiento dado por
ARREGLO + 8*ECX
Arquitectura de -procesadores
Direccionamiento de memoria de datos
Segn B. Brey
Direccionamiento de ndice escalado:
Arquitectura de -procesadores
Direccionamiento de memoria de programa

La memoria de cdigo solamente puede direccionarse mediante


instrucciones de control de flujo de programas como son los saltos
((condicionales e incondicionales)) y las instrucciones cclicas
Arquitectura de -procesadores
Direccionamiento de memoria de programa

Saltos incondicionales

Saltos condicionales

Los saltos condicionales en el lenguaje ensamblador son equivalentes


al IF {Condicin} THEN {Accin} del lenguaje BASIC, de tal manera
que cuando se cumple una condicin dada, se salta a un sitio
determinado
Arquitectura de -procesadores
Direccionamiento de memoria de programa

Direccionamiento indirecto de memoria

En este modo, la direccin de salto viene dada por un registro y la


misma sustituye al valor actual del registro apuntador de instruccin
(IP o EIP).

JMP EDX ; salta a la direccin del segmento


g de cdigo
g
dada por EDX (copia a EDX en EIP)
JMP BX ;salta a la direccin del segmento de cdigo
dada por BX (copia a BX en IP)
JMP TABLA[CX] ;salta a la direccin del segmento de cdigo
almacenada en el segmento de
datos con desplazamiento dado por
CX mas TABLA
JMP [BX+2] ;salta a la direccin del segmento de cdigo
almacenada en el segmento de
datos con desplazamiento dado por
Arquitectura de -procesadores
Direccionamiento de memoria de programa

Ejemplo de salto condicional/incondicional


Arquitectura de -procesadores
Direccionamiento de memoria de pila

El segmento de pila se direcciona mediante instrucciones especiales


(PUSH y POP) cuando se direccionan datos utilizando como base el
registro EBP o el registro ESP

Al inicializar el segmento de pila el registro segmento de pila (SS)


apunta al inicio del segmento de pila y el registro apuntador de pila (SP
o ESP) siempre
i apunta
t all tope
t de
d la
l pila.
il
Cada vez que se introduce un dato en la pila este se almacena en el
tope de la pila, es decir, se almacena despues de la direccion indicada
por ell registro
i t SP;
SP finalmente
fi l t ell registro
i t SP se decrementa
d t para
apuntar a este nuevo dato introducido. Cuando se extrae un dato de la
pila, siempre se extrae el ultimo dato introducido, es decir, el apuntado
por el registro
p g SP.
Arquitectura de -procesadores
Direccionamiento de memoria de pila
Arquitectura de -procesadores
Direccionamiento de memoria de pila

Inicialmente SP apunta al inicio del


segmento, pero cuando se introduce
el primer dato en la pila este se coloca
en el tope del segmento de pila y
luego se decrementa el valor de SP en
el numero de bytes que se introdujo en
el segmento de pila.
Arquitectura de -procesadores
Direccionamiento de memoria de pila
Arquitectura de -procesadores
Direccionamiento de memoria de pila
Arquitectura de -procesadores
Direccionamiento de memoria de pila

Con el comando POP se extraen datos del


segmento de pila y se almacenan en
registros
Arquitectura de -procesadores
Direccionamiento de memoria de pila
Arquitectura de -procesadores
Direccionamiento de memoria de pila

PUSH registro ;almacena un registro en el segmento de


pila
PUSH memoria ;almacena un dato del segmento de datos
en la pila
PUSH dato_inmediato ;;almacena un dato inmediato en la pila
p
PUSHF ;almacena el registro bandera en la pila
PUSHFD ;almacena el registro bandera extendido en
la pila
PUSHA ;almacena los registro AX, CX, DX, BX, SP,
BP, DI Y SI en la pila
PUSHAD ;almacena los registro EAX, ECX, EDX, EBX,
ESP, EBP, EDI Y ESI en la pila
Arquitectura de -procesadores
Direccionamiento de memoria de pila

Procedimiento para almacenar datos en la pila (PUSH)

8-bits
El nuevo dato se almacena en SS:[SP-1] y se decrementa a SP en 1.

16-bits
16 bits
La parte alta del dato se almacena en SS:[SP-1] y la parte baja se
almacena en SS:[SP-2] y posterior se decrementa a SP en 2.

32-bits
32 bit
La parte alta del dato se almacena en SS:[SP-1], el siguiente byte en
SS:[SP-2], el siguiente en SS:[SP-3] y la parte baja se almacena en
[ ]yp
SS:[SP-4] posterior se decrementa a SP en 4.
Arquitectura de -procesadores
Direccionamiento de memoria de pila

POP registro ;extrae un registro del segmento de pila


POP memoria ;extrae un dato de la pila y lo almacena en el
segmento de datos
POPF ;extrae el registro bandera de la pila
POPFD ;extrae el registro bandera extendido de la
pila
POPA ;extrae los registro SI, DI, BP, SP, BX, DX, CX
y AX de la pila
POPAD ;extrae los registro ESI, EDI, EBP, ESP, EBX,
EDX, ECX y EAX de la pila
Arquitectura de -procesadores
Direccionamiento de memoria de pila

Procedimiento para extraer datos en la pila (POP)

8-bits
El dato se extrae del tope de la pila de SS:[SP] y posterior se incrementa
a SP en 1

16-bits
La parte baja del dato se extrae de SS:[SP] y la parte alta se extrae de
SS:[SP+1] y posterior se incrementa a SP en 2.

32-bits
La parte baja del dato se extrae de SS:[SP], el siguiente byte de
[ ], el siguiente
SS:[SP+1], g en SS:[SP+2]
[ ] y la p parte alta se extrae de
SS:[SP+3] y posterior se incrementa a SP en 4.
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Formato de las instrucciones
Los microprocesadores Intel tienen un formato de instrucciones estndar
con campos que pueden aparecer o no dependiendo principalmente de
la instruccin empleada, los operandos y el modo de direccionamiento
utilizado
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Formato de las instrucciones
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Formato de las instrucciones
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Prefijos
Este campo puede contener hasta cuatro (4) prefijos de 1 byte cada uno.
Los prefijos son de cuatro tipos, prefijos del grupo 1, grupo 2, grupo 3 y
grupo 4

Grupo 1: son prefijos para repetir las instrucciones o bloquear recursos


de memoria que puedan ser compartidos
compartidos.

F0H: prefijo de bloqueo.


F2H: aparece cuando se utilizan las instrucciones REPNE/REPNZ
empleadas nicamente con instrucciones de cadena e
instrucciones SIMD.
F3H: aparece cuando se utilizan las instrucciones REP o
REPE/REPEZ empleadas nicamente con instrucciones de
cadena e instrucciones SIMD.
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Prefijos
Grupo 2: son prefijos utilizados cuando se cambia el segmento por defecto
utilizado,, tambin se usan como p pistas p
para la toma de decisiones entre
ramas.
Prefijos para la sobrecarga de registros segmento.
2EH: sobrecarga para el uso de CS
CS.
36H: sobrecarga para el uso de SS.
3EH: sobrecarga para el uso de DS.
26H: sobrecarga para el uso de ES.
64H: sobrecarga para el uso de FS.
65H: sobrecarga para el uso de GS
Prefijos para las pistas de ramificaciones.
2EH: la ramificacin no se toma.
3EH: la ramificacin si se toma
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Prefijos

Grupo 3: prefijo 66H para el cambio de tamao de los operadores de 16 a


32 bits o viceversa.

Grupo 4: prefijo 67H para el cambio de tamao de las direcciones de 16 a


32 bits o viceversa
viceversa.
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Opcode

es el cdigo de la instruccin que se representa, ocupan 1, 2 o 4 bytes y


en ocasiones
i existe
i t un cdigo
di adicional
di i l de
d tres
t bits
bit ubicado
bi d dentro
d t deld l
campo ModR/M. Algunas veces, en estos bytes se incluyen bits que
definen la direccin del flujo de la informacin, el tamao de los
desplazamientos,
p , codificacin de registros,
g , condiciones de cdigo
g o
seales de extensin de signo de operandos.

Entre los bits mas utilizados en el primer byte del cdigo de operacin
estan:

Direccin de flujo de la informacin (d)


Tamao de los operandos (w).
(w)
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Opcode

Los bits d y w influyen sobre los operandos del byte ModR/M


produciendo
d i d los l siguientes
i i t efectos:
f t

d = 0, los datos van del campo Reg al campo R/M del byte ModR/M
d = 1, los datos van del campo R/M al campo Reg del byte ModR/M
w = 0, los operandos son de 8 bits
w = 1, los operandos son de 16 bits o de 32 bits
Arquitectura de -procesadores
Instrucciones de la familia IA-32
ModR/M y SIB

Cada uno de estos dos campos ocupan 1 byte, y sirven para indicar los
modos de direccionamiento y registros usados.
usados

El byte ModR/M tiene tres campos internos:

El campo de mod
El campo de Reg/Opcode
El campo de R/M .
Arquitectura de -procesadores
Instrucciones de la familia IA-32
ModR/M y SIB

mod
combinado con el campo R/M establece 32 diferentes modos de
direccionamiento posibles a utilizar; 8 de estos modos son para registros
y los 24 restantes para direccionamiento de memoria.

Reg/Opcode
indica un numero de registro o sus tres bits se interpretan como
informacion del codigo de la operacion (instruccion) que se esta
ejecutando.
ejecutando

R/M
establece un numero de registro o se un modo de direccionamiento de
memoria dependiendo del valor que tenga el campo mod de este
mismo byte.
Arquitectura de -procesadores
Instrucciones de la familia IA-32
ModR/M y SIB

SIB
se utiliza en ciertos modos de direccionamiento, en particular en
aquellos que utilizan las combinaciones de base-mas-ndice e ndice
escalado para la construccin de la direccin efectiva en modos de
compatibilidad de 32 bits.
bits

Este byte
y tambin esta compuestos
p por
p tres campos
p internos:
El campo de scale
El campo index
El campo base
base
Arquitectura de -procesadores
Instrucciones de la familia IA-32
ModR/M y SIB

scale
indica el factor de escala por el cual se multiplicara el registro
especificado en el campo index. Los valores que puede asumir son 00
para multiplicador 1, 01 para multiplicador de 2, 10 para multiplicador
de 4 y 11 para multiplicador de 8.8

index
especifica
p el numero del registro
g ndice que
q se utilizara.

base
especifica el numero del registro base que se utilizara.
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Desplazamiento y dato Inmediato

estos campos aparecern en la instruccin codificada nicamente si la


instruccin en cuestin posee un desplazamiento fijo y/o un dato
inmediato.

De aparecer un d
D desplazamiento
l i t fijo
fij este
t puede
d ser de
d 8 bits,
bit 16 bits
bit o
32 bits y aparecer inmediatamente despus del campo ModR/M.

Si la instruccin p
posee un dato inmediato,, este aparecer
p despues
p de
campo de Desplazamiento fijo o del campo ModR/M (si no existe el
campo de Desplazamiento) y puede tener una tamao de 8 bits, 16 bits
o 32 bits.
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Ejemplo de codificacin de las instrucciones

MOV BP,SP
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Ejemplo de codificacin de las instrucciones

MOV BP,SP

i. Opcode Por ser Registro a Registro 100010 dw oorrrmmm disp

Opcode = 100010 Por la tabla de cdigos


d=1 Sentido de transmisin: R/M REG
w=1 16 bits
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Ejemplo de codificacin de las instrucciones

MOV BP,SP

ii. MOD-REG-R/M:

MOD = 11 De la tabla Intel (SP)


REG = 101 De la tabla Intel (BP)
R/M = 100 De la tabla Intel (SP)
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Ejemplo de codificacin de las instrucciones

MOV BP,SP

1 0 0 0 1 0 1 1 1 1 1 0 1 1 0 0

1 0 0 0 1 0 1 1 1 1 1 0 1 1 0 0

8 B E C

MOV BP,SP 8BECH


Arquitectura de -procesadores
Instrucciones de la familia IA-32
Ejemplo de codificacin de las instrucciones

MOV DL,[DI]

Opcode = 100010 Por la tabla de cdigos


d=1 Sentido
Se t do de ttransmisin:
a s s R/M/ REG
G
w=0 8 bits

MOD = 00 De la tabla Intel ([DI])


REG = 101 De la tabla Intel (DL)
R/M = 010 D lla tabla
De t bl Intel
I t l ([DI])
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Ejemplo de codificacin de las instrucciones

MOV DL,[DI]

1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0

8 A 2 A

MOV DL,[DI] 8A2AH


Arquitectura de -procesadores
Instrucciones de la familia IA-32
Ejemplo de codificacin de las instrucciones

MOV [EBX +ECX*2+4] , 1208H

i. Prefijos = 66H ; Operandos de 32 bits

ii. Opcode
p = 100010 ; Por ser Dato Inmediato a Memoria
iii. d =1 ; por el opcode
iv. w =1 ; por ser 16 o 32 bits
v. MOD = 01 ; Por ser el mas optimo

vi. REG = 000 ; Por el opcode

vii. R/M = 100 ; por la tabla Intel ([-][-])


Arquitectura de -procesadores
Instrucciones de la familia IA-32
Ejemplo de codificacin de las instrucciones

MOV [EBX +ECX*2+4] , 1208H

viii. SS = 01 ; *2

ix. Index = 001 ; ECX*2


x. Base = 011 ; EBX
xi. Disp = 00000100 ;4
xii. Dato = 0812 ; 1208 pero ordenado empezando por BmS

MOV [EBX +ECX*2+4] , 1208H 66C7444B040812H


Arquitectura de -procesadores
Instrucciones de la familia IA-32
Instrucciones de transferencia de datos

Carga
g de direcciones efectivas
LEA
LDS, LSS, LES, LFS y LGS

Transferencia de cadenas
LODS
STOS
MOVS
INS
OUTS
Arquitectura de -procesadores
Instrucciones de la familia IA-32
Instrucciones aritmticas y lgicas

Suma Resta Multiplicacin Divisin


ADD SUB MUL DIV
ADC SBB IMUL IDIV
INC DEC

Negacin
g Conjuncin
j OR
logica (NOT) AND inclusivo (OR)
aritmetica (NEG). exclusivo (XOR)
Arquitectura de -procesadores
Interfaces de los microprocesadores
Arquitectura de -procesadores
Interfaces de los microprocesadores
Tecnologas con las que se implementan el 8086 y 8088

Caractersticas de los voltajes de entrada/salida del 8086 y 8088


Arquitectura de -procesadores
Interfaces de los microprocesadores
Generador de reloj 8284
Arquitectura de -procesadores
Interfaces de los microprocesadores
Demultiplexacin del canal de datos y de direcciones
de un microprocesador 8088
Arquitectura de -procesadores
Interfaces de los microprocesadores
Demultiplexacin del canal de datos y de direcciones
de un microprocesador 8086
Arquitectura de -procesadores
Interfaces de los microprocesadores
Demultiplexacin y
acoplamiento del canal
de datos y de
di
direcciones
i de
d un
microprocesador 8088
Arquitectura de -procesadores
Interfaces de los microprocesadores
Demultiplexacin y
acoplamiento del canal
de datos y de
di
direcciones
i de
d un
microprocesador 8086
Arquitectura de -procesadores
Ciclo de Escritura/Lectura
Ciclo
Ci l T1
Se colocan en las terminales de direcciones la
direccin de memoria o de dispositivo E/S deseado
Se accionan las seales ALE, DT/R e IO/M o M/IO
Ciclo
Ci l T2
Se accionan las seales RD o WR y DEN
Si el ciclo es de escritura aparecen los datos en el
bus de datos del CPU
Se muestra el terminal READY al final de este
ciclo. Si READY esta en nivel bajo T3 se retarda y
en su lugar se introduce un ciclo de espera, sino se
pasa a T3
Ciclo T3
Permite que la memoria o los dispositivos E/S lean
datos (ciclo de lectura) o se escriben datos en los
dispositivos al terminar el ciclo (ciclo de escritura)
Ciclo T4
Si el ciclo es de escritura, se terminan de leer las
seales de memoria o dispositivos E/S.
Se desactivan todas las seales de control y dejan
de ser validos los datos y direcciones en los buses
Arquitectura de -procesadores
Memorias semiconductoras
Jerarqua de Memoria en un Computador
Arquitectura de -procesadores
Memorias semiconductoras
Jerarqua de Memoria en un Computador

La primera memoria comercial de semiconductor tena una capacidad de


64 bits y fue fabricada por IBM en 1968
Arquitectura de -procesadores
Memorias semiconductoras
Clasificacin de la Memoria Semiconductora
Arquitectura de -procesadores
Memorias semiconductoras
ROM Memoria de slo lectura (Read Only Memory)

PROM: memoria ROM programable elctricamente en


programadores porttiles. No puede borrarse
ya que su programacin consiste en quemar
fusibles de NiC para escribir ceros y unos
(tecnologa:
( l Ni-Cr
Ni C SiO2).
)
Uso: almacena datos y programas de sistemas pequeos de forma
permanente y como decodificadores

EEPROM: tambin llamada FLASH (marca reservada de Intel).


es una ROM programable y borrable elctricamente
Uso: memorias de almacenamiento porttil, pendrive, discos
semiconductores
Arquitectura de -procesadores
Memorias semiconductoras
Memoria de lectura/escritura y de acceso aleatorio (Random Access
RAM Memory

SRAM-RAM
SRAM RAM Esttica: Es una memoria que retiene
su contenido mientras posea una fuente de alimentacin
conectada, de lo contrario lo pierde. Es una memoria
muyy rpida
p pero
p consume mucha potencia.
p
Uso: se utiliza principalmente como memoria cach
y como registros internos del CPU

DRAM-RAM Dinmica: almacena sus datos en


un transistor y una capacitancia parsita. Es una
memoria que consume poca potencia pero es ms
lenta que su contra parte esttica
esttica.
Uso: se utiliza como memoria principal de los
sistemas de computadora
Arquitectura de -procesadores
Interfaces de Memorias

N de direcciones = 2 ^ (N de terminales de direcciones)


Capacidad (en bits) = N de direcciones * N de terminales de datos
Arquitectura de -procesadores
Interfaces de Memorias

211 = 2048 = 2K
Arquitectura de -procesadores
Decodificacin de memoria

Decodificacin

Decodificadores por compuertas NAND


Decodificadores de 3 a 8 lnea
Decodificadores por memorias PROM
EPROM
Decodificadores mediante PLD (Dispositivos
L i
Lgicos P
Programables)
bl )
Arquitectura de -procesadores
Decodificacin de memoria
Decodificadores por compuertas NAND
FFFFF
2K
FF800

1 1 1 1 1 1 1 1 1 x x x x x x x x x x x
A19 A0
Arquitectura de -procesadores
Decodificacin de memoria
Decodificadores por compuertas NAND

FFFFF

Patrn Fijo 1


Patrn Fijo 2

Patrn Fijo 3

0
Arquitectura de -procesadores
Decodificacin de memoria
Decodificadores de 3 a 8 lneas
Arquitectura de -procesadores
Decodificacin de memoria
Decodificadores de 3 a 8 lneas
Arquitectura de -procesadores
Decodificacin de memoria

1 1 1 1 x x x x x x x x x x x x x x x x
A19 A0
ABC
Arquitectura de -procesadores
Decodificacin de memoria
Decodificadores de 3 a 8 lneas
A12-A0

FFFFF

Seleccin
A15-A
A13

Patrn Fijo 1
A19-A16

You might also like