数据存储

**電腦數據存貯器**，也稱**儲存器**或**記憶體**。

在今日，記憶體通常指的是半導體儲存器隨機存取記憶體，特別是動態隨機存取記憶體 (Dynamic-RAM)。記憶體是速度快但只能暫時儲存資料的裝置。儲存器是儲存裝置但他們跟中央處理器沒有直接的連結，(第二級儲存裝置或第三級儲存裝置)— 例如硬碟，光碟，或是其他裝置，傳輸速度比 RAM 慢。歷史上，記憶體被稱為主記憶體，內部記憶體，儲存裝置被認為是第二級儲存裝置，外部記憶體。然而在中國內地的智慧型電話中，通常用「記憶體」指代第二級儲存裝置，RAM 被稱作「運存」。

市場上存在多種不同形態、不同材質的記憶體。到目前為止，任何一種儲存裝置都有其缺點，因此一台電腦通常都有好幾種不同種類的儲存裝置，每一種都有其特別的功能。

電腦使用二進制來處理數據。檔案，數字，圖形，影音，或是其他資料都可以用一串位元來表示，每一個位元的值不是一就是零。最常見的儲存單位是位元組，一位元組等於八位元。一份資料可以被任何具有足夠容量去容納該資料大小的電腦所處理。

傳統上，一部電腦最重要的元件是中央處理器 (CPU)，因為他負責處理資料，進行所有計算，並且控制電腦內其他所有元件。中央處理器包含兩個部分：控制單元 以及算術邏輯單元 (ALU)。前者控制資料在中央處理器及記憶體之間的流動。後者處理資料的邏輯運算。

如果沒有足夠的記憶體，電腦將只能進行固定的工作而且立刻將結果輸出。這在計算機及數位訊號處理是可接受的。范紐曼型架構機器擁有足夠的記憶體去儲存正在執行的指令集以及資料。結果使電腦不用為了執行一個新的程式而改變硬體的組態，使程式設計變得簡單，大部分的電腦都是范紐曼型架構。

實際上，幾乎所有電腦都有各種不同的記憶體，這些記憶體在中央處理器旁邊，構築成記憶體階層，在效率和花費兩者之間的拉鋸中，在階層中較低層的記憶體， 頻寬較低，而且資料到中央處理器的時間也較久，遲滯時間較長。傳統上分第一級，第二級，第三級，離線記憶體。

## 第一級記憶體

第一級記憶體 (又稱主記憶體或內部記憶體)，通常簡稱為記憶體，這層的記憶體與中央處理器直接連通，中央處理器會不斷讀取儲存在這裡的指令集，並在需要時執行這些指令集。

歷史上，早期的電腦使用延遲線，威廉士管作為主要的儲存器。在 1954 年，磁芯記憶體被開發出來大幅取代了上述不太穩定的方法。磁芯記憶體維持優勢至 1970 年代，此時積體電路技術的進步，使得半導體記憶體在價格上變得便宜而有競爭力。

這使得現代化的隨機存取記憶體 (RAM) 被製造出來。該款記憶體的重量輕，尺寸小，然而十分昂貴。(這種記憶體被用來做成第一級記憶體，同時它也是揮發性記憶體，意思就是當電力不再供應時，記憶體內的資料就會消失)。

如同右圖所示，在第一級記憶體的內部除了主記憶體，也就是隨機存取記憶體外，還分有兩個或兩個以上的子層:

* 暫存器被設定在處理器內。每個暫存器都儲存資料中的一個字 (一個字的大小通常是 32 位元或 64 位元)。中央處理器內的指令能讓 算術邏輯單元 去執行各種計算或是處理資料。暫存器傳輸資料的速度是所有記憶體中最快的。
* CPU 快取，它傳輸資料的速度僅次於暫存器。被用來作為提升電腦的效能。大部分經常被使用的資料 (存在主記憶體中)，會複製另一份存在快取記憶體內，這樣可提升速度，否則速度將會大幅降低，且暫存器也容納不下那麼多資料。多層快取階層亦經常被使用 — 第一層快取容量最小，速度最快且位於處理器內部；第二層快取容量較大且較慢。

主記憶體藉記憶體匯流排與中央處理器連接。有兩種不同的匯流排 (並沒有在圖上): 位址匯流排以及資料匯流排。一開始中央處理器藉位置匯流排傳送數字，這數字就是記憶體位置，其指出資料的位置。然後中央處理器用資料匯流排將資料讀出或寫入。此外，記憶體管理單元 (MMU) 是一種介於中央處理器跟主記憶體的裝置，用來重新計算記憶體位置，例如提供虛擬位址。

由於 RAM 具有揮發性 (啟動時裡面是空的)，這樣的話電腦就無法儲存啟動時需要的指令，因此，非揮發性記憶體儲存了執行啟動的程式 (BIOS)，為了讀取較大的程式，先自第二層的非揮發性記憶體讀取到隨機存取記憶體，然後執行程式。一種記憶體因著這目的被製出，就是唯讀記憶體 (唯讀記憶體也是屬於隨機存取).

許多唯讀記憶體並不僅僅只能讀取，雖然速度慢，但資料還是可以抹除並重新寫入。一些嵌入式系統直接使用唯讀記憶體來跑程式，因為程式幾乎不會變化，現在的電腦將資料存於第二層非揮發性的記憶體，而非唯讀記憶體，這是比較經濟的做法。

## 第二級記憶體

第二級記憶體 (又稱外部記憶體或輔助記憶體)，和第一級記憶體不同的是，第二級記憶體和中央處理器並沒有直接連通，電腦經常使用記憶體的 I/O 通道來與之連接，第二級記憶體使用資料緩衝器來將資料傳送至第一級記憶體。在不供應電源的情況下，第二級記憶體的資料仍然不會消失 — 這表示它是非揮發性的。

現今的電腦，硬碟被廣泛地做為第二層記憶體，硬碟存取資料的時間大約是幾千分之一秒，或是幾個毫秒。然而，隨機存取記憶體存取資料的時間僅有幾十億分之一秒，或是幾個奈秒。硬碟的速度只有記憶體存取速度的百萬分之一，光碟，例如 CD 和 DVD，有更長的存取時間。

當資料儲存於碟片時，將資料傳送到區塊可降低遲滯時間，提升效率，這樣的話需要外部記憶體演算法。連續存取和區塊存取的速度比隨機存取要快得多，所以許多尖端的記憶體都在開發更有效率的演算法來執行連續存取或區塊存取。一個突破 I/O 瓶頸的方法是使用多重磁碟，可以增加第一級與第二級記憶體之間的頻寬。

這裡列舉一些第二級記憶體的例子：快閃記憶體 (例如隨身碟)，軟碟，磁帶，紙帶，打孔卡，RAM disk，Zip Drive。

第二級記憶體通常被設計成符合檔案系統的格式，這使得資料可以儲存在目錄和電腦檔案內。

大部分的作業系統使用了虛擬記憶體的概念，第一級記憶體的物理容量雖然不變，但可以藉挪用第二級記憶體的空間來增大第一級記憶體的容量。系統會將最少使用到的區塊 (頁) 移至第二級記憶體 (置換檔案或分頁檔案)，當這些檔案被需要時再將它們取回，當愈多檔案需要從第二級記憶體中取回，電腦的效能就愈低。

## 第三級記憶體

**第三級儲存裝置**或**第三級記憶體**, 這是指可直接插入或自電腦拔除的儲存裝置；裡面的資料在被使用前通常都會複製到第二級記憶體內。該款記憶體的存取速度比第二級記憶體要慢得多 (5–60 秒 vs. 1–10 毫秒)。該款記憶體的優勢在於其擁有龐大的儲存空間，典型的例子包含磁帶櫃和光學記錄庫。

## 記憶體的特性

所有的記憶體都可以用其核心的特性以及可以用測量而得知的效能，容量來區分。核心的特性有揮發性，讀寫性，存取法，以及定址法。測量得知的特性有效能跟容量。

### 揮發性

**非揮發性記憶體**
: 資料在電源不供電的狀態下仍能儲存。這適用於須長期使用的資料。

**揮發性記憶體**
: 資料需要有持續不斷的電力才能保持。目前存取速度最快的記憶體是屬於揮發性的。因為第一級記憶體需要極快的速度，所以採用揮發性記憶體。

**動態隨機存取記憶體**
: 一種揮發性記憶體，資料需要每隔一段時間就重新讀取或重新寫入，否則資料將會消失。

**靜態隨機存取記憶體**
: 一種類似 DRAM 的記憶體。不同的是在電力持續供應的狀態下，它不用被重新寫入或是讀取資料 (如果沒有電力來支援，資料還是會消失)。

### 讀寫性

**可讀寫的記憶體**
: 它允許資料在任一時間被覆寫。如果一台電腦的第一級記憶體不是可讀寫的 (至少要有一定數量的第一級記憶體是可讀寫的)，那這台電腦將無法執行各種任務。而第二級記憶體也有許多是可讀寫的。

**唯讀記憶體**
: 記憶體內的資料通常不會變，但有時允許資料寫入 (Write Once Read Many) 這種記憶體也被叫做**不可變記憶體**，主要備用在第三級跟離線記憶體上， 例如 CD-ROM 以及 CD-R。

**快速讀取低速寫入記憶體**
: 例如 CD-RW 和快閃記憶體。

### 存取法

**隨機存取**
: 在任何的時間，任何的位置都可以被存取。這適合第一級與第二級記憶體。

**循序存取**
: 要存取的資訊依照順序來存取，一個接著一個；存取時間長短取決於哪一項資料是最後存取的，這是離線記憶體的特徵。

### 定址法

**區塊定址**
: 根據記憶體區塊的實體位址來存取資料。在今日的電腦，區塊定址通常只出現在第一級記憶體，由電腦程式來存取，而且存取的效率很高，不過對人而言這是個負擔。

**檔案定址**
: 資料被分割成檔案，檔案依照人類可讀的名稱或檔案名稱而被選擇，其實這也是一種區塊定址，不過作業系統會將檔案抽象化，從而讓工作更容易被理解。在今日的電腦，第二級，第三級，離線記憶體採用這種方法來定址。

**內容定址**
: 資料依據本身的內容被存取。內容定址被使用於軟體 (電腦程式) 或硬體 (電腦裝置)，這讓硬體變得有效率，但也變得比較昂貴。硬體內容定址記憶體通常被用於 CPU 快取。

### 容量

**原始容量**
: 儲存裝置或媒介可以儲存被儲存資訊的總量。以位元或位元組表示 (例如 10.4 百萬位元組)。

**記憶體儲存密度**
: 每單位長度，面積，體積的記憶體可以儲存的容量 (例如每平方英吋 1.2 百萬位元組)。

### 效能

**遲滯時間**
: 存取儲存器內部特定區域資料所花的時間。在第一級記憶體中，以奈秒作為合理的計量單位，第二級記憶體以毫秒作為計量單位，以秒作為第三級記憶體的計量單位或是。遲滯時間可以合理的分為讀取的遲滯時間和寫入的遲滯時間，以循序存取儲存器來說，有最短、最長與平均遲滯時間。

**吞吐量**
: 將資料讀取到或是寫出記憶體的速度。吞吐量通常表示為百萬位元組 / 秒或是 MB/s，位元率也被使用著。就跟遲滯時間一樣，讀和寫的速度算做兩筆不同資料。存取資料的速度取決於最大吞吐量。

**粒度**
: 能以單獨一個單位被有效率的存取的最大片資料的大小，例如，沒有引發更多的遲滯時間 。

**可靠度**
: 在不同的條件下，非自發性的位元值改變，或整體故障率。

## 基本儲存技術

直至 2008 年，最常用的數據儲存技術是半導體、磁性、光學，同時還看到一些使用紙張作儲存。也有一些曾於過去使用或是在將來會使用的數據儲存技術。

## 使用電源

* 部份裝置在待用模式下，減少使用風扇，將可減少能源消耗百分之九十。

## 參考文獻

## 參見

* 電腦