專利名稱::用于主從接口的基于包的數據傳輸系統與方法
技術領域:
:本發明有關于用于主從接口的數據傳輸方法與對應的裝置;特別地,本發明提供了一種數據傳輸方法,其中主裝置使用直接存儲器存取來解包自從裝置接收的包括多個數據單元的數據流,而不需要存儲器拷貝。
背景技術:
:安全數字輸入輸出(SecureDigitalInputOutput,以下簡稱為SDI0)是使用安全數字(SecureDigital,以下簡稱為SD)卡而不是閃存(flashmemory)卡作為裝置的組成要素(formfactor)的接口。該裝置(SDI0接口的從裝置)可包括全球定位系統(GlobalPositioningSystem,GPS)接收器、無線保真(Wi-Fi)或者藍牙(bluetooth)傳輸器(adapter)、調制解調器(modem,modulator-demodulator)、以太傳輸器(Ethernetadapter)、條碼掃貓器(barcodereader),紅外數據協會(IrDA,InfraredDataAssociation)傳輸器、調頻收音機(FMradio)調諧器(tuner)、電視(TV)調諧器、射頻識別(RadioFrequencyIdentification,RFID)讀取器(reader),數碼相機(digitalcamera)>大容量存儲媒體(massstoragemedia)例如硬盤驅動(harddrive)等。支持SDIO的主裝置(SDI0接口的主裝置)可為個人數字助理(personaldigitalassistant,PDA)、膝上電腦(laptopcomputer)、手機(“智能手機(smartphone)”)等。現有的使用SDIO接口的主從系統(host-slavesystem)中,主裝置控制數據傳輸,從裝置僅僅根據主裝置的請求來移動(move)數據。從裝置不能發起(initiate)數據傳輸。數據傳輸中,主裝置的請求發送與從裝置的請求接收之間有一個時間延遲(timedelay),類似地,從裝置的響應發送(responsesending)與主裝置的響應接收之間也有一個時間延遲。此種情況被稱為命令間延遲(inter-commanddelay)。因為從裝置必須等待主裝置來請求數據,所以與請求命令相關的命令間延遲會引發數據傳輸的延遲。命令間延遲可多達幾百毫秒(microsecond)。
發明內容本發明有關于安全數字輸入輸出或其它主從系統與相關方法,其中從裝置傳輸包括多個數據段的數據流以及主裝置使用直接存儲器存取以將數據段解包為單獨的數據段。本發明的一個目標是提供一種用于安全數字輸入輸出或其它主從接口的有效的數據傳輸方法。本發明的其它特性與優點在下文的實施方式部分進行描述,其可自實施方式的描述或者自實施本發明的過程中得出。在結合附圖來參考實施方式和權利要求中指出的結構之后,本發明的目標和其它優點可被理解并實現。為達到這些目標和其它優點,在下文的實施方式中,本發明提供一種實施于主從數據傳輸系統的數據傳輸方法,其中從裝置與外部裝置進行數據通信,所述方法包括(a)從裝置自外部裝置接收數據并將接收的數據存儲于從裝置的緩沖器中,所述數據包括多個數據段;(b)從裝置獲取數據段大小信息,所述信息用于設定所述多個數據段的每一者的大小;(c)從裝置通過帶外通道將數據段大小信息發送至主裝置;(d)主裝置通過帶外通道自從裝置接收所述數據段大小信息;(e)主裝置產生一個或者多個描述符表,每一個描述符表包括多個描述符,每一個描述符定義從裝置與主裝置的系統存儲器之間的一個數據傳輸,每一個描述符用于設定系統存儲器中的地址和準備傳輸的數據的長度,其中描述符中設定的長度是依據自從裝置接收的數據段大小信息;(f)主裝置發出數據傳輸命令至從裝置以傳輸所述多個數據段;(g)為響應數據傳輸命令,從裝置以一個數據流來傳輸所述多個數據段;以及(h)主裝置根據描述符表執行直接存儲器存取,以將包括在所述數據流中的一些獨立的所述多個數據段中的一部分單獨的數據段存儲于主裝置的系統存儲器的設定的地址。在另一種實施方式中,本發明提供一種實施于主從數據傳輸系統的數據傳輸方法,其中從裝置與外部裝置進行數據通信,所述方法包括(a)從裝置自外部裝置接收數據且將接收的數據存儲于從裝置的緩沖器中,所述數據包括第一多個數據段和第二多個數據段;(b)從裝置獲取數據段大小信息,所述數據段大小信息用于設定第二多個數據段中的每一個數據段的大小;(C)為響應自主裝置的第一數據傳輸命令,從裝置產生第一數據流并將第一數據流發送至主裝置,所述第一數據流包括第一多個數據段和多個輔助段,其中輔助段包括數據段大小信息,所述信息用于設定所述第二多個數據段的大小;(d)主裝置接收第一數據流并自所述多個輔助段獲取數據段大小信息;(e)主裝置產生一個或者多個描述符表,每一描述符表包括多個描述符,每一個描述符定義從裝置與主裝置的系統存儲器之間的一個數據傳輸,每一個描述符用于設定系統存儲器中的地址以及準備傳輸的數據的長度,其中描述符中設定的長度是依據步驟(d)中獲得的數據段大小信息;(f)主裝置發出第二數據傳輸命令至從裝置以作為數據流傳輸所述第二多個數據段;(g)為響應第二數據傳輸命令,從裝置在第二數據流中傳輸所述第二多個數據段;以及(h)主裝置根據描述符表執行直接存儲器存取以將第二數據流中包括的所述第二多個數據段中的一部分單獨的數據段存儲于主裝置的系統存儲器的設定的地址。在另一種實施方式中,本發明提供一種數據傳輸方法,用于主從系統的主裝置,所述數據傳輸方法包括自從裝置接收一個或者多個數據流,所述數據流包括第一多個數據段和多個輔助段;自所述多個輔助段的至少一部分獲取數據段大小信息,所述數據段大小信息用于設定存儲于所述從裝置的第二多個數據段的大小;產生一個或者多個描述符表,描述符表包括多個描述符,每一個描述符定義從裝置與主裝置的系統存儲器之間的數據傳輸,每一個描述符設定所述系統存儲器的地址和準備傳輸的數據的長度,其中所述描述符依據所述數據段大小信息設定所述長度;發出傳輸命令至所述從裝置以數據流傳輸所述第二多個數據段;根據所述描述符表執行直接存儲器存取,以將自從裝置的數據流的第二多個數據段中的一部分單獨的數據段存儲于主裝置的系統存儲器的所述設定地址。在另一種實施方式中,本發明提供一種主從系統中的主裝置,包括處理器;以及系統存儲器,用于存儲由處理器執行的數據和程序代碼,所述程序代碼用于引發處理器執行一個數據傳輸程序,數據傳輸程序包括自從裝置接收一個或者多個數據流,所述數據流包括第一多個數據段和多個輔助段;自多個輔助段的至少一部分獲取數據段大小信息,數據段大小信息用于設定存儲于從裝置的第二多個數據段的大小;產生一個或者多個描述符表,所述描述符表包括多個描述符,每一個描述符用于定義主裝置的系統存儲器與從裝置之間的數據傳輸,每一個描述符設定所述系統存儲器的一個地址和準備傳輸的數據的長度,其中描述符設定的長度是依據數據段大小信息;發出傳輸命令至從裝置,以作為數據流傳輸第二多個數據段;根據描述符表執行直接存儲器存取,以將自從裝置的數據流的第二多個數據段中的一部分單獨的數據段存儲于主裝置的系統存儲器的已設定的地址。在另一種實施方式中,本發明提供一種從裝置,連接至主從系統的主裝置,從裝置用于主裝置與外部裝置之間的數據通信,從裝置包括緩沖器,用于存儲自外部裝置接收的數據,所述數據包括第一多個數據段和第二多個數據段;控制電路,耦接至緩沖器,用于獲取數據段大小信息,數據段大小信息用于設定緩沖器內的第二多個數據段中的每一個數據段的大小;以及合并電路,耦接至緩沖器和控制電路,用于產生數據流并將數據流傳輸至主裝置,以響應自主裝置的數據傳輸命令,所述數據流包括第一多個數據段和多個輔助段,其中輔助段包括數據段大小信息。在另一種實施方式中,本發明提供一種方法,實施于主從系統的從裝置,以協助主裝置和外部裝置之間的數據通信,所述方法包括將自外部裝置接收的數據存儲至從裝置·的緩沖器,所述數據包括第一多個數據段和第二多個數據段;獲取數據段大小信息,其中數據段大小信息用于設定緩沖器內的第二多個數據段中的每一個數據段的大小;以及產生一數據流并將數據流傳輸至主裝置,以響應自主裝置的數據傳輸命令,數據流包括第一多個數據段和多個輔助段,其中輔助段包括數據段大小信息。在結合附圖閱讀下文的實施方式中的較佳實施方式之后,本領域的技術人員應可理解本發明的上述和其它優點。圖I是根據本發明的一種實施方式的主從數據傳輸系統的模塊示意圖。圖2是自從裝置發送至主裝置數據流的數據格式的實例的示意圖。圖3a是根據SD主控制器精簡規格版本2.00的ADMA2的示意圖。圖3b、3c是ADMA2的操作的示意圖。圖3b是狀態表以及圖3c解釋每一狀態的操作。圖4、5是根據本發明的一種實施方式的數據傳輸方法的流程圖。圖4是從裝置執行的過程以及圖5是主裝置執行的過程。具體實施例方式在說明書與權利要求書當中使用了某些詞匯來指稱特定的元件。本領域的技術人員應可理解,硬件制造商可能會用不同的名詞來稱呼同樣的元件。本說明書與權利要求書并不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準貝U。在通篇說明書與權利要求中所提及的“包括”是開放式的用語,應解釋成“包括但不限于”。另外,“耦接”一詞在此包括任何直接與間接的電氣連接手段。因此,若文中描述第一裝置耦接于第二裝置,則代表所述第一裝置可直接電氣連接于所述第二裝置,或透過其它裝置或連接手段間接地電氣連接至所述第二裝置。一種常用的解決方案是申請號為US12/339,072、公開號為US2009/0259786的美國專利申請,所述美國專利申請中描述了一種使用SDIO接口的主從系統,其中從裝置用于協助主裝置與外部裝置之間的數據通信。在此主從系統中,從裝置自外部裝置接收數據包并將包合并為數據流以傳輸至主裝置。每一個數據流包括多個被稱為服務數據單元(ServiceDataUnit,以下簡稱為SDU)的數據段(datasegment),其中每一SDU對應于自外部裝置接收的包的數據內容(datacontent)。從裝置也為向主裝置傳輸的數據流插入頭部(header)和/或尾部(tailer),頭部和/或尾部包括有關于從裝置的狀態(status)與緩沖器狀況(condition)的信息。在主裝置一側,主裝置自頭部和/或尾部獲取從裝置的緩沖器狀況信息。利用此信息,主裝置確定發送至從裝置或者自從裝置接收的數據量,并據此發出傳輸命令至從裝置。此方案可顯著減少命令間延遲。為提高性能,本發明的實施方式提供一種進一步改進的主從系統,其中主裝置利用直接存儲器存取(DirectMemoryAccess,以下簡稱為DMA)技術來以一種高效率的方式解包自從裝置接收的數據流。更特別地,當從裝置傳輸包括多個SDU的數據流至主裝置時,從裝置在所述數據流中插入頭部和/或尾部,其中頭部和/或尾部包括有關于準備傳輸至主裝置的SDU的數據大小信息。主裝置利用數據大小信息使用DMA建立后續數據傳輸,使得當主裝置接收所述數據流后,主裝置可將自從裝置接收的數據流直接解包(unpack)為單·獨的包,而無需執行存儲器拷貝(memorycopy)。而現有的裝置并不實施本發明中描述的DMA技術,現有的裝置中,整個(entire)數據流首先被接收到主裝置的緩沖存儲器(buffermemory)中,然后緩沖的數據被逐包(packet-by-packet)的拷貝出來,以將數據流解包為供其它程序使用的單獨的包。此過程被稱為存儲器拷貝。存儲器拷貝需要被分配相對較大的緩沖器區域來暫存(temporarilyholding)數據流。此外,存儲器拷貝也需要主裝置CPU的額外工作來將數據自數據所在的緩沖器拷貝到存儲單獨的包的緩沖器。本發明中使用DMA技術,當數據流被自從裝置接收時,就將數據流解包為多個包,而不需要執行存儲器拷貝。下文參考圖I-圖5來詳細描述本發明的實施方式。圖I是根據本發明的一種實施方式的數據傳輸系統100的方塊示意圖。數據傳輸系統100包括以主從關系相互稱接的主裝置(host/masterdevice)101和從裝置103。在實際應用中,主裝置可為PDA、膝上電腦、移動電話等。從裝置可為GPS接收器、WiFi或藍牙傳輸器、調制解調器、以太傳輸器、條碼掃瞄器、IrDA傳輸器、FM收音機調諧器、TV調諧器、RFID讀取器、數碼相機、大容量存儲裝置(例如硬盤驅動)等。主裝置具有處理器(例如CPU)和用于存儲程序代碼和其它數據的存儲器(memory),存儲器例如為隨機存取存儲器(RandomAccessMemory,RAM)、只讀存儲器(Read-OnlyMemory,ROM)、大容量存儲裝置(例如硬盤驅動)等。在多種應用中,從裝置與外部裝置通信或者自外部裝置接收信號,外部裝置例如為GPS衛星、另一Wi-Fi或藍牙裝置、網絡(network)等,其中所述數據傳輸使用與外部裝置相容的通信協議或數據格式。在一種實施方式中,從裝置的一種組成要素為SD卡。換句話說,從裝置包括連接器(connector),所述連接器具有SD卡槽可接受的物理形狀(physicalshape)與引腳結構(pinconfiguration)。在下文描述的一個實例中,從裝置運作為通信傳輸器,以協助主裝置101與外部裝置(未畫出)之間的數據通信。從裝置103包括合并電路(mergingcircuit)111、控制電路112、緩沖器池(bufferpool)114(也可以被稱為緩沖器)以及接口電路(interfacecircuit)116。從裝置103的與本發明無關的組件未畫出。緩沖器114用于暫存外部裝置與主裝置101之間傳輸的數據。接口電路116控制與外部裝置的數據傳輸,其中所述數據傳輸使用與外部裝置相容的適當通信協議或數據格式。控制電路112管理緩沖器池114且控制合并電路111。在接收數據交換(transaction)期間(即主裝置通過從裝置自外部裝置接收數據),控制電路112產生頭部和/或尾部,在下文中詳細描述。頭部和/或尾部被輸入至合并電路111。合并電路111按照預定數據格式將緩沖器池中的數據(即自外部裝置接收的數據)與頭部和/或尾部合并以產生合并數據(mergeddata)流,且將合并數據發送至主裝置101。圖2是合并電路111產生且發送至主裝置101的數據流的數據格式的一種實施方式的示意圖。自外部裝置接收的數據通常是基于包(packet-based)的數據。接口電路116自數據包中提取(extract)出數據內容(“純數據(puredata)”)并將純數據放入緩沖器114。在圖2所示的數據結構中,每一SDU數據段22對應于自外部裝置接收的包的數據內容。合并電路111為每一SDU數據段22添加頭部21(“SDUheader”)及尾部23(“SDUtailer”),并將多個SDU數據段與其頭部和尾部合并為數據流。數據流是傳輸至主裝置以響應主裝置的傳輸命令的數據的連續(continuous)的流。圖2的虛線26表示SDIO協議定義的塊邊界(boundaries)。如同許多其它協議,SDIO中主裝置以塊(block)為單位傳輸數據。SDIO在一次數據交換中使用多個塊以存取大量數據;塊大小在從裝置與主裝置之間是可配置的(configurable),其范圍為從IB到2KB。主裝置發出的每一數據傳輸命令設定準備被傳輸的多個塊。如圖2所示,從裝置103的合并電路111產生的數據流中,SDU數據段大小由包大小決定,所以塊邊界與SDU數據段22的邊界無關。SDU數據段可具有不同大小。因此,當主裝置需要進行一次數據交換來接收特定數目的SDIO塊時,這些塊可包括一個或多個SDU、或者包括SDU的一部分。塊邊界(虛線26)可位于數據流的任何位置,例如SDU數據段22內、SDU頭部21內、SDU尾部23內等。在數據流的結尾(end),從裝置可添加填充數據(paddingdata)25,使得數據流的數據總量符合傳輸命令設定的塊數量。從裝置103使用頭部21和/或尾部23來輸送(convey)各種信息至主裝置101。頭部或尾部數據可為任何所需的格式。SDU頭部及尾部的位置并不重要;并不需要位于SDU前或者其后。更一般的,頭部和/或尾部可統稱為數據流的輔助段,而SDU可被稱為數據流的數據段。在上述相關(co-pending)專利申請中,頭部和/或尾部包括關于從裝置的狀態及緩沖器狀況的信息。根據本發明的實施方式,頭部和/或尾部包括有關于數據流的SDU大小的信息,其中主裝置101使用此信息來設置DMA。主裝置101實施SD主控制器標準規格(SDHostcontrollerStandardSpecification)中規定的特性。是通過CPU執行存儲于主裝置的存儲器中的程序代碼來執行。SD主控制器標準規格使得SD主控制器可選擇地使用DMA來進行數據傳輸。定義于SD主控制器標準規格版本I.00的DMA演算法(algorithm)被稱為單操作DMA(SingleOperationDMA,以下簡稱為SDMA);定義于SD規格的A2部分,SD主控制器精簡規格(SDHostControllerSimplifiedSpecification)版本2.00與版本3.O的DMA演算法被稱為高級DMA(AdvancedDMA,以下簡稱為ADMA)(參照版本2.00的I.4與I.13部分)。在ADMA的方案中,在執行ADMA之前,主裝置驅動器可將數據列表編程為描述符表,所述數據傳輸于系統存儲器與SD從裝置之間。這使得ADMA的運作不必中斷(interrupting)主裝置驅動器。圖3a(出自SD主控制器精簡規格,版本2.00的圖1_圖9)是ADMA2的示意圖,其中ADMA2是ADMA兩個版本中的一個。描述符表31由主裝置驅動器在系統存儲器32中創建(create)。每一行描述符(一個可執行單元)包括地址、長度及屬性(attribute)字段。所述屬性設定描述符行的操作,例如數據傳輸(“Tran”)、鏈接等。圖3所示的實例中,當描述符表的第I行的“AddressI,Length1,Tran”被執行時,將引發自從裝置傳輸的一定量的數據作為“DataI”被存儲于系統存儲器。當描述符表的第3行的“Address,-,Link”被執行時,將引發描述符指標(pointer)移向另一地址,所述另一地址包括描述符表的另一行。ADMA部分33的結構包括下列硬件組件SDMA、狀態機(StateMachine),以及寄存器(Register)電路(參照圖3a)。ADMA的鏈接列表特性(linklistfeature)可被用于解包由從裝置接續(concatenate)的包括多個SDU的數據流。鏈接描述符,亦即屬性值為Link的描述符,可鏈接至另一描述符表,所述另一描述符表設定于鏈接描述符的地址字段。例如,圖3的實例中,描述符表的第3行是鏈接描述符。使用鏈接描述符,多個描述符表可被鏈接起來,使得長數據流可被解包。圖3b(出自SD主控制器精簡規格版本2.00的圖1_圖12)是ADMA2的狀態表的示意圖。圖3c(出自SD主控制器精簡規格版本2.00的圖I-圖12)用于解釋每一狀態的操作。四種狀態被定義為取描述符狀態(FetchDescriptorstate)、改變地址狀態(ChangeAddressstate)、傳輸數據狀態(TransferDatastate)以及停止DMA狀態(StopDMAstate)。取描述符狀態下,ADMA2取一個描述符行并在內部寄存器(internalregister)中設定參數,然后進入改變地址狀態。改變地址狀態下,鏈接操作將另一描述符地址下載(load)到ADMA系統地址寄存器。在另一種實施方式中,ADMA系統地址寄存器被增力口(increment)以指向下一描述符行。若描述符的屬性字段的END值未指示終止(End=O),ADMA2進入傳輸數據狀態。傳輸數據狀態下,在系統存儲器與從裝置之間執行一個描述符行的數據傳輸。若數據傳輸繼續(End=0),ADMA2進入取描述符狀態。若數據傳輸完成,ADMA2進入停止DMA狀態。以下情況下ADMA2停留在停止DMA狀態(I)電源重啟(PowerOnreset)或軟件重啟(softwarereset)之后;以及(2)所有描述符數據傳輸完成。當新的ADMA2操作由寫入命令寄存器(writingCommandregister)啟動時,ADMA2進入取描述符狀態。以上描述的ADMA規定在SD主控制器精簡規格版本2.00中且被相關領域的技術人員所熟知。圖4、5是根據本發明的一種實施方式的主裝置自從裝置接收數據的數據傳輸程序的示意圖。圖4是從裝置103執行的過程以及圖5是主裝置101執行的過程。如圖4所示,從裝置103自外部裝置接收數據且將其存儲于緩沖器(步驟S41)。如上所述,自外部裝置接收的數據通常為基于包的數據,以及從裝置103自數據包提取數據內容(“純數據”)且將其作為SDU存入緩沖器。控制電路112獲取緩沖器狀況信息及其它關于從裝置的狀態信息,也獲取有關于SDU大小的信息(步驟S42)。當從裝置自主裝置接收傳輸命令時(步驟S43),此情況下所述傳輸命令是接收數據的命令,控制電路112產生頭部和/或尾部,其中頭部和/或尾部包括SDU大小信息及其它信息(步驟S44)。步驟S42、S43及S44的順序并不重要。然后,合并電路111將多個SDU與頭部及尾部合并以產生數據流(步驟S45)。所述數據流被傳輸至主裝置(步驟S46)。本程序(步驟S41至S46)被重復執行以使自外部裝置接收的其它數據被傳輸至主裝置。應當注意,頭部或尾部中的SDU大小信息并不描述當前數據流中正在被傳輸的SDU大小;而是,SDU大小信息是有關于未被在當前數據流中傳輸但準備(readyto)在后續傳輸的SDU0如下文所述,主裝置使用包括于數據流的頭部/尾部的SDU大小信息來建立DMA以接收后續數據流。在主裝置一側,如圖5所示,主裝置101自從裝置103接收數據流(步驟S51)。如上文所述,數據流包括頭部和/或尾部,其中頭部和/或尾部包括關于準備自從裝置傳輸至主裝置的SDU的大小信息。請再次注意頭部和/或尾部中的大小信息并不是當前數據流的SDU的大小信息。主裝置自頭部和/或尾部中收集(gather)此SDU大小信息(步驟S52)。然后,主裝置可依據所述SDU大小信息來配置主裝置控制器DMA引擎(engine)以傳輸一些準備好的SDU。更特別地,主裝置產生描述符表(descriptortable),通過設定描述符表的每一行的地址,長度與屬性,使得每一行對應于一個準備傳輸的SDU(步驟S53)。描述符行的長度字段(field)是依據上述步驟S52中收集的SDU大小信息來設定的。例如,長度值可為準備的SDU的長度加上頭部的長度與尾部的長度。描述符表被建立后,主裝置101發出讀取命令(readcommand)至從裝置以傳輸多個SDU(步驟S54)。為響應此傳輸命令,從裝置在數據流中傳輸被請求的數據。主裝置執行DMA(例如上文所述的ADMA)以將來自從裝置的數據流解包為單獨的(individual)SDU并將所述SDU存儲于主裝置的系統存儲器中(步驟S54)。通過執行DMA,自從裝置的數據流直接(directly)解包為單獨的SDU,而無需執行存儲器拷貝。請注意圖5所示的過程的流程圖,步驟S51(自從裝置接收數據流的步驟),其自身也可使用DMA操作。步驟S55中,自從裝置接收的數據流的頭部和/或尾部中可包括SDU大小信息,所述SDU大小信息有關于從裝置緩沖器的其它SDU,以及主裝置收集所述SDU大小信息以為后續的數據傳輸準備DMA描述符表。步驟52-55可被重復以自從裝置傳輸后續數據。圖5中描述由主裝置101執行的方法,可被實施為主裝置SD驅動程序(hostSDdriverprogram)。此實施并不需要對主裝置101的硬件結構作出任何修改。此驅動程序配合SD從裝置103完成數據傳輸。在上文所述的方法中,從裝置利用插入至第一數據流的頭部和/或尾部來將數據段大小信息發送至主裝置,從而使能(enable)主裝置為后續的第二數據流建立DMA。更一般地,從裝置與主裝置可使用任何合適的通信方法來通信數據段大小信息,這些方法可以被統稱為帶外通道(outbandchannel)。應可注意,盡管上文是以SDIO主從系統為例進行描述,本發明并不限于SDIO系統,本發明也可以應用于其它主從接口系統。本發明尤其適用于與無固有的流量控制的協議相容的主從系統。在不脫離本發明的思想或范圍的前提下,本領域的技術人員可以對本發明的主從數據傳輸系統和對應的方法做出各種修改與變化。因此,對本發明的等同變化與修改均應涵蓋在權利要求書的范圍內。權利要求1.一種數據傳輸方法,用于主從系統的主裝置,該數據傳輸方法包括自該主從系統的從裝置接收一個或者多個數據流,該數據流包括第一多個數據段和多個輔助段;自該多個輔助段的至少一部分獲取數據段大小信息,該數據段大小信息用于設定存儲于該從裝置的第二多個數據段的大小;產生一個或者多個描述符表,每一個描述符表包括多個描述符,每一個描述符定義該從裝置與該主裝置的系統存儲器之間的數據傳輸,每一該多個描述符用于設定該系統存儲器的地址和準備傳輸的數據的長度,其中該描述符設定的該長度是依據該數據段大小信息;發出傳輸命令至該從裝置,以使得該從裝置以數據流來傳輸該第二多個數據段;根據該描述符表執行直接存儲器存取,以將自該從裝置的該數據流的該第二多個數據段其中之一部分單獨的數據段存儲于該主裝置的該系統存儲器的該設定的地址。2.根據權利要求I所述的方法,其特征在于,該描述符表的每一描述符設定的該長度是依據該第二多個數據段其中之一的大小,以及其中每一描述符的該執行引發該第二多個數據段其中之一將被存儲于該系統存儲器。3.根據權利要求I所述的方法,其特征在于,該描述符表更包括一個或者多個額外描述符,每一額外描述符定義至另一個描述符表的鏈接。4.根據權利要求I所述的方法,其特征在于,該輔助段位于該對應數據段前的頭部或者位于該對應數據段后的尾部。5.根據權利要求I所述的方法,其特征在于,該主從系統使用安全數字輸入輸出接口。6.一種主裝置,用于主從系統中,包括處理器;以及系統存儲器,用于存儲由該處理器執行的數據和程序代碼,該程序代碼用于引發該處理器執行數據傳輸程序,該數據傳輸程序包括自該從裝置接收一個或者多個數據流,該數據流包括第一多個數據段與多個輔助段;自該多個輔助段的至少一部分獲取數據段大小信息,該數據段大小信息用于設定存儲于該從裝置的第二多個數據段的大小;產生一個或者多個描述符表,每一描述符表包括多個描述符,每一描述符用于定義該主裝置的該系統存儲器與該從裝置之間的數據傳輸,每一該多個描述符設定該系統存儲器的地址和準備傳輸的數據的長度,其中該描述符設定的該長度是依據該數據段大小信息;發出傳輸命令至該從裝置,以作為數據流傳輸該第二多個數據段;根據該描述符表執行直接存儲器存取,以將自該從裝置的該數據流的該第二多個數據段其中的一部分單獨的數據段存儲于該主裝置的該系統存儲器的該設定的地址。7.根據權利要求6所述的主裝置,其特征在于,該描述符表的每一描述符設定的該長度是依據該第二多個數據段其中之一的大小,以及其中每一描述符的該執行引發該第二多個數據段其中之一被存儲于該系統存儲器。8.根據權利要求6所述的主裝置,其特征在于,該描述符表更包括一個或者多個額外描述符,每一額外描述符定義至另一個描述符表的鏈接。9.根據權利要求6所述的主裝置,其特征在于,該輔助段是位于該對應數據段前的頭部或者位于該對應數據段后的尾部。10.根據權利要求6所述的主裝置,其特征在于,該主從系統使用安全數字輸入輸出接□。11.一種從裝置,連接至主從系統的主裝置,用于該主裝置與外部裝置之間的數據通信,該從裝置包括緩沖器,用于存儲自該外部裝置接收的數據,該數據包括第一多個數據段和第二多個數據段;控制電路,耦接至該緩沖器,用于獲取數據段大小信息,該數據段大小信息設定該緩沖器內的每一該第二多個數據段大小;以及合并電路,耦接至該緩沖器和該控制電路,用于產生數據流并將該數據流傳輸至該主裝置,以響應自該主裝置的數據傳輸命令,該數據流包括該第一多個數據段和多個輔助段,其中該輔助段包括該數據段大小信息。12.根據權利要求11所述的從裝置,其特征在于,該從裝置更包括接口電路,用于使用預定通信協議控制該從裝置及該外部裝置之間的數據傳輸,其中自該外部裝置接收的該數據包括多個數據包,其中該接口電路自每一數據包提取數據內容且將該提取的數據內容作為該多個數據段其中之一放入該緩沖器。13.根據權利要求11所述的從裝置,其特征在于,該合并電路以基于塊的方式傳輸該數據流至該主裝置。14.根據權利要求11所述的從裝置,其特征在于,該輔助段位于該對應數據段前的頭部或者位于該對應數據段后的尾部。15.根據權利要求11所述的從裝置,其特征在于,該主從系統使用安全數字輸入輸出接口。16.一種方法,實施于主從系統的從裝置,以協助主裝置與外部裝置之間的數據通信,該方法包括將自該外部裝置接收的數據存儲至該從裝置的緩沖器,該數據包括第一多個數據段和第二多個數據段;獲取設定該緩沖器內的每一該第二多個數據段的大小的數據段大小信息;以及產生數據流并將該數據流傳輸至該主裝置,以響應自該主裝置的數據傳輸命令,該數據流包括該第一多個數據段和多個輔助段,其中該輔助段包括該數據段大小信息。17.根據權利要求16所述的方法,其特征在于,該方法更包括使用預定通信協議控制該從裝置與該外部裝置之間的數據傳輸,其中自該外部裝置接收的該數據包括多個數據包,該控制步驟包括自每一數據包提取數據內容以及將該提取的數據內容作為該多個數據段其中之一放入該緩沖器。18.根據權利要求16所述的方法,其特征在于,該傳輸步驟中,該數據流被以基于塊的方式傳輸至該主裝置。19.根據權利要求16所述的方法,其特征在于,該輔助段位于該對應數據段前的頭部或者位于該對應數據段后的尾部。20.根據權利要求16所述的方法,其特征在于,該主從系統使用安全數字輸入輸出接□。全文摘要一種主從數據傳輸系統中,從裝置自外部裝置接收基于包的數據并將包內容作為數據段存儲進緩沖器。從裝置將多個數據段合并入數據流且將其發送至主裝置。主裝置使用直接存儲器存取將自從裝置的數據流解包為單獨數據段,而不需要存儲器拷貝。為使能主裝置建立直接存儲器存取,從裝置通過帶外通道提前將關于數據段大小的信息發送至主裝置,例如通過插入前一數據流的頭部和/或尾部來發送大小信息。主裝置利用數據段大小信息來編程描述符表,使得每一個描述符引發數據流中的一個數據段存儲至主裝置的系統存儲器。文檔編號G06F13/38GK102844748SQ201080066198公開日2012年12月26日申請日期2010年7月30日優先權日2010年5月4日發明者林主民,黃教琪,林建光,許鈺鼎申請人:聯發科技股份有限公司