專利名稱:使用混合dma來處理高速數據的設備和方法
技術領域:
本發明涉及使用混合直接存儲器訪問(DMA)來處理高速數據的 設備和方法。更具體地,本發明涉及在主處理器與外圍輸入/輸出(I/O) 單元之間用于處理高速數據的接口。
背景技術:
DMA表示一種允許外圍I/0單元在沒有主處理器的情況下經由 DMA控制器直接訪問存儲器的技術。DMA使得外圍I/0單元即使在主 處理器執行不同處理的操作時也可以進行操作。因此,DMA提高了數 據吞吐量以及中央處理單元(CPU)使用性能。
在現有技術中,作為訪問i/o總線以向存儲器傳輸i/o數據的方法,
已經使用了以下方法當中的僅一種方法DMA方法、非DMA方法、 以及在非DMA方法情況下的輪詢驅動方法或中斷驅動方法。在輪詢驅 動方法和中斷驅動方法中,CPU為外圍I/0單元提供服務。在中斷驅動 方法中,CPU僅在外圍I/0單元請求服務時才提供服務。因此,在經由 1/0總線一次傳輸的數據量大的情況下,中斷驅動方法是有利的。另一 方面,在輪詢驅動方法中,CPU使用預定義的時間間隔來監控外圍1/0 單元是否請求服務或外圍I/0單元是否準備好接收服務。因此,在經由 1/0總線一次傳輸的數據量小的情況下,輪詢驅動方法是有利的。艮卩, 與中斷驅動方法相比,輪詢驅動方法可以在數據處理方面提供更佳的 吞吐量,然而在總線占用率方面具有更差的權衡。
可以根據I/0總線訪問方法的選擇來控制CPU共享性能。在使用以 上訪問方法當中的僅一種方法時,可能導致在CPU使用性能方面變差。 例如,在僅實施中斷驅動方法的情況下,中斷驅動方法也用來傳輸小 塊數據。這樣,因為除了小數據之外需要用于中斷處理的附加開銷, 所以可能會導致性能變差。另一方面,在僅實施輪詢驅動方法的情況下,在傳輸大小比預定義的大小更大的數據的過程中,因為資源繁忙 所以其他處理器不能共享資源,并且性能可能會變差。在小塊信令數
據(signaling data)的傳輸頻繁出現并且需要卓越CPU使用性能的應 用中,這樣的局限性可能是不利的。
因此,需要一種處理高速數據以及提高CPU使用性能的設備和方法。
發明內容
本發明的一方面將解決至少上述問題和/或缺點以及提供至少下 述優點。相應地,本發明的一方面將提供一種使用混合DMA來處理高 速數據的設備和方法。
根據本發明的方面,提供了一種在數據傳輸設備中傳輸存儲器的 輸入/輸出(I/O)數據的方法。該方法包括確定要傳輸的數據的大 小;通過將所確定的數據大小與第一闊值相比較來確定數據的存儲器 訪問方法;以及通過將所確定的數據大小與第二閾值相比較來確定數 據I/0總線訪問方法。
根據本發明的另一方面,提供了一種用于傳輸存儲器的i/o數據的
設備。該設備包括傳輸數據大小確定單元,用于確定要傳輸的數據 的大小;存儲器訪問方法確定單元,用于通過將所確定的數據大小與 第一閾值相比較來確定數據的存儲器訪問方法;以及I/0總線訪問方法 確定單元,用于通過將所確定的數據大小與第二閾值相比較來確定數 據的170總線訪問方法。
對于本領域技術人員而言,通過以下結合附圖并公幵了本發明示 例實施例的詳細描述,本發明的其他方面、優點、以及特征將變得明 顯。
根據以下結合附圖所進行的描述,本發明特定示例實施例的以上 和其他方面、特征以及優點將變得明顯,附圖中-
圖1是示出了根據本發明示例實施例的使用混合DMA來處理高速數據的設備的圖示;
圖2是根據本發明示例實施例的、包含于外圍I/0單元中的混合總
線驅動器的框圖;以及
圖3是示出了根據本發明示例實施例的、對包含于外圍I/0單元中 的混合總線驅動器的高速數據進行處理的方法的流程圖。
在附圖中,相似的附圖標記將被理解為代表相似的部分、組件以 及結構。
具體實施例方式
提供以下參照附圖的詳細描述,以幫助全面理解如權利要求及其 等價物所限定的本發明的示例實施例。所述描述包括了不同的特定細 節以幫助理解,而這些細節僅被看做是示例性的。相應地,本領域技 術人員將認識到,在不脫離本發明的精神和范圍的前提下,可以對此 處所描述的實施例進行各種改變和修改。此外,為了清楚和簡明,省 略了對公知功能和結構的描述。
說明書和權利要求中所使用的術語和詞語不限于文獻含義,而是 僅被發明人用來使得能夠清楚和簡明地理解本發明。相應地,本領域 技術人員將清楚,以下對本發明示例實施例的描述僅僅是出于說明性 目的而提供的,而目的并不在于對所附權利要求及其等價物所限定的 本發明加以限制。
將理解,除非上下文清楚地指定,否則單數形式的"一"、"一個" 以及"該"包括多個所指對象。因此,例如,提供"一個部件表面"包含 對一個或更多個這樣的表面的提及。
術語"實質上"意思是指不需要精確地實現所述特性、參數或值, 而是可以在量值上有所偏差或變化,包括例如容限、測量誤差、測量 精度極限以及本領域技術人員已知的其他因素,這些偏差或變化不妨 礙特性所要提供的效果。
以下將參考附圖對本發明的示例實施例進行描述。在以下描述 中,沒有詳細描述公知的功能和結構,因為它們將使得本發明在不必 要的細節上混淆。
6以下所述本發明示例實施例示出了一種使用混合直接存儲器訪
問(DMA)來處理高速數據的設備和方法。
圖l是示出了根據本發明示例實施例的、用于使用混合DMA來處 理高速數據的設備的圖示。
如圖1所示,用于處理高速數據的設備包括外圍輸入/輸出(I/O) 單元IOO、主處理器110、 DMA控制器120以及存儲器130。
參照圖l,外圍I/O單元100包括混合總線驅動器101。外圍I/0單元 100使用總線驅動器101根據傳輸數據的大小來確定存儲器訪問方法以 及I/0總線訪問方法,并向存儲器130傳輸I/O數據。相應地,對于數據 傳輸定義兩個閾值。閾值充當參考值,以選擇存儲器訪問方法以及1/0 總線訪問方法。
在將非DMA方法確定為存儲器訪問方法并且接收到來自外圍1/0 單元100的數據時,主處理器110將接收到的數據傳輸至存儲器130。
在將DMA方法確定為存儲器坊問方法并且接收到來自外圍I/0單 元100的數據時,DMA控制器120將接收到的數據傳輸至存儲器130。
存儲器130存儲并管理數據。
圖2是示出了根據本發明示例實施例的、包含于外圍I/0單元中的 混合總線驅動器的框圖。
如圖2所示,混合總線驅動器包括傳輸數據大小確定單元200、存 儲器訪問方法確定單元210、I/O總線訪問方法確定單元220以及數據傳 輸單元230。
參照圖2,傳輸數據大小確定單元200確定并輸出傳輸數據的大小 存儲器訪問方法確定單元210通過將來自傳輸數據大小確定單元 200的確定結果與第一閾值相比較來確定傳輸數據的存儲器訪問方法, 并將所確定的存儲器訪問方法輸出。即,當傳輸數據的大小大于第一 閾值時,將DMA方法確定為傳輸數據的存儲器訪問方法。當傳輸數據 的大小小于或等于第一閾值時,將非DMA方法確定為傳輸數據的存儲 器訪問方法并輸出該非DMA方法。這里,第一閾值充當參考值,用于 確定傳輸數據的大小是適合基于DMA方法的傳輸還是適合基于非 DMA方法的傳輸。 一般而言,通過測量使用DMA的中斷驅動方法的
7附加幵銷而耗費的時間以及非DMA的中斷驅動方法的開銷時間,來確 定第一閾值。因此,第一閾值可以是與DMA的中斷驅動方法的開銷處 理時間相對應的數據大小,但可以根據設置(如,存儲器訪問時間、 總線時鐘等)而不同地變化。
1/O總線訪問方法確定單元220通過將來自傳輸數據大小確定單元 200的確定結果與第二閾值相比較來確定I/O總線訪問方法,并輸出所 確定的I/0總線訪問方法。即,當傳輸數據的大小大于第二閾值時,I/O 總線訪問方法確定單元220將中斷驅動方法確定為傳輸數據的I/O總線 訪問方法。當傳輸數據的大小小于或等于第二閾值時,1/0總線訪問方 法確定單元220確定并輸出輪詢驅動方法作為傳輸數據的I/O總線訪問 方法。這里,第二閾值充當參考值,用于確定傳輸數據的大小是適合 基于中斷驅動方法的傳輸時還是適合基于輪詢驅動方法的傳輸。 一般 而言,通過測量使用中斷驅動方法的附加開銷而消耗的時間以及不使 用中斷的輪詢驅動方法的數據傳輸而消耗的時間,來確定第二閾值。 因此,第二閾值可以是與中斷驅動方法的開銷處理時間相對應的數據 大小,但可以根據設置(如,存儲器訪問時間、總線時鐘等)而不同 地變化。
'數據傳輸單元230使用由存儲器訪問方法確定單元210確定的存 儲器訪問方法以及由I/0總線訪問方法確定單元220確定的I/0總線訪 問方法,來對所述傳輸數據進行傳輸。
這里,第一閾值大于第二閾值。在使用輪詢驅動方法來傳輸大數 據的情況下,長時間應用繁忙等待,并且中央處理單元(CPU)共享 性能可能變差。因此,DMA方法僅使用中斷驅動方法來傳輸數據。
圖3是示出了根據本發明示例實施例的、對包含于外圍I/0單元中 的混合總線驅動器的高速數據進行處理的方法的流程圖。
參照圖3,在步驟301中,混合總線驅動器確定是否存在傳輸數據。 當不存在傳輸數據時,混合總線驅動器返回步驟301并重復確定是否存 在傳輸數據。另一方面,當存在傳輸數據時,在步驟303中混合總線驅 動器確定傳輸數據的大小是否大于第一閾值。
當在步驟303中傳輸數據的大小大于第一閾值時,在步驟305中,
8混合總線驅動器將DMA方法確定為傳輸數據的存儲器訪問方法,并且 將中斷驅動方法確定為傳輸數據的I/0總線訪問方法。在步驟315中, 混合總線驅動器使用所確定的DMA方法以及中斷驅動方法來傳輸數 據。
相反,當在步驟303中傳輸數據的大小小于或等于第一閾值時, 混合總線驅動器在步驟307中將非DMA方法確定為存儲器訪問方法, 以及在步驟309中確定傳輸數據的大小是否大于第二閾值。當在步驟 309中傳輸數據的大小大于第二閾值時,在步驟311中混合總線驅動器 將中斷驅動方法確定為I/0總線訪問方法。然后在步驟315中混合總線 驅動器使用所確定的非DMA方法以及中斷驅動方法來傳輸數據。另一 方面,當傳輸數據的大小小于或等于第二閾值時,混合總線驅動器在 步驟313中將輪詢驅動方法確定為I/0總線訪問方法,以及在步驟315 中使用所確定的非DMA方法以及輪詢驅動方法來傳輸數據。
然后混合總線驅動器結束高速數據的處理。
本發明的示例實施例具有以下優點通過提供一種使用混合DMA 來處理高速數據的設備和方法,提高了數據吞吐量和CPU使用性能。 此外,本發明的示例實施例還同時提供了應用驅動環境以及高速數據 傳輸。
盡管參考本發明的特定示例實施例示出并描述了本發明,然而本 領域技術人員將理解,在不脫離如所附權利要求及其等價物所限定的 本發明的精神和范圍的前提下,可以對本發明進行形式和細節上的各 種修改。
權利要求
1、一種在數據傳輸設備中傳輸存儲器的I/O數據的方法,該方法包括確定要傳輸的數據的大小;通過將所確定的數據大小與第一閾值相比較來確定數據的存儲器訪問方法;以及通過將所確定的數據大小與第二閾值相比較來確定數據的I/O總線訪問方法。
2、 根據權利要求l所述的方法,其中,所述第一閾值大于所述第 二閾值。
3、 根據權利要求l所述的方法,其中,確定存儲器訪問方法包括 當所確定的數據大小大于第一閾值時,將DMA方法確定為數據的存儲器訪問方法;以及當所確定的數據大小小于或等于第一閾值時,將非DMA方法確定為數據的存儲器訪問方法。
4、 根據權利要求l所述的方法,其中,確定I/0總線訪問方法包括 當所確定的數據大小大于第二閾值時,將中斷驅動方法確定為數據的I/0總線訪問方法;以及當所確定的數據大小小于或等于第二閾值時,將輪詢驅動方法確 定為數據的i/o總線訪問方法。
5、 一種用于傳瑜存儲器的I/0數據的設備,該設備包括 傳輸數據大小確定單元,用于確定要傳輸的數據的大小; 存儲器訪問方法確定單元,用于通過將所確定的數據大小與第一閾值相比較來確定數據的存儲器訪問方法;以及1/0總線訪問方法確定單元,用于通過將所確定的數據大小與第二閾值相比較來確定數據的i/o總線訪問方法。
6、 根據權利要求5所述的設備,其中,所述第一閾值大于所述第 二閾值。
7、根據權利要求5所述的設備,其中,存儲器訪問方法確定單元 包括用于當所確定的數據大小大于第一閾值時將DMA方法確定為數據的存儲器訪問方法的單元;以及用于當所確定的數據大小小于或等于第一閾值時將非DMA方法確定為數據的存儲器訪問方法的單元。
8、根據權利要求5所述的設備,其中,1/0總線訪問方法確定單元 包括-用于當所確定的數據大小大于第二閾值時將中斷驅動方法確定 為數據的I/0總線訪問方法的單元;以及用于當所確定的數據大小小于或等于第二閾值時將輪詢驅動方 法確定為數據的I/0總線訪問方法的單元。
9、根據權利要求5所述的設備,還包括數據傳輸單元,用于使用 所確定的存儲器訪問方法以及I/0總線訪問方法來傳輸數據。
全文摘要
提供了一種使用混合直接存儲器訪問(DMA)來處理高速數據的設備和方法。該方法包括確定要傳輸的數據的大小,通過將所確定的數據大小與第一閾值相比較來確定數據的存儲器訪問方法,以及通過將所確定的數據大小與第二閾值相比較來確定數據的I/O總線訪問方法。
文檔編號G06F13/20GK101620582SQ20091013962
公開日2010年1月6日 申請日期2009年6月30日 優先權日2008年7月1日
發明者崔鐘武, 鄭俊燁, 金鐘一 申請人:三星電子株式會社