午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種基于Navigator的多核嵌入式DSP并行編程模型實現方法

文檔序號:8498593閱讀:824來源:國知局
一種基于Navigator的多核嵌入式DSP并行編程模型實現方法
【技術領域】
[0001]本發(fā)明涉及多核嵌入式系統(tǒng)的并行編程領域,具體是一種基于Navigator的多核嵌入式DSP并行編程模型實現方法。
【背景技術】
[0002]隨著嵌入式技術的飛速發(fā)展,嵌入式處理需求也在快速增長,在集成電路技術飛速發(fā)展的今天,多核技術在嵌入式系統(tǒng)中的應用已經越來越廣泛。在嵌入式系統(tǒng)中使用多處理器共同協(xié)作完成任務,能夠實現系統(tǒng)的多任務調度和實時性等,具有重要的意義。而多核嵌入式系統(tǒng)也已經成為當前主要的計算平臺,無論桌面應用、移動應用、服務器還是專用嵌入式平臺都采用多核結構。
[0003]當前隨著多核技術的主流化,對并行計算體系結構、并行算法、并行編程模型以及并行應用都產生了重要的影響。在多核嵌入式系統(tǒng)中,傳統(tǒng)的基于單線程的程序設計方法顯然無法充分利用多核CPU的計算能力,必須以并行計算的思維方式來設計算法,將多核嵌入式平臺的硬件優(yōu)勢和并行程序設計方法結合起來,獲得更高的程序性能。因此,如何有效的將并行編程模型和嵌入式多核處理器結合在一起,是如今發(fā)展和研宄的重點和熱點問題之一。也就是說,找到一種能夠結合并行編程模型和嵌入式多核處理器的實現方法是十分必要的。
[0004]申請?zhí)枮镃N201010124991.6的發(fā)明專利公開了一種面向眾核環(huán)境的分治映射/歸約并行編程模型。該發(fā)明通過分治映射/歸約并行編程模型、主存復用以及流水線執(zhí)行技術等,完成對海量數據的分塊處理,優(yōu)化眾核環(huán)境的資源使用。但是該發(fā)明主要是針對多處理器的應用,并沒有詳細說明在單處理上如何對多核進行調度,同時沒有說明多處理間所使用的通信機制。
[0005]申請?zhí)枮镃N201010166248.7的發(fā)明專利公開了以一種針對嵌入式多核系統(tǒng)的視頻編碼流水化并行方法。該發(fā)明根據節(jié)點運算量和節(jié)點間的依賴關系,選擇處理器負載均衡、核間通信量少的流水并行劃分方案,根據該方案,對任務節(jié)點進行對象化封裝,映射到相應的處理器核上,實現流水化并行執(zhí)行。但是該發(fā)明只是針對基于多核系統(tǒng)的流水線并行,并沒有采用并行編程模型,僅僅使用了多核作為任務節(jié)點,并沒有充分利用嵌入式多核處理器中的多種硬件資源。
[0006]因此,本發(fā)明提出了一種充分利用多核嵌入式DSP中硬件資源實現并行編程模型的方法。

【發(fā)明內容】

[0007]本發(fā)明的目的在于提供一種基于Navigator的多核嵌入式DSP并行編程模型實現方法,通過使用嵌入式處理器上的軟件組件Navigator,充分利用其各種硬件資源,實現并行編程模型。
[0008]為實現上述目的,本發(fā)明提供如下技術方案:
基于Navigator的多核嵌入式DSP并行方法,包括以下內容:
DTI推出的KeyStone架構中包含軟件組件Multicore Navigator,通過該組件實現設備構件間的數據管理以及同步通信。
[0009]Multicore Navigator (簡稱Navigator)是一種硬件機制,幫助實現數據的移動和多核間的協(xié)同工作。主要提供核間、網絡間以及外設間的通信,包括數據和消息交換,發(fā)送消息后,不再處理與該消息相關的操作,也就是說在發(fā)送消息后,發(fā)送方不管消息是否已經被接收。簡單的說,就是只需要載入數據,其余操作都由系統(tǒng)負責完成,無需CPU的干預。Navigator 主要由 Queue Manager Subsystem (QMSS)和多個 Packet DMA (PKTDMA)組成。
[0010]Queue Manager是一個負責對隊列進行加速管理的一個硬件模塊。其中包括8192個隊列、20個內存區(qū)域和2個Linking RAM,不同的隊列號用途不一樣。通過向模塊中一個特定的被映射的位置寫入32位的描述符(Descriptor)地址,可以將一個包(一個描述符和負載的邏輯組合)加入隊列中。相反地,從此隊列的相同位置讀值,則可以完成包出隊。
[0011]描述符(Descriptor)是在核間移動的帶有信息和數據的消息。描述符有兩種類型,宿主(Host)描述符和整體(Monolithic)描述符。宿主描述符更加靈活,描述符的長度即為所有負載的和,帶有一個指針指向負載,可以多個宿主描述符鏈接使用。而整體描述符沒有宿主描述符靈活,本身不能鏈接其他描述符,所有的負載緩沖大小相同,這樣在具體的使用過程中易于造成內存空間的浪費。
[0012]所有的描述符存儲在內存區(qū)域中,Navigator提供20個內存區(qū)域供描述符存儲,單個描述符的大小最大支持512KB。每一個內存區(qū)域的大小相同,而且每個區(qū)域中的描述符大小也相同,但是兩個內存區(qū)域中的描述符大小可以不同。內存區(qū)域按照16字節(jié)對齊,且其中描述符的大小也必須是16字節(jié)的倍數。而描述符在隊列中的索引由Linking RAM實現。入隊時,只需要將描述符的地址壓入隊列中,Linking RAM會將地址轉換為索引。而出隊時,也是通過已知的索引值重新獲取描述符的地址。
[0013]PKTDMA即是一種DMA,它的數據目的地是由一個目的隊列和空隊列的隊列索引決定的,而不是一個絕對的內存地址。在接收模式下,PKTDMA取出一個空描述符,遍歷描述符找到緩存,PKTDMA將負載數據放入緩存中,然后將描述符放入目的隊列中。在傳輸模式下,PKTDMA從隊列中彈出描述符,遍歷描述符,從緩存中讀取負載數據,然后將負載數據傳送到發(fā)送端口。
[0014]PKTDMA主要負責數據的移動。PKTDMA包括多條Rx DMA通道,多條Tx DMA通道和多條Rx flow通道。
[0015]128位的Tx輸出和128位的Rx輸入形成兩條對稱流,且相互獨立。因為傳送是基于包(一個描述符和負載的邏輯組合)的,所以無需關心負載的格式。Tx通過查看描述符中的信息判斷如何處理這個包,而Rx使用flow。flow就是一個指令集,告訴Rx DMA如何處理接收到的包。Rx channel和Rx flow之間沒有關系,有對應關系的是Rx packet和Rxflow。Rx flow主要定義接收端的行為。
[0016]通過一個DSP的任務或者其他硬件操作,將一個描述符放進Tx隊列中,完成描述符的入隊操作后,觸發(fā)Tx DMA進行包的傳輸;而對應于Rx DMA,由數據流觸發(fā)操作,接收數據包后如何處理需要根據配置的Rx flow。其中,需要注意的是,放入Tx隊列的描述符,是從Tx free隊列中取出的空描述符,在該空描述符中加入數據后,放入Tx隊列中,最后當發(fā)送完畢后,在Tx完成隊列中會有相應的描述符,需要將這個描述符進行回收;此外,針對Rx隊列也是相同的操作。
[0017]2)將KeyStone架構下多核嵌入式處理器的DSP核劃分為主核和從核,所述的主核完成整個應用的初始化以及必須執(zhí)行且只能執(zhí)行一次的操作;所述的從核執(zhí)行必要的初始化操作。
[0018]多核嵌入式處理器一般多采用KeyStone架構的同構或異構處理器,且處理器上DSP核的數量至少為8個,其中,將核O作為主核,除核O外的其他核作為從核。
[0019]作為主核的核O完成整個應用的初始化以及必須執(zhí)行且只能執(zhí)行一次的操作。該初始化流程中主要包括對Navigator的初始化操作,以及對并行編程模型中環(huán)境變量的初始化操作。首先需要對QMSS和PKTDMA進行初始化和啟動;其次,配置QMSS中使用的內存區(qū)域,包括內存區(qū)域的基地址、大小以及描述符數量等;然后,對描述符進行初始化,設置描述符的類型、數量、所屬內存區(qū)域以及存儲該描述符的隊列;最后打開QMSS中的發(fā)送和接收隊列。作為從核,也需要完成部分初始化操作,主要是QMSS的啟動操作以及隊列的打開。在初始化流程中,QMSS的初始化、PK
當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1