掌桥专利:专业的专利平台
掌桥专利
首页

主从设备间通讯的通讯转换方法、装置及存储介质

文献发布时间:2023-06-19 19:28:50


主从设备间通讯的通讯转换方法、装置及存储介质

技术领域

本发明实施例涉及通信协议转换技术领域,尤其涉及一种主从设备间通讯的通讯转换方法、装置及存储介质。

背景技术

TileLink是一种芯片级互连标准,可为多个主设备提供对内存和其他从设备的一致的(coherent)内存映射访问。TileLink被设计用于片上系统(System on Chip,SoC),以连接通用多处理器、协处理器、加速器、DMA引擎以及简单或复杂的设备,它使用快速可扩展互连以提供低延迟和高吞吐量数据搬运;TileLink总线协议包括三种子协议,从功能由少至多、结构由简至繁分别为TileLink无缓存轻量级子协议(TileLink-UL)、TileLink无缓存重量级子协议(TileLink-UH)和TileLink缓存支持级协议(TileLink-C)。Wishbone总线通过在互联网协议(Internet Protocol,IP)核之间建立一个通用接口完成互连。可以用于在软核、固核以及硬核之间进行互联,其结构简单而紧凑,支持大端和小端的数据格式。

由于Wishbone总线逻辑清晰易懂、结构简单紧凑,因此在许多对于数据读写时序要求不严格的场景中仍有较多使用。而TileLink总线由于其较为完备的功能、可靠的性能,在多种场合中已有愈来愈多的应用。但是,目前对于TileLink-UL总线与Wishbone总线的转接资料较少,技术领域存在一定空白,因此有必要提出一种泛用的TileLink-UL与Wishbone总线转换方法,以供实际应用中TileLink-UL接口设备与Wishbone接口设备的互连。

发明内容

本发明实施例提供了一种主从设备间通讯的通讯转换方法、装置及存储介质,以实现异位宽下TileLink-UL主设备和Wishbone协议从设备间的通讯转换。

根据本发明的第一方面,提供了一种主从设备间通讯的通讯转换方法,由通讯转换装置执行,所述通讯转换装置通过TileLink无缓存轻量级子协议TileLink-UL接口与TileLink-UL主设备连接,通过Wishbone协议接口与Wishbone协议从设备连接,所述方法包括:

在所述主设备的A通道握手信号置高且所述从设备处于空闲状态时,接收主设备通过TileLink-UL接口发送的TileLink-UL A通道格式的操作请求信号;

在所述操作请求信号的数据无误且所述从设备处于空闲状态时,根据与从设备所使用格式相匹配的异位宽映射信息表,处理所述操作请求信号,获得相应的Wishbone协议格式的从设备驱动信号以及TileLink-UL D通道格式的第一应答驱动信号,并通过所述TileLink-UL接口将所述第一应答驱动信号反馈至所述主设备;

通过Wishbone协议接口向从设备发送所述从设备驱动信号,并根据所述异位宽映射信息表对所述从设备反馈的Wishbone协议格式的应答信号进行信号转换处理,形成TileLink-UL D通道格式的第二应答驱动信号;

在检测到对所述操作请求信号进行处理的处理次数达到设定次数阈值时,将所述第二应答驱动信号通过所述TileLink-UL接口反馈至所述主设备。

根据本发明的第二方面,提供了一种通讯转换装置,所述通讯转换装置通过TileLink-UL接口与TileLink-UL主设备连接,通过Wishbone协议接口与Wishbone协议从设备连接,所述通讯转换装置包括:

至少一个TileLink-UL接口;

至少一个Wishbone协议接口;

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的主从设备间通讯的通讯转换方法。

根据本发明的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的主从设备间通讯的通讯转换方法。

本发明实施例的技术方案,在主设备的A通道握手信号置高且从设备处于空闲状态时,接收主设备通过TileLink-UL接口发送的TileLink-UL A通道格式的操作请求信号;在操作请求信号的数据无误且从设备处于空闲状态时,根据与从设备所使用格式相匹配的异位宽映射信息表,处理操作请求信号,获得相应的Wishbone协议格式的从设备驱动信号以及TileLink-UL D通道格式的第一应答驱动信号,并通过TileLink-UL接口将第一应答驱动信号反馈至主设备;通过Wishbone协议接口向从设备发送从设备驱动信号,并根据异位宽映射信息表对从设备反馈的Wishbone协议格式的应答信号进行信号转换处理,形成TileLink-UL D通道格式的第二应答驱动信号;在检测到对操作请求信号进行处理的处理次数达到设定次数阈值时,将第二应答驱动信号通过TileLink-UL接口反馈至主设备。本技术方案通过将TileLink-UL主设备的操作请求信号转换为Wishbone协议从设备可响应的从设备驱动信号以及响应主设备D通道的第一应答驱动信号,再将从设备的应答信号转换成响应主设备D通道的第二应答驱动信号,能够实现不同通讯协议主从设备间的通讯转换;还通过处理次数的检测能够确定不同数据位宽的主从设备之间数据交互是否完成,从而实现异位宽下TileLink-UL主设备和Wishbone协议从设备间的数据交互。

应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供了一种主从设备间通讯的通讯转换方法的流程示意图;

图2为本发明实施例一提供的一种在操作请求信号有误时读/写操作时序控制的实现示意图;

图3为本发明实施例二提供的一种主从设备间通讯的通讯转换方法的流程示意图;

图4为本发明实施例二提供的一种在操作请求信号无错误时读/写操作时序控制的实现示意图;

图5为本发明实施例三提供的一种通讯转换装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例一

图1为本发明实施例一提供了一种主从设备间通讯的通讯转换方法的流程示意图,本实施例可适用于异位宽下TileLink-UL主设备与Wishbone协议从设备间的通讯转换情况,该方法可以由主从设备间通讯的通讯转换装置来执行,该主从设备间通讯的通讯转换装置可以采用硬件和/或软件的形式实现,通讯转换装置通过TileLink-UL接口与TileLink-UL主设备连接,通过Wishbone协议接口与Wishbone协议从设备连接。

需要说明的是,异位宽可以理解为主设备和从设备的数据位宽不相同;数据位宽可理解为总线位宽,即总线上同时能够传输的数据位数。主设备的数据位宽通常比从设备的数据位宽大,主设备发送一次操作请求时,从设备需要进行多次处理来响应主设备发送的这一次操作请求。如:主设备的数据位宽以M表示,从设备的数据位宽以N表示(N能整除M,8能整除N,8能整除M)。记M/8=m,N/8=n,M/N=K;其中m为主设备以字节为单位的数据位宽,n为从设备以字节为单位的数据位宽,K为从设备处理一次主设备的请求所需进行的处理次数。

如图1所示,该方法包括:

S110、在主设备的A通道握手信号置高且从设备处于空闲状态时,接收主设备通过TileLink-UL接口发送的TileLink-UL A通道格式的操作请求信号。

在本实施例中,TileLink-UL主设备可理解为基于TileLink-UL协议的主设备,也就是说主设备使用TileLink-UL协议;其中主设备可以理解为有操作需求的设备;以下TileLink-UL主设备也可称为主设备。Wishbone协议从设备可理解为基于Wishbone协议的从设备,也就是说从设备使用Wishbone协议;其中从设备可以理解为完成操作请求对应功能的设备;以下Wishbone协议从设备也可称为从设备。TileLink-UL接口可理解为采用TileLink-UL协议的接口。Wishbone协议接口可理解为采用Wishbone协议的接口。

操作请求信号可理解为主设备需要从设备进行操作而生成的请求信号,操作请求信号可以是通过主设备的A通道所接收的TileLink-UL A通道格式的信号。置高可理解为将信号从低电平拉高至高电平。相应的,置低可理解为将信号从高电平拉低至低电平。空闲状态可理解为当前未进行其他请求处理(即当前不存在其他处理中的操作请求信号)的状态。

需要说明的是,Tilelink-UL协议可以包括A通道和D通道,即使用Tilelink-UL协议的主设备可以通过Tilelink-UL协议的A通道和D通道进行信号发送及接收;其中,A通道可以用于信号发送,D通道可以用于信号接收。主设备的操作请求信号通过A通道信号进行发送时,通常A通道接口信号中的握手信号(即A通道握手信号)置高(即a_valid=1)以表示有当前操作请求信号。

具体的,本实施例可以在主设备的A通道握手信号置高且从设备处于空闲状态时,接收主设备通过TileLink-UL接口发送的TileLink-UL A通道格式的操作请求信号。为了避免操作请求信号的丢失,还可以对操作请求信号进行存储处理。

示例性的,主设备的通讯协议Tilelink-UL的A通道接口信号可以包括:a_opcode(操作码)、a_param(参数码)、a_size(操作大小的对数)、a_source(主设备的ID)、a_address(地址)、a_mask(数据掩码)、a_data(数据)、a_corrupt(数据异常)、a_valid(通道握手信号)及a_ready(通道握手信号)。

主设备的通讯协议Tilelink-UL的D通道接口信号可以包括:d_opcode(操作码)、d_param(参数码)、d_size(操作大小的对数)、d_source(主设备的ID)、d_sink(从设备的ID)、d_data(数据)、d_corrupt(数据异常)、d_denied(访问拒绝)、d_valid(通道握手信号)及d_ready(通道握手信号)。

S120、在操作请求信号的数据无误且从设备处于空闲状态时,根据与从设备所使用格式相匹配的异位宽映射信息表,处理操作请求信号,获得相应的Wishbone协议格式的从设备驱动信号以及TileLink-UL D通道格式的第一应答驱动信号,并通过TileLink-UL接口将第一应答驱动信号反馈至主设备。

在本实施例中,操作请求信号中的a_corrupt=0可表示当前操作请求信号的数据无误。从设备所使用格式可以理解为从设备的数据格式,包括大端或小端的数据格式。异位宽映射信息表可以理解为预先设定的用于主从设备不同数据位宽时进行信号值确定的映射表。可理解的是,大端格式可以对应一个异位宽映射信息表;小端格式可以对应一个异位宽映射信息表。

从设备驱动信号可理解为对从设备进行驱动以使从设备可以完成相应功能的Wishbone协议格式的信号;如从设备驱动信号可以包括we、sel、addr、cyc和stb等信号。第一应答驱动信号可理解为基于操作请求信号所形成的用于向主设备反馈的TileLink-UL D通道格式的信号;如第一应答驱动信号可以包括D通道操作码信号(即d_opcode)、D通道操作大小信号(即d_size)以及D通道主设备标识(Identity,ID)信号(即d_source)。

本实施例可以在操作请求信号的数据无误且从设备处于空闲状态时,可以从预设的与从设备所使用格式相匹配的异位宽映射信息表中,确定出操作请求信号中所包括各信号对应的映射值,进而可以根据各映射值获得该操作请求信号对应的从设备驱动信号以及第一应答驱动信号,并通过TileLink-UL接口将第一应答驱动信号先反馈至主设备。

S130、通过Wishbone协议接口向从设备发送从设备驱动信号,并根据异位宽映射信息表对从设备反馈的Wishbone协议格式的应答信号进行信号转换处理,形成TileLink-UL D通道格式的第二应答驱动信号。

在本实施例中,应答信号可以理解为用于告知从设备已经处理完操作请求的Wishbone协议格式的信号。第二应答驱动信号可以理解为基于应答信号所确定的用于向主设备反馈处理结果的TileLink-UL D通道格式的信号。

本实施例可以接收主设备的操作请求信号,并对主设备的操作请求信号进行信号转换处理,形成可以驱动从设备响应操作请求信号中对应功能的Wishbone协议格式的从设备驱动信号,以及形成TileLink-UL D通道格式的第一应答驱动信号并反馈至主设备;并通过Wishbone协议接口将从设备驱动信号发送至从设备,以激活从设备进行响应。当接收到从设备处理完成时反馈的Wishbone协议格式的应答信号后,可以按照异位宽映射信息表中每一项对应的规则确定从设备应答信号对应的值,并将从设备应答信号对应的值和映射项作为TileLink-UL D通道格式的第二应答驱动信号。第二应答驱动信号可以包括d_data及其对应的映射值、d_corrupt及其对应的映射值和d_denied及其对应的映射值。

S140、在检测到对操作请求信号进行处理的处理次数达到设定次数阈值时,将第二应答驱动信号通过TileLink-UL接口反馈至主设备。

在本实施例中,处理次数可以理解为从设备处理一个操作请求信号的次数。设定次数阈值可理解为预先设的次数阈值,如设定次数阈值可以为处理一个操作请求信号应达到的总次数。

本实施例可以根据主设备及从设备的数据位宽确定出从设备处理一次主设备的操作请求信号所需的总的处理次数,将总的处理次数作为设定次数阈值,即设定次数阈值可以为上述的K。可以先确定出目前已经处理该操作请求信号的处理次数,并且可以将处理次数与设定次数阈值进行比对,确定出是否已经完成该操作请求的处理,如当判断出对操作请求信号进行处理的处理次数达到了设定次数阈值时,可以认为一次操作请求的处理已经完毕,则可以将第二应答驱动信号通过TileLink-UL接口反馈至主设备。

本发明实施例一提供了一种主从设备间通讯的通讯转换方法,在主设备的A通道握手信号置高且从设备处于空闲状态时,接收主设备通过TileLink-UL接口发送的TileLink-UL A通道格式的操作请求信号;在操作请求信号的数据无误且从设备处于空闲状态时,根据与从设备所使用格式相匹配的异位宽映射信息表,处理操作请求信号,获得相应的Wishbone协议格式的从设备驱动信号以及TileLink-UL D通道格式的第一应答驱动信号,并通过TileLink-UL接口将第一应答驱动信号反馈至主设备;通过Wishbone协议接口向从设备发送从设备驱动信号,并根据异位宽映射信息表对从设备反馈的Wishbone协议格式的应答信号进行信号转换处理,形成TileLink-UL D通道格式的第二应答驱动信号;在检测到对操作请求信号进行处理的处理次数达到设定次数阈值时,将第二应答驱动信号通过TileLink-UL接口反馈至主设备。本技术方案通过将TileLink-UL主设备的操作请求信号转换为Wishbone协议从设备可响应的从设备驱动信号以及响应主设备D通道的第一应答驱动信号,再将从设备的应答信号转换成响应主设备D通道的第二应答驱动信号,能够实现不同通讯协议主从设备间的通讯转换;还通过处理次数的检测能够确定不同数据位宽的主从设备之间数据交互是否完成,从而实现异位宽下TileLink-UL主设备和Wishbone协议从设备间的数据交互。

表1示出了一种从设备所使用格式为大端时所对应的异位宽映射信息表,如表1所示:

表1:大端对应的异位宽映射信息表

表2示出了一种从设备所使用格式为小端时所对应的异位宽映射信息表,如表2所示:

表2:小端对应的异位宽映射信息表

其中,表1及表2中第k次映射可以理解为第k次获取从设备驱动信号,a_opcode=4对应为GET操作(即读操作,表示读取数据的操作)、a_opcode=0对应为PullFullData操作、a_opcode=1对应为PullPartialData操作(PullFullData操作和PullPartialData操作为写操作,即表示写入数据的操作)。操作C(*)表示对信号*的自定义转化方式,这种转化方式与具体的应用场景有关。例如:在模块A中使用的地址空间编码为0x00~0xff,但在模块A所集成的芯片上为其分配的地址空间编码为0x1000~0x10ff,那么转化方式C可以为C(a_address)=a_address-0x1000。A||B表示信号A和信号B的逻辑或。k指代从设备进行到第k次子请求处理,其取值范围为[1,K],K为设定次数阈值。*[p:q]表示信号*的第p位到第q位。例如:d_data=16`h1234,则d_data[7:0]=8`h34。*(k)表示信号*在第k次映射时的值。例如:data_rd(2)为第二次读处理中从设备返回的data_rd信号。*(any)表示信号*设定次数阈值中所有映射的值组成的集合。例如:M=64,N=16,则K=4;err(any)=err(1),err(2),err(3),err(4)。MAX(*)表示集合*中元素的最大值。例如:MAX(0,0,1,1)=1。err_detec(通讯转换装置中包含的检错模块)可以用于检验Tilelink的一拍应答数据是否出错,非必须模块。

可选的,该方法还包括:

在检测到对操作请求信号进行处理的处理次数未达到设定次数阈值时,进行处理次数累计,并返回继续执行从设备驱动信号的获得操作。

在本实施例中,在确定出已经处理该操作请求的处理次数之后,可以将处理次数与设定次数阈值进行比对,确定出是否已经完成该操作请求的处理。在此基础上,当已经处理的处理次数未到达设定次数阈值时,即未完整完成该操作请求的处理,可以对处理次数进行累计,并继续执行从设备驱动信号的获得操作,对操作请求信号中的剩余部分进行处理。

本实施例通过对操作请求信号的处理次数的判断,自动确定是否继续进行从设备驱动信号的获得操作,保证了处理过程的完整性,进而保证了处理结果的准确性。

可选的,该方法还包括:

在操作请求信号的数据有误和/或从设备处于非空闲状态时,确定操作请求信号对应的拒绝D通道信号项;

从异位宽映射信息表中查询拒绝D通道信号项对应的拒绝D通道信号值,并将拒绝D通道信号项及其对应的拒绝D通道信号值作为操作请求信号对应的TileLink-UL D通道格式的拒绝应答驱动信号;

将拒绝应答驱动信号反馈至主设备。

在本实施例中,操作请求信号中的a_corrupt=1可表示当前操作请求信号的数据有误。非空闲状态可理解为当前存在其他请求处理的状态。拒绝D通道信号项可理解为用于告知主设备对操作请求信号进行拒绝的D通道信号项。可选的,拒绝D通道信号项可包括:D通道操作码信号项(即d_opcode信号项)、D通道操作大小信号项(即d_size信号项)、D通道主设备ID信号项(即d_source信号项)、D通道数据异常信号项(即d_corrupt信号项)和D通道访问拒绝信号项(即d_denied信号项)。拒绝D通道信号值可理解为异位宽映射信息表中与拒绝D通道信号项对应的映射值。拒绝应答驱动信号可以理解为用于告知主设备对操作请求信号进行拒绝的驱动信号。

具体的,当所接收操作请求信号的数据有误和/或从设备处于非空闲状态时,可以确定当前操作请求信号对应的拒绝D通道信号项,从异位宽映射信息表中查询拒绝D通道信号项对应的拒绝D通道信号值,将所确定的拒绝D通道信号项及其对应的拒绝D通道信号值作为操作请求信号对应的TileLink-UL D通道格式的拒绝应答驱动信号,并将拒绝应答驱动信号反馈至主设备,以表示该操作请求信号的拒绝。

可选的,拒绝D通道信号项包括:D通道操作码信号项、D通道操作大小信号项、D通道主设备标识ID信号项、D通道数据异常信号项和D通道访问拒绝信号项。

本实施例通过设定的异位宽映射信息表为主从设备间的信号转换提供了支持,实现了主设备信号及从设备信号的自动转换,实现了异位宽下通讯协议不同的主设备及从设备之间的数据交互,满足了主设备多样化的需求的响应。

示例性的,沿用上述的示例性描述中的符号,通过时序形式对主设备发送数据有误(可以通过a_corrupt=1确定出数据有误)的情况下,本申请的实现过程进行示例性描述(d_param、d_sink可固定为一个定值,不参与从设备驱动信号的获得过程)。

图2为本发明实施例一提供的一种在操作请求信号有误时读/写操作时序控制的实现示意图。如图2所示,clock表示时钟信号,双虚线表示等待主设备接收应答过程消耗的若干时钟周期(最小消耗可为0周期),当收到主设备的操作请求信号(a_valid=1,即图中a_valid项为高时)且未进行其他请求处理时,根据异位宽映射信息表中对应的映射关系,首先将可以对D通道信号d_opcode、d_size、d_source、d_corrupt和d_denied进行驱动(如d_opcode=4、0或1、d_size=a_size、d_source=a_source、d_data可以为任意、d_corrupt=0、d_denied=1),d_denied=1表示访问拒绝;并拉高a_ready表示请求已经接收;再将d_valid拉高(即d_valid=1)表示对主设备请求的应答,待主设备接收应答(即d_ready=1)时,表示请求的完成(即拒绝)。

实施例二

图3为本发明实施例二提供的一种主从设备间通讯的通讯转换方法的流程示意图,本实施例是在上述实施例的基础上的进一步细化。在本实施例中,对根据与从设备所使用格式相匹配的异位宽映射信息表,处理操作请求信号,获得相应的Wishbone协议格式的从设备驱动信号以及TileLink-UL D通道格式的第一应答驱动信号的过程进行了具体描述。如图3所示,该方法包括:

S210、在主设备的A通道握手信号置高且从设备处于空闲状态时,接收主设备通过TileLink-UL接口发送的TileLink-UL A通道格式的操作请求信号。

S220、在操作请求信号的数据无误且从设备处于空闲状态时,确定从设备的端口使用格式。

在本实施例中,端口使用格式可以理解为从设备所使用的格式,端口使用格式可以包括大端格式和小端格式。

S230、从预设的异位宽映射信息表中确定与端口使用格式相匹配的异位宽映射信息表。

在本实施例中,预设的异位宽映射信息表中可以包括大端格式对应的异位宽映射信息表和小端格式对应的异位宽映射信息表。从预设的异位宽映射信息表中可以确定与端口使用格式相匹配的异位宽映射信息表。

S240、解析操作请求信号所属的操作类型,根据异位宽映射信息表及操作类型,确定操作请求信号对应的信号转换映射区域。

在本实施例中,操作类型可以理解为主设备需要从设备进行操作的类型的分类,可以包括:读操作和写操作。信号转换映射区域可以理解为异位宽映射信息表中指示读操作或写操作所对应信号映射的区域。可理解的是,读操作所对应信号转换映射区域与写操作所对应信号转换映射区域是不同的。如表1(或表2)所示,读操作所对应信号转换映射区域可以为表1(或表2)的第一列和第二列所构成的区域;写操作所对应信号转换映射区域可以为表1(或表2)的第一列、第三列和第四列所构成的区域。

本实施例可以根据操作请求信号中包括的操作码信号(即a_opcode)的值来确定操作请求信号所属的操作类型,如当a_opcode=4时,对应为读操作类型;当a_opcode=0或1时,对应为写操作类型。根据异位宽映射信息表,可确定出该操作类型下对应的信号转换映射区域。

S250、基于信号转换映射区域,转换操作请求信号形成相应的从设备驱动信号以及第一应答驱动信号,并通过TileLink-UL接口将第一应答驱动信号反馈至主设备。

在本实施例中,可以从预设的与从设备所使用格式相匹配的异位宽映射信息表中,确定操作请求信号对应的信号转换映射区域,以从信号转换映射区域中确定出操作请求信号中所包括各信号对应的映射值,进而可以根据各映射值获得该操作请求信号对应的从设备驱动信号以及第一应答驱动信号,并通过TileLink-UL接口将第一应答驱动信号先反馈至主设备。

S260、通过Wishbone协议接口向从设备发送从设备驱动信号,并根据异位宽映射信息表对从设备反馈的Wishbone协议格式的应答信号进行信号转换处理,形成TileLink-UL D通道格式的第二应答驱动信号。

S270、在检测到对操作请求信号进行处理的处理次数达到设定次数阈值时,将第二应答驱动信号通过TileLink-UL接口反馈至主设备。

本实施例二提供了一种主从设备间通讯的通讯转换方法,具体化了根据与从设备所使用格式相匹配的异位宽映射信息表,处理操作请求信号,获得相应的Wishbone协议格式的从设备驱动信号以及TileLink-UL D通道格式的第一应答驱动信号的过程。该方法通过确定从设备的端口使用格式以确定该格式下的异位宽映射信息表,并解析操作请求信号所属的操作类型,不同的操作类型对应不同的信号转换映射区域,以对操作请求信号进行灵活的转换处理以得到相应的从设备驱动信号以及第一应答驱动信号;还通过将从设备的应答信号转换成响应主设备D通道的第二应答驱动信号,以及通过处理次数的检测能够确定不同数据位宽的主从设备之间数据交互是否完成,从而实现了异位宽下TileLink-UL主设备和Wishbone协议从设备间的数据交互。

可选的,当操作请求信号的操作类型为读操作时,信号转换映射区域为第一信号转换映射区域;

基于信号转换映射区域,转换操作请求信号形成相应的从设备驱动信号以及第一应答驱动信号,包括:

确定读操作类型下对应的第一从设备驱动项和第一D通道信号项;从第一信号转换映射区域中确定各第一从设备驱动项对应的第一从设备驱动值和各第一D通道信号项对应的第一D通道信号值;将各第一从设备驱动项及其对应的第一从设备驱动值作为从设备驱动信号;将各第一D通道信号项及其对应的第一D通道信号值作为第一应答驱动信号。

本实施例中,第一从设备驱动项可理解为读操作下用于驱动从设备完成操作请求的信号项;如可以包括we信号项、sel信号项、addr信号项、cyc信号项和stb信号项。第一从设备驱动值可理解为映射信息表的第一信号转换映射区域中与第一从设备驱动项对应的映射值;如we信号项对应的映射值为0。

第一D通道信号项可理解为读操作下用于D通道信号驱动的信号项;如可以包括d_opcode信号项、d_size信号项和d_source信号项。第一D通道信号值可理解为映射信息表的第一信号转换映射区域中与第一D通道信号项对应的映射值;如d_opcode信号项对应的映射值为1。

本实施例在异位宽映射信息表的第一信号转换映射区域中,通过查表的形式确定出读操作下,各第一从设备驱动项对应的第一从设备驱动值和各第一D通道信号项对应的第一D通道信号值,以将各第一从设备驱动项及其对应的第一从设备驱动值作为从设备驱动信号;将各第一D通道信号项及其对应的第一D通道信号值作为第一应答驱动信号。

可选的,当操作请求信号的操作类型为写操作时,信号转换映射区域为第二信号转换映射区域;

基于信号转换映射区域,转换操作请求信号形成相应的从设备驱动信号以及第一应答驱动信号,包括:

确定写操作类型下对应的第二从设备驱动项和第二D通道信号项;从第二信号转换映射区域中确定各第二从设备驱动项对应的第二从设备驱动值和各第二D通道信号项对应的第二D通道信号值;将各第二从设备驱动项及其对应的第二从设备驱动值作为从设备驱动信号;将各第二D通道信号项及其对应的第二D通道信号值作为第一应答驱动信号。

本实施例中,第二从设备驱动项可理解为写操作下用于驱动从设备完成操作请求的信号项;如可以包括we信号项、sel信号项、addr信号项、data_wr信号项、cyc信号项和stb信号项。第二从设备驱动值可理解为映射信息表的第二信号转换映射区域中与第二从设备驱动项对应的映射值;如we信号项对应的映射值为1。

第二D通道信号项可理解为写操作下用于D通道信号驱动的信号项;如可以包括d_opcode信号项、d_size信号项和d_source信号项。第二D通道信号值可理解为映射信息表的第二信号转换映射区域中与第二D通道信号项对应的映射值;如d_opcode信号项对应的映射值为0。

本实施例在异位宽映射信息表的第二信号转换映射区域中,通过查表的形式确定出写操作下,各第二从设备驱动项对应的第二从设备驱动值和各第二D通道信号项对应的第二D通道信号值,以将各第二从设备驱动项及其对应的第二从设备驱动值作为从设备驱动信号;将各第二D通道信号项及其对应的第二D通道信号值作为第一应答驱动信号。

可选的,根据异位宽映射信息表对从设备反馈的Wishbone协议格式的应答信号进行信号转换处理,形成TileLink-UL D通道格式的第二应答驱动信号,包括:

如果发送至从设备的从设备驱动信号用于读处理,则接收从设备反馈的读处理应答信号,并根据异位宽映射信息表对读处理应答信号进行信号转换处理,获得D通道数据信号、第一D通道数据异常信号和第一D通道访问拒绝信号,以作为第二应答驱动信号;

如果发送至从设备的从设备驱动信号用于写处理,则接收从设备反馈的写处理应答信号,并根据异位宽映射信息表对写处理应答信号进行信号转换处理,获得第二D通道数据异常信号和第二D通道访问拒绝信号,以作为第二应答驱动信号。

本实施例中,读处理可理解为读操作对应的读取数据的处理。读处理应答信号可理解为读处理对应的应答信号。D通道数据信号可以为读处理下的d_data信号。第一D通道数据异常信号可理解为读处理下的d_corrupt信号。第一D通道访问拒绝信号可理解为读处理下的d_denied信号。

如果发送至从设备的从设备驱动信号用于读处理,可以在接收到从设备响应完成后所反馈的读处理应答信号后,对TileLink-UL接口端的D通道的输出信号进行驱动,按照异位宽映射信息表中每一项对应的规则对从设备读处理后的结果进行转换处理,获得D通道数据信号、第一D通道数据异常信号和第一D通道访问拒绝信号,以作为第二应答驱动信号。如,从设备每次按照目标地址读取数据后可以按照小端数据写入规则,从小至大对第二应答驱动信号中该读取数据对应的项(即data_rd信号项)进行填充。

写处理可理解为写操作对应的写入数据的处理。写处理应答信号可理解为写处理对应的应答信号。第二D通道数据异常信号可理解为写处理下的d_corrupt信号。第二D通道访问拒绝信号可理解为写处理下的d_denied信号。

如果发送至从设备的从设备驱动信号用于写处理,可以在接收到从设备响应完成后所反馈的写处理应答信号后,对TileLink-UL接口端的D通道的输出信号进行驱动,按照异位宽映射信息表中每一项对应的规则对从设备写处理后的结果进行转换处理,获得第二D通道数据异常信号和第二D通道访问拒绝信号,以作为第二应答驱动信号。

示例性的,沿用上述的示例性描述中的符号,在a_corrupt=0(即主设备发送的操作请求信号无错误)时,通过时序形式对主设备的操作请求信息类型为读/写操作情况下,本申请的实现过程进行示例性描述(d_param、d_sink可固定为一个定值,不参与驱动信号的映射确定过程)。

图4为本发明实施例二提供的一种在操作请求信号无错误时读/写操作时序控制的实现示意图。如图4所示,clock表示时钟信号,在主设备发送数据无错误(即a_corrupt=0)的情况下,时序波形图如下。其中,a_*表示A通道中除图4中所示的A通道信号外剩余的所有信号,d_*表示D通道中除图4所示的D通道信号外剩余的所有信号,wb_*out表示从端(Wishbone端,后续简称WB端)中除图4所示的WB端信号外剩余的所有输出信号,wb_*in表示从端(Wishbone端,后续简称WB端)中除图4所示的WB端信号外剩余的所有输入信号。双虚线表示等待主设备接收应答过程消耗的若干时钟周期(最小消耗可为0周期);其中,双虚线1表示接收主设备请求后的处理过程;双虚线2表示从设备的一次处理(k=1);双虚线3表示从设备的一次处理(k=2);双虚线4表示从设备的一次处理(k=3,4,…,K-1);双虚线5表示从设备的一次处理(k=K);双虚线6表示接收从设备应答后的处理;双虚线7表示等待主设备接收应答。

在操作请求信号所属操作类型为读操作的情况下,当收到主设备的操作请求信号(a_valid=1,即图中a_valid项为高时)且未进行其他请求处理时,按照异位宽映射信息表中对应的规则首先将可以对信号d_opcode、d_size、d_source、we、sel和addr进行驱动,拉高a_ready表示请求已接收;将cycy和stb拉高(即cyc=1和stb=1)以激活从设备,待从设备应答(ack=1)时,按照映射信息表中的每项对应的映射规则确定d_data、d_corrupt及d_denied,并拉低cyc和stb(即cyc=0和stb=0)以关闭从设备。检测当前处理次数是否到达设定次数阈值,若未到达设定次数阈值则继续执行从设备驱动信号的获得操作(即重复激活从设备直至处理次数达到设定次数阈值);若到达设定次数阈值,则将确定后的D通道信号(即第二应答驱动信号)通过TileLink-UL接口反馈至主设备,将d_valid拉高表示对主设备请求的应答,待主设备接收应答(d_ready=1)时,表示请求完成。

在操作请求信号所属操作类型为写操作的情况下,当收到主设备的操作请求信号(a_valid=1,即图中a_valid项为高时)且未进行其他请求处理时,按照异位宽映射信息表中对应的规则首先将可以对信号d_opcode、d_size、d_source、we、sel、addr和data_wr进行驱动,拉高a_ready表示请求已接收;将cycy和stb拉高(即cyc=1和stb=1)以激活从设备,待从设备应答(ack=1)时,按照映射信息表中的每项对应的映射规则确定d_corrupt及d_denied,并拉低cyc和stb(即cyc=0和stb=0)以关闭从设备。检测当前处理次数是否到达设定次数阈值,若未到达设定次数阈值则继续执行从设备驱动信号的获得操作(即重复激活从设备直至处理次数达到设定次数阈值);若到达设定次数阈值,则将确定后的D通道信号通过TileLink-UL接口反馈至主设备,将d_valid拉高表示对主设备请求的应答,待主设备接收应答(d_ready=1)时,表示请求完成。

实施例三

图5为本发明实施例三提供的一种通讯转换装置的结构示意图。通讯转换装置旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。通讯转换装置还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。

如图5所示,通讯转换装置10包括至少一个处理器11,至少一个TileLink-UL接口16;至少一个Wishbone协议接口17,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元15加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储通讯转换装置10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。

处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如主从设备间通讯的通讯转换方法。

在一些实施例中,主从设备间通讯的通讯转换方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元15。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12而被载入和/或安装到通讯转换装置10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的主从设备间通讯的通讯转换方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行主从设备间通讯的通讯转换方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线路的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在通讯转换装置上实施此处描述的系统和技术,该通讯转换装置具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给通讯转换装置。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括第一件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、第一件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。

计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 用于汽车通讯模块的通讯方法、装置、模块及存储介质
  • 一种PLC通讯方法、装置、设备及存储介质
  • 蓝牙网格通讯方法、装置、调控设备及计算机存储介质
  • 通讯信息的分配、通讯方法与装置、一种设备、一种介质
  • 即时通讯信息存储方法、装置及计算机可读存储介质
  • 通讯设备间的备份方法、装置、计算机设备及存储介质
  • 进程间通讯方法、装置、计算机设备和存储介质
技术分类

06120115919210