Documente Academic
Documente Profesional
Documente Cultură
Tema 2
Curso 2007–2008
0,25 instrucciones/ciclo
1
Soluciones de los ejercicios del tema 2 Ingeniería de Computadores
En la práctica, empleando la técnica de segmentación se consigue Al funcionar en paralelo, el periodo mínimo de reloj coincide con
incrementar notablemente la frecuencia de reloj de la CPU, el nú- la duración mínima de cada etapa, es decir, 100 ns/2 = 50 ns. Re-
mero de instrucciones que puede ejecutar por ciclo de reloj y por lo sulta una frecuencia máxima de reloj de 20 MHz. Como una CPU
tanto el número de instrucciones por segundo. segmentada es capaz de ejecutar a lo sumo 1 instrucción por ciclo
Para mejorar el rendimiento de la CPU anterior se ha dividido la de reloj, resulta que la CPU es capaz de ejecutar a lo sumo:
ejecución de todas las instrucciones en 20 etapas, cada una de las 20 millones de instrucciones/segundo
cuales requiere un ciclo de reloj. Se han hecho pruebas haciendo
que las 20 etapas trabajen en modo no segmentado (en este modo
no hay paralelismo en la ejecución, pues en cada ciclo sólo hay una
etapa activa) y se comprueba que la CPU es capaz de ejecutar a lo
sumo 100 millones de instrucciones por segundo.
— ¿Cuál es la máxima frecuencia de reloj que puede emplearse o 5. Se pretende realizar desde cero una CPU que implemente la ar-
una vez segmentada la CPU? quitectura PIC16x. Para ello, en primer lugar se ha diseñado una
versión preliminar no segmentada de la CPU, la cual es capaz de
2 GHz.
ejecutar 2,5 millones de instrucciones por segundo trabajando a la
máxima frecuencia. La ejecución de cualquier instrucción se divide
— ¿Cuántas instrucciones puede ejecutar la CPU segmentada ca- en cuatro etapas que funcionan de forma secuencial. Cada una de
da ciclo de reloj? Ejemplo: 1,2 instrucciones/ciclo. estas etapas necesita un ciclo de reloj para completarse.
Cache dividida: 12 ns
Cache unificada: 15 ns
2
Ingeniería de Computadores Soluciones de los ejercicios del tema 2
o 7. Se dispone de una CPU segmentada en dos etapas para ejecutar — ¿Qué CPU proporciona un mayor rendimiento, la A15, que
programas de la CPU teórica, de forma que puedan llevarse a cabo trabaja a 1,5 Ghz, o la Super B30, que trabaja a 3 GHz? ¿Por
en paralelo la fase de búsqueda y ejecución propiamente dicha, de qué?
cada instrucción. Cada etapa se ejecuta en un ciclo de reloj. En es-
ta CPU se utiliza una cache unificada y no existe replicación de la La Super B30 al estar segmentada es capaz de ejecutar una ins-
ALU (no es posible realizar dos operaciones con la ALU simultá- trucción cada ciclo de reloj. Como su frecuencia de reloj es de 3
neamente). GHz, resulta que puede ejecutar 3000 MIPS, menor que los 3500
MIPS de la CPU A15. Por lo tanto, la CPU A15 proporciona un
1 MOVH R3 , 0BAh
2 MOVL R3 , 04 h
mayor rendimiento aunque tenga una frecuencia de reloj menor.
3 INC R3
4 MOV R2 , R3
5 XOR R4 , R4 , R4
6 ADD R4 , R2 , R3
7 MOV [ R3 ] , R4
— ¿Cuál es el tiempo medio necesario para ejecutar una instruc- — ¿Cuántos nanosegundos más rápida es la ejecución segmenta-
ción en la CPU B0,25? da que la secuencial del conjunto de instrucciones considera-
1 ns do?
2,5 ciclos × 0,25 ciclos
= 10 ns
(8 × 10) − (6 × 10) = 20 nanosegundos
— La CPU Super B30 se obtiene dividiendo la ejecución de las
instrucciones en N etapas de duración 1 ciclo de reloj (de 3
GHz), las cuales funcionan de forma concurrente. ¿Cuál debe o 10. Se tiene una CPU que requiere 10 pasos para que se ejecute
ser el valor de N? una instrucción, a razón de un paso por ciclo de reloj.
10 ns
N= 1/3 ns
= 30 — ¿Cuál ha de ser la frecuencia de reloj de la CPU para que ésta
sea capaz de ejecutar 10 millones de instrucciones por segun-
do trabajando de forma no segmentada?
100 MHz
3
Soluciones de los ejercicios del tema 2 Ingeniería de Computadores
— Si la frecuencia se mantiene constante en el valor anterior y — ¿Cuántas instrucciones por segundo puede ejecutar, a lo sumo,
deseamos que la CPU ejecute 5 veces más instrucciones, ¿qué la versión segmentada de la CPU?
técnica podemos utilizar y cuál es el número mínimo de etapas
necesarias para conseguir el objetivo buscado? 2 400 millones de instrucciones / seg
200 millones
1 instrucción / ciclo de reloj La primera versión es una segmentación en dos etapas: una de bús-
queda de instrucción e incremento del PC y otra de ejecución pro-
piamente dicha. En dicha versión se dispone de una única ALU, la
4
Ingeniería de Computadores Soluciones de los ejercicios del tema 2
cual se emplea tanto para el incremento del PC como para la ejecu- — Explica qué tendría que suceder para que la rutina de trata-
ción de las instrucciones aritméticas y lógicas. La segunda versión miento de la excepción anterior no tuviera éxito, y a dónde se
es análoga a la anterior, pero dispone de una ALU adicional, por lo devolvería el control en ese caso.
que se pueden realizar a la vez dos operaciones aritméticas o lógi-
cas. La rutina de tratamiento de la excepción falla si la página asociada
a la dirección no tiene almacenamiento físico asignado, ni en me-
Ambas versiones segmentadas emplean un reloj de 1 GHz, consu- moria, ni en el archivo de paginación. O si lo mismo ocurre con la
miendo un ciclo de reloj para cada etapa y están conectadas a una tabla de páginas. En este caso se produce un fallo no recuperable
cache dividida. La ÚNICA diferencia entre ellas es la posibilidad de y la tarea finaliza, el S.O. toma el control y lo cede a otra tarea
llevar a cabo una o dos operaciones aritméticas simultáneamente. para su ejecución.
— ¿Cuánto tiempo requiere la ejecución del fragmento de pro-
grama anterior en cada una de las versiones segmentadas de la
CPU? Responder en nanosegundos.
Segmentación y 1 ALU: 11 ns
— POP ECX
Dirección lineal: 0060 0000h + 0000 003Ch = 0060 003Ch
— ¿A qué tipo de transferencia de control al S.O. corresponde la Contenido registro Dirección base almacenada en:
instrucción anterior?
EAX = 0000 001Bh Registro sombra de CS = 001A D000h
Llamada a servicio del S.O. EBX = 0000 001Ch Registro sombra de DS = 56FB 9000h
ECX = 0000 001Dh Registro sombra de FS = 6098 A000h
Sobre la misma CPU, se procede en otro momento a ejecutar
una instrucción de acceso a datos, ubicada en la dirección lógica ESP = 0000 003Ch Registro sombra de SS = B987 C000h
CS:07B9 4891h, a la que le sigue, otra instrucción con dirección EIP = 0000 003Ch Registro sombra de ES = CFD4 5000h
lógica CS:07B9 4897h.
Se sabe que la primera de estas instrucciones produce un fallo de
— MOV EAX, [EBX]
página:
Búsqueda: CS:EIP = 001A D025h – 001A D028h
— ¿En qué dirección lineal se encuentra la rutina que se encarga
de tratar este tipo de excepción? Ejecución: DS:EBX = 56FB 9032h – 56FB 9035h
87CF 9500h
— POP ECX
— Si la rutina de tratamiento de la excepción tiene éxito, ¿a qué Búsqueda: CS:EIP = 001A D029h – 001A D02Ch
dirección lineal devolverá el control?
Ejecución: SS:ESP = B987 C0F3h – B987 C0F6h
07B9 4891h (la misma instrucción que causó la excepción)
5
Soluciones de los ejercicios del tema 2 Ingeniería de Computadores
o 17. Una tarea ejecutada sobre un PC con sistema operativo Micro- B) La excepción de división por 0 en la arquitectura IA-32 es de
soft Windows XP tiene como código fuente el indicado a continua- tipo FALLO.
ción. Dicho código fuente contiene varias instrucciones que al ser C) Las CPUs que gracias a la replicación de componentes son ca-
ejecutadas generan excepciones. paces de trabajar sobre varias instrucciones simultáneamente
1 # i n c l u d e < s t d i o . h> reciben el nombre de superescalares.
2 v o i d main ( ) D) En modo protegido la instrucción CLI puede ser ejecutada con
3 {
4 int var_local = 0; el nivel de privilegio de usuario.
5 unsigned p a g _ v i r t u a l ; E) La CPU con nivel de privilegio de usuario puede acceder a las
6 u n s i g n e d ∗ d i r _ v i r t u a l _ e t p = NULL ;
7 direcciones de memoria asociadas al sistema operativo.
8 / ∗ C a l c u l a l a i n v e r s a de l a v a r i a b l e l o c a l ∗ / F) La IDT de un PC puede contener como máximo 256 entradas.
9 var_local = 1 / var_local ;
10
11 /∗ I n i c i a l i z a c i e r t o s r e g i s t r o s ∗/ B, C y F
12 _asm
13 {
14 mov ah , 10
15 cli o 20. Indica cuál o cuáles de las siguientes afirmaciones son CIER-
16 } TAS. Contesta “Ninguna” si crees que ninguna lo es.
17
18 / ∗ Pág . v i r t u a l a s o c i a d a a v a r _ l o c a l ∗ /
19 p a g _ v i r t u a l = ( ( u n s i g n e d )&v a r _ l o c a l ) >> 1 2 ; A) El primer procesador que implementó la arquitectura IA-32
20 fue el 80386.
21 / ∗ D i r e c c i ó n v i r t u a l en l a que s e a l m a c e n a l a ETP ∗ /
22 d i r _ v i r t u a l _ e t p = ( v o i d ∗) ( 0 xC0000000 + p a g _ v i r t u a l ∗4) ; B) El modelo de memoria plano de la arquitectura IA-32 reduce
23 la segmentación a su mínima expresión, haciendo que el des-
24 / ∗ E s c r i b e e l v a l o r de l a ETP ∗ /
25 p r i n t f ( " V a l o r de l a ETP = %X \ n " , ∗ d i r _ v i r t u a l _ e t p ) ;
plazamiento de la dirección lógica coincida con la dirección
26 } lineal.
C) En la arquitectura IA-32 el nivel de privilegio de ejecución
— ¿Qué instrucciones C o ensamblador habría que comentar en viene dado por el campo RPL, llamado CPL, del registro CS.
el programa anterior para que no se generasen excepciones? D) El espacio de direcciones lógicas en la arquitectura IA-32 tie-
¿Por qué? Si no es necesario comentar ninguna instrucción ne un tamaño mayor de 1 Tbyte.
responde “Ninguna”. E) La IDT es la tabla descriptores de interrupción en la arqui-
tectura IA-32, la cual se ubica en el espacio de direcciones
var_local = 1 / var_local. Se trata de una instrucción que trata de lineales a partir de la dirección 0000 0000h.
llevar a cabo una división por cero.
A, B, C y D
cli. Es una instrucción ensamblador que sólo puede ejecutar el sis-
tema operativo.
o 21. Indica cuál o cuáles de las siguientes afirmaciones son CIER-
printf(). Trata de acceder a una dirección ubicada en los 2 Gbytes
TAS. Contesta “Ninguna” si crees que ninguna lo es.
más altos del E.D. virtuales, accesibles sólo por el sistema opera-
tivo. A) Implementando un modelo de memoria plano en la arquitec-
tura IA-32, la protección de la memoria es proporcionada por
el mecanismo de segmentación.
B) Empleando el modelo de memoria plano, las direcciones vir-
o 18. En las situaciones que se describen a continuación se produce tuales que llegan al sistema de paginación coinciden con los
la transferencia del control al Sistema Operativo. desplazamientos de las direcciones segmentadas.
C) Las CPUs IA-32 llevan a cabo una conmutación automática
— ¿A cuál de los tres tipos posibles de transferencia de control al de la pila de usuario a la de supervisor cuando se transfiere el
Sistema Operativo corresponde cada una de las situaciones? control al sistema operativo.
D) En las CPUs modernas todas las tareas pueden acceder a cual-
Fallo de página → Excepción.
quier posición de memoria sin restricciones.
Lectura de un fichero → Llamada a servicio del S.O. E) En la arquitectura IA-32 el mecanismo de segmentación pue-
de desactivarse mediante un bit de un registro de control.
Pulsación de una tecla → Interrupción.
ByC
División por cero → Excepción.
6
Ingeniería de Computadores Soluciones de los ejercicios del tema 2
o 22. Indica cuál o cuáles de las siguientes afirmaciones son CIER- o 25. Indica cuál o cuáles de las siguientes afirmaciones son CIER-
TAS. Contesta “Ninguna” si crees que ninguna lo es. TAS. Contesta “Ninguna” si crees que ninguna lo es.
A) El valor del campo IOPL en la arquitectura IA-32, establece A) En la arquitectura IA-32 el modelo de memoria plano consiste
el privilegio de acceso al espacio de direcciones de E/S. en que todas las tareas comparten el rango de 4GB del espacio
B) En el modelo de memoria de la arquitectura IA-32, se pue- de memoria física.
de utilizar tanto segmentación, como paginación, si bien ésta B) En el modelo de memoria de la arquitectura IA-32 se puede
última se puede desactivar. utilizar tanto segmentación como paginación, si bien esta úl-
C) En la arquitectura IA-32, el modelo de memoria plano con- tima se puede desactivar.
siste en que todas las tareas comparten el rango de 4GB del C) La IDT, en la arquitectura IA-32, es una tabla de descriptores
espacio de memoria física. de segmento especiales que comienza en la dirección indicada
D) La IDT, en la arquitectura IA-32, es una tabla de descriptores en el registro IDTR.
de segmento especiales que comienza en la dirección indicada D) El valor del campo IOPL en la arquitectura IA-32 establece el
en el registro IDTR. privilegio necesario para acceder al espacio de direcciones de
E) El descriptor de segmento, en la arquitectura IA-32, sirve para E/S.
obtener el desplazamiento de la dirección virtual al que pre- E) El descriptor de segmento, en la arquitectura IA-32, sirve para
tende acceder la CPU. obtener el desplazamiento de la dirección virtual al que pre-
tende acceder la CPU.
A, B y D
B, C y D
7
Soluciones de los ejercicios del tema 2 Ingeniería de Computadores
A, C y D