亚洲免费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è)計
        欧美人妻少妇精品久久黑人| 水蜜桃在线观看一区二区国产| 国产性虐视频在线观看| 国产综合久久久久久鬼色| 97在线视频人妻无码| 人妻无码一区二区三区免费| 午夜福利电影| 国模少妇无码一区二区三区| 国产夫妻自偷自拍第一页| 不卡的高清av一区二区三区| 亚洲熟女乱综合一区二区| 日本午夜精品理论片A级APP发布| av免费看网站在线观看| 亚洲综合一区二区三区天美传媒| 亚洲精品国产av天美传媒| 欧美精品久久久久久久自慰| 亚洲色四在线视频观看| av中文字幕一区人妻| 亚洲乱码日产精品一二三| 91麻豆国产香蕉久久精品| 国产精品98视频全部国产| 亚洲一区二区三区免费的视频| 精品免费国产一区二区三区四区| 狠狠色丁香久久婷婷综合蜜芽五月| 91精品啪在线看国产网站| 国产韩国一区二区三区| 国产亚洲一区二区在线观看| 成 人 免费 黄 色 视频 | 亚洲第一女人天堂av| 精品人妻伦一二三区久久| 男女一边摸一边做爽爽的免费阅读| 九九久久国产精品大片| 中文字幕久久熟女人妻av免费| 美腿丝袜诱惑一区二区| 亚洲精品国产美女久久久| 欧美伊人网| 国产三级c片在线观看| 丁香婷婷激情综合俺也去| 少妇激情av一区二区| 欧美高h视频| 夜夜高潮夜夜爽免费观看|