Co jsou segmentové registry? Proč je paměť segmentována? Jak se provádí segmentace paměti?


Nejlepší odpověď

Segment je souvislá část paměti. V schématu segmentované paměti je veškerá paměť procesu v segmentech. První systémy virtuální paměti (Burroughs B5000, Mulitcs) byly založeny na segmentech proměnné velikosti, které jsou kopírovány do a z RAM.

Program odkazuje na každý segment jako na offset segmentového registru. Skutečný obsah registru segmentů je řízen systémem. Systém ví, kdy se na segment odkazuje, když se používá registr segmentu, a používá to ke správě virtuální paměti.

Toto je na rozdíl od paged virtuální paměť, dnes používaná všude, , kde jsou množství virtuální paměti pevné velikosti paměti. Paging je složitější a vyžaduje větší hardwarovou podporu.

Multitechnologie MIT měla obrovský dopad na moderní výpočetní techniku ​​(včetně mnoha nápadů začleněných do Unixu a Linuxu). Fred Pollack se k projektu Intel 286 připojil čerstvě z MIT. Viděl 8086 „segmentových“ registrů (ve skutečnosti základních registrů) a úspěšně loboval za to, aby vytvořil tyto skutečné segmentové registry jako v Multics. (Fred se později stal členem Intelu.)

Segmenty 646 kB 286 utrpěly stejný problém jako segmenty Multics: byly příliš malé. Až příliš často je pro přístup k paměťovým strukturám zapotřebí více segmentů, což znamená opětovné načtení segmentových registrů a často zapojení OS. Z důvodu dopadu na výkon se segmentace zřídka používala a segmentové registry se používaly jako základní registry v režimu kompatibility 8086.

32bitová Intel 386 přidala stránkovanou virtuální paměť (YEA!) Pod schéma segmentu (meh ). 64bitový model architektury Intel zcela odstraňuje segmentové registry, i když stále má režimy kompatibility až do 8086.

Odpověď

1. co jsou segmentové registry?

-> Jak všichni víme, registr je přítomen v procesoru. vytváříme segmenty v paměti (segmentace). Chcete-li získat výchozí umístění těchto segmentů, uložíme adresu těchto segmentů do registru segmentů. v registrech krátkých segmentů ukládejte počáteční umístění segmentů přítomných v paměti, tj. adresu segmentu.

3. jak se segmentace paměti provádí?

-> segmentace paměti se provádí pomocí 16 bitových adres. nejdříve zadáme adresu segmentu (začátek segmentu), po zadání adresy segmentu zadáme offsetovou adresu () pro přístup k místům v tomto segmentu.

adresu segmentu zadáme pouze jednou, poté zadáme adresu offsetu.

dáme adresu segmentu offsetová adresa obou 16 bitových adres jako programátor. po zadání této adresy je povinností procesoru převést obě tyto adresy na fyzickou adresu (skutečnou adresu).

fyzická adresa = adresa segmentu * 10 + adresa offsetu

= 1000 * 10 + 2345

= 12345H

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *