《64位微處理器系統編程》 |
【定價】¥28.00
【作者】周明德
【出 版 社】 清華大學出版社
【書 號】 7302126429
【出版日期】 2006 年6月
【開 本】 16開
【頁 碼】 322
【版 次】1-1
【所屬分類】 計算機 > 計算機控制與仿真 > 可程式控制器
教材 > 研究生/本科/專科教材 > 工學 > 計算機
內容簡介
本書以與32位x86體系結構兼容為目標,以AMD公司的x8664體系結構的64位微處理器為重點,介紹64位微處理器的原理、結構、功能和系統編程。重點介紹64位微處理器與32位微處理器的區別及其擴展,介紹了系統編程環境、虛擬存儲器的結構與使用、中斷與異常、軟體調試與性能改進。
本書可作為《微型計算機系統原理及套用》(第四版)、《64位微處理器套用編程》的後續學習用書。
本書可以作為利用64位微處理器進行系統編程和套用編程的相關讀者的自學和培訓教材。
目錄介紹
第1篇AMD x8664系統編程1第1章AMD x8664系統編程概要2
1.1記憶體模型2
1.1.1記憶體定址2
1.1.2存儲器組織4
1.1.3規範地址形式4
1.2存儲管理5
1.2.1段5
1.2.2分頁5
1.2.3混合分段和分頁6
1.2.4實定址7
1.3操作模式8
1.3.1長模式8
1.3.2傳統模式10
1.3.3系統管理模式11
1.4系統暫存器11
1.5系統數據結構13
1.6中斷14
1.7附加的系統編程特性15
1.7.1硬體多任務15
1.7.2機器檢查16
1.7.3軟體調試16
1.7.4性能監視16第2章x86和x8664體系結構的區別17
2.1操作模式17
2.1.1長模式17
2.1.2傳統模式17
2.1.3系統管理模式 18
2.2存儲器模型18
2.2.1存儲器定址18
2.2.2頁轉換18
2.2.3分段19
2.3保護檢查21
2.4暫存器21
2.4.1通用暫存器21
2.4.2128位多媒體暫存器21
2.4.3標誌暫存器21
2.4.4指令指針21
2.4.5堆疊指針22
2.4.6控制暫存器22
2.4.7調試暫存器22
2.4.8擴展的特徵暫存器(EFER)22
2.4.9存儲類型範圍暫存器(mtrr)22
2.4.10其他模型特定的暫存器(MSR)22
2.5指令系統23
2.5.1REX 前綴23
2.5.2在64位模式中段超越前綴23
2.5.3運算元和結果23
2.5.4地址計算23
2.5.5引用RSP的指令24
2.5.6分支25
2.5.7NOP指令26
2.5.8單位元組INC和DEC指令27
2.5.9MOVSXD指令27
2.5.10無效指令27
2.5.11FXSAVE和FXRSTOR指令28
2.6中斷和異常28
2.6.1中斷描述符表29
2.6.2推入的堆疊幀29
2.6.3堆疊切換29
2.6.4IRET指令29
2.6.5任務特權寄存器(CR8)30
2.6.6新異常條件30
2.7硬體任務切換30
2.8長模式與傳統模式的區別30
第3章系統資源32
3.1系統控制暫存器32
3.1.1CR0暫存器33
3.1.2CR2和CR3暫存器35
3.1.3CR4暫存器36
3.1.4CR1和CR5~CR7暫存器39
3.1.564位模式擴展的控制暫存器39
3.1.6CR8(任務特權暫存器,TPR)39
3.1.7RFLAGS暫存器39
3.1.8擴展的特徵啟用暫存器(EFER)42
3.2模型特定的暫存器43
3.2.1系統配置暫存器44
3.2.2系統連結暫存器45
3.2.3記憶體類型暫存器45
3.2.4調試擴展暫存器46
3.2.5性能監視暫存器46
3.2.6機器檢查暫存器47
3.3處理器的特徵標識47
第4章分段虛擬存儲器49
4.1實模式分段49
4.2虛擬8086模式段50
4.3保護模式分段記憶體模式50
4.3.1多段模型50
4.3.2平面記憶體模型50
4.3.364位模式中的段51
4.4段數據結構和暫存器51
4.5段選擇子和暫存器52
4.5.1段選擇子52
4.5.2段暫存器53
4.5.364位模式下的段暫存器54
4.6描述符表55
4.6.1全局描述符表55
4.6.2全局描述符表暫存器55
4.6.3局部描述符表56
4.6.4局部描述符表暫存器57
4.6.5中斷描述符表58
4.6.6中斷描述符表暫存器59
4.7傳統段描述符59
4.7.1描述符格式59
4.7.2碼段描述符61
4.7.3數據段描述符62
4.7.4系統描述符64
4.7.5門描述符65
4.8長模式段描述符66
4.8.1碼段描述符66
4.8.2數據段描述符67
4.8.3系統段描述符68
4.8.4門描述符69
4.8.5長模式描述符小結71
4.9段保護概要72
4.9.1特權級概念73
4.9.2特權級類型73
4.10數據訪問特權檢查74
4.10.1訪問數據段74
4.10.2訪問堆疊段75
4.11控制傳送特權檢查76
4.11.1直接控制傳送76
4.11.2控制傳送通過調用門78
4.11.3返回控制傳送83
4.12界限檢查84
4.13類型檢查85
4.13.1在傳統和兼容模式的類型檢查85
4.13.2長模式類型檢查的區別86
第5章頁轉換和保護88
5.1頁轉換概要88
5.1.1頁轉換選項90
5.1.2頁轉換啟用(PG)位90
5.1.3物理地址擴展(PAE)位90
5.1.4頁尺寸擴展(PSE)位90
5.1.5頁目錄91
5.2傳統模式轉換91
5.2.1CR3暫存器92
5.2.2正常(非PAE)分頁92
5.2.3PAE分頁94
5.3長模式頁轉換97
5.3.1規範的地址形式97
5.3.2CR397
5.3.34KB頁轉換98
5.3.42MB頁轉換99
5.4頁轉換表項欄位101
5.5轉換查找緩衝器(TLB)104
5.5.1全局頁104
5.5.2TLB管理105
5.6頁保護檢查105
5.6.1非執行(NX)位105
5.6.2用戶/管理員(U/S)位106
5.6.3讀/寫(R/W)位106
5.6.4防寫(CR0.WP)位106
5.7跨越分頁層次保護106
5.8段保護的作用108
第6章系統管理指令109
6.1快速系統調用和返回指令111
6.1.1SYSCALL和SYSRET111
6.1.2SYSENTER和SYSEXIT(只在傳統模式)112
6.1.3SWAPGS指令113
6.2系統狀態和控制113
6.2.1處理器特徵標識符(CPUID)114
6.2.2訪問控制暫存器114
6.2.3訪問RFLAGS暫存器114
6.2.4訪問調試暫存器114
6.2.5訪問模型特定的暫存器115
6.3段暫存器和描述符暫存器訪問115
6.3.1訪問段暫存器115
6.3.2訪問描述符表暫存器115
6.4保護檢查116
6.4.1檢查訪問權力116
6.4.2檢查段界限116
6.4.3檢查讀/寫權力116
6.4.4調整訪問權力116
6.5處理器暫停117
6.6快取和TLB管理117
6.6.1快取管理117
6.6.2TLB無效117
第7章記憶體系統118
7.1記憶體訪問順序120
7.1.1讀順序120
7.1.2寫順序120
7.1.3讀寫柵欄121
7.2記憶體一致性和協定121
7.3記憶體類型124
7.4緩衝和組合記憶體寫125
7.4.1寫緩衝125
7.4.2寫組合126
7.5記憶體檢查127
7.5.1快取組織和操作127
7.5.2快取控制機制128
7.5.3快取和記憶體管理指令130
7.5.4串列化指令131
7.6記憶體類型範圍暫存器132
7.6.1MTRR類型欄位132
7.6.2MTRR133
7.6.3使用MTRR138
7.6.4MTRR和頁快取控制138
7.6.5多處理器環境中的MTRR140
7.7頁屬性表機制140
7.7.1PAT暫存器140
7.7.2PAT 索引141
7.7.3標識PAT支持142
7.7.4PAT訪問142
7.7.5MTRR和PAT的組合影響142
7.8記憶體映射的I/O143
7.8.1擴展的固定範圍MTRR類型欄位編碼143
7.8.2IORR145
7.8.3IORR的重疊146
7.8.4記憶體的頂146
第8章異常和中斷148
8.1概要148
8.2通用特性148
8.3向量150
8.3.1#DE(被零除差錯異常向量0)152
8.3.2#DB(調試異步異常向量1)153
8.3.3NMI(非禁止中斷異常向量2)154
8.3.4#BP(斷點異常向量3)154
8.3.5#OF(溢出異常向量4)154
8.3.6#BR(邊界異常向量5)155
8.3.7#UD(無效操作碼異常向量6) 155
8.3.8#NM(設備不可用異常向量7)156
8.3.9#DF(雙故障異常向量8)156
8.3.10CoprocessorSegmentoverrun(協處理器段超越
異常向量9)157
8.3.11#TS(無效TSS異常向量10)157
8.3.12#NP(段不存在異常向量11)158
8.3.13#SS(堆疊異常向量12)159
8.3.14#GP(通用保護異常向量13)159
8.3.15#PF(頁故障異常向量14)161
8.3.16#MF(x87浮點異常掛起向量16)161
8.3.17#AC(對齊檢查異常向量17)162
8.3.18#MC(機器檢查異常向量18)163
8.3.19#XF(SIMD浮點異常向量19) 163
8.3.20用戶定義的中斷(向量32~255)164
8.4任務切換期間的異常165
8.5差錯碼165
8.5.1選擇子差錯碼165
8.5.2頁故障差錯碼166
8.6優先權166
8.6.1浮點異常優先權167
8.6.2外部的中斷優先權168
8.7實模式下的中斷控制傳送169
8.8傳統保護模式下的中斷控制傳送170
8.8.1定位中斷處理程式171
8.8.2中斷至相同特權級171
8.8.3中斷至更高特權級172
8.8.4特權檢查173
8.8.5從中斷過程返回175
8.9虛擬8086模式中斷控制傳送175
8.9.1保護模式處理程式控制傳送176
8.9.2虛擬8086處理程式控制傳送177
8.10長模式下的中斷控制傳送177
8.10.1中斷門和陷阱門178
8.10.2定位中斷處理程式178
8.10.3中斷堆疊179
8.10.4中斷堆疊表 180
8.10.5從中斷過程返回181
8.11虛擬中斷182
8.11.1虛擬8086模式擴展182
8.11.2保護模式虛擬中斷187
8.11.3修改指令的影響187
第9章機器檢查機制189
9.1確定機器檢查機制189
9.2機器檢查差錯189
9.3機器檢查MSR190
9.3.1全局狀態和控制暫存器191
9.3.2差錯報告暫存器體192
9.3.3差錯碼193
9.4初始化機器檢查機制195
9.5使用機器檢查特徵196
9.5.1處理機器檢查異常196
9.5.2報告可改正的機器檢查差錯197
第10章系統管理模式198
10.1SMM資源198
10.1.1SMRAM199
10.1.2SMBASE 暫存器199
10.1.3SMRAM狀態保存區200
10.1.4SMM版本標識符204
10.2使用SMM204
10.2.1系統管理中斷(SMI)204
10.2.2SMM操作環境205
10.2.3異常和中斷205
10.2.4使快取無效206
10.2.5保存附加的處理器狀態207
10.2.6操作在保護模式和長模式207
10.2.7自動暫停重啟動207
10.2.8I/O指令重啟動208
10.3離開SMM208
第11章128位、64位和x87編程210
11.1系統軟體考慮的概要210
11.2確定支持的媒體和x87特徵210
11.3啟用128位媒體指令 211
11.4媒體和處理器狀態211
11.4.1128位媒體狀態212
11.4.264位媒體狀態212
11.4.3x87狀態213
11.4.4保存媒體和x87處理器狀態214
第12章任務管理223
12.1硬體多任務概要223
12.2任務管理資源224
12.2.1TSS選擇子225
12.2.2TSS描述符225
12.2.3任務暫存器226
12.2.4傳統任務狀態段227
12.2.5任務門描述符(只是傳統模式)231
12.3在傳統模式的硬體任務管理232
12.3.1任務存儲映像232
12.3.2任務切換233
12.3.3用任務門進行任務切換234
12.3.4嵌套任務235
第13章調試和性能資源237
13.1軟體調試資源237
13.2斷點243
13.2.1設定斷點243
13.2.2使用斷點245
13.2.3斷點指令(INT3)248
13.2.4控制傳送斷點特徵248
13.3性能最佳化249
13.3.1性能計數器249
13.3.2性能事件選擇暫存器250
13.3.3使用性能計數器251
第14章處理器初始化和長模式激活253
14.1復位和初始化253
14.1.1內置自測試(BIST)253
14.1.2時鐘倍頻選擇254
14.1.3處理器初始化狀態254
14.1.4多處理器初始化256
14.1.5取第一條指令256
14.2硬體配置256
14.2.1處理器實現信息256
14.2.2啟用內部快取257
14.2.3初始化媒體和x87處理器狀態257
14.3初始化實模式259
14.4初始化保護模式259
14.5初始化長模式260
14.6啟用和激活長模式260
14.6.1激活長模式261
14.6.2一致性檢查262
14.6.3更新系統描述符表引用262
14.6.4重定位頁轉換表263
14.7離開長模式263
14.8長模式初始化舉例263
第2篇Intel Itanium系統編程概要267
第1章Intel Itanium系統環境268
1.1處理器引導順序268
1.2Intel Itanium系統環境概要269
第2章系統狀態和編程模型270
2.1特權級270
2.2順序化270
2.2.1指令順序化271
2.2.2數據順序化271
2.2.3正在處理的(inflight)資源的定義272
2.3系統狀態272
2.3.1系統狀態概要272
2.3.2處理器狀態暫存器(PSR)273
2.3.3控制暫存器279
2.3.4全局控制暫存器281
2.3.5中斷控制暫存器284
2.3.6外部中斷控制暫存器289
2.3.7分體的通用暫存器289
第3章基於Itanium作業系統與IA32應用程式互動模型291
3.1指令集轉換291
3.2系統暫存器模型291
3.3IA32系統段暫存器293
3.3.1IA32當前特權級295
3.3.2IA32系統EFLAG暫存器295
3.3.3IA32系統暫存器298
3.4對於IA32碼的暫存器上下文切換指南302
3.4.1進入IA32過程302
3.4.2退出IA32過程302
3.5IA32指令集行為小結303
3.6系統記憶體模型309
3.6.1虛擬存儲器引用310
3.6.2IA32虛擬記憶體引用310
3.6.3IA32 物理記憶體引用 311
3.6.4超級用戶訪問311
3.6.5記憶體對齊312
3.6.6原子操作312
3.7I/O連線埠空間模型313
3.7.1虛擬I/O連線埠定址314
3.7.2物理I/O連線埠定址315
3.7.3IA32 IN/OUT指令316
3.7.4由裝入和存儲指令對I/O連線埠訪問317
3.8調試模型317
3.8.1數據斷點暫存器匹配318
3.8.2指令斷點暫存器匹配 319
3.9中斷模型319
3.9.1中斷小結320
3.9.2IA32數字異常模型321
3.10為支持IA32套用處理器的匯流排考慮322
參考文獻323