TWI479326B - 資料傳輸方法、主裝置以及從裝置 - Google Patents
資料傳輸方法、主裝置以及從裝置 Download PDFInfo
- Publication number
- TWI479326B TWI479326B TW100115046A TW100115046A TWI479326B TW I479326 B TWI479326 B TW I479326B TW 100115046 A TW100115046 A TW 100115046A TW 100115046 A TW100115046 A TW 100115046A TW I479326 B TWI479326 B TW I479326B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- slave
- master
- segments
- descriptor
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network interface controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Communication Control (AREA)
Description
本發明有關於資料傳輸方法及對應之裝置,且特別有關於用於主從介面之資料傳輸方法、主裝置以及從裝置。
安全數位輸入輸出(Secure Digital Input Output,以下簡稱為SDIO)係使用安全數位(Secure Digital,以下簡稱為SD)卡而不是快閃記憶體(flash memory)卡作為裝置之組成要素(form factor)之介面。該裝置(SDIO介面之從裝置)可包含全球定位系統(Global Positioning System,GPS)接收器、無線保真(Wi-Fi)或者藍芽(bluetooth)轉接器(adapter)、調變與解調器(modem,modulator-demodulator)、以太轉接器(Ethernet adapter)、條碼掃瞄器(barcode reader),紅外資料協會(IrDA,Infrared Data Association)轉接器、調頻收音機(FM radio)調諧器(tuner)、電視(TV)調諧器、射頻識別(Radio Frequency Identification,RFID)讀取器(reader),數位照相機(digital camera)、大容量儲存媒體(mass storage media)例如硬碟驅動(hard drive)等。支援SDIO之主裝置(SDIO介面之主裝置)可為個人數位助理(personal digital assistant,PDA)、膝上型電腦(laptop computer)、手機(“智慧型手機(smart phone)”)等。
於先前技術之使用SDIO介面之主從系統(host-slave system)中,主裝置控制資料傳輸,從裝置僅僅根據主裝
置之請求來移動(move)資料。從裝置不能發起(initiate)資料傳輸。資料傳輸中,主裝置之請求發送與從裝置之請求接收之間有一時間延遲(time delay),類似地,從裝置之響應發送(response sending)與主裝置之響應接收之間亦有一時間延遲。此延遲被稱為命令間延遲(inter-command delay)。因為從裝置必須等待主裝置來請求資料,故與請求命令相關之命令間延遲引發資料傳輸之延遲。命令間延遲可多達幾百毫秒(microsecond)。
有鑑於此,本發明特提供以下技術方案:本發明之一實施例提供一種資料傳輸方法,用於一主從系統之主裝置,所述資料傳輸方法包含:自從裝置接收一個或者多個資料串流,該資料串流包含第一多個資料區段及多個輔助區段;自該多個輔助區段之至少一部分獲取資料區段大小資訊,該資料區段大小資訊用於設定儲存於該從裝置之第二多個資料區段之大小;產生一個或者多個描述符表,描述符表包含多個描述符,每一描述符定義從裝置與主裝置之系統記憶體之間之資料傳輸,每一該多個描述符設定該系統記憶體之位址及準備傳輸之資料之長度,其中該描述符依據該資料區段大小資訊設定該長度;發出傳輸命令至該從裝置以作為資料串流傳輸該第二多個資料區段;根據該描述符表執行直接記憶體存取,以將自從裝置之資料串流之第二多個資料區段其中之一部分單獨的資料區段儲存於主裝置之系統記憶體之所述已設定之位
址。
本發明之另一實施例提供一種主從系統中之主裝置,包含:處理器;以及系統記憶體,用於儲存由處理器執行之資料及程式碼,所述程式碼用於引發處理器執行一資料傳輸程式,資料傳輸程式包含:自從裝置接收一個或者多個資料串流,所述資料串流包含第一多個資料區段及多個輔助區段;自多個輔助區段之至少一部分獲取資料區段大小資訊,資料區段大小資訊用於設定儲存於從裝置之第二多個資料區段之大小;產生一個或者多個描述符表,所述描述符表包含多個描述符,每一描述符用於定義主裝置之系統記憶體與從裝置之間之資料傳輸,該多個描述符之每一者設定該系統記憶體之一位址及準備傳輸之資料之長度,其中描述符設定之長度係依據資料區段大小資訊;發出傳輸命令至從裝置,以作為資料串流傳輸第二多個資料區段;根據描述符表執行直接記憶體存取,以將自從裝置之資料串流之第二多個資料區段其中之一部分單獨的資料區段儲存於主裝置之系統記憶體之已設定之位址。
本發明之另一實施例提供一種從裝置,連接至主從系統之主裝置,從裝置用於主裝置與外部裝置之間之資料通訊,從裝置包含:緩衝器,用於儲存自外部裝置接收之資料,所述資料包含第一多個資料區段及第二多個資料區段;控制電路,耦接至緩衝器,用於獲取資料區段大小資訊,資料區段大小資訊用於設定緩衝器內之第二多個資料區段之每一者之大小;以及合併電路,耦接至緩衝器及控制電路,用於產生資料串流並將資料串流傳輸至主裝置,
以響應自主裝置之資料傳輸命令,所述資料串流包含第一多個資料區段及多個輔助區段,其中輔助區段包含資料區段大小資訊。
本發明之另一實施例提供一種資料傳輸方法,實施於主從系統之從裝置,以協助主裝置及外部裝置之間之資料通訊,所述方法包含:將自外部裝置接收之資料儲存至從裝置之緩衝器,所述資料包含第一多個資料區段及第二多個資料區段;獲取資料區段大小資訊,其中資料區段大小資訊用於設定緩衝器內之第二多個資料區段之每一者之大小;以及產生一資料串流並將資料串流傳輸至主裝置,以響應自主裝置之資料傳輸命令,資料串流包含第一多個資料區段及多個輔助區段,其中輔助區段包含資料區段大小資訊。
以上所述之資料傳輸方法、主裝置以及從裝置,主裝置可利用直接記憶體存取來解封包自從裝置接收之資料串流,而不需要記憶體拷貝。
於說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。於通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。
另外,「耦接」一詞在此係包括任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或透過其他裝置或連接手段間接地電氣連接至該第二裝置。
先前技術中解決上述問題的一種常用的解決方案是申請號為US 12/339,072、公開號為US 2009/0259786的美國專利申請,所述美國專利申請中描述了一種使用SDIO介面之主從系統,其中從裝置用於協助主裝置與一外部裝置之間之資料通訊。於此主從系統中,從裝置自外部裝置接收資料封包並將封包合併為資料串流以傳輸至主裝置。每一資料串流包含多個被稱為服務資料單元(Service Data Unit,以下簡稱為SDU)之資料區段(data segment),其中每一SDU對應於自外部裝置接收之封包之資料內容(data content)。從裝置亦為向主裝置傳輸之資料串流***頭部(header)及/或尾部(tailer),頭部及/或尾部包含有關於從裝置之狀態(status)及緩衝器狀況(condition)之資訊。於主裝置一側,主裝置自頭部及/或尾部獲取從裝置之緩衝器狀況資訊。利用此資訊,主裝置確定發送至從裝置或者自從裝置接收之資料量,並據此發出傳輸命令至從裝置。此方案可顯著減少命令間延遲。
為獲得更高的性能,本發明之實施例提供一種進一步改進之主從系統,其中主裝置利用直接記憶體存取(Direct Memory Access,以下簡稱為DMA)技術來以一種高效率的方式解封包自從裝置接收之資料串流。更特別地,當從裝置傳輸包含多個SDU之資料串流至主裝置時,從裝置在
所述資料串流中***頭部及/或尾部,其中頭部及/或尾部包含有關於準備傳輸至主裝置之SDU之資料大小資訊。主裝置利用資料大小資訊使用DMA建立後續資料傳輸,使得當主裝置接收所述資料串流後,主裝置可將自從裝置接收之資料串流直接解封包(unpack)為單獨的封包,而無需執行記憶體拷貝(copy)。
而先前技術之裝置並不實施本發明中描述之DMA技術,先前技術之裝置中,整個(entire)資料串流首先被接收進主裝置之緩衝記憶體(buffer memory)中,然後緩衝的資料被逐封包(packet-by-packet)的拷貝出來,以將資料串流解封包為用於進一步處理之單獨的封包。此過程被稱為記憶體拷貝。記憶體拷貝需要被分配相對較大的緩衝器區域來暫存(temporarily holding)資料串流。此外,記憶體拷貝更需要主裝置CPU的額外工作來將資料自資料所在之緩衝器拷貝到儲存單獨的封包之緩衝器。本發明中使用DMA技術,當資料串流被自從裝置接收時,就將資料串流解封包為多個封包,而不需要執行記憶體拷貝。下文參考第1-5圖來詳細描述本發明之實施例。
第1圖係根據本發明之一實施例之資料傳輸系統100之方塊圖。資料傳輸系統100包含以主從關係相互耦接之主裝置(host/master device)101及從裝置103。於實際應用中,主裝置可為PDA、膝上型電腦、行動電話等。從裝置可為GPS接收器、Wi-Fi或藍芽轉接器、調變與解調器、以太轉接器、條碼掃瞄器、IrDA轉接器、FM收音機調諧器、TV調諧器、RFID讀取器、數位照相機、大容量儲存
裝置(例如硬碟驅動)等。主裝置具有處理器(例如CPU)及用於儲存程式碼及其他資料之記憶體(memory),記憶體例如為隨機存取記憶體(RAM)、唯讀記憶體(ROM)、大容量儲存裝置(例如硬碟驅動)等。在多種應用中,從裝置與外部裝置通訊或者自外部裝置接收訊號,外部裝置例如為GPS衛星、另一Wi-Fi或藍芽裝置、網路(network)等,其中所述資料傳輸使用與外部裝置相容之通訊協定或資料格式。
於一實施例中,從裝置之一種組成要素為SD卡。換言之,從裝置包含一連接器(connector),該連接器具有SD卡槽可接受之實體形狀(physical shape)及針腳結構(pin configuration)。於下文描述之一實例中,從裝置運作為通訊轉接器,以協助主裝置101與外部裝置(未繪示)之間之資料通訊。
從裝置103包含合併電路(merging circuit)111、控制電路112、緩衝器池(buffer pool)114(亦可被簡稱為緩衝器)以及介面電路(interface circuit)116。從裝置103之與本發明無關之組件未繪示。緩衝器池114用於暫存外部裝置與主裝置101之間傳輸之資料。介面電路116控制與外部裝置之資料傳輸,其中所述資料傳輸使用與外部裝置相容之適當通訊協定或資料格式。
控制電路112管理緩衝器池114且控制合併電路111。於接收資料交換(transaction)期間(亦即,主裝置經由從裝置自外部裝置接收資料),控制電路112產生頭部及/或尾部,其於下文詳細描述。頭部及/或尾部被輸入至
合併電路111。合併電路111按照預定資料格式將緩衝器池中之資料(亦即自外部裝置接收之資料)與頭部及/或尾部合併以產生合併資料(merged data)串流,且將合併資料發送至主裝置101。
第2圖係合併電路111產生且發送至主裝置101之資料串流之資料格式之一實施例之示意圖。自外部裝置接收之資料通常係基於封包(packet-based)之資料。介面電路116自資料封包中提取(extract)出資料內容(“純資料(pure data)”)並將純資料放入緩衝器池114。於第2圖所示之資料結構中,每一SDU資料區段22對應於自外部裝置接收之一封包之資料內容。合併電路111為每一SDU資料區段22添加頭部21(“SDU header”)及尾部23(“SDU tailer”),並將多個SDU資料區段及其頭部及尾部合併為資料串流。資料串流係傳輸至主裝置以響應主裝置之一傳輸命令之資料之連續(continuous)串流。
第2圖之虛線26指示SDIO協定定義之區塊邊界(boundaries)。如同許多其他協定,SDIO中主裝置以區塊(block)為單位傳輸資料。SDIO在一次資料交換中使用多個區塊以存取大量資料;區塊大小在從裝置與主裝置之間係可配置的(configurable),其範圍為自1B至2KB。主裝置發出之每一資料傳輸命令設定準備被傳輸之多個區塊。如第2圖所示,從裝置103之合併電路111產生之資料串流中,由於SDU資料區段大小由封包大小決定,故區塊邊界與SDU資料區段22之邊界無關。SDU資料區段可具有不同大小。因此,當主裝置需要進行一次資料交換來
接收特定數目之SDIO區塊時,這些區塊可包含一個或多個SDU、或者包含SDU之一部分。區塊邊界(虛線26)可位於資料串流之任一位置,例如SDU資料區段22內、SDU頭部21內、SDU尾部23內等。於資料串流之結尾(end),從裝置可添加填充資料(padding data)25,使得資料串流之資料總量符合傳輸命令設定之區塊數量。
從裝置103使用頭部21及/或尾部23以輸送(convey)各種資訊至主裝置101。頭部或尾部資料可為任一所需之格式。SDU頭部及尾部之位置並不重要;其並不需要位於SDU之前或者之後。更一般的,頭部及/或尾部可統稱為資料串流之輔助區段,而SDU可被稱為資料串流之資料區段。於上述相關(co-pending)專利申請中,頭部及/或尾部包含關於從裝置之狀態及緩衝器狀況之資訊。根據本發明之實施例,頭部及/或尾部包含有關於資料串流之SDU大小之資訊,其中主裝置101使用此資訊來設置DMA。
主裝置101實施SD主控制器標準規格(SD Host controller Standard Specification)中規定之特性。此係藉由CPU執行儲存於主裝置之記憶體中之程式碼來執行。SD主控制器標準規格使得SD主控制器可選擇地使用DMA來進行資料傳輸。定義於SD主控制器標準規格版本1.00之DMA演算法(algorithm)被稱為單操作DMA(Single Operation DMA,以下簡稱為SDMA);定義於SD規格之A2部分,SD主控制器精簡規格(SD Host Controller Simplified Specification)版本2.00及版本3.0之DMA演算法被稱為先進DMA(Advanced DMA,以下簡稱為
ADMA)(參照版本2.00之1.4及1.13部分)。於ADMA之方案中,於執行ADMA之前,主裝置驅動器可將資料之列表程式化為描述符表,所述資料傳輸於系統記憶體與SD從裝置之間。此舉使得ADMA之運作不必中斷(interrupting)主裝置驅動器。
第3A圖(出自SD主控制器精簡規格,版本2.00之第1-9圖)係ADMA2之示意圖,其中ADMA2係ADMA兩個版本其中之一。描述符表31由主裝置驅動器在系統記憶體32中創建(create)。每一列描述符(一個可執行單元)包含位址、長度及屬性(attribute)欄位。所述屬性設定描述符列之操作,例如資料傳輸(“Tran”)、連接等。第3圖所示之實例中,當描述符表之第1列之“Address 1,Length 1,Tran”被執行時,將引發自從裝置傳輸之一定量之資料作為“Data 1”被儲存於系統記憶體。當描述符表之第3列之“Address,-,Link”被執行時,將引發描述符指標(pointer)移向另一位址,所述另一位址包含描述符表之另一列。ADMA部分33之結構包含下列硬體組件(hardware components):SDMA、狀態機(State Machine),及暫存器(Register)電路(參照第3A圖)。
ADMA之連接列表特性(link list feature)可被用於解封包由從裝置續接(concatenated)之包含多個SDU之資料串流。連接描述符,亦即屬性值為Link之描述符,可連接至另一描述符表,所述另一描述符表設定於連接描述符之位址欄位。例如,第3圖之實例中,描述符表之第3列係連接描述符。使用連接描述符,多個描述符表可被連
接起來,使得長資料串流可被解封包。
第3B圖(出自SD主控制器精簡規格版本2.00之第1-12圖)係ADMA2之狀態表之示意圖。第3C圖(出自SD主控制器精簡規格版本2.00之第1-12圖)解釋ADMA2之每一狀態之操作之示意圖。四種狀態被定義為:取描述符狀態(Fetch Descriptor state)201、改變位址狀態(Change Address state)202、傳輸資料狀態(Transfer Data state)203、及停止DMA狀態(Stop DMA state)204。取描述符狀態下,ADMA2取一描述符列並於內部暫存器(internal register)中設定參數,然後進入改變位址狀態。改變位址狀態下,連接操作將另一描述符位址下載(load)至ADMA系統位址暫存器。於另一實施例中,ADMA系統位址暫存器被增加(increment)以指向下一描述符列。若描述符之屬性欄位之END值未指示一終止(End=0),ADMA2進入傳輸資料狀態。傳輸資料狀態下,於系統記憶體與從裝置之間執行一描述符列之資料傳輸。若資料傳輸繼續(End=0),ADMA2進入取描述符狀態。若資料傳輸完成,ADMA2進入停止DMA狀態。以下情況下ADMA2停留在停止DMA狀態:(1)電源重啟(Power On reset)或軟體重啟(software reset)之後;以及(2)所有描述符資料傳輸完成。當新的ADMA2操作由寫入命令暫存器(writing Command register)啟動時,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大小資訊係有關於未被在當前資料串流中傳輸但準備(ready to)於後續傳輸之SDU。如下文所述,主裝置使用包含於資料串流之頭部/尾部之SDU大小資訊來建立DMA以接收後續資料串流。
於主裝置一側,如第5圖所示,主裝置101自從裝置103接收資料串流(步驟S51)。如上文所述,資料串流包
含頭部及/或尾部,其中頭部及/或尾部包含關於準備自從裝置傳輸至主裝置之SDU之大小資訊。請再次注意頭部及/或尾部中之大小資訊並不是當前資料串流之SDU之大小資訊。主裝置自頭部及/或尾部中收集(gather)此SDU大小資訊(步驟S52)。然後,主裝置可依據所述SDU大小資訊來配置主裝置控制器DMA引擎(engine)以傳輸一些準備好之SDU。更具體地,主裝置產生一描述符表(descriptor table),藉由設定描述符表之每一列之位址,長度及屬性,使得每一列對應於一準備傳輸之SDU(步驟S53)。描述符列之長度欄位(field)係依據上述步驟S52中收集之SDU大小資訊來設定的。例如,長度值可為一準備好之SDU之長度加上頭部之長度及尾部之長度。描述符表被建立後,主裝置101發出讀取命令(read command)至從裝置以傳輸多個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驅動程式(host SD driver program)。此實施並不需要對主裝置101之硬體結構作出任何修改。此驅動程式可配合SD從裝置103完成資料傳輸。
於上文所述之方法中,從裝置利用***至第一資料串流之頭部及/或尾部來將資料區段大小資訊發送至主裝置,從而使能(enable)主裝置為後續之第二資料串流建立DMA。更一般地,從裝置及主裝置可使用任一合適的通訊方法來通訊資料區段大小資訊,這些方法可以被統稱為特殊通道(outband channel)。
應可注意,儘管上文係以SDIO主從系統為例進行描述,本發明並不限於SDIO系統,本發明亦可應用於其他主從介面系統。本發明尤其適用於與無固有之流量控制之協定相容之主從系統。
於不脫離本發明之精神或範圍之前提下,熟悉此項技藝者可對本發明之主從資料傳輸系統及對應之方法做出各種修飾及變化。因此,對本發明之均等變化與修飾皆應涵蓋於後附之申請專利範圍之範圍之內。
100‧‧‧資料傳輸系統
101‧‧‧主裝置
103‧‧‧從裝置
111‧‧‧合併電路
112‧‧‧控制電路
114‧‧‧緩衝器池
116‧‧‧介面電路
21‧‧‧頭部
22‧‧‧資料區段
23‧‧‧尾部
25‧‧‧填充資料
26‧‧‧虛線
31‧‧‧描述符表
32‧‧‧系統記憶體
33‧‧‧ADMA部分
201‧‧‧取描述符狀態
202‧‧‧改變位址狀態
203‧‧‧傳輸資料狀態
204‧‧‧停止DMA狀態
S41、S42、S43、S44、S45、S46‧‧‧步驟
S51、S52、S53、S54、S55‧‧‧步驟
第1圖係根據本發明之一實施例之主從資料傳輸系統之方塊圖。
第2圖係自從裝置發送至主裝置資料串流之資料格式
之實例之示意圖。
第3A圖係根據SD主控制器精簡規格版本2.00之ADMA2之示意圖。
第3B圖係ADMA2之狀態表之示意圖。
第3C圖係解釋ADMA2之每一狀態之操作之示意圖。
第4圖係從裝置執行之程式之流程圖。
第5圖係主裝置執行之程式之流程圖。
S51、S52、S53、S54、S55‧‧‧步驟
Claims (20)
- 一種資料傳輸方法,用於一主從系統之一主裝置,該資料傳輸方法包含:自該主從系統之一從裝置接收一個或者多個資料串流,該資料串流包含一第一多個資料區段及多個輔助區段;自該多個輔助區段之至少一部分獲取一資料區段大小資訊,該資料區段大小資訊用於設定儲存於該從裝置之一第二多個資料區段之大小,其中,該第二多個資料區段不同於該第一多個資料區段;產生一個或者多個描述符表,每一描述符表包含多個描述符,每一描述符定義該從裝置與該主裝置之一系統記憶體之間之一資料傳輸,每一該多個描述符用於設定該系統記憶體之一位址及準備傳輸之資料之一長度,其中該描述符設定之該長度係依據該資料區段大小資訊;發出一傳輸命令至該從裝置,以使得該從裝置以一資料串流來傳輸該第二多個資料區段;根據該描述符表執行一直接記憶體存取,以將自該從裝置之該資料串流之該第二多個資料區段其中之一部分單獨的資料區段儲存於該主裝置之該系統記憶體之該設定之位址。
- 如申請專利範圍第1項所述之資料傳輸方法,其中該描述符表之每一描述符設定之該長度係依據該第二多個資料區段其中之一之大小,以及其中每一描述符之執行引發該第二多個資料區段其中之一被儲存於該系統記憶體。
- 如申請專利範圍第1項所述之資料傳輸方法,其中 該描述符表更包含一個或者多個額外描述符,每一額外描述符定義至另一描述符表之一連接。
- 如申請專利範圍第1項所述之資料傳輸方法,其中該輔助區段係位於該對應資料區段前之一頭部或者位於該對應資料區段後之一尾部。
- 如申請專利範圍第1項所述之資料傳輸方法,其中該主從系統使用一安全數位輸入輸出介面。
- 一種主裝置,用於一主從系統中,包含:一處理器;以及一系統記憶體,用於儲存由該處理器執行之資料及程式碼,該程式碼用於引發該處理器執行一資料傳輸程式,該資料傳輸程式包含:自該從裝置接收一個或者多個資料串流,該資料串流包含一第一多個資料區段及多個輔助區段;自該多個輔助區段之至少一部分獲取一資料區段大小資訊,該資料區段大小資訊用於設定儲存於該從裝置之一第二多個資料區段之大小,其中,該第二多個資料區段不同於該第一多個資料區段;產生一個或者多個描述符表,每一描述符表包含多個描述符,每一描述符用於定義該主裝置之該系統記憶體與該從裝置之間之一資料傳輸,每一該多個描述符設定該系統記憶體之一位址及準備傳輸之資料之一長度,其中該描述符設定之該長度係依據該資料區段大小資訊;發出一傳輸命令至該從裝置,以作為一資料串流傳輸該第二多個資料區段; 根據該描述符表執行一直接記憶體存取,以將自該從裝置之該資料串流之該第二多個資料區段其中之一部分單獨的資料區段儲存於該主裝置之該系統記憶體之該設定之位址。
- 如申請專利範圍第6項所述之主裝置,其中該描述符表之每一描述符設定之該長度係依據該第二多個資料區段其中之一之大小,以及其中每一描述符之執行引發該第二多個資料區段其中之一被儲存於該系統記憶體。
- 如申請專利範圍第6項所述之主裝置,其中該描述符表更包含一個或者多個額外描述符,每一額外描述符定義至另一描述符表之一連接。
- 如申請專利範圍第6項所述之主裝置,其中該輔助區段係位於該對應資料區段前之一頭部或者位於該對應資料區段後之一尾部。
- 如申請專利範圍第6項所述之主裝置,其中該主從系統使用一安全數位輸入輸出介面。
- 一種從裝置,連接至一主從系統之一主裝置,用於該主裝置與一外部裝置之間之資料通訊,該從裝置包含:一緩衝器,用於儲存自該外部裝置接收之一資料,該資料包含一第一多個資料區段及一第二多個資料區段;一控制電路,耦接至該緩衝器,用於獲取一資料區段大小資訊,該資料區段大小資訊設定該緩衝器內之每一該第二多個資料區段大小,其中,該第二多個資料區段不同於該第一多個資料區段;以及一合併電路,耦接至該緩衝器及該控制電路,用於產 生一資料串流並將該資料串流傳輸至該主裝置,以響應自該主裝置之一資料傳輸命令,該資料串流包含該第一多個資料區段及多個輔助區段,其中該輔助區段包含該資料區段大小資訊。
- 如申請專利範圍第11項所述之從裝置,更包含一介面電路,用於使用一預定通訊協定控制該從裝置及該外部裝置之間之資料傳輸,其中自該外部裝置接收之該資料包含多個資料封包,其中該介面電路自每一資料封包提取資料內容且將該提取之資料內容作為該多個資料區段其中之一放入該緩衝器。
- 如申請專利範圍第11項所述之從裝置,其中該合併電路以一基於區塊之方式傳輸該資料串流至該主裝置。
- 如申請專利範圍第11項所述之從裝置,其中該輔助區段位於該對應資料區段前之一頭部或者位於該對應資料區段後之一尾部。
- 如申請專利範圍第11項所述之從裝置,其中該主從系統使用一安全數位輸入輸出介面。
- 一種資料傳輸方法,實施於一主從系統之一從裝置,以協助該主裝置與一外部裝置之間之資料通訊,該方法包含:將自該外部裝置接收之一資料儲存至該從裝置之一緩衝器,該資料包含一第一多個資料區段及一第二多個資料區段,其中,該第二多個資料區段不同於該第一多個資料區段;獲取設定該緩衝器內之每一該第二多個資料區段之 大小之一資料區段大小資訊;以及產生一資料串流並將該資料串流傳輸至該主裝置,以響應自該主裝置之一資料傳輸命令,該資料串流包含該第一多個資料區段及多個輔助區段,其中該輔助區段包含該資料區段大小資訊。
- 如申請專利範圍第16項所述之資料傳輸方法,更包含:使用一預定通訊協定控制該從裝置與該外部裝置之間之資料傳輸,其中自該外部裝置接收之該資料包含多個資料封包,該控制步驟包含自每一資料封包提取資料內容及將該提取之資料內容作為該多個資料區段其中之一放入該緩衝器。
- 如申請專利範圍第16項所述之資料傳輸方法,其中該傳輸步驟中,該資料串流被以一基於區塊之方式傳輸至該主裝置。
- 如申請專利範圍第16項所述之資料傳輸方法,其中該輔助區段位於該對應資料區段前之一頭部或者位於該對應資料區段後之一尾部。
- 如申請專利範圍第16項所述之資料傳輸方法,其中該主從系統使用一安全數位輸入輸出介面。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/773,660 US8626963B2 (en) | 2010-05-04 | 2010-05-04 | Packet based data transfer system and method for host-slave interface |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201202947A TW201202947A (en) | 2012-01-16 |
TWI479326B true TWI479326B (zh) | 2015-04-01 |
Family
ID=44902712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100115046A TWI479326B (zh) | 2010-05-04 | 2011-04-29 | 資料傳輸方法、主裝置以及從裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8626963B2 (zh) |
CN (1) | CN102844748B (zh) |
TW (1) | TWI479326B (zh) |
WO (1) | WO2011137608A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI465905B (zh) | 2010-09-22 | 2014-12-21 | Toshiba Kk | 記憶體系統、主機控制器、及直接記憶體存取之控制方法 |
BR112014005577A2 (pt) * | 2011-09-27 | 2017-03-21 | Thomson Licensing | método e aparelho para a duplicação de canais de modulador qam |
US9577898B1 (en) * | 2013-12-31 | 2017-02-21 | Narus, Inc. | Identifying IP traffic from multiple hosts behind a network address translation device |
CN105847190B (zh) * | 2016-03-17 | 2019-09-20 | 青岛海信电器股份有限公司 | 一种数据传输方法及处理器 |
US10268448B2 (en) * | 2016-05-06 | 2019-04-23 | Texas Instruments Incorporated | Data flow control for multi-chip-select |
CN108462679B (zh) * | 2017-02-21 | 2021-06-04 | 杭州海康威视数字技术股份有限公司 | 数据传输方法及装置 |
US11243714B2 (en) * | 2019-06-11 | 2022-02-08 | Samsung Electronics Co., Ltd. | Efficient data movement method for in storage computation |
CN115242860B (zh) * | 2022-07-25 | 2024-02-02 | 苏州欧普照明有限公司 | 一种并发数据上报方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
US20090327533A1 (en) * | 2008-06-25 | 2009-12-31 | Subba Reddy Kallam | Concatenating Secure Digital Input Output (SDIO) Interface |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01293431A (ja) | 1988-05-23 | 1989-11-27 | Toshiba Corp | メモリアクセス方式 |
US5014265A (en) | 1989-11-30 | 1991-05-07 | At&T Bell Laboratories | Method and apparatus for congestion control in a data network |
US6031867A (en) | 1993-07-02 | 2000-02-29 | Multi-Tech Systems, Inc. | Modem with firmware upgrade feature |
US5797033A (en) | 1995-03-31 | 1998-08-18 | Cirrus Logic, Inc. | Direct memory access for storing and retrieving data based on packet size |
US5638535A (en) | 1995-05-15 | 1997-06-10 | Nvidia Corporation | Method and apparatus for providing flow control with lying for input/output operations in a computer system |
US6201813B1 (en) | 1997-06-30 | 2001-03-13 | Cisco Technology, Inc. | Method and apparatus for using ATM queues for segmentation and reassembly of data frames |
US6714553B1 (en) * | 1998-04-15 | 2004-03-30 | Top Layer Networks, Inc. | System and process for flexible queuing of data packets in network switching |
US6438140B1 (en) * | 1998-11-19 | 2002-08-20 | Diva Systems Corporation | Data structure, method and apparatus providing efficient retrieval of data from a segmented information stream |
TW437223B (en) | 1998-12-21 | 2001-05-28 | D Link Corp | A circuit and method capable of automatically detecting and switching for transmitting and receiving data on network twist-pair wire |
US6609167B1 (en) | 1999-03-17 | 2003-08-19 | Adaptec, Inc. | Host and device serial communication protocols and communication packet formats |
US6662280B1 (en) | 1999-11-10 | 2003-12-09 | Advanced Micro Devices, Inc. | Store buffer which forwards data based on index and optional way match |
KR100608043B1 (ko) * | 1999-12-31 | 2006-08-02 | 삼성전자주식회사 | 오디오 데이터를 비디오 데이터와 연결해서 재생 가능한데이터 구조로 기록된 기록 매체, 기록/재생 방법 및 장치 |
US7082569B2 (en) * | 2001-01-17 | 2006-07-25 | Outlooksoft Corporation | Systems and methods providing dynamic spreadsheet functionality |
US7035948B1 (en) | 2001-03-19 | 2006-04-25 | Transdimension, Inc. | System and method for USB controllers |
US7012913B2 (en) | 2003-11-25 | 2006-03-14 | Nokia Corporation | Apparatus, and associated method, for facilitating communication of unfragmented packet-formatted data in a radio communication system |
JP5008270B2 (ja) * | 2005-04-13 | 2012-08-22 | ソニー株式会社 | 情報処理装置、および情報処理方法 |
US20070118677A1 (en) * | 2005-05-13 | 2007-05-24 | Freescale Semiconductor Incorporated | Packet switch having a crossbar switch that connects multiport receiving and transmitting elements |
US7496699B2 (en) * | 2005-06-17 | 2009-02-24 | Level 5 Networks, Inc. | DMA descriptor queue read and cache write pointer arrangement |
CN1713164A (zh) | 2005-07-21 | 2005-12-28 | 复旦大学 | 可自主处理多事务传输要求的dma控制器及数据传输方法 |
US8438365B2 (en) * | 2006-10-06 | 2013-05-07 | Calos Fund Limited Liability Company | Efficient data loading in a data-parallel processor |
US7620749B2 (en) * | 2007-01-10 | 2009-11-17 | International Business Machines Corporation | Descriptor prefetch mechanism for high latency and out of order DMA device |
CN101335667B (zh) | 2007-06-26 | 2010-12-29 | 中兴通讯股份有限公司 | 数据传输方法 |
TWI353145B (en) * | 2007-12-26 | 2011-11-21 | Ralink Technology Corp | Method for receiving data with sdio interface and |
JP4672742B2 (ja) * | 2008-02-27 | 2011-04-20 | 株式会社東芝 | メモリコントローラおよびメモリシステム |
US20090259786A1 (en) * | 2008-04-10 | 2009-10-15 | Chu-Ming Lin | Data transfer system and method for host-slave interface with automatic status report |
JP2012133405A (ja) * | 2009-07-24 | 2012-07-12 | Hitachi Ltd | ストレージ装置及びそのデータ転送制御方法 |
-
2010
- 2010-05-04 US US12/773,660 patent/US8626963B2/en active Active
- 2010-07-30 WO PCT/CN2010/075586 patent/WO2011137608A1/en active Application Filing
- 2010-07-30 CN CN201080066198.3A patent/CN102844748B/zh active Active
-
2011
- 2011-04-29 TW TW100115046A patent/TWI479326B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
US20090327533A1 (en) * | 2008-06-25 | 2009-12-31 | Subba Reddy Kallam | Concatenating Secure Digital Input Output (SDIO) Interface |
Also Published As
Publication number | Publication date |
---|---|
WO2011137608A1 (en) | 2011-11-10 |
CN102844748B (zh) | 2015-09-16 |
CN102844748A (zh) | 2012-12-26 |
US8626963B2 (en) | 2014-01-07 |
TW201202947A (en) | 2012-01-16 |
US20110276730A1 (en) | 2011-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI479326B (zh) | 資料傳輸方法、主裝置以及從裝置 | |
CN107203484B (zh) | 一种基于FPGA的PCIe与SRIO总线桥接*** | |
EP2530599B1 (en) | Method and mobile terminal for realizing audio transmission | |
JP5551193B2 (ja) | エンハンスドワイヤレスusbプロトコル及びハブ | |
US7835371B2 (en) | Method and apparatus to provide data streaming over a network connection in a wireless MAC processor | |
EP2566288B1 (en) | Wireless internet access module, communication method for host and wireless internet access module | |
US8965996B2 (en) | Communication apparatus, information processing apparatus, and method for controlling communication apparatus | |
KR102367359B1 (ko) | 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법 | |
JP2007088775A (ja) | 無線通信システム、無線通信装置及び方法 | |
US20160077986A1 (en) | Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts | |
WO2014134947A1 (zh) | 控制信息的收发装置和方法 | |
EP3804244B1 (en) | Systems and methods for transport layer processing of server message block protocol messages | |
CN103838694B (zh) | 一种fpga高速读取usb接口数据的方法 | |
TWI235921B (en) | System and method for effectively performing physical direct memory access operations | |
EP3955524A1 (en) | Method for managing remote storage device by means of management device | |
US20140347986A1 (en) | Wireless communication device, wireless communication method, and wireless communication control program | |
CN204256731U (zh) | 一种fpga高速读取usb设备数据装置 | |
WO2013084392A1 (ja) | 通信装置、通信方法、および通信制御プログラム | |
WO2023097903A1 (zh) | 报文传输方法、装置、电子设备和存储介质 | |
CN116664381B (zh) | Gpu访问cpu扩展内存的方法及图形处理*** | |
JP2019020851A (ja) | デバイス制御装置、デバイス制御方法、およびプログラム | |
WO2020118656A1 (zh) | 基于文件传输协议的数据传输方法、装置和电子设备 | |
TW201409242A (zh) | Usb控制裝置及其控制方法 | |
KR20240099577A (ko) | 프레임 시퀀스 넘버 및 크레디트 정보를 보다 빠르게 전송하는 스토리지 장치 및 그 동작 방법 | |
CN114710347A (zh) | 一种视频帧数据的多模式数据处理***及方法 |