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

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

Info

Publication number
CN102722341B
CN102722341B CN201210157282.7A CN201210157282A CN102722341B CN 102722341 B CN102722341 B CN 102722341B CN 201210157282 A CN201210157282 A CN 201210157282A CN 102722341 B CN102722341 B CN 102722341B
Authority
CN
China
Prior art keywords
instruction
storing
loading
loaded
storage
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
CN201210157282.7A
Other languages
English (en)
Other versions
CN102722341A (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

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 CN102722341A (zh) 2012-10-10
CN102722341B true 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)

Families Citing this family (3)

* 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
US9830270B2 (en) * 2015-11-25 2017-11-28 GM Global Technology Operations LLC Optimized memory layout through data mining
EP4227801A4 (en) * 2020-11-06 2023-11-15 Huawei Technologies Co., Ltd. INSTRUCTION PROCESSING METHOD AND GRAPHFLOW APPARATUS

Citations (6)

* 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 中国科学院计算技术研究所 复杂指令集体系结构中的深度优先异常处理方法
CN101526896A (zh) * 2009-01-22 2009-09-09 杭州中天微系统有限公司 嵌入式处理器的加载/存储单元
CN101710272A (zh) * 2009-10-28 2010-05-19 北京龙芯中科技术服务中心有限公司 指令调度装置和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281120B2 (en) * 2004-03-26 2007-10-09 International Business Machines Corporation Apparatus and method for decreasing the latency between an instruction cache and a pipeline processor
JP2011008548A (ja) * 2009-06-25 2011-01-13 Fujitsu Ltd データ中継装置およびストレージシステム

Patent Citations (6)

* 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 中国科学院计算技术研究所 复杂指令集体系结构中的深度优先异常处理方法
CN101526896A (zh) * 2009-01-22 2009-09-09 杭州中天微系统有限公司 嵌入式处理器的加载/存储单元
CN101710272A (zh) * 2009-10-28 2010-05-19 北京龙芯中科技术服务中心有限公司 指令调度装置和方法

Also Published As

Publication number Publication date
CN102722341A (zh) 2012-10-10

Similar Documents

Publication Publication Date Title
US9619233B2 (en) Computer processor providing exception handling with reduced state storage
US20100325395A1 (en) Dependence prediction in a memory system
EP2972878B1 (en) Mechanism for facilitating dynamic and efficient management of instruction atomicity violations in software programs at computing systems
US10031757B2 (en) Operation of a multi-slice processor implementing a mechanism to overcome a system hang
US20180107510A1 (en) Operation of a multi-slice processor implementing instruction fusion
CN102722341B (zh) 存储载入单元投机执行控制装置
US20200042320A1 (en) Parallel dispatching of multi-operation instructions in a multi-slice computer processor
WO2012107800A1 (en) Integrated circuit devices and methods for scheduling and executing a restricted load operation
US20130013283A1 (en) Distributed multi-pass microarchitecture simulation
US9424165B2 (en) Debugging processor hang situations using an external pin
CN106843816A (zh) 一种分支预测控制方法及装置
US10417152B2 (en) Operation of a multi-slice processor implementing datapath steering
CN102799419B (zh) 寄存器写冲突检测方法及装置、以及处理器
US10248555B2 (en) Managing an effective address table in a multi-slice processor
CN113168367A (zh) 位精确跟踪中的处理器存储器重排序提示
US9213547B2 (en) Processor and method for processing instructions using at least one processing pipeline
CN115687131A (zh) 一种程序调试方法
US11138050B2 (en) Operation of a multi-slice processor implementing a hardware level transfer of an execution thread
KR102379886B1 (ko) 벡터 명령 처리
US10248421B2 (en) Operation of a multi-slice processor with reduced flush and restore latency
CN101593095B (zh) 基于流水级的数据处理方法和系统
CN105094750A (zh) 一种多线程处理器的返回地址预测方法和装置
CN117270972B (zh) 指令处理方法、装置、设备和介质
CN116841614B (zh) 乱序访存机制下的顺序向量调度方法
KR20140111416A (ko) 정적 스케쥴 프로세서의 논블로킹 실행 장치 및 방법

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