天天看點

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

“記憶才是我們真正擁有的。”

——elias lieberman

“逝者活在人們的記憶裡。”

——cicero

“雖然太陽系以每小時四萬三千英裡的速度向武仙座球狀星團m13靠近,但仍有些人堅持不承認這個過程。”

——kurt vonnegut,泰坦的警報

“計算機應該由玻璃構成,因為它到處都是瓶頸。”

——alan clements,2001.03

“在這個世界上,我們身處何地并不重要,我們朝着什麼方向前行才重要。”

——oliver wendell holmes

“瞄準是不夠的,你必須命中。”

——德國諺語

“……計算機硬體發展十分迅速。人類有史以來沒有其他技術能夠在30年中獲得6個數量級的性能–價格收益。”

——fred brooks jr

本章将介紹的計算機存儲器和i/o系統是其主存儲器(main memory)和直接通路存儲器(immediate access store)。從許多方面看,這是計算機最乏味的部分,其作用就是負責為處理器晶片存儲資料。存儲器似乎沒有什麼可以炫耀的,從來沒有聽到電腦愛好者像談論超頻或多處理器那樣興奮地談論它。簡而言之,主存儲器儲存了一些資料直到cache需要這些資料或者關閉了計算機電源。但是,本章将要介紹一些多年來在存儲技術上取得的顯著進步。将研究那些出現和已克服的問題,并介紹一些正在研發的新技術和實體器件。

在這一章中,将介紹直接通路存儲器的工作原理,靜态(static)和動态(dynamic)存儲器之間的差異,易失性(volatile)和非易失性(nonvolatile)存儲器之間的差異。此外還介紹一些開始在存儲系統中發揮重要作用的新技術。本章還将讨論包括儲存設備特點在内的存儲系統設計者必須考慮的問題。本書的大多數讀者都不可能設計一個cpu,但可能會為嵌入式計算機或類似裝置設計一個存儲系統。從計算機攝像頭到手機這樣的數字系統,其存儲系統往往由現成的元件構成。

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

原理上,計算機存儲器是最容易了解的部件;它是儲存程式和資料的地方。在實踐中,存儲系統總由從dram到硬碟這樣的各種裝置構成,這些裝置又是由多種技術制造的。事實上,儲存設備性能的差異比計算機系統中的其他部件都要大。存儲部件可能保持幾個字或幾百gb的資料;其讀取時間最短為1ns最長為幾秒;其價格可能從幾美分到一千美元。

因為存儲器涉及的内容很多,涵蓋不同的存儲技術,本書将存儲部分分為兩章。本章着眼于程式運作時所在的直接通路存儲器(immediate access store)或主存儲器(primary storage)。下一章将介紹用來儲存目前沒有執行的程式和資料的二級存儲(secondary storage)系統。雖然現在有的二級存儲器采用了固态硬碟,一般情況下,主存儲器采用半導體技術、而二級存儲采用磁性或光學技術實作。

存儲器的性能提升迅速,在過去的20年中每年約提升7%,如圖2-1所示。另一方面,處理器的性能提升更了不起,每年提高60%,比存儲器性能提升快很多,這使得存儲器系統成為現代處理器的一大瓶頸。

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

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

人們期望儲存設備能夠完成其預期工作——記住資料。可以利用任何一種材料來實作存儲器,隻要該材料的某種性質可以改變,而後又可以檢測這種變化即可。大多數計算機教材認為,第一個存儲系統是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)之間的轉換來存儲資料。下面引入一些詞彙來對存儲器系統和技術進行描述。

計算機所使用的不同存儲技術之間的根本差別在于資料的通路方式:直接(directly)通路或順序(sequentially)通路。可以直接通路的存儲器被稱為随機通路存儲器(random access memory,ram),這是由于可以随機地通路任何資料元素,且所花費的時間是固定的,與資料的實體位置無關。這種存儲器也被稱為直接通路存儲器(immediate access memory,ias)。當然,這些存儲器肯定不是立即通路的——沒有哪種存儲器可以立即得到通路結果,隻是它們比其他類型存儲器的速度要快罷了。

順序通路存儲器需要依次通路每個存儲單元直到找到所需的元素。順序通路存儲器的例子是錄音帶存儲器,需要一直讀錄音帶直到找到所要的資料。前面提到的水銀延遲線(acoustic mercury delay line)存儲器就是順序通路存儲器。随機通路存儲器比順序通路存儲器要快,但它們也更貴。大多數半導體存儲器如dram或閃存都是随機通路的。而移位寄存器是一種順序通路存儲器。

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

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

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

如果可以向存儲器寫或者從存儲器讀資料,而且可以完成的讀操作與寫操作的次數相近,這種存儲器就是讀/寫(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)。後文将更詳細地介紹這些技術。

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

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

動态存儲單元中資料将在幾毫秒後丢失,除非它通過不斷的重新整理(refreshing)操作重寫。動态存儲器中讀與寫的通路時間不同,典型的dram并不能真正地随機通路,這是因為相鄰存儲單元要比随機選擇單元的通路速度更快。

由于dram組成了大多數pc和工作站的存儲器,dram的性能和特點對計算機的整體性能有重要影響。後文将詳細介紹dram。

存儲器的最小單元就是存儲一位的存儲位元(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位資料,即晶片是并行通路的。

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

存儲器的主要時間參數是其讀通路時間(read access time)、寫通路時間(write access time)和周期時間(cycle time)。讀通路時間就是通路存儲器位置并擷取其内容的時間。寫通路時間就是将資料寫到儲存設備中的時間。周期時間是兩個連續的存儲器通路之間的最小間隔時間。

理想情況下,存儲器的讀、寫和周期時間都應該相同,這在半導體靜态ram中是正确的。有些存儲器(例如,dram)的周期時間比讀或寫通路時間要長,這是因為在連續通路之間需要完成某些内部操作。前文已經指出,大部時間為讀的存儲器,如flash eprom,寫通路時間要比讀通路時間長得多。

一個特别重要的存儲器參數是功耗(power consumption)。半導體讀/寫存儲器需要能量來操作和存儲資料。功耗對于由電池供電的便攜式裝置設計來說是十分重要的;這是當今泛在計算和個人計算關注的一個重要問題。

儲存設備(或任意其他部件)消耗的能量最終表現為熱量,必須被擴散到周圍的環境中。由于散熱量決定了存儲器(或cpu)的操作溫度,是以散熱非常重要。當某個裝置對象的溫度高于環境溫度,散熱量與該裝置的散熱面積、散熱表面的效率、環境溫度和裝置溫度之間的內插補點等有關。某裝置的散熱量pdissipate由下式給出:

<code>pdissipate=k?a?(tdevice-tambient)</code>

其中:k為常數,a為散熱面面積。

因為部件失效的機率是溫度的指數函數(每增加15℃,故障率增加一倍),是以功耗應盡可能地小。具有較大散熱量的晶片,如處理器,需要配備散熱片(heat sink)來增加其表面積;如果散熱面積a增加了,散熱需要的溫度差(tdevice-tambient)就可以減小。

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

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

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

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