CN104679479B - 一种基于任务编号的调度控制机制的多核密码处理器 - Google Patents
一种基于任务编号的调度控制机制的多核密码处理器 Download PDFInfo
- Publication number
- CN104679479B CN104679479B CN201510107955.1A CN201510107955A CN104679479B CN 104679479 B CN104679479 B CN 104679479B CN 201510107955 A CN201510107955 A CN 201510107955A CN 104679479 B CN104679479 B CN 104679479B
- Authority
- CN
- China
- Prior art keywords
- input
- microcontroller
- packet
- subtask
- output
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于任务编号的调度控制机制的多核密码处理器,包括:输入缓存、输出缓存、中央调度器、密码处理器组、所述中央调度器包括:输入微控制器、输出微控制器和硬件解析单元,硬件解析单元用于依据预设的引导列表中的数据信息解析数据包包头,将解析得到的与数据包的输入次序相匹配的调度指令发送至输入微控制器、将解析得到的用于表征数据包类型的标识信息发送至输出微控制器;所述引导列表中存储有用于表征数据包的输入次序的标识信息和与其对应的用于表征子任务分配程序的调度指令。上述方案采用有限长度的包头通过任务列表调用中央调度器子任务分配程序,从而完成对数据包的处理,实现输入很少控制信息来驱动复杂的操作流程。
Description
技术领域
本申请涉及密码解析技术领域,更具体地说,涉及一种基于任务编号的调度控制机制的多核密码处理器。
背景技术
现有技术中,通常采用多核密码处理器对密码信息进行处理,对于传统多核密码处理器内部的控制机制,它的控制信息来源于外部输入的数据的包头。但是定长(一般为32bits)的专用密码通信协议包头位数有限,而多核密码运算模块内部的控制流程复杂,难以用一个32bits的包头描述清楚一个数据包的所有操作,也难以为每个32bits的数据都设计一个32bits的包头,否则,接口传输层的传输效率将会严重降低,如何提高接口传输层的传输效率成为本领域技术人员亟待解决的技术问题之一。
发明内容
有鉴于此,本申请提供一种基于任务编号的调度控制机制的多核密码处理器,用于解决现有技术中多核密码处理器接口传输层的传输效率低的问题。
为了实现上述目的,现提出的方案如下:
一种基于任务编号的调度控制机制的多核密码处理器,包括:
输入缓存和输出缓存;
与所述输入缓存和输出缓存相连的中央调度器;
与所述中央调度器相连的密码处理器组,所述密码处理器组中设置有多个密码运算模块;
所述中央调度器包括:输入微控制器、输出微控制器和硬件解析单元;
所述输入微控制器用于对获取到的数据包进行解析,并依据所述硬件解析单元输出的调度指令调取与所述调度指令所匹配的子任务分配程序,进行输入数据的调度和计算任务的分配;
所述输出微控制器用于依据所述硬件解析单元发送的用于表征数据包类型的标识信息完成每个密码运算模块计算结果的输出;
所述硬件解析单元用于依据预设的引导列表中的数据信息解析数据包包头,将解析得到的与数据包的输入次序相匹配的调度指令发送至输入微控制器,将解析得到的用于表征数据包类型的标识信息发送至输出微控制器;所述引导列表中存储有用于表征数据包的输入次序的标识信息和与其一一对应的用于表征子任务分配程序的调度指令。
优选的,上述基于任务编号的调度控制机制的多核密码处理器,包括:
所述硬件解析单元包括:子任务引导RAM和任务引导控制器;
所述子任务引导RAM用于存储表征数据包的输入次序的标识信息和与其一一对应的用于表征子任务分配程序的调度指令;
所述任务引导控制器用于通过输入缓存获取数据包,对获取到的数据包的包头进行解析,获取用于表征数据包的输入次序的标识信息和用于表征数据包类型的标识信息,依据子任务引导RAM查找与所述用于表征数据包输入次序的信息标识相匹配的调度指令,将所述调度指令发送至输入微控制器,将所述用于表征数据包类型的标识信息发送至输出微控制器。
优选的,上述基于任务编号的调度控制机制的多核密码处理器,所述用于表征数据包类型的标识信息为数据包的任务类型编号。
优选的,上述基于任务编号的调度控制机制的多核密码处理器,所述子任务引导RAM具体包括:
数据包包头所包含的子任务编号和与所述子任务编号一一对应的子任务分配程序在输入指令RAM中存放的首地址。
优选的,上述基于任务编号的调度控制机制的多核密码处理器,包括:
所述任务引导控制器,具体用于获取输入缓存中的数据包,对获取到的数据包的包头进行解析,获取读取子任务引导RAM的子任务编号和任务类型标号,读取子任务引导RAM中存储的与所述子任务编号相匹配的地址值作为中央调度器中输入微控制器中的PC寄存器的更新值;
输入微控制器,具体用于依据输入微控制器的PC寄存器的值,通过输入微控制器中的取指电路读取输入指令RAM中的程序;根据输入指令RAM中的程序,通过输入微控制器中的译码电路,生成密码运算模块的控制信息,并输入至密码运算模块;
所述输出微控制器,具体用于根据密码运算模块的状态信息,生成输出微控制器中的PC寄存器的更新值,根据输出微控制器中的PC寄存器的值,通过输出微控制器中的取指电路读取输出指令RAM中的程序,根据输出指令RAM中的程序,通过输出微控制器中的译码电路,输出密码运算模块的计算结果。
优选的,上述基于任务编号的调度控制机制的多核密码处理器,包括:
所述数据包由包头和数据段组成;
所述包头为指令包包头、输入数据包包头、配置信息包包头或输出数据包包头。
从上述的技术方案可以看出,本申请公开技术方案,通过采用基于任务列表的任务解析机制,用一个有限长度的包头通过任务列表调用中央调度器的相应的应用程序,从而完成对一个数据包的处理,这种方式允许密码运算模块在运行的过程当中,输入很少控制信息来驱动复杂的操作流程,保证了密码运算模块接口的数据传输效率,同时提高了操作的灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的基于任务编号的调度控制机制的多核密码处理器的结构图
图2为采用任务引导列表配置输入微控制器中的输入指令RAM的示意图;
图3为本申请实施例公开的中央调度器的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本申请实施例公开的基于任务编号的调度控制机制的多核密码处理器的结构图。
参见图1,本申请实施例公开了一种基于中央调度器的任务映射机制的基于任务编号的调度控制机制的多核密码处理器,包括:输入缓存1和输出缓存2;
与所述输入缓存1和输出缓存2相连的中央调度器3;
与所述中央调度器3相连的密码处理器组4,所述密码处理器组4中设置有多个密码运算模块;
所述中央调度器3包括:输入微控制器302、输出微控制器301和硬件解析单元303;
其中,所述输入缓存1、输出缓存2和所述密码处理器组均为现有技术中的常用设备,因此本申请无需多做说明,
所述输入微控制器302用于对获取到的数据包进行解析,并依据所述硬件解析单元303输出的,调度指令调用与所述调度指令所匹配的子任务分配程序,进行输入数据的调度和计算任务的分配;
所述输出微控制器301用于依据所述硬件解析单元303发送的用于表征数据包类型的标识信息完成每个密码运算模块计算结果的输出;
所述硬件解析单元303用于依据预设的引导列表中的数据信息解析数据包包头,将解析得到的与数据包的输入次序相匹配的调度指令发送至输入微控制器302,将解析得到的用于表征数据包类型的标识信息发送至输出微控制器301;所述引导列表中存储有用于表征数据包的输入次序的标识信息和与所述用于表征数据包的输入次序的标识信息一一对应的用于表征子任务分配程序的调度指令。
其中,所述基于中央调度器3的调度任务机制主要由开发和应用两个阶段组成,该调度任务机制的基本工作原理是:在开发阶段,根据信息系统安全服务的需求,确定密码处理器组中的密码运算模块的密码算法映射方案和数据类型之后,通过算法映射方案确定密码运算模块所需完成的调度任务,根据每一调度任务以及其对应的数据类型确定映射方案,并生成数据包与所述子任务分配程序的任务映射列表,所述任务映射列表即为所述引导列表。
在应用阶段,硬件解析单元读取输入缓存中的数据包,解析数据包的包头,依据解析出的信息确定该数据包的输入次序信息和任务类型信息,利用任务映射列表中的数据信息查询与该数据包所匹配的调度指令,并将与该数据包所匹配的调度指令发送给中央调度器的输入微控制器、将所述任务类型信息发送至输出微控制器,驱动中央调度器调用相应的子任务分配程序,完成密码运算模块内部的任务分配和数据的传输。
现有技术中密码运算模块内部的控制机制,它的控制信息来源于外部输入的数据的包头。但是定长的专用密码通信协议包头位数有限,而多核密码运算模块内部的控制流程复杂,很难用一个32bits的包头描述清楚一个数据包的所有操作。也不能为每个32bits的数据都设计一个32bits的包头,否则,接口传输层的传输效率将会严重降低。通过本申请上述实施例公开的技术方案可见,采用基于引导列表的任务解析机制,将用于表示获取到的数据包和子任务分配程序的映射关系的引导列表设置在所述中央调度器中,利用一个有限长度的包头通过所述引导列表调用与所述数据包相匹配的子任务分配程序,从而完成对一个数据包的处理,这种方式允许密码运算模块在运行的过程当中,输入很少的控制信息即可驱动复杂的操作流程,减小了数据包的长度,保证了密码运算模块接口的数据传输效率,同时提高了操作的灵活性。
可以理解的是,本申请上述实施例中的所述基于任务编号的调度控制机制的多核密码处理器中所述硬件解析单元可以由两部分组成:任务引导控制器3031和子任务引导RAM3032;
所述任务引导控制器3031,用于通过输入缓存获取数据包,对获取到的数据包的包头进行解析,获取用于表征数据包的输入次序的标识信息和用于表征数据包类型的标识信息,依据所述子任务引导RAM3032查找与所述用于表征数据包输入次序的信息标识相匹配的调度指令,将所述调度指令发送至输入微控制器,将所述用于表征数据包类型的标识信息发送至输出微控制器;
所述子任务引导RAM3032用于存储表征数据包的输入次序的标识信息和与其一一对应的用于表征子任务分配程序的调度指令。
可以理解的是,本申请上述实施例中的所述任务引导控制器3031在工作过程中,可以通过对数据包进行解析,获取用于表征数据包输入次序的且用于读取子任务引导RAM3032的标识信息,读取子任务引导RAM3032中存储的与所述标识信息相匹配的调度指令,将所述调度指令发送至所述输入微控制器,以便所述输入微控制器依据所述调度指令获取子任务分配程序。其中所述用于表征所述数据包输入次序的标识信息可以为所述数据包包头中的子任务编号,所述子任务引导RAM3032中存储的用于表征数据包类型的标识信息可以为所述子任务分配程序在输入指令RAM中存放的首地址,因此,本申请上述实施例中的子任务引导RAM具体可以包括:数据包包头所包含的子任务编号和与所述子任务编号一一对应的子任务分配程序在输入指令RAM中存放的首地址。
可以理解的是,在具体工作时,所述任务引导控制器3031,具体用于获取输入缓存中的数据包,对获取到的数据包的包头进行解析,获取读取子任务引导RAM3032的子任务编号和任务类型标号,读取子任务引导RAM中存储的与所述子任务编号相匹配的地址值作为中央调度器中输入微控制器中的PC寄存器的更新值;
所述输入微控制器302,具体用于根据输入微控制器的PC寄存器的值,通过输入微控制器的取指电路读取输入指令RAM(输入指令RAM为基本RAM构成,包含的程序由输入微控制器302的指令组成。)中所包含的程序;根据输入指令RAM中的程序,通过输入微控制器302中的译码电路,生成密码运算模块的控制信息,并输入至密码运算模块;
所述输出微控制器301,具体用于根据密码运算模块的状态信息,生成输出微控制器301中的PC寄存器的更新值,根据输出微控制器301中的PC寄存器的值,通过输出微控制器301中的取指电路读取输出指令RAM(输出指令RAM为输出微控制器301的指令RAM)中的程序,依据输出指令RAM中的程序,通过输出微控制器301中的译码电路,输出密码运算模块数据包输出控制信息,即所述密码运算模块的计算结果,所述输出微控制器301由任务引导控制器解析得到的数据为输出控制器指令,用于控制完成数据的输出。
图2为采用任务引导列表配置输入微控制器中的输入指令RAM的示意图;
参见图2,当获取到数据包后,对数据包进行解析,通过引导列表查找与解析后的数据包相匹配的子函数(子任务分配程序)的起始地址(子任务分配程序在输入指令RAM中存放的首地址),通过所述子函数的起始地址配置所述输入微控制器的输入指令。
综上,本申请上述实施例中的所述输入微控制器主要用来完成输入数据的调度和计算任务的分配,其次可以以软件的方式独立完成数据包的解析,软件方式解析与硬件方式解析的实现结果是相同的,均为通过解析数据包获取子函数的起始地址;输出微控制器主要用来完成每个密码处理器计算结果的输出;硬件解析单元主要用来完成对数据包的快速解析,引导输入/输出微控制器完成调度任务。
本申请上述实施例中的基于任务编号的调度控制机制的多核密码处理器中,数据均以数据包的形式进行输入和输出密码运算模块。外部数据的封装成包由密码服务系统中主处理器或信息系统更高层的应用完成。而密码运算模块内部的计算结果在输出之前,同样会由中央调度器封装成包。数据包由包头和数据段组成,其中包头可以固定为32bits,数据包类型因为包头类型的不同而不同。
上述基于任务编号的调度控制机制的多核密码处理器中的包头类型可以分为:指令包包头、输入数据包包头、配置信息包包头和输出数据包包头,所述包头字段由任务类型编号、数据包长度、数据包编号组成;
其中,任务类型编号用于中央调度器区分数据包数据类型,标识输入至基于任务编号的调度控制机制的多核密码处理器的为何种任务(指令、数据等)。为了满足输入与分配的高度灵活性,包头内可统一采用8bit标识子任务编号,即中央调度器的输入与分配任务最多可涵盖256种子任务,从而满足了用户的应用需求,其中所述任务类型编号标识大的任务类型,如指令或数据注入等,子任务编号用于标识子任务,如数据注入1、数据注入2等。
数据包长度用于确定中央调度器获得该数据包的数据段包含多少个32bit。
数据包编号用来区分不同的数据包。数据包编号与子任务编号配合,可以完成中央调度器对所有数据包的识别。
任务类型编号、数据包长度、数据包长度和保留等字段共同组成了基于任务编号的调度控制机制的多核密码处理器接口通信协议的包头字段。接口通信协议的各种包头结构如下:
指令包包头可以包含8位任务类型编号、16位数据包长度。数据包长度以32bit为单位,最长可传输216个32bit。
输入数据包包头可以包含8位任务类型编号、9位数据包长度、8位数据包编号。最长可传输29个32bit。
配置包包头包含8位任务类型编号(固定为8’b0)、3位配置类型、16位数据包长度。最长可传输216个32bit。
输出数据包包头可以包含9位数据包长度、8位数据包编号。最长可传输29个32bit。
本申请上述实施例中的中央调度器用于完成数据的搬运和相关的运算、密码运算模块中的硬件资源的配置和管理、解析输入数据包等操作,最终完成多核密码运算模块内部的任务调度工作。
可以理解的是,为了提高中央调度器对信息安全系统对基于任务编号的调度控制机制的多核密码处理器输入协议的适应性,数据分配控制器增加了通用寄存器堆、运算单元(ALU)等部件,中央调度器主要采用取指(IF)、译码和取数(ID)、执行和回写(EX&WB)三级流水结构。本申请上述实施例中的中央调度器可以借鉴微程序控制器的流水结构与设计思想,其流水线结构如图3所示。中央调度器输入微控制器流水线结构共分为三级,分别为:取指(IF)、译码和取数(ID)、执行和回写(EX&WB)。取指部分主要由一个数据选择器组成,其输入端为当前PC的值,PC自加1后的值、跳转地址、仲裁后输出请求地址以及任务引导列表的引导地址;将地址选择后进入译码和取数级,选取指令RAM中的对应指令进行译码,并根据译码经数据输入通道及通用寄存器堆选择出执行时所需的数据,输出至执行和回写级的寄存器组中,在该级完成执行和回写过程。其中,快速传输单元完成大批量数据的传输。
具体包括:
取指电路,用于读取输入微代码控制器指令;
译码电路,用于译码输入微代码控制器指令;
通用寄存器组,用于存储数据;
运算单元,用于执行计算、立即数生成等指令;
回写单元,用于完成对计算后的数据回写至通用寄存器组;
快速传输状态机,用于完成大批量的数据搬运;
协处理器状态选择,用于完成对四个协处理器进行选择;
时钟管理单元,用于完成对整个系统的时钟管理;
多核输入总线,用于完成于四个协处理器的Infifo、CrossMemory、KeyPool、EccMatrix通信。
其中取指电路为图中第一级虚线以上部分,时钟管理单元及多核输入图中未标识。
可以理解的是,在程序执行过程中,中央调度器可以采用SIMD方式将数据并行分配下去。也可以采用DMA的方式将数据流水的传输到指定的处理器中。
本申请上述实施例中的硬件解析单元,主要用来完成对数据包的快速解析,引导输入/输出微控制器完成调度任务。硬件解析单元的工作原理是:通过引导控制器判断输入缓存的状态,读取输入的数据包,并解析数据包包头,通过子任务引导RAM获得数据包包头所对应的控制信息(子函数的起始地址),将包头所对应的控制信息,映射为输入微控制器的控制任务。子任务引导列表RAM用来存储数据包的子任务编号与输入微控制器调度程序的映射信息;引导控制器用来完成多核密码运算模块的配置和输入包头的快速解析工作,所述引导列表的实质是数据包头到输入控制器指令RAM的地址映射表,主要任务是完成从子任务编号到对应的子函数的转换。
所述引导控制器(Boot Controller)是硬件解析单元的核心模块,它通过判断各模块的状态,解析数据包包头,向相应模块发出控制信号。从而完成配置硬解析电路引导列表、输入微控制器指令RAM、输出微控制器指令RAM的配置工作,以及控制输入控制器地址的跳转。
任务映射列表由子任务编号和与其对应的子任务分配程序在指令RAM中存放的首地址组成,用于实现数据类型的快速查找。子任务引导列表RAM主要完成从子任务编号到子任务程序的转换,它实际是一个256x10bit的寄存器文件;用来储存输入控制器的引导列表,也就是数据包头到输入微程序控制器指令RAM的地址映射表。
综上所述,硬件解析单元是完成外界与输入、输出微控制器交互、包头解析工作的关键模块,主要具有以下两个功能:
1)解析配置包包头,完成多核密码运算模块的配置工作。包括:配置硬解析电路引导列表RAM、配置输入微控制器指令RAM、配置输出微控制器指令RAM;
2)解析数据包包头,与输入微控制器配置配合,完成数据的输入和分配工作。
可以理解的是,本申请上述输入微控制器和输出微控制器内存储有通过预设的运行程序(子函数)。输入\输出微程序控制器的运行程序以数据包的形式注入多核密码运算模块中,所述引导控制器可以在输入和输出微程序控制器就绪之前完成对数据包的解析和输入\输出微程序控制器的配置工作。
对于本设计的硬解析电路,由于需要处理通信协议中包头类型有限,且包头格式固定,因此需要调度的源和目的地址较少。所以所述硬解析电路可以采用有限状态机的方式完成控制,将控制需求抽象为不同控制状态,并分析不同状态之间的转换条件。
可以理解的是,上述硬解析电路由多个模块组成,包括:配置状态机(Cfg_state)、包头长度自减计数器(Package_Lenth_sub_counter)、引导列表写地址自加计数器(Blram_waddr_addr_counter)、引导列表RAM(Boot_load_RAM)、比较器(CMP)、输入指令RAM写地址自加计数器(Iiram_waddr_add_counter)、输出指令RAM写地址自加计数器(Oiram_waddr_add_counter)。
配置状态机是硬件解析单元的核心模块,用于通过判断各模块的状态,向相应模块发出控制信号,完成配置硬解析电路引导列表、输入微控制器指令RAM、输出微控制器指令RAM,控制输入控制器地址的跳转。
包头长度自减计数器,用于记录输入数据包的长度;当输入包头时,包头长度自减计数器获得相应数据包长度;每输入一个数据,包头长度自减计数器减1。
引导列表写地址自加计数器,用于协助配置状态机完成引导列表RAM的配置工作;初始值为0,每向引导列表RAM注入一个数据,地址加1。
引导列表RAM,实际是一个256x10bit的寄存器文件;用于储存输入控制器的引导列表,也就是数据包头到输入控制器指令RAM的地址映射表。
比较器,用于比较输入先进先出队列(Entryfifo)输出数据的低16bit与当前输入微控制器输出的16bit数据是否相等,并将结果反馈给配置状态机。
输入指令RAM写地址自加计数器协助配置状态机完成输入微控制器指令RAM的配置工作;初始值为0,每向输入微控制器指令RAM注入一个数据,地址加1。
输出指令RAM写地址自加计数器,协助配置状态机完成输出微控制器指令RAM的配置工作;初始值为0,每向输出微控制器指令RAM注入一个数据,地址加1。
配置状态机的实质是有限状态机,它由16个不同状态组成,每个状态下会发出相应的控制信号,完成一个操作:
初始状态,在该状态下配置状态机不做任何操作。
读错误配置包头状态,在该状态下配置状态机读取Entryfifo输入的错误配置包头,并将其舍弃。
读配置包头状态,在该状态下配置状态机读取Entryfifo输入的正确配置包头,并将其输入包头寄存器,同时配置包头长度自减计数器。
配置iiram状态,在该状态下配置状态机将Entryfifo中数据作为指令配置到输入微控制器指令RAM。
配置iiram等待状态,在该状态下配置状态机不做任何操作,等待Entryfifo非空,进入配置iiram状态。
配置blram状态,在该状态下配置状态机将Entryfifo中数据作为引导列表输入到引导列表RAM中。
配置blram等待状态,在该状态下配置状态机不做任何操作,等待Entryfifo非空,进入配置blram状态。
配置Oiram状态,在该状态下配置状态机将Entryfifo中数据作为指令配置到输出微控制器指令RAM。
配置Oiram等待状态,在该状态下配置状态机不做任何操作,等待Entryfifo非空,进入配置Oiram状态。
配置完成状态,在该状态下配置状态机发出配置完成标志,表示输入/输出微控制器的配置工作结束。
Hold指令等待状态,当输入微控制器执行Hold指令的时候进入该状态,等待Entryfifo输入数据包头进行相应的操作。
Hold指令更新PC状态,在该状态下配置状态机根据Entryfifo中包头的地址信息,读取引导列表中数据,作为输入微控制器下一程序运行的地址,更新PC。
Wait指令空等待状态,当输入微控制器执行Wait指令,且Entryfifo空的时候进入该状态,在该状态下配置状态机不做任何操作。
Wait指令非空等待状态,当输入微控制器执行Wait指令,且Entryfifo非空的时候进入该状态,在该状态下配置状态机读取Entryfifo中的乱数,并将其舍弃。
Entryfifo空Wait指令更新PC状态,在该状态下配置状态机向输入微控制器发出信号,使其执行下一条指令,同时更新Entrfifo的输出。
Entryfifo非空Wait指令更新PC状态,在该状态下配置状态机向输入微控制器发出信号,使其执行下一条指令,不更新Entrfifo的输出。
可以理解的是,本申请上述实施例中,所述当中央调度器执行任务引导单元的配置指令(Task Boot Configure,TBS)的控制指令时,所述引导控制器用于从数据输入通道中解析出数据包的任务编号,用于标识输入任务的次序,将任务编号存储在数据分配控制器的通用寄存器组中。当中央调度器执行子任务引导单元(Subtask Boot Unit,SBU)的控制指令时,SBU需要检查流缓存机制中输入FIFO的状态。非空时,取出数据包包头,将数据包包头存储在专用数据分配控制器的通用寄存器组中,解析数据输入协议。并利用任务编号作为地址读取任务引导RAM。在执行SBU控制指令的过程中,专用数据分配控制器的PC值不变,直到SBU读到任务引导RAM的数值后,发送完成信号,并将获得的数值发送给取指电路,改变取指电路中的PC值,实现中央调度器的指令跳转。
可以理解的是,本申请上述实施例中的所述中央调度器除了具有一般多核密码运算模块的基本指令外还具有包括DMA传输指令,用于实现外部存储器与密码芯片之间直接数据传输;等待处理指令,用于和硬件解析单元配合,完成数据包解析和子任务调用的工作,其可通过直接判断外部引脚电平,决定程序分支。
可以理解的是所述中央调度器与多核密码运算模块之间通过硬连线直接互连,避免了总线结构的数据传输,不需要处理总线数据传输协议,提高了数据传输的效率,从而提高了任务调度的效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种基于任务编号的调度控制机制的多核密码处理器,其特征在于,包括:
输入缓存和输出缓存;
与所述输入缓存和输出缓存相连的中央调度器;
与所述中央调度器相连的密码处理器组,所述密码处理器组中设置有多个密码运算模块;
所述中央调度器包括:输入微控制器、输出微控制器和硬件解析单元;
所述输入微控制器用于对获取到的数据包进行解析,并依据所述硬件解析单元输出的调度指令调取与所述调度指令所匹配的子任务分配程序,进行输入数据的调度和计算任务的分配;
所述输出微控制器用于依据所述硬件解析单元发送的用于表征数据包类型的标识信息完成每个密码运算模块计算结果的输出;
所述硬件解析单元用于依据预设的引导列表中的数据信息解析数据包包头,将解析得到的与数据包的输入次序相匹配的调度指令发送至输入微控制器,将解析得到的用于表征数据包类型的标识信息发送至输出微控制器;
所述引导列表中存储有用于表征数据包的输入次序的标识信息和与其一一对应的用于表征子任务分配程序的调度指令;
所述硬件解析单元包括:子任务引导RAM和任务引导控制器;
所述子任务引导RAM用于存储表征数据包的输入次序的标识信息和与其一一对应的用于表征子任务分配程序的调度指令;
所述任务引导控制器用于通过输入缓存获取数据包,对获取到的数据包的包头进行解析,获取用于表征数据包的输入次序的标识信息和用于表征数据包类型的标识信息,依据子任务引导RAM查找与所述用于表征数据包输入次序的信息标识相匹配的调度指令,将所述调度指令发送至输入微控制器,将所述用于表征数据包类型的标识信息发送至输出微控制器。
2.根据权利要求1所述的基于任务编号的调度控制机制的多核密码处理器,其特征在于,所述用于表征数据包类型的标识信息为数据包的任务类型编号。
3.根据权利要求1所述的基于任务编号的调度控制机制的多核密码处理器,其特征在于,所述子任务引导RAM具体包括:
数据包包头所包含的子任务编号和与所述子任务编号一一对应的子任务分配程序在输入指令RAM中存放的首地址。
4.根据权利要求3所述的基于任务编号的调度控制机制的多核密码处理器,其特征在于,包括:
所述任务引导控制器,具体用于获取输入缓存中的数据包,对获取到的数据包的包头进行解析,获取读取子任务引导RAM的子任务编号和任务类型标号,读取子任务引导RAM中存储的与所述子任务编号相匹配的地址值作为中央调度器中输入微控制器中的PC寄存器的更新值;
输入微控制器,具体用于依据输入微控制器的PC寄存器的值,通过输入微控制器中的取指电路读取输入指令RAM中的程序;根据输入指令RAM中的程序,通过输入微控制器中的译码电路,生成密码运算模块的控制信息,并输入至密码运算模块;
所述输出微控制器,具体用于根据密码运算模块的状态信息,生成输出微控制器中的PC寄存器的更新值,根据输出微控制器中的PC寄存器的值,通过输出微控制器中的取指电路读取输出指令RAM中的程序,根据输出指令RAM中的程序,通过输出微控制器中的译码电路,输出密码运算模块的计算结果。
5.根据权利要求1所述的基于任务编号的调度控制机制的多核密码处理器,其特征在于,包括:
所述数据包由包头和数据段组成;
所述包头为指令包包头、输入数据包包头、配置信息包包头或输出数据包包头。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510107955.1A CN104679479B (zh) | 2015-03-12 | 2015-03-12 | 一种基于任务编号的调度控制机制的多核密码处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510107955.1A CN104679479B (zh) | 2015-03-12 | 2015-03-12 | 一种基于任务编号的调度控制机制的多核密码处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679479A CN104679479A (zh) | 2015-06-03 |
CN104679479B true CN104679479B (zh) | 2017-10-24 |
Family
ID=53314603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510107955.1A Active CN104679479B (zh) | 2015-03-12 | 2015-03-12 | 一种基于任务编号的调度控制机制的多核密码处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679479B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105450359A (zh) * | 2015-10-14 | 2016-03-30 | 深圳市网通电子商务有限公司 | 自定义二进制结构化协议数据的发送和接收方法 |
CN107229517A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
CN113535239B (zh) * | 2020-04-16 | 2023-08-18 | 长鑫存储技术有限公司 | 底层驱动转发方法及基于uefi实现的多核系统 |
CN113553102B (zh) * | 2021-08-11 | 2022-07-05 | 成都海光微电子技术有限公司 | 微码取指方法、微码存储组合产生方法、装置、设备 |
CN115470912B (zh) * | 2022-03-16 | 2024-04-05 | 本源量子计算科技(合肥)股份有限公司 | 一种量子任务的处理装置、方法及量子计算机 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538656A (zh) * | 2003-09-29 | 2004-10-20 | 智慧第一公司 | 微处理器区块密码编译方法与装置 |
CN101110113A (zh) * | 2007-08-10 | 2008-01-23 | 魏恺言 | 多用途计算电子支付密码的安全装置及密码生成方法 |
-
2015
- 2015-03-12 CN CN201510107955.1A patent/CN104679479B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538656A (zh) * | 2003-09-29 | 2004-10-20 | 智慧第一公司 | 微处理器区块密码编译方法与装置 |
CN101110113A (zh) * | 2007-08-10 | 2008-01-23 | 魏恺言 | 多用途计算电子支付密码的安全装置及密码生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104679479A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679479B (zh) | 一种基于任务编号的调度控制机制的多核密码处理器 | |
CN104423929B (zh) | 一种分支预测方法及相关装置 | |
US8230144B1 (en) | High speed multi-threaded reduced instruction set computer (RISC) processor | |
CA2338008C (en) | Method and apparatus for identifying splittable packets in a multithreaded vliw processor | |
US6799267B2 (en) | Packet processor | |
EP3776229A1 (en) | Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator | |
US20140181474A1 (en) | Atomic write and read microprocessor instructions | |
CN102841777B (zh) | 数据处理器中的分支目标缓存器寻址 | |
US20070130445A1 (en) | Heterogeneous multi-core processor having dedicated connections between processor cores | |
CN100468322C (zh) | 用于解析和封装包的方法、可编程微控制器和模板 | |
US20100030927A1 (en) | General purpose hardware acceleration via deirect memory access | |
US10003675B2 (en) | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data | |
CN107430553A (zh) | 用于存储器管理单元的命令驱动转换预取 | |
US9164771B2 (en) | Method for thread reduction in a multi-thread packet processor | |
KR20220001418A (ko) | 성능 마커들을 사용하는 리소스 할당 제어 프레임워크를 위한 장치 및 방법 | |
US20130227161A1 (en) | Transmit scaling using multiple queues | |
CN107209827A (zh) | 用于跟踪被污染的数据的机制 | |
US11960772B2 (en) | Pipeline using match-action blocks | |
CN107566316A (zh) | 一种报文解析方法、装置及网络处理器 | |
EP3803610B1 (en) | Direct memory access controller | |
CN112035866A (zh) | 一种数据加解密方法、装置、设备和计算机可读存储介质 | |
US9525760B1 (en) | Dynamic processing context | |
Brunella et al. | V-PMP: A VLIW Packet Manipulator Processor | |
Pala | Design and programming of a coprocessor for a RISC-V architecture | |
WO2024120070A1 (zh) | 异常处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |