基礎上不能與人並駕齊驅,永遠不要談超越別人。

陳冰發表於2014-02-14

讀《自己設計製作CPU,自己設計製作計算機》有感,摘取一部分:

(這是國人自己寫的一本書,非日本的那本《CPU自制入門》)

理論與實戰密切結合沒有不能逾越的鴻溝。

深刻簡潔的計算機理論和方法能讓你攀登最高峰。

不親自設計CPU的人很難以理解計算機的真諦。

基礎上不能與人並駕齊驅,永遠不要談超越別人。

上篇 程式設計製作CPU

計算機是人類智慧的最高結晶,CPU是這種智慧結晶的核心。我們只有掌握了CPU 的設計製作技術,才能說真正掌握了計算機。計算機電子電路設計最基本的方法是原理圖,這種設計方法不僅要掌握計算機的理論和方法,而且要深刻理解電子電路的相關知識和技術。原理圖設計方法對搞軟體設計為主的人來說,有一定的難度。近些年發展起來的硬體程式語言,在很大程度上降低了設計者對硬體電路細節的設計要求,通過電子設計自動化EDA(Electronic Design Automation)軟體,就能夠開發出一些硬體產品,這大大降低了電子電路的設計難度,非常受電子市場產品的設計製造者歡迎。EDA軟體的設計者將常用的基本電子電路,做成了可以直接用程式語言描述的元器件,EDA軟體使用者在不很瞭解元器件結構細節的情況下,就可以拿來組織自己的較為更復雜的電路,從而簡便了電子電路的設計。不太懂原理圖設計的人開始接觸CPU設計,當然最好是從程式設計的方法入手,待有了一定的基礎之後,再深入研究原理圖設計方法,深刻地去探求CPU設計的電子電路實現問題更好。

本篇我們假定讀者有c語言設計經驗,在懂得計算機基礎知識的基礎上,以硬體設計語言Verilog HDL為主,通過程式設計的方法引領讀者快速地進入計算機CPU設計的天地,引領讀者學會用程式設計方法設計CPU和製作簡單的計算機。如果需要首先了解原理圖設計CPU的方法,請直接閱讀中篇的相關內容。

第1章 自己就能設計製造CPU

幾年前我曾勸別人與我一起搞CPU設計,但那時得到的回答:“搞CPU設計?水太深了!” 計算機是資訊世界的佼佼者,計算機的CPU使人感到奧妙高深,神祕莫測。如今的計算機CPU除了包含運算器、控制器之外,還包含有快取記憶體cache儲存器,是計算機智慧的核心,所以又被稱為核。我國把與計算機相關的資訊產業叫高新技術產業,這無形當中更增加了人們對計算機CPU設計製作的神祕程度。能夠設計製作CPU,

無疑是每一個學習計算機技術的人嚮往的事情。一個人自己可以設計製造CPU嗎?若干年前,這個問題的回答是否定的。如今則不同了,我以我設計製作計算機CPU的經歷和經驗,可以完全肯定地告訴你,這現在不僅能夠作到,而且能夠作得很好。


由於超大規模積體電路技術的發展,近十幾年出現了現場可程式設計陣列器件FPGA,這實電子電路的設計工作一下子從“刀耕火種”的時代擺脫出來,從眾人一起從事CPU設計製造的大協作時期,進入了個人設計製造複雜的CPU時代。你不信嗎?作為被稱為人類“高科技”的計算機CPU設計製造,被我三言兩語輕鬆地說“自己能夠製造”,這未免有些吹牛了吧?如果你有c程式設計的基礎,又是一個確實想要探求計算機的核心部件CPU設計製造的人,就不妨通過本書同我一起去製造幾個CPU試試吧。

1.1 自己設計製作CPU有啥意義?

我國真正普遍應用計算機還是在上世紀80年代,那時多數人都缺乏對計算機的全面認識,認為買計算機就如同買汽車一樣,買回來用就是了。因而從上到下都把主要精力放在了軟體方面,再加上我國積體電路技術方面的落後,因而在計算機核心設計方面沒有多大的發展。直到21世紀初,我們才有了自己設計製造計算機核心部件CPU的打算,但是多數都在仿造美國的設計,根本談不上獨立的創新設計。我國之所以到21世紀初才進入了計算機核心設計,其關鍵的問題是缺乏缺乏進行計算機核心設計的硬體條件。1945年第一臺電子計算機用的是電子管制作的,這臺計算機的體積有一座樓房那麼大。以後即使有了電晶體和印刷電路技術,計算機仍然不能普遍地應用,包括國外也只是在一些科研單位和重要部門使用。至於我國就更是談不上應用計算機的普及問題了,加之我國又經歷了“文化大革命”,計算機基礎的薄弱就更凸現出來了。文革後期,由清華大學、北京無線電三廠、天津無線電技術研究所、江蘇無線電廠、蘇州無線電廠、中國科學院原子能研究所、上海師範大學、上海無線電十三廠和上海中興無線電廠等單位聯合,在1974年以“NOVA1200小型機為藍本作為仿製樣機”DJS130小型計算機。DJS130 小型計算機以德國造的打字機作為輸入輸出裝置,沒有顯示器,主機箱就有寫字檯那麼大,記憶體是磁芯結構,起初只有32k,關鍵零部件是不是自己設計的無從知曉。據有關人士透漏,總共生產了1000餘臺供科研院所使用。但後來受到了國外計算機廠商的衝擊,沒有了繼續發展的潛力。我國的CPU設計直到上世紀初期才綻露頭腳,以“龍芯”為代表的超大規模積體電路結構,山寨MIPS的CPU誕生了,嚴格地說,這不算自己設計的CPU。 什麼是自己設計的CPU呢?那應該是指令系統和整體結構都是自己設計的才算。據報導,“龍芯”與美國MIPS公司已經簽約,承認了MIPS公司在“龍芯”晶片中的智慧財產權,龍芯公司負責人對外講只是認可指令系統。CPU的指令系統包含了什麼?是整個計算機的設計思想與方法!其實,仿製並不是一件羞恥的事情,相反,仿製是一種快速深入學習的極好方法,是深入領會他人先進技術和理論的極好形式,進而能夠為自己的創新設計打下良好的基礎。試問,哪一個搞科學研究的人不是從“仿製”先人或他人的思想方法開始的?

還好,上個世紀後期傳入我國的FPGA器件和相關技術,給了我們一個從源頭設計製造計算機CPU的機會。FPGA技術讓計算機設計從集團作戰,進入了可以個人設計的階段,於是我國才出現了一批真正致力於計算機CPU設計的科學家。

計算機經歷將近70年的發展歷程,可以說已經相當完善了。但是,我們為什麼還要在這裡提倡自己設計製作CPU呢?自己設計製作CPU對我們來說,大致有以下幾條理由:

計算機雖然產生於西方國家,但這是全人類的巨大財富,在智慧財產權被普遍承認的時代,誰掌握了計算機的核心CPU設計技術,就如同掌握了人類財富中巨大金礦的鑰匙。只有掌握了計算機CPU的核心技術,我們才能夠有權力使用和享受資訊這筆人類巨大的社會財富。

長期以來,我國計算機人員大多數都遊離在計算機核心設計技術之外,大多數都在使用國外製造好的計算機,並把精力用在了軟體程式設計上,甚至錯誤地認為“軟體什麼事情都能做”,這阻礙了我國計算機核心CPU技術發展。

目前,我國知名的計算機專家多數都沒有自己從頭設計製造計算機的經驗,他們大部分都是軟體出身,考慮問題常常重軟體輕硬體。他們多是某一方面的專家,對計算機能夠全面掌握,融會貫通的專家少之又少,而且他們多數年邁,已經很難有精力自己從頭到尾進行親歷的CPU設計過程。一些國家基金評審專家,多數都沒有自己設計製作CPU的經驗,他們好以本本上的東西,或者用從前那種粗淺的經驗,或從美國等舶來的並非全面的東西去衡量申報的專案,對個人設計製造CPU往往不屑一顧,甚至認為不可能,嚴重埋沒和耽誤了我國計算機人才的發展。衝破知識框架阻力,需要造就一批對CPU設計製造能夠融會貫通的計算機CPU設計人才。

我國的計算機教育和微電子教育脫節,弄得計算機專業的學生對電子電路似懂非懂,根本就不去涉獵計算機硬體方面的設計。而學微電子的學生都在大量地使用國外的核心部件,在人家提供的CPU產品基礎上,作下游產品,技術上多數在做介面,按照人家安排的使用者方法做進一步的應用。他們根本就用不著對計算機CPU等核心結構設計和製造,根本就沒有機會作CPU設計實踐。更叫人不能容忍的是教師也是對CPU內部結構和設計方法似通非通,對CPU設計製作知道得較少。因而自己設計製作CPU,那是培養計算機、微電子高水平師生的需要。

計算機產業過於追求市場,追求利潤,他們多數都在藉助於美國或其他國家的大公司賺錢,而不能夠去深入探討計算機理論,技術革新,更談不上解決計算機自身關鍵性的問題,多數情況人云亦云,跟著國際公司的商業宣傳鼓譟國內市場,獲取國外公司剩餘下來的少數利潤。急功近利的思想,統治著我國的計算機企業界,更不要說創造性地去搞計算機CPU設計製造。

像“核高基”一類的國家重大專案,瞄準的是所謂國際水準,搞大兵團作戰,參加專案的單位被任務壓得抬不起頭來,如何在CPU設計領域真正去搞創新?多數的情況是將國外知名公司的CPU設計拿來剖析,修修改改,很難從自己的認識去真正設計創新的CPU產品,這樣大多數CPU都會落入人家CPU設計翻版的圈圈,難以逃出。

CPU設計製作是軟硬體一體化工程,搞CPU設計必須軟體硬體都要精通。而這種精通必須從CPU設計的實踐中才能夠獲得,因此,必須培養計算機軟硬體方面的全才,這種全才人才系統培養的最好方法,就是要通過CPU設計製作的過程磨練。

電子設計自動化EDA技術的發展,為個人設計製作CPU提供了很好的條件,人們不必再需要投入大量的資金,去購買材料和裝置,也不需要去搞多人的協作,一起去設計CPU。只要你有強烈的興趣和靈光的頭腦,就可以在家中設計製作CPU,可以完全按著自己的設想進行CPU設計實踐。

我國計算機CPU設計製作人才奇缺,培養自己設計製造計算機CPU的才智和能力,是國家強盛的需要,是實現中國夢的需要。面對國家發展的需要,我們怎麼能夠說不呢?

資訊時代的關鍵產品是計算機,而計算機關鍵的產品是CPU。世界資訊科技產業的發展,目前給了我們一個非常難得的機遇,抓住機遇,快速地培養自己的設計製作計算機核心部件CPU的能力,我們才有希望成為資訊時代的強國。

相關文章