0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于硬件仿真的OS类似于计算机系统的分析和介绍

西门子EDA 来源:djl 2019-10-11 16:32 次阅读

Charley Selvidge是Mentor,a Siemens Business的首席工程经理,待人谦逊有礼,同时深藏敏锐才智和精湛学识,能够用通俗易懂的词语解释复杂概念。

正因如此,他在阐述硬件仿真发展前景时得心应手,这也正是他颇为精通的领域。在20世纪90年代末,Charley在马萨诸塞州剑桥市的麻省理工学院(MIT)附近创办了 Virtual Machine Works公司。据了解,VMW于1998年被IKOS Systems收购,之后于2002年加入Mentor。

图:Charley Selvidge

尽管Charley常年变动,甚至贯穿整个美国迁至加利福尼亚州,但期间他从未间断设计和完善新型仿真器最新版的Veloce硬件仿真平台就是他的杰作,这是一种名为Veloce Strato的数据中心友好型仿真平台。

最近,Charley一直认为,硬件仿真器操作系统由仿真器软件系统的自然演变而来。

为说明这一点,他用计算机系统做类比。“在计算机出现的早期,计算机没有操作系统。程序员很快发现,在计算机硬件的低级操作和想要在计算机中运行的高级任务或程序之间创建标准软件是非常有用的。”分层方法将提供一系列一致的服务,从而更容易地开发应用和程序,无需重新设置或重复开发通用的底层功能、库,如打开文件或与计算机进行的其他交互应用。

Charley 对比仿真器并指出:“硬件仿真器包括底部可用于运行数字芯片硬件执行平台以及可以在仿真器上运行的一系列应用型任务。”这些任务通常具有高级目标,例如对芯片功耗进行特征提取或处理运行于芯片内部处理器上的软件应用。不论是哪种情况,整个芯片均需视为任务的一部分。

他补充道,这些确实是仿真器通常执行的高级且复杂的任务。操作系统内部仿真的一系列中间服务标准将高级任务和与仿真相关的低级、特定于机器的细节隔离开。

因此,Charley确定,操作系统对于仿真器而言是一个新颖的概念。

硬件仿真中的硬件和软件可扩展性

所有仿真器均基于某种建模元器件,也就是说,是一种可以对芯片建模的设备。大多数建模元器件是以少量、中等或大量形式组装,可以创建不同规模的系统。在此底层硬件之上是一种软件编译系统。仿真编译器读取数据库或集成电路模型,并写入数据流以配置仿真器中的建模元器件阵列,以形成芯片映射。

通常情况,使用计算机程序设计集成电路,这种程序可以执行以一种通常称为硬件描述语言(HDL)的计算机语言编写的电路描述。最常用的HDL是Verilog SystemVerilog和VHDL。电路描述确定了电路特性。将这些描述合并成一个真实的电路,并编译成在仿真器上运行的模型。

据Charley介绍,获得芯片模型后,设计师可将其加载到仿真器上,这是由仿真器的OS软件执行的特定于机器的任务。OS还可以执行一些其他任务,包括运行和停止时钟、访问设计可见性数据,或将激励应用于仿真模型以及收集其响应。他还提醒我们注意,功能性设计验证任务包括向设备中写入数据、从设备中提取数据、判断设备是否正确,以及与之交互。

这些基本任务对于仿真器可以执行的最高级作业而言很普遍。他举了几个例子,包括对功耗进行特征提取、运行软件和其他一些活动。这些最高级作业反过来调用底层服务的各种基本单元,以完成执行。Charley以提取可见性数据以确定功耗为例。这涉及在测试环境中运行设计、提取数据、处理数据以及向更多软件提供数据以进行功耗运算。

扩展软件复杂性是扩展的一个方面,也是一个好的示例。如果拥有如下OS会很有帮助:该OS能够为更复杂任务提供一系列以更高级抽象方式(换言之,计算机编程方式)管理的基本功能和服务。Charley补充说:“设计师不想使用汇编语言编程。他们不想编写自己的文件服务程序。现在,他们只需要编译器和标准接口来实现功能。

仿真器OS扩展的第二方面是对多种型号的设备建模。一方面,设计师可以选择对小规模的知识产权(IP)模块建模,以适应一些小型仿真硬件资源。另一方面,设计师可以对CPU或大型互联网开关芯片等完整片上系统(SoC)设计建模。这样就产生了一系列面向软件的挑战,这些挑战就是开发用于处理小模型和大模型的软件兼容性。

他表示:“大型设计难以管理,但针对多种规模做出适当的权衡更具挑战。一旦解决了软件挑战,将有利于在一个标准化的地方存储解决方案。这个地方就是OS。”

为可见性等功能提供OS中的服务,能够为小型设计和大型设计提供适当的功能支持,并且无需设计师掌握高效扩展的原理。

Charley说:“在以上这些方面中,OS是用于开发仿真器软件的一种适当的软件组织策略。”

硬件仿真应用程序

这让Charley对硬件仿真产生了新观点。与PC或手机一样,硬件仿真正在进入“应用程序”世界。硬件仿真通过与消费类电子设备软件基本相同的方式,为这些应用程序提供服务。

当处理“应用程序”等特定于应用的问题以及开发解决这些问题的软件时,以无需编写软件即可完成任务方式封装的较低级服务很有帮助。这些服务可以由操作系统通过一组应用程序编程接口(API)以可访问的形式提供,API是一种较高级应用获取底层服务的方法。

通过实施这种软件组织(指OS和应用程序),设计师可以让OS软件平稳化,并确定一系列有效且一致的API。这种方法可以高效开发应用程序,无需考虑较低级细节,且支持不同版本硬件仿真平台。

使用OS的另一方面是能够通过提供具有透明度的适应层,将程序等较高级软件元素与底层硬件中的变化隔离开。设计师使用这种方法开发的应用程序不会因硬件平台的发展而变化,可以保护原始投资,供将来加以利用。无需重建旧软件便可在新平台上工作,因此设计师可以潜心开发可在多代平台运行的新软件。

他最后总结道:“像这样的OS和“应用程序”软件组织方法对于设计师而言独特而有利。”接下来,我们请Charley继续考虑操作系统,也许就会出现新一代的硬件仿真器。同时,我们之后要考虑的是硬件仿真的未来发展潜力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真器
    +关注

    关注

    14

    文章

    1012

    浏览量

    83587
  • 计算机系统
    +关注

    关注

    0

    文章

    276

    浏览量

    24071
  • 编译器
    +关注

    关注

    1

    文章

    1616

    浏览量

    49012
收藏 人收藏

    评论

    相关推荐

    信号继电器在计算机系统中的应用

    信号继电器在计算机系统中的应用是一个重要且复杂的领域,它作为电气控制的关键元件,在计算机系统中发挥着信号转换、隔离、放大以及控制等多种作用。以下将从信号继电器的基本概念、工作原理、特性、在计算机系统中的应用场景、优势以及未来发展
    的头像 发表于 09-27 16:29 253次阅读

    计算机存储系统的工作原理和功能

    计算机存储系统作为计算机系统中至关重要的组成部分,其原理和功能对于理解计算机的运行机制具有关键意义。以下将详细阐述计算机存储
    的头像 发表于 09-26 16:42 508次阅读

    计算机系统硬件组成和主要部件

    计算机系统硬件组成是计算机运行的基础,它包含了多个关键部件,这些部件相互协作,共同实现计算机的各种功能。
    的头像 发表于 09-10 11:41 1320次阅读

    简述计算机总线的分类

    计算机总线作为计算机系统中连接各个功能部件的公共通信干线,其结构和分类对于理解计算机硬件系统的工作原理至关重要。以下是对计算机总线结构和分类
    的头像 发表于 08-26 16:23 781次阅读

    存储器在微型计算机系统中的作用

    存储器在微型计算机系统中扮演着至关重要的角色,它是计算机存储和处理数据的核心部件。以下将详细介绍存储器在微型计算机系统中的作用,包括其分类、功能、特性以及与其他
    的头像 发表于 08-22 14:25 1351次阅读

    微处理器如何控制计算机系统

    微处理器,作为计算机系统的核心部件,承担着控制整个计算机系统运行的重要任务。它不仅是计算机的运算中心,还是控制中心,负责执行程序指令、处理数据以及协调计算机各部件之间的工作。以下将详细
    的头像 发表于 08-22 14:21 418次阅读

    简述微型计算机系统的组成

    微型计算机系统,简称微机系统,是一个集硬件和软件一体的复杂系统,旨在高效处理信息、存储数据和执行用户指令。下面将从
    的头像 发表于 08-22 12:37 2588次阅读

    计算机系统的组成和功能

    计算机系统是一个复杂而庞大的概念,它涵盖了计算机硬件、软件以及它们之间相互作用的所有元素。为了全面而深入地探讨计算机系统,本文将从定义、组成、功能、发展历程以及未来趋势等方面进行详细阐述。
    的头像 发表于 07-24 17:41 656次阅读

    计算机系统软件的主要分类及其功能

    计算机系统软件是计算机运行的基础和关键,它们为计算机提供了各种基础服务和管理功能,使得计算机能够高效地工作。
    的头像 发表于 07-15 18:26 2532次阅读

    计算机系统中的关键组件有哪些

    计算机系统中,关键组件的协同工作构成了其强大的数据处理和运算能力。这些组件不仅决定了计算机的性能,还影响着用户的使用体验。以下是对计算机系统中关键组件的详细阐述,包括它们的定义、功能、特点以及相互之间的关系。
    的头像 发表于 07-15 18:18 1117次阅读

    自然语言处理技术在计算机系统中的应用

    已经在许多领域展现出广泛的应用价值,从机器翻译、语音识别到情感分析、智能客服等,无一不体现着NLP技术的强大能力。本文将深入探讨NLP技术在计算机系统中的应用,并展望其未来的发展趋势。
    的头像 发表于 07-04 14:35 404次阅读

    计算机控制器的结构和功能

    随着信息技术的迅猛发展,计算机已经深入我们生活的方方面面。而计算机控制器,作为计算机系统的核心部件之一,承担着协调各部件工作、指挥整个计算机按程序运行的重要任务。本文将详细
    的头像 发表于 06-17 15:47 1308次阅读

    工业控制计算机硬件组成有哪些

    工业控制计算机(Industrial Personal Computer,IPC)是一种专门为工业环境设计的计算机系统,具有高可靠性、高稳定性、高实时性等特点。在工业自动化、智能制造等领域中,工业
    的头像 发表于 06-16 11:33 1375次阅读

    计算机系统由什么两部分组成 计算机系统的层次结构

    计算机系统是由硬件和软件两部分组成的。 硬件部分包括计算机的实体组件,如中央处理器(CPU)、内存、存储设备、输入输出设备、显示器等。CPU是计算机
    的头像 发表于 02-01 14:13 3372次阅读

    计算机系统如何应对大模型时代的挑战与机遇

    “操作系统管理着计算机的资源和进程,以及所有的硬件和软件。计算机的操作系统让用户在不需要了解计算机
    发表于 01-23 11:06 494次阅读
    <b class='flag-5'>计算机系统</b>如何应对大模型时代的挑战与机遇