Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


problemas Estructura computadores, Ejercicios de Arquitectura de ordenadores

Asignatura: Estructura de computadors I, Profesor: , Carrera: Enginyeria Informàtica, Universidad: UAB

Tipo: Ejercicios

2017/2018

Subido el 14/01/2018

ayoub_hammani
ayoub_hammani 🇪🇸

4.6

(8)

6 documentos

1 / 13

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Escola d’Enginyeria ESTRUCTURA DE COMPUTADORS
Enginyeria Informàtica PROBLEMES RESOLTS
ENTRADA/SORTIDA
ESTRUCTURA DE COMPUTADORS
PROBLEMES RESOLTS
Entrada/Sortida
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Vista previa parcial del texto

¡Descarga problemas Estructura computadores y más Ejercicios en PDF de Arquitectura de ordenadores solo en Docsity!

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

ESTRUCTURA DE COMPUTADORS

PROBLEMES RESOLTS

Entrada/Sortida

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

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.

PROBLEMA 1.

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

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

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à:

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

  1. 10 200 ( 5 0. 10 50. 10 ) 200 100 ns 20 μ s

tiempoparaatendera1ainterrupción MIPSdeCPU

tiempoparaNcaracteres N totaldeinstruccionesdeRSI

9 9 9 6 = × + = × =

×^ +

= × +

− − −

PROBLEMA 2.

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

  1. 10 500. 10 40 , 06 μ

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

  • 100 TiempototaltransferNbytes

%detiempodelaCPU TiempodelaCPU

  • 6
  • 6
  • 6
  • 9 - 9
  • = =

= =

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

o els ports es troben a l’ espai d’adreces de E/S ( descodificació completa).

CS DMA = A 15 ⋅ A 14 ⋅ A 13 ⋅ A 12 ⋅ A 11 ⋅ A 10 ⋅ A 9 ⋅ A 8 ⋅ A 7 ⋅ A 6 ⋅ A 5 ⋅ A 4 ⋅ A 3 ⋅ MEM / IO

PROBLEMA 4.

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

PROBLEMA 5.

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

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

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

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

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

  1. MOV R2, DADES
  2. MOV R3, 10000
  3. Bucle: IN R4,[R3]
  4. AND R4, 8
  5. JE Bucle
  6. MOV R0,[R2]
  7. OUT R0,[R3+4]
  8. ADD R2,
  9. DEC R
  10. JNE Bucle** Indicar si la transferència és de sortida al disc o d’entrada des del disc, quantes dades es transfereixen en total entre la memòria i el disc, i quin bit del registre d’estat del controlador de disc verifica que es pot realitzar la transferència d’una dada Transferència de sortida de 400 dades (400 × 4 = 1.600 Bytes). El bit 3 (o el quart bit menys significatiu).

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.

  1. MOV R2, VALOR
  2. MOV R3, VALOR
  3. Bucle: M0V R0, [ VALOR3 ] ; llegir 4 bytes
  4. AND R0, VALOR

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

  1. JE Bucle
  2. MOV R0,[R2] ; llegir 4 bytes
  3. MOV [ VALOR5 ],R0 ; escriure 4 bytes
  4. ADD R2, 4
  5. SUB R3, 1
  6. JNE Bucle a) Substituir pels valors adients: VALOR1= 4000h VALOR2= 16.000/4=4. VALOR3= 384h VALOR4= 1 VALOR5= 380h b) Quant temps dura la transferència i quin percentatge d’aquest temps dedica la CPU a la gestió la transferència? S’escriuen un total de 16.000 Bytes 100 mil Bytes /s  16.000 Bytes en 16.000 / 100.000 = 160 ms La CPU està completament dedicada a la transferència (100%) y no fa altra cosa durant el temps en que es produeix la escriptura del bloc de dades al port USB.

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:

  • que el temps addicional des de que la CPU detecta la interrupció fins que es comença a executar la primera instrucció de la RSI és de 10 cicles de rellotge
  • es fa servir una variable global que es representa amb l’etiqueta Dir

Enginyeria Informàtica PROBLEMES RESOLTS

ENTRADA/SORTIDA

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%