Arquitectura de Computadoras
INSTITUTO TECNOLÓGICO SUPERIOR DE URUAPAN
Arquitectura de Computadoras
ING. RAÚL PAZ ÁLVAREA
DIRECTOR GENERAL
M.E. GABRIEL MANCERA HUANTE
DIRECTOR ACADÉMICO
ING. J. JESÚS TREJO CEJA
SUBDIRECTOR ACADÉMICO
ING. JUAN MIGUEL ANDRADE PADILLA
COORDINACIÓN ACADÉMICA EN LÍNEA
LDG. ALEJANDRO MADRIGAL
DISEÑO GRÁFICO
NOMBRE QUIEN REVISA
REVISIÓN
CONTENIDO:
ING. RAFAEL VEGA HERNANDEZ
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 2
Arquitectura de Computadoras
ÍNDICE
Contenido
ÍNDICE ............................................................................................................ 3
1.-ARQUITECTURAS DE COMPUTO ........................................................... 5
1.1.- MODELOS DE ARQUITECTURAS DE COMPUTO ............................... 5
1.1.1.- CLASICAS ........................................................................................... 7
1.1.1.- SEGMENTADAS ................................................................................. 7
1.1.3.- DE MULTIPROCESAMIENTO ............................................................. 7
1.2.- ANALISIS DE LOS COMPONENTES .................................................... 9
1.2.1.- CPU ..................................................................................................... 9
1.2.1.1.- ARQUITECTURAS ........................................................................... 9
1.2.1.2.- TIPOS ............................................................................................. 11
1.2.1.3.- CARACTERISTICAS ...................................................................... 11
1.2.1.4.- FUNCIONAMIENTO ....................................................................... 12
1.2.2.- MEMORIA.......................................................................................... 16
1.2.2.1.- CONCEPTOS BASICOS DEL MANEJO DE LA MEMORIA ........... 16
1.2.2.2.- MEMORIA PRINCIPAL SEMICONDUCTORA ............................... 18
1.2.2.3.- MEMORIA CACHE ......................................................................... 19
1.2.3.- MANEJO DE LA ENTRADA/SALIDA ................................................. 19
1.2.3.1.- MODULOS DE ENTRADA/SALIDA ................................................ 20
1.2.3.2.- ENTRADA/SALIDA PROGRAMADA .............................................. 21
1.2.3.3.- ENTRADA/SALIDA MEDIANTE INTERRUPCIONES..................... 21
1.2.3.4.- ACCESO DIRECTO A MEMORIA .................................................. 22
1.2.3.5.- CANALES Y PROCESADORES DE ENTRADA/SALIDA ............... 22
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 3
Arquitectura de Computadoras
1.2.4.- BUSES............................................................................................... 23
1.2.4.1.- TIPOS DE BUSES ......................................................................... 23
1.2.4.2.- ESTRUCTURA DE LOS BUSES .................................................... 24
1.2.4.3.- JERARQUIAS DE LOS BUSES ...................................................... 24
1.2.5.- INTERRUPCIONES ........................................................................... 26
BIBLIOGRAFÍA ............................................................................................. 30
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 4
Arquitectura de Computadoras
UNIDAD 1
ARQUITECTURAS DE COMPUTADORA
¿Qué es una computadora?
Es una maquina electrónica capaz de almacenar información y tratarla automáticamente
mediante operaciones matemáticas y lógicas controladas por programas informáticos.
¿Qué es una arquitectura?
La arquitectura de una computadora representa un sistema que integra diferentes
componentes organizados en diferentes niveles independientes unos de otros en cuanto a
estructura, pero conservando la interdependencia desde el nivel más alto hasta el nivel más
bajo en torno a su funcionamiento.
MODELOS DE ARQUITECTURAS DE CÓMPUTO
Arquitectura Von Newmann
Esta arquitectura fue usada 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 esto 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. Estos datos de salida pueden ejecutarse como un
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 5
Arquitectura de Computadoras
programa posteriormente ya que se usa la misma memoria para datos y para
el código del programa.
Ventajas
Aparece por primera vez el concepto de programa almacenado
Se asigna un código numérico a cada instrucción
El CPU se subdivide en ALU y unidad de control
Desventajas
Bus de datos y direcciones único – Cuello de botella de Von Newmann
Todos los accesos son secuenciales
Se limita el grado de paralelismo
Arquitectura Harvard
Esta arquitectura surgió en la universidad que lleva su mismo nombre, poco
después de que la arquitectura Von Newmann apareciera por la universidad
de Princeton. Al igual que en la arquitectura Von Newmann, 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.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 6
Arquitectura de Computadoras
CLASICAS
Estas arquitecturas se desarrollan en las primeras computadoras
electromecánicas y de tubos de vacío (bulbos). Aun son usadas en
procesadores empotrados de gama baja y son la base de la mayoría de las
arquitecturas modernas.
SEGMENTADAS
Aparecieron a mediados de los años 60’s como una manera de aumentar el
rendimiento sin implicar un nivel masivo de paralelismo, durante los 80’s fueron
una de las ideas centrales de los procesadores RISC, buscando alcanzar el
objetivo de que se ejecutara una instrucción cada ciclo de máquina.
En ingles se conocen como PIPELINED PROCESSORS y consiste en dedicar
unidades específicas del procesador a cada una las partes del ciclo de
instrucción y ejecutarlas paralelamente, lo cual mejora drásticamente el
rendimiento debido a que en los procesadores modernos tienen hasta 14
etapas en el ciclo de instrucción.
DE MULTIPROCESAMIENTO
Cuando se desea incrementar el desempeño más allá de lo que permite la
técnica de pipeline (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.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 7
Arquitectura de Computadoras
Los CPU’s de multiprocesamiento se clasifican de la siguiente manera:
SISO
SIMO
MISO
MIMO
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 de forma matricial sobre los
que se deben aplicar el mismo algoritmo numérico.
Sistemas SMP (procesadores simétricos)
En los sistemas SMP varios procesadores comparten la misma memoria
principal y periféricos de Entrada/Salida, 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, donde ambos son administradores
por el sistema operativo.
Clusters
Son un conjunto de computadoras independientes conectadas en una red de
área local o por un bus de interconexión y que trabajan cooperativamente para
resolver un problema. Es clave para su funcionamiento contar con un S.O. y
programas de aplicación capaces de distribuir el trabajo entre las
computadoras de la red.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 8
Arquitectura de Computadoras
ANALISIS DE LOS COMPONENTES
CPU
ARQUITECTURAS
Además de las arquitecturas clásicas antes mencionadas, en la actualidad han
aparecido arquitecturas hibridas entre la Von Newmann y la Harvard,
buscando conservar la flexibilidad, pero mejorando el rendimiento.
El cambio más importante de los últimos años en diseño de las computadoras
se dio en los años 80’s, con la aparición de la corriente de diseño conocida
como computadoras de conjunto reducido de instrucciones (RISC).
Esta escuela pretende aplicar un enfoque totalmente distinto al tradicional
hasta entonces, que pasó a conocerse como computadoras de conjuntos
complejos de instrucciones (CISC) para diferenciarla de la nueva tendencia.
La tendencia tradicional, representada por las arquitecturas CISC (Complex
Instruction Set Computing), se caracteriza por tener un número amplio de
instrucciones y modos de direccionamiento.
Se implementan instrucciones especiales que realizan funciones complejas,
de manera que un programador puede encontrar con seguridad, una
instrucción especial que realiza en hardware la función que el necesita.
El número de registros del CPU es limitado, ya que las compuertas lógicas del
circuito integrado se emplean para implementar las secuencias de control de
estas instrucciones especiales.
Los compiladores de lenguajes de alto nivel no hacían uso de las instrucciones
especiales implementadas en los procesadores CISC, por lo que resultaba un
desperdicio de recursos emplear las compuertas del circuito de esta forma, por
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 9
Arquitectura de Computadoras
lo que se decidió que era mejor emplear estos recursos en hacer que las pocas
instrucciones que realmente empleaban los compiladores se ejecutaran lo más
rápido posible.
Así surgió la escuela de RISC (Reduced Instruction Set Computing) donde solo
se cuenta con unas pocas instrucciones y modos de direccionamiento, pero se
busca implementarlos de forma muy eficiente y que todas las instrucciones
trabajen con todos los modos de direccionamiento, además se observó que
una de las tareas que tomaban más tiempo en ejecutarse en lenguajes de alto
nivel, era el pasar los parámetros a las subrutinas a través de la pila.
Como la forma más rápida de hacer este paso es por medio de registros del
CPU, se buscó dotarlo con un amplio número de registros, a través de los
cuales se pueden pasar dichos parámetros.
CISC vs RISC
Considere los siguientes fragmentos de programas:
CISC RISC
Mov ax,10 Mov ax,0
Mov bx,5 Mov bx,10
Mul bx,ax Mov cx,5
Begin add ax,bx
Loop Begin
Total de ciclos de reloj
(2 mov * 1 ciclo) (3 mov * 1 ciclo)
+ (1 mul * 30 ciclos) + (5 add * 1 ciclo)
= 32 cliclos + (5 loops * 1 ciclo)
= 13 ciclos
Resumen
CISC RISC
Unas cuantas instrucciones simples Muchas instrucciones más complejas
Instrucciones de longitud fija Instrucciones de longitud variable
Complejidad en el compilador Complejidad en el microcodigo
Acceso a la memoria solo con instrucciones Muchas instrucciones pueden accesar la memoria
load/store
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 10
Arquitectura de Computadoras
Muy pocos modos de direccionamiento Muchos modos de direccionamiento
La diferencia entre CISC y RISC empieza a ser evidente por medio de la
ecuación básica de la eficiencia en cómputo.
TIPOS
Los CPU pueden clasificarse de acuerdo a varias características, tales como
el tamaño de la ALU o del BUS de conexión al exterior (8, 16, 32 y 64 bits), si
tienen cauce pipeline, si son tipo CISC o RISC, Von Newmann y Harvard y si
solo tienen instrucciones enteras o implementan también instrucciones de
punto flotante.
CARACTERISTICAS
Las características más importantes a considerar al escoger al CPU para
usarlo 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 QUE CASOS SE DEBE SELECCIONAR UN CPU?
Acciones directas
Integrar un nuevo sistema de cómputo
Reemplazar un CPU dañado
Actualizar un sistema de cómputo
Acciones indirectas
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 11
Arquitectura de Computadoras
Comprar equipo de cómputo nuevo
Construir un equipo de control – Microcontrolador
ESTRUCTURA INTERNA
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, una
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.
Búsqueda del código de instrucción
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 que
operandos se ejecutara.
Decodificación
Consiste en tomar el código numérico e identificar a cuál de las operaciones
que puede realizar el CPU corresponde a dicho código. Esta etapa usualmente
se realiza con un decodificador binario.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 12
Arquitectura de Computadoras
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 por la Unidad Aritmético Lógica
(ALU), la cual efectuara las operaciones matemáticas y lógicas.
Posteriormente, la UC generara las señales de control necesarias para
transferir la salida de la ALU al registro donde serán almacenados los
resultados para su uso posterior.
CICLO DE INSTRUCCIÓN
Es importante recordar que cada instrucción del programa se almacena en
memoria como un número binario. Este número se conoce como código de
instrucción y usualmente se divide en al menos en dos campos: un código de
operación (opcode) y un número que representa el operando u operandos de
la instrucción.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 13
Arquitectura de Computadoras
Cada instrucción se almacena en una de las 4096 palabras de memoria de 16
bits cada una.
Se utiliza un formato de un solo operando, con un segundo operando en el
acumulador cuando es necesario.
Los cuatro bits más significativos de los 16 bits de la palabra se dedican a
almacenar el código de operación.
Los doce bits menos significativos se dedican a almacenar la dirección del
operando.
La siguiente tabla nos resume los códigos de operación de la computadora.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 14
Arquitectura de Computadoras
ACC
Acumulador, se usara para almacenar uno de los operandos y el resultado de
varias de las instrucciones.
MAR
(Memory Address Register) Registro de Dirección de Memoria, selecciona a
qué localidad de memoria se va a leer o a escribir.
MBR
(Memory Bus Register) Registro de Bus de Memoria, a través de él se lee y se
escriben datos.
PC
(Program Counter) Contador de Programa, almacena la dirección de la
siguiente instrucción a buscar. Por esta razón también es conocido como
apuntador de instrucciones.
IR
Registro de Instrucción, guarda el código de la instrucción que se está
ejecutando.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 15
Arquitectura de Computadoras
Flags
Registro de banderas, agrupa a todas las banderas de la ALU en un registro.
DIAGRAMA A BLOQUES DEL CPU
MEMORIA
CONCEPTOS BASICOS DE MEMORIA
Una memoria es un dispositivo que puede mantenerse en por lo menos dos estados
estables por un cierto periodo de tiempo.
Cada uno de estos estados estables puede utilizarse para representar un bit.
A un dispositivo con la capacidad de almacenar por lo menos un bit se le conoce como
celda básica de memoria.
Un dispositivo de memoria completo se forma de varias celdas básicas y los circuitos
asociados para poder leer y escribir dichas celdas básicas, agrupadas como
localidades de memoria que permitan almacenar un grupo de N bits.
El número de bits que puede almacenar cada localidad de memoria es conocido como
el ancho de palabra de la memoria.
Coincide con el ancho del bus de datos.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 16
Arquitectura de Computadoras
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 17
Arquitectura de Computadoras
MEMORIA PRINCIPAL SEMICONDUCTORA
Existen dos categorías principales:
ROM (Read Only Memory)
Es aquella memoria de almacenamiento que permite solo la lectura de la
información y no su destrucción, independientemente de la presencia o no de
una fuente de energía que la alimente.
Los datos se almacenan de forma permanente o semipermanente, son
memorias no volátiles.
RAM (Random Access Memory)
Se tarda lo mismo en acceder a cualquier dirección de memoria, capacidad de
lectura y escritura, son memorias volátiles y existen dos tipos de memoria RAM
que son:
SRAM (Estáticas)
Utiliza flip-flops para almacenar celdas.
Rapidez de acceso a los datos.
Tecnología con la que se implementan las memorias cache.
Dos tipos: síncronas y asíncronas de ráfaga, la diferencia consiste en el uso de la señal
de reloj del sistema para sincronizar todas las entradas.
Modo ráfaga en las SRAM síncronas, lee o escribe en varias posiciones de memoria
(hasta 4) utilizando una única dirección. También está presente en las DRAM.
DRAM (Dinámicas)
Memorias más lentas que las SRAM, bajo costo y mayor capacidad de
almacenamiento.
Requiere refrescar de manera periódica ya que el condensador se descarga.
Tiempo de ciclo es mayor al tiempo de acceso
Multiplexación de direcciones, ahorro de pines en los chips de memoria.
Asíncronas y síncronas, intercambio de señales entre la memoria y el procesador o
utilización de una señal de reloj.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 18
Arquitectura de Computadoras
MEMORIA CACHE
Básicamente es un tipo de memoria volátil (tipo RAM), pero de una gran
velocidad, que está integrada en el procesador, existen muchas memorias
cache (de disco, de sistema, de datos, etc.) y está diseñada para servir el
apropiado y organizado almacenamiento de información de una computadora,
su función es mantener de manera temporal y accesible aquellos datos que
son requeridos para realizar determinadas funciones o tareas. Esta
disponibilidad permite que cada programa o archivo tenga acceso inmediato a
la información necesaria.
TIPOS DE MEMORIA CACHE
Cache de 1er nivel (L1).- Está integrada en el núcleo del procesador trabajando a la
misma velocidad que este y la cantidad de memoria cache de este nivel va desde los
64 Kb y los 256 Kb, esta memoria a su vez se divide en dos partes dedicadas, una para
instrucciones y otra para datos.
Cache de 2do nivel (L2).- Está integrada en el procesador aunque no directamente en
el núcleo, tiene las mismas ventajas que la L1 aunque es más lenta, suele ser mayor
pudiendo llegar a superar los 2 Mb, no está dividida y su utilización esta mas
encaminada a programas que al sistema.
Cache de 3er nivel (L3).- Es más lenta que la L2, muy poco utilizada en la actualidad,
en un principio estaba incorporada en la placa base no en el procesador y su velocidad
de acceso es bastante más lenta que la L1 y L2 ya que si bien sigue siendo una
memoria de gran rapidez (muy superior a la RAM) depende de la comunicación que
existe entre el procesador y la placa base.
MANEJO DE LA ENTRADA SALIDA
Una computadora no puede estar formada solamente por CPU y Memoria,
para darle utilidad debe comunicarse con el exterior a través del subsistema
de Entrada/Salida (I/O – Input/Output), donde la misión del subsistema de E/S
es adaptar los dispositivos externos antes de conectarlos al bus del sistema.
Existen 2 formas de implementar la E/S en una computadora:
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 19
Arquitectura de Computadoras
Construir a medida el subsistema utilizando elementos básicos.
Incorporar y programar dispositivos estándares más complejos y genéricos.
FUNCIONES
DIRECCIONAMIENTO.- Selección del dispositivo correspondiente de entre los
dispositivos disponibles del sistema.
SINCRONIZACION.- Posibilita que la CPU y la memoria (Alta velocidad) se
puedan comunicar con los dispositivos de E/S (baja velocidad), sincronizando
los envíos de datos entre ambos.
TRANSFERENCIA.- El sistema de E/S debe tener toda la circuitería y señales
de comunicación apropiadas para llevar a cabo la comunicación con cada uno
de los dispositivos del sistema.
MODULOS DE ENTRADA/SALIDA
La E/S se implementa mediante dispositivos periféricos. Un periférico se puede
definir como:
Un elemento que permite la transferencia de información entre la CPU y el mundo
exterior.
Interfaz que traduce la información asíncrona y analógica del mundo exterior a la
información síncrona y codificada de la computadora.
Dos partes: Modulo de E/S y dispositivo externo.
El módulo de E/S coordina el correcto flujo de información entre uno o varios
dispositivos externos (impresora, monitor, etc.) e internos (memoria,
procesador, etc.) y entre las funciones que realiza se dan las siguientes:
Reconoce la dirección de la CPU que identifica al dispositivo externo.
Transfiere datos entre la CPU y el dispositivo externo.
Recibe comandos desde la CPU.
Mantiene información de estado del periférico y mantiene el protocolo de
comunicaciones con el periférico.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 20
Arquitectura de Computadoras
Un módulo de E/S puede controlar varios dispositivos externos, almacena
datos temporalmente, debido a las diferencias de velocidad entre los
periféricos y la CPU o la memoria, dispone de un mecanismo de detección de
errores tales como el uso del bit de paridad.
ENTRADA/SALIDA PROGRAMADA
La CPU tiene el control absoluto de la operación de E/S (inicia y lleva a cabo
la transferencia) y está dedicándose por completo a realizar tanto la
comprobación de estado como la transferencia e inicialización.
ENTRADA/SALIDA MEDIANTE INTERRUPCIONES
La E/S le indica al CPU cuando está preparada para transferir datos (genera
una interrupción al CPU), activando una línea especial, conectada al CPU
(línea de interrupción)
FUNCIONAMIENTO
1. El procesador ejecuta instrucciones de un programa, al finalizar cada instrucción
comprueba si se ha producido una interrupción.
2. En caso afirmativo se salva el estado actual del programa (contador del programa y
registros) y se salta a ejecutar la rutina de servicio correspondiente.
3. La rutina de servicio efectúa las operaciones apropiadas de E/S para realizar la
transferencia de datos solicitada.
4. Al finalizar la rutina de servicio se recupera el estado de la CPU y se continúa
ejecutando el programa que se estaba ejecutando antes de la interrupción.
Las interrupciones pueden ser enmascarables (se pueden atender por medio
de software) o no enmascarables (siempre atendidas) y existen dos maneras
de conocer la dirección/posición (vector) donde se encuentra la rutina de
servicio de la interrupción que es el vector de interrupciones siempre fijo o que
el periférico suministra el vector de interrupción.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 21
Arquitectura de Computadoras
Generalmente existen varios periféricos que pueden realizar interrupciones lo
cual obliga a establecer prioridades y decidir cómo se conectan al CPU,
también es necesario determinar para cada periférico su vector de
interrupción.
ACCESO DIRECTO A MEMORIA
El DMA (Direct Memory Access) es un procesador/controlador especializado
en transferencias muy grandes desde periféricos a memoria y viceversa, es
programable, lo que significa que la CPU no realiza ninguna tarea (solo
programar el DMA) ya que la inicialización y transferencia son gobernadas por
el periférico. Para programar el DMA hay que enviar algunos datos como:
Dirección/Puerto periférico E/S
Posición/Dirección en memoria principal
Tamaño (número de bytes a transferir)
Tipo transferencia ya sea lectura o escritura.
Al finalizar el DMA avisa mediante una interrupción, esta interrupción al igual
que el resto son normalmente atendidas al final de cada instrucción, la rutina
de servicio asociada comprobara el estado del DMA para ver si se han
producido errores al ejecutar la transferencia que se le ha encomendado.
A diferencia del mecanismo por interrupción convencional, una orden DMA
puede transferir muchos datos en una sola ocasión, por lo tanto el número de
interrupciones por byte transferido es mucho menor que con las interrupciones
convencionales. Cabe mencionar que el procesador no se encarga de la
transferencia de datos.
CANALES Y PROCESADORES DE ENTRADA/SALIDA
Para reducir la necesidad de interrumpir al procesador y ocuparlo en el manejo
de interrupciones de E/S, se pueden diseñar los módulos de E/S de forma que
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 22
Arquitectura de Computadoras
exista un procesador en el módulo que ejecute instrucciones especiales para
realizar operaciones de E/S. al módulo se le llama canal de E/S.
La CPU construye en memoria un programa de E/S, también llamado
programa de canal, donde la transferencia se inicia indicando al canal que
ejecute el programa, el canal sigue estas instrucciones y contrala la
transferencia. Si además del procesador el módulo de E/S contiene memoria
local, se le llama procesador de E/S que se implementan con procesadores
normales de propósito general.
BUSES
Los componentes de una computadora (CPU, Memoria, E/S) se conectan
entre sí mediante un conjunto de líneas que transmiten señales con funciones
específicas.
TIPOS DE BUSES
Existen tres tipos de buses que constituyen un bus: direcciones (Memoria o
E/S), datos y control.
Serie y paralelo.- Los primeros transmiten bit a bit y los segundos varios bits a la vez.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 23
Arquitectura de Computadoras
Multiplexados y no multiplexados o dedicados.- Los multiplexados realizan diferentes
funciones en función de las necesidades del momento.
Centralizados y distribuidos.- Necesidad de determinar que elemento transmite y cual
recibe. Generalmente existe administración centralizada por la CPU o procesador.
Síncronos y Asíncronos (temporizador).- Como ocurren los diferentes eventos (comienzo,
fin,…) implicados en la transmisión de información. Utilización de una señal de reloj
(comunicación síncrona) o unas líneas de protocolo (comunicación asíncrona).
ESTRUCTURA DE LOS BUSES
Los buses se componen de líneas eléctricas que transmiten un “0” (cero
voltios) o un “1” (más de cero voltios).
Líneas/bus de datos: camino para transferir datos entre el resto de componentes de
un equipo de cómputo, su anchura (número de líneas eléctricas) suele ser una
potencia de dos (8=23, 16=24, 32=25, 64=26,…)
Líneas/bus de direcciones: designan la posición/dirección de los datos. Son salidas de
la CPU/procesador y determinan capacidad de direccionamiento.
Líneas/bus de control: controlan el acceso y uso de las líneas/buses anteriores.
JERARQUIA DE LOS BUSES
Compatibilidad entre buses
Solo si son eléctricamente idénticos. Las características de los diferentes
tipos de buses deben estar normalizadas. Ejemplo: bus PIC, AGP, USB,
FireWire, etc.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 24
Arquitectura de Computadoras
Antiguamente solo existía un bus principal que lo conectaba todo, bus de
sistema.
Actualmente existe un conjunto de buses conectados entre sí y formando
una jerarquía.
Facilita la mejora del rendimiento de todo el computador al agrupar dentro de
los diferentes tipos de buses aquellos componentes del ordenador que tienen
aproximadamente la misma velocidad de transmisión de la información.
Mientras más lejos del CPU, buses más lentos y normalmente de menos
líneas de datos.
Varios tipos de buses en función de su posición dentro de la jerarquía:
Bus de CPU o bus local del procesador, elementos más rápidos tales como la
memoria cache.
Bus local o bus del sistema (front side bus), conecta elementos tales como la
memoria principal o dispositivos rápidos (por ejemplo AGP).
Bus de expansión y o E/S: PCI, USB, ATA, SCSI, etc.
Esquema típico de jerarquía de buses en una computadora. Los buses de
arriba son los más rápidos y el bus de expansión el más lento.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 25
Arquitectura de Computadoras
Esquema de conexión de componentes en una PC. El chip “puente sur” agrupa los
buses más lentos y el “puente norte” los más rápidos.
INTERRUPCIONES
Una interrupción es un mecanismo que permite ejecutar un bloque de
instrucciones interrumpiendo la ejecución de un programa, y luego restablecer
la ejecución del mismo sin afectarlo directamente. De este modo un programa
puede ser interrumpido temporalmente para atender alguna necesidad urgente
de la computadora y luego continuar su ejecución de manera normal y como
si nada hubiera pasado. Las interrupciones son un método del que disponen
los dispositivos e incluso los procesos para hacer notar a la CPU la aparición
de alguna circunstancia que requiera su intervención. De este modo, los
dispositivos pueden provocar que la CPU deje por el momento la tarea que
estaba realizando y atienda la interrupción. Una vez atendida seguirá con su
labor anterior. Cuando no existían interrupciones, era el procesador el que
tenía que estar continuamente comprobando el estado del dispositivo cuando
lo necesitaba. Todo ese tiempo que el procesador estaba sondeando el estado
de los dispositivos era tiempo que no se podía dedicar a otros procesos, lo que
significa una afectación en el rendimiento. Por todo ello se pensó que lo mejor
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 26
Arquitectura de Computadoras
era que existiera una línea especial entre el procesador y los dispositivos, por
la que los dispositivos indicaban al procesador que ya estaban listos.
Se pueden distinguir dos tipos de interrupción:
Interrupciones de software.- Son producidas por medio de la ejecución de una
operación especial que se conoce como “llamada al sistema” (system call) o por
errores producidos dentro de un proceso, también conocidas como excepciones.
Interrupciones de hardware.- Son producidas por un dispositivo y viajan por el mismo
bus del sistema.
INTERRUPCIONES DE ENTRADA/SALIDA
Con el fin de iniciar una operación de E/S la CPU carga los registros
apropiados dentro del controlador del dispositivo, el controlador a su vez
examina el contenido de estos registros para determinar qué acción debes
realizar, por ejemplo, si se encuentra una solicitud de lectura, el controlador
iniciara la transferencia de datos del dispositivo a su buffer local, cuando haya
terminado de hacer esto el controlador informara al CPU que ha completado
su operación, esta comunicación se genera por una interrupción.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 27
Arquitectura de Computadoras
INTERRUPCIONES DE PROGRAMA
Este tipo de interrupciones es la forma más importante que tendrán los
programas de ejecutar funciones especiales del DOS (Disk Operation System)
o del BIOS (Basic Input Output System), estas funciones tienen un numero de
interrupción software asociada, cuando un programa lanza una interrupción de
este tipo, la CPU ejecuta su función de tratamiento asociada, por lo que se
debe saber qué es lo que hace cada interrupción para conseguir el efecto
deseado. Las interrupciones de DOS son más fáciles pero también son más
lentas ya que hacen uso de la BIOS para lograr su funcionamiento, las
interrupciones de la BIOS son más rápidas pero la desventaja es que son muy
específicas y pueden variar dependiendo incluso de la marca del fabricante del
circuito.
INTERRUPCIONES EXTERNAS
El uso de las interrupciones nos ayuda en la creación de programas,
utilizándolas nuestros programas se vuelven más cortos, es más fácil
entenderlos y usualmente tienen un mejor desempeño debido en gran parte a
su menor tamaño. Estas interrupciones externas son generadas por los
dispositivos periféricos, como el teclado, impresoras, tarjetas de
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 28
Arquitectura de Computadoras
comunicaciones y por los coprocesadores. Estas interrupciones no son
enviadas directamente a la CPU, sino que se mandan a un circuito integrado
cuya función es exclusivamente manejar este tipo de interrupciones.
Por ejemplo en un circuito (PIC16F84A) si es controlado por la CPU utiliza los
puertos si hace referencia a:
Interrupción Propósito Sintaxis Explicación
10H Llama a diversas Int 10H Esta interrupción tiene
funciones de video diversas funciones, todas
del BIOS. ellas sirven para controlar la
02H Selección de E/S de video, la forma de
posición del cursor. acceso a cada una de las
09H Escribe atributo y opciones es por medio del
carácter en el registro AH
cursor.
0AH Escribe carácter en
la posición del
cursor.
0EH Escritura de
caracteres en modo
alfanumérico.
16H Maneja la E/S del Int 16H Cuando se utiliza esta
teclado interrupción se detiene la
00H Imprime un carácter ejecución del programa
ASCII hasta que se introduzca un
01H Inicializa la carácter desde el teclado, si
impresora la tecla presionada es de
02H Proporciona el carácter ASCII su valor será
estado de la guardado en el registro AH,
impresora de lo contrario el código de
barrido será guardado en AL
y AH contendrá el valor 00H
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 29
Arquitectura de Computadoras
BIBLIO GRAFÍA
1. Barry, B. brey. Microprocesadores intel. Pearson 7ª Edición 2006
2. Abel P. Lenguaje Ensamblador y programación para PC IBM y compatibles.
Estado de México, México. : Prentice Hall; 1996.
3. Martínez, Jaime Garza JAOR. Organización y arquitectura de
Computadoras. Estado de México, México.: Pretince Hall; 2000.
4. Mano, Morris M. Arquitectura de Computadoras. Ed. Prentice Hall.
5. García, María Isabel, RMC, Cordova Cabeza, María. Estructura de
Computadores Problemas y soluciones. Distrito Federal, México.:
Alfaomega; 2000.
6. Miles, J. Mordocca VPH. Principios de arquitectura de computadoras.
Buenos Aires, Rep. Argentina.: Pretince Hall; 2002.
7. Stallings, W. Organización y Arquitectura de Computadoras. 4ta Edición ed.
Madrid, España.: Editorial Prentice Hall; 1997.
8. Tanenbaum, AS. Organización de computadoras un enfoque estructurado.
Estado de México, México.2000.
INGENIERÍA EN SISTEMAS
COMPUTACIONALES 30