人們常說磁碟機介面是資料傳輸的瓶頸。例如。對於硬碟驅動器,資料從硬碟機緩衝區傳輸到硬碟記憶體模組。既然硬碟緩衝區是高速緩衝記憶體,那麼為什麼介面會成為瓶頸呢?我的意思是,快取是一種 sram。所以傳輸速度應該要很高。為什麼不是這樣呢?
答案1
如今,硬碟和 SSD 最常使用串列連接,但歷史上使用 IDE 介面。 IDE 基本上是早期 PC 使用的 ISA 匯流排的簡化版本。在此類電腦中,您可以按照您的建議直接存取裝置暫存器。但當 PCI 出現時,它的速度更快,因此舊的 IDE 驅動器速度太慢,無法直接存取。後來的IDE(或更確切地說,更名為ATA)提高了速度(儘管不是寬度:PCI 為32 位元寬,但ATA 仍為16 位元),但處理器速度不斷提高,PCI 和ATA 都跟不上。
最後我們從 ATA 的平行介面切換到串列介面。這使得與處理器的連接不那麼直接,但串行接口可以運行得更快,因此它們更接近全速運行,但這仍然會帶來延遲,並且比快速 RAM 慢。
舊的高速 ATA 驅動器通常使用 70 或 80ns 內存,其運行速度與總線相似。現代記憶體速度更快,但遠不及總線快。我想現代驅動器已經從過去使用的 16 位元處理器切換到更寬的總線尺寸以提高吞吐量。
答案2
既然硬碟緩衝區是高速緩衝記憶體,那麼為什麼介面會成為瓶頸呢?
緩衝區會增加延遲(每個請求需要更多時間),因為需要檢查緩衝區/快取的內容。那為什麼我們會有它們呢?因為通常資料是線性的,所以下次檢查緩衝區時,它可能已經在緩衝區中並且不需要檢查磁碟了。
另一個問題是
我的意思是,快取是一種 sram。所以傳輸速度應該要很高。為什麼不是這樣呢?
如果資料是從緩衝區/快取加載的,那麼速度會很快。只有當資料已經存在時才會發生這種情況。如果資料不在快取中,則會寫入磁碟,速度會較慢。如果連續讀取數據,則很可能數據不在快取中,因為快取與磁碟相比很小。