我找不到任何關於究竟是什麼使內存比磁碟機/固態硬碟快得多的細節。記憶體讀寫資料的方式與永久儲存的方式有什麼不同?它們之間有什麼根本的不同導致瞭如此巨大的差異?永久存儲與暫存。慢讀/寫 vs 快讀/寫。內存中的什麼讓它變得更快
答案1
物理層面發生的情況和 CPU 與設備之間介面發生的情況之間存在許多差異,這些差異會影響這些設備的速度。
注意:還有其他類型的 RAM(FeRAM、PRAM 等)和其他儲存系統,為了討論的目的,我只考慮電腦中使用的主要組件。
身體差異
RAM 中使用的「簡單」電子狀態變更與 HDD 和 SSD 設備中使用的實體世界變更之間存在根本區別。
傳統 RAM 使用少量電晶體來保存狀態。晶體管本質上是純粹基於電流運作的快速元件。它們的運作方式與 CPU 相同,但其速度也有一個缺點,即它們不穩定,這意味著如果斷電,資料就會遺失。
硬碟發生了更多的物理變化。您本質上不是改變電子電路的狀態,而是試圖強制改變物理介質。對於 HDD,它的過程類似於重新磁化針,您需要使用磁鐵來推動原子以對齊其磁場,並且與純電子晶體管開關相比,該過程相對較慢。
固態硬碟 (SSD) 是普通 RAM 和硬碟之間的奇怪中間體,它們本質上是一種電子儲存設備,但為了寫入它們,仍然必須發生物理變化。電子必須使用更高的電壓被迫進入它們通常不希望進入的區域。更高的電壓和強制寫入行為比簡單的電晶體狀態改變需要更多的工作。閱讀稍微複雜一些,也讓閱讀速度稍微慢一點。我寫了更多關於閃存如何運作的文章關於這個答案。
介面差異
還需要考慮這些設備的介面的性質。 HDD 和 SSD 等儲存設備具有控制器和接口,將位址線和資料線組合成基於協定的命令接口。為了執行任何操作,我們必須發送一條命令,說明give me the data from block 3192
控制器write this <data> to block 549,321,974
需要解碼該命令,然後將其付諸行動。由於物理 HDD 的旋轉特性,當每個資料請求按順序跟隨前一個資料時,它們的工作效果最佳。
SSD 是一種寬容得多的設備,並不真正關心資料請求的順序,但它們仍然需要設備中的控制器來處理透過「簡單」介面發送的命令。
HDD 和 SSD 與其控制器的介面(以及一般基於現代協定的介面)以「串列」模式運作。這意味著本質上有一條數據線必須重複切換才能建立命令。為了傳輸單一位元組的數據,序列線必須至少切換 8 次。除了資料之外,在發送命令位元組來告訴控制器您是否要求它讀取或寫入時,您還有很多「開銷」。
另一方面,RAM 與 CPU 的介面非常寬,而且它也是一個「並行」介面。它具有多個位址線和資料線,並且不需要真正的控制器(CPU 內建的記憶體控制器除外)來處理編組資料的輸入和輸出。 CPU 將位址線變更為所需的位址線,設定另外幾條線來表示它是在讀取還是在寫,然後開始在多條資料線上傳送資料。這是一種更複雜的安排,但由於專用的「寬」資料匯流排,可以一次發送更大的資料區塊,從而實現更大的批量速度。
我在我的文章中寫了更多關於介面差異的文章回答為什麼隨機存取記憶體被稱為“隨機存取”