CN109739557B - 零开销循环装置及实现方法、系统、设备、计算机介质 - Google Patents
零开销循环装置及实现方法、系统、设备、计算机介质 Download PDFInfo
- Publication number
- CN109739557B CN109739557B CN201910016305.4A CN201910016305A CN109739557B CN 109739557 B CN109739557 B CN 109739557B CN 201910016305 A CN201910016305 A CN 201910016305A CN 109739557 B CN109739557 B CN 109739557B
- Authority
- CN
- China
- Prior art keywords
- loop
- processor
- cycle
- value
- risc
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002457 bidirectional effect Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Power Sources (AREA)
Abstract
本申请公开一种零开销循环装置及实现方法、系统、设备、计算机介质,该方法包括:接收RISC‑V处理器发送的空循环指令;解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;将循环初始值作为计数基值,按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值;判断当前轮的实时计数值是否满足循环结束条件,若否,则将实时计数值更新为计数基值,返回按照循环方式,将计数基值和循环步长进行运算的步骤,若是,则返回空循环完成消息至RISC‑V处理器。本申请提供的零开销循环装置及实现方法、系统、设备及计算机可读存储介质,提高了RISC‑V处理器的性能。
Description
技术领域
本申请涉及处理器技术领域,更具体地说,涉及零开销循环装置及实现方法、系统、设备、计算机介质。
背景技术
RISC-V处理器处理RISC-V指令集中的空循环语句时,使用关键字volatile 定义空循环语句,之后,编译器根据关键字将空循环语句编译成加法指令和跳转分支指令,从而实现循环的效果。本申请所涉及的RISC-V处理器指的是运行RISC-V程序的处理器。
然而,加法指令和跳转分支指令会占用RISC-V处理器的存储空间,使得 RISC-V处理器的性能降低。
综上所述,如何提高RISC-V处理器的性能是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种零开销循环实现方法,其能在一定程度上解决如何提高RISC-V处理器的性能的技术问题。本申请还提供了一种零开销循环装置及实现系统、设备、计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种零开销循环实现方法,包括:
接收RISC-V处理器发送的空循环指令;
解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;
将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;
判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述 RISC-V处理器。
优选的,所述将所述循环初始值作为计数基值之前,还包括:
判断所述空循环指令中是否存在低功耗开启标志;
若所述空循环指令中存在所述低功耗开启标志,则断电所述RISC-V处理器,并断电使用所述RISC-V处理器的第一时钟的外接设备。
优选的,所述将所述实时计数值更新为所述计数基值之后,所述返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤之前,还包括:
判断当前轮的实时计数值是否等于第一计数值,若当前轮的实时计数值等于所述第一计数值,则上电所述RISC-V处理器;
所述返回空循环完成消息至所述RISC-V处理器之后,还包括:
使能所述第一时钟,以使所述RISC-V处理器及所述外接设备工作;
其中,所述第一计数值包括循环结束值与预设数值的差值,且所述第一计数值位于所述循环初始值和所述循环结束值之间。
优选的,所述断电所述RISC-V处理器之前,还包括:
读取并保存所述RISC-V处理器的寄存器中的寄存器数据;
所述上电所述RISC-V处理器之后,还包括:
使用第二时钟,将所述寄存器数据写入所述寄存器。
优选的,所述接收RISC-V处理器发送的空循环指令之后,所述将所述循环初始值作为计数基值之前,还包括:
获取所述空循环指令在所述RISC-V处理器中的程序地址;
所述返回空循环完成消息至所述RISC-V处理器之后,还包括:
返回所述程序地址至所述RISC-V处理器,以使所述RISC-V处理器基于所述程序地址确定下一时刻运行的程序。
优选的,所述返回空循环完成消息至所述RISC-V处理器,包括:
生成表示空循环完成的中断标志,发送所述中断标志至所述RISC-V处理器。
一种零开销循环实现系统,包括:
第一接收模块,用于接收RISC-V处理器发送的空循环指令;
第一解析模块,用于解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;
第一计数模块,用于将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;
第一判断模块,用于判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述RISC-V处理器。
一种零开销循环实现设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述零开销循环实现方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述零开销循环实现方法的步骤。
一种零开销循环装置,包括:
传输控制器,用于接收RISC-V处理器发送的空循环指令,并传输至译码控制器;
所述译码控制器,用于解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件,并发送所述循环初始值、所述循环步长、所述循环方式、所述循环结束条件至双向计数器;
所述双向计数器,用于将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述RISC-V 处理器。
本申请提供的一种零开销循环实现方法,接收RISC-V处理器发送的空循环指令;解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;将循环初始值作为计数基值,按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值;判断当前轮的实时计数值是否满足循环结束条件,若否,则将实时计数值更新为计数基值,返回按照循环方式,将计数基值和循环步长进行运算的步骤,若是,则返回空循环完成消息至 RISC-V处理器。本申请提供的零开销循环实现方法,无需将空循环语句编译为加法指令和跳转分支指令即可实现对空循环语句的处理,避免了加法指令和跳转分支指令占用RISC-V处理器的存储空间,提高了RISC-V处理器的性能。本申请提供的零开销循环装置及实现系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种零开销循环实现方法的第一流程图;
图2为本申请实施例提供的一种零开销循环实现方法的第二流程图;
图3为本申请实施例提供的一种零开销循环实现系统的结构示意图;
图4为本申请实施例提供的一种零开销循环实现设备的结构示意图;
图5为本申请实施例提供的一种零开销循环实现设备的另一结构示意图;
图6为本申请实施例提供的一种零开销循环装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
RISC-V处理器处理RISC-V指令集中的空循环语句时,使用关键字 volatile定义空循环语句,之后,编译器根据关键字将空循环语句编译成加法指令和跳转分支指令,从而实现循环的效果。本申请所涉及的RISC-V处理器指的是运行RISC-V程序的处理器。然而,加法指令和跳转分支指令会占用 RISC-V处理器的存储空间,使得RISC-V处理器的性能降低。本申请提供的一种零开销循环实现方法可以提高RISC-V处理器的性能。
请参阅图1,图1为本申请实施例提供的一种零开销循环实现方法的第一流程图。
本申请实施例提供的一种零开销循环实现方法,可以包括以下步骤:
步骤S101:接收RISC-V处理器发送的空循环指令。
实际应用中,可以先接收RISC-V处理器发送的空循环指令,空循环指令是与空循环语句对应的指令,也即RISC-V执行空循环语句时,需将空循环语句转换为空循环指令,并将空循环指令发送至本申请提供的零开销循环实现方法的执行主体,空循环指令指的是只有循环条件而没有循环体的指令。本申请提供的零开销循环实现方法的执行主体可以为本申请提供的零开销循环实现系统、零开销循环装置,当然,零开销循环实现系统还可以内置于服务器、处理器等中,所以本申请提供的零开销循环实现方法的执行主体还可以为内置了零开销循环实现系统的服务器、处理器等。
具体应用场景中,处理器可以借助空循环指令格式将空循环语句转换为空循环指令,空循环指令格式可以如表1:
表1空循环指令格式
其中,位域opcode为RISC-V指令的操作码,采用1011011为本申请中空循环指令的操作码,空循环指令格式中其他位域代表意义请参阅表2:
表2空循环指令格式中位域代表含义
信号名称 | 方向 | 位宽 | 描述 |
riscv_loop_req_vl | I | 1 | 请求有效 |
riscv_loop_req_pc | I | 32 | 当前程序地址 |
riscv_loop_req_op | I | 1 | 空循环加减标志,1表示加法;0表示减法 |
riscv_loop_req_lp | I | 1 | 请求低功耗标志,高位有效 |
riscv_loop_req_step | I | 4 | 循环步长,即空循环自加/减步长 |
riscv_loop_req_sum | I | 16 | 循环上限/下限 |
其中循环步长的上限可以根据实际需要确定,比如其可以为16、32等。
步骤S102:解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;将循环初始值作为计数基值。
实际应用中,接收空循环指令后,便可以解析出空循环指令中的循环初始值、循环步长、循环方式和循环结束条件,以便之后基于解析出的空循环指令中的数据进行循环计数。循环初始值指的是空循环指令中的初始值,循环方式指的是循环步长的运算方式,循环步长指的是循环运算方式中的数据变化值,以for(i=0;i<100;i++)的空循环语句为例,循环初始值便为0,循环方式便为i++,循环步长为1,循环结束条件为i<100。
步骤S103:按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值。
实际应用中,可以将循环初始值作为计数基值,然后按照循环方式,将计数基值和循环步长进行运算得到当前轮的实时计数值。本申请所涉及的轮指的是对计数基值进行一次运算的过程。
步骤S104:判断当前轮的实时计数值是否满足循环结束条件,若否,则执行步骤S105,若是,则执行步骤S106。
实际应用中,当满足循环结束条件时,便需结束计数操作,所以在得到当前轮的实时计数值后,需判断当前轮的实时计数值是否满足循环结束条件。
步骤S105:将实时计数值更新为计数基值,返回步骤S103。
实际应用中,当前轮的实时计数值不满足循环结束条件时,便表示还需进行计数操作,此时可以将实时计数值更新为计数基值,再次按照循环方式,将计数基值和循环步长进行运算,得到新一轮的实时计数值,以此循环,直至当前轮的实时计数值满足循环结束条件。
步骤S106:返回空循环完成消息至RISC-V处理器。
实际应用中,当前轮的实时计数值满足循环结束条件后,便表示空循环语句运行完成,此时可以返回空循环完后消息至RISC-V处理器,以使RISC-V 处理器执行后续操作。
具体应用场景中,由于零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1,所以执行零开销循环时,RISC-V处理器可以不做任何操作,此时,为了节省功耗,可以使得RISC-V处理器处于非工作状态,则将循环初始值作为计数基值之前,还可以判断空循环指令中是否存在低功耗开启标志;若空循环指令中存在低功耗开启标志,则断电RISC-V处理器,并断电使用RISC-V处理器的第一时钟的外接设备。不难理解,是否断电RISC-V处理器,需要由空循环指令来确定,而空循环指令是由RISC-V处理器执行编译器后生成的,所以外界可以通过设置RISC-V处理器来决定是否断电RISC-V处理器。此外,在断电 RISC-V处理器时,还将使用RISC-V处理器的第一时钟的外界设备进行断电,进一步降低零开销循环的功耗,可断电的外接设备的类型可以根据实际需要灵活设定。应当指出,断电的外接设备与RISC-V处理器共用第一时钟工作。此外,在空循环指令中不存在低功耗开启标志时,只禁能第一时钟,不执行断电操作。此外,在空循环指令中不存在低功耗开启标志时,可以只禁能第一时钟,而不断电RISC-V处理器或外接设备,并在返回空循环完成消息至 RISC-V处理器之后,使能第一时钟。
具体的,零开销循环完后,RISC-V处理器需正常工作,为了避免RISC-V 断电后恢复正常工作的延时影响RISC-V的处理进程,可以在实现零开销循环的过程中,预先将RISC-V处理器上电,则将实时计数值更新为计数基值之后,返回按照循环方式,将计数基值和循环步长进行运算的步骤之前,还可以判断当前轮的实时计数值是否等于第一计数值,若当前轮的实时计数值等于第一计数值,则上电RISC-V处理器;相应的,为了使得外接设备正常工作,在返回空循环完成消息至RISC-V处理器之后,还可以使能第一时钟,以使 RISC-V处理器及外接设备工作;其中,第一计数值包括循环结束值与预设数值的差值,且第一计数值位于循环初始值和循环结束值之间。以循环结束值为100,预设数值为10,循环初始值为20,由于第一计数值为循环结束值和预设数值的差值,且第一数值位于循环结束值和循环初始值之间,所以第一计数值为90,也即计数次数达到90时,便将RISC-V处理器上电。不难理解,第一计数值可以根据实际需要灵活确定。
具体的,由于在实现零开销循环的过程中,RISC-V处理器可能处于断电状态,此时,RISC-V处理器中保存的数据可能发生丢失,为了避免RISC-V 处理器中的数据发生丢失,在断电RISC-V处理器之前,还可以读取并保存 RISC-V处理器的寄存器中的寄存器数据;相应的,上电RISC-V处理器之后,还可以使用第二时钟,将寄存器数据写入寄存器。不难理解,寄存器使用的时钟可以为第一时钟和第二时钟,在RISC-V处理器正常工作时,寄存器使用的时钟可以灵活确定。此外,可以在上电RISC-V处理器的一个时钟之后将保存的寄存器数据写入寄存器。
具体的,由于在实现零开销循环的过程中,RISC-V处理器可能处于断电状态,此时,RISC-V处理器上电后,可能无法确定其正在执行的程序,为了避免这种情况,在接收RISC-V处理器发送的空循环指令之后,将循环初始值作为计数基值之前,还可以获取空循环指令在RISC-V处理器中的程序地址;相应的,返回空循环完成消息至RISC-V处理器之后,还可以返回程序地址至 RISC-V处理器,以使RISC-V处理器基于程序地址确定下一时刻运行的程序。具体的,RISC-V可以将接收的程序地址加4即可得到其下一次所需运行的程序。
具体的,可以借助中断来返回表示空循环完成的消息,则返回空循环完成消息至RISC-V处理器的过程可以具体为:生成表示空循环完成的中断标志,发送中断标志至RISC-V处理器。
本申请提供的一种零开销循环实现方法,接收RISC-V处理器发送的空循环指令;解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;将循环初始值作为计数基值,按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值;判断当前轮的实时计数值是否满足循环结束条件,若否,则将实时计数值更新为计数基值,返回按照循环方式,将计数基值和循环步长进行运算的步骤,若是,则返回空循环完成消息至 RISC-V处理器。本申请提供的零开销循环实现方法,无需将空循环语句编译为加法指令和跳转分支指令即可实现对空循环语句的处理,避免了加法指令和跳转分支指令占用RISC-V处理器的存储空间,提高了RISC-V处理器的性能。
请参阅图2,图2为本申请实施例提供的一种零开销循环实现方法的第二流程图。
实际应用中,本申请实施例提供的一种零开销循环实现方法可以包括以下步骤:
步骤S201:接收RISC-V处理器发送的空循环指令。
步骤S202:解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;将循环初始值作为计数基值。
步骤S203:判断空循环指令中是否存在低功耗开启标志;若否,执行步骤S204,若是,则执行步骤S210。
步骤S204:只禁能RISC-V处理器的第一时钟。
步骤S205:按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值。
步骤S206:判断当前轮的实时计数值是否满足循环结束条件,若否,执行步骤S207,若是,执行步骤S208。
步骤S207:将实时计数值更新为计数基值,返回步骤S205。
步骤S208:返回空循环完成消息至RISC-V处理器,执行步骤S209。
步骤S209:使能第一时钟。
步骤S210:断电RISC-V处理器,并断电使用RISC-V处理器的第一时钟的外接设备。
步骤S211:按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值。
步骤S212:判断当前轮的实时计数值是否满足循环结束条件,若否,执行步骤S213,若是,执行步骤S216。
步骤S213:将实时计数值更新为计数基值,执行步骤S214。
步骤S214:判断当前轮的实时计数值是否等于第一计数值,若是,执行步骤S215。
步骤S215:上电RISC-V处理器,返回步骤S211。
步骤S216:返回空循环完成消息至RISC-V处理器,执行步骤S217。
步骤S217:使能第一时钟,以使RISC-V处理器及外接设备工作。
本申请还提供了一种零开销循环实现系统,其具有本申请实施例提供的一种零开销循环实现方法具有的对应效果。请参阅图3,图3为本申请实施例提供的一种零开销循环实现系统的结构示意图。
本申请实施例提供的一种零开销循环实现系统,可以包括:
第一接收模块101,用于接收RISC-V处理器发送的空循环指令;
第一解析模块102,用于解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;
第一计数模块103,用于将循环初始值作为计数基值,按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值;
第一判断模块104,用于判断当前轮的实时计数值是否满足循环结束条件,若否,则将实时计数值更新为计数基值,返回按照循环方式,将计数基值和循环步长进行运算的步骤,若是,则返回空循环完成消息至RISC-V处理器。
本申请实施例提供的一种零开销循环实现系统,还可以包括:
第二判断模块,用于第一计数模块将循环初始值作为计数基值之前,判断空循环指令中是否存在低功耗开启标志;若空循环指令中存在低功耗开启标志,则断电RISC-V处理器,并断电使用RISC-V处理器的第一时钟的外接设备。
本申请实施例提供的一种零开销循环实现系统,还可以包括:
第三判断模块,用于第一判断模块将实时计数值更新为计数基值之后,第一判断模块返回按照循环方式,将计数基值和循环步长进行运算的步骤之前,判断当前轮的实时计数值是否等于第一计数值,若当前轮的实时计数值等于第一计数值,则上电RISC-V处理器;
第一使能模块,用于第一判断模块返回空循环完成消息至RISC-V处理器之后,使能第一时钟,以使RISC-V处理器及外接设备工作;
其中,第一计数值包括循环结束值与预设数值的差值,且第一计数值位于循环初始值和循环结束值之间。
本申请实施例提供的一种零开销循环实现系统,还可以包括:
第一读取模块,用于第二判断模块断电RISC-V处理器之前,读取并保存 RISC-V处理器的寄存器中的寄存器数据;
第一写入模块,用于第三判断模块上电RISC-V处理器之后,使用第二时钟,将寄存器数据写入寄存器。
本申请实施例提供的一种零开销循环实现系统,还可以包括:
第一获取模块,用于第一接收模块接收RISC-V处理器发送的空循环指令之后,第一计数模块将循环初始值作为计数基值之前,获取空循环指令在 RISC-V处理器中的程序地址;
第一返回模块,用于第一判断模块返回空循环完成消息至RISC-V处理器之后,返回程序地址至RISC-V处理器,以使RISC-V处理器基于程序地址确定下一时刻运行的程序。
本申请实施例提供的一种零开销循环实现系统,第一判断模块可以包括:
第一发送单元,用于生成表示空循环完成的中断标志,发送中断标志至 RISC-V处理器。
本申请还提供了一种零开销循环实现设备及计算机可读存储介质,其均具有本申请实施例提供的一种零开销循环实现方法具有的对应效果。请参阅图4,图4为本申请实施例提供的一种零开销循环实现设备的结构示意图。
本申请实施例提供的一种零开销循环实现设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行存储器201中存储的计算机程序时实现如下步骤:
接收RISC-V处理器发送的空循环指令;
解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;
将循环初始值作为计数基值,按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值;
判断当前轮的实时计数值是否满足循环结束条件,若否,则将实时计数值更新为计数基值,返回按照循环方式,将计数基值和循环步长进行运算的步骤,若是,则返回空循环完成消息至RISC-V处理器。
本申请实施例提供的一种零开销循环实现设备,包括存储器201和处理器202,存储器201中存储有计算机子程序,处理器202执行存储器201中存储的计算机子程序时具体实现如下步骤:将循环初始值作为计数基值之前,判断空循环指令中是否存在低功耗开启标志;若空循环指令中存在低功耗开启标志,则断电RISC-V处理器,并断电使用RISC-V处理器的第一时钟的外接设备。
本申请实施例提供的一种零开销循环实现设备,包括存储器201和处理器202,存储器201中存储有计算机子程序,处理器202执行存储器201中存储的计算机子程序时具体实现如下步骤:将实时计数值更新为计数基值之后,返回按照循环方式,将计数基值和循环步长进行运算的步骤之前,判断当前轮的实时计数值是否等于第一计数值,若当前轮的实时计数值等于第一计数值,则上电RISC-V处理器;相应的,返回空循环完成消息至RISC-V处理器之后,使能第一时钟,以使RISC-V处理器及外接设备工作;其中,第一计数值包括循环结束值与预设数值的差值,且第一计数值位于循环初始值和循环结束值之间。
本申请实施例提供的一种零开销循环实现设备,包括存储器201和处理器202,存储器201中存储有计算机子程序,处理器202执行存储器201中存储的计算机子程序时具体实现如下步骤:断电RISC-V处理器之前,读取并保存RISC-V处理器的寄存器中的寄存器数据;相应的,上电RISC-V处理器之后,使用第二时钟,将寄存器数据写入寄存器。
本申请实施例提供的一种零开销循环实现设备,包括存储器201和处理器202,存储器201中存储有计算机子程序,处理器202执行存储器201中存储的计算机子程序时具体实现如下步骤:接收RISC-V处理器发送的空循环指令之后,将循环初始值作为计数基值之前,获取空循环指令在RISC-V处理器中的程序地址;相应的,返回空循环完成消息至RISC-V处理器之后,返回程序地址至RISC-V处理器,以使RISC-V处理器基于程序地址确定下一时刻运行的程序。
本申请实施例提供的一种零开销循环实现设备,包括存储器201和处理器202,存储器201中存储有计算机子程序,处理器202执行存储器201中存储的计算机子程序时具体实现如下步骤:生成表示空循环完成的中断标志,发送中断标志至RISC-V处理器。
请参阅图5,本申请实施例提供的另一种零开销循环实现设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器 202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现零开销循环实现设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块 205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述的零开销循环实现方法的步骤。
请参阅图6,图6为本申请实施例提供的一种零开销循环装置的结构示意图。
本申请实施例提供的一种零开销循环装置,可以包括:
传输控制器301,用于接收RISC-V处理器发送的空循环指令,并传输至译码控制器302;
译码控制器302,用于解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件,并发送循环初始值、循环步长、循环方式、循环结束条件至双向计数器303;
双向计数器303,用于将循环初始值作为计数基值,按照循环方式,将计数基值和循环步长进行运算,得到当前轮的实时计数值;判断当前轮的实时计数值是否满足循环结束条件,若否,则将实时计数值更新为计数基值,返回按照循环方式,将计数基值和循环步长进行运算的步骤,若是,则返回空循环完成消息至RISC-V处理器。
本申请实施例提供的一种零开销循环装置,还可以包括时钟电源控制器、中断向量控制器和信息保存器;传输控制器接收空循环指令后,发送读取指令至信息保存器,信息保存器读取RISC-V处理器中寄存器的数据并保存,并在满足触发条件时,将保存的数据写回寄存器;译码控制器在解析出空循环指令中存在低功耗开启标志时,发送低功耗请求指令至时钟电源控制器,时钟电源控制器断电RISC-V处理器,并在满足触发条件时,上电RISC-V处理器,如果时钟电源控制器未接收到低功耗请求指令,则可以只禁能RISC-V处理器所使用的第一时钟,不执行断电操作;传输控制器获取空循环指令在 RISC-V处理器中的程序地址,将程序地址传输至中断向量控制器,中断向量控制器在结束零开销循环后,发送中断标志至RISC-V处理器,RISC-V处理器在接收到中断标志后,读取中断向量控制器保存的程序地址,之后,中断向量控制器可以清除保存的程序地址。
关于本申请实施例提供的一种零开销循环装置的详细描述可参阅上述相应描述,本申请在此不再赘述。
实际应用中,本申请实施例提供的零开销循环装置的使用方法可以如下:
RISC-V处理器从程序存储器中读取空循环指令,译码,发现空循环指令中的操作码为1011011,发送空循环指令到传输控制器;
传输控制器接收空循环指令,发送读取寄存器请求到信息保存器,同时传输空循环指令到译码控制模块;
信息保存器读取RISC-V处理器的寄存器中的数据并保存;
译码控制器解析出空循环指令中的循环初始值、循环步长、循环方式、循环结束条件,并发送循环初始值、循环步长、循环方式、循环结束条件至双向计数器,并在解析空循环指令中存在低功耗开启标志时,发送低功耗请求至时钟电源控制器和双向计数器;获取空循环指令的程序地址并发送至中断向量控制器;
时钟电源控制器在接收到低功耗请求时,断电RISC-V处理器及其他使用 CLKA的外设模块,如果未接收到低功耗请求,则只禁能CLKA,CLKA为 RISC-V处理器的时钟源;
双向计数器基于循环初始值、循环方式、循环步长、循环结束条件进行计数,并在接收到低功耗请求时,在循环计数与循环结束值相差32个计数时,发送上电指令给时钟电源控制器,以上电RISC-V处理器及寄存器,同时通知信息保存器,信息保存器在1个时钟之后,使用CLKB写寄存器,恢复现场;在溢出时生成溢出信号至中断向量控制器;
中断向量控制器保存空循环指令的程序地址,并在接收到溢出信号时产生中断到RISC-V处理器,并在RISC-V处理器访问自身后,清除中断;
RISC-V处理器访问中断向量控制器,获取空循环指令的程序地址,将此地址+4更新自己的程序地址寄存器,完成接下来的程序执行。
本申请涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种零开销循环装置及实现系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种零开销循环方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种零开销循环实现方法,其特征在于,包括:
接收RISC-V处理器发送的空循环指令;
解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;
将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;
判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述RISC-V处理器;
其中,所述将所述循环初始值作为计数基值之前,还包括:
判断所述空循环指令中是否存在低功耗开启标志;
若所述空循环指令中存在所述低功耗开启标志,则断电所述RISC-V处理器,并断电使用所述RISC-V处理器的第一时钟的外接设备。
2.根据权利要求1所述的方法,其特征在于,所述将所述实时计数值更新为所述计数基值之后,所述返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤之前,还包括:
判断当前轮的实时计数值是否等于第一计数值,若当前轮的实时计数值等于所述第一计数值,则上电所述RISC-V处理器;
所述返回空循环完成消息至所述RISC-V处理器之后,还包括:
使能所述第一时钟,以使所述RISC-V处理器及所述外接设备工作;
其中,所述第一计数值为循环结束值与预设数值的差值,且所述第一计数值位于所述循环初始值和所述循环结束值之间。
3.根据权利要求2所述的方法,其特征在于,所述断电所述RISC-V处理器之前,还包括:
读取并保存所述RISC-V处理器的寄存器中的寄存器数据;
所述上电所述RISC-V处理器之后,还包括:
使用第二时钟,将所述寄存器数据写入所述寄存器。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述接收RISC-V处理器发送的空循环指令之后,所述将所述循环初始值作为计数基值之前,还包括:
获取所述空循环指令在所述RISC-V处理器中的程序地址;
所述返回空循环完成消息至所述RISC-V处理器之后,还包括:
返回所述程序地址至所述RISC-V处理器,以使所述RISC-V处理器基于所述程序地址确定下一时刻运行的程序。
5.根据权利要求4所述的方法,其特征在于,所述返回空循环完成消息至所述RISC-V处理器,包括:
生成表示空循环完成的中断标志,发送所述中断标志至所述RISC-V处理器。
6.一种零开销循环实现系统,其特征在于,包括:
第一接收模块,用于接收RISC-V处理器发送的空循环指令;
第一解析模块,用于解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;
第一计数模块,用于将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;
第一判断模块,用于判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述RISC-V处理器;
其中,还包括:
第二判断模块,用于所述第一计数模块将所述循环初始值作为计数基值之前,判断所述空循环指令中是否存在低功耗开启标志;若所述空循环指令中存在所述低功耗开启标志,则断电所述RISC-V处理器,并断电使用所述RISC-V处理器的第一时钟的外接设备。
7.一种零开销循环实现设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述零开销循环实现方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述零开销循环实现方法的步骤。
9.一种零开销循环装置,其特征在于,包括:
传输控制器,用于接收RISC-V处理器发送的空循环指令,并传输至译码控制器;
所述译码控制器,用于解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件,并发送所述循环初始值、所述循环步长、所述循环方式、所述循环结束条件至双向计数器;
所述双向计数器,用于将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述RISC-V处理器;
其中,还包括:
时钟电源控制器,用于所述双向计数器将所述循环初始值作为计数基值之前,判断所述空循环指令中是否存在低功耗开启标志;若所述空循环指令中存在所述低功耗开启标志,则断电所述RISC-V处理器,并断电使用所述RISC-V处理器的第一时钟的外接设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016305.4A CN109739557B (zh) | 2019-01-08 | 2019-01-08 | 零开销循环装置及实现方法、系统、设备、计算机介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016305.4A CN109739557B (zh) | 2019-01-08 | 2019-01-08 | 零开销循环装置及实现方法、系统、设备、计算机介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739557A CN109739557A (zh) | 2019-05-10 |
CN109739557B true CN109739557B (zh) | 2022-02-18 |
Family
ID=66363804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910016305.4A Active CN109739557B (zh) | 2019-01-08 | 2019-01-08 | 零开销循环装置及实现方法、系统、设备、计算机介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739557B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421020A (en) * | 1993-01-08 | 1995-05-30 | International Business Machines Corporation | Counter register implementation for speculative execution of branch on count instructions |
US5727194A (en) * | 1995-06-07 | 1998-03-10 | Hitachi America, Ltd. | Repeat-bit based, compact system and method for implementing zero-overhead loops |
CN1584824A (zh) * | 2003-08-18 | 2005-02-23 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微处理器构架及指令实现方式 |
CN108595210A (zh) * | 2018-04-09 | 2018-09-28 | 杭州中天微系统有限公司 | 实现零开销循环的处理器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9286066B2 (en) * | 2009-11-24 | 2016-03-15 | Nec Corporation | Processor, and method of loop count control by processor |
-
2019
- 2019-01-08 CN CN201910016305.4A patent/CN109739557B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421020A (en) * | 1993-01-08 | 1995-05-30 | International Business Machines Corporation | Counter register implementation for speculative execution of branch on count instructions |
US5727194A (en) * | 1995-06-07 | 1998-03-10 | Hitachi America, Ltd. | Repeat-bit based, compact system and method for implementing zero-overhead loops |
CN1584824A (zh) * | 2003-08-18 | 2005-02-23 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微处理器构架及指令实现方式 |
CN108595210A (zh) * | 2018-04-09 | 2018-09-28 | 杭州中天微系统有限公司 | 实现零开销循环的处理器 |
Non-Patent Citations (2)
Title |
---|
一种微控制器中零开销循环的实现方法;薛超凡 等;《计算机工程》;20120531;第38卷(第9期);第244-247页 * |
软硬件协同循环优化方法的设计与实现;王琪 等;《计算机辅助设计与图形学学报》;20131031;第25卷(第10期);第1574-1581页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109739557A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102057344B (zh) | 睡眠处理器 | |
CN109739563B (zh) | 终端的控制方法、装置、系统及存储介质 | |
EP1674989B1 (en) | Information processing device, information processing method, semiconductor device, and computer program | |
CN104380257A (zh) | 在处理器核之间调度任务 | |
EP2680137A1 (en) | Method and system for managing bios configuration data of basic input/output system | |
CN110688160B (zh) | 一种指令流水线处理方法、系统、设备及计算机存储介质 | |
MX2014009068A (es) | Metodo, terminal y dispositivo electronico para procesar documento de libro electronico. | |
CN109582377A (zh) | Bios选项修改方法、装置、设备及存储介质 | |
CN104516477A (zh) | 进入低功率状态的技术 | |
CN109739557B (zh) | 零开销循环装置及实现方法、系统、设备、计算机介质 | |
CN114153477A (zh) | Pcie驱动卡固件升级方法、装置、系统、设备及介质 | |
CN105739884A (zh) | 一种手势事件的产生方法和电子设备 | |
CN112948194A (zh) | 一种通信协议的测试方法和装置 | |
CN111857545B (zh) | 一种读写锁冲突判断方法、系统、设备及计算机介质 | |
CN115756322A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN116243978A (zh) | 分布式训练中的数据规约方法、装置、介质和训练系统 | |
CN115576484A (zh) | 数据读写方法、装置、电子设备及存储介质 | |
CN110045929B (zh) | 一种挂载点管理方法及相关装置 | |
CN114416483A (zh) | 多处理单元的运行状态监控方法、装置、存储介质及设备 | |
CN115065574A (zh) | 车辆控制器的唤醒方法、装置、电子设备和自动驾驶车辆 | |
CN112817622A (zh) | 一种bios刷新方法、装置、电子设备和存储介质 | |
CN103984543A (zh) | 一种在国产飞腾处理器上实现待机、休眠及唤醒的方法 | |
JP2007299367A (ja) | タッチパッド用のデータ処理システムおよび方法 | |
CN113722037A (zh) | 一种用户界面的刷新方法、装置、电子设备及存储介质 | |
KR20220095974A (ko) | 전자 장치 및 전자 장치의 제어 방법 |
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 |