CN1734415A - 分枝预测装置及分枝预测方法 - Google Patents
分枝预测装置及分枝预测方法 Download PDFInfo
- Publication number
- CN1734415A CN1734415A CN200510092422.7A CN200510092422A CN1734415A CN 1734415 A CN1734415 A CN 1734415A CN 200510092422 A CN200510092422 A CN 200510092422A CN 1734415 A CN1734415 A CN 1734415A
- Authority
- CN
- China
- Prior art keywords
- branch
- execution unit
- thread execution
- address
- prediction
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004891 communication Methods 0.000 claims description 3
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000000605 extraction Methods 0.000 description 46
- 230000015654 memory Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 18
- 230000007704 transition Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 11
- 238000001514 detection method Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Abstract
本发明揭示一种分枝预测装置及分枝预测方法。本发明的分枝预测装置,是使第1与第2线程执行单元之间能够进行信息通信的分枝预测装置,本发明提供给提高线程的分枝预测精度的分枝预测装置和分枝预测方法。线程执行单元之间能够进行信息通信的分枝预测装置具备:存储第1线程执行单元的分枝预测信息的第1分枝预测表,存储第2线程执行单元的分枝预测信息的第2分枝预测表,根据读出地址访问第1和第2分枝预测表的读出地址寄存器,以及在第2线程执行单元处于待机状态期间利用读出地址,从第1或第2分枝预测表读出第1或第2线程执行单元的分枝预测信息,向第1线程执行单元输出的选择电路。
Description
技术领域
本发明涉及分枝预测装置及分枝预测方法。
背景技术
近年来的处理器中,有日本专利特开平11-96005号公报所述的、处理器用各线程执行部执行各线程的结构的多线程处理器。
但是,线程的分枝结果的预测精度低,在分枝预测本身落空的情况下,存在处理器性能低下的问题。
本发明提供给能够提高线程的分枝预测精度的分枝预测装置和分枝预测方法。
发明内容
本发明的一种形态是使第1线程执行单元与第2线程执行单元能够进行信息通信的分枝预测装置,具备:存储第1线程执行单元的分枝预测信息的第1分枝预测表,存储第2线程执行单元的分枝预测信息的第2分枝预测表,根据从第1线程执行单元接收的读出地址、访问第1和第2分枝预测表的读出地址寄存器,以及在第2线程执行单元处于待机状态期间利用读出地址、从第1或第2分枝预测表读出第1或第2线程执行单元的分枝预测信息、向第1线程执行单元输出的选择电路。
本发明另一形态是包含如下所述的步骤的分枝预测方法,即、从第1线程执行单元接收读出地址,根据读出地址访问第1和第2分枝预测表,判定第2线程执行单元的待机状态,在第2线程执行单元处于待机状态期间根据读出地址从第2分枝预测表读出第2线程执行单元的分枝预测信息,向第1线程执行单元输出。
附图说明
图1是本发明的实施形态的分枝预测装置的方框图。
图2是具备本发明的实施形态的分枝预测装置的处理器的方框图。
图3是具备本发明的实施形态的分枝预测装置的处理器的动作流程图。
图4是使用于本发明的实施形态的命令提取(fetch)单元的方框图。
图5是本发明的实施形态的分枝预测装置的方框图。
图6是本发明的实施形态的分枝预测装置中使用的分枝预测信息的状态变迁图。
图7是本发明的实施形态的分枝预测装置的时间图。
图8是本发明的实施形态的分枝预测装置的时间图。
图9是本发明的实施形态的分枝预测装置的流程图。
具体实施形态
本发明的实施形态的分枝预测装置,如图1所示,是使第1线程执行单元13与第2线程执行单元14之间能够进行信息通信的分枝预测装置12,具备:存储所述第1线程执行单元13的分枝预测信息的第1分枝预测表15、存储第2线程执行单元的分枝预测信息的第2分枝预测表16、根据读出地址,访问第1和第2分枝预测表15、16的读出地址寄存器40、以及在第2线程执行单元14处于待机状态期间利用读出地址,从第1或第2分枝预测表读出第1或第2线程执行单元13、14的分枝预测信息,向所述第1线程执行单元13输出的选择电路42。
第1线程执行单元13具备:接收分枝预测信息的命令提取单元20a、本事第2分枝预测表16的共有状态的共有标记17、分枝命令地址寄存器40a、以及切换电路41。又,第2线程执行单元14具备连接于第2分枝预测表16,输出分枝命令的分枝命令地址寄存器40g。
而且,分枝预测装置12还具备设置在选择电路42的输出级,判定分枝预测信息的成功比例的判定电路44a。
分枝预测装置12中设置的判定电路44a连接于第1线程执行单元13的命令提取单元20a。设置在分枝预测装置12上的选择电路42连接于第1线程执行单元13的切换电路41上。第1线程执行单元13的分枝命令地址寄存器40a连接于分枝预测装置12的读出地址寄存器40上,第1线程执行单元13的切换电路41连接于共有标记17及分枝命令地址寄存器40a中的表切换位18(图中简单记为“T”)。
分枝预测装置12,通过在第2线程执行单元14处于待机状态期间,可以根据输出共有标记(F)17与分枝命令地址寄存器40a中的表切换位18的逻辑积的切换电路47的输出信号,由第1线程执行单元13使用第2分枝预测表16,使分枝预测表实质上扩张,以此能够提高第1线程执行单元13的条件分枝预测精度。
第2线程执行单元14的待机状态相当于在程序并行化的过程中执行程序之前不能够进行并行处理的周期(cycle)。在不能够进行并行处理的周期的比例大的情况下,可以使第1线程执行单元13的条件分枝命令的预测精度提高,能够提高并行处理装置的程序执行效率。
本发明的实施形态的分枝预测装置12组装于多线程执行处理器,包含在生成代码时能够由编程者或编译者静态地预测存在于命令代码中的条件分枝命令分枝预测装置。
采用本发明的合适的实施形态,与具备能够静态预测条件分枝目的地的分枝预测装置12处理器相比,条件分枝命令能够根据动态履历以某种程度的几率预测分枝目的地,而且都以执行预测不到的条件分枝命令的处理器为对象。
如图2所示,处理器1连接于外部存储器23,具备命令高速缓冲存储器(cache)10、线程管理部11、分枝预测装置12、第1线程执行单元13、以及第2线程执行单元14。
第1线程执行单元13具备与命令高速缓冲存储器10及提取单元20a连接的命令译码器21a、与命令提取单元20a及命令译码器21a连接的分枝验证器22a、与命令译码器21a及共有标记17连接的切换电路41。
第1线程执行单元13的命令译码器21a在内部设置图1所示的分枝命令地址寄存器40a,如图1所示,向切换电路41提供表切换位18的信号。
还有,分枝命令地址寄存器40a不限于设置在命令译码器21a内部,只要如图1所示,例如独立于命令提取单元20a等其他电路地设置分枝命令地址寄存器40a即可。
第2线程执行单元14具备与命令高速缓冲存储器10连接的命令提取单元20b、与命令高速缓冲存储器10及命令提取单元20b连接的命令译码器21b、以及与命令提取单元20b和命令译码器21b连接的分枝验证部22b。
在图2中,图1所示的分枝命令地址寄存器40g省略。分枝命令地址寄存器40g可以设置在命令译码器21b内部,也可以设置在命令译码器21b内部,又可以根据电路设计与命令译码器21b分开设置。
分枝预测装置12在第2线程执行单元14处于待机状态的期间,在第1线程执行单元13使用第1及第2分枝预测表15、16,以此使第1线程执行单元13的条件分枝预测精度有飞跃提高。
处理器1使第1和第2线程执行单元13、14工作,执行多线程时,程序中的顺序部分中,一方的线程执行部以外产生待机状态的期间。
处理器1在第2线程执行单元14处于待机状态的情况下,使线程的分枝命令的预测精度提高,提高分枝命令的处理性能。
在本发明的实施形态的情况下,在处理器1的并行处理中,利用待机状态下的线程执行部使用的分枝预测装置12,可以提高条件分枝命令的精度。
图3表示使用图1和图2所示的分枝预测装置12的管道(pipeline)方式的处理器1的分枝命令处理序列数据流。在图3中,表示第1线程执行单元13一侧的处理系列随时间的变化,第2线程执行单元14一侧的构件省略。
管道方式的处理器1在第2线程命令执行单元14处于待机状态的情况下,使第1线程执行单元13一侧的命令高速缓冲存储器10、命令高速缓冲存储器10上连接的命令译码器21a、命令高速缓冲存储器10上连接的分枝预测装置12、分枝预测装置12上连接的第1线程执行单元13一侧的命令提取单元20a、命令提取单元20a和分枝预测装置12上连接的第1线程执行单元13一侧的分枝验证器2a动作。
在这种情况下,第1线程命令执行单元13通过图1所示的读出地址寄存器40访问第1和第2分枝预测表15、16。
第1线程命令执行单元13的切换电路41,共有标记17为逻辑值“1”,表切换位18以逻辑值“1”为条件,使选择电路42选择从第2分枝预测表读出的分枝预测信息,使第1线程执行单元13一侧的命令提取单元20a通过判定电路44a接收。
图3所示的管道阶段(stage)中,包含命令高速缓冲存储器10和第1线程执行单元13一侧的命令提取单元20a工作的IF阶段、第1线程执行单元13一侧的命令译码器21a和分枝预测装置12工作的ID阶段、以及第1线程执行单元13一侧的分枝验证器2a工作的EXE阶段,第1线程执行单元13处理命令分枝。
分枝预测装置12将命令高速缓冲存储器10连接于输入级,从命令高速缓冲存储器10输入地址。又,分枝预测装置12连接于第1线程执行单元13一侧的分枝验证器22a,将分枝命令执行信号和分枝结果输入。
第1线程执行单元13的命令提取单元20a连接于分枝预测装置12,从分枝预测装置12输入分枝预测结果A。又,命令提取单元20a连接于第1线程执行单元13的命令译码器21a,从命令译码器21a输入分枝命令检测信号B和分枝目的地地址C。
命令提取单元20a还连接于第1线程执行单元13的分枝验证器22a,从分枝验证器22a输入周期提取地址(cycle fetch address)D以及地址选择信号E。
命令高速缓冲存储器(cache)10连接于第1线程执行单元13的命令译码器21a,从命令高速缓冲存储器10提取的命令被输出到第1线程执行单元13的命令译码器21a。命令译码器21a将命令解码,生成执行代码输出。
下面参照图2和图3说明管道方式的处理器1的动作。
管道方式的处理器将命令提取阶段(instruction fetch stage)(以下简称为“IFstage”)、命令译码阶段(instruction decode stage)(以下简称为“ID stage”)、命令执行阶段(以下简称为“EXE stage”)构成的各阶段与机械周期(machine cycle)同步执行。
命令提取单元20a根据程序计数器(program counter)的地址,访问命令高速缓冲存储器10,从命令高速缓冲存储器10读出命令。
命令高速缓冲存储器10在ID阶段向命令译码器21a输入命令,使其生成执行代码。并行地从命令提取单元20a输出的程序计数器的地址被输入命令译码器21a和分枝预测装置12。
分枝预测装置12在ID阶段将分枝命令的分枝预测结果A发送到命令提取单元20a,报告下一管道阶段(pipeline stage)执行的命令中的准确度。
接着,转移到EXE阶段,分枝验证器22a验证命令译码器21a输出的执行代码的分枝是否成立。又,分枝验证器22a将分枝预测装置12是否正确进行了预测的分枝验证结果反馈给命令提取单元20a。同时分枝验证器22a将分枝验证结果反馈给分枝预测装置12,使用于图1所示的第1或第2分枝预测表15、16的预测信息的更新。
图4是图1~图3所示的第1线程执行单元13一测的命令提取单元20a的的方框图。命令提取单元20a具备:加法器30、将加法器30的加法运算结果与分枝目的地地址的加以输入的选择电路33、输入选择电路333的选择结果和周期提取地址的选择电路34、连接于选择电路24的输出的地址寄存器31(PC)、以及输入分枝命令检测信号和分枝预测结果的AND电路32,将提取地址(fetch address)输出到图3所示的命令高速缓冲存储器10。
选择电路33从AND电路32接收分枝预测结果与分枝命令检测信号的逻辑积,选择分枝目的地地址与加法器30的输出中的任一项。选择电路33所选择的信号由下一级的选择电路34的一个输入端子接收。
选择电路34接收地址选择信号,选择下一周期提取地址和选择电路33所选择的信号中的任一项,输出到下一级地址寄存器31。地址寄存器31向命令高速缓冲存储器10输出提取地址(fetch address)。
假如是在处理不包含分枝命令的管道阶段的情况下,在选择电路34控制为,不选择接着的周期提取地址地,而通过选择电路33从地址寄存器31选择前一周期的提取地址用加法器30加上「4」地址值的提取地址。
在分枝命令处理的几率高的情况下,AND电路32分别从图3所示的分枝预测装置12输入作为分枝预测结果的高电平信号,而且从命令译码器21a输入作为分枝命令检测信号的高电平信号,输出高电平信号(H)对选择电路33进行控制,使选择电路33选择输入的分枝目的地地址。
另一方面,选择电路33在不是分枝命令的管道阶段选择提取地址加上「4」地址值的下一个提取地址,通过选择电路34输出到地址寄存器31。
选择电路34还在执行阶段,在分枝预测有偏差的情况下将地址选择信号转移到高逻辑值(H),从选择电路34向地址寄存器31(PC)输出下一周期提取地址。
这样,命令提取单元能够响应从分枝预测装置12接收的分枝预测结果和分枝命令检测信号,选择下一个提取地址,进行分枝预测。
图5是图1~图3所示的分枝预测装置12的方框图。分枝预测装置12具备设置在第1线程执行单元一侧的分枝命令地址寄存器40a和切换电路41、与设置在第2线程执行单元一侧的分枝命令地址寄存器40g连接的第1分枝预测表15以及第2分枝预测表16。
分枝预测装置12具备:在分枝每地址寄存器40a上连接的前预测地址寄存器40b、选择电路42a、及第1分枝预测表15、第1分枝预测部15上连接的选择电路42b及前状态寄存器40d、在选择电路42b的输出上连接的判定电路44a、在所述状态寄存器40d上连接的状态转移电路43a、连接于第1分枝预测表15上的可写入生成电路(WE)44、连接于分枝命令地址寄存器40g上的选择电路42a、连接于选择电路42a上的第2分枝预测表16及前预测地址寄存器40c、连接于第2分枝预测表16的选择电路42b、判定电路44b、及前状态寄存器40e、前状态寄存器40e上连接的状态转移电路43b、第2分枝预测表16上连接的可写入生成电路(WE)44d、切换电路41上连接的前选择寄存器40f、以及前选择寄存器40f上连接的选择电路42c、42d。
第1分枝预测表15将在输入侧从第1线程执行单元一侧的分枝命令地址寄存器40a的任意位数提取的最上位位MSB(Most Significant Bit)起最下位位LSB(Least Significant Bit)的位群构成的分枝命令地址作为读出地址接收。
分枝命令地址也存储于前预测地址寄存器40b。
前状态寄存器40d对应于图2所示的分枝验证器22a输出的分枝验证结果,更新第1分枝预测表15的内容。
可写入生成电路44c接收分枝命令执行信号,用前预测地址寄存器40b的地址与状态转移电路43a的输出更新第1分枝预测表15的内容。
选择电路42c通过前选择寄存器40f从切换电路41接收切换信号,选择图2所示的第1线程执行单元一侧的分枝验证器22a的分枝验证结果和第2线程执行单元一侧的分枝验证器22b的分枝验证结果中的任一项分枝验证结果。
选择电路42b连接于切换电路41,选择第1分枝预测表15或第2分枝预测表16中的任一方的分枝预测信息,输入到下一级的判定电路44a。判定电路44a根据接收的分枝预测信息输出第1分枝预测结果。
第2分枝预测表16连接于选择分枝命令地址寄存器40a和分枝命令地址寄存器40g中的任一方的输出的选择电路42a上,接收读出地址。
第2线程执行单元一侧的分枝命令地址寄存器40g从由任意位数开始提取的最上位位MSB读出最下位位LSB的位群构成的分枝命令地址作为地址,从第2分枝预测表16读出分枝预测信息,同时将分枝预测信息的地址存储于前预测地址寄存器40c。
第2分枝预测表16将所述前预测地址寄存器40c存储的分枝命令地址作为写入地址接收,第2分枝预测表16最好是能够响应可写入生成电路44d的写入许可信号,对应于由第2线程执行单元一侧的分枝验证器22b(参照图2)输出分枝验证结果,更新第2分枝预测表16的内容。
选择电路42d通过前选择寄存器40f从切换电路41接收切换信号,选择来自第1线程执行单元一侧的分枝验证器22a的分枝命令信号和来自第2线程执行单元一侧的分枝验证器22b的分枝命令执行信号中的任一方的分枝命令执行信号。
第2分枝预测表16通过判定电路44b输出分枝预测信息。
本发明的实施形态的分枝预测装置如图6(a)所示,将利用2位的状态转移得到的分枝成立预测几率作为分枝预测信息决定。
图5的分枝预测装置12在强成立预测步骤S50中,在分枝成立几率最高的状态使分枝预测「成立」的情况下,用分枝预测表15或分枝预测表16的分枝预测信息维持强成立预测S50。
在强成立预测S50在状态下,使分枝预测「不成立」时,转移到弱成立预测S51的顺序。弱成立预测S51的顺序是在分枝预测装置12中分枝成立几率第2高的状态。
分枝预测装置12在分枝成立几率第2高的弱成立预测S51的状态使分枝预测「成立」时,用分枝预测表15或分枝预测表16的分枝预测信息转移到强成立预测S50。
在弱成立预测S51在状态下使分枝预测「不成立」时,转移到弱不成立预测S52。弱不成立预测S52的顺序是在分枝预测装置12中分枝成立几率第3高的状态。
分枝预测装置12在分枝成立几率第3高的弱不成立预测S52的状态使分枝预测「成立」时,用分枝预测表15或分枝预测表16的分枝预测信息转移到弱成立预测S51。
在弱不成立预测S52在状态下使分枝预测「不成立」时,转移到强不成立预测S53。强不成立预测S53是在分枝预测装置12中分枝成立几率第4高的状态,换句话说,是最下位的分枝成立预测的顺序。
分枝预测装置12在分枝成立几率最低的强不成立预测S53的状态使分枝预测「成立」时,用分枝预测表15或分枝预测表16的分枝预测信息转移到弱不成立预测S52。
在强不成立预测S53在状态下使分枝预测「不成立」时,维持强不成立预测S53的状态。
本发明并不限于强成立预测S50至强不成立预测S53的顺序。例如也可以如图6(b)所示,控制为在成立预测最高的强成立预测S55之后至于到弱成立预测S56,在弱成立预测S56之后至于到强不成立预测S57,在强不成立预测S57之后至于到弱不成立预测S58,从弱不成立预测S58转移至强成立预测S55。分枝的成立预测顺序可以相应于电路设计适当加以变更。
本发明不限于对应分枝预测的「成立」或「不成立」决定下一分枝成立预测的顺序。也可以例如图6(c)的右侧所示,从由第1分枝预测表15或第2分枝预测表16读出的读出值(例如2位的值)中,用判定电路44a或判定电路44b选择上位的1位,生成分枝预测结果,提供高精度的分枝预测顺序。
也就是说,分枝预测装置12在第1或第2分枝预测表15、16的读出值是图6(c)左侧所示的「强成立预测」及「弱成立预测」的情况下,作为分枝成立,判定电路44a或判定电路44b选择读出值的上位1位,判定为分枝成立(位「1」)。
另一方面,分枝预测装置12在第1或第2分枝预测表15、16的读出值是图6(c)左侧所示的「弱不成立预测」及「强成立预测」的情况下,判定电路44a或判定电路44b如图6(c)右侧所示,选择读出值的上位1位,判定为分枝不成立(位「0」)。
图7是具备本发明的实施形态的分枝预测装置的管道处理器的动作说明用的时间图。下面参照图2和图7对处理器1的动作进行说明。
第1线程执行单元13执行包含分枝命令的程序。例如以管道方式处理带「beq」的条件的分枝命令60,输出与各管道阶段的分枝控制关联的提取阶段、译码阶段、执行阶段的程序计数器(PC)的地址。
在命令高速缓冲存储器10,在将表示例如16进位的代码「0x」与地址「100」加以组合的PC地址「0x100」号存储带「beq」的条件的分枝命令60。
在寄存器19b存储从命令高速缓冲存储器读出命令用的PC地址。在寄存器19a,原封不动地存储从命令高速缓冲存储器读出的命令。在读出PC地址「0x100」号的命令高速缓冲存储器的内容的情况下,在寄存器19a存储表示「beq」的命令代码、分枝的条件判定使用的通用寄存器的号码「$1」、「$2」、以及分枝目的地的地址生成用的分枝(offset)的「0x64」,在寄存器19b存储PC地址「0x100」。
在读出PC地址「0x104」号的命令高速缓冲存储器的内容的情况下,寄存器19a存储表示「add」的命令代码以及通用寄存器的号码「$8」、「$9」。
在读出PC地址「0x164」号的命令高速缓冲存储器的内容的情况下,寄存器19a存储表示「lw」的命令代码以及通用寄存器的号码「$10」、「$11」。
寄存器19a、19b、19c对应于称为「管道寄存器」的结构要素,「通用寄存器」作为通常「16」~「32」个左右的寄存器的集合,对应于称为「通用寄存器文件(register file)」的结构要素。
寄存器19a输入命令的内容(例如用6位表示beq)、作为操作数(operand)的通用寄存器1号(例如用5位表示$8)、作为操作数的通用寄存器号2(例如用5位表示$9)、和相对地址指定(例如用16位表示分枝为PC加上「0x64」的地址)并加以存储。
寄存器文件19a用总共32位存储从命令高速缓冲存储器读出的数据(例如命令),命令高速缓冲存储器10的内容也是这样的32单位的命令多个并列存储。
寄存器19c存储译码后的命令内容(例如20位中的数位表示「beq」)、作为操作数的1号的通用寄存器的内容(例如32位)、和作为操作数的2号的通用寄存器的内容(例如32位)。
第1线程执行单元13沿着上部所示的执行周期(图中「C1」~「C8」)的号码利用管道方式处理各命令。
处理器1在5级的管道阶段构成的执行周期处理「beq」、「add」的命令。各管道阶段包含命令提取(IF)、命令译码「ID」、命令执行(EXE)、存储器访问(MEM)、以及寄存器回复(writeb back)(WB),在一个管道阶段进行一个处理。
处理器1用「lw」的命令执行在各管道阶段执行包含命令提取「IF」、命令译码「ID」、地址计算(AC)、存储器访问(MEM)、以及寄存器回复(WB)的一连串处理。
处理器1在使分枝预测装置12动作执行附带条件的分枝命令60的情况下,分枝命令处理的流程总共有4个。也就是说,因为处理器1的分枝预测结果和分枝结果的组合有4个。
处理器1在分枝预测和分枝结果都是分枝成立的情况下,以及分枝预测结果预测分枝成立,定时,分枝结果是分枝不成立的情况下,处理的流程不同。
分枝预测装置12预测分枝预测结果是分枝成立,对分枝结果也是分枝成立的情况的处理器1的分枝控制进行说明。
处理器1在执行周期C1,进行「x0100」号的命令的IF阶段的处理。例如,命令提取单元20a将「0x100」作为提取地址输出到命令高速缓冲存储器10和管道寄存器。
第1线程执行单元13将「0x100」号的「beq」的命令与用第1和第2操作数指定的通用寄存器「$1」、「$2」的内容加以比较,在两个值相等的情况下,使处理分枝为读入当前的「beq」的命令的地址加上「0x64」号的相对地址。
另一方面,在通用寄存器「$1」、「$2」的值不相等的情况下,不分枝的命令的IF阶段结束时,将从命令高速缓冲存储器10读出的「BEQ」的命令写入管道寄存器。
第1线程执行单元13同时将「0x100」号地址写入管道寄存器,在命令提取单元20a的内部,检测出命令译码器21a来的分枝命令检测信号与分枝验证器22a来的地址选择信号为低电平的OFF状态,在下一周期将命令作为读入地址,选择在当前的提取地址上加上4地址的加法器30(参照图4)的输出,在管道阶段结束时,将PC地址写入地址寄存器31(参照图4)。
第1线程执行单元13在执行周期C2,在IF阶段对「0x104」号的「add」的命令进行提取处理,同时,在ID阶段对「0x100」号码61的「beq」的命令进行译码处理。
第1线程执行单元13在ID阶段将读出地址「0x100」号码61和读出的命令(BEQ命令)等输入到译码器21a,生成各种控制信号和数据,在管道阶段结束时,将生成的数据写入管道寄存器。
第1线程执行单元13进行如下所述控制,即在译码的命令是分枝命令的情况下,将命令译码器21a的分枝命令检测信号作为高电平(H)的ON状态检测出,生成分枝地址的「0x164」号码62,同时从分枝预测装置12输出「0x100」号码61的条件分枝命令的分枝预测结果。
处理器1将图1所示的共有标记17设为「0」,分枝预测装置12利用来自第1或第2线程执行单元13、14的控制,用分别对应的第1或第2分枝预测表15、16(图1),输出分枝预测结果。
处理器1在将共有标记17设为「0」的情况下,利用第1线程执行单元13进行的控制,使采用第1分枝预测表15(图1)的分枝预测模块工作。
分枝预测装置12将存储于分枝命令地址寄存器40a的分枝命令地址的任意LSB~LSB的位群(例如,从下位n位到下位3位为止)作为第1分枝预测表15的读出地址「0x40」输入,执行分枝预测数据的读出动作。
例如,在处理器1中,命令为32位的固定长度,放置命令的前头地址每4位写入命令高速缓冲存储器10,最下位的2位用二进制表示为「00」,因此将除了最下位的2位以外的读出地址作为读出地址的对象。
分枝预测装置12在线程执行时,使用2位计数器方式的动态分枝预测方式,从第1分枝预测表15的「0x40」号读出的2位长度的读出值(或数据)「11」经过选择电路42b(参照图5)被输入到判定电路44a(参照图5),也并行地将「11」输入到前状态寄存器40d。
又,分枝预测装置12将读出地址「0x40」输入到前预测地址寄存器40b,在管道阶段终止结束时将「0x40」写入。
判定电路44a根据第1分枝预测表15的读出值与分枝预测结果的关系,从判定电路44a输出表示分枝成立的「TRUE」分枝预测输出63。该分枝预测表15的读出值的2进位表示设定为强不成立预测时「00」、弱不成立预测时「01」、弱成立预测时「10」、强成立预测时「11」。
在命令提取单元20a中,检测分枝命令检测信号高电平(H)的ON状态,设定为分枝预测结果为分枝成立的「TRUE」分枝预测输出63,因此选择命令译码器21a生成的分枝目的地地址,在管道阶段结束时作为PC地址写入地址寄存器31。
第1线程执行单元13在执行周期C3,执行「0x164」号码65的命令的IF阶段的处理、以及「0x104」号的命令的ID阶段的处理。并行地在EXE阶段对「0x100」号码65的命令进行处理。
第1线程执行单元13在ID阶段从寄存器19c读出执行代码,在EXE阶段执行该执行代码。
第1线程执行单元13在带条件的分枝命令60的EXE阶段从寄存器19c读出执行代码输入到运算电路进行指定条件的运算操作。
分枝验证器22a在EXE阶段命令是带条件的分枝命令60的情况下,使为高电平(H)的导通状态。在这种情况下,是指定的条件成立的状态,相当于例如寄存器「$1」和「$2」的内容相同的情况。前周期的ID阶段的分枝预测结果与分枝成立「TRUE」分枝结果66一致,因此使地址选择信号转移到低电平(L)的OFF状态。
在分枝预测装置12中,前状态寄存器40d(参照图5)的输出、强成立预测的「11」与分枝结果的输出被输入到状态转移电路43a。例如,分枝条件成立,分枝进行的「Taken」更新信息67被输出的状态下,生成下一状态分枝预测信息并输入到判定电路44a。
分枝预测装置12按照图6(b)所示的状态转移方式,从强成立预测的「11」向强成立预测的「11」进行状态转移,接着将下一状态的分枝预测信息维持于强成立预测的「11」。
分枝预测装置12在分枝命令执行信号为高电平(H)ON状态下,从第1分枝预测表15访问前周期的读出,因此,将可写入生成电路44c的输出信号设定为许可(enable)状态,将前预测地址「0x40」作为写入地址,在管道阶段结束时将生成的下一分枝预测信息写入第1分枝预测表15。
在命令提取单元20a中,由于ID阶段的「add」的命令不是分枝命令,因此来自命令译码器21a的分枝命令检测信号为OFF状态,EXE阶段的分枝验证器22a的地址选择信号为OFF状态。
命令提取单元20a在下一周期以读入地址为命令,选择在当前的提取地址上加上「4」地址的加法器30的输出「0x168」,在管道阶段结束时在地址寄存器31中写入「0x168」。
这样,分枝预测装置12在分枝预测结果预测分枝成立,分枝结果也是分枝成立的情况下,处理器1预测带有「0x100」号的条件的分枝命令60的分枝成立,接着,执行周期C2的「0x104」号的「add」的命令,在执行周期C3投机地开始执行分枝目的地的「0x164」号的命令。
另一方面,在分枝命令的执行周期C3得到分枝条件成立的结果。由于该结果符合分枝预测,所以投机执行的「0x164」号的「lw」的命令可以继续执行,有可以实现程序处理高速化的好处。
图8是说明具备本发明实施形态的分枝预测装置的管道处理器的动作的时序图。下面参照图2和图8对处理器1的动作进行说明。
分枝预测装置12在将表示分枝成立的「TRUE」作为分枝预测输出63预测的状态下得到表示分枝不成立的「FALSE」的分枝结果66的情况下,在执行周期C3消除寄存器19a、寄存器19b中存储的分枝目的地的命令68。
第1线程执行单元13的执行周期C1、C2与图7所示的处理相同,其重复说明省略。
第1线程执行单元13在执行周期C3,分别执行「0x164」号的「lw」的命令IF阶段的处理、「0x104」号的「add」的命令的ID阶段的处理、以及「0x100」号的命令的EXE阶段的处理。
第1线程执行单元13在带「beq」条件的分枝命令60的EXE阶段,从指定的寄存器读出数据并将数据输入到运算电路中,进行指定条件的运算操作,将运算结果输入到分枝验证器22a。
分枝验证器22a中,EXE阶段的「beq」的命令是带条件的分枝命令60,因此使分枝命令执行信号为ON状态。「beq」命令在指定的条件不成立的情况下分枝不成立。例如,寄存器「$1」和寄存器「$2」的内容不等时,将ON状态的分枝命令执行信号作为分枝不成立的验证结果输出。
第1线程执行单元13由于所述周期的ID阶段的分枝预测结果与表示分枝成立的「TRUE」一致,所以使地址选择信号为ON状态,生成下一周期提取地址「0x108」并输出。
状态转移电路43a将前状态寄存器40d的输出「11」和分枝结果的输出(条件不成立、分枝不进行的「Not Taken」)输入,生成下一状态输出到第1分枝预测表。
状态转移电路43a根据例如图6(b)所示的状态转移方式从状态「11」转移到状态「10」,使下一状态变更为「10」。
可写入生成电路44c在前周期中从第1分枝预测表15读出ON状态的分枝命令执行信号。
可写入生成电路44c变成许可状态,将前预测地址的「0x44」作为写入地址写入第1分枝预测表15中,在ID阶段结束时,将生成的下一状态写入第一分枝预测表15。
第1线程执行单元13一侧的命令提取单元20a中,由于ID阶段的命令不是分枝命令,所以使命令译码器21a来的分枝命令检测信号为OFF状态。EXE阶段的分枝验证器22a的地址选择信号为ON状态,作为在下一周期读入命令的地址,选择从分枝验证器22a输出的下一周期提取地址,在ID阶段结束时写入地址寄存器31(PC)。
命令提取单元20a在预测为根据条件分枝命令使处理分枝并对程序进行处理的情况下,利用分枝验证器22a判明分枝条件不成立时,回到条件分枝命令的分枝不成立的情况下的程序处理步骤。
第1线程执行单元13使已经开始的「0x164」号的「lw」的命令的IF阶段的处理终止,同时,在从命令高速缓冲存储器10读出命令后,在将命令和地址写入寄存器19a、寄存器19b瞬间之前的时刻,消除「0x164」号的「lw」的命令68。
这样,分枝预测装置12在分枝结果为分枝不成立的情况下,在确定分枝条件之前停止程序处理。管道控制的处理器对于命令的消除处理,在条件分枝命令的程序处理中需要1周期以上的时间。
本发明的实施形态中所示的处理器1利用过去的分枝结果的履历,因此分枝预测的成功比例相对于失败比例设定得比较高,因此能够防止处理器1的处理性能下降。
第2线程执行单元14在处理包含条件分枝命令的程序的情况下,使用分枝预测表16这一点与第1线程执行单元13不同,因此执行与第1线程执行单元13相同的动作。
处理器1使多个线程执行单元并行动作,以此谋求提高处理器1的处理性能,即使如此有时候也不能够将处理的程序分割为多个线程。
在这种情况下,在例如第1线程执行单元13进行程序处理,第2线程执行单元14以使消耗电力减少等为目的转移到停止状态。
处理器1将与停止状态的第2线程执行单元14有对应关系的第2分枝预测表16加在执行中的第1分枝预测表15上进行再构成以实行分枝预测。
也就是说,第2线程执行单元14处于停止状态时,第1线程执行单元13用第1分枝预测表15和第2分枝预测表16进行分枝预测。还有,表示第2线程执行单元14停止的状况的停止信息作为「1」设定于共有标记17。
分枝预测装置12即使在第2线程执行单元14处于停止状态时也在第1线程执行单元13进行程序处理,在条件分枝命令的执行周期C2的ID阶段将从分枝命令地址寄存器40a中存储的条件分枝命令的地址号码的下位n+1位到下位3位作为第1分枝命令地址输入到第1分枝预测表15。
分枝命令地址寄存器40a在表切换位18为「0」的情况下使用第1分枝预测表15,从最上位位M~最下位位L作为读出地址输入到第1分枝预测表15,2位长度的数据从第1分枝预测表15读出,最上位位M到最下位位L被输入到前预测地址寄存器40b。
分枝命令地址寄存器40a输出读出的2位长度的数据,经过选择电路42b输入到判定电路44a。判定电路44a将分枝预测结果输入到前状态寄存器40d。前预测地址寄存器40b与前状态寄存器40d在ID阶段结束时写入分枝预测结果。
第1分枝预测表15根据在EXE阶段生成的分枝结果将内容加以更新。
另一方面,分枝命令地址寄存器40a在表切换位18为「1」的情况下,经过选择电路42a,将最上位位M~最下位位L作为读出地址输入到第2分枝预测表16,2位长度的数据从第2分枝预测表16读出,被输入到前状态寄存器40e。
第2分枝预测表16输出读出的2位长度的数据。通过选择电路42d和判定电路44a输出分枝预测结果。
前预测地址寄存器40c在ID阶段结束时从分枝命令地址寄存器40a通过选择电路42将输入数据写入。前状态寄存器40e在ID阶段结束时从第2分枝预测表16写入输入数据。
选择电路42c和选择电路42d在EXE阶段根据前选择寄存器40f在ID阶段取得的保存数据,选择第1分枝预测表15的分枝结果输入到状态转移电路43b,选择第1分枝命令执行信号输入到可写入生成电路44d,更新第2分枝预测表16。
在第1分枝预测表15的反馈处理中,将表切换位18设定为「0」,根据第1分枝预测表15的分枝预测结果和分枝结果,将第1分枝预测表15加以更新。
在第2分枝预测表16的反馈处理中,将表切换位18设定为「1」,根据第1分枝预测表15的分枝预测结果和分枝结果,将第2分枝预测表16加以更新。
在第1分枝预测表15中,用分枝命令的地址的下位m位进行访问。有时候下位m位份额的地址是相同的地址,执行上位位不同的地址的条件分枝命令。
在这种情况下,分枝预测装置12根据利用在第1分枝预测表15中下位m位份额的地址相同的地址的分枝预测和分枝结果进行的状态转移。在下位m位份额的地址为相同地址时,不同条件分枝命令的分枝预测信息融合(merge)于第1分枝预测表15,因此有时候分枝因此性能低下,但是,能够使分枝预测成立的比例上升,使处理器的性能提高。
本发明的实施形态的分枝预测装置12在第2线程执行单元14停止期间,也可以用第1线程执行单元13将第1分枝预测表15和第2分枝预测表16的容量相加的两倍尺寸的分枝预测表进行分枝预测。
因而,与只用第1分枝预测表15的分枝预测相比,由于条件分枝命令的地址相同的概率为一半,能够减少融合引起的分枝预测性能的下降,能够提供程序处理性能更高,但是电路规模增加少的处理器1。
本发明是并不将线程执行单元数目限定于2个,设置3个或3个以上的线程执行单元的处理器也作为对象的分枝预测装置。
对于多线程处理器,在这里以在各执行周期的转移期间使用延迟插槽(slot)的5级的管道处理器进行说明,但是,不使用延迟插槽的结构和管道级数不同的处理器,也能够使用于本发明的实施形态的分枝预测装置中。
下面参照图9对本发明实施形态的分枝预测装置的动作进行说明。分枝预测装置12的动作步骤包含从第1线程执行单元13接收读出地址的步骤S70、根据读出地址访问第1和第2分枝预测表15、16的步骤S71、判定第2线程执行单元14的待机状态的步骤S73、在第2线程执行单元14处于待机状态的期间利用读出地址从第2分枝预测表16读出第2线程执行单元的分枝预测信息的步骤S75、以及向第1线程执行单元13输出的步骤S78。
利用该步骤构成,分枝预测装置12在第2线程执行单元14处于待机状态时,对执行线程的第1线程执行单元13,输出从第2分枝预测表16读出的分枝预测信息,能够提高分枝命令的分枝预测精度。
切换位判定步骤S74判定分枝命令地址寄存器40a中的表切换位18,在存储例如数值「1」的情况下,用切换电路41将访问从第1分枝预测表15切换到第2分枝预测表16,能够读出分枝预测信息。
分枝预测装置12还能够对应于分枝命令地址寄存器40a中的任意决定的表切换位18的值与共有标记17的逻辑积、将第1或第2分枝预测表15、16中的任一方存储的分枝预测信息输出到命令提取单元20a。
在第2线程执行单元14正在执行线程的情况下,能够从判定步骤S73向第1分枝预测表的读出步骤S76分枝,读出第1线程执行单元的分枝预测信息,向第1线程执行单元13发送。
判定电路44a分析步骤S75或S76中取得的分枝预测信息,执行分枝预测判断步骤S77。
在访问第1和第2分枝预测表15、16的步骤S71中,在没有读出分枝命令的情况下,分枝到步骤S72,将PC的值变更为下一命令。
(实施形态的变形例1)
利用程序控制在上述实施形态中使用的图1的共有标记17,将共有标记设定为「1」,第1线程执行单元13执行共有第1分枝预测表15和第2分枝预测表16的分枝预测控制。
第2线程执行单元14在分配程序处理时,不立即将共有标记17变更为「0」,根据分配于第2线程执行单元14的程序的规模和分枝目的地的内容,执行共有标记17的变更控制。
第2线程执行单元14在共有标记17为「1」的状态下,执行程序时,在条件分枝命令的分枝目的地地址小于分枝命令的地址的情况下,通常判定为分枝成立,执行固定的分枝预测。
这样,第2线程执行单元14,在线程执行单元14执行的程序规模比较小的时候,以及程序处理中的条件分枝有偏向(分枝目的地地址比分枝命令的地址小),编制程序时判明时,将第2分枝预测表16继续使用于第1线程执行单元13的分枝预测,能够提高处理器1的处理性能。
(实施形态的变形例2)
将图1的共有标记17扩展为多位,附加使用共有的分枝预测表的线程执行单元的信息。图1的分枝预测装置12的分枝地址和选择电路42等,从附加的分枝预测信息表示的追加的线程执行单元来的分枝地址被输入共有状态的分枝预测表(例如第1或第2或追加的分枝预测表),输出分枝预测结果,提供能够进行分枝结果的写入的扩展的分枝预测表,能够提高分枝预测精度。
由于具有这样扩展的分枝预测表,第1线程执行单元13以外的第2线程执行单元14或追加的线程执行单元中,也能够使用共有的扩张的分枝预测表,提高分枝预测精度,不仅提高处理器1的处理性能,而且提高将程序分配到哪一个线程执行单元的灵活性,程序的控制更加容易。
本发明的实施例中记载的作用和效果,举例说明了本发明产生的最理想的作用和效果,但是并不限于此。
例如,多线程方式的处理器1,第1和第2线程执行单元13、14使用分枝预测表15、16,动态地(正在执行程序)进行分枝预测的分枝预测装置12第1线程执行单元13具备以第1线程执行单元13为对象的第1分枝预测表15、以及以第2线程执行单元14为对象的对2分枝预测表16,第2线程执行单元14不使用第2分枝预测表16时,第1线程执行单元13使用第1和第2分枝预测表15、16进行控制以进行分枝预测。
又,多线程方式的处理器1的第1和第2线程执行单元13、14使用分枝预测手段动态地进行分枝预测的分枝预测方法在第1线程执行单元13和第2线程执行单元14动态地(正在执行程序)进行分枝预测时,将分枝预测手段至少分割为第1分枝预测表15和第2分枝预测表16,使第1线程执行单元13执行使用第1分枝预测表15的分枝预测,使第2线程执行单元14执行使用第2分枝预测表16的分枝预测,使第1线程执行单元13动态地(正在执行程序)进行分枝预测,不使第2线程执行单元14动态地(正在执行程序)进行分枝预测时,使第1线程执行单元13执行用第1和第2分枝预测表15、16的动态的分枝预测。
而且,对进行分枝预测的第1线程执行单元13动态地(正在执行程序)进行分枝预测,用执行中的程序进行控制。
Claims (5)
1.一种分枝预测装置,是第1线程执行单元与第2线程执行单元能够进行信息通信的分枝预测装置,其特征在于,具备
存储所述第1线程执行单元的分枝预测信息的第1分枝预测表,
存储所述第2线程执行单元的分枝预测信息的第2分枝预测表,
根据从所述第1线程执行单元接收的读出地址、访问所述第1和第2分枝预测表的读出地址寄存器,以及
在所述第2线程执行单元处于待机状态期间利用所述读出地址、从所述第1或第2分枝预测表读出第1或第2线程执行单元的分枝预测信息、向所述第1线程执行单元输出的选择电路。
2.根据权利要求1所述的分枝预测装置,其特征在于,还具备
连接于所述选择电路、并判定所述分枝预测信息的成功比例的判定电路。
3.根据权利要求1或2所述的分枝预测装置,其特征在于,
所述选择电路根据表示所述第2线程执行单元的待机状态的共有标记的值与所述读出地址的值,输出所述分枝预测信息。
4.一种分枝预测方法,其特征在于,
从第1线程执行单元接收读出地址,
根据所述读出地址、访问所述第1和第2分枝预测表,
判定所述第2线程执行单元的待机状态,
在所述第2线程执行单元处于待机状态期间根据所述读出地址、从所述第2分枝预测表读出所述第2线程执行单元的分枝预测信息、向所述第1线程执行单元输出。
5.根据权利要求4所述的分枝预测方法,其特征在于,
根据分枝检测器的验证结果,改写所述分枝预测信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004236121 | 2004-08-13 | ||
JP2004236121A JP2006053830A (ja) | 2004-08-13 | 2004-08-13 | 分岐予測装置および分岐予測方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1734415A true CN1734415A (zh) | 2006-02-15 |
Family
ID=36031260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510092422.7A Pending CN1734415A (zh) | 2004-08-13 | 2005-08-12 | 分枝预测装置及分枝预测方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060095746A1 (zh) |
JP (1) | JP2006053830A (zh) |
CN (1) | CN1734415A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454596B2 (en) * | 2006-06-29 | 2008-11-18 | Intel Corporation | Method and apparatus for partitioned pipelined fetching of multiple execution threads |
US7716460B2 (en) * | 2006-09-29 | 2010-05-11 | Qualcomm Incorporated | Effective use of a BHT in processor having variable length instruction set execution modes |
JP5552042B2 (ja) | 2010-12-27 | 2014-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム解析の方法、システムおよびプログラム |
WO2012127589A1 (ja) * | 2011-03-18 | 2012-09-27 | 富士通株式会社 | マルチコアプロセッサシステム、および分岐予測方法 |
US9311098B2 (en) * | 2013-05-07 | 2016-04-12 | Apple Inc. | Mechanism for reducing cache power consumption using cache way prediction |
GB2528676B (en) * | 2014-07-25 | 2016-10-26 | Imagination Tech Ltd | Conditional Branch Prediction Using A Long History |
CN116643698B (zh) * | 2023-05-26 | 2024-03-29 | 摩尔线程智能科技(北京)有限责任公司 | 数据写入方法及装置、电子设备和存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758142A (en) * | 1994-05-31 | 1998-05-26 | Digital Equipment Corporation | Trainable apparatus for predicting instruction outcomes in pipelined processors |
JPH10133874A (ja) * | 1996-11-01 | 1998-05-22 | Mitsubishi Electric Corp | スーパスカラプロセッサ用分岐予測機構 |
US6542991B1 (en) * | 1999-05-11 | 2003-04-01 | Sun Microsystems, Inc. | Multiple-thread processor with single-thread interface shared among threads |
US7051329B1 (en) * | 1999-12-28 | 2006-05-23 | Intel Corporation | Method and apparatus for managing resources in a multithreaded processor |
US6594755B1 (en) * | 2000-01-04 | 2003-07-15 | National Semiconductor Corporation | System and method for interleaved execution of multiple independent threads |
US7069426B1 (en) * | 2000-03-28 | 2006-06-27 | Intel Corporation | Branch predictor with saturating counter and local branch history table with algorithm for updating replacement and history fields of matching table entries |
US6823446B1 (en) * | 2000-04-13 | 2004-11-23 | International Business Machines Corporation | Apparatus and method for performing branch predictions using dual branch history tables and for updating such branch history tables |
US20040216101A1 (en) * | 2003-04-24 | 2004-10-28 | International Business Machines Corporation | Method and logical apparatus for managing resource redistribution in a simultaneous multi-threaded (SMT) processor |
US7120784B2 (en) * | 2003-04-28 | 2006-10-10 | International Business Machines Corporation | Thread-specific branch prediction by logically splitting branch history tables and predicted target address cache in a simultaneous multithreading processing environment |
-
2004
- 2004-08-13 JP JP2004236121A patent/JP2006053830A/ja not_active Abandoned
-
2005
- 2005-08-09 US US11/199,235 patent/US20060095746A1/en not_active Abandoned
- 2005-08-12 CN CN200510092422.7A patent/CN1734415A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2006053830A (ja) | 2006-02-23 |
US20060095746A1 (en) | 2006-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1258154C (zh) | 多处理器系统、数据处理系统和数据处理方法 | |
CN1287257C (zh) | 用于算术表达式优化的方法和装置 | |
CN1269027C (zh) | 数据并行右移合并的方法与装置 | |
CN1734415A (zh) | 分枝预测装置及分枝预测方法 | |
CN1253806C (zh) | 仲裁电路和数据处理系统 | |
CN1127016C (zh) | 计算机处理装置和方法 | |
CN1174313C (zh) | 多指令集的数据处理 | |
CN100339824C (zh) | 高效执行特长指令字的处理器和方法 | |
CN1722130A (zh) | 可重配置运算装置 | |
CN1532666A (zh) | 信息处理装置、该装置的时钟脉冲控制方法及控制程序 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN101046741A (zh) | 处理器装置和复合条件处理方法 | |
CN1758213A (zh) | 带有共享内容的异构型并行多线程处理器(hpmt) | |
CN1609796A (zh) | 应用编程接口(api)的设计 | |
CN1869952A (zh) | 指令执行设备、调试方法、调试设备以及调试程序 | |
CN101051301A (zh) | 用于操作计算机处理器阵列的方法和装置 | |
CN1181528A (zh) | 二进制程序转换设备,转换方法和程序记录媒体 | |
CN1627270A (zh) | 用于对指令执行和数据访问进行计数的方法和设备 | |
CN1993670A (zh) | 信息处理装置 | |
CN1278226C (zh) | 模拟装置、模拟方法 | |
CN1704911A (zh) | 高速缓冲存储器、系统和数据存储方法 | |
CN1233016A (zh) | 具有事件相关矢量选择的历境控制器和采用其的处理器 | |
CN1035190A (zh) | 基于操作数长度和对位的微码转移 | |
CN1286005C (zh) | 微处理器 | |
CN1490726A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |