存儲器層次結構(2)

接着上次簡單的介紹,讓我們來繼續討論這些“存儲器們”吧。
在上一篇中我提到了傳統的DRAM,簡單描述了每個DRAM芯片與存儲控制器的“交互”過程。下面,我們來看一下多個DRAM芯片是怎樣集合在一起工作的。

存儲器模塊:

DRAM 芯片包裝在存儲器模塊中,這個存儲器模塊是插到主板的擴展槽上的。常見的包裝包括168個引腳的雙列直插存儲器模塊(DIMM),它以64位爲塊傳送數據到存儲控制器和從存儲控制器傳出數據,還包括72個引腳的單列直插存儲器模塊(SIMM),它以32位爲塊兒傳送數據。
爲了展示一個存儲器模塊的基本思想,用一個 8個64Mbit的DRAM芯片的模塊做示例,我簡單做了一個過程圖,如下:
這裏寫圖片描述
在這裏,每個超單元存儲主存的一個字節,而用相應超單元爲(i,j)的8個超單元來表示主存中字節地址A處的64位雙字。
要取出存儲器地址A處的一個64位雙字,存儲控制器將A轉換成一個超單元地址(i,j),並將它發送到存儲器模塊,然後存儲器模塊再將i和j廣播到每個DRAM。作爲響應,每個DRAM輸出它的(i,j)超單元的8位內容。模塊中的電路收集這些輸出,並把它們合成一個64位雙字,再返回給存儲控制器。
另外,通過將多個存儲器模塊連接到存儲控制器,能夠聚合主存。在這種情況下,當控制器收到一個地址A時,控制器先選擇包含A的模塊k,將A轉換成它的(i,j)形式,並將(i,j)發送到模塊k。

下面,我們來看幾個增強的DRAM:

快頁模式 DRAM(FPM DRAM):

傳統的DRAM將超單元的一整行拷貝到它的內部行緩衝區,使用一個然後丟棄其餘的。而FPM DRAM允許對同一行連續地訪問,可以直接地從緩衝區得到服務。例如,要從傳統DRAM的同一行中讀取四個超單元,則存儲控制器必須重複發四個RAS/CAS請求,即使行地址i在每個情況中都是一樣的。而要從一個FPM DRAM的同一行讀取四個超單元,存儲器發送第一個RAS/CAS,後面跟三個CAS請求。也就是一個RAS四個CAS。第一個超單元和傳統的一樣,剩下的三個,只需要根據CAS在行緩衝區獲得就行了。顯然獲得剩下的三個超單元比獲取第一個快。

同步DRAM(S DRAM):

像傳統DRAM、FPM DRAM 等都是異步的DRAM,相之下,S DRAM 能夠比它們更快地輸出超單元的內容。

好了,對隨機訪問存儲器(RAM)的簡單介紹我們就先進行到這裏,下面我們來看一些其他的存儲器:

非易失性存儲器:

如果斷電,DRAM和SRAM會丟失它們的信息,從這個意義上說,它們是易失的。而非易失性存儲器是即使在斷電後,也仍然保存着它的信息。現在有很多種非易失性存儲器。
我們先來看一種常見的非易失性存儲器 ROM
雖然ROM中有的類型既可以讀也可以寫,但是它們整體上都稱爲只讀存儲器。ROM是以它們能夠被重寫的次數和對它們重寫所用的機制來區分的。

常見的ROM 有以下幾種:

PROM(可編程ROM):

只能被寫一次,PROM的每個存儲器單元有一種熔絲,它只能用高電流熔斷一次。

可擦可寫ROM(EPROM):

有一個透明的石英窗口,允許光達到存儲單元。紫外線光照射過窗口,EPROM單元就被清零。對EPROM編程是通過使用一種把1寫入EPROM的特殊設備來完成的。EPROM能夠被擦除和重編的次數的數量級可以達到1000次。
EEPROM(電子可擦除ROM):能夠被編程的次數達到100000。

存儲在ROM設備中的程序通常稱爲固件。當一個計算機系統通電後,它會運行存儲在ROM中的固件。PC上的BIOS(基本輸入/輸出系統)的例程就在固件中。還有一些複雜設備,如圖形卡和驅動控制器,也依賴固件翻譯來自CPU的I/O請求。

總線:

下面我們來先引入一個總線的概念,首先,總線到底是什麼?它在計算機系統中又扮演着一個什麼樣的角色呢?

總線 是貫穿整個系統中的一組電子管道,它攜帶信息字節並負責在各個部件間傳遞。也可以說,總線是一組並行的導線,能攜帶地址、數據和控制信號。通常總線被設計成傳送定長的字節塊(字)。每個I/O設備都通過一個控制器或適配器與總線相連。

控制器:控制器是置於I/O設備本身的或者系統的主印製電路板(通常稱爲主板)上的芯片組。
適配器:適配器是一塊插在主板插槽上的卡。

控制器和適配器的功能都是在I/O總線和I/O設備之間傳遞信息。

既然提到這裏,就順便介紹一下主存吧。
主存:主存是一個臨時存儲設備,在處理器執行程序時,用來存放程序和程序處理的數據。從物理上來說,主存是由一組動態隨機存儲器(DRAM)芯片組成。

訪問主存:

我們先來看一個簡單的主存訪問模型圖:
這裏寫圖片描述
數據流通過總線的共享電子電路在處理器和DRAM主存之間來來回回。
從主存傳送數據到CPU的過程叫做讀事務,從CPU傳送數據到主存的過程叫做寫事務。着一系列傳送數據的步驟稱爲總線事務

系統總線:連接CPU和I/O橋。

存儲器總線:連接I/O橋和主存。

I/O橋:將系統總線的電子信號翻譯成存儲器總線的電子信號 將存儲器總線信號翻譯成系統總線信號。
後面我們將會介紹,I/O橋也將系統總線和存儲器總線連接到I/O總線。像磁盤和圖形卡這樣的I/O設備共享I/O總線。

下面,我們來看一個典型的連接CPU和主存的總線結構圖:
這裏寫圖片描述

根據這個簡單的模型圖,我們來簡單描述一下讀事務和寫事務的大致過程:

讀事務:

當要從內存中讀數據到CPU時,假設這裏的地址是A,那麼讀事務的目標就是把A的內容加載到寄存器文件中。
可簡單分爲四個步驟:

CPU把地址放到系統總線,I/O橋將信號傳遞到存儲器總線。

主存感受到存儲器總線上的信號,從存儲器總線上讀出地址A,從DRAM中的地址A處
(存儲控制器地址A轉換成超單元地址)取出數據字,放到存儲器總線上。

I/O橋將存儲器總信號翻譯成系統總信號傳遞給系統總線。

CPU感覺到系統總線上的數據,從總線上讀出數據,並拷貝到寄存器文件中。

寫事務:

和上面的讀相逆,這裏,寄存器文件的內容被寫到地址A,CPU發起寫事務。

首先,CPU將地址放到系統總線上。傳遞給存儲器總線。

存儲器從存儲器總線讀出地址,並等待數據到達。

CPU將數據字拷貝到系統總線,傳遞給存儲器總線。

主存從存儲器總線讀出數據字,並將這些位存儲到DRAM中。

好了,這裏插入的一點關於硬件過程的描述就先到這裏。
下一次,我們來具體詳細地討論磁盤的基本構造以及存儲方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章