协处理器的制造方法

文档序号:10569708阅读:179来源:国知局
协处理器的制造方法
【专利摘要】本发明公开了一种协处理器,包括PTP协议引擎和PTP收发模块;PTP协议引擎包括事件源处理仲裁器和协议协处理器,PTP收发模块包括PTP发送处理模块和PTP接收处理模块;事件源处理仲裁器配置有事件源和程序段的对应关系;协议协处理器用于执行若干指令;PTP发送处理模块具备可供协议协处理器访问的接口和模块以及可供外部CPU接口访问的接口和模块;PTP接收处理模块具备可供协议协处理器访问的接口和模块。本发明弥补了现有技术对外部CPU资源浪费的不足,利用协议协处理器的指令设计,通过CAM把各种协处理器驱动的源做了有效整合,以CAM配置和协处理器编程的灵活的方式来完成协议控制帧的处理分析和计算。
【专利说明】
协处理器
技术领域
[0001 ]本发明涉及一种协处理器,更具体地,是关于通信中协议控制帧处理场合下,一个 采用以CAM划分多段程序段的通用的协处理器的设计。
【背景技术】
[0002] 现有的精确时钟同步协议包括IEEE1588和802. las等PTP协议(Precise Time Protocol,精确时钟协议)。这类协议的特点是作为协议控制帧,帧流量比较小,但是控制帧 的类型较多,同时包含有一定的算法需要计算处理。一个通常的做法是需要外部的CPU (Central Processing Unit,中央处理器)来执行命令,处理帧的分析,算法的计算,组帧等 处理,虽然外部CPU的处理能力一般比较强劲,但是因为存在接口 l/0(lnput/0utput,输入/ 输出)的较多较慢响应的操作,极大浪费了外部宝贵CHJ资源。另一种通常做法是在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作初始化外,在正常的工作过程中,完全由协处理器自身处理协议控制 帧,实现了协议处理器为主CHJ完全offloacK去负荷)。
[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命中的结果是触发新的程序段(如果新的程序 段还是和老的程序段一样,就是嵌套执行,也是支持的)的执行。
[00511所述PTP收发模块包括:PTP发送处理模块201、PTP接收处理模块202和时间戳发生 器203。
[0052]所述PTP发送处理模块具备可供所述协议协处理器访问的接口及模块以及可供外 部CHJ接口访问的接口及模块。其中,可供所述协议协处理器访问的模块包括发送帧配置 RAM(Random Access Memory,随机存取存储器)、发送任务FIF0(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


[0067] 示例1 :PTP时间校准功能的master
[0068]在IEEE1588协议中,master的功能比较多,本发明举个时间校准的实例,其它功能 可以类推,相关的功能有:(1)发送Sync帧(同步帧),记下物理接口处的发送时刻tl且在发 送Sync帧时把tl写入该帧的timestamp时间戳域;(2)接收Delay Req帧(延时请求帧),且发 送Delay_Resp帧(延迟响应帧),记下接收Delay Req帧的物理接口处的时刻t4且在发送 Delay_Resp帧的时候把t4写入该帧的timestamp域。
[0069]为了完成上述相关的功能,示例1可以这样处理:
[0070] 1、发送Sync帧的配置设计如下:(1)配置Sync帧的基本格式到发送帧配置RAM中去 (对应Sync帧在RAM中位置,由寄存器指示基地址);(2)配置时间计数器timerl为Sync帧的 时间间隔;(3)配置CAM的地址为2时,内容是0x04,其中内容0x04对应timerl,而CAM地址2是 程序段2的基地址;(4)程序段2的程序包括指定与第(1)步对应的发送帧配置RAM Sync帧 所在的基地址到协处理器寄存器,获取发送帧配置RAM Sync帧中的序列号SEQ_ID,并且 SEQ_ID加1后写入原位置,把Sync帧在发送帧配置RAM的基地址写入到发送任务FIFO,触发 Sync帧的发送。
[0071]下面以时间顺序讲下流程,如图3所示,当时间计数器timerl计数到时,触发CAM查 询,因为有前面的配置,从而寻到程序段2,执行程序段2,把Sync帧发送出去。其中记下物理 接口的时刻11且在发送Sync帧时把11写入该帧的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的程序,由程 序段〇再触发程序段6,程序段6最后触发把Delay Resp帧发送出去。
[0074] 示例2: PTP时间校准功能的s 1 a ve
[0075] 在IEEE1588协议中,slave的功能也比较多,但本发明举个时间校准的实例,其它 功能可以类推,相关的事情有:(1)接收同步Sync帧,获取Sync中的timestamp tl并且记下 接收该帧的物理接口处时间戳t2,并且触发或若干次接收同步Sync帧触发一次发送Delay Req帧,记下发送这个Delay Req帧的物理接口处时间戳t3 ; (2)接收Delay Resp延迟响应 帧,获取Delay Resp帧中的timestamp t4,同时根据时间校准算法,有tl 42 43 44计算 slave和master的时间偏差,以便以master时钟为基准来校准slave的时钟。
[0076]为了完成上述相关的功能,示例2可以这样处理:
[0077] 1、接收同步Sync帧,且发送Delay Req配置如下:(1)配置Delay Req帧的基本格式 到 "发送帧配置RAM"去(对应De lay Req帧在RAM中位置,由寄存器指示基地址);⑵配置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 tl(tl时刻是master发出Sync帧的物理时间戳)到通用寄存器rl和从接收帧 缓存获取该帧接收进入本芯片物理层接口时候的时间戳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_TYTO,在本应用中,因为接收的是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;协议处理器对协议通用寄存器rl~r4里头的tl~t4做加减计算,最终结 果赋值给协处理器特殊返回寄存器r5中,通过逻辑设计,定时把这个返回寄存器的时间更 新到s lave的本地时间中去。
[0080] 下面以时间顺序讲下流程,当PTP接收处理模块接收到Delay Resp帧的时候,把帧 放在接收帧缓存中,同时把该帧在接收帧缓存中的基地址放入接收任务FIFO中,产生接收 中断,导致CAM对事件源的分析,因为前面的配置,首先触发程序段0的程序,由程序段0再触 发程序段4,程序段4完成计算slave和master的时间偏差,并且触发硬件校准时间。
[0081] 虽然以上描述了本发明的【具体实施方式】,但是本领域的技术人员应当理解,这些 仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背 离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更 和修改均落入本发明的保护范围。
【主权项】
1. 一种协处理器,其特征在于,包括:PTP协议引擎和PTP收发模块; 所述PTP协议引擎包括:事件源处理仲裁器和协议协处理器,所述PTP收发模块包括: PTP发送处理模块和PTP接收处理模块; 所述事件源处理仲裁器配置有事件源和程序段的对应关系,用于以CAM输入为事件源, 执行与命中的CAM对应的程序段,命中的CAM的index地址指示程序段的基地址; 所述协议协处理器用于执行若干指令; 所述PTP发送处理模块具备可供所述协议协处理器访问的接口及模块以及可供外部 (PU接口访问的接口及模块; 所述PTP接收处理模块具备可供所述协议协处理器访问的接口及模块。2. 如权利要求1所述的协处理器,其特征在于,所述指令包括以下指令的一种或多种: 程序段尾指示指令:用于管理程序的执行地址位置和内部状态控制位; 查CAM指令:用于配置CAM输入命中的CAM; 读指令; 写指令; 加指令; 减指令; 空指令。3. 如权利要求1所述的协处理器,其特征在于,可供所述协议协处理器访问的模块包括 发送帧配置RAM、发送任务FIFO和发送返回FIFO中的一种或多种; 和/或,可供外部CPU接口访问的模块包括发送帧配置RAM; 和/或,可供所述协议协处理器访问的接模块包括接收任务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位微码指令和基 于所述微码指令的汇编命令。
【文档编号】G06F9/30GK105930132SQ201610143284
【公开日】2016年9月7日
【申请日】2016年3月14日
【发明人】沈卫杰, 赵海波, 曹庆华
【申请人】上海剑桥科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1