一种easy-master微码模块及其配置方法

文档序号:1296311 发布日期:2020-08-07 浏览:30次 >En<

阅读说明:本技术 一种easy-master微码模块及其配置方法 (Easy-master microcode module and configuration method thereof ) 是由 伍骏 卢磊 刘少庆 于 2020-03-27 设计创作,主要内容包括:本发明公开了一种easy-master微码模块及其配置方法,该easy-master微码模块面向低功耗应用,涉及计算机微电子芯片技术领域。本发明easy-master微码模块包括事件触发电路、指令存储电路、指令译码与执行电路、指令控制总线电路;事件触发电路用于对外部事件event进行处理;指令存储电路包括两块片内sram存储指令,cpu通过总线事先对其中一块sram填充;当CPU或DMA不工作时,通过指令对另一块sram进行填充。本发明在CPU或DMA在不工作的情况下,easy-master可以代替CPU或DMA,操作总线,完成对所有地址空间的操作;争取最大程度的降低功耗。(The invention discloses an easy-master microcode module and a configuration method thereof, and relates to the technical field of computer microelectronic chips, wherein the easy-master microcode module is applied in a low-power consumption mode. The easy-master microcode module comprises an event trigger circuit, an instruction storage circuit, an instruction decoding and executing circuit and an instruction control bus circuit; the event trigger circuit is used for processing an external event; the instruction storage circuit comprises two on-chip sram storage instructions, and the cpu fills one sram in advance through a bus; when the CPU or DMA is not working, another block sram is filled by instructions. Under the condition that the CPU or the DMA does not work, the easy-master can replace the CPU or the DMA and operate the bus to finish the operation of all address spaces; strive for the maximum reduction power consumption.)

一种easy-master微码模块及其配置方法

技术领域

本发明属于计算机微电子芯片技术领域,特别是一种easy-master微码模块以及一种easy-master微码模块的配置方法。

背景技术

现有的外设和CPU交互的方式

(1)中断输入输出方式。当出现来自系统外部,机器内部,甚至处理机本身的任何例外的,或者虽然是事先安排的,当出现在现行程序的什么地方是事先不知道的事件时,CPU暂停执行现行程序,转去处理这些事件,等处理完成后再返回来继续执行原先的程序;与CPU并行工作;数据的输入和输出都要经过CPU;一般用于连接低速外围设备。

(2)直接存储器访问方式(DMA)。外围设备与主存储器之间建立直接数据通路,传输数据不需要CPU干预;计算机系统以主存储器为中心,主存储器既可以被CPU访问,也可以被外围设备访问;在外围设备与主存储器之间传送数据不需要执行程序,DMA传输方式只是减轻了CPU的工作负担;系统总线仍然被占用。特别是在传输大容量文件时,CPU的占用率可能不到10%,但是用户会觉得运行部分程序时系统变得相当的缓慢。

主要原因就是在运行这些应用程序(特别是一些大型软件),操作系统也需要从系统总线传输大量数据;故造成过长的等待时间。而且DMA方式不够灵活,不具有可编程性。只适合一些高速的I/O设备和主存储器交换数据。

由于嵌入式设备体积小,资源比较局限,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软、硬件,利用低的资源实现适当的功能,因此嵌入式设备的目标是资源小,低功耗,高效率。

针对以上cpu和外设通信的局限问题和嵌入式的发展趋势,本发明提供一种easy-master微码模块及其配置方法,在CPU等可编程模块处于低功耗模式的时候,通过对事件触发采取相应的总线操作来代替原本处理器中断例程的工作,争取最大程度的降低功耗,并具备一定的可编程灵活性,减少了CPU的负担,提高了芯片的处理事务的整体性能。

发明内容

本发明提供了一种easy-master微码模块及其配置方法,用于在CPU或DMA在不工作的情况下,代替CPU或DMA,操作总线,完成对所有地址空间的操作。

为解决上述技术问题,本发明是通过以下技术方案实现的:

本发明的一种easy-master微码模块,包括事件触发电路、指令存储电路、指令译码与执行电路、指令控制总线电路;

所述事件触发电路用于对外部事件event进行处理,该处理方式具有优先级;

所述指令存储电路包括两块片内sram存储指令,cpu通过总线事先对其中一块sram填充;当CPU或DMA不工作时,通过指令对另一块sram进行填充;

所述指令译码与执行电路对sram中的数据进行指令译码,通过状态机完成指令到op接口读写的转换;

所述指令控制总线电路用于对op接口与ahb总线接口转换。

进一步地,所述事件触发电路中event具有优先级,包括127个event;第127个event优先级最高,第0个event优先级最低,每个event有使能信号,由4个32bit寄存器控制,并由上升沿采样电路EDC输出为event对应的编号。

进一步地,所述指令存储电路通过总线对片内3个sram存储数据,将一片地址均匀划分成3份,由指令控制总线电路读写sram时序。

进一步地,所述指令译码与执行电路中的指令包括位操作、数据搬移操作、数据控制操作,其中有单周期指令,也有多周期指令;所述指令的内容存放在两块task_memory中,通过译码电路,得到当前要执行的指令,再通过状态机,最终完成user interface的读写。

进一步地,所述指令控制总线电路通过利用状态机,将op接口读写操作转换成标准总线读写操作。

一种easy-master微码模块的配置方法,包括如下步骤:

S01、初始化寄存器;

S02、匹配easy-master微码模块中断号和event的映射关系,比如配置中断号14map到event1、event2、event3,当中断产生时,event1,event2和event3这三个event都会trigger,按照优先级依次执行对应的task,如果想要执行event1,则不enable event2和event3;

S03、写模块功能,都被翻译成一条条指令存储于task中;

S04、配置event trigger方式,软件trigger和硬件中断trigger;

S05、RUN。

本发明相对于现有技术包括有以下有益效果:

1、CPU或DMA在不工作的情况下,easy-master可以代替CPU或DMA,操作总线,完成对所有地址空间的操作;

2、综合后的实际电路,easy-master所占面积是CPU或DMA的1/5。

3、在CPU等可编程模块处于低功耗模式的时候,通过对事件触发采取相应的总线操作来代替原本处理器中断例程的工作,争取最大程度的降低功耗,并具备一定的可编程灵活性,减少了CPU的负担,提高了芯片的处理事务的整体性能。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本发明easy-master微码模块的整体框图;

图2为本发明easy-master微码模块内部结构图;

图3为easy-master微码模块的事件触发电路的结构图;

图4为指令存储电路通过指令控制总线电路读写sram时序的原理图;

图5为状态机对不同指令间切换的操作原理图;

图6为指令控制总线电路的结构图;

图7为指令控制总线电路利用状态机将op接口读写操作转换成标准总线读写操作原理图;

图8为Task和event逻辑关系图;

图9为部分微码指令软件实现的结构图;

图10为easy-master微码模块配置的方法步骤图;

图11为本发明以神经网络引擎模块(NNE30)为测试模块实施例进行配置的方法步骤图。

具体实施方式

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

请参阅图1-9所示,本发明的一种easy-master微码模块,包括事件触发电路、指令存储电路、指令译码与执行电路、指令控制总线电路;

事件触发电路用于对外部事件event进行处理,该处理方式具有优先级;

指令存储电路包括两块片内sram存储指令,cpu通过总线事先对其中一块sram填充;当CPU或DMA不工作时,通过指令对另一块sram进行填充;

指令译码与执行电路对sram中的数据进行指令译码,通过状态机完成指令到op接口读写的转换;

指令控制总线电路用于对op接口与ahb总线接口转换。

其中,事件触发电路中event具有优先级,包括127个event;第127个event优先级最高,第0个event优先级最低,每个event有使能信号,由4个32bit寄存器控制,并由上升沿采样电路EDC输出为event对应的编号。

其中,指令存储电路通过总线对片内3个sram存储数据,将一片地址均匀划分成3份,由指令控制总线电路读写sram时序。

其中,指令译码与执行电路中的指令包括位操作、数据搬移操作、数据控制操作,其中有单周期指令,也有多周期指令;所述指令的内容存放在两块task_memory中,通过译码电路,得到当前要执行的指令,再通过状态机,最终完成user interface的读写。

其中,指令控制总线电路通过利用状态机,将op接口读写操作转换成标准总线读写操作。

根据图1对本发明的easy-master微码模块的信号进行说明,通过下表进行说明;

表1:easy-master微码模块的信号说明表

Easy-master最大支持128个事件触发,最大支持任务个数以TaskMemory容量为上限,多个事件也可以对应同一任务,通过命令编码支持多种语义的操作。

event事件信号为中断或握手信号(取上升沿),event具备优先级,event127为最高优先级,event0为最低优先级。当event到来的时候,event_trig会锁存当前到来的事件,并挑选最高优先级的事件,对改事件进行编号,将改编号作为table_memory的地址,进行读操作。在table_memory中寻找Task所在地址(首地址),并压入task_queue,并清除该锁存状态。当task_queue满的时候,产生中断,报告cpu处理该错误。如果当前事件还来不及加入队列,又来了一次脉冲信号,则仍作为一次事件。event_trig还具备设置相应位的enable/disable功能,由cpu配置。

table_memory和task_memory均为可以在总线上寻址的memory,在进入工作模式之前由cpu对这两块memory进行初始化。

当进入工作模式后,operator自动查询队列是否为空,如果不为空则弹出相应地址,对task_memory从该地址开始取指令,直至取得操作码为end作为任务结束标志,并再次查询是否队列为空。

表2:easy-master微码模块的具体微码列表

如图10所示,一种easy-master微码模块的配置方法,包括如下步骤:

S01、初始化寄存器;

S02、匹配easy-master微码模块中断号和event的映射关系,比如配置中断号14map到event1、event2、event3,当中断产生时,event1,event2和event3这三个event都会trigger,按照优先级依次执行对应的task,如果想要执行event1,则不enableevent2和event3;

S03、写模块功能,都被翻译成一条条指令存储于task中;

S04、配置event trigger方式,软件trigger和硬件中断trigger;

S05、RUN。

具体实施例

下面以神经网络引擎模块(NNE30)作为测试模块进行配置;

神经网络引擎它的data path有5个层,然后5个层可以按一定规则组合,可以有不同的组合,每层配完产生一个中断,都是一些数据输入,运算然后配置寄存器的过程,由于Easy-master最大支持128个events事件触发,正好可以用easy-master的特性来代替CPU来完成这个工作,只要把数据配完,然后easy master就可以在CPU不干预的情况下,独立完成这些任务。

假设NNE30配置6层,每层的配置计算就是一个任务,一共有6个任务,每个任务对应一个event,因为各个层间有顺序关系,配置并计算完一层,才能配置并计算下一层,因而对应的event有个顺序执行关系,有两种配置方法,一种最简单的就是按优先级来配置,最先执行的那层对应优先级最高的event,第二个执行的层次之,依次类推,第二种配置也是最不容易出错的配置,就是中断一来,只enable一个event,然后只执行这一个event,

第二个event的enable放到第一个task的指令中去enable,第三个event的enable放到第二个task的指令中去enable。第二种配置流程图如图11所示;

预期结果:跟用CPU跑的结果一致。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:不同USB主机设备在显示设备上快速切换传输通道的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!