新聞中心

        EEPW首頁 > 設計應用 > 一篇文章帶您玩轉T113的ARM+RISC-V+DSP三核異構!

        一篇文章帶您玩轉T113的ARM+RISC-V+DSP三核異構!

        —— 米爾電子
        作者: 時間:2025-03-21 來源:EEPW 收藏

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

        本文引用地址:http://www.104case.com/article/202503/468445.htm

        1742537175528254.png

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

        一、T113-i芯片及OpenAMP簡介

        o   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)

        o   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 異構多處理系統)即非對稱多處理架構。

        1742537214428176.png

        二、AMP系統通信機制詳解

        o   AMP通信原理

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

        在AMP系統中,兩個核心通過共享內存的方式進行通信。兩個核心通過AMP中斷來傳遞訊息。內存的管理由主核負責。

        1742537237580139.png

        o   使用 RPMsg進行核間通信

        RPMsg整體通訊框架

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

        1742537259460078.png 

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

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

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

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

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

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

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

        RPMsg數據傳輸流程如下:

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

        1742537294909180.png

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

        1.在消息傳輸命令后加上數據在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管理的一個環形共享內存。

        三、案例與性能測試

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

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

        1742537312112604.png

        1.首先監聽端點

        image.png

        2.創建端點

        1742537407531093.png

        3.節點通訊

        linux向riscv發送

        1742537436384599.png

        4.riscv接收數據

        1742537453163457.png

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

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

        1.主核測試結果:

        1742537474666624.png

        2.從核測試結果:

        1742537491275900.png

        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采集測試

        采集流程如下:

        1742537512412875.png

         1. 開啟DSP

        1742537534320107.png

        2. DSP核打印

        1742537553372291.png

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

        1742537573758689.png

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

        米爾T113-i核心板配置型號

        表 MYC-YT113-i核心板選型表

        米爾T113-i開發板配置型號

        產品型號

        主芯片

        內存

        存儲器

        工作溫度

        MYC-Y-4E256D-110-I

        T113-i

        256MB DDR3

        4GB eMMC

        -40℃~+85℃

        MYC-Y-4E512D-110-I

        T113-i

        512MB DDR3

        4GB eMMC

        -40℃~+85℃

        MYC-YT113i-8E512D-110-I

        T113-i

        512MB DDR3

        8GB eMMC

        -40℃~+85℃

        MYC-YT113i-8E1D-110-I

        T113-i

        1GB DDR3

        8GB eMMC

        -40℃~+85℃

        表 MYD-YT113-i開發板選型表

        產品型號

        對應核心板型號

        工作溫度

        MYD-YT113i-4E256D-110-I

        MYC-YT113i-4E256D-110-I

        -40℃~+85℃工業級

        MYD-YT113i-4E512D-110-I

        MYC-YT113i-4E512D-110-I

        -40℃~+85℃工業級

        MYD-YT113i-8E512D-110-I

        MYC-YT113i-8E512D-110-I

        -40℃~+85℃工業級

        MYD-YT113i-8E1D-110-I

        MYC-YT113i-8E1D-110-I

        -40℃~+85℃工業級



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 内江市| 青冈县| 原平市| 武山县| 文成县| 宁城县| 彰武县| 自贡市| 女性| 阜宁县| 遵义县| 吴旗县| 通道| 阳曲县| 兴国县| 嘉黎县| 肃宁县| 深水埗区| 华安县| 荃湾区| 凤冈县| 恩平市| 抚州市| 喀喇| 玉溪市| 罗定市| 股票| 乌什县| 福泉市| 成武县| 马边| 阳谷县| 大埔区| 吉安县| 灌阳县| 阿克陶县| 石家庄市| 西峡县| 利川市| 龙川县| 华阴市|