0
我是Linux內核開發的新手。我讀過I/O端口可能是ioremap虛擬內存地址空間。操作HDD的芯片緩存
HDD的規格之一是緩存 - 32MB/64MB並不少見。
這是我的問題:
驅動程序開發人員應該如何處理這種緩存?
它們對於開發者來說是否透明?
或者我們應該將這些緩存映射到內核地址空間,以便我們可以直接使用它們嗎?
任何解釋/源代碼將不勝感激。
我是Linux內核開發的新手。我讀過I/O端口可能是ioremap虛擬內存地址空間。操作HDD的芯片緩存
HDD的規格之一是緩存 - 32MB/64MB並不少見。
這是我的問題:
驅動程序開發人員應該如何處理這種緩存?
它們對於開發者來說是否透明?
或者我們應該將這些緩存映射到內核地址空間,以便我們可以直接使用它們嗎?
任何解釋/源代碼將不勝感激。
HDD上的高速緩存是物理上位於驅動器內的RAM(位於SATA/PATA/USB電纜之下),因此不屬於位於主板上的RAM的一部分。
TBH,如果您正在使用這個掙扎,我會推薦的東西有點簡單,因爲你的第一個內核黑客:-)
尼爾,什麼我問的是有關虛擬內存空間。 I/O總線端口可以映射到虛擬內存地址。他們如何處理硬盤上的緩存?它是否映射到虛擬內存空間? – Qylin
硬盤上的內存高速緩存和主板上的內存之間沒有物理或虛擬連接,它全部在驅動器電纜下完成。如果您認爲硬盤緩存是一臺單獨的PC(通過網線連接),那麼無法通過虛擬尋址將RAM從該PC映射到本地PC上? – Neil