Está en la página 1de 83

Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -

1 -
UNIDAD: Introducción a los Sistemas Operativos

PARTE A: CONCEPTOS BÁSICOS SOBRE ARQUITECTURAS DE


COMPUTADORAS (HARDWARE)

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.

OBJETIVO DEL MÓDULO: Describir la composición de las Arquitecturas computa-


cionales.

OBJETIVOS DEL APRENDIZAJE: Después de estudiar este módulo, el alumno deberá estar
en condiciones de:

• Explicar el funcionamiento y reconocer las distintas Arquitecturas Computacionales.

• Conocer la constitución de una Arquitecturas von Neumann

• Conocer la constitución modular de una Unidad Central de Proceso.

• Comprender y explicar el esquema funcional de las Computadoras en función de las


arquitecturas.

• Comprender los tipos, conceptos, organización, y características de la memoria central.

• Conocer y explicar la terminología específica empleada en éste módulo.


Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
2 -

A1.1.- COMPOSICIÓN INTERNA DE LAS COMPUTADORAS

A1.1.1. Conceptos Previos

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

Fig.A1.02 Funciones de Entrada y Salida

Salidas: Es la información o los datos que proporciona después de un proceso (resultados,


caracteres, imágenes, gráficos, señales, etc.).
Programa: es un conjunto ordenado de instrucciones específicos para el procesador y que
contiene el algoritmo de soluciones al problema que se pretende resolver.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
3 -
Algoritmo: es el plan lógico que proporciona paso por paso el procedimiento capaz de dar la
solución al problema que se pretende resolver.
En particular podemos esquematizar los componentes de una computadora como sigue:
M E M O R IA C E N T R A L (M .C )

ROM C ache RAM

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

Estas interrelaciones y conexiones determinan una estructura que se conoce como


arquitectura de un computador (Computer architecture).

A1.1.2 ARQUITECTURA DE LOS COMPUTADORES

A1.1.2.1 Introducción:

Cuando se habla de la arquitectura del computador, es necesario referirse al software y


hardware del mismo en forma conjunta, pues es imposible fabricar uno sin considerar al otro,
esto implica tomar un computador determinado, estudiarlo y sacar conclusiones que, deberían
ser de carácter general, o sea, aplicables al resto de los computadores. Por ejemplo
considerando distintas máquinas con un solo Software y midiendo su performances a efecto de
compararlos entre sí.
La gran evolución tecnológica sufrida por la computación a partir de la década del ‘70, ha
llevado a desarrollar nuevas arquitecturas para los sistemas de cómputos, distintas de las
tradicionales concepciones de la década anterior.
Una de las más importantes es la tecnología de integración en gran escala de componentes
electrónicos (LSI Large Scale Integration, o la VLSI Very Large Scale Integration), que ha
permitido el diseño e implementación de sistemas de procesamiento mucho más veloces,
baratos y complejos.
La tecnología LSI ha afectado a la computación en dos sentidos; por un lado permitiendo la
computarización de procesos complejos mediante el uso de mini y micro computadoras a
costos realmente pequeños, Por otro lado, ha permitido la construcción de complejos sistemas
modulares de gran capacidad de procesamiento en paralelo, lo que significó un importante
progreso en la eficiencia de los sistemas de cómputo, fundamentalmente en lo referente a las
funciones complejas que pueden desarrollar (por ejemplo las comunicaciones) y a las grandes
velocidades que se pueden obtener en las ejecuciones de los procesos.
En la actualidad, dicha tecnología permite la creación de nuevos tipos de arquitecturas
modulares, capaces de adaptarse “VÍA SOFTWARE” a los algoritmos a ejecutar, mediante una
reconfiguración interna de las interconexiones entre los módulos. Es decir, la frontera entre los
dominios del hardware y software de sistemas tienen una injerencia creciente en la
caracterización de la arquitectura de los sistemas. Justamente ésta característica la utilizaremos
para definir a un procesador (processor) como la entidad cableada o no (lógica), capaz de
ejecutar un proceso computacional o una instrucción.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
4 -
De hecho la arquitectura que ve el usuario normal está generada por capas de software, que
hace transparente las dificultades y complejidades del hardware. La forma en que los elementos
de un computador (unidad central de proceso, memoria central o principal, canales, periféricos,
etc.) se organizan y vinculan entre sí da lugar a diversas arquitecturas.

A1.1.2.2 DEFINICIÓN DE ARQUITECTURAS COMPUTACIONALES:

Se llama así a la organización y a la vinculación interna entre los distintos bloques


circuitales de un computador para permitir el flujo de señales entre ellos. Su unidad es la
PALABRA compuesta por un conjunto de n bits, donde n puede ser 1, 2, 4, 8, 9, 12, 16, 24, 32,
36, 48, 64 o 128 bits (generalmente se prefiere un valor de “n” múltiplo de una potencia de dos).
Esto significa que toda la estructura interna como ser: buses, registros, unidad aritmético-
lógica, unidad de entrada/salida, buffers, etc., se construyen físicamente con una misma
capacidad de bits. Por ejemplo 16, 32 o 64 bits.
Este concepto surge de la implementación tecnológica y física de la máquina para su correcto
funcionamiento, o sea que si se dispusiera de chips de memoria central de 256 kbits o de 1
Mbit, la implementación será distinta para la misma arquitectura. Por otro lado el usuario no le
interesa mayormente esto último, sino como está especificado el sistema completo y la interfase
con el hombre o sea lo que “el usuario ve” para comprender su funcionamiento.
Entonces, ampliaremos la definición de arquitectura de un computador como la estructura interna formada por las
interrelaciones y conexiones circuitales que permiten el flujo de instrucciones y de datos cuando se ejecuta una tarea
en el sistema de computo.
Nos basaremos en ambos conceptos para lograr una explicación razonable del funcionamiento
de un computador.

A1.1.2.3 CLASIFICACIÓN DE LAS ARQUITECTURAS

En general las arquitecturas de computadoras podrían clasificarse como estáticas y dinámicas


en cuánto a su configuración.
Las primeras son aquellas que no se adaptan “vía software” a los programas a ejecutar, las
dinámicas, si lo hacen.
Estas últimas constituyen en la actualidad un área de intensas investigaciones, y pueden
distinguirse tres clases de arquitecturas adaptables sobre el nivel de reconfiguración a saber:

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.

RECONFIGURABLE POR MÓDULOS FUNCIONALES


Con el advenimiento de la tecnología LSI se hizo posible interconectar módulos completos de
unidades funcionales, por ejemplo coprocesadores matemáticos, microprocesadores, DMA
(Direct Memory Access), RISC etc., con lo que el hardware disponible puede redistribuirse
entre distintos programas. Esto permite que se incremente el número de programas
computables en paralelo dentro del mismo equipo, particionando los recursos del sistema en un
número de computaciones independientes, según lo exige la corrientes de programas aplicados
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
5 -
al sistema. Un ejemplo de este tipo de arquitectura es el conocido bajo las siglas RISC
(Reduced Instruction Set Computers)

CLASIFICACIÓN PROPUESTA POR FLYN:


Otra forma de clasificar, es tomando el sistema de procesamiento en su conjunto por donde
fluyen los datos, resultados o instrucciones como si fuera una corriente (stream) de los mismos
dentro de conductos o cañerías (buses). Entonces podemos dar una clasificación informal de
los sistemas de cómputo, según la multiplicidad de las corrientes de instrucciones y de datos,
propuesta por M. J. Flyn.
El flujo de instrucciones es el que se va leyendo desde memoria central (que lo abreviamos
como M.C.. Algunos autores la llaman memoria principal M.P. En este texto se utilizarán ambos
términos como sinónimos ) a medida que se ejecuta un programa, mientras que el flujo de datos
es el que está formado por los datos que leen o almacenan esas instrucciones en la memoria
central.

1) Single instruction stream single data stream (S.I.S.D.) o Flujo Simple de


Instrucciones y Flujo simple de datos:
Donde hay dos corrientes, una de instrucciones y otra de datos. Es una arquitectura serie,
utilizada en la mayoría de los sistemas convencionales con una sola CPU cuya unidad
aritmético-lógica es capaz de ejecutar solo operaciones escalares.
Estas arquitecturas también se conocen como máquinas Von Neumann o secuenciales o
Arquitecturas serie.
Un esquema correspondiente a estas máquinas se observa en la fig. A1.23 y A1.24 del presente módulo.

2) Single instruction stream multiple data stream (S.I.M.D.):


A .L .U .

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 .

La corriente de instrucciones es única y la de datos es múltiple. Esta categoría incluye


máquinas con una unidad de control y múltiples unidades de ejecución, por ejemplo, la ILLIAC
IV de la NASA o la computadora STARAN de Goodyear, en su época, un equipo disponible
comercialmente organizado según este último concepto (hoy ambas ya desaparecidas). Cada
Unidad de Proceso “P” esta compuesto por una Unidad Aritmética Lógica y una Memoria
Central interconectada como un arreglo como se observa en la fig. A1.4. Esta arquitectura
también se conoce como Arreglo de Procesadores o Elementos de Procesamiento (“ARRAY OF
PROCESSORS” o “ARRAY of PROCESSING ELEMENTS”). La Unidad de Control puede
activar uno o todos los elementos ALU. Cada elemento activado del arreglo procesa las mismas
operaciones aritméticas o lógicas bajo el comando de la Unidad de Control única. Pero cada
Elemento de Procesamiento está operando con diferentes datos en ejecución. Su uso está
destinado en obtener altas velocidades en la ejecución, por ejemplo ecuaciones diferenciales
parciales por el método de diferencias finitas.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
6 -
3) Multiple instruction stream single data stream (M.I.S.D.):
Aquí la corriente de instrucciones es múltiple y la de datos es simple. Esta categoría no tiene
representantes numerosos, y quizás podría pensarse que los procesadores “pipeline”
pertenezcan a ella, en el sentido de que cada dato es procesado por diferentes instrucciones en
cada segmento del pipeline.
Esta arquitectura se explicará en detalle más adelante en el presente módulo.

4) Multiple instruction stream multiple data stream (M.I.M.D.):


En este caso ambas corrientes son múltiples. Se reúnen aquí las máquinas capaces de ejecutar
simultáneamente varios programas independientes (Fig. A1.05). Esta categoría coincide con la
de las unidades multiprocesadores. Un ejemplo son los Servidores de redes con
multiprocesadores.
Cada Unidad de Procesamiento está compuesto por una unidad de tratamiento que procesa el
flujo de datos bajo un programa (flujo de instrucciones) que ejecuta la Unidad de Control (U. de
C.)
Hay múltiples formas de conectar estos módulos. El elemento vinculante es la red (o Bus) de
interconexión que permite la comunicación entre las distintas unidades.
Esta arquitectura y su funcionamiento se presenta en el Módulo 9 del presente libro como Procesamiento Distribuido.
A .L .U .
U . D E C . R M .C .
P 1
E
D
U . D E C . P 2 M .C .
o
B
U
S

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

Existen dos tipos de acoplamientos entre Procesadores:


Débilmente Acoplado (Lowley Couplet): Formados por varias computadoras serie
convencionales interconectadas por una red (generalmente local: LAN Local Area Network) de
alta velocidad (Mayor de 5 Mbits/segundo) bajo un solo Sistema Operativo ( lo abreviaremos
S.O. a lo largo del texto) que realiza el reparto de la carga entre procesadores. Este tipo de
procesamiento se conoce como distribuido.
Fuertemente Acoplado (Tightly Couplet): Todos los procesadores del Sistema pueden utilizar
todos los recursos. El sistema dispone de una memoria central única y su procesamiento es
controlado por un solo S.O.. La memoria central sirve de elemento de comunicación entre los
distintos programas en ejecución.
Otra característica importante es la utilización de un solo tipo o distintos tipos de procesadores.
Se dice que el primer caso (un solo tipo de procesador, por ejemplo 80486) es homogéneo
mientras el otro es heterogéneo.
Las arquitecturas paralelas son las que, actualmente, concentran el mayor interés y esfuerzos
tanto para aumentar las prestaciones como las velocidades del procesamiento.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
7 -
Hay desarrollos orientados específicamente a ciertas aplicaciones ( por ejemplo Inteligencia
Artificial o Multimedia) que generaron algunas arquitecturas paralelas con un elevado número
de elementos de procesamiento interconectados por una red fija sobre la que cada uno realiza
una parte del procesamiento (parte elemental o sencilla). Una de éstas arquitecturas es el
computador sistólico.
Los datos son introducidos masivamente por un módulo externo que oficia de interfase de la
red. Se va procesando progresivamente a medida que avanzan por la red. Las salidas de los
resultados se efectúan por otra interfase. La arquitectura de la red depende del algoritmo que
procesa.
En la Fig. A1.06 se observa un elemento de procesamiento con 4 enlaces (link) como por
ejemplo el Transputer. Generalmente el lenguaje de programación es el OCCAM.
UP11 UP12 UP1n

UP21 UP22 UP2n

UPm1 UPm2 UPmn

Fig. A1.06 Arquitectura paralela

A1.1.3 DISTINTOS TIPOS DE ARQUITECTURAS

Arquitecturas Von Neumann


Este modelo fue desarrollado por John Von Neumann en 1945, quién dirigió un grupo de
investigaciones en el Institute for Advanced Study en los Estados Unidos.
El principio del procesador radicaba en que fundamentalmente se utilice como base numérica el
sistema binario y además se permitiera almacenar un programa en una memoria central. Este
programa ejercía un control secuencial de sus operaciones mediante instrucciones
estructuradas básicamente en un código de operaciones y operandos, y que eran ejecutadas al
transferir la información entre los registros internos de la CPU y la ALU.
Estos conceptos, el de dígito binario, el de programa registrado de control secuencial y las
instrucciones estructuradas fueron la base que permitieron un amplio desarrollo de los proce-
sadores y de sus lenguajes de programación, vastamente utilizados hasta hoy en día y con
perspectivas de continuar haciéndolo aún por mucho tiempo.

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

P.C. address u operation


SECUENCIADOR

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.

MONOPROCESADORES: ARQUITECTURAS PIPELINE:


Esta arquitectura se basa en el concepto de anticipación explícita ya que puede decirse que
comienza a ejecutar las operaciones sucesivas desplazadas un intervalo de tiempo “t=@” a
pesar de que cada una de ellas dura una serie finita de intervalos. Esto se ejemplifica en la
siguiente figura:
R E L O J @ 1 @ 2 @ 3 @ 4 @ 5 @ 6 @ 7 @ 8 @ 9

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

El concepto Pipe - Line se basa fundamentalmente en un conjunto de operadores series


implementados en el Hardware, aunque puede haber varios operadores idénticos que trabajan
en paralelo siendo designado éste ultimo caso al conjunto: SEUDO PIPELINE. Decíamos que el
operador esta dividido en varias secciones. Cada una correspondiente a una etapa de la
operación a ejecutarse. Dicho de otro modo: cada operación se reparte en un conjunto de
suboperaciones secuenciales a ejecutarse en las secciones correspondientes del Pipeline. Las
secciones se separan mediante registros (Buffers) capaces de memorizar los resultados
obtenidos de la sección anterior como se ve en la fig. A1.09.
Buffers o registros
entrada sección sección sección sección
salida
1 2 3 4

@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 -

Tiempo en nseg.: 0 50 100 150 200 250


Entrada Entrada Entrada Entrada Entrada Entrada
a1 b1 a2 b2 a3 b3 a4 b4 a5 b5 a6 b6

1.- Modificación a1 b1 a2 b2 a3 b3 a4 b4 a5 b5 a6 b6

2.- Sumar vacio a1 b1 a2 b2 a3 b3 a4 b4 a5 b5

3.- Normalizar vacio vacio a1 b1 a2 b2 a3 b3 a4 b4

4.- Redondear vacio vacio vacio a1 b1 a2 b2 a3 b3

Salida Salida Salida Salida Salida Salida


no no no no a1 b1 a2 b2
Fig. A1.10 Secuencia de una operación en un Pipeline

Supongamos que deseamos sumar 986 + 66.5 = 1052.5 (+.986+03) y (+.665+02)


1) (+.665+02) ⇒ (+.0665+03) (MODIFICAR)
2) (+.986)+(+.0665) ⇒ 1.0525 (SUMAR)
3) (+1.0525+03) ⇒ (.10525+04) (NORMALIZAR)
4) (+.10525+04) ⇒ (.1052+04) (REDONDEAR).
Hay dos tipos de áreas en que es conveniente utilizar a los PIPELINE:
• aritméticos y
• de instrucciones.
En los aritméticos las representaciones de los datos pueden ser de punto flotantes o fijos. El
flujo de los datos entre los segmentos depende del tipo de instrucción y de las secciones que
tenga el hardware. Distintas instrucciones emplean distintos segmentos de acuerdo a la
operación que deba ejecutarse. El ejemplo dado en la figura A1.10 muestra un caso típico de
sumas.
Signo de Punto Mantisa Signo del Exponente
la mantisa exponente
+- . XXXX +- xx

Fig. A1.11 Formato


Otra aplicación donde es particularmente efectivo el uso de operadores tipo pipeline es cuando
existe la posibilidad de superponer en el tiempo todos o algunos de los pasos del ciclo de la
instrucción (búsqueda, descodificación, Búsqueda de operandos, ejecución y almacenamiento
de resultados).
Una buena parte del ciclo de instrucciones está dedicado a accesar a la memoria y obtener los
datos o instrucciones y llevarlas al área de descodificación o del uso dentro de la CPU.
Surgen algunos problemas que hacen difícil operar a su máxima velocidad a un Pipeline de
instrucciones. Por ejemplo: El número de operandos puede variar desde cero (instrucciones
inmediatas) a un número grande (Instrucciones con operandos de longitud variable). El tiempo
de acceso de los operandos varía de acuerdo al tipo de direccionamiento utilizado.
Si las Instrucciones son de salto ocasionan una disrupción en el orden de la ejecución
(secuencia) de las instrucciones.
De todas formas estos problemas se resuelven y es el motivo de que generalmente la mayoría
de las CPU utilizan implementaciones de Pipeline para el tratamiento de las instrucciones.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
11 -
ARQUITECTURAS PARALELAS (MULTIPROCESADORES).
Las razones para el procesamiento en paralelo, en lugar de una máquina Von Neumann, lo
debemos buscar a nivel de:
• Necesidades de procesamiento de grandes volúmenes de datos, por ejemplo para procesar
imágenes.
• Consideraciones de costos: Las máquinas Von Neumann buscan obtener mayores
velocidades en la ejecución de las instrucciones (10 a 1 nanosegundo en el tiempo del reloj).
Esto implica que los circuitos integrados (C.I.) sean muy veloces y de muy alta escala de
integración (VLSI) y requieran de complejos sistemas de refrigeración. Digamos que cien
procesadores en paralelo, cada uno con velocidades del orden de 100 nanosegundos podría
tener la misma potencia de cálculo que una máquina Von Neumann de un nanosegundo,
pero a un costo cien veces menor.
• Consideraciones sobre el limite de velocidad: digamos que para un ciclo de un nanosegundo
y la velocidad de la luz de aproximadamente 3x1010 cm/seg.,. La distancia que recorren las
señales será de solo 30 cm por lo que las computadoras deben construirse dentro de un
cubo de 30 cm de lados para lograr el tiempo de un nanosegundo de demora en la
transmisión de las señales. Esto requiere de una sofisticada tecnología, actualmente no
disponible, para compactar los componentes, extraer el calor generado y para el armado de
dichos componentes.
La solución a estos problemas son procesadores en paralelos mas lentos, que generan menos
calor y no tienen problemas en el empaquetado o el armado en espacios mayores. Esto
resuelve el problema de la transmisión de la información con las tecnologías actualmente
disponibles a un costo razonable y a altas velocidades .
Entonces, la tendencia actual es:
a) Bajo grado de Paralelismo (procesadores con pequeño número de subunidades extremadamente rápidas tipo
pipeline de procesadores vectoriales basados en la teoría de Autómatas finitos.
b) Alto grado de paralelismo (basados en la teoría de Autómatas celulares)
Dentro de estas últimas tendencias se encuentran las arquitecturas conocidas como Flujo de
Datos o Data-Flow.

DATA FLOW O FLUJO DE DATOS


En los computadores de Data Flow, las arquitecturas se basa en la organización natural de las
computaciones en paralelo y los diferentes niveles del paralelismo que pueden obtenerse de los
distintos procedimientos a nivel instrucciones utilizados en los procesos concurrentes, como
ser los procesadores pipeline conectados en paralelo. Los computadores Data-Flow ofrecen
su potencialidad en unidades de propósitos especiales conectados a computadores de
propósitos generales.
Definimos como computaciones a las tareas o procesos que realiza un computador.
En general se los considera como computadores reconfigurables donde la arquitectura refleja
en forma natural la estructura del algoritmo que debe ejecutarse en un sistema de multiproce-
sadores. El problema se divide en partes para su ejecución en paralelo y la decisión de ésta
división es asumida íntegramente por el computador y su compilador de lenguaje.
En este tipo de arquitecturas, la instrucción espera para ser ejecutada hasta el arribo de sus
operandos. Las instrucciones del programa Data-Flow son activados por los datos sin
intervención de un registro contador de programa o de una unidad de control. El programa
Data-Flow consiste en una actividad enmascarada, en la cual se dispone de un campo de
dirección separado para cada instrucción. En la secuencia operativa, cuando los datos
requeridos son obtenidos o están disponibles, para una actividad enmascarada particular, se
coloca esta dirección en una cola y es asignada al próximo procesador disponible y ejecutado
en su correspondiente turno. Un paquete Resultado es generado, como consecuencia del
procesamiento, para cada destino del paquete de operación.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
12 -

controlador
del bus de
BUS DE INSTRUCCIONES = I-BUS
instrucciones

MP0 MP1 MPn

controlador
del bus de BUS DE RESULTADOS = R-BUS
resultados

Fig. A1.12 Módulos de un Data - Flow

Básicamente la arquitectura se compone de módulos de procesamiento (M.P.) idénticos,


controlados por un microcomputador M.P. que oficia como una unidad principal conectado a un
bus común a todos, por donde fluyen las instrucciones (Bus de Instrucciones que lo
llamaremos I-BUS) y un bus por donde fluyen los resultados (Bus de Resultados R-BUS), como
se ve en la figura (Fig. A1.12). Ambos controlados específicamente mediante adecuados
controladores de Buses cuya función es administrar las prioridades de los pedidos de buses
que realizan los módulos de Procesamiento (M.P.)

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

Fig. A1.13 Esquema de una arquitectura Data -Flow

1. El control de apareamiento de señales (MATCHING) basado en el concepto de propulsión de


datos (DATA-DRIVEN CONCEPT).
2. La búsqueda de la instrucción.
3. La función de llamado de Procedimientos.
La codificación del programa que expresa el flujo de datos es construido en el computador
principal y almacenado en la memoria de instrucciones que generalmente es implementada en
una memoria Buffer.
La ejecución comienza cuando la señal inicial entra en el sistema a través del Computador
Principal. Luego la señal es procesada por la rutina de control de MATCHING (que oficia de
anfitriona) mediante la instrucción que ya contiene dos operandos. La rutina de Control de
Matching agrega dos campos a la instrucción, que son: el número de proceso y la dirección de
destino.
Generalmente ésta rutina es soportada mediante una técnica de Software HASHING, Un
método de direccionamiento abierto, para una búsqueda asociativa (ASSOCIATIVE SEARCH).
Si la instrucción no encuentra su anfitriona (falla de Búsqueda) la señal entrante es almacenada
en el registro de instrucción a la espera del arribo de su anfitriona. Cuando su anfitriona existe
(éxito de búsqueda), el correspondiente Código de operación es obtenido de la memoria de
instrucciones y es armado el paquete de instrucción ejecutable que se enviará a los M.P.s para
su ejecución.
PROC DEST OPC DATA E.C.

Fig. A1-14 Estructura de una instrucción de Data Flow


Donde:
PROC: Campo de Número de Proceso.
DEST: Campo de la dirección de destino.
OPC : Campo de Codigo de Operación.
DATA: Campo de datos.
E.C.: Campo Contador de Permiso.
El Registro de instrucciones es implementado en la memoria buffer. La estructura de este
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
14 -
registro de instrucción se ve en la figura A1.14.
El campo de Contador de permiso E.C. es inicialmente prefijado a un valor numérico
correspondiente a los arcos de entrada de cada nodo y decrece a medida que el paquete de
señales llega a su destino. Cuando E.C. es cero, la instrucción puede ser ejecutada (Cola de
Ejecución).
• Unidad de Procesamiento: Recibe el paquete de instrucciones desde el bus de entrada (I-
BUS) y ejecuta la operación especificada con los datos acompañados y devuelve los
resultados al R-BUS.
Los formatos de las instrucciones son las siguientes:

1) PROC OPC DEST DATA1 DATA2

2) PROC OPC DEST DATA1 DATA2 DATA3

3) PROC OPC DEST1 DEST2 DATA

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

D e c o d ific a d o r R e g is tro ALU R e g is tro d e


d e E s ta d o D ire c c io n a -
m ie n to d e
C o n tro la d o r d e l m e m o ria
m ic ro p ro g ra m a
M U L T IP L E X O R b u ffe r
d e l C O D IG O d e
C O N D IC IO N E S
M e m o ria d e l
m ic ro p ro g ra m a
M e m o ria
B u ffe r
R e g is tro d e l
p ip e -lin e
R -B U S IN T E R F A S E

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

Una implementación práctica de este tipo de ALU se puede lograr conectando 4


microprocesadores del tipo bit-slice (Am 2903) en un conjunto, auxiliado mediante la ayuda de
un procesador EXTERNO HOST cuya función debería ser regular la ejecución de las
microrutinas que interpretan las operaciones de DATA FLOW.
El control de los buses y las interfases es parte clave del diseño pues todas las operaciones
que debe realizar el módulo son tomados del bus de instrucciones (I-BUS) y por el cual también
viajan los datos, no así los resultados. Una vez realizada la operación dentro del módulo de
procesamiento, el resultado es devuelto al buffer de la interfase y luego al Bus de Resultado por
el cual se transmite a su destino.
La lógica del controlador de los buses debería ser implementada en Hardware para permitir
manejar las prioridades y los sincronismos de todo el sistema. Si las prioridades son las mismas
para cada uno de los M.P. un esquema que podría satisfacer estas condiciones es el de la Fig.
A1.18, en que se considera las posiciones relativas de los MPs.
Sería conveniente que cada M.P. tenga dos interfases para los buses. Cada interfase debería
estar subdividida en una parte de transmisión y otra de Recepción para poder trabajar en forma
independiente y aumentar su velocidad de procesamiento al estar conectada al bus interno por
el cual se pueden intercambiar los datos.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
16 -
Cuando un M.P. necesita enviar un dado paquete de señales a otro M.P., el primero pondría la
información de control y los datos en el registro buffer de la interfase del bus. La información de
control debe contener el número del MP destino que recibirá las señales.
Pedido de habilitación del bus
por los M.P.
BH(T) bus habilitacion transmisor.
Controlador BH(T)
BH(T)
de bus
MP0 MP1 MP2
BH(T)

BH® BH®
BH® BH®
Donde:

BH(T) bus habilitacion transmisor.


BH® bus habilitacion receptor.
Fig. A1-19 Esquema Daisy Chain de control

A1.1.4 ELEMENTOS QUE DEFINEN UNA ARQUITECTURA

La definición de los elementos que intervienen en una arquitectura de un equipo, determina su


potencial y sus límites. Debido a ello los diseñadores prevén, para determinados usos o
propósitos del hardware, ciertos criterios con que se seleccionan entre las diversas alternativas
de construcción, las prestaciones que hará el sistema completo.
Para la arquitectura de máquinas dedicadas a propósitos generales se definirán los criterio que
serán distintos como por ejemplo para aquellas de aplicaciones en Inteligencia Artificial, cuyos
requerimientos son totalmente opuestos.
De toda forma deberán preverse la variable tecnológica, su capacidad de extensión o
compatibilidades y sus argumentos de ventas para permanecer en un mercado cada vez más
competitivo.
Daremos una serie de elementos que creemos son importantes para dicha definición. Estos
elementos son :
1) Tecnología de la arquitectura.
2) Tipo de procesamiento.
3) Longitud de la Palabra.
4) Tipo de dato o información.
5) Cantidad de registros.
6) Manejo de las interrupciones.
7) Tipo de instrucciones.
• operandos
• direccionamientos
8) Memoria Interna (Caché de primer o segundo nivel)

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.

A1.2.- DESCRIPCIÓN DE UNA ARQUITECTURA VON NEUMANN


E /S
D a to s +
M .C . In te rf.
U. de U. de P e rife ric o s
U. C. ALU E /S
Reg. E /S C o n tro l

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

USO DEL BUS


Se conecta en paralelo a las líneas del bus, todas las entradas y las salidas de los elementos o
bloques de circuitos de acuerdo a su función especifica. Para evitar conflictos de señales,
dichos circuitos deben tener un dispositivo electrónico de compuertas para pasarlo al estado de
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
21 -
alta impedancia (tristate) . En este estado los circuitos no cargan al bus y se dice que es un
“estado pasivo” en el cual se encuentran normalmente o sea que ignoran las señales que
pueden presentarse en sus entradas o salidas. El otro estado (Activo) es el de baja impedancia
y se produce cuando se lo habilita para darle acceso al bus a través de una señal por el bus de
control. En este estado el dispositivo (Chip) puede recibir información (IN) del bus, o transferir al
bus información (OUT) de acuerdo a la función especifica del Chip.
La señal que habilita un circuito seleccionado (o sea lo pone activo), se llama CHIP SELECT,
ENABLE o STROBE.

E n tra d a (IN ) S a lid a (O U T )

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

Fig. A1.22 Habilitación de circuitos mediante el bus de control


Es importante recalcar que la longitud y la separación de los cables o conductores en un bus
ofrecen ciertas restricciones al funcionamiento, así mismo como la frecuencia o velocidad de
trabajo. Estas restricciones originaron un profundo estudio sobre ruidos o interferencias debido
a efectos de radiación y reflexión en las líneas. Estos estudios permitieron diseños de buses
bajo ciertas especificaciones de uso y luego generalmente culminaron en Normas o Standards
industriales técnicamente aceptados por los fabricantes para facilitar las interconexiones de
distintas unidades, ya sea del mismo fabricante o de otros proveedores del mercado.
B u s M O S A d a p ta d o r B u s T T L d e
d e le c tu ra U n id ire c c io n a l le c tu ra

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.

A1.2.2 UNIDAD CENTRAL DE PROCESOS o CPU

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 .

Un esquema general podría ser el que se presenta en la figura A1.24 .

A1.2.3. LOS REGISTROS.

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).

CONTADOR DE PROGRAMA o PROGRAM COUNTER (P.C.) o también llamado Contador de


Instrucciones o puntero de instrucciones. En el se almacena la dirección de Memoria
Central en la cual se halla la próxima instrucción a ejecutarse o la dirección de los operandos
que se necesitan traer a la CPU o la dirección donde se debe guardar un resultado. Para las
Instrucciones su contenido se incrementa automáticamente en cada ciclo de búsqueda o
FETCH que realiza el procesador en Memoria Central o se carga con la nueva dirección cuando
las instrucciones a ejecutarse son predeterminadas por instrucciones de salto. Para los
operandos se carga desde registros internos como ser el Data Pointer o el Stack Pointer
(Dedicado y Accesible).

STACK POINTER (SP). Es un registro en el cuál se almacena la primer dirección libre de


memoria utilizada como pila. Es un Registro Dedicado y Accesible generalmente utilizado en el
manejo de las subrutinas o procesos.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
24 -
El registro de pila o stack pointer es el que apunta a la zona de Memoria Central que funciona
como una PILA usado por el Sistema Operativo para tratar las interrupciones externas o
accesos de subrutinas, también en esta área se guarda el estado de la CPU (P.C. Registros,
etc.) cuando ocurren estos eventos.

REGISTRO DE INSTRUCCIONES (R.I.): En él se almacena el Código de Operación de la


instrucción cuando se la trae desde la memoria central para su descodificación por la Unidad de
Control. (Dedicado e inaccesible).

REGISTRO DE DIRECCIONES A MEMORIA (MAR: Memory Address Register).


En este Registro se cargan las direcciones a accesar donde están almacenados las
instrucciones, datos, etc. en memoria. Se lo utiliza como un buffer para sincronizar las
transferencias de salida de la información binaria que determina la dirección física de Memoria
Central. También aísla la CPU del bus de Direcciones cuando está en tri-state. (Dedicado e
inaccesible).

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.

ACUMULADORES (AC). Son Registros de almacenamiento temporario utilizado por la Unidad


Aritmética y Lógica para guardar los resultados, hacer transferencias de datos u operandos.
(Son de Uso general y accesible). Pueden haber uno o más Acumuladores, según el fabricante
del Microprocesador.

REGISTRO DE ESTADO O BANDERAS o FLAGS. En cada posición de este Registro (Flip-


Flop) se guarda una información binaria del estado en que queda la CPU después de ejecutar
una instrucción. Se lo utiliza para analizar su contenido y para tomar una decisión o para
detectar un error. Las señales que normalmente provee son (ver Fig. A1.28):
• OVERFLOW: La última operación aritmética se excedió de la capacidad del Registro
Acumulador.
• ZERO: Se obtuvo un resultado cero en la operación realizada.
• NEGATIVE: Se obtuvo un resultado negativo en la operación realizada.
• I/O: Usado por los Periféricos para comunicarse con la CPU.
• CARRY: Suele utilizarse como bit (n+1) del Registro Acumulador o sea el arrastre en el
orden superior.
• etc.

A1.2.4 LA UNIDAD DE CONTROL.

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

De acuerdo al orden de precedencia de las instrucciones que llegan al RIE (Registro de


Instrucciones en Ejecución) y a su descodificación, se obtiene la secuencia de ejecución, que
se realiza por el SECUENCIADOR cuya función es ir cambiando de estados de los distintos
módulos del computador.
La Unidad de Control esta compuesta por:
• un PROCESADOR DE INSTRUCCIONES,
• un PROCESADOR DE DIRECCIONES,
• un PROCESADOR DE OPERACIONES y
• un PROCESADOR DE INTERRUPCIONES Y DE ENTRADA/SALIDA.
Si tomamos a la Unidad de Control como un Sistema, entonces se la puede subdividir en tres
subsistemas:
a) Un procesador de lenguaje que procesa varios niveles de lenguaje.
b) El dispositivo maestro de secuenciamiento y tiempo para todo el Sistema Computacional.
c) El dispositivo de control.
El funcionamiento podría ser el siguiente (ver cada paso en la Fig. A1.25):
1. Inicialmente asumimos la existencia de una dirección de Memoria Central en donde está la
próxima instrucción a ser ejecutada ya cargada en el Registro Contador de Programa (P.C.).
Esto quiere decir que previamente se ha efectuado una copia del programa en Memoria
Central para ser ejecutado. Esta copia del programa en memoria se llama programa en
ejecución y está dividido en procesos a realizar por la máquina y definimos a cada uno de
los procesos como una porción indivisible del programa en ejecución con un vector de
estado asociado al mismo.
Este concepto lo estudiaremos con mayor detalle en el módulo 2 del Libro Notas sobre Sistemas Operativos
2. a) Esta dirección es enviada a la Memoria Central a través del M.A.R. (Memory Address
Register) al bus de direcciones, y
b) El contenido de esa dirección de memoria es una INSTRUCCIÓN que tiene dos partes: Un
código de operación y operandos. El Código de Operación es colocado en el RIE (Registro
de Instrucción en Ejecución) y los Operandos en el Acumulador o en los Registros
previamente destinados. La estructura de las instrucciones se observa en la siguiente figura:
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
26 -
INSTRUCCIÓN

CÓDIGO OPERANDOS
de
OPERACIÓN OPn
OP1 OP2
(C.O.)

Fig. A1.26 Estructura de una Instrucción


3. La Instrucción es separada en la parte de operación y la parte de dirección. El Código de
Operación (CO) es enviado al Procesador de Operaciones y los Operandos al Procesador de
Direcciones.
4. El Procesador de Direcciones toma los Operandos y los transforma en la dirección correcta
de Memoria Central (M.C.) donde están alojados los datos que necesitan ser procesados por
la instrucción en ejecución. Para ello tiene dos alternativas utilizando como Puntero Índice el
contenido del Data Pointer Register o el Stack pointer u otro registro interno:
a) El valor obtenido es enviado a los registros para que la ALU obtenga la dirección efectiva
a través del método de direccionamiento involucrado en la instrucción y luego cargue el
resultado en el Registro P.C., o
b) Carga directamente al P.C. con el valor correspondiente a la dirección efectiva
involucrada en la instrucción descodificada, como en el caso de las instrucciones de
saltos por ejemplo GO TO 200, en que se carga el valor 200 en el P.C. y 200 es la
dirección de Memoria donde debe ir.
• Una vez hecho esto se vuelven a repetir los pasos desde el punto 2.a) formándose un ciclo
continuo de operaciones de búsquedas de información en Memoria Central también
conocido como ciclo de búsqueda o fetch (ver parte B de éste módulo). El ciclo de
búsqueda se realiza tantas veces como sea necesario completar los operandos que
intervienen en la instrucción.
• En cuanto al Procesador de Operaciones realiza superpuesto al ciclo de búsqueda otro ciclo
conocido como ciclo de ejecución que es el siguiente:
5.- El código de operación es descodificado. Esto es: el conjunto posicional de bits es
convertido en una secuencia de señales eléctricas que:
a) dispara el secuenciador que conduce afuera las operaciones o,
b) cuando la instrucción es de “salto”, produce la transferencia de control hacia el
procesador de salto que es activado para procesar la dirección al cual apunta el salto.
6.- El Secuenciador propulsa a la vez a toda la máquina a través de la secuencia especificada
por los eventos que están codificados en la PLA (Pogrammable Logic Array) y que es
transformada por una señal adecuada en amplitud, intensidad y duración definida por la
instrucción descodificada. Estas señales corresponden al nivel más bajo (Nivel 0) de los
lenguajes que ejecuta un computador y,
7.- Cuando la secuencia de la instrucción en ejecución es finalizada, ocurre:
a) Si la instrucción fue de Salto y fue derivada al procesador de saltos, éste causa una
nueva dirección que es forzada al registro P.C. (paso 4.b)).
b) de otro modo, el incrementador ajusta al P.C. para que apunte a la próxima instrucción
a ser ejecutada, o el contenido proviene del Registro Acumulador de la ALU o de un
registro interno de la máquina.
Estos ciclos (el de búsqueda y el de ejecución) se repiten superpuestos en el tiempo (en forma
paralela) dando lugar a que el programa en ejecución vaya realizando los procesos internos
necesarios y que la máquina devuelva los resultados de estos procesos internos al programa en
ejecución de acuerdo a como se presentan en el orden o secuencia las instrucciones del
programa originalmente cargado en Memoria Central. Todo esto lo podemos resumir en el
diagrama de la figura A1.27 en que se observa la secuencia.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
27 -
EL PR OC ESADOR
PR OG R AM A EN
PR OG R AM A CARG ADOR C O P IA D E M .C .
E J E C U C IO N E N c ic lo
E JE C UT ABLE A M .C . A LOS PR OC ESOS de
M .C . D IV ID ID O bús-
( H A C E U N A IM A G E N quedas o
EN PR OC ESOS
DEL PR OC ESO) FETCH

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.

A1.2.5 LA UNIDAD ARITMÉTICA Y LÓGICA (ALU o UAL).

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

OVERFLOW Z ERO NEG AT. I/O CARRY ETC.

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 -

A1.3. MEMORIA CENTRAL (M.C.)

Es común que a la memoria del computador se la denomine central o principal para


diferenciarla de otro tipo de almacenamiento, por ejemplo los discos, cintas, etc.

A1.3.1. DEFINICIONES DE CONCEPTOS UTILIZADOS EN MEMORIAS.

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.

A1.3.2. JERARQUÍAS DE ALMACENAMIENTOS.


Para seleccionar las memorias a instalar en un sistema de computación, se debe considerar los
siguientes factores:
a) Capacidad de almacenamiento.
b) Tiempo de acceso.
c) Velocidad de transferencia.
d) Densidad de almacenamiento.
e) Tipo de memoria y tecnología
f) Precio.
Este último punto (precio o costo) determina los diferentes niveles o jerarquías del
almacenamiento en un sistema de cómputo y resulta directamente de la velocidad (a menor
tiempo de acceso mas caras).
Dentro del sistema se distinguen los siguientes niveles de memorias:
a ) M e m o r ia d e R e g is tr o s (g e n e r a lm e n te d e n tr o d e la C P U
e le c tr ó n ic o s d e l tip o F lip -F lo p s e s tá tic a s d e a lta v e lo c id a d )
b ) M e m o r ia In te r n a a la C P U o C a c h é d e p r im e r n iv e l
M e m o r ia s P r im a r ia s (c o m p u e s to s p o r F lip -F lo p s , e s ta tic a s o d in a m ic a s )
c ) M e m o r ia s in te r m e d ia s o d e 2 d o . n iv e l (C a c h é ).
d) M e m o r ia C e n tr a l

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.

A1.3.3. CARACTERÍSTICAS DE LAS MEMORIAS:

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).

A1.3.4. ORGANIZACIÓN DE LA MEMORIA INTERNA (CENTRAL o PRINCIPAL):


La organización se efectúa lógicamente en palabras cuya longitud puede ser de 4, 8, 12 o más
bits, dependiendo del tipo de Hardware y de la arquitectura del computador.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
32 -
C O L U M N A (M S D ) B U S D E D A T O S (B id ire c c io n a l)
B IT n C O L U M N A (L S D )
n -e s im a p o s ic ió n B IT 0

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.

A1.3.5. DISTINTOS TIPOS DE MEMORIA INTERNA (CENTRAL O PRINCIPAL)

A) Memoria de núcleos magnéticos:


La mencionaremos sólo a modo anecdótico como curiosidad histórica, debido a que se usaron
vastamente en los equipos de Segunda y Tercera generación de computadoras. Actualmente
fueron reemplazados por los circuitos integrados (C.I.) o CHIPS en las de tipo: RAM y ROM.
El núcleo: la unidad elemental del sistema es un pequeño anillo o núcleo de material magnético
de alta permeabilidad (ferrite por ejemplo), de 4 mm de diámetro externo y 2 mm de diámetro
interno, que se magnetiza en uno u otro sentido, constituyendo así un dispositivo biestable,
capaz de almacenar un bit de información.

B) Memoria de semiconductores o circuitos integrados:


Son aquellos que utilizan el biestable electrónico o Flip-Flop como elemento de memoria. Un
biestable es un sistema que no puede presentar más que dos estados lógicos diferentes que,
en ausencia de estímulos externos, no tienen porque evolucionar, razón por la cual este
dispositivo puede servir como elemento de memoria.
Cada bit está constituido por un biestable y sus circuitos asociados de lectura y escritura. Una
diferencia fundamental que presenta esta tecnología es que la lectura no es destructiva y la
escritura no exige puesta a cero previa como los núcleos magnéticos .
El tiempo de acceso de este tipo de memoria es de varias decenas de nanosegundos (10 a 120
ns, típicamente 70 ns).
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
33 -

Clasificación de las memorias internas de circuitos integrados:


I A C T IV A S Ia : E S T A T IC A S
Ib : D IN A M IC A S

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

I) ACTIVAS: (RAM: Random Access Memory - Memoria de acceso aleatorio)


Son las de lectura y escritura. Su contenido puede ser modificado mediante un programa, en
cualquier instante. Su mayor desventaja es la volatilidad, dado que al interrumpirse la
alimentación, pierde la información almacenada en su interior.

Ia) Las RAM estáticas o SRAM:


Está construida mediante circuitos Flip-Flop (o Biestables), en un circuito integrado. Cada Flip-
Flop almacena un bit de información, por lo que se especifica el valor de Kbits (Kilo= 1024 bits)
por chip. Y no debe confundirse con la organización de los bancos de memoria, cuya unidad
responde a Kilo-palabra o generalmente Kilo Byte (KBy).
Un banco de memoria utiliza uno o varios chips conectados adecuadamente en forma de matriz
cuyas columnas determinan la capacidad de la palabra (o resolución) y cuyas filas, la
capacidad del almacenamiento o direccionamiento posible (o rango).
Otra característica es que son asincrónicas, o sea, que no es necesario un reloj para mantener
la información, mientras no se interrumpa la alimentación. Sin embargo, el chip tiene una
conexión de reloj que es utilizada por la unidad de control cuando se efectúa el ciclo de
lectura/escritura.
Las memorias estáticas se llaman así, por su propiedad de mantener y conservar la información durante todo el
tiempo en que se mantengan las condiciones estables de su funcionamiento.
Ib) Las memorias dinámicas o DRAM:
Su construcción se basa en la capacidad de entrada de un transistor MOS (metal oxid
semiconductor) que es utilizado como un punto de memoria. Debido a su tamaño pequeño y su
geometría (un transistor frente a un Flip-Flop) se logran grandes densidades de integración
(varios Mbits) y buenas velocidades. Es común encontrar velocidades del orden de 40 a 200 ns
(típico 60 - 70 ns).
Estas memorias se denominan dinámicas debido a que su contenido varía o se pierde con el tiempo.
Esta es su principal desventaja.
Cada bit se “escribe” en un pequeño capacitor del transistor MOS, pero debido a las fugas que
tiene este capacitor, se “pierden” estas cargas después de un tiempo, y tal es así, que en pocos
milisegundos desaparecen totalmente. Para evitar estas pérdidas de información almacenada,
se procede a “refrescar” la memoria cada 1 o 2 milisegundos, mediante un procedimiento cono-
cido como “ciclo de refresco” (Refresh Cycle). Este consiste en leer la información
almacenada en la memoria y volver a escribirla en la misma posición que ocupaba.
Este proceso produce algunos inconvenientes, dado que debe efectuarse mediante un circuito
especial que puede estar comandado por la unidad de control de la CPU o incluirse un circuito
dentro del chip de la memoria. Estas soluciones presentan grandes complejidades en el
Hardware. Otro inconveniente es que el ciclo de refresco puede interferir el tiempo de acceso
o de lectura/escritura de la memoria por la CPU. De todas formas, el tiempo de incidencia de
este proceso sobre el tiempo operativo, es del 1 al 5% y generalmente se busca optimizar las
técnicas de refresco mediante operaciones de leer una columna (o fila) completa por vez,
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
34 -
(dependiendo de la organización interna de la memoria) para luego regrabar la misma infor-
mación en el mismo lugar.
E S T A T IC A S D IN A M IC A S
C O S T O A L T O B A JO
R E F R E S C O N O N E C E S IT A S I N E C E S IT A
E N U N S IS T E M A M A S B A R A T O M A S C A R O
P E Q U E Ñ O
E N U N S IS T E M A M A S C A R O M A S B A R A T O
M E D IA N O O G R A N D E
V E L O C ID A D E S 10 a 200 n s 40 a 400 n s
D E N S ID A D D E G R A N D E M U Y G R A N D E
IN T E G R A C IÓ N

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

quedado escrito en la posición de memoria deseada por la dirección cuando la señal de la


unidad de control habilita la línea Escritura (STORE) (señal 5).
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
35 -
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 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 .

Volatilidad de las RAM: Se refiere a la pérdida de la información cuando se corta la corriente


eléctrica que alimenta a la memoria. Se puede solucionar mediante dos técnicas:
a) mediante una batería como alimentación de seguridad que suministre energía en el caso de
que se corte la alimentación al sistema. Aquí tiene importancia el tipo de tecnología de integra-
ción utilizada en las memorias, por el consumo. En general, el CMOS (Complementary Metal
Oxid Semiconductor) es de muy bajo consumo y admite una batería durante un período de
tiempo prudencial, pero suficiente como para reparar el problema del corte de energía. Esta
tecnología es algo lenta.
b) Mediante memorias alterables eléctricamente (EAROM). A pesar de que son memorias
“preferentes de lectura solamente”, admiten escrituras mediante un proceso sofisticado. Debido
a que es una memoria muy cara, su uso está restringido a aplicaciones especiales donde se
requiera que la información se almacene durante períodos críticos de corte de energía, como
ser procesos industriales, cohetería, etc.

II) Memorias pasivas:


Se denominan así aquellas memorias en las que se ha predefinido el contenido de las mismas,
y se permite solamente la lectura de dicha información.
No admite modificación de su contenido, una vez instalada en el computador. Esta definición es
válida para las ROM, PROM y EPROM, pero últimamente han aparecido en el mercado las
EAROM y las EEROM, las cuales se pueden modificar (su contenido), mediante programas a
pesar de que se las considera por excelencia “memorias de lectura preferentemente”.

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

BUFFER DE ENTRADA DE DIRECCIONES

DECOD. X DECOD. Y

C C C C
S S S S Matriz de
0 1 2 3 almacenamiento

BUFFER DE SALIDA

Fig. A1.32a Estructura de un chip de memoria de solo lectura - ROM


En el siguiente ejemplo representaremos la estructura interna de una ROM en la fig. A1.32a y
su diagrama de tiempo en la figura A1.32b.
Debido a que no es posible modificar el contenido, si se desea corregir o modificar el programa
escrito en ella, se generaron alternativas de ROM llamadas EPROM o PROM, en las que el
usuario puede “programar” varias veces sus “necesidades o aplicaciones”.
CICLOS DE RELOJ
TIEM PO CICLO DE M EM ORIA

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

figura A1.32b Diagrama temporal de una memoria ROM

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

. Fig. A1.33 Borrado de una memoria EPROM


Todas las celdas pasan a contener un “cero” (se descargan) y mediante un aparato grabador
especial que aplica una tensión de aproximadamente 25 volts a un terminal del Circuito
Integrado llamado prg, y se lo regraba con un nuevo programa. El programa se mantiene dentro
del circuito durante varios años, (generalmente más de cinco) siempre que se tape
adecuadamente a la ventana. Además el Chip admite ser usado o regrabado más de 100
veces.
Su mayor inconveniente radica en el costo del dispositivo, que es relativamente caro y en no
tener siempre compatibilidad entre las conexiones de sus pines con las distintas marcas de
PROM o ROM. Su tiempo de acceso oscila entre 100 y 600 ns. La capacidad de estas
memorias varían desde unos 32 kbits a 1 o 2 Mbits actualmente. Las RPROM se pueden borrar
directamente por medios eléctricos. Es de reciente aparición en el mercado. La tecnología
usada es la MOS (Metal Oxido Semiconductor). Son algo más lentas que las bipolares.

IIc) EAROM - EEPROM: (EAROM: Electrically Alterable ROM - Memoria alterable


eléctricamente) (EEPROM: Electrically Erasable PROM).
Esta memoria permite leer y escribir información con distintos grados de dificultades. La lectura
es veloz del orden de los de algunos nanosegundos) mientras que la escritura es muy lenta (del
orden de los milisegundos). El proceso de borrado es del orden de los cien milisegundos. Por
eso se dice que son preferencialmente de lectura ya que para usos generales se requieren
ciclos de memoria con duración semejante.
Es una memoria no volátil cuya aplicación aún no se ha difundido, debido a su elevado costo,
baja densidad de integración y grandes tiempos de escritura. La tecnología usada para su
elaboración es la de MNOS (Metal Nitruro Oxido Semiconductor).

III Otros tipos de dispositivos de memorias:


IIIa) CCD: Estas memorias son dispositivos de cargas acopladas, construidas según la figura
A1.34 que aplica una señal de aproximadamente 25 volts que permite rehabilitar las celdas para
grabar la información nueva..
c o n e c t o r e s m e t á lic o s
d e a lu m in io

Ó 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.

A1.3.6. PROTECCIÓN DE PARIDAD


Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
39 -
Generalmente cada posición de memoria principal tiene asociada un bit adicional, inaccesible
para el usuario, a efectos de poder efectuar un control de paridad. El estado de este bit se
calcula automáticamente después de cada operación y se compara con el que tenía antes de
realizar la misma a modo de verificación. Un ejemplo de este tipo de memorias son las EDO.

A1.3.7. ORGANIZACIÓN DE LA INFORMACIÓN EN LA MEMORIA

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.

A1.3.8. JERARQUÍAS DE MEMORIAS DE UN COMPUTADOR:


Las jerarquía mas comunes son las indicadas en la figura A1.35.
Las razones para establecer una jerarquía en las memorias dentro de un computador reside
fundamentalmente en tres áreas: tamaño, tiempo de acceso y relación precio-desempeño. De
estas tres la fundamental es el tiempo de acceso que determina la velocidad en el
procesamiento de los datos almacenados por consiguiente el costo del bit almacenado.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
40 -
a) d o s n iv e le s :

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

Generalmente, los computadores modernos implementan un sistema de Memoria Virtual


consistente en una estructura jerarquizada, de por lo menos dos niveles, que es administrado
por el Sistema Operativo, de manera que aparece ante los usuarios como una gran memoria
central directamente direccionable.
Existen tres razones principales para emplear memorias virtuales:
1. Libera a los usuarios de la necesidad de ocuparse de la administración de la memoria.
2. Hace que los programas sean independientes de la configuración y capacidad de los
sistemas de memoria empleados durante su ejecución.
3. Permite compartir eficientemente el espacio de memoria entre usuarios diferentes, y permite
frecuencias de acceso elevadas con un costo por bit bajo, según el tipo de jerarquía
empleada
Respecto a cómo se administran estos espacios de almacenamiento mediante el Sistema Operativo lo estudiaremos
en detalle en el módulo 5.
La mayoría de los sistemas de memoria virtual emplean una jerarquía de dos niveles (M1, la
memoria central, de capacidad S1 relativamente pequeña, y M2, normalmente discos, de mucho
mayor capacidad S2).
El usuario corriente que programa en lenguaje de alto nivel, ve el sistema como una única
memoria virtual de capacidad acotada por S1+S2. El sistema provee mecanismos automáticos
para convertir las direcciones lógicas del programa del usuario (dir) en direcciones de memoria
físicas P entonces distinguimos dos elementos básicos:
1. Una función de traducción de direcciones (f : dir ⇒ P)
2. Una jerarquía de memoria.
Los distintos elementos de un sistema de memoria típico pueden pensarse como constituyentes
de una jerarquía de memorias: M1, M2, M3, ....., Mn
donde cada elemento Mi está en cierta forma subordinado al precedente de la jerarquía Mi - 1.
La CPU (y otros procesadores si los hubiera) se comunican directamente con el primer miembro
de la jerarquía M1; M1 se comunica con M2, y así sucesivamente, a través de los mecanismos
de referencia y extensiones.
Si llamamos:
Ci al costo por bit de la memoria Mi, y
Tai al tiempo de acceso al nivel i y
Si a la Capacidad de almacenamiento del nivel i,
las siguientes relaciones se verifican normalmente entre los miembros de la jerarquía :
Ci > Ci + 1;
Tai < Tai + 1;
Si < Si + 1.
El objetivo de diseño de una jerarquía de memoria es obtener un desempeño próximo a la del
dispositivo más rápido (M1) con un costo por bit cercano al mas barato (Mn).
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
41 -
El desempeño de la jerarquía depende de una variedad de factores que interactúan en forma
compleja. Los más importantes son los siguientes:
1. La estadística de referencias a memoria, es decir, el orden y frecuencia con que los
programas generan direcciones lógicas que usan la jerarquía.
2. El tiempo de acceso Tai de cada nivel Mi con respecto a la CPU.
3. La capacidad de almacenamiento de cada nivel.
4. El tamaño de los bloques de información transferidos entre representantes
sucesivos de la jerarquía.
5. Los algoritmos de asignación de memoria que determinan a que áreas de memoria
se asignan los bloques de información transferidos desde otros niveles.
Todos estos factores interactúan en forma que aún no está del todo comprendido. Los estudios
realizados, mediante métodos de simulación, revelan solamente las relaciones generales entre
estos factores. Las técnicas de simulación, son herramientas fundamentales para el diseño y
evaluación de sistemas de memorias.
Para simplificar la exposición, nos restringiremos en adelante a tratar las jerarquías de dos
niveles: M1 y M2. Las consideraciones sobre costo y desempeño pueden fácilmente generalizar-
se a una jerarquía de “n” niveles.
El costo promedio por bit de memoria está dado por:
C1 ∗ S 1 +C 2 ∗ S2
C= (1)
S1 + S2
donde Ci denota el costo por bit de Mi, y Si la capacidad de Mi.
Para lograr el objetivo de hacer c muy próximo a c2, es claro que S1 debe ser pequeño
comparado con S2.
Una de las medidas del desempeño de una jerarquía de dos niveles suele medirse mediante el
cociente de aciertos “H” que se define como la probabilidad que una dirección lógica
generada por la CPU se refiere a la información almacenada en M1. El cociente de aciertos
generalmente se obtiene en forma experimental mediante la ejecución de un conjunto de
programas suficientemente representativos, o mediante la simulación de la ejecución de los
mismos, y se registra el número de referencias a M1 y M2 (denotados como N1 y N2
respectivamente). Entonces:
N1
H =
N1 + N2
Es claro que H depende fuertemente de las características del programa así como de los
algoritmos de asignación de memoria y el tamaño de M1.
Si Ta1 y Ta2 denotan los tiempos de acceso a M1 y M2 respectivamente con respecto a la CPU, el
tiempo promedio “TPA” para que la CPU acceda una palabra cualquiera en el sistema de
memoria es:
TPA = H ∗ Ta1 + (1 - H) ∗ Ta2 (3)
En la mayoría de los sistemas de dos niveles, al hacerse una referencia a una palabra que no
está en M1, un bloque completo de información es transferido a M1 desde M2. Solo cuando ésta
transferencia ha sido completada, la palabra buscada es accedida en memoria central. El
tiempo de transferencia o reemplazo de bloques “TB” es tal que:
Ta2 = Ta1 + (1 - H) ∗ TB (4)
Como la transferencia de bloques usualmente involucra operaciones de entrda-salida lentas,
entonces TB es muy grande comparado con Ta1, y similar a Ta2.
Si llamamos “r” a la relación del cociente entre los tiempos de accesos a dos niveles de
memoria:
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
42 -
T a2 T a1
r= (5) e=
(6)
T a1 TPA
Podemos indicar al factor “e” como indicador de la diferencia del tiempo de acceso promedio
respecto al primer dispositivo de la jerarquía, de la ecuación (3) obtenemos la eficiencia de los
procesos como:
1 T a1
e = (7 ) e=
r + (1 - r) ∗ H T P A

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 -

1.3.9. MEMORIAS DEL FUTURO

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.

A1.4. ARQUITECTURA DE UNA PC (Personal Computer)

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).

La tarjeta del sistema (motherboard)


La parte más importante de una PC es la tarjeta del sistema. Esta es una tarjeta grande, de
circuito impreso, que tiene los chips de silicio que hacen que funcione la PC. Estos chips
incluyen al procesador y al coprocesador matemático opcional, así como los chips de soporte
que necesita el procesador para que le ayuden a realizar su tarea, como el chip de reloj, que
marca el ritmo de trabajo para toda la computadora.
También en la tarjeta del sistema está el complemento básico de la computadora, que es la
memoria de trabajo y los chips de memoria especial de sólo lectura (ROM), con programas
integrados. Como la tarjeta del sistema es, claramente, la parte más importante de la
computadora, a veces se la llama tarjeta madre. Otro término que puede encontrarse,
especialmente leyendo literatura de IBM, es Tarjeta Planar.
La tarjeta del sistema es el componente electrónico más grande de la computadora y, por
mucho, la más grande de todas las tarjetas de circuito impreso que hay en la máquina. Esta
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
44 -
llena prácticamente todo el fondo de la caja de la unidad de sistema (CPU). El espacio que está
encima de la tarjeta del sistema es donde se colocan todos los demás componentes del
sistema.
Al frente de la unidad de sistema están las unidades de disco, disketteras, CD-ROM y,
posiblemente, una unidad de cinta. Diferentes miembros de la familia de la PC tienen diferentes
tamaños y tipos de dispositivos de almacenamiento en discos. Las unidades de disco y cinta
son las únicas partes mecánicas de la unidad de sistema y se denominan periféricos. Ellas
consumen más corriente que la mayoría de las partes electrónicas, por lo que se conectan
directamente a la fuente de poder.
Las Fuentes de Poder o de Alimentación proveen las distintas tensiones con que funciona el
sistema.
En las PCs , las distintas unidades periféricas se conectan a un conector que tiene acceso
directo a la fuente de poder, en las computadoras que siguen el diseño antiguo (todavía usado
por la mayoría de los clones compatibles con IBM), las unidades están conectadas a la fuente
de poder mediante cables.
Las unidades y la fuente de poder ocupan la mayor parte del volumen del gabinete del sistema.
La mayoría del espacio restante está reservado para partes opcionales, llamadas adaptadores
u opciones. Estas son tarjetas que se enchufan en una serie de sockets llamados ranuras de
expansión, integradas en la tarjeta de sistema. Las ranuras de expansión representan una de
las más importantes características de la PC: ARQUITECTURA ABIERTA.

Evolución histórica de la tecnología x86


En esta parte nos referiremos a la arquitectura de las computadoras, o sea la forma en que las
mismas son estructuradas sobre la placa madre.
Obviamente estos formatos han variado un gran número de veces desde que fue diseñada la
primer computadora digital, por lo tanto trataremos de especificar de por qué las mismas fueron
cambiando.
A fines de los años setenta y principio de los ochenta se logró uno de los más importantes
hechos en la historia de la computación: la miniaturización. Esto se logró con la llegada de los
microprocesadores y con ellos una nueva serie de generación de computadoras.
En el año 1978 eran las más difundidas las minicomputadoras, creadas por Tandy, Apple,
Texas Instrument (TI) y Commodore, y vendidas en su mayoría a particulares y pequeñas
empresas. Por esta razón es que IBM (que en aquel momento era reconocido por sus
Mainframes) decidió entrar en el mercado de las minicomputadoras. Fue entonces cuando se
diseñó el primer procesador 8086 el cual podía procesar hasta 16 bits (compitiendo contra los 8
bits manejados por las otras marcas) pero el cual tenía un inconveniente, y era que los
periféricos aún trabajaban con 8 bits, por lo tanto IBM produjo su primer gran éxito, el 8088, el
cual se conectaba con el mundo exterior mediante unidades de datos de 8 bits, pero que
internamente procesaba los datos en grupos de 16 bits. Es esta la llegada a principios de los
ochenta de los primeros PC’s.
Poco tiempo después que fuera introducido en el mercado este nuevo dispositivo otras
empresas importantes empezaron a fabricar sus propios PC’s “compatibles o clones”, por esto
y por otros pequeños fracasos es que IBM se vió obligada a desarrollar otra nueva línea, y es
así como a mediados de los ochenta se vuelve a la idea del 8086 y se saca al mercado la
nueva 80286, haciendo su aparición la nueva PC-AT .
Para esta nueva era de computadoras se ingresa la idea de las placas con un bus de datos de
16 bits de ancho, y un bus de direcciones de 24 bits, y llamaron al sistema de bus de la placa
madre “ISA BUS” (Industrial Standard Architecture), incrementando el espacio de direcciones a
16 Mbytes. Así también ingresan nuevas tecnologías de placas donde el usuario es capaz de
cambiar los atributos de su computadora simplemente con el hecho de sacar o poner una
tarjeta que se inserta al bus.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
45 -
El tiempo de las 286 no fue muy extenso ya que pronto ingresó al mercado el nuevo y mejorado
80386 de Intel que es el primer proveedor de procesadores de la empresa Compaq, que
alrededor del año 1986 diseña una máquina donde se podían procesar datos con una anchura
de 32 bits. La mayoría de éstos PCs incorporaban a la placa un coprocesador matemático, lo
que aumentaba aún más las velocidades del procesamiento. Pero esto produjo un
encarecimiento, no sólo por la compra del nuevo computador sino también porque los
dispositivos que se le debían adaptar que también tendrían que aceptar estos avances, por lo
que se desarrolló un procesador más barato, el 80386SX el cual podía procesar internamente
los datos con un ancho de 32 bits pero tenía hacia afuera las mismas conexiones del 80286.
A estas alturas las innovaciones tecnológicas progresaban a pasos realmente gigantescos,
pero en esta última etapa, y por una necesidad, se vería reflejado en un primer momento no en
la parte de los microprocesadores sino en su capacidad de transmitir los datos, y es así que
hace su aparición el nuevo sistema “EISA BUS” (Extended Industrial Standard Architecture) el
cual posee capacidades de Master Bus, esto significa que el procesador central no tiene por
qué ser partícipe de las acciones desarrolladas en el bus.
Las necesidades de las que hablamos se refieren a un simple hecho: nada sirve el empeño de
aumentar la velocidad en que un microprocesador puede trabajar sus datos, sin también
mejorar la capacidad de transmisión de los mismos, ya que el trabajar con 32 bits dentro del
microprocesador, pero desperdiciar tiempo de procesamiento en tratar de direccionar esos
datos, no permiten resaltar las virtudes del conjunto de la máquina.
La separación de funciones introducida con la técnica EISA llevó, como era de esperar, a una
nueva estructuración de la placa madre. El procesador central dejó de ser el elemento director
en el sistema de bus. Por eso pudo ser separado de la placa madre y ser colocado en una
placa especial para él. Con eso se creó una arquitectura abierta que permite el desarrollo
continuado del procesador mediante la instalación de una tarjeta en el sistema del computador.
Es entonces cuando aparece un nuevo microprocesador, el 80486, con un mayor poder de
integración y que trae incorporado un coprocesador que es el 80387 de INTEL , que por lo tanto
ya no está en la placa madre ni depende del bus para entrar en contacto con el procesador
central. También trae incorporado una memoria caché con el correspondiente controlador,
elementos que ya no se verán reflejados en forma de integrados en dicha placa. Esto trajo al
mercado el nuevo procesador 80486 que fuera lanzado a la venta a principios de los años
noventa.
Uno de los últimos cambios que introdujo Intel para abaratar los precios del procesador en el
mercado es la versión del bus estrecho, el INTEL 80486SX, que dispone al igual que su
hermano mayor , de un bus de 32 bits para su enlace exterior. La forma en la que está
construido corresponde a la del 486DX, con la única diferencia de que el 486SX no dispone de
coprocesador matemático. El coprocesador se sacó del chip, pero se pudo adquirirse aparte
(su nombre era el 80487SX).
En el sistema del 486 se utilizaban tres tipos diversos de placa que se denominaban placa
standard, placa altamente integrada y ‘passive blackplane’.
Una placa standard tenía una arquitectura parecida a la de una AT-286 y básicamente estaba
compuesto por los mismos, o casi de los mismos elementos, incluyendo el bus ISA.
La placa altamente integrada surgió del desarrollo de la tecnología del Laptop (computadoras
portatiles), donde lo que se perseguía era crear un sistema que ocupara el menor espacio
posible. En estos modelos no se tuvo en cuenta la posibilidad de ampliación con nuevas tarjetas
o más unidades.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
46 -

(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

(5) (6) (7) (8) (9) (10) (11) (12)

F igura A 1.37 D IA G R A M A D E B LO Q U E S D E LA A R Q U IT E C T U R A D E U N C O M P U T A D O R y486 (P C )


El tercer tipo de placa madre, llamado ‘passive blackplane’, ofrecía una arquitectura muy
abierta. En la placa madre se encuentraban, básicamente, el sistema de bus con las piezas
necesarias para su administración y sus controladores, así como un soporte básico de
memoria de trabajo. El procesador principal se encontraba en una tarjeta de procesador propia
que se conectaba a la placa madre por medio de un slot. Estos sistemas suelen disponer de
muchas conexiones para tarjetas de ampliación, lo que los hacía muy modulables y
especialmente apropiados como computador central de una red, también denominado “LAN
server” o servidor de Archivos ‘file server’.
Puesto que la arquitectura del bus EISA todavía no se encontraba al alcance de todos los
productores de computadores, y se querían lanzar al mercado rápidamente la nueva generación
de PC’s, los primeros 486 se montaron sobre el bus ISA, cuya eficiencia ya estaba probada.
Aún ahora, por ser más barato y no siendo necesario la utilización de recursos más modernos
para las aplicaciones generales, la mayoría de esta generación de computadoras se monta
sobre placas con arquitectura standard.
Pero el desarrollo del nuevo bus ofrecía a los fabricantes muchas más posibilidades de emplear
diferentes arquitecturas de la placa madre, por ofrecer el bus EISA la separación entre la
dirección del bus y el procesador central. Pronto llegarían al mercado los primeros
computadores que dispondrían de una tarjeta especial para el procesador. Acompañando a
estos avances de comunicación de datos mas rápidos, en los últimos tiempos las computadoras
con procesadores superiores al Pentium también necesitan usar nuevas generaciones de
buses, logrando así trabajar con datos de 32 bits, 64 o 128 bits. a altísimas velocidades.
Este nuevo diseño de placas, donde es factible trabajar con módulos, impulsó la fabricación por
parte de diversas marcas de nuevas arquitecturas. Por ejemplo la que Compaq creó fue uno de
los primeros modelos de PC capaces de multitarea. Se basa en la arquitectura FLEX/MP
(Flexible Advanced System Architecture with Multiprocessing Support). Este sistema permite la
instalación de dos o mas procesadores centrales en la placa de procesadores, y el campo de
aplicación sobre todo queda cubierto por sus funciones como servidor de red o computador
central multiusuario.
Los PC corrientes basan su arquitectura en un solo microprocesador. La línea de productos
desarrollada por INTEL, desde el procesador 8088 hasta el Pentium, pasando por el 80286,
80386 y el 80486, es una línea compatible siempre hacia adelante, esto es, un procesador 486
puede ejecutar sin errores el código de un programa creado para un 8088.
Estos procesadores también se llaman procesadores CISC (Complete Instruction Set
Computer). Pero debido a que diversas aplicaciones (por ejemplo el procesamiento de gráficos)
se necesitan de un complejo y muy extenso juego de instrucciones es que se saca al mercado
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
47 -
microprocesadores como el i860, el cual solo puede ejecutar un número limitado de órdenes
mecánicas. Si bien las ejecuta a gran velocidad ya que pose una integración tan compacta
como el 486, el juego de órdenes posibles de interpretar es menor, dándole el nombre a estos
procesadores RISC (Reduced Instruction Set Computer).
A manera de comentario y volviendo al tema de las placas para multiprocesamiento, existen
computadores que utilizan los dos tipos de procesadores el 486 y el 860, por ejemplo el BORSU
4860 presentado por la casa BORSU, donde el i860 fue instalado especialmente para
actividades gráficas, dándole una capacidad de gráficos ‘alucinante’. Otros diseños incorporan
hasta 64 procesadores 486, generando un multiprocesamiento en paralelo.
NOMBRE AÑO LONGITUD DEL CAPACIDAD DEL CARACTERÍSTICAS
REGISTRO BUS DE DATOS
8086 1978 16 16 Primer CPU con un integrado de 16 bits
8088 1980 16 8 Procesador usado en la PC
80286 1982 16 16 Primer PC con un bus de datos de 16 bits
80386 1985 32 32 Autentico CPU de 32 bits en un integrado
80386SX 1988 32 16 80386 con un bus de 80286
80486 1989 32 32 Versión más rápida de 386 con coprocesador incorporado

80486SX 1991 32 32 Versión más rápida de 386 sin coprocesador matemático

80486DX, 1992 32 32 Versión con relojes muy rápidos


DX2, DX4
Pentium 1994 32/64 32/64 Mezcla de RISC y CISC
Pentium Pro 1996 32/64 32/64 Mejora el anterior
Pentium II 1997 32/64 32/64 idem
Pentium MMX 1997 32/64 32/64 Agrega un set de Instrucciones Multimedia
Pentium II + 1998 32/64 32/64 Idem con interfases mejoradas
Merced 1999 64 64 Diseñado para el entorno UNIX
Tabla A1.2 familia de procesadores INTEL

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.

Conceptos básicos de bus en PC


Como se ha explicado, un bus es un conjunto de conexiones eléctricas que siguen una ruta
común en la computadora. En lugar de describir cada conexión individual separadamente, los
usuarios se refieren a todo el grupo de conexiones como el bus. Tradicionalmente se suele
distinguir entre el bus de dirección, el de control y el de datos. El bus de direcciones consiste de
tantas líneas de conexión como bits compongan el número utilizado para localizar los datos (su
dirección en memoria central). En el microprocesador 8088 el bus de direcciones tiene
solamente 20 conexiones paralelas diferentes, y cada una de ellas esta conectada desde un pin
en el microprocesador hasta un pin en la memoria en la PC. Los buses de control y de datos
son similares al bus de direcciones en cuanto a que cada señal de ellos esta conectada desde
un pin en el microprocesador hacia un pin en cada dispositivo de la PC. Mientras que el bus de
control incluye señales que indican cuando, por ejemplo, los datos están disponibles para ser
leídos, los buses de direcciones y de datos se utilizan para acceder a dispositivos y la
memoria.
Los dispositivos que se agregan a la computadora lo hacen a través de una plaqueta de
expansión que se inserta en un slot de expansión en la motherboard. En la plaqueta de
expansión se encuentran los circuitos que aumentan la funcionalidad de la PC, por ejemplo, los
modems internos o los adaptadores de red. El slot de expansión al cual se enchufan es un
conector externo que contiene pines que se comunican con el bus de control, de datos y el de
direcciones. El conjunto de las señales que conectan los slots de expansión es conocido como
el bus de expansión el cual incluye los buses de control, de datos, de dirección, así como
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
48 -
también conexiones adicionales que proveen energía y conexión a tierra para la plaqueta de
expansión.
En las primeras PCs el bus de expansión era la única forma de expandir la capacidad de
memoria y de incorporar dispositivos adicionales. Actualmente las computadoras diferencian la
memoria de los otros dispositivos y proveen buses separados para cada uno de ellos. Los slots
de expansión no han sufrido cambio alguno pero existe un bus adicional llamado bus de
memoria en la computadora que suele ser una parte integral de la motherboard.
El bus es un concepto de ingeniería que permite una arquitectura abierta que es
extremadamente importante para los usuarios y los fabricantes que deben diseñar adaptadores
que se acoplen con cualquier computadora compatible con IBM. Se diseñaron ranuras de
expansión generales, cuyos usos no estaban definidos. Lo que estaba definido era el tipo de
conexión que debía hacerse con cada una de las patas de la ranura de expansión. Un juego de
patas se destina para la corriente, por ejemplo, otro para la E/S de datos, otro para las
direcciones, etc. Todos las señales, frecuencias, tensiones, posiciones y en el aspecto
mecánico están NORMALIZADAS.

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.

Tipos de buses de expansión


1981 - Primer bus de expansión
En 1981 hace su aparición el bus de expansión original IBM PC de 8 bits y 4,77 MHz.
Posteriormente con la introducción de la IBM AT y su procesador 80286 de 16 bits, el bus
original se transforma en lo que hoy conocemos como diseño ISA (Industry Standard
Architecture), extendiéndose a 16 bits y 6 MHz.
El bus ISA se ampliaría posteriormente a 8 MHz. Este bus es compatible con el bus PC. Se le
puede utilizar igualmente con tarjetas de ampliación de 8 bits. O sea que se pueden insertar
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
49 -
indistintamente tarjetas de 8 y 16 bits. Pero eso crea el problema de como reconocerá el
procesador de que tipo de tarjeta se trata. Por ese motivo se añadieron mas líneas de control,
estas le indican por señales al procesador si la siguiente transmisión de datos ha de ser de 8 o
de 16 bits. La compatibilidad del bus ISA/ATes interesante, pero tiene la desventaja de que,
para transmitir con tarjeta de 16 bits, el procesador ha de esperar hasta recibir una señal antes
de empezar la transmisión.
El bus ISA de 16 bits es un bus de datos basado en un diseño de conector de expansión de 98
patas, emplea conectores de doble lado, es decir que cuando se le enchufa en una tarjeta de
expansión, cada posición del conector son, de hecho, dos conexiones, una en el lado A de la
tarjeta y otra en el lado B. Los conectores del lado B llevan señales como las líneas de 12 y 5
volts para la corriente, líneas de interrupción y otras . Este diseño, como se puede ver, separa
las líneas de señal y líneas de direcciones de las líneas que proporcionan corriente y otros
datos al sistema, reduciendo la posibilidad de interferencias. Generalmente no todas las tarjetas
utilizan las 98 patas; si es así el fabricante ahorra dinero eliminando la pista dorada para esa
posición de conector.
El bus ISA proporciona soporte de direccionar hasta 16 MBy, mientras que el bus de la PC solo
direcciona 1 MBy ( ya que solo tenía disponible 20 líneas de dirección: 220=1.048.576 bytes). El
incremento en la capacidad de direccionamiento fue logrado con las 4 líneas de dirección de
memoria que fueron añadidas al conector extendido de la AT (224=16.777.216 bytes) por el
80286.
Si bien se han hecho numerosos presagios acerca de su desaparición a medida que fueron
apareciendo tecnologías más avanzadas, continua siendo hoy en día el bus de expansión para
PC más popular y compatible, con algunas adecuaciones a la norma.

1987 - IBM introduce la arquitectura Microcanal (MCA)


IBM introduce el bus de arquitectura microcanal (MCA : Micro-Channel Architecture) de 16 y 32
bits en sus modelos PS/2. La característica más destacable es la absoluta incompatibilidad con
el bus ISA. Puesto que se realizó con principios nuevos, este bus era más rápido y más
sencillo. Como un bus consiste en un conjunto de líneas de señal y la definición de un bus debe
especificar el objetivo de cada línea y las relaciones de temporarización de las señales
eléctricas. IBM definió un Nuevo Standard.
El bus MCA de 16 bits está diseñado para aceptar adaptadores que tengan 58 patas (con
conectores de ambos lados). De las 116 conexiones, 16 son de datos y 24 son líneas de
dirección que permite direccionar hasta 16 MBy. Este bus es adecuado para procesadores 286
y 386 SX. Sin embargo los procesadores 386 y superiores pueden transferir hasta 32 bits a la
vez y direccionar hasta 4 GBy. Para obtener ventaja de esto se necesita un bus de 32 bits.
El bus MCA de 32 bits acepta adaptadores con 93 conectores. Hay 32 líneas de dirección que
proporcionan 232 direcciones diferentes, lo que significa que el procesador puede direccionar
hasta 4 GBy de memoria.
Una de las ventajas del MCA es que usa adaptadores que generan menos interferencia
eléctrica que los adaptadores antiguos, proporcionando por lo tanto una integridad mejorada de
datos. En segundo lugar MCA puede responder mejor a las peticiones de atención del hardware
lo que aumenta la confiabilidad y minimiza la pérdida de datos.
Los sistemas y las tarjetas MCA no necesitan ser configurados con jumpers y DIP, pues poseen
un número característico inconfundible denominado POS (Programmable Option Select). El
POS hace más fácil la instalación, ya que utiliza un archivo, el ADF (Adapter Definition File) en
el que están guardadas todas las configuraciones posibles para todas las tarjetas.
La performance de este bus resulta muy superior a la del bus ISA pero al no ofrecer
compatibilidad con la amplia gama de periféricos creados para dicha arquitectura, no tuvo el
éxito que IBM había vaticinado.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
50 -
La firma IBM anunció al MCA junto con su línea PS/2 de PC el 7 de abril de 1987. Al principio
solamente la IBM fabricaba computadoras MCA. La mayoría de los fabricantes de máquinas
compatibles con la IBM inicialmente se resistieron al cambio hacia MCA.

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.

1993 - Intel introduce PCI como alternativa a VL Bus.


El estándar PCI está diseñado y mantenido por el Peripheral Component Interconect Special
Interest Group o PCI SIG. El bus local PCI puede tener una ruta de 32 o 64 bits para
transferencias de datos de alta velocidad. El foco del PCI SIG es mantener un estándar que
pueda crecer con el diseño de hardware y también sea funcional a través de plataformas
múltiples. Como el diseño no depende de la familia 86 de procesadores, puede trabajar con las
PC actuales y con diseños futuros sin tomar en cuenta el procesador utilizado. Es un bus
intermedio es decir que no esta conectado directamente al bus de la CPU sino que actúa como
buffer, con circuitos que permiten puentear el camino entre la CPU y los periféricos. La
independencia del bus PCI del bus de la CPU posibilita que ambos corran a velocidades
diferentes.
El bus PCI es como una autopista de datos paralelos que corre a lo largo de un bus ISA, EISA,
o MCA. El procesador del sistema y la memoria se conectan directamente al bus PCI, y hay una
conexión separada a través de un puente PCI con el bus estándar(ISA, EISA,o MCA).
El diseño de 32 bits es capaz de transferir datos a velocidades de hasta 132 MBy por segundo,
mientras que el diseño de 64 bits puede transferir información a una velocidad de hasta 264
MBy por segundo. La especificación proporciona hasta 120 conexiones para una tarjeta
estándar de 32 bits y 184 para las tarjetas de 64 bits. Este es un diseño multiplexado, donde
varios tipos de señal se transportan por las mismas patas. De hecho las direcciones y los datos
están multiplexados en las mismas patas. Por lo tanto, una sola transacción del bus PCI consta
de dos fases: una de direccionamiento, seguida por una o mas fases de datos. El dispositivo
dueño envía una dirección por medio de un juego de patas. El dispositivo señalado se pone en
modo adecuado para recibir datos o instrucciones, y luego el dueño le manda una ráfaga de
datos en las mismas patas usadas para la llamada despertadora. Después de que las
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
52 -
direcciones están establecidas, el dueño puede continuar enviando datos sin necesidad de
repetir la dirección, debido a que el dispositivo de destino ya esta escuchando.
Otra característica de diseño que simplifica al bus básico es la descodificación distribuida de
direcciones. Esto significa que cada dispositivo conectado al bus local PCI, se encarga de su
propia descodificación de direcciones.
Una pieza fundamental en el diseño de PCI es el chip de puente que conecta al bus PCI al bus
del microprocesador. Los periféricos PCI son conectados directamente al bus PCI permitiendo
lograr la independencia del microprocesador. Es decir, cuando aparece un nuevo
microprocesador no es necesario modificar y reemplazar la estructura del bus y de los
periféricos conectados a él; solo es necesario reemplazar el chip que actúa como puente entre
el bus PCI y el host.
Es posible conectar al bus PCI otros buses de expansión: de esta forma, los dispositivos que
han sido diseñados para los buses mas populares pueden emplearse en los sistemas con bus
PCI.
Las plaquetas PCI cuentan con las especificaciones de configuración impresas en la memoria;
las mismas proveen información al sistema durante la etapa de booteo permitiendo que las
rutinas de BIOS puedan configurar automáticamente cada dispositivo PCI en función de los
recursos que ya están siendo utilizados por otras plaquetas. Estas características resultan en
que ya no es necesario configurar los switches o jumpers de las plaquetas.
PCI presenta muchas ventajas si se lo compara con las otras tecnologías de bus local, ya que
ofrece una performance mas elevada, mayor compatibilidad y la posibilidad de configurar
automáticamente los periféricos PCI. Además, promete ser la mejor alternativa para aprovechar
al máximo la capacidad del procesador Pentium.

Principales diferencias entre el bus VESA y PCI


1) PCI es un bus intermedio, el VL de VESA está conectado directamente al bus de la CPU. Al
aislar el bus PCI de la CPU, el diseño PCI puede soportar más dispositivos que el VL
porque los mismos no recargan el bus de la CPU.
2) Las tarjetas PCI son de menor tamaño que las de VL.
3) Las especificaciones originales de VESA y PCI describían buses de 32 bits, pero ambas han
aumentado esta barrera para coincidir con la introducción de la nueva generación de
procesadores de 64 bits.
4) Tanto el bus VESA 64 como el PCI 2.0 utilizan líneas de direcciones y datos multiplexadas.
5) Una ventaja del PCI es su configuración automática.

Memorias en PC

En una computadora, preguntar cuánta memoria es capaz de soportar es equivalente a


preguntarse cuánta memoria es capaz de direccionar. No es el límite físico del chip lo que
establece el máximo de memoria posible sino la capacidad de asignar a cada byte una
dirección diferente. En general la cantidad de Bytes están directamente relacionados por el
costo, o sea, la cantidad de “Megas” que se pueden pagar.
Existen 3 tipos de memoria en un Computador Personal:

Memoria RAM: Es un espacio de almacenamiento temporal de datos o instrucciones del


procesador. El término temporal es porque al apagar el equipo todos los datos se pierden o sea
que es volátil. Esta memoria esta dedicada a guardar programas y datos mientras la
computadora esta trabajando con ellos. La cantidad de RAM instalada determina en muchas
formas el tamaño y el alcance de las operaciones que puede realizar una computadora.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
53 -
Memoria ROM: Es un espacio de almacenamiento pregrabado de instrucciones y datos. Para el
usuario es un área de memoria permanente. Son chips grabados y no puede ser cambiado el
contenido que se encuentra en ellos .
Hay una derivación moderna de la ROM que se llama flash-rom : se pueden grabar y cambiar
los datos mediante un hardware y software especial.

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.

Introducción al chip de Memoria:


Los datos se almacenan en bytes (ocho bits), cada uno de los cuales puede tomar valor de 0 ó 1.
Las memorias contienen pequeñas celdas de bits que pueden estar con carga (valor 1) o sin
carga (valor 0). Para que la carga se mantenga constante en las celdillas se debe realizar un
proceso continuo de recargar las celdas con carga. Si no se realiza y se deja mas del tiempo
estipulado, la celda puede descargarse y pasar del valor 1 al valor 0 . Como se ha explicado,
este proceso se llama ciclo de refresco de la memoria y es el que mantiene la integridad de
los datos. Existen memorias que tienen la ventaja de no necesitar refresco y gracias a ello son
mas rápido (teniendo en cuenta la perdida de tiempo que implica el refresco). Las memorias
con refresco se llaman dinámicas y las memorias sin refresco son estáticas.

Del chip al SIMM:


Las viejas IBM PC tenían la posibilidad de agregarle hasta 256 KBy en la motherboard
utilizando chips de memoria sueltos que se instalaban en zócalos. Para expandir el equipo se
colocaban mas chips, se movían switches y se configuraba el sistema para que se utilizaran
esas memorias adicionales.
La ventaja de los zócalos con respecto a otros equipos era que las memorias ya estaban
soldadas. Sin embargo, la barrera de los 256 KBy era la limitación del equipo y sólo mediante
tarjetas especiales y bastante costosas en su momento, se podía expandir la memoria hasta los
640 KBy. De esta forma, en un espacio reducido, se podía concentrar mucho espacio de
memoria.
Los Circuitos Integrados con patitas o Chips, que se introducían en los zócalos en la plaqueta
madre son los llamados SIPs.
Los módulos de memoria que vienen en plaquetas preimpresas similares a las que se colocan
en los slots de ampliación pero mucho mas pequeños son los SIMM. Estos últimos son los mas
comunes. Si bien se ha perdido la posibilidad de reparar un solo chip (están soldados), se gana
en cambio la facilidad del recambio, precio y capacidad de ampliación en forma sencilla.
Los SIPs y los SIMMs de las PCs tienen 9 chips de memoria que conforman todo un banco. El
noveno chip se utiliza para chequeo de paridad de cada byte de memoria; y es un bit que
permite detectar errores de hardware de las memorias.
Los SIMMs se colocan en bancos. La cantidad de bancos varía de acuerdo a la arquitectura del
motherboard. Por lo tanto, dependiendo de la cantidad de bancos que haya, se puede
aumentar la memoria en la computadora. Cada motherboard tiene una combinación específica
para la distribución de los SIMMs en los bancos.
Los últimos desarrollos son las memorias SDRAM (Syncronic DRAM) ESDRAM (Enhanced
Syncronic DRAM), DDR-SDRAM ( Double Data Rate - SDRAM), RDRAM (Rambus Direct
RAM), y SLDRAM (SyncLink Direct RAM).
Las SDRAM brindan tasa de ráfagas de transferencia de datos de hasta 150 MHz que lo hacen
operar entre 10 y 20 ns.
Las ESDRAM (SRAM Mejoradas) tienen bajos tiempos de espera y alto ancho de banda
continuo.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
54 -
Para mejorar el ancho de banda, es posible transferir datos en cada ina de las transiciones del
reloj (Subida y bajada del pulso). Esta tecnología se denomina DDR tasa doble de datos que
aprovecha la DDR-SDRAM tambien llamada SDRAM II.
La memoria que revolucionará el almacenamiento es sin dudas la RDRAM desarrollada por una
pequeña firma de California llamada Rambus. Utiliza un bus de memoria de 500 MHz de 8 bits y
transferencias en ambas transiciones de reloj.
La SLDRAM fabricada por SyncLink es un nuevo standard semejante a las RDRAM con un
ancho de banda de 800 Mbits por segundo a 400 MHz con un bus de datos doble, manejado
por órdenes y orientado a paquetes de datos de 16 bits y 200 MHz.

La barrera de los 64 KBy en las PC


Todos sabemos que el número 64 KBy provienen de la cantidad máxima de memoria que
puede ser direccionada con un valor de segmento de registro que no cambia. Cuando un
programa se esta ejecutando tiene que encontrar su camino a las diferentes partes del
programa y a sus datos. Utilizando el registro de segmento de código para las partes del
programa y el de segmentos de datos para localizar los datos.
Si cualquiera de estos registros es fijo, entonces ese código de programa o datos no puede ser
mayor de los 64 KBy que puede direccionar un solo valor de segmento de 16 bits. Pero si
cualquiera de ellos puede ser cambiado dinámicamente durante la operación del programa, no
hay límite sobre el tamaño del código del programa ni los datos.

Organización de la memoria de la PC.


El sistema operativo DOS fue desarrollado para procesadores 8088 y 8086 que direccionan
hasta 1 MBy (20 bits). Para ello se dividió el espacio de direcciones completo de 1 MBy en 16
bloques de 64 KBy cada uno, se reservaron 640 KBy (10 bloques) para las aplicaciones de los
usuarios y el sistema operativo; y el resto esta destinado para la memoria del Sistema
compuesta por la que necesita el Video, la ROM del sistema y la ROMs de expansión.
Bloque Espacio de Direcciones Uso
0 1° 64 KBy Memoria común para el usuario hasta 64 KBy
1 2° 64 KBy Memoria común para el usuario hasta 128 KBy
2 3° 64 KBy Memoria común para el usuario hasta 192 KBy
3 4° 64 KBy Memoria común para el usuario hasta 156 KBy
4 5° 64 KBy Memoria común para el usuario hasta 320 KBy
5 6° 64 KBy Memoria común para el usuario hasta 384 KBy
6 7° 64 KBy Memoria común para el usuario hasta 448 KBy
7 8° 64 KBy Memoria común para el usuario hasta 512 KBy
8 9° 64 KBy Memoria común para el usuario hasta 576 KBy
9 10° 64 KBy Memoria común para el usuario hasta 640 KBy
A 11° 64 KBy Memoria de vídeo
B 12° 64 KBy Memoria de vídeo
C 13° 64 KBy Área de extensión o expansión de RAM
D 14° 64 KBy Área de extensión o expansión de RAM
E 15° 64 KBy ROM-BIOS del sistema
F 16° 64 KBy ROM-BIOS del sistema y ROM-BASIC
Tabla A1.3 Bloques y direcciones de Memoria central en una PC.

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 virtual en la PC.


Este concepto se estudia en el módulo 5
La memoria virtual es un servicio proporcionado por un sistema operativo en modo protegido
(como el OS/2 o el MS DOS ), que trabaja en conjunción con las características integradas del
procesador para usar almacenamiento externo (como un disco) y simular grandes cantidades
de memoria real.
Cuando un programa se ajusta para ejecutar en la computadora, el sistema operativo crea un
espacio de memoria virtual, que es un modelo de la cantidad de memoria y de las direcciones
de memoria que el programa tiene a su disposición. luego el programa de apoyo de la memoria
virtual del sistema operativo le dice al procesador que haga que la memoria real que tiene
asignada parezca estar en otra dirección, que es en realidad la dirección virtual que el programa
usará.
La parte mas interesante de la memoria virtual es cuando un programa trata de utilizar mas
memoria virtual que la memoria real existente.
Un programa comienza con algo de su espacio de memoria virtual (grande) mapeado en una
parte de la memoria real de la computadora (mas pequeña) .
Mientras el programa trabaja con sólo esa parte de la memoria virtual, todo funciona bien. El
programa de hecho esta usando diferentes posiciones de memoria de lo que piensa que es.
Ahora, cuando el programa trata de usar algo de la memoria virtual que no ha sido asignada a
una parte de la memoria real, la tabla de mapeo del procesador descubre que el programa esta
tratando de usar una dirección que actualmente no existe, y el procesador genera lo que se
llama una falla de página. Cuando esto ocurre entra en acción un programa de soporte especial
de la memoria virtual. Este, escoge alguna parte de la memoria virtual que esta actualmente en
la memoria real y guarda su contenido en disco temporalmente. A esto se le llama intercambio o
swapping. Esta parte de la memoria real liberada es reciclada, para que actúe como la parte
que se necesita de la memoria virtual.
Cuando se vuelve a necesitar la parte de la memoria que fue intercambiada se vuelve a copiar
del disco.

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.

Contenidos del ROM-BIOS


Todos los programas del ROM-BIOS están contenidos en forma muy compacta dentro del
área de los 128 KBy de los bloques E y F de memoria, pero la cantidad que se usa de este
bloque varía de modelo en modelo puesto que cuanto mas complejas son las computadoras
necesitan más software adecuado en el ROM-BIOS. El ROM-BIOS no puede estar ubicado en
cualquier lugar, tiene que estar en una posición única donde no entre en conflicto con otra
extensión del ROM-BIOS.
Hay tres partes principales de los programas del ROM-BIOS:
a) Programas de prueba e inicialización: se usa solamente cuando se enciende la
computadora (ya sea después de conectar la alimentación o después de hacer un reset),
ejecuta una serie de rutinas que verifican si los componentes de la computadora están en
buen estado de funcionamiento. La demora que se produce desde el momento en que se
enciende el computador hasta el momento en que el usuario comienza a trabajar es causada
principalmente por estos programas de revisión e inicialización, a los cuales suele
llamárseles autoprueba al arranque (Power On Self Test, POST).
El POST examina, por orden, los siguientes componentes:
• ROM (Read Only Memory) con la BIOS.
• RAM (memoria).
• Conectores en la placa principal (por ejemplo temporizador).
• Teclado.
• Disco duro.
• Unidades de disco.
• Busca las ampliaciones del bus del sistema con una BIOS propia (por ejemplo las
tarjetas EGA y VGA).
b) Rutinas: estos programas proporcionan el control detallado e íntimo de las diversas partes
de la computadora, en particular de los dispositivos periféricos de E/S, como las unidades de
disco, que requieren una supervisión cuidadosa. Incluye también la revisión de errores,
reintentar las operaciones para ver si el problema es solamente temporal (como
frecuentemente sucede) y solo en caso de una falla permanente, reportar el problema al
programa.
Es importante destacar que el ROM-BIOS proporciona una lista de servicios que puede ser
usado tanto por el sistema operativo como también por los programas de aplicación.
c) ROM-BASIC integrado: éste fue diseñado en la época en que las máquinas todavía no
tenían unidades de disco (usaban cintas) y obviamente no tenían sistema operativo DOS,
entonces la máquina arrancaba en BASIC utilizándolo como ambiente de operación.
Actualmente las nuevas PC no incluyen el ROM-BASIC (cabe destacar que el actual QBasic
no depende del ROM-BASIC).
El ROM-BIOS esta diseñado para controlar el hardware directamente y responder a cualquier
demanda que éste haga. La manera en que lo hace es a través de puertos (un puerto es un
conector externo que conecta una computadora con un periférico como ser modems, impresora
u otro dispositivo).
Hay muchos aspectos del hardware que no trabajan mediante puertos, ejemplo las direcciones
de memoria, en general son las partes que pueden trabajar directamente con los programas, a
estas partes el ROM-BIOS no las supervisa.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
59 -
El ROM-BIOS se ocupa también de otra funciones, como por ejemplo la temporización, o sea,
controla que los circuitos estén listos para recibir un comando puesto que entre un comando y
otro existe un tiempo para procesar dicho comando.
ABIOS: EL BIOS AVANZADO: Con las PC más recientes, el 286, el 386, el 486 y el Pentium, el
DOS ejecuta en modo real o en modo virtual 86. Esto significa que, a menos que se usen
programas de control especiales, el DOS no puede aprovecharse de las características del
modo protegido de estos procesadores, como las facilidades de memoria grande, multitareas,
etc.
Sin embargo, tales S.O. requieren una gran cantidad de soporte del sistema que el BIOS
regular no proporciona. Este soporte es proporcionado por el BIOS avanzado al que se lo llama
ABIOS.
Los 486 o Pentium con BIOS-AMI reconocen la capacidad de memoria y los componentes RAM
utilizados.
AWARD-BIOS: Las PCs con 486 o superiores con BIOS Award no sólo muestran el test de
memoria al arrancar sino que dejan correr ante sus ojos todo el programa completo POST.
BIOS-MR: Los BIOS-MR son relativamente nuevas en el mercado de las PC. Con su SETUP
está preparado para soportar las características de los modernos juegos de chips.

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.

ORGANIZACIÓN DE LOS GRUPOS DEL BIOS


Los servicios del BIOS están organizados en grupos, teniendo cada grupo su propia
interrupción dedicada. Los servicios del BIOS están identificados por un número hexadecimal.

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 IMPRESIÓN DE PANTALLA: Está diseñado para leer de la pantalla la


información que está desplegada y enviarla a la impresora. Se puede solicitar este servicio
directamente oprimiendo la tecla PrintScreen que se encuentra en el teclado. Lo que hace a
este servicio particularmente interesante es que está hecho a partir de otros servicios del ROM-
BIOS. No hace nada único por sí mismo. Sólo combina servicios para ejecutar un servicio
nuevo y útil. El servicio de impresión de pantalla no solo se obtiene oprimiendo la tecla
PrintScreen. La impresión de pantalla es un servicio estándar del ROM-BIOS que puede ser
llamado dando una INT (instrucción de interrupción (05)). La tecla PrintScreen funciona debido
a que las rutinas de teclado del ROM-BIOS monitorean la actividad del teclado para ver si se ha
oprimido esta tecla.

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.

A1.5. BREVE DESCRIPCIÓN DE MICROPROCESADORES:


ORÍGENES DE LOS MICROPROCESADORES

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.

BUSES , BYTES Y REGISTROS en PC


Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
63 -
Un bus es básicamente un canal de comunicación. En las computadoras personales IBM, el bus
está formado por una serie de cables o pistas de cobre que transmiten bits en forma paralela.
Por ejemplo, los sistemas IBM PC, XT y AT tienen tres buses: el bus de direcciones, el de datos
y el de control. En los sistemas IBM PC y XT, el bus de direcciones está formado por 20 líneas
paralelas (una para cada bit), y el de datos por 8 líneas paralelas. El bus de control tiene una
fragmentación mayor. Cada circuito integrado puede utilizar grupos selectos de cables de cada
bus que necesite para su operación. El sistema IBM AT tiene una arquitectura de bus un poco
mayor con 24 líneas de direcciones y 18 de datos.
Un byte es un grupo de n bits donde n es generalmente 8 bits.
Muchos circuitos integrados están configurados para aceptar como entrada sólo un byte; de
aquí que la estructura de los sistemas IBM PC y XT esté diseñada alrededor de un bus de datos
de ocho bits. Es costumbre especificar la memoria en bytes. La mitad de un byte (cuatro bits)
recibe el nombre de nibble mientras que un grupo de dos bytes se conoce como palabra (word).
Los microprocesadores 8086 y 8088 son microprocesadores de 16 bits porque los registros
internos de la CPU tienen una longitud de una palabra. El 80286 tiene registros muy similares y
se hace referencia a él como una computadora de 16 bits. A mediados de la década del
ochenta comenzó la tendencia hacia el uso de circuitos integrados con arquitecturas de 32 bits,
es decir de palabra doble (double word). El 80386 y el 486 son microprocesadores de 32 bits.
Actualmente los diseños permiten 64 y hasta 128 bits.

MICROPROCESADORES EN LAS PC

Decíamos que a fines de la década de 1960 y principios de la de 1970 se produce el nacimiento


del microprocesador. Este dispositivo permitió reemplazar un módulo conteniendo entre 5 y
10.000 transistores por una pequeña pieza de material semiconductor de tamaño menor de 1
cm² llamado chip. Hoy día se integran millones de transistores en un chip.

MODELO DE COMPUTADOR PC (en la figura A1.37 presentamos los módulos componentes


de una PC). Un sistema computador PC esta formado básicamente por cinco elementos:
1) Un microprocesador
2) Una memoria RAM
3) Una memoria ROM
4) Un Reloj (Clock)
5) Una interfase de dispositivo de E/S.

El microprocesador es aquel que se encarga de ejecutar instrucciones en forma ordenada,


realizar funciones aritméticas, lógicas y de control. Como el microprocesador debe comunicarse
con otros dispositivos del sistema, debe tener alguna forma de decidir cuál de ellos desea
seleccionar. El problema se resuelve agregando líneas (cables) a cada dispositivo del sistema.
Estas líneas seleccionan el dispositivo con el cual el microprocesador quiere comunicarse, y se
denominan bus de direcciones. La dirección se genera colocando algunas de las líneas en el
nivel lógico 1 y otras en el nivel lógico 0. El dispositivo que se identifique como suya esa
dirección se comunicará con el microprocesador.
Así como el microprocesador necesita direccionar el dispositivo con el que se quiere comunicar,
necesita también algún medio a través del cual transferir la información hacia o desde el
dispositivo seleccionado. Esta transferencia de información se establece a través de una serie
de líneas llamadas bus de datos.
Un tercer grupo de líneas configuran el bus de control del microcomputador. Sus líneas
controlan la secuencia de eventos en totalidad del sistema; por ejemplo, ante la presencia de un
dato sobre el bus correspondiente, es responsabilidad del bus de control informar a los
dispositivos si el microprocesador esta tratando de obtener información de alguno de ellos, o si
alguno de esos dispositivos debe almacenar la información que el microprocesador ha colocado
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
64 -
sobre el bus de datos, esto es, si se trata de una operación de información de lectura o de
escritura. El bus de control de cualquier sistema microcomputador puede cumplir distintas
funciones, que varían de un microprocesador a otro.
La cantidad y tipo de registros dependen del tipo de microprocesador. Algunos registros son:
- Registros de almacenamiento de datos.
- Contador de programa (P.C.).
- Registro índice
- Registro de puntero a pila (Stack Pointer)
- Registro de código de condición.
- etc.

LAS FAMILIAS DE MICROPROCESADORES

Microprocesadores pertenecientes al grupo de 8 bits son el 8080 de Intel, el Z-80 de Zilog y el


M-6800 de Motorola, entre los mas destacados.

MICROPROCESADOR Z-80

Para este microprocesador, el módulo de la C.P.U. consiste en un circuito integrado de 40 pines


llamado CPU Z-80.
Tal como la CPU Z-80 ejecuta un programa residente en su memoria asociada, se lee cada
instrucción en secuencia desde la memoria colocando la dirección contenida en el registro
contador de programa, (P.C.) en el bus de direcciones, generando las apropiadas señales de
control en el bus de control para activar la memoria y leyendo entonces el dato en el bus de
datos para situarlo en el registro apropiado dentro de la CPU. Las funciones de control de la
CPU coordinan estas tareas y aseguran que los códigos de operación de las instrucciones sean
colocados en el registro de instrucción y descodificados apropiadamente. Así mismo esta
función controla la ALU para que realice todas las operaciones aritméticas y lógicas soportadas
por el conjunto de instrucciones del Z-80. Estas operaciones incluyen, suma, resta, operación
lógica AND, etc.
Al realizar estas operaciones la ALU, se comunica mediante el bus de datos interno con los 22
registros internos, el registro de instrucción, y el controlador del bus de datos. Los controladores
de los buses de datos y direcciones vigilan todas las operaciones relacionadas con el
intercambio de datos entre la CPU y el mundo exterior mediante sus buses respectivos. Nótese
que mientras que el bus de datos es bidireccional, el bus de direcciones es unidireccional en la
salida de la CPU. La CPU no recibe datos desde el bus de direcciones.
El CPU del Z-80 tiene las siguientes funciones:
• AO-A15 (bus de direcciones) • DO-D7 (bus de datos)
• M1 (ciclo maquina uno) • MREQ (petición de memoria)
• IORQ (petición de E/S) • RD (lectura de memoria)
• WR (escritura de memoria) • RFSH (refresco)
• HALT (estado de paro) • WAIT (espera)
• INT (petición interrupción) • NMI (interrupción no enmascarable)
• RESET • BUSRQ (petición de bus)
• BUSAK (reconocimiento de bus)

FAMILIA DEL MICROCOMPUTADOR MC 6800

Descripción general del sistema


La unidad central de procesamiento M6800 es el núcleo de la familia, y entre los integrados de
apoyo básico se cuentan:
1) Memoria RAM MCM6810
2) Adaptador de periféricos (PIA) MC6821
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
65 -
3) Memoria ROM MCM6830
4) Adaptador asincrónico de comunicaciones (ACIA) MC6850
El microprocesador selecciona estos dispositivos a través del bus de direcciones de 16 bits,
realizándose la transferencia de información y datos a través de del bus de datos de 8 bits.
Las direcciones que aparecen sobre el bus de direcciones se generan en la unidad central de
procesamiento. Cuando el microprocesador genera una dirección, solo un dispositivo la
reconoce y se comunica con este (MP).
El bus de datos es de 8 bits y es común a todos los dispositivos.
Existe una línea de lectura/escritura, que vincula al microprocesador con todos los dispositivos.
Esta línea permite que el microprocesador controle el sentido del flujo entre dispositivos. Si la
línea toma un nivel lógico alto, el dispositivo debe enviar información al microprocesador; si la
línea esta baja, el dispositivo debe recibir información desde el microprocesador.
El sistema M6800 puede operar a frecuencias de reloj que van desde 100 KHz hasta 2MHz,
funcionando con única fuente de alimentación de 5V.

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)

Registros internos del MC 6800


- Acumulador A: El acumulador A es un registro de 8 bits que se usa como elemento de
almacenamiento temporario para las operaciones realizadas por la unidad aritmético-lógica.
- Acumulador B: El acumulador B también es un registro de 8 bits que se usa como elemento de
almacenamiento temporario para las operaciones realizadas por la unidad aritmético-lógica.
- Registro Índice (X): Este registro es de 16 bits y se usa fundamentalmente para modificar
direcciones en el modo de direccionamiento indexado. Puede, incrementarse, decrementarse,
cargarse desde memoria, almacenarse en memoria o compararse con algún valor dado por
programa.
- Contador de programa (P.C.): Registro de 16 bits que contiene la dirección del próximo byte
de la instrucción a leer de memoria. Su valor se incrementa automáticamente cada vez que se
transfiere al bus de direcciones.
- Puntero de pila (SP): registro de 16 bits que contiene una dirección de comienzo, normalmente
en memoria RAM, para almacenar el estado de los registros del microprocesador cuando éste
debe realizar otras funciones, como la atención de una interrupción o salto a subrutina. La
dirección almacenada en este registro es la dirección de comienzo de un conjunto de
posiciones de memoria ubicadas consecutivamente en la memoria RAM, en las que se
almacenan los contenidos de los registros en el siguiente orden: byte inferior de P.C., byte
superior de P.C., byte inferior de X, byte superior de X, A, B, CC
Después de almacenar en la pila el contenido de los registros, el puntero de la pila se
decrementa automáticamente. Cuando se descarga la pila la recuperación se realiza en orden
inverso al almacenamiento.
-Registros de código de condición (CC): Registro de 8 bits utilizado por las instrucciones de
bifurcación, para determinar si el microprocesador debe romper la secuencia de ejecución de
las instrucciones. Las bifurcaciones se producen (o no) de acuerdo al estado de determinados
bits del registro CC.
Otras Características del M6800
El MC6800 es un microprocesador monolítico de 8 bits. Requiere solo 5 volt de poder. Puede
manejar 64K de memoria con líneas de 16 bits.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
66 -
Las Características mas destacables son:
- Procesa 8 bits en paralelo
- Bus de datos bidireccional
- Bus de direcciones de 16 bits - 64K bytes de memoria
- 72 instrucciones
- Siete modos de direccionamiento - Directo, Relativo, inmediato, indexado, extendido,
implícito, y de acumuladores
- Tamaño de Pila variable
- Vector de interrupción enmascarable
- Interrupciones no enmascarables separadas
- Seis registros internos - 2 acumuladores, registro índice, Contador de programa, Puntero de
pila, y Registro de código de condición.
- Acceso a memoria directa y capacidad de procesador múltiple
- Características de reloj simplificado
- Velocidad de reloj 2.0 MHz.
Como consecuencia de los avances tecnológicos ha aumentado el número de transistores que
se pueden integrar dentro de una sola pastilla. Esta mayor densidad de integración ha sido
utilizada por los fabricantes para construir nuevos microprocesadores con nuevos diseños que
tienden a facilitar la programación en lenguajes de alto nivel.
En 1985 se llegó a integrar la cantidad de 1.000.000 de transistores en una pastilla y hoy en
día se alcanza la cifra de 15 millones de pequeños y diminutos transistores. En la actualidad
existen microprocesadores de 64 bits construidos con la finalidad de aprovechar al máximo las
ventajas de la capacidad de integración actual.

FAMILIA MOTOROLA 68000

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.

ARQUITECTURA DEL 68000


Dos grandes bloques de registros de 32 bits, uno destinado a datos y otro a direcciones,
constituyen los cimientos sobre los que se levanta el hardware y, consiguientemente, el
software de este microprocesador. Además, existe una unidad Lógica -Aritmética, un Registro
de estado y el registro de instrucciones, junto con la lógica de control y tiempos.
La ALU capaz de realizar operaciones lógicas y aritméticas con datos de 32 bits, incluye la
multiplicación y división, con y sin signo.
Aunque se encuadre entre los micros de 16 bits, se puede decir que es un autentico
microprocesador de 32 bits.
En este procesador se realizaron innovaciones que produjeron grandes mejoras:
• Se ha ampliado el juego de instrucciones, incorporando las propias de los micros de 16 bits,
como multiplicar y dividir.
• Se ha elevado a 14 el número de modos de direccionamiento, entre los que se encuentra
alguno de indudable operatividad.
• Adaptación del 6800 al 68000.
• Se ha permitido el manejo de datos, cuyo formateo puede variar entre 1 y 32 bits.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
67 -
• Incorporación de señales específicas como ser para manejo de periféricos y memoria
virtuales: VPA, VMA y E.
• La organización interna del 68000 es similar a la del 68008, versión de 48 patitas, con un
bus de datos de 8 líneas y un contador de programa con solo 21 bits validos.
• También Motorola diseñó una línea de procesadores denominados 88000.

FAMILIA DE MICROS INTEL:

CPU INTEL 8086


Fue el primer microprocesador de 16 bits que Intel fabricó a principios del año 1978. Los
objetivos en la arquitectura de dicho procesador fueron los de ampliar la capacidad del i-8080
de forma simétrica, añadiendo una potencia de proceso no disponible en los micros de 8 bits.
Algunas de estas características son: aritmética en 16 bits, multiplicación y división con o sin
signo, manipulación de cadenas de caracteres y operaciones sobre bits.
Realmente pensamos que el i-8086 ha sido un paso intermedio para la construcción de un
microprocesador de 32 bits que soporta directamente instrucciones del lenguaje de alto nivel
como el ADA.

CPU INTEL 8088


Características generales :
- Bus de datos externo de 8 bits.
- Bus de datos interno de 16 bits.
- Capacidad de direccionamiento de 1 MByte de memoria.
- Software directamente compatible con la CPU 8086.
- 14 registros de 16 bits.
- 24 modos de direccionamiento.
- Operaciones con byte, palabra y por bloques.
- Operaciones aritméticas con y sin signo, en binario y en decimal, de 8 y 16 bits de longitud,
incluyendo multiplicación y división.
- Compatible con los chips periféricos multiplexados 8155, 8755, 8185.

CPU INTEL 80186 Y 80188


Poco se sabe públicamente de estos procesadores de INTEL.
Estos chips incluyen el mismo set de instrucciones que los 8086 y 8088, pero con el agregado
de acceso directo a memoria (DMA) y soportes de interrupciones y timers. Al principio se
diseñaron computadoras basadas en ellos, pero no eran totalmente compatibles por lo que no
se popularizaron.
Hoy en día se utilizan mas que nada en placas de entrada/salida.

CPU INTEL 80286


El set de instrucciones del 80286 incluye todas las instrucciones de los procesadores 8086 y
8088, mas algunas adicionales.
La diferencia fundamental reside en que el bus de datos es de 16 bits, en comparación con el
del 8086/88, que tenia un bus de 8 bits y un bus de direcciones de 24 en lugar de 20 bits. Este
chip incorpora, además el manejo de la memoria en dos modos: Protegido y Real.
Trabajando en modo real el chip es compatible con los procesadores 8086/88 y puede acceder
a 1 MBy de RAM.
El modo protegido, por otra parte, es parcialmente compatible con el modo real, aunque puede
direccionar hasta 16 MBy de RAM.

CPU INTEL 80386


Este procesador agrega un set adicional de instrucciones al existente 80286 y mantiene la
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
68 -
compatibilidad con sus predecesores. Por otra parte, agrega un nuevo modo de memoria, el "86
virtual". Las instrucciones del 80386 operan tanto en un ambiente de 16 como 32 bits. Su bus
de datos de 32 bits le permite transferir el doble de bits que su predecesor.

CPU INTEL 80486


Este puede verse como tres chips en uno: la CPU - que utiliza el mismo set de instrucciones
que el 80386 - , un coprocesador matemático y un controlador de memoria cache. Además, hay
una memoria cache interna de 8 KBy incorporada, y Pipelines de instrucción.
El 386 puede definirse como un 486 de menor complejidad, así como al 486 se lo puede llamar
"un 386 más desarrollado".
Debido a que la base de estos dos procesadores es similar, y que resulta interesante analizar
en paralelo la historia de ambos, optamos por pasar a describir el 486, haciendo referencia al
386 cuando sea necesario.

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

- Escribir valor en la memoria 2 ciclos de reloj 1 ciclo de reloj

- Transferir valor entre registros 2 ciclos de reloj 1 ciclo de reloj

- Bifurcación condicional ejecutada 9 ciclos de reloj 3 ciclos de reloj

- Bifurcación condicional no ejecutada 3 ciclos de reloj 1 ciclo de reloj

- Llamada a subprograma 9 ciclos de reloj 3 ciclos de reloj

- Guardar valor de punto flotante 15 a 20 ciclos de reloj 3 ciclos de reloj


Tabla A1.4 Cuadro comparativo entre procesadores 386/387 y 486
Intel i486 Este procesador, también llamado 80486, posee registros y bus de datos de 32 bits.
Así como el 386, es capaz de trabajar en dos modos: real y protegido.
Está altamente integrado, a tal punto que contiene alrededor de 1,2 millones de transistores
distribuidos en una superficie de ¡1,7 x 1,7 cm.!. Esto se logró gracias al proceso de elaboración
utilizado por Intel llamado CHMOS-IV, con el cual es posible crear estructuras del tamaño de 1
micrón (la millonésima parte de un metro). La carcaza está compuesta de cerámica PGA, cuyas
dimensiones son de 44,83mm x 44,83 mm.
Sus componentes básicos son cuatro:
• una unidad de procesamiento compatible 80386
• una unidad aritmética compatible 80387
• dos memorias caché de 4 KBytes cada una (que luego fuera ampliada al doble)
• y los correspondientes controladores caché 82385.
Un adelanto con respecto al 386 es la incorporación de un coprocesador dentro del mismo chip,
que no es otro más que el Intel 80387, coprocesador del 386. Este cambio hace que el 486 sea
sumamente más rápido, ya que la comunicación entre el procesador y el coprocesador no
depende de un bus de datos externo, en el cual la velocidad de transferencia es varias
magnitudes menor.
El i486 contiene, además, dos memorias caché de 4 KBytes integradas en el chip, lo que
mejora su rendimiento.
Cabe mencionar que existe además la posibilidad de conectar un coprocesador adicional,
especialmente desarrollado por la empresa Weitek para el 486, conocido como WT 4167, que
es más potente que el 80387 de Intel.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
69 -
Otra ventaja que posee el 486 es que la mayoría de las instrucciones se ejecutan en 1 ciclo, o
sea que algunas operaciones como cargar datos en un registro, sumar o comparar registros, se
llevan a cabo en un solo pulso de reloj (clock).
Una "medida" del adelanto logrado con respecto al 386 es la siguiente: el 386 con su
coprocesador 80387 (bus externo de por medio) logra realizar 50.000 operaciones de punto
flotante por segundo, mientras que el 486 alcanza 400.000.
Mediante el bus de 32 bits, el 486, es capaz de direccionar 4 GigaBytes de datos (4 mil millones
de bytes). Si además se lo hace funcionar con el modo operativo virtual, puede direccionar 64
TeraBytes (64 billones de bytes) virtualmente. Estas características las hereda de su antecesor
80386.
Otra razón de supremacía es la técnica de PipeLine en cinco niveles. Esta técnica permite el
procesamiento paralelo de cinco instrucciones en diferentes niveles de ejecución (con distintas
prioridades).

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".

CPU INTEL P5 (80586)


Este procesador es el representante de la última generación.
Sus características generales son:
- contiene mas de tres millones de transistores, casi el triple de los que posee el y486. Esto
se debe a que utiliza tecnología de 0,8 micrones, en lugar de 1 micrón del 80486.
- posee un bus de datos de 64 bits.
- alcanza velocidades cercanas a los 100 MIPS.
- incorpora características de los procesadores RISC.
- su primera versión fue de 66 MHz.
- agrega una memoria cache interna de 16 KBy, dividida en cache de instrucciones y caché de
datos.
- posee una unidad de predicción de bifurcaciones.
- la mayoría de sus instrucciones se realizan en un solo ciclo de reloj, e inclusive mas de una
por ciclo de reloj. Para esto utiliza dos Pipelines de instrucción.
Luego de realizar los pasos IF(Búsqueda de instrucción de memoria central) y ID
(Descodificación de la Instrucción), el P5 decide si la instrucción puede ejecutarse en paralelo
con la instrucción siguiente. Si el procesador no detecta dependencias, se despacha una
instrucción por cada pipeline, y estas se ejecutan en paralelo.
Finalmente cabe aclarar que, para obtener la mayor cantidad de beneficios a partir de este chip
las empresas deberían recompilar su software con compiladores especiales para adaptarlo a la
nueva plataforma.

LAS ARQUITECTURAS RISC

El descubrimiento RISC se realizó en IBM, quienes en octubre de 1975, un grupo de 20


personas se puso a trabajar para implementar las ideas de John Cocke. Este había concebido
la posibilidad de obtener una computadora de alta performance en base a un diseño sencillo y
barato, apoyado por compiladores sofisticados y lenguajes de alto nivel.
Cuatro años después, habían armado un prototipo en base a simples chips ECL Motorola que
desbordaba la performance del mainframe S/370-168 (caro, voluminoso y difícil de programar).
El monopolio se perdió y fue así como en 1980, en la Cátedra de Diseño de microprocesadores
de la Universidad de California se acuñó la sigla RISC.
Para 1985 un puñado de pequeñas y medianas compañías, entraron de lleno a competir y
crecer en el mercado de las Workstation y el rango medio (intermedio entre PC y Mainframes):
Ridge, Pyramid, MIPS, Sun y HP entre otras. Para 1988 nadie compraba Workstations que no
fueran RISC; mientras tanto el IBM AS/400 quedaría como el único ejemplar sobreviviente de
CISC en el rango medio. Con los anuncios de chips RISC de Intel, Motorola y la arquitectura
POWER de IBM, se declara oficialmente que la nueva tecnología había venido para quedarse.
Las motivaciones que llevaron al RISC se pueden resumir en la afortunada coincidencia de
avances tecnológicos y demandas del mercado.

Conceptos básicos en RISC

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.

Acceso solapado al Almacenamiento


Una CPU sin microcódigo demandaba un promedio de una instrucción por ciclo y datos cada
tres ciclos. Esto impedía el uso de una caché clásica que almacena una palabra por ciclo. Por
consiguiente, se decidió dividir la tarea en una caché de instrucciones y una de datos. Y la
caché se hizo visible al programador, de modo que la responsabilidad de la sincronización
quedaba en manos del programador del Sistema Operativo.

Sistema basado en compiladores


Uno de los aspectos mas innovadores de la arquitectura RISC es su énfasis en el uso de
lenguajes de alto nivel, dando por terminada la antigua teoría de no poder concebir un Sistema
Operativo si no era en base a lenguajes de bajo nivel. Es así como se introdujo el uso de
excelentes lenguajes de alto nivel, con elaborados compiladores que incluso produjeran código
de máquina de mayor eficiencia que el alcanzable por cualquier programador.
Entonces el diseñador del compilador debía utilizar hasta el último recurso para obtener
ejecuciones de un ciclo.
Otra característica típica del RISC: dispone de muchos registros, generalmente 32, para evitar
los accesos a memoria.
No importa que con cada nuevo chip CISC se reduzcan los clocks para accesos a la memoria,
la ejecución se hace en la CPU, y la travesía de los datos desde y hacia ella está sometida a
muchos avatares.

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.

Arquitectura de la CPU SPARC.


Una arquitectura RISC básicamente consta de un conjunto de instrucciones incluidas las
funciones matemáticas de punto fijo y flotante. Para evitar el efecto “n+1”, generalmente se
transfire la responsabilidad de procesar las operaciones matemáticas a un coprocesador capaz
de trabajar en paralelo. En SPARC se definieron 74 instrucciones y 13 funciones matemáticas.
Otros agregados corresponden al manejo de coprocesadores genéricos, auxiliares no
específicos que se pueden comunicar con el coprocesador matemático. También se incorporan
instrucciones para la sincronización de cachés y para el manejo de registros especiales de
control. Por ejemplo en SPARC implementó un pipeline de cuatro etapas. Cada instrucción se
calcula para exactamente tantos clocks como etapas tiene el pipe, independientemente de su
naturaleza u orden. Cada fase comienza en el momento en que termina la anterior, entonces
en cada ciclo se completa una instrucción.
Un caso complicado lo representan los Saltos. Para ello se utiliza un delay slot para conceder a
la instrucción fuera de secuencia un clock más sin frenar al resto, un salto cuyo destino se
calcula en el momento y por ende se encuentra en el pipeline.
Ahora supongamos que la instrucción de atrás necesita un registro que va a ser llenado por la
actual. La fase de ejecución debe esperar a que termine la de Almacenamiento, perdiendo
inevitablemente un ciclo. Para evitar este inconveniente se emplean diversas estrategias. Por
ejemplo en el caso de SPARC, un optimizador reordena las cosas para escapar a este
problema. La estrategia de SPARC es generar un hardware interlock automático.
La característica más destacada del SPARC es el uso de ventanas de registros, que son
rápidos y eliminan los accesos a la memoria, ya que referenciar mas de 32 registros complica la
arquitectura. El método SPARC es hacer visible una ventana de 32 registros por vez. Cuando
llamamos un procedimiento, la ventana gira 16 registros a la derecha. Si definimos 8 registros
de entrada, 8 locales , 8 de salida y 8 globales, tendremos un protocolo automático, de tal
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
74 -
manera que un procedimiento, podrá encontrar sus parámetros en el mismo grupo dentro del
procesador. Esto nos permite utilizar un archivo de 40 hasta 520 entradas.

HP PRECISION ARCHITECTURE (PARISC)


En 1986 Hewlett Packard anunció la liberación de su primer máquina RISC, un UNIX HP9000
840. El desafío fue concebir una única arquitectura para diferentes máquinas y sistemas
operativos, fácil de escalar a través de un amplio rango de desempeño. Al resultado se lo llamo
Arquitectura de Precisión.
La especificación original de HP-PA establecía 140 instrucciones. Propone normas rectoras
para el sistema completo. El objetivo principal de los diseñadores de la CPU fue que todas las
operaciones se terminaran de ejecutar en un solo ciclo a través del pipeline.
Todas las instrucciones útiles que no cumplieran con los requisitos anteriores se trataron de
particionar en primitivas, las restantes fueron eliminadas. El conjunto seleccionado se agrupó
en formatos fijos. A diferencia de un procesador CISC, es capaz de descodificar la función en
no mas de un ciclo, a partir exactamente de los 32 bits de la instrucción.
Asignó niveles de privilegio para acceder a la memoria y al procesador, e implementaron
modificadores o instrucciones para manejar el cruce de esta frontera de seguridad.
El tercer cambio fue que se precisó el manejo de memoria, con la existencia no solo de cachés
de datos e instrucciones, sino también de las cachés de tablas para reducir memoria virtual en
física.
Lo distintivo de esta arquitectura es que no está orientada a ningún sistema operativo en
especial.
El resto de las contribuciones debemos buscarlas en el paquete de instrucciones. Se analizó la
frecuencia de operaciones realizadas por las aplicaciones del tipo Base de Datos, y se
descubrió que era posible mejorar significativamente la performance de las transferencias
mediante la modificación automática de direcciones en la misma instrucción, sin agregar
complejidad a la arquitectura.
La mayor contribución fueron las instrucciones compuestas; la mayoría de las instrucciones
caen en 3 categorías: Transformaciones, Movimientos y Control. En CISC una instrucción
ejecuta una de ellas a la vez, pero HP hizo que su set de instrucciones corriera dos tipos
dentro del mismo ciclo sin elevar perceptiblemente la complejidad.
El RISC permitió a HP ser un peso pesado de la computación. Hoy en día sus computadoras
sirven en el rango de 1 hasta 4500 usuarios con absoluta compatibilidad binaria, a través de 3
sistemas operativos y 7 generaciones de tecnologías de procesador. Tal es así que otro grande
pero de arquitecturas CISC ( y poco prolijo en RISC), como lo es Intel, se alió con Hewlett
Packard para el diseño del P7.

IBM RISC System 6000


En 1990, IBM regresó al mercado RISC, para llamar la atención en un mercado donde no se lo
identificaba con RISC. Produjo un diseño que bautizo RISC de segunda generación, hoy en día
mas conocido como Superescalar, dado que la CPU es capaz de ejecutar varias instrucciones
en paralelo.
El conjunto de instrucciones se divide en cuatro grupos: Saltos, Registro de Condición, Punto
Fijo y Punto Flotante. Para cada uno de ellos, se diseñaron unidades de ejecución específicas,
que pudieran trabajar de manera independiente de las demás.
La tarea comienza en la ICU (Unidad de Control de Instrucciones), que contiene la caché de
instrucciones, los buffers correspondientes, el Despachador, la Unidad de Saltos y la de
Registro de condición. El ancho de banda es de 128 bits.
La caché de instrucciones es capaz de leer 4 instrucciones por vez que debió organizarse con
una complicada estructura de directorio. Se agregan tag bits (bits de rótulos) para marcar el
tipo de instrucción y facilitar el trabajo del despachador del Sistema Operativo en conjunto con
un hardware específico.
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
75 -
Luego, las instrucciones son almacenadas en dos buffers: el Secuencial y el Target; el primero
tiene que ver con el flujo del programa (acumula hasta 8 instrucciones), el segundo, lee las
instrucciones del destino de los Saltos. Si el código fluye por donde se previó, las instrucciones
se transfieren del Target al Secuencial, caso contrario se purgan.
De allí se pasa al despachador, donde las instrucciones son dirigidas en paralelo pero de a una
por ciclo a su unidad correspondiente. Dos de los despachos son internos a la ICU mientras
que los otros salen del chip hacia la FXU (unidad de punto fijo) o a la FPU (unidad de punto
flotante).
La ventaja del superescalar es lograr construir la mayor cantidad de cuartetos de instrucciones,
sin repetición de tipo, para alcanzar el pico de 4 despachos por ciclo.
La comunicación entre módulos se realiza mediante un bus dedicado de 256 pistas en la FXU y
224 para la FPU.
Sin embargo no es lo mismo viajar centímetros al encuentro de un integrado vecino que
micrones en la misma pastilla del chip, ni tampoco es lo mismo trazar 32 líneas (o pistas) que
128; cuanto mas complejo sea el diseño, mas difícil será su implementación sobre el chip, no
obstante la tecnología crece y pronto se logra vencer estos escollos.

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.

Diseño con canales y superescalar


El PPC601 puede emitir hasta 3 instrucciones a la vez a tres unidades de ejecución
independientes, que corresponden a canales de unidad de enteros (IU- Integer Unit), unidad de
decisión (BU- Branch Unit), y unidad de punto flotante (FPU- Floting Point Unit). Una unidad de
instrucción separada administra el flujo de instrucciones a las unidades de ejecución. La unidad
de instrucción trae las instrucciones usando una interfase de 256 bits, las almacena en una cola
de instrucciones, y las despacha a las unidades de ejecución.
Para aumentar el rendimiento de su único canal de enteros, sus características de envío de
datos le permite entregar rápidamente los resultados de las actualizaciones de registros a las
instrucciones subsiguientes que también usen el mismo registro.
Los chips PowerPc de segunda generación utilizaran por lo menos dos canales de enteros.
Otra técnica es reclasificar las instrucciones para ejecutarlas fuera de orden. La cola de
instrucciones puede contener hasta 8 instrucciones.

Unidad de punto flotante


El canal de la FPU requiere dos etapas de ejecución por lo que necesita dos colas adicionales
de instrucciones, una para ejecutar y otra para almacenar las instrucciones de punto flotante.

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.

Alimentación del pipeline del Pentium


El procesador funciona al doble de velocidad que un equivalente 486 en códigos enteros. Pero
para poder ejecutar más instrucciones debe ser posible suministrarlas lo suficientemente rápido,
por lo tanto, una innovación muy importante es el aumento del ancho de banda disponible en
memoria, a 64 bits. Las cachés de instrucciones y de datos de 8 KBy del Pentium están
organizadas en líneas de 32 bytes y la interfase del bus puede llenar estas líneas con una sola
lectura en modalidad de ráfaga de 4 porciones de 64 bits de la memoria externa. Solo el bus de
direcciones y el grupo de registros enteros permanecen en un ancho de 32 bits.
Las cachés utilizan el método de retroescritura (Write-Thruogh) para reducir el tráfico externo
del bus y como el chip está destinado a utilizarse en multiprocesadores de memoria compartida,
la caché de datos soporta el protocolo MESI, que mantiene la coherencia entre las cachés
mediante la técnica de bus snooping (entremetido).

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.

ALGUNOS PROBLEMAS DEL RISC


Las instrucciones simples del RISC implican un desmesurado crecimiento de código.
No se concebían un compilador sin apoyarse en instrucciones compleja, esto sugería que su
expansión al código RISC conduciría a programas de dimensiones grotescas. Pero al compilar
se obtiene gran cantidad de información que se pierde dentro de la estructura estática de una
macroinstrucción. Un compilador inteligente (sagaz), puede cada vez generar un código a
medida de la situación.
En los pocos casos en que esto no es así, el programa puede llamar a una biblioteca runtime
con “microcódigo” RISC denominada millicode.

Las máquinas RISC no sirven para aplicaciones comerciales


Si bien no pueden correr lenguajes como el COBOL, ya que los datos tienden a representarse
de un modo nativo a la máquina y piden instrucciones poderosas. La solución simplemente
pasa por implementar todas las instrucciones posibles que no afectarán la complejidad del
procesador; el resto pasó a millicode. En la práctica, un programa COBOL no puede
optimizarse con la misma intensidad que un lenguaje estructurado, el resultado es que los
interpretes COBOL escritos en C, terminan corriendo con la misma velocidad que una versión
totalmente compilada.

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.

1.6 Bibliografía recomendada para éste módulo:


1. The Personal Computer from the Inside Out - Murray Sargent III and Richard L. Shoenmaker -
3rth. edition - Addison Wesley - 1994 - 720 pages.
2.The Undocumentented PC - Frank van Gilluwe - Addison Wesley - 1994 - 864 pages.
3. A History of Personal Workstations - Edited by Adele Goldberg - 1988 - ACM Press - 537 pages.
4. Microprocessors: Vol. I, II y III. Intel - 1994 -
5. Computer Organization and Architecture - Willam Stallings - 2d. Edition -
6. Introducción general a la Informatica: 1 La PC por dentro, Modelo de funcionamiento de
Computadoras - M.C. Ginzburg - Biblioteca Tecnica Superior - 1996 - 158 páginas.
7.Organización y Diseño de Computadores - La interfaz Hardware / Software - David A. Patterson &
John L. Hennessy - MC Graw Hill - 1995 - 765 páginas.
8. Organización de Computadoras - Un enfoque estructurado - Andrew S Tanenbaum - Prentice Hall -
2ª Edición - 1988 - 507 páginas.

GLOSARIO DE TERMINOS EN IDIOMA INGLÉS

Processor Microprocessing Unit Large Scale Integration


Very Large Scale Integration Hardware Software
Single Instruction Stream Single Data Stream Multiple Instruction Stream
Multiple Data Stream Array of Processors Array of Processing elements
Lowley Couplet Tightly Couplet Link
Record Read Write
Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
82 -
Address Buffer Operation
Data Server Slot
Pipe Line Pipe-line
Data Flow AND OR
XOR Add Multyply
Divide Load Store
Branch Clock Clear
Fetch Decode Reset
Switches Execute Jumpers
Set System Word
Half Double Matching
Hashing Chip Enable
Disable Strobe Flags
Overflow Zero Negative
Carry Halt Ready
Pointer Setup Time
Date Data Pointer Stack Pointer
Program Counter Instruction Pointer Data Driven Concept
Associative Search Bit Slice Tristate
Refresh Cycle First In First Out Chip select
Upgrade Last In First Out Master Bus
Micro Channel Architecture Programmable option Select Advanced Technology
Adapter Definition File Peripherical Componenent Interconect Special Interest Group
Expanded Memory System Extended Memory System Set Associative
Write through Write back Power On Self Test
Workstation Computer Aided Design Delay Slot
Persona Computer Chip Cooler Hardware interlock
Branch Target Buffer Translation Lookaside Buffer Least Recently Used
Extended Industrial Standard Architecture Motherboard Laptop
LAN Server File Server Passive Blackplane
Mainframe Host Flexible Advanced System
Architecture with Multiprocessing Suport Over Driver Bootstrapping

GLOSARIO DE TÉRMINOS EN CASTELLANO

Computador Entrada Salida


Proceso Procesador Microprocesador
Programa Algoritmo Arquitectura de Computadoras
Arquitecturas Abiertas Arquitectura Superescalar Arquitectura Escalar
Arquitectura Estática Arquitectura Dinámica Arquitectura Reconfigurable
Arquitectura Paralela Arquitectura PipeLine Arquitectura Data Flow
Tecnología de Arquitecturas Software Hardware
Instrucciones Débilmente Acoplados Fuertemente Acoplados
Operador PipeLine PipeLine Aritméticos PipeLine de Instrucciones
Seudo PipeLine Homogéneo Heterogéneo
Sistema binario Monoprocesador Multiprocesador
Punto Fijo Punto Flotante Formato
Flujo de datos Circuito Integrado Chip
Computaciones Tipo de Procesamiento Palabra
Longitud de la Palabra Tipo de Dato Tipo de Instrucciones
Registro Periférico Interrupción
Modo de direccionamiento Descodificador Secuenciador
Bit Byte Pixel
Nibble Caracter Unidad de Control
Unidad Central de Procesamiento Unidad Aritmética y Lógica Interfase de Entrada/Salida
Bus Bus Local Memoria Central
Memoria Real Memoria Protegida Punto de Memoria
Lectura de Memoria Escritura de Memoria Dirección de Memoria
Direccionamiento Tiempo de Acceso Capacidad de Memoria
Capacidad de Almacenamiento Densidad de Almacenamiento Ciclo de Memoria
Ciclo de Almacenamiento Memorias Primarias Volatilidad
Acceso Aleatorio Memoria activa Memoria pasiva
Memoria Estática Memoria dinámica Ciclo de refresco
Rango Banco de Memoria Vector
resolución Tabla Lista
Cola Flash ROM

ACRÓNIMOS USADOS EN ESTE MÓDULO

LSI Large Scale Integration UP Unidad de Procesamiento


Notas sobre Sistemas Operativos Conceptos básicos sobre Arquitecturas de Computadoras - Módulo Repaso - Parte A -
83 -
VLSI Very Large Scale Integration MPU Micro Processing Unit
E/S Entrada / Salida DP Data Pointer
I/O Input / Output SP Stack Pointer
CPU Central Processing Unit RIE Registro de Instruccion en Ejecución
SISD Single Instruction Stream Single Data Stream PLA Programmable Logic Array
MISD Multiple Instruction Stream Single Data Stream C.O. Codigo de Operación
SIMD Single Instruction Stream Multiple Data Stream OP Operación
MIMD Multiple Instruction Stream Multiple Data Stream R/W Read / Write
ALU Aritmetic Logic Unit IPL Initial Program Loader
U.C. Unidad de Control AC Acumulador
LAN Local Area Network MSD Most Significant Digit
M.C. Memoria Central LSD Last Significant Digit
S.O. Sistema Operativo EGA Enhanced Graphical Adaptador
OCCAM Lenguaje de Programación VGA Video Graphical Adaptador
PC Personal Computer PIA Periherical Interface Adaptador
P.C. Program Counter ASCIA Asyncronic Syncronic communication interface adaptador
C.I. Circuito Integrado ROM BIOS Read only Memory - Basic input Output System
RISC Reduced Instruction Set Computer ISA Industry Standard Architecture
CISC Complex Instruction Set Computer EISA Extended ISA
M.P. Módulos de Procesamiento POS Programmable Option Select
C.U. Communication Control Unit ADF Adapter Definition File
E.C.U. Execute Control unit PGA Paquete de cerámica
P.U. Processing Unit CAD Computer Aided Design
DMA Direct Memory Access MIPS Millon de Instrucciones por Segundo
ASCII American Standard Code Information Interchange FXU Fixed Point Unit
BCD Binary Coded Decimal FPU Floting Point Unit
TTL Transistor Transistor Logic PReP Plataform Reference especification for
powerPC
MOS Metal Oxid Semiconductor FXCH Instrucción del Pentium
CMOS Complementary Metal Oxid Semiconductor EX Execution unit (Pentium)
HMOS High Metal Oxid Semiconductor TLB Translation Lookaside Buffer
CHMOS Complementary High Metal Oxid Semiconductor BTB Branch Target Buffer
ECL Emisor Colector Logic PCI Peripherical Component Interconect
MNOS Metal Nitruro Oxid Semiconductor VESA Video Electronic Standard Assotiation
PAI Pedido de Atención de Interrupción MCA Micro Channel Architecture
FLIH First Level Interrupt Handler VL VESA Local Buss
INTA Interrupt Acknowledge INT Instrucción de interrupción
ICU instruction control unit D.N.A. Acido Desoxiribonucleico
AT Advanced Technology AGU Address Generator Unit
XT Extended Technology RAM Random Access Memory
ROM Read Only Memory SRAM Static Random Access Memory
DRAM Dinamic Random Access Memory EAROM Electrically Alterable ROM
PROM Programmable ROM EPROM Erasable Programmable ROM
EEROM Electrically Erasable ROM RPROM Reprogrammable ROM
Prg Programmable FIFO First In First Out
CCD Charge Cupled Device CD-ROM Compact Disc-ROM
PEPS P^rimero entrado Primero salido SIP chips de memoria para zocalos
LIFO last in First Out EDO Error Detection output
SIMM chips de memoriasoldados en plaquetas
EMS Expanded Memory System

También podría gustarte