TWI818274B - Apparatus and method for segmenting a data stream of a physical layer - Google Patents

Apparatus and method for segmenting a data stream of a physical layer Download PDF

Info

Publication number
TWI818274B
TWI818274B TW110123662A TW110123662A TWI818274B TW I818274 B TWI818274 B TW I818274B TW 110123662 A TW110123662 A TW 110123662A TW 110123662 A TW110123662 A TW 110123662A TW I818274 B TWI818274 B TW I818274B
Authority
TW
Taiwan
Prior art keywords
data
register
special symbol
physical layer
host
Prior art date
Application number
TW110123662A
Other languages
Chinese (zh)
Other versions
TW202207047A (en
Inventor
黃漢城
Original Assignee
慧榮科技股份有限公司
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 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW110123662A priority Critical patent/TWI818274B/en
Publication of TW202207047A publication Critical patent/TW202207047A/en
Application granted granted Critical
Publication of TWI818274B publication Critical patent/TWI818274B/en

Links

Images

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Holo Graphy (AREA)
  • Image Analysis (AREA)

Abstract

An apparatus for diving a data stream, installed in a physical layer, includes: a data register and a boundary detector. The boundary detector is capable of detecting a special symbol. The boundary detector detects the content of the data buffer, and when detecting a special symbol, outputs a starting address that the special symbol stored in the data buffer to an offset register for updating a value of the offset register, thereby enabling a stream divider to perform data-segment divisions according to a new value stored in the offset register. By additionally tracking the special symbol, the physical layer reduces time for correcting data-segment errors resulting from a reduced quantity of boundary-lock patterns sent by a host.

Description

實體層的資料串流切割裝置及方法 Physical layer data stream cutting device and method

本發明涉及儲存裝置,尤指一種實體層的資料串流切割裝置及方法。 The present invention relates to a storage device, and in particular, to a physical layer data stream cutting device and method.

快閃記憶裝置通常分為NOR快閃記憶裝置與NAND快閃記憶裝置。NOR快閃記憶裝置為隨機存取裝置,主裝置(host)可於位址腳位上提供任何存取NOR快閃記憶裝置的位址,並及時地從NOR快閃記憶裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃記憶裝置並非隨機存取,而是序列存取。NAND快閃記憶裝置無法像NOR快閃記憶裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)的值到NAND快閃記憶裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(快閃記憶裝置中寫入作業的最小資料塊)或一個區塊(快閃記憶裝置中抹除作業的最小資料塊)。 Flash memory devices are generally divided into NOR flash memory devices and NAND flash memory devices. The NOR flash memory device is a random access device. The host can provide any address for accessing the NOR flash memory device on the address pin and obtain the data pin of the NOR flash memory device in real time. Get the data stored at this address. In contrast, NAND flash memory devices do not have random access, but sequential access. NAND flash memory devices cannot access any random address like NOR flash memory devices. Instead, the master device needs to write a sequence of bytes values to the NAND flash memory device to define the request. The type of command (e.g., read, write, erase, etc.), and the address used for this command. The address can point to a page (the smallest block of data for a write operation in a flash memory device) or a block (the smallest block of data for an erase operation in a flash memory device).

為滿足高速通信的需求,快閃記憶裝置的實體層可包含串列器/解串器(Serializer/Deserializer,簡稱SerDes)。SerDes是一對功能電路,用來彌補有限輸入/輸出的不足,其提供在單一導線或差動對上傳輸資料,讓輸入輸出接腳及其間的接線能夠最少。詳細來說,傳送端將低速並行信號轉換為高速串列信號,並經過單一導線或差動對傳送到接收端。然而,在SerDes環境下,因為頻差或環境因素讓鎖相迴路(Phase-Locked Loop PLL)脫鎖(Lose Lock),造成原始資料中插入了不需要的位元,或者是遺失了原始資料中的部分位元。因 此,本發明提出一種資料串流切割裝置及方法,用以解決如上所述的問題。 In order to meet the requirements of high-speed communication, the physical layer of the flash memory device may include a serializer/deserializer (SerDes for short). SerDes is a pair of functional circuits used to make up for the shortcomings of limited input/output. It provides data transmission on a single wire or a differential pair, allowing the input and output pins and the wiring between them to be minimized. Specifically, the transmitting end converts low-speed parallel signals into high-speed serial signals and transmits them to the receiving end through a single wire or differential pair. However, in the SerDes environment, due to frequency difference or environmental factors, the Phase-Locked Loop PLL loses its lock (Lose Lock), causing unnecessary bits to be inserted into the original data, or the original data to be lost. part of the bits. because Therefore, the present invention proposes a data stream cutting device and method to solve the above problems.

有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。 In view of this, how to alleviate or eliminate the deficiencies in the above-mentioned related fields is a problem that needs to be solved.

本說明書提供一種實體層的資料串流切割裝置的實施例,安裝於實體層中,包含:資料寄存器及邊界偵測器。邊界偵測器具有偵測特殊符號的能力,用於偵測資料寄存器的內容,並且當資料寄存器包含特殊符號時,輸出資料寄存器中偵測到的特殊符號的起始位址給偏移寄存器來更新該偏移寄存器中儲存的值,使得串流分割器依據偏移寄存器中儲存的新值進行資料寄存器中的資料片段切割。 This specification provides an embodiment of a physical layer data stream cutting device, which is installed in the physical layer and includes: a data register and a boundary detector. The boundary detector has the ability to detect special symbols and is used to detect the contents of the data register. When the data register contains special symbols, it outputs the starting address of the special symbols detected in the data register to the offset register. The value stored in the offset register is updated, so that the stream splitter performs segmentation of the data fragments in the data register according to the new value stored in the offset register.

本說明書提供一種資料串流切割方法的實施例,由實體層執行,包含:比較資料寄存器中連續n個位元資料的每一個組合與特殊符號;以及當資料寄存器中連續n個位元資料的任一組合相符於特殊符號時,改變為依據該特殊符號於資料寄存器中的起始位址切割資料寄存器中的內容,用於產生一或多個片段。 This specification provides an embodiment of a data stream cutting method, which is executed by the physical layer and includes: comparing each combination of n consecutive n-bit data in the data register with a special symbol; and when the n consecutive n-bit data in the data register is When any combination matches a special symbol, the content in the data register is cut according to the starting address of the special symbol in the data register to generate one or more fragments.

本說明書提供另一種資料串流切割方法的實施例,由實體層執行,包含:當之前切割的資料解碼失敗時,比較資料寄存器中連續n個位元資料的每一個組合與特殊符號;以及當資料寄存器中連續n個位元資料的任一組合相符於特殊符號時,改變為依據邊界鎖定模式或特殊符號於資料寄存器中的起始位址切割資料寄存器中的內容,用於產生一個或多個片段。 This specification provides another embodiment of a data stream cutting method, which is executed by the physical layer, including: when the previously cut data fails to be decoded, comparing each combination of consecutive n bit data in the data register with a special symbol; and when When any combination of n consecutive n-bit data in the data register matches a special symbol, the content in the data register is changed to be cut according to the boundary lock mode or the starting address of the special symbol in the data register to generate one or more fragments.

上述實施例的優點之一,通過在實體層中更加上追蹤特殊符號,減少因為主機端減少邊界鎖定模式時修正資料切割錯誤所需的時間。 One of the advantages of the above embodiment is to reduce the time required to correct data cutting errors when the host side reduces the boundary lock mode by tracking special symbols in the physical layer.

本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。 Other advantages of the present invention will be explained in more detail in conjunction with the following description and drawings.

110:主機端 110: Host side

130:控制器 130:Controller

131:處理單元 131: Processing unit

133:媒體存取控制層 133:Media access control layer

135:靜態隨機存取記憶體 135: Static random access memory

138:NAND閃存控制器 138:NAND flash controller

139:儲存介面 139:Storage interface

150:儲存裝置 150:Storage device

151:閃存介面 151:Flash interface

153#0~153#15:NAND閃存模組 153#0~153#15: NAND flash memory module

170:實體層 170:Entity layer

171:主機介面 171:Host interface

173:資料寄存器 173:Data register

174:邊界偵測器 174: Boundary Detector

175:串流分割器 175:Stream splitter

176:偏移寄存器 176:Offset register

177:解碼器 177:Decoder

179:並行介面 179: Parallel interface

310,330,350,510,530:資料 310,330,350,510,530: Information

330p,350q:資料位元 330p, 350q: data bits

410:UFS的叢發頭 410:UFS’s Congfatou

420:主機寫命令 420: Host writes command

430:確認訊息 430: Confirmation message

450:填充元 450: Filling element

460:使用者資料 460:User information

Fn-1,Fn,Fn+1,Fn+2,Fn+3:資料片段 Fn-1,Fn,Fn+1,Fn+2,Fn+3: data fragment

610-0~610-10,620-0~620-10,710-0~710-130,720-0~720-130,810-0~810-10,910-0~910-130:比較器 610-0~610-10,620-0~620-10,710-0~710-130,720-0~720-130,810-0~810-10,910-0~910-130: Comparator

630-0~630-10,730-0~730-130,830-0~830-10,930-0~930-130:輸出電路 630-0~630-10,730-0~730-130,830-0~830-10,930-0~930-130: Output circuit

850,950:多工器 850,950:Mux

S1010~S1070,S1110~S1170:方法步驟 S1010~S1070, S1110~S1170: Method steps

圖1為依據本發明實施例的快閃記憶體的系統架構示意圖。 FIG. 1 is a schematic diagram of the system architecture of a flash memory according to an embodiment of the present invention.

圖2為閃存介面與儲存單元的連接示意圖。 Figure 2 is a schematic diagram of the connection between the flash memory interface and the storage unit.

圖3A為原始資料串流的示意圖。 Figure 3A is a schematic diagram of raw data streaming.

圖3B及圖3C為受干擾的資料串流的示意圖。 Figures 3B and 3C are schematic diagrams of disturbed data streams.

圖4為主機端寫入使用者資料的時序圖。 Figure 4 is a timing diagram for the host to write user data.

圖5A及圖5B為依據本發明實施例的資料片段切割示意圖。 5A and 5B are schematic diagrams of data fragment cutting according to an embodiment of the present invention.

圖6至圖9為依據本發明實施例的邊界偵測器的方塊圖。 6 to 9 are block diagrams of boundary detectors according to embodiments of the present invention.

圖10至圖11為依據本發明實施例的資料串流切割的方法流程圖。 10 to 11 are flowcharts of a data stream cutting method according to an embodiment of the present invention.

以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。 The following description is a preferred implementation manner for completing the invention, and its purpose is to describe the basic spirit of the invention, but is not intended to limit the invention. For the actual invention, reference must be made to the following claims.

必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。 It must be understood that the words "including" and "include" used in this specification are used to indicate the existence of specific technical features, numerical values, method steps, work processes, components and/or components, but do not exclude the possibility of adding further technical features, values, method steps, processes, components, components, or any combination of the above.

於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。 The use of words such as "first", "second" and "third" in the claims is used to modify the elements in the claims, and is not used to indicate that there is a priority, precedence relationship between them, or that they are one element. Prior to another element, or the chronological order in which method steps are performed, it is only used to distinguish elements with the same name.

必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。 It must be understood that when an element is described as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element, and intervening elements may be present. In contrast, when an element is described as being "directly connected" or "directly coupled" to another element, there are no intervening elements present. Other words used to describe the relationship between elements could be interpreted in a similar fashion, such as "between" versus "directly between," "adjacent" versus "directly adjacent," etc.

參考圖1。電子裝置包含主機端(Host Side)110、控制器130及儲存裝置150,並且控制器130及儲存裝置150可合稱為裝置端(Device Side)。電子裝置可為個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品。主機端110的介面(未顯示於圖1)及控制器130的主機介面(Host Interface) 171可採用通用快閃記憶儲存(Universal Flash Storage,UFS)、通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(Advanced Technology Attachment,ATA)、序列先進技術附著(Serial Advanced Technology Attachment,SATA)、快速周邊元件互聯(Peripheral Component Interconnect Express,PCI-E)等通信協定彼此溝通。控制器130的儲存介面(Storage Interface)139及儲存裝置150的閃存介面可以雙倍資料率(Double Data Rate,DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他介面通訊協定。控制器130包含處理單元131,用於通過實體層(Physical Layer,PHY)170及媒體存取控制層(Media Access Control,MAC Layer)133從主機端110接收主機命令,例如讀取、寫入、抹除命令等。處理單元131可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供指定的功能。控制器130另包含靜態隨機存取記憶體(Static Random Access Memory,SRAM)135,用於配置空間作為資料緩衝區,儲存主機寫命令欲寫入儲存裝置150的使用者資料,主機讀命令指示從儲存裝置150讀取的使用者資料,以及執行過程中需要的資料,例如,變數、資料表、主機-閃存對照表(Host-to-Flash,H2F Table)、閃存-主機對照表(Flash-to-Host,F2H Table)等。控制器130另包含NAND閃存控制器(NAND Flash Controller,NFC)138,提供存取儲存裝置150過程中需要的功能,例如命令序列器(Command Sequencer)、低密度奇偶校驗(Low Density Parity Check,LDPC) 等。處理單元131依據主機命令通過NFC138及儲存介面139指示儲存裝置150執行資料讀取、寫入、抹除等操作。 Refer to Figure 1. The electronic device includes a host side (Host Side) 110, a controller 130 and a storage device 150, and the controller 130 and the storage device 150 can be collectively referred to as a device side (Device). Side). The electronic device may be a personal computer, a laptop computer (Laptop PC), a tablet computer, a mobile phone, a digital camera, a digital video camera and other electronic products. The interface of the host 110 (not shown in Figure 1) and the host interface (Host Interface) 171 of the controller 130 can use Universal Flash Storage (UFS) or Universal Serial Bus (USB) , Advanced Technology Attachment (ATA), Serial Advanced Technology Attachment (SATA), Peripheral Component Interconnect Express (PCI-E) and other communication protocols to communicate with each other. The storage interface (Storage Interface) 139 of the controller 130 and the flash memory interface of the storage device 150 can communicate with each other using a Double Data Rate (DDR) communication protocol, such as Open NAND Flash Interface (ONFI), Double data rate switch (DDR Toggle) or other interface protocols. The controller 130 includes a processing unit 131 for receiving host commands from the host 110 through a physical layer (Physical Layer, PHY) 170 and a media access control layer (Media Access Control, MAC Layer) 133, such as reading, writing, Erase command etc. The processing unit 131 may be implemented in a variety of ways, such as using general-purpose hardware (eg, a single processor, multiple processors with parallel processing capabilities, a graphics processor, or other processors with computing capabilities), and when executing software and/or Provides specified functions when executing firmware commands. The controller 130 also includes a Static Random Access Memory (SRAM) 135, which is used to configure space as a data buffer to store user data to be written to the storage device 150 by the host write command. The host read command indicates from The user data read by the storage device 150, as well as the data required during the execution process, such as variables, data tables, host-to-flash (H2F Table), flash-to-host comparison table (Flash-to -Host, F2H Table), etc. The controller 130 also includes a NAND Flash Controller (NFC) 138, which provides functions required in accessing the storage device 150, such as a command sequencer (Command Sequencer) and a low density parity check (Low Density Parity Check). LDPC) wait. The processing unit 131 instructs the storage device 150 to perform data reading, writing, erasing and other operations through the NFC 138 and the storage interface 139 according to the host command.

儲存裝置150包含儲存單元153,提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個兆兆位元組(Terabytes,TB),用於儲存大量的使用者資料,例如高解析度圖片、影片等。儲存單元153中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可包含單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。處理單元131透過儲存介面139寫入使用者資料到儲存裝置150(詳細來說,儲存單元153)中的指定位址(目的位址),以及從儲存裝置150中的指定位址(來源位址)讀取使用者資料。儲存介面139使用數個電子訊號來協調控制器130與儲存裝置150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control Signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控制訊號線可用於傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。 The storage device 150 includes a storage unit 153, which provides a large amount of storage space, usually hundreds of gigabytes (GB) or even several terabytes (TB), for storing a large amount of data. User data, such as high-resolution images, videos, etc. The storage unit 153 includes a control circuit and a memory array. The memory cells in the memory array may include single level cells (Single Level Cells, SLCs), multiple level cells (Multiple Level Cells, MLCs), or triple level cells. Cells (TLCs), Quad-Level Cells (QLCs), or any combination of the above. The processing unit 131 writes the user data to the specified address (destination address) in the storage device 150 (specifically, the storage unit 153) through the storage interface 139, and from the specified address (source address) in the storage device 150 ) reads user data. The storage interface 139 uses several electronic signals to coordinate the transfer of data and commands between the controller 130 and the storage device 150, including a data line (Data Line), a clock signal (Clock Signal), and a control signal (Control Signal). Data lines can be used to transmit commands, addresses, read and write data; control signal lines can be used to transmit chip enable (Chip Enable, CE), address extraction enable (Address Latch Enable, ALE), command extraction enable Control signals such as Command Latch Enable (CLE) and Write Enable (WE).

參考圖2,閃存介面151可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每一個通道連接四個NAND閃存模組,例如,通道CH#0連接NAND閃存模組153#0、153#4、153#8及153#12。每個NAND閃存模組可封裝為獨立的芯片(die)。NAND閃存控制器138可通過儲存介面139及閃存介面151發出致能訊號CE#0至CE#3中的一個來致能NAND閃存模組153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接著以並行的方式從致能的NAND閃存模組讀取使用者資料,或者寫入使用者資料至 致能的NAND閃存模組。 Referring to Figure 2, the flash memory interface 151 may include four input/output channels (I/O channels, hereinafter referred to as channels) CH#0 to CH#3. Each channel is connected to four NAND flash memory modules. For example, channel CH#0 is connected NAND flash memory modules 153#0, 153#4, 153#8 and 153#12. Each NAND flash memory module can be packaged as an independent chip (die). The NAND flash memory controller 138 can send one of the enable signals CE#0 to CE#3 through the storage interface 139 and the flash memory interface 151 to enable the NAND flash memory modules 153#0 to 153#3, 153#4 to 153#7. , 153#8 to 153#11, or 153#12 to 153#15, and then read user data from the enabled NAND flash module in parallel, or write user data to Enabled NAND flash memory modules.

控制器130的實體層170可設置為8b/10b、64b/66b或128b/130b串列器/解串器(Serializer/Deserializer,簡稱SerDes)環境。然而,頻差或環境因素會讓鎖相迴路(Phase-Locked Loop PLL)脫鎖(Loss Lock),造成主機端110傳送的原始資料中插入了不需要的位元,或者是遺失了主機端110傳送的原始資料中的部分位元。當控制器130搭載在手機上,環境的干擾更為嚴重,例如,使用者操作觸控螢幕產生的突波影響了實體層170中的類比電路(也可稱為類比實體層Analog Physical Layer A-PHY),使得鎖相迴路脫鎖的情況更頻繁地發生。類比實體層包含串列器,用於在串列化資料之前,將每個資料片段映射成使用更多位元表示的碼,例如將8、64或128位元片段映射成10、66或130位元碼。舉例來說,參考圖3A,主機端110通過主機介面171傳送資料310給控制器130中的實體層170,包含資料串流”b01100001101010000011”。但由於鎖相迴路脫鎖,使得實體層170接收到如圖3B所示的錯誤資料330或如圖3C所示的錯誤資料350。圖3B中的資料串流330包含原始資料310中不存在的位元”b11”330p,而圖3C中的資料串流350中遺失了原始資料310中原有的位元”b00”350q。由於原始資料串流由一系列固定大小(例如,10、66、130個位元,或其他數目的位元)的片段組成,錯誤插入或遺失的位元會造成後續的資料切割發生錯誤。例如,圖3A所示的原始資料串流310原本該切割出2個10位元片段”b0110000110”及”b1010000011”。然而,圖3B所示的資料串流330卻切割出2個錯誤的10位元片段”b0110011001”及”b1010100000”。圖3C所示的資料串流350則切割出2個錯誤的10位元片段”b0110011010”及”b10000011xx”。 The physical layer 170 of the controller 130 may be configured as an 8b/10b, 64b/66b or 128b/130b serializer/deserializer (SerDes) environment. However, frequency differences or environmental factors can cause the phase-locked loop (Phase-Locked Loop PLL) to lose lock, causing unnecessary bits to be inserted into the original data transmitted by the host 110, or the host 110 losing A portion of the bits in the original data being transmitted. When the controller 130 is mounted on a mobile phone, environmental interference is more serious. For example, the surge generated by the user's operation of the touch screen affects the analog circuit in the physical layer 170 (also called the analog physical layer Analog Physical Layer A- PHY), causing phase-locked loop de-locking to occur more frequently. The analog physical layer contains a serializer that maps each data segment into a code that uses more bits before serializing the data, such as mapping 8, 64, or 128-bit segments into 10, 66, or 130 bits. Bit code. For example, referring to FIG. 3A , the host 110 transmits data 310 to the physical layer 170 in the controller 130 through the host interface 171 , including the data stream “b01100001101010000011”. However, due to the unlocking of the phase-locked loop, the physical layer 170 receives the error data 330 as shown in FIG. 3B or the error data 350 as shown in FIG. 3C. The data stream 330 in Figure 3B includes the bit "b11" 330p that does not exist in the original data 310, while the data stream 350 in Figure 3C is missing the original bit "b00" 350q in the original data 310. Since the original data stream consists of a series of fragments of a fixed size (for example, 10, 66, 130 bits, or other numbers of bits), incorrectly inserted or missing bits can cause subsequent data segmentation errors. For example, the original data stream 310 shown in FIG. 3A should originally be cut into two 10-bit segments "b0110000110" and "b1010000011". However, the data stream 330 shown in FIG. 3B is cut into two incorrect 10-bit fragments "b0110011001" and "b1010100000". The data stream 350 shown in Figure 3C cuts out two incorrect 10-bit fragments "b0110011010" and "b10000011xx".

為了解決如上所述鎖相迴路脫鎖後造成的切割錯誤,在8b/10bSerDes環境的一些實施方式中,主機端110可週期性地傳送邊界鎖 定模式(Boundary-lock Pattern),例如UFS的叢發頭(Head of Burst HOB,又稱MK0或K.28.5符號)等,讓實體層170可通過追蹤主機介面171傳來的資料串流的邊界鎖定模式來重新決定每個片段的邊界(Boundary)並據以進行切割。在128b/130b SerDes環境的一些實施方式中,主機端110可週期性地傳送邊界鎖定模式,例如PCI-E的逗點符號(Comma Character,又稱K28.5符號)等,用來讓實體層170進行片段邊界的決定與切割。但是,主機端110為了獲得更好的傳輸率可能減少邊界鎖定模式的傳送數量,造成實體層170修正資料切割錯誤的時間進一步拉長。 In order to solve the cutting error caused by the unlocking of the phase-locked loop as described above, in some implementations of the 8b/10bSerDes environment, the host 110 can periodically transmit the boundary lock Boundary-lock Pattern, such as the Head of Burst HOB (also known as MK0 or K.28.5 symbol) of UFS, etc., allows the physical layer 170 to track the boundaries of the data stream transmitted from the host interface 171 Lock mode to re-determine the Boundary of each segment and cut accordingly. In some implementations of the 128b/130b SerDes environment, the host 110 can periodically transmit a boundary lock mode, such as PCI-E Comma Character (also known as K28.5 symbol), etc., to allow the physical layer to 170 determines and cuts fragment boundaries. However, in order to obtain a better transmission rate, the host 110 may reduce the number of transmissions in the boundary lock mode, which further lengthens the time for the physical layer 170 to correct data cutting errors.

為改進如上所述實施方式的缺點,在8b/10b SerDes環境中,本發明實施例提出一種實體層電路,不只在有效封包傳輸期間追蹤主機介面171傳來的資料串流中的邊界鎖定模式,也在閒置期間(Idle)追蹤主機介面171傳來的資訊串流中的特殊符號,例如UFS的填充元(FILLER,又稱K.28.1符號)。參考圖4,以主機端110寫入使用者資料為例。在正常情況下,主機端110發送HOB 410後再發送主機寫命令CMD 420,用來讓控制器130能夠正確切割資料串流。接著,在接收到控制器130發送的確認訊息(Acknowledgement ACK)430後,主機端110開始傳送使用者資料DAT 460。在開始傳送使用者資料之前,主機端110發送HOB 410,用來讓控制器130能夠正確切割資料串流。主機寫命令CMD 420及使用者資料460可稱為有效封包。所屬技術領域人員理解有效封包還包括主機管理命令、其他主機輸出入命令、參數等能夠被通訊協定層(Protocol Layer)使用的資訊。傳送有效封包及關聯必要控制符號(例如邊界鎖定模式、同步模式SYN等)的期間稱為有效封包傳輸期間。在主機寫命令CMD 420發送後至下一個HOB 410的期間,稱為閒置期間tIDLE。在等待裝置端的確認430的閒置期間tIDLE,主機端110可不斷傳送填充元FIL 450給裝置端。UFS的叢發頭及填充元的細節可參考表1:

Figure 110123662-A0305-02-0010-1
In order to improve the shortcomings of the above implementations, in the 8b/10b SerDes environment, the embodiment of the present invention proposes a physical layer circuit that not only tracks the boundary lock mode in the data stream transmitted from the host interface 171 during valid packet transmission, but also Special symbols in the information stream transmitted from the host interface 171 are also tracked during the idle period (Idle), such as UFS filler elements (FILLER, also known as K.28.1 symbols). Referring to Figure 4, taking the host 110 writing user data as an example. Under normal circumstances, the host 110 sends the HOB 410 and then the host write command CMD 420 to enable the controller 130 to correctly cut the data stream. Next, after receiving the acknowledgment message (Acknowledgement ACK) 430 sent by the controller 130, the host 110 starts to transmit the user data DAT 460. Before starting to transmit user data, the host 110 sends HOB 410 to allow the controller 130 to correctly cut the data stream. The host write command CMD 420 and user data 460 can be called valid packets. Those skilled in the art understand that valid packets also include host management commands, other host input and output commands, parameters, and other information that can be used by the protocol layer (Protocol Layer). The period during which valid packets and associated necessary control symbols (such as boundary lock mode, synchronization mode SYN, etc.) are transmitted is called the valid packet transmission period. The period from when the host write command CMD 420 is sent to the next HOB 410 is called the idle period t IDLE . During the idle period t IDLE waiting for the confirmation 430 from the device side, the host side 110 may continuously send fill elements FIL 450 to the device side. Please refer to Table 1 for details of UFS cluster heads and filling elements:
Figure 110123662-A0305-02-0010-1

在128b/130b SerDes環境中,實體層電路不只在資料傳輸期間追蹤邊界鎖定模式,更多追蹤一個特殊符號,例如PCI-E的快速訓練序列(Fast Training Sequence FTS,又稱K28.1符號)。PCI-E的逗點符號及快速訓練序列的細節可參考表2:

Figure 110123662-A0305-02-0010-2
In the 128b/130b SerDes environment, the physical layer circuit not only tracks the boundary lock mode during data transmission, but also tracks a special symbol, such as PCI-E's Fast Training Sequence FTS (also known as K28.1 symbol). For details about PCI-E comma symbols and fast training sequences, please refer to Table 2:
Figure 110123662-A0305-02-0010-2

所屬技術領域人員理解,FTS用來被插入在有效資料之前。通過追蹤更多的符號,實體層170在主機端110拉長傳送同步模式的週期的情況下,還能夠儘早修正資料切割錯誤。 Those skilled in the art understand that FTS is used to be inserted before valid data. By tracking more symbols, the physical layer 170 can also correct data cutting errors as early as possible when the host 110 extends the period of transmitting the synchronization pattern.

參考圖1,實體層170包含如上所述的主機介面171,用於從主機端110接收主機命令、參數及使用者資料等。以8b/10b SerDes環境為例,主機端110傳送的主機命令、參數及使用者資料會以10個位元為單位進行編碼。實體層170更包含資料寄存器173、邊界偵測器174、串流分割器175、偏移寄存器(Offset Register)176及解碼器177。資料寄存器173可儲存通過主機介面171接收到的20個位元的資料。偏移寄存器176記錄資料片段的邊界(Boundary,也可稱為切割的起始位址)。串流分割器(Stream Splitter)175依據偏移寄存器176的值切割資料寄存器173中的資料位元為一個或多個片段,並輸出到解碼器177。圖5A及5B分別顯示依據本發明實施例當偏移寄存器173紀錄0及2時的資料片段切割情形。資料寄存器173在時間點t1儲 存20個位元的資料510,接著在時間點t2儲存之後20個位元的資料530。 Referring to FIG. 1 , the physical layer 170 includes the host interface 171 as mentioned above, which is used for receiving host commands, parameters, user information, etc. from the host terminal 110 . Taking the 8b/10b SerDes environment as an example, the host commands, parameters and user data sent by the host 110 will be encoded in 10-bit units. The physical layer 170 further includes a data register 173, a boundary detector 174, a stream splitter 175, an offset register (Offset Register) 176 and a decoder 177. The data register 173 can store 20 bits of data received through the host interface 171 . The offset register 176 records the boundary (Boundary, also called the starting address of cutting) of the data segment. A stream splitter (Stream Splitter) 175 splits the data bits in the data register 173 into one or more segments according to the value of the offset register 176, and outputs the segments to the decoder 177. 5A and 5B respectively show the data segment cutting situation when the offset register 173 records 0 and 2 according to the embodiment of the present invention. The data register 173 stores at time point t1 20 bits of data 510 are stored, and then the next 20 bits of data 530 are stored at time point t2.

參考圖5A,舉例來說,當偏移寄存器176紀錄0時,串流分割器175可在時間點t1將資料510中的第0到9個位元當作片段Fn,將資料510中的第10到19個位元當作片段Fn+1,並輸出兩個片段的資料給解碼器177。串流分割器175可在時間點t2將資料530中的第0到9個位元當作片段Fn+2,將資料530中的第10到19個位元當作片段Fn+3,並輸出兩個片段的資料給解碼器177。 Referring to FIG. 5A, for example, when the offset register 176 records 0, the stream splitter 175 can regard the 0th to 9th bits in the data 510 as the fragment Fn at time point t1, and the 0th to 9th bits in the data 510 as the fragment Fn. 10 to 19 bits are regarded as segment Fn+1, and the data of the two segments are output to the decoder 177. The stream splitter 175 can treat the 0th to 9th bits in the data 530 as the segment Fn+2, the 10th to 19th bits in the data 530 as the segment Fn+3 at the time point t2, and output The two fragments of data are given to the decoder 177.

參考圖5B,舉例來說,當偏移寄存器176紀錄2時,串流分割器175可在時間點t1將資料510中的第2到11個位元當作片段Fn,輸出此片段的資料給解碼器177,此外,資料510中的第12到19個位元被保留下來以供之後使用。串流分割器175可在時間點t2將保留下來的資料位元結合資料530中的第0到1個位元當作片段Fn+1,將資料530中的第2到11個位元當作片段Fn+2,並輸出兩個片段的資料給解碼器177,此外,資料530中的第12到19個位元被保留下來以供之後使用。 Referring to FIG. 5B, for example, when the offset register 176 records 2, the stream splitter 175 can regard the 2nd to 11th bits in the data 510 as a segment Fn at time point t1, and output the data of this segment to Decoder 177, in addition, bits 12 to 19 of the data 510 are reserved for later use. The stream splitter 175 may combine the retained data bits with the 0th to 1st bits in the data 530 as the fragment Fn+1 at the time point t2, and the 2nd to 11th bits in the data 530 as the fragment Fn+1. Fragment Fn+2, and output the data of the two fragments to the decoder 177. In addition, the 12th to 19th bits in the data 530 are reserved for later use.

因應不同的SerDes環境設置,解碼器177可為8b/10b轉換器(Converter)、64b/66b轉換器或128b/130b轉換器。解碼器177包含映射表,用來將輸入的資料位元轉換為用較少位元表示的碼,例如將輸入的10、66或130位元資料映設成8、64或128位元碼。當任何輸入的資料位元依據映射表轉換不出任何碼時,解碼器177判定輸入的資料位元錯誤,並可輸出解碼錯誤訊號給邊界偵測器174。反之,當轉碼成功時,解碼器177輸出解碼成功訊號給邊界偵測器174。舉例來說,在8b/10b SerDes環境中,10位元可表示210=1024個狀態,映射表只包含28=256個映射關係。因此,當解碼器177無法將輸入的資料位元轉換出任何碼時,表示原始資料在傳輸過程中遭到改變。 According to different SerDes environment settings, the decoder 177 can be an 8b/10b converter (Converter), a 64b/66b converter or a 128b/130b converter. The decoder 177 includes a mapping table for converting input data bits into codes represented by fewer bits, for example, mapping input 10, 66 or 130-bit data into 8, 64 or 128-bit codes. When any input data bit cannot be converted into any code according to the mapping table, the decoder 177 determines that the input data bit is incorrect and may output a decoding error signal to the boundary detector 174 . On the contrary, when the transcoding is successful, the decoder 177 outputs a decoding success signal to the boundary detector 174 . For example, in an 8b/10b SerDes environment, 10 bits can represent 2 10 =1024 states, and the mapping table only contains 2 8 =256 mapping relationships. Therefore, when the decoder 177 cannot convert the input data bits into any code, it means that the original data has been changed during transmission.

參考圖1,邊界偵測器174具有偵測資料寄存器173中的邊界鎖定模式(例如UFS的叢發頭或PCI-E的逗點符號)及預設的特殊符號(例 如UFS的填充元或PCI-E的FTS)的能力。需要注意的是,此預設的特殊符號並非原先在規範中用來決定資料串流中每個片段的邊界,而有其他的用途。邊界偵測器174不斷偵測資料寄存器173的內容,並且當資料寄存器173包含邊界鎖定模式或預設的特殊符號時,輸出資料寄存器173中偵測到的邊界鎖定模式或預設的特殊符號的起始位址給偏移寄存器176,用於將偏移寄存器176的值更新為偵測到的起始位址。之後,串流分割器175依據偏移寄存器176中儲存的新值進行資料寄存器173中的資料片段切割。 Referring to FIG. 1 , the boundary detector 174 has the boundary locking mode (such as the burst header of UFS or the comma symbol of PCI-E) in the detection data register 173 and the preset special symbol (such as Such as UFS's fill element or PCI-E's FTS) capability. It should be noted that this default special symbol was not originally used in the specification to determine the boundaries of each segment in the data stream, but has other uses. The boundary detector 174 continuously detects the contents of the data register 173, and when the data register 173 contains a boundary lock pattern or a preset special symbol, outputs the boundary lock pattern or the preset special symbol detected in the data register 173. The starting address is given to the offset register 176 for updating the value of the offset register 176 to the detected starting address. Afterwards, the stream splitter 175 splits the data segments in the data register 173 according to the new value stored in the offset register 176 .

參考圖6,在8b/10b SerDes環境的一些實施例中,為了UFS叢發頭(K.28.5),邊界偵測器174包含11個輸出電路630-0至630-10,耦接偏移寄存器176,在被驅動時分別輸出0至10至偏移寄存器176。邊界偵測器174包含11個比較器610-0至610-10,用來偵測資料寄存器173中連續10位元資料的所有可能組合。例如,比較器610-0偵測資料寄存器173中第0至9位元的資料D[9:0],比較器610-1偵測資料寄存器173中第1至10位元的資料D[10:1],依此類推。每個比較器耦接一個相應的輸出電路,該輸出電路的輸出值相符於該比較器輸入的連續10位元資料於資料寄存器173中的起始位址。例如,比較器610-0耦接能夠輸出0的輸出電路630-0,比較器610-1耦接能夠輸出1的輸出電路630-1,依此類推。比較器610-0至610-10中的每一個比較輸入的連續10位元資料及UFS叢發頭。當輸入的10位元資料相符於UFS的叢發頭,該比較器輸出訊號來驅動耦接的輸出電路以輸出特定值(也就是UFS叢發頭於資料寄存器173中的起始位址)至偏移寄存器176。反之,該比較器不輸出訊號。此外,為了UFS填充元(K.28.1),邊界偵測器174另包含11個比較器620-0至620-10,用來偵測資料寄存器173中連續10位元資料的所有可能組合。每個比較器耦接一個相應的輸出電路,該輸出電路的輸出值相符於該比較器輸入的連續10位元資料於資料寄存器173中的起始位址。例如, 比較器620-0耦接能夠輸出0的輸出電路630-0,比較器620-1耦接能夠輸出1的輸出電路630-1,依此類推。比較器620-0至620-10中的每一個比較輸入的連續10位元資料及UFS填充元。當輸入的10位元資料相符於UFS的填充元,該比較器輸出訊號來驅動耦接的輸出電路以輸出特定值(也就是填充元於資料寄存器173中的起始位址)至偏移寄存器176。反之,該比較器不輸出訊號。 Referring to Figure 6, in some embodiments of the 8b/10b SerDes environment, for the UFS burst header (K.28.5), the boundary detector 174 includes 11 output circuits 630-0 to 630-10, coupled to the offset register 176, when driven, outputs 0 to 10 respectively to the offset register 176. The boundary detector 174 includes 11 comparators 610-0 to 610-10, which are used to detect all possible combinations of consecutive 10-bit data in the data register 173. For example, the comparator 610-0 detects the data D[9:0] of the 0th to 9th bits in the data register 173, and the comparator 610-1 detects the data D[10] of the 1st to 10th bits in the data register 173. :1], and so on. Each comparator is coupled to a corresponding output circuit, and the output value of the output circuit is consistent with the starting address of the continuous 10-bit data input by the comparator in the data register 173 . For example, the comparator 610-0 is coupled to the output circuit 630-0 capable of outputting 0, the comparator 610-1 is coupled to the output circuit 630-1 capable of outputting 1, and so on. Each of the comparators 610-0 to 610-10 compares the input continuous 10-bit data and the UFS cluster header. When the input 10-bit data matches the UFS cluster header, the comparator outputs a signal to drive the coupled output circuit to output a specific value (that is, the starting address of the UFS cluster header in the data register 173) to Offset register 176. Otherwise, the comparator does not output a signal. In addition, for UFS padding elements (K.28.1), the boundary detector 174 also includes 11 comparators 620-0 to 620-10 for detecting all possible combinations of consecutive 10-bit data in the data register 173. Each comparator is coupled to a corresponding output circuit, and the output value of the output circuit is consistent with the starting address of the continuous 10-bit data input by the comparator in the data register 173 . For example, The comparator 620-0 is coupled to the output circuit 630-0 capable of outputting 0, the comparator 620-1 is coupled to the output circuit 630-1 capable of outputting 1, and so on. Each of the comparators 620-0 to 620-10 compares the input continuous 10-bit data and the UFS padding element. When the input 10-bit data matches the filling element of UFS, the comparator outputs a signal to drive the coupled output circuit to output a specific value (that is, the starting address of the filling element in the data register 173) to the offset register 176. Otherwise, the comparator does not output a signal.

參考圖7,在128b/130b SerDes環境的一些實施例中,資料寄存器173儲存260個位元的資料。為了PCI-E逗點符號(K28.5),邊界偵測器174包含131個輸出電路730-0至730-130,耦接偏移寄存器176,在被驅動時分別輸出0至130至偏移寄存器176。邊界偵測器174包含131個比較器710-0至710-130,用來偵測資料寄存器173中連續130位元資料的所有可能組合。例如,比較器710-0偵測資料寄存器173中第0至129位元的資料D[129:0],比較器710-1偵測資料寄存器173中第1至130位元的資料D[130:1],依此類推。每個比較器耦接一個相應的輸出電路,該輸出電路的輸出值相符於該比較器輸入的連續130位元資料於資料寄存器173中的起始位址。例如,比較器710-0耦接能夠輸出0的輸出電路730-0,比較器710-1耦接能夠輸出1的輸出電路730-1,依此類推。比較器710-0至710-130中的每一個比較輸入的連續130位元資料及PCI-E逗點符號。當輸入的130位元資料相符於PCI-E逗點符號,該比較器輸出訊號來驅動耦接的輸出電路以輸出特定值(也就是PCI-E逗點符號於資料寄存器173中的起始位址)至偏移寄存器176。反之,該比較器不輸出訊號。此外,為了PCI-E FTS(K28.1),邊界偵測器174包含131個比較器720-0至720-130,用來偵測資料寄存器173中連續130位元資料的所有可能組合。每個比較器耦接一個相應的輸出電路,該輸出電路的輸出值相符於該比較器輸入的連續130位元資料於資料寄存器173中的起始位址。例如,比較器720-0耦接能夠輸出0的輸出電路730-0,比較器720-1耦接能 夠輸出1的輸出電路730-1,依此類推。比較器720-0至720-130中的每一個比較輸入的連續130位元資料及PCI-E FTS。當輸入的130位元資料相符於PCI-E FTS,該比較器輸出訊號來驅動耦接的輸出電路以輸出特定值(也就是PCI-E FTS於資料寄存器173中的起始位址)至偏移寄存器176。反之,該比較器不輸出訊號。 Referring to Figure 7, in some embodiments of a 128b/130b SerDes environment, data register 173 stores 260 bits of data. For PCI-E comma notation (K28.5), the boundary detector 174 includes 131 output circuits 730-0 to 730-130, coupled to the offset register 176, which when driven, output 0 to 130 to offset respectively. Register 176. The boundary detector 174 includes 131 comparators 710-0 to 710-130, which are used to detect all possible combinations of 130 consecutive bits of data in the data register 173. For example, the comparator 710-0 detects the data D[129:0] in the 0th to 129th bits in the data register 173, and the comparator 710-1 detects the data D[130] in the 1st to 130th bits in the data register 173. :1], and so on. Each comparator is coupled to a corresponding output circuit, and the output value of the output circuit is consistent with the starting address of the continuous 130-bit data input by the comparator in the data register 173 . For example, the comparator 710-0 is coupled to the output circuit 730-0 capable of outputting 0, the comparator 710-1 is coupled to the output circuit 730-1 capable of outputting 1, and so on. Each of the comparators 710-0 to 710-130 compares the input continuous 130-bit data and the PCI-E comma symbol. When the input 130-bit data matches the PCI-E comma symbol, the comparator outputs a signal to drive the coupled output circuit to output a specific value (that is, the starting bit of the PCI-E comma symbol in the data register 173 address) to offset register 176. Otherwise, the comparator does not output a signal. In addition, for PCI-E FTS (K28.1), the boundary detector 174 includes 131 comparators 720-0 to 720-130 to detect all possible combinations of continuous 130-bit data in the data register 173. Each comparator is coupled to a corresponding output circuit, and the output value of the output circuit is consistent with the starting address of the continuous 130-bit data input by the comparator in the data register 173 . For example, the comparator 720-0 is coupled to the output circuit 730-0 capable of outputting 0, and the comparator 720-1 is coupled to the output circuit 730-0 capable of outputting 0. output circuit 730-1 capable of outputting 1, and so on. Each of the comparators 720-0 to 720-130 compares the input continuous 130-bit data and the PCI-E FTS. When the input 130-bit data matches the PCI-E FTS, the comparator outputs a signal to drive the coupled output circuit to output a specific value (that is, the starting address of the PCI-E FTS in the data register 173) to the offset Shift register 176. Otherwise, the comparator does not output a signal.

參考圖8,在8b/10b SerDes環境的一些實施例中,邊界偵測器174包含多工器(Multiplexer MUX)850,其兩個輸入端分別輸入UFS叢發頭及UFS填充元。多工器850依據相應於解碼器177的解碼成功訊號的控制訊號Ct輸出UFS叢發頭至所有比較器810-0至810-10,以及依據相應於解碼器177的解碼失敗訊號的控制訊號Ct’輸出UFS填充元至所有比較器810-0至810-10。邊界偵測器174包含11個輸出電路830-0至830-10,其耦接關係及功能分別類似於圖6所示的輸出電路630-0至630-10。邊界偵測器174包含11個比較器810-0至810-10,用來偵測資料寄存器173中連續10位元資料的所有可能組合。每個比較器耦接一個相應的輸出電路,該輸出電路的輸出值相符於該比較器輸入的連續10位元資料於資料寄存器173中的起始位址。比較器810-0至810-10中的每一個比較從資料寄存器173輸入的連續10位元資料與從多工器850輸入的碼。當兩者相符時,該比較器輸出訊號來驅動耦接的輸出電路以輸出特定值(也就是UFS叢發頭或UFS填充元於資料寄存器173中的起始位址)至偏移寄存器176。反之,該比較器不輸出訊號。相較於圖6,圖8所示的電路減少一半的比較器。 Referring to Figure 8, in some embodiments of the 8b/10b SerDes environment, the boundary detector 174 includes a multiplexer (Multiplexer MUX) 850, the two input terminals of which input the UFS burst header and the UFS padding element respectively. The multiplexer 850 outputs the UFS burst header to all comparators 810-0 to 810-10 according to the control signal Ct corresponding to the decoding success signal of the decoder 177, and according to the control signal Ct corresponding to the decoding failure signal of the decoder 177 'Output UFS padding elements to all comparators 810-0 to 810-10. The boundary detector 174 includes 11 output circuits 830-0 to 830-10, whose coupling relationships and functions are respectively similar to the output circuits 630-0 to 630-10 shown in FIG. 6 . The boundary detector 174 includes 11 comparators 810-0 to 810-10, which are used to detect all possible combinations of consecutive 10-bit data in the data register 173. Each comparator is coupled to a corresponding output circuit, and the output value of the output circuit is consistent with the starting address of the continuous 10-bit data input by the comparator in the data register 173 . Each of the comparators 810-0 to 810-10 compares the continuous 10-bit data input from the data register 173 with the code input from the multiplexer 850. When the two match, the comparator outputs a signal to drive the coupled output circuit to output a specific value (that is, the starting address of the UFS burst header or UFS fill element in the data register 173) to the offset register 176. Otherwise, the comparator does not output a signal. Compared with Figure 6, the circuit shown in Figure 8 has half the comparators.

參考圖9,在128b/130b SerDes環境的一些實施例中,邊界偵測器174包含多工器950,其兩個輸入端分別輸入PCI-E逗點符號及PCI-E FTS。多工器950依據相應於解碼器177的解碼成功訊號的控制訊號Ct輸出PCI-E逗點符號至所有比較器910-0至910-130,以及依據相應於解碼器177的解碼失敗訊號的控制訊號Ct’輸出PCI-E FTS至所有比較器910-0至910-130。邊界偵測器174包含131個輸出電路930-0至 930-130,其耦接關係及功能分別類似於圖7所示的輸出電路730-0至730-130。邊界偵測器174包含131個比較器910-0至910-130,用來偵測資料寄存器173中連續130位元資料的所有可能組合。每個比較器耦接一個相應的輸出電路,該輸出電路的輸出值相符於該比較器輸入的連續130位元資料於資料寄存器173中的起始位址。比較器910-0至910-130中的每一個比較從資料寄存器173輸入的連續130位元資料與從多工器950輸入的碼。當兩者相符時,該比較器輸出訊號來驅動耦接的輸出電路以輸出特定值(也就是PCI-E逗點符號或PCI-E FTS於資料寄存器173中的起始位址)至偏移寄存器176。反之,該比較器不輸出訊號。相較於圖7,圖9所示的電路減少一半的比較器。 Referring to Figure 9, in some embodiments of a 128b/130b SerDes environment, the boundary detector 174 includes a multiplexer 950, the two input terminals of which input PCI-E comma symbols and PCI-E FTS respectively. The multiplexer 950 outputs PCI-E comma symbols to all comparators 910-0 to 910-130 according to the control signal Ct corresponding to the decoding success signal of the decoder 177, and according to the control corresponding to the decoding failure signal of the decoder 177 Signal Ct' outputs PCI-E FTS to all comparators 910-0 to 910-130. Boundary detector 174 includes 131 output circuits 930-0 to 930-130, whose coupling relationship and function are respectively similar to the output circuits 730-0 to 730-130 shown in Figure 7. The boundary detector 174 includes 131 comparators 910-0 to 910-130, which are used to detect all possible combinations of 130 consecutive bits of data in the data register 173. Each comparator is coupled to a corresponding output circuit, and the output value of the output circuit is consistent with the starting address of the continuous 130-bit data input by the comparator in the data register 173 . Each of the comparators 910-0 to 910-130 compares the continuous 130-bit data input from the data register 173 with the code input from the multiplexer 950. When the two match, the comparator outputs a signal to drive the coupled output circuit to output a specific value (that is, the PCI-E comma symbol or the starting address of the PCI-E FTS in the data register 173) to the offset Register 176. Otherwise, the comparator does not output a signal. Compared with Figure 7, the circuit shown in Figure 9 has half the comparators.

於一些實施例,參考圖10所示由實體層170執行的資料串流切割方法。 In some embodiments, refer to the data stream cutting method performed by the physical layer 170 as shown in FIG. 10 .

步驟S1010:此方法不斷更新資料寄存器173中的內容,用以儲存從主機端110傳來的資料。 Step S1010: This method continuously updates the content in the data register 173 to store data transmitted from the host 110.

步驟S1030:每次資料寄存器173中的內容更新後,比較資料寄存器173中連續n個位元資料的每一個可能組合與邊界鎖定模式。 Step S1030: Each time the content in the data register 173 is updated, compare each possible combination of n consecutive bit data in the data register 173 with the boundary lock mode.

步驟S1050:每次資料寄存器173中的內容更新後,比較資料寄存器173中連續n個位元資料的每一個可能組合與預設的特殊符號。 Step S1050: Each time the content in the data register 173 is updated, compare each possible combination of n consecutive bit data in the data register 173 with the preset special symbols.

步驟S1070:當資料寄存器173中連續n個位元資料的任一組合相符於邊界鎖定模式或預設的特殊符號時,改變為依據邊界鎖定模式或預設的特殊符號於資料寄存器173中的起始位址切割資料寄存器173中的內容,用於產生一或多個片段。 Step S1070: When any combination of n consecutive n-bit data in the data register 173 matches the boundary lock mode or the preset special symbol, change the starting point in the data register 173 according to the boundary lock mode or the preset special symbol. The content in the starting address cutting data register 173 is used to generate one or more segments.

於另一些實施例,參考圖11所示由實體層170執行的資料串流切割方法。 In other embodiments, refer to the data stream cutting method performed by the physical layer 170 shown in FIG. 11 .

步驟S1110:此方法不斷更新資料寄存器173中的內容,用以儲存從主機端110傳來的資料。 Step S1110: This method continuously updates the content in the data register 173 to store data transmitted from the host 110.

步驟S1130:每次資料寄存器173中的內容更新後且之前切割的資料 解碼成功時,比較資料寄存器173中連續n個位元資料的每一個可能組合與邊界鎖定模式。 Step S1130: Each time the content in the data register 173 is updated and the previously cut data When the decoding is successful, each possible combination of n consecutive bit data in the data register 173 is compared with the boundary lock mode.

步驟S1150:每次資料寄存器173中的內容更新後且之前切割的資料解碼失敗時,比較資料寄存器173中連續n個位元資料的每一個可能組合與與預設的特殊符號。 Step S1150: Each time the content in the data register 173 is updated and the previously cut data fails to be decoded, compare each possible combination of n consecutive n bit data in the data register 173 with a preset special symbol.

步驟S1170:當資料寄存器173中連續n個位元資料的任一組合相符於邊界鎖定模式或預設的特殊符號時,依據邊界鎖定模式或預設的特殊符號於資料寄存器173中的起始位址切割資料寄存器173中的內容,用於產生一或多個片段。 Step S1170: When any combination of n consecutive n-bit data in the data register 173 matches the boundary lock mode or the preset special symbol, the starting bit in the data register 173 is determined according to the boundary lock mode or the preset special symbol. The contents of the address segmentation data register 173 are used to generate one or more segments.

於圖10或圖11所示的方法的一些使用案例中,n為10,實體層170設置為8b/10b SerDes環境,邊界鎖定模式為K.28.5符號,以及特殊符號為於閒置期間由主機端110傳送的K.28.1符號。 In some use cases of the method shown in Figure 10 or Figure 11, n is 10, the physical layer 170 is set to an 8b/10b SerDes environment, the boundary lock mode is K.28.5 symbols, and the special symbols are used by the host during idle periods 110 transmitted K.28.1 symbols.

於圖10或圖11所示的方法的另一些使用案例中,n為130,實體層170設置為128b/130b SerDes環境,邊界鎖定模式為K28.5符號,以及特殊符號為由主機端110傳送且插入在有效資料之前的K28.1符號。 In other use cases of the method shown in Figure 10 or Figure 11, n is 130, the physical layer 170 is set to a 128b/130b SerDes environment, the boundary lock mode is K28.5 symbols, and the special symbols are sent by the host 110 And insert the K28.1 symbol before the valid data.

雖然本發明實施例描述8b/10b及128b/130b SerDes環境作為範例,但所屬技術領域人員也可以將實施例提出的裝置及方法進行適當的修改後應用到資料儲存中的其他SerDes環境,例如64b/66b SerDes環境等。 Although the embodiments of the present invention describe 8b/10b and 128b/130b SerDes environments as examples, those skilled in the art can also make appropriate modifications to the devices and methods proposed in the embodiments and apply them to other SerDes environments in data storage, such as 64b /66b SerDes environment, etc.

雖然圖1~2、6~9中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖10~11的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。 Although Figures 1 to 2 and 6 to 9 contain the components described above, it does not rule out that more other additional components can be used to achieve better technical effects without violating the spirit of the invention. In addition, although the flowcharts in Figures 10 to 11 are executed in a specified order, those skilled in the art can modify the order of these steps while achieving the same effect without violating the spirit of the invention. Therefore, this The invention is not limited to the use of only the sequence described above. In addition, those skilled in the art can also integrate several steps into one step, or in addition to these steps, perform more steps sequentially or in parallel, and the invention is not limited thereby.

雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。 Although the present invention is described using the above embodiments, it should be noted that these descriptions are not intended to limit the present invention. On the contrary, this invention covers modifications and similar arrangements which will be obvious to one skilled in the art. Therefore, the scope of the claims of the application must be interpreted in the broadest manner to include all obvious modifications and similar arrangements.

110:主機端 110: Host side

130:控制器 130:Controller

131:處理單元 131: Processing unit

133:媒體存取控制層 133:Media access control layer

135:靜態隨機存取記憶體 135: Static random access memory

138:NAND閃存控制器 138:NAND flash controller

139:儲存介面 139:Storage interface

150:儲存裝置 150:Storage device

171:主機介面 171:Host interface

173:資料寄存器 173:Data register

174:邊界偵測器 174: Boundary Detector

175:串流分割器 175:Stream splitter

176:偏移寄存器 176:Offset register

177:解碼器 177:Decoder

179:並行介面 179: Parallel interface

Claims (12)

一種資料串流切割裝置,安裝於一實體層中,包含:一主機介面,耦接一主機端;一資料寄存器,耦接於該主機介面,用於儲存通過該主機介面從該主機端接收的資料;以及一邊界偵測器,耦接於該資料寄存器,用於偵測該資料寄存器的內容,並且當該資料寄存器包含一特殊符號時,輸出該資料寄存器中偵測到的該特殊符號的一起始位址給一偏移寄存器來更新該偏移寄存器中儲存的值,使得一串流分割器依據該偏移寄存器中儲存的新值進行該資料寄存器中的資料片段切割。 A data stream cutting device is installed in a physical layer and includes: a host interface coupled to a host; a data register coupled to the host interface for storing data received from the host through the host interface data; and a boundary detector coupled to the data register for detecting the contents of the data register, and when the data register contains a special symbol, outputting the value of the special symbol detected in the data register A starting address is given to an offset register to update the value stored in the offset register, so that a stream splitter performs segmentation of data in the data register according to the new value stored in the offset register. 如請求項1所述的資料串流切割裝置,其中該實體層設置為8b/10b串列器/解串器環境,該特殊符號為於一閒置期間由該主機端傳送的K.28.1符號。 The data stream cutting device of claim 1, wherein the physical layer is configured as an 8b/10b serializer/deserializer environment, and the special symbol is a K.28.1 symbol transmitted by the host during an idle period. 如請求項2所述的資料串流切割裝置,其中,該邊界偵測器包含:多個輸出電路,耦接該偏移寄存器,其中,每個該輸出電路用於被驅動時輸出一特定值給該偏移寄存器;以及多個比較器,用於偵測該資料寄存器中連續10位元資料的所有可能組合,其中,每個該比較器耦接一個相應的該輸出電路,當偵測到從該資料寄存器輸入的連續10位元資料相符於該K.28.1符號時,驅動該耦接的輸出電路。 The data stream cutting device of claim 2, wherein the boundary detector includes: a plurality of output circuits coupled to the offset register, wherein each of the output circuits is used to output a specific value when driven to the offset register; and a plurality of comparators for detecting all possible combinations of continuous 10-bit data in the data register, wherein each comparator is coupled to a corresponding output circuit. When detecting When the continuous 10-bit data input from the data register matches the K.28.1 symbol, the coupled output circuit is driven. 如請求項1所述的資料串流切割裝置,其中,該實體層設置為128b/130b串列器/解串器環境,該特殊符號為由該主機端傳送且插入在有效資料之前的K28.1符號。 The data stream cutting device as described in claim 1, wherein the physical layer is set to a 128b/130b serializer/deserializer environment, and the special symbol is K28. transmitted by the host and inserted before the valid data. 1 symbol. 如請求項4所述的資料串流切割裝置,其中,該邊界偵測器包含:多個輸出電路,耦接該偏移寄存器,其中,每個該輸出電路用於被驅動時輸出一特定值給該偏移寄存器;以及多個比較器,用於偵測該資料寄存器中連續130位元資料的所有可能組合,其中,每個該比較器耦接一個相應的該輸出電路,當偵測到從該資料寄存器輸入的連續130位元資料相符於該K28.1符號時,驅動該耦接的輸出電路。 The data stream cutting device of claim 4, wherein the boundary detector includes: a plurality of output circuits coupled to the offset register, wherein each of the output circuits is used to output a specific value when driven to the offset register; and a plurality of comparators for detecting all possible combinations of continuous 130-bit data in the data register, wherein each comparator is coupled to a corresponding output circuit. When detecting When the continuous 130-bit data input from the data register matches the K28.1 symbol, the coupled output circuit is driven. 如請求項1所述的資料串流切割裝置,其中該實體層設置為串列器/解串器環境。 The data stream cutting device as claimed in claim 1, wherein the physical layer is configured as a serializer/deserializer environment. 一種資料串流切割方法,由一實體層執行,包含:比較資料寄存器中連續n個位元資料的每一個組合與一特殊符號,其中n為正整數;以及當該資料寄存器中連續n個位元資料的任一組合相符於該特殊符號時,改變為依據該特殊符號於該資料寄存器中的起始位址切割該資料寄存器中的內容,用於產生一個或多個片段。 A data stream cutting method, executed by a physical layer, includes: comparing each combination of n consecutive n bits of data in a data register with a special symbol, where n is a positive integer; and when n consecutive n bits in the data register When any combination of metadata matches the special symbol, the content in the data register is cut according to the starting address of the special symbol in the data register to generate one or more fragments. 如請求項7所述的資料串流切割方法,其中,n為10,該實體層設置為8b/10b串列器/解串器環境,以及該特殊符號為於一閒置期間由一主機端傳送的K.28.1符號。 The data stream cutting method as described in claim 7, wherein n is 10, the physical layer is set to an 8b/10b serializer/deserializer environment, and the special symbol is transmitted by a host during an idle period K.28.1 symbol. 如請求項7所述的資料串流切割方法,其中,n為130,該實體層設置為128b/130b串列器/解串器環境,以及該特殊符號為由一主機端傳送且插入在有效資料之前的K28.1符號。 The data stream cutting method as described in request item 7, wherein n is 130, the physical layer is set to a 128b/130b serializer/deserializer environment, and the special symbol is transmitted by a host and inserted into a valid K28.1 symbol before the data. 一種資料串流切割方法,由一實體層執行,包含:當之前切割的資料解碼失敗時,比較資料寄存器中連續n個位元資料的每一個組合與一特殊符號,其中n為正整數;以及當該資料寄存器中連續n個位元資料的任一組合相符於該特殊符號時,改變為依據該特殊符號於該資料寄存器中的起始位址切割該資料寄存器中的內容,用於產生一個或多個片段。 A data stream cutting method, executed by a physical layer, includes: when decoding of previously cut data fails, comparing each combination of consecutive n bit data in the data register with a special symbol, where n is a positive integer; and When any combination of n consecutive bits of data in the data register matches the special symbol, the content in the data register is cut according to the starting address of the special symbol in the data register to generate a or multiple fragments. 如請求項10所述的資料串流切割方法,其中,n為10,該實體層設置為8b/10b串列器/解串器環境,以及該特殊符號為於一閒置期間由一主機端傳送的K.28.1符號。 The data stream cutting method as described in claim 10, wherein n is 10, the physical layer is set to an 8b/10b serializer/deserializer environment, and the special symbol is transmitted by a host during an idle period K.28.1 symbol. 如請求項10所述的資料串流切割方法,其中,n為130,該實體層設置為128b/130b串列器/解串器環境,以及該特殊符號為由一主機端傳送且插入在有效資料之前的K28.1符號。 The data stream cutting method as described in request 10, wherein n is 130, the physical layer is set to a 128b/130b serializer/deserializer environment, and the special symbol is transmitted by a host and inserted into a valid K28.1 symbol before the data.
TW110123662A 2020-04-08 2020-04-08 Apparatus and method for segmenting a data stream of a physical layer TWI818274B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW110123662A TWI818274B (en) 2020-04-08 2020-04-08 Apparatus and method for segmenting a data stream of a physical layer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110123662A TWI818274B (en) 2020-04-08 2020-04-08 Apparatus and method for segmenting a data stream of a physical layer

Publications (2)

Publication Number Publication Date
TW202207047A TW202207047A (en) 2022-02-16
TWI818274B true TWI818274B (en) 2023-10-11

Family

ID=81323633

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110123662A TWI818274B (en) 2020-04-08 2020-04-08 Apparatus and method for segmenting a data stream of a physical layer

Country Status (1)

Country Link
TW (1) TWI818274B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609386B (en) * 2010-12-03 2016-04-13 罗姆股份有限公司 The receiving circuit of serial data, method of reseptance and transmission system, transmission method
TWI533210B (en) * 2012-10-31 2016-05-11 晨星半導體股份有限公司 Stream data processor
CN109902051A (en) * 2017-12-11 2019-06-18 美光科技公司 Converting system for more fine granular memory architecture
CN110781112A (en) * 2019-10-23 2020-02-11 中国人民解放军国防科技大学 Dual-channel serial RapidIO interface supporting multiple transmission modes
US10592450B2 (en) * 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609386B (en) * 2010-12-03 2016-04-13 罗姆股份有限公司 The receiving circuit of serial data, method of reseptance and transmission system, transmission method
TWI533210B (en) * 2012-10-31 2016-05-11 晨星半導體股份有限公司 Stream data processor
US10592450B2 (en) * 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
CN109902051A (en) * 2017-12-11 2019-06-18 美光科技公司 Converting system for more fine granular memory architecture
CN110781112A (en) * 2019-10-23 2020-02-11 中国人民解放军国防科技大学 Dual-channel serial RapidIO interface supporting multiple transmission modes

Also Published As

Publication number Publication date
TW202207047A (en) 2022-02-16

Similar Documents

Publication Publication Date Title
US11829759B2 (en) Apparatus and method for segmenting a data stream of a physical layer
US9971730B2 (en) Link layer to physical layer (PHY) serial interface
US7103823B2 (en) Communication between multi-processor clusters of multi-cluster computer systems
US7117419B2 (en) Reliable communication between multi-processor clusters of multi-cluster computer systems
US9661350B2 (en) Methods and apparatus for error rate estimation
US7243173B2 (en) Low protocol, high speed serial transfer for intra-board or inter-board data communication
US8464145B2 (en) Serial interface devices, systems and methods
US8401138B2 (en) Serial data receiver circuit apparatus and serial data receiving method
US11829626B2 (en) Storage device and operating method of storage device
US11809719B2 (en) Techniques for performing write training on a dynamic random-access memory
JP2004326769A (en) Information transfer protocol
TWI818274B (en) Apparatus and method for segmenting a data stream of a physical layer
US20230239256A1 (en) Wide Elastic Buffer
TWI735199B (en) Apparatus and method for segmenting a data stream of a physical layer
US20030112827A1 (en) Method and apparatus for deskewing parallel serial data channels using asynchronous elastic buffers
EP2811483A2 (en) Methods and apparatus for error rate estimation
US6895542B2 (en) Data recovery circuit and method and data receiving system using the same
US20240163010A1 (en) Operation method for an electronic device and an electronic device capable of performing an advanced line coding
TWI645298B (en) Methods for reducing data error in transceiving of flash storage interface and apparatuses using the same
US20230170037A1 (en) Hybrid memory system with increased bandwidth
WO2024044867A1 (en) Data reordering training method and die
US10630425B2 (en) Methods for reducing data errors in transceiving of a flash storage interface and apparatuses using the same
US20230254108A1 (en) System and method for efficient transition encoding
TW202236832A (en) Adaptive serial general purpose input output interface and siganl receiver thereof