閱讀823 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《計算機存儲與外設》----第2章 Computer Organization and Architecture: Themes and Variations 主 存 儲 器 2.1 簡介

本 節 書 摘 來 自 華 章 出 版 社 《計算機存儲與外設》 一 書 中 的 第2章,第2.1節, 作 者 Computer Organization and Architecture: Themes and Variations[英]艾倫·克萊門茨(Alan Clements) 著, 沈 立 肖曉強 王蘇峰 譯, 更 多 章 節 內 容 可 以 訪 問 雲 棲 社 區 “華 章 計 算 機” 公 眾 號 查 看。

第2章

Computer Organization and Architecture: Themes and Variations

主 存 儲 器

“記憶才是我們真正擁有的。”
——Elias Lieberman
“逝者活在人們的記憶裏。”
——Cicero
“雖然太陽係以每小時四萬三千英裏的速度向武仙座球狀星團M13靠近,但仍有些人堅持不承認這個過程。”
——Kurt Vonnegut,泰坦的警報
“計算機應該由玻璃構成,因為它到處都是瓶頸。”
——Alan Clements,2001.03
“在這個世界上,我們身處何地並不重要,我們朝著什麼方向前行才重要。”
——Oliver Wendell Holmes
“瞄準是不夠的,你必須命中。”
——德國諺語
“……計算機硬件發展十分迅速。人類有史以來沒有其他技術能夠在30年中獲得6個數量級的性能–價格收益。”
——Fred Brooks Jr

2.1 簡介

本章將介紹的計算機存儲器和I/O係統是其主存儲器(main memory)和直接訪問存儲器(immediate access store)。從許多方麵看,這是計算機最乏味的部分,其作用就是負責為處理器芯片存儲數據。存儲器似乎沒有什麼可以炫耀的,從來沒有聽到電腦愛好者像談論超頻或多處理器那樣興奮地談論它。簡而言之,主存儲器保存了一些數據直到Cache需要這些數據或者關閉了計算機電源。但是,本章將要介紹一些多年來在存儲技術上取得的顯著進步。將研究那些出現和已克服的問題,並介紹一些正在研發的新技術和物理器件。
在這一章中,將介紹直接訪問存儲器的工作原理,靜態(static)和動態(dynamic)存儲器之間的差異,易失性(volatile)和非易失性(nonvolatile)存儲器之間的差異。此外還介紹一些開始在存儲係統中發揮重要作用的新技術。本章還將討論包括存儲設備特點在內的存儲係統設計者必須考慮的問題。本書的大多數讀者都不可能設計一個CPU,但可能會為嵌入式計算機或類似裝置設計一個存儲係統。從計算機攝像頭到手機這樣的數字係統,其存儲係統往往由現成的組件構成。

QQ_20170525110500

原理上,計算機存儲器是最容易理解的部件;它是保存程序和數據的地方。在實踐中,存儲係統總由從DRAM到硬盤這樣的各種設備構成,這些設備又是由多種技術製造的。事實上,存儲設備性能的差異比計算機係統中的其他部件都要大。存儲部件可能保持幾個字或幾百GB的數據;其讀取時間最短為1ns最長為幾秒;其價格可能從幾美分到一千美元。
因為存儲器涉及的內容很多,涵蓋不同的存儲技術,本書將存儲部分分為兩章。本章著眼於程序運行時所在的直接訪問存儲器(immediate access store)或主存儲器(primary storage)。下一章將介紹用來保存當前沒有執行的程序和數據的二級存儲(secondary storage)係統。雖然現在有的二級存儲器采用了固態硬盤,一般情況下,主存儲器采用半導體技術、而二級存儲采用磁性或光學技術實現。
存儲器的性能提升迅速,在過去的20年中每年約提升7%,如圖2-1所示。另一方麵,處理器的性能提升更了不起,每年提高60%,比存儲器性能提升快很多,這使得存儲器係統成為現代處理器的一大瓶頸。

QQ_20170525110530

本章將介紹靜態和動態半導體存儲器的工作原理,以及它們是如何與處理器連接的。特別是將介紹存儲器的時序,給出數據傳送過程中操作的序列。這部分內容將幫助讀者理解在第4章中將介紹的一些概念,第4章主要介紹輸入/輸出技術。本章有一節是專門介紹DRAM的,它具有複雜的接口要求,近年來已經出現了幾種形式的DRAM。

2.1.1 存儲係統的原理和參數

人們期望存儲設備能夠完成其預期工作——記住數據。可以利用任何一種材料來實現存儲器,隻要該材料的某種性質可以改變,而後又可以檢測這種變化即可。大多數計算機教材認為,第一個存儲係統是Hollerith發明的製表機上的打孔卡片或者是Jacquard織布機上的木製卡。當然,從廣義上講,所有包括從埃及象形文字到紙筆係統等在內的各種書寫係統都是存儲係統。
可以用來存儲數據的物理性質的範圍相當廣泛。雖然人們都聽到過山穀的回聲,但很少有人會想到使用回聲作為存儲係統的基礎。20世紀40年代後期,人們利用聲波在水銀管內的傳播來存儲數據(水銀延遲線存儲器)。在該管的一端,以一係列超聲波脈衝的形式將數據傳輸到管中(聲音在水銀中的傳輸速度為1450m/s)。當聲音到達管子的另一端,它由聲電轉換器接收並放大,並反饋到管子的前一端。這是一種動態存儲器,因為數據總是以物理運動的形式存在。即使在今天,玻璃延遲線仍然用在一些電視信號處理中,用來將信號延遲一段固定的時間。
20世紀50年代至70年代,數據被存儲在由鐵氧體磁芯(ferrite core)構成的小珠子(或環)的磁場中(因此計算機文獻中通常將其稱為磁芯存儲器)。今天的硬盤仍然使用相同的磁性質來存儲數據。正是由於其重要性,本書將在下一章詳細討論磁記錄方式。
從20世紀70年代中期開始,半導體存儲器已經成為主存儲器的標準形式,即靜態RAM(SRAM)或動態RAM(DRAM)。今天隻有小型嵌入式係統使用靜態RAM,而PC使用大約2~48GB的DRAM。如果DRAM是本章的主題(theme)的話,那麼變化(variation)則是由一些半導體存儲器的新形式,如鐵電(ferroelectric)半導體存儲器,它用晶體中原子的位置來存儲數據;或者雙向開關(ovonic)存儲器,它通過硫係(chalcogenide)玻璃在非晶態(amorphous)和晶態(polycrystalline)之間的轉換來存儲數據。下麵引入一些詞匯來對存儲器係統和技術進行描述。

1.隨機訪問和順序訪問存儲器

計算機所使用的不同存儲技術之間的根本區別在於數據的訪問方式:直接(directly)訪問或順序(sequentially)訪問。可以直接訪問的存儲器被稱為隨機訪問存儲器(random access memory,RAM),這是由於可以隨機地訪問任何數據元素,且所花費的時間是固定的,與數據的物理位置無關。這種存儲器也被稱為直接訪問存儲器(immediate access memory,IAS)。當然,這些存儲器肯定不是立即訪問的——沒有哪種存儲器可以立即得到訪問結果,隻是它們比其他類型存儲器的速度要快罷了。
順序訪問存儲器需要依次訪問每個存儲單元直到找到所需的元素。順序訪問存儲器的例子是磁帶存儲器,需要一直讀磁帶直到找到所要的數據。前麵提到的水銀延遲線(acoustic mercury delay line)存儲器就是順序訪問存儲器。隨機訪問存儲器比順序訪問存儲器要快,但它們也更貴。大多數半導體存儲器如DRAM或閃存都是隨機訪問的。而移位寄存器是一種順序訪問存儲器。

QQ_20170525110610

人們常說存儲器的速度或者說其是如何快或如何慢。這些術語指的是需要多長的時間來訪問數據。存儲器的關鍵參數為訪問時間tacc。

2.易失性和非易失性存儲器

在理想的存儲器中,數據將一直保持不變直到修改它。這種存儲器被稱為非易失性(nonvolatile)存儲器。例如,寫數據到硬盤,這些數據將一直保存在硬盤上。有些存儲器技術隻在加電的時候才能保留數據,拔掉電源插頭數據就丟失了。這些存儲器被稱為易失性(volatile)存儲器,因為斷電後數據將丟失。大多數PC和工作站的主存都由易失性的DRAM構成。如果采用非易失性存儲器,就沒有必要在每次打開電源開關後重新啟動計算機(即將操作係統從非易失性的磁盤存儲器裝載到計算機的易失性存儲器中)。稍後將介紹一類非易失性存儲器——閃存(flash memory),它是目前的一種主流技術,是非易失性存儲器的新形式。

3.讀/寫和隻讀存儲器

如果可以向存儲器寫或者從存儲器讀數據,而且可以完成的讀操作與寫操作的次數相近,這種存儲器就是讀/寫(read/write)存儲器。計算機的主存當然是由讀/寫存儲器組成。如果可以很容易地讀存儲器,但其內容不能修改,則為隻讀(read-only)存儲器。隻讀存儲器總是非易失性存儲器。
當然,沒有真正的隻讀存儲器。如果有,就不可能首先把數據放入其中。完全意義上的隻讀存儲器正如王水的地位一樣,除非被分解,否則沒有任何容器能夠容納它。在掩模編程(mask-programmed)ROM被生產的時候數據就完成了加載,因為每個存儲單元的物理結構決定了它保存的是1還是0。掩模編程ROM價格便宜,但以後不能修改。它曾經用來保存引導程序、操作係統以及BIOS。今天它已過時,被閃存替代了。
實際的隻讀存儲器更應該描述為大部時間為讀(read-mostly)的存儲器,它可以進行有限次數的修改。此外,它的寫操作要比讀操作更複雜且更緩慢。這類存儲器的例子包括EPROM、EEPROM和閃存。EPROM表示電可編程隻讀存儲器(electronically programmable read-only memory),EEPROM表示可擦除和電可編程隻讀存儲器(erasable and electronically programmable read-only memory)。後文將更詳細地介紹這些技術。

4.靜態和動態存儲器

隨機訪問、讀寫以及易失性存儲器可以分為兩類:靜態(static)和動態(dynamic)。它是通過半導體存儲單元的結構及其性質來進行分類的。靜態存儲器利用交叉耦合的晶體管來構造一個RS觸發器,用觸發器的狀態來存儲數據。動態存儲器(DRAM)采用半導體技術將數據表示為存儲在電容中的電荷。相比於動態存儲器,靜態存儲器的速度較快、價格較昂貴、芯片密度(位/芯片)較低。動態存儲器更便宜,但相比靜態存儲器在實際電路中使用更難。今天這種情況在逐漸好轉。如今,通過CPU、主板橋芯片和DRAM自己來完成對DRAM的控製。20世紀80年代,在計算機中實現DRAM控製器是一項艱巨的任務。

QQ_20170525110655

動態存儲單元中數據將在幾毫秒後丟失,除非它通過不斷的刷新(refreshing)操作重寫。動態存儲器中讀與寫的訪問時間不同,典型的DRAM並不能真正地隨機訪問,這是因為相鄰存儲單元要比隨機選擇單元的訪問速度更快。
由於DRAM組成了大多數PC和工作站的存儲器,DRAM的性能和特點對計算機的整體性能有重要影響。後文將詳細介紹DRAM。

5.存儲器參數

存儲器的最小單元就是存儲一位的存儲位元(memory cell)。半導體存儲器被組織為一個n行m列的數組;即它含有n×m個位元。存儲器的寬度(width)m,就是存儲器中每個字包含的比特(位)數。當執行讀或寫操作時,一個字的所有m位同時進行相同的操作。存儲器的長度(length)n,定義為地址的數目(即存儲器使用log2 n位地址線來訪問n個位置。
存儲部件的寬度並不一定與計算機中總線或基本數據單元的寬度相同。例如,計算機可能具有64位的數據總線,但使用4位寬度的存儲部件。因為每個存儲部件隻提供4位數據,這就需要64/4=16個存儲部件並排工作以滿足64位數據總線的需求。如果每個4位存儲部件具有4M個可尋址位置,則存儲部件的容量為4b×4M=16Mb=224b=2MB,整個存儲器的容量為16片×16Mb=228b=32MB。
圖2-2說明了3種寬度之間的關係。該CPU具有64位的寄存器,因此被稱為64位機;即它是64位體係結構的。CPU和存儲器之間的總線為32位寬,64位的數據元素必須連續兩次通過總線操作從存儲器中取出。此時可以說,64位體係結構(architecture)用32位組織形式(organization)實現。該存儲器陣列由4個8位芯片構成。這些芯片在每個讀周期貢獻8位數據,即芯片是並行訪問的。

QQ_20170525110724

存儲器的主要時間參數是其讀訪問時間(read access time)、寫訪問時間(write access time)和周期時間(cycle time)。讀訪問時間就是訪問存儲器位置並獲取其內容的時間。寫訪問時間就是將數據寫到存儲設備中的時間。周期時間是兩個連續的存儲器訪問之間的最小間隔時間。
理想情況下,存儲器的讀、寫和周期時間都應該相同,這在半導體靜態RAM中是正確的。有些存儲器(例如,DRAM)的周期時間比讀或寫訪問時間要長,這是因為在連續訪問之間需要完成某些內部操作。前文已經指出,大部時間為讀的存儲器,如Flash EPROM,寫訪問時間要比讀訪問時間長得多。
一個特別重要的存儲器參數是功耗(power consumption)。半導體讀/寫存儲器需要能量來操作和存儲數據。功耗對於由電池供電的便攜式設備設計來說是十分重要的;這是當今泛在計算和個人計算關注的一個重要問題。
存儲設備(或任意其他部件)消耗的能量最終表現為熱量,必須被擴散到周圍的環境中。由於散熱量決定了存儲器(或CPU)的操作溫度,因此散熱非常重要。當某個設備對象的溫度高於環境溫度,散熱量與該設備的散熱麵積、散熱表麵的效率、環境溫度和設備溫度之間的差值等有關。某設備的散熱量Pdissipate由下式給出:
Pdissipate=K?A?(tdevice-tambient)
其中:K為常數,A為散熱麵麵積。
因為部件失效的概率是溫度的指數函數(每增加15℃,故障率增加一倍),因此功耗應盡可能地小。具有較大散熱量的芯片,如處理器,需要配備散熱片(heat sink)來增加其表麵積;如果散熱麵積A增加了,散熱需要的溫度差(tdevice-tambient)就可以減小。

QQ_20170525110749

表2-1總結了本章中討論的幾種存儲設備的典型特性。

2.1.2 存儲層次

雖然已經在第1章中介紹了存儲層次(memory hierarchy),圖2-3提醒人們,該概念是理解計算機存儲係統組織的關鍵。本章討論隨機訪問存儲器(random access memory),包括靜態和動態存儲器。在介紹讀/寫存儲器(read/write memory)後,將介紹包括閃存在內的大部分時間為讀(read-mostly)的存儲器係列。如果說低成本、高速隨機訪問存儲器將改進計算機的性能,使它們更快、更能實時處理視頻信息,那麼閃存的應用已經帶來了從手持設備到MP3播放器等新一代個人數字係統。

QQ_20170525111514

最後更新:2017-05-25 11:31:42

  上一篇:go  中小企業怎麼選擇適合自己的網站建設公司,企業全網營銷怎麼做
  下一篇:go  板繪:一支沒有墨水的筆的故事