內(nèi)存網(wǎng)格關(guān)鍵技術(shù)探析
(二)Cache一致性問(wèn)題
在單處理器(uniprocessor)系統(tǒng)中,由于處理器與10子系統(tǒng)看到的內(nèi)存視圖不同而產(chǎn)生了Cache一致性問(wèn)題。這是因?yàn)?0子系統(tǒng)直接讀寫(xiě)的是內(nèi)存區(qū)域:處理器在寫(xiě)回(write-back)策略下,首先讀寫(xiě)的是Cache,只有當(dāng)讀寫(xiě)的塊要被替換時(shí),才將該Cache中的塊內(nèi)容寫(xiě)回到內(nèi)存。這就產(chǎn)生了處理器看到的內(nèi)存視圖與10子系統(tǒng)看到的不一樣的情況。在多處理器(multiprocessors)系統(tǒng)中,Cache一致性問(wèn)題是由對(duì)共享數(shù)據(jù)的緩存引發(fā)。在RAM Grid系統(tǒng)中。由于RAM Grid所擴(kuò)展的緩存層次位于主存和磁盤(pán)之間,處理器并不會(huì)直接進(jìn)行讀寫(xiě)。所以RAM Grid系統(tǒng)并不存在Cache一致性問(wèn)題。
四 異步緩存寫(xiě)入
為了不影響系統(tǒng)效率,內(nèi)存網(wǎng)格系統(tǒng)采用了異步緩存寫(xiě)入的方法來(lái)完成內(nèi)存客戶節(jié)點(diǎn)對(duì)內(nèi)存服務(wù)節(jié)點(diǎn)的數(shù)據(jù)更新。內(nèi)存網(wǎng)格系統(tǒng)使用函數(shù)截獲方法來(lái)修改磁盤(pán)10的執(zhí)行流程,異步寫(xiě)操作發(fā)生在函數(shù)截獲過(guò)程中,而函數(shù)截獲過(guò)程發(fā)生在核心態(tài),所以異步緩存寫(xiě)入不得不選擇在核心態(tài)實(shí)現(xiàn)。為了使寫(xiě)入過(guò)程不對(duì)原來(lái)的。系統(tǒng)執(zhí)行流程造成較大的性能損失,采用了內(nèi)核線程的方法來(lái)完成寫(xiě)入過(guò)程。在內(nèi)核模塊中,我們?cè)O(shè)立了一個(gè)全局緩存區(qū)用以記錄內(nèi)存客戶節(jié)點(diǎn)磁盤(pán)讀寫(xiě)函數(shù)中產(chǎn)生的“新”緩存數(shù)據(jù),而使用一個(gè)內(nèi)核線程來(lái)將內(nèi)存客戶節(jié)點(diǎn)中的新緩存數(shù)據(jù)周期性的寫(xiě)入到內(nèi)存服務(wù)節(jié)點(diǎn)的虛擬塊設(shè)各中。這樣,整個(gè)問(wèn)題演變成了傳統(tǒng)操作系統(tǒng)中的讀者/寫(xiě)者問(wèn)題。緩存數(shù)據(jù)區(qū)的每一個(gè)塊中存放著一個(gè)緩存數(shù)據(jù)結(jié)構(gòu)信息。這個(gè)數(shù)據(jù)結(jié)構(gòu)中包含有設(shè)備號(hào)、塊號(hào)、塊大小、緩存數(shù)據(jù)內(nèi)容和使用標(biāo)志位等元信息,這些信息主要用于緩存數(shù)據(jù)本身的管理和緩存數(shù)據(jù)在內(nèi)存服務(wù)節(jié)點(diǎn)上數(shù)據(jù)的定位。
更多醫(yī)療電子信息請(qǐng)關(guān)注:21ic醫(yī)療電子頻道
評(píng)論