破译性能分析

改善系统性能要求比模拟。

受欢迎程度

模拟传统上一直是首选的技术对提高系统性能,但实践是不断发展和成熟,因为工程团队需要能够在多个领域和模拟在不同的抽象级别。此外,他们需要调整的水平模拟他们使用什么类型的模型,和什么样的分析他们想做的事情。

“我们看到很多[工程团队]愿意混合水平的抽象和建模风格,和理解,在很多情况下,需要“观察乔恩•麦克唐纳技术销售工程师导师图形。“这是一个很多超过传统功能验证永远,这是人们一直在做的事情。这总是第一步,但人们更最近一直是受其他类型的性能分析等问题。很难提前决定你如何想建造一些如果你没有做某种程度的定量分析。”

可以肯定的是,性能分析是其中一个最常执行的活动之前竞标项目或设计产品。根据Vinay芒格洛尔,工程副总裁PathPartner技术,尤其是如果产品大容量和设计多媒体或网络处理。“更高的数据率,更高的分辨率,增加连接设备的渗透使得它必须设计产品未来证明为最优设计的合理程度和需求保持低成本。性能实时操作,包括内存吞吐量,延迟需求和能耗。”

作为一个类别的工作,性能分析发生在许多不同的阶段在整个电子产品的发展。”不仅仅是“早”,随着硬件的发展是很重要的,”帕特·谢里丹说虚拟样机产品营销主管Synopsys对此。“甚至post-silicon是很重要的,因为你总是想要了解产品是如何执行的客户。”

这是说起来容易做起来难,但是,麦当劳指出。”越来越多,有更多的设计团队进行软件分析使用虚拟平台的性能,做一些假设分析:“好吧,如果我把这个放到FPGA结构,它有多快?如果你需要一个相当复杂的系统,它不多久,你不能跟上电子表格中的所有变量。真正解决这个问题的唯一方法是在模拟”。

这里的关键是异构仿真。“这不仅仅是数字的元素,”他说。“经常有一些真实世界互动,无论是模拟、机械或甚至用户交互,需要考虑。结果,响应时间是重要的,而且往往没有纯粹的模仿在数字部分的设计,所以能够链接到其他仿真模型或领域是很重要的。其他大的异构仿真是没有一个仿真语言,涵盖了,每个人都想要的。你有模型在仿真软件中,你有模型在c++中,你有半实物的能力,人们正试图把所有的这些东西在一起——甚至RTL在某种程度上。他们试图创建一个仿真模型,他们可以做一些分析和性能调优和架构权衡之前提交设计。”

大问题一直是模型。没有模型,工程师不能做更多的模拟。

“通过使异构仿真,通常有一些模型用于系统中大部分的元素,”他补充说。“如果我们可以找到这些模型,把他们在一起,这真的帮助我们使系统级模拟。”

在过去,这样做是在一个特设的基础上。创建更多的标准通信的仿真模型在不同的领域,例如FMI。这可能有助于加速性能分析过程。

“性能一直是一个问题,与抽象,我们认为我们可以注释足够的信息到抽象模型可行的性能数据,”Frank Schirrmeister称高级集团董事、产品管理系统&验证小组节奏。“事实证明,并非如此。最大的例子是一个互连性能模型。如果你有高度的互连configurable-like安巴ACE实现本质上,你需要一个工具来配置它和你有,比方说,400 parameters-if你构建一个模型,然后建立模型本身是需要时间的。但更糟糕的是,验证模型需要更多的时间。”

头痛会有所不同
对于支持SoC-level集成的企业,这个问题不再仅仅是芯片是否实用。它是否会功能所需的水平的吞吐量。,性能成为一个关键元素。

这不仅仅是周期每秒,德鲁Wingard说,首席技术官超音速。“我能获得足够的带宽的DRAM为了能够做到这一点,这在同一时间吗?现在我们进入性能建模。已经有共识,正确的方式去做大部分的性能分析,因为它适用于芯片上共享资源是建立一个cycle-accurate内存子系统的模型,这是共享资源,服务和互连,运行的交通系统的代表,需要分享。所以我们不需要构建一个完整的微处理器的功能模型。我们没有实际运行软件。我们需要了解详细的统计数据缓存processor-out视频解码器的不当行为,从显示引擎的GPU,和所有其他的元素。我们只是成为流量来源与有趣的统计特性和很有趣的解决模式,因为记忆是address-dependent。”

什么不太好捕获在正常流动的实际需求,因为共享资源经常被超额认购。

”然后周围的一切仲裁调度变得非常,非常重要的是,如果没有清晰、明确的描述将不得不等待,“Wingard说。“物理不让我做这一切的同时,可以等待,他们可以等多久没有清晰的定义。我们不能做相当于静态时序分析。我们不能做静态性能证明。我们不能正式批准这个系统要满足其性能要求不理解这些需求是什么。”

扩展性能分析
块层次上的性能分析是可行的,但充分扩展它在复杂SoC芯片级模糊得多。

“你需要模拟这个性能信息与动态仿真的多核行为,与电子表格估计,“Synopsys对此“谢里登说。“如果你的计算范围很简单,你可以得到一个好的估计与静态公式或数学,那很好。但是,电子表格不工作的是当你有动态的多核的行为。这不是明显的系统如何将执行在一定条件下,这是SystemC系统级仿真与正确的细节事务级模型专注。它可以给你一个早期看看系统的动态行为。”

对于复杂的多核soc,考虑这个问题的一个方法是在虚拟环境中原型,他说。“你是使用松散定时SystemC TLM模型建模并试图尽可能快,因为在这种情况下你需要模型系统中所有的事情,软件可以看到。当你做性能分析最初,你绝对不需要整个系统模型与准确的模型。你可以专注于产品的组件在框图最相关的系统的性能。片上互连,应用程序的内存子系统,一些表示workload-which可以交通,你只是重演,观察不同的交通流运行的系统交互场景。或者它可能是一个处理器上运行的软件。在这种情况下你需要更多的事情在模型中,软件可以启动,这些东西可能不是相关的测量很重要只是软件启动。在这两个用例有这个想法,你可以迭代和优化模型是做什么,工作的范围可以是递增的。在性能分析的背景下,你开始与最重要的组件的相互关联的内存子系统,然后你可以根据需要扩展,检查不同的子系统的性能。”

麦当劳有确认客户目前使用近似时间和非常大的复杂的soc和系统性能分析。“你所需要的更准确的时间,更多的工作需要在建模,但我们已经看到例子计时精度为95%相比,实际的系统。的一个关键属性使这个管理的是一个模型,允许逐步求精的定时精度。你不能重写模型每次你想提高计时精度。你需要的模型,允许逐步求精。我们可以没有时间,然后添加一些近似时间很快。这个近似时间可以精炼提供更多所需的精度。但是这种细化并需要额外的投资模型。”

Wingard指出,在最简单的模型中所有组件通过共享内存,互相交流,共享内存是在DRAM芯片。但这将是一个可怕的比例从仿真的角度问题。“你不能承受那么多内存带宽。因此,一个过渡。有更多的使用额外的内存层次结构芯片,不管是基于SRAM或软件管理SRAM或硬件管理缓存或一些组合。我们看到更真实的出现点对点算法的交通,一个阶段的结果可能与一个缓冲区的下一阶段,而不是通过共享内存。所有这些记忆系统的压力。他们使整个系统更复杂,但从建模的角度看,如果你愿意使用抽象,他们实际上使它更简单,因为它是相对廉价的保证对等路径会使性能。如果你能保证他们会使性能,那么你不需要在你的仿真分析,这样你就可以抽象了。你可以把大量的独立成一个不同的问题。 This is one of those few circumstances in which what would have been a horrible modeling complexity problem actually ends up being solved because it also happens to be an architectural problem.”

精度始终是一个问题,他说。在所有情况下工程师正在看着一个抽象的实际流量和处理的事实,他们没有真正的软件,所以没有代替简单的历史的围捕。

“我们过多的系统,一个更好的设计师将会更有信心他们应该或不应该多少轮起来,“Wingard说。“营销组织在这些企业多从事的定义用例,硅的支持。性能分析的一个有趣的事情是,它不是一个单一的事情。性能分析是通过一系列的用例,预计该芯片能够操作在系统层面上,和一个或多个终端用户设备。一个很有趣的挑战是如何让更多的用例和更多细节之间的权衡与较少的用例和细节,但仍有足够的舍入是安全的。”



1评论

Bijoy P 说:

动态仿真与实际用例建模带来了FIFO的深度要求IPs在其边界接口互连。可能IPs FIFO的设计深度,但与角情况下的性能分析模型和最坏情况的交通场景帮助SOC / IP设计师调整边界FIFO大小。我们使用这种方法在我们的SOC。

留下一个回复


(注意:这个名字会显示公开)

Baidu