锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
瀛楃蹇呴』緙栫爜鍚庢墠鑳借璁$畻鏈哄鐞嗐傝綆楁満浣跨敤鐨勭己鐪佺紪鐮佹柟寮忓氨鏄綆楁満鐨勫唴鐮併傛棭
鏈熺殑璁$畻鏈轟嬌鐢?浣嶇殑ASCII緙栫爜錛屼負浜嗗鐞嗘眽瀛楋紝紼嬪簭鍛樿璁′簡鐢ㄤ簬綆浣撲腑鏂囩殑GB2312
鍜岀敤浜庣箒浣撲腑鏂囩殑big5銆?
GB2312(1980騫?涓鍏辨敹褰曚簡7445涓瓧絎︼紝鍖呮嫭6763涓眽瀛楀拰682涓叾瀹冪鍙楓傛眽瀛楀尯鐨勫唴
鐮佽寖鍥撮珮瀛楄妭浠嶣0-F7錛屼綆瀛楄妭浠嶢1-FE錛屽崰鐢ㄧ殑鐮佷綅鏄?2*94=6768銆傚叾涓湁5涓┖浣嶆槸
D7FA-D7FE銆?
GB2312鏀寔鐨勬眽瀛楀お灝戙?995騫寸殑姹夊瓧鎵╁睍瑙勮寖GBK1.0鏀跺綍浜?1886涓鍙鳳紝瀹冨垎涓烘眽瀛?
鍖哄拰鍥懼艦絎﹀彿鍖恒傛眽瀛楀尯鍖呮嫭21003涓瓧絎︺?000騫寸殑GB18030鏄彇浠BK1.0鐨勬寮忓浗瀹?
鏍囧噯銆傝鏍囧噯鏀跺綍浜?7484涓眽瀛楋紝鍚屾椂榪樻敹褰曚簡钘忔枃銆佽挋鏂囥佺淮鍚懼皵鏂囩瓑涓昏鐨勫皯鏁版皯
鏃忔枃瀛椼傜幇鍦ㄧ殑PC騫沖彴蹇呴』鏀寔GB18030錛屽宓屽叆寮忎駭鍝佹殏涓嶄綔瑕佹眰銆傛墍浠ユ墜鏈恒丮P3涓
鑸彧鏀寔GB2312銆?
浠嶢SCII銆丟B2312銆丟BK鍒癎B18030錛岃繖浜涚紪鐮佹柟娉曟槸鍚戜笅鍏煎鐨勶紝鍗沖悓涓涓瓧絎﹀湪榪欎簺鏂?
妗堜腑鎬繪槸鏈夌浉鍚岀殑緙栫爜錛屽悗闈㈢殑鏍囧噯鏀寔鏇村鐨勫瓧絎︺傚湪榪欎簺緙栫爜涓紝鑻辨枃鍜屼腑鏂囧彲浠?
緇熶竴鍦板鐞嗐傚尯鍒嗕腑鏂囩紪鐮佺殑鏂規硶鏄珮瀛楄妭鐨勬渶楂樹綅涓嶄負0銆傛寜鐓х▼搴忓憳鐨勭О鍛鹼紝
GB2312銆丟BK鍒癎B18030閮藉睘浜庡弻瀛楄妭瀛楃闆?(DBCS)銆?
鏈夌殑涓枃Windows鐨勭己鐪佸唴鐮佽繕鏄疓BK錛屽彲浠ラ氳繃GB18030鍗囩駭鍖呭崌綰у埌GB18030銆備笉榪?
GB18030鐩稿GBK澧炲姞鐨勫瓧絎︼紝鏅氫漢鏄緢闅劇敤鍒扮殑錛岄氬父鎴戜滑榪樻槸鐢℅BK鎸囦唬涓枃
Windows鍐呯爜銆?
榪欓噷榪樻湁涓浜涚粏鑺傦細
GB2312鐨勫師鏂囪繕鏄尯浣嶇爜錛屼粠鍖轟綅鐮佸埌鍐呯爜錛岄渶瑕佸湪楂樺瓧鑺傚拰浣庡瓧鑺備笂鍒嗗埆鍔犱笂A0銆?
鍦―BCS涓紝GB鍐呯爜鐨勫瓨鍌ㄦ牸寮忓緇堟槸big endian錛屽嵆楂樹綅鍦ㄥ墠銆?
GB2312鐨勪袱涓瓧鑺傜殑鏈楂樹綅閮芥槸1銆備絾絎﹀悎榪欎釜鏉′歡鐨勭爜浣嶅彧鏈?28*128=16384涓傛墍浠?
GBK鍜孏B18030鐨勪綆瀛楄妭鏈楂樹綅閮藉彲鑳戒笉鏄?銆備笉榪囪繖涓嶅獎鍝岲BCS瀛楃嫻佺殑瑙f瀽錛氬湪璇誨彇
DBCS瀛楃嫻佹椂錛屽彧瑕侀亣鍒伴珮浣嶄負1鐨勫瓧鑺傦紝灝卞彲浠ュ皢涓嬩袱涓瓧鑺備綔涓轟竴涓弻瀛楄妭緙栫爜錛岃?
涓嶇敤綆′綆瀛楄妭鐨勯珮浣嶆槸浠涔堛?
浜屻佸叧浜庣紪鐮?
鎵璋撶紪鐮侊紝鏄互鍥哄畾鐨勯『搴忔帓鍒楀瓧絎︼紝騫朵互姝ゅ仛涓鴻褰曘佸瓨璐佷紶閫掋佷氦鎹㈢殑緇熶竴鍐呴儴
鐗瑰緛錛岃繖涓瓧絎︽帓鍒楅『搴忚縐頒負“緙栫爜”銆傚拰涓枃瀛楀簱鏈夊叧鐨勫父瑙佺紪鐮佹湁錛氬ぇ闄咷B鐮併?
GBK鐮併佹腐鍙癇IG-5鐮佺瓑銆備笅闈㈢畝瑕佷粙緇嶄竴涓嬨?
GB鐮?
鍏ㄧО鏄疓B2312-80銆婁俊鎭氦鎹㈢敤姹夊瓧緙栫爜瀛楃闆?鍩烘湰闆嗐嬶紝1980騫村彂甯冿紝鏄腑鏂囦俊鎭
鐞嗙殑鍥藉鏍囧噯錛屽湪澶ч檰鍙婃搗澶栦嬌鐢ㄧ畝浣撲腑鏂囩殑鍦板尯錛堝鏂板姞鍧$瓑錛夋槸寮哄埗浣跨敤鐨勫敮涓涓?
鏂囩紪鐮併侾-Windows3.2鍜岃嫻鏋淥S灝辨槸浠B2312涓哄熀鏈眽瀛楃紪鐮侊紝 Windows 95/98鍒欎互GBK
涓哄熀鏈眽瀛楃紪鐮併佷絾鍏煎鏀寔GB2312銆?
GB鐮佸叡鏀跺綍6763涓畝浣撴眽瀛椼?82涓鍙鳳紝鍏朵腑姹夊瓧閮ㄥ垎錛氫竴綰у瓧3755錛屼互鎷奸煶鎺掑簭錛屼簩
綰у瓧3008錛屼互鍋忔梺鎺掑簭銆傝鏍囧噯鐨勫埗瀹氬拰搴旂敤涓鴻鑼冦佹帹鍔ㄤ腑鏂囦俊鎭寲榪涚▼璧蜂簡寰堝ぇ浣?
鐢ㄣ?
1990騫村張鍒跺畾浜嗙箒浣撳瓧鐨勭紪鐮佹爣鍑咷B12345-90銆婁俊鎭氦鎹㈢敤姹夊瓧緙栫爜瀛楃闆?絎竴杈呭姪
闆嗐嬶紝鐩殑鍦ㄤ簬瑙勮寖蹇呴』浣跨敤綣佷綋瀛楃殑鍚勭鍦哄悎錛屼互鍙婂彜綾嶆暣鐞嗙瓑銆傝鏍囧噯鍏辨敹褰?866
涓眽瀛楋紙姣擥B2312澶?03涓瓧錛屽叾瀹冨巶鍟嗙殑瀛楀簱澶у涓嶅寘鎷繖浜涘瓧錛夛紝綰箒浣撶殑瀛楀ぇ姒傛湁
2200浣欎釜銆?
Unicode緙栫爜(Universal Multiple Octet Coded Character Set)
鍥介檯鏍囧噯緇勭粐浜?984騫?鏈堟垚绔婭SO/IEC JTC1/SC2/WG2宸ヤ綔緇勶紝閽堝鍚勫浗鏂囧瓧銆佺鍙瘋繘琛?
緇熶竴鎬х紪鐮併?991騫寸編鍥借法鍥藉叕鍙告垚绔婾nicode Consortium錛屽茍浜?991騫?0鏈堜笌WG2杈炬垚
鍗忚錛岄噰鐢ㄥ悓涓緙栫爜瀛楅泦銆傜洰鍓峌nicode鏄噰鐢?6浣嶇紪鐮佷綋緋伙紝鍏跺瓧絎﹂泦鍐呭涓嶪SO10646
鐨凚MP錛圔asic Multilingual Plane錛夌浉鍚屻俇nicode浜?992騫?鏈堥氳繃DIS錛圖raf
International Standard錛夛紝鐩墠鐗堟湰V2.0浜?996鍏竷錛屽唴瀹瑰寘鍚鍙?811涓紝姹夊瓧
20902涓紝闊╂枃鎷奸煶11172涓紝閫犲瓧鍖?400涓紝淇濈暀20249涓紝鍏辮65534涓?
GBK緙栫爜(Chinese Internal Code Specification)
GBK緙栫爜鏄腑鍥藉ぇ闄嗗埗璁㈢殑銆佺瓑鍚屼簬UCS鐨勬柊鐨勪腑鏂囩紪鐮佹墿灞曞浗瀹舵爣鍑嗐侴BK宸ヤ綔灝忕粍浜?
1995騫?0鏈堬紝鍚屽勾12鏈堝畬鎴怗BK瑙勮寖銆傝緙栫爜鏍囧噯鍏煎GB2312錛屽叡鏀跺綍姹夊瓧21003涓佺
鍙?83涓紝騫舵彁渚?894涓犲瓧鐮佷綅錛岀畝銆佺箒浣撳瓧铻嶄簬涓搴撱?
Windows95/98綆浣撲腑鏂囩増鐨勫瓧搴撹〃灞傜紪鐮佸氨閲囩敤鐨勬槸GBK錛岄氳繃GBK涓嶶CS涔嬮棿涓涓瀵瑰簲鐨?
鐮佽〃涓庡簳灞傚瓧搴撹仈緋匯?
BIG5緙栫爜
鏄洰鍓嶅彴婀俱侀娓湴鍖烘櫘閬嶄嬌鐢ㄧ殑涓縐嶇箒浣撴眽瀛楃殑緙栫爜鏍囧噯錛屽寘鎷?40涓鍙鳳紝涓綰ф眽瀛?
5401涓佷簩綰ф眽瀛?652涓紝鍏辮13060涓眽瀛椼?
鏂規748緙栫爜
鎵璋?48緙栫爜錛屾槸鎸囨柟姝g郴緇熷湪闀挎湡搴旂敤榪囩▼涓疄鏂姐佸埗瀹氱殑綆銆佺箒浣撳瓧搴撶紪鐮佹柟寮忥紝綆
浣撳吋瀹笹B2312涓旀湁鎵鎵╁睍錛屽叡7156瀛楋紱綣佷綋鍏煎GB12345騫舵墿灞曞叏閮˙IG-5姹夊瓧錛岃14943
瀛椼傛澶栵紝鏂規748緙栫爜榪樺惈鏈変赴瀵岀殑絎﹀彿搴撱?48緙栫爜浠呯敤浜庢柟姝h蔣浠跺拰緋葷粺銆?br>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/coffeemay/archive/2006/04/17/666213.aspx
綰挎у湴鍧錛圠inear Address錛?鏄昏緫鍦板潃鍒扮墿鐞嗗湴鍧鍙樻崲涔嬮棿鐨勪腑闂村眰銆傜▼搴忎唬鐮佷細浜х敓閫昏緫鍦板潃錛屾垨鑰呰鏄涓殑鍋忕Щ鍦板潃錛屽姞涓婄浉搴旀鐨勫熀鍦板潃灝辯敓鎴愪簡涓涓嚎鎬у湴鍧銆傚鏋滃惎鐢ㄤ簡鍒嗛〉鏈哄埗錛岄偅涔堢嚎鎬у湴鍧鍙互鍐嶇粡鍙樻崲浠ヤ駭鐢熶竴涓墿鐞嗗湴鍧銆傝嫢娌℃湁鍚敤鍒嗛〉鏈哄埗錛岄偅涔堢嚎鎬у湴鍧鐩存帴灝辨槸鐗╃悊鍦板潃銆侷ntel 80386鐨勭嚎鎬у湴鍧絀洪棿瀹歸噺涓?G錛?鐨?2嬈℃柟鍗?2鏍瑰湴鍧鎬葷嚎瀵誨潃錛夈?/p>
鐗╃悊鍦板潃錛圥hysical Address錛?鏄寚鍑虹幇鍦–PU澶栭儴鍦板潃鎬葷嚎涓婄殑瀵誨潃鐗╃悊鍐呭瓨鐨勫湴鍧淇″彿錛屾槸鍦板潃鍙樻崲鐨勬渶緇堢粨鏋滃湴鍧銆傚鏋滃惎鐢ㄤ簡鍒嗛〉鏈哄埗錛岄偅涔堢嚎鎬у湴鍧浼氫嬌鐢ㄩ〉鐩綍鍜岄〉琛ㄤ腑鐨勯」鍙樻崲鎴愮墿鐞嗗湴鍧銆傚鏋滄病鏈夊惎鐢ㄥ垎欏墊満鍒訛紝閭d箞綰挎у湴鍧灝辯洿鎺ユ垚涓虹墿鐞嗗湴鍧浜嗐?/p>
铏氭嫙鍐呭瓨錛圴irtual Memory錛?鏄寚璁$畻鏈哄憟鐜板嚭瑕佹瘮瀹為檯鎷ユ湁鐨勫唴瀛樺ぇ寰楀鐨勫唴瀛橀噺銆傚洜姝ゅ畠鍏佽紼嬪簭鍛樼紪鍒跺茍榪愯姣斿疄闄呯郴緇熸嫢鏈夌殑鍐呭瓨澶у緱澶氱殑紼嬪簭銆傝繖浣垮緱璁稿澶у瀷欏圭洰涔熻兘澶熷湪鍏鋒湁鏈夐檺鍐呭瓨璧勬簮鐨勭郴緇熶笂瀹炵幇銆備竴涓緢鎭板綋鐨勬瘮鍠繪槸錛氫綘涓嶉渶瑕佸緢闀跨殑杞ㄩ亾灝卞彲浠ヨ涓鍒楃伀杞︿粠涓婃搗寮鍒板寳浜備綘鍙渶瑕佽凍澶熼暱鐨勯搧杞紙姣斿璇?鍏噷錛夊氨鍙互瀹屾垚榪欎釜浠誨姟銆傞噰鍙栫殑鏂規硶鏄妸鍚庨潰鐨勯搧杞ㄧ珛鍒婚摵鍒扮伀杞︾殑鍓嶉潰錛屽彧瑕佷綘鐨勬搷浣滆凍澶熷揩騫惰兘婊¤凍瑕佹眰錛屽垪杞﹀氨鑳借薄鍦ㄤ竴鏉″畬鏁寸殑杞ㄩ亾涓婅繍琛屻傝繖涔熷氨鏄櫄鎷熷唴瀛樼鐞嗛渶瑕佸畬鎴愮殑浠誨姟銆傚湪Linux 0.11鍐呮牳涓紝緇欐瘡涓▼搴忥紙榪涚▼錛夐兘鍒掑垎浜嗘誨閲忎負64MB鐨勮櫄鎷熷唴瀛樼┖闂淬傚洜姝ょ▼搴忕殑閫昏緫鍦板潃鑼冨洿鏄?x0000000鍒?x4000000銆?/p>
鏈夋椂鎴戜滑涔熸妸閫昏緫鍦板潃縐頒負铏氭嫙鍦板潃銆傚洜涓轟笌铏氭嫙鍐呭瓨絀洪棿鐨勬蹇電被浼鹼紝閫昏緫鍦板潃涔熸槸涓庡疄闄呯墿鐞嗗唴瀛樺閲忔棤鍏崇殑銆?
閫昏緫鍦板潃涓庣墿鐞嗗湴鍧鐨?#8220;宸窛”鏄?xC0000000錛屾槸鐢變簬铏氭嫙鍦板潃->綰挎у湴鍧->鐗╃悊鍦板潃鏄犲皠姝eソ宸繖涓箋傝繖涓兼槸鐢辨搷浣滅郴緇熸寚瀹氱殑銆?/p>
铏氭嫙鍦板潃鍒扮墿鐞嗗湴鍧鐨勮漿鍖栨柟娉曟槸涓庝綋緋葷粨鏋勭浉鍏崇殑銆備竴鑸潵璇存湁鍒嗘銆佸垎欏典袱縐嶆柟寮忋備互鐜板湪鐨剎86 cpu涓轟緥錛屽垎孌靛垎欏甸兘鏄敮鎸佺殑銆侻emory Mangement Unit璐熻矗浠庤櫄鎷熷湴鍧鍒扮墿鐞嗗湴鍧鐨勮漿鍖栥傞昏緫鍦板潃鏄鏍囪瘑+孌靛唴鍋忕Щ閲忕殑褰㈠紡錛孧MU閫氳繃鏌ヨ孌佃〃錛屽彲浠ユ妸閫昏緫鍦板潃杞寲涓虹嚎鎬у湴鍧銆傚鏋渃pu娌℃湁寮鍚垎欏靛姛鑳斤紝閭d箞綰挎у湴鍧灝辨槸鐗╃悊鍦板潃錛涘鏋渃pu寮鍚簡鍒嗛〉鍔熻兘錛孧MU榪橀渶瑕佹煡璇㈤〉琛ㄦ潵灝嗙嚎鎬у湴鍧杞寲涓虹墿鐞嗗湴鍧錛?br>閫昏緫鍦板潃 ----錛堟琛級---> 綰挎у湴鍧 鈥?錛堥〉琛級鈥?gt; 鐗╃悊鍦板潃
涓嶅悓鐨勯昏緫鍦板潃鍙互鏄犲皠鍒板悓涓涓嚎鎬у湴鍧涓婏紱涓嶅悓鐨勭嚎鎬у湴鍧涔熷彲浠ユ槧灝勫埌鍚屼竴涓墿鐞嗗湴鍧涓婏紱鎵浠ユ槸澶氬涓鐨勫叧緋匯傚彟澶栵紝鍚屼竴涓嚎鎬у湴鍧錛屽湪鍙戠敓鎹㈤〉浠ュ悗錛屼篃鍙兘琚噸鏂拌杞藉埌鍙﹀涓涓墿鐞嗗湴鍧涓娿傛墍浠ヨ繖縐嶅瀵逛竴鐨勬槧灝勫叧緋諱篃浼氶殢鏃墮棿鍙戠敓鍙樺寲銆?/p>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/leves1989/archive/2008/11/15/3305402.aspx
鍘熸枃鍦板潃錛?a >http://duartes.org/gustavo/blog/
[娉細鏈漢姘村鉤鏈夐檺錛屽彧濂芥寫涓浜涘浗澶栭珮鎵嬬殑綺懼僵鏂囩珷緲昏瘧涓涓嬨備竴鏉ヨ嚜宸卞涔狅紝浜屾潵涓庡ぇ瀹跺垎浜俔
鏈枃綆瑕佺殑灞曠ず浜嗙幇浠ntel澶勭悊鍣ㄧ殑CPU cache鏄浣曠粍緇囩殑銆傛湁鍏砪ache鐨勮璁哄線寰緙轟箯鍏蜂綋鐨勫疄渚嬶紝浣垮緱涓浜涚畝鍗曠殑姒傚康鍙樺緱鎵戞湐榪風銆備篃璁告槸鎴戝彲鐖辯殑灝忚剳鐡滄湁鐐硅繜閽濆惂錛屼絾涓嶇鎬庢牱錛岃嚦灝戜笅闈㈣榪頒簡鏁呬簨鐨勫墠涓鍗婏紝鍗矯ore 2鐨?L1 cache鏄浣曡璁塊棶鐨勶細
L1 cache – 32KB錛?璺粍鐩歌仈錛?4瀛楄妭緙撳瓨綰?/p>
1. 鐢辯儲寮曟嫞閫夌紦瀛樼粍錛堣錛?/p>
鍦╟ache涓殑鏁版嵁鏄互緙撳瓨綰匡紙line錛変負鍗曚綅緇勭粐鐨勶紝涓鏉$紦瀛樼嚎瀵瑰簲浜庡唴瀛樹腑涓涓繛緇殑瀛楄妭鍧椼傝繖涓猚ache浣跨敤浜?4瀛楄妭鐨勭紦瀛樼嚎銆傝繖浜涚嚎琚繚瀛樺湪cache bank涓紝涔熷彨璺紙way錛夈傛瘡涓璺兘鏈変竴涓笓闂ㄧ殑鐩綍錛坉irectory錛夌敤鏉ヤ繚瀛樹竴浜涚櫥璁頒俊鎭備綘鍙互鎶婃瘡涓璺繛鍚屽畠鐨勭洰褰曟兂璞℃垚鐢靛瓙琛ㄦ牸涓殑涓鍒楋紝鑰岃〃鐨勪竴琛屾瀯鎴愪簡cache鐨勪竴緇勶紙set錛夈傚垪涓殑姣忎竴涓崟鍏冿紙cell錛夐兘鍚湁涓鏉$紦瀛樼嚎錛岀敱涓庝箣瀵瑰簲鐨勭洰褰曞崟鍏冭窡韙鐞嗐傚浘涓殑cache鏈?4 緇勩佹瘡緇?璺紝鍥犳鏈?12涓惈鏈夌紦瀛樼嚎鐨勫崟鍏冿紝鍚堣32KB鐨勫瓨鍌ㄧ┖闂淬?/p>
鍦╟ache鐪間腑錛岀墿鐞嗗唴瀛樿鍒嗗壊鎴愪簡璁稿4KB澶у皬鐨勭墿鐞嗗唴瀛橀〉錛坧age錛夈傛瘡涓欏甸兘鍚湁4KB / 64 bytes == 64鏉$紦瀛樼嚎銆傚湪涓涓?KB鐨勯〉涓紝絎?鍒?3瀛楄妭鏄涓鏉$紦瀛樼嚎錛岀64鍒?27瀛楄妭鏄浜屾潯緙撳瓨綰匡紝浠ユ綾繪帹銆傛瘡涓欏甸兘閲嶅鐫榪欑鍒掑垎錛屾墍浠ョ0欏電3鏉$紦瀛樼嚎涓庣1欏電3鏉$紦瀛樼嚎鏄笉鍚岀殑銆?/p>
鍦ㄥ叏鐩歌仈緙撳瓨錛坒ully associative cache錛変腑錛屽唴瀛樹腑鐨勪換鎰忎竴鏉$紦瀛樼嚎閮藉彲浠ヨ瀛樺偍鍒頒換鎰忕殑緙撳瓨鍗曞厓涓傝繖縐嶅瓨鍌ㄦ柟寮忓崄鍒嗙伒媧伙紝浣嗕篃浣垮緱瑕佽闂畠浠椂錛屾绱㈢紦瀛樺崟鍏冪殑宸ヤ綔鍙樺緱澶嶆潅銆佹槀璐點傜敱浜嶭1鍜孡2 cache宸ヤ綔鍦ㄥ緢寮虹殑綰︽潫涔嬩笅錛屽寘鎷姛鑰楋紝鑺墖鐗╃悊絀洪棿錛屽瓨鍙栭熷害絳夛紝鎵浠ュ湪澶氭暟鎯呭喌涓嬶紝浣跨敤鍏ㄧ浉鑱旂紦瀛樺茍涓嶆槸涓涓緢濂界殑鎶樹腑銆?/p>
鍙栬屼唬涔嬬殑鏄浘涓殑緇勭浉鑱旂紦瀛橈紙set associative cache錛夈傛剰鎬濇槸錛屽唴瀛樹腑涓鏉$粰瀹氱殑緙撳瓨綰垮彧鑳借淇濆瓨鍦ㄤ竴涓壒瀹氱殑緇勶紙鎴栬錛変腑銆傛墍浠ワ紝浠繪剰鐗╃悊鍐呭瓨欏電殑絎?鏉$紦瀛樼嚎錛堥〉鍐呯0鍒?3瀛楄妭錛夊繀欏誨瓨鍌ㄥ埌絎?緇勶紝絎?鏉$紦瀛樼嚎瀛樺偍鍒扮1緇勶紝浠ユ綾繪帹銆傛瘡涓緇勬湁8涓崟鍏冨彲鐢ㄤ簬瀛樺偍瀹冩墍鍏寵仈鐨勭紦瀛樼嚎錛堣瘧娉細灝辨槸閭d簺闇瑕佸瓨鍌ㄥ埌榪欎竴緇勭殑緙撳瓨綰匡級錛屼粠鑰屽艦鎴愪竴涓?璺叧鑱旂殑緇勶紙8-way associative set錛夈傚綋璁塊棶涓涓唴瀛樺湴鍧鏃訛紝鍦板潃鐨勭6鍒?1浣嶏紙璇戞敞錛氱粍绱㈠紩錛夋寚鍑轟簡鍦?KB鍐呭瓨欏典腑緙撳瓨綰跨殑緙栧彿錛屼粠鑰屽喅瀹氫簡鍗沖皢浣跨敤鐨勭紦瀛樼粍銆備婦渚嬫潵璇達紝鐗╃悊鍦板潃0x800010a0鐨勭粍绱㈠紩鏄?00010錛屾墍浠ユ鍦板潃鐨勫唴瀹逛竴瀹氭槸鍦ㄧ2緇勪腑緙撳瓨鐨勩?/p>
浣嗘槸榪樻湁涓涓棶棰橈紝灝辨槸瑕佹壘鍑轟竴緇勪腑鍝釜鍗曞厓鍖呭惈浜嗘兂瑕佺殑淇℃伅錛屽鏋滄湁鐨勮瘽銆傝繖灝卞埌浜嗙紦瀛樼洰褰曠櫥鍦虹殑鏃跺埢銆傛瘡涓涓紦瀛樼嚎閮借鍏跺搴旂殑鐩綍鍗曞厓鍋氫簡鏍囪錛坱ag錛夛紱榪欎釜鏍囪灝辨槸涓涓畝鍗曠殑鍐呭瓨欏電紪鍙鳳紝鎸囧嚭緙撳瓨綰挎潵鑷簬鍝竴欏點傜敱浜庡鐞嗗櫒鍙互瀵誨潃64GB鐨勭墿鐞哛AM錛屾墍浠ユ誨叡鏈?4GB / 4KB == 224涓唴瀛橀〉錛岄渶瑕?4浣嶆潵淇濆瓨鏍囪銆傚墠渚嬩腑鐨勭墿鐞嗗湴鍧0x800010a0瀵瑰簲鐨勯〉鍙蜂負524,289銆備笅闈㈡槸鏁呬簨鐨勫悗涓鍗婏細
鍦ㄧ粍涓悳绱㈠尮閰嶆爣璁?/p>
鐢變簬鎴戜滑鍙渶瑕佸幓鏌ョ湅鏌愪竴緇勪腑鐨?璺紝鎵浠ユ煡鎵懼尮閰嶆爣璁版槸闈炲父榪呴熺殑錛涗簨瀹炰笂錛屼粠鐢靛瑙掑害璁詫紝鎵鏈夌殑鏍囪鏄悓鏃惰繘琛屾瘮瀵圭殑錛屾垜鐢ㄧ澶存潵琛ㄧず榪欎竴鐐廣傚鏋滄鏃舵濂芥湁涓鏉″叿鏈夊尮閰嶆爣絳劇殑鏈夋晥緙撳瓨綰匡紝鎴戜滑灝辮幏寰椾竴嬈$紦瀛樺懡涓紙cache hit錛夈傚惁鍒欙紝榪欎釜璇鋒眰灝變細琚漿鍙戠殑L2 cache錛屽鏋滆繕娌″尮閰嶄笂灝卞啀杞彂緇欎富緋葷粺鍐呭瓨銆傞氳繃搴旂敤鍚勭璋冭妭灝哄鍜屽閲忕殑鎶鏈紝Intel緇機PU閰嶇疆浜嗚緝澶х殑L2 cache錛屼絾鍏跺熀鏈殑璁捐閮芥槸鐩稿悓鐨勩傛瘮濡傦紝浣犲彲浠ュ皢鍘熷厛鐨勭紦瀛樺鍔?璺岃幏寰椾竴涓?4KB鐨勭紦瀛橈紱鍐嶅皢緇勬暟澧炲姞鍒?096錛屾瘡璺彲浠ュ瓨鍌?56KB銆傜粡榪囪繖涓ゆ淇敼錛屽氨寰楀埌浜嗕竴涓?MB鐨凩2 cache銆傚湪姝ゆ儏鍐典笅錛岄渶瑕?8浣嶆潵淇濆瓨鏍囪錛?2浣嶄繚瀛樼粍绱㈠紩錛涚紦瀛樻墍浣跨敤鐨勭墿鐞嗗唴瀛橀〉鐨勫ぇ灝忎笌鍏朵竴璺殑澶у皬鐩哥瓑銆傦紙璇戞敞錛氭湁4096緇勶紝灝遍渶瑕乴g(4096)==12浣嶇殑緇勭儲寮曪紝緙撳瓨綰夸緷鐒舵槸64瀛楄妭錛屾墍浠ヤ竴璺湁4096*64B==256KB瀛楄妭錛涘湪L2 cache鐪間腑錛屽唴瀛樿鍒嗗壊涓鴻澶?56KB鐨勫潡錛屾墍浠ラ渶瑕乴g(64GB/256KB)==18浣嶆潵淇濆瓨鏍囪銆傦級
濡傛灉鏈変竴緇勫凡緇忚鏀炬弧浜嗭紝閭d箞鍦ㄥ彟涓鏉$紦瀛樼嚎琚瓨鍌ㄨ繘鏉ヤ箣鍓嶏紝宸叉湁鐨勬煇涓鏉″垯蹇呴』琚吘絀猴紙evict錛夈備負浜嗛伩鍏嶈繖縐嶆儏鍐碉紝瀵硅繍綆楅熷害瑕佹眰杈冮珮鐨勭▼搴忓氨瑕佸皾璇曚粩緇嗙粍緇囧畠鐨勬暟鎹紝浣垮緱鍐呭瓨璁塊棶鍧囧寑鐨勫垎甯冨湪宸叉湁鐨勭紦瀛樼嚎涓娿備婦渚嬫潵璇達紝鍋囪紼嬪簭涓湁涓涓暟緇勶紝鍏冪礌鐨勫ぇ灝忔槸512瀛楄妭錛屽叾涓竴浜涘璞″湪鍐呭瓨涓浉璺?KB銆傝繖浜涘璞$殑鍚勪釜瀛楁閮借惤鍦ㄥ悓涓緙撳瓨綰夸笂錛屽茍绔炰簤鍚屼竴緙撳瓨緇勩傚鏋滅▼搴忛綣佺殑璁塊棶涓涓粰瀹氱殑瀛楁錛堟瘮濡傦紝閫氳繃铏氬嚱鏁拌〃vtable璋冪敤铏氬嚱鏁幫級錛岄偅涔堣繖涓粍鐪嬭搗鏉ュ氨濂藉儚涓鐩存槸琚~婊$殑錛岀紦瀛樺紑濮嬪彉寰楁鏃犳剰涔夛紝鍥犱負緙撳瓨綰夸竴鐩村湪閲嶅鐫鑵劇┖涓庨噸鏂拌澆鍏ョ殑姝ラ銆傚湪鎴戜滑鐨勪緥瀛愪腑錛岀敱浜庣粍鏁扮殑闄愬埗錛孡1 cache浠呰兘淇濆瓨8涓繖綾誨璞$殑铏氬嚱鏁拌〃銆傝繖灝辨槸緇勭浉鑱旂瓥鐣ョ殑鎶樹腑鎵浠樺嚭鐨勪唬浠鳳細鍗充嬌鍦ㄦ暣浣撶紦瀛樼殑浣跨敤鐜囧茍涓嶉珮鐨勬儏鍐典笅錛岀敱浜庣粍鍐茬獊錛屾垜浠繕鏄細閬囧埌緙撳瓨緙哄け鐨勬儏鍐點傜劧鑰岋紝閴翠簬璁$畻鏈轟腑鍚勪釜瀛樺偍灞傛鐨勭浉瀵歸熷害錛屼笉綆℃庝箞璇達紝澶ч儴鍒嗙殑搴旂敤紼嬪簭騫朵笉蹇呬負姝よ屾媴蹇冦?/p>
涓涓唴瀛樿闂粡甯哥敱涓涓嚎鎬э紙鎴栬櫄鎷燂級鍦板潃鍙戣搗錛屾墍浠1 cache闇瑕佷緷璧栧垎欏靛崟鍏冿紙paging unit錛夋潵姹傚嚭鐗╃悊鍐呭瓨欏電殑鍦板潃錛屼互渚跨敤浜庣紦瀛樻爣璁般備笌姝ょ浉鍙嶏紝緇勭儲寮曟潵鑷簬綰挎у湴鍧鐨勪綆浣嶏紝鎵浠ヤ笉闇瑕佽漿鎹㈠氨鍙互浣跨敤浜嗭紙鍦ㄦ垜浠殑渚嬪瓙涓負絎?鍒?1浣嶏級銆傚洜姝1 cache鏄墿鐞嗘爣璁頒絾铏氭嫙绱㈠紩鐨勶紙physically tagged but virtually indexed錛夛紝浠庤屽府鍔〤PU榪涜騫惰鐨勬煡鎵炬搷浣溿傚洜涓篖1 cache鐨勪竴璺粷涓嶄細姣擬MU鐨勪竴欏佃繕澶э紝鎵浠ュ彲浠ヤ繚璇佷竴涓粰瀹氱殑鐗╃悊鍦板潃浣嶇疆鎬繪槸鍏寵仈鍒板悓涓緇勶紝鍗充嬌緇勭儲寮曟槸铏氭嫙鐨勩傚湪鍙︿竴鏂歸潰L2 cache蹇呴』鏄墿鐞嗘爣璁板拰鐗╃悊绱㈠紩鐨勶紝鍥犱負瀹冪殑涓璺瘮MMU鐨勪竴欏佃澶с備絾鏄紝褰撲竴涓姹傚埌杈綥2 cache鏃訛紝鐗╃悊鍦板潃宸茬粡琚獿1 cache鍑嗗錛坮esolved錛夊畬姣曚簡錛屾墍浠2 cache浼氬伐浣滃緱寰堝ソ銆?/p>
鏈鍚庯紝鐩綍鍗曞厓榪樺瓨鍌ㄤ簡瀵瑰簲緙撳瓨綰跨殑鐘舵侊紙state錛夈傚湪L1浠g爜緙撳瓨涓殑涓鏉$紦瀛樼嚎瑕佷箞鏄棤鏁堢殑錛坕nvalid錛夎涔堟槸鍏變韓鐨勶紙shared錛屾剰鎬濇槸鏈夋晥鐨勶紝鐪熺殑J錛夈傚湪L1鏁版嵁緙撳瓨鍜孡2緙撳瓨涓紝涓鏉$紦瀛樼嚎鍙互涓?涓狹ESI鐘舵佷箣涓錛氳淇敼鐨勶紙modified錛夛紝鐙崰鐨勶紙exclusive錛夛紝鍏變韓鐨勶紙shared錛夛紝鏃犳晥鐨勶紙invalid錛夈侷ntel緙撳瓨鏄寘瀹瑰紡鐨勶紙inclusive錛夛細L1緙撳瓨鐨勫唴瀹逛細琚鍒跺埌L2緙撳瓨涓傚湪涓嬩竴綃囪璁虹嚎紼嬶紙threading錛夛紝閿佸畾錛坙ocking錛夌瓑鍐呭鐨勬枃绔犱腑錛岃繖浜涚紦瀛樼嚎鐘舵佸皢鍙戞尌浣滅敤銆備笅涓嬈★紝鎴戜滑灝嗙湅鐪嬪墠绔葷嚎浠ュ強鍐呭瓨璁塊棶鍒板簳鏄庝箞宸ヤ綔鐨勩傝繖灝嗘垚涓轟竴涓唴瀛樼爺璁ㄥ懆銆?/p>
錛堝湪鍥炲涓璂ave鎻愬埌浜嗙洿鎺ユ槧灝勭紦瀛橈紙direct-mapped cache錛夈傚畠浠熀鏈笂鏄竴縐嶇壒孌婄殑緇勭浉鑱旂紦瀛橈紝鍙槸鍙湁涓璺屽凡銆傚湪鍚勭鎶樹腑鏂規涓紝瀹冧笌鍏ㄧ浉鑱旂紦瀛樻濂界浉鍙嶏細璁塊棶闈炲父蹇嵎錛屼絾鍥犵粍鍐茬獊鑰屽鑷寸殑緙撳瓨緙哄け涔熼潪甯稿銆傦級
[璇戣呭皬緇擄細
1. 鍐呭瓨灞傛緇撴瀯鐨勬剰涔夊湪浜庡埄鐢ㄥ紩鐢ㄧ殑絀洪棿灞閮ㄦу拰鏃墮棿灞閮ㄦу師鐞嗭紝灝嗙粡甯歌璁塊棶鐨勬暟鎹斁鍒板揩閫熺殑瀛樺偍鍣ㄤ腑錛岃屽皢涓嶇粡甯歌闂殑鏁版嵁鐣欏湪杈冩參鐨勫瓨鍌ㄥ櫒涓?/p>
2. 涓鑸儏鍐典笅錛岄櫎浜嗗瘎瀛樺櫒鍜孡1緙撳瓨鍙互鎿嶄綔鎸囧畾瀛楅暱鐨勬暟鎹紝涓嬪眰鐨勫唴瀛樺瓙緋葷粺灝變笉浼氬啀浣跨敤榪欎箞灝忕殑鍗曚綅浜嗭紝鑰屾槸鐩存帴縐誨姩鏁版嵁鍧楋紝姣斿浠ョ紦瀛樼嚎涓哄崟浣嶈闂暟鎹?/p>
3. 瀵逛簬緇勫啿紿侊紝鍙互榪欎箞鐞嗚В錛氫笌涓婃枃鐩鎬技錛屽亣璁句竴涓紦瀛橈紝鐢?12鏉$紦瀛樼嚎緇勬垚錛屾瘡鏉$嚎64瀛楄妭錛屽閲?2KB銆?/p>
a) 鍋囧瀹冩槸鐩存帴鏄犲皠緙撳瓨錛岀敱浜庡畠寰寰浣跨敤鍦板潃鐨勪綆浣嶇洿鎺ユ槧灝勭紦瀛樼嚎緙栧彿錛屾墍浠ユ墍鏈夌殑32K鍊嶆暟鐨勫湴鍧錛?2K錛?4K錛?6K絳夛級閮戒細鏄犲皠鍒板悓涓鏉$嚎涓婏紙鍗崇0綰匡級銆傚亣濡傜▼搴忕殑鍐呭瓨緇勭粐涓嶅綋錛屼氦鏇跨殑鍘昏闂竷緗湪榪欎簺鍦板潃鐨勬暟鎹紝鍒欎細瀵艱嚧鍐茬獊銆備粠澶栬〃鐪嬫潵灝卞ソ鍍忕紦瀛樺彧鏈?鏉$嚎浜嗭紝灝界鍏朵粬緙撳瓨綰夸竴鐩存槸絀洪棽鐫鐨勩?/p>
b) 濡傛灉鏄叏鐩歌仈緙撳瓨錛岄偅涔堟瘡鏉$紦瀛樼嚎閮芥槸鐙珛鐨勶紝鍙互瀵瑰簲浜庡唴瀛樹腑鐨勪換鎰忕紦瀛樼嚎銆傚彧鏈夊綋鎵鏈夌殑512鏉$紦瀛樼嚎閮借鍗犳弧鍚庢墠浼氬嚭鐜板啿紿併?/p>
c) 緇勭浉鑱旀槸鍓嶄袱鑰呯殑鎶樹腑錛屾瘡涓璺腑鐨勭紦瀛樼嚎閲囩敤鐩存帴鏄犲皠鏂瑰紡錛岃屽湪璺笌璺箣闂達紝緙撳瓨鎺у埗鍣ㄤ嬌鐢ㄥ叏鐩歌仈鏄犲皠綆楁硶錛屽喅瀹氶夋嫨涓緇勪腑鐨勫摢涓鏉$嚎銆?/p>
d) 濡傛灉鏄?璺粍鐩歌仈緙撳瓨錛岄偅涔堣繖512鏉$紦瀛樼嚎灝辮鍒嗕負浜?璺紝姣忚礬256鏉$嚎錛屼竴璺?6KB銆傛鏃舵墍鏈変負16K鏁存暟鍊嶇殑鍦板潃錛?6K錛?2K錛?8K絳夛級閮戒細鏄犲皠鍒扮0綰匡紝浣嗙敱浜?璺槸鍏寵仈鐨勶紝鎵浠ュ彲浠ュ悓鏃舵湁2涓繖縐嶅湴鍧鐨勫唴瀹硅緙撳瓨錛屼笉浼氬彂鐢熷啿紿併傚綋鐒朵簡錛屽鏋滆璁塊棶絎笁涓繖縐嶅湴鍧錛岃繕鏄鍏堣吘絀哄凡鏈夌殑涓鏉℃墠琛屻傛墍浠ユ瀬绔儏鍐典笅錛屼粠澶栬〃鐪嬫潵灝卞ソ鍍忕紦瀛樺彧鏈?鏉$嚎浜嗭紝灝界鍏朵粬緙撳瓨綰夸竴鐩存槸絀洪棽鐫鐨勩?/p>
e) 濡傛灉鏄?璺粍鐩歌仈緙撳瓨錛堜笌鏂囦腑紺轟緥鐩稿悓錛夛紝閭d箞榪?12鏉$紦瀛樼嚎灝辮鍒嗕負浜?璺紝姣忚礬64鏉$嚎錛屼竴璺?KB銆傛墍浠ュ鏋滄暟緇勪腑鍏冪礌鍦板潃鏄?K瀵歸綈鐨勶紝騫朵笖紼嬪簭浜ゆ浛鐨勮闂繖浜涘厓绱狅紝灝變細鍑虹幇緇勫啿紿併備粠澶栬〃鐪嬫潵灝卞ソ鍍忕紦瀛樺彧鏈?鏉$嚎浜嗭紝灝界鍏朵粬緙撳瓨綰夸竴鐩存槸絀洪棽鐫鐨勩?/p>
]
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/drshenlei/archive/2009/06/17/4277959.aspx
棣栧厛錛宑ore灝辨槸鍐呭瓨鐨勬剰鎬濓紝鍦ㄥ崐瀵間綋搴旂敤涔嬪墠錛屽唴瀛樻槸鐢遍搧姘у寲鐗╁渾鐜埗閫犵殑錛坈ore錛夛紝浣嗕竴鐩存部鐢ㄨ嚦浠娿?/p>
鑰岃繖涓ょ閿欒錛岄兘鏄湁紜歡鍛婄煡鎿嶄綔緋葷粺涓涓湁闂鐨勫唴瀛樺紩鐢ㄣ傛搷浣滅郴緇熼氳繃淇″彿錛屽啀灝嗛敊璇俊鎭憡鐭ヨ繘紼嬨傜己鐪佹儏鍐典笅錛岃繘紼嬫敹鍒?#8220;鎬葷嚎閿欒”鎴?#8220;孌甸敊璇?#8221;淇″彿鍚庯紝灝嗕俊鎭漿鍌ㄥ茍緇堟銆傚綋鐒朵篃鍙互涓鴻繖浜涗俊鍙瘋緗竴涓俊鍙峰鐞嗙▼搴忥紙signal handler錛夈?/p>
鎬葷嚎閿欒錛坆us error錛夛紝鍑犱箮閮芥槸鏈夊唴瀛樻湭瀵歸綈璇誨紩璧風殑銆傚唴瀛樺榻愶紝灝辨槸鍐呭瓨鍙橀噺鐨勫湴鍧鍙兘鏄叾澶у皬鐨勬暣鏁板嶏紝榪欐牱瀛樺偍鐨勭洰鐨勫氨鏄負浜嗘柟渚垮茍蹇熷瓨鍙栧唴瀛樸備竴鑸儏鍐典笅錛岀紪璇戝櫒閮戒細鍋氬ソ鍐呭瓨瀵歸綈宸ヤ綔錛屼負浠涔堝張浼氬紩鍙戞鏁呴殰鍛紵寰堝鎯呭喌灝辨槸鐢辨寚閽堝拰寮哄埗綾誨瀷杞崲寮曡搗鐨勶紝濡傦細
union{
char a[10];
int i;
}u;
int *p = (int *)&(u.a[1]);
*p = 17;
褰撶劧錛岃繕鏈変竴浜涘叾瀹冨師鍥犱細寮曡搗“鎬葷嚎閿欒”錛屽濂囧伓鏍¢獙鐮侀敊璇紝鎵寮曠敤鐨勫唴瀛樺潡涓嶅瓨鍦ㄣ備絾鏄幇鍦紝鍐呭瓨閮芥湁紜歡鐢佃礬媯嫻嬪拰淇錛屼竴鑸笉浼氬啀浼犲埌杞歡灞備簡錛涢櫎浜嗛┍鍔ㄧ▼搴忥紝涓鑸篃涓嶄細寮曠敤涓嶅瓨鍦ㄧ殑鍐呭瓨鍧椼?/p>
孌甸敊璇紝涓鑸槸鐢變簬寮曠敤涓嶄綅浜庤嚜宸辯殑鍦板潃絀洪棿鐨勫湴鍧寮曡搗鐨勩傛渶甯歌鐨勫氨鏄氳繃涓涓湭鍒濆鍖栵紝鎴栬呮湁闈炴硶鍊肩殑鎸囬拡寮曡搗鐨勶紝濡傦細int *p = 0; *p = 7; 鑰屽鑷存寚閽堢殑闈炴硶鍊煎彲鑳芥槸鐢變簬涓嶅悓鐨勭紪紼嬮敊璇紩璧風殑錛屾瘮璧?#8220;鎬葷嚎閿欒”鏇村姞闂存帴銆?/p>
孌甸敊璇竴鑸槸鐢辯‖浠舵琛ㄨ漿鎹㈡満鏋勭殑閿欒寮曞彂錛屽Sun紜歡涓殑鍐呭瓨綆$悊鍗曞厓(MMU)銆?/p>
榪樻湁涓涓井濡欎箣澶勬槸錛屽鏋滄湭鍒濆鍖栫殑鎸囬拡鎭板ソ鍏鋒湁鏈榻愮殑鍊鹼紝瀹冨皢浜х敓鎬葷嚎閿欒錛岃屼笉鏄閿欒銆?/p>