适用于处理器的存储器数据存取装置及其存取方法

文档序号:6444413阅读:126来源:国知局
专利名称:适用于处理器的存储器数据存取装置及其存取方法
技术领域
本发明是有关一种存储器数据存取装置及其存取方法,且特别是有关一种适用于一处理器的存储器数据存取装置及其存取方法。
处理器是目前在任何的电子装置中,皆是不可或缺且广泛使用的元件。例如,在个人电脑中有中央微处理器(CPU)与许多针对不同功能的处理器。而随着电子装置的功能日新月异,功能越来越强,其相对地要求处理器所扮演的角色则愈来越重要,而处理器所需要的功能则也越来越强。
而以往的处理器,对于指令的处理,通常如

图1所示存储器数据存取(Memory Access)装置的方块图,系用以说明处理器与存储器之间数据存取控制的流程。在此所描述的处理器,则针对中央微处理器为例。此存储器数据存取装置包括一中央微处理器(CPU)100、一高速缓冲存取存储器(CacheMemory)120与一存储器130,其中此中央微处理器100系经由一数据总线(Data Bus,底下简称DS)102与此高速缓冲存取存储器120与存储器130相连接,以互相传送数据。另外,此中央微处理器100系经由一地址总线(AddressBus,底下简称AB)104将地址数据传送到高速缓冲存取存储器120与存储器130。而另外,中央微处理器100经由一控制信号(Control Signal,CS)106控制高速缓冲存取存储器120。
为方便说明,在此假设中央微处理器100的内部分成3个流水线阶段(Pipeline Stage),亦即在执行指令时,会经过读取(Fetch)指令、解码(Decode)指令与执行(Execution)指令三个阶段。首先,中央处理器100会从高速缓冲存取存储器120中读取指令,接着对于所读取的指令做解码的操作,而后再针对所解码的指令做执行的操作。若是所欲读取的指令并未在高速缓冲存取存储器120中时,则会从存储器130中读取所要的指令。而从存储器130中读取指令的操作中,因为硬件速度上的限制,通常会耗费相当多中央微处理器100的运算读取周期(Cycles)。
而在中央微处理器100所执行的指令中,有一种指令称为分支指令(Branch Instruction),底下简称为分支,以利说明,这种指令属于一种控制转换(Control Transfer instruction)的指令。这是一种要求中央微处理器100下一个所要执行的指令是在某一个地址,也就是此中央微处理器100必须从目前处理的地址跳到另一地址的指令。而这种指令例如跳跃(Jump)指令、子程序呼叫(Subroutine Call)或是返回指令等等。
为求说明方便,在此以图2A所示出的部分程序段(Program Segment)作为范例,I代表中央微处理器100所欲执行的指令,而I1、I2、...I10、I11、...等等各分别代表第1、2、...、10、11...个指令,且指令I1为一分支指令,而此指令会在执行I1后,跳到第I10指令。
图2B表示针对时脉信号与读取、解码与执行三个阶段所执行如图2A所示的程序段的关系。图2B所示操作时脉(Clock,此称为C)中,C1、C2、C3...C8系分别代表第1、2、3...、8个时脉。当指令I1在执行阶段时,也就是在第3个时脉C3时间点,中央微处理器100的读取单元会开始读取指令I3。而在此时,若是指令I3并未在高速缓冲存取存储器120中时,则必须从存储器130中读取指令I3。
然而,若是指令I1属于分支指令,则此指令I1将会改变程序所执行的方向,以此例而言,也就是必须开始读取指令I10,然而,此时高速缓冲存取存储器120早已开始将要求读取指令I3的请求送到存储器130中。因此,此时中央微处理器100必须等到高速缓冲存取存储器120的读取指令I3请求完成为止。而如图2B所示,假设从存储器130读取指令需花费3个操作时脉(Cycles)完成,当然,由于处理器与存储器之间的速度差差距(Gap)越来越大,从存储器读取指令所需花费的时脉数目也会随着越来越多。整个中央微处理器100的操作可从图2B中清楚看出,在分支指令执行之后(时脉C3之后),在第6个时脉C6之后才开始读取指令I10浪费了许多的操作时脉。这种情形似乎仅有数个操作时脉的延迟,然而对于高效能且高速处理的处理器而言,这些延迟会对于效能有很大的影响。
现有技术中有人提出一种具有分支指令预测机制(Branch PredictionMechanism),可在读取阶段事先预测指令是否为分支指令以及其执行方向(Execution Direction)。然而,上述的问题仍会出现在具有这样分支指令预测机制的处理器中。假设,I1是一个跳跃指令(Taken Branch),会使程序执行方向改变至I10。然后,在时脉C1读取到的指令为I1时,若是此分支指令预测机制做了错误的预测(例如其预测I1不是分支指令,或是其预测I1并不会改变程序执行方向),则在进入执行指令I1时的时脉C3之后,中央微处理器100的读取单元仍会开始读取指令I3,而若如前述例子中I3并未在高速缓冲存取存储器120时,将会产生上述的缺失。反之,若I1是分支指令,但其并不会改变程序执行的方向,若是此一分支指令预测机制做了错误的预测时,同样也可能会发生上述的缺失。
有鉴于此,本发明提供一种适用于处理器的存储器数据存取装置及其存取方法,其可在执行分支指令时,避免处理器耗费时间读取目前不会用到的指令,因而不会有操作时脉延迟的情形。
本发明提供一种适用于处理器的存储器数据存取装置及其存取方法,可在不论是否具有分支指令预测机制的处理器中,避免执行分支指令时,有浪费操作时脉的情形。
为达到上述目的,本发明提供一种适用于处理器的存储器数据存取装置,包括一高速缓冲存取存储器,用以储存并输出一指令,其中,该指令依照一地址信号输出该指令;以及一流水线式处理器,系用以执行多个处理器指令,该处理器指令至少包括一分支指令,其中该流水线式处理器包括一执行单元,根据前一阶段传来的该指令做一执行的操作,并输出一结果信号与一控制信号,其中该控制信号用以传送到该高速缓冲存取存储器,其中,当该执行单元正在执行的指令为一分支指令时,则该结果信号为一目标地址,并经选择后输出一地址信号至该高速缓冲存取存储器,以根据该选择后的该地址信号读取下一欲执行的指令,当该执行单元正在执行该分支指令时,该处理器正在对该高速缓冲存取存储器读取一读取指令,而当在执行该分支指令后所得的该控制信号,传送到该高速缓冲存取存储器时,若是该读取指令未在该高速缓冲存取存储器时,则该高速缓冲存取存储器将依据该控制信号决定是否对一外部存储器读取该读取指令。
上述的存储器数据存取装置,更包括一程序计数器,用以储存在该些欲执行的指令中当前所执行的该指令的地址。
上述的存储器数据存取装置,其中更包括一多路复用器,用以接收由该执行单元所输出的该结果信号与该程序计数器所储存的该执行地址加上一既定值的信号,并选择输出其中的一信号成为该地址信号。
为达到上述的目的,本发明提供一种适用于处理器的存储器数据存取装置,包括一高速缓冲存取存储器,用以储存并输出一指令,其中,该指令依照一地址信号依序输出该指令;一流水线式处理器,用以执行多个处理器指令,该些处理器指令至少包括一分支指令,其中该流水线式处理器包括一执行单元,并根据前一阶段传来的该指令,做一执行的操作,并输出一结果信号;一分支指令预测机制,用以根据一读取指令,输出一预测地址;一比较器,用以接收该结果信号与该预测地址,并输出一比较信号,其中当该执行单元正在执行该指令为一分支指令时,则该结果信号为一目标地址,并经选择后输出一地址信号至该高速缓冲存取存储器,以根据该地址信号读取下一欲执行的指令,当该执行单元正在执行该分支指令时,该处理器正在对该高速缓冲存取存储器读取一读取指令,而当在执行该分支指令后所得的该结果信号,将会传送到该比较器,而比较器会根据该结果信号与该预测地址,比较后输出该比较信号到该高速缓冲存取存储器,若是该读取指令未在该高速缓冲存取存储器时,则该高速缓冲存取存储器将依据该比较信号决定是否对一外部存储器读取该读取指令。
如上所述的存储器数据存取装置,其中更包括一程序计数器,用以储存在该些欲执行的指令中,目前所执行的该指令的地址。
上述的存储器数据存取装置,其中更包括一多路复用器,用以接收由该执行单元所输出的该结果信号、该程序计数器所储存的该执行地址加上一既定值的信号与该预测地址,并选择输出其中的一信号成为该地址信号。
为达到上述的目的,本发明提供一种适用于处理器的存储器数据存取方法,包括依照一地址信号依序提供一个指令;执行该指令,并输出一结果信号与一控制信号,其中,当该所执行的指令为一分支指令时,则该结果信号系为一目标地址,并经选择后输出一地址信号至一高速缓冲存取存储器,以根据该选择后的该地址信号读取下一欲执行的指令,当执行该分支指令时,该处理器将同时读取一读取指令,当该读取指令未在用以储存该些指令的该高速缓冲存取存储器时,则该高速缓冲存取存储器将依据该控制信号决定是否对一外部存储器读取该读取指令。
为达到上述的目的,本发明提供一种适用于处理器的存储器数据存取方法,包括依照一地址信号输出一指令;执行该指令,并输出一结果信号;以一分支指令预测机制接收一读取指令,并输出一预测地址;比较该结果信号与该预测地址,并输出一比较信号,其中当所执行的该指令为一分支指令时,则该结果信号为一目标地址,并经选择后输出一地址信号至一高速缓冲存取存储器,以根据该地址信号读取下一欲执行的指令,当在执行该分支指令时,该处理器正在读取一读取指令,根据该比较信号,若是该读取指令未在该高速缓冲存取存储器时,则该高速缓冲存取存储器将决定是否对一外部存储器读取该读取指令。
为使本发明的上述目的、特征、和优点能更明显易懂,下文特举一较佳实施例,并结合附图,作详细说明如下附图的简单说明图1表示现有技术的存储器数据存取装置的方块图;图2A表示作为范例的部分程序段(Program Segment);图2B表示针对时脉信号与读取(Fetch)、解码(Decode)与执行(Execution)三个阶段所执行范例程序段指令的关系;图3表示本发明一较佳实施例的处理器的存储器数据存取装置及其存取方法(但不具有分支指令预测机制);图4表示本发明另一较佳实施例的处理器的存储器数据存取装置及其存取方法(但具有分支指令预测机制);以及图5表示根据本发明较佳实施例中针对时脉信号与读取、解码与执行三个阶段所执行范例程序段指令的关系。
较佳实施例说明本发明提供一种处理器的存储器数据存取装置及其存取方法,在本发明的装置中,对于每一个由处理器所执行而进入执行阶段的指令,其执行结果将会由处理器所确认,而且经由控制信号传送到高速缓冲存取存储器。根据这些控制信号,高速缓冲存取存储器可决定当所要读取的指令并未存在高速缓冲存取存储器时,是否从外部的存储器读取此指令。这样的装置,不论处理器是否具有分支指令预测机制皆不会使处理器有现有技术中所产生必须浪费许多操作时脉以补偿高速缓冲存取存储器没有读取到的情形,因此,可以显著地改善整个处理器的效能。
图3表示本发明一较佳实施例的处理器的存储器数据存取装置及其存取方法。在此装置中,主要系针对不具备分支指令预测机制的中央微处理器(CPU)300说明,但本发明并未限定仅适用于中央微处理器,只要对于必须经由读取、解码与执行指令的处理器,都在本发明的范围。在此假设中央微处理器300为一流水线式处理器,其内部分成3个流水线阶段,亦即在执行指令时,会经过读取指令、解码指令与执行指令三个阶段。
请参照图3,中央微处理器300包括一D型触发器元件310、一解码器320、一D型触发器元件330与一执行单元340。D型触发器元件310接到由高速缓冲存取存储器301经由线路302所传来的指令,之后藉由D型触发器元件312做一时脉(Clock)上的延迟,并送到解码器320。经过解码器320的解码之后,经由线路322传送解码后的指令到另一D型触发器元件330做时脉的延迟,之后藉由线路332转送到执行单元340以便执行此指令。
而此执行单元340在执行后会将控制信号,例如执行结果等等传回高速缓冲存取存储器301。而这些执行条件则必须反应出在目前执行阶段的指令是否系为分支指令以及其是否跳跃。根据这些控制信号,高速缓冲存取存储器301会决定是否未读取到的指令,也就是目前未储存在高速缓冲存取存储器301的指令(如本申请现有技术中所介绍的指令I3)是否需要读取。若是不需要,可将不会从外部的存储器中读取此指令,也就是不会发出要求以读取此指令,因此,也不会有如现有技术中所述的造成时脉上的延误。
另外,所执行的结果也会传回到一多路复用器350,若是执行的指令为分支指令,则结果应为一目标地址。而此多路复用器350连接到此中央微处理器300的程序计数器(Program Counter,底下简称为PC)360,此程序计数器360用以储存在众多将要执行的指令中当前所执行指令的位置。而在多路复用器350与程序计数器360中间有一加法器370。此程序计数器360将目前所执行的指令的位置数据传给加法器370,而加法器370经过加法运算后传到多路复用器350。若是在执行分支指令之后,则此分支指令执行的结果与加法器370所输出的数据会经过多路复用器350输出一地址信号或是目标地址到高速缓冲存取存储器301,以告知下一个欲执行的指令地址。
图4表示本发明另一较佳实施例的处理器的存储器数据存取装置及其存取方法。在此装置中,主要针对具备分支指令预测机制的中央微处理器(CPU)400说明,然本发明并未限定仅适用于中央微处理器,只要对于必须经由读取、解码与执行指令的处理器,都在本发明的范围。
请参照图4,中央微处理器400包括一D型触发器元件410、一解码器420、一D型触发器元件430、一执行单元440、一比较器450与一分支指令预测机制460。
D型触发器元件410接到由高速缓冲存取存储器401经由线路402所传来的指令,之后藉由D型触发器元件410做一时脉(Clock)上的延迟,并送到解码器420。经过解码器420的解码之后,经由线路422传送解码后的指令到另一D型触发器元件430做时脉的延迟,之后藉由线路432转送到执行单元440以便执行此指令。
而此执行单元440在执行后会将执行结果,与经由本实施例中的分支指令预测机制460根据线路402所接收的指令,输出一预测地址(经过线路464、一D型触发器元件480、线路482、D型触发器元件481与线路483)传送到比较器450,比较之后输出一比较信号,经由线路452传送到高速缓冲存取存储器401。而此比较信号即为含有分支指令预测修正的控制信号,而高速缓冲存取存储器401则根据此比较信号决定是否读取未读取到的指令,也就是目前未储存在高速缓冲存取存储器401的指令(如本申请现有技术中所介绍的指令I3)是否需要读取。若是不需要,则可不从外部的存储器中读取此指令,也就是不会发出要求以读取此指令,因此,也不会有如现有技术中所述的造成时脉上的延误。
另外,所执行的结果也会传回到一多路复用器470。而此多路复用器470除了接到执行结果外,亦会接到由程序计数器PC所传来经过加法器相加的PC+4的信号404。除此之外,分支指令预测机制460所输出的预测地址也会经由线路462传到多路复用器470。若是执行单元440所执行的指令是分支指令,则其执行结果将会是一目标地址。而根据这些信号,多路复用器470将会传送一地址信号到高速缓冲存取存储器401,以读取此指令。
图5表示根据本发明较佳实施例中针对时脉信号与读取、解码与执行三个阶段所执行范例程序段指令的关系。为清楚地说明与比较,本图采用与现有技术的图2B中相同的情况,以突显本发明的特点。图5所示操作时脉(Clock,此称为C)中,C1、C2、C3...C8是分别代表第1、2、3...、8个时脉。当指令I1是在执行阶段时,也就是在第3个时脉C3时间点,本实施例中的中央微处理器会到高速缓冲存取存储器读取指令I3。而在此时,若是指令I3并未在高速缓冲存取存储器120中时,则与现有技术的不同点是根据从中央微处理器所传来的控制信号(例如执行结果等等),会由高速缓冲存取存储器决定是否到外部的存储器读取此指令。
而若是指令I1是属于分支指令,则此指令I1将会改变程序所执行的方向,以此例而言,也就是读取指令I10,此时高速缓冲存取存储器则将同时决定不传送到外部存储器要求读取指令I3的请求。因此,此时中央微处理器将在下一时脉开始时读取分支指令所要执行在目标地址的指令I10。如此设计将不必等到高速缓冲存取存储器的读取指令I3请求完成为止才能继续读取目标地址的指令。
依照本发明的处理器的存储器数据存取装置及其存取方法,则不会浪费许多的操作时脉。这对于高效能且高速处理的处理器而言,避免这些延迟将会对于效能有很显著的改善。
虽然本发明已以一较佳实施例披露如上,然其并非用以限定本发明,任何本领域熟练技术人员,在不脱离本发明的精神和范围的前提下,均可作各种更动与修改,本发明的保护范围以权利要求范围所限定的为准。
权利要求
1.一种适用于处理器的存储器数据存取装置,包括一高速缓冲存取存储器,用以储存并输出一指令,其中,该指令依照一地址信号输出该指令;以及一流水线式处理器,用以执行多个处理器指令,该处理器指令至少包括一分支指令,其中该流水线式处理器包括一执行单元,根据前一阶段传来的该指令做一执行的操作,并输出一结果信号与一控制信号,其中该控制信号用以传送到该高速缓冲存取存储器,其中,当该执行单元正在执行该指令为一分支指令时,则该结果信号为一目标地址,并经选择后输出一地址信号至该高速缓冲存取存储器,以根据该选择后的该地址信号读取下一欲执行的指令,当该执行单元正在执行该分支指令时,该处理器正在对该高速缓冲存取存储器读取一读取指令,而当在执行该分支指令后所得的该控制信号,传送到该高速缓冲存取存储器时,若是该读取指令未在该高速缓冲存取存储器时,则该高速缓冲存取存储器将依据该控制信号决定是否对一外部存储器读取该读取指令。
2.如权利要求1所述的存储器数据存取装置,其中该控制信号将指示当前在执行阶段的指令是否为一个跳跃的分支指令。
3.如权利要求1所述的存储器数据存取装置,其中更包括一程序计数器,用以储存在该些欲执行的指令中当前所执行的该指令的地址。
4.如权利要求3所述的存储器数据存取装置,其中更包括一多路复用器,用以接收由该执行单元所输出的该结果信号与该程序计数器所储存的该执行地址加上一既定值的信号,并选择输出其中的一信号成为该地址信号。
5.一种适用于处理器的存储器数据存取装置,包括一高速缓冲存取存储器,用以储存并输出一指令,其中,该指令依照一地址信号依序输出该指令;一流水线式处理器,用以执行多个处理器指令,该些处理器指令至少包括一分支指令,其中该流水线式处理器包括一执行单元,并根据前一阶段传来的该指令,做一执行的操作,并输出一结果信号;一分支指令预测机制,用以根据一读取指令,输出一预测地址;一比较器,用以接收该结果信号与该预测地址,并输出一比较信号,其中当该执行单元正在执行该指令为一分支指令时,则该结果信号为一目标地址,并经选择后输出一地址信号至该高速缓冲存取存储器,以根据该地址信号读取下一欲执行的指令,当该执行单元正在执行该分支指令时,该处理器正在对该高速缓冲存取存储器读取一读取指令,而当在执行该分支指令后所得的该结果信号,将会传送到该比较器,而比较器会根据该结果信号与该预测地址,比较后输出该比较信号到该高速缓冲存取存储器,若是该读取指令未在该高速缓冲存取存储器时,则该高速缓冲存取存储器将依据该比较信号决定是否对一外部存储器读取该读取指令。
6.如权利要求5所述的存储器数据存取装置,其中更包括一程序计数器,用以储存在该些欲执行的指令中当前所执行的该指令的地址。
7.如权利要求6所述的存储器数据存取装置,其中更包括一多路复用器,用以接收由该执行单元所输出的该结果信号、该程序计数器所储存的该执行地址加上一既定值的信号与该预测地址,并选择输出其中的一信号成为该地址信号。
8.如权利要求5所述的存储器数据存取装置,其中该比较信号将指示该分支指令预测机制对于位于执行阶段的分支指令的预测是否正确。
9.一种适用于处理器的存储器数据存取方法,包括依照一地址信号依序提供一个指令;执行该指令,并输出一结果信号与一控制信号,其中,当该所执行的该指令为一分支指令时,则该结果信号为一目标地址,并经选择后输出一地址信号至一高速缓冲存取存储器,以根据该选择后的该地址信号读取下一欲执行的指令,当执行该分支指令时,该处理器将同时读取一读取指令,当该读取指令未在用以储存该些指令的该高速缓冲存取存储器时,则该高速缓冲存取存储器将依据该控制信号决定是否对一外部存储器读取该读取指令。
10.如权利要求9所述的存储器数据存取方法,其中该控制信号将指示目前在执行阶段的指令是否为一个跳跃的分支指令。
11.如权利要求9所述的存储器数据存取方法,其中更包括选择性地输出该结果信号与该处理器目前正在处理指令的地址加上一既定值其中的一信号。
12.一种适用于处理器的存储器数据存取方法,包括依照一地址信号输出一指令;执行该指令,并输出一结果信号;以一分支指令预测机制接收一读取指令,并输出一预测地址;比较该结果信号与该预测地址,并输出一比较信号,其中当所执行的该指令为一分支指令时,则该结果信号为一目标地址,并经选择后输出一地址信号至一高速缓冲存取存储器,以根据该地址信号读取下一欲执行的指令,当在执行该分支指令,该处理器正在读取一读取指令时,根据该比较信号,若是该读取指令未在该高速缓冲存取存储器时,则该高速缓冲存取存储器将决定是否对一外部存储器读取该读取指令。
13.如权利要求12所述的存储器数据存取方法,其中更包括选择性地输出该结果信号、该处理器目前正在处理指令的地址加上一既定值、与该预测地址其中的一信号。
14.如权利要求12所述的存储器数据存取方法,其中该比较信号将指示该分支指令预测机制对于位于执行阶段的分支指令的预测是否正确。
全文摘要
一种处理器的存储器数据存取装置及其存取方法,对于每一个由处理器所执行而进入执行阶段的指令,其执行结果将由处理器确认,而且经由控制信号传送到高速缓冲存取存储器。根据这些控制信号,高速缓冲存取存储器可决定当所要读取的指令并未存在该存储器时,是否从外部存储器读取此指令。因此,不论处理器是否具有分支指令预测机制,皆不会有现有技术中所产生的必须浪费许多操作时脉以补偿存储器没有读取到的情形,从而可以显著地改善整个处理器的效能。
文档编号G06F9/38GK1357837SQ0013536
公开日2002年7月10日 申请日期2000年12月12日 优先权日2000年12月12日
发明者汲世安, 桂念慈, 王裕闵 申请人:智原科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1