fbpx
维基百科

邏輯區塊位址

邏輯區塊位址英語:Logical Block AddressLBA)是描述電腦儲存設備上資料所在區塊的通用機制,一般用在像硬碟這樣的輔助記憶裝置。LBA可以意指某個資料區塊的位址或是某個位址所指向的資料區塊。現今電腦上所謂一個邏輯區塊通常是512或1024位元組。ISO-9660格式的標準CD則以2048位元組為一個邏輯區塊大小。

LBA定址機制

LBA是非常單純的一種定址模式﹔從0開始編號來定位區塊,第一區塊LBA=0,第二區塊LBA=1,依此類推。這種定址模式取代了原先作業系統必須面對儲存設備硬體構造的方式。最具代表性的首推CHS(cylinders-heads-sectors,磁柱-磁頭-磁區)定址模式,區塊必須以硬碟上某個磁柱、磁頭、磁區的硬體位置所合成的位址來指定。CHS模式對硬碟以外的裝置來說沒什麼作用(例如磁帶或是網路儲存設備),所以通常也不會用在這些地方。過去MFM(Modified Frequency Modulation, 改良調頻式)和RLL(Run Length Limited)儲存設備都曾使用CHS模式,ATA-1裝置更將延伸CHS(Extended Cylinders-Heads-Sectors, ECHS)也派上了用場。

SCSI採用LBA抽象定址。實際上硬體控制器還是以CHS來定址區塊,但無論驅動程式還是任何以低階存取磁碟的應用程式(例如資料庫軟體)通常都不再需要這個參數。各種要求區塊低階存取的系統呼叫把定義好的LBA傳給驅動程式﹔最直接的情況下(邏輯裝置與實體裝置單一對應)驅動程式只是將LBA再傳給硬體控制器。

LBA對應與邏輯裝置虛擬化

當邏輯裝置是經由虛擬化或是集合所構成的,像是RAID(磁碟陣列)和SANs(Storage Area Network)這種複雜的情況,就得把應用程式根據其觀點中的磁碟來指定的LBA轉換成每個實體儲存設備上的LBA。在複雜的分散式儲存結構下,從發出要求的應用程式到實體甚至是遠端設備之間,會有太多這樣的LBA轉換。

CHS與LBA互換

CHS位址可用以下公式轉成LBA,

#lba=(#c*H+#h)*S+#s-1 

其中,

  • #c、#h、#s分別是磁柱、磁頭、磁區的編號
  • #lba是邏輯區塊編號
  • H=heads per cylinder,每個磁柱的磁頭數
  • S=sectors per track,每磁軌的磁區數

LBA可用以下公式對應到CHS:

#c=#lba/(S*H) #h=(#lba/S)%H #s=(#lba%S)+1 

其中,

  • / 是整數除法
  • % 是取整數除法中的餘數
  • 請注意,當今的磁碟使用ZBR(Zone Bit Recording, 等密度記錄)方式,實際的每軌磁區數得根據它是哪一軌。不過磁碟還是會提供這個參數來符合公式,內部再自動調整。

其它公式:

#lba/S=q 餘 r #s=1+r q/H=#c 餘 #h 

例如:

CHS總數=[600, 10, 84],求#lba=1234所對應的CHS編號:
1234/84=14 餘 58
#s=1+58=59
14/10=1 餘 4
#c=1
#h=4
#chs=(1, 4, 59)
驗算: (1*10+4)*84+59-1=14*84+58=1234

LBA、ATA裝置以及Enhanced BIOS

ATA-1規範中定義了28位元定址模式,當成LBA或是CHS都可以。如果用CHS這28位元拆成: 磁柱16位元、磁頭4位元、磁區8位元。注意CHS模式磁區是從1開始算,所以在這個規範中磁區數最多只有255個,最大磁區編號為254(0xFE)。

規範採用當時,CHS的BIOS規範只有24位元: 磁柱10位元、磁頭8位元、磁區6位元,定義在BIOS的INT 13H軟體中斷裡,而且已經用在DOS的MBR(Master Boot Record,主要開機記錄)。這造成了BIOS CHS跟ATA CHS之間必須經過轉換,否則各參數只能用到兩者的最大公因數即CHS位元數={10, 4, 6},也就是1024×16×63個磁區,以每磁區512位元組計算得504 MiB。轉換方式其一是Large模式或稱Enhanced BIOS模式(又名Bit Shift Translation, 位移轉換),此方式會重新對應偵測到的磁柱和磁頭數而磁區數不變﹔方式其二是將頭一種CHS對應到LBA之後再換算成另一種CHS機制,稱為LBA-assist。

即使利用這些轉址方式,BIOS定給MS-DOS邏輯磁區(以及Windows NT 4.0硬碟分割區)的CHS位元數={10, 8, 6}機制頂多也只能達到7.84 GiB。以每磁區512位元組來計算,ATA-1所定義的28位元LBA上限達到128 GiB。2002年ATA-6規範採用48位元LBA,同樣以每磁區512位元組計算容量上限可達128 Petabytes。

外部連結

  • 如何在 Windows XP 中啟用 ATAPI 磁碟機的 48 位元邏輯區塊定址支援 (页面存档备份,存于互联网档案馆
  • LBAs explained (页面存档备份,存于互联网档案馆
  • LBA and CHS format, LBA mapping (页面存档备份,存于互联网档案馆
  • Microsoft article on 7.8GB limit on NT 4.0 (页面存档备份,存于互联网档案馆
  • Hard Drive Size Limitations and Barriers (页面存档备份,存于互联网档案馆
  • Upgrading and Repairing PC's (页面存档备份,存于互联网档案馆), by Scott Mueller. Pages 524-531.
  • Source for 48-bit LBA Information (页面存档备份,存于互联网档案馆

邏輯區塊位址, 本條目存在以下問題, 請協助改善本條目或在討論頁針對議題發表看法, 此條目可参照英語維基百科相應條目来扩充, 2020年7月28日, 若您熟悉来源语言和主题, 请协助参考外语维基百科扩充条目, 请勿直接提交机械翻译, 也不要翻译不可靠, 低品质内容, 依版权协议, 译文需在编辑摘要注明来源, 或于讨论页顶部标记, href, template, translated, page, html, title, template, translated, page, translated, page, 标. 本條目存在以下問題 請協助改善本條目或在討論頁針對議題發表看法 此條目可参照英語維基百科相應條目来扩充 2020年7月28日 若您熟悉来源语言和主题 请协助参考外语维基百科扩充条目 请勿直接提交机械翻译 也不要翻译不可靠 低品质内容 依版权协议 译文需在编辑摘要注明来源 或于讨论页顶部标记 a href Template Translated page html title Template Translated page Translated page a 标签 此條目已列出參考文獻 但因為沒有文內引註而使來源仍然不明 2020年7月28日 请加上合适的文內引註来改善这篇条目 邏輯區塊位址 英語 Logical Block Address LBA 是描述電腦儲存設備上資料所在區塊的通用機制 一般用在像硬碟這樣的輔助記憶裝置 LBA可以意指某個資料區塊的位址或是某個位址所指向的資料區塊 現今電腦上所謂一個邏輯區塊通常是512或1024位元組 ISO 9660格式的標準CD則以2048位元組為一個邏輯區塊大小 目录 1 LBA定址機制 2 LBA對應與邏輯裝置虛擬化 3 CHS與LBA互換 4 LBA ATA裝置以及Enhanced BIOS 5 外部連結LBA定址機制 编辑LBA是非常單純的一種定址模式 從0開始編號來定位區塊 第一區塊LBA 0 第二區塊LBA 1 依此類推 這種定址模式取代了原先作業系統必須面對儲存設備硬體構造的方式 最具代表性的首推CHS cylinders heads sectors 磁柱 磁頭 磁區 定址模式 區塊必須以硬碟上某個磁柱 磁頭 磁區的硬體位置所合成的位址來指定 CHS模式對硬碟以外的裝置來說沒什麼作用 例如磁帶或是網路儲存設備 所以通常也不會用在這些地方 過去MFM Modified Frequency Modulation 改良調頻式 和RLL Run Length Limited 儲存設備都曾使用CHS模式 ATA 1裝置更將延伸CHS Extended Cylinders Heads Sectors ECHS 也派上了用場 SCSI採用LBA抽象定址 實際上硬體控制器還是以CHS來定址區塊 但無論驅動程式還是任何以低階存取磁碟的應用程式 例如資料庫軟體 通常都不再需要這個參數 各種要求區塊低階存取的系統呼叫把定義好的LBA傳給驅動程式 最直接的情況下 邏輯裝置與實體裝置單一對應 驅動程式只是將LBA再傳給硬體控制器 LBA對應與邏輯裝置虛擬化 编辑當邏輯裝置是經由虛擬化或是集合所構成的 像是RAID 磁碟陣列 和SANs Storage Area Network 這種複雜的情況 就得把應用程式根據其觀點中的磁碟來指定的LBA轉換成每個實體儲存設備上的LBA 在複雜的分散式儲存結構下 從發出要求的應用程式到實體甚至是遠端設備之間 會有太多這樣的LBA轉換 CHS與LBA互換 编辑CHS位址可用以下公式轉成LBA lba c H h S s 1 其中 c h s分別是磁柱 磁頭 磁區的編號 lba是邏輯區塊編號 H heads per cylinder 每個磁柱的磁頭數 S sectors per track 每磁軌的磁區數LBA可用以下公式對應到CHS c lba S H h lba S H s lba S 1 其中 是整數除法 是取整數除法中的餘數 請注意 當今的磁碟使用ZBR Zone Bit Recording 等密度記錄 方式 實際的每軌磁區數得根據它是哪一軌 不過磁碟還是會提供這個參數來符合公式 內部再自動調整 其它公式 lba S q 餘 r s 1 r q H c 餘 h 例如 CHS總數 600 10 84 求 lba 1234所對應的CHS編號 1234 84 14 餘 58 s 1 58 59 14 10 1 餘 4 c 1 h 4 chs 1 4 59 驗算 1 10 4 84 59 1 14 84 58 1234LBA ATA裝置以及Enhanced BIOS 编辑ATA 1規範中定義了28位元定址模式 當成LBA或是CHS都可以 如果用CHS這28位元拆成 磁柱16位元 磁頭4位元 磁區8位元 注意CHS模式磁區是從1開始算 所以在這個規範中磁區數最多只有255個 最大磁區編號為254 0xFE 規範採用當時 CHS的BIOS規範只有24位元 磁柱10位元 磁頭8位元 磁區6位元 定義在BIOS的INT 13H軟體中斷裡 而且已經用在DOS的MBR Master Boot Record 主要開機記錄 這造成了BIOS CHS跟ATA CHS之間必須經過轉換 否則各參數只能用到兩者的最大公因數即CHS位元數 10 4 6 也就是1024 16 63個磁區 以每磁區512位元組計算得504 MiB 轉換方式其一是Large模式或稱Enhanced BIOS模式 又名Bit Shift Translation 位移轉換 此方式會重新對應偵測到的磁柱和磁頭數而磁區數不變 方式其二是將頭一種CHS對應到LBA之後再換算成另一種CHS機制 稱為LBA assist 即使利用這些轉址方式 BIOS定給MS DOS邏輯磁區 以及Windows NT 4 0硬碟分割區 的CHS位元數 10 8 6 機制頂多也只能達到7 84 GiB 以每磁區512位元組來計算 ATA 1所定義的28位元LBA上限達到128 GiB 2002年ATA 6規範採用48位元LBA 同樣以每磁區512位元組計算容量上限可達128 Petabytes 外部連結 编辑如何在 Windows XP 中啟用 ATAPI 磁碟機的 48 位元邏輯區塊定址支援 页面存档备份 存于互联网档案馆 LBAs explained 页面存档备份 存于互联网档案馆 LBA and CHS format LBA mapping 页面存档备份 存于互联网档案馆 Microsoft article on 7 8GB limit on NT 4 0 页面存档备份 存于互联网档案馆 Hard Drive Size Limitations and Barriers 页面存档备份 存于互联网档案馆 Upgrading and Repairing PC s 页面存档备份 存于互联网档案馆 by Scott Mueller Pages 524 531 Source for 48 bit LBA Information 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 邏輯區塊位址 amp oldid 72242770, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。