透過遊戲學習計算機架構 - embeddedartistry

banq發表於2021-11-30

學習和元學習一直是我一生的熱情。我發現思考我們如何學習、提高我自己的學習能力以及重新思考我們在社會中嘗試教學的方式是無窮無盡的迷人之處。我一直在思考的一個煩人的話題是 接下來 要學習什麼,尤其是當我們知道當前的系統無效或低效時。
我最近透過Embedded.fm Slack Group瞭解到一個遊戲,我認為它展示了改進學習的潛在未來。圖靈完備涉及從頭開始構建功能性計算機系統:使用與非門構建額外的邏輯閘,然後使用這些門來製作諸如 SR 鎖存器、暫存器、1 位加法器、位元組加法器、多路複用器、多路複用器等元件向前。最終你會發現你已經建立了一個 CPU 架構和組合語言,然後你使用該組合語言來實現像氣泡排序這樣的 CS 概念以及像河內塔這樣的遊戲。
玩圖靈完備讓我想起了我的大學經歷;我按照遊戲遵循的相同路線學習了三門課程。一門課程涉及在 VLSI 工具中構建 ALU,從單個門開始,一直到完整的 ALU。另一門課程涉及使用 VHDL 構建 8 位處理器,其中包括建立基本指令集。第三個涉及使用 MIPS 彙編來實現演算法、解決難題和建立可玩遊戲。
想一想:三門課程,代表 一整年的學習時間。即使在今天,這三門課程仍然是我最喜歡的課程,我從它們中學到的東西比從其他工程課程中學到的還多。但是當我玩這個遊戲時,我會想到遊戲的體驗是多麼優越。
一個是學習效率:在幾個小時的遊戲時間裡,我濃縮並覆蓋了與大學時需要數週才能覆蓋的相同數量的土地。
另一個突出的方面是我在遊戲中的想法比我在大學裡做的更多:我從來沒有真正 跑過 我的 ALU。
我剛剛建立了邏輯,透過了設計規則檢查,並對電氣特性、門數和使用面積進行了評估。
我也沒有在學校端到端地完成整個過程——每一次經歷都是不同的,並且與其他經歷是分開的。
但在遊戲中,你需要構建 ALU,然後構建完整的處理器,然後建立自己的指令集,並使用該指令集編寫程式。
我很遺憾我沒有在大學課程中獲得這種全面的端到端體驗(banq:電子專業是基礎),因為基礎顯然就在那裡。
 
該遊戲應該是一款益智遊戲,因此您將面臨自己解決問題的挑戰。雖然您可以在前幾個謎題中捏造自己的方式,但遊戲確實希望您瞭解布林代數德摩根定律。您將達到需要從真值表推匯出方程並簡化邏輯的地步——我當然不得不為此拿出筆和紙。如果你想要一本隨附的教科書,像NAND2Tetris這樣的東西會是一個很好的搭配。
遊戲是搶先體驗,所以它仍在改進中,但我認為它是
  • a) 對任何電腦書呆子來說都是一種有趣的學習體驗
  • b) 我們如何重新思考我們如何以更有趣的方式進行學習和教學的例子,強大而有效的方法。


除了直接下載到您的大腦中,沒有比完成構建計算機、解決您遇到的問題以及檢視您的計算機執行您編寫的程式的過程更好的方式來了解計算機體系結構。


banq注:我大學有幸花了一年時間做了一個圖靈完備的微控制器控制系統。這對於我瞭解計算機體系結構比任何學習都非常重要。

相關文章