CN110377339B - 长延时指令处理装置、方法以及设备、可读存储介质 - Google Patents
长延时指令处理装置、方法以及设备、可读存储介质 Download PDFInfo
- Publication number
- CN110377339B CN110377339B CN201910761134.8A CN201910761134A CN110377339B CN 110377339 B CN110377339 B CN 110377339B CN 201910761134 A CN201910761134 A CN 201910761134A CN 110377339 B CN110377339 B CN 110377339B
- Authority
- CN
- China
- Prior art keywords
- instruction
- unit
- long
- write
- execution result
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000015654 memory Effects 0.000 claims description 23
- 238000003672 processing method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007620 mathematical function Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种长延时指令处理装置、方法以及计算机可读存储介质。将长延时指令分离成用于提取长延时指令的源操作数和源操作符的第一指令和用于读取第一指令的执行结果并输出至寄存器的第二指令。通过编号单元为第一指令和第二指令生成一一对应的写编号和读编号,使第一指令的执行结果写入缓冲单元后,第二指令能从缓冲单元中读取相应的执行结果。本发明中的长延时指令处理装置和方法通过将长延时指令运算部分与结果输出部分分离,使得运算部分在执行时,结果输出的目的寄存器可以被其他指令使用,极大地提高了寄存器资源的利用率。
Description
技术领域
本发明涉及计算机指令处理领域,尤其涉及一种长延时指令处理装置、方法以及指令处理设备和计算机可读存储介质。
背景技术
对性能的追求是计算机体系结构设计的主题之一,对于一个软件程序,我们往往希望它能够快速运行达到我们想要的效果,而这离不开底层硬件的支持。通常由编译器实现从软件到硬件运行到过渡,程序会被编译成一条条指令交给硬件执行。
由于寄存器读取速度快等各方面的优势,现有高性能计算机体系结构大多采用载入-存储寄存器体系结构,即一条指令的输入需要从寄存器载入数据,输出结果需要向寄存器存储数据。当一条指令正在运行时,其结果需要保存,所对应寄存器应为其准备好,在指令执行期间不可被其它指令使用。
指令中负责运算的指令称为ALU(Arithmetic and Logic Unit,算术逻辑单元)指令,当内部存储类型为载入-存储类型的处理器处理一条ALU指令时,必须满足3个条件:
1、源操作数,从准备好的对应寄存器中提取;
2、符号扩展立即数(相当于操作符,如“+”“-”等)将源操作数传输到对应的功能单元;
3、结果保存所对应的寄存器未被别的指令占用。
举例说明:例如一个加法算术:A+B=C。对处理器而言,要处理这个加法算术,就意味着:
1、源操作数A、B来源对应的寄存器存放的数正是计算需要的被加数和加数;
2、操作符“+”对应加法功能单元,将AB传输到加法单元;
3、加法的和,也即是C需要有一个寄存器保存这个结果,这个寄存器应该是空闲的,没有被其他运算占用。
有一类指令被称为长延时指令,这一类指令运算执行时间很长,需要很长时间才能得到运算结果。一般来说,长延时指令的执行时间比加法指令、乘法指令等一般指令的执行时间多至少一个数量级。长延时指令至少包括以下运算指令:浮点数除法,浮点三角函数正弦sin、余弦cos、正切tan,浮点开方,浮点指数,浮点对数等运算指令。大多数的现有技术都未对长延时指令进行处理,而执行长延时指令时,需要长时间占用对应保存结果的寄存器,寄存器在占用期间无法被其他指令使用,严重影响了相关指令处理设备的性能,同时也造成了很大的寄存器资源浪费。
发明内容
本发明的目的之一在于提供一种长延时指令处理装置,以解决长延时指令运行期间,对应寄存器被该指令长时间占用而造成的指令处理设备性能低、寄存器资源浪费等问题。
为实现上述目的,根据本发明的第一方面,提供了一种长延时指令处理装置。该装置包括译码单元、运算单元以及寄存器堆,还包括编号单元和缓冲单元,其中:
编号单元与译码单元连接,用于接收并识别译码单元输出的指令,该指令包括第一指令和第二指令;编号单元还用于为第一指令生成写编号,为第二指令生成读编号;第一指令用于提取长延时指令的源操作数与源操作符,以供运算单元执行运算操作。
缓冲单元与运算单元以及寄存器堆连接;缓冲单元用于接收第一指令的执行结果和写编号,缓冲单元还用于接收第二指令和读编号,该第二指令用于读取该执行结果,并将该执行结果输出至寄存器堆。
本发明通过将长延时指令分离为两部分指令,一部分用于运算,一部分用于结果输出,实现了指令运算与指令结果输出的分立执行。通过编号单元为分离后的指令进行编号,使得指令在执行过程中可以在满足执行条件的前提下任意发射执行,最终执行结果通过写编号与读编号来进行匹配。通过缓冲单元对执行结果的缓存,增加了寄存器的使用灵活性,避免了长延时指令在执行时,相应的结果寄存器不必长时间待命而未被真正使用的情形,从而极大地提高了寄存器的利用率。
进一步地,上述编号单元包括第一计数器,用于为第一指令生成写编号;上述编号单元还包括第二计数器,用于为第二指令生成读编号。本发明通过计数器对输入的指令进行编号,使得硬件构成简单,硬件成本最小化,提高了装置的可操作性和易实现性。
更进一步地,上述编号单元还包括空满检测器,用于生成空满参数,还用于生成空信号或满信号,以及发射空信号或满信号。本发明通过提供在编号单元设置了一个空满检测器,在检测到缓冲单元处于满状态时,控制第一保留站不会发射指令,确保了在缓冲单元存储满数据的情况下不会再有新数据进入,避免了新数据进入覆盖旧数据的情况出现。编号单元在检测到缓冲单元为空状态时,通过向译码单元反馈空信号,避免了因某条指令程序编译错误而造成其他指令计算结果错误或者延迟的情况。
更进一步地,上述装置还包括第一保留站和第二保留站;第一保留站用于存储第一指令的写编号,还用于检测第一指令的冒险和接收满信号;第二保留站用于存储第二指令和读编号,还用于检测与第二指令相关的寄存器状态。本发明提供的第一保留站和第二保留站对第一指令和第二指令进行暂存,通过对指令数据冒险的检测和相关寄存器状态的检测,将满足发射条件的指令优先发射执行,实现了指令的乱序发射,降低了指令的整体执行时间,提高了指令执行的灵活性,增加了装置对指令处理的性能。同时还增加了装置运算单元中的各功能单元以及寄存器堆中的各个寄存器的利用率
更进一步地,上述缓冲单元包括写入状态检测器,生成写入信号,并将该写入信号发送至第二保留站,第二保留站还用于检测该写入信号。本发明通过设置写入状态检测器,确保了在第一指令的执行结果写入完成后,能及时将该写入信号发送至第二保留站,保证了第二保留站中的第二指令能及时准确的发射执行,加速了指令的整体执行效率。
根据本发明的第二方面,提供了一种长延时指令处理方法,提供译码单元、寄存器堆以及编号单元,其中,编号单元接收译码单元输出的指令,该指令包括第一指令和第二指令;第一指令用于提取长延时指令的源操作数和源操作符进行运算,第二指令用于读取第一指令的执行结果,并将该执行结果输入寄存器堆;编号单元在识别出第一指令时,为该第一指令生成写编号,在识别出第二指令时,为该第二指令生成读编号;一条长延时指令分离而来的第一指令的写编号与该长延时指令分离而来的第二指令的读编号一一对应。
进一步地,上述方法还提供缓冲单元,第一指令执行结果根据写编号被写入缓冲单元,在该执行结果写入完成后,缓冲单元生成写入信号,并向第二保留站发送该写入信号;第二指令根据读编号从缓冲单元读取执行结果。
将长延时指令拆分后的两部分指令的执行的时间并不一定相同,使用编号单元为分离后的两部分指令设置对应的编号,在缓冲单元中按照写编号和读编号对相应的存储位置进行写入和读取操作,使得第一指令和第一指令在乱序执行时,其产生的运算结果和目标地址是匹配的。同时,由于执行结果并不是直接送入目标寄存器,因而相应的目标寄存器在运算部分指令即第一指令执行期间仍然可以被其他相关指令调用,从而增加了寄存器的使用次数,使得寄存器资源能得到最大程度的利用。
进一步地,编号单元还用于对缓冲单元的空/满状态进行检查,在检测出空状态时,生成空信号,在检测出满状态时,生成满信号。保证了在满状态时,第一指令不会继续发射指令执行,避免了后来的执行结果覆盖掉之前还未被读取的执行结果,有效规避了产生数据错误和指令程序编译错误的情况。
根据本发明的第三方面,提供了一种指令处理设备,包括存储器,用于存储计算机程序;还包括处理器,用于执行该计算机程序时实现上述长延时指令处理方法的步骤。
根据本发明的第四方面,提供了一种计算机可读介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被执行处理器执行时实现上述长延时指令处理方法的步骤。
本发明在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种长延时指令处理装置100的结构示意图;
图2是本发明实施例提供的一种编号单元200的结构示意图;
图3是本发明实施例提供的一种长延时指令处理方法的整体流程图;
图4是本发明实施例提供的一种长延时指令处理方法中第一指令的处理流程图;
图5是本发明实施例提供的一种长延时指令处理方法中第二指令的处理流程图;
图6是本发明实施例提供的示例指令信息示意图;
图7是本发明实施例中编号单元中指令状态信息示意图;
图8是本发明实施例中保留站中的指令状态信息示意图;
图9是本发明实施例中缓冲单元中指令状态信息示意图;
图10是本发明实施例提供的一种指令处理设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个元件被称为是“连接于”另一个元件,或称一个元件与另一个或多个元件“连接”、“相连”时,它可以是直接连接到另一个元件或间接连接至该另一个元件上。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面对本发明实施例长延时指令处理装置及方法涉及的相关实施例进行具体说明。
对于长延时指令,本发明实际例在指令程序编译阶段就已将其分离为两个部分,其中一个运算部分,称为第一指令,用于提取长延时指令的源操作数和源操作符并执行运算,另一个是结果输出部分,称为第二指令,用来将第一指令产生的结果传输到用于保存这个结果的寄存器中。
本发明实施例提供了一种长延时指令处理装置,请参见图1,是本发明实施例提供的一种长延时指令处理装置100的结构示意图,该处理装置包括以下部件:译码单元101、编号单元102、第一保留站103、运算单元104、缓冲单元105、第二保留站106和寄存器堆107。
如图1所示,译码单元101的输出端与编号单元102的输入端连接,用于将从指令存储器等存储介质中接收到的指令解码,并将解码后的指令输出至编号单元102。译码单元101的其中一个输入端与寄存器堆107的其中一个输出端连接,译码单元会从寄存器堆提取长延时指令的源操作数,然后将源操作数与第一指令一起经过编号单元、第一保留站、最后到运算单元对该源操作数进行运算,产生结果。
编号单元102的输入端与译码单元101的输出端连接,编号单元102用于从接收到的译码后的指令中识别并选择出第一指令和第二指令,并为第一指令生成写编号,为第二指令生成读编号。由同一条长延时指令分离而来的第一指令的写编号和第二指令的读编号一一对应,该第一指令用于提取源操作数和操作符,第二指令用于将与其读编号相对应的写编号的第一指令的运算结果写入寄存器堆107中的目的寄存器。编号单元102还用于检查缓冲单元105的空满状态,当检测出缓冲单元105处于空状态时,生成空信号,编号单元102的其中一个输出端还与译码单元的其中一个输入端连接,用于将空信号发送至译码单元101,当检测出缓冲单元102处于满状态时,生成满信号,并将该满信号发送给第一保留站103。编号单元102的其中一个输出端与第一保留站103的其中一个输入端连接,用于将第一指令和写编号以及满信号传输至第一保留站103;编号单元102的另一个输出端与第二保留站106的其中一个输入端连接,用于将第二指令和读编号传输至第二保留站106。
第一保留站103的其中一个输入端与编号单元102的其中一个输出端连接,用于接收第一指令和写编号以及满信号;第一保留站103的输出端与运算单元104的其中一个输入端连接,用于将满足发射条件的第一指令和写编号以及源操作数发射至运算单元104;第一保留站103的其中一个输入端与寄存器堆107的其中一个输出端连接,用于接收寄存器堆107返回的反馈信号,该反馈信号可能是一个高电平信号,也可能是一个低电平信号。其中,第一保留站103中用于接收/存放/发射第一指令及其写编号的是其中的移位寄存器,当然也可以是其他存储单元,移位寄存器的优势在于先进入的指令有优先级;第一保留站103还包括一套组合逻辑器件,用于检查第一指令的数据冒险、满信号以及寄存器堆的反馈信号,具体器件可以是与门、或门、非门、选择器等其中一种或者以上任意几种的组合。第一保留站中的第一指令的发射可以是乱序的,乱序执行的方法至少包括寄存器重命名法。
运算单元104的输入端与第一保留站103的输出端连接,用于接收第一保留站103发射的第一指令和第一指令对应的写编号以及第一指令的源操作数;运算单元104的输出端与缓冲单元105的其中一个输入端连接,用于将第一指令的执行结果和第一指令对应的写编号输出至缓冲单元105。
缓冲单元105的其中一个输入端与运算单元104的输出端连接,用于接收运算单元104发送的第一指令执行结果和对应的写编号;缓冲单元105在将该执行结果和写编号写入其中后,通过其中的写入状态检测器将其中包括的写入标志位由0置1,并生成写入信号;缓冲单元105的其中一个输入端与第二保留站的输出端连接,用于接收第二指令和第二指令对应的读编号;缓冲单元105还与寄存器堆107连接,第二指令读取与读编号对应的写编号的执行结果,并将其输出至寄存器堆107,第二指令在读取完该执行结果后,写入状态检测器将相应的标志位由1置0;缓冲单元105的其中一个输出端与第二保留站106的其中一个输入端连接,用于发送写入信号。缓冲单元105中包括缓冲器和写入状态检测器,缓冲器由深度为32,位宽32的寄存器构成,用于存储第一指令的执行结果;写入状态检测器包括一套组合逻辑器件和写入标志位,写入标志位同样是由1位的寄存器来实现的,当第一指令的执行结果按照其写编号写入相应的存储位置后,组合逻辑器件将写入标志位由0置1,当第二指令按照其读编号读取了相应存储位置的执行结果后,组合逻辑器件将写入标志位由1置0。
第二保留站106的其中一个输入端与编号单元102的其中一个输出端连接,用于接收第二指令和第二指令对应的读编号;第二保留站106的输出端与缓冲单元的其中一个输入端连接,用于发射第二指令和第二指令对应的读编号;第二保留站106与寄存器堆107连接,用于接收寄存器堆返回的反馈信号,第二保留站根据该反馈信号更新与第二指令相关的寄存器状态;第二保留站106的其中一个输入端与缓冲单元105的其中一个输出端连接,用于接收写入信号。与第一保留站类似,第二保留站106中也包括移位寄存器,用于接收/存放/发射第二指令及其读编号的;第二保留站106也包括一套组合逻辑器件,用于检查第二指令相关寄存器的状态,该寄存器的状态包括空闲和占用,还用于接收缓冲单元发送的写入信号,组合逻辑具体器件可以是与门、或门、非门、选择器等其中一种或者以上任意几种的组合
寄存器堆107的输入端与缓冲单元105的其中一个输出端连接,用于接收缓冲单元105输出的执行结果;寄存器堆107的其中两个输出端分别与第一保留站103和第二保留站106连接,用于在执行结果写入目标寄存器后,向上述两个保留站返回反馈信号。
本发明通过将长延时指令分离为两部分指令,一部分用于运算,一部分用于结果输出,实现了指令运算与指令结果输出的分立执行。通过编号单元为分离后的指令进行编号,使得指令在执行过程中可以在满足执行条件的前提下任意发射执行,最终执行结果通过写编号与读编号来进行匹配。通过缓冲单元对执行结果的缓存,增加了寄存器的使用灵活性,避免了长延时指令在执行时,相应的结果寄存器不必长时间待命而未被真正使用的情形,从而极大地提高了寄存器的利用率。
请参见图2,是本发明实施例提供的一种编号单元200的结构示意图。如图2所示,编号单元包括指令选择器201、第一计数器221、第二计数器222以及空满检测器230。其中,指令选择器201用于从接收到的经过译码后的指令中识别并选择出第一指令或第二指令;第一计数器221用于在指令选择器201选出第一指令后在原有值的基础上加1,产生的新值即为该第一指令的写编号。第二计数器222用于在指令选择器201选出第二指令后在原有值的基础上加1,产生的新值即为该第二指令的读编号。
由于长延时指令在程序编译时一般将同一条长延时指令的第一指令编译在第二指令之前,故经译码后的指令进入编号单元时,编号单元接收到的第一指令和在接收到该第一指令后接收到的第一条第二指令是由同一条长延时指令拆分而来,所以该第一指令的写编号与该第二指令的读编号可以被设置为一一对应,该对应方式可以是相同,也可以是通过数学函数实现对应。
在实际应用中,缓冲单元的存储容量是有限的,当缓冲单元中的存储的第一指令执行结果数据量达到最大值,即缓冲单元处于满状态时,后来的数据就会覆盖掉之前的数据,造成数据错误;当缓冲单元中没有第一指令的执行结果时,即缓冲单元处于空状态时,说明程序编译出错。为避免出现上述问题,本发明实施例还可选地加入空满检测器230。空满检测器230包括第三计数器223和比较器211,第三计数器223用于在编号单元200接收到第一指令或者第二指令时生成空满参数,空满参数的取值范围为0至N,N的值取决于缓冲单元中缓冲器的存储容量最大值。比较器211用于比较空满参数,当空满参数为0时,生成空信号,空满检测器230将空信号返回译码单元,译码单元在解析出第二指令且未接收到空信号时,将第二指令发射至所述编号单元;在解析出第二指令且接收到空信号时,将第二指令替换为空指令,不再触发之后的功能单元。当空满参数为N时,生成满信号,空满检测器230将该满信号发送至第一保留站,第一保留站接收到该满信号后将暂停发射指令。上述编号单元通过计数器来实现指令编号操作,优势在于结构简单,易于实现,硬件成本和硬件复杂度都大大降低。
本发明实施例还提供了一种长延时指令处理方法,请参见图3,是本发明实施例提供的一种长延时指令处理方法的整体流程图。如图2所示,经译码单元译码的指令进入编号单元后,编号单元识别选择出了第一指令和第二指令,此时出现了两个不同分支,为了更好的说明本发明实施提供的长延时指令处理方法,下面分别通过第一指令和第二指令这两个不同的流动方向进行具体说明。
具体地,请参见图4,是本发明实施例提供的一种长延时指令处理方法中第一指令的处理流程图。如图4所示,包括以下步骤:
步骤401:对于程序中涉及到长时间运算的高级语言代码,编译器会将该代码涉及的长延时指令编译成两条指令,第一条称为第一指令,用于提取源操作数与操作符,放入相应功能单元进行运算并产生结果,第二条称为第二指令,用来将产生的结果传输到用于保存这个结果的寄存器上。经编译后的两部分指令通过译码单元译码后输入编号单元。
步骤402:编号单元接收到经过译码的指令后,通过一个指令选择器识别选出第一指令,并为第一指令生成写编号。每一个第一指令对应一个写编号;同一条长延时指令分离而成的第一指令的写编号与第二指令的读编号一一对应。编号单元在为第一指令生成写编号后将第一指令和其写编号以及源操作数传输至第一保留站。
步骤403:第一保留站将接收到的第一指令按照接收到的先后顺序排列存放,进入第一保留站的指令按照先来后的顺序享有优先级,在检测到指令满足发射条件,即不存在数据冒险且未接收到编号单元发送的满信号时,将第一指令及其写编号发送至运算单元,运算单元执行完毕后,将第一指令的执行结果及其写编号发送至缓冲单元。
步骤404:缓冲单元将接收到的指令执行结果写入与其写编号对应的存储位置,写入完成后缓冲器中的写入状态检测器生成写入信息,并将写入信息发送至第二保留站。
具体地,请参见图5,是本发明实施例提供的一种长延时指令处理方法中第二指令的流程图。如图5所示,包括以下步骤:
步骤501:第二指令与第一指令一样,都是在程序编译阶段产生,经译码单元译码后进入编号单元。
步骤502:编号单元通过指令选择器选择出第二指令,并为第二指令生成读编号,该生成的读编号与由同一长延时指令分离而来的第一指令的写编号对应。编号单元在为第二指令生成读编号后将第二指令及其读编号一起流入第二保留站。
步骤503:第二保留站接收第二指令及其读编号,并按接收达到的先后顺序存放,先进入的指令在同时具备发射条件时享有发射优先级。第二保留站检测与第二指令相关的寄存器状态是否空闲,同时还用于接收缓冲单元发送的写入信号,在检测出上述相关的寄存器状态为空闲,且接收到上述写入信号时,第二保留站将第二指令及其读编号发射至缓冲单元。
步骤504:第二指令及其读编号进入缓冲单元后,读取与该读编号相对应的存储位置存放的执行结果,并将该执行结果输出至寄存器堆中的相关目的寄存器。
上述编号单元的其中一种可选的编号规则如下。写编号和读编号的初值设置为0,缓冲单元的存储容量最大值为32,每当编号单元接收并识别出一个第一指令时,写编号现有值+1,得到一个新值,该新值即为刚刚接收到的这个第一指令的写编号。读编号也同理。当写编号或读编号的值已经累加到31时,写编号或读编号的新值从0开始累计,即编号单元接收到的第32条第一指令或第二指令的写编号或者读编号为0,第33条第一指令或第二指令的写编号或者读编号为1,以此类推,进入循环。
上述执行结果写入与其写编号对应的存储位置的对应规则为,当写编号为1时,执行结果存入缓冲单元中的第2个存储位置,当写编号为8时,执行结果写入缓冲单元中的第9个存储位置,同理,读编号为1的第二指令读取缓冲单元中第2个存储位置的数据,读编号为8的第二指令读取缓冲单元中第9个存储位置的数据,即写编号为M,对应执行结果写入缓冲单元中的第M+1个存储位置,读编号为M的第二指令读取缓冲单元中第M+1个存储位置的数据。特别地,假设缓冲单元存储容量为最大值N,当写编号M等于N-1时,对应的执行结果写入缓冲单元中的最后一个存储位置,此时若编号单元继续接收到第一指令,则其写编号被设置为初值,即0,对应的执行结果存入缓冲单元中的第一个存储位置;当读编号M等N-1时,对应的第二指令读取缓冲单元中最后一个存储位置的数据,此时若编号单元继续接收到第二指令,则其读编号被设置为初值,即0,读编号为0的第二指令读取缓冲单元中第一个存储位置的数据。可理解地,在实际应用中,所有类似于上述写编号与读编号具有一一对应关系的编号规则,都能够在本发明中中应用,在此并不做具体限定。
本发明通过将长延时指令分离为两部分指令,一部分用于运算,一部分用于结果输出,实现了指令运算与指令结果输出的分立执行。通过编号单元为分离后的指令进行编号,使得指令在执行过程中可以在满足执行条件的前提下任意发射执行,最终执行结果通过写编号与读编号来进行匹配。通过缓冲单元对执行结果的缓存,增加了寄存器的使用灵活性,避免了长延时指令在执行时,相应的结果寄存器不必长时间待命而未被真正使用的情形,从而极大地提高了寄存器的利用率。
为了帮助更好地理解本发明实施例,下面提出对具体指令处理的实施例。请参见图6至图9,是本发明实施例中长延时指令执行过程中的状态及信息变化图。图6是本发明实施例提供的示例指令信息示意图,图7是本发明实施例编号单元中指令状态信息示意图,图8是本发明实施例中保留站中的指令状态信息示意图,图9是本发明实施例中缓冲单元中指令状态信息示意图。
具体的,以如图6(a)所示的浮点型计算为例进行具体说明。本实施例仅选取了任意指令中的三条指令来进行说明,不表示本发明仅适用于处理三条指令。此外,由于本发明实施例选取的指令数量小于缓冲单元的容量且程序编译正确,故在此处不再对编号单元的空满检查加以说明。
如图6所示的浮点型计算在程序编译阶段被拆分为两个部分,一个部分是算式的运算部分,经译码后称为第一指令,另一个部分是算式的结果输出部分,经译码后称为第二指令。如图6(b)所示,译码单元输出一个第一指令之后,输出的第一个第二指令应当与该第一指令对应,两个指令都是由同一条长延时指令分离而来。此外,如图6(c)所示,在同一长延时指令分离而来的第一指令和第二指令之间可插入其他可用到第二指令目的寄存器的运算时间少于长延时指令的其他指令。该其他指令在经译码后直接进入第一保留站,第一保留站在其满足发射条件时发射执行,执行完毕后执行结果直接送入目标寄存器。
编号单元在接收到第一指令后为其生成写编号,如图7(a)所示;在接收到第二指令后为其生成读编号,如图7(b)所示。之后将第一指令及其写编号流入第一保留站,将第二指令及其读编号流入第二保留站。第一保留站按照第一指令进入其中的先后顺序,为其设置优先级,在多条指令同时具备发射条件时,第一保留站按照优先级发射指令。第一保留站还检查第一指令的读写冒险,指令是否存在读写冒险是发射指令的判断条件之一。对于数据冒险中的写读冒险和写写冒险,本实施例中可采用寄存器重命名的方法予以规避。如图8(a)所示,写编号为1的第一指令和写编号为3的第一指令同时具备发射条件,故考虑其优先级顺序,将写编号为1的第一指令优先发射,其次发射写编号为3的第一指令。当有第一指令之后还有其他指令,且会跟该第一指令共用同一个目标寄存器时,即如图6(c)所示的情况时,如果该指令没有RAW数据相关,则可优先非循序发射该指令执行。由于写编号为2的第一指令存在读写冒险,故需在读写冒险消失后方能发射至运算单元。
缓冲单元中的缓冲器存储位置也有相应顺序,如图9(a)所示。运算单元将第一指令执行完毕后,将执行结果和其写编号输入至缓冲单元中的相应存储位置。如图9(b)所示,写编号为1的第一指令执行完毕后,执行结果Res1写入存储位置Buffer1,写入完成后,相应的写入标志位也由0置1,同时生成写入信号1,并将写入信号1发送至第二保留站。写入编号为3的第一指令执行完毕后,执行结果Res3也写入相应的存储位置Buffer3,相应的写入标志位也由0置1,同时生成写入信号3,并将写入信号3发送至第二保留站。
如图8(b)所示,第二保留站中的第二指令也是按照指令进入的先后顺序设置了优先级,当第二保留站接收到写入信号1,且检测出目标寄存器R3空闲时,发射读编号为1的第二指令至缓冲单元。随后第二保留站还接收到写入信号3,在检测目标寄存器R8空闲时,发射读编号为3的第二指令至缓冲单元。第二指令进入缓冲单元后,读取相应存储位置的执行结果,并将其输出至相应的目的寄存器,也即是读编号为1的第二指令读取存储位置Buffer1存储的执行结果Res1,并将Res1输出至目标寄存器R3,同时,写入状态检测器将存储位置Buffer1对应的写入标志位由1置0。同样的,读编号为3的第二指令读取存储位置Buffer3存储的执行结果Res1,并将其输出至目标寄存器R8,写入状态检测器将存储位置Buffer3对应的写入标志位由1置0。由于寄存器R3已经成功写入,故写编号为2的第一指令数据冒险消失,可以发射执行,执行结果写入对应写编号2的存储位置Buffer2,写入状态检测器将相应写入标志位由0置1,并生成写入信号2,发送至第二保留站,此时缓冲器中的状态如图9(c)所示。第二保留站判断满足发射条件后将读编号为2的第二指令发射至缓冲单元,第二指令读取与读编号2对应存储位置Buffer2存储的执行结果Res2,并将其输出至目的寄存器R5。此时,写入状态检测器将存储位置Buffer2对应的写入标志位由1置0。
可理解地,本方法对于N条顺序或相邻的长延时指令,可类比上述方式通过寄存器重命名法等操作实现乱序执行,提高寄存器的利用率。因此,本方法在实际应用中,对于可处理的长延时指令条数并无限制。
本发明实施例通过将长延时分离成第一指令和第二指令,第一指令用于提取长延时指令的源操作数和源操作符,以供运算单元执行运算操作;第二指令用于读取第一指令的执行结果并输出至寄存器。通过编号单元为由同一长延时指令分离而来的第一指令和第二指令生成一一对应写编号和读编号,使得第一指令的执行结果在根据其写编号写入缓冲单元后,第二指令能根据其读编号从缓冲单元中读取相应的执行结果,写入对应目标寄存器。同时,在同一长延时指令分离而来的第一指令和第二指令之间可插入与该第二指令公用同一个目标寄存器的执行时间少于该第一指令的其他指令,使同一寄存器能得以多次充分利用。本发明实施例的长延时指令处理装置结构简单,易于实现,通过将长延时指令运算部分与结果输出部分分离,使得运算部分在执行时,结果输出的目的寄存器可以被其他指令使用,极大地提高了寄存器资源的利用率。
请参见图10,是本发明实施例提供的一种指令处理设备的结构示意图。如图10所示的处理设备1000包括一个或多个处理器1001、通信接口1002和存储器1003,处理器1001、通信接口1002和存储器1003可通过总线方式连接,也可通过无线传输等其他手段实现通信。本发明实施例以通过总线1004连接为例。其中,该存储器1003用于存储指令,该处理器1001包括上述实施中揭示的编号单元,用于执行该存储器1003存储的指令。该存储器1003存储程序代码,且处理器1001可以调用存储器1003中存储的程序代码实现如图中指令处理设备1000的相关功能,具体可参见前述图1-图9所述实施例中的相关阐述,这里不再赘述。
应当理解,在本发明实施例中,所称处理器101可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信接口1002可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块或装置设备进行通信。例如,本申请实施例中通信接口1002具体可用于接收用户输入的输入数据;或者接收外部设备的数据等。
存储器1003可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器还可以包括上述种类的存储器的组合。存储器可用于存储一组程序代码,以便于处理器调用存储器中存储的程序代码以实现如图中指令处理设备1000的相关功能。
需要说明的,图10仅仅是本发明实施例的一种可能的实现方式,实际应用中,处理设备还可以包括更多或更少的部件,这里不作限制。关于本发明实施例中未示出或未描述的内容,可参见前述方法实施例中的相关阐述,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,图3至图9所示的方法流程得以实现。该存储介质包括ROM/RAM、磁碟、光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的部分较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本本技术领域的技术人员在本发明揭露的技术范围内,在不付出创造性劳动的前提下,轻易得到的各种的等效的修改或替换,这些修改或替换都应该涵盖在本发明的包括范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种长延时指令处理装置,包括译码单元、运算单元以及寄存器堆,其特征在于,还包括编号单元以及缓冲单元,其中:
所述编号单元与所述译码单元连接,用于接收所述译码单元输出的指令,所述指令包括第一指令和第二指令;所述编号单元还用于为所述第一指令生成写编号,为所述第二指令生成读编号;所述第一指令用于提取长延时指令的源操作数与源操作符,以供所述运算单元执行运算操作;所述写编号和所述读编号之间一一对应;所述写编号和所述读编号之间的对应关系是通过数学函数建立的;
所述缓冲单元与所述运算单元以及所述寄存器堆连接;所述缓冲单元用于接收所述第一指令执行结果和所述写编号,所述缓冲单元还用于接收所述第二指令和所述读编号,所述第二指令用于读取所述执行结果,并将所述执行结果输出至所述寄存器堆。
2.如权利要求1所述的长延时指令处理装置,其特征在于,所述编号单元包括第一计数器,用于为所述第一指令生成写编号;所述编号单元还包括第二计数器,用于为所述第二指令生成读编号。
3.如权利要求2所述的长延时指令处理装置,其特征在于,所述编号单元还包括空满检测器,用于生成空满参数,还用于生成空信号或满信号,以及发射所述空信号或所述满信号。
4.如权利要求3所述的长延时指令处理装置,其特征在于,还包括第一保留站和第二保留站;所述第一保留站用于存储所述第一指令和所述写编号,还用于检测所述第一指令的数据冒险和接收所述满信号;所述第二保留站用于存储所述第二指令和所述读编号,还用于检测与所述第二指令相关的寄存器状态。
5.如权利要求4所述的长延时指令处理装置,其特征在于,所述缓冲单元包括写入状态检测器,用于生成写入信号,并将所述写入信号发送至所述第二保留站,所述第二保留站还用于检测所述写入信号。
6.一种长延时指令处理方法,提供译码单元、寄存器堆,其特征在于,还提供编号单元,所述方法包括:
所述编号单元接收所述译码单元输出的指令,所述指令包括第一指令和第二指令;所述第一指令用于提取长延时指令的源操作数与源操作符进行运算,所述第二指令用于读取所述第一指令的执行结果,并将所述执行结果输入所述寄存器堆;
所述编号单元在识别出所述第一指令时,为所述第一指令生成写编号,在识别出所述第二指令时,为所述第二指令生成读编号;所述写编号和所述读编号之间一一对应;同一条长延时指令分离而来的所述第一指令的所述写编号与所述同一条长延时指令分离而来的所述第二指令的所述读编号一一对应;所述写编号和所述读编号之间的对应关系是通过数学函数建立的。
7.如权利要求6所述的方法,其特征在于,还提供缓冲单元,所述第一指令执行结果根据写编号被写入所述缓冲单元,在所述执行结果写入完成后,所述缓冲单元生成写入信号,并向第二保留站发送所述写入信号;所述第二指令根据所述读编号从所述缓冲单元读取所述执行结果;所述第二保留站用于存储所述第二指令和所述读编号,还用于检测与所述第二指令相关的寄存器状态。
8.如权利要求6或7所述的方法,其特征在于,所述编号单元还用于对缓冲单元的空/满状态进行检查,在检测出所述空状态时,生成空信号,在检测出满状态时,生成满信号。
9.一种指令处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求6至8任一项所述长延时指令处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求6至8任一项所述长延时指令处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910761134.8A CN110377339B (zh) | 2019-08-17 | 2019-08-17 | 长延时指令处理装置、方法以及设备、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910761134.8A CN110377339B (zh) | 2019-08-17 | 2019-08-17 | 长延时指令处理装置、方法以及设备、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110377339A CN110377339A (zh) | 2019-10-25 |
CN110377339B true CN110377339B (zh) | 2024-03-01 |
Family
ID=68259677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910761134.8A Active CN110377339B (zh) | 2019-08-17 | 2019-08-17 | 长延时指令处理装置、方法以及设备、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377339B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764736B (zh) * | 2019-10-29 | 2021-11-26 | 中昊芯英(杭州)科技有限公司 | 一种矩阵处理装置、方法及设备 |
CN111443948B (zh) * | 2020-03-30 | 2022-09-09 | 龙芯中科技术股份有限公司 | 指令执行方法、处理器和电子设备 |
CN112486453B (zh) * | 2020-12-10 | 2023-12-08 | 上海金卓科技有限公司 | 一种异步先入先出寄存器以及芯片 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1014824A (en) * | 1961-09-13 | 1965-12-31 | Sperry Rand Corp | Stored programme system |
KR900012279A (ko) * | 1989-01-05 | 1990-08-03 | 뷸에이치 엔 인포메이션 시스템즈 인코오포레이티드 | 데이타 처리 시스템에서의 오퍼랜드 이용도를 증가시키는 장치 및 방법 |
CN101446891A (zh) * | 2007-11-27 | 2009-06-03 | 上海高性能集成电路设计中心 | 一种高性能微处理器结构寄存器保留恢复指令的实现方法 |
CN101957743A (zh) * | 2010-10-12 | 2011-01-26 | 中国电子科技集团公司第三十八研究所 | 并行数字信号处理器 |
CN102541611A (zh) * | 2010-12-21 | 2012-07-04 | 无锡江南计算技术研究所 | 指令翻译装置和方法、指令处理装置和处理器 |
CN103631559A (zh) * | 2013-12-13 | 2014-03-12 | 广西科技大学 | 双指令多浮点操作数除运算控制器 |
CN105426160A (zh) * | 2015-11-10 | 2016-03-23 | 北京时代民芯科技有限公司 | 基于sprac v8指令集的指令分类多发射方法 |
CN106020017A (zh) * | 2016-05-16 | 2016-10-12 | 深圳清华大学研究院 | 微控制器及其控制方法 |
CN107179895A (zh) * | 2017-05-17 | 2017-09-19 | 北京中科睿芯科技有限公司 | 一种应用复合指令加快数据流结构中指令执行速度的方法 |
CN107347253A (zh) * | 2015-02-25 | 2017-11-14 | 米雷普里卡技术有限责任公司 | 用于专用处理器的硬件指令生成单元 |
-
2019
- 2019-08-17 CN CN201910761134.8A patent/CN110377339B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1014824A (en) * | 1961-09-13 | 1965-12-31 | Sperry Rand Corp | Stored programme system |
KR900012279A (ko) * | 1989-01-05 | 1990-08-03 | 뷸에이치 엔 인포메이션 시스템즈 인코오포레이티드 | 데이타 처리 시스템에서의 오퍼랜드 이용도를 증가시키는 장치 및 방법 |
CN101446891A (zh) * | 2007-11-27 | 2009-06-03 | 上海高性能集成电路设计中心 | 一种高性能微处理器结构寄存器保留恢复指令的实现方法 |
CN101957743A (zh) * | 2010-10-12 | 2011-01-26 | 中国电子科技集团公司第三十八研究所 | 并行数字信号处理器 |
CN102541611A (zh) * | 2010-12-21 | 2012-07-04 | 无锡江南计算技术研究所 | 指令翻译装置和方法、指令处理装置和处理器 |
CN103631559A (zh) * | 2013-12-13 | 2014-03-12 | 广西科技大学 | 双指令多浮点操作数除运算控制器 |
CN107347253A (zh) * | 2015-02-25 | 2017-11-14 | 米雷普里卡技术有限责任公司 | 用于专用处理器的硬件指令生成单元 |
CN105426160A (zh) * | 2015-11-10 | 2016-03-23 | 北京时代民芯科技有限公司 | 基于sprac v8指令集的指令分类多发射方法 |
CN106020017A (zh) * | 2016-05-16 | 2016-10-12 | 深圳清华大学研究院 | 微控制器及其控制方法 |
CN107179895A (zh) * | 2017-05-17 | 2017-09-19 | 北京中科睿芯科技有限公司 | 一种应用复合指令加快数据流结构中指令执行速度的方法 |
Non-Patent Citations (1)
Title |
---|
冯海涛,王永纲,石江涛,颜天信,王砚方.基于FPGA的32位整数微处理器的设计与实现.小型微型计算机系统.2005,(06),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110377339A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377339B (zh) | 长延时指令处理装置、方法以及设备、可读存储介质 | |
US9009447B2 (en) | Acceleration of string comparisons using vector instructions | |
US9575753B2 (en) | SIMD compare instruction using permute logic for distributed register files | |
US8627304B2 (en) | Vectorization of program code | |
US20180089422A1 (en) | Technologies for deterministic code flow integrity protection | |
TWI469046B (zh) | 基於旋轉的別名保護暫存器中的暫存器配置 | |
CN105393240A (zh) | 具有辅助异步向量处理器的异步处理器的方法和装置 | |
CN111124492B (zh) | 指令生成方法、装置、指令执行方法、处理器及电子设备 | |
US10218508B2 (en) | Methods and apparatus to provide isolated execution environments | |
US10552812B2 (en) | Scenario based logging | |
US20130219373A1 (en) | Stack overflow protection device, method, and related compiler and computing device | |
US8707013B2 (en) | On-demand predicate registers | |
CN103460181A (zh) | 集成电路器件和执行其位操纵的方法 | |
US20120102496A1 (en) | Reconfigurable processor and method for processing a nested loop | |
CN111221573B (zh) | 一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质 | |
CN116932202A (zh) | 一种访存方法、处理器、电子设备及可读存储介质 | |
CN107748674B (zh) | 面向比特粒度的信息处理系统 | |
CN107239415B (zh) | 一种执行临界区操作的方法及装置 | |
US11550587B2 (en) | System, device, and method for obtaining instructions from a variable-length instruction set | |
CN114924792A (zh) | 指令译码单元、指令执行单元及相关装置和方法 | |
CN110134438B (zh) | 指令排序方法、装置、移动终端及存储介质 | |
US7353343B2 (en) | Memory management system for preventing program execution when CPU fetches execution code from unoccupied region of memory | |
US8589735B2 (en) | Creating randomly ordered fields while maintaining the temporal ordering based on the value of the fields | |
US11144238B1 (en) | Background processing during remote memory access | |
US10318427B2 (en) | Resolving memory accesses crossing cache line boundaries |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210205 Address after: 311201 No. 602-11, complex building, 1099 Qingxi 2nd Road, Hezhuang street, Qiantang New District, Hangzhou City, Zhejiang Province Applicant after: Zhonghao Xinying (Hangzhou) Technology Co.,Ltd. Address before: 518057 5-15, block B, building 10, science and technology ecological park, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: Shenzhen Xinying Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |