CN109739557A - 零开销循环装置及实现方法、***、设备、计算机介质 - Google Patents

零开销循环装置及实现方法、***、设备、计算机介质 Download PDF

Info

Publication number
CN109739557A
CN109739557A CN201910016305.4A CN201910016305A CN109739557A CN 109739557 A CN109739557 A CN 109739557A CN 201910016305 A CN201910016305 A CN 201910016305A CN 109739557 A CN109739557 A CN 109739557A
Authority
CN
China
Prior art keywords
processor
risc
value
loop
circulation
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.)
Granted
Application number
CN201910016305.4A
Other languages
English (en)
Other versions
CN109739557B (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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201910016305.4A priority Critical patent/CN109739557B/zh
Publication of CN109739557A publication Critical patent/CN109739557A/zh
Application granted granted Critical
Publication of CN109739557B publication Critical patent/CN109739557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Power Sources (AREA)
  • Executing Machine-Instructions (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 (10)

1.一种零开销循环实现方法,其特征在于,包括:
接收RISC-V处理器发送的空循环指令;
解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;
将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;
判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述RISC-V处理器。
2.根据权利要求1所述的方法,其特征在于,所述将所述循环初始值作为计数基值之前,还包括:
判断所述空循环指令中是否存在低功耗开启标志;
若所述空循环指令中存在所述低功耗开启标志,则断电所述RISC-V处理器,并断电使用所述RISC-V处理器的第一时钟的外接设备。
3.根据权利要求2所述的方法,其特征在于,所述将所述实时计数值更新为所述计数基值之后,所述返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤之前,还包括:
判断当前轮的实时计数值是否等于第一计数值,若当前轮的实时计数值等于所述第一计数值,则上电所述RISC-V处理器;
所述返回空循环完成消息至所述RISC-V处理器之后,还包括:
使能所述第一时钟,以使所述RISC-V处理器及所述外接设备工作;
其中,所述第一计数值包括循环结束值与预设数值的差值,且所述第一计数值位于所述循环初始值和所述循环结束值之间。
4.根据权利要求3所述的方法,其特征在于,所述断电所述RISC-V处理器之前,还包括:
读取并保存所述RISC-V处理器的寄存器中的寄存器数据;
所述上电所述RISC-V处理器之后,还包括:
使用第二时钟,将所述寄存器数据写入所述寄存器。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述接收RISC-V处理器发送的空循环指令之后,所述将所述循环初始值作为计数基值之前,还包括:
获取所述空循环指令在所述RISC-V处理器中的程序地址;
所述返回空循环完成消息至所述RISC-V处理器之后,还包括:
返回所述程序地址至所述RISC-V处理器,以使所述RISC-V处理器基于所述程序地址确定下一时刻运行的程序。
6.根据权利要求5所述的方法,其特征在于,所述返回空循环完成消息至所述RISC-V处理器,包括:
生成表示空循环完成的中断标志,发送所述中断标志至所述RISC-V处理器。
7.一种零开销循环实现***,其特征在于,包括:
第一接收模块,用于接收RISC-V处理器发送的空循环指令;
第一解析模块,用于解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件;
第一计数模块,用于将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;
第一判断模块,用于判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述RISC-V处理器。
8.一种零开销循环实现设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述零开销循环实现方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述零开销循环实现方法的步骤。
10.一种零开销循环装置,其特征在于,包括:
传输控制器,用于接收RISC-V处理器发送的空循环指令,并传输至译码控制器;
所述译码控制器,用于解析出所述空循环指令中的循环初始值、循环步长、循环方式、循环结束条件,并发送所述循环初始值、所述循环步长、所述循环方式、所述循环结束条件至双向计数器;
所述双向计数器,用于将所述循环初始值作为计数基值,按照所述循环方式,将所述计数基值和所述循环步长进行运算,得到当前轮的实时计数值;判断当前轮的实时计数值是否满足所述循环结束条件,若否,则将所述实时计数值更新为所述计数基值,返回所述按照所述循环方式,将所述计数基值和所述循环步长进行运算的步骤,若是,则返回空循环完成消息至所述RISC-V处理器。
CN201910016305.4A 2019-01-08 2019-01-08 零开销循环装置及实现方法、***、设备、计算机介质 Active CN109739557B (zh)

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 true CN109739557A (zh) 2019-05-10
CN109739557B 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 (5)

* Cited by examiner, † Cited by third party
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结构的微处理器构架及指令实现方式
US20120226894A1 (en) * 2009-11-24 2012-09-06 Katsutoshi Seki Processor, and method of loop count control by processor
CN108595210A (zh) * 2018-04-09 2018-09-28 杭州中天微***有限公司 实现零开销循环的处理器

Patent Citations (5)

* Cited by examiner, † Cited by third party
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结构的微处理器构架及指令实现方式
US20120226894A1 (en) * 2009-11-24 2012-09-06 Katsutoshi Seki Processor, and method of loop count control by processor
CN108595210A (zh) * 2018-04-09 2018-09-28 杭州中天微***有限公司 实现零开销循环的处理器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王琪 等: "软硬件协同循环优化方法的设计与实现", 《计算机辅助设计与图形学学报》 *
薛超凡 等: "一种微控制器中零开销循环的实现方法", 《计算机工程》 *

Also Published As

Publication number Publication date
CN109739557B (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
CN104077335B (zh) 一种结构化数据的序列化、反序列化方法、装置和***
CN107436762B (zh) 一种寄存器代码文件生成方法、装置和电子设备
CN102695999B (zh) 用于动态功率管理的域特定语言、编译程序和jit
CN105045819B (zh) 一种训练数据的模型训练方法及装置
CN104520815A (zh) 一种任务调度的方法、装置及设备
CN103593333B (zh) 一种电子书文档的处理方法、终端及电子设备
CN103827820A (zh) 管理计算设备的数据使用
CN105493053A (zh) 多核处理器中的高速缓存划分
CN103559910B (zh) 应用于烧录器的实现智能切换烧录芯片时序的***及方法
CN104067225A (zh) 对用于图形处理单元的具有相关联的纹理加载指令的控制流指令的判定
CN103543988A (zh) 队列消息的处理方法、控制消息进入队列的方法及装置
CN105468411A (zh) 一种应用程序的处理方法、装置及电子设备
CN109582377A (zh) Bios选项修改方法、装置、设备及存储介质
CN102667726A (zh) 控制电子装置中的功率的***和方法
CN109242458A (zh) 基于区块链的信息管理方法及相关设备
CN108536480A (zh) 输入法配置方法及相关产品
CN104516477A (zh) 进入低功率状态的技术
CN103729452B (zh) 一种规则匹配方法及装置
CN101996251B (zh) 一种大型变电站通信配置描述语言scl文件的快速处理方法
CN104571942A (zh) 数据存储***和非信号分析方法
CN109739557A (zh) 零开销循环装置及实现方法、***、设备、计算机介质
CN109783321A (zh) 监控数据管理方法、装置、终端设备
CN108762983A (zh) 多媒体数据恢复方法及装置
CN105005588B (zh) 一种训练数据的处理方法及装置
CN110399166A (zh) ME Nonce值的保存方法、装置、设备及存储介质

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