8237A. Programación en Ensamblador Ing. Marcelo Tosini

Documentos relacionados
Acceso directo a Memoria

Estructura y Tecnología de Computadores. Módulo E. El subsistema de E/S. Tema 9. Acceso directo a memoria (DMA) y procesadores de E/S

Integración de Equipos para Comunicaciones

Controlador de Floppy Disk - DMA

(5) Unidad 5. Entrada / Salida SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Memoria y Entrada/Salida Tecnología Organización - Expansión

Entrada y Salida! EC-2721 Arquitectura del Computador I! Entradas/Salidas: Problemas. Entradas salidas: Criterios. Amplia variedad de periféricos!

ESTRUCTURA FÍSICA DEL µp 8086

Integración de Equipos para Comunicaciones Tema 3: Bus ISA Aurelio Vega Martínez

Arquitectura de Computadores

Arquitectura de Computadoras 2011

Velocidades Típicas de transferencia en Dispositivos I/O

Estructura de Computadores

Tema 4: SISTEMAS DE ENTRADA/SALIDA. Un computador no puede estar formado sólo por la CPU y la memoria.

(7) Unidad 7. Buses básicos de la arquitectura 80x86 SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

ARQUITECTURA DE COMPUTADORES DESCRIPCIÓN BUS PCI (Tema 1: Conexión Externa de Procesadores. Buses)

ORGANIZACIÓN DEL MICROCOMPUTADOR

UNIDAD 3. Interfaz de E/S Básica, Interrupciones y E/S Controlada por DMA

Apéndice: circuitos integrados E/S

Organización del Computador. Entradas / Salidas

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

INTRODUCCIÓN AL BUS ISA

Unidad 5 Caso de Estudio. Arquitectura ISA. Técnicas Digitales II UTN-FRM. Introducción

INTRODUCCIÓN. Comunicación Serial.

Armado de un microcomputador, basado en microcontrolador 8031

La Unidad de Memoria y su

Controlador Programable de Interrupciones i8259

UNIDAD 2. Unidad de Microprocesador (MPU) Microprocesadores Otoño 2011

Trabajo Práctico Nro 2: Mapeo Decodificación

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Arquitectura de Computadores

Introducción a los sistemas de entrada/salida Profesores y tutorías

Cuando se mueven grandes cantidades de datos se necesita una técnica mejor DMA

Arquitectura de Computadoras. Clase 3 Entrada/Salida

Tema 7. Entrada / Salida

Controladores de memoria externa

Enlaces Seriales UART, I2C, SPI

GESTION DE ENTRADA Y SALIDA

Terminales del P 8085 (vistos hasta ahora)

CURSO: Electrónica digital UNIDAD III: CIRCUITOS SECUENCIALES - TEORÍA

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos

B) Arquitectura generalizada de una computadora

Práctica 9. Organización del Computador 1 2do. Cuatrimestre de 2005

Organización del Computador 1 Entradas / Salidas

TARJETA DE ADQUISICIÓN DE DATOS Y CONTROL

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

TEMA III. Unidad de entrada salida

Buses. Organización del Computador I. David Alejandro González Márquez

Tema 6. El sistema de entrada-salida

ESPACIO DE DIRECCIONES

Módulo de 16 entradas digitales modbus:

Unidad II: Memorias. Ing. Marglorie Colina

}Transparencias de clase en

Arquitectura de Computadoras 2011

MODBus RTU en los registradores CAMRegis

Mapas de Memoria y E/S

Arquitectura de Computadores

SUBSISTEMA DE ENTRADA-SALIDA. Arquitectura de Computadores I 4º tema

ITT-327-T Microprocesadores

Interfaces de Entrada / Salida

Arquitectura (Procesador familia 80 x 86 )

Señales de interfase del Z80

Introducción a la Computación. Capítulo 7 Entrada/Salida

ESTRUCTURA DE INTERCONEXIÓN DE UN COMPUTADOR

Arquitectura de computadoras

MODBUS CONTENIDO. Protocolo de Comunicaciones MODBUS. Introducción Estructura de la Red MODBUS Características del Protocolo Aplicaciones Referencias

Problema 5. Cálculo de la temporización. Programación del Lectura de la cuenta del temporizador 0

Instituto Tecnológico de Morelia

ARQUITECTURA INTERNA DEL µp8086

Mapa de E/S en una PC. Autor: Alejandro Furfaro 12

EVOLUCIÓN HISTÓRICA DE LOS µp

Arquitectura de Computadoras. Clase 2 Interrupciones

MÓDULO 2 Sergio Noriega

INSTITUTO TECNOLÓGICO DE CHIHUAHUA II ARQUITECTURA DE COMPUTADORAS MAESTRO: ERNESTO LEAL ALUMNOS: LUIS CARLOS BARRERA ORTIZ STHEPANIE FLORES GUILLEN

Circuitos secuenciales

Puerto Paralelo Bidireccional.

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Mapeo en el P 8086 de Intel

MICROPROCESADOR

ALMACENAMIENTO Y OTROS ASPECTOS DE LA ENTRADA/SALIDA. Ancho de banda máximo posible: una palabra por ciclo de reloj de manera sostenida, es decir:

Práctica 7 - Buses. Organización del Computador 1. Verano 2010

Interrupciones y entrada/salida

El procesador. Datapath y control

Relación de Problemas I

TEMA 2: MICROPROCESADORES Y MICROCONTROLADORES

Memoria Caché. Algorítmo de Mapeo Directo

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Arquitectura Interna del 8088

MODBus RTU en los registradores CAMRegis

Estructura y Tecnología de Computadores. Módulo D. Buses del computador. Tema 6. Características y protocolos de los buses

Examen de Arquitectura de Computadores 15 de septiembre de 2004

Solución 1. Solución usando un 8255 para las entradas y salidas, un 8254 para la temporización y realizando la entrada/salida por polling.

Electrónica Digital II

ITT-327-T Microprocesadores

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255

Arquitectura de Computadores, SO

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

Transcripción:

8237A

Características Permite realizar transferencias desde dispositivos de I/O a memoria memoria a dispositivos de I/O memoria a memoria Frecuencia de funcionamiento de 6 Khz Hoy en día no es necesario su uso. Se mantiene por copatibilidad Necesario para las transferencias de datos desde o hacia unidades de disketes

Arquitectura del DMA 4 canales DMA independientes por chip Sólo un canal puede estar activo 2 esquemas de prioridades Fija : canal 0 prioridad mas alta canal 3 prioridad mas baja rotativa : las prioridades rotan entre los canales IOW MEMR MEMW Vcc RDY HLDA ADSTB AEN CS CLK RESET DACK0..DACK3..DREQ3 8237A GND Vcc A0..A3 EOP A4..A7

Generación de direcciones Controlador DMA latch externo Paginador externo bits 0 a 7 bits 8 a 15 bits 16 a 23 Dirección para el Bus Pagina 0 (64 KB c/u) Pagina 1 Pagina 2 Buffer DMA Pagina 255 0 Bytes 16 MBytes

Esquema de conexionado Bus de datos Bits 0 a 7 Latch externo de 8 bits Controlador DMA paginador externo ADSTB A0..A7 Bus de direcciones Bits 0 a 7 Bits 8 a 15 Bits 16 a 23 Bits 24 a 32

s del controlador DMA dma_address dma_count dma_page dma_status dma_command dma_request dma_chmask dma_mode dma_flipflop dma_masterclr dma_temp dma_maskclr dma_mask Dirección de comienzo de transferencia DMA Cantidad de bytes (palabras) a transferir Página de memoria de la dirección de estado de comando Disparar DMA-Request Enmascarar canales Modo transferencia Flipflop carga de dirección Reponer controlador temporal Liberar todos canales Enmascarar todos canales

Arquitectura DMA ampliada CPU Cascada mediante canal canal 4 5 6 7 DREQ1 DREQ2 DREQ3 canal 0 1 2 3 DREQ1 DREQ2 DREQ3 (usualmente diskettes) MASTER 8237A SLAVE 8237A 16 bit controller 8 bit controller

s del controlador DMA Dirección de inicio Dirección inicio 0 : 00h - C0h Dirección inicio 1 : 02h - C4h Dirección inicio 2 : 04h - C8h Dirección inicio 3 : 06h - CCh Carga una dirección de 16 bits en 2 registros de 8 bits como sigue: Out 0Ch, 0 Out C4h, lo Out C4h, hi ; resetea el Flip Flop de byte-palabra ; carga el registro latch externo ; setea el Flip Flop de byte palabra ; carga el registro de dirección del DMA

s del controlador DMA Contador Contador 0 : 01h - C2h Contador 1 : 03h - C6h Contador 2 : 05h - CAh Contador 3 : 07h - CEh Carga la longitud de la transferencia Out 0Ch, 0 Out C6h, lo Out C6h, hi ; resetea el Flip Flop de byte-palabra ; carga parte baja de la cuenta ; setea el Flip Flop de byte palabra ; carga la parte alta de la cuenta

s del controlador DMA Estado (08h - 0D0h) 7 6 5 4 3 2 1 0 1 = Terminal Count alcanzado para canal 0 1 = Terminal Count alcanzado para canal 1 1 = Terminal Count alcanzado para canal 2 1 = Terminal Count alcanzado para canal 3 1 = Petición DMA por el canal 0 (DREQ 0) 1 = Petición DMA por el canal 1 (DREQ 1) 1 = Petición DMA por el canal 2 (DREQ 2) 1 = Petición DMA por el canal 3 (DREQ 3)

s del controlador DMA Comando (08h - 0D0h) 7 6 5 4 3 2 1 0 0 : Tipo de transferencia 4 : formación de prioridades 0 = mem-disp 0 = estáticas 1 = mem-mem 1 = rotativas 1 : fin transf mem-mem en canal 0 5 : duración del write-signal 0 = canal recorre memoria 0 = tarde 1 = canal detenido 1 = alargado 2 : estado del controlador 6 : nivel DRQx 0 = controlador activado (PC) 0 = petición si línea actica 1 = controlador desactivado 1 = petición si línea no activa 3 : acceso comprimido 7 : nivel DACKx 0 = confirmación activa 1 = confirmación no activa

s del controlador DMA Request (09h - 0D2h) 7 6 5 4 3 2 1 0 Número binario de canal (0 a 3) Bit de petición 0 = sin petición 1 = simular petición mediante líneas DREQx

s del controlador DMA Enmascaramiento 1 (0Ah - 0D4h) 7 6 5 4 3 2 1 0 Número binario de canal (0 a 3) Bit de máscara 0 = sin máscara 1 = ignorar peticiones DMA en este canal

s del controlador DMA Enmascaramiento 2 (08h - 0D0h) 7 6 5 4 3 2 1 0 Canal 0 0= sin máscara. Permitir peticiones DMA 1 = ignorar peticiones DMA en el canal Canal 1 0= sin máscara. Permitir peticiones DMA 1 = ignorar peticiones DMA en el canal Canal 2 0= sin máscara. Permitir peticiones DMA 1 = ignorar peticiones DMA en el canal Canal 3 0= sin máscara. Permitir peticiones DMA 1 = ignorar peticiones DMA en el canal

s del controlador DMA Modo (0Bh - 0D6h) 7 6 5 4 3 2 1 0 1-0 : Número binario de canal 3-2 : Modo de transferencia 00 = autotest del controlador 01 = escribir (de memoria a periferia) 10 = leer (de periferia a memoria) 11 = no definido 4 : Inicialización automática después de TC o EOP (0 = desconectada ; 1 = conectada) 5 : 0 = incremento de direcciones 1 = decremento de direcciones 7-6 : Modo del canal 00 = transferencia por demanda 01 = transferencia individual 10 = transferencia de bloques 11 = controlador DMA en cascada

Transferencias de 8 bits (programación) Paso 1: bloquear el puerto DMA correspondiente Paso 2: convertir dirección de memoria al formato: Rdma Rdma,Rext,page CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (programación) Paso 3: resetear el flip-flop de dirección Paso 4: cargar 8 bits medios en el registro latch CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (programación) Paso 5: cargar 8 bits bajos en reg. de dirección del DMA Paso 6: cargar 8 bits altos en reg. de página correspondiente CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (programación) Paso 7: resetear el flip-flop de cuenta Paso 8: cargar 8 bits bajos en el registro contador Paso 9: cargar 8 bits altos en el registro contador CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (programación) Paso 10: activar el puerto DMA correspondiente CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (funcionamiento) Paso 1: El dispositivo colgado al canal programado envía una petición por el DREQx correspondiente CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (funcionamiento) Paso 2: El controlador DMA solicita el uso del bus a la CPU a través de CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (funcionamiento) Paso 3: Cuando la CPU libera el BUS avisa al controlador DMA a través de HLDA CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (funcionamiento) Paso 4: El controlador DMA avisa al dispositivo que puede iniciar la transferencia ya que el bus es del DMA CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (funcionamiento) Paso 5: El DMA avisa al registro de página y al registro latch que pongan sus contenidos en el bus de direcciones CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (funcionamiento) Paso 5: El DMA activa la memoria para escritura (memw) y avisa al controlador que puede enviar un byte del bloque CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (funcionamiento) Paso 6: El proceso se repite hasta que el contador llegue a FFFFh En cada paso de incrementa o decrementa la dirección de RAM CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 8 bits (funcionamiento) Paso 7: El DMA avisa al registro de página y al registro latch que pongan sus contenidos en el bus de direcciones CPU HLDA DACK0 Memoria Port 81h A0..A7 ADSTB de página IOW MEMR MEMW latch A8..A15 memr memw A16..A23 Data Direc. Control

Transferencias de 16 bits Usualmente se usa el controlador DMA maestro para las transferencias de 16 bits en tanto que el esclavo se usa para 8 bits El DMA maestro es igual al esclavo TRUCO Se conectan los bits de dirección del maestro desplazados un lugar en el bus de direcciones, para referenciar palabras en lugar de bytes