You are on page 1of 30

MODELO DEL PENTIUM PARA EL PROGRAMADOR DE SISTEMAS

11.1.- Registros del sistema ................................................................................................. 1 11.2.- Registros de segmento ................................................................................ .......... 3 11.3.- Registros de tablas ...................................................................................... ........... 5 11.4.- Registro de tarea ....................................................................................... ............. 6 11.5.- Registro de señalizadotes ........................................................................... ........... 8 11.6.- Registro de control .................................................................................... ............ 9 11.6.1.- CR0: Doble palabra de estado de la máquina ........................................................... 9 11.6.2.- CR2: Dirección lineal del fallo de pá ina ................................................................ 11 11.6.!.- CR!: "ase del directorio de las tablas de pá inas .................................................. 11 11.6.#.- CR#: $%tensiones de la arquitectura ........................................................................ 11 11.7.- Registros de depuraci n .............................................................................. ........ 12
Capitulo 11 - 1

!

Capítulo 11: Modelo del Pentium para el programador de sistemas

11.8.- Registros de prueba de la "#$ ............................................................................ 14 11.9.- Registros de espec%&icos ............................................................................... ........ 16

Capítulo 11- 2

Capítulo 11: Modelo del Pentium para el programador de sistemas

11.1- REGISTROS DEL SISTEMA
$n un entorno prote ido & multitarea como son el 'odo (rote ido & el 'odo )irtual *6+ es indispensable que el pro ramador del sistema posea un conocimiento profundo de todos los mecanismos de protección de la memoria. ,demás de saber mane-ar los recursos de la C(. destinados al desarrollo de aplicaciones+ dic/o pro ramador debe controlar los que tienen un carácter especial & permiten obtener el má%imo rendimiento del (entium en el 'odo (rote ido. Dic/os recursos son destinados a mane-ar: • • • • • • • 'emoria )irtual 01e mentación & (a inación2. $ntorno (rote ido 0Re las de acceso2. 'ultitarea 0Conmutación de tarea2. Control del flu-o de instrucciones. 'ane-o de interrupciones & e%cepciones. 3estión de la cac/4. (ruebas & autoc/equeos.

$n la fi ura 11.1 se muestra un esquema que abarca el con-unto de re istros del sistema+ usados por el pro ramador de sistemas. 5bs4r6ese en dic/a fi ura que aparecen los re istros de se mento 0C1+ D1+ 11+ $1+ 71 & 312+ cu&a misión tambi4n se describió al anali8ar los re istros del pro ramador de aplicaciones. $l moti6o de su presencia en ambos con-untos de re istros se debe a que+ si bien el pro ramador de aplicaciones puede modificar en sus pro ramas el contenido de los mismos+ cuando la C(. opera en 'odo (rote ido+ se accede a tra64s de ellos a las tablas de descriptores de se mento & se obtienen los parámetros que se car an+ de forma automática & transparente+ en los re istros cac/4 ultrarápidos e in6isibles+ sir6iendo de base para el direccionamiento & estión de la memoria 6irtual. 9 ualmente+ se /a incluido en la fi ura 11.1 otro re istro presentado dentro del con-unto que mane-a en pro ramador de aplicaciones. 1e trata del re istro de se:ali8adores $7;,31 tambi4n llamado re istro de estado. ;a ra8ón se debe a que en 4l /a& 6arios bits que son propios en el control del sistema: • • • • • • • • !'(#) <i6el de pri6ile io de $=1. Controla el acceso al espacio de $=1. *") >area anidada. R+) 7la de reanudación. 9n6alida temporalmente los fallos de depuración. ,-) 'odo )irtual-*6. ./) C/equeo de alineamiento. ,!+) 7la de interrupción en modo 6irtual. ,!() 7la de interrupción pendiente en modo 6irtual. !0) 7la de permiso de identificación del procesador.

;os restantes bits del re istro de estado 0$7;,312 se usan en el desarrollo de las aplicaciones de usuario.

Capítulo 11- 3

9<$.9<$.R.. (. (.1 7i . C5<>R5.<>51 D$ (.R.D. 0 !1 R$391>R5 D$ D$(...R.".D.. ) R < 95(.5 (. (." !1 0 >R6 C5<>R5.1$ #A ".$".C?@ 9<)919". ! D9R$CC9E< .1$0!22 . D$ (R.9<$..D5 D$ .1$0!22 .51 (. (.1 (R. 0 DR0 DR1 DR2 DR! DR6 DRA CR! R$3.51 (.9D.$".>50122 0 0R$391>R51 C.$"..D.$12 16 1B 0 .<>5 (. # $1>.. >.$C>5R2 ".>..$C>5R2 1B 0 >R 01$. D$ .9'9>$0162 R$391>R5 C.>R9".R.D5 D$ .D5 .31.1$0!22 .4 .9'9>$0162 R$391>R5 C.D.1$ D9R$C>5R. 9 0 D 9 C ' 7 > 7 ( 1$C.Capítulo 11: Modelo del Pentium para el programador de sistemas R$391>R51 1B 1$3'$<>5 C1 11 D1 $1 71 31 01$. D$ ..39<.D. Capítulo 11. 1 D9R$CC9E< ..151 7..9'9>$ 0 9D>R 1B 0 .31 22 21 20 19 1* 1B ) ) 9 .9<$.9<$.<>5 (.D. !1 16 1B CR0 (3 '1F CR1 R$1$R)..1 >RA $1>. R$391>R51 D$ (R. ". 2 D9R$CC9E< .C?@ 9<)919".1. 11.$ !1 $7.C?@ 9<)919".R.9'9>$ 3D>R 16 1B . (.D5R$1 0'5D5 (R5>$39D52 0 R$391>R51 D$ C5<>R5.$ ". 7. D9R.<>51 D$ (. Re istros del sistema.D>R 01$. >.1$ 0 6! ".<>5 (.9'9>$0202 .R.R.<>5 (.C9E< D9R$CC9E< .$C>5R$12 #A ". .R51 CR2 R$3.

os se mentos quedan definidos por su dirección de inicio o base+ su tama:o o limite & sus atributos o derec/os de acceso. .>R9".5 .1$ 01B-02 .1$ 0!1-2#2 2# 2! 20 19 16 1B A 0 ". . $n cada instante+ la C(. $l lHmite es fi-o & de 6# I" de 6alor+ & los atributos no se utili8an en este modo de traba-o+ porque en 'odo Real no /a& sistema de protección & todos los accesos están permitidos.os descriptores de los se mentos especHficos de la tarea en curso están reunidos en otra tabla+ llamada .>51 . . $n 'odo (rote ido+ los se mentos se especifican mediante estructuras de datos de * b&tes 06# bits2+ denominadas descriptores+ que están a rupados en tablas.2. mane-a los se mentos propios de la tarea en curso+ que se /allan situados en el área local de dic/a tarea. >ambi4n puede mane-ar los se mentos compartidos por todas las tareas que se ubican en el área lobal.2. !1 D9R$CC9E< nL# D9R$CC9E< n ".K'9>$ 019-162 ".D>+ >abla de Descriptores . . 11. Dic/a tabla tiene un tama:o de 6# I"+ por lo que admite /asta * I descriptores. $n 'odo Real+ la base se calcula multiplicando por 16 0en binario multiplicar por 16 si nifica a:adirle # ceros por la derec/a2 el contenido del re istro correspondiente+ &a que los re istros de se mento son de 16 bits & dado que en 'odo Real solo se utili8a el primer '" de la memoria+ solo se necesitan 20 bits para direccionar la memoria 02 20G 1 '"2. .os procesadores 9ntel utili8an la se mentación como m4todo principal & obli atorio en la estión de la memoria+ mientras que la pa inación es optati6a.>R9".1$ 02!-162 . Cada descriptor consta de los si uientes campos: • • • "ase del se mento 0!2 bits2. Cada descriptor de dic/a tabla tiene 6# bits.REGISTROS DE SEGMENTO .Hmite del se mento 020 bits2.a tabla 3D> 0>abla de Descriptores 3lobales2 dispone de tantas entradas como descriptores de se mentos e%istan en el área lobal.tributos 012 bits2.ocales+ de la misma capacidad que la 3D>+ & que al i ual que esta Jltima+ debe residir en la Capítulo 11. .Capítulo 11: Modelo del Pentium para el programador de sistemas 11. 7ormato de un descriptor de se mento compuesto por oc/o b&tes+ que ocupan dos posiciones de memoria cada una.K'9>$ 01B-02 7i .

D>+ la C(. $ntre la 3D> & .6 . puede controlar una memoria 6irtual de 16 I descriptores de se mento. Capítulo 11. (uesto que cada se mento puede alcan8ar un tama:o má%imo de # 3"+ &a que el lHmite de los se mentos tiene !2 bits & 2 !2 G # 3"+ teóricamente la capacidad má%ima de la memoria 6irtual que puede manipular un (entium lle arHa a los 6# >". pueda locali8ar el descriptor del se mento a e-ecutar.Capítulo 11: Modelo del Pentium para el programador de sistemas memoria principal desde el preciso instante en que se pasa al 'odo (rote ido+ para que la C(.

!.D>.! se recuerda+ de forma ráfica+ la actuación del contenido de los re istros de se mento+ esto es+ es el selector del descriptor de un se mento en la 3D> o en la . Como cada descriptor consta de * b&tes+ el 6alor del Hndice se multiplica por * para obtener la dirección de inicio del descriptor seleccionado.D>. Capítulo 11.na 6e8 que se /a seleccionado la entrada en la tabla de descriptores+ la información contenida en esta se car a en un re istro cac/4 oculto ultrarápido que esta asociado al re istro de se mento+ esta información constará de los 6# bits que /acen falta para direccionar en 'odo (rote ido+ !2 bits para la base+ 20 bits para el lHmite & 12 bits para los atributos+ con lo que el re istro de se mento correspondiente &a podrá direccionar la memoria. $l contenido del re istro se mento actJa+ en 'odo (rote ido+ como un selector de una entrada en la 3D> o en la . $n el campo R(.Capítulo 11: Modelo del Pentium para el programador de sistemas $n la fi ura 11.D> D$1CR9(>5R ' M* L ". .D>. .7 .2 del se mento que se encuentra en el re istro C1.os 1! bits de mas peso del selector actJan como Hndice que referencia una entrada en la tabla seleccionada por >9. 11.1$ . del re istro de se mento 6iene el 6alor del ni6el de pri6ile io del se mento que /a solicitado la inter6ención del se mento ba-o análisis+ es decir+ es el ni6el de pri6ile io 0(. >9 G0 3D> D$1CR9(>5R < >9 G1 .1$ 3D> D$1CR9(>5R 0 D$1CR9(>5R 0 ". >9+ es el 9ndicador de >abla+ de forma que si >9G0+ el descriptor se encuentra en la 3D>+ & si >9G1+ en la . R$391>R5 1$3'$<>5 1B 9<D9C$ ! >9 2 1 0 R(.D> 7i .

8 .Capítulo 11: Modelo del Pentium para el programador de sistemas Capítulo 11.

a tabla 9D>+ como se estudiará mas adelante+ puede contener /asta 2B6 descriptores de * b&tes+ por lo que su tama:o en 'odo (rote ido+ alcan8a los 2 I". 10" #A 10"R .1$!2 . (ara manipular este re istro se utili8an las instrucciones . 11. Capítulo 11.3.as direcciones de las entradas de las tablas de descriptores deben ser mJltiplos de *.D>. 7uncionamiento del re istro 9D>R.os descriptores contenidos en la tabla 9D> se utili8an cuando se producen interrupciones & e%cepciones.G216G6# I" : * "G * I de script.9''. . 7i .as entradas de esta tabla en 'odo Real no !0" #A !0"R .B. . 10"R) Re istro de la base de la 3D>.REGISTROS DE TABLAS $%isten tres re istros dedicados a la manipulación de las tablas de descriptores: 1.3D> & 13D>+ para car arlo & almacenarlo+ respecti6amente. 11.1$!2 De scriptor de se m e nto contienen lo mismo que en 'odo (rote ido. .os re istros 3D>R e 9D>R tienen un tama:o de #* bits+ !2 de ellos están destinados a contener la dirección inicial de la tabla correspondiente 0base2+ & los restantes 16+ los de menos peso+ para indicar el tama:o+ que puede alcan8ar un má%imo de 6# I".Capítulo 11: Modelo del Pentium para el programador de sistemas 11.9 .0216G6# I"2 $l 3D>R contiene la dirección de la base de la 3D> & el tama:o de la misma.9'16 2B6 e ntra da s 0 ".M. 2. 7i . 7uncionamiento del re istro 3D>R. . #0"R) Re istro del selector del descriptor de la . $l 9D>R almacena el 6alor de la base de la 9D>+ asH como su lHmite.#. !0"R) Re istro de la base de la 9D> 0>abla de Descriptores de 9nterrupción2. .9'16 0 ". 3.

(ara car ar & almacenar este re istro se usan las instrucciones .10 . $l se mento al que referencia el descriptor contiene la >abla de Descriptores .D> de la tarea en curso.D>+ que uarda los descriptores de los se mentos de una tarea.ocales+ . ?abrá+ por tanto+ tantas tablas de descriptores .D>R solo consta de 16 bits & actJa como un selector de un descriptor de se mento de la 3D>..D>R+ el cual apuntará siempre a la base de la . 1in embar o+ solo /a& un re istro .Capítulo 11: Modelo del Pentium para el programador de sistemas $l re istro .D> & 1. Capítulo 11.D> como tareas /a&a e-ecutándose en el sistema.D> respecti6amente.

(ara que esto se pueda lle6ar a cabo+ en el bit >9 del re istro .# se muestra la actuación de >R & el contenido del se mento >11+ al que referencia indirectamente >R+ a tra64s de Capítulo 11. .Capítulo 11: Modelo del Pentium para el programador de sistemas 10" 0 #A 10"R .9'16 3D> 1! 7i .312+ $9(+ re istros de se mento+ etc. pueda locali8ar los se mentos que precisa & atender las e%cepciones que se produ8can.4.1$!2 . 1e entiende por conte%to de la C(.D>R+ el cual es el Hndice de tabla /a& un cero+ con lo que se indica que el selector que contiene ese re istro en sus 1! bits de ma&or peso apunta a la 3D>. .>R9"12 1B #0"R >9 0 #A 0 ".D> de cada tarea deben tener un descriptor de se mento+ cada uno+ en la 3D>.D>R+ que se encar a de determinar la .1$!2 #0" ". Con el 6alor que /a& en .11 . 7uncionamiento del re istro . para una tarea+ la información que e%iste en todos los re istros del procesador & que se precisa para poder reanudar la tarea en la misma situación en que se abandonó cuando se sal6o el conte%to.D>R+ tratándolo como un selector+ se locali8a uno de los descriptores de la 3D>+ cu&a información 0base+ lHmite & atributos2+ car a la C(. $n la fi ura 11. 11.1$!2 >9G0 .REGISTRO DE TAREA $l re istro de tarea 0>R2+ posee 16 bits & actJa+ al i ual que el .ntes de entrar al 'odo (rote ido /a& que ase urarse de que en la memoria principal residen la 3D> & la 9D>+ para que la C(.D>R+ como selector de un descriptor de un se mento en la 3D>. Dic/o se mento recibe el nombre de 1e mento de $stado de la >area 0>112 & uarda el conte%to del procesador necesario para reanudar esa tarea. $l conte%to de una tarea del (entium está formado por el 6alor de los re istros de propósito eneral+ el del re istro de estado 0$7.os se mentos que contienen las .9'16 ". automáticamente en el re istro cac/4 in6isible asociado a .D> de la tarea en curso.9'16 . 11.6..D>R.

. Capítulo 11.Capítulo 11: Modelo del Pentium para el programador de sistemas la 3D>. car a los parámetros que definen al se mento >11.pr4ciese como >R dispone de un re istro cac/4 in6isible donde la C(.12 .

C(.C?@ 9<)919". Capítulo 11.9'9>$ 0162 R$391>R5 C.C9D. 3D> 1! 1B 0 .D> R$391>R51 D$ 1$3'$<>5 R$391>R51 3$<$R. !2 16 C5<>$M>5 D$ .1$0!22..31 CR! (. 11. >R #A 0 ". >11 3D> !1 0 9<75R'. (5R $..9'9>$ 0 R(.9'9>$ . 1. (.Capítulo 11: Modelo del Pentium para el programador de sistemas (ara que un sistema pueda lle6ar a cabo la multitarea+ debe poder e-ecutar una operación llamada conmutación de tareas+ la cual consiste en sal6ar el conte%to de la tarea en curso+ uardándola para poder e-ecutarla posteriormente+ & car ar el conte%to de la nue6a tarea que se quiera e-ecutar+ esto es+ cada 6e8 que la C(.$1 D$ (R9)9.$ 1$3'$<>5 D$ $1>.5 . 9<>R5D. 7i .D>R. abandona una tarea para iniciar la e-ecución de otra+ se sal6a automáticamente+ el conte%to actual del procesador en el >11 de la tarea saliente.$395 0-2 >R (R$)95 ".os se mentos que contienen los >11 de cada tarea en curso tienen que tener un descriptor+ cada uno+ en la 3D>. >..+ conformando el nue6o conte%to de traba-o.>R9".51 <9)$.1$ .R$.A.. >iene i ual comportamiento que el re istro . $l re istro >R actJa como un selector de un descriptor de se mento de la 3D>+ que apunta al se mento >11+ que es el 1e mento de $stado de la >area.<>$R51 D$ (9.C9E< 5(C95<.. Despu4s el contenido del >11 de la tarea entrante se car a en los re istros de la C(.$1 $7..R.13 . . .D5 D$ .

..C9E< 9<>$RR.'9$<>5 D9R$CC9E< ?.3 C$R5 .9.(C9E< )9R>.RR$5 usados por el pro ramador de aplicaciones: 7i ura 11.R9D.31+ como &a se /a 6isto anteriormente+ se compone de !2 bits+ de los cuales 21 son si nificati6os. R$.$395 D$ $= 1 15"R$(.-) -odo 2irtual-86) 1ir6e para pasar desde el 'odo (rote ido al 'odo )irtual *6+ para lo cual basta con poner a 1 este bit+ dentro del 'odo (rote ido.. Contiene el menor ni6el de pri6ile io que deben tener los se mentos de códi o+ • • Capítulo 11."9.D .C9E< >.. D$ (R9)9.( 5 $MC$(C9E<. ..(C9E< 9D$<>979C>R.M9...(C9E< )9R>.Capítulo 11: Modelo del Pentium para el programador de sistemas 11.31. !'(#) *i2el de pri2ilegio de las 345) >iene 2 bits. 0 5 7 D 7 9 7 > 7 1 7 D 7 0 .RR$5 ..9>.$5 D$ . <o obstante+ los que a continuación se e%plicaran son especHficos para el pro ramador de sistemas+ siendo el resto !1 0.C. <9)$. 9<>$RR.3 193<5 7.REGISTRO DE SEÑALIZADORES (EFLAGS) $l re istro $7..1. 7 0 ( 7 1 C 7 9D$<>979C...C9E< 7.*.D..<. ($<D9$<>$ C?$N....14 .0 21 9 D ) 9 7 ) 9 ( .'9$<>5 '5D5 )9R>..D..... $n este modo de funcionamiento+ se pueden e-ecutar pro ramas del *0*6 en un entorno prote ido+ esto es+ con sistemas de protección+ multitarea.<9D.5..C9E< 9<>$RR. R+) +lag de reanudaci n del punto de parada) $l (entium dispone de un con-unto de re istros de depuración para pro ramar puntos de parada. C ) ' 1B R 7 0 < > 9 5 ( .C.R (.R$. Distribución de los bits se:ali8adores del re istro $7. (oniendo R7G1+ se permite i norar los puntos de parada.. • .9<$.

Capítulo 11: Modelo del Pentium para el programador de sistemas en 'odo (rote ido+ para poder e-ecutar las instrucciones prote idas relacionadas con las $=1. Capítulo 11.15 .

l i ual que pasa en el fla anteriormente 6isto+ el procesador solo reconoce este fla cuando el bit )'$ o el bit ()9 en el re istro CR# están acti6ados 012 & el ni6el de pri6ile io 0(.+ una interrupción o una e%cepción+ & e%amina & modifica este fla cuando se retorna de una tarea mediante la instrucción 9R$>.CG1 & . $l procesador pone este fla a 1 cuando se /ace una llamada a una tarea mediante una instrucción C.16 . . • • • • 11. <ormalmente las e%cepciones pro6ocadas por el c/equeo de alineamiento se producen solo en el modo usuario 0(.a tarea en fase de e-ecución /a sido llamada por la otra a la que /a& que retornar en el caso de que el bit <>G1.2 es inferior a !. CR0+ CR2+ CR! & CR# son accesibles al pro ramador de sistemas & pueden ser leHdos & escritos mediante instrucciones del tipo '5) desde los re istros de Capítulo 11.as e%cepciones por c/equeo de alineamiento pueden ser usadas para comprobar el alineamiento de los datos. ./) /6e7ueo de alineamiento) 1i .9D+ la cual identifica el procesador de6ol6iendo muc/as de las caracterHsticas del mismo. $l softOare acti6a & desacti6a este fla + mientras que el procesador solamente lo lee+ nunca lo modifica. Controla el encadenamiento de las interrupciones & las llamadas de las tareas.G!2.'G1 en el re istro de control CR0 la C(.REGISTROS DE CONTROL 1on B re istros de !2 bits cada uno+ llamados CR0-CR#+ de los cuales el CR1 no esta definido en el funcionamiento del (entium & su uso está pre6isto desarrollar en nue6os procesadores.6.Capítulo 11: Modelo del Pentium para el programador de sistemas • *") "area anidada) .. De cualquier modo+ cambiar el 6alor de este fla puede enerar e%cepciones inesperadas en las aplicaciones.!() +lag de interrupci n pendiente en modo 2irtual) $ste bit nos indica que una interrupción esta pendiente cuando esta a 1+ por el contrario no esta pendiente cuando es 0.!+) +lag de interrupci n en modo 2irtual) $s un bit equi6alente al bit 97 del modo prote ido+ que se utili8a cuando traba-amos en modo 6irtual-*6+ es decir+ es la ima en 6irtual del fla 97. $sto es Jtil cuando se intercambia información con otros procesadores+ lo que requiere que los datos est4n alineados. .2 es inferior a !. . . !0) !denti&icaci n del procesador) 1i se acti6a este fla se /abilita el uso de la instrucción C(. enera una e%cepción cuando locali8a un operando cu&a dirección no sea mJltiplo de #. $l procesador solo reconoce este fla cuando el bit )'$ o el bit ()9 en el re istro CR# están acti6ados 012 & el ni6el de pri6ile io 0(..

6. 11.-. Capítulo 11.CR0: Do !" #$!$ %$ &" "'($&o &" !$ )*+. $stos re istros determinan el modo de operación del procesador & las caracterHsticas de la tarea en e-ecución.1.6+ este re istro solo tiene asi nadas funciones a once de sus bits.17 .$ Como puede apreciarse en la fi ura 11.Capítulo 11: Modelo del Pentium para el programador de sistemas propósito eneral.

Capítulo 11: Modelo del Pentium para el programador de sistemas . . $l fla (3 no tiene efecto si el fla ($ 0bit 0 en CR02 no esta tambien acti6o. Cuando 6alHa 1 el coprocesador era el !*A. 1i CDG1 la desacti6a. F 0 ' ( 000 000 0000 < $ > $ ' ( $ > 1 ' ( $ '1F 7i ura 11.nidad de (a inación+ que traduce las direcciones lineales a fHsicas. • • • • • • • • • (1) (aginaci n) Cuando este bit 6ale 1 si nifica que está /abilitada la .2G!+ estando en modo prote ido o modo 6irtual-*6+ comprueba si la dirección de los operandos es mJltiplo de # & si no lo es enera una e%cepción. /0) /ac68 desacti2ada) Cuando CDG0 acti6a la cac/4 interna. 3-) 3mulaci n) Cuando $'G1 la e-ecución de una instrucción num4rica enera una e%cepción+ por lo que debe tener dic/o 6alor en caso de que el procesador no dispon a de 7(. Cuando la pa inación esta desacti6ada+ todas las direcciones lineales son tratadas como direcciones fHsicas. 0. $structura del re istro CR0+ cu&os 16 bits de menos peso forman la Ppalabra de estado de la maquinaQ 0'1F2. 3") "area de coprocesador) $n el (entium no se utili8a.a C(. $s decir+ este bit se usa para indicar si se utili8a el emulador del coprocesador. (3) :abilitaci n del modo protegido) Cuando ($G1+ el (entium opera en 'odo (rote ido+ mientras que si ($G0+ lo /ace en 'odo Real. De /ec/o+ la acti6ación de (3 estando ($ inacti6o pro6ocarHa que se enerase una e%cepción de protección eneral.312G1 si el ni6el de pri6ile io 0(. 9() (rotecci n de escritura) 1i F(G1 impide escribir una pa ina de ni6el de usuario definida de solo lectura o e-ecución+ incluso desde el modo super6isor. .os bits definidos en CR0 son: !1 ( C < CR0 3 D F 0 000 000 0000 . 1e usaba en los procesadores M*6+ 2*6 & !*6 para indicar si el coprocesador e%terno era el 2*A ó el !*A. *9) *o escritura obligada) 1i <FG0 pone en marc/a la escritura obli ada & los ciclos de in6alidación de la cac/4. pone a 1 este bit al producirse una conmutación de tarea.nidad de Coma 7lotante2.18 . (oner este bit a 1 fuer8a a todas las instrucciones en coma flotante a ser e-ecutadas por emulación softOare.'G1 & el bit . Capítulo 11..C0$7. "5) "area conmutada) .-) -ascara de alineamiento) Cuando . 1i <FG1 los desacti6a.ue o+ durante la e-ecución de instrucciones+ lo e%amina cuando encuentra al una instrucción para el coprocesador+ en cu&o caso sal6a el conte%to de la anterior tarea que tenHa el coprocesador & car a el nue6o poniendo >1G0.9.

1i <$G0 & 93<$RG0 se i noran los errores num4ricos. -() -onitor de coprocesador) $n el (entium '(G1. • Capítulo 11.Capítulo 11: Modelo del Pentium para el programador de sistemas • *3) 3rror del coprocesador) Cuando <$G1 se acti6a el mecanismo normal de de6ol6er errores en la %*A 7(.9>+ que se usa para sincroni8ar el procesador con el coprocesador. Dic/a interrupción lle a por la patita 7$RRR que pro6oca una entrada al controlador de interrupciones & detiene inmediatamente la e-ecución de instrucciones antes de e-ecutar la si uiente instrucción en coma flotante o las instrucciones F.19 ..9>=7F.9>. 1i <$G0 & 93<$RG1 un error num4rico causa la parada del procesador & espera una interrupción. 1e usaba en procesadores anteriores para controlar la función de la instrucción F.

$structura del re istro CR!.6. $structura del re istro CR2.. CR! !1 ".4.1 0 $l bit (CD tiene el 6alor de la patita del (entium (CD en los ciclos que no /a& pa inación.9<$.(F>: (a ina de escritura obli ada. D$.11. D9R$C>5R95 D$ (S39<. 9ndican lo mismo que los fla s del mismo nombre en las entradas de las tablas de pá inas. $l códi o de error que especifica la causa de fallo se almacena en la pila del manipulador de los fallos de pá ina.(CD: (a ina cac/eable..6..-("/(. 7. D9R$CC95< 7."$! &" 1$!!o &" #*2-. !-. 11.9<$. ..CR2: D-%"//-0.6.CR4: E3(".$' 3uarda la dirección fHsica en la que comien8a el Directorio de las >ablas de (á inas de la tarea en curso. 11.39<.'-o. 31 0 CR2 D9R$CC9E< . Como dic/o Directorio tiene formato de una pá ina de # I"+ los 12 bits de menos peso de CR! 0como deberHan ser todo 02 se i noran en la escritura & solo dos tienen si nificado en el (entium: el (CD & el (F>.. $l bit (F> toma el 6alor de la patita del (entium del mismo nombre en los ciclos que no /a& pa inación. >anto la conmutación de tareas+ como la car a de CR!+ in6alidan todas las entradas de la >.1$ D$.%$ Capítulo 11.CR3: B$'" &"! &-%"/(o%-o &" !$' ($ !$' &" #*2-. $s decir+ para permitirlo (C$ & I$<R deben 6aler cero.5 D$ (.". 1e le conoce como Re istro "ase del Directorio de (á inas 0(D"R2. ( ( 0 0 0 0 0 0 C F 0 0 0 0 D > 12 11 7i ura 11. 7i ura 11. (S39<. Cuando /a& pa inación+ estos dos fla s indican lo si uiente: .$ $n este re istro se almacena la dirección lineal que se introdu-o en la .nidad de (a inación para traducirla a dirección fHsica+ & que ocasionó un error o fallo de pa ina. 1e usa para controlar la cac/4.20 ."' &" !$ $%+..10.3.5 D$ . (ara que un acceso a memoria pueda ser llenado con una lHnea de la cac/4+ la patita I$<R debe estar a cero.Capítulo 11: Modelo del Pentium para el programador de sistemas 11.2.

21 .Capítulo 11: Modelo del Pentium para el programador de sistemas $s un nue6o re istro que se incorporó en el (entium & que contiene 6arios bits que soportan di6ersas e%tensiones de la arquitectura. Capítulo 11.

$l se:ali8ador de reanudación+ R7+ si esta a 1+ permite 6ol6er a e-ecutar una instrucción despu4s de producirse una e%cepción de depurado+ de manera que no se reprodu8ca la misma e%cepción a causa de las mismas condiciones. $sto es+ no se puede e-ecutar para los ni6eles de prioridad distintos a 0 0(.. (/3) $ste bit permite+ cuando esta acti6ado 0(C$G12+ e-ecutar la instrucción RD('C.4. (or el contrario si (1$G0 las pá inas son de # I".tensi n del tamaño de p?gina) 1i (1$G1+ se acti6an pá inas de # '".G0+ se pueden e-ecutar con (.-3) 3. 07i ura 11. ( C $ 51M''$MC(> 517M1R 7i ura 11. (13) Cuando este bit esta a 0+ las pa inas lobales están desabilitadas+ mientras que si esta a 1 están /abilitadas. . Distribución de los bits mas si nificati6os del re istro CR#. Cuando se produce un punto de parada o se da una condición especial en la depuración+ el procesador enera un tipo concreto de interrupción cu&a rutina de ser6icio se encar a de atender el ori en que la ocasionó.REGISTROS DE DE56RACION 7orman un con-unto de oc/o re istros de !2 bits+ dos de los cuales 0DR#DRB2 son de uso reser6ado por el fabricante. "50) 0esacti2aci n del =time-stamp>) 1i >1DG1 la instrucción RD>1C pasa a ser de tipo pri6ile iada.12.G!. 03) 0epuraci n de e. 1on accesibles al pro ramador & constitu&en una potente /erramienta para la puesta a punto del sistema ló ico+ puesto que permiten especificar /asta cuatro puntos de parada o ruptura+ que se controlan de forma mu& fle%ible. 11. ( 3 $ ' C $ 0 ( 1 $ D $ > 1 D ( ) 9 ) ' $ 0 /R4 • • • • • • • • .22 .92.!) !nterrupciones 2irtuales en modo protegido) 1i ()9G1 se acti6a el soporte para que funcione el fla )97 para las interrupciones en 'odo (rote ido.tensiones) Con D$G1 se acti6an los puntos de ruptura en el espacio de $=1. 1in embar o+ esta instrucción solo se podrá e-ecutar desde el ni6el de prioridad 0 0R(.. -/3) . Capítulo 11.sH al unos pro ramas dise:ados para e-ecutarse con (.Capítulo 11: Modelo del Pentium para el programador de sistemas !1 000. (53) 3.G02 cuando este bit 6al a 0.cti2aci n del c6e7ueo de la m?7uina) Con 'C$G1 se acti6a la e%cepción correspondiente al c/equeo de la máquina.tensi n del modo 2irtual 8<86) 1i )'$G1 se acti6a el soporte para que funcione el fla )97 para las interrupciones en 'odo )irtual. TG 02. (.

23 .Capítulo 11: Modelo del Pentium para el programador de sistemas Capítulo 11.

. ! " " " " 0000000000000000 > 1 D 0 0 0 0 0 0 0 0 0 ! .9<$. . $n DRA+ los bits 16:1A+ 20:21 & 2#:2B contienen los campos R=F.<>5 R.$<% se interpreta: 00: 01: 10: 11: . 0 D9R$CC9E< .on itud de dos b&tes.$< se encuentran en los bits 1*:19+ 22:2!+ 26:2A+ !0:!1 de DRA. 0 0 0 7i ura 11.R. 3 < ! F! < 2 F2 < 1 F1 < 0 F0 0 0 0 0 0 0 $ $ ! ! 2 2 1 !1 16 1B " 2 . .% & 3%2.<>5 R. (.on itud de un b&te. Cada re istro de direcciones de depuración+ DR0-DR!+ tiene en DRA sus propios campos de dos bits para la /abilitación de puntos de ruptura de .Capítulo 11: Modelo del Pentium para el programador de sistemas .$ R= .on itud de cuatro b&tes.<>5 R. 1 D9R$CC9E< ..9<$.ectura=$scritura 0RF%2+ . DRA se le llama re istro de control+ pues define & /abilita o no+ selecti6amente+ las condiciones de depuración. 11: Ruptura en escritura o lectura de datos+ pero no en la bJsqueda de instrucciones.=$ 0D$ debe ser 12.R. 10: 5peraciones .$<%2 & .9<$. $stos campos R=F se interpretan de la si uiente forma: 00: Ruptura en e-ecución de una instrucción. $n este Jltimo caso+ en DRA residen los bits de /abilitación local & lobal+ que determinan que direcciones de los re istros DR0-DR! son rele6antes para cada tarea.ocal=3lobal 0. $stos campos . 3 .(>.os re istros DR0-DR! contienen las direcciones asociadas a una de las cuatro condiciones de punto de ruptura+ definidas por ciertos bits en el re istro DRA.. (.(>.$ R= . !1 DR0 DR1 DR2 DR! DR6 DRA D9R$CC9E< .$<% que especifica la lon itud de los datos que se están 6i ilando+ para esto los datos deben estar alineados.on itud 0. .(>. 7ormato de los seis re istros de depuración que tienen definidas funciones en el (entium.. 2 D9R$CC9E< . <o utili8ado.1!.R. (.<>5 R.24 .R. $stos cuatro re istros contienen direcciones lineales+ que son direcciones fHsicas cuando se /alla in/abilitada la pa inación+ o bien /a& que traducirlas a fHsicas si está /abilitada. (. 3 . Cada re istro de direcciones DR0-DR!+ tiene asociado en DRA un campo .$ R= . 01: Ruptura en escritura de datos. . Capítulo 11. 1 " 1 3 0 " 0 .(>.9<$.$ R= 3 .

Capítulo 11: Modelo del Pentium para el programador de sistemas Cuando el campo R=F n esta a cero+ el campo .25 .n tambi4n debe estar a cero. Capítulo 11.

os ceros se despla8an a DR6 antes de intentar identificar la si uiente e%cepción de depuración. DR6 contiene 6arios se:ali8adores de condición de depuración+ que permiten determinar al depurador+ las condiciones que se /an producido con el error. 2. 1in embar o+ 3D si tiene un si nificado en el (entium: si 3D 6ale 0 se des/abilita la protección de los re istros de depuración+ mientras que si 6ale 1 se /abilita esta protección.31. .os re istros de depuración me-oran considerablemente las caracterHsticas & el control sobre puntos de ruptura propios de los microprocesadores con6encionales.a diferencia entre ellos es que . 5tras /erramientas de las que dispone el (entium+ complementarias a los re istros de depuración son: 1. $l campo "> de DR6 funciona con un bit de e%cepción en depuración que se uarda en la primera posición del >11. .% & 3%.Capítulo 11: Modelo del Pentium para el programador de sistemas Cada re istro de direcciones tambi4n tiene asociados dos campos+ llamados . $n los dos casos anteriores+ un 1 /abilita local o lobalmente la condición % del punto de ruptura al que este asociado 0%2+ mientras que un 0 la des/abilita. $l re istro DRA+ además de todos los anteriores+ tiene tres bits llamados .26 . . . Cuando se detecta una e%cepción de depuración /abilitada+ el bit asociado "n se pone a 1. $l se:ali8ador "D indica si la si uiente instrucción leerá o escribirá uno de los oc/o re istros de depuración. $l bit se:ali8ador "1 funciona con el bit del se:ali8ador de e%cepción >7+ del re istro $7. .$+ 3$ & 3D+ los cuales se encuentran en los bits *+ 9 & 1!+ respecti6amente.os 3%+ sin embar o+ se encuentran en los bits 1+ !+ B & A de DRA+ & representan las /abilitaciones lobales de las condiciones % de los puntos de ruptura.sH+ por e-emplo+ a:aden la posibilidad de for8ar puntos de ruptura sobre acceso a datos+ de forma que si una 6ariable se intenta rescribir accidentalmente+ se puede acti6ar un punto de ruptura que deten a la e-ecución+ siempre que se 6a&a a modificar el contenido de la 6ariable. "1 se pone a 1 cuando el manipulador de depuraciones actJa como resultado de una e-ecución paso a paso. (untos de ruptura por so&t@are) . . "> se pone a 1 antes de introducir al manipulador de depuraciones+ si se /a producido una e%cepción de depuración por una conmutación de tareas & el bit de e%cepción del >11 esta a 1. .sando la instrucción de un b&te 9<>!+ se pro6oca una e%cepción al ser e-ecutada+ la cual es tratada mediante el recurso que /alla para su atención en la 9D>. (aso a paso) Cuando el se:ali8ador >7G1+ se produce una e%cepción cada 6e8 que se e-ecuta una instrucción.os . .os dos primeros se i noran en los procesadores superiores al #*6.. $l microprocesador nunca pone a cero los se:ali8adores de DR6.n /abilita su puesta a cero 0desacti6ación2 por el microprocesador en cada conmutación de tarea para e6itar condiciones indeseables de puntos de ruptura en la nue6a tarea.a rutina que atiende esta Capítulo 11. $ste bit es puesto a 0 cuando se entra al manipulador de e%cepciones.%+ que se encuentran en los bits 0+ 2+ # & 6 de DRA+ representan las /abilitaciones locales de las condiciones % de los puntos de ruptura.

7."+ que es una peque:a memoria cac/4 ultrarápida que contiene la traducción de dirección lineal a dirección fHsica de las !2 pá inas que se /an usado Jltimamente. 11.+ o bien+ e%aminar al una caracterHstica del procesador. Capítulo 11.Capítulo 11: Modelo del Pentium para el programador de sistemas e%cepción puede usarse para 6isuali8ar el estado de la C(.27 .REGISTROS DE 5R6EBA DE LA TLB 1on dos re istros de !2 bits+ >R6 & >RA+ con los que se puede leer & escribir el contenido de una entrada de la >.

a >.eer una entrada de la >. . Como se refle-a en la fi ura 11. 0202 ) D R . $n el campo de etiqueta residen los 20 bits de más peso de la dirección lineal+ -unto con # bits de atributos 0): )alide8+ D: 1ucio+ .#.10+ el campo de la etiqueta se compone de los 20 bits más si nificati6os de la dirección lineal & de otros cuatro para los atributos. 2.9<$. $n el campo de datos asociado al de la etiqueta se almacenan los 20 bits de mas peso de la dirección fHsica correspondiente a la lineal de la etiqueta.. . F D9R$CC9E< .1B. $scribir una entrada de la >. !1 >RA D9R$CC9E< 7K19C. R F R 0000 C 12 11 0 7i ura 11."+ comprobando la dirección fHsica que contiene+ correspondiente a la dirección lineal que se proporciona."+ introduciendo la dirección lineal & la fHsica que corresponde.28 .suario+ F: $scritura2.".".Capítulo 11: Modelo del Pentium para el programador de sistemas . 7ormato del re istro de comando >R6+ utili8ado en el c/equeo de la >. Cada entrada se compone de dos campos+ uno con la etiqueta & otro+ asociado con la información correspondiente." consta de !2 entradas a rupadas en cuatro bloques de oc/o entradas cada uno. R$( es un campo de dos bits que identifica cuál de los cuatro bloques de oc/o entradas+ que funcionan en paralelo+ es el seleccionado. 7ormato del re istro de datos >RA+ para la comprobación de la >." & el bit de comando C+ que si 6ale 1+ indica que se 6a a reali8ar una lectura en la >. Capítulo 11. >RA actJa como re istro de datos de la prueba & contiene los 20 bits de mas peso de la dirección fHsica+ un campo de dos bits llamado R$( & el bit ?>+ que en lectura e%presa si /ubo presencia 012 o ausencia 002+ mientras que en escritura siempre ?>G1. 0202 12 11 0000000 0 ?> R$( 00 7i ura 11. !1 >R6 D .l re istro >R6 se le denomina de comando o de control+ & fundamentalmente contiene el campo $tiqueta de la >. $l pro ramador de sistemas puede leer & escribir los re istros de prueba >R6 & >RA mediante instrucciones pri6ile iadas que solo se pueden e-ecutar en el ni6el de pri6ile io 0 0tipo '5)2."+ & si 6ale 0+ una escritura.: . .as dos operaciones básicas que se pueden reali8ar con los re istros de prueba son: 1.

Capítulo 11.Capítulo 11: Modelo del Pentium para el programador de sistemas (oder conocer la traducción de lineal a fHsica de al unas pá inas puede reducir el tiempo de inicio de tareas o procedimientos+ esta reducción se produce al escribir la traducción de las pá inas mas usadas al inicio de las tareas.29 .

• R0-5R) 0Read 'odel-1pecific Re ister2: $l 6alor en $CM especifica uno de los re istros de 6# bits especHficos del modelo del procesador. .30 .M se car a con los !2 bits menos si nificati6os.a instrucción RD'1R sólo es e-ecutable en 'odo (rote ido con ni6el de pri6ile io 0. Capítulo 11. • (ara referenciar a estos re istros se les asi na un numero. 7inalmente el nJmero 10 ?e% se asi na al contador Ptime-stampQ que se usa para leer o escribir el contador interno de 6# bits.M se car a en ese re istro. $l contenido de ese re istro se car a en $DM:$.sH el 00 es para el re istro de c/equeo de direcciones de maquina & se usa para conocer las direcciones fHsicas que pro6ocan un ciclo de bus erróneo.Capítulo 11: Modelo del Pentium para el programador de sistemas 11. $DM se car a con los !2 bits más si nificati6os+ mientras que $.8. $l nJmero 0$ ?e% es para >R12 & actJa como un re istro de control para salto en ciclos especiales. . 9R-5R) 0Frite 'odel-1pecific Re ister2: $l 6alor en $CM especifica uno de los re istros de 6# bits especHficos del modelo del procesador. $DM debe contener los !2 bits más si nificati6os+ mientras que $.M debe contener los !2 bits menos si nificati6os. $l nJmero 01 es para el re istro de c/equeo del tipo de máquina & se usa para conocer el tipo de ciclo de bus erróneo.M. (aralelamente se incorporaron al repertorio del (entium las instrucciones que permitHan leer 0RD'1R2 & escribir 0FR'1R2 los re istros especHficos. $l contenido de $DM:$.REGISTROS ES5EC9FICOS $l (entium incorporó al unos re istros especHficos como el re istro de c/equeo de dirección de la máquina+ el re istro de c/equeo del tipo de máquina+ los re istros de c/equeo del >R1 al >R12+ el contador de PtimestampQ+ el re istro de selección de control=e6entos & los dos contadores 0 & 1.