CN102722341A - 存储载入单元投机执行控制装置 - Google Patents

存储载入单元投机执行控制装置 Download PDF

Info

Publication number
CN102722341A
CN102722341A CN2012101572827A CN201210157282A CN102722341A CN 102722341 A CN102722341 A CN 102722341A CN 2012101572827 A CN2012101572827 A CN 2012101572827A CN 201210157282 A CN201210157282 A CN 201210157282A CN 102722341 A CN102722341 A CN 102722341A
Authority
CN
China
Prior art keywords
instruction
written
storing
storage
unit
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
CN2012101572827A
Other languages
English (en)
Other versions
CN102722341B (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.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems 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 Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN201210157282.7A priority Critical patent/CN102722341B/zh
Publication of CN102722341A publication Critical patent/CN102722341A/zh
Application granted granted Critical
Publication of CN102722341B publication Critical patent/CN102722341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

一种存储载入单元投机执行控制装置,包括:存储/载入指令投机发射序列单元,用于以程序顺序接收存储/载入指令流,并创建保存指令顺序的程序序列矩阵;完成存储/载入指令的数据相关性消除工作,投机地将数据相关性已经消除但地址相关性无法判断的存储/载入指令发射到存储/载入指令执行单元中,并且将未消除数据相关性的存储/载入指令存入指令缓存器中;存储/载入指令执行单元,用于接收来自投机发射序列发射的存储/载入指令,按照指令的类型完成相应的操作;存储/载入指令重排序缓冲器,用于对存储/载入指令的执行进行监控。本发明在处理深流水线处理时加速存储载入操作、保证正确性、提升存储器性能。

Description

存储载入单元投机执行控制装置
技术领域
本发明涉及存储器管理技术,尤其是一种存储载入单元。
背景技术
程序设计者将一段程序按照一定顺序交给微处理器进行计算运行,通常这个特定顺序叫做程序顺序。微处理器获得指令流后根据程序顺序,以及执行指令的特定规则下发给其各个执行单元进行运算。其中存储载入指令将发射给存储载入单元执行,修改存储器或者获得存储器中的数值,以及其他相关操作。
一种可以使存储载入单元根据程序顺序正确执行存储载入指令的方法是简单根据程序顺序来执行存储载入指令,按序的读入指令,按序的读取或修改寄存器和存储器,按序的退休指令。
然而当存储载入单元遇到的指令与前序指令,特别是长周期指令,有数据相关关系时,该阻塞指令将长期无法执行而导致后续无关的存储载入指令无法执行。而如果使用乱序投机的存储载入单元,可以避免阻塞指令后续的存储载入指令长期等待而可以提前执行,从而减少因为阻塞指令导致的长时间存储载入单元空闲,实现效能的提升。
乱序执行的存储载入的控制单元,其能够乱序地对存储器进行存储和载入控制,使得无相关的存储载入行为能够最大限度地进行乱序高速执行。由于存储\载入单元需要直接修改内存和寄存器,不仅涉及到数据相关性的维护,而且还涉及地址相关性的消除,但是深流水线处理的地址相关性往往需要较晚才能得知,所以需要一种投机执行的乱序存储\载入单元,加速存储载入操作,并保证存储载入操作的正确性。
发明内容
为了克服已有乱序执行的存储载入单元在处理深流水线处理时操作速度较慢、操作正确性较差、限制了存储器性能的不足,本发明提供一种在处理深流水线处理时加速存储载入操作、保证正确性、提升存储器性能的存储载入单元投机执行控制装置。
本发明解决其技术问题所采用的技术方案是:
一种存储载入单元投机执行控制装置,所述投机执行控制装置包括:
存储/载入指令投机发射序列单元,用于以程序顺序接收存储/载入指令流,并创建保存指令顺序的程序序列矩阵;根据存储/载入指令操作数的相关性信息,完成存储/载入指令的数据相关性消除工作,投机地将数据相关性已经消除但地址相关性无法判断的存储/载入指令发射到存储/载入指令执行单元中,并且将未消除数据相关性的存储/载入指令存入指令缓存器中;
存储/载入指令执行单元,用于连接至存储/载入指令投机发射序列,接收来自投机发射序列发射的存储/载入指令,按照指令的类型完成相应的操作;
存储/载入指令重排序缓冲器,用于根据位于存储/载入指令投机发射序列记录指令顺序的程序序列矩阵和存储/载入指令执行单元执行的存储/载入指令,对存储/载入指令的执行进行监控,检测乱序执行的指令是否因为地址相关性而出现投机错误,将指令执行指令投机错误的信息输出到存储/载入指令投机发射序列;存储/载入指令投机发射序列将指令执行的正确与否的信息输出给微处理器将指令错误信息反馈给微处理器。
进一步,所述存储/载入指令投机发射序列单元中,建立程序序列矩阵时,运用矩阵行列二维更新的特性,记录指令序列的创建信息,为存储/载入指令重排序缓冲器提供依据。
再进一步,所述存储/载入指令执行单元中,进行地址计算和内存存储访问,将执行完成的结果反馈回存储/载入指令乱序发射序列。
更进一步,所述存储/载入指令重排序缓冲器中,对存储/载入指令的执行进行监控的过程为:检查当前正在执行指令的前序指令是否还有未完成的;同时检查是否有和当前指令访问地址相同的前序指令;如果有未完成的并且访问地址相同的前序指令,则返回存储/载入指令重排序缓冲器投机执行错误;避免因为地址相关性导致的投机执行错误。
优选的,如果发现存储/载入指令投机执行错误,则存储/载入单元获得投机失败信号并反馈给微处理器内部控制逻辑,由微处理器内部控制单元重新执行该指令之后的所有指令。
本发明中,所述数据相关性是指前序指令的输出数据与后序存储载入指令的输入数据之间有相关关系,地址相关性是指前序指令的输出数据与后序指令的地址之间有相关关系。
本发明的有益效果主要表现在:在处理深流水线处理时加速存储载入操作、保证正确性、提升存储器性能。
附图说明
图1是乱序执行的存储载入单元框架图。
图2是乱序执行的存储载入单元结构图。
图3是存储/载入指令乱序发射序列流程图。
图4是存储/载入指令执行单元流程图。
图5是存储/载入指令重排序缓冲器流程图。
图6是程序序列矩阵操作示意图,其中,(a)为初始状态矩阵内所有位全部清零,(b)为指令m进入存储载入单元,(c)为对于指令n,程序顺序比它早的指令为指令2和指令m。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图6,一种存储载入单元投机执行控制装置,该单元包括存储/载入指令乱序发射序列、存储/载入指令执行单元、存储/载入指令重排序缓冲器。
存储/载入指令投机发射序列(11)接收来自微处理器取指单元的顺序指令(31),判断该指令的数据相关性是否消除(32)。如果该存储\载入指令数据相关性,则顺序下发该指令(33)。如果该指令具有数据相关性,则存储该指令(34),发射后续无相关性的指令,等待该指令的数据相关性消除后再发射该指令(35),从而实现指令的投机乱序发射。
存储/载入指令投机发射序列(11)接收来自微处理器取指单元的顺序指令(31),并根据指令的运行顺序,建立程序序列矩阵。该矩阵为二维N*N变方阵(N为存储载入单元最多能同时容纳的指令数目)(61)。一条指令进入存储/载入指令投机发射序列时,将程序序列矩阵该条指令对应的横列全部清除,将该条指令对应的纵列全部置位,以此来记录指令的先后顺序(62)。当需要得知在A指令之前的所有指令时,只要查看A指令所对应的横行,若某条横行标志位为1,则该指令的程序顺序在A指令之前;若某条横行标志位为1,则该指令的程序顺序在A指令之后(63)。
存储/载入指令执行单元(12)接收来自存储/载入指令乱序发射序列的指令,并根据存储载入指令的规则执行存储载入运算(41)。运算结果需要修改存储器时,按照存储指令在存储/载入指令乱序发射序列中记录的顺序按序提交请求给总线(44),若要修改寄存器,则按照载入指令在存储/载入指令乱序发射序列中记录的顺序按序修改寄存器(47)。运算结束信息返回存储/载入指令乱序发射序列,并由乱序发射序列反馈微处理器。
存储/载入指令重排序缓冲器(13)监测存储/载入指令执行单元中指令的执行过程。存储/载入指令重排序缓冲器对每一条存储指令进行监测(51):当存储指令执行结束前,存储/载入指令重排序缓冲器根据程序序列矩阵中记录的指令顺序,监测是否有程序顺序位于该条存储指令之后的载入指令已经被执行(55),若存在这样的载入指令且该载入指令的地址和存储指令的地址相同(56),则存储/载入指令重排序缓冲器向微处理器反馈指令执行错误信息(57),否则投机执行正确。投机错误的指令将被存储/载入单元重新执行。

Claims (5)

1.一种存储载入单元投机执行控制装置,其特征在于:所述投机执行控制装置包括:
存储/载入指令投机发射序列单元,用于以程序顺序接收存储/载入指令流,并创建保存指令顺序的程序序列矩阵;根据存储/载入指令操作数的相关性信息,完成存储/载入指令的数据相关性消除工作,投机地将数据相关性已经消除但地址相关性无法判断的存储/载入指令发射到存储/载入指令执行单元中,并且将未消除数据相关性的存储/载入指令存入指令缓存器中;
存储/载入指令执行单元,用于连接至存储/载入指令投机发射序列,接收来自投机发射序列发射的存储/载入指令,按照指令的类型完成相应的操作;
存储/载入指令重排序缓冲器,用于根据位于存储/载入指令投机发射序列记录指令顺序的程序序列矩阵和存储/载入指令执行单元执行的存储/载入指令,对存储/载入指令的执行进行监控,检测乱序执行的指令是否因为地址相关性而出现投机错误,将指令执行指令投机错误的信息输出到存储/载入指令投机发射序列;存储/载入指令投机发射序列将指令执行的正确与否的信息输出给微处理器将指令错误信息反馈给微处理器。
2.如权利要求1所述的存储载入单元投机执行控制装置,其特征在于:所述存储/载入指令投机发射序列单元中,建立程序序列矩阵时,运用矩阵行列二维更新的特性,记录指令序列的创建信息,为存储/载入指令重排序缓冲器提供依据。
3.如权利要求1或2所述的存储载入单元投机执行控制装置,其特征在于:所述存储/载入指令执行单元中,进行地址计算和内存存储访问,将执行完成的结果反馈回存储/载入指令乱序发射序列。
4.如权利要求1或2所述的存储载入单元投机执行控制装置,其特征在于:所述存储/载入指令重排序缓冲器中,对存储/载入指令的执行进行监控的过程为:检查当前正在执行指令的前序指令是否还有未完成的;同时检查是否有和当前指令访问地址相同的前序指令;如果有未完成的并且访问地址相同的前序指令,则返回存储/载入指令重排序缓冲器投机执行错误。
5.如权利要求4所述的存储载入单元投机执行控制装置,其特征还在于:如果发现存储/载入指令投机执行错误,则存储/载入单元获得投机失败信号并反馈给微处理器内部控制逻辑,由微处理器内部控制单元重新执行该指令之后的所有指令。
CN201210157282.7A 2012-05-17 2012-05-17 存储载入单元投机执行控制装置 Active CN102722341B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210157282.7A CN102722341B (zh) 2012-05-17 2012-05-17 存储载入单元投机执行控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210157282.7A CN102722341B (zh) 2012-05-17 2012-05-17 存储载入单元投机执行控制装置

Publications (2)

Publication Number Publication Date
CN102722341A true CN102722341A (zh) 2012-10-10
CN102722341B CN102722341B (zh) 2014-12-24

Family

ID=46948127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210157282.7A Active CN102722341B (zh) 2012-05-17 2012-05-17 存储载入单元投机执行控制装置

Country Status (1)

Country Link
CN (1) CN102722341B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106802868A (zh) * 2015-11-25 2017-06-06 通用汽车环球科技运作有限责任公司 通过数据挖掘优化的存储器配置
US10423423B2 (en) 2015-09-29 2019-09-24 International Business Machines Corporation Efficiently managing speculative finish tracking and error handling for load instructions
WO2022094964A1 (zh) * 2020-11-06 2022-05-12 华为技术有限公司 处理指令的方法以及图计算装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0707385A1 (en) * 1994-04-22 1996-04-17 Ntt Mobile Communications Network Inc. Method for receiving code division multiplex signal
CN1237732A (zh) * 1998-06-01 1999-12-08 国际商业机器公司 分布式指令完成逻辑
CN1971537A (zh) * 2005-11-25 2007-05-30 杭州中天微系统有限公司 一种矩阵数据存取方法及其矩阵数据存储装置
CN101114218A (zh) * 2006-07-27 2008-01-30 中国科学院计算技术研究所 复杂指令集体系结构中的深度优先异常处理方法
US20080177981A1 (en) * 2004-03-26 2008-07-24 International Business Machines Corporation Apparatus and method for decreasing the latency between instruction cache and a pipeline processor
CN101526896A (zh) * 2009-01-22 2009-09-09 杭州中天微系统有限公司 嵌入式处理器的加载/存储单元
CN101710272A (zh) * 2009-10-28 2010-05-19 北京龙芯中科技术服务中心有限公司 指令调度装置和方法
US20100332772A1 (en) * 2009-06-25 2010-12-30 Fujitsu Limited Apparatus, computer-readable recording medium and storage system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0707385A1 (en) * 1994-04-22 1996-04-17 Ntt Mobile Communications Network Inc. Method for receiving code division multiplex signal
CN1237732A (zh) * 1998-06-01 1999-12-08 国际商业机器公司 分布式指令完成逻辑
US20080177981A1 (en) * 2004-03-26 2008-07-24 International Business Machines Corporation Apparatus and method for decreasing the latency between instruction cache and a pipeline processor
CN1971537A (zh) * 2005-11-25 2007-05-30 杭州中天微系统有限公司 一种矩阵数据存取方法及其矩阵数据存储装置
CN101114218A (zh) * 2006-07-27 2008-01-30 中国科学院计算技术研究所 复杂指令集体系结构中的深度优先异常处理方法
CN101526896A (zh) * 2009-01-22 2009-09-09 杭州中天微系统有限公司 嵌入式处理器的加载/存储单元
US20100332772A1 (en) * 2009-06-25 2010-12-30 Fujitsu Limited Apparatus, computer-readable recording medium and storage system
CN101710272A (zh) * 2009-10-28 2010-05-19 北京龙芯中科技术服务中心有限公司 指令调度装置和方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423423B2 (en) 2015-09-29 2019-09-24 International Business Machines Corporation Efficiently managing speculative finish tracking and error handling for load instructions
US10552165B2 (en) 2015-09-29 2020-02-04 International Business Machines Corporation Efficiently managing speculative finish tracking and error handling for load instructions
CN106802868A (zh) * 2015-11-25 2017-06-06 通用汽车环球科技运作有限责任公司 通过数据挖掘优化的存储器配置
CN106802868B (zh) * 2015-11-25 2021-01-05 通用汽车环球科技运作有限责任公司 通过数据挖掘优化的存储器配置
WO2022094964A1 (zh) * 2020-11-06 2022-05-12 华为技术有限公司 处理指令的方法以及图计算装置

Also Published As

Publication number Publication date
CN102722341B (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
EP2972844B1 (en) Method and apparatus for efficient scheduling for asymmetrical execution units
KR100571322B1 (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
CN108139907A (zh) 向量数据传送指令
US20180107510A1 (en) Operation of a multi-slice processor implementing instruction fusion
US10970079B2 (en) Parallel dispatching of multi-operation instructions in a multi-slice computer processor
EP2352082B1 (en) Data processing device for performing a plurality of calculation processes in parallel
CN104461468A (zh) 基于处理器指令快速完成的精确异常维护方法及装置
CN102722341A (zh) 存储载入单元投机执行控制装置
US20190294571A1 (en) Operation of a multi-slice processor implementing datapath steering
US10282207B2 (en) Multi-slice processor issue of a dependent instruction in an issue queue based on issue of a producer instruction
CN102799419B (zh) 寄存器写冲突检测方法及装置、以及处理器
CN102520913B (zh) 基于分组更新历史信息的并行分支预测装置
US20170168836A1 (en) Operation of a multi-slice processor with speculative data loading
US9081895B2 (en) Identifying and tagging breakpoint instructions for facilitation of software debug
US9213547B2 (en) Processor and method for processing instructions using at least one processing pipeline
CN105094750B (zh) 一种多线程处理器的返回地址预测方法和装置
US20190213055A1 (en) Operation of a multi-slice processor implementing a hardware level transfer of an execution thread
CN106537331A (zh) 指令处理方法及设备
US10248421B2 (en) Operation of a multi-slice processor with reduced flush and restore latency
US9983879B2 (en) Operation of a multi-slice processor implementing dynamic switching of instruction issuance order
CN116841614B (zh) 乱序访存机制下的顺序向量调度方法
CN103282876A (zh) 数据元素的条件选择
CN101593095A (zh) 基于流水级的数据处理方法和系统
US9971687B2 (en) Operation of a multi-slice processor with history buffers storing transaction memory state information
CN105242905A (zh) 数据假相关的处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant