CN1291323C - 实现数据一致性的装置及方法 - Google Patents
实现数据一致性的装置及方法 Download PDFInfo
- Publication number
- CN1291323C CN1291323C CNB031042635A CN03104263A CN1291323C CN 1291323 C CN1291323 C CN 1291323C CN B031042635 A CNB031042635 A CN B031042635A CN 03104263 A CN03104263 A CN 03104263A CN 1291323 C CN1291323 C CN 1291323C
- Authority
- CN
- China
- Prior art keywords
- address
- microprocessor
- data
- new
- unique
- 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.)
- Expired - Lifetime
Links
- 239000000872 buffer Substances 0.000 claims abstract description 90
- 230000015654 memory Effects 0.000 claims abstract description 38
- 238000003860 storage Methods 0.000 claims description 92
- 238000000034 method Methods 0.000 claims description 32
- 238000005457 optimization Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000000052 comparative effect Effects 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 claims 3
- 230000002596 correlated effect Effects 0.000 claims 2
- 238000007599 discharging Methods 0.000 claims 1
- 238000012795 verification Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 5
- 230000001052 transient effect Effects 0.000 description 5
- 241001269238 Data Species 0.000 description 4
- 239000002131 composite material Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
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/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Control By Computers (AREA)
Abstract
一标记地址堆栈(Tagged Address Stack,TAS),用来减少在管线中保证数据一致性所需的地址闩及地址比较器的数目。TAS是由该地址闩分享给微处理器中数据缓冲器共享的一共用装置,该共用装置储存在数据缓冲器中指向数据的一独特存储器地址集合。当独特TAS地址比对一新的载入/储存地址时,所需的地址比较器数目相对的少。假如该新地址与一TAS地址相同,则该新载入/储存操作拴锁与该TAS地址有对应的一独特标记。否则,该新地址将被载入至一处于未使用状态的闩,且该新的载入/储存操作拴锁一跟该未使用状态闩对应的独特标记。假如没有任何闩是处于未使用状态,则管线将一直暂停直到该共用装置有一闩变为未使用状态。将标记存入数据缓冲器而不是将整个地址存入数据缓冲器有助于比较效能的提升。
Description
技术领域:
本发明涉及处理器中地址比较相关的领域,特别涉及一种可以减少用来保证数据一致性与次序的地址闩(address latches)与比较器数目的装置。
背景技术
现代微处理器的内部运作跟汽车工厂的装配线极为相似。一条汽车工厂的装配线会包括许多不同的部门。每个部门都有不同但对组装一台汽车而言却是必要的组装步骤。同样地,微处理器也包括了几个互相连接的阶段来形成所谓的管线(pipeline)。每个在管线上的阶段都有不同但对执行软体程式指令而言却是必要的功能。
在装配线上,许多车子可以一台接一台地进入装配线,然后这些车分别在不同部门组装后离开。使用装配线观念的工厂会比完整组装完一部车才继续组装下一台车的工厂每天有更多的产能。同样地,多个指令一个接一个进入微处理器的管线,然后每个指令在管线上的各阶段被部分执行。管线化的微处理器每秒有更大的执行能力,可以比未管线化的微处理器执行更多的指令。
微处理器最常执行的指令是“载入指令”(load instruction)和“储存指令”(store instruction)两个指令。载入指令是指把数据从存储器取出来放进微处理器中。储存指令是指将数据从微处理器存到存储器去。载入指令和储存指令可以在如上述的管线中的不同阶段中分别存在,而且通常这么做是有利于提升微处理器执行效能。
此外,一般执行载入或储存指令将数据从存储器移出或移入所需花费的时间会比执行非存储器间的搬移指令如“加指令”(add instruction)来的多。假如其他在管线中的指令正好排在载入或储存指令之后,此时在载入或储存指令完成搬移前,其他指令只能等待。直到载入或储存指令完成后,其他指令才能继续执行。这对微处理器执行效能来说是需要避免的。为了避免这样的问题,微处理器会使用数据缓冲器或是数据闩(data latches)来处理。
有一些被称为写入缓冲器(write buffer,WB)的数据缓冲器,用来暂存数据直到该数据可以从微处理器通往存储器的微处理器总线来写入存储器。另一些被称为储存缓冲器(store buffer,SB)的数据缓冲器,是用来暂存数据直到该数据可以被写入高速缓存存储器(cache memory)。还有一些被称为注满缓冲器(fill buffer,FB)或是回应缓冲器(response buffer)的数据缓冲器,用来接收经由总线来到处理器的存储器数据,提供微处理器中的工作中的阶段使用。另外一些称为再执行缓冲器(replay buffer,RB)的数据缓冲器,当数据经过管线中的其他不同阶段,再执行缓冲器被用来暂时保存数据直到该数据到达写入缓冲或是储存缓冲器;或是在数据从注满缓冲器送出到管线工作中阶段后,在该载入数据通过管线中的不同阶段期间,再执行缓冲器暂时保存这些载入数据。
虽然缓冲载入存取数据和允许多个载入/储存数据同时在管线中暂存是不错的作法,但是微处理器却必须保证数据的一致性和在总线上的正确搬移顺序。举例来说,假如一个要在某一个地址上载入数据的载入指令是紧跟在一个要将在同一地址存入数据的储存指令之后,微处理器就必须保证载入指令所得到的数据是由储存指令所储存的该笔数据,而不是目前正在那个地址的数据。也就是说,因为储存指令存有关于该存储器地址的最新数据,但该最新的数据尚未被存入该存储器地址,所以在该地址存储器的内容不是最新的数据。因此,微处理器不是必须等待该最新数据被写入该存储器位置,然后由载入指令取回该最新数据,就是微处理器必须从储存指令经由微处理器内部提供该最新数据给载入指令。
不论微处理器使用哪一种方法将最新数据给载入指令,有一件事是很明确:在载入指令进入管线后,在一些点上,为了确认载入地址是否与任何比该载入地址先进入管线中的储存地址相同,微处理器必须将载入地址跟所有暂存在缓冲器的储存地址逐一做比对。除了上述载入指令紧跟在储存指令的例子需要执行地址比较外,其他还有为了确保数据的一致性也需要做地址比较。
现代的微处理器会为了改善处理效能而装置几十个数据缓冲器来同时处理载入地址或储存地址并不罕见。每一个数据缓冲器也会包括一所对应地址闩或是一缓冲器来储存相关的载入地址或储存地址。随着数据缓冲器及相关地址闩的增加,为了确定地址相符是否发生来确保数据的一致性,因此地址比较器也必然随之增加。一般而言,地址的长度大概是32位或更多。因此,微处理器消耗在相关地址闩及比较器的积体电路面积数量就相当的多。此外,随着比较器的增加,使得利用比较器来执行保证数据一致性的控制逻辑电路所需的复杂度会随着比较器数目成指数增加。
综上所述,我们需要一种可以针对因为微处理器径大量使用数据缓冲器来保证数据一致性所衍生大量地址闩(address latches)及地址比较器的解决方案。
发明内容
本发明承认在任何一段时间内,正在管线上的独特载入/储存地址是相对少数的事实,因此使用在数据缓冲器间分享的地址闩共用装置,并且该地址闩共用装置的地址闩数目会远小于传统微处理器中于每一数据缓冲器所需专用地址闩的总数目。又因地址闩共用装置比较小,所以微处理器只需要跟地址比较器一样多的地址闩在共用装置中。为了达到前述的目标,本发明提供一种装置,该装置特征为减少微处理器管线中用来保证数据一致性的地址闩及地址比较器的数目。该装置包括:一标记地址堆栈(tagged address stock,TAS)。该堆栈还包括有N个独特地址闩,该N个独特地址闩用来储存跟管线中数据缓冲器相关的N个独特地址。每一个地址闩都对应一个独特的TAS标记。本装置还包含连接到TAS的N个地址比较器,这些比较器用来指示是否该N个独特地址与跟管线中新数据处理相关的新地址相同。本装置还包括一连接到N个地址比较器的控制逻辑电路。假如该N个地址比较器指示该新地址跟N个独特地址全部并不相同的话,则控制逻辑电路就会配置N个地址闩中处于未使用状态的一地址闩将该新的地址储存其内,并且使新的数据处理拴锁该所配置的未使用状态地址闩的独特TAS标记。
本发明的另一目的,在于提供一种微处理器。该微处理器包括有多个数据缓冲器。该多个数据缓冲器用来储存被载入/储存地址所指定的数据。该微处理器还包括连接到多个数据缓冲器的一标记地址堆栈(TAS)该标记地址堆栈有用来储存N个独特载入/储存地址的N个项目(item)。每一个项目由一独特标记所定义。该微处理器也包括了一连接到TAS的多个标记闩(tag latches),该标记闩(tag latches)与多个的数据缓冲器对应。每一个标记闩(tag latches)都储存了一个独特标记。这个微处理器也包括连接到多个标记闩(tag latches)的多个标记比较器,该多个比较器用来比较储存在多个标记闩(tag latches)中的N个独特标记。
本发明的再一目的是在提供一种在微处理器中完成数据一致的方法。这个方法包括将一新的存储器地址与一存储器地址集合作比较。而该存储器位置集合的个数是事先已知的。该集合中的每一存储器位置都是不同的。每一个独特的标记都对应到在该集合中的每一个位置。假如该新的地址跟该集合中每一个存储器地址都不相同,而且所有存储器地址集合都在处于使用中状态的时候,本方法会以暂停微处理器来回应该比较的结果。假如该新的地址跟该集合中每一个存储器地址都不相同,但是该集合中至少还有一存储器地址是处于未使用状态的时候,本方法会以将新的地址新增加入该存储器地址集合中来回应该比较的结果。假如该新的地址跟该存储器地址的任一相同的话,本方法会将新的存储器地址和跟这集合中符合的存储器地址位置的独特标记作一个连结,来回应这个比较结果。
本发明的又一目的提供一种微处理器。该微处理器的特征为包括M个数据缓冲器。该M个数据缓冲器是用来储存跟数据传输指令相关的数据,如储存到存储器去或是从存储器载入的数据。这个微处理器包括一由N个地址闩所组成的阵列。该N个地址闩所组成的阵列储存跟数据传输命令相关的N个独特存储器地址,并且该N个地址闩所组成的阵列由M个数据缓冲器共同分享使用,N会远小于M。这个微处理器也包含N个跟该阵列相连的地址比较器。该N个地址比较器是用来比较N个独特存储器地址与一新数据传输操作的新存储器地址。该微处理器更包括与N个地址比较器连接的控制逻辑电路。假如控制逻辑电路从N个比较器侦测到该新的存储器地址是在第N+1个独特存储器位置时,控制逻辑电路暂停数据传输命令直到在阵列中N个地址闩之一变成可使用状态。
本发明一个优点在于本发明可以减少微处理器中用来保证数据一致性的地址闩和地址比较器数目。另一个本发明的优点是控制逻辑电路只需检验几种形式简单且数量少的比较结果。因此,在运算时间上便占有相当的优势。又一个本发明优点是因为本发明可以利用较少位数的标记作快速比较,而非将整个存储器地址慢慢比较。所以管线操作的最佳化就可以被实现。以上这些的优点都可以借由限制独特处理地址数目的方法中得到,虽然在某些时候会有一些等待处理的运算。观察本发明可以发现,独特地址的数目也就是TAS的长度可以选择一个在大部分时间对执行不会有重大影响的数字,而且该数字通常相当小。
为使本发明的目的、构造特征及其功能有进一步的了解,配合附图详细说明如下:
附图说明
图1是为一相关技术的微处理器的方框图。
图2是为根据本发明一有标记地址堆栈(TAS)的微处理器方框图。
图3是为图2中根据本发明的微处理器操作流程图。
图4是为图2中根据本发明的微处理器操作流程图。
图5是为用来说明图二中根据本发明的微处理器操作的三表格。
其中附图标记:
100传统微处理器
102指令解码器 104暂存器文件
106地址产生器 108高速缓冲存储器
112算术逻辑单元(ALU) 114总线接口单元(BIU)
116地址比较器 118控制逻辑电路
122储存缓冲器(SB) 124再执行缓冲器(RB)
126注满缓冲器(FB) 128写入缓冲器(WB)
132储存缓冲器地址闩 134再执行缓冲器地址闩
136注满缓冲器地址闩 138写入缓冲器地址闩
142载入/储存指令信号 144处理器总线
146新的载入/储存地址 148匹配信号
200本发明微处理器
102指令解码器 104暂存器文件
106地址产生器 108高速缓冲存储器
112算术逻辑单元(ALU) 114总线接口单元(BIU)
122储存缓冲器(SB) 124再执行缓冲器(RB)
126注满缓冲器(FB) 128写入缓冲器(WB)
142载入/储存指令信号 144处理器总线
146新的载入/储存地址
216地址比较器 218控制逻辑电路
232储存缓冲器标记闩 234再执行缓冲器标记闩
236注满缓冲器标记闩 238写入缓冲器位标记闩
252标记地址堆栈(TAS) 248匹配信号
254标记比较器 256管线最佳化控制逻辑电路
262TAS地址 264暂停信号
272状态信息 274更新信号
276标记信号
具体实施方式
在详细说明本发明之前,先说明传统微处理器的处理方式,这对通盘了解本发明整个技术特征和优点是很有帮助的。
图1为一相关技术的传统微处理器100的方框图。微处理器100包括一指令解码器102(instruction decoder)。指令解码器102从指令高速缓存存储器(未显示于图上)接收指令,并且将指令解码。特别是指令解码器102会将载入指令和储存指令进行解码后进入微处理器管线。当指令解码器102在解码一载入指令或储存指令时,指令解码102会在载入/储存指令信号142上产生一个真值。
微处理器100也包括连接到指令解码器102的一暂存器文件(register file)104。暂存器文件104由多个暂存器所组成。尤其是暂存器文件104所包括多个暂存器通常用来接收载入指令所指定的数据。这些暂存器也储存被储存指令写入存储器的数据。此外,暂存器文件104所包括多个暂存器也用来产生载入地址和储存地址。
微处理器100也包括与该暂存器文件104连接的一地址产生器106。地址产生器106产生由指令解码器102解码后的指令所指定的存储器地址。尤其是地址产生器106产生一新的载入/储存指令146存储器地址。地址产生器106是根据载入/储存指令指定的运算元而产生该新的载入/储存指令地址146,一些新的载入/储存指令运算元也许会存放在暂存器文件104的暂存器中。
微处理器100也包括连接到该地址产生器106的一数据高速缓存存储器108。数据高速缓存存储器108接收一新的载入/储存指令地址146,并检查该新的载入/储存指令地址146是否己在数据高速缓存存储器108中。
微处理器100也包括连接到数据高速缓存存储器108的一算术逻辑单元(arithmetic logic unit,ALU)112。ALU 112对由数据高速缓存存储器108、暂存器文件104中的暂存器、或是指令本身所提供的数据执行算术和逻辑运算。
微处理器100也包括连接到ALU 112的多个储存缓冲器(SB)122。该多个储存缓冲器122会暂时保存一储存数据,直到该储存数据可以被入数据高速缓存存储器108。如图1所示的传统微处理器100,就有八个储存缓冲器122。
微处理器100也包括一连接到ALU 112的多个写入缓冲器(WB)128。写入缓冲器组128从ALU 112、数据高速缓存存储器108或是暂存器文件104接收储存数据,并暂时保存这些储存数据直到这些储存数据可以被写入存储器(未显示于图上)。如图1所示的微处理器,就有八个写入缓冲器组128。
微处理器100也包括一连接到多个写入缓冲器128的总线接口单元(businterface unit,BIU)114。BIU 114作为微处理器100到处理器总线144的接口。处理器总线144将微处理器100连接到外部的装置,诸如存储器控制器、系统存储器、绘图存储器、输出入装置、或是其他的微处理器。BIU 114接收从写入缓冲器128来的储存数据,并且把储存数据经由处理器总线144写入到外部装置。
微处理器100也包括连接到BIU 114与数据高速缓存存储器108的多个注满缓冲器(fill buffer,FB)126。多个注满缓冲器126接收外部装置经由BIU 114的载入数据,并且暂时保存这些数据直到这些数据可以写入数据高速缓存存储器108或是暂存器文件104中。如图1所示的微处理器,就有八个注满缓冲器126。
微处理器100也包括一连接到数据高速缓存存储器108的多个再执行缓冲器(replay buffer,RB)124。当一储存数据进入微处理器100的管线时,再执行缓冲器(RB)124暂时保存该储存数据,直到该储存数据到达该写入缓冲器128或储存缓冲器122。再执行缓冲器124也可以暂时保存从注满缓冲器126来的载入数据。再执行缓冲器124对微处理器100主管线的支线特别有用,比如说假如数据高速缓存存储器108有它自己专用的管道支线的话。如图1所示的微处理器,就有八个再执行缓冲器124。
微处理器100也包括多个SB地址闩132。该SB地址闩132暂时保存在储存缓冲器122的暂存数据储存地址。微处理器100有八个FB地址闩132,也就是说,每个储存缓冲器122都对应到一SB地址闩132。
微处理器100也包括多个WB地址闩138。该WB地址闩138暂时保存在写入缓冲器138的暂存数据储存地址。微处理器100包括八个WB地址闩138,也就是说,每个载入缓冲器128都对应到一WB地址闩138。
微处理器100也包括多个FB地址闩136。该FB地址闩136暂时保存在注满缓冲器126的暂存数据载入地址。微处理器100包括八个FB地址闩136,也就是说,每个注满缓冲器126都对应到一FB地址闩136。
微处理器100也包括多个RB地址闩134。该RB地址闩134暂时保存在再执行缓冲器位124的储存或载入数据的储存或载入地址。微处理器100包括八个FB地址闩134,也就是说,每个再执行缓冲器124都对应到一FB地址闩134。
微处理器100也包括多个地址比较器116。该地址比较器组116连接到地址产生器106、储存缓冲器地址闩132、再执行缓冲器地址闩134、注满缓冲器地址闩136及载入缓冲器地址闩138。如图1所示的微处理器100包括了有32个地址比较器116。每一个地址比较器116接收新的载入/储存地址146。此外,每一个地址比较器116也各自接收储存在32个各式缓冲器地址闩(132-138)的地址。微处理器100由高速缓存线的倍数侦测载入与/或储存地址间的冲突。微处理器100中常见的数据高速缓存存储器108是具有32位组高速缓存线的高速缓存存储器108。于是,新的载入/储存地址146中最重要的27个位会被跟储存在各地址闩(132-138)的地址比较。因此,地址比较器116是27位的比较器。地址比较器116产生32个匹配信号148来标示是否新的载入/储存地址146与被比较的数据缓冲器地址相同。假如新的载入/储存地址146与被比较的数据缓冲器地址相同,则地址比较器116将匹配信号148的值设定为真值。否则,地址比较器116将匹配信号148的值设定为假值。
微处理器100也包括连接到地址比较器116的一控制逻辑电路118。该控制逻辑电路118接收匹配信号148并利用该匹配信号148来保证在微处理器100中载入和储存指令的数据一致性。也就是说,控制逻辑电路118使用匹配信号148来保证数据的一致性,使得在微处理器100管线中的载入/储存的动作或处理可以正确地执行。
图2为根据本发明使用一标记地址堆栈(TAS)252微处理器200的方框图。在此实施例中,微处理器200是一种管线化的微处理器,有能力对x86架构如英特尔(Intel)的Pentium III或Pentium IV指令集中的指令进行解码和执行。
如图2所示的微处理器200的部分跟图1所示的微处理器100相似,因此给予相同元件相同的编号。尤其是指令解码器102、暂存器文件104、地址产生器106、数据高速缓存存储器108、ALU 112、储存缓冲器122、再执行缓冲器124、注满缓冲器126、写入缓冲器128、BIU 114及处理器总线144,都是微处理器100和微处理器200相同的地方。
然而,应用本发明的微处理器200并未使用包括如图1所示的为数众多的各式地址闩(132-138)。微处理器200用一标记地址堆栈(TAS)252取代地址闩(132-138)。此外,微处理器200包括如同地址比较器116的地址比较器216。但是微处理器200的地址比较器216的数目远少于微处理器100的地址比较器116。原因请见下述。
本案发明人观察到,虽然如图1的微处理器100传统的微处理器可能有大约30几个的各式数据缓冲器122-128,但是在某给定的时间下,跟各式数据缓冲器122-128连接的各式地址闩132-138,可能只有1到6个独特的高速缓存线地址。从研究分析中指出,对一个相似于微处理器100的微处理器而言,在任何时间内,储存在地址闩132-138独特高速缓存线地址的最大值是6,而且只占全部时间的0.01%。
因此,本案发明人认为任何使用这么多地址闩132-138和地址比较器116浪费了处理器100大量的空间。此外,本案发明人也认为:在微处理器100中,控制逻辑电路118解读大量的匹配信号148来维持数据一致性,在时间及复杂度上的成本相当地高。所以,本案发明人以TAS 252取代图1中的各式地址闩132-138及比较器116。TAS 252储存比较少量的独特缓冲器地址,以及用,来比对新的载入/储存指令地址146与储存在TAS 252中数个独特地址的少量地址比较器216。详述如下。
TAS 252包括一地址闩阵列。在本实施例中,TAS 252包括一由八个地址闩组成的阵列。在TAS 252的地址闩也被称作一个项目。每一个地址闩对应到用来标示该地址闩在阵列中位置的一标记或一索引。在这个有八个项目的实施例中,标记是3个位。此外,连接到TAS 252的控制逻辑电路218用来更新一状态信息272。该状态信息272确认TAS 252的每一个项目所暂存的数据缓冲器地址在微处理器200管线中是处于使用中状态,或是处于可以储存一新独特管线地址的未使用状态。
运用本发明的微处理器200包括一连接到地址产生器106和TAS 252的多个地址比较器216。在本实施例中,微处理器200包括为了比较储存在TAS 252八个独特数据缓冲器地址的八个地址比较器216。这八个储存在TAS 252的独特数据缓冲器地址表示成TAS地址(0:7)262,并且提供给地址比较器216。八个TAS地址(0:7)262与新的载入/储存指令地址146比较的结果,由地址比较器216产生八个匹配信号表示,该匹配信号表示成匹配(0:7)248。
根据匹配信号248以及由控制逻辑电路218来更新的TAS项目使用中/未使用的状态信息272,控制逻辑电路218产生-3位的标记信号276。如果新的载入备存指令地址146与任何一个处于使用状态的TAS地址262相同时,控制逻辑电路218会产生一对应于该真值匹配信号248的二进位的标记信号276。举例来说,假如匹配信号(5)248是真值且TAS 252的项目五是处于使用中状态,则控制逻辑电路218在标记信号276产生一二进位值b’101。然而,假如没有任何TAS地址262跟新的载入/储存指令地址146相同,也就是说,所有的匹配信号都是假值时,如果还有处于未使用状态的TAS 252项目时,控制逻辑电路218在标记信号276产生一对应到该未使用项目的值。
假如没有任何TAS地址262跟新的载入/储存指令地址146相同,而且TAS 252所有的项目都处于使用中状态,则控制逻辑电路218在暂停信号264上产生一个真值,来暂停微处理器200管线。由于TAS 252已经满载而且没有多余的独特数据缓冲器地址可以执行到数据缓冲器,所以控制逻辑电路218只能暂停管线。如上述讨论的,TAS 252的长度被选择会造成暂停条件的可能性是非常非常地小,因此对效能而言几乎是无害的。限制管线中同时存在未完成的载入储存指令数目或许会对效能带来些许的影响,但是本发明却可借由减少地址闩及地址比较器的数目,大大节省宝贵的集成电路面积。这种减少地址闩及地址比较器的数目的方式,也可简化控制逻辑电路的复杂度,使得在时间的控制上,得到许多的优势。
控制逻辑电路218也根据匹配信号248及由控制逻辑电路218来更新的TAS使用中/未使用状态信息272产生一更新信号274。TAS 252接收新的载入/储存指令地址146。当新的载入/储存指令地址146和TAS地址262没有一个相同,而且还有一个TAS 252项目是未使用状态时,控制逻辑电路218在更新信号274产生一真值,使将新的载入/储存指令地址146写入由标记信号276指定的TAS 252项目。
微处理器200也包括了一系列的标记地址闩,如SB标记闩232、RB标记闩234、FB标记闩236及WB标记闩238的多个标记地址闩。每一个SB标记闩232储存一暂时保存储存数据所对应储存缓冲器122存储器地址的TAS 252项目标记。每一个RB标记闩234储存一暂时保存载入/储存数据所对应再执行缓冲器124存储器地址的TAS 252项目标记。每一个FB标记闩236储存一暂时保存载入数据所对应注满缓冲器126存储器地址的TAS 252项目标记。每一个WB标记闩238储存一暂时保存储存数据所对应写入缓冲器128存储器地址的TAS 252项目标记。
微处理器200也包括了连接到标记闩232-238的多个三位长度标记比较器254。微处理器200也包括了连接到多个标记比较器254的一管线最佳化控制逻辑电路256。标记比较器254比较储存在各式标记闩232-238标记间的不同,并且产生一比较结果给管线最佳化控制逻辑电路256。
本发明的一个优势在于微处理器300可以利用管线最佳化控制逻辑电路256,借由使用标记比较器254比较在标记闩232-238的三位长的标记,而不是比对储存在传统微处理器100里地址闩132-138的27位的数据缓冲器地址,来达到效能最佳化比较。
举例来说,假设一载入操作来到管线,而载入地址是跟一储存操作的储存地址一样。而且储存操作是在载入操作之前。也就是说载入和储存地址是一样。为了达到数据的一致性,微处理器必需保证载入操作所接收的数据是储存操作所存入的,而不是载入目前正在那个地址的数据。在习用的微处理器中,一个简单的解决方案是:将载入操作暂停在一阶段内。等到使用相同地址的所有储存操作从管线中执行完毕后,再进行该载入操作。这个简单的作法,造成了时间的浪费:大量的时间浪费在微处理器中长位(27位)储存地址的比较,以及大量的集成电路面积被消耗在大量地址比较器上。传统方法的缺点是载入操作会仍被一直暂停,直到所有储存操作被执行完毕。甚至是在这个相同地址的储存操作也许已经完成很久之后,还在等待其他储存操作的完成,结果造成在完成该相同地址的储存动作后,载入操作被不必要的拖延。
本发明的较有效率的替代解决方案是:每当一储存操作在管线中被执行后,就使用标记比较器254比对载入操作标记(也就是前述的中一个适合的FB标记闩236)与每一个储存在SB标记闩232的储存操作标记。只要当相同地址的储存操作被执行后,管线最佳化控制逻辑电路256就让载入操作执行。因为该比较非常小(也就是本发明实施例中的3位相对于传统系统的27位)而且快,降低了比较所造成时间浪费的可能性,所以最佳化比较是可能的。
图3是为图2中根据本发明的微处理器200操作流程图的图示说明。本流程图由方框302开始。
在方框302,当一新的载入或储存操作进入管线中,地址产生器106产生一新的载入/储存指令地址信号146。下一步执行判断方框304。
在判断方框304中,根据使用/未使用状态信息272及由地址比较器216产生的匹配信号248,控制逻辑电路218确认是否新的载入/储存指令地址146跟储存在TAS 252中的任一使用中的TAS地址262相同。如为是,下一步执行方框306,如为否,下一步执行方框308。
在执行方框306中,控制逻辑电路218产生对应该相同地址TAS 252项目的一标记信号276(也就是匹配信号248中为真值者),并且新的载入或储存操作闩住地址相同的标记信号276。流程在此结束。
在判断方框308中,控制逻辑电路218检验使用/未使用状态信息272以确认是否TAS 252有任何处于未使用状态的项目可以储存新的载入/储存指令地址信号146。既然控制逻辑电路218决定整个流程是从方框304到方框308,也就是说新的载入/储存指令地址信号146跟任何一个处于使用中状态的TAS地址262不一样。假如TAS有一处于未使用的项目,则执行方框312,否则执行方框314。
在执行方框312中,控制逻辑电路218分配-TAS 252处于未使用状态的项目给该新操作,并且将新的载入/储存指令地址146载入到该未使用状态的项目。尤其是,控制逻辑电路218根据使用/未使用信息状态272选择一未使用状态的项目,并产生该未使用TAS 252的一标记信号276,并且将更新信号274设定为真使新的载入/储存指令地址146载入到所选择的TAS 252项目。控制逻辑电路218也将更新使用/未使用状态信息272,使所选择的TAS 252项目更改成使用中状态。此外,新的操作闩锁最新的该标记信号276。流程在方框312结束。
在执行方框314中,控制逻辑电路218将暂停信号264设定为真来暂停微处理器管线,直到TAS 252有一项目变成未使用状态,可用来保持数据的一致性。此外,控制逻辑电路218暂停任何后来的新载入/储存操作,直到有一TAS 252项目变为非使用状态。流程在方框314结束。
请参阅图4,图4是为图2中根据本发明的微处理器操作流程图的图示说明。本流程图由方框402开始。
在方框402中,各式数据缓冲器122-128之一被释放,常见的原因是载入或储存操作撤回。下一步执行决定方框404。
在判断方框404中,控制逻辑电路218确认是否有其他数据缓冲器122-128正在使用于方框402所释放数据缓冲器的标记。如为是,流程结束;如为否,下一步执行方框406。
在方框406中,控制逻辑电路218将在方框402中被释放出来数据缓冲器标记指定的TAS 252项目状态信息272由使用中状态变更成未使用状态。此外同时间,如果控制逻辑电路218在每次方框314执行使暂停信号264设定为真、则控制逻辑电路218就会执行方框312,将刚刚释放的TAS 252项目分配给已被暂停载入/储存的操作。流程在方框406结束。
图5是三个表格,以说明图2所示根据本发明的微处理器200。这三个表格分别表示三个微处理器200的例子或实施例。CASE 1图示说明当新的载入/储存指令地址146跟一储存在TAS 252且处于使用中状态的存储器地址相同时,微处理器200的处理。CASE 2图示说明当新的载入/储存指令地址146跟任一储存在TAS 252且处于使用中状态的存储器地址不相同且有一TAS 252项目为未使用状态时,微处理器200的处理。CASE 3图示说明当新的载入/储存指令地址146跟任一储存在TAS 252ff处于使用中状态的存储器地址不匹配,并且没有TAS 252项目为未使用状态时,微处理器200的处理。
在CASE 1中,新的载入/储存指令地址146有一“0x4444444”的值。TAS 252项目0是处于使用中状态并且暂存一值“0x1234567”。TAS 252项目1是处于使用中状态并且暂存一值“0x2222222”。TAS 252项目2是处于使用中状态并且暂存一值“0x4444444”。TAS 252项目3是处于使用中状态并且暂存一值“0x7777777”,TAS 252项目4是处于使用中状态并且暂存一值“0x7654321”。TAS 252项目5和7是处于未使用状态。TAS 252项目6是处于使用中状态并且暂存一值“0x1212121”。
在图3的方框302中,地址比较器216在匹配信号(2)248上产生一真值,以及在匹配信号(0:1)及(3:7)248上产生一假值。经过图3的方框304,控制逻辑电路218确认新的载入/储存指令地址146跟使用中的TAS 252项目2相同。经过图3的方框306,控制逻辑电路218在标记信号276上产生一二进位值“b’010”,并且在暂停信号264及更新信号274上产生一假值。
在CASE 2中,新的载入/储存指令地址146的值为“0x6666666”。TAS252如CASE 1的相同内容。在图3的方框302,地址比较器216在匹配信号(0:7)248产生一假值。经过图3的方框304,控制逻辑电路218确认新的载入/储存指令地址146跟TAS 252的项目全部不相同。经过图3的方框308,控制逻辑电路218确认TAS 252项目5是处于未使用状态。经过图3的方框312,控制逻辑电路218在标记信号276产生一二进位值“b’101”、在更新信号274产生一真值,使新的载入/储存指令地址146载入到TAS 252项目5、以及在暂停信号264上产生一假值。
在CASE 3中,新的载入/储存指令地址146有如同CASE 2中“0x6666666”的值。TAS 252除了项目5的值为“0x5555555”及项目7的值为“0x3333333”,以及所有的TAS 252项目都是处于使用中的状态外,其馀部分与CASE 1和CASE 2内容相同。经过图3的方框302,地址比较器216在匹配信号(0:7)248产生假值。经过图3的方框304,控制逻辑电路218确认新的载入/储存指令地址146跟TAS 252的任一项目都不相同。经过图3的方框308,控制逻辑电路218确认没有任何TAS 252项目是处于未使用状态。经过图3的方框314,控制逻辑电路218在更新信号274产生一假值,以及在暂停信号264上产生一真值来暂停微处理器200管线,直到有-TAS 252变成未使用状态。
虽然本发明目标、特征、优点皆已在上文中被详细描述,但仍有其他的具体实施例。举例来说,标记地址堆栈的长度是可以依微处理器实际需求而加以改变。尤其是TAS 252闩的数目可依微处理器里数据缓冲器的数目、管道的深度、微处理器是否超纯量与可调性程度、以及其他有关因素所调整。此外,本发明可随着数据缓冲器地址变化的长度与颗粒性作调整。此外,标记闩和标记比较器可用来执行任何数目的管线最佳化。
Claims (29)
1.一种减少用于管线中维持数据一致性的地址闩及地址比较器数目的装置,该装置包含有:
一标记地址堆栈,有N个用来储存与在管线中数据缓冲器相关的N个独特地址的闩,每一个该闩都对应到一个独特标记地址堆栈标记;
N个地址比较器,与该标记地址堆栈连接,用来标示N个独特地址是否有与在管线中与一新数据传输操作相关的一新地址相同;以及
一控制逻辑电路,与该N个地址比较器连接,用于在该N个地址比较器指示该新地址与该N个独特地址全部都不相同时,配置N个地址闩中的一处于未使用状态地址闩来储存该新地址,并且使该新数据传输操作拴锁该处于未使用状态地址闩所对应的该独特标记地址堆栈标记,其中N为正整数。
2.如权利要求1所述的装置,其特征在于该控制逻辑电路用于在该N个地址比较器指示该新地址与该N个独特地址之一相同时,使该新数据传输操作拴锁该相同独特地址所对应的标记地址堆栈标记。
3.如权利要求2所述的装置,其特征在于该控制逻辑电路用于在该N个地址比较器指示该新地址与该N个独特地址全部不相同,且该N个地址闩没有一个是处于未使用状态时,暂停管线执行。
4.如权利要求3所述的装置,其特征在于该控制逻辑电路用于在该储存在N个地址闩之中的该独特地址不再被任何管线中的该数据缓冲器使用时,释放该地址闩。
5.如权利要求1所述的装置,其特征在于所述的独特标记地址堆栈标记实际上是由一远比该独特地址位数少的位所构成。
6.如权利要求5所述的装置,其特征在于,其中还包括:
多个标记闩,与该标记地址堆栈相连,每一标记闩都与该数据缓冲器之一相关,用来储存一独特标记地址堆栈标记,其中该独特标记地址堆栈标记对应于储存在标记地址堆栈中N个独特地址之一。
7.如权利要求6所述的装置,其特征在于,其中还包括:
多个标记比较器,连接到该多个标记地址闩,用来比较该储存在多个标记闩的多个独特标记地址堆栈标记。
8.如权利要求7所述的装置,其特征在于,其中还包括:
一最佳化控制逻辑电路,与该多个标记比较器连接,利用该标记比较器比较储存在多个标记闩的多个独特标记地址堆栈标记,以执行管线传输操作最佳化。
9.一种微处理器,其特征在于,包括有:
多个数据缓冲器,用来储存由载入/储存地址所指定的数据;
一标记地址堆栈,与数据缓冲器组连接,有N个项目,用来储存N个独特载入/储存地址,其中每个项目都对应到N个独特标记之一;
多个标记闩,与该标记地址堆栈相连,对应多个数据缓冲器,每一标记闩用来储存该独特标记之一;以及
多个标记比较器,连接到该多个标记闩,用来比较该储存在多个标记闩的N个独特标记,其中,N为正整数。
10.如权利要求9所述的微处理器,其特征在于,还包含:
一最佳化逻辑电路,连接多个标记比较器,借由多个标记比较器比较储存在多个标记闩中的N个独特标记,以最佳化在微处理器中数据传输操作进入多个数据缓冲器的程序。
11.如权利要求9所述的微处理器,其特征在于,还包含:
一控制逻辑电路,连接到该标记地址堆栈,用于更新每一个标记地址堆栈项目是处于使用还是未使用状态的一状态信息。
12.如权利要求11所述的微处理器,其特征在于所述的控制逻辑电路用于利用该状态信息确认是否一新的载入/储存地址跟储存在标记地址堆栈且处于使用状态的N个独特载入/储存地址中之一相同。
13.如权利要求12所述的微处理器,其特征在于该控制逻辑电路用于在该新的载入/储存地址与处于使用中状态的N个载入/储存地址之一相同时,使辨识N个项目之一的N个独特标记之一被存放在该多个标记闩之一中,该项目储存使用中状态且地址相同的该N个储存/载入地址之一。
14.如权利要求13所述的微处理器,其特征在于该控制逻辑电路用于在该新的载入/储存地址跟处于使用状态的N个独特载入/储存地址全部不相同时,配置该一处于未使用状态项目,并将该新的载入/储存地址载入至该项目。
15.如权利要求12所述的微处理器,其特征在于,还包括:
多个地址比较器,连接到该标记地址堆栈,用来比较该新的载入/储存地址与该N个独特载入/储存地址,按结果确认是否该新的载入/储存地址与该处于使用状态的N个独特载入/储存地址之一相同。
16.一种在微处理器中实现数据一致性的方法,该方法包括以下步骤:
比较一新存储器地址与一存储器地址集合,该集合长度是事先已知的,每一个该集合中的存储器地址是独特的,其中一独特的标记对应在集合中的每一位置;
假若该新的存储器地址跟任何在该集合的该存储器地址不相同,并且所有的该存储器地址都在使用中,则暂停该微处理器以回应该比较结果;
假若该新的存储器地址跟任何在该集合的存储器地址不相同,但是至少有一该存储器地址是处于未使用状态,将该新的存储器地址加入该集合中以回应该比较结果;以及
假若该新的存储器地址跟任何在该集合的该存储器地址之一相同,连结该新的存储器地址与在该集合中对应该相同地址的存储器地址位置的该独特标记,以回应该比较结果。
17.如权利要求16所述的方法,其特征在于所述的集合的事先已知的个数远小于在微处理器中用来储存由该集合所指定数据的数据缓冲器数目。
18.如权利要求16所述的方法,其特征在于,还包括:
当在该集合中该存储器地址的一变成未使用状态,不暂停微处理器。
19.如权利要求16所述的方法,其特征在于,还包括:
在新的存储器地址加入该集合中后,连结该独特标记到该新存储器地址所加入在该集合中的位置。
20.如权利要求16所述的方法,其特征在于,还包括:
假若没有其他数据缓冲器正使用该独特标记所指向的存储器地址,将集合中该存储器地址转成未使用状态,以回应释放储存该存储器地址所指定数据的数据缓冲器。
21.如权利要求16所述的方法,其特征在于所述的连结包括:将该独特标记储存到微处理器的一闩中,其中该闩对应到储存该新存储器地址所指定数据的数据缓冲器。
22.如权利要求16所述的方法,其特征在于所述的暂停包括暂停一跟该存储器地址相关的数据传输操作。
23.如权利要求22所述的方法,其特征在于所述的暂停包括暂停在该跟新存储器地址相关的数据传输操作之后的一数据传输操作。
24.一种有M个数据缓冲器的微处理器,该M个缓冲器储存数据传输操作中从一存储器地址或到一存储器地址的相关数据,包含有:
一由N个地址闩所组成的阵列,该阵列由M个地址缓冲器分享使用,用来储存N个跟数据传输操作相关的独特存储器地址,其中N远小于M,
N个地址比较器,连接到该阵列,用来比较该N个独特存储器地址及一数据传输操作中新的存储器地址;以及
一控制逻辑电路,连接到N个地址比较器,用于在从N个地址比较器中确定是该新存储器地址是第N+1个独特存储器地址时,暂停该新数据传输操作直到在该阵列中有一地址闩变成未使用状态,其中,N、M为正整数。
25.如权利要求24所述的微处理器,其特征在于,还包括有:
M个标记闩,每个标记闩连接到所对应的M个数据缓冲器,并且每个标记闩用来储存一阵列索引,该索引指向对应N个独特存储器的一地址所储存M个数据缓冲器之一的数据的地址闩。
26.如权利要求25所述的微处理器,其特征在于所述的控制逻辑电路进一步配置使索引存入到M个标记闩之一。
27.如权利要求26所述的微处理器,其特征在于在该N个地址比较器指示该新存储器地址与储存在该阵列中N个独特存储器地址全部不相同时,被存入M个标记闩之一的该索引指向该阵列N个地址闩中处于未使用状态的一个地址闩。
28.如权利要求27所述的微处理器,其特征在于在该N个地址比较器指示该新存储器跟地址与储存在该阵列中N个独特存储器地址全部不相同时,该控制逻辑电路将该新存储器地址载入到阵列的该索引中。
29.如权利要求27所述的微处理器,其特征在于在该N个地址比较器指示该新存储器地址与储存在该阵列中N个独特存储器地址之一相同时,被存入该M个标记闩之一的索引指向该阵列N个地址闩中的地址相同并处于使用中状态的地址闩。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/227,570 | 2002-08-22 | ||
US10/227,570 US6862670B2 (en) | 2001-10-23 | 2002-08-22 | Tagged address stack and microprocessor using same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1431599A CN1431599A (zh) | 2003-07-23 |
CN1291323C true CN1291323C (zh) | 2006-12-20 |
Family
ID=22853611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031042635A Expired - Lifetime CN1291323C (zh) | 2002-08-22 | 2003-01-31 | 实现数据一致性的装置及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6862670B2 (zh) |
EP (1) | EP1391811A3 (zh) |
CN (1) | CN1291323C (zh) |
TW (1) | TWI233015B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050166031A1 (en) * | 2002-04-26 | 2005-07-28 | Holmberg Anders P. | Memory access register file |
US7389402B2 (en) * | 2005-06-07 | 2008-06-17 | Advanced Micro Devices, Inc. | Microprocessor including a configurable translation lookaside buffer |
US20080201531A1 (en) * | 2006-09-29 | 2008-08-21 | Kornegay Marcus L | Structure for administering an access conflict in a computer memory cache |
US20080082755A1 (en) * | 2006-09-29 | 2008-04-03 | Kornegay Marcus L | Administering An Access Conflict In A Computer Memory Cache |
US8452944B2 (en) * | 2009-05-22 | 2013-05-28 | Canon Kabushiki Kaisha | Information processing apparatus and information processing method |
JP5650441B2 (ja) * | 2010-06-07 | 2015-01-07 | キヤノン株式会社 | 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム |
KR102358177B1 (ko) | 2015-12-24 | 2022-02-07 | 에스케이하이닉스 주식회사 | 제어회로 및 제어회로를 포함하는 메모리 장치 |
US11082043B2 (en) | 2014-10-28 | 2021-08-03 | SK Hynix Inc. | Memory device |
KR102260369B1 (ko) | 2014-10-28 | 2021-06-03 | 에스케이하이닉스 주식회사 | 보정 회로 및 이를 포함하는 보정 장치 |
KR102515924B1 (ko) * | 2016-04-19 | 2023-03-30 | 에스케이하이닉스 주식회사 | 미디어 컨트롤러 및 이를 포함한 데이터 저장 장치 |
US11755255B2 (en) | 2014-10-28 | 2023-09-12 | SK Hynix Inc. | Memory device comprising a plurality of memories sharing a resistance for impedance matching |
US10067903B2 (en) | 2015-07-30 | 2018-09-04 | SK Hynix Inc. | Semiconductor device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5584003A (en) * | 1990-03-29 | 1996-12-10 | Matsushita Electric Industrial Co., Ltd. | Control systems having an address conversion device for controlling a cache memory and a cache tag memory |
US5835967A (en) * | 1993-10-18 | 1998-11-10 | Cyrix Corporation | Adjusting prefetch size based on source of prefetch address |
US6021471A (en) * | 1994-11-15 | 2000-02-01 | Advanced Micro Devices, Inc. | Multiple level cache control system with address and data pipelines |
EP0803095A1 (en) * | 1994-10-14 | 1997-10-29 | Silicon Graphics, Inc. | Indexing and multiplexing of interleaved cache memory arrays |
US5740416A (en) * | 1994-10-18 | 1998-04-14 | Cyrix Corporation | Branch processing unit with a far target cache accessed by indirection from the target cache |
US5987561A (en) * | 1995-08-31 | 1999-11-16 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle |
US5897666A (en) * | 1996-12-09 | 1999-04-27 | International Business Machines Corporation | Generation of unique address alias for memory disambiguation buffer to avoid false collisions |
JP3729064B2 (ja) * | 2000-11-29 | 2005-12-21 | 日本電気株式会社 | データ依存関係検出装置 |
-
2002
- 2002-08-22 US US10/227,570 patent/US6862670B2/en not_active Expired - Lifetime
- 2002-10-18 TW TW091124004A patent/TWI233015B/zh not_active IP Right Cessation
-
2003
- 2003-01-31 CN CNB031042635A patent/CN1291323C/zh not_active Expired - Lifetime
- 2003-06-26 EP EP03254046A patent/EP1391811A3/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US6862670B2 (en) | 2005-03-01 |
EP1391811A2 (en) | 2004-02-25 |
US20030079115A1 (en) | 2003-04-24 |
TWI233015B (en) | 2005-05-21 |
CN1431599A (zh) | 2003-07-23 |
EP1391811A3 (en) | 2006-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1291323C (zh) | 实现数据一致性的装置及方法 | |
CN1113300C (zh) | 半导体装置及计算机系统 | |
CN1222868C (zh) | 多线程流水线指令解码器的方法和设备 | |
CN1397887A (zh) | 一种将储存数据重新导向的虚拟集合高速缓存 | |
CN1282089C (zh) | 控制串行快闪存储器中适当执行的装置和方法及相应芯片 | |
CN1109967C (zh) | 多线程处理器中指令和关联读取请求的后台完成 | |
CN1088215C (zh) | 不按顺序执行读写指令的存储器控制器 | |
CN100342325C (zh) | 减少多线程处理器中寄存器文件端口的方法和装置 | |
CN1296827C (zh) | 一种使用数据地址增加组相关存储器的访问速度的方法 | |
CN1900919A (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
CN1029047C (zh) | 具有把组块脉冲式操作转换为流水线操作装置的数据处理系统 | |
CN100341009C (zh) | 在管线微处理器使用卷标以执行结合写入的装置及方法 | |
CN1208723C (zh) | 处理有序数据请求到存储器的方法及设备 | |
CN1617112A (zh) | 提供功率优化的高速缓冲存储器组选择的方法和系统 | |
CN1717663A (zh) | 管理缓存旁路的方法和装置 | |
CN88101302A (zh) | 分布处理系统中处理数据用的方法与装置 | |
CN1838091A (zh) | 缓冲高速缓冲存储器要求的处理器与该缓冲存储器及方法 | |
CN1105134A (zh) | 分类系统和方法 | |
CN1625732A (zh) | 使用猜测来源操作数以绕过装载/储存操作的系统与方法 | |
CN1140869C (zh) | 一种环绕式缓冲器以及在其中确定项目顺序优先级的方法 | |
US20030074537A1 (en) | Method and apparatus for indexing a cache | |
CN1819544A (zh) | 一种基于bitmap表的缓存管理方法 | |
CN1816802A (zh) | 用于准确的指针识别的处理器体系结构 | |
CN1777875B (zh) | 指令高速缓存管理的方法、高速缓冲存储器以及集成电路 | |
CN1149472C (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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20061220 |