1. 程式人生 > >計算機組成原理補充——三種重新整理方式,存取週期>存取時間的原因

計算機組成原理補充——三種重新整理方式,存取週期>存取時間的原因

常見的動態RAM的共同特點是都靠電容儲存電荷的原理來寄存資訊,電容上的電荷一般只能維持1~2ms,因此即使電源不掉電,資訊也會自動消失,所以必須在2ms內對其所有儲存單元恢復一次原狀態,稱為重新整理,重新整理是一行一行進行的。又因為記憶體就一套地址譯碼和片選裝置,重新整理與存取有相似的過程,它要選中一行,這期間片選線、地址線、地址譯碼器全被佔用著。所以重新整理與存取不能並行。同理,重新整理操作之間也不能並行,意味著一次只能刷一行。

(1).集中重新整理

指在規定的一個重新整理週期內,對所有儲存單元集中一段時間逐行進行重新整理。(一般是重新整理週期的最後一段時間)
例如:對64*64的矩陣重新整理,存取週期是0.5us,重新整理週期為2ms(佔4000個存取週期)。
則集中重新整理共需0.5*64=32us(佔64個存取週期),在這段時間記憶體只用來重新整理,阻塞一切存取操作,其餘3968個存取週期用來讀/寫或維持資訊。
這64個存取週期稱為“死時間”,所佔的比率64/4000*100%=1.6%稱為死時間率。
這種方式的優點是速度高,缺點是死時間長。

(2).分散重新整理

指對每行儲存單元的重新整理分散到每個存取週期內完成。其中,把機器的存取週期分成兩段,前半段用來讀/寫或維持資訊,後半段用來重新整理。
例如:對64*64的矩陣重新整理,存取週期是0.5us,則讀寫周為0.5us。
重新整理週期為:64*1us=64us。<2ms , 在2ms丟失電荷前就會及時補充。
優點是沒有死時間了,缺點是速度慢。

(3).非同步重新整理

指不規定一個固定的重新整理週期,將每一行分來來看,只要在2ms內對這一行重新整理一遍就行。
例如:對64*64的矩陣重新整理,存取週期為0.5us。
要使每行能在2ms內重新整理一次,即每隔 (2ms/64us) 重新整理一行,也就是對這一行來說,下一次對它進行重新整理的間隔,期間要經過64次記憶體重新整理週期才又輪得到它。
每行重新整理的時間仍為0.5us,重新整理一行只停止一個存取週期,但對每行來說,重新整理間隔在2ms以內,死時間縮短為0.5us。

另外補充解釋## 標題

為什麼重新整理與存取不能並行?:因為記憶體就一套地址譯碼和片選裝置,重新整理與存取有相似的過程,它要選中一行——這期間片選線、地址線、地址譯碼器全被佔用著。同理,重新整理操作之間也不能並行——意味著一次只能刷一行

分散重新整理為什麼沒有死區,其實是因為存取週期週期變成1μs(這1μs中包含了讀寫時間,也包含了重新整理一行的時間,所以才沒有死區)
若是將存取週期變成0.5μs,則不包含重新整理的時間,若是這個時候還是一個讀寫,然後重新整理一次的話,就有死區,死區的時間是0.5μs

原因:設DRAM中電容的電荷每2ms就會丟失,所以2ms內必須對其補充。補充電荷是按行來進行的,為了【全部】記憶體都能保住電荷,必須對【所有】的行都得補充。
假設重新整理1行的時間為0.5μs(重新整理時間是等於存取週期的。因為重新整理的過程與一次存取相同,只是沒有在總線上輸入輸出。順便說一下存取週期>真正用於存取的時間

,因為存取週期內、存取操作結束後仍然需要一些時間來更改狀態。——對於SRAM也是這樣,對於DRAM更是如此)。
並假設按儲存單元(1B/單元)分為64行64列。
(64×64個單元×1B/單元 = 2^12個單元×1B/單元 = 4KB記憶體)。

集中重新整理:快到2ms的時候,停止一切對記憶體的讀取操作,使用0.5μs×64對64行依次重新整理。這將佔用3.2μs。在這3.2μs中,記憶體只用來重新整理,阻塞一切存取操作。

分散重新整理:在每個存取操作後繫結一個重新整理操作。這樣存取週期就成了0.5μs + 0.5μs = 1μs。它延長了存取週期。但是由於與存取操作繫結,就不需要專門給出一段時間來重新整理了。這樣,每有64個讀取操作,就會把0-63行(共計64行)全部重新整理一遍。又因為重新整理是不間地斷迴圈著的——迴圈對64行依次重新整理,所以對於同一行,每64次讀取就會輪到其被重新整理——它的重新整理週期是1μs × 64 = 64μs <2ms ,在2ms丟失電荷前就會及時補充。

非同步重新整理:分散重新整理的重新整理週期64μs ,其實根本不需要這麼頻繁,有些浪費,非同步重新整理就是恰好卡在2ms這個時間點上。對於每行以2ms為重新整理週期足夠了,重新整理迴圈到它需要64重新整理次操作, 2ms ÷ 64 作為【每次重新整理的週期】,(注意每次重新整理週期與特定行的重新整理週期的不同:每次重新整理間隔指對於記憶體來說它隔多長時間就進行一次重新整理操作,輪著重新整理時,重新整理的行是上一次重新整理的行的下一行——是不同的兩行,但對於全域性記憶體來說確實是兩次重新整理操作間隔。特定哪一行的重新整理週期:下一次對它進行重新整理的間隔,期間要經過64次記憶體重新整理週期才又輪得到它。)過64次剛好保證每行的重新整理週期為2ms。重新整理操作週期為2ms ÷ 64 。但是這個時間並不是繫結在存取週期內,所以仍然是拒絕存取的死時間。但是它已經很小了。所以這種重新整理策略非常可行。

常見的動態RAM的共同特點是都靠電容儲存電荷的原理來寄存資訊,電容上的電荷一般只能維持1~2ms,因此即使電源不掉電,資訊也會自動消失,所以必須在2ms內對其所有儲存單元恢復一次原狀態,稱為重新整理,重新整理是一行一行進行的。又因為記憶體就一套地址譯碼和片選裝置,重新整理與存取有相似的過程,它要選中一行,這期間片選線、地址線、地址譯碼器全被佔用著。所以重新整理與存取不能並行。同理,重新整理操作之間也不能並行,意味著一次只能刷一行。