CN101278293A - 多处理器系统的性能仿真 - Google Patents
多处理器系统的性能仿真 Download PDFInfo
- Publication number
- CN101278293A CN101278293A CNA2006800345320A CN200680034532A CN101278293A CN 101278293 A CN101278293 A CN 101278293A CN A2006800345320 A CNA2006800345320 A CN A2006800345320A CN 200680034532 A CN200680034532 A CN 200680034532A CN 101278293 A CN101278293 A CN 101278293A
- Authority
- CN
- China
- Prior art keywords
- instruction
- cpi
- emulation
- cache
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明的一个实施例是一种仿真多核系统性能的技术。评估来自多核系统中的每个核的微体系结构效果。仿真与每个核相关联的存储器分层模型。仿真的存储器分层模型被叠加在评估的微体系结构效果上,以产生有关该多核系统的性能指标。
Description
背景
发明领域
本发明的实施例涉及处理器性能领域,尤其涉及性能仿真。
相关领域的描述
处理器系统上的性能仿真可用来评估各类可选设计。现代微处理器的复杂体系结构通常要求大规模的仿真或建模以精确表征系统性能。在多核或多处理器系统领域,因为由多核或处理器和存储器子系统使用之间的交互引起的复杂性,使得这种仿真已成为一种挑战。
仿真多核或多处理器系统的性能的现有技术具有诸多缺点。聚焦于精确仿真微体系结构特征的技术速度极为缓慢。为了缩短仿真时间,存在有使用随机采样或者基于特征化的多种技术。虽然这些技术对单线程工作量仿真有效,但是它们对多线程或多核环境可能效率低下。诸如分析模型和简化输入设置的其他技术要求每一个模型的形式证明或验证,因此就不适用于大型设计空间探索。此外,它们可能不精确。
附图简述
通过参考以下用于说明本发明的实施例的描述和附图将最好地理解本发明的实施例。附图中:
图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)设备1601至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)图形渲染功能、明暗处理、反图形失真、多边形渲染、透明效果、颜色空间转换、α-混合、色度键控等图形操作的图形能力。还可以包括专用的图形引擎,它可执行特殊且复杂的图形功能,诸如几何计算、仿射变换、模型视图投影、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还可与MCH120一起集成为芯片组,或与MCH 120分离以执行I/O功能。ICH 140可包括多个接口和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设备1601至160K可包括用于执行I/O功能的任何I/O设备。I/O设备1601至160K的例子包括用于输入设备(例如,键盘、鼠标、跟踪球、点击设备)的控制器、媒体卡(例如,音频、视频、图形显示)、网卡以及任何其他的外围控制器。
图2是示出根据本发明的一个实施例的图1所示性能仿真器135的图示。性能仿真器135包括供给器210、每指令周期(CPI)oracle(谕示)220、存储器建模器230和排序器240。性能仿真器135可以包括比上述更多或更少的组件。
供给器210仿真多核系统的函数方面(即,体系结构侧)。它在指令流正在函数侧执行时向排序器240供应指令流。本质上,排序器240指令供给器210在函数仿真的多个核之一上运行一些数量的指令。供给器210随后执行这些指令,并向排序器240供应执行的动态指令流,以及操作数(例如,装载和存储各操作的存储器地址)。
CPI oracle 220评估来自多核系统中每个核的微体系结构效果。排除存储器子系统,有关实际核体系结构的CPI可以从这一微体系结构效果中推导出。该CPI oracle通过使用带有完美高速缓存配置的性能仿真计算CPI度量,来评估微体系结构效果。完美的高速缓存配置包括由一级高速缓存(例如,L1高速缓存)服务的存储器访问,且没有引起未命中的访问。换句话说,所有存储器引用的指令总会导致一级高速缓存内的高速缓存命中。一般而言,这样做的动机是从CPI度量中移除存储器子系统的效应。应该注意到在某些情况下,指令可以要求从未通过一级高速缓存的存储器访问(例如,不可高速缓存的访问),在这种情况下,仿真可以使用零周期存储器子系统等待时间。在多核环境中,指令的次序和合成可能会受到用于执行的特定存储器分层的影响。由于各核间的同步,使得存储器分层参数内的改变可以变更各核的同步点,因而变更指令序列。为了最小化这一效应,CPI oracle 220使用统计学方法来计算微体系结构CPI度量。为此,CPI oracle 220首先将用于各指令的扩展指令指针(EIP’s)分成小组。它随后计算每个组的平均CPI。它随后将属于相应组的指令的平均CPI用作该指令的CPI度量。
存储器建模器230仿真与每个核相关联的存储器分层的模型。它根据仿真准则用函数的核仿真详细的或简化的模型。仿真准则包括速度和精度。仿真的精度随着详细级别的提升而增加,但这也会降低仿真速度。存储器建模器230计算包括高速缓存级处高速缓存未命中在内的存储器分层的等待时间。考虑所有的高速缓存级,包括二级高速缓存(例如,L2高速缓存)和末级高速缓存(例如,L3高速缓存),如果这一末级高速缓存存在的话。
排序器240将仿真的存储器分层模型叠加在评估的微体系结构效果上,以产生有关该多核系统的性能指标。它与供给器210交互,以在各指令由正被仿真的核执行时获取这些指令的动态流。
总之,性能仿真器135检索来自每个仿真核的指令流,基于CPI oracle220和存储器建模器230对该流排序,并产生整个应用程序的性能指标250。它可以仿真由任意核执行的任何代码,包括操作系统(OS)代码、中断处理程序、设备驱动程序等。
图3是示出根据本发明的一个实施例的仿真的多核系统300的图示。仿真的多核系统300包括共享存储器310、N个核3201至320N(其中N是任意正整数)、N个指令队列3301至330N、指令排序器240、N个一级端口3401至340N、N个L1高速缓存3451至345N、N个二级端口3501至350N、N个L2高速缓存3551至355N、交换互连模型360、末级高速缓存模型365、前端总线(FSB)互连模型370、以及共享存储器模型375。
共享存储器310是系统内所有N个核3201至320N公用的体系结构存储器。N个核3201至320N以它们的体系结构状态建模。共享存储器310和N个核3201至320N由图2所示的供给器210函数仿真。
指令队列3301至330N中的每一个都含有在程序执行期间执行的指令序列。N个指令队列3301至330N中的每一个都与N个核3201至320N中的对应核相关联。N个指令队列3301至330N可以函数建模为供给器210的一部分,并在性能上建模为排序器240的一部分。
它们可被称为核动态指令380。
排序器240从N个指令队列3301至330N之一获取要仿真的指令。它根据预先定义的准则选择与核相关联的指令队列。该准则可以是优选准则。例如,指令队列与具有在多个核中最小的当前队列周期数的核相关联,或者是类似于逐周期仿真的准则。它随后从选定的指令队列中检索指令,仿真该指令,并更新该指令队列的当前队列周期数。它通过将CPI度量和等待时间函数(如果该指令是存储器相关的)添加至当前队列周期数来更新该当前队列周期数。存储器等待时间的函数取决于核的微体系结构。最简单的函数可以是等待时间(lantency)本身(f(latency)=latency),它对应于简单的顺序单问题机器。然而,在更为复杂的微体系结构(例如,超标量、乱序、VLIM)上,会要求其他的函数。该函数确定某一存储器等待时间操作会在核本身上招致多少个周期。这可以是某一等待时间引起该核阻塞的量。在某些情况下,这一函数除等待时间之外还会要求附加的自变量(例如,负载的分布)。这一函数可以从实验确定,诸如使用主要组件分析大量工作量,并且该函数可以不依赖于工作量而仅依赖于微体系结构。对工作量的任何依赖都会被转换成该函数的附加动态自变量。
设CK为由核k执行的周期总数(在上一段被称为队列周期),其中k=1至N(N是系统内的核数)。每次迭代,指令排序器240都确定j,使得Cj在所有Ck中最小。它随后从选定指令队列Cj中选择一指令用于仿真。随后,它更新Cj为:
Cj=Cj+CPI(j,ip)+mem(instr) (1)
其中CPI(j,ip)是使用上述统计学方法从EIP ip获得的统计CPI。mem(instr)是与指令instr的执行相关联的等待时间。如果指令instr不是存储器相关指令,那么mem(instr)是零。如果指令instr是存储器相关指令,那么mem(instr)是指令由于存储器分层而停止的周期数。换句话说,对于存储器相关的指令而言,mem(instr)是由建模的存储器分层引起的总等待时间,包括在任何内部高速缓存内的任何高速缓存未命中。应该注意到该实施例使用简单顺序核作为示例,因此,mem(instr)是被直接添加至周期计数。在更为复杂的微体系结构中,可以使用mem(instr)函数,该函数可以使用附加的自变量来确定如上所述会在该核上招致某一等待时间(mem(instr))的阻塞量。
存储器建模器230仿真N个一级端口3401至340N、N个L1高速缓存3451至345N、N个二级端口3501至350N、N个L2高速缓存3551至355N、交换互连模型360、末级高速缓存模型365、前端总线(FSB)互连模型370、以及共享存储器模型375。N个一级端口3401至340N和N个二级端口3501至350N中的每一个都由于多个访问而有冲突。这就使得在任何周期中只有固定数量的事务通过。当存在的请求太多时,部分请求就不得不停止。N个L1高速缓存3451至345N、N个二级端口3501至350N以及N个L2高速缓存3551至355N中的每一个的性能模型都为到达它的每个请求提供等待时间。例如,当将读或写请求发送至高速缓存时,则查找它的块。如果找到,所得的等待时间就是可以包括高速缓存访问时间的命中等待时间。如果没找到,则所得等待时间就是未命中等待时间加上在下一个高速缓存级内查找的代价或等待时间。在每一访问期间,都根据该事务更新高速缓存的所有内部结构。例如,为高速缓存替代更新最近最少使用(LRU)比特。为未命中更新内容(例如,地址),以反映要高速缓存的新数据。交换互连模型360仿真由把所有的L2高速缓存连接至单个末级高速缓存的交换所引起的冲突和延迟。它为每一个从请求者(例如,L2高速缓存)获取的至目的地(例如,末级高速缓存)的请求提供等待时间。该末级高速缓存模型365对由所有核共享的末级高速缓存进行建模。它用与L1和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随后终止。
尽管根据几个实施例描述了本发明,但本领域的技术人员将意识到本发明不限于所述的实施例,而是可用所附权利要求的精神和范围内的修改和改变了实施本发明。因此将说明书视为说明性的而不是限制性的。
Claims (20)
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.如权利要求10所述的制品,其特征在于,所述使得所述机器执行仿真所述模型的数据包括在由机器访问时,使得所述机器执行如下操作的数据:
根据仿真准则仿真带有函数核的详细或简化模型,所述仿真准则包括速度和精度。
12.如权利要求11所述的制品,其特征在于,所述使得所述机器执行仿真所述详细或简化模型的数据包括在由机器访问时,使得所述机器执行如下操作的数据:
计算包括高速缓存级处高速缓存未命中在内的所述存储器分层的等待时间。
13.如权利要求12所述的制品,其特征在于,所述使得所述机器执行叠加的数据包括在由机器访问时,使得所述机器执行如下操作的数据:
根据预先定义的准则选择与核相关联的指令队列;
从所述指令队列检索指令;
仿真所述指令;以及
更新与所述核相关联的当前周期数。
14.如权利要求13所述的制品,其特征在于,所述使得所述机器执行更新所述当前周期数的数据包括在由机器访问时,使得所述机器执行如下操作的数据:
如果所述指令是存储器相关的,则将所述CPI度量和所述等待时间的函数添加至所述当前周期数。
15.一种系统,包括:
处理器;以及
包含由所述处理器执行的性能仿真器的存储器,所述性能仿真器包括:
每指令周期(CPI)oracle,用以评估来自多核系统中的每个核的微体系结构效果;
存储器建模器,用以仿真与每个核相关联的存储器分层的模型;以及
耦合至所述CPI oracle和所述存储器建模器的排序器,用以将所述仿真的存储器分层模型叠加在所述评估的微体系结构效果上,以产生所述多核系统的性能指标。
16.如权利要求15所述的系统,其特征在于,所述CPI oracle使用完美高速缓存配置计算与每个核相关联的CPI度量,所述完美高速缓存配置包括由不带未命中的一级高速缓存所服务的存储器访问。
17.如权利要求16所述的系统,其特征在于,所述CPI oracle通过将扩展指令指针(EIP’s)分组,计算每个所述组的平均CPI,并将属于相应组的指令的平均CPI用作所述指令的CPI度量来计算所述CPI度量。
18.如权利要求17所述的方法,其特征在于,所述存储器建模器计算包括高速缓存级处高速缓存未命中在内的存储器分层的等待时间。
19.如权利要求17所述的方法,其特征在于,所述排序器仿真从与核相关联并根据预先定义准则选定的指令队列中检索的指令,所述排序器在仿真所述指令之后更新与所述核相关联的当前周期数。
20.如权利要求19所述的系统,其特征在于,如果所述指令是存储器相关的,则所述排序器通过将所述CPI度量和所述等待时间的函数添加至所述当前队列周期数来更新所述当前周期数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/231,619 | 2005-09-21 | ||
US11/231,619 US7650273B2 (en) | 2005-09-21 | 2005-09-21 | Performance simulation of multiprocessor systems |
PCT/US2006/030183 WO2007040793A1 (en) | 2005-09-21 | 2006-08-03 | Performance simulation of multiprocessor systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101278293A true CN101278293A (zh) | 2008-10-01 |
CN101278293B CN101278293B (zh) | 2013-11-13 |
Family
ID=37451082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800345320A Expired - Fee Related CN101278293B (zh) | 2005-09-21 | 2006-08-03 | 多处理器系统的性能仿真 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7650273B2 (zh) |
EP (1) | EP1927062A1 (zh) |
CN (1) | CN101278293B (zh) |
WO (1) | WO2007040793A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880770A (zh) * | 2012-10-29 | 2013-01-16 | 无锡江南计算技术研究所 | 基于宏指令队列的cpu访存序列仿真模型 |
CN103218251A (zh) * | 2013-04-16 | 2013-07-24 | 青岛中星微电子有限公司 | 多核系统级芯片的验证方法和装置 |
CN105917313A (zh) * | 2013-12-02 | 2016-08-31 | 英特尔公司 | 优化平台仿真资源消耗的方法和装置 |
CN107924289A (zh) * | 2015-10-26 | 2018-04-17 | 株式会社日立制作所 | 计算机系统和访问控制方法 |
CN112034730A (zh) * | 2019-05-20 | 2020-12-04 | 辉达公司 | 使用机器学习的自主车辆仿真 |
CN115658455A (zh) * | 2022-12-07 | 2023-01-31 | 北京开源芯片研究院 | 处理器性能评估方法、装置、电子设备及可读存储介质 |
CN115993949A (zh) * | 2023-03-21 | 2023-04-21 | 苏州浪潮智能科技有限公司 | 一种面向多核处理器的向量数据的处理方法及装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4667206B2 (ja) * | 2005-10-31 | 2011-04-06 | 富士通セミコンダクター株式会社 | マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法 |
JP4820654B2 (ja) * | 2006-02-06 | 2011-11-24 | 富士通セミコンダクター株式会社 | サイクルシミュレーション方法、サイクルシミュレーションプログラム、該プログラムを記録した記録媒体、およびサイクルシミュレータ |
GB0613409D0 (en) * | 2006-07-06 | 2006-08-16 | Imperas Inc | Technique for fast simulation of multi-processor systems with transactional coherence and consistency |
US9658849B2 (en) * | 2006-07-06 | 2017-05-23 | Imperas Software Ltd. | Processor simulation environment |
KR101635397B1 (ko) * | 2010-03-03 | 2016-07-04 | 삼성전자주식회사 | 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법 |
CN103455412B (zh) * | 2013-09-23 | 2016-10-19 | 扬州大学 | 一种基于随机进程代数的并发系统性能模拟方法 |
US9804849B2 (en) | 2015-10-20 | 2017-10-31 | International Business Machines Corporation | Space reduction in processor stressmark generation |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052524A (en) * | 1998-05-14 | 2000-04-18 | Software Development Systems, Inc. | System and method for simulation of integrated hardware and software components |
AU2001255808A1 (en) * | 2000-03-15 | 2001-09-24 | Arc Cores, Inc. | Method and apparatus for debugging programs in a distributed environment |
US7072825B2 (en) * | 2003-06-16 | 2006-07-04 | Fortelink, Inc. | Hierarchical, network-based emulation system |
US20060168571A1 (en) | 2005-01-27 | 2006-07-27 | International Business Machines Corporation | System and method for optimized task scheduling in a heterogeneous data processing system |
-
2005
- 2005-09-21 US US11/231,619 patent/US7650273B2/en not_active Expired - Fee Related
-
2006
- 2006-08-03 WO PCT/US2006/030183 patent/WO2007040793A1/en active Application Filing
- 2006-08-03 CN CN2006800345320A patent/CN101278293B/zh not_active Expired - Fee Related
- 2006-08-03 EP EP06800687A patent/EP1927062A1/en not_active Ceased
Non-Patent Citations (2)
Title |
---|
CHRISTIAN RICCI 等: "Simultaneous Multithreading (SMT) in Theory and Practice", 《普林斯顿大学论文》 * |
RAKESH KUMAR 等: "Single-ISA Heterogeneous Multi-Core Architectures for Multithreaded Workload Performance", 《PROCEEDINGS OF THE 31ST ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA"04)》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880770A (zh) * | 2012-10-29 | 2013-01-16 | 无锡江南计算技术研究所 | 基于宏指令队列的cpu访存序列仿真模型 |
CN103218251A (zh) * | 2013-04-16 | 2013-07-24 | 青岛中星微电子有限公司 | 多核系统级芯片的验证方法和装置 |
CN103218251B (zh) * | 2013-04-16 | 2016-05-18 | 青岛中星微电子有限公司 | 多核系统级芯片的验证方法和装置 |
CN105917313A (zh) * | 2013-12-02 | 2016-08-31 | 英特尔公司 | 优化平台仿真资源消耗的方法和装置 |
CN107924289A (zh) * | 2015-10-26 | 2018-04-17 | 株式会社日立制作所 | 计算机系统和访问控制方法 |
CN112034730A (zh) * | 2019-05-20 | 2020-12-04 | 辉达公司 | 使用机器学习的自主车辆仿真 |
CN115658455A (zh) * | 2022-12-07 | 2023-01-31 | 北京开源芯片研究院 | 处理器性能评估方法、装置、电子设备及可读存储介质 |
CN115993949A (zh) * | 2023-03-21 | 2023-04-21 | 苏州浪潮智能科技有限公司 | 一种面向多核处理器的向量数据的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2007040793A1 (en) | 2007-04-12 |
US7650273B2 (en) | 2010-01-19 |
EP1927062A1 (en) | 2008-06-04 |
CN101278293B (zh) | 2013-11-13 |
US20070078640A1 (en) | 2007-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101278293B (zh) | 多处理器系统的性能仿真 | |
Cong et al. | Parade: A cycle-accurate full-system simulation platform for accelerator-rich architectural design and exploration | |
Bai et al. | BOOM-Explorer: RISC-V BOOM microarchitecture design space exploration framework | |
Goswami et al. | Exploring GPGPU workloads: Characterization methodology, analysis and microarchitecture evaluation implications | |
CA2695564C (en) | Modular re-configurable profiling core for multiprocessor systems-on-chip | |
CN104021109B (zh) | 用于在计算机系统中传递中断的技术 | |
CN109471732B (zh) | 一种面向cpu-fpga异构多核系统的数据分配方法 | |
CN112433853B (zh) | 一种面向超级计算机数据并行应用的异构感知数据划分方法 | |
Oliveira et al. | A generic processing in memory cycle accurate simulator under hybrid memory cube architecture | |
EP3754481A1 (en) | Technology for generating input/output performance metrics | |
CN104899385B (zh) | 异构多核的SoC设计评估系统 | |
Verma et al. | Demystifying the mlperf training benchmark suite | |
US11593547B1 (en) | Prediction and optimization of multi-kernel circuit design performance using a programmable overlay | |
CN103455364A (zh) | 一种多核环境并行程序Cache性能在线获取系统及方法 | |
US20230056423A1 (en) | Processor core simulator including trace-based coherent cache driven memory traffic generator | |
Qureshi et al. | Genome sequence alignment-design space exploration for optimal performance and energy architectures | |
Verma et al. | Demystifying the mlperf benchmark suite | |
CN113407350A (zh) | 指令处理装置、处理器、芯片、计算设备及相应的方法 | |
Liu et al. | Scale-model simulation | |
Vivas Maeda et al. | A fast joint application-architecture exploration platform for heterogeneous systems | |
Iskandar et al. | Ndp-rank: Prediction and ranking of ndp systems performance using machine learning | |
CN117768356B (zh) | 预测方法及装置、电子设备与存储介质 | |
US20240311163A1 (en) | Hardware-driven call stack attribution | |
CN206563961U (zh) | 并行计算机系统 | |
Zhou et al. | A server model for reliable communication on cell/BE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131113 Termination date: 20180803 |
|
CF01 | Termination of patent right due to non-payment of annual fee |