1.4 蜂鳥E203處理器NICE接口詳解

一、NICE接口的概念

NICE(Nuclei Instruction Co-unit Extension)接口是蜂鳥E203處理器中用于擴展自定義指令的協處理器接口,基于RISC-V標準協處理器擴展機制設計。它允許用戶在不修改處理器核流水線的情況下,通過外部硬件加速特定計算任務。NICE接口通過一組握手信號與處理器核交互,支持標量指令的同步執行。其核心思想是將復雜或頻繁使用的操作(如加密、DSP計算)卸載到專用硬件,從而提升能效比。該接口遵循RISC-V的模塊化擴展原則,確保兼容性,同時為開發者提供低延遲的硬件加速路徑。

NICE接口的主要特點是輕量化、低功耗和同步阻塞式設計。它采用單發射流水線機制,每次僅處理一條指令,通過ready信號實現嚴格的流控,確保指令順序執行。接口的數據通道寬度與RISC-V處理器核一致(通常為32位),支持標準的加載/存儲操作和自定義運算。其低功耗特性源于精簡的狀態機設計,避免復雜的多線程調度邏輯。NICE接口的核心作用是擴展處理器功能,彌補通用CPU在特定領域(如信號處理、AI推理)的性能短板。通過將關鍵計算任務(如矩陣乘法、FFT)委托給協處理器,可顯著減少指令開銷和內存訪問延遲。例如,在IoT設備中,NICE接口可加速傳感器數據的實時濾波或加密算法,從而降低主CPU負載。此外,該接口支持用戶自定義指令集,允許開發者針對垂直場景(如邊緣AI)優化硬件,而無需改動RISC-V核心架構。這種靈活性使其在嵌入式和高能效計算中具有廣泛的應用潛力。

NICE接口的處理機制基于同步請求-響應模型。當處理器核解碼到自定義指令時,會通過nice_req_valid信號觸發協處理器,并等待nice_req_ready信號確認。NICE接口采用嚴格的兩級流水線握手協議,處理器核與協處理器之間的交互必須至少跨越兩個時鐘周期,以避免組合邏輯環路。當核心發出請求時,協處理器不能在同一周期直接返回響應(即禁止nice_rsp_valid = nice_req_valid的組合邏輯連接),否則會形成時序環路,導致電路振蕩或亞穩態問題。協處理器必須在下一個時鐘周期才能斷言nice_rsp_valid,確保信號通過寄存器打拍。這一設計是蜂鳥E203的硬性約束,所有自定義協處理器必須遵守。例如,即使協處理器的計算是純組合邏輯,也需額外插入一級寄存器延遲,強制將響應推遲到第二周期返回。

二、NICE接口的四個通道

蜂鳥E203的NICE接口包括4個通道,分別是請求通道、反饋通道、存儲器請求通道和存儲器反饋通道。當主處理器在譯碼階段遇到任意一種預定義指令組時,會將指令和源操作數通過請求通道派發給協處理器,協處理器接收指令后做進一步譯碼并執行指令,執行完畢后通過反饋通道將結果反饋給主處理器。協處理器執行NICE指令時,可以通過存儲器請求和反饋通道對主處理器中的數據進行連續讀寫,且讀寫過程與執行過程完全獨立,具有較高的讀寫效率。

1. 請求通道

請求通道用于主處理器向協處理器發起執行自定義指令的請求,具體包含的信號如下表,注意表中的信號方向是站在協處理器角度的方向。當主處理器通過指令的操作碼識別到自定義指令時,會將nice_req_valid信號拉高,當nice_req_ready信號也是高電平時,即完成一次握手,此時協處理器會根據自定義指令的機器碼判斷需要進行什么操作,同時結合rs1和rs2的值進行計算。

通道

方向

位寬

信號名

描述

請求通道

Input

1

nice_req_valid

該信號為1時表示主處理器發出了一個請求

Output

1

nice_req_ready

該信號為1時表示NICE協處理器可以接收一個請求

Input

32

nice_req_inst

自定義指令的機器碼

Input

32

nice_req_rs1

源寄存器1的值

Input

32

nice_req_rs2

源寄存器2的值

2. 反饋通道

當協處理器執行完自定義指令后,需要通過反饋通道向主處理器返回計算結果,具體包含的信號如下表。當協處理器計算完成時,會將nice_rsp_valid信號拉高,當nice_rsp_ready信號也是高電平時,即完成一次握手,此時主處理器會接收nice_rsp_data數據,并寫回到rd寄存器中。

通道

方向

位寬

信號名

描述

反饋通道

Output

1

nice_rsp_valid

該信號為1時表示NICE協處理器發送了一個響應

Input

1

nice_rsp_ready

該信號為1時表示主處理器可以接收一個響應

Output

32

nice_rsp_data

來自NICE協處理器的計算結果

Output

1

nice_rsp_err

該信號為1時表示在NICE協處理器執行過程中檢測到錯誤

值得注意的是,當nice_req_valid信號拉高時不能立即就將nice_rsp_valid信號拉高,即直接將nice_req_valid信號連接到nice_rsp_valid信號,如下面的Verilog代碼所示。即便協處理器只需要完成一個很簡單的操作,僅需少量純組合邏輯即可完成,也不能這樣賦值。因為在主處理器核中,nice_req_valid信號本身依賴nice_rsp_valid信號,直接賦值會形成組合邏輯環,即時序環路。這意味著協處理器中執行的指令至少需要兩個時鐘周期才能執行完畢,NICE接口硬性約束了自定義指令不能是單周期指令。

assign nice_rsp_valid = nice_req_valid;

3. 存儲器請求通道

?當協處理器需要額外的數據參與運算時,即除了rs1和rs2寄存器提供的數據還需要其他數據時,可以通過存儲器請求通道直接訪問主處理的內存,而不需要設置額外的指令來專門傳遞數據。此外,協處理器可以通過存儲器請求通道向主處理器連續發起多個讀寫請求,這種設計大大提高的訪問效率。并且數據訪問完全可以和其他運算并行執行,這些設計使得蜂鳥處理器可以適用于實時性較高、需要處理大量數據流的場景。

存儲器請求通道的具體信號如下表,當協處理器識別到自定義指令需要訪問數據時,首先會將nice_mem_holdup拉高,并保持高電平,直到完成所有內存訪問。這種機制阻塞了后面的加載和存儲指令,可以避免一些死鎖場景。在nice_mem_holdup的幫助下,協處理器可以在NICE指令完成之前的任何時間啟動一次或多次內存訪問。

nice_mem_holdup拉高后,當任何時候需要訪問主處理器內存時,只需要將nice_icb_cmd_valid拉高,并設置好地址、操作類型、寫入數據和訪問數據長度四個信號,當nice_icb_cmd_ready信號也為高時,訪問請求便發送成功。一段時間后,主處理器會自動反饋訪問請求的結果,因此協處理器也需要做好接收數據和反饋結果的準備。

通道

方向

位寬

信號名

描述

存儲器請求通道

Output

1

nice_icb_cmd_valid

該信號為1時表示協處理器發出了一個內存訪問請求

Input

1

nice_icb_cmd_ready

該信號為1時表示主處理器可以接收內存訪問請求

Output

32

nice_icb_cmd_addr

存儲器訪問請求的地址

Output

1

nice_icb_cmd_read

內存訪問請求的讀或寫操作

0: 寫

1: 讀

Output

32

nice_icb_cmd_wdata

存儲器寫請求的寫入數據

Output

2

nice_icb_cmd_size

存儲器訪問請求的數據長度

2’b00: 字節

2’b01: 半字

2’b10: 字

2’b11: 保留

Input

1

nice_mem_holdup

該信號為1時表示協處理器占用了主處理器的LSU流水線,用于暫停后續的加載和存儲指令執行

?4. 存儲器反饋通道

存儲器反饋通道的具體信號如下表,當協處理器發起存儲器訪問請求的一段時間后,主處理器會向協處理器發起反饋請求,即將nice_icb_rsp_valid信號拉高,并等待協處理器做好接收數據的準備。協處理器準備好后將nice_icb_rsp_ready拉高,將nice_icb_rsp_valid和nice_icb_rsp_ready同時為高時完成一次握手,如里時讀取數據的訪問請求,協處理器會保存或處理nice_icb_rsp_rdata中的數據。如果是向內存寫入數據的請求,同樣需要通過存儲器反饋通道的握手信號進行執行的反饋,只是協處理器不需要接收數據。

通道

方向

位寬

信號名

描述

存儲器反饋通道

Input

1

nice_icb_rsp_valid

該信號為1時表示主處理器發出了一個內存訪問反饋

Output

1

nice_icb_rsp_ready

該信號為1時表示協處理器可以接收內存訪問反饋

Input

32

nice_icb_rsp_rdata

讀存儲器訪問的讀取數據

Input

1

nice_icb_rsp_err

該信號為1時表示在內存訪問期間檢測到錯誤

三、總結

NICE接口是蜂鳥E203處理器擴展自定義指令的協處理器接口,基于RISC-V標準設計,通過四通道機制實現高效硬件加速。其核心特性包括:1)采用請求、反饋、存儲器請求和反饋四個獨立通道,支持指令派發、結果返回和內存訪問;2)強制兩周期延遲設計,避免組合邏輯環路;3)允許協處理器直接訪問主存,實現并行數據流處理。該接口通過卸載復雜計算(如加密、DSP)到專用硬件,顯著提升能效比,特別適用于IoT和邊緣計算場景,同時保持RISC-V架構的兼容性和靈活性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912293.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle 遞歸 + Decode + 分組函數實現復雜樹形統計進階(第二課)

在上篇文章基礎上,我們進一步解決層級數據遞歸匯總問題 —— 讓上級部門的統計結果自動包含所有下級部門數據(含多級子部門),并新增請假天數大于 3 天的統計維度。通過遞歸 CTE、DECODE函數與分組函數的深度結合,實現真…

MySQL 數據類型全面指南:詳細說明與關鍵注意事項

MySQL 數據類型全面指南:詳細說明與關鍵注意事項 MySQL 提供了豐富的數據類型,合理選擇對數據庫性能、存儲效率和數據準確性至關重要。以下是所有數據類型的詳細說明及使用注意事項: 一、數值類型 整數類型 類型字節有符號范圍無符號范圍說…

leetcode437-路徑總和III

leetcode 437 思路 利用前綴和hash map解答 前綴和在這里的含義是:從根節點到當前節點的路徑上所有節點值的總和 我們使用一個 Map 數據結構來記錄這些前綴和及其出現的次數 具體思路如下: 初始化:創建一個 Map ,并將前綴和 …

UI前端與數字孿生融合探索新領域:智慧家居的可視化設計與實現

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩! 一、引言:智慧家居的數字化轉型浪潮 在物聯網與人工智能技術的推動下&#xff0c…

數據結構知識點總結--緒論

1.1 數據結構的基本概念 1.1.1 基本概念和術語 主要涉及概念有: 數據、數據元素、數據對象、數據類型、數據結構 #mermaid-svg-uyyvX6J6ofC9rFSB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uyyvX6…

pip install mathutils 安裝 Blender 的 mathutils 模塊時,編譯失敗了

你遇到的問題是因為你試圖通過 pip install mathutils 安裝 Blender 的 mathutils 模塊時,編譯失敗了,主要原因是: 2018年 的老版本也不行 pip install mathutils2.79 ? 報錯核心總結: 缺失頭文件 BLI_path_util.h:…

編譯安裝交叉工具鏈 riscv-gnu-toolchain

參考鏈接: https://zhuanlan.zhihu.com/p/258394849 1,下載源碼 git clone https://gitee.com/mirrors/riscv-gnu-toolchain 2,進入目錄 cd riscv-gnu-toolchain 3,去掉qemu git rm qemu 4,初始化 git submodule…

復制 生成二維碼

一、安裝插件 1、復制 npm install -g copy-to-clipboard import copy from copy-to-clipboard; 2、生成二維碼 & 下載 npm install -g qrcode import QRCode from qrcode.react; 二、功能:生成二維碼 & 下載 效果圖 1、常規使用(下載圖片模糊…

自由職業的經營視角

“領導力的核心是幫助他人看到自己看不到的東西。” — 彼得圣吉 最近與一些自由職業者的交流中,發現很多專業人士都會從專業視角來做交流,這也讓我更加理解我們海外戰略顧問莊老師在每月輔導時的提醒——經營者視角和專業人士視角的不同。這不僅讓大家獲…

MR30分布式 IO在物流堆垛機的應用

在現代物流行業蓬勃發展的浪潮中,物流堆垛機作為自動化倉儲系統的核心設備,承擔著貨物的高效存取與搬運任務。它憑借自動化操作、高精度定位等優勢,極大地提升了倉儲空間利用率和貨物周轉效率。然而,隨著物流行業的高速發展&#…

告別固定密鑰!在單一賬戶下用 Cognito 實現 AWS CLI 的 MFA 單點登錄

大家好,很多朋友,特別是通過合作伙伴或服務商使用 AWS 的同學,可能會發現自己的 IAM Identity Center 功能受限,無法像在組織管理賬戶里那樣輕松配置 CLI 的 SSO (aws configure sso)。那么,我們就要放棄治療&#xff…

未來機器視覺軟件將更注重成本控制,邊緣性能,魯棒性、多平臺支持、模塊優化與性能提升,最新版本opencv-4.11.0更新了什么

OpenCV 4.11.0 作為 4.10.0 的后續版本,雖然沒有在提供的搜索結果中直接列出詳細更新內容,但結合 OpenCV 4.10.0 的重大改進方向(發布于 2024 年 6 月),可以合理推斷 4.11.0 版本可能延續了對多平臺支持、模塊優化和性能提升的強化。以下是基于 OpenCV 近期更新模式的推測…

小程序入門:數據請求全解析

在微信小程序開發中,數據請求是實現豐富功能的關鍵環節。本文將帶你深入了解小程序數據請求的相關知識,包括請求限制、配置方法以及不同請求方式的實現,還會介紹如何在頁面加載時自動請求數據,同時附上詳細代碼示例,讓…

開源版gpt4o 多模態MiniGPT-4 實現原理詳解

MiniGPT-4是開源的GPT-4的平民版。本文用帶你快速掌握多模態大模型MiniGPT-4的模型架構、訓練秘訣、實戰亮點與改進方向。 1 模型架構全景:三層協同 📊 模型底部實際輸入圖像,經 ViT Q-Former 編碼。藍色方塊 (視覺編碼器):左側…

Flutter基礎(控制器)

第1步:找個遙控器(創建控制器)? // 就像買新遙控器要裝電池 TextEditingController myController TextEditingController(); ??第2步:連上你的玩具(綁定到組件)?? TextField(controller: myContro…

Spring Boot使用Redis常用場景

Spring Boot使用Redis常用場景 一、概述:Redis 是什么?為什么要用它? Redis(Remote Dictionary Server)是一個內存中的數據存儲系統(類似一個“超級大字典”),它能存各種類型的數據…

CAD文件處理控件Aspose.CAD教程:在 C# 中將 DXF 文件轉換為 SVG - AutoCAD C# 示例

概述 使用 C# 輕松將DXF文件轉換為SVG。此轉換可更好地兼容 Web 應用程序,并增強 CAD 圖紙的視覺呈現效果。使用Aspose.CAD for .NET ,開發人員可以輕松實現此轉換過程。該 SDK 提供強大的功能,使其成為 C# 開發人員的可靠選擇。Aspose.CAD …

Gitee 持續集成與交付(CI/CD)篇

Gitee 持續集成與交付(CI/CD)篇 🚀 文章目錄 Gitee 持續集成與交付(CI/CD)篇 🚀🎯 什么是 CI/CD?🌟 Gitee Go 介紹? 核心特性🎨 支持的技術棧 🚀…

深度學習:PyTorch卷積神經網絡圖像分類案例分享

本文目錄: 一、了解CIFAR-10數據集二、案例之導包三、案例之創建數據集四、案例之搭建神經網絡(模型構建)五、案例之編寫訓練函數(訓練模型)六、案例之編寫預測函數(模型測試) 前言:…

記錄多功能按鍵第二種寫法使用定時器周期間隔判斷.

邏輯是通過定時器溢出周期進行判斷按下次數 比如設置定時器溢出周期為500MS,每次溢出都會判斷按鍵按下次數,如果下個周期前沒有觸發按下,則結束鍵值判斷.并確定觸發鍵值.清空按下次數標志.測試比一個定時器周期按下按鍵次數判斷寫法要穩定... 記錄STM32實現多功能按鍵_stm32一…