在掌握了電子學的初級知識和課程中介紹的概念之后,就開始設計想要做一個基于NMOS邏輯的RISC CPU。課程中介紹的是Beta CPU——有一個負載存儲,32位RISC架構。為了節省空間、晶體管,少掉一點頭發,作者決定把自己的這個CPU減少到16位。注:MITx的"Computation Structures"官網中對這門課的描述是This course introduces architecture of digital systems, emphasizing structural principles common to a wide range of technologies.相當于我們國內的數字電路以及計算機組成原理的課程。B站有UP主做搬運,有興趣的可以看一下:【MIT公開課】6.004 計算結構 · 2019年春(完結·中英字幕·機翻)[1]課程原文鏈接:Computation Structures[2]如果把它安裝在墻上,它將占據一整面墻。
為了讓整個計算機看起來更復古,輸入輸出部分,作者專門搬出來自己壁櫥里的一個舊的Apple II Plus來處理。
為了能夠執行更多瑣碎的程序,Spikeputor CPU將與高速靜態存儲器RAM(2 x 32K AS6C62256)和ROM(2 x 32K AT27C256R)芯片連接。此外,還會創建一個鏡像的只寫 "屏幕存儲器",也是由(大約5000個)晶體管制成,提供一個48乘18的可尋址LED陣列。存儲器地址將被限制在字的邊界內。試圖尋址奇數的存儲器位置會返回相應的偶數的16位字。由于沒有任何16K的SRAM和ROM芯片可用,我使用了32K的芯片,并會設計一個內存系統,從RAM和ROM中選擇16K的庫進行讀取操作。完整的32K字(64kbytes)的RAM可以在任何時候被寫入。
輸入/輸出
I/O功能作者用1986年的Apple II Plus計算機上運行的定制軟件和硬件來實現。作為項目的一部分,作者還設計了一個名為BIAS(連接蘋果和Spikeputor的板卡)的自定義外設卡,以及蘋果上的軟件,來提供鍵盤輸入、屏幕輸出和長期數據存儲和檢索。I/O控制器將直接訪問Spikeputor內存,并在所有讀寫操作中停止Spikeputor CPU。還實現了16位通用輸入和輸出信號,鏡像到固定的高內存位置。
結構
整個Spikeputor被組裝在一系列的無焊接面包板上。每個主要部件(ALU、寄存器存儲器、控制邏輯/程序計數器/狀態寄存器和屏幕存儲器)被布置在一個10.16cm×5.08cm的釘板上。每個釘板可以包含一個9×6的陣列(54)的面包板,并根據需要為一些小的電路留出一些空間。四塊掛板中的每一塊都被安裝在墻上,在安裝的下方有空間放Apple II Plus的桌子。
做電池供電攝像頭、可視門鈴、戶外安防的同學應該都踩過這個坑:攝像頭要拍,ISP、sensor、無線模塊全得開著,整機電流動輒幾百 mA。一節 18650 撐不了幾天,用戶投訴“怎么又沒電了”。有人會說:加個 PIR 人體紅外不就行了?問題是 PIR 怕熱、怕寵物、怕隔著亞克力/玻璃殼,而且只能感知“有溫差的人體移動”,靈敏度飄忽。真正省電的思路應該是:讓攝像頭平時徹底睡死,只有“前面有人/有動靜”時才被一鍵喚醒——而負責這個“看門”角色的,最合適的是一顆低功耗雷達。一、為什么是雷達,而不是 PI