Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 -
UNIDAD: Introducción a los Sistemas Operativos
CONTENIDO:
• Conceptos y clasificación de arquitecturas computacionales.
• Elementos que definen a una arquitectura.
• Descripción de una arquitectura VON NEUMANN.
• Descripción de una arquitectura DATA FLOW.
• Descripción de una arquitectura RISC.
• Memorias.
• Las Computadoras Personales (PC)
• Los Microprocesadores y sus familias.
OBJETIVOS DEL APRENDIZAJE: Después de estudiar este módulo, el alumno deberá estar
en condiciones de:
La palabra computador (u ordenador como lo mencionan los españoles) se usa para definir a
las máquinas capaces de aceptar datos o información a través de un medio de entrada,
procesarlo automáticamente bajo el control de un programa previamente almacenado en una
memoria y proporcionar los datos o la información resultante del proceso a través de un medio
de salida que actúa como interfase con el ser humano (fig. A1.02).
Dentro de esta primer definición encontramos varios términos que necesitan ser precisados con
mas detalles, a saber:
Proceso: Desde el punto de vista del hardware, es la capacidad que tiene la máquina para
efectuar comparaciones, operaciones (aritméticas o lógicas), modificaciones, ordenamientos,
intercalaciones, graficaciones, etc., de datos o información.
Procesador: a los efectos de este curso definimos con ese nombre al conjunto de circuitos
integrados en un Chip llamado microprocesador o unidad de microprocesamiento. También
denominamos procesador a la entidad cableada o no, capaz de ejecutar una instrucción.
Microprocesador: está compuesto por un conjunto de circuitos combinacionales y
secuenciales integrados en una unidad que realiza la mayoría de las funciones de un
procesador llamado unidad central de proceso o central processing unit (C.P.U.) y se divide
tradicionalmente en unidades funcionales a saber: Interfase de entrada/salida del
microprocesador; unidad de control; unidad aritmético-lógica; unidad de registros, reloj y
memoria. Esta última unidad la consideraremos al igual que la unidad de entrada/salida como
un elemento externo a la CPU (Fig. A1.01) ya que complementan a módulos conectados a ellos.
C .P .U . o M .P .U .(M ic ro P ro c e s s in g U n it)
In te rfa s e U n id a d U n id a d M e m o r ia
E n tra d a s de A ritm é tic a de
Cache
E n tra d a / R e g is tro s
S a lid a s y L ó g ic a d e 1 º o /y
S a lid a
2 º n iv e l
(E /S ) (A L U o U A L )
R e lo j o U n id a d d e C o n tro l
C lo c k (U .d e C .)
F ig .A 1 .0 1 M ó d u lo s d e u n p ro c e s a d o r
Entradas: significamos con ello a cualquier forma de datos o información que se introducirán en
un procesador para ser procesados. Esta forma de datos o información puede ser: números,
letras, símbolos especiales, la voz, imágenes, señales, gráficos, etc.
ENTRADA SALIDA
PROCESADOR
C .P .U .
U .d e U. DE CONTROL de M .C .
CONTROL R e g is tro s U .A .L
RELOJ B U S D E L S IS T E M A
IN T E R F A S E d e E /S
P E R IF E R IC O S
S IS T E M A d e E N T R A D A / S A L ID A
P E R IF E R IC O S
F ig . A 1 .0 3 E s q u e m a d e u n a A r q u it e c t u r a C o m p u t a c io n a l
A1.1.2.1 Introducción:
MICROPROGRAMABLES:
Primeras arquitecturas adaptables implementadas en las que mediante software, es posible
modificar las interconexiones entre distintos dispositivos. Así, mediante la selección de
microprogramas, un mismo hardware puede emular a distintas computadoras.
RECONFIGURABLES:
(Por modificación de interconexiones) Son aquellas que pueden introducir modificaciones en las
interconexiones entre unidades funcionales mejorando la performance del sistema al poder
establecer distintas configuraciones de recursos según el algoritmo a ejecutar.
P 1 R M .C .
E
D
P 2 M .C .
U N ID A D D E o
C O N T R O L B
U
S
P n M .C .
U N ID A D D E
E N T R A D A /
S A L ID A
F ig .A 1 .0 4 A r q u it e c t u r a S .I.M .D .
P n M .C .
U . D E C .
U N ID A D D E
E N T R A D A /
S A L ID A
U n id a d d e P r o c e s a m ie n to
F ig .A 1 .0 5 A rq u ite c tu ra M .I.M .D
Arquitecturas escalares
El programa registrado que controla secuencialmente la ejecución de los pasos o fases de
cálculo que debe realizar la máquina y los datos que se utilizan para obtener los resultados
esperados, son considerados como una información almacenada en un mismo lugar dentro del
computador (la memoria central).
Desde el punto de vista de la clasificación, se la puede considerar como una arquitectura
estática, en la que el procesamiento se realiza en serie o en escala (secuencia) de donde
también se las denomina computadoras escalares.
Un ejemplo de este tipo de arquitectura se observa en la figura A1.07.
Dentro del mismo concepto Von Neumann se ha producido una notable evolución en virtud
de los avances tecnológicos y es así que también evolucionaron los lenguajes de programación
hasta llegar a los que hoy en día conocemos como de alto nivel, y que originaron arquitecturas
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
8 -
más evolucionadas basadas en el procesamiento paralelo, o sea que, de las máquinas
primitivas de un solo procesador, se pasa a una máquina que dispone de varios procesadores.
A.L.U.
MEMORIA PRINCIPAL Buf- operate
POCISIONES fer
RECORD
de store
READ Me- ACUMULADOR
mo-
ria
ADDRESS A
O X A M S D L S C
n r o d u u i l
r d l b v o t e
d s i
t a o a
i t d r
p r e d r
a A
l e
REGISTRO c c
y
t c
u
INCRE-
MEN-
UNIDAD DE
TADOR
CONTROL
FIG. A1.07
Arquitecturas paralelas:
El objetivo es optimizar el tiempo de ejecución de un programa, entonces se busca ganar ese
tiempo ejecutando en paralelo varias operaciones elementales sobre un gran número de
circuitos lógicos que trabajan simultáneamente, pero que comparten una única memoria central
de almacenamiento.
Por lo tanto, se puede esperar ganar tiempos a un costo razonable en el terreno de las
velocidades y de la organización de las máquinas. Ya que las limitaciones tecnológicas impiden
hoy día ganar mucho tiempo en la ejecución de las operaciones elementales, entonces la única
salida consiste en encontrar la forma de ejecutar en paralelo varias de estas operaciones
elementales.
El paralelismo puede buscarse al nivel de:
a) máquinas de una sola unidad central, también llamadas monoprocesadores o paralelismo
interno, que ejecutan un solo programa a la vez, pero varias instrucciones simultáneamente,
gracias a técnicas de anticipación como es, por ejemplo, el caso de los Pipelines o las
máquinas RISC.
b) máquinas de varias unidades centrales, también llamadas multiprocesadores, que realizan
varios programas independientes en paralelo;
c) máquinas paralelas, en las que varios procesos de tratamiento independientes unos a otros,
se desarrollan simultáneamente.
Decíamos que el procesamiento puede ser realizado en los circuitos lógicos dentro de una CPU
o por varias unidades de procesamiento en forma independiente conectada a una memoria
compartida o sea que podemos dividir las arquitecturas Von Neumann en base a la cantidad de
procesadores en:
• monoprocesadores
• multiprocesadores.
Dentro de los primeros podemos destacar la arquitectura pipe-line que fuera desarrollada por
IBM en el comienzo de la década del 60 en sus máquinas de la serie 360.
Decíamos que las técnicas de anticipación explícita sirve para ganar tiempo de ejecución en las
instrucciones y consiste en lograr que todos los elementos necesarios para la ejecución de la
instrucción estén presente en los registros rápidos antes que la unidad de procesamiento este
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
9 -
disponible para realizar la operación. Esto quiere decir que no solo la próxima instrucción será
buscada y guardada en los registros dentro de la CPU, sino también los operandos
correspondientes.
O p e ra c io n 1 :
O p e ra c io n 2 :
O p e ra c io n 3 :
O p e ra c io n 4 :
F IG U R A A 1 .0 8 P a ra le lis m o e n e l P ip e lin e
@1 @2 @3 @4
Habilitación
fig A1.09 Operador pipe line
El tiempo de transición por sección es sincronizado por la duración del intervalo entre dos
batidos del reloj (Ejemplo: @ -1 y @-2). Así en el operador de la Fig. A1.09, las operaciones se
desencadenan en una secuencia como se ejemplifica en la figura A1.10 en la que se realiza
una suma en punto flotante de datos que asumimos se suministran en el formato de la figura
A1.11.
Veamos como funciona una aplicación típica de un Pipeline aritmético de suma de punto
flotante que dispone de cuatro secciones:
1. MODIFICAR uno de los exponentes en forma tal que ambos sumandos tengan el mismo
valor.
2. SUMAR las mantisas.
3. NORMALIZAR: obtener el formato de Punto Flotante.
4. REDONDEAR el resultado.
Asumimos que el intervalo del reloj es de 50 ns (ns = nanosegundo = 10-9 segundos) que debe
responder a todos los circuitos mas lentos de cada sección del Pipeline, es decir, que al cabo
de 250 ns la operación esta fuera del operador y concluida (ver fig. A1.10).
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
10 -
1.- Modificación a1 b1 a2 b2 a3 b3 a4 b4 a5 b5 a6 b6
controlador
del bus de
BUS DE INSTRUCCIONES = I-BUS
instrucciones
controlador
del bus de BUS DE RESULTADOS = R-BUS
resultados
Ejemplo de implementación:
Cada módulo de procesamiento puede ser construido mediante un microprocesador del tipo
BIT-SLICE, microprogramado por el usuario dedicado a la ejecución del programa Data-Flow y
ensamblado como dispositivo de Propósitos Generales. Básicamente estaría compuesto por el
Pipeline de Ejecución del Programa Data-Flow, y pude ser organizado mediante la asignación
de roles de una unidad de control de ejecución a uno o dos módulos de procesamiento (M.P.)
y los demás módulos se encargarían de la ejecución o procesamiento propiamente dicho.
Los valores de los datos circulan por el Pipeline de ejecución como un conjunto o paquete
prearmado (como el indicado en la figura A1.14).
En la Unidad de Control de Ejecución se ensambla este paquete: el Valor del Dato, el código
de operación y la dirección de destino del resultado, como una instrucción ejecutable la cual es
enviada a todas las unidades de procesamiento mediante el bus de Instrucciones (Fig. A1.15).
Solo la recibe aquella unidad que está libre, cualquiera de todas las disponibles y pasa al
estado de ocupado. Los resultados, después de haber sido procesado en las unidades de
procesamiento respectivos, son devueltos mediante el bus de resultado como un “paquete de
resultado”.
Un Procesador Data-Flow puede ser organizado como se ve en la siguiente figura, asignando a
cada modulo de procesamiento las funciones Data-Flow:
Cada módulo se asigna a una de las siguientes funciones:
♦ Unidad de control de Comunicaciones (C.U.).
♦ Unidad de control de ejecución (E.C.U.).
♦ Unidad de Procesamiento (P.U.).
Las funciones que se cubren son:
• Unidad de control de Comunicaciones (C.U.). Esta unidad provee los ports de Entrada/salida
(E/S) del sistema con los periféricos. A través de ésta unidad se inicializa al sistema. Se dan
los valores iniciales para comenzar el Proceso, los datos de entrada y se retornan los datos
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
13 -
procesados. Generalmente esta tarea está destinada a un computador especializado y se lo
considera como una parte del computador principal M.P.
• Unidad de control de ejecución (E.C.U.): Se lo utiliza para controlar la ejecución de una
instrucción. Para ello se necesitan tres tipos de rutinas:
controlador
del bus de
BUS DE INSTRUCCIONES = I-BUS
instrucciones
UNIDAD DE UNIDADES
DE UNIDADES
E/S CONTROL DE
CONTROL DE
COMUNICA- PROCESA-
EJECUCIÓN
MIENTO
Perifericos CIONES E.C.U. P.U.
controlador
del bus de BUS DE RESULTADOS = R-BUS
resultados
4)
PROC DEST DATA
F ig . A 1 -1 5 F o rm a to s d e in s tru c c io n e s
Donde el 1, 2, y el 3, son paquetes de instrucciones con dos operandos (1), o tres operandos
(2), como ser una instrucción condicional o en el caso de operaciones con dos destinos (3). El
(4) es un paquete resultado.
Una implementación posible de una arquitectura Data-Flow se muestra en la figura A1-16 en la
que se propone realizarlo mediante chips VLSI del tipo Am 2910 bit-slice para la sección de
control y el block de la ALU mediante el microprocesador Am 2903 bit-slice de 4 bits que esta
compuesto por :
• Una sección de control
• Una sección de procesamiento
• Las interfases con los buses
C o m p u ta d o r I-B U S
P rin c ip a l
E x te rn o
I-B U S
C o n tro la d o r d e In te rfa s e
A c c e s o d ire c to
a M e m o ria
S e c c ió n S e c c ió n d e
M e m o ria
m ic ro p ro g ra m a d a d e c o n tro l P ro c e s a m ie n to
R -B U S
In te rfa s e
R -B U S
fF g . A 1 - 1 6 M ó d u lo s d e la a rq u ite c tu ra D a ta - F lo w
Este módulo se muestra con mayor detalle en la figura A1.17, en donde se observa la
configuración interna de las secciones. Es de destacar que esta arquitectura es solamente una
posible y no quiere decir la única existente en el mercado de las computadoras Data-Flow.
Como cada sección está realizado en una serie de chips del tipo VLSI. Por ejemplo la sección
de control podría contener una memoria microprogramable, todo realizado en un chip del tipo
AM 2910, el cual puede regular la ejecución de la microrutina que interpretan las operaciones
del programa Data Flow.
La memoria del microprograma debe tener características tales como ser del tipo RAM de fácil
acceso por un dispositivo de acceso directo a memoria (DMA), en general conviene organizarla
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
15 -
con capacidades de 1 KBy o 4 KBy y la longitud de palabra concordante con la arquitectura
(por ejemplo 32 bits).
Un rol importante juega el multiplexor del código de condiciones, pues facilita los saltos
condicionales de acuerdo al contenido del registro de estado.
La sección de procesamiento podría estar compuesta por la Unidad Aritmética-Lógica (ALU) y
una memoria buffer.
La ALU debería diseñarse de acuerdo a la longitud de la palabra. Por ejemplo si se operan con
números enteros podría ser de 16 bits, entonces para punto flotante se necesitarán 32 bits (por
ejemplo 24 para la mantisa y 8 para el exponente), éstas consideraciones son muy
importantes pues definen las características del procesador, su procesamiento y la cantidad de
elementos bit-slice a utilizar.
I-B U S
I-B U S IN T E R F A S E
BUFFER
B U S IN T E R N O
BUFFER
(B u s d e C o n tro l)
R -B U S
S E C C IO N D E C O N T R O L S E C C IO N D E P R O C E S A M IE N T O
F ig . A 1 -1 7 D e ta lle s d e la S e c c ió n d e c o n tro l y d e p ro c e s a m ie n to
BH® BH®
BH® BH®
Donde:
TECNOLOGÍA DE LA ARQUITECTURA
Pueden ser dos:
• CISC (Complex Instruction Set Computer)
• RISC (Reduced Instruction Set Computer)
Los computadores de tecnología CISC son los más conocidos ya que se usan desde el año 60
hasta nuestros días y se caracterizan por un gran Juego (Set) de Instrucciones, por una gran
gama de modos de direccionamientos y por un microcódigo extenso, además de utilizar un
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
17 -
excesivo acceso a memoria central, todo ello por consiguiente redunda en un gran desperdicio
de tiempo del procesamiento.
Como se observa el concepto fundamentalmente se basa en la cantidad de instrucciones que
dispone el procesador y su optimización. En la práctica se ha observado que hasta el 80% del
tiempo de ejecución de un procesador solamente suele usarse con mayor frecuencia cinco
instrucciones sencillas (LOAD, STORE, ADD, SUB y BRANCH).
Es así que en 1975 en los laboratorios de IBM en el Watson Research Center nació el concepto
RISC. Eso ha motivado que en las Universidades de Berkley y Stanford se investigue el modo
de optimizar compiladores y hardware sobre el criterio RISC.
Con el advenimiento de los chips VLSI se hicieron claros dos enfoques alternativos: un
hardware diseñado para procesar funciones cada vez más complejos y extensas, y una
simplificación de las instrucciones para optimizar la velocidad.
El concepto RISC se basa en:
• La utilización de un conjunto reducido de códigos de operación básicos (generalmente
menor que 64).
• Las instrucciones complejas se descomponen en sucesivas operaciones básicas cuya
ejecución es mucho más rápida y frecuente.
• El empleo de solamente un par de modos de direccionamiento a partir de los cuales se
pueden lograr otros más complicados mediante una combinación alternativa.
• Orientadas a arquitecturas pipeline de instrucciones para lograr solapamiento de las fases
de búsqueda (fetch) y descodificación y ejecución.
• Todas las operaciones se efectúan sobre los registros (por lo que se requiere gran cantidad
de ellos) salvo muy pocas acceden directamente a la memoria central (caso de LOAD y
STORE).
• Se logra mayor rapidez al ganarse el tiempo de lectura de memoria, el tiempo de
transferencia inicial y el tiempo de transferencia de los resultados debido al almacenamiento
dentro del chip.
• Para mejorar la búsqueda y el secuenciamiento de las instrucciones se uniforma la longitud
de las mismas, los datos y los resultados.
La reducción del juego de instrucciones influye sobre el hardware reduciéndolo básicamente la
cantidad de componentes y simplificando a los circuitos (chips). Esto trae como consecuencia
un diseño de chips más sencillos, económicos y veloces, con mayor integración, ciclo de
fabricación más corto y por lo tanto, se encuentra el producto más rápidamente en el mercado
consumidor.
TIPO DE PROCESAMIENTO
Fundamentalmente se dividen en 2 grandes grupos: los monoprocesadores y los multi-
procesadores.
LONGITUD DE LA PALABRA
La longitud de la palabra se mide en bits y corresponde generalmente a la máxima capacidad
de manejo de información interna de la máquina y su decisión es un compromiso tecnológico
pues el mismo define la longitud de los registros, buses, unidades aritméticas y lógicas el
direccionamiento a memoria central y también la estructura de las instrucciones.
TIPO DE DATOS
Básicamente define las características que pueden tener los operandos de las instrucciones de
máquina y también el tipo de operaciones que puede realizar con ellos.
Algunos tipos son:
♦ bit ♦ media palabra
♦ pixel ♦ palabra
♦ nibble ♦ doble palabra
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
18 -
♦ fonema ♦ decimal empaquetado
♦ Byte ♦ punto fijo
♦ caracteres ♦ punto flotante
♦ etc.
En cuanto al tipo de Dato codificado que son soportados por los microprocesadores son:
Enteros, Ordinales, Punteros, Strings, ASCII, BCD, BCD empaquetado, Punto fijo, punto
flotante, etc.
CANTIDAD DE REGISTROS
Al ser los registros un almacenamiento interno de la CPU cuyo tiempo de acceso es muy breve
debido a ello, es muy importante la cantidad de los mismos disponibles y su especialidad o
función.
En general se organizan en potencias de dos, es así que hay procesadores que tienen desde 2
a 256 registros (2, 4, 8, 16, 32, 64, 128 o 256) de una, dos o más palabras de longitud.
Hay equipos que disponen de un juego completo de registros para cada nivel de interrupción, lo
que permite disminuir notablemente las transferencias de información en el manejo de las
interrupciones y ganar mucho tiempo de proceso.
En las computadoras del tipo RISC se presenta como un problema los llamados a las
subrutinas debido a la pila o stack de registros necesarios para estas operaciones, en cambio
en los otros (CISC) puede utilizar parte de la memoria central como un conjunto de registros y lo
maneja mediante un solo registro puntero (stack pointer).
MANEJO DE INTERRUPCIONES
Definimos a una interrupción como el reconocimiento de un evento anormal o no, que se
produjo en el sistema.
En general todos los microprocesadores ya traen incorporados dos o más niveles de
interrupciones, pero el tema toma importancia cuando se trabaja en multiprogramación, en
donde hay que conmutar un programa por otro en el uso del procesador (o por un periférico)
donde juega un papel notable el tiempo fijo insumido en la aceptación de la interrupción y su
tratamiento.
En el mecanismo del manejo de interrupciones intervienen tanto el hardware como el software,
pero es importante que las variables de estado del procesador, al igual que los contenidos de
los registros, al momento en que se produce la interrupción, sean salvados (guardados en un
lugar de la Memoria para luego poder recuperarlos cuando termina la interrupción) por el
hardware y no por el software debido a los tiempos insumidos para el tratamiento de cada
interrupción. Si lo hace el Hardware es muchísmo más rápido que si se lo realizara mediante
Software. Este hardware se conoce como First Level Interrupt Handler.
TIPO DE INSTRUCCIONES
Para entender el proceso de definición de la arquitectura de un computador estudiaremos la
importancia de como están estructuradas las instrucciones en cuánto a:
• la ubicación de los operandos de la instrucción, y
• el direccionamiento de la memoria.
La forma que estos elementos trabajan se estudiará en el Módulo 1B.
La ubicación de los operandos de las instrucciones puede ser:
• en uno o más campos inmediatos al código de operación
• en un registro de propósitos generales
• en una parte de memoria central
• en una pila (Stack) manejada por el hardware
• en un conjunto de registros del sistema
• en un dispositivo de entrada/salida.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
19 -
Inmediatamente vemos que la ubicación de los operandos nos determina la capacidad que
tiene la arquitectura para cumplir con las funciones básicas y repetitivas, como ser, vincular el
código de operación con los operandos o los Procesos que se bloquean en las que hay que
salvar el estado de los registros o el procesador o ejecutar un ruteo de información por distintos
buses. Es evidente que si se dispone de los operandos en los registros se gana mucho tiempo
en el momento de efectuar la operación debido a que se evita todo el proceso de búsqueda,
lectura, y transferencia desde la memoria central o desde un periférico.
En cambio el modo de direccionamiento a la memoria es importante pues si se usa un
direccionamiento directo la capacidad estará definida por los “n” bits que tiene la palabra, pero
si es indirecto se deberá traducir la dirección mediante algún mecanismo de cálculo. Esto
último, utiliza la unidad aritmético-lógica y los acumuladores, por lo que lo hace mucho mas
lento frente a la primera.
Como en estos momentos el objetivo es ganar tiempo en el procesamiento y tecnológicamente
los circuitos VLSI han permitido un hardware más veloz, se tiende a simplificar el modo de
direccionamiento en las Arquitecturas del tipo RISC a solamente dos tipos: Acceso directo y
modo inmediato.
Estos conceptos lo desarrollaremos con más profundidad cuando tratemos el tema de las instrucciones en el próximo
modulo.
B u s d e d ire c io n e s
B u s d e d a to s
B u s d e c o n tro l
F ig . A 1 .1 9 In te rc o n e x ió n d e m ó d u lo s m e d ia n te b u s e s
Describiremos brevemente a una arquitectura tradicional como la que desarrolló Von Neumann
que básicamente está compuesto por:
1. Una Unidad Central de Procesos que ejecuta el programa
2. Una Memoria Central o Principal donde se almacenan los programas, Datos y Resultados,
necesarios para el procesamiento.
3. Una Unidad de Entrada/Salida conjuntamente con las interfases o canales que cumplen con
las funciones de interfase para los intercambios y comunicaciones con el exterior de datos.
4. Distintos tipos de registros.
5. Un Conjunto de buses por donde circulan los datos, instrucciones, resultados, señales, etc.
A veces se llama “Sistema Informático” al conjunto: Computador más elementos a él
conectados como periféricos.
En éste punto comenzaremos estudiando los buses para luego ir describiendo a cada módulo integrante de una
unidad central de proceso.
A1.2.1. BUSES
Las interrelaciones entre los distintos módulos y sus interrelaciones físicos se efectúan
mediante los buses por los cuales circulan los datos o la información como señales binarias. El
objeto de los buses es servir como medio de comunicación entre los módulos. Con el fin de
comprender las interrelaciones, lo esquematizamos en la fig. A1.19.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
20 -
DEFINICIÓN DE BUS
Los buses son físicamente un conjunto de conductores (cables) en paralelo que vinculan los
distintos bloques de circuitos del sistema y por los cuales se transfieren las señales agrupadas
por funciones iguales (datos, direcciones, etc.)
Toda la información se transfiere en modo paralelo por el conjunto de cables, en forma tal de
disponer simultáneamente, en un instante dado, de todos los bits que componen la información
transferida a los dispositivos interconectados. Dicho de otro modo, la señales presentes en el
bus representan una información binaria particular y para que esa información sea completa,
requiere de la presencia simultánea de todas las líneas que componen el bus. Esto es debido a
que cada una de las líneas que transporta solamente un bit de la información transferida.
El hecho de que la transferencia se efectúe en paralelo (como se observa en la fig. A1.20) se
debe fundamentalmente a la gran velocidad que se logra en esta modalidad frente a si se
realizara en serie o secuencialmente.
T o d o s lo s c o n d u c to re s p re s e n ta n d o s e s ta d o s
(1 b it p o r c a b le ) a l d is p o s itiv o in te rc o n e c ta d o
C O N J U N T O D E C O N D U C T O R E S P O R D O N D E V IA J A N
BUS
L A S S E Ñ A L E S Y S E V IN C U L A N L O S D IS P O S IT IV O S
F IG . A 1 .2 0 C o n c e p to d e b u s
CLASIFICACIÓN DE BUSES
De acuerdo a las funciones o especialización de la información que transportan en:
• Bus de Datos • Bus de Estados
• Bus de Direcciones • Bus de Señales Periféricos
• Bus de Control
De acuerdo al sentido de circulación de De acuerdo a su ubicación en el sistema en:
las señales por el bus en:
• Unidireccional o • Bus Interno o
• Bidireccional. • Bus Externo.
La cantidad de buses que posee un sistema es variable, generalmente son tres: Bus de datos,
de direcciones, y de control. Algunos sistemas multiplexan en el tiempo para transmitir datos y
direcciones por un solo bus, llamándose en este caso UNIBUS.
Resumiendo:
B u s d e d a t o s
p o r F u n c ió n B u s d e d ir e c c io n e s
o t ip o d e s e ñ a le s B u s d e C o n t r o l
B u s d e s e ñ a le s p e r if e r ic o s .
P o r e l s e n t id o d e B u s u n id ir e c c io n a l
c ir c u la c io n d e
la s s e ñ a le s B u s b id ir e c c io n a l
C L A S IF IC A C Ió N p o r s u u b ic a c ió n B u s In t e r n o
D E B U S E S e n e l S is t e m a B u s E x t e r n o
U n ic o ( d a t o s y d ir e c c io n e s )
D o b le ( d a t o s , d ir e c c io n e s y d e r e s u lt a d o s
P o r la c a n t id a d
d e b u s e s T r ip le ( d a t o s , d ir e c c io n e s y d e C o n t r o l
p o r s u v e lo c id a d B u s A s in c r ó n ic o
B u s S in c r ó n ic o
C S (C h ip S e le c t)
(g e n e ra lm e n te c o n e c ta d o
a l B u s d e C o n tro l)
F ig . A 1.21 E sq u em a d e la lo g ica d e selecció n d e circu ito
El desarrollo del tristate ha permitido interconectar distintos dispositivos mediante una gran
simplificación circuital de interconexiones. La señal de control determina que la compuerta
funcione con su lógica normal (1 o 0) en el estado activo, o bien “flote” como virtualmente
desconectada de los elementos vinculados a ella en el estado pasivo (alta impedancia) como se
ve en la fig. A1.22 en la que solo está activa la interfase de E/S.
E/S
M.C. Interf. Control
U. de U. de Perifericos
U. C. ALU E/S
Reg. E/S
Ejemplo: se seleccionó
la interfase de E/S y se
Bus de control
habilitó su funcionamiento
M . P .U . B u s d e A d a p ta d o r
o C . P .U . d a to s b id ire c c io n a l
B u s M O S A d a p ta d o r
d e e s c ritu ra U n id ire c c io n a l B u s T T L d e
e s c ritu ra
F ig . A 1 .2 3 M é to d o d e s e p a ra c ió n d e n iv e le s y s e ñ a le s m e d ia n te a d a p ta d o re s
Tal es así, que no solamente se normalizan los buses, sino también las interfases y los
protocolos para lograr compatibilidades necesarias de señales y funciones en el proceso de las
comunicaciones.
Otra fuente de conflictos surge cuando se interconectan dispositivos integrados (Chips) de
distintas familias lógicas, como ser TTL y MOS. Generalmente se solucionan mediante Circuitos
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
22 -
Adaptadores de niveles lógicos y cargas (corrientes), que separan al bus en dos, llamados
DRIVERS (por ejemplo uno para la familia MOS y el otro para el TTL) como se ve en la figura
A1.23.
TIPO DE BUSES
BUS de DIRECCIONES: es unidireccional desde la CPU a los circuitos de acceso de la
Memoria Central por él viajan las señales binarias para localizar una posición de memoria. La
cantidad de cables define la capacidad de direccionamiento físico de una CPU, pues es la
potencia a la que se eleva al número 2. Por ejemplo: 16 cables nos permiten direccionar 64 Kilo
posiciones y 20 nos da 1 mega, mientras que 32 = 4 giga posiciones.
BUS DE DATOS: Permite a la CPU enviar o recibir datos. Es bidireccional.
BUS ÚNICO: Por el se transfieren datos o direcciones (nunca simultáneas). Primero van las
direcciones durante un instante de tiempo y luego van los datos. Es poco eficiente por lo que se
lo ha dejado de usar.
BUS DE CONTROL: Lleva las señales de sincronización de todo el sistema. Por ejemplo
Estados de salida de la CPU (leyendo, Ejecutando, Escribiendo, detenido, etc.), o de entrada de
la CPU como ser: dato aun no disponible, dirección no habilitada, etc. Otras señales sirven para
controlar las operaciones.
BUS DE ENTRADA/SALIDA: Relacionado con las operaciones de Entrada-Salida que se
realizan con los periféricos. Por el circulan datos, direcciones, banderas de señalización (por
ejemplo: salen de la CPU ordenes, y entran interrupciones), etc.
BUS del SISTEMA: Agrupa señales de Control, Bus de Datos y Bus de Direcciones y es
utilizado como Bus único en el Sistema.
BUS SINCRÓNICO - BUS ASINCRÓNICO: Se refiere si la transferencia requiere de la
sincronización de un reloj o no. Esto determina su velocidad de trabajo.
Podemos definir a una Unidad Central de Proceso (CPU o Central Processing Unit) como un
sistema digital de procesamiento sincrónico programable y programado.
Básicamente la podemos dividir en dos partes, a saber:
• La Unidad de Control (UC). Es la encargada de dirigir la ejecución de los procesos,
determinando en cada caso, que función debe realizarse y que básicamente está compuesto
por el Registro de instrucciones (donde se recibe el Código de operación de la instrucción a
ejecutar), el descodificador y el secuenciador.
• La Unidad de Proceso (UP). Es la que, bajo el control de la UC, ejecuta la secuencias de
procesos como ser las operaciones aritméticas o lógicas).
Ambas conforman una unidad integrada también llamada MPU (Micro Processing Unit) o
microprocesador.
Las funciones de la unidad central de proceso son:
• Controlar y supervisar todo el sistema de cómputos en base a un programa almacenado en
la memoria central.
• Desarrollar las operaciones aritméticas y lógicas que sirven para procesar los datos y
controlar las secuencias de ejecución de las instrucciones.
• Controlar el envío y la recepción de datos desde las unidades periféricas a la memoria
central y viceversa si no se dispone de DMA (Direct Memory Access).
Para realizar sus funciones la CPU se sirve de los siguientes componentes o recursos:
• Unidad de Control
• Unidad Aritmética y Lógica (ALU)
• Los Registros.
• Los Buses.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
23 -
• La circuitería de tiempo (Reloj o CLOCK)
• Los canales o interfases.
• La Memoria Central.
Data Bus
MDR
Clock
Reg de Instruc.
Registro 0
B 1 C P
u
2 a I/O
Decodificador 3 c E
s h RAM ROM
e
SECUENCUENCIADOR n S R
control y sincronismo I
+V Y I
n
Bus de Control t (BC) MEMORY CONTROLLER S F
F
(BC) e L T E
A
r G ALU
S I I E R
Reset n n S n
STACK POINTER ACUMULADOR P t e t M I
o r e ñ e
PAI o r a r C
∆ c r l r (BC)
e de u e u O
DATA POINTER s p s p
a c c S
d i de i
Prog. counter o o o
r n n
e e
MAR FLIH s s
INTA
Address Bus
Fig. A1.24 Esquema básico de una arquitectura basado en microprocesador .
La Unidad Central de Proceso tiene incorporada una serie de registros, los cuales utiliza para
almacenarlos mientras se está ejecutando un programa. Los Registros pueden ser dedicados a
una función específica o destinados a un uso general y también pueden ser inaccesibles o
accesibles en cuanto a la accesibilidad por los programas.
La denominación, la cantidad y el uso a que están destinados, dependen de cada Fabricante.
Daremos los nombres y sus aplicaciones de los más representativos.
REGISTRO ÍNDICE (Index Register I.R.): Utilizado para el indexado de las direcciones de
memoria Central. En él se almacena un dato (número) que luego se usa como referencia para
lograr la dirección efectiva. (Dedicado y Accesible).
REGISTRO DE DATOS (MAR: Memory Data Register). Es el encargado de almacenar los datos
cuando se leen desde (o escriben) en la memoria central. También se lo utiliza como un buffer
para sincronizar las transferencias de datos o aislar la CPU del Bus de Datos cuando esta en
tri-state. (Dedicado e inaccesible).
PUNTERO DE DATOS (DP: Data Pointer). Es el registro cuyo contenido representa la dirección
de Memoria Central en la que se almacena el dato que deberá utilizarse en la próxima
instrucción.
Este componente consta de un conjunto de circuitos, integrados dentro de la CPU, los cuales
cumplen funciones específicas que permiten, por ejemplo, detectar la disponibilidad o no de
algún equipo periférico, la disponibilidad de locaciones en memoria central, prioridad de uso del
procesador por el usuario, etc. etc.
La Unidad de Control (como dispositivo físico) junto al Sistema Operativo (como dispositivo
lógico) permiten el verdadero control y secuenciamiento de todas las acciones que se producen
dentro del computador. En el caso de las arquitecturas CISC estas acciones están
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
25 -
microprogramadas en el descodificador mediante una matriz lógica programada (PLA) que
entrega las señales apropiadas al Bus de Control quien las distribuye a los distintos circuitos
que intervienen en la ejecución de la instrucción. En el caso de las RISC están cableadas
directamente para cada operación.
Un esquema funcional de la Unidad de Control perteneciente a una CISC se ve en la siguiente
figura A1.25
(A L B U S D E
D IR E C C IO N E S ) P R O C E S A D O R D E IN S T R U C C IO N E S ,
1
M .A .R . In c r e m e n t a d o r
P .C . ( P r o g r a m C o u n t e r )
2a M em o ry ( IN C R E M E N T E R )
A d d re ss
R e g is t e r
R .I.E ( R e g . In s t r u c c ió n e n E je c u c ió n ) (L L E G A E L C Ó D . D E 2b
3 D E L B U S IN T E R N O )
( C U R R E N T I N S T R U C T I O N R E G IS T E R )
P R O C E S A D O R d e D IR E C C IO N E S 5b D e c o d if ic a d o r d e la O p e r a c ió n
(D E C O D E R ) 4
(A D D R E S S P R O C E S S O R )
5a
S e c u e n c ia d o r
PR OC ESADOR de SALT OS (S E C U E N C E R )
(B R A N C H P R O C E S S O R )
P R O C E S A D O R D E O P E R A C IO N E S
P R O C E S A D O R d e D IR E C C IO N E S , P R O C E S A D O R d e IN T E R R U P C IO N E S
Y d e E N T R A D A / S A L ID A
6
(F I R S T L E V E L I N T E R R U P T H A N D L E R )
(A L B U S D E C O N T R O L )
F ig A 1 .2 5 E s q u e m a d e u n a U n id a d d e C o n t r o l
CÓDIGO OPERANDOS
de
OPERACIÓN OPn
OP1 OP2
(C.O.)
DEVUELVE EL
LA C PU E JE C UT A
RESULTADO AL L A IM A G E N D E L
PR OC ESO EN
PR OC ESO
M .C .
C IC L O D E E J E C U C IO N
F ig . A 1 .2 7 D if e r e n t e s c ic lo s e n la e je c u c ió n d e u n P r o g r a m a
La ejecución de un programa requiere de la intervención del Sistema Operativo. Esto se explica en detalle en el
módulo 2 del presente texto.
La Unidad de Control es un conjunto de circuitos adaptados para recibir y transferir los datos,
resultados, instrucciones, direcciones, y señales de control entre los circuitos externos al
microprocesador y los internos (ver fig. A1.03 de este módulo).
Debido a las características que cada fabricante imprime en su diseño, estos circuitos difieren
notablemente entre sí pero básicamente podemos distinguir:
• SALIDA DE DIRECCIONES: Se efectúa a través del Registro MAR cuya función es hacer de
interfase entre los Buses internos y el Bus de Direcciones.
• SALIDA Y ENTRADA DE DATOS Se efectúa a través del Registro MDR cuya función es
hacer de interfase entre los Buses internos y el Bus de Datos.
• SEÑALES DE CONTROL DE BUSES: Fundamentalmente compuestos por:
• R/W : Define si los datos que se transfieren en el Bus de Datos son de un Ciclo de Lectura o
de Escritura.
• Señal de Reconocimiento de Datos: indica que se ha completado el Ciclo en el bus de datos.
• Señal de Reconocimiento de Direcciones indica que se ha completado el Ciclo en el bus de
direcciones.
• Pedido de Bus: es una señal de entrada al procesador que proviene de un dispositivo que
desea usar el bus.
• SEÑALES DE INTERRUPCIÓN: Existen varias señales según el nivel de interrupción. Por
ejemplo si tuviéramos tres señales (3 bits), el nivel 0 sería el de menor prioridad y el 7 el de
mayor prioridad o a la inversa, según el criterio adoptado por el diseñador del hardware.
• SEÑAL DE CONTROL DEL SISTEMA: son señales de entrada al Procesador usadas para
detenerlo, arrancarlo, o que haya ocurrido un error. Básicamente son:
◊ Error en el Bus: se produce esta información cuando ha ocurrido alguno de los siguientes
eventos:
1. El dispositivo no responde,
2. Un acceso ilegal fue determinado por el Administrador de la Memoria.
3. Se produjo una falla en un dispositivo y envió una señal al vector de Interrupciones.
4. Errores (dependen del caso).
Esta señal interactúa con la que produce la Detención del procesador (HALT) como un proceso excepcional o que se
deba reiterar el Ciclo de Bus.
◊ RESET: Esta señal bidireccional actúa de dos formas:
1. Bajo una acción externa inicializa al sistema, es decir, la señal dispara la rutina de
inicialización que pone el Registro P.C. en la primer dirección de Memoria para
comenzar a cargar el Sistema Operativo, también llamado BOOTSTRAPPING o I.P.L.
(Initial Program Loader).
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
28 -
2. Si la acción es interna proviene de la ejecución de una instrucción RESET que causa la
inicialización de todos los dispositivos externos mientras que se mantiene el estado del
Procesador sin afectarlo.
◊ HALT: Es una señal que produce una interrupción en la operación del procesador después
de haberse completado su ciclo.
◊ SEÑAL DE CONTROL DE PERIFÉRICOS: Generalmente se las utiliza para sincronizar las
operaciones entre los dispositivos.
◊ Enable (Habilitación): Esta señal habilita al dispositivo cuando está activada y lo deja
deshabilitado cuando no está activada.
◊ Ready: Esta señal indica que el dispositivo esta listo para operar normalmente cuando está
activa. Si no esta activada significa que esta indisponible.
◊ SEÑAL DE ESTADO DEL PROCESADOR: Generalmente indica el modo en que está
funcionando el Procesador (Usuario o Supervisor) para ejecutar instrucciones comunes o
privilegiadas respectivamente.
Este concepto se ampliará en el módulo 2.
◊ SEÑAL DE RELOJ (CLOCK): Es una señal de frecuencia constante que sirve para
sincronizar todos los eventos que se producen en el Sistema.
Todas éstas señales, salvo las Entrada-Salida de Datos y Salida de direcciones, pertenecen a
lo que genéricamente llamamos Bus de Control que gobierna la Unidad de Control.
Es la unidad de la CPU que permite realizar las operaciones básicas aritméticas, efectuar
comparaciones y operaciones basadas en el álgebra booleana, como ser las funciones AND,
OR, NAND, NOR, XOR, etc..
Puede disponer de uno o más Registros especiales denominados ACUMULADORES (AC) que
tienen por función almacenar los datos que se requieren para realizar una operación o depositar
los resultados producidos después de la operación.
También utiliza el Registro FLAGS para depositar los estados singulares (binarios) producidos
durante las operaciones.
B U S IN T E R N O
R
E
G.
A
C
ALU U
M
U
L
A
D
O
R
R E G IS T R O de FLAG S
S e ñ a le s d e E s ta d o s q u e v a n a l B u s d e C o n tro l
F ig .A 1 .2 8 C o m p o n e n te s d e la A L U - U n id a d A ritm é tic a ló g ic a .
Un esquema de una ALU que utiliza un solo Acumulador se esquematiza en la fig. A1.28.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
29 -
Las memorias: son dispositivos que permiten almacenar la información (datos, resultados,
programas, imágenes, señales, etc.) y recuperarlos cuando cualquier elemento del computador
lo requiera.
Se denomina Punto de memoria (o celda) al dispositivo que almacena un bit. Físicamente está
representado por un biestable (Flip-Flop), o por un capacitor, una “Burbuja magnética”, un
núcleo de ferrite, etc.
El punto de memoria puede tomar solamente dos estados binarios, “1” o “0”.
Byte equivale a un término binario (Binary termin) generalmente compuesto por 8 bits.
Carácter: es el conjunto de bits necesarios para representar un símbolo de un código
(alfabético, numérico, especial, etc.).
Palabra: es una unidad lógica de información. Generalmente está compuesto por un número
entero de Bytes o caracteres.
El tiempo se mide en segundos. Los submultiplos mas utilizados en computación son:
Milisegundo(ms): milésimo de segundo = 10-3 segundos.
Microsengundo(µs): millonésimo de segundo = 10-6 segundos.
Nanosegundo(ns): mil millonésimo de segundo = 10-9 segundos.
Picosegundo (ps): billonésimo de segundo = 10-12 segundos.
Lectura de memoria: es el proceso de extracción (recuperación) de la información, que fue
previamente almacenada en una determinada posición.
Escritura en memoria: es el proceso mediante el cual se registra (guarda) la información en
una posición dada.
Dirección de memoria: es la ubicación física (posición) de la palabra en la memoria.
Direccionamiento: es la función usada para localizar una información dentro de la memoria.
Tiempo de acceso: es el tiempo que transcurre entre el instante en que se lanza una operación
de lectura y el instante en que se dispone de la primera información buscada.
Capacidad de memoria: Es el número máximo de bits que puede contener la memoria.
La capacidad se expresa en unidades que son potencias de dos. Es binaria.
Es común referirse a la capacidad de almacenamiento que es la cantidad de caracteres,
símbolos de un código o palabras de 8 bits que se puede contener una memoria en un sistema.
Las unidades convenidas son: el KBy (KiloByte) que representa a 210 = 1024 Bytes, el MBy (Megabyte que equivale
a 106), el GBy (GigaByte = 1000 MBy = 109 ), y el TBy (Tera = 1012 ). (Ej. 64KBy, 128 KBy, 256 KBy, 512 KBy, 1 MBy,
etc.)
Ciclo de memoria:
a) En el caso de núcleos magnéticos: la lectura es destructiva en estos dispositivos, y
requiere de un proceso para regenerar y reescribir la información en cada lugar; por lo
que esta operación se realiza en dos fases:
a.1. grabación = puesta a cero + grabación
a.2. lectura = lectura + regrabación.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
30 -
Al conjunto de ambas fases en cada caso, se lo llama “ciclo de memoria” que es algo mayor
que el tiempo de acceso.
b) En los circuitos integrados: se toma el proceso de una lectura; (la escritura es
semejante):
• El bus de direcciones tiene la información de la posición de la palabra de memoria a
leer que le fuera enviado o por la CPU o por un Procesador DMA (Direct Memory
Access).
• Esa dirección es físicamente descodificada por el controlador de la Memoria.
• Por el bus de control llega la orden de leer
• Inmediatamente se habilita el bus de datos por donde sale el contenido de esa posición
de memoria sin destruirse la información que estaba almacenada.
A todo este tiempo se lo denomina “ciclo de memoria” que utiliza varios ciclos de máquina para
completar la operación (sea de lectura o de escritura).
Ciclo de almacenamiento: Es el tiempo necesario para transferir un carácter (o byte) desde o
hacia la memoria central.
e ) M e m o r ia A u x ilia r (D is c o s , T a m b o r e s , C in ta s , e tc .)
M e m o r ia s S e c u n d a r ia s
f) M e m o r ia E x te r n a (T a r je ta s , C in ta s , C a s s e te s , e tc .)
Las memorias de registros: son el almacenamiento fundamental que utiliza la CPU para la
operación de la máquina. Es una memoria de semiconductores muy rápida, cuyo tiempo de
acceso es muy pequeño. Los acumuladores, flags, registros y contadores, entran en esta
categoría.
La memoria interna: es aquélla construida internamente dentro del chip de la CPU, en que se
almacenan todas las instrucciones del programa usuario y los datos que están bajo proceso
inmediato, además de ciertas instrucciones pertenecientes al Sistema Operativo; a esta
memoria tiene acceso la CPU y también se la conoce con el nombre de Memoria Caché de
primer nivel. En el caso del procesador P6 Se integra un banco de memoria caché de 256 KBy
o mas dentro del mismo Chip. En ese caso esta memoria es de segundo nivel.
La Memoria Caché es una memoria intermedia externa al procesador, generalmente se la
designa como de segundo nivel, entre la CPU y la memoria Central. Es de alta velocidad de
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
31 -
acceso, utilizada básicamente para disponer de las instrucciones y datos cerca de la CPU
cuando las necesite.
Memoria Central es la que recibe los programas y los datos para su ejecución. Solamente se
puede ejecutar si está cargado en ésta memoria. Generalmente está compuesta por varios MBy
y es algo mas lenta que la caché. Es una memoria de Lectura y escritura que se llama RAM y
una parte es solamente de lectura (ROM). Será tratada a continuación.
La memoria auxiliar o secundaria: es aquella memoria utilizada durante el procesamiento en
la que se almacenan todos aquellos programas, subrutinas, datos, etc. que no han podido ser
almacenados en la memoria interna debido a las limitaciones de capacidad. A pesar de que su
tiempo de acceso es superior a las memorias internas, permite almacenar una gran cantidad de
bits en forma muy económica. Los discos, cintas, tambores, cassettes, etc. pertenecen a este
nivel.
Memoria externa: es aquélla que permite almacenar cantidades ilimitadas de información a
muy bajo costo en el caso de que se requiera un bajo tiempo de acceso (caso de las tarjetas o
cintas o discos ópticos).
En este módulo solamente nos referiremos a las memorias centrales o primarias.
a) Volatilidad: es la facilidad con que las memorias pueden perder la información almacenada
cuando se interrumpe la alimentación (Ej.: los Flip-Flops de semiconductores). Los
materiales magnéticos no son volátiles (Ej.: discos).
b) Forma de acceso:
1- Acceso aleatorio o RANDOM o directo: cualquier información contenida en la memoria
y cuya dirección sea conocida, puede ser alcanzada en un determinado momento. (Ej.
las matrices de Flip-Flops)
2- Acceso secuencial: la información aparece en forma de una secuencia, de manera que
para acceder a una determinada posición, debe pasarse previamente una serie de
ellas, no requeridas (Ej. cintas magnéticas).
c) Destructivas de la información (en la lectura):
1- Destructiva: la información almacenada se pierde cuando es leída y se debe volver a
re-escribir
sobre ella para mantenerla. (Ejemplo: núcleos magnéticos).
2- No destructiva: la información no se pierde cuando es leída. (Ejemplo: los Flip-Flops).
P A L A B R A D E n -B IT S A L M A C E N A D A
D IR E C C IO N E S E N E S A D IR R E C C IO N
(F IL A S )
M S D = M o s t S ig n ific a n t D ig it
L S D = L a s t S ig n ific a n t D ig it
P O S IC IO N C E R O
D E C O D IF IC A D O R D E
D IR E C C IO N E S
B U S D E D IR E C C IO N E S (U n id ire c c io n a l)
F ig u ra A 1 .2 9 E le m e n to s c o m p o n e n te s d e la m e m o ria c e n tra l
En la Fig. A1.29 se representa una organización típica en forma matricial. Las columnas van
desde el bit 0 (posicional), hasta el bit de peso “n”. Esto es el ancho de la palabra, o sea, su
tamaño, también llamado resolución, que debe coincidir con el ancho del bus de datos. En las
filas vienen representadas las direcciones o posiciones en forma vertical, siendo la primera
posición, la dirección cero, luego la segunda, la dirección uno y así hasta alcanzar la enésima
que representa su tamaño o capacidad máxima, expresada en x-palabras para almacenar
información.
Para referirse a una cierta palabra de la memoria, se accede mediante el bus de direcciones,
quien va conectado a un descodificador, que selecciona en última instancia, la posición física de
la fila en que está ubicada dicha palabra.
En la figura no se incorporó los elementos que actúan como control. Ejemplo las señales de
lectura - escritura, de selección de circuitos, reset, registros separadores de bus, etc.
IIa : R O M - P R O M
M E M O R IA S II P A S IV A S IIb : E P R O M - R P R O M
IIc : E A R O M - E E R O M
IIIa : C C D
III O T R O S T IP O S IIIb : B U R B U J A S M A G N E T IC A S
IIIc : S IS T E M A S O P T IC O S
T a b la A -1 C o m p a r a c ió n e n tr e la s m e m o r ia s
Ciclo de lectura y escritura de una memoria estática (ver Figura A1.30 y A1.31)
a) Para leer en un dado circuito integrado (C.I.) de memoria (chip), es necesario referirlo
mediante una señal de selección (generada en la Unidad de Control de la CPU), llamada “Chip
select” (CS) o habilitación “Chip Enable” (CE) a través del bus de control que tiene el sistema y
luego:
b) dar la dirección de la palabra elegida en la memoria, a través del bus de direcciones (Ao a
An) que se encuentran físicamente conectados al C.I.. Esta dirección proviene del Program
Counter (P.C.) de la CPU a través del bus de direcciones.
c) transcurrido el tiempo de acceso, aparecer por el bus de datos la información buscada, la
cual puede ser transferida por el bus, siempre que la señal de habilitación que inhabilita la
salida “c” esté bajo (en este caso) porque se verifica entonces, la presencia de los datos y
cuando se hace alto (valor =1), supone que es correcta. Mientras tanto se deben mantener
durante un tiempo, las señales de la dirección (1) y las señales de selección o habilitación del
circuito (2) como se ve en la Fig. A1.30.
C IC L O S D E R E L O J
(1 )
b) D ir e c c io n e s (1 )
(0 )
H a b ilita c io n (1 )
a) d e C ir c u ito (2 )
( C E 1 , C E 2 , e t c .) (0 )
(1 )
c) In h ib ic io n d e
(3 )
s a lid a (0 )
(1 )
S A L ID A D A T O S V A L ID O S
d) (4 )
(0 )
(1 ) = A L T O
F ig u r a A 1 .3 0 L e c tu r a e n u n a M e m o r ia E s ta tic a . (0 ) = B A J O
(1 )
b) D ir e c c io n e s (1 )
(0 )
H a b ilit a c io n (1 )
a) d e C ir c u it o (2 )
( C E 1 , C E 2 , E T C .) (0 )
(1 )
c) In h ib ic io n d e (3 )
s a lid a (0 )
(1 )
E N T R A D A /S A L ID A (4 )
d) M o v im ie n t o d e D a t o s DATOS ESTABLES
(B u s d e D a to s ) (0 )
(1 )
e) L e c t u r a /E s c r it u r a (s e ñ a l 5 )
( L O A D /S T O R E ) (0 )
5
(1 ) = A L T O
F ig u r a A 1 .3 1 E s c r it u r a e n u n a M e m o r ia . (0 ) = B A J O
La Escritura (figura A1.31) es semejante a la lectura en cuanto a los pasos a) y b). En c)se
inhabilita la salida de datos de la memoria puesto que se va a almacenar en ella (3).
d) El dato a escribir debe ser presentado a las terminales correspondientes del circuito
integrado (I/0o a I/On) dentro de un tiempo t1 y al cabo de un tiempo t0, el dato habrá llegado a
los respectivos Flip Flops que fueran seleccionados por la dirección en b). Entonces hecho esto,
los datos presentados al bus de datos (4) y e) se habilita mediante la señal (5) la escritura .
IIa) ROM (Read Only Memory) o PROM (Programmable ROM): Esta memoria se programa
previamente mediante una máscara elaborada por el fabricante de los circuitos integrados en el
momento de su construcción a pedido del cliente. Debido a ello, esta memoria no es volátil,
puesto que se han depositado previamente y en forma permanente, los “unos” y los “ceros”
dentro de cada celda de la memoria, así se establece si hay o no conexiones entre las filas y las
columnas de la memoria. Debido al costo de la elaboración de los Circuitos Integrados, el
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
36 -
fabricante exige una gran cantidad a fabricar en serie, que por lo general, supera las mil
unidades. Las ROM de máscara están destinadas a grandes volúmenes de producción.
A0 An
DECOD. X DECOD. Y
C C C C
S S S S Matriz de
0 1 2 3 almacenamiento
BUFFER DE SALIDA
Dirección
Selección
de Circuito
(CS0, CS1, ETC.)
V OH
M ovimiento de Datos SALIDA de DATOS SALIDA ALTA
(Salida Bus de Datos) ESTABLES IM PEDANCIA
V OL
IIa) PROM: Este Circuito Integrado admite una programación a través de un equipo especial,
destinado a grabarle directamente, mediante un proceso de “fusibles” que se queman en las
uniones de las filas y columnas, que previamente fueron seleccionados por las direcciones del
programa (la ausencia o existencia de la unión, representa el bit en “cero” o “uno” cuando se lo
lee respectivamente).
Es evidente la ventaja que representan estos dispositivos, por la comodidad de desecharlos si
han sido mal programados o si las cantidades a producir, no superan a varios cientos de uni-
dades.
La tecnología utilizada en la elaboración de estos chips es la bipolar, que es de gran velocidad
(tiempos de acceso desde 40 a 100 ns).
IIb) Memorias pasivas EPROM-RPROM: (EPROM: Erasable Programmable ROM = Memoria
borrable y programable) (RPROM: Reprogrammable-Programmable ROM = Memoria borrable y
reprogramable).
Ambas memorias funcionan bajo el mismo principio, salvo en el mecanismo de borrado. En las
EPROM como se ve en la figura A1.33, se utiliza una luz ultravioleta que incide sobre una
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
37 -
ventana de cuarzo que expone a la pastilla durante unos diez minutos, para borrar la
información de la memoria
LUZ ULTRAVIOLETA
VENTANA
EPROM
Ó X ID O
F ig u r a A 1 .3 4 C o n e c c ió n e s d e u n a M e m o r ia C C D
Sobre una base de semiconductor de silicio del tipo N, se disponen pequeñas capas de óxidos
semiconductores sobre los que se depositan contactos de aluminio para las conexiones.
Debido a su sencilla geometría es fácil repetirla y se logran grandes densidades (es normal 64 k
bits o más por mm2). Pero su tiempo de acceso es muy grande (del orden de los 50 a 100
mseg). Se ha pensado utilizarlas en reemplazo de los discos en el almacenaje auxiliar, pero su
elevado costo frente a la evolución los dispositivos magnéticos, lo han relegando sin
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
38 -
posibilidades. Hoy día se los utiliza como conversores de objetos iluminados a señales
electrónicas en las cámaras de televisión, también se usan como sensores ópticos de
videocámaras o en pizarrones electrónicos
IIIb) Burbujas magnéticas: Una tableta de material magnético que posea una marcada
anisotropía
(Anisotropía: Cuerpos cuyas propiedades ópticas, físicas o mecánicas no son las mismas en
todas las direcciones) en su estructura cristalina (ortoferritas, garnets, etc.) posee una serie de
dominios magnéticos, distribuidos de manera tal que las áreas de los dominios magnetizados
en cada una de las dos direcciones son iguales). Sin embargo aplicando un campo magnético
perpendicular a la tableta se crean dominios estables de forma casi circular y de magnetización
opuesta.
Estos dominios o burbujas pueden ser desplazados a través de la tableta, sobre la que
previamente se han impreso los caminos (loops) que han de seguir, aplicando un campo
magnético rotatorio.
La presencia o ausencia de burbujas indica si hay un “0” o un “1” almacenado, y el
desplazamiento de las burbujas transforma a la tableta en un registro de desplazamiento.
Colocando sensores en los extremos, es posible usar al dispositivo como un sistema de
memoria de muy alta densidad (1,5 Mbits/cm2) con un tiempo de acceso medio del orden de los
500 microseg. La lectura es no destructiva. Se usa un imán permanente para producir la
polarización magnética.
Desde el punto de vista del sistema, este tipo de memoria puede asimilarse a un tambor o
disco, en el que el movimiento mecánico de rotación ha sido reemplazado por el
desplazamiento de las burbujas en la tableta.
Una ventaja adicional en este tipo de memoria, es la posibilidad de efectuar operaciones lógicas
entre dos trenes de burbujas. El almacenamiento es no volátil por lo que su uso preferencial
eran los juegos en “cassettes” a los que se les había eliminado la posibilidad de grabar. De
todas formas esta memoria se dejaron de usar por problemas de velocidad, costo y su patente
propietaria.
IIIc) Sistemas ópticos de memoria: Uno de los sistemas que se había desarrollado es el
UNICON 690, que también ha sido usado de manera experimental en la computadora ILLIAC
IV, (actualmente ya fuera de servicio y desarmada) y que fuera la base de investigación para
los actuales CD-ROM.
El UNICON se usaba como un almacenamiento primario y consistía en un rayo láser que se
enfocaba sobre una planchuela metálica en un punto que representa un bit. Para escribir un bit,
el rayo se enfocaba en el lugar seleccionado y al mismo tiempo, se aplicaba un campo
magnético cuya dirección dependía de la información a escribir en ese bit. El rayo calentaba la
superficie en el punto, lo que provocaba una reducción de la fuerza coercitiva del material. Con
la aplicación simultánea del campo magnético se producía una conmutación del material. Al
enfriarse se restablecía la fuerza coercitiva y el punto seleccionado permanecía magnetizado en
el sentido deseado.
Para la lectura, se establecía un pulso láser (luz polarizada) de muy baja intensidad, de manera
que no se produzca un apreciable incremento de temperatura. Con una analizador y un
fotodetector se medía la magnitud de la rotación Faraday. Un “1” o un “0” almacenado, producía
valores diferentes de la rotación Faraday.
Actualmente con los sistemas ópticos, bajo investigación, se espera lograr densidades del
orden de 1,5 Mbits/cm2, con un tiempo de acceso relativamente elevado (del orden de los
milisegundos), pero con una alta velocidad de transferencia. Es un tipo de memoria no volátil y
de lectura no destructiva.
Los conceptos sobre las distintas Estructuras de Datos lo estudiaremos en el Módulo 1-C
La información puede organizarse, en la memoria de un computador, según distintos conceptos:
los más comunes son:
Vector: es la organización más clásica de las informaciones en memoria. Consiste en
almacenarlas sucesivamente, una detrás de otra. Generalmente ésta es el caso de las
instrucciones de un programa, un conjunto de números diferentes, etc. Se necesita entonces,
para buscar las informaciones sucesivas, de un “pointer” o puntero cuyo valor sea igual a las
direcciones de las informaciones almacenadas en secuencia. Este puntero generalmente es el
contador de Programa (P.C.) cuyo contenido apunta a la dirección de memoria. Si son datos el
puntero a los datos (data pointer) y si es una pila el stack pointer.
Lista: en la estructura de la lista cada dato va acompañado por un “pointer” que contiene la
dirección del dato siguiente. Todas las operaciones se realizan entonces, por manipulación de
“pointers”.
Tabla: en este tipo de organización se establece una correspondencia entre dos tipos de
información: la información propiamente dicha y la información de entrada que permite localizar
la misma. En el caso general, la tabla se almacena bajo la forma de un vector, cada una de sus
elementos contendrá la información de entrada o identificadora y la información significativa
buscada. La búsqueda en tabla exige sucesivas comparaciones de la información de entrada
con todas las posibles informaciones de entrada, hasta llegar a la coincidencia. En ese caso, ya
está disponible la información propiamente dicha. Un ejemplo de este tipo de estructura es
usada en las memorias caché.
Cola: las informaciones agrupadas según el concepto de cola funcionan según el principio
Primero en Entrar Primero en Salir (PEPS y en inglés FIFO: First In First Out). Es decir, se las
ha procesado en el mismo orden en el cual ingresaron.
Pila: la información agrupada según un pila (STACK) funciona según el principio: último en
entrar, primero en salir (LIFO: Last In First Out). Es decir, la información se procesa en orden
inverso al cual ingresaron.
C PU M E M O R IA M E M O R IA
C EN T R AL S E C U N D A R IA
b) tre s n iv e le s :
C PU M E M O R IA M E M O R IA M E M O R IA
C AC H E C EN T R AL S E C U N D A R IA
c) V a rio s n iv e le s d e m e m o ria c a c h e
C AC H E de M E M O R IA
P r im e r N iv e l C AC H E de M E M O R IA M E M O R IA
C PU
(In te r n o ) T e r c e r N iv e l C EN T R AL S E C U N D A R IA
M E M O R IA
C AC H E de
S e g u n d o N iv e l F ig . A 1 .3 5 D is t in t o s n iv e le s je r a r q u ic o s d e m e m o r ia s e n u n c o m p u t a d o r
La figura A1.36 grafíca a “e” como función de “H” y muestra la importancia de obtener elevados
valores de “H” para que “e” sea próximo a uno, es decir, TPA similar a Ta1.
Otro indicador de la eficiencia de un sistema se puede obtener mediante el factor de
utilización “u” de la memoria. La eficiencia con que la memoria está siendo utilizada en un
instante dado puede determinarse como:
Su
u= (8)
S
donde Su es el tamaño de la memoria ocupada con partes activas de programa del usuario, y S
es la capacidad total de ese nivel. Dado que la memoria central es mucho más valiosa que la
memoria secundaria, “u” es útil para medir el empleo de la memoria central. Las zonas que son
comprendidas por (S - Su) son las que se desperdician debido al fenómeno llamado de
fragmentación externa o fragmentación interna, o que están ocupadas por el Sistema
Operativo, o áreas de datos del sistema administrador de memoria, etc., o las ocupadas por los
programas de usuarios que no están ejecutándose activamente.
El concepto de fragmentación se amplía en el módulo 5
1.0 _____________r=1___________ + ∗xx
+ + ++ + ∗x
+
+ x
0.8 +
+ ∗ x
+ r=2 ∗ x
+ ∗ x
+ ∗ x
+ ∗ x
0.6 + ∗ x
+ ∗ x
r=10 ∗ x
∗ x
0.4 ∗ x
∗ x
∗ x
0.2 + ∗
∗∗
x
∗
x
∗ x
∗ ∗ x r=100
∗ ∗ xx x
x xx
x x
xx x xx
0 0.2 0.4 0.6 0.8
cociente de aciertos
Fig. A1.36 Gráfico de cociente de aciertos
Por ejemplo si r =100, para que e> 0.9, H debe ser H>0.998.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
43 -
Habrá computadores con celdas vivientes que piensan como las mentes humanas. Según el Dr.
Lewis Branscomb (I.B.M., jefe de Investigaciones en 1982), estamos en el ocaso del chip y
predice que en 100 años las computadoras tendrán en promedio una memoria equivalente a
16.000 personas, y concluye que la densidad de información será aún mayor que la del
cerebro. Además suena irónico que sería mas barato alcanzar nuevos conocimientos que
almacenarlos hasta su uso y acceso vía satélite a grandes bancos de conocimientos
estacionados en el espacio.
La primera generación de estos nuevos componentes (que dejarán a los chips obsoletos)
estarán basados en el efecto Josephson, descubierto por el científico británico Brian
Josephson, premio Nobel de Física de 1973.
Estas investigaciones se basan en la sustitución del transistor de silicio por un diminuto
“sandwich” de ciertos compuestos metálicos que se congelarán a una temperatura de 0 grado
Kelvin (cero absoluto -273 grados Centigrados) y funcionan como una compuerta eléctrica, al
igual que un transistor, que deja pasar la corriente o la bloquea pero con mayor velocidad y
eficacia.
En otro orden de cosas, el concepto de memorias de las computadoras, va a modificarse
dramáticamente hasta semejarse en la forma a las memorias vivientes. En lugar de usarse
compuestos metálicos se pueden utilizar, por ejemplo, moléculas de D.N.A. (Ácido
desoxirribonucleico) para almacenar conocimientos.
El D.N.A. está contenido en todos nuestros tejidos celulares y es el portador de la información
genética característica que es transferida de una generación a la otra.
Cada molécula de este ácido puede contener una enorme magnitud de información, en forma
tal que se calcula que 400 moléculas de D.N.A. podrán contener un enorme caudal de
información como la de toda la Biblioteca Nacional. Cuando los expertos descubran como
controlar y manejar esta tecnología, estaremos en el inicio de una era de grandes cambios
sociales cuyos aspectos y consecuencias son casi imposible de predecir o imaginar hoy día.
Este punto se incluye en este texto a los fines de que el lector conozca la terminología utilizada en la arquitectura mas
popular.
OBSERVACIÓN: No confundir PC (de Personal Computer) con P.C. (del registro Program Counter dentro de la
CPU).
(1) - C O N T R O LA D O R D R A M
bus de
(2) - Q U AR T Z - R E LO J
datos (3) - C O N T R O LAD O R D M A
bus de D
(4) - C O N T R O L D E BU S LO C A L
i486 direcciones (1) R (5)- C O N T R O LAD O R D E
(2) A IN T E R R U PC IO N E S
(6) - T E M P O R IZA D O R / C O N T A D O R
M (7) - C O N T R O LAD O R D E D iskette
(8) - C O N T R O LAD O R D E D IS C O
(3) (4) (9) - C O N T R O LAD O R D E R ED
RESET (10) - P U ER T O S
(11) - G R Á FIC O S (M O N IT O R )
(12) - EPROM
¨B us de C ontrol
No se puede asegurar cuando llegará y dónde estará el límite de estos continuos avances
tecnológicos, pero ya se están viviendo algunos resultados reflejados en esta nueva era, donde
no se puede, a estas alturas, pensar en hacer un trabajo sin la ayuda de una computadora con
un procesamiento veloz.
Bus de memoria
El aumento de la velocidad de los microprocesadores tornó imprescindible que se mejorara la
conexión con la memoria ya que la velocidad del bus de expansión no resultaba suficiente. Para
ilustrar esta situación consideremos lo siguiente: las plaquetas de expansión típicas soportan
dispositivos en los cuales el tiempo requerido para transferir datos desde y hacia el
microprocesador es descartable comparado con el tiempo que lleva juntar los datos para
transferir. Por ejemplo, el tiempo de acceso a un disco rígido es de 10 milisegundos mientras
que un solo ciclo de bus tarda 125 nanosegundos. Por otra parte, el tiempo de acceso a la
memoria RAM es de 50 a 200 nanosegundos. Esto llevó a que se separara el bus de memoria
del bus de expansión. Compaq fue la primera computadora en hacerlo, seguida rápidamente
por la mayoría de los fabricantes. El diseño de Compaq creó el bus de memoria separado que
corre a la velocidad completa del microprocesador y se mantiene el bus de expansión
compatible con las plaquetas de expansión existentes. Las plaquetas de expansión de memoria
de Compaq se enchufaban en un zócalo propietario especial que era controlado a la velocidad
completa del microprocesador en lugar de la velocidad menor del bus de expansión.
Este zócalo propietario no impide que las plaquetas de memoria se puedan enchufar a los
zócalos de expansión pero habilita que se agregue en memoria un bus dedicado que opere más
rápidamente. El bus de memoria puede utilizar conectores en apariencia similares a los slots de
expansión y la memoria adicional puede estar incluida en plaquetas con circuitos impresos o,
más comúnmente, en módulos de memoria (SIMMs) que se insertan en pequeños slots en la
motherboard.
Bus de expansión
La elección de una plaqueta adicional para la PC está determinada por el tipo de bus de
expansión con que cuenta la computadora. Los buses disponibles actualmente han surgido en
respuesta a los avances en la velocidad y rendimiento de otros componentes de la arquitectura
de las microcomputadoras.
1988 - Compaq incorpora la arquitectura EISA en sus modelos Compaq Desk Pro
El 13 de septiembre de 1988, un consorcio de nueve compañías, dirigidos por Compaq, anunció
que estaba desarrollando una alternativa al MCA. Este consorcio votó para mantener la venta
de computadoras del estilo anterior, que estaban basadas en ISA. La alternativa a MCA fue
denominada EISA (Extended Industry Standard Architecture). Desde el principio estuvo claro
que el desarrollo del EISA estaba basado en las necesidades de venta y no en las de ingeniería
Los slots EISA mantenían el diseño básico de ISA, pero son mas profundos, característica que
les permite acomodar una segunda fila mas corta de contactos. De esta forma es posible
conectar tarjetas ISA en slots EISA, los cuales se acomodan en la primera fila de contactos
compatibles con ISA. Las tarjetas EISA, en cambio, pueden alcanzar las dos filas de contactos.
Hay un dispositivo de seguridad que impide que las tarjetas ISA puedan introducirse hasta las
conexiones EISA.
El hecho de haber mantenido la compatibilidad con el bus ISA significa que el bus EISA también
tiene una frecuencia de 8 MHz. Es un bus completo de 32 bits y con 32 líneas de direcciones,
de modo que esta pensado para las prestaciones de los procesadores de 32 bits como el 386 y
486.
Desde el punto de vista técnico, la diferencia principal entre MCA y EISA es que el bus MCA es
asincrónico y el EISA es sincrónico. Los buses sincrónicos trabajan con una frecuencia de reloj
invariable e independiente de la velocidad con que puedan transmitir datos los módulos. Un bus
asincrónico, por el contrario, obtiene su frecuencia de la unidades encargadas de la
transferencia de datos. A través de las líneas del bus, la unidad receptora le comunica a la
unidad emisora que ha recibido los datos y que ya puede enviarle más. Este modo de
transmisión de datos presupone una estructura mucho más complicada en el bus asincrónico
que en el sincrónico. El bus asincrónico tiene, a cambio, un potencial de rendimiento mucho
mayor.
Cada tarjeta de ampliación EISA lleva un número de referencia, inconfundible determinado por
la sociedad EISA. Este número puede ser leído por el procesador para saber qué tarjeta se
encuentra en dónde. De esta manera la configuración del hardware y software resulta mucho
más sencilla.
Si bien en principio el bus EISA logro resolver el problema de compatibilidad con los
dispositivos ISA, debido a lo costoso y complejo que resulta incluir estos buses en las
motherboards, EISA tampoco logro desplazar al bus ISA, como estándar entre PCs.
Bus local
Con los diseños convencionales, casi todo lo que viene y va del procesador se envía a través
del bus principal del sistema. Incluso los nuevos diseños de bus, que pueden llevar 32 o 64 bits
de datos generalmente funcionan a baja velocidad en comparación con la capacidad del
procesador. Las máquinas de bus local quitan del bus principal aquellas interfases que
necesitan una respuesta rápida: memoria, vídeo y unidades de disco.
Las primeras implementaciones de bus local fueron desarrolladas para el tráfico de datos
gráficos; el sistema era provisto con capacidades gráficas de bus local que los fabricantes
ponían en sus motherboards. En 1991 apareció el primer estándar de bus local cuyo objetivo
era facilitar el upgrade (actualización) de los periféricos (tales como plaquetas gráficas y
controladoras de disco) y aprovechar la interconexión del bus local. Se trataba del bus local
VESA, una adaptación de la estructura del bus para el 486. Posteriormente la especificación del
bus PCI de Intel abrió la puerta a nuevas capacidades en materia de local bus.
1992 - Aparece la norma VESA como estándar para la arquitectura del bus local.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
51 -
Video Electronics Standard Association (VESA) anuncia el lanzamiento de la especificación
VESA Local Bus (VL-Bus). El estándar de bus VL 1.0 fue ratificado en agosto de 1992; el
estándar VL 2.0 se adoptó cerca de un año después. El bus VL es de diseño abierto, lo que
significa que cualquiera que quiera construir productos que se adhieran a la especificación es
libre de hacerlo.
El VL 1.0 soporta una ruta de datos de 32 bits, pero también puede usar dispositivos que
transfieren 16 bits a la vez. En cambio VL 2.0 es un bus de 64 bits que concuerda con los
procesadores de PC más recientes. El bus esta implementado mediante un conector tipo MCA
con 112 patas. Es un conector de 16 bits con las patas redefinidas para soportar una ruta de
datos de 32 bits. El VL 1.0 soporta velocidades de hasta 40 MHz en cualquier ranura de
expansión y la especificación 2.0 está limitada a 50 MHz. La arquitectura de 32 bits permite una
alta tasa de transferencia de datos de hasta 132 MBy por segundo. Un bus VL puede tener
hasta 10 dispositivos (bajo la revisión 2; la revisión 1 soporta solamente tres ranuras). Los
conectores VL están colocados en línea con los conectores existentes ISA, EISA o MCA en la
tarjeta de sistema.
Otra característica de diseño interesante y útil del bus VL es que un dispositivo de 64 bits opera
en una ranura VL de 32 bits como un dispositivo de 32 bits, y que un dispositivo de 32 bits
puede trabajar en una ranura de 64 bits pero, por supuesto, solamente soporta 32 bits.
La configuración de dispositivos de bus VL es manejada completamente en hardware, lo que
significa que el software de aplicación y de sistema no tiene que comprender al bus VL para
trabajar adecuadamente con él.
Las primeras controladoras de vídeo de bus local no eran compatibles con todos los periféricos
y solo podían implementarse en las motherboards de determinados fabricantes. El estándar
VESA Local Bus cubre un espectro mas amplio de diseños pero no logra resolver todos los
problemas de compatibilidad. Por esta razón, suele venir acompañado con una o varias ranuras
de arquitectura ISA o EISA.
Memorias en PC
Memoria CMOS: Es una memoria de muy bajo consumo alimentada por baterías, que permite
en la PCs guardar información básica de su configuración y los periféricos que tiene conectados
el equipo. El programa setup es el que graba el contenido de esta memoria.
Expansión de la memoria
Lotus, Intel y Microsoft definieron un estándar (EMS por Expanded Memory System) para usar
con un hardware especial y de esta forma expandir la memoria y guardar en esa expansión una
mayor cantidad de datos (pero no correr programas ).
La solución propuesta era reservar un área de memoria de 64 KBy (marco) que se dividía en
varias páginas de 16 KBy cada una.
Toda la memoria adicional estaba en una tarjeta especial independiente de la memoria de la
computadora .
La tarea de acceder a este tipo de memoria, es decir a mas de 64 KBy en datos, involucra un
software que se ocupaba de:
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
55 -
• encontrar las páginas ;
• traerlas al marco;
• transferir los datos;
• luego repetir la operación para el resto de los datos.
Este tipo de memoria es lo que se denomina memoria expandida.
Desde el 80386 en adelante los procesadores permiten utilizar la memoria de la PC, simulando
memoria expandida sin necesidad de tarjeta especial.
Extensión de la memoria:
Es la memoria que supera el primer megabyte dentro de la PC.
Los procesadores 286 en adelante permiten trabajar en un modo que se llama protegido para
alcanzar direcciones mayores al megabyte. Para trabajar como una 8088 vuelven al modo de
direccionamiento máximo denominado modo real ( hasta un megabyte).
La memoria que se puede acceder en modo protegido se llama memoria extendida. En una
486, por ejemplo, ésta podría llegar, a 4096 MBy e inclusive hasta 4 Gigabyte.
Hay tres formas de usar la memoria extendida bajo D.O.S.:
1- Como almacenamiento.
2- Como emulación de memoria expandida.
3- Para aplicaciones con acceso a memoria expandida en modo protegido.
Memoria caché.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
56 -
Las memorias caché se disponen de distintas formas y tamaños, pero todas son diseñadas
para realizar una sola cosa: Aumentar la velocidad de acceso a la CPU para datos de uso
frecuente o instrucciones.
La secuencia trabaja de la siguiente manera: Cuando la CPU carga información de la memoria
RAM , el controlador de la memoria caché copiará esa información.
El resultado será que la próxima vez que la CPU necesite esa información, ésta estará
probablemente en la memoria caché.
Debido a que la memoria caché externa (o de tercer nivel - ver figura A1. 35) es mas rápida que
la RAM, la información estará disponible en forma mas rápida para la CPU.
La arquitectura que tenga la memoria caché determinará de qué modo se debe organizar y
localizar la información de la RAM dentro de la caché.
Hay tres tipos de diseños que son los mas populares:
• De mapeo directo.
• Set Associative
• Completamente asociativa.
El diseño de escritura de la memoria caché determina cada cuanto y de qué manera la caché
graba en la memoria central la información que ha sido modificada por la CPU.
Los diseños principales son: WRITE-THROUGH y WRITE-BACK.
Con respecto a las arquitecturas:
Con la memoria caché de mapeo directo, una dirección específica dentro de la caché
corresponde a varias direcciones específicas dentro de la memoria central.
Lo que significa que cuando la CPU pide un dato determinado, la memoria caché tiene que ir a
esa dirección dentro de ella misma para encontrar la información; por lo que ahorra mucho
tiempo.
Con la memoria Completamente Asociativa, los bloques de información de la memoria central
pueden estar ubicados en cualquier bloque libre dentro de la memoria caché. Lo bueno de esto
es que la mayoría de la información a la cual se tuvo acceso recientemente, está a menudo en
la memoria caché. Lo malo en cambio, es que la búsqueda de la información es lenta, dado que
la memoria caché debe iniciar una búsqueda indexada para hallar la información.
La memoria con SET ASSOCIATIVE , combina elementos de las otras dos arquitecturas:
Se la divide en 2, 4, u 8 celdas que tienen múltiples direcciones, cada una de ellas, sostiene un
block de información. Cada bloque dentro de la memoria central puede estar en cualquiera de
las celdas pero pueden estar en una sola dirección dentro de la celda.
El tiempo de búsqueda es reducido y es menos probable que los bits mas frecuentemente
utilizados por la información se sobrescriban entre sí.
WRITE-THROUGH vs WRITE-BACK
La información de la memoria caché es a menudo actualizada por la CPU. La memoria caché
transmite estos cambios a la memoria central a través de uno de los dos principales diseños de
escritura: WRITE-THROUGH o WRITE-BACK. En una memoria caché de WRITE-THROUGH
cada vez que la CPU devuelve un bit modificado de información a la caché , ésta última
actualizará esa información dentro de ella misma y en la memoria central.
Una WRITE-BACK caché, almacena la información modificada en su memoria, pero lo hará en
la memoria central, sólo bajo determinadas circunstancias :
• cuando todo el bloque de información deba ser sobrescrito porque un nuevo bloque debe
entrar en el anterior.
• Cuando otra parte del sistema intente acceder al bloque de información desde la memoria
central.
• Cuando el algoritmo de control determine que la información estuvo esperando demasiado
tiempo para ser actualizada.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
57 -
LA MEMORIA CACHÉ EN PC:
La memoria DRAM (dinámica) es un tipo de memoria económica, de bajo costo. El tiempo de
acceso de una memoria DRAM, es el tiempo que tarda el chip de memoria en estabilizarse
antes de pasar al siguiente acceso. Generalmente definido en unos cuantos nanosegundos (la
mil millonésima parte de un segundo), este número es el que caracteriza la velocidad del chip
de memoria.
La memoria de tipo SRAM (estática) posee un tiempo de acceso mejor, lo que elimina
totalmente el tiempo de espera. Su desventaja es el alto costo que posee en el mercado.
Debido al elevado precio de la SRAM, la mayoría de las computadoras poseen memorias
DRAM, que son más lentas. Ya que no es conveniente ninguno de los dos extremos, se pensó
que había que buscar una solución intermedia, algún dispositivo que permitiera comunicar al
microprocesador con la memoria por medio de elementos estáticos. De ahí surge la memoria
caché, que no es otra cosa mas que una cantidad pequeña de memoria SRAM (estática)
ubicada entre el procesador y la memoria principal, obviamente acompañada de un controlador
correspondiente (controlador de caché).
En el microprocesador 486 posee incorporadas dentro del mismo chip este tipo de memorias.
Cabe aclarar que la memoria caché puede estar presente en el motherboard, hasta incluso de
mayor tamaño, pero ésta resulta menos efectiva debido a que la comunicación entre ella y el
procesador depende de un bus externo.
La memoria caché interna del 486 posee un formato de 128 bits de ancho, lo que asegura una
transmisión más veloz de direcciones e instrucciones.
Las ventajas de esta memoria se ponen en evidencia con el uso de aplicaciones con cálculos
complejos o programas CAD (Computer Aided Design), donde el tiempo de acceso a la
memoria es de vital importancia. El uso de estas memorias proporciona en la mayoría de los
casos un acceso libre a la memoria principal, sin que se produzcan tiempos de espera, usuales
en máquinas con memorias de tipo DRAM.
Si tomamos como ejemplo una memoria de 100 nanosegundos de acceso, un microprocesador
que trabaja a 100 MHz no puede realizar dos accesos consecutivos a memoria debido a que
debe esperar a que la memoria se estabilice, perdiendo así diez ciclos de reloj.
En los desarrollos de memorias caché se destaca las CDRAM (Caché Dinamic RAM) de
Mitsubishi que viene en dos tipos de chips 4 16 Mbits que emplea una pequeña caché interna
de 16 KB conjuntamente con un bus de datos de 128 bits que le permite trabajar a 100 MHz y
un tiempo de acceso de 7 ns.
BIOS
Existe en la computadora PC dos cosas a las que se les llama BIOS:
• ROM-BIOS: es una característica de software integrado.
• DOS-BIOS: la parte del DOS que ejecuta un servicio similar (pero a un nivel bastante
diferente) para el DOS.
Las informaciones sobre los periféricos están en una memoria espacial llamada RAM-CMOS
como ya se explicó. Esta tiene una serie de registros donde se guarda, con ayuda del
programa SETUP, toda la información sobre los distintos periféricos. El BIOS los necesita para
el trabajo conjunto y sin fricciones de los diferentes componentes del sistema.
ROM-BIOS es una abreviatura de Read Only Memory Basic Input/Output System (memoria de sólo lectura, sistema
básico de entrada/salida).
El ROM-BIOS consiste en un conjunto de programas integrados a la computadora que
proporciona el control y las operaciones de supervisión más básicos, de bajo nivel e íntimos
para la computadora.
La tarea del ROM-BIOS es encargarse de las necesidades inmediatas del hardware y aislar a
todos los demás programas de los detalles sobre la manera en que funciona el hardware.
El ROM-BIOS es una interfase, un conector y un traductor entre el hardware de la computadora
y los programas de software que se ejecutan. Es sencillamente un programa como cualquier
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
58 -
otro, y se lo puede considerar como si fuera algo a medio camino entre el software y el
hardware.
Todos los sistemas operativos se acogen a la BIOS para los procesos de entrada y salida, y la
BIOS trabaja de acuerdo con la información guardada en la RAM-CMOS.
GRUPOS
Una de las consideraciones de diseño que deben satisfacer las rutinas del BIOS es suspender
las interrupciones lo menos posible, utilizando la menor cantidad de pasos para ello.
Para evitar pasar sobre sus propios pasos o confundir el trabajo que se está realizando en una
llamada de servicio con otra, las rutinas del BIOS deben ser programadas siguiendo una
disciplina especial llamada código reentrante. Los programas reentrantes, como el ROM-BIOS,
están diseñados para guardar los datos de trabajo y la información de estado que se refiere a
cada llamada de servicio separada de las otras. Esto se logra manteniendo todos lo datos en
pila (stack) o en registros.
Otro tema separado pero relacionado es que los servicios del BIOS deben ser organizados en
forma modular, en grupos.
SERVICIO DE VÍDEO: Hay 16 servicios separados de la pantalla en los servicios del ROM-
BIOS básicos de la familia de la PC. Estos están numerados del 00 al 0F. Además de estos
servicios básicos, hay otros nueve usados con los miembros más recientes de la familia de la
PC. Algunos de los servicios de vídeo controlan y reportan características del cursor, como por
ejemplo 00, 01, 02 y 03.
Desplaza la pantalla de arriba hacia abajo. Tanto el servicio 06 como el 07 permiten a una
aplicación definir una ventana rectangular en la pantalla y desplazarla. Actualmente casi todos
los programas soportan alguna forma de interfase de ventanas, por lo que la capacidad de
controlar (y desplazar) varias ventanas es una característica importante.
El servicio 08 descodifican el trazado de pixeles de un carácter y obtienen el código de dicho
carácter, y el 09 es el inverso.
El servicio 0F reporta el estado actual del vídeo, para que el programa pueda ajustar su
operación al modo de vídeo o registre el modo actual para que pueda reponerlo después de
haber cambiado el modo. Este servicio le dice qué modo de vídeo está puesto.
El uso de estos servicios tiene la ventaja de asegurarse de que la salida a pantalla es manejada
de manera estándar y puede ser adaptada automáticamente al hardware nuevo. Sin embargo,
muchos programas evitan estos servicios, debido a que la sobrecarga involucrada es muy alta.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
60 -
La salida a pantalla puede ser ejecutada mucho más rápido cuando los programas la hacen por
sí mismos, en vez de usar los servicios del ROM-BIOS.
SERVICIO DE DISCO: Todos los servicios de disco se llaman con la interrupción 13. Se puede
dividir a estos servicios en tres grupos:
a) aquellos que se aplican a discos flexibles y discos duros.
b) aquellos que son solamente para discos duros.
c) aquellos que son solamente para discos flexibles.
Entre las diferentes funciones de los servicios están: reinicializar el sistema de disco, leer,
escribir, verificar sectores, formatear, etc.
Este tipo de conocimiento es interesante pero generalmente se usan características del DOS
para facilitar las operaciones. Un ejemplo es el comando FORMAT con sus diversas y variadas
opciones. Y conforme el DOS se ha vuelto mas sofisticado, ha llegado a ser menos necesario
para los usuarios el conocer las posiciones y llamadas específicas del BIOS que hacen que
todo esto suceda.
OTROS SERVICIOS:
• 14 - Puertos: El uso del puerto serial es muy simple. Todo es comparado con la pantalla y
las unidades de disco.
• 16 - Teclado: Se usa para obtener información. Por ejemplo: lee el siguiente carácter del
buffer de entrada del teclado, indica si hay algo listo en la entrada del teclado, indica si las
letras están en mayúsculas o minúsculas, etc.
• 12 - Reporta la cantidad de memoria que tiene la computadora hasta un máximo de 640
KBy.
• 15 - Reporta la cantidad de memoria expandida.
• 1A - Proporciona servicios tales como puesta de la hora y la fecha, el uso de un
temporizador y el uso de una alarma. El DOS proporciona comando como el TIME y el
DATE para actualizar la hora y el día en su PC.
• 18 - Control de la tarjeta de interfase de red (NIC).
• 19 - Carga de arranque: presionando las teclas CTRL-ALT-DEL.
El "árbol genealógico" del microprocesador comenzó en la década del setenta, pero se está
desarrollando a una velocidad fenomenal. Si el desarrollo continua a la velocidad actual,
estaremos añadiendo hojas al árbol cada año.
El primer C.I., ó circuito integrado, fue desarrollado en los comienzos de los años sesenta.
Hasta la década del setenta los microprocesadores no eran económicamente accesibles para el
gran publico. En esa década, Lo que hoy es la firma Intel desarrolló su primer microprocesador
de 8 bits, el 8008 (anteriormente lo había hecho uno de 4 bits el 4004). En 1974 fue
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
61 -
desarrollada la segunda generación de microprocesadores, el 8080, que fuera el gran precursor
de la gigantesca industria actual de computadoras compatibles. Los competidores entraron
rápidamente expandiendo el mercado con productos tales como el Zilog Z-80 o Motorola con el
6800.
Las máquinas de aquellos tiempos requerían mucho trabajo para ser operadas y resultaba muy
difícil configurar un sistema.
Por la misma época aparecieron las APPLE II basadas en el procesador MOTOROLA 6502.
La tercera generación de microprocesadores llegó exactamente cuatro años más tarde. En
1978 Intel desarrolló el 8086. Aunque contenía algunas compatibilidades con su antecesor el
8080, fue un diseño mucho más avanzado, con muchas características nuevas.
IBM también introdujo a su tecnología para PC's el procesador INTEL 8088 como una variación
del 8086 pero no tan significativa como la que hubo entre el 8086 y el 8080. El 8088 permitía un
diseño ligeramente más simple e incluía compatibilidad con dispositivos actuales de E/S. De
esta manera nos acercábamos a la tecnología actual.
Casi al mismo tiempo, apareció la pastilla del coprocesador matemático de números reales
8087, que estaba asociado tanto con el 8088 como con el 8086. Este procesador de datos
numéricos estaba dedicado a alta velocidad y cálculos matemáticos de alta precisión.
Poco tiempo después las empresas de hardware y software implementaron modificaciones para
compatibilizarlos.
A medida que crecía el éxito de las PC's de IBM, los precios de las compatibles comenzaron a
caer y sus performances a incrementarse.
La primer componía en desarrollar un BIOS con una compatibilidad casi perfecta con la PC de
IBM fue COMPAQ en el año 1984. El periodo de búsqueda de la compatibilidad se completo
cuando la componía de software PHOENIX produjo su propio BIOS compatible y comenzó a
vendérselo a fabricantes de clones.
El primer computador costaba del orden de 1300 dólares y tenia una capacidad de memoria de
4 KBy. Desde entonces ha habido un desarrollo explosivo del "micro-computador", como se
denomina también al computador personal, de manera que hoy en día, a mas de diez y seis
años, solo podemos esbozar una sonrisa frente a la capacidad del primer computador PC de
ese Mercado.
Mientras tanto la normalización de los computadores ha seguido adelante. IBM ya ofrecía por
aquel entonces varios tipos de computadores para usuarios que no podían permitirse, o no
querían, un mainframe. Sin embargo, hasta el año 1978 no surgió un verdadero proyecto.
A mediados de los ochenta ya existían unas 200 casas en el mercado con modelos propios de
computadores, pero eran muy pocos los que tenían salida y los que siguieron desarrollándose.
Además del APPLE II, los mas extendidos eran, sobre todo, el PET de COMMODORE ( o las
versiones de la 64 y 128 posteriores), la TI 99 de Texas Instrument y el TRS-80 de TANDY, que
solo soportaban el BASIC como lenguaje de programación incorporado en un Chip.
En el uso personal se fue introduciendo cada vez mas, junto con el hardware, el software. Un
hito fue, por ejemplo, la primera hoja de calculo, que llevaba por nombre VisiCalc y que fue
escrita en 1979 por Dan Bricklin para APPLE II. esta empresa pudo integrar VisiCalc para la
quinta parte escasa de los 130.000 computadores que circulaban en ese momento.
A finales de 1980 el volumen de ventas de los computadores personales había aumentado
hasta 900 millones de dólares.
En aquellos tiempos se reconocía que nadie había llegado a abrir el mercado industrial.
TANDY, APPLE Y COMMODORE vendían sus computadores principalmente a particulares,
pequeñas empresas y a gente con profesiones liberales, mientras otros no encontraban sentido
en el hecho de producir computadores pequeños.
Como los investigadores pensaban que una máquina que procesara 8 bits a la vez sería
demasiado lenta, incorporaron en el PC un microprocesador de 16 bits. INTEL había creado,
apenas dos años antes, su 8086, un procesador de 16 bits que respondía enteramente a las
exigencias de ese momento de IBM. Sin embargo, los chips para administrar periféricos solo
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
62 -
podían procesar 8 bits, y esto fue lo que provoco que INTEL modificara ese chip creando el
8088. Su conexión con el mundo exterior se realizaba mediante unidades de datos de 8 bits,
pero internamente procesaba los datos en grupos de 16 bits.
Fue a partir de este procesador cuando IBM desarrollo su prototipo. Y al hacerlo estaban
recorriendo nuevos caminos lo que les diferenciaba de otros productores. La única pieza
definitiva era el procesador, pero para los demás elementos había que aceptar al mejor
proveedor.
El principio del sistema de arquitectura abierta no había conocido ejemplo en el mundo de las
grandes computadoras, ya que aquí era difícil mantener el secreto de la arquitectura para evitar
la competencia de otras casas productoras que podían desarrollar su propio hardware y
software. IBM pretendía forzar la expansión de los computadores personales.
Un año después de la presentación de su prototipo, el PC ya había alcanzado la madurez del
mercado.
A cambio de 10.000 dólares que costaba la licencia, cualquier productor de hardware podía
incorporar a su computador la BIOS, sin restricciones.
INTEL no se detuvo en sus éxitos pasados. A mediados de 1984 IBM presentó el computador
de la siguiente generación, el AT (advanced technology). Su elemento principal era el
microprocesador 80286 de INTEL, que realizó otro salto importante en el diseño de
arquitecturas. Esta CPU de nueva generación fue diseñada principalmente para aplicaciones
que requerían altas prestaciones. Era compatible con el 8088 y el 8086 debido a su conjunto
común de modos de direccionamiento e instrucciones básicas. La arquitectura base soportaba
lenguajes de alto nivel como Pascal y C. El 80286 soportaba diferentes tipos de datos muy
potentes, como cadenas, BCD y formatos de tipo flotante. El diseño también soportaba
estructuras complejas de datos, como arrays estáticos ó dinámicos, registros y arrays de
registros.
Mas tarde IBM se vio obligada a desarrollar una nueva línea de computadores que fue sacada
al publico en 1987. Uno e los modelos contenía el 8086, una variante del 8088 utilizado en el
primer computador, otros dos modelos el procesador 80286 utilizado en los AT , y un modelo
estrella tenia como base una nueva generación de procesadores: los 80386.
IBM no fue la primera en introducir este nuevo chip, anteriormente COMPAQ ya había
presentado dicho 386.
Cuando a mediados de los ochenta INTEL desarrollo el procesador 386, COMPAQ ya planeaba
una nueva generación de computadores.
Antes que fuera presentado el nuevo chip, COMPAQ se alió con INTEL y sacaron un sistema
de computador a la altura del procesador.
El 80386 supuso un verdadero paso hacia adelante. Podía procesar datos de 32 bits y a la vez
comportarse como uno de sus procesadores predecesores, de modo que mantuvo la
compatibilidad. Podía administrar una memoria 256 veces mayor que el 80286 y era capaz de
ejecutar hasta cuatro millones de instrucciones por segundo (mips).
A lo largo del año de 1988 INTEL sacó al mercado una nueva versión "económica" del 80386, el
80386sx. Este procesador tenia hacia afuera las mismas conexiones que el 286, pero
internamente todos los atributos del 386.
También el 386 fue superado. A principios de 1989 INTEL presento el 80486: la variante
altamente integrada del 80386.
El 486 ha sido el primero en extender un bus adecuado al procesador de 32 bits: EISA.
Luego se construyeron variantes del 486: el 486sx. La diferencia con el 486 "autentico" es que
en el 486sx el coprocesador integrado no trabaja y el procesador tiene una frecuencia de reloj
mas baja. Otras Variantes fueron el DX, DX2, DX4 que aumentaban las frecuencias de sus
relojes 33 MHz a 100 MHz.
El 486 también fue superado por el Pentium.... y así continuará la carrera.
MICROPROCESADORES EN LAS PC
MICROPROCESADOR Z-80
Unidad de microprocesamiento
La familia de microcomputadores M6800 es la unidad de microprocesamiento M6800. Este
elemento viene encapsulado en un circuito integrado, de cuarenta terminales, y tiene seis
registros internos accesibles al usuario:
1. Acumulador A 4-Contador de programa (P.C.)
2. Acumulador B 5-Registro de puntero de pila (SP)
3. Registro índice (X) 6-Registro de códigos de condición (CC)
Las primeras muestras aparecieron a finales de 1979. Posee las siguientes características:
• Fabricado en tecnología HMOS, contiene alrededor de 68000 transistores siendo su
arquitectura interna lo suficientemente modular como para permitir variaciones cuando los
avances tecnológicos permitan un mayor grado de integración.
• Capacidad para direccionar 16 Megabytes (16.777.216 bytes)
• Su juegos de instrucciones consta de 56 instrucciones muy potentes. Con 14 modos de
direccionamiento y la posibilidad de trabajar con diferentes longitudes de datos, originaban
mas de 1000 códigos de instrucción diferentes.
• Los Buses son síncronos y sin multiplexar.
Cuadro comparativo
El siguiente es un cuadro demostrativo del avance logrado por el 486 sobre el 80386 + 80387.
Tarea 80386 + 80387 i486DX
- Leer valor de la memoria 4 ciclos de reloj 1 ciclo de reloj
i486 SX
La consigna de la industria de las PCs ha sido "más rápido, más barato, mejor". Entonces, ¿por
qué Intel sacó un chip 80486SX de 20- MHz que costaba más y era más lento que un 80486DX
de 33- MHz?.
Ciertamente cuando Intel sacó el chip 80386SX, éste se convirtió momentáneamente en el
nuevo estándar de computación de nivel básico. Y además se convirtió en el microprocesador
PC de mayor venta de todos los tiempos.
El 386SX se convirtió en un éxito porque le brindó a los compradores de PCs un acceso de
menos costo al juego de instrucciones de la serie 386. Mucho antes de que el 386SX
apareciera en escena, estaba claro que este juego de instrucciones dominaría la computación
personal compatible con IBM hasta bien entrada década de los 1990. La gran ventaja que
ofrecía era que por un costo apenas menor al de un 286 podía correr programas escritos
especialmente para 386, como por ejemplo el Windows en modo extendido.
Los compromisos del 386SX en favor de la economía eran dos: Su reloj era más lento (16-MHz
al principio y 20-MHz más tarde), y aunque tenía el bus interno de 32 bits del 386, usaba un bus
externo de 16 bits. En contraste, el verdadero chip 386 (conocido como el 386DX) estaba
disponible en versiones de 16, 20, 25 y 33 MHz, y usaba buses de 32 bits interna y
externamente.
Aún más importante en la opinión de muchos compradores, el 386SX ofreció una alternativa al
286, un chip limitado por problemas irreconciliables de diseño y que claramente era parte de la
historia, y no del futuro, de las computadoras personales.
El 486SX no ofrecía ninguna de estas ventajas. Todos los chips 486 utilizan el juego de
instrucciones 386 sólo con extensiones pequeñas y de relativamente poca importancia: no hay
un nuevo estándar creado por un "juego de instrucciones 486".
Las diferencias más importantes entre el 386 y el 486 son el coprocesador matemático que este
último tiene a bordo y su caché interno de 8K. Además, el 486SX es en realidad una versión
más lenta del CPU i486 de Intel con el coprocesador matemático desactivado.
El 486SX no nos salva de un predecesor defectuoso; como muestran diversas pruebas
realizadas, las PCs basadas en el 386 de 33-MHz superan a las 486SX de 20-MHz, y a precios
más bajos. Aunque Intel alega que el 486SX/20 es superior al 386/33 en un 5 al 10 por ciento
en aplicaciones de 16 bits, se encontró que los sistemas con los procesadores 486SX
demoraron casi un 10 por ciento más en completar las pruebas que los sistemas 386/33 que
habían sido evaluados en el pasado. El 386 de 40-MHz de Advanced Micro Devices (AMD, un
fabricante de chips competidor) también parece reducir la velocidad de operación en casi un 25
por ciento en comparación al 486SX. Motivo por lo cual se dejaron de usar.
El 486SX debía trabajar bien para alguien, sino ¿porqué lo sacó lntel? Había dos bandos que
se debían beneficiar del 486SX: Intel y sus clientes fabricantes de PCs. Intel esperaba que al
extender su línea 486 hacia abajo, podría disminuir el avance de los rápidos clones 386/40 de
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
70 -
AMD. Intel destruyó su propio 286, al introducir el 386SX y luego sacando anuncios que
desprestigiaban al 286, una vez que AMD y Harris comenzaron a producir 286 superiores.
Ahora a Intel le convenía destruir los 386.
La idea de Intel era lanzar al mercado un procesador que fuera más barato que el 486DX y que
tuviera menor performance para no arrebatarle el mercado a este último. Por una cuestión de
diseño, Intel decidió eliminar el coprocesador matemático integrado.
Pero lo que resulta cómico es que el coprocesador no se eliminó realmente, sino que está
presente en el chip... ¡pero desactivado!. Si uno pudiera abrir el chip y activar el coprocesador,
en realidad lo que tendría es un 486DX. Pero aún hay más. En los motherboards de 486SX hay
un zócalo para colocar un coprocesador matemático, que ¿adivinen cuál era? - el 486DX. Sí, el
mismo procesador, que al ser instalado, desactivaba completamente al 486SX. Según la lógica,
se podría cambiar directamente un procesador por el otro y tirar el 486SX... pero Intel no
permitió esto, ya que al hacerlo, la garantía perdía validez.
Esto sucedió debido a que el costo de fabricar un nuevo chip era mucho más alto que
desactivarle el coprocesador al chip ya existente. Pero por abaratar costos, Intel cavó la tumba
de su propio 486SX. La gente usuaria se siente defraudada cuando se entera de que lo que
está comprando "tiene algo ahí adentro pero desactivado" y por eso anda más lento.
Por esto y por una cuestión de mercadeo fue que el 486SX de 20-MHz de Intel no tuvo éxito y
se dejó de producir.
Posteriormente, Intel lanzó al mercado el 486SX/25, un segundo intento de sacar del mercado a
las 386 de otros fabricantes. Los nuevos argumentos de Intel para vender este chip eran los
siguientes:
• Precio competitivo: es equivalente o ligeramente superior al de un 386;
• Capacidad de mejora: el zócalo del motherboard para el coprocesador fue reemplazado por
el Overdrive, que permite instalar un chip adicional que duplica la velocidad interna del
procesador;
• Mejor rendimiento: el 486SX/25 de Intel tenía un muy buen rendimiento comparado con sus
competidores en cuanto a su capacidad de procesamiento.
Este nuevo chip tuvo éxito sobre los restantes 386, debido a que además de ofrecer mejor
performance, el comprador tiene la posibilidad de mejorar aún más la velocidad con el chip
Overdrive adicional.
i486 SL
Este microprocesador de Intel ofrece el mismo rendimiento que un 486DX, siendo en realidad,
de diseño similar a éste, pero de menor consumo y voltaje. Fue diseñado especialmente para
computadoras portátiles. Se ofrece en versiones de 20, 25 y 33 MHz.
i486DX2
Esta nueva versión del 486 duplica la velocidad dentro del procesador con respecto a su
antecesor 486DX, pero se comunica con la memoria y el bus local a la mitad de velocidad que
dentro del procesador (la que equivale proporcionalmente a la velocidad del 486DX). Esto
permitió una inserción rápida de este nuevo chip en el mercado, debido a que los fabricantes de
motherboards no debían realizar cambios demasiado significativos (hasta nulos en muchos
casos) en el diseño de los mismos.
Este chip se ofrece en versiones de 50 y 66 MHz, con 25 y 33 MHz externos respectivamente.
i486DX4
La denominación de este procesador resulta confusa, ya que no cuadruplica la velocidad del
486DX sino que la triplica. Se ofrece en versiones de 75, 83 y 100 MHz. La de 75-MHz está
destinada principalmente a las computadoras portátiles. En la versión de 83-MHz, no se triplica
la velocidad respecto al 486DX, sino que ejecuta a dos veces y media la velocidad del mismo.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
71 -
Una diferencia importante es que el DX4 posee un caché de 16K, el doble que el de los 486
anteriores. Esto eleva el caché interno a un nivel de los procesadores Pentium, pero como los
DX4 no dividen el caché en secciones de datos e instrucciones, el "caching" no es tan eficiente.
Para ser más precisos, debemos destacar que el verdadero nombre de este procesador es
"DX4", sin el "486" delante. Intel decidió eliminar el nombre "486" de sus procesadores de esta
línea, ya que ha fracasado en su intento de esforzar los derechos legales al nombre "486".
Implementación de un ciclo
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
72 -
Hasta ese momento, las computadoras venían provistas de un gran conjunto de
macroinstrucciones que, según se decía, eran capaces de ejecutar las tareas más rápido que
cualquier software ad hoc. Esto parecía ser cierto en el caso de las operaciones de punto
flotante o multiplicación entera. Ahora bien, la inserción de éstas obligaba a sumar niveles de
complejidad en el procesador, retardando la ejecución global. Un análisis de nivel de utilización
de instrucciones versus complejidad hizo que los investigadores sospecharan de la estrategia:
si una operación compleja agregaba un nivel lógico a un procesador de 10 niveles, entonces su
implementación solo hubiese estado justificada si su uso mejorara la performance en un 10%.
Esto no era así.
Las macroinstrucciones debían correr en forma secuencial, al ser cada una de ellas un
programa en sí mismo, no se podían solapar sus ejecuciones: Esto hacía que las
interrupciones solo pudieran satisfacerse en la frontera de cada macroinstrucción, debiéndose
esperar muchos ciclos con el dispositivo ocioso. Contrariamente las microinstrucciones corrían
de manera superpuesta (pipeline), llegándose a obtener una ejecución por ciclo de máquina.
Juntando ambos argumentos se concluyó que convenía dar acceso directo a las
microinstrucciones, haciendo que éstas fuesen leídas de un almacenamiento rápido y
ejecutadas directamente en sus respectivos circuitos sin ser traducidas.
TECNOLOGÍA SPARC
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
73 -
E je c u c ió n F : b ú s q u e d a d e c a rg a
D : D e c o d if ic a r
S e c u e n c ia l E : E je c u ta r
W : E s c rib ir re s u lta d o s
In s tr 1 F D E W
In s tr 2 F D E W
F D E W
In s tr 3 F D E W
In s tr 4
E je c u c ió n
p ip e lin e
In s tr 1 F D E W
In s tr 2 F D E W
F D E W
In s tr 3 D W
F E
In s tr 4
E je c u c ió n
R IS C
In s tr 1 F D E W
In s tr 2 F D E W
In s tr 3 F D E W
In s tr 4 F D E W
T im e
Figura A1.38 Comparación de tecnologías
En 1987 Sun Microsystems libera el modelo Sun-4, sistema basado en la arquitectura SPARC
(Scalable Procesor ARChitecture). Heredera directa del RISC I y II de Berkleley, SPARC puede
calificarse como un RISC clásico, un equilibrado balance entre CPU, periféricos y software, que
dió por tierra con los infundios de la competencia CISC, y terminando por vincular los conceptos
de Workstation, RISC y Unix.
En la figura A1.38 se esquematiza el tiempo involucrado en la ejecución de las instrucciones
para una arquitectura escalar, un pipeline y un RISC.
POWER PC
Apple Computer, IBM Corp. y Motorola diseñaron la familia de procesadores RISC PowerPc,
con el fin de competir y atrapar a los compradores de Pentium y sus sucesores.
Las características principales son:
• El PowerPc promete un amplio apoyo para software y sistemas operativos; lo que ya está
garantizado en plataformas Apple Macintosh y las estaciones de trabajo IBM RS/6000.
• El primer chip PowerPc, el PowerPc 601, es casi tan rápido como el Pentium y cuesta solo la
mitad. Los diseños siguen en el 602, 604 y sus sucesores.
La arquitectura del PowerPc se diseñó para aumentar su rendimiento con facilidad.
El PowerPc encara los retos del mercado: igualar y superar las capacidades de las PCs
basadas en chips de Intel. Y como no tiene sentido hablar de rendimiento de un chip sin
considerar el software que se ejecuta, las máquinas PowerPc deben recurrir a técnicas de
emulación para ejecutar el software compatible X86, lo que baja su rendimiento, pero en
diseños de aplicaciones basados en PowerPc son realmente eficientes. Para esto IBM, Apple y
Motorola han desarrollado una especificación de plataforma de referencia para el PowerPc
llamada PReP. Si bien hay varios sistemas operativos para las PowerPc, los populares DOS y
Windows no pueden correr directamente en el hardware de la PowerPc.
A continuación mencionaremos las principales características de esta familia de procesadores.
POWER PC 601
Comparado con otros chips RISC, el PowerPc 601 ejecuta a velocidades de reloj mas bajas,
posiblemente porque es más complejo que muchos procesadores RISC, pero es una primera
versión de 32 bits.
El PPC601 emplea varias de las técnicas tradicionales de diseño RISC y le agrega trucos
inteligentes para mejorar el rendimiento, como el procesado de instrucciones fuera de orden,
decisiones lógicas, colas de operaciones de memoria y conversión de bloques de direcciones.
Un componente central del procesador RISC es un gran conjunto de registros que minimiza el
acceso a memoria y las referencias al caché del procesador con la única desventaja de tener
que agregar el tiempo de descodificación y el espacio que ocupa en el chip. El PPC601 tiene 32
registros de propósito general de 32 bits (llamados GPRs) y 32 registros de punto flotante de 64
bits (FPRs), contra 8 y 8 de las máquinas CISC y 192 del RISC 290x0 de AMD.
El juego de instrucciones
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
76 -
El PPC601 usa un formato constante de 32 bits para permitir una captura y descodificación
eficiente de las instrucciones y define mas de 220 distintas, suficientes para hacer que el
PowerPc parezca ser mas CISC que RISC. Esto es solo una apariencia.
El PowerPc trata de obtener ciclos cortos de reloj y reducir los ciclos de reloj por cada
instrucción.
Predicciones lógicas
Las capacidades de predicción lógica le permiten al CPU adivinar como cambiará el flujo del
programa y con ello ayudan a evitar las demoras asociadas con decisiones en el programa.
Cuando predice correctamente una decisión, puede realizar el salto en cero ciclos, es decir,
instantáneamente. Si el pronóstico es incorrecto, puede causar una pequeña demora.
En la mayoría de las aplicaciones, aproximadamente una de cada siete instrucciones es una
decisión. Las decisiones incondicionales son mas fáciles de resolver y las condicionales
requieren mas lógica para manejarse.
Estas características fueron mejoradas en las versiones posteriores al 601.
PENTIUM:
Cuando Intel decidió dedicarse al diseño del Pentium, debía ofrecer una importante mejora de
performance que pudiera competir con RISC. Pero Intel prefirió buscar un chip binariamente
compatible con los procesadores 80x86 CISC. Hasta el momento los procesadores RISC
estaban excluidos del mundo de las PC de escritorio, por el problema de la compatibilidad.
Entonces encaró un diseño, que desde el punto del concepto RISC, es poco prolijo.
Con los inicios del Pentium, en 1993, los precios del sistema comenzaban en unos $5000 como
base y de allí subían, dependiendo del fabricante, la configuración y las opciones. Esto lo hacía
interesante solo para muy pocos usuarios y para pocas aplicaciones, como ser en los
servidores de archivo que se usan como un gran almacén de datos o en servidor de redes
locales. Con estas aplicaciones no se hace uso de la verdadera potencia del Pentium, como es
el caso de la ejecución de instrucciones de punto flotante o como PC de escritorio para usos
comerciales.
El diseño al que finalmente llegaron es un astuto compromiso que adopta la mayor cantidad
posible de tecnología RISC sin sacrificar la compatibilidad. Ofrece además, un aumento de
performance de un 100 por ciento (teórico) sobre el chip 486 DX2 (a la misma velocidad de 66
MHz).
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
77 -
Si bien el chip 486 ya tomó algunas ideas de RISC, como la ejecución en Pipiline y las cachés
dentro del chip, en Pentium casi la totalidad del estado sólido de silicio que lo forma, está
dedicada a las cachés y a las unidades de ejecución en pipeline. Solo el 3% del procesador
está dedicado a soportar instrucciones microcodificadas.
Pentium consigue ejecutar mas de una instrucción a la vez, pero solo las instrucciones tipo
RISC se pueden emitir en paralelo, lo que lo hace totalmente compatible con sus antecesores
80x86.
El único aspecto en el que Pentium no sigue la práctica RISC es en su arquitectura de conjunto
de Registros, mientras RISC generalmente usa largos grupos de 32 registros enteros y 32 de
punto flotante, el Pentium sigue con la estructura de registros de los 80x86 (para mantener la
compatibilidad).
El Pentium corre a la misma velocidad por fuera que en su interior, y su potencia la dedica a las
operaciones de punto flotante logrando un aumento en el rendimiento de 5 veces el logrado por
un 486.
El chip, fabricado con 3,1 millones de transistores y 273 pines, genera mucho calor, alcanzando
71°C unos 10°C mas que un 486, provocado por su alta velocidad de reloj y la magnitud de
transistores que lo conforman. Esto provoca que los fabricantes que pensaban poner los chips
Pentium en el viejo gabinete de las 486 o en PC´s tipo cuaderno (Lap-top), se arriesgan a que
algo se derrita, para combatir este calor, algunos fabricantes montan disipadores de calor
sobre el mismo chip, otros prefieren un sistema de múltiples ventiladores, o ventiladores
integrados al chip (chip cooler), o mejor aún unidades de enfriamiento controladas por
termostatos.
Otro problema es la pobre velocidad de la memoria central, ésta no podía seguir la velocidad
del procesador, y para eliminar este cuello de botella, las computadoras comenzaron a incluir
un pequeño banco de memoria estática muy rápida y extremadamente cara llamada caché, que
actúa como un almacenamiento general de datos o instrucciones que se usan frecuentemente.
El Pentium complica aún mas el sistema y a fin de satisfacer la rapidez del procesador,
proporciona dos cachés de retroescritura (Write - through de 8 KBy, uno para datos y otro para
instrucciones.
En 1994, la presentación del Pentium 90 cambió algunas cosas, sus 3,3 volts y el consumo de 3
a 4 Watts y su diseño de 0,6 micrones operan a mas baja temperatura, logrando enfriar los
gabinetes de esas PCs poderosas. Esto elimina el mayor obstáculo para poner un Pentium en
una PC del tipo portátil.
Ejecución superescalar
El Pentium tiene 3 unidades de ejecución en pipeline (dos enteras y una flotante), y puede
emitir dos operaciones enteras y o una de punto flotante en cada ciclo de clock. Cada pipe
entero (U y V de la figura A1.39) contiene su propia ALU y su propia lógica de generación de
instrucciones, y ejecuta la funciones de Prefetch(PF), decode 1(D1), decode 2 (D2),. El efecto
del pipeline no es reducir el tiempo de ejecución de una instrucción individual, sino que
superpone varias instrucciones simultáneamente para reducir el tiempo total. Los
descodificadores paralelos determinan si las dos instrucciones vigentes reúnen las condiciones
de apareamiento establecidas por Pentium: Las instrucciones deben ser simples, no debe
existir dependencia entre ellas, ninguna puede contener un valor de desplazamiento y un valor
inmediato, y las instrucciones con prefijos solo se pueden ejecutar en el pipe U.
Las instrucciones simples son las que se procesan en el hardware, no requieren soporte de
microcódigo y se ejecutan en un solo ciclo de clock.
Si falla el apareamiento y solo se emite una instrucción hacia el pipe U, la segunda queda
demorada y se vuelve a testear con la siguiente instrucción, conservando así un orden de
ejecución.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
78 -
U V U V U V U V U V U V
P F i1 i2 i3 i4 i5 i6 i7 i8
D 1 i1 i2 i3 i4 i5 i6 i7 i8
D 2 i1 i2 i3 i4 i5 i6 i7 i8
E X i1 i2 i3 i4 i5 i6 i7 i8
W B i1 i2 i3 i4 i5 i6 i7 i8
C ic lo 1 C ic lo 2 C ic lo 3 C ic lo 4 C ic lo 5 C ic lo 6 C ic lo 7 C ic lo 8
F ig u ra A 1 .3 9 E je c u c ió n d e l P ip e lin e d e l P e n tiu m
La etapa EX del Pentium, realiza operaciones de ALU y búsqueda y carga de datos, por lo que
aquellas que requieran ambas operaciones utilizarán mas de un pulso de clock en EX.
La FPU del Pentium también está interrelacionada mediante pipeline. Tiene ocho etapas, cinco
de las cuales son compartidas por los dos Pipelines enteros. La etapa WB entera actúa como la
etapa X1 de punto flotante, que convierte los números de punto flotante en formato de memoria
externa y los graba en los registros de la FPU. Luego sigue etapa X2, el redondeo y la
grabación, y finalmente produce en ER el informe de errores y la actualización de estado.
Las operaciones de punto flotante no se pueden aparear y siempre se ejecutan en el pipe U,
con la excepción de la operación FXCH que se puede aparear con todas las instrucciones
simples.
Predicción de bifurcación
Los cambios de control de flujo constituyen el enemigo principal de un sistema de Pipelines
eficiente.
Una instrucción de bifurcación, convierte en irrelevantes a todas las instrucciones siguientes
pues hay que deshecharlas. El sistema descarta estas instrucciones y crea una “burbuja” hasta
que se puedan cargar instrucciones válidas de la dirección objeto de la bifurcación.
El Pentium soluciona este problema con un esquema de predicción dinámica. Un BTB (branch
target buffer) y TLB (Translation lookaside buffer objeto de la bifurcación). La BTB recuerda la
dirección objeto y la determinación tomada en cada bifurcación, y predice sus direcciones
futuras en base a sus historias de ejecución (esta técnica se conoce como LRU - Least
Recently Used que la profundizaremos en el Módulo 5 en administración de memoria paginada
bajo demanda)
El buffer activo carga instrucciones secuenciales, y cuando aparece una instrucción de
bifurcación en él, el BTB predice que camino adoptará. Si la predicción es “bifurcación tomada”,
entonces el segundo buffer de carga se convierte en activo y comienza la carga de
instrucciones de la dirección objeto de bifurcación. Una determinación incorrecta presupone
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
79 -
una demora de tres a cuatro ciclos de clock, durante los cuales ambos pipelines se desocupan
y se carga la instrucción objeto correcta.
El BTB no es más que una caché de conjunto asociativo de cuatro vías, 1 KBy con 256 líneas,
conteniendo cada una de ellas una dirección objeto de bifurcación y 2 bits de historia. Cada vez
que se toma una bifurcación, el Pentium pone su dirección objeto en la BTB, y este predice la
acción.
Un código assembler como este:
;;primo en ecx, k en edx, FALSE en al
loop_interno
mov byte ptr flags(edx),al
add edx,ecx
cmp edx, FALSE
jle loop_interno
No es mas que un LOOP y en un sistema 486 consume 6 ciclos, mientras que en un Pentium
se ejecuta en solo dos ciclos; mov y add se aparean y se ejecutan en paralelo durante un ciclo,
cmp se aparea con jle en otro ciclo, y el BTB predice correctamente que se tomará la
bifurcación, por lo tanto ésta no consume ningún ciclo.
OverDrive
El procesador Pentium OverDrive de Intel está diseñado para sistemas 486 que buscan
potencia adicional por solo $500 o menos, triplica su 486 de 25 MHz, aunque no llega al nivel
del Pentium.
El procesador Pentium OverDrive es una mezcla de lo viejo y lo nuevo. Gracias a su
arquitectura superescalar, su rápida unidad de punto flotante y su predicción de bifurcación es
un Pentium de corazón. Pero a fin de mantener la compatibilidad de la arquitectura integrada
486, incluye un bus de 32 bits.
Reemplazar el CPU del sistemas y ejecutar el programa de configuración, solo lleva unos pocos
minutos, y se podría decir que lo mas complicado es sacarle la tapa al gabinete. Los
requerimientos para usar este chip, son que la PC posea un zócalo de 237 o 238 pines y que el
sistema se encuentre en la lista de sistemas escalables de Intel.
El Pentium OverDrive a 63 MHz, incluye un ventilador de enfriamiento y un utilitario de software
de monitoreo que se carga en el arranque, y vigila la temperatura de la CPU. En caso de que el
ventilador trabaje deficientemente o se pare, el software avisa y automáticamente el chip pasa a
trabajar a 25 MHz.
INTEL P6
El nuevo chip de Intel tiene el nombre de P6. El P6 contiene la mayor cantidad de transistores
que jamás se haya visto en un procesador de comercialización masiva: 5,5 millones en el
núcleo de la CPU y 15,5 millones en la caché secundaria (Ver dibujo c) de la figura A1.35) .
Las técnicas son impresionantes pero no originales, los nuevos chips producidos por AMD,
Cyrix y NexGen muestran diseños similares.
El P6 tiene una singular caché secundaria que está conectada a la CPU mediante un bus
dedicado. Esta caché de 256 KBy de SRAM (RAM estática), que reside en el segundo
compartimiento del P6, simplifica el diseño y la construcción de sistemas basados en este chip.
La rapidez del P6 es 33 % mayor que el Pentium funcionando a la misma velocidad de reloj, y el
primer chip P6 trabaja a 133 MHz, lo que lo hace alrededor de el doble de rápido que un
Pentium 100 MHz. Esto lo hace mas rápido que el Nx586 de NexGen y similar al K5 de AMD y
al M1 de Cyrix.
Comparado con los chips RISC, el P6 todavía no es el microprocesador mas rápido, pero lo que
sí puede hacer es correr la mayoría del software disponible, además el procesador RISC mas
rápido es solo 1,5 veces superior al P6 aunque ya se disponen de versiones de 500 MHz en el
caso del ALPHA de Digital Equipment Company.
Mezcla CISC/RISC
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
80 -
El P6 es una máquina superescalar de tres vías que puede despachar simultáneamente cinco
instrucciones internas. Para amplificar aún más ese ancho de banda de instrucciones, el P6
mejora su sistema de caché con la incorporación de más registros, mejor predicción de
bifurcaciones y manejo de instrucciones fuera de orden.
El P6, superando la brecha que los diferencia con un inteligente descodificador que divide las
extensas instrucciones CISC en operaciones más simples que se parecen más a las
instrucciones RISC. Las operaciones simplificadas (micro-ops), luego se envían al núcleo. Las
micro-ops, son mas fáciles de despachar y ejecutar en paralelo que sus complejas antecesoras
x86.
El principal objetivo es superar las limitaciones de las instrucciones x86 manteniendo la
compatibilidad con el software para x86 existente. El P6 son dos chips en el mismo envase. Un
dado es el núcleo de la CPU, incluyendo dos cachés primarias de 8 KBy cada una, el otro dado
es una SRAM de 256 KBy que funciona como un conjunto de caché asociativo de cuatro vías.
Comparten el mismo encapsulado cerámico de 387 pines pero constituyen chips separados y
vinculados por un circuito. Esto simplifica el diseño de sistemas basados en P6 ya que no se
deberán preocupar por el tamaño y configuración de la caché secundaria para adaptarla a las
exigencias de la CPU.
El bus dedicado de comunicación entre los chips es de 64 bits y funciona a la misma velocidad
de reloj que la CPU. Esto mejora notoriamente su eficiencia, velocidades de bus totalmente
sincronizadas y ausencia de peleas con otras operaciones de entrada/salida, ya que está
totalmente separado del bus de E/S.
Pero esto trae problemas de compatibilidad, un procesador P6 con caché externa no sería
compatible con la versión multichip porque requeriría 72 pines más, pero sería casi tan rápido
como aquél.
Microarquitectura P6
La memoria caché de instrucciones es de dos vías y la de datos de cuatro. Intel, con el P6 en
lugar de aumentar el tamaño de las cachés diseñó una jerarquía de cachés para permitir que
los pedidos puedan pasar libremente de una caché a otra sin bloquear la ejecución.
Si no puede encontrar lo que busca en las cachés primarias internas (primero en la de 8 kBy
luego en la de 256 KBy), verifica la secundaria (mediante el bus dedicado), sin demorar mas de
un ciclo de reloj. Si no lo encuentra, accede a la memoria central mediante un bus distinto.
Este bus es mas lento, pero mientras espera un acceso a memoria, puede comenzar otro
acceso, lo que mejora la situación. Para mantener la coherencia entre caches y memoria,
también utiliza el protocolo MESI.
Las CPU de procesamiento en orden se detienen mientras esperan que se ejecute una
instrucción de alto consumo de tiempo de proceso, debido a que deben ejecutarse en el orden
prefijado. Esto provoca una demora en el flujo del pipeline. Para impedir esta pérdida de
tiempo ocioso, el P6 puede ejecutar las instrucciones casi en cualquier orden. La CPU puede
cargar y ejecutar la siguiente orden, en lugar de quedarse esperando. Por supuesto, los
resultados se almacenan en el orden correcto.
Solo algunas instrucciones no pueden alterar su orden y es cuando una instrucción depende del
resultado de la anterior.
La ejecución fuera de orden permite a la CPU adaptar el flujo de instrucciones a sus recursos
internos disponibles.
La predicción de bifurcación la realiza mediante un algoritmo de historia dinámica de 4 bits. El
P6 predice entre 10 y 15 bifurcaciones anidadas.
Ejecución superescalar
La ejecución fuera de orden es manejada por una unidad denominada estación de reserva, que
se ocupa de establecer el orden en que las micro-ops se despacharán hacia las diversas
unidades de ejecución.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
81 -
Existen 5 unidades de ejecución: dos de enteros(IU), dos generadoras de direcciones (AGU)
para operaciones de carga y almacenamiento y una unidad de punto flotante (FPU).
La estación de reserva puede despachar simultáneamente hasta 5 instrucciones por ciclo de
reloj, y sostiene un promedio de tres, si la micro-op no está bloqueada por la dependencia, y la
unidad de ejecución está disponible, entonces, en este caso es despachada para su ejecución.
La FPU es la misma que en el Pentium.
Conclusión:
La competencia entre fabricantes es feroz. Solo subsistirán aquellos que cometan menos
errores en sus diseños, uso de tecnologías, o en las estrategias de especificaciones. De todos
modos el beneficio es evidente... los costos disminuyen y los productos aumentan su calidad,
para mejorar las prestaciones. El Hardware avanza muy rápidamente, mientras el Software lo
hace a otro ritmo, mucho mas lento.