國產開發板—米爾全志T113-i如何實現ARM+RISC-V+DSP協同計算?

近年來,隨著半導體產業的快速發展和技術的不斷迭代,物聯網設備種類繁多(如智能家居、工業傳感器),對算力、功耗、實時性要求差異大,單一架構無法滿足所有需求。因此米爾推出MYD-YT113i開發板(基于全志T113-i)來應對這一市場需求。

米爾基于全志T113-i核心板及開發板

part 01? T113-i芯片及OpenAMP簡介

  • T113-i芯片簡介

T113-i由兩顆ARM A7 、一顆C906(RISC-V)和一顆DSP(HIFI 4)組成。

  • C906(RISC-V核)特性:

  1. 主頻最高1008MHz

  2. 32KB I-cache+32 KB D-cache

  3. 操作系統支持裸跑和FreeRTOS實時操作系統

  4. 支持少量數據核間通訊(RPMsg)和大量核間數據(RPBuf)

  • DSP(HIFI 4)特性:

  1. 最高主頻600MHz

  2. 32KB L1 I-cache+32 KB L1 D-cache?

    64KB?I-ram+64KB D-ram

  3. 操作系統支持裸跑和FreeRTOS實時操作系統

  4. 支持少量數據核間通訊(RPMsg)和大量核間數據(RPBuf)

    • OpenAMP系統原理

    T113-i=2×ARM A7 + 1×C906(RISC-V) + 1×DSP(HIFI 4)組成,其中兩個A7核為主核心,C906(RISC-V核)和DSP為雙副核心。而其中的RISC-V屬于超高能效副核心,標配內存管理單元,可運行RTOS或裸機程序,T113的主核運行Linux進行人機界面的交互和應用流程,而RISC-V則是后臺可進行大數據數據采集,或者相關編碼器的控制等,降低主核被中斷的次數,大大提供了主核的運行效率。每個處理器核心相互隔離,擁有屬于自己的內存,既可各自獨立運行不同的任務,又可多個核心之間進行核間通信,這些不同架構的核心以及他們上面所運行的軟件組合在一起,就成了 AMP 系統(Asymmetric Multiprocessing System 異構多處理系統)即非對稱多處理架構。

    part 02? AMP系統通信機制詳解

    • AMP通信原理

    由于兩個核心存在的目的是協同的處理,因此在異構多處理系統中往往會形成Master-Remote結構。主核心啟動后啟動從核心。當兩個核心上的系統都啟動完成后,他們之間就通過IPC(Inter Processor Communication)方式進行通信,而 RPMsg就是IPC中的一種。
    在AMP系統中,兩個核心通過共享內存的方式進行通信。兩個核心通過AMP中斷來傳遞訊息。內存的管理由主核負責。

    • 使用 RPMsg進行核間通信

    RPMsg整體通訊框架

    上面介紹了通訊原理,這里講解如何通訊,AMP使用RPMsg框架進行通訊,該框架用于AMP場景下處理器之間進行相互通信。OpenAMP內部實現了可用于RTOS或裸機系統中的RPMsg框架,與Linux內核的RPMsg框架兼容。

    其通信鏈路建立流程如下:

    1. RTOS 端調用 rpmsg_create_ept 創建指定 name 的端點。

    2. Linux 端 rpmsg core 層收到端點創建消息,調用 rpmsg_register_device 將其作為一個設備注冊到 rpmsg bus。

    3. Linux 端 rpmsg bus 匹配到相應的驅動,觸發其 probe 函數。

    4. Linux 端驅動 probe 函數完成一些資源的分配以及文件節點的生成。

    5. Linux 端驅動的 probe 函數調用完后,rpmsg bus 會回復一個 ACK。

    6. RTOS 端收到 ACK 后設置端點的狀態,此時使用 is_rpmsg_ept_ready 函數會返回 true。

    RPMsg數據傳輸流程如下:

    下面展示一次RPMsg數據傳輸的通信過程,下面詳細說明:

    1. arm端把數據拷貝到buffer中,在初始化時已經將buffer和payload memory地址綁定,因此數據拷貝后相當于存放到了payloadmemory中。

    2. 在消息傳輸命令后加上數據在payload memory中的起始地址和長度,組成數據包,調用RPMsg接口發送。

    RPBuf:基于共享內存和RPMsg消息通知,實現傳輸大數據傳輸的框架。

    RPMsg:基于VirtIO管理的共享內存,實現數據傳輸的框架。

    VirtIO:原本是一套用在虛擬化環境中傳輸數據的框架,這里用作共享內存(VRING)的管理。

    OpenAMP:OpenAMP框架為RTOS、裸機和Linux用戶空間提供了RPMsg、VirtIO、re-moteproc(未列出)的實現,并且與Linux內核兼容。

    Msgbox:是全志平臺提供的一套消息中斷機制,已通過linux內核中原生的mailbox框架作適配。

    MSGBOX_IRO_REG:Msgbox的中斷相關寄存器。

    buffer:表示申請到的共享內存。用戶通過操作buffer對象,可直接訪問對應的共享內存。

    payload memory:用來存放實際傳輸數據的共享內存,因此稱為payload(有效負載)。

    VRING:由Virtl0管理的一個環形共享內存。

    part 03? 案例與性能測試

    • A核與RISC-V核通訊流程

    A核與RISC-V核通訊流程如下:

    1. 首先監聽端點

    2. 創建端點

    3. 節點通訊

    linux向riscv發送

    4. riscv接收數據

    • A核與RISC-V核數據傳輸性能測試

    A核與RISC-V核數據傳輸性能測試,使用rpmsg_test命令對rpmsg進行性能測試,測試發送方向和接收方向各自的耗時以及速率。

    1. 主核測試結果:

    2. 從核測試結果:

    3. 通過輸出的結果可以得到:

    [rpmsg1] send: 496.000000Kb 20.000000ms 24.799999M/s

    [rpmsg1] receive : 496.000000Kb 9980.000000ms 0.049699Mb/s

    發送496KB數據耗時20ms發送速率為24.79Mb/s

    接收496KB數據耗時9980ms發送速率為0.049699Mb/s

    • DSP GPADC采集測試

    采集流程如下:

    1. 開啟DSP

    2. DSP核打印

    3. 開啟DSP后,把GPADC0引腳接入1.8V電源,此時用戶可以執行A核應用程序與DSP進行通訊,使DSP進行GPADC采集并返回數據

    可以看到GPADC0收的電壓數據為1792,轉換為電壓值為:1792/1000=1.792V。

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

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

    相關文章

    Tomcat虛擬主機配置詳解:Centos環境下多域名部署(詳細教程!)

    🏡作者主頁:點擊! Tomcat服務器📝專欄:點擊! 🐧Linux高級管理防護和群集專欄:點擊! ??創作時間:2025年3月18日14點14分 最近在折騰 Tomcat 的時候&…

    鴻蒙開發工程師簡歷項目撰寫全攻略

    一、項目結構的黃金法則 建議采用「41」結構: 項目背景(業務價值)技術架構(鴻蒙特性)核心實現(技術難點)個人貢獻(量化成果)附加價值(延伸影響) …

    dfs刷題排列問題 + 子集問題 + 組和問題總結

    文章目錄 一、排列問題全排列II題解代碼 優美的排列題解代碼 二、子集問題字母大小寫全排列題解代碼 找出所有子集的異或總和再求和題解代碼 三、組合問題電話號碼的字母組合題解代碼 括號生成題解代碼 組合題解代碼 目標和題解代碼 組合總和題解代碼 總結 一、排列問題 全排列…

    【Linux】VMware17 安裝 Ubuntu24.04 虛擬機

    目錄 安裝教程 一、下載 Ubuntu 桌面版iso映像 二、安裝 VMware 三、安裝 Ubuntu 桌面版 VMware 創建虛擬機 掛載 Ubuntu ISO 安裝 Ubuntu 系統 安裝教程 一、下載 Ubuntu 桌面版iso映像 鏈接來自 清華大學開源軟件鏡像站 ISO文件地址:ubuntu-24.04.2-des…

    CVPR2025 | 對抗樣本智能安全方向論文匯總 | 持續更新中~

    匯總結果來源:CVPR 2025 Accepted Papers 若文中出現的 論文鏈接 和 GitHub鏈接 點不開,則說明還未公布,在公布后筆者會及時添加. 若筆者未及時添加,歡迎讀者告知. 文章根據題目關鍵詞搜索,可能會有遺漏. 若筆者出現…

    PostgreSQL_數據回退,數據庫導出、導入

    目錄 前置: 1 數據回退 1.1 代碼 1.2 pgAdmin4 中查看 1)t_daily 2) t_stock_daily 2 數據庫導出、導入 前置: 本博文是一個系列。在本人“數據庫專欄”-》“PostgreSQL_”開頭的博文。 1 數據回退 上一節“PostgreSQL_數據下載并…

    golang單機鎖實現

    1、鎖的概念引入 首先,為什么需要鎖? 在并發編程中,多個線程或進程可能同時訪問和修改同一個共享資源(例如變量、數據結構、文件)等,若不引入合適的同步機制,會引發以下問題: 數據競…

    【HarmonyOS Next】鴻蒙應用實現彈框DialogHub詳解

    【HarmonyOS Next】鴻蒙應用實現彈框DialogHub詳解 一、前言 鴻蒙中實現彈框目前官方提供openCustomDialog和CustomDialog兩種模式。推薦前者,詳情見下圖和官網文檔鏈接: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/arkts-u…

    機器學習算法實戰——天氣數據分析(主頁有源碼)

    ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連? ? ??? 1. 引言 天氣數據分析是氣象學和數據科學交叉領域的一個重要研究方向。隨著大數據技術的發展,氣象數據的采集、存儲和分…

    輸電線路專業英語詞匯

    輸電線路transmission line 雙回路double circuit 導線conductor 地線ground (Earth)wire 雙回路耐張塔double-circuit tension towers 直線塔tangent tower 地質Geological 水文Hydrological 塔位坐標Coordinate of Tower Location 轉角塔angle tower 直…

    炫酷的3D按鈕效果實現 - CSS3高級特性應用

    炫酷的3D按鈕效果實現 - CSS3高級特性應用 這里寫目錄標題 炫酷的3D按鈕效果實現 - CSS3高級特性應用項目介紹核心技術實現1. 基礎結構設計2. 視覺效果實現2.1 背景漸變2.2 立體感營造 3. 交互動效設計3.1 懸停效果3.2 按壓效果 技術要點分析1. 深度層次感2. 動畫過渡3. 性能優…

    解決python配置文件類configparser.ConfigParser,插入、讀取數據,自動轉為小寫的問題

    配置類 [Section1] Key_AAA Value[Section2] AnotherKey Value默認情況下,ConfigParser會將ini配置文件中的KEY,轉為小寫。 重載后配置類: 繼承類從configparser.ConfigParser改為configparser.RawConfigParser重載方法optionxform&#…

    微服務的網關配置

    微服務的網關配置 1. 網關路由 1.1 網關 1.1.1 存在問題 單體架構時我們只需要完成一次用戶登錄、身份校驗,就可以在所有業務中獲取到用戶信息。而微服務拆分后,每個微服務都獨立部署,這就存在一些問題:每個微服務都需要編寫身…

    【硬核實戰】ETCD+AI智能調度深度整合!從架構設計到調優避坑,手把手教你打造高可用調度系統!

    一、核心架構設計:ETCD如何賦能AI調度? 🔥 架構圖: [AI調度引擎] ← 實時數據 → [ETCD集群] ↓ 決策指令 [執行層(車輛/物流/交通設備)] 核心角色: ETCD:存儲調度策略、節點狀…

    區間震蕩指標

    區間震蕩指標的邏輯如下: 一、函數注解 1. Summation函數 功能: 計算給定價格序列Price的前Length個數據點的和,或在數據點數量超過Length時,計算滾動窗口內的價格和。 參數: Price(1):價格序列&#…

    C語言-數組指針和指針數組

    指針 數組指針與指針數組 數組指針 定義 概念:數組指針是指向數組的指針,本質上還是指針 特點: ①先有數組,后有指針 ②它指向的是一個完整的數組 一維數組指針 語法: 數據類型 (*指針變量名)[容量]; 案例&a…

    31天Python入門——第5天:循環那些事兒

    你好,我是安然無虞。 文章目錄 1. while循環1.1 while循環的嵌套1.2 補充學習:print函數 2. for循環2.1 range函數2.2 for循環2.3 continue和break以及return2.4 for循環的嵌套 3. 補充學習3.1 enumerate函數3.2 zip函數3.3 不要在遍歷列表的過程中刪除元素 循環 是…

    T3 出行:網約車全棧分布式數據庫升級實踐

    現今,網約車已成為民眾日常出行不可或缺的選擇。伴隨“互聯網出行”模式的快速推進,龐大的出行數據應運而生,如同構建了城市交通系統的數字神經脈絡。與此同時,對高效數據存儲與深入數據分析的需求也在持續攀升。 T3 出行于2019年…

    區塊鏈技術在供應鏈管理中的應用與創新

    在當今全球化的商業環境中,供應鏈管理的復雜性與日俱增。從原材料采購到最終產品交付,涉及眾多環節和參與者,信息的透明度、準確性和安全性至關重要。區塊鏈技術的出現,為供應鏈管理帶來了全新的解決方案,正在逐步改變…

    藍橋每日打卡--打家劫舍4

    #藍橋#JAVA#打家劫舍4 題目描述 沿街有一排連續的房屋。每間房屋內都藏有一定的現金。現在有一位小偷計劃從這些房屋中竊取現金。 由于相鄰的房屋裝有相互連通的防盜系統,所以小偷 不會竊取相鄰的房屋 。 小偷的 竊取能力 定義為他在竊取過程中能從單間房屋中竊…