논리 블록 어드레싱
Logical block addressingLBA(논리 블록 주소 지정)는 일반적으로 하드 디스크 드라이브와 같은 보조 스토리지 시스템인 컴퓨터 스토리지 장치에 저장되는 데이터 블록의 위치를 지정하는 데 사용되는 일반적인 체계입니다.LBA는 특히 단순한 선형 어드레싱 방식입니다.블록은 정수 인덱스로 배치되며 첫 번째 블록은 LBA 0, 두 번째 LBA 1 등이 됩니다.
IDE 표준에는 옵션으로 22비트 LBA가 포함되어 있으며, ATA-1(1994년)의 릴리스에서는 28비트로, ATA-6(2003년)의 릴리스에서는 48비트로 확장되었습니다. 반면 주소를 유지하는 온디스크 및 인메모리 데이터 구조의 엔트리 크기는 일반적으로 32비트 또는 64비트입니다.1996년 이후에 출시된 대부분의 하드 디스크 드라이브는 논리 블록 주소 지정을 구현합니다.
개요
논리 블록 어드레싱에서는 데이터 어드레싱에 1개의 숫자만 사용되며 각 선형 베이스 주소는 단일 블록을 나타냅니다.
LBA 체계는 스토리지 장치의 물리적 세부 정보를 운영 체제의 소프트웨어에 노출한 이전 체계를 대체합니다.그 중 가장 중요한 것은 실린더 헤드 섹터(CHS) 스킴으로, 블록은 하드 디스크에 나타나는 실린더, 헤드 및 섹터를 정의하는 태플을 통해 처리되었습니다.CHS는 하드디스크 이외의 디바이스(테이프나 네트워크 스토리지 등)에는 잘 매핑되지 않아 일반적으로 사용되지 않았습니다.CHS는 초기 MFM 및 RLL 드라이브에 사용되었으며, CHS와 그 후속 모델인 확장 실린더 헤드 섹터(ECHS)는 모두 최초의 ATA 드라이브에 사용되었습니다.그러나 현재 디스크 드라이브는 존 비트 기록을 사용합니다. 존 비트 레코딩에서는 트랙당 섹터 수가 트랙 번호에 따라 달라집니다.디스크 드라이브는 일부 CHS 값을 트랙당 섹터(SPT) 및 실린더당 헤드(HPC)로 보고하지만 디스크 드라이브의 실제 형상과는 거의 관련이 없습니다.
LBA는 추상화로서 SCSI에 처음 도입되었습니다.드라이브 컨트롤러는 여전히 CHS 주소로 데이터 블록을 처리하지만, 일반적으로 SCSI 장치 드라이버, OS, 파일 시스템 코드 또는 "원시" 디스크에 액세스하는 응용 프로그램(데이터베이스 등)에서는 이 정보가 사용되지 않습니다.블록 레벨의 I/O가 필요한 시스템 호출은 LBA 정의를 스토리지 디바이스 드라이버에 전달합니다.단순한 경우(볼륨이 하나의 물리 드라이브에 매핑됨), 이 LBA는 드라이브 컨트롤러에 직접 전달됩니다.
독립 디스크(RAID) 디바이스와 스토리지 에리어 네트워크(SAN)의 용장 어레이에서 논리 드라이브(논리 유닛 번호, LUN)가 LUN 가상화 및 집약을 통해 구성되는 경우 개별 디스크의 LBA 어드레싱을 소프트웨어 계층에서 변환하여 스토리지 디바이스 전체에 균일한 LBA 어드레싱을 제공해야 합니다.
확장 BIOS
Western Digital의 초기 IDE 표준은 22비트 LBA를 도입했습니다.1994년에는 ATA-1 표준에 따라 LBA와 CHS 모드 모두에서 28비트 주소가 허용되었습니다.CHS 방식에서는 1부터 255까지의 섹터를 카운트하여 실린더에 16비트, 헤드에 4비트, 섹터에 8비트를 사용했습니다.즉, 보고된 헤드의 수는 16을 넘지 않고(0~15), 섹터 수는 255(1~255), 실린더 수는 65,536(0~65535), 디스크 크기는 128 GiB(137.4GB)로 제한됩니다(512바이트 섹터).이러한 값은 ATA 명령 "Identify Device"(식별 장치)를 발행하여 액세스할 수 있습니다.EC
h)[1]: 87 드라이브에 접속합니다.
그러나 INT 13h 디스크 액세스 루틴에 정의된 IBM BIOS 구현에서는 CHS 주소 지정에 실린더용 10비트, 헤드용 8비트, 섹터용 6비트 또는 실린더용 1024비트, 256헤드 및 63 [2]섹터로 상당히 다른 24비트 방식을 사용했습니다.이 INT 13h 구현은 IBM PC에 플로피 디스크 스토리지만 있을 때 도입되었으며, IBM PC/XT에 하드 디스크 드라이브가 도입되었을 때 이전 버전과의 호환성 문제로 인해 INT 13h 인터페이스를 실질적으로 재설계할 수 없었습니다.ATA CHS 매핑과 BIOS CHS 매핑을 겹치면 10:4:6비트(1024개의 실린더, 16개의 헤드 및 63개의 섹터)의 최소 공통 분모가 생성되어 512바이트 섹터를 가정할 때 1024×16×63 섹터와 528 MB(504 MiB)의 실질적인 제한이 주어졌습니다.
BIOS가 이 제한을 극복하고 대용량 하드 드라이브에서 정상적으로 동작하기 위해서는 BIOS 디스크 I/O 루틴에 CHS 변환 방식을 구현해야 합니다.이 I/O 루틴은 INT 13h에서 사용되는 24비트 CHS와 ATA에서 사용되는 28비트 CHS 번호를 변환합니다.변환 방식은 Large 또는 Bit Shift Translation이라고 불립니다.이 방법을 사용하면 16:4:8 비트 ATA 실린더를 다시 매핑하고 INT 13h에서 사용하는 10:8:6 비트 스킴으로 헤딩하여 실제 디스크보다 훨씬 더 많은 "가상" 드라이브 헤드를 생성합니다.이로 인해 실제 제한은 1024×256×63 섹터, 즉 8.4GB(7.8GiB)로 증가했습니다.
이 제한을 더욱 극복하기 위해 INT 13h Extensions는 BIOS Enhanced Disk Drive Services와 함께 도입되었습니다.이 서비스에서는 Windows 95의 DOS 7.0 컴포넌트 등 새로운 인터페이스를 인식하는 운영 체제의 디스크 크기 제한을 없앴습니다.이 확장 BIOS 서브시스템은 LBA 또는 LBA 지원 방식을 사용하여 LBA 주소 지정을 지원합니다.LBA는 ATA 디스크 주소 지정에 네이티브 28비트 LBA를 사용하고 필요에 따라 CHS 변환을 수행합니다.
normal 또는 none 메서드는 528 MB를 초과하는 주소 지정을 지원하지 않는 이전의 10:4:6 비트 CHS 모드로 돌아갑니다.
1996년 ATA-2 표준이 출시되기 전까지는 LBA 주소 지정을 지원하지 않는 소수의 대형 하드 드라이브가 있었기 때문에 대형 또는 일반 방법만 사용할 수 있었습니다.다만, 이 큰 방법을 사용하면, 다른 BIOS 로부터 호환성이 없는 변환 방법을 사용하는 경우가 많아, 특정 벤더의 BIOS 를 탑재한 컴퓨터상에서 파티션 분할된 하드 드라이브를 다른 BIOS 의 컴퓨터로 읽어낼 수 없는 경우가 많아, 휴대성의 문제도 발생합니다.해결책은 OnTrack Disk Manager, Micro House EZ-Drive/EZ-BIOS 등의 변환 소프트웨어를 사용하는 것이었습니다.이 소프트웨어는 디스크의 OS 로더에 설치되어 부팅 시 INT 13h 루틴을 커스텀 코드로 대체했습니다.이 소프트웨어를 사용하면 LBA에 준거하지 않는 BIOS가 있는 오래된 컴퓨터에서도 LBA 및 INT 13h Extensions를 지원할 수 있습니다.
LBA 지원 번역
BIOS가 디스크를 LBA 지원 변환 모드로 사용하도록 구성된 경우 BIOS는 LBA 모드를 사용하여 하드웨어에 액세스하지만 INT 13h 인터페이스를 통해 변환된 CHS 지오메트리를 표시합니다.변환된 지오메트리의 실린더, 헤드 및 섹터 수는 다음 [3]표와 같이 디스크의 총 크기에 따라 달라집니다.
디스크 크기 | 섹터/트랙 | 앞면. | 실린더 |
---|---|---|---|
1 < X 50 504 MiB | 63 | 16 | X µ(63 × 16 × 512) |
504 MiB < X 1001008 MiB | 63 | 32 | X µ(63 × 32 × 512) |
1008 MiB < X © 2016 MiB | 63 | 64 | X µ(63 × 64 × 512) |
2016 MiB < X 40 4032 MiB | 63 | 128 | X µ(63 × 128 × 512) |
4032 MiB < X 808032.5 MiB | 63 | 255 | X µ(63 × 255 × 512) |
LBA48
현재의 48비트 LBA 스킴은 2002년에 ATA-6 [4]표준과 함께 도입되어 주소 제한을 정확히 128 PiB 또는 약 144 PB인 2 × 512 바이트로48 늘렸습니다.현재의 PC 호환 컴퓨터는 INT 13h Extensions를 지원합니다.INT 13h Extensions는 LBA 어드레싱에 64비트 구조를 사용하며 향후 LBA 어드레싱의 확장을 포함해야 합니다.다만, 최신의 operating system은 직접 디스크 액세스를 실장해, 부트 로드 시 이외에는 BIOS 서브 시스템을 사용하지 않습니다.그러나 일반적인 DOS 스타일의 MBR(Master Boot Record) 파티션 테이블은 최대 2TiB 크기의 디스크 파티션만 지원합니다.더 큰 파티션의 경우 현재 INT 13h Extensions와 동일한 64비트 제한을 가진 GPT(GUID 파티션 테이블) 등의 다른 스킴으로 대체해야 합니다.
CHS 변환
LBA 값 | CHS 태플 |
---|---|
0 | 0, 0, 1 |
1 | 0, 0, 2 |
2 | 0, 0, 3 |
62 | 0, 0, 63 |
63 | 0, 1, 1 |
945 | 0, 15, 1 |
1007 | 0, 15, 63 |
1008 | 1, 0, 1 |
1070 | 1, 0, 63 |
1071 | 1, 1, 1 |
1133 | 1, 1, 63 |
1134 | 1, 2, 1 |
2015 | 1, 15, 63 |
2016 | 2, 0, 1 |
16,127 | 15, 15, 63 |
16,128 | 16, 0, 1 |
32,255 | 31, 15, 63 |
32,256 | 32, 0, 1 |
16,450,559 | 16319, 15, 63 |
16,514,063 | 16382, 15, 63 |
LBA 주소 지정 방식에서 섹터는 정수 인덱스로 번호가 매겨집니다. CHS(실린더 헤드 섹터) 튜플에 매핑되면 LBA 번호는 첫 번째 실린더, 첫 번째 헤드 및 트랙의 첫 번째 섹터부터 시작됩니다.트랙이 소진되면, 번호는 첫 번째 실린더 안에 있는 동안 두 번째 헤드까지 계속됩니다.제1기통 내부의 헤드가 모두 소진되면 제2기통 등부터 번호부여가 계속된다.따라서 LBA 값이 낮을수록 물리적 섹터가 하드 드라이브의 첫 번째(가장 바깥쪽[5]) 실린더에 더 가깝습니다.
CHS 튜플은 다음 [6][7]식을 사용하여 LBA 주소에 매핑할 수 있습니다.
- LBA = (C × HPC + H) × SPT + (S - 1)
어디에
- C, H 및 S는 실린더 번호, 헤드 번호 및 섹터 번호입니다.
- LBA는 논리 블록 주소입니다.
- HPC는 실린더당 최대 헤드 수(디스크 드라이브에 의해 보고되며 일반적으로 28비트 LBA의 경우 16개)
- SPT는 트랙당 최대 섹터 수(디스크 드라이브에 의해 보고되며 일반적으로 28비트 LBA의 경우 63개)
LBA 주소는 다음 공식으로 CHS 튜플에 매핑할 수 있습니다.("mod"는 모듈로 연산, 즉 나머지, "θ"는 정수 나눗셈, 즉 분수 부분이 폐기되는 나눗셈).
- C = LBA µ (HPC × SPT)
- H = (LBA s SPT) mod HPC
- S = (LBA mod SPT) + 1
는 ATA사양에 따르면,:20그러므로 LBA 16450559에 대해서는 ATA드라이브 실제로 공통 하드웨어 및 소프트웨어 투플(16319,15,63)과 실린더의 이 계획에 뮤 대응할 수 있"단어의 1[논리적인 실린더의 수]16,383와 같아야 한다 말이(61:60)의 내용보다 또는 16,514,064다 크다면, 그 내용이다."[1].스톤 much가 INT 13h에서 [a]허용되는 1024보다 큽니다.
운영 체제의 의존 관계
BIOS에서 보고되는 드라이브의 지오메트리에 민감한 운영체제에는 Solaris, DOS 및 Windows NT 패밀리가 포함됩니다.NTLDR (NT, 2000, XP, Server 2003) 또는 WINLOAD (Vista, Server 2008, Windows 7 및 Server 2008 R2)는 CHS를 사용하여 디스크를 처리하는 마스터 부트 레코드를 사용합니다.x86 및 Windows NT 패밀리는 Windows 64 anium 버전입니다.LBA 어드레싱을 사용하는 아트션테이블
일부 운영체제는 BIOS에서 보고된 형상을 부트 로더에 사용하지 않기 때문에 변환이 필요하지 않습니다.이러한 운영 체제로는 BSD, Linux, macOS, OS/2 및 ReactOS가 있습니다.
「 」를 참조해 주세요.
- 블록(데이터 스토리지)
- 실린더 헤드 섹터(CHS)
- 디스크 포맷
- 디스크 파티셔닝
- 디스크 스토리지
메모들
레퍼런스
- ^ a b "Information Technology - AT Attachment with Packet Interface - 5 (ATA/ATAPI-5)" (PDF). www.t13.org. 29 February 2000. Archived from the original (PDF) on 6 August 2020. Retrieved 15 December 2020.
- ^ "KB224526: Windows NT 4.0 supports maximum of 7.8-GB system partition". Support.microsoft.com. 2007-02-23. Retrieved 2013-07-30.
- ^ Steunebrink, Jan. "The BIOS IDE Harddisk Limitations". Archived from the original on 6 October 2013. Retrieved 6 October 2013.
- ^ "Information Technology - AT Attachment with Packet Interface - 6 (ATA/ATAPI-6)" (PDF). www.t13.org. 26 February 2002. Archived from the original (PDF) on 6 August 2020. Retrieved 15 December 2020.
- ^ "Hard Disk Drive Basics". active-undelete.com. Retrieved 2015-02-10.
Track numbers start at 0, and track 0 is the outermost track of the disk. The highest numbered track is next to the spindle.
- ^ "Large Disk HOWTO, Section 3. Disk Access". tldp.org. 2004-11-08. Retrieved 2015-02-10.
- ^ "The CHS to LBA Conversion Formulas". pcrepairclass.tripod.com. Retrieved 2014-08-26.