根据记忆体存取类型的效益并配合积极层级的预取的制作方法

文档序号:9921838阅读:465来源:国知局
根据记忆体存取类型的效益并配合积极层级的预取的制作方法【专利说明】根据记忆体存取类型的效益并配合积极层级的预取【
发明内容】[0001]本发明的一个目的是提供一种处理器。此处理器包括预取器,此预取器用以根据记忆体存取预取资料,每一个记忆体存取与多个预定记忆体存取类型的其中之一记忆体存取类型相关联。处理器更包括了用以保存多个分数的表格,所述分数是用以表明预取器以多个预定记忆体存取类型来预取资料的效益。预取器根据记忆体存取之积极层级预取资料,积极层级并是以表格中的多个分数以及相关联的记忆体存取中的记忆体存取类型所得到。[0002]本发明的另一个目的是提供一种处理器的运作方法,所述处理器包括用以根据记忆体存取预取资料的预取器,其中每一记忆体存取与多个预定记忆体存取类型中的其中之一记忆体存取相关联。所述方法包括维持表格所保存的分数,所述分数是用以表明预取器以多个预定记忆体存取类型来预取资料的效益,以及预取器根据记忆体存取之积极层级预取资料,积极层级并是以表格中的多个分数以及相关联的记忆体存取中的记忆体存取类型所得到。[0003]本发明的一个目的是提供一种处理器。此处理器包括预取器,此预取器用以根据记忆体存取预取资料,每一个记忆体存取与多个预定记忆体存取类型的其中之一记忆体存取类型相关联。处理器更包括了用以保存多个分数的表格,所述分数是用以表明预取器以多个预定记忆体存取类型来预取资料的效益。预取器根据记忆体存取之积极层级预取资料,积极层级并是以表格中的多个分数以及相关联的记忆体存取中的记忆体存取类型所得到。【附图说明】[0004]图1为处理器的方块图。[0005]图2为图1的条目的方块图。[0006]图3至图11为图1的处理器的运作流程图。[0007]图12为图1条目的替换实施例方块图。[0008]图13为包含图1预取器的处理器元件的方块图。[0009]图14为图13中包括图1预取器的处理器的运作流程图。[0010]图15为产生配置之流程图,例如程序或程序阶段的MAT分数。[0011]图16为记忆体存取示意图以及从图中提取的资料。[0012]图17为程序的阶段分析流程图。[0013]图18为决定处理器配置方面的较佳配置的蛮力法之流程图,例如快取记忆体、预取。[0014]图19为圆饼图分析结果。【具体实施方式】[0015]实施例揭露了在处理器中的预取器(Prefetcher)是用以根据记忆体存取(memoryaccess)来预取资料,每一个记忆体存取皆对应随着其他记忆体存取资讯(例如:记忆体位址)而提供给预取器的记忆体存取类型MAT(MemoryAccessType)。在其他实施例中,记忆体存取类型更具有32种不同的类型。预取器会追踪其预取不同记忆体存取类型的效益,并根据预取不同记忆体存取类型的效益改变预取积极性(Aggressiveness)的等级。在其他实施例中,处理器包括两个预取器,此两个预取器个别追踪预取不同记忆体存取类型MAT的效益,当其中之一的预取器可较另一个预取器更有效率的预取特定记忆体存取类型时,另一个预取器可能因为此特定记忆体存取类型而听从(Deferto)其中之一的预取器。[0016]记忆体存取类型(MAT)为记忆体存取之特征,记忆体存取是由记忆体存取所产生的指令的任一特征中所产生、或是由处理器中用以产生记忆体存取的功能单元所产生、或是当产生记忆体存取时由处理器中的运作模式所产生、或是由记忆体存取得到资料类型时所得到的。[0017]指令的特征例如是由指令所指定的操作。处理器中不同种类的功能单元例如是载入单元、储存单元、整数单元、浮点单元、媒体单元、寻访引擎、指令提取单元以及硬件预取器(例如:指令预取器、串流预取器、方块预取器、L1D预取器)。处理器的多个运作模式例如是管理者模式(特权模式或x86ring0)、系统管理模式(例如:x86SystemManagementMode,SMM)、保护模式(例如:x86真实模式、虚拟x86模式、保护模式、长模式)、虚拟机器模式(例如:x86VitrualMachineextensions,VMX)。资料类型例如是,代码、描述表(例如:x86指令集架构描述表(GDT)以及中断描述符表(IDT))、页表、系统管理模式(例如:x86SMM)状态储存空间、虚拟机器模式(例如:x86VMX)状态储存空间、堆叠、压缩数据、常数、浮点数、密码金钥、加密封包以及连结串行等。[0018]记忆体存取是由指令提取单元所产生称为代码提取,记忆体存取是由硬件指令预取器所产生称为代码预取所产生。[0019]请参阅图1,图1所示为处理器100的方块图,处理器100包括指令快取器122(instructioncache),指令快取器122是用以提供指令至指令解码器123(instructiondecoder),指令解码器123是用以解码指令并将解码后的指令提供至指令分配器124(instructiondispatcher),指令分配器124是用以分配指令至执行单元126(executionunit)。较佳的,处理器100的微处理结构(microarchitecture)为超纯量(superscalar)及乱序执行(out-of-orderexecution),其他实施例中,例如指令分配器124可包括指令排程器(instructionscheduler),指令排程器是用以以超纯量乱序的方式分配指令至多个执行单元126。较佳的,处理器100包括架构暂存器(architecturalregisters)(未示于图中),架构暂存器是用以保存处理器1〇〇的架构状态(architecturalstate)以及非架构暂存器(non-architecturalregisters)(未示于图中)。较佳的,处理器100包括暂存器别名表(registeraliastable,RAT)(未示于图中),暂存器别名表是用以执行暂存器更名,处理器100包括重新排序缓冲器(reorderbuffer,R0B)(未示于图中),重新排序缓冲器是用以使指令根据程序的顺序被执行。较佳的,指令分配器124包括指令转换器(instructiontranslator)(未示于图中),指令转换器是用以将架构指令(architecturalinstructions)转换为处理器100中的微指令集架构(microinstructionsetarchitecture)所包括的微指令(microinstruction),执行单元126并可执行上述的微指令。[0020]处理器100更包括记忆体子系统128,记忆体子系统128是用以提供记忆体运算元(memoryoperands)给执行单元126并从执行单元126接收记忆体运算元。记忆体子系统128更包括至少一个载入单元(loadunit)、至少一个储存单元(storeunit)、载入仁列(loadqueue)、储存仁列(storequeues)、处理器100用以请求访问快取线(cachelines)的填充仁列(fillqueue)、用以侦测记忆体汇流排(memorybus)来判定处理器100正在与谁沟通的侦测仁列(snoopqueue)、寻访引擎(tablewalkengine)以及其他的功能单元(functionalunit)。[0021]处理器100包括了快取子系统132与记忆体子系统128进行沟通,较佳地,快取子系统132包括多级(hierarchy)的快取记忆体,例如第L1级的指令快取122、第L1级的资料快取以及较第L1级快取延迟的第L2级快取,其中第L2级快取并为统一架构。在一实施例中,快取子系统132也包括了第L3级的快取。在一实施例中,处理器100是个多核心处理器,每个核心具有上述之功能单元,具有快取记忆体的快取子系统132则共用于多个核心之间。[0022]记忆体子系统128产生快取子系统132的记忆体存取134,记忆体存取134包含了准备存取的记忆体位置的记忆体位址。每一个记忆体存取134包含多个记忆体存取类型MAT其中之一个记忆体存取类型MAT,为了更详细说明相关实施例,将会配合表1进行说明。[0023]处理器100包含两个预取器,预取器0120-0以及预取器1102-1,统称为预取器102并通常分别作为预取器102。在其他实施例中预取器102不限为两个。预取器102可通过不同的方式预取资料。预取器102可以利用预测取得资料的位置的方式来预取。例如:一简单方法是,预取器102检测程序产生的串流所对应记忆体存取的位置,并预测程序将会从下一顺序的位置存取资料。(一般来说,所有的快取线是在处理器的快取记忆体内预取。因此,预取器102预取记忆体位址中的一快取线,此快取线临近一快取线之记忆体位址包含由程序存取所指定的资料)下一顺序的快取线可能在记忆体中的程序串流存取的位置的上方或下方。预取器102在同一串流中可能有相邻的存取来判断方向是往上还是往下。在其他实施例中,根据一步幅检测方法(stridedetectionmethod),预取器可侦测时间上相邻的串流记忆体存取的步幅模式(stridepattern)并根据侦测的步幅来预测。也就是预取器102寻找时间上相邻的记忆体存取彼此之间的间隔距离,并预测下一顺序的程序存取将是距离目前位置一个间隔距离远的位置。例如,预取器得到一串流之存取位置4、8以及12,并侦测到间隔距离为4,因此预测下一存取位置为16。预取器102可通过更复杂的步幅检测方法侦测在一模式(pattern)中具有不同间隔距离的串流。例如,预取器得到一串流需存取位置4、8、10、14以及16,并侦测到第一间隔距离为4第二间隔距离为2,因此预取器预测下一存取位置为20以及22。在其他实施例中,预取器102可侦测在一个记忆体区块(memoryblock)内的记忆体存取模式,记忆体区块在存取出现时是相对独立于时间顺序中,相关的实施例是应用于「边框预取」,其揭露于美国专利第8645631号、美国专利第8719510号、美国专利第8762649号以及美国专利第8880807号,上述之美国专利申请案根据其目的透过引用将所有内容并入本文。[0024]每一个预取器包括条目104,将会配合图2更详细说明,是用以保存资讯以及预取器102所使用的逻辑操作以预取资料。在一实施例中,预取器102与处理器100中的快取子系统132的最末级快取记忆体(Lastlevelcaches)LLC相关联。在一实施例中,处理器100具有多个核心,这些核心共享最末级快取记忆体LLC。较佳地,最末级快取记忆体LLC接收由每个核心的记忆子系统128所产生的记忆体存取134或记忆体存取要求134,也接收由其他核心、快取记忆体、包括上述之处理器100的系统的外部装置(例如:直接记忆体存取)所产生的外部记忆体存取(例如:侦测)。[0025]处理器100更包括记忆体存取类型评分表106。记忆体存取类型评分表106保存分数108,分数108是用以表示预取器102的效益。较佳地,记忆体存取类型评分表106为二维阵列,二维阵列的列与每一预取器102相关,因此,与预取器0120-0相关联的分数称为分数0108-〇,与预取器1120-1相关联的分数称为分数1108-1,记忆体存取类型评分表106的每一行对应至不同的记忆体存取类型MAT。表1列出了不同的记忆体存取类型MAT,并根据其来源说明不同的记忆体存取类型MAT。[0026]在表1的实施例中具有32种不当前第1页1 2 3 4 5 6 
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1