基于分层结构的片间互联接口及其写操作和读操作的方法与流程

文档序号:12123741阅读:271来源:国知局
基于分层结构的片间互联接口及其写操作和读操作的方法与流程
本发明实施例涉及处理器互联
技术领域
,尤其是涉及一种基于SerDes串行传输技术,在点对点互联结构的片间数据传输过程中的基于分层结构的片间互联接口及其写操作和读操作的方法。
背景技术
:随着信息时代的发展,传统摩尔定律,即每隔18到24个月,处理器时钟频率翻一番,已转变为处理器的个数、线程数和其他并行算法性能的翻番。为了满足信息时代的高性能需求,计算机系统逐渐由单核向多核、由多核向多片发展。因此,片间互联已成为计算机体系结构研究领域的热点问题。多片互联,提供给芯片间信息共享的方式,极大地提升对大规模数据计算程序的处理能力。高速、高效,并且保证数据正确性的片间互联接口可以有效地减少芯片间的通信延时,提升处理器进行运算程序的有效时间比,从而有效提升系统的处理能力。目前,业界正不遗余力地设计高速、高效、可靠的片间互联接口协议,然而,由于现有协议的设计目标、方向不同,在实时性、带宽要求高的应用场景下,不能有效地发挥各自的优势。有鉴于此,特提出本发明。技术实现要素:本发明实施例提供一种片间互联接口,以至少部分地解决如何实现低延迟、高带宽及扩展性强的传输的技术问题;此外,还提供了一种利用片间互联接口进行写操作和读操作的方法。为了实现上述目的,一方面,提供了以下技术方案:一种基于分层结构的片间互联接口,用于处理器,所述处理器分别与存储器和物理链路及数据缓冲区相连;所述接口包括:事务层,被配置为从存储器搬运读或写操作的数据,并解析由数据链路层传递来的数据,并在所述数据链路层对所述数据缓冲区进行写操作时,从所述数据缓冲区读取数据,以及在使能CRC校验且校验正确时,从所述数据缓冲区读取数据;所述数据链路层,被配置为在所述事务层与物理层之间进行并行数据的拆分和组合、控制码的装配和解析,并根据物理通道数,对所述读或写操作的数据进行分组;所述物理层,被配置为根据所述物理通道,对所述读或写操作数据进行分组,并处理所述数据链路层与所述物理链路之间的数据。进一步地,所述事务层具体包括:配置模块,被配置为生成配置数据,以使所述处理器通过总线访问远端地址寄存器、本地地址寄存器、传输模式寄存器、使能寄存器和状态寄存器;高速读写数据模块,被配置为在所述使能寄存器发出使能信号后,在所述存储器与数据包管理模块之间进行数据的所述读或写操作;数据包管理模块,被配置为生成操作请求包,并根据所述配置模块生成的所述配置数据生成写或读操作包头控制字,从所述高速读写数据模块获取所述写操作数据,并生成CRC冗余校验码,将所述CRC冗余校验码写入所述数据缓冲区。进一步地,所述高速读写数据模块,具体被配置为:在作为所述写操作和所述读操作的第一发送端时,从所述存储器读取数据,并将所述数据发送至所述数据包管理模块,在作为所述写操作和所述读操作的第一接收端且在所述传输模式寄存器使能CRC且CRC冗余码校验模块校验正确的情况下,从所述数据包管理模块读取数据包,并将所述数据写入所述存储器;所述数据包管理模块,具有第二发送端和第二接收端,并具体被配置为其所述第二发送端生成写操作请求包、读操作请求包和所述数据包,以及其所述第二接收端进行数据解析;所述数据链路层具体包括:所述CRC冗余码校验模块,被配置为在所述处理器通过所述总线配置所述传输模式寄存器使能CRC,且在所述高速读写数据模块作为所述第一接收端的情况下,接收所述高速读写数据模块生成的数据包包头信息且根据所述包头信息确定是否进行CRC校验,并根据校验结果生成CRC校验响应包;控制字管理模块,被配置为为所述数据包管理模块和通道管理模块生成的数据包添加控制字;所述通道管理模块,具有第三发送端和第三接收端,并被配置为其所述第三发送端依据所述配置模块生成的配置信息,将所述数据缓冲区的数据分配至所述物理层,并且其所述第三接收端依据所述物理通道个数配置,将所述控制字管理模块产生的添加了控制字的数据包分配到各个所述物理通道中,并插入数据指令标志码,以及从所述各物理通道接收数据,并将数据进行对齐,获取有效数据包并将所述有效数据包发送至所述控制字管理模块。进一步地,所述物理层具体包括:物理编码子层模块,包括:数据编码解码模块,具有第四发送端和第四接收端,并被配置为其所述第四发送端将时钟信号嵌入所述数据链路层与所述物理链路之间的数据中,以及其所述第四接收端从接收所述数据链路层与所述物理链路之间的所述数据中提取时钟信号,并解析有效数据;数据加扰解扰模块,被配置为处理由所述数据编码解码模块编码后的数据;物理介附加子层模块,包括:数据串化解串模块,具有第五发送端和第五接收端,并被配置为其所述第五发送端将第一慢速并行数据串化为第一高速串行数据,以及其所述第五接收端将第二高速串行数据转化为第二慢速并行数据。为了实现上述目的,另一方面,还提供一种利用至少两个上述基于分层结构的片间互联接口进行写操作的方法,所述写操作包括:第一基于分层结构的片间互联接口执行以下操作:依据所述传输模式寄存器生成写操作的包头控制字,并将所述包头控制字发送至所述物理通道,以及根据第二基于分层结构的片间互联接口反馈的处理结果进行写操作;所述第二基于分层结构的片间互联接口执行以下操作:从所述物理通道接收所述包头控制字并进行解析,得到包头控制信息,并根据所述包头控制信息进行使能或不使能CRC读操作,将所述处理结果发送至所述第一基于分层结构的片间互联接口。进一步地,所述写操作的方法具体包括:第一基于分层结构的片间互联接口执行以下操作:1A:所述数据包管理模块依据所述配置模块生成写操作包头控制字,写入所述数据缓冲区;1B:所述高速读写数据模块从本地地址中读取操作数据,写入所述数据缓冲区;1C:判断是否使能CRC,若是,所述数据包管理模块生成CRC冗余校验码,并写入所述数据缓冲区;否则,执行步骤1D;1D:传输所述事务层与所述数据链路层之间的数据,通过所述物理链路接收第二基于分层结构的片间互联接口反馈的CRC校验响应包,并在所述事务层对所述数据缓冲区进行写操作时,使所述数据链路层从所述数据缓冲区读取数据;1E:所述控制字管理模块为所述数据包添加控制字;1F:所述通道管理模块依据所述物理通道个数配置,将所述控制字管理模块产生的数据分配到所述各物理通道中,并插入所述数据指令标志码;1G:所述数据编码解码模块将所述时钟信号插入数据流中,并对数据进行重新排序;1H:所述数据串化解串模块将所述各物理通道并行慢速数据进行串化,分配到所述物理链路中;所述第二基于分层结构的片间互联接口执行以下操作:2I:所述数据串化解串模块从所述物理链路中读取数据,并将高速串行数据进行并行化;2J:所述数据扰码解扰模块对所述数据链路层与所述物理链路之间的数据进行还原操作;2K:所述控制字管理模块依据所述数据指令标志码剥离控制码信息,提取所述数据包;2L:所述通道管理模块从所述各物理通道接收数据,并将所述数据进行对齐,获取有效数据包;2M:所述CRC冗余码校验模块接收所述高速读写数据模块生成的数据包,分析包头信息,并在使能CRC校验的情况下,对所述数据包进行CRC校验,并将除CRC校验码外的数据写入数据缓冲区,以及根据CRC冗余码校验结果生成所述CRC校验响应包,并将所述CRC校验响应包反馈至所述第一基于分层结构的片间互联接口;2N:传输数据链路层至事务层之间的数据;2O:所述数据包管理模块分离所述数据包的包头和数据有效负载;2P:所述高速读写数据模块从所述数据包管理模块读取数据,并写入所述存储器。为了实现上述目的,还提供一种利用至少两个上述基于分层结构的片间互联接口进行读操作的方法,所述读操作包括:第一基于分层结构的片间互联接口执行以下操作:依据所述传输模式寄存器生成读操作的包头控制字,并将所述包头控制字发送至所述物理通道,以及根据第二基于分层结构的片间互联接口反馈的处理结果进行读操作;所述第二基于分层结构的片间互联接口执行以下操作:从所述物理通道接收所述包头控制字并进行解析,得到包头控制信息,并根据所述包头控制信息进行使能或不使能CRC读操作,将所述处理结果发送至所述第一基于分层结构的片间互联接口。进一步地,所述读操作的方法具体包括:第一基于分层结构的片间互联接口执行以下操作:3A:所述数据包管理模块依据所述配置模块生成读操作包头控制字,写入所述数据缓冲区;3B:所述高速读写数据模块从本地地址中读取操作数据,写入所述数据缓冲区;3C:判断是否使能CRC,若是,所述数据包管理模块生成CRC冗余校验码,并写入所述数据缓冲区;否则,执行步骤3D;3D:传输所述事务层与所述数据链路层之间的数据,通过所述物理链路接收第二基于分层结构的片间互联接口反馈的CRC校验响应包,并在所述事务层对所述数据缓冲区进行读操作时,使所述数据链路层从所述数据缓冲区读取数据;3E:所述控制字管理模块为所述数据包添加控制字;3F:所述通道管理模块依据所述物理通道个数配置,将所述控制字管理模块产生的数据分配到所述各物理通道中,并插入所述数据指令标志码;3G:所述数据编码解码模块将所述时钟信号插入数据流中,并对数据进行重新排序;3H:所述数据串化解串模块将所述各物理通道并行慢速数据进行串化,分配到所述物理链路中;所述第二基于分层结构的片间互联接口执行以下操作:4I:所述数据串化解串模块从所述物理链路中读取数据,并将高速串行数据进行并行化;4J:所述数据扰码解扰模块对所述数据链路层与所述物理链路之间的数据进行还原操作;4K:所述控制字管理模块依据所述数据指令标志码剥离控制码信息,提取所述数据包;4L:所述通道管理模块从所述各物理通道接收数据,并将所述数据进行对齐,获取有效数据包;4M:所述CRC冗余码校验模块接收所述高速读写数据模块生成的数据包,分析包头信息,并在使能CRC校验的情况下,对所述数据包进行CRC校验,并将除CRC校验码外的数据写入数据缓冲区,以及根据CRC冗余码校验结果生成所述CRC校验响应包,并将所述CRC校验响应包反馈至所述第一基于分层结构的片间互联接口;4N:传输数据链路层至事务层之间的数据;4O:所述数据包管理模块分离所述数据包的包头和数据有效负载;4P:所述高速读写数据模块从所述存储器读取数据,并写入所述数据包管理模块。本发明实施例将接口划分为事务层、数据链路层和物理层,其中,事务层被配置为从存储器搬运读或写操作的数据,并解析由数据链路层传递来的数据,并在数据链路层对数据缓冲区进行写操作时,从数据缓冲区读取数据,以及在使能CRC校验且校验正确时,从数据缓冲区读取数据;数据链路层被配置为在事务层与物理层之间进行并行数据的拆分和组合、控制码的装配和解析,并根据物理通道数,对读或写操作的数据进行分组;物理层被配置为根据物理通道,对读或写操作数据进行分组,并处理数据链路层与物理链路之间的数据。通过采取基于“包”进行数据传输,所以额外负载小;支持“主从”和“对等”两种点对点通信方式;在点对点互联结构的片间数据传输过程中,实现了低延迟、高带宽及扩展性强的传输。附图说明图1为根据本发明实施例的物理链路示意图;图2为根据本发明实施例的片间互联接口的结构示意图;图3为根据本发明实施例的片间互联接口应用于SoC片上系统的示意图;图4为根据本发明实施例的写操作请求和数据包的结构示意图;图5为根据本发明实施例的读操作请求包的结构示意图;图6为根据本发明另一实施例的片间互联接口的结构示意图;图7为根据本发明实施例的对于不使能CRC写操作的本地Link与远端Link之间的数据交互示意图;图8为根据本发明实施例的对于使能CRC写操作的本地Link与远端Link之间的数据交互示意图;图9为根据本发明实施例的对于不使能CRC读操作的本地Link与远端Link之间的数据交互示意图;图10为根据本发明实施例的对于使能CRC读操作的本地Link与远端Link之间的数据交互示意图;图11为根据本发明实施例的基于分层结构的片间互联接口的应用场景示意图。具体实施方式下面结合附图和具体的实施例来详细说明本发明。在不冲突的情况下,本发明实施例中的各技术特征可以相互组合或拆分而形成技术方案。基于本申请中的实施例,本领域普通技术人员在不付出创造性劳动的前提下,所获的所有其它等同或明显变型的实施例均落在本发明的保护范围内。本发明实施例基于SerDes(Serializer(串行器)/Deserializer(解串器)的简称)串行传输技术,使用端到端的数据传输方式,并应用在点对点互联结构的片间数据传输过程中。其中,两端均包含发送逻辑模块(TX,也即发送端)和接收逻辑(RX,也即接收端)模块。本文规定发起读、写操作命令的接口为本地Link,简称L1;规定接收物理链路(如图1所示)传递的读、写请求,被动进行相应操作的接口为远端Link,简称L2;SoC为SystemOnChip,即片上系统;规定L1所处系统为SoC1,L2所处系统为SoC2。总线包括数据与地址信息,文中系统数据位宽与系统地址位宽分别指:在片上系统中,接口与总线相接的数据位宽和地址位宽。这里,“本地”与“远端”是一个相对的概念。各SoC中的接口模块既可以是本地Link,也可以是远端Link,这取决于是否为操作命令发起者。Link写操作是指L1读取SoC1某地址段中的数据,然后写入SoC2某地址段。读操作是指L1读取SoC2某地址段的数据至SoC1某地址段。读、写操作均可以选择是否进行CRC校验。“本地地址”、“远端地址”、“Link写操作”与“Link读操作”之间的关系如表一所示:表一:操作类型数据源地址数据目的地址Link写操作本地地址远端地址Link读操作远端地址本地地址为了满足应用领域对实时性、高带宽及高扩展性的需求,本发明实施例提出一种基于分层结构的片间互联接口,其用于处理器,处理器分别与存储器和物理链路及数据缓冲区相连;如图2所示,该接口10可以包括:事务层12、数据链路层14和物理层16。其中,事务层12被配置为从存储器搬运读或写操作的数据,并解析由数据链路层传递来的数据,并在数据链路层对数据缓冲区进行写操作时,从数据缓冲区读取数据,以及在使能CRC校验且校验正确时,从数据缓冲区读取数据。数据链路层14被配置为在事务层与物理层之间进行并行数据的拆分和组合、控制码的装配和解析,并根据物理通道数,对读或写操作的数据进行分组。所述物理层16被配置为根据物理通道,对读或写操作数据进行分组,并处理数据链路层与物理链路之间的数据。其中,由于事务层的工作频率与数据链路层的工作频率不同。事务层与数据链路层之间可以通过缓冲区来进行数据的传递。优选地,可以将缓冲区设置为发送数据缓冲区和接收数据缓冲区。缓冲区可以采用双端RAM。缓冲区的数据位宽与系统数据位宽一致,且深度与有效数据负载的最大包长相一致。缓冲区的接口信息包括:时钟信号;写使能位:其高、低电平分别代表读写操作;地址位宽:其为缓冲区的深度,即最大数据包长所需位宽;数据输入和数据输出:其位宽与系统数据位宽一致。图3示例性地示出了本发明实施例提出的基于分层结构的片间互联接口应用于SoC片上系统的示意图。本发明实施例通过采用上述技术方案,实现了处理器间低延迟、高带宽、高扩展性的点对点串行互联的技术效果。在一个可选的实施例中,上述事务层具体可以包括:配置模块、高速读写数据模块及数据包管理模块。其中,配置模块被配置为生成配置数据,以使处理器通过总线访问远端地址寄存器、本地地址寄存器、传输模式寄存器、使能寄存器和状态寄存器。高速读写数据模块被配置为在使能寄存器发出使能信号后,在存储器与数据包管理模块之间进行数据的读或写操作。数据包管理模块被配置为生成操作请求包,并根据配置模块生成的配置数据生成写或读操作包头控制字,从高速读写数据模块获取写操作数据,并生成CRC冗余校验码,将CRC冗余校验码写入数据缓冲区。在上述实施例中,配置模块为处理器提供功能配置接口,处理器通过总线可以访问如下寄存器:远端地址寄存器、本地地址寄存器、传输模式寄存器、使能寄存器和状态寄存器。其中,远端地址寄存器的位宽与系统(本文中的系统例如可以为SoC片上系统)地址位宽一致,其存储写操作目的地址或读操作源地址;在传输过程中,将写操作目的地址或读操作源地址发送给接收端,接收端依据传输操作请求,从读操作源地址读取请求数据或往写操作目的地址写操作数据。本地地址寄存器的位宽与系统地址位宽一致,其存储写操作源地址或读操作目的地址;在传输过程中,发送端依据传输操作请求,从读操作目的地址读取操作数据,或往写操作源地址写读回数据。传输模式寄存器的位宽与实际应用场景中所需的最大传输数据长度有关,需对齐系统数据位宽;并负责配置本次传输选用物理通道数、操作类型(读/写)、数据包类型(操作请求包/CRC响应包)、有效数据长度、是否使能CRC(循环冗余码校验)硬件校验功能等。使能寄存器的位宽与系统数据位宽一致,且负责配置物理通道的传输速度、链路复位和操作传输使能。状态寄存器的位宽与实际应用中所需状态个数相关,诸如:操作起止标志位,各模块的工作状态,传输等待超时中断状态,重传次数过多状态等;处理器配置远端地址寄存器、本地地址寄存器、传输模式寄存器及使能寄存器结束后,可进行不影响操作数据存储器外的操作,如需判断该操作是否正确执行完毕,可查询状态寄存器,例如:可以查询传输错误状态、传输进度、本次操作是否正常结束等。状态寄存器也可以记录各模块的状态信息,在发送失败后,还可以被配置为错误定位及排除故障。上述高速读写数据模块在传输操作使能后开始操作,采用可支持高速读写操作的总线协议。在一个可选的实施例中,上述高速读写数据模块具体还可以被配置为在作为写操作和读操作的第一发送端时,从存储器读取数据,并将数据发送至数据包管理模块,在作为写操作和读操作的第一接收端且在传输模式寄存器使能CRC且CRC冗余码校验模块校验正确的情况下,从数据包管理模块读取数据包,并将数据写入存储器。上述数据包管理模块具有第二发送端和第二接收端,并具体还可以被配置为其第二发送端生成写操作请求包、读操作请求包和数据包,以及其第二接收端进行数据解析。上述数据链路层具体可以包括:CRC冗余码校验模块、控制字管理模块及通道管理模块。其中,CRC冗余码校验模块被配置为在处理器通过总线配置传输模式寄存器使能CRC,且在高速读写数据模块作为第一接收端的情况下,接收高速读写数据模块生成的数据包包头信息且根据包头信息确定是否进行CRC校验,并根据校验结果生成CRC校验响应包。控制字管理模块被配置为为数据包管理模块和通道管理模块生成的数据包添加控制字。通道管理模块具有第三发送端和第三接收端,并被配置为其第三发送端依据配置模块生成的配置信息,将数据缓冲区的数据分配至物理层,并且其第三接收端依据物理通道个数配置,将控制字管理模块产生的添加了控制字的数据包分配到各个物理通道中,并插入数据指令标志码,以及从各物理通道接收数据,并将数据进行对齐,获取有效数据包并将有效数据包发送至控制字管理模块。在上述实施例中,如果高速读写数据模块为写操作和读操作的发送端,则该模块从系统存储器中读取数据交给数据包管理模块;如果高速读写数据模块为写操作和读操作的接收端,(若使能CRC校验,CRC冗余码校验模块校验结果正确),则该模块从数据包管理模块读取数据,并写至目标地址。如果数据包管理模块作为发送端,则其生成写操作请求和数据包、读操作请求包;如果数据包管理模块作为接收端,则其负责解析操作请求包和数据包的内容。图4示例性地示出了写操作请求和数据包的结构示意图。图5示例性地示出了读操作请求包的结构示意图。其中,包头控制字包括:远端地址和此次传输模式配置信息(即:配置模块中的远端地址寄存器和传输模式寄存器中的数据)、本次传输选用物理通道数、操作类型(读/写操作)、数据包类型(操作请求包/CRC响应包)、有效数据长度以及是否使能CRC硬件校验功能等。包头控制字字段定义如表二所示。表二:其中,各字段含义为:远端地址:若为写操作请求,该字段为写目的地址,若为读操作请求,该字段为读取源地址。有效数据长度:表示读写操作传输数据个数,其数据位宽与系统数据位宽相同,其深度由实际应用场景中最大数据包的长度决定。假设数据位宽为32,最大包长为4KB,那么该字段占10位,M等于N+10,其中,数值N被配置为对齐包头控制字宽度为系统数据位宽的整数倍。通道数目:表示传输使能的物理传输通道个数,其支持X1、X4、X8、X16和X32等模式。X后的数字表示通道数目,例如,X4代表传输过程中,使能通道数目为4。保留字段N:8,其可选取部分位留作技术更新。数据包类型:表明数据包为操作请求包、CRC校验正确响应包或者CRC校验错误响应包。传输命令类型:表示传输为写操作或读操作请求。1保留字段,其留作技术扩展。图3中示例性示出的数据有效负载为写操作数据,其位宽为系统数据位宽,其长度为包头控制字中配置的有效数据长度。图3中示例性示出的CRC为冗余校验码的选择,其依据实际应用中对数据传输精确度的要求而定,被配置为补充无效位,以对齐系统数据位宽。在上述实施例中,上述CRC冗余码校验模块作为接收端收到数据后,根据数据包头信息决定是否进行CRC校验。若传输模式寄存器已设置使能CRC校验,则CRC冗余码校验模块对接收的数据进行CRC冗余码校验,并根据校验结果生成CRC校验响应包。具体的,根据校验结果生成CRC校验响应包分为两种情况:a)如果校验错误,则依据接收的数据,生成CRC校验错误响应包,其仅包含包头控制字信息,数据包类型指示为CRC响应包,等待发送端(例如:高速读写数据模块)进行重传操作。若等待重传数据时间超出固定阈值,则中断此操作,设置相应传输错误标志位,然后反馈给处理器,并判定链路故障;若发送端重传次数超出重传阈值,则中断此操作,设置相应传输错误标志位,反馈给处理器,并判定链路故障;b)如果校验正确,则高速读写数据模块将接收数据缓冲区中的数据信息写往目的地址。在上述实施例中,上述控制字管理模块为数据包添加的控制字的定义参见表三:表三:控制字管理模块为数据包添加起始标志码、空闲标志码等,这样有利于接收端将有效数据包从物理层接收的数据中分离出来。其中,IDL码标志物理链路当前无操作请求;物理链路复位时,由COM码进行物理链路两端的数据对齐,以保证物理链路可以正确地接收数据;PAD码是在传输过程中,当物理链路发送速度慢于物理通道传输速度时,为保证信息的正确性和完整性,而给物理链路添加的无效数据;STP码与END码进行信息同步,分别标志数据包的起始与结束。在上述实施例中,上述通道管理模块的发送端依据配置模块配置的信息,将发送缓冲区的数据分配到物理层。上述通道管理模块的接收端依据物理层的信息,将数据信息重新组合为系统数据位宽,并交由控制字管理模块进行分析。若等待接收数据的时间或CRC响应包超出固定阈值,则中断此操作,设置相应传输错误标志位,并反馈给处理器,判定物理链路故障;若发送端接收CRC错误响应包次数超出固定阈值,则中断此操作,设置相应传输错误标志位,并反馈给处理器,判定物理链路故障。本发明实施例采用上述技术方案基于“包”进行数据传输,其额外负载小。在一个可选的实施例中,上述物理层具体可以包括:物理编码子层模块和物理介附加子层模块。其中,物理编码子层模块包括:数据编码解码模块和数据加扰解扰模块。数据编码解码模块具有第四发送端和第四接收端,并被配置为其第四发送端将时钟信号嵌入数据链路层与物理链路之间的数据中,以及其第四接收端从接收数据链路层与物理链路之间的数据中提取时钟信号,并解析有效数据。数据加扰解扰模块被配置为处理由数据编码解码模块编码后的数据。物理介附加子层模块包括数据串化解串模块,数据串化解串模块具有第五发送端和第五接收端,并被配置为其第五发送端将慢速并行数据串化为高速串行数据,以及其第五接收端将高速串行数据转化为慢速并行数据。在上述实施例中,数据加扰解扰模块对数据进行重新排序,这样可以减少连“0”和连“1”的个数。图6示例性地示出了另一基于分层结构的片间互联接口的结构示意图。数据链路层和物理层根据支持通道数,对操作数据进行分组,每组可以包括:并行数据:其位宽由所采用PCS层编码方式决定,与系统数据位宽不一定相同;通道管理模块将有效数据分配到各个物理通道,或将已使能物理通道中的有效数据进行拼接;数据指令标志码:其标志当前并行数据为控制字或有效数据信息;发送空闲标志:其标志当前物理通道是否正在被使用;物理通道传输速度:其例如可以设置为5GT/s、8GT/s等;就绪状态标志:物理链路传输速度配置需要一定的时间,在传输速度稳定后,通过该标志位反馈给数据链路层,表示可以开始进行数据包的传输。通过上述技术方案的描述可知,Link执行不同的操作将处于不同的工作状态。根据上述“本地/远端”、“Link写操作/Link读操作”以及是否使能CRC校验功能,共存在4对、共8种不同的工作状态,如表四所示:表四:其中,对于不使能CRC写操作,即表二中的Case1,本地Link与远端Link之间的数据交互情况如图7所示,其中箭头表示数据流的方向。该操作用于物理链路比较稳定的应用场景,发送端仅将写操作请求和数据包发送给接收端,不需要进行握手通信,传输效率高。对于使能CRC写操作,即表四中的Case2,本地Link与远端Link之间的数据交互情况如图8所示,其中箭头表示数据流的方向。该操作通过握手通信,提升传输可靠性。若图中的CRC响应包为错误响应包,则L1会重新发送写操作请求和数据包,等待CRC校验正确响应包。在传输过程中,如果L1等待CRC响应包的时间超过阈值,则放弃此次操作,设置相应的传输错误标志位,反馈给处理器,并判定链路故障;如果重传次数大于固定阈值,则L1放弃此次操作,并设置相应传输错误标志位;如果校验错误次数大于固定阈值,则L2放弃此次操作,并设置相应的传输错误标志位。对于不使能CRC读操作,即表四中的Case3,本地Link与远端Link之间的数据交互情况如图9所示,其中箭头表示数据流的方向。在该操作中,若L1等待读操作数据时间超出固定阈值,则中断此操作,设置相应传输错误标志,反馈给处理器,并判定链路故障。对于使能CRC读操作,即表四中的Case4,本地Link与远端Link之间的数据交互情况如图10所示,箭头表示数据流的方向。在该操作中,若L1等待读操作数据时间超出固定阈值,则中断此操作,并设置相应的传输错误标志位。若图中的CRC响应包为错误响应包,则L2会重新发送写操作请求和数据包,等待CRC校验正确响应包,如果传输次数大于固定阈值,则L2放弃此次操作,并设置相应传输错误标志位;若L2等待CRC响应包时间超过阈值,则L2放弃此次操作,并设置相应传输错误标志位。图11示例性地示出了本发明实施例提供的基于分层结构的片间互联接口的应用场景示意图。其中,三个SoC(即SoC0、SoC1和SoC2)之间通过本发明实施例提供的基于分层结构的片间互联接口,经由物理链路进行数据传输。需要说明的是,上述实施例提供的基于分层结构的片间互联接口在进行数据传输时,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块再进行分解或者组合。本发明实施例还提供一种利用上述片间互联接口进行写操作的方法,该方法可以由上述片间互联接口实施例执行。该方法可以包括:第一基于分层结构的片间互联接口执行以下操作:依据传输模式寄存器生成写操作的包头控制字,并将包头控制字发送至物理通道,以及根据第二片间互联接口反馈的处理结果进行写操作。第二基于分层结构的片间互联接口执行以下操作:从物理通道接收包头控制字并进行解析,得到包头控制信息,并根据包头控制信息进行使能或不使能CRC读操作,将处理结果发送至第一片间互联接口。本发明实施例通过采用上述技术方案,可以在点对点互联结构的片间数据传输过程中,实现低延迟、高带宽、扩展性强的数据传输。在一个可选的实施例中,上述写操作的方法具体可以包括:第一基于分层结构的片间互联接口执行以下操作:1A:数据包管理模块依据配置模块生成写操作包头控制字,写入数据缓冲区;1B:高速读写数据模块从本地地址中读取操作数据,写入数据缓冲区;1C:判断是否使能CRC,若是,数据包管理模块生成CRC冗余校验码,并写入数据缓冲区;否则,执行步骤1D;1D:传输事务层与数据链路层之间的数据,通过物理链路接收第二片间互联接口反馈的CRC校验响应包,并在事务层对数据缓冲区进行写操作时,使数据链路层从数据缓冲区读取数据;1E:控制字管理模块为数据包添加控制字;1F:通道管理模块依据物理通道个数配置,将控制字管理模块产生的数据分配到各物理通道中,并插入数据指令标志码;1G:数据编码解码模块将时钟信号插入数据流中,并对数据进行重新排序;1H:数据串化解串模块将各物理通道并行慢速数据进行串化,分配到物理链路中;第二基于分层结构的片间互联接口执行以下操作:2I:数据串化解串模块从物理链路中读取数据,并将高速串行数据进行并行化;2J:数据扰码解扰模块对数据链路层与物理链路之间的数据进行还原操作;2K:控制字管理模块依据数据指令标志码剥离控制码信息,提取数据包;2L:通道管理模块从各物理通道接收数据,并将数据进行对齐,获取有效数据包;2M:CRC冗余码校验模块接收高速读写数据模块生成的数据包,分析包头信息,并在使能CRC校验的情况下,对数据包进行CRC校验,并将除CRC校验码外的数据写入数据缓冲区,以及根据CRC冗余码校验结果生成CRC校验响应包,并将CRC校验响应包反馈至第一片间互联接口;2N:传输数据链路层至事务层之间的数据;2O:数据包管理模块分离数据包的包头和数据有效负载;2P:高速读写数据模块从数据包管理模块读取数据,并写入存储器。下面以一优选实施例来详细说明本发明实施例的数据传输流程。该数据传输流程基于上述片间互联接口实施例。其中,事务层完成数据搬运以及CRC冗余码的生成;数据链路层完成控制码的生成和检测以及CRC冗余码的校验重传;物理层完成有效数据编解码和串化解串。配置L1和L2的远端地址寄存器、本地地址寄存器、传输模式寄存器、使能寄存器和状态寄存器。若为第一次配置传输模式,需要配置L1的传输通道数和传输速度,并配置L2的传输速度。如需更改传输速度或者传输通道数,则需对L1和L2进行复位操作,再进行通道数与传输速度的配置,以保证物理链路处于配置要求的状态。缓冲区包括发送数据缓冲区和接收数据缓冲区。写操作方法可以包括:a:数据包管理模块依据配置模块配置的信息生成包头控制字,并写入发送数据缓冲区;b:通过高速读写数据模块从本地地址中读取操作数据,并写入发送数据缓冲区;c:如果本次操作使能CRC,则数据包管理模块生成CRC冗余校验码,并写入发送数据缓冲区;d:如果本次操作未使能CRC,则不执行步骤c,即跳过写CRC冗余码生成阶段;e:发送数据缓冲区为事务层至数据链路层的数据传输接口,在事务层对发送数据缓冲区进行写操作时,数据链路层可以同时从该发送数据缓冲区中读取数据;f:控制字管理模块在物理层复位后发送数据置为复位链路初始值COM;在没有发送数据包时,置为空闲状态IDL;若收到写操作命令或收到CRC校验错误响应包,先置为起始标志STP,然后,开始发送数据包,如果在传输过程中,事务层写缓冲区速度慢于数据链路层读缓冲区速度,则在有效数据中插入PAD;在数据发送完毕后,置为END;g:通道管理模块依据物理通道个数来配置,将控制字管理模块产生的数据分配到各个物理通道中,并插入数据指令标志码,以标志此处接收数据位控制码或有效数据;若此操作使能CRC校验,则在将数据包发送结束后,开始计时,若等待CRC响应包时间超过阈值,则中断此操作,并设置相应的传输错误标志位;h:数据编码解码模块采用8b10b或128b130b等编码方式,将时钟信息插入数据流中;数据加扰解扰模块对数据进行重新排序;i:数据串化解串模块将各个物理通道并行慢速输入数据进行串化,并分配到物理链路中;j:数据串化解串模块从物理链路中读取数据,并将高速串行数据进行并行化;k:数据加扰解扰模块对数据进行还原操作;数据编码解码模块从数据流中提取时钟信息和数据信息,并通过与物理层接口的各个物理通道传递给数据链路层;l:控制字管理模块依据数据指令标志码剥离控制码信息,并提取数据包;m:通道管理模块从各物理通道接收数据,并将数据进行对齐,以获取真正的有效数据包;n:CRC冗余码校验模块分析包头信息位,如果检测本次操作使能CRC校验,则对接收数据包进行CRC校验,同时将除CRC校验码外的数据写入接收数据缓冲区;o:如果CRC冗余码校验结果正确,则生成CRC校验正确响应包,通过L2执行的步骤f至步骤i反馈给L1,执行步骤s;如果校验结果错误,则生成CRC校验错误响应包,并通过L2的执行的步骤f至步骤i反馈给L1,等待L1进行重传操作,若校验错误次数超过阈值,则中断此操作,并置相应的传输错误标志位;p:如果收到CRC正确响应包,则L1置本次传输操作结束;如果收到CRC错误响应包,则计数器加1,并从步骤f开始重新执行到步骤p,当计数器达到预定阈值时,则中断此操作,并置相应的传输错误标志位;L1若长时间未收到CRC响应包,则中断此操作,并置相应的传输错误标志位;q:CRC冗余码校验模块分析包头信息位,如果检测本次操作未使能CRC校验,则直接将数据写入接收数据缓冲区;r:接收数据缓冲区为数据链路层至事务层的数据传输接口,如果未使能CRC校验,则在数据链路层对发送数据缓冲区进行写操作时,事务层同时从发送数据缓冲区中读取数据;如果使能CRC校验,则事务层在CRC冗余码校验结果正确后,从发送数据缓冲区中读取数;s:数据包管理模块分析接收数据缓冲区中的数据信息,并分离包头和数据有效负载;t:高速读写数据模块从数据包管理模块读取数据,并写入目标地址中。此外,本发明实施例还提供一种利用上述片间互联接口进行读操作的方法,该方法可以由上述片间互联接口实施例来执行。该方法可以包括:第一基于分层结构的片间互联接口执行以下操作:依据传输模式寄存器生成读操作的包头控制字,并将包头控制字发送至物理通道,以及根据第二片间互联接口反馈的处理结果进行读操作。第二基于分层结构的片间互联接口执行以下操作:从物理通道接收包头控制字并进行解析,得到包头控制信息,并根据包头控制信息进行使能或不使能CRC读操作,将处理结果发送至第一片间互联接口。在一个可选的实施例中,上述读操作的方法具体可以包括:第一基于分层结构的片间互联接口执行以下操作:3A:数据包管理模块依据配置模块生成读操作包头控制字,写入数据缓冲区;3B:高速读写数据模块从本地地址中读取操作数据,写入数据缓冲区;3C:判断是否使能CRC,若是,数据包管理模块生成CRC冗余校验码,并写入数据缓冲区;否则,执行步骤3D;3D:传输事务层与数据链路层之间的数据,通过物理链路接收第二片间互联接口反馈的CRC校验响应包,并在事务层对数据缓冲区进行读操作时,使数据链路层从数据缓冲区读取数据;3E:控制字管理模块为数据包添加控制字;3F:通道管理模块依据物理通道个数配置,将控制字管理模块产生的数据分配到所述各物理通道中,并插入数据指令标志码;3G:数据编码解码模块将时钟信号插入数据流中,并对数据进行重新排序;3H:数据串化解串模块将各物理通道并行慢速数据进行串化,分配到物理链路中;第二基于分层结构的片间互联接口执行以下操作:4I:数据串化解串模块从物理链路中读取数据,并将高速串行数据进行并行化;4J:数据扰码解扰模块对数据链路层与物理链路之间的数据进行还原操作;4K:控制字管理模块依据数据指令标志码剥离控制码信息,提取数据包;4L:通道管理模块从各物理通道接收数据,并将数据进行对齐,获取有效数据包;4M:CRC冗余码校验模块接收高速读写数据模块生成的数据包,分析包头信息,并在使能CRC校验的情况下,对数据包进行CRC校验,并将除CRC校验码外的数据写入数据缓冲区,以及根据CRC冗余码校验结果生成CRC校验响应包,并将CRC校验响应包反馈至第一片间互联接口;4N:传输数据链路层至事务层之间的数据;4O:数据包管理模块分离数据包的包头和数据有效负载;4P:高速读写数据模块从存储器读取数据,并写入数据包管理模块。读操作与写操作操作流程类似,不同的是L1发送端中数据包管理模块生成的读操作请求包,包头操作类型说明此次请求为读请求,执行写操作方法实施例中的步骤a至步骤s,L2接收端分析此次操作类型为读请求,转向发送端,生成写操作请求和数据包,之后的步骤与写操作方法实施例中的步骤b至步骤t相同。下面以一优选实施例来详细说明读操作的数据传输流程。其中,缓冲区包括发送数据缓冲区和接收数据缓冲区。该读操作方法可以包括:步骤1:L1事务层依据配置模块配置的寄存器生成读操作的包头信息,并存入发送数据缓冲区;步骤2:L1数据链路层从发送数据缓冲区中读取数据,将包头信息分配到各物理数据通道,并依据数据包格式插入控制码;L1若长时间未收到读数据包,则中断此操作,并置相应的传输错误标志位;步骤3:L2数据链路层解析收到的包头控制信息,并发送至事务层;步骤4:L2事务层依据包头控制信息进行使能或不使能CRC写操作;步骤5:L1正确收到数据后,操作完成。上述实施例中虽然将各个步骤按照上述先后次序的方式进行了描述,但是本领域技术人员可以理解,为了实现本实施例的效果,不同的步骤之间不必按照这样的次序执行,其可以同时(并行)执行或以颠倒的次序执行,这些简单的变化都在本发明的保护范围之内。文中涉及到的“第一”、“第二”不代表顺序,仅为区别名称而已,不应视为对本发明保护范围的不当限定。还应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域普通技术人员可以想到的任何变形、改进或替换均落入本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1