“芯”照不宣:《CPU自制入門》——二爺鑑書

徐騫發表於2013-12-13

以下是“二爺鑑書”特地為《CPU自制入門》寫的書評。書贊、書評贊、二爺與譯者的兄弟情贊~小編讀後,更是“芯”潮澎湃,各種激動、感動。《CPU自制入門》下週就要上市(預售地址:【JD】【Amazon】)了,想必大家都已經“芯”馳神往了。 接下來,我們們先來一睹二爺的書評為快吧。


enter image description here
借花獻佛,送幾本書給大家。

這本書的譯者趙謙是我多年好友,我前些天跟他要了手稿,連夜讀完,跟大家分享一些感受。另外由於他人在日本,便讓圖靈社把樣書都寄到了我這裡,除了他託我轉贈朋友外還剩下幾本。我便順水推舟做個人情,送給二爺鑑書的讀者們吧,具體的規則見文末。

這篇東西可能有些令人不適的專業術語,文青慎入。

書是連滾帶爬讀完的,讀完靜思,心裡突然充滿了感動,似乎看到那些在周圍人眼中毫無情趣的所謂「屌絲」們嘴角不經意的浪漫。他們彼此並不相識,但他們之間的信任,構成了整個當代電子文明的基石。

為啥這麼說呢?就說我們手上的手機,我們使用的手機應用來自設計師們的設計,而設計師的草稿需要軟體工程師的實現,軟體工程師呼叫手機系統封裝好的介面,介面依賴於作業系統的排程,作業系統建立在硬體驅動之上,驅動經過編譯器變成晶片們可以理解的指令,指令通過電路板上纖細的金屬進入晶片,在晶片中的邏輯閘間穿梭,邏輯閘等待場效電晶體的開啟和關閉,而矽晶片上的刻蝕,形成了這些場效電晶體。

作為一個做產品設計的,嚮應用中新增一個按鈕的時候,我從不擔心晶片上發生的事情。我知道它們會精確工作。正是這樣的信任成全了設計師,成全了使用者。

我在高中畢業那一年買了人生第一塊微控制器開發板,當我按照手冊上一步一步插線上電,只寫了不到十行程式碼就點亮了板上的一個 LED 時,我震住了,我想向墨綠色的板子深深鞠躬,向晶片那邊的可靠致意,把信任交給他們,與他們心照不宣。

大部分程式設計師對計算機系統都會有或模糊或清晰的概念模型,有本《深入理解計算機系統》把這個描述得出神入化(這是我給所有程式設計師薦書榜的第一名)。而《CPU 自制入門》則是對計算機系統實現模型的深入解釋,一本看起來應該非常晦澀的書,竟然具備了「操作性」,確實挺不容易的。

再說說書的內容,書裡基於 FPGA 實現了一個 CPU 原型,說起來也不能算是 CPU,因為 FPGA 裡面還實現了匯流排、記憶體和其他模組,所以應該算是一個片上系統(SoC)。

第一章基本從0開始介紹了 CPU 的原理,這個0是真的很0,從場效電晶體開始到邏輯閘到數位電路,然後簡單介紹了硬體描述語言(HDL),又深入淺出地介紹了 CPU 的工作原理,然後就地用 Verilog 語言實現了一個簡單的 CPU 原型。讀這部分的時候我挺懷舊的,想起大學時光。這一章的佔比最大,也算是最有意思的一部分。

即使你永遠也不設計 CPU,從這一章中也能學到不少解決問題的思路和方法。比如鎖存器,比如處理 CPU 內部的流水線冒險,比如匯流排裁決和控制等等,有不少讓人拍案叫絕的智慧,很有借鑑意義。

第二章是講如何制板,從原理圖到封裝到布板一直到最後的制板和焊接,日本人寫書都娓娓道來,一幀一幀的,書裡竟然還有買電子元器件的店的地址,還真是嚴謹得有點兒蠢,哈哈哈哈。

第三章是程式設計,算是操作手冊吧,最終的樣例程式是彙編,彙編器是現成的,其中說了交叉編譯啦,中斷啦,JTAG 除錯之類的一些概念,還有實際的操作步驟。

總的說來,整本書是從底層到上層,從原理到工程,從構思到實現的過程。話說估計大部分人永遠都不會真的「設計 CPU」,這本書的真正目的其實是通過一個最小系統來讓大家手把手地理解 CPU。

FPGA 可以引出一個非常有意思的話題。硬體行業一直高舉著摩爾定律的大旗蒸蒸日上,但市場對效能和儲存的需求卻翻得比摩爾定律還快,前幾天跟朋友聊天,說起淘寶商品詳情頁的每日 PV 數量級,我差點兒嚇休克。在這樣的情景中,我們熟悉的 CPU 的運算控制架構在需求面前不經意流露出了一點點力不從心,雖然不知道大家在通用硬體架構上拼軟體的日子還有多久,但我猜至少已經到了下半場了吧。

另一方面,從一九八幾年普適計算提出,到現在穿戴式裝置火爆。計算能力的場景化和個性化越來越重要。有的需要大量的數字訊號處理,有的需要低功耗,有的需要高速數模轉換或者海量儲存。隨著對更個性化異構運算的需求越來越細緻以及硬體訂製成本的下降,基於個性化硬體架構的生意可能會越來越多。原來這些是英偉達英特爾高通之類的大廠才有實力做的事情,或許未來在車庫就能完成。

從這個意義上來看,iPhone 5s 其實是一部跨時代的手機,他的協處理器直接在硬體層面解決了「低功耗地完成追蹤及資料記錄」的問題。

趙謙在葡萄牙參加一個學術會議期間,曾經給我發來一個訊息,告訴我會上有個人用 FPGA 加速了 MySQL 的 group 效率,「或許很快就能走出實驗室了」,他興奮地跟我說。我順手翻了幾篇文獻,有個挺感慨的事情是,在這個行業中谷歌微軟等公司的硬體實驗室頻繁露面,國內的網際網路廠商似乎還鮮有發聲。

是啊,聽說國內好多高科技企業的研究所還有「贏利壓力」呢。

——————————

送書規則(二爺鑑書)

首先關注“二爺鑑書”,微訊號:findbook
(第一時間向大家推薦好書並介紹,同時堅決揭露爛書,以IT、網際網路行業為主。)

enter image description here
(掃一掃,訂閱“二爺鑑書”。 )

下文幾句,“我”=“二爺鑑書”。

如果這本書對你有用,只要在微信上回復我,說明你對這本書的期望或需要這本書的理由。

另附你的自我介紹和聯絡方式即可。(放心我不會把你的資訊給別人的,會直接給你寄送)

我會選我喜歡的送書,如果有許多值得送的以至於樣書不夠用了,我會自己掏錢買給大家。

當然,如果你像我一樣,是個急性子,也可以先去亞馬遜京東預訂。

如果你願意分享給更多人,我代作者和譯者謝謝大家了 :)


下文為二爺與譯者的“基情”深度解析,來來來~小編邀大家趕緊來”研究“一番,看誰能吐得一口好槽~^^

瞎扯·記與本書譯者趙博士二三事

這本書的譯者趙謙是我多年的老友,大約十年前我們相識在學校資訊學奧林匹克競賽集訓隊裡,當時我們只有一本嚴蔚敏的綠皮《資料結構》和一堆競賽題目。學校不太重視這個學科,也沒什麼培訓,就把我們丟在機房自己折騰,非常自由。

我們剛認識的時候,他給我講一道防空高射炮打飛機的演算法題,「這是一個二叉樹」,他用筆在紙上畫起來,很篤定地告訴我,我很認真的記在心裡。

後來我們都知道那是個典型的最長不下降子串的問題,但心照不宣地都沒有再聊起這個事情。我讀大學參加 ACM 邀請賽,有一道類似的題目,我一次編譯測試提交通過,我的隊友都震驚了。我望向窗外,天那麼藍,樹葉那麼綠,空氣溫熱直插入肺,想起當時他給我講「這是一個二叉樹」時緊緊包裹手腕的袖口,我想我這輩子都很難再有這麼灑脫這麼酷斃又自信的時刻了。

他高中時和同學組過一個樂隊,他是吉他手,樂隊上過《快樂大本營》節目,成了我們學校的明星,收發室一度被寫給他們的信件淹沒。有一次我在他家玩兒,他指著吉他問我學不學,我說走著唄。可惜最後我還是沒學好,沒能成功淪為一個文青。

之後我們斷斷續續地寫歌。我們像所有無病呻吟多愁善感的年輕人一樣歌頌理想和心愛的姑娘,用的都是些俗套的和絃平淡的旋律和毫無新意的韻腳。前些日子我們終於合作匆匆寫了首歌,歌曲名字叫做《反正世界上已經有這麼多爛歌也不差這一首》,這是後話了。

高中快畢業時老師來找我們,說你們倆會電腦,折騰個網站代表學校參加比賽。其實我們都不會這個,於是我去買了本21天精通Dreamweaver,扳著指頭算了一下時間應該來得及,他說那我們來吧。

我們倆合作了兩個作品。後來兩個都得了市裡的獎,被送到省裡參加比賽,有一個得了一等獎。後來老師私下說你們有點兒不懂事兒,如果你們每個作品只署一個名字說不定能得兩個一等獎,浪費了。我們大度地淡淡一笑,說臥槽你為什麼不早點說。

得獎的作品來源於我當時看的一本關於視錯覺的書,那本書給我的震動很大,趙謙選定了一個主題——「眼見未必為實」,他說這是包含樸素的哲學含義的。

當時我們都不會做動畫、視訊和音樂什麼的。我們一商量,說去他媽的既然我們跟他們一樣搞不過他們,乾脆就做點兒不一樣的。於是我們的所有圖示、Banner 和導航都是用鉛筆畫好掃描進去的。為我們執筆的那個姑娘是趙謙的歌迷,她可能是我合作過最配合的設計師了,滿足了我所有的苛刻的挑剔的反覆的要求。我想她將來一定會是一個優秀的乙方。

當時的作品至今還在硬碟裡儲存著,作品叫做 Lying Eyes,若干年後我才知道這是老鷹樂隊的一首歌名,我當時的第一個反應是,還好,沒有語法錯誤。

「我們將向您證明,您的眼睛有時會說謊」我們在網站入口頁上深情地寫到。

後來我們從高中畢業上了大學,雖然不在同一個城市,但還是保持聯絡,扯各種層次的蛋。分享見聞,分享心得,分享種子,猜測未來的日子,總覺得未來遙遠的就像一篇課堂作文。

上個月我和媳婦遠赴東瀛去拜訪他一家人,他可愛的女兒趴在我懷裡呼呼大睡,我把她搖醒說來吧姑娘,邱爸爸給你講講人生的哲理和生活的真諦。寶貝嘴一撇要哭出來的樣子,我心裡暗喜,將來肯定不會被裝逼的壞男孩兒騙。想到這裡背後一涼,昨天自己還是那個裝逼的壞男孩兒,今天已經是他們想誘騙的姑娘的父親,心中一陣絞痛。快如迅雷的時間啊,請給我們掩耳盜鈴的片刻喘息吧。

在我們的大學期間,他斷斷續續做了個化妝品評測網站,號稱當時是國內最大的,成了一個 Web 程式設計師。我說你真他媽沒出息,搞那些花裡胡哨的有啥用,讓你看看什麼才是真正有價值的技術,於是一頭扎進晶片和電烙鐵之間開始搞嵌入式。

就在他眼看就要成為網際網路行業一顆冉冉升起的新星,而我也即將在元件庫中找到屬於我的封裝之際,突然峰迴路轉。他去日本深造研究起 IC 設計,我則徹底告別了底層和程式碼,一頭扎進了網際網路行業。

上週,他翻譯的《CPU 自制入門》完稿了,我則即將磕磕絆絆地開啟第七年 Web 產品經理的生涯。

命運真他媽是個特別神奇的東西。


題圖是上月趙謙帶我去阿蘇火山,去火山口的路上拍的,我很喜歡。

相關文章