发展:我们是否真的了解正在发生的事?

16月2015日

gajinder Panesar,ultrasoc CTO,提供一些必要的指引,使SoC芯片的设计,更容易和更成功的实施系统。

在过去二十年的片上系统演化中,复杂度指数增加。今天的设备有多个处理单元,CPU、GPU、DSP、DMA、第三方IP模块和自定义的逻辑。

如果硬件不够复杂,当然会有大量的复杂的软件代码运行在系统上,引入了一系列的依赖和不确定性。

在这种情况下,完全不可能完全地预测系统的行为,这反过来又会使系统的开发变得困难。后硅带来,硬件/软件集成,测试是非常困难的。在发展过程中的问题的商业后果是潜在的可怕:产品可能会被推迟(有可能破坏他们的市场成功的影响);工程成本增加;产品船与挥之不去的错误,是根本太难解决;微妙的问题发生在该领域时,没有有效的手段来检测或纠正他们。

解决问题

在许多方面,最坏的问题是那些不产生完全故障的情况,而是有更微妙的影响。该芯片可以消耗更多的功率比预期的,或也许,即使在规格的大幅利润,它将提供最低要求的数据速率,并没有更多。

对所有这些复杂度的控制,需要一个基本的重新思考,在我们的方法中,我们的系统芯片开发和调试。特别是,它需要强大的分析工具,让开发团队可操作的信息,该芯片是如何操作系统。

此外,这些工具需要基于以上软件仪表、子系统和遗留接口JTAG渐进分析。

该解决方案是建立仪表,过滤和分析功能的硬件本身,是的,有一个罚款的硅房地产,但好处大大超过了成本。通过放置非侵入,简单,但智能,可配置的,块能够监控总线或自定义逻辑信号的设计,开发团队将得到的设计是如何真正表现,在电线速度。该片将发布更快的速度(和更多的商业上的成功);开发成本和风险将减少,将有更少的漏洞在该领域,并会发现任何问题,将被识别,并可以得到更迅速地解决。

实现这种转变的一种方法是使用第三方套件的调试和性能分析工具。它是能够提供一个充分的信息为基础的平台,使并发访问的多性能分析工具,实时。该架构是高度模块化的,包括三类模块:先进的信息和通信。

先进的模块可以被认为是作为探针,可以集成到系统中,例如,通过连接到模块级接口的系统组件,如总线织物连接。消息模块可以用来构建一个片上的信息传递的织物,这是独立的系统互连。沟通界面的各个组成部分,以调试和性能工具,它可以在外部的。

状态监测

状态监测提供了各种各样的监测功能,可用于调试,诊断和性能分析。它实现了以下功能:

  • 检测(活动的识别)使用:简单匹配的输入总线。也就是说,当输入总线匹配一个预定值时。对输入总线的高级滤波。能够从输入总线和比较对一个用户定义的值产生一个选择滤波器输出一组信号选择(=,>,≠,≥,<或≤)检测条件的音序器。这提供逻辑分析仪类型的功能,可以通过不同的过滤器,当某些条件已经合格
  • 监测活动的监测活动:事件消息生成匹配消息生成内部触发计数累积跟踪单元捕捉数据值

总线监视器

正如它的名字所暗示的,总线监视器提供了在系统结构或内部总线上的主和/或从接口的监控功能。这些措施包括:

  • 协议支持axi-3或axi-4 OCP或低于3
  • 总线协议字段的综合过滤方法,以检测感兴趣的级联滤波器系列
  • 对事务的兴趣的监视操作:事件消息生成匹配消息产生的内部触发计数各种协议度量数据跟踪

状态监测和总线监视器捕获的数据传递给消息基础设施,然后可以被路由到芯片进行分析。显示器类型可以配置智能滤波的数据来减少数据量(可加盖时间戳)被路由芯片。

信息基础设施

消息基础设施提供了一个低延迟的消息和路由功能,所有其他片上的性能和调试块,独立的片上系统的互连和可配置从2位到512位宽。这允许一个网络平衡的硅面积和所需的带宽。

传播者和USB集线器

传播者被用来向外界传递信息。一个关键的功能是USB集线器(图1),它采用USB PHY在SOC暴露收集的数据,不需要额外的软件。当启用时,性能和调试信息可以与现代的USB通信并存。该集线器还提供了一个分层的协议,该协议可以使服务,如加密的调试数据。

发展:我们是否真的了解正在发生的事?

图1 USB集线器的高级视图

另外,调试信息可存储在系统存储器中,用于稍后恢复。这种模式的操作是特别有用的现场试验和“在使用”的分析,促进罕见的或稀疏的问题,只出现间歇性和大量的系统和实际使用情况下识别,使他们很难在实验室中识别。

使用案例:片上调试和基带SOC的芯片性能的监测能力和调试解决方案来解决各种复杂的性能监控,细微的问题可以通过考虑LTE-A调制解调器SoC的案例欣赏(图2),配备ultrasoc IP。

片上的块允许整个芯片的调试和监控-不只是一个特定的处理器核心。这是特别重要的,在多处理器片上系统中有几个处理器,可能是从多个来源获得,除了一些复杂的协处理器。监控和调试系统的模块化性质,和基于消息的架构可以对底层系统的非侵入性监测。在这个例子中,USB集线器是用来传输数据的芯片。

发展:我们是否真的了解正在发生的事?

图2 ultrasoc LTE-Advanced调制解调器芯片启用

对调制解调器的相对简单的添加允许大量的常见问题被发现和诊断。例如,样品通过从电台通常会被暂时存储在FIFO,反过来接口与主存储器的DMA。状态监测观察和发送信号在无线电如果允许水平,FIFO的被监视的状态和行为:开发团队获得多大的FIFO需要确保调制解调器是一致的信息,而不需要在工程师他们牺牲芯片面积和功率效率。

DMA操作的另一关键地区对LTE设计的总体绩效的潜在影响:大量的数据需要提供给DSP内部存储器,在时尚保持着严格的LTE的时序约束。一个总线监控模块是用来观察个别交易由DMA引擎和计算延迟(图3显示为DDR读延迟的一个例子)。除了获得的所有交易的直方图,也可以计算最小,最大和平均潜伏期,以及采取所有的DMA交易时间。

发展:我们是否真的了解正在发生的事?

图3 DMA传输延迟

交叉触发

需要注意的一个重要点是在监控系统中的交叉触发的需要。例如,一个简单的状态监测可以用来计算每个处理器的失速周期的数目,从而衡量系统如何有效地利用可用的处理能力,在实践中的设计团队也将希望更深入地看情况下,利用。这可以通过配置总线监视器来捕捉循环缓冲区的痕迹,当处理器的状态监视器检测到一个档位时,触发总线监视器通过消息传递系统捕获的跟踪,从而使开发团队能够查看系统的行为导致的失速。

死锁检测

间歇性死锁条件是最困难的问题,开发团队的识别和诊断。有各种原因的死锁的系统,和片上的性能监控可以用来识别这些,无论是由硬件,软件或交互造成的。作为一个例子,如何帮助跟踪与互连相关的锁,考虑的问题,一个主断言“准备”信号,但奴隶从来没有断言一个“有效”的信号。

为了检测这种情况,可以在一个模式中配置一个总线监视器,该模式中的跟踪捕获不等待准备就绪。异步触发任何不直接来自一个特定的总线阶段验收:例如事件、定时器、和monitor_snapshot消息,或者交易超过阈值度量。

这可以在“捕获”模式中配置跟踪,当事务持续时间超过某个阈值时自动触发。另外,一些其他的块会触发总线是挂在monitor_snapshot发送消息。

结论和未来

SoC及其相关的软件越来越复杂的过去二十年:如此复杂,他们的行为和其组成部分相互作用的模糊使他们理解和分析这样的系统很难。

传统的方法可能需要许多人年,可能会导致延迟的产品,从而导致收入损失。但通过非侵入性的,简单而智能化、可配置、可监测母线块,CPU或自定义的逻辑信号,这些任务变得简单多了。

这具有重要的商业价值:更快的时间到市场,降低成本,降低风险,减少错误的领域。展望,这样的能力也可以用来减少责任和诉讼关注的产品,在该领域的失败。他们也可以启用“法医学”,在一场错误的和引起的问题的领域失败后分析。最后,优化系统的能力将是重要的。通过监测和报告实际使用在现实生活中的情况,它可能是可能的,以提高性能或降低功耗,通过调整软件的行为。在其他情况下,收集的信息可用于下一代设备的定义(例如减少缓冲区的大小,或平衡处理器和互连的性能)。

在芯片调试和监控是一个强大的概念:但对于许多开发团队,它的使用需要一个基本的重新思考。这是一个变化的方法,不能太快。

相关新闻