計算機存儲結構(一)——存儲器類型


簡介:描述基本的存儲器知識,介紹基本的存儲器類型和差異。摘自《深入理解計算機系統》CSAPP

一:存儲技術概述

  存儲器系統(memory system)是一個具有不同容量、成本和訪問時間的存儲設備的層次結構。

  CPU寄存器:保存這最常用的數據。

  高速緩存存儲器(cache memory):靠近CPU的小的、快速的存儲器,作為一部分存儲的主存儲器中數據和指令的緩沖區域。

  主存儲器:緩存存儲在容量較大的、慢速磁盤上的數據,

  磁盤:常常又作為存儲在網絡連接的其他機器上的數據的數據。

二: 存儲器分類

  2.1 隨機訪問存儲器(RAM: Random-Access Memory)

    2.1.1靜態RAM,一般用作高速緩存存儲器

      SRAM將每個位存儲在一個雙穩態(bistable)的存儲器單元里面,每個單元用一個六晶體管電路來實現。只要通電后就可以永遠保持它的值,即使有干擾來擾亂電壓,當干擾消除是電路就會恢復到穩定值。

                      

    2.1.2.動態RAM (DRAM)

      DRAM每個單元由一個電容和一個訪問晶體管組成。可看成每個存儲位為對一個電容的充電,這個電容非常小,通常只有大約30毫微微法拉(femtofarad)--30*10-15 法拉。

      這個電容的電壓被擾亂后就永遠不會恢復了。 暴漏在光線下回導致電容電壓改變。

      很多原因會導致漏電, 使得DRAM單元在10-100毫秒時間內失去電荷。幸運的是計算機的運行時鍾周期是以納秒來衡量的,所以相對時間還是比較長的。內存系統必須周期性的通過讀出,然后重寫來刷新每一位。

    2.1.3 傳統的DRAM

      DRAM芯片的單元被分成d個超單元,每個超單元由w個DRAM單元組成,一個d*w單元的DRAM存儲了dw位信息。超單元被組織成一個r行c列的方形陣列,r*c=d。每個超單元由形似(i,j)的地址。

                 

 

      每個DRAM芯片連接到一個內存控制器電路,內存控制器一次讀或寫w位到DRAM芯片(即一個超單元大小),通過i,j確定的行列地址操作對應的超單元。

      如讀操作時:每次操作內存控制器發送行地址i給DRAM芯片,DRAM芯片則將第i行復制到內部行緩沖區,接着內存控制器發送列地址j,DRAM芯片則從內部行緩沖去拷貝出(i,j)發送到內存控制器

              

    2.1.4 內存模塊

      DRAM芯片封裝在內存模塊(memory modul)上,它插到主板的擴展槽上(能買到的內存條)。

      以Core i7為例,使用8個64Mbit(兆*位)的8M(r) * 8(c)的DRAM芯片,共64MBit(兆*字節),8個芯片編號0-7.每個超單元存儲一個字節(8bit),而相應的地址(i,j)在8個芯片中對應地址的超單元取出8個字節組合成一個64bit的字。

      

    2.1.5增強的DRAM

      廠家為了跟上迅速提高的處理器存取速度,不斷的更新DRAM。不過這些都是基於基本的DRAM單元,在訪問方式上進行速度提升。  

      • 快頁模式DRAM(Fast Page Mode DRAM, FPM DRAM), 傳統的DRAM將一行復制到緩沖區后使用一個后其余丟棄,即使再次讀取同一行的下一個超單元也需要重新復制此行到緩存區,即每一個超單元需要下發一個RAS/CAS.;快頁模式允許同一行連續超單元讀取不需要重新復制行到緩存區,即讀取(i,1) (i,2) (i,3)位置的超單元可以下發一個為i的RAS和3個CAS。
      • 擴展數據輸出DRAM(Extended Data Out DRAM, EDO DRAM),FPM DRAM的一個增強模式,允許各個CAS信號在時間上更緊密一些。 傳統的DRAM和FPM DRAM在存取每一bit數據時必須輸出行地址和列地址並使其穩定一段時間后,然后才能讀寫有效的數據,而下一個bit的地址必須等待這次讀寫操作完成才能輸出。EDO DRAM不必等待資料的讀寫操作是否完成,只要規定的有效時間一到就可以准備輸出下一個地址,由此縮短了存取時間,效率比FPM DRAM高20%—30%。
      • 同步DRAM(Synchronous DRAM, SDRAM), 是有一個同步接口的動態隨機存取內存(DRAM)。通常DRAM是有一個異步接口的,這樣它可以隨時響應控制輸入的變化。而SDRAM有一個同步接口,在響應控制輸入前會等待一個時鍾信號,這樣就能和計算機的系統總線同步。(不太懂,反正是比異步快了)
      • 雙倍速率同步DRAM(Double Data Rate DRAM, DDR SDRAM), 是對SDRAM的增強,使用上下兩個時鍾沿(數電知識)作為控制信號,比僅使用一個時鍾沿的SDRAM快了一倍。不同的DDR是用提高有效帶寬的很小的預取緩沖區的大小來划分的:DDR(2位),DDR2(4位),DDR3(8位)。
      • 視頻RAM(Video RAM, VRAM),  用在圖形系統的幀緩沖區中。與FPM基本思想相同,兩個主要區別:一:VRAM輸出是通過對緩沖區內容進行移位得到的,二: VRAM允許對內存並行讀寫

  2.2 只讀存儲器ROM

    如果斷電RAM的數據都會丟失,所以RAM在這個意義上是易失的(volatile),非易失存儲器(nonvolatile memory)則在斷電后仍能保存數據。

    由於歷史原因,ROM雖然也可以讀寫,但是他們整體上被稱為只讀存儲器(Read-Only memory)。

    ROM以重寫次數和對它進行重編程的機制來區分

    2.2.1 PROM(Program ROM,可編程ROM)

      只能編程一次。PROM每個存儲單元有一種熔絲(fuse),只能用高電流熔斷一次。

    2.2.2 可擦寫可編程(Erasable Programmable ROM, EPROM)

      有一個透明的石英窗口,允許光到達存儲單元。紫外線照射存儲單元后EPROM會被清0,對EPROM進行編程寫1的操作是通過特殊設備完成的。可被擦寫重編程次數數量級可以達到1000次。

    2.2.3 電子可擦除PROM(Electriccally Erasable Programmable ROM, EEPROM  )

      類似EPROM,但是它不需要一個物理上獨立的編程設備,因此可以直接在印制電路板上進行編程。 EEPROM可重編程數量可達到10 次。

    2.2.4 閃存(flash memory)

      非易失性存儲器,基於EEPROM。 SSD是一種基於閃存的磁盤存儲器

 

  2.3 磁盤存儲

    磁盤讀取數據是毫秒級,比DRAM讀慢了10萬倍,比SRAM讀慢了100萬倍。

    2.3.1  磁盤構造

      1. 磁盤由一個或多個疊放在一起的盤片(platter)構成封裝在一個密封的容器中。 整個裝置通常被稱之為磁盤驅動器(disk driver)。

      2. 每個盤片有兩面或者稱之為表面(surface)。表面覆蓋着磁性記錄材料。

        每個表面由一組稱為磁道(track)的同心圓組成。

        每個磁道被划分為一組扇區(sector)。每個扇區包含相同數量的數據位(一般512字節)。

        扇區之間由一些間隙(gap)分隔開,這些間隙不存儲數據位,存儲用來標識扇區的格式化位。

      3.盤片中央有一個可以旋轉的主軸(spindle) ,它使得盤片以固定的旋轉速率(rotational tare)旋轉。

      4. 磁盤制造商一般用術語柱面(cylinder)來描述多個盤片驅動器的構造。柱面指所有盤片表面上到主軸中心的距離相等的磁道的集合。

            

      2.3.2 磁盤容量

         磁盤上可以記錄的最大位數稱為它的最大容量 ,或者簡稱為容量。 磁盤容量由以下技術因素決定:

        1.記錄密度(recording density)(位/英寸): 磁道一英寸的段中放入的位數。

        2. 磁道密度(track density)(道/英寸): 從盤片中心出發半徑上一英寸可以存放的磁道數。

        3.面密度(areal density)(位/平方英寸): 記錄密度與磁道密度的乘積。

      可以提高面密度來提高磁盤的容量,而面密度每隔幾年幾乎就會翻倍。

      最初的磁盤是在面密度很低的時候設計的,將每磁道分為數目相同的扇區,扇區數目由最內部磁道決定,這樣越靠外間隙(gap)就會越大,在磁道密度越來越大的今天將會變得十分浪費空間。

      因此現代大容量磁盤使用多分區記錄(multiple zone recording)技術,柱面集合被分為不相交的子集,稱為記錄區(recording zone),每個區包含一組連續的柱面,區中的柱面磁道含有相同數量的扇區。

      磁盤容量計算參考書中公式:

      

    2.3.3 磁盤操作

      •   硬件組成:磁盤用讀寫頭(read/write head)來讀寫存儲在磁盤表面的數據,而讀寫頭連接到一個傳動臂(actuator arm)一端。
      •   尋道(seek): 驅動器通過沿着半徑軸前后移動傳動臂,將讀寫頭定位到磁道上的扇區。
      •   
      •   讀寫頭沖撞(head crash) : 傳動臂末端的讀寫頭在磁盤表面大約0.1微米處的一層氣墊上飛翔,速度大約80KM/h。如果讀寫頭碰到細小的微塵將會停下來撞到表面。

    2.3.4 磁盤訪問時間(access time)

      • 尋道時間(seek time): 為了讀取某個扇區的內容,傳動臂移動讀寫頭到目標扇區的磁道上的時間。依賴與讀寫頭的位置和傳動臂在表面上的移動速度。通常3~9ms,最大時間可達20ms。
      • 旋轉時間(rotational time):讀寫頭到達目標磁道后,等待扇區第一個位旋轉到讀寫頭下的時間。依賴與讀寫頭到達時扇區的位置和旋轉速度。平均旋轉時間時1/RPM的一半。
      • 傳送時間(transfer time):當扇區第一位到達讀寫頭下方時就可以進行傳送了,時間依賴與扇區的大小和盤片旋轉速度。
      •  

     2.3.5 邏輯磁盤塊

      現代磁盤邏輯復雜,讀取磁盤數據對操作系統而言太過復雜。所以現代磁盤進行封裝后對操作系統呈現了一個簡單視圖:一個由B個扇區大小的邏輯塊序列,編號0.1.。。。B-1.磁盤中封裝一個磁盤控制器,維護邏輯塊和實際扇區的對應關系。

      當I/O操作一個磁盤數據時,操作系統發送命令到磁盤控制器,控制器將邏輯塊通過快速表查詢翻譯成一個(盤面,磁道,扇區)的三元組,將讀寫頭移動到特定地址,並將感知到的位存放到控制器的緩沖區,然后將它復制到主存中。

      

 

 

   2.4 固態硬盤(Solid State Disk, SSD)

    固態硬盤時基於閃存的存儲技術,由一個或多個閃存芯片和閃存翻譯層(flash translation layer)組成,閃存芯片替代傳統的旋轉磁盤的機械驅動器(盤片組),閃存翻譯層是一個固件設備,相當於磁盤控制器。

      

 

三:存儲器層次結構

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM