CN105335324B - The method of receiver and reception data for high-speed serial bus - Google Patents
The method of receiver and reception data for high-speed serial bus Download PDFInfo
- Publication number
- CN105335324B CN105335324B CN201510885448.0A CN201510885448A CN105335324B CN 105335324 B CN105335324 B CN 105335324B CN 201510885448 A CN201510885448 A CN 201510885448A CN 105335324 B CN105335324 B CN 105335324B
- Authority
- CN
- China
- Prior art keywords
- data unit
- control data
- receiver
- reference value
- type
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 239000000872 buffer Substances 0.000 claims abstract description 38
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000000149 argon plasma sintering Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002356 laser light scattering Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
技术领域technical field
本发明涉及高速串行总线传输技术,更具体地,涉及用于高速串行总线的接收器和接收数据的方法。The present invention relates to high-speed serial bus transmission technology, and more particularly, to a receiver for high-speed serial bus and a method for receiving data.
背景技术Background technique
随着数字设备在各种领域的广泛应用,需要更大的数据存储量和更高的带宽,已经开发了诸如串行高级技术附件(SATA)、外围组件快速互连(PCIe)、以及超高速I(UHS-I)和超高速II(UHS-II)的高速串行总线技术。以UHS-II为例,通过两个通路(lane)可以在主机与存储卡之间实现高达156MB/s(全双工)或312MB/s(半双工)的传输速率。With the wide application of digital devices in various fields, greater data storage capacity and higher bandwidth have been developed, such as Serial Advanced Technology Attachment (SATA), Peripheral Component Interconnect Express (PCIe), and ultra-high-speed High-speed serial bus technology of I (UHS-I) and Ultra High Speed II (UHS-II). Taking UHS-II as an example, a transfer rate of up to 156MB/s (full-duplex) or 312MB/s (half-duplex) can be achieved between the host and the memory card through two lanes.
在物理层传输中,主机与存储卡之间的接口两侧处于不同的时钟域。处于不同的时钟域的发送和接收双方的时钟源之间通常有相位差,甚至频率上也有细微的差别。当为了减少电磁干扰而使用扩频时钟(SSC)技术时,时钟源之间的上述差异可能更严重。In physical layer transmission, the two sides of the interface between the host and the memory card are in different clock domains. There is usually a phase difference between the clock sources of the sending and receiving sides in different clock domains, and there is even a slight difference in frequency. These differences between clock sources can be even more severe when spread spectrum clocking (SSC) techniques are used to reduce EMI.
为此,通常采用弹性缓冲器来解决上述问题。即,将来自第一时钟域的接收数据推送(push)到弹性缓冲器中,并弹出(pop)到第二时钟域。然而,如果第二时钟域的时钟频率长时间低于第一时钟域的时钟频率,则弹性缓冲器可能满溢,使得无法进一步接收数据。目前,UHS-II并未规定如何解决缓冲器满溢问题。通常,需要设计额外的硬件配置来应对缓冲器满溢。此外,当在半双工模式下同时使用两个通路传输数据时,还会产生另外的问题,即,不同通路的时钟源之间也存在差异,导致各个通路的弹性缓冲器中的水位线(water mark)不同,这称为数据歪斜(data skew)。数据歪斜会对各通路的数据的合并造成困难。因而,进一步需要诸如缓冲器的额外的硬件配置用于消除通路之间的数据歪斜。上述额外的硬件配置提高了设计复杂度,同时使得制造成本更为高昂。For this reason, elastic buffers are usually used to solve the above problems. That is, the received data from the first clock domain is pushed (push) into the elastic buffer and popped (pop) to the second clock domain. However, if the clock frequency of the second clock domain is lower than the clock frequency of the first clock domain for a long time, the elastic buffer may overflow, making it impossible to receive further data. Currently, UHS-II does not specify how to solve the buffer overflow problem. Usually, additional hardware configuration needs to be designed to cope with buffer overflow. In addition, when using two lanes to transmit data at the same time in half-duplex mode, there will be another problem, that is, there are also differences between the clock sources of different lanes, resulting in the water level in the elastic buffer of each lane ( water mark), which is called data skew. Data skew can cause difficulty in merging data from each path. Thus, an additional hardware configuration such as a buffer for eliminating data skew between lanes is further required. The above additional hardware configuration increases the design complexity and makes the manufacturing cost more expensive.
发明内容Contents of the invention
因此,为了解决上述问题,本发明提供能够防止缓冲器满溢和数据歪斜的用于高速串行总线的接收器和接收数据的方法。Therefore, in order to solve the above-mentioned problems, the present invention provides a receiver for a high-speed serial bus and a method of receiving data capable of preventing buffer overflow and data skew.
根据本发明的一个实施例,提供一种用于高速串行总线的接收器,包括:解码器,用于确定接收数据中的控制数据单元的类型;计数器,用于对特定类型的控制数据单元的重复次数进行计数;控制器,根据通过该解码器确定的控制数据单元的类型,控制该计数器对所述特定类型的控制数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的所述特定类型的控制数据单元;以及缓冲器,用于存储经过处理的接收数据。According to one embodiment of the present invention, there is provided a receiver for a high-speed serial bus, comprising: a decoder for determining the type of control data unit in received data; a counter for controlling the specific type of control data unit Count the number of repetitions; the controller, according to the type of control data unit determined by the decoder, controls the counter to count the number of repetitions of the specific type of control data unit, and when the number of repetitions reaches a reference value, from discarding at least one repetition of the specific type of control data unit in the received data; and a buffer for storing the processed received data.
根据实施例,当控制数据单元的类型属于空闲数据单元时,该控制器可以控制该计数器对属于空闲数据单元的上述特定类型的控制数据单元的重复次数进行计数。According to an embodiment, when the type of the control data unit belongs to the idle data unit, the controller may control the counter to count the repetition times of the above-mentioned specific type of control data unit belonging to the idle data unit.
根据实施例,所述高速串行总线可以为超高速II(UHS-II)总线,所述特定类型的控制数据单元可以包括以下链路符号集(LSS)中的至少一种:同步(SYN)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、和方向切换(DIR)。According to an embodiment, the high-speed serial bus may be an Ultra High Speed II (UHS-II) bus, and the specific type of control data unit may include at least one of the following Link Symbol Sets (LSS): Synchronization (SYN) , Logical Idle (LIDL), Data Transfer Logical Idle (DIDL), and Direction Switching (DIR).
根据实施例,该接收器可以进一步包括寄存器,用于设置所述参考值。According to an embodiment, the receiver may further include a register for setting the reference value.
根据实施例,所述参考值可以由所述特定类型的控制数据单元的持续时间决定。According to an embodiment, said reference value may be determined by the duration of said specific type of control data unit.
根据实施例,所述参考值可以为16至256。According to an embodiment, the reference value may be 16 to 256.
根据实施例,该接收器可以包括多个数据通路,每个数据通路可以包括单独的计数器和缓冲器。According to an embodiment, the receiver may include multiple data paths, each data path may include a separate counter and buffer.
根据实施例,该缓冲器可以是弹性缓冲器。According to an embodiment, the bumper may be an elastic bumper.
根据实施例,该接收器可以根据从该接收数据中恢复的第一时钟接收该接收数据,且可以根据第二时钟输出存储在该缓冲器中的所述经过处理的该接收数据,其中所述参考值可以由所述第一时钟和所述第二时钟的差异决定。According to an embodiment, the receiver may receive the received data according to a first clock recovered from the received data, and may output said processed received data stored in the buffer according to a second clock, wherein said The reference value may be determined by a difference between the first clock and the second clock.
根据本发明的另一实施例,提供一种用于高速串行总线的接收数据的方法,包括:确定接收数据中的控制数据单元的类型;根据控制数据单元的类型,对特定类型的控制数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的所述特定类型的控制数据单元;以及存储经过处理的接收数据。According to another embodiment of the present invention, there is provided a method for receiving data on a high-speed serial bus, including: determining the type of control data unit in the received data; counting the number of repetitions of the unit, and discarding at least one repetition of the specific type of control data unit from the received data when the number of repetitions reaches a reference value; and storing the processed received data.
根据实施例,当控制数据单元的类型属于空闲数据单元时,可以对属于空闲数据单元的上述特定类型的控制数据单元的重复次数进行计数。According to an embodiment, when the type of the control data unit belongs to the free data unit, the number of repetitions of the above-mentioned specific type of control data unit belonging to the free data unit may be counted.
根据实施例,所述高速串行总线可以为超高速II(UHS-II)总线,所述特定类型的控制数据单元可以包括以下链路符号集(LSS)中的至少一种:同步(SYN)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、和方向切换(DIR)。According to an embodiment, the high-speed serial bus may be an Ultra High Speed II (UHS-II) bus, and the specific type of control data unit may include at least one of the following Link Symbol Sets (LSS): Synchronization (SYN) , Logical Idle (LIDL), Data Transfer Logical Idle (DIDL), and Direction Switching (DIR).
根据实施例,该方法可以进一步包括:设置所述参考值。According to an embodiment, the method may further include: setting the reference value.
根据实施例,所述参考值可以由所述特定类型的控制数据单元的持续时间决定。According to an embodiment, said reference value may be determined by the duration of said specific type of control data unit.
根据实施例,所述参考值可以为16至256。According to an embodiment, the reference value may be 16 to 256.
根据实施例,可以根据从该接收数据中恢复的第一时钟接收该接收数据,且可以根据第二时钟输出存储在该缓冲器中的所述经过处理的该接收数据,其中所述参考值可以由所述第一时钟和所述第二时钟的差异决定。According to an embodiment, the received data may be received according to a first clock recovered from the received data, and said processed received data stored in the buffer may be output according to a second clock, wherein said reference value may be Determined by the difference between the first clock and the second clock.
根据本发明的实施例,在跨时钟域接收数据时,通过对特定类型的控制数据单元(例如,空闲数据单元)的重复次数进行计数并丢弃至少一个重复的控制数据单元,可以有效地控制缓冲器中的水位线以防止缓冲器满溢而无需增加硬件设计复杂度。此外,在通过多个通路接收数据的情况下,可以进一步解决不同通路之间由于时钟频率差异而发生数据歪斜的问题。According to an embodiment of the present invention, when data is received across clock domains, buffering can be effectively controlled by counting the number of repetitions of a certain type of control data unit (e.g., an idle data unit) and discarding at least one duplicated control data unit The watermark in the buffer prevents the buffer from overflowing without adding hardware design complexity. In addition, in the case of receiving data through multiple paths, the problem of data skew due to clock frequency differences between different paths can be further solved.
附图说明Description of drawings
图1是示出根据本发明的实施例的用于高速串行总线的接收器100的框图;1 is a block diagram illustrating a receiver 100 for a high-speed serial bus according to an embodiment of the present invention;
图2是示出根据本发明的实施例的用于高速串行总线的接收数据的方法的流程图;Fig. 2 is a flowchart illustrating a method for receiving data for a high-speed serial bus according to an embodiment of the present invention;
图3是示出根据本发明的实施例的用于高速串行总线的弹性缓冲器300的框图;以及3 is a block diagram illustrating an elastic buffer 300 for a high-speed serial bus according to an embodiment of the present invention; and
图4是示出根据本发明的实施例的用于高速串行总线的弹性缓冲的方法的流程图。FIG. 4 is a flowchart illustrating a method for elastic buffering of a high-speed serial bus according to an embodiment of the present invention.
具体实施方式Detailed ways
下面参照附图详细描述根据本发明的示范性实施例。附图中,将相同或类似的附图标记赋予结构以及功能基本相同的组成部分,并且为了使说明书更加简明,省略了关于基本上相同的组成部分的冗余描述。Exemplary embodiments according to the present invention are described in detail below with reference to the accompanying drawings. In the drawings, the same or similar reference numerals are assigned to components having substantially the same structure and function, and redundant descriptions about the components that are substantially the same are omitted in order to make the description more concise.
下文中,将以超高速II(UHS-II)作为高速串行总线的示例来描述本发明的实施例。然而,本发明不限于此。本发明的方案也可以应用于在不同时钟域之间使用弹性缓冲器的其他高速串行总线(例如SATA或PCIe总线)技术。Hereinafter, embodiments of the present invention will be described taking Ultra High Speed II (UHS-II) as an example of a high-speed serial bus. However, the present invention is not limited thereto. The solution of the present invention can also be applied to other high-speed serial bus (such as SATA or PCIe bus) technologies using elastic buffers between different clock domains.
图1是示出根据本发明的实施例的用于高速串行总线的接收器100的框图。FIG. 1 is a block diagram illustrating a receiver 100 for a high-speed serial bus according to an embodiment of the present invention.
参照图1,接收器100可以包括解码器101、计数器102、控制器103、和缓冲器104。在一实施例中,接收器100可以设置于主机或存储卡的物理层中。接收器100从第一时钟域接收数据,并输出经过处理的的接收数据到第二时钟域。例如,接收器100的一侧经由时钟数据恢复(CDR)从自发送器(图未绘示)接收的数据中产生恢复时钟源,并根据所产生的恢复时钟源将接收数据推送(push)到接收器100中,接收器的100另一侧弹出(pop)经过处理的接收数据到第二时钟域,第二时钟域例如为主机或存储卡本地的时钟源。Referring to FIG. 1 , a receiver 100 may include a decoder 101 , a counter 102 , a controller 103 , and a buffer 104 . In an embodiment, the receiver 100 may be disposed in a physical layer of a host or a memory card. The receiver 100 receives data from a first clock domain and outputs processed received data to a second clock domain. For example, one side of the receiver 100 generates a recovered clock source from the data received from the transmitter (not shown) through clock data recovery (CDR), and pushes the received data to the In the receiver 100, the other side of the receiver 100 pops the processed received data into the second clock domain, and the second clock domain is, for example, a local clock source of the host or the memory card.
解码器101可以确定接收的数据中的控制数据单元的类型。例如,在UHS-II中,控制数据单元可以是链路符号集(LLS),包括:同步(SYN)、自举同步(BSYN)、方向切换(DIR)、逻辑空闲(LIDL)、数据传输逻辑空闲(DIDL)、数据突发开始(SDB)、数据突发结束(EDB)、分组开始(SOP)、分组结束(EOP)等。每个LLS具有各自的信号样式,解码器101通过LLS的信号样式来确定其类型。例如,LIDL可以包括两个符号,第一个符号是逗号(COM)(K28.5),第二个符号可以是从LIDL0(K28.3)和LIDL1(D16.7)中随机选择的符号。UHS-II物理层规范4.0中详细规定了各种LLS的信号样式和作用,这里不再赘述。The decoder 101 may determine the type of control data unit in the received data. For example, in UHS-II, the control data unit can be a link symbol set (LLS), including: synchronization (SYN), bootstrap synchronization (BSYN), direction switch (DIR), logic idle (LIDL), data transmission logic Idle (DIDL), Start of Data Burst (SDB), End of Data Burst (EDB), Start of Packet (SOP), End of Packet (EOP), etc. Each LLS has its own signal pattern, and the decoder 101 determines its type through the signal pattern of the LLS. For example, LIDL can consist of two symbols, the first symbol is a comma (COM) (K28.5), and the second symbol can be a symbol randomly selected from LIDL0 (K28.3) and LIDL1 (D16.7). The signal styles and functions of various LLS are specified in UHS-II Physical Layer Specification 4.0 in detail, and will not be repeated here.
计数器102可以对特定类型的控制数据单元的重复次数进行计数。根据本发明的实施例,当控制数据单元的类型被解码器101确定为属于空闲数据单元时,控制器103可以控制计数器102对类型被确定为属于空闲数据单元的控制数据单元的重复次数进行计数。在UHS-II中,空闲数据单元可以是以下LLS中的至少一个或全部:SYN、DIR、LIDL、和DIDL。然而,这仅仅是示例,本发明不限于此。此外,根据实施例,也可以对除了空闲数据单元之外的其他控制数据单元的重复次数进行计数。Counter 102 may count the number of repetitions of a particular type of control data unit. According to an embodiment of the present invention, when the type of the control data unit is determined to belong to the idle data unit by the decoder 101, the controller 103 may control the counter 102 to count the number of repetitions of the control data unit whose type is determined to belong to the idle data unit . In UHS-II, an idle data unit may be at least one or all of the following LLSs: SYN, DIR, LIDL, and DIDL. However, this is just an example, and the present invention is not limited thereto. In addition, according to an embodiment, the number of repetitions of other control data units other than idle data units may also be counted.
当该重复次数达到参考值时,控制器103可以从接收数据中丢弃至少一个重复的前述特定类型的控制数据单元,并将经过处理的接收数据存储在缓冲器104中,以便向第二时钟域提供。根据实施例,缓冲器104可以是弹性缓冲器。由于仅输入数据中特定类型控制数据单元的很小一部分被丢弃,可以有效地控制缓冲器104的水位线,以便预防缓冲器104的满溢。为了避免影响传输信令,可以只丢弃空闲数据单元。When the number of repetitions reaches the reference value, the controller 103 may discard at least one repetition of the aforementioned specific type of control data unit from the received data, and store the processed received data in the buffer 104, so as to send to the second clock domain supply. According to an embodiment, the bumper 104 may be a resilient bumper. Since only a small fraction of control data units of a particular type in the input data are discarded, the water level of the buffer 104 can be effectively controlled in order to prevent the buffer 104 from overflowing. In order to avoid affecting transmission signaling, only idle data units may be discarded.
在UHS-II中,作为空闲数据单元的诸如SYN、DIR、LIDL、和DIDL的LLS通常被大量重复发送,因此适当地丢弃重复的LLS不会造成后续对接收数据的译码错误。本发明根据参考值控制丢弃重复LLS的频率,使得弹性缓冲器的水位线既不会太高以至于接近满溢,也不会太低以至于接近变空。为此,根据实施例,接收器100可以进一步包括寄存器(未示出),用于设置所述参考值,用于特定类型的空闲数据单元。在一实施例中,参考值是由空闲数据单元的持续时间决定的,特别地,是由空闲数据单元中持续时间最短的空闲数据单元的持续时间决定的。例如,DIR的持续时间最短,为N_LSS_DIR*8(例如,N_LSS_DIR可以等于8),可以将参考值设定为16,即每当接收到16个重复的空闲数据单元(包括SYN、DIR、LIDL、和DIDL的全部或部分类型)时,丢弃一个持续时间最短的DIR便足以将缓冲器104的水位线维持在较低水平而不会满溢,并且不会影响后续对接收数据的译码,那么则丢弃一个任意类型的空闲数据单元便一定都足以将缓冲器104的水位线降低到较低水平且不会造成译码错误。另一方面,参考值还由第一时钟域与第二时钟域的时钟源差异(包括相位差异和/或频率差异)决定,时钟源的差异越大,所述参考值越小,但通常时钟源差异的影响较小。在其他实施例中,甚至可以将所述参考值设定为高达256,即,每256个重复的空闲数据单元才丢弃一个,仍足以迅速将水位线降低到较低的水平,且不会造成译码错误。In UHS-II, LLS such as SYN, DIR, LIDL, and DIDL as idle data units are usually sent repeatedly in large numbers, so discarding repeated LLS properly will not cause subsequent decoding errors on received data. The present invention controls the frequency of discarding repeated LLSs based on a reference value, so that the water level of the elastic buffer is neither too high to be nearly full nor too low to be empty. To this end, according to an embodiment, the receiver 100 may further include a register (not shown) for setting the reference value for a specific type of idle data unit. In an embodiment, the reference value is determined by the duration of the idle data unit, in particular, by the duration of the idle data unit with the shortest duration among the idle data units. For example, the duration of DIR is the shortest, which is N_LSS_DIR*8 (for example, N_LSS_DIR can be equal to 8), and the reference value can be set to 16, that is, whenever 16 repeated idle data units (including SYN, DIR, LIDL, and all or part of DIDL types), discarding a DIR with the shortest duration is sufficient to maintain the water level of the buffer 104 at a low level without overflowing, and does not affect subsequent decoding of received data, then Discarding one free data unit of any type must then be sufficient to lower the watermark of the buffer 104 to a lower level without causing decoding errors. On the other hand, the reference value is also determined by the clock source difference (including phase difference and/or frequency difference) between the first clock domain and the second clock domain. Source differences have little effect. In other embodiments, the reference value can even be set as high as 256, that is, every 256 repeated idle data units are discarded, which is still enough to quickly reduce the water level to a lower level without causing Decoding error.
根据实施例,接收器100可以包括多个数据通路,此时,每个数据通路可以包括单独的计数器102和缓冲器104。在半双工模式下,可以在每个缓冲器104中分别丢弃空闲数据单元来消除数据歪斜,使得各个通路的缓冲器104的水位线平齐,以便于数据的合并。According to an embodiment, the receiver 100 may include multiple data paths, in which case each data path may include a separate counter 102 and buffer 104 . In the half-duplex mode, idle data units can be discarded in each buffer 104 to eliminate data skew, so that the water levels of the buffers 104 of each path are aligned to facilitate data merging.
图2是示出根据本发明的实施例的用于高速串行总线的接收数据的方法的流程图。FIG. 2 is a flowchart illustrating a method for receiving data for a high-speed serial bus according to an embodiment of the present invention.
参照图2,在步骤S201,可以确定接收数据中的控制数据单元的类型。如上所述,在UHS-II中,控制数据单元可以是LLS,包括:SYN、BSYN、DIR、LIDL、DIDL、SDB、EDB、SOP、EOP等。可以通过LLS的信号样式来确定其类型。Referring to FIG. 2, in step S201, a type of a control data unit in received data may be determined. As mentioned above, in UHS-II, the control data unit can be LLS, including: SYN, BSYN, DIR, LIDL, DIDL, SDB, EDB, SOP, EOP, etc. The type of LLS can be determined by its signal pattern.
在步骤S202,如果控制数据单元的类型属于特定类型的控制数据单元,则可以在步骤S203对特定类型的控制数据单元的重复次数进行计数,否则,进入步骤S206。如上所述,以UHS-II为例,特定类型的控制数据单元可以包括以下LSS中的至少一种或全部:SYN、LIDL、DIDL、和DIR。然而这只是示例,本发明不限于此。另外,根据实施例,也可以对除了空闲数据单元之外的其他特定类型的控制数据单元的重复次数进行计数。In step S202, if the type of the control data unit belongs to a specific type of control data unit, the number of repetitions of the specific type of control data unit may be counted in step S203, otherwise, go to step S206. As mentioned above, taking UHS-II as an example, a specific type of control data unit may include at least one or all of the following LSSs: SYN, LIDL, DIDL, and DIR. However, this is just an example, and the present invention is not limited thereto. In addition, according to an embodiment, the number of repetitions of other specific types of control data units other than idle data units may also be counted.
在步骤S204,如果重复次数达到参考值,则可以在步骤S205从接收数据中丢弃至少一个重复的特定类型的控制数据单元(或其他控制数据单元),否则,可以回到步骤S203继续计数。In step S204, if the number of repetitions reaches the reference value, at least one repeated specific type of control data unit (or other control data units) may be discarded from the received data in step S205, otherwise, it may return to step S203 to continue counting.
在步骤S206,存储经过处理的接收数据,以便向第二时钟域提供。In step S206, the processed received data is stored so as to be provided to the second clock domain.
如上所述,为了精确地控制缓冲器中的水位线,可以根据特定类型的控制数据单元(例如,包括SYN、DIR、LIDL、和DIDL)的持续时间以及第一时钟域与第二时钟域的时钟源差异来确定所述参考值。所述参考值可以为16至256。As mentioned above, in order to accurately control the water level in the buffer, it can be based on the duration of a specific type of control data unit (including, for example, SYN, DIR, LIDL, and DIDL) and the difference between the first clock domain and the second clock domain. The clock source difference is used to determine the reference value. The reference value may range from 16 to 256.
此外,根据实施例,在通过多个数据通路传输时,可以对每个数据通路单独执行计数和缓存。在半双工模式下,可以在每个数据通路中分别丢弃空闲数据单元来消除数据歪斜,使得水位线平齐,以便于数据的合并。Furthermore, according to an embodiment, when transmitting over multiple data lanes, counting and buffering may be performed separately for each data lane. In the half-duplex mode, idle data units can be discarded in each data channel to eliminate data skew, so that the water level is even, so that the data can be merged.
图3是示出根据本发明的实施例的用于高速串行总线的弹性缓冲器300的框图。图3的弹性缓冲器300不同于图1的缓冲器104,其自身具有对空闲数据单元进行计数和丢弃的功能。FIG. 3 is a block diagram illustrating an elastic buffer 300 for a high-speed serial bus according to an embodiment of the present invention. The elastic buffer 300 in FIG. 3 is different from the buffer 104 in FIG. 1 in that it has the function of counting and discarding idle data units.
参照图3,弹性缓冲器300可以包括输入接口301、控制器302、存储器303、和输出接口304。Referring to FIG. 3 , the elastic buffer 300 may include an input interface 301 , a controller 302 , a memory 303 , and an output interface 304 .
控制器302可以对通过输入接口301接收的来自第一时钟域的数据中的空闲数据单元进行识别,并对识别到的空闲数据单元的重复次数进行计数,当该重复次数达到参考值时,从接收数据中丢弃至少一个重复的空闲数据单元,并将经过处理的接收数据存储在存储器303中。在一实施例中,存储器303为一先进先出缓冲器(FIFO buffer)。The controller 302 may identify idle data units in the data received from the first clock domain through the input interface 301, and count the number of repetitions of the identified idle data units, and when the number of repetitions reaches a reference value, start from Discard at least one repeated idle data unit in the received data, and store the processed received data in the memory 303 . In one embodiment, the memory 303 is a first-in-first-out buffer (FIFO buffer).
输出接口304可以向第二时钟域输出存储在存储器303中的经过上述控制器302处理的接收数据。The output interface 304 may output the received data stored in the memory 303 and processed by the controller 302 to the second clock domain.
如上所述,所述高速串行总线可以为UHS-II总线,所述空闲数据单元可以包括以下LSS中的至少一种或全部:SYN、LIDL、DIDL、和DIR。As mentioned above, the high-speed serial bus may be a UHS-II bus, and the idle data unit may include at least one or all of the following LSSs: SYN, LIDL, DIDL, and DIR.
此外,根据实施例,为了精确地控制水位线,弹性缓冲器300可以进一步包括寄存器(未示出),用于设置所述参考值。具体地,可以根据空闲数据单元(包括SYN、DIR、LIDL、和DIDL)的持续时间和/或第一时钟域与第二时钟域的时钟源差异来确定所述参考值。所述参考值可以为16至256。In addition, according to an embodiment, in order to precisely control the water level, the elastic buffer 300 may further include a register (not shown) for setting the reference value. Specifically, the reference value may be determined according to the duration of idle data units (including SYN, DIR, LIDL, and DIDL) and/or the clock source difference between the first clock domain and the second clock domain. The reference value may range from 16 to 256.
图4是示出根据本发明的实施例的用于高速串行总线的弹性缓冲的方法的流程图。FIG. 4 is a flowchart illustrating a method for elastic buffering of a high-speed serial bus according to an embodiment of the present invention.
参照图4,在步骤S401,接收来自第一时钟域的数据。Referring to FIG. 4, in step S401, data from a first clock domain is received.
在步骤S402,对接收数据中的空闲数据单元进行识别,并对识别到的空闲数据单元的重复次数进行计数。对于UHS-II总线,所述空闲数据单元可以包括以下LSS中的至少一种或全部:SYN、LIDL、DIDL、和DIR。In step S402, identify idle data units in the received data, and count the number of repetitions of the identified idle data units. For the UHS-II bus, the idle data unit may include at least one or all of the following LSSs: SYN, LIDL, DIDL, and DIR.
在步骤S403,如果重复次数达到参考值,则在步骤S404从接收数据中丢弃至少一个重复的空闲数据单元,否则,可以回到步骤S402继续计数。In step S403, if the number of repetitions reaches the reference value, discard at least one repeated idle data unit from the received data in step S404, otherwise, go back to step S402 to continue counting.
在步骤S405,存储经过处理的接收数据。In step S405, the processed received data is stored.
在步骤S406,向第二时钟域输出已存储的经过处理的接收数据。In step S406, output the stored and processed received data to the second clock domain.
根据实施例,可以根据空闲数据单元的持续时间和/或第一时钟域与第二时钟域的时钟源差异来确定所述参考值。所述参考值可以为16至256。According to an embodiment, the reference value may be determined according to the duration of the idle data unit and/or the clock source difference between the first clock domain and the second clock domain. The reference value may range from 16 to 256.
如上所述,已经在上面具体地描述了本发明的各个实施例,但是本发明不限于此。本领域的技术人员应该理解,可以根据设计要求或其它因素进行各种修改、组合、子组合或者替换,而它们在所附权利要求书及其等效物的范围内。As described above, the various embodiments of the present invention have been specifically described above, but the present invention is not limited thereto. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations or substitutions may be made depending on design requirements or other factors, and they are within the scope of the appended claims and the equivalents thereof.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510885448.0A CN105335324B (en) | 2015-12-04 | 2015-12-04 | The method of receiver and reception data for high-speed serial bus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510885448.0A CN105335324B (en) | 2015-12-04 | 2015-12-04 | The method of receiver and reception data for high-speed serial bus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335324A CN105335324A (en) | 2016-02-17 |
CN105335324B true CN105335324B (en) | 2018-09-14 |
Family
ID=55285870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510885448.0A Active CN105335324B (en) | 2015-12-04 | 2015-12-04 | The method of receiver and reception data for high-speed serial bus |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335324B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561619A (en) * | 2001-09-28 | 2005-01-05 | 皇家飞利浦电子股份有限公司 | Parallel data communication having skew intolerant data groups and data validity indicator |
CN1776656A (en) * | 2005-12-13 | 2006-05-24 | 北京中星微电子有限公司 | Data transmission method between host and USB device and corres ponding USB device |
CN102737699A (en) * | 2011-03-31 | 2012-10-17 | 海力士半导体有限公司 | Data output circuit of semiconductor apparatus |
CN103577373A (en) * | 2012-08-03 | 2014-02-12 | 阿尔特拉公司 | Techniques for aligning and reducing skew in serial data signals |
-
2015
- 2015-12-04 CN CN201510885448.0A patent/CN105335324B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561619A (en) * | 2001-09-28 | 2005-01-05 | 皇家飞利浦电子股份有限公司 | Parallel data communication having skew intolerant data groups and data validity indicator |
CN1776656A (en) * | 2005-12-13 | 2006-05-24 | 北京中星微电子有限公司 | Data transmission method between host and USB device and corres ponding USB device |
CN102737699A (en) * | 2011-03-31 | 2012-10-17 | 海力士半导体有限公司 | Data output circuit of semiconductor apparatus |
CN103577373A (en) * | 2012-08-03 | 2014-02-12 | 阿尔特拉公司 | Techniques for aligning and reducing skew in serial data signals |
Also Published As
Publication number | Publication date |
---|---|
CN105335324A (en) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11296722B2 (en) | Integrated physical coding sublayer and forward error correction in networking applications | |
US8913705B2 (en) | Dynamic skew correction in a multi-lane communication link | |
US10103830B2 (en) | Latency-optimized physical coding sublayer | |
US6757348B1 (en) | High-speed coordinated multi-channel elastic buffer | |
US8155136B2 (en) | Single network interface circuit with multiple-ports and method thereof | |
US20140101356A1 (en) | Transmission device, transmission system, and control method for transmission device | |
US11424905B1 (en) | Retimer with mesochronous intra-lane path controllers | |
US20020184552A1 (en) | Parallel data communication having skew intolerant data groups | |
US9444758B2 (en) | Selective underflow protection in a network switch | |
KR101229840B1 (en) | Receiving circuit, information processing apparatus and buffer control method | |
US20120030438A1 (en) | Method and Apparatus for Performing Skew Removal in the Receiver of a Multi-Lane Communication Link | |
CN105718413B (en) | A kind of channel alignment schemes, apparatus and system | |
CN106453158A (en) | Asynchronous first-in first-out buffer device and related network equipment | |
US9880949B1 (en) | Cross clock compensation between layers in peripheral component interconnect express | |
US7366803B1 (en) | Integrated circuit for buffering data by removing idle blocks to create a modified data stream when memory device is not near empty | |
US20120317380A1 (en) | Device and method for a half-rate clock elasticity fifo | |
US12143288B1 (en) | Low-latency signaling-link retimer | |
US8675798B1 (en) | Systems, circuits, and methods for phase inversion | |
CN105335324B (en) | The method of receiver and reception data for high-speed serial bus | |
CN105528310B (en) | The method of elastic buffer and elastic buffer for high-speed serial bus | |
US20130329558A1 (en) | Physical layer burst absorption | |
CN107678488B (en) | Cross-clock domain event transmission circuit | |
US9048889B1 (en) | High-speed data communications architecture | |
US20150193288A1 (en) | Precursor Adaptation Algorithm for Asynchronously Clocked SERDES | |
TW202347136A (en) | Circuit for synchronization for an interconnection protocol, controller and storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |