CN108605056B - 高速串行链路中的单向时钟信令 - Google Patents

高速串行链路中的单向时钟信令 Download PDF

Info

Publication number
CN108605056B
CN108605056B CN201780009117.8A CN201780009117A CN108605056B CN 108605056 B CN108605056 B CN 108605056B CN 201780009117 A CN201780009117 A CN 201780009117A CN 108605056 B CN108605056 B CN 108605056B
Authority
CN
China
Prior art keywords
data
link
clock signal
clock
packet
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
Application number
CN201780009117.8A
Other languages
English (en)
Other versions
CN108605056A (zh
Inventor
R·汗
S·程
P·菲利普
J·罗梅拉
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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
Priority claimed from US15/420,324 external-priority patent/US20170222684A1/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN108605056A publication Critical patent/CN108605056A/zh
Application granted granted Critical
Publication of CN108605056B publication Critical patent/CN108605056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/041Speed or phase control by synchronisation signals using special codes as synchronising signal
    • H04L7/046Speed or phase control by synchronisation signals using special codes as synchronising signal using a dotting sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Abstract

提供了基于单向时钟信号通过串行链路的数据传输。基于主设备的第一时钟来生成单向时钟信号。单向时钟信号被发送到连接至该串行链路的从设备。主设备基于第一时钟通过该串行链路将数据传送到从设备。从设备从主设备接收单向时钟信号。从设备基于单向时钟信号通过该串行链路将数据传送到主设备。

Description

高速串行链路中的单向时钟信令
相关申请的交叉引用
本申请要求于2016年2月1日提交的题为“SCALABLE,HIGH-EFFICIENCY,HIGH-SPEED SERIALIZED INTERCONNECT(可缩放高效高速串行化互连)”的美国临时专利申请S/N.62/289,874、2016年2月2日提交的题为“TRANSCEIVER FOR WIRELESS BASEBAND DIGITALINTERCONNECT(用于无线基带数字互连的收发机)”的美国临时专利申请S/N.62/290,309、2016年2月2日提交的题为“TESTING OF A TRANSCEIVER FOR WIRELESS BASEBAND DIGITALINTERCONNECT(用于无线基带数字互连的收发机的测试)”的美国临时专利申请S/N.62/290,357、2016年8月10日提交的题为“DUAL-MODE SERIAL INTERFACE FOR DIFFERENTIALAND SINGLE-ENDED SIGNALING(用于差分和单端信令的双模串行接口)”的美国临时专利申请S/N.62/373,246、2017年1月31日提交的题为“UNIDIRECTIONAL CLOCK SIGNALING IN AHIGH-SPEED SERIAL LINK(高速串行链路中的单向时钟信令)”的美国专利申请S/N.15/420,324的权益,这些申请的全部通过援引被明确整体纳入于此。
背景
领域
本公开一般涉及互连系统,尤其涉及高速串行互连系统。
背景技术
电子设备通常由构建在集成电路(IC)(例如硅芯片)上的多个系统组成。不同的IC系统可以被专门化以处置电子设备的不同功能。例如,移动通信设备可以包括用于处理通过各个天线接收和传送的射频(RF)信号的IC系统。蜂窝电话中的RF天线例如可包括用于接收和传送蜂窝通信信号的天线、用于接收全球定位系统(GPS)信号的天线等等。处理由蜂窝电话接收和传送的RF信号的任务可以由射频集成电路(RFIC)执行,其可包括例如功率放大器(PA)、低噪声放大器(LNA)、天线调谐器、滤波器、传感器、功率管理设备、交换机等。另一方面,通常被称为基带调制解调器或基带IC(BBIC)的不同的IC系统可以处置对各个传入和传出RF通信进行分类并且向正确的目的地发送每一个这些通信的任务(例如,传入GPS信号可以被发送到GPS IC、传入蜂窝通信可以被解析成数据和语音并且被发送到恰适的数据处理IC和语音处理IC)。
不同的IC系统经由信号线彼此通信。例如,一些IC系统可以被构建为单独的IC芯片,可以通过将它们焊接到同一印刷电路板(PCB)来将它们连接在一起。在此情形中,PCB上的印刷线可充当单独芯片上的不同IC系统之间的信号线。在另一示例中,多个系统可以被构建在单个IC上,其可以被称为片上系统(SoC)。在此情形中,构建在IC芯片内的导电通路可充当信号线。
系统IC之间的通信是使用通信接口来执行的,其定义了数据如何经由信号线来发送和接收。在许多应用中,串行接口已经成为IC系统之间的数字通信的优选方法。串行通信是在通信信道(诸如信号线)上顺序地一次一个比特地发送数据的过程。这与并行通信是相反的,在并行通信中,若干比特作为一个整体在具有若干并行信道的链路上被发送。互连或链路是两个端口之间的点到点通信信道,从而允许两个端口发送和接收数据和消息。串行互连在更短距离处正变得越来越常见,因为更新的串行技术中的经改进的信号完整性和传输速度已经开始超过并行总线的简单(例如,无需串行化器和解串行化器或SERDES)的优点,并且克服缺点(例如,时钟偏斜、互连密度)。
随着数据通信速度增加,串行互连上进行通信所需的功率也增加。在电池操作的设备中,诸如移动设备中,低功率操作对于在充电之间允许更长的操作是至关重要的。然而,由于对越来越快的数据通信速度的需要已经增长,使串行互连在以低功率操作的同时提供高速通信所要求的准确性(例如,低误差率)已经成为挑战。
概述
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在标识出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是以简化形式给出一个或多个方面的一些概念以作为稍后给出的更详细描述之序言。
在各实施例中,单向时钟信令被用于串行链路上的数据传输。主设备可以基于主设备的第一时钟来生成单向时钟信号。在一些实施例中,单向时钟信号可以被生成以具有与第一时钟相同的速率。在一些实施例中,单向时钟信号被生成,以使得单向时钟信号的速率是第一时钟速率的分数。主设备可以将单向时钟信号发送到连接至串行链路的从设备。主设备可以基于第一时钟在串行链路上将数据传送到从设备。在一些实施例中,单向时钟信号可以通过串行链路被发送到从设备。在一些实施例中,单向时钟信号可以通过边带被发送到从设备。
在各实施例中,从设备可以从主设备接收单向时钟信号。单向时钟信号可以基于主设备的第一时钟。从设备可以基于单向时钟信号通过串行链路将数据传送到主设备。在一些实施例中,单向时钟的速率可以与第一时钟的速率相同。在一些实施例中,单向时钟信号的速率可以是第一时钟的速率的分数。在一些实施例中,单向时钟信号可以通过串行链路从主设备接收。在一些实施例中,单向时钟信号可以通过边带从主设备接收。
在各实施例中,通过串行链路传送数据的装置可包括主设备、时钟信号生成器以及发射机组件,该主设备包括第一时钟,该时钟信号生成器基于第一时钟生成单向时钟信号。在一些实施例中,时钟信号生成器可以生成具有与第一时钟相同的速率的单向时钟。在一些实施例中,时钟信号生成器可以生成单向时钟,以使得单向时钟信号的速率是第一时钟速率的分数。发射机组件可以将单向时钟信号发送到连接至串行链路的从设备。发射机组件也可以基于第一时钟在串行链路上将数据传送到从设备。在一些实施例中,发射机组件可以通过串行链路将单向时钟信号发送到从设备。在一些实施例中,发射机组件可以通过边带将单向时钟信号传送到从设备。
在各实施例中,通过串行链路传送数据的装置可包括从设备,该从设备包括能够从主设备接收单向时钟信号的接收机。单向时钟信号可以基于主设备的第一时钟。从设备还可包括能够基于单向时钟信号通过串行链路将数据传送到主设备的发射机。在一些实施例中,单向时钟的速率可以与第一时钟的速率相同。在一些实施例中,单向时钟信号的速率可以是第一时钟的速率的分数。在一些实施例中,接收机可以通过串行链路从主设备接收单向时钟信号。在一些实施例中,接收机可以通过边带从主设备接收单向时钟信号。
以下描述和附图详细阐述了本公开的一个或多个方面的某些解说性特征。但是,这些特征仅仅是指示了可采用各种方面的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类方面及其等效方案。
附图简述
图1解说了本公开在蜂窝电话的示例实现中的各方面。
图2解说了基于单向时钟信令跨高速串行链路传送和接收信号的收发机装置的示例。
图3解说了基于单向时钟信令传达高速串行数据的串行互连的示例SERDES收发机配置。
图4是根据各实施例的连接到串行链路的主设备执行单向时钟信令的示例方法的流程图。
图5是连接到串行链路的从设备执行单向时钟信令的示例方法的流程图。
图6是解说在串行互连系统上执行的示例操作的图示。
图7是解说高带宽、低等待时间串行互连系统的示例的图示。
图8是解说实现串行互连系统的分层模型的图示。
图9是解说两种类型的固定长度分组的示例分组结构的图示。
图10是解说物理层处的示例分组猝发结构的图示。
图11是解说物理层处对消息和数据分组进行示例128/130b编码的图示。
图12是执行串行点到点互连的方法的流程图。
图13是解说示例协议的方法的流程图。
图14是解说用于串行互连系统的示例流控机制的图示。
图15是解说MSG信道上的NACK消息和重试过程的示例的图示。
图16是解说成功数据传输的示例的图示。
图17是解说下行链路数据传输上的错误和重试的示例的图示。
图18是解说成功上行链路消息传输的示例的图示。
图19是解说上行链路消息传输上的错误和重试的示例的图示。
图20是解说流控消息上的错误以及由错误触发的重试的示例的图示。
图21是解说写事务序列的示例的图示。
图22是解说读事务序列的示例的图示。
图23是处置接收到的分组的方法的流程图。
图24是检查接收到的分组的错误的方法的流程图。
图25是处置接收到的请求的方法的流程图。
图26解说了能够在一个通道配置中周期性地重复的示例时序图。
图27解说了启用字节条带化的示例。
图28解说了数据分组格式和消息分组格式。
图29解说了单个物理通道处的示例数据链路层和物理层传输。
图30解说了三个物理通道处的示例数据链路层和物理层传输。
图31解说了可用于追踪高速串行链路的状态的示例状态机。
图32是示出示例功率状态和功率状态转换的示例状态图。
图33是解说主设备间链路PHY块的示例以及从设备间链路PHY块的示例的图示。
图34是解说一对示例控制器的概念框图。
图35是具有可编程分布式数据处理功能性的示例高速串行收发机。
图36是具有可编程分布式数据处理功能性的示例高速串行链路。
图37是解说链路内核的示例表示的图示。
图38解说了示例从外部回送测试模式。
图39解说了示例从内部回送测试模式。
图40解说了示例主内部回送测试模式。
图41解说了示例链路到链路回送测试模式。
图42解说了根据各实施例的示例双模串行接口。
详细描述
以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文所描述的概念的仅有配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的结构和组件以避免湮没此类概念。
现在将参照各种装置和方法给出串行互连系统的若干方面。这些装置和方法将在以下详细描述中进行描述并在附图中由各种块、组件、电路、过程、算法等(统称为“元素”)来解说。这些元素可使用电子硬件、计算机软件、或其任何组合来实现。此类元素是实现成硬件还是软件取决于具体应用和加诸于整体系统上的设计约束。
在一些实施例中,一些元素或一些元素的部分或元素的一些组合可以被实现为包括一个或多个处理器的“处理系统”,如本领域技术人员鉴于本申请将领会的。处理器的示例包括:微处理器、微控制器、图形处理单元(GPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上系统(SoC)、基带处理器、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立的硬件电路以及其他配置成执行本公开中通篇描述的各种功能性的合适硬件。处理系统中的一个或多个处理器可以执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。
相应地,在一个或多个示例实施例中,所描述的功能可被实现在硬件、软件、或其任何组合中。如果被实现在软件中,那么这些功能可作为一条或多条指令或代码被存储或编码在计算机可读介质上。计算机可读介质包括计算机存储介质。存储介质可以是能够被计算机访问的任何可用介质。作为示例而非限制,此类计算机可读介质可包括随机访问存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、光盘存储、磁盘存储、其他磁性存储设备、上述类型的计算机可读介质的组合、或能够被用于存储能够被计算机访问的指令或数据结构形式的计算机可执行代码的任何其他介质。
图1解说本公开在蜂窝电话100的示例实现中的各方面。蜂窝电话100可包括用户输入组件,诸如触摸屏102、按钮104等。蜂窝电话100内是底板106,其在图1中以放大视图解说以示出细节。底板106可以是例如其上附连有各组件的印刷电路板。例如,中央处理单元(CPU)108和存储器110可以被附连到底板106。CPU 108可以负责蜂窝电话100的通用处理任务,诸如在触摸屏102上显示图形用户界面,处理来自触摸屏和按钮104的用户输入,运行操作系统等。专门任务可以由其他组件执行,诸如专用集成电路(ASIC)112a-d。例如,ASIC112a-d可包括用于处理GPS信息的GPS ASIC,用于处理触摸感测数据的触摸ASIC等。CPU108和ASIC 112a-d可以通过总线114彼此通信。
处置RF传输和接收的任务可以由RFIC 118和BBIC 120执行。RFIC 118和BBIC 120可以通过信号线122彼此通信,信号线122可以是例如底板106上的金属迹线。RFIC 118可以连接到天线124以将由天线接收到的RF信号处理成下行链路数据并且将上行链路数据处理成要由天线传送的RF信号。BBIC 120可以连接到总线114以与底板106上的其他系统通信以便例如将下行链路数据路由到恰适的系统,对要被传送的上行链路数据排定优先级并进行调度等。
图1包括RFIC 118和BBIC 120的放大视图。RFIC 118可包括物理层(PHY)组件(在此处被简称为“PHY”)(诸如PHY 130)、数据链路层(DLL)组件(在此处被简称为“DLL”)(诸如DLL 132)、分组接口(PKTIF)134、模数/数模(ADC/DAC)转换器136、以及RF区段138。RF区段138可以连接到天线124。在其他实施例中,天线可以与RF区段集成。BBIC 120可包括PHY140、DLL 142以及互连桥144。放大视图示出信号线122可包括一个或多个上行链路(UL)信号线150和一个或多个下行链路(DL)信号线152。
对于下行链路通信,即蜂窝电话100从外部源(诸如蜂窝塔、GPS卫星等)接收通信,RF区段138可以处理通过天线接收到的模拟RF信号(下行链路信号),并且ADC/DAC转换器135可以将经处理的模拟下行链路信号转换成数字下行链路信号。分组接口134可以将数字下行链路信号分组化为数据分组。分组化是在计算机化的通信环境中向数据提供保护、标识、路由信息等的方式。例如,报头可以被包括在数据分组中以指示目的地地址,循环冗余校验(CRC)可以被添加到数据分组以在传输期间提供针对错误的保护等。分组接口134根据由互连桥144用于通过总线114进行数据传输的通信协议对下行链路信号进行分组化。该通信协议被附连到底板106的所有组件用于通过总线114进行通信。然而,在来自分组接口134的数据分组能够抵达互连桥144并且通过总线114被传送之前,数据分组必须通过下行链路信号线152从RFIC 118传送到BBIC 120。
跨下行链路信号线152的通信可以由不同的协议(即串行链路协议)管控。DLL 132和PHY 130可以进一步根据该串行链路协议对下行链路数据进行分组化。PHY 130可以跨下行链路信号线152传送被进一步分组化的数据。PHY 140可以接收被进一步分组化的数据,PHY 140和DLL 142可以对数据分组进行去分组化,并且互连桥144可以通过总线114传送数据分组。
类似地,对于上行链路通信,即蜂窝电话100向外部源传送通信,互连桥144可以通过总线114接收上行链路数据分组。DLL 142和PHY 140可以根据串行链路协议对上行链路数据分组进一步分组化,并且PHY 140可以跨上行链路信号线150传送上行链路数据分组。PHY 130可以接收上行链路数据分组,并且PHY 130和DLL 132可以对数据分组进行去分组化。分组接口134可以进一步对上行链路数据分组去分组化为上行链路信号,以使得信号能够被RF区段138正确地传送。ADC/DAC转换器136可以从分组接口134接收上行链路信号,将这些数字信号转换成模拟信号,并且将模拟上行链路信号发送到RF区段138以进行传送。RF区段138可以处理要通过天线124被传送的模拟RF信号。
根据本文公开的某些方面,提供了一种高级数字串行接口。该数字串行接口可以被实现在例如基带与移动通信设备等中的RF集成电路之间。
在各实施例中,数字串行接口可以基于物理层(诸如以上的PHY 130与PHY 140)之间的单向时钟信号来进行传送和接收。单向时钟信令可以例如有助于减小串行链路的功耗。下面参考图2-5描述单向时钟信令的各方面的示例。
在各实施例中,数字串行接口可包括串行链路协议,该串行链路协议被工程设计以优化RF和基带功能从而提供高速、低功率串行链路通信。下面参考图8-12描述此类串行链路协议的各方面的示例。
此外,各实施例可包括串行链路的物理层(诸如以上的PHY 130和/或PHY 140)中的可编程分布式数据处理器。可编程分布式数据处理器可以向原本固定的链路架构增加灵活性同时维持低功率操作。下面参考图33-37描述此类可编程分布式数据处理器的各方面的示例。
此外,各实施例可包括用于测试串行链路的嵌入式功能性。在一些实施例中,嵌入式测试可以部分地由可编程分布式数据处理器执行。下面参考图38-41描述嵌入式测试的各方面的示例。
图2解说基于单向时钟信令跨高速串行链路传送和接收信号的收发机装置200的示例。以此方式,例如,时钟信令电路系统的功耗与使用两个时钟相比可以较低。单向时钟信号可以被用于通过串行链路在主设备与从设备之间的通信的同步。就此,收发机装置200可包括链路从设备202和链路主设备204。链路主设备204将时钟信号(CLK)205发送到链路从设备202,并且高速串行链路上链路主设备与链路从设备之间的通信是基于CLK 205的。然而,链路从设备202不会向链路主设备204发送要用于高速串行链路上的通信的时钟信号。这是单向时钟信令的示例。
如此处所使用的,单向时钟信令由串行链路的一侧向串行链路的另一侧发送时钟信号来定义,其中串行链路上的通信是基于时钟信号的,并且该另一侧不会发送跨串行链路的通信所基于的时钟信号。同样,如此处所使用的,术语“单向时钟信号”指的是在单向时钟信令中被发送的时钟信号。
收发机装置200可包括RF区段206。RF区段206可包括与RF信号的传输和接收有关的各种电路系统。例如,RF区段106可包括一个或多个天线。附加地,RF区段206可包括一个或多个RF滤波器或其他RF处理电路。收发机装置200还可包括ADC/DAC 208,其可以被用于在ADC/DAC 208的ADC部分中将从RF区段206接收到的RF信号(模拟)转换成数字信号。例如,RF信号可以在RF区段206中在天线处接收。接收到的RF信号可以在RF区段206中被滤波或以其他方式被处理。接收到的RF信号(在诸如RF区段206中进行的滤波之类的任何RF处理之后)接着可以使用ADC/DAC 208中的ADC被转换成数字信号。如图2所解说的,在一些示例中,RF信号可以直接地而非在基带处从RF信号被转换成数字信号,或者从数字信号被转换成RF信号。接收到的RF信号的数字版本接着可以使用收发机装置20的其余部分进行数字化处理。
ADC/DAC 208还可在ADC/DAC的DAC部分中将数字信号转换成模拟信号。例如,由ADC/DAC 208从分组接口(PKTIF)210接收到的数字信号可以使用ADC/DAC的DAC部分被转换成RF信号(模拟)。由ADC/DAC 208从PKTIF 210接收到的数字信号的RF版本接着可以通过滤波或其他RF处理作为RF被处理。由ADC/DAC 208从PKTIF 210接收到的数字信号的RF版本可以使用RF区段206的一个或多个天线来传送。
图2解说了可以在链路从设备202与ADC/DAC 208之间传送的各个信号。例如,最终要使用RF区段206的一个或多个天线来传送的数字信号可以使用图2中解说的发射前端(TxFE)信号从PKTIF 210来发送。要由收发机装置200的剩余部分进一步处理的数字信号可以使用图2中解说的接收前端(RxFE)信号从ADC/DAC 208发送到PKTIF 210。ADC/DAC 208可以经由图2中解说的反馈接收机(FBRx)信号向PKTIF 210提供反馈。在包括定位/位置功能性的通信系统中,ADC/DAC 208还可使用图2中解说的全球导航卫星系统信号(GNSS)将GNSS信号提供给收发机装置200的剩余部分。
PKTIF 210可以被耦合到DLL 212,并且DLL 212可以向PKTIF提供对上行链路数据的访问。相反,DLL 212可以向链路物理编码子层(PCS)214提供对下行链路数据的访问。就此,链路PCS 214可以是驻留在串行化器-解串行化器(SERDES)收发机216顶部的链路协议子层以提供DLL 212与SERDES收发机216之间的接口。PCS 214和SERDES收发机216一起构成了链路从设备202的PHY 217。
SERDES收发机216可以从链路PCS 214接收下行链路数据,串行化下行链路数据,并且经由下行链路信号线219将串行下行链路数据传送到链路主设备204的SERDES收发机218。SERDES收发机216还可经由上行链路信号线220从SERDES收发机218接收串行上行链路数据,可以解串行化上行链路数据,并且可以将经解串行化的上行链路数据发送到链路PCS214。如上所述,链路主设备204与链路从设备202之间的该高速串行通信可以基于单向时钟信令。在该示例中,链路主设备204可以经由SERDES收发机218与216之间的串行链路将时钟信号205提供给链路从设备202。在一些实施例中,从链路主设备到链路从设备的时钟信号可以经由其他信道(诸如边带通信)来提供。
SERDES收发机218可以耦合到链路PCS 221。类似于链路PCS 214,链路PCS 221可以是驻留在SERDES收发机218顶部的链路协议子层以提供链路主设备204的SERDES收发机218与DLL 222之间的接口。PCS 221和SERDES收发机218一起构成了链路从设备202的PHY223。DLL 222可以将下行链路数据提供给互连桥224,并且互连桥可以将上行链路数据提供给DLL 222。互连桥224可以连接到其他设备,可以从这些其他设备接收UL数据并且可以向这些其他设备发送DL数据。在各实施例中,单向时钟信令可以提供若干优点。例如,通过消除一个或多个时钟来减少组件的数量能够减少引脚计数和所需的端口,这进而能够减少设备所驻留的印刷电路板上所要求的线缆数目。更少的组件还可减小IC面积并且降低噪声环境。在各实施例中,单向时钟信令可以有助于减小高速串行链路操作所需的功率。
收发机装置200还可包括其他功率节省功能性。例如,链路主设备204可以发起低功率模式,在低功率模式中链路主设备和链路从设备202进入低功率状态。在低功率状态中,SERDES收发机216和218不进行传送。当链路从设备202需要唤醒链路主设备204时,链路从设备可以使用可经由边带被发送到链路主设备的链路请求(link_req)信号226(即,不经由SERDES 216与218之间的串行链路)。同样地,链路主设备204可以使用链路使能(link_en)信号228(其可以是低有效信号)以使得设备间链路从设备202能够恢复串行链路通信。
图3解说了根据各实施例的基于单向时钟信令传达高速串行数据的串行互连300的示例SERDES收发机配置。串行互连300可包括充当从设备的SERDES收发机302以及充当主设备的SERDES收发机304。例如,在一些实施例中,图2的SERDES收发机216和218可以分别作为从设备302和主设备304来操作。
在一些应用中,带宽要求不是对称的。换言之,针对一个方向中的数据流相比于另一方向中的数据流可能要求较高带宽。例如,蜂窝电话用户通常下载的数据比他们上传的数据多得多。因此,蜂窝通信系统中下行链路数据带宽使用通常远高于上行链路带宽使用。在这些情景中,可以通过利用使用3个DL通道310、312、314以及1个UL通道316来提供相比于上行链路带宽更多的下行链路带宽。每一个通道可执行数据的串行到并行(S2P)转换,数据的并行到串行(P2S)转换,时钟恢复,以及相关联的功能。此外,每一个通道可以使用生成时钟、偏置和启动序列的共同块。
通道由一个差分信令对构成,无论是用于UL话务还是用于DL话务。因而,每一个通道由两个线缆、信号迹线、导电通路等构成。例如,DL通道310包括两个线缆340和342。DL通道310还包括从设备302处的发射机330和P2S组件334,以及主设备304处的接收机332、S2P组件336和时钟/数据恢复(CDR)组件338。发射机330通过两个线缆340和342将信息发送到接收机332。P2S组件334将信息从并行转换成串行格式以便由发射机330串行地传送。S2P组件336将由接收机332接收到的串行信息转换成并行格式以供进一步处理。CDR组件338执行时钟/数据恢复。
串行互连300可以被配置成生成数据链路层分组以供将信息传输到第二设备。生成数据链路层分组以供将信息传输到第二设备可包括执行下文参考图12的1202描述的操作。生成数据链路层分组以供将信息传输到第二设备可以由与主设备304或从设备302相关联的处理器执行。
串行互连300可以被配置成将数据链路层分组封装在一个或多个物理层帧内。将数据链路层分组封装在一个或多个物理层帧内可包括执行下文参考图12的1204描述的操作。将数据链路层分组封装在一个或多个物理层帧内可以由与主设备304或从设备302相关联的处理器执行。
串行互连300可以被配置成将一个或多个物理层帧传送到第二设备。将一个或多个物理层帧传送到第二设备可以在下文参考图12的1206描述的操作中执行。将一个或多个物理层帧传送到第二设备可以由P2S组件(例如334)、发射机(例如330)或线缆(例如340和342)执行。
串行互连300可以被配置成从第二设备接收时钟信号。从第二设备接收时钟信号可以由从时钟块322或时钟接收机350执行。传送一个或多个物理层帧可包括基于时钟信号进行操作。传送可进一步包括抑制时钟信号到第二设备的传输。
串行互连300可以被配置成将时钟信号发送到第二设备。将时钟信号发送到第二设备可以由主时钟块320或时钟驱动器352执行。传送一个或多个物理层帧可包括基于时钟信号进行操作。
串行互连300可以被配置成抑制从第二设备接收时钟信号。抑制从第二设备接收时钟信号可以由主时钟块320或时钟驱动器352执行。
串行互连300可以被配置成从第二设备接收至少一个物理层帧。从第二设备接收至少一个物理层帧可包括执行下文参考图12的1208描述的操作。从第二设备接收至少一个物理层帧可以由S2P组件(例如336)、接收机(例如332)、CDR(例如338)、或线缆(例如340和342)执行。
串行互连300可以被配置成基于至少一个物理层帧获得一个或多个数据链路层分组。基于至少一个物理层帧获得一个或多个数据链路层分组可包括执行下文参考图12的1210描述的操作。基于至少一个物理层帧获得一个或多个数据链路层分组可以由与主设备304或从设备302相关联的处理器执行。
串行互连300可以被配置成基于一个或多个数据链路层分组提取数据或消息。基于一个或多个数据链路层分组提取数据或消息可包括执行下文参考图12的1212描述的操作。基于一个或多个数据链路层分组提取数据或消息可以由与主设备304或从设备302相关联的处理器执行。
关于时钟块介绍非对称性。为了改进解决方案的稳定性,串行互连300具有使主SERDES 304将时钟提供到从SERDES 302的同步操作。
每一发射机串行化20比特并行接口。这通过具有可编程摆动电平的h桥驱动器来驱动。接收机能够访问线性均衡化。该设计提供了最大6Gbps的比特率。
串行互连300的SERDES取决于所要求的功率、性能和标准可支持以下功能:可编程Tx幅度;多个TX和Rx端接设置;多个功率状态;信号检测;广泛内置测试、可编程CDR开启和关断时间;用于快速频率切换的多个经校准锁相环(PLL)设置;多模BIST生成和BIST校验;用于测试数字电路系统的经复用扫描;多个回送;控制寄存器总线;直流联合测试行动小组(DC JTAG);与百万分之一(PPM)为单位的频率变动、码元间干扰(ISI)、以及有界不相关抖动(BUJ)相关联的片上抖动测试;用于Rx和Tx的20比特并行接口。
串行互连300的SERDES的一些规范为1e-16或更佳的误比特率(BER)(为达成该BER规范,对于板布局需要进行特别关注,例如,从RFIC到BBIC/从BBIC到RFIC的迹线的最大长度最大可以为6英寸,并且迹线的形状可以保持简单,例如,曲线可以被容忍,但尖角、通孔、连接器应当被最小化),所有通道可以以6Gbps在时钟缓冲器在功能模式中以3GHz运行的情况下来使用。
在该单向时钟信令示例中,主SERDES 304中的时钟块320充当时钟发射机并且取得由PLL(高速模式、正常运行的)提供的时钟或由IC(低速模式)提供的内部时钟,并且生成所需的中间时钟并将中间时钟发送到主SERDES中的所有RX和TX块以及经由时钟驱动器352将半速率时钟发送到从设备302。
在该单向时钟信令示例中,从SERDES 302中的时钟块322充当时钟接收机并且经由时钟接收机350接收由主设备304提供的时钟,生成所需的中间时钟并且将中间时钟发送到从SERDES 302中的所有RX和TX块。提供慢时钟模式(低速模式)以支持慢速操作。该模式可以例如在生产测试中使用以容纳测试员的限制。由于SERDES处置的高速信号,针对Tx和Rx缓冲器可能需要校准、端接设立。
出于解说单向时钟信令的益处的目的,图3还示出与常规双向时钟信令相比不需要的一些组件399(组件399以虚线绘制以指示该组件不在本设计中)。具体地,单向时钟信令可允许在从SERDES侧消除PLL和时钟驱动器以及在主SERDES侧消除时钟接收机。组件399的消除可导致功率节省,因为所有这些组件都需要功率来运行。另外,组件399的消除可以减小串行互连300的芯片面积,从而允许串行互连变得更小。最终,组件399的消除可以减少连接串行互连300所要求的引脚数目、端口数目以及线缆数目。
图4是根据各实施例的连接到串行链路的主设备(诸如图3的主SERDES 304)执行单向时钟信令的示例方法的流程图。主设备可以基于第一时钟生成(401)单向时钟信号,其中第一时钟是主设备中的时钟。例如,主SERDES 304可以基于主时钟块320来生成单向时钟信号。在一些实施例中,主设备可以生成与第一时钟相同速率的单向时钟信号。在一些实施例中,主设备可以生成是第一时钟速率的分数(例如半速率)的单向时钟信号。主设备可以将单向时钟信号发送(402)到连接至串行链路的从设备。例如,主SERDES 304可以经由时钟驱动器352来传送单向时钟信号。在一些实施例中,主设备可以通过串行链路将单向时钟信号发送到从设备。在一些实施例中,主设备可以经由另一信道(诸如边带)将单向时钟信号发送到从设备。主设备可以基于第一时钟通过串行链路将数据传送(403)到从设备。例如,主SERDES 304可以基于主时钟块320通过UL通道316将数据传送到链路从SERDES 302。
在一些实施例中,用于生成单向时钟信号的装置可包括第一时钟和可编程分布式数据处理器,在下文参考图33-37更详细地描述的。在其他实施例中,用于生成单向时钟信号的装置可包括控制链路的时钟信令的第一时钟和固定状态机。
在一些实施例中,用于发送单向时钟信号的装置可包括SERDES收发机,诸如SERDES收发机218。在其他实施例中,用于发送单向时钟信号的装置可包括时钟驱动器,诸如时钟驱动器352。
在一些实施例中,用于通过串行链路将数据传送到从设备的装置可包括SERDES收发机,诸如SERDES收发机218。
图5是根据各实施例的连接到串行链路的从设备(诸如图3的从SERDES 302)执行单向时钟信令的示例方法的流程图。从设备可以从连接到串行链路的主设备接收(501)单向时钟信号。例如,从SERDES 302可以经由时钟接收机350从主SERDES 304接收单向时钟信号。在一些实施例中,单向时钟信号可以通过串行链路接收。在一些实施例中,单向时钟信号可以经由另一信道(诸如边带)接收。从设备可以基于单向时钟信号通过串行链路将数据传送(502)到主设备。例如,从SERDES 302可以通过DL通道310将数据传送到主SERDES 304。在一些实施例中,从设备可以基于单向时钟信号来设置内部时钟,并且通过串行链路的数据传输可以基于该内部时钟。
应当注意,物理层的逻辑子块(例如PCS)可以提供用于在DLL与电气子块(例如,SERDES收发机块)之间进行对接的装置,并且可以提供用于在将经封装的DLL分组发送到电气子块以供(例如通过信号线)传输之前进一步封装数据链路层分组的机制。逻辑子块可以在分组信息被封装成帧(例如,130比特帧)之前对跨所有可用通道被复用、条带化并且加扰的分组信息进行复用。
逻辑子块可具有两个主区段:准备从数据链路层传递的传出信息以供由电气子块进行传输的发射区段;以及在将接收到的信息传递到数据链路层之前标识和准备接收到的信息的接收机区段。逻辑子块和电气子块可以通过状态和控制寄存器接口或等效的功能来协调每一收发机的状态。
串行互连的物理层可以使用128b/130b编码方案,这可以将开销限于每数据帧1.5%(相比于例如通过使用8b/10b编码所要求的20%开销)。帧大小是130单元区间(UI)。每一UI包含1比特信息。在130比特中,2比特携带帧同步码元,并且其余128比特携带数据码元(即128b/130b编码)。UI可以是用于传输1比特信息的恒定时间区间(UI是比特率的逆。在6Gbps,1UI=0.16ns)。帧可以是130比特(1个帧可以在单个通道中在130个UI中传送,并且帧可以包含128比特信息和2比特同步码元)。块可以是130比特乘以每通道的比特数目(1个块可以在130个UI中传送(在抗偏斜之后),并且该块可以每个通道包含128比特信息和2比特同步码元)。同步码元可以是2比特(同步码元可以在每一物理层帧开始处周期性地传送,并且同步码元可以被用于在物理层消息收发以及数据链路层消息收发之间进行区分,例如,01可以标识分组猝发帧(数据链路层通信)而10可以标识PHY猝发帧(物理层通信))。
在一些实施例中,用于从连接到串行链路的主设备接收单向时钟信号的装置可包括SERDES收发机,诸如SERDES收发机216。在其他实施例中,用于从连接到串行链路的主设备接收单向时钟信号的装置可包括时钟接收机,诸如时钟接收机350。在一些实施例中,用于基于单向时钟信号通过串行链路将数据传送到主设备的装置可包括SERDES收发机,诸如SERDES收发机216。
图6是解说在串行互连系统602上执行的示例操作600的图示。串行互连系统602可以例如为BBIC提供访问RFIC存储器和寄存器的低等待时间机制。BBIC主设备606可以最多向连贯的RFIC控制/状态寄存器(CSR)612写入1024比特数据。类似地,BBIC主设备606可以请求最多1024比特的连贯RFIC CSR位置612的读传递。所有RFIC 604发起的读和写传递跨串行互连系统602使用确保可靠传递的基于信用的流控机制来传递。
串行互连系统602提供调制解调器系统中RFIC 604与BBIC 606之间的全双工接口(上行链路和下行链路)。串行互连系统602的协议定义了数据和控制信息以分组化格式的传输。串行互连系统602的控制器实现该协议。串行互连系统602的SERDES提供高速串行传输机制。
串行数据在上行链路和下行链路方向上通过一个或多个通道来传输。所有数据通道同步操作并且共享同一标称带宽。串行链路的发射机侧与接收机侧之间的同步通过从BBIC 606发送到RFIC 604的共享时钟608来确保。使用单向时钟信号可以减小通过串行链路的数据传输和接收的功率,例如,因为少需要一个PLL。使用单向时钟信号还可减少设备所需的引脚数目。
在典型的基带中,下行链路数据话务要求比上行链路数据话务更多的带宽。由于带宽随着通道数目线性地缩放,因此带宽要求可以通过提供一个以上的数据通道来满足。
下行链路数据话务表示从天线接收到的、由RFIC 604中的ADC转换的、经滤波的、经下采样的、以及通过串行互连系统602被发送到BBIC 606的数据样本。存在多个独立的数据路径614,即接收机前端(RXFE)以及全球导航卫星系统(GNSS)内的经聚集载波。上行链路数据话务通过发射机前端(TXFE)数据路径,其具有比聚集下行链路数据路径总体上更低的带宽要求。串行互连系统602仅仅涉及数据的源和目的地,因此传入和传出数据缓冲器在串行互连系统602外部。所有数据经由统一接口被呈现给串行互连系统602。数据话务是实时话务。
除了数据话务,串行互连系统602还支持控制话务,控制话务包括访问RFIC 604上的存储器和CSR位置。尽管控制话务被给予高于数据话务的优先级,但对RFIC CSR 612的控制访问并不保证是固定等待时间的。
除了数据和控制话务,串行互连系统602还提供用于交换流控和中断消息的链路层消息收发机制。串行互连系统602中的消息不是直接由更上层来访问,并且由串行互连系统602的数据链路层整体消费。
图7是解说被优化以用于调制解调器芯片组、尤其用于BBIC与RFIC之间的通信的高带宽、低等待时间串行互连系统702的示例的图示。串行互连系统702被优化以实现低成本、低功率和低误比特率。串行互连系统702的主要目的是跨链路传递数据,包括BBIC706与RFIC 704之间的上行链路(UL)710与下行链路(DL)708。数据源和目的地点作为FIFO接口被呈现给串行互连系统702。串行互连系统702负责确保使用基于令牌的流控机制和重试的跨链路的可靠数据交换。
现在将参考8-12描述被工程设计以优化RF和基带功能以提供高速、低功率串行链路通信的串行链路协议。
图8是解说实现串行互连系统800的分层模型的图示。串行互连系统800可以是例如上文参考图1和2描述的串行链路。串行互连系统800使用分组来在各个层之间传达信息。分组被形成在分组化层802中以携带来自发射机(Tx)组件810中的数据源的信息或者去往接收机(Rx)组件812中的数据阱的信息。当所传送的分组流经链路层804和物理层806时,这些分组用在那些层处处置分组所必需的附加信息来封装。在接收侧,反向过程发生,并且分组从它们的物理层806和链路层804表示转变为能够被接收方设备的分组化层802处理的形式。
分组化层802负责以下功能:在用于每一逻辑端点的I/Q流和固定长度分组流之间进行转换;管理每一UL/DL分组的源/目的地地址;以及发出与每一UL/DL分组相关联的读/写请求。DLL 804负责以下功能:添加分组报头;添加用于CRC的冗余比特;跨串行链路追踪分组的流控信用;管理分组确收(ACK)和重试消息;DLL分组错误的错误校验、错误处置、错误报告;以及处置功率状态转换。
PHY 806被分成两个子块:逻辑子块814和电气子块816,即SERDES。PHY逻辑子块814负责以下功能:将DLL分组包装成块和帧/解除DLL分组的包装;SERDES的均衡和同步猝发的插入;向DLL分组流增加物理层帧化令牌;对DLL分组和PING PHY猝发加扰和解扰;在接收机处实施PHY层帧化规则;以及接收到的比特流的帧化和对齐。SERDES 816负责以下功能:在传送方设备处将并行数据转换成串行数据;以及在接收方设备处将串行数据转换成并行数据。
在一种配置中,串行互连系统800包括具有每个通道最大6Gbps原始带宽的串行接口。PLL的输出频率可以是可编程的。源同步时钟可以被用于串行互连系统800中的所有UL和DL通道。主SERDES具有PLL,并且将时钟转发给从SERDES。串行互连系统800可包括双数据率(DDR)时钟。对于6Gbps数据率,DDR时钟可以是最大3GHz时钟。串行互连系统800可包括针对RF减敏的扩频控制(SSC)支持(例如,中心扩频或下扩频)。串行互连系统800包括在空闲时段期间的功率节省状态。串行互连系统800的功率状态的范围可以从轻度睡眠到深度睡眠,从而提供不同级别的功率/退出等待时间折中。
在一种配置中,串行互连系统800的PCS可以使用128b/130b编码方案,其具有比由传统串行互连系统使用的8b/10b编码更低的开销编码。串行互连系统800使用2比特同步码元,这使得用于确定分组边界的帧化同步码元最小化。
在一种配置中,在进入和退出功率节省状态之际,串行互连系统800使用简单且稳健的消息收发(例如,针对链路训练定义的模式、加扰器操作、转换到低功率状态等)。串行互连系统800可以采用多通道操作。串行互连系统800可以使用通道条带化,其中跨所有可用通道来发送数据以获得针对分组猝发模式中的猝发错误的最优带宽利用率和稳健性。
在一种配置中,分组报头可包含信道标识(ID),其由CRC保护。串行互连系统的错误检测消除了分组路由到错误目的地的风险,并且触发重试机制。链路ID指定了每一端点的路由信息。
可以为数据样本和CSR访问分配多个链路ID。串行互连系统800可包括边带通信,例如,每一个方向上提供用于重置/唤醒以及错误恢复的机制的一个边带信号。串行互连系统800可包括ping模式。Ping操作将PHY和DLL层处的误比特率(BER)剖析分开。
DLL负责跨串行链路可靠地传输消息和数据分组。DLL可以执行数据交换。例如,DLL可以接受供传输的分组并且将它们传达到物理层。DLL还可以接受通过物理层接收的分组并且将分组传达到目的地。DLL可以执行错误检测和重试。例如,DLL可以为所有DLL分组执行分组序列号管理。DLL还可以为所有DLL分组增加CRC保护。DLL可以执行分组的数据完整性校验。例如,DLL可以生成肯定和否定确收。DLL还可以生成用于错误报告和日志机制的错误指示。
串行互连系统800可包括两种类型的DLL分组:数据分组或消息分组。数据分组可以被用于数据传递以及对RFIC CSR的读和写。消息分组可以包含跨串行链路在DLL层之间交换的消息。消息分组可以被用于事件信令和流控消息收发。
串行互连系统800中(来自从设备)的DL话务的示例可包括以双字为单位指定目的地地址、写数据(最大1024比特)和长度的RFIC从写请求事务、对应于先前(UL子链路上)BBIC读请求的读响应数据、从RFIC DLL实体到BBIC DLL实体以用于BBIC的事件(EVT)消息的消息、以双字为单位指定源地址和长度的RFIC读请求(RD_REQ)消息,以及去往BBIC DLL实体的流控消息。串行互连系统800中(去往从设备)的UL话务的示例可包括:对应于在DL子链路上由RFIC发出的读请求(RD_REQ)消息的读响应数据,以双字为单位指定目的地地址、写数据(最大1024比特)和长度的BBIC写请求,从BBIC DLL实体到RFIC DLL实体的消息,诸如用于RFIC的事件(EVT)消息,以及以双字为单位指定源地址和长度的BBIC读请求(RD_REQ)消息;EVT,以及去往RFIC DLL实体的流控消息。
串行互连系统800上的所有DLL传递由分组构成。
图9是解说由串行链路的DLL形成的两种类型的固定长度分组的示例分组结构的图示。这两种类型的分组是消息(MSG)分组910(同样也被称为DLL控制分组)和数据分组920。
MSG分组910具有56比特的固定长度,包括24比特报头、16比特有效载荷以及16比特CRC。MSG分组910的有效载荷可以被用于控制串行链路的各方面,并且有效载荷因此可以被称为控制消息。一旦DLL对控制消息分组化,经分组化的控制消息就可以被称为DLL控制分组(即,在DLL层经分组化的控制消息)。
数据分组920具有1080比特的固定长度,包括24比特报头、1024比特有效载荷以及16比特CRC。在各实施例中,消息和数据分组可以是独立的,并且可以在用于传输的链路上被复用,并且向MSG分组给予优先级。这可允许高优先级消息(诸如事件(EVT))以最小的延迟进行传送。
在下面的表1中描述根据各实施例的示例分组格式:
表1分组格式
Figure BDA0001748842370000191
每一分组具有消息区段和数据区段。消息和数据分组由16比特CRC保护。
下面在表2中描述根据各实施例支持的不同消息类型:
表2消息类型编码
描述
4’b0001 读请求(RD_REQ)
4’b0010 事件(EVT)
4’b0100 其他消息
4’b1111 流控消息
所有其他 保留
下面在表3中描述根据各实施例支持的不同数据传递类型:
表3数据类型
描述
4’b0001 写请求(WR_REQ)分组
4’b0010 读响应(RD_DATA)分组
4’b0100 其他数据分组
所有其他 保留
下面在表4中描述根据各实施例支持的不同数据/消息子类型:
表4消息子类型编码
描述
8’h00 确收_消息(ACK_MSG)
8’h01 确收_数据(ACK_DATA)
8’h08 否定确收_消息(NACK_MSG)
8’h09 否定确收_数据(NACK_DATA)
所有其他 保留
DLL层定义了每一方向中最多16个逻辑端点。每一端点被分配固定的“链路_id”。与端点相关联的所有分组使用该“链路_id”。带有1与15之间的链路_id的所有数据分组作为一类块传递来进行处理。具有被设为0的链路_id的数据分组被用于CSR读和写。与来自其他端点的数据分组相比,CSR访问在链路上被给予高优先级。下面在表5中描述根据各实施例支持的不同链路标识符:
表5链路标识符
Figure BDA0001748842370000211
DLL在每一子链路上为流控使用序列号。消息(MSG)和数据(DATA)分组使用分开的序列号。序列号通过发射机被添加到每一分组并且由接收机进行校验。
图10是解说根据各实施例的PHY处的示例分组猝发结构的图示。如图所示,在PHY,来自DLL的MSG分组910可以通过在前方添加8比特MPT令牌1002被进一步分组化以创建MSG分组1001,MSG分组1001可以被称为PHY控制分组。因而,MSG分组1001的总长度为64比特(即8比特MPT令牌1002长度加上56比特MSG分组910长度)。
类似地,8比特DPT令牌1004被置于来自DLL的数据分组920(1080比特)前面以形成数据分组1003。因而,数据分组1003的总大小为1088比特。
图11是解说根据各实施例的在具有双消息帧化的物理层处的消息和数据分组的示例128/130b编码的图示。在图11中示出的128b/130b编码中,两个MSG分组1001恰好能够容适进单个130比特的PHY帧1101中。换言之,128b/130b编码的封装长度是128比特,这恰好是PHY控制分组(即,MSG分组1001)长度的两倍。这一双消息帧化能够有助于提升消息传输的效率。具体来说,在其中消息被给予高优先级的系统中,在任何给定时间不会有超过两个消息在传输时隙队列中进行等待。
如图11所示,物理层处的编码包括通过在第一MSG分组1001a的前面添加2比特分组猝发同步码元1102来形成帧,第一MSG分组1001a被置于第二经封装MSG分组1001b的前面以形成130比特的PHY帧1101。PHY帧1101可以在所有有效载荷空间被填充之后被立即发送,因为两个64比特MSG分组恰好容适到PHY帧的128比特封装长度中。
图11还示出了被分组化为多个PHY帧1101b-n的单个数据分组1003,其中数据分组1003被分成多个部分并且各个部分被插入多个连贯的PHY帧1101b-n中。如图11所示,PHY帧1101b包括同步码元1102以及DPT、数据报头、以及数据分组1003的数据有效载荷的一部分。PHY帧1101c-n中的每一者包括同步码元1102以及数据分组1003的数据有效载荷的一部分。PHY帧1101n包括同步码元1102、以及数据有效载荷的最后一部分和数据分组1003的CRC,它们没有填充PHY帧1101n的整个128比特封装长度。因此,PHY帧1101n具有容适更多数据或消息的附加空间。
串行互连系统允许在处于分组猝发模式中时跨多个通道子链路的字节条带化(也被称为数据交织)。在一个以上通道上传送的数据被交织,这意味着传递中的每一字节在连贯的通道中被发送。本公开将此类交织称为字节条带化。条带化要求附加的硬件复杂度来对传入的经条带化字节进行抗偏斜,但是条带化可以按照与分组猝发的传递长度以及正被用于数据传递的通道数成比例的方式来显著地缩短等待时间。
图12是执行串行点到点互连的方法的流程图。该方法可以由第一设备执行,诸如图2的链路从设备202或链路主设备204。在1202,第一设备生成数据链路层分组以供将信息传输到第二设备。在一种配置中,DLL分组可以由图6的链路层604基于上文参考图9描述的分组结构来生成。
在1204,第一设备将数据链路层分组封装在一个或多个物理层帧内。在一种配置中,物理层帧可以由图6的物理层606基于上文参考图10描述的结构来生成。在一种配置中,一个或多个物理层帧中的每一者包括同步码元。同步码元长度与物理层帧长度之比可以为小于2到10。
在1206,第一设备将一个或多个物理层帧传送到第二设备。例如,第一设备可以是图2的链路从设备202,并且第二设备可以是图2的链路主设备204。在此类配置中,第一设备从第二设备接收时钟信号。例如,链路从设备202可以从链路主设备204接收时钟信号205。一个或多个物理层帧的传送可以基于时钟信号。时钟信号是单向的。因而,第一设备抑制时钟信号到第二设备的传输。
在1208,第一设备从第二设备接收至少一个物理层帧。在1210,第一设备例如通过图6的链路层604中的处理基于至少一个物理层帧获得一个或多个数据链路层分组。在1212,第一设备基于一个或多个数据链路层分组提取数据或消息。
在一种配置中,数据链路层分组是供数据传递的数据分组。数据分组的长度是1080比特,并且数据分组包括24比特报头、1024比特有效载荷以及16比特CRC。在一种配置中,数据链路层分组是用于事件信令和流控消息收发的消息分组。消息分组的长度是56比特,并且消息分组包括24比特报头、16比特有效载荷以及16比特循环冗余校验(CRC)。
在一种配置中,所有消息分组可以跨单个虚拟消息信道来进行流传输,并且所有数据分组可以通过虚拟数据信道来进行流传输。在此类配置中,虚拟消息信道和虚拟数据信道可以使用独立的流控机制。虚拟消息信道针对流控可以采用隐式确收,而虚拟数据信道可以采用基于信用的流控。
在一种配置中,每一物理层帧是130比特长,并且包括2比特同步码元。2比特同步码元在数据链路层分组之外。2比特同步码元可指示物理层的两种操作模式之一:分组猝发或物理层猝发。分组猝发被用于第一设备与第二设备之间的数据链路层通信。物理层猝发被用于物理层通信。在一种配置中,至少一个物理层帧可进一步包括8比特令牌,其使用于分组猝发的分组类型差异化并且使用于物理层猝发的物理层通信类型差异化。在一种配置中,物理通道帧在一个或多个物理通道上被传送或接收。
图13是解说根据各实施例的在具有双消息帧化的物理层处编码消息和数据分组的示例协议的方法的流程图。图13的方法可以例如由上述RFIC或BBIC来执行。设备可以是生成(1301)DLL控制分组以供将控制消息传输到第二设备。例如,DLL控制分组可以是图9的MSG分组910。每一DLL控制分组可具有DLL控制分组长度,DLL控制分组长度是固定长度。例如,MSG分组910的固定长度是56比特。设备生成(1302)PHY控制分组。每一PHY控制分组包括DLL控制分组和控制令牌之一。每一PHY控制分组的长度是DLL控制分组长度与控制令牌的控制令牌长度之和。例如,PHY控制分组可以是图10的MSG分组1001,其包括56比特MSG分组910和8比特MPT令牌1002,总长度为64比特。设备将PHY控制分组封装(1303)在帧中。每一帧包括具有码元长度的同步码元。每一帧的长度是码元长度和封装长度之和,并且封装长度是PHY控制分组长度的两倍。例如,PHY帧1101包括2比特的同步码元1102,并且在128比特的封装长度中进一步包括两个64比特MSG分组1001。设备将帧传送(1304)到第二设备。在一些实施例中,封装长度与每一帧的长度之比是64/65,例如,在上述的128b/130b编码中。
在一些实施例中,同步码元指示用于PHY的两种操作模式之一。操作模式包括用于设备与第二设备之间的数据链路层通信的分组猝发,以及用于物理层通信的物理层猝发。在一些实施例中,DLL控制分组长度是56比特,并且控制令牌长度是8比特。
在一些实施例中,设备可进一步生成DLL数据分组以供将数据传输到第二设备,其中通过来自存储器的读请求来获得数据,读请求返回固定数据长度的数据。此外,每一DLL数据分组可包括数据有效载荷,数据有效载荷具有的数据有效载荷长度是读请求所返回的数据的数据长度的倍数。设备可以生成PHY数据分组,其中每一PHY数据分组包括一个DLL数据分组和数据令牌,并且设备可以将PHY数据分组封装在帧中。在一些实施例中,数据有效载荷长度是1024比特。
用于生成DLL控制分组以供将控制消息传输到第二设备的装置可包括DLL,诸如DLL 212和222。
用于生成物理层(PHY)控制分组的装置可包括PHY,诸如PHY 217和223。
用于将PHY控制分组封装在帧中的装置可包括PHY,诸如PHY 217和223。
在一些实施例中,用于将帧传送到第二设备的装置可包括SERDES收发机,诸如SERDES收发机216和218。
图14是解说根据各实施例的用于串行互连系统的示例流控机制的图示。数据(DATA)传递1420实现块确收机制,其中一旦话务类的信用已经被耗尽,就发送ACK MSG1422。接收机还将每一DATA分组的序列号进行比较,并且如果接收机检测到非预期序列号就向DLL发送否定确收(NACK)消息。
MSG分组1410的确收策略略有不同。所有MSG分组共享一个共同的序列号。接收机隐式地确收每一MSG分组,并且仅在接收机检测到MSG分组的序列号错误的情况下才发送重试消息。在最后一个正确接收的MSG之后的所有消息必须被接收机丢弃并且被发射机重试。链路层控制(LLC)可以维护足够深的消息缓冲器以覆盖在传送方和接收方DLL实体之间的最差情形的往返延迟。
串行互连系统是RFIC与BBIC之间的点到点通信信道。ACK消息被用于进行基于信用的流控通信。流控在帧包的MSG和DATA信道之间独立地进行。消息(MSG)和数据(DATA)信道使用独立的流控机制。所有读请求事件消息和其他消息分组跨单个虚拟消息信道来仲裁和流传输。所有写请求和读响应分组跨DATA虚拟数据信道来仲裁和流传输。链路id字段被用于在数据和CSR访问之间进行区分。将所有数据话务编组到单个信用ACK队列中允许更高效的缓冲器管理以及更低的ACK响应开销。将CSR访问作为单独的话务类来处理能够通过避免由于数据分组引起的线头阻塞来实现跨串行链路的控制话务的低等待时间的传递。
串行互连系统可以使用基于信用的流控来确保在分组能够跨链路被发送之前,接收方侧具有接受该分组的足够缓冲器空间。如先前所述,互连的两侧交换MSG和DATA分组。MSG和DATA是独立的,它们必须对串行链路上的传送接入进行仲裁。在上电或重置之际,传输信用被初始化到最大值。每一次从RFIC传送数据分组到BBIC,RFIC应当减小其DATA信道信用。BBIC将处理数据分组并且周期性地向RFIC传送ACK MSG以确收所有正确接收的DATA分组。在接收到ACK消息之际,RFIC更新其信用计数器。类似的机制适用于CSR DATA信道。
作为对比,MSG传递1410不必采用基于信用的ACK方案。取而代之,所有MSG分组被假定为被正确接收。只要接收方DLL实体发现非预期MSG序列号,就发送NACK消息。
为了数据和控制信息的稳健交换,两种机制可以被内置于DLL分组中。每一DLL分组具有16比特CRC,并且一旦接收到分组,就针对预期CRC校验CRC。而且,MSG部分和DATA部分两者都携带8比特的(序列号)Seq_num字段,当分组在发射机侧组装时该字段在MSG和DATA信道上独立地递增和维护;并且接收机侧校验接收到的MSG/DATA Seq_num以确保没有丢失的MSG或DATA。只要检测到CRC错误或脱序MSG/DATA Seq_num,接收机侧会向发射机侧报告错误状态。在接收到该错误报告之际,发射机侧将尝试重新发送MSG/DATA。
该错误报告和重试机制可能要求发射机侧在那些MSG/DATA已经被发送之后也保留MSG/DATA的缓冲器,以防链路上发生错误而它们没有被成功接收。另一方面,当MSG/DATA被成功接收并且推送进入iMSG/iDATA缓冲器1414/1424时,接收机侧可以向发射机侧报告,以使得发射机侧可以释放由那些MSG/DATA占据的位置并且释放其eMSG/eDATA缓冲器1412/1422上的空间。在串行互连的两侧具有足够的eMSG和eDATA缓冲器并且在两侧对iMSG或iDATA缓冲器的出栈都具有很少的回推时,流控(FC)消息可用作对正确接收的MSG/DATA的保守且频繁的状态报告,并且发射机侧可能仅仅需要保留信用_指针(Credit_ptr)与写_指针(Wr_ptr)之间的内容。
特殊消息类型NACK被定义为用于报告收到分组的错误以及用于请求重试。在表6中解说根据各实施例的NACK消息的示例定义:
表6 NACK消息定义
Figure BDA0001748842370000261
为了确保NACK消息被传达到另一侧,每一个生成的NACK消息可能经受三重传输保护:发射机将同一NACK消息传送三次;并且接收机可以组合和合并三个连贯的NACK MSG以形成重试动作。如果CRC在三个NACK消息中的任一者上失败,则失败的有效载荷将被丢出并且在有效载荷组合时不被使用。
图15是解说根据各实施例的MSG信道上的NACK消息和重试过程的示例的图示。DATA信道上的NACK消息被类似地处置。注意,一旦远程DLL实体检测到一个收到分组上的错误,则同一信道上的之后的分组将不会被推送进入iMSG/iDATA缓冲器,直到NACK消息的三次传输完成,并且稍后接收到的MS/DATA是正确的且具有与最后被推送的MSG/DATA连续的序列号(seq_num)为止。
在此示例中,串行互连的接收机侧的去分组化器1503提取序列号为4的MSG。在该MSG上检测到错误。接收机侧接着生成NACK消息以指示序列号等于4的MSG上的错误。在接收到NACK消息之际,发射机侧将读_指针(Rd_ptr)倒回指向MSG 4以进行重试/重传。
图15中描述的NACK/重试过程可以保护串行互连两侧交换的基本消息和数据。然而,如果包含FC消息的分组上发生错误,则FC消息没有重试,因为它们在传输期间不被推送进入eMSG缓冲器中。为了保护包括FC消息的混合消息,可以添加以下协议:如果一侧检测到分组上的错误并且发出NACK消息,在NACK消息正被传送的同时,该侧仍然需要处理正确接收的FC消息(如果存在);当相对侧接收到NACK消息时,该相对侧应当通过立即传输FC消息来作出响应。图16-20在下文解说了该NACK-FC重试协议。
图16是解说根据各实施例的成功数据传输的示例的图示。在该示例中,在BBIC1604处成功接收数据分组0-3之际,BBIC向RFIC 1602发送消息分组0。消息分组0指示BBIC1604已经接收到数据分组0-3,并且在BBIC 1604处要接收的下一数据分组的预期序列号为4。
图17是解说根据各实施例的下行链路数据传输上的错误和重试的示例的图示。在该示例中,RFIC 1702将数据分组6-10按顺序发送到BBIC 1704。在数据分组7的传输期间,发生比特错误(例如,CRC失配或非预期序列号)。作为对数据分组7上的比特错误的响应,BBIC 1704丢弃接收到的数据分组8-10,并且发送NACK消息以指示数据分组7上的错误。在RFIC 1702处接收到NACK消息之际,RFIC将FC消息发送到BBIC 1704。稍后,RFIC 1702将数据分组7-10重新发送到BBIC 1704。
图18是解说根据各实施例的成功上行链路消息传输的示例的图示。在该示例中,在RFIC 1802处成功接收消息分组9和10之际,RFIC向BBIC 1804发送消息分组1。消息分组1指示RFIC 1802已经接收到最多序列号为10的消息分组,并且在RFIC 1802处要接收的下一消息分组的预期序列号为11。
图19是解说根据各实施例的上行链路消息传输上的错误和重试的示例的图示。在该示例中,BBIC 1904将消息分组9-11按顺序发送到RFIC 1902。在消息分组10的传输期间,发生比特错误(例如,CRC失配或非预期序列号)。作为对消息分组10上的比特错误的响应,RFIC 1902丢弃接收到的消息分组11,并且发送NACK消息以指示消息分组10上的错误。在BBIC 1904处接收到NACK消息之际,BBIC将FC消息发送到RFIC 1902。稍后,BBIC 1904将消息分组10和11重新发送到RFIC 1902。在RFIC 1902处成功接收消息分组10和11之际,RFIC将消息分组n+1发送到BBIC 1904。消息分组n+1指示RFIC 1902已经接收到最多序列号为11的消息分组,并且在RFIC 1902处要接收的下一消息分组的预期序列号为12。
图20是解说根据各实施例的流控消息上的错误以及错误触发的重试的示例的图示。在该示例中,RFIC 2002在消息分组6和7之间将FC消息分组发送到BBIC 2004。在FC消息分组的传输期间,发生比特错误(例如,CRC失配)。响应于FC消息上的比特错误,BBIC 2004丢弃接收到的消息分组7和8,并且发送NACK消息以指示FC消息分组上的错误。在RFIC 2002处接收到NACK消息之际,RFIC将FC消息发送到BBIC 2004。稍后,RFIC 2002将消息分组7和8重新发送到BBIC 2004。
图21是解说根据各实施例的写事务序列的示例的图示。WR_REQ发起该序列,数据信道的ACK_RESP指示WR_REQ被接收到并且数据被发布以被提交到目的地。为所有DL DATA传输维持单个流控信用,并且单个流控信用被用于所有UL DATA事务。
图22是解说根据各实施例的读事务序列的示例的图示。读事务作为具有类型RD_REQ、RD_RESP对以及RD_DATA、RD_DATA_RESP对的拆分事务来处理。每一类型对维持具有ACK方案的单独的流控。由于消息和数据总是按顺序被接受,因此这允许拆分事务内的每一对被独立地追踪。在此示例中,拆分事务被示为在时间上分开的2对,并且每一对在错误处置和重试方面被分开地处置。
RD_REQ发起序列;RD_RESP指示RD_REQ已经被接收到。当RD_REQ被接收到时,响应方还激活RD_DATA。一旦从源检索到读数据,读数据就作为数据分组(RD_DATA)被发送。当RD_DATA被接收到时,RD_DATA_RESP被发送回。用于RD_REQ、RD_RESP以及RD_DATA、RD_DATA_RESP的ACK和流控被分开处置。
中断消息事务将具有INT消息类型,并且流控信用类似于RD_REQ。中断消息应当跨消息信道来仲裁和流传输。重试和错误处置机制与RD_REQ相同。功率管理消息被用于支持串行互连的功率状态事务。错误信令消息被用于用信号指示在特定事务上发生的错误以及不一定与特定事务相关联的错误。这些消息由检测到错误的代理来发起。
图23是根据各个实施例的处置接收到的分组的方法的流程图。该方法可以由设备(例如,本文描述的BBIC或RFIC)来执行。在一种配置中,当接收到的分组从接收数据链路层被递送到接收事务层时,在DLL已经验证了接收到的分组的完整性之后,接收到的分组通过该方法来处置。在2302,设备确定分组是否遵守格式。如果分组遵守格式,则设备前进到2304,否则前进到2306。
在2304,设备确定分组的类型值是否被定义。如果类型值被定义,则设备前进到2308,否则前进到2306。
在2306,设备确定分组是坏的,丢弃该分组,并且报告坏分组。该方法随后结束。
在2308,设备更新流控追踪。在2310,设备确定分组是否是请求。如果分组是请求,则设备处置该请求。如果分组不是请求,则分组是完成态并且设备处置该完成态。
图24是根据各个实施例的校验接收到的分组的错误的方法的流程图。该方法可以由设备(例如,BBIC或RFIC)的DLL来执行。在2402,设备确定PCS是否指示分组的任何接收到的错误。如果指示至少一个错误,则设备前进到2406,否则前进到2404。在2406,设备丢弃该分组。该方法随后结束。
在2404,设备使用接收到的不包括CRC字段的分组数据来计算CRC。在2408,设备确定计算所得的CRC是否等于分组中接收到的CRC。如果CRC匹配,则设备前进到2410,否则前进到2412。
在2410,设备处理该分组。该方法随后结束。在2412,设备丢弃该分组并且报告错误。该方法随后结束。
图25是根据各个实施例的处置接收到的请求的方法的流程图。该方法可以由设备(例如,本文描述的BBIC或RFIC)来执行。在一种配置中,在关于所有事务层分组的初始处理之后,接收到的请求通过该方法来处置。在2502,设备确定请求类型是否被支持。如果请求类型被支持,则设备前进到2506,否则前进到2504。
在2504,设备识别出请求是不受支持的请求。在2508,设备确定请求是否要求完成。如果请求要求完成,则设备前进到2510,否则该方法结束。在2510,设备发送完成并且该方法结束。
在2506,设备确定请求类型是否是MSG。如果请求类型是MSG,则设备前进到2512,否则前进到2514。
在2512,设备确定MSG中的有效载荷是否被定义。如果MSG中的有效载荷被定义,则设备前进到2518,否则前进到2516。
在2516,设备处理该MSG。该方法随后结束。在2518,设备处理该MSG。该方法随后结束。
在2514,设备确定请求是否违背协议。如果请求违背协议,则设备前进到2522,否则前进到2520。
在2520,设备处理该请求。在2524,设备确定请求是否要求完成。如果请求要求完成,则设备前进到2526,否则该方法结束。在2526,设备发送完成并且该方法结束。
在2520,设备确定请求是否要求完成。如果请求要求完成,则设备前进到2528,否则该方法结束。在2528,设备发送完成并且该方法结束。
对于读请求,数据作为具有1024比特固定长度的数据分组来返回,无论读请求所请求的比特数是多少。数据分组报头中的长度字段指示由数据分组携带的有效字数:对于数据样本,有效载荷总是32个字(1024比特);而对于CSR事务,长度将以双字为单位来指示要被生成的猝发的大小。
在任何拆分事务协议中,存在与请求方无法接收预期完成相关联的风险。为了允许请求方以标准方式从此情景中尝试恢复,定义了完成超时机制。该机制旨在仅在对于完成返回没有合理预期的情况下被激活,并且在正常操作状况下应当从不发生。
串行互连系统的物理层实现以下功能:通过提供在PHY猝发(物理层通信)或DLL猝发之间进行区分的同步码元插入的128b/130b编码;从BBIC到RFIC的STMR同步;Rx通道帧对齐和多通道抗偏斜;均衡化;用于快速唤醒、休眠唤醒、初始引导和恢复的训练序列,涉及均衡化、CDR和对齐;物理层令牌插入,包括空闲链路(IDL);用于追踪PHY错误的物理层统计计数器的维护;低速(LS)模式和高速(HS)模式处置。PHY处置来自/进入能够被物理层和更上层进一步处理的数据块的SERDES数据的分组化和去分组化;加扰数据链路层通信(加扰可以被用于使EMI在串行互连上通过的信号的频率内容“白化”并且减小任何一个特定频率处的辐射功率,并且加扰可以在每个通道的基础上进行);跨活跃通道的字节数据的条带化和去条带化;以及SERDES与数据链路层(控制器)域之间的异步时钟交叉。
图26解说了根据各实施例在一个通道配置中能够每130个UI(有效载荷内容可以改变)周期性地重复的示例时序图。128b/130b封装在物理层内处置。存在用于物理层的两种操作模式。每一操作模式由其自己的2比特同步报头来定义,该2比特同步报头定义了链路的具体操作模式。每一操作模式的令牌被附加到每一传递以进一步对跨链路发送的数据进行分类。第一操作模式是分组猝发,它被用于BBIC与RFIC之间的数据链路层通信。第二种类型的操作模式是PHY猝发,用于物理层通信。分组和通道之间的区分通过两个同步码元比特来完成:同步码元0x01指示分组猝发,而同步码元0x10指示PHY猝发。
分组猝发被用于数据链路层通信。分组猝发可以包含数据、数据分组形式的配置数据、或中断、DLL通信、ACK/NACK、ping、以及消息形式的数据请求。分组猝发由2比特同步报头(0x01)来定义。8比特令牌对分组类型进行区分。令牌被置于每一传递的同步码元之后的第一字节中。在分组猝发中,同步码元不被加扰,而令牌和有效载荷总是被加扰。
分组猝发具有两个子类型:消息分组,包括中断、ACK/NACK、读请求、ping、以及DLL通信;以及数据分组,存储器映射传递、配置访问和IQ样本数据。
分组猝发格式遵守这些规则:8比特的令牌被加扰并且受到三位翻转保护,有效载荷被加扰并且受CRC保护,而EPB令牌必须作为要切换到PHY猝发的指示来发送并且被要求是在切换到PHY猝发操作模式之前传送的最后一个字节,在该令牌与PHY猝发报头之间没有空闲。下文在表7中描述根据各实施例的分组猝发令牌的示例列表:
表7分组猝发令牌的列表
Figure BDA0001748842370000311
图27解说了根据各实施例的跨三个通道启用字节条带化2700以及禁用字节条带化2750的示例。在启用字节条带化2700中,传递中的每一字节在连贯通道中发送。例如,MPT令牌在通道0中发送,MPT令牌之后的第一字节在通道1中发送,MPT令牌之后的第二字节在通道2中发送,MPT令牌之后的第三字节在通道0中发送,并且以此类推。
加扰器能够显著降低连续的0或1的长扫描宽度的概率。加扰器还对功率频谱进行扩频,并且因而能够避免分立频率处的毛刺。
串行互连系统应当支持具有以下生成多项式的加扰器:
G(X)=X23+X21+X16+X8+X5+X2+1
该加扰器的重复周期是224-1UI=16777215。只有数据字节应当被加扰,同步码元和令牌保持未加扰。帧中的比特数为128,重复周期因此是131072帧。
加扰器通过在PHY猝发结尾处的SPB令牌中使用特殊有效载荷来进行重置,加扰器将独立于每一字节上的数据而在每一字节上进行更新,除非在使用BSV PHY猝发的情况下。以此方式,发射机和接收机两者都应当从不失步。链路上可能发生比特错误,但假定发射机和接收机上的130比特数模式,LFSR应当总是匹配。一些示例配置包括:加扰器每个通道独立运作,且一个通道一个加扰器;加扰器在分组层数据和PHY传递BSV中使用;2比特同步码元、令牌和PHY猝发数据不被加扰;数据的每一字节被唯一的24比特LFSR值加扰;LFSR值被冻结并且在BSV PHY猝发期间被广播;令牌和同步码元在PHY猝发模式中从不被加扰,并且令牌在分组猝发模式中被加扰;SPB令牌上的特殊有效载荷重置加扰器,并且当错误导致发射机和接收机失步时使用该重置。
图28解说了数据分组格式2800和消息分组格式2850。字节1111_1111b指示数据分组传递(DPT)令牌。该令牌被用于对携带数据样本的数据分组、配置数据、DLL数据或RFIC与BBIC之间的其他存储器映射数据进行帧化。DPT大小为1088比特(8比特令牌+1080数据分组有效载荷)。数据分组有效载荷结构的细节在上文参考图9进行描述。
字节0000_1111b指示消息分组传递(MPT)令牌。该令牌被用于将消息分组作为分组猝发的一部分进行帧化。消息分组传递被用于传送RFIC与BBIC之间的中断、ACK/NACK、读请求、ping、以及DLL通信。MPT大小为64比特(8比特令牌+56比特消息分组有效载荷)。消息分组有效载荷结构的细节在上文参考图9进行描述。
字节0000_0000b指示空闲(IDL)链路令牌。空闲令牌在分组猝发期间使用以填充未被消息传递、数据传递或分组猝发传输期间分组猝发令牌结尾占据的间隙。该分组被加扰。Ping模式用于检测链路状态并且每个通道运行BER分析。空闲模式还用于跨链路上的所有通道发送已知有效载荷加扰序列,因为每一通道被要求具有带不同LFSR模式的单独加扰器逻辑,这种设置允许在每个个体通道上进行独立的错误剖析。
由1111_0000b表示的EPB令牌用于描述从数据链路层通信到物理层通信的切换。该令牌必须是在切换到物理层通信(PHY猝发操作模式)之前的最后一个数据字节。
PHY猝发被用于物理层通信。PHY猝发可包含均衡化、CDR和对齐信息、指示分组猝发的开头、用信号指示传输的开头或结尾、跨链路发送统一计时器值并且提供供追踪工具追踪加扰器中的LFSR模式的方式。
PHY猝发由2比特同步报头(0x10)来定义。8比特令牌对PHY层通信类型进行区分。令牌被置于每一传递的同步码元之后的第一字节中。在PHY猝发中,令牌或有效载荷均不加扰。
PHY猝发具有多种PHY到PHY通信的子类型:STS-系统计时器同步;SPB-分组猝发的开头;BSV-广播加扰器值;EOT-传输结尾;SOT-传输开头;SYNC-高速模式中CDR的开头;EQ-均衡化模式。
PHY猝发格式遵守这些规则:8比特令牌不被加扰;对于任何PHY猝发,有效载荷不被加扰;所有猝发由每个活跃通道1个数据帧(130比特)构成,除非可以是具有可变长度的BSV;多通道链路的所有通道必须同时传送带相同同步码元和令牌的帧;取决于传递类型,有效载荷将是每字节重复模式或三重冗余;SPB令牌必须作为从PHY猝发切换到分组猝发的指示来发送并且SPB令牌被要求是在切换到分组猝发操作模式之前传送的最后一个字节;对于BSV排序集的字节,LFSR不提前,对于所有其他字节LFSR被提前。
下文在表8中示出根据各实施例的示例PHY猝发令牌列表:
表8 PHY猝发令牌列表
Figure BDA0001748842370000331
2Dh定义STMR同步令牌(STS)。STMS同步传递被用于在BBIC与RFIC之间同步统一计时器值。所递送的值是三重冗余的,并且该值与STMR计数器的上采样相位P0一起发送进入RFIC以允许各组件之间的正确同步。
E_1h指示分组猝发的开头(SPB)。该令牌被用于从PHY猝发转换到分组猝发模式和数据链路层通信。分组猝发的开头是在切换到分组猝发操作模式之前通道上发送的最后一个帧。
广播加扰器值PHY猝发发送LFSR值以帮助追踪工具达成块对齐。该值以三重冗余的方式来发送。在BSV传递期间,每一字节上LFSR值不会提前,而在任何其他传递期间,LFSR会提前。BSV在每个通道的基础上提供LFSR加扰器值。
令牌66h指示PHY猝发操作模式期间传输的结尾。该令牌在发射机进入电气空闲之前被发送出去。EOT令牌的接收机应当忽略在EOT令牌已经被接收到之后的所有数据,直到接收到EQ、SYNC或SOT令牌。
传输的开头由具有低频0->1->0->1模式的帧来定界。该模式被用于在链路上启动任何其他非初始化话务之前的通道和块对齐。该模式还被用于在启动分组猝发模式操作之前重启加扰器逻辑。
使用全部字节使用AAh模式的帧的同步模式被用于接收机进行的时钟和数据恢复。该帧将按链路需要尽可能多次地被发送出去。在低速模式中链路的第一次初始化期间,每一次链路被初始化时要发送的CDR帧数必须被配置。
均衡化模式被用于减少码元间干扰,并且允许链路中传送数据的可靠恢复。均衡化帧由A5h模式构成,该A5h模式使用加扰器的LFSR模式来帮助模拟电路系统以最优的方式完成均衡化过程。在均衡化规程期间要被发送的EQ帧数必须经由消息收发来编程。
从帧到物理通道的映射规则是复杂的,以下解说了猝发映射到链路的物理通道的两个示例。在表10中,可以观察到分组猝发的映射。在以下的表9和10中,描绘了根据各实施例的示例PHY猝发:
表9分组猝发映射到物理通道
Figure BDA0001748842370000341
Figure BDA0001748842370000351
Figure BDA0001748842370000361
表10 PHY猝发映射到物理级
Figure BDA0001748842370000362
Figure BDA0001748842370000371
图29解说了根据各实施例的在单个物理通道209处的示例数据链路层和物理层传输。在该示例中,PHY猝发2910之后是分组猝发,分组猝发包括分组2904和2906。PHY猝发2910结束于SPB令牌2914,SPB令牌2914指示在将操作模式从PHY猝发切换到分组猝发之前的最后一个帧。存在在分组2904和2906之间传送的若干IDL令牌2916。分组2906之后是EPB令牌2918,EPB令牌2918指示从分组猝发到PHY猝发操作模式的切换。EPB令牌2918之后是PHY猝发2912,PHY猝发2912之后是包括分组2908的另一分组猝发。分组2908之后是EPB令牌2922,EPB令牌2922之后是EOT令牌2920,EOT令牌2920指示在将通道2902置于电气空闲之前的最后一个帧。
图30解说了根据各实施例的在三个物理通道1-3处的示例数据链路层和物理层传输。在该示例中,物理通道1-3中的每一者开始于PHY猝发3010。对于PHY猝发3010中的每一帧,同步码元是“10”。PHY猝发3010之后是分组猝发3012。对于分组猝发3012中的每一帧,同步码元是“01”。分组猝发3012包括消息分组3001和三个数据分组3002-3004。分组字节在物理通道1-3上进行条带化。每一分组开始于一个令牌。例如,消息分组3001开始于MPT令牌3020,而数据分组3003开始于DPT令牌3022。在通道1-3中的每一者上,分组猝发3012之后是EOT令牌3026。
链路均衡化在上电之后链路的第一次启用期间完成。均衡化的目的在于减少码元间干扰以确保高速传送数据的可靠恢复。均衡化必须在每一次链路被下电并且被再次上电在高速模式中操作之前完成,并且在任何其他时间没有必要进行执行。在一种配置中,当处于PHY猝发模式中时,链路均衡化可以在任何时间进行。均衡化时间是可变的,并且取决于技术和过程偏斜而逐芯片且逐部件地改变。链路花费在均衡化规程中的时间量是可经由低速模式编程来配置的。当串行互连第一次在移动到任何其他高速状态之前从高速深度睡眠状态中苏醒时,可能需要进行均衡化。
时钟数据恢复(CDR)序列调整每一通道的接收机设置以改进信号质量并且通过将时钟与数据眼的中心对齐来满足所要求的信号完整性。CDR必须在串行互连的第一次高速苏醒期间执行。即便在每一次从任何睡眠转换到活跃模式时不要求重复CDR以实现可靠操作,DLL仍然将具有在任何时间重复该规程的选项。在以下条件之后可能需要CDR:链路第一次从低速移动到高速操作;每一次从高速睡眠转换到高速猝发;每一次从高速深度睡眠中转换出来。
通道对齐被用于在数据已经被解串行化器处理以检测帧边界之后在接收机中可靠地构建数据。块对齐被用于通过检测链路中每一数据通道之间的恰适偏斜来可靠地构建逻辑数据。
图31解说了根据各实施例的可被用于追踪高速串行链路的状态的示例状态机。在设备上电3100,链路进入上电状态3101。链路可以转换到从设备检测状态3103。链路可以从从设备检测状态3103转换到配置状态3105。链路可以从配置状态3105转换到活跃状态3107。附加状态包括轻度睡眠状态3109、深度睡眠状态1311和恢复状态3113。状态之间的移动通过各种外部因素来确定,包括序列、外部输入和错误。
两个边带信号可以被用于控制串行互连的操作状态。这些信号可以是低速、主要为静态的信号,它们指示串行互连所处的状态和/或串行互连将移动到的状态。在一些实施例中,边带信号可以是如上参考图2描述的link_en和link_req。在该示例中,link_en可以从主设备(例如BBIC)发送到从设备(例如RFIC),并且可具有两种用途,第一种在冷引导时而第二种在标准操作期间。在冷引导时,从设备侧处的定序器可以使用ROM代码来遵循作为到从设备的输入定义的策略link_en来引导,link_en预期为‘0b。在link_en在上电重置(POR)时被设为‘1b的情形中,则正常引导序列将不会执行,并且从设备将进入“测试/调试”模式,并且基于POR时的通用输入/输出(GPIO)设置,RF前端(RFFE)或其他调试特征将被激活。在操作期间,RFIC可以是BBIC的从设备,并且SERDES PHY时钟可以由BBIC提供。从设备知晓SERDES时钟是否可用、准备好进行操作(意味着SERDES时钟能够被从SERCES PHY使用)的唯一方式是检测link_en上的‘1b。因此,遵循功率策略,主定序器将根据SERDES PHY时钟的状态来断言link_en。
关于link_req信号,该信号可以从从设备(例如RFIC)被发送到主设备(例如BBIC)。当串行互连已经被关断(即被置于睡眠模式中以节省功率)但从设备仍然活跃以使得RxFE、TxFE正在造成/消耗数据并且中断/事件正在被生成时,从设备可能需要在由主设备控制的标准苏醒策略将串行互连置回活跃之前向主设备发送信息。为了重新建立话务,link_req将由从定序器控制,并且将触发主定序器以唤醒串行互连,这意味着重启遵循所定义的策略的高速模式话务。
下文在表11中示出根据各实施例的链路功率管理状态的示例列表:
表11示例链路功率管理状态
Figure BDA0001748842370000391
下文在表12中示出根据各实施例的基于表11中的功率状态定义的示例功率状态:
表12示例功率状态
Figure BDA0001748842370000401
QL0可以是高速操作链路。数据和消息可以被接收和传送。速度、配置(通道数)、以及受支持的功率节省能力可以在先前进行协商。在从QL1进入QL0状态时(即在链路速度发生改变时),主设备可以将ping发送到从设备。如果链路是单向的达某一时间段,则QL0可具有允许某种低等待时间功率节省的一个或多个QL0x子状态。QL0ls可以是高速轻度睡眠。一个或两个子链路可使发射机处于电气空闲,而其他方的接收机打开并且准备好接收数据。QL0s可以是高速睡眠。一个或两个子链路可使发射机处于电气空闲,而其他方的接收机处于sig_det模式。。QL0p可以是高速链路下电/休眠/深度睡眠。在QL0p中,以增大的恢复等待时间为代价可以更激进地节约功率。零个或更多个QL0p状态可以被定义,但如果支持一个或多个QL0p状态,则这些状态之间的转换必须经过QL0。
QL0l可以是高速回送测试模式。到这一状态的转换可以来自QL0状态。从这一状态转换出可以去往QL0p或QL0并且留待实现确定。
QL1可以是基速操作链路。强制基础能力通信链路能够被所有当前和将来设备支持。希望这是以所有设备的最低支持速度操作的单个通道全双工(双单工)链路。在从QL0进入QL1(即,链路速度发生改变)之际或者从QL2进入QL1(设备上电,自从重新引导以来链路第一次启用)之际,主设备会将ping发送到从设备。如果链路是单向的达某一时间段,则QL1可具有允许某种低等待时间功率节省的一个或多个QL1x子状态。QL1ls可以是低速轻度睡眠。一个或两个子链路可使发射机处于电空闲,而其他方的接收机打开并且准备好接收数据。QL1s可以是低速睡眠。一个或两个子链路可使发射机处于电空闲,而其他方的接收机处于sig_det模式。QL1p可以是基础链路下电/休眠/深度睡眠。零个或更多个QL1p状态可以被定义,但如果支持一个或多个QL1p状态,则这些状态之间的转换必须经过QL1。
QL1l可以是基速回送测试模式。到这一状态的转换可以来自QL1状态。从这一状态转换出可以去往QL1p或QL1并且留待实现确定。
QL2可以是设备上电,没有链路可用。这是例如在紧接着引导之后的设备状态。
图32是根据各实施例的示出示例功率状态和功率状态转换的示例状态图。在3201,设备上电进入状态QL2(3201)。设备可以通过以下方法从QL2(3201)转换到QL1s(3202)低速睡眠。低速上的主时钟、Rx活跃、Tx电气空闲、link_en被断言。从设备检测link_en,打开时钟接收机,Rx信号检测/Tx活跃。从设备每一个5x130比特发送对齐模式,并且去往Tx电气空闲、Rx sig_det、Rx时钟活跃(低速睡眠)。当主设备检测到对齐时,主设备移动到低速睡眠。
设备可以通过以下方法从QL1(3205)低速猝发转换到QL1ls(3207)低速轻度睡眠。发起方检测到没有内容要发送并且将Tx切换到电气空闲。跟随方使接收机留在活跃状态中。
设备可以通过以下方法从QL1ls(3207)低速轻度睡眠转换到QL1(3205)高速猝发。发起方检测到有内容要发送并且将Tx切换到活跃状态。跟随方使接收机留在活跃状态中。
设备可以通过以下方法从QL1s(3203)低速睡眠(这是一个定时选项)转换到QL1(3205)低速猝发。发起方发送N个EoEI(电气空闲结尾)序列。跟随方检测到sig_det,将Rx切换到活跃模式。
设备可以通过以下方法从QL1s(3203)低速睡眠(这是一个跟随方响应选项)转换到QL1(3205)低速猝发。步骤1:I:校验Rx子链路是否活跃。如果RxsubLinkActive==0;FS2I:RxsubLinkActive==0,跟随方睡眠;FS3 I:Rx Q0,Tx驱动1;FS4 F:信号检测;FS5 F:RxQ0,Tx驱动1;FS6 I:Sig_det;FS7 I:Tx对齐;FS8 F:对齐完成;FS9 F:Tx对齐;FS10I:对齐完成;FS11 BBIC:发送ping;FS12 RFIC:ACK/NACK;FS13 F:如果没有内容要发送就睡眠;否则;FA2 I:RxSubLinkActive==1,跟随方苏醒;FA3 I:Rx Q0,Tx驱动1;FA4 F:信号检测;FA5 F:Tx发送消息;FA6 I:等待消息-如果Rx sig_det丢失,则移动到其他轨道,FS6;FA7I:Tx对齐;FA8 F:对齐完成;FA9 F:发送准备好MSG通过/失败;FA10 I/F:如果NACK,前往FA7。
设备可以通过以下方法从QL1(3205)低速猝发转换到QL1s(3203)低速睡眠。猝发MSG SoEI(电气空闲的开头)-发送方接着使Tx进入电气空闲,消息的接收方使Rx进入sig_det模式。
设备可以通过以下方法从QL1p(3209)低速深度睡眠/休眠转换到QL1s(3203)低速睡眠。过程开始于link_en或link_req。如果正在休眠,则主设备配置PLL。主设备启动高速时钟的Tx、Rx活跃、Tx电气空闲、link_en被断言。从设备检测link_en,打开处于高速模式的时钟接收机,时钟校准,Rx信号检测,Tx活跃。从设备每一个5x130比特发送对齐模式,并且去往Tx电空闲、Rx sig_det、Rx时钟活跃(低速睡眠)。当主设备检测到对齐时,主设备移动到低速睡眠。
设备可以通过以下方法从QL1(3205)低速猝发转换到QL1p(3209)低速深度睡眠/休眠。主设备将低速_休眠(LS_HIBERNATE)消息发送到从设备,从设备确收。主设备关闭Rx使其关断。主设备使Tx处于EI。从设备丢弃Tx,Rx关断,并且禁用时钟输入。主设备对link_en解除断言。主设备关闭时钟块和Tx块。
设备可以通过以下方法从QL1(3205)低速猝发转换到QL0p(3211)高速深度睡眠/休眠。主设备将高速_休眠(HS_HIBERNATE)消息发送到从设备,从设备确收。主设备关闭Rx使其关断。主设备使Tx处于EI。从设备丢弃Tx,Rx关断,并且禁用时钟输入。主设备对link_en解除断言。主设备关闭时钟块和Tx块。
设备可以通过以下方法从QL1p(3209)低速休眠转换到QL3(未示出,等效于QL2,关闭)。主设备接收来自Q6的下电命令,主设备通知从设备以下电预期(不苏醒)进入休眠,主设备通知Q6两者何时处于休眠并且进入Q3终止状态。
设备可以通过以下方法从QL0p(3211)高速休眠转换到QL3(关闭)。主设备接收来自Q6的下电命令,主设备通知从设备以下电预期(不苏醒)进入休眠,主设备通知Q6两者何时处于休眠并且进入Q3终止状态。
设备可以通过以下方法从QL0(3213)高速猝发转换到QL1p(3209)低速深度睡眠/休眠。主设备将低速_休眠(LS_HIBERNATE)消息发送到从设备,从设备确收。主设备关闭Rx使其关断。主设备使Tx处于EI。从设备丢弃Tx,Rx关断,并且禁用时钟输入。主设备对link_en解除断言。主设备关闭时钟块和Tx块。
设备可以通过以下方法从QL0(3213)高速猝发转换到QL0p(3211)高速深度睡眠/休眠。主设备将高速_休眠(HS_HIBERNATE)消息发送到从设备,从设备确收。主设备关闭Rx使其关断。主设备使Tx处于EI。从设备丢弃Tx,Rx关断,并且禁用时钟输入。主设备对link_en解除断言。主设备关闭时钟块和Tx块。
设备可以通过以下方法从QL0p(3211)高速深度睡眠/休眠转换到QL0s(3215)高速睡眠。过程开始于link_en或link_req。如果正在休眠,则主设备配置PLL。主设备启动高速时钟的Tx、Rx活跃/CDR启用、Tx电气空闲、link_en被断言。从设备检测link_en,打开处于高速模式的时钟接收机,时钟校准,Rx信号检测/CDR,Tx活跃。从设备每一个5x130比特发送CDR模式、对齐模式,并且去往Tx电气空闲、Rx sig_det、Rx时钟活跃(高速睡眠)。当主设备检测到对齐时,主设备移动到高速睡眠。
通过均衡化(自从冷引导以来的第一次),设备可以通过以下方法从QL0p(3211)高速深度睡眠/休眠转换到QL0s(3215)高速睡眠。过程开始于link_en。从冷引导的第一次转换必须承载通过,因此BBIC驱动事务使EQ完成。类似于常规休眠到睡眠的转换,除了两个子链路必须经历eq,并且从BBIC发送ping。如果正在休眠,则主设备配置PLL。主设备启动高速时钟的Tx、Rx活跃/CDR启用、Tx电空闲、link_en被断言。从设备检测link_en,打开处于高速模式的时钟接收机,时钟校准,Rx信号检测/CDR,Tx活跃。两者发送针对指定时间的eq模式,针对指定时间的CDR模式,以及对准模式一次。BBIC发送ping,RFIC发送ACK。两者将Tx设为电气空闲,Rx sig_det,Rx时钟活跃(高速睡眠)。
设备可以通过以下方法从QL0(3213)高速猝发转换到QL0ls(3217)高速轻度睡眠。发起方检测到没有内容要发送并且将Tx切换到电空闲。跟随方使接收机留在活跃状态中。
设备可以通过以下方法从QL0ls(3217)高速轻度睡眠转换到QL0(3213)高速猝发。发起方检测到有内容要发送并且将Tx切换到活跃状态。跟随方使接收机留在活跃状态中。
设备可以通过以下方法从QL0s(3215)高速睡眠(这是一个定时选项)转换到QL0(3213)高速猝发。发起方发送N各EoEI(电空闲结尾)序列。跟随方检测到sig_det,将Rx切换到活跃模式,Rx CDR被启用。跟随方检测到对齐并且禁用Rx CDR。
设备可以通过以下方法从QL0s(3215)高速睡眠(这是跟随方响应选项)转换到QL0(3213)高速猝发。步骤1:I:校验Rx子链路是否活跃。如果RxsubLinkActive==0;FS2 I:RxSubLinkActive==0,跟随方睡眠;FS3 I:(Rx已经处于sig_det),Tx驱动1;FS4 F:信号检测上升;FS5 F:Rx Q0/CDR启用,Tx驱动CDR模式;FS6 I:Sig_det上升,Rx Q0/CDR启用,Tx驱动CDR模式;FS7 I:等待CDR计时器值,接着发送Tx对齐;FS8 F:对齐完成;FS9 F:等待CDR计时器值,接着发送Tx对齐;FS10 I:对齐完成;FS11 BBIC:发送ping;FS12 RFIC:ACK/NACK;FS13 F:如果没有内容要发送就睡眠;否则;FA2 I:RxSubLinkActive==1,跟随方苏醒;FA3 I:Tx驱动1;FA4 F:信号检测下降;FA5 F:Tx发送消息;FA6 I:等待消息-如果Rxsig_det丢失,则移动到其他轨道,FS6;FA7 I:Tx CDR/Eq模式,接着对齐;FA8 F:对齐完成;FA9 F:发送准备好MSG通过/失败;FA10 I/F:如果NACK,前往FA7。
设备可以通过以下方法从QL0(3213)高速猝发转换到QL0s(3215)高速睡眠。猝发MSG SoEI(电空闲的开头)-发送方接着使Tx进入电空闲,消息的接收方使Rx进入sig_det模式。
存在根据各实施例的实现功率状态转换的各种方法。例如,一种用于上电状态QL2的方法可以由顶级上电链路设备来实现。一种实现最小引导并且在需要时等待其他方的方法可以由用于发起引导序列的边带信号link_en来实现。一种用于设立最小基础通信链路QL1的方法可以由从设备上的ROM代码、主设备上顶层加载的PDMEM实现。用于检索从设备能力、连接配置、速率能力、受支持的功率状态配置细节、受支持的测试回路状态、错误检测和处置规程、引导参数的方法可以由低速链路上的消息信令以及用于获取设备能力的存储器读、存储器写以及从主设备到从设备的跳转消息等在必要时实现。主SEQ可以基于主SEQ自己的能力以及从设备能力来确定QL0参数。主SEQ可以基于主SEQ自己的能力以及从设备能力来确定错误检测和处置参数。用于向从设备用信号指示为QL0所选的速率和配置的方法可以由主设备到从设备的消息来实现。用于发起从QL1到QL0的速度改变的方法可以由主设备到从设备的消息来实现。用于用信号指示从子链路活跃到子链路睡眠的状态改变的方法可以由话务发起方将Tx从Q1移动到Q0来实现,并且接收方能够使用phy Rx信号检测来检测状态改变。用于用信号指示从QL0到QL0p或QL1到QLp的状态改变的方法可以被实现。在正常操作中,主设备可以使用消息来指示强制转换。在错误恢复中,主设备可以使用link_en来指示强制转换。用于用信号指示到回送测试状态的改变的方法可以由主设备使用消息向从设备指示转换来实现。用于用信号指示从回送测试状态改变到深度睡眠的方法可以取决于回送模式由主设备使用消息向从设备指示转换(假设从设备能够监视回送数据以获得消息)或者通过定时器结束状态来实现。
图33是解说根据本文描述的系统和方法的主设备间链路PHY块3318的示例以及从设备间链路PHY块3316的示例的图示。从设备间链路PHY块3316包括PCS和控制器3302,其可以被用于控制从设备间链路PHY块3316内的功能性。PCS和控制器3302可以从耦合到接收块3306的串行到并行转换器3304接收上行链路数据。接收块3306可以通过上行链路从主设备间链路PHY块3318接收串行数据。接收块3306接收到的串行数据可以使用串行到并行转换器3304被转换成并行数据。PCS和控制器3302接着可以从串行到并行转换器3304读取并行数据。串行到并行转换器3304可以由时钟和数据恢复(CDR)块3310驱动。使用单个上行链路信道。将理解,在其他示例中,可以使用更多的上行链路信道。此外,将理解,旨在仅容纳功能性的系统可以不包括上行链路。
PCS和控制器3302可以使用一系列并行到串行转换器3316和传输块3308将下行链路数据发送到主设备间链路PHY块3318。例如,PCS和控制器可以将并行数据写入并行到串行转换器3316中的一者或多者。并行到串行转换器3316可以将接收到的任何并行数据转换成串行数据以供传送块3308进行传输。在图33所解说的示例中,存在当PCS和控制器向主设备间链路PHY块3318发送数据时可以在它们之间进行选择的三个下行链路信道。将理解,在特定实现中,可以使用更多的下行链路信道或更少的下行链路信道。例如,仅仅旨在进行传送的系统可以不包括任何下行链路。一般来说,无论什么系统都具有上行链路和下行链路信道的混合。
从设备间链路PHY块3316包括时钟接收机3314,该时钟接收机3314被耦合到主设备间链路PHY块3318并且可以从设备间链路主设备接收时钟。使用主设备间链路PHY块3318与从设备间链路PHY块3316之间的公共时钟可以允许从设备间链路PHY块3316和主设备间链路PHY块3318彼此同步或者彼此近似同步,取决于在时钟路径中可能存在的任何延迟。时钟接收机3314将接收到的时钟信号输入到从时钟块3312中,该从时钟块3312可以被用于将时钟分发到并行到串行转换器3316和CDR块3310。
主设备间链路PHY块3318包括可以控制设备间链路主设备3318的PCS和控制器3322。PCS和控制器3322可以通过将并行数据写入并行到串行转换器3324通过上行链路将数据发送到从设备间链路PHY块3316。并行到串行转换器3324可以将并行数据转换成可以被输入到传送块3326中的串行数据。主设备间链路PHY块3318中的传送块3326接着可以沿上行链路串行地将数据传送到从设备间链路PHY块3316,其中数据被接收块3306接收。下行链路数据可以由主设备间链路PHY块3318在接收块3338处接收。接收块3338各自耦合到串行到并行转换器3324,该串行到并行转换器3324各自由CDR 3340控制。串行到并行转换器3324可以将从接收块3338接收到的任何串行数据转换成并行,并且并行数据可以被PCS和控制器3322读取。
主设备间链路PHY块3318可包括可用于生成时钟信号的主时钟块3332。由主时钟块3332生成的时钟信号可以被分发到CDR 3340以及并行到串行转换器3324。另外,主时钟块3332可以将时钟分发到时钟驱动器3334,该时钟驱动器3334接着可以将时钟信号传送到从设备间链路PHY块3316。主时钟块3332可以被耦合至PLL 3336,该PLL 3336可以被用作时钟生成过程的一部分。
如上所述,主设备间链路PHY块3318包括PCS和控制器3322。另外,同样如上所述,从设备间链路PHY块3316也包括PCS和控制器3302。PCS和控制器3322、3302中的每一者可包括处理器,诸如微处理器、微控制器、数字信号处理器(DSP)、或其他可编程控制器。通过使用可编程的控制器,诸如举例来说微控制器,主设备与从设备之间的链路可以是可重新配置的。控制器3302、3322可包括被配置成实现可编程状态机的可编程处理器。可编程状态机可以被配置成控制以下至少一者:物理层链路的发起、接收机接收到的信号的位对齐、发射机传送的信号的位对齐、训练、功率管理、测试、回送模式、调试模式、错误处置、锁相环初始化、或重置处置,并且其中物理层链路的发起、接收机接收到的信号的位对齐、发射机传送的信号的位对齐、训练、功率管理、测试、回送模式、调试模式、错误处置、锁相环初始化、或重置处置中的至少一者的功能性通过对可编程处理器进行重新编程来实现可编程,以使得引导序列、功率管理协议、或测试协议中的至少一者是可重新配置的。
图34是解说根据本文所描述的系统和方法的一对示例控制器的概念框图。处理系统3400包括从设备间链路PHY块3316的PCS和控制器3302以及主设备间链路PHY块3318的PCS和控制器3322。每一PCS和控制器3302、3322包括定序器3402、3422以及存储器3404、3424。定序器3402、3422中的每一者可以是微处理器、微控制器、数字信号处理器(DSP)、或其他处理电路系统。存储器3403、3405可以是多排存储器,诸如同步动态随机存取存储器(SDRAM)、或能够检索和存储信息的任何其他多排组件。
PCS和控制器3302包括定序器3402。定序器3402连接到存储器3403。定序器3402与存储器3403之间的连接包括地址总线3408、数据总线3410、以及控制总线3412。数据总线3410可以被用于在定序器3402和存储器3403之间读取数据和写入数据。控制总线3412可包括用于控制从定序器3402到存储器3403的数据写入的信号。控制总线3412可包括用于控制从存储器3403到定序器3402的数据读取的信号。例如,控制总线3412可包括各种信号,诸如读信号和写信号。读信号可以是指示存储器何时正在被定序器3402读取的单信号线。写信号可以是指示存储器何时正在被定序器3402写入的单信号线。在一些示例中,控制总线3412还可包括字节使能信号。字节使能信号可以是指示数据大小(例如8字节、16字节、32字节、64字节)的一组信号线。然而在一些示例中,数据大小可以是固定的,例如64字节。相应地,在控制总线3412上字节使能信号可以是可任选的。
可以作为控制总线3412的一部分的其他可任选的信号包括但不限于,传递确收(ACK)、总线请求、总线准予、中断请求、时钟信号和重置信号。传递确收信号可指示数据正通过被读取而被设备(例如定序器3402)确收。总线请求可以指示设备(例如定序器3402或存储器3403)正在请求总线,例如,使用地址总线3408或写数据总线3410或读数据总线3410中的一者。总线准予可以指示定序器3402已经准予对总线的访问。中断请求可向定序器3402指示较低优先级设备正在请求总线。控制总线3412上的任何时钟信号可以被用于同步控制总线3412上的设备,诸如定序器3402、存储器3403或两者。
重置可以被用于对定序器3402、存储器3403或两者进行重置。通常,重置可以被用于重置定序器3402。上文描述为可任选的信号一般在下文描述的示例系统中不使用,但是可以在所描述的系统和方法的特定实现中使用。
地址总线3408可以被用于指示定序器正在读取或写入的存储器3403内的地址。例如,如果定序器3402希望读取存储器3403中的一个存储器位置,则定序器可以在地址总线3408上输出该存储器位置的地址。另外,定序器3402可以将读信号驱动为活跃。读信号可以是控制总线3412的一部分。存储器3403接着可以在数据总线3410上输出由地址总线3408指示的存储器位置中的数据。类似地,如果定序器3402希望写入存储器3403中的一个存储器位置,则定序器可以在地址总线3408上输出该存储器位置的地址。另外,定序器3402可以将写信号驱动为活跃。写信号可以是控制总线3412的一部分。定序器3402可以用要被写入存储器3403的数据来驱动数据总线3410。定序器3402可以在地址总线3408上的地址处用要被写入存储器3403的数据来驱动写数据总线3410。
如图34所解说的,定序器3402还可访问数据复用器3406,该数据复用器3406可以发送和接收数据。在一些示例中,定序器3402可以使用数据复用器3406从上行链路读取数据并且向下行链路写入数据。在一些示例中,来自数据复用器3406的数据可以被写入存储器3403。在一些示例中,来自存储器3403的数据可以被写入数据复用器3406。在一些示例中,数据复用器3406可以被配置成将接收到的数据回送到数据复用器的一个或多个传送输出端。
PCS和控制器3322包括定序器3422。定序器3422连接到存储器3403。定序器3422与存储器3403之间的连接包括地址总线3428、数据总线3420、以及控制总线3432。数据总线3430可以被用于在定序器3422和存储器3403之间读取数据和写入数据。控制总线3432可包括用于控制从定序器3422到存储器3403的数据写入的信号。控制总线3432可包括用于控制从存储器3403到定序器3422的数据读取的信号。例如,如上所讨论的,控制总线3432可包括各种信号,诸如读信号、写信号、以及字节使能信号(可任选的)。可以作为控制总线3412的一部分的其他可任选的信号包括但不限于,传递确收(ACK)、总线请求、总线准予、中断请求、时钟信号和重置信号。
地址总线3428可以被用于指示定序器正在读取或写入的存储器3403内的地址。例如,如果定序器3422希望读取存储器3403中的一个存储器位置,则定序器可以在地址总线3428上输出该存储器位置的地址。另外,定序器3422可以将读信号驱动为活跃。读信号可以是控制总线3432的一部分。存储器3403接着可以在读数据总线3430上输出由地址总线3428指示的存储器位置中的数据。类似地,如果定序器3422希望写入存储器3403中的一个存储器位置,则定序器可以在地址总线3408上输出该存储器位置的地址。另外,定序器3422可以将写信号驱动为活跃。写信号可以是控制总线3432的一部分。定序器3422可以在地址总线3428上的地址处用要被写入存储器3403的数据来驱动数据总线3430。
如图34所解说的,定序器3422还可访问数据复用器3426,数据复用器3426可以发送和接收数据。在一些示例中,定序器3422可以使用数据复用器3426从上行链路读取数据并且向下行链路写入数据。在一些示例中,来自数据复用器3426的数据可以被写入存储器3403。在一些示例中,来自存储器3403的数据可以被写入数据复用器3426。在一些示例中,数据复用器3426可以被配置成将接收到的数据回送到数据复用器的一个或多个传送输出端。
图35是根据各实施例的具有可编程分布式数据处理功能性的示例高速串行收发机装置3500。收发机装置3500可包括传入信道3501和传出信道3503,传入信道3501处理由收发机装置接收到的串行数据,传出信道3503处理供收发机装置进行串行传输的数据。收发机装置3500还可包括传输层3505(诸如图8的分组化层802)、链路层3507(诸如图8的链路层804)、以及PHY 3509(诸如图8的PHY 806)。如图35所示,在传输层3505与传入信道3501交叠处,传输层可包括传输层传入元件(TIE)3511,其是传输层中处理传入信道中的数据的元件。同样,如图35所示,在传输层3505与传出信道3503交叠处,传输层可包括传输层传出元件(TIE)3513,其是传输层中处理传出信道中的数据的元件。收发机装置3500还可包括。类似地,链路层3507可包括处理传入信道中的数据的链路层传入元件(LIE)3515以及处理传输信道中的数据的链路层传出元件(LEE)3517。PHY 3509可包括处理传入信道中的数据的PHY传入元件(PIE)3519以及处理传出信道中的数据的PHY传出元件(PEE)3521。传入元件和传出元件的一些示例可包括分组化器、去分组化器、对齐器、发射机、接收机、缓冲器、寄存器等。
收发机装置3500还可包括可编程控制器3523,可编程控制器3523可以执行计算机可执行代码以执行各种操作。可编程控制器3523可以经由控制互连3525重新编程。例如,存储在可编程控制器3523中的计算机可执行代码可以经由控制互连3525被修改、更新等。可编程控制器3523可以经由控制互连3525进行通信以例如报告测试的结果、报告错误等,如下文将更详细地讨论的。
可编程控制器3523可以经由传输层互连3527连接到传输层3505,这可允许可编程控制器与传输层中处理信道数据的元件(诸如TIE 3511和TEE 3513)通信。可编程控制器3523可以经由链路层互连3529连接到链路层3507,这可允许可编程控制器与链路层中处理信道数据的元件(诸如LIE 3515和LEE 3517)通信。可编程控制器3523可以经由PHY互连3531连接到PHY 3509,这可允许可编程控制器与PHY中处理信道数据的元件(诸如PIE 3519和PEE 3521)通信。
可编程控制器3523与传输层3505、链路层3507和PHY 3509的各个数据处理元件之间的互连可允许可编程控制器利用这些元件的数据处理功能性来处理数据。换言之,数据处理任务可以在可编程控制器3523、传输层3505的数据处理元件、链路层3507的数据处理元件、以及PHY 3509的数据处理元件之间分布。因而,可编程控制器3523、三层中的一者的至少一个数据处理元件、以及三层中的另一者的至少一个数据处理元件的连接可形成可编程分布式数据处理器的结构。以此方式,例如,可编程控制器可以卸载数据处理工作,这可允许可编程处理器更小并且运行更快。此外,因为分布式数据处理由传入信道3501和/或传输信道3503中的元件来完成,所以可编程控制器3523可以被专门用于高效且快速地分析、调整、测试、诊断、控制等这些元件。这尤其在高速、低功率串行收发机中可以提供优点。
如图35所示,互连可以创建各个数据处理路径,可编程控制器3523可以在这些路径上发送数据。例如,可编程处理器3523可以通过数据路径3533发送数据,该数据路径3533包括传输层互连3527、一个或多个TEE 3513、传输层3505与链路层3507之间的一部分传出信道3503、一个或多个LEE 3517、以及到可编程控制器的链路层互连3529。
另一处理路径即数据路径3535可包括传输层互连3527、一个或多个TEE 3513、传输层3505与链路层3507之间的一部分传出信道3503、一个或多个LEE 3517、链路层3507与PHY 3509之间的一部分传出信道3503、一个或多个PEE 3521、以及到可编程控制器的PHY互连3531。另一处理路径即数据路径3537可包括链路层互连3529、一个或多个LEE 3517、链路层3507与PHY 3509之间的一部分传出信道3503、一个或多个PEE3521、以及到可编程控制器的PHY互连3531。
一些数据路径可以仅利用单个层的数据处理元件。例如,在数据路径3539中,可编程控制器3523通过链路层互连3529来发送要被一个或多个LEE 3517处理的数据,并且经处理数据通过链路层互连被返回到可编程处理器。可能存在仅使用TIE 3511、仅使用TEE3513、仅使用LIE 3515、仅使用PIE 3519或仅使用PEE 3521进行数据处理的类似处理路径。
一些处理路径不返回到可编程控制器3523。例如,可编程控制器3523可以通过PHY互连3531来发送要由一个或多个PEE 3521处理并且作为经传送数据3541来传送的数据。同样地,可编程控制器3523可以通过链路层互连3529来发送要由一个或多个LEE 3517处理、发送到一个或多个PEE 3521以供进一步处理、并且作为经传送数据3541来传送的数据。类似地,可编程控制器可以通过传输层互连3527来发送要由一个或多个TEE 3513处理、发送到一个或多个LEE 3517以供进一步处理、发送到一个或多个PEE 3521以供进一步处理、并且作为经传送数据3541来传送的数据。
一些处理路径利用传入信道3501中的数据处理元件。例如,数据路径3543可包括PHY互连3531、一个或多个PIE 3519、PHY 3509与链路层3507之间的一部分传入信道3501、一个或多个LIE 3515、以及链路层互连3529。数据路径3545可包括PHY互连3531、一个或多个PIE 3519、PHY 3509与链路层3507之间的一部分传入信道3501、一个或多个LIE 3515、链路层3507与传输层3505之间的一部分传入信道、一个或多个TIE 3511、以及传输层互连3527。数据路径3547可包括数据层互连3529、一个或多个LIE 3515、链路层3507与传输层3505之间的一部分传入信道、一个或多个TIE 3511、以及传输层互连3527。
另外,可编程控制器3523可以截取各个处理点处接收到的数据3549,例如在PIE3519、LIE 3515、或TIE 3511中的处理之后。在各实施例中,接收到的数据3549可以从另一收发机装置发送,该另一收发机装置包括可编程分布式数据处理器。在此情形中,接收到的数据3549可包括根据本公开的分布式数据处理所处理的数据,并且由可编程控制器3523进行的截取可以是分布式处理的一部分,如图36的一个示例中更详细地描述的。
可编程控制器3523可以将控制信号发送到传输层3505、链路层3507以及PHY 3509中的各个元件。在一些情形中,例如,控制信号可以被发送以控制各元件处理数据,如上所讨论的。在其他情形中,数据处理在没有来自可编程控制器3523的特定控制信号的情况下由各元件执行。换言之,可编程控制器3523可以简单地注入数据并且作为传入信道3501和/或传出信道3503的正常操作的一部分各元件处理数据。在各实施例中,控制信号可以经由与数据相同的路径诸如互连3527、3529和3531来发送。在各实施例中,控制信号可以经由分开的专用控制路径(未示出)来发送。来自可编程控制器3523的控制信号还可以被用于控制各个层中的各个元件的操作,诸如举例来说打开/关闭发射机、重置元件、更新元件的参数等。这些控制可基于例如由各元件处理的数据。例如,可编程控制器3523可以发送要被处理的测试分组,并且基于该处理的结果,可以发送控制信号来调整参数以改进传输。
图36是根据各实施例的具有可编程分布式数据处理功能性的示例高速串行链路装置3600。链路装置3600可包括链路主设备3601和链路从设备3603。链路主设备可包括定序器3605和定序器存储器3607,它们作为可编程控制器来操作,诸如图35的可编程控制器3523。同样地,链路从设备可包括定序器3609和定序器存储器3611,它们作为可编程控制器来操作,诸如图35的可编程控制器3523。
在各实施例中,链路从设备3603可以是RFIC,而链路主设备3601可以是BBIC。链路装置3600可包括数据上行链路信道,数据上行链路信道包括链路主设备3601的传入信道,包括LEE(诸如能够从存储器互连3615接收数据的传入缓冲器(eBuf)3616、以及分组化器3617),以及TEE(诸如发射机块3619(其可包括异步先进先出(fifo)缓冲器)、以及发射机3621(其可包括并行到串行(P2S)转换器))。数据上行链路信道还可包括链路从设备3603的传入信道,包括TIE(诸如接收机3623(其可包括串行到并行(S2P)转换器)、以及接收机块3625(其可包括异步fifo和对齐器))、以及LIE(诸如去分组化器3627、和传入缓冲器(iBuf)3629(其可以将数据发送到解复用器(de-mux)3631))。
链路装置3600可包括数据下行链路信道,数据下行链路信道包括链路从设备3603的传入信道,包括LEE(诸如能够从仲裁器3635接收数据的eBuf 3633、以及分组化器3637),以及TEE(诸如发射机块3639(其可包括异步fifo缓冲器)、以及发射机3641(其可包括P2S转换器))。数据下行链路信道还可包括链路主设备3601的传入信道,包括TIE(诸如接收机3643(其可包括S2P转换器)、以及接收机块3645(其可包括异步fifo和对齐器))、以及LIE(诸如去分组化器3647、和iBuf 3649(其可以将数据发送到存储器互连3615))。
链路层互连3651可以将链路从设备3603的定序器3609连接到分别进出eBuf 3633和iBuf 3629的信号线。链路层互连3653可以将定序器存储器3611连接到从去分组化器3627到iBuf 3629的信号线以及连接到从eBuf 3633到分组化器3637的信号线。互连3655可以将定序器存储器3611连接到从接收机块3625到去分组化器3627的信号线。应当注意,互连3655用作数据层互连和PHY互连两者。具体地,互连3655允许定序器存储器3611将数据发送到去分组化器3627(链路层数据处理元件)并且从接收机块3625(PHY数据处理元件)接收数据。就此,互连3655是双层互连。同样地,互连3657可允许定序器存储器3611将数据发送到发射机块3639并且从分组化器3637接收数据。因而,互连3657也是双层互连。
链路层互连3659可以将链路主设备3601的定序器3605连接到分别进出eBuf 3613和iBuf 3649的信号线。链路层互连3661可以将定序器存储器3607连接到从去分组化器3647到iBuf 3649的信号线以及连接到从eBuf 3613到分组化器3617的信号线。互连3663可以将定序器存储器3607连接到从接收机块3645到去分组化器3647的信号线。互连3665可以将定序器存储器3607连接到从分组化器3617到发射机块3619的信号线。
链路主设备3601的定序器3605和链路从设备3603的定序器3609可以经由边带进行通信,该边带包括链路主设备一侧上的边带线3667A以及链路从设备一侧上的边带线3667B。
虽然图33-36解说了可以被包括在可编程分布式数据处理器中的物理结构(例如可编程控制器、互连、层元件等)的各实施例,现在将参考图37-41描述可以由可编程分布式数据处理器执行的操作和功能性的各示例。
图37是解说根据各实施例的可以由可编程分布式数据处理器执行的计算机指令的链路核心的示例表示的图示。鉴于对此类系统的物理结构的以上描述,以下示例所利用的可重新编程的分布式数据处理器的数据处理路径对于本领域技术人员而言将是容易理解的,因此将不提供对特定数据处理路径的详细描述。在各实施例中,可编程控制器可以逐传输层创建数据处理路径,其可以被用于流控、错误消息收发、诊断。在各实施例中,从SEQMEM到链路层或PHY层的数据处理路径可以通过注入模式被用于均衡化,并且可以通过注入模式被用于训练。在各实施例中,在接收机PHY或链路层处(去分组化器之后)数据信号的截取可以被用于均衡化和/或训练。在各实施例中,错误模式可以被注入,以及在沿数据处理路径的另一位置处校验错误计数。在各实施例中,原始比特流可以在SEQ MEM中被捕捉以供逻辑分析器进行诊断,逻辑分析器可以被用于诊断复杂故障,诸如系统故障。
图示3700包括表示软件栈的外环3702。在软件栈级别,设备间链路可以执行各种健康测试,诸如回送测试。软件栈包括用于低级测试的调试工具和管理软件。在软件栈级别,还可驻留功率管理、错误恢复和调试工具集。
图示还包括用于流控、错误处置、以及设备间链路调试(包括ping)的数据层3704。设备间链路协议数据层可以影响使用流控的功率管理,可以实现错误处置,并且可以实现使用ping特征的测试。
在PCS层3706,功率管理可以通过链路的启动或停止来影响。另外,回送测试和错误处置可以在PCS层处实现。PCS层3706可包括使用数字回送的自动测试、误比特率测试、模拟和数字电路系统的回送测试、模式注入、物理层启动和停止、引导、以及功率模式。
物理层SERDES 3708可以实现SERDES测试和特征抖动容限传送和接收测量、内置自测试、错误注入和其他测试。
例如,一些错误可包括链路锁定错误,当一方重复地接收针对所发送消息的NACK或重复地传送而没有接收到ACK时,可以标识链路锁定错误。例如,在主设备向从设备进行发送但是从设备作为响应重复地发送NACK的情形中,主Tx到从Rx通道可能已经丢失锁定。为了从该错误状况中恢复,主设备可以使用link_en指示到链路下电/休眠的转换,并且接着可以指示到链路上电的转换以重新获取锁定。另一可能的错误状况是当从设备向主设备进行发送时,主设备作为响应发送ACK,但主设备看到从设备正在重复。在此情形中,主Tx到从Rx的通道可能已经丢失锁定。为了从该错误状况中恢复,主设备可以使用link_en指示到链路下电/休眠的转换,并且接着可以指示到链路上电的转换以重新获取锁定。另一种可能的错误状况是当从设备向主设备进行发送,主设备未接收到,因此从设备重复,并且从设备保持无限尝试。在该错误状况中,从Tx到主Rx的通道可能已经丢失锁定。一种恢复方法可以是用带外信号向主设备指示。如果存在可用的带外机制,从设备可以用信号向主设备指示链路应当通过转换到链路下电并且再次上电来重置。然而,如果从设备不具有用外带信号向主设备指示的机制,则从设备应当保持尝试。
一些错误可包括状态转换错误。例如,在设备上电(例如从QL2转换到QL1)期间,可能发生错误。在此情形中,如果主设备等待对齐以指示转换完成并且主设备在规定的时间中没有接收到对齐,则从设备没有正确地上电。主设备可以通知顶层控制器(用于功率循环)。在第一次ping(例如QL1)期间可能发生错误。如果主设备没有从从设备接收到ping,则应当尝试使用link_en进行链路下电/上电。如果失败,则主设备应当通知顶层控制器(用于功率循环)。在从QL1到QL0的速度改变(或者相反)期间可能发生错误。如果主设备没有从从设备接收到ping,则应当尝试使用link_en进行链路下电/上电。然而,可能不清楚要“休眠”到哪个模式,例如高速还是低速。在此情形中,此时低速应当是默认的。如果失败,则主设备应当通知顶层控制器(用于功率循环)。在链路下电(例如QL0到QL0p或QL1到QL1p)期间可能发生错误。例如,主设备经由消息请求下电,并且没有接收到ACK,并且主设备重试。从设备遵守是强制性的。如果从设备没有确收转换,则这将作为严重错误来处理并且顶层控制器应当被通知。在链路上电(例如QL0p到QL0或QL1p到QL1)期间可能发生错误。例如,主设备经由link_en请求链路上电,但无法完成通过ping/ACK的序列。在此情形中,如果可能的话主设备进行重试。从设备遵守是强制性的。如果从设备没有确收转换,则这将作为严重错误来处理并且顶层控制器应当被通知。当从设备经由link_req请求链路上电,但无法完成通过ping/ACK的序列时,可能发生错误。在此情形中,如果可能的话从设备进行重试。除此之外,从设备没有太多其他能够进行的操作。
一些错误可以在测试模式期间发生。例如,在链路测试模式期间,例如QL0l或QL1l,当从设备正在回送时,主设备可能看到大的错误计数。在此情形中,主设备可以将链路移动到链路下电并且再次上电。在一些情形中,当主设备正在回送时,从设备可能看到大的错误计数。在此情形中,如果链路是定时的,则从设备等待,直到时间到,然后向主设备报告错误。如果链路不是定时的,并且带内信令仍然被主设备监视,则从设备向主设备指示错误。
在各实施例中,测试和调试可以由可编程分布式数据处理系统来执行。测试和调试的一些示例在下文中描述。在外部回送模式中,定序器可以被编程为例如三个回送选项中的一者。可以为RFIC提供时钟,因为RFIC SERDES不生成其自己的时钟。该模式可以被用于测量包括物理层和PCS层的抖动容限。在链路回送模式中,SERDES接收数据(RX)可以被路由回到SERDES传送数据(TX)。回送数据路径从RX异步fifo的输出被路由到TX异步fifo的输入。这可以在BBIC或RFIC的任一者上实现。三个RX/TX通道中只有一个通道可以被启用;因此通道号参数被用于配置通道选择。该模式被测试方或仪器用来验证数据正清楚地跨SERDES RX/TX和QL异步fifo行进。不存在到其他模式/状态的退出转换。必须关闭/重置以切换到其他模式。
时钟必须由外部装备、测试方、或实验装备提供,因为RFIC SERDES不生成其时钟。取决于外部时钟,该测试可以用在低速或高速模式中。内部RFIC时钟wmss_clk可以根据时钟设立规程来设立。
因而,可编程分布式数据处理器可以被编程为执行例如引导序列管理、功率管理、测试、物理层链路的发起、接收机接收到的信号的位对齐、发射机传送的信号的位对齐、训练、回送模式、调试模式、错误处置、锁相环(PLL)初始化、以及重置处置。
可编程分布式数据处理器执行的引导序列管理的一些进一步示例可包括:用于SERDES的均衡化和同步猝发的插入,边带通信(例如,一个方向上用于提供用于重置/唤醒和错误恢复(例如,link_en和link_req可以被用于唤醒信令)的机制的一个边带信号),用于快速唤醒、休眠唤醒、初始引导和恢复的训练序列,包括均衡化、CDR和对齐(分布式数据处理可处置所有训练序列和定时),低速(LS)模式和高速(HS)模式处置(PHY可以处置来自/进入数据块的能够被物理层和更上层进一步处理的SERDES数据的分组化和去分组化,可编程Tx幅度(Tx参数可以被分布式数据处理基于字段条件重新编程)),多个TX和RX端接设置可以被使用,多个功率状态可以被编程以用于引导、引导期间的信号检测,CDR打开和关闭时间可以被设置,用于快速频率切换的多个经校准PLL设置可以被使用(两个边带信号可以被用于控制串行互连的操作状态,例如link_en和link_req)。
可编程分布式数据处理器执行的功率管理的一些进一步示例可包括调整传输信用,以及发送功率管理消息。例如,ACK消息可以被用于进行基于信用的流控通信。流控在帧包的MSG和DATA信道之间独立地进行。ACK消息用于两个目的:流控和错误管理。当接收到ACK消息时,可编程控制器获得通知并且可以决定进入各个功率管理状态或者由于各种用途或功率管理方案而保持苏醒,并且可以向各个元件发送指令以调整功率状态。
可编程分布式数据处理器执行的测试的一些进一步示例可包括ping操作以分隔PHY和DLL层处的误比特率(BER)剖析。虽然可以由其他专用硬件完成比特检测和监视,但错误处置/测试报告机制可以由分布式数据处理器处置。测试模式可以由分布式数据处理器生成和编程。控制寄存器总线可以由分布式数据处理器管理。
可编程分布式数据处理器执行的PHY链路发起的一些进一步示例可包括:通过提供在PHY猝发(物理层通信)或DLL猝发之间进行区分的同步码元插入的128b/130b编码,PHY与DLL猝发模式之间的切换可以由分布式数据处理器控制/管理,均衡化(EQ序列的开头可以由分布式数据处理器处置),PHY猝发模式和分组猝发模式。
可编程分布式数据处理器执行的训练的一些进一步示例可包括注入自定义分组以训练链路,以及将物理层帧化令牌添加到DLL分组流。
可编程分布式数据处理器执行的错误处置的一些进一步示例可包括在接收机处实施PHY层帧化规则(帧规则可以由PHY层硬件检测并且被报告回可编程控制器以进行决策制定,并且例如控制器可以忽略、作出反应、或者等待,直到重置链路的恰适时间),接收到的比特流的帧化和对齐,信道标识(ID)(可以受到循环冗余校验(CRC)保护)。在一些示例中,块确收方案(其中一旦话务类的信用已经被耗尽,就发送ACK MSG),可编程控制器可以改变下游/接收机发送的ACK消息的频率。
图38-41解说了根据各实施例的可由可编程分布式数据处理器执行的示例测试。
图38解说了示例从设备外部回送测试模式,其中仪器3801将时钟信号提供到链路从设备3803,并且将测试信号提供到接收机3823。定序器3809经由互连3855发送控制信号以控制接收机块3825的异步fifo以将从接收机3823接收到的数据提供到发射机块3839的异步fifo,并且经由互连3657向发射机3641发送控制信号以控制发射机接收该数据。发射机3641检索该数据并且将该数据传送到仪器3801以供分析。以此方式,例如,定序器3609可以控制测试接收机3623和发射机3641的回送测试。
图39解说了示例从设备内部回送测试模式,其中时钟3901可以将时钟信号提供到链路从设备3606,并且定序器3609可以控制发射机块3639以经由互连3657从定序器存储器3611读取测试数据。发射机块3639接着可以将测试数据发送到发射机3641。定序器3609可以控制发射机3639以将测试数据发送到接收机3623,可以控制接收机将测试数据发送到接收机块3625,并且可以控制接收机块经由互连3655将测试数据发送到定序器存储器3611。以此方式,例如,分布式数据处理可以被用于测试发射机块3639、发射机3641、接收机3623、以及接收机块3625。以此方式,仅一个Tx通道被选择,但可以选择Tx通道中的任一者来执行测试。对于每一次回送,选择环路的层面是可能的,因为该选择可以通过SERDES CSR来控制。环路在IC外部在板层面是封闭的。环路在IC内部在SERDES缓冲器层面是封闭的(使用SERDES CSR)。该测试可包括内部误比特率BER测试,其中测试模式是自生成的并且在内部进行验证,而SERDES路径在回送模式中被配置。LFSR数据模式可以被生成并且在TX通道上经由异步fifo向外发送到SERDES TX块。SERDES回送模式可以被启用。通道中的一者上的TX数据可以被循环回到RX块。可以使用至少两个选项。在第一选项中,定序器可以发送固定空闲令牌,并且加扰器/解扰器(LSFR)可以被启用。在第二选项中,定序器可以发送预加载模式(PRBS x),并且加扰器/解扰器可以被禁用。
图40解说了示例主设备内部回送测试模式,其中定序器3605可以控制发射机块3619以经由互连3665从定序器存储器3607读取测试数据。发射机块3619可以将测试数据发送到发射机3621,并且定序器3605可以控制发射机以将测试数据发送到接收机3643,可以控制接收机将测试数据发送到接收机块3645,并且可以控制接收机块经由互连3663将测试数据发送到定序器存储器3607。以此方式,例如,分布式数据处理可以被用于测试发射机块3619、发射机3621、接收机3643、以及接收机块3645。
图41解说了示例链路到链路回送测试模式,其中链路主设备3601的定序器3605可以设置测试数据路径,包括互连3665、发射机块3619、发射机3621、接收机3643、接收机块3645、以及互连3663。定序器3605可以经由边带3667A和3667B发送控制信号以指令链路从设备3603的定序器3609控制链路从设备的各个元件以完成测试数据路径。响应于该指令,定序器3609可以将测试数据路径的其余部分设置为包括接收机3623、接收机块3625、互连3655、互连3657、发射机块3639、以及发射机3641。以此方式,例如,链路主设备3601的定序器3605可使得测试数据从定序器存储器3607被读取,沿所解说的数据处理路径被发送到链路从设备3603的定序器存储器3611,从链路从设备的定序器存储器被读取,并且被发送回链路主设备的定序器存储器3607。在该测试中,远程/端到端误比特率(BER)模式可以执行端到端综合误比特率分析。测试模式可以跨所有TX DL来发送,并且BER分析可以在UL或DL任一者上或两者上单独地收集。测试模式可以在引导模式和高速模式两者中进行配置。LFSR数据模式可以被生成并且跨所有主要组件向外发送:例如,TX异步fifo、SERDES TX块、焊盘、板线缆、SERDES RX块、RX异步fifo以及SEQ MEM。
图42示出了包括主集成电路4205和从集成电路4210的双模系统4200。控制器4215控制主集成电路4205中的传送双模接口4206在高速模式还是低速操作模式中运行。在高速操作模式中,SerDes发射机4220将输入数据流串行化为通过一对端子T1和T2传送的差分串行输出数据流。高速操作模式的示例数据率的范围可以为从约5Gbps到10Gbps。在低速操作模式中,第一单端驱动器4225通过端子T1驱动第一单端数据信号。类似地,在低速操作模式中,第二单端驱动器4230通过端子T2驱动第二单端数据信号。低速操作模式的示例数据率的范围可以为从约100Mbps到400Mbps。高速操作模式的数据率进而将约为高于低速操作模式的数据率的一个数量级。
从集成电路4210中的接收双模接口4207类似于传送双模接口4206。就此,控制器4250控制接收双模接口4207在高速还是低速操作模式中操作。在高速操作模式中,SerDes接收机4235对如通过一对端子T3和T4从主集成电路4205接收到的差分数据流进行解串行化。相反,在低速操作模式中,第一单端接收机4240从主集成电路4205接收如通过端子T3接收的第一单端数据信号。类似地,在低速操作模式中,第二单端接收机4245通过端子T4接收第二单端数据信号。
用于高速操作模式或低速操作模式任一者的传送双模接口4206和接收双模接口4207的重新配置在限制引脚计数方面是相当有利的,因为被用于高速操作模式的相同的引脚或端子可以被重新规划以在低速操作模式中工作。例如,参考图3,时钟驱动器352和时钟接收机350可以分别被实现在传送双模接口(诸如接口4206)和接收双模接口(诸如接口4207)以及图3的对应串行差分发射机和接收机中。以此方式,例如,引脚计数可以被更进一步地减少。相反,常规低速I/O接口(诸如通用输入输出(GPIO))的使用会要求针对每一低速信号的专用引脚。此外,还节约了板空间,因为高速信令的迹线可以被重新规划以用作低速信令的迹线。
因而,图42公开了一种双模发射机,包括第一端子、第二端子、被配置成在高速操作模式中通过第一端子和第二端子来驱动串行差分数据流的SerDes发射机、被配置成在低速操作模式中通过第一端子来驱动第一单端数据信号的第一单端驱动器、被配置成在低速操作模式中通过第二端子来驱动第二单端数据信号的第二单端驱动器、以及被配置成控制双模发射机在高速操作模式中操作还是在低速操作模式中操作的控制器。图42还公开了一种双模接收机,包括第一端子、第二端子、被配置成在高速操作模式中对通过第一端子和第二端子接收到的串行差分数据流进行解串行化的SerDes发射机、被配置成在低速操作模式中通过第一端子来接收第一单端数据信号的第一单端接收机、被配置成在低速操作模式中通过第二端子来接收第二单端数据信号的第二单端接收机、以及被配置成控制双模接收机在高速操作模式中操作还是在低速操作模式中操作的控制器。
应理解,所公开的过程/流程图中的各个框的具体次序或层次是示例性办法的解说。应理解,基于设计偏好,可以重新编排这些过程/流程图中的各个框的具体次序或层次。此外,一些框可被组合或被略去。所附方法权利要求以范例次序呈现各种框的要素,且并不意味着被限定于所呈现的具体次序或层次。
提供之前的描述是为了使本领域任何技术人员均能够实践本文中所描述的各种方面。对这些方面的各种修改将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示“有且仅有一个”,而是“一个或多个”。措辞“示例性”在本文中用于表示“用作示例、实例、或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。除非特别另外声明,否则术语“一些”指的是一个或多个。诸如“A、B或C中的至少一者”、“A、B或C中的一者或多者”、“A、B和C中的至少一者”、“A、B和C中的一者或多者”以及“A、B、C或其任何组合”之类的组合包括A、B和/或C的任何组合,并且可包括多个A、多个B或者多个C。具体地,诸如“A、B或C中的至少一者”、“A、B或C中的一者或多者”、“A、B和C中的至少一者”、“A、B和C中的一者或多者”、以及“A、B、C或其任何组合”之类的组合可以是仅A、仅B、仅C、A和B、A和C、B和C、或者A和B和C,其中任何此类组合可包含A、B或C中的一个或多个成员。本公开通篇描述的各个方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。措辞“模块”、“机制”、元素、“设备”等等可以不是措辞“装置”的代替。如此,没有任何权利要求元素应被解释为装置加功能,除非该元素是使用短语“用于……的装置”来明确叙述的。

Claims (20)

1.一种使主设备使用单向时钟信号通过串行链路进行数据传输的方法,所述方法包括:
基于所述主设备的第一时钟来生成所述单向时钟信号;
将所述单向时钟信号从所述主设备的串行化器-解串行化器(SERDES)发送到连接至所述串行链路的从设备的SERDES,其中所述从设备被配置成基于所述单向时钟信号来生成中间时钟信号;
基于所述第一时钟通过所述串行链路将数据从所述主设备的SERDES传送到所述从设备的SERDES;以及
基于所述中间时钟信号通过所述串行链路从所述从设备的SERDES接收数据。
2.如权利要求1所述的方法,其中,所述单向时钟被生成以具有与所述第一时钟相同的速率。
3.如权利要求1所述的方法,其中,所述单向时钟信号被生成为使得所述单向时钟信号的速率是所述第一时钟的速率的分数。
4.如权利要求1所述的方法,其中,所述单向时钟信号通过所述串行链路被发送到所述从设备。
5.如权利要求1所述的方法,其中,所述单向时钟信号通过边带被发送到所述从设备。
6.一种使从设备使用单向时钟信号通过串行链路进行数据传输的方法,所述方法包括:
在所述从设备的串行化器-解串行化器(SERDES)处从主设备的SERDES接收所述单向时钟信号,其中所述单向时钟信号基于所述主设备的第一时钟;
基于所述单向时钟信号来生成中间时钟信号;以及
基于所述中间时钟信号通过所述串行链路将数据从所述从设备的SERDES传送到所述主设备的SERDES。
7.如权利要求6所述的方法,其中,所述单向时钟的速率与所述第一时钟的速率相同。
8.如权利要求6所述的方法,其中,所述单向时钟信号的速率是所述第一时钟的速率的分数。
9.如权利要求6所述的方法,其中,所述单向时钟信号通过第二串行链路从所述主设备被接收。
10.如权利要求6所述的方法,其中,所述单向时钟信号通过边带从所述主设备被接收。
11.一种被配置成使用单向时钟信号通过串行链路传送数据的装置,所述装置包括:
主设备,包括:
时钟信号生成器,所述时钟信号生成器被配置成基于第一时钟来生成所述单向时钟信号,
第一发射机,所述第一发射机被配置成:将所述单向时钟信号从所述主设备的串行化器-解串行化器(SERDES)发送到连接至所述串行链路的从设备的SERDES,其中所述从设备被配置成基于所述单向时钟信号来生成中间时钟信号;
第二发射机,所述第二发射机被配置成:基于所述第一时钟通过所述串行链路将数据从所述主设备的SERDES传送到所述从设备的SERDES;以及
接收机,所述接收机被配置成:基于所述中间时钟信号通过所述串行链路从所述从设备的SERDES接收数据。
12.如权利要求11所述的装置,其中,所述时钟信号生成器被配置成生成具有与所述第一时钟的速率相同的速率的单向时钟。
13.如权利要求11所述的装置,其中,所述时钟信号生成器被配置成生成单向时钟,以使得所述单向时钟信号的速率是所述第一时钟的速率的分数。
14.如权利要求11所述的装置,其中,所述第一发射机被配置成通过第二串行链路将所述单向时钟信号发送到所述从设备。
15.如权利要求11所述的装置,其中,所述第一发射机被配置成通过边带将所述单向时钟信号发送到所述从设备。
16.一种被配置成使用单向时钟信号通过串行链路传送数据的装置,所述装置包括:
从设备,包括:
所述从设备的串行化器-解串行化器(SERDES)的接收机,其中所述接收机被配置成从主设备的SERDES接收所述单向时钟信号,其中所述单向时钟信号基于所述主设备的第一时钟,
信号时钟生成器,所述信号时钟生成器被配置成:基于所述单向时钟信号来生成中间时钟信号;以及
发射机,所述发射机被配置成:基于所述中间时钟信号通过所述串行链路将数据从所述从设备的SERDES传送到所述主设备的SERDES。
17.如权利要求16所述的装置,其中,所述单向时钟的速率与所述第一时钟的速率相同。
18.如权利要求16所述的装置,其中,所述单向时钟信号的速率是所述第一时钟的速率的分数。
19.如权利要求16所述的装置,其中,所述接收机被配置成通过第二串行链路从所述主设备接收所述单向时钟信号。
20.如权利要求16所述的装置,其中,所述接收机被配置成通过边带从所述主设备接收所述单向时钟信号。
CN201780009117.8A 2016-02-01 2017-02-01 高速串行链路中的单向时钟信令 Active CN108605056B (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201662289874P 2016-02-01 2016-02-01
US62/289,874 2016-02-01
US201662290309P 2016-02-02 2016-02-02
US201662290357P 2016-02-02 2016-02-02
US62/290,357 2016-02-02
US62/290,309 2016-02-02
US201662373246P 2016-08-10 2016-08-10
US62/373,246 2016-08-10
US15/420,324 2017-01-31
US15/420,324 US20170222684A1 (en) 2016-02-01 2017-01-31 Unidirectional clock signaling in a high-speed serial link
PCT/US2017/016092 WO2017136474A1 (en) 2016-02-01 2017-02-01 Unidirectional clock signaling in a high-speed serial link

Publications (2)

Publication Number Publication Date
CN108605056A CN108605056A (zh) 2018-09-28
CN108605056B true CN108605056B (zh) 2021-06-29

Family

ID=59385580

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201780009110.6A Active CN108702358B (zh) 2016-02-01 2017-02-01 可缩放高效高速串行化互连
CN201780009117.8A Active CN108605056B (zh) 2016-02-01 2017-02-01 高速串行链路中的单向时钟信令
CN201780009114.4A Pending CN108605055A (zh) 2016-02-01 2017-02-01 串行链路中的可编程分布式数据处理

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201780009110.6A Active CN108702358B (zh) 2016-02-01 2017-02-01 可缩放高效高速串行化互连

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201780009114.4A Pending CN108605055A (zh) 2016-02-01 2017-02-01 串行链路中的可编程分布式数据处理

Country Status (4)

Country Link
US (1) US10423567B2 (zh)
EP (3) EP3411956A1 (zh)
CN (3) CN108702358B (zh)
WO (3) WO2017136474A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979432B2 (en) 2016-02-01 2018-05-22 Qualcomm Incorporated Programmable distributed data processing in a serial link
US10159053B2 (en) 2016-02-02 2018-12-18 Qualcomm Incorporated Low-latency low-uncertainty timer synchronization mechanism across multiple devices
KR102530073B1 (ko) * 2016-07-15 2023-05-08 삼성전자주식회사 Rf 집적회로와 디지털 통신하는 베이스밴드 집적회로 및 이를 포함하는 장치
KR102429485B1 (ko) * 2016-12-13 2022-08-05 현대자동차주식회사 사용자 인터페이스 장치 및 방법
US10928440B2 (en) * 2018-04-06 2021-02-23 Bently Nevada, Llc Monitoring system with bridges for interconnecting system elements
US11300604B2 (en) * 2018-04-06 2022-04-12 Bently Nevada, Llc Monitoring system with serial data lane transmission network
US11009864B2 (en) 2018-04-06 2021-05-18 Bently Nevada, Llc Gated asynchronous multipoint network interface monitoring system
US10715357B2 (en) * 2018-08-24 2020-07-14 Intel Corporation Adaptation of a transmit equalizer using management registers
WO2020106322A1 (en) * 2018-11-21 2020-05-28 Intel Corporation AFE to SoC HIGH SPEED INTERFACE FOR FULL DUPLEX DOCSIS CABLE MODEMS
EP3563329B1 (en) * 2018-12-13 2022-02-09 Advanced New Technologies Co., Ltd. Off-chain smart contract service based on trusted execution environment
US10581587B1 (en) * 2019-04-29 2020-03-03 Advanced Micro Devices, Inc. Deskewing method for a physical layer interface on a multi-chip module
EP3780528A1 (en) 2019-08-14 2021-02-17 NXP USA, Inc. Multi-level encoding for battery management system
EP3780526A1 (en) * 2019-08-14 2021-02-17 NXP USA, Inc. Multi-level encoding for battery management system field
US10892775B1 (en) 2019-12-03 2021-01-12 Samsung Electronics Co., Ltd Transmitting system, apparatus and method for unifying parallel interfaces
CN111339003B (zh) * 2020-01-08 2023-12-12 中国船舶集团有限公司第七二四研究所 一种基于fpga的通用多通道数据发送系统及方法
CN113138623B (zh) * 2020-01-20 2024-10-11 南京深视光点科技有限公司 全局时钟同步传输方法
US11115176B1 (en) * 2020-03-04 2021-09-07 Qualcomm Incorporated System and method for adjusting clock-data timing in a multi-lane data communication link
US12095709B2 (en) * 2020-03-16 2024-09-17 Sony Semiconductor Solutions Corporation Communication device, communication system and communication method
US11831739B2 (en) * 2020-06-22 2023-11-28 Sony Semiconductor Solutions Corporation Communication apparatus and communication system
US20230205722A1 (en) * 2020-06-22 2023-06-29 Sony Semiconductor Solutions Corporation Communication device and communication system
ES2961058T3 (es) * 2020-06-26 2024-03-07 Airbus Defence And Space Sau Sistema y método de comunicación para equipos en operaciones aerotransportadas
CN112333197B (zh) * 2020-11-16 2022-11-29 展讯通信(上海)有限公司 数据传输方法及系统、用户设备及存储介质
US11706150B2 (en) 2021-04-06 2023-07-18 Apple Inc. Data encoding and packet sharing in a parallel communication interface
KR20220169049A (ko) * 2021-06-17 2022-12-27 삼성전자주식회사 데이터 패킷을 생성하는 인코더, 이의 동작 방법, 및 이를 포함하는 전자 장치의 동작 방법
US11906585B2 (en) * 2021-12-16 2024-02-20 Samsung Electronics Co., Ltd. Methods and systems for performing built-in-self-test operations without a dedicated clock source
US12041488B2 (en) * 2022-01-05 2024-07-16 Dell Products, L.P. Radio unit cascading in radio access networks
CN114362770B (zh) * 2022-01-10 2023-07-11 中国船舶集团有限公司第七一一研究所 数据发送器件、数据接收器件、电子装置以及方法
DE102023109819B3 (de) 2023-04-19 2024-08-01 Infineon Technologies Ag Elektronische vorrichtung und verfahren zum abtasten von empfangenen daten
KR102712015B1 (ko) 2024-01-03 2024-09-30 주식회사 메타씨앤아이 디스플레이 장치에 사용되는 직렬 인터페이스 회로 장치 및 이를 제어하는 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101399654A (zh) * 2007-09-25 2009-04-01 华为技术有限公司 一种串行通信方法和装置
CN105229623A (zh) * 2013-05-24 2016-01-06 Arm有限公司 用于主设备和异步从设备之间经由接口的通信的数据处理装置和方法

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0489944B1 (de) * 1990-12-08 1995-09-20 Deutsche ITT Industries GmbH Master-Slave-Datenübertragungsverfahren mit flexiblem Eindraht-Bus
DE19526586A1 (de) 1994-07-21 1996-01-25 Mitel Corp Integriertes Telekommunikationssystem
US6535926B1 (en) 1999-09-30 2003-03-18 Rockwell Automation Technologies, Inc. Time synchronization system for industrial control network using global reference pulses
US6772251B1 (en) 2001-05-04 2004-08-03 Cypress Semiconductor Corporation Bit interleaved data serial interface
US7142557B2 (en) 2001-12-03 2006-11-28 Xilinx, Inc. Programmable logic device for wireless local area network
US6977960B2 (en) 2001-08-16 2005-12-20 Matsushita Electric Industrial Co., Ltd. Self test circuit for evaluating a high-speed serial interface
FR2835126B1 (fr) 2002-01-22 2004-11-05 Thales Sa Recepteur et procede de reception peu sensible au phenomene de fading
US7343535B2 (en) 2002-02-06 2008-03-11 Avago Technologies General Ip Dte Ltd Embedded testing capability for integrated serializer/deserializers
US7089379B1 (en) * 2002-06-28 2006-08-08 Emc Corporation Large high bandwidth memory system
US7111208B2 (en) 2002-10-02 2006-09-19 Broadcom Corporation On-chip standalone self-test system and method
KR100493234B1 (ko) 2002-11-25 2005-06-02 한국전자통신연구원 노드 시스템, 이를 이용한 이중링 통신 시스템 및 그 통신방법
US8144810B2 (en) 2003-02-19 2012-03-27 Csr Technology Inc. Serial radio frequency to baseband interface with programmable clock
US7243174B2 (en) 2003-06-24 2007-07-10 Emerson Electric Co. System and method for communicating with an appliance through an optical interface using a control panel indicator
US20050010685A1 (en) 2003-07-11 2005-01-13 Agency For Science, Technology And Research Method and a system for enabling data to be stored in a computer network; a method and a system for storing data in a computer network
DE10334838B4 (de) * 2003-07-30 2005-06-16 Infineon Technologies Ag Sende-/Empfangsanordnung und Verfahren zum bidirektionalen Übertragen von Daten über eine digitale Schnittstelle in einem Funkgerät
US20050068987A1 (en) 2003-09-24 2005-03-31 Schaik Carl Van Highly configurable radar module link
US7275195B2 (en) 2003-10-03 2007-09-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Programmable built-in self-test circuit for serializer/deserializer circuits and method
US7363563B1 (en) 2003-12-05 2008-04-22 Pmc-Sierra, Inc. Systems and methods for a built in test circuit for asynchronous testing of high-speed transceivers
US8478921B2 (en) 2004-03-31 2013-07-02 Silicon Laboratories, Inc. Communication apparatus implementing time domain isolation with restricted bus access
JP2008512907A (ja) 2004-09-07 2008-04-24 フリースケール セミコンダクター インコーポレイテッド 装置およびその制御インターフェース
US20060268699A1 (en) * 2005-05-27 2006-11-30 Nokia Corporation High speed serial bus architecture employing network layer quality of service (QoS) management
CN100407614C (zh) 2005-10-18 2008-07-30 上海华为技术有限公司 一种无线数据传输方法
US20070176919A1 (en) 2006-01-31 2007-08-02 Toshiba Matsushita Display Technology Co., Ltd. Interface
US8325767B2 (en) 2006-09-29 2012-12-04 Agilent Technologies, Inc. Enhancement of IEEE 1588 synchronization using out-of-band communication path
US7953162B2 (en) 2006-11-17 2011-05-31 Intersil Americas Inc. Use of differential pair as single-ended data paths to transport low speed data
US8203976B2 (en) 2007-01-16 2012-06-19 Ricoh Company, Ltd. Interface device and image forming apparatus
GB2455058B (en) 2007-10-09 2012-05-30 Motorola Mobility Inc A cellular communication system and a method of operation therefor
US8363707B2 (en) 2008-03-21 2013-01-29 Micron Technology, Inc. Mixed-mode signaling
US8184651B2 (en) * 2008-04-09 2012-05-22 Altera Corporation PLD architecture optimized for 10G Ethernet physical layer solution
US20100031077A1 (en) * 2008-07-29 2010-02-04 Swoboda Gary L Alternate Signaling Mechanism Using Clock and Data
JP5330772B2 (ja) 2008-08-29 2013-10-30 ルネサスエレクトロニクス株式会社 半導体集積回路およびその動作方法
KR100994128B1 (ko) * 2008-09-23 2010-11-15 한국전자통신연구원 고정밀 네트워크 동기를 위한 타임 스탬핑 방법 및 장치
DE102008054887B4 (de) * 2008-12-18 2021-03-25 Dr. Johannes Heidenhain Gmbh Vorrichtung und Verfahren zur automatisierten Erkennung einer Schnittstelle
US8249049B2 (en) 2009-03-17 2012-08-21 Cisco Technology, Inc. Clock synchronization
CN101552733B (zh) * 2009-05-15 2011-07-20 华为终端有限公司 一种基于spi实现数据传输的方法和系统
CN101572702B (zh) * 2009-05-27 2012-07-25 大连理工计算机控制工程有限公司 高速总线主从网络通信调度方法
US8098602B2 (en) 2009-08-21 2012-01-17 Maxim Integrated Products, Inc. System and method for transferring data over full-duplex differential serial link
US8719613B2 (en) * 2010-01-28 2014-05-06 Futurewei Technologies, Inc. Single-wire serial interface with delay module for full clock rate data communication between master and slave devices
US8422516B2 (en) * 2010-02-25 2013-04-16 Telefonaktiebolaget Lm Ericsson (Publ) Scalable DigRF architecture
GB201005983D0 (en) 2010-04-09 2010-05-26 Icera Inc Method and device for sending signals between a radio frequency circuit and a baseband circuit
US8307235B2 (en) 2010-05-05 2012-11-06 National Instruments Corporation Cross controller clock synchronization
US8989187B2 (en) 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
CA2743738A1 (en) 2010-06-18 2011-12-18 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry, Through The Communications Research Centre Canada Multilayer decoding using persistent bits
US8724758B2 (en) 2011-01-06 2014-05-13 Marvell World Trade Ltd. Power-efficient variable-clock-rate DIGRF interface
US8737552B1 (en) 2011-01-19 2014-05-27 Xilinx, Inc. Synchronous data transfer
US8787471B1 (en) 2011-02-15 2014-07-22 Marvell International Ltd. Alignment of DigRF4 lane
CN102141969B (zh) 2011-03-02 2013-04-03 浪潮(北京)电子信息产业有限公司 串行电路中的数据传输方法及系统
US8774096B2 (en) * 2011-03-02 2014-07-08 Blackbird Technology Holdings, Inc. Method and apparatus for rapid group synchronization
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8908779B2 (en) 2011-04-29 2014-12-09 Linear Technology Corporation Isolated communications interface
US8972646B2 (en) 2012-03-30 2015-03-03 Intel Corporation Superspeed inter-chip interface
US8437343B1 (en) 2012-05-22 2013-05-07 Intel Corporation Optimized link training and management mechanism
US9239810B2 (en) 2012-06-30 2016-01-19 Intel Corporation Low power universal serial bus
JP2014017590A (ja) 2012-07-06 2014-01-30 Fujitsu Ltd 電子回路及び通信方法
WO2014014520A1 (en) 2012-07-18 2014-01-23 Intel Corporation Measuring time offsets between devices with independent silicon clocks
CN102880427A (zh) * 2012-08-20 2013-01-16 北京奇作电子有限公司 一种基于fpga的sata主控制器
EP2936766A4 (en) 2012-12-20 2016-07-27 Qualcomm Inc APPARATUS AND METHOD FOR ENCODING MDIO TRANSMISSIONS IN SGMII TRANSMISSIONS
US9785604B2 (en) 2013-02-15 2017-10-10 Intel Corporation Preset evaluation to improve input/output performance in high-speed serial interconnects
US9225507B1 (en) 2013-06-04 2015-12-29 Pmc-Sierra Us, Inc. System and method for synchronizing local oscillators
US9608710B2 (en) * 2013-08-08 2017-03-28 Intel IP Corporation Techniques for device-to-device communications
US9490791B2 (en) 2013-08-29 2016-11-08 Advanced Micro Devices, Inc. Method and circuit for detecting USB 3.0 LFPS signal
US9489200B2 (en) 2013-09-06 2016-11-08 Huawei Technologies Co., Ltd. Method and apparatus for asynchronous processor with fast and slow mode
US10108578B2 (en) * 2013-09-11 2018-10-23 Texas Instruments Incorporated Single wire communications interface and protocol
US9077512B2 (en) 2013-09-18 2015-07-07 Analog Devices, Inc. Lock detector for phase-locked loop
CN105612507A (zh) * 2013-10-08 2016-05-25 高通股份有限公司 I2c从动设备与相机控制接口扩展设备在共享控制数据总线上的共存
US9542251B2 (en) 2013-10-30 2017-01-10 Oracle International Corporation Error detection on a low pin count bus
US9047934B1 (en) 2013-11-13 2015-06-02 Altera Corporation Timing signal adjustment for data storage
CN104734998B (zh) 2013-12-20 2018-11-06 华为技术有限公司 一种网络设备及信息传输方法
GB2522057B (en) * 2014-01-13 2021-02-24 Advanced Risc Mach Ltd A data processing system and method for handling multiple transactions
US9582454B2 (en) 2014-03-18 2017-02-28 Intel Corporation Reconfigurable transmitter
US9369272B2 (en) 2014-03-27 2016-06-14 Qualcomm Incorporated Serial time-division-multiplexed bus with bidirectional synchronization/control word line
WO2015191888A1 (en) 2014-06-11 2015-12-17 Adc Telecommunications, Inc. Bitrate efficient transport through distributed antenna systems
US9647852B2 (en) 2014-07-17 2017-05-09 Dell Products, L.P. Selective single-ended transmission for high speed serial links
US9467195B2 (en) 2014-07-28 2016-10-11 Celeno Communications (Israel) Ltd. Concurrent dual-band WLAN device using MCM
CN104156677B (zh) * 2014-08-12 2017-02-15 清华大学深圳研究生院 一种基于fpga的硬盘加密、解密系统
US9672182B2 (en) 2014-08-21 2017-06-06 Infineon Technologies Ag High-speed serial ring
KR20170016255A (ko) 2015-08-03 2017-02-13 삼성전자주식회사 동작 중에 클락을 변경할 수 있는 데이터 송신 장치 및 이를 포함하는 데이터 인터페이스 시스템
US9727519B2 (en) 2015-08-26 2017-08-08 Blackberry Limited Emulating bi-directional bus communication using separate unidirectional channels
US9678552B2 (en) 2015-10-30 2017-06-13 Dell Products, Lp System and method for powering a wireless end point in a server rack of a data center
US9979432B2 (en) 2016-02-01 2018-05-22 Qualcomm Incorporated Programmable distributed data processing in a serial link
US10159053B2 (en) 2016-02-02 2018-12-18 Qualcomm Incorporated Low-latency low-uncertainty timer synchronization mechanism across multiple devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101399654A (zh) * 2007-09-25 2009-04-01 华为技术有限公司 一种串行通信方法和装置
CN105229623A (zh) * 2013-05-24 2016-01-06 Arm有限公司 用于主设备和异步从设备之间经由接口的通信的数据处理装置和方法

Also Published As

Publication number Publication date
EP3412016B1 (en) 2020-01-22
CN108702358A (zh) 2018-10-23
EP3411956A1 (en) 2018-12-12
EP3411999A1 (en) 2018-12-12
CN108702358B (zh) 2020-12-08
US10423567B2 (en) 2019-09-24
WO2017136455A1 (en) 2017-08-10
CN108605056A (zh) 2018-09-28
WO2017136474A1 (en) 2017-08-10
EP3412016A1 (en) 2018-12-12
WO2017136452A1 (en) 2017-08-10
CN108605055A (zh) 2018-09-28
US20170220517A1 (en) 2017-08-03

Similar Documents

Publication Publication Date Title
CN108605056B (zh) 高速串行链路中的单向时钟信令
US9979432B2 (en) Programmable distributed data processing in a serial link
US11386033B2 (en) Extending multichip package link off package
US11387852B2 (en) Time encoded data communication protocol, apparatus and method for generating and receiving a data signal
US9264368B2 (en) Chip-to-chip communications
US11907140B2 (en) Serial interface for semiconductor package
EP2778939A2 (en) Optical memory extension architecture
US10461805B2 (en) Valid lane training
US9734116B2 (en) Method, apparatus and system for configuring a protocol stack of an integrated circuit chip
JP2010508599A (ja) 高速シリアルバッファを有するメモリシステム
EP2972929B1 (en) Systems and methods for serial communication
US9524265B2 (en) Providing a serial protocol for a bidirectional serial interconnect
US11979177B2 (en) Time encoded data communication protocol, apparatus and method for generating and receiving a data signal

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant