TWI384810B - 可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置 - Google Patents

可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置 Download PDF

Info

Publication number
TWI384810B
TWI384810B TW098142314A TW98142314A TWI384810B TW I384810 B TWI384810 B TW I384810B TW 098142314 A TW098142314 A TW 098142314A TW 98142314 A TW98142314 A TW 98142314A TW I384810 B TWI384810 B TW I384810B
Authority
TW
Taiwan
Prior art keywords
packet
data
header
memory
shared
Prior art date
Application number
TW098142314A
Other languages
English (en)
Other versions
TW201041344A (en
Inventor
Tso Hsuan Chang
Ming Hsu Hsu
Teng Chuan Hsieh
Original Assignee
Etron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Etron Technology Inc filed Critical Etron Technology Inc
Priority to TW098142314A priority Critical patent/TWI384810B/zh
Publication of TW201041344A publication Critical patent/TW201041344A/zh
Application granted granted Critical
Publication of TWI384810B publication Critical patent/TWI384810B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0072Error control for data other than payload data, e.g. control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Description

可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置
本發明係有關於一種資料傳輸方法,更明確地說,係有關於一種可節省通用串列匯流排(Universal Serial Bus,USB)協定中用來儲存封包之記憶體之資料傳輸方法。
請參考第1圖。第1圖係為說明於先前技術中USB 3.0封包DP的封包格式之示意圖。如第1圖所示,封包DP包含一檔頭H,以及一資料負載P。檔頭H包含一型態資訊TP、一端點資訊(end point)EP、一連結命令字元(link command word)LW、一檔頭錯誤檢查碼CRCH ,以及一保留區RA。資料負載P包含一資料段D,以及一資料錯誤檢查碼CRCD
型態資訊TP可用來判斷封包DP之封包類型。封包類型,舉例來說,可為握手(handshake)、資料(data)...等。端點資訊EP可用來判斷封包DP所屬之傳輸類型。舉例而言,在USB協定3.0版中,包含四種傳輸類型:控制型傳輸類型(control transfer type)、中斷型傳輸類型(interrupt transfer type)、巨量型傳輸類型(bulk transfer type),以及同時型傳輸類型(isochronous transfer type)。每種傳輸類型分別用來傳輸具有不同特性的資料,如同時型傳輸類型用來即時傳輸(real-time transfer),可應用傳輸語音和視訊資料,以避免所傳輸的語音或視訊產生不連續或不同步(延遲)的現象。連結命令字元LW用來表示資料連結的情況,且連結命令字元LW另包含一連結命令字元錯誤檢查碼CRCL 與檔頭順序參數(Header Sequence Number)HSEQ。連結命令字元錯誤檢查碼CRCL 用來判斷連結命令字元LW是否有錯誤。檔頭順序參數HSEQ用來判斷封包DP之封包順序是否有錯誤。檔頭錯誤檢查碼CRCH 用來判斷檔頭H是否有錯誤。保留區RA係可用來儲存使用者所自行定義之資料。
資料段D提供傳送端實際所傳輸的資料,如攝影機所傳送之視訊資料與隨身碟所儲存之資料等。資料錯誤檢查碼CRCD 用來判斷資料段D是否有錯誤。此外,資料段D可包含N筆資料SD1 ~SDN
在先前技術中,於USB傳輸時,可分為傳送端T與接收端R。傳送端T可為一主控端(host)或一裝置端(device),而接收端R則為一對應的裝置端或一對應的主控端。傳送端T與接收端R於傳輸封包時之資料處理係從最底部依序分層為實體層(physical layer)PH、資料連結層(data link layer)DL與協定層(protocol layer)PR。以下分別說明於接收端R接收封包DP與傳送端T欲傳送封包DP之工作原理。
當接收端R接收到封包DP時,接收端R會將封包DP儲存於接收端R之資料連結層DL之資料連結記憶體DLM。接收端R之資料連結層DL判斷封包DP之檔頭H正確時,接收端R之資料連結層DL會將儲存於資料連結記憶體DLM之封包DP複製到接收端R之協定層PR之協定記憶體PRM。如此,接收端R之協定層PR可對儲存於協定記憶體PRM之封包DP進行後續處理。
當傳送端T需要傳送資料負載P時,傳送端T之協定層PR會根據資料負載P產生檔頭H,並根據檔頭H與資料負載P於傳送端T之協定層PR之協定記憶體PRM內產生封包DP。傳送端T會將儲存於協定記憶體PRM封包DP複製到傳送端T之資料連結層DL之資料連結記憶體DLM。此時,傳送端T之協定層PRM會通知傳送端T之資料連結層DL發送儲存於資料連結記憶體DLM之封包DP。
由於在先前技術中,無論是傳送端T或接收端R之協定層PR與資料連結層DL皆需要有記憶體來儲存封包(如協定記憶體PRM與資料連結記憶體DLM)。也就是說,當接收或傳送封包DP時,封包DP會在接收端R或傳送端T佔用兩倍於封包DP之大小之記憶體空間。如此,造成記憶體不必要的浪費,而使成本上升,帶給使用者極大的不便。
本發明提供一種可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法。該資料傳輸方法包含一接收端接收一傳送端所傳送之一封包,且將該封包儲存於一共用記憶體、該接收端之一資料連結層對儲存於該共用記憶體內之該封包之一檔頭進行錯誤碼檢查,以得出一資料連結檢查結果,並據以傳送一協定層處理訊號給該接收端之一協定層,以及該接收端之該協定層根據該協定層處理訊號,直接對儲存於該共用記憶體內之該封包進行後續處理。
本發明另提供一種可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法。該資料傳輸方法包含一傳送端之一協定層將一資料負載寫入於一共用資料負載記憶體、該傳送端之該協定層根據該資料負載產生一檔頭,並將該檔頭寫入一共用檔頭記憶體,以及該傳送端之一資料連結層直接將儲存於該共用檔頭記憶體內之該檔頭與儲存於該共用資料負載記憶體內之該資料負載組成一封包,並將該封包傳送至一接收端。
本發明另提供一種可節省通用串列匯流排協定中用來儲存封包之記憶體之裝置。該裝置包含一傳送裝置,以及一接收裝置。該傳送裝置包含一共用檔頭記憶體、一共用資料負載記憶體、一第一協定層裝置,以及一第一資料連結層裝置。該第一協定層裝置,用來根據一資料負載,以產生一檔頭,並儲存該資料負載於該共用資料負載記憶體,以及儲存該檔頭於該共用檔頭記憶體。該第一資料連結層裝置,用來直接將儲存於該共用檔頭記憶體之該檔頭與儲存於該共用資料負載記憶體之該資料負載組成一封包,並發送該封包。該接收裝置,用來接收該封包。該接收裝置包含一共用記憶體、一第二資料連結層裝置,以及一第二協定層裝置。該共用記憶體,用來儲存該封包。該第二資料連結層裝置,用來對儲存於該共用記憶體內之該封包之該檔頭進行錯誤碼檢查,以產生一資料連結檢查結果,並根據該資料連結檢查結果,以傳送一資料連結回覆訊號至該傳送裝置,與產生一協定層處理訊號。該第二協定層裝置,用來根據該協定層處理訊號與儲存於該共用記憶體之該封包之該檔頭之一端點資訊,以判斷儲存於該共用記憶體之該封包為同時型傳輸類型封包。
本發明另提供一種節省記憶體之接收裝置,該接收裝置依據一通訊協定接收一封包,該封包包含一檔頭與一資料負載。該接收裝置包含一共用記憶體、一第二資料連結層裝置,以及一第二協定層裝置。該共用記憶體包含複數個封包儲存單元。該複數個封包儲存單元之一第一封包儲存單元儲存該封包且該第一封包儲存單元對應一第一記憶體位址。該第二資料連結層裝置電性連接於該共用記憶體。該第二資料連結層裝置依據該第一記憶體位址來讀取儲存於該第一封包儲存單元之該封包。該第二協定層裝置電性連接於該共用記憶體。該第二協定層裝置依據該第一記憶體位址讀取儲存於該第一封包儲存單元之該封包。
本發明另提供一種節省記憶體之接收裝置,該接收裝置依據一通訊協定接收一封包,該封包包含一檔頭與一資料負載。該接收裝置包含一資料連結記憶體、一協定記憶體、一第二資料連結層裝置,以及一第二協定層裝置。該資料連結記憶體包含複數個檔頭儲存單元,該複數個檔頭儲存單元一第一檔頭儲存單元儲存該封包之該檔頭而不儲存該封包之該資料負載。該第一檔頭儲存單元對應一第二記憶體位址。該協定記憶體包含複數個資料負載儲存單元,該複數個資料負載儲存單元之一第一資料負載儲存單元儲存該封包之該資料負載而不儲存該封包之該檔頭。該第一資料負載儲存單元對應一第三記憶體位址。該第二資料連結層裝置電性連接於該資料連結記憶體。該第二資料連結層裝置依據該第二記憶體位址來讀取該封包之該檔頭。該第二協定層裝置電性連接於該協定記憶體。該第二協定層裝置依據該第三記憶體位址讀取該封包之該資料負載。
本發明另提供一種節省記憶體之傳送裝置。該傳送裝置依據一通訊協定傳送一封包,該封包包含一檔頭與一資料負載。該傳送裝置包含一第一協定層裝置、一共用檔頭記憶體、一共用資料負載記憶體,以及一第一資料連結層裝置。該第一協定層裝置用來根據該封包之該資料負載以產生該封包之該檔頭。該共用檔頭記憶體電性連接於該第一協定層裝置。該共用檔頭記憶體包含複數個共用檔頭儲存單元。該複數個共用檔頭儲存單元之一第一共用檔頭儲存單元儲存該封包之該檔頭而不儲存該封包之該資料負載。該第一共用檔頭儲存單元對應一第四記憶體位址。該共用資料負載記憶體電性連接於該第一協定層裝置。該共用資料負載記憶體包含複數個共用資料負載儲存單元。該複數個共用資料負載儲存單元之一第一共用資料負載儲存單元儲存該封包之該資料負載而不儲存該封包之該檔頭。該第一共用資料負載儲存單元對應一第五記憶體位址。該第一資料連結層裝置電性連接於該共用資料負載記憶體與該共用檔頭記憶體。該第一資料連結層裝置依據該第四記憶體位址與該第五記憶體位址將該檔頭與該資料負載組成該封包並發送該封包至該傳送裝置所對應之一接收裝置。
有鑑於此,本發明提供一種資料傳輸方法,無論是傳送端或接收端之協定層與資料連結層皆可共用同一記憶體來儲存封包,以節省儲存封包時所需之記憶體空間,進而降低成本。
請參考第2圖。第2圖係為說明根據本發明之第一實施例之可節省USB協定中用來儲存封包之記憶體之資料傳輸方法200之流程圖。於資料傳輸方法200中,設接收端R為一主控端(host)或一裝置端(device),而傳送端T則為對應於接收端R之一裝置端或一主控端。接收端R包含一實體層PH、一資料連結層DL、一協定層PR,以及一共用記憶體SHM。共用記憶體SHM用來儲存資料。共用記憶體SHM包含封包儲存單元DPM1 ~DPMN 以及旗號F1 ~FN 。封包儲存單元DPM1 ~DPMN 用來儲存封包。旗號F1 ~FN 分別用來指示封包儲存單元DPM1 ~DPMN 是否可被寫入資料。資料傳輸方法200之步驟說明如下:
步驟201:接收端R接收傳送端T所傳送之封包DP,且將封包DP儲存於共用記憶體SHM;
步驟202:接收端R之資料連結層DL對儲存於共用記憶體SHM內之封包DP之檔頭H進行錯誤碼檢查,以得出資料連結檢查結果EDL ,並據以傳送協定層處理訊號SPRP 給接收端R之協定層PR;
步驟203:接收端R之協定層PR根據協定層處理訊號SPRP ,直接對儲存於共用記憶體SHM內之封包DP進行後續處理。
於步驟201中,當接收端R接收傳送端T所傳送之封包DP時,接收端R會先根據旗號F1 ~FN ,以找出可被寫入的封包儲存單元。舉例而言,當旗號FK 表示「可被寫入」時,代表此時共用記憶體SHM之封包儲存單元DPMK 可被寫入資料;當旗號FK 表示「已被寫入」時,代表此時共用記憶體SHM之封包儲存單元DPMK 已經有儲存資料,因此不可再被寫入資料,以免覆蓋掉原本儲存於封包儲存單元DPMK 之資料。設此時旗號FK 表示「可被寫入」,因此接收端R會將封包DP寫入且儲存於共用記憶體SHM之封包儲存單元DPMK ,且接收端R會將旗號FK 標記為「已被寫入」。
於步驟202中,接收端R之資料連結層DL對儲存於共用記憶體SHM內之封包儲存單元DPMK 之封包DP之檔頭H進行錯誤碼檢查,以得出資料連結檢查結果EDL 。更明確地說,接收端R之資料連結層DL會依據封包DP之連結命令字元錯誤檢查碼CRCL 與檔頭錯誤檢查碼CRCH ,判斷封包DP之檔頭H是否正確。封包DP之檔頭H之錯誤檢查碼CRCH 可為16位元的循環冗餘檢查碼(Cyclic Redundancy Check 16,CRC-16),而錯誤檢查碼CRCL 可為5位元的循環冗餘檢查碼(CRC-5)。資料連結層DL利用錯誤檢查碼CRCH 與CRCL 以分別對封包DP之檔頭H與連結命令字元LW進行循環冗餘檢查。舉例來說,檔頭H整體的循環冗餘檢查,係將封包DP之檔頭H(包含錯誤檢查碼CRCH )除以一預定除數CRCDH ,以據以得一對應的餘數CRCRH 。當餘數CRCRH 等於一預定值X(舉例而言,X等於零)時,檢查結果EH 表示封包DP之檔頭H為正確;當餘數CRCRH 不等於預定值X時,檢查結果EH 表示封包DP之檔頭H為錯誤。而連結命令字元檢查結果EL 可以類似的方式得出。
當檢查結果EL 與EH 中有一者為錯誤時,則接收端R之資料連結層DL判斷檔頭H為錯誤。此時,資料連結檢查結果EDL 表示錯誤,且接收端R之資料連結層DL會發送重送訊號SLBAD 至傳送端T,以告知傳送端T所傳送之封包DP於接收端R之資料連結檢查結果EDL 表示錯誤,來使傳送端T重新傳送封包DP。反之,當檢查結果EL 與EH 皆為正確時,接收端R之資料連結層DL會判斷檔頭H為正確。此時,資料連結檢查結果EDL 表示正確,且接收端R之資料連結層DL會發送確認訊號SLGOOD 至傳送端T,以告知傳送端T所傳送之封包DP於接收端R之資料連結檢查結果EDL 表示正確。
此外,當資料連結檢查結果EDL 表示正確時,接收端R之資料連結層DL會傳送協定層處理訊號SPRP 給接收端R之協定層PR。協定層處理訊號SPRP 係用來指示對應於共用記憶體SHM之封包儲存單元DPMK 之封包位址ADDR,以使協定層PR對儲存於共用記憶體SHM內之封包儲存單元DPMK 之封包DP進行後續處理。
於步驟203中,設資料連結層DL所傳送之協定層處理訊號SPRP 所指示之封包位址ADDR代表「K」,因此協定層PR可根據代表「K」之封包位址ADDR,以讀取對應於封包位址ADDR之共用記憶體SHM之封包儲存單元DPMK 所儲存之資料。也就是說,接收端R之協定層PR可讀取封包儲存單元DPMK 所儲存之封包DP。如此,接收端R之協定層PR可根據封包DP之檔頭H之端點資訊EP,以接收封包DP之資料負載P以進行後續處理。
更進一步地說,接收端R之協定層PR根據封包DP之檔頭H之端點資訊EP,以判斷封包DP是否為同時型傳輸類型封包。
當端點資訊EP指示封包DP為同時型傳輸類型封包時,接收端R之協定層PR直接接收封包DP之資料負載P以進行後續處理。舉例而言,資料負載P為傳輸端T傳送給接收端R之語音資料,因此接收端R可直接接收封包DP之資料負載P,以根據資料負載P之語音資料來播放語音。
當端點資訊EP指示封包DP非為同時型傳輸類型封包時,接收端R之協定層PR對封包DP之資料負載P之資料負載錯誤檢查碼CRCD 進行循環冗餘檢查,得出資料負載檢查結果EPL ,並據以發送交握(ACK)封包SACK 至傳送端T。其中資料負載錯誤檢查碼CRCD 可為32位元的循環冗餘檢查碼(CRC-32)。接收端R之協定層PL利用資料負載錯誤檢查碼CRCD 進行循環冗餘檢查,以得到資料負載檢查結果EPL ,其工作原理與前述之資料連結層DL利用錯誤檢查碼CRCH 與CRCL 封包DP之檔頭H與連結命令字元LW進行循環冗餘檢查之方式類似,故不再贅述。當根據資料負載錯誤檢查碼CRCD 所得到之資料負載檢查結果EPL 表示正確時,接收端R之協定層PR會傳送交握訊號SACK 至傳送端T,其中交握訊號SACK 包含有關封包DP之檔頭順序參數HSEQ,以使傳送端T可根據檔頭順序參數HSEQ,判斷交握訊號SACK 係對應於封包DP,且此時交握訊號SACK 係用來告知傳送端T於接收端R中對應於封包DP之資料負載檢查結果EPL 表示正確(意即接收端R已正確地接收封包DP)。反之,當根據資料負載錯誤檢查碼CRCD 所得到之資料負載檢查結果EPL 表示錯誤時,此時接收端R之協定層PR所傳送之交握訊號SACK 會告知傳送端T於接收端R中對應於封包DP之資料負載檢查結果EPL 表示錯誤。如此,傳送端T根據檔頭順序參數HSEQ,可得知對應於檔頭順序參數HSEQ之封包DP沒有被接收端R正確地接收。因此,傳送端T會再重新傳送封包DP。
根據前述之說明可知,在本發明之資料傳輸方法200中,當接收端R接收封包DP時,封包DP係儲存於共用記憶體SHM之一封包儲存單元。也就是說,當接收端R接收封包DP時,接收端R僅需要有等同於一個封包大小之記憶體空間(如封包儲存單元DPMK ),以儲存封包DP。如此,可節省儲存封包時所需之記憶體空間,來降低成本。
此外,根據資料傳輸方法200之基本精神可衍生出另一實施例。於另一實施例中,前述之共用記憶體SHM中每一封包儲存單元DPM1 ~DPMN 可分成兩個主要部份,第一部份是儲存檔頭,第二部份用來儲存資料負載。以下將作更進一步地說明。
共用記憶體SHM包含一資料連結記憶體DLM,以及一協定記憶體PRM。資料連結記憶體DLM包含檔頭儲存單元HM1 ~HMN 。檔頭儲存單元HM1 ~HMN 用來儲存檔頭。檔頭儲存單元HM1 ~HMN 分別包含共用檔頭旗號FH1 ~FHN 。共用檔頭旗號FH1 ~FHN 分別用來指示檔頭儲存單元HM1 ~HMN 是否可被寫入資料。協定記憶體PRM包含資料負載儲存單元PLM1 ~PLMN 。資料負載儲存單元PLM1 ~PLMN 用來儲存資料負載。資料負載儲存單元PLM1 ~PLMN 分別包含共用資料負載旗號FPL1 ~FPLN 。共用資料負載旗號FPL1 ~FPLN 係分別用來指示資料負載儲存單元PLM1 ~PLMN 是否可被寫入資料。
類似於步驟201,當接收端R接收傳送端T所傳送之封包DP時,接收端R會先根據共用檔頭旗號FH1 ~FHN ,以找出可被寫入的檔頭儲存單元,以及根據共用資料負載旗號FPL1 ~FPLN 以找出可被寫入的資料負載儲存單元。舉例而言,當共用檔頭旗號FHK 表示「可被寫入」時,代表此時資料連結記憶體DLM之檔頭儲存單元HMK 可被寫入資料;當共用檔頭旗號FHK 表示「已被寫入」時,代表此時資料連結記憶體DLM之檔頭儲存單元HMK 已經有儲存資料,因此不可再被寫入資料,以免覆蓋掉原本儲存於檔頭儲存單元HMK 之資料。利用類似之方法可根據共用資料負載旗號FPL1 ~FPLN 以找出可被寫入的資料負載儲存單元,故不再贅述。
設此時共用檔頭旗號FHK 與共用資料負載旗號FPLK 皆表示「可被寫入」,因此接收端R會將封包DP之檔頭H寫入且儲存於資料連結記憶體DLM之檔頭儲存單元HMK ,將封包DP之資料負載P寫入且儲存於協定記憶體PRM之資料負載儲存單元PLMK ,且接收端R會將共用檔頭旗號FHK 與共用資料負載旗號FPLK 皆標記為「已被寫入」。
類似於步驟202,接收端R之資料連結層DL對儲存於資料連結記憶體DLM內之檔頭儲存單元HMK 之封包DP之檔頭H進行錯誤碼檢查,以得出資料連結檢查結果EDL 。更明確地說,接收端R之資料連結層DL會依據封包DP之連結命令字元錯誤檢查碼CRCL 與檔頭錯誤檢查碼CRCH ,判斷封包DP之檔頭H是否正確。資料連結層DL利用錯誤檢查碼CRCH 與CRCL 以分別對封包DP之檔頭H與連結命令字元LW進行循環冗餘檢查,以分別得到檢查結果EH EL 。其工作原理如同前述說明,故不再贅述。
當檢查結果EL 與EH 中有一者為錯誤時,則接收端R之資料連結層DL判斷檔頭H為錯誤。此時,資料連結檢查結果EDL 表示錯誤,且接收端R之資料連結層DL會發送重送訊號SLBAD 至傳送端T,以告知傳送端T所傳送之封包DP於接收端R之資料連結檢查結果EDL 表示錯誤,來使傳送端T重新傳送封包DP。反之,當檢查結果EL 與EH 皆為正確時,接收端R之資料連結層DL會判斷檔頭H為正確。此時,資料連結檢查結果EDL 表示正確,且接收端R之資料連結層DL會發送確認訊號SLGOOD 至傳送端T,以告知傳送端T所傳送之封包DP於接收端R之資料連結檢查結果EDL 表示正確。
此外,當資料連結檢查結果EDL 表示正確時,接收端R之資料連結層DL會傳送協定層處理訊號SPRP 給接收端R之協定層PR。協定層處理訊號SPRP 係用來指示對應於資料連結記憶體DLM之檔頭儲存單元HMK 之檔頭位址ADDRH 以及協定記憶體PRM之資料負載儲存單元PLMK 之資料負載位址ADDRPL
類似於步驟203,協定層PR可根據資料連結層DL所傳送之協定層處理訊號SPRP 所指示之檔頭位址ADDRH 與資料負載位址ADDRPL ,以分別讀取儲存於資料連結記憶體DLM之檔頭儲存單元HMK 之封包DP之檔頭H,以及儲存於協定記憶體PRM之資料負載儲存單元PLMK 之封包DP之資料負載P。因此,協定層PR可將檔頭H與資料負載P組成封包DP後,根據封包DP之檔頭H之端點資訊EP,以判斷封包DP是否為同時型傳輸類型封包,並對封包DP進行後續處理。其後續處理之方法與前述說明類似,故不再贅述。
因此,在本實施例中,當接收端R接收封包DP時,封包DP之檔頭H係儲存於資料連結記憶體DLM之一檔頭儲存單元,且封包DP之資料負載P係儲存於協定記憶體DLM之一資料負載儲存單元。也就是說,當接收端R接收封包DP時,接收端R僅需要有等同於一個封包大小之記憶體空間(如檔頭儲存單元HMK 加上資料負載儲存單元PLMK ),以儲存封包DP。如此,可節省儲存封包時所需之記憶體空間,來降低成本。
請參考第3圖。第3圖係為說明根據本發明之第二實施例之可節省USB協定中用來儲存封包之記憶體之資料傳輸方法300之流程圖。於資料傳輸方法300中,設傳送端T可為一主控端或一裝置端,而接收端R則為對應於傳送端T之一裝置端或一主控端。傳送端T包含一實體層PH、一資料連結層DL、一協定層PR、一共用檔頭記憶體SHHM,以及一共用資料負載記憶體SHPM。共用資料負載記憶體SHPM包含資料負載儲存單元PLM1 ~PLMN 以及共用資料負載旗號FPL1 ~FPLN 。資料負載儲存單元PLM1 ~PLMN 用來儲存資料負載。共用資料負載旗號FPL1 ~FPLN 係分別用來指示資料負載儲存單元PLM1 ~PLMN 是否可被寫入資料。舉例而言,當共用資料負載旗號FPLK 表示「可被寫入」時,代表此時共用資料負載記憶體SHPM之資料負載儲存單元PLMK 可被寫入資料;當共用資料負載旗號FPLK 表示「已被寫入」時,代表此時共用資料負載記憶體SHPM之資料負載儲存單元PLMK 已經有儲存資料,因此不可再被寫入資料,以避免覆蓋掉原本儲存於資料負載儲存單元PLMK 之資料。共用檔頭記憶體SHHM包含檔頭儲存單元HM1 ~HMN 、一待發送指標PTRWS 、一已發送指標PTRAS ,以及一已確認指標PTRAA 。檔頭儲存單元HM1 ~HMN 用來儲存檔頭。待發送指標PTRWS 係用來指示在檔頭儲存單元HM1 ~HMN 之中,需要傳送端T將所儲存之資料傳送至接收端R之檔頭儲存單元。已發送指標PTRAS 係用來指示在檔頭儲存單元HM1 ~HMN 之中,傳送端T已經將所儲存之資料傳送至接收端R之檔頭儲存單元。已確認指標PTRAA 係用來指示在檔頭儲存單元HM1 ~HMN 之中,傳送端T已經將所儲存之資料傳送至接收端R,且傳送端T也接收到接收端R所傳送之對應之代表正確地接收之交握訊號SACK 之檔頭儲存單元。資料傳輸方法300之步驟說明如下:
步驟301:傳送端T之協定層PR將資料負載P寫入於共用資料負載記憶體SHPM;
步驟302:傳送端T之協定層PR根據資料負載P產生檔頭H,並將檔頭H寫入共用檔頭記憶體SHHM;
步驟303:傳送端T之資料連結層DL直接將儲存於共用檔頭記憶體SHHM內之檔頭H與儲存於共用資料負載記憶體SHPM內之資料負載P組成一封包DP,並將封包DP傳送至接收端R;
步驟304:傳送端T之資料連結層DL根據接收端R所傳送之對應於封包DP之資料連結回覆訊號SDL ,以判斷是否要重新傳送封包DP;
步驟305:傳送端T之協定層PR根據接收端R所傳送之對應於封包DP之交握訊號SACK ,以進行後續處理。
於步驟301中,當傳送端T欲傳送資料負載P,傳送端T之協定層PR會根據共用資料負載旗號FPL1 ~FPLN ,以找出可被寫入的資料負載儲存單元。舉例而言,設此時共用資料負載旗號FPLK 表示「可被寫入」,因此傳送端T會將封包DP寫入且儲存於共用資料負載記憶體SHPM之資料負載儲存單元PLMK ,且傳送端T會將共用資料負載旗號FPLK 標記為「已被寫入」。
於步驟302中,傳送端T之協定層PR根據資料負載P與對應於資料負載儲存單元PLMK 之資料負載位址資訊DADDR_PL ,以產生檔頭H。舉例而言,當資料負載P係為傳送端T欲傳送給接收端R之控制命令,協定層PR設定檔頭H之端點資訊EP代表控制型傳輸類型;當資料負載P係為傳送端T欲傳送給接收端R之語音或視訊資料,協定層PR設定檔頭H之端點資訊EP代表同時型傳輸類型。協定層PR除了產生USB協定中所規範之檔頭H所包含的資訊(如型態資訊TP、端點資訊EP、連結命令字元LW、錯誤檢查碼CRCL 與CRCH 、檔頭順序參數HSEQ等)之外,協定層PR還會在檔頭H之保留區RA寫入用來指示資料負載儲存單元PLMK 之資料負載位址ADDRPL_K 之資料負載位址資訊DADDR_PL
傳送端T之協定層PR根據待發送指標PTRWS 與已確認指標PTRAA 以找到可被寫入之共用檔頭記憶體SHHM之檔頭儲存單元。第5圖、第6圖以及第7圖分別為說明當已確認指標PTRAA 大於、小於,或等於待發送指標PTRWS 時之可被寫入之共用檔頭記憶體SHHM之檔頭儲存單元之示意圖。舉例而言,設待發送指標PTRWS 係為檔頭儲存單元HM(K-1) 之檔頭位址ADDRH_(K-1) ,而已確認指標PTRAA 係為檔頭儲存單元HMX 之檔頭位址ADDRH_X 。在第5圖中,檔頭位址ADDRH_X 大於檔頭ADDRH_(K-1) ,此時表示檔頭儲存單元HMK ~HMX 係可被寫入資料,而其他儲存單元則已有儲存資料。在第6圖中,檔頭位址ADDRH_X 小於檔頭ADDRH_(K-1) ,此時表示HM1 ~HMX 與HMK ~HMN 係可被寫入資料,而其他儲存單元則已有儲存資料。在第7圖中,檔頭位址ADDRH_X 等於檔頭ADDRH_(K-1) ,此時表示HM1 ~HMN 皆可被寫入資料。設於步驟302中,待發送指標PTRWS 係為檔頭儲存單元HM(K-1) 之檔頭位址ADDRH_(K-1) 且已確認指標PTRAA 也等於檔頭位址ADDRH_(K-1) ,則協定層PR可將檔頭H寫入檔頭儲存單元HMK ,且協定層PR寫入檔頭H至檔頭儲存單元HMK 之後,會設定待發送指標PTRWS 為檔頭儲存單元HMK 之檔頭位址ADDRH_K (如第8圖所示)。
於步驟303中,傳送端T之資料連結層DL根據待發送指標PTRWS 與已發送指標PTRAS ,以判斷在共用檔頭記憶體SHHM之檔頭儲存單元HM1 ~HMN 之中,需傳送端T之資料連結層DL發送其所儲存之資料之資料儲存單元。第9圖、第10圖以及第11圖分別為說明當待發送指標PTRWS 大於、小於、等於已發送指標PTRAS 時傳送端T之資料連結層DL需發送其所儲存之資料之資料儲存單元之示意圖。舉例而言,假設此時待發送指標PTRWS 所指示之位址為檔頭儲存單元HMK 之檔頭位址ADDRH_K ,而已發送指標PTRASS 為檔頭儲存單元HMY 之檔頭位址ADDRH_Y 。由第9圖可看出,若檔頭位址ADDRK 大於檔頭位址ADDRH_Y ,則表示傳送端T需發送對應於檔頭儲存單元HM(Y+1) ~HMK 所儲存之檔頭之封包。由第10圖可看出,若檔頭位址ADDRH_K 小於檔頭位址ADDRH_Y ,則表示傳送端T需發送對應於檔頭儲存單元HM(Y+1) ~HMN 與HM1 ~HMK 所儲存之檔頭之封包。由第11圖可看出,若檔頭位址ADDRH_K 等於檔頭位址ADDRH_Y ,則表示傳送端T目前沒有需要發送的封包。
當傳送端T之資料連結層DL根據待發送指標PTRWS 與已發送指標PTRAS ,判斷需發送對應於檔頭儲存單元HMK 所儲存之檔頭H之封包後,傳送端T之資料連結層DL會讀取儲存於檔頭儲存單元HMK 所儲存之檔頭H。傳送端T之資料連結層DL根據檔頭H之保留區RA之資料負載位址資訊DADDR_PL ,以得到儲存於共用資料負載記憶體SHPM之資料負載儲存單元PLMK 之資料負載位址ADDRPL_K 。如此,傳送端T之資料連結層DL可根據資料負載位址ADDRPL_K ,以讀取儲存於資料負載儲存單元PLMK 之資料負載P,並將資料負載P與檔頭H組成一封包DP,以將封包DP傳送至接收端R。
於步驟304中,當接收端R所傳送之資料連結回覆訊號SDL 係為重送訊號SLBAD 時,此時傳送端T之資料連結層DL可根據已確認指標PTRAA 以調整已發送指標PTRAS ,以使資料連結層DL重新傳送封包DP。以下將作更進一步地說明。
由於傳送端T之資料連結層DL係根據已確認指標PTRAA 與已發送指標PTRAS ,以判斷在檔頭儲存單元HM1 ~HMN 中,已傳送過資料但尚未接收到接收端R所傳送之代表正確地接收之交握訊號SACK 之檔頭儲存單元。舉例而言,設已確認指標PTRAA 所指示之位址為檔頭儲存單元HMZ 之檔頭位址ADDRH_Z ,而已發送指標PTRAS 所指示之位址為檔頭儲存單元HMK 之檔頭位址ADDRH_K 。若檔頭位址ADDRH_K 大於檔頭位址ADDRH_Z ,則表示傳送端T已發送對應於檔頭儲存單元HMZ ~HMK 所儲存之檔頭之封包,但尚未接收到接收端R所傳送之代表正確地接收之交握訊號SACK ;若檔頭位址ADDRH_K 小於檔頭位址ADDRH_Z ,則表示傳送端T已發送對應於檔頭儲存單元HMZ ~HMN 與HM1 ~HMK 所儲存之檔頭之封包,但尚未接收到接收端R所傳送之代表正確地接收之交握訊號SACK 之檔頭儲存單元;若檔頭位址ADDRH_K 等於檔頭位址ADDRH_Z ,則表示針對對應於傳送端T所發送之封包,皆已接收到接收端R所傳送之代表正確地接收之交握訊號SACK
設於步驟304中,已確認指標PTRAA 所指示之位址為檔頭儲存單元HM(K-1) 之檔頭位址ADDRH_(K-1) ,且已發送指標PTRAS 所指示之位址為檔頭儲存單元HMK 之檔頭位址ADDRH_K 。此時,若資料連結回覆訊號SDL 係為重送訊號SLBAD 時,表示重送訊號SLBAD 係對應於檔頭儲存單元HMK 所儲存之檔頭H之封包DP,因此資料連結層DL可將已發送指標PTRAS 設為已確認指標PTRAA (意即檔頭位址ADDRH_(K-1) )。如此一來,如同前述(於步驟303)之說明,當資料連結層DL根據待發送指標PTRWS 與已發送指標PTRAS ,以判斷在共用檔頭記憶體SHHM之檔頭儲存單元HM1 ~HMN 之中,資料連結層DL需發送其所儲存之資料之資料儲存單元時,由於此時待發送指標PTRWS 仍為檔頭位址ADDRH_K 而已發送指標PTRAS 已被重新設定為檔頭位址ADDRH_(K-1) ,因此資料連結層DL會以類似於步驟303之說明之方式重新發送封包DP。
於步驟305中,由於交握訊號SACK 係包含有關對應於封包DP之檔頭順序參數HSEQ之資訊,因此協定層PR可先根據交握訊號SACK 所指示之檔頭順序參數HSEQ,以判斷交握訊號SACK 係對應於封包DP。
當協定層PR判斷交握訊號SACK 係指示封包DP已被正確地接收時,協定層PR可調整已確認指標PTRAA ,以釋放用來儲存封包DP之檔頭H之檔頭儲存單元。舉例而言,設封包DP之檔頭H儲存於共用檔頭記憶體SHHM之檔頭儲存單元HMK ,因此協定層PR會將已確認指標PTRAA 設定為檔頭儲存單元HMK 之檔頭位址ADDRH_K ,以表示針對對應於檔頭儲存單元HMK 所儲存之檔頭H之封包DP,傳送端T已接收到接收端R所傳送之代表正確地接收之交握訊號SACK 。由於根據步驟302之說明可知,協定層PR根據已確認指標PTRAA 與待發送指標PTRWS ,以判斷共用檔頭記憶體SHHM之檔頭儲存單元HM1 ~HMN 是否可被寫入,因此當協定層PR設定已確認指標PTRAA 為共用檔頭記憶體SHHM之檔頭儲存單元HMK 之檔頭位址ADDRHK 時,表示協定層PR會判斷檔頭儲存單元HMK 可被寫入資料(意即釋放共用檔頭記憶體SHHM之檔頭儲存單元HMK )。
此外,協定層PR可根據檔頭H之資料負載位址資訊DADDR_PL ,以得到資料負載位址ADDRPL_K 。如此,協定層PR根據資料負載位址ADDRPL_K ,可將對應於共用資料負載記憶體SHPM之資料負載儲存單元PLMK 之共用資料負載旗號FPL_K ,標記為「可被寫入」,以釋放共用資料負載記憶體SHPM之資料負載儲存單元PLMK
因此,由前述之說明可知,當協定層PR判斷交握訊號SACK 係指示封包DP已被正確地接收時,協定層PR會調整已確認指標PTRAA 與共用資料負載記憶體SHPL中用來儲存封包DP之資料負載P之資料負載儲存單元PLMK 所對應之共用資料負載旗號FPL_K ,以釋放在共用檔頭記憶體SHHM中用來儲存封包DP之檔頭H之檔頭儲存單元HMK 與共用資料負載記憶體SHPM中用來儲存封包DP之資料負載P之資料負載儲存單元PLMK
當協定層PR判斷交握訊號SACK 係指示封包DP沒有被正確地接收時,協定層PR根據已確認指標PTRAA 調整已發送指標PTRAS ,以使該傳送端T之資料連結層DL據以重新傳送封包DP。其工作原理與步驟304中當資料連結層DL接收之資料連結回覆訊號SDL 為重送訊號SLBAD 之方法類似,故不再贅述。
另外,相較於先前技術,在本發明之資料傳輸方法300中,當傳送端T欲傳送對應於資料負載P之封包DP時,封包DP之檔頭H係儲存於共用檔頭記憶體SHHM之一檔頭儲存單元,且封包DP之資料負載P係儲存於共用資料負載記憶體SHPM之一資料負載儲存單元。也就是說,當傳送端T欲傳送對應於封包DP時,傳送端T僅需要等同於一個檔頭之大小之記憶體(如檔頭儲存單元HMK )與等同於一個資料負載之大小之記憶體(如資料負載儲存單元PLMK ),以儲存封包DP。換句話說,當傳送端T欲傳送對應於資料負載P之封包DP時,傳送端T僅需要有等同於一個封包大小之記憶體空間,以儲存封包DP。如此可節省記憶體空間,以降低成本。
請參考第4圖。第4圖係為說明本發明之可節省USB協定中用來儲存封包之記憶體之裝置400之示意圖。裝置400用來傳送資料。裝置400包含一傳送裝置410與一接收裝置420。傳送裝置510係為傳送端。傳送裝置410包含一第一資料連結層裝置411、一第一協定層裝置412、一共用檔頭記憶體SHHM,以及一共用資料負載記憶體SHPM。接收裝置420係為接收端。接收裝置420包含一第二資料連結層裝置421、一第二協定層裝置422,以及一共用記憶體SHM。裝置400之接收裝置420與傳送裝置410係分別根據本發明之第一實施例與第二實施例所衍生。
當傳送裝置410欲發送一資料負載P時,第一協定層裝置412將資料負載P寫入於共用資料負載記憶體SHPM,且第一協定層裝置412根據資料負載P產生檔頭H,並將檔頭H寫入共用檔頭記憶體SHHM。接著,第一資料連結層裝置411直接將儲存於共用檔頭記憶體SHHM內之檔頭H與儲存於共用資料負載記憶體SHPM內之資料負載P組成一封包DP,並發送封包DP至接收裝置420。
當接收裝置420接收到封包DP時,會將封包DP儲存於共用記憶體SHM。接收裝置420之第二資料連結層裝置421對儲存於共用記憶體SHM內之封包DP之檔頭H進行錯誤碼檢查,以得出資料連結檢查結果EDL ,並據以產生資料連結回覆訊號SDL 至傳送裝置410,以及傳送協定層處理訊號SPRP 至第二協定層裝置422。當資料連結檢查結果EDL 表示錯誤時,第二資料連結層裝置421所產生之資料連結回覆訊號SDL 係為重送訊號SLBAD ,用來告知傳送裝置410對應於封包DP之資料連結檢查結果EDL 表示錯誤,以使傳送裝置410之第一資料連結層裝置411據以發送封包DP。當資料連結檢查結果EDL 表示正確時,第二資料連結層裝置421所產生之資料連結回覆訊號SDL 係為確認訊號SLGOOD ,用來告知傳送裝置410對應於封包DP之資料連結檢查結果EDL 表示正確,且第二協定層裝置412根據協定層處理訊號SPRP ,直接對儲存於共用記憶體SHM內之封包DP進行後續處理。更明確地說,當第二協定層裝置412接收到協定層處理訊號SPRP 時,第二協定層裝置412會根據封包DP之檔頭H之端點資訊EP,以判斷封包DP是否為同時型傳輸類型封包。當第二協定層裝置412判斷封包DP為同時型傳輸類型封包時,直接接收封包DP之資料負載P;當第二協定層裝置412判斷封包DP非為同時型傳輸類型封包時,對封包DP之資料負載P之資料負載錯誤檢查碼CRCD 進行循環冗餘檢查,得出資料負載檢查結果EPL ,並據以發送一交握訊號SACK 至傳送裝置410,以讓傳送裝置410之第一協定層裝置412據以作後續處理。
此外,上述之接收裝置也可根據資料傳輸方法200之另一實施例而據以實施。舉例而言,根據資料傳輸方法200之另一實施例之接收裝置520係可用來替代上述之接收裝置420。請參考第12圖,接收裝置520包含一資料連結記憶體DLM、一協定記憶體PRM、一第二資料連結層裝置521、一第二協定層裝置522。資料連結記憶體DLM包含檔頭儲存單元HM1 ~HMN 。檔頭儲存單元HM1 ~HMN 用來儲存檔頭。檔頭儲存單元HM1 ~HMN 分別包含共用檔頭旗號FH1 ~FHN 。共用檔頭旗號FH1 ~FHN 分別用來指示檔頭儲存單元HM1 ~HMN 是否可被寫入資料。協定記憶體PRM包含資料負載儲存單元PLM1 ~PLMN 。資料負載儲存單元PLM1 ~PLMN 用來儲存資料負載。資料負載儲存單元PLM1 ~PLMN 分別包含共用資料負載旗號FPL1 ~FPLN 。共用資料負載旗號FPL1 ~FPLN 係分別用來指示資料負載儲存單元PLM1 ~PLMN 是否可被寫入資料。換句話說,資料連結記憶體DLM係用來儲存封包之檔頭而不儲存封包之資料負載,協定記憶體PRM用來儲存封包之資料負載而不儲存封包之檔頭。第二資料連結層裝置521電性連接於資料連結記憶體DLM。第二協定層裝置522電性連接於協定記憶體PRM。接收裝置520與傳送裝置410之間之資料傳輸之工作原理與接收裝置420與傳送裝置410之間之資料傳輸之工作原理類似,故不再贅述。
綜上所述,本發明提供一資料傳輸方法,當接收端接收到封包時,將封包儲存於共用記憶體,且資料連結層對儲存於共用記憶體內之封包之檔頭進行錯誤碼檢查,以得出資料連結檢查結果,並據以傳送協定層處理訊號給協定層。如此,協定層可根據協定層處理訊號,以直接對儲存於共用記憶體內之封包進行後續處理。利用本發明之資料傳輸方法,當接收端接收封包時,接收端僅需要有等同於封包大小之記憶體空間,以儲存該封包。此外,本發明另提供一資料傳輸方法,當傳送端欲傳送資料負載時,傳送端之協定層將資料負載寫入於共用資料負載記憶體。協定層根據資料負載產生對應之檔頭,並將對應之檔頭寫入共用檔頭記憶體,且傳送端之資料連結層直接將儲存於共用檔頭記憶體內之檔頭與儲存於共用資料負載記憶體內之資料負載組成一封包,並發送該封包。利用本發明之資料傳輸方法,當傳送端欲傳送對應資料負載時,傳送端僅需要有等同於一個封包大小之記憶體空間,以儲存對應於資料負載之封包。如此可節省記憶體空間,以降低成本,帶給使用者更大的方便。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200、300...方法
201~203、301~305...步驟
400...裝置
410...傳送裝置
411、421、521...資料連結層裝置
412、422、522...協定層裝置
420、520...接收裝置
ADDRH_(K-1) 、ADDRH_X 、ADDRH_Y ...檔頭位址
CRCH 、CRCD 、CRCL ...錯誤檢查碼
DP...封包
D...資料段
DLM...資料連結記憶體
EP...端點資訊
H...檔頭
HM1 ~HMN ...檔頭儲存單元
HSEQ...檔頭順序參數
LW...連結命令字元
P...資料負載
PLM1 ~PLMN ...資料負載儲存單元
PRM...協定記憶體
PTRAA ...已確認指標
PTRAS ...已發送指標
PTRWS ...待發送指標
RA...保留區
SACK ...交握訊號
SDL ...資料連結回覆訊號
SPRP ...協定層處理訊號
SD1 ~SDN ...資料
SHHM...共用檔頭記憶體
T...傳送端
TP...型態資訊
第1圖係為說明於先前技術中USB 3.0封包的封包格式之示意圖。
第2圖係為說明根據本發明之第一實施例之可節省USB協定中用來儲存封包之記憶體之資料傳輸方法之流程圖。
第3圖係為說明根據本發明之第二實施例之可節省USB協定中用來儲存封包之記憶體之資料傳輸方法之流程圖。
第4圖係為說明本發明之可節省USB協定中用來儲存封包之記憶體之裝置之示意圖。
第5圖、第6圖以及第7圖分別為說明當已確認指標大於、小於,或等於待發送指標時之可被寫入之共用檔頭記憶體之檔頭儲存單元之示意圖。
第8圖係為說明協定層寫入檔頭至檔頭儲存單元之後,設定待發送指標為對應的檔頭位址之示意圖。
第9圖、第10圖以及第11圖分別為說明當待發送指標大於、小於、等於已發送指標時傳送端之資料連結層需發送其所儲存之資料之資料儲存單元之示意圖。
第12圖係為說明本發明之接收裝置之另一實施例之示意圖。
300...方法
301~305...步驟

Claims (35)

  1. 一種可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法,包含:一接收端接收一傳送端所傳送之一封包,且將該封包儲存於一共用記憶體;該接收端之一資料連結層對儲存於該共用記憶體內之該封包之一檔頭(header)進行錯誤碼檢查,以得出一資料連結檢查結果,並據以傳送一協定層處理訊號給該接收端之一協定層;以及該接收端之該協定層根據該協定層處理訊號,直接對儲存於該共用記憶體內之該封包進行後續處理。
  2. 如請求項1所述之資料傳輸方法,其中該接收端之該資料連結層對儲存於該共用記憶體內之該封包之該檔頭進行錯誤碼檢查,以得出該資料連結檢查結果,並據以傳送該協定層處理訊號給該接收端之該協定層,包含:對該封包之該檔頭之一檔頭錯誤檢查碼進行循環冗餘檢查,以得出一檔頭檢查結果;對該封包之該檔頭之一連結命令字元(link command word)錯誤檢查碼進行循環冗餘檢查,以得出一連結命令字元檢查結果;以及根據該檔頭檢查結果與該連結命令字元檢查結果,得出該資料連結檢查結果;以及於該資料連結檢查結果表示正確時,傳送該協定層處理訊號給該接收端之該協定層,並傳送一確認訊號至該傳送端;其中該確認訊號係用來告知該傳送端所傳送之該封包於該接收端之該資料連結檢查結果表示正確。
  3. 如請求項2所述之資料傳輸方法,其中該接收端之該資料連結層對儲存於該共用記憶體內之該封包之該檔頭進行錯誤碼檢查,以得出該資料連結檢查結果,並據以傳送該協定層處理訊號給該接收端之該協定層另包含:於該資料連結檢查結果表示錯誤時,傳送一重送訊號至該傳送端;其中該重送訊號係用來通知該傳送端所傳送之該封包於該接收端之該資料連結檢查結果表示錯誤。
  4. 如請求項3所述之資料傳輸方法,其中根據該檔頭檢查結果與該連結命令字元檢查結果,得出該資料連結檢查結果包含:當該檔頭檢查結果與該連結命令字元檢查結果皆為正確時,該資料連結檢查結果表示正確;以及當該檔頭檢查結果與該連結命令字元檢查結果中有一者為錯誤時,該資料連結檢查結果表示錯誤。
  5. 如請求項1所述之資料傳輸方法,其中該接收端之該協定層根據該協定層處理訊號,直接對儲存於該共用記憶體內之該封包進行後續處理,包含:根據該協定層處理訊號,以得到該共用記憶體之一位址;根據該共用記憶體之該位址,以讀取儲存於該共用記憶體之該封包;以及根據該封包之該檔頭之一端點資訊,接收該封包之該資料負載以進行後續處理。
  6. 如請求項5所述之資料傳輸方法,其中根據該封包之該檔頭之該端點資訊,接收該封包之該資料負載以進行後續處理包含:當該端點資訊指示該封包為同時型傳輸類型封包時,接收該封包之該資料負載以進行後續處理;以及當該端點資訊指示該封包非為同時型傳輸類型封包時,對該共用記憶體所儲存之該封包之該資料負載之一資料負載錯誤檢查碼進行循環冗餘檢查,得出一資料負載檢查結果,並據以發送一交握(ACK)訊號至該傳送端。
  7. 如請求項1所述之資料傳輸方法,其中該接收端係為一主控端(host)或一裝置端(device),且該傳送端係為對應於該接收端之一主控端或一裝置端。
  8. 一種可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法,包含:一傳送端之一協定層將一資料負載寫入於一共用資料負載記憶體;該傳送端之該協定層根據該資料負載產生一檔頭,並將該檔頭寫入一共用檔頭記憶體;以及該傳送端之一資料連結層直接將儲存於該共用檔頭記憶體內之該檔頭與儲存於該共用資料負載記憶體內之該資料負載組成一封包,並將該封包傳送至一接收端。
  9. 如請求項8所述之資料傳輸方法,其中該傳送端之該協定層將該資料負載寫入於該共用資料負載記憶體包含:根據對應於該共用資料負載記憶體之一共用資料負載旗號,以將該資料負載寫入該共用資料負載記憶體;以及將對應於該共用資料負載記憶體之該共用資料負載旗號,標記為已被寫入。
  10. 如請求項9所述之資料傳輸方法,其中該傳送端之該協定層根據該資料負載產生該檔頭,並將該檔頭寫入該共用檔頭記憶體包含:根據一待發送指標與一已確認指標,以判斷該共用檔頭記憶體係可被寫入;根據該資料負載與對應於該共用資料負載記憶體之一資料負載位址資訊,以產生該檔頭,並將該檔頭儲存於該共用檔頭記憶體;以及根據對應於該共用檔頭記憶體之一檔頭位址,以調整該待發送指標;其中對應於該共用資料負載記憶體之該資料負載位址資訊係用來指示該共用資料負載記憶體之一資料負載位址。
  11. 如請求項10所述之資料傳輸方法,其中該資料負載位址資訊係儲存於該檔頭之一保留(reserved)區。
  12. 如請求項10所述之資料傳輸方法,其中該傳送端之該資料連結層將儲存於該共用檔頭記憶體內之該檔頭與儲存於該共用資料負載記憶體內之該資料負載組成該封包,並將該封包傳送至該接收端,包含:該傳送端之該資料連結層根據該待發送指標與一已發送指標,以判斷需發送對應於該共用檔頭記憶體所儲存之該檔頭之該封包;該傳送端之該資料連結層根據該檔頭,以得到該資料負載位址資訊,並據以得到儲存於該共用資料負載記憶體之該資料負載;以及該傳送端之該資料連結層將該檔頭與該資料負載組成該封包,並傳送至該接收端。
  13. 如請求項12所述之資料傳輸方法,該資料傳輸方法另包含:該傳送端之該資料連結層根據一接收端所傳送之對應於該封包之一資料連結回覆訊號,以判斷是否要重新傳送該封包;以及該傳送端之該協定層根據該接收端所傳送之對應於該封包之一交握訊號,以進行後續處理。
  14. 如請求項13所述之資料傳輸方法,其中該傳送端之該資料連結層根據該接收端所傳送之對應於該封包之該資料連結回覆訊號,以判斷是否要重新傳送該封包,包含:於該資料連結回覆訊號為重送訊號時,根據該已確認指標調整該已發送指標,以使該傳送端之該資料連結層據以重新傳送該封包。
  15. 如請求項14所述之資料傳輸方法,其中於該資料連結回覆訊號為重送訊號時,根據該已確認指標,調整該已發送指標,以使該傳送端之該資料連結層據以重新傳送該封包,包含:該傳送端之該資料連結層根據該待發送指標與該已發送指標,以判斷需發送對應於該共用檔頭記憶體所儲存之該檔頭之該封包;該傳送端之該資料連結層根據該檔頭,以得到該資料負載位址資訊,並據以得到儲存於該共用資料負載記憶體之該資料負載;以及該傳送端之該資料連結層將該檔頭與該資料負載組成該封包,並傳送至該接收端。
  16. 如請求項13所述之資料傳輸方法,其中該傳送端之該協定層根據該接收端所傳送之對應於該封包之該交握訊號,以進行後續處理,包含:於該交握訊號指示該封包已被正確地接收時,根據該交握訊號以調整該已確認指標與對應於該共用資料負載記憶體之該共用資料負載旗號,以釋放該共用檔頭記憶體與該共用資料負載記憶體;以及於該交握訊號指示該封包沒有被正確地接收時,根據該已確認指標調整該已發送指標,以使該傳送端之該資料連結層據以重新傳送該封包。
  17. 如請求項16所述之資料傳輸方法,其中於該交握訊號指示該封包已被正確地接收時,根據該交握訊號以調整該已確認指標與對應於該共用資料負載記憶體之該共用資料負載旗號,以釋放該共用檔頭記憶體與該共用資料負載記憶體,包含:根據該交握訊號內所儲存之一檔頭順序參數,以得到該共用檔頭記憶體之該檔頭位址與儲存於該共用檔頭記憶體之該檔頭;根據該檔頭之該資料負載位址資訊,以得到該共用資料負載記憶體之該資料負載位址;根據該共用檔頭記憶體之該檔頭位址,以調整該已確認指標,來釋放該共用檔頭記憶體;以及根據該資料負載位址,以將對應於共用資料負載記憶體之該共用資料負載旗號,標記為可被寫入,來釋放該共用資料負載記憶體。
  18. 如請求項16所述之資料傳輸方法,其中於該交握訊號指示該封包沒有被正確地接收時,根據該已確認指標調整該已發送指標,以使該傳送端之該資料連結層據以重新傳送該封包,包含:該傳送端之該資料連結層根據該待發送指標與該已發送指標,以判斷需發送對應於該共用檔頭記憶體所儲存之該檔頭之該封包;該傳送端之該資料連結層根據該檔頭,以得到該資料負載位址資訊,並據以得到儲存於該共用資料負載記憶體之該資料負載;以及該傳送端之該資料連結層將該檔頭與該資料負載組成該封包,並傳送至該接收端。
  19. 如請求項18所述之資料傳輸方法,其中該傳送端係為一主控端(host)或一裝置端(device),且該接收端係為對應於該傳送端之一主控端或一裝置端。
  20. 一種可節省通用串列匯流排協定中用來儲存封包之記憶體之裝置,包含:一傳送裝置,包含:一共用檔頭記憶體;一共用資料負載記憶體;一第一協定層裝置,用來根據一資料負載,以產生一檔頭,並儲存該資料負載於該共用資料負載記憶體,以及儲存該檔頭於該共用檔頭記憶體;以及一第一資料連結層裝置,用來直接將儲存於該共用檔頭記憶體之該檔頭與儲存於該共用資料負載記憶體之該資料負載組成一封包,並發送該封包;以及一接收裝置,用來接收該封包,該接收裝置包含:一共用記憶體,用來儲存該封包;一第二資料連結層裝置,用來對儲存於該共用記憶體內之該封包之該檔頭進行錯誤碼檢查,以產生一資料連結檢查結果,並根據該資料連結檢查結果,以傳送一資料連結回覆訊號至該傳送裝置,與產生一協定層處理訊號;以及一第二協定層裝置,用來根據該協定層處理訊號與儲存於該共用記憶體之該封包之該檔頭之一端點資訊,以判斷儲存於該共用記憶體之該封包是否為同時型傳輸類型封包。
  21. 如請求項20所述之裝置,其中當該第二協定層裝置判斷該封包為同時型傳輸類型封包時,直接接收該封包之該資料負載;當該第二協定層裝置判斷該封包非為同時型傳輸類型封包時,對該封包之該資料負載之一資料負載錯誤檢查碼進行循環冗餘檢查,得出一資料負載檢查結果,並據以發送一交握訊號至該傳送裝置,以使該傳送裝置之該第一協定層作後續處理。
  22. 如請求項20所述之裝置,其中當該資料連結檢查結果表示錯誤時,該資料連結回覆訊號係為重送訊號以使該傳送裝置之該第一資料連結層重送該封包;當該資料連結檢查結果表示正確時,該資料連結回覆訊號係為確認訊號且該第二資料連結裝置傳送該協定層處理訊號至該第二協定層裝置。
  23. 一種節省記憶體之接收裝置,該接收裝置依據一通訊協定接收一封包,該封包包含一檔頭與一資料負載,該接收裝置包含:一共用記憶體,包含複數個封包儲存單元,該複數個封包儲存單元之一第一封包儲存單元儲存該封包且該第一封包儲存單元對應一第一記憶體位址;一第二資料連結層裝置,電性連接於該共用記憶體,該第二資料連結層裝置依據該第一記憶體位址來讀取儲存於該第一封包儲存單元之該封包;以及一第二協定層裝置,電性連接於該共用記憶體,該第二協定層裝置依據該第一記憶體位址讀取儲存於該第一封包儲存單元之該封包。
  24. 如請求項23所述之接收裝置,其中該第一封包儲存單元包含一第一旗號用來指示該第一封包儲存單元是否可被寫入資料。
  25. 如請求項23所述之接收裝置,其中該第二資料連結層裝置依據該封包之該檔頭進行錯誤碼檢查以產生一資料連結檢查結果,並根據該資料連結檢查結果傳送一資料連結回覆訊號至該接收裝置所對應之一傳送裝置。
  26. 如請求項25所述之接收裝置,其中該第二資料連結層裝置根據該資料連結檢查結果,選擇性地產生一協定層處理訊號至該第二協定層裝置,該第二協定層裝置收受該協定層處理訊號後依據該封包之該檔頭之一端點資訊,以判斷儲存於該共用記憶體之該封包是否為同時型傳輸類型封包。
  27. 如請求項26所述之接收裝置,其中該協定層處理訊號包含該第一記憶體位址,使該第二協定層裝置依據該第一記憶體位址讀取儲存於該第一封包儲存單元之該封包。
  28. 一種節省記憶體之接收裝置,該接收裝置依據一通訊協定接收一封包,該封包包含一檔頭與一資料負載,該接收裝置包含:一資料連結記憶體,包含複數個檔頭儲存單元,該複數個檔頭儲存單元之一第一檔頭儲存單元儲存該封包之該檔頭而不儲存該封包之該資料負載,且該第一檔頭儲存單元對應一第二記憶體位址;一協定記憶體,包含複數個資料負載儲存單元,該複數個資料負載儲存單元之一第一資料負載儲存單元儲存該封包之該資料負載而不儲存該封包之該檔頭,且該第一資料負載儲存單元對應一第三記憶體位址;一第二資料連結層裝置,電性連接於該資料連結記憶體,該第二資料連結層裝置依據該第二記憶體位址來讀取該封包之該檔頭;以及一第二協定層裝置,電性連接於該協定記憶體,該第二協定層裝置依據該第三記憶體位址讀取該封包之該資料負載。
  29. 如請求項28所述之接收裝置,其中該第一檔頭儲存單元包含一第二旗號用來指示該第一檔頭儲存單元是否可被寫入資料,而該第一資料負載單元包含一第三旗號用來指示該第一資料負載儲存單元是否可被寫入資料。
  30. 如請求項28所述之接收裝置,其中該第二資料連結層裝置依據該封包之該檔頭進行錯誤碼檢查以產生一資料連結檢查結果,並根據該資料連結檢查結果傳送一資料連結回覆訊號至該接收裝置所對應之一傳送裝置。
  31. 如請求項30所述之接收裝置,其中該第二資料連結層裝置根據該資料連結檢查結果,選擇性地產生一協定層處理訊號至該第二協定層裝置,該第二協定層裝置收受該協定層處理訊號後依據該封包之該檔頭之一端點資訊,以判斷該封包為同時型傳輸類型封包。
  32. 如請求項31所述之接收裝置,其中該協定層處理訊號包含該第二記憶體位址,使該第二協定層裝置依據該第二記憶體位址讀取儲存於該第一檔頭儲存單元之該封包之該檔頭。
  33. 如請求項31所述之接收裝置,其中該協定層處理訊號包含該第三記憶體位址,其中當該第二協定層裝置判斷該封包為同時型傳輸類型封包時,該第二協定層裝置依據該第三記憶體位址直接讀取儲存於該第一資料負載儲存單元之該封包之該資料負載而不對該資料負載之一資料負載錯誤檢查碼進行循環冗餘檢查;當該第二協定層裝置判斷該封包非為同時型傳輸類型封包時,該第二協定層裝置依據該第三記憶體位址讀取儲存於該第一資料負載儲存單元之該封包之該資料負載並對該資料負載之該資料負載錯誤檢查碼進行循環冗餘檢查,得出一資料負載檢查結果,並據以發送一交握訊號至該傳送裝置,以使該傳送裝置之一第一協定層作後續處理。
  34. 一種節省記憶體之傳送裝置,該傳送裝置依據一通訊協定傳送一封包,該封包包含一檔頭與一資料負載,該傳送裝置包含:一第一協定層裝置,用來根據該封包之該資料負載以產生該封包之該檔頭;一共用檔頭記憶體,電性連接於該第一協定層裝置,該共用檔頭記憶體包含複數個共用檔頭儲存單元,該複數個共用檔頭儲存單元之一第一共用檔頭儲存單元儲存該封包之該檔頭而不儲存該封包之該資料負載,且該第一共用檔頭儲存單元對應一第四記憶體位址;一共用資料負載記憶體,電性連接於該第一協定層裝置,該共用資料負載記憶體包含複數個共用資料負載儲存單元,該複數個共用資料負載儲存單元之一第一共用資料負載儲存單元儲存該封包之該資料負載而不儲存該封包之該檔頭,且該第一共用資料負載儲存單元對應一第五記憶體位址;以及一第一資料連結層裝置,電性連接於該共用資料負載記憶體與該共用檔頭記憶體,該第一資料連結層裝置依據該第四記憶體位址與該第五記憶體位址將該檔頭與該資料負載組成該封包並發送該封包至該傳送裝置所對應之一接收裝置。
  35. 如請求項34所述之傳送裝置,其中該第一共用資料負載儲存單元包含一第四旗號用來指示該第一共用資料負載儲存單元是否可被寫入資料。
TW098142314A 2009-05-07 2009-12-10 可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置 TWI384810B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW098142314A TWI384810B (zh) 2009-05-07 2009-12-10 可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17647909P 2009-05-07 2009-05-07
TW98134939 2009-10-15
TW098142314A TWI384810B (zh) 2009-05-07 2009-12-10 可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置

Publications (2)

Publication Number Publication Date
TW201041344A TW201041344A (en) 2010-11-16
TWI384810B true TWI384810B (zh) 2013-02-01

Family

ID=43063099

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098142314A TWI384810B (zh) 2009-05-07 2009-12-10 可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置

Country Status (2)

Country Link
US (1) US8291301B2 (zh)
TW (1) TWI384810B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI547799B (zh) * 2014-06-02 2016-09-01 美光科技公司 用於在可擴充記憶體系統協定中傳送封包之系統及方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI423037B (zh) 2009-05-15 2014-01-11 Etron Technology Inc 一種提升於通用串列匯流排協定中傳輸同時型傳輸類型的封包之效率之方法與裝置
US9239810B2 (en) 2012-06-30 2016-01-19 Intel Corporation Low power universal serial bus
US9606955B2 (en) 2014-02-10 2017-03-28 Intel Corporation Embedded universal serial bus solutions
KR20200065929A (ko) * 2018-11-30 2020-06-09 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11252263B2 (en) * 2019-06-28 2022-02-15 The Regents Of The University Of California Method and apparatus for efficient communication packet generation in internet of things (IOT)
US11592809B2 (en) 2019-11-29 2023-02-28 Rohde & Schwarz Gmbh & Co. Kg System and method for measurement data management in a distributed environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US20050120163A1 (en) * 2003-12-02 2005-06-02 Super Talent Electronics Inc. Serial Interface to Flash-Memory Chip Using PCI-Express-Like Packets and Packed Data for Partial-Page Writes

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8121148B2 (en) * 2005-03-24 2012-02-21 Ixia Protocol stack using shared memory
TWI290284B (en) * 2005-10-13 2007-11-21 Via Tech Inc Method and electronic device of packet error detection on PCI express bus link
FR2906953B1 (fr) * 2006-10-06 2008-12-05 Thales Sa Systeme securise pour transferer des donnees entre deux equipements.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185641B1 (en) * 1997-05-01 2001-02-06 Standard Microsystems Corp. Dynamically allocating space in RAM shared between multiple USB endpoints and USB host
US20050120163A1 (en) * 2003-12-02 2005-06-02 Super Talent Electronics Inc. Serial Interface to Flash-Memory Chip Using PCI-Express-Like Packets and Packed Data for Partial-Page Writes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI547799B (zh) * 2014-06-02 2016-09-01 美光科技公司 用於在可擴充記憶體系統協定中傳送封包之系統及方法
US9733847B2 (en) 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol

Also Published As

Publication number Publication date
US8291301B2 (en) 2012-10-16
TW201041344A (en) 2010-11-16
US20100287456A1 (en) 2010-11-11

Similar Documents

Publication Publication Date Title
TWI384810B (zh) 可節省通用串列匯流排協定中用來儲存封包之記憶體之資料傳輸方法及其裝置
US8281203B2 (en) PCI.Express communication system and communication method thereof
US11379278B2 (en) Methods and apparatus for correcting out-of-order data transactions between processors
JP4985565B2 (ja) 送受信回路、受信回路及び送受信回路の制御方法
TWI437444B (zh) 通用序列匯流排傳輸轉譯器及大量傳輸方法
US8166227B2 (en) Apparatus for processing peripheral component interconnect express protocol
JP2008547330A (ja) 自動化シリアルプロトコルイニシエータポートトランスポート層再試行機構
US20070002827A1 (en) Automated serial protocol target port transport layer retry mechanism
JP2003509961A (ja) CANopenおよび他のCANアプリケーション層プロトコルにおけるアクノレッジフレームを自動的に送信するための方法
CN103533045A (zh) 一种用于pcie数据链路层高性能容错的方法
WO2005057400A1 (ja) 電子装置、その制御方法、ホスト装置及びその制御方法
US20190286604A1 (en) Information processing system, information processing method, and memory system
JP2003509787A (ja) Canマイクロコントローラにおいてデータの完全性を確保するセマフォー符号化法およびこの方法を実行するcanマイクロコントローラ
US20060215678A1 (en) Communication data controller
US20090003228A1 (en) Bad data packet capture device
KR101332279B1 (ko) 데이터 패킷 전송 방법 및 디바이스
EP1826678B1 (en) Storage control apparatus, storage control method, computer product, and information processing apparatus
CN101887403B (zh) 节省usb协议中存封包的存储器的数据传输方法及装置
JP5434643B2 (ja) データ転送装置、データ送受信装置及び画像形成装置
US8438445B2 (en) Methods and systems for error detection of data transmission
CN114337938A (zh) 一种数据传输方法、数据重传方法、装置和相关设备
JP4690271B2 (ja) データ転送バッファ制御装置及びデータ転送制御方法
TWI493351B (zh) 通用串列匯流排主機控制方法和通用串列匯流排主機控制器
TWI399052B (zh) 封包重傳方法及相關電子裝置
CN115499104A (zh) 一种芯片die间的通信方法