專利名稱:在主裝置以及從裝置之間傳送數據的方法及從裝置的制作方法
技術領域:
本發(fā)明是有關于用于主從式接口 (host-slave interface)的數據存取 系統及其相關方法,特別是有關于從裝置(slave device)不需利用來自 主裝置(host device)的請求而自動傳送信息至主裝置的數據存取系統。
背景技術:
安全數字輸入輸出(Secure Digital Input Output,以下簡稱為SDIO) 是一種接口,其使用用于裝置的安全數字(Secure Digital,以下簡稱為 SD)卡規(guī)格(form factor),而不是閃存卡。此裝置(也就是,SDIO接口 中的從裝置)可包含全球定位系統接收器,無線保真(Wireless Fidelity,以下筒稱為Wi-Fi)或藍牙適配器,調制解調器,以太網絡適 配器(Ethernet adapter),條形碼讀取器(barcode reader),紅外線數據協 議適配器(IrDA adapter),頻率調制調整器(FM radio turner),電視調整 器(TV turner),射頻識別讀取器(RFID reader),數碼相機,大容量儲存 媒介(例如硬盤驅動)等等。支持SDIO的主機(也就是,SDIO接口中的 主裝置)可以是個人數字助理,筆記本電腦,移動電話("智能電話")等 等。
在傳統的使用SDIO接口的主從式系統(host-slave system)中,主
裝置控制數據傳送,而從裝置僅能根據主裝置的請求移動數據。從裝 置不能啟動數據傳送。在數據傳送過程中,主裝置的請求發(fā)送以及從 裝置的請求接收之間具有時間延遲,同樣地,從裝置的響應發(fā)送以及 主裝置的響應接收之間也具有時間延遲。此種情形被稱為命令間延遲 (inter-command delay)。因為從裝置必須等待主裝置請求數據,與請求 命令相關的命令間延遲導致了數據傳送的延遲。命令間延遲可達到數 百微秒。
例如,從裝置具有多個緩沖區(qū)(緩沖池),用以緩沖將要傳送或接 收的數據,且主裝置向從裝置傳送數據之前,需要知道緩沖區(qū)中的可
6用緩沖區(qū)空間。傳統上,主裝置首先發(fā)送請求至從裝置以詢問其有多 少緩沖區(qū)空間是可用的,因此請求以及響應發(fā)送間將存在命令間延遲。
發(fā)明內容
為了減少上述的命令間延遲,本發(fā)明提供了 一種在主裝置以及從 裝置之間傳送數據的方法及從裝置。
本發(fā)明提供了 一種從裝置,用于在主裝置以及數據源裝置之間通
信,所述從裝置適用于所述主裝置,所述從裝置包含 一個或多個緩 沖區(qū),用于儲存接收自所述數據源裝置的數據;緩沖區(qū)管理電路,耦 接于所述緩沖區(qū),用于獲取緩沖區(qū)狀況信息,其中,所述緩沖區(qū)狀況 信息指示所述緩沖區(qū)中的一個或多個的可用空間數量,以及接收自所 述數據源裝置并儲存在所述緩沖區(qū)中的一個或多個的數據數量;以及 合并電路,耦接于所述緩沖區(qū)以及所述緩沖區(qū)管理電路,用于產生數 據流并傳送所述數據流至所述主裝置,所述數據流包含多個主數據段 以及與所述主數據段相關的多個輔助數據段,其中,所述主數據段包 含接收自所述數據源裝置并儲存于所述緩沖區(qū)的數據,以及所述輔助 數據段中的每一個包含所述緩沖區(qū)狀況信息。
本發(fā)明提供了 一種在主裝置以及從裝置之間傳送數據的方法,用 于主從式數據傳送系統,并實現于所述從裝置中,所述從裝置與數據 源裝置進行數據通信,所述方法包含(a)從所述數據源裝置接收數據; (b)獲取狀況信息,所述狀況信息指示存儲器的可用空間數量以及接收 自所述數據源裝置并儲存于所述存儲器的數據數量;(c)從所述主裝置 接收傳送命令;(d)響應所述傳送命令,產生數據流,所述數據流包含 多個主數據段以及與所述主數據段相關的多個輔助數據段,其中,所 述主數據段包含接收至所述數據源裝置的數據,且其中所述輔助數據 段中的每一個包含所述狀況信息;以及(e)傳送所述數據流至所述主裝 置。
本發(fā)明提供了另一種從裝置,用于與主裝置通信數據,從裝置包 含提取電路,用于從所述主裝置接收數據流,且將所述數據流分為 多個以封包為基礎的數據;處理單元,用于從所述數據流中提取標頭 信息; 一個或多個緩沖區(qū),用于儲存接收自所述提取電路的所述以封包為基礎的數據,其中,所述緩沖區(qū)包括一個或多個傳送緩沖區(qū),且
所述緩沖區(qū)中的每一個具有指定的優(yōu)先級;以及緩沖區(qū)管理電路,耦
接于所述緩沖區(qū),用于根據所述標頭信息控制所述緩沖區(qū)中每一個的 使用,且將來自所述提取電路的所述以封包為基礎的數據放置在所述 緩沖池中的合適的緩沖區(qū)內,其中,所述標頭信息包含關于所述以封 包為基礎的數據放置在哪 一 個緩沖區(qū)的指示。
本發(fā)明另提供了 一種從裝置,用于在主裝置以及數據源裝置之間
通信,所述從裝置適用于所述主裝置,所述從裝置包含連接器,具 有安全數字輸入輸出接口或通用串行總線接口 ,用于連接所述主裝置; 一個或多個緩沖區(qū),用于儲存接收自所述數據源裝置的數據,并且儲 存接收自所述主裝置的數據;通信接口,用于與所迷數據源裝置通信 數據,其中,接收自所述數據源裝置的所述數據包含多個數據封包, 其中,所述緩沖區(qū)中的每一個儲存所述數據封包中的至少一個;以及 合并電路,耦接于所述緩沖區(qū),通過合并所述數據封包中的每一個產 生數據流,且傳送所述數據流至所述主裝置,所述數據流包含多個數 據段,其中,所述數據流為連續(xù)串流。
本發(fā)明提供的在主裝置以及從裝置之間傳送數據的方法及從裝 置,通過在數據流的輔助數據段中包含緩沖區(qū)狀況信息,減少了主裝 置為獲取相關的信息需要向從裝置發(fā)送的命令的數量,減少了命令間 延遲。
圖1為本發(fā)明實施例的數據傳送系統的方框圖。
圖3為本發(fā)明實施例的SDU結尾段的數據格式示意圖。 圖4以及圖5為本發(fā)明實施例的由從裝置執(zhí)行的數據傳送方法的 流程圖。
圖6為本發(fā)明另實施例的數據傳送系統的方框圖。 圖7為本發(fā)明另實施例的數據傳送系統的方框圖。
具體實施方式
圖1為本發(fā)明實施例的數據傳送系統100的方框圖。如圖1所示,
數據傳送系統100包含主裝置101以及從裝置103,主裝置101以 及從裝置103之間為主從式連接關系。在實際應用中,主裝置101可 以是個人數字助理,筆記本電腦,移動電話等,且從裝置103可以是 全球定位系統接收器,Wi-Fi或藍牙適配器,調制解調器,以太網絡 適配器,條形碼讀取器,紅外線數據協議適配器,頻率調制調整器, 電視調整器,射頻識別讀取器,數碼相機,大容量儲存媒介(例如硬盤) 等等。在許多應用中,從裝置使用兼容于數據源/數據目的地裝置的通 信協議或數據格式與數據源/數據目的地裝置通信,或接收來自數據源 /數據目的地裝置的信號,數據源/數據目的地裝置可以是全球定位系 統衛(wèi)星,基頻系統,調制解調器,存儲裝置,閃沖(flush),網絡等等。 在此揭露的內容中,數據源/數據目的地裝置根據上下文有時也被稱為 數據源裝置或數據目的地裝置。
在一特定的實施例中,從裝置具有SD卡規(guī)格。換句話說,從裝 置的連接器的實體形狀以及管腳配置是SD卡插槽所允許的。在以下 描述的實施例中,從裝置為通信適配器,其有助于主裝置101以及數 據源/數據目的地裝置(圖中未顯示)之間的數據通信。
從裝置103包含合并Al是耳又電^各111,處理電^各112,才全測電^各 113,多個緩沖區(qū)(如圖1所示的緩沖池114),緩沖區(qū)管理電路115,接 口電路116。在此揭露的內容中,合并/提取電路111根據上下文有時 也被稱為合并電路或提取電路。緩沖池114暫時儲存在數據源/數據目 的地裝置以及主裝置IOI之間傳送的數據。多個緩沖區(qū)形成多個邏輯 隊列(術語"緩沖區(qū),,以及"隊列,,有時可以互換使用)。在圖1中,標注為 Ql, Q2…的線代表來自緩沖池114中不同緩沖區(qū)(隊列)的數據,雖然 硬件連接可以是單線或多線。接口電路116控制與數據源/數據目的地 裝置之間的數據傳輸,其使用兼容于數據源/數據目的地裝置的通信協 議或數據格式。
緩沖區(qū)管理電路115管理緩沖池114中的緩沖區(qū)。例如,其決定 有多少從數據源/數據目的地裝置接收的數據被儲存在每個緩沖區(qū)中 且準備傳送至主裝置101,決定有多少可用于接收來自主裝置101的 數據的可用空閑緩沖區(qū)空間。檢測電路113收集從裝置103的中斷狀況。系統產生中斷信號以便錯誤控制,例如上溢,下溢等等。中斷
可以是固件中斷或硬件中斷。
在接收交易(transaction)(也就是主裝置101通過從裝置103從數 據源/數據目的地裝置的數據接收)中,處理電路112根據緩沖區(qū)管理 電路115以及4企測電路113的輸出產生標頭(header)及/或結尾H (tailer),以下將進行詳細描述。標頭及/或結尾段被輸出至合并/提取電 路111。合并/提取電路111根據預設數據格式合并接收到的位于緩沖 池114中的數據(來自數據源/數據目的地裝置)以及標頭及/或結尾段, 以產生合并數據流,以下將進行詳細描述。在一實施例中,合并/提取 電路111包含多任務器,多任務器選擇來自緩沖池114中多個緩沖區(qū) 中的一個的數據。合并/提取電路111傳送合并數據至主裝置101。在 另一實施例中,合并/提取電路111從主裝置接收數據流,且將數據流 分(splitting)為多個以封包為基礎的數據。
在傳送交易(也就是通過從裝置103傳輸來自主裝置101的數據 至數據源/數據目的地裝置)中,合并/提取電路111從主裝置101接收 數據流。數據流包含多個標頭,每個標頭包含數據將被放置在哪一緩 沖區(qū)(隊列)的指示。處理電路112從數據流中提取標頭信息,并將標 頭信息提供給緩沖區(qū)管理電路115。在傳送交易中,從裝置103中的 檢測電路113被去能。換句話說,當從裝置103傳送以封包為基礎的 數據(packet-based data)至數據源/數據目的地裝置時,檢測電路113不 具有功能。在某些實施例的傳送交易中,系統中會省略^r測電路113。 緩沖區(qū)管理電路115根據標頭控制用于不同隊列的緩沖區(qū),以將來自 主裝置101的數據放置到緩沖池114內合適的緩沖區(qū)。接口電路116 根據兼容于數據源/數據目的地裝置的合適的通信協議或數據格式,傳 送來自緩沖池114的數據至數據源/數據目的地裝置。
圖2為本發(fā)明一實施例的用于合并數據的數據格式的示意圖,其 中,合并數據是由合并/提取電路111產生并傳送至主裝置101。從數 據源/數據目的地裝置接收的數據是一般以封包為基礎的數據。接口電 路116從數據封包中提取數據內容("純數據"),并將純數據放置到緩沖 池114。在圖2所示的數據結構中,每一個服務數據單元(Service Data Unit,以下筒稱為SDU)數據段22相應于從數據源/數據目的地裝置接
10收到的一個封包的數據內容。合并/提取電路111為每個SDU數據段 22增加標頭21 ("SDU標頭")以及結尾段23 ("SDU結尾段"),并且將 多個具有標頭21以及結尾段23的SDU數據段合并為數據流。數據流 是一串連續(xù)的數據,其響應來自主裝置101的傳送命令而被傳送至主 裝置101。
需要注意的是,因為區(qū)塊(block)的大小是主裝置以及從裝置之間 最初配置的,SDU的大小是具有標頭以及結尾段信息的封包大小,所 以區(qū)塊邊界(blockboundary)與SDU的大小是不相關的。例如,主裝置 可能最初需要接收IO個區(qū)塊的交易,而每個區(qū)塊包含100字節(jié);但是 每個SDU的大小是變化的(例如SDU的大小可以是20字節(jié),650字 節(jié),1K字節(jié),或其它)。因此,從裝置傳送數據流的10個區(qū)塊。這些 區(qū)塊可以包含一個SDU,多個SDU,或僅僅是一個SDU的一部分。 SDU的數量僅是用于舉例的目的。因此,某些區(qū)塊可能并不包含任何 SDU標頭或結尾段。另一個實施例是從裝置中具有990字節(jié)的數據 準備被接收。主裝置通過請求10個數據區(qū)塊(在本實施例中,每個區(qū) 塊包含100字節(jié))來接收數據。因此,在此次交易中的數據流包含990 字節(jié)的數據以及10字節(jié)的冗余數據。主裝置也可以通過請求具有9 個數據區(qū)塊的交易來接收數據,并且通過第二請求來接收剩余的90 字節(jié)數據。在以上的特定實施例中,每個SDU結尾段23包含關于從 裝置的信息,關于從裝置的信息包含從數據源/數據目的地裝置所接 收的準備傳送至主裝置的數據量,以及主裝置可用的空閑緩沖區(qū)空間 數量(通常被稱為緩沖區(qū)狀況信息),中斷狀況信息,以及其它信息, 其中,空閑緩沖區(qū)空間是用于儲存將要傳送至數據源/數據目的地裝置 的數據或將要從數據源/數據目的地裝置接收的數據。需要注意的是, 根據設計標準,冗余數據可能是有用的數據或無用的數據。例如,冗 余位可以是重復的數據,填充零(padded-zero),未知數據,或輔助數 據(可以是新的輔助數據或舊的輔助數據)的一部分,等等。
圖3為本發(fā)明一實施例的SDU結尾段23的數據格式示意圖。如 圖3所示,區(qū)域"RX數據大小,,指示緩沖在所接收的數據隊列中的已接 收數據(來自數據源/數據目的地裝置)的數量,其中,所接收的數據是 準備傳送至主裝置的。區(qū)域"TX數據緩沖區(qū)數目"以及"TX控制緩沖區(qū)數目"指示不同傳送隊列的空閑空間數量,其中,主裝置可用這些空閑 空間來放置將要傳送到數據源/數據目的地裝置的數據。區(qū)域"事件
(event)數據大小"指示事件隊列的數據量,其中,事件隊列是獨立于接 收隊列以及傳送隊列,且其是通過不同的數據端口發(fā)送。區(qū)域"TXEI" 指示傳輸錯誤中斷狀況,以及區(qū)域"FWI"指示固件中斷狀況。
當然,圖3所示的結尾段數據格式僅僅是示例。區(qū)域的數量以及 結尾段參數的定義均不限于圖3中所示的;任何關于從裝置的所希望 的狀態(tài)信息均可以放置在結尾段。另外,SDU結尾段的位置并不重要; 其并不需要位于SDU的結尾之后。另外,緩沖區(qū)狀況信息以及中斷狀 況信息可以交替地放置在標頭中。更通常地說,標頭以及結尾段可以 被合稱為輔助數據段,而SDU可以被稱為主數據段。在本發(fā)明的揭露 中,輔助數據是指不是主數據的所有信息。輔助數據可以是主裝置想 知道且為主數據之外的任何信息。
請再次參考圖2,水平虛線26用于指示區(qū)塊邊界。在SDIO以及 很多其它的協議中,主裝置以區(qū)塊的形式傳送數據。SDIO在傳送中使 用多個區(qū)塊以存取大量的數據。區(qū)塊的大小被配置在IB(I字節(jié))至 2KB(2000字節(jié))的范圍內。另一方面,每個SDU數據段具有不同的大 小。區(qū)塊的預設大小是由主裝置所決定,且主裝置將一數據流中區(qū)塊 的預設大小指示給從裝置。圖2示出了兩個不同大小的SDU數據段 22。合并/提取電路111產生的數據流包含具有其標頭以及結尾段的 SDU數據段。數據流以多個區(qū)塊的形式傳送,且區(qū)塊邊界可以位于數 據流的任何位置,例如位于SDU ^t據,史22內,位于SDU標頭21 內,位于SDU結尾段23內,等等。需要注意的是,此方法可應用于 其它主從式通信系統中,例如通用串行總線(Universal Serial Bus, 以下簡稱為USB)。對于USB系統,以區(qū)塊為基礎的和X念(concept)是 不存在的。作為替代,最大的封包大小就可以被認為是SDIO例子中 的區(qū)塊的大小。
在圖2所示的例子中,特殊的標頭EHRB(結尾標頭接收區(qū)塊(End Header Receive Block))24指示所請求的數據已經結束,EHRB 24后的 數據為填充數據25而不是SDU數據。此情形可能發(fā)生于多個數據區(qū) 塊中的最后一個,或發(fā)生于主裝置請求的數據多于從裝置準備傳送的數據的情形。甚至當填充數據25位于特殊的SDU標頭EHRB 24后時, 包含緩沖區(qū)狀況以及中斷狀況信息的SDU結尾段仍然會被添加到填 充數據后,以將關于從裝置的最近的信息提供至主裝置。
圖4以及圖5為本發(fā)明一實施例的由從裝置103執(zhí)行的數據傳送 方法的流程圖。圖4為接收交易(也就是,主裝置101通過從裝置103 從數據源/數據目的地裝置接收數據)的流程圖;圖5為傳送交易(也就 是,主裝置101通過從裝置103傳送數據至數據源/數據目的地裝置) 的流程圖。如圖4所示,從裝置103從數據源/數據目的地裝置接收數 據,并將數據儲存于緩沖區(qū)(步驟S41)。正如先前所描述的,從數據源 /數據目的地裝置接收的數據是一般以封包為基礎的數據,且數據內容 ("純數據")是從數據封包中提取并放置在緩沖區(qū)。從裝置103接收來自 主裝置101的傳送命令(步驟S42),在本實施例中是一個用于接收數據 的命令。緩沖區(qū)管理電路115獲取緩沖區(qū)狀況信息,且檢測電路113 獲取中斷狀況信息(步驟S43)。處理電路112產生包含緩沖區(qū)狀況信息 以及中斷狀況信息的結尾段(步驟S44)。步驟S42, S43以及S44的順 序并不重要。接著,合并/提取電路111合并具有標頭以及結尾段的多 個SDU,以產生數據流(步驟S45)。傳送數據流至主裝置(步驟S46)。 重復此過程以接收更多來自數據源/數據目的地裝置的數據,并將其傳 送至主裝置101。
需要注意的是,獲取緩沖區(qū)狀況信息以及中斷狀況信息的過程是 連續(xù)的,結尾段總是包含最近的信息。因此,因為后續(xù)的結尾段總是 包含最近的信息,事實上主裝置可以跳過某些結尾段。
在圖5所示的傳送交易中,從裝置103從主裝置IOI接收數據流(步 驟S51)。與由從裝置103傳送到主裝置101的數據流類似,從主裝置 101接收的數據流包含具有標頭以及結尾段的多個SDU。標頭包含關 于數據放置在哪一個隊列的信息。處理電路112從標頭中提取關于數 據放置在哪一個隊列的信息(步驟S52),且緩沖區(qū)管理電路115控制緩 沖池115以將數據放置在合適的隊列中(步驟S53)。重復此過程以接收 更多來自主裝置101的數據,并將其傳送至數據源/數據目的地裝置。
另夕卜(圖4或圖5中未顯示),如果在一時間期間,僅有連續(xù)的傳 送交易而沒有接收交易,從裝置將沒有機會發(fā)送緩沖區(qū)狀況信息以及
13中斷狀況信息至主裝置。在此情形下,響應主裝置發(fā)送命令至從裝置 以請求信息,從裝置可發(fā)送中斷信號至主裝置。在另一實施例中,如 果在預設的時間期間內沒有接收交易,則主裝置可以發(fā)送命令至從裝置。
需要注意的是,圖1所示的結構僅為本發(fā)明的較佳實施例。然而, 本發(fā)明也可具有其它的實施例,例如,以下將詳細描述的圖6以及圖
7所示的實施例。
圖6為本發(fā)明另一實施例的數據傳送系統600的方框圖。在圖6 中,從裝置603中的合并/提取單元614從數據源裝置接收以封包為基 礎的數據,并將以封包為基礎的數據合并為以區(qū)塊為基礎的數據。存 儲器611從合并/提取單元614接收以區(qū)塊為基礎的數據,并將這些數 據以以區(qū)塊為基礎的形式儲存。需要注意的是,因為圖l中的緩沖區(qū) 隊列是以以封包為基礎的形式儲存數據,所以存儲器611不同于圖1 中的緩沖區(qū)隊列。存儲器管理電路615從存儲器611獲取存儲器狀況, 并將存儲器狀況轉送(forward)至處理電路612。;險測電路613也傳送 中斷狀況信息至處理電路612。處理電路612根據來自存儲器管理電 路615以及檢測電^各613的輸入產生輔助數據。處理電路612將輔助 數據轉送至合并/提取單元614,以將輔助數據與主數據合并。輔助數 據以及主數據均以以區(qū)塊為基礎的形式儲存在存儲器611中。存儲器 611傳送數據流至主裝置601。而當數據流從主裝置傳送至數據目的地 裝置時,其細節(jié)與圖1所示的實施例的描述相似,因此不再詳細描述。 另外,圖6所示的其它內容,圖l所示的某些其它內容以及與圖l至 圖5相似的其它描述,均為熟悉此項技藝者所知悉,因此不再詳細描 述。例如,圖6中的接口電路616與圖1中的接口電路116相似,此 不再詳細描述接口電^各616的細節(jié)。
圖7為本發(fā)明另一實施例的數據傳送系統700的方框圖。在圖7 中,將引入外部模塊755,外部模塊755包含檢測電路713,處理電 路712,存儲器管理電路715,以及合并/提取單元714。從裝置703 包含用于儲存以封包為基礎的數據以及以區(qū)塊為基礎的數據的存儲 器711。在特定的實施例中,存儲器711需要能儲存以封包為基礎的 數據以及以區(qū)塊為基礎的數據。存儲器711接收以封包為基礎的數據,并將以封包為基礎的數據儲存在其中。將以封包為基礎的數據傳送至
外部模塊755以用于合并以及處理。另外,存儲器狀況也被傳送至外 部模塊755。外部模塊755的合并/提取單元714合并處理電路712的 輸出數據以及來自從裝置703的數據。另外,外部模塊755的存儲器 管理電路715接收來自從裝置703的控制信息。檢測電路713接收來 自主裝置701或從裝置703的控制信息。主裝置701可以直接傳送控 制信息至外部模塊755,或先將控制信息傳送至從裝置703,然后再轉 送至外部模塊755。當主數據以及輔助數據被合并為以區(qū)塊為基礎的 形式后,以區(qū)塊為基礎的數據將被傳送至存儲器711,并被轉送至主 裝置701。在本實施例中,主裝置701傳送數據至數據目的地裝置的 詳細信息與圖1的詳細信息非常相似,因此不再詳細描述。另外,圖 7中的接口電路716與圖1中的4妄口電^各116相似,故不在此詳述4妄 口電路716的細節(jié)。當然,本發(fā)明并不限于圖1,圖6,以及圖7所示 的實施例,其僅為本發(fā)明的舉例說明,而并不應成為本發(fā)明范圍的限 制。并且仍然會有其它的實施例,例如外部模塊僅包含處理電路, 檢測電路,以及緩沖區(qū)管理電路。
此處描述的數據傳送方法與傳統的SDIO系統或其它類似系統相 比具有很多優(yōu)點。在傳統的SDIO主從式傳送方法中,每個數據傳送 僅傳送一個SDU(在一個或多個區(qū)塊中)。因為每個數據傳送需要來自 主裝置的一個命令,此傳送方法需要多個命令周期來傳送多個SDU, 這會導致命令間延遲。另外,因為每個SDU—般都不具有多個區(qū)塊的 大小,每個SDU傳送將導致最后一個區(qū)塊的某些空間被浪費。在另一 實施例中,SDU會先傳送一定數量的區(qū)塊,然后再傳送一定數量的字 節(jié),但這仍然會需要主裝置發(fā)出多個傳送命令,且會導致命令間延遲。
本發(fā)明的數據傳送方法的優(yōu)點將詳述于下。首先,其會通過減少 主裝置為獲取相關的信息需要向從裝置發(fā)送的命令的數量來減少命令 間延遲,其中,舉例來說,相關的信息可以是可用的緩沖區(qū)大小, 準備傳送至主裝置的被緩沖的數據量,中斷狀況信息等等。這是通過 使用SDU結尾段來自動發(fā)送緩沖區(qū)狀況信息以及中斷狀況信息至主 裝置來完成的。第二,由于在一個數據流中傳送多個SDU減少了傳送 或者接收命令的數量,因此減少了命令間延遲。包含多個SDU的每個數據流連續(xù)地被傳送至主裝置,而不需要來自主裝置的額外的傳送命 令。第三,因為從裝置通知主裝置緩沖于從裝置并且準備傳送至主裝 置的數據數量,主裝置可以及時傳送數據。這會減少從裝置的閑置時 間。第四,因為主裝置具有關于可用緩沖區(qū)空間以及緩沖并準備用于 傳送的數據量的信息,主裝置通過每個命令可以發(fā)送或請求合適的連 續(xù)數據量,以減少命令數量以及命令間延遲。
另外,本發(fā)明所描述的方法有助于主從式數據傳送系統中從裝置 的多個隊列的執(zhí)行。如上所述,本發(fā)明多個實施例的從裝置具有多個 隊列,每個隊列是具有其自己的緩沖區(qū)存儲器的邏輯隊列。實施多個 隊列提供了數據處理的靈活性。例如,多個隊列可具有不同的優(yōu)先級。
傳統的SDIO系統實施多個隊列將需要較高的消耗,因為主裝置必須 使用很多命令來獲取關于每個隊列狀態(tài)的信息,其中,舉例來說每個 隊列狀態(tài)的信息可以是隊列中數據緩沖區(qū)數量,可用空間數量等等。 使用本發(fā)明所描述的方法,已經更新的關于隊列的信息將會由從裝置 自動發(fā)送,而不需要主裝置使用命令獲取這些信息。
需要注意的是,雖然以上描述中使用了 SDIO系統作為例子,本 發(fā)明并不限于SDIO,本發(fā)明所描述的方法也可應用于其它主從式接口 系統(例如USB系統)中。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明, 任何所屬技術領域中的技術人員,在不脫離本發(fā)明的范圍內,可以做 一些改動,因此本發(fā)明的保護范圍應與權利要求所界定的范圍為準。
權利要求
1.一種從裝置,用于在主裝置以及數據源裝置之間通信,所述從裝置適用于所述主裝置,所述從裝置包含一個或多個緩沖區(qū),用于儲存接收自所述數據源裝置的數據;緩沖區(qū)管理電路,耦接于所述緩沖區(qū),用于獲取緩沖區(qū)狀況信息,其中,所述緩沖區(qū)狀況信息指示所述緩沖區(qū)中的一個或多個的可用空間數量,以及接收自所述數據源裝置并儲存于所述緩沖區(qū)中的一個或多個的數據數量;以及合并電路,耦接于所述緩沖區(qū)以及所述緩沖區(qū)管理電路,用于產生數據流并傳送所述數據流至所述主裝置,所述數據流包含多個主數據段以及與所述主數據段相關的多個輔助數據段,其中,所述主數據段包含接收自所述數據源裝置并儲存于所述緩沖區(qū)的數據,以及所述輔助數據段中的每一個包含所述緩沖區(qū)狀況信息。
2. 根據權利要求1所述的從裝置,其特征在于,進一步包含 處理電路,耦接于所述緩沖區(qū)管理電路以及所述合并電路之間,用于基于所述緩沖區(qū)狀況信息產生所述輔助數據段,并提供所述輔助 數據段至所述合并電路Z
3. 根據權利要求1所述的從裝置,其特征在于,進一步包含 檢測電路,耦接于所述合并電路,用于檢測所述從裝置的中斷狀況,其中,所述數據流中的所述輔助數據段進一步包含關于中斷狀況 的信息。
4. 根據權利要求1所述的從裝置,其特征在于,所述緩沖區(qū)包含 一個或多個接收緩沖區(qū),所述接收緩沖區(qū)用于儲存接收自所述數據源 裝置并將傳送至所述主裝置的數據,其中,所述輔助數據段中的所述 緩沖區(qū)狀況信息包含所述接收緩沖區(qū)中每一個的可用空間數量。
5. 根據權利要求1所述的從裝置,其特征在于,進一步包含 接口電路,用于控制所述從裝置以及使用預設通信協議的所述數據源裝置之間的數據通信,其中,接收自所述數據源裝置的所述數據 包含多個數據封包,其中,所述接口電路由所述數據封包中提取數據內容,并將提取的所述數據內容放置在所述緩沖區(qū),其中,所述主數 據段中的每 一 個包含從 一 個數據封包所提取的所述數據內容。
6. 根據權利要求1所述的從裝置,其特征在于,所述合并電路以 以區(qū)塊為基礎的形式傳送所述數據流至所述主裝置。
7. 根據權利要求6所述的從裝置,其特征在于,所述數據流包含多個區(qū)塊,且所述區(qū)塊中的每一個包含預設大小,其中,所述數據流 的大小以及所述區(qū)塊中的每一個的大小是由所述主裝置決定的。
8. 根據權利要求7所述的從裝置,其特征在于,進一步包含 處理器,如果所述數據流的大小大于將要傳送至所述主裝置的所述主數據以及所述輔助數據的總大小,所述處理器用于產生至少一冗 余位以填入所述數據流中至少 一個所述區(qū)塊的 一部分。
9. 根據權利要求7所述的從裝置,其特征在于,以傳送至所述主 裝置的所述數據流為第一交易,且以于所述第一交易完成后傳送至所 述主裝置的另一數據流為第二交易,其中,如果所述數據流的大小小 于將要傳送至所述主裝置的所述主數據以及所述輔助數據的總大小, 所述合并電路于所述第二交易傳送將要傳送至所述主裝置的一部分所 述主數據以及所述輔助數據。
10. 根據權利要求1所述的從裝置,其特征在于,所述輔助數據段 是位于各自的所述主數據段之后的多個結尾段。
11. 一種在主裝置以及從裝置之間傳送數據的方法,適用于主從式 數據傳送系統,并實現于所述從裝置中,且所述從裝置與數據源裝置 進行數據通信,所述方法包含(a) 從所述數據源裝置接收數據;(b) 獲取狀況信息,所述狀況信息指示存儲器的可用空間數量以及 接收自所述數據源裝置并儲存于所述存儲器的數據數量;(c) 從所述主裝置接收傳送命令;(d) 響應所述傳送命令,產生數據流,所述數據流包含多個主數據 段以及與所述主數據段相關的多個輔助數據段,其中,所述主數據段 包含從所述數據源裝置接收的數據,且其中所述輔助數據段中的每一 個包含所述狀況信息;以及(e) 傳送所述數據流至所述主裝置。
12. 根據權利要求11所述的在主裝置以及從裝置之間傳送數據的方法,其特征在于,步驟(d)包含(dl)根據所述狀況信息產生所述輔助數據段,其中,所述狀況信 息進一步包含所述從裝置將傳送至所述主裝置的信息;以及(d 2)合并接收自所述數據源裝置的所述數據以及所述輔助數據段 以產生所述數據流,其中,所述數據流是以區(qū)塊為基礎的形式來傳送。
13. 根據權利要求11所述的在主裝置以及從裝置之間傳送數據的 方法,其特征在于,進一步包含(f)檢測所述從裝置的中斷狀況,其中,所述數據流中的所述輔助數據段進一 步包含關于所述中斷 狀況的信息。
14. 根據權利要求11所述的在主裝置以及從裝置之間傳送數據的 方法,其特征在于,所述輔助數據段是位于各自的所述主數據段之后 的多個結尾段。
15. —種從裝置,用于與主裝置通信數據,所述從裝置包含 提取電路,用于從所述主裝置接收數據流,且將所述數據流分為多個以封包為基礎的數據;處理單元,用于從所述數據流中提取標頭信息;一個或多個緩沖區(qū),用于儲存接收自所述提取電路的所述以封包 為基礎的數據,其中,所述緩沖區(qū)包括一個或多個傳送緩沖區(qū),且所述緩沖區(qū)中的每一個具有指定的優(yōu)先級;以及緩沖區(qū)管理電路,耦接于所述緩沖區(qū),用于根據所述標頭信息控 制所述緩沖區(qū)中每一個的使用,且將來自所述提取電路的所述以封包 為基礎的數據放置在所述緩沖區(qū)中的合適的緩沖區(qū)內,其中,所述標 頭信息包含關于所述以封包為基礎的數據放置在哪 一 個緩沖區(qū)的指 示。
16. —種從裝置,用于在主裝置以及數據源裝置之間通信,所述 從裝置適用于所述主裝置,所述從裝置包含連接器,具有安全數字輸入輸出接口或通用串行總線接口 ,用于 連接所述主裝置;一個或多個緩沖區(qū),用于儲存接收自所述數據源裝置的數據,并且儲存接收自所述主裝置的數據;通信接口,用于與所述數據源裝置通信數據,其中,接收自所述數據源裝置的所述數據包含多個數據封包,以及所述緩沖區(qū)中的每一 個儲存所述數據封包中的至少一個;以及合并電路,耦接于所述緩沖區(qū),通過合并所述數據封包中的每一 個產生數據流,且傳送所述數據流至所述主裝置,所述數據流包含多 個數據段,其中,所述數據流為連續(xù)串流。
17. 根據權利要求16所述的從裝置,其特征在于,進一步包含 緩沖區(qū)管理電路,耦接于所述緩沖區(qū),用于獲取緩沖區(qū)狀況信息,其中,所述緩沖區(qū)狀況信息包括所述緩沖區(qū)中的一個或多個的可用空 間數量,以及接收來自所述數據源裝置并儲存于所述緩沖區(qū)中的一個 或多個的數據數量,其中,所述數據流進一步包含與所述數據段相關的多個輔助數據 段,其中,所述輔助數據段中的每一個包含所述緩沖區(qū)狀況信息。
18. 根據權利要求17所述的從裝置,其特征在于,進一步包含 檢測電路,耦接于所述合并電路,用于檢測所述從裝置的中斷狀況,其中,所述數據流中的所述輔助數據段進一步包含關于所述中斷 狀況的信息。
19. 根據權利要求18所述的從裝置,其特征在于,所述輔助數據 段是位于各自的所述主數據段之后的多個結尾段。
全文摘要
本發(fā)明提供了一種在主裝置以及從裝置之間傳送數據的方法及從裝置,從裝置包含一個或多個緩沖區(qū),用于儲存接收自所述數據源裝置的數據;緩沖區(qū)管理電路,耦接于緩沖區(qū),用于獲取緩沖區(qū)狀況信息;合并電路,耦接于緩沖區(qū)以及緩沖區(qū)管理電路,用于產生數據流并傳送數據流至主裝置,數據流包含多個主數據段以及與主數據段相關的多個輔助數據段,其中,主數據段包含接收于數據源裝置并儲存于緩沖區(qū)的數據,輔助數據段中的每一個包含緩沖區(qū)狀況信息。本發(fā)明提供的在主裝置以及從裝置之間傳送數據的方法及從裝置,通過在數據流的輔助數據段中包含緩沖區(qū)狀況信息,減少了主裝置為獲取相關的信息需要向從裝置發(fā)送的命令的數量,減少了命令間延遲。
文檔編號G06F13/38GK101556569SQ200910130069
公開日2009年10月14日 申請日期2009年4月3日 優(yōu)先權日2008年4月10日
發(fā)明者劉晉泰, 林主民, 林建光, 王傳弘 申請人:聯發(fā)科技股份有限公司