acm-header
登录

ACM通信

的观点

工程与科学建模


抽象模型,说明

信贷:奥尔加Hmelevskaya

从1978年起,40多年来,我一直在研究与物理世界直接交互的计算机。人们现在把这种组合称为“网络物理系统”,随着自动化工厂和自动驾驶汽车的出现,它们成为我们脑海中最重要的部分。那时,我正在为Intel 8080编写汇编代码,这是现在被称为x86架构的一长串代码中的第一个。8080的主要工作是在耶鲁纽黑文医院的临床病理实验室中打开和关闭控制气压驱动机器人的阀门。这些机器人将在测试设备的半自动化流水线上移动装有血液样本的试管。这些操作的时间非常关键,我控制时间的方法是统计汇编语言指令,并根据需要插入no-ops。即使在那时,这也不是完全不重要的,因为不同指令所花费的时间从4个时钟周期到11个时钟周期不等。但是程序执行的时间是定义良好、可重复和精确的。

与今天的同类产品相比,我当时使用的模型非常简单。我的程序可以被视为一系列定时步骤的模型,其中夹杂着开启或关闭阀门的I/O操作。我的建模语言是8080汇编语言,它本身是8080芯片中NMOS电路的电行为模型。最终在物理系统中发生的是电子在硅中四处晃动,导致机械继电器闭合或打开。然而,我不需要考虑这些机电过程。我只是考虑了我更抽象的模型。

今天,从微处理器获取实时行为变得更加复杂。今天的时钟频率要高出三个数量级以上(超过2GHz比2MHz),但是I/O交互的计时精度并没有提高,实际上可能已经下降了,可重复性已经消失了。今天,即使我们用x86汇编代码编写程序,也很难,甚至不可能使用相同的设计风格。相反,我们直接或通过实时操作系统使用计时器中断。为了理解计时行为,我们必须为硬件和软件的许多细节建模,包括内存架构、管道设计、I/O子系统、并发管理和操作系统设计。

在这40多年里,我们设计实时系统的方式发生了一个微妙而重要的转变。在1978年,我的模型指定了计时行为,物理系统有责任正确地模拟我的模型。在2018年,物理系统给了我一些计时行为,这取决于我建立那个计时行为的模型。作为一名工程师,我的工作已经从设计一种行为转变为理解一种我几乎无法控制的行为。

为了帮助理解我几乎无法控制的行为,我建立了模型。例如,在实时系统领域中,使用程序将运行的特定硬件的详细模型来估计一段代码的“最坏情况执行时间”(WCET)是很常见的。然后,我们可以使用该WCET对程序的行为进行建模,从而获得更高层次、更抽象的模型。

这种方法存在两个问题。首先,在现代微处理器上确定WCET非常困难。仅仅理解指令集(x86汇编语言)是不够的。你必须为指令集的硅实现的每个细节建模。其次,WCET并不是实际的执行时间。大多数程序执行的时间都比WCET短,但是建模这种可变性通常是不可能的。因此,程序行为是不可重复的。执行时间的可变性可能会逆转动作在物理世界中执行的顺序,可能会带来灾难性的后果。例如,对于飞机舱门来说,你是解除自动逃生滑梯然后打开舱门还是反过来打开舱门很重要。在这种情况下,就像许多实时系统一样,排序比速度更重要。

关键问题是,我以两种截然不同的方式使用实时行为模型。在1978年,我的模型是一个规范,物理系统有义务像模型一样运行。在2018年,我的模型是对物理系统行为的描述,我的模型有责任匹配那个系统。模型的这两种使用是彼此的镜像。

近似地说,第一种建模风格在工程中更常见,而第二种建模风格在科学中更常见。科学家被赋予一个物理系统,必须提出一个与该系统相匹配的模型。模型的价值在于其行为与物理系统的匹配程度。然而,对于工程师来说,物理系统的价值在于它与模型行为的匹配程度。如果8080微处理器过热,不能正确执行我指定的指令,那么问题在于物理系统,而不是模型。另一方面,如果我的程序在现代微处理器上执行得比预期的快,而且事件的顺序颠倒了,那么问题出在我的模型上,而不是物理系统上。

人类一些最成功的工程成就都是基于建模的工程风格。以VLSI芯片设计为例。大多数芯片都是通过指定由闸和锁存器组成的同步数字逻辑模型来设计的。与这个逻辑模型不匹配的一块物理硅只是沙滩上的沙子。在抽象层次上,如果一个同步数字逻辑模型不能匹配指定它的Verilog或VHDL程序,那么它同样是垃圾。如果x86是预期的设计,那么未能正确实现x86指令集的Verilog或VHDL模型也是垃圾。我们可以在抽象层次上继续上升,但关键是在每一层上,较低的层次必须与较高的层次相匹配。


科学和工程都是关于模型的。


在科学中,模型的使用方式正好相反。如果波义耳定律不能准确描述气体在压缩时的压力,我们就不会认为气体是罪魁祸首。我们会让模特负责。在科学中,抽象的上层必须与下层相匹配,这与工程的相反。

其后果是深远的。科学家问:“我可以为这个东西建立一个模型吗?”而工程师问:“我可以为这个模型建立一个东西吗?”此外,一位科学家试图减少相关模型的数量,这些模型需要解释一个物理现象。相反,工程师努力增加相关模型的数量,我们可以为这些模型构建一个忠实的物理实现。

这两种建模风格是互补的,大多数科学家和工程师都使用这两种风格。但根据我的经验,他们通常不知道自己使用的是哪种风格。他们不知道自己是在做科学还是工程。

诺贝尔奖是颁给科学而不是工程的。但在2017年,Rainer Weiss、Barry Barish和Kip Thorne因为“对LIGO探测器和引力波观测的决定性贡献”获得了诺贝尔物理学奖。LIGO探测器是一项惊人的工程,它可以测量距离4公里的物体之间的微小距离变化,甚至比质子直径小得多的变化。他们设计了一个模型,这个模型使科学成为可能。他们在工程上取得了决定性的胜利,LIGO探测器使引力波这一自然界物理现象的科学模型得到了实验验证。引力波是一个有100年历史的爱因斯坦模型,但LIGO也开启了新的科学,因为它探测到的黑洞碰撞比天文学家预期的要多。这将需要修正我们的宇宙模型。在这里,科学先于工程,工程先于科学。

回到实时系统,今天的问题是我们做了太多的科学而没有足够的工程。作为一个社区,在实时系统中工作的人们将自己托付给英特尔和Arm提供给我们的微处理器。这些绝对是工程上的胜利,但他们意识到模型与时间没有什么关系。我们不接受那些微处理器,好像它们是自然界的人工制品,我们可以设计微处理器,给我们精确和可控的时间,处理器,我们称之为PRET机器。1然后我们可以指定实时行为,硬件将需要匹配我们的规范。我们已经证明,这样的微处理器是可以设计出来的,而且在硬件开销上的成本不高的情况下,没有必要牺牲性能。2

科学和工程都是关于模型的。但他们对模型的使用是不同的,而且是互补的。任何模型都是为了一个目的而建立的,如果我们不了解其目的,这个模型就不太可能非常有用。要阅读更多关于工程模型和科学模型之间的关系,请参阅我最近出版的一本书。3.

回到顶部

参考文献

1.爱德华,S.A.和李,E.A.精密计时(PRET)机的案例。在设计自动化会议论文集(DAC),圣地亚哥,加州,2007。

2.Lee, e.a., Reineke, J.和Zimmer, M.摘要PRET机器。在IEEE实时系统研讨会论文集(RTSS)2017年,法国巴黎。

3.李,电子艺界柏拉图和书呆子:人类和技术的创造性伙伴关系。麻省理工学院出版社,2017年。

回到顶部

作者

爱德华·a·李eal@berkeley.edu)是加州大学伯克利分校研究生院教授,也是加州大学伯克利分校EECS的Robert S. Pepper荣誉退休教授。


版权归作者所有。
向所有者/作者请求(重新)发布许可

数字图书馆是由计算机协会出版的。版权所有©2019 ACM股份有限公司


评论


迈克尔Goldsby

迷人的文章和介绍。
我对你对XMOS时间确定处理器的评估很感兴趣。


爱德华•李

谢谢你的反馈。您可以在这里找到一篇文章,其中包括我对XMOS处理器(和其他一些处理器)的评估:

Edward A. Lee, Jan Reineke和Michael Zimmer,“Abstract PRET Machines”,邀请TCRTS奖论文。IEEE实时系统研讨会(RTSS 17), 2017年12月5日。(见预印本)


显示所有2评论

登录为完全访问
»忘记密码? *创建ACM Web帐户
文章内容:
Baidu
map