如果有一本書,教導你如何從無到有設計一個計算機系統,並且最後可以在上面開發小遊戲,你的感覺如何?我覺得棒呆了!!
最近發現一本很好的電腦書籍 - The Elements of Computing Systems,這本書就指導讀者如何從基本的邏輯元件設計開始,逐步地完成CPU、Memory、Assembler、Compiler、OS,最後則是一些小遊戲。所以在這個過程我們要學習如何撰寫HDL、如何設計CPU、如何設計memory、如何實作assembler、如何實作compiler、如何實作OS,到最後就是一些應用程式(我的目標是俄羅斯方塊)。並且完全是依靠自給自足的開發環境來完成這個過程,所有的工具都是作者自行設計實作的,也都open source,可以盡情hack。
在網站上提供的各種教學文件非常完整且獨立,我們可以一步一步完成每個組件,讓新的組件依據我們前一個完成的基礎去運作,也可以隨意跳到喜歡的章節開始實作該組件,完成後可以進行模擬的測試。
這本書並不厚,因為作者在書中描述的主要是觀念,然後將工具的使用說明放在網站上,我蠻喜歡這種作法,因為這樣書籍可以專注在知識的呈現,而操作就在電腦上直接執行。由於我打算將這本書精讀,並實作每個projects,所以定一個hobby project給自己,就叫作FNTT好了,意思是From Nand to Tetris(這也是作者開的課程的名稱),今天剛完成第一章的習題(如果你也有興趣的話,歡迎一起參加這個小專案),是用HDL設計幾個基本元件,截圖如下,很酷吧? :)
最近發現一本很好的電腦書籍 - The Elements of Computing Systems,這本書就指導讀者如何從基本的邏輯元件設計開始,逐步地完成CPU、Memory、Assembler、Compiler、OS,最後則是一些小遊戲。所以在這個過程我們要學習如何撰寫HDL、如何設計CPU、如何設計memory、如何實作assembler、如何實作compiler、如何實作OS,到最後就是一些應用程式(我的目標是俄羅斯方塊)。並且完全是依靠自給自足的開發環境來完成這個過程,所有的工具都是作者自行設計實作的,也都open source,可以盡情hack。
在網站上提供的各種教學文件非常完整且獨立,我們可以一步一步完成每個組件,讓新的組件依據我們前一個完成的基礎去運作,也可以隨意跳到喜歡的章節開始實作該組件,完成後可以進行模擬的測試。
這本書並不厚,因為作者在書中描述的主要是觀念,然後將工具的使用說明放在網站上,我蠻喜歡這種作法,因為這樣書籍可以專注在知識的呈現,而操作就在電腦上直接執行。由於我打算將這本書精讀,並實作每個projects,所以定一個hobby project給自己,就叫作FNTT好了,意思是From Nand to Tetris(這也是作者開的課程的名稱),今天剛完成第一章的習題(如果你也有興趣的話,歡迎一起參加這個小專案),是用HDL設計幾個基本元件,截圖如下,很酷吧? :)
http://www.ted.com/talks/lang/zh-tw/shimon_schocken_the_self_organizing_computer_course.html
回覆刪除