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