5 / 20 · 概念
單一上升緣的契約
確立邊緣編號、暫存器轉送、累加與初始化的優先順序。
單元可免費閱讀,註冊課程即可儲存學習進度。
本課程採用的時間慣例
重設與清除在 E0 之前完成,它是第一個消費資料的上升緣。輸入在 E_t 之前已穩定。在該邊緣,PE 由邊緣前的輸入累加乘積,並將同一組輸入儲存在向右與向下的轉送暫存器。新累加器與轉送值在 E_t 之後立即可觀測。鄰近單元在 E_(t+1) 消費這些已暫存的值。
此基準設計沒有獨立輸入暫存器、管線化乘法器或輸出序列化級。若加入其中一項,便必須重新檢視排程與結果延遲。「邊緣零的結果」指 E0 之後更新的累加器,而非之前的值。初始化邊緣不包含在運算邊緣計數中。clear 優先於 MAC,因此 clear 與第一組資料同時成立時,該資料配對會被捨棄;先 clear,再於下一個邊緣提供資料。
一個 PE 的兩項責任
E0 的 A=1、B=5,會讓 PE(0,0) 將累加器更新為五,並將運算元轉送至暫存器。E1 的邊界運算元 2 與 7 加入十四,產生十九。在同一個邊緣,鄰近 PE 可以消費第一組已暫存運算元。若允許權杖在一個邊緣跨越兩個 PE,就會使後續的錯時方程式失效。
非阻塞賦值表達這種邊緣前讀取、邊緣後寫入的行為。測試平台也必須在狀態更新之後一致地取樣,使用適當的時脈區塊或模擬器取樣區域。不要依賴作用區域內程序偶然的執行順序。
優先順序與全域暫停
優先順序依次為 reset、clear、advance。reset 與 clear 清空累加器與有效狀態。advance=0 時,每個 PE 都保持累加器、轉送值、valid 旗標與標籤。邊界排程器也保持原狀。一個 advance 邊緣執行一個邏輯步驟。有效的零是真實運算元;無效權杖無論資料位元為何,都會被忽略。
累加器若為五,且陣列暫停兩個實體邊緣,它仍維持五。下一個 advance 邊緣才執行下一個邏輯步驟。應分別回報實體時脈邊緣與邏輯前進步驟。暫停期間初始化仍然生效,避免過期權杖流入下一項工作。
自己試試看
clear 在 E−1 完成。E0 消費 (1,5),E1 暫停,E2 消費 (2,7)。寫出邊緣後的累加器值與邏輯步驟編號。
查看解說
E0 之後,acc=5,邏輯步驟零完成。E1 保持 acc=5。E2 之後,acc=19,邏輯步驟一完成。共有三個實體邊緣與兩個 advance 邊緣。