Upload
jaime-peres
View
3.929
Download
4
Embed Size (px)
Citation preview
Introducción● Arquitectura
– Atributos de un sistema visibles para un programador
– Conjunto de instrucciones, bits de representación de datos, mecanismos de E/S, direccionamiento de memoria
● Organización– Interconexión entre unidades funcionales– Señales de control, interfaces computador /
periféricos, tipo de memoria
Estructura y funcionamiento● Un computador es un sistema complejo● De naturaleza jerárquica● Posee subsistemas interrelacionados● Necesitamos entender
– Estructura– Funcionamiento
Funcionamiento● Procesamiento de datos● Almacenamiento de datos● Transferencia de datos● Control
Procesamiento de datos● El computador debe ser capaz de procesar
datos● Los datos pueden adoptar diferentes formas
Almacenamiento de datos● Es una función esencial● Existen dos tipos de almacenaimentos:
– A corto plazo – Memoria temporal– A largo plazo – Memoria en ficheros
Tansferencia de datos● El computador debe ser capaz de transferir
datos entre él y el mundo exterior● Con dispositivos conectados directamente al
computador– Entrada – Salida
● Con dispositivos remotos– Comunicación de datos
Control● Hecha por la unidad de control● Gestiona y controla
– Procesamiento– Almacenamiento– Transferencia
Estructura● Existen 4 componentes estructurales
– Unidad central de proceso● Procesamiento de datos
– Memoria central● Almacena datos
– E/S● Transfiere datos
– Sistemas de interconexión● Comunica la CPU, la memoria y la E/S
Arquitectura de von Neumann● Los datos y las instrucciones se almacenan en
una sola memoria de lectura-escritura● El contenido de la memoria se direccionan
indicando su posición, sin importar el tipo de contenido
● La ejecución se produce siguiendo una secuencia de instrucción tras instrucción
Componentes del computador● Conjunto pequeño de componentes lógicos● Se pueden combinar de formas diferentes
permitiendo almacenar datos binarios● Para cálculos concretos, se usa un hardware
de componentes lógicos diseñado específicamente para dicho cálculo
● El hardware acepta datos y produce resultados● Hardwired program
Componentes del computador● Hardware con funciones lógicas y aritméticas
de uso general● El hardware realiza funciones distintas según
las señales de control aplicadas● El hardware acepta datos y señales de control,
y produce resultados● No se necesita reconfigurar el hardware para
cada nuevo programa● Simplemente se proporciona un nuevo conjunto
de señales de control
Componentes del computador● Como se suministran las señales de control
– Un programa es una secuencia de pasos– En cada paso se realiza una operación
aritmética o lógica con ciertos datos– Para cada paso se necesita un nuevo conjunto
de señales de control– Se asocia un código específico a cada conjunto
de señales de control– Se añade al hardware un componente para
generar señales de control a partir del código
Componentes del computador● En lugar de reconfigurar el hardware para cada
programa● Se proporciona una nueva secuencia de
códigos● Cada código es una instrucción● Una parte del hardware interpreta cada
instrucción y genera las señales de control● La secuencia de instrucciones es conocida
como software
Componentes del computador● Existen dos componentes esenciales
– Intérprete de instrucciones– Módulo general de funciones aritméticas y
lógicas● Ambos constituyen la CPU● Además encontramos los componentes de E/S
– Responsables de introducir instrucciones y proporcionar resultados
Componentes del computador● Otro componente importante es la memoria● De ella se extraen los datos y las instrucciones● La arquitectura de Von Neumann establece que
la memoria puede ser usada para instrucciones y datos
Componentes del computador● La CPU se encarga del control● Intercambia datos con la memoria● Usa registros internos
– Registro de dirección de memoria (MAR)● Dirección en memoria de la próxima escritura o
lectura– Registro para datos de memoria (MBR)
● Contiene el dato a escribir en memoria o donde se escribe el dato cuando se lee de la memoria
Componentes del computador● Registros internos (continúa)
– Registro de direcciones de E/S (E/SAR)● Especifica un dispositivo de E/S
– Registro para datos de E/S (E/S BR)● Se usa para intercambiar datos entre un módulo
de E/S y la CPU– Contador de programa (PC)
● Dirección de memoria de la siguiente instrucción– Registro de instrucción (IR)
● Siguiente instrucción a ejecutar
Funcionamiento del computador
● La función de un computador es la ejecución de un programa
● Un programa está constituido por un conjunto de instrucciones en memoria
● El procesador ejecuta instrucciones especificadas en el programa
● Consta de dos etapas– Captar la instrucción– Ejecutar la instrucción
Ciclos de captación y ejecución● Al inicio de cada ciclo de instrucción, la CPU
capta una instrucción de memoria● Se utiliza un registro llamado Contador de
programa (PC)● El registro PC permite saber donde está la
instrucción que debe captarse● A no se que se indique otra cosa, la CPU
siempre incrementa el PC● Se captará la siguiente instrucción de la
secuencia
Ciclos de captación y ejecución● La instrucción captada se almacena en otro
registro de la CPU llamado Registro de instrucción (IR)
● La instrucción se escribe usando un código binario que indica la acción a realizar a la CPU
● La acción generalmente puede ser de cuatro tipos:
– Procesador – Memoria– Procesador – E/S– Procesamiento de datos– Control
Ciclos de captación y ejecución● Ejemplo de máquina hipotética
– Procesador con único registro de datos (AC)– Los datos e instrucciones son de 16 bits– La memoria está organizada en palabras– Pueden haber 24 = 16 operaciones distintas– Se puede direccionar 216 = 4096 palabras
Ciclos de captación y ejecución
Ciclos de captación y ejecución● El ejemplo necesita tres ciclos de instrucción● Cada uno con un ciclo de captación y uno de
ejecución● Con instrucciones mas complejas se
necesitarían menos ciclos● Los procesadores actuales incluyen
instrucciones que contienen mas de una dirección
● Entonces el ciclo de ejecución de una instrucción incluye más de una referencia a memoria
Ciclos de captación y ejecución● Los distintos estados en el ciclo de instrucción
básico son:– Cálculo de la dirección de la instrucción (iac)– Captación de la instrucción (if)– Decodificación de la operación (iod)– Cálculo de la dirección del operando (oac)– Captación del operando (of)– Operación con los datos (do)– Almacenamiento del operando (os)
Ciclos de captación y ejecución
Interrupciones● Todos los computadores disponens de un
mecanismo para interrumpir a la CPU● Algunas clases de interrupciones mas comunes
son:– Programa– Temporización– E/S– Hardware
Sin interrupciones
Con interrupciones● Con interrupciones, la CPU puede ejecutar
otras instrucciones mientras se lleva a cabo una operación de E/S
Interrupciones y el ciclo de instrucción
● Se añade el ciclo de interrupción al ciclo de instrucción
● En una interrupción, el procesador comprueba si se ha generado alguna interrupción mediante la presencia de una señalo de interrupción
Interrupciones y el ciclo de instrucción
Interrupciones múltiples● Hasta ahora vimos casos de una sola
interrupción● Casos reales involucran interrupciones
provenientes de varios dispositivos● Existen dos alternativas:
– Desactivar las interrupciones– Usar prioridades para las interrupciones
Desactivar interrupciones● El procesador ignora las peticiones de
interrupciones● Las interrupciones generadas se mantienen
pendientes● Serán examinadas por el procesador cuando
se activen las interrupciones nuevamente● No se tiene en cuenta las solicitudes prioritarias● Ej., placa de red
Prioridades en las interrupciones
● Interrupciones de mayor prioridad interrumpen la gestión de prioridades de menor prioridad
● Permite atender situaciones de mayor criticidad
Prioridades en las interrupciones
Funcionamiento de las E/S● Un módulo de E/S (por ejemplo, un controlador
de disco) puede intercambiar datos directamente con el procesador
● El procesador puede leer o escribir datos en memoria como también en un módulo de E/S
● A veces el procesador cede a un módulo de E/S la autoridad de leer o escribir en memoria
● Esta transferencia E/S – memoria se produce sin intervención del procesador
● Esta operación se conoce como DMA (Acceso Directo a Memoria
Estructuras de interconexión● Existen módulos de tres tipos elementales que
se comunican entre sí– Procesador– Memoria– E/S
● El conjunto de líneas que conectan los módulos se denomina estructura de interconexión
Memoria● Constituido por N palabras del mismo tamaño● Cada palabra tiene una única dirección
numérica● Una palabra puede leerse o escribirse● El tipo de operación se indica mediente las
señales Read (leer) y Write (escribir)● La posición de memoria para la operación se
especifica por una dirección
Memoria
Módulo de E/S● Funcionalmente muy similar a la memoria● Existen dos tipos: leer y escribir● Un módulo puede controlar mas de un
dispositivo externo● Cada interfaz hacia un dispositivo se denomina
puerto● Cada puerto tiene una dirección● Existen líneas externas de datos para entrada y
salida de datos por un dispositivo externo● Un módulo de E/S puede interrumpir al CPU
Módulo de E/S
Procesador● El procesador lee instrucciones y datos● Escribe datos una vez procesados● Usa señales para controlar el funcionamiento
del sistema● Puede recibir señales de interrupción
Procesador
Tipos de transferencias● Memoria a procesador● Procesador a memoria● E/S a procesador● Procesador a E/S● Memoria a E/S● E/S a memoria
– DMA
Estructuras de interconexión● Se han probado diversas estructuras de
interconexión● Las más comunes son las estructuras de bus y
de buses múltiples
Interconexión con buses● Un bus es un camino de comunicación entre
dos o más dispositivos● Es un medio de transmisión compartido por
varios dispositivos● Cualquier señal transmitida por uno es
escuchada por los demás● Si dos dispositivos transmiten al mismo tiempo,
sus señas se solapan y distorsionan● Solo un dispositivo puede transmitir con éxito
en un momento dado
Interconexión con buses● Usualmente un bus está constituido por varios
caminos de comunicación o líneas● Cada línea es capaz de transmitir señales
binarias● En un intervalo se puede transmitir una
secuencia de dígitos binarios por una única línea
● Se pueden usar varias líneas del bus para transmitir dígitos binarios simultáneamente
Interconexión con buses● Los computadores poseen distintos tipos de
buses● Proporcionan comunicación entre sus
componentes● El bus que conecta los componentes
principales del computador (procesador, memoria y E/S) se llama bus del sistema
Estructura del bus● Está constituído usualmente por entre 50 y 100
líneas● A cada línea se le asigna una función● Existen diversos diseños de buses● Básicamente se clasifican en tres grupos
funcionales– Líneas de datos– Líneas de direcciones– Líneas de control
Líneas de datos● Proporcionan un camino para transmitir datos
entre los módulos del sistema● El conjunto de estas líneas se denomina bus
de datos● Generalmente consta de 8, 16 o 32 líneas
distintas● Este número es el ancho del bus● Cada línea solo puede transportar un solo bit
cada vez
Líneas de datos● El número de líneas determina cuantos bits
pueden transferirse al mismo tiempo● El ancho del bus es clave en las prestaciones
generales del sistema
Líneas de dirección● Se usan para designar la fuente o el destino del
dato situado en el bus de datos● Si el procesador desea leer una palabra (8, 16
o 32 bits) de datos de la memoria, indica su dirección colocándola en el bus de dirección
● El ancho del bus de direcciones determina la cantidad de memoria posible en el sistema
● Un bus de 32 bits permite 4 GB de memoria
Líneas de dirección● También se usan para direccionar los puertos
de E/S● Los bits de orden alto se usan para seleccionar
una posición de memoria o un puerto de E/S dentro de un módulo
● Ejemplo para un bus de 8 bits:● 01111111 e inferiores referencian posiciones
dentro de un módulo de memoria. 128 palabras● 10000000 referencian dispositivos conectados a
un módulo de E/S
Líneas de control● Las líneas de datos y de direcciones son
compartidas por todos los componentes● El bus de control es el responsable de controlar
el uso de las líneas de datos y de dirección● Las señales de control transmiten órdenes e
información de temporización entre los módulos● Las señales de temporización indican la validez
de los datos y las direcciones● Las señales de órdenes especifican las
operaciones a realizar
Líneas de control● Algunas líneas de control típicas son:
– Escritura en memoria– Lectura de memoria– Escritura de E/S– Lectura de E/S– Reconocimiento de transferencia– Petición de bus– Cesión de bus– Petición de interrupción– Reconocimiento de interrupción
● Si un módulo desea enviar un datos a otro:– Obtiene el uso del bus– Transfiere el dato a través del bus
● Si un módulo desea pedir un dato a otro:– Obtiene el uso del bus– Transfiere la petición al otro módulo mediante la
línea de control y dirección apropiadas– Luego espera a que el otro módulo envíe el
dato
● El bus del sistema es un conjunto de conductores eléctricos paralelos
● El bus se extiende a través de todos los componentes del sistema
● Cada componente se conecta a algunas o a todas las líneas del bus
Jerarquía de buses● Si se conecta un gran número de
dispositivos al bus, las prestaciones disminuyen
– Aumenta el retardo– El bus se convierte en el cuello de botella
● Se usan varios organizados jerárquicamente
Jerarquía de buses● Una estructura típica se muestra en la
siguiente figura● Hay un bus local que conecta el procesasor
a una memoria caché● El controlador de memoria caché conecta la
caché al bus local y al bus del sistema● El uso de caché evita los accesos frecuentes
del procesador a la memoria principal
Jerarquía de buses● Es posible conectar controladores de E/S
directamente al bus del sistema● Para ello se usan uno o más buses de
expansión● Una interfaz con el bus de expansión regula
las transferencias entre el bus de sistema y los controladores conectados al bus de expansión
● Esto permite conectar el sistema una amplia variedad de dispositivos de E/S y aislar el tráfico entre la memoria y el procesador
Jerarquía de buses● Esta arquitectura de buses tradicional es
eficiente● Su debilidad queda expuesta a medida que
los dispositivos de E/S ofrecen prestaciones cada vez mejores
● La industria propone un bus de alta velocidad integrado con el resto del sistema
● Requiere un adaptador (bridge) entre el bus del procesador y el bus de alta velocidad
Jerarquía de buses● Un bus local que conecta el procesador a un
controlador de caché, que a su vez está conectado al bus del sistema que soporta a la memoria principal
● El controlador de caché está integrado al bridge que permite la conexión al bus de alta velocidad
● Los dispositivos de menor capacidad se conectan al bus de expansión
Elementos de diseño de un bus● Tipos de buses
– Dedicados – multiplexados● Método de arbitraje
– Centralizado – distribuido● Temporización
– Síncrono – asíncrono● Anchura del bus
– Dirección – datos● Tipos de transferencia de datos
– Lectura – escritura - etc.
Tipos de buses● Dedicados:
– Permanentemente dedicado a una sola función
– Requiere múltiples buses– Rendimiento elevado– Incremento en el tamaño y costo del sistema
Tipos de buses● Multiplexados:
– Designados para varias funciones– Datos y direcciones se transmiten por el
mismo conjunto de líneas– Rendimiento pobre y complejidad en la
circuitería– Económico
Método de arbitraje● Centralizado:
– Un único dispositivo asigna tiempos de bus– Denominado controlador del bus– El controlador puede estar separado o en el
mismo procesador
Método de arbitraje● Distribuido:
– No existe controlador central– Cada módulo contiene lógica para controlar
el acceso– Los módulos actúan conjuntamente para
compartir el bus
Temporización● Dos participantes no pueden acceder al
mismo tiempo● Los participantes tiene 2 roles posibles
– Master: iniciador de la transferencia– Slave: receptor de la transferencia
● El tema es como se ponen de acuerdo ambos para realizar una transferencia
Temporización síncrona● Determinada por un reloj● El bus incluye una línea de reloj que todos
los módulos pueden leer● En la línea se transmite una secuencia● Se alternan intervalos regulares de igual
duración a uno y a cero● Un único intervalo a uno seguido de otro a
cero se conoce como ciclo de reloj● Define un Time slot
Temporización síncrona● En T1:Master: coloca dirección en el bus de
direcciones y levanta la señal de Address Enable
● En T2:Master: baja la señal de Address Enable y levanta la señal de Read
● En T3:Slave: coloca dato en el bus de datos y Master: baja la señal de Read
● Al finalizar T3: ambos retiran todas las señales
Temporización asíncrona
Temporización asíncrona1.Master ADDRESS:=dir2.Master MREQ=0, RD=03.Master MSYN=04.Slave reconoce MSYN=0. Slave sabe que
Master le pide que lea la dirección dir ya que lee MREQ, RD y DATA
Temporización asíncrona1.Slave DATA=dato pedido2.Slave SSYN=03.Master reconoce SSYN=0. Ahora Master
sabe que Slave ya atendió el pedido y colocó el dato en DATA
4.Master lee DATA5.Master retira ADDRESS, MREQ, RD y
MSYN
Temporización asíncrona1.Slave reconoce MSYN=1. Ahora Slave sabe
que Master ya leyó el dato2.Slave retira DATA y SSYN
Anchura del bus● El ancho del bus de datos afecta las
prestaciones del sistema● Cuanto mas ancho es el bus de datos, mayor
es el número de bits que se transmiten a la vez
● El ancho del bus de direcciones afecta a la capacidad del sistema
● Cuanto mas ancho es el bus de direcciones, mayor es el rango de posiciones refenciables
Tipos de transferencia de datos● Todos los buses permiten lectura y escritura● En buses multiplexados, el bus se usa
primero para indicar la dirección y luego para transferir el dato
● En líneas dedicadas, la dirección se sitúa en el bus de direcciones y se mantiene ahí, mientras que el dato se ubica en el bus de datos
PCI● Interconexión de Componentes Periféricos● Es un bus muy popular● Ancho de banda elevado● Independiente del procesador● Usado como bus de entre planta● Presenta buenas prestaciones para
dispositivos E/S de alta velocidad
PCI● Permite el uso de hasta 64 líneas de datos● Puede funcionar a 66 Mhz● Transferencias:
– 33 Mhz 528 Mbytes– 66 Mhz 4 Gbps
● Muy económico● Diseñado por Intel para sus sistemas
basados en Pentium
PCI● Permite sistemas de uno o varios
procesadores● Proporciona funciones de uso general● Usa temporización síncrona y arbitraje
centralizado● En la figura siguiente se muestra el uso de
PCI en un sistema uniprocesador
PCI● Un dispositivo que integra el controlador
DRAM y el adaptador al bus PCI proporciona el acoplamiento al procesador
● El adaptador funciona como buffer puesto que la velocidad del bus PCI puede diferir de la capacidad de E/S del procesador
● En la siguiente figura se observa una configuración multiprocesador
Estructura del bus● Puede configurarse como un bus de 32 o 64
bits● Posee 49 líneas de señal obligatorias
divididas en estos grupos funcionales:– Terminales de sistema– Terminales de direcciones y datos– Terminales de control de la interfaz– Terminales de arbitraje– Terminales para señales de error
Estructura del bus● Posee 51 señales opcionales agrupadas:
– Terminales de interrupción– Terminales de soporte de caché– Terminales de ampliación a bus de 64 bits– Terminales de test
Sistemas de memoria● Hay una amplia variedad de tipos,
tecnología, estructura, prestaciones y coste● Ninguna tecnología es óptima● Un computador está equipado con una
jerarquía de memorias● Internas
– Directamente accesibles por el procesador● Externas
– Accesibles por el procesador mediante módulos de E/S
Clasificación de memorias● Ubicación (CPU, Interna (principal), Externa
(secundaria))● Capacidad (Tamaño y número de palabras)● Unidad de transferencia (palabra, bloque)● Acceso (secuencial, directo, aleatorio,
asociativo)● Prestaciones (tiempo de acceso, tiempo de
ciclo, velocidad de transferencia)
Clasificación de memorias (continuación)
● Dispositivo físico (semiconductor, magnético, óptico, magneto-óptico)
● Características físicas (volátil, no volátil, borrable, no borrable)
● Organización
Clasificación de memorias. Ubicación
● Interna – Directamente accesible por el procesador– Normalmente identificada con la memoria
principal– Existen otras formas de memoria interna
● Registros del procesador● Memoria de la unidad de control
● Externa – Accesibles a través de controladores de E/S
Clasificación de memorias. Capacidad
● En memorias internas se expresan en términos de bytes o de palabras
● Longitudes de palabras comunes con 8, 16 y 32 bits
● En memorias externas se suele expresar en bytes
Clasificación de memorias. Unidad de transferencia
● Para memorias internas es igual al número de líneas de E/S de datos del módulo de memoria
● A menudo es igual a la longitud de la palabra, pero puede no serlo
● Palabra– Unidad natural de organización de la
memoria– Suele coincidir con el número de bits
utilizados para representar números y con la longitud de las instrucciones
Clasificación de memorias. Unidad de transferencia
● Unidades direccionables– En muchos sistemas la unidad direccionable
es la palabray otros permiten direccionar a nivel de bytes
● Unidad de transferencia:– Para la memoria principal, es el número de
bits que se leen o escriben en memoria a la vez
– Puede no coincidir con una palabra o unidad direccionable
– En memorias externas se utilizan bloques
Clasificación de memorias. Método de acceso
● Secuencial:– Organizada en unidades de datos llamadas
registros– El acceso se realiza con una secuencia
lineal específica– Se hace uso de información almacenada de
direccionamiento que permite separar registros
– Los tiempos de acceso son lentos
Clasificación de memorias. Método de acceso
● Directo:– Tiene un mecanismo de lectura/escritura– Los bloques individuales o registros tienen
una dirección única basada en su dirección física
– Se accede mediante el acceso directo a una vecindad, seguido de una búsqueda secuencial, contando o esperando hasta alcanzar la posición deseada
– El tiempo de acceso es variable
Clasificación de memorias. Método de acceso
● Aleatorio:– Cada posición direccionable de memoria
tiene un único mecanismo de acceso cableado físicamente
– El tiempo para acceder es constante e independiente de los accesos previos
– La memoria principal y algunas cachés son de acceso aleatorio
Clasificación de memorias. Método de acceso
● Asociativa:– Es una memoria del tipo de acceso aleatorio– El acceso está basado en una porción de su
contenido, en lugar de su dirección– Tiempos de acceso constante e
independiente de accesos anteriores– Las memorias cachés usan acceso
asociativo
Clasificación de memorias. Prestaciones
● Tiempo de acceso:– En memorias de acceso aleatorio, es el
tiempo que tarda una operación de lectura o escritura
– Otros tipos de memoria, es el tiempo que tarda en situar el mecanismo de lectura/escritura en la posicición deseada
Clasificación de memorias. Prestaciones
● Tiempo de ciclo de memoria:– Se aplica principalmente a memorias de
acceso aleatorio– Consiste en el tiempo de acceso y algún
tiempo más que se requiere antes de que pueda iniciarse un segundo acceso a memoria
Clasificación de memorias. Prestaciones
● Velocidad de transferencia:– Es la velocidad a la que pueden transferir
datos a, o desde, una unidad de memoria
Clasificación de memorias. Dispositivos físicos
● Las mas comunes en la actualidad son memorias:
– Semiconductoras– De superficie magnética– Ópticas– Magneto-ópticas
Clasificación de memorias. Características físicas
● En memorias volátiles la información se pierde cuando se desconecta la alimentación
● En memorias no volátiles, la información, una vez grabada, permanece sin deteriorarse hasta que se la modifique
● Las memorias de superficie magnéticas son no volátiles
● Las semiconductoras pueden ser de ambos tipos (RAM, ROM)
Jerarquía de memoria● El diseño de la memoria se pueden resumir
en tres cuestiones:– Capacidad– Rapidez– Costo
Jerarquía de memoria● Normalmente se busca cumplir las siguientes
relaciones:– A menor tiempo de acceso, mayor costo por
bit– A mayor capacidad, menor costo por bit– A mayor capacidad, mayor tiempo de acceso
Jerarquía de memoria● Debido a que es tecnológicamente imposible
lograr todos estos objetivos juntos, se emplea una jerarquía de memoria
Jerarquía de memoria● Cuando se desciende en la jerarquía ocurre:
– Disminuye el coste por bit– Aumenta la capacidad– Aumenta el tiempo de acceso– Disminuye la frecuencia de accesos a la
memoria por parte del procesador
Jerarquía de memoria● Memorias mas pequeñas, costosas y más
rápidas se complementan con otras más grandes, más económicas y más lentas
Tipos de memoria de acceso aleatorio
● RAM – Random Access Memory– Volátil y debe estar alimentada– Dinámica
● Hechas con celdas que almacenan datos como cargas en condensadores. La presencia o ausencia de carga se interpreta como un 1 o un 0
● Económicas y más densas. Requieren circuitería de refresco
– Estáticas● Los valores se almacenan utilizando puertas
que forman biestables (flip-flops). Más rápidas que las dinámicas.
Tipos de memoria de acceso aleatorio
● ROM – Read Only Memory– No volátil– Solo para lecturas. No se pueden escribir– No se puede borrar el contenido– Se escriben utilizando matrices o máscaras– Si hay error en la escritura, se deben
desechar los módulos
Tipos de memoria de acceso aleatorio
● PROM – Programable Read Only Memory– No volátil– Se escriben eléctricamente– Se pueden grabar solo una vez– Solo para lecturas– Una vez grabada no se puede borrar
Tipos de memoria de acceso aleatorio
● Otra variente de memoria de sólo lectura es la memoria de sobre todo lectura
● Es útil cuando las operaciones de lectura son bastante mas frecuentes que las de escritura y el almacenamiento no volátil
● Hay tres formas de este tipo de memoria:– EPROM– EEPROM– FLASH
Tipos de memoria de acceso aleatorio
● EPROM– Memoria de sólo lectura programable y
borrable ópticamente– Se lee y escribe eléctricamente– Antes de la operación de escritura, todas las
celdas deben primero borrarse a la vez por luz ultravioleta
– Pueden borrarse repetidas veces– Mas costosas que una PROM
Tipos de memoria de acceso aleatorio
● EEPROM– Memoria de sólo lectura programable y
borrable eléctricamente– Se puede escribir en cualquier momento sin
borrar su contenido anterior– Se actualizan el byte o bytes direccionados– Es actualizable in situ, utilizando las líneas
de control, datos y direcciones de un bus– Mas costosas que las EPROM y menos
densas
Tipos de memoria de acceso aleatorio
● FLASH– Llamadas así por la velocidad con la que
puede reprogramarse– En costo y funcionalidad, se encuentran
entre las EPROM y las EEPROM– Borradas eléctricamente en unos cuantos
segundos totalmente o bloques
Organización● El elemento básico de una memoria
semiconductora es la celda de memoria● Presentan dos estados estables (o
semiestables) para representar el 1 o el 0● Puede escribirse en ellas (al menos una vez)
para fijar su contenido● Pueden leerse para detectar su estado
Organización
Organización● Las celdas contienen tres terminales para
transportar señales eléctricas● Terminal de selección, selecciona la celda
para la operación de escritura o lectura● Terminal de control, indica el tipo de
operación● Para la escritura, el tercer terminal
proporciona la señal que fija el estado● En una lectura, el tercer terminal se utiliza
como salida del estado de la celda
Memoria caché● El objetivo es lograr que la velocidad de
memoria sea lo más rápida posible
Memoria caché● Hay una memoria principal relativamente
grande y mas lenta● Junto con una memoria caché más pequeña
y rápida● La memoria caché contiene una copia de
partes de la memoria principal● Cuando el procesador intenta leer una
palabra de memoria se determina si la palabra está en la cache
Memoria caché● Si es así, se entrega dicha palabra al
procesador● Si no, un bloque de memoria principal,
consistente en cierto número de palabras se transfiere a la caché y después al procesador
● Cuando un bloque de datos es captado en caché, es probable que se hagan referencias futuras a otras palabras del mismo bloque
Estructura de memoria caché● La memoria principal consta de hasta 2n
palabras direccionables. Cada palabra contiene una única dirección de n bits
● Esta memoria la consideramos dividida en un número de bloques de longitud fija de K palabras por bloque. M = 2n/K bloques
● La caché consta de C líneas de K palabras cada una
● El número de líneas es menor que el número de bloques (C<M)
Estructura de memoria caché● En todo momento, un subconjunto de los
bloques de memoria reside en líneas de la caché
● Ya que hay mas bloques que líneas, una línea no puede dedicarse exclusivamente a un solo bloque
● Cada línea incluye una etiqueta con el bloque almacenado
Lectura en memoria caché● Procesador genera dirección de palabra a
leer● Si la palabra está en caché, es entregada al
procesador● Si no, el bloque que contiene dicha palabra
se carga en caché y la palabra es llevada después al procesador
● Estas dos últimas operaciones se realizan en paralelo (figura)
Organización típica de caché● La caché conecta con el procesador
mediante líneas de datos, control y direcciones
● Las líneas de datos y direcciones conectan también con buffers de datos y direcciones que las comunican con el bus del sistema para acceso a memoria principal
● Cuando ocurre un acierto, los buffers de datos y direcciones se inhabilitan
Organización típica de caché● Con un acierto la comunicación tiene lugar
solo entre procesador y caché, sin tráfico en el bus del sistema
● Con un fallo, la dirección se carga en el bus del sistema y el dato es llevado, a través del buffer de datos, tanto a la caché como el procesador
Discos magnéticos● Plato circular de metal o plástico● Cubierto por material magnetizable● Los datos se graban y se leen a través de
una bobina llamada cabeza● Durante una operación de lectura o escritura,
la cabeza permanece fija mientras el plato gira bajo ella
Discos magnéticos● La escritura se basa en el campo magnético
producido por un flujo eléctrico que atraviesa la bobina
● Se envían pulsos a la cabeza y se graban patrones magnéticos en la superficie bajo ella
● La lectura se basa en la corriente eléctrica que atraviesa la bobina, producida por un campo magnético que se mueve respecto a la bobina
Organización y formato● Los datos se organizan en anillos
concéntricos llamados pistas● Cada pista es del mismo ancho que la
cabeza● Usualmente hay de 500 a 2000 pistas● Las pistas adyacentes se separan por
bandas vacías para minimizar errores por interferencias
Organización y formato● Por simplicidad se almacenan la misma
cantidad de bits por pista● Esto hace que aumente la densidad en las
pistas mas internas● Los datos se transfieren en bloques● Los datos se almacenan en regiones de
tamaño de un bloque llamadas sectores● Normalmente hay entre 10 y 100 sectores
por pista
Organización y formato● Los sectores pueden ser de longitud variable
o fija● Los sectores adyacentes se separan por
espacios vacíos llamados intersectores● Para identificar las posiciones de los
sectores se graba datos de control en el disco
● El dato de control es usado solo por el controlador del disco
Organización y Formato● En la siguiente figura se observa el formato
de las pistas de un disco Winchester● Cada pista contiene 30 sectores de longitud
fija de 600 bytes cada uno● Cada sector contiene 512 bytes de datos
mas información de control para el controlador del disco
● El campo ID es un identificador único usado para localizar un sector
Organización y Formato● El byte SINCRO es un patrón de bits
especial que delimita el comienzo del campo● El número de pista identifica una pista en
una superficie● El número de cabeza identifica una cabeza,
para el caso de unidades con varias cabezas● El ID y los campos de datos contienen, cada
uno, un código de detección de errores
Características físicas● Desplazamiento de cabezas
– Cabeza fija (una por pista)– Cabeza móvil (una por superficie)
● Transportabilidad de disco– Fijo– Extraíble
● Superficies– Única – Doble
Características físicas● Platos
– Único– Múltiples
● Mecanismo de la cabeza– Contacto (disquete)– Separación fija– Separación aerodinámica (Winchester)
Características físicas● Cabeza fija: una cabeza de lectura/escritura
por pista● Cabeza móvil: una sola cabeza de
lectura/escritura
Características físicas● No extraíble: permanentemente montado en
la unidad de disco● Extraíble: puede ser quitado y sustituido por
otro disco
Características físicas● Doble superficie: magnetizado en ambas
caras● Una sola superfice: magnetizado en una sola
cara (discos económicos)
Características físicas● Varios platos:
apilados verticalmente. Disponen de varios brazos
Características físicas● Varios platos: el
conjunto de las mismas pistas en cada uno de los platos conforman un cilindro
Características físicas● Contacto: la cabeza efectúa un contacto
físico en el medio durante la lectura o escritura
● Separación fija: la cabeza se posiciona a una distancia fija sobre el plato
● Separación aerodinámica: importante la densidad de datos y el espesor de la capa de aire
Características físicas● La cabeza debe generar o detectar un
campo magnético de intensidad para poder leer o escribir correctamente
● Cuanto mas estrecha es la cabeza, mas cerca debe estar de la superficie
● Cuanto mas cerca está la cabeza, mayor es el riesgo de error por impurezas
● Los Winchester montan las unidades herméticamente para evitar las impurezas
Prestaciones de un disco● El tiempo que tarda la cabeza en
posicionarse en la pista se conoce como tiempo de búsqueda
● El tiempo que espera el controlador para que el sector deseado rote hasta alinearse con la cabeza se llama retardo rotacional
● La suma del tiempo de búsqueda y el retardo rotacional se llama tiempo de acceso
Arreglos de disco● RAID Reduntant Array of Independent Disks● Conjunto redundante de discos
independientes● El esquema RAID consta de 6 niveles (0-5)● Estos niveles no implican jerarquía● Designan métodos diferentes que poseen
tres características comunes
Arreglos de disco1.Es un conjunto de unidades físicas de disco vistas por el sistema operativo como una única unidad lógica2.Los datos se distribuyen a través de las unidades físicas del conjunto de discos3.La capacidad de discos redundantes se usa para almacenar información de paridad que garantice la recuperación de datos en caso de fallo de disco
Arreglos de disco● Hace referencia a un sistema de
almacenamiento que usa múltiples discos entre los que distribuye o replica los datos
● Dependiendo de su configuración (a la que suele llamarse «nivel»), los beneficios de un RAID respecto a un único disco son uno o varios de los siguientes:
– Mayor integridad, mayor tolerancia a fallos, mayor throughput (rendimiento) y mayor capacidad
RAID 0 (Data Striping)● Distribuye los datos equitativamente entre
dos o más discos sin información de paridad que proporcione redundancia
● Es importante señalar que el RAID 0 no era uno de los niveles RAID originales y que no es redundante
● Se usa normalmente para incrementar el rendimiento. También puede utilizarse para crear grandes discos virtuales a partir de un gran número de pequeños discos físicos
RAID 0 (Data Striping)● RAID 0 dividirá las
operaciones de lectura y escritura en bloques de igual tamaño y los distribuirá equitativamente entre los dos discos
● La fiabilidad total es (aproximadamente) inversamente proporcional al número de discos del conjunto
RAID 1 (Data Mirroring)● Crea una copia exacta (o espejo) de un
conjunto de datos en dos o más discos● Esto resulta útil cuando el rendimiento en
lectura es más importante que la capacidad● Un conjunto RAID 1 sólo puede ser tan
grande como el más pequeño de sus discos● Un RAID 1 clásico consiste en dos discos en
espejo, lo que incrementa exponencialmente la fiabilidad respecto a un solo disco
RAID 1 (Data Mirroring)● La probabilidad de
fallo del conjunto es igual al producto de las probabilidades de fallo de cada uno de los discos, pues para que el conjunto falle es necesario que lo hagan todos sus discos
RAID 1 (Data Mirroring)● Dado que todos los datos están en dos o
más discos, con hardware habitualmente independiente, el rendimiento de lectura se incrementa aproximadamente como múltiplo lineal del número del copias
● Un RAID 1 puede estar leyendo simultáneamente dos datos diferentes en dos discos diferentes, por lo que su rendimiento se duplica
RAID 2● Un RAID 2 divide los datos a nivel de bits en
lugar de a nivel de bloques y usa un código de Hamming para la corrección de errores
● Los discos son sincronizados por la controladora para funcionar al unísono
● Éste es el único nivel RAID original que actualmente no se usa
● Permite tasas de trasferencias extremadamente altas.
RAID 2● Teóricamente un RAID 2 necesitaría 39
discos en un sistema informático moderno: ● 32 se usarían para almacenar los bits
individuales que forman cada palabra● 7 se usarían para la corrección de errores
RAID 3● Un RAID 3 usa división a nivel de bytes con
un disco de paridad dedicado. Se usa rara vez en la práctica
● Normalmente no puede atender varias peticiones simultáneas, debido a que por definición cualquier bloque de datos se dividirá por todos los miembros del conjunto, residiendo la misma dirección dentro de cada uno de ellos. Así, cualquier operación de lectura o escritura exige activar todos los discos del conjunto
RAID 3
RAID 4● Un RAID 4 usa división a nivel de bloques
con un disco de paridad dedicado● Necesita un mínimo de 3 discos físicos● El RAID 4 es parecido al RAID 3 excepto
porque divide a nivel de bloques en lugar de a nivel de bytes
● Esto permite que cada miembro del conjunto funcione independientemente cuando se solicita un único bloque
RAID 4● Si la controladora de disco lo permite, un
conjunto RAID 4 puede servir varias peticiones de lectura simultáneamente
RAID 5● Un RAID 5 usa división de datos a nivel de
bloques distribuyendo la información de paridad entre todos los discos miembros del conjunto
● El RAID 5 ha logrado popularidad gracias a su bajo coste de redundancia
● Generalmente el RAID 5 se implementa con soporte hardware para el cálculo de la paridad
RAID 5● El RAID 5 requiere
al menos tres unidades de disco para ser implementado
● El fallo de un segundo disco provoca la pérdida completa de los datos
Memoria óptica● Las memorias en disco óptico almacenan
información usando agujeros minúsculos grabados con un láser en la superficie de un disco circular
● La información se lee iluminando la superficie con un diodo láser y observando la reflexión
● Los discos ópticos son no volátil y de acceso secuencial
Almacenamiento y Recuperación de información
● En un CD la información se almacena en formato digital
● Utiliza un sistema binario para guardar los datos
● Estos datos se graban en una única espiral que comienza desde el interior del disco ,próximo al centro, y finaliza en la parte externa
Almacenamiento y Recuperación de información
● Los datos binarios se almacenan en forma de llanuras y salientes (cada una de ellas es casi del tamaño de una bacteria), de tal forma que al incidir el haz del láser, el ángulo de reflexión es distinto en función de si se trata de una saliente o de una llanura
CD-ROM● Siglas del inglés Compact Disc - Read Only
Memory● Disco Compacto - Memoria de Sólo Lectura● Utilizado para almacenar información no
volátil● El mismo medio utilizado por los CD de
audio
DVD● El DVD o Disco de Video Digital es un
soporte de almacenamiento óptico que fue pensado para grabar películas con alta calidad de audio y video, y luego fué usado para guardar datos de todo tipo
● Se asemeja a los discos compactos en cuanto a sus dimensiones físicas (diámetro de 12 cm, u 8 cm en los mini-CD), pero están codificados en un formato distinto y a una densidad mucho mayor
DVD-R● Un DVD-R o DVD-Recordable (DVD-
Grabable) es un disco óptico en el que se puede grabar o escribir datos con mucha mayor capacidad de almacenamiento que un CD-R, normalmente 4.7 GB
● También se ha desarrollado una versión de doble capa con 8,5 GB, que apareció en el mercado en 2005
● Un DVD-R solo puede grabarse una vez, mientras que un DVD-RW es regrabable
DVD-RW● Un disco compacto reescribible (conocido
popularmente como CD-RW, "Compact Disc-Re Writable") es un soporte digital óptico utilizado para almacenar cualquier tipo de información
● Este tipo de disco sirve tanto para grabar como para después borrar esa información
DVD-RW● En el disco CD-RW la capa que contiene la
información está formada por una aleación cristalina de plata, indio, antimonio y telurio que presenta una interesante cualidad:
● Si se calienta hasta cierta temperatura, cuando se enfría deviene cristalino, pero si al calentarse se alcanza una temperatura aún más elevada, cuando se enfría queda con estructura amorfa
DVD-RW● La superficie cristalina permite que la luz se
refleje bien en la zona reflectante mientras que las zonas con estructura amorfa absorben la luz
DVD-RW● Por ello el CD-RW utiliza tres tipos de luz:
– Láser de escritura: Se usa para escribir. Calienta pequeñas zonas de la superficie para que el material se torne amorfo
– Láser de borrado: Se usa para borrar. Tiene una intensidad menor que el de escritura con lo que se consigue el estado cristalino
– Láser de lectura: Se usa para leer. Tiene menor intensidad que el de borrado. Se refleja en zonas cristalinas y se dispersa en las amorfas
Blu-Ray● Blu-ray es un formato de disco óptico de
nueva generación de 12 cm de diámetro (igual que el CD y el DVD) para vídeo de alta definición y almacenamiento de datos de alta densidad
Blu-Ray● El uso del láser azul para escritura y lectura
permite almacenar más cantidad de información por área que los discos DVD, debido a que el láser azul tiene una menor longitud de onda que los láseres usados para almacenar en discos DVD
● Su capacidad de almacenamiento llega a 50 gigabytes a doble capa, y a 25 GB a una capa
Blu-Ray● El Blu-ray de 400 GB a 16 capas ya fue
patentado y se espera que salga al mercado en el 2010, así como se tiene pensado patentar un Blu-Ray de 1 terabyte para 2011 ó 2012
Blu-Ray – Funcionamiento● El disco Blu-ray hace uso de un rayo láser de
color azul con una longitud de onda de 405 nanómetros, a diferencia del láser rojo utilizado en lectores de DVD, éste con una longitud de onda de 650 nanómetros
● Ésto, junto con otros avances tecnológicos, permite almacenar sustancialmente más información que el DVD en un disco de las mismas dimensiones y aspecto externo
Blu-Ray – Funcionamiento● Blu-ray obtiene su nombre del color azul del
rayo láser● La letra "e" de la palabra original "blue" fue
eliminada debido a que, en algunos países, no se puede registrar para un nombre comercial una palabra común
Dispositivos externos● Las operaciones de E/S se realizan a través
de una amplia variedad de dispositivos● Un dispositivo se conecta al computador
mediante un enlace a un módulo de E/S● El enlace se utiliza para intercambiar señales
de control, estado y datos entre el módulo de E/S y el dispositivo externo
● Un dispositivo externo conectado a un modulo de E/S se denomina dispositivo periférico o simplemente periférico
Dispositivos externos● Los dispositivos externos se puede clasificar:
– Interacción con humanos● Terminales, impresoras, etc.
– Interacción con máquinas● Discos magnéticos, cintas, sensores, etc.
– Comunicación● Modem, terminal, etc.
Dispositivos externos● La conexión con el módulo de E/S se realiza
a través de señales de control, estado y datos
● La lógica de control del dispositivo controla su operación en respuesta a las indicaciones del módulo de E/S
● El transductor convierte señales eléctricas asociadas al dato a otro tipo de energía en el caso de la entrada o salida
● El transductor puede tener un buffer para almacenamiento temporal del dato
Dispositivos externos
Módulos de E/S● El tercer elemento clave (junto a la memoria
y el procesador) de un computador son los módulos de E/S
● Cada módulo se conecta al bus del sistema y controla uno o más dispositivos periféricos
● Un módulo no es solo un conector mecánico que permite enchufar el dispositivo, sino que también está dotado de cierta inteligencia
● Contiene lógica que permite la comunicación entre el periférico y el bus
Módulos de E/S● Un módulo tiene dos funciones
fundamentales:– Realizar la interfaz entre el procesador y la
memoria a través del bus del sistema– Realizar la interfaz entre uno o más
dispositivos periféricos mediante enlaces de datos
Módulos de E/S
Módulos de E/S● Funciones de un módulo de E/S se
encuentran dentro de las siguientes categorías:
– Control y temporización– Comunicación con el procesador– Comunicación con los dispositivos– Almacenamiento temporal de datos– Detección de errores
Módulos de E/S● En cualquier momento, el procesador puede
comunicarse con uno o más dispositivos externos
● Los recursos internos (memoria, bus) deben compartirse entre distintas actividades
● Por ello existe una necesidad de control y temporización para coordinar el tráfico entre los recursos internos y los periféricos
Módulos de E/S● Transferencia periférico → procesador:
– Procesador interroga al módulo de E/S para comprobar el estado del dispositivo conectado al mismo
– El módulo devuelve el estado– Si el dispositivo está operativo, el procesador
solicita la transferencia del dato mediante una órden al módulo
– El módulo obtiene el dato desde el dispositivo
– Los datos se transfieren desde el módulo de E/S al procesador
Módulos de E/S● La comunicación con el procesador implica:
– Decodificación de órdenes: provenientes del procesador
– Intercambio de datos: intercambio a través del bus
– Información de estado: para conocer el estado del módulo de E/S
– Reconocimiento de dirección: un módulo reconoce una única dirección por cada periférico que controla
Módulos de E/S● Comunicación con el dispositivo
– Implica una necesidad de intercambiar órdenes, información de esado y datos con el dispositivo externo o periférico
Módulos de E/S● Almacenamiento temporal
– La velocidad desde/hacia memoria es bastante alta
– Los datos provenientes de memoria se envían al módulo de E/S en ráfagas rápidas
– Los datos se almacenan temporalmente en el módulo de E/S
– Después se envían al periférico a la velocidad de éste
Módulos de E/S● Detección de errores:
– El módulo es responsable de informar sobre errore ocurridos en los dispositivos al procesador
– Errores mecánicos: atascos de papel, pistas de disco en mal estado, etc.
– Errores de transmisión desde el dispositivo al módulo de E/S
Estructura de un módulo de E/S● El módulo se conecta al resto del
computador a través de un conjunto de líneas del bus del sistema
● Los datos que se transfieren a y desde el módulo se almacenan temporalmente en registros de datos
● Puede haber registros de estado que informan lo propio
Estructura de un módulo de E/S● La lógica del módulo interactua con el procesador a
través de líneas de control● El procesador utiliza éstas líneas para dar órdenes
al módulo de E/S● El módulo también reconoce y genera las
direcciones de los dispositivos que controla● Cada módulo tiene una dirección única, o si
controla más de un dispositivo externo, un conjunto único de direcciones
● El módulo de E/S posee la lógica específica para la interfaz con cada uno de los dispositivos que controla
Estructura de un módulo de E/S● Un módulo de E/S permite que el procesador
vea a una amplica gama de dispositivos de una forma simplificada
● El módulo debe ocultar los detalles de temporización, formatos y electromecánicos de los dispositivos externos
Estructura de un módulo de E/S● Un módulo de E/S que se encarga de la
mayoría de los detalles, presentando al procesador una interfaz de alto nivel, se llama canal de E/S
● Un módulo que sea básico y requiera un control detallado, se denomina controlador de E/S
● Los controladores se usan en microcomputadoras y los canales en computadoras centrales grandes
Estructura de un módulo de E/S
E/S programada● El procesador está ejecutando un programa
y encuentra una instrucción relacionada con una E/S
● Ejecuta dicha instrucción mandando una orden al módulo de E/S apropiado
● Con la E/S programada, el módulo realiza la acción solicitada
● Luego activa los bits apropiados en el registro de estado de E/S
E/S programada● El módulo de E/S no realiza ninguna otra
acción para avisar al procesador● No interrumpe al procesador● El procesador es el responsable de
comprobar periódicamente el estado del módulo de E/S
● Hasta que encuentra que la operación ha terminado
E/S programada● Con la E/S programada los datos se
intercambian entre el procesador y el módulo de E/S
● El procesador ejecuta un programa que controla directamente la operación de E/S
● Incluyendo la comprobación del estado del dispositivo, el envío de una orden de lectura o escritura y la transferencia del dato
E/S programada● Cuando el procesador envía una orden al
módulo de E/S, debe esperar hasta que la operación concluya
● Si el procesador es mas rápido que el módulo de E/S, se desperdicia el tiempo
E/S programada● En la siguiente figura se observa un ejemplo
del uso de E/S programada para leer un bloque de datos desde un dispositivo y almacenarlo en memoria
● Los datos se leen palabra por palabra (16 bits por ejemplo)
● Por cada palabra leída, el procesador debe permanecer en un ciclo de comprobación de estado hasta que determine que la palabra está disponible en el registro de datos del módulo de E/S
E/S programada
E/S programada● En el diagrama de flujo se observa la
principal desventaja de ésta técnica:– Es un proceso que consume tiempo– Mantiene al procesador innecesariamente
ocupado
E/S mediante interrupciones● El problema de la E/S programada es:
– El procesador tiene que esperar un tiempo considerable a que el módulo de E/S esté preparado para recibir o transmitir
– El procesador, mientras espera, debe comprobar repetidamente el estado del módulo de E/S
– Degrada el nivel del prestaciones del todo el sistema
E/S mediante interrupciones● Una alternativa consiste en que el
procesador, tras enviar una orden de E/S a un módulo, continúe realizando algún trabajo útil
● Después, el módulo de E/S interrumpirá al procesador para solicitar su servicio cuando esté preparado para intercambiar datos con él
● El procesador ejecuta entonces la transferencia de datos como antes, y continúa con el procesamiento previo
Accesso directo a memoria● Inconvenientes de la E/S programada y con
interrupciones:– Ambas requieren intervención del
procesador para transferencias de datos entre la memoria y el módulo de E/S
– La velocidad de transferencia de E/S está limitada por la velocidad a la cual el procesador puede comprobar y dar servicio a un dispositivo
– El procesador debe dedicarse a la gestión de las transferencias de E/S
Accesso directo a memoria● Las técnicas anteriores tienen un impacto
negativo en la actividad del procesador como en la velocidad de transferencia de E/S
● Cuando hay que transferir grandes volúmenes de datos, se requiere una técnica más eficiente llamada DMA
DMA - Funcionamiento● DMA requiere de un módulo adicional en el
bus del sistema● El módulo de DMA imita al procesador● Es capaz de recibir el control del sistema
cedido por el procesador● Necesita dicho control para transferir datos a
y desde memoria a través del bus del sistema
DMA - Funcionamiento● Para hacerlo el módulo debe utilizar el bus
solo cuando el procesador no lo necesita● También puede forzar al procesador a que
suspenda su funcionamiento● Esta última técnica es la más común y se
denomina robo de ciclo puesto que el módulo DMA roba un ciclo del bus
DMA - Funcionamiento● Cuando el procesador desea leer o escribir un bloque de
datos, envía una orden al módulo de DMA incluyendo la siguiente información
– Lectura o escritura, por la línea de control entre el procesador y el módulo DMA
– La dirección del dispositivo de E/S salida en cuestión, por la línea de datos
– Posición inicial de memoria a partir de donde se lee o escribe por la línea de datos y almacenada por el módulo DMA en su registro de direcciones
– Número de palabras a leer o escribir por la línea de datos y almacenado en el registro de cuenta de datos
DMA - Funcionamiento
DMA - Funcionamiento● Después el procesador continúa con otro trabajo● Ha delegado la operación de E/S al módulo de DMA,
que se encargará de ella● El módulo de DMA transfiere el bloque completo de
datos, palabra a palabra, directamente desde, o hacia, la memoria, sin que tenga que pasar a través del procesador
● Cuando la transferencia se ha terminado, el módulo de DMA envía una señal de interrupción al procesador
● El procesador sólo interviene al comienzo y al final de la transferencia
DMA - Funcionamiento● En la siguiente figura se muestra en qué
momento del ciclo de instrucción puede detenerse el procesador
● En cada caso, el procesador se detiene justo antes de necesitar el bus
● Después, el módulo de DMA transfiere una palabra y devuelve el control al procesador
● Obsérvese que no se trata de una interrupción; el procesador no guarda el contexto ni hace nada más
DMA - Funcionamiento
DMA - Funcionamiento● El efecto resultante es que el procesador es
más lento ejecutando los programas● No obstante, para una transferencia de E/S
de varias palabras el DMA es mucho mas eficiente que la E/S mediante interrupciones o la programada
DMA - Funcionamiento● El mecanismo de DMA puede configurarse de diversas
formas● La siguiente figura muestra todos los módulos
compartiendo el mismo bus del sistema● El módulo de DMA, actuando como un procesador
suplementario, utiliza E/S programada para intercambiar datos entre la memoria y un módulo de E/S
● Esta configuración, si bien es la más económica, es claramente ineficiente
● Igual que con la E/S programada controlada por el procesador, la transferencia de cada palabra consume ciclos de bus
DMA - Funcionamiento
DMA - Funcionamiento● El número de ciclos necesarios puede
reducirse sustancialmente si se integran las funciones de DMA y de E/S
● Esto significa que existe un camino entre el módulo de DMA y uno o más módulos de E/S que no incluy al bus del sistema
● La lógica de DMA puede ser parte de un módulo de E/S o puede ser un módulo separado que controla a uno o más módulos de E/S
DMA - Funcionamiento
DMA - Funcionamiento● El concepto anterior se puede llevar mas
lejos conectando los módulos de E/S a un módulo de DMA mediante un bus de E/S
● Esto reduce a uno el número de interfaces de E/S en el módulo de DMA
DMA - Funcionamiento
DMA - Funcionamiento● En los dos últimos casos, el bus del sistema,
que el módulo de DMA comparte con el procesador y la memoria, es usado por el módulo de DMA sólo para intercambiar datos con la memoria
● El intercambio entre los módulos de DMA y E/S se produce fuera del bus del sistema