[发明专利]执行具有多个可调用过程的单线程计算机程序的方法无效
申请号: | 92101822.3 | 申请日: | 1992-03-18 |
公开(公告)号: | CN1042979C | 公开(公告)日: | 1999-04-14 |
发明(设计)人: | 尼塔·雅各布·阿米特;约翰·米歇尔·马伯格;尤瑞·沙尼 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/06 | 分类号: | G06F9/06 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 | 代理人: | 于静 |
地址: | 美国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 具有 多个可 调用 过程 线程 计算机 程序 方法 | ||
本发明涉及数据处理软件的用法。更具体地,它涉及在多个处理器上有效地执行单线程计算机程序的方法。
一个现代计算机系统一般包括单个中央处理单元(CPU),和其它支持硬件,如系统存储器,通讯总线,输入/输出控制器,存储设备等。CPU是系统的心脏。它执行包括计算机程序的指令并指导其它系统部件工作。
在计算机发展初期,CPU是系统中最贵的部分。因此,人们围绕着CPU建造系统以优化其用法。能同时为多个用户服务执行各种任务的多任务系统就是这么产生的。多任务系统允许多个用户和任务共享CPU,虽然这种系统能够同时为多个用户服务执行各种任务,但是,在任何瞬间,CPU中正执行的任务只有一个。如果一特定任务需要CPU而CPU正忙,此任务必须等待。因此,多任务系统提高了CPU的使用效率,同时这也意味着CPU是整个系统运行的瓶颈。
随着集成电路的出现,处理器的成本相对其它系统部件下降了。因此,计算机设计为具有多个处理器。例如,数年来,在从属处理器如磁盘驱动控制器处理器,工作站控制器处理器等上执行特定的低级外围功能已成为标准。当这种外围处理器的相对成本下降了时,系统设计者扩充了它们的用途,减轻了CPU的工作负担。
最近几年,各种便宜的处理器导致并行和分布式处理系统,包括多处理器执行原来由单个CPU所执行的功能的发展。这种多处理器系统中的处理器具有独立的地址空间,可拥有自己的存储器和内部数据总线以及I/O。这些处理器可通过共享的总线和共享的存储器相连,或更松散地,经通讯网络或其它I/O控制器相连。
这种多处理器的一个特殊情况是采用了一个通用主处理器和一个面向数字的协处理器。这种面向数字的协处理器体系结构是为执行需大量计算(一般为浮点运算)的应用程序而优化的,而主处理器是为处理数据转移、比较、I/O等典型的混合指令而优化的。
这种多处理系统有一个问题:为在一个计算机系统上执行而设计的大多数程序本质上是单线程的。这时所用的“单线程”意指程序只包含单个控制流,从而在任意瞬间,都在执行单指令序列。这种序列可以循环或跳到编码中的另一点,但永远是单路径的。这种单线程程序和多线程控制不同。在多线程控制中,程序流可像岔口处的道路一样分开,同时在两条路径上继续进行。一个单线程程序不太适合在多处理器上执行。
当单线程程序在一个包含不同类型处理器的多处理器系统中执行时,必须把此程序的各个部分分配到不同的处理器上执行。一种方法是重写单线程代码以支持不同的控制流,实现多处理器优化,某些计算机语言支持这种多道处理,尽管只有小部分现有计算机程序是用这些语言写的。例如SIMULA语言支持使用联立程序,可执行联立的多线程程序。但是,这种方法不是永远可行;即使可行,重写现有编码也太贵。
另一种向多处理器分配程序各部分的方法是客户-服务器模型,它被广泛地用于分布式处理系统。每个程序部分在某个处理器(客户)上执行。当它需要具有与客户处理器不同能力的另一处理器(服务器)时,它发布一个请服务器为其服务的请求,服务器在工作结束时把控制连同工作结果一起(如果需要)返回客户。客户-服务器模型使不同的处理器在执行程序时相互合作,但合作程序有限。客户必须在执行开始以前,通常是在知道需要何种信息以前,向服务器提供所有需要的信息。现有客户-服务器模型本质上是单向的;服务器没有能力发布一个调用客户的命令。
在一个多处理器系统中向不同处理器分配程序的不同部分时对编码的改变最好不要很大。具体地,在具有通用主处理器和面向数字的协处理器的系统情形里,最好在协处理器上执行面向数字的过程,并在主处理器上执行其它过程。不辛的是,现有技术机制限制了系统以一种优化方式分配过程的能力。
因此本发明的一个目的是提供一种在多处理器计算机系统上执行程序的改进方法和装置。
本发明的另一目的是提供向多处理器计算机系统中的不同处理器分配程序各部分的改进方法和装置。
本发明的另一目的是增加向多处理器计算机系统中的不同处理器分配程序各部分的灵活性。
本发明的另一目的是增加在多处理器计算机系统上执行过程的效率。
本发明的另一目的是减少单线程程序所需改变量使其在一个多处理器计算机系统上有效地运行。
本发明的另一目的是减少在多处理器计算机系统上执行程序的成本。
本发明的另一目的是提供在具有通用处理器和面向数字的协处理器计算机系统上执行程序的改进方法和装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/92101822.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于电动工具的开关装置
- 下一篇:光致变色玻璃