PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   儲存媒體討論區 (https://www.pcdvd.com.tw/forumdisplay.php?f=20)
-   -   關於所謂的4K對齊 (https://www.pcdvd.com.tw/showthread.php?t=962349)

TIDUS30536 2012-03-21 09:24 AM

關於所謂的4K對齊
 
我的理解是:
1.OS的基本單位:4096bytes/cluster,也等同記憶體的一個page size

2.因為早期IBM的軟碟機基本單位是512bytes/sector,所以後來儲存媒體都這樣制定sector size

3.OS寫入一個單位為cluster,會被硬碟拆成8個sector邏輯定指寫入硬碟

Q:但是問題是,OS一個單位的資料還是4096bytes,硬碟是直接把資料/8*512bytes切割嗎?那他在LBA的時候是用什麼方式得知"那筆"資料的存放位置以及順序?總不可能向記憶體一樣給個大小和起始位置判別吧,真那樣也不會有碎片產生了

4.早期的分割表會讓硬碟起始位置在31.5k的位置開始記錄,所以不會對齊,從vista開始分割表就會對齊4K,網路上說是分割表導致儲存的起始位置不能與自己的基本寫入單位對齊,導致OS寫入一個單位,可能不是在同一個4K sector裡面,而造成讀取的時候,要多讀取一次

Q:假設真如他所說的這樣,那4K先進格式化技術,就算我儲存20bytes的檔案,實際上寫入的大小也是4K摟?因為只有這樣子的I/O機制才會造成不對齊4K sector的時候需要多讀取一次,不然如果傳統的LBA定址512bytes,每次就是512bytes,1個OS的寫入/讀取就是8個傳統sector的操作,也不會有對齊不對齊的問題了,是這個意思嗎?

5.但是網路上又說先進格式化也允許早期的OS模擬邏輯定址512bytes,定址LBA這個部分,是OS在進行的嗎?OS應該不用取得硬碟的實際磁區狀況,他只認得cluster為單位,為什麼先進格式化又說需要模擬512bytes定指呢?直接4k/cluster對上4k/sector不就好了嗎?

6.對於sector size,如果訂為4096bytes,那實際寫入1024bytes,是否實際使用了4096bytes的空間?

Q:但是這樣又跟我們接觸的檔案儲存的結構(NTFS)概念不同,我用1KB,硬碟應該是少1KB才對啊....越想越奇怪


誰來幫幫無知的我 :stupefy:

david_lin 2012-03-22 01:21 AM

OS沒差,是看你格式化時選的大小
LBA 只是用來對應
至於劃成512是會省空間沒錯,
至於4K存512的話是佔用4K,反正就是存比4K小都是佔4k

pilotjay 2012-03-22 01:27 AM

先釐清
4K對齊不完全等於先進格式化
其他才有辦法更深入了解

TIDUS30536 2012-03-22 02:28 AM

引用:
作者pilotjay
先釐清
4K對齊不完全等於先進格式化
其他才有辦法更深入了解


先進格式化是內部硬碟的機制了,我比較在意的是為什麼官方要說XP要被模擬成512bytes?直接對應OS的cluster(預設4K)不就好了?
以及早期沒有這個疑慮,是不是LBA都把資料拆成一個個512bytes儲存?
還有檔案結構系統寫入少於4K為什麼不是直接減少4K?

PS.先進格式化照我認知應該是減少每個sector之間的間格總量,還有ECC的資料4K只需要140bytes,比傳統的512*8需要40*8要少,且如果每次都直接對應不需要拆成512bytes,I/O應該比較有效率了(?)

bureia 2012-03-22 12:09 PM

以前硬碟512bytes per sector
先進格式化4096bytes per sector

跟windows中分割區配置單位大小4096bytes沒有關係

bureia 2012-03-22 12:35 PM

摘自http://5i01.com/topicdetail.php?f=297&t=1448368&p=1

說明:
Advanced Format只是WD稱呼實體磁區(Sector)配置為4096Byte(4kByte)的硬碟,一般傳統硬碟的實體磁區配置為512Byte。

問題點:
所有Win5.x的作業系統(Windows 2k, xp, 2k3, WHS)都對實體4k的磁區配置(Physical 4k Sector)沒有任何概念,因為Win2k發行時這個議題的討論還不是非常成熟,加上所有Win5.x的作業系統在分割第一個Partition的時候都習慣從LBA63開始,導致在Advance Format的硬碟上分割磁區時產生偏差。

簡單的說,假設有一排長方形的櫃子(每個櫃子=4kB),每個櫃子裡有八個格子(每個格子=512B),Win5.x的系統就會告訴你從第八個櫃子裡的第七個格子開始放資料(造成Partition偏移)。

結果就是,分割完開始放資料後,總是會有一些是放到隔壁的櫃子去的(因為Partition偏移),進而造成下次要更新資料的時候,不能直接整理該比資料對應的櫃子就好,還得把隔壁的櫃子一併整理(因為有些資料放到隔壁去了)。造成效能的低落

然而以上的問題在Win6.x(Windows Vista, 2008, 7)、MacOSX、Linux上的作業系統並不會發生,因為上述的系統都已經把Physical 4k Sector的狀況考慮進去。

rockjimmy 2012-03-23 09:53 PM

引用:
作者bureia
以前硬碟512bytes per sector
先進格式化4096bytes per sector

跟windows中分割區配置單位大小4096bytes沒有關係


所以SSD要格式化時
"windows中分割區配置單位大小"都選預設值就OK了嗎@@?

浮出水面 2012-03-24 09:15 AM

引用:
作者rockjimmy
所以SSD要格式化時
"windows中分割區配置單位大小"都選預設值就OK了嗎@@?

友站曾有人做過試驗,他的結論還是4K最理想

浮出水面 2012-03-24 09:32 AM

引用:
作者TIDUS30536
先進格式化是內部硬碟的機制了,我比較在意的是為什麼官方要說XP要被模擬成512bytes?直接對應OS的cluster(預設4K)不就好了?
以及早期沒有這個疑慮,是不是LBA都把資料拆成一個個512bytes儲存?
還有檔案結構系統寫入少於4K為什麼不是直接減少4K?

PS.先進格式化照我認知應該是減少每個sector之間的間格總量,還有ECC的資料4K只需要140bytes,比傳統的512*8需要40*8要少,且如果每次都直接對應不需要拆成512bytes,I/O應該比較有效率了(?)

因為你說的4K是屬於最上層的檔案系統的邏輯層次,但XP(包括Win7在內)最底層的API只認識512或512e AF,根本不知道底層的4K或4Kn AF是什麼東西啊

再爆個料,先進格式化一點都不先進,微軟官方一語戳破硬碟商的美麗包裝,讓我看的驚奇連連啊 :eek:

TIDUS30536 2012-03-24 10:35 AM

引用:
作者浮出水面
因為你說的4K是屬於最上層的檔案系統的邏輯層次,但XP(包括Win7在內)最底層的API只認識512或512e AF,根本不知道底層的4K或4Kn AF是什麼東西啊

再爆個料,先進格式化一點都不先進,微軟官方一語戳破硬碟商的美麗包裝,讓我看的驚奇連連啊 :eek:


可以跟我說在哪裡看到嗎?
爆料的文章?
謝謝:)


所有的時間均為GMT +8。 現在的時間是01:09 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。