CN1136681A - 改进型编址方法和系统 - Google Patents

改进型编址方法和系统 Download PDF

Info

Publication number
CN1136681A
CN1136681A CN95116844A CN95116844A CN1136681A CN 1136681 A CN1136681 A CN 1136681A CN 95116844 A CN95116844 A CN 95116844A CN 95116844 A CN95116844 A CN 95116844A CN 1136681 A CN1136681 A CN 1136681A
Authority
CN
China
Prior art keywords
address
processor
register
data
order bit
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.)
Pending
Application number
CN95116844A
Other languages
English (en)
Inventor
保罗·C·罗斯巴什
高清晨
戴维·S·莱维塔
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1136681A publication Critical patent/CN1136681A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3557Indexed addressing using program counter as base address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

一种在具有m+n位的地址位宽度的流水线式处理器里的改进的编址方法,包括存储对应第一地址范围的m位高位比特,同时还存储与该被选多个数据中各个数据相关地址的n位低位比特。确定后继数据地址,取后继数据。响应取其地址超过该第一地址范围的后继数据,把状态寄存器设置为第一状态,响应被置为第二状态下的该状态寄存器,调度该后继数据以在该流水线式处理器内进行处理。然后存储该后继数据的n位低位比特。

Description

改进型编址方法和系统
本发明一般性地涉及数据处理系统里的改进的编址方法和系统,并具体地涉及一种处理器里的改进的编址方法和系统,这种处理器具有m+n位的地址位宽度并使用宽度小于m+n位的地址寄存器。更具体地,本发明涉及一种改进型的编址方法和系统,其把m位高位比特存储到一个地址寄存器里,这m位高位比特对应于存储器内的一个地址范围,该存储器含有多个要在一个处理器里执行的数据。
在计算机系统的设计中,为增强性能应用了许多不同的设计技术。这些设计技术包括增加处理器的数据及地址位宽度,减少处理器的指令集和在处理器里以流水线方式处理指令。当前,许多计算机的体系结构采用64位编址,因为64位编址比起常规的32位编址具有大得多的地址空间和更高的吞吐量。可以理解,在包括64位编址和流水线执行两种技术的计算机体系结构里,性能将会大大增强。
但是,在流水线方式下运行处理器引起通过把指令的相联地址存储到缓冲区和栈里以对处理器内指令的执行进行跟踪的额外要求。在64位处理器内,用于跟踪指令执行的地址缓冲区和栈所需的处理器芯片面积变得相当大。因为处理器芯片的成本随着芯片面积的增大而增加,应用常规编址技术的64位流水线处理器要大大贵于32位处理器。
从而,需要一种在64位流水线式处理器内的编址方法和系统,这种编址方法和系统通过应用小于64位的编址单元使得所需的处理器芯片面积为最小。
因此,本发明的一个目的是在数据处理系统中提供一种改进的编址方法和系统。
本发明的另一个目的是在一种处理器里提供一种改进的编址方法和系统,这种处理器具有m+n位地址位宽度并使用位宽度小于m+n的地址寄存器。
本发明的再一个目的是提供一种改进的编址方法和系统,其在一个地址寄存器里存储m位高位比特,这m个高位比特对应于一个地址范围,这个地址范围内含有多个要在一个处理器里执行的数据。
如现在所描述的那样达到上述目的。公开一种在具有m+n位的地址位宽度的一种流水线式处理器里的改进的编址方法,该方法包括存储对应于一个第一地址范围的m位高位比特,该第一地址范围包括多个该流水线式处理器所执行的被选择数据。同时还存储该被选的多个数据中各个数据相应地址的n位低位比特。在确定该处理器内要执行的一个后继数据的地址之后,取这个后继数据。响应取其地址超过该第一地址范围的一个后继数据,把一个状态寄存器置为两个状态中的第一状态,以指示需要更新该第一地址寄存器。响应被置为两个状态中的第二状态下的该状态寄存器,调度该后继数据以在该流水线式处理器内执行。然后存储该后继数据的n个低位比特,从而减少用于存储要在该流水线式处理器中执行的指令的地址的所需要的存储器。
本发明的上述及另外的目的、特点和优点将在下述详尽的文字说明中变得明了。
在所附权利要求书里陈述确认的本发明的特性的新颖特征。但是,通过参照对一种示意实施例的下述详细说明并连同阅读附图将最好地理解该发明本身、以及使用的最好方式、它的其它目的和优点。附图为:
图1表示应用本发明的方法和系统的一个处理器的指令处理单元的框图;
图2描述一个进程的流程图,该进程由图1所示的指令处理单元使用以确定一个后继指令的地址;
图3描述一个进程的流程图,该进程用于更新图1中所示的高位地址寄存器(HOAR)以及
图4描述一个进程的流程图,该进程应用来自一个先前取地址请求的一个偏移以计算一个地址请求。
现参照附图,并特别参照图1,图1表示应用本发明的方法和系统的一个64位流水线式处理器的指令处理单元的框图。本发明利用指令超高速缓冲存储器26内的地址局部性从而减少指令处理单元10所需要的处理器芯片面积。指令地址的局部性允许HOAR12存储所有在该处理器内执行的指令的32位高位比特。从而,该处理器的执行流水线中的指令可以通过仅把该指令地址中的32位低位比特存储到完成缓冲器13中得到跟踪,完成缓冲器13是一组32位的缓冲器。使用32位的而不是64位的缓冲器存储指令地址减少了处理器芯片的总容量,从而降低了成本。通过应用32位而不是64位的加法器计算相对指令地址进一步使得指令处理单元10所需的处理器芯片面积成为最小。
如图示,指令处理单元10包括高位地址寄存器(HOAR)12,取指令地址寄存器(IFAR)14,预取单元16,调度单元18,分解单元20,完成单元22和多路复用器24及25。
预取单元16、调度单元18、分解单元20和完成单元22代表着指令处理单元10的该指令处理流水线中的四个阶段。在一给定周期内,这些单元中的每一个单元都能生成一个取指令请求。在一给定周期中的最高优先级的取指令请求通过多路复用器24被多路传送到IFAR14。多路复用到IFAR14的地址与该指令流水线中最老的其激发一次取指令的指令有关。如果要被执行的下一条指令尚未取出,一条指令将启动一次取。这样,取指令请求将进行优先,使得如果调度单元18发出的一个转移预测造成一次取指令,则忽略掉预取单元16所生成的地址。类似地,如果由分解单元20分解出的一条分支的一次取指令结果是猜测错误的,则忽略掉由预取单元16和调度单元18产生的所有的预取地址和转移预测地址。最后,如果完成单元22产生出一个中断则忽略所有的其它取指令请求,并把该中断地址多路复用到IFAR14。
当该处理器运行在其标准64位方式下时,多路复用到IFAR14的取指令地址是一个64位地址,该64位地址中的62位访问指令超高速缓冲存储器26内的现行指令字。应用本发明的一种处理器的一种最佳实施方式还支持32位编址方式,这种方式只利用指令地址的32位低位比特。当在32位方式下运行时,存储该处理器内执行的所有指令的32位高位比特的HOAR12被置为0。
如果IFAR14锁存一个超过由HOAR12规定的四吉字节(gi-gabyte)相连地址空间的取指令地址,必须在执行该指令之前用新地址的32位高位比特更新HOAR12。当需要HOAR更新时,HOAR状态寄存器28被置位以指示需要一次更新并指示将进行那种类型的更新。当HOAR状态寄存器28被置位时,在可出现该HOAR更新之前,必须排清该处理器(即完成当前在该处理器中的指令的执行)。因为它所带来的损失通常只是几个周期并且不经常出现,性能减低被减为最小。现在通过参照图2和图3更详细地说明指令处理单元10所遵循的取指令地址的选择进程和更新HOAR12的管理进程。
现参见图2,图中描述一个过程的流程图,在各个周期里指令处理单元10利用该过程生成取指令地址。如示该过程从框50开始,该处理器执行流水线之内的指令的32位高位比特被存储到HOAR12之内。如所示,该过程进入框54,其表示从多路复用器24上的该地址请求中选择一个取指令地址。如上面所述,多路复用器24选择目前最高优先级的(即最老的)取指令请求。
在这之后,该过程进入框56,其表示当IFAR14中的新取指令地址的32位高位比特和存储在HOAR12中的32位高位比特不同时产生一个新的HOAR状态寄存器值以指示需要一次HOAR更新。预取单元16、调度单元18、分解单元20和完成单元22各具有五位状态位,如果多路复用器24选择由某个单元产生的取地址请求,这个单元的五位状态位指示HOAR12所需更新的类型。如果一个地址请求不需要一次HOAR更新,和地址请求有关的这些状态位指示一个清除状态。如图1中所示,这些状态值输入到多路复用器25。一旦选择了一个取指令地址,对应于多路复用器24所选定取指令地址的状态值被多路复用到HOAR状态寄存器28。
取决于包含在IFAR14内的该后继取指令地址是如何生成的,可能有五种类型的HOAR更新。首先,HOAR状态寄存器28可被置成为表示应该递增HOAR12。如果后继取指令地址是通过从现行取指令地址经正相对转移(positive relative branch)或顺序通路两者中的一条确定的,则HOAR状态寄存器28置成为表明应该递增HOAR12。类似地,如果后继取指令地址是通过现行取指令地址经负相对转移计算的,HOAR状态寄存器28可置成为表明应该递减HOAR12。HOAR状态寄存器28的第三种状态表明应该通过装入64位体系(architected)寄存器值的32位高位比特来更新HOAR12,该64位体系寄存器的值被应用为该后继取指令地址。当后继取指令地址是一绝对转移时可把HOAR状态寄存器28置成为第四或第五状态。在计算一个绝对转移地址时,14位值或20位值的立即字段经符号扩展到64位,从而把IFAR14的32位高位比特置成全部为1或全部为0。这样,如果后继取指令地址分别为一个绝对负转移或一个绝对正转移并且HOAR还没有置为所需值时,HOAR12必须更新成全部为1或全部为0。
一旦HOAR状态寄存器28置为表明是否需要一次HOAR更新,该进程从框56进入框57,框57表示从指令超高速缓冲存储器26里取出由取指令地址表示的指令。然后,该进程进入框58,其表示确定HOAR状态寄存器28是否被清除(即没有置成为表示一次HOAR更新)。
如果HOAR状态寄存器28置成为指示一次HOAR更新,该进程进入框59,其表示对HOAR12的值和IFAR14的32位高位比特进行比较以确定是否IFAR14已锁存一个新取指令地址,其反映不再需要该指示的HOAR更新。例如,如果HOAR状态寄存器28指示应该通过装入64位体系寄存器值的32位高位比特或者通过把HOAR12全部置为1或0来更新HOAR12,并且HOAR12已经置为所需要的值,即使HOAR状态寄存器28在下一周期前尚未清除,该进程确定已取的指令可被调度。如果HOAR状态寄存器28是清除的或者所指示的HOAR更新是不必要的,该进程进入框60。框60表示调度该取出的指令以在该处理器内进行执行。然后,该进程在框62结束。
但是,如果HOAR状态寄存器28被置位并且框59中所描述的比较指明一次HOAR更新仍是必需的,该进程在不调度该已取的指令的情况下终止于框62。这样,抽象地取指令同时那些位于由HOAR12所指示的地址空间的范围之内的地址上的指令保留在该处理器的执行流水线上。
现参照图3,图中是一个进程的流程图,其由指令处理单元10应用以在各个周期内管理HOAR状态寄存器28。如图示,该进程从框80开始并然后进入框82,其表示确定是否清除了HOAR状态寄存器28。如果HOAR状态寄存器28已清除,该进程进入框88,其描述在下一个周期之前终止该进程。但是,如果把HOAR状态寄存器置成表明为一次HOAR更新,该进程进入框84。
框84表示确定是否该处理器已排清。如果该处理器还没有排清,该进程进入框88,其表示在下一个周期前终止该进程。如果该处理器已经排清,在该处理器的执行流水线里不再保留任何可能请求HOAR值的指令。然后,该进程进入框86,其表示按照HOAR状态寄存器28所指示的状态更新HOAR12。如上面所讨论的那样,HOAR状态寄存器28的状态指示是否应该对HOAR递增、递减、装载、全部置为1或全部置为0。接着,该进程进入框87,其表示清除HOAR状态寄存器28以表明已经完成所需的HOAR更新。此后,该进程终止在框88。
图2中所示的进程和图3中所示的进程在指令处理单元10中同时执行并且通过HOAR状态寄存器28互相联系。例如,图2所示的进程可能在框54选择一个取指令地址,在框56该取指令地址把HOAR状态寄存器28置成为表示一次HOAR更新。如果在框54和56的后继迭代中HOAR状态寄存器28被清除,则取消图3所示该进程里待决的一次HOAR更新。类似地,在图3的框86和框87中更新HOAR12和清除HOAR状态寄存器28允许在图2的框60处把指令调度到该处理器。
现参照图4,图中描述一个进程的流程图,该进程由指令处理单元10的预取单元16、调度单元18、分解单元20和完成单元22使用以计算和现行取指令地址有关的一个地址请求。如上面简述的那样,当单元16、18、20和22利用一个偏移(即,该地址请求是根据该取指令地址的一个相对转移或一个顺序通路)计算相对于存储在IFAR14里的取指令地址的地址请求时,利用了一个32位加法器。除了减小指令处理单元10所需的芯片面积之外,采用32位的而不是64位的加法器加强了处理器的性能。
当该进程从框100开始时,HOAR12存储在该处理器里执行的各指令的32位高位比特而IFAR14存储现行取指令地址。如图所示,该进程从框100进入框102,框102表示把偏移加到存储在IFAR14里的取指令地址的32位低位比特上。然后把该和存储到一个地址计算寄存器里,如框104中所示。然后,该进程进入框106,其表示确定该结果和是否造成进位或借位。如果该结果和不造成进位或借位,如图中所示该进程从框106进入到框110。如框110中所说明那样,通过简单地把该结果和与存储在HOAR12中的32位高位比特并置,形成地址请求。
但是,如果该结果和造成进位或借位,其表示地址请求超出HOAR12规定的4 gigabyte地址空间,则该进程进入框108。框108说明装入来自HOAR12的值,然后如果是进位则对该值增1,反之如果是借位则对该值减1。然后该进程进入框110。框110说明把已经增1或减1的32位高位比特与32位低位和比特并置起来以形成一个64位的地址请求。然后该进程在框112终止。图4所描述的计算地址请求的进程提高了计算地址的速度,因为在确定一个地址请求的过程中不需要处理所有的64位地址比特。
尽管本发明是借助参考一种最佳实施方式说明的,在这种最佳实施方式里HOAR存储着指令地址的高位比特,熟练的技术人员可以意识到一个处理器可以应用多个HOAR,包括分别用于指令地址和数据地址的HOAR。此外,熟练的技术人员可以认识到HOAR能够存储不趋于经常改变的任何数量的比特,不必刚好是32位比特。最后,尽管本发明的一种最佳实施方式采用64位处理器,本发明可以利用具有任何地址位宽度的处理器来实现。
尽管本发明是参考一种最佳实施方式具体地表示和说明的,熟练的技术人员可以理解,在不违背本发明的精神和范围的前提下,可以在形式和细节上进行不同的改变。

Claims (14)

1.一种在地址位宽度为m+n位的流水线式处理器内的改进的编址方法,包括:
存储对应于第一地址范围的m位高位比特,所述地址范围包括多个在所述流水线式处理器内执行的选定数据;
存储和所述多个选定数据有关的地址的n位低位比特;
响应对一个要在所述处理器内执行的后继数据的地址的确定,取所述后继数据;
响应其地址超过所述第一地址范围的所述后继数据,把一个状态寄存器设置为两种状态中的第一种状态,以指示需要对所述第一地址寄存器进行一次更新;
响应所述状态寄存器被设置为所述两种状态中的第二种状态,调度所述后继数据以在所述流水线式处理器中执行;以及
存储所述后继数据的n位低位比特,从而减少存储在所述流水线式处理器中执行的指令地址的所需存储器。
2.权利要求1的流水线式处理器内的改进的编址方法,其特征在于进而包括:
响应被置成所述第二状态的所述状态寄存器,仅当所述流水线式处理器完成与包含在所述第一地址范围的地址有关的所述多个数据的执行之后,把所述第一地址寄存器更新成对应于第二地址范围的一个值,这个第二地址范围含有与所述后继数据有关的所述地址。
3.权利要求1的流水线式处理器内的改进的编址方法,其特征在于,其中所述多个数据和所述后继数据是由所述处理器执行的指令。
4.当所述处理器运行在第一方式下时一种在地址位宽度为m+n比特的流水线式处理器内的改进的编址方法,包括:
在第一地址寄存器里存储对应于一个地址范围的m位高位比特,所述地址范围含有多个要被所述处理器应用的数据;
利用存储在第二地址寄存器里的一个地址访问所述多个数据中的一个现行数据;
确定一个后继数据的地址是否是对所述现行数据的地址的一个偏移;
响应所述确定为所述后继数据的所述地址是对所述现行数据的所述地址的一个偏移,
(a)把n位偏移加到包含所述现行数据的所述地址的相应n位低位比特上;
(b)检测所述相加产生的和是否造成进位或借位;
(c)响应所述和未造成进位或借位的检测结果,利用一个m+n位地址访问所述后继数据,这个m+n位地址是通过把存储在所述第一地址寄存器里的所述m位高位比特与所述和的n位低位比特并置起来而构成的,从而不需要对所有的m+n位地址比特进行处理并且因此提高了编址效率。
5.权利要求4的改进的编址方法,其特征在于进一步包括这个步骤,即当所述处理器运行在第二方式下时把所述第一地址寄存器的各位置为逻辑0,在第二方式下所述处理器的所述地址位宽度为n位或少于n位。
6.当所述处理器运行在第一方式下时一种在地址位宽度为m+n位的处理器内的改进的编址方法,包括:
在第一地址寄存器里存储对应于一个地址范围的m位高位比特,所述地址范围含有多个要被所述处理器使用的数据;
在第二地址寄存器里存储一个所述地址范围内的地址,这个地址规定所述多个数据中的一个现行数据;
把一个状态寄存器设置为第一状态;
确定对一个后继数据的地址请求是否是对所述现行数据的所述地址的一个偏移;
响应所述确定为所述后继数据的所述地址请求是对所述现行数据的所述地址的一个偏移,
(a)把偏移加到包含所述现行数据的所述地址的n位低位比特上;
(b)从所述第一地址寄存器装入m位高位比特;
(c)检测从所述相加步产生的和是否造成进位或借位;
(d)响应所述和造成进位或借位的检测结果,如果所述和造成进位对所述m位高位比特增1,或者如果所述和造成借位对所述m位高位比特减1;
(e)通过把所述m位高位比特与从所述加法步骤得到的所述和并置起来构成一个地址请求;
响应把所述地址请求选择为一个取地址,
(a)把所述地址请求存储到所述第二地址寄存器里;
(b)取所述后继数据,所述后继数据存储在由所述第二地址寄存器指示的一个地址上;
(c)如果所述和造成进位把所述状态寄存器设置为第二状态,或者如果所述和造成借位把所述状态寄存器设置为第三状态;
仅在响应所述状态寄存器被设置为所述第一状态时,调度所述后继数据以在所述处理器内进行执行,从而在这些情况下,即存储在所述第一地址寄存器里的m位高位比特和存储在所述第二地址寄存器里的所述后继数据的所述地址的m位高位比特等同时,提高了编址效率。
7.权利要求6的改进的编址方法,其特征在于进一步包括步骤:
响应所述状态寄存器处于所述第二状态或所述第三状态并且所述处理器被排清,根据所述状态寄存器分别设置为所述第二状态或所述第三状态的指示,把所述第一地址寄存器相应增1或减1。
8.一种在地址位宽度为m+n位的流水线式处理器内的改进的编址系统,包括:
用于存储对应于第一地址范围的m位高位比特的装置,所述地址范围包括多个在所述流水线式处理器内执行的选定数据;
用于存储与所述多个选定数据有关的地址的n位低位比特的装置;
响应对一个要在所述处理器内执行的后继数据的地址的确定,用于取所述后继数据的装置;
响应其地址超过所述第一地位范围的所述后继数据,用于把一个状态寄存器设置为两种状态中的第一种状态以指示需要对所述第一地址寄存器进行一次更新的装置,
响应所述状态寄存器被设置成所述两种状态中的第二种状态,用于调度所述后继数据以在所述流水线式处理器中执行的装置;以及
用于存储所述后继数据的n位低位比特的装置,其中存储在所述流水线式处理器中执行的指令地址的所需存储器从而被减少。
9.权利要求8的流水线式处理器内的改进的编址系统,其特征在于进而包括:
响应设置成所述第二状态的所述状态寄存器,仅当所述流水线式处理器完成与包含在所述第一地址范围的地址有关的所述多个数据的执行之后,用于把所述第一地址寄存器更新成对应于第二地址范围的一个值的装置,这个第二地址范围含有与所述后继数据有关的所述地址。
10.权利要求8的流水线式处理器内的改进的编址系统,其特征在于,其中所述多个数据和所述后继数据是由所述处理器执行的指令。
11.当所述处理器运行在第一方式下时一种在地址位宽度为m+n位的处理器内的改进的编址系统,包括:
用于在第一地址寄存器里存储对应于一个地址范围的m位高位比特的装置,所术地址范围含有多个要被所述处理器应用的数据;
用于利用存储在第二地址寄存器里的一个地址访问所述多个数据中的现行数据的装置;
用于确定一个后继数据的地址是否是对所述现行数据的地址的一个偏移的装置;
响应所述确定为所述后继数据的所述地址是对所述现行数据的所述地址的一个偏移,
(a)用于把n位偏移加到包含所述现行数据的所述地址的相应n位低位比特上的装置;
(b)用于检测所述相加产生的和是否造成进位或借位的装置;
(c)响应所述和未造成进位或借位的检测结果,用于利用一个m+n位地址访问所述后继数据的装置,这个m+n位地址是通过把存储在所述第一地址寄存器里的所述m位高位比特与所述和的n位低位比特并置起来而构成的,从而不需要对所有的m+n位地址比特进行处理并且因此提高了编址效率。
12.权利要求11的改进的编址系统,其特征在于进一步包括当所述处理器运行在第二方式下时用于把所述第一地址寄存器的各位设置为逻辑0的装置,在第二方式下所述处理器的所述地址位宽度为n位或少于n位。
13.当所述处理器运行在第一方式下时一种在地址位宽度为m+n位的处理器内的改进的编址系统,包括:
用于在第一地址寄存器里存储对应于一个地址范围的m位高位比特的装置,所述地址范围含有多个要被所述处理器使用的数据;
用于在第二地址寄存器里存储所述地址范围内的一个取地址的装置,这个取地址规定所述多个数据中的一个现行数据;
用于把一个状态寄存器设置为第一状态的装置;
用于确定对一个后继数据的地址请求是否是对所述现行数据的所述地址的一个偏移的装置;
响应确定为所述后继数据的所述地址请求是对所述现行数据的所述地址的一个偏移;
(a)用于把偏移加到包含所述现行数据的所述地址的n位低位比特上的装置;
(b)用于从所述第一地址寄存器装入m位高位比特的装置;
(c)用于检测所述相加步产生的和是否造成进位或借位的装置;
(d)响应检测所述和造成进位或借位,用于若所述和造成进位则对所述m位高位比特增1或者若所述和造成借位则对所述m位高位比特减1的装置;
(e)用于通过把所述m位高位比特与从所述加法步骤得到的所述和并置起来构成一个地址请求的装置;
响应把所述地址请求选择为一个取地址,
(a)用于把所述地址请求存储到所述第二地址寄存器里的装置;
(b)用于取所述后继数据的装置;所述后继数据存储在由所述第二地址寄存器指示的一个地址上;
(c)用于若所述和造成进位把所述状态寄存器设置为第二状态或者若所述和造成借位把所述状态寄存器设置为第三状态的装置;
仅在响应所述状态寄存器被设置为所述第一状态时,用于调度所述后继数据以在所述处理器进行执行的装置,从而在这些情况下,即存储在所述第一地址寄存器里的m位高位比特和存储在所述第二地址寄存器里的所述后继数据的所述地址的m位高位比特等同时,提高了编址效率。
14.权利要求13的改进的编址系统,其特征在于进一步包括:
响应所述状态寄存器处于所述第二状态或所述第三状态并且所述处理器被排清,根据所述状态寄存器分别设置为所述第二状态或所述第三状态的指示,用于把所述第一地址寄存器相应增1或减1的装置。
CN95116844A 1994-10-05 1995-09-13 改进型编址方法和系统 Pending CN1136681A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31933094A 1994-10-05 1994-10-05
US319,330 1994-10-05

Publications (1)

Publication Number Publication Date
CN1136681A true CN1136681A (zh) 1996-11-27

Family

ID=23241798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN95116844A Pending CN1136681A (zh) 1994-10-05 1995-09-13 改进型编址方法和系统

Country Status (6)

Country Link
US (1) US5765221A (zh)
EP (1) EP0706120A1 (zh)
KR (1) KR960015231A (zh)
CN (1) CN1136681A (zh)
CA (1) CA2159888A1 (zh)
TW (1) TW267222B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100454885C (zh) * 2000-10-02 2009-01-21 丛林网络公司 流水线调度方法和调度装置
CN100464324C (zh) * 2004-02-16 2009-02-25 松下电器产业株式会社 并行运算处理器

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243798B1 (en) * 1997-10-28 2001-06-05 Microchip Technology Incorporated Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
US6704926B1 (en) * 2000-09-28 2004-03-09 International Business Machines Corporation Bimodal Java just-in-time complier
KR100640820B1 (ko) 2005-11-07 2006-11-02 엘지전자 주식회사 버퍼 제어 장치
US8396963B2 (en) 2010-09-29 2013-03-12 Schneider Electric USA, Inc. Networked devices for monitoring utility usage and methods of using the same

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3387283A (en) * 1966-02-07 1968-06-04 Ibm Addressing system
US4240139A (en) * 1977-09-22 1980-12-16 Tokyo Shibaura Denki Kabushiki Kaisha Address generating system
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
US4251860A (en) * 1978-10-23 1981-02-17 International Business Machines Corporation Virtual addressing apparatus employing separate data paths for segment and offset portions of a virtual address and utilizing only the offset portion to calculate virtual address
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
JPS62149099A (ja) * 1985-12-23 1987-07-03 Toshiba Corp メモリアクセス制御回路
EP0232518A3 (de) * 1986-01-13 1989-12-13 Siemens Aktiengesellschaft Verfahren und Anordnung zum Bilden von Adressen zum Ansteuern eines Arbeitsspeichers
US5142636A (en) * 1987-01-29 1992-08-25 Mitsubishi Denki Kabushiki Kaisha Memory bank address calculation with reduced instruction execution cycles
US5063497A (en) * 1987-07-01 1991-11-05 Digital Equipment Corporation Apparatus and method for recovering from missing page faults in vector data processing operations
JPH047761A (ja) * 1990-04-26 1992-01-13 Fuji Xerox Co Ltd メモリアクセス方法
US5386523A (en) * 1992-01-10 1995-01-31 Digital Equipment Corporation Addressing scheme for accessing a portion of a large memory space
US5680632A (en) * 1992-12-24 1997-10-21 Motorola, Inc. Method for providing an extensible register in the first and second data processing systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100454885C (zh) * 2000-10-02 2009-01-21 丛林网络公司 流水线调度方法和调度装置
CN100464324C (zh) * 2004-02-16 2009-02-25 松下电器产业株式会社 并行运算处理器

Also Published As

Publication number Publication date
CA2159888A1 (en) 1996-04-06
US5765221A (en) 1998-06-09
EP0706120A1 (en) 1996-04-10
TW267222B (en) 1996-01-01
KR960015231A (ko) 1996-05-22

Similar Documents

Publication Publication Date Title
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
US5948095A (en) Method and apparatus for prefetching data in a computer system
US7958317B2 (en) Cache directed sequential prefetch
US5581721A (en) Data processing unit which can access more registers than the registers indicated by the register fields in an instruction
JP2889955B2 (ja) 分岐予測の方法とそのための装置
CN1128401C (zh) 超标量处理机系统中单周期调度多指令的方法和系统
US6330662B1 (en) Apparatus including a fetch unit to include branch history information to increase performance of multi-cylce pipelined branch prediction structures
CN1177275C (zh) 减少处理器中写入通信量的方法和系统
CN1582429A (zh) 在推测性处理器中减少执行涉及不可靠数据的指令的系统与方法
US6643755B2 (en) Cyclically sequential memory prefetch
US9135005B2 (en) History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
KR100368166B1 (ko) 컴퓨터 처리 시스템에서 스택 레퍼런스를 변경하는 방법
JP2006518053A (ja) ハードウェア・スカウト・スレッディングを通してコードを推測で実行することによるプリフェッチの生成
CN102707933B (zh) 用于管理返回堆栈的方法和设备
CN101645034B (zh) 用于检测数据存取违例的方法和装置
CN101847096A (zh) 包含栈变量函数的优化方法
US6516462B1 (en) Cache miss saving for speculation load operation
JP2002527798A (ja) ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム
JP2596712B2 (ja) 近接した分岐命令を含む命令の実行を管理するシステム及び方法
CN1151047A (zh) 将指令装入指令高速缓冲存储器中的方法
CN1136681A (zh) 改进型编址方法和系统
CN116501389B (zh) 指令缓冲单元、处理器及计算机系统
CN1945550A (zh) 重新配置高速缓存以支持多态性的元数据的方法以及电路
US9311247B1 (en) Method and apparatus for detecting patterns of memory accesses in a computing system with out-of-order program execution
US5729723A (en) Data processing unit

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C01 Deemed withdrawal of patent application (patent law 1993)
WD01 Invention patent application deemed withdrawn after publication