内存网格关键技术探析
(二)Cache一致性问题
在单处理器(uniprocessor)系统中,由于处理器与10子系统看到的内存视图不同而产生了Cache一致性问题。这是因为10子系统直接读写的是内存区域:处理器在写回(write-back)策略下,首先读写的是Cache,只有当读写的块要被替换时,才将该Cache中的块内容写回到内存。这就产生了处理器看到的内存视图与10子系统看到的不一样的情况。在多处理器(multiprocessors)系统中,Cache一致性问题是由对共享数据的缓存引发。在RAM Grid系统中。由于RAM Grid所扩展的缓存层次位于主存和磁盘之间,处理器并不会直接进行读写。所以RAM Grid系统并不存在Cache一致性问题。
四 异步缓存写入
为了不影响系统效率,内存网格系统采用了异步缓存写入的方法来完成内存客户节点对内存服务节点的数据更新。内存网格系统使用函数截获方法来修改磁盘10的执行流程,异步写操作发生在函数截获过程中,而函数截获过程发生在核心态,所以异步缓存写入不得不选择在核心态实现。为了使写入过程不对原来的。系统执行流程造成较大的性能损失,采用了内核线程的方法来完成写入过程。在内核模块中,我们设立了一个全局缓存区用以记录内存客户节点磁盘读写函数中产生的“新”缓存数据,而使用一个内核线程来将内存客户节点中的新缓存数据周期性的写入到内存服务节点的虚拟块设各中。这样,整个问题演变成了传统操作系统中的读者/写者问题。缓存数据区的每一个块中存放着一个缓存数据结构信息。这个数据结构中包含有设备号、块号、块大小、缓存数据内容和使用标志位等元信息,这些信息主要用于缓存数据本身的管理和缓存数据在内存服务节点上数据的定位。
更多医疗电子信息请关注:21ic医疗电子频道
评论