注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)計算機(jī)組織與體系結(jié)構(gòu)步步驚芯:軟核處理器內(nèi)部設(shè)計分析

步步驚芯:軟核處理器內(nèi)部設(shè)計分析

步步驚芯:軟核處理器內(nèi)部設(shè)計分析

定 價:¥75.00

作 者: 雷思磊 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 計算機(jī)/網(wǎng)絡(luò) 計算機(jī)體系結(jié)構(gòu)

ISBN: 9787121204890 出版時間: 2013-07-01 包裝: 平裝
開本: 16 頁數(shù): 500頁 字?jǐn)?shù):  

內(nèi)容簡介

  本書以開源32位軟核處理器OR1200為研究對象,像引導(dǎo)讀者如做解剖學(xué)實(shí)驗(yàn)?zāi)前?,對其進(jìn)行剖析,力圖使讀者對教科書上介紹的處理器有一個實(shí)踐上的認(rèn)識,打破處理器令人高深莫測的印象,同時使讀者了解處理器設(shè)計的細(xì)節(jié)。OR1200包括CPU、MMU、Cache、總線接口、電源管理、中斷控制和計時器單元等多個模塊,對于不同的模塊,根據(jù)其難易程度,采用指令驅(qū)動分析法、情景分析法及直接分析源代碼等不同的分析方法,便于讀者理解。通過閱讀本書,讀者可以掌握一款成熟的軟核處理器OR1200的設(shè)計思路、實(shí)現(xiàn)方法,同時更加深刻、具體地理解計算機(jī)組成原理、計算機(jī)體系結(jié)構(gòu)等課程介紹的知識。本書適合計算機(jī)專業(yè)的學(xué)生、FPGA開發(fā)人員、處理器設(shè)計者、嵌入式系統(tǒng)應(yīng)用開發(fā)工程師、對處理器內(nèi)部實(shí)現(xiàn)感興趣的讀者及對這個世界充滿好奇心的讀者閱讀,也可以作為高等院校計算機(jī)組成原理、計算機(jī)體系結(jié)構(gòu)等課程的實(shí)踐參考書。

作者簡介

  雷思磊,理工男,好靜,倡導(dǎo)低碳生活,常以環(huán)保人士自居,喜讀書,自幼篤信“博觀而約取 厚積而薄發(fā)”,是故,所讀書籍甚為駁雜,年近而立,尚不確定根本興趣目標(biāo),一日,駐足書架之前,細(xì)覽所讀書籍,驚覺隨歲月增長,關(guān)注點(diǎn)依次從應(yīng)用編程、操作系統(tǒng)、驅(qū)動設(shè)計轉(zhuǎn)移至處理器結(jié)構(gòu),此一脈絡(luò)極其清晰,遂如醍醐灌頂,幡然醒悟,原來余根本興趣目標(biāo)在“底層”,在于從根本上理解世界之運(yùn)行,遂耗數(shù)年時間鉆研處理器工作原理,乃有些微收獲,拙作當(dāng)為數(shù)年辛苦之小結(jié),然學(xué)無止境,科技發(fā)展亦日新月異,唯有持續(xù)鉆研,方能大成,屈子曰:路漫漫其修遠(yuǎn)兮,吾將上下而求索。此言甚是,余定謹(jǐn)記而遵行之。

圖書目錄

第1章OpenRISC介紹   1 1.1  開源軟核處理器   1 1.2  OpenRISC 1000架構(gòu)      4 1.3  OR1200——OpenRISC 1000架構(gòu)的一個實(shí)現(xiàn)     4 1.3.1  尋址模式    5 1.3.2  位和字節(jié)次序    6 1.3.3  寄存器集    6 1.3.4  指令集         7 1.3.5  異常模型    8 1.4  OR1200代碼組織 8 1.5  本書的分析方法   11 第2章  實(shí)驗(yàn)環(huán)境的搭建     13 2.1  GNU開發(fā)工具鏈的安裝       13 2.2  GNU開發(fā)工具鏈的使用       18 2.2.1  一個簡單的匯編程序         18 2.2.2  編譯及ELF文件介紹 19 2.2.3  鏈接    21 2.2.4  Makefile文件      23 2.2.5  使用OR1KSim模擬器運(yùn)行程序         24 2.3  創(chuàng)建OR1200運(yùn)行的最小系統(tǒng)     25 2.3.1  最小系統(tǒng)的創(chuàng)建         26 2.3.2  運(yùn)行仿真    29 2.3.3  修改Makefile      30 2.3.4  觀察流水線         32 2.3.5  流水線介紹         33 2.4  本書的一些說明及定義        34 2.4.1  一些說明    34 2.4.2  一些定義    35 第3章  QMEM剖析     37 3.1  QMEM的作用        37 3.2  Wishbone總線快速了解       40 3.3  QMEM的Wishbone總線接口      43 3.3.1  QMEM與CPU、IMMU的連接          44 3.3.2  QMEM與ICache的連接   45 3.3.3  QMEM與CPU、DMMU的連接        46 3.3.4  QMEM與DCache的連接 47 3.4  QMEM的內(nèi)部RAM       49 3.5  復(fù)位后取第一條指令的過程分析        51 3.5.1  復(fù)位信號有效階段    51 3.5.2  復(fù)位信號無效后的第一個時鐘周期上升沿    56 3.5.3  復(fù)位信號無效后的第一個時鐘周期的組合邏輯階段    57 3.6  第二條及后續(xù)指令的讀取過程分析   58 3.6.1  復(fù)位信號無效后的第二個時鐘周期的上升沿         58 3.6.2  復(fù)位信號無效后的第二個時鐘周期的組合邏輯階段    59 第4章  數(shù)據(jù)處理類指令剖析     61 4.1  數(shù)據(jù)處理類指令說明   61 4.2  分析用例        65 4.3  流水線的簡單模型        67 4.4  l.add指令分析       69 4.4.1  l.add取指階段的組合邏輯輸出        70 4.4.2  l.add取指階段的時序邏輯輸出        73 4.4.3  l.add譯碼階段的組合邏輯輸出        75 4.4.4  l.add譯碼階段的時序邏輯輸出        80 4.4.5  l.add執(zhí)行階段的組合邏輯輸出        91 4.4.6  l.add執(zhí)行階段的時序邏輯輸出        97 4.4.7  第一條指令分析小結(jié)         98 4.5  l.sfeqi指令分析     99 4.5.1  l.sfeqi取指階段的組合邏輯輸出      99 4.5.2  l.sfeqi取指階段的時序邏輯輸出      100 4.5.3  l.sfeqi譯碼階段的組合邏輯輸出      100 4.5.4  l.sfeqi譯碼階段的時序邏輯輸出      101 4.5.5  l.sfeqi執(zhí)行階段的組合邏輯輸出      102 4.5.6  l.sfeqi執(zhí)行階段的時序邏輯輸出      105 4.5.7  第二條指令分析小結(jié)         106 4.6  ALU分析         106 4.7  流水線數(shù)據(jù)相關(guān)的解決方法        112 4.8  定制屬于自己的指令   117 4.9  不完整流水線數(shù)據(jù)通路圖   121 第5章  特殊寄存器訪問類指令剖析          123 5.1  OR1200中的特殊寄存器      123 5.2  第0組特殊寄存器        125 5.3  特殊寄存器訪問類指令說明        127 5.4  分析用例        128 5.5  l.mfspr指令分析   130 5.5.1  l.mfspr取指階段的組合邏輯輸出    131 5.5.2  l.mfspr取指階段的時序邏輯輸出    132 5.5.3  l.mfspr譯碼階段的組合邏輯輸出    132 5.5.4  l.mfspr譯碼階段的時序邏輯輸出    133 5.5.5  l.mfspr執(zhí)行階段第1個時鐘周期的組合邏輯輸出         135 5.5.6  l.mfspr執(zhí)行階段第1個時鐘周期的時序邏輯輸出         138 5.5.7  l.mfspr執(zhí)行階段第2個時鐘周期的組合邏輯輸出         141 5.5.8  l.mfspr執(zhí)行階段第2個時鐘周期的時序邏輯輸出         144 5.5.9  l.mfspr指令分析小結(jié)         144 5.6  l.mtspr指令分析   145 5.6.1  l.mtspr執(zhí)行階段的組合邏輯輸出    147 5.6.2  l.mtspr執(zhí)行階段的時序邏輯輸出    148 5.7  SPRS分析       148 5.8  完善流水線數(shù)據(jù)通路圖        155 第6章  轉(zhuǎn)移類指令剖析     157 6.1  延遲槽   157 6.2  轉(zhuǎn)移類指令說明   158 6.3  分析用例        159 6.4  l.bf指令分析 161 6.4.1  l.bf取指階段的組合邏輯輸出  162 6.4.2  l.bf取指階段的時序邏輯輸出  163 6.4.3  l.bf譯碼階段的組合邏輯輸出  164 6.4.4  l.bf譯碼階段的時序邏輯輸出  166 6.4.5  l.bf執(zhí)行階段第1個時鐘周期的組合邏輯輸出       169 6.4.6  l.bf執(zhí)行階段第2個時鐘周期的組合邏輯輸出       173 6.4.7  l.bf執(zhí)行階段第2個時鐘周期的時序邏輯輸出       174 6.4.8  l.bf指令分析小結(jié)       175 6.5  l.jalr指令分析        176 6.5.1  l.jalr取指階段的組合邏輯輸出         177 6.5.2  l.jalr取指階段的時序邏輯輸出         177 6.5.3  l.jalr譯碼階段的組合邏輯輸出         177 6.5.4  l.jalr譯碼階段的時序邏輯輸出         179 6.5.5  l.jalr執(zhí)行階段第1個時鐘周期的組合邏輯輸出     180 6.5.6  l.jalr執(zhí)行階段第2個時鐘周期的組合邏輯輸出     181 6.5.7  l.jalr執(zhí)行階段第2個時鐘周期的時序邏輯輸出     182 6.6  轉(zhuǎn)移類指令對處理器效率的影響        182 6.7  繼續(xù)完善流水線數(shù)據(jù)通路圖        183 第7章  異常處理類指令剖析     185 7.1  OR1200中的異常分類 185 7.2  OR1200中的異常處理過程 185 7.3  異常處理類指令說明   187 7.4  分析用例        187 7.5  EXCEPTION模塊的作用         190 7.6  l.sys指令分析        195 7.6.1  l.sys取指階段的組合邏輯輸出         196 7.6.2  l.sys取指階段的時序邏輯輸出         196 7.6.3  l.sys譯碼階段的組合邏輯輸出         197 7.6.4  l.sys譯碼階段的時序邏輯輸出         198 7.6.5  l.sys執(zhí)行階段的組合邏輯輸出         199 7.6.6  l.sys執(zhí)行階段的時序邏輯輸出         201 7.6.7  異常處理過程——FLU1狀態(tài)   207 7.6.8  異常處理過程——FLU2狀態(tài)   211 7.6.9  異常處理過程——FLU3狀態(tài)   212 7.6.10  異常處理過程——FLU4狀態(tài) 212 7.6.11  異常處理過程——FLU5狀態(tài) 213 7.6.12  l.sys分析小結(jié)  214 7.7  l.trap指令分析      215 7.7.1  l.trap譯碼階段的時序邏輯輸出       216 7.7.2  l.trap執(zhí)行階段的組合邏輯輸出       216 7.7.3  l.trap執(zhí)行階段的時序邏輯輸出       216 7.7.4  異常處理過程——FLU1狀態(tài)   217 7.7.5  異常處理過程——FLU2狀態(tài)   217 7.7.6  l.trap分析小結(jié)  218 7.8  l.rfe指令分析         218 7.8.1  l.rfe取指階段的組合邏輯輸出          219 7.8.2  l.rfe取指階段的時序邏輯輸出          219 7.8.3  l.rfe譯碼階段的組合邏輯輸出          220 7.8.4  l.rfe譯碼階段的時序邏輯輸出          221 7.8.5  l.rfe執(zhí)行階段第1個時鐘周期的組合邏輯輸出     223 7.8.6  l.rfe執(zhí)行階段第2個時鐘周期的組合邏輯輸出     224 7.8.7  l.rfe執(zhí)行階段第2個時鐘周期的時序邏輯輸出     225 7.9  繼續(xù)完善流水線數(shù)據(jù)通路圖        226 第8章  乘法、除法類指令剖析          228 8.1  串行乘法與并行乘法   228 8.1.1  串行乘法    228 8.1.2  并行乘法    229 8.2  串行除法與并行除法   230 8.2.1  串行除法    230 8.2.2  并行除法    231 8.3  乘法、除法類指令說明        232 8.4  OR1200中關(guān)于乘法、除法的一些配置      234 8.5  分析用例        234 8.6  l.mul指令分析(串行乘法)       238 8.6.1  l.mul取指階段的組合邏輯輸出        239 8.6.2  l.mul取指階段的時序邏輯輸出        240 8.6.3  l.mul譯碼階段的組合邏輯輸出        240 8.6.4  l.mul譯碼階段的時序邏輯輸出        241 8.6.5  l.mul執(zhí)行階段第1個時鐘周期的組合邏輯輸出    243 8.6.6  l.mul執(zhí)行階段第1個時鐘周期的時序邏輯輸出    245 8.6.7  l.mul執(zhí)行階段第2個時鐘周期的組合邏輯輸出    247 8.6.8  l.mul執(zhí)行階段第2個時鐘周期的時序邏輯輸出    249 8.6.9  l.mul執(zhí)行階段第33個時鐘周期的時序邏輯輸出 250 8.6.10  l.mul執(zhí)行階段第34個時鐘周期的組合邏輯輸出        250 8.6.11  l.mul執(zhí)行階段第34個時鐘周期的時序邏輯輸出        252 8.6.12  l.mul執(zhí)行階段第35個時鐘周期的時序邏輯輸出        252 8.6.13  l.mul分析小結(jié) 252 8.7  l.mul指令分析(并行乘法)       253 8.7.1  l.mul執(zhí)行階段第1個時鐘周期的組合邏輯輸出(并行乘法)    253 8.7.2  l.mul執(zhí)行階段第1個時鐘周期的時序邏輯輸出(并行乘法)    254 8.7.3  l.mul執(zhí)行階段第2個時鐘周期的組合邏輯輸出(并行乘法)    255 8.7.4  l.mul執(zhí)行階段第2個時鐘周期的時序邏輯輸出(并行乘法)    256 8.7.5  l.mul執(zhí)行階段第3個時鐘周期的時序邏輯輸出(并行乘法)    256 8.7.6  l.mul執(zhí)行階段第4個時鐘周期的組合邏輯輸出(并行乘法)    256 8.7.7  l.mul執(zhí)行階段第4個時鐘周期的時序邏輯輸出(并行乘法)    257 8.7.8  l.mul執(zhí)行階段第5個時鐘周期的時序邏輯輸出(并行乘法)    257 8.7.9  l.mul分析小結(jié)(并行乘法)   257 8.8  l.mac指令分析      257 8.8.1  l.mac執(zhí)行階段第1個時鐘周期的組合邏輯輸出   259 8.8.2  l.mac執(zhí)行階段第1個時鐘周期的時序邏輯輸出   260 8.8.3  l.mac執(zhí)行階段第2個時鐘周期的組合邏輯輸出   261 8.8.4  l.mac執(zhí)行階段第2個時鐘周期的時序邏輯輸出   261 8.8.5  后l.mac執(zhí)行階段第1個時鐘周期的時序邏輯輸出      262 8.8.6  后l.mac執(zhí)行階段第2個時鐘周期的時序邏輯輸出      262 8.8.7  l.mac指令分析小結(jié)  263 8.9  l.div指令分析(串行除法)         263 8.10  繼續(xù)完善流水線數(shù)據(jù)通路圖      266 第9章  加載存儲類指令剖析     268 9.1  加載存儲類指令說明   268 9.2  分析用例        270 9.3  l.sb指令分析          274 9.3.1  l.sb取指階段的組合邏輯輸出 276 9.3.2  l.sb取指階段的時序邏輯輸出 276 9.3.3  l.sb譯碼階段的組合邏輯輸出 276 9.3.4  l.sb譯碼階段的時序邏輯輸出 278 9.3.5  l.sb執(zhí)行階段第1個時鐘周期的組合邏輯輸出      280 9.3.6  l.sb執(zhí)行階段第2個時鐘周期的組合邏輯輸出      286 9.3.7  l.sb執(zhí)行階段第2個時鐘周期的時序邏輯輸出      287 9.3.8  l.sb指令分析小結(jié)      287 9.4  l.lbs指令分析         288 9.4.1  l.lbs執(zhí)行階段第1個時鐘周期的組合邏輯輸出     290 9.4.2  l.lbs執(zhí)行階段第2個時鐘周期的組合邏輯輸出     291 9.4.3  l.lbs執(zhí)行階段第2個時鐘周期的時序邏輯輸出     294 9.4.4  l.lbs指令分析小結(jié)     294 9.5  對齊異常處理流程        295 9.6  三級流水線還是五級流水線        297 9.7  完整的流水線數(shù)據(jù)通路圖   298 第10章  MMU剖析     301 10.1  MMU的作用及工作過程   301 10.2  TLB的作用及工作過程       303 10.3  IMMU分析  305 10.3.1  IMMU結(jié)構(gòu)       305 10.3.2  IMMU中的特殊寄存器   307 10.3.3  OR1200中關(guān)于IMMU的一些配置         308 10.3.4  ITLB代碼分析  309 10.3.5  IMMU使用情景       313 10.3.6  分析用例  313 10.3.7  IMMU使用情景之一——指令取指階段ITLB命中且無頁錯誤情況下IMMU工作分析 324 10.3.8  IMMU使用情景之二——指令取指階段ITLB未命中情況下IMMU工作分析 329 10.3.9  IMMU使用情景之三——指令取指階段ITLB命中但有頁錯誤情況下IMMU工作分析 333 10.3.10  IMMU使用情景之四——l.mtspr執(zhí)行階段IMMU工作分析    333 10.3.11  IMMU使用情景之五——l.mfspr執(zhí)行階段IMMU工作分析    335 10.3.12  IMMU分析小結(jié)     336 10.4  DMMU分析         336 10.4.1  DTLB結(jié)構(gòu)圖     337 10.4.2  DMMU中的特殊寄存器 337 10.4.3  DMMU使用情景      338 第11章  基于OR1200的一個簡單SOPC   340 11.1  簡單SOPC的結(jié)構(gòu)        340 11.2  Wishbone總線互聯(lián)矩陣WB_CONMAX     341 11.3  掛接在互聯(lián)矩陣WB_CONMAX下的RAM模塊        342 11.4  SOPC頂層文件    344 11.5  ModelSim新建工程min_or1200_sopc       346 11.6  示例程序      348 第12章  ICache剖析   350 12.1  Cache基本知識  350 12.1.1  Cache的作用   350 12.1.2  Cache的結(jié)構(gòu)與工作過程        351 12.2  OR1200中Cache簡介         352 12.3  ICache結(jié)構(gòu) 353 12.3.1  ICache模塊與其余模塊的連接關(guān)系       353 12.3.2  ICache中數(shù)據(jù)部分  354 12.3.3  ICache中控制部分  356

Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號