專利名稱:硬件加速顯示的并行處理結(jié)構(gòu)及并行處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及顯示數(shù)據(jù)的處理,尤其涉及在傳輸帶寬窄、需要顯示數(shù)據(jù)信息量大、顯示平臺(tái)處理能力有限等條件下通過(guò)一定的地址映射方法將顯示數(shù)據(jù)從屏幕坐標(biāo)映射到顯存物理坐標(biāo)的硬件加速顯示的并行處理裝置。
背景技術(shù):
嵌入式顯示平臺(tái)的設(shè)計(jì)一直是醫(yī)用監(jiān)護(hù)儀、消費(fèi)類電子產(chǎn)品的核心功能部件,也是產(chǎn)品選型設(shè)計(jì)的主要難點(diǎn)之一,其主要功能是通過(guò)與按鍵等信息輸入設(shè)備組合形成一個(gè)人機(jī)交互式系統(tǒng),通過(guò)這個(gè)交互式的信息完成系統(tǒng)實(shí)時(shí)的顯示。特別對(duì)于監(jiān)護(hù)儀來(lái)說(shuō)需要顯示的數(shù)據(jù)量是及其豐富的,這主要包括人體的ECG(心電)、SPO2(血氧飽和度)、NIBP(無(wú)創(chuàng)血壓)等生理信號(hào)以及經(jīng)過(guò)計(jì)算處理后的生理參數(shù)數(shù)值和波形等信息,而鑒于信息數(shù)據(jù)較多,因而監(jiān)護(hù)儀支持的分辨率都很高(一般在640×480以上),對(duì)顯存的操作是比較頻繁的,而多屏操作顯示技術(shù)對(duì)整個(gè)系統(tǒng)的要求將更高,如何解決顯示信息數(shù)據(jù)的傳輸瓶頸問(wèn)題一直是這一類嵌入式顯示平臺(tái)需要解決的技術(shù)要點(diǎn)。
通常解決這種問(wèn)題的方法主要有以下幾種一、通過(guò)采用高性能處理器,提高系統(tǒng)主頻及系統(tǒng)總線頻率,這種單純的靠提高系統(tǒng)的處理器頻率的方法實(shí)際上帶來(lái)了新的問(wèn)題,系統(tǒng)設(shè)計(jì)、生產(chǎn)的成本將會(huì)呈幾何級(jí)數(shù)增長(zhǎng)。這是因?yàn)樵陲@示信息增加的情況下將不得不對(duì)處理器進(jìn)行升級(jí)換代,處理器性能的提高并不簡(jiǎn)單的等同處理器主頻的提升,隨著系統(tǒng)主頻的提高,相應(yīng)的整個(gè)板卡的工作頻率會(huì)隨之升高,而總線頻率的提高將意味著一些我們?cè)诘皖l端不需要考慮的傳輸線問(wèn)題(例如阻抗匹配,串?dāng)_等問(wèn)題)將不得不成為設(shè)計(jì)者需要重點(diǎn)考慮的問(wèn)題,更重要的是對(duì)于醫(yī)用設(shè)備和消費(fèi)類電子設(shè)備的EMI(電磁兼容)問(wèn)題成為系統(tǒng)設(shè)計(jì)最為棘手的問(wèn)題,導(dǎo)致處理器在系統(tǒng)設(shè)計(jì)和生產(chǎn)階段的成本很高。
二、采用高性能的數(shù)據(jù)總線結(jié)構(gòu)(如PCI-Express等),隨著顯示器分辨率的不斷提高,系統(tǒng)對(duì)總線的數(shù)據(jù)傳輸性能的需求也不斷提高,但對(duì)于醫(yī)用監(jiān)護(hù)儀以及低端嵌入式處理設(shè)備而言采用這種高性能總線將會(huì)由于系統(tǒng)成本的限制而成為一種奢求,所以采用高性能總線(如PCI-Express)并不能較好的處理系統(tǒng)成本與顯示信息量之間的矛盾。
三、選用通用顯示驅(qū)動(dòng)芯片。這種通用顯示驅(qū)動(dòng)芯片可以替代一部分處理器需要完成的功能,完成相關(guān)的讀寫(xiě)顯存的工作。這種芯片的產(chǎn)量通常并不像通用處理器產(chǎn)量較大,因而單片成本較高,而且這種顯示芯片通常不是為系統(tǒng)量身訂作的,因而系統(tǒng)效率較低,實(shí)際上并不能很好的解決顯示瓶頸問(wèn)題。
四、通過(guò)FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)或ASIC實(shí)現(xiàn)顯示命令的寫(xiě)顯存操作,這種方法代替了處理器的部分工作,提高了硬件顯示的工作效率,同時(shí)由于可編程器件的靈活性和可在線更改特性使其更易于實(shí)現(xiàn)和升級(jí),對(duì)市場(chǎng)需求的反應(yīng)更靈敏,實(shí)際上大大降低了設(shè)計(jì)的風(fēng)險(xiǎn)性。這種技術(shù)的實(shí)質(zhì)是顯存映射技術(shù),即將固定圖形的坐標(biāo)映射至顯存的物理地址上。但現(xiàn)有的FPGA或ASIC實(shí)現(xiàn)硬件加速的處理是基于復(fù)雜的狀態(tài)機(jī)實(shí)現(xiàn)方法。這種方法的缺陷是狀態(tài)機(jī)數(shù)目的增加將嚴(yán)重影響系統(tǒng)的工作速度,同時(shí)由于狀態(tài)機(jī)的觸發(fā)條件較多,對(duì)于開(kāi)發(fā)維護(hù)的成本將大大增加。硬件加速的FPGA(或ASIC)處理方法如圖1所示,命令預(yù)處理模塊完成輸入顯示命令的分類,顯示硬件加速模塊(即硬件加速邏輯或硬件加速原語(yǔ))將顯示數(shù)據(jù)通過(guò)一定的地址映射方法完成從屏幕坐標(biāo)至顯存物理坐標(biāo)的快速轉(zhuǎn)換工作,而寫(xiě)顯存及后端預(yù)處理模塊則通過(guò)一定的接口時(shí)序完成視頻顯示操作。但從視頻顯示的原理上看對(duì)硬件加速的過(guò)程進(jìn)行串行處理是有一定道理的,即并行處理的模塊間由于模塊間處理速度上或處理時(shí)間上的差異將使得寫(xiě)入顯存的數(shù)據(jù)存在覆蓋問(wèn)題,但串行處理硬件加速命令的方法將使得預(yù)處理的狀態(tài)機(jī)異常龐大,眾所周知,狀態(tài)機(jī)的速度與其采用的編碼和數(shù)目有關(guān),但一般情況下當(dāng)狀態(tài)機(jī)的數(shù)目在20個(gè)以上時(shí)靠編碼來(lái)提升系統(tǒng)的速度已經(jīng)是強(qiáng)弩之末了,提高速度的唯一方法是分割狀態(tài)機(jī),即采用并行命令加速結(jié)構(gòu)。但顯示參數(shù)或顯示窗口的不同,硬件加速邏輯也不同,硬件加速模塊也不同,隨著顯示參數(shù)或顯示窗口的增加,也會(huì)使得并行硬件加速模塊的規(guī)模不斷擴(kuò)大,如何開(kāi)發(fā)一種便于擴(kuò)展的并行命令處理結(jié)構(gòu)成為需要解決的問(wèn)題。
發(fā)明內(nèi)容本發(fā)明就是為了解決上述問(wèn)題,提供一種硬件加速顯示的并行處理結(jié)構(gòu),解決基于FPGA(或ASIC設(shè)計(jì))的硬件顯示處理平臺(tái)的信息傳輸瓶頸和硬件加速速度之間的矛盾問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提出了一種硬件加速顯示的并行處理結(jié)構(gòu),包括先入先出存儲(chǔ)器和互斥處理機(jī),所述先入先出存儲(chǔ)器為“Show Ahead”先入先出存儲(chǔ)器,所述先入先出存儲(chǔ)器與硬件加速模塊通過(guò)總線連接,所述互斥處理機(jī)的第一應(yīng)答信號(hào)輸出端與先入先出存儲(chǔ)器相連,所述互斥處理機(jī)的控制信號(hào)輸出端分別與各個(gè)硬件加速模塊相連,所述各個(gè)硬件加速模塊的命令輸出端用于耦合到寫(xiě)顯存模塊;所述先入先出存儲(chǔ)器接收顯示命令、將首個(gè)顯示命令預(yù)先輸出到總線上,所述硬件加速模塊從總線上讀取顯示命令并在判斷該顯示命令是本硬件加速模塊處理的命令、并在響應(yīng)到互斥處理機(jī)輸出的、用于允許顯示命令執(zhí)行的控制信號(hào)后,根據(jù)該顯示命令完成從屏幕坐標(biāo)到顯存的物理坐標(biāo)的轉(zhuǎn)換,之后互斥處理機(jī)輸出的第一應(yīng)答信號(hào)至先入先出存儲(chǔ)器,先入先出存儲(chǔ)器在下一時(shí)鐘周期內(nèi)將下一個(gè)顯示命令輸出到總線上。
所述互斥處理機(jī)的優(yōu)選方案為包括第一或邏輯組和或邏輯門(mén),所述第一或邏輯組的輸入端分別與各個(gè)硬件加速模塊的第二應(yīng)答信號(hào)輸出端連接,響應(yīng)各個(gè)硬件加速模塊在完成顯示命令后輸出的第二應(yīng)答信號(hào),輸出第一應(yīng)答信號(hào),用于控制先入先出存儲(chǔ)器將下一個(gè)顯示命令輸出到總線上;所述或邏輯門(mén)的輸入端分別響應(yīng)先入先出存儲(chǔ)器的空信號(hào)和第一應(yīng)答信號(hào),輸出允許顯示命令執(zhí)行的控制信號(hào)。
本發(fā)明的進(jìn)一步改進(jìn)是還包括第二或邏輯組,所述第二或邏輯組的輸入端分別連接各個(gè)硬件加速模塊的命令輸出端,其輸出端用于耦合到寫(xiě)顯存模塊。
所述第一應(yīng)答信號(hào)和第二應(yīng)答信號(hào)優(yōu)選為單時(shí)鐘周期的脈沖信號(hào)。
為實(shí)現(xiàn)上述目的,本發(fā)明還提出了一種硬件加速顯示的并行處理方法,包括以下步驟A1、“Show Ahead”先入先出存儲(chǔ)器接收顯示命令并將首個(gè)顯示命令預(yù)先輸出到總線上;B1、硬件加速模塊從總線上讀取顯示命令,判斷該顯示命令是否是本硬件加速模塊處理的命令,如果是則執(zhí)行步驟C1;C1、硬件加速模塊在響應(yīng)到互斥處理機(jī)輸出的用于允許顯示命令執(zhí)行的控制信號(hào)后根據(jù)該顯示命令完成從屏幕坐標(biāo)到顯存的物理坐標(biāo)的轉(zhuǎn)換;D1、在步驟C1后,互斥處理機(jī)輸出第一應(yīng)答信號(hào),控制“Show Ahead”先入先出存儲(chǔ)器將下一個(gè)顯示命令輸出到總線上;E1、循環(huán)步驟B1至D1。
所述先入先出存儲(chǔ)器優(yōu)選為“show ahead”先入先出存儲(chǔ)器,所述步驟B1中根據(jù)顯示命令的命令碼來(lái)識(shí)別是否是本硬件加速模塊處理的命令。
其中,在步驟C1中,該硬件加速模塊在完成該顯示命令從屏幕坐標(biāo)到顯存的物理坐標(biāo)的轉(zhuǎn)換后還輸出第二應(yīng)答信號(hào)至互斥處理機(jī)。
所述第一應(yīng)答信號(hào)優(yōu)選為所有第二應(yīng)答信號(hào)進(jìn)行或邏輯運(yùn)算的結(jié)果;所述互斥處理機(jī)輸出的控制信號(hào)優(yōu)選為先入先出存儲(chǔ)器輸出的空信號(hào)和第一應(yīng)答信號(hào)相或后的結(jié)果。
本發(fā)明的有益效果是先入先出存儲(chǔ)器接收到顯示命令后先將一個(gè)顯示命令輸出到總線上,而下一個(gè)顯示命令數(shù)據(jù)是否輸出則將由互斥處理機(jī)根據(jù)各個(gè)硬件加速模塊的情況來(lái)控制。這樣,總線上的顯示命令數(shù)據(jù)對(duì)于各個(gè)硬件加速模塊來(lái)說(shuō)是透明的,各個(gè)硬件加速模塊不用輸出任何信號(hào)即可以從總線上取到數(shù)據(jù),之后各個(gè)硬件加速模塊將根據(jù)收到的命令碼識(shí)別是否為本模塊處理的命令,如果發(fā)現(xiàn)是自己模塊處理的命令,在收到互斥處理機(jī)發(fā)出的允許命令執(zhí)行的信號(hào)后,硬件加速邏輯將快速完成命令,即通過(guò)一定的地址映射方法完成將顯示數(shù)據(jù)從屏幕坐標(biāo)至顯存物理坐標(biāo)的快速轉(zhuǎn)換,并進(jìn)入下一個(gè)總線執(zhí)行周期,同時(shí)反饋應(yīng)答信號(hào)至互斥處理機(jī),由互斥處理機(jī)控制釋放命令總線,使下一個(gè)待執(zhí)行的命令進(jìn)入總線,開(kāi)始下一輪的處理。從而通過(guò)互斥處理實(shí)現(xiàn)硬件加速模塊的并行處理,同一時(shí)間只有一條顯示命令被執(zhí)行,避免了并行處理的硬件加速模塊間由于模塊間處理速度上或處理時(shí)間上的差異將使得寫(xiě)入顯存的數(shù)據(jù)存在覆蓋問(wèn)題。并且不論硬件加速模塊的數(shù)量有多少、規(guī)模有多大、類型是什么,本發(fā)明的處理結(jié)構(gòu)中對(duì)硬件加速模塊進(jìn)行互斥處理部分的狀態(tài)機(jī)不會(huì)增加和改變。所以本發(fā)明不但解決了硬件顯示處理平臺(tái)的信息傳輸瓶頸和硬件加速速度之間的矛盾問(wèn)題,而且便于改變硬件加速模塊的數(shù)量和種類,利于擴(kuò)大硬件邏輯規(guī)模,以實(shí)現(xiàn)更為復(fù)雜的硬件邏輯。所以本發(fā)明這種并行硬件命令處理結(jié)構(gòu)對(duì)于開(kāi)發(fā)者來(lái)說(shuō)也可以方便的變更各自的硬件加速模塊而互不影響相互之間的時(shí)序和邏輯關(guān)系,易于開(kāi)發(fā)、維護(hù)和更新。
本發(fā)明的特征及優(yōu)點(diǎn)將通過(guò)實(shí)施例結(jié)合附圖進(jìn)行詳細(xì)說(shuō)明。
圖1為通過(guò)FPGA實(shí)現(xiàn)的硬件加速處理的電路方框圖;圖2為現(xiàn)有技術(shù)中硬件加速并行處理的電路方框圖;圖3為本發(fā)明一種實(shí)施例的電路方框圖;圖4為本發(fā)明一種實(shí)施例中的互斥處理機(jī)的電路連接圖5為沒(méi)有互斥處理機(jī)時(shí)的時(shí)序圖;圖6為本發(fā)明另一種實(shí)施例的電路方框圖。
具體實(shí)施方式硬件加速模塊通常通過(guò)硬件加速原語(yǔ)實(shí)現(xiàn),下面從硬件加速模塊的數(shù)學(xué)模型來(lái)分析本發(fā)明的原理硬件加速模塊(即硬件加速原語(yǔ),是一種通過(guò)一定的地址映射方法完成從屏幕坐標(biāo)至顯存物理坐標(biāo)的快速轉(zhuǎn)換的硬件顯存映射技術(shù))的串行處理可以用一維線性空間上的函數(shù)來(lái)描述,各個(gè)命令可以用C(xi,t)來(lái)表達(dá),其中i為各個(gè)命令的序號(hào),如在顯示命令的處理結(jié)構(gòu)上總共存在6個(gè)顯示命令,則它們可以表述為C(x1,t),C(x2,t),...,C(x5,t),C(x6,t)等。可見(jiàn)在時(shí)間t相同時(shí)各個(gè)命令處于軸的不同位置,因而顯示命令之間并不會(huì)產(chǎn)生沖突現(xiàn)象,這也就從實(shí)際的數(shù)學(xué)層面和物理層面都避免了顯示由于時(shí)域處理時(shí)間相同時(shí)出現(xiàn)命令沖突而產(chǎn)生不可預(yù)期的顯示覆蓋問(wèn)題。
而對(duì)于硬件加速模塊的并行處理來(lái)講我們就必須尋找更合適的數(shù)學(xué)模型。并行處理的顯示命令可以采用C(Xi,t)來(lái)表達(dá),這里Xi是一個(gè)n維空間的向量,其中n代表命令個(gè)數(shù),例如個(gè)數(shù)為6的并行處理結(jié)構(gòu),則各個(gè)向量表示為C(X1,t),C(X2,t),..,C(X5,t),C(X6,t),這里Xi為6維空間的矢量。設(shè)n維向量空間的原點(diǎn)為O,則兩條硬件加速原語(yǔ)之間出現(xiàn)沖突現(xiàn)象(上述的覆蓋問(wèn)題)可以理解為任意兩個(gè)n維空間的向量之間除原點(diǎn)外存在另外一個(gè)交點(diǎn),這顯然比在一維空間上那種自然的、相對(duì)獨(dú)立的互斥變量要復(fù)雜得多。然而,通過(guò)上述定義我們可以發(fā)現(xiàn)實(shí)際上不可能存在任意兩個(gè)n維向量均正交(即向量間相互互斥或各個(gè)向量之間除原點(diǎn)外存在另外一個(gè)交點(diǎn))的情況,解決上述問(wèn)題的方法只能是,允許相互正交的變量進(jìn)入硬件加速處理單元,而非正交的變量只有一種進(jìn)入硬件加速處理單元。那么如何確立這種正交算法呢?這種正交算法(或命令互斥機(jī)制可以從兩個(gè)層面上確定,即在硬件加速模塊的前端或后端加入)。如圖2所示,我們可以在硬件加速模塊的前端加入這種命令互斥機(jī)制,然而不幸的是由數(shù)學(xué)原理得出n維線性空間的正交算法的復(fù)雜度至少為O(n2),隨著并行處理的硬件加速模塊的增加,用于硬件命令互斥機(jī)制的邏輯將逐步超過(guò)硬件加速的邏輯數(shù)量,這種算法帶來(lái)的是硬件算法的龐大,使得FPGA的現(xiàn)有資源不堪重負(fù),更可怕的是當(dāng)算法復(fù)雜度增加至一定程度時(shí),整個(gè)系統(tǒng)的瓶頸將出現(xiàn)在命令互斥制上,原有的硬件加速算法帶來(lái)的速度上的增益將不得不為此付出一定的衰減的代價(jià),即這種方法并不能很好的完成硬件加速的任務(wù);另外一種命令機(jī)制是一種自然而然的想法,相交即意味著兩個(gè)點(diǎn)的坐標(biāo)完全一致,而確定這種兩點(diǎn)相交可以在硬件加速模塊的后端通過(guò)加入坐標(biāo)判斷機(jī)制即可,而對(duì)于n個(gè)n維坐標(biāo)向量的來(lái)說(shuō)處理的算法復(fù)雜度同樣為O(n2),這種方法雖然在硬件加速模塊增加時(shí)算法的改變不大,但硬件開(kāi)銷依然十分龐大,對(duì)于FPGA的資源利用率是不合時(shí)宜的。
這里我們針對(duì)硬件加速原語(yǔ)的數(shù)學(xué)表示作如下改變,任意一個(gè)命令可以表示為C(Xi,a,t),這里變量a為命令互斥機(jī)制引入的新變量,變量在同一時(shí)間內(nèi)只針對(duì)一條命令有效,這樣通過(guò)簡(jiǎn)單的引入互斥變量a可以有效的避免龐大的命令互斥機(jī)制的硬件開(kāi)銷和處理,這種方法可以用于命令處理比較簡(jiǎn)單,待執(zhí)行的硬件加速原語(yǔ)處理命令之間均為互斥的情況;進(jìn)而我們還可以把這種方法引申為任意一個(gè)命令可以表示為C(Xi,A,t),其中A為m維向量,這里引入這個(gè)數(shù)學(xué)模型對(duì)于我們提出硬件加速并行處理結(jié)構(gòu)是具有重要意義的,我們可以這樣理解A向量,即A向量引入了對(duì)命令的硬件命令的m類分類,分類的標(biāo)準(zhǔn)是在每一類命令中相互之間是可以并行執(zhí)行而不存在互斥機(jī)制的問(wèn)題。這樣通過(guò)向量A我們解決了煩雜的命令互斥處理機(jī)制問(wèn)題,下面將針對(duì)以上提出的方法在硬件邏輯中進(jìn)行詳述。
具體實(shí)施一、如圖3所示,首先顯示命令的“Show Ahead”先入先出存儲(chǔ)器1(即“Show Ahead”FIFO,也可以是“Show Ahead”先入先出堆棧),中間則為進(jìn)行具體顯示命令處理的硬件加速模塊2(也稱為硬件加速原語(yǔ))和互斥處理機(jī)3,“Show Ahead”先入先出存儲(chǔ)器1通過(guò)總線4與硬件加速模塊2相連,互斥處理機(jī)3用來(lái)控制硬件加速模塊2的并行處理,最后硬件加速模塊2將命令輸出給寫(xiě)顯存模塊(圖中未示出)。這種“ShowAhead”FIFO數(shù)據(jù)的輸出控制并不是由FIFO輸出端的命令接收控制器來(lái)完成,數(shù)據(jù)將提前輸出到系統(tǒng)總線上,而下一個(gè)數(shù)據(jù)是否輸出則將由各個(gè)硬件加速模塊2控制?!皊how ahead”FIFO接收到顯示命令后,將首個(gè)顯示命令預(yù)先輸出到總線上,這樣顯示命令對(duì)于各個(gè)硬件加速模塊2來(lái)說(shuō)是透明的,這樣各個(gè)硬件加速模塊2不用輸出任何信號(hào)即可以從總線上取到數(shù)據(jù),各個(gè)硬件加速模塊2在收到互斥處理機(jī)發(fā)出的允許顯示命令執(zhí)行的控制信號(hào)后,從總線上讀取顯示命令,之后各個(gè)硬件加速模塊將根據(jù)收到的命令碼識(shí)別是否為本模塊處理的命令,如果發(fā)現(xiàn)是自己模塊處理的命令,即快速完成命令,即根據(jù)該顯示命令完成從屏幕坐標(biāo)到顯存的物理坐標(biāo)的轉(zhuǎn)換,并進(jìn)入下一個(gè)總線執(zhí)行周期,互斥處理機(jī)輸出第一應(yīng)答信號(hào)至先入先出存儲(chǔ)器1,控制先入先出存儲(chǔ)器1釋放下一個(gè)待執(zhí)行的命令進(jìn)入總線,開(kāi)始下一輪的命令執(zhí)行。
互斥處理機(jī)3包括第一或邏輯組31和或邏輯門(mén)32,如圖4所示。硬件加速模塊的第二應(yīng)答信號(hào)輸出端與互斥處理機(jī)的第一或邏輯組31相連,第一或邏輯組31的輸出端與FIFO相連?;蜻壿嬮T(mén)32的輸入端連接FIFO的空信號(hào)端和第一或邏輯組31的輸出端。硬件加速模塊在完成顯示命令后,輸出第二應(yīng)答信號(hào)(即ACKn),設(shè)第一個(gè)硬件加速模塊(例如圖3中的硬件加速原語(yǔ)A)輸出為ACK1,第二個(gè)硬件加速模塊(例如圖3中的硬件加速原語(yǔ)B)輸出為ACK2,依次類推,且每個(gè)第二應(yīng)答信號(hào)都為單脈沖信號(hào),而各個(gè)硬件加速模塊是通過(guò)判斷是否為本模塊處理的命令后,決定是否執(zhí)行和輸出第二應(yīng)答信號(hào)信號(hào)的,因而只要有一個(gè)硬件加速模塊的第二應(yīng)答信號(hào)信號(hào)有效,則它們經(jīng)過(guò)第一或邏輯組31或運(yùn)算以后輸出第一應(yīng)答信號(hào)ACK將輸出有效,該第一應(yīng)答信號(hào)ACK輸出給前端的FIFO,則下一條命令會(huì)出現(xiàn)在命令總線上,第一應(yīng)答信號(hào)ACK優(yōu)選為單脈沖信號(hào)。FIFO的空信號(hào)Empty和第一應(yīng)答信號(hào)ACK一起輸出到或邏輯門(mén)32,經(jīng)過(guò)或運(yùn)算后分別輸出給各個(gè)硬件加速模塊作為判斷FIFO是否非空的標(biāo)志,設(shè)輸出到第一個(gè)硬件加速模塊的為empty1,輸出到第二個(gè)硬件加速模塊的為empty2。由于各個(gè)硬件加速模塊總是在命令處理即將完成時(shí)輸出第二應(yīng)答信號(hào)信號(hào),而FIFO收到第一應(yīng)答信號(hào)ACK后將發(fā)生狀態(tài)轉(zhuǎn)換(即可能由非空狀態(tài)變換到空狀態(tài)),這種情況下前一個(gè)周期對(duì)FIFO空信號(hào)的判斷將是不可靠的,而如果將第一應(yīng)答信號(hào)ACK與空信號(hào)Empty相或后輸出給各個(gè)硬件加速模塊,作為它們的Empty指示信號(hào),這將避免在狀態(tài)轉(zhuǎn)換的前后兩個(gè)周期進(jìn)入誤判狀態(tài)。如圖5所示,State1,State2表示第一、二個(gè)硬件加速模塊的內(nèi)部狀態(tài)機(jī),Ack1、Ack2分別為第一、二個(gè)硬件加速模塊的輸出信號(hào)。硬件加速模塊在EXE狀態(tài)下會(huì)進(jìn)入執(zhí)行操作,在ACK狀態(tài)下會(huì)給出Ack信號(hào)以使FIFO輸出有效數(shù)據(jù)。由于不同硬件加速模塊之間是相互獨(dú)立的,而進(jìn)入執(zhí)行操作狀態(tài),執(zhí)行的狀態(tài)數(shù)取決于輸入數(shù)據(jù),如圖給出了一個(gè)示例信號(hào)狀態(tài)。在State1處于ACK狀態(tài)時(shí)State2處于IDLE狀態(tài),由于Ack1已送出,因而FIFO實(shí)際已空,這時(shí)在IDLE態(tài)的State2將會(huì)作出誤判,使第二個(gè)硬件加速模塊可能與第一個(gè)硬件加速模塊并行執(zhí)行,并因FIFO實(shí)際已空而導(dǎo)致第二個(gè)硬件加速模塊執(zhí)行錯(cuò)誤命令。實(shí)際上造成這種現(xiàn)象的原因正是采用了Show Ahead形式的FIFO,因而本實(shí)施例提出了一種輔助的互斥處理機(jī),其結(jié)構(gòu)如圖4所示,其簡(jiǎn)單的原理即是將Ack信號(hào)與Emtpy信號(hào)相或作為各個(gè)硬件加速模塊判斷FIFO是否為空的標(biāo)志,這就從根本上保證了各個(gè)命令的互斥處理。
互斥處理機(jī)是這種并行硬件加速模塊處理結(jié)構(gòu)的關(guān)鍵所在,它采用簡(jiǎn)單的邏輯處理方法與各個(gè)硬件加速模塊相配合,解決了命令互斥處理方法需要解決的根本問(wèn)題,避免了并行處理結(jié)構(gòu)中龐大冗余的互斥機(jī)制而引起的系統(tǒng)的處理速度難以提升的難題。此外,簡(jiǎn)單的互斥處理結(jié)構(gòu)對(duì)于開(kāi)發(fā)維護(hù)也十分方便,當(dāng)模塊較多,或邏輯時(shí)龐大可以在邏輯插入一些流水操作,提供系統(tǒng)的工作頻率,而對(duì)于輸出給各個(gè)硬件加速模塊的Empty信號(hào)可能在各個(gè)模塊內(nèi)部形成高扇出信號(hào),對(duì)于這種情況可以在各個(gè)硬件加速模塊內(nèi)部對(duì)這些高扇出的信號(hào)進(jìn)行邏輯復(fù)制而不影響其他模塊。
具體實(shí)施二、由于各個(gè)硬件加速模塊之間是互斥執(zhí)行的,因而有必要對(duì)各個(gè)硬件加速模塊輸出進(jìn)行一下處理,以節(jié)省系統(tǒng)資源的消耗(主要是系統(tǒng)總線的消耗)。并行執(zhí)行后的數(shù)據(jù)總線如不進(jìn)行必要的去冗余處理,系統(tǒng)的總線將異常龐大,這將給后端的處理模塊帶來(lái)不必要的負(fù)擔(dān)。但這里需要注意的是FPGA(或ASIC)內(nèi)部總線實(shí)際上是不會(huì)出現(xiàn)三態(tài)信號(hào)的,這樣以一條總線來(lái)完成各個(gè)硬件加速模塊間的互連似乎并不現(xiàn)實(shí)。所以在具體實(shí)施一的基礎(chǔ)上增加第二或邏輯組5,如圖6所示,第二或邏輯組5的輸入端分別連接各個(gè)硬件加速模塊2的命令輸出端,其輸出端用于耦合到寫(xiě)顯存模塊(圖中未示出)。將無(wú)效命令(即硬件加速模塊沒(méi)有進(jìn)行命令處理時(shí)輸出的命令)對(duì)總線的輸出設(shè)置成全‘0’向量,這樣在無(wú)效狀態(tài)下各個(gè)硬件加速模塊可以將各自的總線輸出置成‘0’向量,從而整個(gè)并行處理結(jié)構(gòu)的輸出可以用一個(gè)或邏輯組來(lái)完成各個(gè)模塊間輸出的互連。由于‘0’向量對(duì)或邏輯的輸出并不會(huì)產(chǎn)生影響,只有有效的數(shù)據(jù)‘1’輸出時(shí)才會(huì)形成輸出數(shù)據(jù),因而這種互連策略在FPGA內(nèi)部是低成本、高效的。
綜上所述,本發(fā)明通過(guò)對(duì)并行處理結(jié)構(gòu)的簡(jiǎn)化處理,高效地解決了大容量顯示數(shù)據(jù)顯示的傳輸瓶頸問(wèn)題,同時(shí)在硬件成本和可維護(hù)、可開(kāi)發(fā)特性上具有其他方法無(wú)法比擬的優(yōu)勢(shì)。
權(quán)利要求
1.一種硬件加速顯示的并行處理結(jié)構(gòu),包括至少兩個(gè)硬件加速模塊,其特征在于包括先入先出存儲(chǔ)器和互斥處理機(jī),所述先入先出存儲(chǔ)器為“ShowAhead”先入先出存儲(chǔ)器,所述先入先出存儲(chǔ)器與硬件加速模塊通過(guò)總線連接,所述互斥處理機(jī)的第一應(yīng)答信號(hào)輸出端與先入先出存儲(chǔ)器相連,所述互斥處理機(jī)的控制信號(hào)輸出端分別與各個(gè)硬件加速模塊相連,所述各個(gè)硬件加速模塊的命令輸出端用于耦合到寫(xiě)顯存模塊;所述先入先出存儲(chǔ)器接收顯示命令、將首個(gè)顯示命令預(yù)先輸出到總線上,所述硬件加速模塊從總線上讀取顯示命令并在判斷該顯示命令是本硬件加速模塊處理的命令、并在響應(yīng)到互斥處理機(jī)輸出的、用于允許顯示命令執(zhí)行的控制信號(hào)后,根據(jù)該顯示命令完成從屏幕坐標(biāo)到顯存的物理坐標(biāo)的轉(zhuǎn)換,之后互斥處理機(jī)輸出的第一應(yīng)答信號(hào)至先入先出存儲(chǔ)器,先入先出存儲(chǔ)器在下一時(shí)鐘周期內(nèi)將下一個(gè)顯示命令輸出到總線上。
2.如權(quán)利要求1所述的硬件加速顯示的并行處理結(jié)構(gòu),其特征在于所述互斥處理機(jī)包括第一或邏輯組和或邏輯門(mén),所述第一或邏輯組的輸入端分別與各個(gè)硬件加速模塊的第二應(yīng)答信號(hào)輸出端連接,響應(yīng)各個(gè)硬件加速模塊在完成顯示命令后輸出的第二應(yīng)答信號(hào),并輸出第一應(yīng)答信號(hào),用于控制先入先出存儲(chǔ)器將下一個(gè)顯示命令輸出到總線上;所述或邏輯門(mén)的輸入端分別響應(yīng)先入先出存儲(chǔ)器的空信號(hào)和第一應(yīng)答信號(hào),輸出允許顯示命令執(zhí)行的控制信號(hào)。
3.如權(quán)利要求1或2所述的硬件加速顯示的并行處理結(jié)構(gòu),其特征在于還包括第二或邏輯組,所述第二或邏輯組的輸入端分別連接各個(gè)硬件加速模塊的命令輸出端,其輸出端用于耦合到寫(xiě)顯存模塊。
4.如權(quán)利要求1或2所述的硬件加速顯示的并行處理結(jié)構(gòu),其特征在于所述第一應(yīng)答信號(hào)和第二應(yīng)答信號(hào)為單時(shí)鐘周期的脈沖信號(hào)。
5.一種硬件加速顯示的并行處理方法,其特征在于包括以下步驟A1、“Show Ahead”先入先出存儲(chǔ)器接收顯示命令并將首個(gè)顯示命令預(yù)先輸出到總線上;B1、硬件加速模塊從總線上讀取顯示命令,判斷該顯示命令是否是本硬件加速模塊處理的命令,如果是則執(zhí)行步驟C1;C1、硬件加速模塊在響應(yīng)到互斥處理機(jī)輸出的用于允許顯示命令執(zhí)行的控制信號(hào)后根據(jù)該顯示命令完成從屏幕坐標(biāo)到顯存的物理坐標(biāo)的轉(zhuǎn)換;D1、在步驟C1后,互斥處理機(jī)輸出第一應(yīng)答信號(hào),控制“Show Ahead”先入先出存儲(chǔ)器將下一個(gè)顯示命令輸出到總線上;E1、循環(huán)步驟B1至D1。
6.如權(quán)利要求6所述的硬件加速顯示的并行處理方法,其特征在于所述步驟B1中根據(jù)顯示命令的命令碼來(lái)識(shí)別是否是本硬件加速模塊處理的命令。
7.如權(quán)利要求5或6所述的硬件加速顯示的并行處理方法,其特征在于在步驟C1中,該硬件加速模塊在完成該顯示命令從屏幕坐標(biāo)到顯存的物理坐標(biāo)的轉(zhuǎn)換后還輸出第二應(yīng)答信號(hào)至互斥處理機(jī)。
8.如權(quán)利要求7所述的硬件加速顯示的并行處理方法,其特征在于所述第一應(yīng)答信號(hào)為所有第二應(yīng)答信號(hào)進(jìn)行或邏輯運(yùn)算的結(jié)果;所述互斥處理機(jī)輸出的控制信號(hào)為“Show Ahead”先入先出存儲(chǔ)器輸出的空信號(hào)和第一應(yīng)答信號(hào)相或后的結(jié)果。
9.如權(quán)利要求8所述的硬件加速顯示的并行處理方法,其特征在于將所述第一應(yīng)答信號(hào)和第二應(yīng)答信號(hào)設(shè)置為單時(shí)鐘周期的脈沖信號(hào)。
全文摘要
本發(fā)明公開(kāi)了一種硬件加速顯示的并行處理結(jié)構(gòu)及處理方法,包括至少兩個(gè)硬件加速模塊、異步先入先出存儲(chǔ)器和互斥處理機(jī),所述先入先出存儲(chǔ)器接收顯示命令并將首個(gè)顯示命令預(yù)先輸出到總線上,硬件加速模塊從總線上讀取顯示命令并在判斷該顯示命令是本硬件加速模塊處理的命令、并在響應(yīng)到互斥處理機(jī)輸出的用于允許顯示命令執(zhí)行的控制信號(hào)后,根據(jù)該顯示命令完成從屏幕坐標(biāo)到顯存的物理坐標(biāo)的轉(zhuǎn)換,之后互斥處理機(jī)輸出的第一應(yīng)答信號(hào)至先入先出存儲(chǔ)器,先入先出存儲(chǔ)器在下一時(shí)鐘周期內(nèi)將下一個(gè)顯示命令輸出到總線上,進(jìn)而完成一個(gè)處理周期的操作。本發(fā)明高效地解決了大容量顯示數(shù)據(jù)顯示的傳輸瓶頸問(wèn)題,同時(shí)在硬件成本和可維護(hù)、可開(kāi)發(fā)特性上具有其他方法無(wú)法比擬的優(yōu)勢(shì)。
文檔編號(hào)G06T1/20GK101071500SQ20061003549
公開(kāi)日2007年11月14日 申請(qǐng)日期2006年5月12日 優(yōu)先權(quán)日2006年5月12日
發(fā)明者姚力, 慈旭光 申請(qǐng)人:深圳邁瑞生物醫(yī)療電子股份有限公司