会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~

协处理器

阅读:591发布:2020-05-11

IPRDB可以提供协处理器专利检索,专利查询,专利分析的服务。并且本发明公开了一种协处理器,包括PTP协议引擎和PTP收发模块;PTP协议引擎包括事件源处理仲裁器和协议协处理器,PTP收发模块包括PTP发送处理模块和PTP接收处理模块;事件源处理仲裁器配置有事件源和程序段的对应关系;协议协处理器用于执行若干指令;PTP发送处理模块具备可供协议协处理器访问的接口和模块以及可供外部CPU接口访问的接口和模块;PTP接收处理模块具备可供协议协处理器访问的接口和模块。本发明弥补了现有技术对外部CPU资源浪费的不足,利用协议协处理器的指令设计,通过CAM把各种协处理器驱动的源做了有效整合,以CAM配置和协处理器编程的灵活的方式来完成协议控制帧的处理分析和计算。,下面是协处理器专利的具体信息内容。

1.一种协处理器,其特征在于,包括:精确时钟协议(PTP)引擎和PTP收发模块;

PTP引擎包括:事件源处理仲裁器和协议协处理器,所述PTP收发模块包括:PTP发送处理模块和PTP接收处理模块;

所述事件源处理仲裁器配置有事件源和程序段的对应关系,用于以内容可寻址存储器(CAM)输入为事件源,执行与命中的CAM对应的程序段,命中的CAM的index地址指示程序段的基地址;

所述协议协处理器用于执行指令;

所述PTP发送处理模块具备可供所述协议协处理器访问的接口及模块以及可供外部CPU接口访问的接口及模块;

所述PTP接收处理模块具备可供所述协议协处理器访问的接口及模块。

2.如权利要求1所述的协处理器,其特征在于,所述指令包括以下指令的一种或多种:程序段尾指示指令:用于管理程序的执行地址位置和内部状态控制位;

查CAM指令:用于配置CAM输入命中的CAM;

读指令;

写指令;

加指令;

减指令;

空指令。

3.如权利要求1所述的协处理器,其特征在于,所述PTP发送处理模块具备的可供所述协议协处理器访问的模块包括发送帧配置RAM、发送任务FIFO和发送返回FIFO中的一种或多种;

和/或,可供外部CPU接口访问的模块包括发送帧配置RAM;

和/或,所述PTP接收处理模块具备的可供所述协议协处理器访问的模块包括接收任务FIFO、接收帧缓存和PTP帧过滤模块中的一种或多种。

4.如权利要求1所述的协处理器,其特征在于,所述PTP引擎还包括总线选择器,所述协议协处理器通过所述总线选择器分别与所述PTP发送处理模块和所述PTP接收处理模块连接。

5.如权利要求1所述的协处理器,其特征在于,所述协处理器还包括帧预处理模块,所述PTP接收处理模块通过所述帧预处理模块与以太网MAC连接。

6.如权利要求1所述的协处理器,其特征在于,所述PTP发送处理模块还用于提供与以太网MAC适配的预处理模块。

7.如权利要求1所述的协处理器,其特征在于,所述PTP收发模块还包括时间戳发生器,所述时间戳发生器分别与所述PTP发送处理模块和所述PTP接收处理模块连接,以提供时间戳。

8.如权利要求1所述的协处理器,其特征在于,所述事件源包括:至少一时间计数器、收帧和发帧中断、程序段尾查CAM事件。

9.如权利要求1所述的协处理器,其特征在于,所述指令为微码指令。

10.如权利要求9所述的协处理器,其特征在于,所述协处理器采用72位微码指令和基于所述72位微码指令的汇编命令。

说明书全文

协处理器

技术领域

[0001] 本发明涉及一种协处理器,更具体地,是关于通信中协议控制帧处理场合下,一个采用以CAM划分多段程序段的通用的协处理器的设计。

背景技术

[0002] 现有的精确时钟同步协议包括IEEE1588和802.1as等PTP协议(Precise Time Protocol,精确时钟协议)。这类协议的特点是作为协议控制帧,帧流量比较小,但是控制帧的类型较多,同时包含有一定的算法需要计算处理。一个通常的做法是需要外部的CPU(Central Processing Unit,中央处理器)来执行命令,处理帧的分析,算法的计算,组帧等处理,虽然外部CPU的处理能力一般比较强劲,但是因为存在接口I/O(Input/Output,输入/输出)的较多较慢响应的操作,极大浪费了外部宝贵CPU资源。另一种通常做法是在PTP协议模块中使用本地CPU,例如MIPS或ARM,作为协处理器,除了商用CPU需要授权外,还有因为商用的CPU注重的是流水线和效率等设计,一般都有复杂的指令,所以资源占用较多,这样其实是对芯片资源的一个极大的浪费;同时通常的协处理器,对指令的执行触发有中断和查询等常规的方式但并没有外围模块,不得不在作为协议处理器的时候,外围设计添加较多的模块来配合中断等工作。

发明内容

[0003] 本发明要解决的技术问题是为了克服现有技术对资源浪费的缺陷,提供一种协处理器。
[0004] 本发明是通过以下技术方案解决上述技术问题的:
[0005] 本发明提供一种协处理器,其特点是,包括:PTP协议引擎和PTP收发模块;
[0006] 所述PTP协议引擎包括:事件源处理仲裁器和协议协处理器,所述PTP收发模块包括:PTP发送处理模块和PTP接收处理模块;
[0007] 所述事件源处理仲裁器配置有事件源和程序段的对应关系,用于以CAM输入为事件源,执行与命中的CAM对应的程序段,命中的CAM的index地址指示程序段的基地址;
[0008] 所述协议协处理器用于执行若干指令;
[0009] 所述PTP发送处理模块具备可供所述协议协处理器访问的接口及模块以及可供外部CPU接口访问的接口及模块;
[0010] 所述PTP接收处理模块具备可供所述协议协处理器访问的接口及模块。
[0011] CAM(Content Addressable Memory,内容可寻址存储器)通常作为对帧的特定域(内容)是否命中,来过滤出需要的帧,也可以通过内容和地址的关系来做帧字段域的转化,例如全局port端口号和本地port端口号的转换等等工作。所述PTP发送处理模块和所述PTP接收处理模块能够灵活地配置与修改。本技术方案是对CAM的一个全新的衍生应用,基于协议控制帧处理的特点,以CAM的命中作为程序段触发,有效把协议控制帧的事件源和程序执行段结合起来,并且最大可能地保持事件源和程序执行段的可配置性,降低芯片资源。本发明除了需要外部CPU作初始化外,在正常的工作过程中,完全由协处理器自身处理协议控制帧,实现了协议处理器为主CPU完全offload(去负荷)。
[0012] 较佳地,所述指令包括以下指令的一种或多种:
[0013] 程序段尾指示指令:用于管理程序的执行地址位置和内部状态控制位;
[0014] 查CAM指令:用于配置CAM输入命中的CAM;
[0015] 读指令;
[0016] 写指令;
[0017] 加指令;
[0018] 减指令;
[0019] 空指令。
[0020] 较佳地,可供所述协议协处理器访问的模块包括发送帧配置RAM、发送任务FIFO和发送返回FIFO中的一种或多种;
[0021] 和/或,可供外部CPU接口访问的模块包括发送帧配置RAM;
[0022] 和/或,可供所述协议协处理器访问的模块包括接收任务FIFO、接收帧缓存和PTP帧过滤模块中的一种或多种。
[0023] 较佳地,所述PTP协议引擎还包括总线选择器,所述协议协处理器通过所述总线选择器分别与所述PTP发送处理模块和所述PTP接收处理模块连接。
[0024] 较佳地,所述协处理器还包括帧预处理模块,所述PTP接收处理模块通过所述帧预处理模块与以太网MAC连接。
[0025] 较佳地,所述PTP发送处理模块还用于提供与以太网MAC适配的预处理模块。
[0026] 较佳地,所述PTP收发模块还包括时间戳(Timestamp)发生器,所述时间戳发生器分别与所述PTP发送处理模块和所述PTP接收处理模块连接,以提供时间戳。
[0027] 较佳地,所述事件源包括:至少一时间计数器、收帧和发帧中断、程序段尾查CAM事件。
[0028] 较佳地,所述指令为微码指令。
[0029] 较佳地,所述协处理器采用72位微码指令和基于所述微码指令的汇编命令。
[0030] 在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0031] 本发明的积极进步效果在于:本发明利用协议协处理器的指令设计,特别是查CAM指令,通过CAM把各种协处理器驱动的源做了有效整合,通过这个架构,可以以CAM配置和协处理器编程的灵活的方式来完成协议控制帧的处理分析和计算:这个架构在PTP协议处理的模块中作为协处理器,能在同一的硬件上,通过CAM配置和协处理编程设计设备master(主设备) 和slave(从设备)的应用。
[0032] 本发明不仅可以作为PTP协议的协处理器,也可以当做其它的非业务类控制协议的协处理器使用。PTP协议的使用只是这个架构上配置出来的一个应用实例。

附图说明

[0033] 图1为本发明实施例协处理器的结构框图。
[0034] 图2为本发明的CAM的功能衍生示意图。
[0035] 图3为本发明示例1PTP时间校准master功能的流程图。
[0036] 图4为本发明示例2PTP时间校准slave功能的流程图。

具体实施方式

[0037] 下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0038] 实施例
[0039] 如图1所示,一种协处理器包括:PTP协议引擎1、PTP收发模块2和帧预处理模块3。
[0040] 所述PTP协议引擎包括:事件源处理仲裁器101、协议协处理器102和总线选择器103。
[0041] 所述事件源处理仲裁器配置有事件源和程序段的对应关系,用于以CAM输入为事件源,执行与命中的CAM对应的程序段,命中的CAM的index地址指示程序段的基地址。
[0042] 所述协议协处理器用于执行若干指令,所述指令为微码指令。所述微码指令包括以下指令的一种或多种:
[0043] 程序段尾指示指令:用于管理程序的执行地址位置和内部状态控制位;
[0044] 查CAM指令:用于配置CAM输入命中的CAM;
[0045] 读指令;
[0046] 写指令;
[0047] 加指令;
[0048] 减指令;
[0049] 空指令。
[0050] 其中,程序段尾指示命令能够对程序的执行地址位置和内部状态控制位做有效的管理以便各个程序段完成独立的工作;查CAM命令设计CAM的输入为协议处理器的一个特殊返回寄存器r6,也就是这个CAM输入可以通过协处理编程自己决定,例如可以从接收的帧的某个字段域中获取信息后,决定CAM命令的输入源,CAM的命中也是一个可配置的,命中的CAM的index地址作为程序段的一个指示,CAM命中的结果是触发新的程序段(如果新的程序段还是和老的程序段一样,就是嵌套执行,也是支持的)的执行。
[0051] 所述PTP收发模块包括:PTP发送处理模块201、PTP接收处理模块202和时间戳发生器203。
[0052] 所述PTP发送处理模块具备可供所述协议协处理器访问的接口及模块以及可供外部CPU接口访问的接口及模块。其中,可供所述协议协处理器访问的模块包括发送帧配置RAM(Random Access Memory,随机存取存储器)、发送任务FIFO(First In First Out先入先出缓存)和发送返回FIFO中的一种或多种;可供外部CPU接口访问的模块包括发送帧配置RAM,发送帧配置RAM只是在初始化的时候由外部CPU配置各种类型的发送控制帧的基本格式,同时发送帧配置RAM也如前面描述,支持协处理器访问修改。所述PTP发送处理模块还用于提供与以太网MAC(Medium Access Control,媒体访问控制)适配的预处理模块。
[0053] 所述PTP接收处理模块具备可供所述协议协处理器访问的接口及模块。其中,可供所述协议协处理器访问的模块包括接收任务FIFO、接收帧缓存和PTP帧过滤模块中的一种或多种。其中,PTP帧过滤模块是为了从大量的网络帧中过滤出所述协议处理器需要处理的帧,例如IEEE1588的帧。
[0054] 所述PTP接收处理模块通过所述帧预处理模块与以太网MAC连接。
[0055] 所述时间戳发生器分别与所述PTP发送处理模块和所述PTP接收处理模块连接,以提供时间戳。
[0056] 所述协议协处理器通过所述总线选择器分别与所述PTP发送处理模块和所述PTP接收处理模块连接。所述总线选择器采用32比特总线。
[0057] 本实施例的协处理器把通常意义上的“内容”查“地址”衍生为“事件源”查“指示程序段位置”,如图2所示,所述事件源包括:至少一时间计数器、收帧和发帧中断、程序段尾查CAM事件:(1)多个时间计数器的事件源可以触发以时间间隔的动作,例如固定时间间隔的发一定格式的控制帧,再例如固定时间需要做一定的算法;(2)接收与发送帧完成后的中断例程也可通过CAM调用;(3)通过协处理器可配置使能的程序段尾查CAM事件来完成程序段的调用执行(包括嵌套)的功能,也就是程序段尾查CAM事件形式上是一个CAM命令且当作协处理的命令之一,处理程序段的嵌套和调用。因为设计“程序段尾查CAM事件”和非“程序段尾查CAM事件”的事件源均能触发程序段的执行,这样能通过协处理器编程和CAM配置,结合硬件的一些状态(例如时间计数器,中断等等),灵活地完成复杂的组合动作。
[0058] 为了进一步说明本实施例的协处理器,下面以举例的方式说明采用本实施例的协处理器实现基于CAM驱动多段程序段的方法,所述协处理器采用72位微码指令和基于所述微码指令的汇编命令。具体参见表1的指令和表2的指令域的解释以及表3的根据协处理的指令通过软件设计(也就是自己设计一个简化编译器)的汇编命令及解释。
[0059] 表1
[0060]
[0061]
[0062] 表2
[0063]
[0064]
[0065] 表3
[0066]汇编命令 操作
e_vrd{seg_id rc addr} rc[31:0]=rdata[addr]
e_vrd_15to0{seg_id rc addr} rc[15:0]=rdata[addr]
e_vrd_47to16{seg_id rc addr} rc[47:16]=rdata[addr]
e_vrd_79to48{seg_id rc addr} rc[79:48]=rdata[addr]
e_vwe{seg_id addr be wdata} 写的数据是wdata
e_vwe_add{seg_id addr be wdata ra} 写的数据是wdata+ra
e_add{seg_id rc rb ra} rc=ra+rb
e_sub{seg_id rc rb ra} rc=ra-rb
e_cam{seg_id} 查询CAM,得到下一个程序段
e_end{seg_id} 每个程序段的最后一个命令
e_nop{seg_id} 空操作
[0067] 示例1:PTP时间校准功能的master
[0068] 在IEEE1588协议中,master的功能比较多,本发明举个时间校准的实例,其它功能可以类推,相关的功能有:(1)发送Sync帧(同步帧),记下物理接口处的发送时刻t1且在发送Sync帧时把t1写入该帧的timestamp时间戳域;(2)接收Delay Req帧(延时请求帧),且发送Delay_Resp帧(延迟响应帧),记下接收Delay Req帧的物理接口处的时刻t4且在发送Delay_Resp帧的时候把t4写入该帧的timestamp域。
[0069] 为了完成上述相关的功能,示例1可以这样处理:
[0070] 1、发送Sync帧的配置设计如下:(1)配置Sync帧的基本格式到发送帧配置RAM中去(对应Sync帧在RAM中位置,由寄存器指示基地址);(2)配置时间计数器timer1为Sync帧的时间间隔;(3)配置CAM的地址为2时,内容是0x04,其中内容0x04对应timer1,而CAM地址2是程序 段2的基地址;(4)程序段2的程序包括指定与第(1)步对应的发送帧配置RAM Sync帧所在的基地址到协处理器寄存器,获取发送帧配置RAM Sync帧中的序列号SEQ_ID,并且SEQ_ID加1后写入原位置,把Sync帧在发送帧配置RAM的基地址写入到发送任务FIFO,触发Sync帧的发送。
[0071] 下面以时间顺序讲下流程,如图3所示,当时间计数器timer1计数到时,触发CAM查询,因为有前面的配置,从而寻到程序段2,执行程序段2,把Sync帧发送出去。其中记下物理接口的时刻t1且在发送Sync帧时把t1写入该帧的timestamp域。
[0072] 2、接收Delay Req帧,且发送Delay Resp配置如下:(1)配置Delay Resp帧的基本格式到发送帧配置RAM去(对应Delay Resp帧在RAM中位置,由寄存器指示基地址);(2)配置CAM的地址为0时,内容是0x01,其中内容0x01对应接收帧中断,而CAM地址0是程序段0的基地址;(3)同时配置CAM的地址为6时,内容是0x11,其中内容0x11的最高位有效表明本次CAM的“事件源”来自于协处理器通用的寄存器r6的11位到8位这4位结果,后面编程会编写成接收帧的帧格式类型MSG_TYPE,在本应用中,因为接收的是Delay Req帧,根据IEEE1588协议,故MSG_TYPE为1,和最高有效位合在一起就是内容0x11,而CAM地址6是程序段6的基地址;(4)程序段0的程序包括从接收任务FIFO读取在接收帧缓存中该接收Delay Req帧的基地址,由Delay Req帧基地址加上偏移量获取MSG_TYPE到协处理器特殊寄存器r6的11位到8位,发起CAM查找指令,因为前面的配置,会跳转到程序段6;(5)程序段6的程序包括指定发送帧配置RAM Delay Resp帧的基地址,从接收帧缓存获取接收Delay Req帧的序列号SEQ_ID,并且把这个序列号SEQ_ID写入到发送帧配置RAM Delay Resp帧的对应的序列号SEQ_ID域,从接收帧缓存获取Delay Req帧进入本芯片物理层时的时间戳t4(这个时间戳有以太网MAC模块直接放在帧的token头上,token标记是在每一个PTP控制帧的基础上加上本地模块的私有字段,以便本地协处理器处理),再把获取的这个时间戳t4写入发送帧配置RAM中Delay Resp帧的 timestamp域中去,最后协处理器把Delay Resp帧在发送帧配置RAM的基地址写入到发送任务FIFO,触发Delay Resp帧的发送。
[0073] 下面以时间顺序讲下流程,如图3所示,当PTP接收处理模块接收到Delay Req帧的时候,把帧放在接收帧缓存中,同时把该帧在接收帧缓存中的基地址放入接收任务FIFO中,产生接收中断,导致CAM对事件源的分析,因为前面的配置,首先触发程序段0的程序,由程序段0再触发程序段6,程序段6最后触发把Delay Resp帧发送出去。
[0074] 示例2:PTP时间校准功能的slave
[0075] 在IEEE1588协议中,slave的功能也比较多,但本发明举个时间校准的实例,其它功能可以类推,相关的事情有:(1)接收同步Sync帧,获取Sync中的timestamp t1并且记下接收该帧的物理接口处时间戳t2,并且触发或若干次接收同步Sync帧触发一次发送Delay Req帧,记下发送这个Delay Req帧的物理接口处时间戳t3;(2)接收Delay Resp延迟响应帧,获取Delay Resp帧中的timestamp t4,同时根据时间校准算法,有t1,t2,t3,t4计算slave和master的时间偏差,以便以master时钟为基准来校准slave的时钟。
[0076] 为了完成上述相关的功能,示例2可以这样处理:
[0077] 1、接收同步Sync帧,且发送Delay Req配置如下:(1)配置Delay Req帧的基本格式到“发送帧配置RAM”去(对应Delay Req帧在RAM中位置,由寄存器指示基地址);(2)配置CAM的地址为0时,内容是0x01,其中内容0x01对应接收帧中断,而CAM地址0是程序段0的基地址;(3)同时配置CAM的地址为7时,内容是0x10,其中内容0x10的最高位有效表明本次CAM的“事件源”来自于协处理器通用的寄存器r6的11位到8位这4位结果,后面编程会编写成接收帧的帧格式类型MSG_TYPE,在本应用中,因为接收的是Sync帧,根据IEEE1588协议,故MSG_TYPE为0,和最高有效位合在一起就是内容0x10,而CAM地址7是程序段7的基地址;(4)程序段0的程序包括从接收任务FIFO读取在接收帧缓存中该接收Sync帧的基地址,由Sync帧基地址加上偏移量获取MSG_TYPE到协处理器特殊寄存 器r6的11位到8位,发起CAM查找指令,因为前面的配置,会跳转到程序段7;(5)程序段7的程序包括从接收帧缓存获取接收Sync帧的timestamp t1(t1时刻是master发出Sync帧的物理时间戳)到通用寄存器r1和从接收帧缓存获取该帧接收进入本芯片物理层接口时候的时间戳t2(这个时间戳有以太网MAC模块直接放在帧的token头上)到通用寄存器r2,指定发送帧配置RAM Delay Req帧的基地址,从接收帧缓存获取接收Sync帧的序列号SEQ_ID,并且把这个序列号SEQ_ID写入到发送帧配置RAM Delay Req帧的对应的序列号SEQ_ID域,最后协处理器把Delay Req帧在发送帧配置RAM的基地址写入到发送任务FIFO,触发Delay Req帧的发送。通过查询发送返回FIFO状态(设计保留帧发送后中断和查询两种方法,流程图4示例采用查询方法),从发送返回FIFO中获取Delay Req发送帧在物理接口处的时间戳t3到通用寄存器r3。
[0078] 下面以时间顺序讲下流程,当PTP接收处理模块接收到Sync帧的时候,把帧放在接收帧缓存中,同时把该帧在接收帧缓存中的基地址放入接收任务FIFO中,产生接收中断,导致CAM对事件源的分析,因为前面的配置,首先触发程序段0的程序,由程序段0再触发程序段7,程序段7最后触发把Delay Req帧发送出去。
[0079] 2、接收Delay Resp帧的配置:(1)配置CAM的地址为0时,内容是0x01和上面第1步是复用配置;(2)同时配置CAM的地址为4时,内容是0x19,其中内容0x19的最高位有效表明本次CAM的“事件源”来自于协处理器通用的寄存器r6的11位到8位这4位结果,后面编程会编写成接收帧的帧格式类型MSG_TYPE,在本应用中,因为接收的是Delay Resp帧,根据IEEE1588协议,故MSG_TYPE为9,和最高有效位合在一起就是内容0x19,而CAM地址4是程序段4的基地址;(4)程序段0的程序和步骤1类似,只是接收帧由Sync改为Delay Resp,但是对程序段0而言任何PTP接收帧都是一样的流程和代码;(5)程序段4的程序包括从接收帧缓存获取接收Delay Resp帧的timestamp t4(t4时刻是master收到Delay Req的物理 时间戳)到通用寄存器r4;协议处理器对协议通用寄存器r1~r4里头的t1~t4做加减计算,最终结果赋值给协处理器特殊返回寄存器r5中,通过逻辑设计,定时把这个返回寄存器的时间更新到slave的本地时间中去。
[0080] 下面以时间顺序讲下流程,当PTP接收处理模块接收到Delay Resp帧的时候,把帧放在接收帧缓存中,同时把该帧在接收帧缓存中的基地址放入接收任务FIFO中,产生接收中断,导致CAM对事件源的分析,因为前面的配置,首先触发程序段0的程序,由程序段0再触发程序段4,程序段4完成计算slave和master的时间偏差,并且触发硬件校准时间。
[0081] 虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用