專利名稱:一種改進(jìn)的dma通信方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)通信領(lǐng)域,尤其涉及一種改進(jìn)的DMA通信方法及裝置。
背景技術(shù):
DMA(直接存儲訪問)通信協(xié)議是數(shù)據(jù)傳輸領(lǐng)域的一個重要的通信協(xié)議,主要是通過讓CPU暫時讓出總線控制權(quán),在專門的硬件(DMA控制器)控制下,實現(xiàn)IO外設(shè)和存儲器之間自動成批交換數(shù)據(jù),以代替原來通過CPU查詢或中斷來實現(xiàn)存儲器和IO外設(shè)之間的數(shù)據(jù)傳送,這樣以硬件代替軟件控制數(shù)據(jù)傳送的方式不僅可以加快傳送速率還可以暫時解放CPU,讓CPU有時間去做其它任務(wù),從整體上提高了設(shè)備的運(yùn)行效率。例如,可以將現(xiàn)有PC機(jī)上的硬盤設(shè)備設(shè)置成DMA模式,這樣可以加快硬盤和內(nèi)存間的數(shù)據(jù)傳輸速率。按照現(xiàn)有的DMA通信 協(xié)議,DMA主設(shè)備(master)和從設(shè)備(slave)通過DMA總線實現(xiàn)相互間數(shù)據(jù)傳輸,該數(shù)據(jù)傳輸受DMA控制器(DMAC)控制,在該通信協(xié)議中與數(shù)據(jù)傳輸有關(guān)的信號包括:從設(shè)備發(fā)出的數(shù)據(jù)請求信號(dma_urd)、主設(shè)備向從設(shè)備發(fā)出的傳輸數(shù)據(jù)(dma_udata)和系統(tǒng)提供給主設(shè)備和從設(shè)備的同步時鐘信號(CLK)?,F(xiàn)有的DMA通信協(xié)議對數(shù)據(jù)傳輸方式的要求是:數(shù)據(jù)請求信號(dma_urd)為高的下一個時鐘周期,傳輸數(shù)據(jù)(dma_udata)必須有效。為了便于理解,參照圖1所示的數(shù)據(jù)傳輸方式的時序示例圖,現(xiàn)有DMA通信協(xié)議的要求是:在同步時鐘(CLK)的某個時鐘上升沿(posedgej)時刻且數(shù)據(jù)請求信號(dma_urd)為高,則在此時鐘上升沿的下個時鐘上升沿(p0Sedge_2)時刻傳輸數(shù)據(jù)(dma_udata)必須為有效數(shù)據(jù),因為在posedge_l時刻dma_urd為高,表明主設(shè)備開始更新數(shù)據(jù),那么在posedge_2時刻,從設(shè)備接收到的dma_udata有效的前提是主設(shè)備數(shù)據(jù)已經(jīng)更新完畢且已經(jīng)傳送到從設(shè)備,這樣從設(shè)備在posedge_2時刻才能對有效數(shù)據(jù)進(jìn)行后續(xù)操作。為了實現(xiàn)上述目的,參照圖2所示的數(shù)據(jù)更新傳輸?shù)臅r序圖,這里我們將主設(shè)備請求更新dma_udata到dma_udata更新完畢的時間稱為更新時間(t_update), dma_udata在DMA總線上傳輸所需時間稱為傳輸時間(t_delay),同步時鐘(CLK)的時鐘周期用T表示,為了滿足在p0Sedge_2時刻從設(shè)備采集到的數(shù)據(jù)為有效數(shù)據(jù),那么所述傳輸數(shù)據(jù)的更新時間與傳輸時間之和應(yīng)小于或等于時鐘周期T,即T彡(t_update+t_delay)那么同步時鐘的最大時鐘頻率為I/(t_update+t_delay),這個技術(shù)瓶頸限制了同步時鐘頻率的進(jìn)一步提高,間接限制了主從設(shè)備間的數(shù)據(jù)傳輸速率。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明所要解決的技術(shù)問題是:提供一種改進(jìn)的DMA通信方法,旨在解決現(xiàn)有的DMA通信方法中的同步時鐘頻率受限、無法進(jìn)一步提高數(shù)據(jù)傳輸速率的問題。本發(fā)明是這樣實現(xiàn)的,一種改進(jìn)的DMA通信方法,該方法用于受一 DMA控制器控制的主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸,所述數(shù)據(jù)傳輸基于一同步時鐘實現(xiàn),所述方法包括下述步驟:
在所述同步時鐘的每個時鐘觸發(fā)沿時刻監(jiān)測所述的數(shù)據(jù)請求信號是否有效;若在某個時鐘觸發(fā)沿時刻數(shù)據(jù)請求信號有效,則主設(shè)備開始更新傳輸數(shù)據(jù),且在該時鐘觸發(fā)沿的下個時鐘觸發(fā)沿時刻,主設(shè)備將已完成更新后的有效傳輸數(shù)據(jù)保存在寄存器中;所述有效的傳輸數(shù)據(jù)在DMA總線上傳輸一定時間后到達(dá)從設(shè)備,在主設(shè)備開始更新傳輸數(shù)據(jù)后的第二個時鐘觸發(fā)沿時刻,從設(shè)備開始采集所述有效傳輸數(shù)據(jù)。進(jìn)一步,所述主設(shè)備開始更新傳輸數(shù)據(jù)到傳輸數(shù)據(jù)更新完成所需的時間和所述有效數(shù)據(jù)在DMA總線上的傳輸時間均小于或等于所述同步時鐘的時鐘周期。本發(fā)明的另一目的在于提供一種改進(jìn)的DMA通信裝置,所述通信裝置包括:相互進(jìn)行數(shù)據(jù)傳輸?shù)闹髟O(shè)備和從設(shè)備以及控制所述主設(shè)備、從設(shè)備數(shù)據(jù)傳輸?shù)腄MA控制器,所述DMA控制器連接有一同步時鐘,所述的DMA控制器包括:信號監(jiān)測模塊,用于在所述同步時鐘的每個時鐘觸發(fā)沿時刻監(jiān)測所述的數(shù)據(jù)請求號是否有效;數(shù)據(jù)暫存模塊,用于若在某個時鐘觸發(fā)沿時刻數(shù)據(jù)請求信號有效,則主設(shè)備開始更新傳輸數(shù)據(jù),且在該時鐘觸發(fā)沿的下個時鐘觸發(fā)沿時刻,主設(shè)備將已完成更新后的有效傳輸數(shù)據(jù)保存在寄存器中;數(shù)據(jù)操作模塊,用于所述有效的傳輸數(shù)據(jù)在DMA總線上傳輸一定時間后到達(dá)從設(shè)備,在主設(shè)備開始更新傳輸數(shù)據(jù)后的第二個時鐘觸發(fā)沿時刻,從設(shè)備開始采集所述有效傳輸數(shù)據(jù)。本發(fā)明的有益效果是:本發(fā)明提供了一種改進(jìn)的DMA通信方法,通過對現(xiàn)有協(xié)議進(jìn)行改進(jìn),在同步時鐘的某個時鐘觸發(fā)沿時刻,若數(shù)據(jù)請求信號為高,則在該時鐘觸發(fā)沿后的第二個時鐘觸發(fā)沿時刻傳輸數(shù)據(jù)信號必須有效,在開始更新數(shù)據(jù)的后一個時鐘觸發(fā)沿時刻將更新完畢的數(shù)據(jù)存儲到寄存中,這樣實現(xiàn)了將更新時間(t_update)和傳輸時間(t_del a)的分離,使得同步時鐘的最大時鐘頻率為l/max(t_update,t_delay),其中max(x,y)表示取X和y的最大值,當(dāng)t_update = t_delay時,最大時鐘頻率可以提升到現(xiàn)有技術(shù)最大時鐘頻率的2倍,從而可以間接提高數(shù)據(jù)傳輸速率。本發(fā)明的另一個有益效果是:本發(fā)明提供了一個改進(jìn)的DMA通信裝置,該裝置通過在DMA控制器上引入了邏輯控制單元,實現(xiàn)了“在同步時鐘的某個時鐘觸發(fā)沿時刻,若數(shù)據(jù)請求信號為高,則在該時鐘觸發(fā)沿后的第二個時鐘觸發(fā)沿時刻傳輸數(shù)據(jù)信號必須有效”這個目的,通過將更新時間(t_update)和傳輸時間(t_delay)的進(jìn)行分離,使得同步時鐘的最大時鐘頻率最大可以達(dá)到現(xiàn)有技術(shù)的2倍,從而間接可以間接提高傳輸速率。
圖1是現(xiàn)有DMA通信協(xié)議要求的數(shù)據(jù)傳輸方式的時序圖;圖2是現(xiàn)有DMA通信協(xié)議要求的數(shù)據(jù)更新傳輸?shù)臅r序圖;圖3是本發(fā)明實施例提供的改進(jìn)后的DMA通信協(xié)議要求的數(shù)據(jù)傳輸方式的時序圖;圖4是本發(fā)明實施例提供的實現(xiàn)改進(jìn)DMA通信方法的流程圖;圖5是本發(fā)明實施例提供的改進(jìn)后的DMA通信協(xié)議要求的數(shù)據(jù)更新傳輸?shù)臅r序圖;圖6是圖1中步驟SI的實現(xiàn)流程圖;圖7是本發(fā)明實施例提供的改進(jìn)的DMA通信裝置的結(jié)構(gòu)圖;圖8是本發(fā)明實施例提供的DMA控制器的結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在實現(xiàn)本發(fā)明實施例前需要搭建好硬件構(gòu)建框架,包括相互傳輸數(shù)據(jù)的主設(shè)備和從設(shè)備,所述主設(shè)備和從設(shè)備受一 DMA控制器控制,所述DMA控制器連接有一同步時鐘,另夕卜,DMA控制器還通過信號線連接有CPU,主要是實現(xiàn)DMA控制器向CPU處獲得總線控制權(quán),所述總線控制權(quán)包括系統(tǒng)總線控制權(quán)和外圍總線控制權(quán)。在本發(fā)明實施例中,對于簡單數(shù)據(jù)傳輸例子,主設(shè)備向從設(shè)備傳輸數(shù)據(jù),主設(shè)備通常是存儲器,從設(shè)備一般是IO外設(shè),也可以是從存儲器,主設(shè)備和從設(shè)備均掛在DMA總線上,在DMA的控制下實現(xiàn)主從設(shè)備間的數(shù)據(jù)傳輸。本發(fā)明提供了一種改進(jìn)的DMA通信方法,通過改變現(xiàn)有的DMA通信協(xié)議的定義,實現(xiàn)在所述同步時鐘的某個時鐘觸發(fā)沿時刻,若從設(shè)備發(fā)出的數(shù)據(jù)請求信號有效,則在所述時鐘觸發(fā)沿時刻后的第二個時鐘觸發(fā)沿時刻,主設(shè)備向從設(shè)備傳送的傳輸數(shù)據(jù)必須有效。為了便于理解,參照圖3,改進(jìn)后的DMA通信協(xié)議要求的數(shù)據(jù)傳輸方式的時序圖,圖中同步時鐘CLK有4個時鐘觸發(fā)沿,分別為posedge_l至posedge_4, dma_urd可以保持一個或若干個時鐘周期的有效電平,在時鐘觸發(fā)沿posedge_l時刻dma_urd有效,此時主設(shè)備請求更新dma_udata同時需滿足在posedge_2時刻之前數(shù)據(jù)更新完成,那么在posedge_2時刻更新后的數(shù)據(jù)必然是有效的,將該更新后的傳輸數(shù)據(jù)保存在寄存器內(nèi),傳輸數(shù)據(jù)在DMA總線上經(jīng)過小于一個時鐘周期的數(shù)據(jù)傳輸后,在p0Sedge_3時刻從設(shè)備采集到所述更新后的數(shù)據(jù),此數(shù)據(jù)是在posedgej時刻開始更新并更新完畢的,那么該數(shù)據(jù)肯定是有效的,所以在p0Sedge_3從設(shè)備采集到的傳輸數(shù)據(jù)也必定為有效數(shù)據(jù),至此實現(xiàn)了“所述同步時鐘的某個時鐘觸發(fā)沿時刻,若從設(shè)備發(fā)出的數(shù)據(jù)請求信號有效,則在所述時鐘觸發(fā)沿時刻后的第二個時鐘觸發(fā)沿時刻,主設(shè)備向從設(shè)備傳送的傳輸數(shù)據(jù)必須有效”這個目的。同理,在posedge_4時刻從設(shè)備采集到的數(shù)據(jù)是posedge_2時刻開始更新并更新完成的數(shù)據(jù),因此posedge_4時刻從設(shè)備采集到的數(shù)據(jù)也必是有效數(shù)據(jù)。為了更進(jìn)一步說明本方法的實現(xiàn)過程,參照圖4,本發(fā)明實施例提供的實現(xiàn)所述的改進(jìn)的DMA通信方法的步驟,詳細(xì)如下:在步驟SI中,DMA控制器從CPU處獲得總線控制權(quán)。 在本發(fā)明實施例中,本步驟是本發(fā)明的優(yōu)選實施步驟,通常情況下按照目前的DMA通信協(xié)議,DMA控制器控制所述主從設(shè)備間的數(shù)據(jù)傳輸時必須先從系統(tǒng)CPU處獲取總線控制權(quán),使得CPU在此期間獲得解放,可以利用此空余時間去完成其他的操作。但如果僅從為了實現(xiàn)DMA通信的數(shù)據(jù)傳輸這項功能這方面來講,整個DMA通信系統(tǒng)中沒有CPU參與亦可實現(xiàn),此時沒有CPU,DMA控制器始終是占用著總線控制權(quán),因此本步驟是為了使本發(fā)明技術(shù)方案更為完整而設(shè)置的。在步驟S2中,在所述同步時鐘的每個時鐘觸發(fā)沿時刻監(jiān)測所述的數(shù)據(jù)請求信號是否有效。在本發(fā)明實施例中,所述的同步時鐘為數(shù)據(jù)傳輸提供了同步節(jié)拍,保證數(shù)據(jù)傳輸有序,所述的時鐘觸發(fā)沿由DMA控制器本身器件特性決定的,包括上升沿觸發(fā)或是下降沿觸發(fā),所述的數(shù)據(jù)請求信號是否有效也是根據(jù)系統(tǒng)自定義的,通常都是高電平有效。所述的數(shù)據(jù)請求信號由從設(shè)備向DMA控制器發(fā)出,請求主設(shè)備傳送數(shù)據(jù),當(dāng)數(shù)據(jù)請求信號變?yōu)闊o效時,表明數(shù)據(jù)已經(jīng)傳輸結(jié)束直至從設(shè)備有新的數(shù)據(jù)傳輸請求到來。在步驟S3中,若在某個時鐘觸發(fā)沿時刻數(shù)據(jù)請求信號有效,則主設(shè)備開始更新傳輸數(shù)據(jù),且在該時鐘觸發(fā)沿的下個時鐘觸發(fā)沿時刻,主設(shè)備將已完成更新后的有效傳輸數(shù)據(jù)保存在寄存器中。在本發(fā)明實施例中,當(dāng)系統(tǒng)監(jiān)測到在某個時鐘觸發(fā)沿時刻數(shù)據(jù)請求信號有效,則主設(shè)備開始更新傳輸數(shù)據(jù),同時需滿足在該時鐘觸發(fā)沿后的一個時鐘周期內(nèi)數(shù)據(jù)更新完畢,那么此時更新后的數(shù)據(jù)為有效數(shù)據(jù),主設(shè)備將已完成更新后的有效傳輸數(shù)據(jù)保存在設(shè)置在主設(shè)備內(nèi)的寄存器中,因為數(shù)據(jù)的操作是基于時鐘的觸發(fā)沿實現(xiàn)的,所以更新完成后的數(shù)據(jù)必須在下個時鐘觸發(fā)沿時刻才能將數(shù)據(jù)保存在寄存器中。在步驟S4中,所述有效的傳輸數(shù)據(jù)在DMA總線上傳輸一定時間后到達(dá)從設(shè)備,在主設(shè)備開始更新傳輸數(shù)據(jù)后的第二個時鐘觸發(fā)沿時刻,從設(shè)備開始采集所述有效傳輸數(shù)據(jù)。
在本發(fā)明實施例中,所述有效的傳輸數(shù)據(jù)在DMA總線上的傳輸時間小于或等于一個時鐘周期,這樣可以滿足在主設(shè)備保存?zhèn)鬏敂?shù)據(jù)后下一個時鐘觸發(fā)沿時刻傳輸數(shù)據(jù)已經(jīng)到達(dá)從設(shè)備,這樣從設(shè)備在該時鐘觸發(fā)沿時刻可以采集傳輸數(shù)據(jù)進(jìn)行后續(xù)操作,后續(xù)操作是根據(jù)從設(shè)備的需求而定的,比如可以包括將接收到數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)或封裝或轉(zhuǎn)存等等。為了進(jìn)一步解釋說明,參照圖5,改進(jìn)后的DMA通信協(xié)議要求的數(shù)據(jù)更新傳輸?shù)臅r序圖,這里將主設(shè)備請求更新dma_udata到dma_udata更新完畢的時間稱為更新時間(t_update), dma_udata在DMA總線上傳輸所需時間稱為傳輸時間(t_delay),同步時鐘(CLK)的時鐘周期用T表示,為了能實現(xiàn)在p0Sedge_2時刻主設(shè)備能將更新后的有效傳輸數(shù)據(jù)保存到寄存器上,那么更新時間t_update ( T,同時為了滿足從設(shè)備在posedge_3時刻采集到的數(shù)據(jù)是有效數(shù)據(jù),那么p0Sedge_3時刻從設(shè)備開始采集數(shù)據(jù)之前,所述的傳輸數(shù)據(jù)已到達(dá)從設(shè)備,即輸出數(shù)據(jù)在DMA總線上的傳輸時間t_delay ( T,因此DMA同步時鐘周期滿足T彡max (t_update, t_delay),其中max (x, y)表示取x和y的最大值,那么DMA同步時鐘的最大頻率為1/max (t_update, t_delay),當(dāng)t_update = t_delay時,最大時鐘頻率可以提升到現(xiàn)有技術(shù)最大時鐘頻率的2倍,從而可以間接提高數(shù)據(jù)傳輸速率。進(jìn)一步作為優(yōu)選的實施方式,參照圖6,所述DMA控制器從CPU處獲得總線控制權(quán)步驟具體實現(xiàn)如下:在步驟Sll中,已準(zhǔn)備就緒的從設(shè)備向DMA控制器發(fā)送數(shù)據(jù)請求信號;在本發(fā)明實施例中,從設(shè)在向DMA控制器發(fā)送數(shù)據(jù)請求信號之前還包括前序準(zhǔn)備階段,包括要傳送的數(shù)據(jù)字節(jié)數(shù)、數(shù)據(jù)在主設(shè)備中的起始地址、傳送方向和DMAC的通道號
坐寸ο
在步驟S12中,DMA控制器接收到數(shù)據(jù)請求信號后,向CPU發(fā)出總線請求信號;在本發(fā)明實施例中,所述的數(shù)據(jù)請求信號從在DMA控制器從CPU處獲得總線控制權(quán)的申請階段到數(shù)據(jù)開始更新階段一直都有效,若出現(xiàn)無效則表明從設(shè)備放棄了數(shù)據(jù)傳輸請求。在步驟S13中,CPU接收到總線請求信號后若允許主從設(shè)備間的數(shù)據(jù)傳輸,則在當(dāng)前總線周期結(jié)束后,釋放總線控制權(quán),并向DMA控制器發(fā)出已交出總線控制權(quán)的反饋信號。DMA控制器獲得總線的控制權(quán),向從設(shè)備發(fā)送應(yīng)答信號,通知外設(shè)可以進(jìn)行DMA傳輸了。本發(fā)明所要解決的另一個技術(shù)問題是:提供一種改進(jìn)的DMA通信裝置,旨在解決現(xiàn)有的DMA通信裝置中的同步時鐘頻率受限、無法進(jìn)一步提高數(shù)據(jù)傳輸速率的問題。圖7示出了一種改進(jìn)的DMA通信裝置的結(jié)構(gòu)圖,示出了本發(fā)明實施例提供的信息共享系統(tǒng)的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。所述改進(jìn)的通信裝置包括:相互進(jìn)行數(shù)據(jù)傳輸?shù)闹髟O(shè)備和從設(shè)備以及控制所述主設(shè)備、從設(shè)備數(shù)據(jù)傳輸?shù)腄MA控制器,所述DMA控制器連接有一同步時鐘,在同步時鐘的某個時鐘觸發(fā)沿若所述數(shù)據(jù)請求信號有效的時刻,則在所述時鐘觸發(fā)沿時刻后的第二個時鐘觸發(fā)沿時刻,主設(shè)備向從設(shè)備傳送的傳輸數(shù)據(jù)有效。作為優(yōu)選的DMA通信裝置結(jié)構(gòu),本裝置的DMA控制器還連接有一 CPU,在實現(xiàn)本改進(jìn)的DMA通信裝置之前,DMA控制器還必須從CPU處獲取總線控制權(quán),這樣才能實現(xiàn)主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸。圖8示出了所述邏輯控制單元的結(jié)構(gòu),了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。所述DMA控制器包括:信號監(jiān)測模塊,用于在所述同步時鐘的每個時鐘觸發(fā)沿時刻監(jiān)測所述的數(shù)據(jù)請求號是否有效;數(shù)據(jù)暫存模塊,用于若在某個時鐘觸發(fā)沿時刻數(shù)據(jù)請求信號有效,則主設(shè)備開始更新傳輸數(shù)據(jù),且在該時鐘觸發(fā)沿的下個時鐘觸發(fā)沿時刻,主設(shè)備將已完成更新后的有效傳輸數(shù)據(jù)保存在寄存器中;數(shù)據(jù)操作模塊,用于所述有效的傳輸數(shù)據(jù)在DMA總線上傳輸一定時間后到達(dá)從設(shè)備,在主設(shè)備開始更新傳輸數(shù)據(jù)后的第二個時鐘觸發(fā)沿時刻,從設(shè)備開始采集所述有效傳輸數(shù)據(jù)。在本發(fā)明實施例中,通過改進(jìn)DMA控制器的結(jié)構(gòu),實現(xiàn)了更新時間(t_update)和傳輸時間(t_delay)進(jìn)行分離,提高了 DMA同步時鐘的最大頻率。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種改進(jìn)的DMA通信方法,該方法用于受一 DMA控制器控制的主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸,所述數(shù)據(jù)傳輸基于一同步時鐘實現(xiàn),其特征在于,所述DMA通信方法包括下述步驟: 在所述同步時鐘的每個時鐘觸發(fā)沿時刻監(jiān)測所述的數(shù)據(jù)請求信號是否有效; 若在某個時鐘觸發(fā)沿時刻數(shù)據(jù)請求信號有效,則主設(shè)備開始更新傳輸數(shù)據(jù),且在該時鐘觸發(fā)沿的下個時鐘觸發(fā)沿時刻,主設(shè)備將已完成更新后的有效傳輸數(shù)據(jù)保存在寄存器中;以及 所述有效的傳輸數(shù)據(jù)在DMA總線上傳輸一定時間后到達(dá)從設(shè)備,在主設(shè)備開始更新傳輸數(shù)據(jù)后的第二個時鐘觸發(fā)沿時刻,從設(shè)備開始采集所述有效傳輸數(shù)據(jù)。
2.如權(quán)利要求1所述的一種改進(jìn)的DMA通信方法,其特征在于,所述主設(shè)備開始更新傳輸數(shù)據(jù)到傳輸數(shù)據(jù)更新完成所需的時間和所述有效數(shù)據(jù)在DMA總線上的傳輸時間均小于或等于所述同步時鐘的時鐘周期。
3.如權(quán)利要求1所述的一種改進(jìn)的DMA通信方法,其特征在于,在所述同步時鐘的每個時鐘觸發(fā)沿時刻監(jiān)測所述的數(shù)據(jù)請求信號是否有效的步驟之前還包括下述步驟: DMA控制器從CPU處獲得總線控制權(quán)。
4.如權(quán)利要求3所述的一種改進(jìn)的DMA通信方法,其特征在于,所述DMA控制器從CPU處獲得總線控制權(quán)的實現(xiàn)步驟如下: 已準(zhǔn)備就緒的從設(shè)備向DMA控制器發(fā)送數(shù)據(jù)請求信號; DMA控制器接收到數(shù)據(jù)請求信號后,向CPU發(fā)出總線請求信號; (PU接收到總線請求信號后若允許主從設(shè)備間的數(shù)據(jù)傳輸,則在當(dāng)前總線周期結(jié)束后,釋放總線控制權(quán),并向DMA控制器發(fā)出已交出總線控制權(quán)的反饋信號。
5.如權(quán)利要求1至4所述的任一種改進(jìn)的DMA通信方法,其特征在于,所述的時鐘觸發(fā)沿為時鐘上升沿或時鐘下降沿。
6.如權(quán)利要求1至4所述的方法,其特征在于,所述的主設(shè)備為存儲器,所述的從設(shè)備為IO外設(shè)或從存儲器。
7.如權(quán)利要求1至4所述的任一種改進(jìn)的DMA通信方法,其特征在于,所述的數(shù)據(jù)請求信號有效是數(shù)據(jù)請求信號高電平有效。
8.一種改進(jìn)的DMA通信裝置,所述通信裝置包括:相互進(jìn)行數(shù)據(jù)傳輸?shù)闹髟O(shè)備和從設(shè)備以及控制所述主設(shè)備、從設(shè)備數(shù)據(jù)傳輸?shù)腄MA控制器,所述DMA控制器連接有一同步時鐘,其特征在于,所述的DMA控制器包括: 信號監(jiān)測模塊,用于在所述同步時鐘的每個時鐘觸發(fā)沿時刻監(jiān)測所述的數(shù)據(jù)請求信號是否有效; 數(shù)據(jù)暫存模塊,用于若在某個時鐘觸發(fā)沿時刻數(shù)據(jù)請求信號有效,則主設(shè)備開始更新傳輸數(shù)據(jù),且在該時鐘觸發(fā)沿的下個時鐘觸發(fā)沿時刻,主設(shè)備將已完成更新后的有效傳輸數(shù)據(jù)保存在寄存器中;以及 數(shù)據(jù)操作模塊,用于所述有效的傳輸數(shù)據(jù)在DMA總線上傳輸一定時間后到達(dá)從設(shè)備,在主設(shè)備開始更新傳輸數(shù)據(jù)后的第二個時鐘觸發(fā)沿時刻,從設(shè)備開始采集所述有效傳輸數(shù)據(jù)。
全文摘要
本發(fā)明適用于數(shù)據(jù)通信領(lǐng)域,提供一種改進(jìn)的DMA通信方法及裝置,該方法包括在所述同步時鐘的每個時鐘觸發(fā)沿時刻監(jiān)測所述的數(shù)據(jù)請求信號是否有效;若在某個時鐘觸發(fā)沿時刻數(shù)據(jù)請求信號有效,則主設(shè)備開始更新傳輸數(shù)據(jù),且在該時鐘觸發(fā)沿的下個時鐘觸發(fā)沿時刻,主設(shè)備將已完成更新后的有效傳輸數(shù)據(jù)保存在寄存器中;所述有效的傳輸數(shù)據(jù)在DMA總線上傳輸一定時間后到達(dá)從設(shè)備,在主設(shè)備開始更新傳輸數(shù)據(jù)后的第二個時鐘觸發(fā)沿時刻,從設(shè)備開始采集所述有效傳輸數(shù)據(jù)。本發(fā)明將更新時間和傳輸時間進(jìn)行分離,使得同步時鐘的最大時鐘頻率最大可以達(dá)到現(xiàn)有技術(shù)的2倍,從而可以間接提高傳輸速率。
文檔編號G06F13/28GK103176931SQ201110443550
公開日2013年6月26日 申請日期2011年12月26日 優(yōu)先權(quán)日2011年12月26日
發(fā)明者冷永春, 胡勝發(fā) 申請人:安凱(廣州)微電子技術(shù)有限公司