三周造台計算機!不難

全國產經平台 發佈 2021-08-12T01:56:36.078851+00:00

【點擊右上角加'關注',全國產經信息不錯過】11月某天的清晨許多清華人的朋友圈被一張照片刷屏就是它!傳說中的貴系三周…造台計算機…此「機」非彼「機」「我們造的計算機不是你們想像的計算機。」原來,流傳甚廣的那張圖是清華大學計算機系「計算機組成原理」課程開課時的照片。

【點擊右上角加'關注',全國產經信息不錯過】

11月某天的清晨

許多清華人的朋友圈

被一張照片刷屏

就是它!

傳說中的貴系

三周…造台計算機…

此「機」非彼「機」

「我們造的計算機不是你們想像的計算機。」

原來,流傳甚廣的那張圖是清華大學計算機系「計算機組成原理」課程開課時的照片。該課程的實驗課老師計算機系李山山實驗員介紹說,「對你們而言,計算機等於台式機或者筆記本電腦,但對我們而言,計算機只是一個能執行程序的裝置。」

「貴系」眼中的計算機

「計算機組成原理」是計算機系本科三年級必修課,包括理論課和實驗課。理論課主要講解計算機各組件的基本工作原理和其協同運行關係,以及程序是如何在計算機硬體上運行的。而在實驗方面,同學們需要完成5次小實驗,以及最終的大作業——「奮戰三星期 做台計算機」!

計算機系劉衛東教授正在講理論課

這項大作業要求同學們小組合作(通常3人一組),在三周時間內寫出一個功能完整的CPU(Central Processing Unit,中央處理器),並將其「燒寫」進老師提供的實驗板中,從而能夠執行一套程序。

實驗裝置功能部件說明

CPU 是可以運行用戶代碼的硬體電路設計,而「燒寫」是指同學們用硬體描述語言Verilog給實驗板編程,改變實驗板上FPGA(Field Programmable Gate Array,現場可編程邏輯門列陣)內部電路元件之間的連接關係,從而造出CPU。在如今的在線雲實驗條件下,同學們只要點擊「上傳」按鈕就能實現自動「燒寫」。

而有了CPU的寫入,一塊實驗板就變成了一台真正的計算機。

提問:這裡有幾台計算機?

為什麼要「造機」

「『計算機組成原理』課程就是學習計算機的組成部分、工作原理等。我們希望學生能夠通過這個大作業將以前學的『數字邏輯電路』『硬體描述語言』『編譯原理』和現在學的『計算機組成原理』等知識都融會貫通、學以致用。」李山山說,要完成造機任務需要對這些基礎知識和CPU非常了解,但是他認為這個作業「不難」

「我們的基本要求是同學們做出的CPU能運行一套監控程序,它是用來協助運行程序的程序,導入實驗板內存後,可以通過運行測試程序檢測同學們做出的CPU運行是否正確。同學們造出的CPU需要通過性能測試、額外指令測試等各類測試才算成功。」李山山介紹到,同學們也可以自己再增加一些擴展功能,比如流水線、處理異常中斷、輸出視頻和圖像等。每一年的作業展示中都會有同學帶來「驚喜」

三周,造機+驚喜

經過三周轟轟烈烈的「造機」運動

激動人心的時刻到來了

同學們迎來了作業答辯

貴系同學再一次證明

他們不僅能成功「造機」

還風趣

幽默

浪漫

……

接下來

讓我們一起走進答辯現場

內容豐富的PPT

滑動看古風和科技結合的答辯PPT

一起欣賞

新鮮出爐的計算機

擴展功能演示環節

上學人,加油!

1

「我們組實現了輸出圖片。」肖同學介紹說,「和大家一起配合完成這個任務太有趣了,每次跑通一個功能都好開心。」

Langton』ant

2

「我們組實現的是Langton』ant,這是一隻在黑白格子上的、邏輯簡單卻擁有極複雜表現的螞蟻。」劉同學說,「我們選擇它是因為這個程序能動態展現出CPU和VGA(視頻信號)的聯動。」

猜這個投籃男孩是誰?

3

「我們組實現了視頻輸出。就是把許多圖片寫到flash里,每隔一段時間播放一張,放快一些就變成了視頻。」呂同學說,「但是由於我們實驗平台的flash大小有限,無法存儲很多高像素的圖片,因此只能存儲低像素的圖片。我們的CPU在讀取到這些數據後,會上採樣到800*600的圖片,因此在我們展示的視頻中像素塊就會非常明顯。」

來啊,走迷宮啊

4

「我們做了一個迷宮小遊戲,相當於在自己造的計算機上跑自己寫的遊戲。」黃同學說,「我們加入了人機互動元素,玩家可以通過控制實驗板上的四個按鈕來控制藍色塊上下左右移動,最終繞過障礙到達終點完成遊戲。」

理工科的浪漫—生命誕生

5

「我們組完成的是康威生命遊戲(Conway’s Game of Life),每一個時刻細胞都會根據當前周圍八個格子內有無細胞,按照某一規則確認下一個時刻這個細胞是否存活。」夏同學說,「這個遊戲本身的規則很簡單,但正是從0和1的變化之中演化出世間萬物,是一種理工科的浪漫,也以此紀念今年去世的數學家John Horton Conway。」

Jerrrrrry

6

「我們組最有挑戰性的工作其實是完成了一個基於RISC-V的五級流水線CPU,實驗過程中經歷了長時間痛苦的Debug,但最終還是完成了,並且性能也相對不錯。」李同學說,「除此之外,出於興趣我們還做了VGA外設的擴展支持,以便可視化我們計算機的功能。為了完成這件事情,首先在硬體上,我們編寫了一個擴展模塊用以操控VGA螢幕。另外我們使用RISC-V彙編編寫了播放gif動畫的程序,並將程序寫入我們造出的計算機中運行。」

Windows作業系統……的logo

7

「之前覺得造機是不可能完成的任務,但最後還是把它啃下來了。」數學系黃同學說,他和來自土木系、航院的另外兩名隊員都選修了計算機專業課程,組建了這個全員外系「造機」團隊。「編譯原理、硬體描述語言、數字邏輯電路等造機知識基本都是現學的,壓力確實挺大。不僅是造機,之前的每次小實驗都不知該如何下手,全靠自己一點點鑽研和微信求助老師助教,非常感謝他們。」黃同學說,「我們組實現了Windows 的logo圖片輸出,四捨五入就相當於造出了一個Windows系統吧。」

造機結束,同學們收到了這份紀念禮物

「和之前學習的軟體相比,硬體調試真的很痛苦。」劉同學介紹到,他們3人一組做出CPU一般需要200-300小時,一共寫了3560行代碼。但當整個團隊共同完成這份自己創意的大作業時,一切都值了。

「大作業艱難卻值得留念,提高了我們的團隊合作能力,提高了我們Debug的技巧和耐心,還教育了我們不要好高騖遠。」柴同學和張同學答辯時共同表示。

「Debug時壓力會比較大,特別是花2-3h都找不出哪裡出錯的時候,但我內心一直相信自己能做出來。」呂同學說,「其實我在大一剛入學時就聽說了這個大作業,當時就特別期待,這可能是每個計算機系同學必須經受的一次歷練,會是很難忘的經歷。」

在陽台上「涼快涼快」的計算機

造機期間,許多同學妙招頻出。比如買來冰塊給CPU降溫,「溫度越低,CPU工作越穩定,但是室內暖氣太旺盛了!所以我們會用冰塊靠近開發板,還會經常去陽台上調試。」劉同學說。

實驗期間同學們的外賣單

「造機」背後的故事

計算機系計網聯合小班同學和助教

2020年秋季學期一共有242位同學選修了「計算機組成原理」,課程安排了計算機系劉衛東教授、陳康副研究員、陸遊游副教授三位理論課老師,實驗課老師李山山,以及六位助教。

同學在實驗課上向助教介紹本組構思

在實驗課上,每位同學都會介紹自己對計算機的構思,老師們、助教們以及上一屆的熱心同學都會在課上及課後和同學們一起討論其構思的可行性。

虛擬實驗板:Thinpad-Cloud教學計算機

為了同學們操作方便,老師們還開發了「虛擬實驗板」,「它是真實實驗板的簡化版本,上面的按鈕都可以用滑鼠點擊控制。真實的實驗板在系裡,我們通過在線平台把寫好的代碼『燒寫』到其中某一塊實驗板上。」計算機系的肖同學說。

「實驗器材是老師們為這門課專門開發的」,李山山介紹到,從早期的小規模晶片連線,到後來的可編程器件FPGA,再到現在的在線雲實驗。這項大作業的實驗模式和內容都在持續更新。

老師鼓勵同學們開拓創新

努力理解同學們的想法

為同學們提供儘可能好的實驗條件

同學們在承受著DDL壓力的同時

也在自由探索

既鞏固了知識

又收穫了滿滿的成就感和友情

或許

這就是「三周造台計算機」的

魅力所在

免責聲明:以上內容轉載自清華大學,所發內容不代表本平台立場。

全國產經平台聯繫電話:010-65367702,郵箱:hz@people-energy.com.cn,地址:北京市朝陽區金台西路2號人民日報社

關鍵字: