登錄

緩沖存儲器

百科 > 計算機 > 緩沖存儲器

1.什么是緩沖存儲器[1]

  緩沖存儲器是指通過臨時存儲,能使數(shù)據(jù)在具有不同傳遞特性的兩個功能單元之間傳遞的專用存儲器或存儲區(qū)。

2.緩沖存儲器的結構[2]

  緩存讀雙字指令的速度為120ns,內存的速度為1100ns,處理機的速度為150~300ns。緩存的速度比內存高一個數(shù)量級,同處理機的速度相匹配。這樣,緩存在處理機和內存之間起到了緩沖的目的。

  處理機、緩存和內存形成了三級存儲結構,其關系如圖1所示。
Image:處理機、緩存和內存的關系.jpg
  緩沖存儲器由緩沖存儲器、緩存目錄和緩存控制器三部分構成。通常緩沖存儲器和內存都分為若干塊,我們以4KB的緩存為例,假設每塊的大小為64字節(jié),把緩存分為2個區(qū),每區(qū)2KB,每區(qū)有32個塊,同一區(qū)中的各塊用列號來表示,如圖2所示。
Image:4KB緩存的區(qū)塊形式.jpg

  4KB緩存的緩存目錄有32個表目,對應緩存的0~31的列號,緩存目錄的表目分為兩個區(qū),對應于緩存的兩個區(qū)0~1。這樣緩存中的每一塊都對應一個固定的表目。每個表目包括內存地址行號和狀態(tài)位,另外,兩區(qū)的每個表目對應一個標志位。表目的內存地址行號表示緩存塊的內容所對應的內存地址所在的行。狀態(tài)位有三種:有效位、修改位、故障位。當有效位為1時,表示該表目對應的緩存塊中的數(shù)據(jù)已經(jīng)是無效的:為0時,則對應是有效的。

  當修改位為1時,表示該表目對應的緩存塊中的數(shù)據(jù)已經(jīng)被修改過;為0時,則沒有修改過。

  當故障位為1時,表示該表目對應的緩存塊有故障,否則無故障。標志位表示最近訪問了兩區(qū)中的哪一區(qū),以作為選擇淘汰塊使用。緩存目錄的結構形式如圖3所示。
Image:4KB緩存目錄的結構形式.jpg
  同樣,內存和緩存一樣也分成64字節(jié)的塊,每行有32列,大小為2KB,行號的大小由內存的大小來確定。其形式如圖4所示。
Image:內存的劃分形式.jpg

  這樣,在編寫內存地址的時候,就可以用行號、列號、每塊的字節(jié)數(shù)的格式來表示。例如,80386的編址形式為行號(17位),列號(10位),字節(jié)數(shù)(5位)。

3.緩沖存儲器的工作原理[2]

  由于處理機在進行讀取和寫入時,緩沖存儲器的工作過程不同,分別描述如下。

  (1)讀取指令或數(shù)據(jù)。當處理機要讀取指令或數(shù)據(jù)時,緩存控制器就自動查找緩存目錄,以確定包含指令或數(shù)據(jù)的內存塊是否在緩存中。它是根據(jù)指令或數(shù)據(jù)地址的列號部分查找緩沖目錄表目的列號,然后把對應列號表目中分屬區(qū)0和區(qū)1的內存地址行號與指令或數(shù)據(jù)地址的行號部分進行比較。如果匹配,并且狀態(tài)位中的有效位為“0”,則把匹配表目所對應的緩存塊中的內容直接送給處理機,且把標志位表示成對應塊最近已被訪問過。若兩個區(qū)的對應表目中的內存地址行號都不與之匹配,則說明該塊不在緩存。需要從內存中把該塊內容送給處理機,同時該塊內容也被送到緩存中的相應列的某塊內。

  (2)寫入數(shù)據(jù)。當處理機要求寫入數(shù)據(jù)到某內存單元時,也是首先由緩存控制器查找緩存目錄,如包含此單元地址的內存塊已經(jīng)在緩存中,則處理機把在緩存中的該塊內容加以寫入,并把緩存目錄中相應表目中的修改位置為“1”。這里是不是直接寫入內存,有兩種方法:惰性方法和立即存方法。惰性方法是指數(shù)據(jù)寫入緩存時,不立即修改相應內存塊中的內容,而是直到該緩存塊中的內容被淘汰出緩存時,才把該緩存塊寫入內存相應塊中。立即存方法是指對緩存和內存的相應塊同時寫入。若該塊不在緩存中,則先把該塊從內存讀入緩存,然后再寫入緩存中。

  (3)通道讀取指令或數(shù)據(jù)。當通道(I/0處理機)從內存讀取指令或數(shù)據(jù)時,則查找緩存目錄,假若包含該指令或數(shù)據(jù)地址的塊在緩存中,則從緩存中把該塊送往通道。若不在緩存中,則從內存讀出,但不把該塊放入緩存中。

  (4)通道寫入數(shù)據(jù)。當通道向內存某單元寫入數(shù)據(jù)時,該數(shù)據(jù)只寫入內存中。但緩存控制部件同時查找緩存目錄。如果不在緩存中,則不進行任何操作。若該內存單元所在的塊在緩存中,則相應表目的狀態(tài)位中的有效位被置成“1”,使該數(shù)據(jù)塊無效。

  緩沖存儲器的設置,使CPU所需的指令與數(shù)據(jù)絕大多數(shù)來自緩存,而不通過總線去訪問內存,避免了處理機的等待,大大提高了系統(tǒng)的吞吐率,是發(fā)揮處理機能力的有效方法。

評論  |   0條評論