Кіріспе

Компьютерлік сақтау құрылғыларындағы деректердің орналасқан жерін көрсету жолы. Логикалық блок адрестеу (LBA) – компьютерлік сақтау құрылғыларында, әдетте қатты дискілер сияқты екінші деңгейлі сақтау жүйелерінде сақталған деректер блоктарының орналасқан жерін анықтау үшін қолданылатын кең таралған схема. LBA – өте қарапайым сызықтық адрестеу схемасы; блоктар бүтін сандық индекс арқылы анықталады, алғашқы блок LBA 0, екінші LBA 1 болып табылады, және т.с.с. IDE стандарты 22 биттік LBA опциясын қамтыды, ол ATA 1 (1994) нұсқасымен 28 битке дейін, ал ATA 6 (2003) нұсқасымен 48 битке дейін ұзартылды. Ал адресті сақтайтын дискідегі және жадтағы деректер құрылымдарының көлемі әдетте 32 немесе 64 биттен тұрады. 1996 жылдан кейін шығарылған көптеген қатты дискілер логикалық блок адрестеуді қолданады.

Шолу

Логикалық блок адрестеуде деректерді адрестеу үшін бір ғана сан қолданылады, ал әрбір сызықтық базалық адрес бір блокты сипаттайды. LBA схемасы операциялық жүйенің бағдарламалық жасақтамасына сақтау құрылғысының физикалық ерекшеліктерін ашып көрсеткен бұрынғы схемаларды алмастырады. Олардың ішіндегі бастысы – цилиндр-бас-сектор (CHS) схемасы, онда блоктар цилиндрді, басты және қатты дискіде олардың орналасқан секторын анықтайтын жиын арқылы адрестелді. CHS схемасы қатты дискілерден басқа құрылғыларға (мысалы, магниттік ленталар мен желілік сақтау құрылғыларына) тиімді бейімделмеді және олар үшін көбінесе қолданылмады. CHS алғашқы MFM және RLL дискілерінде қолданылған, ал ол және оның ізбасары, кеңейтілген цилиндр-бас-сектор (ECHS) схемасы, алғашқы ATA дискілерінде қолданылған. Дегенмен, қазіргі дискілер аймақтық бит жазуды қолданады, онда тректің секторлар саны трек нөміріне байланысты болады. Дискілік диск кейбір CHS мәндерін трекке шаққандағы секторлар саны (SPT) және цилиндрдағы бас саны (HPC) ретінде көрсетсе де, олар дискінің нақты геометриясымен тікелей байланысты емес. LBA алғаш рет 1981 жылы SCSI-дің алдағысы SASI-мен абстракция ретінде енгізілді. Диск контроллері дерек блоктарын әлі де CHS адресі бойынша адрестейді, бірақ бұл ақпаратты SCSI құрылғы драйвері, операциялық жүйе, файлдық жүйе коды немесе «шикі» дискіге кіретін кез келген қосымшалар (мысалы, деректер базалары) көбінесе пайдаланбайды. Блок деңгейіндегі кіріс-шығыс операцияларын қажет ететін жүйелік шақырулар LBA анықтамаларын сақтау құрылғысының драйверіне жібереді; қарапайым жағдайларда (бір том бір физикалық дискке сәйкес келгенде) бұл LBA тікелей диск контроллеріне жіберіледі. Артық дискілер массивінде (RAID) құрылғыларында және сақтау аймақ желілерінде (SAN) және логикалық дискілер (логикалық бірлік нөмірлері, LUN) LUN виртуализациясы және агрегациясы арқылы құрастырылған жағдайларда, жеке дискілердің LBA адрестеуін бүкіл сақтау құрылғысы үшін біртекті LBA адрестеуін қамтамасыз ету үшін бағдарламалық қабат аударуы керек.

Жаңартылған BIOS

Western Digital компаниясының бұрынғы IDE стандарты 22 биттік LBA енгізді; 1994 жылы ATA 1 стандарты LBA және CHS режимдерінде 28 биттік мекенжайларды қолдануға рұқсат берді. CHS схемасы цилиндр үшін 16 бит, бас үшін 4 бит және сектор үшін 8 бит пайдаланды, секторлар 1-ден 255-ке дейін саналып есептелді. Бұл, есептелген бастар саны 16 (0–15), секторлар саны 255 (1–255; бірақ көбінесе 63 ең үлкені болып табылады) және цилиндрлер саны 65,536 (0–65535) дейін болуы мүмкін, бұл диск көлемін 128 Гибайтқа дейін шектейді (≈137.4 ГБ), егер 512 байттық секторлар қолданылса. Бұл мәндерге ATA командасын "Құрылғыны анықтау" (ECh) дискіге жіберу арқылы қол жеткізуге болады. Алайда, IBM BIOS жүйесінің INT 13h дискіге қатынау процедураларындағы орындалуы CHS мекенжайлау үшін мүлдем басқа 24 биттік схема қолданды, онда цилиндр үшін 10 бит, бас үшін 8 бит және сектор үшін 6 бит болды, яғни 1024 цилиндр, 256 бас және 63 сектор. Бұл INT 13h орындалуы ATA стандартына дейін жасалған, себебі ол IBM PC тек дискеттік дискілерге ие болған кезде енгізілген, ал IBM PC/XT-да қатты дискілер енгізілген кезде INT 13h интерфейсі кері үйлесімділік мәселелеріне байланысты қайта жобалана алмады. ATA CHS картасын BIOS CHS картасымен салыстыру 10:4:6 биттік, яғни 1024 цилиндрлік, 16 бас және 63 сектордың ең төменгі ортақ бөлгішін шығарды, бұл 1024 × 16 × 63 сектордың және 528 МБ (504 МиБ) практикалық шегін берді, егер 512 байттық секторлар қолданылса. BIOS-тың осы шектеуді жеңіп, үлкен қатты дискілермен сәтті жұмыс істеуі үшін BIOS дискінің I/O процедураларына CHS аударма схемасы енгізілуі керек болды, ол INT 13h-тың 24 биттік CHS-ін ATA-ның 28 биттік CHS нөмірлеуіне түрлендіретін еді. Аударма схемасы үлкен немесе биттік ауысу аудармасы деп аталды. Бұл әдіс 16:4:8 биттік ATA цилиндрлерін және бастарын INT 13h қолданған 10:8:6 биттік схемасына қайта орналастыратын болады, бұл физикалық дискіге қарағанда әлдеқайда көп "виртуалды" диск бастарын тудырады. Бұл 1024 × 256 × 63 секторларға немесе 8.4 ГБ (7.8 ГиБ) дейін практикалық шекті арттырды. Бұл шектеуді одан әрі жеңу үшін INT 13h кеңейтімдері BIOS Enhanced Disk Drive Services жүйесімен бірге енгізілді, бұл осы жаңа интерфейсті білетін операциялық жүйелер үшін диск көлеміне қатысты практикалық шектеулерді алып тастады, мысалы Windows 95-тегі DOS 7.0 компоненті. Бұл жетілдірілген BIOS жүйелік бөлігі LBA мекенжайлауды LBA немесе LBA көмегімен қолдайды, ол ATA дискілерін мекенжайлау үшін 28 биттік LBA қолданады және қажет болған жағдайда CHS түрлендіруді орындайды. Normal немесе none әдісі 10:4:6 биттік CHS режиміне қайта оралады, бұл 528 МБ-тан артық мекенжайды қолдамайды. 1996 жылы ATA 2 стандартының шығарылуына дейін LBA мекенжайлауды қолдамайтын бірнеше үлкен қатты дискілер болды, сондықтан тек үлкен немесе қалыпты әдістерді пайдалануға болады. Алайда, үлкен әдісті қолдану сонымен қатар тасымалданушылық проблемаларды тудырады, өйткені әр түрлі BIOS жиі әртүрлі және үйлеспейтін аударма әдістерін қолданды, ал белгілі бір өндірушінің BIOS-і бар компьютерде бөлінген қатты дискілерді басқа BIOS-пен компьютерде оқуға болмайды. Шешім - OnTrack Disk Manager, Micro House EZ Drive / EZ BIOS және т.б. сияқты түрлендіру бағдарламалық жасақтамасын қолдану, олар дискідегі OS жүктеушісіне орнатылады және жүктеу кезінде INT 13h процедураларын жеке кодпен ауыстырады. Бұл бағдарламалық қамтамасыз ету LBA және INT 13h кеңейтімдерін LBA-ға сәйкес келмейтін BIOS-пен ескі компьютерлерге қолдауды қамтамасыз етуі мүмкін.

LBA көмегімен аударылған аударма

BIOS LBA көмегімен аударма режимінде конфигурацияланғанда, BIOS аппаратты LBA режимінде пайдаланады, бірақ сонымен қатар INT 13h интерфейсі арқылы аудармаланған CHS геометриясын ұсынады. Аударылған геометриядағы цилиндрлер, бастар және секторлардың саны дискінің жалпы көлеміне байланысты, төмендегі кестеде көрсетілгендей:

Диск көлемі Сектор/трек Бастар Цилиндрлер
1 < X ≤ 504 МиБ 63 16 X ÷ (63 × 16 × 512)
504 МиБ < X ≤ 1008 МиБ 63 32 X ÷ (63 × 32 × 512)
1008 МиБ < X ≤ 2016 МиБ 63 64 X ÷ (63 × 64 × 512)
2016 МиБ < X ≤ 4032 МиБ 63 128 X ÷ (63 × 128 × 512)
4032 МиБ < X ≤ 8032.5 МиБ 63 255 X ÷ (63 × 255 × 512)

LBA48

Қазіргі 48 биттік LBA схемасы 2002 жылы ATA 6 стандартымен енгізілді, адрестеу шегін 2 × 512 байтқа дейін көтерді, бұл дәл 128PiB немесе шамамен 144PB құрайды. Қазіргі PC-ге үйлесімді компьютерлер LBA адрестеу үшін 64 биттік құрылымдарды қолданатын INT 13h кеңейтімдерін қолдайды және LBA адрестеудің болашақтағы кез келген кеңейтуін қамтуға тиіс, бірақ қазіргі операциялық жүйелер тікелей дискіге қол жеткізеді және жүктелу кезінен басқа BIOS подсистемаларын қолданбайды. Дегенмен, DOS үлгісіндегі Master Boot Record (MBR) бөлім кестесі тек 2TiB дейінгі дискілік бөлімдерді ғана қолдайды. Одан үлкен бөлімдер үшін оны басқа схемамен алмастыру қажет, мысалы, GUID Partition Table (GPT), оның 64 биттік шегі қазіргі INT 13h кеңейтімдерімен бірдей. Windows XP SP2 LBA48-ді қолдайтыны мәлім (және әдепкі бойынша қосулы).

Операциялық жүйеге тәуелділіктер

BIOS хабарлаған дискінің геометриясына сезімтал операциялық жүйелерге Solaris, DOS және Windows NT отбасы жатады, онда NTLDR (NT, 2000, XP, Server 2003) немесе WINLOAD (Vista, Server 2008, Windows 7 және Server 2008 R2) дискіні CHS арқылы анықтайтын Master boot record қолданады; Windows-тың x86 64 және Itanium нұсқалары дискіні LBA адрестеуін пайдаланатын GUID Partition Table арқылы бөлуге болады. Кейбір операциялық жүйелерге ешқандай түрлендіру қажет емес, себебі олардың жүктеуіштері BIOS хабарлаған геометрияны пайдаланбайды. Осы операциялық жүйелердің қатарында BSD, Linux, macOS, OS/2 және ReactOS бар.