Acceso Directo a Memoria
|
|
|
- José Ángel Miguélez Río
- hace 8 años
- Vistas:
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.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
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
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
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
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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
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,
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
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?
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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,
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.
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:
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
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
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,
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,
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
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
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
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
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
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
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.
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
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
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
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
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
(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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
