$ od -c -N 50000 [Indigo]<Dragon>MapProcessor>MapProcessorDoc.interpress!2 0000000 I n t e r p r e s s / X e r o x 0000020 / 3 . 0 240 f 240 j 240 k 240 j 017 241 017 0000040 245 223 304 006 \0 \0 035 001 B Q 240 244 240 250 305 005 0000060 X e r o x 305 \n P r e s s F o n t 0000100 s 305 \n L a u r e l - m r r 017 243 241 0000120 033 240 223 304 004 003 # \0 P 240 244 240 224 017 240 225 0000140 017 240 240 227 304 004 a 235 \0 R 304 004 034 ; \0 310 0000160 212 301 001 1 226 304 004 q 273 \0 z 304 004 t 017 \0 0000200 ( 212 305 005 X e r o x 305 \n P r e s s 0000220 F o n t s 305 016 T i m e s R o m a 0000240 n - m r r 017 243 241 033 240 223 304 004 003 # \0 0000260 P 240 244 240 224 017 241 225 017 241 240 227 301 001 T 226 0000300 305 005 X e r o x 305 \n P r e s s F o 0000320 n t s 305 016 T i m e s R o m a n - 0000340 m r r 017 243 241 033 240 223 304 004 003 # \0 d 240 0000360 244 240 224 017 242 225 017 242 240 227 301 002 H E 226 017 0000400 241 240 227 301 002 D 226 017 242 240 227 301 005 R A 0000420 G O N 226 017 241 240 227 301 002 M 226 017 242 240 0000440 227 301 002 A P 226 017 241 240 227 301 002 P 226 017 0000460 242 240 227 301 \b R O C E S S O R 226 304 004 0000500 034 ; \0 P 304 006 \0 203 033 \0 \0 1 212 304 004 034 0000520 ; \0 P 304 006 \0 345 e \0 \0 ^ 212 305 005 X e 0000540 r o x 305 \n P r e s s F o n t s 305 0000560 \r H e l v e t i c a - b r r 017 243 0000600 241 033 240 223 304 004 034 ; 001 220 240 244 240 224 017 243 0000620 225 017 243 240 227 301 030 T h e D r a g o 0000640 n M a p P r o c e s s o r 226 0000660 304 004 034 ; \0 P 304 006 001 304 362 \0 \0 305 212 305 0000700 005 X e r o x 305 \n P r e s s F o n 0000720 t s 305 \r H e l v e t i c a - b r 0000740 r 017 243 241 033 240 223 304 004 025 365 001 220 240 244 240 0000760 224 017 244 225 017 244 240 227 301 017 D e s i g n 0001000 D o c u m e n t 226 304 004 034 ; \0 P 0001020 304 006 \0 321 U \0 \0 a 212 305 005 X e r o x 0001040 305 \n P r e s s F o n t s 305 \r H e 0001060 l v e t i c a - m r r 017 243 241 033 240 0001100 223 304 004 \t i \0 310 240 244 240 224 017 245 225 017 245 0001120 240 227 301 016 P r a d e e p S i n d 0001140 h u 226 304 004 034 ; \0 P 304 006 \0 231 I \0 \0 0001160 L 212 305 005 X e r o x 305 \n P r e s s 0001200 F o n t s 305 \r H e l v e t i c a 0001220 - m r r 017 243 241 033 240 223 304 004 003 # \0 d 0001240 240 244 240 224 017 246 225 017 246 240 227 301 \f D r a 0001260 g o n - 8 4 - x x 226 304 004 033 3 004 261 0001300 214 301 031 W r i t t e n N o v e m 0001320 b e r , 2 3 1 9 8 4 226 304 004 020 0001340 E 001 L 214 301 \0 226 304 004 034 ; \0 200 214 301 030 0001360 R e v i s e d O c t o b e r 0001400 1 0 , 1 9 8 6 226 304 004 034 ; \0 P 304 0001420 004 X s \0 . 212 304 004 034 ; \0 P 304 004 } 255 0001440 \0 C 212 305 005 X e r o x 305 \n P r e s 0001460 s F o n t s 305 \b M a t h - m r r 0001500 017 243 241 033 240 223 304 004 003 # \0 d 240 244 240 224 0001520 017 247 225 017 247 240 227 301 001 c 226 017 246 240 227 301 0001540 9 C o p y r i g h t 1 9 8 0001560 4 X e r o x C o r p o r a t 0001600 i o n . A l l r i g h t s 0001620 r e s e r v e d . 226 304 004 034 ; \0 0001640 P 304 006 \0 211 0 \0 \0 M 212 305 005 X e r o 0001660 x 305 \n P r e s s F o n t s 305 \r H 0001700 e l v e t i c a - b r r 017 243 241 033 0001720 240 223 304 004 003 # \0 P 240 244 240 224 017 250 225 017 0001740 250 240 227 304 004 023 215 \n 320 017 262 223 301 \t A b 0001760 s t r a c t : 226 305 005 X e r o x 305 0002000 \n P r e s s F o n t s 305 \r H e l 0002020 v e t i c a - m r r 017 243 241 033 240 223 0002040 304 004 003 # \0 P 240 244 240 224 017 251 225 017 251 240 0002060 227 301 H T h i s d o c u m e 0002100 n t d e s c r i b e s t h e 0002120 D r a g o n M a p P r o c 0002140 e s s o r , t h e d e v i c 0002160 e t h a t m a p s 226 017 241 017 262 0002200 223 304 004 034 ; \0 P 304 006 002 337 y \0 001 250 212 0002220 017 251 240 227 304 004 I 323 - 326 017 262 223 301 U v 0002240 i r t u a l a d d r e s s e s 0002260 t o r e a l a n d p r o 0002300 v i d e s p e r - p a g e m 0002320 e m o r y p r o t e c t i o n 0002340 i n D r a g o n . T h e 0002360 M a p 226 017 241 017 262 223 304 004 034 ; \0 P 0002400 304 004 y 201 \0 H 212 017 251 240 227 304 004 017 201 \f 0002420 . 017 262 223 301 Z P r o c e s s o r ' 0002440 s m a i n f e a t u r e s 0002460 a r e f a s t r e s p o n s 0002500 e t o m a p p i n g r e q 0002520 u e s t s ; t h e u s e o 0002540 f a s m a l l , f i x e d 0002560 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 001 \b 0002600 037 \0 \0 241 212 017 251 240 227 304 004 \n 260 \b 311 017 0002620 262 223 301 Y f r a c t i o n o f 0002640 m a i n m e m o r y f o r 0002660 m a p p i n g ; t h e s u p 0002700 p o r t o f m u l t i p l e 0002720 a d d r e s s s p a c e s 0002740 w i t h s h a r i n g ; 226 017 241 0002760 017 262 223 304 004 034 ; \0 P 304 006 \0 222 231 \0 \0 0003000 \ 212 017 251 240 227 304 004 \n < 006 207 017 262 223 301 0003020 U a n d a n o r g a n i z a 0003040 t i o n i n w h i c h b o 0003060 t h f u n c t i o n a n d 0003100 p e r f o r m a n c e c a n 0003120 b e e n h a n c e d r e l a 0003140 t i v e l y 226 017 241 017 262 223 304 004 034 ; 0003160 \0 P 304 006 001 213 341 \0 001 \0 212 017 251 240 227 301 0003200 $ e a s i l y a f t e r i n 0003220 i t i a l i m p l e m e n t a 0003240 t i o n . 226 304 004 034 ; \0 P 304 006 \0 202 0003260 265 \0 \0 Z 212 017 250 240 227 301 \t K e y w o 0003300 r d s : 226 017 251 240 227 301 D D r a g 0003320 o n , M u l t i p r o c e s s 0003340 o r s , A d d r e s s M a p 0003360 p i n g , V i r t u a l M e 0003400 m o r y , M a p C a c h e 226 0003420 304 004 034 ; \0 P 304 004 ~ P \0 ] 212 017 250 240 0003440 227 301 \t F i l e N a m e : 226 017 251 240 0003460 227 301 ? / I n d i g o / D r a g 0003500 o n / M a p P r o c e s s o r / 0003520 M a p P r o c e s s o r D o c . 0003540 t i o g a , . i n t e r p r e 0003560 s s 226 304 004 034 ; \0 P 304 006 \0 342 F \0 \0 0003600 263 212 304 004 034 ; \0 P 304 004 9 177 \0 ^ 212 305 0003620 005 X e r o x 305 \n P r e s s F o n 0003640 t s 305 \b L o g o - m r r 017 243 241 033 0003660 240 223 017 270 240 244 240 224 017 252 225 017 252 240 227 301 0003700 005 X E R O X 226 017 241 240 227 301 \0 226 304 006 0003720 004 y 207 \0 031 215 214 017 251 240 227 301 \0 226 017 332 0003740 214 301 \0 226 017 332 214 301 021 X e r o x C 0003760 o r p o r a t i o n 226 304 004 034 ; \0 0004000 P 304 004 i 225 \0 273 212 017 241 240 227 301 \0 226 017 0004020 332 214 017 251 240 227 301 \0 226 017 332 214 301 \0 226 017 0004040 332 214 301 \0 226 017 332 214 301 031 P a l o A 0004060 l t o R e s e a r c h C e n 0004100 t e r 226 304 004 034 ; \0 P 304 004 i 225 \0 314 0004120 212 017 241 240 227 301 \0 226 017 332 214 017 251 240 227 301 0004140 \0 226 017 332 214 301 \0 226 017 332 214 301 \0 226 017 332 0004160 214 301 025 3 3 3 3 C o y o t e H 0004200 i l l R o a d 226 304 004 034 ; \0 P 304 0004220 006 001 003 @ \0 002 ' 212 017 241 240 227 301 \0 226 017 0004240 332 214 017 251 240 227 301 \0 226 017 332 214 301 \0 226 017 0004260 332 214 301 \0 226 017 332 214 301 033 P a l o A 0004300 l t o , C a l i f o r n i a 0004320 9 4 3 0 4 226 304 004 034 ; \0 P 304 004 ! t 0004340 \0 O 212 304 004 034 ; \0 P 304 006 \0 232 264 \0 001 0004360 233 212 304 004 034 ; \0 P 304 006 \0 256 217 \0 002 022 0004400 212 304 004 034 ; \0 P 304 004 & 255 \0 211 212 017 244 0004420 240 227 301 033 F o r I n t e r n a l 0004440 X e r o x U s e O n l y 226 0004460 240 k 240 j 017 241 017 245 223 304 006 \0 \0 035 001 B 0004500 Q 240 244 240 250 304 004 [ 317 \0 z 304 004 035 313 \0 0004520 310 212 305 005 X e r o x 305 \n P r e s s 0004540 F o n t s 305 016 T i m e s R o m a 0004560 n - m r r 017 243 241 033 240 223 304 004 003 # \0 0004600 d 240 244 240 224 017 240 225 017 240 240 227 301 , D R 0004620 A G O N P R O J E C T 030 F 0004640 O R I N T E R N A L X E R O 0004660 X U S E O N L Y 226 304 006 001 353 005 0004700 \0 002 024 304 004 t 017 \0 ( 212 305 005 X e r o 0004720 x 305 \n P r e s s F o n t s 305 016 T 0004740 i m e s R o m a n - m r r 017 243 241 0004760 033 240 223 304 004 003 # \0 P 240 244 240 224 017 241 225 0005000 017 241 240 227 301 001 T 226 017 240 240 227 301 002 H E 0005020 226 017 241 240 227 301 002 D 226 017 240 240 227 301 005 0005040 R A G O N 226 017 241 240 227 301 002 M 226 017 0005060 240 240 227 301 002 A P 226 017 241 240 227 301 002 P 0005100 226 017 240 240 227 301 \b R O C E S S O R 226 0005120 305 005 X e r o x 305 \n P r e s s F o 0005140 n t s 305 \n L a u r e l - m r r 017 0005160 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 0005200 242 225 017 242 240 227 304 006 002 \a 9 \0 001 \0 304 006 0005220 \0 346 304 \0 \0 O 212 301 001 2 226 304 004 034 ; \0 0005240 P 304 006 \0 203 033 \0 \0 1 212 305 005 X e r o 0005260 x 305 \n P r e s s F o n t s 305 016 T 0005300 i m e s R o m a n - b r r 017 243 241 0005320 033 240 223 304 004 \t i \0 310 240 244 240 224 017 243 225 0005340 017 243 240 227 301 \b C o n t e n t s 226 304 0005360 004 " 201 \0 P 304 006 \0 235 y \0 \0 = 212 305 005 0005400 X e r o x 305 \n P r e s s F o n t 0005420 s 305 016 T i m e s R o m a n - b r 0005440 r 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 0005460 224 017 244 225 017 244 240 227 301 017 1 . I n t 0005500 r o d u c t i o n 226 304 004 " 201 \0 P 0005520 304 006 \0 354 N \0 \0 _ 212 017 244 240 227 301 003 2 0005540 . 226 301 033 T h e A d d r e s s 0005560 i n g A r c h i t e c t u r e 0005600 226 304 004 " 201 \0 P 304 004 k 263 \0 - 212 017 244 0005620 240 227 301 026 3 . S y s t e m O r 0005640 g a n i z a t i o n 226 304 004 " 201 \0 0005660 P 304 006 001 226 366 \0 \0 261 212 017 244 240 227 301 023 0005700 4 . S y s t e m F u n c t i 0005720 o n s 226 304 004 " 201 \0 P 304 004 } 261 \0 9 0005740 212 017 244 240 227 301 020 5 . T h e M a 0005760 p C a c h e 226 304 004 " 201 \0 P 304 006 0006000 \0 234 7 \0 \0 J 212 017 244 240 227 301 033 6 . 0006020 T h e M a p C a c h e C o 0006040 n t r o l l e r 226 304 004 " 201 \0 P 304 0006060 006 \0 223 < \0 \0 I 212 017 244 240 227 301 020 7 . 0006100 T h e M a p T a b l e 226 304 0006120 004 " 201 \0 P 304 006 \0 200 324 \0 \0 C 212 017 244 0006140 240 227 301 027 8 . M i s c e l l a n 0006160 e o u s I s s u e s 226 304 004 " 201 0006200 \0 P 304 004 U 363 \0 / 212 017 244 240 227 301 037 A 0006220 p p e n d i x A . S i z e 0006240 o f B y p a s s A r e a 226 304 0006260 004 " 201 \0 P 304 004 035 } \0 021 212 017 244 240 227 0006300 301 & A p p e n d i x B . L a 0006320 y o u t o f I O A d d r e 0006340 s s S p a c e 226 304 004 " 201 \0 P 304 0006360 004 4 177 \0 212 017 244 240 227 301 ! A p p e 0006400 n d i x C . F o r m a t o 0006420 f M a p E n t r i e s 226 304 004 0006440 " 201 \0 P 304 004 3 \b \0 ! 212 017 244 240 227 301 0006460 024 A p p e n d i x D . N o t 0006500 a t i o n 226 304 004 034 ; \0 P 304 004 021 311 0006520 \0 ? 212 240 k 240 j 017 241 017 245 223 304 006 \0 \0 0006540 035 001 B Q 240 244 240 250 304 004 [ 317 \0 z 304 004 0006560 035 313 \0 310 212 305 005 X e r o x 305 \n P r 0006600 e s s F o n t s 305 016 T i m e s R 0006620 o m a n - m r r 017 243 241 033 240 223 304 004 0006640 003 # \0 d 240 244 240 224 017 240 225 017 240 240 227 301 0006660 , D R A G O N P R O J E C T 0006700 030 F O R I N T E R N A L X 0006720 E R O X U S E O N L Y 226 304 004 0006740 d 253 \0 m 304 004 t 017 \0 ( 212 305 005 X e r 0006760 o x 305 \n P r e s s F o n t s 305 016 0007000 T i m e s R o m a n - m r r 017 243 0007020 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 241 0007040 225 017 241 240 227 301 001 T 226 017 240 240 227 301 002 H 0007060 E 226 017 241 240 227 301 002 D 226 017 240 240 227 301 0007100 005 R A G O N 226 017 241 240 227 301 002 M 226 0007120 017 240 240 227 301 002 A P 226 017 241 240 227 301 002 0007140 P 226 017 240 240 227 301 \b R O C E S S O R 0007160 226 305 005 X e r o x 305 \n P r e s s F 0007200 o n t s 305 \n L a u r e l - m r r 0007220 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 0007240 017 242 225 017 242 240 227 304 004 Q - \0 ( 304 006 \0 0007260 346 304 \0 \0 O 212 301 001 3 226 304 004 034 ; \0 P 0007300 304 006 \0 203 033 \0 \0 1 212 305 005 X e r o x 0007320 305 \n P r e s s F o n t s 305 016 T i 0007340 m e s R o m a n - b r r 017 243 241 033 0007360 240 223 304 004 \t i \0 310 240 244 240 224 017 243 225 017 0007400 243 240 227 301 001 1 226 301 001 . 226 301 \r I n 0007420 t r o d u c t i o n 226 304 004 " 201 \0 0007440 P 304 006 \0 275 363 \0 \0 J 212 017 241 240 227 304 004 0007460 025 ! \v 016 017 262 223 301 T T h e D r a 0007500 g o n M a p P r o c e s s o 0007520 r i s a s i n g l e l o 0007540 g i c a l d e v i c e t h a 0007560 t i m p l e m e n t s t h e 0007600 m a p p i n g f r o m 226 017 241 0007620 017 262 223 304 004 034 ; \0 P 304 006 002 323 1 \0 001 0007640 037 212 017 241 240 227 304 004 005 004 002 271 017 262 223 301 0007660 ^ v i r t u a l a d d r e s s 0007700 e s t o r e a l a n d p 0007720 r o v i d e s p e r - p a g e 0007740 m e m o r y p r o t e c t i 0007760 o n . I t s m a i n f e a 0010000 t u r e s a r e : f a s t 226 0010020 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 233 311 0010040 \0 \0 ? 212 017 241 240 227 304 004 / 244 253 017 262 0010060 223 301 ] r e s p o n s e t o m 0010100 a p p i n g r e q u e s t s 0010120 o n t h e a v e r a g e ( 0010140 ~ 4 D y n a B u s c y c l 0010160 e s ) ; t h e u s e o f 0010200 a m a p t a b l e t h a t 0010220 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 265 0010240 356 \0 \0 K 212 017 241 240 227 304 004 \a 315 005 017 0010260 262 223 301 _ c o n s u m e s a s 0010300 m a l l ( < 1 % ) , f i x 0010320 e d f r a c t i o n o f r 0010340 e a l m e m o r y ; t h e 0010360 s u p p o r t o f m u l t i 0010400 p l e v i r t u a l a d d r 0010420 e s s 226 017 241 017 262 223 304 004 034 ; \0 P 304 0010440 006 \0 365 001 \0 \0 g 212 017 241 240 227 304 004 016 213 0010460 \a u 017 262 223 301 Y s p a c e s t h 0010500 a t a r e p e r m i t t e d 0010520 t o s h a r e m e m o r y 0010540 ; a n d a n o r g a n i z 0010560 a t i o n i n w h i c h b 0010600 o t h f u n c t i o n a n d 0010620 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 C 236 0010640 \0 035 212 017 241 240 227 304 004 004 257 002 351 017 262 223 0010660 301 ^ p e r f o r m a n c e c a 0010700 n b e e n h a n c e d r e 0010720 l a t i v e l y e a s i l y 0010740 a f t e r h a r d w a r e i 0010760 m p l e m e n t a t i o n . I 0011000 n s p i t e o f t h e s e 0011020 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 = 257 0011040 \0 033 212 017 241 240 227 301 036 f e a t u r e 0011060 s t h e d e s i g n i s 0011100 s i m p l e . 226 304 004 " 201 \0 P 304 004 0011120 S 267 \0 & 212 017 241 240 227 304 004 005 9 003 P 017 0011140 262 223 301 X T h i s d o c u m e n 0011160 t b e g i n s w i t h t h 0011200 e a d d r e s s i n g a r c 0011220 h i t e c t u r e s u p p o r 0011240 t e d b y t h e M a p P 0011260 r o c e s s o r . I t 226 017 241 017 0011300 262 223 304 004 034 ; \0 P 304 006 002 364 277 \0 001 _ 0011320 212 017 241 240 227 304 004 003 350 003 o 017 262 223 301 ` 0011340 t h e n d e s c r i b e s t 0011360 h e M a p P r o c e s s o r 0011400 ' s o r g a n i z a t i o n 0011420 i n t e r m s o f i t s 0011440 t h r e e c o m p o n e n t s 0011460 : t h e M a p C a c h e , 0011500 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 Z 257 0011520 \0 + 212 017 241 240 227 304 004 \a 353 005 321 017 262 223 0011540 301 \ w h i c h i s a c u s 0011560 t o m V L S I c h i p ; t 0011600 h e M a p C a c h e C o n 0011620 t r o l l e r , w h o s e f 0011640 u n c t i o n a l i t y i s 0011660 i m p l e m e n t e d b y 226 017 0011700 241 017 262 223 304 004 034 ; \0 P 304 004 ? 353 \0 037 0011720 212 017 241 240 227 304 004 \t 302 \t # 017 262 223 301 _ 0011740 o r d i n a r y D r a g o n 0011760 p r o c e s s o r s ; a n d 0012000 t h e m a i n m e m o r y 0012020 M a p T a b l e , w h i c h 0012040 s t o r e s t h e v i r t 0012060 u a l t o p h y s i c a l 226 0012100 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 303 p 0012120 \0 \0 a 212 017 241 240 227 304 004 005 335 003 251 017 262 0012140 223 301 _ m a p p i n g . T h e 0012160 f o l l o w i n g s e c t i o 0012200 n p r o v i d e s t h e f 0012220 u n c t i o n a l s p e c i f 0012240 i c a t i o n s f o r t h e 0012260 M a p P r o c e s s o r ; 0012300 i t 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0012320 001 227 T \0 \0 317 212 017 241 240 227 304 004 \b ; 006 0012340 257 017 262 223 301 a a l s o i n d i c 0012360 a t e s h o w e a c h f u 0012400 n c t i o n i s i n v o k e 0012420 d a n d w h e r e i t i 0012440 s i m p l e m e n t e d . 0012460 T h e n e x t t h r e e s 0012500 e c t i o n s 226 017 241 017 262 223 304 004 034 0012520 ; \0 P 304 004 3 334 \0 033 212 017 241 240 227 304 004 0012540 \b K \a 361 017 262 223 301 f d e s c r i b 0012560 e e a c h o f t h e c o 0012600 m p o n e n t s i n g r e a 0012620 t e r d e t a i l , w h i l 0012640 e t h e l a s t s e c t i 0012660 o n a d d r e s s e s d e s 0012700 i g n i s s u e s t h a t 226 0012720 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 237 C 0012740 \0 \0 U 212 017 241 240 227 301 V d o n o t 0012760 f i t e l s e w h e r e . 0013000 I m p o r t a n t i n f o r 0013020 m a t i o n i s c o l l e c 0013040 t e d t o g e t h e r i n 0013060 t h e A p p e n d i c e s . 0013100 226 304 004 034 ; \0 P 304 006 \0 264 s \0 \0 l 212 0013120 017 243 240 227 301 003 2 . 226 301 033 T h e 0013140 A d d r e s s i n g A r c h i 0013160 t e c t u r e 226 304 004 " 201 \0 P 304 006 0013200 \0 204 307 \0 \0 U 212 017 241 240 227 304 004 006 M 004 0013220 321 017 262 223 301 5 T h e M a p P r 0013240 o c e s s o r ' s a d d r e s 0013260 s i n g a r c h i t e c t u r 0013300 e s u p p o r t s 226 305 005 X e 0013320 r o x 305 \n P r e s s F o n t s 305 0013340 016 T i m e s R o m a n - m i r 017 0013360 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 0013400 244 225 017 244 240 227 301 027 m u l t i p l e 0013420 a d d r e s s s p a c e s 226 0013440 017 241 240 227 301 021 , w i t h f i x 0013460 e d s i z e 226 017 241 017 262 223 304 004 034 0013500 ; \0 P 304 004 P L \0 5 212 017 244 240 227 304 004 0013520 004 ; 002 f 017 262 223 301 005 p a g e s 226 017 0013540 241 240 227 301 V b e i n g t h e 0013560 u n i t o f m a p p i n g 0013600 a n d p r o t e c t i o n . 0013620 T h e v i r t u a l a d d r 0013640 e s s e s i s s u e d b y 0013660 e a c h D r a g o n 226 017 241 017 262 0013700 223 304 004 034 ; \0 P 304 006 \0 216 e \0 \0 a 212 0013720 017 241 240 227 304 004 017 250 \a 251 017 262 223 301 X p 0013740 r o c e s s o r a r e m a p 0013760 p e d a c c o r d i n g t o 0014000 o n e o f a n u m b e r 0014020 o f i n d e p e n d e n t 0014040 a d d r e s s i n g c o n t e 0014060 x t s , o r 226 017 241 017 262 223 304 004 034 0014100 ; \0 P 304 006 \0 302 253 \0 \0 211 212 017 241 240 227 0014120 304 004 002 353 002 321 017 262 223 301 d a d d r e 0014140 s s s p a c e s . F o r a 0014160 g i v e n v i r t u a l a 0014200 d d r e s s t h e m a p p i 0014220 n g t o a r e a l a d d 0014240 r e s s c a n b e t h o u 0014260 g h t o f a s a t w o 226 0014300 017 241 017 262 223 304 004 034 ; \0 P 304 006 004 _ 267 0014320 \0 003 / 212 017 241 240 227 304 004 001 3 001 \a 017 262 0014340 223 301 c s t e p p r o c e s s : 0014360 ( i ) d e t e r m i n e t 0014400 h e a d d r e s s s p a c e 0014420 i n w h i c h t h e v i 0014440 r t u a l a d d r e s s m u 0014460 s t b e i n t e r p r e t e 0014500 d , a n d 226 017 241 017 262 223 304 004 034 ; 0014520 \0 P 304 006 \0 264 s \0 \0 210 212 017 241 240 227 301 0014540 + ( i i ) p e r f o r m t h 0014560 e t r a n s l a t i o n i n 0014600 t h i s s p a c e . 226 304 004 " 0014620 201 \0 P 304 004 S o \0 C 212 017 241 240 227 304 004 0014640 001 I \0 334 017 262 223 301 \ B e f o r e 0014660 w e d e s c r i b e e a c h 0014700 o f t h e s e s t e p s , 0014720 i t i s c o n v e n i e n 0014740 t t o d e f i n e b a s i 0014760 c t e r m s a n d i n t r 0015000 o d u c e 226 017 241 017 262 223 304 004 034 ; \0 0015020 P 304 004 K } \0 ? 212 017 241 240 227 304 004 017 | 0015040 017 3 017 262 223 301 033 s o m e s h o r 0015060 t h a n d n o t a t i o n . 0015100 A 226 017 244 240 227 301 004 p a g e 226 017 241 0015120 240 227 301 " i s a c o n t i g 0015140 u o u s c h u n k o f m e 0015160 m o r y 2 226 305 005 X e r o x 305 \n 0015200 P r e s s F o n t s 305 016 T i m e 0015220 s R o m a n - m i r 017 243 241 033 240 223 0015240 304 004 003 # \0 d 240 244 240 224 017 245 225 017 245 240 0015260 227 304 004 003 # \0 310 215 301 001 s 226 304 004 374 335 0015300 \0 310 215 017 241 240 227 301 036 3 2 - b i t 0015320 w o r d s l o n g , a l i 0015340 g n e d o n 226 017 241 017 262 223 304 004 034 0015360 ; \0 P 304 004 d ' \0 W 212 017 241 240 227 304 004 0015400 024 275 023 027 017 262 223 301 003 a 2 226 017 245 240 0015420 227 304 004 003 # \0 310 215 301 001 s 226 304 004 374 335 0015440 \0 310 215 017 241 240 227 301 020 w o r d b 0015460 o u n d a r y ; 226 017 244 240 227 301 001 0015500 s 226 017 241 240 227 301 I i s f i x e 0015520 d a t 1 0 . I n o u r 0015540 d e s c r i p t i o n v i r t 0015560 u a l a d d r e s s e s w i 0015600 l l b e d e n o t e d b y 0015620 226 017 244 240 227 301 002 v a 226 017 241 240 227 301 0015640 006 , r e a l 226 017 241 017 262 223 304 004 034 0015660 ; \0 P 304 006 \0 255 Y \0 \0 235 212 017 241 240 227 0015700 304 004 005 a 004 c 017 262 223 301 \r a d d r e 0015720 s s e s b y 226 017 244 240 227 301 002 r 0015740 a 226 017 241 240 227 301 023 , v i r t u a 0015760 l p a g e s b y 226 017 244 240 227 0016000 301 002 v p 226 017 241 240 227 301 020 , r e a 0016020 l p a g e s b y 226 017 244 240 227 0016040 301 002 r p 226 017 241 240 227 301 034 , a n d 0016060 o f f s e t s i n t o p a 0016100 g e s b y 226 017 244 240 227 301 006 o f 0016120 f s e t 226 017 241 240 227 301 \a . B o t 0016140 h 226 017 244 240 227 301 002 v a 226 017 241 240 227 0016160 301 004 a n d 226 017 241 017 262 223 304 004 034 ; 0016200 \0 P 304 004 023 \a \0 022 212 017 244 240 227 304 004 \b 0016220 267 006 330 017 262 223 301 002 r a 226 017 241 240 227 301 0016240 035 a r e 3 2 - b i t q u a 0016260 n t i t i e s , b o t h 226 017 0016300 244 240 227 301 002 v p 226 017 241 240 227 301 005 a 0016320 n d 226 017 244 240 227 301 002 r p 226 017 241 240 0016340 227 301 a r e ( 3 2 030 s ) - b 0016360 i t q u a n t i t i e s , a 0016400 n d 226 017 244 240 227 301 006 o f f s e t 0016420 226 017 241 240 227 301 \a i s a n 226 017 0016440 244 240 227 301 001 s 226 017 241 240 227 301 021 - b i 0016460 t q u a n t i t y . I f 226 017 0016500 241 017 262 223 304 004 034 ; \0 P 304 004 5 210 \0 5 0016520 212 017 244 240 227 304 004 016 { \a 215 017 262 223 301 002 0016540 v p 226 017 241 240 227 301 005 a n d 226 017 0016560 244 240 227 301 006 o f f s e t 226 017 241 240 227 0016600 301 2 a r e t h e v i r t u 0016620 a l p a g e a n d o f f s 0016640 e t c o r r e s p o n d i n g 0016660 t o 226 017 244 240 227 301 002 v a 226 017 241 0016700 240 227 301 020 , w e w i l l w r 0016720 i t e 226 017 244 240 227 301 002 v a 226 017 241 0016740 240 227 301 001 = 226 017 244 240 227 301 002 v p 226 017 0016760 241 240 227 301 001 | 226 017 244 240 227 301 006 o f f 0017000 s e t 226 017 241 240 227 301 001 ; 226 017 241 017 262 0017020 223 304 004 034 ; \0 P 304 004 D _ \0 G 212 017 241 0017040 240 227 304 004 004 s 003 k 017 262 223 301 031 s i m 0017060 i l a r l y , w e w i l l 0017100 w r i t e 226 017 244 240 227 301 002 r a 226 0017120 017 241 240 227 301 001 = 226 017 244 240 227 301 002 r p 0017140 226 017 241 240 227 301 001 | 226 017 244 240 227 301 006 o 0017160 f f s e t 226 017 241 240 227 301 A f o r 0017200 r e a l a d d r e s s e s . 0017220 S i x f l a g s b i t s 0017240 a r e k e p t f o r e a c 0017260 h p a g e ; t h e s e 226 017 241 0017300 017 262 223 304 004 034 ; \0 P 304 006 001 036 257 \0 001 0017320 9 212 017 241 240 227 304 004 006 024 005 W 017 262 223 301 0017340 023 w i l l b e d e n o t e d 0017360 b y 226 017 244 240 227 301 005 f l a g s 0017400 226 017 241 240 227 301 I . F a u l t s 0017420 a s s o c i a t e d w i t h 0017440 a d d r e s s m a p p i n g 0017460 w i l l b e c o m m u n i c 0017500 a t e d v i a a f o u r - 0017520 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 2 e 0017540 \0 : 212 017 241 240 227 304 004 022 m \t 377 017 262 223 0017560 301 004 b i t 226 017 244 240 227 301 005 f a u 0017600 l t 226 017 241 240 227 301 H f i e l d . 0017620 T h e s i z e s o f t h 0017640 e s e q u a n t i t i e s a 0017660 r e c o n s t r a i n e d b 0017700 y t h e r e l a t i o n | 0017720 | 226 017 244 240 227 301 002 r p 226 017 241 240 227 301 0017740 005 | | + | | 226 017 244 240 227 301 005 f l a 0017760 g s 226 017 241 240 227 301 002 | | 226 305 005 X e 0020000 r o x 305 \n P r e s s F o n t s 305 0020020 \b M a t h - m r r 017 243 241 033 240 223 304 0020040 004 003 # \0 P 240 244 240 224 017 246 225 017 246 240 227 0020060 301 001 < 226 017 241 240 227 301 003 3 2 , 226 017 241 0020100 017 262 223 304 004 034 ; \0 P 304 006 \0 201 331 \0 \0 0020120 236 212 017 241 240 227 304 004 017 y \r 352 017 262 223 301 0020140 \b w h e r e | | 226 017 244 240 227 301 001 0020160 x 226 017 241 240 227 301 024 | | i s s h 0020200 o r t h a n d f o r 226 017 246 240 0020220 227 301 001 i 226 017 241 240 227 301 003 l o g 226 017 0020240 240 240 227 304 004 374 335 001 220 215 301 001 2 226 304 004 0020260 003 # 001 220 215 017 244 240 227 301 001 x 226 017 246 240 0020300 227 301 001 j 226 017 241 240 227 301 ) , t h e 0020320 n u m b e r o f b i t s 0020340 n e e d e d t o r e p r e s 0020360 e n t 226 017 244 240 227 301 001 x 226 017 241 240 0020400 227 301 025 . A d d r e s s s p a 0020420 c e s w i l l 226 017 241 017 262 223 304 004 0020440 034 ; \0 P 304 004 c 362 \0 201 212 017 241 240 227 301 0020460 & b e d e n o t e d b y t 0020500 h e i r a d d r e s s s p a 0020520 c e i d , 226 017 244 240 227 301 003 a i 0020540 d 226 017 241 240 227 301 036 , a q u a n 0020560 t i t y c o n s t r a i n e d 0020600 b y | | 226 017 244 240 227 301 003 a i d 0020620 226 017 241 240 227 301 002 | | 226 017 246 240 227 301 001 0020640 < 226 017 241 240 227 301 003 3 2 . 226 304 004 " 201 0020660 \0 P 304 004 g J \0 225 212 017 241 240 227 304 004 006 0020700 215 004 y 017 262 223 301 ^ F i g u r e 1 0020720 i l l u s t r a t e s t h e 0020740 p r o c e s s o f m a p p 0020760 i n g a v i r t u a l a d 0021000 d r e s s f o r a g i v e 0021020 n p r o c e s s o r ( t h e 0021040 s i z e s 226 017 241 017 262 223 304 004 034 ; 0021060 \0 P 304 004 N 325 \0 z 212 017 241 240 227 304 004 \t 0021100 207 006 [ 017 262 223 301 ` a n d l o c a 0021120 t i o n s o f t h e v a r 0021140 i o u s r e g i o n s s h o 0021160 w n a r e f o r i l l u s 0021200 t r a t i o n p u r p o s e s 0021220 o n l y , a n d s h o u l 0021240 d n o t b e 226 017 241 017 262 223 304 004 0021260 034 ; \0 P 304 004 s 241 \0 301 212 017 241 240 227 304 0021300 004 002 275 002 M 017 262 223 301 P i n t e r p 0021320 r e t e d a s b e i n g f 0021340 i x e d b y t h e a r c h 0021360 i t e c t u r e ) . T h e f 0021400 i r s t s t e p b e g i n s 0021420 w i t h t h e 226 017 244 240 227 301 0021440 003 a i d 226 017 241 240 227 301 023 o f t 0021460 h e p r o c e s s o r ' s 226 017 0021500 241 017 262 223 304 004 034 ; \0 P 304 006 \0 213 254 \0 0021520 \0 375 212 017 241 240 227 304 004 005 373 005 022 017 262 223 0021540 301 026 a d d r e s s s p a c e 0021560 a n d t h e 226 017 244 240 227 301 002 v 0021600 a 226 017 241 240 227 301 022 t o b e m 0021620 a p p e d . I f 226 017 244 240 227 301 0021640 002 v a 226 017 241 240 227 301 023 l i e s 0021660 i n a s p e c i a l 226 017 244 0021700 240 227 301 \a s h a r e d 226 017 241 240 227 0021720 301 037 a r e a o f v i r t u a 0021740 l a d d r e s s e s , t h e 0021760 n 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 0022000 276 345 \0 001 z 212 017 241 240 227 304 004 002 365 002 v 0022020 017 262 223 301 8 t h e a d d r e s s 0022040 s p a c e u s e d f o r 0022060 m a p p i n g i s s p a c e 0022100 0 o t h e r w i s e 226 017 244 0022120 240 227 301 002 v a 226 017 241 240 227 301 \r l i 0022140 e s i n t h e 226 017 244 240 227 301 0022160 \b s w i t c h e d 226 017 241 240 227 301 024 0022200 a r e a , a n d t h e s 0022220 p a c e 226 017 241 017 262 223 304 004 034 ; \0 P 0022240 304 004 \t 236 \0 025 212 017 241 240 227 304 004 023 217 \f 0022260 032 017 262 223 301 \b u s e d i s 226 017 0022300 244 240 227 301 003 a i d 226 017 241 240 227 301 035 . 0022320 T h e s e c o n d s t e p 0022340 t r a n s l a t e s 226 017 244 240 0022360 227 301 002 v a 226 017 241 240 227 301 027 i n 0022400 t h e c o n t e x t o f t 0022420 h e 226 017 244 240 227 301 003 a i d 226 017 241 0022440 240 227 301 036 g i v e n b y t h 0022460 e f i r s t s t e p . T h 0022500 i s 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 0022520 S 001 \0 312 212 017 241 240 227 304 004 006 336 005 003 017 0022540 262 223 301 025 t r a n s l a t i o n 0022560 p r o d u c e s 226 017 244 240 227 301 002 0022600 r a 226 017 241 240 227 301 001 = 226 017 244 240 227 301 0022620 002 r p 226 017 241 240 227 301 001 | 226 017 244 240 227 0022640 301 006 o f f s e t 226 017 241 240 227 301 \b , 0022660 w h e r e 226 017 244 240 227 301 002 r p 0022700 226 017 241 240 227 301 5 i s o b t a i 0022720 n e d b y l o o k i n g u 0022740 p t h e e n t r y c o r r 0022760 e s p o n d i n g t o 226 017 241 017 0023000 262 223 304 004 034 ; \0 P 304 006 \0 251 217 \0 001 322 0023020 212 017 244 240 227 301 003 a i d 226 017 241 240 227 301 0023040 001 | 226 017 244 240 227 301 002 v p 226 017 241 240 227 0023060 301 022 i n t h e M a p T a 0023100 b l e . 226 304 004 " 201 \0 P 304 004 & 255 \0 0023120 211 212 017 241 240 227 304 004 \b 274 \b \r 017 262 223 301 0023140 ] S t e p o n e p r o v i d 0023160 e s a n e c o n o m i c a l 0023200 , b u t r e s t r i c t e d 0023220 f o r m o f p a g e s h 0023240 a r i n g a c r o s s a d d 0023260 r e s s s p a c e s w e 226 017 0023300 241 017 262 223 240 k 240 j 017 241 017 245 223 304 006 \0 0023320 \0 035 001 B Q 240 244 240 250 304 004 [ 317 \0 z 304 0023340 004 035 313 \0 310 212 305 005 X e r o x 305 \n P 0023360 r e s s F o n t s 305 016 T i m e s 0023400 R o m a n - m r r 017 243 241 033 240 223 304 0023420 004 003 # \0 d 240 244 240 224 017 240 225 017 240 240 227 0023440 301 , D R A G O N P R O J E C T 0023460 030 F O R I N T E R N A L 0023500 X E R O X U S E O N L Y 226 304 0023520 004 e 177 \0 n 304 004 t 017 \0 ( 212 305 005 X e 0023540 r o x 305 \n P r e s s F o n t s 305 0023560 016 T i m e s R o m a n - m r r 017 0023600 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 0023620 241 225 017 241 240 227 301 001 T 226 017 240 240 227 301 002 0023640 H E 226 017 241 240 227 301 002 D 226 017 240 240 227 0023660 301 005 R A G O N 226 017 241 240 227 301 002 M 0023700 226 017 240 240 227 301 002 A P 226 017 241 240 227 301 002 0023720 P 226 017 240 240 227 301 \b R O C E S S O 0023740 R 226 305 005 X e r o x 305 \n P r e s s 0023760 F o n t s 305 \n L a u r e l - m r 0024000 r 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 0024020 224 017 242 225 017 242 240 227 304 004 } 267 \0 > 304 006 0024040 \0 346 304 \0 \0 O 212 301 001 4 226 304 004 034 ; \0 0024060 P 304 006 \0 203 033 \0 \0 1 212 017 241 240 227 304 004 0024100 002 3 002 033 017 262 223 301 005 c a l l 226 305 0024120 005 X e r o x 305 \n P r e s s F o n 0024140 t s 305 016 T i m e s R o m a n - m 0024160 i r 017 243 241 033 240 223 304 004 003 # \0 P 240 244 0024200 240 224 017 243 225 017 243 240 227 301 \t a l i a s 0024220 i n g . 226 017 241 240 227 301 X A l i a 0024240 s i n g i s e c o n o m i c 0024260 a l i n t h a t t h e r e 0024300 i s o n l y o n e m a p 0024320 p i n g e n t r y p e r r 0024340 e a l p a g e r e g a r d l 0024360 e s s 226 017 241 017 262 223 304 004 034 ; \0 P 304 0024400 006 \0 364 u \0 \0 ] 212 017 241 240 227 304 004 006 327 0024420 004 300 017 262 223 301 c o f w h e t h e 0024440 r t h e p a g e i s s h 0024460 a r e d o r n o t . I t 0024500 i s r e s t r i c t e d i n 0024520 t w o s e n s e s : ( i ) 0024540 a p a g e m u s t a p p 0024560 e a r a t t h e 226 017 241 017 262 223 0024600 304 004 034 ; \0 P 304 006 \0 235 y \0 \0 = 212 017 0024620 241 240 227 304 004 006 004 315 017 262 223 301 h s a 0024640 m e v i r t u a l a d d r e 0024660 s s i n a l l s p a c e s 0024700 , a n d ( i i ) s h a r i 0024720 n g i s a l l - o r - n o t 0024740 h i n g ; t h a t i s , a 0024760 p a g e i s s h a r e d 0025000 b y a l l 226 017 241 017 262 223 304 004 034 ; 0025020 \0 P 304 006 001 021 271 \0 \0 l 212 017 241 240 227 304 0025040 004 003 352 003 305 017 262 223 301 i a d d r e s 0025060 s s p a c e s i f i t i 0025100 s s h a r e d b y a n y . 0025120 I t i s e x p e c t e d 0025140 t h a t a l l b u t a f 0025160 e w c a s e s o f s h a r 0025200 i n g w i l l b e c o v e 0025220 r e d 226 017 241 017 262 223 304 004 034 ; \0 P 304 0025240 006 \0 325 353 \0 \0 V 212 017 241 240 227 304 004 \b 231 0025260 004 s 017 262 223 301 \ b y t h i s r 0025300 e s t r i c t e d m e c h a n 0025320 i s m . H o w e v e r , t h 0025340 e a r c h i t e c t u r e a 0025360 l s o p e r m i t s m o r e 0025400 g e n e r a l s h a r i n g 0025420 i n 226 017 241 017 262 223 304 004 034 ; \0 P 304 0025440 006 \0 300 312 \0 \0 O 212 017 241 240 227 304 004 006 277 0025460 005 d 017 262 223 301 \n w h i c h t h e 0025500 226 017 243 240 227 301 002 v p 226 017 241 240 227 301 0025520 030 ' s s h a r i n g a p a 0025540 r t i c u l a r 226 017 243 240 227 301 002 0025560 r p 226 017 241 240 227 301 : a r e u n 0025600 r e s t r i c t e d a n d w 0025620 h e r e e a c h p a g e m 0025640 a y b e s h a r e d b y 0025660 a n y 226 017 241 017 262 223 304 004 034 ; \0 P 304 0025700 006 \0 261 033 \0 \0 J 212 017 241 240 227 301 024 s u 0025720 b s e t o f t h e s p a c 0025740 e s 226 304 004 A 337 \0 240 304 004 y 177 \0 4 212 0025760 304 004 A 337 \0 240 304 006 \0 270 246 \0 \0 Q 212 304 0026000 004 A 337 \0 240 304 006 \0 253 ' \0 \0 M 212 304 004 0026020 : 353 \0 302 304 004 V 311 \0 ] 212 240 x 240 j 240 0026040 252 304 006 001 W B \0 \0 037 240 244 240 250 240 r 240 0026060 j 017 241 017 245 223 304 006 \0 \0 037 001 W B 240 244 0026100 240 250 017 240 017 240 304 004 \b 304 \0 005 304 004 006 8 0026120 \0 005 241 243 304 004 376 257 \0 005 304 004 004 230 \0 005 0026140 240 242 240 250 240 r 240 j 304 002 004 005 240 244 304 004 0026160 033 V \0 237 304 004 373 \f \0 005 240 242 240 245 240 250 0026200 017 241 241 250 304 006 001 W B \0 \0 037 240 244 240 250 0026220 240 r 240 j 017 241 017 245 223 304 004 \0 001 003 350 240 0026240 244 240 250 017 252 017 252 240 242 240 250 304 004 001 026 006 0026260 031 240 244 240 250 020 ( 020 X 240 242 240 250 017 240 017 0026300 267 223 017 030 016 350 023 354 022 260 241 243 240 x 240 j 0026320 017 240 017 245 223 017 241 241 250 240 x 240 j 017 200 021 0026340 320 212 240 252 017 240 017 240 020 l 017 244 241 232 240 k 0026360 240 x 240 j 017 @ 021 270 212 240 252 017 240 017 240 017 0026400 242 017 270 241 232 240 k 240 x 240 j 020 H 021 232 212 0026420 240 252 017 240 017 240 017 244 017 326 241 232 240 k 240 x 0026440 240 j 017 200 021 232 212 240 252 017 240 017 240 017 244 017 0026460 326 241 232 240 k 240 x 240 j 017 200 021 230 212 240 252 0026500 017 240 017 240 020 l 017 242 241 232 240 k 240 x 240 j 0026520 021 0 021 320 212 240 252 017 240 017 240 020 l 017 244 241 0026540 232 240 k 240 x 240 j 021 370 021 262 212 240 252 017 240 0026560 017 240 017 244 017 276 241 232 240 k 240 x 240 j 021 0 0026600 021 262 212 240 252 017 240 017 240 017 244 017 276 241 232 240 0026620 k 240 x 240 j 021 0 021 260 212 240 252 017 240 017 240 0026640 020 l 017 242 241 232 240 k 240 x 240 j 021 370 021 232 0026660 212 240 252 017 240 017 240 017 244 017 266 241 232 240 k 240 0026700 x 240 j 021 0 021 232 212 240 252 017 240 017 240 017 244 0026720 017 266 241 232 240 k 240 x 240 j 021 0 021 230 212 240 0026740 252 017 240 017 240 020 l 017 242 241 232 240 k 240 x 240 0026760 j 021 0 021 222 212 240 252 017 240 017 240 017 244 017 246 0027000 241 232 240 k 240 x 240 j 020 H 021 222 212 240 252 017 0027020 240 017 240 017 244 017 246 241 232 240 k 240 x 240 j 020 0027040 H 021 220 212 240 252 017 240 017 240 020 214 017 242 241 232 0027060 240 k 240 x 240 j 020 H 021 212 212 240 252 017 240 017 0027100 240 017 244 017 246 241 232 240 k 240 x 240 j 017 200 021 0027120 212 212 240 252 017 240 017 240 017 244 017 256 241 232 240 k 0027140 240 x 240 j 017 200 021 210 212 240 252 017 240 017 240 020 0027160 l 017 242 241 232 240 k 240 x 240 j 020 H 021 l 212 0027200 240 252 017 240 017 240 017 244 017 274 241 232 240 k 240 x 0027220 240 j 017 200 021 l 212 240 252 017 240 017 240 017 244 017 0027240 274 241 232 240 k 240 x 240 j 017 @ 021 j 212 240 252 0027260 017 240 017 240 017 242 017 276 241 232 240 k 240 x 240 j 0027300 017 200 021 h 212 240 252 017 240 017 240 020 l 017 244 241 0027320 232 240 k 240 x 240 j 017 @ 020 350 212 240 252 017 240 0027340 017 240 017 242 020 241 232 240 k 240 x 240 j 021 370 0027360 021 212 212 240 252 017 240 017 240 017 244 017 256 241 232 240 0027400 k 240 x 240 j 021 0 021 212 212 240 252 017 240 017 240 0027420 017 244 017 246 241 232 240 k 240 x 240 j 021 0 021 210 0027440 212 240 252 017 240 017 240 020 l 017 242 241 232 240 k 240 0027460 x 240 j 021 370 021 l 212 240 252 017 240 017 240 017 244 0027500 017 274 241 232 240 k 240 x 240 j 021 0 021 l 212 240 0027520 252 017 240 017 240 017 244 017 274 241 232 240 k 240 x 240 0027540 j 021 0 021 h 212 240 252 017 240 017 240 020 l 017 244 0027560 241 232 240 k 240 x 240 j 021 0 021 L 212 240 252 017 0027600 240 017 240 017 244 017 274 241 232 240 k 240 x 240 j 020 0027620 H 020 242 212 240 252 017 240 017 240 017 244 020 f 241 232 0027640 240 k 240 x 240 j 017 200 020 242 212 240 252 017 240 017 0027660 240 017 244 020 f 241 232 240 k 240 x 240 j 017 200 020 0027700 240 212 240 252 017 240 017 240 020 l 017 242 241 232 240 k 0027720 240 x 240 j 020 H 020 222 212 240 252 017 240 017 240 017 0027740 244 017 256 241 232 240 k 240 x 240 j 017 200 020 222 212 0027760 240 252 017 240 017 240 017 244 017 256 241 232 240 k 240 x 0030000 240 j 017 200 020 220 212 240 252 017 240 017 240 020 l 017 0030020 242 241 232 240 k 240 x 240 j 020 310 021 H 212 240 252 0030040 017 240 017 240 020 l 017 244 241 232 240 k 240 x 240 j 0030060 021 220 021 * 212 240 252 017 240 017 240 017 244 017 276 241 0030100 232 240 k 240 x 240 j 020 310 021 * 212 240 252 017 240 0030120 017 240 017 244 017 276 241 232 240 k 240 x 240 j 020 310 0030140 021 ( 212 240 252 017 240 017 240 020 l 017 242 241 232 240 0030160 k 240 x 240 j 021 220 020 344 212 240 252 017 240 017 240 0030200 017 244 017 344 241 232 240 k 240 x 240 j 020 310 020 344 0030220 212 240 252 017 240 017 240 017 244 017 344 241 232 240 k 240 0030240 x 240 j 020 310 020 340 212 240 252 017 240 017 240 020 l 0030260 017 244 241 232 240 k 240 x 240 j 021 220 020 032 212 240 0030300 252 017 240 017 240 017 244 020 f 241 232 240 k 240 x 240 0030320 j 020 310 020 032 212 240 252 017 240 017 240 017 244 020 f 0030340 241 232 240 k 240 x 240 j 020 310 020 030 212 240 252 017 0030360 240 017 240 020 l 017 242 241 232 240 k 240 x 240 j 020 0030400 310 020 022 212 240 252 017 240 017 240 017 244 017 246 241 232 0030420 240 k 240 x 240 j 020 270 020 020 212 240 252 017 240 017 0030440 240 017 264 017 242 241 232 240 k 240 x 240 j 020 H 017 0030460 274 212 240 252 017 240 017 240 017 244 020 t 241 232 240 k 0030500 240 x 240 j 017 200 017 274 212 240 252 017 240 017 240 017 0030520 244 020 t 241 232 240 k 240 x 240 j 017 @ 017 272 212 0030540 240 252 017 240 017 240 017 242 020 216 241 232 240 k 240 x 0030560 240 j 021 220 020 \n 212 240 252 017 240 017 240 017 244 017 0030600 256 241 232 240 k 240 x 240 j 020 310 020 \n 212 240 252 0030620 017 240 017 240 017 244 017 246 241 232 240 k 240 x 240 j 0030640 020 310 020 \b 212 240 252 017 240 017 240 020 l 017 242 241 0030660 232 240 k 240 x 240 j 017 200 017 270 212 240 252 017 240 0030700 017 240 020 l 017 244 241 232 240 k 240 x 240 j 022 220 0030720 021 320 212 240 252 017 240 017 240 020 l 017 244 241 232 240 0030740 k 240 x 240 j 023 X 021 z 212 240 252 017 240 017 240 0030760 017 244 017 366 241 232 240 k 240 x 240 j 022 220 021 z 0031000 212 240 252 017 240 017 240 017 244 017 366 241 232 240 k 240 0031020 x 240 j 022 220 021 x 212 240 252 017 240 017 240 020 l 0031040 017 242 241 232 240 k 240 x 240 j 023 X 021 Z 212 240 0031060 252 017 240 017 240 017 244 017 276 241 232 240 k 240 x 240 0031100 j 022 220 021 Z 212 240 252 017 240 017 240 017 244 017 276 0031120 241 232 240 k 240 x 240 j 022 220 021 X 212 240 252 017 0031140 240 017 240 020 l 017 242 241 232 240 k 240 x 240 j 023 0031160 X 020 232 212 240 252 017 240 017 240 017 244 020 ^ 241 232 0031200 240 k 240 x 240 j 022 220 020 232 212 240 252 017 240 017 0031220 240 017 244 020 ^ 241 232 240 k 240 x 240 j 022 220 020 0031240 230 212 240 252 017 240 017 240 020 l 017 242 241 232 240 k 0031260 240 x 240 j 022 220 020 222 212 240 252 017 240 017 240 017 0031300 244 017 246 241 232 240 k 240 x 240 j 022 200 020 220 212 0031320 240 252 017 240 017 240 017 264 017 242 241 232 240 k 240 x 0031340 240 j 023 X 020 212 212 240 252 017 240 017 240 017 244 017 0031360 256 241 232 240 k 240 x 240 j 022 220 020 212 212 240 252 0031400 017 240 017 240 017 244 017 246 241 232 240 k 240 x 240 j 0031420 022 220 020 210 212 240 252 017 240 017 240 020 l 017 242 241 0031440 232 240 k 240 x 240 j 023 X 020 b 212 240 252 017 240 0031460 017 240 017 244 017 306 241 232 240 k 240 x 240 j 022 220 0031500 020 b 212 240 252 017 240 017 240 017 244 017 306 241 232 240 0031520 k 240 x 240 j 022 220 020 ` 212 240 252 017 240 017 240 0031540 020 l 017 242 241 232 240 k 240 x 240 j 022 220 020 Z 0031560 212 240 252 017 240 017 240 017 244 017 246 241 232 240 k 240 0031600 x 240 j 022 200 020 X 212 240 252 017 240 017 240 017 264 0031620 017 242 241 232 240 k 240 x 240 j 021 370 017 274 212 240 0031640 252 017 240 017 240 017 244 021 L 241 232 240 k 240 x 240 0031660 j 021 220 017 274 212 240 252 017 240 017 240 017 244 017 354 0031700 241 232 240 k 240 x 240 j 023 X 020 R 212 240 252 017 0031720 240 017 240 017 244 017 256 241 232 240 k 240 x 240 j 022 0031740 220 020 R 212 240 252 017 240 017 240 017 244 017 246 241 232 0031760 240 k 240 x 240 j 022 220 020 P 212 240 252 017 240 017 0032000 240 020 l 017 242 241 232 240 k 240 x 240 j 023 X 017 0032020 274 212 240 252 017 240 017 240 017 244 020 4 241 232 240 k 0032040 240 x 240 j 022 220 017 274 212 240 252 017 240 017 240 017 0032060 244 020 4 241 232 240 k 240 x 240 j 022 220 017 270 212 0032100 240 252 017 240 017 240 020 l 017 244 241 232 240 k 240 x 0032120 240 j 021 220 017 270 212 240 252 017 240 017 240 020 \f 017 0032140 244 241 232 240 k 240 x 240 j 021 220 017 4 212 240 252 0032160 017 240 017 240 017 244 020 $ 241 232 240 k 240 x 240 j 0032200 020 310 017 4 212 240 252 017 240 017 240 017 244 020 t 241 0032220 232 240 k 240 x 240 j 020 310 017 0 212 240 252 017 240 0032240 017 240 020 l 017 244 241 232 240 k 240 k 017 242 017 260 0032260 223 017 242 017 267 223 240 x 240 j 017 241 017 245 223 020 0032300 H 020 020 240 242 240 250 017 241 241 250 017 242 017 257 223 0032320 020 021 017 241 231 017 351 017 241 017 321 020 ) 017 241 020 0032340 ) 241 222 230 016 370 017 0 240 242 240 250 017 250 017 x 0032360 240 242 240 250 017 242 017 246 212 305 005 X e r o x 0032400 305 \n P r e s s F o n t s 305 \r H e 0032420 l v e t i c a - m i r 017 243 241 033 240 0032440 223 017 260 240 244 240 224 017 244 225 017 244 240 227 301 \f 0032460 b y p r o c e s s o r 226 017 230 017 0032500 310 240 242 240 250 017 200 017 220 240 242 240 250 017 242 017 0032520 246 212 301 023 a d d r e s s e s g e 0032540 n e r a t e d 226 017 300 017 260 240 242 240 250 0032560 020 320 021 0 240 242 240 250 017 240 017 246 212 305 005 X 0032600 e r o x 305 \n P r e s s F o n t s 0032620 305 \r H e l v e t i c a - m r r 017 0032640 243 241 033 240 223 017 260 240 244 240 224 017 245 225 017 245 0032660 240 227 301 017 m a p b y p a s s a 0032700 r e a 226 016 p 016 020 240 242 240 250 022 240 021 200 0032720 240 242 240 250 017 240 017 246 212 301 \r M a p B y 0032740 p a s s B a s e 226 \f 240 \r 300 240 242 240 0032760 250 017 237 017 241 240 246 017 372 240 243 017 B 017 312 240 0033000 242 240 245 240 245 240 250 017 261 017 241 231 017 241 017 251 0033020 227 230 017 237 017 241 240 246 017 372 240 243 017 312 017 B 0033040 240 242 240 245 240 245 240 250 017 F 240 243 017 @ 017 312 0033060 240 242 240 245 240 250 017 261 017 241 231 017 241 017 251 227 0033100 230 017 372 240 243 017 312 020 \0 240 242 240 245 240 250 017 0033120 372 240 243 017 B 021 300 240 242 240 245 240 250 017 261 017 0033140 241 231 017 241 017 251 227 230 017 F 240 243 \r 200 017 B 0033160 240 242 240 245 240 250 017 241 017 237 240 246 017 372 240 243 0033200 017 @ 021 300 240 242 240 245 240 245 240 250 017 261 017 241 0033220 231 017 241 017 251 227 230 017 241 017 237 240 246 017 372 240 0033240 243 \r 200 020 \0 240 242 240 245 240 245 240 250 021 \b 021 0033260 240 240 242 240 250 017 240 017 246 212 301 001 2 226 016 8 0033300 \r 240 240 242 240 250 021 020 021 260 240 242 240 250 017 240 0033320 017 246 212 301 002 2 0 226 016 0 \r 220 240 242 240 250 0033340 021 370 021 X 240 242 240 250 017 241 017 371 231 020 9 017 0033360 241 227 230 \r H \r 350 240 242 240 250 021 370 021 x 240 0033400 242 240 250 017 241 017 371 231 020 9 017 241 227 230 \r H 0033420 \r 310 240 242 240 250 021 220 021 ( 240 242 240 250 017 241 0033440 017 241 231 020 241 017 321 227 230 \r 260 016 030 240 242 240 0033460 250 021 370 020 220 240 242 240 250 017 241 020 241 231 017 311 0033500 020 241 017 371 017 241 020 ) 017 241 241 222 230 \r H 016 0033520 260 240 242 240 250 021 220 020 020 240 242 240 250 017 241 017 0033540 241 231 017 321 017 241 020 a 017 351 020 221 017 351 241 222 0033560 230 \r 260 017 0 240 242 240 250 022 200 020 X 240 242 240 0033600 250 017 261 017 241 231 017 241 017 251 227 230 \f 300 016 350 0033620 240 242 240 250 017 241 017 237 240 246 022 200 020 Z 240 242 0033640 240 245 240 250 017 261 017 241 231 017 241 017 251 227 230 017 0033660 241 017 237 240 246 \f 300 020 Z 240 242 240 245 240 250 020 0033700 250 020 330 240 242 240 250 017 240 017 246 212 301 002 2 8 0033720 226 016 230 016 h 240 242 240 250 020 240 020 310 240 242 240 0033740 250 017 240 017 246 212 301 001 2 226 016 240 016 x 240 242 0033760 240 250 020 270 020 020 240 242 240 250 017 261 017 241 231 017 0034000 241 017 251 227 230 016 210 017 0 240 242 240 250 017 241 017 0034020 237 240 246 020 270 020 022 240 242 240 245 240 250 017 261 017 0034040 241 231 017 241 017 251 227 230 017 241 017 237 240 246 016 210 0034060 020 022 240 242 240 245 240 250 022 200 020 220 240 242 240 250 0034100 017 261 017 241 231 017 241 017 251 227 230 \f 300 016 260 240 0034120 242 240 250 017 241 017 237 240 246 022 200 020 222 240 242 240 0034140 245 240 250 017 261 017 241 231 017 241 017 251 227 230 017 241 0034160 017 237 240 246 \f 300 020 222 240 242 240 245 240 250 021 220 0034200 021 H 240 242 240 250 017 241 017 241 231 020 241 017 321 227 0034220 230 \r 260 \r 370 240 242 240 250 020 240 021 020 240 242 240 0034240 250 017 240 017 246 212 301 001 2 226 016 240 016 0 240 242 0034260 240 250 020 250 021 240 242 240 250 017 240 017 246 212 301 0034300 002 2 0 226 016 230 016 240 242 240 250 020 230 021 330 0034320 240 242 240 250 017 240 017 246 212 301 006 S t e p 0034340 1 226 016 250 \r h 240 242 240 250 022 ( 021 330 240 242 0034360 240 250 017 240 017 246 212 301 006 S t e p 2 226 0034400 \r 030 \r h 240 242 240 250 020 310 017 \b 240 242 240 250 0034420 017 242 017 246 212 017 244 240 227 301 021 v i r t u 0034440 a l a d d r e s s e s 226 016 x 020 0034460 8 240 242 240 250 020 330 016 360 240 242 240 250 017 242 017 0034500 246 212 301 \f i n s p a c e a i d 0034520 226 016 h 020 P 240 242 240 250 021 240 017 230 240 242 240 0034540 250 017 242 017 246 212 301 021 v i r t u a l 0034560 a d d r e s s e s 226 \r 240 017 250 240 242 0034600 240 250 021 260 017 200 240 242 240 250 017 242 017 246 212 301 0034620 \n i n s p a c e 0 226 \r 220 017 300 0034640 240 242 240 250 022 260 017 220 240 242 240 250 017 242 017 246 0034660 212 301 016 r e a l a d d r e s s e 0034700 s 226 \f 220 017 260 240 242 240 250 021 021 220 240 242 0034720 240 250 017 261 017 241 231 017 241 017 251 227 230 016 \r 0034740 260 240 242 240 250 017 241 017 237 240 246 021 021 222 240 0034760 242 240 245 240 250 017 261 017 241 231 017 241 017 251 227 230 0035000 017 241 017 237 240 246 016 021 222 240 242 240 245 240 250 0035020 017 372 240 243 017 B 021 X 240 242 240 245 240 250 017 261 0035040 017 241 231 017 241 017 251 227 230 017 F 240 243 \r 350 017 0035060 B 240 242 240 245 240 250 017 241 017 237 240 246 017 372 240 0035100 243 017 @ 021 X 240 242 240 245 240 245 240 250 017 261 017 0035120 241 231 017 241 017 251 227 230 017 241 017 237 240 246 017 372 0035140 240 243 \r 350 020 \0 240 242 240 245 240 245 240 250 017 ( 0035160 021 240 240 242 240 250 017 240 017 246 212 017 245 240 227 301 0035200 006 s h a r e d 226 020 030 \r 240 240 242 240 250 0035220 017 ( 021 210 240 242 240 250 017 240 017 246 212 301 006 r 0035240 e g i o n 226 020 030 \r 270 240 242 240 250 017 237 0035260 017 241 240 246 017 372 240 243 017 B 021 z 240 242 240 245 0035300 240 245 240 250 017 261 017 241 231 017 241 017 251 227 230 017 0035320 237 017 241 240 246 017 372 240 243 021 z 017 B 240 242 240 0035340 245 240 245 240 250 017 F 240 243 017 @ 021 z 240 242 240 0035360 245 240 250 017 261 017 241 231 017 241 017 251 227 230 017 372 0035400 240 243 021 z 020 \0 240 242 240 245 240 250 021 8 021 270 0035420 240 242 240 250 017 240 017 246 212 301 017 m a p b 0035440 y p a s s a r e a 226 016 \b \r 210 240 0035460 242 240 250 017 020 310 240 242 240 250 017 240 017 246 212 0035500 301 \b s w i t c h e d 226 020 016 x 240 0035520 242 240 250 017 020 260 240 242 240 250 017 240 017 246 212 0035540 301 006 r e g i o n 226 020 016 220 240 242 240 0035560 250 021 020 021 h 240 242 240 250 017 240 017 246 212 301 002 0035600 2 8 226 016 0 \r 330 240 242 240 250 021 \b 021 X 240 0035620 242 240 250 017 240 017 246 212 301 001 2 226 016 8 \r 350 0035640 240 242 240 250 017 ` 021 h 240 242 240 250 017 240 017 246 0035660 212 301 002 2 8 226 017 340 \r 330 240 242 240 250 017 X 0035700 021 X 240 242 240 250 017 240 017 246 212 301 001 2 226 017 0035720 350 \r 350 240 242 240 250 240 k 240 k 240 351 240 k 240 0035740 351 240 k 240 351 240 k 304 006 \0 312 246 \0 \0 351 304 0035760 006 001 1 M \0 001 f 212 017 243 240 227 301 # F i 0036000 g u r e 1 . A d d r e s s 0036020 M a p p i n g i n D r a g o 0036040 n 226 304 004 " 201 \0 P 304 004 U 275 \0 o 212 017 0036060 241 240 227 304 004 \a 375 006 A 017 262 223 301 004 T h 0036100 e 226 017 243 240 227 301 006 s h a r e d 226 0036120 017 241 240 227 301 005 a n d 226 017 243 240 227 0036140 301 \b s w i t c h e d 226 017 241 240 227 301 0036160 F a r e a s a r e t h e 0036200 s a m e f o r a l l p r o 0036220 c e s s o r s , a n d a r e 0036240 d e f i n e d a s f o l l 0036260 o w s . A n 226 017 241 017 262 223 304 004 034 0036300 ; \0 P 304 004 t 017 \0 240 212 017 241 240 227 304 004 0036320 \f 263 \b 250 017 262 223 301 \b a d d r e s s 0036340 226 017 243 240 227 301 002 v a 226 017 241 240 227 301 0036360 \v i s i n t h e 226 017 243 240 0036400 227 301 006 s h a r e d 226 017 241 240 227 301 036 0036420 a r e a i f t h e b i t 0036440 s s e l e c t e d i n 226 017 0036460 243 240 227 301 002 v p 226 017 241 240 227 301 021 b 0036500 y a ( 3 2 030 s ) - b i t 226 0036520 017 243 240 227 301 \n S h a r e d M a s k 0036540 226 017 241 240 227 301 \n m a t c h t h 0036560 e 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 0036600 213 016 \0 \0 315 212 017 241 240 227 304 004 005 / 004 234 0036620 017 262 223 301 # c o r r e s p o n d i 0036640 n g b i t s i n a ( 3 2 0036660 030 s ) - b i t 226 017 243 240 227 301 \r S 0036700 h a r e d P a t t e r n 226 017 241 240 0036720 227 301 \t ; a 1 i n 226 017 243 240 0036740 227 301 \n S h a r e d M a s k 226 017 241 0036760 240 227 301 036 s e l e c t s t h e 0037000 c o r r e s p o n d i n g b 0037020 i t 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 0037040 ! u \0 5 212 017 241 240 227 304 004 005 352 005 233 017 0037060 262 223 301 003 i n 226 017 243 240 227 301 002 v p 0037100 226 017 241 240 227 301 O w h i l e a 0037120 0 d e s e l e c t s i t . 0037140 T h e m a s k a n d p a t 0037160 t e r n c a n b e m o d i 0037200 f i e d b y s o f t w a r e 0037220 . T h e 226 017 243 240 227 301 \b s w i 0037240 t c h e d 226 017 241 240 227 301 \b a r e 0037260 a i s 226 017 241 017 262 223 304 004 034 ; \0 P 0037300 304 004 023 335 \0 " 212 017 241 240 227 301 0 d e f 0037320 i n e d t o b e a l l a 0037340 d d r e s s e s t h a t a r 0037360 e n o t i n t h e 226 017 243 0037400 240 227 301 006 s h a r e d 226 017 241 240 227 301 0037420 006 a r e a . 226 304 004 " 201 \0 P 304 004 0037440 S 243 \0 246 212 017 241 240 227 304 004 016 271 \b 031 017 0037460 262 223 301 * A p r o c e s s o r ' 0037500 s a d d r e s s s p a c e 0037520 i s k e p t i n a n 226 017 0037540 243 240 227 301 \v a i d R e g i s t e r 0037560 226 017 241 240 227 301 % w i t h i n e 0037600 a c h o f t h e p r o c e 0037620 s s o r ' s s m a l l 226 017 241 017 0037640 262 223 304 004 034 ; \0 P 304 004 ^ 031 \0 316 212 017 0037660 241 240 227 304 004 \n U 006 250 017 262 223 301 @ c a 0037700 c h e s . T h e a r c h i t 0037720 e c t u r e d o e s n o t 0037740 c o n s t r a i n t h e c o 0037760 n t e n t s o f t h e 226 017 0040000 243 240 227 301 \v a i d R e g i s t e r 0040020 226 017 241 240 227 301 023 s o f t h e 0040040 I F U a n d E U 226 017 241 017 262 223 0040060 304 004 034 ; \0 P 304 004 017 ) \0 % 212 017 241 240 0040100 227 301 V c a c h e s t o b e 0040120 t h e s a m e , s o i n 0040140 f a c t c o d e a n d d a 0040160 t a c o u l d r u n i n 0040200 d i f f e r e n t a d d r e s 0040220 s s p a c e s ! 226 304 004 " 201 \0 P 0040240 304 004 q 365 001 Z 212 017 241 240 227 304 004 \t 213 006 0040260 005 017 262 223 301 Z T h e a r c h i t 0040300 e c t u r e p r o v i d e s 0040320 t w o n e c e s s a r y m o 0040340 d i f i c a t i o n s o f t 0040360 h e b a s i c m a p p i n g 0040400 j u s t d e s c r i b e d . 0040420 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 B 350 0040440 \0 355 212 017 241 240 227 304 004 \t 324 \b 203 017 262 223 0040460 301 027 O n e o f t h e s e i 0040500 s c a l l e d 226 017 243 240 227 301 \t 0040520 b y p a s s i n g 226 017 241 240 227 301 020 0040540 , a n d t h e o t h e r 0040560 226 017 243 240 227 301 020 i d e n t i t y 0040600 m a p p i n g 226 017 241 240 227 301 # . 0040620 B y p a s s i n g i s n e e 0040640 d e d s o p r o c e s s o r 0040660 s 226 017 241 017 262 223 240 k 240 j 017 241 017 245 223 0040700 304 006 \0 \0 035 001 B Q 240 244 240 250 304 004 [ 317 0040720 \0 z 304 004 035 313 \0 310 212 305 005 X e r o x 0040740 305 \n P r e s s F o n t s 305 016 T i 0040760 m e s R o m a n - m r r 017 243 241 033 0041000 240 223 304 004 003 # \0 d 240 244 240 224 017 240 225 017 0041020 240 240 227 301 , D R A G O N P R O J 0041040 E C T 030 F O R I N T E R N 0041060 A L X E R O X U S E O N L 0041100 Y 226 304 006 002 o A \0 002 243 304 004 t 017 \0 ( 0041120 212 305 005 X e r o x 305 \n P r e s s F 0041140 o n t s 305 016 T i m e s R o m a n 0041160 - m r r 017 243 241 033 240 223 304 004 003 # \0 P 0041200 240 244 240 224 017 241 225 017 241 240 227 301 001 T 226 017 0041220 240 240 227 301 002 H E 226 017 241 240 227 301 002 D 0041240 226 017 240 240 227 301 005 R A G O N 226 017 241 240 0041260 227 301 002 M 226 017 240 240 227 301 002 A P 226 017 0041300 241 240 227 301 002 P 226 017 240 240 227 301 \b R O 0041320 C E S S O R 226 305 005 X e r o x 305 \n 0041340 P r e s s F o n t s 305 \n L a u r 0041360 e l - m r r 017 243 241 033 240 223 304 004 003 # 0041400 \0 P 240 244 240 224 017 242 225 017 242 240 227 304 006 001 0041420 N 307 \0 \0 245 304 006 \0 346 304 \0 \0 O 212 301 001 0041440 5 226 304 004 034 ; \0 P 304 006 \0 203 033 \0 \0 1 0041460 212 017 241 240 227 304 004 \b ? 006 d 017 262 223 301 ^ 0041500 c a n a c c e s s t h e M 0041520 a p T a b l e a n d m a p 0041540 - f a u l t h a n d l i n g 0041560 c o d e w i t h o u t g e t 0041600 t i n g m a p f a u l t s 0041620 i n t h e p r o c e s s 226 017 0041640 240 240 227 301 001 . 226 017 241 017 262 223 304 004 034 ; 0041660 \0 P 304 006 \0 364 u \0 \0 ] 212 017 241 240 227 304 0041700 004 \b ; 005 _ 017 262 223 301 _ B y p a s s 0041720 i n g g e t s a c t i v a t 0041740 e d w h e n e v e r a p r 0041760 o c e s s o r m a k e s a 0042000 r e f e r e n c e t o a p 0042020 o r t i o n o f v i r t u a 0042040 l a d d r e s s 226 017 241 017 262 223 304 0042060 004 034 ; \0 P 304 006 \0 235 y \0 \0 = 212 017 241 0042100 240 227 304 004 \n 037 \a 244 017 262 223 301 021 s p a 0042120 c e c a l l e d t h e 226 305 0042140 005 X e r o x 305 \n P r e s s F o n 0042160 t s 305 016 T i m e s R o m a n - m 0042200 i r 017 243 241 033 240 223 304 004 003 # \0 P 240 244 0042220 240 224 017 243 225 017 243 240 227 301 017 m a p b 0042240 y p a s s a r e a 226 017 241 240 227 301 0042260 $ ( t h e c h e c k f o r 0042300 b y p a s s g e t s a p p 0042320 l i e d 226 305 005 X e r o x 305 \n P 0042340 r e s s F o n t s 305 016 T i m e s 0042360 R o m a n - b r r 017 243 241 033 240 223 304 0042400 004 003 # \0 P 240 244 240 224 017 244 225 017 244 240 227 0042420 301 006 b e f o r e 226 017 241 240 227 301 030 0042440 e i t h e r o f t h e t w 0042460 o s t e p s 226 017 241 017 262 223 304 004 034 0042500 ; \0 P 304 006 001 021 271 \0 \0 l 212 017 241 240 227 0042520 304 004 002 354 002 + 017 262 223 301 b d e s c r 0042540 i b e d a b o v e ) . T h i 0042560 s a r e a a p p e a r s a 0042600 t t h e s a m e l o c a t 0042620 i o n s i n a l l a d d r 0042640 e s s s p a c e s , a n d 0042660 i s d e f i n e d b y 226 017 241 0042700 017 262 223 304 004 034 ; \0 P 304 006 \0 325 353 \0 \0 0042720 V 212 017 241 240 227 304 004 \b } 005 9 017 262 223 301 0042740 034 t h r e e ( 3 2 030 s ) - b i 0042760 t q u a n t i t i e s 226 017 243 0043000 240 227 301 \n B y p a s s M a s k 226 017 0043020 241 240 227 301 002 , 226 017 243 240 227 301 \r B y 0043040 p a s s P a t t e r n 226 017 241 240 227 0043060 301 006 , a n d 226 017 243 240 227 301 \n B 0043100 y p a s s B a s e 226 017 241 240 227 301 026 0043120 . T h e m a s k a n d p 0043140 a t t e r n 226 017 241 017 262 223 304 004 034 ; 0043160 \0 P 304 006 \0 300 312 \0 \0 O 212 017 241 240 227 304 0043200 004 \a \ 006 [ 017 262 223 301 N d e t e r m 0043220 i n e t h e b y p a s s a 0043240 r e a ' s l o c a t i o n a 0043260 n d s i z e i n v i r t u 0043300 a l m e m o r y a s f o l 0043320 l o w s : a 226 017 243 240 227 301 002 v 0043340 a 226 017 241 240 227 301 024 i s d e f i 0043360 n e d t o b e i n 226 017 241 017 0043400 262 223 304 004 034 ; \0 P 304 006 \0 261 033 \0 \0 J 0043420 212 017 241 240 227 304 004 023 c \b Z 017 262 223 301 ( 0043440 t h e b y p a s s a r e a 0043460 i f t h e b i t s s e l e 0043500 c t e d b y 226 017 243 240 227 301 \n B 0043520 y p a s s M a s k 226 017 241 240 227 301 004 0043540 i n 226 017 243 240 227 301 002 v p 226 017 241 0043560 240 227 301 m a t c h t h e c 0043600 o r r e s p o n d i n g b i t 0043620 s i n 226 017 241 017 262 223 304 004 034 ; \0 P 0043640 304 006 \0 212 n \0 \0 ; 212 017 243 240 227 304 004 006 0043660 344 003 _ 017 262 223 301 \r B y p a s s P a 0043700 t t e r n 226 017 241 240 227 301 \t ; a 0043720 1 i n 226 017 243 240 227 301 \n B y p a 0043740 s s M a s k 226 017 241 240 227 301 " s e 0043760 l e c t s t h e c o r r e s 0044000 p o n d i n g b i t i n 226 0044020 017 243 240 227 301 002 v p 226 017 241 240 227 301 030 0044040 w h i l e a 0 d e s e l e 0044060 c t s i t . 226 017 241 017 262 223 304 004 034 0044100 ; \0 P 304 006 002 \t 354 \0 \0 343 212 017 243 240 227 0044120 304 004 \b 344 006 ) 017 262 223 301 \n B y p a s 0044140 s B a s e 226 017 241 240 227 301 U d e t 0044160 e r m i n e s t h e s t a r 0044200 t i n g l o c a t i o n o f 0044220 t h e b y p a s s a r e a 0044240 i n r e a l m e m o r y . 0044260 T h e r e a l a d d r e s 0044300 s 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 0044320 246 251 \0 \0 J 212 017 241 240 227 304 004 033 275 \b 377 0044340 017 262 223 301 036 p r o d u c e d b y 0044360 b y p a s s m a p p i n g 0044400 i s 226 017 243 240 227 301 002 r a 226 017 241 240 0044420 227 301 001 = 226 017 243 240 227 301 002 r p 226 017 241 0044440 240 227 301 001 | 226 017 243 240 227 301 006 o f f s 0044460 e t 226 017 241 240 227 301 \b , w h e r e 0044500 226 017 243 240 227 301 002 r p 226 017 241 240 227 301 0044520 003 = ( 226 017 243 240 227 301 \n B y p a s 0044540 s B a s e 226 305 005 X e r o x 305 \n P 0044560 r e s s F o n t s 305 \b M a t h - 0044600 m r r 017 243 241 033 240 223 304 004 003 # \0 P 240 0044620 244 240 224 017 245 225 017 245 240 227 301 001 & 226 017 243 0044640 240 227 301 \n B y p a s s M a s k 226 017 0044660 241 240 227 301 002 ) 226 017 245 240 227 301 001 V 226 0044700 017 241 017 262 223 304 004 034 ; \0 P 304 004 y H \0 0044720 7 212 017 241 240 227 301 001 ( 226 017 243 240 227 301 002 0044740 v p 226 017 245 240 227 301 001 & 226 017 241 240 227 301 0044760 001 ~ 226 017 243 240 227 301 \n B y p a s s M 0045000 a s k 226 017 241 240 227 301 ? ) . T h e 0045020 m a s k , p a t t e r n , 0045040 a n d b a s e c a n a l l 0045060 b e m o d i f i e d b y 0045100 s o f t w a r e . 226 304 004 " 201 \0 P 0045120 304 006 006 024 304 \0 002 343 212 017 241 240 227 304 004 \v 0045140 303 005 i 017 262 223 301 Y I d e n t i t y 0045160 m a p p i n g i s u s e f 0045200 u l i n i n i t i a l i z i 0045220 n g t h e s y s t e m a t 0045240 s t a r t u p , a n d f o 0045260 r d o i n g I O . I t i 0045300 s 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 0045320 242 264 \0 \0 O 212 017 241 240 227 304 004 - { & w 0045340 017 262 223 301 6 i m p l e m e n t e d 0045360 b y d e s i g n a t i n g 0045400 o n e o f t h e a d d r e 0045420 s s s p a c e s ( 226 017 243 240 227 0045440 301 003 a i d 226 017 241 240 227 301 & = - 1 ) 0045460 t o c o r r e s p o n d t 0045500 o t h e i d e n t i t y m 0045520 a p 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 0045540 \ 223 \0 . 212 017 241 240 227 304 004 006 I 003 340 017 0045560 262 223 301 001 ( 226 017 243 240 227 301 002 r p 226 017 0045600 241 240 227 301 001 = 226 017 243 240 227 301 002 v p 226 0045620 017 241 240 227 301 - ) . T h e c h e 0045640 c k f o r i d e n t i t y 0045660 m a p p i n g i s a p p l i 0045700 e d 226 017 244 240 227 301 006 b e f o r e 0045720 226 017 241 240 227 301 $ t h e c h e c 0045740 k f o r b y p a s s m a p 0045760 p i n g , s o i t 226 017 241 017 262 0046000 223 304 004 034 ; \0 P 304 006 \0 217 z \0 \0 I 212 0046020 017 241 240 227 301 031 t a k e s h i g h 0046040 e s t p r e c e d e n c e . 226 0046060 304 004 034 ; \0 P 304 006 001 352 253 \0 001 032 212 305 0046100 005 X e r o x 305 \n P r e s s F o n 0046120 t s 305 016 T i m e s R o m a n - b 0046140 r r 017 243 241 033 240 223 304 004 \t i \0 310 240 244 0046160 240 224 017 246 225 017 246 240 227 301 026 3 . S y 0046200 s t e m O r g a n i z a t i o 0046220 n 226 304 004 " 201 \0 P 304 006 \0 207 037 \0 \0 T 0046240 212 017 241 240 227 304 004 025 H \n 377 017 262 223 301 S 0046260 T h e M a p P r o c e s s o 0046300 r c o n s i s t s o f t h 0046320 r e e c o m p o n e n t s ( 0046340 F i g u r e 2 ) : a M a p 0046360 T a b l e k e p t i n m 0046400 a i n 226 017 241 017 262 223 304 004 034 ; \0 P 304 0046420 006 \0 221 9 \0 \0 ] 212 017 241 240 227 304 004 002 ) 0046440 001 237 017 262 223 301 X m e m o r y , a 0046460 c u s t o m V L S I M a p 0046500 C a c h e , a n d a M a 0046520 p C a c h e C o n t r o l l 0046540 e r . T h e M a p T a b l 0046560 e s e r v e s a s t h e 226 0046600 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 240 211 0046620 \0 \0 j 212 017 241 240 227 304 004 004 u 003 ! 017 262 0046640 223 301 D r e p o s i t o r y f o 0046660 r m a p p i n g i n f o r m 0046700 a t i o n f o r a l l a d 0046720 d r e s s s p a c e s , m a 0046740 p p i n g ( 226 017 243 240 227 301 003 a i 0046760 d 226 017 241 240 227 301 002 , 226 017 243 240 227 301 0047000 002 v p 226 017 241 240 227 301 005 ) t o 226 0047020 017 243 240 227 301 002 r p 226 017 241 240 227 301 017 . 0047040 F o r e a c h r e a l 226 017 0047060 241 017 262 223 304 004 034 ; \0 P 304 004 u e \0 P 0047100 212 017 241 240 227 304 004 \a 213 \a J 017 262 223 301 " 0047120 p a g e t h e t a b l e a 0047140 l s o m a i n t a i n s s i 0047160 x 226 017 243 240 227 301 005 f l a g s 226 017 0047200 241 240 227 301 < u s e d f o r p 0047220 a g i n g a n d m e m o r y 0047240 p r o t e c t i o n ; i n 0047260 h i g h t o l o w o r d e 0047300 r 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 0 0047320 K \0 " 212 017 241 240 227 304 004 \t g 006 334 017 262 0047340 223 301 \v t h e s e a r e : 226 017 0047360 243 240 227 301 \r S p a r e , S h a r 0047400 e d 226 017 241 240 227 301 002 , 226 017 243 240 227 0047420 301 020 D i r t y , K W t E n a b 0047440 l e 226 017 241 240 227 301 002 , 226 017 243 240 227 0047460 301 \t U W t E n a b l e 226 017 241 240 227 0047500 301 006 , a n d 226 017 243 240 227 301 \t U 0047520 R d E n a b l e 226 017 241 240 227 301 001 . 0047540 226 017 240 240 227 301 001 226 017 241 240 227 301 024 T 0047560 h e M a p T a b l e s t o 0047600 r e s 226 017 241 017 262 223 304 004 034 ; \0 P 304 0047620 006 \0 252 K \0 \0 | 212 017 241 240 227 304 004 \t w 0047640 \b 3 017 262 223 301 ` i n f o r m a t i 0047660 o n o n l y a b o u t p a 0047700 g e s c u r r e n t l y i n 0047720 m a i n m e m o r y , a n 0047740 d i s s t r u c t u r e d 0047760 a s a h a s h t a b l e 0050000 i n d e x e d 226 017 241 017 262 223 304 004 034 0050020 ; \0 P 304 004 x 261 \0 [ 212 017 241 240 227 304 004 0050040 005 366 003 { 017 262 223 301 004 b y ( 226 017 243 0050060 240 227 301 003 a i d 226 017 241 240 227 301 002 , 0050100 226 017 243 240 227 301 002 v p 226 017 241 240 227 301 U 0050120 ) . T h i s a l l o w s 0050140 t h e t a b l e t o f i t 0050160 i n a s m a l l , f i x 0050200 e d f r a c t i o n o f m 0050220 a i n m e m o r y ( < 1 % 0050240 ) , i n 226 017 241 017 262 223 304 004 034 ; \0 0050260 P 304 006 \0 221 325 \0 \0 r 212 017 241 240 227 304 004 0050300 005 211 005 G 017 262 223 301 b c o n t r a s 0050320 t w i t h d i r e c t m a 0050340 p s c h e m e s . T h e s e 0050360 s c h e m e s c o n s u m e 0050400 t a b l e s p a c e p r o 0050420 p o r t i o n a l t o a l l 0050440 o f v i r t u a l 226 017 241 017 262 0050460 223 304 004 034 ; \0 P 304 004 023 267 \0 020 212 017 241 0050500 240 227 304 004 032 027 \f 264 017 262 223 301 W m e m 0050520 o r y o r t o t h e f r 0050540 a c t i o n b e i n g u s e 0050560 d f r e q u e n t l y , d e 0050600 p e n d i n g o n h o w t 0050620 h e y a r e i m p l e m e n 0050640 t e d . 226 017 241 017 262 223 304 004 034 ; \0 P 0050660 304 004 ] 240 \0 O 212 017 241 240 227 304 004 \f 353 \n 0050700 - 017 262 223 301 b A s s u m i n g t 0050720 h a t t h e h a s h f u n 0050740 c t i o n s p r e a d s t h 0050760 i n g s p r o p e r l y , t 0051000 h e a v e r a g e t i m e 0051020 t o a c c e s s t h e t a 0051040 b l e w i l l 226 017 241 017 262 223 304 004 0051060 034 ; \0 P 304 006 \0 206 K \0 \0 v 212 017 241 240 0051100 227 304 004 P 033 8 S 017 262 223 301 a b e q 0051120 u i t e g o o d . T h e 0051140 w o r s t c a s e t i m e , 0051160 h o w e v e r , d e p e n d 0051200 s o n h o w c o l l i s i 0051220 o n s a r e r e s o l v e d 0051240 . I n i t i a l l y , 226 017 241 0051260 017 262 223 304 004 034 ; \0 P 304 006 \0 260 277 \0 \0 0051300 242 212 017 241 240 227 304 004 \a 334 006 031 017 262 223 301 0051320 b l i n e a r c h a i n i n g 0051340 w i t h " m o v e t o f 0051360 r o n t o n a c c e s s " 0051400 w i l l b e u s e d ; i f 0051420 t h i s t u r n s o u t 0051440 t o b e a p e r f o r m a 0051460 n c e 226 017 241 017 262 223 304 004 034 ; \0 P 304 0051500 004 i q \0 e 212 017 241 240 227 304 004 \b 302 005 323 0051520 017 262 223 301 ] p r o b l e m t h e 0051540 s c h e m e w i l l b e 0051560 m o d i f i e d t o u s e 0051600 a t r e e s t r u c t u r e 0051620 . D r a g o n p r o c e s s 0051640 o r s a c c e s s t h e M 0051660 a p 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 0051700 O 301 \0 P 212 017 241 240 227 301 027 T a b l e 0051720 d i r e c t l y v i a t h 0051740 e 226 017 243 240 227 301 017 m a p b y p 0051760 a s s a r e a 226 017 241 240 227 301 001 . 0052000 226 304 004 " 201 \0 P 304 004 O 365 \0 Y 212 017 241 0052020 240 227 304 004 004 374 004 371 017 262 223 301 \ T h e 0052040 M a p C a c h e i s s i 0052060 m p l y a p e r f o r m a n 0052100 c e a c c e l e r a t o r t 0052120 h a t s i t s b e t w e e n 0052140 p r o c e s s o r c a c h e 0052160 s a n d t h e 226 017 241 017 262 223 304 0052200 004 034 ; \0 P 304 004 K 305 \0 Y 212 017 241 240 227 0052220 304 004 023 022 \r W 017 262 223 301 ] M a p T 0052240 a b l e . I t c o n t a i n 0052260 s a r o u n d 1 2 0 0 m a 0052300 p p i n g e n t r i e s a n 0052320 d a l l o w s m a p p i n g 0052340 r e q u e s t s t h a t h 0052360 i t t o b e 226 017 241 017 262 223 304 004 0052400 034 ; \0 P 304 004 G 225 \0 Y 212 017 241 240 227 304 0052420 004 005 017 004 350 017 262 223 301 * s e r v i c 0052440 e d i n a s m a l l n u 0052460 m b e r o f b u s c y c l 0052500 e s . 226 017 242 240 227 301 005 A M a p 0052520 226 017 241 240 227 301 ' C a c h e e n 0052540 t r y c o n t a i n s o n l 0052560 y f o u r o f t h e 226 017 0052600 243 240 227 301 006 f l a g s 226 017 241 240 227 0052620 301 \a k e p t i n 226 017 241 017 262 223 304 0052640 004 034 ; \0 P 304 004 b q \0 202 212 017 241 240 227 0052660 304 004 016 214 \n 017 017 262 223 301 023 a M a p 0052700 T a b l e e n t r y : 226 017 0052720 243 240 227 301 020 D i r t y , K W t E 0052740 n a b l e 226 017 241 240 227 301 002 , 226 017 0052760 243 240 227 301 \t U W t E n a b l e 226 017 0053000 241 240 227 301 006 , a n d 226 017 243 240 227 0053020 301 \t U R d E n a b l e 226 017 241 240 227 0053040 301 034 ; t h e r e m a i n i n 0053060 g t w o b i t s a r e 226 017 0053100 241 017 262 223 304 004 034 ; \0 P 304 004 0 K \0 D 0053120 212 017 241 240 227 304 004 005 225 004 326 017 262 223 301 b 0053140 n o t r e l e v a n t s o 0053160 t h e y a r e n o t c a c 0053200 h e d . P r o c e s s o r c 0053220 a c h e s t h e m s e l v e s 0053240 k e e p a l i m i t e d 0053260 n u m b e r o f e n t r i e 0053300 s , 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0053320 \0 263 266 \0 001 017 212 017 241 240 227 304 004 \v L \n 0053340 003 017 262 223 301 a s o t h e M a p 0053360 C a c h e i s r e a l l y 0053400 a s e c o n d l e v e l 0053420 c a c h e . W h e n a m a 0053440 p m i s s o c c u r s i n 0053460 a p r o c e s s o r c a c 0053500 h e , t h e 226 017 241 017 262 223 304 004 034 0053520 ; \0 P 304 006 \0 300 326 \0 001 9 212 017 241 240 227 0053540 304 004 002 373 001 327 017 262 223 301 2 c a c h e 0053560 f i r e s o f f a m a p 0053600 p i n g r e q u e s t ( c o 0053620 n t a i n i n g t h e 226 017 243 0053640 240 227 301 003 a i d 226 017 241 240 227 301 \t a 0053660 n d t h e 226 017 243 240 227 301 002 v p 0053700 226 017 241 240 227 301 033 ) t o t h e 0053720 M a p C a c h e . T h e M 0053740 a p 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0053760 \0 236 303 \0 001 027 212 017 241 240 227 304 004 005 s 005 0054000 0 017 262 223 301 j C a c h e r e t u 0054020 r n s t h e e n t r y i f 0054040 i t i s p r e s e n t , 0054060 a n d s i g n a l s a m a 0054100 p f a u l t i f i t i s 0054120 n o t . T h i s f a u l t 0054140 i s t h e n h a n d l e d 0054160 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 2 242 0054200 \0 a 212 017 241 240 227 304 004 001 255 001 O 017 262 223 0054220 301 ^ b y t h e p r o c e s s 0054240 o r a t t a t c h e d t o 0054260 t h e c a c h e t h a t g 0054300 o t t h e m a p m i s s . 0054320 T h e M a p C a c h e a 0054340 l s o i m p l e m e n t s a 0054360 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 L w 0054400 \0 241 212 017 241 240 227 304 004 004 202 002 ] 017 262 223 0054420 301 ^ n u m b e r o f o t h e 0054440 r o p e r a t i o n s , i n 0054460 c l u d i n g o n e s t o 0054500 r e a d a n d w r i t e e 0054520 n t r i e s , f l u s h e n 0054540 t r i e s , t o s w i t c h 0054560 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 R 225 0054600 \0 301 212 017 241 240 227 304 004 004 333 002 215 017 262 223 0054620 301 \ a d d r e s s s p a c e s 0054640 , a n d t o c o n t r o l 0054660 t h e l o c a t i o n a n 0054700 d s i z e o f t h e s h 0054720 a r e d a n d m a p b y p 0054740 a s s a r e a s . A l l 226 017 0054760 241 017 262 223 304 004 034 ; \0 P 304 006 \0 271 331 \0 0055000 001 350 212 017 241 240 227 301 9 c o m m u n i 0055020 c a t i o n w i t h t h e 0055040 M a p C a c h e o c c u r s 0055060 o v e r t h e D y n a B u 0055100 s . 226 304 004 " 201 \0 P 304 006 001 002 \a \0 003 0055120 222 212 240 k 240 j 017 241 017 245 223 304 006 \0 \0 035 0055140 001 B Q 240 244 240 250 304 004 [ 317 \0 z 304 004 035 0055160 313 \0 310 212 305 005 X e r o x 305 \n P r e 0055200 s s F o n t s 305 016 T i m e s R o 0055220 m a n - m r r 017 243 241 033 240 223 304 004 003 0055240 # \0 d 240 244 240 224 017 240 225 017 240 240 227 301 , 0055260 D R A G O N P R O J E C T 030 0055300 F O R I N T E R N A L X E 0055320 R O X U S E O N L Y 226 304 004 H 0055340 354 \0 O 304 004 t 017 \0 ( 212 305 005 X e r o 0055360 x 305 \n P r e s s F o n t s 305 016 T 0055400 i m e s R o m a n - m r r 017 243 241 0055420 033 240 223 304 004 003 # \0 P 240 244 240 224 017 241 225 0055440 017 241 240 227 301 001 T 226 017 240 240 227 301 002 H E 0055460 226 017 241 240 227 301 002 D 226 017 240 240 227 301 005 0055500 R A G O N 226 017 241 240 227 301 002 M 226 017 0055520 240 240 227 301 002 A P 226 017 241 240 227 301 002 P 0055540 226 017 240 240 227 301 \b R O C E S S O R 226 0055560 305 005 X e r o x 305 \n P r e s s F o 0055600 n t s 305 \n L a u r e l - m r r 017 0055620 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 0055640 242 225 017 242 240 227 304 004 K \r \0 % 304 006 \0 346 0055660 304 \0 \0 O 212 301 001 6 226 304 004 , U \0 213 304 0055700 006 \0 234 l \0 \0 [ 212 240 x 240 j 240 252 304 006 0055720 001 W B \0 \0 037 240 244 240 250 240 r 240 j 017 241 0055740 017 245 223 304 006 \0 \0 037 001 W B 240 244 240 250 017 0055760 240 017 240 021 Y 020 234 241 243 304 004 376 [ \0 005 304 0056000 004 376 : \0 005 240 242 240 250 240 r 240 j 304 002 \t 0056020 \n 240 244 304 006 002 p 035 \0 025 M 304 004 375 221 \0 0056040 002 240 242 240 245 240 250 017 241 241 250 304 006 001 W B 0056060 \0 \0 037 240 244 240 250 240 r 240 j 017 241 017 245 223 0056100 304 004 \0 177 023 210 304 004 002 323 021 t 240 242 240 250 0056120 304 006 \0 \0 222 \f h 023 240 244 240 250 \n 017 330 0056140 240 242 240 250 025 017 h 023 8 021 224 241 243 240 x 0056160 240 j 017 241 241 250 026 220 021 0 020 X 017 242 241 232 0056200 240 k 240 x 240 j 026 310 020 020 240 242 240 250 017 241 0056220 241 250 305 005 X e r o x 305 \n P r e s s 0056240 F o n t s 305 \r H e l v e t i c a 0056260 - m r r 017 243 241 033 240 223 017 260 240 244 240 224 0056300 017 243 225 017 243 240 227 017 240 017 246 212 301 002 S C 0056320 226 240 k 240 x 240 j 017 241 241 250 026 330 017 350 017 0056340 242 017 270 241 232 240 k 240 x 240 j 017 241 241 250 026 0056360 270 017 350 017 330 017 242 241 232 240 k 240 x 240 j 017 0056400 241 241 250 026 360 017 270 017 242 017 322 241 232 240 k 240 0056420 x 240 j 017 241 241 250 026 270 017 270 017 330 017 242 241 0056440 232 240 k 240 x 240 j 017 241 241 250 026 270 017 270 017 0056460 242 017 320 241 232 240 k 240 x 240 j 017 241 241 250 026 0056500 h 017 270 017 242 017 320 241 232 240 k 240 x 240 j 017 0056520 241 241 250 026 h 017 270 017 330 017 242 241 232 240 k 240 0056540 x 240 j 017 241 241 250 026 240 017 270 017 242 017 322 241 0056560 232 240 k 240 x 240 j 017 241 241 250 026 h 017 350 017 0056600 330 017 242 241 232 240 k 240 x 240 j 017 241 241 250 026 0056620 270 020 \0 017 242 017 320 241 232 240 k 240 x 240 j 017 0056640 241 241 250 026 270 020 \0 017 330 017 242 241 232 240 k 240 0056660 x 240 j 017 241 241 250 026 360 020 \0 017 242 017 322 241 0056700 232 240 k 240 x 240 j 017 241 241 250 026 270 020 0 017 0056720 330 017 242 241 232 240 k 240 x 240 j 017 241 241 250 026 0056740 h 020 0 017 330 017 242 241 232 240 k 240 x 240 j 017 0056760 241 241 250 026 240 020 \0 017 242 017 322 241 232 240 k 240 0057000 x 240 j 017 241 241 250 026 h 020 \0 017 330 017 242 241 0057020 232 240 k 240 x 240 j 017 241 241 250 026 h 020 \0 017 0057040 242 017 320 241 232 240 k 240 x 240 j 017 241 241 250 026 0057060 P 017 250 017 244 020 8 241 232 240 k 240 x 240 j 017 0057100 241 241 250 026 P 017 250 020 \ 017 244 241 232 240 k 240 0057120 x 240 j 017 241 241 250 027 \b 017 250 017 244 020 < 241 0057140 232 240 k 240 x 240 j 017 241 241 250 026 P 020 @ 020 0057160 X 017 244 241 232 240 k 240 x 240 j 026 x 017 310 240 0057200 242 240 250 017 241 241 250 305 005 X e r o x 305 \n 0057220 P r e s s F o n t s 305 \r H e l v 0057240 e t i c a - m r r 017 243 241 033 240 223 017 0057260 260 240 244 240 224 017 243 225 017 243 240 227 017 240 017 246 0057300 212 301 003 I F U 226 240 k 240 x 240 j 026 310 017 0057320 310 240 242 240 250 017 241 241 250 305 005 X e r o x 0057340 305 \n P r e s s F o n t s 305 \r H e 0057360 l v e t i c a - m r r 017 243 241 033 240 0057400 223 017 260 240 244 240 224 017 243 225 017 243 240 227 017 240 0057420 017 246 212 301 002 E U 226 240 k 240 x 240 j 026 x 0057440 020 020 240 242 240 250 017 241 241 250 305 005 X e r o 0057460 x 305 \n P r e s s F o n t s 305 \r H 0057500 e l v e t i c a - m r r 017 243 241 033 0057520 240 223 017 260 240 244 240 224 017 243 225 017 243 240 227 017 0057540 240 017 246 212 301 002 S C 226 240 k 240 x 240 j 017 0057560 241 241 250 026 210 017 350 017 242 017 270 241 232 240 k 240 0057600 x 240 j 017 241 241 250 026 210 020 0 017 242 017 360 241 0057620 232 240 k 240 x 240 j 017 241 241 250 026 330 020 0 017 0057640 242 017 360 241 232 240 k 240 x 240 j 025 310 020 020 240 0057660 242 240 250 017 241 241 250 305 005 X e r o x 305 \n 0057700 P r e s s F o n t s 305 \r H e l v 0057720 e t i c a - m r r 017 243 241 033 240 223 017 0057740 260 240 244 240 224 017 243 225 017 243 240 227 017 240 017 246 0057760 212 301 002 S C 226 240 k 240 x 240 j 017 241 241 250 0060000 025 330 017 350 017 242 017 270 241 232 240 k 240 x 240 j 0060020 017 241 241 250 025 270 017 350 017 330 017 242 241 232 240 k 0060040 240 x 240 j 017 241 241 250 025 360 017 270 017 242 017 322 0060060 241 232 240 k 240 x 240 j 017 241 241 250 025 270 017 270 0060100 017 330 017 242 241 232 240 k 240 x 240 j 017 241 241 250 0060120 025 270 017 270 017 242 017 320 241 232 240 k 240 x 240 j 0060140 017 241 241 250 025 h 017 270 017 242 017 320 241 232 240 k 0060160 240 x 240 j 017 241 241 250 025 h 017 270 017 330 017 242 0060200 241 232 240 k 240 x 240 j 017 241 241 250 025 240 017 270 0060220 017 242 017 322 241 232 240 k 240 x 240 j 017 241 241 250 0060240 025 h 017 350 017 330 017 242 241 232 240 k 240 x 240 j 0060260 017 241 241 250 025 270 020 \0 017 242 017 320 241 232 240 k 0060300 240 x 240 j 017 241 241 250 025 270 020 \0 017 330 017 242 0060320 241 232 240 k 240 x 240 j 017 241 241 250 025 360 020 \0 0060340 017 242 017 322 241 232 240 k 240 x 240 j 017 241 241 250 0060360 025 270 020 0 017 330 017 242 241 232 240 k 240 x 240 j 0060400 017 241 241 250 025 h 020 0 017 330 017 242 241 232 240 k 0060420 240 x 240 j 017 241 241 250 025 240 020 \0 017 242 017 322 0060440 241 232 240 k 240 x 240 j 017 241 241 250 025 h 020 \0 0060460 017 330 017 242 241 232 240 k 240 x 240 j 017 241 241 250 0060500 025 h 020 \0 017 242 017 320 241 232 240 k 240 x 240 j 0060520 017 241 241 250 025 P 017 250 017 244 020 8 241 232 240 k 0060540 240 x 240 j 017 241 241 250 025 P 017 250 020 \ 017 244 0060560 241 232 240 k 240 x 240 j 017 241 241 250 026 \b 017 250 0060600 017 244 020 < 241 232 240 k 240 x 240 j 017 241 241 250 0060620 025 P 020 @ 020 X 017 244 241 232 240 k 240 x 240 j 0060640 025 x 017 310 240 242 240 250 017 241 241 250 305 005 X e 0060660 r o x 305 \n P r e s s F o n t s 305 0060700 \r H e l v e t i c a - m r r 017 243 0060720 241 033 240 223 017 260 240 244 240 224 017 243 225 017 243 240 0060740 227 017 240 017 246 212 301 003 I F U 226 240 k 240 x 0060760 240 j 025 310 017 310 240 242 240 250 017 241 241 250 305 005 0061000 X e r o x 305 \n P r e s s F o n t 0061020 s 305 \r H e l v e t i c a - m r r 0061040 017 243 241 033 240 223 017 260 240 244 240 224 017 243 225 017 0061060 243 240 227 017 240 017 246 212 301 002 E U 226 240 k 240 0061100 x 240 j 025 x 020 020 240 242 240 250 017 241 241 250 305 0061120 005 X e r o x 305 \n P r e s s F o n 0061140 t s 305 \r H e l v e t i c a - m r 0061160 r 017 243 241 033 240 223 017 260 240 244 240 224 017 243 225 0061200 017 243 240 227 017 240 017 246 212 301 002 S C 226 240 k 0061220 240 x 240 j 017 241 241 250 025 210 017 350 017 242 017 270 0061240 241 232 240 k 240 x 240 j 017 241 241 250 025 210 020 0 0061260 017 242 017 360 241 232 240 k 240 x 240 j 017 241 241 250 0061300 025 330 020 0 017 242 017 360 241 232 240 k 240 x 240 j 0061320 025 8 017 h 240 242 240 250 017 241 241 250 305 005 X e 0061340 r o x 305 \n P r e s s F o n t s 305 0061360 \r H e l v e t i c a - m i r 017 243 0061400 241 033 240 223 017 260 240 244 240 224 017 243 225 017 243 240 0061420 227 017 242 017 246 212 301 026 ( M a p C a c 0061440 h e C o n t r o l l e r ) 226 240 0061460 k 240 x 240 j 027 340 017 210 240 242 240 250 017 241 241 0061500 250 305 005 X e r o x 305 \n P r e s s F 0061520 o n t s 305 \r H e l v e t i c a - 0061540 m i r 017 243 241 033 240 223 017 260 240 244 240 224 017 0061560 243 225 017 243 240 227 017 242 017 246 212 301 \t M a p 0061600 C a c h e 226 240 k 240 x 240 j 026 370 020 0061620 240 240 242 240 250 017 241 241 250 305 005 X e r o x 0061640 305 \n P r e s s F o n t s 305 \r H e 0061660 l v e t i c a - m i r 017 243 241 033 240 0061700 223 017 260 240 244 240 224 017 243 225 017 243 240 227 017 242 0061720 017 246 212 301 \v M a i n M e m o r y 0061740 226 240 k 240 x 240 j 017 241 241 250 027 300 020 020 017 0061760 352 017 242 241 232 240 k 240 x 240 j 017 241 241 250 027 0062000 300 017 260 017 242 020 \0 241 232 240 k 240 x 240 j 017 0062020 241 241 250 030 \b 017 260 017 242 020 002 241 232 240 k 240 0062040 x 240 j 017 241 241 250 027 300 020 030 020 H 017 242 241 0062060 232 240 k 240 x 240 j 017 241 241 250 030 h 020 030 017 0062100 242 017 302 241 232 240 k 240 x 240 j 017 241 241 250 027 0062120 300 020 030 017 242 017 300 241 232 240 k 240 x 240 j 017 0062140 241 241 250 027 300 020 8 020 H 017 242 241 232 240 k 240 0062160 x 240 j 017 241 241 250 026 220 020 300 017 244 020 8 241 0062200 232 240 k 240 x 240 j 017 241 241 250 026 220 020 300 020 0062220 \ 017 244 241 232 240 k 240 x 240 j 017 241 241 250 027 0062240 H 020 300 017 244 020 < 241 232 240 k 240 x 240 j 017 0062260 241 241 250 026 220 021 X 020 X 017 244 241 232 240 k 240 0062300 x 240 j 017 241 241 250 027 270 017 250 017 244 020 8 241 0062320 232 240 k 240 x 240 j 017 241 241 250 027 270 017 250 020 0062340 \ 017 244 241 232 240 k 240 x 240 j 017 241 241 250 030 0062360 p 017 250 017 244 020 < 241 232 240 k 240 x 240 j 017 0062400 241 241 250 027 270 020 @ 020 X 017 244 241 232 240 k 240 0062420 x 240 j 017 241 241 250 026 350 020 200 017 244 017 340 241 0062440 232 240 k 240 x 240 j 017 241 241 250 030 020 020 @ 017 0062460 244 017 340 241 232 240 k 240 x 240 j 017 241 241 250 027 0062500 300 017 260 017 352 017 242 241 232 240 k 240 x 240 j 017 0062520 241 241 250 030 017 260 017 352 017 242 241 232 240 k 240 0062540 x 240 j 017 241 241 250 030 h 017 260 017 242 020 002 241 0062560 232 240 k 240 x 240 j 017 241 241 250 030 017 260 017 0062600 242 020 \0 241 232 240 k 240 x 240 j 017 241 241 250 030 0062620 020 020 017 352 017 242 241 232 240 k 240 x 240 j 017 0062640 241 241 250 027 370 017 260 017 242 020 \0 241 232 240 k 240 0062660 x 240 j 017 241 241 250 030 X 017 260 017 242 020 \0 241 0062700 232 240 k 240 x 240 j 026 P 017 h 240 242 240 250 017 0062720 241 241 250 305 005 X e r o x 305 \n P r e s 0062740 s F o n t s 305 \r H e l v e t i c 0062760 a - m i r 017 243 241 033 240 223 017 260 240 244 240 0063000 224 017 243 225 017 243 240 227 017 242 017 246 212 301 026 ( 0063020 M a p C a c h e C o n t r o 0063040 l l e r ) 226 240 k 240 x 240 j 026 p 017 200 0063060 240 242 240 250 017 241 241 250 305 005 X e r o x 305 0063100 \n P r e s s F o n t s 305 \r H e l 0063120 v e t i c a - m i r 017 243 241 033 240 223 0063140 017 260 240 244 240 224 017 243 225 017 243 240 227 017 242 017 0063160 246 212 301 \v P r o c e s s o r 2 226 0063200 240 k 240 x 240 j 025 h 017 200 240 242 240 250 017 241 0063220 241 250 305 005 X e r o x 305 \n P r e s s 0063240 F o n t s 305 \r H e l v e t i c a 0063260 - m i r 017 243 241 033 240 223 017 260 240 244 240 224 0063300 017 243 225 017 243 240 227 017 242 017 246 212 301 \v P r 0063320 o c e s s o r 1 226 240 k 240 x 240 j 0063340 026 260 021 8 240 242 240 250 017 241 241 250 305 005 X e 0063360 r o x 305 \n P r e s s F o n t s 305 0063400 \r H e l v e t i c a - m r r 017 243 0063420 241 033 240 223 017 260 240 244 240 224 017 243 225 017 243 240 0063440 227 017 240 017 246 212 301 \t M a p T a b l 0063460 e 226 240 k 240 x 240 j 030 030 020 210 240 242 240 250 0063500 017 241 241 250 305 005 X e r o x 305 \n P r e 0063520 s s F o n t s 305 \r H e l v e t i 0063540 c a - m i r 017 243 241 033 240 223 017 260 240 244 0063560 240 224 017 243 225 017 243 240 227 017 242 017 246 212 301 \a 0063600 D y n a B u s 226 240 k 240 x 240 j 017 241 0063620 241 250 025 020 200 023 8 017 244 241 232 240 k 240 k 0063640 240 351 240 k 240 351 240 k 240 351 240 k 304 006 \0 217 0063660 ( \0 \0 247 304 006 \0 265 K \0 \0 n 212 017 241 240 0063700 227 301 & 001 F i g u r e 2 . M 0063720 a p P r o c e s s o r O r g 0063740 a n i z a t i o n 226 304 004 " 201 \0 P 0063760 304 004 S 231 \0 5 212 017 241 240 227 304 004 005 r 002 0064000 221 017 262 223 301 U T h e M a p C a 0064020 c h e C o n t r o l l e r i 0064040 s a f i c t i t i o u s d 0064060 e v i c e w h o s e f u n c 0064100 t i o n a l i t y i s i m p 0064120 l e m e n t e d b y 226 017 241 017 262 0064140 223 304 004 034 ; \0 P 304 006 \0 213 A \0 \0 [ 212 0064160 017 241 240 227 304 004 026 223 020 223 017 262 223 301 \ o 0064200 r d i n a r y D r a g o n p 0064220 r o c e s s o r s . A s e x 0064240 p l a i n e d a b o v e , w 0064260 h e n e v e r t h e M a p 0064300 C a c h e m i s s e s , t h 0064320 e p r o c e s s o r 226 017 241 017 262 0064340 223 304 004 034 ; \0 P 304 004 | 227 \0 T 212 017 241 0064360 240 227 304 004 \a 177 004 245 017 262 223 301 ] w h o 0064400 s e c a c h e g o t t h e 0064420 m i s s f i e l d s t h e 0064440 m a p f a u l t . T h i s 0064460 p r o c e s s o r p l a y s 0064500 t h e r o l e o f t h e 0064520 M a p C a c h e 226 017 241 017 262 223 0064540 304 004 034 ; \0 P 304 006 \0 315 _ \0 \0 217 212 017 0064560 241 240 227 304 004 002 t 002 % 017 262 223 301 ` C o 0064600 n t r o l l e r i n f e t c 0064620 h i n g t h e m i s s i n g 0064640 e n t r y f r o m t h e 0064660 M a p T a b l e a n d s h 0064700 i p p i n g i t t o t h e 0064720 M a p C a c h e . I n 226 017 0064740 241 017 262 223 304 004 034 ; \0 P 304 004 D 021 \0 1 0064760 212 017 241 240 227 304 004 \f 027 005 9 017 262 223 301 X 0065000 a d d i t i o n t o s e r v 0065020 i c i n g m i s s e s , t h 0065040 e M a p C a c h e C o n t 0065060 r o l l e r a l s o i m p l 0065100 e m e n t s a c o m p l e t 0065120 e s e t o f 226 017 241 017 262 223 304 004 0065140 034 ; \0 P 304 006 \0 213 223 \0 \0 h 212 017 241 240 0065160 227 304 004 024 8 \n Y 017 262 223 301 \ o p e r 0065200 a t i o n s f o r m a n i p 0065220 u l a t i n g t h e M a p 0065240 T a b l e . T h e c o d e 0065260 f o r t h e s e o p e r a t 0065300 i o n s i s a v a i l a b l 0065320 e t o a l l 226 017 241 017 262 223 304 004 0065340 034 ; \0 P 304 004 t 215 \0 Z 212 017 241 240 227 304 0065360 004 \t g \b 343 017 262 223 301 ` p r o c e s 0065400 s o r s a n d c a n b e 0065420 e x e c u t e d b y a n y 0065440 o n e o f t h e m . T h i 0065460 s s p l i t i n f u n c t 0065500 i o n a l i t y b e t w e e n 0065520 M a p C a c h e 226 017 241 017 262 223 0065540 304 004 034 ; \0 P 304 004 6 351 \0 , 212 017 241 240 0065560 227 304 004 \b 365 004 201 017 262 223 301 Y a n d 0065600 M a p C a c h e C o n t r o 0065620 l l e r l e t s u s p u t 0065640 i n h a r d w a r e o n l 0065660 y t h a t p o r t i o n o 0065700 f t h e d e s i g n w h i 0065720 c h i s 226 017 241 017 262 223 304 004 034 ; \0 0065740 P 304 006 \0 215 265 \0 \0 v 212 017 241 240 227 304 004 0065760 006 371 005 0 017 262 223 301 ] n e c e s s a 0066000 r y f o r s p e e d . T h 0066020 e r e s t i s i m p l e m 0066040 e n t e d b y D r a g o n 0066060 c o d e , s o e n h a n c e 0066100 m e n t s i n b o t h f u 0066120 n c t i o n 226 017 241 017 262 223 304 004 034 ; 0066140 \0 P 304 006 \0 353 c \0 \0 314 212 017 241 240 227 304 0066160 004 006 307 006 264 017 262 223 301 a a n d p e 0066200 r f o r m a n c e c a n b e 0066220 m a d e r e l a t i v e l y 0066240 e a s i l y . F o r e x a 0066260 m p l e , t h e s t r u c t 0066300 u r e o f t h e M a p T 0066320 a b l e c a n b e 226 017 241 017 262 0066340 223 304 004 034 ; \0 P 304 006 \0 316 371 \0 \0 273 212 0066360 017 241 240 227 301 ? l e f t c o m p l 0066400 e t e l y o p e n s i n c e 0066420 t h e h a r d w a r e h a 0066440 s n o k n o w l e d g e o 0066460 f i t . 226 304 004 " 201 \0 P 304 006 \0 212 0066500 323 \0 \0 206 212 017 241 240 227 304 004 \t 202 \t 021 017 0066520 262 223 301 ] T h e f i n a l c o 0066540 m p o n e n t i s t h e M 0066560 a p T a b l e . I t s e r 0066600 v e s a s t h e r e p o s 0066620 i t o r y f o r m a p p i n 0066640 g i n f o r m a t i o n f o 0066660 r 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 " 0066700 235 \0 # 212 017 241 240 227 304 004 006 g 005 ? 017 262 0066720 223 301 035 a l l a d d r e s s s 0066740 p a c e s , m a p p i n g ( 0066760 226 305 005 X e r o x 305 \n P r e s s F 0067000 o n t s 305 016 T i m e s R o m a n 0067020 - m i r 017 243 241 033 240 223 304 004 003 # \0 P 0067040 240 244 240 224 017 243 225 017 243 240 227 301 003 a i d 0067060 226 017 241 240 227 301 002 , 226 017 243 240 227 301 002 0067100 v p 226 017 241 240 227 301 005 ) t o 226 017 0067120 243 240 227 301 002 r p 226 017 241 240 227 301 ; . 0067140 F o r e a c h r e a l p a 0067160 g e t h e t a b l e a l s 0067200 o m a i n t a i n s s i x 0067220 f l a g b i t s 226 017 241 017 262 223 304 0067240 004 034 ; \0 P 304 004 Q 362 \0 W 212 017 241 240 227 0067260 304 004 006 257 003 324 017 262 223 301 G u s e d 0067300 f o r p a g i n g a n d m 0067320 e m o r y p r o t e c t i o n 0067340 ; i n h i g h t o l o w 0067360 o r d e r t h e s e a r e 0067400 : 226 017 243 240 227 301 \r S p a r e , 0067420 S h a r e d 226 017 241 240 227 301 002 , 226 0067440 017 243 240 227 301 006 D i r t y , 226 017 241 017 0067460 262 223 304 004 034 ; \0 P 304 004 L 365 \0 V 212 017 0067500 243 240 227 304 004 020 K \t 313 017 262 223 301 \t K W 0067520 t E n a b l e 226 017 241 240 227 301 002 , 0067540 226 017 243 240 227 301 \t U W t E n a b l e 0067560 226 017 241 240 227 301 006 , a n d 226 017 243 0067600 240 227 301 \t U R d E n a b l e 226 017 241 0067620 240 227 301 001 . 226 017 240 240 227 301 001 226 017 241 0067640 240 227 301 1 T h e M a p T a b l 0067660 e s t o r e s i n f o r m a 0067700 t i o n o n l y a b o u t 0067720 p a g e s 226 017 241 017 262 223 304 004 034 ; \0 0067740 P 304 004 . 241 \0 7 212 017 241 240 227 304 004 \b 356 0067760 006 367 017 262 223 301 H c u r r e n t l y 0070000 i n m a i n m e m o r y , 0070020 a n d i s s t r u c t u r 0070040 e d a s a h a s h t a b 0070060 l e i n d e x e d b y ( 226 0070100 017 243 240 227 301 003 a i d 226 017 241 240 227 301 002 0070120 , 226 017 243 240 227 301 002 v p 226 017 241 240 227 0070140 301 023 ) . T h i s a l l o w 0070160 s t h e 226 017 241 017 262 223 304 004 034 ; \0 0070200 P 304 004 \ 343 \0 t 212 017 241 240 227 304 004 003 233 0070220 002 354 017 262 223 301 c t a b l e t o 0070240 f i t i n a s m a l l , 0070260 f i x e d f r a c t i o n o 0070300 f m a i n m e m o r y ( < 0070320 1 % ) , i n c o n t r a s 0070340 t w i t h d i r e c t m a 0070360 p s c h e m e s . 226 017 241 017 262 223 0070400 304 004 034 ; \0 P 304 004 * 5 \0 8 212 017 241 240 0070420 227 304 004 \v 344 \t 211 017 262 223 301 ` T h e s 0070440 e s c h e m e s c o n s u m 0070460 e t a b l e s p a c e p r 0070500 o p o r t i o n a l t o a l 0070520 l o f v i r t u a l m e m 0070540 o r y o r t o t h e f r 0070560 a c t i o n b e i n g 226 017 241 017 0070600 262 223 304 004 034 ; \0 P 304 004 2 , \0 G 212 017 0070620 241 240 227 304 004 003 b 001 243 017 262 223 301 W u s 0070640 e d f r e q u e n t l y , d 0070660 e p e n d i n g o n h o w 0070700 t h e y a r e i m p l e m e 0070720 n t e d . A s s u m i n g t 0070740 h a t t h e h a s h f u n 0070760 c t i o n 226 017 241 017 262 223 304 004 034 ; \0 0071000 P 304 006 \0 200 237 \0 \0 303 212 017 241 240 227 304 004 0071020 \a 230 005 - 017 262 223 301 a s p r e a d s 0071040 t h i n g s p r o p e r l y 0071060 , t h e a v e r a g e t i 0071100 m e t o a c c e s s t h e 0071120 t a b l e w i l l b e q 0071140 u i t e g o o d . T h e 0071160 w o r s t c a s e 226 017 241 017 262 223 0071200 304 004 034 ; \0 P 304 004 k 2 \0 257 212 017 241 240 0071220 227 304 004 020 242 \n 323 017 262 223 301 ` t i m e 0071240 , h o w e v e r , d e p e n 0071260 d s o n h o w c o l l i s 0071300 i o n s a r e r e s o l v e 0071320 d . I n i t i a l l y , l 0071340 i n e a r c h a i n i n g w 0071360 i t h " m o v e t o 226 017 241 017 0071400 262 223 304 004 034 ; \0 P 304 004 M y \0 211 212 017 0071420 241 240 227 304 004 003 = 002 * 017 262 223 301 _ f r 0071440 o n t o n a c c e s s " w 0071460 i l l b e u s e d ; i f 0071500 t h i s t u r n s o u t t 0071520 o b e a p e r f o r m a n 0071540 c e p r o b l e m t h e s 0071560 c h e m e w i l l b e 226 017 241 0071600 017 262 223 304 004 034 ; \0 P 304 004 H 225 \0 214 212 0071620 017 241 240 227 304 004 016 x \b 225 017 262 223 301 Z m 0071640 o d i f i e d t o u s e a 0071660 t r e e s t r u c t u r e . 0071700 D r a g o n p r o c e s s o 0071720 r s a c c e s s t h e M a 0071740 p T a b l e d i r e c t l y 0071760 v i a t h e 226 017 243 240 227 301 003 0072000 m a p 226 017 241 017 262 223 304 004 034 ; \0 P 304 0072020 004 020 \a \0 " 212 017 243 240 227 301 \v b y p a 0072040 s s a r e a 226 017 241 240 227 301 001 . 226 0072060 240 k 240 j 017 241 017 245 223 304 006 \0 \0 035 001 B 0072100 Q 240 244 240 250 304 004 [ 317 \0 z 304 004 035 313 \0 0072120 310 212 305 005 X e r o x 305 \n P r e s s 0072140 F o n t s 305 016 T i m e s R o m a 0072160 n - m r r 017 243 241 033 240 223 304 004 003 # \0 0072200 d 240 244 240 224 017 240 225 017 240 240 227 301 , D R 0072220 A G O N P R O J E C T 030 F 0072240 O R I N T E R N A L X E R O 0072260 X U S E O N L Y 226 304 006 002 o A 0072300 \0 002 243 304 004 t 017 \0 ( 212 305 005 X e r o 0072320 x 305 \n P r e s s F o n t s 305 016 T 0072340 i m e s R o m a n - m r r 017 243 241 0072360 033 240 223 304 004 003 # \0 P 240 244 240 224 017 241 225 0072400 017 241 240 227 301 001 T 226 017 240 240 227 301 002 H E 0072420 226 017 241 240 227 301 002 D 226 017 240 240 227 301 005 0072440 R A G O N 226 017 241 240 227 301 002 M 226 017 0072460 240 240 227 301 002 A P 226 017 241 240 227 301 002 P 0072500 226 017 240 240 227 301 \b R O C E S S O R 226 0072520 305 005 X e r o x 305 \n P r e s s F o 0072540 n t s 305 \n L a u r e l - m r r 017 0072560 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 0072600 242 225 017 242 240 227 304 006 001 N 307 \0 \0 245 304 006 0072620 \0 346 304 \0 \0 O 212 301 001 7 226 304 004 034 ; \0 0072640 P 304 006 \0 203 033 \0 \0 1 212 305 005 X e r o 0072660 x 305 \n P r e s s F o n t s 305 016 T 0072700 i m e s R o m a n - b r r 017 243 241 0072720 033 240 223 304 004 \t i \0 310 240 244 240 224 017 243 225 0072740 017 243 240 227 301 023 4 . S y s t e m 0072760 F u n c t i o n s 226 304 004 " 201 \0 P 0073000 304 004 s 361 \0 - 212 017 241 240 227 304 004 004 371 004 0073020 315 017 262 223 301 Z T h i s s e c t i 0073040 o n d e s c r i b e s t h e 0073060 f u n c t i o n s i m p l e 0073100 m e n t e d b y t h e M a 0073120 p P r o c e s s o r . M a p 0073140 C a c h e f u n c t i o n s 0073160 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 001 200 0073200 y \0 \0 230 212 017 241 240 227 304 004 005 \a 004 ? 017 0073220 262 223 301 a a r e t a k e n u p 0073240 f i r s t , f o l l o w e d 0073260 b y M a p C a c h e C o 0073300 n t r o l l e r f u n c t i o 0073320 n s . T h e d e s c r i p t 0073340 i o n f o r e a c h f u n 0073360 c t i o n 226 017 241 017 262 223 304 004 034 ; \0 0073400 P 304 004 e 307 \0 ) 212 017 241 240 227 304 004 004 242 0073420 002 K 017 262 223 301 ^ i n c l u d e s 0073440 i t s s p e c i f i c a t i o 0073460 n , t h e m e t h o d f o 0073500 r i n v o k i n g i t , a 0073520 n d m i s c e l l a n e o u s 0073540 i n f o r m a t i o n r e l 0073560 e v a n t 226 017 241 017 262 223 304 004 034 ; \0 0073600 P 304 006 \0 252 y \0 \0 F 212 017 241 240 227 301 033 0073620 l a r g e l y t o t h e i 0073640 m p l e m e n t o r . 226 304 004 034 ; 0073660 \0 P 304 006 \0 275 ; \0 \0 Q 212 305 005 X e r 0073700 o x 305 \n P r e s s F o n t s 305 016 0073720 T i m e s R o m a n - b r r 017 243 0073740 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 244 0073760 225 017 244 240 227 301 027 4 . 1 M a p C 0074000 a c h e F u n c t i o n s 226 304 0074020 004 " 201 \0 P 304 004 i $ \0 / 212 017 241 240 227 0074040 304 004 \r 3 \r % 017 262 223 301 Z O n e o 0074060 f t h e M a p C a c h e 0074100 f u n c t i o n s i s i n v 0074120 o k e d v i a t h e d e d 0074140 i c a t e d D y n a B u s t 0074160 r a n s a c t i o n M a p , 0074200 w h i l e 226 017 241 017 262 223 304 004 034 ; \0 0074220 P 304 006 001 2 231 \0 \0 214 212 017 241 240 227 304 004 0074240 003 y 002 271 017 262 223 301 _ t h e r e m 0074260 a i n d e r a r e i n v o k 0074300 e d v i a I O W r i t e s . 0074320 M a p i s i m p l e m e n 0074340 t e d u s i n g a s p e c 0074360 i a l t r a n s a c t i o n 0074400 t o a l l o w 226 017 241 017 262 223 304 004 0074420 034 ; \0 P 304 004 / % \0 026 212 017 241 240 227 304 0074440 004 023 027 020 \r 017 262 223 301 b m a p p i n 0074460 g r e q u e s t s i n a 0074500 m u l t i - l e v e l D y n a 0074520 B u s s y s t e m t o b e 0074540 e a s i l y c o n f i n e d 0074560 t o t h e o r i g i n a t 0074600 i n g b u s ( i e . 226 017 241 017 0074620 262 223 304 004 034 ; \0 P 304 006 002 < - \0 001 021 0074640 212 017 241 240 227 304 004 003 ` 003 O 017 262 223 301 e 0074660 w i t h o u t h a v i n g t 0074700 o i n t e r p r e t t h e 0074720 a d d r e s s p a r t o f 0074740 a t r a n s a c t i o n ) . 0074760 S u c h c o n f i n i n g i 0075000 s i m p o r t a n t g i v e 0075020 n t h e 226 017 241 017 262 223 304 004 034 ; \0 0075040 P 304 006 005 \b 267 \0 002 u 212 017 241 240 227 301 ' 0075060 r e l a t i v e f r e q u e n 0075100 c y o f m a p p i n g r e 0075120 q u e s t s . 226 304 004 034 ; \0 P 304 006 0075140 001 024 333 \0 \0 216 212 305 005 X e r o x 305 \n 0075160 P r e s s F o n t s 305 016 T i m e 0075200 s R o m a n - b i r 017 243 241 033 240 223 0075220 304 004 003 # \0 P 240 244 240 224 017 245 225 017 245 240 0075240 227 301 003 M a p 226 305 005 X e r o x 305 \n 0075260 P r e s s F o n t s 305 016 T i m e 0075300 s R o m a n - m i r 017 243 241 033 240 223 0075320 304 004 003 # \0 P 240 244 240 224 017 246 225 017 246 240 0075340 227 301 J ( a i d : A d d r e s s 0075360 S p a c e I d , v p : V i r 0075400 t u a l P a g e ) R e t u r n 0075420 s ( r p : R e a l P a g e , 0075440 f l a g s : F l a g s ) 226 304 004 0075460 " 201 \0 P 304 006 \0 242 331 \0 \0 X 212 017 241 240 0075500 227 304 004 \v k \t u 017 262 223 301 032 M a p 0075520 r e t u r n s t h e r e a l 0075540 p a g e 226 017 246 240 227 301 002 r p 226 0075560 017 241 240 227 301 005 a n d 226 017 246 240 227 0075600 301 005 f l a g s 226 017 241 240 227 301 ' c 0075620 o r r e s p o n d i n g t o 0075640 a g i v e n v i r t u a l 0075660 p a g e 226 017 246 240 227 301 002 v p 226 017 0075700 241 240 227 301 \r ; t h e m a p p i 0075720 n g 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 0075740 o 321 \0 > 212 017 241 240 227 304 004 \r \r \f 032 017 0075760 262 223 301 - i s p e r f o r m e d 0076000 i n t h e c o n t e x t 0076020 o f a d d r e s s s p a c e 0076040 226 017 246 240 227 301 003 a i d 226 017 241 240 227 0076060 301 034 . I f t h e r e i s 0076100 n o e n t r y f o r ( 226 017 0076120 246 240 227 301 003 a i d 226 017 241 240 227 301 002 , 0076140 226 017 246 240 227 301 002 v p 226 017 241 240 227 301 0076160 023 ) i n t h e M a p C a 0076200 c h e , 226 017 241 017 262 223 304 004 034 ; \0 P 0076220 304 004 @ 375 \0 % 212 017 241 240 227 304 004 001 231 001 0076240 201 017 262 223 301 f a m a p f a u l 0076260 t i s s i g n a l l e d b 0076300 y s e t t i n g t h e e r 0076320 r o r b i t i n t h e r 0076340 e p l y p a c k e t . M a p 0076360 i s u s e d b y p r o c 0076400 e s s o r c a c h e s 226 017 241 017 0076420 262 223 304 004 034 ; \0 P 304 006 \0 275 276 \0 \0 o 0076440 212 017 241 240 227 304 004 004 214 003 307 017 262 223 301 b 0076460 w h e n t h e y g e t a 0076500 m a p m i s s w h i l e s 0076520 e r v i c i n g a p r o c e 0076540 s s o r r e f e r e n c e , 0076560 s o i t s s p e e d i s 0076600 i m p o r t a n t f o r g o 0076620 o d 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0076640 \0 270 205 \0 \0 o 212 017 241 240 227 301 023 s y s 0076660 t e m p e r f o r m a n c e . 0076700 226 304 004 " 201 \0 P 304 004 E 337 \0 , 212 017 241 0076720 240 227 304 004 005 ; 004 314 017 262 223 241 235 301 \n I 0076740 n v o c a t i o n 226 017 241 017 241 241 236 0076760 301 = : M a p R q s t ( h e a d 0077000 e r , d a t a ) ; h e a d e 0077020 r [ 1 7 . . 4 1 ] = 0 ; h 0077040 e a d e r [ 4 2 . . 6 3 ] = 226 0077060 017 246 240 227 301 003 v p 226 017 241 240 227 301 022 0077100 ; d a t a [ 0 . . 3 1 ] = 0077120 0 ; 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0077140 \0 212 257 \0 \0 Z 212 017 241 240 227 301 017 d a t 0077160 a [ 3 2 . . 6 3 ] = 226 017 246 240 0077200 227 301 003 a i d 226 017 241 240 227 301 001 . 226 304 0077220 004 " 201 \0 P 304 004 ? 020 \0 + 212 017 241 240 227 0077240 304 004 " 031 017 , 017 262 223 241 235 301 \a R e s 0077260 u l t s 226 017 241 017 241 241 236 301 J : r 0077300 e t u r n e d v i a M a p R 0077320 p l y ( h e a d e r , d a t a 0077340 ) ; h e a d e r [ 1 7 . . 4 1 0077360 ] = 0 ; h e a d e r [ 4 2 0077400 . . 6 3 ] = 226 017 246 240 227 301 003 v 0077420 p 226 017 241 240 227 301 001 ; 226 017 241 017 262 223 304 0077440 004 034 ; \0 P 304 004 Y n \0 ? 212 017 241 240 227 0077460 301 d a t a [ 0 . . 3 1 ] = 0077500 0 ; d a t a [ 3 2 . . 5 3 ] 0077520 = 226 017 246 240 227 301 002 r p 226 017 241 240 227 0077540 301 $ ; d a t a [ 5 4 . . 5 9 ] 0077560 = x x ; d a t a [ 6 0 . . 0077600 6 3 ] = 226 017 246 240 227 301 005 f l a 0077620 g s 226 017 241 240 227 301 002 . 226 304 004 " 201 0077640 \0 P 304 004 0 m \0 $ 212 017 241 240 227 304 004 016 0077660 : \r + 017 262 223 301 \a I f t h e 226 0077700 017 246 240 227 301 002 v p 226 017 241 240 227 301 0077720 l i e s i n t h e b y p a 0077740 s s a r e a o r t h e 226 0077760 017 246 240 227 301 003 a i d 226 017 241 240 227 301 5 0100000 i s t h e i d e n t i t y 0100020 m a p p e d s p a c e t h 0100040 e n t h e v a l u e r e t 0100060 u r n e d 226 017 241 017 262 223 304 004 034 ; \0 0100100 P 304 006 \0 341 337 \0 \0 256 212 017 241 240 227 017 244 0100120 017 262 223 301 004 f o r 226 017 246 240 227 301 006 0100140 f l a g s 226 017 241 240 227 301 017 i s 0100160 a s f o l l o w s : 226 017 246 240 0100200 227 301 005 D i r t y 226 017 241 240 227 301 001 = 0100220 226 017 240 240 227 301 004 T R U E 226 017 246 240 227 0100240 301 \v , K W t E n a b l e 226 017 241 0100260 240 227 301 001 = 226 017 240 240 227 301 004 T R U E 0100300 226 017 241 240 227 301 002 , 226 017 246 240 227 301 \t 0100320 U W t E n a b l e 226 017 241 240 227 301 001 0100340 = 226 017 240 240 227 301 005 F A L S E 226 017 241 0100360 240 227 301 005 , a n d 226 017 241 017 262 223 304 0100400 004 034 ; \0 P 304 006 \0 205 335 \0 \0 k 212 017 246 0100420 240 227 304 004 \a 312 006 005 017 262 223 301 \t U R d 0100440 E n a b l e 226 017 241 240 227 301 001 = 226 017 0100460 240 240 227 301 005 F A L S E 226 017 241 240 227 301 0100500 P . I f t h e e n t r y 0100520 i s n o t i n t h e M a 0100540 p C a c h e t h e n t h e 0100560 e r r o r b i t i n t h 0100600 e r e p l y p a c k e t i 0100620 s 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 0100640 212 v \0 \0 s 212 017 241 240 227 301 & s e t , 0100660 a n d d a t a [ 3 2 . . 6 3 0100700 ] g i v e s t h e f a u l 0100720 t . 226 304 004 034 ; \0 P 304 006 \0 216 207 \0 \0 0100740 201 212 017 245 240 227 301 022 W r i t e M a p 0100760 C a c h e E n t r y 226 017 246 240 227 301 0101000 - ( v p : V i r t u a l P a g 0101020 e , r p : R e a l P a g e , 0101040 f l a g s : F l a g s ) 226 304 0101060 004 " 201 \0 P 304 004 a 216 \0 a 212 017 241 240 227 0101100 304 004 005 W 004 a 017 262 223 301 # W r i t e 0101120 M a p C a c h e E n t r y p u 0101140 t s t h e e n t r y ( 226 017 0101160 246 240 227 301 \v a i d R e g i s t e r 0101200 226 017 241 240 227 301 002 , 226 017 246 240 227 301 002 0101220 v p 226 017 241 240 227 301 002 ) 226 305 005 X e 0101240 r o x 305 \n P r e s s F o n t s 305 0101260 \b M a t h - m r r 017 243 241 033 240 223 304 0101300 004 003 # \0 P 240 244 240 224 017 247 225 017 247 240 227 0101320 301 001 _ 226 017 241 240 227 301 002 ( 226 017 246 240 0101340 227 301 002 r p 226 017 241 240 227 301 002 , 226 017 0101360 246 240 227 301 005 f l a g s 226 017 241 240 227 301 0101400 032 ) i n t o t h e M a p 0101420 C a c h e . T h i s 226 017 241 017 262 0101440 223 304 004 034 ; \0 P 304 004 F 361 \0 J 212 017 241 0101460 240 227 304 004 006 c 004 : 017 262 223 301 ] o p e 0101500 r a t i o n i s u s e d b 0101520 y a D r a g o n p r o c e 0101540 s s o r t o r e t u r n a 0101560 n e n t r y t o t h e M 0101600 a p C a c h e a f t e r a 0101620 m i s s . T h e 226 017 241 017 262 223 0101640 304 004 034 ; \0 P 304 004 h 326 \0 s 212 017 246 240 0101660 227 301 \v a i d R e g i s t e r 226 017 0101700 241 240 227 301 = r e g i s t e r m 0101720 u s t h a v e b e e n s e 0101740 t u p e a r l i e r v i a 0101760 a W r i t e R e g i s t e r 0102000 . 226 304 004 " 201 \0 P 304 004 ; r \0 G 212 0102020 017 241 240 227 304 004 004 y 001 331 017 262 223 241 235 301 0102040 \n I n v o c a t i o n 226 017 241 017 241 0102060 241 236 301 J : I O W r i t e R q s 0102100 t ( h e a d e r , d a t a ) ; 0102120 h e a d e r [ 1 7 . . 3 1 ] 0102140 = 0 ; h e a d e r [ 3 2 . . 0102160 3 5 ] = d e v T y p e ; 226 017 0102200 241 017 262 223 304 004 034 ; \0 P 304 004 - 325 \0 : 0102220 212 017 241 240 227 304 002 - " 017 262 223 301 ) h e 0102240 a d e r [ 3 6 . . 3 9 ] = d 0102260 e v N u m ; h e a d e r [ 4 0 0102300 . . 4 1 ] = 226 017 246 240 227 301 001 226 0102320 017 241 240 227 301 024 0 ; h e a d e r [ 0102340 4 2 . . 6 3 ] = 226 017 246 240 227 301 0102360 002 v p 226 017 241 240 227 301 037 ; d a t a 0102400 [ 0 . . 3 1 ] = 0 ; d a t 0102420 a [ 3 2 . . 5 3 ] 226 017 241 017 262 223 304 0102440 004 034 ; \0 P 304 004 _ 336 \0 201 212 017 241 240 227 0102460 301 002 = 226 017 246 240 227 301 002 r p 226 017 241 0102500 240 227 301 # d a t a [ 5 4 . . 5 9 0102520 ] = x x ; d a t a [ 6 0 . 0102540 . 6 3 ] = 226 017 246 240 227 301 005 f l 0102560 a g s 226 017 241 240 227 301 001 . 226 304 004 034 ; 0102600 \0 P 304 006 \0 202 274 \0 \0 313 212 017 245 240 227 301 0102620 021 R e a d M a p C a c h e E n t 0102640 r y 226 017 246 240 227 301 5 ( v p : V i 0102660 r t u a l P a g e ) R e t u r 0102700 n s ( r p : R e a l P a g e , 0102720 f l a g s : F l a g s ) 226 304 0102740 004 " 201 \0 P 304 004 M _ \0 216 212 017 241 240 227 0102760 304 004 017 263 \f \r 017 262 223 301 Y R e a d M 0103000 a p C a c h e E n t r y i s 0103020 i d e n t i c a l t o M a p 0103040 e x c e p t t h a t i t 0103060 i s i n v o k e d v i a a 0103100 n I O R e a d t r a n s a c 0103120 t i o n 226 017 241 017 262 223 304 004 034 ; \0 P 0103140 304 004 m 205 \0 334 212 017 241 240 227 304 004 025 S 020 0103160 360 017 262 223 301 r a t h e r t h a 0103200 n a M a p , a n d t h a 0103220 t t h e 226 017 246 240 227 301 003 a i d 0103240 226 017 241 240 227 301 031 u s e d i s 0103260 t h e c o n t e n t s o f 0103300 226 017 246 240 227 301 \v a i d R e g i s t 0103320 e r 226 017 241 240 227 301 035 . T h i s 0103340 o p e r a t i o n i s u s e 0103360 f u l t o 226 017 241 017 262 223 304 004 034 ; 0103400 \0 P 304 004 n p \0 365 212 017 241 240 227 304 004 005 0103420 Q 003 320 017 262 223 301 ` a l l o w a 0103440 p r o c e s s o r t o v e r 0103460 i f y t h e c o n t e n t s 0103500 o f a M a p C a c h e ; 0103520 i t i s n o t u s e d 0103540 i n n o r m a l o p e r a t 0103560 i o n . T h e 226 017 241 017 262 223 304 004 0103600 034 ; \0 P 304 004 027 003 \0 9 212 017 246 240 227 301 0103620 \v a i d R e g i s t e r 226 017 241 240 0103640 227 301 < r e g i s t e r m u s 0103660 t h a v e b e e n s e t 0103700 u p e a r l i e r v i a a 0103720 W r i t e R e g i s t e r . 226 0103740 304 004 " 201 \0 P 304 004 030 \v \0 I 212 017 241 240 0103760 227 304 004 025 Q \b { 017 262 223 241 235 301 \n I n 0104000 v o c a t i o n 226 017 241 017 241 241 236 301 0104020 I : I O R e a d R q s t ( h e 0104040 a d e r , d a t a ) ; h e a 0104060 d e r [ 1 7 . . 3 1 ] = 0 ; 0104100 h e a d e r [ 3 2 . . 3 5 ] 0104120 = d e v T y p e ; 226 017 241 017 262 223 0104140 304 004 034 ; \0 P 304 004 & 255 \0 211 212 017 241 240 0104160 227 301 ) h e a d e r [ 3 6 . . 3 9 0104200 ] = d e v N u m ; h e a d 0104220 e r [ 4 0 . . 4 1 ] = 226 017 246 240 0104240 227 301 001 226 017 241 240 227 301 024 0 ; h e 0104260 a d e r [ 4 2 . . 6 3 ] = 226 0104300 017 246 240 227 301 002 v p 226 017 241 240 227 301 023 ; 0104320 d a t a [ 0 . . 6 3 ] = x 0104340 x . 226 240 k 240 j 017 241 017 245 223 304 006 \0 \0 0104360 035 001 B Q 240 244 240 250 304 004 [ 317 \0 z 304 004 0104400 035 313 \0 310 212 305 005 X e r o x 305 \n P r 0104420 e s s F o n t s 305 016 T i m e s R 0104440 o m a n - m r r 017 243 241 033 240 223 304 004 0104460 003 # \0 d 240 244 240 224 017 240 225 017 240 240 227 301 0104500 , D R A G O N P R O J E C T 0104520 030 F O R I N T E R N A L X 0104540 E R O X U S E O N L Y 226 304 004 0104560 g m \0 p 304 004 t 017 \0 ( 212 305 005 X e r 0104600 o x 305 \n P r e s s F o n t s 305 016 0104620 T i m e s R o m a n - m r r 017 243 0104640 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 241 0104660 225 017 241 240 227 301 001 T 226 017 240 240 227 301 002 H 0104700 E 226 017 241 240 227 301 002 D 226 017 240 240 227 301 0104720 005 R A G O N 226 017 241 240 227 301 002 M 226 0104740 017 240 240 227 301 002 A P 226 017 241 240 227 301 002 0104760 P 226 017 240 240 227 301 \b R O C E S S O R 0105000 226 305 005 X e r o x 305 \n P r e s s F 0105020 o n t s 305 \n L a u r e l - m r r 0105040 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 0105060 017 242 225 017 242 240 227 304 006 \0 262 221 \0 \0 X 304 0105100 006 \0 346 304 \0 \0 O 212 301 001 8 226 304 004 " 201 0105120 \0 P 304 006 \0 203 033 \0 \0 1 212 017 241 240 227 304 0105140 004 \b 3 002 257 017 262 223 241 235 301 \a R e s u 0105160 l t s 226 017 241 017 241 241 236 301 J : r e 0105200 t u r n e d v i a I O R e a 0105220 d R p l y ( h e a d e r , d a 0105240 t a ) ; h e a d e r = s t a n 0105260 d a r d ; d a t a [ 0 . . 3 1 0105300 ] = 0 ; 226 017 241 017 262 223 304 004 034 ; 0105320 \0 P 304 006 \0 364 u \0 \0 ] 212 017 241 240 227 301 0105340 017 d a t a [ 3 2 . . 5 3 ] = 0105360 226 305 005 X e r o x 305 \n P r e s s F 0105400 o n t s 305 016 T i m e s R o m a n 0105420 - m i r 017 243 241 033 240 223 304 004 003 # \0 P 0105440 240 244 240 224 017 243 225 017 243 240 227 301 002 r p 226 0105460 017 241 240 227 301 $ ; d a t a [ 5 4 . 0105500 . 5 9 ] = x x ; d a t a [ 0105520 6 0 . . 6 3 ] = 226 017 243 240 227 301 0105540 005 f l a g s 226 017 241 240 227 301 001 . 226 304 0105560 004 " 201 \0 P 304 006 \0 202 \f \0 \0 3 212 017 241 0105600 240 227 304 004 016 : \r + 017 262 223 301 \a I f 0105620 t h e 226 017 243 240 227 301 002 v p 226 017 241 0105640 240 227 301 l i e s i n t h e 0105660 b y p a s s a r e a o r 0105700 t h e 226 017 243 240 227 301 003 a i d 226 017 0105720 241 240 227 301 5 i s t h e i d e 0105740 n t i t y m a p p e d s p a 0105760 c e t h e n t h e v a l u 0106000 e r e t u r n e d 226 017 241 017 262 223 0106020 304 004 034 ; \0 P 304 006 \0 360 G \0 \0 ` 212 017 0106040 241 240 227 017 244 017 262 223 301 004 f o r 226 017 0106060 243 240 227 301 006 f l a g s 226 017 241 240 227 0106100 301 017 i s a s f o l l o w s : 0106120 226 017 243 240 227 301 005 D i r t y 226 017 241 0106140 240 227 301 001 = 226 017 240 240 227 301 004 T R U E 0106160 226 017 243 240 227 301 \v , K W t E n a b 0106200 l e 226 017 241 240 227 301 001 = 226 017 240 240 227 301 0106220 004 T R U E 226 017 241 240 227 301 002 , 226 017 0106240 243 240 227 301 \t U W t E n a b l e 226 017 0106260 241 240 227 301 001 = 226 017 240 240 227 301 005 F A L 0106300 S E 226 017 241 240 227 301 005 , a n d 226 017 0106320 241 017 262 223 304 004 034 ; \0 P 304 004 X i \0 $ 0106340 212 017 243 240 227 304 004 \a 312 006 005 017 262 223 301 \t 0106360 U R d E n a b l e 226 017 241 240 227 301 001 0106400 = 226 017 240 240 227 301 005 F A L S E 226 017 241 0106420 240 227 301 P . I f t h e e n t 0106440 r y i s n o t i n t h e 0106460 M a p C a c h e t h e n 0106500 t h e e r r o r b i t i n 0106520 t h e r e p l y p a c k e 0106540 t i s 226 017 241 017 262 223 304 004 034 ; \0 P 0106560 304 006 001 031 324 \0 \0 u 212 017 241 240 227 301 & s 0106600 e t , a n d d a t a [ 3 2 . 0106620 . 6 3 ] g i v e s t h e f 0106640 a u l t . 226 304 004 034 ; \0 P 304 006 \0 205 0106660 241 \0 \0 : 212 305 005 X e r o x 305 \n P r 0106700 e s s F o n t s 305 016 T i m e s R 0106720 o m a n - b i r 017 243 241 033 240 223 304 004 0106740 003 # \0 P 240 244 240 224 017 244 225 017 244 240 227 301 0106760 022 F l u s h M a p C a c h e E n 0107000 t r y 226 017 243 240 227 301 021 ( v p : V 0107020 i r t u a l P a g e ) 226 304 004 " 201 0107040 \0 P 304 006 \0 227 275 \0 \0 E 212 017 241 240 227 304 0107060 004 022 354 020 227 017 262 223 301 6 F l u s h M 0107100 a p C a c h e E n t r y c a u 0107120 s e s t h e e n t r y c o 0107140 r r e s p o n d i n g t o ( 0107160 226 017 243 240 227 301 \v a i d R e g i s t 0107200 e r 226 017 241 240 227 301 002 , 226 017 243 240 227 0107220 301 002 v p 226 017 241 240 227 301 024 ) t o 0107240 b e r e m o v e d f r o m 226 0107260 017 241 017 262 223 304 004 034 ; \0 P 304 004 : 033 \0 0107300 033 212 017 241 240 227 304 004 \b 243 004 ! 017 262 223 301 0107320 Y t h e M a p C a c h e . 0107340 I f t h e e n t r y w a s 0107360 n o t t h e r e t o b e 0107400 g i n w i t h , t h e o p 0107420 e r a t i o n h a s n o e 0107440 f f e c t . T h e 226 017 241 017 262 223 0107460 304 004 034 ; \0 P 304 004 X i \0 * 212 017 243 240 0107500 227 301 \v a i d R e g i s t e r 226 017 0107520 241 240 227 301 < r e g i s t e r m 0107540 u s t h a v e b e e n s e 0107560 t u p e a r l i e r v i a 0107600 a W r i t e R e g i s t e r 0107620 . 226 304 004 " 201 \0 P 304 006 001 > $ \0 \0 235 0107640 212 017 241 240 227 304 004 004 y 001 331 017 262 223 241 235 0107660 301 \n I n v o c a t i o n 226 017 241 017 0107700 241 241 236 301 A : I O W r i t e R q 0107720 s t ( h e a d e r , d a t a ) 0107740 ; h e a d e r [ 1 7 . . 3 1 ] 0107760 = 0 ; h e a d e r [ 3 2 . 0110000 . 3 5 ] = 226 017 243 240 227 301 001 226 017 0110020 241 240 227 301 \b d e v T y p e ; 226 017 241 0110040 017 262 223 304 004 034 ; \0 P 304 006 \0 224 s \0 \0 0110060 K 212 017 241 240 227 301 ) h e a d e r [ 3 0110100 6 . . 3 9 ] = d e v N u m ; 0110120 h e a d e r [ 4 0 . . 4 1 ] 0110140 = 226 017 243 240 227 301 001 226 017 241 240 227 301 024 0110160 1 ; h e a d e r [ 4 2 . . 6 3 0110200 ] = 226 017 243 240 227 301 002 v p 226 017 241 0110220 240 227 301 023 ; d a t a [ 0 . . 6 3 0110240 ] = x x . 226 304 004 034 ; \0 P 304 006 0110260 \0 267 263 \0 \0 b 212 017 244 240 227 301 022 F l u 0110300 s h M a p C a c h e S p a c e 226 0110320 017 243 240 227 301 025 ( a i d : A d d r 0110340 e s s S p a c e I d ) 226 304 004 " 201 0110360 \0 P 304 004 } 245 \0 G 212 017 241 240 227 304 004 \t 0110400 ) \a % 017 262 223 301 , F l u s h M a p 0110420 C a c h e S p a c e c a u s e 0110440 s e n t r i e s f o r s p 0110460 a c e 226 017 243 240 227 301 003 a i d 226 017 0110500 241 240 227 301 ( b e r e m o v e d 0110520 f r o m t h e M a p C a 0110540 c h e . I f t h e r e 226 017 241 0110560 017 262 223 304 004 034 ; \0 P 304 004 e 242 \0 ; 212 0110600 017 241 240 227 304 004 004 - 003 330 017 262 223 301 > a 0110620 r e n o e n t r i e s f o 0110640 r t h i s s p a c e t h e 0110660 o p e r a t i o n h a s n 0110700 o e f f e c t . I f 226 017 243 0110720 240 227 301 003 a i d 226 017 241 240 227 301 ' = 0110740 - 1 t h e n t h i s c a 0110760 u s e s a l l s p a c e s 0111000 t o b e 226 017 241 017 262 223 304 004 034 ; \0 0111020 P 304 006 \0 242 207 \0 \0 a 212 017 241 240 227 301 \b 0111040 f l u s h e d . 226 304 004 " 201 \0 P 304 0111060 004 K 016 \0 / 212 017 241 240 227 304 004 033 $ \f 235 0111100 017 262 223 241 235 301 \n I n v o c a t i o 0111120 n 226 017 241 017 241 241 236 301 B : I O W 0111140 r i t e R q s t ( h e a d e r , 0111160 d a t a ) ; h e a d e r [ 1 0111200 7 . . 3 1 ] = 0 ; h e a d 0111220 e r [ 3 2 . . 3 5 ] = 226 017 243 240 0111240 227 301 001 226 017 241 240 227 301 \b d e v T y 0111260 p e ; 226 017 241 017 262 223 304 004 034 ; \0 P 304 0111300 004 U > \0 7 212 017 241 240 227 304 004 024 355 020 017 0111320 017 262 223 301 ) h e a d e r [ 3 6 . . 0111340 3 9 ] = d e v N u m ; h e 0111360 a d e r [ 4 0 . . 4 1 ] = 226 017 0111400 243 240 227 301 001 226 017 241 240 227 301 5 2 ; 0111420 h e a d e r [ 4 2 . . 6 3 ] = 0111440 x x ; d a t a [ 0 . . 3 1 ] 0111460 = 0 ; d a t a [ 3 2 . . 6 0111500 3 ] 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0111520 001 [ & \0 \0 347 212 017 241 240 227 301 002 = 226 0111540 017 243 240 227 301 003 a i d 226 017 241 240 227 301 001 0111560 . 226 304 004 034 ; \0 P 304 004 Q 025 \0 : 212 017 0111600 244 240 227 301 025 W r i t e M a p C a c 0111620 h e R e g i s t e r 226 017 243 240 227 301 0111640 021 ( r e g : R e g N u m b e r 0111660 , 226 301 005 v a l u e 226 301 020 : 3 0111700 2 B i t Q u a n t i t y ) 226 304 004 0111720 " 201 \0 P 304 006 001 ! 251 \0 \0 340 212 017 241 240 0111740 227 304 004 \v v 006 005 017 262 223 301 035 W r i t 0111760 e M a p C a c h e R e g i s t e 0112000 r w r i t e s 226 017 243 240 227 301 005 0112020 v a l u e 226 017 241 240 227 301 6 i n t 0112040 o o n e o f t h e i n t 0112060 e r n a l r e g i s t e r s . 0112100 T h e s e i n c l u d e t 0112120 h e 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0112140 001 \0 261 \0 \0 316 212 017 243 240 227 301 \v a i d 0112160 R e g i s t e r 226 017 241 240 227 301 002 , 0112200 226 017 243 240 227 301 \n B y p a s s M a 0112220 s k 226 017 241 240 227 301 002 , 226 017 243 240 227 0112240 301 \r B y p a s s P a t t e r n 226 0112260 017 241 240 227 301 002 , 226 017 243 240 227 301 \n B 0112300 y p a s s B a s e 226 017 241 240 227 301 002 0112320 , 226 017 243 240 227 301 \n S h a r e d M 0112340 a s k 226 017 241 240 227 301 006 , a n d 0112360 226 017 243 240 227 301 016 S h a r e d P a t 0112400 t e r n . 226 304 004 " 201 \0 P 304 004 N 8 0112420 \0 C 212 017 241 240 227 304 004 003 224 001 331 017 262 223 0112440 241 235 301 \n I n v o c a t i o n 226 017 0112460 241 017 241 241 236 301 C : I O W r i t e 0112500 R q s t ( h e a d e r , d a t 0112520 a ) ; h e a d e r [ 1 7 . 0112540 . 3 1 ] = 0 ; h e a d e r 0112560 [ 3 2 . . 3 5 ] = 226 017 243 240 227 301 0112600 001 226 017 241 240 227 301 \b d e v T y p e 0112620 ; 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 v 0112640 303 \0 j 212 017 241 240 227 304 004 024 355 020 017 017 262 0112660 223 301 ) h e a d e r [ 3 6 . . 3 9 0112700 ] = d e v N u m ; h e a d 0112720 e r [ 4 0 . . 4 1 ] = 226 017 243 240 0112740 227 301 001 226 017 241 240 227 301 5 3 ; h e 0112760 a d e r [ 4 2 . . 6 3 ] = x 0113000 x ; d a t a [ 0 . . 3 1 ] = 0113020 0 ; d a t a [ 3 2 . . 6 3 ] 0113040 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 r 331 0113060 \0 k 212 017 241 240 227 301 002 = 226 017 243 240 227 0113100 301 005 v a l u e 226 017 241 240 227 301 001 . 226 0113120 304 004 " 201 \0 P 304 004 @ 250 \0 A 212 017 241 240 0113140 227 304 004 006 305 005 u 017 262 223 241 235 301 025 I m 0113160 p l e m e n t a t i o n N o t 0113200 e s : 226 017 241 017 241 241 236 301 G N o t 0113220 e t h a t o n l y t h e 0113240 f i r s t s i x r e g i s t 0113260 e r n u m b e r s a r e u 0113300 s e d . A n y a d d i t i o 0113320 n a l 226 017 241 017 262 223 304 004 034 ; \0 P 304 0113340 006 \0 225 273 \0 \0 236 212 017 241 240 227 301 5 c o 0113360 m m a n d s c a n b e i m 0113400 p l e m e n t e d b y a d d 0113420 i n g m o r e r e g i s t e 0113440 r s . 226 304 004 034 ; \0 P 304 006 001 202 003 \0 0113460 001 312 212 017 244 240 227 301 024 R e a d M a p 0113500 C a c h e R e g i s t e r 226 017 243 0113520 240 227 301 031 ( r e g : R e g N u m 0113540 b e r ) R e t u r n s ( 226 301 005 0113560 v a l u e 226 301 020 : 3 2 B i t Q 0113600 u a n t i t y ) 226 304 004 " 201 \0 P 304 0113620 006 \0 253 363 \0 \0 351 212 017 241 240 227 301 = R e 0113640 a d M a p C a c h e R e g i s t 0113660 e r r e t u r n s t h e c 0113700 o n t e n t s o f b y p a s 0113720 s r e g i s t e r 226 017 243 240 227 0113740 301 003 r e g 226 017 241 240 227 301 001 . 226 304 004 0113760 " 201 \0 P 304 004 b 347 \0 226 212 017 241 240 227 304 0114000 004 025 Q \b { 017 262 223 241 235 301 \n I n v o 0114020 c a t i o n 226 017 241 017 241 241 236 301 @ : 0114040 I O R e a d R q s t ( h e a d 0114060 e r , d a t a ) ; h e a d e 0114100 r [ 1 7 . . 3 1 ] = 0 ; h 0114120 e a d e r [ 3 2 . . 3 5 ] = 226 0114140 017 243 240 227 301 001 226 017 241 240 227 301 \b d e 0114160 v T y p e ; 226 017 241 017 262 223 304 004 034 ; 0114200 \0 P 304 004 Z 002 \0 223 212 017 241 240 227 301 ) h 0114220 e a d e r [ 3 6 . . 3 9 ] = 0114240 d e v N u m ; h e a d e r [ 4 0114260 0 . . 4 1 ] = 226 017 243 240 227 301 001 0114300 226 017 241 240 227 301 024 3 ; h e a d e r 0114320 [ 4 2 . . 6 3 ] = 226 017 243 240 227 0114340 301 003 r e g 226 017 241 240 227 301 023 ; d a 0114360 t a [ 0 . . 6 3 ] = x x . 226 0114400 304 004 " 201 \0 P 304 006 \0 230 241 \0 001 036 212 017 0114420 241 240 227 304 004 \b 3 002 257 017 262 223 241 235 301 \b 0114440 R e s u l t s : 226 017 241 017 241 241 236 301 0114460 I r e t u r n e d v i a I 0114500 O R e a d R p l y ( h e a d e r 0114520 , d a t a ) ; h e a d e r = 0114540 s t a n d a r d ; d a t a [ 0 0114560 . . 3 1 ] = 0 ; 226 017 241 017 262 223 0114600 304 004 034 ; \0 P 304 004 U 245 \0 260 212 017 241 240 0114620 227 301 017 d a t a [ 3 2 . . 6 3 ] 0114640 = 226 017 243 240 227 301 005 v a l u e 226 017 0114660 241 240 227 301 001 . 226 304 004 " 201 \0 P 304 004 003 0114700 254 \0 \t 212 017 241 240 227 304 004 006 305 005 u 017 262 0114720 223 241 235 301 025 I m p l e m e n t a t 0114740 i o n N o t e s : 226 017 241 017 241 241 0114760 236 301 G N o t e t h a t o n 0115000 l y t h e f i r s t s i x 0115020 r e g i s t e r n u m b e r 0115040 s a r e u s e d . A n y 0115060 a d d i t i o n a l 226 017 241 017 262 223 0115100 304 004 034 ; \0 P 304 006 \0 201 7 \0 001 f 212 017 0115120 241 240 227 301 5 c o m m a n d s c a 0115140 n b e i m p l e m e n t e d 0115160 b y a d d i n g m o r e 0115200 r e g i s t e r s . 226 304 004 " 201 \0 0115220 P 304 004 034 ; \0 d 212 240 k 240 j 017 241 017 245 0115240 223 304 006 \0 \0 035 001 B Q 240 244 240 250 304 004 [ 0115260 317 \0 z 304 004 035 313 \0 310 212 305 005 X e r o 0115300 x 305 \n P r e s s F o n t s 305 016 T 0115320 i m e s R o m a n - m r r 017 243 241 0115340 033 240 223 304 004 003 # \0 d 240 244 240 224 017 240 225 0115360 017 240 240 227 301 , D R A G O N P R O 0115400 J E C T 030 F O R I N T E R 0115420 N A L X E R O X U S E O N 0115440 L Y 226 304 004 6 v \0 ; 304 004 t 017 \0 ( 212 0115460 305 005 X e r o x 305 \n P r e s s F o 0115500 n t s 305 016 T i m e s R o m a n - 0115520 m r r 017 243 241 033 240 223 304 004 003 # \0 P 240 0115540 244 240 224 017 241 225 017 241 240 227 301 001 T 226 017 240 0115560 240 227 301 002 H E 226 017 241 240 227 301 002 D 226 0115600 017 240 240 227 301 005 R A G O N 226 017 241 240 227 0115620 301 002 M 226 017 240 240 227 301 002 A P 226 017 241 0115640 240 227 301 002 P 226 017 240 240 227 301 \b R O C 0115660 E S S O R 226 305 005 X e r o x 305 \n P 0115700 r e s s F o n t s 305 \n L a u r e 0115720 l - m r r 017 243 241 033 240 223 304 004 003 # \0 0115740 P 240 244 240 224 017 242 225 017 242 240 227 304 004 026 P 0115760 \0 \v 304 006 \0 346 304 \0 \0 O 212 301 001 9 226 304 0116000 004 034 ; \0 P 304 006 \0 203 033 \0 \0 1 212 305 005 0116020 X e r o x 305 \n P r e s s F o n t 0116040 s 305 016 T i m e s R o m a n - b r 0116060 r 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 0116100 224 017 243 225 017 243 240 227 301 036 4 . 2 C a 0116120 c h e C o n t r o l l e r F 0116140 u n c t i o n s 226 304 004 " 201 \0 P 304 0116160 004 + 267 \0 021 212 017 241 240 227 304 004 023 263 \v 253 0116200 017 262 223 301 V T h e M a p C a c 0116220 h e C o n t r o l l e r p r 0116240 o v i d e s t w o i n t e r 0116260 f a c e s : o n e t o s e 0116300 r v i c e r e q u e s t s f 0116320 r o m t h e M a p 226 017 241 017 262 0116340 223 304 004 034 ; \0 P 304 006 003 \ 323 \0 001 U 212 0116360 017 241 240 227 304 004 005 342 003 1 017 262 223 301 Y C 0116400 a c h e a n d t h e o t h 0116420 e r t o s e r v i c e r e 0116440 q u e s t s f r o m D r a g 0116460 o n s o f t w a r e t o m 0116500 a n i p u l a t e t h e M a 0116520 p T a b l e . 226 017 241 017 262 223 304 004 0116540 034 ; \0 P 304 006 \0 346 e \0 \0 ] 212 017 241 240 0116560 227 304 004 \b 032 003 \v 017 262 223 301 W F u n c 0116600 t i o n s i n t h e t w o 0116620 i n t e r f a c e s h a v e 0116640 d i f f e r e n t s p e e d 0116660 r e q u i r e m e n t s , a 0116700 n d a r e a l s o i n v o 0116720 k e d 226 017 241 017 262 223 304 004 034 ; \0 P 304 0116740 006 \0 247 261 \0 \0 E 212 017 241 240 227 304 004 \n C 0116760 \b 276 017 262 223 301 c d i f f e r e n t 0117000 l y . T h e M a p C a c 0117020 h e i n t e r f a c e f u n 0117040 c t i o n s m u s t b e r 0117060 e l a t i v e l y e f f i c i 0117100 e n t s i n c e t h e y a 0117120 r e i n v o k e d 226 017 241 017 262 223 0117140 304 004 034 ; \0 P 304 004 S j \0 # 212 017 241 240 0117160 227 304 004 \v p \a 231 017 262 223 301 ` f r e q 0117200 u e n t l y , w h i l e t h 0117220 e M a p T a b l e f u n c 0117240 t i o n s a r e n o t a s 0117260 c r i t i c a l . T h e 0117300 f o r m e r a r e i n v o k 0117320 e d v i a t r a p s 226 017 241 017 0117340 262 223 304 004 034 ; \0 P 304 006 \0 250 5 \0 \0 H 0117360 212 017 241 240 227 301 M i n i t i a t e d 0117400 b y t h e M a p C a c h 0117420 e , w h i l e t h e l a t 0117440 t e r a r e i n v o k e d 0117460 v i a p r o c e d u r e c a 0117500 l l s . 226 304 004 " 201 \0 P 304 006 \0 377 * 0117520 \0 \0 q 212 017 241 240 227 304 004 021 357 \r 022 017 262 0117540 223 301 Y T h e f i r s t t w o 0117560 f u n c t i o n s b e l o w 0117600 b e l o n g t o t h e M 0117620 a p C a c h e i n t e r f a 0117640 c e . T h e r e m a i n d 0117660 e r b e l o n g t o 226 017 241 017 0117700 262 223 304 004 034 ; \0 P 304 006 001 \0 { \0 \0 t 0117720 212 017 241 240 227 301 030 t h e M a p T 0117740 a b l e i n t e r f a c e . 226 0117760 304 004 034 ; \0 P 304 004 K 331 \0 $ 212 305 005 X 0120000 e r o x 305 \n P r e s s F o n t s 0120020 305 016 T i m e s R o m a n - b i r 0120040 017 243 241 033 240 223 304 004 003 # \0 P 240 244 240 224 0120060 017 244 225 017 244 240 227 301 016 H a n d l e M 0120100 a p F a u l t 226 305 005 X e r o x 305 0120120 \n P r e s s F o n t s 305 016 T i m 0120140 e s R o m a n - m i r 017 243 241 033 240 0120160 223 304 004 003 # \0 P 240 244 240 224 017 245 225 017 245 0120200 240 227 301 & ( a i d : A d d r e s 0120220 s S p a c e I d , v p : V i 0120240 r t u a l P a g e ) 226 304 004 " 201 \0 0120260 P 304 004 p ' \0 8 212 017 241 240 227 304 004 002 \n 0120300 001 243 017 262 223 301 ] H a n d l e M a p 0120320 F a u l t i s c a l l e d 0120340 w h e n t h e r e i s a 0120360 m i s s i n t h e M a p 0120400 C a c h e . I t f i r s t 0120420 c h e c k s i f t h e e 0120440 n t r y 226 017 241 017 262 223 304 004 034 ; \0 P 0120460 304 006 \0 325 + \0 \0 m 212 017 241 240 227 304 004 006 0120500 240 005 003 017 262 223 301 005 f o r ( 226 017 245 0120520 240 227 301 003 a i d 226 017 241 240 227 301 002 , 0120540 226 017 245 240 227 301 002 v p 226 017 241 240 227 301 X 0120560 ) i s i n t h e M a p 0120600 T a b l e . I f t h e e 0120620 n t r y i s t h e r e i t 0120640 i s s e n t t o t h e 0120660 M a p C a c h e v i a T a 0120700 k e E n t r y , 226 017 241 017 262 223 304 004 0120720 034 ; \0 P 304 006 \0 263 i \0 \0 ^ 212 017 241 240 0120740 227 301 # o t h e r w i s e a p 0120760 a g e f a u l t i s s i g 0121000 n a l e d . 226 304 004 " 201 \0 P 304 004 ] 0121020 [ \0 3 212 017 241 240 227 241 235 301 \n I n v o 0121040 c a t i o n 226 017 241 017 241 241 236 301 020 : 0121060 v i a m a p f a u l t . 226 0121100 304 004 " 201 \0 P 304 006 \0 230 u \0 \0 W 212 017 0121120 241 240 227 241 235 301 025 I m p l e m e n t 0121140 a t i o n N o t e s : 226 017 241 017 0121160 241 241 236 301 001 226 304 004 034 ; \0 P 304 006 002 0121200 216 X \0 001 215 212 017 244 240 227 301 \r H a n d 0121220 l e W P F a u l t 226 017 245 240 227 301 & 0121240 ( a i d : A d d r e s s S p a 0121260 c e I d , v p : V i r t u a 0121300 l P a g e ) 226 304 004 " 201 \0 P 304 004 & 0121320 232 \0 031 212 017 241 240 227 304 004 \a \f 005 301 017 262 0121340 223 301 1 H a n d l e W P F a u l t 0121360 i s c a l l e d w h e n 0121400 a s m a l l c a c h e f i 0121420 n d s 226 017 245 240 227 301 005 D i r t y 0121440 226 305 005 X e r o x 305 \n P r e s s F 0121460 o n t s 305 \b M a t h - m r r 017 243 0121500 241 033 240 223 304 004 003 # \0 P 240 244 240 224 017 246 0121520 225 017 246 240 227 301 001 & 226 017 245 240 227 301 \t K 0121540 W t E n a b l e 226 017 241 240 227 301 001 0121560 226 017 240 240 227 301 006 F A L S E 226 017 241 0121600 240 227 301 020 i f t h e p r o c e 0121620 s s o r 226 017 241 017 262 223 304 004 034 ; \0 P 0121640 304 006 \0 305 233 \0 \0 204 212 017 241 240 227 304 004 \t 0121660 N \b w 017 262 223 301 006 i s i n 226 017 0121700 245 240 227 301 \a k e r n e l 226 017 241 240 0121720 227 301 016 m o d e o r f i n d s 0121740 226 017 245 240 227 301 005 D i r t y 226 017 246 0121760 240 227 301 001 & 226 017 245 240 227 301 \t U W t E 0122000 n a b l e 226 017 241 240 227 301 001 226 017 240 0122020 240 227 301 005 F A L S E 226 017 241 240 227 301 030 0122040 i f t h e p r o c e s s o 0122060 r i s i n 226 017 245 240 227 301 004 u 0122100 s e r 226 017 241 240 227 301 026 m o d e . 0122120 I t f i r s t c h e c k s 0122140 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 r 214 0122160 \0 O 212 017 241 240 227 304 004 \b 022 \a 323 017 262 223 0122200 301 n i f t h e w r i t e p 0122220 r o t e c t f a u l t i s 0122240 r e a l o r s i m p l y a 0122260 r e s u l t o f t h i s 0122300 b e i n g t h e f i r s t 0122320 w r i t e t o t h e e n t 0122340 r y ' s p a g e . I f i t 0122360 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 ` 315 0122400 \0 E 212 017 241 240 227 304 004 002 245 002 H 017 262 223 0122420 301 i i s r e a l , a w r i 0122440 t e p r o t e c t f a u l t 0122460 i s s i g n a l e d , o t 0122500 h e r w i s e t h e d i r t 0122520 y b i t f o r t h e e n 0122540 t r y i s s e t i n t h 0122560 e M a p T a b l e 226 017 241 017 262 0122600 223 304 004 034 ; \0 P 304 006 003 233 W \0 002 251 212 0122620 017 241 240 227 301 I a n d t h e u p 0122640 d a t e d e n t r y i s w 0122660 r i t t e n t o t h e M a 0122700 p C a c h e v i a W r i t 0122720 e M a p C a c h e E n t r y . 226 0122740 304 004 " 201 \0 P 304 004 d 361 \0 O 212 017 241 240 0122760 227 241 235 301 \n I n v o c a t i o n 226 0123000 017 241 017 241 241 236 301 032 : v i a w r 0123020 i t e p r o t e c t f a u l 0123040 t . 226 304 004 " 201 \0 P 304 006 \0 200 \ \0 \0 0123060 k 212 017 241 240 227 304 004 001 345 001 245 017 262 223 241 0123100 235 301 025 I m p l e m e n t a t i o 0123120 n N o t e s : 226 017 241 017 241 241 236 301 0123140 G N o t e t h a t t h e 0123160 e n t r y i s g u a r a n 0123200 t e e d t o b e i n t h 0123220 e M a p T a b l e s i n c 0123240 e i t w a s 226 017 241 017 262 223 304 004 0123260 034 ; \0 P 304 006 001 003 T \0 \0 341 212 017 241 240 0123300 227 301 < i n t h e M a p C a 0123320 c h e s o w e w o n ' t 0123340 e v e r h a v e t o s i g 0123360 n a l p a g e f a u l t . 226 0123400 304 004 034 ; \0 P 304 006 \0 230 005 \0 \0 221 212 017 0123420 244 240 227 301 \t R e a d E n t r y 226 017 0123440 245 240 227 301 J ( a i d : A d d r e 0123460 s s S p a c e I d , v p : V 0123500 i r t u a l P a g e ) R e t u 0123520 r n s ( r p : R e a l P a g e 0123540 , f l a g s : F l a g s ) 226 0123560 304 004 " 201 \0 P 304 004 L | \0 Q 212 017 241 240 0123600 227 304 004 006 303 005 032 017 262 223 301 033 T h i s 0123620 o p e r a t i o n i s l i 0123640 k e M a p ( 226 017 245 240 227 301 002 p n 0123660 226 017 241 240 227 301 002 , 226 017 245 240 227 301 002 0123700 v p 226 017 241 240 227 301 9 ) i m p l e 0123720 m e n t e d b y t h e M a 0123740 p C a c h e e x c e p t t 0123760 h a t i t r e t u r n s t 0124000 h e 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0124020 \0 262 213 \0 \0 307 212 017 241 240 227 304 004 006 % 004 0124040 262 017 262 223 301 006 f l a g s 226 017 245 240 0124060 227 301 005 f l a g s 226 017 241 240 227 301 017 0124100 a n d r e a l p a g e 226 017 0124120 245 240 227 301 002 r p 226 017 241 240 227 301 \b f 0124140 o r a n 226 241 235 301 \b e x p l i 0124160 c i t 226 017 241 017 241 241 236 301 021 a d d 0124200 r e s s s p a c e i d 226 017 243 0124220 240 227 301 001 226 017 245 240 227 301 003 a i d 226 0124240 017 241 240 227 301 $ r a t h e r t h 0124260 a n f o r t h e s p a c e 0124300 c u r r e n t l y 226 017 241 017 262 223 0124320 304 004 034 ; \0 P 304 006 \0 226 z \0 \0 261 212 017 0124340 241 240 227 301 0 l o a d e d . I f 0124360 t h e r e i s n o e n t 0124400 r y c o r r e s p o n d i n g 0124420 t o ( 226 017 245 240 227 301 003 a i d 226 0124440 017 241 240 227 301 002 , 226 017 245 240 227 301 002 v 0124460 p 226 017 241 240 227 301 ) a m a p 0124500 t a b l e f a u l t i s s 0124520 i g n a l e d . 226 304 004 " 201 \0 P 304 0124540 006 001 026 264 \0 001 i 212 017 241 240 227 241 235 301 \n 0124560 I n v o c a t i o n 226 017 241 017 241 241 0124600 236 301 025 : v i a p r o c e d u 0124620 r e c a l l . 226 304 004 " 201 \0 P 304 0124640 004 d 236 \0 221 212 017 241 240 227 241 235 301 025 I m 0124660 p l e m e n t a t i o n N o t 0124700 e s : 226 017 241 017 241 241 236 301 001 226 304 004 0124720 034 ; \0 P 304 006 \0 343 245 \0 001 202 212 017 244 240 0124740 227 301 \n W r i t e E n t r y 226 017 245 0124760 240 227 301 B ( a i d : A d d r e s 0125000 s S p a c e I d , v p : V i 0125020 r t u a l P a g e , f l a g s 0125040 : F l a g s , r p : R e a 0125060 l P a g e ) 226 304 004 " 201 \0 P 304 004 < 0125100 263 \0 } 212 017 241 240 227 304 004 \t / 006 % 017 262 0125120 223 301 035 W r i t e E n t r y w r 0125140 i t e s t h e e n t r y ( 0125160 226 017 245 240 227 301 003 a i d 226 017 241 240 227 301 0125200 002 , 226 017 245 240 227 301 002 v p 226 017 241 240 0125220 227 301 002 ) 226 017 246 240 227 301 001 _ 226 017 241 0125240 240 227 301 002 ( 226 017 245 240 227 301 002 r p 226 0125260 017 241 240 227 301 002 , 226 017 245 240 227 301 005 f 0125300 l a g s 226 017 241 240 227 301 * ) i n t 0125320 o t h e M a p T a b l e . 0125340 I f a n e n t r y a l 0125360 r e a d y 226 017 241 017 262 223 304 004 034 ; \0 0125400 P 304 004 S 303 \0 277 212 017 241 240 227 301 \r e x 0125420 i s t e d f o r ( 226 017 245 240 227 0125440 301 003 a i d 226 017 241 240 227 301 002 , 226 017 0125460 245 240 227 301 002 v p 226 017 241 240 227 301 4 ) 0125500 i t i s o v e r w r i t t e 0125520 n , o t h e r w i s e a n 0125540 e w e n t r y i s a d d e 0125560 d . 226 304 004 " 201 \0 P 304 004 5 264 \0 225 212 0125600 017 241 240 227 241 235 301 \n I n v o c a t i 0125620 o n 226 017 241 017 241 241 236 301 025 : v i a 0125640 p r o c e d u r e c a l l . 0125660 226 304 004 " 201 \0 P 304 004 . 004 \0 243 212 017 241 0125700 240 227 241 235 301 025 I m p l e m e n t a 0125720 t i o n N o t e s : 226 017 241 017 241 0125740 241 236 301 001 226 240 k 240 j 017 241 017 245 223 304 0125760 006 \0 \0 035 001 B Q 240 244 240 250 304 004 [ 317 \0 0126000 z 304 004 035 313 \0 310 212 305 005 X e r o x 305 0126020 \n P r e s s F o n t s 305 016 T i m 0126040 e s R o m a n - m r r 017 243 241 033 240 0126060 223 304 004 003 # \0 d 240 244 240 224 017 240 225 017 240 0126100 240 227 301 , D R A G O N P R O J E 0126120 C T 030 F O R I N T E R N A 0126140 L X E R O X U S E O N L Y 0126160 226 304 006 \0 237 307 \0 \0 257 304 004 t 017 \0 ( 212 0126200 305 005 X e r o x 305 \n P r e s s F o 0126220 n t s 305 016 T i m e s R o m a n - 0126240 m r r 017 243 241 033 240 223 304 004 003 # \0 P 240 0126260 244 240 224 017 241 225 017 241 240 227 301 001 T 226 017 240 0126300 240 227 301 002 H E 226 017 241 240 227 301 002 D 226 0126320 017 240 240 227 301 005 R A G O N 226 017 241 240 227 0126340 301 002 M 226 017 240 240 227 301 002 A P 226 017 241 0126360 240 227 301 002 P 226 017 240 240 227 301 \b R O C 0126400 E S S O R 226 305 005 X e r o x 305 \n P 0126420 r e s s F o n t s 305 \n L a u r e 0126440 l - m r r 017 243 241 033 240 223 304 004 003 # \0 0126460 P 240 244 240 224 017 242 225 017 242 240 227 304 006 002 240 0126500 310 \0 001 O 304 006 \0 346 304 \0 \0 O 212 301 002 1 0126520 0 226 304 004 034 ; \0 P 304 006 \0 203 033 \0 \0 1 0126540 212 305 005 X e r o x 305 \n P r e s s F 0126560 o n t s 305 016 T i m e s R o m a n 0126600 - b i r 017 243 241 033 240 223 304 004 003 # \0 P 0126620 240 244 240 224 017 243 225 017 243 240 227 301 \f G e t 0126640 N e x t E n t r y 226 305 005 X e r o 0126660 x 305 \n P r e s s F o n t s 305 016 T 0126700 i m e s R o m a n - m i r 017 243 241 0126720 033 240 223 304 004 003 # \0 P 240 244 240 224 017 244 225 0126740 017 244 240 227 301 037 ( ) R e t u r n s 0126760 ( r p : R e a l P a g e , f 0127000 l a g s ) 226 304 004 " 201 \0 P 304 006 002 s 0127020 ] \0 \0 364 212 017 241 240 227 304 004 \b Q 004 202 017 0127040 262 223 301 T G e t N e x t E n t r y 0127060 r e t u r n s t h e n e x 0127100 t e n t r y f r o m t h e 0127120 m a p t a b l e a c c o r 0127140 d i n g t o s o m e e n u 0127160 m e r a t i o n 226 017 241 017 262 223 304 004 0127200 034 ; \0 P 304 004 I 3 \0 035 212 017 241 240 227 304 0127220 004 020 234 \v C 017 262 223 301 ^ o r d e r . 0127240 T h e e n u m e r a t i o 0127260 n i s n o t p e r f e c t 0127300 : s o m e e n t r i e s i 0127320 n t h e t a b l e m a y 0127340 n o t a p p e a r a n d o 0127360 n e e n t r y 226 017 241 017 262 223 304 004 0127400 034 ; \0 P 304 006 \0 210 = \0 \0 7 212 017 241 240 0127420 227 304 004 006 033 003 227 017 262 223 301 X m a y 0127440 a p p e a r m o r e t h a n 0127460 o n c e . H o w e v e r , 0127500 t h e e n u m e r a t i o n 0127520 i s g o o d e n o u g h 0127540 t o a l l o w m o s t o f 0127560 t h e 226 017 241 017 262 223 304 004 034 ; \0 P 0127600 304 006 \0 261 d \0 \0 I 212 017 241 240 227 304 004 \v 0127620 222 \b ! 017 262 223 301 b e n t r i e s 0127640 i n t h e t a b l e t o 0127660 b e l i s t e d . T h i s 0127700 o p e r a t i o n w i l l 0127720 b e u s e d b y t h e p 0127740 a g e r e p l a c e m e n t 0127760 a l g o r i t h m , 226 017 241 017 262 223 0130000 304 004 034 ; \0 P 304 006 001 ? Q \0 \0 206 212 017 0130020 241 240 227 301 017 a m o n g s t o t h 0130040 e r s . 226 304 004 " 201 \0 P 304 006 \0 361 374 0130060 \0 \0 i 212 017 241 240 227 241 235 301 \n I n v o 0130100 c a t i o n 226 017 241 017 241 241 236 301 025 : 0130120 v i a p r o c e d u r e c 0130140 a l l . 226 304 004 " 201 \0 P 304 004 u 376 \0 0130160 5 212 017 241 240 227 241 235 301 025 I m p l e m 0130200 e n t a t i o n N o t e s : 226 0130220 017 241 017 241 241 236 301 001 226 304 004 034 ; \0 P 0130240 304 006 \0 255 375 \0 \0 R 212 017 243 240 227 301 \v D 0130260 e l e t e E n t r y 226 017 244 240 227 301 0130300 = ( a i d : A d d r e s s S p 0130320 a c e I d , v p : V i r t u 0130340 a l P a g e ) R e t u r n s ( 0130360 d e l e t e d : B o o l ) 226 304 0130400 004 " 201 \0 P 304 004 D 227 \0 " 212 017 241 240 227 0130420 304 004 003 257 002 357 017 262 223 301 2 T h i s 0130440 o p e r a t i o n d e l e t e 0130460 s t h e e n t r y c o r r 0130500 e s p o n d i n g t o 226 017 244 0130520 240 227 301 003 a i d 226 017 241 240 227 301 001 | 226 0130540 017 244 240 227 301 002 v p 226 017 241 240 227 301 # 0130560 f r o m t h e M a p T a b 0130600 l e . A n a t t e m p t 0130620 t o 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0130640 \0 307 \0 \0 \0 e 212 017 241 240 227 304 004 006 324 004 0130660 W 017 262 223 301 020 m a p t h e a d 0130700 d r e s s 226 017 244 240 227 301 003 a i d 0130720 226 017 241 240 227 301 001 | 226 017 244 240 227 301 002 v 0130740 p 226 017 241 240 227 301 K f o l l o w i 0130760 n g t h i s o p e r a t i o 0131000 n w i l l r e s u l t i n 0131020 a p a g e f a u l t u n 0131040 l e s s a n i n t e r v e n 0131060 i n g 226 017 241 017 262 223 304 004 034 ; \0 P 304 0131100 006 \0 264 311 \0 \0 ^ 212 017 241 240 227 301 % o p 0131120 e r a t i o n h a s p l a c 0131140 e d a n e w e n t r y f 0131160 o r 226 017 244 240 227 301 003 a i d 226 017 241 0131200 240 227 301 001 | 226 017 244 240 227 301 002 v p 226 017 0131220 241 240 227 301 020 i n t o t h e t 0131240 a b l e . 226 304 004 " 201 \0 P 304 006 \0 217 0131260 347 \0 \0 N 212 017 241 240 227 241 235 301 \n I n v 0131300 o c a t i o n 226 017 241 017 241 241 236 301 025 0131320 : v i a p r o c e d u r e 0131340 c a l l . 226 304 004 " 201 \0 P 304 006 \0 300 0131360 216 \0 \0 m 212 017 241 240 227 241 235 301 025 I m p 0131400 l e m e n t a t i o n N o t e 0131420 s : 226 017 241 017 241 241 236 301 001 226 304 004 034 0131440 ; \0 P 304 004 \ 203 \0 ; 212 305 005 X e r o 0131460 x 305 \n P r e s s F o n t s 305 016 T 0131500 i m e s R o m a n - b r r 017 243 241 0131520 033 240 223 304 004 \t i \0 310 240 244 240 224 017 245 225 0131540 017 245 240 227 301 020 5 . T h e M a p 0131560 C a c h e 226 304 004 " 201 \0 P 304 006 001 0131600 $ 265 \0 \0 310 212 017 241 240 227 304 004 005 325 002 373 0131620 017 262 223 301 T T h e M a p C a c 0131640 h e i s a n a c c e l e r 0131660 a t o r f o r s p e e d i n 0131700 g u p m a p p i n g r e q 0131720 u e s t s i s s u e d b y 0131740 p r o c e s s o r 226 017 241 017 262 223 304 0131760 004 034 ; \0 P 304 004 F 323 \0 2 212 017 241 240 227 0132000 304 004 006 205 005 330 017 262 223 301 d c a c h e 0132020 s . I t h a s s p a c e 0132040 f o r a r o u n d 1 2 0 0 0132060 o f t h e e n t r i e s 0132100 s t o r e d i n t h e M a 0132120 p T a b l e , a n d i s 0132140 a b l e t o r e s p o n d 226 0132160 017 241 017 262 223 304 004 034 ; \0 P 304 004 6 307 \0 0132200 ( 212 017 241 240 227 304 004 022 332 020 \v 017 262 223 301 0132220 d t o r e q u e s t s i n 0132240 3 0 0 n s i n t h e c a 0132260 s e o f a h i t . I t 0132300 i s i m p l e m e n t e d 0132320 a s a s i n g l e V L S I 0132340 c h i p w h o s e m a i n 0132360 l i n k 226 017 241 017 262 223 304 004 034 ; \0 0132400 P 304 006 \0 204 = \0 \0 d 212 017 241 240 227 304 004 0132420 004 246 002 025 017 262 223 301 W w i t h t h 0132440 e o u t s i d e w o r l d 0132460 i s v i a t h e M - B u s 0132500 . T h e c h i p a l s o 0132520 c o n n e c t s t o t h e 0132540 D - B u s t o p e r m i t 0132560 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 001 S 0132600 = \0 001 \n 212 017 241 240 227 301 035 i n i t i 0132620 a l i z a t i o n a n d d e 0132640 b u g g i n g . 226 304 004 " 201 \0 P 304 0132660 004 \b a \0 \a 212 017 241 240 227 304 004 $ 361 024 242 0132700 017 262 223 301 X T w o o v e r a l l 0132720 a s p e c t s o f t h e 0132740 d e s i g n a r e w o r t h 0132760 p o i n t i n g o u t h e 0133000 r e b e c a u s e t h e y 0133020 c o n t r i b u t e t o 226 017 241 0133040 017 262 223 304 004 034 ; \0 P 304 004 S 362 \0 I 212 0133060 017 241 240 227 304 004 003 + 002 347 017 262 223 301 L s 0133100 i m p l e i m p l e m e n t a 0133120 t i o n a n d g o o d p e 0133140 r f o r m a n c e . T h e 0133160 f i r s t i s t h a t t h 0133200 e c a c h e i s 226 017 244 240 227 0133220 301 004 p u r e 226 017 241 240 227 301 023 : a 0133240 n e n t r y i s n e v e r 0133260 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 D a 0133300 \0 > 212 017 241 240 227 304 004 \r 304 \v - 017 262 223 0133320 301 b m o d i f i e d w i t h i 0133340 n t h e c a c h e o n c e 0133360 i t h a s b e e n r e a 0133400 d i n ; i f m o d i f i c 0133420 a t i o n s n e e d t o b 0133440 e m a d e , t h e e n t r 0133460 y i s 226 017 241 017 262 223 304 004 034 ; \0 P 0133500 304 004 s 026 \0 m 212 017 241 240 227 304 004 016 302 \b 0133520 005 017 262 223 301 Y f l u s h e d f r 0133540 o m t h e c a c h e , m o 0133560 d i f i e d i n t h e M a 0133600 p T a b l e , a n d r e a 0133620 d i n a g a i n . T h e 0133640 m o s t i m p o r t a n t 226 0133660 017 241 017 262 223 304 004 034 ; \0 P 304 006 \0 262 216 0133700 \0 \0 261 212 017 241 240 227 304 004 001 036 \0 353 017 262 0133720 223 301 ` c o n s e q u e n c e o 0133740 f t h i s i s t h a t t 0133760 h e c a c h e c a n h o l 0134000 d m a n y m o r e e n t r 0134020 i e s b y m a k i n g u s 0134040 e o f d y n a m i c c e l 0134060 l s . 226 017 241 017 262 223 304 004 034 ; \0 P 304 0134100 006 \0 240 234 \0 \0 247 212 017 241 240 227 304 004 \n ] 0134120 \t 216 017 262 223 301 d T h e s e c e l 0134140 l s a r e s m a l l e r t 0134160 h a n s t a t i c o n e s , 0134200 b u t a l s o m u c h m 0134220 o r e p r o n e t o a l p 0134240 h a p a r t i c l e h i t s 0134260 . H o w e v e r , 226 017 241 017 262 0134300 223 304 004 034 ; \0 P 304 004 K 001 \0 R 212 017 241 0134320 240 227 304 004 004 O 003 361 017 262 223 301 b s i n 0134340 c e t h e c a c h e n e v 0134360 e r c o n t a i n s i r r e 0134400 p l a c e a b l e d a t a , 0134420 w e d o n ' t n e e d t o 0134440 w o r r y a b o u t c o r 0134460 r e c t i n g e r r o r s 030 226 0134500 017 241 017 262 223 304 004 034 ; \0 P 304 004 & - \0 0134520 , 212 017 241 240 227 304 004 005 G 004 355 017 262 223 301 0134540 ` w e c a n g e t a w a y 0134560 b y s i m p l y d e t e c 0134600 t i n g t h e m a n d f l 0134620 u s h i n g e r r o n e o u s 0134640 e n t r i e s . A n o t h 0134660 e r c o n s e q u e n c e i 0134700 s 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 S 0134720 263 \0 f 212 017 241 240 227 304 004 006 U 004 254 017 262 0134740 223 301 a t h a t e n t r i e s 0134760 n e v e r n e e d t o b e 0135000 w r i t t e n t h r o u g h 0135020 o r w r i t t e n b a c k 0135040 , m a k i n g t h e c o n 0135060 t r o l p o r t i o n s o f 0135100 t h e 226 017 241 017 262 223 304 004 034 ; \0 P 0135120 304 004 A 300 \0 U 212 017 241 240 227 304 004 002 003 001 0135140 373 017 262 223 301 g c h i p s i m p l 0135160 e r . T h e s e c o n d 0135200 a s p e c t o f t h e d e 0135220 s i g n i s t h a t t h e 0135240 c a c h e f u n c t i o n s 0135260 a s a s l a v e t o o 0135300 t h e r d e v i c e s . 226 017 241 0135320 017 262 223 304 004 034 ; \0 P 304 004 e 265 \0 214 212 0135340 017 241 240 227 304 004 \t 246 \t 235 017 262 223 301 h T 0135360 h u s i t n e v e r h a s 0135400 t o a r b i t r a t e f o 0135420 r t h e M - B u s , a n d 0135440 a l l o f i t s i n t e 0135460 r a c t i o n s w i t h t h 0135500 e b u s a r e s i m p l e 0135520 . T h i s 226 017 241 017 262 223 304 004 034 0135540 ; \0 P 304 006 \0 243 276 \0 \0 361 212 017 241 240 227 0135560 301 @ m i n i m i z e s t h e 0135600 c o n t r o l l o g i c n e 0135620 e d e d f o r i n t e r f a 0135640 c i n g t o t h e M - B u 0135660 s . 226 304 004 034 ; \0 P 304 004 b 345 \0 254 212 0135700 305 005 X e r o x 305 \n P r e s s F o 0135720 n t s 305 016 T i m e s R o m a n - 0135740 b r r 017 243 241 033 240 223 304 004 003 # \0 P 240 0135760 244 240 224 017 246 225 017 246 240 227 301 023 5 . 1 0136000 M - B u s I n t e r f a c e 226 0136020 304 004 " 201 \0 P 304 006 \0 301 a \0 001 233 212 017 0136040 241 240 227 304 004 Z U 8 366 017 262 223 301 U D u 0136060 r i n g n o r m a l o p e r 0136100 a t i o n t h e M a p C a 0136120 c h e c o m m u n i c a t e s 0136140 w i t h t h e o u t s i d 0136160 e w o r l d e x c l u s i v 0136200 e l y 226 017 241 017 262 223 304 004 034 ; \0 P 304 0136220 004 R 223 \0 303 212 017 241 240 227 304 004 \a 177 005 233 0136240 017 262 223 301 \ o v e r t h e M - 0136260 B u s . T h e o n l y M 0136300 - B u s t r a n s a c t i o n 0136320 s r e c o g n i z e d a r e 0136340 I O R e a d s a n d I O W 0136360 r i t e s d i r e c t e d t 0136400 o 226 017 241 017 262 223 304 004 034 ; \0 P 304 004 u 0136420 020 001 7 212 017 241 240 227 304 004 003 272 003 = 017 262 0136440 223 301 ` t h e a p p r o p r i a 0136460 t e p o r t i o n o f I O 0136500 a d d r e s s s p a c e . 0136520 A s n o t e d a b o v e , 0136540 t h e M a p C a c h e a 0136560 l w a y s o p e r a t e s a 0136600 s a 226 017 241 017 262 223 304 004 034 ; \0 P 304 0136620 004 N c \0 356 212 017 241 240 227 304 004 \n 342 \n 023 0136640 017 262 223 301 e s l a v e t o s o 0136660 m e o t h e r d e v i c e 0136700 o n t h e M - B u s ( u s 0136720 u a l l y a p r o c e s s o 0136740 r c a c h e ) , s o i t 0136760 n e v e r h a s t o a r b 0137000 i t r a t e f o r 226 017 241 017 262 223 0137020 304 004 034 ; \0 P 304 004 1 037 \0 256 212 017 241 240 0137040 227 301 F t h e b u s . T h e 0137060 o n l y M - B u s s i g n 0137100 a l s i t u s e s a r e 0137120 s h o w n i n t h e t a b 0137140 l e b e l o w . 226 240 k 240 j 017 241 0137160 017 245 223 304 006 \0 \0 035 001 B Q 240 244 240 250 304 0137200 004 [ 317 \0 z 304 004 035 313 \0 310 212 305 005 X e 0137220 r o x 305 \n P r e s s F o n t s 305 0137240 016 T i m e s R o m a n - m r r 017 0137260 243 241 033 240 223 304 004 003 # \0 d 240 244 240 224 017 0137300 240 225 017 240 240 227 301 , D R A G O N P 0137320 R O J E C T 030 F O R I N T 0137340 E R N A L X E R O X U S E 0137360 O N L Y 226 304 006 \0 223 351 \0 \0 242 304 004 t 0137400 017 \0 ( 212 305 005 X e r o x 305 \n P r e 0137420 s s F o n t s 305 016 T i m e s R o 0137440 m a n - m r r 017 243 241 033 240 223 304 004 003 0137460 # \0 P 240 244 240 224 017 241 225 017 241 240 227 301 001 0137500 T 226 017 240 240 227 301 002 H E 226 017 241 240 227 301 0137520 002 D 226 017 240 240 227 301 005 R A G O N 226 0137540 017 241 240 227 301 002 M 226 017 240 240 227 301 002 A 0137560 P 226 017 241 240 227 301 002 P 226 017 240 240 227 301 0137600 \b R O C E S S O R 226 305 005 X e r o 0137620 x 305 \n P r e s s F o n t s 305 \n L 0137640 a u r e l - m r r 017 243 241 033 240 223 304 0137660 004 003 # \0 P 240 244 240 224 017 242 225 017 242 240 227 0137700 304 004 L Q \0 & 304 006 \0 346 304 \0 \0 O 212 301 0137720 002 1 1 226 304 004 " 201 \0 P 304 006 \0 203 033 \0 0137740 \0 1 212 304 004 034 ; \0 P 304 006 \0 266 \t \0 \0 0137760 F 212 017 241 240 227 301 006 S i g n a l 226 304 0140000 004 i 304 002 - 214 301 \0 226 304 004 \t i \0 214 0140020 301 \t D i r e c t i o n 226 304 004 024 340 0140040 \0 233 214 301 003 U s e 226 304 004 034 ; \0 P 304 0140060 006 002 203 371 \0 \0 377 212 017 240 240 227 301 \f M C 0140100 m d A B [ 0 . . 4 ) 226 304 004 035 r 001 0140120 U 214 301 \0 226 304 004 \t i \0 214 301 \a M 0140140 < 030 > C 226 304 004 \n 223 \0 A 214 301 035 r 0140160 e c o g n i z e I O R e a d 0140200 a n d I O W r i t e , 226 304 004 034 0140220 ; \0 P 304 006 \0 203 Z \0 \0 5 212 017 240 240 227 0140240 301 \0 226 304 004 \t i \0 214 301 \0 226 304 004 \t 0140260 i \0 214 301 \0 226 304 004 \t i \0 214 301 036 0140300 e x e c u t e I O D o n e a 0140320 n d C h a n g e F l a g s 226 304 0140340 004 034 ; \0 P 304 006 002 275 275 \0 001 $ 212 017 240 0140360 240 227 301 016 M D a t a A B [ 0 . . 3 0140400 2 ) 226 304 004 020 0 \0 337 214 301 \0 226 304 004 \t 0140420 i \0 214 301 \a M < 030 > C 226 304 004 0140440 \n 223 \0 A 214 301 " r e a d f u n c 0140460 t i o n n a m e a n d p a 0140500 r a m e t e r s , 226 304 004 034 ; \0 P 0140520 304 006 \0 374 034 \0 \0 k 212 017 240 240 227 301 \0 226 0140540 304 004 \t i \0 214 301 \0 226 304 004 \t i \0 0140560 214 301 \0 226 304 004 \t i \0 214 301 016 r e t 0140600 u r n r e s u l t s 226 304 004 034 ; 0140620 \0 P 304 006 002 005 314 \0 \0 343 212 017 240 240 227 301 0140640 \f M a s t e r [ 0 . . 6 ) 226 304 004 0140660 017 225 \0 t 214 301 \0 226 304 004 \t i \0 214 301 0140700 006 M 030 > C 226 304 004 025 225 \0 y 214 301 0140720 021 r e a d M - B u s m a s t 0140740 e r 226 304 004 034 ; \0 P 304 006 \0 204 [ \0 \0 0140760 < 212 017 240 240 227 301 004 M G n t 226 304 004 < 0141000 . 001 037 214 301 \0 226 304 004 \t i \0 214 301 006 0141020 M 030 > C 226 304 004 025 225 \0 y 214 301 037 0141040 t e l l w h e n m a s t e r 0141060 s h i p i s g r a n t e d 226 0141100 304 004 034 ; \0 P 304 006 \0 246 [ \0 \0 O 212 305 0141120 005 X e r o x 305 \n P r e s s F o n 0141140 t s 305 016 T i m e s R o m a n - b 0141160 r r 017 243 241 033 240 223 304 004 003 # \0 P 240 244 0141200 240 224 017 243 225 017 243 240 227 301 \r 5 . 2 S 0141220 t r u c t u r e 226 304 004 " 201 \0 P 304 0141240 004 | Y \0 > 212 017 241 240 227 304 004 004 _ 003 G 0141260 017 262 223 301 ] T h e M a p C a c 0141300 h e c h i p c o n s i s t s 0141320 o f t h e f o l l o w i n 0141340 g p a r t s : M - B u s i 0141360 n t e r f a c e l o g i c , 0141400 c o n t r o l r e g i s t e r 0141420 s , 226 017 241 017 262 223 304 004 034 ; \0 P 304 006 0141440 \0 315 246 \0 \0 i 212 017 241 240 227 301 [ a n 0141460 a i d a r r a y , a c a c 0141500 h e a r r a y , v i c t i m 0141520