一種跨時鐘域異步數(shù)據(jù)處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種跨時鐘域異步數(shù)據(jù)處理方法和一種跨時鐘域異步數(shù)據(jù)處理裝置。
【背景技術(shù)】
[0002]在復(fù)雜的數(shù)字電路系統(tǒng)中,整個系統(tǒng)往往由多個單元或多個印刷電路板組成,因此在專用集成電路(Applicat1n Specific Integrated Circuit,ASIC)和現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)的邏輯設(shè)計中,往往會設(shè)計兩個時鐘域或者多個時鐘域之間信號的交互。
[0003]通常在對跨時鐘域的異步存儲器進行讀寫時,可以執(zhí)行以下過程:對每個所接收到的數(shù)據(jù)信號,首先對該數(shù)據(jù)信號進行采樣,得到第一時鐘域的數(shù)據(jù)信號;然后對該第一時鐘域的數(shù)據(jù)信號進行同步化處理,得到第二時鐘域的數(shù)據(jù)信號;再用同步后的第二時鐘域上的數(shù)據(jù)信號對第二時鐘域的存儲器進行讀寫訪問,并再將訪問結(jié)果反饋輸出。該讀寫過程中由于需要每一筆存儲操作都等待異步時鐘域的數(shù)據(jù)信號轉(zhuǎn)換,消耗了大量的時鐘周期,尤其在對異步存儲器中大段連續(xù)地址空間進行讀寫時,上述處理方法會導(dǎo)致數(shù)據(jù)處理效率降低。
[0004]因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是:能夠在對異步存儲器中大段連續(xù)地址空間進行讀寫時,提高數(shù)據(jù)處理效率。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例的目的在于提供一種跨時鐘域異步數(shù)據(jù)處理方法,能夠?qū)Ξ惒酱鎯ζ髦写蠖芜B續(xù)地址空間進行讀寫時,提高數(shù)據(jù)處理效率。
[0006]相應(yīng)的,本發(fā)明實施例還提供了一種跨時鐘域異步數(shù)據(jù)處理裝置,用以保證上述方法的實現(xiàn)及應(yīng)用。
[0007]為了解決上述問題,本發(fā)明公開了一種跨時鐘域異步數(shù)據(jù)處理方法,包括:
[0008]在第一時鐘域生成連續(xù)讀寫命令,所述連續(xù)讀寫命令中包括連續(xù)數(shù)據(jù)的起止地址信息及讀寫模式;
[0009]將所述第一時鐘域的連續(xù)讀寫命令進行同步化處理,獲得第二時鐘域的連續(xù)讀寫命令;
[0010]通過異步先入先出隊列FIFO與所述第二時鐘域的存儲器進行所述連續(xù)數(shù)據(jù)的讀寫,其中,所述連續(xù)數(shù)據(jù)在所述存儲器中的存儲器地址根據(jù)所述第二時鐘域的連續(xù)讀寫命令確定。
[0011]進一步,所述通過異步先入先出隊列FIFO與所述第二時鐘域的存儲器進行所述連續(xù)數(shù)據(jù)的讀寫,包括:
[0012]當進行所述連續(xù)數(shù)據(jù)的寫入時,將所述第一時鐘域的所述連續(xù)數(shù)據(jù)寫入所述異步FIFO,以使所述第二時鐘域的存儲器從所述異步FIFO讀取所述連續(xù)數(shù)據(jù)并存儲在所述存儲器中;和/或,
[0013]當進行所述連續(xù)數(shù)據(jù)的讀取時,從所述異步FIFO中讀取由所述第二時鐘域的存儲器存儲的所述連續(xù)數(shù)據(jù)。
[0014]進一步,所述方法還包括:
[0015]接收所述第二時鐘域的存儲器反饋的對所述連續(xù)數(shù)據(jù)寫入完成的報告。
[0016]進一步,所述方法還包括:
[0017]向所述第二時鐘域的存儲器反饋對所述連續(xù)數(shù)據(jù)讀取完成的報告。
[0018]進一步,在所述在第一時鐘域生成連續(xù)讀寫命令之前,還包括:
[0019]對待讀寫數(shù)據(jù)的地址空間進行整合,獲得所述連續(xù)數(shù)據(jù)的所述起止地址信息。
[0020]本發(fā)明實施例還提供了一種跨時鐘域異步數(shù)據(jù)處理裝置,包括:
[0021]命令生成模塊,用于在第一時鐘域生成連續(xù)讀寫命令,所述連續(xù)讀寫命令中包括連續(xù)數(shù)據(jù)的起止地址信息及讀寫模式;
[0022]同步邏輯模塊,用于將所述第一時鐘域的連續(xù)讀寫命令進行同步化處理,獲得第二時鐘域的連續(xù)讀寫命令;
[0023]數(shù)據(jù)讀寫模塊,用于通過異步先入先出隊列FIFO與所述第二時鐘域的存儲器進行所述連續(xù)數(shù)據(jù)的讀寫,其中,所述連續(xù)數(shù)據(jù)在所述存儲器中的存儲器地址根據(jù)所述第二時鐘域的連續(xù)讀寫命令確定。
[0024]進一步,所述數(shù)據(jù)讀寫模塊,用于當進行所述連續(xù)數(shù)據(jù)的寫入時,將所述第一時鐘域的所述連續(xù)數(shù)據(jù)寫入所述異步FIFO,以使所述第二時鐘域的存儲器從所述異步FIFO讀取所述連續(xù)數(shù)據(jù)并存儲在所述存儲器中;和/或,
[0025]所述數(shù)據(jù)讀寫模塊,用于當進行所述連續(xù)數(shù)據(jù)的讀取時,從所述異步FIFO中讀取由所述第二時鐘域的存儲器存儲的所述連續(xù)數(shù)據(jù)。
[0026]進一步,所述裝置還包括:
[0027]反饋接收模塊,用于接收所述第二時鐘域的存儲器反饋的對所述連續(xù)數(shù)據(jù)寫入完成的報告。
[0028]進一步,所述裝置還包括:
[0029]反饋模塊,用于向所述第二時鐘域的存儲器反饋對所述連續(xù)數(shù)據(jù)讀取完成的報生口 ο
[0030]進一步,所述裝置還包括:
[0031]整合模塊,用于在所述在第一時鐘域生成連續(xù)讀寫命令之前,對待讀寫數(shù)據(jù)的地址空間進行整合,獲得所述連續(xù)數(shù)據(jù)的所述起止地址信息。
[0032]與現(xiàn)有技術(shù)相比,本發(fā)明實施例包括以下優(yōu)點:
[0033]本發(fā)明實施例在對一段連續(xù)地址空間的數(shù)據(jù)進行讀寫操作時,通過生成連續(xù)讀寫命令,并在連續(xù)讀寫命令中包含數(shù)據(jù)的起止地址信息,使得在第一時鐘域與第二時鐘域之間只對該命令進行一次同步化處理即可,在數(shù)據(jù)讀寫過程中,通過利用異步FIFO即可實現(xiàn)數(shù)據(jù)的連續(xù)讀寫。該方法對于大段連續(xù)地址的數(shù)據(jù)讀寫不需要每一筆存儲操作都等待異步時鐘域的數(shù)據(jù)信號轉(zhuǎn)換,提高了數(shù)據(jù)處理效率。
【附圖說明】
[0034]圖1是本發(fā)明的一種跨時鐘域異步數(shù)據(jù)處理方法實施例的步驟流程圖;
[0035]圖2是本發(fā)明的另一種跨時鐘域異步數(shù)據(jù)處理方法實施例的步驟流程圖;
[0036]圖3是本發(fā)明中一種跨時鐘域異步數(shù)據(jù)處理的系統(tǒng)架構(gòu)示意圖;
[0037]圖4是本發(fā)明的另一種跨時鐘域異步數(shù)據(jù)處理方法實施例的步驟流程圖;
[0038]圖5是本發(fā)明的另一種跨時鐘域異步數(shù)據(jù)處理方法實施例的步驟流程圖;
[0039]圖6是本發(fā)明的一種跨時鐘域異步數(shù)據(jù)處理裝置實施例的結(jié)構(gòu)框圖。
【具體實施方式】
[0040]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0041 ] 參照圖1,示出了本發(fā)明的一種跨時鐘域異步數(shù)據(jù)處理方法實施例的步驟流程圖,具體可以包括如下步驟:
[0042]步驟101,在第一時鐘域生成連續(xù)讀寫命令,該連續(xù)讀寫命令中包括連續(xù)數(shù)據(jù)的起止地址信息及讀寫模式。
[0043]本實施例中,跨時鐘域異步數(shù)據(jù)處理的裝置(以下簡稱該裝置)可以設(shè)置在第一時鐘域。
[0044]當該裝置需要對一段連續(xù)地址空間對應(yīng)的數(shù)據(jù)(記為連續(xù)數(shù)據(jù))進行讀寫操作時,例如將第一時鐘域內(nèi)該連續(xù)地址空間內(nèi)對應(yīng)存儲的連續(xù)數(shù)據(jù)寫入第二時鐘域的存儲器中,或者從第二時鐘域的存儲器中讀取出與連續(xù)地址空間對應(yīng)的連續(xù)數(shù)據(jù)等,該裝置首先根據(jù)該連續(xù)數(shù)據(jù)的起止地址信息及讀寫模式生成一個連續(xù)的讀寫命令。其中該起止地址信息具體可以包括起始地址及讀寫長度。
[0045]在另一實施例中,在生成該連續(xù)讀寫命令之前,該裝置還可以首先對多個待讀寫數(shù)據(jù)的地址空間進行整合,獲得由這些待讀寫數(shù)據(jù)組成的連續(xù)數(shù)據(jù)的起止地址信息。
[0046]步驟102,將第一時鐘域的連續(xù)讀寫命令進行同步化處理,獲得第二時鐘域的連續(xù)讀寫命令。
[0047]該裝置將生成的連續(xù)讀寫命令進行同步化處理,獲得第二時鐘域的連續(xù)讀寫命令。該同步處理方法可采用現(xiàn)有技術(shù)中的諸多方法,譬如申請?zhí)枮镃N200710002653.3,發(fā)明名稱為“跨時鐘域異步數(shù)據(jù)處理、異步數(shù)據(jù)跨時鐘域的方法及裝置”的專利申請中所公開的同步方法亦可用于本發(fā)明中,此處不再贅述。
[0048]步驟103,通過異步FIFO與第二時鐘域的存儲器進行連續(xù)數(shù)據(jù)的讀寫。其中,連續(xù)數(shù)據(jù)在存儲器中的存儲器地址根據(jù)第二時鐘域的連續(xù)讀寫命令確定。
[0049]第二時鐘域中可以在存儲器內(nèi)部或者外部設(shè)置有內(nèi)部邏輯模塊,該內(nèi)部邏輯模塊在接收到第二時鐘域的連續(xù)讀寫命令后,即可根據(jù)該命令中包含的讀寫模式確定當前模式是進行數(shù)據(jù)寫入還是數(shù)據(jù)讀取,同時根據(jù)連續(xù)數(shù)據(jù)的起止地址信息計算獲得該存儲器中對應(yīng)的存儲地址。其中,根據(jù)第一時鐘域的起止地址信息計算第二時鐘域的存儲器的存儲地址的方法可以采用現(xiàn)有方法。
[0050]第一時鐘域與第二時鐘域之間設(shè)置有異步FIF0(First Input First Output,先進先出隊列)。FIFO從硬件來看是一塊數(shù)據(jù)內(nèi)存,它有兩個端口,一個用來寫數(shù)據(jù),就是將數(shù)據(jù)存入FIFO ;另一個用來讀數(shù)據(jù),也就是將數(shù)據(jù)從FIFO當中取出。與FIFO操作相關(guān)的有兩個指針,寫指針指向要寫的內(nèi)存部分,讀指針指向要讀的內(nèi)存部分。FIFO控制器通過外部的讀寫信號控制這兩個指針移動。對于異步FIFO而言,數(shù)據(jù)是由某一個時鐘域的控制信號寫入FIFO,而由另一個時鐘域的控制信號將數(shù)據(jù)讀出FIFO,也就是說,讀寫指針的變化動作是由不同的時鐘產(chǎn)生的。