对于多核芯片建立正式验证的并行软件的ticc-范例的制作方法

xiaoxiao2020-7-22  12

专利名称:对于多核芯片建立正式验证的并行软件的ticc-范例的制作方法
对于多核芯片建立正式验证的并行软件的Ticc-范例发明人=Chitoor V. Srinivasan President, EDSS, Inc.优先权申请号US61/195,965优先权日期10/14/2008第一部分摘要第二部分
背景技术
第三部分

发明内容
第四部分
具体实施例方式第五部分权利要求 第六部分附图及简要描述 词汇表按照字母顺序的缩写 ALLEOP 允许的事件发生模式 CCP:因果通信原语 CCS 用于通信系统的微积分 CIP 蜂窝交互协议 CPU:硬件计算单元 CSP:通信序列处理 CTL:因果时间逻辑 Dm路径分配的存储器通信路径 ECT:事件特征表 FSP 有限状态处理 ndFSP JNSSfsp NFSP 非 FSP 00:对象导向的 Sm-路径共享存储器通信路径 SMS:自我监控系统 TICC 用于集成计算和通信的技术 TICC -Ppde 基于TICC 的并行程序开发和执行平台 TICCNET 基于TICC 的局域通信网 TIP 线程交互协议 第二部分
背景技术
本发明教导如何使用TICC(用于集成计算和通信的技术,US专利No. =US 7,210,145B2, 2007年4月24日,发明人=Chitoor V. Srinivasan)来建立正式验证的大量并行软件系统,该大量并行软件系统是在任意大量共享存储器多核芯片(SMMC)或由局域网互连的共享存储器多处理器(SMP)、TICCNET (基于TICC 的局域通信网)的任意集合上运行,并且以80% -100%的效率运行。组织和操作提供(i)用于设计、实现和正式验证并行软件系统的理想环境;(ii)从被称为蜂窝的并行软件计算单元中的交互的摘要规范开始,并且逐渐地将实现改进到它的最终形式;(iii)在具有TICCNET 的SMMC网络的多样性中提供用于开发大量并行软件应用的正确的编程摘要和工具;(iv)在实现的每一阶自动生成基于正式事件的定义的计算的模型,称为允许的事件发生模式(ALLEOP),其中(ν) 不仅被用于正式验证定义的计算的属性,例如在因果时间逻辑语言(CTL语言)中陈述的正确性、定时、同步、调整、进展、活跃度、避免死锁度,还用于(vi)自动实现自我监控系统 (SMS),其监控在实现的应用的整个生命周期实现的应用的性能,该监控是与操作并行进行的并且不干扰实现的应用的定时,从而识别和报告性能的错误、即将发生的错误和告警情况定义的先验的发生。
TICC -Ppde是用于开发和执行基于TICC 的并行程序的平台。其具有将所有将来的应用软件转换为完全验证的并行软件系统的潜力,在具有多核芯片的各种台式机和笔记本计算机上运行,由此提供对于在我们今天使用的技术中不能实现的大量计算能力的简单的访问。
TICC -Ppde采用和集成修改版本的七个其他编程范例(i)00(对象导向的)范 M [Martin 1, Alan 2, Armstrong 3, Bertrand 4], (ii))[Hewitt, 5] [Agha,6] [Clinger, 37]中的并行计算,(iii)如在π微积分[Milner,7,8,9]中的交互规范,(iv) 如在CSP(通信序列处理)[Hoare,10,11,12]中的计算和通信的集成,(ν)与通过FSP(有限状态处理)[Magee & Kramer, 13]设计认证类似的实现的认证,(vi)与[Hoare,15]和 [Manna, 16. 17,18]类似的NFSP (非NFS)系统的认证,以及(vii)使用修改的RESTCLK-路径的通信。在TICC -Ppde中使用的通信机制、并行程序组织和证明方法是新的。
通过使用不同的TICC 而可能进行这些范例的集成,其能够使得硬件和软件计算部件有计划地互换信号。通过有计划的信号互换来驱动所有通信、并行处理、P线程(并行线程)交互、安全执行、中断处理、同步、调整和自我监控,而不需要使用操作系统(0S),同时保持所有软件和硬件部件的相互隔离。应用的软件计算部件,称为蜂窝,并行操作并且不是如在FSP[Maggie & Kramer, 13]和CCS (用于通信系统的微积分)[Milner,14]中时间分割的并发。每个蜂窝在它自己分配的硬件CPU中操作,并且除非已经被分配了 CPU的该蜂窝暂停或终止其操作并释放了该CPU,否则其他蜂窝不使用该CPU。基于TICC 的并行处理需要并可以容纳大量CPU。除了简化并行编程和提供用于正式验证和动态自我监控的方法之外,TICC -Ppde还提供一些其他益处,如在发明内容部分描述。 具体实施方式
部分通过一系列例子表示如下内容(i)组织的基本原理;(ii)通信和计算的本质;(iii)由ALLEOP定义的计算模型,其是自动从实施中得出的;(iv)使用自动从ALLEOP得到的ECT网络(时间特征表网络)上给定CTL断言(因果时间逻辑断言) 的评估来验证实施;以及(ν)同步、调整、数据保护、安全实施和自我监控。
TICCNET 是基于TICC 的分布式存储器硬件通信网络,可以用于在包含256或更多SMMC (共享存储器多处理器芯片)和/或SMP (共享存储器多处理器)局域超级计算格网中在SMMC和/或SMP之间组对组的高速消息互换,每个SMMC或SMP具有32或64个处理器或更多。我们以单个芯片中集成的多个SMMC想象不远的将来的多核芯片。假设将 TICCNET 本身集成到这样的多核多SMP芯片,用于在芯片中的SMP之间高速组对组地分布式存储器消息互换。在本专利申请中仅描述TICCNET 中分布式存储器路径的结构,不描述在TICCNET 中安装路径并且在安装的路径上发送消息的机制。
第三部分

发明内容
1.通过连续改讲的实施=TICCtm-范例介绍了从被称为蜂窝的并行软件计算单元的集合之间交互的概要规范开始的通过连续的改进的应用实施方法。蜂窝经由附接于蜂窝的端口连接的通信路径在蜂窝之间交换消息来执行并行计算。如果存在任何名称的自变量的话,如果与调用和执行名称和自变量的实施上下文中一起指定名称和自变量,但是没有定义实施它们的计算机程序,则消息子分类、方法、并行线程或条件是概要。改进涉及消息子分类和计算机程序的定义,其定义了在应用的给定概要设计中的概要方法、P线程(并行线程)和条件。在给定概要规范中随着蜂窝之间的消息流以目标导向的方式执行改进。在每一级改进中,从实施规范中自动得出由定义的计算机程序执行的计算的ALLEOP模型。该模型被用于使得在不同级的改进中在CTL语言(因果时间逻辑)中断言的属性有效。如果已经对于实施中的所有概要方法、并行线程和条件定义了计算机程序并且已经完全定义了所有消息子分类,则完全改进了实施。
2. ALLEOP和证明如在部分2的具体实施方式
中描述,ALLEOP指定应用中的允许的事件发生模式。存在两种事件分类通信事件分类和动作事件分类。大体来说(在具体实施方式
的部分2和5中详细描述),通信事件分类是(ps,t),(pF,t)或者(pD,t)对,其中 P是通过路径发送、转发和接收消息的端口,上标S用于发送,上标F用于转发,上标D用于传递,并且t被称为时间地图,代表时间点的序列,在该时间点上在应用的运行中可以发生事件分类的实例。动作事件分类是对(name,t),其中name是变量、条件或动作并且t是表示时间点的序列的时间地图,在该时间点上设置和/或访问命名的变量,命名的条件变成真或者执行命名的动作。但是动作事件的实例可以改变并行计算的世界状态,通信事件的实例仅改变通信路径中部件的状态。
用于ιΗ确操作的条件我们写X(t,)来指事件分类(X,t)的实例,在时间、发生事件实例X。如果在ALLEOP中(X causes Y)保持真,我们写(X —Y),如果(X causes Y)仅当条件C (X,Y)为真,则写(Xe(x’Y)—Y)或者C(X,Y) ? (){X —Y}。因果关系是不自反的传递的不对称关系,表示(X — Y)是不可能的,(X — Y) &(Y — X)也是不可能的,(X-Y-Z) 暗示(X —Z),并且―严—t)暗示們偏’办―^。因果链是连续因果关系的串联,如在(X — Y — Z)或(Xe(x’Y) — YC(Y'Z) — Ζ)。以下解释因果关系 解释1 如果在应用的运行中,X的实例X(tJ使得Y的实例Y(t2)发生,那么在 ALLEOP中或者(X-Y)为真或者(Xc0i’Y) — Y)&<C(X,Y) > (t2)为真,并且在两种情况下,
(t2 彡 t1+ τ
(Χ, Y) )应该也保持为真。
项目<C(X,Y)>(t2)断言在时间t2条件C(X,Y)是真。项目τ ^y)是是在两个事件实例(χ,γ)的方式之间的最大允许延时。实施者在设计时估算这些最大值并且在以完成的实施进行试验时对它们进行确认。应用的因果网代表了在该应用运行过程中可能发生的通信事件实例的所有可能因果链的集合,动作事件被忽略。仅当在应用的每个因果网中下面的条件1保持真时,正确地操作应用(部分6. 5,具体实施方式
) 条件ι "(XMtOVCYM^KX^) ->Y(t2 =>[(X_>Y) v((XC(x'Y)->Y)& C(X,Y)>(t2))]& (^!+!(χ,γ)))] 这个条件断言对于在任何应用运行中发生的所有事件实例解释1应该保持真。这里的定时是用于模型计算的事件的属性,不是计算的参数。每个计算步骤具有与其相关的一个或多个事件。所有这样的时间发生在离散的实时时间点。在证明构建的过程中,以与 ALLEOP中指定的时间地图一致的方式对于事件假定时间点。在条件1中以给定的紧的边界 τ (χ,γ)预期事件的定时的能力是TICC -Ppde执行特征(具体实施方式
中的部分4. 6)和参考下面的特征4加速技术的消除的结果。在证明构建中均使用事件发生模式、因果链、与它们相关的条件、事件定时和计算单元的状态。
ALLEOP对FSP (有限状态处理)和NFSP (无限状态处理)系统建模。不像在Maggie & Kramer [13]中使用的FSP模型,ALLEOP不是期望的系统设计的模型,而是实际实施的模型,自动地从改进的不同级的实施规范中得到。迹线自动地从ALLEOP得到并且从迹线自动地得到ECT (时间特征表)。ECT网络以表格的方式表示迹线中的信息,这对于ALLEOP证明构建是方便的。通过ECT网络上的CTL断言(因果时间逻辑断言)的符号评估进行被称为CTL断言的实施的属性的交互证明。CTL断言类似于Clark[38-40]Emerson,[41]和 Sifakis, [42]中使用的断言,它们还以某种方式类似于[Magee & Kramer, 13]中使用的 FSP语言。但是,存在不同之处,这可以在具体实施方式
的例子中被注意。用于CTL断言的特定句法不是重要的,只要其具有共同接受的毫无疑义的解释[38-42]。
证明不需要用于CTL语言的推断引擎,证明仅需要在ECT网络(ECT的网络)上评估CTL断言的方法。然而,证明确实需要用于提议的表达式的推断引擎。在ECT网络上CTL 表达式的评估提供了在证明中需要的提议推断的上下文。用户指定实施,要被证明的CTL 断言以及提供可能与证明相关的定义、公理和其他CTL断言。在具体实施方式
的部分6中示出的证明方法。有限ALLEOP具有等效FSP模型。给定的ALLEOP具有FSP和NFSP属性; 后者的证明更复杂。
3.动态自我监控SMS :SMS (自我监控系统)是TICC -Ppde程序执行机制的固有的内建部分。由此,当完成应用A的TICC -Ppde实施时,自我监控是自动的。实施者不用必须指定SMS的任何部分。在应用A运行时,与A的运行并行地,在A的生命周期中,对A 的执行效率和定时具有很少甚至没有恶化,SMS动态地生成应用A的因果网,A的因果网是在A的运行过程中发生的所有且仅为通信事件链的网络。当违反条件1时报告错误;仅当对于ALLEOP中的一些事件分类X和Y违反了条件1中的指定上边界τ (χ, γ)时报告紧急错误。甚至可以使用ALLEOP节点作为终端符号来定义正规文法中关键行为的模式,并且当在因果网中发生了任何定义的模式时,使得SMS发布告警。SMS提供用于进行自我诊断、自我修复和学习能力的基础。
4.高速并行通信如在2007年4月M日的US专利No. 7210145Β2中描述的,TICC 采用RESTCLK[Das,19]通信范例。TICC 中的通信是面向连接的仅当两个蜂窝具有由通信路径彼此连接的端口时,该两个蜂窝可以彼此通信。对TICC -Ppde采用RESTCLK改变了用于在路径中的部件之间交换信号的协议,修改了路径的结构以并入SMS,并且更重要的, 不像RESTCLK,能够通过保证的高速消息传递来进行并行同步瞬时异步通信。
每个端口可以仅附接于被称为端口的父蜂窝的一个蜂窝(防止端口争用),并且每个端口可以仅连接至一个路径(防止消息干扰)。存在三种端口,均为软件部件用于发出业务请求消息的总端口,用于接收和响应业务请求消息的功能端口以及用于接收中断消息并对其做出响应的中断端口。每个蜂窝应该具有至少一个每种端口。
在专利US7210145B2中描述的TICC ,使用被称为通信处理器的特定蜂窝调度和实施消息交换,该蜂窝在应用A中与其他蜂窝并行操作。在应用A中的每个蜂窝发送请求以通过连接至该蜂窝的端口的路径将消息发送至A的通信处理器。通信处理器通过与在请求中指定的路径相关联地执行协议来发出消息。以通信处理器接收请求的顺序执行协议。 由此,尽管使用具有1千兆比特每秒存储器总线的2千兆赫兹CPU,在共享存储器环境中仅花费几百纳秒来传递消息,用于传递消息的等待时间可以是6到10微妙那么多,因为用于发送消息的请求将不得不在队列中等待轮到它被通信处理器服务。在应用中可以被同时并行发送的消息的数目被限制为在该应用中不同通信处理器的数目。
这个组织应该与下面说明的其中没有使用通信处理器的TICCTM-Ppde中的并行消息交换机制进行比较。每个蜂窝本身发送和传递所有它的消息并且可以被同时并行发送的消息的数目仅由在应用中不同路径的总数目限制。此外,在共享存储器和分布式存储器环境中均可以发生通信。如下列出在TICCTM-Ppde中通信的特征 (4- )路径和协议蜂窝C的每个端口 C. ρ连接至唯一的路径C. p. pattiway。存在两种路径sm路径(共享存储器路径)和dm路径(分布式存储器路径)。术语路径指的是它们中的任一个。仅传递消息的路径具有与它们相关的虚拟存储器。不传递消息仅传递信号的路径被称为简单路径。在安装路径时对于路径声明虚拟存储器。在编译时间或者在运行时间将真实存储器分配给虚拟存储器。虚拟存储器保存被交换的消息,还保存处理和建立消息的方法和P线程(并行线程)。
每个sm路径具有与其相关的唯一虚拟存储器。如果c.p.pattway是sm路径, 则C. p. vM参考C. p. pathway的虚拟存储器。如果C. p. pathway是dm路径,则连接至 C. p. pathway的每个端口 q(C. ρ是这些端口 q中的一个)将具有与其相关联的不同虚拟存储器q. vM,这些不同的虚拟存储器驻留在由dm路径互连的不同SMP(共享存储器多处理器)。每个端口 C. ρ也具有与其相关联的不同的协议C. p. protocol。仅端口 C. ρ的父蜂窝可以执行C. p. protocol。C执行C. p. protocol 以通过C. p. pathway 发送消息。在C. p. pathway 上行进的信号最终建立了如下上下文如果C. p. pathway是sm路径,则C. p. vM中的信号被传递给也连接至C. p. pathway的它的期望的接收者端口。在C. p. pathway是dm路径的情况下,C. p. vM中的消息通过硬件传输线被传送到连接至相同dm路径的其他端口 q的虚拟存储器q.vM。TICCNET 是包含在应用中的所有dm路径的通信网。在TICCNET 中不同的 dm路径的数目可以是成千。简单路径将不具有与其相关联的虚拟存储器。
(4-ii)协议和CCP 所有协议由CCP (因果通信原语)序列定义,当执行这些序列时,使得与协议相关联的路径中的部件在它们之间交换信号,并且对接收的信号做出响应。 每个CCP具有格式X:x — Y,其中X和Y是在路径中嵌入的部件,并且X是信号。由CCP的串联定义协议,该串联具有格式x:Xl - Y:x2- Ζ,其中Χ、Υ和Z是相同路径中的所有部件, 并且X1和&是信号。由路径部件交换的信号在路径上行进并且最终建立用于消息传递或传输的上下文。协议中的CCP可以嵌入到其他编程语句中,如在具体实施方式
的部分1和 7所述。
如在具体实施方式
的部分1中描述,每个CCP的操作由路径部件中嵌入的 ndFSM(非确定有限状态机)定义。花费了大约25到50纳秒以100百万比特每秒存储器总线在2千兆赫兹CPU(硬件计算单元)执行在软件中实施的CCP。CCP也可以被实施为CPU 中的硬件机器指令。如果在硬件中实施,CCP执行将在2千兆赫兹CPU中花费不超过5纳秒。
(4-iii)调度延时的消除为了发送消息,蜂窝C首先在与一个它的端口 C. ρ相关联的虚拟存储器C. p. vM中写入要发送的消息。在C. p. vM中写入要发送的消息之后,蜂窝C 本身立刻执行也与端口 C. ρ相关联的协议C. p. protocol。C. p. protocol的执行使得信号沿着C. p. pathway行进。C. p. pathway可以是dm路径或sm路径。消息写和协议执行事件以相同方式发生,而不管哪种路径连接至端口 C. ρ。当执行协议时在路径上行进的信号最终将C. p. vM中的消息或者传递或者传送到期望的接收者。不具有虚拟存储器的路径将仅传递信号而不是消息至它的期望的接收者。
当执行协议时,蜂窝不使用在协议本身中没有定义的任何方法,蜂窝也不调用蜂窝外部的任何处理。在蜂窝执行的计算以创建和写入消息至虚拟存储器以及相同的蜂窝执行的计算以分派和传递消息/信号至它的期望的接收者之间不存在差异,除了定义这些计算的计算机程序的细节之外。这两个计算对于该蜂窝是严格私有的,并且完全独立于在其他蜂窝中发生的一切。因为只要蜂窝准备好发送消息/信号,由相同的蜂窝立即进行消息创建和消息/信号传输,完全消除了调度延迟。
(4-iv)同步延迟的消除通过保持交换信号的每个路径的硬件和软件部件总是彼此调谐来消除同步延迟。每个这样的部件将总是准备好接收和立即响应由路径中的其他部件发送的信号。这种调谐是使用具体实施方式
的部分1中描述的方法来实现的。调谐总地消除了在信号交换过稈中的同步延时。
(4-v)异步通信&序列缓存的消除任何蜂窝可以在它准备好发出和传递消息/ 信号的时候这样做。在通信的过程中既不阻碍消息发送也不阻碍消息接收。所有消息/信号交换是异步的。如在具体实施方式
中定义的,从不使用队列缓存来支持这样的异步消息 /信号交换,而是使用并行缓存机制,使用路径的虚拟存储器。
(4-vi)并行同步消息交换不同的峰窝可以同时仅执,行与不同路径相关联的不同协议,这总是真的。这是因为(a)每个蜂窝可以执行仅与附接于该蜂窝的端口相关联的协议,(b)每个蜂窝在任何时间仅执行一个协议,(c)每个端口可以仅附接于一个唯一的蜂窝,(d)没有路径可以在附接于相同蜂窝的两个端口之间传输消息,(e)连接至路径的消息发送和消息接收的父蜂窝在任何时间不能均执行与该路径相关联的协议,(f)由该路径上的代理自动调整多于一个连接至该路径的消息发送端口的由父蜂窝的路径的协议的同时执行,(g)路径(sm路径或dm路径)的协议的执行可以仅改变路径中部件的状态而不改变其他,(h)没有两个路径(sm路径或dm路径)共同共享任何部件,以及(j)每个蜂窝在它自己指定的CPU中运行,该CPU不与任何其他蜂窝共享。这些特征在一起保证了由不同蜂窝同时并行执,行协议而不相互干扰,由此使得能够在sm路径和dm路径二者中讲行并行消息传送,这样的并行同时消息传送的数目仅由应用中的不同路径的数目限制。
(4-vii)确保的高速并行通信在TICCTM-Ppde中通信的下面四个特征确保在几百纳秒或更少的范围内的等待时间进行高速并行消息交换(a)没有协议执行曾经由任何处理中断;(b)通过不同路径可以交换多个消息;(c)所有同步和调度延时可以被完全消除; 以及(d)在异步通信中不使用序列缓存。
如果在硬件中将CCP实施为在具有1千兆比特每秒存储器总线的2千兆赫兹计算单元中的机器指令,可以以几十纳秒通过sm路径交换点对点消息。根据每个端口组中端口的数目花费一百到三百纳秒经过sm路径进行从一组端口到另一组端口的组对组消息交换。可以在小于500纳秒(估计)加上信号传输时间中通过dm路径交换组对组消息/信号,在一个SMP中的消息发送端口组总是同步地将消息/信号传递到另一个SMP中的一个或多个消息接收端口组。在任意给定时间内在应用中同步发生的并行消息/信号传送的数目仅由应用的TICCNET 中不同dm路径的数目(其可以为上千个)加上在该应用的共享存储器环境中不同sm路径的数目(其可以为上万个)限制。
由此,不像RESTCLK[Das,19],TICC -Ppde能够在大量并行软件应用的共享存储器和分布式存储器环境下在蜂窝之间进行高速同时并行消息/信号交换,具有确保的消息传递。
5.自我调整和自我同步在TICCTM-PDde中由发送信号的路径中的代理自动调整和同步组对组通信和计算。每个组对组sm路径将一组总端口连接至一组功能端口。在端口组中没有两个端口属于相同蜂窝。sm路径仅包含一个虚拟存储器Μ。M具有附接于M的两个代理。一个代理连接至所有消息发送端口并且另一个代理连接至所有消息接收端口(见具体实施方式
的部分7,

图19)。组对组路径将由端口组发送的消息传递回到相同的端口组也是可能的(图17),这样的路径被称为在自我闭环路径。
在端口组中的端口的父蜂窝被称为蜂窝组。如图19所示,总端口组G的父蜂窝可以经过将G中的端口连接至F中的端口的路径将联合业务请求消息发送给功能端口组F。 与G中的所有端口和F中的所有端口相关联的路径的虚拟存储器被称为G. vM = F. vM。这个虚拟存储器保存由G中的端口发送的业务请求消息。仅在G中的端口的所有父蜂窝已经完成了它们各自的计算之后,路径中的代理分派G. vM中的业务请求消息,并且对G. vM中写入的联合业务请求消息做出贡献。这是分派调整,一旦被分派,在相同路径中的其他代理以在F中的连续端口之间在传递时间上不超过2或3纳秒来同步地将G. vM中的消息传递给 F中的所有端口。这是传递同步。答复消息由F中的端口的服务网联合地写入到相同的虚拟存储器F. VM0在路径中的相同的两个蜂窝再次执行从F到G的答复消息的分派调整和传递同步。我们假设,通常端口组可以包含一个或多个端口,我们使用符号P来指代路径。
彼此通信的蜂窝组中的蜂窝不参与分派调整和传递同步。在蜂窝组中的每个蜂窝与在该蜂窝组中的其他蜂窝并行地简单执行组对组路径的协议,只要蜂窝完成将要被发送的消息写入到路径的虚拟存储器中。在蜂窝组中的蜂窝的协议执行可以不都是同步发生, 因为由蜂窝执行的计算不是彼此同步的。在路径中的蜂窝调整它的并行协议执行并且确保仅一次将联合业务请求消息同步地传递给接收功能端口。在路径P中的代理还执行若干其他任务它们发送信号至连接至P的SMS (自我监控系统)的部件,从而指示这些部件安装与经过P发送的每个消息相对应的SMS中的消息分派和消息传递事件。此外,P中的代理实现数据安全性。仅当端口满足用于消息和端口的先验指定的安全条件时,代理将消息传递给端口。
由P的协议指定在P中的代理执行的所有动作。所有这样的动作由代理独立于连接至P的蜂窝组中的蜂窝执行。系统实施者不用必须对它们的程序指定调整和同步方法。 我们称这个为自我调整和自我同步(在具体实施方式
的部分1和7中描述) 蜂窝组中的每个蜂窝在它自己指定的CPU中运行,该CPU是不同的并且不与应用的任何其他蜂窝共享。当蜂窝组中的蜂窝处理被联合地传递给所有蜂窝的业务请求消息时,它们可能遇到彼此调整它们各自的计算的需要。它们通过彼此交换数据同时通过由保存业务请求消息的虚拟存储器提供的便签式存储器来对服务请求进行响应来进行调整。实施者应该并入由这样的蜂窝组中的蜂窝使用的方法、机制以通过使用便签式存储器交换数据来调整它们各自的计算。
在TICCTM-Ppde中的组对组通信在并行计算中实施并行自我调整的和自我同步的分支/接合操作。
6.有效的低粒度执行:TICC -Ppde的组织允许有效的高速执行,因为⑴消除了通信、处理和P线程(并行线程)管理、调整、同步、中断处理、数据包含的安全加强中的操作系统干涉;(ii)消除了在所有通信中的调度和同步会话的需要;(iii)非常低的通信等待时间;(iv)并行同时消息交换;(V)消除了异步通信中的序列缓存;(Vi)精确定时的程序和协议执行以及(vii)使用便签式存储器使得虚拟存储器组织可能进行最小存储器争用。因为通信的等待时间处于纳秒范围内,可以在大量并行计算中以几十到几百微秒量级的非常低的粒度来以好的效率(80%到100% )运行并行程序。
7.多核芯片的理想环境TICCTM-PDde引入若干编程概要,他们中的许多对于编程技术是新的。与概要相关的软件工具有助于建立可以在多样化的多核芯片中运行的并行程序。在下面的列表中分项说明概要在并行程序开发和多核芯片环境的执行中的角色以及与它们相关的工具。
概要1 蜂窝、端口和路径这些概要不是新的,但是它们在TICCTM-Ppde中特定的体现是新的。它们隔离和包含由在多核芯片中的每个CPU执行的计算,并且防止在由芯片中的不同CPU并行同时执行的计算之间的相互干扰。路径也隔离和保护消息,并且防止在芯片的不同CPU组之间并行同时交换的异步消息之间的相互干扰。提供工具以定义、安装和更新蜂窝和路径,管理至蜂窝的CPU分配、在分配的CPU中的蜂窝活动以及控制由CPU对虚拟存储器的访问。在TICC -Ppde中预先定义在任何并行编程应用中要被使用的端口和路径的子分类。实施者必须定义在TICC -Ppde中没有被定义的非常规端口和路径子分类。 在应用中使用的每个蜂窝子分类应该被实施者定义。
概要2 附接、调谐和代理仅附接的和相互调谐的应用/软件部件可以彼此共享方法和数据,并且彼此交换信号。这不仅实现了蜂窝、CPU和消息隔离,而且巩固了在使用计算的自我同步和自我调整,以及消息/信号交换。附接和调谐作为编程概要对于编程不是新的。软件代理的概念不是新的。然而,TICCTM-Ppde中的代理的特定特性对于TICCTM-Ppde 是唯一的。由TICC -Ppde从蜂窝和路径的定义自动地执行附接和调谐。实施者不用必须指定它们。在TICC -Ppde中预先定义在任何并行编程应用中可能使用的代理的子分类。 实施者必须仅定义在TICC -Ppde中还没有被定义的非常规代理子分类。
概要3 虚拟存储器在计算系统中将专用硬件存储器与硬件系统相关联是常见的。但是使用专用的虚拟存储器作为软件系统中使用的硬件存储器的软件概要的概念是新的。这个概念首先由Gopinath[21]引入(即使没有使用这个术语),并且下面后本发明的发明人适配,对于TICC -Ppde中的并行程序开发和执行进行一些实现。在编译或运行时间的过程中,真实的存储器被分配给虚拟存储器。虚拟存储器简化了使用多核芯片的并行编程以及多核芯片的设计。
虚拟存储器保存消息并且实现蜂窝/消息隔离。除了它们实现数据保护、数据安全之外,对处理和创建消息使用的方法提供执行环境,最小化存储器干扰(具体实施方式
部分6. 2),并且对于蜂窝组中的蜂窝便签式存储器以调整它们的动作。TICC -Ppde提供工具来定义、声明、安装和更新虚拟存储器。在TICC -Ppde中预先定义要在任何并行编程应用中使用的虚拟存储器的子分类。实施者仅必须定义在TICC -Ppd没有被定义的非正常虚拟存储器子分类。
如下面的特征4和特征7中所述,虚拟存储器使能在SMMC (共享存储器多核芯片) 中存储器组织的新方法,该方法简化了 SMMC设计并且改善了它的性能效率。在SMMC中的每个CPU由最小量的私有存储器实施,具有10千字到1百万字的范围内的尺寸,并且没有高速缓冲存储器或任何其他加速机制。然而,SMMC具有10千字到1千兆字的尺寸的范围的硬件共享存储器模块SMM的池。TICC -Ppd在编译时间或者在运行时间将SMM分配给应用中定义的每个虚拟存储器。在并行程序执行过程中,运行蜂窝的CPU被动态地连接至已经被分配给由这些蜂窝使用的虚拟存储器的SMM。当需要时,应用中的端口动态地调度并 CPU和SMM之间的这样的连接的建立和拆除。每个SMM仅可以同时服务约8到16个CPU。 这个组织极大地减小了在包含256或更多CPU的大规模SMMC中的存储器干扰,并且还有助于数据安全和保护。
概要4 =CCP和协议一个重要的概要是CCP(因果通信原语),其实际上使得所有其他概要的集成变为可能。在TICC -Ppd中使用CCP来定义通信协议,当执行时,使得信号在与这些协议相关的路径上行进。它们使得硬件/软件部件动态地和程序化地交换信号, 由此将它们隔离并且还使得它们能够彼此合作。CCP导出的信号交换同步、调整和管理异步软件/硬件部件,就像开始/完成信号同步、调整和管理异步硬件部件。在TICC -Ppd中预先定义在任何并行编程应用中要被使用的协议。实施者仅必须定义在Ticc -Ppd中没有被定义的非常规协议。
CCP消除了使用操作系统来管理硬件/软件交互、资源分配、处理/线程管理、中断处理、同步、协作和安全加强的需要。因为CCP本身可以是机器指令,CCP消除了 TICC -Ppd 中计算和通信之间的不同。执行计算的相同的蜂窝也执行所有需要的通信。不需要来自操作系统的支持以交换消息/信号,不需要监视器来管理处理/线程,不需要旗语[23,24]用于软件调整,并且不需要会合技术[10,12]用于软件同步。CCP的使用极大加速了通信并且自然地导致了 TICC -Ppd并行处理结构。使用CCP作为基本编程语言原语的概念对于编程技术是新的,并且将其实施为机器指令对于CPU的设计也是新的。
概要5 =TIP =TIP是线程交互协议。在实施中附接于蜂窝C的每个端口 C. ρ具有对其定义的TIP,C.P:TIP()。TIP执行下面的功能(i)它们通过应用中的端口之间的交互的概要规范有助于软件开发,并且逐渐将概要规范改进为最终规范。(ii)它们隔离来自每个蜂窝中的消息处理和消息构建计算的通信。(iii)隔离由不同蜂窝执行的并行计算。(iV) 在细化的不同级允许用于实施的基于模块化事件的ALLEOP模型的自动获取。(ν)使得在细化的不同级能够进行实施的系统的形式验证的ALLEOP的灵活使用。(vi)能够进行SMS (自我监控系统)组织。TICC -Ppd提供工具以定义、安装和更新在实施规范中的TIP,细化它们,并且从给定的规范在细化的每一级得到ALLEOP和迹线。作为编程概要,TIP对于编程技术是新的。存在一共10个不同种类的TIP。这是实施者的责任来以与TICC -Ppd中的 TIP定义格式一致的形式对于应用中的每个端口定义TIP,以及在正在被实施的应用中的 TIP的期望功能。
概要6 =M^ JlfflM^:如果总是在P: TIPO的评估完成之后开始q:TIP()的评估,并且仅在前一个q:TIP()的评估完成之后开始下一个P:TIP()的评估,则与在应用中任意两个不同端口 P和q相关的两个TIP,PTIPO和q:TIP()是周期同步的。端口 P和q可以属于应用中的任两个蜂窝;它们甚至可以属于相同的蜂窝。周期同步在应用中强加动作的调整(顺序)。TICC -Ppd提供帮助以周期同步与应用中的任意两个端口相关的任意两个TIP。
M^:属于不同蜂窝的端口的TIP,p:TIP()和q:TIP()是同步的,如果总是在相同时间开始它们的评估。TICC -Ppd提供帮助以同步与应用中的任意两个不同蜂窝的端口相关的任意两个TIP。
TICC -Ppd提供系统化的方法以将周期同步和同步引入到设计中,或者通过适当的TIP和路径的定义引入到实施中。TICC -Ppd还在细化的任何级提供方法以引入这些同步作为事后同步,不需要改变对该点完成的任何细化(具体实施方式
的部分6. 6)。我们将用于这样的事后同步的方法称为自组织同步方法。在TICC -Ppd中使用的所有同步和调整方法对于编程技术来说是新的,并且对TICC -Ppd是唯一的。
概要7 =CIP =CIP是蜂窝交互协议。CIP是与蜂窝的初始化过程一起在蜂窝的端口定义的所有TIP的集合。CIP指定了蜂窝周期地轮询它的端口的顺序。存在两种CIP 在端口上一旦感应到消息的存在就立即调用为该端口定义的TIP的那些CIP,以及根据蜂窝本地的排序规则将具有消息的端口放到排序的端口列表中,然后以端口在列表中出现的顺序通过执行端口的TIP主体对端口做出响应的那些CIP。也可能蜂窝立即响应于某些端口而不是首先将该端口排序然后将其他端口排序。
每个CIP与在唯一的CPU中与并行处理系统中的所有其他处理并行运行的唯一处理相关联。我们将参考这个CIP处理作为C:CIP()。C:CIP()在对其发送了消息的C的端口周期地执行TIP,继续它的操作直到它终止或暂停。110"4^(1将运行(:(1 ()的CPU分配给蜂窝C。此外,TICC -Ppd将每个蜂窝在它指定的CPU激活。CIP处理是TICC -Ppd并行程序执行中的唯一处理。它们的调度、CPU中的激活、暂停、重新开始、同步和调整都是由 TICC -Ppd完全管理而不需要使用操作系统。轮询以识别业务请求的接收并且以某种顺序对其做出响应的概念不是新的。在所有软件系统中广泛使用该概念。但是在CIP中的这个业务的特定体现对于TICC -Ppd是唯一的。
概要8 !!辺 皿:这以图形格式指定了在实施中使用的蜂窝、附接于蜂窝的端口间的路径互连。TICC 网络暗含地指定和实现了在应用中发生的并行计算动作的所有同步和调整。实施者有责任指定用于应用的TICC 网络。一旦完成该指定,实施者对于下述完全没有责任在应用正在运行时,在它们的并行计算程序中并入用于调整、同步或任意种类的并行计算的监控的任意设施。
TICC 网络提供了正确种类的概要以指定和分析并行程序执行的控制结构。就像数据结构概要能够以不同的数据结构定义运行相同的序列程序以优化序列程序,只要序列程序的结构与数据结构相匹配,TICC 网络结构能够以不同的TICC 网络运行相同的并行应用程序的集合,从而试验和优化并行程序组织,只要应用中的每个C:CIP()中的初始化例程与TICC 网络结构匹配。
使用图形表示以捕获系统的部件之间的交互的控制结构不是新的。但是使用基于 TICC 的并行软件系统的唯一解释的TICC 网络的具体体现是新的。
概要9 :ALLE0P和迹线这两个概要被定义和使用的方式是新的并目.对于 TICC -Ppde是唯一的。TICCTM-Ppde提供了工具以从实施规范中自动地得到ALLE0P,并且使用它们以使软件系统有效。迹线的概念本身来说并不是新的。术语迹线用于指代在特定轮的程序执行中发生的描述。不同的编程规程使用不同的句法结构或图形工具来指定迹线。 TICC -Ppde迹线具有唯一的特性它们不仅指定在特定轮的应用中所有发生的,还定义并行计算的语义。迹线从ALLEOP和动作的输入/输出特性中自动得到。动作可以是ρ线程 (并行线程),或者单独的程序语句或条件。TICC -Ppde提供交互地定义动作特性所必须的工具并且使用工具以自动地从ALLEOP得到迹线(具体实施方式
的部分2)。TICCTM-Ppde还提供使用从迹线中自动得到的ECT网络(时间特征表网络)来使实施的属性有效的方法。
概要10 :SMS、因果网和eb峰窝因果网是迹线的概要,它们仅包含在迹线中发生的通信事件的因果链。由TICCTM-Ppde的SMS(自我监控系统)与A的运行并行地建立应用 A的因果网,同时A正在运行。在应用A中的每个路径ρ中的代理发送信号至连接至路径P 的SMS的特定蜂窝,称为事件建立者蜂窝(eb蜂窝),同时信号沿着P行进。每个路径P由专用eb蜂窝服务。给定的eb蜂窝可以服务多个路径。由P的eb蜂窝接收的信号指示eb 蜂窝来在应用的增长的因果网中安装在P中发生的消息分派和传递事件。在由接收消息的端口的父蜂窝正在处理由P传递的消息的时候,eb蜂窝安装分派和传递事件。以路径上的信号传输并行地发生eb蜂窝的信令,并且以防止SMS事件的定时和应用事件的定时之间的干扰的形式,在由消息接收蜂窝完成的消息处理并行发生分派和传递事件安装。当SMS中的eb蜂窝正在建立增长的因果网时并行运行四个动作(i)在应用中运行的所有蜂窝的动作,(ii)在SMS中向eb蜂窝发送信号的路径中的代理的动作,(iii)在eb蜂窝以新的消息分派和传递事件更新增长的因果网时eb蜂窝的动作,以及(iv)分析增长的因果网的SMS 的ea蜂窝的动作(见下面的概要11)。
每个eb蜂窝使用运行eb的CPU的本地时间来确定在应用中何时发生给定的消息分派和传递事件。因为运行eb蜂窝的所有CPU的本地时间与标准的全球时钟同步,所以通过eb蜂窝与因果网中的事件实例相关联的所有定时将与相同的全球时钟同步。运行应用中的其他蜂窝的CPU可以使用既不与全球时钟同步也不彼此同步的不同本地时钟。
应用实施的规范自动地定义应用所需的SMS结构。TICCTM-Ppde自动调用和使用对于应用这样定义的SMS以动态地监控应用的每次运行。应用实施者不用必须写任何程序以对此进行帮助。在分布式存储器计算网格中由TICCNET 互连的每个SMMC (共享存储器多核芯片)X将具有它自己独特的本地SMS,X =SMSO。由X =SMSO建立的因果网将驻留在本地共享存储器X中。当需要时,使用TICCtm-GUI (图像用户接口),TICC -Ppde可以在分布式存储器计算网格的不同SMMC中集成因果网并且限制在给定蜂窝中心的或应用中的端口的它的任何部分。
概要11 =SMS和ea蜂窝=SMS使用特定的蜂窝,称为事件分析器蜂窝(ea蜂窝)来在每轮应用中正在创建因果网时,持续地监控增长的因果网。按照条件1中的定义,目标是
44识别和报告在增长的因果网中的错误和未决的错误』a蜂窝也可以监控因果网以识别在因果网中的先验定义的事件模式的发生,并且发布告警。肪蜂窝通过使用CCP交换信号来与 ea蜂窝通信,从而以ea蜂窝执行的因果网分析来调整它们自己的因果网更新。SMS是部分 TICC -Ppde并行程序执行机制。
爐在TICC -Ppde并行程序开发、有效、执行和自我监控中使用的所有上述编程概要和方法对于TICC -Ppde是唯一的。概要和方法一起提供所需的工具以安装和管理并行程序中的概要的实例并且正式建立可以在与TICCNET 集成的各种多核芯片中运行的验证的并行软件系统。
8. TICCa-Ppde 的显著特征 特征1 集成的环境:TICC -Ppde执行对蜂窝的CPU分配、在分配的CPU中的蜂窝激活、并行处理管理,P线程(并行线程)管理、通信、中断管理、安全实现、同步和调整, 而不用调用操作系统或任何其他部件来执行这些蜂窝的任何部分。在当前的原型实施中, TICC -Ppde仅使用用于存储器管理、高速缓存管理和对次级存储设备的访问、输入/输出和因特网访问的操作系统。如在特征4中所述,高速缓冲存储器和通常用于CPU设计的所有其他种类的加速技术可以在被用于运行TICC -Ppde程序的SMMC (共享存储器多核芯片) 中被完全分配。当前由操作系统向TICC -Ppde提供的所有服务可以被并入到TICC -Ppde 本身。由此,TICC -Ppde提供集成的并行程序开发、验证、执行和运行时间监控环境,其完美地适于开发、验证、运行和监控SMMC中或由若干SMMC构成的计算网格中的并行程序。
特征2 =TICCia-GUI =TICCtm-GUI显示了在给定蜂窝固定的TICC -网络的段、在给定端口或蜂窝固定的ALLEOP的段、以及在给定端口或蜂窝固定的因果网的段的图形表示。 在具体实施方式
的部分中仅出现TICC -网络显示的例子。TICCtm-GUI提供帮助以检查在应用中任意蜂窝的状态,同时在响应于接收的业务请求GUI轮询蜂窝状态的时间点运行 TICCtm-GUI0实际上不可能在与进行显示请求的时间请求精确一致的时间点显示蜂窝的状态。然而,可以设置断点并且当发生某个事件时显示状态。然而,将这样的断点引入应用A 将改变在A中发生的事件的定时。由此仅可以在测试模式使用断点。GUI对文档系统实施和动态系统监控是有用的。TICC-GUI是TICC-Ppde的完整部分。
特征3:任意可升级性只要由升级引起的交互开销是小的,当与程序执行时间相比,在TICC -Ppde中的并行程序是任意可升级的。TICC -Ppde并行程序的独特之处是可相关于TICC -网络的结构来精确定义交互开销。假设N是蜂窝和路径的TICC -网络,并且nmax(N,C)是在任意轮询周期中N中由蜂窝交换的消息的最大数目。假设Iimi(N)是在 Ninmax(N) =MaximumInmax (N,C) C e N}中对于 C 的所有 nmax (N,C)的最大值。假设 ν (N)是网络N中蜂窝的数目,并且假设N’是具有v(N’ )蜂窝的N的升级版本。那么用于任意可升级性的要求是nmax(N’)是独立于升级因子α = [ν (N')/ν (N)J0如果条件满足的话,α 的值将达到百万。这主要是说每个蜂窝的通信和调整开销不应该随着升级因子的增加而增加。
特征4:消除高速缓冲存储器和加速技术可以分配高速缓冲存储器用于运行 TICC -Ppde并行程序。在我们的原型实施中,我们发现了更大程度上是损害的高速缓冲存储器。通过小粒度执行,在高速缓存补充和高速缓存不连贯中浪费太多时间通常是个问题。我们必须更新主存储器中的数据以避免高速缓存不连贯。对于TICC -Ppde中的高吞吐量程序执行,不需要高速缓冲存储器。高吞吐量可以由蜂窝中的低粒度并行程序执行的任意升级所实现的。实际上对于TICC -Ppde中的高效率和高吞吐量不需要任一个通常的加速技术,例如多指令流执行[四]、预测未来调度[30]、流水线处理[31]和高速缓存的执行[32]。在TICC -Ppde中,每个CPU专门用于服务一个蜂窝,仅使用与该蜂窝相关的虚拟存储器。每个蜂窝在任意给定时间仅执行一个TIP并且TIP执行是不可中断的(部分5,具体实施方式
)。包括计算和通信的用于执行TIP时间可以是10到100微秒那么小。不存在同步、调整和监控开销。由此,在TICCTM-Ppde中不存在自然的上下文来有利地应用任意上述加速技术。这具有两个优点(i)简化在SMMC (共享存储器多核芯片)中的CPU设计由此增加在芯片中的CPU密度,以及(ii)能够以紧的边界进行事件定时预测。
特征5 诵i寸自我监控开发骀证的i十算和,物理t时系统的理想环境在给定边界中以精确定时的软件执行是建立计算机物理实时系统的必要和重要的需要。TICC -Ppde有助于软件系统的形式有效、使用SMS的自动自我监控,以及通过精确定义的边界预测事件定时。现在应该清楚的是TICC -Ppde提供理想环境来开发、有效和应用计算机物理实时系统等用于实例飞行器或空间飞行系统的自动导航、自动的多传感器应用、在军事车辆中的自动防御/侵犯协调或任意其他这样的时间关键的反映系统。它还被用于建立安全信息系统等医疗信息系统或智能信息系统或任意其他数据库系统。对于TICC -Ppde显著的最广泛使用的应用是具有SMMC的个人计算机系统,其确保私有性和保护不受到所有未授权的入侵和攻击。
特征6 动杰灵活件和移动件通过动态地改变路径连接并通过动态地引入新的蜂窝和路径,TICC -Ppde并行程序可以被动态地修改和更新。见专利US7210145B2用于在正常操作中使用具有很小或没有改变的老版本并行地本地测试新版本的蜂窝。通过将一个处理器中的虚拟存储器的整个内容转移到在分布式系统中其他存储器的其他虚拟存储器来实现分布式环境中的程序移动性。
特征7 需要的CPU特征在本发明中假设每个CPU将具有需要的特定应用以帮助允许它的本地时钟由连接至蜂窝的固定有限数目的端口(最多10或1 并行同步轮询。端口可以使得运行它的父蜂窝的CPU的时钟在消息传递给该蜂窝的时候通过发送CCP消息而被轮询,从而注册消息传递时间。可以在硬件中如下实施这个设施运行蜂窝C的CPU可以将它的当前时间持续广播给在蜂窝的端口 C. P的虚拟存储器C. p. VM中安装的特别指定的时间寄存器的集合,Rt(C. ρ) ( ‘T’用于‘时间’)。每个端口 C. ρ可以具有与其相关的额外的时间寄存器,称为传递时间寄存器Rd (C. ρ)。每次向端口 C. ρ传递信号时,在&((. ρ)中的当前时间被自动电波传送进入RJC. P)。由此,在RD(C.p)中的时间将标记在C. ρ中的信号传递时间。这个布置将建立到TICC -Ppde使用的所有CPU。不需要使用操作系统来执行这个任务的任何部分。
对于端口 C. p,使用方法C. p:timeStamp()来调用在C. ρ的这个时钟读取设施。应该注意到,不由时钟时间正在被读取的CPU,而是由允许将消息传递给C. P的蜂窝的CPU执行方法^?^!!!⑶切!!^^)。由此需要上述布置。每次将传递信号发送给应用中的任意端口 C. P (具体实施方式
的部分7)时调用该方法。不需要应用中的所有时钟同步。仅eb蜂窝的时钟应该均同步于公共全球时钟。在每个蜂窝中需要时钟的并行同步读取,因为消息可能被并行地同步传递给蜂窝的端口。
存在用于CPU的若干其他需要。在SMMC(共享存储器多核芯片)中的CPU应该被设计不具有高速缓冲存储器,而是具有大约10千字到1百万字尺寸的有限数量的私有存储器。每个SMMC应该具有在这样的模块的池中保持的硬件共享存储器模块的集合。我们将它们称为SMM(共享存储器模块)。每个SMM的尺寸可以在10千字到1千兆字的范围内。 每个SMM应该具有同时服务最多仅16个CPU(蜂窝组的最大尺寸)的容量。在编译时间和运行时间由TICCTM-Ppde将SMM分配给应用中的虚拟存储器,TICC -Ppde从给定的实施规范中决定要被分配给不同虚拟存储器的SMM的尺寸。当蜂窝给出到这些虚拟存储器的访问权时,运行蜂窝的每个CPU可以被动态地连接至被分配给此时由蜂窝使用的虚拟存储器的 SMM。可以使用CPU设计中的可编程逻辑网络来动态地将CPU连接至SMM存储器总线。
这个方案消除了将SMMC与多个千兆字尺寸的共享存储器集成(存在数据安全和存储器争用的问题)的需要。这里提出的方案显著地减少了运行时的存储器争用。此外,单个大的共享存储器的缺乏和具有用于共享的严格有限的容量的虚拟存储器的使用提供了增加的安全性、私有性和数据保护,因为(i)仅当端口满足对该消息和端口指定的先验指定安全条件时,每个代理将虚拟存储器中的消息传递给端口,以及(ii)在TICC -Ppde中的每个端口保护它的虚拟存储器中的消息,仅对它的父蜂窝并且仅当父蜂窝准备好发送消息或准备好响应于安全地传递的消息/信号的时候给出对它的虚拟存储器的访问权。此外, TICC -Ppde不具有中央调度机制,并且没有中央处理和方法激活目录(动态链接库)。这些特征在一起建立了对数据偷盗和系统破解的强大屏障。
第四部分
具体实施例方式1.因果通信原语(CCP)和RESTCLK路径的适配 为了方便和连续性,我们在这个部分描述在US专利No. =US 7,210,145B2,(发明人Chitoor V. Srinivasan)介绍的一些概念和机制,但是从不同的观点。在这个部分中我们还描述简单TIP (线程交互协议)、CIP (蜂窝交互协议)和简单通信协议的结构。
在硬件系统中,通常使用信号来控制、同步和调整硬件部件的活动。在同步硬件中,使用时钟信号,在异步硬件中,使用开始和完成信号。如在US专利No.,US 7,210, 145B2, Gopinath[21]首先提出了在软件/硬件部件之间有计划地交换信号,并且 [Das, 19]首先定义了在其上信号可以行进的共享存储器RESTCLK路径的结构。Gopinath 和Das使用短线程来发送、接收和处理信号,并且使用操作系统(OS)管理的时间分割的并发来实现它们的系统。使用由线程定义的信号交换机制来实现在共享存储器环境中的信息交换。使用例如以太网的网络设施来完成分布式网络上的通信[SpUrgeon,22]。
时间分割的并发线程调度和活动对信号交换引入了不确定性。不能在有界限的等待时间内传递消息并且常常丢失消息。TICC 适配并修改Gopinath和Das介绍的框架以在几十或几百纳秒范围内以有界限的等待时间提供确保的并行消息传递,用于应用以在 00(目标引导的)编程语言的情境下并行编程共享的存储器和分布式存储器系统。
以高速进行软件/硬件部件之间信号的确保的有计划交换允许软件直接控制该软件在硬件系统中的执行,同时保持部件隔离。在TICC 中,我们当前在共享存储器和分布式存储器环境中,对所有的通信、处理和P线程(并行线程)调度和活动、中断处理、数据保护、安全实施、同步、调整和自我监控进行上述处理。原型TICC -Ppde仅对存储器管理、分页、缓存和输入/输出使用操作系统。应该最终在TICC -Ppde本身中实现所有操作系统业务。
1. 1. CCP和有计划的信号交换 通过使用被称为因果通信原语CCP的新的编程原语在TICC 中有计划地指定硬件 /软件部件对之间的信号交换。每个CCP具有格式,X:x->Y,其中X是开始或完成信号,并且X和Y是软件或硬件部件。每种类型的信号可以具有为其定义的子类型。CCP类似于分配,因为其将信号分配给部件。但是与分配不同,信号分配的效果仅在一定延时之后出现。 在TICC 中,期望的效果最终是消息传递或者消息分派,由此命名为CCP。
使用CCP指定信号交换具有如下优势⑴仅作为分配,CCP可以自由地嵌入到其他编程语句中,由此能够在计算中进行有计划的信号交换;(ii)CCP可以被实现为CPU中的硬件机器指令;(iii)灵活地组织程序执行;(iv)消除通信和计算之间的区别;(V)对于共享的存储器和分布式存储器使用相同的协议调用格式;以及(iV)即使TICC 信号交换机制不同于RESTCLK[Das,19]信号交换机制,也可以仅以最小的改变来保持RESTC LK路径结构。
由2态或4态ndFSM(未确定有限状态机)实现每个CCP。仅对于在FSM的每个状态中对于所有输入没有定义状态转换,FSM是不确定的。在2千兆赫的计算机中使用100 兆比特每秒的存储器总线,花费大约25到50纳秒来执行在软件中实现的CCP。如果在硬件中实现为机器指令,在2千兆赫的CPU中,应该不超过5纳秒(估算)。
对于点对点的消息传送,仅使用CCP控制的四个2态ndFSM,对于在共享存储器环境中从一组蜂窝到另一组蜂窝的消息传送,根据在一个组中蜂窝的数目(第七部分)可以使用8个或更多2态ndFSM,并且在使用TICCNET 的分布式存储器环境中,对于类似的消息传送使用直到10个或更多2态和4态ndFSM。将SMS机制集成到消息传送中还需要两个2 态ndFSM (第七部分)。由此,如前所述,如果CCP被实现为硬件指令,则仅使用几十或几百纳秒用于点对点和组对组消息传送。
每个蜂窝在分配给自身的CPU中执行所有它自己的通信协议。通信被减少为由 ndFSM执行的Turing计算[Turing,20],并且变成由蜂窝执行的计算的完整部分。只要蜂窝的消息准备好,每个蜂窝立即通过连接至蜂窝端口的硬件/软件路径发送它的消息。不存在同步或调度延迟。由并行操作的蜂窝执行多个协议而没有相互干扰。然而,每个蜂窝可以在任何时间仅执行一个协议。这使得能够进行并行同步消息传送。所有的通信是异步的,并且不使用顺序缓冲器。
在读者可以看到如何从此直接得到发明内容中提及的优势之前,必须解释如何使得上述处理变得可能并且如何组织由每个蜂窝执行的计算和通信。
1.1.路径协议、TIP、消息传输和计算 蜂窝使用它们的端口经由与端口互连的路径来彼此交换消息。每个端口可以仅附接于一个唯一的蜂窝,称为它的父蜂窝(防止端口干扰),并且每个端口可以仅连接至一个路径(防止消息干扰)。存在三种端口 总端口 g,蜂窝通过总端口 g向其他蜂窝送出业务请求(类似于η微积分代理的输出端口 [Milner,7,8,9]),功能端口 f,通过功能端口 f从其他蜂窝接收业务请求并且对其做出响应(类似于η微积分的输入端口),以及中断端口 i,通过中断端口 i从其他蜂窝接收中断消息(对此没有η微积分的类似物)。总端口 2(黑体字用于分类的名称,普通字体用于分类实例)和功能端口是摘要分类,端口的子分类。中
48断端口是功能端口的子分类。每个蜂窝子分类应该具有至少一个每种端口。
每个端口持有通信协议以通过与其连接的路径发送信号。使用具有格式 X:x->Y:y->z的CCP的串联来定义该协议,其中X、Y和Z是路径中的分量,并且χ和y是信号。CCP可以出现在能够嵌入到其他编程语言语句中的协议。随着路径的改变而动态地更新协议。由执行CCP的相互作用的ndFSM的集合定义每个路径。仅端口的父蜂窝可以执行与该端口相关的协议。
路径和CSP通道在共享存储器环境中的路径仅包含软件部件,类似于CSP通道[Hoare,10-12]。但是与CSP通道不同,并且TICCTM-Ppde中的并行线程对应于CSP中的通信序列处理。路径(i)允许与时间同步的消息传递进行组对组的异步通信;(ii)在 TICC -Ppde中的相互作用的并行线程之间的数据交换机制没有被编码到并行线程;(iii) 路径仅发送信号;以及(iv)如果发送了消息,则路径包含虚拟存储器,该虚拟存储器保留消息和并行线程以建立和处理消息。在编译时间或运行时间过程中,将实际存储器分配给虚拟存储器。
在路径上行进的信号最终建立了如下情境在共享的存储器路径(sm路径)的情况下将虚拟存储器中的消息传递给预期的接收者,或者在分布式存储器路径(dm路径)的情况下发送给属于预期的接收者的其他虚拟存储器。对于每个sm路径,保持消息的虚拟存储器(如果存在一个)是对该路径唯一并私有的。类似地,对于每个dm路径,在该路径中的所有虚拟存储器对于该路径是私有的。没有路径可以使用另一个路径的虚拟存储器。与 CSP通道不同,路径不妨碍发送者和接收者。
我们参考作为Das路径的具有虚拟存储器的sm路径,因为它们是首先由 Souripriya Das [Das, 19]引入的。我们使用术语路径来指代sm路径和dm路径。
1.2简单sm路径 让我们首先考虑一些简单的sm路径。端口的父蜂窝执行在端口处的协议,从而通过与该端口连接的路径发送信号。当执行协议时,父蜂窝仅使用它的本地存储器,以及与路径分量相关的存储器。协议执行将不调用任何在协议之外定义的方法、线程或处理。由此操作系统(OS)不用于消息交换。

权利要求
1. 一种基于集成计算和通信技术TICC 的修改版本的集成并行程序开发和执行平台 ITCC -Ppde,美国专禾Ij US 7,210,145B2,发明人 Chitoor V. Srinivasan 教导了以下方法 方法(1. 1),对应用A实施并行计算机程序ITCCTM-Ppde提供从称作蜂窝的概要软件计算机单元间的交互的概要规范开始的对应用A实施并行计算机程序的方法,这组蜂窝和与其相关联的所有交互规范一起作为应用A的并行程序的概要设计,称作A:DESIGN(),逐渐将A:DESIGN()中的蜂窝和交互改进到它们的最终完整的改进实施,在改进的任何阶段应用A中的并行计算机程序被称作A implementation (),A: implementation ()中的所有蜂窝的集合被称作A ce 11 s (),A ce 11 s ()中的每个蜂窝仅通过消息交换与A ce 11 s ()中的其它蜂窝交互,每个蜂窝运行在自身专用的硬件CPU (硬件计算单元)中,该CPU不被A ce 11 s () 中的任何其他蜂窝共享;方法(1. 2),对于TICC -Ppde唯一的消息交换在TICC 并行编程范例与所有其他并行编程范例之间的差别在于TICC -Ppde管理A:cells()中的蜂窝间的点对点和组对组通信的方法,使得每个蜂窝自身能与在AdmplementationO中发生的所有其他这样的消息交互并行地传递它对它们期望的目的地蜂窝计算的消息,允许以最多几百纳秒级的可精密预测的等待时间将几乎即时保证异步的已同步消息发送到期望的目的地,假设2千兆CPU 且没有消息调度或同步会话的需求;方法(1. 3),形式验证A implementation ()在改进的各个阶段,包括A: DESIGN ()阶段中,TICC -Ppde自动产生直到改进阶段的基于事件的计算模型,该模型被称作ALLEOPs (允许的事件发生模式),A:DESIGN()的ALLEOPs被称作A:designALLEOPS并且在对于该改进的任何阶段的 A implementation ()的 ALLEOPs 被称作 A:ALLEOPS (),TICC -Ppde 使用 AdesignALLEOPS和A:ALLE0PS()来通过形式验证使在改进的任何阶段的设计和实施有效,形式验证的有效标准由用户指定作为因果时态逻辑(CTL)语言中的断言,TICC -Ppde 使用A: designALLEOPS或A: ALLEOPS ()来查找用户给出的CTL断言的有效性证明,在搜索证明期间与用户交互,用户在必要时提供额外的CTL断言来引导证明搜索;方法(1.4),通过使用TICCTM-Ppde SMS (自监视系统)的自动自监视来运行全面改进的A implementation ()与应用A并行地,A ALLEOPS ()还被TICC -Ppde用于全面改进的 A: implementation()的自动动态监视,用于A在其使用期限内运行时进行校正操作,以与应用A中发生的计算事件的定时几乎没有干扰地运行,识别并报告错误、未决错误以及先验定义的警报事件模式的发生,该动态监视由TICC -Ppde的通信机制中内建的SMS(自监视系统)自动完成;(方法1.幻,在大规模并行多计算机硬件系统中运行可任意升级的 A: implementation ()在任意大量CPU (硬件计算单元)中以80%至100%的效率运行可升级 A: implementation (),这样的 CPU 为,(i)在具有32或更多个CPU的SMP (共享存储器多处理器)中的CPU,SMP中的CPU使用A: implementation ()中安装的TICCTM-Ppde的软件共享存储器通信路径(sm路径)彼此通信,或( )在计算节点是具有32或更多个CPU的任意DMP (分布式存储器多处理器)中的 CPU, DMP中的SMP使用TICC -Ppde的硬件分布式存储器通信路径(dm路径)来彼此通信, dm路径嵌入在称作TICCNET 的局域网中,或(iii)在作为包含32或更多个CPU的SMP而实施的任意多核芯片中的CPU,该芯片中的所有CPU通过A: implementation ()中安装的软件sm路径来彼此通信,或(iv)在作为包含任意但固定数目的SMP的DMP而实施的多核芯片中的CPU,每个SMP 包含16至64个CPU,每个SMP具有自身私有的共享存储器,芯片中的不同SMP使用也与该芯片集成的TICCNET 中的dm路径来彼此通信,或(v)SCG (超级计算网)中的CPU,SCG中的每个计算节点是SMP或DMP,SCG包含任意但固定数目的这样的SMP和DMP,SCG中的SMP和DMP由局域TICCNET 中的dm路径互连。方法(1.6),使用相同的实施方法构建用于具有内置SMS(自监视系统)的实时信息物理并行软件系统的可升级CPPSS implementation (),该实施方法包括概要设计、连续的改进、通过在改进的每个阶段的正式验证的有效化、以及使用SMS的自动运行时间自监视;方法(1.7)使用相同的实施方法构建用于具有内置SMS(自监视系统)的异步硬件系统或嵌入式系统,该实施方法包括概要设计、连续的改进、通过在改进的每个阶段的正式验证的有效化、以及使用SMS的自动运行时间自监视;
2.如权利要求1所述的方法,进一步包括用于指定A:DESIGN()并构建A:TICC -网络的以下方法方法(2. 1),指定 A:DESIGN() :A:DESIGN()是 A: implementation()中的并行计算的控制结构的概要规范,ADESIGN()隐含地指定了应用A中的所有消息异步和调整以及在A 执行的计算中出现的动作和通信事件的因果链,ADESIGN()具有三个概要软件部件,(i) A:TICC -network(), (ii)A:TIPS()和(iii)A:CIPS (),这三个部件和 A:TICC -network() 中的路径描述如下(i)A:TICCTM-netWOrk()(此后称为网络)是具有节点和分支的图表,分支与节点互连, 图表的节点是A: implementation ()中的概要蜂窝且图表中的分支是与附接到网络中的蜂窝的软件通信端口(此后称为端口)互连的概要通信路径(此后称为路径),网络中的所有蜂窝的集合称作A:cells(),网络中的所有端口的集合称作A:p0rts(),网络中的所有路径的集合称为A pathways (),A ce 11 s ()中的每个蜂窝在其自身分配到的硬件CPU (计算单元)中试图与A:cells()中的所有其他蜂窝并行运行,网络中的每个蜂窝试图通过与网络中的其他蜂窝交换信息来执行计算,所述其他蜂窝通过端口经由连接到这些端口的路径而附接到该蜂窝,这里对蜂窝可以具有的端口的数目没有限制但没有端口附接到多于一个蜂窝,网络中的一些蜂窝从网络操作的环境接收输入,该环境自身在网络中由环境蜂窝代表,(ii)A !pathways 路径将附接到网络中的不同蜂窝的软件端口互连,端口由蜂窝使用来经由连接到它们的路径发送和接收消息,每个端口附接到仅仅一个唯一的称作该端口的父蜂窝的蜂窝,由此防止A:cells()中的蜂窝对端口的争用,每个端口连接到实际上一条路径,由此防止在并行消息传递期间消息干扰,许多端口连接到相同路径使得能进行组对组通信,每个端口连接到与不同蜂窝附接的路径,端口组是与相同路径连接的一个或多个端口的组,连接到相同蜂窝的两个端口不在端口组中,两个不同的端口组不包含共同的端口,路径使得能进行在连接到路径的端口组中的组对组通信,对于端口组可以经由连接到该端口组的自闭合路径发送消息到自身,在所有这样的组对组消息交换中,消息发送端口组总是将调整的联合消息从端口组中的端口的父蜂窝发送到消息接收端口组,来自消息发送端口-组的这样的联合消息总是与消息接收端口组并行地调整并同步传递,组对组通信中消息转发的调整和同步由路径中嵌入的代理自动完成,(iii)A:TIPS()蜂窝间的交互由概要线程交互原语(TIP)指定,每个TIP提供关于蜂窝如何感应传递到其任意一个端口的消息、蜂窝如何处理传递的消息并响应传递的消息的概要规范,对于TIP可以产生对于A:TICCTM-netWOrk()中的其他蜂窝的计算,在计算之前从这些其他蜂窝收集响应并将该响应消息发送回去,A:cells()中的每个蜂窝的每个端口具有对其定义的概要TIP,仅仅五种不同类型的TIP对于实施任何并行程序是必要的,蜂窝在其任一个端口感应消息总是使该蜂窝通过执行在该端口定义的全面改进的TIP、扩展 A:TICC -network()中的几个其他蜂窝的计算、必要时收集来自A:TICCTM-netWOrk()中的蜂窝的响应来计算响应消息,从而处理并响应该消息而不失败,传递到蜂窝的每个端口的每个消息由该蜂窝不失败地感应,由蜂窝在其任何一个端口接收到的每个服务请求消息被该蜂窝不失败地响应,蜂窝执行的计算由此由消息接收驱动,ADESIGN()中定义的所有概要TIP的集合称作A:TIPSO,(iv)通过循环地执行在附接到C的端口定义的TIP而由每个蜂窝C执行计算,在C的端口定义的TIP称作C:TIPS(),由每个蜂窝执行的循环计算再次由蜂窝交互协议(CIP)以概要形式指定,对蜂窝C定义的CIP称作C:CIP(),且对A:DESIGN()中的蜂窝定义的所有 CIP的集合称作A CIPSO,至此为止所有规范都是概要的,概要的规范仅仅识别A:DESIGN()中使用的方法和条件的位置占有者,A:DESIGN()还隐含地指定了在A:cells()中的蜂窝间的消息交换的调整和同步,以及在应用A运行时可能在应用A中发生的动作事件和通信事件的因果链;方法(2. :3),sm路径的结构传递消息的每个sm路径(共享存储器路径)S具有S中嵌入的称作虚拟存储器M的唯一软件存储部件,sm路径中嵌入的该虚拟存储器M称作S. vM, 没有两个不同的sm路径使用相同的虚拟存储器,虚拟存储器在定义sm路径期间被声明, 真实的存储器在编译或运行时间期间被分配给虚拟存储器,S. vM保存被传递到连接到S的一个或多个端口的端口 -组中的端口的消息,S. vM还保存由连接到S的端口的父蜂窝写入的消息,此外,S. vM保存计算机程序代码来处理S. vM中的消息并通过连接到S的端口的父蜂窝将新消息写入到S. vM中,每个S. vM具有与其附接的软件代理,没有代理附接到多于一个的虚拟存储器,附接到S的所有代理的集合称作S. agents, S. agents中的代理被S用来路由、调整和同步经由路径S的消息转发以增强消息的安全性,并且被S用来驱动运行 ITCC -Ppde的SMS(自监视系统)的机制,每个端口通过连接到与S. vM附接的一个唯一代理而连接到S,与S. agents中的任一代理连接的所有端口构成端口-组pG,对于端口-组可以包含仅仅一个端口,PG中的不同端口附接到不同蜂窝,在任何端口-组中没有相同蜂窝的两个端口,不同端口 -组连接到S. agents中的不同代理,C. ρ是pG中的附接到蜂窝C 的端口,连接到 C. ρ 的路径 S 称作 C. p. pathway, C. p. pathway = S,并且 C. p. pathway 的虚拟存储器称作C. p. vM,C. p. vM = S. vM = Pg. vM,pG中的所有端口具有与其相关联的相同虚拟存储器,没有两条路径曾连接到相同端口,与相同蜂窝附接的两个端口 C. ρ和C. q不连接到相同路径除非[C. p,C. q]属于被称作蜂窝的端口矢量的端口的矢量,每个端口 C. ρ仅仅对其父蜂窝C给出了对pG.Vm = (^.僅中的数据和方法的访问权丄沈118()中除了连接到路径S的端口的父蜂窝之外的其他蜂窝不能访问S. vM中的数据和方法,路径中交换信号的部件被彼此调谐,该调谐使得路径中的各部件能总是准备好接收和立即响应由路径中的其他部件发送到它的信号,由此很大程度地加速了消息转发,每个端口 C. ρ在建立连接时自动调谐到与其连接的代理,与C. p. vM附接的代理和交换的信号同时也被彼此调谐,同时在C. ρ被调谐到与C. ρ附接的代理时C. ρ及其父蜂窝C被调谐到C. p. vM,在路径连接到其端口时这些调谐自动发生,S ports ()的联合即连接到S的所有端口的集合、以及S agents 即S和S. vM中的所有代理的集合称作路径S的部件,sm路径中的所有部件是软件部件,没有两个sm路径曾共享共同的任意部件,由此消除同时并行消息转发期间的消息干扰,具体实施方式
中的图1、17、19和23分别示出了点对点、自我闭环、组对组以及环路径,具体实施方式
中的图1和3描述了不具有虚拟存储器的sm路径,这样的sm路径仅仅交换信号而非消息,ITCC -Ppde提供用于在A:TICCTM-netWOrk()中安装并修改sm路径的方法;方法(2. 4),dm路径的结构在具有简要描述的附图的列表中的图M中描述了 TICC 中的dm路径(分布式存储器路径)Di的结构,0彡i < N,Di连接到SMP中的端口组pGi(l,分布式计算网络的SMP[j]由η个SMP构成,0彡j <N,SMP[j]中的指数j是pGi(1中的下标i 和0的函数,写作j = f(i,0),SMP[j]由此被写作51^[€(1,0)],路径01将51^[€(1,0)]中的端口组PGitl连接到相同分布式计算网络的其他不同SMP即SMP [f (i,k)]中的其他端口组 pGik,l 彡 k < Hii < n,f(i,k) Φ f(i,0),每个 SMP 即 SMP [f (i,k) ],0 ( j < Hii,在其本地共享存储器中具有虚拟存储器PGik. vm, dm路径Di中的所有虚拟存储器的集合称作Di. vns,并且虚拟存储器 PGik. vm 也称作 Di. vms [k],Di. vms [k] = (Di. vm[k] 0 ^ k < mj ,存在附接到每个虚拟存储器Di. vms[k]的两个虚拟存储器pGik. vm, a0[i, k]和&1[ , k], a0[i, k]是软件代理且ai[i,k]是硬件代理,pGik中的所有端口连接并调谐到软件代理iiji,k],ai[i,k] 连接到硬件信号和Di的数据线,由此硬件信号和数据线将如所述图M中所示的所有代理 [i,k]互连,0彡j <1^,从而将51^[€(1,0)]中的路径片段[ ‘<-> [士沽]<-> [士, ] 链接到所有路径片段Ia1 [i,k] <->a0[i, k] <->pGi0 i彡k < mj的集合,片段[pGi0<->a0[i, k]<->ai[i, k]]称作消息发送探测器,片段 Ia1Ei, k]<->a0[i, k]<->pGi0|i ^k<mj 称作消息接收探测器,每个SMP具有多个消息发送和消息接收探测器来将其连接到TICCNET , 得到的dm路径写为Di = [pGi0<->a0 [i,0] <->&1 [i,k] <-><-> {[ [i,k] <->a0[i, k] <->pGik] 1 ^ k<mj]端口组PGitl通过探测器[pGi0<->a0[i,0]<->ai[i, k]]并经由连接到 [i,0]的硬件信号和数据线将消息并行地广播到集合{[ai[i,k]<->a0[i,k]<->pGik] 1彡k < mj中的消息接收探测器中的代理 [i,k],消息接收探测器将该消息同时传递到每个端口组PGik,端口组{pGiklKkSmJ将响应消息以复用模式一个接一个顺序地发送回PGitl,没有两条dm路径共享共同的部件,在TICCNET 中存在数千个这样的不同dm路径Di, 0 ^ i <n> 1000, TICCNET 提供动态安装和拆除这样的dm路径的机制,每个安装的dm路径保留在TICCNET 中直到其被拆除并安装了新路径,TICCNET 中的所有dm路径能无彼此干扰地同时并行地交换信息,TICCNET 提供具有500纳秒级的等待时间加信号传送时间的确保高速并行消息传递,ITCC -Ppde提供在A:TICCTM-netWork()中安装dm路径、拆除已安装路径和/或修改路径的方法,在应用A中在其所有sm路径和dm路径中的所有代理的集合称作A: agents (),应用A 中的所有虚拟存储器的集合称作A virtualMemories (),应用A中的所有路径的集合c称作 A pathways ();方法(2.幻,虚拟存储器的结构每个虚拟存储器M包含四个部件,(i)读存储器M. rd, ( )写存储器M.wr,(iii)执行存储器Μ. ex,以及(iv)中间结果存储器Μ. scp,对于具有虚拟存储器 C. p. vM = M 的 C. p. pathway, C. p. rd = Μ. rd, C. p. wr = Μ. wr, C. p. ex = M. ex, C. p. scp = M. scp, C. p. rd被C. ρ的父蜂窝C使用来读取通过C. p. pathway传递到C. ρ的消息,C. p. wr被C使用来写入新消息并经由C. p. pathway将新消息发送出去,M的读/写存储器在消息传递前切换,C. p. ex被C使用来运行处理C. p. rd和C. p. wr中的消息并将消息写入C. p. wr的方法,对于端口组pG中附接到不同父蜂窝Ci和Cj的任何两个不同端口 Ci. ρ和Cj. ρ,Ci. p. vM = Cj. p. vM = pG. vM = Μ, M是该端口组中所有端口的共同虚拟存储器,Cj. p. scp ==pG. scp =M. scp是pG中的端口的父蜂窝使用的共同的中间结果存储器,M. scp由pG中所有端口 Ci. ρ的父蜂窝Ci使用来在并行地处理M中的消息时彼此交换数据,以调整它们各自的计算并发送回联合响应,M对M中驻留的所有计算机程序代码提供执行环境,ITCC -Ppde提供用于在路径中安装虚拟存储器并修改它们的方法;方法(2. 6),CCP和协议A: ports ()中的每个端口 C. ρ和每条路径C. p. pathway具有对其定义的称作C. p. protocol的软件协议,每个C. p. protocol包含对于ITCC -Ppde唯一的、在具体实施方式
的部分1. 1中引入的称作CCP(因果通信原语)的特殊编程基元的级联,每个CCP具有X:x — Y的形式,X和Y是蜂窝、端口或路径中的代理,χ是开始或结束信号,CCP的级联具有X:x — Y:y — Z的形式,X、Y和Z是相同路径中的所有部件且x、y是信号,对于每种类型的信号可以具有对其定义的子类型,C. p. protocol中的CCP的执行使得 C. p. pathway中的部件彼此交换信号,这样交换的信号通过C. p. pathway传播最终建立上下文,所述上下文使得C. p. vM中的消息传递到也与sm路径中的相同C. p. pathway连接的期望的接收端口,所述上下文使得C. p. vM中的消息经由硬件信号和dm路径中的数据线传送到期望的接收端口组的虚拟存储器,协议中出现的CCP可以以如具体实施方式
中部分1、 图3和4以及部分7、语句(7. 1)至(7. 4)中描述的其他编程语言语句,嵌入,ITCC -Ppde 中的协议不包含数据声明且它们所有都包含CCP,C. p. protocol仅仅由端口 C. ρ的父蜂窝调用和执行,ITCC -Ppde提供预封装和编译的协议以经由能在ITCC -Ppde并行程序中使用的所有类型的路径来交换消息,实施者具有责任来以与ITCC -Ppde中使用的协议定义格式一致的方式仅仅定义应用A中可能必须的与众不同的协议,ITCC -Ppde提供用于定义使用CCP的协议的方法;方法(2. 7),调谐路径中的部件C. p. pathway中连接到蜂窝C的任何端口 C. ρ的部件交换信号以将虚拟存储器C. p. vM中的消息传递到它期望的接收者,C. p. pathway中的部件总是彼此调谐,调谐使得C. p. pattway中的部件总是准备好接收和立即响应由 C. p. pathway中的其他部件发送的信号,调谐消除了对信号交换期间的同步会话的需求,由此很大程度加快了消息交换,在将C. p. pathway连接到C. ρ时在ITCCTM-Ppde中自动完成将端口 C. ρ调谐到C. p. pathway中的部件,将C. ρ调谐到C. p. pathway中的部件使得C. ρ 的父蜂窝也调谐到C. p. pattway中的唯一的虚拟存储器C. p. vM,对于应用A的实施者不必调谐路径中的部件或经由路径调度或同步消息或信号交换,在TIP执行期间自动完成经由路径的调度信号交换,由协议中的CCP自动完成路径部件间的调度信号交换,由路径上的代理完成调整消息分派和同步消息传递,路径中的代理还管理用于在消息传输期间驱动 ITCC -Ppde的SMS并增强安全性的信号交换机制,如具体实施方式
的部分7中所描述,用于驱动SMS的所有调谐、调整、同步和支持是所有ITCC -Ppde协议的内置特征,在将路径安装并将连接到其在A: implementation()中的各自的端口时,由ITCC -Ppde自动使所有这些能力成为可能,实施者无需做任何事来实施、或调用和执行在任何应用中的任何已安装路径的任何这些特征,ITCC -Ppde提供用于在概要路径中安装路径部件并将这些部件彼此调谐的方法;方法(2. 8),数据保护和并行缓冲端口组中的每个端口 C. ρ允许它的父蜂窝访问并使用它的虚拟存储器C. p. vM,当且仅当所述父蜂窝感应到传递到端口 C. ρ的消息或感应到端口 C. ρ准备好将消息发送出去,在必要时,端口矢量Cn= [C. P1, C. p2,…,C. pn]中的附接到相同父蜂窝的多个端口向父蜂窝C给出对所有虚拟存储器C. Pi. vM的同时访问权, l^i^n,由此端口允许他们各自的父蜂窝仅在需要时访问虚拟存储器,对于连接到路径的消息发送端口的父蜂窝和消息接收端口的父蜂窝,不可以都同时使用该路径的虚拟存储器,对于所有未连接到路径的任何父蜂窝,也不可以访问该路径的虚拟存储器,由此防止虚拟存储器中的数据被未授权地访问和使用,由此还防止虚拟存储器中的数据的损毁且保留每个虚拟存储器中数据直到所述数据被它们期望的用户使用,从而AdmplementationO 中的虚拟存储器提供保护的并行缓冲,支持A: implementation ()中的所有异步并行通信, 可以设计尺寸范围在10兆字节至1千兆字节的独立硬件共享存储器模块并在编译或运行时间期间动态地将所述模块分配给虚拟存储器,仅在蜂窝的端口对它们的父蜂窝给出了对虚拟存储器的访问权时动态地将运行该蜂窝的CPU连接到虚拟存储器,这样的存储器结构对应用中的所有数据和软件提供了本质的安全性,私密性以及保护,在系统的最底层构建私密性和保护,ITCC -Ppde由此提供了用于任何应用中的自动数据保护的方法;方法(2. 9),确保高速并行通信以软件实施的CCP用25至50纳秒来在2千兆赫兹的CPU中执行,这可以将CCP实施作为CPU中的机器指令,作为机器指令实施的CCP仅用大约5纳秒来执行,经由sm路径的点对点通信要求最多仅仅6个CCP执行(包括驱动SMS的代理),经由sm路径的组对组通信根据每个端口组中的端口的数目要求用到14或更多个 CCP执行,经由dm路径的组对组通信根据连接到dm路径的端口组的数目要求30或更多个 CCP执行,协议执行不曾调用过在该协议自身中还未定义的任何数据、程序、处理或线程,这样的协议执行仅改变在该协议的路径中已经定义的数据而非其他,由此实际上是没有操作系统或任何其他监视系统可以调度、同步或执行任何协议的任何部分,协议执行在被执行时不曾中断,在C. ρ的父蜂窝C 一完成将要发送的消息写入C. p. vM就仅由C不中断地执行在A:portS()中的每个端口 C. ρ的整个协议C. p. protocol,消息传输的这样的自动立即调度、在交换信号的路径中的部件的相互调谐以及消除对异步通信中的顺序缓冲的需求使得能以最多数百纳米级的等待时间进行确保的非常高速保证瞬时异步通信,在通过2千兆赫兹CPU执行协议和CCP被实施作为机器指令时,sm路径和dm路径二者使得能进行同时异步并行消息转发,在应用中同时发生的这样的异步并行消息转发的数目仅由该应用中安装的不同路径的数目限制,这些数目处于数万或更多的范围内,TICC -Ppde提供了用于确保的自动高速并行通信的方法;方法(2. 10),与每个端口组中的一个或多个端口的组对组消息交换的自动调整端口组PG中的端口 Ci. ρ通过共同的组对组路径连接到另一端口组qG中的不同端口 Dy q,0彡i < η彡0,0彡j < m彡0,pG. pathway = qG. pathway,或者qG中端口的所有父蜂窝的集合D不同于pG中的端口的所有父蜂窝的结合C或者pG ε qG为真,每个Ci. p. pathway是 pG. pathway 中的一部分且每个 Dj. q. pathway 是 qG. pathway = pG. pathway 中的一部分, j< m,这些路径与具体实施方式
的图19或17中的图示类似或者与具有简要描述的图中的图M中的图示类似,端口组pG中的总端口 Ci. ρ的父蜂窝Ci彼此异步且并行地执行协议Ci. p. protocol以将联合服务请求消息m经由pG. pathway发送到qG中的端口 Dj. q,父蜂窝Ci在相同组对组pG. pathway上对Ci. p. protocol的同时异步并行的执行是由pG. pattway中的代理自动调整的,所述代理确保正确地一次将联合服务请求消息m从 PG中的端口同时异步并行地传递到qG中的每个端口,所述代理仅在端口满足对消息事先定义的安全条件时将该消息传递到该端口,所述代理还将信号发送到SMS (子监视系统)激活SMS来对经由pG. pathway传送的消息安装SMS中的消息分派和消息传递事件,组对组协议Ci. p. protocol在端口 Ci. ρ发出消息m后立即锁定端口 Ci. ρ,由此防止pG中的每个Ci. ρ 发出第二业务请求消息,仅在Ci. ρ从qG中的所有Dy q接收到对服务请求消息的联合响应消息m’时才允许pG中的每个Ci. ρ发送第二业务请求消息,此外要求每个Ci在Ci能发出第二业务请求消息之前在Ci. ρ感应对m’的接收,m’总是由qG中的Dj. q经由每个Dj. q接收服务请求消息m的相同的组对组路径qG. pathway ^ pG. pathway发回,ITCCTM-Ppde由此提供用于组对组消息交换的自动调整的方法;方法(2. 11),ITCC -Ppde路径的唯一性ITCCTM-Ppde提供用于以下6种路径能力的方法(i)所有路径能同时彼此并行地输送和传递消息而无相互干扰, ( )所有路径包含内置结构来驱动ITCCTM-Ppde的SMS (自监视系统),(iii)所有路径在一准备好消息后就异步地发送消息而在消息发送期间无需消息调度或同步会话,(iv)在每条路径中交换信号的所有软件或硬件部件总是彼此调谐,调谐使得每个部件总是准备好接收和立即响应从该路径中的其他部件接收到的信号,由此显著加速消息传递,(ν)每条路径从一个端口组中的端口的父蜂窝发送调整的联合消息并同步地并行传递该联合消息到相同端口组中的端口或也连接到相同路径的另一端口组中的端口,(vi)每条路径以数百纳秒级或更少的等待时间以对这些等待时间的精确预期的范围来对端口组中的端口提供确保的高速同步消息传递,假设2千兆赫兹CPU,ITCC -Ppde的这6种能力一起使得ITCC -Ppde路径唯一且与包括ITCC 中使用的路径在内的、所有其他计算机通信系统中使用的通信路径不同,ITCC -Ppde提供安装和使用具有以上述唯一的特性的路径的方法;方法(2. 12),定义A:cells()用于定义称作蜂窝的软件计算单元的收集的方法, A:cells()是应用A中的所有蜂窝的集合,每个蜂窝是一类蜂窝的实例,蜂窝的类是称作 Cell的顶级概要ITCC -Ppde类中的此后称作Cell-Subclass的子类,A:cells()中的每个蜂窝与A:cells()中的所有其他蜂窝并行地运行,每个蜂窝在对于该蜂窝唯一的指定的不同CPU (计算单元)中运行,没有两个蜂窝共享相同CPU,ITCC -Ppde管理所有对蜂窝的CPU 分配和蜂窝的激活以在它们各自分配的CPU中运行,蜂窝和通信路径被特定地设计来在多样性的多核芯片中在任意大的数目的CPU中有效运行,蜂窝还被特定地设计来在多样性的多核芯片中运行时间关键信息物理并行软件系统,ITCC -Ppde的设计、验证和自监视技术还用于设计、验证和运行任意异步硬件系统中的异步硬件部件,ITCC -Ppde蜂窝是ITCC 蜂窝的特定专业化,实施者有责任以与ITCCTM-Ppde中的Cell-Subclass定义格式一致的方式来定义应用A所需的所有ITCCTM-Ppde蜂窝子类(此后称作Cell-Subclass),ITCC -Ppde 提供方法来定义Cell-Subclass以及在ITCCTM-netWOrk()中安装蜂窝实例;方法0.8),定义六:?0汁8()软件端口附接到A: cells ()中的蜂窝,A: cells ()中的蜂窝使用与它们附接的端口来发送/接收消息,每个端口是一类端口的实例,端口的类是称作Port的ITCCTM-Ppde顶级概要端口中的此后称作Port-Subclass的子类,每个端口附接到A:cells()中的仅仅一个蜂窝C,C. ρ是附接到蜂窝C的任何端口 p,A:ports()是附接到A:cells()中的蜂窝的所有端口的结合,C:ports()是附接到蜂窝C的端口的集合, A:cells()中的每个C的每个C:portS()具有至少一个称作C. g的总端口、至少一个称作 C. f的功能端口以及至少一个称作C. i的中断端口,每个C. g是称作总端口的端口的子类的实例,C. g被C用来发出服务请求消息和接收返回的响应,每个C. f是称作功能端口的端口的子类的实例,C. f由C使用来接收和响应服务请求消息,每个C. i是称作中断端口的端口的子类的实例,中断端口本身是功能端口的子类,中断端口 C. i被C用来接收和响应从A eel 1S ()中的其他蜂窝接收到的中断消息,对于不由A eel 1S ()中的蜂窝运行的任何处理,不可能中断任何蜂窝的活动,ITCCTM-Ppde包含可能在任何ITCCTM-Ppde并行程序中使用的所有Port-Subclass的定义,每个端口是Port-Subclass的实例,ITCC -Ppde提供方法来定义Port-Subclass、安装端口实例以及将端口实例附接到蜂窝,实施者有责任以与 ITCC -Ppde中的Port-Subclass定义格式一致的方式来仅仅定义对于应用A是特定的但 ITCC -Ppde中还未定义的特殊Port-Subclass ;方法0.9),定义A:agents()用于定义软件代理的方法,代理附接到A = PattwaysO中的路径的虚拟存储器,每个代理是一类代理的实例,代理的类是称作Agent的ITCCTM-Ppde 的顶级概要代理类中的称作Agent-Subclass的子类,每个代理附接到称作该代理的父虚拟存储器的仅仅一个虚拟存储器,由此防止与A = PattwaysO中的路径的代理争用, A:agents()是附接到A = Pattways ()中的虚拟存储器的所有代理的集合,ITCC -Ppde 包含可能在ITCCTM-Ppde并行程序中使用的所有Agent-Subclass的定义,每个代理是 Agent-Subclass的实例,ITCC -Ppde提供方法来定义Agent-Subclass,安装代理实例并将代理附接到虚拟存储器,实施者有责任以与ITCCTM-Ppde中的Agent-Subclass定义格式一致的方式来仅仅定义对于应用A是特定的且ITCC -Ppde中还未定义的特殊 Agent-Subclass ;方法(2. 10),定义AwirtuaMemoriesO 用于定义称作虚拟存储器的软件对象, 每个虚拟存储器是一类虚拟存储器的实例,虚拟存储器的类是称作VirtualMemory的 ITCC -Ppde的顶级概要虚拟存储器类的称作VirtualMemory-Subclass的子类,虚拟存储器的每个实例唯一地与称作该虚拟存储器的父路径的仅仅一个sm路径关联,由此防止与A = PattwaysO中的sm路径的虚拟存储器争用,每个dm路径将分布式计算系统中的一组SMP互连,每个这样的dm路径包含与连接到该dm路径的SMP —样多的虚拟存储器,AwirtuaMemoriesO是A = Pattiways ()的路径中嵌入的所有虚拟存储器的集合, ITCC -Ppde包含可能在ITCC -Ppde并行程序中使用的所有VirtualMemory-Subclass的定义,ITCC -Ppde提供方法来定义VirtualMemory-Subclass,在路径实例中安装虚拟存储器实例以及将硬件存储器动态分配给虚拟存储器,实施者有责任以与ITCCTM-Ppde 中的VirtualMemory-Subclass定义格式一致的方式来仅仅定义对于应用A是特定的且 ITCC -Ppde 中还未定义的特殊 VirtualMemory-Subclass ;方法(2. 11),定义A = PattwaysO 每条路径是一类路径的实例,路径的类是称作 Pathway的顶级ITCC -Ppde概要类的此后称作Pattiway-Subclass的子类,共享存储器环境中的路径仅仅包含软件部件,这样的共享存储器路径称作sm路径,分布式存储器环境中的路径包含软件和硬件部件二者,这样的分布式存储器路径称作dm路径,术语路径用于指 sm路径和dm路径二者,应用A中的所有路径的集合称作A = PattwaysO,ITCC -Ppde对可能在并行编程中使用的路径提供了所有httway-subclass的定义,ITCC -Ppde提供方法来定义Pattiway-subclass,安装路径实例以及将路径实例连接到与A: ITCCTM-netWOrk ()中的蜂窝附接的端口,实施者必须遵照ITCC -Ppde中的Pattway-subclass定义的规则来仅仅定义对于给定应用是特定的且在ITCCTM-Ppde中还未定义的Pattiway-subclass ;方法(2. 12),定义 A:ITCCTM-network() :ITCC -Ppde 提供方法来安装 A:DESIGN() 中的Cell-Subclass的概要或全面改进的定义的蜂窝实例,这样安装的蜂窝实例属于 A: cells (),提供方法来安装Port-Subclass的概要或全面改进的定义的实例并将端口实例附接到A:cells()中的蜂窝实例,附接到A:cells()中的蜂窝的所有端口实例的集合称作A:portS (),提供方法来安装Pattiway-subclass的概要或全面改进的规范的实例并将它们连接到A:p0rts()中的端口,在应用A的设计中安装的所有这样的路径实例的集合称作A = PattiwaysO,Apathways ()中的发送消息的每个sm路径S具有唯一的实例,称作 ITCC -Ppde中的概要或全面改进的虚拟存储器实例的S. vM, S. vM是S中嵌入的虚拟存储器,每个dm路径D包含与该dm路径连接的每个SMP中的一个虚拟存储器,D中嵌入的虚拟存储器的数目等于连接到D的SMP的数目,D. vM是dm路径D中嵌入的所有虚拟存储器的集合,每条路径中的每个虚拟存储器具有附接到它们的、概要或全面改进的Agent-subclass 中的唯一的代理实例,附接到A = PattwaysO中的路径的虚拟存储器的所有这样的代理实例的集合称作A:agentS(),A:pathways()中的路径将附接到A: cells ()中的蜂窝的端口互连,每个端口连接到实际上一条路径中的实际上一个代理,A = PattwaysO中的任何sm路径S的部件是S:ports ()、S:agents ()和S. vM,A:pathways ()中的任何dm路径D的部件是D:portS()、D:agents ()和D. vM,没有两个不同的路径共享共同的部件,由此防止并行消息交换期间的消息干扰,A:TICC-netWOrk()(此后称作网络)是图形,该图形的节点为 A:cells()中的蜂窝且该图形的分支是A = PattwaysO中的将附接到蜂窝的端口互连的路径,ITCCTM-Ppde 提供方法来定义 A:ITCCTM-netWork();方法(2. 13),构建A:ITCCTM-netWOrk()对应用A定义称作配置器(或环境)的 Cell-Subclass的一个或多个区分的蜂窝,ADESIGN()包含每个SMP中的称作配置器(或环境)的Configurator的至少一个实例,根据来自应用A的用户的线索,配置器已被编程以在每个SMP中安装已定义A:ITCCTM-netWork()的启动子网,足以启动对该启动子网的蜂窝分配的CPU中运行的应用A,每个SMP中的启动子网中的蜂窝已被编程以使用它们各自的初始化程序来并行安装,部分A:ITCCTM-netWOrk()属于该SMP,ITCC -Ppde提供方法来安装该网络中的蜂窝、端口、代理、虚拟存储器以及路径的概要或全面改进的子类的所需实例,提供方法来将它们彼此连接、附接和调谐以满足所有ITCC -Ppde连通性规则,实施者有责任适当地编程蜂窝子类中定义的初始化程序,使得一旦使用每个SMP中的所述启动子网启动应用A时就正确地构建该网络,实施者同样有责任以防止在每个SMP中的并行网络构筑期间发生死锁的方式开发该初始化程序的计算机程序,该网络的并行构建由ITCC -Ppde 自动调整,ITCCTM-Ppde提供方法来构建已定义的A:ITCCTM-netWOrk();方法(2. 14),显示A:ITCCTM-netWOrk() ITCCtm-GUI (图形用户接口 )用于在显示屏幕上显示A: ITCCTM-netWork(),每个SMP具有自身专用的显示屏幕,对应用A打开ITCCtm-GUI 屏幕使ITCCtm-GUI在每个SMP的显示屏幕上显示应用A的配置器的图像,用户点击所显示的配置器的图像并从显示的菜单中选择安装选项,使得该SMP中的配置器安装足以启动运行该SMP的启动子网中的初始化程序的A ITCC -network 0的启动子网中的所有蜂窝和路径,每个启动子网中的蜂窝运行在由ITCCTM-Ppde分配给它的所述SMP的CPU中,由于启动子网中的蜂窝安装A:ITCCTM-netWOrk()中的其他蜂窝和其他路径,因此每个新安装的蜂窝自动由ITCC -Ppde激活以运行在所分配的所述SMP的CPU中,每个这样新安装的蜂窝执行自身的初始化程序以安装所述SMP中存在的所述网络中的另外的蜂窝和路径,由此该网络并行成长直到在所有SMP中构建了整个网络,实施者有责任以避免冲突和死锁的方式定义该初始化程序使得正确构建所需的网络,ITCCtm-GUI在每个SMP中显示已安装的网络或显示在用户指定的蜂窝上锚定的该网络的一部分,在通篇具体实施方式
中描述了用于单个SMP中的小应用的这样的网络图像的例子,ITCCtm-GUI是ITCC -Ppde的内置子系统, ITCC -Ppde提供方法来显示任何应用A中的已安装A:ITCCTM-netWork()的任何部分;方法(2. 15),定义A:meSSageS()消息由A = PattiwaysO中的路径的虚拟存储器保存, 每条消息是一类消息的实例,消息的类是称作Message的ITCC -Ppde顶级概要消息类中称为Msg的Msg子类,Msg是指Message的任何Msg子类,每个Msg定义指定了 Msg的消息实例m中可能出现的Msg格式和数据格式,每个Msg定义还指定了用于处理消息和创建Msg 的新消息实例的方法,A = PattwaysO中的路径将Msg子类的实例传递到与A: cells ()中的蜂窝C附接的端口 C. p,对于应用A定义的所有Msg子类的结合称作Amessages (),实施者有责任以与ITCC -Ppde中的消息子类定义格式一致的方式定义应用A所需的所有Msg子类,ITCC -Ppde提供用于定义A:messages()的方法;方法(2. 16),定义Msg方法在与A:cells()中的蜂窝C附接的端口 C. ρ的 C. p. pathway中嵌入的虚拟存储器M是C. p. vM, C. p. vM的读存储器是C. p. rd,C. p. wr是写存储器,C. p. rd保存Msg子类Msg的消息实例m,短语C. p. msg ()是指消息实例m,C. p. wr 保存可能的另一 Msg子类Msg,的消息实例m,,C. p. wr:msg ()是指消息实例m,,运行C. ρ的父蜂窝C的CPU执行Msg子类Msg和Msg’中定义的Msg消息,执行存储器C. p. ex向Msg 子类中定义的每个Msg方法提供执行环境,Msg子类Msg和Msg’中定义的Msg方法和Msg’ 方法分别具有格式 Msg: <mn> ports 和 Msg, <mn,> (〈ports,>),其中 <mn> 和 <mn,> 分别是所述Msg方法和Msg’方法的唯一的不同名称,自变量〈ports〉和〈ports’ >中出现的所有端口 C. q附接到端口 C. ρ的父蜂窝C,运行C的CPU分别使用C. ρ <mn> ports 和 C.p:<mn'> ports' 来调用并执行C. p. vM中的各自的方法,这些方法使用仅仅在与蜂窝 C、端口 C. ρ和在〈ports〉或〈ports’ >中出现的其他端口 C. q相关联的以下部件中定义的数据和方法,所述部件是(i)蜂窝C,(ii)端口 C. p,(iii)虚拟存储器C. p. vM中存在的消息 C.p:msg()和 C.p.wr:msg(),(iv)自变量 <ports> 或 <ports’> 中出现的端口 C. q,以及 (ν)虚拟存储器C. q. vM中存在的消息C. q:msg()和C. q. wr :msg (),执行在任何Msg子类中或蜂窝C的Cell-subclass中定义的任何方法的任何蜂窝C能仅使用在连接到C的端口的路径中的附接到或调谐到C的其他软件部件中定义的数据和其他方法,调谐和附接是传递的对称的关系,该要求将每个蜂窝C与A: cells ()中的所有其他蜂窝隔离,与路径连接的消息发送和消息接收端口的父蜂窝从不同时使用该路径的虚拟存储器,ITCC -Ppde提供用于遵循以上给定的规则的Msg方法;方法(2. 17),定义A:pthreads():在任意Msg子类Msg中定义的Msg方法 Msg: <mn> ports 或类似已定义的蜂窝方法C: <mn> ports 称作pthreads(并行线程),因为这样的方法可能是用不超过10至100纳米来完成2千兆CPU中的执行的短的连续的计算机程序,Pthreads由A: cells ()中的蜂窝并行执行,对应用A定义的所有这样的 pthreads 的集合称作 A threads (), A: threads ()中的每个 pthreads 独立于 A: threads () 中的除了由端口组中的端口的父蜂窝在其共同虚拟存储器M中并行执行的pthreads之外的所有其他Pthreads,并使用M. scp来在所述pthreads的并行执行期间交换数据以调整它们各自的并行计算,TIP将pthreads与蜂窝间的所有其他通信隔离,实施者有责任全面改进A: implementation ()中的包含pthreads和Msg子类在内的所有概要软件单元, 然而A: implementation()的正式有效可能在A: implementation()的改进的任何阶段, ITCC -Ppde提供用于遵循以上给定的规则定义用于pthreads的改进的方法。
3.根据权利要求1或2所述的方法,进一步包括用于通过连续的改进来产生全面改进的 A: implementation()的以下方法方法(3. 1),定义称作TIP (线程交互协议)的编程概要ITCCTM-Ppde提供用于使用TIP 来定义A: cells ()中的蜂窝间的交互的概要规范,每个TIP在蜂窝C的端口 C. ρ定义,在端口 C.p定义的TIP称作C.p:TIP(),存在在附接到A:cells()中的每个蜂窝C的每个端口定义的C. ρ TIP (),对蜂窝C定义的所有TIP的集合称作C TIPS ()。对应用A定义的所有TIP 的集合称作A TIPS (),C. P TIP ()概要地指定了蜂窝C如何在其端口 C. P接收消息、处理接收到的消息和响应该消息,A:cells()中的蜂窝间的交互仅仅通过经由A:ITCC-netWork() 中的路径交换的消息而发生,ITCC -Ppde与其他类似的基于消息交换的系统之间的本质区别在于ITCC -Ppde管理通信的方法,ITCC -Ppde自身中的每个蜂窝传递所有消息而无需消息调度和同步会话,使用2千兆赫兹CPU以最多数百纳秒范围内的精确预计的等待时间来确保非常高速瞬时异步并行消息传递,仅需要5种不同类型的TIP来覆盖所有并行编程的需求,简单TIP具有格式,异步 TIP :C. PTIP () = C. P guard ? () {C. ρ: tip () ;}(C. 1)或,同步 TIPs :C. ρ:TIPO = C. ρ: guard ? () * {C. ρ tip () ;}(C. 2)C. ρ是附接到蜂窝C的软件端口,C. ρ连接到与称作C. p. pathway的路径的虚拟存储器 C. p. vM附接的实际上一个代理,C. p: tip ()称作TIP-body,在端口 C. ρ的Cp guard ?()或 Cp guard ? () *的执行称作由蜂窝C进行的端口的轮询,蜂窝C轮询其端口的顺序称作C 的轮询周期,简单TIP立即计算响应的例子是C. f:TIP() = C. f:mR ? () {C. f:r(). s () ;} = C. f:mR ? () {C. f:r() ;C. f:s() ;} (C. 3)C. g:TIP() = C. g:pR ? () {Cg:x().s() ;} = C. g:pR ? () {C. g:x() ;C. g:s() ;} (C. 4)在以下的方法(3.2)至方法(3.5)中描述了 TIP(C.3)和(C. 4)的解释,在通篇具体实施方式
中出现了各种TIP的许多例子,实施者有责任以与ITCC -Ppde中的TIP定义格式一致的方式对A:p0rts()中的每个端口定义C.p:TIP()以及应用A的期望的设计要求, ITCC -Ppde提供了定义简单TIP的方法;方法(3. 2)异步保护间隔语句(C. 1)中的C. ρ:guard ?()是具有格式C.p:mR () (,mR,用于,messageReady,)和 C. p:pR ? () (,pR,用于,pathwayReady,)中的一种的异步保护间隔,异步保护间隔是作为由ITCC -Ppde提供的内置计算机程序实施的条件,可使用于任何实施,实施者可自由定义他们自己的、对于未在ITCC -Ppde中定义的给定应用 A特定的保护间隔,保护间隔总是基于由应用A中的端口交换的信号或信号的子类型,异步保护间隔被A:cells()中的蜂窝C使用来轮询其端口 C. ρ以检查C. ρ是否具有传递到它的消息或C. ρ是否准备好发出消息,保护间隔返回真值true或false,仅在保护间隔返回真值true时才执行语句(C. 1)中的TIP-body C. ρ tip (),在保护间隔返回false时跳过 TIP-body,具有异步保护间隔的TIP称作异步TIP,ITCC -Ppde提供用于定义异步保护间隔的方法;方法(3. 3),同步保护间隔语句(C. 2)中的C. p: guard 0*是同步保护间隔,父蜂窝C仅在C. p:guard ? ()*返回true时执行ΤΙΡ-body,否则在端口 C. ρ等待,重复执行 C. ρ: guard ()直至 Ij C. ρ guard ?()氺返回真值 true,在 C. ρ guard ? 0 氺变成 true 时执行语句(C. 2)中的TIP-body然后进行轮询其下一个端口,同步保护间隔中出现的符号’ *’ 对ITCC -Ppde指示需要这种类型的计算机程序的重复执行来实施保护间隔直到保护间隔返回true,具有同步保护间隔的TIP称作同步TIP,ITCC -Ppde提供用于定义同步保护间隔的方法;方法(3. 4),在功能端口的简单TIP执行语句(C. 3)中的C. f是附接到蜂窝C的功能端口,C是端口 C. f的唯一父蜂窝,C是可以使用C. f的唯一蜂窝,C. f从一个或多个其他端口 C’. q接收联合服务请求消息m,C. f接收的消息m存储在虚拟存储器C. f. Vm ^ M的只读存储器C. f. rd中,虚拟存储器M嵌入在C. f. pathway中,短语C. f. msg () = C. f. rd. msg () 表示C.f.rd中的消息,传递到C.f的消息C.f:msg()由蜂窝C通过上述语句(C. 3)中的 C. ρ guard ? () *的评估来感应,评估返回真值true使得蜂窝C通过执行语句(C.幻中出现的 TIP-body C. f:r(). s() ;= C. f:r() ;C. f. s ()来响应 C. f:msg (),C. f:r ()出现在上述语句(C. 3)中,C. f:r ()(,r,用于“respond”)是由C使用来处理服务请求消息C. f :msg () 和在C. f. vM的写存储器C. f. wr中写入响应消息的pthread(并行线程),C. f. vM的执行存储器C. f. ex提供该TIP-body的评估的执行环境,实施者自由使用任何名称用于C. f:tip() 中的线程r(),实施者使用的名称捕获r()的设计目的,C.f的父蜂窝C在评估C. f:r()后立即评估C. f:s ()来调用和执行C. f. protocol以将C. f. wr中的响应消息立即发送到端口 C’ .q,C.f从该端口 C’ . q接收到其服务请求消息,该协议的执行使得在消息传递之前切换 C. f. vM中的读/写存储器,从而每个C’, q在读存储器C’, q. rd中接收在C. q. wr中写入的响应消息,也可以对C执行C. f:f()而不是C.f:s()从而将C. f. rd中接收的消息可能有些修改地传回到它的发送者,C. f:f()不切换读/写存储器,蜂窝C自己执行与端口 C.f关联的协议C. f. protocol来发出或转发该响应消息而无需消息调度或同步会话,ITCCTM-Ppde 提供用于执行在功能端口的所有类型的TIP的方法;方法(3. 5),在总端口的简单TIP执行语句(C. 4)中的C. g是蜂窝C的总端口,C是C. g 的唯一的父蜂窝,C是可以使用C. g的唯一蜂窝,总端口 C. g被蜂窝C使用来发出服务请求消息和接收响应消息,蜂窝C仅在C. g. pattway准备好发出如由保护间隔C. g:Pr ?()检查的消息时执行(C. 4)中的C. g:x(),C. g:x()是由C在C. g. vM的执行存储器C. f. ex中执行的线程的概要,C. g:x()被执行来计算、构筑以及在C. g. wr中写入服务请求消息,并且此后 C自身立即执行c.g:s()来调用和执行C. g. protocol以将C. g. wr中的服务请求消息发送到一个或者多个端口 C’. p,C. g. vM的读/写存储器在消息传递前被切换使得每个C’. ρ将服务请求消息接收在其读存储器C. p. rd中,对于C还可以执行C.g:f()而不是C.g:s()从而将C. g. rd中接收的消息可能有些修改地发回到它的发送者,而无需切换读/写存储器, 蜂窝C自身执行与端口 C. g关联的协议C. g. protocol以发出或转发该消息而无需消息调度或同步会话,ITCC -Ppde提供用于在总端口执行所有类型的TIP的方法;方法(3. 6),定义5种TIP:这5种TIP是⑴语句(C. 1)至(C. 4)中引入的简单TIP, ( )生成TIP,其生成A:cells()中的其他蜂窝中的计算以响应服务请求,生成TIP在具体实施方式
的部分4. 1和4. 2、语句(4. 1)至(4. 3)以及语句(4. 11)至(4. 13)中被引入,(iii)服务于在具体实施方式
的部分4.2、语句(4.8)至(4. 13)中引入的端口矢量的TIP,(iv)具有在具体实施方式
的部分4.4,语句(4. 14)和(4. 16)中引入的非决定性保护间隔和根据经验的保护间隔的TIP,(ν)在其TIP-body中包含在具体实施方式
的部分4. 5、语句 (4. 18)至(4. 23)中引入的其他嵌入的TIP的TIP,任何嵌入的TIP都可以是这5种TIP中的任何一个,因此对于以上所有种类的TIP可以以任何组合出现在单个TIP的TIP-body中, 这5种TIP是设计和构建任何ITCCTM-Ppde软件或硬件系统仅需的TIP种类,ITCCTM-Ppde 提供用于定义所有种类的TIP的方法;方法(3. 7),事务端口组gG中的端口 Ci. ρ通过Ci. p. protocol的同时调整的并行执行,同步地将联合服务请求消息m传递到端口组qG中的所有端口 Dy q,0彡i < n,0彡j < m,由每个Ci进行的Ci. p. protocol的并行执行由pG. pathway中的代理自动调整,每个端口 Ci. ρ在Ci开始执行Ci. p. protocol后立即被锁定,每个端口 Dj. q在Dj. q的父蜂窝Dj 感应到传递到Dj. q的消息时立即被锁定,由此防止第二业务请求消息发送到Dj. (1或0」.q接收到第二业务请求消息,端口 Dj. q仅在第一业务请求消息m已被处理且由父蜂窝Dj通过经由qG中的所有端口发送联合响应消息m’进行响应后才接收第二业务请求消息的传递,端口 Ci. ρ仅在父蜂窝Ci已经感应到由qG发送的联合响应消息后才发送第二业务请求消息, 每个父蜂窝Dj与端口组qG中的端口的其他父蜂窝并行地异步执行协议Dj. q. protocol以在相同的组对组路径qG. pathway ^ pG. pathway上发送响应消息m’,父蜂窝Dj进行的所述协议的并行执行由qG. pathway中的代理再次调整,所述代理对pG中的每个端口 Ci. ρ确保实际上一次同时传递联合响应消息m’,对于每个Ci,由父蜂窝Ci针对在端口 Ci. ρ接收的响应消息m’的感应构成在Ci. ρ发送它的业务请求消息m到~ q时开始的事务的完成,因此,A:p0rts()中的每个端口仅在连续的事务完成后才发送连续的业务请求消息,且类似地 A:ports()中的每个端口仅在连续的事务完成后才接收连续的业务请求消息,每个端口总是经由该端口接收它的业务请求消息的相同路径来发回响应消息,ITCC -Ppde提供用于所有并行事务的确保顺序完成而无相互干扰的方法;方法(3.8),定义事务的正确性4: 01^8()中的任何两个端口 ρ和q之间的事务被写作[p (Srmai)) ]<->[q(srm(t2))], [P(Srmai))]是由端口 P在时间、发送的业务请求消息,[q(srm(t2))]是由端口 q在时间t2发回的响应消息,除了在定时限制U^t1 ( τ_(ρ, q))为true之外,只有在关系式R(p, q) (srm U1),rm (t2))对于所有消息ρ (srm U1))和 q(srm(t2))也为true时才正确地执行所述事务,R(p, q)是对于端口对(P,q)特定的关系式的名称,τ_(ρ,q)是在ρ和q之间的事务完成之前可能发生的延迟的上界,端口 ρ和q 仅在正确地执行P和q之间的每个事务时才充分匹配,端口的充分匹配特性依赖于TIP即 P TIP ()和q TIP (),该充分匹配特性也是TICC -Ppde中的重要特性,该充分匹配特性在权利要求中提到多次,在设计时估计与事务相关联的定时和界限且在实施TIP中的pthreads 和条件实施后验证与事务相关联的定时和界限,仅在通过A:TICCTM-netWOrk()中的路径连接的所有端口对充分匹配时全面改进的A implementation ()才正确,TICC -Ppde提供了用于使A: implementation ()中的端口对的充分匹配特性的满足有效的方法;方法(3. 9),定义被称作CIP的概要由实施者对A: cells ()中的每个蜂窝C指定被称作C:CIP() (C的蜂窝交互协议)的计算机程序,C:CIP()指定蜂窝C的初始化程序,在C 启动时仅完成一次该初始化,并且该初始化指定了 C轮询它的端口 C. ρ并一个接一个循环执行C:TIP()中的C.p:TIP()的顺序,该循环轮询和TIP执行被称作蜂窝C的轮询周期,C 计算它的轮询周期,直到作为在C的其中一个中断端口从A:cells()中的其他蜂窝接收到中断消息的结果而C中断其操作或C暂停其操作,仅在C的轮询周期中的连续TIP执行之间暂停C,不可能在其执行期间暂停TIP执行,被暂停的C以后在下一个消息传递到C的任何端口时恢复执行,任何端口 C.p的C.p:TIP()的执行不与至C.p的消息传递同步,仅在 C. P于轮询周期中被轮询之前C. P已传递消息时才继续由蜂窝C轮询C. P,在一个轮询周期中遗漏的在C. P的消息被在下一个轮询周期中捕获,蜂窝C的每个C:CIP()与A:cells () 中的所有其他蜂窝C’的C’ :CIP()并行运行,每个蜂窝运行在其自身唯一的和不同的指定的CPU中,A:cells()中的不同蜂窝的轮询周期不必彼此同步,TICCTM-Ppde提供了如具体实施方式
的部分6. 6中所述的as hoc同步和调整方法,以在应用A的实施的任何时间点调整和同步A:cells()中的不同蜂窝的轮询周期而不必改变至该时间点的任何改进, A:CIPS()是A:cells()中的每个蜂窝C的所有计算机程序C:CIP()的集合,实施者有责任以与TICCTM-Ppde中的CIP定义格式一致的方式对A: cells ()中的每个蜂窝C定义C: CIP () 并定义A: implementation ()中的蜂窝C的期望功能,TICC -Ppde提供了用于定义CIP的方法;方法(3. 10),CIP的轮询周期中的两种可能的执行模式C. ρ在其被蜂窝C轮询时返回真值true,使得C跟随两个可能路线动作中的一个,所述两个可能路线动作是(i)立即执行TIP-body C. ρ: tip ()并响应于接收到的消息或(ii)将C. ρ插入到蜂窝C的分类端口表 sortedPortList中,通常基于以运行蜂窝的CPU的本地时钟表示消息传递时间的在端口的时间戳来完成分类,这样的时间戳是由传递消息到端口的协议进行的或者根据蜂窝C本地的任何分类关系进行的至端口的消息传递的时间的集合,在完成轮询和分类所有它的端口后,C对sortedPortsList中的每个C. ρ以C. ρ出现在列表中的顺序执行C. p:tip(),C. ρ 在其被蜂窝C轮询时返回真值false,也使得C跟随两种可能的路线动作中的一个,所述两个可能路线动作是(i)如果在C. ρ的保护间隔是异步保护间隔则跳过端口 C. ρ并立即前进到轮询其下一个端口,或(ii)如果在C. ρ的保护间隔是同步保护间隔则在端口 C. ρ等待消息达到,在消息达到后执行C. ρ tip ()然后前进到轮询其下一个端口,对于CIP还可以在 TIP的保护间隔返回真值true后立即执行在其一些端口上的TIP-body且将其他端口分类到sortedPortsList中用于后续执行,TICC -Ppde提供了方法来指定CIP进行的TIP的已分类/未分类和同步/异步;方法(3. 11),定义和使用端口组端口组是属于A:cells()中的不同蜂窝的端口集,没有两个端口具有共同的任何端口,端口组由将附接到不同蜂窝的不同端口的组连接到路径中的代理来定义,每个组对组路径中的代理在消息发送端口组中的端口的父蜂窝完成将它们各自的贡献写入联合消息后分派由所述父蜂窝联合写的联合消息,分派的消息被同步传递到消息接收端口组中的所有端口,因此在端口组中的端口之间的消息的派送和传递总是同步的,连接端口组的路径中的代理调整所述路径中的所有消息分派和传递,代理还调整 SMS(自监视系统)中的对应的消息派送和传递事件的安装,即使在接收到的消息是同步地传递到消息接收端口组中的所有端口时,消息接收端口组中的端口每个父蜂窝也在其自身的时间感应并响应所述消息,因此端口组在TICCTM-Ppde中提供机制来实施应用A中的并行处理的同步支路和结合,TICC -Ppde提供了机制来定义端口组并安装组对组路径,并提供协议用于在这样的路径上的消息交换,TICC -Ppde提供了用于定义和使用端口组的方法; 方法(3. 12),定义和使用端口矢量蜂窝具有对其定义的一个或多个端口矢量,每个端口矢量由附接到相同蜂窝的两个或更多端口组成,端口矢量中的所有端口是相同类型、 或者都是总端口,或者都是功能端口或中断端口,符号C. β用于指蜂窝C的端口矢量,C. β = [C. Pl, C. ρ2,…,C. Pk],k彡2,C. β的父蜂窝在它的每个轮询周期中轮询C. β中的端口,每个C. Pi连接到不同的路径C. Pi. pathway, 1 < i < k,每个C. Pi在每个轮询周期中彼此独立地通过从除C之外的不同蜂窝接收消息,1 < i <k,在每个轮询周期,父蜂窝仅在C. β的所有端口已接收到消息后才响应在端口 C. Pi接收到的消息,否则父蜂窝在该轮询周期中跳过端口矢量C. η中的端口 C. Pi,在端口矢量C. β的最简的TIP具有形式异步 C. β: TIPO = (C. P1 = HiR ? ()&C.p2:mR ()&...&... C. pk:mR ? ()){ Cr (π) ;C. P1IsO ; ··· ;C. pk: s () ;}(C. 5)或同步 C.n:TIP() = (C. P1 = HiR ? ()&C.p2:mR ()&...&... C. pk:mR ? ())*{ Cr (π) ;C. P1IsO ; ... ;C. pk: s () ;}(C. 6)其中C:r(n)是蜂窝C的私有存储器中定义并执行的pthread,C:r(n)使用在每个端口 C. Pi接收到的消息,1彡i彡k,接收到的消息存在于不同的虚拟存储器C. Pi. vM中, 1彡i彡k,每个C. TIPO无条件地响应于C. β中的每个端口,对于C. β: TIPO可以是该 5种TIP中的任何一种,在应用中使用端口矢量以实施并行pthread计算的异步支路和结合并实施如具体实施方式
的部分6. 6中所述的由蜂窝执行的计算的ad hoc同步和特征, TICC -Ppde提供了用于定义和使用端口矢量的方法;方法(3. 13),用于组对组事务A: implementation ()中的每条路径被连接到端口组pG 中的一个或多个消息发送端口的组合,gp中的每个端口属于不同的父蜂窝,PG中的所有端口被连接到组对组路径pG. pathway中的相同代理a0,pG. pattiway将pG中的端口连接到另一个端口组qG中的一个或多个其他端口的组,qG中的所有端口以类似于具体实施方式
中的部分7的图19中所示的方式连接到qG. pathway ^ pG. pattiway中的另一代理al,还可以是如具体实施方式
的图17中所示的PGE qG和a0 = al,所述路径总是仅分别在从消息发送端口组PG或qG到消息接收端口组qG或pG这一个方向上发送消息,端口组pG中的端口总是将联合业务消息发送到端口组qG中的端口,qG中的端口总是将联合响应消息通过相同的qG. pathway发回到pG中的端口,因此端口组pG和qG中的端口总是仅仅交换由端口组pG 或qG中的端口的所有父蜂窝联合写入和联合同步接收的联合消息,在pG. pathway ε qG. pattway中的代理自动确保在所述路径上的所有这样的联合消息的调整分派和同步传递, 代理还对由端口组pG或qG中的每个端口发送或接收的每条消息自动调整SMS(自监视系统)中的对应的消息分派和传递事件的调整安装,qG中的每个端口的父蜂窝在自己的一个轮询周期中的自身的时间感应并响应业务请求消息,不同蜂窝的轮询周期不必彼此同步或不必与消息传递时间同步,qG中的每个端口经由相同的路径qG. pathway ε pG. pathway回应PG中的端口,pG和qG中的所有端口具有与其相关联的相同虚拟存储器pG. vM = qG. vM, 在PG中的端口与qG中的端口之间的消息交换事务仅在pG中的端口的所有父蜂窝已接收并感应到qG中的端口的父蜂窝发送的联合响应消息时完成,当且仅当pG中的每个端口与 qG中的每个端口充分匹配时pG与qG充分匹配,因此TICCTM-Ppde提供了用于定义和使用充分匹配的组对组交互的方法;方法(3. 14),具有可预期定时的确保及时事务完成TICCTM-Ppde通过以下方式使得能在可预期的时间界限进行应用A中的每个事务的及时完成(i)确保没有蜂窝C曾遗漏感应传递到其任何端口 C. ρ的任何业务请求消息,(ii)在A:Cells()中的蜂窝C感应到在端口 C. ρ的业务消息的接收后,激活在C的每个端口 C.p的C.p:tip()的TIP-body, (iii)使得对于A: implementation ()中的或A: implementation ()外的处理或蜂窝在一旦C.p:tip()已被激活时就不能中断C.p:tip()的执行,(iv)确保由在任何端口 C. ρ的业务请求消息的接收启动的每个事务的完成,(ν)通过将CPU中的可能由于使用加速技术, 例如多指令流执行、预测未来调度、流水线处理和高速缓冲存储器执行,所导致的指令调度延迟消除,来确保可预期及时响应于在A:cells()中的每个蜂窝C的每个端口 C. ρ的每个接收的业务请求,这些加速技术对于在TICC -Ppde并行程序中获得高吞吐量是不必要的, 在TICC -Ppde并行程序中通过对小的增益大小并行处理任意缩放来实现高吞吐量,任意 C. p: tip ()的执行采用不大于10-100纳秒来完成,(vi)事务完成总是仅由TIP执行所导致的,(vii)事务调度和调整总是由对A:cells()中的蜂窝的轮询周期中的端口的排序和对传递到A:cells()中的端口的消息的排序自动导致的,(viii)事务同步总是由组对组事务中的消息传递的自动同步和具体实施方式
的部分6. 6中所描述的ad hoc同步技术的使用所导致的,(ix)A:implementation()中的所有TIP执行是自同步和自调整的,(χ)实施者有责任使用由TICCTM-Ppde对各种TIP提供的TIP格式来对A:ports ()中的每个端口 C. ρ仅定义C. p:TIP()以使得确信由路径连接的每对端口充分匹配,并且与TICCTM-Ppde中的CIP定义格式和每个C:CIP()的期望的功能一致地定义A:cells()中的每个蜂窝C的 C:CIP(), (xi)A:TICC -network()中的所有消息交换是自同步和自调整的,(xii)所有这些特征一起对A: implementation ()中的所有事务提供具有可预期定时的确保及时事务完成,TICC -Ppde提供用于确保及时事务完成的方法;方法(3. 15),调谐保存确保的且及时的事务完成接下来保持并确保A = PattwaysO中的每条路径中的部件的相互调谐,这些部件彼此交换信号,在消息传送期间在一个方向上由信号交换引起的路径的部件的状态改变使得该路径中的所有部件准备好在其他方向上的消息传送,并且在该其他方向上的消息传送将该路径中的所有部件的状态自动重新设置成如具体实施方式
的部分1. 2(F)中所述的、它们的充分调谐的初始化状态,由此总是确保 A implementation ()中的高速异步通信而无需同步会话,TICC -Ppde因此提供了用于自动调谐保存的方法;方法(3. 16),通过端口组中的端口的父蜂窝调整虚拟存储器中的消息的联合处理端口组PG中的所有端口 Ci. ρ总是具有同步传递到它们的相同的消息,且该消息存在于读存储器Ci. p. rd ε Pg. rd中,该消息和该读存储器是pG中的所有Ci. ρ共有的,pG中的端口的数目通常不多于10-20个,pG中的端口的父蜂窝并行地执行它们各自的Ci. ρ tip ()以处理并响应同步传递到所有它们的相同消息,PG中的每个Ci. ρ的父蜂窝响应在它的其中一个轮询周期中的其自身的适当时机接收到的消息,每个Ci. ρ的父蜂窝不必同步响应接收到的消息,然而,每个父蜂窝Ci与端口组pG中的所有其他端口的父蜂窝并行地在相同虚拟存储器 pG. vM = Ci. p. vM中执行Ci. ρ tip 0,虚拟存储器pG. vM = Ci. p. vM对端Π Ci. ρ的所有父蜂窝Ci提供共同的中间结果存储器pG. scp ε Ci. p. scp以在这样的并行Ci. p:tip()执行期间彼此交换数据,父蜂窝Ci通过在Ci. p: tip ()的执行期间通过pG. scp彼此交换所述数据来实现正确调整,实施者有责任对在PG中的端口 Ci. ρ的Ci. p: tip ()的pthread写计算机程序以使得这样的调整使用PG. scp,并且实施者有责任在必要的地方安装pthread锁定来保护共同共享的数据的调整的更新,由端口组中的端口的父蜂窝并行执行的这样的Pthread 仅是A pthreads ()中的可能相互彼此依赖的pthread,TICC -Ppde因此提供了用于通过蜂窝组中的蜂窝进行的调整的联合并行处理的装置;方法(3. 17),完成A: implementation ()用于通过A:DESIGN()中的概要TIP和CIP以及A:messages ()中的概要Msg子类的连续改进,来完成A implementation ()的方法,这样的改进由实施概要Pthread、概要条件和概要Msg子类的计算机程序组成,所有pthread遵照TICCTM-Ppde的规则而定义,定义所有的Msg子类以满足TICCTM-Ppde的顶级概要消息类中给出的格式,在改进的任何阶段在A: implementation ()中定义的所有pthread、条件和 Msg子类的集合分另Ij称作ApthreadsO、A: conditions ()禾口 A:messages (),在改进的每个阶段 A implementation ()包含 A: TICC-Network ()、A: TIPS ()、A: CIPS ()、A:messages ()、 A:pthreads (), A: conditions ()和在到该改进的阶段为止定义的A: definitions (),在以下方法(3.20)中定义了 A definitions (),TICC -Ppde提供了用于连续改进概要规范并完成 A: implementation ()的方法;方法(3. 18),与不同蜂窝相关联的TIP的相互独立以及出现在这些TIP中的pthread 和条件的相互独立仅由父蜂窝C执行A cells ()中的蜂窝的端口 C. ρ的每个TIP-body即 C.p:tip()、或者端口矢量的 TIP-body 即 C.E:tip(),C.p:TIP()和 C.E:TIP()中出现的所有端口附接到相同的父蜂窝C,虚拟存储器C. p. vM提供用于执行C. ρ tip ()的执行环境,父蜂窝c的私有存储器提供用于执行端口矢量TIP即c.n:TiP()的执行环境,在c.P:tip()或 C.βTIPO的执行期间,蜂窝C仅使用蜂窝C中定义的数据和其他方法、和在C.p:tip()或 C. βTIPO中出现的端口、以及在与C. P: tip ()或C. β:TIPO中出现的且被彼此调谐或附接的端口相连接的路径中的软件部件中定义的方法,所执行的pthread仅改变与父蜂窝C相关联的数据以及执行中使用的端口而非其他,由此除了通过中间数据存储器共享数据来调整端口组中的端口的父蜂窝进行的并行执行的Pthread外,不同蜂窝进行的所有pthread 和TIP执行相互独立,在改进的任何阶段,使用以下方法(3.20)中描述的pthread和条件的输入/输出特性来使所述Pthread和条件的计算机程序有效并联合使通过中间数据来共享数据的Pthread和条件的计算机程序有效,TICC -Ppde提供方法来利用TIP和pthread 的相互独立性以使定义TIP和pthread的计算机程序有效;方法(3. 19),用于描述软件部件的状态的判定任何软件部件的状态χ由具 ^f {x. attribute = data}、{χ. Bttribute1 < y. attribute2}、{χ. Bttribute1 ^ y.attribute]、{χ. Bttribute1 e y. attribute]或{x.attributei cy.attribute〗}等形式的判定的布尔逻辑组合定义,X和y是蜂窝C、或蜂窝C的端口 C. P、或C. p. pathway的任意部件或 C.p.rd:msg()或 C.p.wr:msg()中的任何数据项,C.p.rd:msg()是 C. p. rd 中的消息且C.p.wr:msg()是C. p. wr中的消息,状态用于定义输入/输出特性,计算机程序定义pthread,状态还用于定义由计算机程序实施的条件,TICC -Ppde提供方法来表征 A implementation ()中的软件部件的状态;方法(3. 20),pthread和条件的输入/输出特性对于任何pthread即ρ (),其特征具有形式{〈pre-C OXt^KmiC ? 0 > U1)} [< - ρ () (^Xt2)]{post-C ? () (t2) &m, C ? () (t2) &R (m,m,) (t2) & ((t2)彡 U1+ τ max (ρ))} (C. 7) pre-C ?()和post-C ?()是与ρ ()相关联的预条件和后条件,这些条件指定软件部件的状态,在该状态中pthread ρ ()正在被执行,m:C ?()是表征由p()处理的输入消息 m的条件,m’ :C ?()是表征由p()处理的输出消息m’的条件,R(m, m’ )是应当满足的m 和m’之间的关系,’一’是表示p()的执行的符号,p()的执行在pre-C ()和m:C () 成为true时的相同时间、开始,p()的执行在post-C ? ()、m’ C ? ()、R(m,m’)以及 (t2) ( (VTmax(P)都成为true时的时间、终止,τ_(ρ)是可以采用来完成ρ()的执行的最大时间,(C. 7)中的每个条件是一个或更多软件部件的状态的布尔逻辑组合,在该状态中条件被评估,状态如方法(3. 19)中所定义,软件部件所有彼此附接或彼此调谐,用于ρ 0 的计算机程序仅在每次执行P 0时(C. 7)中给出的ρ()的特性保持true时才是正确的, 仅在对该计算机程序的评估返回true时并且仅在定义所述条件的判定的布尔逻辑组合为 true时用于条件的计算机软件的定义才是正确的,在改进期间定义AdmplementationO 中的所有pthread和条件的特性的集合,处理称作A: definitions (),TICC -Ppde提供交互工具来表征在实施中使用的所有pthread和方法;方法(3. 21),蜂窝隔离和程序运动TIP的重要特性是,在端口定义的TIP的格式独立于连接到这些端口的路径的种类,因此TIP在将通信与计算集成的同时将通信从计算隔离,通过执行计算的相同蜂窝来执行用于所有通信的协议,除了定义用于处理和构建消息的pthread和用于发送消息的协议的计算机程序不同之外,由蜂窝执行来处理和构建消息的计算与由相同蜂窝执行来发送消息的计算之间不存在不同,对于在处理期间使用共同的中间数据存储器联合处理传递到端口组中的所有端口的消息的、不是端口组中的端口的父蜂窝的所有蜂窝,TIP还将A: cells ()中的每个蜂窝C执行的计算从由A: cells ()中的其他蜂窝执行的计算隔离,在端口的协议总是在该端口的虚拟存储器中执行,用于定义蜂窝C的状态的数据保存在蜂窝C的私有存储器中,且用于定义附接到蜂窝C的端口的状态的数据保存在这些端口各自的虚拟存储器中,因此蜂窝C的虚拟存储器和存储器对使用它们的蜂窝提供私有执行环境,A:cells()中的两个不同蜂窝,其不是端口组中的端口的父蜂窝, 仅能同时并行执行处于蜂窝的不同虚拟存储器中或不同私有存储器中的相同Pthread或相同协议的副本,端口组中的端口的父蜂窝能同时并行执行该端口组中的所有端口共同共享的相同虚拟存储器中的相同pthread,pthread和协议的执行总是仅仅改变进行这些执行的蜂窝的状态和与协议相关联的路径的状态而非其他,因此将由A:cells()中的所述蜂窝执行的并行计算彼此隔离,蜂窝的隔离使得能以与C1. ρ和C2. ρ相关联的不同虚拟存储器来在不同蜂窝C1和C2的两个端口 C1. ρ和C2. ρ之间进行并行计算系统的程序运动,程序运动通过将虚拟存储器C1. p. vM的整体内容与拷贝到虚拟存储器C1. p. vM的父蜂窝C1的状态一起传输到虚拟存储器C2. p. vM来实现,TICC -Ppde提供工具来确保蜂窝隔离和程序运动在实施中不被干扰所必须的条件,TICC -Ppde中对应用的设计和实施自动实现蜂窝隔离并使得能进行程序运动;方法(3. 22),蜂窝的依赖和独立端口 A:cells()中的每个蜂窝具有多个总端口、功能端口和中断端口,蜂窝C的端口 C.p或端口矢量C.n是仅在C.p:TIP()或C:TIP(C.n)的执行期间执行的计算仅仅依赖于传递到C. ρ或C. π的消息和C. ρ或C. π的状态而非其他时是独立的,对于蜂窝C可以具有多于一个这样的端口矢量的独立端口,在所有其他情况下C 的端口彼此依赖,对于依赖于端口 C. q的端口 C. ρ的最简化C. ρ TIP ()具有形式C. ρ mR ? (){C. ρ r (C. q). s ()},其中pthread C. ρ r (C. q)用于处理和响应于在端口 C. ρ接收到的消息,pthread C. ρ r (C. q)具有作为它的自变量的C. q,该自变量使得C. ρ r (C. q)能使用C. q 的当前状态和C. q. vM中的消息、以及C. ρ的状态和C. p. vM中的消息同时响应于在C. ρ接收到的消息,多于一个端口可以出现在这样的响应方法C. p:r (C. q)的自变量中,在依赖端口的TIP的执行如具体实施方式
的部分4. 5所述被调整,如所述部分4. 5所述,在特定情况下可以将依赖的或独立的端口从一个蜂窝移动到该蜂窝的另一个副本,TICC -Ppde提供方法来定义TIP使得容易考虑到所有端口的依赖性;方法(3.23),中断处理没有操作系统能曾经中断由々:(^118()中的任何蜂窝执行的计算,蜂窝C仅仅通过在其中断端口的中断消息的接收而被中断,这样的中断消息由 A:cells()中的其它蜂窝发送到蜂窝C,在蜂窝C的中断端口的消息在一个轮询周期中仅由蜂窝C服务一次,或每个中断端口发信号通知运行该蜂窝C的CPU在中断消息传递到它时使用CCP(因果通信原语),且该CPU仅在连续的TIP执行之间响应它,因为10-100纳秒级的低粒度大小的TIP执行这是可以接受的,通过数百纳秒范围的低信息交换等待时间可以进行这样的低粒度大小的执行,因此相对快地注意到中断,即使中断仅在连续的TIP执行期间被注意到,在蜂窝C的中断端口接收中断消息使得蜂窝C执行以下任何一个(i)在蜂窝 C的当前TIP执行结束时暂停蜂窝C的操作,该暂停操作由在蜂窝C的任何端口接收的下一条消息自动恢复,用于蜂窝C中的计算的暂停和恢复的机制由蜂窝C自身自动处理而无需操作系统介入,(ii)动态改变蜂窝C中的TIP执行的顺序,或(iii)终止蜂窝C的操作并释放分配给蜂窝C的CPU,所有这些仅仅发生在连续的TIP执行之间,实施者有责任保证蜂窝 C在终止前服务在其端口接收到的所有至今未决的未被服务的业务请求消息,TICC -Ppde 提供方法使得没有TIP执行曾被中断并且同时迅速注意到所有中断;方法(3. M),被编程的暂停在蜂窝C的端口 C. ρ的C. p: TIPO中的pthread被编程来在C.p:TIP()执行中间暂停其执行,蜂窝C在暂停它的C.p:TIP()中计算后立即进行轮询它的下一个端口,由于在暂停时不满足进行C. p:TIP()执行中的进程所需的条件而导致这样的被编程的暂停,当所述所需的条件满足时在蜂窝C的保证轮询周期中自动恢复在端口 C. ρ的被暂停的计算,TICC -Ppde提供用于执行这样的被编程的暂停的工具;方法(3.25),启动4:加 1_6壯壯1011()中的并行计算也被称作配置器蜂窝的用于设置环境的蜂窝还被用于启动应用A中的计算,通过用户点击由TICCtm-GUI显示的环境蜂窝的图像并从显示的目录中选择启动计算的选项来启动计算,环境蜂窝通过将预定消息发送到A:cells()中的指定启动蜂窝的指定端口来响应这个选择的选项,将所述消息传递到所述指定的蜂窝的协议在消息传递前自动激活所述指定的蜂窝,所述指定的蜂窝在由 TICC -Ppde分配给它们的CPU中运行,一旦被激活,如果必要,所述指定的蜂窝初始化自己,,如果必要,在这样的初始化中安装其余的A:TICCTM-netWork(),此后所述指定的蜂窝中的每个启动它们各自的轮询周期并且在这些轮询周期中感应传递的消息,响应这些消息并使计算生成其余的A:TICCTM-netWOrk(),TICC -Ppde提供工具来如上所述启动并行计算;方法(3. ),停止并行计算当A:cells()中的蜂窝正运行于它们各自分配到的CPU 中时A:cells()中的特定的指定蜂窝负责终止计算,发送中断消息到环境蜂窝要求环境蜂窝终止计算,这些终止请求到达环境蜂窝的中断端口矢量的不同中断端口,中断消息在不同时间到达所述端口矢量的中断端口,环境蜂窝仅在所有中断端口已经接收到中断消息后才响应在所述中断端口接收到的中断消息,当所述矢量中的所有中断端口已经接收到中断消息时环境蜂窝通过它的其中一个总端口将终止中断消息广播到应用A中的所有其他端口,A:cells()中的每个蜂窝接收终止中断消息,终止自己感应该终止中断消息的接收,每个这样的蜂窝仅在服务了所有在其端口的至今未服务的待决消息并在终止前将响应消息发回环境蜂窝以确收终止中断消息后终止,路径上的代理仅在A:cells()中的接收到终止中断消息的所有蜂窝已经响应了中断消息后将A:cells()中的蜂窝连接到环境蜂窝以调整所有这样的响应并将一条确认消息前传到环境蜂窝,并且如果必要,在从A: cells ()的所有其他蜂窝接收到此确认时环境蜂窝终止自身,ITCC -Ppde提供工具来如上所述停止并行计算;方法(3. 27),定义特权:A: cells ()中的每个蜂窝具有能力来在自身上动态安装新的端口 C. p,在A: cells ()中安装其他的蜂窝C’,并且在所述端口 C. q和新安装的蜂窝C’的端口 C’ . ρ之间安装路径,蜂窝C发送请求来安装这样的新蜂窝和路径到应用A中的配置器蜂窝,应用可以具有多于一个配置器蜂窝,配置器接收这样的请求以首先检查请求这样的安装的蜂窝是否具有必须的特权来使该安装执行,仅在满足必须的特权时执行服务该安装请求,并且然后将适当的响应回应发出请求的蜂窝,如果不满足必须的特权,则将特权违背通知到发出请求的蜂窝,根据该安装中的端口的数目,新蜂窝或新路径的安装需要大约250至500微秒,在2千兆CPU中新端口的安装需要30至50微秒,配置器在特权被违背时发出特权违背报告,实施者有责任以满足ITCC -Ppde中的特权定义格式的方式定义 A:cells()中与端口相关联的蜂窝,该端口将该蜂窝连接到应用A中的配置器,可以预安装各种空闲蜂窝、端口、代理、虚拟存储器和路径并将它们保持在保留池中,以在需要时被如应用A中的配置器使用,由此很大程度加速部件的动态安装,ITCC -Ppde提供工具用于定义与ITCCTM-netWOrk()中的端口相关联的特权;方法(3. 28),定义安全功能如具体实施方式
的部分7所指定的,路径中的代理仅在端口满足该消息的事先指定的安装条件时将消息传递到端口,如果在该端口违背了指定的安全条件则代理发出安全违背报告,所有消息交换等待时间将这样的安全检查所需的时间包含于其中,应用A的实施者有责任遵循ITCC -Ppde中的规范定义所需的安全功能, ITCC -Ppde提供工具来定义安全功能;方法(3. ),从次存储设备和英特网访问外部数据每个应用A具有A:cells()中的专用于从次存储设备和/或英特网访问数据的特定数目的蜂窝,并且将它们分发到请求该数据的端口的虚拟存储器,或者蜂窝将该数据请求发送到配置器,该配置器在检查请求了该数据的蜂窝的特权后发送对于该数据的请求到专用于获取该数据的蜂窝,或者蜂窝在自身上安装专用的新总端口,设置从这些总端口到专用于获取该数据的蜂窝的路径,用于这样的总端口和路径安装的特权已被预先授予这样的蜂窝,仅在满足了用于所请求的安装功能的、事先指定的安全功能时,蜂窝才经由新建立的路径发送对该数据的请求并获取返回的所需数据,ITCC -Ppde提供工具来访问外部数据;方法(3. 30),在使用断点运行应用时动态监视该应用在的确可以使用ITCCtm-GUI 检查SMS(自监视系统)的活动性来监视运行中的程序时,这样的监视不会向用户呈现于由SMS注册的事件相关联的数据,因此用户需要将断点插入到TIP C. ρ:TIPO中来检查与SMS中注册的事件相关联的数据,这里对于具有形式C.p:TIP() =C. ρ: guard () {C.p:r().s()}的简单TIP描述断点的安装以动态地监视运行中的应用A,如在以下所示的修改的C.p:TIP()中,这样的断点的引入要求将短语C. g:pR 0 {C.g:b().s() ;}附到 C. p:tip(),修改的 C.p:TIP() = C. ρ :guard ? () {C.p:r(). s() ;C. g:pR ? () {C. g. b (C, C. ρ). s() ;}}C.g是蜂窝C的空闲的未使用的总端口,路径C.g.pattway是在端口 C. g与 ITCCtm-GUI的配置器的功能端口之间动态建立的,pthread C.g:b(C, C. ρ)是断点方法, C. g:b (C,C. P)从虚拟存储器C. g. VM读取蜂窝C和端口 C. P的状态以及将蜂窝C和端口 C. P 的状态写入虚拟存储器(.&僅,还在执行(^:13((,C. P)时将与C.p:TIP()相关联的消息写入C. g. vM,蜂窝C将写入到C. g. vM中的消息派送到ITCCtm-OTI的配置器中,ITCCtm-GUI 的配置器使接收到的数据显示在屏幕上,可以将这样的断点插入到所有种类的TIP中,以此方式使用断点总是中断应用A中发生的事件的定时,因此仅在应用A的测试模式中使用这样的断点,ITCC -Ppde提供工具来在TIP中定义和安装这样的断点;方法(3.31),用于封装A:ITCCTM-netWOrk()的子网络ITCCTM-Ppde提供方法来将与应用A的子系统B相关联的A: ITCCTM-netWOrk()的子网络封装到多个复合蜂窝,应用A的子系统B的封装到复合蜂窝中的网络称作B ITCC -network (),封装B ITCC -network () 的复合蜂窝称作复合蜂窝B,B具有两种端口即内部端口和外部端口,内部端口是附接到B ITCC -network 0中的蜂窝的端口而外部端口是附接到复合蜂窝B的端口,存在 B ITCC -network ()的子集包含通过分支连接到内部端口的外部端口,每个内部端口实际上这样连接到B的一个外部端口,可以将复合蜂窝中的端口组中的内部端口通过复合蜂窝 B的内部代理连接到B的外部端口,外部端口立即将它们接收的信号发送到它们连接到的内部端口,B:ITCCTM-netWOrk()中的具有连接到B的外部端口的端口的不同父蜂窝并行感应和响应它们从外部端口接收到的信号,B中的没有连接到B的外部端口的所有其他内部端口通过ITCC -Ppde的sm路径彼此连接,复合蜂窝B将A: ITCCTM-netWork()中的除了连接到B的外部端口的内部端口之外的所有部件从A:ITCCTM-netWOrk()中的其他蜂窝隐藏,在复合蜂窝B的每个外部端口 B. ρ的其余的TIP即B. p:TIPO与在连接到B. ρ的内部端口定义的其余的TIP即C.p:TIP()相同,这样封装的每个具有自身内置的SMS(自监视系统)的复合蜂窝B用作软件部件,该软件部件可以通过路径将复合蜂窝B的每个外部端口 B. ρ连接到B外部的更大的软件系统中的蜂窝D的端口 D.q,确保每对端口(B.p,D.q)充分匹配, 而插入到该更大的软件系统,由此将封装的部件插入到更大网络中的能力使得能重新使用软件子系统,具体实施方式
的部分2. 2中示出了这样的复合蜂窝的例子,ITCC -Ppde提供工具来封装A:ITCCTM-netWork()的子网络。
4.根据权利要求1、2或3所述的方法,进一步包括以下属于多核芯片中的CPU的设计的额外方法以有效运行A implementation ()方法(4. 1),CPU设计和特定CPU要求的简化如具体实施方式
的部分4. 6中所述, ITCC -Ppde通过消除对使用加速技术的需要来简化CPU的设计,加速技术例如为高速缓冲存储器执行、多指令流执行、指令的预测未来调度和流水线处理,但ITCC -Ppde需要在运行A:cells()的蜂窝的每个CPU中的小数目的特定设备,所述特定设备是(i)每个CPU中的硬件时钟,使能至附接到由该CPU运行的蜂窝的端口的消息传递的时间戳,在消息传递到所述端口时完成时间戳,消息并行地传递到所述蜂窝的端口,多个消息同时传递到所述蜂窝的多个端口是可能的,这样的多个消息同时传递到多个端口需要由所述蜂窝的所述多个端口同时询问的硬件时钟的设备来在消息传递时设置时间戳,(ii)需要每个这样的CPU 实施CCP(因果通信原语)作为硬件指令,(iii)需要中断处理设备使得每个中断端口可以通过CPU运行所述中断端口的父蜂窝而直接使用CCP (因果通信原语)进行通信,CPU响应接收到的、由仅仅在所述蜂窝的连续TIP执行之间的CCP发送的中断信号,以及(iv)需要每个在单个芯片中具有多个SMP(共享存储器多处理器)的DMP(分布式存储器多存储器) 多核芯片也包含该芯片中集成的TICCNET ,所述TICCNET 将该芯片中的SMP互连,这些要求不会使得CPU设计复杂,然而会使芯片设计复杂,简化的CPU的设计增加了多核芯片中的可实现的CPU的密度,TICC -Ppde提供的工具用于组织和执行并行计算由此简化CPU设计而不危及执行的效率;方法(4. 2),开发虚拟存储器组织仅以不超过1万字至100万字的小私有存储器在 SMP中设计每个CPU,但以使用可编程逻辑网络动态连接到任何一个独立硬件存储器模块集的能力来实施每个CPU,这些存储器硬件模块称作SMM (共享存储器模块),SMM保存在这样的硬件设备的池中,该池中的每个SMM具有1万字至十亿字范围内的存储容量,该池中的每个SMM允许不超过大约16个CPU同时访问它,在编译或运行时完成将SMM分配给虚拟存储器,应用A的A: cells ()中的每个蜂窝的每个端口 C. ρ仅在C. ρ授权蜂窝C访问虚拟存储器C. p. vM时动态将分配给父蜂窝的CPU连接到分配给虚拟存储器C. p. vM的SMM,在终止访问时将CPU从SMM断开连接,并可能将相同的CPU连接到与在蜂窝C的下一个端口的业务相关联的另一个SMM,这个安排使得能以减少的存储器干扰进行高速共享存储器访问、显著最小化具有256或更多数量级的大量CPU的多核芯片中的并行共享存储器软件系统中的存储器争用,对任何应用A提供本质的数据保护、数据保密和系统安全,然而,该安排要求存储器组织具有多条总线,每个SMM —条总线,每个SMM通过独立地运行与其连接的CPU可以被独立地同时寻址,且可编程逻辑网络在运行时间有效地动态改变CPU和SMM之间的连接,SMM从根本上消除在SMP中以数十或数百个十亿字大小的巨大共享主存储器组织CPU的破坏性遗留,简化CPU设计,但使得芯片设计复杂,而同时对更高的效率、软件安全性、私密性和保护做出本质的贡献,TICC -Ppde因此使得能进行任意可升级安全保护的并行计算; 方法(4.幻,异步硬件子系统封装可以使用设计、实施到改进,正式验证和自监视的相同技术来实施任何异步硬件系统,可以使用TICC Ppde封装技术来将硬件子系统封装到复合蜂窝,每个这样的复合蜂窝具有自身的SMS(自监视系统),将所有封装的部件对硬件系统中的其他部件隐藏,每个这样的复合蜂窝自己被用作硬件系统部件,在该复合蜂窝的所有外部端口与和其连接的更大系统的端口充分匹配的情景下被插入到该更大的软件系统,由此促进具有嵌入式TICCNET 的多核芯片的制造,TICC -Ppde提供的软件封装方法由此也可应用于硬件系统;
5.根据权利要求1、2、3或4所述的方法,还包括以下方法用于正式使 A implementation ()有效方法(5. 1),从 A: implementation ()得至Ij A:ALLE0PS ()方法在 A: implementation () 的改进的每个阶段自动从A DESIGN ()和A implementation ()中得到在该设计和实施中指定的计算的ALLEOP(允许事件发生模式)模型,这些模型使A:DESIGN()和 A: implementation ()中隐含的所有事件分类变得清楚,展示所述事件分类的因果链,该模型还展示可能在该设计和实施中指定的计算中出现的事件分类的模型,在A正运行时 ALLEOP中的每个事件分类的多个事件实例出现在计算中,ALLEOP中存在两种事件分类, 一种称作具有形式X的动作事件分类,动作事件是编程语言的语句的评估、条件的评估或 Pthread的评估,另一种事件分类称作通信事件分类,该通信事件分类具有用于发送消息的端口 C. ρ的C. ρ5 [t (C. p,#)]的形式或用于前传消息的端口 C. ρ的C. pF [t (C. p,#)]的形式, 和用于传递消息到其他端口 C’, ρ的C. ρ的C’. qD[t (C. p,#)]的形式,在通信事件分类中出现的术语t(C.p,#)称作时间地图,每个t (C. p,#)是指时间实例的顺序、< t2 <-< tn, η彡0,所述事件分类C. ps或C. pF或C’ .qD以该顺序出现在A: implementation ()的运行中,符号#,0彡# < η彡0,(η-1)是具有端口 C. ρ的时间地图出现在CIP(蜂窝交互协议) 中的总次数,符号X和Y此后用于指任何的所述事件分类,ALLEOP中的动作事件或通信事件分类X和Y的一些对通过具有形式XG(x’Y) — Y的加权的定向因果链来链接,ALLEOP中的其他事件分类的对由如X(t) — Y中的不加权的因果链来链接,ALLEOP的事件分类的又一些其他对不通过任何因果链链接,具有权重C(X,Y)的因果链如后所述被中断,在A正在运行中时出现ALLEOP中的每种事件分类的多个实例X(t),t =、< t2〈…< tn,η彡1,如具体实施方式
的部分2中所定义和描述的,TICCTM-Ppde提供了用于从A: implementation () 得到A:ALLE0PS ()的方法;方法(5. 2),得到端口 ALLEOP 方法用于从C. p:TIP()得到端口 ALLEOP即 C. p:ALLE0P(),端口 C. p:ALLEOP()是 A:TIPSO 的 C. p:TIP()的模型,C. p:ALLEOP ()具有形式C. ρ ALLEOP () = C. p: ALLEOP-guard ? () {C. ρ ALLEOP-body ()} (C. 8)在具体实施方式
的部分2中描述了用于从C.p:TIP()自动得到C.p:ALLE0P()的方法,使用称作BILL-BEN应用的示例应用用于描述上述方法,C. p:ALLEOP()提供 A implementation。的ALLEOP的便利模块化描述;方法(5. 3),用于构建ALLEOP图表具体实施方式
的部分2的图6A中描述了 BILL-BEN ALLE0PS ()中的所有端口 ALLEOP即C. p: ALLEOP ()的图表,该图表是以与 BILL-BEN: TICC -network ()和BILL-BEN: TIPS ()中的TIP指定的路径互连一致的方式,通过链接与BILL-BEN: cells ()中的不同蜂窝C1和C2的端口 C1. ρ和C2. ρ附接的端口的ALLEOP 对(1. ^0^0 ()和C2.p:ALLE0P()而获得的,具有加权的定向因果链C(X,Y)—或因果链一不加权,因果链代表了反自反的、传递的和非对称的因果关系,在以下方法(5.4)中描述了用于解释这些定向因果链的方法,由TICC -Ppde自动从A: implementation ()得到在与因关联互连的端口 ALLEOP中的所有事件类型和与通信事件类型相关联的时间地图,所述图6A的图表是BILL-BEN:ALLE0PS()的代表,TICC -Ppde提供方法来类似地对任何应用A自动从A: implementation ()得到并对任何应用A构建与所述图6A中所示的相同的 AALLEOP ()的图表代表;方法(5. 4),解释ALLEOP图表中的因果链在方法(5.3)中引入的ALLEOP图表中出现的具有形式Xe(x’Y) — Y的每个加权的定向因果链代表了有条件的因果链,所述ALLEOP 图表中出现的具有形式X —Y的每个定向因果链代表了无条件的因果链,这些因果链被解释如下如果在时间tl事件分类X的事件实例X(tl)的出现导致之后事件分类Y在 A implementation ()的运行中在时间 t2 出现,写作 XU1) — Y(t2),则在 A:ALLE0PS() 的图表代表中应当存在有条件的因果链Xe(x’Y) — Y或无条件的因果链X — Y,从而在有条件的因果链的情况下Y(t2)是Y的实例且条件C(X,Y)在时间t2 Strue或在无条件的因果链并且ti+τ (X,Y)的情况下Y的实例Y(t2)无条件地出现,τ (X,Y)是在 XU1) — Y(t2)中的两个事件Xai)和Y(t2)的出现之间的最大允许的延迟,TICC -Ppde中的并行程序的执行特性使得可以以精确定义的时间界限来预计事件执行,上界τ (X,Y)首先由A的实施者从pthread和协议的期望的或测量的运行时间估计且之后在利用完成的 A implementation ()确认的,TICC -Ppde提供工具来正确解释ALLEOP图表;方法(5. 5),构建因果网在A: implementation ()的运行期间由TICC -Ppde的SMS (自监视系统)自动产生的、ALLEOP中的具有因果链的仅仅通信事件分类的事件实例的网络被称作A中运行的因果网,可能在应用A中任何运行中出现的所有可能的因果网的集合的代表被称作A = CausalNetO,在具体实施方式
的部分2的图6B和6C中描述了 BILL-BEN示例的因果网,A的不同运行由于不同的条件在不同的运行中变成true而产生不同的因果网, 不是所有ALLEOP节点都具有在A implementation ()的任何给定运行中的因果链中出现的实例,(A: CausalNet Osatisfies A:ALLE0PS())在且仅在以下逻辑条件保持true时才为 true,(A:CausalNet() satisfies A:ALLEOPS()) ο [V (Communication-Event X[t(C.p, #)]) (X[t(C.p, #)] occurringln A:ALLEOPS)] 3 (X5Y) a (TIME ti,t2)(X(ti) instanceOfX) & ((X(ti) —Y(t2)) occurring-in A:CausalNet())]=>[B (Communication-Event Y[t(C'.q, #)])Ξ (TIME-INTERVAL τ (X5Y)) ((x[t(C.p,#)]—…―Y[t(C,.q,#)]) occurrsln A:ALLEOPS()) & (Y(t2) instanceOfY[t(C'.q,#) &(t2 级+r (X[t(C.p,#)],Y[t(C’.q,#)]))](C.9)语句(C.9)断言,当且仅当A:ALLE0PS()中的通信事件分类X[t (C. p,#)]的每个通信事件实例XU1)以及每个因果链(Xai) — Y(t2))出现在A: CausalNet ()中时,应用A 的 A: CausalNet ()满足 A ALLE0PS (),A:ALLE0PS()的图表中存在具有因果链 χ [t (C. p, #)]—…一Y[t(C,.q,#)])的通信事件分类 Y [t (C,·(!,#)],如此 Y (t2)是 Y[t(C,.q,#)]的实例且 ti+τ (X[t(C.p,#)],Y[t(C' · q,#)]),因果链 x[t(C.p,#)]—…一Y[t(C,· q, #)]表示存在由因果链链接的一个或更多事件分类的序列从ALLEOP中的事件分类X[t(C. P,#)]导致事件分类Y[t(C’ .q,#)],以精确指定的时间界限预计因果网中出现的事件的能力使得可以使用TICC -Ppde平台来利用自监视应用对信息物理并行软件系统进行设计、 研发、实施、有效和运行,从(C. 9)的意义上说,TICC -Ppde提供了工具来构建因果网并验证所述因果网满足与其相关联的ALLEOP ;方法(5. 6),从A:ALLE0PS()自动得到A:TRACES()轨迹通常描述了在程序运行时发生了什么,不同编程规定使用不同格式来描述轨迹,TICC -Ppde中的轨迹不仅描述了 A: implementation()运行时可能发生什么,还指定了在应用A的运行中出现的动作事件的语义,语义是由条件指定的,在该条件下在任何给定的运行中可能出现交替事件集的交替,该轨迹还对每个动作事件指定应用A中的逻辑预条件和应用A中的逻辑后条件,该逻辑预条件对于发生的该动作时间应保持true,该逻辑后条件在动作发生后应保持true,如语句(C. 7)和具体实施方式
的部分3和5所述且如具体实施方式
的附录I至III示出的定义中所描述,端口 ALLEOP即C. p:ALLE0P()的轨迹称作C. ρ trace (tp),tp是虚拟时间, 在该虚拟时间中C. p: trace (tp)的事件可能开始出现在A: implementationO的运行中, TICC -Ppde提供方法来使用A implementation ()中的规范和A: implementation ()给出的 A: definitions ()中的规范自动从 A:ALLE0PS ()得到 A: TRACES (),TICC -Ppde 提供工具来从ALLEOP自动得到轨迹;方法(5.7),自动从 A:TRACES0 得到 A:ECT-network() :Aports ()中的端口 C. ρ 的端 口 ECT (端口事件特性表)C. ρ ECT (tp)由 TICCTM-Ppde 从 C. ρ trace (tp)自动得到, C.p:ECT(tp)代表便于正式提供由A: implementationO的实施者给出的CTL断言(因果暂时语言断言)的列表格式的C.p:trace(tp)中出现的事件,ECT网络是具有指定初始化条件的任何端口 ECT集即C.p:ECT(tp)集的网络,遵照A:CIPS()的CIP中定义的轮询顺序和A:ALLE0PS()的C.p:alle0p()中定义的消息交换彼此互连,如具体实施方式
的部分 6中的表格I至V所示,A:ECT-network()是包含了用于A:ports ()中的所有端口 C. ρ的 C. p:ECT(tp)的网络,TICC -Ppde提供工具来从轨迹自动得到ECT网络;方法(5.8),设计验证:TICC -Ppde使用A:TICC -network()中的概要定义来自动得到称作 A:designALLE0PS()的 ALLEOP 模型,A:TIPS()和 A:CIPS(), A:DESIGN() 使得A:DESIGN()中隐含的所有动作和通信事件分类以及事件分类的因果链的同步和调整变得清楚,在具体实施方式
的部分2中定义并描述了用于从A:DESIGN()得到A:designALLEOPS()的方法,在所述部分2中还定义和描述了用于从A:designALLE0PS() 自动得到A:designTRACES()的方法,A: designTRACES ()允许用户暂时地将定时和定时界限与所有的事件分类相关联并且验证事件分类的同步和调整以及A:designTRACES() 中的时间分类的因果链,A: designECT-network ()从A designTRACES O中自动得到, A:designECT-network0用于正式使设计有效,有效标准由实施者如CTL语言中的断言那样提供,所有这样被有效的CTL断言的集合称作Arequirements (),TICC -Ppde开发了用于A:requirements()中的CTL断言的正式证明,使用A designECT-network ()来使 ADESIGN()有效,TICCTM-Ppde在正式证明的开发期间与用户交互,用户对在必要时通过提供额外的CTL断言来提供用于证明搜索的引导,在具体实施方式
的部分6中描述了用于完成这些的方法,正式有效方法用于在所需要的CTL断言被发现在A:DESIGN()中不是有效的时候交互地产生计数器示例,实施者按照需要使用计数器示例来修改设计并使该设计重新有效,这样的有效还用于确保A:DESIGN()免于死锁和活锁,并确保A:DESIGN()中的进程, 在出现死锁时死锁停止应用A中的所有操作,在出现活锁时活锁冻结A的一些子系统以防止它们执行所分配的任务,而其他子系统正常执行它们的任务,进程确保在应用A正在运行中出现的事件分类的事件实例的因果链总是满足如(C. 9)中定义的A:designALLE0PS() 中的规范,TICC -Ppde提供工具来通过评估ECT网络上的CTL断言从而交互地验证给定的设计;方法(5. 9),验证pthreads的正确性用于通过共有中间数据彼此交互的pthread的每个计算机程序集被联合地正式验证为是正确的,用于所有其他Pthread的计算机程序被独立地正式验证为是正确的,实施pthread和条件的每个计算机程序被正式验证以确保该计算机程序满足语句(C. 7)中给定的输入/输出特性,这是可能的因为每个pthread 是仅仅运行大约10至100微妙的短计算机程序,提供AdmplementationO的正确性需要A implementation ()中的所有pthread的正确性,TICC -Ppde提供工具来交互地验证 pthread ;方法(5. 10),用于证明实施者给定的CTL断言TICCTM-Ppde提供方法来开发CTL断言 (因果暂时逻辑断言)的交互证明,CTL断言的结构被非正式地定义在具体实施方式
的部分 5. 2的最后1段中,并且CTL断言的示例出现在具体实施方式
的部分6中,CTL断言的特定语法不象对于任何CTL断言的明确解释那么重要,实施者给出的CTL断言通过在ECT网络上评估它们来使有效,在ECT网络上对CTL断言的评估生成与遵照具体实施方式
的部分6中定义和描述的匹配标准给出的CTL断言相匹配的ECT网络中的事件的因果链,产生与给定的CTL断言相匹配的ECT网络中的事件实例的因果链的处理称作证明检查处理,证明检查的引导由用户提供,用于这样的交互的证明检查的方法在具体实施方式
的部分6中说明, 使用ETC网络的有效的CTL断言是A implementation ()的有效特性,因为在证明检查中使用的ECT网络所有都是自动从AdmplementationO得到的,有效的CTL断言最终验证由 A implementation ()中的路径连接的每对端口的充分匹配特性,由A implementation () 中的路径连接的端口对的充分匹配特性是从以下证明得出的(i)pthread的正确性的正式证明,(ii)对表示A = CausalNetO中的每个因果网会总是满足如以上语句(C. 9)中定义的A:ALLE0PS()的A: implementation()中的进程的正式证明,(iii)对用于A:DESIGN()的 Arequirements ()中的CTL断言的正式证明,(iv)对A: implementation ()免于死锁的的证明,(ν)对免于活锁的正式证明,在具体实施方式
的部分6中示出了这样的证明的示例, (vi)对进程A implementation ()的正式证明,对A: implementation ()的证明最终依赖于所有被有效的CTL断言的集合,TICC -Ppde提供工具来使用ECT网络交互地验证CTL断言; 方法(5. 11),用于对实施者提供引导来识别用于使AdmplementationO有效的CTL断言引导实施者定义使A: implementation ()有效所需的CTL断言是由Azequirements () 和以下断言(C. 9)中指定的要求提供的,A^equirementsO是由实施者在设计和实施应用 A之前进行的对以CTL语言指定的应用A的要求的逻辑规范,可以在设计和改进期间更新, 语句(C. 9)提供引导来指定验证A: implementation ()的正确性所需的CTL断言 [(ArCausalNetO satisfies A: ALLEOPS())&(A:ALLEOPS() satisfies A:requirements())] >Plementation() is-correct)(C. 10)实施者使用标准(C. 10)和关于由路径互连的所有端口对应当充分匹配的要求,来确定它们没有错过使任何所需的CTL断言有效,TICC -Ppde提供方法来通过识别由路径连接的还未被有效为充分匹配的端口来辅助用户,TICCTM-Ppde还辅助实施者交互地识别用于解释为什么给定的CTL断言在A: implementation ()中不是有效的计算器示例,实施者使用计算器示例来按照需要修改A: implementation ()并使修改后的实施有效;方法(5. 12),ad hoc同步和调整与A:cells()中的两个与不同蜂窝相关联的且出现在A: implementation ()的因果网中的两个事件XU1)和Y(t2)从U1St2)在 A implementation ()的特定运行可能为true且U1 > t2)在其他特定运行中可能为true 的角度上说是不可比较的,A implementation ()的正确操作要求两个这样的不可比较的事件XU1)和Y(t2)被调整或同步,事件Xai)和Y(t2)的调整意味着它们中的一个应总在另一个出现之后才出现,例如,可以要求在AdmplementationO的所有运行中U1 < t2) 应保持true,事件Χ(、)和Y(t2)的同步意味着在AdmplementationO的所有运行中U1 =t2)应保持true,TICC -Ppde提供ad hoc方法来调整和同步这样的不可比较的事件而不必改变AdmplementationO的任何改进,这样的ad hoc同步和调整方法仅仅需要在出现了不可比较的事件的蜂窝的特定的新安装端口之间建立特定的新路径并以具体实施方式
的部分6. 6中描述的方式定义或重新定义在与所述蜂窝相关联的端口的TIP,可以还在 A:implementation()中的任何两组不相交的不可比较的事件之间进行这样的ad hoc调整和同步,这些ad hoc同步和调整对于TICC -Ppde是唯一的,不可能在任何其他并行编程范例中不对改进进行外延修改而实施,TICCTM-Ppde提供用于这样的ad hoc同步和调整的方法。
6.根据权利要求1、2、3、4或5所述的方法,还包括以下SMS方法来在应用正在运行时并行于该应用动态地创建和分析因果网方法(6. 1),驱动SMS(自监视系统)以上语句(C. 10)提供了用于TICCTM-Ppded 中的操作的基础,路径中嵌入的代理使用CCP(因果通信原语)将信号发送到与SMS 的EventBuilder蜂窝(eb蜂窝)附接的端口来在A: implementation()正在运行时在 A:implementation()的成长的因果网中动态地安装消息分派和消息传递事件,如具体实施方式
的部分7所述,每个eb蜂窝通过与其附接的端口矢量中的不同端口对连接到路径,该端口矢量中的一个端口从该路径中的代理接收表示在该路径中出现消息分派事件的信号, 且该端口矢量中的另一个端口从该路径中的另一个代理接收表示在相同路径中的对应的消息传递事件的信号,如具体实施方式
的图19中所示,在感应到传递到所述端口矢量中的两个端口的信号时,端口矢量的父eb蜂窝在成长的因果网中安装对应的消息分派和传递事件实例对,这样的因果网更新出现在接收到传递的消息的端口 C. ρ的父蜂窝C正在执行 C. p. tip ()时,在成长的因果网中安装所述事件实例所花费的时间是执行C. p:tip()所需时间量的五十分之一至一百分之一,每个eb蜂窝能服务大约10至15条路径,允许由于所有蜂窝的轮询周期中的异步执行导致的延迟,由多个eb蜂窝进行的成长的因果网的并行更新是可能的因为每个eb蜂窝将仅在该因果网的不同的未互连分支中安装新通信事件, TICC -Ppde提供工具来自动调整由eb蜂窝和ea蜂窝执行的并行计算,eb蜂窝通过使用 CCP交换信号来与ea蜂窝通信;方法(6. 2),分析成长的因果网中的事件A:cells()中的EventAnalyzer蜂窝(ea 蜂窝)自动检查成长的因果网是否满足A:ALLE0PS(),eb蜂窝在每次它们在因果网中安装新通信事件时发信号通知ea蜂窝,ea蜂窝在每次A: implementation ()的成长的因果网中的结构由于不满足以上给出的语句(C.9)而违背A:ALLE0PS()中的结构时报告错误,在成长的因果网中的一些事件违背事件出现的定时的指定上界时报告即将发生的错误,或在识别到成长的因果网中的预定义ALLEOP事件模式的出现时发出警报,一个或多个ea蜂窝专用于监视该成长的因果网发生预定义警告模式,存在至少一个ea蜂窝用于 A: implementation ()中的每个 ea 蜂窝,A: cells ()包含与确保 A: implementation ()中的操作所需的蜂窝一样多的eb蜂窝和ea蜂窝而与A: implementation ()中的事件的定时无干扰,所有eb蜂窝和ea蜂窝并行操作且并行于A: cells ()中的所有其他蜂窝操作而与 A:cells()中的任何蜂窝的操作几乎没有干扰,TICCTM-Ppde提供工具来通过使eb蜂窝和 ea蜂窝通过使用CCP交换信号而相互通信来调整由ea蜂窝和eb蜂窝执行的并行计算;方法(6. 3),自诊断和自修复SMS提供用于在A: implementation ()中最终构建自诊断和自修改设备的基础,ea蜂窝识别错误或即将发生的错误,直接与犯错误的蜂窝通信,并使用包含与犯错误的蜂窝相关联的事件的已被有效CTL断言来诊断和修复犯错误的蜂窝或动态地以新蜂窝来替换它们而不干扰A:TICCTM-netWork()中的其余的蜂窝的正常操作, 在必要时,ea蜂窝通过以预定方式动态地改变并行计算来识别与识别的警报模式对应的预定义警报模式。
7.根据权利要求1、2、3、4、5或6所述的方法,还包括由TICC-Ppde引入的以下12种编程概要,使得能进行概要设计、通过连续改进的设计的实施,编程概要使得具有自动自监视的任意可升级大规模并行计算系统能有效运行,这十二种概要是,概要(7. 1),蜂窝蜂窝是并行编程软件系统的计算单元的软件概要,蜂窝使得能进行并行软件系统设计、通过连续改进的实施的概要规范,每个蜂窝运行于专用的CPU(硬件计算单元)中,蜂窝通过彼此交换消息来执行并行计算,使用它们的端口来经由将蜂窝的端口互连的通信路径来发送和接收消息,由应用A中的路径互连的蜂窝的图表被称作 A:TICCTM-netWOrk(),蜂窝完全是自包括的而不使用操作系统辅助它们的操作,TIC -Ppde 提供工具来使得蜂窝自身执行构建A:TICCTM-netWOrk()所需的所有计算,调用并执行 pthread来处理和构造它们彼此交换的消息,调用并执行协议来发送/传递消息,以及在接收到中断消息时暂停/恢复它们的操作,而无需来自蜂窝自身中未定义的任何软件的辅助或附接到或调谐到该蜂窝的软件部件的辅助;概要(7. 2),路径路径是通信通道的概要,存在两种路径sm路径和dm路径,sm路径将 SMP(共享存储器多处理器)中运行的蜂窝的端口互连,dm路径将DMP(分布式存储器多处理器)中运行的蜂窝的端口互连,DMP的计算节点是SMP,SMP或DMP中的每个端口仅附接到一个唯一的、称作该端口的父蜂窝的蜂窝,每个蜂窝具有与其附接的多个端口,蜂窝的每个端口仅连接到一条唯一的路径,附接到不同蜂窝的多个端口连接到相同路径,由此能进行组对组通信,路径包含代理和其中嵌入的虚拟存储器,相同代理或虚拟存储器从不嵌入到多于一条路径,代理在其嵌入的路径上执行消息传输的路由、同步和调整,代理还发送信号到SMS(自监视系统)以安装在其嵌入的路径中出现的消息分派和消息传递事件,对于任何路径P, Pports 0是连接到P的端口的集合,P agents ()和P virtualMemories ()是P中嵌入的代理和虚拟存储器的集合,这些集合Pports ()、P agents ()和P virtualMemories () 的联合是路径P的路径部件,没有两条不同的路径曾具有任何共同的路径部件,由此路径使得能在A:TICCTM-netWOrk()中进行同时并行消息交换而无消息干扰,TICC -Ppde提供工具来在应用A运行时在A:TICCTM-netWork()中安装蜂窝和路径;概要(7.幻,虚拟存储器在安装路径时声明被称作虚拟存储器的软件概要,在应用的编译时间或运行时间将实际的硬件存储器区域或存储器模块分配给虚拟存储器,每条sm 路径S仅仅具有嵌入其中的一个唯一的虚拟存储器S. vM,与任何sm路径连接的所有端口 Pi存在于相同的SMP (共享存储器多处理器)中,与任何sm路径S连接的所有端口 Pi具有与其相关联的相同的虚拟存储器Pi. vM = S. vM,每条dm路径D将存在于DMP (分布式存储器多处理器)的不同SMP(共享存储器多处理器)即SMP[j]中的端口组pG[j]互连,每条 dm路径D具有嵌入其中的多于一个虚拟存储器,一个虚拟存储器pG[j]. vM被调谐到每个 SMP [j]中的端口组pG [j],pG [j]. vM与pG [j]中的所有Qj的q」.vM相同,虚拟存储器Pi. vM 和qj. vM保存经由所述路径传送的消息,所述虚拟存储器还保存端口 Pi和Qj的父蜂窝分别使用的Pthread和方法来处理和创建消息,此外,所述虚拟存储器还保存协议Pi. protocol 和& protocol,以分别在路径S和D上传送消息,虚拟存储器和路径对它们保存的所有 pthread、方法和协议提供执行环境,虚拟存储器组织对以下方面做出贡献数据安全、私密性和完整性,蜂窝执行的并行计算的隔离,并行计算的高效执行以及多核芯片的共享存储器多处理器设计的简化;概要(7. 4),协议与每条路径连接的每个端口 ρ具有对其定义的协议p. protocol,仅允许P的父蜂窝执行P. protocol,由端口 ρ的父蜂窝进行的p. protocol的执行使得信号由路径部件交换,由路径部件交换的信号在路径上行进最终建立上下文,在该上下文中,P. vM 中的消息在sm路径中被传递到它的期望接收者或在dm路径中经由硬件信号传输线传送到它的期望接收者,dm路径中嵌入的硬件代理还参与到协议执行中来在所述带代理嵌入的 dm路径上发送、调整、同步和路由消息,协议使得能够进行仅由应用中的路径数目限制的该应用中的多个同时并行消息交换;概要(7.5),CCP(因果通信原语)CCP用于在路径中的部件之间可编程地交换信号, 每个CCP是TICC -Ppde编程语言中的具有形式X:x — Y的语句,X、Y是路径中嵌入的部件,χ是由CCP从X到向Y发送的信号,通过部件X、Y发送/接收的信号控制Χ、Υ中嵌入的ndFSM(非确定性的有限状态机)的状态,CCP以软件或硬件执行,硬件CCP被执行作为CUP 中的机器指令,每个协议由CCP的串联来定义,这样的串联具有X:Xl — Y:x2 — Z的形式, Χ、Υ、Ζ是相同路径中的所有部件,协议中出现的CCP有时嵌入在TICC -Ppde的其他编程语句中,仅花费25至50纳秒来在2千兆赫兹CPU中执行软件CCP,仅花费5纳秒在2千兆赫兹CPU中执行硬件CCP,CCP是TICCTM-Ppde引入的中心的且最重要的概要,CCP单独负责使 TICC -Ppde中的并行程序组织成为可能;概要(7. 6),调谐和附接任何交换信号的路径ρ的所有部件总是彼此调谐,调谐使得每个这样的部件总是准备好接收并立即响应它们从该路径中的其他部件接收到的信号,由此使得能够以最多几百纳秒范围内的等待时间使用2千兆赫兹CPU经由路径P进行确保的高速消息交换,调谐是自反的对称关系,任何蜂窝C仅仅能执行C或连接到与C附接的任何端口的任何路径中嵌入的部件中定义的方法或pthread,C仅仅使用附接C的部件中定义的数据或所述路径的部件中定义的数据,附接是自反的、对称的、传递的关系,调谐和附接对 TICC -Ppde中的并行软件系统的模块化面向对象组织做出贡献;概要(7. 7),端口 端口是软件概要,每个端口 ρ附接到它的唯一的父蜂窝,端口 ρ具有与其相关联的唯一虚拟存储器P. vM,端口 ρ的父蜂窝使用ρ将p. vM中的消息经由与ρ连接的路径发送到其他蜂窝并经由相同的路径从其他蜂窝接收消息,每个端口 ρ通过仅在它的父蜂窝准备好使用数据和方法时对它的父蜂窝给出对于数据和方法的访问权来保护p. vM 中的数据和方法,每个端口 P具有嵌入其中的包括S (发送)和R (接收)2个状态的非确定性有限状态机P. ndFSM,该状态被使用于调整由ρ的父蜂窝执行的消息发送/接收操作,该状态还被用于控制由P的父蜂窝对虚拟存储器P. vM的访问,在具体实施方式
的部分1的图 1至4中描述了该调整和访问控制方法,ρ的父蜂窝仅在p. ndFSM的状态为S时具有对虚拟存储器P. VM的访问权以经由端口 P将消息发送出去,端口 ρ仅在p. ndFSM的状态为R时接收消息,dm路径中的端口包含具有S、S’、R、R’即两个消息发送和两个消息接收状态共四种状态的p. ndFSM,端口不仅对它们的父蜂窝发送和接收消息,端口还控制对于虚拟存储器的访问权且由此保护虚拟存储器中的数据和方法,此外它们使得动态分配给虚拟存储器并在需要时由CPU使用的硬件共享存储器模块的分布式组织成为可能;概要(7.幻,代理sm路径中的代理是软件概要,代理嵌入在路径中,每个代理a包含嵌入其中的具有状态S(发送)和R(接收)两个状态的ndFSM即a. ndFSM,代理使用它们的状态来在它们嵌入的路径上路由、同步和调整消息传送,如具体实施方式
的部分1、图2至4 中所述,代理还发信号到SMS的部件以在运行中的应用的因果网中安装所述代理嵌入到的路径中出现的消息分派和消息传递事件,如具体实施方式
的部分6、图19中所述,dm路径包含具有S、S’、R、R’四种状态的硬件代理,代理自动同步和调整所有通信,加强安全并驱动自监视系统,由此在TICCTM-Ppde中扮演唯一且中心的角色;概要(7.9),TIP (线程交互原语)ΤΙΡ是指定应用A中的端口 ρ的父蜂窝如何接收和响应传递到P的消息的、或指定父蜂窝如何检查端口 P准备好发出消息、构造消息并经由端口将消息发送出去的软件概要,附接到应用A的每个蜂窝的每个端口具有对其定义的TIP,一些TIP嵌入在其他TIP中,在蜂窝的端口定义的所有TIP的集合被该蜂窝使用来执行应用 A中的并行计算,存在指定所有并行计算所需的五种TIP,每种中存在两类TIP即同步TIP 或异步TIP,TIP提供蜂窝间的交互的紧凑模块化规范,该规范可以如任何计算那样变得复杂,TIP提供的交互的模块化特性促进应用的实施的正式验证和有效;概要(7. 10)CIP(蜂窝交互协议)CIP是指定蜂窝如何初始化本身、轮询自己的端口、 处理传递到自己的端口的消息并且响应该消息、或者创建新消息并将该新消息经由自己的一个或多个端口发送出去的软件概要,CIP提供使得TICC -Ppde中所有的并行计算可能的基本引擎;概要(7. ll),A:TICCTM-netWork() :A:TICC -network()是应用 A 中的并行程序执行的控制结构的软件概要,A:TICC -network()隐含指定了在对应用A的并行程序的执行期间出现的所有计算和通信活动的同步和调整,正如相同的顺序程序可以运行于不同数据结构定义中一样,如果正确地定义了该顺序程序和数据结构,则应用A的相同的pthread的集合 A:pthreads()可以运行于不同的A: TICCTM-netWOrk (),如果正确地定义了 CIP (蜂窝交互协议)中的初始化规则,则由此使得能够通过改变执行控制结构来继续使能程序优化;概要(7. 12),自监视系统SMS =SMS是对于TICC -Ppde唯一的概要,SMS是TICC -Ppde 中使用来在应用A正运行时与该应用并行且与该应用中出现的事件的定时无干扰地监视正运行的应用A的性能以检测和报告性能中的错误、待决的错误以及事件的预定义模式的出现的机制的软件概要,SMS使用被称作eb蜂窝(事件构建器蜂窝)和ea蜂窝(事件分析器蜂窝)来构建并不断地监视运行中的应用的成长的因果网。
8.根据权利要求1、2、3、4、5、6或7所述的方法,还包括TICC -Ppde中引入的五种验证概要,该验证概要能使TICC -Ppde正式使使用权利要求7中的概要执行的并行程序有效, 并通过自动自监视运行它们,这五种验证概要是,概要(8. 1),事件分类事件分类是应用A正在运行时出现的计算和通信事件的概要, 每个事件分类是一对(name,t),存在动作事件分类和通信事件分类两种事件分类,动作事件分类中的分类名称表示TICC 编程语言的语句,或表示线程,或表示实施应用A的并行程序中的条件,通信事件分类中的分类名称具有形式PS、PF或Pd中的一种,其中,P是应用A的端口的名称,上标S表示端口 ρ正在发送消息,上标F表示端口 ρ正在前传消息,以及上标 D表示消息正在被传送到端口 p,t代表应用A的运行中可能出现的事件分类的事件实例的时间点顺序,t被称作命名的事件分类的时间地图;概要(8. 2),允许的事件出现模式ALLEOP =ALLEOP代表计算的依赖性的概要,通过事件分类之间的二进制因果关系来表示所述依赖性,ALLEOP是通过代表事件分类对之间的因果关系的有条件或无条件定向箭头彼此连接的事件分类的网络,因果链是由定向箭头 (因果关系)连接的事件的顺序,因果关系是反自反的传递的非对称关系,事件类型的因果链的网络捕获在应用A正在运行时应用A的并行程序中出现的计算的事件实例的模式, Pport-ALLEOP ()是在ρTIP ()中出现的事件分类的所有因果链的集合,C: cell-ALLEOP () 是在C:CIP()中出现的事件分类的所有因果链的集合,AALLE0PS()是应用A中出现的事件分类的所有因果链的集合;概要(8. 3),事件实例和轨迹事件(name,、)是在应用A正在运行时在时间实例t = [tl,t2,'",tn,···]出现的事件分类(name,t)的实例,i = 1,2…,η···,η彡0,在η = 0时不存在事件分类(name,t)的实例,各事件分类(X,tx)和(Y,ty)的事件实例对Χ(、)和Y(tp 仅在它的对应的事件分类由ALLEOP中的这样的箭头连接时通过表示因果关系的有条件或无条件的定向箭头彼此连接,应用A的任何运行中出现的事件实例的所有可能的因果链的集合被称作 A:TRACES (),A:TRACES0 是从 A:ALLEOPS ()自动得到的,ρ:port-trace (tp)是从 p:port-ALLE0P()自动得到的轨迹,C: cell-trace (t。)是从 C: cell-ALLEOP ()自动得到的;概要(8.4),ETC网络p:port-ECT(tp)是代表以列表形式组织的ρ:port-traCe (tp) 中出现的所有事件实例的因果链,p:port-ECT(tp)的网络是应用A中的端口的端口 ECT 集,端口以与A TICC -network 0 —致的方式互连,这样的ECT网络促进由TICCTM-Ppde 进行的正式交互证明产生,C eel I-ECT (t。)是与C: cell-trace (t。)对应的ECT网络, A:ECT-network()是与 A:TRACES()对应的 ECT 网络;概要(8. 5),因果网p:CauSalnet(tp)是仅含有ρ:port-trace (tp)中出现的通信事件实例的因果链的 P:port-trace (tp)的概要,C: causalnet (t。)是仅含有 C:port-trace (tc) 中的通信事件实例的因果链的C port-trace (tc)的概要,A causalnet 0是仅含有 ATRACES()中的通信事件实例的因果链的A:TRACES0的概要,SMS(自监视系统)在其运行时自动产生应用A的因果网,并行于该运行,自动地监视动态成长的因果网以识别和报告错误、待决的错误以及事件实例的预定义模式的出现。
9.根据权利要求1、2、3、4、5、6、7或8所述的方法,还包括以下方法来提供集成的环境用于应用A的设计、开发、校验以及具有自监视的运行TICC -Ppde自身执行对蜂窝的CPU分配,分配给蜂窝的CPU中的蜂窝的激活、并行处理管理、线程管理、通信、中断管理、安全增强、同步和调整,而不必调用操作系统或任何软件来辅助执行这些服务的任何部分,TICC -Ppde仅针对存储器管理、高速缓冲存储器管理和对次存储器和英特网的访问权,使用当前原型实施中的操作系统,通过并行地提供所有所需操作系统业务可以实施由TICC -Ppde中的操作系统当前提供的所有业务,由此提供环境用于集成设计、开发、验证和具有自我监控的并行软件系统的运行。
10.根据权利要求1、2、3、4、5、6、7、8或9所述的方法,还包括以下方法来设计、实施和运行并行编程应用A 任何应用A的任何并行计算机程序使用任何或所有根据权利要求1至9所述的方法和概要,使用编程的信号交换,以或不以正式有效和自监视、或仅以部分正式有效和部分自监视,来组织和控制以硬件或软件实施的并行软件系统。
全文摘要
本发明示教了实施在分布式和共享存储器多核芯片中高效运行的正式验证的大量并行程序的方式。允许从被称为蜂窝的并行软件部件中的初始交互的概要语句开发程序,并且将它们逐渐地改进到它们的最终实施。在改进的每个阶段,从实施中自动得出计算中的事件的模式的正式描述。该正式描述用于两个目的一个目的是证明正确性、定时、进展、相互排他以及避免死锁/活锁等;另一个目的是自动地将持续并行监控应用的自我监控系统(SMS)并入每个应用,而不干扰它的定时,以识别和报告性能中的错误、未决的错误以及关键行为的模式。本发明还示教了组织用于多处理器的共享存储器的方式,其最小化存储器干扰、保护数据并且提高执行效率。
文档编号G06F9/46GK102282542SQ200980140896
公开日2011年12月14日 申请日期2009年5月14日 优先权日2008年10月14日
发明者奇托尔·V·斯里尼瓦桑 申请人:奇托尔·V·斯里尼瓦桑

最新回复(0)