DMA y Discos. María Elena Buemi. 15 de junio María Elena Buemi () DMA y Discos 15 de junio / 27

Documentos relacionados
Práctica 8 - DMA y Almacenamiento Masivo

ENTRADA/SALIDA. Conectar con el mundo real CPU. Arquitectura de Ordenadores. Entrada/Salida. Arquitectura de Ordenadores. Entrada/Salida MEMORIA

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

Tema 5: Memorias. Espacio reservado para notas del alumno

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

Arquitectura de Computadoras. Anexo Clase 8 Buses del Sistema

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

Contenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S

La memoria del ordenador

1) Se dispone de un computador de 32 bits con la siguiente estructura:

Tema 6: Periféricos y entrada-salida

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

Manejo de Entrada-Salida. Arquitectura de Computadoras

Estructura del Computador

Entrada salida y comunicación

Manejo de Entrada-Salida. Arquitectura de Computadoras

Guía rápida para gestionar el puerto paralelo del PC

Sistemas de Computación I/O. 2º Semestre, 2008 José Miguel Rubio L.

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

TEMA 6.- INTERFACES PARA DISCOS DUROS. nexo de conexión que facilita la comunicación entre dos dispositivos

PROBLEMAS TEMA 3: Unidad de Entrada/Salida

Estructura de los dispositivos de E/S.

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

ESTRUCTURA BÁSICA DE UN ORDENADOR

CICLOS DEL PROCESADOR

Tema 2 HARDWARE III. TICs 1º Bachillerato

Conceptos de Arquitectura de Computadoras Curso 2015

Organización lógica Identificación de bloque

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

El nivel ISA (II)! Conjunto de Instrucciones

Definición de Memoria

EL ORDENADOR Y SUS COMPONENTES

Introducción a la arquitectura de computadores

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Convivencia. Gestión del Sistema de Entrada/Salida

4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1 Mb? C) 1 Kb?

TEMA 6: GESTIÓN DE ENTRADA/SALIDA

Estructura de Computadores

Introducción a los Sistemas Operativos

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Dispositivos de Procesamiento y Dispositivos de Memoria. Dra. Leticia Flores Pulido Introducción a la Ingeniería en Computación

Señal de petición de Interrupción

Arquitectura de Computadores. Apellidos, Nombre:

Almacenamiento magnético, 4

Arquitectura de Computadores II Clase #3

UNIDAD 1. COMPONENTES DEL COMPUTADOR

INTERFACE CON MEMORIA y E/S

Introducción a los Sistemas Operativos

Organización del Computador 1. Máquina de von Neumann Jerarquía de Niveles

Tema 9 Periféricos de Entrada

Partes Internas y Externas de la Computadora

Contenido. Sistemas de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida

Unidad de Memoria. Almacenamiento de información Operaciones básicas. Propiedades de la Memoria. Escritura o almacenamiento. Lectura.

Práctica 4 - Arquitectura CPU

Entrada/Salida. Contenidos: 1. Definición y objetivos 2. Estructura del susbsitema de entrada/salida. 3. Políticas de gestión de disco

Mapeo en el P 8086 de Intel

Bus I 2 C. Introducción

Sistemas Operativos. Curso 2014 Estructura de los sistemas de computación

Componentes Internos y Externos del Ordenador. Prof: Ronald Méndez

Organización n del Computador 1. C13 buses

EL HARDWARE INTERNO Y EXTERNO DE LA COMPUTADORA

INTERRUPCIONES. Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A

Respuestas al Problemario Memoria Cache

Tema 6. Gestión avanzada de la E/S

MPI. Índice. Tecnologías de Control. TEMA MPI 1. Subred MPI. 2. Comunicación de Datos Globales. 3. Funciones Básicas S7. 4.

Tema: Microprocesadores

Gestión de Entrada/Salida

Sistemas Operativos. Curso 2016 Subsistema de Entrada-Salida

Departamento técnico. Guía rápida CC-LINK. Autómatas serie Q con variadores FR-E 1 / 33

4.2 Servicio de exploración de E/S

Electrónica Digital II

Jerarquía de memoria - Motivación

SISTEMAS DE ENTRADA/SALIDA

COMUNICACIÓN SERIE (RS232)

Organización del Computador 1 Memorias

Introducción a BMP085 Versión 1.0

MODBus RTU en los registradores CAMRegis

Discrete Automation and Motion Drives y PLC Plataforma de automatización escalable AC500 Modbus RTU

Sistemas Operativos. Curso 2016 Estructuras de dispositivos masivos de datos

Controlador de Interrupciones (Versión programable) Manual de Usuario

Soporte a sistemas informáticos. Discos duros. Tipos. Velocidad de giro (RPM)

CyberLink. PowerDVD Copy. Guía del usuario

FUNDAMENTOS DE INFORMATICA

1. DATOS e INFORMACIÓN.

TEMA 1: Concepto de ordenador

Unidad 1: Conceptos generales de Sistemas Operativos.

Denominamos Ordenador o Computadora, a una máquina electrónica que es capaz de dar un tratamiento automatizado a la información.

Periféricos Práctica 4: CD-Audio

DESCRIPCIÓN DE HARDWARE. Ing. Andrés Felipe Liloy López Skype:

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

Objetivos. Conocer los distintos dispositivos de memoria y almacenamiento existentes y valorar ventajas e inconvenientes de cada uno

Organización del Computador 1 Memoria Cache

Todos los comandos de DEBUG se invocan usando una sola letra y son los siguientes:

Curso Introducción A Los Computadores Y Open Office Writer

FUNCIONAMIENTO DEL ORDENADOR

Sistemas. POSTREQUISITO: CATEGORÍA: Obligatorio SECCION: A HORAS POR SEMANA

SISTEMAS OPERATIVOS Arquitectura de computadores

Transcripción:

DMA y Discos María Elena Buemi 15 de junio 2010 María Elena Buemi () DMA y Discos 15 de junio 2010 1 / 27

Transferencias entre Módulos María Elena Buemi () DMA y Discos 15 de junio 2010 2 / 27

DMA según Wikipedia 1 El acceso directo a memoria (DMA, del inglés Direct Memory Access) permite acceso a la memoria para leer o escribir sin que CPU intervenga. 2 Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. 3 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. 4 Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. 5 En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. María Elena Buemi () DMA y Discos 15 de junio 2010 3 / 27

Ejemplo, Wikipedia 1 Mover un bloque de memoria desde una memoria externa a una interna más rápida 2 Qué Dispositivo se ocupa? 3 DMA 4 Consecuencia? 5 CPU puede hacer otras tareas. María Elena Buemi () DMA y Discos 15 de junio 2010 4 / 27

Ejemplo, Wikipedia 1 Por qué DMA? 2 Aumenta el rendimiento de aplicaciones que necesiten muchos recursos. 3 Qué se necesita del Sistema, ya que no usa CPU? 4 Se necesitan las ĺıneas del sistema de interconexión(system Bus) María Elena Buemi () DMA y Discos 15 de junio 2010 5 / 27

Módulo DMA(Stallings) María Elena Buemi () DMA y Discos 15 de junio 2010 6 / 27

Funciones de DMA Stallings DMA es capaz de imitar al CPU, y efectivamente, toma el control del sistema. Para qué? Para hacer transferencias de datos - lectura o escritura - con la memoria por el sistema de bus. Cuando el procesador envía una petición de Lectura o Escritura, envía al DMA la siguiente información: 1 Read o Write ĺıneas entre CPU y DMA 2 Datos comunica la dirección del dispositivo de I/O, Posición en Memoria, cantidad de Palabras. 3 Registro de dirección guarda la dirección de Memoria. 4 Qué se necesita del Sistema, ya que no usa CPU? 5 El sistema de bus. María Elena Buemi () DMA y Discos 15 de junio 2010 7 / 27

Ejercicio 1 María Elena Buemi () DMA y Discos 15 de junio 2010 8 / 27

Protocolo entre DMA y Dispositivo E/S A continuación se describe el protocolo entre el controlador de DMA y un dispositivo de E/S para realizar transferencias de datos usando el I/O Bus. 1. El controlador DMA pone en el bus de direcciones el identificador del dispositivo con el que desea iniciar la comunicación y levanta la señal de Request, de RD o WR, según corresponda y baja la ĺınea de M/IO. 2. El controlador del dispositivo detecta la señal de Request y compara su propio identificador con el contenido del bus de direcciones. 3. Si coincide el identificador y el dispositivo se encuentra listo, el controlador del dispositivo levanta la señal de Ready. 4. El controlador DMA detecta la señal de Ready. En el caso de tratarse de una escritura, el controlador DMA pone el dato a escribir junto con su posición de memoria en los buses correspondientes. Por otro lado, en el caso de una lectura, el controlador de DMA pone la dirección del dato deseado. 5. El controlador DMA baja la señal de Request. 6. De tratarse de una escritura, el controlador del dispositivo ordena grabar el dato, o en el caso de una lectura pone el dato en el bus. Luego, baja la señal de Ready. 7. Si se trata de una lectura el DMAC lee el dato del bus de datos. 8. En ambos casos, lectura y escritura, el DMAC retira las ĺıneas y baja la señal de RD o WR según corresponda. 9. Si es una lectura, cuando el DMAC baja la señal de RD la controladora del dispositivo quita el dato del bus de datos. María Elena Buemi () DMA y Discos 15 de junio 2010 9 / 27

Protocolo entre DMA y Memoria Equivalente al que hay entre DMA y Dispositivo. Cambia el valor de la ĺınea M/IO y no se coloca en el bus el indentificador del dispositivo. María Elena Buemi () DMA y Discos 15 de junio 2010 10 / 27

Registros de DMA mapeados a Memoria La Placa de Captura de video tiene su espacio de direcciones mapeado amemoria en las direcciones FE00 a FF00. por simplicidad se supone que es una pantalla de video. El identificador de este dispositivo es 0x005F.(lo usaremos más adelante) El controlador de DMA posee los siguientes registros también mapeados a memoria en las direcciones indicadas: DEVICE (0xFFA0): identificador del dispositivo. DEVICE ADDRESS (0xFFA1): dirección de memoria (en el espacio de direccionamiento del dispositivo) que se desea leer/escribir. MEM ADDRESS (0xFFA2): dirección de memoria (en el espacio de direccionamiento de la memoria principal) que se desea leer/escribir. SIZE (0xFFA3): cantidad de datos a transferir. STATUS (0xFFA4): si bit 0 contiene 1 indica que ya se han cargado todos los datos necesarios, y se puede iniciar la transmisión. el bit 1 contiene un 1 en caso de escritura, y un 0 en caso contrario. María Elena Buemi () DMA y Discos 15 de junio 2010 11 / 27

Comportamiento del controlador de DMA Es el siguiente: cuando el bit 0 de STATUS contiene un 1 significa que se puede comenzar la transferencia. Si el bit 1 de STATUS es un 1 entonces será de IO a Memoria, si es 0 sera de Memoria a IO. Serán transferidos la cantidad de palabras que indique SIZE, de la dirección indicada por MEM ADDRESS a DEVICE ADDRESS o viceversa. María Elena Buemi () DMA y Discos 15 de junio 2010 12 / 27

Primitivas para obtener/liberar el bus: requestbus() : Solicita el bus para realizar cualquier transferencia. releasebus() : Libera el bus una vez que se termino de utilizar. María Elena Buemi () DMA y Discos 15 de junio 2010 13 / 27

Primitivas para leer/escribir valores en las señales: señal(es) Request Ready RD RW M/IO bus de datos bus de direcciones primitivas setrequest(x), getrequest() setready(x),getready() setread(x),getread() setwrite(x),getwrite() setmemoryio(x),getmemoryio() setdata(x),getdata() setaddress(x),getaddress() María Elena Buemi () DMA y Discos 15 de junio 2010 14 / 27

Qué hace cada primitiva setrequest(x): Setea la señal de Request con el valor de x(x en 1 ó 0) getrequest(): Devuelve el valor de Request setready(x): Setea la señal de Ready con el valor de x(x en 1 ó 0) getready(): Devuelve el valor de Ready setread(x): Setea la señal de RD con el valor de x(x en 1 ó 0) getread(): Devuelve el valor de RD setwrite(x): Setea la señal de RW con el valor de x(x en 1 ó 0) getwrite(): Devuelve el valor de RW setmemoryio(x): Setea la señal de M/IO con el valor de x(x en 1 ó 0) getmemoryio(): Devuelve el valor de M/IO setdata(x): Escribe x en el bus de datos getdata(): Lee el bus de datos setaddress(x): Escribe x en el bus de direcciones getaddress(): Lee el bus de direcciones María Elena Buemi () DMA y Discos 15 de junio 2010 15 / 27

a) Escribir el seudo-codigo que realiza el controlador de DMA MIENTRAS (true){ SI STATUS Tiene bit 0 en 1 ENTONCES{ SI STATUS tiene bit 1 en 1 ENTONCES { 1.Si se solicita transferir del I/O a Memoria 1.1 Leer del dispositivo al DMA 1.2 Escribir del DMA a la Memoria 1.3 actualiza registros Sino 2. Si en cambio se solicita Transferir de Memoria a Dispositivo 2.1 Lee de Memoria al DMA 2.2 Escribe de DMA a Dispositivo 3.3 actualiza registros FinSi FINSI} FINSI} FINMIENTRAS} } María Elena Buemi () DMA y Discos 15 de junio 2010 16 / 27

a)1.1. Tranferir de I/O a Memoria: Leer del dispositivo a DMA while(true) { if(status AND [10...0] =/= 0 ) { if( STATUS AND [010...0] =/= 0 ) { //comentario: IO a Memoria while( SIZE > 0 ) { requestbus() setmemoryio(0) setread(1) setwrite(0) setaddress(device) setrequest(1) wait while( getready() = 0 ) setaddress(device ADDRESS) setrequest(0) wait while( getready() = 1 ) tempdato < getdata() setread(0) releasebus() María Elena Buemi () DMA y Discos 15 de junio 2010 17 / 27

a)1.2 Tranferir de I/O a Memoria: Escribir de DMA a Memoria requestbus() setmemoryio(1) setread(0) setwrite(1) setrequest(1) wait while(getready() = 0) setaddress(mem ADDRESS) setdata(tempdato) setrequest(0) wait while(getready() = 1) setwrite(0) setmemoryio(0) releasebus() MEM ADDRESS <- MEM ADDRESS + 1 DEVICE ADDRESS <- DEVICE ADDRESS + 1 SIZE <- SIZE - 1 } STATUS <- STATUS AND [01...1] } María Elena Buemi () DMA y Discos 15 de junio 2010 18 / 27

a)2.1tranferir de Memoria a I/O: Leer de Memoria a DMA else { //comentario: IO a Memoria while( SIZE > 0 ) { requestbus() setmemoryio(1) setread(1) setwrite(0) setrequest(1) wait while( getready() = 0 ) setaddress(mem ADDRESS) setrequest(0) while( getready() = 1 ) tempdato < getdata() setmemoryio(0) setread(0) releasebus() María Elena Buemi () DMA y Discos 15 de junio 2010 19 / 27

a)2.2memoria a I/O: Escribir de DMA a I/O requestbus() setmemoryio(0) setread(0) setwrite(1) setaddress(device) setrequest(1) while(getready() = 0) setaddress(device ADDRESS) setdata(tempdato) setrequest(0) while(getready() = 1) setwrite(0) setmemoryio(0) releasebus() MEM ADDRESS <- MEM ADDRESS + 1 DEVICE ADDRESS <- DEVICE ADDRESS + 1 SIZE <- SIZE - 1 } STATUS <- STATUS AND [01...1] } enviarinterrupcion() } María Elena Buemi () DMA y Discos 15 de junio 2010 20 / 27

b)escribir rutina de interrupción La Placa de Captura de video tiene su espacio de direcciones mapeado amemoria en las direcciones FE00 a FF00. por simplicidad se supone que es una pantalla de video. El identificador de este dispositivo es 0x005F. Suponga que existe un proceso que muestra en la pantalla los cuadros de video capturados por la placa. Este proceso posee una rutina que escribe en la memoria principal el cuadro capturado. La placa capturadora genera una interrupción, cada vez que se captura un cuadro. Realizar el seudo-código de la rutina que atiende la interrupción de la placa. (El rango de memoria AB00 a AC00 esta reservado para guardar la pantalla capturada en memoria principal) María Elena Buemi () DMA y Discos 15 de junio 2010 21 / 27

b) Rutina rutina:...... MOV R1, 0xAB00 MOV R2, 0xFE00 MOV R0, 0x0100 ciclo: MOV [R1], [R2] ADD R1, 1 ADD R2, 1 SUB R0, 1 CMP R0, 0 JE fin fin: JMP ciclo...... RETI copia el ppio del rango de memoria en R1 María Elena Buemi () DMA y Discos 15 de junio 2010 22 / 27

c) Escribir rutina usando el controlador de DMA rutina:...... MOV [DEVICE], 0x005F MOV [DEVICE ADDRESS], 0x0000 MOV [MEM ADDRESS], 0xAB00 MOV [SIZE], 0x0100 OR [STATUS], 0x8000...... RETI María Elena Buemi () DMA y Discos 15 de junio 2010 23 / 27

Ejercicio 2: Discos A continuación se presentan algunos parámetros característicos de un disco rígido. Cantidad de Bytes por Sector : Sector bytes Bytes Cantidad de Platos o Cantidad de Cabezas : Cabezas Cantidad de Pistas por Plato o Cantidad de Cilindros : Cilindros Cantidad de Sectores por Pista : Sectores pista Tiempo entre Pistas adyacentes : T adyasentes Seg Tiempo promedio entre Pistas : T promedio Seg Latencia : T latencia Seg Capacidad del Buffer : Buffer Mb Velocidad de Rotacion : Disco rotacion RPM Velocidad de Transferencia de la Interfaz : Interfaz velocidad Mb/Seg María Elena Buemi () DMA y Discos 15 de junio 2010 24 / 27

Se pide: 1 Calcular los siguientes valores característicos a partir de los parámetros presentados. 1 Cantidad de Sectores totales. 2 Capacidad máxima en Mbytes. 3 Tiempo de lectura de un sector. 4 Tiempo de transferencia de un sector. 5 Tiempo de transferencia de n sectores consecutivos sobre una misma pista. María Elena Buemi () DMA y Discos 15 de junio 2010 25 / 27

Resolución- ambos ej. D. González Márquez 1 Sectores totales = Cabezas Cilindros Sectores pista 2 Capacidad total = Sectores totales Sector bytes 3 T Lectura.Sector = 60/( Disco rotacion Sectores pista ) 4 T Transferencia.Sector = T Lectura.Sector + Sector bytes /(2 20 Interfaz velocidad ) 5 T Transferencia.Sectores.Unica.Pista (n) = n T Transferencia.Sector + (n 1) T latencia María Elena Buemi () DMA y Discos 15 de junio 2010 26 / 27

Bibliografía Computer Organization and Architecture: Designing for Performance,8/E William Stallings. ISBN-10: 0136073735. ISBN-13: 9780136073734 Publisher: Prentice Hall. Copyright: 2010 Null, Linda. The essentials of computer organization and architecture / Linda Null, Julia Lobur. p. cm. ISBN 0-7637-0444-X María Elena Buemi () DMA y Discos 15 de junio 2010 27 / 27