亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        硬件信號量在多核處理器核間通信中的應(yīng)用

        2015-09-12 06:42:20劉德保汪安民韓道文
        關(guān)鍵詞:間通信信號量寄存器

        劉德保,汪安民,韓道文

        (1.同方電子科技有限公司研究所,九江332009;2.解放軍電子工程學(xué)院)

        引 言

        多核處理器由于片內(nèi)集成多個處理器,在對處理能力要求較高的應(yīng)用場合得到了大規(guī)模使用;同時多核處理器的超強處理能力,也推動了產(chǎn)品功能的多樣化。目前,多核處理器主要以片內(nèi)集成多款不同類型的處理芯片為主,一般集成FPGA/DSP/ARM/CPU 以及專用的協(xié)處理器等,如TI公司的AK2系列,集成多個DSP和多個ARM 核。此外,也有集成單一型號的多個處理器,如多核DSP 芯片TMS320C66系列,集成了2、4或8個同樣的DSP核。

        多核處理器中的多個單核一般需要聯(lián)合工作,聯(lián)合工作時它們之間的通信、握手、數(shù)據(jù)交換非常重要。尤其是在軟件復(fù)雜度較高,且對運行時序要求嚴(yán)格的情況下,核間通信成為整個軟件的關(guān)鍵。核間通信一般有3種方式:共享數(shù)據(jù)空間、硬件中斷和任務(wù)中斷。共享數(shù)據(jù)空間,是指兩個核都可以訪問相同的內(nèi)存空間,根據(jù)其信息來交換數(shù)據(jù)和狀態(tài)。該方式一般需要逐個核去查詢,但采用查詢方法一般很難適用于實時性要求較高的場合。硬件中斷方式,是核之間通過硬件中斷方式來通知狀態(tài),這種方式實時性最高,可以實時響應(yīng)中斷,但引起的問題是:如果存在多個任務(wù),核間中斷會打斷正在運行的較高優(yōu)先級的事件;如果在高級事件中屏蔽中斷,在多次中斷中只會響應(yīng)最后一次中斷,導(dǎo)致前面的中斷丟失。為了解決這兩個問題,多核處理器一般采用任務(wù)中斷方式來實現(xiàn)核間信息交互。在單核的軟件中,任務(wù)是實時運行的進(jìn)程,由信號量來觸發(fā)。一個任務(wù)完成后退出,信號量會減1,直到該任務(wù)對應(yīng)的信號量為0;觸發(fā)一個任務(wù),就會給該任務(wù)的信號量加1。在多核處理器中,將信號量做成硬件信號量(Hardware Semaphore)來實現(xiàn)核間通信,硬件信號量具有硬件中斷的實時性,又具有任務(wù)的排隊機(jī)制,可以較好地解決核間通信問題。

        本文以8核DSP 芯片TMS320C6678為例介紹了硬件信號量的應(yīng)用。文中詳細(xì)介紹了硬件信號量模塊的結(jié)構(gòu)和寄存器組合,以及實現(xiàn)核間中斷的原理,最后以實例介紹兩個核之間利用硬件信號量交互信息的方法和流程。

        1 多核DSP及其結(jié)構(gòu)

        TMS320C6678(C6678)是TI公司多核處理器中的一款8核浮點型DSP,最高工作頻率達(dá)到1.25GHz,單核可以提供40GMAC定點計算或者20GFLOPS浮點計算能力,單個芯片可以提供320GMAC 或者160GFLOPS計算能力。C6678的片內(nèi)結(jié)構(gòu)如圖1所示。

        圖1 TMS320C6678內(nèi)部結(jié)構(gòu)圖

        C6678的每個核具有32KB的程序、32KB的數(shù)據(jù)以及512KB的二級Cache存儲空間,芯片片內(nèi)具有一個4 MB的共享SRAM。C6678具有DDR3控制器接口,可以外接DDR3,直接尋址范圍達(dá)到8GB。C6678的片內(nèi)設(shè)有RapidIO、PCIe、EMIF以及I2C/SPI等接口,這些接口通過片內(nèi)的TeraNet總線和各個處理器交互數(shù)據(jù)。從圖1中可以看出,核訪問共享RAM 的速度最快,它們之間不通過TeraNet,而是有專用的數(shù)據(jù)總線,也不會和其他外設(shè)產(chǎn)生沖突,每個核訪問共享RAM 的速率大概在50Gb/s。

        每個核訪問DDR3的速度僅次于訪問共享RAM,因為DDR3的數(shù)據(jù)需要通過共享RAM 過渡,其訪問速度讀寫有所差別,讀速率可以到10 Gb/s,寫速率可以到20Gb/s。核訪問其他片內(nèi)和片外設(shè)備都要經(jīng)過TeraNet,可能存在總線仲裁,但這些外設(shè)一般不會長時間占據(jù)TeraNet總線。各個核通過TeraNet訪問硬件信號量,也可以通過TeraNet和HyperLink接口實現(xiàn)兩個芯片之間的硬件信號量訪問。

        2 硬件信號量模塊

        硬件信號量模塊的組成如圖2所示,主要由信號量模塊、寄存器組和中斷模塊3部分組成。

        硬件信號量模塊由64個獨立的信號量組成,這64個信號量和硬件資源以及核之間沒有必然聯(lián)系,由軟件根據(jù)每個核處理任務(wù)的多少分配,任務(wù)多的核獲得更多的信號量。對信號量的訪問有3種方式:直接訪問(圖中的SEM_Dir)、間接訪問(SEM_inDir)和查詢方式(SEM_Query)。這3種方式軟件上訪問的方法都一樣,就是對相應(yīng)的寄存器進(jìn)行讀寫操作,但不同訪問方式的硬件響應(yīng)機(jī)制不同。

        直接訪問方式下,如果該信號量空閑,訪問的核將馬上捕獲該信號量;如果該信號量被其他核占用,將返回,整個訪問工作結(jié)束。

        間接訪問方式和直接訪問的唯一差別就是當(dāng)該信號量被占用時,訪問的事件被發(fā)布到隊列中排隊,一旦信號量被其他核釋放,隊列采用先進(jìn)先出的方式給相應(yīng)的核發(fā)出中斷,相應(yīng)的核占用該信號量。

        查詢方式是利用寄存器查詢信號量的狀態(tài)。這3種訪問方式的狀態(tài)如表1所列。

        表1 三種硬件信號量訪問的狀態(tài)

        圖2 硬件信號量模塊

        硬件信號量有兩個中斷,其中一個為正常的捕獲中斷,該中斷由讀寫寄存器啟動,由信號量被釋放觸發(fā),反映到EOI(End Of Interrupt)寄存器,該寄存器發(fā)送中斷到相應(yīng)的CPU,CPU 根據(jù)中斷標(biāo)志寄存器中(高32個信號量反映到FLAGH_0,低32個信號量反映到FLAGL_0)的標(biāo)志位識別是來自哪個信號量的中斷。CPU 完成中斷服務(wù)程序,退出中斷時要通過FLAG_C 寄存器來清除標(biāo)志位,為下一次中斷作準(zhǔn)備;CPU 也可以通過FLAG_S寄存器人為設(shè)置一個中斷標(biāo)志,產(chǎn)生一個中斷。

        硬件信號量的另外一個中斷為錯誤中斷,當(dāng)出現(xiàn)錯誤訪問時會產(chǎn)生該中斷,中斷響應(yīng)及操作方法與捕獲中斷類似。產(chǎn)生錯誤的情況有:去釋放某個空閑信號量;去釋放其他核占用的信號量;捕獲一個自身占用的信號量;多次去捕獲一個被占用的信號量。

        3 軟件設(shè)計

        硬件信號量的軟件設(shè)計主要包括初始化、中斷響應(yīng)和中斷服務(wù)程序。由于硬件信號量是用于核間通信,使得調(diào)試工作需要在多個核之間切換,查閱各自寄存器。

        因為是核間通信,采用單核常用的斷點和單步這些調(diào)試方法將非常困難,需要軟件設(shè)計者非常清晰地了解多個核的程序運行情況。

        下面是核0和核1之間通過硬件信號量10來實現(xiàn)通信的例子。軟件流程如圖3所示。

        圖3 軟件流程

        首先各個核進(jìn)行各自寄存器的初始化,主要包括硬件信號量寄存器和中斷寄存器的初始化。

        需要注意的是,由于每個核都進(jìn)行初始化,而且每個核都可以訪問這些寄存器,所以不能出現(xiàn)配置的紊亂,也不能出現(xiàn)多個核同時對某個寄存器配置的情況,這樣可能會寫入錯誤數(shù)據(jù)(即使在寫入同樣數(shù)據(jù)情況下)。

        為了避免核1首先搶占信號量10,程序中核0先鎖定核1,然后確保自己可以捕獲到信號量10,捕獲后釋放核1,此時核1可以請求硬件信號量10。

        但此時,信號量10被核0占用,核1無法得到請求,核1的請求被放到請求隊列中,核1的請求任務(wù)結(jié)束,可以進(jìn)行其他任務(wù)。一旦核0釋放了信號量10,核1會收到一個硬件中斷,因為中斷優(yōu)先級高于任務(wù),核1將響應(yīng)該中斷,進(jìn)入中斷服務(wù)程序,完成中斷服務(wù)程序后會繼續(xù)執(zhí)行被打斷的任務(wù)。

        硬件信號量的中斷服務(wù)程序一般用于共享RAM 的讀寫,因為共享RAM 只有一組數(shù)據(jù)總線,無法實現(xiàn)多個核同時讀寫。如果多個核同時讀寫該空間,會出現(xiàn)等待現(xiàn)象,使得處理器的使用效率降低。

        如果時序處理不好,會出現(xiàn)總線互鎖現(xiàn)象,使得程序無法進(jìn)行。采用硬件信號量后,可以按照優(yōu)先排隊方法進(jìn)行隊列管理,而且由于一個核不可能多次申請一個硬件信號量,所以在軟件上很容易管理。如果軟件功能較多、設(shè)計復(fù)雜,可以通過增加硬件信號量來區(qū)分,最多可以增加64個硬件信號量,基本能夠滿足當(dāng)前處理器的要求。

        結(jié) 語

        硬件信號量是多核處理器中一種新模塊,它將單核的信號量硬件化,實現(xiàn)快速實時的操作,并和硬件中斷聯(lián)系在一起,實現(xiàn)了多核之間的握手協(xié)議。硬件信號量具有相應(yīng)的隊列排隊機(jī)制,既不會出現(xiàn)中斷丟失問題,也不會出現(xiàn)多次訪問問題。硬件信號量解決了常規(guī)硬件中斷中多次中斷不響應(yīng)會丟失的問題,實現(xiàn)了軟件和硬件的相結(jié)合,在多核軟件編程中,是比較好的一種核間通信機(jī)制。

        [1]李巖,谷萍萍.硬件實時操作系統(tǒng)信號量管理的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2010(11).

        [2]Texas Instruments Inc.TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Data Manual[EB/OL].(2013-04)[2014-07].http://www.ti.com/.

        [3]Texas Instruments Inc.KeyStone Architecture Semaphore2 Hardware Module User Guide[EB/OL].(2012-04)[2014-07].http://www.ti.com/.

        [4]丁有源,汪安民.基于多核任務(wù)并行處理的DSP軟硬件設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(5).

        猜你喜歡
        間通信信號量寄存器
        基于STM32的mbedOS信號量調(diào)度機(jī)制剖析
        細(xì)胞間通信預(yù)測方法研究進(jìn)展
        Lite寄存器模型的設(shè)計與實現(xiàn)
        綜合航電分區(qū)間通信元模型設(shè)計研究
        Nucleus PLUS操作系統(tǒng)信號量機(jī)制的研究與測試
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        μC/OS- -III對信號量的改進(jìn)
        Linux操作系統(tǒng)信號量機(jī)制的實時化改造
        基于核間寄存器的多核虛擬機(jī)系統(tǒng)中虛擬機(jī)間通信研究
        一種適應(yīng)多核處理器核間通信機(jī)制的設(shè)計
        午夜不卡亚洲视频| 国产精品美女一区二区三区 | 欧美日韩中文国产一区发布| 欧洲人妻丰满av无码久久不卡| 久久久久中文字幕精品无码免费 | 国产精品久久成人网站| 五月天中文字幕mv在线| 亚洲av永久无码精品三区在线| a级毛片100部免费观看| 国产精品亚洲一区二区三区在线| 曝光无码有码视频专区| 亚洲乱码国产一区三区| 日韩精品无码一区二区三区视频| 亚洲av成人一区二区三区av| 日本www一道久久久免费榴莲| 无码91 亚洲| 日本二区视频在线观看| 日本成人在线不卡一区二区三区| av网站一区二区三区| 亚洲成人av一区二区| 国产主播性色av福利精品一区| 国产女同va一区二区三区| 在线免费观看一区二区| 国产a级毛片久久久精品毛片| 亚洲第一最快av网站| 亚洲人成无码www久久久| 国产亚洲欧美日韩国产片| 美女福利视频在线观看网址| 日本高级黄色一区二区三区| 亚洲国产成人av二区| 亚洲色图片区| 成人性生交大片免费看96| 亚洲中文字幕无码爆乳av| 丝袜欧美视频首页在线| 人妻中文字幕不卡精品| 青青草在线免费观看在线| 久久99亚洲精品久久久久| 狠狠精品久久久无码中文字幕 | 医院人妻闷声隔着帘子被中出| 中出人妻中文字幕无码| 中文字幕乱码人妻一区二区三区|