自己動手寫CPU 
作者: 雷思磊 / 審校:陳佳新
書號: ACA020600     出版日: 2015/06/01
ISBN: 9789863476429     EAN: 9789863476429
紙本書價格: 620     附件:  線上下載
電子書: 尚未出版
試讀  
  博客來  
  金石堂  
  天瓏  
  團體購書



回頁首
揭開CPU的神祕面紗,幫助您深入了解電腦的組成原理與系統架構
介紹從無到有打造處理器的開發過程


本書將帶領您使用Verilog HDL 設計實現一款兼容MIPS32指令集架構的處理器:OpenMIPS。
全書共分為三篇。第一篇是理論篇,介紹了指令集架構、Verilog HDL的相關知識。第二篇是基礎篇,採用增量模型,實現了教學版OpenMIPS處理器。首先實現了僅能執行一道指令的處理器,從這個最簡單的情況出發,逐步實現邏輯操作指令、移位操作指令、空指令、移動操作指令、算術操作指令、轉移指令、加載儲存指令、協處理器存取指令、異常相關指令,逐步完成教學版OpenMIPS處理器。第三篇是進階篇,透過為教學版OpenMIPS加上Wishbone總線接口,從而實現了實踐版OpenMIPS處理器,並與SDRAM控制器、GPIO模塊、Flash控制器、UART控制器、Wishbone總線互聯矩陣等模塊組成一個小型SOPC,然後下載到FPGA晶片以驗證實現效果,最後為實踐版OpenMIPS處理器移植了嵌入式實時操作系統μC/OS-II。

回頁首
雷思磊
理工男,好靜,倡導低碳生活,常以環保人士自居,喜讀書,自幼篤信「博觀而約取,厚積而薄發」。是故,所讀書籍甚為駁雜,年近而立,尚不確定根本興趣目標,一日,駐足書架之前,細覽所讀書籍,驚覺隨歲月增長,關注點依次從程式設計、作業系統、驅動程式設計轉移至處理器結構,此一脈絡極其清晰,遂如醍醐灌頂,幡然醒悟,原來根本興趣目標在「底層」,在於從根本上理解世界之運行,遂耗數年時間鑽研處理器工作原理,乃有些微收穫,拙作當為數年辛苦之小結,然學無止境,科技發展亦日新月異,唯有持續鑽研,方能大成,屈子曰:路漫漫其修遠兮,吾將上下而求索。此言甚是,余定謹記而遵行之。


回頁首
自1971年世界上第一款單晶片微處理器4004誕生已逾40多年,使用“日新月異”來形容這40多年處理器的發展變化亦不爲過,無論是速度、整合度,還是架構等許多方面都有了前人難以想像的變化。不過可惜的是,處理器設計製造一直都是高科技行業,輕易無法涉足。大多數人對處理器的直觀印象就是一個銀白色的小晶片,有許多接腳,至於裡面是如何工作的,則不甚瞭解,更不用說自己製作處理器了。

幸運的是,在處理器發展的同時,可程式設計邏輯裝置也在持續發展。可程式設計邏輯裝置不僅是技術的革新,也帶來了觀念的革新、設計流程的革新。如今透過編寫程式碼可以在可程式設計邏輯裝置上實現十分複雜的電路設計,比如處理器。於是,普羅大衆也能有機會瞭解處理器內部的實現原理,甚至參與處理器的設計、研發。

實際上,目前已經有很多可以下載到可程式設計邏輯裝置上執行的處理器,這些處理器稱爲軟核心處理器,例如:NiosII、OR1200、LEON3、OpenSparc等,這些軟核心處理器有的是開源的,有的不是開源的。筆者在前期深入閱讀了幾款開源軟核心處理器的程式碼,包括:OC8051、OR1200、LEON3。其中,OC8051是OpenCores提供的一款8位元兩階管線處理器,與Intel 8051相容,是CISC(Complex Instruction Set Computer)類型,採用Verilog HDL編寫程式碼。OR1200是OpenCores提供的一款32位元五階管線處理器,是RISC(Reduced Instruction Set Computer)類型,也採用Verilog HDL編寫程式碼。LEON3是由Gaisler Research公司設計發布的一款32位元七階管線處理器,也是RISC類型,但採用的是VHDL編寫程式碼。

透過閱讀上述開源軟核心處理器的程式碼,一方面消除了筆者對處理器的神秘印象,另一方面也激發了筆者強烈的創作衝動,陸游曾言:紙上得來終覺淺,絕知此事要躬行。是啊!爲何不自己也寫入一個處理器?於是世間又多了一款開源處理器OpenMIPS。OpenMIPS是具有哈佛架構的32位元五階管線純量處理器,相容MIPS32架構,這樣可以使用現有的MIPS編譯開發環境。它分爲教學版和實踐版兩個版本,每個版本都使用VHDL和Verilog HDL兩種語言編寫。

本書以Verilog HDL編寫的版本爲例,詳細介紹了OpenMIPS從無到有、從小到大、一步一步成長完善的過程。

回頁首

嵌入式 Android 系統 建立嵌入式系統--傑出軟體的設計模式


回頁首

第1章 處理器與MIPS
介紹目前主流的指令集架構,由於OpenMIPS採用MIPS32指令集架構,所以本章將特別著重MIPS32指令集架構的說明。

第2章 可程式設計邏輯裝置與Verilog HDL
介紹了FPGA、Verilog HDL的基礎知識,FPGA是可程式設計邏輯裝置的一種,本書的實踐版OpenMIPS處理器就將在FPGA上執行。

第3章 教學版OpenMIPS 處理器藍圖
介紹了教學版OpenMIPS處理器的設計藍圖,包括設計目標、處理器介面,以及最終完成時組成OpenMIPS的各個模組的作用。

第4章 第一條指令ori 的實現
實現了OpenMIPS處理器的第一道指令ori,之所以選擇這條指令作爲第一道指令,就是因爲它夠簡單,指令ori用來實現邏輯“或”運算,透過這道簡單指令的實現,初步建立了OpenMIPS的五階管線架構。

第5章 邏輯、移位操作與空指令的實現
討論並解決了管線資料的相依問題,然後修改第4章的OpenMIPS,實現了MIPS32指令集架構中定義的邏輯、移位操作與空指令。

第6章 移動操作指令的實現
介紹並實作MIPS32指令集架構中定義的移動操作指令。

第7章 算術操作指令的實現
介紹並實作MIPS32指令集架構中定義的算術操作指令。

第8章 轉移指令的實現
介紹並實作MIPS32指令集架構中定義的轉移指令,OpenMIPS支援延遲轉移。

第9章 載入儲存指令的實現
介紹並實作MIPS32指令集架構中定義的載入儲存指令。

第10章 協同處理器存取指令的實現
介紹並實作MIPS32指令集架構中定義的協同處理器CP0,以及協同處理器存取指令。

第11章 異常相關指令的實現
介紹並實作MIPS32指令集架構中定義的異常相關指令,並實現了異常處理。
在每一類指令的實現程式中,都是先介紹該類指令的格式、作用和用法,然後介紹實現思路,接著透過修改程式碼實現該類指令,最後,編寫測試程式,使用模擬的方式驗證實現的正確性。

第12章 實踐版OpenMIPS處理器設計與實現
介紹在教學版OpenMIPS處理器的基礎上,透過Wishbone匯流排介面模組的加入,實現了實踐版OpenMIPS處理器。

第13章 基於實踐版OpenMIPS的小型SOPC
講述設計實現了基於實踐版OpenMIPS處理器的小型可程式設計系統單晶片SOPC的整個過程。

第14章 驗證實踐版OpenMIPS處理器
將第13章實作的小型SOPC下載到實際的硬體平台上,編寫測試程式,驗證實踐版OpenMIPS處理器實現的正確性。

第15章 為OpenMIPS 處理器移植μC/OS-II
介紹了嵌入式即時作業系統μC/OS-II,並將其移植到本書設計的OpenMIPS處理器上,進一步驗證了實踐版OpenMIPS處理器實現的正確性,也爲OpenMIPS處理器發揮實際作用奠定了基礎。


  
 

關於碁峰隱私權政策聯絡我們     檢視 : PC 版  手機版
碁峰資訊股份有限公司 GOTOP INFORMATION INC.
台北市南港區三重路66號7樓之6 / 7F.-6,No.66,Sanchong Rd.,Nangang District,Taipei
TEL:(02)2788-2408 FAX:(02)8192-4433 劃撥帳號:14244383
Copyright 2014© GOTOP Information Inc, All Rights Reserved 請勿任意連結、轉載