Acceso Directo a Memoria

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Acceso Directo a Memoria"

Transcripción

1 Tema 7: Acceso Directo a Memoria 7.1 El concepto Qué es una transferencia por acceso directo a memoria? El modelo de transferencia de información visto en los capítulos anteriores se denomina transferencia por programa, porque la transferencia de un dato del controlador a memoria, o viceversa, se realiza como consecuencia de la ejecución de instrucciones de un programa (ver figura 1). IN AL, Rdat AL dato: Rdat procesador memoria controlador dato, AL Figura 1: Transferencia por programa, en el caso de una entrada de datos Una alternativa a la transferencia por programa es la transferencia por acceso directo a memoria (DMA) en la que el propio controlador se responsabiliza de leer o escribir los datos en memoria. Aunque la transferencia sea por DMA, seguirá siendo necesaria la sincronización entre el procesador y el controlador, para que el primero sepa cuándo ha terminado la transferencia. Esta sincronización puede realizarse por encuesta o por interrupción. Qué registros debe tener un controlador que realiza transferencia por DMA? Para que un controlador pueda realizar una transferencia por DMA (por ejemplo, enviar un dato a memoria), necesita conocer la dirección de memoria involucrada en la transferencia (es decir, la dirección donde debe escribir el dato o de donde debe leerlo). Por tanto, el controlador deberá tener un registro de dirección (Radr), en el que el procesador pueda escribir la dirección involucrada en la transferencia (ver figura 2). Como ahora el procesador no tendrá que leer ni escribir el dato directamente del controlador (que es lo que ocurría en la transferencia por programa), no será necesario que el registro de datos del controlador (Rdat en la figura 2) 1

2 sea visible desde el procesador (es decir, el controlador no tendrá registro de datos mapeado en el espacio de memoria ni en el espacio de entrada/salida). El hecho de que la transferencia sea por DMA no tiene ninguna implicación adicional sobre los otros registros del controlador. LEA EAX, dato OUT Radr, EAX dato: Radr Rdat procesador memoria controlador Figura 2: Transferencia por DMA, en el caso de una entrada de datos Cuándo es adecuada la transferencia por DMA? La transferencia por DMA no tiene ventajas sobre la transferencia por programa cuando se trata de transferir un dato aislado. Ese sería el caso de lecturas del teclado, o de escrituras en la impresora. Comparar, por ejemplo, las figuras 1 y 2 suponiendo que representan la lectura de un carácter del teclado. Se ve que no hay demasiadas diferencias en cuanto a trabajo que debe hacer el procesador o tiempo que tarda la transferencia. La transferencia por DMA es adecuada cuando debe transferirse un bloque de datos (es decir, una serie de bytes consecutivos de memoria). En el caso de la transferencia de un bloque de datos por DMA, el procesador debe escribir en el registro Radr la dirección de memoria involucrada en la transferencia. Cuando el controlador esté en disposición de transferir el siguiente byte del bloque usará la dirección que hay en Radr para leer o escribir la memoria (según el sentido de la transferencia) e incrementará el valor de la dirección dejándola preparada para la transferencia del siguiente byte. La operación de entrada/salida acabará cuando hayan sido transferidos todos los datos del bloque (ver figura 3). Las ventajas de la transferencia de un bloque de datos por DMA frente a la transferencia por programa son: La transferencia se hace mucho más rápido (no se pierden ciclos para ejecutar instrucciones que transfieran datos) 2

3 El procesador puede hacer otras cosas mientras el controlador está realizando la transferencia (siempre que la sincronización sea por interrupción) El ejemplo típico de controlador que realizar transferencias de bloque de datos (y no de datos aislados) es el controlador de disco, ya que en un disco la información se lee y se escribe por bloques. Veremos a continuación cómo funciona un controlador de disco que realiza transferencia por DMA. LEA EAX, bloque OUT Radr, EAX bloque: Radr Rdat procesador memoria controlador Figura 3: Transferencia por DMA de un bloque de datos 7.2 El controlador de disco El disco es un dispositivo en el que se leen o escriben bloques de LONG_BLOC bytes y que realiza la transferencia por DMA. Cada bloque se almacena en un sector del disco. Los sectores tienen un tamaño de LONG_BLOC bytes y están organizados en pistas que, a su vez, están agrupadas en caras. Para ordenar una lectura, el procesador debe indicar al controlador la cara, pista, sector en la que está el bloque de datos que hay que leer y la dirección de memoria a partir de la cual hay que dejar los LONG_BLOC bytes del bloque. En el caso de la escritura de un bloque, la dirección de memoria será aquella a partir de la cual están los LONG_BLOC bytes que hay que escribir. Los registros del controlador de disco son los siguientes: Radr_disc (32 bits): El procesador deberá escribir aquí la dirección física de memoria involucrada en la transferencia. Rsect_disc (8 bits): El procesador deberá escribir aquí el número de sector. Rpist_disc (8 bits): El procesador deberá escribir aquí el número de pista. Rcara_disc (8 bits): El procesador deberá escribir aquí el número de cara. Rest_disc (8 bits): Del registro de estado sólo importan los dos bits bajos: Bit 0: Se pone a 1 si el disco está preparado para aceptar una nueva operación y 0 en caso contrario. Bit 1: Se pone a 1 si la última transferencia a acabado con algún error (habrá que repetirla). 3

4 Rcon_disc (8 bits): Del registro de control sólo importan los tres bits bajos: Bit 0: El procesador debe escribir un 1 aquí si quiere que el controlador interrumpa al acabar una operación. Bit 1: El procesador debe escribir un 1 aquí cuando quiera que se inicie la operación. Bit 2: El procesador debe escribir un 0 si la operación es la lectura de un sector, y un 1 si la operación es una escritura. Otros datos importantes del controlador son: El controlador de disco genera una petición de interrupción cuando acaba la operación solicitada (lectura o escritura de un bloque), siempre y cuando el bit 0 de Rcon_disc esté a 1. La petición de interrupción baja automáticamente cuando el procesador decide atenderla. El identificador de interrupción es 13. Al acabar una operación (lectura o escritura de un sector) los registros Radr_disc, Rsect_disc, Rpist_disc y Rcara_disc quedan con un valor indefinido. 7.3 Ejemplo de programación En este ejemplo de programación supondremos que el sector S de la pista P de la cara C del disco contiene un vector de LONG_BLOC números enteros de un byte de tamaño cada uno. Debe leerse el sector sobre el vector de bytes llamado buffer. Una vez leído el sector, debe calcularse la suma de los elementos y dejar el resultado en la variable res. Para simplificar, supondremos que nunca se producirá un error en la lectura del sector. Veamos primero la solución en la que el procesador se sincroniza con el disco por encuesta. LONG_BLOC C ; tamaño del sector en bytes ; Cara en la que está el sector P ; Pista en la que está el sector S ; Sector a leer.data buffer db LONG_BLOC DUP (?) ; vector en el que hay que ; dejar los datos del sector res db? ; aquí debe quedar el resultado.code.startup LEA EAX,buffer ; cálculo de la dirección física BX,DS ; de buffer ZX SAL EBX,BX EBX,4 ADD EAX,EBX OUT Radr_disc, EAX ; escribimos la dirección física en ; el controlador de disco AL,S ; escribimos el número de sector 4

5 OUT Rsect_disc, AL AL,P ; escribimos el número de pista OUT Rpist_disc, AL AL,C ; escribimos el número de cara OUT Rcara_disc, AL IN AL, Rcon_disc ; programamos una lectura sin AND OR AL, b AL, b ; interrupción OUT Rcon_disc, AL bucle: IN AL,Rest_disc ; bucle de encuesta TEST AL, b JZ bucle AL,0 ; ya terminó la lectura ESI,0 ; los datos están en buffer sumar: CMP ESI,LONG_BLOC ; recorrido del vector leido JE ADD fin AL,buffer[ESI] INC ESI JMP sumar fin: res,al ; dejamos el resultado.exit end Veamos ahora la solución en la que el procesador se sincroniza con el disco por interrupción. Esta solución no aporta gran cosa respecto a la anterior porque el programa principal, en vez de esperar en un bucle consultando el registro de estado (como ocurre en la solución por encuesta), esperará a que una variable cambie de valor (la variable fin). Ese cambio de valor lo hará la rutina de atención a las interrupciones del disco, en el instante en que acabe la lectura. Obsérvese que en este caso no podemos beneficiarnos de la sincronización por interrupción porque el programa principal no puede hacer ningún trabajo mientras se realiza la operación de lectura del sector. Lo importante de este ejemplo es comparar la versión en ensamblador con la versión en alto nivel. Para ello, el código se presenta a dos columnas. En la columna izquierda aparece el código en ensamblador y en la columna derecha el código correspondiente en alto nivel. En general, los ejercicios de programación de operaciones de entrada/salida deberán escribirse en lenguaje de alto nivel. Declaramos en primer lugar las constantes y variables del programa. En la variable disc_ant salvaremos el contenido del vector de interrupciones, y utilizaremos la variable fin para tomar nota de que ha acabado la lectura de un sector. 5

6 LONG_BLOC P S.data C buffer db LONG_BLOC DUP (?) res db? disc_ant dd? fin db 0 LONG_BLOC = ; C = ; S = ; P = ; byte buffer [LONG_BLOC]; byte res; int disc_ant; boolean fin; byte a; Ahora viene la rutina de atención a las interrupciones de disco. Simplemente toma nota, en la variable fin, de que ha terminado la lectura de un sector, y avisa al controlador de interrupciones. rut_disc PROC PUSH EAX fin, FFh AL,20H OUT Rcon_int, AL POP EAX IRET rut_disc ENDP void interrupt rut_disc () { fin = TRUE; eoi (); } Ahora se inicia el programa principal. Lo primero que hace es programar la entrada 13 del vector de interrupciones..startup LEA CLI STI AX,0 ES,AX EBX, ES:[13*4] disc_ant,ebx AX,rut_disc ES:[13*4],AX ES:2[13*4],CS void main { fin = FALSE; isc_ant = modif_vi(13,@rut_disc); Ahora programamos el controlador de disco. Debemos escribir en los registros del controlador: la dirección física de buffer, el número de sector, pista y cara, y el tipo de operación (lectura con interrupción). LEA ZX SAL ADD OUT OUT OUT OUT IN AND OR OUT EAX,buffer BX,DS EBX,BX EBX,4 EAX,EBX Radr_disc, EAX AL,S Rsect_disc, AL AL,P Rpist_disc, AL AL,C Rcara_disc, AL AL, Rcon_disc AL, b AL, b Rcon_disc, AL out_d F buffer); out_b (Rsect_disc,S); out_b (Rpist_disc,P); out_b (Rcara_disc,C); a = in_b (Rcon_disc); a = (a & b); a = (a b); out_b (Rcon_disc,a); Esperamos a que acabe la lectura del sector. bucle: CMP JE fin,0 bucle while (! fin) {}; 6

7 Recorremos el vector para sumar sus elementos. AL,0 ESI,0 sumar: CMP ESI,LONG_BLOC JE ADD fin AL,buffer[ESI] INC ESI fin: JMP sumar res,al res = 0 for (int i=0; i<long_bloc; i++) res = res + buffer [i]; Finalmente, restauramos el vector de interrupciones..exit end EAX,disc_ant ES:[13*4],EAX disc_ant = modif_vi (13, disc_ant); } 7

8 7.4 Ejercicios Supondremos ahora que debe resolverse el mismo problema que el considerado en el apartado 7.3, pero ahora el vector cuyos elementos hay que sumar ocupa N sectores consecutivos en el disco (los sectores del 0 al N-1 de la pista P de la cara C). Supondremos también que nunca se producen errores en la lectura de un sector. Hay que hacer tres versiones del programa. Versión A Se dispone de un buffer de tamaño LONG_BLOC*N bytes. El programa principal realiza la mayor parte del trabajo. La rutina de atención a las interrupciones sólo toma nota de que se ha producido una interrupción del disco (es decir, cuando ha finalizado la última operación de lectura del disco). Hay que completar el programa principal para que todo funcione correctamente. Pueden añadirse las variables que sean necesarias. LONG_BLOC = ; // declaramos en primer lugar las C = ; // constantes y variables del P = ; // programa N = ; byte buffer [LONG_BLOC*N]; byte res; int disc_ant; boolean fin; Escribir aquí las variables que faltan void interrupt rut_disc () { // Esta es la rutina de fin = TRUE; //atención a las eoi (); //interrupciones } // A continuación tenemos el programa principal void main { fin = FALSE; disc_ant = modif_vi (13,@rut_disc); // programamos el // vector de // interrupciones Escribir aquí la parte que falta del programa principal 8

9 // hacemos la suma de los elementos del vector res = 0 for (int i=0; i<long_bloc*n; i++) res = res + buffer [i]; disc_ant = modif_vi (13 disc_ant); // restauramos el } //vector de interrupciones Versión B Se dispone de un buffer de tamaño LONG_BLOC*N bytes. La rutina de atención a las interrupciones hace la mayor parte del trabajo. El programa principal simplemente espera a que se haya leído todo el vector. Hay que completar la rutina de atención a las interrupciones para que todo funcione correctamente. Pueden añadirse las variables que sean necesarias. LONG_BLOC = ; // declaramos en primer lugar las C = ; // constantes y variables del P = ; // programa N = ; byte buffer [LONG_BLOC*N]; byte res; int disc_ant; boolean fin; byte a; byte sector; Escribir aquí las variables que faltan void interrupt rut_disc () { Escribir aquí la parte que falta de la rutina 9

10 } eoi (); Versión C // A continuación tenemos el programa principal void main { fin = FALSE; sector = 0; disc_ant = modif_vi (13,@rut_disc); // programamos el // vector de // interrupciones // programamos el controlador de disco out_d F buffer); // dirección física out_b (Rsect_disc,sector); out_b (Rpist_disc,P); out_b (Rcara_disc,C); a = in_b (Rcon_disc); a = (a & b); a = (a b); out_b (Rcon_disc,a); // esperamos a que acabe la lectura del disco while (! fin) {}; // hacemos la suma de los elementos del vector res = 0 for (int i=0; i<long_bloc*n; i++) res = res + buffer [i]; disc_ant = modif_vi (13 disc_ant); // restauramos el } //vector de interrupciones Se dispone de un buffer de tamaño LONG_BLOC bytes (sólo cabe un bloque). Escribir el programa completo (programa principal y rutina de atención a las interrupciones. 10

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

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior. 6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior. 6.1. El subsistema de E/S Qué es E/S en un sistema computador? Aspectos en el diseño del subsistema de E/S: localización

Más detalles

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares:

Práctica 4. Organización del Computador 1 12 de septiembre de Algunas consideraciones preliminares: Práctica 4 Organización del Computador 1 12 de septiembre de 2005 Algunas consideraciones preliminares: Donde aparece xxxxxxxx quiere decir que el valor correcto ya está en esa dirección de memoria Todos

Más detalles

Los números naturales y enteros en el 80X86 y en LAN

Los números naturales y enteros en el 80X86 y en LAN Los números naturales y enteros en el 80X86 y en LAN 1. Los números naturales en el 80X86/TASM Representación Sistema de representación En el 80X86 (y en la mayoría de los procesadores), los números naturales

Más detalles

Clase Práctica: Entrada Salida

Clase Práctica: Entrada Salida Clase Práctica: Entrada Salida Docente: Javier R. de Acha Campos Direct Memory Address Ejercicio 1 Sea una computadora capaz de ejecutar 1 millón de instrucciónes por segundo (MIPS). Se desea conectar

Más detalles

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

SUBSISTEMA DE ENTRADA-SALIDA. Arquitectura de Computadores I 4º tema SUBSISTEMA DE ENTRADA-SALIDA Arquitectura de Computadores I 4º tema 1 Descripción de la interfaz de E/S Objetivo - Cómo se comunica la CPU con el exterior (periféricos de E/S) - Cómo se controla esta comunicación.

Más detalles

Práctica 1. Introducción a la programación en ensamblador

Práctica 1. Introducción a la programación en ensamblador Práctica 1 Introducción a la programación en ensamblador 1. Generalidades 2. Introducción 3. Cuestiones 1. Generalidades El desarrollo de las prácticas consistirá en una breve introducción del tema por

Más detalles

SISTEMAS BASADOS EN MICROPROCESADORES

SISTEMAS BASADOS EN MICROPROCESADORES SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática Escuela Politécnica Superior UAM COLECCIÓN DE PROBLEMAS DE LOS TEMAS 5.5 A 7.2 P1. Escribir una rutina de ensamblador que se quede

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas de Entrada/Salida 6. Segmentación (Pipeline) 7. Memoria Caché 8. Arquitecturas RISC Arquitectura de

Más detalles

Arquitectura de Computadores II 8086 Parte II

Arquitectura de Computadores II 8086 Parte II 8086 Parte II Facultad de Ingeniería Universidad de la República Instituto de Computación Contenido Funciones recursivas Manejadores de dispositivos Rutinas recursivas(1/10) Introducción Salvar contexto.

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa

Más detalles

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

Guía rápida para gestionar el puerto paralelo del PC Guía rápida para gestionar el puerto paralelo del PC Descarga desde: http://eii.unex.es/profesores/jisuarez/descargas/ip/guia_rapida_pp.pdf José Ignacio Suárez Marcelo Universidad de Extremadura Escuela

Más detalles

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

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a. Sistemas Operativos. Unidad V Entrada Salida. Programación de Entrada y Salida Introducción. Comunicación de los procesos con el mundo externo : Mecanismo de E/S de información. Aspectos que diferencian

Más detalles

Práctica de Arquitectura de Computadores Sistemas de Entrada/Salida: Entrada/Salida Programada Curso 2016/2017

Práctica de Arquitectura de Computadores Sistemas de Entrada/Salida: Entrada/Salida Programada Curso 2016/2017 Práctica de Arquitectura de Computadores Sistemas de Entrada/Salida: Entrada/Salida Programada Curso 2016/2017 Antonio Pérez Ambite Santiago Rodríguez de la Fuente Departamento de Arquitectura y Tecnología

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

PROBLEMAS TEMA 3: Unidad de Entrada/Salida

PROBLEMAS TEMA 3: Unidad de Entrada/Salida PROBLEMAS TEMA 3: Unidad de Entrada/Salida Problemas propuestos en examen 3.1 Un computador dispone de un canal multiplexor que controla 2 unidades de disco y 2 unidades de cinta. Las unidades de disco

Más detalles

Arquitectura de Computadores. Apellidos, Nombre:

Arquitectura de Computadores. Apellidos, Nombre: No se considerarán como válidas las respuestas en las que no se justifiquen los cálculos realizados No se permite el uso de ningún tipo de documentación, ni de calculadora Sólo existe una única opción

Más detalles

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

Práctica 9. Organización del Computador 1 2do. Cuatrimestre de 2005 Práctica 9 Organización del Computador 1 2do. Cuatrimestre de 2005 Aclaración: Tiempo bus es el tiempo de bus requerido para transferir un buer (de un dispositivo) desde o hacia memoria principal según

Más detalles

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA IMPLEMENTACIÓN DE UN DRIVER DOS INTERFAZ CON UN SISTEMA DE RADIO

Más detalles

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,

Más detalles

Velocidades Típicas de transferencia en Dispositivos I/O

Velocidades Típicas de transferencia en Dispositivos I/O Entradas Salidas Velocidades Típicas de transferencia en Dispositivos I/O Entradas/Salidas: Problemas Amplia variedad de periféricos Entrega de diferentes cantidades de datos Diferentes velocidades Variedad

Más detalles

Introducción Ejercicios PIC: Intel 8259 Más ejercicios Preguntas. Entrada/Salida. Polling e Interrupciones. Francisco García Eijó

Introducción Ejercicios PIC: Intel 8259 Más ejercicios Preguntas. Entrada/Salida. Polling e Interrupciones. Francisco García Eijó Entrada/Salida Polling e Interrupciones Francisco García Eijó Organización del Computador I Departamento de Computación - FCEyN UBA 31 de Mayo del 2011 Dispositivos de E/S Qué son los dispositivos de E/S?

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Curso 2006/07 Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistema de Entrada/Salida Informática Aplicada Arquitectura de Computadores 1 Organización E/S

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 1 - INTRODUCCIÓN JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 1 - INTRODUCCIÓN JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 1 - INTRODUCCIÓN JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 1.MaNoTaS 1 Definiciones (I) Descripción Un

Más detalles

Tema 5: La pila, las macros y los procedimientos

Tema 5: La pila, las macros y los procedimientos Tema 5: La pila, las macros y los procedimientos S La pila S Las macros S Definición de procedimientos S Tipos de procedimientos: NEAR y FAR S Paso de parámetros a un procedimiento S Mediante registros

Más detalles

Apellidos Nombre DNI

Apellidos Nombre DNI A continuación se muestra el listado de un programa cuyo objetivo es encontrar una palabra dentro de una cadena de caracteres de la sección de datos y copiar dicha palabra en otra zona de la sección de

Más detalles

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

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086

Estructura de Computadores: Tema 1. Introducción. Índice. Arquitectura del i8086 Estructura de Computadores: Tema 1 El procesador Introducción Estudiaremos la arquitectura del procesador i8086 (CPU, registros,...), su gestion de la memoria y su conjunto de instrucciones. Programaremos

Más detalles

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos Estructura de Computadores 7.- E/S y dispositivos periféricos Contenido Clasificación y tipos de periféricos Módulos de E/S. Instrucciones de E/S. Técnicas de E/S. E/S programada. E/S mediante interrupciones.

Más detalles

Capítulo 1 Conceptos arquitectónicos

Capítulo 1 Conceptos arquitectónicos Sistemas operativos: una visión aplicada Capítulo 1 Conceptos arquitectónicos Contenido Estructura del computador Ejecución de instrucciones Interrupciones Reloj del computador Jerarquía de memoria Entrada/Salida

Más detalles

PROCESAMIENTO DE LOS DATOS. Procesamiento de datos ascii a binario y de binario a ascii

PROCESAMIENTO DE LOS DATOS. Procesamiento de datos ascii a binario y de binario a ascii PROCESAMIENTO DE LOS DATOS Procesamiento de datos ascii a binario y de binario a ascii En ensamblador el tipo de dato es un carácter, por lo tanto es necesario procesar este dato y convertir de su correspondiente

Más detalles

Comunicación interna en la computadora

Comunicación interna en la computadora Comunicación interna en la computadora Buses Elemento responsable de establecer una correcta comunicación entre dos o más dispositivos de la computadora, una característica clave de un bus es que se trata

Más detalles

Introducción Ejercicio Interrupciones Ejercicio Cierre. Entrada/Salida. Organización del Computador I. Departamento de Computación - FCEyN UBA

Introducción Ejercicio Interrupciones Ejercicio Cierre. Entrada/Salida. Organización del Computador I. Departamento de Computación - FCEyN UBA Entrada/Salida Organización del Computador I Departamento de Computación - FCEyN UBA Primer Cuatrimestre 2017 1 / 28 Hasta ahora vimos... Representación de números enteros Circuitos combinatorios y secuenciales

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

Más detalles

Tema 4. La pila, los procedimientos y las macros

Tema 4. La pila, los procedimientos y las macros Tema 4. La pila, los procedimientos y las macros Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 2010-2011 Índice

Más detalles

Programas Residentes En Lenguaje Ensamblador

Programas Residentes En Lenguaje Ensamblador UNIVERSIDAD DEL VALLE DE GUATEMALA Facultad de Ingeniería Programas Residentes En Lenguaje Ensamblador Trabajo de investigación presentado por Hugo Chinchilla Luis Monteros Josué Rendón Estrada i INDICE

Más detalles

USO DE MEMORIA Y PERIFÉRICOS CON EMU8086. Kervin Sánchez Herrera.

USO DE MEMORIA Y PERIFÉRICOS CON EMU8086. Kervin Sánchez Herrera. USO DE MEMORIA Y PERIFÉRICOS CON EMU8086 Kervin Sánchez Herrera. Estructura del Computador MEMORIA Uso de Memoria La memoria ROM ya está escrita y contiene el programa BOOT de inicio, este programa se

Más detalles

GESTION DE ENTRADA Y SALIDA

GESTION DE ENTRADA Y SALIDA Dispositivos de salida (impresora, monitor,...) Unidad principal (UCP, registros, memoria RAM, entrada/salida ( discos internos, red,...)) Dispositivos de entrada (teclado, ratón, lápiz óptico,...) Dispositivos

Más detalles

Manejo de Entrada-Salida. Arquitectura de Computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.

Más detalles

Modos de Direccionamiento

Modos de Direccionamiento Arquitectura de Ordenadores Modos de Direccionamiento del Intel Pentium Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Modos de Direccionamiento ADM-1

Más detalles

Construyendo Programas más Complejos

Construyendo Programas más Complejos Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más

Más detalles

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

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 Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos

Más detalles

Introducción a Sistemas Operativos: Ficheros

Introducción a Sistemas Operativos: Ficheros Introducción a Sistemas Operativos: Ficheros Clips Fr ancisco J Ballesteros 1. Entrada/Salida Es importante saber cómo utilizar ficheros. En UNIX, es aún más importante dado que gran parte de los recursos,

Más detalles

Manejo de Entrada-Salida. Arquitectura de Computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.

Más detalles

Ejercicio * N N X X X X X X X X X X X X X X X X X X X X

Ejercicio * N N X X X X X X X X X X X X X X X X X X X X Se envía a través de una conexión RS232 8N1 de 9600 baudios una trama de datos que debe ser recibida por una PC. La trama tiene el siguiente formato : * N N X X X X X X X X X X X X X X X X X X X X Donde:

Más detalles

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

Tema 4: SISTEMAS DE ENTRADA/SALIDA. Un computador no puede estar formado sólo por la CPU y la memoria. Tema 4: SISTEMAS DE ENTRADA/SALIDA ÍNDICE 1. Introducción. 2. Módulos de Entrada/Salida: comunicación CPU - Periféricos. 3. Mapa de Entrada/Salida: común y separada. 4. Introducción a los métodos de programación

Más detalles

El Diseño de un Lenguaje Máquina

El Diseño de un Lenguaje Máquina Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje

Más detalles

SISTEMAS BASADOS EN MICROPROCESADORES

SISTEMAS BASADOS EN MICROPROCESADORES SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática ENUNCIADO PROBLEMA 1 A continuación se incluye el código de una aplicación formada por un programa principal escrito en lenguaje C,

Más detalles

Organización del Computador I 1er. Parcial 17-Mayo-2005. Turno:

Organización del Computador I 1er. Parcial 17-Mayo-2005. Turno: Nota: En el parcial se puede tener la cartilla de Assembler y la de seguimiento (formatos de instrucción) pero no se pueden compartir. Para aprobar el parcial, son necesarios 6(seis) puntos. Para promocionar,

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Tema 1. Fundamentos del lenguaje ensamblador

Tema 1. Fundamentos del lenguaje ensamblador Tema 1. Fundamentos del lenguaje ensamblador Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Índice Estructura del

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

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

Introducción a los sistemas de entrada/salida Profesores y tutorías Introducción a los sistemas de entrada/salida Profesores y tutorías Teoría: Daniel Cascado Caballero Despacho: F070 Horario de tutorías: Lunes: 17:30h a 19:30h Martes: 12:30h a 13:30h Jueves: 10:30h a

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO 16.1 INTRODUCCIÓN: El teclado se comunica con la BIOS a través de puertos de comunicación controlados por las interrupciones de la

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

Tarea #6. Gestión de E/S y Planificación de Discos

Tarea #6. Gestión de E/S y Planificación de Discos 1 Tarea #6. 1. Enumere y defina brevemente las tres técnicas de realización de E/S E/S Programada: el procesador emite una orden de E/S de parte de un proceso a un módulo de E/S; el proceso espera entonces

Más detalles

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

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos Arquitectura de ordenadores (fundamentos teóricos) Representación de la información Estructura de un microprocesador Memorias Sistemas de E/S Elementos de un ordenador Microprocesador Placa base Chipset

Más detalles

Memoria Estática Punteros, Vectores y Matrices

Memoria Estática Punteros, Vectores y Matrices Memoria Estática Punteros, Vectores y Matrices Organización del Computador II 1 o Cuatrimestre 2017 28 de Marzo Organización del Computador II Memoria Estática / Punteros / Vectores / Matrices 1 / 29 Repaso

Más detalles

Examen de teoría (5 puntos)

Examen de teoría (5 puntos) Bien: Mal: No contestadas: Examen de teoría (5 puntos) El examen tendrá una duración total de 2 horas. El examen constará de dos partes: teoría y problemas. La nota final será la suma de las dos partes

Más detalles

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros

Más detalles

(4) Unidad 4. Recursos de Programación SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

(4) Unidad 4. Recursos de Programación SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM (4) Unidad 4 Recursos de Programación SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática EPS - UAM (4) Índice 4. Recursos de programación. 4.1. Interrupciones BIOS. 4.2. Interrupciones

Más detalles

Operadores aritméticos

Operadores aritméticos Bloque 3.2 Operadores aritméticos Suma : x + y Resta : x y Multiplicación : x * y División : x / y Módulo : x % y (resto de la división Si los operandos son enteros tipo del resultado

Más detalles

INTRODUCCIÓN. Comunicación Serial.

INTRODUCCIÓN. Comunicación Serial. INTRODUCCIÓN La función principal de este tipo de comunicación es la de convertir datos de salida de forma paralela a serial y la de convertir datos de entrada de forma serial a paralela. El acceso al

Más detalles

EVOLUCIÓN HISTÓRICA DE LOS µp

EVOLUCIÓN HISTÓRICA DE LOS µp EVOLUCIÓN HISTÓRICA DE LOS µp El primer procesador fue inventado por los Babilonios en el año 500 ac En 1642 se perfeccionó la primera calculadora por Blas Pascal A mediados del siglo pasado se inventaron

Más detalles

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

1) Se dispone de un computador de 32 bits con la siguiente estructura: 1) Se dispone de un computador de 32 bits con la siguiente estructura: MP CPU CACHE DISCO1 DISCO2... DISCO n El sistema de memoria está formado por una Memoria principal cuyo tiempo de acceso es de 550nseg

Más detalles

Examen de teoría (5 puntos)

Examen de teoría (5 puntos) Bien: Mal: No contestadas: Examen de teoría (5 puntos) El examen constará de dos partes: 1ª parte: Test, con una puntuación de 5 puntos y 30 minutos de tiempo 2ª parte: Ejercicios prácticos, con una puntuación

Más detalles

Comunicación interna en la computadora

Comunicación interna en la computadora Comunicación interna en la computadora Buses Elemento responsable de establecer una correcta comunicación entre dos o más dispositivos de la computadora, una característica clave de un bus es que se trata

Más detalles

CON LOS VALORES ASCII

CON LOS VALORES ASCII PRÁCTICA 6 FAMILIARIZARSE CON LOS VALORES ASCII DE TODAS LAS FUNCIONES DEL TECLADO. INTRODUCCIÓN La práctica siguiente está enfocada a que el alumno se familiarice con los valores ASCII de todas las funciones

Más detalles

Examen Parcial de Arquitectura de Computadoras Prof: Ing. José ESTRADA MONTES

Examen Parcial de Arquitectura de Computadoras Prof: Ing. José ESTRADA MONTES Examen Parcial de Arquitectura de Computadoras Prof: Ing José ESTRADA MONTES 1- Diseñe un sistema de control de un motor de paso ( hardware y software ) a través de una computadora y una tarjeta de interfase

Más detalles

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.

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. ARQUITECTURAS DE COMPUTADORES 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. Unidad de E/S 1 Unidad de E/S Indice Introducción.

Más detalles

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

Entrada y Salida! EC-2721 Arquitectura del Computador I! Entradas/Salidas: Problemas. Entradas salidas: Criterios. Amplia variedad de periféricos! Entrada y Salida Velocidades de transferencia típicas en Dispositivos I/O EC-2721 Arquitectura del Computador I William Stallings, Computer Organization and Architecture, Cap. 7 Universidad Simón Bolívar

Más detalles

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

Memoria y Entrada/Salida Tecnología Organización - Expansión Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC2721 Arquitectura del Computador I Prof. Osberth De Castro Clase 05 Memoria y Entrada/Salida Tecnología Organización - Expansión La memoria

Más detalles

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86)

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Arq. de Computadora I Ing. Carlos Ortega H. 1 Interrupciones FUNCIÓN INT

Más detalles

5 - Lenguaje Ensamblador

5 - Lenguaje Ensamblador PROGRAMACIÓN EN ENSAMBLADOR 62 Fuente.asm,.s51,... Fases del Ensamblado Ensamblado Objeto.obj,.r03 Objeto Enlazado Ejecutable.hex,.bin Librerías Eprom Simulador Emulador Monitor PROGRAMACIÓN EN ENSAMBLADOR

Más detalles

Velocidades Típicas de transferencia en Dispositivos I/O

Velocidades Típicas de transferencia en Dispositivos I/O Entradas Salidas Velocidades Típicas de transferencia en Dispositivos I/O Entradas/Salidas: Problemas Amplia variedad de periféricos Entrega de diferentes cantidades de datos Diferentes velocidades Variedad

Más detalles

Examen 5 de Febrero de 2010

Examen 5 de Febrero de 2010 Instrucciones Examen 5 de Febrero de 2010 Indique su nombre completo y número de cédula en cada hoja. Numere todas las hojas e indique la cantidad total de hojas que entrega en la primera. Escriba las

Más detalles

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos Universidad del País Vasco Facultad de Informática Departamento de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I Sistema de memoria 3 (Solución): Segmentación + Bancos En un

Más detalles

RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4)

RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4) RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4) 1) Se ha escrito el programa adjunto en lenguaje ensamblador del microprocesador 8085. Sabiendo que se encuentra almacenado a partir de la posición 2000H

Más detalles

INSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I

INSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS La principal razón para que las personas aprendan lenguajes de programación es utilizar una computadora como una herramienta para la resolución de problemas. Cinco

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega [email protected] Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles