







Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Estructura de computadors I, Profesor: , Carrera: Enginyeria Informàtica, Universidad: UAB
Tipo: Ejercicios
1 / 13
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!








Problemes que resoldrem a classe
Per als exercicis 1-3 sobre E/S es considera un sistema computador amb un únic bus compartit que controla un teclat i un disc dur i que inclou els següents components: o una CPU que executa 200 MIPS (milions d’instruccions per segon) i amb un sistema d’interrupcions vectorades o un mòdul de memòria de 32K x 8bits o un mòdul controlador de teclat amb capacitat d’interrupció o un mòdul controlador d’Interrupcions amb capacitat per a gestionar dos dispositius i de generar els vectors d’interrupció de 8 bits corresponents a cada dispositiu o un mòdul controlador de disc capaç de comunicar-se amb un controlador de DMA. La taxa de transferència del disc és de 200 MB/s o un mòdul controlador de DMA La figura de la pàgina següent indica les adreces en les que es pot accedir a cadascun del ports de E/S dels controladors.
Escriure un fragment en llenguatge assemblador per a llegir 200 caràcters des del teclat i emmagatzemar-los a partir de l’adreça de memòria 9000h. Suposar que el bit 6 del registre d’estat del controlador de teclat es posa a 1 (i genera interrupció, si estan activades) quan hi ha un caràcter disponible i que es posa a zero (i esborra la petició d’interrupció) al llegir del registro de dades. a) Utilitzant la tècnica d’E/S programada amb espera de resposta.
Entry: ldx #$9000 ;Base del buffer de teclat= 9000h clra leer_car: brclr $0201,#%01000000,leer_car ; Espera el bit 6 es posi a 1 ldab $0200 ; Llegeix el port de dades del teclat stab a,X ; Posa el caràcter al buffer inca ; Actualitza adreça cmpa #200 ; si menys de 200 caràcters, blo leer_car ; llegeix següent stop
b) Utilitzant la tècnica de E/S per interrupcions (escriure sols la RSI, i no el codi que instal·la la RSI associada al teclat)
; ********* Secció de dades ORG RAMStart pos dc.b 1
; ********* Secció de codi ORG ROMStart Entry: lds STACKBase ldx #$9000 ; Base del buffer de teclat = 9000h
clr pos ; Primera posició del buffer wai
rsi_teclado: sei ldab $0200 ; Llegeix caràcter ldaa pos ; Posició lliure al buffer de teclat cmpa #200 ; Si pos > 200 no fa res bhi rsi_teclado_end stab a,X ; Posa caràcter al buffer inca ; Pròxima posició lliure staa pos rsi_teclado_end: cli rti
Suposar que l’interval de temps requerit per a teclejar 200 caràcters és de 4 minuts. Suposar que el temps des de que el controlador de teclat activa la línea d’interrupció fins que es comença a la RSI és de 50 ns. Calcular el temps que dedica la CPU a transferir els 200 caràcters:
c) Utilitzant la tècnica de E/S programada amb espera de resposta
La CPU estarà dedicada tot el temps a fer la lectura dels caràcters. Per tant, aquesta estarà esperant durant els 4 minuts necessaris per a teclejar els 200 caràcters.
d) Utilitzant la tècnica de E/S per interrupcions
La CPU s’ocupa de llegir un caràcter sols quan hi ha una interrupció. La CPU executa 200MIPS. La RSI té 10 instruccions i serà cridada 200 vegades ( crida per a cada caràcter). El temps per a 200 caràcters serà:
tiempoparaatendera1ainterrupción MIPSdeCPU
tiempoparaNcaracteres N totaldeinstruccionesdeRSI
9 9 9 6 = × + = × =
− − −
Escriure un fragment de codi en llenguatge assemblador per a programar el controlador de DMA i que transfereixi un bloc de 8192 bytes des del disc a la posició de memòria A000h. Suposar que la transferència es posa en marxa al escriure el valor 0Fh en el registre de control del DMA. Calcular el percentatge del temps que dedica la CPU a l’operació de transferència per DMA des del disc a memòria. Suposar que la CPU dedica 500 ns per a programar el DMA i 500 ns per a reconèixer la finalització de la tasca del DMA.
Rutina per a programar el DMA
ldx #$A000 ; Adreça de memòria on s¡emmagatzemen les dades stx $0208 ; Programa l’adreça al controlador DMA ldx #8192 ; Defineix el nombre total de bytes a transferir stx $020A ; Programa la quantitat de bytes al controlador DMA ldaa #$0F staa $020C ; Inicia la transferència
El temps per a transferir els 8192 Bytes es calcula per:
s
N
8192
tiempoprogramaciónDMA tiempofinalizaciónDMA tasadetransferenciadeldisco
tiempoparaNbytes
9 9 20 + + =
= + + =
− −
100 2 , 49 % 40 , 06. 10
100 1. 40 , 06. 10
500.10 500. 10
%detiempodelaCPU TiempodelaCPU
= =
o els ports es troben a l’ espai d’adreces de E/S ( descodificació completa).
Completar la taula (omplint les caselles ombrejades) que indica les passes a realitzar per a la gestió d’una interrupció. Indicar quan estan actives i desactives els senyals INT e INTA.
MÒDUL (^) AdrecesBUS DADES^ BUS INT INTA Comentari
Teclat ------ ------ ACT DES
Hi ha un nou caràcter disponible i el controlador de teclat activa el senyal INT CPU ------ ------ ACT DES Acaba instrucció en curs idetecta INT
CPU (^) ------- ------- ACT ACT
CPU activa INTA i dóna inici al cicle de reconeixement d’interrupció Teclat ------- VECTOR DES ACT Reconeix INTA i col·loca vector CPU ------- VECTOR DES DES (^) del bus de dades i desactiva INTACPU llegeix vector d’interrupció
CPU Dir. TaulaVectores ------ DES DES Calcula adreça de taula devectors i la posa al bus
Memòria ------- DIR.RSI DES DES Memòria contesta amb l’adreça dela RSI
CPU ------ ------ DES DES Salva registres, PSW i adreça deretorn
CPU ------- ------ DES DES
Modifica el Comptador de Programa per a que contengui l’adreça de la RSI
Tenim tres mòduls d’entrada/sortida amb capacitat d’interrupció com el següent:
Mostrar la connexió dels mòduls amb la CPU, considerant que la CPU té una única línea de petició d’interrupció i una única línea de reconeixement.
IntaIn IntaOut
Vector Int
CPU
INTA
INT
DATA BUS
INTAin INTAout
INT Vector INTAin INTAout
INT Vector INTAin INTAout
INT Vector
Si cada una de les rutines d’atenció als mòduls d’E/S triguen 20 ms (considerar que el temps de reconeixent de la interrupció està inclòs), mostrar l’evolució de la pila si la seqüència d’arribada de les interrupcions es la següent: Mòdul 2 (als 5 ms), Mòdul 3 (als 12 ms) i Mòdul 1 (als 20 ms). Considerar també que quan s’atén una interrupció el sistema d’interrupcions queda inhibit.
No apropiatiu
5 10 15 20 25 30 35 40 45 50 55 60 65
Dir. Ret 2
12 ms
Tiempo (ms)
Estado 2
0
Dir. Ret 1
Estado 1 Dir. Ret 3
Estado 3
Pila:
Módulo E/S 1
Módulo E/S 2
Módulo E/S 3
Tiempo de espera entre la petición de interrupción y la concesión de esta
Problemes opcionals per a lliurar al campus virtual Data límit: Dijous 12 de desembre de 2012
Problema 6. El següent codi transfereix dades entre memòria i disc fent servir la tècnica d’E/S programada.
**1. MOV R1, 400
Problema 7. El següent codi envia dades de 4 bytes des la memòria al port USB mitjançant la tècnica d’E/S programada. Suposar: Bloc de dades de 16.000 bytes Transferència de escriptura des de memòria a port USB Adreça inicial de memòria on resideixen les dades: 4000h Adreces de registre d’estat i registre de dades del controlador de port sèrie: 384h i 380h El bit del registre d’estat que indica que el controlador del port USB està disponible és el bit 0 (quan val 1 indica que està disponible) Totes les instruccions s’executen en 1 cicle, i el micro-processador funciona amb un rellotge de 200 MHz. La velocitat de transferència del port USB es de 100.000 bytes per segon.
c) Quina és la màxima velocitat a la que la CPU podria enviar dades des del port USB amb aquest programa? El mínim nombre d’instruccions que ha d’executar el programa per a cada dada transferida són les instruccions 3, 4, 5, 6, 7, 8, 9 y 10 que tarden en total 8 cicles. Si la freqüència de rellotge és 200 MHz, llavors el temps d’un cicle és de 5 nanosegons. Per tant, el temps mínim per a transferir una dada és: 8 × 5 = 40 ns = 0,04 us Por tant, es poden transferir 4 bytes cada 0,04us, es a dir: 4 / 0,04 × 10-6^ = 100 MBytes/s com a màxim
Problema 8. Suposeu que el següent codi és una rutina de servei a les interrupcions (RSI) per a transferir a través d’un port USB el mateix nombre de dades que en el problema anterior d’E/S programada, però ara mitjançant la tècnica de la E/S per interrupcions. Suposeu:
d) Si volguéssim fer servir el mateix processador i el mateix programa però amb un port USB molt més ràpid, quina és la màxima taxa de transferència (ample de banda) del port USB que es podria suportar sense que es perdessin dades? Cada execució de la RSI són 115 ns Es poden fer 10 9 / 115 = 8.695.652 execucions de la RSI per segon. Es poden enviar uns 4 × 8.695.652 Bytes per segon: 34,78 MB / s
Problema 9. Es suposa que el controlador USB dels dos problemes anteriors pot funcionar també en mode DMA (Accés Directe a Memòria). Es vol enviar el mateix nombre de dades que en els casos anteriors d’E/S programada i per interrupcions. Cada vegada que el controlador DMA demana el bus a la CPU, aquesta li dona prioritat immediatament (mecanisme de cicle robat). Per a la transferència d’una dada (4 bytes) entre el controlador USB i la memòria, s’utilitza el bus de memòria durant 3 ns, i es torna a cedir l’ús del bus a la CPU. Aquests 3 ns inclouen el temps de cessió del bus, el temps de la transferència pel bus, i el temps de recuperació del bus. En cas de transferir una ràfega o bloc de dades entre la memòria i el controlador, s’hauria d’afegir 1 ns per cada dada addicional que es transfereixi. a) Considerem que en la transferència per DMA, les dades s’envien entre el controlador USB i la memòria en ràfegues de 4 dades (4x4 bytes cada vegada). Calcular el temps total d’ocupació del bus per part del controlador de disc per a dur a terme la transferència que venim analitzant. Temps ocupació Bus: 3 + 3 x 1 = 6 ns Nombre de peticions del Bus: 4.000 / 4 = 1. Temps total d’ocupació del Bus: 1.000 x 6 = 6.000 ns = 6 us b) Suposant que la programació i la finalització del DMA consumeixen un total (entre les dues tasques) de 200 ns de temps de CPU, i que la CPU no pot fer cap tasca durant tot el temps en que el bus està ocupat per part del controlador DMA, quin percentatge de temps està ocupada la CPU sense poder executar codi efectiu d’altres programes durant la transferència? Temps de ocupació: 6 us + 200 ns = 6,2 us Percentatge de temps ocupat: 100 × (6,2 us / 160.000 us) = 0,00387%