TW202311971A - 用於互連協定的資料處理的方法、控制器以及儲存裝置 - Google Patents
用於互連協定的資料處理的方法、控制器以及儲存裝置 Download PDFInfo
- Publication number
- TW202311971A TW202311971A TW110133525A TW110133525A TW202311971A TW 202311971 A TW202311971 A TW 202311971A TW 110133525 A TW110133525 A TW 110133525A TW 110133525 A TW110133525 A TW 110133525A TW 202311971 A TW202311971 A TW 202311971A
- Authority
- TW
- Taiwan
- Prior art keywords
- protocol
- frame
- protocol data
- data unit
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Communication Control (AREA)
Abstract
一種用於互連協定的資料處理的方法、控制器以及儲存裝置。在第一裝置將訊框發送至第二裝置的處理過程中:將多個含有訊框啟始標記(SOF)的協定資料單元(PDU)分配至該第一裝置的多個啟用的通道中的一指定通道,以及使含有訊框啟始標記的協定資料單元之間的協定資料單元距離配置為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。藉此,可有助於大幅降低依據該互連協定而實現的硬體協定引擎的複雜度,尤其是其中在資料鏈路層接收器的解碼器的複雜度,從而更可降低研發、驗證、維護上的困難度。
Description
本發明係關於一種電子裝置,尤其是關於用於互連協定的資料處理的方法、控制器以及儲存裝置。
現今行動裝置(如智慧型手機、平板電腦、多媒體裝置、穿戴式裝置之類的運算裝置)中產生和處理的資料量不斷增加,行動裝置內部的晶片對晶片的或受行動裝置影響的互連介面技術需要進一步的演進,從而達至能夠滿足更高的傳輸速度、低功耗運作、具可擴充性、支援多工處理、易於採用等目標。
為此,行動產業處理器介面(Mobile Industry Processor Interface, MIPI)聯盟開發出能夠符合上述目標的互連介面技術,例如關於實體層的MIPI M-PHY規範以及關於統一協定(Unified Protocol, UniPro)的MIPI UniPro 規範。另一方面,聯合電子裝置工程委員會(Joint Electron Device Engineering Council, JEDEC)利用MIPI M-PHY規範及通用傳協定MIPI UniPro規範推出下一代高性能非揮發性記憶體標準,稱為通用快閃儲存(Universal Flash Storage, UFS),其可實現每秒十億位元等級的高速傳輸及低功耗運作,並具有高階行動系統所需的功能和可擴展性,從而有助於為業界快速的採用。
技術人員在依據這些互連介面技術來開發的產品為相關晶片、電子模組或電子裝置時,要確保產品的功能及運作能夠符合規範。舉例而言,依據UFS標準而實現的系統如包含了運算裝置及非揮發性記憶體的儲存裝置,運算裝置及儲存裝置分別擔任本地的(local)主機與遙距的(remote)裝置的角色。依據UniPro規範,主機與裝置建立起雙向的鏈路(link),且主機與裝置之間的鏈路可以在任一傳輸方向上配置為多個(最多4個)通道(lane)。相對應地,在依據UniPro規範的互連協定來實現主機與裝置時,主機與裝置各自地配置互連協定的處理電路,就必需要支援多個通道的功能。再者,在4個通道的應用情景下,互連協定的處理電路中資料鏈接層的對應電路,需要在每一個時脈週期中,能夠同時處理4個訊框的錯誤控制,並需因應各種可能的錯誤的交互影響的複雜情況。由此,當支援的通道數量較多,互連協定的處理電路的複雜度就愈高。又當需要實現更寛的通道的匯流排寬度(bus width)時,互連協定的處理電路的複雜度也就變得更高。
由於UniPro規範基本上由硬體電路來實現,如果在實現UniPro規範的時候,因為不同產品的需要而要實現多個通道時,就需要進行複雜度高的硬體電路的設計,從而造成研發、驗證、維護上的困難。
實施方式提供了一種用於互連協定的資料處理的技術,其中在第一裝置將訊框發送至第二裝置的處理過程中:將多個含有訊框啟始標記(SOF)的協定資料單元(PDU)分配至該第一裝置的多個啟用(active)的通道中的一指定通道,以及使含有訊框啟始標記(SOF)的協定資料單元(PDU)之間的協定資料單元距離配置為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。藉此,可有助於大幅降低依據該互連協定而實現的硬體協定引擎的複雜度。
以下依據該技術提出各種實施方式,如用於一互連協定的功耗模式改變的資訊配置的方法、控制器以及儲存裝置。
實施方式提供一種用於互連協定的資料處理的方法,適用於能夠依據該互連協定鏈接一第二裝置的一第一裝置中,該方法包括:在該第一裝置將訊框發送至該第二裝置的處理過程中:藉由該第一裝置的用於實現該互連協定的一硬體協定引擎,將多個含有訊框啟始標記的協定資料單元中的一第一啟始的協定資料單元分配至該第一裝置的多個啟用的通道中的一指定通道;以及藉由該硬體協定引擎,將該等含有訊框啟始標記的協定資料單元中的一第二啟始的協定資料單元分配在該指定通道,並使該第一啟始的協定資料單元與該第二啟始的協定資料單元之間的協定資料單元距離為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。
實施方式提供一種儲存裝置,能夠依據一互連協定鏈接一主機,該儲存裝置包括:一介面電路以及一裝置控制器。該介面電路用於實現該互連協定的一實體層以鏈接該主機。該裝置控制器用於耦接到該介面電路和一儲存模組,該裝置控制器包括:一硬體協定引擎。該硬體協定引擎用於實現該互連協定。其中在該儲存裝置將訊框發送至該主機的處理過程中,該硬體協定引擎執行多個運作,該等運作包括:該硬體協定引擎將多個含有訊框啟始標記的協定資料單元中的一第一啟始的協定資料單元分配至該儲存裝置的多個啟用的通道中的一指定通道;以及該硬體協定引擎將該等含有訊框啟始標記的協定資料單元中的一第二啟始的協定資料單元分配在該指定通道,並使該第一啟始的協定資料單元與該第二啟始的協定資料單元之間的協定資料單元距離為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。
實施方式提供一種控制器,適用於能夠依據一互連協定鏈接一第二裝置的一第一裝置中,該控制器包括:一介面電路,該介面電路用於實現該互連協定的一實體層以鏈接該第二裝置;以及一控制器模組,該控制器模組用於耦接到該介面電路,且用於實現該互連協定,在該第一裝置將訊框發送至該第二裝置的處理過程中。該控制器模組執行多個運作,該等運作包括:將多個含有訊框啟始標記(start of frame,SOF)的協定資料單元(protocol data unit,PDU)中的一第一啟始的協定資料單元分配至該第一裝置的多個啟用的通道中的一指定通道;以及將該等含有訊框啟始標記的協定資料單元中的一第二啟始的協定資料單元分配在該指定通道,並使該第一啟始的協定資料單元與該第二啟始的協定資料單元之間的協定資料單元距離為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。
在上述方法、控制器或儲存裝置的一些實施例中,被分配的該第一啟始的協定資料單元及該第二啟始的協定資料單元各自對應至於該硬體協定引擎的一時脈訊號的一個相對應的時脈週期,且在該相對應的時脈週期中,最多只有一個含有訊框啟始標記的協定資料單元被分配到該等啟用的通道中的該指定通道來傳送。
在上述方法、控制器或儲存裝置的一些實施例中,該等含有訊框啟始標記的協定資料單元對應至該硬體協定引擎中一資料鏈路層的多個資料訊框。
在上述方法、控制器或儲存裝置的一些實施例中,該互連協定是通用快閃儲存(Universal Flash Storage, UFS)標準。
如上所述,提供了一種用於互連協定的資料處理的技術的多種實施方式。藉此,可有助於大幅降低依據該互連協定而實現的硬體協定引擎的複雜度,尤其是其中資料鏈路層的解碼器的複雜度,從而更可降低研發、驗證、維護上的困難度。
為充分瞭解本發明之目的、特徵及功效,茲藉由下述具體之實施例,並配合所附之圖式,對本發明做詳細說明,說明如後。
以下實施方式提供了一種用於互連協定的資料處理的技術的多種實施例,其中在第一裝置將訊框發送至第二裝置的處理過程中:將多個含有訊框啟始標記(start of frame, SOF)的協定資料單元(protocol data unit, PDU)分配至該第一裝置的多個啟用(active)的通道中的一指定通道,以及使含有訊框啟始標記(SOF)的協定資料單元(PDU)之間的協定資料單元距離配置為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。藉此,可有助於大幅降低依據該互連協定而實現的硬體協定引擎的複雜度,尤其是其中在資料鏈路層接收器的解碼器的複雜度,從而更可降低研發、驗證、維護上的困難度。
為便於理解及說明,首先依據該技術提供一種電路架構的實施方式,這種電路架構具足夠彈性及能夠有效率地被配置來滿足不同產品的廠商特定的需求,以適應各種廠商的設計而有助於產品開發。如圖1所示,這種電路架構應用於儲存系統1時,儲存系統1的主機10的控制器模組(如主機控制器12)或儲存系統1的儲存裝置20的控制器模組(如裝置控制器22)可分別實現為包括硬體協定引擎及處理單元的電路架構,其中該控制器的處理單元為可選的。又依據用於互連協定的資料處理的技術的方法將揭示於圖2。
請參考圖1,其為依據本發明之一實施方式的儲存系統的示意方塊圖。如圖1所示,儲存系統1包括主機10及儲存裝置20。主機10及儲存裝置20之間透過一種互連協定來通訊,從而讓主機10對儲存裝置20進行資料的存取。該互連協定例如是通用快閃儲存(Universal Flash Storage, UFS)標準。主機10例如是智慧型手機、平板電腦、多媒體裝置之類的運算裝置。儲存裝置20例如是該運算裝置內部或外部的儲存裝置,例如是基於非揮發性記憶體的儲存裝置。儲存裝置20可以在主機10的控制下寫入資料或向主機10提供被寫入資料。儲存裝置20可以被實現為固態儲存裝置(SSD),多媒體卡(MMC),嵌入式MMC(eMMC)、安全數位(SD)卡或通用快閃儲存(UFS)裝置,然而本揭露內容的實現並不受限於上述示例。
主機10包括主機介面11、主機控制器12及應用處理器16。
主機介面11用於實現該互連協定的一實體層以鏈接該儲存裝置20。例如,主機介面11用以實現UFS標準的實體(M-PHY)層。
主機控制器12耦接於主機介面11與應用處理器16之間。當應用處理器16需要對儲存裝置20進行資料的存取時,發出代表對應的存取動作指令至主機控制器12,透過該互連協定與儲存裝置20溝通,從而達成對儲存裝置20進行資料的存取。
主機控制器12包括硬體協定引擎13及處理單元14。其中處理單元14為可選的。
硬體協定引擎13用於實現該互連協定的一鏈接層。就以該互連協定為UFS標準為例,該鏈接層為統一協定(Unified Protocol, UniPro)層。硬體協定引擎13依據該鏈接層的規範來與主機介面11及處理單元14進行溝通及資訊的轉換。
處理單元14,其與該硬體協定引擎13耦接,用以與應用處理器16進行通訊。處理單元14可執行一個或多個韌體。例如應用處理器16所執行的作業系統、驅動程式或應用程式所發出的存取動作指令透過處理單元14所執行的韌體轉換為符合該互連協定的鏈接層的指令格式,並繼而發送至硬體協定引擎13以依據該鏈接層的規範來進行處理。韌體例如可儲存於處理單元14的內部記憶體,或儲存於主機控制器12的內部記憶體,其中內部記憶體可包括揮發性記憶體及非揮發性記憶體。
儲存裝置20包括裝置介面21、裝置控制器22及儲存模組26。
裝置介面21用於實現該互連協定的一實體層以鏈接該主機10。例如,主機介面21用以實現UFS標準的實體(M-PHY)層。
裝置控制器22耦接於裝置介面21與儲存模組26之間。裝置控制器22可以控制儲存模組26的寫入運作、讀取運作或抹除運作。裝置控制器22可以透過地址匯流排或資料匯流排與儲存模組26交換資料。儲存模組26例如包含一個或多個非揮發性記憶體的記憶體晶片。
裝置控制器22包括硬體協定引擎23及處理單元24。其中處理單元24為可選的。
硬體協定引擎23用於實現該互連協定的一鏈接層。就以該互連協定為UFS標準為例,該鏈接層為UniPro層。硬體協定引擎13依據該鏈接層的規範來與裝置介面21及處理單元24進行溝通及資訊的轉換。
處理單元24,其與該硬體協定引擎23耦接,用以透過裝置介面21而與主機10進行通訊。處理單元24可執行一個或多個韌體。例如處理單元24執行一個或多個韌體來控制或指示儲存模組26的寫入運作、讀取運作或抹除運作,對來自硬體協定引擎23的訊息作處理或將訊息發送至硬體協定引擎23。韌體例如可儲存於處理單元24的內部記憶體、裝置控制器22的內部記憶體,或儲存模組26的特定儲存區域,其中內部記憶體可包括揮發性記憶體及非揮發性記憶體。
如圖1所示,主機介面11能夠透過用於發送/接收資料的資料線Din和Dout、用於發送硬體重置訊號的重置線RST、用於發送資料的時脈線CLK而與裝置介面21耦接。資料線Din和Dout可以被實現為多對,其中一對的資料線Din或Dout可稱為一個通道(lane)。主機介面11可以使用至少一種介面協定與裝置介面21行通信,介面協定諸如移動工業處理器介面(MIPI)、通用快閃儲存(UFS)、小型計算機系統介面(SCSI)或串行連接的SCSI(SAS),然而本揭露內容的實現並不受限於上述示例。在UFS標準之下,主機10及儲存裝置20之間可以配置為支持多個通道,以增進傳輸的效率,其中在主機10至儲存裝置20之間或儲存裝置20至主機10之間的任一方向上目前UFS標準最多能支持2個通道,多個通道可以選擇設定為啟用(active)或不啟用(inactive)。例如,在UFS標準中,從MIPI M-PHY v4.x規範來看,從M-PHY到PA層的資料寬度最大為1個通道有32位元和2個通道有64位元。
基於圖1所示的控制器(如主機控制器12或裝置控制器22)可分別實現為包括硬體協定引擎及處理單元的電路架構,以下舉例說明實現用於互連協定的資料處理的方法。請參考圖2,其為用於互連協定的資料處理的方法的一種實施方式的流程圖。該方法可用於能夠依據一互連協定鏈接一第二裝置(如主機10)的一第一裝置(如儲存裝置20)中。為便於說明,以下就以第一裝置為儲存裝置20,第二裝置為主機10來舉例說明。如圖2A所示,該方法包括步驟S10~S20。該等步驟在該第一裝置(如儲存裝置20)的用於實現該互連協定的一鏈接層的一硬體協定引擎(如硬體協定引擎23)依據該互連協定的該鏈接層,在該第一裝置將訊框發送至該第二裝置的處理過程中執行。
如步驟S10所示,藉由該第一裝置的用於實現該互連協定的一鏈接層的一硬體協定引擎,將多個含有訊框啟始標記(SOF)的協定資料單元(PDU)中的一第一啟始的協定資料單元(PDU)分配至該第一裝置的多個啟用(active)的通道中的一指定通道。
如步驟S20所示,藉由該硬體協定引擎,將該等含有訊框啟始標記的協定資料單元(PDU)中的一第二啟始的協定資料單元(PDU)分配在該指定通道,並使該第一啟始的協定資料單元與該第二啟始的協定資料單元之間的協定資料單元距離為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。
在一些實施例中,被分配的該第一啟始的協定資料單元及該第二啟始的協定資料單元各自對應至於該硬體協定引擎的一時脈訊號的一個相對應的時脈週期,且在該相對應的時脈週期中,最多只有一個含有訊框啟始標記的協定資料單元(PDU)被分配到該等啟用的通道中的該指定通道來傳送。
在一些實施例中,該等含有訊框啟始標記(SOF)的協定資料單元(PDU)對應至該硬體協定引擎中一資料鏈路層的多個訊框(frame)(如圖5所示的資料訊框),且該時脈訊號用於該硬體協定引擎中一實體配接器層(PA)中該等啟用的通道的同步。
以下進一步舉例說明上述步驟的實現方式。
關於步驟S10、步驟S20,例如互連協定以UFS標準為例,UFS標準中的鏈接層為UniPro層所定義,在多個通道被啟用(active)的情景下,UniPro規範建議的通道分配方式,是將一個訊框的協定資料單元(PDU)同步透過多個通道來傳送。為了提高資料通量(throughput),在一些實施例中,本案發明人提出依據UFS標準可以進一步將M-PHY實現為1個通道有64位元並可將UFS標準所允許的通道數目提升至2以上如允許利用實現3個或4個通道,此為超越目前在UFS標準中,對M-PHY規範的限制的實作方式。故在延伸自目前UFS標準的4個通道被啟用(active)的情景下,若沿用UniPro規範建議的通道分配方式,在傳送端(如主機10) 的資料鏈路層傳送器(或簡記為DL TX)會出現在一個時脈週期中有4個含有訊框啟始標記的協定資料單元同時被傳送的情形,相對應地造成在接收端(如儲存裝置20)的資料鏈路層接收器(或簡記為DL RX)的解碼器需要具備在一個時脈週期中同時處理4個訊框錯誤處理的能力並且需要兼具不同通道發現錯誤時各種不同組合的錯誤處理方式。如此一來,資料鏈路層接收器的解碼器的複雜度較高,不利於實現及驗證。相較之下,圖2中步驟S10、步驟S20的方法,在傳送端將含有訊框啟始標記(SOF)的協定資料單元(PDU)皆分配至多個啟用(active)的通道中的一指定通道(例如通道0),則相對應而言,在接收端就只需要在對應的指定通道(例如通道0)實現訊框錯誤處理的功能即可。如此一來,如後所示,圖2的方法能夠有助於降低資料鏈路層接收器的解碼器的複雜度。故在實現產品時,只要在傳送端及接收端(如主機10及儲存裝置20)採用依據圖2的方法來實現,即可獲得複雜度降低的效益。
在上述關於圖2的方法的實施例中,雖然以第一裝置為儲存裝置20,第二裝置為主機10來舉例說明,然而該方法亦適用於第一裝置為主機10,第二裝置為儲存裝置20的情況下。
以下藉由該互連協定為通用快閃儲存(UFS)標準為例作詳細說明。UFS標準中包含UFS指令集層(UFS Command Set Layer,USC)、UFS傳輸協定層(UFS Transport Layer,UTP)及UFS互連層(UFS Interconnect Layer,UIC)。UIC層又包含鏈接層(Link Layer)及實體層(Physical Layer),UIC的鏈接層依據UniPro規範而定義,UIC的實體層依據M-PHY規範而定義。
請參考圖3,其為圖1的儲存系統依據UFS標準的分層架構的示意圖。由於UFS標準基於MIPI統一協定(UniPro)層以及MIPI實體(M-PHY)層,圖1所示的主機10的主機介面11及硬體協定引擎13分別用以實現圖3中的M-PHY層110及UniPro層130;圖1所示的儲存裝置20的裝置介面21及硬體協定引擎23分別用以實現圖3中的M-PHY層210及UniPro層230。
如圖3所示,UniPro層130(或230)可以包括實體配接器層(PHY adapter layer,PA)131(或231)、資料鏈路層(data link layer,DL)132(或232)、網路層(network layer)133(或233)和傳輸層(transport layer)134(或234)。儲存裝置20的UniPro層230中的各個層也可以相似地運作及實現。
實體配接器層(131或231)用以將M-PHY層(110或210)耦接到資料鏈路層(132或232)。實體配接器層(131或231)可以在M-PHY層(110或210)和資料鏈路層(132或232)之間執行頻寬控制、功率管理等。在實現時,主機10的M-PHY層110包含發送器111及接收器112,又儲存裝置20的M-PHY層210包含發送器211及接收器212,藉此能夠建立資料通道SL1及SL2以進行全雙功通訊。UniPro規範支援在每一傳輸方向上 (如前向或反向)的鏈路有多個資料通道。
資料鏈路層(132或232)可以執行用於主機10和儲存裝置20之間的資料傳輸的流程控制(flow control)。即,資料鏈路層(132或232)可以監視資料傳輸或控制資料傳輸速率。此外,資料鏈路層(132或232)可以執行基於循環冗餘校驗(cyclic redundancy check, CRC)的錯誤控制。資料鏈路層(132或232)可以使用從網路層(133或233)接收到的封包來產生訊框(frame),或者可以使用從實體配接器層(131或231)接收到的訊框來產生封包。
網路層(133或233)用於對於從傳輸層(134或234)接收的封包選擇傳輸路徑的路由功能。
傳輸層(134或234)可以使用從UFS應用層接收的命令來配置適合於協定的資料段(segment),並且將該資料段發送到網路層(133或233),或者可以從網路層(133或233)接收的封包中提取命令並且發送該命令至UFS應用層。傳輸層(134或234)可以使用基於序列的錯誤控制方案,以保證資料傳輸的有效性。
再者,UniPro層(130或230)中更定義了裝置管理實體(device management entity, DME)(135或235),其能夠與M-PHY層(110或210)及UniPro層(130或230)中的各層互通,如實體配接器層(131或231)、資料鏈路層(132或232)、網路層(133或231)和傳輸層(134或234)以至UFS應用層互通,從而實現涉及統一協定(UniPro)整體性的功能如開機、關機、重置、功耗模式改變等控制或組態的功能。
請參考圖4A,其為實現上述圖2的方法的電路架構的一種實施方式的示意圖。如圖4A所示,可依據圖2的方法在主機及儲存裝置的硬體協定引擎中資料鏈路層(132或232)及實體配接器層(131或231)加以實現。
如在一實施例中,在資料鏈路層(132或232)中實現距離確定邏輯(1320或2320),其可用來計算在處理訊框的傳送的要求時,協定資料單元距離(PDU distance),或對含有訊框啟始標記(SOF)的協定資料單元(PDU)之間的協定資料單元距離(PDU distance)加以判斷及計算,並將關於協定資料單元距離的資訊傳送至實體配接器層(131或231)中實現的傳送邏輯(1310或2310)。資料鏈路層(132或232)及實體配接器層(131或231)依據步驟S10而利用指定通道(如4個啟用的通道0-4中的一個通道,如通道0)來傳送含有訊框啟始標記(SOF)的協定資料單元(PDU),並參照來自距離確定邏輯(1320或2320)的資訊,使得含有訊框啟始標記(SOF)的協定資料單元之間滿足步驟S20中所要求的協定資料單元距離的條件。此外,上述實施例也可僅實現在資料鏈路層(132或232)。
在一些實施例中,在資料鏈路層(132或232)中可對應地實現一接收用解碼器(1325或2325)及一訊框啟始標記(SOF)校準邏輯(1327或2327),其用以處理來自實體配接器層(131或231)的協定資料單元(PDU)。上述圖4A的「邏輯」指的是利用邏輯電路、靭體或硬體電路來實現的功能模組。
請參考圖4B,其為圖4A中的資料鏈路層及實體配接器層的一種實施例的示意方塊圖。為便於理解依據圖2的方法的電路架構的實現方式,圖4B僅針對資料鏈路層(如圖4A中132或232)的傳送器及相對應的實體配接器層(如圖4A中131或231)的傳送器的實施例做說明。如圖4B所示,透過資料鏈路層傳送器300及實體配接器層傳送器400來實現依據圖2的方法。圖1的主機10的控制器及儲存裝置20的控制器可依據UniPro規範及圖4B的資料鏈路層傳送器300及實體配接器層傳送器400來實現。
在圖4B中,資料鏈路層傳送器(或簡記為DL TX)300包括訊框傳輸單元310及SOF距離邏輯單元320。訊框傳輸單元310可依據UniPro規範來實現資料訊框傳送。SOF距離邏輯單元320對應到圖4A中的距離確定邏輯(1320或2320)。訊框傳輸單元310除了可配置為依據UniPro規範來實現資料訊框傳送以外,更進一步可配置為依據如圖4B所示例的架構,並利用SOF距離邏輯單元320,以實現依據圖2的方法,依據步驟S10而利用指定通道(如通道0)來傳送含有訊框啟始標記(SOF)的協定資料單元(PDU)並使得含有訊框啟始標記(SOF)的協定資料單元之間滿足步驟S20中所要求的協定資料單元距離的條件。
在圖4B中,實體配接器層傳送器(或簡記為PA TX)400包含通道分配單元410、IDLE編碼單元420、拌碼器單元(scrambler)430、通道重對映(lane remapping)單元440。
通道分配單元410用以依據來自資料鏈路層傳送器300的資料訊框的多個協定資料單元(PDU)進行通道分配。舉例而言,通道分配單元410可配置為接收來自資料鏈路層傳送器300的資料訊框的多個協定資料單元(PDU),轉換為多個實體配接器層協定資料單元(或可稱為符號(symbol)),並依據圖2的方法將多個協定資料單元分配到啟用的多個通道中。通道分配單元410對應到圖4A中的傳送邏輯(1310或2310)。例如,通道分配單元410可以配置為包含通道分配器411、SOF置放邏輯單元413及SOF距離邏輯單元415。通道分配器411除了可配置為依據UniPro規範來實現資料訊框傳送以外,更進一步可配置為依據如圖4B所示例的架構,並利用SOF置放邏輯單元413及SOF距離邏輯單元415,以實現依據圖2的方法,依據步驟S10而利用指定通道(如通道0)來傳送含有訊框啟始標記(SOF)的協定資料單元(PDU)並使得含有訊框啟始標記(SOF)的協定資料單元之間滿足步驟S20中所要求的協定資料單元距離的條件。
在圖4B的實施例中,通道分配單元410將多個接收到的協定資料單元分配到啟用的多個通道中,每個通道需要相對應的一組IDLE編碼單元420、拌碼器單元430、通道重對映單元440,從而依據UniPro規範來處理符號,並進而將處理後的符號傳送至實體層(M-PHY)。為了簡潔起見,圖4B僅顯示出某一通道所需要的一組IDLE編碼單元420、拌碼器單元430、通道重對映單元440。舉例而言,若支援4個通道,則需要實現4組同樣的單元。IDLE編碼單元420可依據UniPro規範的要求,配置為於沒有資料要傳送時改為傳送閒置符號(IDLE symbols)所需的編碼運作,拌碼器單元430、通道重對映單元440則可依據UniPro規範的要求而分別實現為實體配接器層的拌碼(scramble)及通道重對映(lane remapping)的資料處理運作。由於IDLE編碼單元420、拌碼器單元430、通道重對映單元440為依據UniPro規範的要求的一般實現方式,故不再贅述。
請參考圖4C,其為圖4B中資料鏈路層傳送器300的運作的一種實施例的示意流程圖。資料鏈路層傳送器300可配置為利用訊框傳輸單元310及SOF距離邏輯單元320來協同運作來實現資料訊框傳送,並執行圖4C以實現依據圖2的方法。例如,訊框傳輸單元310用以實現資料訊框傳輸;SOF距離邏輯單元320用以記錄、計算或判斷TC訊框之間的距離並通知訊框傳輸單元310。
圖4C的運作包含以下步驟。如步驟S110所示,資料鏈路層傳送器300(如訊框傳輸單元310)判斷是否有TC訊框請求(如訊框傳送請求)。若步驟S110判斷出有TC訊框請求,則執行步驟S120,否則重覆步驟S110。如步驟S120所示,訊框傳輸單元310確定兩個鄰近TC訊框之間的距離是否滿足圖2的方法所要求的協定資料單元距離的條件。若步驟S120判斷出TC訊框之間的距離已滿足該協定資料單元距離的條件,則執行步驟S130及步驟S140,否則重覆執行步驟S120。如步驟S130所示,訊框傳輸單元310進行TC訊框傳輸,以將TC訊框傳送至實體配接器層傳送器400的通道分配單元410。如步驟S140所示,距離計算器進行計算,如SOF距離邏輯單元320利用計數器(counter)作為距離計算器,來進一步記錄、計算TC訊框之間的距離,然後重覆步驟S120直至TC訊框之間的距離滿足上述條件。圖4C的運作可重覆的執行以將多個TC訊框傳送至實體配接器層傳送器400。
請參考圖4D,其為圖4B中實體配接器層傳送器400的運作的一種實施例的示意流程圖。實體配接器層傳送器400可配置為利用通道分配單元410的通道分配器411、SOF置放邏輯單元413及SOF距離邏輯單元415來協同運作來實現資料訊框傳送,並執行圖4D以實現依據圖2的方法。例如,通道分配單元410用以實現通道分配;SOF置放邏輯單元413用以實現判斷含有訊框啟始標記(SOF)的符號及指定通道(如通道0)的位置(如符號0、1、2或3的位置)並通知通道分配器411以置放於實體配接器層的指定通道;SOF距離邏輯單元415用以記錄、計算或判斷訊框之間的距離並通知通道分配器411。
圖4D的運作包含以下步驟。如步驟S210所示,實體配接器層傳送器400(如通道分配單元410)判斷是否有TC訊框請求(如訊框傳送請求) 。若步驟S210判斷出有TC訊框請求,則執行步驟S220,否則重覆步驟S210。如步驟S220所示,實體配接器層傳送器400(如通道分配單元410)確定匯流排(如啟用的通道)是否閒置。若步驟S220判斷出匯流排為閒置,則執行步驟S230及步驟S240,否則重覆步驟S220。如步驟S230所示,進行通道分配,如透過通道分配器411、SOF置放邏輯單元413及SOF距離邏輯單元415來實現。如步驟S240所示,進行距離檢查,如透過SOF距離邏輯單元415來實現。圖4D的運作可重覆的執行以實現依據圖2的方法的通道分配。
再者,在一些實施例中,SOF距離邏輯單元320(或SOF距離邏輯單元415)可以配置為依據在某一個時脈週期T0中含有一第一訊框啟始標記(SOF)的協定資料單元被置放於指定通道(如通道0)的位置(如符號0、1、2或3的位置)、其他啟用的通道(如通道1、2、3)的數目(如3個)及該時脈週期T0後經過的時脈週期的數量(如經過了1或2個時脈週期)來記錄、計算訊框之間的距離或該第一啟始的協定資料單元與其後的一第二啟始的協定資料單元之間的協定資料單元距離。藉此,訊框傳輸單元310與SOF距離邏輯單元320協同運作實現依據圖2的方法,從而作出有別於UniPro規範建議的通道分配方式。通道分配器411、SOF置放邏輯單元413及SOF距離邏輯單元415協同運作實現依據圖2的方法,從而作出有別於UniPro規範建議的通道分配方式。
以下進一步說明依據圖2的方法實現傳送端時,訊框傳送及接收的實施例。
請參考圖5,其為依據UniPro標準的資料鏈路層的資料訊框的格式的示意圖。如圖5所示,在資料訊框的酬載(可稱L2酬載,L2 payload)所負載的資料為0位元組時,該資料訊框最小包含4個協定資料單元(如4個16位元的資料),其中有1個協定資料單元含有訊框啟始標記(SOF)。此外,該含有訊框啟始標記(SOF)的協定資料單元更可含有運輸級別(traffic class)標記,例如是TC0、TC1以表示優先權等級,而運輸級別為TC0或TC1的資料訊框,在UniPro規範中簡稱為TCx訊框,在本文中可稱TC訊框。此外,ESC_DL標記代表此訊框為資料鏈路層的訊框,EOF_EVEN(或EOF_ODD)為代表訊框結束(end of frame,EOF)的標記,CRC-16代表循環冗餘校驗碼。由此,依據圖5的資料訊框的格式,一個資料訊框至少包含了4個協定資料單元(PDU)。在圖6及類似的圖式中,例如用簡化了的記號TC.SOF、PDU、EOF、CRC來代表一個訊框所包含的4個協定資料單元(PDU)。當然,資料訊框的酬載所負載的資料可以大於0位元組,故資料訊框可包含4個以上的協定資料單元。而在實際的應用情景來說,只有4個協定資料單元的資料訊框只佔整體傳輸量中較小的量(如5%以下,如約1%),然而,資料訊框解碼器需要依據UniPro規範對這種訊框作處理,故以下實施例以只有4個協定資料單元的訊框來作為處理的對象,至於包含4個以上的協定資料單元的資料訊框,當然亦可適用。
請參考圖6,其為依據圖2的方法在傳送端進行通道分配的一實施例的示意圖。如圖6的上方所示,表示資料鏈路層傳送器(DL TX)需要回應的訊框傳送請求,在同一時脈週期(如時脈週期N)之下,同時有4個大小同為4個協定資料單元的訊框需要傳送至接收端。在圖6中以格子代表訊框的協定資料單元,格子以不同形式(如無填滿、分布較稀疏的點、斜線、分布較密的點)填滿以示意不同的訊框;又以下相似圖式中亦以相似方式表示訊框,故不再贅述。如圖6的下方所示,傳送端的資料鏈路層傳送器(如以DL TX表示),可依據圖2的方法的步驟S10及步驟S20,將4個訊框分配於4個時脈週期(如時脈週期N~N+3)來傳送。相對應地,在接收端的資料鏈路層接收器亦只要在對應的一個時脈週期來處理一個訊框即可,如此可大幅降低資料鏈路層接收器的複雜度。
請參考圖7,其為在接收端的資料鏈路層接收器的解碼器的架構的一實施例的示意圖。在前述延伸自目前UFS標準的4個通道的應用情景下,若未採用圖2的方法,即在資料鏈路層接收器需要如圖7所示的實現4個級聯(cascaded)的資料訊框解碼器(如前述圖4A中的1325或2325)並加上暫存器820,從而實現在一個時脈週期中最多能同時處理4個訊框。
請參考圖8A,其為依據圖2的方法實現傳送端時在接收端的資料鏈路層接收器的解碼器的架構的一實施例的示意圖。在前述延伸自目前UFS標準的4個通道的應用情景下,依據圖2的方法,在接收端的資料鏈路層接收器所需的資料訊框解碼器(如前述圖4A中的1325或2325)的數量可以減少至1個,如圖8所示意。這將大幅提高以高速率時脈進行硬體協定引擎的實現(例如利用ASIC或 FPGA)。因此,相較於圖7,圖8A的實施例中關於暫存器(Orphan FF)820的關鍵時序路徑减少了75%;並且,圖8A的實施例中實現錯誤處理的複雜度也降低了。最重要的是,複數度高的級聯方式的錯誤處理已不再需要。
請參考圖8B,其為依據圖2的方法實現資料鏈路層接收器的解碼器的架構的另一實施例的示意圖。圖8B的實施例在解碼器的架構方面與圖8A實施例相同。相較於圖8A,圖8B的實施例更具體地提出暫存器821、822、823、824的配置方式,可適用於訊框傳輸的多種情形,如以下關於圖11至圖15的多個實施例。誠然,本發明的實現方式並不受此等示例限制。
請參考圖9,其為在資料鏈路層接收器的解碼器的一實施例的示意圖。資料鏈路層接收器(DL RX)的解碼器關於協定管理方面的運作如下:
步驟S410:找出 SOF 位置。若步驟S410找出SOF,則執行步驟S420。
步驟S420:檢查啟始的協定資料單元(head PDU)並檢查是否有「新SOF」、「搶先」(preemption)或「錯誤」。
若步驟S420判斷有發現「新SOF」,那麼這是一個重疊條件,則執行步驟S421以作錯誤報告,然後再執行步驟S420。
若步驟S420判斷有發現「搶先」,再做一次步驟S420。
若步驟S420判斷有發現「錯誤」,則執行步驟S423、步驟S450以進行錯誤處理,然後執行步驟S410。
若步驟S420判斷以上情況(「新SOF」、「搶先」、「錯誤」)均未發生,則執行步驟S424以進行訊框解碼,然後並進入步驟S430。
步驟S430:檢查搜索資料PDU或EOF,並檢查是否有「新SOF」、「搶先」或「錯誤」。
若步驟S430判斷有發現「新SOF」,那麼這是一個重疊條件,則執行步驟S431以作錯誤報告,然後再執行步驟S420。
若步驟S430判斷有發現「搶先」,則重複執行步驟S430。
若步驟S430判斷有發現「錯誤」,則執行步驟S433、步驟S450以進行錯誤處理,然後執行步驟S410。
若步驟S430判斷有發現資料PDU或EOF,則執行步驟S434。在步 驟S434中,對於資料PDU則加以儲存,然後執行步驟S430;對於EOF,則進行EOF解碼,然後進行步驟S440。
步驟S440:檢查搜索CRC,並檢查是否有「新SOF」、「搶先」或「錯誤」。
若步驟S440判斷有發現「新SOF」,那麼這是一個重疊條件,則執行步驟S441以作錯誤報告,然後再執行步驟S420。
若步驟S440判斷有發現「搶先」,則重複執行步驟S440。
若步驟S440判斷有發現「錯誤」,則執行步驟S443、步驟S450以,然後執行步驟S410。
若步驟S440判斷有發現CRC,則執行步驟S444以進行CRC校驗及訊框解碼,然後執行步驟S410。
上述圖9的運作示意針對UniPro規範的協定做管理、做搶先(preemption)的處理及錯誤處理(error handling)的運作流程。依據UniPro規範,資料鏈路層接收器(DL RX)的解碼器對每個協定資料單元(PDU)都要確定檢查一些事情,例如此PDU是否表示有新的訊框進來,此PDU是否表示有搶先的情況(即此PDU是別的訊框,不是目前的處理中訊框),此PDU是否為SOF、EOF或CRC。以上各種檢查要做錯誤處理,向上層或對應端(peer)報告,這方面可依據UniPro規範而實現錯誤處理,故不再贅述。
在圖9的運作可以應用在圖7、圖8A、圖8B的各個解碼器中。圖9的協定管理用以驗證每個PDU的資料正確以後,進一步進行如圖13B的資料管理,以促進後續的運作把自資料訊框分解後的資料往上層傳送。
由此可見,在傳送端依據圖2的方法來實現資料鏈路層,則可以令在接收端的資料鏈路層接收器所需的資料訊框解碼器的數量減少至1個,如圖8A或圖8B所示,如此確實可以有助於大幅降低資料鏈路層接收器的解碼器的複雜度。
在前述圖2的方法中,對應地存在至少兩個規則。第1個規則(如步驟S10、步驟S20)為,將多個含有訊框啟始標記(SOF)的協定資料單元(PDU)分配至多個啟用(active)的通道中的一指定通道。第2個規則(如步驟S20)為:含有訊框啟始標記(SOF)的協定資料單元(PDU)之間的協定資料單元距離配置為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。以下舉例說明。
在UniPro中,DL TX對邏輯通道(或稱通道(lane))進行操作。而對於前述第1個規則,前述的圖6說明了此規則的影響。圖6所示意的是一個4通道的應用情景。根據當前的UniPro規範,傳送端(或稱發起端,initiator)可以在一個時脈週期內發送4個訊框。應用第1個規則後,4個訊框則分為在四個時脈週期N~N+3中。假設對方(接收端或稱目標端,target)具有相同的參考M-PHY模組介面(Reference M-PHY MODULE Interface,RMMI)匯流排寬度,則可以令對方DL RX的解碼器在一個時脈週期內只需處理1個訊框。在圖6中,舉例使用4個通道,故在資料鏈路層中對應的邏輯通道中,適當地插入了多個填充符號(filler symbol, FLR)以使含有訊框啟始標記的協定資料單元(如以TC.SOF代表)之間滿足步驟S20中所要求的協定資料單元距離的條件。例如,從時脈週期N的協定資料單元TC.SOF與時脈週期N+1的協定資料單元TC.SOF之間相隔了共16個協定資料單元。上述插入填充符號的運作例如可透過圖4B的訊框傳輸單元310與SOF距離邏輯單元320來實現。
在UniPro中,具有「搶先」(preemption)、「實體配接器層控制協定交錯」(PHY Adapter Control Protocol (PACP) interleave)或「SKIP插入」(SKIP insertion)的功能,其可能會影響SOF接收的位置。但是,依據圖2的方法的實現中,SOF都會在指定通道(如通道0)上收到的,並且,DL RX的解碼器始終在一個時脈週期內處理一個訊框。
請參考圖10,其為依據圖2的方法在傳送端進行通道分配的另一實施例的示意圖。在圖10中,說明了使用兩個通道和RMMI匯流排寬度為80位元的操作,其中兩個通道以通道0、通道1表示。
在圖10中,示意了在時脈週期N和時脈週期N + 1上發送2個資料訊框。在依據圖2的方法分配協定資料單元後,在實體配接器層傳送器(PA TX)的通道0和通道1分配有上述資料訊框的協定資料單元。 請注意,在8b / 10b旁路模式(bypass mode)下使用80位元。在正常操作模式下,僅使用64位元。
如前所述,由於搶先、PACP交錯或SKIP插入,對方(接收器(RX))在接收時可能具有不同的SOF位置,如可能有4種接收的情況發生。 以下分別舉例說明。
請參考圖11,其為傳送端在依據圖10的通道分配時在接收端的資料鏈路層接收器的解碼器的資料處理的第一實施例的示意圖。在圖11中,在接收端的實體配接器層接收器(PA RX)在通道0接收到TC.SOF,接收端的資料鏈路層接收器(DL RX)在邏輯通道0接收到TC.SOF。這種情況表明接收時沒有發生關於協定資料單元的位置偏移。因此,DL RX的解碼器得以實現在1個時脈週期內僅需處理1個訊框。
請參考圖12,其為傳送端在依據圖10的通道分配時在接收端的資料鏈路層接收器的解碼器的資料處理的第二實施例的示意圖。請參考圖13A,其為傳送端在依據圖10的通道分配時在接收端的資料鏈路層接收器的解碼器的資料處理的第三實施例的示意圖。圖13B為因應圖11、12、13A的實施例在接收端的資料鏈路層接收器的解碼器的電路架構的一實施例的示意圖。圖13B所示架構為經圖9的協定管理以驗證PDU的資料正確以後,進一步進行資料的管理,例如進行搜尋(search)、合併(merge)、對齊(alignment)。
在圖12、13A的第二和第三實施例中,具有類似的操作。由於TC.SOF不在第一個位置上,因此如圖13B所示意,DL RX的解碼器可以使用暫存器821(或稱為用於對齊的暫存器(Alignment FF))進行對齊以使SOF在第一個位置上。如圖12或13A的右側箭頭所指的訊框所示意,在時脈週期N+1時,DL RX的解碼器得以實現在1個時脈週期內僅需處理1個訊框。
請參考圖13B,資料的管理如進行搜尋(search)、合併(merge)、對齊(alignment),可利用訊框逸出碼搜尋單元910、訊框PDU合併單元920、訊框對齊單元930、訊框解碼單元940來實現。訊框逸出碼搜尋單元910用以進行ESC_DL搜尋。訊框PDU合併單元920用以進行訊框PDU的合併。訊框對齊單元930用以進行訊框對齊。訊框解碼單元940用以進行訊框解碼。
在圖13B所示意的資料管理的運作如下,首先,利用訊框逸出碼搜尋單元910進行ESC_DL搜索,然後利用訊框PDU合併單元920合併後面的PDU。當訊框的部分PDU跨過一個時脈週期時,使用暫存器822(或稱為用於孤立的PDU的暫存器(Orphan FF))。當在如圖12、13A的情況,TC.SOF不在第一個位置上時,利用訊框對齊單元930及使用暫存器821(Alignment FF)進行對齊以使SOF在第一個位置上。當在接收到訊框的最後一個PDU後,利用訊框解碼單元940進行訊框解碼,並更新暫存器824(或稱為用於暫存收到的訊框的資訊的暫存器(Information FF))中訊框的資訊,並據以報告上層已收到了一個訊框。
請參考圖14,其為傳送端在依據圖10的通道分配時在接收端的資料鏈路層接收器的解碼器的資料處理的第四實施例的示意圖。如圖14所示,在時脈週期M,有一個訊框的TC.SOF在通道0的第四個協定資料單元位置,且該訊框的其他協定資料單元在通道1或在時脈週期M+1中;另一個訊框也有相似情況。在上述這種情況下,在依據圖9及圖13B進行DL RX的解碼器的運作時需要利用暫存器822(Orphan FF)來儲存不完整的資料訊框(即訊框中個別的協定資料單元),以供下一個時脈週期來進行訊框解碼。在時脈週期N+1,DL RX的解碼器對齊第一訊框。在時脈週期N+2,DL RX的解碼器解碼第一訊框並將不完整的第二資料訊框放在暫存器823(或稱為用於片段的PDU的暫存器(Fragment FF))上。在時脈週期N+2上,DL RX的解碼器對齊第二個資料訊框並進行解碼。藉此,DL RX的解碼器得以實現在1個時脈週期內僅需處理1個訊框。
對於前述第1個規則的實現,從設計、驗證的角度來看,在利用4個通道的應用情景下,若以通道0為指定通道為例,就不必為通道1、通道2、通道3有SOF的情形而建立測試用例(test cases)。 藉此,在利用4個通道的應用情景下,可將DL RX的解碼器的設計、驗證工作大致減少75%。
第2個規則(如步驟S20)為含有訊框啟始標記(SOF)的協定資料單元(PDU)之間的協定資料單元距離配置為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積(或可稱距離規則)。
在M-PHY規範中,定義了RMMI介面。RMMI可用作M-PHY層與UniPro層之間通訊的介面。並且,如M-PHY5.0規範草案R03中的RMMI匯流排寬度可設為10、20、40或80位元(即對應到1、2、4或8個平行的符號)。以上關於M-PHY規範的資訊暗示兩個代理端(agent)(如前述主機與裝置)之間的RMMI匯流排寬度可能各自具有不同大小。若沒有採用距離規則,則可能會發生如圖15的情況。
如圖15所示,在上述情況下,發起端的RMMI匯流排寬度為32位元,其中對於8b / 10b旁路模式來說,使用了40位元。另一方面,目標端具有64位元的RMMI匯流排寬度。結果,若發起端沒有採用距離規則,PA RX在通道0會接收到兩個訊框的TC.SOF,如圖15中時脈週期M、M+1。如此一來,DL RX的解碼器就必須要實現為在一個時脈週期內處理兩個訊框。為了要解決此問題,依據圖2的方法引入距離規則如下:
協定資料單元距離 = 啟用的通道的數量 * 最大的RMMI匯流排寬度;
(PDU Distance = Activate LANE number * Maximum RMMI Bus Width)。
請參考圖16,其為依據圖2的方法在傳送端進行通道分配及在資料鏈路層接收器的解碼器的資料處理的一實施例的示意圖。在圖16的實施例中,傳送端的通道的匯流排寬度為32位元,接收端內部的通道的匯流排寬度為64位元。舉例而言,對於M-PHY5.0規範草案R03來說,對於8b / 10b旁路模式來說,最大匯流排寬度為80位元,對應地實際使用於傳輸符號的最大匯流排寬度為64位元。因此,在兩個通道的配置中,將「協定資料單元距離」設定為2 * 4 PDU = 8 PDU。 如圖16所示,在傳送端,將TC.SOF分配到PA TX的32位元的通道0上,並保持兩個TC.SOF之間的「協定資料單元距離」為8個PDU。如此一來,在接收端,TC.SOF傳送到PA RX的64位元的通道0上,並且滿足兩個TC.SOF之間的「協定資料單元距離」為8個PDU,從而使TC.SOF傳送到DL RX的邏輯通道0。藉此,依據圖2的方法來實現傳送端,因為滿足第1、2個規則,縱使傳送端與接收端的通道的匯流排寬度不同時,也能得出如圖16所示的情況使含有SOF的協定資料單元由指定通道來傳送,而不會出現圖15的情況。誠然,在圖15的實施例中,若接收端改為32位元或16位元的通道,也同樣能使含有SOF的協定資料單元由指定通道來傳送。
舉例而言,在需要時,發起端可以插入填充符號(filler symbol, FLR)以滿足距離規則,以便使對應的DL RX的解碼器得以實現在1個時脈週期內僅需處理1個訊框。
此外,在上述關於主機和儲存裝置的實施例中,主機控制器或裝置控制器中的硬體協定引擎是可以基於使用硬體描述語言(HDL)如Verilog語言或本領域技術人員所熟悉的數位電路的任何其他設計方法的技術進行設計,並且可以基於使用現場可程式邏輯閘陣列(field programmable gate array, FPGA)、或特定積體電路(application specific integrated circuit,ASIC)或複雜可編程邏輯器件(CPLD)之類的電路中之一個或多個電路來實現,亦可使用專屬的電路或模組來實現。主機控制器或裝置控制器(或其中的處理單元或硬體協定引擎)也可以基於微控制器、處理器、或數位訊號處理器來實現。
如上所述,上述提供了一種用於互連協定的資料處理技術,依據該資料處理技術提出各種實施方式,如用於互連協定的資料處理的方法、控制器以及儲存裝置。藉此,可有助於大幅降低依據該互連協定而實現的硬體協定引擎的複雜度,尤其是其中資料鏈路層的解碼器的複雜度,從而更可降低研發、驗證、維護上的困難度。
本發明在上文中已以較佳實施例揭露,然熟習本項技術者應理解的是,該實施例僅用於描繪本發明,而不應解讀為限制本發明之範圍。應注意的是,舉凡與該實施例等效之變化與置換,均應設為涵蓋於本發明之範疇內。因此,本發明之保護範圍當以申請專利範圍所界定者為準。
1:儲存系統
10:主機
11:主機介面
12:主機控制器
13:硬體協定引擎
14:處理單元
16:應用處理器
20:儲存裝置
21:裝置介面
22:裝置控制器
23:硬體協定引擎
24:處理單元
26:儲存模組
110:MIPI實體(M-PHY)層
111:發送器
112:接收器
130:MIPI統一協定(UniPro)層
131:實體配接器層
132:資料鏈路層
133:網路層
134:傳輸層
135:裝置管理實體(DME)
210:MIPI實體(M-PHY)層
211:發送器
212:接收器
230:MIPI統一協定(UniPro)層
231:實體配接器層
232:資料鏈路層
233:網路層
234:傳輸層
235:裝置管理實體(DME)
300:資料鏈路層傳送器
310:訊框傳輸單元
320:SOF距離邏輯單元
400:實體配接器層傳送器
410:通道分配單元
411:通道分配器
413:SOF置放邏輯單元
415:SOF距離邏輯單元
420:IDLE編碼單元
430:拌碼器單元
440:通道重對映單元
810:資料訊框解碼器
821、822、823、824:暫存器
910:訊框逸出碼搜尋單元
920:訊框PDU合併單元
930:訊框對齊單元
940:訊框解碼單元
1310、2310:傳送邏輯
1320、2320:距離確定邏輯
1325、2325:接收用解碼器
1327、2327:SOF校準邏輯
S10~S20:步驟
CLK:時脈線
Din、Dout:資料線
RST:重置線
SL1:資料通道
SL2:資料通道
圖1為依據本發明之一實施方式的儲存系統的示意方塊圖。
圖2為用於互連協定的資料處理的方法的一種實施方式的流程圖。
圖3為圖1的儲存系統依據UFS標準的分層架構的示意圖。
圖4A為實現依據圖2的方法的電路架構的一種實施方式的示意圖。
圖4B為圖4A中的資料鏈路層及實體配接器層的一種實施例的示意方塊圖。
圖4C為圖4B中資料鏈路層傳送器的運作的一種實施例的示意流程圖。
圖4D為圖4B中實體配接器層傳送器的運作的一種實施例的示意流程圖。
圖5為依據UniPro標準的資料鏈路層的資料訊框的格式的示意圖。
圖6為依據圖2的方法在傳送端進行通道分配的一實施例的示意圖。
圖7為在資料鏈路層接收器的解碼器的架構的一實施例的示意圖。
圖8A為依據圖2的方法實現傳送端時在資料鏈路層接收器的解碼器的架構的一實施例的示意圖。
圖8B為依據圖2的方法實現資料鏈路層接收器的解碼器的架構的另一實施例的示意圖。
圖9為資料鏈路層接收器的解碼器的一實施例的示意圖。
圖10為依據圖2的方法在傳送端進行通道分配的另一實施例的示意圖。
圖11為傳送端在依據圖10的通道分配時在接收端的資料鏈路層接收器的解碼器的資料處理的第一實施例的示意圖。
圖12為傳送端在依據圖10的通道分配時在接收端的資料鏈路層接收器的解碼器的資料處理的第二實施例的示意圖。
圖13A為傳送端在依據圖10的通道分配時在接收端的資料鏈路層接收器的解碼器的資料處理的第三實施例的示意圖。
圖13B為圖9的資料鏈路層接收器的解碼器的電路架構的一實施例的示意圖。圖14為傳送端在依據圖10的通道分配時在接收端的資料鏈路層接收器的解碼器的資料處理的第四實施例的示意圖。
圖15為在傳送端與接收端內部的通道的匯流排寬度不同的情況下的一實施例的示意圖。
圖16為依據圖2的方法在傳送端進行通道分配及在接收端的資料鏈路層接收器的解碼器的資料處理的一實施例的示意圖,其中傳送端與接收端內部的通道的匯流排寬度不同。
S10~S20:步驟
Claims (12)
- 一種用於互連協定的資料處理的方法,適用於能夠依據該互連協定鏈接一第二裝置的一第一裝置中,該方法包括: 在該第一裝置將訊框發送至該第二裝置的處理過程中: 藉由該第一裝置的用於實現該互連協定的一硬體協定引擎,將多個含有訊框啟始標記(start of frame,SOF)的協定資料單元(protocol data unit,PDU)中的一第一啟始的協定資料單元(PDU)分配至該第一裝置的多個啟用的通道中的一指定通道;以及 藉由該硬體協定引擎,將該等含有訊框啟始標記的協定資料單元(PDU)中的一第二啟始的協定資料單元分配在該指定通道,並使該第一啟始的協定資料單元與該第二啟始的協定資料單元之間的協定資料單元距離為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。
- 如請求項1所述之方法,其中被分配的該第一啟始的協定資料單元及該第二啟始的協定資料單元各自對應至於該硬體協定引擎的一時脈訊號的一個相對應的時脈週期,且在該相對應的時脈週期中,最多只有一個含有訊框啟始標記的協定資料單元被分配到該等啟用的通道中的該指定通道來傳送。
- 如請求項2所述之方法,其中該等含有訊框啟始標記(SOF)的協定資料單元對應至該硬體協定引擎中一資料鏈路層的多個資料訊框。
- 如請求項1所述之方法,其中該互連協定是通用快閃儲存(Universal Flash Storage, UFS)標準。
- 一種控制器,適用於能夠依據一互連協定鏈接一第二裝置的一第一裝置中,該控制器包括: 一介面電路,該介面電路用於實現該互連協定的一實體層以鏈接該第二裝置;以及 一控制器模組,該控制器模組用於耦接到該介面電路,且用於實現該互連協定的一鏈接層,在該第一裝置將訊框發送至該第二裝置的處理過程中,該控制器模組執行多個運作,該等運作包括: 將多個含有訊框啟始標記(start of frame,SOF)的協定資料單元(protocol data unit,PDU)中的一第一啟始的協定資料單元分配至該第一裝置的多個啟用的通道中的一指定通道;以及 將該等含有訊框啟始標記的協定資料單元中的一第二啟始的協定資料單元分配在該指定通道,並使該第一啟始的協定資料單元與該第二啟始的協定資料單元之間的協定資料單元距離為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。
- 如請求項5所述之控制器,其中被分配的該第一啟始的協定資料單元及該第二啟始的協定資料單元各自對應至於該控制器模組的一時脈訊號的一個相對應的時脈週期,且在該相對應的時脈週期中,最多只有一個含有訊框啟始標記的協定資料單元(PDU)被分配到該等啟用的通道中的該指定通道來傳送。
- 如請求項6所述之控制器,其中該等含有訊框啟始標記的協定資料單元對應至該控制器模組中一資料鏈路層的多個資料訊框。
- 如請求項5所述之控制器,其中該互連協定是通用快閃儲存(Universal Flash Storage, UFS)標準。
- 一種儲存裝置,能夠依據一互連協定鏈接一主機,該儲存裝置包括: 一介面電路,該介面電路用於實現該互連協定的一實體層以鏈接該主機;以及 一裝置控制器,該裝置控制器用於耦接到該介面電路和一儲存模組,該裝置控制器包括: 一硬體協定引擎,該硬體協定引擎用於實現該互連協定,其中,在該儲存裝置將訊框發送至該主機的處理過程中,該硬體協定引擎執行多個運作,該等運作包括: 該硬體協定引擎將多個含有訊框啟始標記(SOF)的協定資料單元(PDU)中的一第一啟始的協定資料單元(PDU)分配至該儲存裝置的多個啟用(active)的通道中的一指定通道;以及 該硬體協定引擎將該等含有訊框啟始標記的協定資料單元(PDU)中的一第二啟始的協定資料單元(PDU)分配在該指定通道,並使該第一啟始的協定資料單元與該第二啟始的協定資料單元之間的協定資料單元距離為大於或等於互連協定規範的通道最大匯流排寬度與該等啟用的通道數量的乘積。
- 如請求項9所述之儲存裝置,其中被分配的該第一啟始的協定資料單元及該第二啟始的協定資料單元各自對應至於該硬體協定引擎的一時脈訊號的一個相對應的時脈週期,且在該相對應的時脈週期中,最多只有一個含有訊框啟始標記的協定資料單元(PDU)被分配到該等啟用的通道中的該指定通道來傳送。
- 如請求項10所述之儲存裝置,其中該等含有訊框啟始標記(SOF)的協定資料單元(PDU)對應至該硬體協定引擎中一資料鏈路層的多個資料訊框(frame)。
- 如請求項9所述之儲存裝置,其中該互連協定是通用快閃儲存(Universal Flash Storage, UFS)標準。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110133525A TW202311971A (zh) | 2021-09-09 | 2021-09-09 | 用於互連協定的資料處理的方法、控制器以及儲存裝置 |
US17/559,438 US11782636B2 (en) | 2021-09-09 | 2021-12-22 | Method for data processing of an interconnection protocol to support multiple lanes, controller, and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110133525A TW202311971A (zh) | 2021-09-09 | 2021-09-09 | 用於互連協定的資料處理的方法、控制器以及儲存裝置 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202311971A true TW202311971A (zh) | 2023-03-16 |
Family
ID=85386363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110133525A TW202311971A (zh) | 2021-09-09 | 2021-09-09 | 用於互連協定的資料處理的方法、控制器以及儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11782636B2 (zh) |
TW (1) | TW202311971A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202311971A (zh) * | 2021-09-09 | 2023-03-16 | 韓商愛思開海力士有限公司 | 用於互連協定的資料處理的方法、控制器以及儲存裝置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007083278A1 (en) | 2006-01-20 | 2007-07-26 | Nokia Corporation | Distributed (modular) internal architecture |
CN101455038A (zh) | 2006-03-30 | 2009-06-10 | 诺基亚公司 | 一种节点 |
EP2241044B1 (en) | 2008-01-18 | 2016-08-24 | ST-Ericsson SA | Method of communication, in particular with capability of frame abortion or retransmission indication, between a transmitter and a receiver based on frames, and corresponding communication node |
US8402343B2 (en) | 2009-12-04 | 2013-03-19 | St-Ericsson Sa | Reliable packet cut-through |
EP2391042B1 (en) | 2010-05-27 | 2015-07-29 | Telefonaktiebolaget L M Ericsson (publ) | Efficient error handling on a link using ARQ and multiple NACKs associated with multiple error thresholds |
CN103262462B (zh) | 2010-10-19 | 2016-09-14 | 瑞典爱立信有限公司 | 在高速串行接口通信系统中使用选择性字节同步的省电模式的系统和方法 |
US10181975B2 (en) * | 2015-09-04 | 2019-01-15 | Intel Corporation | Override subsystems for rapid recovery from serial-link errors |
US20180007226A1 (en) | 2016-07-01 | 2018-01-04 | Wesley J. Holland | Define a priority of memory traffic based on image sensor metadata |
CN111857838B (zh) | 2019-04-24 | 2024-04-02 | 三星电子株式会社 | 用于管理ufs装置与ufs主机之间的通信的方法和系统 |
TW202311971A (zh) * | 2021-09-09 | 2023-03-16 | 韓商愛思開海力士有限公司 | 用於互連協定的資料處理的方法、控制器以及儲存裝置 |
-
2021
- 2021-09-09 TW TW110133525A patent/TW202311971A/zh unknown
- 2021-12-22 US US17/559,438 patent/US11782636B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230072876A1 (en) | 2023-03-09 |
US11782636B2 (en) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7328399B2 (en) | Synchronous serial data communication bus | |
US20140040527A1 (en) | Optimized multi-root input output virtualization aware switch | |
EP1825382B1 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
US9229897B2 (en) | Embedded control channel for high speed serial interconnect | |
US7821919B2 (en) | Data processing apparatus and data processing method | |
US8103869B2 (en) | Distributed (modular) internal architecture | |
US9239808B2 (en) | Serial interface for FPGA prototyping | |
CN105357147A (zh) | 一种高速高可靠的片上网络适配单元 | |
US7603488B1 (en) | Systems and methods for efficient memory management | |
JPWO2010123143A1 (ja) | 送信装置、送信方法及び送信装置の制御プログラム | |
TW202311971A (zh) | 用於互連協定的資料處理的方法、控制器以及儲存裝置 | |
JP5151176B2 (ja) | データ通信装置、画像処理システムおよびデータ通信方法 | |
WO2017172225A1 (en) | Time offset validation of components with independent silicon clocks | |
CN116795763B (zh) | 基于axi协议的数据分组传输的方法、片上系统和芯片 | |
CN100468375C (zh) | 一种提高存储卡数据写入速度的方法 | |
US11892927B2 (en) | Method for error handling of an interconnection protocol, controller and storage device | |
TW202306365A (zh) | 用於互連協定的訊框接收的資料處理的方法以及儲存裝置 | |
CN101902436A (zh) | 板间通信方法、装置及系统 | |
TW202234861A (zh) | 用於控制器中的錯誤處理的控制方法、其記錄媒體、控制器以及儲存裝置 | |
US8135923B2 (en) | Method for protocol enhancement of PCI express using a continue bit | |
CN110765044B (zh) | 数据包传输装置及系统 | |
CN103995786B (zh) | 高速缓存一致性消息的传输方法和装置 | |
US20240121326A1 (en) | Operation method for an electronic device and an electronic device capable of performing an advanced line coding | |
CN115842605A (zh) | 用于互连协议的错误处理的方法、控制器以及存储设备 | |
CN115842872A (zh) | 用于互连协议的帧接收的数据处理的方法以及存储设备 |