Hempl/CPU
外觀
< Hempl
中央處理單元是 AT32UC3A 晶片的一部分,它控制著其餘硬體的運作。它透過遵循儲存在其 RAM 或快閃記憶體中的程式來做到這一點。
Mizar32 的 CPU 是一個 Atmel AVR32A UC3A RISC 處理器,以 66MHz 的頻率執行,具有
- 15 個通用 32 位暫存器
- 一個 32 位堆疊指標、程式計數器、連結暫存器和狀態暫存器
- 187 個不同的指令,其中大多數只需一個時鐘週期即可完成
- 異常和中斷
- 使用者和管理模式(在 eLua 中未使用)
- 除錯模式
處理器實現了載入-儲存架構,其中值從記憶體中提取到暫存器中,在那裡進行處理,然後將結果儲存回記憶體。它有 187 個不同的指令,這些指令是
- MOVE 指令用於在暫存器之間複製值或用常數值載入它們
- 載入/儲存指令用於在暫存器和主記憶體之間複製 8 位、16 位、32 位或 64 位資料
- 載入/儲存多個指令用於一次將多個暫存器從/到主記憶體或堆疊複製
- 算術指令用於對暫存器中的值進行加、減、取反、測試和比較,以及最大值和最小值用於查詢兩個暫存器中值的最高值或最低值
- 乘法:16x16 位和 32x32 位乘法,產生 32 位或 64 位結果
- DSP 指令:乘累加指令和飽和或舍入運算
- 邏輯運算:與、或、異或、反碼
- 位運算:位欄位提取和賦值、位設定/清除/測試、位反轉、交換位元組/半字、計數前導零
- 移位和旋轉
- 分支和子例程呼叫和返回
- 系統控制指令
由於其 3 級流水線,處理器通常在每個時鐘週期執行一條指令,從而實現每秒最高 6600 萬條指令的執行速度。
CPU 連線到高速匯流排矩陣,該矩陣反過來與 RAM 和快閃記憶體、USB 和乙太網硬體以及 HSB 橋通訊。HSB 橋然後以 16.5MHz 的較低速度與晶片上的其餘外設進行通訊。
CPU 執行的程式通常是 PicoLisp 直譯器,它要麼響應你在 Mizar32 控制檯上鍵入的命令,執行它們並列印結果,要麼從 SD 卡讀取 PicoLisp 程式,並執行程式中所述的操作。
在 Hempl 中,有一些函式可以訪問 CPU 的底層功能
(cpu-clock)返回 CPU 的時鐘頻率 (66,000,000Hz)(cpu-r32)/(cpu-w32)、(cpu-r16)/(cpu-w16)、(cpu-r8)/(cpu-w8)用於從/到記憶體或外設的暫存器讀取/寫入 32 位、16 位和 8 位資料。
請注意:目前 PicoLisp 不支援中斷處理。參見 問題 #2.
- Atmel AT32UC3A 資料手冊 第 9 章:處理器和架構
- AVR32 架構手冊,其中詳細描述了指令