微处理器以及预取数据至微处理器的方法技术

技术编号:10040260 阅读:140 留言:0更新日期:2014-05-14 10:52
本发明专利技术提供一种微处理器,包括一指令解码器用以解码一指令集中的多个指令,其中指令集包括一重复预取间接指令。重复预取间接指令包括多个地址操作数以及一计数值,微处理器使用地址操作数来计算一预取表中的一第一项目的一地址,其中预取表具有多个项目,并且预取表中的各个项目包括一预取地址。计数值用以指定欲被预取的多条快取线的数量,其中快取线的每一个的一存储器地址是由项目中的一个中的预取地址所指定。

【技术实现步骤摘要】
本案是申请日为2010年7月30日、申请号为201010243785.7、专利技术名称为“微处理器以及预取数据至微处理器的方法”的专利技术专利申请的分案申请。
本专利技术是关于微处理器,特别是关于微处理器中的预先提取(prefetching)。
技术介绍
美国专利第6,832,296号揭露了适用于x86架构的预取指令(prefetch instruction),上述预取指令利用重复前置码(REP prefix)将存储器中的多条序列快取线(cache lines)预先提取至处理器的高速缓存中。换言之,处理器的通用暂存器中具有多条由计数值(count)所指定的序列快取线。然而,程序设计者知道会有想要预先提取存储器中的非连续快取线的情况,其中非连续快取线代表这些快取线的位置是任意的。若一个程序想要预先提取多条非连续快取线,则此程序必须包含多个上述美国专利所提及的预取(REP PREFETCH)指令。然而,这会增加程序码长度(code size)并使得处理器需要执行多个指令而不是单一指令。因此,我们需要一种改良的预取指令用以解决这些问题。
技术实现思路
本专利技术提供一种微处理器,该微处理器包括一指令解码器。指令解码器用以解码一指令集中的多个指令,其中指令集包括一重复预取间接指令。重复预取间接指令包括多个地址操作数以及一计数值。微处理器使用地址操作数来计算一预取表中的一第一项目的一地址,其中预取表具有多个项目,并且预取表中的各个项目包括一预取地址。计数值用以指定欲被预取的多条快取线的数量,其中快取线的每一者的存储器地址是由项目中的一者中的预取地址所指定。本专利技术提供另一种微处理器,该微处理器位于具有一系统存储器的一系统中。微处理器包括一指令解码器、一计数暂存器以及一控制逻辑电路。指令解码器用以解码一预取指令,预取指令指定一计数值与用以指向一表格的一地址,其中计数值表示欲从系统存储器中预取的多条快取线的数量,并且表格用以储存快取线的多个存储器地址。计数暂存器用以储存一剩余计数值,剩余计数值表示欲被预取的快取线的一剩余数量,其中计数暂存器一开始即具有被指定在预取指令中的计数值。控制逻辑电路耦接至指令解码器与计数暂存器,控制逻辑电路使用计数暂存器与从表格中所提取的存储器地址,用以控制微处理器将表格中的快取线的存储器地址提取至微处理器,并且控制微处理器将系统存储器中的快取线预取至微处理器的一高速缓存。本专利技术提供另一种预取数据至微处理器的方法,该微处理器位于具有一系统存储器的一系统中。上述方法包括解码一预取指令,预取指令指定一计数值与用以指向一表格的一地址,其中计数值表示欲从系统存储器中预取的多条快取线的数量,并且表格用以储存快取线的多个存储器地址。上述方法还包括储存一剩余计数值,其中剩余计数值表示欲被预取的快取线的一剩余数量,并且剩余计数值的一初始值为被指定在预取指令中的计数值。上述方法还包括使用剩余计数值与表格中的存储器地址,用以将系统存储器中的快取线预取至微处理器的一高速缓存。为让本专利技术的上述和其它目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下。附图说明图1为本专利技术实施例的微处理器的方块图;图2为已知技术的奔腾Ⅲ预取指令的方块图;图3为已知技术的奔腾Ⅲ字串指令的方块图;图4为已知技术的重复预取指令的方块图;图5为本专利技术实施例的重复预取间接指令的方块图;图6为本专利技术实施例的预取表的方块图;图7为图1中的微处理器执行图5中的重复预取间接指令的操作流程图;图8为本专利技术另一实施例的微处理器的方块图;图9为本专利技术另一实施例的重复预取间接指令的方块图;图10为本专利技术另一实施例的预取表的方块图;图11为图8中的微处理器执行图9中的重复预取间接指令的操作流程图。[主要元件标号说明]100~微处理器;                                     102~指令解码器;104~暂存器文件;                                   106~延伸计数暂存器;108~初始预取表项目地址;                           114~地址产生器;116、118、146~多工器;                             122~预取表项目地址暂存器;124~重复预取计数暂存器;                           126~加法器;128~递减器;                                       144~控制逻辑电路;154~高速缓存;                                     166~响应缓冲器;172~总线接口单元;                                 186~第一预取表项目地址;188~重复预取计数值;                               194~预取地址;197~第二预取表项目地址;                           400~重复预取指令;404、504~运算码字段;                              406~ModR/M字节;500、900~重复预取间接指令;                        508~地址操作数;600~预取表;                                       602~预取地址;604~快取线;                                       896~延伸来源索引暂存器;899~偏移暂存器;                                   902~偏移量;1004~其它数据。具体实施方式为了解决上述问题,本专利技术提供一新的预取指令使得程序设计者能够在存储器中建立一预取表(如图6的预取表600与图10的预取表1000),其中预取表600中的各个项目(entry)用以指定欲被预先提取的快取线的预取地址。此外,本专利技术所提供的新的预取指令可使程序设计者能够指定欲被处理器所预先提取的多条非连续快取线。在本专利技术中,是以重复预取间接(REP PREFETCH INDIRECT)指令500(参考图5)来表示上述新的预取指令。图1为本专利技术实施例的微处理器100的方块图,此微处理器100能够执行一重复预取间接指令。由于微处理器1本文档来自技高网...

【技术保护点】
一种微处理器,包括:一指令解码器,用以解码一指令集中的多个指令,其中上述指令集包括一重复预取间接指令;以及上述重复预取间接指令,包括:多个地址操作数,上述微处理器使用上述地址操作数来计算一预取表中的一第一项目的一地址,其中上述预取表具有多个项目,并且上述预取表中的各个项目包括一预取地址;一计数值,用以指定欲被预取的多个快取线的数量,其中上述快取线的每一个的存储器地址是由上述项目中的一个中的上述预取地址所指定;以及一延迟值,其中上述微处理器在执行上述重复预取间接指令时是以一延迟量来延迟各个预取上述快取线中的一个的迭代,其中上述延迟量是等于上述延迟值中所指定的一指令数量。

【技术特征摘要】
2009.08.07 US 61/232,084;2009.10.15 US 12/579,9311.一种微处理器,包括:
一指令解码器,用以解码一指令集中的多个指令,其中上述指令集包括
一重复预取间接指令;以及
上述重复预取间接指令,包括:
多个地址操作数,上述微处理器使用上述地址操作数来计算一预取表中
的一第一项目的一地址,其中上述预取表具有多个项目,并且上述预取表中
的各个项目包括一预取地址;
一计数值,用以指定欲被预取的多个快取线的数量,其中上述快取线的
每一个的存储器地址是由上述项目中的一个中的上述预取地址所指定;以及
一延迟值,其中上述微处理器在执行上述重复预取间接指令时是以一延
迟量来延迟各个预取上述快取线中的一个的迭代,其中上述延迟量是等于上
述延迟值中所指定的一指令数量。
2.如权利要求1所述的微处理器,其中上述预取表中的上述项目是位于
多个非连续存储器位置。
3.如权利要求1所述的微处理器,其中上述重复预取间接指令还包括:
一偏移量,用以指定上述预取表中的各个项目之间的一距离。
4.如权利要求3所述的微处理器,其中上述偏移量是通过位于上述重复
预取间接指令之前的一指令加载至一通用暂存器。
5.一种预取数据至微处理器的方法,用以预取数据至一微处理器,预取
数据至微处理器的方法包括:
解码一重复预取间接指令;以及
响应于解码上述重复预取间接指令且按照上述重复预取间接指令的指
示,预取多个快取线至上述微处理器;
其中上述重复预取间接指令包括:
多个地址操作数,用以计算具有多个项目的一预取表的一第一项目的一
地址,其中上述预取表具有多个项目,并且上述预取表中的各个项目包括一
预取地址;
一计数值,用以指定欲被预取的上述快取线的数量至上述微处理器内,
其中上述快取线的每一个的存储器地址是由上述预取表中的上述项目中的一

\t个中的上述预取地址所指定;以及
一延迟值,其中上述预取是以一延迟量来延迟各个预取上述快取线中的
一个的迭代,其中上述延迟量是等于上述延迟值中所指定的一指令数量。
6.如权利要求5所述的预取数据至微处理器的方法,其中上述重复预取
间接指令还包括:
一运算码,上述运算码与一奔腾Ⅲ预取指令运算码不同。
7.如权利要求6所述的预取数据至微处理器的方法,其中上述重复预取
间接指令还包括:
一奔腾Ⅲ重复字串指令前置码,上述奔腾Ⅲ重复字串指令前置码是位于

【专利技术属性】
技术研发人员:罗德尼E虎克约翰M吉尔
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:台湾;71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1