片上多核處理器共享資源分配與調度策略研究綜述(二)
前面提到,緩存的關聯(lián)度與路數相關。但是在緩存分區(qū)中,若每個線程只能使用其中部分路的緩存,則會破壞緩存的這種關聯(lián)度,導致由沖突帶來的緩存失效率上升。Sanchez 等在文獻中提出的zcache,通過解除緩存路數與關聯(lián)度之間的耦合關系,使得緩存的關聯(lián)度遠高于實際的物理路數(例如,一個實際只有4 路組相聯(lián)的緩存可以取得類似64 路緩存的關聯(lián)度)。這種方法在提高關聯(lián)度的同時,也從邏輯上增加了緩存的路數,減小了分區(qū)粒度。
在此基礎上,Sanchez 等進一步在文獻中針對之前的UCP 策略分區(qū)粒度大、可擴展性差、效率低的問題,提出緩存分區(qū)策略Vantage,可以有效克服上述缺點。Vantage 以緩存行為單位進行緩存分區(qū),解決了分區(qū)粒度大的問題;Vantage 以較小的代價把共享緩存分為數十個分區(qū),解決了隨著線程數增多緩存分區(qū)可擴展性差的問題;同時在Vantage 中,不會破壞緩存的關聯(lián)度,避免由于緩存關聯(lián)度降低導致的緩存失效;并且線程間仍然執(zhí)行嚴格分區(qū),杜絕線程間的相互干擾。與之前的緩存分區(qū)方案的另外一個不同點在于,Vantage 中并不會把全部共享緩存空間分配給所有的線程,而是保留一小部分(例如,10%的緩存空間)。當線程對于緩存的實際需求超出緩存分區(qū)策略分配給該線程的緩存空間時,可以共用保留的這部分共享緩存,而不是占用其他線程的緩存空間。
評論