複製鏈接
請複製以下鏈接發送給好友

邏輯區塊地址

鎖定
邏輯區塊地址(Logical Block Address, LBA)是描述計算機存儲設備數據所在區塊的通用機制,一般用在像硬盤這樣的輔助記憶設備。LBA可以意指某個數據區塊的地址或是某個地址所指向的數據區塊。現今計算機上所謂一個邏輯區塊通常是512或1024位組。ISO-9660格式的標準CD則以2048位組為一個邏輯區塊大小。
中文名
邏輯區塊地址
外文名
Logical Block Address
領    域
計算機

邏輯區塊地址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再傳給硬件控制器。 [1] 

邏輯區塊地址LBA對應與邏輯器件虛擬化

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

邏輯區塊地址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, 等密度記錄)方式,實際的每軌扇區數得根據它是哪一軌。不過磁盤還是會提供這個參數來匹配公式,內部再自動調整。 [2] 

邏輯區塊地址定址模式

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。 [3] 
參考資料
  • 1.    "KB224526: Windows NT 4.0 supports maximum of 7.8-GB system partition". Support.microsoft.com. 2007-02-23. Retrieved 2013-07-30.
  • 2.    "Large Disk HOWTO, Section 3. Disk Access". tldp.org. 2004-11-08. Retrieved 2015-02-10.
  • 3.    "The CHS to LBA Conversion Formulas". pcrepairclass.tripod.com. Retrieved 2014-08-26.