Está en la página 1de 26

Apuntes de arquitectura de computadoras

Unidad 1 Modelo de arquitecturas de cómputo.

1.1 Modelos de arquitecturas de cómputo.

1.1.1 Arquitecturas Clásicas.


Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de vacío.
Aun son usadas en procesadores empotrados de gama baja y son la base de la mayoría de las arquitecturas
modernas

Arquitectura Mauchly-Eckert (Von Newman)

Esta arquitectura fue utilizada en la computadora ENIAC. Consiste en una unidad central de proceso que
se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los códigos
de instrucción del programa, como los datos que serán procesados por este.

Esta arquitectura es la más empleada en la actualidad ya, que es muy versátil. Ejemplo de esta versatilidad
es el funcionamiento de los compiladores, los cuales son programas que toman como entrada un archivo
de texto conteniendo código fuente y generan como datos de salida, el código máquina que corresponde a
dicho código fuente (Son programas que crean o modifican otros programas). Estos datos de salida pueden
ejecutarse como un programa posteriormente ya que se usa la misma memoria para datos y para el código
del programa.

Figura 1.1.1.2 Diagrama a bloques de la arquitectura Von Newman.

La principal desventaja de esta arquitectura, es que el bus de datos y direcciones único se convierte en un
cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria,
obligando a que todos los accesos a esta sean secuenciales. Esto limita el grado de paralelismo (acciones
que se pueden realizar al mismo tiempo) y, por lo tanto, el desempeño de la computadora.

Este efecto se conoce como el cuello de botella de Von Newman

En esta arquitectura apareció por primera vez el concepto de programa almacenado. Anteriormente la
secuencia de las operaciones era dictada por el alambrado de la unidad de control, y cambiarla implicaba
un proceso de recableado laborioso, lento (hasta tres semanas) y propenso a errores. En esta arquitectura
se asigna un código numérico a cada instrucción. Dichos códigos se almacenan en la misma unidad de
memoria que los datos que van a procesarse, para ser ejecutados en el orden en que se encuentran
almacenados en memoria. Esto permite cambiar rápidamente la aplicación de la computadora y dio origen
a las computadoras de propósito general

Mas a detalle, el procesador se subdivide en una unidad de control (C.U.), una unidad lógica aritmética
(A.L.U.) y una serie de registros. Los registros sirven para almacenar internamente datos y estado del
procesador. La unidad aritmética lógica proporciona la capacidad de realizar operaciones aritméticas y
lógicas. La unidad de control genera las señales de control para leer el código de las instrucciones,
decodificarlas y hacer que la ALU las ejecute.

Arquitectura Harvard

Esta arquitectura surgió en la universidad del mismo nombre, poco después de que la arquitectura Von
Newman apareciera en la universidad de Princeton. Al igual que en la arquitectura Von Newman, el
programa se almacena como un código numérico en la memoria, pero no en el mismo espacio de memoria
ni en el mismo formato que los datos. Por ejemplo, se pueden almacenar las instrucciones en doce bits en
la memoria de programa, mientras los datos de almacenan en ocho bits en una memoria aparte.

Figura 1.1.1.2 Diagrama a bloques de la arquitectura Harvard

El hecho de tener un bus separado para el programa y otro para los datos permite que se lea el código de
operación de una instrucción, al mismo tiempo se lee de la memoria de datos los operados de la instrucción
previa. Así se evita el problema del cuello de botella de Von Newman y se obtiene un mejor desempeño.

En la actualidad la mayoría de los procesadores modernos se conectan al exterior de manera similar a a la


arquitectura Von Newman, con un banco de memoria masivo único, pero internamente incluyen varios
niveles de memoria cache con bancos separados en cache de programa y cache de datos, buscando un
mejor desempeño sin perder la versatilidad.

1.1.2 Arquitecturas Segmentadas.


Las arquitecturas segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando
paralelamente varias etapas del ciclo de instrucción al mismo tiempo. El procesador se divide en varias
unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones.
Paracomprender mejor esto, supongamos que un procesador simple tiene un ciclo de instrucción sencillo
consistente solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución de
la instrucción. En un procesador sin segmentación del cauce, las dos etapas se realizarían de manera
secuencial para cada una de la instrucción, como lo muestra la siguiente figura.

B1 E1 B2 E2 B3 E3

Figura 1.1.2.1 Búsqueda y ejecución en secuencia de tres instrucciones en un procesador sin segmentación del cause

En un procesador con segmentación del cauce, cada una de estas etapas se asigna a una unidad funcional
diferente, la búsqueda a la unidad de búsqueda y la ejecución a la unidad de ejecución. Estas unidades
pueden trabajar en forma paralela en instrucciones diferentes. Estas unidades se comunican por medio de
una cola de instrucciones en la que la unidad de búsqueda coloca los códigos de instrucción que leyó para
que la unidad de ejecución los tome de la cola y los ejecute. Esta cola se parece a un tubo donde las
instrucciones entran por un extremo y salen por el otro. De esta analogía proviene el nombre en inglés:
Pipelining o entubamiento.

Búsqueda

Figura 1.1.2.3 Comunicación entre las unidades en un procesador con segmentación de cauce.

Completando el ejemplo anterior, en un procesador con segmentación, la unidad de búsqueda comenzaría


buscando el código de la primera instrucción en el primer ciclo de reloj. Durante el segundo ciclo de reloj,
la unidad de búsqueda obtendría el código de la instrucción 2, mientras que la unidad de ejecución ejecuta
la instrucción 1 y así sucesivamente. La siguiente figura muestra este proceso.

B1 B2 B3 B3
Unidad de búsqueda

E1 E2 E3 Unidad de ejecución

Figura 1.1.2.3 Búsqueda y ejecución en secuencia de tres instrucciones


en un procesador con segmentación del cause

En este esquema sigue tomando el mismo número de ciclos de reloj (el mismo tiempo), pero como se
trabaja en varias instrucciones al mismo tiempo, el número promedio de instrucciones por segundo se
multiplica. La mejora en el rendimiento no es proporcional al número de segmentos en el cauce debido a
que cada etapa no toma el mismo tiempo en realizarse, además de que se puede presentar competencia por
el uso de algunos recursos como la memoria principal. Otra razón por la que las ventajas de este esquema
se pierden es cuando se encuentra un salto en el programa y todas las instrucciones que ya se buscaron y
se encuentran en la cola, deben descartarse y comenzar a buscar las instrucciones desde cero a partir de la
dirección a la que se saltó. Esto reduce el desempeño del procesador y aún se investigan maneras de
predecir los saltos para evitar este problema.

Espera Espera

Búsqueda Ejecución

Figura 1.1.2.4 Consecuencias de la competencia por un recurso

1.1.3 Arquitecturas de multiprocesamiento.

Cuando se desea incrementar el desempeño más aya de lo que permite la técnica de segmentación del
cauce (limite teórico de una instrucción por ciclo de reloj), se requiere utilizar más de un procesador para
la ejecución del programa de aplicación.

Las CPU de multiprocesamiento se clasifican de la siguiente manera (Clasificación de Flynn):

● SISO – (Single Instruction, Single Operand ) computadoras Monoprocesador


● SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales, Exenciones MMX
● MISO – (Multiple Instruction, Single Operand ) No implementado
● MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters, GPUs

Procesadores vectoriales – Son computadoras pensadas para aplicar un mismo algoritmo numérico a una
serie de datos matriciales, en especial en la simulación de sistemas físicos complejos, tales como
simuladores para predecir el clima, explosiones atómicas, reacciones químicas complejas, etc., donde los
datos son representados como grandes números de datos en forma matricial sobre los que se deben se
aplicar el mismo algoritmo numérico.
La mayoría de los procesadores modernos incluye algunas instrucciones de tipo vectorial, tales como las
extensiones al conjunto de instrucciones tales como MMX y SSE. Estas instrucciones les permiten
procesar flujos multimedia más eficientemente.

Los Procesadores Digitales de Señales (DSP), son procesadores especializados en el procesamiento de


señales tales como audio, vídeo, radar, sonar, radio, etc. Cuentan con instrucciones tipo vectorial que los
hace muy aptos para dicha aplicación. Suelen utilizarse en conjunto con un microcontrolador en
dispositivos como reproductores de audio, reproductores de dvd y Blueray, teléfonos celulares, sistemas
de entretenimiento, sistemas de adquisición de datos, instrumentos médicos, controles industriales, etc.

En los sistemas SMP (Simetric Multiprocesesors), varios procesadores comparten la misma memoria
principal y periféricos de I/O, Normalmente conectados por un bus común. Se conocen como simétricos,
ya que ningún procesador toma el papel de maestro y los demás de esclavos, sino que todos tienen derechos
similares en cuanto al acceso a la memoria y periféricos y ambos son administrados por el sistema
operativo.

Pueden formarse con varios núcleos en un solo circuito integrado o con varios circuitos integrados en una
misma tarjeta madre. La primera opción ha sido popularizada al hacerse más económicos los procesadores
multinucleo de los principales fabricantes y con su uso en sistemas de gama media y baja, e inclusive en
teléfonos celulares y tabletas. La segunda opción fue la que se usó en un principio y sigue siendo usada
en en estaciones de trabajo y en servidores de alto rendimiento debido a que incrementa el poder
computacional del sistema, pero también incrementa considerablemente el costo del sistema.

Figura 1.1.3.1 Diagrama a bloques de un sistema multiprocesador simétrico

Los Clusters son conjuntos de computadoras independientes conectadas en una red de área local o por un
bis de interconexión y que trabajan cooperativamente para resolver un problema. Es clave en su
funcionamiento contar con un sistema operativo y programas de aplicación capaces de distribuir el trabajo
entre las computadoras de la red. Este tipo de computadora paralela se ha vuelto muy popular por que
permite usar los avances en los procesadores comerciales que tienen una muy buena relación costo
rendimiento y se puede incorporar rápidamente los avances que proporciona las nuevas tecnologías en
cuanto es económicamente viable.
Sin embargo, se debe tener cuidado al implementar la aplicación, ya que, si los datos que hay que pasar
de un procesador a otro son demasiados, el tiempo empleado en pasar información de un nodo a otro puede
sobrepasar a la ganancia que se tiene al dividir el trabajo entre varios procesadores.

Figura 1.1.3.2 Diagrama a bloques de un cluster

Las unidades de procesamiento gráfico (Graphics Processing Unit GPU) – sistemas diseñados
originalmente para el procesamiento de Gráficos, con múltiples procesadores vectoriales sencillos
compartiendo la misma memoria, la cual también puede ser accedida por el CPU. Por la gran cantidad de
núcleos con los que cuenta, logran un excelente desempeño al ejecutar algoritmos que se adaptan a ser
paralelizados, a tal grado que muchas de las supercomputadoras más rápidas de la actualidad utilizan estos
procesadores, y los fabricantes de tarjetas gráficas producen versiones de sus productos especializadas en
acelerar los cálculos de propósito general.

Figura 1.1.3.3 Diagrama a bloques de una unidad de procesamiento gráfico

1.2 Análisis de los componentes.

1.2.1 CPU

1.2.1.1 Arquitecturas.
Además de las Arquitecturas clásicas mencionadas anteriormente, en la actualidad han aparecido
Arquitecturas híbridas entre la Von Newman y la Harvard, buscando conservar la flexibilidad, pero
mejorando el rendimiento.
Esta escuela pretende aplicar un enfoque totalmente distinto al tradicional hasta entonces, que pasó a
conocerse como computadoras de conjunto complejo de instrucciones (CISC) para diferenciarla de la
nueva tendencia.

Se implementan instrucciones especiales que realizan funciones complejas, de manera que un


programador puede encontrar con seguridad, una instrucción especial que realiza en hardware la función
que el necesita.

Considere los siguientes fragmentos de programas:

El total de ciclos de reloj para la versión cisc debe ser:


(2 movs * 1 ciclo) + (1 mul * 30 ciclos) = 32 ciclos

El total de ciclos de reloj para la version risc debe ser:


(3 movs * 1 ciclo) + (5 adds * 1 ciclo) + (5 loops *1 ciclo) = 13 ciclos

La diferencia entre cisc y risc empieza a ser evidente por medio de la ecuación básica de la eficiencia en
cómputo:
1.2.1.2 Tipos.
Los CPUs modernos pueden clasificarse de acuerdo a varias características, tales como: el tamaño del
ALU o del Bus de conexión al exterior (8, 16, 32, 64 bits), si tienen cauce pipeline, si son tipo CISC o
RISC, Von Newmann o Harvard y si solo tienen instrucciones enteras o implementan también
instrucciones de punto flotante.

Clasificación de procesadores Intel

• ¿Qué procesador necesito?


• No hace mucho tiempo, el procesador era algo totalmente desconocido por los usuarios de PCs.
Esto fue cambiando con el tiempo y en la actualidad cualquier persona al comprar un equipo se
pregunta acerca de los atributos elementales de este dispositivo.
• Es que el procesador es una parte esencial de la computadora, por eso generalmente se la conoce
como su “cerebro”.

Procesadores Intel® para portátiles

• Lo primero a definir es qué necesidades se tienen.


• Si la movilidad o la falta de espacio son elementos claves a considerar se optará por una
computadora portátil, o laptop.
• Intel ofrece para estos dispositivos diferentes familias de procesadores según los requerimientos
de cada usuario.
• Los procesadores para portátiles calificados con 5 estrellas satisfacen la máxima exigencia móvil.
• Si eres un gamer y necesitas que tu portátil sea extremadamente potente, deberás optar por el
procesador Intel® Core™ 2 Quad Serie Q9000, los procesadores que permiten ejecutar varias
aplicaciones simultáneamente, con la posibilidad de vivir los juegos con mucho realismo y
excelente performance gráfica.
• Si consideras el acceso a Internet como lo fundamental en tu portátil, ya que la usas para trabajar
o porque disfrutas de estar conectado continuamente a las redes sociales, dispositivos de
mensajería o mundos virtuales, puedes optar por la tecnología del procesador Intel® Centrino® 2
con el procesador Intel® Core™ 2 Duo Series T9000, P9000 o SU9000.
• El ranking en las portátiles contempla algo más que la velocidad y el rendimiento. La duración de
la batería es sustancial para aquellos que utilizan su computadora fuera de casa, por eso Intel
incorporó “Deep Power Down” y otras funciones que amplían la eficiencia energética y permiten
así que puedas utilizar una portátil por más tiempo sin depender de tomacorrientes y cables.
• Para aquellos que utilizan su computadora para realizar varias tareas sencillas al mismo tiempo y
además buscan la confiabilidad de un procesador Intel, la mejor opción es un procesador
multitarea, Intel® Pentium™.

Procesadores Intel® para computadoras de escritorio

• La familia de procesadores [Intel® Core™ i7] tiene los mejores procesadores de PCs de escritoro
del mundo.
• Si eres un Hardcore gamer y pretendes que tu PC te brinde las máximas posibilidades para disfrutar
de los videojuegos o de las redes sociales el procesador para tu computadora de escritorio debe ser
el Intel® Core™ i7.
• Estos modelos también son aptos para realizar simultáneamente varias tareas complejas como el
retoque, la edición o generación de fotografías y videos.
• Otra opción, son los procesadores Intel® Core™ 2 Quad y Core™ 2 Duo.
• Con ellos Intel posibilita el máximo disfrute de los entornos y aplicaciones multimedia, algo muy
importante si se considera que videos, imágenes y música son los elementos característicos de la
experiencia digital actual.

1.2.1.3 Características.

Las características más importantes a considerar al escoger un CPU para usarlo (idealmente) en una
aplicación, son:

• Modelo del programador (Conjunto de registros que el programador puede utilizar), forman el
modelo mental del CPU que el programador utiliza al programar en ensamblador.
• Conjunto de instrucciones que puede ejecutar el CPU
• Modos de direccionamiento que pueden usarse para obtener los operandos de las instrucciones.
• Ciclo de instrucción (el conjunto de pasos que realiza el CPU para procesar cada instrucción)
• Buses de interconexión, usados para que el CPU lea y escriba a la memoria y a los dispositivos de
entrada y salida.

¿En qué casos debo seleccionar un(os) CPU(s)?

Acciones Directas

• Integrar un nuevo sistema de cómputo


• Reemplazar un cpu dañado
• Actualizar un sistema de cómputo
• Acciones Indirectas
• Comprar equipo de cómputo nuevo
• Construir un equipo de control – Microcontrolador

1.2.1.4 Funcionamiento (ALU, unidad de control, Registros y buses internos)


Todos los CPU tienen como función principal la ejecución de un programa acorde a la aplicación del
mismo.

• Un programa es un conjunto de instrucciones almacenadas de acuerdo al orden en que deben


ejecutarse.
• Por lo tanto, toda computadora debe ser capaz de procesar las instrucciones de su programa en
un ciclo de instrucción, consistente en un número de etapas que varía con cada
• CPU, pero que tradicionalmente han sido tres (trabajando en un cpu ideal):
1. Búsqueda del código de Instrucción.

• Esta consiste en leer de la memoria cual será la siguiente instrucción a ejecutar, la cual esta
almacenada en forma de un código numérico que indica cual de todas las operaciones que
puede realizar el CPU será la siguiente y con qué operandos se ejecutará.

2. Decodificación. Consiste en tomar el código numérico e identificar a cuál de las operaciones que
puede realizar el CPU corresponde dicho código.

• Esta etapa usualmente se realiza con un decodificador binario.

3. Ejecución. En esta etapa se lleva a cabo la operación sobre los datos que se vayan a procesar. En
general, la unidad de control (UC) genera las señales de control necesarias para llevar los datos a
las entradas de la Unidad Aritmética Lógica, la cual efectuará las operaciones aritméticas y lógicas.

• Posteriormente, la unidad de control generara las señales de control necesarias para transferir
la salida de la Unidad Aritmética Lógica al registro donde serán almacenados los resultados
para su uso posterior.

1.2.2 Memoria
En informática, la memoria (también llamada almacenamiento) se refiere a parte de los componentes que
forman parte de una computadora. Son dispositivos que retienen datos informáticos durante algún
intervalo de tiempo. Las memorias de computadora proporcionan una de las principales funciones de la
computación moderna, la retención o almacenamiento de información. Es uno de los componentes
fundamentales de todas las computadoras modernas que, acoplados a una unidad central de procesamiento
(CPU por su sigla en inglés, central processing unit), implementa lo fundamental del modelo de
computadora de Arquitectura de von Neumann, usado desde los años 1940.

Dispositivo basado en circuitos que posibilitan el almacenamiento limitado de información y su posterior


recuperación.

Las memorias suelen ser de rápido acceso, y pueden ser volátiles o no volátiles.

La clasificación principal de memorias son RAM y ROM. Estas memorias son utilizadas para
almacenamiento primario.

1.2.2.1 Conceptos básicos del manejo de la memoria


El tema de la memoria de la computadora se hace más manejable si clasificamos los sistemas de memoria
de acuerdo con sus características clave. Las más importantes se listan en la tabla 1.2.
Ubicación Desempeño.
CPU Tiempo de acceso.
Interna (principal) Tiempo de ciclo.
Externa (secundaria) Razón de transferencia.
Capacidad Tipo Físico.
Tamaño de la palabra Semiconductor
Numero de palabras Superficie magnética.
Unidad de Transferencia Características físicas.
Palabra Volátil / No volátil
Bloque Borrable / No borrable
Tabla 1.2. Características de los sistemas de memoria.

Iniciemos con el aspecto más visible de la memoria: su localización. Hay tanto memoria interna como
externa para la computadora. La memoria interna se considera equivalente con frecuencia a la memoria
principal. La memoria externa consiste en dispositivos periféricos de almacenamiento, tales como disco y
cinta, que son accesibles a la CPU vía controladores de E – S.

Una característica obvia de la memoria es su capacidad. Para la memoria interna, esto se expresa de
manera característica en términos de bytes (un byte = 8 bits) o palabras. Las longitudes comunes de palabra
son 8, 16 y 32 bits. La capacidad de la memoria externa se expresa típicamente en términos de bytes.

Un concepto relacionado es el de la unidad de transferencia. Para la memoria interna, la unidad de


transferencia es igual al número de líneas de datos dentro y fuera del módulo de memoria. Esto es con
frecuencia igual a la longitud de palabra, pero puede no ser así. Para esclarecer este punto, considere los
tres conceptos relacionados con la memoria interna:

• Palabra: Es la unidad “natural” de organización de la memoria. El tamaño de la palabra es casi


siempre igual al número de bits que se utilizan para representar un número y para la longitud de
instrucción.
• Unidades direccionables: En varios sistemas, la unidad direccionable es la palabra. Sin
embargo, algunos sistemas permiten el direccionamiento a nivel byte. De cualquier modo, la
relación entre la longitud “A” de una dirección y el número “N” de unidades direccionables es
2A = N.
• Unidad de transferencia: Para la memoria principal, éste es el número de bits que se leen de o
se escriben en la memoria en una sola vez. La unidad de transferencia no necesita ser igual a
una palabra o una unidad direccionable. Para la memoria externa, los datos se transfieren a
menudo en unidades mucho más grandes que una palabra, se habla entonces de bloques.

Una de las distinciones más agudas entre tipos de memoria es el método de acceso a las unidades de datos.
Pueden distinguirse tres tipos:

• Acceso Secuencial: La memoria está organizada en unidades de datos, llamadas registros. El


acceso debe hacerse en una secuencia lineal específica. Información de direccionamiento
almacenada se utiliza para separar los registros y auxiliar en el proceso de recuperación. Se
utiliza un mecanismo compartido de lectura – escritura, y este debe ser motivo de su posición
actual a la posición deseada, pasando y desechando cada registro intermedio. De este modo, el
tiempo para accesar un registro arbitrario es altamente variable. Las unidades de cinta, son de
acceso secuencial.
• Acceso Directo: Al igual que en el acceso secuencial, el acceso directo implica un mecanismo
compartido de lectura – escritura. Sin embargo, los bloques o registros individuales tienen una
dirección única que se basa en la localización física. De nuevo, el tiempo de acceso, es variable.
Las unidades de disco, son de acceso directo.
• Acceso Aleatorio: Cada localidad direccionable en la memoria tiene un mecanismo único de
direccionamiento, interalambrado físicamente. El tiempo para accesar una localidad dada es
independiente de la secuencia de accesos anteriores y es constante. Así, cualquier localidad
puede ser seleccionada de manera aleatoria y accesarse y direccionarse en forma directa. Los
sistemas de memoria principal son de acceso aleatorio.

Desde el punto de vista del usuario, las dos características más importantes de la memoria son capacidad
y desempeño. Se usan tres parámetros de desempeño:

• Tiempo de acceso: Para la memoria de acceso aleatorio, es el tiempo que le toma el efectuar
una operación de lectura o escritura, es decir, el tiempo desde el instante en que una dirección
se presenta a la memoria hasta el instante en que se han almacenado los datos o están disponibles
para su uso. Para la memoria de acceso no aleatorio, el tiempo de acceso es el tiempo que le
lleva el colocar al mecanismo de lectura – escritura en la localidad deseada.
• Tiempo del ciclo de memoria: Este concepto se aplica primeramente a la memoria de acceso
aleatorio y consiste en el tiempo de acceso más cualquier tiempo adicional que se necesita, antes
de que comience un segundo acceso.
• Razón de transferencia: Ésta es la razón a la cuál pueden transferirse datos hacia o desde una
unidad de memoria. Para la memoria de acceso aleatorio, es igual a 1 / (tiempo de ciclo).
Para la memoria de acceso no aleatorio, se mantiene la siguiente relación:

TN = TA + (N/R)

Donde:

TN = Tiempo promedio para leer o escribir N bits.


TA = Tiempo promedio de acceso.
N = Número de bits.
R = Razón de transferencia, en bits por segundo (bps).

Una variedad de tipos físicos de memoria se ha empleado. Los dos más comunes en la actualidad,
son la memoria de semiconductor, que utiliza la tecnología LSI o VLSI, y la memoria de superficie
magnética, que se utiliza para el disco y la cinta.

Varias características físicas de almacenamiento de datos son importantes. En una memoria volátil, la
información decae en forma natural o se pierde cuando la potencia eléctrica se apaga. En una memoria no
volátil, la información una vez registrada permanece sin deterioro hasta que se cambia de manera
deliberada. No se necesita potencia eléctrica para retener la información. Las memorias de superficie
magnética son no volátiles. La memoria de semiconductor puede ser volátil o no volátil. La memoria no
borrable no puede ser alterada, excepto mediante la destrucción de la unidad de almacenamiento. La
memoria de semiconductor de este tipo se conoce como memoria de solo lectura (ROM, read – only –
memory). Por necesidad, una memoria práctica no borrable también debe ser no volátil.

Para la memoria de acceso aleatorio, la organización es un asunto clave de diseño. Por organización se da
a entender el arreglo físico de los bits para formar palabras.

1.2.2.2 Memoria principal semiconductora.

Tipos de memoria de semiconductor de acceso aleatorio.

Todos los tipos de memoria que se estudiarán son de acceso aleatorio. Es decir, las palabras individuales
de la memoria se accesan en forma directa por medio de la lógica de direccionamiento interalambrada.

La tabla 1.3 lista los principales tipos de memoria de semiconductor. Él más común se conoce como
memoria de acceso aleatoria (RAM, Random Access Memory), Esto es, claro está, un error en el uso
del término, pues todos los tipos enlistados son de acceso aleatorio.

Una característica que distingue a la RAM es que permite tanto leer desde la memoria como escribir con
facilidad y rapidez información nueva en la memoria. Tanto la lectura como la escritura se logran
mediante el uso de señales eléctricas.

La otra característica distintiva de la RAM es que es volátil. Una RAM debe contar con un suministro de
energía constante. Si el suministro de energía se interrumpe, los datos se pierden. Por ello, la RAM solo
se puede usar como medio de almacenamiento temporal.

La tecnología de la RAM se ha dividido en dos: estática y dinámica. Una RAM dinámica se compone
de celdas que almacenan datos bajo la forma de cargas en capacitores. La presencia o ausencia de carga
en un capacitor se interpreta como un 1 o un 0 binario. Como los capacitores tienen una tendencia natural
a descargarse, las RAM dinámicas necesitan refrescado de cargas periódico para actualizar el
almacenamiento de datos.

En una RAM estática, los valores binarios se almacenan al usar configuraciones con compuertas lógicas
(flip – flop´s). Una RAM estática alojará los datos, siempre y cuando se le suministre energía.

La RAM estática y dinámica son volátiles. Una celda de memoria dinámica es más simple y por ello más
pequeña que una celda de memoria estática. Por eso, una RAM dinámica es más densa (celdas más
pequeñas = más celdas por unidad de área) y menos costosa que la RAM estática correspondiente. Por
otra parte, la RAM dinámica requiere el apoyo de circuitos de refrescado. Por último, las RAM estáticas,
en general, son en cierta forma más veloces que las dinámicas.

Existen varios tipos de chips de RAM dinámica. El tipo más antiguo que continua en uso es la DRAM
FPM. (Modo de página rápida, Fast Page Mode) internamente, la organización es una matriz de bits;
el hardware presenta una dirección de renglón y luego recorre las direcciones de columna.

La DRAM FPM está siendo reemplazada gradualmente por la DRAM EDO (salida de datos extendida,
Extended Data Output), que permite iniciar una segunda referencia a la memoria antes de que la anterior
se haya completado.

Este sencillo uso de conductos nos hace que una sola referencia a la memoria sea más rápida, pero si
mejora el ancho de banda de la memoria, que produce las palabras por segundo.

Tanto los chips FPM como los EDO son asíncronos, lo que significa que las líneas de dirección y de datos
no están controladas por un mismo reloj. En contraste, la SDRAM (DRAM sincrónica) es un híbrido de
RAM estática y dinámica y es controlado por un solo reloj sincrónico.

La SDRAM se usa a menudo en las caches grandes y podría ser la tecnología preferida para las memorias
principales en el futuro.

Tipo de Memoria Categoría Borrado Mecanismo de Escritura Volatibilidad


Memoria de Eléctrico a
Memoria de acceso
Lectura/ Nivel De manera Electrónica Volátil
Aleatorio (RAM)
Escritura byte
Memoria de solo
Máscaras
Lectura /ROM No es
ROM Programable Memoria de solo Posible
(PROM) lectura
ROM Programable Luz UV a
No
(EPROM) Nivel chip De
Volátil
Electrónico Manera
Memoria Flash Electrónica
Memoria de nivel bloque
PROM borrable Lectura
Eléctrico a
Eléctricamente Principalmente
nivel byte
(EEPROM)
Tabla 1.3. Tipos de Memorias de Semiconductor.

En contraposición de la RAM, está la memoria de solo lectura (ROM, Read Only Memory). Como su
nombre lo sugiere, una ROM contiene un patrón permanente de datos que no se pueden cambiar. Aunque
es posible leer una ROM, en su operación normal, no es posible escribir nuevos datos en ella.

Los datos de una ROM se insertan durante su fabricación, básicamente, exponiendo un material
fotosensible a través de una máscara que contiene un patrón de bits deseado. La única forma de modificar
el programa de una ROM es cambiar el chip.

Las ROM son mucho más económicas que las RAM, cuando se producen en grandes cantidades, pues así
el costo de elaborar una máscara se diluye. Sin embargo, estas memorias son inflexibles, porque no pueden
modificarse después de su fabricación, no hay espacio para errores, si un bit es incorrecto, todo el lote de
la ROM se debe desechar.

Una alternativa menos cara es usar la PROM (ROM Programable). Una PROM es parecida a una ROM,
excepto que puede programarse (una vez) en el campo, lo que elimina el retraso por surtido.
Muchas PROM contienen una matriz de diminutos fusibles. Un fusible específico puede quemarse
seleccionando su renglón y columna y aplicando después un voltaje alto a una terminal especial del chip.
Al igual que la ROM, la PROM no es volátil y solo se puede escribir en ella una vez. En la PROM el
proceso de escritura se ejecuta de manera eléctrica y lo puede llevar a cabo un consumidor o un distribuidor
después de la fabricación del chip original. Se requiere equipo especial en el proceso de escritura o de
“programación”. Las PROM proporcionan flexibilidad, así como ventajas. La ROM es conveniente para
altos volúmenes de producción.

Otra variante de la memoria de solo lectura es la memoria de lectura – principalmente, que es útil en
aplicaciones donde las operaciones de lectura son mucho más frecuentes que las de escritura y en las que
se requiere almacenamiento no volátil. Hay tres formas comunes de memoria de lectura – principalmente:
EPROM, EEPROM y memoria flash.

En la memoria de solo lectura programable y borrable en forma óptica (EPROM, erasable programmable
read – only – memory) se lee y se escribe de manera eléctrica, al igual que la PROM. Sin embargo, antes
de efectuar una operación de escritura, todas las celdas de almacenamiento se deben borrar hasta alcanzar
el mismo estado inicial; para ello, se expone el circuito integrado (que posee una ventana de vidrio) a una
radiación ultravioleta. Este proceso de borrado se puede realizar varias veces, cada borrado quizá tarde
algunos minutos en llevarse a cabo. Así, la EPROM se puede alterar en múltiples ocasiones y, al igual que
la ROM y la PROM, almacena los datos de manera indefinida. Para cantidades comparables de
almacenamiento, la EPROM resulta má cara que la PROM; pero tiene la ventaja de la capacidad de
actualización múltiple.

La memoria de solo lectura programable y borrable eléctricamente (EEPROM, electrically erasable


programmable read – only – memory). Es unan memoria de lectura principalmente en la cual se puede
escribir en cualquier momento, sin tener que borrar el contenido anterior; solo el byte o los bytes
diseccionados se actualizan. La EEPROM es más cara y menos densa que la EPROM, por lo que soporta
menos bits por chip.

Una de las formas más reciente de memoria de semiconductor es la memoria flash (denominada así por la
velocidad a la que se puede volver a programar). Introducida por primera vez a principios de la década de
los ochentas, la memoria flash ocupa un sitio intermedio entre la EPROM y la EEPROM, tanto en costo
como en funcionalidad. Al igual que la EEPROM, la memoria flash usa una tecnología de borrado
eléctrico. Una memoria flash completa se puede borrar en algunos segundos, por lo que es mucho más
veloz que la EEPROM. Además, es posible borrar bloques de memoria en vez de un chip completo. Sin
embargo, la memoria flash no proporciona borrado a nivel de byte. Como la EPROM, la memoria flash
sólo usa un transistor por bit y por ello logra la densidad alta (en comparación con la EEPROM) de la
EPROM.

Organización.

El elemento básico de una memoria semiconductora es la celda de memoria. Aunque se utilizan diversas
tecnologías electrónicas, todas las celdas de memoria comparten ciertas propiedades:

• Presentan dos estados estables (o semi – estables), que pueden emplearse para representar el 1
y el 0 binarios.
• Puede escribirse en ellas (al menos una vez) para fijar su contenido.
• Pueden leerse para detectar su estado.

La figura 1.4. describe el funcionamiento de una celda de memoria. Lo más común es que la celda tenga
tres terminales para transportar señales eléctricas. La terminal de selección, como su nombre lo indica,
selecciona la celda para la operación de escritura o de lectura. La terminal de control indica el tipo de
operación. Para la escritura, la tercera Terminal proporciona la señal que fija el estado de la celda a 1 o a
0. En una lectura, la tercera terminal se utiliza como salida del estado de la celda. Los detalles sobre
estructura interna, funcionamiento y temporización de la celda de memoria dependen de cada tecnología
específica de circuitos integrados. Hasta este momento, daremos por entendido que las celdas individuales
pueden seleccionarse para operaciones de lectura y de escritura.

Figura 1.4. Funcionamiento de una celda de memoria

1.2.2.3 Memoria cache


En informática, la caché es la memoria de acceso rápido de una computadora, que guarda temporalmente
las últimas informaciones procesadas.

La memoria caché es un búfer especial de memoria que poseen las computadoras, que funciona de manera
similar a la memoria principal, pero es de menor tamaño y de acceso más rápido. Es usada por
el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se
utilizan con más frecuencia.

La caché es una memoria que se sitúa entre la unidad central de procesamiento (CPU) y la memoria de
acceso aleatorio (RAM) para acelerar el intercambio de datos.

Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se
realizan a dicha copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el
microprocesador necesita leer o escribir en una ubicación en memoria principal, primero verifica si una
copia de los datos está en la caché; si es así, el microprocesador de inmediato lee o escribe en la memoria
caché, que es mucho más rápido que de la lectura o la escritura a la memoria principal.

1.2.3 Manejo de la entrada/salida


En computación, entrada/salida, también abreviado E/S o I/O (del original en inglés input/output), es la
colección de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de
procesamiento de información para comunicarse unas con otras, o las señales (información) enviadas a
través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son
las señales enviadas por ésta.

El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar
una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para
comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de
entrada de una computadora, mientras que los monitores e impresoras son vistos como dispositivos de
salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las
dos operaciones, tanto entrada como salida, y entre otros se encuentran los módems y tarjetas de red.

1.2.3.1 Módulos de entrada/salida


En primer término, hablaremos de los dispositivos de entrada, que como su nombre lo indica, sirven para
introducir datos (información) a la computadora para su proceso. Los datos se leen de los dispositivos de
entrada y se almacenan en la memoria central o interna.

Los dispositivos de entrada convierten la información en señales eléctricas que se almacenan en la


memoria central. Los dispositivos de entrada típicos son los teclados, otros son: lápices ópticos, palancas
de mando (joystick), CD-ROM, discos compactos (CD), etc. Hoy en día es muy frecuente que el usuario
utilice un dispositivo de entrada llamado ratón que mueve un puntero electrónico sobre una pantalla que
facilita la interacción usuario-máquina.

1.2.3.2 Entrada/salida programada


Los dispositivos de Entrada y Salida permiten la comunicación entre la computadora y el usuario.

1.2.3.3 Entrada/salida mediante interrupciones

El problema con E/S programada es que el CPU tiene que esperar un tiempo considerable a que el módulo
de E/S en cuestión esté preparado para recibir o transmitir los datos. El CPU debe estar comprobando
continuamente el estado del módulo de E/S. Se degrada el desempeño del sistema.

Una alternativa es que el CPU tras enviar una orden de E/S continue realizando algún trabajo útil. El
módulo de E/S interrumpirá al CPU para solicitar su servicio cuando esté preparado para intercambiar
datos. El CPU ejecuta la transferencia de datos y después continúa con el procesamiento previo.
Se pueden distinguir dos tipos: E/S síncrona y E/S asíncrona

E/S Síncrona: cuando la operación de E/S finaliza, el control es retornado al proceso que la generó. La
espera por E/S se lleva a cabo por medio de una instrucción wait que coloca al CPU en un estado ocioso
hasta que ocurre otra interrupción. Aquellas máquinas que no tienen esta instrucción utilizan un loop. Este
loop continua hasta que ocurre una insterrupción transfiriendo el control a otra parte del sistema de
operación. Sólo se atiende una solicitud de E/S por vez. El sistema de operación conoce exactamente que
dispositivo está interrumpiendo. Esta alternativa excluye procesamiento simultáneo de E/S.
E/S Asíncrona: retorna al programa usuario sin esperar que la operación de E/S finalice. Se necesita una
llamada al sistema que le permita al usuario esperar por la finalización de E/S (si es requerido). También
es necesario llevar un control de las distintas solicitudes de E/S. Para ello el sistema de operación utiliza
una tabla que contiene una entrada por cada dispositivo de E/S (Tabla de Estado de Dispositivos).

La ventaja de este tipo de E/S es el incremento de la eficiencia del sistema. Mientras se lleva a cabo
E/S, el CPU puede ser usado para procesar o para planificar otras E/S. Como la E/S puede ser bastante
lenta comparada con la velocidad del CPU, el sistema hace un mejor uso de las facilidades.

1.2.3.4 Acceso directo a memoria

El acceso directo a memoria (DMA, del inglés direct memory access) permite a cierto tipo de componentes
de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la
unidad central de procesamiento (CPU) principal. Muchos sistemas hardware utilizan DMA,
incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una
característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes
velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.

Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro.
En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA.
Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida.
Tal operación no ocupa al procesador y, por ende, éste puede efectuar otras tareas. Las transferencias
DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos.

Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí se necesita el bus del
sistema (tanto bus de datos como bus de direcciones), por lo que existen diferentes estrategias para regular
su uso, permitiendo así que no quede totalmente acaparado por el controlador DMA.
El acceso directo a memoria es simplemente eso, un acceso a memoria que se crea al particionar la
memoria en bloques del mismo tamaño.

1.2.3.5 Canales y procesadores de entrada/salida


En las entradas y salidas que se ejecutan desde el procesador entran tres conceptos que se deben conocer.

• El DMA
• Los Canales
• Y las instrucciones

DMA

Con un incremento moderado de la lógica asociada con el periférico se puede lograr transferir un bloque
de información a o desde la memoria principal sin la intervención directa de la UCP. Esto requiere que los
periféricos o los controladores de E/S sean capaces de generar direcciones de memoria y transferir datos
a o desde el bus del sistema. La UCP es todavía la responsable de iniciar la transferencia de cada bloque.
A partir de este punto el controlador de E/S realiza toda la operación sin que la UCP tenga que ejecutar
ningún otro programa. La UCP y el controlador de E/S interaccionan sólo cuando la UCP debe dar el
control del bus del sistema al controlador de E/S, como respuesta a una petición de este último. Este tipo
de capacidad es lo que se conoce como Acceso Directo a Memoria (DMA).

La mayoría de los computadores de hoy día tienen la posibilidad de interrupción y de DMA. Un


controlador de DMA posee un control parcial de la operación de E/S. La UCP puede liberarse totalmente
si se introduce en el computador un Procesador de E/S (PE/S) o canal. Análogamente al DMA, el PE/S
tiene acceso a la memoria principal y puede interrumpir a la UCP, sin embargo, puede emplear un
repertorio de instrucciones diferentes del de la UCP (ya que está orientado a operaciones de E/S).

CANALES

El canal de E/S es una extensión del concepto de DMA. Un canal de E/S tiene la capacidad de ejecutar
instrucciones de E/S, lo que da un control total sobre las operaciones de E/S.

Las instrucciones de E/S se almacenan en la memoria principal y serán ejecutadas por un procesador de
propósito específico en el mismo canal de E/S.

1.2.4 Buses
En arquitectura de computadores, el bus (o canal) es un sistema digital que transfiere datos entre los
componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito
impreso, dispositivos como resistores y condensadores además de circuitos integrados.

En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la
comunicación entre las partes del computador se hacía por medio de cintas o muchas pistas en el circuito
impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo
únicamente puertos de entrada y de salida para cada dispositivo.

La tendencia en los últimos años se hacía uso de buses seriales como el USB, Firewire para
comunicaciones con periféricos reemplazando los buses paralelos, incluyendo el caso como el del
microprocesador con el chipset en la placa base. Esto a pesar de que el bus serial posee una lógica compleja
(requiriendo mayor poder de cómputo que el bus paralelo) a cambio de velocidades y eficacias mayores.

Existen diversas especificaciones de que un bus se define en un conjunto de características mecánicas


como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.
1.2.4.1 Tipos de buses
Existen dos grandes tipos clasificados por el método de envío de la información: bus paralelo o bus serie.

Bus paralelo.

Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda de varias líneas que
tienen funciones fijas. La cantidad de datos enviada es bastante grande con una frecuencia moderada y es
igual al ancho de los datos por la frecuencia de funcionamiento. En los computadores ha sido usado de
manera intensiva, desde el bus del procesador, los buses de discos duros, tarjetas de expansión y de vídeo,
hasta las impresoras.

Diagrama de un Bus Backplane como extensión del bus de procesador.

El front-side bus de los procesadores Intel es un bus de este tipo y como cualquier bus presenta unas
funciones en líneas dedicadas:

• Las líneas de dirección son las encargadas de indicar la posición de memoria o el dispositivo con
el que se desea establecer comunicación.
• Las líneas de control son las encargadas de enviar señales de arbitraje entre los dispositivos. Entre
las más importantes están las líneas de interrupción, DMA y los indicadores de estado.
• Las líneas de datos transmiten los bits de forma aleatoria de manera que por lo general un bus tiene
un ancho que es potencia de 2.

Un bus paralelo tiene conexiones físicas complejas, pero la lógica es sencilla, que lo hace útil en sistemas
con poco poder de cómputo. En los primeros microcomputadores, el bus era simplemente la extensión del
bus del procesador y los demás integrados "escuchan" la línea de direcciones, en espera de recibir
instrucciones. En el PC IBM original, el diseño del bus fue determinante a la hora de elegir un procesador
con I/O de 8 bits (Intel 8088), sobre uno de 16 (el 8086), porque era posible usar hardware diseñado para
otros procesadores, abaratando el producto.

Bus serial

En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas de software.
Está formado por pocos conductores y su ancho de banda depende de la frecuencia. Es usado desde hace
menos de 10 años en buses para discos duros, unidades de estado sólido, tarjetas de expansión y para el
bus del procesador.
Otra clasificación especifica que las líneas de buses pueden separarse en dos tipos genéricos: dedicadas
y multiplexadas.

Tipo Anchura del bus


Dedicado Dirección
Multiplexado Datos
Método de arbitraje Tipo de transferencia de datos
Centralizado Lectura
Distribuido Escritura
Temporización Leer – modificar – escribir
Síncrona Leer – después – escribir
Asíncrona Bloque
Tabla 1.1. Elementos de diseño de buses.

Línea de bus Dedicada.

Es a la cual se asigna permanentemente ya sea a una función o a un subconjunto físico de componentes de


la computadora.

Un ejemplo de dedicación funcional es el uso de líneas de dirección y de datos separados dedicados, lo


cual es común para muchos buses.

La dedicación física se refiere al uso de múltiples buses, cada uno de los cuáles conecta solo un
subconjunto de módulos. Un ejemplo característico es el uso de un bus de E – S para interconectar todos
los módulos de E – S; este bus se conecta al bus principal por medio de algún tipo de módulo adaptador
de E – S. La ventaja potencial de la dedicación física es un rendimiento alto, debido a que hay menos
contención de bus. Una desventaja, sin embargo, es el incremento en el tamaño y costo del sistema.

Línea de bus Multiplexada.

Otro ejemplo es que la información de datos y de dirección puede transmitirse sobre el mismo conjunto
de líneas usando una línea de control de dirección valida. A este método de usar las mismas líneas para
múltiples propósitos se le conoce como multiplexeo en tiempo.

La ventaja del multiplexeo en tiempo es el uso de muy pocas líneas, lo cual ahorra espacio y, casi siempre,
costo. La desventaja es que se necesita circuitería más compleja dentro de cada módulo. También hay una
disminución potencial en el desempeño ya que ciertos sucesos que comparten las mismas líneas no pueden
tener lugar en paralelo.

Método de arbitraje.

En todos, excepto en los sistemas demasiado simples, más de un módulo podría necesitar control, del bus.
Por ejemplo, un módulo de E – S puede necesitar leer o escribir directo a memoria, sin enviar los datos a
la CPU. Puesto que solo una unidad a la vez puede transmitir con éxito sobre el bus, se necesita algún
método de arbitraje. Los diversos métodos pueden clasificarse como centralizados o distribuidos. En un
esquema centralizado, un solo dispositivo de hardware, al que se hace referencia como controlador del
bus o árbitro, es responsable de asignar tiempo en el bus. El dispositivo puede ser un módulo separado o
parte de la CPU. En un esquema distribuido, no hay un controlador central. En su lugar, cada módulo
contiene lógica de control de acceso y los módulos actúan juntos para compartir el bus. Con ambos
métodos de arbitraje, el propósito es designar a un dispositivo como maestro (o amo), ya sea la CPU o un
módulo de E – S. Entonces, el maestro puede iniciar una transferencia de datos (lectura o escritura, por
ejemplo) con algún otro dispositivo, el cuál actúa como esclavo para éste intercambio en particular.

Temporización.

La temporización se refiere a la forma en la que se coordinan los eventos en el bus. Con la temporización
síncrona, la ocurrencia de los eventos en el bus está determinada por un reloj. El bus incluye una línea de
reloj sobre la cuál un reloj transmite una secuencia regular de unos y ceros alternados de igual duración.
A una transmisión simple 1 – 0 se le conoce como un ciclo de reloj o ciclo de bus y define una ranura de
tiempo. Todos los otros dispositivos en el bus pueden leer la línea de reloj y, por consiguiente, todos los
eventos inician al principio de un ciclo de reloj. Otras señales de bus pueden cambiar en el flanco de subida
de la señal de reloj (con una ligera reacción de retraso).

Con una temporización asíncrona, la sucesión de un evento en un bus sigue y depende de la ocurrencia de
un evento previo.

La temporización síncrona es más sencilla para implantar y probar. Sin embargo, es menos flexible que la
temporización asíncrona. Como todos los dispositivos en un bus síncrono están sujetos a una frecuencia
de reloj fija, el sistema no puede tomar ventaja de avances en el desempeño del dispositivo. Con la
temporización asíncrona, una mezcla de dispositivos lentos y rápidos puede compartir un bus, usando una
tecnología antigua y nueva.

Anchura del bus.

La anchura del bus de datos tiene un impacto en el desempeño del sistema: entre más amplio sea, mayor
será el número de bits que se transfieran a la vez. La anchura del bus de dirección tiene un impacto en la
capacidad del sistema: entre más amplio sea, más grande será el rango de localidades que puedan ser
referenciadas.

Tipos de transferencia de datos.

Todos los buses soportan transferencias tanto de escritura (maestro a esclavo) como de lectura (esclavo a
maestro). En el caso de un bus multiplexado de dirección – datos, primero se utiliza el bus para especificar
la dirección y después para la transferencia de datos. Para una operación de lectura, hay por lo general una
espera mientras el esclavo está buscando los datos para colocarlos en el bus. Para una lectura o escritura,
también puede haber un retraso si es necesario pasar por el arbitraje a fin de ganar el control del bus para
el resto de la operación (por ejemplo, apoderarse del bus para solicitar una lectura o una escritura, después
apoderarse él otra vez para llevar a cabo una lectura o escritura).

En el caso de buses dedicados de dirección y de datos, la dirección se coloca en el bus de dirección y


permanece ahí mientras que los datos se colocan en el bus de datos. Para una operación de escritura, el
maestro pone los datos en el bus de datos tan pronto como la dirección se ha estabilizado y el esclavo ha
tenido la oportunidad de reconocer su dirección. Para una operación de lectura, el esclavo pone los datos
sobre el bus de datos tan pronto como ha reconocido su dirección y ha buscado los datos.

También existen varias combinaciones de operaciones que algunos buses permiten. Una operación de
lectura – modificar – escritura es tan sólo una lectura seguida de inmediato por una escritura a la misma
dirección. La dirección sólo se emite una vez al principio de la operación. Toda la operación como un
todo es indivisible para prevenir el acceso de otros maestros potenciales de bus al elemento de datos. El
propósito principal de esta capacidad es el proteger recursos de memoria compartida en un sistema de
multiprogramación.

Lectura – después – escritura es una operación indivisible que consiste en una escritura seguida de
inmediato por una lectura de la misma dirección. La operación de lectura bien puede ejecutarse para
propósitos de cualquier verificación.

Algunos sistemas de bus también soportan la transferencia de un bloque de datos. En este caso, un ciclo
de dirección es seguido por n ciclos de datos. El primer ítem de los datos se transfiere a o desde la dirección
especificada; los ítems de datos restantes son transferidos a o desde direcciones subsecuentes.

1.2.4.2 Estructura de los buses

Estructura de un bus:

• Líneas de datos:
• Líneas de dirección
• Líneas de control

Datos:

• Llevan datos y también comandos para los dispositivos de entrada / salida.


• Su amplitud influye en el rendimiento del bus
• Relacionado con el tamaño de palabra del sistema

Direcciones:

• Llevan direcciones de memoria en acceso a memoria, o permiten seleccionar un dispositivo


conectado al bus.
• Su amplitud determina el espacio de direcciones tanto de memoria como entrada / salida

Control:

• Son señales de control de acceso y uso del bus.


• Arbitraje del bus
• Sincronización de las comunicaciones
• Reloj del sistema

1.2.4.3 Jerarquías de buses

Tendencia a utilizar múltiples buses debido a que:

• Degradación del rendimiento a medida que aumenta el número de dispositivos colgados al


bus.
• "Cuello de botella" de las comunicaciones debido a los tiempos de espera para acceder al bus.

Por ellos se introducen múltiples buses basando la jerarquía en los requerimientos de comunicación de
los dispositivos:

• Bus local: Conecta al procesador con la cache y con algún dispositivo e/s muy rápido.
• Bus del sistema: Conecta al procesador (a través de la cache) con la memoria del sistema y
con un segundo nivel de dispositivos de velocidad media.
• Bus de expansión: Se conecta al bus del sistema y hace de interfaz entre este y los dispositivos
más lentos
1.2.5. Interrupciones
En el contexto de la informática, una interrupción (del inglés Interrupt Request, también conocida como
petición de interrupción) es una señal recibida por el procesador de un ordenador, indicando que
debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta
situación.

Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una
subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa, sino que
pertenece al sistema operativo o al BIOS. Una vez finalizada dicha subrutina, se reanuda la ejecución del
programa.

Las interrupciones surgen de la necesidad que tienen los dispositivos periféricos de enviar información al
procesador principal de un sistema informático.

La primera técnica que se empleó para esto fue el polling, que consistía en que el propio procesador se
encargara de sondear los dispositivos periféricos cada cierto tiempo para averiguar si tenía pendiente
alguna comunicación para él. Este método presentaba el inconveniente de ser muy ineficiente, ya que el
procesador consumía constantemente tiempo y recursos en realizar estas instrucciones de sondeo.

El mecanismo de interrupciones fue la solución que permitió al procesador desentenderse de esta


problemática, y delegar en el dispositivo periférico la responsabilidad de comunicarse con él cuando lo
necesitara. El procesador, en este caso, no sondea a ningún dispositivo, sino que queda a la espera de que
estos le avisen (le "interrumpan") cuando tengan algo que comunicarle (ya sea un evento, una transferencia
de información, una condición de error, etc.).
Hay tres tipos de interrupciones: Reset del sistema, no enmascarables (NMI) y enmascarables.

Las enmascarables puedes ser habilitadas o deshabilitadas individualmente o mediante el flag e


habilitación general (GIE). Son generadas por periféricos con capacidad de interrumpir.

En cambio, las no enmascarables sólo puedes ser habilitadas o deshabilitadas individualmente (NMIIE,
ACCVIE, OFIE). El flag de habilitación general no les afecta.

Cuando una NMI es aceptada, todos los bits de NMI son automáticamente reseteados. La ejecución del
programa empieza en la dirección almacenada en el vector de NMI, 0FFFCh.

Una NMI puede ser generada por tres fuentes: Un flanco en el pin RST/NMI cuando está configurado en
modo NMI; un fallo en el oscilador o condiciones de error con el cristal oscilador; violación acceso a la
memoria flash, cuando se quiere leer o borrar el flash desde la memoria RAM mientras BUSY=1, escritura
del registro de control 1 (FCTL1) mientras WAIT=0 o escritura registro de control 2 (FTL2) mientras
BUSY=1.

Cuando una interrupción es requerida por un periférico, está habilitada la interrupción y el bit GIE=1, se
salta a la rutina de servicio a la interrupción. En el caso de NMI sólo hace falta que esté a 1 el bit de
habilitación individual.

Aceptación de una Interrupción. El tiempo de aceptación de una interrupción son seis ciclos de reloj,
contando desde la aceptación de la petición de interrupción hasta el inicio de la primera instrucción de la
rutina de servicio a la interrupción.

1) Finaliza instrucción en ejecución, si la interrupción está habilitada y el bit GIE=1 se acepta la


interrupción.
2) Se pone en pila PC.
3) Se pone en pila SR.
4) Se selecciona la interrupción más prioritaria de las que pidan servicio.
5) El flag de petición de interrupción es reseteado automáticamente. Los demás flags siguen pidiendo
interrupción.
6) El SR es limpiado a excepción del SCG0, el cual no cambia. Esto termina cualquier modo de bajo
consumo.
7) El contenido del vector de interrupción es volcado en PC, el programa continuo con la ejecución
de la rutina de servicio a la interrupción.

Vuelta de una Interrupción. La interrupción debe terminar con la instrucción: RETI. El retorno tarda 5
ciclos en ejecutar las siguientes acciones:

1) SR es retornado de pila
2) PC es tomado de pila y empieza la ejecución en la siguiente instrucción donde fue interrumpido

Anidamiento de Interrupciones. El anidamiento de una interrupción es habilitado si se acepta el bit


GIE=1 dentro de la rutina de servicio a la interrupción, ya que GIE ha sido puesto a 0 al resetear SR.

También podría gustarte