多处理器系统的性能仿真的制作方法

文档序号:6568989阅读:194来源:国知局
专利名称:多处理器系统的性能仿真的制作方法
技术领域
本发明的实施例涉及处理器性能领域,尤其涉及性能仿真。 相关领域的描述
处理器系统上的性能仿真可用来评估各类可选设计。现代微处理器的 复杂体系结构通常要求大规模的仿真或建模以精确表征系统性能。在多核 或多处理器系统领域,因为由多核或处理器和存储器子系统使用之间的交 互引起的复杂性,使得这种仿真已成为一种挑战。
仿真多核或多处理器系统的性能的现有技术具有诸多缺点。聚焦于精 确仿真微体系结构特征的技术速度极为缓慢。为了縮短仿真时间,存在有 使用随机采样或者基于特征化的多种技术。虽然这些技术对单线程工作量 仿真有效,但是它们对多线程或多核环境可能效率低下。诸如分析模型和 简化输入设置的其他技术要求每一个模型的形式证明或验证,因此就不适 用于大型设计空间探索。此外,它们可能不精确。
附图简述
通过参考以下用于说明本发明的实施例的描述和附图将最好地理解 本发明的实施例。附图中


图1是示出其中可实施本发明的一个实施例的系统的图示。 图2是示出根据本发明的一个实施例的性能仿真器的图示。 图3是示出根据本发明的一个实施例的仿真的多核系统的图示。
图4是示出根据本发明的一个实施例的一种用于仿真多核系统性能的
进程的流程图。
图5是示出根据本发明的一个实施例的一种用于评价来自每个核的微体系结构效果的进程的流程图。
图6是示出根据本发明的一个实施例的一种用于仿真存储器分层模型 的进程的流程图。
图7是示出根据本发明的一个实施例的一种用于叠加的进程的流程图。
描述
本发明的一个实施例是一种仿真多核系统性能的技术。评估来自多核 系统中的每个核的微体系结构效果。仿真与每个核相关联的存储器分层模 型。仿真的存储器分层模型被叠加在评估的微体系结构效果上,以产生有
关该多核系统的性能指标(performance figure)。
在以下的描述中,陈述了众多特定的细节。然而,应理解可在没有这 些特定的细节的情况下实施本发明的实施例。在其它的例子中,没有示出 公知的电路、结构和技术,以免混淆对本发明的理解。
可将本发明的一个实施例描述为进程, 一般将该进程描述为流程图、 流程图解、结构图或框图。尽管流程图将操作描述为顺序进程,但很多操 作可并行或同时执行。此外,可重新安排操作的顺序。进程在其操作完成 时终止。进程可以对应于方法、程序、过程、制造或加工方法等。
本发明的一个实施例是一种仿真多核或多处理器系统性能的技术。该 技术提供了用于在对称或不对称群集芯片多处理器上快速建模多线程应 用程序的性能的工具。在等效截面上执行一次核的慢速微体系结构仿真。 这一仿真随后用作叠加各存储器分层仿真的基础。结果是一种能够通过仿
真有效探索大型设计空间的方法。该技术还允许将微体系结构的仿真运行 与存储器子系统运行临时分开。因此,仿真速度增加,从而允许对大量线 程的处理器性能实践的仿真。此外,通过分开各模型,本技术还允许对该 核的微体系结构性能仿真的重新使用。
本发明的实施例的元件可由硬件、固件、软件或其任意组合来实现。 术语硬件一般指的是具有诸如电子、电磁、光、电光、机械、电机部件、 组件或器件等物理结构的元件。术语软件一般指的是逻辑结构、方法、过 程、程序、例程、进程、算法、公式、函数、表达式等。术语固件一般指的是实现或包含在硬件结构(例如,闪存)中的逻辑结构、方法、过程、程 序、例程、进程、算法、公式、函数、表达式等。固件的例子可包括微代 码、可写控制存储、微编程结构。当实现在软件或固件中时,本发明的实 施例的元件本质上是执行必需的任务的代码段。软件/固件可包括用于执行 本发明的一个实施例中所述的操作的实际代码或用于仿真或模拟操作的 代码。程序或代码段可存储在处理器或机器可访问介质中,或通过包含在 载波中的计算机数据信号或由载波调制的信号在传输介质上发送。"处理 器可读或可访问介质"或"机器可读或可访问介质"可包括能存储、发送 或传送信息的任何介质。处理器可读或机器可访问介质的例子包括电子电路、半导体存储设备、只读存储器(ROM)、闪存、可擦除ROM(EROM)、 可擦除可编程ROM(EPROM)、软盘、致密盘(CD)ROM、光盘、硬盘、光 纤介质、射频(RF)链路等。计算机数据信号可以包括能够经由诸如电子网 络信道、光纤、空气、电磁、RF链路等传输介质传播的任何信号。代码 段可以经由诸如因特网、内联网等的计算机网络下载。机器可访问介质可 以具体化为产品。机器可访问介质可包括数据,该数据在被机器访问时, 使得机器执行以下操作。机器可访问介质还可包括嵌入其中的程序代码。 程序代码可包括执行以下描述的操作的机器可读代码。术语"数据"在此 指的是为了机器可读的目的而编码的任何类型的信息。因此,它可以包括 程序、代码、数据、文件等。本发明的全部或部分实施例可由硬件、软件、固件或其任意组合来实 现。硬件、软件或固件可具有互相耦合的多个模块。硬件模块通过机械、 电、光电磁或任何其它物理连接耦合到另一个模块。软件模块通过函数、 过程、方法、子程序、或子例程调用、跨接、链路、参数、变量以及变元 传递、函数调用返回等耦合到另一个模块。软件模块被耦合到另一个模块 以接收变量、参数、变元、指针等,和/或生成或传递结果、更新的变量、 指针等。固件模块通过以上的硬件和软件耦合方法的任意组合来耦合到另 一个模块。硬件、软件或固件模块可被耦合到另一个硬件、软件或固件中 的任何一个。模块还可以是与在该平台上运行的操作系统交互的软件驱动 程序或接口。模块还可以是被配置为构造、建立、初始化、发送数据给硬 件设备或从中接收数据的硬件驱动程序。装置可包括硬件、软件和固件模块的任意组合。
可将本发明的一个实施例描述为进程, 一般将该进程描述为流程图、 流程图解、结构图或框图。尽管流程图将操作描述为顺序进程,但很多操 作可并行或同时执行。流程图中的环路或迭代可由单个迭代来描述。应理 解,维持环路索引或计数器以更新相关联的计数器或指针。此外,可重新 安排操作的顺序。进程在其操作完成时终止。进程可对应于方法、程序、 过程等。框图可包含描述元件、项、组件、器件、单元、子单元、结构、 方法、进程、函数、操作、功能性、任务等的块或模块。可自动或手动地 执行功能性或操作。
图1是示出其中可实施本发明的一个实施例的处理系统100的图示。
系统100包括处理器单元110、存储器控制器集线器(MCH) 120、图形 控制器125、主存储器130、输入/输出控制器集线器(ICH) 140、互连145、 大容量存储接口 150、以及输入/输出(I/O)设备160,至160K。
处理器单元110表示任何类型的体系结构的中央处理单元,诸如利用 超线程、安全、网络、数字媒体技术的处理器、单核处理器、多核处理器、 嵌入式处理器、移动处理器、微控制器、数字信号处理器、超标量计算机、 向量处理器、单指令多数据(SIMD)计算机、复杂指令集计算机(CISC)、精 简指令集计算机(RISC)、超长指令字(VLIW)或混合式体系结构。
MCH 120提供对诸如主存储器130、 ICH 140之类的存储器和输入/ 输出设备的控制和配置。可将MCH 120集成为芯片组,该芯片组集成了 诸如图形、媒体、隔离执行模式、主机-外围总线接口、存储器控制、电源 管理等多种功能。MCH 120或MCH 120中的存储器控制器功能可集成在 处理器单元110中。在某些实施例中,处理器单元110内部或外部的存储 器控制器可为处理器单元110中的所有核或处理器工作。在其它实施例中, 它可包括可分开地为处理器单元110中的不同的核或处理器工作的不同的 部分。
图形控制器125是具有执行诸如快速直线绘制、二维(2-D)和三维(3-D) 图形渲染功能、明暗处理、反图形失真、多边形渲染、透明效果、颜色空 间转换、a-混合、色度键控等图形操作的图形能力。还可以包括专用的图 形引擎,它可执行特殊且复杂的图形功能,诸如几何计算、仿射变换、模型视图投影、3-D裁剪等。它还可以处理显示监视器127上显示的图形数
据,并执行诸如调色板表查找、同步化、背光控制器、视频处理等显示相
关的功能。显示监视器127是可在屏幕上显示图形信息用于观看的任何显 示监视器。显示监视器127可以是阴极射线管(CRT)监视器、电视(TV)机、 液晶显示器(LCD)、平板或数字CRT。
主存储器130存储系统代码和数据。主存储器130通常以动态随机存 取存储器(DRAM)、静态随机存取存储器(SRAM)或包括不需要刷新的存储 器的任何其它类型的存储器来实现。主存储器130可以包括诸如DRAM的 存储器设备25的多个通道。DRAM可以是双倍数率(DDR2)的。更具体 地,存储器130包括性能仿真器135,用以执行多核或多处理器系统性能 的仿真。
ICH 140具有设计成支持I/O功能的多种功能。ICH 140还可与MCH 120—起集成为芯片组,或与MCH 120分离以执行I/O功能。ICH140可 包括多个接口和I/O功能,诸如外围组件互连(PCI)总线接口、处理器接口、 中断控制器、直接存储器访问(DMA)控制器、电源管理逻辑、定时器、系 统管理总线(SMBus)、通用串行总线(USB)接口、大容量存储接口、低引脚 数(LPC)接口等。
互连145提供至外围设备的接口。互连145可以是点对点的,或连接 到多个设备。为了清楚起见,没有示出所有的互连。可预想互连145可包 括任何互连或总线,诸如外围组件互连(PCI)、 PCI快速、USB、以及直接 媒体接口(DMI)等。
大容量存储接口 150提供对大容量存储设备的接口,这些大容量存储 设备存储诸如代码、程序、文件、数据和应用程序之类的档案信息。大容 量存储设备可包括致密盘(CD)只读存储器(ROM)152、数字视频/通用盘 (DVD)154、软盘驱动器156和硬盘驱动器158、以及任何其他磁或光存储 设备。大容量存储接口 150提供了用于读取机器可访问介质的机构。I/O 设备160,至160K可包括用于执行I/O功能的任何I/O设备。I/O设备160, 至160K的例子包括用于输入设备(例如,键盘、鼠标、跟踪球、点击设备) 的控制器、媒体卡(例如,音频、视频、图形显示)、网卡以及任何其他的 外围控制器。图2是示出根据本发明的一个实施例的图1所示性能仿真器135的图示。性能仿真器135包括供给器210、每指令周期(CPI) oracle (谕示) 220、存储器建模器230和排序器240。性能仿真器135可以包括比上述更 多或更少的组件。供给器210仿真多核系统的函数方面(即,体系结构侧)。它在指令 流正在函数侧执行时向排序器240供应指令流。本质上,排序器240指令 供给器210在函数仿真的多个核之一上运行一些数量的指令。供给器210 随后执行这些指令,并向排序器240供应执行的动态指令流,以及操作数 (例如,装载和存储各操作的存储器地址)。CPI omcle 220评估来自多核系统中每个核的微体系结构效果。排除存 储器子系统,有关实际核体系结构的CPI可以从这一微体系结构效果中推 导出。该CPI omcle通过使用带有完美高速缓存配置的性能仿真计算CPI 度量,来评估微体系结构效果。完美的高速缓存配置包括由一级高速缓存 (例如,Ll高速缓存)服务的存储器访问,且没有引起未命中的访问。换 句话说,所有存储器引用的指令总会导致一级高速缓存内的高速缓存命 中。 一般而言,这样做的动机是从CPI度量中移除存储器子系统的效应。 应该注意到在某些情况下,指令可以要求从未通过一级高速缓存的存储器 访问(例如,不可高速缓存的访问),在这种情况下,仿真可以使用零周 期存储器子系统等待时间。在多核环境中,指令的次序和合成可能会受到 用于执行的特定存储器分层的影响。由于各核间的同步,使得存储器分层 参数内的改变可以变更各核的同步点,因而变更指令序列。为了最小化这 一效应,CPI oracle 220使用统计学方法来计算微体系结构CPI度量。为此, CPI oracle 220首先将用于各指令的扩展指令指针(EIP's)分成小组。它随 后计算每个组的平均CPI。它随后将属于相应组的指令的平均CPI用作该 指令的CPI度量。存储器建模器230仿真与每个核相关联的存储器分层的模型。它根据 仿真准则用函数的核仿真详细的或简化的模型。仿真准则包括速度和精 度。仿真的精度随着详细级别的提升而增加,但这也会降低仿真速度。存 储器建模器230计算包括高速缓存级处高速缓存未命中在内的存储器分层 的等待时间。考虑所有的高速缓存级,包括二级高速缓存(例如,L2高速缓存)和末级高速缓存(例如,L3高速缓存),如果这一末级高速缓存存
在的话。
排序器240将仿真的存储器分层模型叠加在评估的微体系结构效果 上,以产生有关该多核系统的性能指标。它与供给器210交互,以在各指 令由正被仿真的核执行时获取这些指令的动态流。
总之,性能仿真器135检索来自每个仿真核的指令流,基于CPI oracle 220和存储器建模器230对该流排序,并产生整个应用程序的性能指标 250。它可以仿真由任意核执行的任何代码,包括操作系统(OS)代码、 中断处理程序、设备驱动程序等。
图3是示出根据本发明的一个实施例的仿真的多核系统300的图示。 仿真的多核系统300包括共享存储器310、 N个核320,至320N (其中N是 任意正整数)、N个指令队列330,至330N、指令排序器240、 N个一级端 口 340i至340N、N个Ll高速缓存345,至345N、N个二级端口 350,至350n、 N个L2高速缓存355,至355N、交换互连模型360、末级高速缓存模型365、 前端总线(FSB)互连模型370、以及共享存储器模型375。
共享存储器310是系统内所有N个核320,至320N公用的体系结构存 储器。N个核320,至320N以它们的体系结构状态建模。共享存储器310 和N个核320,至320N由图2所示的供给器210函数仿真。
指令队列330,至330N中的每一个都含有在程序执行期间执行的指令 序列。N个指令队列330,至330N中的每一个都与N个核320,至320N中 的对应核相关联。N个指令队列330,至330N可以函数建模为供给器210 的一部分,并在性能上建模为排序器240的一部分。
它们可被称为核动态指令380。
排序器240从N个指令队列33(h至330N之一获取要仿真的指令。它 根据预先定义的准则选择与核相关联的指令队列。该准则可以是优选准 则。例如,指令队列与具有在多个核中最小的当前队列周期数的核相关联, 或者是类似于逐周期仿真的准则。它随后从选定的指令队列中检索指令, 仿真该指令,并更新该指令队列的当前队列周期数。它通过将CPI度量和 等待时间函数(如果该指令是存储器相关的)添加至当前队列周期数来更 新该当前队列周期数。存储器等待时间的函数取决于核的微体系结构。最简单的函数可以是等待时间(lantency)本身(f(latency)4atency),它对应于 简单的顺序单问题机器。然而,在更为复杂的微体系结构(例如,超标量、 乱序、VLIM)上,会要求其他的函数。该函数确定某一存储器等待时间 操作会在核本身上招致多少个周期。这可以是某一等待时间引起该核阻塞 的量。在某些情况下,这一函数除等待时间之外还会要求附加的自变量(例 如,负载的分布)。这一函数可以从实验确定,诸如使用主要组件分析大 量工作量,并且该函数可以不依赖于工作量而仅依赖于微体系结构。对工 作量的任何依赖都会被转换成该函数的附加动态自变量。
设CK为由核k执行的周期总数(在上一段被称为队列周期),其中 k=l至N (N是系统内的核数)。每次迭代,指令排序器240都确定j,使 得C」在所有Ck中最小。它随后从选定指令队列Cj中选择一指令用于仿真。 随后,它更新Cj为
Cj = Cj + CPI(j,的+ mem(/m的 (1) 其中CPI(j, ^)是使用上述统计学方法从EIP ^获得的统计CPI。 mem(/w的 是与指令/似&的执行相关联的等待时间。如果指令/似fr不是存储器相关 指令,那么mem(/似的是零。如果指令/似fr是存储器相关指令,那么 mem(/似的是指令由于存储器分层而停止的周期数。换句话说,对于存储 器相关的指令而言,mem(/"W)是由建模的存储器分层引起的总等待时间, 包括在任何内部高速缓存内的任何高速缓存未命中。应该注意到该实施例 使用简单顺序核作为示例,因此,mem(/^的是被直接添加至周期计数。 在更为复杂的微体系结构中,可以使用mem(/"欲)函数,该函数可以使用 附加的自变量来确定如上所述会在该核上招致某一等待时间(mem(/w的) 的阻塞量。
存储器建模器230仿真N个一级端口 340i至340N、 N个Ll高速缓 存345,至345N、N个二级端口 350!至350N、N个L2高速缓存355,至355N、 交换互连模型360、末级高速缓存模型365、前端总线(FSB)互连模型 370、以及共享存储器模型375。 N个一级端口 340,至340w和N个二级端 口 350,至350w中的每一个都由于多个访问而有冲突。这就使得在任何周 期中只有固定数量的事务通过。当存在的请求太多时,部分请求就不得不 停止。N个Ll高速缓存345,至345N、 N个二级端口 350,至350N以及N个L2高速缓存355,至355N中的每一个的性能模型都为到达它的每个请求 提供等待时间。例如,当将读或写请求发送至高速缓存时,则査找它的块。 如果找到,所得的等待时间就是可以包括高速缓存访问时间的命中等待时 间。如果没找到,则所得等待时间就是未命中等待时间加上在下一个高速 缓存级内査找的代价或等待时间。在每一访问期间,都根据该事务更新高 速缓存的所有内部结构。例如,为高速缓存替代更新最近最少使用(LRU) 比特。为未命中更新内容(例如,地址),以反映要高速缓存的新数据。 交换互连模型360仿真由把所有的L2高速缓存连接至单个末级高速缓存 的交换所引起的冲突和延迟。它为每一个从请求者(例如,L2高速缓存) 获取的至目的地(例如,末级高速缓存)的请求提供等待时间。该末级高 速缓存模型365对由所有核共享的末级高速缓存进行建模。它用与Ll和 L2高速缓存类似的方式建模。FSB互连模型370对在末级高速缓存和共享 存储器之间的连接进行建模。它仿真冲突和延迟,并为每一个从请求者(例 如,L2高速缓存)获取的至目的地(例如,末级高速缓存)的请求提供等 待时间。共享存储器模型375建模体系结构的共享存储器310。它仿真访 问时间(例如,100ns的固定等待时间)。
图4是示出根据本发明的一个实施例的一种用于仿真多核系统性能的 进程400的流程图。
开始后,进程400评估来自多核系统中每个核的微体系结构效果(框 410)。随后,进程400仿真与每个核相关联的存储器分层模型(框420)。 随后,进程400将仿真的存储器分层模型叠加在评估的微体系结构效果上, 以产生有关该多核系统的性能指标(框430)并在随后终止。
图5是示出根据本发明的一个实施例的一种用于评价来自每个核的微 体系结构效果的进程410的流程图。进程410通过使用完美高速缓存配置 计算CPI度量,从而评估该微体系结构。
开始后,进程410就配置完美高速缓存,在其中所有的存储器访问都 由一级高速缓存服务,好像它们已在该一级高速缓存内命中了一样(框 510)。随后,进程410将扩展指令指针(EIP's)分组(框520)。接下来, 进程410为每一组计算平均CPI (框530)。随后,进程410将属于相应组 的指令的平均CPI用作该指令的CPI度量(框540)并在随后结束。图6是示出根据本发明的一个实施例的一种用于仿真存储器分层模型的进程420的流程图。开始后,进程420根据仿真准则仿真带有函数核的详细或简化模型(框 610)。仿真准则包括速度和精度。进程420通过计算包括在高速缓存级处 的高速缓存未命中在内的存储器分层的等待时间来执行这一仿真(框 620)。进程420随后终止。图7是示出根据本发明的一个实施例的一种用于叠加的过程430的流 程图。开始后,进程430根据预先定义的准则选择与一核相关联的指令队列 (框710)。这一准则可以是指令队列具有多核中最小的当前周期数,或者 可以是与按周期仿真相类似的准则。接下来,进程430从指令队列中检索 指令(框720)。随后,进程430仿真该指令(框730)。接下来,进程430 更新与选定核相关联的当前周期数(框740)。这在该指令是存储器相关的 情况下,可以通过将CPI度量和等待时间的函数添加至当前周期数来执行。 该函数依赖于微体系结构,并且用来确定该核由于存储器访问等待时间导 致停止的周期数。进程430随后终止。尽管根据几个实施例描述了本发明,但本领域的技术人员将意识到本 发明不限于所述的实施例,而是可用所附权利要求的精神和范围内的修改 和改变了实施本发明。因此将说明书视为说明性的而不是限制性的。
权利要求
1.一种方法,包括评估来自多核系统内的每个核的微体系结构效果;仿真与每个核相关联的存储器分层模型;以及将所述仿真的存储器分层模型叠加在所述评估的微体系结构效果上,以产生所述多核系统的性能指标。
2. 如权利要求1所述的方法,其特征在于,评估所述微体系结构效果包括使用完美高速缓存配置计算CPI度量,所述完美高速缓存配置包括由不带 未命中的一级高速缓存所服务的存储器访问。
3. 如权利要求3所述的方法,其特征在于,计算所述CPI度量包括 将扩展指令指针(EIP's)分组;计算每个所述组的平均CPI;以及使用属于相应组的指令的平均CPI作为所述指令的CPI度量。
4. 如权利要求2所述的方法,其特征在于,仿真所述模型包括-根据仿真准则仿真带有函数核的详细或简化模型,所述仿真准则包括速度和精度。
5. 如权利要求4所述的方法,其特征在于,仿真所述详细或简化模型包括计算包括高速缓存级处高速缓存未命中在内的所述存储器分层的等待时间。
6. 如权利要求5所述的方法,其特征在于,所述叠加包括 根据预先定义的准则选择与核相关联的指令队列; 从所述指令队列检索指令;仿真所述指令;以及 更新与所述核相关联的当前周期数。
7. 如权利要求6所述的方法,其特征在于,更新所述当前周期数包括 如果所述指令是存储器相关的,则将所述CPI度量和所述等待时间的函数添加至所述当前周期数。
8. —种制品,包括一种包括数据的计算机可访问介质,当所述数据由机器访问时,使得所述 机器执行如下动作评估来自多核系统内的每个核的微体系结构效果;仿真与每个核相关联的存储器分层模型;以及将所述仿真的存储器分层模型叠加在所述评估的微体系结构效果上,以产 生所述多核系统的性能指标。
9. 如权利要求8所述的制品,其特征在于,所述使得所述机器执行评估 所述微体系结构效果的数据包括在由机器访问时,使得所述机器执行如下操作的数据使用完美高速缓存配置计算与每个核相关的每指令周期(CPI)度量,所述完美高速缓存配置包括由不带未命中的一级高速缓存所服务的存储器访问。
10. 如权利要求9所述的制品,其特征在于,所述使得所述机器执行计算 所述CPI度量的数据包括在由机器执行时,使得所述机器执行如下操作的数据将扩展指令指针(EIP'S)分组; 计算每个所述组的平均CPI;以及使用属于相应组的指令的平均CPI作为所述指令的CPI度量。
11. 如权利要求io所述的制品,其特征在于,所述使得所述机器执行仿真所述模型的数据包括在由机器访问时,使得所述机器执行如下操作的数据根据仿真准则仿真带有函数核的详细或简化模型,所述仿真准则包括速度 和精度。
12. 如权利要求11所述的制品,其特征在于,所述使得所述机器执行仿真所述详细或简化模型的数据包括在由机器访问时,使得所述机器执行如下操作的数据计算包括高速缓存级处高速缓存未命中在内的所述存储器分层的等待时间。
13. 如权利要求12所述的制品,其特征在于,所述使得所述机器执行叠加的数据包括在由机器访问时,使得所述机器执行如下操作的数据 根据预先定义的准则选择与核相关联的指令队列; 从所述指令队列检索指令; 仿真所述指令;以及 更新与所述核相关联的当前周期数。
14. 如权利要求13所述的制品,其特征在于,所述使得所述机器执行更 新所述当前周期数的数据包括在由机器访问时,使得所述机器执行如下操作的数据如果所述指令是存储器相关的,则将所述CPI度量和所述等待时间的函数 添加至所述当前周期数。
15. —种系统,包括 处理器;以及包含由所述处理器执行的性能仿真器的存储器,所述性能仿真器包括每指令周期(CPI) omcle,用以评估来自多核系统中的每个核的微体 系结构效果;存储器建模器,用以仿真与每个核相关联的存储器分层的模型;以及 耦合至所述CPI oracle和所述存储器建模器的排序器,用以将所述仿真的存储器分层模型叠加在所述评估的微体系结构效果上,以产生所述多核系统的性能指标。
16. 如权利要求15所述的系统,其特征在于,所述CPI oracle使用完美 高速缓存配置计算与每个核相关联的CPI度量,所述完美高速缓存配置包括由 不带未命中的一级高速缓存所服务的存储器访问。
17. 如权利要求16所述的系统,其特征在于,所述CPI oracle通过将扩 展指令指针(EIP's)分组,计算每个所述组的平均CPI,并将属于相应组的指 令的平均CPI用作所述指令的CPI度量来计算所述CPI度量。
18. 如权利要求17所述的方法,其特征在于,所述存储器建模器计算包 括高速缓存级处高速缓存未命中在内的存储器分层的等待时间。
19. 如权利要求17所述的方法,其特征在于,所述排序器仿真从与核相 关联并根据预先定义准则选定的指令队列中检索的指令,所述排序器在仿真所述指令之后更新与所述核相关联的当前周期数。
20.如权利要求19所述的系统,其特征在于,如果所述指令是存储器相 关的,则所述排序器通过将所述CPI度量和所述等待时间的函数添加至所述当 前队列周期数来更新所述当前周期数。
全文摘要
本发明的一个实施例是一种仿真多核系统性能的技术。评估来自多核系统中的每个核的微体系结构效果。仿真与每个核相关联的存储器分层模型。仿真的存储器分层模型被叠加在评估的微体系结构效果上,以产生有关该多核系统的性能指标。
文档编号G06F17/50GK101278293SQ200680034532
公开日2008年10月1日 申请日期2006年8月3日 优先权日2005年9月21日
发明者M·特萨迪克, N·勒伯威茨, R·加伯, Y·库巴卡 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1