當前位置:首頁 » 服務存儲 » 存儲層次結構利用了時間局部性
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲層次結構利用了時間局部性

發布時間: 2022-06-14 04:23:45

存儲結構的儲存器方面的儲存結構

儲存系統的層次結構為了解決存儲器速度與價格之間的矛盾,出現了存儲器的層次結構。 在某一段時間內,CPU頻繁訪問某一局部的存儲器區域,而對此范圍外的地址則較少訪問的現象就是
程序的局部性原理。層次結構是基於程序的局部性原理的。對大量典型程序運行情況的統計分析得出的結論是:CPU對某些地址的訪問在短時間間隔內出現集中分布的傾向。這有利於對存儲器實現層次結構。 目前,大多採用三級存儲結構。
即:Cache-主存-輔存,如下圖:
3、多級存儲系統的性能
考慮由Cache和主存構成的兩級存儲系統,其性能主要取決於Cache和貯存的存取周期以及訪問它們的
次數。(存取周期為: Tc,Tm ;訪問次數為: Nc,Nm)
(1)Cache的命中率 H= Nc / (Nc+Nm)
(2)CPU訪存的平均時間 Ta= H * Tc+ (1-H) Tm
Cache-主存系統的效率
e= Tc / Ta
=1/H+(1-H)Tm/Tc
根據統計分析:Cache的命中率可以達到90%~98%
當Cache的容量為:32KB時,命中率為86%
64KB時,命中率為92%
128KB時,命中率為95%
256KB時,命中率為98%

㈡ 計算機組成原理中的局部性原理是什麼

時間局部性就是,最近被訪問的存儲單元,在之後很有可能會被再次訪問到;

空間局部性就是,對於正在被訪問的存儲單元附近的位置,在之後很有可能會被訪問到。

這個很容易理解,以一段常見的代碼為例:

for(i = 0; i <= 100; i++) {

sum += array[i];

}

其中i、sum 這些元素現在正被訪問,在之後也一定會被重復訪問,這就是時間局部性;

而array這個數組,現在訪問了array[0]的位置,那之後緊接著就會訪問它附近的位置,比如array[1]、array[2]等等,這就是空間局部性。

根據局部性原理,可以做一些相關設計。比如cache就是利用局部性原理設計出來的。

㈢ 1. 簡述存儲系統層次結構的基本思想

制約計算機存儲器設計的問題歸納起來有三個:容量多大?速度多快?價格多貴?
容量多大的問題似乎沒有限制,不管容量多大,總要開發出應用來使用它。速度多快的問題在某種意義上更容易回答。為了獲得多大的性能,存儲器速度必須能夠跟上處理器的速度,即當處理器執行指令時,我們不想使它停下來等待指令或操作數。最後一個問題也必須考慮,對於實用的系統,存儲器的價格相對於其他部件必須是合理的。
正如人們所預料的,在存儲器的3個關鍵特性即價格、容量和存取時間之間需要進行權衡。任何時候,都有各種技術可用來實現存儲系統。在這個技術領域中,存在如下關系:
存取時間越短,每位的價格就越高;
容量越大,每位的價格就越低;
容量越大,存取時間就越長;
很顯然,擺在設計者面前的難題是,不僅需要大容量,而且需要低的每位價格,因此希望採用提供大容量存儲器的技術。但為了滿足性能需求,設計者又必須使用昂貴、容量較小和存取時間快的存儲器。
解決這個難題的方法是採用存儲器層次結構,而不只是依賴單一的存儲部件或技術。下圖給出了一個通用存儲層次結構,圖中從上到下,出現下列情況:
每位價格降低;
容量增大;
存取時間增大;
處理器訪問存儲器的頻度降低;
因此,容量較小、價格較貴、速度較快的存儲器可作為容量較大、速度較慢的存儲器的補充。這種組織方式成功的關鍵是最後一項,即處理器訪問存儲器的頻度降低。
條件四有效的基礎是訪問局部性原理。在程序執行的過程中,處理器訪問存儲器中的指令和數據傾向於成簇(塊)。程序通常通常包含很多迭代循環和子程序,一旦進入了一個循環和子程序,則需重復訪問一小組指令。同樣,對於表和數組的操作,包含存取一簇簇的數據。在一長段時間內,使用的簇是變動的;而在一小段時間內,處理器主要訪問存儲器中的固定簇。
因此,通過分層結構組織數據,有可能使存取較低層的百分比低於存取高層存儲器的百分比。考慮剛才給出的二級存儲器的例子,讓第二級的存儲器包含所有程序的指令和數據,當前的簇臨時放在第一級,第一級的某些簇會不時地交換回第二級,為將要進入第一級的簇騰出空間。然而,平均來說,多數的訪問是對第一級中的指令和數據。
這個原則可以應用到二級以上的存儲器。考察圖所示的分層結構,速度較快、容量較小且價格最貴的存儲器是處理器的內部寄存器。下跳兩層是主存儲器,它是計算機中主要的內存系統。主存儲器常用速度更快,容量更小的高速緩存來擴充。
(很多體系結構或組成原理相關的書籍上都有的。回答比較粗糙,建議你參考William Stalling的計算機組織與體系結構,這本書上有對該問題的完整的論述。)

㈣ 什麼是程序訪問的局部性存儲系統中哪一級採用了程序訪問的局部性原理

程序訪問的局部性是指程序在執行時呈現出局部性規律,即在一段時間內,整個程序的執行僅限於程序中的某一部分。它們傾向於引用的數據項鄰近於其他最近引用過的數據項,或者鄰近於最近自我引用過的數據項。局部性通常有兩種形式:時間局部性和空間局部性

存儲系統中Cache-主存層次和主存-輔存層次均採用了程序訪問的局部性原理。

㈤ 什麼是分級的存儲體系結構它主要解決了什麼問題

分級存儲是將數據採取不同的存儲方式分別存儲在不同性能的存儲設備上,減少非重要性數據在一級本地磁碟所佔用的空間,還可加快整個系統的存儲性能。分級存儲是根據數據的重要性、訪問頻率、保留時間、容量、性能等指標,將數據採取不同的存儲方式分別存儲在不同性能的存儲設備上,通過分級存儲管理實現數據客體在存儲設備之間的自動遷移。

數據分級存儲的工作原理是基於數據訪問的局部性。通過將不經常訪問的數據自動移到存儲層次中較低的層次,釋放出較高成本的存儲空間給更頻繁訪問的數據,可以獲得更好的性價比。這樣,一方面可大大減少非重要性數據在一級本地磁碟所佔用的空間,還可加快整個系統的存儲性能。

(5)存儲層次結構利用了時間局部性擴展閱讀

在分級數據存儲結構中,存儲設備一般有磁帶庫、磁碟或磁碟陣列等,而磁碟又可以根據其性能分為FC磁碟、SCSI磁碟、SATA磁碟等多種,而快閃記憶體存儲介質(非易失隨機訪問存儲器(NVRAM))也因為較高的性能可以作為分級數據存儲結構中較高的一級。一般,磁碟或磁碟陣列等成本高、速度快的設備,用來存儲經常訪問的重要信息,而磁帶庫等成本較低的存儲資源用來存放訪問頻率較低的信息。

信息生命周期管理(Information Lifecycle Management,ILM)是StorageTek公司針對不斷變化的存儲環境推出的先進存儲管理理念,ILM試圖實現根據數據在整個生命周期過程中不斷變化的數據訪問需求而進行數據的動態分布。

分級存儲和ILM在存儲體系結構上基本相同,目標也都是使不同級別的數據在給定時間和不同級別的存儲資源能夠更好的匹配。二者本質差別是數據分級的標准不同:前者標准為數據近期被訪問的概率;後者標准為數據近期對企業的價值。

㈥ 空間局部性和時間局部性的策略是什麼

進程運行時,在一段時間里,程序的執行往往呈現高度的局部性,包括時間局部性和空間局部性。時間局部性是一旦一個指令被執行了,則在不久的將來,它可能再被執行。空間局部性是一旦一個指令一個存儲單元被訪問,那麼它附近的單元也將很快被訪問。

程序的局部性原理是虛擬存儲技術引入的前提。虛擬存儲的實現原理是,當進程要求運行時,不是將它全部裝入內存,而是將其一部分裝入內存,另一部分暫時不裝入內存。

(6)存儲層次結構利用了時間局部性擴展閱讀:

時間局部性

如果在某一點時訪問了存儲器的特定位置,則很可能在不久的將來將再次訪問相同的位置。在對相同存儲器位置的相鄰訪問之間存在時間接近性。

在這種情況下,通常努力將訪問過的數據的副本存儲在可以被更快訪問的特殊存儲器中。時間局部性是空間局部性的特殊情況,即當預期位置與當前位置相同時。

空間局部性

如果特定存儲位置在特定時間被訪問,則很可能在不久的將來訪問附近的存儲位置。在這種情況下,通常嘗試猜測當前訪問周圍的區域的大小和形狀,對於該區域,值得准備更快的訪問。

局部性的原因

局部性有幾個原因。這些原因是某些方面要實現的目標或接受的情況。以下原因不是不相交的;事實上,下面的列表從最一般的情況到特殊情況:

可預測性:事實上,局部性只是計算機系統中一種可預測的行為。

程序結構

局部性通常因為創建計算機程序的方式而發生,用於處理可決定的問題。通常,相關數據存儲在存儲器中的附近位置。計算中常見的一種模式涉及幾個項目的處理,一次一個。這意味著如果進行大量處理,則將訪問單個項目多次,從而導致時間局部性。

此外,移動到下一項意味著將讀取下一項,導致空間局部性,因為存儲器位置通常被批量地讀取。

線性數據結構

局部性通常因為代碼包含循環,傾向於通過索引訪問數組或其他數據結構。當相關數據元素被線性地排列和訪問時,發生順序局部性,即空間局部性的特殊情況。例如,從基地址到最高元素的一維數組中的元素的簡單遍歷將利用存儲器中數組的順序局部性。

當線性遍歷在具有相同結構和大小的相鄰數據結構的較長區域上,訪問每個結構的相互對應的元素而不是整個結構時,發生更一般的等距局部性。這是當矩陣被表示為行的順序矩陣並且需要訪問矩陣的單個列時的情況。

內存層次結構的效率

雖然隨機存取存儲器使程序員能夠在任何時間在任何地方讀取或寫入,但在實踐中,等待時間和吞吐量會受到高速緩存的效率的影響,這通過增加訪問局部性來改進。訪問局部性差導致緩存抖動和緩存污染,為了避免它,具有弱局部性的數據元素可以從緩存旁路。

參考資料:網路-訪問局部性

㈦ 什麼是程序訪問的局部性,存儲系統中哪一級採用了程序訪問的局部性原理

程序訪問的局部性是指程序執行的局部規律,即在一段時間內,整個復製程序的執行僅限於程序的一部分。

他們傾向於引用與其他最近引用的項相鄰的項,或者與最近自引用的項相鄰的項。局部性通常有兩種形式:時間局部性和空間局部性

在存儲系統中,cache-mainmemory層次結構和main-secondarymemory層次結構採用了程序訪問的本地原則。

程序局部性包括程序的時間局部性和空間局部性。

1.程序的時間位置:指的是要被raider程序使用的信息可能是當前正在使用的信息。

2.程序的空間定域性:指程序所使用的信息可能是相鄰的,也可能是與空間中所使用的信息相鄰的。

(7)存儲層次結構利用了時間局部性擴展閱讀:

丹寧根據程序的局部化理論,提出了工作集理論。工作集是進程運行時頻繁訪問的頁面集合。

顯然,我們知道,通過將程序的工作集完全保存在內存中,可以極大地減少進程中丟失的頁面數量。否則,進程將在進程頻繁的頁面中斷中運行,從而出現頻繁的頁面in/out現象100,導致系統性能下降,甚至出現「抖動」。

工作集的劃分可以通過固定的時間長度或固定的頁面長度來完成。當發生碰撞現象時,說明系統負荷過大。二是控制缺頁率,當缺頁率達到極限時,再增加內存分配量;當缺頁率達到下限時,內存分配就會減少。

㈧ 局部性原理

局部性通常有兩種形式:

時間局部性(temporal locality):在一個具有良好時間局部性的程序中,被引用過一次的內存位置很可能在不遠的將來再被多次引用。
空間局部性(spatial locality)在一個具有良好空間局部性的程序中,如果一個內存位置被引用了一次,那麼程序很可能在不遠的將來引用附近的一個內存位置。
程序員應該理解局部性原理,一般而言,有良好局部性的程序比局部性差的程序運行得更快。


現代計算機系統的各個層次,從硬體到操作系統,再到應用程序,它們的設計都利用了局部性。

在硬體層,局部性原理允許計算機設計者通過引入小而快速的高速緩存存儲器來保存最近被引用的指令和數據項,從而提高對主存的訪問速度。
在操作系統級,局部性原理允許系統使用主存作為虛擬地址空間最近被引用塊的高速緩存。類似的,操作系統用主存來緩存磁碟文件系統中最近被使用的磁碟塊。
在應用程序的設計中,局部性原理也扮演者重要角色。如Web瀏覽器將最近被引用的文檔放在本地磁碟上,利用的就是時間局部性。大容量的Web伺服器將最近被請求的文檔放在前端磁碟高速緩存中,這些緩存能滿足對這些文檔的請求,而不需要伺服器的干預。

㈨ 簡述程序局部性原理.這個原理在分級的存儲體系結構中是怎樣起作用的

首先說明,個人學習不好,以下僅僅參考,不要當真
存儲的問題就是存儲區大則搜索慢,存儲區小搜索快
理論上,希望能快速搜索,需要用小存儲區。
但是在存儲區內一旦找不到數據,需要與進行數據交換。而交換數據比在大存儲區內搜索更花時間
即,存儲區小,搜索快,但是交換多
存儲區大,搜索慢,交換少
所幸的是,一般下次可能使用的數據是在這次使用數據附近
所以,可以將這次在大存儲區使用的數據附近的數據作為一塊,整個讀入小的更快的存儲器。以供下次可能再次使用。則既可以在小存儲器里快速讀取而且可以以很高的概率在小存儲器內讀到。
由於學習不好,以上就當亂說,不要當真

㈩ 什麼是存儲訪問的局部性原理,它分別成哪兩個方面的局部性

程序局部性原理:虛擬存儲管理的效率與程序局部性程序有很大關系。根據統計,進程運行時,在-
段時間內,其程序的執行往往呈現岀高度的局限性,包括時間局部性和空間局部性
1、時間局部性:是指若一條指令被執行,則在不久的將來,它可能再被執行
2、空間局部性:是指一旦一個存儲單元被訪問,那它附近的單元也將很快被訪問