• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 設(shè)計應(yīng)用 > 一篇文章帶您玩轉(zhuǎn)T113的ARM+RISC-V+DSP三核異構(gòu)!

    一篇文章帶您玩轉(zhuǎn)T113的ARM+RISC-V+DSP三核異構(gòu)!

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

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

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

    1742537175528254.png

    米爾基于全志T113-i核心板及開發(fā)板

    一、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.操作系統(tǒng)支持裸跑和FreeRTOS實時操作系統(tǒng)

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

    ●   DSP(HIFI 4)特性:

    1.最高主頻600MHz

    2.32KB L1 I-cache+32 KB L1 D-cache 64KB I-ram+64KB      D-ram

    3.操作系統(tǒng)支持裸跑和FreeRTOS實時操作系統(tǒng)

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

    o   OpenAMP系統(tǒng)原理

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

    1742537214428176.png

    二、AMP系統(tǒng)通信機制詳解

    o   AMP通信原理

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

    在AMP系統(tǒng)中,兩個核心通過共享內(nèi)存的方式進行通信。兩個核心通過AMP中斷來傳遞訊息。內(nèi)存的管理由主核負責(zé)。

    1742537237580139.png

    o   使用 RPMsg進行核間通信

    RPMsg整體通訊框架

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

    1742537259460078.png 

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

    1.RTOS端調(diào)用rpmsg_create_ept創(chuàng)建指定name的端點。

    2.Linux端rpmsg core層收到端點創(chuàng)建消息,調(diào)用rpmsg_register_device 將其作為一個設(shè)備注冊到      rpmsg bus。

    3.Linux端rpmsg bus匹配到相應(yīng)的驅(qū)動,觸發(fā)其 probe 函數(shù)。

    4. 端驅(qū)動probe函數(shù)完成一些資源的分配以及文件節(jié)點的生成。

    5.Linux端驅(qū)動的 probe 函數(shù)調(diào)用完后,rpmsg bus 會回復(fù)一個 ACK。

    6.RTOS 端收到 ACK 后設(shè)置端點的狀態(tài),此時使用 is_rpmsg_ept_ready 函數(shù)會返回 true。

    RPMsg數(shù)據(jù)傳輸流程如下:

    下面展示一次RPMsg數(shù)據(jù)傳輸?shù)耐ㄐ胚^程,下面詳細說明:

    1742537294909180.png

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

    1.在消息傳輸命令后加上數(shù)據(jù)在payload memory中的起始地址和長度,組成數(shù)據(jù)包,調(diào)用RPMsg接口發(fā)送。

    RPBuf:基于共享內(nèi)存和RPMsg消息通知,實現(xiàn)傳輸大數(shù)據(jù)傳輸?shù)目蚣堋?/p>

    RPMsg:基于VirtIO管理的共享內(nèi)存,實現(xiàn)數(shù)據(jù)傳輸?shù)目蚣堋?/p>

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

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

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

    MSGBOX_IRO_REG:Msgbox的中斷相關(guān)寄存器。

    buffer:表示申請到的共享內(nèi)存。用戶通過操作buffer對象,可直接訪問對應(yīng)的共享內(nèi)存。payload memory:用來存放實際傳輸數(shù)據(jù)的共享內(nèi)存,因此稱為payload(有效負載)。VRING:由Virtl0管理的一個環(huán)形共享內(nèi)存。

    三、案例與性能測試

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

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

    1742537312112604.png

    1.首先監(jiān)聽端點

    image.png

    2.創(chuàng)建端點

    1742537407531093.png

    3.節(jié)點通訊

    linux向riscv發(fā)送

    1742537436384599.png

    4.riscv接收數(shù)據(jù)

    1742537453163457.png

    A核與RISC-V核數(shù)據(jù)傳輸性能測試

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

    1.主核測試結(jié)果:

    1742537474666624.png

    2.從核測試結(jié)果:

    1742537491275900.png

    3.通過輸出的結(jié)果可以得到:

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

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

    發(fā)送496KB數(shù)據(jù)耗時20ms發(fā)送速率為24.79Mb/s

    接收496KB數(shù)據(jù)耗時9980ms發(fā)送速率為0.049699Mb/s

    ●   DSP GPADC采集測試

    采集流程如下:

    1742537512412875.png

     1. 開啟DSP

    1742537534320107.png

    2. DSP核打印

    1742537553372291.png

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

    1742537573758689.png

    可以看到GPADC0收的電壓數(shù)據(jù)為1792,轉(zhuǎn)換為電壓值為:1792/1000=1.792V。

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

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

    米爾T113-i開發(fā)板配置型號

    產(chǎn)品型號

    主芯片

    內(nè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開發(fā)板選型表

    產(chǎn)品型號

    對應(yīng)核心板型號

    工作溫度

    MYD-YT113i-4E256D-110-I

    MYC-YT113i-4E256D-110-I

    -40℃~+85℃工業(yè)級

    MYD-YT113i-4E512D-110-I

    MYC-YT113i-4E512D-110-I

    -40℃~+85℃工業(yè)級

    MYD-YT113i-8E512D-110-I

    MYC-YT113i-8E512D-110-I

    -40℃~+85℃工業(yè)級

    MYD-YT113i-8E1D-110-I

    MYC-YT113i-8E1D-110-I

    -40℃~+85℃工業(yè)級



    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 永康市| 台山市| 五华县| 万载县| 秦皇岛市| 永春县| 巫山县| 望都县| 乐清市| 体育| 长岭县| 阿图什市| 阿鲁科尔沁旗| 阿拉尔市| 平罗县| 屯留县| 湖北省| 灵璧县| 依安县| 公安县| 佛坪县| 上饶县| 湖北省| 宁海县| 廉江市| 常州市| 康平县| 宁夏| 耒阳市| 唐河县| 邹平县| 抚宁县| 安化县| 桐庐县| 图木舒克市| 枝江市| 仁怀市| 白银市| 扎囊县| 新田县| 瓦房店市|