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

文档序号:8344593阅读:来源:国知局
22来执行每个节点描述的函数。这与称为激活或启动指令是相同的过程。节点描述和令牌信息通过MM加载到找取单元,并转发到功能单元23以完成处理。一旦执行单元完成指令,它的输出数据(和它的标记一起)就通过MM存储在匹配单元和随后的存储位置。然后,将依赖于该特定信息的任何函数(通过其标记值识别)标记为已为执行做好准备,并通过MM调度。这样,随后的指令以合适的顺序执行,从而避免竞争情况。该顺序和存储器存储与人类程序员设想的顺序次序不同。函数连同它所需的数据操作数都作为数据包,也称为指令令牌发送到执行单元。
[0127]参见图24,示出了并行数据流架构,包括显示多个匹配、找取和功能单元的容错MM架构。匹配单元令牌通过MM的算法放置在虚拟化存储器中,MM确定可用性,并调度所有的目的地节点。图24还示出了为了简单起见直接连接到功能单元的找取单元,但找取单元和功能单元也可以通过MM虚拟化,因此目的地地址和进程标记的全部虚拟信息都通过MM确定。
[0128]再次参见图24,MM将令牌存储在与匹配单元连接的存储器中。该标记令牌系统与单个系统一样工作。当用于进程实例的全部令牌组装好时,MM将它们发送到可用的找取单元,在这里它们与节点描述组合。MM将该描述存储在存储器中,并将节点描述转发到可用的找取单元,在这里执行进程。如上面提到的,MM也可以虚拟化找取单元和功能单元之间的进程,但未在图24中示出。如果输出是用于输入到匹配单元和/或放置在存储器中以进行后处理的令牌,那么将功能单元的输出放置在用于令牌的存储器中。
[0129]再次参见图示25,其中示出了被包括在标记令牌数据流架构中的MM交换机,与图21中示出的冯.诺依曼/哈佛交换机的功能相同。当匹配单元21接收到标记操作数形式的输入时,将它直接存储在MHa 87中,之后MM-CPU88中断。用于该中断的例程复制与标记操作数相关的所有信息到冗余存储器(MHa或MEM-DID 89),并对找取单元22的信息进行排队。节点创建信息,包括规则集、元配置和功能配置从MM-CPU直接传递到MHa。在信息传递到存储器之后,MM-CPU中断MM-CH 90,MM-CH开始执行MHa中的信息。当全部的标记操作数都变得可用时,MM-CH调度找取单元来执行功能。找取单元和功能单元23统称为“节点”。当节点完成其操作时,它将其输出传递到MM-CH,在这里如果输出是用于任何待处理功能的标记操作数,那么信息被转发给匹配单元,或者传递到MEM-DID,它代表通用系统。如在图21的实施例中,MM-CPU从它的缓存(MM-MEM)91中根据其包括用于特定进程的相关规则集的结构取出合适的信息,然后将信息存储在存储器MHb 92中。然后MHb成为与所选数据流进程相关的有关规则集的存储库。
[0130]参见图26,示出了并行化的MM交换机95,使用异质CPU和架构配置。该交换机的特点在于被配置为容错的元指导器架构的并行化的数据流、冯.诺依曼(SPUVN-n)和哈佛架构(SPUH-n)。参见交换机的数据流部分,以与图23中的进程类似的方式,但在并行化的标记令牌架构中,对匹配单元标记操作数进行调度,并放置在匹配单元中。除了找取单元之夕卜,MM还对匹配单元进行调度。当匹配单元对功能进行处理,并确定它们通过MM的算法放置在虚拟化存储器中的标记操作数。这些操作数或令牌都通过MM存储在与匹配单元连接的存储器中。当用于某一进程实例的全部令牌都组装好时,MM将它们发送到可用的找取单元,在这里它们与节点描述组合。MM将该描述存储在存储器中,并将节点描述转发到可用的找取单元,在这里执行进程。如果输出是用于输入到匹配单元和/或放置在存储器中以进行后处理的令牌,那么将功能单元的输出放置在用于令牌的存储器中。
[0131]CPU 内部
[0132]如前面描述的,图7的代表性CPU称为冯?诺依曼架构,因为它的域引用结合的数据和指令存储器,然而,在内部它被配置为使用哈佛架构。元指导器架构消除冯?诺依曼和哈佛架构之间的区别,并可以用在任何系统中。图27示出了被包括在如前面图7所示的传统的微处理器中的元指导器架构。
[0133]参见图27,示出了被包括在图7的传统的微处理器中的元指导器。在图7中,L2缓存17直接与四关联指令缓存16、八关联数据缓存19和单核模块15通信。在该实施例中,MM交换机98与四关联指令缓存16、八关联数据缓存19和单核模块15直接通信,L2缓存99只与MM交换机通信。四关联指令缓存传输来自L2缓存的指令信息,八关联数据缓存经由MM交换机从L2缓存传输数据信息,以及传输数据信息到L2缓存。而且,图7的L2-TLB20优选地集成在规则集存储器63中。除了不影响它如何传输信息到L2缓存,以及传输来自L2缓存的信息,引入丽也不影响CPU的功能。在该实施例中,MM交换机98以与前面描述的相同的方式虚拟化信息。可以复制L2缓存,以及CPU的多个指令和数据部分以提高容错能力。而且,由于丽负责虚拟化信息,因此可以简化CPU指令集以降低维持它的域的开销。经由DDR3存储器控制器100的双通路存储信息在图27示出的丽内实现,或在图17和19示出的CPU的外部实现。在后者的配置中,外部的丽与内部的丽通信以方便通信和偏置信息到CPU,或来自CPU的信息。尽管图27示出了包括单个算法/逻辑和控制单元的单个CPU,但图26中示出的概念可以容易地整合到图27的架构中以除了图26示出的SPUH_n,SPUVN-n和标记令牌机制之外还包括多个算法/逻辑和控制单元。
[0134]参见图28,丽交换机还可以在传统的微处理器中使用。丽中示出的最简单的形式是组件四关联指令缓存(QAIC)和八关联指令缓存(CADC)。QAIC和CADC两者都连接到MHa 105。在此实施例中,MHa以与图7中的L2缓存相同的功能工作。元指导器的算法虚拟化L2缓存地址空间,并将之划分至少两个部分。这创建了 L2缓存空间的活动和备份分区。在运行中,活动和备份L2存储分区在CPU中断发生时交换功能;如缓存未命中。当这些中断发生时,活动缓存分区变成备份缓存分区。新的活动分区将它的信息复制到新的备份分区。两个分区包含相同的定义CPU在中断时的状态的信息。实际上,分区可以通过操作一个或多个MHa地址位来实现。在初始循环期间,从活动分区到备份分区的实时字符传输复制两个分区,直到第一 CPU中断。在初始循环之后,如前所述地,MM传输主要部分以备份缓存信息。当发生软件故障,如缓存问题时,MM根据备份重启进程。在预定数量的进程故障之后,该进程会被取消,并发送错误消息给操作员。然后,CPU将对其他进程可用。在预定数量的CPU故障之后,将另一类型的错误消息发送给操作员,该CPU被列入黑名单。CPU恢复只有当存在另外可用的QAIC和/或CADC时才发生。其他的丽信息,如指令和数据信息的分离进一步细分。MM-CH、MHb、MM-CPU和MM-MEM组件通常如前面为图21和26描述的那样工作,即MM-CPU是规则集服务器,MM-MEM是主规则集存储库,MHb是相关规则集的存储库,MM-CH执行包括有关数据虚拟化的规则集的规则集和在MHa (La缓存)内调度的指令。另外,MM通过KAC与其他的MM通信来进行偏置。
[0135]MHa中的信息最少是与传统的L2缓存和传统的后备表(TLB)相同的信息。然而,TLB不像传统TLB中那样是静态的,丽维护并与TLB通信,并可以改变如何配置TLB。图28中示出了与MHa直接通信的QAIC和CADC,尽管这不是必须的。当QAIC和CADC直接与MHa通信时,传统L2缓存和元指导器MHa存储器之间没有性能差异。活动和备份分区通过MM-CH屏蔽或去屏蔽地址线来确定。
[0136]传统上说,TLB只具有静态块地址信息。在元指导器架构中,MM-CPU和MM-CH具有改变添加一层容错层的转译后备表的能力。
[0137]在操作中,MM交换机以与前面描述的相同的方式工作。例如,当为了由于缓存未命中的变化发出调用时,MM-CH启动活动和备份分区的交换,并在MHa(L2缓存)备份分区中创建复制。
[0138]MM-CH在交换期间如何工作由从MM-CPU写入到MHa中的信息确定。该信息由当新的SPU(QAIC^P CADC)处理启动时MM-CPU提出的相关规则定义。当开始新的功能时,MM-CPU将信息传输到MHb,并中断MM-CH到由MM-CPU定义的功能。然后,MM-CH使用MM-CPU传输到MHb中的信息定义SPU (QAIC和CADC)地址空间和规则集。当在MM-CPU和MHb之间进行规则集和数据传输时,可以检查SPU和/或MM-CH的完整性。SPU和MM-CH的完整性检查通过监视MM和SPU之间的通信来实现;这样当经过足够长的时间时,当在SPU实体之间不存在通信时,将该SPU列入黑名单。确定组件故障的方法将在稍后讨论。当SPU上的处理失败几次,或当SPU故障并检查完整性时,可以发生另一黑名单事件。在SPU故障的情况下,可以调度另一 SPU(QAIC和CADC)来处理位于L2缓存内的状态信息。MM可以重新调度另一处理器,或可以请求将L2缓存传输到另一 MM域。
[0139]可重新配置的CPU
[0140]图1和4示出了 CPU的经典定义,其中控制单元(⑶)与算术逻辑单元(ALU)相关联。此类型的CPU的扩展包括多核CPU,每一个核都包含⑶和ALU。丽具有不同的方式。
[0141]参见图29,元指导器架构包括多个⑶110和ALU 111。每个⑶独立于每个ALU,但它们通过MM核交换机112 (MMCS)、MM定时时钟(示出出)和核元指导器(CMM) 113的数据集连接。来自L2缓存114的指令信息通过与图28中描述的相同的QAIC进程连接到丽指令总线,该QAIC进程将指令信息从MM指令总线按特定路线发送到CU 110之一的指令缓存。哪个指令缓存是接收方由CCM算法确定。MMCS将⑶指令单元连接到可用的ALU,并根据CMM规则集和算法协调数据缓存和指令缓存进程。丽数据总线与图28中的QADC类似。它的目的是为了将数据信息分配给L2缓存和ALU 111中的数据缓存单元,和分配来自L2缓存和ALU 111中的数据缓存单元的数据信息。如为图28说明的,丽处理器115和116指导去往以及来自L2缓存114的信息。数据信息如何分配由CMM中的算法确定,并与CU中的处理和MMCS的连接协调。MMCS与图21中示出的设备类似,用图23和24中示出的数据流配置替换MHb和MM-CH。图29中示出的配置允许CPU内几个区域的灵活性,包括CPU组件110和111中的容错、高效缓存一致性和ALU/⑶组件使用优化。缓存MM(包括MM-CPU115、MM-CH 116和相关联的存储器)和核丽113之间的操作通过相应的KAC之间的通信协调。
[0142]双CPU配置
[0143]参见图30A和30B,元指导器架构包括一个以上的CPU(QAIC和CADC)。前面使用图8A和8B描述了双核CPU配置,并示出了共享和专用的L2缓存以及它们的支持结构。丽和CPU的不同制造保证完整性。图30A和30B示出了类似的共享和专用L2缓存以及丽支持结构。可以看出,考虑到MM-CPU算法对MHb足够的控制和MM-CH执行,在共享和专用存储器配置之间不存在区别。丽使用逻辑算法创建CPU系统,8A和SB的架构使用静态物理设计。MM替换物理支持结构,并虚拟化调度和信息地址空间。
[0144]MM架构优于静态双CPU设计的一个优势是它在组件故障时重新调度进程的能力。如果组件故障,那么MM的算法将正在使用故障组件的进程重新调度到可以工作的组件;并且总体单元没有中断,继续工作。在双CPU设计中,MM像代表性单个CPU示例那样工作,其中丽的算法将MHa(L2缓存)划分为活动和备份分区。在双CPU/核设计的情形中,丽的算法为每个CPU/核将L2缓存划分为活动和备份分区。这创建最少四个分区。图30B中的L2缓存示出了具有到核-O和核-1的公共连接的两个不同的L2缓存模块。该配置允许MM任意分配和指定分区和核-O或核-1。类似地,分区中的信息可以任意分配给任何核或(QAIC和CADC)。图8A和8B中的中断和I/O控制;系统请求接口和纵横交换机已经用图30B中示出的丽的算法,中断和I/O控制方案替换。
[0145]多核处理器
[0146]图31示出了多核CPU内的元指导器架构。MM交换机配置与前面的示例中示出的配置类似。每个核都示出为具有指令缓存(QAIC)和数据缓存(DACD)。在该示例中,存储器模块MHa (L2缓存)120被划分成16个虚拟化分区,每个核使用两个,更多的存储器地址空间MHb专用于描述MM-CH如何处理核信息的相关规则集的功能。与前面图28中的示例一样,每个核分区都有活动和备份分区。在操作中,核的MHa的活动分区被复制到备份分区创建检查点。该信息的一部分传输到指令缓存,另一部分传输到数据缓存。核使用该信息,直到数据或指令被消耗完,在此时核请求从MHa分区向任一缓存传输信息。如果核在任何时刻故障,那么MM-CH调度算法重新调度另一个核来处理来自上一个检查点的信息。在L2缓存中的信息被消耗完的情况下,用新的信息填充活动分区,该新的信息被复制到备份分区;创建新的检查点,核继续处理信息。MM的特点在于,它能够将信息偏置到L2以及指令和数据缓存中,使得能够在它完全耗尽前将新的信息拉入L2缓存,由此消除保存和从主存储器找取信息的等待时间。MH-CH,MHb,MM-CPU和MM-MEM组件通常如前面关于图21和26描述地那样工作,即MM-CPU是规则集服务器,MM-MEM是主规则集的存储库。MHb是相关规则集的存储库,MM-CH执行包括有关MHa (L2缓存)中数据虚拟化和指令调度的规则集的规则集。
[0147]如果MM-CPU中断以服务设备,如图21的PIT-DID,那么MM-CPU算法使用首先试图调度未使用的核的MM-CH。如果所有的核都处于繁忙中,那么MM-CH调度中断将要服务系统请求的核。当该情况发生时,L2缓存如前所述地以中断容错进程的方式保存在MM系统存储器中,服务例程进程加载到MHa,并使用与关于图28的偏置的L2缓存的活动和备份分区划分相似的算法在核上开始。以此方式,中断进程被集成到容错L2缓存中。已经被中断以运行服务例程换出的进程可以在任何可用的核上重启。
[0148]再次参见图31,发送到和从丽发送的信息划分为两个流,KAC 121和KAC-1nfo122。KAC流是私有流,它的通信限制为系统内的其他MM-CPU。KAC-1nfo信息是与系统内其他非MM-CPU组件通信的指令、数据和控制信息。例如,当MHa 120用主系统存储器换出分区时,它使用KAC-1nfo流来传输信息。这两个流出于安全原因划分,一个流不能污染另一个流。KAC流还通过如图32所示的私有总线保持跟踪位于其他元指导器模块上的冗余信息,其中八个丽模块组合成64核CPU。
[0149]存储器一致性
[0150]微处理器技术朝着多核处理趋势发展,其中单个CPU封装包含多个CPU “核”。多个核通常包括共享公共的冯.诺依曼式资源,如L2缓存中的一致共享的存储器的哈佛架构。由于冯.诺依曼资源在核之间共享,因此访问冯.诺依曼资源中的信息的策略和算法显著不同于单核处理器。虽然多核分布式系统中的缓存可以产生改善的核性能,但多核配置会引入缓存一致性问题。有几种类型的缓存一致配置。
[0151]1.直接缓存一致性(DirCC)
[0152]信息的多个拷贝在缓存存储器的固定分区上共享。信息通过将新的信息级联传输(cascade)到缓存内的分区而更新。信息通过在构建设备时确定的固定的本地连接读取。
[0153]2.远程缓存访问(RMA)
[0154]该技术使用一个较大的虚拟非均匀缓存访问(NUCA)缓存。每个核都分配一个在此处访问信息的起始地址空间。如果核请求不在该起始地址空间内的信息,那么它参考将代表其自身执行该存储器操作的另一设备。
[0155]3.执行迀移机器(EM2)
[0156]存储器分配给核,而不是核分配给存储器。
[0157]4.基于目录的一致性(DBC)
[0158]在基于目录的系统中,共享的数据放置在保持缓存之间的一致性的公共目录里。该目录用作过滤器,通过该过滤器,处理器必须获得许可来从主存储器加载项目到它的缓存。当项目变化时,目录使用该项目更新或无效其他缓存。
[0159]5.库缓存一致性(LCC)
[0160]库复制数据到多个本地核。审核来自缓存信息中央库的信息,并将拷贝放置在只读本地目录上。信息基于超时进行更新。
[0161]监听(snooping)是单独的缓存监视用于访问它们已经缓存的存储位置的地址线的过程。当观测到对缓存具有其拷贝的位置的写入操作时,缓存控制器使得它自己监听得到的存储位置的拷贝无效。
[0162]窃用(snarfing)是缓存控制器观察地址和数据两者以当第二主规则(master)修改主存储器中的位置时试图更新它自己的存储位置拷贝的过程。当观测到对缓存具有其拷贝的位置的写入操作时,缓存用新的数据更新它自己窃用的存储位置的拷贝。
[0163]所有这些缓存方案都有专用的架构。MM使用动态存储方式,其中虚拟化缓存方案与处理算法进行匹配以提升缓存效率。例如,当多个缓存需要同时更新时,MM可以为特定的变量创建多次写入,与存储器中的冗余写入类似。对LCC方案进行审核或虚拟化。本地缓存的更新可以虚拟化
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1