CN117278469A - 用于互连协议的同步电路、控制器以及存储设备 - Google Patents

用于互连协议的同步电路、控制器以及存储设备 Download PDF

Info

Publication number
CN117278469A
CN117278469A CN202210660023.XA CN202210660023A CN117278469A CN 117278469 A CN117278469 A CN 117278469A CN 202210660023 A CN202210660023 A CN 202210660023A CN 117278469 A CN117278469 A CN 117278469A
Authority
CN
China
Prior art keywords
clock domain
control information
link layer
data link
synchronization circuit
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.)
Pending
Application number
CN202210660023.XA
Other languages
English (en)
Inventor
林富雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Priority to CN202210660023.XA priority Critical patent/CN117278469A/zh
Publication of CN117278469A publication Critical patent/CN117278469A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0079Receiver details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0091Transmitter details

Landscapes

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

Abstract

用于互连协议的同步电路、控制器及存储设备。所述同步电路包括第一同步电路模块以及第二同步电路模块。第一同步电路模块用以数据链路层接收器输出的第一时钟域的第一控制信息转换并输出为第二时钟域的第二控制信息。第二同步电路模块联接所述第一同步电路模块,用以将第一同步电路模块所输出的第二时钟域的第二控制信息转换为第三时钟域的第三控制信息以输出至所述第一设备的数据链路层发送器。第一时钟域、第二时钟域、第三时钟域的两两之间是非同步的。

Description

用于互连协议的同步电路、控制器以及存储设备
技术领域
本发明是涉及一种电子设备,尤其是涉及用于互连协议的同步电路、控制器以及存储设备。
背景技术
现今移动设备(如智能电话、平板计算机、多媒体设备、穿戴式设备之类的运算设备)中生成和处理的数据量不断增加,移动设备内部的芯片对芯片的或受移动设备影响的互连接口技术需要进一步的演进,从而达至能够满足更高的传输速度、低功耗运作、具可扩展性、支援多工处理、易于采用等目标。
为此,移动产业处理器接口(Mobile Industry Processor Interface,MIPI)联盟开发出能够符合上述目标的互连接口技术,例如涉及物理层的MIPI M-PHY规范以及涉及统一协议(Unified Protocol,UniPro)的MIPI UniPro规范。另一方面,联合电子设备工程委员会(Joint Electron Device Engineering Council,JEDEC)利用MIPI M-PHY规范及通用传输协议MIPI UniPro规范推出下一代高性能非易失性存储器标准,称为通用闪存存储(Universal Flash Storage,UFS),其可实现每秒十亿位等级的高速传输及低功耗运作,并具有高阶移动系统所需的功能和可扩展性,从而有助于为业界高速的采用。
技术人员在依据这些互连接口技术来开发的产品为相关芯片、电子模块或电子设备时,要确保产品的功能及运作能够符合规范。举例而言,依据UFS标准而实现的系统如包含了运算设备及非易失性存储器的存储设备,运算设备及存储设备分别担任本地的(local)主机与遥距的(remote)设备的角色。主机与设备建立起双向的链路,且主机与设备之间的链路可以在任一传输方向上配置为多个(最多4个)通道(lane)。相对应地,主机与设备各自地配置依据UniPro规范的互连协议的处理电路需要具备处理多个通道的功能。
依据UniPro规范需要在数据链路层(data link layer)实现链路级流量控制(link-level flow control)。数据链路层流量控制确保在链路的发送端的数据链路层的发送器知道在链路的接收端的数据链路层有多少可用的缓冲区空间,以防止数据链路层缓冲器溢出,并从而避免数据遗失。借由使用基于信用的流量控制机制,在接收端的数据链路层的接收器通过所述机制发送信用信息以更新在发送端的数据链路层的发送器所维护的信用信息。接收端的数据链路层要如何实现以将控制信息正确且有效率地在所述数据链路层的接收器与发送器之间传输从而有效地实现所述基于信用的流量控制机制,是在数据链路层的实现上亟需关注的技术课题。
发明内容
具体实施方式提供了一种用于互连协议的同步电路的技术,适用于能够依据所述互连协议链接第二设备的第一设备中。所述技术在所述第一设备对所述第二设备通过互连协议进行通信过程中,能够在互连协议下正确且有效率地将控制信息在所述第一设备的数据链路层的接收器与发送器之间同步传输,从而促进有效地实现所述互连协议下基于信用的流量控制机制。
以下依据所述技术提出各种具体实施方式,如用于互连协议的的同步电路、控制器以及存储设备。
具体实施方式提供一种用于互连协议的同步电路,适用于能够依据所述互连协议链接第二设备的第一设备中。所述同步电路包括第一同步电路模块以及第二同步电路模块。所述第一同步电路模块用以将所述第一设备的数据链路层接收器输出的第一时钟域的第一控制信息转换并输出为第二时钟域的第二控制信息。所述第二同步电路模块,联接所述第一同步电路模块,用以将所述第一同步电路模块所输出的所述第二时钟域的所述第二控制信息转换为第三时钟域的第三控制信息以输出至所述第一设备的数据链路层发送器。其中所述数据链路层接收器输出的所述第一控制信息是所述第一时钟域的至少一个信号,所述第二同步电路模块输出的所述第三控制信息是所述第三时钟域的至少一个信号,所述第一时钟域、所述第二时钟域、所述第三时钟域的两两之间是非同步的。
具体实施方式提供了一种控制器,适用于能够依据互连协议链接第二设备的第一设备中,所述控制器包括控制器模块。所述控制器模块用于联接到接口电路,且用于实现所述互连协议的链接层。所述控制器模块包括:数据链路层接收器;数据链路层发送器;以及同步电路。所述同步电路联接于所述数据链路层接收器及所述数据链路层发送器之间。所述同步电路包括第一同步电路模块以及第二同步电路模块。所述第一同步电路模块用以将所述数据链路层接收器输出的第一时钟域的第一控制信息转换并输出为第二时钟域的第二控制信息。所述第二同步电路模块,联接所述第一同步电路模块,用以将所述第一同步电路模块所输出的所述第二时钟域的所述第二控制信息转换为第三时钟域的第三控制信息以输出至所述数据链路层发送器。其中所述数据链路层接收器输出的所述第一控制信息是所述第一时钟域的至少一个信号,所述第二同步电路模块输出的所述第三控制信息是所述第三时钟域的至少一个信号,所述第一时钟域、所述第二时钟域、所述第三时钟域的两两之间是非同步的。
具体实施方式提供了一种存储设备,能够依据互连协议链接主机,所述存储设备包括:存储模块、接口电路及设备控制器。所述接口电路用于实现所述互连协议的物理层以链接所述主机。所述控制器模块用于联接到所述接口电路和所述存储模块,且用于实现所述互连协议的链接层。所述控制器模块包括:数据链路层接收器;数据链路层发送器;以及同步电路。所述同步电路联接于所述数据链路层接收器及所述数据链路层发送器之间。所述同步电路包括第一同步电路模块以及第二同步电路模块。所述第一同步电路模块用以将所述数据链路层接收器输出的第一时钟域的第一控制信息转换并输出为第二时钟域的第二控制信息。所述第二同步电路模块,联接所述第一同步电路模块,用以将所述第一同步电路模块所输出的所述第二时钟域的所述第二控制信息转换为第三时钟域的第三控制信息以输出至所述数据链路层发送器。其中所述数据链路层接收器输出的所述第一控制信息是所述第一时钟域的至少一个信号,所述第二同步电路模块输出的所述第三控制信息是所述第三时钟域的至少一个信号,所述第一时钟域、所述第二时钟域、所述第三时钟域的两两之间是非同步的。
在上述同步电路、控制器或存储设备的一些实施例中,当所述数据链路层接收器的帧接收处理单元完成数据帧的处理并成功传送至上层时,所述帧接收处理单元所输出的所述第一时钟域的所述第一控制信息通过所述同步电路的所述第一同步电路模块及所述第二同步电路模块被转换为所述第三时钟域的所述第三控制信息以输出至所述数据链路层发送器。
在上述同步电路、控制器或存储设备的一些实施例中,当所述数据链路层接收器的帧接收处理单元正确地接收到控制帧后,所述数据链路层接收器所输出的所述第一时钟域的所述第一控制信息通过所述同步电路的所述第一同步电路模块及所述第二同步电路模块被转换为所述第三时钟域的所述第三控制信息以输出至所述数据链路层发送器。
在上述同步电路、控制器或存储设备的一些实施例中,所述同步电路进一步包括:第三同步电路模块以及第四同步电路模块。所述第三同步电路模块用以将所述数据链路层发送器输出的所述第三时钟域的第四控制信息转换并输出为所述第二时钟域的第五控制信息。所述第四同步电路模块,联接所述第三同步电路模块,用以将所述第三同步电路模块所输出的所述第二时钟域的所述第五控制信息转换为所述第一时钟域的第六控制信息以输出至所述数据链路层接收器。其中所述数据链路层发送器输出的所述第四控制信息是所述第三时钟域的至少另一个信号,所述第四同步电路模块输出的所述第六控制信息是所述第一时钟域的至少另一个信号。
在上述同步电路、控制器或存储设备的一些实施例中,当所述数据链路层发送器完成发送数据帧后,所述数据链路层发送器所输出的所述第三时钟域的所述第四控制信息通过所述同步电路的所述第三同步电路模块及所述第四同步电路模块被转换为所述第一时钟域的所述第六控制信息以输出至所述数据链路层接收器。
在一些实施例中,同步电路模块可实现为有差异触发(difference trigger)及多相位锁存(multi-phase latch)的条件下进行控制信息的同步。
在上述同步电路、控制器或存储设备的一些实施例中,所述第一同步电路模块被配置为于所述数据链路层接收器所输出的所述第一控制信息与先前控制信息有差异时才进行交换信息。
在上述同步电路、控制器或存储设备的一些实施例中,所述第一同步电路模块被配置为于进行所述交换信息时,于所述第一时钟域中锁存所述第一控制信息,且经过所述第一时钟域的第一数目的周期及经过所述第二时钟域的第二数目的周期后于所述第二时钟域中锁存所述第一控制信息,并将于所述第二时钟域中锁存的所述第一控制信息输出为所述第二控制信息。
在上述同步电路、控制器或存储设备的一些实施例中,所述第一同步电路模块被配置为于进行所述交换信息时,所述第一数目等于或大于所述第二数目。
在上述同步电路、控制器或存储设备的一些实施例中,所述第二同步电路模块、所述第三同步电路模块或所述第四同步电路模块中的至少一者或全部,亦可利用与所述第一同步电路模块相似的方式而被配置。
在上述同步电路、控制器或存储设备的一些实施例中,所述互连协议是通用闪存存储(Universal Flash Storage,UFS)标准。
附图说明
图1为存储系统的一种具体实施方式的示意框图。
图2为图1的存储系统依据UFS标准的分层架构的一种示意图。
图3为一种依据UniPro规范的数据链路层的服务访问点模型的示意图。
图4A为一种依据UniPro规范的数据链路层的数据帧的格式的示意图。
图4B为一种依据UniPro规范的数据链路层的数据帧的格式的示意图。
图4C为一种依据UniPro规范的数据链路层的控制帧的格式的示意图。
图5为数据链路层同步电路的多种实施例的示意电路架构图。
图6为图5中的同步电路模块的一种实施例的示意图。
图7为图6的同步电路模块的一种实施例的示意时序图。
图8为图6的同步电路模块的另一种实施例的示意时序图。
图9为图6的同步电路模块的又一种实施例的示意时序图。
具体实施方式
为充分了解本发明的目的、特征及功效,兹借由下述具体的实施例,并配合所附的图式,对本发明做详细说明,说明如后。
以下具体实施方式提供了一种用于互连协议的同步电路模块的技术,适用于能够依据所述互连协议链接第二设备的第一设备中。所述技术在数据链路层的接收器与发送器之间实现了基于同步电路模块的数据链路层同步电路,数据链路层同步电路利用同步电路模块将接收器输出的控制信息从第一时钟域转换至第二时钟域,并接着利用另一个同步电路模块从第二时钟域转换至第三时钟域,从而将控制信息发送至发送器。借此技术,控制信息得以在所述数据链路层的接收器与发送器之间正确且有效率地传输,从而促进有效地实现数据链路层的基于信用的流量控制机制。以下举例以说明依据所述技术的各种实现方式。
为便于理解及说明依据所述技术的各种实现方式,以下首先提供基于一种互连协议的通信系统的电路架构,这种电路架构具备足够弹性及能够有效率地被配置来满足不同产品的需求,以适应各种厂商的设计而有助于产品开发。所述技术可应用于能够依据互连协议链接第二设备(如图1的主机10)的第一设备(如图1的存储设备20)中;亦适用于第一设备为主机10,第二设备为存储设备20的情况下。如图1所示,这种电路架构应用于存储系统1时,存储系统1的主机10的控制器模块(如主机控制器12)或存储系统1的存储设备20的控制器模块(如设备控制器22)可分别实现为包括硬件协议引擎及处理单元的电路架构,其中所述控制器的处理单元为可选的。又例如,可依据主机接口11及主机控制器12的结合而用作控制器,如单芯片,用于主机10;另外,可依据设备接口21及设备控制器22的结合而用作控制器,如单芯片,用于存储设备20。
请参考图1,其为依据本发明的一种具体实施方式的存储系统的示意框图。如图1所示,存储系统1包括主机10及存储设备20。主机10及存储设备20之间通过一种互连协议来通信,从而让主机10对存储设备20进行数据的访问。所述互连协议例如是通用闪存存储(Universal Flash Storage,UFS)标准。主机10例如是智能电话、平板计算机、多媒体设备之类的运算设备。存储设备20例如是所述运算设备内部或外部的存储设备,例如是基于非易失性存储器的存储设备。存储设备20可以在主机10的控制下写入数据或向主机10提供被写入数据。存储设备20可以被实现为固态存储设备(SSD),多媒体卡(MMC),嵌入式MMC(eMMC)、安全数字(SD)卡或通用闪存存储(UFS)设备,然而本揭露内容的实现并不受限于上述示例。
主机10包括主机接口11、主机控制器12及应用处理器16。
主机接口11用于实现所述互连协议的物理层以链接所述存储设备20。例如,主机接口11用以实现UFS标准的物理(M-PHY)层。
主机控制器12联接于主机接口11与应用处理器16之间。当应用处理器16需要对存储设备20进行数据的访问时,发出代表对应的访问动作指令至主机控制器12,通过所述互连协议与存储设备20沟通,从而达成对存储设备20进行数据的访问。
主机控制器12例如包括硬件协议引擎13及处理单元14,其中处理单元14为可选的。
硬件协议引擎13用于实现所述互连协议的链接层(Link layer)。就以所述互连协议为UFS标准为例,所述链接层为统一协议(Unified Protocol,UniPro)层。硬件协议引擎13依据所述链接层的规范来与主机接口11及处理单元14进行沟通及信息的转换。
处理单元14,其与所述硬件协议引擎13联接,用以与应用处理器16进行通信。处理单元14可执行一个或多个固件。例如应用处理器16所执行的操作系统、驱动程序或应用程序所发出的访问动作指令通过处理单元14所执行的固件转换为符合所述互连协议的链接层的指令格式,并继而发送至硬件协议引擎13以依据所述链接层的规范来进行处理。固件例如可存储于处理单元14的内部存储器,或存储于主机控制器12的内部存储器,其中内部存储器可包括易失性存储器及非易失性存储器。
存储设备20包括设备接口21、设备控制器22及存储模块26。
设备接口21用于实现所述互连协议的物理层以链接所述主机10。例如,主机接口21用以实现UFS标准的物理(M-PHY)层。
设备控制器22联接于设备接口21与存储模块26之间。设备控制器22可以控制存储模块26的写入运作、读取运作或擦除运作。设备控制器22可以通过地址总线或数据总线与存储模块26交换数据。存储模块26例如包含一个或多个非易失性存储器的存储器芯片。
设备控制器22包括硬件协议引擎23及处理单元24,其中处理单元24为可选的。
硬件协议引擎23用于实现所述互连协议的链接层。就以所述互连协议为UFS标准为例,所述链接层为UniPro层。硬件协议引擎13依据所述链接层的规范来与设备接口21及处理单元24进行沟通及信息的转换。
处理单元24,其与所述硬件协议引擎23联接,用以通过设备接口21而与主机10进行通信。处理单元24可执行一个或多个固件。例如处理单元24执行一个或多个固件来控制或指示存储模块26的写入运作、读取运作或擦除运作,对来自硬件协议引擎23的消息作处理或将消息发送至硬件协议引擎23。固件例如可存储于处理单元24的内部存储器、设备控制器22的内部存储器,或存储模块26的特定存储区域,其中内部存储器可包括易失性存储器及非易失性存储器。
如图1所示,主机接口11能够通过用于发送/接收数据的数据线Din和Dout、用于发送硬件复位信号的复位线RST、用于发送数据的时钟线CLK而与设备接口21联接。数据线Din和Dout可以被实现为多对,其中一对的数据线Din或一对的数据线Dout可称为一个通道(lane)。主机接口11可以使用至少一种接口协议与设备接口21行通信,接口协议诸如移动工业处理器接口(MIPI)、通用闪存存储(UFS)、小型计算机系统接口(SCSI)或串行连接的SCSI(SAS),然而本揭露内容的实现并不受限于上述示例。在UFS标准之下,主机10及存储设备20之间可以配置为支持多个通道,以增进传输的效率,其中在主机10至存储设备20之间或存储设备20至主机10之间的任一方向上目前最多能支持2个通道,多个通道可以选择设定为激活或不激活。
以下借由所述互连协议为通用闪存存储(UFS)标准为例作详细说明。UFS标准中包含UFS指令集层(UFS Command Set Layer,USC)、UFS传输协议层(UFS Transport Layer,UTP)及UFS互连层(UFS Interconnect Layer,UIC)。UIC又包含链接层及物理层,UIC的链接层依据UniPro规范而定义,UIC的物理层依据M-PHY规范而定义。
请参考图2,其为图1的存储系统依据UFS标准的分层架构的示意图。由于UFS标准基于MIPI统一协议(UniPro)层以及MIPI物理(M-PHY)层,图1所示的主机10的主机接口11及硬件协议引擎13分别用以实现图2中的物理层110及UniPro层130;图1所示的存储设备20的设备接口21及硬件协议引擎23分别用以实现图2中的物理层210及UniPro层230。
如图2所示,UniPro层130(或230)可以包括物理配接器层(PHY adapter layer,PA)131(或231)、数据链路层(data link layer,DL)132(或232)、网络层(network layer)133(或233)和传输层(transport layer)134(或234)。存储设备20的UniPro层230中的各个层也可以相似地运作及实现。
物理配接器层(131或231)用以将物理层(110或210)联接到数据链路层(132或232)。物理配接器层(131或231)可以在物理层(110或210)和数据链路层(132或232)之间执行带宽控制、功率管理等。在实现时,主机10的物理层110包含发送器111及接收器112,又存储设备20的物理层210包含发送器211及接收器212,借此能够建立数据通道SL1及SL2以进行全双功通信。UniPro规范支援在每一个传输方向上(如前相或反相)的链路有多个数据通道。
数据链路层(132或232)可以执行用于主机10和存储设备20之间的数据传输的流量控制(flow control)。即,数据链路层(132或232)可以监视数据传输或控制数据传输速率。此外,数据链路层(132或232)可以执行基于循环冗余校验(cyclic redundancy check,CRC)的错误控制。数据链路层(132或232)可以使用从网络层(133或233)接收到的封包来生成帧(frame),或者可以使用从物理配接器层(131或231)接收到的帧来生成封包。
网络层(133或233)用于对于从传输层(134或234)接收的封包选择传输路径的路由功能。
传输层(134或234)可以使用从UFS应用层接收的命令来配置适合于协议的数据段(segment),并且将所述数据段发送到网络层(133或233),或者可以从网络层(133或233)接收的封包中提取命令并且发送所述命令至UFS应用层。传输层(134或234)可以使用基于串行的错误控制方案,以保证数据传输的有效性。
再者,UniPro层(130或230)中还定义了设备管理实体(device managemententity,DME)(135或235),其能够与物理层(110或210)及UniPro层(130或230)中的各层互通,如物理配接器层(131或231)、数据链路层(132或232)、网络层(133或231)和传输层(134或234)以至UFS应用层互通,从而实现及统一协议(UniPro)总体性的功能如开机、关机、复位、功耗模式改变等控制或组态的功能。
如上所述,UFS标准利用UniPro规范来定义链接层中多个协议层。UniPro规范除了定义各协议层的功能,并且定义各协议层之间通过称为服务访问点(service accesspoint,SAP)的概念性接口来通信,各协议层具有多个对应的服务访问点(SAP)来让上层或下层来使用所述协议层提供的服务。在符合UniPro规范的要求下,研发单位或厂商可以利用各自的技术方案,以硬件、韧体或软件方式或上述方式的各种组合来具体实现各协议层及服务访问点(SAP)。
请参考图3,其为依据UniPro规范的数据链路层的服务访问点(SAP)模型的示意图。如图3所示,数据链路层320(其代表图2中132或232)具有两个特定于流量类别(trafficclass)的服务访问点321、322。服务访问点321、322例如是在UniPro规范中定义的服务访问点DL_TC0_SAP及DL_TC1_SAP,且分别为网络层330(其代表图2中133或233)提供流量类别0及流量类别1的数据链路层服务。此外,数据链路层320具有服务访问点323,例如是UniPro规范中定义的服务访问点DL_LM_SAP,其提供给设备管理实体350(如图2中135或235)用于配置和控制目的。数据链路层320又依赖物理配接器层310(如图2中131或231)的服务访问点311(在UniPro规范中记作PA_SAP)所提供给数据链路层320的服务。如图3所示,数据链路层320的TC0实体325、TC1实体326、DL_LM实体327分别代表用作服务访问点321、322、323代表提供服务的各个实体,各实体可以依据UniPro规范并利用硬件或软件方式,或硬件及软件结合方式来实现。
UFS系统支持于数据链路层中的两种流量类别(traffic class),其分别称为流量类别0(记作TC0)及流量类别1(记作TC1),流量类别1的数据帧比以流量类别TC0的数据帧在传送上有较高的优先权。依据UniPro规范,数据链路层提供多种服务以确保通过服务访问点DL_TC0_SAP或DL_TC1_SAP而透通(transparent)和可靠地传输服务使用者(即使用所述服务的层)的数据。如图3所示,服务访问点321、322分别适用于流量类别0(TC0)或流量类别1(TC1),以在数据链路层320和网络层330之间的接收方向(DL RX)上传输服务使用者的数据。
依据UniPro规范,数据链路层将多个17位的PA层协议数据单元(protocol dataunit,PDU)符号转换为DL层协议数据单元(即帧)。例如,每一个数据帧(data frame)包含被编码为数据符号或控制符号的一系列17位符号。请参考图4A至图4B,其为依据UniPro规范的数据链路层的数据帧的格式的示意图。对一个17位符号而言,最高有效位为0表示所述符号为数据符号,最高有效位为1表示所述符号为数据控制符号。只有16位符号通过链路来传递,不包括最高有效位。简而言之,每个有效符号是16位的服务使用者数据,它传递到上层(就接收方向而言)或下层(就发送方向而言)。
在数据链路层中,所有流量类别都使用相同格式的数据帧。如图4A和图4B所示,每个数据帧包含一个符号的标头(header)、至少一个符号的有效载荷(payload)以及两个符号的标尾(trailer),其中标尾包含核对和(checksum)(如16位CRC码(CRC-16))。此外,每个数据帧始终以帧启始标记(start of frame,SOF)符号开始,并以帧结束标记(end offrame,EOF)符号即EOF_EVEN符号或EOF_ODD符号来结束。EOF_EVEN符号和EOF_ODD符号后接一个CRC符号。此外,标头除了含有帧启始标记(SOF)还含有流量类别(traffic class,TC)标记,例如是TC0、TC1以表现优先权等级。此外,标尾除了含有帧结束标记(EOF)还含有帧序号(frame sequence number)。其中ESC_DL标记代表此帧为数据链路层的帧。
此外,请参考图4C,其为依据UniPro规范的数据链路层的控制帧的格式的示意图。图4C所示的控制帧为数据链路层确认和流量控制(Acknowledgment and Flow Control,AFC)帧,其用于确认正确接收的数据帧并用于交换相应流量类别的流量控制信息。AFC帧以AFC控制符号开始,后接跟两个数据符号。AFC帧包括流量类别(TC)识别码、信用传输请求(CReq)位、帧序号和流量控制信用值。确认(帧序号)和流量控制(信用值)信息被赋予由TC栏位所识别的流量类别。
UniPro规范已规定了数据链路层接收器(或简称DL RX)的TC0或TC1的服务访问点模型的运作。一般来说,数据传输到数据链路层的每个过程都是以帧为基础的,若是记号来表示,例如帧可表示为:“SOF+TC0 Data#0+EOF+CRC”、“SOF+TC0 Data#1+EOF+CRC”等等。数据链路层接收器将去除帧的标头(SOF符号)和标尾(如EOF_EVEN或EOF_ODD符号及CRC符号),并在CRC校验正确后将用户数据传递给上层。
依据UniPro规范的数据链路层流量控制,就本地端接收TC0数据帧的情景而言,在本地端,当上层正确地接收到每个TC0数据帧时,在DL RX中需要更新UniPro规范中所定义的序号和信用值“A”。具有确认的序号和信用值“A”的控制信息将提供给数据链路层发送器(或简称DL TX)以将AFC0控制帧发送到对等端(peer side)(在此亦可称为遥距端(remoteend))。然后于对等端将信用值“S”替换为“A”。
依据UniPro规范的数据链路层流量控制,就本地端接收AFC0控制帧的情景而言,在本地端,当DL RX正确地接收到每个AFC0控制帧后,接收到的序号和AFC0控制帧中的信用值“R”需要在DL RX中更新。将提供此控制信息以让DL TX释放已确认的TC0发送器(TX)缓冲区,并且DL TX可以开始将具有新序号的下一个数据帧发送到对等端(或称为遥距端)。然后,在DL TX将数据帧发送到物理配接器层(PA)层后,DL TX更新UniPro规范定义的信用值“U”。
此外,依据UniPro规范,就本地端接收AFC0控制帧的情景而言,在本地端,当通过来自接收到的AFC0控制帧的控制信息中的信用值而得知对等端(或称遥距端)的接收器(RX)缓冲区可用时,DL TX将数据帧发送到PA层。DL TX完成发送TC0数据帧后,将更新序号以通知DL RX下一个预期接收到的AFC0控制帧是什么序号。
从上面UniPro规范所规定的数据链路层流量控制的操作来看,本案发明人观察到有以下技术议题生成。
(1)DL TX和DL RX之间需要交换信息,如确认(帧序号)和流量控制(信用值)信息,它是多位总线(multi-bit bus)信息。此外,多位总线信息中的信用值并非单纯以增量为1的方式来变化。
(2)从图3的示意图可见,在以硬件实现数据链路层320时,在数据链路层320与上层邻近或相关的数据链路层电路操作于上层的时钟域,如CPort时钟域,在数据链路层320与下层邻近或相关的数据链路层电路操作于下层的时钟域,如TX符号时钟域和RX符号时钟域。此外,数据链路层320的DL TX和DL RX所操作的时钟域是非同步的。故在数据链路层320中,CPort、DL TX和DL RX的两两之间的时钟域是非同步的。
(3)在UniPro规范中,在预定数目的RX尾随(trailing)时钟周期后,可以将RX符号时钟关闭,例如通过UniPro规范中定义的PA层最少RX尾随(trailing)时钟周期属性(PA_MinRxTrailingClocks)来加以设定。这是UniPro的数据链路层电路操作的一种特殊情况。
针对上述技术议题,虽然可以利用一些现有同步器方案来进行多位同步,但仍有问题生成。如基于先进先出(FIFO)的同步器方案可能是可靠的,但需要较多数量的逻辑栅且生成不少的功耗。另外,双向交握同步器的方案会造成较长的延迟,且当来源时钟关闭时会出现问题(如上面的RX符号时钟关闭的情况)。
由此,发明人针对上述技术议题提出以下的数据链路层同步电路实现方式,从而在没有元问题(meta problem)的情况下正确地交换「控制信息」,且能减少耗电。数据链路层同步电路可进一步被配置,以因应在来源时钟(如RX符号时钟)关闭之前高速交换控制信息。其中「控制信息」可以包含确认信息(如帧序号)或流量控制信息(如信用值)或上述两种信息。
请参考图5,其为数据链路层同步电路的多种实施例的示意电路架构图,其可代表基于图5的多种实施例。图5所示的电路架构可应用于实现在主机的主机控制器(12)或存储设备的设备控制器(22),例如用于实现主机及存储设备的硬件协议引擎中的数据链路层(132或232;或320)。
在UniPro规范下,可进一步依据图5的电路架构来实现数据链路层(132或232;或320)中的数据链路层接收器(DL RX)及数据链路层发送器(DL TX)。如图5所示,数据链路层电路500包括数据链路层接收器(DL RX)电路510、数据链路层发送器(DL TX)电路520以及数据链路层同步电路530。数据链路层接收器(DL RX)电路510及数据链路层发送器(DL TX)电路520可以分别实现为运作于两个时钟域,如记作TD_RX、TD_TX,此两时钟域可能为不同频率的时钟域或非同步的时钟域,如分别代表前述RX和TX符号时钟域。
数据链路层同步电路530用于在数据链路层接收器(DL RX)电路510与数据链路层发送器(DL TX)电路520之间控制信息同步传输。数据链路层同步电路530可包括多个同步电路模块,所述多个同步电路模块可以作个别的配置以符合在UniPro规范下控制信息同步传输的目的。
在基于图5的一种实施例中,数据链路层同步电路530可配置为将数据链路层接收器(DL RX)电路510输出的控制信息同步传输至数据链路层发送器(DL TX)电路520。在所述实施例中,数据链路层同步电路530包括同步电路模块531及533。同步电路模块531将数据链路层接收器(DL RX)电路510所输出的第一时钟域(如TD-RX)的第一控制信息(如序号及信用值)转换及输出为第二时钟域(如CPort时钟域,记作TD_CP)的第二控制信息。同步电路模块533将同步电路模块531所输出的第二时钟域(如TD_CP)的第二控制信息转换为第三时钟域(如TD_TX)的第三控制信息,并将第三时钟域(如TD_TX)的第三控制信息输出至数据链路层发送器(DL TX)电路520。借此,数据链路层同步电路530能够用于接收器至发送器的控制信息同步传输。在上述说明中,为了区别在不同时钟域中的控制信息,故分别命名为第一控制信息、第二控制信息、第三控制信息。
上述数据链路层同步电路530的实施例用于接收器至发送器的控制信息同步传输,能够用于实现前述UniPro规范中的数据链路层流量控制。为此,在依据UniPro规范来实现数据链路层接收器(DL RX)及数据链路层发送器(DL TX)时,可以同时依据图5的电路架构,在数据链路层接收器(DL RX)电路510中实现帧接收处理单元511以输出控制信息或接收控制信息,以及在数据链路层发送器(DL TX)电路520中实现帧发送处理单元521以接收对应的控制信息或输出对应的控制信息。
在一种示例中,帧接收处理单元511包括数据帧解码电路512,数据帧解码电路512用以对来自PA层的符号数据中属于TC0数据帧的符号进行解码处理。为了实现前述UniPro规范的数据链路层流量控制中就本地端接收TC0数据帧的情景,数据链路层接收器(DL RX)电路510、数据链路层发送器(DL TX)电路520以及数据链路层同步电路530可进一步作以下的配置。例如,当数据链路层接收器(DL RX)电路510完成一个TC0数据帧的处理如通过帧接收处理单元511或数据帧解码电路512处理,并成功传送至上层(如网络层)即上层正确地接收到所述TC0数据帧时,数据链路层接收器(DL RX)电路510更新UniPro规范中所定义的序号和信用值“A”,将具有确认的序号和信用值“A”的控制信息通过上述数据链路层同步电路530的接收器至发送器的控制信息同步传输提供给数据链路层发送器(DL TX)电路520的帧发送处理单元521。帧发送处理单元521的控制帧发送电路524依据通过上述控制信息同步传输提供的控制信息而生成AFC0控制帧以发送到对等端。
在另一种示例中,帧接收处理单元511还可包括控制帧解码电路514,控制帧解码电路514用以对来自PA层的符号数据中属于AFC0控制帧的符号进行解码处理。为了实现前述UniPro规范的数据链路层流量控制中就本地端接收AFC0控制帧的情景,数据链路层接收器(DL RX)电路510、数据链路层发送器(DL TX)电路520以及数据链路层同步电路530可进一步作以下的配置。例如,当数据链路层接收器(DL RX)电路510的帧接收处理单元511或控制帧解码电路514正确地接收到一个AFC0控制帧后,数据链路层接收器(DL RX)电路510需要更新接收到的序号和AFC0控制帧中的信用值“R”。数据链路层接收器(DL RX)电路510将此控制信息通过上述数据链路层同步电路530的接收器至发送器的控制信息同步传输提供给数据链路层发送器(DL TX)电路520的帧发送处理单元521,以让数据链路层发送器(DLTX)电路520释放已确认的TC0发送器(TX)缓冲区,并且数据链路层发送器(DL TX)电路520可以开始将具有新序号的下一个数据帧发送到对等端(或称为遥距端)。然后,在数据链路层发送器(DL TX)电路520的帧发送处理单元521将数据帧发送到物理配接器层(PA)层后,数据链路层发送器(DL TX)电路520更新UniPro规范定义的信用值“U”。
在基于图5的另一种实施例中,数据链路层同步电路530可配置为将数据链路层发送器(DL TX)电路520输出的控制信息同步传输至数据链路层接收器(DL RX)电路510。在所述实施例中,数据链路层同步电路530可以包括同步电路模块535及537。同步电路模块535将数据链路层发送器(DL TX)电路520所输出的第三时钟域(如TD_TX)的第四控制信息(如序号)转换及输出为第二时钟域(如TD_CP)的第五控制信息。同步电路模块537将同步电路模块535所输出的第二时钟域(如TD_CP)的第五控制信息转换为第一时钟域(如TD_RX)的第六控制信息,并将第一时钟域(如TD_RX)的第六控制信息输出至数据链路层接收器(DL RX)电路510。借此,数据链路层同步电路530能够用于发送器至接收器的控制信息同步传输。在上述说明中,为了区别在不同时钟域中的控制信息,故分别命名为第五控制信息、第六控制信息。
在一种示例中,帧发送处理单元521可包括数据帧发送电路522及控制帧发送电路524。数据帧发送电路522用以依据UniPro规范进行数据帧发送处理,控制帧发送电路524用以依据UniPro规范进行控制帧发送处理。为了实现前述UniPro规范的数据链路层流量控制中就本地端接收AFC0控制帧的情景,数据链路层接收器(DL RX)电路510、数据链路层发送器(DL TX)电路520以及数据链路层同步电路530可作以下的配置。当数据链路层发送器(DLTX)电路520通过来自接收到的AFC0控制帧的控制信息中的信用值而得知对等端(或称遥距端)的接收器(RX)缓冲区可用时,数据链路层发送器(DL TX)电路520的数据帧发送电路522将数据帧发送到PA层。数据链路层发送器(DL TX)电路520完成发送TC0数据帧后,将更新序号的控制信息通过数据链路层同步电路530的发送器至接收器的控制信息同步传输以通知数据链路层接收器(DL RX)电路510下一个预期接收到的AFC0控制帧是什么序号。
由以上基于图5的电路架构的实施例可知,同步电路530的接收器至发送器的控制信息同步传输以及发送器至接收器的控制信息同步传输的过程中皆采用了第二时钟域用作中继的时钟域,而第二时钟域是独立于数据链路层接收器(DL RX)电路510的第一时钟域及数据链路层发送器(DL TX)的第三时钟域的。在一些示例下,如前述技术议题(3)的适用的情况下,第一时钟域或第三时钟域的时钟信号依据UniPro规范在预定数目的尾随时钟周期后而关闭时,由于同步电路530中的第二时钟域是独立于第一时钟域及第三时钟域的,故同步电路530仍然可以通过同步电路530中操作于第二时钟的对应电路而对控制信息进行暂存并于第一时钟域或第三时钟域的时钟信号恢复以后输出至目标的时钟域。第二时钟域例如是UniPro规范中所定义的CPort时钟域,或者也可以利用独立于数据链路层接收器(DLRX)电路510的第一时钟域及数据链路层发送器(DL TX)的第三时钟域的其他时钟域来实现。
请参考图6,其为图5中的同步电路模块的一种实施例的示意图。图6所示的同步电路模块600为图5中的同步电路模块的一种实施例。同步电路模块600是基于操作于不同步的时钟域的两组电路单元来实现,如图6所示,如可包括锁存器610、比较器620、来源锁存及交握逻辑电路630、来源锁存器640、目标锁存及交握逻辑电路650及目标锁存器660。锁存器610、比较器620、来源锁存及交握逻辑电路630、来源锁存器640操作于来源时钟域;目标锁存及交握逻辑电路650及目标锁存器660操作于目标时钟域。此外,同步电路模块600进一步包括位准位同步器635、位准位同步器655。
此外,基于图6所示的同步电路模块600可以作个别的配置以实现图5所示的数据链路层同步电路530的多个同步电路模块。例如,基于图6所示的同步电路模块600来实现图5所示的同步电路模块531时,同步电路模块600的来源时钟域和目标时钟域分别为同步电路模块531的前述实施例中的第一时钟域(如TD-RX)及第二时钟域(如TD_CP)。例如,基于图6所示的同步电路模块600来实现图5所示的同步电路模块533时,同步电路模块600的来源时钟域和目标时钟域分别为同步电路模块533的前述实施例中的第二时钟域(如TD_CP)及第三时钟域(如TD_TX)。如此一来,基于图6来实现同步电路模块531、533,控制信息同步传输的过程中就能够采用第二时钟域(如TD_CP)用作中继的时钟域了。如此类推,图5所示的同步电路模块535或537亦可基于图6所示的同步电路模块600来作个别的配置而加以实现。
以下举例说明同步电路模块600。举例而言,同步电路模块600接收来源时钟域的来源时钟信号src_clk、src_rstn以及目标时钟域的目标时钟信号tgt_clk、tgt_rstn。同步电路模块600用以对来源信息信号src_info、src_info_vld进行总线同步处理,而输出目标信息信号tgt_info_out、tgt_info_out_vld。其中src_info_vld用以表示src_info是否有效,tgt_info_out_vld用以表示tgt_info_out是否有效。来源信息信号src_info及目标信息信号tgt_info_out可以分别代表并实现为多位总线(multi-bit bus)信息。
锁存器610依据来源信息信号src_info、src_info_vld输出来源有效信息信号src_valid_info。比较器620依据来源有效信息信号src_valid_info及来源锁存信息信号src_latch_info输出差异表示信号以表示来源有效信息信号及来源锁存信息信号是否有差异。来源锁存及交握逻辑电路630依据所述差异表示信号、同步来源锁存交握信号sync_src_latch_hnshk及同步目标锁存交握信号sync_tgt_latch_hnshk而输出来源锁存致能信号src_latch_en及来源锁存交握信号src_latch_hnshk。位准位同步器(1-bit levelsynchronizer)635依据所述来源锁存交握信号src_latch_hnshk输出所述同步来源锁存交握信号sync_src_latch_hnshk。来源锁存器640依据所述来源有效信息信号src_valid_info及所述来源锁存致能信号src_latch_en而输出所述来源锁存信息信号src_latch_info。为了同步电路模块600进行初始运作,来源锁存器640可被配置具有锁存的默认值用作所述来源锁存信息信号src_latch_info,从而使比较器620进行比较操作。目标锁存及交握逻辑电路650依据同步来源锁存交握信号sync_src_latch_hnshk而输出目标锁存交握信号tgt_latch_hnshk、目标锁存致能信号tgt_latch_en及目标信息信号tgt_info_out_vld。位准位同步器655依据所述目标锁存交握信号tgt_latch_hnshk输出所述同步目标锁存交握信号sync_tgt_latch_hnshk。目标锁存器660依据所述来源锁存信息信号src_latch_info及目标锁存致能信号tgt_latch_en而输出所述目标信息信号tgt_info_out。
在图6中,同步电路模块600可以被配置来实现两个技术方案来做总线同步。一种是「差异触发」方案,另一种是「多相锁存」方案。
以下提出一种差异触发(DT)和多相锁存(ML)总线同步的实现例来支持前述技术议题的要求。
举例而言,总线信息同步是通过来源时钟域和目标时钟域之间的交握来实现的。在UniPro的数据链路层的操作中,欲交换的控制信息并不总是有效的(active),即并不是时常存在欲交换的控制信息。数据链路层仅在接收或发送TC0或AFC0帧时发生变化,才需要对欲交换的控制信息进行总线信息同步。首先,提出了一种仅在欲交换的控制信息发生变化时才进行总线同步的技术方案的实施例,其可称为「差异触发」(difference trigger,DT)方案。差异触发可以降低功耗,因为它只有在有效信息发生变化时才有效同步。
其次,为了实现正确高速的总线同步,「多相锁存」(multi-phase latch,ML)方案在交换控制信息时利用了来源时钟域的第一数目的周期(如来源锁存点的周期)和目标时钟域的第二数目的周期(如目标锁存点的周期)。例如,第一数目可能等于或大于第二数目;举例而言,第一数目为4个周期(或称4个相位)时可以帮助尽快锁存来源信息。如此一来,在RX符号时钟关闭之前有助于减少丢失(missing)的机会。
在一些实施例中,可将上述两个方案结合而成为差异触发和多相锁存(DTML)总线同步方案。
UniPro的数据链路层的控制信息同步可以基于DTML总线同步方案以各种实现方式来实现。在以下一些实施例中,分别以可称为普通方案(normal scheme)的一种实现方式和可称为增强方案(enhanced scheme)的另一种实现方式来举例说明。
请参考图7,其为图6的同步电路模块的一种实施例的示意时序图。图7为DTML总线同步方案的时序图,其中为便于说明,以脉波波形表示各个信号及这些信号因应的准位的变化,而在实作时这些信号之间可能彼此会有延迟等情况。图7示意同步电路模块600中如前述实施例的两组电路单元的多个信号。同步电路模块600的一组电路电元依据来源时钟信号src_clk在来源时钟域的操作频率下运作,来源信息信号src_info_vld表示来源信息信号src_info是否有效,来源信息信号src_info带有的数值(如帧序号或信用值)可能会变化。为便于说明,如图7所示,来源信息信号src_info带有的数值例如变化的过程从0x0、0x1、0x2至0x6;而在实作时,所述数值可以为不同于图7的值或所述数值作不规则的变化。同步电路模块600的锁存器610依据来源信息信号src_info、src_info_vld输出来源有效信息信号src_valid_info。当来源锁存致能信号src_latch_en被设为作用状态(asserted)时(如高电平),来源锁存器640锁存来源有效信息信号src_valid_info的数值并因此而输出来源锁存信息信号src_latch_info,如图7中从src_latch_en及src_latch_info对应的波形之间的虚线箭号示意锁存及输出数值,如src_latch_info的波形中所显示的0、1、2,或5,或6。当来源锁存器640输出的数值稳定时,同步电路模块600中来源锁存及交握逻辑电路630及目标锁存及交握逻辑电路650彼此交握。若交握成功则将目标锁存致能信号tgt_latch_en设为作用状态(asserted),令目标锁存器660可以开始锁存来源锁存器640所输出的来源锁存信息信号src_latch_info,从而使目标锁存器660输出目标信息信号tgt_info_out,如tgt_info_out的波形中所显示的0、2、5、6。
如图7所示,有两个普通的来源锁存点(source latch point)SLA、SLC,其表示来源锁存器锁存来源信息的时间点,如以虚线椭圆表示的SLA、SLC。此外,有两个目标锁存点(target latch point)TLA、TLB,其表示目标锁存器锁存更新的来源信息的时间点,如在tgt_info_out的波形中以实心方形所对应的TLA、TLB。请注意,图7中来源时钟信号src_clk可能会被关闭的,如图7中TCS所指的尾随时钟周期(trailing clock cycles)可以被配置为某特定数目(譬如32或其他)达到后而关闭来源时钟信号。此外,在图7中以虚线箭头表示src_latch_hnshk、sync_src_latch_hnshk之间的位准位同步(bit levelsynchronization,BLS)。
如图7所示,示意来源锁存器640在来源锁存点SLA、SLC锁存信息后,当来源有效信息信号src_valid_info再次更新下一笔信息(如其数值为0x6)时,如果来源时钟信号仍然存在,则可以在前一次交握完成后锁存所述更新的信息。
在一些示例中,有一种情况可能会发生──来源时钟信号在多个时钟周期后关闭,并且目标时钟信号tgt_clk比来源时钟信号src_clk慢得多;这意味着因为来源时钟信号src_clk与目标时钟信号tgt_clk之间的时钟频率比率(clock frequency ratio)很大,故同步延迟超过了接收器尾随时钟(RX Trailing Clock)的周期。涉及上述情况,请参考图8,其为图6的同步电路模块的另一种实施例的示意时序图。图8显示了DTML总线同步的普通方案中可能具有丢失(miss)情况的时序图(当同步延迟超过接收器尾随时钟的周期时)。在图8中,同步目标锁存交握信号sync_tgt_latch_hnshk的波形中最后的多个虚线的下降沿示意因为来源时钟已丢失的情况出现,故来源有效信息信号src_valid_info的值为0x6时可能已丢失,而并未在来源时钟域中被锁存于来源锁存器640。在此情况下,目标信息信号tgt_info_out已变为不可能输出0x6了。
为了帮助减少这种情况的丢失机会,在一些实施例中,可以进一步实现另一种实现方式,即增强方案,使来源时钟域具有较多数目的锁存点,如有两个额外的锁存点,从而在RX符号时钟关闭之前尽快锁存来源信息。
请参考图9,其为图6的同步电路模块的又一种实施例的示意时序图。增强方案的时序波形如图9所示。与图7或图8所示意的普通方案的实施例相比,图9所示意的增强方案的实施例增加了两个来源锁存点,如来源锁存点SLB以及源锁存点SLD。此外,图9所示意的增强方案的实施例具有与图7或图8所示意的普通方案相似的两个目标锁存点,如目标锁存点TLA以及目标锁存点TLB。
在来源锁存点SLB和来源锁存点SLD之后,在目标锁存点开始锁存来源信息之前,具有至少两个目标时钟周期的边限(margin),来确保交握的稳定性,如图9中MA、MB所指的两个目标时钟周期的延迟。其中依据目标锁存交握信号tgt_latch_hnshk经延迟来生成内部信号tgt_latch_hnshk_d1,从而使目标锁存致能信号tgt_latch_en从作用状态(asserted)改变为非作用状态(deasserted)时用作目标锁存点,如TLA、TLB所示。
以下举例说明差异触发和多相锁存的实施例的详细操作。
差异触发(DT):在图6所示的同步电路模块600中,来源信息在有效时被锁存在锁存器610并输出来源有效信息信号src_valid_info。通过比较器620比较之前锁存的来源信息(如来源锁存信息信号src_latch_info)和有效来源信息(如来源有效信息信号src_valid_info所带有的信息)并输出差异表示信号,其中在初始阶段,来源锁存信息信号src_latch_info具有默认值。若差异表示信号表示有差异,此将触发来源锁存交握信号(src_latch_hnshk)并将最新更改的信息(即有效来源信息)锁存到来源锁存器640而令来源锁存器640输出来源锁存信息信号src_latch_info。之后,当来源信息有效并再次发生变化时,将触发总线同步逻辑在特定时间点进行来源锁存和目标锁存,如下面的多相时间点所示。
多相锁存(ML):图9是增强型的差异触发和多相锁存总线同步方案的操作的示例。在比较器620比较出有差异而触发后,在两个时钟域内有两种锁存器。一个在来源时钟域,另一个在目标时钟域。
(1)在图9的来源时钟域中,第一个源锁存器从来源锁存点SLA开始,来源锁存交握信号src_latch_hnshk被设为作用状态(asserted),并通过1位准位同步逻辑与目标时钟域同步(如图9中的虚线BLS所示),以通知目标时钟域的电路(如目标锁存及交握逻辑电路650)涉及来源信息已锁存且稳定。
(2)目标时钟域中将目标锁存交握信号tgt_latch_hnshk设为作用状态(asserted)从而于目标锁存点TLA将来源锁存信息信号src_latch_info锁存到目标信息信号tgt_info_out,如图9中tgt_latch_en的波形与tgt_info_out的波形之间虚线箭号所示意。
(3)目标锁存交握信号tgt_latch_hnshk通过1位准位同步逻辑与来源时钟域同步(如图9中的虚线BLS所示),以通知来源时钟域的电路(如来源锁存及交握逻辑电路630)涉及目标锁存器660已经锁存来源信息。
(4)然后,如果在来源锁存点SLC,来源有效信息信号src_valid_info和来源锁存交握信号src_latch_hnshk之间存在差异,则来源锁存器640可以再次锁存信息。
(5)在交握完成后,来源锁存交握信号src_latch_hnshk被设为非作用状态(deasserted),目标锁存交握信号tgt_latch_hnshk亦被设为非作用状态(deasserted),从而使在目标锁存点TLB处将来源锁存信息信号src_latch_info再次锁存到目标信息信号tgt_info_out,如图9中tgt_info_out的波形中的数值0x6。
在增强方案的实施例中,有两个额外的来源锁存点,借此在交握过程中高速锁存来源信息。
(1)来源锁存点SLB是在目标锁存器660开始锁存来源锁存信息信号src_latch_info之前来源信息再次被改变的时间点。来源信息可以尽快被锁存。
(2)来源锁存点SLD是在目标锁存器660锁存来源锁存信息信号src_latch_info之后来源信息再次被改变的时间点。来源信息可以尽快被锁存。
在一些实施例中,四个来源锁存点可利用如下表1中的公式1来确定,其使用硬件描述语言(HDL)如Verilog语言来表示。为便于说明,如表1所示,公式1可以另外表示如下:src_latch_en=(条件式A1及(条件式B1或条件式B2或条件式B3或条件式B4))。
表1
条件式A1成立时即代表来源信息有效并发生变化。条件式B1成立时代表第一个来源锁存点(SLA)是在交握开始时的来源锁存交握信号src_latch_hnshk的一个上升沿的时间点,其中来源锁存交握信号src_latch_hnshk及同步目标锁存交握信号sync_tgt_latch_hnshk处于未被激活(inactive)状态。条件式B2成立时代表第三个来源锁存点(SLC)是在交握结束时的来源锁存交握信号src_latch_hnshk的一个下降沿的时间点,其中来源锁存交握信号src_latch_hnshk及同步目标锁存交握信号sync_tgt_latch_hnshk处于被激活(active)状态。条件式B3成立时代表第二个来源锁存点(SLB)是在交握中间阶段的时间点,其中来源锁存交握信号src_latch_hnshk处于被激活(active)状态及同步目标锁存交握信号sync_tgt_latch_hnshk处于未被激活(inactive)状态。条件式B4成立时代表第四个来源锁存点(SLD)是在交握中间阶段的时间点,其中来源锁存交握信号src_latch_hnshk处于未被激活(inactive)状态及同步目标锁存交握信号sync_tgt_latch_hnshk处于被激活(active)状态。
在一些实施例中,两个目标锁存点可利用公式2来确定,如下所示:tgt_latch_en=tgt_latch_hnshk^tgt_latch_hnshk_d1。公式2代表目标锁存致能信号tgt_latch_en可实现为依据目标锁存交握信号tgt_latch_hnshk及依据目标锁存交握信号tgt_latch_hnshk经延迟来生成的内部信号tgt_latch_hnshk_d1的逻辑运算(如互斥或运算XOR)来确定。
从图9的实施例可知,来源时钟域至目标时钟域的同步延迟(synchronouslatency)能减少至数个目标时钟周期(如0x3到0x5个),借此,多相锁存(Multi-PhaseLatch)可有效地减少来源时钟关闭时的丢失信息的机会。此外,从图7至图9可知,在实现同步电路模块600时,针对来源控制信息如来源信息信号src_info所带有的数值会变化如从0x0变化至0x6,当来源信息信号src_info不在变化时(如0x6)时,来源锁存器640及目标锁存器660所锁存的控制信息会一致。由于同步电路模块600所要同步传输的是控制信息,故不必对来源信息信号src_info变化过程中的每一个数值都作同步传输。如图9所示,来源信息信号src_info所带有的数值变化如从0x0变化至0x6,经过同步电路模块600的同步传输所输出的目标信息信号tgt_info_out的控制信息为0x0、0x3、0x6。借此,控制信息为0x0、0x3、0x6已足以用于互连协议(如UniPro)下基于信用的流量控制机制使用。如此一来,同步电路模块600在高速传输的应用情景下,如UniPro规范的每秒十亿位等级的高速传输下,亦可有助于减少功耗。
在一些实施例中,图5的架构中的同步电路模块可以配置为利用前述普通方案来实现至少具有两个来源锁存点(如SLA、SLC)。
在一些实施例中,图5的架构中的同步电路模块可以配置为基于普通方案并进一步实现增强方案,以来实现至少具有四个来源锁存点(如SLA、SLB、SLC、SLD),其中利用两个来源锁存点(如SLB、SLD),如利用同步来源锁存交握信号sync_src_latch_hnshk直接从目标时钟域到来源时钟域,以确保有至少有两个目标时钟周期边限(margin)。
在一些实施例中,图5的架构中的同步电路模块可被配置为于进行所述交换信息时,于第一时钟域中锁存第一控制信息,且经过第一时钟域的第一数目的周期(如来源锁存点(如SLA及SLC;或SLA、SLB、SLC、SLD)所对应的周期)以及经过第二时钟域的第二数目的周期(如目标锁存点(如TLA或TLB)所对应的周期)之后于所述第二时钟域中锁存所述第一控制信息,并将于所述第二时钟域中锁存的所述第一控制信息输出为所述第二控制信息。在一种实施例中,图5的架构中的同步电路模块被配置为于进行所述交换信息时,所述第一数目可等于所述第二数目(如图7、8所示)。在另一种实施例中,图5的架构中的同步电路模块被配置为于进行所述交换信息时,所述第一数目可大于所述第二数目,如图9所示,来源锁存点(如SLA、SLB、SLC、SLD)所对应的周期有4个,目标锁存点(如TLA、TLB)所对应的周期有2个。
再者,虽然以上的诸多实施例是针对数据链路层的TC0实体(如图3的325)在接收或发送TC0或AFC0帧时发生变化,对欲交换的控制信息进行总线信息同步,然而对于TC1或AFC1帧来说,以上诸多实施例也同样适用。故可选地,在一些实施例中,针对TC1或AFC1帧,可以在数据链路层中实现TC1实体(如图3的326),在TC1实体中的DL_RX及DL_TX之间实现与图5相似的同步电路来做控制信息的同步传输。
此外,在上述涉及主机和存储设备的实施例中,主机控制器或设备控制器中的硬件协议引擎是可以基于使用硬件描述语言(HDL)如Verilog语言或本领域技术人员所熟悉的数字电路的任何其他设计方法的技术进行设计,并且可以基于使用现场可程序逻辑栅阵列(field programmable gate array,FPGA)、或特定集成电路(application specificintegrated circuit,ASIC)或复杂可编程逻辑器件(CPLD)之类的电路中的一个或多个电路来实现,亦可使用专属的电路或模块来实现。主机控制器或设备控制器(或其中的处理单元或硬件协议引擎)也可以基于微控制器、处理器、或数字信号处理器来实现。
在一些实施例中,在利用特定集成电路(ASIC)来实现基于图5的电路架构中的同步电路模块时,可以创建「同步器」用作巨集单元(macro cell),以最大限度地减少ASIC中的数据路径延迟。
在一些实施例中,在利用现场可程序逻辑栅阵列(FPGA)来实现基于图5的电路架构中的同步电路模块时,使用FPGA中的「ASYNC_REG」属性或「set_max_delay」确保源寄存器和目标寄存器不要相距太远。
如上所述,上述提供了用于互连协议的同步电路的技术的各种具体实施方式,如用于互连协议的同步电路、控制器以及存储设备。如数据链路层同步电路530用于在数据链路层接收器(DL RX)电路与数据链路层发送器(DL TX)电路之间控制信息同步传输,数据链路层同步电路530可包括多个同步电路模块,所述多个同步电路模块可以作个别的配置以符合在UniPro规范下控制信息同步传输的目的。同步电路模块可以依据前述实施例中的差异触发(DT)和多相锁存(ML)总线同步的实现方式,只有当有效信息发生变化时才开始锁存交换的信息,故无需随时更新信息,耗电可以减少,从而达到促进正确、高速地交换例如UniPro的数据链路层的控制信息,并节省功耗。
本发明在上文中已以多个实施例揭露,然熟习本项技术人员应理解的是,所述实施例仅用于描绘本发明,而不应解读为限制本发明的范围。应注意的是,举凡与所述实施例等效的变化与置换,均应设为涵盖于本发明的范畴内。因此,本发明的保护范围当以权利要求书所界定者为准。
附图标记说明
1 存储系统
10 主机
11 主机接口
12 主机控制器
13 硬件协议引擎
14 处理单元
16 应用处理器
20 存储设备
21 设备接口
22 设备控制器
23 硬件协议引擎
24 处理单元
26 存储模块
110 物理层
111 发送器
112 接收器
130 MIPI统一协议(UniPro)层
131 物理配接器层
132 数据链路层
133 网络层
134 传输层
135 设备管理实体
210 物理层
211 发送器
212 接收器
230 MIPI统一协议(UniPro)层
231 物理配接器层
232 数据链路层
233 网络层
234 传输层
235 设备管理实体
310 物理配接器层
311 服务访问点
320 数据链路层
321、322、323 服务访问点
325 TC0实体
326 TC1实体
327 DL_LM实体
330 网络层
350 设备管理实体
500 数据链路层电路
510 数据链路层接收器电路
511 帧接收处理单元
512 数据帧解码电路
514 控制帧解码电路
520 数据链路层发送器电路
521 帧发送处理单元
522 数据帧发送电路
524 控制帧发送电路
530 同步电路
531、533、535、537 同步电路模块
600 同步电路模块
610 锁存器
620 比较器
630 来源锁存及交握逻辑电路
635 位准位同步器
640 来源锁存器
650 目标锁存及交握逻辑电路
655 位准位同步器
660 目标锁存器
CLK 时钟线
Din、Dout 数据线
RST 复位线
SL1 数据通道
SL2 数据通道
ESC_DL 帧
SOF 帧启始标记
TC 流量类别
TCS 尾随时钟周期
EOF_EVEN 标尾
EOF_ODD 标尾
CRC-16 16位CRC码
AFC 流量控制
CReq 信用传输请求
src_clk、src_rstn 来源时钟信号
src_info、src_info_vld 来源信息信号
src_latch_info 来源锁存信息信号
src_latch_en 来源锁存致能信号
src_latch_hnshk 来源锁存交握信号
src_valid_info 来源有效信息信号
sync_src_latch_hnshk 同步来源锁存交握信号
sync_tgt_latch_hnshk 同步目标锁存交握信号
tgt_clk、tgt_rstn 目标时钟信号
tgt_latch_en 目标锁存致能信号
tgt_latch_hnshk 目标锁存交握信号
tgt_info_out、tgt_info_out_vld 目标信息信号
tgt_latch_hnshk_d1 内部信号
SLA、SLB、SLC、SLD 来源锁存点
BLS 位准位同步
TLA、TLB 目标锁存点
MA、MB 延迟

Claims (20)

1.一种用于互连协议的同步电路,其特征在于,适用于能够依据所述互连协议链接第二设备的第一设备中,所述同步电路包括:
第一同步电路模块,用以将所述第一设备的数据链路层接收器输出的第一时钟域的第一控制信息转换并输出为第二时钟域的第二控制信息;以及
第二同步电路模块,联接所述第一同步电路模块,用以将所述第一同步电路模块所输出的所述第二时钟域的所述第二控制信息转换为第三时钟域的第三控制信息以输出至所述第一设备的数据链路层发送器,
其中所述数据链路层接收器输出的所述第一控制信息是所述第一时钟域的至少一个信号,所述第二同步电路模块输出的所述第三控制信息是所述第三时钟域的至少一个信号,所述第一时钟域、所述第二时钟域、所述第三时钟域的两两之间是非同步的。
2.根据权利要求1所述的同步电路,其特征在于,当所述数据链路层接收器的帧接收处理单元完成数据帧的处理并成功传送至上层时,所述帧接收处理单元所输出的所述第一时钟域的所述第一控制信息通过所述同步电路的所述第一同步电路模块及所述第二同步电路模块被转换为所述第三时钟域的所述第三控制信息以输出至所述数据链路层发送器。
3.根据权利要求1所述的同步电路,其特征在于,当所述数据链路层接收器的帧接收处理单元正确地接收到控制帧后,所述数据链路层接收器所输出的所述第一时钟域的所述第一控制信息通过所述同步电路的所述第一同步电路模块及所述第二同步电路模块被转换为所述第三时钟域的所述第三控制信息以输出至所述数据链路层发送器。
4.根据权利要求1所述的同步电路,其特征在于,所述同步电路进一步包括:
第三同步电路模块,用以将所述数据链路层发送器输出的所述第三时钟域的第四控制信息转换并输出为所述第二时钟域的第五控制信息输出;
第四同步电路模块,联接所述第三同步电路模块,用以将所述第三同步电路模块所输出的所述第二时钟域的所述第五控制信息转换为所述第一时钟域的第六控制信息以输出至所述数据链路层接收器,
其中所述数据链路层发送器输出的所述第四控制信息是所述第三时钟域的至少另一个信号,所述第四同步电路模块输出的所述第六控制信息是所述第一时钟域的至少另一个信号。
5.根据权利要求4所述的同步电路,其特征在于,当所述数据链路层发送器完成发送数据帧后,所述数据链路层发送器所输出的所述第三时钟域的所述第四控制信息通过所述同步电路的所述第三同步电路模块及所述第四同步电路模块被转换为所述第一时钟域的所述第六控制信息以输出至所述数据链路层接收器。
6.根据权利要求1所述的同步电路,其特征在于,所述第一同步电路模块被配置为于所述数据链路层接收器所输出的所述第一控制信息与先前控制信息有差异时才进行交换信息。
7.根据权利要求6所述的同步电路,其特征在于,所述第一同步电路模块被配置为于进行所述交换信息时,于所述第一时钟域中锁存所述第一控制信息,且经过所述第一时钟域的第一数目的周期及经过所述第二时钟域的第二数目的周期后于所述第二时钟域中锁存所述第一控制信息,并将于所述第二时钟域中锁存的所述第一控制信息输出为所述第二控制信息。
8.根据权利要求7所述的同步电路,其特征在于,所述第一同步电路模块被配置为于进行所述交换信息时,所述第一数目等于或大于所述第二数目。
9.根据权利要求1所述的同步电路,其特征在于,所述互连协议是通用闪存存储(Universal Flash Storage,UFS)标准。
10.一种控制器,其特征在于,适用于能够依据互连协议链接第二设备的第一设备中,所述控制器包括:
控制器模块,所述控制器模块用于联接到接口电路,且用于实现所述互连协议的链接层,所述控制器模块包括:
数据链路层接收器;
数据链路层发送器;以及
同步电路,联接于所述数据链路层接收器及所述数据链路层发送器之间,所述同步电路包括:
第一同步电路模块,用以将所述数据链路层接收器输出的第一时钟域的第一控制信息转换并输出为第二时钟域的第二控制信息;以及
第二同步电路模块,联接所述第一同步电路模块,用以将所述第一同步电路模块所输出的所述第二时钟域的所述第二控制信息转换为第三时钟域的第三控制信息以输出至所述数据链路层发送器,
其中所述数据链路层接收器输出的所述第一控制信息是所述第一时钟域的至少一个信号,所述第二同步电路模块输出的所述第三控制信息是所述第三时钟域的至少一个信号,所述第一时钟域、所述第二时钟域、所述第三时钟域的两两之间是非同步的。
11.根据权利要求10所述的控制器,其特征在于,当所述数据链路层接收器的帧接收处理单元完成数据帧的处理并成功传送至上层时,所述帧接收处理单元所输出的所述第一时钟域的所述第一控制信息通过所述同步电路的所述第一同步电路模块及所述第二同步电路模块被转换为所述第三时钟域的所述第三控制信息以输出至所述数据链路层发送器。
12.根据权利要求10所述的控制器,其特征在于,当所述数据链路层接收器的帧接收处理单元正确地接收到控制帧后,所述数据链路层接收器所输出的所述第一时钟域的所述第一控制信息通过所述同步电路的所述第一同步电路模块及所述第二同步电路模块被转换为所述第三时钟域的所述第三控制信息以输出至所述数据链路层发送器。
13.根据权利要求10所述的控制器,其特征在于,所述同步电路进一步包括:
第三同步电路模块,用以将所述数据链路层发送器输出的所述第三时钟域的第四控制信息转换并输出为所述第二时钟域的第五控制信息输出;以及
第四同步电路模块,联接所述第三同步电路模块,用以将所述第三同步电路模块所输出的所述第二时钟域的所述第五控制信息转换为所述第一时钟域的第六控制信息以输出至所述数据链路层接收器,
其中所述数据链路层发送器输出的所述第四控制信息是所述第三时钟域的至少另一个信号,所述第四同步电路模块输出的所述第六控制信息是所述第一时钟域的至少另一个信号。
14.根据权利要求13所述的控制器,其特征在于,当所述数据链路层发送器完成发送数据帧后,所述数据链路层发送器所输出的所述第三时钟域的所述第四控制信息通过所述同步电路的所述第三同步电路模块及所述第四同步电路模块被转换为所述第一时钟域的所述第六控制信息以输出至所述数据链路层接收器。
15.根据权利要求10所述的控制器,其特征在于,所述第一同步电路模块被配置为于所述数据链路层接收器所输出的所述第一控制信息与先前控制信息有差异时才进行交换信息。
16.根据权利要求15所述的控制器,其特征在于,所述第一同步电路模块被配置为于进行所述交换信息时,于所述第一时钟域中锁存所述第一控制信息,且经过所述第一时钟域的第一数目的周期及经过所述第二时钟域的第二数目的周期后于所述第二时钟域中锁存所述第一控制信息,并将于所述第二时钟域中锁存的所述第一控制信息输出为所述第二控制信息。
17.根据权利要求16所述的控制器,其特征在于,所述第一同步电路模块被配置为于进行所述交换信息时,所述第一数目等于或大于所述第二数目。
18.根据权利要求10所述的控制器,其特征在于,所述互连协议是通用闪存存储(Universal Flash Storage,UFS)标准。
19.一种存储设备,其特征在于,能够依据互连协议链接主机,所述存储设备包括:
存储模块;
接口电路,所述接口电路用于实现所述互连协议的物理层以链接所述主机;以及
控制器模块,所述控制器模块用于联接到所述接口电路和所述存储模块,且用于实现所述互连协议的链接层,所述控制器模块包括:
数据链路层接收器;
数据链路层发送器;以及
同步电路,联接于所述数据链路层接收器及所述数据链路层发送器之间,所述同步电路包括:
第一同步电路模块,用以将所述数据链路层接收器输出的第一时钟域的第一控制信息转换并输出为第二时钟域的第二控制信息;以及
第二同步电路模块,联接所述第一同步电路模块,用以将所述第一同步电路模块所输出的所述第二时钟域的所述第二控制信息转换为第三时钟域的第三控制信息以输出至所述数据链路层发送器,
其中所述数据链路层接收器输出的所述第一控制信息是所述第一时钟域的至少一个信号,所述第二同步电路模块输出的所述第三控制信息是所述第三时钟域的至少一个信号,所述第一时钟域、所述第二时钟域、所述第三时钟域的两两之间是非同步的。
20.根据权利要求19所述的存储设备,其特征在于,所述互连协议是通用闪存存储(Universal Flash Storage,UFS)标准。
CN202210660023.XA 2022-06-13 2022-06-13 用于互连协议的同步电路、控制器以及存储设备 Pending CN117278469A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210660023.XA CN117278469A (zh) 2022-06-13 2022-06-13 用于互连协议的同步电路、控制器以及存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210660023.XA CN117278469A (zh) 2022-06-13 2022-06-13 用于互连协议的同步电路、控制器以及存储设备

Publications (1)

Publication Number Publication Date
CN117278469A true CN117278469A (zh) 2023-12-22

Family

ID=89206835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210660023.XA Pending CN117278469A (zh) 2022-06-13 2022-06-13 用于互连协议的同步电路、控制器以及存储设备

Country Status (1)

Country Link
CN (1) CN117278469A (zh)

Similar Documents

Publication Publication Date Title
US7328399B2 (en) Synchronous serial data communication bus
CN101599053B (zh) 支持多种传输协议的串行接口控制器及控制方法
EP1825382B1 (en) Low protocol, high speed serial transfer for intra-board or inter-board data communication
WO2013111010A1 (en) Chip-to-chip communications
EP1684188B1 (en) Data transferring system and electronic apparatus
CN102158305B (zh) 支持海量数据传输的高速光电转换数据传输方法
US7821919B2 (en) Data processing apparatus and data processing method
US7979611B2 (en) Multi-protocol serial interface apparatus and system-on-chip apparatus including the same
US20060004968A1 (en) Method and apparatus for memory compression
EP1108242A1 (en) Fifo using asynchronous logic
WO2012143953A2 (en) Optimized multi-root input output virtualization aware switch
CN102708086A (zh) 一种应用于usb3.0的弹性缓冲结构及方法
CN112395230A (zh) 一种基于可编程逻辑器件的uart接口扩展电路
US8510485B2 (en) Low power digital interface
US11892927B2 (en) Method for error handling of an interconnection protocol, controller and storage device
CN117278469A (zh) 用于互连协议的同步电路、控制器以及存储设备
US20230377618A1 (en) Circuit for synchronization for an interconnection protocol, controller and storage device
TW202306365A (zh) 用於互連協定的訊框接收的資料處理的方法以及儲存裝置
CN116318601A (zh) 用于高速信令互连的帧对齐恢复
TW202311971A (zh) 用於互連協定的資料處理的方法、控制器以及儲存裝置
US8555104B2 (en) Frequency adapter utilized in high-speed internal buses
EP3671720B1 (en) Real-time on-chip data transfer system
CN101228733B (zh) 在两个异步系统之间传递数据的方法及异步数据缓冲器
US20240121326A1 (en) Operation method for an electronic device and an electronic device capable of performing an advanced line coding
Dong A Comparative Analysis of Synchronous USART And Asynchronous UART Communication Protocols

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication