信息处理装置、高速缓冲存储器控制装置以及存储器访问顺序保证方法

文档序号:6457355阅读:132来源:国知局
专利名称:信息处理装置、高速缓冲存储器控制装置以及存储器访问顺序保证方法
技术领域
本发明涉及以乱序来处理存储器访问的SMT (Simultaneous Multi Thread:同步多线程)处理器,尤其是涉及保证将某线程中执行的存储 处理的顺序性反映到同一处理器内的其他线程中执行的加载处理中的 SMT中的线程间的TSO保证方法。
背景技术
所谓TSO ( Total Store Ordering:全存储排序),是针对对存储器 进行访问的指令的顺序,规定了对实际写入存储器的顺序进行调换的限 制的访存排序(memory ordering)之一。TSO的规则为如下三点
1. 加载(load)指令,不得超过先行的加载指令进行处理。
2. 存储(store)指令,不得超过先行的加载指令和先行的存储指 令进行处理。
3. 原子性加载存储(atomic load store)指令,不得超过先行的加 载指令和先行的存储指令进行处理。原子性加载存储指令为如下指令, 即在利用该指令对对象数据进行加载到进行存储的期间,必须限制对 该对象数据的其他访问。
图9为表示必须由TSO来保证的、加载指令/存储指令间的超过可 否模式的图。如#1所示,加载指令不能超过先行的加载指令来进行处 理。如#2所示,存储指令不能超过先行的加载指令来进行处理。如#3 所示,加载指令可以超过先行的存储指令来进行处理。如#4所示,存 储指令不能超过先行的存储指令来进行处理。
即,加载指令也可以超过先行的存储指令来进行处理,但禁止其他 模式的超过。但是,在成为加载指令的对象的数据包含在成为先行存储 指令的对象的数据中的情况下,加载指令必须加载先行的存储指令的数
5据。
在此,在以乱序来处理存储器访问的处理器中,可以使后续的加载 指令超过先行的加载指令进行处理而先将数据返回指令控制部。
图10为说明进行乱序处理的处理器中的、加载指令彼此超过的例 子的图。在进行乱序处理的处理器中,指令控制部IOO对高速緩存控制 部200发出加载指令load-A。如果成为load-A的对象的数据为高速緩 存未命中,则高速緩存控制部200向外部的存储单元请求该数据。
接着,指令控制部100对高速緩存控制部200发出加载指令load-B。 如果成为加载指令load-B的对象的数据成为高速緩存命中,则高速緩 存控制部200超过先行的load-A的处理而进行后续的加载指令load-B 的处理,将成为加栽指令load-B的对象的数据data-B返回指令控制部 100。
然后,如果从外部的存储单元接受了数据转送,高速緩存控制部200 则进行加载指令load-A的处理,将成为加载指令load-A的对象的数据 data-A返回到指令控制部100。
这样,在乱序处理中,不限于按照指令的顺序来从高速緩存读出数 据。但是,由于在指令控制部100中实际上按顺序执行指令,因此即便 以顺序不同的方式读出数据,但只要遵守加载/存储间的TSO,在是仅 与单一线程对应的处理器的情况下,从软件方面来看也遵守了 TSO。
然而,在SMT处理器中,由于同时执行的多个线程共享一级高速 緩存,因此需要避免在一个处理器内的线程间违反TSO。
所谓SMT ( Simultaneous Multi Thread )是指在单一 CPU中同时 执行多个线程的技术。即,SMT处理器为具有同时执行多个线程的功 能的处理器。作为记载了关于SMT处理器的在先技术的文献,例如有 专利文献1等。在专利文献l中记载有如下技术保证线程间对共享数 据进行读出和写入的执行顺序的一致性。
专利文献l: WO2004/068361号7>净艮
图11~图13为说明SMT构成中的违反TSO的例子的图。在图11~图13所示的例子中,从指令控制部100向一级高速緩存控制部200发 出的加载指令/存储指令等存储器访问请求,被暂时保持在由多个项 (entry)构成的FP ( Fetch Prot:读取端口 ) 220。在此,为了《更于说 明,设处理器内的线程数为2,并且对每个线程分别配备了 FP220。从 指令控制部IOO发出的指令,按照指令的执行顺序被循环分配给FP220 的项。能够以乱序读出保持在FP220中的请求,并根据可处理的请求将 其对象数据返回指令控制部100。
在此,对下述例子进行说明,即针对高速緩存RAM210上不存在 数据的区域A、高速緩存RAM210上存在数据的区域B,在处理器内的 某线程(thread-a)中,-认指令控制部100以store-A、 store-B的顺序 对一级高速緩存控制部200发出指令,在同一处理器内的另一线程 (thread-p)中,从指令控制部100以load-B、 load-A的顺序对一级高 速緩存控制部200发出指令。
thread-a中发出的store-A、 store-B被按顺序保持在FP220a中, thread-p中发出的load-B、 load-A被按顺序保持在FP220卩中。另外, 在图中,保持于各FP220的指令的左侧所标记的数字为表示各项的编 号。
在一级高速緩存控制部200中,设首先根据thread-p中发出的指令 进行处理。在thread-卩中,如果以先行的load-B对高速緩存RAM210 的区域B进行了访问,则由于在高速緩存RAM210中不存在区域B的 数据而为高速緩存未命中,向二级高速緩存控制部300请求该数据。
如果在向二级高速緩存控制部300请求load-B的对象数据期间,以 后续的1oad-A对高速緩存RAM210的区域A进行了访问,则为高速緩 存命中,将所得到的data-A (old (旧))返回指令控制部100。另外, 图中,区域A的数据被标记为old是表示与由于之后的store-A的处理 而被改写的数据相比为旧的数据。
然后,如图12所示,从二级高速緩存控制部300转送的区域B的 数据到达高速緩存RAM210。这里,在一级高速緩存控制部200中,设 在进行thread-p的load-B的再处理之前,根据thread-a中发出的指令 进行处理。如果以store-A、 store-B对高速緩存RAM210的区域A、区
7域B进行了存储,则同时为高速緩存命中,高速緩存RAM210的区域 A、区域B的数据被更新。另外,图中区域A、区域B的数据被标记为 new (新)是表示与由于store-A、 store-B处理而被改写前的数据相比 为新的数据。
之后,在一级高速緩存控制部200中进行thread-p的load-B的再 处理。如果以1oad-B对高速緩存RAM210的区域B进行了存储,则为 高速緩存命中,将所得到的data-B (new)返回指令控制部100 (参照 图13)。
结果,尽管在thread-a中以store-A、 store-B的顺序发出了指令, 但在thread-p中,在load-B的处理中返回存储结束数据,在load-A的 处理中返回存储前数据,从而违反了 TSO中的禁止加载指令/加载指令 间的超过的规定。

发明内容
本发明谋求解决上述问题,其目的在于提供如下技术,即在以乱序 处理存储器访问的SMT处理器中,保证将某线程中执行的存储处理的 顺序性反映在同一处理器内的其他线程中执行的加载处理中。
本发明的特征在于,为了解决上述课题,设在同时执行多个线程的 SMT处理器中,在某线程中后续的加载指令的处理比先行的加载指令 的处理先被执行,且后续的加载指令的对象数据先返回指令控制部的情 况下,如果由其他线程执行了针对该数据的存储处理,则有可能违反 TSO,并在对先行的加载指令进行处理时,向指令控制部请求再执行从 该先行的加载指令的下一个指令开始到上述后续的加载指令为止的指 令,由此避免违反TSO。
在同时执行多个线程的SMT处理器中,在高速緩存控制部中,对 各线程的FP的每个项准备表示处理已完成的标记、和表示由于其他线 程的存储处理而需要对指令再执行的标记,并且对各线程的每个FP准 备表示保持有最旧的请求的项的信息。
当在某线程a中执行了存储处理时,如果对于其他线程p存在对象 地址与所执行的存储处理的对象地址一致、且保持有处理已完成的加载类指令的项,则对该线程p的FP的从保持有最旧的请求的项或者从其 下一个项开始到对象地址与上述存储处理的对象地址一致且保持有处 理已完成的加载类指令的项为止的所有项,设置表示由于其他线程的存 储处理而需要对指令再执行的标记。
如果执行了线程p的最旧的请求,则针对设置有表示由于其他线程 的存储处理而需要对指令再执行的标记的项所保持的请求,向指令控制 部发出指令再执行请求。
具体而言,本发明为一种信息处理装置,具有对作为一系列的指令 的执行单位的线程进行控制的指令控制部和具有高速緩冲存储器的高
速緩存控制部,并且具有以乱序方式处理进行存储器访问的存储指令和 加载指令,并同时执行多个上述线程的功能,其特征在于,上述高速緩 存控制部具有判定电路和指令再执行请求电路,其中,所述判定电路, 在由某线程执行了针对上述高速緩冲存储器的存储指令的处理的情况 下,判定是否由具有先行的加载指令和后续的加载指令的其他线程,在 上述先行的加载指令的处理之前执行了针对上述存储指令的对象地址 的数据的上述后续的加载指令,且该后续的加载指令的对象数据在上述
存储指令的处理之前返回到上述指令控制部;所述指令再执行请求电 路,在由上述判定电路判定为上述对象数据在上述存储指令的处理之前
返回到上述指令控制部的情况下,在处理上述先行的加载指令时,向上 述指令控制部请求再执行从上述先行的加载指令的下一个指令开始到
上述后续的加载指令为止的指令。
根据本发明,在以乱序来处理存储器访问的SMT处理器中,保证
了线程间数据更新的顺序性。


图1为表示本实施方式的处理器的构成例的图。
图2为表示FP的项保持的信息的构成要素的例的图。
图3为本实施方式的基于存储的指令再执行请求标记的设置处理流 程图。图4为本实施方式的指令再执行请求处理流程图。
图5为说明避免违反SMT构成中的TSO的例的图。
图6为说明避免违反SMT构成中的TSO的例的图。
图7为说明避免违反SMT构成中的TSO的例的图。
图8为说明避免违反SMT构成中的TSO的例的图。
图9为表示必须由TSO来保证的、加载指令/存储指令间的超过可 否模式的图。
图10为说明进行乱序处理的处理器中的、加载指令彼此超过的例 的图。
图11为i兌明违反SMT构成中的TSO的例的图。 图12为"i兌明违反SMT构成中的TSO的例的图。 图13为"^兌明违反SMT构成中的TSO的例的图。 符号说明如下
1…CPU; 10…指令控制部;20…一级高速緩存控制部;21…高速緩 存RAM; 22…FP; 23…FP國TOQ; 24…存储控制部;25…地址一致判 定电路;26...指令再执行请求电路;30...二级高速緩存控制部。
具体实施例方式
下面,结合

本发明的实施方式。
图1为表示本实施方式的处理器的构成例的图。CPU1为可以对多 个线程并行进行处理的SMT处理器。指令控制部10具备一级高速緩存 控制部20、 二级高速緩存控制部30。 一级高速緩存控制部20具备高速 緩存RAM21 、 FP ( Fetch Port,读取端口 ) 22、 FP画TOQ ( Fetch Port Top Of Queue,读取端口队列头)23、存储控制部24、地址一致判定电路 25、指令再执行请求电路26。另外,图1的一级高速緩存控制部20的 构成仅选择地记载了尤其与本实施方式相关的部分。另外,线程为CPU1中的 一 系列指令的执行单位。
指令控制部10将加载指令、存储指令等请求发送给一级高速緩存 控制部20。 一级高速緩存控制部20进行针对来自指令控制部10的请求 的处理。此时,如果高速緩存RAM21中不存在成为来自指令控制部10 的请求的对象的数据,则对二级高速緩存控制部30请求转送该数据。 如果来自指令控制部10的请求为加载指令,则将数据返回指令控制部 10。
如果从一级高速緩存控制部20接收到转送数据的请求,二级高速 緩存控制部30则确认自身所具有的高速緩存RAM中是否存在一级高 速緩存控制部20所请求的数据,如果存在,则将该数据返回一级高速 緩存控制部20。如果一级高速緩存控制部20所请求的数据不存在,则 对外部的存储单元请求转送该数据。
在一级高速緩存控制部20中,高速緩存RAM21为容量小但访问速 度快的存储单元。
FP22具有保持从指令控制部10接收到的请求的多个项。在FP22 的各项设置有基于存储的指令再执行请求标记(RIS: Relfetch for Store )。从指令控制部10发出的指令按照指令的执行顺序被循环分配给 FP22的项。能够以乱序读出保持在FP22中的请求,并根据可处理的请 求将其对象数据返回到指令控制部10。另外,对并行执行的每个线程准 备FP22。
FP-TOQ23为保持表示FP22的项中的保持最旧的请求的项的信息 的寄存器。另外,与FP22相同,对并行执行的每个线程准备FP-TOQ23。
FP22所保持的请求的开放时机为,在FP-TOQ23中示出的项中所 保持的请求的处理完成的时间点。在超过在FP-TOQ23中示出的项中所 保持的请求的处理而先完成了在FP-TOQ23中未示出的项中所保持的 请求的处理的情况下,该先被处理了的请求以保持表示是完成状态不变 而继续被保持在FP22中。然后,在FP-TOQ23中示出的项中所保持的 请求完成的时间点, 一起开放处理已完成的项。
存储控制部24在根据存储指令改写高速緩存RAM21上的数据时,
ii将成为该存储指令的对象的地址通知给地址一致判定电路25。
如果从存储控制部24接收到成为存储指令的对象的地址,则地址 一致判定电路25检索该存储指令所属的线程之外的线程的FP22,如果 检测出是加载类指令、处理已完成、且指令的对象地址与所取得的地址 一致的请求,则对从FP-TOQ23所示的项或其下一个项到保持有所检测 出的请求的项为止的所有项,设置基于存储的指令再执行请求标记。另 外,也可以仅对保持有所检测出的请求的项设置基于存储的指令再执行 请求标记。
如果进行了在FP-TOQ23中示出的项中所保持的请求的处理,则指 令再执行请求电路26,针对设置有基于存储的指令再执行请求标记的项 所保持的请求,向指令控制部IO发出指令的再执行请求。
图2为表示FP的项保持的信息的构成要素的例的图。图2的例为 从FP22的项保持的信息中选择出特别与本实施方式相关的部分的构成 的图。FP22的各项具有以下信息表示该项已开放还是未开放、即所 保持的请求为无效还是有效的标记(valid);表示所保持的请求的处理 已完成还是未完成的标记(status);表示加载指令、存储指令等指令类 别的指令代码(叩code);成为所述指令的对象的地址(address );上述 的基于存储的指令再执行请求标记(RIS)等。
在本实施方式中,设valid在所保持的请求为无效的情况下为"O", 而有效的情况下为"l"。另外,设status在所保持的请求的处理未完成 的情况下为"未完成",而已完成的情况下为"完成"。另外,i殳基于存储 的指令再执行请求标记默i人时为"0",而在标记放置时为"1"。
图3为本实施方式的基于存储的指令再执行请求标记的设置处理的 流程图。如果执行了对高速緩存RAM21的存储处理(步骤S10 ),则检 索与执行了存储处理的线程不同的线程的FP22 (步骤Sll)。
如果在所检索的FP22中不存在valid为1、status为完成、且opcode 为加载类指令的项(步骤S12),则不设置基于存储的指令再执行请求
标记o
当在所检索的FP22中存在valid为1、 status为完成、且opcode
12为加载类指令的项时(步骤S12),如果该项的地址(address)与所执 行的存储处理的对象地址一致(步骤S13 ),则对从FP-TOQ23所示的 项的下一个项到一致的项为止的所有项,设置基于存储的指令再执行请 求标记(RIS )(步骤S14 )。
即4吏在所检索的FP22中存在valid为1、 status为完成、且opcode 为加载类指令的项(步骤S12),如果该项的地址(address)与所执行 的存储处理的对象地址不一致(步骤S13),则不设置基于存储的指令 再执行请求标记(RIS )。
图4为本实施方式的指令再执行请求处理的流程图。在图4的流程 图中,FP#n(n=0, 1, 2…)表示FP22的各项,n(n=0, 1, 2…)表 示为方便而分配给项的编号。
当根据保持在项FP#n的请求向指令控制部10转送了数据(步骤 S20)时,如果该项FP#n为FP-TOQ23所示的项(步骤S21 ),并且, 在该项FP#n所属的线程的FP22中存在valid为1、且指令再执行请 求标记(RIS)为'T,的项(步骤S22),则针对所有保持在该项的请 求,向指令控制部10请求指令再执行(步骤S23 )。
图5~图8为说明避免违反SMT构成中的TSO的例的图。在此, 用图5 ~图8说明本实施方式的一级高速緩存控制部20的处理的更具体 的例子。在图5~图8所示的例子中,从指令控制部10向一级高速緩存 控制部20发出的加载指令/存储指令等存储器访问请求被暂时保持在 FP22中。在此,为便于说明,将处理器内的线程数设为2,设每个线程 分别具有FP22。
在图5~图8所示的例子中,对以下情况进行说明,即针对高速 緩存RAM21上不存在数据的区域A、高速緩存RAM21上存在数据的 区域B,在thread-a中,以store-A、 store-B的顺序进行了请求,而在 thread-p中,以load-B、 load-A的顺序进行了请求(参照图5 )。
在thread-a中,对于从指令控制部10发出的指令,在FP22a的0 号项(以下标记为FPa # 0 )保持store-A,在1号项(以下标记为FPa # 1 )保持store-B, FP22a的FP國TOQ23a示出了项FPa # 0。在thread-卩
13中,对于从指令控制部IO发出的指令,在FP22卩的0号项(以下标记 为FPp # 0 )保持load-B,在1号项(以下标记为FP卩# 1)保持load-A, FP22卩的FP-TOQ23p示出了项FPp#0 (参照图5)。另外,在图中, 标记在各FP22保持的指令的左侧的数字为表示各项的编号。
从FP22a、 FP22卩中的哪一个开始进行请求,另外,在FP22a、 FP22卩 中从在哪个项保持的请求开始进行处理,基本上顺序不同。在此,以 i^rpffu、 n"p卄丄、rra卄u、 rra卄iffv乂映/r, ,、j休符吞项的,水近灯^H 理。
一级高速緩存控制部20如果首先进行了保持在FPP#0的load-B 的处理,则由于高速緩存RAM21的区域B中不存在数据而成为高速緩 存未命中,因此对二级高速緩存控制部30或主存储器(图示省略)请 求转送数据(参照图5 )。
在该数据到达高速緩存RAM21之前的期间,开始保持在FPp#l 的load-A的处理,由于成为高速緩存命中,因此读出高速緩存RAM21 的区域A的数据,将所得到的data-A ( old )返回到指令控制部10 (参 照图5)。在此时间点,在thread-p中,load-A的处理超过load-B的处 理,将数据返回到指令控制部10。另外,图中,区域A的数据被标记 为old,表示与由之后的store-A的处理改写的数据相比为比较旧的数 据。
在此,保持在FP|5#1的load-A的处理完成了,但是,保持在 FP-TOQ23|5所示的FPp#0的load-B的处理尚未结束,因此,在此时 间点,仅对FPP弁1设置了处理已完成的标记,不开放FPp并l。
之后,进行在thread-a的FPa#0保持的store-A的处理,将数据 写入高速緩存RAM21的区域A。在该store-A的数据写入处理时,检 查在thread-a以外的线程的FP22、在此情况下是thread-卩的FP22卩所 保持的所有处理已完成的请求的地址,如果有保持有地址与区域A —致 的请求的项,则对FP22p的从在FP-TOQ23卩中示出的项或其下一个项 开始到该一致的项为止的所有项,设置基于存储的指令再执行请求标记 (RIS)。在此,由于存在保持有地址与区域A—致的请求的项FPP#1, 因此只对FP22卩的从在FP-TOQ23p中示出的项FPp#0至FP卩并1、或
14者仅对FPP # 1设置基于存储的指令再执行请求标记(RIS X参照图6 )。 在图中,;FPP#1的项的RIS设置有1。
之后,包含区域B的数据从二级高速緩存控制部30到达一级高速 緩存控制部20,被写入高速緩存RAM21的区域B。进行保持在thread-a 的FPa#l的store-B的处理,将数据写入高速緩存RAM21的区域B (参照图6)。另外,图中,区域A、区域B的数据被标记为new,表 示与通过store-A、store-B的处理而被改写之前的数据相比为新的数据。
然后,进行thread-p的FP卩# 0所保持的load-B的再处理,由于成 为高速緩存命中,所以读出高速緩存RAM21的区域B的数据,将所得 到的data-B(new)返回到指令控制部10。此时,FPp#0为FP-TOQ23卩 所示出的项,因此,针对被设置了基于存储的指令再执行请求标记(RIS ) 的项,向指令控制部IO发出指令再执行请求(参照图7)。但是,不需 要针对FP-TOQ23p所示出的项、即FPp#0发出指令再执行请求。另 外,由于FP-TOQ23卩所示出的项、即FPP#0的处理已完成,因此, 将FP22p的保持有处理已完成的请求的项全部开放。
从指令控制部10再次请求了 thread-p的load-A,该请求被保持在 FP22p的2号项(以下标记为FP(5 # 2 )。进行保持在FP|3 # 2的load-A 的处理,并成为高速緩存命中,因此,读出高速緩存RAM21的区域A 的数据,将所得到的data-A (new)返回到指令控制部10 (参照图8)。 由此,将基于thread-a的store-A的处理的存储结束数据返回到指令控 制部10。
如果没有上述这种基于存储的指令再执行机制,在thread-p的 load-B的处理中,返回到指令控制部10的数据为存储结束数据,而在 load-A的处理中返回的数据为存储前数据,从软件来看,thread-oc的 store-A、 store-B的处理顺序颠倒,违反了 TSO。通过进行基于存储的 指令再执行,在ttiread-|5的load-B、 load-A的处理中,都返回thread-ot的存储结束数据,从而能够避免违反TSO。
产业上的可利用性
信息处理装置、高速緩冲存储器控制装置、以及存储器访问顺序保证方法涉及信息处理装置中使用的技术,尤其是具有高速緩存的计算机 中所4吏用的技术。
权利要求
1.一种信息处理装置,具有对作为一系列的指令的执行单位的线程进行控制的指令控制部和具有高速缓冲存储器的高速缓存控制部,并且具有以乱序方式处理进行存储器访问的存储指令和加载指令,并同时执行多个上述线程的功能,其特征在于,上述高速缓存控制部具有判定电路,其在由某线程执行了针对上述高速缓冲存储器的存储指令的处理的情况下,判定是否由具有先行的加载指令和后续的加载指令的其他线程,在上述先行的加载指令的处理之前执行了针对上述存储指令的对象地址的数据的上述后续的加载指令,且该后续的加载指令的对象数据在上述存储指令的处理之前返回到上述指令控制部;和指令再执行请求电路,其在由上述判定电路判定为上述对象数据在上述存储指令的处理之前返回到上述指令控制部的情况下,在处理上述先行的加载指令时,向上述指令控制部请求再执行从上述先行的加载指令的下一个指令开始到上述后续的加载指令为止的指令。
2. —种高速緩冲存储器控制装置,其用于信息处理装置并且具有 高速緩冲存储器,所述信息处理装置具有以乱序方式处理存储器访问并 同时执行多个作为 一 系列的指令的执行单位的线程的功能,其特征在 于,具有判定电路,其在由某线程执行了针对上述高速緩冲存储器的存储指 令的处理的情况下,判定是否由具有先行的加载指令和后续的加载指令 的其他线程,在上述先行的加载指令的处理之前执行了针对上述存储指 令的对象地址的数据的上述后续的加载指令,且该后续的加载指令的对 象数据在上述存储指令的处理之前返回到上述指令控制部;和指令再执行请求电路,其在由上述判定电路判定为上述对象数据在 上述存储指令的处理之前返回到上述指令控制部的情况下,在处理上述 先行的加载指令时,向上述指令控制部请求再执行从上述先行的加载指 令的下一个指令开始到上述后续的加栽指令为止的指令。
3. —种高速緩冲存储器控制装置,其特征在于,具有高速緩冲存储器;读取端口 ,其具有按每个作为一系列的指令的执行单位的线程保持 针对上述高速緩冲存储器的访问请求的多个项,并且,在该各项至少具 有表示所保持的访问请求的处理是否已完成的状态标记、指令种类信 息、该指令的对象数据和基于存储指令的发出的指令再执行请求标记;队列寄存器,其按每个上述读取端口保持表示上述读取端口的项中 的保持最旧的访问请求的项的信息;地址一致判定电路,其在由上述存储指令改写了上述高速緩冲存储 器上的数据时,检索与发出了上述存储指令的线程以外的线程对应的上 述读取端口,并在检测出指令种类信息为加载类指令、状态标记为处理 已完成、且保存有指令的对象地址与所取得的地址一致的访问请求的项 的情况下,在从上述队列寄存器所示的项或其下一个项开始到上述检测 出的项为止的各项,设置基于上述存储指令的指令再执行请求标记;指令再执行请求电路,其在进行上述队列寄存器中示出的访问请求 的处理时,针对保持在设置有基于上述存储指令的指令再执行请求标记 的项的访问请求,向已发出指令的访问请求源发送指令再执行请求。
4. 一种存储器访问顺序保证方法,其特征在于,为信息处理装置 中的保证与访问存储器的指令的顺序有关的预先设定的限制的线程间 的存储器访问顺序保证方法,所述信息处理装置,具有对作为一系列的 指令的执行单位的线程进行控制的指令控制部和具有高速緩沖存储器 的高速緩存控制部,并且具有以乱序方式处理进行存储器访问的存储指 令和加载指令,并同时执行多个上述线程的功能,该存储器访问顺序保 证方法具有判定步骤,在由某线程执行了针对上述高速緩冲存储器的存储指令 的处理的情况下,判定是否由具有先行的加载指令和后续的加载指令的 其他线程,在上述先行的加载指令的处理之前执行了针对上述存储指令 的对象地址的数据的上述后续的加载指令,且该后续的加载指令的对象 数据在上述存储指令的处理之前返回到上述指令控制部;指令再执行请求步骤,在判定为上述对象数据在上述存储指令的处 理之前返回到上述指令控制部的情况下,在处理上述先行的加载指令时,向上述指令控制部请求再执行从上述先行的加载指令的下一个指令 开始到上述后续的加载指令为止的指令。
全文摘要
若由某线程的存储处理改写了高速缓存RAM(21)上的数据,则地址一致判定电路(25)检索保持其他线程的请求的读取端口(22),检查是否存在处理已完成、为加载类指令、且该指令的对象地址与存储处理的对象地址一致的请求,如果检测出相应的请求,在从保持最旧的请求的项的下一个项开始到保持上述所检测出的请求的项为止的读取端口(22)的所有项,设置基于存储的指令再执行请求标记。如果进行上述最旧的请求的处理,则指令再执行请求电路(26)针对保持在设置有基于存储的指令再执行请求标记的项的请求,向指令控制部(10)发出指令再执行请求。由此,在SMT处理器中保证线程间的数据更新的顺序性。
文档编号G06F9/46GK101689142SQ200780053369
公开日2010年3月31日 申请日期2007年6月20日 优先权日2007年6月20日
发明者清田直宏 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1