You are on page 1of 76

INSTITUTO TECNOLGICO DE

TAPACHULA
CARRERA

INGENIERA EN SISTEMAS
COMPUTACIONALES
ASIGNATURA

ARQUITECTURA DE COMPUTADORAS
DOCENTE

ING. ROSEL MUOZ LPEZ


TRABAJO

ARQUITECTURAS DE CMPUTO
ESTUDIANTES

DE LA PARRA AGUIRRE RICARDO


ENRIQUE
LABRAS CASTILLO PHIL
RUZ CRUZ JESS

U
NIDAD

TAPACHULA, CHIS.
05 DE OCTUBRE DE 2015
CONTENIDO
UNIDAD 1
1

Arquitecturas de cmputo
1.1

Modelos de arquitecturas de cmputo.


1.1.1 Clsicas.
1.1.2 Segmentadas.
1.1.2.1
Pipe-line
1.1.3 De multiprocesamiento.
1.1.3.1
Clasificacin

1.2

Anlisis de los componentes.


1.2.1 CPU.
1.2.1.1
Arquitecturas.
1.2.1.1.1 Arquitectura Cisc.
1.2.1.1.2 Arquitectura Risc.
1.2.1.2
Tipos.
1.2.1.3
Caractersticas.
1.2.1.4
Funcionamiento (ALU, unidad de control,
registros y buses internos.
1.2.2 Memoria.
1.2.2.1
1.2.2.2

1.2.2.3

Conceptos bsicos del manejo de la memoria.


Memoria principal semiconductora.
1.2.2.2.1 Tipos de memorias semiconductoras de
acceso aleatorio.
1.2.2.2.2 Organizacin.
1.2.2.2.3 Lgica del chip
Memoria cach.
1.2.2.3.1 Elementos de diseo de la cache.

1.2.3 Manejo de la entrada/salida.


1.2.3.1
Mdulos de entrada/salida.
1.2.3.2
Entrada/salida programada.
1.2.3.3
Entrada/salida mediante interrupciones.
1.2.3.4
Acceso directo a memoria.
1.2.3.5
Canales y procesadores de entrada/salida.
1.2.4 Buses.
1.2.4.1
1.2.4.2
1.2.4.3

Tipos de buses.
Estructura de los buses.
Jerarquas de buses.
2 | 76

1.2.5 Interrupciones.
INDICE
Introduccin

Pgina

1.1
Modelos de arquitecturas de cmputo.
1.1.1 Clsicas.
1.1.2 Segmentadas.
1.1.2.1 Pipe-line
1.1.3 De multiprocesamiento.
1.1.3.1 Clasificacin

5
7
9
11
11
13

1.2

16

Anlisis de los componentes.

1.2.1 CPU.
1.2.1.1 Arquitecturas.
1.2.1.1.1 Arquitectura Cisc.
1.2.1.1.2 Arquitectura Risc.
1.2.1.2 Tipos.
1.2.1.3 Caractersticas.
1.2.1.4 Funcionamiento (ALU, unidad de control, registros y buses internos).

16
18
19
21
23
28
29

1.2.2 Memoria.
1.2.2.1 Conceptos bsicos del manejo de la memoria.
1.2.2.2 Memoria principal semiconductora.
1.2.2.2.1 Tipos de memorias semiconductoras de acceso aleatorio.
1.2.2.2.2 Organizacin.
1.2.2.2.3 Lgica del chip
1.2.2.3 Memoria cach.
1.2.2.3.1 Elementos de diseo de la cache.

38
38
40
40
43
43
44
46

1.2.3 Manejo de la entrada/salida.


1.2.3.1 Mdulos de entrada/salida.
1.2.3.2 Entrada/salida programada.
1.2.3.3 Entrada/salida mediante interrupciones.
1.2.3.4 Acceso directo a memoria.
1.2.3.5 Canales y procesadores de entrada/salida.

47
48
49
53
55
57

1.2.4 Buses.
1.2.4.1 Tipos de buses.
1.2.4.2 Estructura de los buses.
1.2.4.3 Jerarquas de buses.

58
60
67
70

1.2.5 Interrupciones.

72

Conclusin
3 | 76

Bibliografa
INTRODUCCION

La computadora est diseada para cumplir con las tareas cotidianas que
realizamos en ella, pero conocemos cmo es su funcionamiento interno para que
realice nuestras tareas? En el presente reporte de investigacin se aprender a
ver ms all de la simple vista humana a un computador. Se conocer el trabajo
de cada uno de los componentes que hacen posible la interaccin mquinausuario cumpliendo sus respectivas acciones y trabajos que stos solicitan. Se
observar detalladamente cada una de las operaciones que interceden con sus
respectivos procedimientos y necesidades que surgen al momento del trabajo.
Teniendo como punto de partida desde el aparentemente sencillo uso del teclado
y ratn, y que al parecer todo es muy simple, hasta cada uno de los circuitos que
son necesarios para llevar a cabo un simple clic, hasta algo tan complejo como la
misin tan importante que representa la CPU para el sistema computacional.

4 | 76

UNIDAD 1.- ARQUITECTURA DE CMPUTO

1.1

Modelos de arquitecturas de cmputo.

Se han diseado y construido cientos de tipos distintos de computadoras durante


la evolucin de la computadora digital moderna. Casi todos se han perdido en el
olvido, pero unos cuantos han tenido un impacto importante sobre las ideas
modernas. La arquitectura de computadoras se refiere a los atributos de un
sistema que son visibles a un programador, o para decirlo de otra manera,
aquellos atributos que tienen un impacto directo en la ejecucin lgica de un
programa. Entre los ejemplos de atributos arquitectnicos se encuentran el
conjunto de instrucciones, el nmero de bits usados para representar varios tipos
de datos (ej. Nmeros, caracteres), mecanismos de E/S y tcnicas para
direccionamiento de memoria.
La arquitectura de computadoras es el diseo conceptual y la estructura
operacional fundamental de un sistema de computadora, es decir, es un modelo y
una descripcin funcional de los requerimientos y las implementaciones de diseo
para varias partes de una computadora, tambin suele definirse como la forma de
seleccionar e interconectar componentes de hardware para crear computadoras
segn los requerimientos de funcionalidad, rendimiento y costo.
La siguiente tabla muestra algunos acontecimientos ms importantes de la
evolucin de las computadoras.1
Ao
1834

Nombre
Mquina analtica

Hecho por
Babbage

1936

Z1

Zuse

1943

COLOSSUS

Gobierno ingls

1944

Mark l

Aiken

1946

ENIAC l

1949

EDSAC

Eckert/Mauchle
y
Wikes

1951

Whielwind l

M.I.T

1952

IAS

Von Newman

Comentario
Primer intento por construir una
computadora digital
Primera mquina calculadora de
relevadores funcional
Primera computadora electrnica
Primera
computadora
estadounidense de propsito
general
Inicia la historia moderna de la
computacin
Primera
computadora
de
programa almacenado
Primera computada de tiempo
lineal
Casi todas las mquinas actuales
emplean este diseo

1 Organizacin de computadoras un enfoque estructurado. Tanenbaum, AS. P.


14.

5 | 76

1960
1961
1962
1963

PDP-1
1401
7094
B5000

DEC
IBM
IBM
Burroughs

1964

360

IBM

1964

6600

CDC

1965

PDP-8

DEC

1970
1974

PDP-11
8080

DEC
Intel

1974

CRAY-1

Cray

1978

VAX

DEC

1981

IBM PC

IBM

1983
1985
1987

HP150
MIPS
SPARC

Hewlett Packard
MIPS
Sun

1990
1998

RSC6000
iMac

IBM
Apple

2003

Power Mac G5

Apple

2008
2011

Dell
XPS
13
Developer Edition Dell
con Ubuntu
Macbook Air
Apple
Chromebook
Google

2015

HP Sprout

2007

Hewlett Packard

Primera minicomputadora
Mquina pequea para negocios
Domin la computacin cientfica
Primera mquina diseada para
un lenguaje de alto nivel
Primera lnea de productos
diseada como familia
Primera
supercomputadora
cientfica
Primera minicomputadora con
mercado masivo
Domin las minicomputadoras
Primera
computadora
de
propsito general de 8 bits en un
chip
Primera
supercomputadora
vectorial
Primera
superminicomputadora
de 32 bits
Inici la era de la computadora
personal moderna
Primera computadora tctil
Primera mquina RISC comercial
Primera estacin de trabajo RISC
basada en SPARC
Primera mquina superescalar
Primera fuera del legado de las
PC con un puerto USB sin disco
floppy
En
su
momento
fue
la
computadora personal ms rpida
del mercado
Primera laptop con sistema
operativo
Ubuntu
Linux
preinstalado
La laptop ms delgada
Primera laptop con Chrome OS
Cuenta con un proyector que
hace que la superficie se
convierta
en
una
segunda
pantalla y un sistema de cmaras
3D
que
permiten
capturar
cualquier objeto del mundo
real que
pongas
en
esta
6 | 76

superficie para ingresarlo en el


ordenador.
1.1.1

Clsicas

Estas arquitecturas se desarrollaron en las primeras computadoras


electromecnicas y de tubos de vaco. An son usadas en procesadores
empotrados de gama baja y son la base de la mayora de las arquitecturas
modernas.
Arquitectura Mauchley-Eckert (John von Newman)
En 1943, Mauchley y su estudiante de posgrado, J. Presper Eckert, procedieron a
construir una computadora electrnica a la que llamaron ENIAC (Electronic
Numerical Integrador And Computer). ENIAC consiste en 18,000 bulbos y 1500
relevadores, pesaba 30 toneladas y consuma 140 KW de potencia. En trminos
de arquitectura, la mquina tena 20 registros, cada uno capaz de almacenar un
nmero decimal de 10 dgitos. ENIAC se programaba ajustando 6000 interruptores
de multiposicin y conectando numerosas bases con una verdadera maraa de
cables interconectores.
Von Newman se dio cuenta de que el programa poda representarse en forma
digital en la memoria de la computadora, junto con los datos. l percibi tambin
que la torpe aritmtica decimal en serie utilizada por ENIAC, en la que cada dgito
estaba representado por 10 bulbos poda ser sustituida por una aritmtica binaria.
El diseo bsico, que l describi por primera vez, ahora se conoce como
mquina de von Newman. Se us en EDSAC, la primera computadora de
programa almacenado, y sigue siendo la base de casi todas las computadoras
digitales aun ahora. La siguiente figura muestra la mquina de von Newman.

7 | 76

La mquina de von Newman2 tiene cinco partes bsicas: la memoria, la unidad


aritmtica lgica (ALU), la unidad de control y el equipo de entrada y salida. La
memoria constaba de 4096 palabras, cada una de las cuales contena 40 bits que
podan ser 0 o 1. Cada palabra contena dos instrucciones de 20 bits o bien un
entero con signo de 40 bits. Ocho bits de cada instruccin estaban dedicados a
indicar el tipo de instruccin, y 12 bits se dedicaban a especificar una de las 4096
palabras de memoria.
Dentro de la unidad de aritmtica lgica haba un registro interno especial de 40
bits llamado acumulador. Una instruccin tpica sumaba una palabra de la
memoria al acumulador o almacenaba el contenido del acumulador en la memoria.
Esta arquitectura consiste en una unidad central de proceso que se comunica a
travs de un solo bus con un banco de memoria en donde se almacenan tanto los
cdigos de instruccin del programa" como los datos que sern procesados por
este. La principal desventaja de esta arquitectura" es que el bus de datos y
direcciones nico se convierte en un cuello de botella por el cual debe pasar toda
la informacin que se lee de o se escribe a la memoria" obligando a que todos los
accesos a esta sean secuenciales.
Arquitectura Harvard
El trmino Arquitectura Harvard originalmente se refera a las arquitecturas de
computadoras que utilizaban dispositivos de almacenamiento fsicamente
separados para las instrucciones y para los datos (en oposicin a la Arquitectura
von Neumann). El trmino proviene de la computadora Harvard Mark I, que
almacenaba las instrucciones en cintas perforadas y los datos en interruptores.
Esta arquitectura surgi en la universidad del mismo nombre poco despus de que
la arquitectura, von Newman apareciera en la universidad de Princeton. Al igual
que en la arquitectura, von Newman el programa se almacena como un cdigo
numrico en la memoria pero no en el mismo espacio de memoria ni en el mismo
formato que los datos. Por ejemplo se pueden almacenar las instrucciones en
doce bits en la memoria de programa mientras los datos de almacenan en 4 bits
en una memoria aparte. En la siguiente figura se muestra la arquitectura Harvard.

2 Tanenbaum, AS. Organizacin de computadoras un enfoque estructurado, p.


18

8 | 76

Ambos buses son totalmente independientes lo que permite que la CPU pueda
acceder de forma independiente y simultnea a la memoria de datos y a la de
instrucciones. Como los buses son independientes stos pueden tener distintos
contenidos en la misma direccin y tambin distinta longitud. Tambin la longitud
de los datos y las instrucciones puede ser distinta, lo que optimiza el uso de la
memoria en general.
El hecho de tener un bus separado para el programa y otro para los datos permite
que se lea el cdigo de operacin de una instruccin, al mismo tiempo se lee de la
memoria de datos los operados de la instruccin previa. As se evita el problema
del cuello de botella de von Newman y se obtiene un mejor desempeo.
En la actualidad la mayora de los procesadores modernos se conectan al exterior
de manera similar a la arquitectura von Newman, con un banco de memoria
masivo nico, pero internamente incluyen varios niveles de memoria cach con
bancos separados en cach de programa y cach de datos, buscando un mejor
desempeo sin perder la versatilidad.

1.1.2

Segmentadas

Estas arquitecturas surgen por la necesidad de aumentar la velocidad de


procesamiento. En ellas, lo que se buscaba era mejorar el desempeo realizando
paralelamente varias etapas del ciclo de instruccin al mismo tiempo. Esto se
logra, debido a que el procesador se divide en varias unidades funcionales e
independientes las cuales se dividen entre ellas el procesamiento de las
instrucciones. Y entonces, ir transformando un flujo de datos en un proceso
comprendido por varias fases secuenciales, siendo la entrada de cada una de las
salidas de la anterior.
Supongamos que un procesador simple tiene un ciclo de instruccin sencillo
consistente solamente en una etapa de bsqueda del cdigo de instruccin y en
otra etapa de ejecucin de la instruccin. En un procesador sin segmentacin del
9 | 76

cauce, las dos etapas se realizaran de manera secuencial para cada una de las
instrucciones, como lo muestra la siguiente figura.

En un procesador con segmentacin del cause, cada una de estas etapas se


asigna a una unidad funcional diferente, la bsqueda a la unidad de bsqueda y la

ejecucin a la unidad de ejecucin. Estas unidades pueden trabajar en forma


paralela en instrucciones diferentes. Estas unidades se comunican por medio de
una cola de instrucciones en la que la unidad de bsqueda coloca los cdigos de
instruccin que ley para que la unidad de ejecucin los tome de la cola y los
ejecute. Esta cola se parece a un tubo donde las instrucciones entran por un
extremo y salen por el otro. De esta analoga proviene el nombre en ingls:
Pipelining o entubamiento.
En un procesador con segmentacin, la unidad de bsqueda comenzara
buscando el cdigo de la primera instruccin en el primer ciclo de reloj. Durante el
segundo ciclo de reloj, la unidad de bsqueda obtendra el cdigo de la instruccin
2, mientras que la unidad de ejecucin ejecuta la instruccin 1 y as
sucesivamente. La siguiente figura muestra este proceso.

Con la implementacin de este modelo se logr realizar ms procesos al mismo


tiempo, sin embargo, esto no fue sinnimo de rapidez.
Esto debido a que no todos los procesos se toman el mismo tiempo para
ejecutarse, lo que ocasiona una gran competencia respecto al uso de los recursos
del CPU.
Sin embargo, esta arquitectura es muy comn en el desarrollo de programas para
el intrprete de comandos, ya que se pueden concatenar comandos fcilmente
con tuberas (pipe).
Pipe-line
10 | 76

Consiste en la segmentacin del procesador, a lo que llamamos "pipe-line",


descomponindolo en etapas para poder procesar una instruccin diferente en
cada una de ellas y trabajar con varias a la vez. La arquitectura en pipeline
(basada en filtros) consiste en ir transformando un flujo de datos en un proceso
comprendido por varias fases secuenciales, siendo la entrada de cada una la
salida.
Es importante tener en cuenta que la arquitectura pipe-line se aplica en dos
lugares de la maquina: en la CPU y en la ALU.
Las pipe-lines, tienen diversas aplicaciones en informtica, tales como:
Pipe-lines grficos: por lo general encontrados en tarjetas grficas, consiste en
mltiples unidades aritmticas o CPUs completas, que implementan variados
escenarios de operaciones tpicas de renderizado. Ejemplo: clculos de luz y
colores, renderizado, proyeccin de perspectiva, etc...
Pipe-lines de software o tuberas: consiste en mltiples procesos ordenados de tal
forma que el flujo de salida de un proceso alimenta la entrada del siguiente
proceso. Ejemplo: los pipelines de Unix.

1.1.3

De Multiprocesamiento3

El uso de varios procesadores est motivado por consideraciones relativas a las


prestaciones y a la fiabilidad. Podemos clasificar dichos sistemas como sigue:

Multiprocesadores Dbilmente Acoplados: Consisten en un conjunto de


sistemas relativamente autnomos, en los que cada CPU dispone de su
propia memoria principal y sus canales de E/S. En este contexto se utiliza el
trmino multicomputador.
Procesadores de Uso Especfico: Tales como un procesador de E/S. En
este caso, hay un maestro, una CPU de uso general, y los procesadores de
uso especfico estn controlados por la CPU maestra a la que proporcionan
ciertos servicios.
Multiprocesadores Fuertemente Acoplados: Constituidos por un conjunto de
procesadores que comparten una memoria principal comn y estn bajo el
control de un mismo sistema operativo.
Procesadores Paralelos: Multiprocesadores fuertemente acoplados que
pueden cooperar en la ejecucin en paralelo de una tarea o un trabajo.

Caractersticas clave de un multiprocesador:


1. Posee dos o ms procesadores de uso general similares y de capacidades
comparables.
3 Strallings, W. Organizacin y Arquitectura de Computadoras, p 575.

11 | 76

2. Todos los procesadores comparten el acceso a una memoria global


(comn). Tambin pueden utilizarse algunas memorias locales (privadas).
3. Todos los procesadores comparten el acceso a los dispositivos de E/S, bien
a travs de los mismos canales bien a travs de canales distintos que
proporcionan caminos de acceso los mismos dispositivos.
4. El sistema est controlado por un sistema operativo integrado que permite
la interaccin entre los procesadores y sus programas en los niveles de
trabajo, tarea, fichero, y datos elementales.
Organizacin
La siguiente figura describe en trminos generales la organizacin de un sistema
multiprocesador. Hay dos o ms CPUs. Cada CPU es autnoma, incluyendo una
unidad de control, una ALU, registros, y, posiblemente, cach. Cada CPU tiene
acceso a una memoria principal compartida y a dos dispositivos de E/S a travs de
algn mecanismo de interconexin. Los procesadores pueden comunicarse entre
s a travs de la memoria (mensaje e informacin de control almacenadas en
reas comunes para datos). Tambin es posible que las CPUs intercambien
seales directamente, como indican las lneas discontinuas. La memoria a
menudo se organiza de forma que sean posibles los accesos simultneos a
bloques de memoria separados.

1.1.3.1 Clasificacin.

12 | 76

Cuando la tcnica de Segmentacin no es suficiente y se desea incrementar el


desempeo ms all, se requiere utilizar ms de un procesador para la ejecucin
del programa de aplicacin.
Las CPU de multiprocesamiento se clasifican de la siguiente manera:
SISO (Single Instruction, Single Operand) computadoras independientes
SIMO (Single Instruction, Multiple Operand) procesadores vectoriales
MISO (Multiple Instruction, Single Operand) No implementado
MIMO (Multiple Instruction, Multiple Operand) sistemas SMP, Clusters

SISO (Single Instruction, Single Operand) computadoras independientes


Es el modelo tradicional de computacin secuencial donde una unidad de
procesamiento recibe una sola secuencia de instrucciones que operan en una
secuencia de datos. Vase la siguiente figura.

SIMO (Single Instruction, Multiple Operand) procesadores vectoriales


A diferencia de SISD, en este caso se tienen mltiples procesadores que
sincronizadamente ejecutan la misma secuencia de instrucciones, pero en
diferentes datos. El tipo de memoria que estos sistemas utilizan es distribuida.
Vase la siguiente figura.

13 | 76

MIMO (Multiple Instruction, Multiple Operand) sistemas SMP, Clusters


Este tipo de computadora es paralela al igual que las SIMo, la diferencia es que
MIMO es asncrono. Se tienen N procesadores, N secuencias de instrucciones y N
secuencias de datos. Cada procesador es capaz de ejecutar su propio programa
con diferentes datos. Esto significa que los procesadores operan asncronamente,
o en trminos simples, pueden estar haciendo diferentes cosas en diferentes datos
al mismo tiempo. Vase la siguiente figura.

Sistemas de Memoria Compartida


Las computadoras MIMD con memoria compartida son sistemas conocidos como
de multiprocesamiento simtrico (SMP) donde mltiples procesadores comparten
un mismo sistema operativo y memoria. Otro trmino con que se le conoce es
mquinas firmemente juntas o de multiprocesadores. Vase la siguiente figura.

14 | 76

Sistemas de Memoria Distribuida


Estos sistemas tienen su propia memoria local. Los procesadores pueden
compartir informacin solamente enviando mensajes, es decir, si un procesador
requiere los datos contenidos en la memoria de otro procesador, deber enviar un
mensaje solicitndolos.
Las computadoras MIMO de memoria distribuida son conocidas como sistemas de
procesamiento en paralelo masivo (MPP) donde mltiples procesadores trabajan
en diferentes partes de un programa, usando su propio sistema operativo y
memoria. Vase la siguiente figura.

Sistemas de memoria Compartida distribuida


Es una particin de procesadores que tienen acceso a una memoria compartida
comn pero sin un canal compartido. Esto es, fsicamente cada procesador posee
su memoria local y se interconecta con otros procesadores por medio de un
dispositivo de alta velocidad, y todos ven las memorias de cada uno como un
espacio de direcciones globales. Vase la siguiente figura.

15 | 76

1.2

Anlisis de los componentes.

Un computador es un sistema complejo; los computadores de hoy en da


contienen millones de componentes electrnicos bsicos, Cmo podramos
describirlos claramente? La clave est en reconocer la naturaleza jerrquica de la
mayora de los sistemas complejos, incluyendo el computador. Un sistema
jerrquico es un conjunto de sistemas interrelacionados, cada uno de los cuales se
organiza en una estructura jerrquica, uno tras otro, hasta que alcanza el nivel
ms bajo de subsistema elemental.
La naturaleza jerrquica de los sistemas complejos, es esencial tanto para su
diseo como para su descripcin. En cada nivel el sistema consta de un conjunto
de componentes y sus interrelaciones.
1.2.1

CPU

La CPU (Unidad Central de Procesamiento, Central Processing Unit) es un circuito


microscpico que interpreta y ejecuta instrucciones. Las CPU de las actuales
computadoras son microprocesadores construidos sobre un cristal de silicio
semiconductor donde se crean todos los elementos que forman un circuito
electrnico (transistores, etc.) y las conexiones necesarias para formarlo.
El microcircuito se encapsula en una pastilla de plstico con una serie de
conexiones hacia el exterior, en forma de patillas metlicas, que forman su nexo
de unin al resto del sistema informtico. Estas pastillas de plstico, con una
multitud de patillas de conexin metlicas, reciben el nombre de chips.
La CPU se ocupa del control y el proceso de datos en las computadoras.
Generalmente, la CPU es un microprocesador fabricado en un chip, un nico trozo
de silicio que contiene millones de componentes electrnicos. Es el cerebro de la
computadora. Los componentes estn conectados por un bus, que es una
coleccin de alambres paralelos para transmitir direcciones, datos y seales de
control. Los buses pueden ser externos a la CPU, cuando la conectan a la
memoria y a los dispositivos de E/S, pero tambin internos.
Un microprocesador combinado con los mdulos de memoria y de interconexin
se llama microcomputador. La palabra micro se usa para indicar el pequeo
tamao fsico de los componentes integrantes. La segunda parte de la palabra en
microprocesador y microcomputador es lo que realmente los diferencia.
Procesador se usa para indicar aquella seccin del sistema, la cual ejecuta las
funciones bsicas para realizar instrucciones y procesar datos de la manera
especificada por el programa. Esta parte se llama usualmente el CPU. El trmino
microcomputador se usa para indicar un sistema de computador de pequeo
tamao consistente de tres unidades bsicas: CPU, memoria e interconexin de
entrada-salida. El microprocesador se encapsula comnmente en un CI y se llama
pastilla de microprocesador. Un microcomputador se refiere, en la mayora de los
casos, a una interconexin con componentes LSI. Por otra parte, algunas pastillas
16 | 76

microprocesadores incluyen dentro de la cpsula no solamente el CPU sino una


parte de la memoria. Tal componente LSI se llama algunas veces
microcomputador de una cpsula. En la siguiente figura se muestra los bloques
del sistema de microcomputador.

1.2.1.1

Arquitecturas

El cambio ms importante de los ltimos aos en diseo de las computadoras de


los ltimos aos se dio durante los aos 1980, con la aparicin de la corriente de
diseo conocida como computadoras de conjunto reducido de instrucciones
(RISC, por sus siglas en ingles).
La tendencia tradicional, representada por las Arquitecturas CISC (Complex
Instruction Set Computing) se caracteriza por tener un nmero amplio de
instrucciones y modos de direccionamiento. Se implementan instrucciones
especiales que realizan funciones complejas, de manera que un programador
puede encontrar con seguridad, una instruccin especial que realiza en hardware
la funcin que el necesita. El nmero de registros del CPU es limitado, ya que las
compuertas lgicas del circuito integrado se emplean para implementar las
secuencias de control de estas instrucciones especiales. Los compiladores de
lenguajes de alto nivel no hacan uso de las instrucciones especiales
17 | 76

implementadas en los procesadores CISC, por lo que resultaba un desperdicio de


recursos emplear las compuertas del circuito de esta forma.
As surgi la escuela de diseo RISC (Reduced Instruction Set Computing) donde
solo se cuenta con unas pocas instrucciones y modos de direccionamiento, pero
se busca implementarlos de forma muy eficiente y que todas las instrucciones
trabajen con todos los modos de direccionamiento. Adems, se observ que una
de las tareas que tomaban ms tiempo en ejecutarse en lenguajes de alto nivel,
era el pasar los parmetros a las subrutinas a travs de la pila. Como la forma
ms rpida de hacer este paso es por medio de registros del CPU, se busc
dotarlo con un amplio nmero de registros, a travs de los cuales se pueden pasar
dichos parmetros.
1.2.1.1.1 Arquitecturas CISC
La microprogramacin es una caracterstica importante y esencial de casi todas
las arquitecturas CISC, podramos mencionar por ejemplo:
Intel 8086, 8088, 80286, 80386, 80486.
Motorola 68000, 68010, 68020, 68030, 6840.
La microprogramacin significa que cada instruccin de mquina es interpretada
por una microprograma localizada en una memoria en el circuito integrado del
procesador. En la dcada de los sesentas la microprogramacin, por sus
caractersticas, era la tcnica ms apropiada para las tecnologas de memorias
existentes en esa poca y permita desarrollar tambin procesadores con
compatibilidad ascendente. En consecuencia, los procesadores se dotaron de
poderosos conjuntos de instrucciones.
Las instrucciones compuestas son decodificadas internamente y ejecutadas con
una serie de microinstrucciones almacenadas en una ROM interna. Para esto se
requieren de varios ciclos reloj (al menos uno por microinstruccin).
Caractersticas CISC frente a RISC4
Tras el entusiasmo inicial por la mquina RISC, ha habido una creciente
conviccin de que los diseos RISC pueden sacar provecho de la inclusin de
algunas caractersticas CISC y de que los diseos CISC pueden sacar provecho
de la inclusin de algunas caractersticas RISC. Los resultados son que los
diseos RISC son ms recientes.
Una comparacin interesante se muestra en la figura siguiente. La tabla lista
varios procesadores y los compara segn varias caractersticas. Para el objetivo
de esta comparacin, se considera tpico de un RISC lo siguiente:
1. Un nico tamao de instruccin.
4 Strallings, W. Organizacin y Arquitectura de Computadoras, pag 451

18 | 76

2. Ese tamao es tpicamente 4 bytes.


3. Un pequeo nmero de modos de direccionamiento de datos, tpicamente
mayor que 5.
4. No se usa direccionamiento indirecto que requiera efectuar un acceso a
memoria para conseguir la direccin de memoria de otro operando.
5. No hay operaciones que combinen carga/almacenamiento con clculos
aritmticos.
6. No se direcciona ms de un operando de memoria por instruccin.
7. Las operaciones de carga/almacenamiento no soportan un alineamiento de
datos arbitrarios.
8. Un nmero mximo de usos de la unidad de la gestin de memoria

(memory managament unit, MMU) de una direccin de dato en cada


instruccin.
9. El nmero de bits de un campo designador de registro entero es de cinco o
ms. Esto quiere decir que, en un momento dado, se pueden referenciar
explcitamente por lo menos 32 registros enteros.
10. El nmero de bits de un campo designador de registro de punto flotante es
de cuatro o ms. Esto quiere decir que por lo menos 16 registros de punto
flotante se pueden referenciar en un momento dado.

1.2.1.1.1 Arquitecturas RISC


19 | 76

Buscando aumentar la velocidad del procesamiento se descubri en base a


experimentos que, con una determinada arquitectura de base, la ejecucin de
programas compilados directamente con microinstrucciones y residentes en
memoria externa al circuito integrado resultaban ser ms eficientes, gracias a que
el tiempo de acceso de las memorias se fue decrementando conforme se
mejoraba su tecnologa de encapsulado.
Debido a que se tiene un conjunto de instrucciones simplificado, stas pueden
implantar por hardware directamente en la CPU, lo cual elimina el microcdigo y la
necesidad de decodificar instrucciones complejas.
En investigaciones hechas a mediados de la dcada de los setentas, con respecto
a la frecuencia de utilizacin de una instruccin en un CISC y al tiempo para su
ejecucin se observ lo siguiente:

Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total de
ejecucin de un programa.
Existen secuencias de instrucciones simples que obtienen el mismo
resultado que secuencias complejas predeterminadas, pero requieren
tiempos de ejecucin ms cortos.

Segmentacin con instrucciones regulares5


La mayora de las instrucciones son del tipo registro a registro, y un ciclo de
instruccin tiene las dos siguientes fases:

I: Capacitacin de instruccin.
E: Ejecucin. Realiza una operacin de la ALU con registros como entrada
y salida.

Las operaciones de carga y almacenamiento requieren tres fases:

I: Capacitacin de instruccin.
E: Ejecucin. Calcula una direccin de memoria.
D: Memoria. Operacin registro a memoria o memoria a registro.

5 Strallings, W. Organizacin y Arquitectura de Computadoras, p. 453

20 | 76

La figura anterior representa la temporizacin de una secuencia de instrucciones


que no usan segmentacin. Sin duda, se trata de un proceso dispendioso. La
siguiente figura muestra un esquema de segmentacin de dos vas, en el cual las
fases I y E de dos instrucciones diferentes se pueden ejecutar simultneamente.
Este esquema ofrece el doble de velocidad de ejecucin que un esquema serie.

La segmentacin puede mejorarse permitiendo dos accesos a memoria fase. Esto


produce la secuencia que se muestra en la siguiente figura. Ahora, hasta tres
instrucciones pueden solaparse, y la mejora es como mucho un factor de tres. Las
instrucciones de bifurcacin hacen que la aceleracin sea un poco menor de la
mxima posible. Si una instruccin necesita un operando modificado por la
instruccin precedente, se necesita un retardo. Esto puede ser llevado a cabo por
un NOOP.

En la siguiente figura se muestra una tabla comparativa de estas arquitecturas.

21 | 76

1.2.1.2

Tipos

Intel6
En septiembre de 1969 una compaa japonesa, Busicom, se acerc a Intel para
pedirle que fabricara 12 chips. El ingeniero de Intel asignado a este proyecto, Ted
Hoff, examin el plan y se percat de que poda poner una CPU de 4 bits de
propsito general en un solo chip. Fue as como en 1970 naci la primera CPU en
un solo chip, la 4004 de 2300 transistores.
Cuando Intel decidi que valdra la pena hacer el intento de usar la 4004 en otros
proyectos, comenz a trabajar en una nueva versin de ocho bits del chip, el 8008,
introducido en 1972. Este diseo dio como resultado el 8080, una CPU pequea,
de propsito general, introducido en 1974.
En 1978 lleg el 8086, una verdadera CPU de 16 bits en un solo chip. Al 8086
sigui el 8088, que tena la misma arquitectura que el 8086 y ejecutaba los
mismos programas pero tena un bus de 8 bits en lugar de uno de 16 bits.
Ni el 8088 ni el 8086 podan direccionar ms de un megabyte de memoria. Para
principios de los ochentas esto se convirti en un problema cada vez ms grave,
por lo que Intel dise el 80286, una versin del 8086 compatible hacia arriba.
El siguiente paso lgico era una verdadera CPU de 32 bits en un chip, el 80386,
que sali al mercado en 1985. Cuatro aos ms tarde sali el 80486. ste era

6 Tanenbaum, AS. Organizacin de computadoras un enfoque estructurado, pag. 29

22 | 76

bsicamente en una versin ms rpida del 80386 que adems tena una unidad
de punto flotante y 8KB de memoria cach en el chip.
En 1993 Intel introdujo el Pentium, tena dos filas de procesamiento, lo que le
ayudaba a ser dos veces ms rpido que el 80486. Apareci la siguiente
generacin con el nombre de Pentium Pro, en lugar de tener dos o ms filas de
procesamiento, ste tena una organizacin interna muy distinta y poda ejecutar
hasta cinco instrucciones a la vez. Incorpora una memoria cach de dos niveles.
El mismo chip procesador tena 8KB de memoria para retener las instrucciones de
uso comn, y 8 KB de memoria para retener datos de uso comn.
El siguiente procesador Intel fue el Pentium II, que era bsicamente un Pentium
Pro con la adicin de extensiones multimedia especiales (llamadas MMX).
Los primeros integrantes de la familia Intel se muestran en la siguiente figura 7.

En
la

siguiente tabla se muestran los procesadores creados por AMD e Intel.

7 Tanenbaum, AS. Organizacin de computadoras un enfoque estructurado,


pag. 31

23 | 76

24 | 76

25 | 76

1.2.1.3

Caractersticas

La velocidad de la CPU se mide en MIPS (millones de instrucciones por


segundo).
El tamao de la palabra es el nmero de bits que la CPU puede procesar a
la vez.
Un procesador de 32 bits puede manipular 32 bits simultneamente.
La CPU es un componente computacional completo, que se fabrica en un
solo chip.
Cada operacin dentro de la CPU toma lugar en un pulso de reloj. La
velocidad del reloj se mide en megahertz (MHz) o millones de tics por
segundo.
Intel es una de los fabricantes ms grandes de CPU.
Un ciclo de reloj, es el tiempo ms corto durante el cual una CPU puede
procesar una operacin: calcular, comparar etc. La cantidad de ciclo que el
reloj interno de una CPU puede realizar en un segundo es frecuentemente
medida en Hertz. Un megahertz (MHz) es un milln de ciclos por segundo.
Las CPU estn disponibles en las siguientes velocidades: 166mhz, 233mhz,
450mhz, 733mhz, 850mhz y 1000mhz (1024mhz = 1GHz).
Actualmente estn disponibles procesadores con velocidades de: 2.26GHz,
2.8GHz, 3.0GHz, 3.2GHz.

La CPU ha de cumplir dos caractersticas bien definidas:


I.
II.

Ser capaz de reconocer y ejecutar una serie de instrucciones


elementales (programa) en base a las cuales se puede realizar
cualquier proceso de datos deseado, por complejo que sea.
Tener separados dos estados diferentes. En una primera fase ha de
poder recibir y memorizar las instrucciones que configuran el proceso
pedido (introduccin del programa) y en segunda fase debe ejecutar en
secuencia las instrucciones recibidas (ejecucin del programa). Al
realizar esta ejecucin se leern los datos que se necesiten a travs de
un dispositivo de entrada de datos en el momento en que sean
requeridos, realizando las operaciones que forman el proceso hasta la
26 | 76

obtencin de los resultados, los cuales sern enviados al usuario a


travs de un dispositivo de salida.
Adems las caractersticas se pueden clasificar en lgicas y fsicas.
Lgicas:
1-. Longitud de la palabra procesada, esto es, nmero de bits procesados en el
mismo ciclo de reloj.
2.- Capacidad de acceso a la memoria o la cantidad de memoria que puede
manejar.
Fsicas:
1.-Retraso de propagacin de la seal elctrica: representa el tiempo que tarda la
seal en tomar uno u otro valor dentro del circuito.
2.- Disipacin de potencia: Este valor indica el calor que genera el procesador al
permanecer operativo.

1.2.1.4 Funcionamiento
La CPU8 (Unidad Central de Procesamiento) es el lugar en donde se manipulan
los datos, se conoce como el cerebro de la computadora, la CPU contiene un
pequeo chip llamado microprocesador. Cada CPU est formada por al menos de
dos partes bsicas: la unidad de control y la unidad lgica-aritmtica.
Unidad de control
La unidad de control es el centro lgico de la computadora ya que los recursos de
una computadora son administrados en la unidad de control, es esta unidad es la
que se encarga de dirigir el flujo de datos.
Las instrucciones de la CPU se encuentran incorporadas en la unidad de control,
estas instrucciones o conjunto de instrucciones enumeran todas las operaciones
que una CPU puede realizar. Cada instruccin es expresada en microcdigo.
Antes de que un programa sea ejecutado, cada comando debe desglosarse en
instrucciones que correspondan a las que estn en las instrucciones de la CPU. Al
momento de ejecutar el programa, la CPU lleva a cabo las instrucciones en orden
convirtindolas en micro cdigo. A pesar de la complejidad que resulta del
proceso, la computadora puede realizar este proceso a una velocidad increble.
Cuando una CPU es desarrollada, el conjunto de instrucciones tiene los mismos
comandos que su predecesora, aparte de incluirle algunos nuevos. Esto permite
que el software escrito para una CPU trabaje con computadoras con procesadores
8 Miles, J. Murdocca VPH. Principios de arquitecturas de computadoras p. 104

27 | 76

ms recientes, esta estrategia es llamada Compatibilidad ascendente. Esta


caracterstica permite ahorrar a los consumidores comprar un sistema nuevo cada
vez que una parte del sistema es actualizada.
Se le conoce compatibilidad decreciente o inversa, cuando un dispositivo del
hardware o pieza del software puede interactuar con el mismo equipo y software
que su predecesor.
Unidad lgica-aritmtica (ALU)9
Los datos almacenados en una computadora son de tipo numrico, es por ello que
gran parte del procesamiento involucra la comparacin de nmeros o la
realizacin de operaciones matemticas. Dentro de la unidad lgica aritmtica de
la computadora se realizan slo dos tipos de operaciones: operaciones aritmticas
y operaciones lgicas.
En el cuadro siguiente se muestra las operaciones realizadas por la unidad lgica
aritmtica.
Operaciones aritmticas
(operaciones matemticas)
+ Suma
- Resta
Multiplicacin
Divisin
^ Elevar a una potencia

Operaciones lgicas
(comparaciones de nmeros)
= , Igual a, no igual a
> , > Mayor que, no mayor que
< , < Menor que, no menor que
> , > Mayor que o igual a, no mayor
que ni igual a
< , < Menor que o igual a, no menor
que ni igual a

La unidad lgica aritmtica incluye un grupo de registros, ubicaciones de alta


velocidad, las cuales se usan para conservar los datos que se procesan en ese
momento.
Para comprender la organizacin de la CPU, consideremos sus objetivos, las
cosas que debe hacer:
-

Captar instrucciones: la CPU debe leer instrucciones de la memoria.


Interpretar instrucciones: la instruccin debe decodificarse para determinar
qu accin es necesaria.
Captar datos: la ejecucin de una instruccin puede exigir leer datos de la
memoria o de un mdulo de E/S.
Procesar datos: la ejecucin de una instruccin puede exigir llevar a cabo
alguna operacin aritmtica o lgica con los datos.
Escribir datos: los resultados de una ejecucin pueden exigir escribir datos
en la memoria o en un mdulo de E/S.

9 Peter Norton, Introduccin a la computacin, p. 46.

28 | 76

Para poder hacer esto, la CPU necesita almacenar algunos datos temporalmente.
Debe recordar la posicin de ltima instruccin de forma que sepa dnde ir a
buscar la siguiente. Necesita almacenar instrucciones y datos temporalmente
mientras una instruccin est siendo ejecutada. En otras palabras, la CPU
necesita una pequea memoria interna.

En la figura anterior se observa una visin simplificada de la CPU, que indica su


conexin con el resto del sistema a travs del bus de sistema. Una interfaz similar
sera necesaria para cualquiera de las estructuras de interconexin. Recordando
que los principales componentes de la CPU son unidad aritmtica lgica y unidad
de control. La ALU lleva acabo la verdadera computacin o procesamiento de
datos. La unidad de control controla las transferencias de datos hacia dentro y
hacia afuera de la CPU y el funcionamiento de la ALU. Adems la figura muestra
una memoria interna mnima, que consta de un conjunto de lugares de
almacenamiento, llamados registros.
En la siguiente figura se presenta una visin un poco ms detallada de la CPU. Se
indican los caminos de transferencia de datos y de control lgico, que incluye un
elemento con el rotulo bus interno de la CPU. Este elemento es necesario para
transferir datos entre los diversos registros y la ALU, ya que est en realidad solo
opera con los datos de la memoria interna de la CPU. La figura muestra tambin
29 | 76

los elementos bsicos tpicos de la ALU. Observe la similitud entre la estructura


interna del computador en su totalidad y la estructura interna de la CPU. En ambos
casos hay una pequea coleccin de elementos principales (computador: CPU,
E/S, memoria; CPU: unidad de control, ALU, registros) conectados por caminos de
datos.

REGISTROS
Dentro de la CPU hay un conjunto de registros que funciona como nivel de la
jerarqua de memoria por encima de la memoria principal y de la cache. Los
registros de la CPU son de dos tipos:
-

Registros visibles al usuario: Permiten al programador de lenguaje


maquina o ensamblador minimizar las referencias a memoria principal
optimizando el uso de registros.

30 | 76

Registros de control y de estado: son utilizados por la unidad de control


para controlar el funcionamiento de la CPU y por programas privilegiados
del sistema operativo para controlar la ejecucin de programas.

Registros visibles al usuario


Un registro visible al usuario es aquel que puede ser referenciado por medio de
lenguaje mquina que ejecuta la CP. Prcticamente todos los diseos
contemporneos de CPUs estn provistos de varios registros visibles al usuario,
en oposicin a disponer de un nico acumulador. Podemos clasificarlo de las
siguientes categoras:
-

Uso general
Datos
Direcciones
Cdigos de accin

Los registros de uso general pueden ser asignados por el programador a diversas
funciones. A vece, su uso dentro del repertorio de instrucciones es ortogonal a la
operacin. Es decir, cualquier registro de uso general puede contener el operando
para cualquier cdigo de operacin. Esto proporciona una utilizacin de registros
de autntico uso general. Con frecuencia, sin embargo, existen restricciones. Por
ejemplo, puede haber registros especficos para operaciones en punto flotante.
En algunos casos los registros de uso general pueden ser utilizados para
funciones de direccionamiento. En otros casos hay una separacin clara o parcial
entre registros de datos y registros de direcciones. Los registros de datos pueden
ser usados nicamente para contener datos y no se pueden emplear en el clculo
de una direccin de operando. Los registros de direccin pueden ser en si
registros de uso ms o menos general, o pueden estar dedicados a un modo de
direccionamiento particular.
Registros de control y de estado
Hay diversos registros de la CPU que se pueden emplear para controlar su
funcionamiento. La mayor parte de las maquinas, no son visibles al usuario.
Algunos de ellos pueden ser visibles a instrucciones maquina ejecutadas en un
modo de control o de sistema operativo.
Naturalmente, maquinas diferentes tendrn diferentes organizaciones de registros
y usaran distinta terminologa. Se enumera aqu una lista razonablemente
completa de tipos de registros, con una breve descripcin.
Son esenciales cuatro registros para la ejecucin de una instruccin:
-

Contador de programa: contiene la direccin de la instruccin a captar.


Registro de instruccin: contiene la instruccin captada ms recientemente.
31 | 76

Registro de direccin de memoria: contiene la direccin de una posicin de


memoria.
Registro intermedio de memoria: contiene la palabra de datos a escribir en
memoria o la palabra leda ms recientemente.

Antes de escribir un programa o de investigar una instruccin, es necesario


conocer la configuracin interna del microprocesador. A continuacin se analiza la
arquitectura interna de los microprocesadores del 8086 al Pentium 4, la cual est
visible para los programas.

32 | 76

Aclaraciones:
1.- Los registros sombreados slo existen en los microprocesadores del 80386
hasta el Pentium 4.
2.- Los registros FS y GS no tienen nombres especiales.
De propsito general
Algunos registros son de propsito general (o registros multipropsito), mientras
que otros tienen propsitos especiales. A continuacin se describen los registros
multipropsito.
60 Registro
EAX (Acumulador)

EBX (ndice base)

Caractersticas33
Se define como un registro de 32 bits
(EAX), como un registro de 16 bits
(AX) o como uno de dos registros de
8 bits (AH y AL). Si se direcciona un
registro de 8 o de 16 bits, slo
cambia esa porcin del registro de 32
bits sin afectar a los bits restantes. El
acumulador
se
emplea
para
instrucciones como multiplicacin,
divisin
y
algunas
de
las
instrucciones
de
ajuste.
En
procesadores 80386 y superiores, el
registro EAX puede almacenar
tambin
la
direccin
de
desplazamiento de una posicin e en
el sistema de memoria.
ste puede direccionarse como EBX,
BX, BH o BL. Algunas veces guarda
la direccin de desplazamiento de
33 | 76

ECX (Conteo)

EDX (Datos)

EBP (apuntador de la base)

61 EDI (ndice de destino

ESI (ndice de origen)

una posicin en el sistema de


memoria, en todas las versiones del
microprocesador. Tambin permite
direccionar datos de la memoria.
Almacena la cuenta de varias
instrucciones.
Adems
puede
guardar
la
direccin
de
desplazamiento de datos en la
memoria. Las instrucciones utilizadas
en un conteo son las instrucciones de
cadena
repetida
(REP/REPE/REPNE);
y
las
instrucciones desplazamiento (shift),
rotacin (rtate) y LOOP/LOOPD.
Guarda una parte del resultado de
una multiplicacin, o parte del
dividendo antes de una divisin. En
el 80386 y superiores, este registro
tambin puede direccionar datos de
la memoria.
Apunta a una posicin de memoria
en
todas
las
versiones
del
microprocesador
para
las
transferencias de datos de memoria.
Este registro se direcciona como BP
o EBP.
Por lo general, direcciona datos de
destino de cadenas para las
instrucciones de cadenas. Tambin
funciona como un registro de
propsito general de 32 bits (EDI) o
de 16 bits (DI).
Se utiliza como ESI o SI. Direcciona
datos de cadena de origen para las
instrucciones
de
cadenas.
Se
direcciona como SI al utilizarlo como
registro de 16 bits; se direcciona
como ESI al utilizarlo como registro
de 32 bits.

De segmento de memoria
34 | 76

Estos registros adicionales generan direcciones de memoria cuando se combinan


con otros registros en el microprocesador. A continuacin se en lista estos
registros de segmentos.
Registro
CS (cdigo)

DS (Datos)

ES (extra)

SS (pila)

Caractersticas
Es una seccin de la memoria que
almacena el cdigo (procedimientos
y programas) utilizado por el
microprocesador. As mismo define la
direccin inicial de la seccin de
memoria que guarda el cdigo. En la
operacin en modo real, define el
inicio de una seccin de 64 Kbytes
de memoria. El segmento de cdigo
est limitado a 64 Kbytes en los
microprocesadores del 8088 y al
80286, y a 4 Gbytes en los
microprocesadores
80386
y
superiores cuando stos operan en
modo protegido.
Es una seccin de memoria que
contiene la mayor parte de los datos
utilizados por un programa. Se
accede a los datos en el segmento
de datos mediante una direccin de
desplazamiento o el contenido de
otros registros que guardan la
direccin de desplazamiento. La
longitud est limitada a 64 Kbytes en
los microprocesadores del 8086 al
80286, y a 4 Gbytes en los
microprocesadores
80386
y
superiores.
Es un segmento de datos adicional
utilizado por algunas de las
instrucciones de
cadena
para
guardar datos de destino.
Define el rea de memoria utilizada
para la pila. El punto de entrada de la
pila se determina mediante los
registros segmento de pila y
apuntador de pila. El registro BP
tambin direcciona datos dentro del
segmento de pila.
35 | 76

FS y GS

Son
registros
de
segmento
suplementario, disponibles en los
microprocesadores del 80386 al
Pentium 4 para que los programas
puedan acceder a dos segmentos de
memoria adicionales. Windows utiliza
estos segmentos para operaciones
internas, no existe una definicin
disponible de su uso.

De instrucciones10
EIP (apuntador de instrucciones). EIP direcciona la siguiente instruccin en una
seccin de memoria definida como segmento de cdigo. Este registro es IP (16
bits) cuando el microprocesador opera en modo real y EIP (32 bits) cuando el
80386 y superiores operan en modo protegido. Los procesadores 8086, 8088 y
80286 no contienen un registro EIP, por lo que slo el 80286 y superiores operan
en modo protegido. El apuntador de instrucciones, que apunta a la siguiente
instruccin en un programa, se utiliza por el microprocesador para encontrar la
siguiente instruccin secuencial en un programa ubicado dentro del segmento de
cdigo. El apuntador de instrucciones puede modificarse mediante un salto (jump)
o una instruccin de llamada (call).
1.2.2 Memoria
La memoria de una computadora consiste en un conjunto de registros numerados
(direccionados) en forma consecutiva, cada uno de los cuales normalmente
almacena un byte de informacin. Un byte es un conjunto de ocho bits. Cada
registro tiene una direccin, a la que se suele designar como locacin de memoria.
La denominacin nibble se refiere a un conjunto de cuatro bits. Normalmente, hay
acuerdo acerca de los significados de los trminos bit, byte y nibble, pero no
as sobre el concepto de palabra, el que depende de la arquitectura particular de
cada procesador.
1.2.2.1 Conceptos bsicos del manejo de la memoria 11
Un concepto relacionado en la unidad de transferencia. Para memorias internas, la
unidad de transferencia es igual al nmero de lneas de entrada/salida de datos
del mdulo de memoria. A menudo es igual a la longitud de palabra, pero puede
no serlo. Para aclararlo consideremos tres conceptos relacionados con la memoria
interna:
10 Ibdem., p. 52.
11 Organizacin y Arquitectura de Computadoras. 4ta Edicin p.99

36 | 76

Palabra: es la unidad natural de organizacin de la memoria. El tamao


de la palabra suele coincidir con el nmero de bits utilizados para
representar nmeros y con la longitud de las instrucciones.
Unidades direccionables: en muchos sistemas la unidad direccionable es
la palabra.
Unidad de transferencia: para la memoria principal es el nmero de bits
que se leen o escriben en memoria a la vez. No tiene que coincidir con una
palabra o con una unidad direccionable.

Una de las diferencias ms acusadas entre tipos de memorias es el mtodo de


acceso. Se pueden distinguir cuatro tipos:
-

Acceso secuencial: la memoria se organiza en unidades de datos


llamadas registros. El acceso debe realizarse con una secuencia lineal
especfica. Se hace uso de la informacin de direccionamiento almacenada
para separar los registros y ayudar en el proceso de recuperacin de datos.
Se utiliza un mecanismo de lectura/escritura compartida que debe ir
trasladndose desde su posicin actual ala deseada, pasando y obviando
cada registro intermedio. As pues, el tiempo necesario para acceder a un
registro dado es muy variable.
Acceso directo: como en el caso de acceso secuencial, el directo tiene
asociado un mecanismo de lectura/escritura. Sin embargo, los bloques
individuales o registros tienen una direccin nica basada en su direccin
fsica. El acceso se lleva a cabo mediante un acceso directo a una vecindad
dada, seguido de una bsqueda secuencial, bien contando, o esperando
hasta alcanzar la posicin final.
Acceso aleatorio (random): cada posicin direccionable de memoria tiene
un nico mecanismo de acceso cableado fsicamente. El tiempo de acceder
a una posicin dada es constante e independiente de la secuencia de
accesos previos. Por tanto, cualquier posicin puede seleccionarse
aleatoriamente y ser direccionada y accedida directamente.
Asociativa: es una memoria del tipo de acceso aleatorio que permite hacer
una comparacin de ciertas posiciones de bits dentro de una palabra
buscando que coincidan con unos valores dados, y hacer esto para todas
las palabras simultneamente. Una palabra es por tanto recuperada
basndose un una porcin de su contenido en lugar de su direccin.
Tiempo de acceso: para memorias de acceso aleatorio es el tiempo que
tarda en realizarse una operacin de escritura o de lectura, es decir, el
tiempo que transcurre desde el instante en el que se presenta una direccin
a la memoria hasta que el dato, o ha sido memorizado, o est disponible
para su uso.
Tiempo de ciclo de memoria: este concepto se aplica primordialmente a
las memorias de acceso aleatorio y consiste en el tiempo de acceso y algn
tiempo ms que se requiere antes de que pueda iniciarse un segundo
acceso a memoria. Este tiempo adicional puede que sea necesario para
37 | 76

que finalicen las transiciones en las lneas de seal o para regenerar los
datos en el caso de lecturas destructivas.
Velocidad de transferencia: es la velocidad a la que se pueden transferir
datos a, o desde, una unidad de memoria. Para memorias de acceso
aleatorio coinciden con el inverso del tiempo de ciclo. Para memorias de
acceso aleatorio coinciden con el inverso del tiempo de ciclo. Para otras
memorias se utiliza la siguiente relacin:

TN= TA + N/R
Donde:
TN=Tiempo medio de escritura o de lectura de N bits
TA=Tiempo de acceso medio
N= Numero de bits
R=Velocidad de transferencia, en bits por segundo (bps)
1.2.2.2 Memoria principal semiconductora.12
En computadores antiguos, la forma ms comn de almacenamiento de acceso
aleatorio para a memora principal consista en una matriz de pequeos anillos
ferromagnticos denominados ncleos. Es por esto que la memoria principal
reciba a menudo el nombre de ncleo, un trmino que perdura en la actualidad. El
advenimiento de la microelectrnica y sus ventajas, acabo con las memorias de
ncleos. Hoy en da es casi universal el uso de memorias semiconductoras para la
memoria principal.
1.2.2.2.1 Tipos de memorias semiconductoras de acceso aleatorio
Todos los tipos de memorias que se exploran en esta seccin son de acceso
aleatorio. Es decir, las palabras individuales de la memoria son accedidas
directamente mediante lgica de direccionamiento cableada interna.
La siguiente tabla lista los principales tipos de memoria semiconductoras. La ms
comn es la denominada Memoria de Acceso Aleatorio (RAM, Random Access
Menor). Una caracterstica distintiva de las RAMs es que es posible tanto leer
datos como escribir rpidamente nuevos datos en ellas. Tanto lectura como la
escritura se ejecutan mediante seales elctricas.

12 Organizacin y Arquitectura de Computadoras. 4ta Edicin p.107-108

38 | 76

La otra caracterstica distintiva de una RAM es que es voltil. Debe estar


continuamente alimentada, si se interrumpe la alimentacin se pierden los datos.
As pues, las RAMs pueden utilizarse solo como almacenamiento temporal.
Las tecnologas de las RAMs se dividen en dos variantes: estticas y dinmicas.
Una RAM dinmica est hecha con celdas que almacenan los datos como cargas
en condensadores. La presencia o ausencia de cargas en un condensador se
interpreta como el 1 o el 0 binarios. Ya que los condensadores tienen una
tendencia natural a descargarse, las RAMs dinmicas requieren refrescos
peridicos para mantener memorizados los datos. En una RAM esttica los
valores binarios se almacenan utilizando configuraciones de puertas formando
biestables (flip-flop).
Tanto las RAMs estticas como las dinmicas son voltiles. Una celda de memoria
RAM dinmica es ms simple que una esttica y por tanto ms pequea. Por
tanto, las RAM dinmicas son ms densas (celdas ms pequeas = ms celdas
por unidad de superficie) y ms baratas que las correspondientes RAMs estticas.
Por otra parte, una RAM dinmica requiere de circuitera para el refresco. En
memorias grandes, el coste fijo de la circuitera se ve ms que compensado por el
menor conste de las celdas RAM dinmicas. As pues, las RAM dinmicas tienden
a ser las preferidas para memorias grandes. Un ltimo detalle es que las RAMs
estticas son generalmente algo ms rpidas que las dinmicas.
En claro contraste con las RAMs estn las memorias se solo lecturas (ROM,
Read-Only Menor). Como su nombre sugiere, una ROM contiene un patrn
permanente de datos que no puede alterarse. Aunque es posibles leer de una
ROM, no se puede escribir nuevos datos en ella. Otras aplicaciones son:
-

Subrutinas de biblioteca para funciones de uso frecuente


Programas del sistema
39 | 76

Tablas de funciones

Cuando se requiere un tamao modesto, la ventaja de una ROM es que el


programa o los datos estarn permanentemente en memoria principal y nunca
ser necesario cargarlos desde un dispositivo de memoria secundaria.
Una ROM se construye como cualquier otro chip de circuito integrado, con los
datos cableados en el chip durante el proceso de fabricacin. Esto presenta dos
problemas:
-

La etapa de insercin de datos implica unos costes fijos relativamente


grandes, tanto si se va a fabricar una o miles de copias de una misma
ROM.
No se permite un fallo. Si uno de los bits es errneo, debe desecharse la
tirada completa de ROMs.

Cuando se necesitan solo una pocas ROMs con un contenido particular, una
alternativa ms barata es la ROM programable (PROM). Al igual que las ROMs,
las PROMs son no voltiles y pueden grabarse solo una vez. Para la PROM, el
proceso de escritura se lleva a cabo elctricamente y pueden realizarlo el
suministrador o el cliente con posterioridad a la fabricacin del chip original. Se
requiere un equipo especial para el proceso de escritura o programacin. Las
PROMs proporcionan flexibilidad y comodidad.
Otra variante de memoria de solo lectura es la memoria de sobre todo lectura,
que es til para aplicaciones en la que las operaciones de lectura son bastante
ms frecuentes que las de escritura, pero para las que se requiere un
almacenamiento no voltil. Hay tres formas comunes de memorias de sobre todo
lectura: EPROM, EEPROM, Y memorias FLASH.
La memoria de solo lectura programable y borrable pticamente (EPROM,
Erasable Programmable Read-Only Menor) se lee y escribe elctricamente como
la PROM. Sin embargo, antes de la operacin de escritura, todas las celdas de
almacenamiento deben primeramente borrarse a la vez, mediante exposicin del
chip encapsulado a radiacin ultravioleta. Este proceso de borrado puede
realizarse repetidas veces; cada borrado completo puede durar hasta 20 minutos.
As pues, las EPROM pueden modificarse mltiples veces y, al igual que las ROM
y las PROM, retiene su contenido, en teora indefinidamente. Para una capacidad
similar, una EPROM es ms cara que una PROM, pero tiene como ventaja
adicional la posibilidad de actualizar mltiples veces su contenido.
La forma ms nueva de memoria semiconductora es la memoria flash
(denominada as por la velocidad con la que puede reprogramarse). Al igual que
las EEPROM, las flash utilizan una tecnologa de borrado elctrico. Una memoria
flash puede borrarse entera en uno o unos cuantos segundos, mucho ms rpido
que las EPROM. Adems, es posibles borrar solo bloques concretos de memoria
en lugar de todo el chip. Sin embargo, las memorias flash no permiten borrar a
40 | 76

nivel byte. Al igual que las EPROM, las flash utilizan solo un transistor por bit,
consiguindose las altas densidades (comparadas con las EEPROMs) de las
EPROMs.
1.2.2.2.2 Organizacin13
El elemento bsico de una memoria semiconductora es la celda de memoria.
Aunque se utilizan diversas tecnologas electrnicas, todas las celdas de memoria
comparten ciertas propiedades:
-

Presentan dos estados estables (o semi-estables), que pueden emplearse


para representar el 1 y el 0 binarios.
Pueden escribirse en ellas (al menos una vez) para fijar su contenido.
Pueden leerse para detectar su estado.

La siguiente figura describe el funcionamiento de una celda de memoria. Lo ms


comn es que la celda tenga tres terminales para transportar seales elctricas. El
terminal de seleccin, como su nombre indica, selecciona la celda para la
operacin de escritura o de lectura. El terminal de control indica el tipo de
operacin. Para la escritura, el tercer terminal se utiliza como salida del estado de
la celda.

1.2.2.2.3 Lgica del chip


Como otros circuitos integrados, las memorias semiconductoras vienen en chips
encapsulados. Cada chip contiene un matriz de celdas de memoria. Con la
tecnologa actual, los chips de 4-Mbits son comunes, y se empiezan a utilizar los
de 16-Mbits.
En toda la jerarqua de memoria se vio que existen compromisos de velocidad,
capacidad y coste. Estos compromisos existen tambin cuando consideramos la
organizacin de las celdas de memoria y del resto de funciones lgicas de un chip
13 Organizacin y Arquitectura de Computadoras. 4ta Edicin p.110

41 | 76

de memoria. Para las memorias semiconductoras, unos de los aspectos


fundamentales de diseo es el nmero de bits de datos que pueden ser
ledos/escritos a la vez. En un extremo esta la estructura en la que la disposicin
fsica de las celdas de la matriz es la misma que la disposicin fsica de las celdas
de la matriz es la misma que la disposicin lgica (tal y como la percibe el
procesador) de las palabras de memoria. La matriz est organizada en W palabras
de B bits cada una. Por ejemplo, un chip de 16-Mbits podra estar estructurado en
1-Mpalabras de 16 bits. En el otro extremo esta la estructura denominada un bitpor-chip, en la que los datos se escriben/leen por bits. A continuacin describimos
la estructura de un chip de memoria DRAM; la estructura de una ROM integrada
es similar, aunque ms sencilla.
1.2.2.3 Memoria Cache 14
El propsito de la memoria chache es aproximar la velocidad de la memoria a las
de aquellas ms rpidas disponibles, posibilitando al mismo tiempo un tamao
grande de memoria al precio de memorias semiconductoras menos costosas. El
concepto se ilustra en la siguiente figura. Hay una memoria principal relativamente
grande y ms lenta, junto con una memoria cache ms pequea y rpida. La
cache contiene una copia de partes de la memoria principal. Cuando la CPU
intenta leer una palabra de memoria, se hace una comprobacin para determinar
si la palabra est en la cache. Si es as, se entrega dicha palabra a la CPU. Si no,
un bloque de memoria principal, consistente en un cierto nmero de palabras, se
transfiere a la cache, y despus la palabra es entregada a la CPU. Debido al
fenmeno de localidad de las referencias, cuando un bloque de datos es
capturado por la cache para satisfacer una referencia a memoria simple, probable
que se haga referencias futuras a otras palabras del mismo bloque.

14 Organizacin y Arquitectura de Computadoras. 4ta Edicin p.99

42 | 76

La figura que se observa abajo describe la estructura de un sistema de memoria


cache/principal. La memoria principal consta de hasta 2 n palabras direccionables,
teniendo cada palabra una nica direccin de n bits. Esta memoria la
consideramos dividida en un numero de bloques de longitud fija, de K palabras por
bloque. Es decir, hay M=2n/K bloques. La cache consta de C lneas de K palabras
cada una, y el nmero de lneas de la cache. Ya que hay ms bloques que lneas,
una lnea dada no puede dedicarse univoca y permanentemente a un bloque. Por
consiguiente, cada lnea incluye una etiqueta que identifica que bloque particular
est siendo almacenado. La etiqueta es usualmente una oportunidad de la
direccin de memoria principal.

43 | 76

1.2.2.3.1 Elementos de diseo de la Cache


Aunque hay muy diversas implementaciones de cache, existen unos cuantos
criterios bsicos de diseo que sirven para clasificar y diferenciar entre
arquitecturas de cache.
Tamao de cache
Cuanto ms grande es, mayor es el nmero de puertas implicadas en direccionar
las cache. El resultado es que caches grandes tienden a ser ligeramente ms
lentas que las pequeas. El tamao de cache esta tambin limitado por las
superficies disponibles de chip y de tarjeta.
Funcin de correspondencia
Ya que hay menos lneas de cache que bloques de memoria principal, se necesita
un algoritmo que haga corresponder bloques de memoria principal a lneas de
cache. Adems, se requiere algn medio de determinar que bloque de memoria
principal ocupa actualmente una lnea dada de cache.
44 | 76

Correspondencia Directa
La tcnica ms simple consiste en hacer corresponder cada bloque de memoria
principal a solo una lnea posible de cache.
Correspondencia Asociativa
La correspondencia asociativa supera la desventaja de la directa permitiendo que
cada bloque de memoria principal pueda cargarse en cualquier lnea de la cache.
En este caso, la lgica de control de la cache interpreta una direccin de memoria
simplemente como una etiqueta y un campo de palabra.
Correspondencia Asociativa por Conjuntos
Es una solucin de compromiso que recoge lo positivo de las correspondencias
directas y asociativas, sin presentar sus desventajas.
Algoritmos de sustitucin
Cuando se introduce un nuevo bloque en la cache, debe sustituirse uno de los
bloques existentes. Para el caso de correspondencia directa, solo hay una posible
lnea para cada bloque particular y no hay eleccin posible. Para las tcnicas
asociativas se requieren algoritmos de sustitucin. Para conseguir alta velocidad,
tales algoritmos deben implementarse en hardware y cuatro de los ms comunes
son:
-

utilizado menos recientemente (LRU, Least-Recently Used)


primero en entrar primero en salir (FIFO, First-In-First-Out)
utlizado menos frecuentemente (LFU, Least-Frequently Used)
escoger una lnea al azar (Aleatoria)

Poltica de escritura
Antes de que pueda ser reemplazado un bloque que esta en la cache, es
necesario considerar si ha sido o no alterado en cache pero no en memoria
principal. Si no lo ha sido, puede escribirse sobre el bloque antiguo de cache. Si
ha sido modificado, esto significa que se ha realizado al menos una operacin de
escritura sobre una palabra de la lnea correspondiente de la cache, y la memoria
principal debe actualizarse de acuerdo con ello.
1.2.3 Manejo de la Entrada/Salida
Un computador no sirve de nada sin algn medio para realizar las entradas y las
salidas. Las operaciones de E/S se realizan a travs de una amplia gama de
dispositivos que proporcionan una forma de intercambiar datos entre el exterior y
el computador. Un dispositivo externo se conecta al computador mediante un
enlace a un mdulo de E/S (se aprecia en la siguiente figura). El enlace se utiliza
para intercambiar seales de control, estado, y datos entre el mdulo de E/S y el
45 | 76

dispositivo externo. Un dispositivo externo conectado a un mdulo de E/S


frecuentemente se denomina dispositivo perifrico o, simplemente perifrico.

En sentido amplio, los dispositivos externos se pueden clasificar en tres


categoras:
-

De interaccin con humanos: permiten la comunicacin con el usuario del


computador.
De interaccin con mquinas: permiten la comunicacin con elementos del
equipo.
De comunicacin: permiten la comunicacin con dispositivos remotos.

La lgica de control asociada el dispositivo controla su operacin en respuesta a


las indicaciones del mdulo de E/S. El transductor convierte las seales elctricas
asociadas al dato a otra forma de energa en el caso de una salida y viceversa en
el caso de una entrada. Usualmente, existe un buffer asociado al transductor para
almacenar temporalmente el dato que se est transfiriendo entre mdulos de E/S y
el exterior; es comn un tamao de buffer de 8 a 16 bit.
1.2.3.1 Mdulos de Entrada/Salida
Un mdulo de E/S es el elemento del computador responsable del control de uno
o ms dispositivos externos, y del intercambio de datos entre esos dispositivos y la
memoria principal y/o los registros de la CPU. As, el mdulo de E/S debe tener
46 | 76

una interfaz interna al computador y una interfaz externa al computador (con el


dispositivo).
Las principales funciones o requisitos de un mdulo de E/S se encuentran dentro
de las siguientes categoras:
-

Control y temporizacin
Comunicacin con la CPU
Comunicacin con los dispositivos
Almacenamiento temporal de datos
Deteccin de errores

El control de la transferencia de datos desde un dispositivo externo a la CPU


podra implicar la siguiente secuencia de pasos:
1. La CPU interroga al mdulo de E/S para comprobar el estado del
dispositivo conectado al mismo.
2. El mdulo de E/S devuelve el estado del dispositivo.
3. Si el dispositivo est operativo y preparado para transmitir, la CPU solicita la
transferencia del dato mediante una orden al mdulo E/S.
4. El mdulo de E/S obtiene un dato del dispositivo externo.
5. Los datos se transfiere desde el mdulo de E/S a la CPU.
Por otra parte, el mdulo de E/S debe ser capaz de comunicarse con el
dispositivo, Esta comunicacin implica intercambiar rdenes, informacin del
estado, y datos. Una tarea esencial para un mdulo de E/S es el almacenamiento
temporal de datos (data buffering). Un mdulo de E/S a menudo es responsable
de la deteccin de errores y de informar de estos errores a la CPU.
1.2.3.2 Entrada/Salida Programada
Son posibles tres tcnicas para las operaciones de E/S. Con la E/S programada,
los datos se intercambian entre la CPU y el mdulo de E/S. La CPU ejecuta un
programa que controla directamente la operacin de E/S, incluyendo la
comprobacin del estado del dispositivo, el envi de una orden de lectura o
escritura, y la transferencia del dato. Cuando la CPU enva una orden al mdulo
de E/S, debe esperar hasta que la operacin de E/S concluya. Si la CPU es ms
rpida que el mdulo de E/S, este es un tiempo que la CPU desperdicia. Con la
E/S mediante interrupciones, la CPU proporciona la orden de E/S, continua
ejecutando otras instrucciones, y en interrumpida por el mdulo de E/S cuando
este ha terminado su trabajo. Tanto con E/S programada como con interrupciones,
la CPU es la responsable de extraer los datos de la memoria principal en una
salida y de almacenar los datos en la memoria principal en una entrada. La
alternativa se conoce como acceso directo a memoria (DMA). En este caso, el
mdulo de E/S y la memoria principal intercambian datos directamente, sin la
intervencin de la CPU.
47 | 76

Considrese la lectura de un bloque desde el disco. En la tcnica de entradasalida programada, la CPU interroga a cada dispositivo para ver si requiere
servicio. Si se considera una analoga con un restaurante, el caso sera el del
camarero que se acerca al comensal para ver si est listo para hacer un pedido.
Las operaciones que se realizan cuando se administra la entrada-salida por medio
de un programa se ilustran en el diagrama de flujo que se observa en la siguiente
figura. La CPU verifica primero el estado del disco por medio de la lectura de un
registro especial al que puede acceder en el espacio de memoria o por medio de
la lectura de un registro especial al que puede acceder en el espacio de memoria
o por medio de la lectura de un registro especial de entrada-salida, si esta fuera la
solucin adoptada por la arquitectura del procesador para la implementacin del
manejo de entrada-salida. Si el disco no estuviese listo para ser ledo o escrito, el
proceso queda en un lazo cerrado verificando el estado en forma continua hasta
tanto el disco est listo, en un proceso de espera por dispositivo ocupado. Cuando
el disco finalmente se encuentre disponible, se producir la transferencia de datos
entre el disco y la CPU.15

15 Miles, J. Murdocca. Principios de arquitecturas de computadoras. P. 309

48 | 76

Luego de completada la transferencia, la CPU verifica la existencia de algn otro


pedido de comunicacin con el disco. Si lo hubiera, el proceso se repite; en caso
contrario la CPU continua otras tareas.
En la administracin de E/S por programada, la CPU pierde el tiempo al interrogar
a los dispositivos. Otro problema tiene que ver con que los dispositivos de alta
prioridad no se verifican hasta tanto la CPU no completa la tarea de entrada-salida
en curso, la que puede ser de baja. No obstante, dado que la implementacin de
un sistema de administracin programada de los procesos de E/S se pueden
concretar en forma sencilla, presenta ventajas en algunas aplicaciones.
Resumen 16
Cuando la CPU est ejecutando un programa y encuentra una instruccin
relacionada con una E/S, ejecuta dicha instruccin mandando una orden al mdulo
de E/S apropiado. Con E/S programada, el mdulo de E/S realizara la accin
solicitada y despus activa los bits apropiados en el registro de estado de E/S. El
mdulo de E/S no realiza ninguna otra accin para avisar a la CPU. En concreto,
no interrumpe a la CPU. De esta forma, la CPU es la responsable de comprobar
peridicamente el estado del mdulo de E/S hasta que encuentra que la operacin
ha terminado.
rdenes de E/S
Una orden de control se utiliza para activar el perifrico e indicarles que hacer.
Estas rdenes son especficas del tipo particular de dispositivo perifrico.
Una orden de test se utiliza para comprobar diversas condiciones de estado
asociadas con el mdulo de E/S y sus perifricos. La CPU podr comprobar si el
perifrico en cuestin est conectado y disponible para su uso.
Una orden de lectura hace que el mdulo de E/S capte un dato de un perifrico y
lo situ en un buffer interno. Despus, la CPU puede obtener el dato solicitando
que el mdulo de E/S lo ponga en el bus de datos.
Una orden de escritura hace que el mdulo de E/S tome unos datos (byte o
palabra) del bus de datos y posteriormente lo transmita al perifrico.
Instrucciones de E/S
En la E/S programada, hay una estrecha correspondencia entre las instrucciones
de E/S que la CPU capta de memoria y las rdenes de E/S que la CPU enva a un
mdulo de E/S al ejecutar las instrucciones. Es decir, las instrucciones se pueden
hacer corresponder fcilmente con las rdenes de E/S, y a menudo hay una
simple relacin de uno a uno. La forma de la instruccin depende de la manera de
direccionar los dispositivos externos.
16 Organizacin y Arquitectura de Computadoras. 4ta Edicin p.188

49 | 76

Normalmente, habr muchos dispositivos de E/S conectados al sistema a travs


de los mdulos de E/S. Cada dispositivo tiene asociado un identificador nico o
direccin. Cuando la CPU enva una orden de E/S, la orden contiene la direccin
del dispositivo deseado. As cada mdulo de E/S debe interpretar las lneas de
direccin para determinar si la orden es para l.
Cuando la CPU, la memoria principal, y las E/S comparten un bus comn, son
posibles dos modos de
direccionamiento:
asignado
en
memoria
(memory_mapped) y aislado. Con las E/S asignadas en memoria, existe un nico
espacio de direcciones para las posiciones de memoria y los dispositivos de E/S.
la CPU considera a los registros de estado y de datos de los mdulos de E/S
como composiciones de memoria y utiliza las mismas instrucciones mquina para
acceder tanto a memoria como a los dispositivos de E/S. as, por ejemplo, con 10
lneas de direccin, se puede acceder a un total de 1024 posiciones de memoria y
direcciones de E/S, en cualquier combinacin.
Con las E/S asignadas en memoria, se necesita una sola lnea de lectura y una
sola lnea en el bus. Alternativamente, el bus puede disponer de lneas de lectura y
escritura en memoria junto con lneas para rdenes de entrada y salida. En este
caso, las lneas de rdenes especifican si la direccin se refiere a una posicin de
memoria o a un dispositivo de E/S. el rango completo de direcciones est
disponible para ambos. De nuevo con 10 lneas de direccin, el sistema puede
soportar ahora 1024 posiciones de memoria y 1024 direcciones de E/S. puesto
que el espacio de direcciones de E/S est aislado del de memoria, este se conoce
con el nombre de E/S aislada.
En la siguiente figura, se contrastan estas dos tcnicas de E/S programada. Es
esta figura se muestra como podra ver el programador la interfaz con un
dispositivo de entrada sencillo tal como un teclado cuando se utiliza E/S asignada
en memoria. Se asume direcciones de 10 bits, con una memoria de 512 palabras
(posiciones 0-511) y hasta 512 direcciones de E/S (posiciones 512-1023), se
dedican dos direcciones a la entrada de teclado desde un terminal concreto.

50 | 76

La direccin 516 se refiere al registro de datos y la direccin 517 al registro de


estado que adems funciona como registro de control para recibir las ordenes de
la CPU. El programa que se muestra lee un byte de datos desde el teclado y lo
escribe en el registro acumulador de la CPU. Obsrvese como la CPU ejecuta un
bucle hasta que el byte de datos est disponible.
Con E/S aislada (que se observa en la parte del b) de la figura anterior), los
puertos de E/S solo son accesibles mediante una orden especifica de E/S, que
activa las lneas de rdenes de E/S del bus.
La mayor parte de CPUs disponen de un conjunto relativamente grande de
instrucciones distintas para acceder a memoria. Si se utiliza E/S aislada, solo
existen unas pocas instrucciones de E/S. por eso, una ventaja de la E/S asignada
en memoria es que se puede utilizar este amplio repertorio de instrucciones,
permitiendo una programacin ms eficiente. Una desventaja es que se utiliza
parte del valioso espacio de direcciones de memoria. Tanto la E/S asignada como
la aislada se usan comnmente.
1.2.3.3 Entrada/salida mediante interrupciones
El problema con la entrada/salida programadas es que la CPU tiene que esperar
un tiempo considerable a que el mdulo de E/S en cuestin est preparado para
recibir o transferir datos. La CPU, mientras espera, debe comprobar repetidamente
51 | 76

el estado del mdulo de E/S. como consecuencia, se degrada el nivel de


prestaciones de todo el sistema.
Una alternativa consiste en que la CPU tras enviar una orden de E/S a un mdulo
contine realizando algn trabajo til. Despus, el mdulo de E/S interrumpir a la
CPU para solicitar su servicio cuando est preparando para intercambiar datos
ella. La CPU ejecuta entonces la transferencia de datos, como antes, y despus
contina el procesamiento previo. Como se ve en la siguiente imagen:

Desde el punto de vista de la CPU, las acciones para una entrada son las que
siguen. La CPU enva una orden READ de lectura. Entonces pasa a realizar otro
trabajo(es decir, la CPU puede estar ejecutando programas distintos al mismo
tiempo). Al final de cada ciclo de instrucciones, la CPU comprueba las
interrupciones. Cuando se pide la interrupcin desde el mdulo de E/S, la CPU
guarda el contexto(es decir, el contador de programa y los registros de la CPU) del
programa en curso y procesa la interrupcin. En este caso, la CPU lee la palabra
de datos del mdulo de E/S y la almacena en memoria. Despus recupera el
contexto del programa que estaba ejecutando (o de otro programa) y contina su
ejecucin. La E/S con interrupciones es ms eficiente que la E/S programada por
que elimina las esperas innecesarias. No obstante, las E/S con interrupciones
consumen gran cantidad de tiempo de la CPU puesto que cada palabra de datos
que va desde la memoria al mdulo de E/S o viceversa debe pasar a travs de la
CPU.
En la siguiente figura se muestra procesamiento simplificado de una interrupcin.

52 | 76

Cuestiones de diseo
En la implementacin de las E/S mediante de las interrupciones aparecen dos
cuestiones. Primero, puesto que casi invariable habr mltiples mdulos de E/S, y
segundo, si se han producido varias interrupciones.
1.2.3.4 Acceso directo a memoria
Cuando hay que transferir grandes volmenes de datos, se requiere una tcnica
ms eficiente: el acceso a memoria (DMA).
El DMA (Direct Memory Access) es un procesador/controlador especializado en
transferencias muy grandes desde perifricos a memoria y viceversa. Es
programable. La CPU no realiza ninguna tarea (salvo programar el DMA) ya que la
inicializacin y transferencia son gobernadas por el perifrico.
Para programar el DMA hay que enviarle al menos los siguientes datos:

Direccin/puerto perifrico E/S.


Posicin/direccin en memoria principal.
Tamao (nmero de bytes a transferir).
Tipo transferencia: lectura o escritura. Al finalizar el DMA avisa mediante
una interrupcin.
53 | 76

Esta interrupcin al igual que el resto de interrupciones son normalmente


atendidas al final de cada instruccin.
La rutina de servicio asociada comprobar el estado del DMA para ver si se
han producido errores al ejecutar la transferencia que se le ha
encomendado.

A diferencia del mecanismo por interrupcin convencional, una orden DMA puede
transferir muchsimos datos de una sola vez. Por lo tanto, el nmero de
interrupciones por byte transferido es mucho menor que con las interrupciones
convencionales: se gana en rapidez. El procesador no se encarga de la
transferencia de datos.
El mecanismo de DMA puede configurarse de diversas formas: Todos los mdulos
comparten el mismo bus del sistema. El mdulo de DMA, actuando como un CPU
suplementaria, utiliza E/S programada para intercambiar datos entre la memoria y
un mdulo de E/S a travs del mdulo de DMA. Esta configuracin, si bien es la
ms econmica, es claramente ineficiente. Igual que con E/S programada
controlada por la CPU, la transferencia de cada palabra consume dos ciclos de
bus.
El nmero de ciclos de bus necesarios puede reducirse sustancialmente si se
integran las funciones de DMA y de E/S. Esto indica que existe un camino entre el
mdulo de DMA y uno o ms de E/S que no incluye al bus del sistema. La lgica
de DMA puede ser parte de un mdulo de E/S, o puede ser un mdulo separado
que controla a uno o ms mdulos de E/S. este concepto se puede llevar algo ms
lejos conectando los mdulos de E/S a un mdulo de DMA mediante un bus de
E/S. Esto reduce a uno el nmero de interfaces de E/S en el mdulo de DMA y
permite una configuracin fcilmente ampliable. En todos estos casos, el bus del
sistema, que el mdulo de DMA comparte con la CPU y la memoria, es usado por
el mdulo de DMA solo para intercambiar datos con la memoria. El intercambio de
datos entre los mdulos de DMA y E/S se produce fuera del bus del sistema.
Inconvenientes de la E/S programada y con interrupciones.
La E/S con interrupciones, aunque ms eficiente que la sencilla E/S programada,
tambin requiere la intervencin activa de la CPU para transferir datos entre la
memoria y el mdulo de E/S, y cualquier transferencia de datos debe seguir un
camino a travs de la CPU. Por tanto, ambas formas de E/S presentan dos
inconvenientes inherentes:
1. La velocidad de transferencia de E/S est limitada por la velocidad a la cual la
CPU puede comprobar y dar servicio a un dispositivo.
2. La CPU debe dedicarse a la gestin de las transferencias de E/S; se debe
ejecutar cierto nmero de instrucciones por cada transferencia de E/S.

54 | 76

Existe un cierto compromiso entre estos dos inconvenientes. Considrese unas


transferencias de un bloque de datos. Utilizando E/S programada, la CPU se
dedica a la tarea de la E/S y puede transferir datos a alta velocidad al precio de no
hacer nada ms. La E/S con interrupciones libera en parte a la CPU, a expensas
de reducir la velocidad de E/S. No obstante, ambos mtodos tiene un impacto
negativo tanto en la actividad de la CPU como en La velocidad de transferencia de
E/S.
1.2.3.5 Canales y procesadores de entrada/salida
Los controladores de E/S se han mejorado haciendo que se comporten como un
procesador. La CPU hace que el controlador de E/S ejecute un programa de E/S
en memoria. El controlador de E/S coge y ejecuta sus instrucciones sin
intervencin de la CPU. A este tipo de controlador de E/S se le denomina canal de
E/S. Una posterior mejora de los canales de E/S ha sido incorporarles una
memoria local con lo que ahora se pueden ver como computadores. Con esta
arquitectura, se puede controlar un conjunto grande de dispositivos de E/S con la
mnima intervencin de la CPU. A este tipo de controlador se le denomina
procesador de E/S.
Caractersticas de los canales de entrada/salida

Los canales representan una extensin al concepto de DMA.


Tienen la habilidad de ejecutar instrucciones de E/S.
Completo control de la transferencia de datos por lo tanto la CPU no ejecuta
instrucciones de E/S.
Instrucciones almacenadas en memoria principal que sern ejecutadas por
un procesador de propsito especial en el canal.
La CPU inicia una transferencia de E/S instruyendo al canal para ejecutar el
programa que est en memoria.
Este programa especifica dispositivos, reas de memoria a usar,
prioridades y acciones ante errores.
El canal siguiendo las instrucciones controla la transferencia de datos.

Tipos de canales de E/S


Selector:

Controla varios dispositivos de alta velocidad y uno por vez, por lo tanto el
canal se dedica para la trasferencia de datos de esos tipos dispositivo.
El canal selecciona un dispositivo y efecta la transferencia.
Los dispositivos son manejados por un controlador o mdulo de E/S.

55 | 76

Por lo tanto el canal de E/S ocupa el lugar de la CPU en el control de esos


controladores. (A continuacin observe la siguiente figura).

Multiplexor:

Puede manejar E/S con varios dispositivos a la vez. Multiplexor de bytes:


Acepta y transmite caracteres.
Multiplexor de bloques: Intercala bloques de datos desde distintos
dispositivos. (observe la siguiente figura)

1.2.4 Buses
Qu es un bus?
56 | 76

Es un camino de comunicacin entre dos o ms dispositivos.


Normalmente, medio de transmisin.
Suele agruparse: Varios caminos de comunicacin o lneas con funcin
comn. Un dato de 8 bits puede transmitirse mediante ocho lneas del bus.

Existe una serie de sistemas de interconexin. Las estructuras sencillas y


mltiples son las ms comunes como los siguientes ejemplos:
Bus de datos

Transmite datos: Recuerde que a este nivel no existe diferencia alguna


entre datos e instrucciones.
El ancho del bus es un factor clave a la hora de determinar las
prestaciones: 8, 16, 32, 64 bits.

Bus de direccin
Identifica la fuente o destino de un dato, cuando el procesador desea leer una
palabra de una determinada parte en la memoria. El ancho del bus de direcciones
determina la mxima capacidad de memoria posible en el sistema. MSX88 tiene
un bus de direccin de 16 bits, lo que define un espacio para direcciones de 64K
lugares.
Bus de control
Transmite informacin de seales de control y temporizacin por ejemplo:

Seal de escritura/lectura en memoria.


Peticin de interrupcin.
Seales de reloj.

La interconexin mediante un bus es la siguiente:

Cmo son los buses?


57 | 76

Es un conjunto de conductores elctricos paralelos, poseen conectores para


colocar tarjetas. Como se puede observar en la siguiente imagen:

Los sistemas operativos grfico-orientados como son Windows y OS/2 han creado
un cuello de botella entre el procesador y sus perifricos para visualizacin en
PCs con arquitecturas I/O estndar. Acercando las funciones perifricas con
mayores requerimientos de ancho de banda al bus del microprocesador del
sistema puede eliminarse este atascamiento. Cuando un diseo tipo Local Bus
es utilizado, pueden obtenerse ganancias sustanciales en performance con
interfaces grficas para el usuario (GUIs, graphical User Interfaces) y otras
funciones de gran ancho de banda (full motion video, SCSI, LANs, etc.) Las
ventajas ofrecidas por un diseo de bus local han motivado varias versiones,
implementadas en distintas formas. Los beneficios de establecer un estndar
abierto para buses I/O han sido claramente demostrados en la industria de la PC.
Es importante que un nuevo estndar para buses locales se establezca para
simplificar diseos, reducir costos e Incrementar la seleccin de componentes
Local Bus y placas de expansin.
1.2.4.1 Tipos de buses
Dedicados: usa lneas separadas para direcciones y datos en la siguiente forma:

El bus de direcciones usa 16 lneas.


El bus de datos usa 16 lneas.
El bus de control usa una lnea de lectura o escritura.

Multiplexados: uso de las mismas lneas:

16 lneas de direcciones o de datos.


1 lnea de control de lectura o escritura.
1 lnea de control para definir direcciones o datos.
58 | 76

A continuacin se analizara cada uno de los buses del sistema, las ranuras de
expansin, los conectores a la placa base, los puertos de conexin con los
distintos dispositivos externos y los cables de conexin. En la siguiente imagen
puede verse la placa base con cada uno de los elementos de los que vamos a

tratar.

Buses de propsito general


De expansin internos ISA (Industry Standard Architecture)
Este bus ofrece unas prestaciones muy bajas, y totalmente fuera de lnea con los
requerimientos de los PC de hoy. Se divide en dos ramas, una es interna al PC, y
a ella se conectan los dispositivos ms lentos del equipo: puertos serie, teclado,
puerto paralelo, unidad de disco flexible. La otra rama es externa y se accede a
ella a travs de las ranuras de expansin ISA (Vase la siguiente figura).

Adems de un rendimiento pobre, otra de las desventajas del bus ISA es la falta
de inteligencia en el control del bus. Otra desventaja adicional radica en la
configuracin de los dispositivos, que debe realizarse manualmente, aunque
algunos ms recientes son compatibles con PaP (no todos).
59 | 76

PCI (Peripheal Component Interconnect)


El bus PCI interconexin de componentes perifricos se introdujo con los
primeros microprocesadores Pentium de Intel y se ha convertido en el estndar
para las tarjetas de expansin en las placas base. Soporta dispositivos de
entrada/salida de alta velocidad, como las tarjetas de vdeo, de red, de sonido,
MODEM, etc. Es capaz de transferir datos a 132 MB/s, frente a los 5 MB/s del bus
ISA. La longitud de la ranura es ms corta. Suele haber de 4 a 5 ranuras PCI en
una placa base y son de color blanco. Vase la siguiente figura:

De expansin externos (tambin llamados Puertos)


Durante muchos aos, los PC usaban slo los buses de expansin internos.
Obviamente, incluso los PC ms antiguos tenan conexiones para dispositivos
como teclados, pero esos conectores externos se diseaban para admitir un tipo
nico de dispositivo. No podas enchufar un ratn en un puerto de teclado, por
ejemplo, ni podas enchufar dos teclados en dicho puerto. Incluso los puertos para
dispositivos serie y paralelos (que podan admitir una variedad de dispositivos)
slo admitan un dispositivo al mismo tiempo.
Para conectar los dispositivos perifricos al ordenador, se utilizan conectores. El
conector se halla en el extremo del cable adjunto al dispositivo perifrico. Se
inserta dentro de un puerto para hacer la conexin entre el ordenador y el
dispositivo perifrico; el puerto hace que el dispositivo perifrico est disponible
para el usuario. Veremos a continuacin cules son los puertos y conectores que
permiten unir dispositivos externos en los equipos actuales.
SERIE
Su nombre proviene de la forma en que se envan los datos, transmitiendo un bit
tras otro en una serie y de forma asncrona. Esto los limita en cuanto a su potencia
de transmisin, relegndolos a tareas con pocas necesidades de transferencia de
informacin. Son fciles de reconocer, tienen un conector macho en forma de D
mayscula con 9 espigas, (tambin los hay con 25 pins). El sistema operativo
identifica los puertos serie como puertos COM, seguido de un nmero
60 | 76

correspondiente al puerto de que se trata, por ejemplo COM1. Actualmente


apenas se utiliza debido a su baja velocidad. Sin embargo, todava se pueden
encontrar ratones y mdems (as como material cientfico) que suelen enviar datos
al puerto COM (Vase la siguiente figura).

DIN o AT
Era la conexin primaria para el teclado, es ms grande que su repuesto actual, el
PS/2. Tiene 5 pines. Actualmente est en desuso, pero existen adaptadores para
poder conectar un teclado con este conector a un puerto PS/2 (Vase la siguiente
figura).

Puerto PS/2 (Sistema personal 2) para teclado


El conector mini-DIN tiene 6 pines, es de color lila y sirve para un teclado PS/2
(Vase la siguiente figura).

Puerto PS/2 para ratn


Este conector verde de 6 espigas est diseado para el ratn PS/2 -a menos que
utilices un modelo USB o inalmbrico. Ten en cuenta que el puerto del ratn
solamente difiere del teclado por el color. Un error muy comn al preparar las
conexiones del PC es confundir el conector del ratn con el del teclado, en cuyo
caso ninguno de los dos funcionar. Por suerte, es un problema de fcil solucin
(Vase la siguiente figura).

Puerto Paralelo
Los puertos paralelos, al igual que los puertos serie, reciben su nombre debido a
la forma en que envan y reciben la informacin. En este caso, la informacin se
enva mediante ocho bits en lugar de utilizar un bit. Esto hace que el puerto
paralelo sea ms rpido que el puerto serie, ya que se envan ms datos
simultneamente. El puerto paralelo est asociado con la conexin de la
61 | 76

impresora, aunque en los ltimos aos ha empezado a utilizarse para dispositivos


de almacenamiento externo, como, por ejemplo, unidades Zip, CD-ROM externos,
plotters o escneres. A estos puertos se les conoce con el nombre de LPT.
Aunque el ordenador trae un puerto LPT (LPT1), es posible aadir un segundo y
un tercer puerto mediante una tarjeta de expansin conectada a la placa base del
ordenador. El sistema nombra a estos puertos como LPT2 y LPT3. Sin embargo,
no es necesario, ya que la mayora de los dispositivos que se conectan al puerto
paralelo tienen un conector de paso que permite que se conecte una impresora o
cualquier otro dispositivo.
Los puertos paralelos de un ordenador son conectores hembra DB-25 a los que se
conecta el correspondiente conector macho, como se ve en la siguiente figura.

USB
El Bus Serie Universal o USB (Universal Serial Bus) es un tipo de interfaz que
soporta dispositivos perifricos de baja velocidad, como teclados o ratones, y
dispositivos de una velocidad mayor, como las cmaras digitales, impresoras,
adaptadores de red, sintonizadores de TV, discos removibles, etc. Se espera que
en un futuro termine reemplazando a los puertos serie y paralelo de los
ordenadores personales.
El USB es un puerto serie y, al igual que el puerto serie normal, transmite los datos
de bit en bit; sin embargo, los transmite ms rpidamente.
El puerto USB, en su versin inicial, USB 1.1, alcanzaba velocidades de
transferencia de datos de 12 Mb/s (megabits por segundo). La versin ms
reciente, USB 2.0, apodado USB de alta velocidad, soporta velocidades de
transferencia de datos de 480 Mb/s (= 60 MB/s, megabytes por segundo). Esta
versin es compatible con los dispositivos USB 1.1.
Las caractersticas que ofrece un puerto USB son las siguientes:
Proporciona al ordenador capacidades Plug and Play para los dispositivos
externos.
Se puede conectar dispositivos USB al ordenador sin necesidad de reiniciarlo
(conexin en caliente); el sistema operativo, por ejemplo Windows XP, los
reconoce automticamente e instala los controladores; o bien el sistema operativo
62 | 76

solicita al usuario los controladores correspondientes (es el caso de Windows 98),


que se suelen encontrar en el disquete o CDROM que acompaa al dispositivo.
Amplia variedad de dispositivos disponibles: teclados, ratones, unidades Zip,
Jaz, discos duros externos, escneres, impresoras de inyeccin de tinta, mdems,
cmaras digitales, Webcams.
Los estndares USB fueron desarrollados por un grupo de siete empresas
importantes: Compaq, Digital Equipment Corp., IBM PC Co., Intel, Microsoft, NEC
y Northern Telecom.
Conexiones USB
Los puertos y conectores USB son de dos tipos:
Puerto Tipo A. Suele estar situado en la parte posterior del ordenador, aunque
actualmente muchos ordenadores traen tambin conectores Tipo A en la parte
frontal; son de tipo hembra. Y tienen una tpica forma rectangular. A este puerto se
conecta un conector macho tambin de Tipo A, como se ve en la siguiente figura.

Puerto Tipo B. Se encuentra en los dispositivos USB. Los puertos Tipo B son
ms cuadrados y de tipo hembra. A estos puertos se conecta un conector macho
de Tipo B (vase Figura en la siguiente figura).

Buses dedicados
Son buses de propsito especfico destinados al dilogo con un tipo concreto de
dispositivos.
Puertos FireWire
El estndar IEEE 1394, ms conocido como FireWire, define las especificaciones
de un bus serie de alta velocidad para dispositivos que realmente funcionan a alta
velocidad, como, por ejemplo, las cmaras de vdeo o fotogrficas digitales.
63 | 76

FireWire es una marca registrada de Apple Computer; otros fabricantes, como


Sony, utilizan el nombre i.Link. El nombre genrico del estndar es Bus serie de
alto rendimiento.
La interfaz IEEE 1394 comparte caractersticas con la interfaz USB. Ambas son
buses de alta velocidad, Plug and Ptay e intercambiables en caliente. El nmero
mximo de dispositivos que soporta es 63. Las versiones ms recientes de IEEE
1394 que se estn desarrollando ofrecern velocidades de 800 Mb/s a 1,6 Gb/s
(gigabits por segundo). En la Figura siguiente, se muestra uno de los conectares
utilizados por IEEE 1394; son los mismos que los utilizados en el Nintendo
Gameboy.

El IEEE 1394 no necesita el ordenador para poder funcionar. As, una cmara de
video digital se puede conectar con un equipo de vdeo VCR a travs de este
puerto. Actualmente muchos ordenadores no tienen integrado este conector, pero
existen tarjetas de expansin que s lo proporcionan.
AGP
El bus AGP (puerto acelerador de grficos) se utiliza slo para un tipo de tarjeta
de expansin: la tarjeta de vdeo. Slo admite una. Se desarroll principalmente
para mejorar las aplicaciones de grficos en 3D.
La principal ventaja es que el chipset al que se conecta el bus AGP ofrece a la
tarjeta AGP un acceso rpido a la memoria principal.
La velocidad del bus AGP es superior a la del bus PCI. Hay cuatro velocidades
diferentes:
AGP IX: transfiere datos a 266 MB/s.
AGP 2X: transfiere datos a 532 MB/s.
AGP 4X: transfiere datos a 1 GB/s.
AGP 8X: transfiere datos a 2 GB/s.
La ranura AGP es de color caf y algo ms corta que la ranura PCI. No debemos
desconectar nunca una tarjeta AGP de la placa base con el ordenador encendido,
ya que esto puede daarla.
Actualmente existen dos estndares de AGP, denominados AGP 2.0 y AGP 3.0 (no
tengo ni idea de lo que ha pasado con la versin 1).
La razn por la que tienes que saber todo esto es que las ranuras en las placas
base y en los conectores de la tarjeta de vdeo AGP varan segn la versin y el
modelo y no son todas compatibles. Algunas tarjetas AGP 3.0 se pueden enchufar
64 | 76

fsicamente en ranuras AGP 2.0, por ejemplo, pero no funcionarn. La figura


muestra dos ranuras AGP diferentes, la de arriba es la AGP 3.0 y la de abajo la
AGP 2.0 (Vase la siguiente figura).
1.2.4.2 Estructura de los buses
Un bus es un medio compartido de comunicacin constituido por un conjunto de
lneas (conductores) que conecta las diferentes unidades de un computador. La
principal funcin de un bus ser, pues, servir de soporte para la realizacin de
transferencias de informacin entre dichas unidades. La unidad que inicia y
controla la transferencia se conoce como master del bus para dicha transferencia,
y la unidad sobre la que se realiza la transferencia se conoce como slave. Los

papeles de master y slave son dinmicos, de manera que una misma unidad
puede realizar ambas funciones en transferencias diferentes. Por ejemplo, una
unidad de DMA hace de slave en la inicializacin que realiza el master, la CPU,
para una operacin de E/S. Sin embargo, cuando comienza la operacin, la
unidad de DMA juega el papel de master frente a la memoria, que en esta ocasin
hace de slave.
Para garantizar el acceso ordenado al bus, existe un sistema de arbitraje,
centralizado o distribuido, que establece las prioridades cuando dos o ms
unidades pretenden acceder al mismo tiempo al bus, es decir, garantiza que en
cada momento slo exista un master.
Para establecer el tiempo de duracin de las transferencias y que sea conocido
tanto por el master como por el slave, un bus debe disponer de los medios
necesarios para la sincronizacin master-slave (Vase la siguiente figura).

65 | 76

Lneas
Las lneas de un bus podemos clasificarlas en grupos, atendiendo al papel que
cumplen en las transferencias.
Lneas de informacin bsica.
Las utiliza el master para definir los dos elementos principales de una
transferencia, el slave y los datos. Se dividen, pues, en dos grupos: direcciones y
datos.
Lneas de Direcciones
Determinan la unidad que hace de slave en la transferencia
Lneas de Datos Transportan los datos de la transferencia. Existen buses con
lneas independientes para cada uno de los anteriores tipos de informacin. En
cambio en otros se utilizan las mismas lneas multiplexadas en el tiempo.
Lneas de control
Transmiten las rdenes que determinan la operacin de transferencia a realizar
por las lneas de datos y direcciones, y marcan el ordenamiento temporal de las
seales que circulan por el bus. Las primeras son las lneas de control
propiamente dichas, de las que las ms importantes son:
Escritura en memoria
Lectura de memoria
Operacin de salida
Operacin de entrada
Las segundas son las lneas de sincronismo, entre las que cabe citar las
siguientes:
Reconocimiento de transferencia
Reloj
Reset.
Lneas de arbitraje
Establecen la prioridad entre diferentes peticiones de acceso al bus. Por ejemplo:
66 | 76

Peticin del bus


Cesin del bus
Ocupacin del bus

Direccionalidad de buses
Las lneas de un bus podemos tambin clasificarlas en funcin de su
direccionalidad:
Lneas unidireccionales

Emisor simple (Vase la siguiente figura).

Emisor mltiple (Vase la siguiente figura).

Lneas bidireccionales
Desde el punto de vista fsico un bus es un conjunto de conductores elctricos
paralelos dispuestos sobre una tarjeta de circuito impreso. Los dispositivos del
sistema se conectan a travs de conectores (slots) dispuestas a intervalos
regulares a lo largo del bus (Vase la siguiente figura).

67 | 76

1.2.4.3 Jerarquas de buses


Bus del sistema (backplane) Los ordenadores antiguos utilizaban una topologa de
bus nico, denominado bus del sistema o backplane, para conectar procesador,
memoria y los mdulos de E/S, tal como la que se muestra en la siguiente figura:

Sin embargo, cuando el nmero de dispositivos conectados a un bus aumenta


disminuye su rendimiento. Esto es debido a dos motivos fundamentales. El
primero el aumento del retardo de propagacin de las seales debido al aumento
de longitud de los conductores que dan soporte al bus. Esto afecta especialmente
a la propagacin encadenada de la seal de concesin del bus. El segundo el
incremento de demanda de acceso que se produce al aumentar el nmero de
dispositivos conectados. Este exceso de dispositivos puede crear un cuello de
botella que haga que el rendimiento del sistema se degrade por la espera intil
que se origina cuando tienen que realizar transferencias.
Por otra parte, las diferencias en la velocidad de operacin de los dispositivos
conectados al bus, tambin repercuten negativamente en su rendimiento. En
efecto, los dispositivos lentos pueden ocasionar retrasos importantes a los rpidos.

Buses locales
68 | 76

El bus local es de longitud pequea, de alta velocidad, y adaptado a la arquitectura


particular del sistema para maximizar el ancho de banda entre el procesador y la
cach, por eso suele ser un bus propietario. Este bus asla el trfico procesadorcach del resto de transferencias del sistema (Vase la siguiente figura).

Buses de E/S o de expansin


El bus de E/S o de expansin reduce el trfico en el bus del sistema, de manera
que el procesador puede acceder a memoria en un fallo de cach mientras realiza
una operacin de entrada/salida.
Los buses de expansin son buses estndar o abiertos (ISA, EISA, PCI, etc.) es
decir, independientes del computador y con unas caractersticas bien definidas en
el correspondiente documento de normalizacin. La existencia de estos buses
permite disear una amplia gama de controladores de perifricos compatibles.
Para conectar los buses del sistema y de expansin se requiere un Adaptador de
Bus, dispositivo que permite adaptar las distintas propiedades de ambos buses:
velocidad, carcter sncrono o asncrono, multiplexacin.
El proceso de jerarquizacin se puede complicar ms con otras topologas que
den cabida a dispositivos de distinta velocidad. De esta forma se equilibra mejor el
trfico de informacin en sistemas que operan con muchos dispositivos
conectados. En la figura siguiente se muestra una topologa jerrquica en la que
se contempla un bus de alta velocidad del que cuelgan dos buses, uno de
expansin para dispositivos rpidos y otro de E/S para dispositivos lentos.

69 | 76

1.2.5. Interrupciones
Una interrupcin es un suceso, ms o menos esperado pero que no se conoce el
momento exacto en que se va a producir. La interrupcin se produce bien como
consecuencia de un evento externo a la CPU (por los dispositivos de E/S), o bien
por la propia CPU como consecuencia de la ejecucin o intento de ejecucin de
una instruccin. Por cualquiera de estos motivos, una interrupcin debe
entenderse como un suceso que se produce por sorpresa, pero que hay que
tratarlo inmediatamente.
Cuando se produce una interrupcin, lo normal es:
1) abandonar el flujo secuencial de ejecucin actual.
2) dar control a una Rutina de Tratamiento de la Interrupcin (RTI) producida.
3) ejecutar la RTI y, por ltimo,
4) reanudar el flujo normal de ejecucin en el punto donde se interrumpi.
(Vase la siguiente figura).

70 | 76

Teniendo en cuenta que las TRI forman parte del sistema operativo instalado, esta
opcin forzara mucho su construccin, pues en cada caso ocupara un tamao
distinto y en distinta direccin.
En su lugar, lo que suele hacer es saltar a las rutinas de tratamiento mediante
indireccin.
Normalmente, en la parte la parte baja de la memoria se dispone de una Tabla de
Vectores de Interrupcin, denominada as porque cada elemento o entrada de la
tabla contiene un Vector de manera que el primer elemento de esta tabla
contiene la direccin de la rutina de tratamiento de la interrupcin 0; la segunda
entrada, la direccin de la RTI 1, y as sucesivamente. (En Motorola, esta tabla a
la que tambin se le conoce como Vector de Interrupciones, est en la direccin 0;
en el Pentium, la direccin es configurable; en el PowerPC se puede optar entre
1F4 y FFF001F4 como direcciones de comienzo).
El sistema operativo debe encargarse, en su proceso de inicializacin, de
establecer las direcciones de sus rutinas de tratamiento de interrupciones en los
vectores de interrupcin correspondientes.
Tipos de interrupciones
Teniendo en cuenta que una interrupcin la puede producir un dispositivo externo
a la CPU o la ejecucin de una interrupcin en la propia CPU, nos encontramos
con los siguientes tipos de interrupciones que se muestran en la imagen.

Las interrupciones externas las producen los dispositivos de E/S o sensores que
son perifrico de la CPU. Estas interrupciones son asncronas, pues nunca se
sabe con exactitud cundo van a producirse.
Las interrupciones internas se pueden producir por dos motivos:

En la ejecucin de una instruccin se detecta alguna anomala, como por


ejemplo, que el cdigo de operacin es desconocido, que se intenta dividir
71 | 76

por cero, o que se ha realizado una operacin aritmtica que ha producido


overflow. Cada uno de estos motivos genera una interrupcin distinta, y el
momento exacto en que se produce depende de cada instruccin; en el
caso de un cdigo de operacin inexistente, la interrupcin se produce
mientras se decodifica la instruccin, en el caso de un intento de divisin
por cero, la interrupcin se produce al comprobar que el divisor es cero; y
en el caso del overflow, la interrupcin se produce al finalizar la operacin.
Interrupciones simuladas o interrupciones software. Son interrupciones
generadas por las instrucciones del lenguaje maquina incluida en el cdigo
de un programa, cuyo cometido es nica y simplemente simular una
interrupcin.

Cuando se ejecuta una de estas instrucciones de interrupciones software, el


tratamiento que se genera es exactamente igual al que habra si esa misma
interrupcin la hubiera generado cualquier dispositivo externo. Por ejemplo, la
instruccin |INT 7| de Intel hace que se ejecut la rutina de tratamiento de la
interrupcin 7; una vez ejecutada dicha rutina, se continuara con la instruccin que
le sigue en secuencia a |INT 7|.
Las interrupciones software se suelen utilizar para comunicar las aplicaciones de
usuario con el sistema operativo (traps) y para comprobar el tratamiento de las
interrupciones que generan los dispositivos perifricos (o las internas de la CPU).
Las interrupciones internas son sncronas pues la produccin de una de estas
interrupciones est asociada a una instruccin del propio programa, y no depende
en absoluto de circunstancias externas al programa; por esto, si siempre se
utilizan los mismos datos, al ejecutar el programa varias veces siempre se
producen las misma interrupciones (si las hay) en los mismos momentos (relativos
al comienzo de ejecucin del programa).
Algunos fabricantes de procesadores, como Motorola, denominan excepciones a
todos los tipos de interrupciones, y a las producidas internamente a la CPU las
llama traps. PowerPC tambin llama excepciones a las interrupciones en
general. Intel denomina interrupciones a las originadas externamente a la CPU, y
excepciones a las producidas como consecuencia de la ejecucin de alguna
instruccin.
Cuntas patas hay para comunicarle interrupciones a la CPU?
El procesador podra disponer de una pata distinta para cada tipo de interrupcin,
pero dado que, por ejemplo, Intel, y Motorola tienen hasta 256 interrupciones, no
parece conveniente dedicarle sola mente a esto 256 patas en el procesador. En
su lugar, lo que ay es una pata (INTR) que avisa de que se ha producido una
interrupciones especiales, como RESET, Bus Error, o la NMI (non Maskable
interrupt), que disponen directamente de una pata en la CPU para cada una de
72 | 76

ellas. Ya veremos ms adelante el proceso para averiguar el nivel de la


interrupcin producida cuando se activa la pata INTR (Vase la siguiente figura).

El Motorola 68000 dispone de tres patas para sealar las interrupciones


generales, pero las utiliza para indicar la prioridad de las interrupciones, no para
sealar interrupciones distintas.
En Intel tambin hay distintas prioridades se realiza en un dispositivo externo a la
CPU, denominado PIC (Programmable interrupt Controller). (Vase la siguiente
figura)

Hay dos tipos de interrupciones: enmascarables y no enmascarables.


Las interrupciones no enmascarables con las que siempre se atienden. Se deben
a motivos cuya atencin no puede dilatarse en el tiempo. Por ejemplo, un reset, un
error de bus de direcciones, o una interrupcin no enmascarable (NMI), que puede
deberse a motivos como una deteccin de fallo de tensin alimentacin o la
deteccin de un error en memoria RAM. Estas interrupciones suelen contar con
patas especficas en la CPU (RESET, BERR, NMI), aunque Motorola utiliza la
interrupcin de nivel 7 como NMI.
73 | 76

Las interrupciones enmascarables se pueden atender o no, dependiendo de lo que


este indicado en el registro de estado. Intel cuenta con dos instrucciones, ENABLE
y DISABLE, para permitir o inhibir la aceptacin de interrupciones, que activan o
desactivan el flag de aceptacin de interrupciones del registro de estado.
En el Motorola, para inhibir la aceptacin de interrupciones debe establecer el
nivel de privilegio 7 en su registro de estado (ORI #$0700, SR), con lo cual
solamente aceptara las interrupciones clasificadas como no enmascarables (las
de nivel 7). Para permitir todas las interrupciones se debe ejecutar la instruccin
ADNI #$F0FF, SR la cual pone a cero los bits de prioridad (I0, I1, I2) en el registro
de estado. (Vase la siguiente figura).

74 | 76

CONCLUSIN
A lo largo de este reporte, se comprendi el correcto funcionamiento de una
computadora. Despus de ver la evolucin que sta ha sufrido se puede decir, que la
compactacin de las mquinas e introduccin de una CPU, memorias, circuitos
integrados y dispositivos de E/S en ella, ha dado un plus a su funcionamiento. Esto la
hace cada vez, conforme avanza el tiempo, ms rpida y porttil. Cumpliendo
progresivamente con innovaciones que mejoran su desempeo en las reas ms
sobresalientes como la memoria RAM, discos duros, tarjetas grficas, conectividad y
dispositivos de E/S. Los programadores y tcnicos que se ocupan de desarrollar como
de dar mantenimiento deben mantenerse en constante actualizacin sin descuidar la
base de todo lo que en la actualidad existe tal y como se ha aprendido.
La importancia de una computadora no solo est en la marca del fabricante o precio
en el mercado, en realidad, su importancia radica en los componentes que sta
contiene en su interior, conforme avanza el tiempo, los usuarios demandan de
componentes de alto nivel para sus mquinas, llmese memoria RAM o disco duro, lo
cual ha obligado a los desarrolladores estar innovando en estos sectores, y
comprender que sin la organizacin interna correcta de una computadora, stas no
seran capaces de realizar todas sus actividades demandantes.

75 | 76

BIBLIOGRAFIA

https://www.uclm.es/profesorado/licesio/Docencia/ETC/13_CBasEstructuraComputador_itis.pdf
http://rvazquez.org/Misitio/Arquitectura_de_Computadoras_files/buses1.pdf
http://www.geocities.ws/er_manu_dky/er_manu_dkytipodebuse.pdf
Arquitectura de Computadoras - Morris Mano.
Organizacin y Arquitectura de Computadoras. 4ta Edicin ed. Madrid,
Espaa.: Editorial Prentice hall; 1997.
Tanenbaum, Andrew S. Organizacin de computadoras un enfoque
estructurado. Cuarta edicin. Estado de Mxico, Mxico 2000.

Stallings, William. Organizacin de arquitectura de computadoras. Cuarta


edicin. Editorial Prentice Hall. Madrid Espaa. 1997

Miles, J. Murdocca. Principios de arquitecturas de computadoras. Buenos


aires, republica argentina. Prentice hall. 2002

Mano, Morris M. arquitectura de computadoras Prentice hall

76 | 76

You might also like