µ±Ç°Î»ÖãºÊ×Ò³ > ¡¶¼ÆËã»ú×é³ÉÔÀí¡·¿Î³ÌϰÌâ´ð°¸ - ÇØÀÚ»ª2011-9-8
¡¶¼ÆËã»ú×é³ÉÔÀí¡·Ï°Ìâ´ð°¸ £¨ÇØÀÚ»ª£©
ÊýÁ¿ÊǶàÉÙ£¿
½â£º¸ÃоƬ1λÊý¾ÝÏߣ¬ÐÐѡͨºÍÁÐѡͨ¸÷һ룬64KµÄ´æ´¢Æ÷¶ÔÓ¦16¸ùµØÖ·Ïߣ¬ÔÚDRAMÖУ¬ÐкÍÁи´Ó㬼´µØÖ·ÏßΪ8¸ù£¬¹ÊÔÚ²»¿¼ÂǵçÔ´ÏßµÄÇé¿öÏ£¬¸ÃDRAMоƬµÄ×îСÒý½ÅÊýΪ1+1+1+8 = 11¸ö¡£
4.10 ÓÐÒ»¸ö¾ßÓÐ8¸ö´æ´¢ÌåµÄµÍλ½»²æ´æ´¢Æ÷ÖУ¬Èç¹û´¦ÀíÆ÷µÄ·ÃÎʵØÖ·ÎªÒÔϰ˽øÖƵØÖ·Öµ£¬Çó¸Ã´æ´¢Æ÷±Èµ¥Ìå´æ´¢Æ÷µÄƽ¾ù·ÃÎÊËÙ¶ÈÌá¸ß¶àÉÙ£¿£¨ºöÂÔ×î³õµÄÆô¶¯Ê±ÑÓ£©
(1)10018,10028,10038 ,¡,11008 (2)10028,10048,10068 ,¡,12008 (3)10038,10068,10118 ,¡,13008
½â£º¼ÙÉè¸Ä´æ´¢ÌåµÄµØÖ·¿Õ¼ä´Ó00008¿ªÊ¼£¬²¢ÇÒ´æ´¢ÖÜÆÚΪT£¬¹ÊÓУº
Èý¸ö·ÃÎÊÐòÁзôæ¿Õ¼äµÄ´óС¶¼Îª64¸ö´æ´¢µ¥Ôª£¬¹ÊÔÚ²»Ê¹ÓõÍλ½»²æ´æ´¢ÌåµÄÇé¿öÏ·ôæºÄʱ¶¼Îª64T¡£
(1)¸Ã·ÃÎÊÐòÁзôæÈçͼËùʾ£º
M0 M1 M2 M3 M4 M5 M6 M7 ... 10008 10108 10208 ... 11008 ... 10018 10118 10218 ... ... 10028 10128 10228 ... ... 10038 10138 ... ... ... 10048 10148 ... ... ... 10058 10158 .. ... ... 10068 10168 ... ... ... 10078 10178 ... ... Ôò·ÃÎʸöÎÐòÁÐËùÓÃʱ¼äΪT+63*T/8 = 71T/8 ¹ÊËÙ¶ÈÌáÉý±¶ÊýΪ£º(64T*8)/71T=7.2±¶ (2)¸Ã·ÃÎÊÐòÁзôæÈçͼËùʾ£º
M0 M1 M2 M3 M4 M5 M6 M7
... ... 10108 10208 ... 12008 ... ... ... ... ... ... 10028 ... ... ... ... ... ... ... ... ... 10048 ... ... ... ... ... ... .. ... ... 10068 ... ... ... ... ... ... ... ... Ôò·ÃÎʸöÎÐòÁÐËùÓÃʱ¼äΪ3T + 63*2T/8 = 75T/4 ¹ÊËÙ¶ÈÌáÉý±¶ÊýΪ£º(64T*4)/75T=3.41 (3)¸Ã·ÃÎÊÐòÁзôæÈçͼËùʾ£º
M0 M1 M2 M3 M4 M5 M6 M7
... ... ... ... 10308 ... ... 13008
µÚ 33 Ò³ ¹² 70 Ò³
... ... 10118 ... ... 10418 ... ... ... ... 10228 ... ... ... ... 10038 ... ... 10338 ... ... ... ... 10148 ... ... 10448 ... ... ... ... 10258 ... ... ... ... 10068 ... ... 10368 ... ... ... ... 10178 ... ... 10478 ... ¡¶¼ÆËã»ú×é³ÉÔÀí¡·Ï°Ìâ´ð°¸ £¨ÇØÀÚ»ª£©
Ôò·ÃÎʸöÎÐòÁÐËùÓÃʱ¼äΪ4T+ 63*3T/8= 221T/8 ¹ÊËÙ¶ÈÌáÉý±¶ÊýΪ£º(64T*8)/221T=2.3
4.11 ÓÃ16K?1λµÄDRAMоƬ¹¹³É64K?8λµÄ´æ´¢Æ÷£¬Éè´æ´¢Æ÷µÄ¶ÁдÖÜÆÚΪ0.5?s£¬ÒªÊ¹CPUÔÚ1?sÄÚÖÁÉÙ·ÃÎÊ´æ´¢Æ÷Ò»´Î£¬ÎʲÉÓÃÄÄÖÖˢз½Ê½±È½ÏºÏÊÊ£¿ÈôÿÐÐˢмä¸ô²»³¬¹ý2ms£¬¸Ã·½Ê½ÏÂË¢ÐÂÐźŵļä¸ôÊǶàÉÙ£¿
½â£ºÓÉÓÚҪʹCPUÔÚ1?sÄÚÖÁÉÙ·ÃÎÊ´æ´¢Æ÷Ò»´Î£¬¶ø´æ´¢Æ÷µÄ¶ÁдÖÜÆÚΪ0.5?s£¬¹Ê²»¿É²ÉÓü¯ÖÐʽˢз½Ê½£¬ÒòΪ¼¯ÖÐÊÇˢеÄËÀʱ¼ä»á³¬¹ý1?s£¬´Ó¶ø²»¿É±£Ö¤CPUÔÚ1?sÄÚÖÁÉÙ·ÃÎÊ´æ´¢Æ÷Ò»´Î£¬¹Ê²ÉÓÃÒ첽ˢз½Ê½±È½ÏºÏÊÊ¡£
Éè16K?1λµÄDRAMоƬ²ÉÓõØÖ·¸´Óú󣬲ÉÓÃ128*128µÄÅÅÁз½Ê½£¬Ôò½«2ms·Ö³É128¸öʱ¼ä¶Î£¬Ã¿¶ÎµÄʱ¼äΪ£º2000?s/128=15.625?s£¬¼´Ë¢ÐÂÐźŵIJúÉúÖÜÆÚΪ15.625?s
14
4.12ÉèCacheµÄÈÝÁ¿Îª2¿é,ÿ¿éÊÇÒ»¸ö32λ×Ö,Ö÷´æÈÝÁ¿ÊÇCacheÈÝÁ¿µÄ256±¶,ÆäÖÐÓÐÈç±í4.11ËùʾÊý¾Ý(µØÖ·ºÍÊý¾Ý¾ù²ÉÓÃ16½øÖƱíʾ).
±í4.11 Ö÷´æÊý¾Ý·Ö²¼Çé¿ö
µØÖ· 000000 000008 010004 01FFFC FFFFF8 Êý¾Ý 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460 ½«Ö÷´æÖÐÕâЩÊý¾Ý×°Èëµ½Cacheºó, Cache¸÷¿éÖеÄÊý¾ÝÄÚÈݼ°ÏàÓ¦µÄ±êÖ¾ÊÇʲô? (1)È«ÏàÁªÓ³Éä (2)Ö±½ÓÏàÁªÓ³Éä (3)×éÏàÁªÓ³Éä ½â£º(1)È«ÏàÁªÓ³Éä
È«ÏàÁªÓ³É䷽ʽÏ£¬Ö÷´æµÄÒ»¸öÊý¾Ý¿é¿ÉÓ³Éäµ½CacheµÄÈÎÒâÐУ¬±íÖй²ÓÐ5¸öµØÖ·£¬Êý¾Ý´ÓÖ÷´æÓ³Éäµ½CacheºóÕ¼ÓÃÆäÖеÄ5ÐУ¬¼ÙÉè¾ÍÊÇCacheµÄǰ5ÐУ¬¾ßÌå·Ö²¼ÈçϱíËùʾ¡£
CacheÐÐ 0 1 2 3 4 ±êÖ¾ 00,0000,0000,0000,0000,0000 (000000H) 00,0000,0000,0000,0000,0010(000002H) 00,0000,0100,0000,0000,0001(004001H) 00,0000,0111,1111,1111,1111(007FFFH) 11,1111,1111,1111,1111,1110(03FFFFEH) Êý¾Ý 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460
(2)Ö±½ÓÏàÁªÓ³Éä
¸Ã·½Ê½Ï£¬Ö÷´æµÄÒ»¸öÊý¾Ý¿éÖ»ÄÜÉäµ½CacheµÄÌØ¶¨ÐУ¬±íÖй²ÓÐ5¸öµØÖ·£¬Êý¾Ý´ÓÖ÷´æÓ³Éäµ½CacheºóÕ¼ÓÃÆäÖеÄÌØ¶¨µÄ5ÐС£ÓÉÓÚÒ»¸öÊý¾Ý¿éΪ32룬¼´4B£¬ËùÒÔ£¬Ö»ÐèÒªÓÃÖ÷´æµØÖ·µÄ×îºó2λ±íʾ¿éÄÚÆ«ÒƵأ¬ÓÉÓÚCacheÓÐ16KÐÐ,ËùÓÐ,È¥µô×îºó2λµØÖ·ºóµÄÁ¬Ðø14λ¾Í±íʾÖ÷´æÊý¾Ý¿éÓ³Éäµ½µÄCacheÐÐ,Ê£ÓàµÄ8λ¼´Îª¶ÔÓ¦µÄ±êÖ¾.¾ßÌå·Ö²¼ÈçϱíËùʾ¡£
µÚ 34 Ò³ ¹² 70 Ò³
¡¶¼ÆËã»ú×é³ÉÔÀí¡·Ï°Ìâ´ð°¸ £¨ÇØÀÚ»ª£©
CacheÐÐ 00 0000 0000 0000(0000ÐÐ) 00 0000 0000 0010(0002ÐÐ) 00 0000 0000 0001(0001ÐÐ) 11 1111 1111 1111(03FFFÐÐ) 11 1111 1111 1110(03FFEÐÐ) ±êÖ¾ 0000 0000 0000 0000 0000 0001 0000 0001 1111 1111 Êý¾Ý 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460
(3)×éÏàÁªÓ³É䣺£¨¼ÙÉè²ÉÓõÄÊÇËÄ·×éÏàÁª1£©
¸Ã·½Ê½Ï£¬Ö÷´æµÄÒ»¸öÊý¾Ý¿éÖ»ÄÜÉäµ½CacheµÄÌØ¶¨×éÖеÄÈÎÒâÐУ¬¼Ù¶¨Cache²ÉÓÃËÄ·×éÏàÁª£¬ÔòCache¹²·ÖΪ4K×é¡£ÓÉÓÚÒ»¸öÊý¾Ý¿éΪ32룬¼´4B£¬ËùÒÔ£¬Ö»ÐèÒªÓÃÖ÷´æµØÖ·µÄ×îºó2λ±íʾ¿éÄÚÆ«ÒƵأ¬ÓÉÓÚCacheÓÐ4K×飬Òò´Ë£¬È¥µô×îºó2λµØÖ·ºóµÄÁ¬Ðø12λ¾Í±íʾÖ÷´æÊý¾Ý¿éÓ³Éäµ½µÄCache×é,Ê£ÓàµÄ10λ¼´Îª¶ÔÓ¦µÄ±êÖ¾.¾ßÌå·Ö²¼ÈçϱíËùʾ¡£
Cache×é 0000 0000 0000(000×éÈÎÒâÐÐ) 0000 0000 0010(002×éÈÎÒâÐÐ) 0000 0000 0001(001×éÈÎÒâÐÐ) 1111 1111 1111(0FFF×éÈÎÒâÐÐ) 1111 1111 1110(0FFE×éÈÎÒâÐÐ) ±êÖ¾ 00 0000 0000 00 0000 0000 00 0000 0100 00 0000 0111 11 1111 1111 Êý¾Ý 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460
4.13 ij¼ÆËã»úCacheÓÉ64¸ö´æ´¢¿é¹¹³É,²ÉÓÃËÄ·×éÏàÁªÓ³É䷽ʽ.Ö÷´æ°üº¬4096¸ö´æ´¢¿é,ÿ¿éÓÉ128¸ö×Ö×é³É.·ÃÎʵØÖ·Îª×ÖµØÖ·. (1)ÇóÖ÷´æµØÖ·ºÍCacheµØÖ·¸÷ÓжàÉÙλ?
(2)°´ÕÕÌâÄ¿Ìõ¼þÖеÄÓ³É䷽ʽ,ÁгöÖ÷´æµØÖ·µÄ»®·ÖÇé¿ö,²¢±ê³ö¸÷²¿·ÖµÄλÊý. ½â£º(1)Ö÷´æÈÝÁ¿Îª£º4096*128=512KW ¹ÊÖ÷´æµØÖ·Î»ÊýΪ£º19λ CacheÈÝÁ¿Îª£º64*128=8KW ¹ÊCacheµØÖ·Î»ÊýΪ£º13λ
(2)ÿ¸ö×éÖаüº¬µÄ´æ´¢¿éµÄ¸öÊýΪ£º4¿é ¹ÊË÷Òý×Ö¶Î(Index)λÊýΪ£º2λ
ÓÉÓÚÿ¿éÓÉ128¸ö×Ö×é³É.·ÃÎʵØÖ·Îª×ÖµØÖ·£¬¹Ê¿éÄÚµØÖ·µÄλÊýΪ£º7λ ¹Ê±ê¼Ç²¿·Ö(Tag)µÄλÊýΪ£º10λ ÔòÖ÷´æµØÖ·»®·ÖÇé¿öÈçÏ£º
12Tag (±ê¼Ç) Index(Ë÷Òý) ¿éÄÚ×ÖµØÖ·
10 2 7
4.14 ij¼ÆËã»úÖÐÖ÷´æÈÝÁ¿Îª4MB,CacheÈÝÁ¿Îª16KB,ÿ¿é°üº¬8¸ö×Ö,ÿ×Ö32λ,Ó³É䷽ʽ²ÉÓÃ4·×éÏàÁª.ÉèCacheµÄ³õʼ״̬Ϊ¿Õ,CPUÒÀ´Î´ÓÖ÷´æµÚ0,1,2,¡,99ºÅµ¥Ôª¶Á³ö100¸ö×Ö(ÿ´Î¶ÁÒ»¸ö×Ö),²¢Öظ´´Ë²Ù×÷10´Î.Ìæ»»Ëã·¨²ÉÓÃLRU. (1)ÇóCacheµÄÃüÖÐÂÊ
(2)ÈôCache±ÈÖ÷´æ¿é10±¶,·ÖÎö²ÉÓÃCacheºó´æ´¢·ÃÎÊËÙ¶ÈÌá¸ßÁ˶àÉÙ?
½â£º(1)0,1,2,¡,99ºÅµ¥Ôª¹²100¸ö×Ö£¬Ã¿¿é8¸ö×Ö£¬¹Ê100¸ö×Ö±»·ÖÅäÔÚ13¿éÄÚ¡£
CacheÖÐÄÜ´æ·ÅµÄÖ÷´æ¿éÊýΪ£º16KB/8=2K¿é
µÚ 35 Ò³ ¹² 70 Ò³
¡¶¼ÆËã»ú×é³ÉÔÀí¡·Ï°Ìâ´ð°¸ £¨ÇØÀÚ»ª£©
ÒòΪÊÇËÄ·×éÏàÁª£¬¹Êÿ×éÖаüº¬µÄ¿éÊýΪ£º2K/4=512¿é
ÓÉÓÚCacheµÄ³õʼ״̬Ϊ¿Õ£¬¸ù¾ÝÇ°ÃæµÄ·ÖÎö£¬13¿éÊý¾Ýµ÷ÈëCacheºó²»»á±»µ÷³ö£¬ËùÓÐ10´Î·ÃÎÊÖУ¬Ã¿¿éµÚÒ»´Î·ÃÎʲ»ÃüÖÐÍ⣬ÆäÓà·ÃÎʾù¿ÉÃüÖУ¬Òò´Ë10´ÎÑ»··ÃÎʹ²·ÃÎÊÄÚ´æ100*10 =1000´Î£¬ÆäÖв»ÃüÖеĴÎÊýÖ»ÓÐ13´Î¡£ ÔòCacheµÄÃüÖÐÂÊΪ£º(1000-13)/1000=98.7%
(2)Éè·ÃÎÊCacheµÄ·ÃÎÊʱ¼äΪT£¨·ÃÎÊÒ»¸öÊý¾Ýµ¥ÔªËùÓõÄʱ¼ä£©£¬Ôò·ÃÎÊÖ÷´æµÄ·ÃÎÊʱ¼äΪ10T,¹ÊÓУº
ʹÓÃCacheºó·Ã´æËùÓÃʱ¼äΪ£ºT2=13*10T+(1000-13)*T=1117T ²»Ê¹ÓÃCache·ÃÎʺÄʱΪ£ºT1=10000T
¹ÊʹÓÃÁËCacheºóËÙ¶ÈÌá¸ßÁË£º10000T/1117T=8.95±¶
4.15 ¼Ù¶¨Ä³Êý×éÔªËØ°´ÐÐÓÅÏÈ˳Ðò´æ·ÅÔÚÖ÷´æÖÐ,ÔòÒÔÏÂÁ½¶Îα´úÂëAºÍBÖÐ: (1)·ÖÎöÁ½¶Î´úÂëÖжÔÊý×é·ÃÎʵÄʱ¼ä¾Ö²¿ÐԺͿռä¾Ö²¿ÐÔ. (2)·ÖÎö±äÁ¿SUMµÄʱ¼ä¾Ö²¿ÐԺͿռä¾Ö²¿ÐÔ.
(3)·ÖÎöforÑ»·Ìå¶ÔÖ¸Áî·ÃÎʵÄʱ¼ä¾Ö²¿ÐԺͿռä¾Ö²¿ÐÔ.
Int sum_array_A(int a[M][N]) { Int i,j,sum=0; For (i=0;i ½â£º(1)ÓÉÓÚÊý×éÔÚÄÚ´æÖа´ÕÕÐÐÓÅÏÈ´æ·Å,Êý¾Ý°´¿é´ÓÖ÷´æÓ³Éäµ½CacheÖС£ ¶ø³ÌÐòAÖжÔÊý×é·ÃÎÊÊǰ´ÐÐÓÅÏÈ·½Ê½½øÐе쬹ÊÓкܺõĿռä¾Ö²¿ÐÔ£¬µ«ÓÉÓÚÿ¸öÊý×éÔªËØÖ»Ê¹ÓÃÒ»´Î£¬¹Ê²»´æÔÚʱ¼ä¾Ö²¿ÐÔ£» ¶ø³ÌÐòBÖжÔÊý×é·ÃÎÊÊǰ´ÁÐÓÅÏÈ·½Ê½½øÐе쬹ÊûÓпռä¾Ö²¿ÐÔ£¬ÓÉÓÚÿ¸öÊý×éÔªËØÖ»Ê¹ÓÃÒ»´Î£¬¹Ê²»´æÔÚʱ¼ä¾Ö²¿ÐÔ£» (2)±äÁ¿SUMÊǵ¥¸ö±äÁ¿£¬Òò´ËÁ½¶Î³ÌÐò¶Ô¸Ã±äÁ¿µÄ·ÃÎʲ»´æÔÚ¿Õ¼ä¾Ö²¿ÐÔ£¬ÓÉÓÚ±äÁ¿ÔÚÑ»·Öб»¶à´ÎʹÓ㬹ʾßÓÐÁ½ºÃµÄʱ¼ä¾Ö²¿ÐÔ¡£ (3)ÔÚforÑ»·ÖжÔÖ¸Áî·ÃÎʶ¼ºÜºÃµÄÌåÏÖÁËʱ¼ä¾Ö²¿ÐԺͿռä¾Ö²¿ÐÔ¡£ 4.16 Ö÷´æÈÝÁ¿Îª8MB£¬Ðé´æÈÝÁ¿Îª2GB£¬·ÖÒ³¹ÜÀíʱÈôÒ³Ãæ´óСΪ4KB£¬Çó³ö¶ÔÓ¦µÄVPN¡¢VPO¡¢PPN¡¢PPOµÄλÊý¡£ ½â£ºÐé´æËù°üº¬µÄÒ³ÃæÊýΪ£º2GB/4KB=512KÒ³ ¹ÊVPNµÄλÊýΪ£º19λ ÓÉÓÚÒ³ÃæµÄ´óСΪ4KB£¬¹ÊVPOºÍPPOµÄλÊý¾ùΪ£º12λ Ö÷´æËù°üº¬µÄÒ³Ãæ¸öÊýΪ£º8MB/4KB=2K ¹ÊPPNµÄλÊýΪ£º11λ 4.17 ijҳʽÐéÄâ´æ´¢Æ÷¹²8Ò³,ÿҳ1KB,Ö÷´æÈÝÁ¿Îª4KB,Ò³±íÈç±í4.12Ëùʾ. µÚ 36 Ò³ ¹² 70 Ò³
¹²·ÖÏí92ƪÏà¹ØÎĵµ