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

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

Info

Publication number
CN111506531B
CN111506531B CN202010229829.4A CN202010229829A CN111506531B CN 111506531 B CN111506531 B CN 111506531B CN 202010229829 A CN202010229829 A CN 202010229829A CN 111506531 B CN111506531 B CN 111506531B
Authority
CN
China
Prior art keywords
instruction
circuit
event
master
easy
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
Application number
CN202010229829.4A
Other languages
English (en)
Other versions
CN111506531A (zh
Inventor
伍骏
卢磊
刘少庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Saifang Technology Co ltd
Original Assignee
Shanghai Saifang Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Saifang Technology Co ltd filed Critical Shanghai Saifang Technology Co ltd
Priority to CN202010229829.4A priority Critical patent/CN111506531B/zh
Publication of CN111506531A publication Critical patent/CN111506531A/zh
Application granted granted Critical
Publication of CN111506531B publication Critical patent/CN111506531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种easy‑master微码模块及其配置方法,该easy‑master微码模块面向低功耗应用,涉及计算机微电子芯片技术领域。本发明easy‑master微码模块包括事件触发电路、指令存储电路、指令译码与执行电路、指令控制总线电路;事件触发电路用于对外部事件event进行处理;指令存储电路包括两块片内sram存储指令,cpu通过总线事先对其中一块sram填充;当CPU或DMA不工作时,通过指令对另一块sram进行填充。本发明在CPU或DMA在不工作的情况下,easy‑master可以代替CPU或DMA,操作总线,完成对所有地址空间的操作;争取最大程度的降低功耗。

Description

一种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微码模块的信号进行说明,通过下表进行说明;
Figure BDA0002428940000000051
表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作为任务结束标志,并再次查询是否队列为空。
Figure BDA0002428940000000052
/>
Figure BDA0002428940000000061
/>
Figure BDA0002428940000000071
/>
Figure BDA0002428940000000081
表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跑的结果一致。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (4)

1.一种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对应的编号;
所述指令译码与执行电路中的指令包括位操作、数据搬移操作、数据控制操作,其中有单周期指令,也有多周期指令;所述指令的内容存放在两块task_memory中,通过译码电路,得到当前要执行的指令,再通过状态机,最终完成user interface的读写。
2.根据权利要求1所述的一种easy-master微码模块,其特征在于,所述指令存储电路通过总线对片内3个sram存储数据,将一片地址均匀划分成3份,由指令控制总线电路读写sram时序。
3.根据权利要求1所述的一种easy-master微码模块,其特征在于,所述指令控制总线电路通过利用状态机,将op接口读写操作转换成标准总线读写操作。
4.如权利要求1-3任一项所述的一种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。
CN202010229829.4A 2020-03-27 2020-03-27 一种easy-master微码模块及其配置方法 Active CN111506531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010229829.4A CN111506531B (zh) 2020-03-27 2020-03-27 一种easy-master微码模块及其配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010229829.4A CN111506531B (zh) 2020-03-27 2020-03-27 一种easy-master微码模块及其配置方法

Publications (2)

Publication Number Publication Date
CN111506531A CN111506531A (zh) 2020-08-07
CN111506531B true CN111506531B (zh) 2023-06-02

Family

ID=71864649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010229829.4A Active CN111506531B (zh) 2020-03-27 2020-03-27 一种easy-master微码模块及其配置方法

Country Status (1)

Country Link
CN (1) CN111506531B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145027A (en) * 1997-07-09 2000-11-07 Texas Instruments Incorporated DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
US6449670B1 (en) * 1998-04-29 2002-09-10 Stmicroelectronics, Limited Microcomputer with bit packets for interrupts, control and memory access
US6938118B1 (en) * 1998-10-28 2005-08-30 Imsys Technologies Ab Controlling access to a primary memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3250393A (en) * 1991-12-17 1993-07-19 Compaq Computer Corporation Apparatus for reducing computer system power consumption
JPH0675780A (ja) * 1992-04-27 1994-03-18 Nec Corp 割込み制御装置
US5987601A (en) * 1997-02-14 1999-11-16 Xyron Corporation Zero overhead computer interrupts with task switching
IT1308343B1 (it) * 1999-02-03 2001-12-11 St Microelectronics Srl Procedimento per arbitrare priorita' di interruzione tra periferichein un sistema basato su microprocessore
JP2002055830A (ja) * 2000-05-29 2002-02-20 Seiko Epson Corp 割込信号生成装置及び割込信号の生成方法
US20070240011A1 (en) * 2006-04-05 2007-10-11 Texas Instruments Incorporated FIFO memory data pipelining system and method for increasing I²C bus speed
CN102545580B (zh) * 2012-01-30 2014-05-14 西北工业大学 一种可在线编程的通用pfc多功能处理器
JP6433191B2 (ja) * 2014-08-18 2018-12-05 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
CN105446914B (zh) * 2014-09-02 2018-05-29 施耐德电器工业公司 Plc模块中产生到上位cpu的中断/事件的方法及装置
CN106874224B (zh) * 2017-02-17 2020-08-18 杭州朔天科技有限公司 自动搬运且适应器件的多线SPI-Flash控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145027A (en) * 1997-07-09 2000-11-07 Texas Instruments Incorporated DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
US6449670B1 (en) * 1998-04-29 2002-09-10 Stmicroelectronics, Limited Microcomputer with bit packets for interrupts, control and memory access
US6938118B1 (en) * 1998-10-28 2005-08-30 Imsys Technologies Ab Controlling access to a primary memory

Also Published As

Publication number Publication date
CN111506531A (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
US9389904B2 (en) Apparatus, system and method for heterogeneous data sharing
US7865696B2 (en) Interface including task page mechanism with index register between host and an intelligent memory interfacing multitask controller
CN101221541B (zh) 用于soc的可编程通信控制器
US7856632B2 (en) iMEM ASCII architecture for executing system operators and processing data operators
US20120304190A1 (en) Intelligent Memory Device With ASCII Registers
CN100476650C (zh) 单片机存储系统
JPH06149545A (ja) Cpuと乗算器とを有する半導体集積回路
CN105930186B (zh) 多cpu的软件加载方法及基于多cpu的软件加载装置
CN110427337B (zh) 基于现场可编程门阵列的处理器内核及其运行方法
CN115033188B (zh) 一种基于zns固态硬盘的存储硬件加速模块系统
US7908603B2 (en) Intelligent memory with multitask controller and memory partitions storing task state information for processing tasks interfaced from host processor
KR20200139525A (ko) Fpga를 포함하는 전자 시스템 및 이의 동작 방법
CN111190855A (zh) 一种fpga多重远程配置系统及方法
US7882504B2 (en) Intelligent memory device with wakeup feature
CN114490023A (zh) 一种基于arm和fpga的高能物理可计算存储设备
US6327648B1 (en) Multiprocessor system for digital signal processing
Van Lunteren et al. Coherently attached programmable near-memory acceleration platform and its application to stencil processing
CN111506531B (zh) 一种easy-master微码模块及其配置方法
US20050172085A1 (en) Intelligent memory device
US7823159B2 (en) Intelligent memory device clock distribution architecture
CN112711925A (zh) 虚拟化emif总线dsp软件设计方法
Xue et al. Softssd: Software-defined ssd development platform for rapid flash firmware prototyping
EA039007B1 (ru) Устройство прямого отображения адресов данных, располагающихся во внешнем последовательном пзу, в адресное пространство микропроцессорного ядра, компьютерная система и способ передачи данных
US6009483A (en) System for dynamically setting and modifying internal functions externally of a data processing apparatus by storing and restoring a state in progress of internal functions being executed
JP3807616B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant