如何使用多線程或多核設計數字音頻係統
發布時間:2022-10-09 責任編輯:lina
【導讀】如果您的 MCU 應用程序需要處理數字音頻,請考慮采用多線程方法。使用多線程設計方法使設計人員能夠以直接的方式重用他們的設計部分。
如果您的 MCU 應用程序需要處理數字音頻,請考慮采用多線程方法。使用多線程設計方法使設計人員能夠以直接的方式重用他們的設計部分。
多duo核he和he多duo線xian程cheng是shi設she計ji實shi時shi係xi統tong的de有you效xiao方fang法fa。使shi用yong這zhe些xie技ji術shu,係xi統tong被bei設she計ji為wei許xu多duo任ren務wu的de集ji合he,這zhe些xie任ren務wu獨du立li運yun行xing並bing在zai需xu要yao時shi相xiang互hu通tong信xin。將jiang係xi統tong設she計ji從cong大da型xing單dan片pian代dai碼ma塊kuai分fen解jie為wei更geng易yi於yu管guan理li的de任ren務wu,可ke以yi大da大da簡jian化hua係xi統tong設she計ji並bing加jia快kuai產chan品pin開kai發fa。因yin此ci,整zheng個ge係xi統tong的de實shi時shi屬shu性xing更geng容rong易yi理li解jie。設she計ji者zhe隻zhi需xu要yao擔dan心xin每mei個ge任ren務wu實shi現xian的de保bao真zhen度du,提ti出chu諸zhu如ru“網絡協議是否正確實現?”之類的問題。
zaibenwenzhong,womenjiangtaolunruheshiyongduoxianchenghuoduoheshejifangfalaishejiduishujuliujinxingcaozuodeshishixitong,lirushuziyinpinxitong。womenshiyongjigeshuziyinpinxitonglaishuomingshejifangfa,baokuoyibu USB 音頻 2、以太網 AVB 和 MP3 播放器的數字基座。在展示如何有效地使用多核和多線程來設計所需的緩衝和時鍾方案之前,我們將簡要討論數字音頻、多核和多線程的概念。
數字音頻
在許多消費市場中,數字音頻已經取代了模擬音頻,原因有二。首先,大多數音頻源都是數字的。無論是以有損壓縮格式 (MP3) 還是以非壓縮格式 (CD) 交付,數字標準已經取代了傳統的模擬標準,例如磁帶和磁帶。其次,數字音頻比模擬音頻更容易處理。數據可以通過現有標準(例如 IP 或 USB)傳輸而不會丟失,並且硬件設計不需要任何“魔法”來降低本底噪聲。就數字路徑而言,本底噪聲是恒定的,不受移動電話可能引起的 TDMA 噪聲的影響。
數字音頻係統對樣本流進行操作。每個樣本代表一個或多個音頻通道在某個時間點的幅度,樣本之間的時間由采樣率控製。CD 標準有兩個通道(左聲道和右聲道)並使用 44.1 kHz 的采樣率。常見的音頻標準使用 2、6 (5.1) 和 8 (7.1) 通道,以及 44.1 kHz、48 kHz 或倍數的采樣率。我們使用 48 kHz 作為運行示例,但這絕不是唯一的標準。
多核和多線程
在多線程設計方法中,係統被表示為並發任務的集合。使用並發任務,而不是單一的單一程序,有幾個優點:
多任務是支持關注點分離的好方法,這是軟件工程最重要的方麵之一。關注點分離意味著設計的不同任務可以單獨設計、實現、測試和驗證。一旦指定了任務之間的交互,團隊或個人就可以各自完成自己的任務。
bingfarenwutigongleyigejiandandekuangjialaizhidingxitongyinggaizuoshenme。liru,shuziyinpinxitongjiangbofangtongguowangluojiekoujieshoudeyinpinyangben。huanjuhuashuo,xitongyinggaitongshizhixingliangxiangrenwu:從網絡接口接收數據並在其音頻接口上播放樣本。將這兩個任務表示為單個順序任務是令人困惑的。
表示為並發任務集合的係統可以通過一個或多個多線程內核中的線程集合來實現(參見圖 1)。我們假設線程是在指令級調度的,就像XMOS XCore 處理器上的情況一樣,因為這使得並發任務能夠實時運行。請注意,這與 Linux 上(shang)的(de)多(duo)線(xian)程(cheng)不(bu)同(tong),例(li)如(ru),線(xian)程(cheng)被(bei)調(tiao)度(du)在(zai)具(ju)有(you)上(shang)下(xia)文(wen)切(qie)換(huan)的(de)單(dan)處(chu)理(li)器(qi)上(shang)。這(zhe)可(ke)能(neng)使(shi)這(zhe)些(xie)線(xian)程(cheng)對(dui)人(ren)類(lei)而(er)言(yan)似(si)乎(hu)是(shi)並(bing)發(fa)的(de),但(dan)對(dui)一(yi)組(zu)實(shi)時(shi)設(she)備(bei)而(er)言(yan)卻(que)不(bu)是(shi)。
並bing發fa任ren務wu在zai邏luo輯ji上shang設she計ji為wei通tong過guo消xiao息xi傳chuan遞di進jin行xing通tong信xin,當dang兩liang個ge任ren務wu由you兩liang個ge線xian程cheng實shi現xian時shi,它ta們men通tong過guo發fa送song數shu據ju和he控kong製zhi通tong道dao進jin行xing通tong信xin。在zai內nei核he內nei部bu,通tong道dao通tong信xin由you內nei核he本ben身shen執zhi行xing,當dang線xian程cheng位wei於yu不bu同tong的de內nei核he上shang時shi,通tong道dao通tong信xin通tong過guo交jiao換huan機ji執zhi行xing(參見圖 2)。
多(duo)線(xian)程(cheng)設(she)計(ji)已(yi)被(bei)嵌(qian)入(ru)式(shi)係(xi)統(tong)設(she)計(ji)人(ren)員(yuan)使(shi)用(yong)了(le)數(shu)十(shi)年(nian)。為(wei)了(le)實(shi)現(xian)嵌(qian)入(ru)式(shi)係(xi)統(tong),係(xi)統(tong)設(she)計(ji)人(ren)員(yuan)過(guo)去(qu)常(chang)常(chang)使(shi)用(yong)大(da)量(liang)微(wei)控(kong)製(zhi)器(qi)。例(li)如(ru),在(zai)音(yin)樂(le)播(bo)放(fang)器(qi)內(nei)部(bu),可(ke)能(neng)會(hui)發(fa)現(xian)三(san)個(ge)控(kong)製(zhi)閃(shan)存(cun)、DAC 和 MP3 解碼器芯片的微控製器。
圖 1:線程、通道、內核、交換機和鏈接。並發線程通過內核內部、芯片上的內核之間或不同芯片上的內核之間的通道進行通信。
我們認為,現代多線程環境可以替代這種設計策略。單個多線程芯片可以替代多個 MCU,並提供任務之間的集成通信模型。該係統不必在單獨的 MCU 上的任務之間實現定製通信,而是作為一組通過通道進行通信的線程來實現。
使(shi)用(yong)多(duo)線(xian)程(cheng)設(she)計(ji)方(fang)法(fa)使(shi)設(she)計(ji)人(ren)員(yuan)能(neng)夠(gou)以(yi)直(zhi)接(jie)的(de)方(fang)式(shi)重(zhong)用(yong)他(ta)們(men)的(de)設(she)計(ji)部(bu)分(fen)。在(zai)傳(chuan)統(tong)的(de)軟(ruan)件(jian)工(gong)程(cheng)中(zhong),功(gong)能(neng)和(he)模(mo)塊(kuai)結(jie)合(he)起(qi)來(lai)執(zhi)行(xing)複(fu)雜(za)的(de)任(ren)務(wu)。但(dan)是(shi),這(zhe)種(zhong)方(fang)法(fa)不(bu)一(yi)定(ding)適(shi)用(yong)於(yu)實(shi)時(shi)環(huan)境(jing),因(yin)為(wei)依(yi)次(ci)執(zhi)行(xing)兩(liang)個(ge)函(han)數(shu)可(ke)能(neng)會(hui)破(po)壞(huai)函(han)數(shu)或(huo)模(mo)塊(kuai)的(de)實(shi)時(shi)性(xing)要(yao)求(qiu)。
在理想的多線程環境中,實時任務的組合是微不足道的,因為它隻是為每個新的實時任務添加一個線程(或核心)的情況。實際上,設計人員會對內核數量有所限製(例如,出於經濟原因),因此必須決定哪些任務將組成並發線程,以及哪些任務將作為集合集成到單個線程中的功能。
多線程數字音頻
一個數字音頻係統很容易拆分為多個線程,包括一個網絡協議棧線程、一個時鍾恢複線程、一個音頻傳輸線程,以及可選的用於 DSP、設備升級和驅動程序認證的線程。網絡協議棧可以像以太網/IP 棧一樣複雜並包含多個並發任務,或者像 S/PDIF 接收器一樣簡單。
圖 2:具有 24 個並發線程的三核係統的物理化身。頂部設備有兩個核心,底部設備有一個核心。
womenjiashexitongzhongdexianchengtongguotongdaofasongshujuyangbenjinxingtongxin。zaizhezhongshejifangfazhong,xianchengshizaidanhehaishiduohexitongshangzhixingbingbuzhongyao,yinweiduohezhishiweishejizengjialekekuozhanxing。womenjiashemeigexianchengdejisuanyaoqiukeyijingtaijianlibingqiebuyilaiyushuju,zhetongchangshiweiyasuoyinpindeqingkuang。
我們將把注意力集中在設計的兩個部分:線程之間的緩衝(以及它們對性能的影響)和(he)時(shi)鍾(zhong)恢(hui)複(fu)。一(yi)旦(dan)做(zuo)出(chu)了(le)這(zhe)些(xie)設(she)計(ji)決(jue)策(ce),實(shi)現(xian)每(mei)個(ge)線(xian)程(cheng)的(de)內(nei)部(bu)就(jiu)遵(zun)循(xun)正(zheng)常(chang)的(de)軟(ruan)件(jian)工(gong)程(cheng)原(yuan)則(ze),並(bing)且(qie)與(yu)人(ren)們(men)預(yu)期(qi)的(de)一(yi)樣(yang)難(nan)或(huo)容(rong)易(yi)。緩(huan)衝(chong)和(he)時(shi)鍾(zhong)恢(hui)複(fu)很(hen)有(you)趣(qu),因(yin)為(wei)它(ta)們(men)都(dou)對(dui)用(yong)戶(hu)體(ti)驗(yan)有(you)定(ding)性(xing)影(ying)響(xiang)(促進穩定的低延遲音頻),並且在多線程編程環境中很容易理解。
緩衝
在數字解決方案中,數據樣本不一定在交付時進行傳輸。這需要緩衝數字音頻。例如,考慮一個采樣率為 48 kHz 的 USB 2.0 揚聲器。USB 層將在每 125 µs 窗口中傳輸六個樣本的突發。無法保證在 125 µs 的窗口中將傳送六個樣本,因此需要至少 12 個樣本的緩衝區,以保證樣本可以實時流式傳輸到揚聲器。
設(she)計(ji)挑(tiao)戰(zhan)是(shi)建(jian)立(li)適(shi)量(liang)的(de)緩(huan)衝(chong)。在(zai)模(mo)擬(ni)係(xi)統(tong)中(zhong),緩(huan)衝(chong)不(bu)是(shi)問(wen)題(ti)。信(xin)號(hao)按(an)時(shi)傳(chuan)遞(di)。在(zai)基(ji)於(yu)非(fei)實(shi)時(shi)操(cao)作(zuo)係(xi)統(tong)設(she)計(ji)的(de)數(shu)字(zi)係(xi)統(tong)中(zhong),程(cheng)序(xu)員(yuan)通(tong)常(chang)堅(jian)持(chi)使(shi)用(yong)相(xiang)當(dang)大(da)的(de)緩(huan)衝(chong)區(qu)(250 或 1,000 個樣本)以應對調度策略中的不確定性。然而,大緩衝區在內存方麵、增加延遲方麵以及證明它們足夠大以保證無點擊交付方麵都是昂貴的。
多線程設計提供了一個很好的框架來非正式地和正式地推理緩衝並避免不必要的大緩衝區。例如,考慮上述 USB 揚聲器增加了環境噪聲校正係統。該係統將包括以下線程:
通過網絡接收 USB 樣本的線程。
過濾樣本流的一係列 10 個或更多線程,每個線程都有一組不同的係數。
使用 I 2 S將過濾後的輸出樣本傳送到立體聲編解碼器的線程。
從連接到麥克風采樣環境噪聲的編解碼器中讀取樣本的線程。
將環境噪聲二次采樣到 8 kHz 采樣率的線程。
建立環境噪聲頻譜特性的線程。
根據計算的光譜特性更改濾波器係數的線程。
所有線程都將在 48 kHz 基本周期的某個倍數上運行。例如,每個過濾線程將每 48 kHz 周期過濾一個樣本;jiaofuxianchengjiangzaimeigezhouqijiaofuyigeyangben。meigexianchengyeyouyigedingyidechuangkou,tazaishangmiancaozuo,yijiyigedingyidefangfa,tongguozhegefangfatuijinzhegechuangkou。liru,ruguowomendeguolvqixianchengshishiyongshuangerjieshixiande,tajiangzaiyigebaohansangeyangbendechuangkoushangyunxing,meigezhouqitiqianyigeyangben。pinpuxianchengkeyizaimei 64 個樣本推進 64 個樣本的 256 個樣本窗口(以執行 FFT(Fest Fourier Transform))上運行。
現(xian)在(zai)可(ke)以(yi)建(jian)立(li)在(zai)同(tong)一(yi)周(zhou)期(qi)運(yun)行(xing)的(de)係(xi)統(tong)的(de)所(suo)有(you)部(bu)分(fen),並(bing)將(jiang)它(ta)們(men)以(yi)同(tong)步(bu)部(bu)分(fen)的(de)形(xing)式(shi)連(lian)接(jie)在(zai)一(yi)起(qi)。在(zai)這(zhe)些(xie)同(tong)步(bu)部(bu)分(fen)內(nei)不(bu)需(xu)要(yao)緩(huan)衝(chong)區(qu),盡(jin)管(guan)如(ru)果(guo)線(xian)程(cheng)要(yao)在(zai)管(guan)道(dao)中(zhong)運(yun)行(xing),則(ze)需(xu)要(yao)單(dan)個(ge)緩(huan)衝(chong)區(qu)。在(zai)各(ge)個(ge)同(tong)步(bu)部(bu)分(fen)之(zhi)間(jian)需(xu)要(yao)緩(huan)衝(chong)區(qu)。在(zai)我(wo)們(men)的(de)示(shi)例(li)中(zhong),我(wo)們(men)最(zui)終(zhong)得(de)到(dao)三(san)個(ge)部(bu)分(fen):
從 USB 接收樣本、過濾並以 48 kHz 傳輸的部分。
以 48 kHz 采樣環境噪聲並以 8 kHz 傳輸的部分。
建立頻譜特性並在 125 Hz 時更改濾波器設置的部分。
這三個部分如圖 3 所示。從 USB 緩衝區接收樣本的第一部分需要緩衝 12 個立體聲樣本。
圖 3:根據頻率分組在一起的線程。
傳遞的部分需要緩衝一個立體聲樣本。將 10 個過濾器線程作為管道運行需要 11 個緩衝區。這意味著從接收器到編解碼器的總延遲包括 24 個采樣時間,即 500 µs,並且可以添加一個額外的采樣以應對時鍾恢複算法中的中期抖動。這部分以 48 kHz 運行。
對環境噪聲進行采樣的第二部分需要在輸入端存儲一個樣本,並在二次采樣中存儲六個樣本。因此,在 48 kHz 或 145 µs 處有 7 個樣本延遲。
建立頻譜特性的第三部分需要以 8 kHz 的采樣率存儲 256 個樣本。不需要其他緩衝區。因此,環境噪聲和濾波器校正之間的延遲為 8 kHz 下的 256 個樣本,二次采樣時間為 145 µs,或剛好超過 32 ms。請注意,這些是我們選擇使用的算法的最小緩衝區大小;如果此延遲不可接受,則必須選擇不同的算法。
設she計ji線xian程cheng以yi對dui數shu據ju塊kuai而er不bu是shi單dan個ge樣yang本ben進jin行xing操cao作zuo通tong常chang很hen容rong易yi,但dan這zhe會hui增zeng加jia所suo經jing曆li的de整zheng體ti延yan遲chi,增zeng加jia內nei存cun需xu求qiu並bing增zeng加jia複fu雜za性xing。僅jin當dang有you明ming顯xian的de好hao處chu時shi才cai應ying考kao慮lv這zhe一yi點dian,例li如ru增zeng加jia吞tun吐tu量liang。
計時數字音頻
數(shu)字(zi)音(yin)頻(pin)和(he)模(mo)擬(ni)音(yin)頻(pin)之(zhi)間(jian)的(de)一(yi)個(ge)很(hen)大(da)區(qu)別(bie)在(zai)於(yu),模(mo)擬(ni)音(yin)頻(pin)基(ji)於(yu)此(ci)基(ji)礎(chu)采(cai)樣(yang)率(lv),而(er)數(shu)字(zi)音(yin)頻(pin)需(xu)要(yao)將(jiang)時(shi)鍾(zhong)信(xin)號(hao)分(fen)配(pei)給(gei)係(xi)統(tong)的(de)所(suo)有(you)部(bu)分(fen)。盡(jin)管(guan)組(zu)件(jian)都(dou)可(ke)以(yi)使(shi)用(yong)不(bu)同(tong)的(de)采(cai)樣(yang)率(lv)(例如,係統的某些部分可能使用 48 kHz,而其他一些部分可能使用 96 kHz,中間有一個采樣率轉換器),所有組件都應就一秒的長度達成一致,並且因此在測量頻率的基礎上達成一致。
數shu字zi音yin頻pin的de一yi個ge有you趣qu特te性xing是shi係xi統tong內nei的de所suo有you線xian程cheng都dou與yu這zhe個ge時shi鍾zhong頻pin率lv的de基ji數shu無wu關guan,假jia設she有you一yi個ge黃huang金jin標biao準zhun的de基ji頻pin。係xi統tong中zhong的de多duo個ge核he心xin是shi否fou使shi用yong不bu同tong的de晶jing體ti並bing不bu重zhong要yao,隻zhi要yao它ta們men對dui樣yang本ben進jin行xing操cao作zuo即ji可ke。然ran而er,在zai係xi統tong的de邊bian緣yuan,真zhen正zheng的de時shi鍾zhong頻pin率lv很hen重zhong要yao,采cai樣yang在zai途tu中zhong產chan生sheng的de延yan遲chi也ye很hen重zhong要yao。
在(zai)多(duo)線(xian)程(cheng)環(huan)境(jing)中(zhong),將(jiang)留(liu)出(chu)一(yi)個(ge)線(xian)程(cheng)來(lai)明(ming)確(que)測(ce)量(liang)真(zhen)實(shi)時(shi)鍾(zhong)頻(pin)率(lv),實(shi)施(shi)時(shi)鍾(zhong)恢(hui)複(fu)算(suan)法(fa),測(ce)量(liang)本(ben)地(di)時(shi)鍾(zhong)與(yu)全(quan)局(ju)時(shi)鍾(zhong),並(bing)在(zai)時(shi)鍾(zhong)偏(pian)移(yi)上(shang)與(yu)主(zhu)時(shi)鍾(zhong)達(da)成(cheng)一(yi)致(zhi)。
可以使用互連的底層比特率隱含地測量時鍾,例如 S/PDIF 或 ADAT。測(ce)量(liang)其(qi)中(zhong)任(ren)何(he)一(yi)個(ge)網(wang)絡(luo)上(shang)的(de)每(mei)秒(miao)比(bi)特(te)數(shu)將(jiang)給(gei)出(chu)主(zhu)時(shi)鍾(zhong)的(de)測(ce)量(liang)值(zhi)。時(shi)鍾(zhong)可(ke)以(yi)通(tong)過(guo)使(shi)用(yong)為(wei)此(ci)目(mu)的(de)而(er)設(she)計(ji)的(de)協(xie)議(yi)來(lai)明(ming)確(que)測(ce)量(liang),例(li)如(ru)以(yi)太(tai)網(wang)上(shang)的(de) PTP。
在(zai)時(shi)鍾(zhong)恢(hui)複(fu)線(xian)程(cheng)中(zhong),可(ke)以(yi)實(shi)現(xian)一(yi)個(ge)控(kong)製(zhi)循(xun)環(huan),它(ta)估(gu)計(ji)時(shi)鍾(zhong)頻(pin)率(lv),並(bing)根(gen)據(ju)觀(guan)察(cha)到(dao)的(de)誤(wu)差(cha)進(jin)行(xing)調(tiao)整(zheng)。在(zai)最(zui)簡(jian)單(dan)的(de)形(xing)式(shi)中(zhong),誤(wu)差(cha)用(yong)作(zuo)調(tiao)整(zheng)頻(pin)率(lv)的(de)指(zhi)標(biao),但(dan)濾(lv)波(bo)器(qi)可(ke)用(yong)於(yu)減(jian)少(shao)抖(dou)動(dong)。該(gai)軟(ruan)件(jian)線(xian)程(cheng)實(shi)現(xian)了(le)傳(chuan)統(tong)上(shang)由(you) PLL 但在軟件中執行的功能,因此它可以廉價地適應環境。
結論
多duo線xian程cheng開kai發fa方fang法fa使shi數shu字zi音yin頻pin係xi統tong能neng夠gou使shi用yong分fen而er治zhi之zhi的de方fang法fa進jin行xing開kai發fa,其qi中zhong一yi個ge問wen題ti被bei分fen成cheng一yi組zu並bing發fa任ren務wu,每mei個ge任ren務wu在zai多duo線xian程cheng內nei核he上shang的de單dan獨du線xian程cheng中zhong執zhi行xing。
像(xiang)許(xu)多(duo)實(shi)時(shi)係(xi)統(tong)一(yi)樣(yang),數(shu)字(zi)音(yin)頻(pin)適(shi)合(he)多(duo)線(xian)程(cheng)設(she)計(ji)方(fang)法(fa),因(yin)為(wei)數(shu)字(zi)音(yin)頻(pin)係(xi)統(tong)顯(xian)然(ran)由(you)一(yi)組(zu)處(chu)理(li)數(shu)據(ju)的(de)任(ren)務(wu)組(zu)成(cheng),並(bing)且(qie)還(hai)需(xu)要(yao)這(zhe)些(xie)任(ren)務(wu)同(tong)時(shi)執(zhi)。
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 從技術研發到規模量產:恩智浦第三代成像雷達平台,賦能下一代自動駕駛!
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall



