0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MIPI SoundWire:通過批量寄存器訪問實(shí)現(xiàn)更高的帶寬

星星科技指導(dǎo)員 ? 來源:synopsys ? 作者:Parul Raj ? 2023-05-26 16:05 ? 次閱讀

MIPI SoundWire 提供了一種可選機(jī)制,用于以比強(qiáng)制命令機(jī)制更高的帶寬傳輸寄存器操作。批量寄存器訪問(BRA)協(xié)議是一種特殊的數(shù)據(jù)傳輸格式,以實(shí)現(xiàn)更高的帶寬。雖然普通命令只能以每幀一個(gè)命令的速率驅(qū)動(dòng),但批量寄存器訪問提供了在一個(gè)幀中讀取/寫入多達(dá) 511 個(gè)寄存器的選項(xiàng)。因此,5MHz的時(shí)鐘頻率和256 * 16的幀大?。?096位插槽或2048時(shí)鐘周期)將使數(shù)據(jù)傳輸?shù)挠行俾侍岣叩酱蠹s1.2 MBps。 MIPI SoundWire支持高達(dá)12 MHz的頻率,因此帶寬可以更高。在本博客中,我將重點(diǎn)介紹批量注冊(cè)訪問有效負(fù)載流的外觀以及如何使用它來實(shí)現(xiàn)更高的帶寬。

BRA 有效負(fù)載流

由于BRA與實(shí)際的音頻傳輸無關(guān),因此我們可以根據(jù)需要自由選擇單詞長(zhǎng)度和采樣間隔的任何值。但是,有一些限制,因?yàn)槲覀兊哪繕?biāo)是即使在最壞的情況下也傳輸至少 11 個(gè)字節(jié)(使用 11 個(gè)字節(jié),我們只訪問 1 個(gè)字節(jié),這違背了 BRA 的整個(gè)目的,在這種情況下,普通命令會(huì)更有效)。要在幀中使用盡可能多的可用位來傳輸數(shù)據(jù),可以將樣本字長(zhǎng)度設(shè)置為等于 hwidth 和樣本間隔等于列數(shù)。當(dāng)使用通道 0 時(shí),HStop 可以設(shè)置為最大列,HStart 可以設(shè)置為 1 或 0 列。因此,規(guī)范建議端口 0 應(yīng)支持從 1 到 16 的所有字長(zhǎng)值,因?yàn)樗峁┝俗钣行У臄?shù)據(jù)包打包。

端口 0 上的數(shù)據(jù)可以在需要時(shí)與其他端口輕松多路復(fù)用。在與其他端口多路復(fù)用 BRA 時(shí),為 BRA 保留一個(gè)單獨(dú)的子幀看起來是一個(gè)更好的選擇,因?yàn)樗嗽谕蛔訋卸嗦窂?fù)用端口 0 和“正常”數(shù)據(jù)端口時(shí)對(duì)采樣間隔的任何限制。然而,當(dāng)涉及到BRA的測(cè)試模式時(shí),任何類型的多路復(fù)用都可以毫無問題地使用,因?yàn)楝F(xiàn)在我們對(duì)確保我們的BRA模塊應(yīng)該在一個(gè)框架內(nèi)完成不感興趣。

BRA 的另一個(gè)重要區(qū)別特征是它以字節(jié)為單位打包,而不考慮通道邊界。落在一個(gè)幀內(nèi)的所有有效載荷通道樣本統(tǒng)稱為傳輸一個(gè) BRA 塊。由于 BRA 塊始終以字節(jié)為單位打包,因此所有超過 8 倍數(shù)的位都將被忽略,即使它們落在幀內(nèi)。使用新幀時(shí),新的 BRA 塊將啟動(dòng),因此,如果要讀取 64 個(gè)連續(xù)地址,并且由于有效負(fù)載的可用位限制,一幀中只能讀取 60 個(gè)地址,則剩余的 4 個(gè)地址將在下一幀/下一個(gè) BRA 塊中讀取。下一個(gè) BRA 塊將有 61圣地址作為起始地址和字節(jié)數(shù)將設(shè)置為 4,以便讀取剩余的 4 個(gè)字節(jié)。

幾個(gè)例子

示例 1:

假設(shè)幀大小 = 10 列 * 60 行,要讀取的字節(jié)數(shù) = 64

將用于此類 BRA 塊的總位數(shù) -> (64 + 10) 字節(jié) * 8 = 592 位

有效載荷參數(shù) - > 啟動(dòng) 1、停止 9 字長(zhǎng) = 9,采樣間隔 = 10

幀中的可用有效載荷位 -> 60*9 = 540

可以使用的位數(shù) = 540 – 540%8 = 536

可容納一幀的字節(jié)數(shù) = 536/8 = 67

所以在這個(gè)幀中只能讀取 64-7 = 57 字節(jié),塊 67 *8 = 536 中的總位數(shù)

框架如下所示的表 -1。

1 2 3 4 5 6 7 8 9 10
1 C
2 O
3 N
. T
. R
. O
. L
W
O
R
48 D
.
.
.
60

剩余的 7 個(gè)字節(jié)可以在另一個(gè)幀中訪問,此 BRA 塊中的總位數(shù):17*8 = 136

生成的幀如下所示的表 2。

1 2 3 4 5 6 7 8 9 10
1 C
2 O
3 N
. T
. R
15 O
16 L
. W
. O
. R
48 D
.
.
.
60

示例 2:

讓我們?nèi)【哂邢嗤訋耐粠?,字長(zhǎng) = 12,采樣間隔 = 24

我不會(huì)在這里進(jìn)行詳細(xì)計(jì)算,但打包的 BRA 塊看起來像這樣(表 3 BRA 塊 3)。落在幀內(nèi)的所有通道樣本將共同用于發(fā)送一個(gè) BRA 塊。

1 2 3 4 5 6 7 8 9 10
1 C
2 O
3 N
. T
. R
. O
. L
W
O
R
48 D

我們將在即將發(fā)布的博客中詳細(xì)討論批量注冊(cè)訪問的其他方面,例如延遲的命令響應(yīng)和命令失敗時(shí)的中斷。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119212
  • 帶寬
    +關(guān)注

    關(guān)注

    3

    文章

    878

    瀏覽量

    40637
  • MIPI
    +關(guān)注

    關(guān)注

    10

    文章

    303

    瀏覽量

    48383
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何訪問SYSCFG寄存器?

    TrustZoneFLASH_OPTR->TZEN 讀數(shù)為零。FLASH_OPTR 讀取 0x1FEFF8AA。通過控制寄存器檢查特權(quán)訪問通過 IDE
    發(fā)表于 02-02 06:43

    如何訪問DS1318的時(shí)鐘寄存器

    摘要:該應(yīng)用筆記描述了如何適當(dāng)訪問DS1318歷時(shí)計(jì)數(shù)的時(shí)鐘寄存器,實(shí)時(shí)時(shí)鐘(RTC)的讀、寫操作和時(shí)鐘寄存器的內(nèi)部更新不同步,需要做出正確判斷,確保數(shù)據(jù)的準(zhǔn)確性。
    發(fā)表于 04-21 11:08 ?7次下載

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內(nèi)的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實(shí)現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

    arm程序狀態(tài)寄存器訪問指令

    arm程序狀態(tài)寄存器訪問指令
    發(fā)表于 01-04 13:11 ?0次下載

    寄存器Load/Store內(nèi)存訪問指令

    5.4 多寄存器Load/Store內(nèi)存訪問指令 多寄存器Load/Store內(nèi)存訪問指令也叫批量加載/存儲(chǔ)指令,它可以
    發(fā)表于 10-18 15:56 ?1次下載

    C語(yǔ)言訪問MCU寄存器用兩種方式實(shí)現(xiàn)

    ICCAVR和GCCAVR沒有定義新的數(shù)據(jù)類型,只能采用標(biāo)準(zhǔn)C的強(qiáng)制類型轉(zhuǎn)換和指針來實(shí)現(xiàn)訪問MCU的寄存器。而IAR和CodeVisionAVR編譯對(duì)ANSI C進(jìn)行了擴(kuò)充,都定義了
    的頭像 發(fā)表于 03-12 11:20 ?6608次閱讀

    零基礎(chǔ)學(xué)ARM:程序狀態(tài)寄存器訪問指令解析

    一、程序狀態(tài)寄存器訪問指令A(yù)RM微處理支持程序狀態(tài)寄存器訪問指令,用于在程序狀態(tài)寄存器和通用
    的頭像 發(fā)表于 12-24 13:36 ?3016次閱讀

    C語(yǔ)言訪問MCU寄存器

    C語(yǔ)言訪問MCU寄存器問題由來://下面這行代碼的意思是直接操作0X020C4068這個(gè)寄存器//具體寄存器的作用是通過手冊(cè)得到的#defi
    發(fā)表于 10-25 13:21 ?3次下載
    C語(yǔ)言<b class='flag-5'>訪問</b>MCU<b class='flag-5'>寄存器</b>

    RAL寄存器模型操作圖鑒

    寄存器模型操作,指的是通過寄存器模型對(duì)RTL中寄存器進(jìn)行讀寫訪問,或者同步寄存器模型與RTL中
    的頭像 發(fā)表于 05-17 09:01 ?809次閱讀
    RAL<b class='flag-5'>寄存器</b>模型操作圖鑒

    訪問CXL 2.0設(shè)備中的內(nèi)存映射寄存器

    計(jì)算快速鏈接 (CXL) 1.1 和 CXL 2.0 規(guī)范在內(nèi)存映射寄存器的放置和訪問方式上有所不同。CXL 1.1 規(guī)范將內(nèi)存映射寄存器放置在 RCRB(根復(fù)合寄存器塊)中,而 CX
    的頭像 發(fā)表于 05-25 16:56 ?1668次閱讀
    <b class='flag-5'>訪問</b>CXL 2.0設(shè)備中的內(nèi)存映射<b class='flag-5'>寄存器</b>

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通過寄存器模型對(duì)RTL中寄存器進(jìn)行讀寫訪問,或者同步寄存器模型與RTL中
    的頭像 發(fā)表于 07-12 09:37 ?924次閱讀
    RAL<b class='flag-5'>寄存器</b>模型操作指南

    怎樣通過改變寄存器中的內(nèi)容實(shí)現(xiàn)對(duì)CPU的控制呢?

    寄存器是CPU中程序員可以用指令讀寫的部件,通過改變寄存器中的內(nèi)容實(shí)現(xiàn)對(duì)CPU的控制。
    的頭像 發(fā)表于 09-20 15:49 ?1174次閱讀
    怎樣<b class='flag-5'>通過</b>改變<b class='flag-5'>寄存器</b>中的內(nèi)容<b class='flag-5'>實(shí)現(xiàn)</b>對(duì)CPU的控制呢?

    寄存器分為基本寄存器和什么兩種

    ,它們用于存儲(chǔ)指令、數(shù)據(jù)和地址等信息。基本寄存器的容量通常較小,但訪問速度非???,因?yàn)樗鼈兣cCPU的執(zhí)行單元緊密相連。 基本寄存器的分類 基本寄存器可以分為以下幾類: (1)通用
    的頭像 發(fā)表于 07-12 10:31 ?638次閱讀

    寄存器尋址的實(shí)現(xiàn)方式

    在計(jì)算機(jī)體系結(jié)構(gòu)中,寄存器尋址是一種常見的尋址方式,它允許程序直接訪問CPU內(nèi)部的寄存器。寄存器尋址可以提高程序的執(zhí)行效率,因?yàn)樗苊饬藢?duì)內(nèi)存的訪問
    的頭像 發(fā)表于 07-12 10:36 ?364次閱讀