Сегмента́ція па́м'яті — схема логічної адресації пам'яті комп'ютера.
Лінійна адреса конкретного елементу пам'яті, який в деяких режимах роботи процесора буде збігатися з фізичною адресою, ділиться на дві частини: сегмент і зсув. Сегментом називається умовно виділена область адресного простору певного розміру, а зміщенням — адреса комірки пам'яті щодо початку сегмента. Базою сегмента називається (адреса щодо всього обсягу пам'яті), що вказує на початок сегмента в адресному просторі.
В результаті виходить сегментна (логічна) адреса, яка відповідає лінійному адресу база сегмента + зміщення і яка виставляється процесором на шину адреси.
Про технологію
Технологія сегментації дозволяє поділити адресний простір процесу на кілька сегментів. Довільна адреса програми містить ідентифікатор сегмента (segment ID) і зсув від його початку. Кожен сегмент може мати власні налаштування захисту. Сегменти завантажуються в оперативну пам'ять цілком, кожний з них описується за допомогою дескриптора, що містить фізичну адресу, за яким завантажений сегмент (базова адреса), розмір і інформація про захист. Апаратна частина перевіряє границі сегмента при кожній операції доступу, що виключає факти ушкодження процесом сусіднього сегмента. Завантаження і вивантаження (свопінг) можуть бути проведені на рівні окремих сегментів, а не всієї програми.
Сегментація в інших випадках використовується разом з розбиттям на сторінки, що в результаті дає гнучкий гібридний механізм керування пам'яттю. У таких системах сегменти не обов'язково повинні розташовуватися у пам'яті неперервно.
Сегментація у архітектурі x86
Реальний режим
У реальному режимі процесора весь адресний простір ділиться на однакові сегменти розміром від 16 байт до 65536 байтів. Початок кожного наступного сегмента (так звана «база сегмента») зміщена щодо бази попереднього на мінімальний розмір сегмента, тобто на 16 байтів (т.н. «параграф»). Таким чином, сегменти можуть частково перекривати один одного.
Селектор 16-розрядний і задає номер сегмента. З огляду на, що сегменти слідують один за одним з постійним інтервалом у 24 = 16 байтів, дуже легко з'ясувати лінійну адресу сегмента, множачи його на 16.
16-розрядні сегментні регістри інтерпретуються як старші значущі 16 бітів лінійної 20-розрядної адреси. Для отримання фізичної адреси до неї додається значення зміщення. 20-розрядний адресний простір реального режиму обмежує пам'ять 220 = 1048576 байтами (1 мегабайт). Це обмеження випливало безпосередньо з дизайну процесора Intel 8086 (а згодом і тісно пов'язаного 8088), який мав рівно 20 фізичних адресних контактів.
Реальним режим був основним для ранніх процесорів архітектури x86, починаючи від Intel 8086.
Режим віртуального 8086
Режим віртуального 8086 (V86, VM86, іноді просто 'віртуальний режим') — режим адресації процесорів сімейства x86 сумісний з прабатьком сімейства — процесором Intel 8086. Вперше з'явився в процесорі 80386 з метою сумісності — для можливості створювати «віртуальні DOS-машини», віртуальні середовища для виконання програм, написаних для популярної на той час операційної системи MS-DOS. Є першою спробою корпорації Intel впровадити у своїх процесорних технологіях апаратну віртуалізацію. Ця технологія, що дозволила імітувати декілька процесорів 8086 за допомогою одної мікросхеми 386, була результатом експериментів із захищеним режимом 80286, який сам по собі не підходив для належного запуску кількох програм реального режиму одночасно.
Захищений режим
Захищений режим призначений для створення безпечної багатозадачності, посилення контролю операційної системи над прикладним програмним забезпеченням. та мінімізації впливу прикладних застосунків один на одного.
Початковий захищений режим, введений в процесорі 80286 був не дуже досконалим і тому не став тоді загальновживаним. Він розширював адресний простір процесора до 224 байт (16 мегабайтів), але не шляхом розширення значення зсуву для сегмента. Натомість 16-розрядні регістри сегментів містили індекс у таблиці дескрипторів сегментів, котра містила 24-розрядні базові адреси, до яких додавалося зміщення.
У Intel 80386 та пізніших версіях захищений режим в цілому зберіг механізм сегментації захищеного режиму 80286. Був доданий важливий механізм підкачування сторінок як другий рівень трансляції адрес між блоком сегментації та фізичною шиною, що значно розширило можливості віртуальної пам'яті. Відтепер, адреси зміщення були 32-розрядними (замість 16-розрядних), а база сегментів у кожному дескрипторі сегментів також ставала 32-розрядною (замість 24-розрядної). Блок підкачування сторінок може бути ввімкнений або вимкнений; якщо він вимкнений, то робота з пам'яттю буде такою ж самою, як і на 80286. Якщо його увімкнено, то адреси в сегменті стають не фізичними адресами, як це було на 80286, а віртуальними адресами. Тобто і початкова адреса сегмента, і зміщення, і остаточна 32-розрядна адреса, отримана шляхом додавання двох — є віртуальними (або логічними) адресами. Далі блок сегментації перевіряє ці 32-розрядні віртуальні адреси, і блок підкачування, нарешті, переводить ці віртуальні адреси у фізичні адреси. Фізичні адреси були 32-розрядними на 386, але згодом були збільшені на новіших процесорах, які підтримують технологію PAE.
64-розрядний режим
Цей розділ потребує доповнення. (лютий 2020) |
Див. також
Джерела
- Intel® 64 and IA-32 Architectures Software Developer Manuals. Intel. Процитовано 10 липня 2016.
- Yager, Tom (5 листопада 2004). Sending software to do hardware's job. . Процитовано 27 січня 2014.
- Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture. Intel. May 2019. Section 2.1.3 The Intel 386 Processor (1985).
- root (14 липня 2007). Guide: What does protected mode mean? (Guide). . Процитовано 14 липня 2007.
The purpose of protected mode is not to protect your program. The purpose is to protect everyone else (including the operating system) from your program.
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Segmenta ciya pa m yati shema logichnoyi adresaciyi pam yati komp yutera Linijna adresa konkretnogo elementu pam yati yakij v deyakih rezhimah roboti procesora bude zbigatisya z fizichnoyu adresoyu dilitsya na dvi chastini segment i zsuv Segmentom nazivayetsya umovno vidilena oblast adresnogo prostoru pevnogo rozmiru a zmishennyam adresa komirki pam yati shodo pochatku segmenta Bazoyu segmenta nazivayetsya adresa shodo vsogo obsyagu pam yati sho vkazuye na pochatok segmenta v adresnomu prostori V rezultati vihodit segmentna logichna adresa yaka vidpovidaye linijnomu adresu baza segmenta zmishennya i yaka vistavlyayetsya procesorom na shinu adresi Pro tehnologiyuTehnologiya segmentaciyi dozvolyaye podiliti adresnij prostir procesu na kilka segmentiv Dovilna adresa programi mistit identifikator segmenta segment ID i zsuv vid jogo pochatku Kozhen segment mozhe mati vlasni nalashtuvannya zahistu Segmenti zavantazhuyutsya v operativnu pam yat cilkom kozhnij z nih opisuyetsya za dopomogoyu deskriptora sho mistit fizichnu adresu za yakim zavantazhenij segment bazova adresa rozmir i informaciya pro zahist Aparatna chastina pereviryaye granici segmenta pri kozhnij operaciyi dostupu sho viklyuchaye fakti ushkodzhennya procesom susidnogo segmenta Zavantazhennya i vivantazhennya svoping mozhut buti provedeni na rivni okremih segmentiv a ne vsiyeyi programi Segmentaciya v inshih vipadkah vikoristovuyetsya razom z rozbittyam na storinki sho v rezultati daye gnuchkij gibridnij mehanizm keruvannya pam yattyu U takih sistemah segmenti ne obov yazkovo povinni roztashovuvatisya u pam yati neperervno Segmentaciya u arhitekturi x86Dokladnishe Realnij rezhim U realnomu rezhimi procesora ves adresnij prostir dilitsya na odnakovi segmenti rozmirom vid 16 bajt do 65536 bajtiv Pochatok kozhnogo nastupnogo segmenta tak zvana baza segmenta zmishena shodo bazi poperednogo na minimalnij rozmir segmenta tobto na 16 bajtiv t n paragraf Takim chinom segmenti mozhut chastkovo perekrivati odin odnogo Selektor 16 rozryadnij i zadaye nomer segmenta Z oglyadu na sho segmenti sliduyut odin za odnim z postijnim intervalom u 24 16 bajtiv duzhe legko z yasuvati linijnu adresu segmenta mnozhachi jogo na 16 16 rozryadni segmentni registri interpretuyutsya yak starshi znachushi 16 bitiv linijnoyi 20 rozryadnoyi adresi Dlya otrimannya fizichnoyi adresi do neyi dodayetsya znachennya zmishennya 20 rozryadnij adresnij prostir realnogo rezhimu obmezhuye pam yat 220 1048576 bajtami 1 megabajt Ce obmezhennya viplivalo bezposeredno z dizajnu procesora Intel 8086 a zgodom i tisno pov yazanogo 8088 yakij mav rivno 20 fizichnih adresnih kontaktiv Realnim rezhim buv osnovnim dlya rannih procesoriv arhitekturi x86 pochinayuchi vid Intel 8086 Rezhim virtualnogo 8086 Rezhim virtualnogo 8086 V86 VM86 inodi prosto virtualnij rezhim rezhim adresaciyi procesoriv simejstva x86 sumisnij z prabatkom simejstva procesorom Intel 8086 Vpershe z yavivsya v procesori 80386 z metoyu sumisnosti dlya mozhlivosti stvoryuvati virtualni DOS mashini virtualni seredovisha dlya vikonannya program napisanih dlya populyarnoyi na toj chas operacijnoyi sistemi MS DOS Ye pershoyu sproboyu korporaciyi Intel vprovaditi u svoyih procesornih tehnologiyah aparatnu virtualizaciyu Cya tehnologiya sho dozvolila imituvati dekilka procesoriv 8086 za dopomogoyu odnoyi mikroshemi 386 bula rezultatom eksperimentiv iz zahishenim rezhimom 80286 yakij sam po sobi ne pidhodiv dlya nalezhnogo zapusku kilkoh program realnogo rezhimu odnochasno Zahishenij rezhim Dokladnishe Zahishenij rezhim Zahishenij rezhim priznachenij dlya stvorennya bezpechnoyi bagatozadachnosti posilennya kontrolyu operacijnoyi sistemi nad prikladnim programnim zabezpechennyam ta minimizaciyi vplivu prikladnih zastosunkiv odin na odnogo Pochatkovij zahishenij rezhim vvedenij v procesori 80286 buv ne duzhe doskonalim i tomu ne stav todi zagalnovzhivanim Vin rozshiryuvav adresnij prostir procesora do 224 bajt 16 megabajtiv ale ne shlyahom rozshirennya znachennya zsuvu dlya segmenta Natomist 16 rozryadni registri segmentiv mistili indeks u tablici deskriptoriv segmentiv kotra mistila 24 rozryadni bazovi adresi do yakih dodavalosya zmishennya U Intel 80386 ta piznishih versiyah zahishenij rezhim v cilomu zberig mehanizm segmentaciyi zahishenogo rezhimu 80286 Buv dodanij vazhlivij mehanizm pidkachuvannya storinok yak drugij riven translyaciyi adres mizh blokom segmentaciyi ta fizichnoyu shinoyu sho znachno rozshirilo mozhlivosti virtualnoyi pam yati Vidteper adresi zmishennya buli 32 rozryadnimi zamist 16 rozryadnih a baza segmentiv u kozhnomu deskriptori segmentiv takozh stavala 32 rozryadnoyu zamist 24 rozryadnoyi Blok pidkachuvannya storinok mozhe buti vvimknenij abo vimknenij yaksho vin vimknenij to robota z pam yattyu bude takoyu zh samoyu yak i na 80286 Yaksho jogo uvimkneno to adresi v segmenti stayut ne fizichnimi adresami yak ce bulo na 80286 a virtualnimi adresami Tobto i pochatkova adresa segmenta i zmishennya i ostatochna 32 rozryadna adresa otrimana shlyahom dodavannya dvoh ye virtualnimi abo logichnimi adresami Dali blok segmentaciyi pereviryaye ci 32 rozryadni virtualni adresi i blok pidkachuvannya nareshti perevodit ci virtualni adresi u fizichni adresi Fizichni adresi buli 32 rozryadnimi na 386 ale zgodom buli zbilsheni na novishih procesorah yaki pidtrimuyut tehnologiyu PAE 64 rozryadnij rezhim Cej rozdil potrebuye dopovnennya lyutij 2020 Div takozhPomilka segmentaciyi Virtualna pam yatDzherelaIntel 64 and IA 32 Architectures Software Developer Manuals Intel Procitovano 10 lipnya 2016 Yager Tom 5 listopada 2004 Sending software to do hardware s job Procitovano 27 sichnya 2014 Intel 64 and IA 32 Architectures Software Developer s Manual Volume 1 Basic Architecture Intel May 2019 Section 2 1 3 The Intel 386 Processor 1985 root 14 lipnya 2007 Guide What does protected mode mean Guide Procitovano 14 lipnya 2007 The purpose of protected mode is not to protect your program The purpose is to protect everyone else including the operating system from your program Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi