CN101482891A - 性能评估模拟 - Google Patents
性能评估模拟 Download PDFInfo
- Publication number
- CN101482891A CN101482891A CNA2008101905231A CN200810190523A CN101482891A CN 101482891 A CN101482891 A CN 101482891A CN A2008101905231 A CNA2008101905231 A CN A2008101905231A CN 200810190523 A CN200810190523 A CN 200810190523A CN 101482891 A CN101482891 A CN 101482891A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- performance evaluation
- basic processing
- unit
- arrangement
- 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
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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
-
- 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
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/08—HW-SW co-design, e.g. HW-SW partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
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)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及性能评估模拟。一种性能评估模拟装置基于执行日志将处理划分成基本处理单元;根据保存在所述执行日志中的信息来计算每个基本处理单元的吞吐量;改变布置结构,使得计算出的吞吐量超过预定阈值的基本处理单元被布置在硬件模型中;并且对所述硬件模型和软件模型进行性能评估模拟以产生作为性能评估的基础的统计信息。
Description
技术领域
本发明涉及对软件模型和硬件模型进行的性能评估模拟,以便进行性能评估,其中针对所述软件模型和所述硬件模型,根据系统规范分别通过使用软件和硬件来临时确定要执行的处理。
背景技术
通常,电子设备中使用的处理器、总线、存储器以及其他部件被实施在一个LSI(大规模集成电路)上,且在该LSI(系统LSI)上要执行多个处理。在一个LSI上这样实施多个处理是为了例如减小LSI尺寸且减小成本和功耗的目的。然而,一旦确定了LSI的硬件和架构,就很难轻易改变,由此增加了设计LSI的功能的难度。
具体而言,为了追求LSI的尺寸减小和低成本,减小LSI上的处理负荷是十分重要的,且LSI上实施的每个处理必须优选地分为软件(此后称为“SW”)或硬件(此后称为“HW”)。因此,在LSI设计的初始阶段临时确定SW或HW(其上将实现要在LSI上执行的功能)之后,执行SW/HW性能验证。
在上述性能验证中,软件例如以C语言、汇编语言等编写,并且在包括目标处理器的实际机模型上执行(该目标处理器是被实现在LSI上用于性能验证的处理器)或者在用于所述目标处理器的ISS(指令集合模拟器)上执行,由此模拟所述软件的操作。此外,硬件例如以用于描述硬件的语言RTL(寄存器转换层)或TLM(事务级模型)编写或以通过混合RTM和TLM获得的语言编写,由此模拟硬件的操作。
在这种性能验证中,当在设计系统LSI的初始阶段执行SW/HW划分时,通过使用人力来分析并划分应用程序的源码和系统LSI的规范以基于将要执行的周期数等来验证划分的有效性。近年来,已经公开了用于自动进行这种验证的各种技术。
例如,日本特开No.2001-142927公开了如下技术:对完成到一定程度的源码进行分析,并且通过采用每个处理单元的值作为确定因素,诸如从时钟周期数计算的吞吐量和从功能的描述部分计算的功耗数量,对每个处理单元进行SW/HW划分。
此外,例如,日本特开平No.H11-259552公开了如下技术:将系统LSI的架构描述转变成以执行为单元的模块以进行SW/HW划分,并且对基于基准程序通过执行模拟而获得的相应模块的执行时间进行比较,由此确定SW/HW划分的有效性。
然而,在上面说明的常规技术中,难以在设计的初始阶段最佳地执行SW/HW划分,且不能确定SW/HW划分的有效性。
具体而言,在日本特开No.2001-142927中,由于直到应用程序的源码完成到一定程度时才能实施分析,所以难以在设计的初始阶段最佳地执行SW/HW划分。而且,日本特开平No.H11-259552中,仅将执行单元的处理时间相互比较,并且不考虑从系统的高速缓存分析获得的CPU(中央处理单元)的统计信息。因此,不能确定SW/HW划分的有效性。
发明内容
本发明的目的是至少部分地解决常规技术中的问题。
根据实施方式的一方面,性能评估模拟装置通过对其中根据系统规范使用软件和硬件来临时确定要执行的处理的软件模型和硬件模型进行模拟来评估性能。该性能评估模拟装置包括:基本处理单元划分单元,其进行基本处理单元的划分,该基本处理单元是基于表示通过在实际机或模拟软件上执行软件模型而获得的执行历史的执行日志,而要在软件模型中执行的处理的执行单元;吞吐量计算单元,其根据执行日志中所保存的指令地址串的数目或用于数据存取的地址串的数目来计算通过所述基本处理单元划分单元进行的划分所获得的每个基本处理单元的吞吐量;布置结构改变单元,其将所述吞吐量计算单元计算出的每个吞吐量与预定阈值进行比较,并且改变布置结构,以便将吞吐量超过预定阈值的基本处理单元从软件模型改变为硬件模型;以及统计信息产生单元,其通过对其布置结构已被所述布置结构改变单元改变为硬件模型的基本处理单元以及按软件模型布置的基本处理单元进行性能评估模拟,来产生作为性能评估的基础的统计信息,该性能评估模拟经由指令高速缓存和数据高速缓存来执行总线存取以对系统的操作分析所需的数据进行测量。
根据实施方式的另一方面,一种性能评估模拟方法用于通过执行对其中根据系统规范使用软件和硬件临时确定要执行的处理的软件模型和硬件模型的模拟来评估性能。该性能评估模拟方法包括以下步骤:划分步骤,其进行基本处理单元的划分,该基本处理单元是基于表示通过在实际机或模拟软件上执行软件模型而获得的执行历史的执行日志,而要在软件模型中执行的处理的执行单元;计算步骤,其根据执行日志中所保存的指令地址串的数目或用于数据存取的地址串的数目来计算通过所述划分步骤所获得的每个基本处理单元的吞吐量;比较步骤,其将计算出的每个吞吐量与预定阈值相比较;改变步骤,其改变布置结构,以将吞吐量超过预定阈值的基本处理单元从软件模型改变为硬件模型;以及产生步骤,其通过对其布置结构已被所述改变步骤改变为硬件模型的基本处理单元和按软件模型布置的基本处理单元进行性能评估模拟,来产生作为性能评估的基础的统计信息,该性能评估模拟经由指令高速缓存和数据高速缓存来执行总线存取以对系统的操作分析所需的数据进行测量。
根据实施方式的又一方面,一种电子装置包括性能评估模拟装置,该性能评估模拟装置对根据系统规范而在软件和硬件上执行的处理进行模拟,并且该电子装置基于通过该性能评估模拟装置获得的性能评估来设计LSI。该电子装置包括:接受单元,其接受软件模型和硬件模型;基本处理单元划分单元,其执行基本处理单元的划分,该基本处理单元是基于表示通过在实际机或模拟软件上执行软件模型而获得的执行历史的执行日志,而要在软件模型中执行的处理的执行单元;吞吐量计算单元,其根据执行日志中保存的指令地址串的数目或用于数据存取的地址串的数目来计算通过所述基本处理单元划分单元的划分而获得的每个基本处理单元的吞吐量;布置结构改变单元,其将所述吞吐量计算单元计算的每个吞吐量与预定阈值进行比较,并且改变布置结构,使得将吞吐量超过预定阈值的基本处理单元从软件模型改变为硬件模型;统计信息产生单元,其通过对其布置结构已被所述布置结构改变单元改变为硬件模型的基本处理单元和按软件模型布置的基本处理单元执行性能评估模拟,来产生作为性能评估的基础的统计信息,该性能评估模拟经由指令高速缓存和数据高速缓存来执行总线存取以测量系统的操作分析所需的数据;以及LSI产生单元,其基于所述统计信息产生单元产生的统计信息,以划分的方式在LSI上实现软件和硬件。
本发明(实施方式)的其它目的和优点将在下面的说明中部分地进行阐述,且可部分地从说明中显现,或者可通过本发明的实践而获知。本发明的目的和优点可通过所附权利要求中具体指出的部件和组合来实现并获得。
应当理解上述总体描述和下文的详细描述都仅是示例性和说明性的,并且并非对本发明的限制。
附图说明
图1是根据第一实施方式的性能评估模拟装置的概况和特征的图;
图2是根据第一实施方式的性能评估模拟装置的配置的图;
图3是根据第一实施方式在整个执行日志中的对地址的存取与基本处理单元之间的关系的图;
图4是根据第一实施方式的统计信息的示例的图;
图5是LSI开发流的图;
图6是根据第一实施方式的性能评估模拟装置的模拟处理的流程图;
图7是用于说明通过根据第一实施方式的性能评估模拟装置所执行的SW/HW划分处理的图;
图8是当CPU模型定期执行事件时,时间与CPU吞吐量之间的关系的图;
图9是根据第二实施方式当CPU中的功能模块的一部分转变成硬件时的事件处理的图;
图10是根据第二实施方式的UML类的示例的图;
图11是根据第二实施方式的以系统C语言描述的示例的图;
图12是根据第二实施方式的硬件模型的抽象程度与模拟处理之间的关系的图;
图13是用于说明根据第三实施方式的性能评估模拟处理的图;
图14是用于说明根据第四实施方式的性能评估模拟处理的图;
图15是根据第四实施方式的当CPU中的进程处理的一部分转变为硬件时的事件处理的图;
图16是用于说明根据第五实施方式的使用执行日志的文件大小作为SW/HW划分的阈值的情况的图;
图17是用于说明根据第六实施方式的通过使用附加CPU向多核转变的构思的图;以及
图18是执行性能评估模拟程序的计算机的图。
具体实施方式
参考附图,下面详细说明根据本发明的性能评估模拟装置的实施方式。下面,依次说明根据本发明的性能评估模拟装置的概况和特征,以及该性能评估模拟装置的配置和处理流,最后说明实施方式的效果。
第一实施方式
[概况和特征]
首先,通过使用图1,对根据第一实施方式的性能评估模拟装置的概况和特征进行说明。图1是根据第一实施方式的性能评估模拟装置的概况和特征的图。
该性能评估模拟装置利用执行日志(指令串)作为输入来执行性能评估模拟。该执行日志表示:从将系统LSI的规范划分成软件模型和硬件模型并且使用ISS(信息存储系统)等在实际机或目标CPU上执行通过所述划分获得的软件模型的结果而获得的执行历史。
在这种配置中,性能评估模拟装置的概况是,使得在软件模型和硬件模型中,根据系统规范临时确定将要在软件和硬件中执行的处理,并且针对软件模型和硬件模型的每一个执行性能评估。具体而言,该装置的主要特征在于,使得能够在设计的初始阶段最优化地执行SW/HW划分,并且能够确定SW/HW划分的有效性。
现在将具体说明这些主要特征。基于表示通过执行实际机上的软件模型或模拟软件而获得的执行历史的执行日志,性能评估模拟装置做出基本处理单元的划分,该基本处理单元是软件模型中将要执行的处理的执行单元(参考图1的(1))。
具体的示例如下。性能评估模拟装置接收执行日志的输入,该执行日志表示从将系统LSI规范划分成软件模型和硬件模型并且使用ISS等在实际机或目标CPU上执行软件模型的结果而获得的执行历史。然后,基于该输入执行日志,性能评估模拟装置进行基本处理单元的划分,该基本处理单元是将要在软件模型中执行的处理的执行单元。在这种基本处理单元的划分中,在通信处理软件的情况下,例如,在从周期性处理的图形(pattern)找到OS(操作系统)的任务起始点之后,以任务为单元来执行划分。此外,例如,在从指令地址串追踪对象文件之间的处理流之后,找到中断并进行划分。
然后,性能评估模拟装置根据保存在执行日志中的指令串数目或者用于数据存取的地址串的数目来计算通过划分所获得的每个基本处理单元的吞吐量(参考图1的(2))。具体而言,在上述示例中,性能评估模拟装置根据在处理执行时表示分支目的地地址信息的指令地址串的数目、表示用于存取数据库的存取目的地地址信息的数据存取地址串的数目、或者保存在执行日志中的其他信息来计算通过划分获得的每个基本处理单元的吞吐量。
此后,性能评估模拟装置将每个计算出的吞吐量与预定阈值进行比较,且改变布置结构,将吞吐量超过预定阈值的基本处理单元从软件模型改变为硬件模型(参考图1的(3))。具体而言,在上述示例中,性能评估模拟装置将每个计算出的吞吐量与预定阈值吞吐量进行比较。然后,根据比较的结果,性能评估模拟装置改变布置结构,以便将具有指示吞吐量超过预定阈值吞吐量的执行日志的基本处理单元从软件处理改变为硬件处理,从而直接连接到总线,由此进行向硬件的转变。
然后,对于其布置结构被改变为硬件模型的基本处理单元和按软件模型布置的基本处理单元,性能评估模拟装置通过执行经由指令高速缓存和数据高速缓存的总线存取来执行性能评估模拟,以测量系统操作分析所需的数据,由此产生作为性能评估的基础的统计信息(参考图1的(4))。具体而言,在上述示例中,对于其布置结构被改变为硬件模型的基本处理单元和按硬件模型布置的基本处理单元,以及其布置结构被改变为软件模型的基本处理单元和按软件模型布置的基本处理单元,性能评估模拟装置通过经由指令高速缓存和数据高速缓存执行总线存取来执行性能评估模拟。然后,性能评估模拟装置测量指令执行时间、指令读取时间以及数据存取时间,由此产生作为性能评估的基础的统计信息,诸如CPU负载系数。该性能评估模拟装置所产生的统计信息用于确定最佳SW/HW划分的有效性。在此,通过多次执行性能评估模拟,可获得高度精确的模拟结果。
以这种方式,当根据第一实施方式的性能评估模拟装置基于通过使用ISS等在实际机或目标CPU上执行软件模型的结果而获得的执行日志来执行性能评估模拟时,在通过基于保存在执行日志中的信息进行划分而获得的基本处理单元中,将具有大吞吐量的基本处理单元转变为用于执行模拟的硬件。因此,如上所述,在主要特征中,可在设计的初始阶段最优化地进行SW/HW划分,并且可确定SW/HW划分的有效性。
即,性能评估模拟装置通过使用保存在执行日志中的信息来针对每个处理执行SW/HW划分。因此,与依赖于LSI上实现的每个处理的完成程度来执行SW/HW划分的常规技术的情况相比,可在设计的初始阶段最优化地执行SW/HW划分。而且,在测量指令执行时间、指令读取时间以及数据存取时间的同时,性能评估模拟装置通过执行经由指令高速缓存和数据高速缓存的总线存取来进行模拟,以输出高度精确的统计信息,诸如CPU负载系数。因此,与相互比较各个执行单元的处理时间的常规技术的情况相比,可以确定SW/HW划分的有效性。
[根据第一实施方式的性能评估模拟装置的配置]
接下来,通过利用图2,对根据第一实施方式的性能评估模拟装置的配置进行说明。图2是根据第一实施方式的性能评估模拟装置的配置的图。如图2所示,性能评估模拟装置10包括功能模块11-1至11-n、调度器单元20以及存取处理单元21。
性能评估模拟装置10经由总线30从I-高速缓存和D-高速缓存连接到外部RAM(随机存取存储器)和外围HW,其中该I-高速缓存是用于减少获得外部RAM上的指令的时间的指令高速缓存,且该D-高速缓存是用于减小数据存取时间的数据高速缓存,该外部RAM是连接在性能评估模拟装置10外部的RAM,且该外围HW例如包括外部I/F(接口)和用于专门目的的专用硬件。另外,例如,使用系统C语言在事务级构建除了基本处理执行日志以外的部分,该系统C语言是用于设计电子电路的硬件描述语言之一。模块之间的发送和接收是利用函数调用来执行的。此外,与总线30的连接是通过利用模块共用的接口(例如TLM-I/F)来执行的。因此,与RTL中的信号级通信不同,可容易地实现模块的布置和重新组合。
功能模块11-1至11-n表示基本处理单元,它们是在通过基于执行日志的划分而获得的软件模型中将要由存取处理单元21执行的处理的执行单元。例如,如图3所示,在数据存取的情况中,功能模块11-1(Fn[1])保持地址“E050D6E0”、指令/数据存取“I/D”以及加载(读取)/存储(写入)“R/W”。在这些从输入到性能评估模拟装置10的执行日志获得的信息条中,一旦获知将存取的地址,就可从存储每个硬件地址和数据的RAM获知要存取哪个地址。然后,从该地址信息,可获知性能评估模拟装置10针对哪个HW发出指令或数据存取。在数据存取的情况,可获知加载还是存储。此外,在作为整体的执行日志中,在“xxx.o”、“yyy.o”和“zzz.o”(对象文件)之间存取每个地址,并且将对象文件之间的存取的起始点到结束点的部分作为中断,且提取作为基本处理单元(Fn[1])。图3是根据第一实施方式的整个执行日志中的对地址的存取与基本处理单元之间的关系的图。
基于表示通过在实际机或模拟软件上执行软件模型而获得的执行历史的执行日志,存取处理单元21进行基本处理单元的划分,该基本处理单元是将在软件模型中执行的处理的执行单元。存取处理单元21随后根据保存在执行日志中的指令地址串的数目或用于数据存取的地址串的数目来计算通过划分获得的每个基本处理单元的吞吐量。此后,存取处理单元21将每个计算出的吞吐量与预定阈值进行比较,并且改变布置结构,以便将吞吐量超过预定阈值的基本处理单元从软件模型改变为硬件模型。随后,对于布置结构已经改变为硬件模型的基本处理单元和按软件模型布置的基本处理单元,存取处理单元21对执行经由指令高速缓存和数据高速缓存的总线存取进行性能评估模拟。
具体示例如下。基于执行日志,存取处理单元21进行基本处理单元的划分,该基本处理单元是将在软件模型中执行的处理的执行单元。存取处理单元21随后根据表示处理执行时的分支目的地地址信息的指令地址串的数目、表示用于存取数据库的存取目的地地址信息的数据存取地。址串的数目或保存在执行日志中的其他信息,来计算通过划分获得的各基本处理单元的吞吐量。
此后,存取处理单元21将每个计算出的吞吐量与预定阈值进行比较,并且改变布置结构,以便将具有表示吞吐量超过预定阈值吞吐量的执行日志的基本处理单元从软件处理改变为硬件处理,从而直接连接到总线30,由此进行向硬件的转变。随后,当从调度器单元20接收到针对进程处理的请求时,存取处理单元21通过执行经由指令高速缓存(I-高速缓存)和数据高速缓存(D-高速缓存)的总线存取,同时测量指令执行时间、指令读取时间以及数据存取时间,来对布置结构已变为硬件模型以便向硬件转换的基本处理单元执行性能评估模拟。
调度器单元20根据存取处理单元21执行的模拟处理来产生作为性能评估的基础的统计信息。具体而言,在上述示例中,发生某一事件作为触发,调度器单元20请求相应的功能模块(基本处理单元)进行进程处理。调度器单元20随后根据由存取处理单元21获得的模拟结果来产生作为性能评估的基础的统计信息,诸如CPU负载系数。如图4所示,其中已存储了如下统计信息,例如,“100纳秒”的指令执行时间、“3纳秒”的指令读取时间、“2纳秒”的数据存取时间以及每个处理单元“Fn[1]”“30%”的CPU负载系数。另外,存取处理单元21对经由总线30与外部RAM、外围HW以及其他设备相连接的接口的端口ID(标识符)以及统一标准化的功能模块11-1至11-n的块ID进行管理,并且获知功能模块请求存取处理单元21进程处理的顺序,还获知功能模块的布置。图4是根据第一实施方式的统计信息的示例图。
[LSI开发流]
接下来,通过利用图5,对LSI开发流进行说明。图5是LSI开发流的图。这里,该流程是设计包括根据第一实施方式的性能评估模拟装置的处理的完整LSI。
如图5所示,当产生规范(步骤S601为“是”)时,根据所产生的规范对系统请求进行分析(步骤S602)。然后,根据经分析的系统请求来设计考虑十进制的方案(步骤S603)。然后,在对SW/HW划分进行性能评估和考虑的情况下,对构架进设计(步骤S604)。此后,对硬件部分进行RTL逻辑设计(步骤S605),并且执行该硬件的物理设计(步骤S606)。另外,对软件部分进行软件开发(步骤S607)。然后,组合硬件和软件以产生实际的机器模型(步骤S608),然后装配产品(步骤S609)。
[由根据第一实施方式的性能评估模拟装置执行的处理]
接下来,通过利用图6,对由根据第一实施方式的性能评估模拟装置10执行的模拟处理进行说明。图6是根据第一实施方式的性能评估模拟装置10的模拟处理的流程图。这里,图6中说明的处理是图5中示出的步骤S604处的构架设计的一部分。
如图6所示,在产生规范(步骤S101为“是”)时,性能评估模拟装置10将规范划分成软件处理和硬件处理(步骤S102),并且随后输出作为软件模型的临时软件和作为硬件模型的操作模型(步骤S103和S104)。当输出执行日志时,所述执行日志表示从使用ISS等在实际机或目标CPU上执行输出的临时软件的结果而获得的执行历史(步骤S105和S106),基于所述执行日志,做出基本处理单元的划分,该基本处理单元是软件模型中要执行的处理的执行单元(步骤S107)。
然后,性能评估模拟装置10根据表示处理执行时的分支目的地地址信息的指令地址串的数目、表示用于存取数据库的存取目的地地址信息的数据存取地址串的数目,或者保存在执行日志中的其他信息来计算通过划分获得的每个基本处理单元的吞吐量(步骤S108)。
此后,性能评估模拟装置10将每个计算出的吞吐量与预定阈值进行比较(步骤S109)。然后,根据比较结果,性能评估模拟装置10改变布置结构,以便将具有表示吞吐量超过预定阈值吞吐量的执行日志的基本处理单元从软件处理改变为硬件处理,从而直接连接到总线,由此做出向硬件的转变(步骤S110)。这里,当将基本处理单元的布置结构改变为硬件时,性能评估模拟装置10基于块ID来搜索与吞吐量超过预定阈值吞吐量的基本处理单元相对应的功能模块,由此改变该功能模块的布置结构。即,性能评估模拟装置10将该功能模块从CPU内部移动到能够直接总线连接的端口,由此将功能模块的工作从通过CPU的软件处理转变为硬件。
然后,对于布置结构已改变为硬件模型的基本处理单元和按软件模型布置的基本处理单元,性能评估模拟单元10通过执行经由指令高速缓存和数据高速缓存的总线存取,同时测量指令执行时间、指令读取时间以及数据存取时间,来执行性能评估模拟。此后,性能评估模拟单元10根据所述指令执行时间、指令读取时间以及数据存取时间来产生作为性能评估的基础的统计信息,诸如CPU负载系数(步骤S111)。
接下来,通过利用图7,对由根据第一实施方式的性能评估模拟装置10进行的SW/HW划分处理进行说明。图7是用于说明根据第一实施方式的性能评估模拟装置10进行的SW/HW划分处理的图。
如图7所示,性能评估模拟装置10确定用作基本处理单元的SW/HW划分条件的吞吐量阈值(预定阈值)(步骤S201)。性能评估模拟装置10随后对保存在通过划分获得的基本处理单元的执行日志中的指令地址串的数目和数据存取地址串的数目进计数,并且根据这些计数之一(或其总数)来计算基本处理单元的吞吐量(步骤S202至S204)。
此后,当计算出的吞吐量超过预定阈值(步骤S205为“是”)时,性能评估模拟装置10基于块ID来搜索与超出阈值的执行日志相对应的基本处理单元(步骤S206)。随后,性能评估模拟装置10将找到的基本处理单元指配给能够进行直接总线连接的端口,且根据基本处理单元的布置结构的变化,将端口ID变为硬件(步骤S207和S208)。
接着,性能评估模拟装置10不需要对转变为硬件的基本处理单元进行高速缓存存取,而是需要对RAM的直接存取。然而,由于不需要针对执行日志的指令读取,所以可删除指令地址串,并且在执行模拟中只提取数据存取(步骤S209和S210)。
[根据第一实施方式的效果]
这样,根据第一实施方式,性能评估模拟装置10使用保存在执行日志中的信息来进行每个处理的SW/HW划分。而且,性能评估模拟装置10通过执行经由指令高速缓存和数据高速缓存的总线存取且同时测量指令执行时间、指令读取时间以及数据存取时间来执行模拟。因此,可以在设计的初始阶段最优化地执行SW/HW划分,且可以确定SW/HW划分的有效性。
例如,性能评估模拟装置10基于保存在执行日志中的指令地址串的数目或用于数据存取的地址串的数目中的任意一个或其总数来计算每个基本处理单元的吞吐量,随后改变布置结构,将吞吐量超过预定阈值的基本处理单元改变为硬件模型。性能评估模拟装置10随后针对布置结构已变为硬件模型的基本处理单元和按软件模型布置的基本处理单元,执行通过执行经由指令高速缓存和数据高速缓存的总线存取的性能评估模拟,以产生诸如指令执行时间、指令读取时间以及数据存取时间的统计信息。因此,性能评估模拟装置10能够在设计的初始阶段最优化地执行SW/HW划分,并且还能够确定SW/HW划分的有效性。
第二实施方式
尽管在第一实施方式中,解释了当采用通过基于执行日志的划分而获得基本处理单元作为执行单元时的向硬件的转换。然而,本发明不限于这种向硬件的转变。另选的是,可以考虑针对由第一块和第二块形成的基本处理单元的向硬件的另一转变。
在下面的第二实施方式中,参考图8至12,详细解释根据第二实施方式的,针对由第一块和第二块形成的基本处理单元的向硬件的转变。图8是当CPU模型定期执行事件时,时间与CPU吞吐量之间的关系的图。图9是根据第二实施方式的当将CPU中的功能模块的一部分转变成硬件时的事件处理的图。图10是根据第二实施方式的UML类的示例图。图11是根据第二实施方式的系统C语言的描述示例的图。图12是根据第二实施方式的硬件模型的抽象程度与模拟处理之间的关系的图。这里,根据第二实施方式的性能评估模拟装置的配置、功能以及其他方面与第一实施方式类似,且因此此处不做解释。
[当CPU模型定期执行事件时的时间与CPU吞吐量之间的关系]
在第二实施方式中,通过利用图8,对CPU模型定期执行事件时的时间与CPU吞吐量之间的关系进行说明。在图8中,每个基本处理单元由白盒部分和黑盒部分形成,所述白盒部分根据组合多个基本处理单元的进程处理单元,在此描述了每个基本处理单元的独特功能,并且在所述黑盒部分中执行用于收集统计信息的处理。而且,进程处理是组合执行多个基本处理单元的处理,同时事件由仅包括基本处理单元的进程处理的组合形成。这里,在图8中的纵轴表示“CPU吞吐量”,而横轴表示“时间”的情况下,还对CPU吞吐量与时间之间的关系进行了说明。
如图8所示,例如,当周期事件A发生时,利用该事件A作为触发,性能评估模拟装置10相继调用基本处理单元Fn[1]和Fn[2]。然后,当周期事件B发生时,利用该事件B作为触发,性能评估模拟装置10相继调用基本处理单元Fn[2],Fn[3],Fn[1]。然后,当周期事件C发生时,利用该事件C作为触发,性能评估模拟装置10调用基本处理单元Fn[1]。
在作为基本处理单元的功能模块中,在通过白盒部分根据每个进程处理来调用黑盒部分之后,黑盒部分收集诸如指令执行时间、指令读取时间以及数据存取时间的统计信息。另外,通过“白盒+黑盒×调用次数”来确定用于基本处理的处理时间,并且处理时间越长,CPU的吞吐量越大。而且,针对每个事件和基本处理单元,提供优先级,从而避免执行进程在时间上的冲突。
[当将CPU中的功能模块的一部分转变为硬件时的事件处理]
接下来,通过利用图9,对当将CPU中的功能模块的一部分转变为硬件时的事件处理进行说明。在图9中,每个基本处理单元的配置和其他方面类似于图8,且因此此处不做说明,并且对当将具有大吞吐量的基本处理单元转变为硬件时的事件处理进行说明。
如图9所示,性能评估模拟装置10将吞吐量超过预定阈值的基本处理单元Fn[3]的布置结构改变为硬件。在基本处理单元向硬件的转变中,如图9所示,缩短了转变为硬件的基本处理单元Fn[3]的处理时间,且减小了整个事件B的CPU吞吐量。
即,性能评估模拟装置10将具有大负载的功能模块转变为硬件,由此减小了CPU吞吐量。而且,由于转变为硬件的功能模块直接对RAM进行存取,所以不需要指令执行串,且用于数据存取的地址范围也有限。因此,与对D-高速缓存(在数据存取时使用的高速缓存)进行存取的情况相比,缩短了时间,由此减少了黑盒部分的处理时间并且还减少了整个进程处理的处理时间。这里,与转变为硬件的功能模块的数目的增加相关联地,考虑用于向硬件的转变的实施区域的增加、功耗的增加、总线占用率的增加等,来设置用于SW/HW划分的阈值。
[硬件模型的抽象程度与模拟处理之间的关系]
接下来,通过利用图10和11,对根据第二实施方式的UML类的示例和以系统C语言描述的示例进行说明。并且,通过利用图12,对根据第二实施方式的硬件模型的抽象程度与模拟处理之间的关系进行说明。在图10或11中,“Fn_*”表示功能模块,“Fn_if”表示功能模块公共接口,“Fn_*.h”表示每个功能模块的头部,“Fn_*.cpp”表示源码,“Fn_if.h”表示功能模块公共接口的头部,且“Fn_if.cpp”表示源码。
在形成功能模块的白盒和黑盒中,执行用于收集统计信息的处理的黑盒部分被设置在功能模块公共接口中,并且其中根据性能验证目的和硬件模型的完成程度来描述针对每个模块唯一的功能的白盒部分被设置在每个功能模块的“do_process()”的进程处理中。
然后,由调度器单元指令进行“do_process()”的进程处理的每个功能模块“Fn_*”执行白盒部分。此后,白盒部分执行针对每个模块唯一的功能,随后,给出针对每个模块确定的参数“x”以调用“blackbox()”的功能。接着,基于参数“x”,黑盒部分获得基本处理单元的执行日志,从该执行日志指定指令读取和/或数据存取的处理的数目以导致在CPU上发生负载,且收集诸如指令执行时间的统计信息。
[根据第二实施方式的效果]
以这种方式,根据第二实施方式,无论是否执行每个基本处理单元的独特功能,性能评估模拟装置10都能够提供CPU负载。因此,可以进行高速缓存分析和CPU统计信息的获取等操作。
即,如图12所示,性能评估模拟装置10能够与执行在白盒部分中描述的每个基本处理单元的独特功能无关地,甚至与根据LSI设计的过程的硬件模型的抽象程度无关地,实现性能评估模拟和SW/HW划分的最优考虑。
第三实施方式
[确定每个基本处理单元的阈值]
在第一实施方式中,描述了其中将在SW/HW划分中的基本处理单元的吞吐量与预定阈值相比较以执行模拟的情况。然而,本发明不限于此。另选的是,SW/HW划分中的基本处理单元的预定阈值可以根据CPU负载系数而变化,并且随后将该预定阈值与吞吐量相互比较以执行模拟。
在下面的第三实施方式中,通过利用图13,对根据第三实施方式的性能评估模拟处理进行说明。图13是用于对根据第三实施方式的性能评估模拟处理进行说明的图。在该第三实施方式中,使用包含在目标处理器中的所有功能模块来执行性能评估处理,以将存储在执行日志中的指令执行次数、数据装载次数以及数据的存取次数与CPU确定条件(例如,CPU负载系数和总线占用率)相关联。
如图13所示,性能评估模拟装置10基于CPU负载系数等来设置用于确定CPU性能的阈值(步骤S301),以确定作为SW/HW划分条件的用于基本处理单元的预定阈值(步骤S302)。接着,与第一实施方式一样,性能评估模拟装置10对保存在通过划分成基本处理单元而获得的执行日志中的指令地址串的数目、用于数据存取的地址串的数目以及其他信息进行计数,随后根据这些计数中的任意一个(或其总数)来计算基本处理单元的吞吐量(步骤S303至S305)。
此后,当计算出的吞吐量超过预定阈值时(步骤S306为“是”),性能评估模拟装置10基于块ID,搜索与示出吞吐量超过所述阈值的执行日志相对应的基本处理单元(步骤S307)。然后,性能评估模拟装置10将所找到的基本处理单元指配到能够进行直接总线连接的端口,且根据基本处理单元的布置结构向硬件的改变来变更端口ID(步骤S308和S309)。
接下来,性能评估模拟装置10不需要对转变为硬件的基本处理单元进行高速缓存存取,而是需要对RAM的直接存取。然而,由于不需要针对执行日志的指令读取,所以可删除指令地址串,且在执行模拟时仅提取数据存取(步骤S310和S311)。然后,当不满足CPU性能确定条件(步骤S312为“是”)时,处理过程返回步骤S302,在此,性能评估模拟装置10确定(校正)基本处理单元的吞吐量的阈值。这里,可根据事先找到的执行日志的吞吐量与CPU性能确定条件之间的关联来计算基本处理单元的吞吐量的阈值的校正范围。另选的是,可按照基本处理单元的降序(或升序)逐一地将功能模块转变成硬件,以执行模拟,直到满足CPU性能确定条件为止。
[根据第三实施方式的效果]
以这种方式,根据第三实施方式,当不满足基于性能评估结果的CPU性能确定条件时,性能评估模拟装置10改变基本处理单元的确定阈值。这样,能够执行更高精确度的模拟,从而能够确定SW/HW划分的有效性。
第四实施方式
[确定每个进程处理单元的阈值]
在第一实施方式中,描述了其中将SW/HW划分中的基本处理单元的吞吐量与预定阈值进行相互比较以执行模拟的情况。然而,本发明不限于此。另选的是,SW/HW划分中的进程处理单元的预定阈值可以根据CPU负载系数而变化,并且随后将该预定阈值与吞吐量进行相互比较以执行模拟。
在下面的第四实施方式中,通过利用图14和图15,对根据第四实施方式的性能评估模拟处理进行说明。图14是用于对根据第四实施方式的性能评估模拟处理进行说明的图。图15是根据第四实施方式的当CPU中的进程处理的一部分转变为硬件时的事件处理的图。这里,在该第四实施方式中,预先将执行日志中的指令执行次数和数据存取次数与CPU确定条件(例如,CPU负载系数)相关联。
如图14所示,性能评估模拟装置10基于CPU负载系数等来设置用于确定CPU性能的阈值(步骤S401),以确定作为SW/HW划分条件的用于进程处理单元的预定阈值(步骤S402)。接着,与第一实施方式一样,性能评估模拟装置10对保存在通过划分成基本处理单元而获得的执行日志中的指令地址串的数目、用于数据存取的地址串的数目以及其他信息进行计数,随后根据这些计数中的任意一个(或其总数)来计算进程处理单元的吞吐量(步骤S403至S405)。
此后,当计算出的吞吐量超过预定阈值(步骤S406为“是”)时,性能评估模拟装置10基于块ID,搜索与表示吞吐量超过所述阈值的执行日志相对应的基本处理单元(步骤S407)。然后,性能评估模拟装置10将所找到的基本处理单元指配到能够直接总线连接的端口ID,并且根据进程处理单元的布置结构向硬件的转变来改变端口ID(步骤S408和S409)。
接下来,性能评估模拟装置10不需要对转变为硬件的进程处理单元进行高速缓存存取,而是需要对RAM的直接存取。然而,因为不需要针对执行日志的指令读取,所以可删除指令地址串,并且在进行模拟中仅提取数据存取(步骤S410和S411)。然后,当不满足CPU性能确定条件(步骤S412为“是”)时,处理过程返回步骤S402,在此,性能评估模拟装置10确定(校正)进程处理单元的吞吐量阈值。这里,可根据在执行日志中预先找到的指令执行次数和数据存取次数与CPU性能确定条件之间的关联来计算进程处理单元的吞吐量的阈值的校正范围。另选的是,功能模块可按照进程处理单元的降序(或升序)逐一地转换成硬件以执行模拟,直到满足CPU性能确定条件为止。
而且,如图15所示,性能评估模拟装置10将其吞吐量超出预定阈值的进程处理单元Fn[3]和Fn[1]的布置结构转变为硬件。在进程处理单元向硬件的转变中,如图15所示,在将进程处理单元Fn[3]和Fn[1]中的每一个转变为硬件的情况下,缩减了处理时间,从而也减少了整个事件B中的CPU吞吐量。
即,性能评估模拟装置10通过进程处理单元将具有大负载的功能模块转变为硬件,由此减小了CPU的吞吐量。而且,由于转变为硬件的功能模块直接存取RAM,所以不需要指令执行串,并且用于数据存取的地址范围也有限。因此,与存取D-高速缓存(在数据存取时使用的高速缓存)的情况相比,缩减了时间,由此减少了黑盒部分的处理时间且进一步减小了整个进程处理的处理时间。
[根据第四实施方式的效果]
以这种方式,根据第四实施方式,当不满足基于性能评估结果的CPU性能确定条件时,性能评估模拟装置10改变进程处理单元的确定阈值。这样,能够执行更高精确度的模拟以确定SW/HW划分的有效性。
第五实施方式
[使用执行日志的文件大小]
在第一实施方式中,描述了其中利用预先确定的SW/HW划分中的基本处理单元的预定阈值来执行模拟的情况。然而,本发明不限于此。另选的是,SW/HW划分中的基本处理单元的预定阈值可以通过利用执行日志的文件大小来确定。
在下面的第五实施方式中,通过利用图16,对根据第五实施方式的利用执行日志的文件大小作为SW/HW划分的阈值的情况进行说明。图16是用于对根据第五实施方式的利用执行日志的文件大小作为SW/HW划分的阈值的情况进行说明的图。
如图16所示,性能评估模拟装置10对保存在通过划分而获得的基本处理单元的执行日志中的指令地址串的数目和用于数据存取的地址串的数目进行计数,利用包含在目标处理器中的所有功能模块执行模拟,并且根据执行模拟而获得的统计信息来计算CPU吞吐量(步骤S501至S504)。
然后,性能评估模拟装置10利用计算出的CPU吞吐量将执行日志中的指令执行次数、数据装载次数以及数据存储次数与CPU确定条件(例如CPU负载系数)相关联(步骤S505)。性能评估模拟装置10随后将通过划分成基本处理单元获得的执行日志的文件大小与该文件中的指令执行次数和/或数据存取次数相关联(S506)。然后,根据步骤S505和S506的结果,性能评估模拟装置10将CPU吞吐量与基本处理单元的执行日志的文件大小相关联(步骤S507)。基于上述处理,性能评估模拟装置10可采用执行日志的文件大小作为SW/HW划分的阈值。
[第五实施方式的效果]
以这种方式,根据第五实施方式,性能评估模拟装置10能够使用执行日志的文件大小作为SW/HW划分的阈值。这样,可以进行更高精确度的模拟以确定SW/HW划分的有效性。
第六实施方式
[考虑通过使用附加CPU向多核的转换]
在第一实施方式中,描述了其中通过执行性能评估模拟,来确定最佳SW/HW划分的有效性的情况。然而,本发明不限于此。另选的是,可以考虑通过SW/HW划分向多核的转换。
在下面的第六实施方式中,通过利用图17,来说明通过使用附加CPU向多核转换的考虑。图17是用于说明根据第六实施方式的通过使用附加CPU向多核转换的考虑的图。这里,在要进行性能评估的性能评估模拟设备的外部配置新的总线模型,并且在该总线上,按照需要布置有附加CPU、I-高速缓存、D-高速缓存以及外围HW,由此构建了性能评估模拟环境。注意,附加CPU、I-高速缓存以及D-高速缓存的结构类似于CPU中的结构,并且执行处理使得用于管理每个模块的布置和处理顺序的端口ID和块ID不彼此重叠。
如图17所示,例如,根据SW/HW划分的预定阈值,性能评估模拟装置10从CPU模块中分离出相关功能模块Fn[n],将它设置在附加CPU中的接口中,并且改变功能模块Fn[n]的端口ID。接着,通过CPU和附加CPU分别收集从模拟执行结果获得的统计信息,用于对当在多个CPU之间分配软件处理时的效果进行高速缓存分析。
即,性能评估模拟装置10基于阈值将CPU中要转变成硬件的功能模块分配并输出到附加CPU。因此,输出是软件×软件的形式。
[根据第六实施方式的效果]
这样,根据第六实施方式,性能评估模拟装置10基于SW/HW划分的阈值,将CPU中要转变成硬件的功能模块分配并输出到附加CPU中。这样,可以认为是在一个CPU中存在多个CPU核的多核。
第七实施方式
另外,尽管已经解释了本发明的实施方式,但除了上述实施方式之外,本发明还可以利用各种不同的实施方式来实现。这里,对(1)性能评估模拟装置的配置,(2)包括性能评估模拟装置作为一个设计过程的电子装置以及(3)程序中的不同实施方式进行说明。
(1)性能评估模拟装置的配置
除非特别声明,否则处理过程、控制过程以及包括特定名称以及各种数据和参数的信息(例如,如图2所示的存储为“统计信息”的信息)可以任意改变。
而且,所示的每个装置的每个组件在功能方面是概念性的,且不必物理地如图所示那样配置。即,每个装置的分配和联合的特定图形并不限于附图中示出的那些。例如,存取处理单元21可以分配到如下单元中:基于执行日志进行基本处理单元的划分的基本处理单元划分单元;计算每个基本处理单元的吞吐量的吞吐量计算单元;改变布置结构以便将基本处理单元改变为硬件的布置结构改变单元;以及执行性能评估模拟的模拟执行单元。这样,所有或部分的组件可以根据不同的负载和使用状态,在功能或物理上分配或联合在任意单元中。而且,在每个装置中执行的处理功能的全部或任意部分可通过CPU和在该CPU上分析并执行的程序来实现,或可实现为具有布线逻辑的硬件。
(2)包括性能评估模拟装置作为一个设计过程的电子装置。
此外,在上述实施方式中,说明了用于执行软件模型和硬件模型的最佳SW/HW划分的性能评估模拟装置。然而,本发明不限于此。另选的是,可以考虑具有包括性能评估模拟装置作为一个设计过程的电子装置。
例如,这种电子装置接受其中通过根据系统规范使用软件和硬件临时确定将要执行的处理的软件模型和硬件模型,且使用接受的软件模型和硬件模型,基于通过执行如上所述的性能评估模拟而产生的统计信息,在LIS上实施通过再次划分而获得的软件和硬件。
(3)程序
同时,在上述实施方式中,说明了其中通过硬件逻辑实现各种处理的情况。然而,本发明不限于此。另选的是,可通过执行预先提供的程序的计算机来实现各种处理。下面,通过使用图18,对执行具有与上述各实施方式中的性能评估模拟装置类似的功能的性能评估模拟程序的计算机示例进行说明。图18是执行性能评估模拟程序的计算机的图。
如图18所示,作为性能评估模拟装置的计算机110包括经由总线180彼此相连的HDD 130、CPU 140、ROM 150以及RAM 160。
在ROM 150中,预先存储了用于实现与第一实施方式中说明的性能评估模拟装置10类似的功能的性能评估模拟程序:即,如图18所示,这些预先存储的程序是基本处理单元划分程序150a、吞吐量计算程序150b、布置结构改变程序150c以及统计信息产生程序150d。这里,与图2所示的性能评估模拟装置10的每个组件一样,这些程序150a至150d可以联合或分散。
接着,CPU 140从ROM 150读取这些程序150a至150d用于执行。这样,如图18所示,它们用作基本处理单元划分处理140a、吞吐量计算处理140b、布置结构改变处理140c以及统计信息产生处理140d。这里,处理140a至140d对应于如图2所示的调度器单元20和存取处理单元21。
然后,CPU 140基于RAM 160中记录的数据来执行性能评估模拟程序。
这里,这些程序150a至150d并不一定必须预先存储在ROM150中。另选的是,每个程序例如可以存储在如下介质中并且可被计算机110读取以执行,所述介质例如:“便携式物理介质”,诸如软磁盘(FD)、CD-ROM(压缩光盘只读存储器)、DVD(数字通用光盘)、磁光盘或插入到计算机110的IC(集成电路)卡;“固定物理介质”,诸如内置于或外置于计算机110的HDD(硬盘驱动);或经由公共电路、英特网、LAN(局域网)或WAN(广域网)与计算机110连接的“另一计算机(或服务器)”。
根据本申请中公开的性能评估模拟装置,可以实现在设计的初始阶段最优化地执行SW/HW划分并且确定SW/HW划分的有效性的效果。
此处引用的所有示例和条件语言旨在用于教学目的,以帮助读者理解本发明的原理和发明人为促进本领域发展所提供的概念,并且应被解释为不限于这些具体引用的示例和条件,也不限于与展示本发明的优缺点相关的说明中的这种示例组织。尽管详细描述了本发明的(多种)实施方式,但应当理解,可以在不偏离本发明的精神和范围的情况下对其进行各种变化、替换以及更改。
本申请基于并且要求2008年1月8日提交的在先日本专利申请No.2008-001606的优先权,在此通过引用并入其全部内容。
Claims (9)
1、一种性能评估模拟装置,其通过对其中根据系统规范使用软件或硬件来临时确定要执行的处理的软件模型和硬件模型执行模拟来评估性能,所述性能评估模拟装置包括:
基本处理单元划分单元,其执行基本处理单元的划分,所述基本处理单元是基于执行日志,要在软件模型中执行的处理的执行单元,所述执行日志表示通过在实际机或模拟软件上执行软件模型而获得的执行历史;
吞吐量计算单元,其根据保存在所述执行日志中的指令地址串的数目或用于数据存取的地址串的数目,来计算通过所述基本处理单元划分单元的划分而获得的每个基本处理单元的吞吐量;
布置结构改变单元,其将所述吞吐量计算单元计算出的每个吞吐量与预定阈值进行比较,并且改变布置结构,使得将吞吐量超过所述预定阈值的基本处理单元从所述软件模型改变为所述硬件模型;以及
统计信息产生单元,其通过对布置结构已被所述布置结构改变单元改变为硬件模型的基本处理单元和按软件模型布置的基本处理单元执行性能评估模拟,来产生作为性能评估的基础的统计信息,所述性能评估模拟经由指令高速缓存和数据高速缓存执行总线存取以测量系统的操作分析所需的数据。
2、根据权利要求1所述的性能评估模拟装置,其中,所述统计信息产生单元通过对其布置结构已被所述布置结构改变单元改变为所述硬件模型的基本处理单元和按所述软件模型布置的基本处理单元执行预定次数的性能评估模拟,来产生作为性能评估的基础的统计信息,所述性能评估模拟经由指令高速缓存和数据高速缓存执行总线存取以测量所述系统的操作分析所需的数据。
3、根据权利要求1所述的性能评估模拟装置,其中:
所述基本处理单元由第一块和第二块形成,所述第一块根据组合了多个基本处理单元的进程处理单元,描述了每个基本处理单元的独特功能,并且在所述第二块中执行用于收集所述统计信息的处理,并且
在组合了其布置结构已被所述布置结构改变单元改变为所述硬件模型的多个基本处理单元和按软件模型布置的基本处理单元的进程处理中,所述统计信息产生单元通过在执行来自所述第一块的每个基本处理单元的独特功能时调用所述第二块,对调用的所述第二块中的进程处理施加负载,来产生作为性能评估的基础的统计信息,所述性能评估模拟经由指令高速缓存和数据高速缓存执行总线存取以测量所述系统的操作分析所需的数据。
4、根据权利要求1所述的性能评估模拟装置,其还包括确定条件设置单元,所述确定条件设置单元设置用于确定将对其执行性能评估模拟的目标处理器的性能评估结果的确定条件,其中:
当在执行性能评估模拟之后获得的统计信息不满足所述确定条件设置单元所设置的确定条件时,所述布置结构改变单元改变所述预定阈值,将所述吞吐量计算单元计算出的吞吐量与改变后的预定阈值相比较,并且改变布置结构,使得将吞吐量超过所述预定阈值的基本处理单元从所述软件模型改变为所述硬件模型,并且
所述统计信息产生单元通过对其布置结构已被所述布置结构改变单元改变为所述硬件模型的基本处理单元和按所述软件模型布置的基本处理单元执行性能评估模拟,来产生作为性能评估的基础的统计信息,所述性能评估模拟经由指令高速缓存和数据高速缓存执行总线存取以测量所述系统的操作分析所需的数据。
5、根据权利要求1所述的性能评估模拟装置,其还包括确定条件设置单元,所述确定条件设置单元设置用于确定将对其执行性能评估模拟的目标处理器的性能评估结果的确定条件,其中:
所述吞吐量计算单元根据保存在所述执行日志中的指令地址串的数目或用于数据存取的地址串的数目,来计算组合了通过所述基本处理单元划分单元的划分而获得的多个基本处理单元的进程处理单元的吞吐量,
当在执行性能评估模拟之后获得的所述统计信息不满足所述确定条件设置单元设置的确定条件时,所述布置结构改变单元改变所述预定阈值,将所述吞吐量计算单元计算出的吞吐量与改变后的预定阈值相比较,并且改变布置结构,使得将吞吐量超过所述预定阈值的基本处理单元从所述软件模型改变为所述硬件模型,并且
所述统计信息产生单元通过对其布置结构已被所述布置结构改变单元改变为所述硬件模型的进程处理单元和按所述软件模型布置的进程处理单元执行性能评估模拟,来产生作为性能评估的基础的统计信息,所述性能评估模拟经由指令高速缓存和数据高速缓存执行总线存取以测量所述系统的操作分析所需的数据。
6、根据权利要求1所述的性能评估模拟装置,其中:
基于根据从所述统计信息产生单元获得的所述统计信息计算出的针对每个基本处理单元的性能评估结果和所述基本处理单元的所述执行日志的文件大小,来确定用于在所述布置结构改变单元中使用的所述预定阈值,并且
所述布置结构改变单元将通过所述吞吐量计算单元计算出的吞吐量与所述确定的预定阈值进行比较,并且将吞吐量超出所述预定阈值的基本处理单元的布置结构从所述软件模型改变为所述硬件模型。
7、根据权利要求1所述的性能评估模拟装置,其中:
设置第二性能评估模拟装置,所述第二性能评估模拟装置具有与如下性能评估模拟装置类似的功能,该性能评估模拟装置通过对其中根据所述系统规范使用软件和硬件来临时确定将执行的处理的软件模型和硬件模型进行模拟来评估性能,并且
所述布置结构改变单元将通过所述吞吐量计算单元计算的吞吐量与所述预定阈值进行比较,且改变布置结构,使得将吞吐量超出所述预定阈值的基本处理单元设置在所述第二性能评估模拟装置中。
8、一种性能评估模拟方法,其用于通过对其中根据系统规范使用软件和硬件来临时确定要执行的处理的软件模型和硬件模型进行模拟来评估性能,该性能评估模拟方法包括以下步骤:
划分步骤,其执行基本处理单元的划分,该基本处理单元是基于执行日志要在软件模型中执行的处理的执行单元,所述执行日志表示通过在实际机或模拟软件上执行软件模型而获得的执行历史;
计算步骤,其根据保存在所述执行日志中的指令地址串的数目或用于数据存取的地址串的数目来计算通过划分步骤获得的每个基本处理单元的吞吐量;
比较步骤,其将每个计算出的吞吐量与预定阈值进行比较;
改变步骤,其改变布置结构,使得将吞吐量超过所述预定阈值的基本处理单元从所述软件模型改变为所述硬件模型;以及
产生步骤,其通过对其布置结构已被所述改变步骤改变为所述硬件模型的基本处理单元和按软件模型布置的基本处理单元进行性能评估模拟,来产生作为性能评估的基础的统计信息,该性能评估模拟经由指令高速缓存和数据缓存执行总线存取以测量所述系统的操作分析所需的数据。
9、一种包括性能评估模拟装置的电子装置,该性能评估模拟装置对根据系统规范而在软件和硬件上执行的处理执行模拟,并且该电子装置基于通过该性能评估模拟装置获得的性能评估来设计LSI,所述电子装置包括:
接受单元,其接受软件模型和硬件模型;
基本处理单元划分单元,其执行基本处理单元的划分,该基本处理单元是基于执行日志要在所述软件模型中执行的处理的执行单元,所述执行日志表示通过在实际机或模拟软件上执行所述软件模型而获得的执行历史;
吞吐量计算单元,其根据保存在所述执行日志中的指令地址串的数目或用于数据存取的地址串的数目来计算通过所述基本处理单元划分单元的划分而获得的每个基本处理单元的吞吐量;
布置结构改变单元,其将所述吞吐量计算单元计算出的每个吞吐量与预定阈值进行比较,并且改变布置结构,使得将吞吐量超过所述预定阈值的基本处理单元从所述软件模型改变为所述硬件模型;以及
统计信息产生单元,其通过对其布置结构已被所述布置结构改变单元改变为硬件模型的基本处理单元和按软件模型布置的基本处理单元执行性能评估模拟,来产生作为性能评估的基础的统计信息,该性能评估模拟经由指令高速缓存和数据高速缓存执行总线存取以测量所述系统的操作分析所需的数据;以及
LSI产生单元,其基于所述统计信息产生单元所产生的统计信息,以划分的方式在LSI上实现软件和硬件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-001606 | 2008-01-08 | ||
JP2008001606A JP5034955B2 (ja) | 2008-01-08 | 2008-01-08 | 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム |
JP2008001606 | 2008-01-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101482891A true CN101482891A (zh) | 2009-07-15 |
CN101482891B CN101482891B (zh) | 2011-12-28 |
Family
ID=40497579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101905231A Expired - Fee Related CN101482891B (zh) | 2008-01-08 | 2008-12-30 | 性能评估模拟 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8214189B2 (zh) |
EP (1) | EP2081116A1 (zh) |
JP (1) | JP5034955B2 (zh) |
KR (1) | KR100986784B1 (zh) |
CN (1) | CN101482891B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455412A (zh) * | 2013-09-23 | 2013-12-18 | 扬州大学 | 一种基于随机进程代数的并发系统性能模拟方法 |
CN109685089A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 评估模型性能的系统及方法 |
CN111274109A (zh) * | 2020-01-20 | 2020-06-12 | 国网甘肃省电力公司信息通信公司 | 一种基于请求处理模拟的系统软硬件拓扑的评估算法及系统 |
US10896276B2 (en) | 2017-06-07 | 2021-01-19 | Industrial Technology Research Institute | Timing esimation method and simulator |
CN112825058A (zh) * | 2019-11-21 | 2021-05-21 | 阿里巴巴集团控股有限公司 | 处理器性能评估方法及装置 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101266267B1 (ko) | 2006-10-05 | 2013-05-23 | 스플렁크 인코퍼레이티드 | 시계열 검색 엔진 |
JP5034955B2 (ja) | 2008-01-08 | 2012-09-26 | 富士通株式会社 | 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム |
JP5200675B2 (ja) * | 2008-06-11 | 2013-06-05 | 富士通株式会社 | シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
KR101080974B1 (ko) * | 2009-11-24 | 2011-11-09 | 한국과학기술정보연구원 | 계산 시뮬레이션 모사 시스템 및 그 방법 |
JP5790431B2 (ja) | 2011-11-18 | 2015-10-07 | 富士通株式会社 | 設計支援装置、設計支援方法および設計支援プログラム |
JP6056453B2 (ja) * | 2012-12-20 | 2017-01-11 | 富士通株式会社 | プログラム、データ管理方法および情報処理装置 |
US10997191B2 (en) | 2013-04-30 | 2021-05-04 | Splunk Inc. | Query-triggered processing of performance data and log data from an information technology environment |
US10346357B2 (en) | 2013-04-30 | 2019-07-09 | Splunk Inc. | Processing of performance data and structure data from an information technology environment |
US10353957B2 (en) | 2013-04-30 | 2019-07-16 | Splunk Inc. | Processing of performance data and raw log data from an information technology environment |
CN104426945B (zh) * | 2013-08-27 | 2019-08-13 | 腾讯科技(深圳)有限公司 | 一种获取应用性能数据的方法、设备和系统 |
KR102017284B1 (ko) | 2015-05-26 | 2019-09-02 | 삼성전자주식회사 | 부팅 디바이스 및 그 동작 방법 |
US10303832B2 (en) | 2015-09-18 | 2019-05-28 | Mitsubishi Electric Corporation | Architecture generating device |
JP6752393B1 (ja) | 2019-11-19 | 2020-09-09 | 三菱電機株式会社 | 設計支援システムおよび設計支援プログラム |
CN112486765B (zh) * | 2020-11-25 | 2022-11-11 | 山东中创软件商用中间件股份有限公司 | java应用接口管理方法、系统、装置及计算机可读存储介质 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05158740A (ja) | 1991-12-09 | 1993-06-25 | Matsushita Electric Ind Co Ltd | 計算機性能評価装置 |
JPH11259553A (ja) | 1998-03-13 | 1999-09-24 | Omron Corp | ハードウエアとソフトウエアの混在するシステムの設計支援方法 |
JPH11259552A (ja) | 1998-03-13 | 1999-09-24 | Omron Corp | システム仕様記述のシミュレーション方法 |
KR20010006983A (ko) | 1999-06-26 | 2001-01-26 | 양세양 | 신속 프로토타이핑 장치와 그것의 입출력 탐침방법 및그것을 이용한 혼합 검증 방법 |
JP2001142927A (ja) * | 1999-11-16 | 2001-05-25 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法,回路の消費電力解析方法及び消費電力解析装置 |
JP2001318812A (ja) * | 2000-05-11 | 2001-11-16 | Nec Corp | 性能評価モデル生成装置および性能評価モデル生成方法 |
JP2001344287A (ja) * | 2000-06-02 | 2001-12-14 | Nec Microsystems Ltd | アルゴリズム記述におけるバスの性能評価方法 |
US7069204B1 (en) * | 2000-09-28 | 2006-06-27 | Cadence Design System, Inc. | Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements |
JP2002215423A (ja) | 2001-01-22 | 2002-08-02 | Hitachi Ltd | ソフトウェアモデル作成方法 |
US20030121010A1 (en) * | 2001-12-21 | 2003-06-26 | Celoxica Ltd. | System, method, and article of manufacture for estimating a potential performance of a codesign from an executable specification |
FR2838844B1 (fr) * | 2002-04-23 | 2005-07-08 | France Telecom | Procede de generation d'un modele de performance a partir d'un modele fonctionnel |
JP4100630B2 (ja) * | 2004-05-14 | 2008-06-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Uml設計方法 |
KR100921314B1 (ko) | 2004-07-12 | 2009-10-13 | 양세양 | 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법 |
JP2006059108A (ja) | 2004-08-19 | 2006-03-02 | Mitsubishi Electric Corp | 情報システム開発試験支援システム |
CN100347683C (zh) * | 2005-04-15 | 2007-11-07 | 清华大学 | 结构无关的微处理器验证及评测方法 |
JP2007018313A (ja) * | 2005-07-08 | 2007-01-25 | Fujitsu Ltd | 回路設計プログラム、回路設計装置、回路設計方法 |
US8781808B2 (en) | 2005-10-10 | 2014-07-15 | Sei Yang Yang | Prediction-based distributed parallel simulation method |
US20090150136A1 (en) | 2005-10-10 | 2009-06-11 | Sei Yang Yang | Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same |
JP2007310449A (ja) | 2006-05-16 | 2007-11-29 | Fujitsu Ltd | ソフトウェア/ハードウェア協調設計のためのモデル生成プログラム、およびモデル生成方法 |
JP4634525B2 (ja) | 2007-10-15 | 2011-02-16 | 富士通株式会社 | シミュレート方法、シミュレートプログラムおよびシミュレーション装置 |
JP5034955B2 (ja) | 2008-01-08 | 2012-09-26 | 富士通株式会社 | 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム |
JP5200675B2 (ja) * | 2008-06-11 | 2013-06-05 | 富士通株式会社 | シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
-
2008
- 2008-01-08 JP JP2008001606A patent/JP5034955B2/ja not_active Expired - Fee Related
- 2008-11-21 EP EP08169674A patent/EP2081116A1/en not_active Withdrawn
- 2008-12-08 US US12/314,334 patent/US8214189B2/en not_active Expired - Fee Related
- 2008-12-24 KR KR1020080133542A patent/KR100986784B1/ko not_active IP Right Cessation
- 2008-12-30 CN CN2008101905231A patent/CN101482891B/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455412A (zh) * | 2013-09-23 | 2013-12-18 | 扬州大学 | 一种基于随机进程代数的并发系统性能模拟方法 |
CN103455412B (zh) * | 2013-09-23 | 2016-10-19 | 扬州大学 | 一种基于随机进程代数的并发系统性能模拟方法 |
US10896276B2 (en) | 2017-06-07 | 2021-01-19 | Industrial Technology Research Institute | Timing esimation method and simulator |
CN109685089A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 评估模型性能的系统及方法 |
CN109685089B (zh) * | 2017-10-18 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 评估模型性能的系统及方法 |
CN112825058A (zh) * | 2019-11-21 | 2021-05-21 | 阿里巴巴集团控股有限公司 | 处理器性能评估方法及装置 |
CN111274109A (zh) * | 2020-01-20 | 2020-06-12 | 国网甘肃省电力公司信息通信公司 | 一种基于请求处理模拟的系统软硬件拓扑的评估算法及系统 |
CN111274109B (zh) * | 2020-01-20 | 2023-06-02 | 国网甘肃省电力公司信息通信公司 | 一种基于请求处理模拟的系统软硬件拓扑的评估方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR100986784B1 (ko) | 2010-10-12 |
US8214189B2 (en) | 2012-07-03 |
CN101482891B (zh) | 2011-12-28 |
JP2009163576A (ja) | 2009-07-23 |
US20090204380A1 (en) | 2009-08-13 |
KR20090076782A (ko) | 2009-07-13 |
JP5034955B2 (ja) | 2012-09-26 |
EP2081116A1 (en) | 2009-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101482891B (zh) | 性能评估模拟 | |
CN100507923C (zh) | 带有可编程组件的基于块的设计方法 | |
US8397204B2 (en) | System and methodology for development of a system architecture using optimization parameters | |
US20100185992A1 (en) | System for Quickly Specifying Formal Verification Environments | |
Cai et al. | Retargetable profiling for rapid, early system-level design space exploration | |
CN102479239A (zh) | 预存储rdf三元数据的方法和装置 | |
CN109857631A (zh) | 基于人工智能的代码覆盖率统计方法、装置、设备及存储介质 | |
CN116126700A (zh) | 一种基于SystemC的芯片验证方法及系统 | |
CN105893707A (zh) | 一种soc芯片模块验证和功耗分析方法 | |
CN103235757B (zh) | 基于自动化造数对输入域测试对象进行测试的装置和方法 | |
US9021289B2 (en) | Method and system for power estimation based on a number of signal changes | |
CN103885341A (zh) | 基于汽车性能模拟器的性能分析系统和方法 | |
CN101470149B (zh) | 抖动量估计方法、噪声量与抖动量之间的相关度计算方法 | |
CN102855147A (zh) | 用于局部重配置模拟的方法和系统 | |
US7590792B2 (en) | Cache memory analyzing method | |
CN112861455B (zh) | Fpga建模验证系统及方法 | |
CN114925895A (zh) | 维修器材预测方法、终端及存储介质 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
Zhong et al. | RTL-aware cycle-accurate functional power estimation | |
Moiseev et al. | SystemC-to-Verilog Compiler: a productivity-focused tool for hardware design in cycle-accurate SystemC | |
Zhang et al. | Towards ML-based Performance Estimation of Embedded Software: A RISC-V Case Study | |
CN101017513A (zh) | 集成电路元件的模拟实例产生方法与装置 | |
US5818850A (en) | Speed coverage tool and method | |
CN116542196B (zh) | 基于有效时钟路径的集成电路时序分析方法、系统及介质 | |
CN117077603B (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 | ||
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: 20111228 Termination date: 20141230 |
|
EXPY | Termination of patent right or utility model |