可动态构建的计算机系统的制作方法

文档序号:8344593阅读:315来源:国知局
可动态构建的计算机系统的制作方法
【技术领域】
[0001]本发明是将硬件和软件组件识别为被动态构建以创建符合由执行进程定义的功能和性能要求的计算机系统和子系统的单独实体的一种新颖和独特的计算机架构。本发明用能够做现有计算机架构不能做的事情的独特、异步、分散的进程来取代传统的计算机设
i+o
[0002]该架构称为“元指导器”(meta mentor,在此也称为“MM”),是一种容错的、分布式处理架构。元指导器处理器通过使用按特定路线将信号发送到硬件和软件实体,以及从硬件和软件实体接收信号的容错指导器交换机来创建系统和子系统。创建的系统和子系统是可以按照执行进程定义的分开或同时运转的不同的子结构和独特的配置。
[0003]根据本发明,硬件或软件操作中任何意想不到或无计划的变化,故意或随意的,都定义为故障。故意故障被视为是包括计划的系统或组件颠覆的故障类型。这些种类的故障通过两种途径,各个组件和进程基于规则和作用的定义,其次使用分析组件和进程特性的算法来减少。根据本发明,减少故障通过进程分配和系统虚拟化来动态地重新配置工作系统而实现。
[0004]如下面将进一步说明地,MM架构超越传统的一个引用域操作,MM系统不仅在传统系统的数据和指令域两者,而且在独立且不同于数据和指令域的元指导器域中操作。应当注意的是,在该整个文档中,数据和指令域可替代地称为“数据和指令域”或“DID”。
[0005]MM系统可以动态地重新配置以实现基于quorum的计算、欧拉方阵范例、请求可用组件(相对于冗余组件)的异步容错。它能够同时运行不同的操作系统,并且不受限于二进制兼容的CPU,(虽然应用程序必须与CPU 二进制兼容)。该系统还可以监测应用软件的完整性,阻止未经授权人员或程序的访问,并记录恶意软件的活动。
[0006]MM架构的独特设计通过在经典的检查点动作中保存系统状态信息来从故障中恢复。系统可以在中断、系统上下文切换或被迫超时期间设置检查点。在硬件故障的情况下,系统或应用程序自动在上一个检查点重新启动,并重新分配工作进程给可用的硬件。错误的应用程序(随意或故意的)被列入“黑名单”,所有相关联的数据、存储使用情况和状态信息都可以保存以供取证分析。在绕过错误的应用程序,并发出操作员通知之后,系统继续工作,就好像从未启动过该应用程序。除了对抗硬件或软件故障,并防止计算机病毒感染,这种独有的架构还可以与现有的操作系统和软件无缝地衔接。
[0007]为了说明元指导器架构,回顾传统的计算机架构是有益的,它可以大致分为两种类型,冯.诺依曼(VN)架构和非冯.诺依曼架构。产品计算机系统中绝大多数都包括VN架构。参见图1,示出了传统的VN架构,包括四个组件:(a)具有算术逻辑单元(ALU)和控制寄存器(2)的处理单元;(b)包括指令寄存器和程序计数器3的控制单元(ALU和控制单元统称为中央处理单元,通常称为“CPU”4) ;(c)用来存储数据和指令两者的通用存储器5(通用存储器示为六个“Mem”单元);以及⑷输入6a和输出6b机制。根据本领域的一些公知常识,冯?诺依曼架构已经发展到的阶段意味着存储程序的计算机,其中指令和数据都存储在通用存储器中,并且由于通过一条数据总线访问两个数据片段的物理限制而不能同时访问指令和数据。该限制称为冯.诺依曼瓶颈,并通常称为架构限制。
[0008]图2示出了用维恩图表示的VN架构。CPU 4与系统5有交叉。该图中的系统包括存储器和输入/输出设备。启动时,某一事件使得CPU中断,并定义用于要开始的进程的地址,其定义各个组件的地址空间。在这个意义上,它是循环逻辑。CPU直接附加在系统上,集中时序信号协调架构内所有的组件功能。CPU的地址空间定义作为CPU可以直接控制的整个空间的域。系统和CPU的交叉代表连接这两个实体的电路。
[0009]图3是以虚拟化配置示出VN架构的维恩图。目前可以在一些应用中看到这种配置,如Zones、Zen、Vmware和其他。VN架构内的虚拟化是一种软件异常,当软件停止功能时,系统恢复到图2。它也是一种信号域系统,用CPU和系统的交叉定义互连电路。
[0010]参见图4,示出了另一种类的计算机架构,哈佛(H)架构。H架构通过将指令和数据信息分离而与VN架构区分。这意味着这两种信息在物理上是分开的,通常具有不同的格式。哈佛CPU 4的输入/输出与VN架构中使用的基本相同。H架构的特点是,指令找取和数据访问对于到存储器的单条物理通路不进行竞争。在该设计中隐含的是两个不同种类并分开的存储器:数据存储器7和指令存储器8,以及两条数据通路9a和9b:—条用于每一种类的存储器。由于指令和数据可以大致快2倍地获取,因此H架构被认为比VN架构更快。
[0011]图5用维恩图示出了 H架构。可以看到指令系统10和CPU 4之间的交叉,这代表连接这两者的电路。类似地,数据系统11和CPU之间的交叉表示连接电路。在VN架构中看到,从CPU发出的集中时序信号(或信号)协调系统内的所有组件。同样,与VN架构类似,H架构地址空间定义单一域一一数据和指令域(DID),将在下面更全面地说明。
[0012]H架构可以被设计为使得数据或数据存储器不能修改指令存储器(如果该存储器是只读的)。然而,如果任何人想要修改指令,那么从数据存储器加载新的指令。例如,应用程序基于CPU、ALU的传输指令将其执行代码从数据存储器传输到指令存储器。当考虑到可能修改指令代码导致系统的CPU执行非预期任务的恶意软件的影响时,这点是重要的。
[0013]H架构通常被描述为“受限于存储器”,因为ALU中的指令集执行速度远大于存储器访问时间。因此,ALU能够处理数据的速度受到对指令存储器的访问时间的限制,执行速度受限于存储器访问时间。该问题通常通过为ALU提供少量的快速存储器(称为缓存)来解决。在实际中存在三级缓存,通常称为LI,L2, L3。
[0014]另一架构结合H和VN架构两者以创建工作的CPU。在该CPU内部,常见的VN信息分为数据和指令H类型。这通常在称为缓存的临时存储器区域中实现。H架构处理内部(PU数据/指令,VN处理外部CPU数据/指令传输。指令信息可以基于算法进行划分。简单的算法示例是将地址范围0-500分配为指令,而将501-1000分配为数据。该规则通过电子设计确定,并在制造后永远不能改变。控制单元连接到地址空间0-500,ALU连接到地址空间501-1000。这定义了 H架构,其中信息的地址空间被划分成逻辑或数据信息,如图4所示。在VN或H架构中,控制单元和ALU之间的地址空间是一对一关系,如图1和4所示。
[0015]图1和4还不出了外部输入6a和输出6b模块。这些模块通过CPU外部的电子信号接收或处理信息。该关系在进行电子设计时确定,并在制造后永远不能改变。输入/输出,信息或数据区域,以及控制通过固定的电子通路确定。信息如何被分类成指令或数据由在控制单元和ALU中起作用的软件算法确定。从数据存储器请求信息的控制单元可以将该信息变为指令信息。
[0016]算法如何执行可以通过电子装置或算法实现。在算法的情形中,什么是数据和信息由算法确定,这是循环逻辑。电子装置通过管脚如何连接来定义硬件地址空间。它们一起定义了域一一DID。地址空间全都是信息、数据或指令,算法或电子装置可以使用算法在地址空间内进行控制。而且,当信息组件之间交换时,它们遵循定义通信状态的全部设备所共用的周期信号。这通常由CPU提供给在其域内的外部设备,并且该信号与内部设备保持同步。这定义了一种同步系统,其中共用的周期信号,如时钟,在信息传输期间管理组件状
??τ O
[0017]从功能上说,CPU具有其他组件,称为缓存的临时信息存储区域通常是对数据和指令信息进行分类的地方。图7示出了一个示例。L2缓存12从公共L3缓存和相关联的元件接收信息。L3缓存是VN架构,L2缓存是H架构。这些内部存储器组件在位于CPU内预定义的电子通路网络内创建高速存储器传输。
[0018]参见图7,在外部,CPU使用冯?诺依曼的架构。使用该架构,CPU使用CPU外部的设备发出、接收并处理(信息)信号。这些设备通常比内部设备更慢。灵活性和实际考虑使得VN成为CPU外部的架构选择。外部设备电传输信息以指示CPU如何工作。CPU根据外部存储器信息(数据和指令信息两者)运行,并作为冯?诺依曼机器运行。在实际中,通过称为直接存储器访问(DMA)的过程,数据在VN和H架构之间大量传输。DMA过程绕过CPU,并比正常CPU读取/写入过程更快地传输信息。
[0019]另一种计算机架构称为标记令牌或数据流。VN和H架构可以被分类为控制流架构,以CPU、存储器和它们内部的传输为特点。数据流系统在理论上不具有程序计数器,根据输入数据对指令集的可用性来执行进程。它宣称是一种人工智能引擎,声称具有用作某种神经元的简单架构的数据驱动并行计算机。该系统有基于数据已经到达的信号执行的若干寄存器或进程。数据流架构可以相对于控制流架构进行评估或对比。
[0020]参见图6A,示出了控制流和数据流程序的比较。等式定义了要解决的问题。左手边示出了传统的控制流架构,右侧示出了数据流架构。实箭头和线指向数据的位置和流向。在存储器程序中,每个进程都将结果存储在可以被进程会话中的下一进程访问的公用存储位置。虚箭头线示出了指令进展。标记令牌模型将数据直接放入进程存储器。当进程填充满所需的输入令牌时,该进程触发,其输出指向输入或放置在标记令牌处理元件外部的存储器中的限定的进程。
[0021]在实际中,数据流架构具有可以互相通信的若干处理元件。图6B描述了这样的一种处理元件,它包括匹配单元21、找取单元22、功能单元23和相关联的存储器24a和24b。应该注意到,在简单的数据流机器中,匹配和找取单元组合成单个处理元件,称为具有单个存储器的使能单元。然而,当输入令牌变得很多,或大小增加时,该使能单元被配置具有两个存储器类型,每一个都附接到它的处理元件。
[0022]匹配单元将令牌(数据)存储在它的存储器中,并检查示出为找取单元的目的地节点的可用性。这需要与目的地地址和进程标记相关的信息。当用于某一进程实例的所有令牌都组装好时,将它们发送到找取单元,这将它们与节点描述结合(这与指令存储器是类似的)。节点描述存储在用于节点的存储器中,并将该信息转发到执行进程的功能单元。
[0023]CPU 内部
[0024]在CPU设计中可以看到VN和H架构。例如,图7示出了代表典型的CPU的传统的微处理器架构。图7中所示,L2缓存12同步地连接到单核模块,该单核模块包括L3缓存13、存储器控制器14、快速通路进入连接(间连接)15和四关联指令缓存16。可以看出,指令和数据存储器使用L2缓存。L2缓存馈送连接到最后馈送解码指令队列18的指令缓存的一条数据通路17 ;另一通路馈送数据缓存19。L2缓存是哈佛类型的冯?诺依曼存储器,并通过单核模块中的L3缓存连接到其他的冯.诺依曼存储器。虽然可以认为存在各种缓存的一些虚拟化,但它们都是无源设备,其中定时信号和地址空间发送到预定设备,或从预定设备发送定时信号和地址空间,并且信息总是位于其定时信号和数据通路不能改变的预定设备中,因此定义单一域一一DID,具有专用于一个设备的单一目的。在该具有单一域的系统中,数据和指令可以互换,引起计算错误(computat1nal corrupt1n)危险。
[0025]翻译旁视缓冲器(TLB) 20,在图7中示为“L2-TLB”,引用物理(主)冯?诺依曼存储器。TLB具有固定数量的槽,这些槽包含将虚拟地址映射到物理地址的页表项。该空间被分割成预固定大小的多个分页;一个分页用于每一个表项。TLB有两种模式,物理地址和虚拟地址,取决于TLB所在的位置。当TLB位于CPU缓存和主存储器存储之间时,对该缓存进行物理寻址。在物理寻址中,TLB在每个存储器操作上执行查找,位于主存储器中的信息被复制到缓存。
[0026]当TLB位于CPU和缓存之间时,仅当发生缓存未命中时才引用CPUTLB。图7示出了连接到包括四关联指令缓存16和八关联数据缓存19的CPU的L2-TLB。L2-TLB还连接到L3-缓存和存储器控制器,该存储器控制器是混合物理/虚拟位置的类型。
[0027]哈佛架构CPU采用不同的方式。在纯哈佛架构中,如上所述,指令和数据存储器是物理分离的,可以在哈佛架构CPU外部的两条数据通路或数据总线中看到;一条通向指令存储器,另一条连接到数据存储器,这导致两种不同的缓存种类,一种用于指令存储器,另一种用于数据存储器。
[0028]尽管有几种纯哈佛架构的商业示例,但在实际中,大多数哈佛架构使用改性的哈佛架构设计,在有时候称为“改性哈佛架构”。在这种改性中,使用公用存储器设备,数据和指令存储器之间的分离通过存储位置空间划分,而不物理分离。这允许哈佛架构具有使用某种公用存储器而带来的改进的性能。然而,当前的CPU通常在CPU缓存内使得数据和指令存储器分离。这可以在图7中看出,其中信息信号从L2缓存指令存储器地址空间行进到四关联指令缓存。图7中还示出了通过标有“256”的永久连接提供信息给四关联数据缓存的L2缓存数据存储器地址空间。一旦在数据缓存和指令缓存中将信息分离,剩余的进程就像哈佛架构一样进行。图7中还示出了 L2和L3缓存之间的永久连接,它提供从CPU的内部组件到CPU外部组件的通路。应该注意的是,到L2和从L2出来的信息通道是位于CPU内的设备专用的,并与位于CPU内的设备保持同步。这构成单一进程域,DID。
[0029]多核处理器(同质)
[0030]参见图8A和8B,可以将两个或更多的中央处理单元(CPU)封装在单个芯片内,示出了两个示例。在该配置中,每个处理单元都相互独立,但共享内部资源和公用的外部接口。在具有多个内部CPU的封装中,每个CPU都称为核。核如上所述共享资源。一个封装可以包含许多个核。图8A和8B示出了两种类型的双核(CPU)处理器。图8A是具有相应的LI缓存25和共享的L2缓存26的双核处理器。每个核都直接连接到L2缓存,每个I/O控制都管理共享缓存中的指令和数据存储器。如图8B所示,每个核都具有不共享的单独的L2缓存27。在每个情形中,外部接口都通过存储器控制器28或总线接口 29进行配置,并通过核地址空间定义。
[0031]参见图9,示出了 64核CPU。图9是多核CPU的代表,因为对CPU的数量理论上没有限制,虽然实际上存在涉及制造封装的限制。图9左侧的设备示出了该配置如何将信息传输给CPU外部的输入和输出装置,以及如何从CPU外部的输入和输出装置传输信息。在顶部和底部还示出了引用物理(主)冯.诺依曼存储器的四个存储器控制器30。核31在它们自身之间通过2D网网络传输。图9在它的网络节点中具有五条路径,每条路径都专用于传输一种类型的信息。该信息被隔离以增加在内部网络中的传输速度。附接到每个核的是网交换机32 (图9,细节A),它的目的是将信息传输到每个核,以及从每个核传输信息,并将该信息分离成五个数据通路。在每个CPU核的内部是LI和L2缓存,如图9所示,细节Bo在该特定的表示中,LI缓存具有哈佛架构,L2缓存具有冯.诺依曼架构。LI指令和数据TLB确定它们在L2缓存内相应的存储器空间。该设备独特的特征是它在核之间共享L2缓存的能力。
[0032]多核处理器(异质)
[0033]单个CPU封装中的多核的一些其他配置称为图形处理单元,它除了 CPU之外还采用称为GPU的处理单元类型。GPU是被设计为进行与3D计算机图形卡相关的计算的设备。由于3D图形计算涉及复杂的数学运算,因此GPU被设计为进行高速和高效的数学运算。GPU可以用来进行非图形计算。当GPU设计用于该目的时,该设备称为GPGPU (通用GPU)。用于GPGPU计算的模型是在分级、异质的计算模型中一起使用CPU和GPU。在CPU上运行的应用程序的顺序部分和计算密集部分通过GPU加速。在该异质模型中,CPU和GPGPU存储器连同其在冯.诺依曼、哈佛架构或改性的哈佛架构中的存储器一起操作。
[0034]在实际中,应用程序(代码)在主机CPU上启动,主机CPU被分派将应用程序的计算密集部分分配给GPU的任务。应用程序的剩余部分仍然在主机CPU上。将计算密集功能映射到GPU涉及称为并行化的过程。GPGPU设备的制造提供特别的计算命令,方便将数据和指令消息移动到GPU以及从GPU移动数据和指令消息的并行化过程。开发该应用程序的个人被分派使用这些计算命令将称为线程的100s指令片段中的1s同时加载到GPU的任务。GPU硬件管理这些线程,并进行线程调度。
[0035]参见图10,示出了传统的GPGPU和GPU架构。该设计的一个功能是在视频显示器上根据输入算法显示像素值。主机33发送算法调用几何基元给GPGPU输入组装器34,它通常是对一系列GPU进行调度以计算像素值的CPU。虽然线程处理器功能当它使用各种绘制(shading)和呈现硬件和软件从基元变换成像素时可以变得相当复杂,但结果是GPU将像素值信息储存在帧缓冲(FB)存储器35中。FB存储器显示在计算机屏幕上,将图像显示给用户。
[0036]再次参见图10,来自主机的进程被变换成储存在FB存储器中的像素值。从主机发出的进程按特定路线发送到输入组装器GPGPU。输入GPGPU连同线程调度一起使用函数隔离主机进程,并将该隔离的子进程分配给线程发射硬件(thread issue
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1