论文部分内容阅读
高速缓存一致的非对称访存系统(CC-NUMA)是当前被广泛应用的多机系统之一。与传统的MIMD系统一样, Cache一致性问题也是CC-NUMA系统必须首先解决的问题。因为其对系统性能和可扩展性等方面都有重要的影响。本文介绍并分析了当前国内外的CC-NUMA系统在解决Cache一致性问题上所采用的几种协议以及其在系统性能和可扩展性方面所存在的不足之处。针对这些不足,提出了一种应用于CC-NUMA系统的基于两级目录协议的目录-数据Cache结构。具体而言,即是在CC-NUMA的目录存储器(第二级目录)上增加一个目录Cache(第一级目录),其中第一级目录使用有限(Limited)目录协议,第二级目录使用全映射(full- map)目录协议。文中称此为两级目录协议。同时通过对目录Cache进行字扩展的方式,在共享数据存储器层上增加了一个数据Cache层,文中称此Cache结构为基于两级目录协议的目录-数据Cache结构。另外,为了避免出现目录项溢出问题,又设计了一种名为共享加权LRU的Cache替换算法。然后从系统性能以及可扩展性方面,分析比较了两级目录与全映射目录和有限映射目录在空间复杂度的优劣。证明两级目录在空间复杂度较有限映射增加很小的代价下,其性能接近或超过了全映射目录。同时又有效避免了制约有限目录性能的目录项溢出问题。最后使用通用的测试程序对共享加权LRU算法在Cache命中率方面,与经典LRU进行了对比测试。证明共享加权LRU算法在代价很小的前提下,保证了高共享数据处于Cache中,进一步降低了发生目录项溢出的概率。在此基础上,本文主要针对两级目录结构的设计思想,采用了硬件描述语言(VHDL)对其进行了逻辑实现和模拟仿真。首先,我们对基于两级目录的目录-数据Cache结构从功能上对其进行了模块划分,分配了每个模块所要完成的功能。其次,在认真分析模块与模块之间关联关系的基础上,详细描述了我们在设计与实现过程中的关键技术。第三,对所划分的模块采用硬件描述语言VHDL进行具体的设计与实验。第四,通过目录-数据Cache系统的性能分析实验,对基于两级目录的目录-数据体系的功能和整体性能进行了初步的模拟和测试。模拟和测试结果表明,应用于CC-NUMA系统的目录-数据Cache结构,有效地克服了系统性能以及可扩展性(scalability)与目录存储开销之间的矛盾,且能很好地解决Cache数据一致性的问题。而逻辑综合结果表明目录-数据Cache结构的实现复杂度低,硬件开销也相对较小,能够较好的满足CC-NUMA系统的需要。