• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Rejestr segmentowy

    Przeczytaj także...
    Pamięć – zdolność do rejestrowania i ponownego przywoływania wrażeń zmysłowych, skojarzeń, informacji, występująca u ludzi, niektórych zwierząt i w komputerach. W każdym z tych przypadków proces zapamiętywania ma całkowicie inne podłoże fizyczne oraz podlega badaniom naukowym w oparciu o różne zestawy pojęć.Rejestry procesora to komórki pamięci o niewielkich rozmiarach (najczęściej 4/8/16/32/64/128 bitów) umieszczone wewnątrz procesora i służące do przechowywania tymczasowych wyników obliczeń, adresów lokacji w pamięci operacyjnej itd. Większość procesorów przeprowadza działania wyłącznie korzystając z wewnętrznych rejestrów, kopiując do nich dane z pamięci i po zakończeniu obliczeń odsyłając wynik do pamięci.
    Stos (ang. Stack) – liniowa struktura danych, w której dane dokładane są na wierzch stosu i z wierzchołka stosu są pobierane (bufor typu LIFO, Last In, First Out; ostatni na wejściu, pierwszy na wyjściu). Ideę stosu danych można zilustrować jako stos położonych jedna na drugiej książek – nowy egzemplarz kładzie się na wierzch stosu i z wierzchu stosu zdejmuje się kolejne egzemplarze. Elementy stosu poniżej wierzchołka można wyłącznie obejrzeć, aby je ściągnąć, trzeba najpierw po kolei ściągnąć to, co jest nad nimi.

    Rejestr segmentowyrejestr procesora stworzony do przechowywania adresu początkowego obszaru pamięci, w którym umieszczone są rozkazy, dane albo stos programu. W procesorach o architekturze x86 występuje 6 rejestrów segmentowych:

  • CS – 16-bitowy rejestr segmentu kodu programu
  • DS – 16-bitowy rejestr segmentu danych
  • SS – 16-bitowy rejestr segmentu stosu
  • ES, FS, GS – 16-bitowe rejestry pomocnicze dla danych
  • Rejestry segmentowe są realizacją idei segmentacji pamięci i lokalności danych.

    | edytuj kod]

    W trybie rzeczywistym adresy mają 20 bitów, natomiast rejestry mają 16 bitów. Zatem by uzyskać fizyczny adres komórki pamięci, zawartość rejestru segmentowego mnoży się razy 16 (brakujące 4 bity do 20 bitów adresu rzeczywistego wypełnia się zerami) i dodaje przesunięcie (OFFSET), czyli odległość od początku segmentu.

    Stronicowanie jest jednym ze sposobów rozwiązania problemu zewnętrznej fragmentacji polegającym na dopuszczeniu nieciągłości rozmieszczenia logicznej przestrzeni adresowej procesu w pamięci fizycznej. Zostało użyte przez polskiego inżyniera Jacka Karpińskiego w architekturze komputera K-202.Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora.
    zawartość_rejestru_segmentowego * 16 + offset = adres_fizyczny
    

    | edytuj kod]

    W trybie chronionym rejestry segmentowe zawierają selektory, które wskazują na pole w tablicy deskryptorów. Z wskazanego elementu tablicy deskryptorów procesor pobiera 32-bitowy adres bazowy (w przypadku 80286 deskryptor zawiera jedynie 24-bitowy adres bazowy), który sumowany jest z przesunięciem. Tak powstaje adres liniowy, który przy włączonym mechanizmie stronicowania zostaje poddany transformacji na adres fizyczny.

    Tablica deskryptorów - w trybie chronionym procesora x86 struktura ulokowana w dedykowanym segmencie, zawierająca deskryptory wszystkich segmentów znajdujących się w pamięci operacyjnej. W środowiskach wielozadaniowych wyróżniamy jedną wspólną tablicę globalną (GDT - ang. Global Descriptor Table), tablicę przerwań (IDT - ang. Interrupt Descriptor Table), a także tablice lokalne (LDT - ang. Local Descriptor Table) przypisane do każdego procesu w systemie (nowoczesne systemy operacyjne nie korzystają już z segmentacji). Typowa tablica deskryptorów może pomieścić 2 8-bajtowych wpisów, gdyż jej rozmiar to 64 kB.Adres fizyczny (ang. physical address) - adres słowa pamięci fizycznej, pojawiający się na magistrali adresowej procesora w momencie odwoływania się do pamięci operacyjnej lub przestrzeni wejścia-wyjścia.

    Zobacz też[ | edytuj kod]

  • tryb rzeczywisty
  • tryb chroniony
  • tablica deskryptorów
  • selektor




  • Warto wiedzieć że... beta

    Tryb chroniony (ang. protected mode) – tryb pracy mikroprocesorów serii x86 wprowadzony w mikroprocesorze Intel 80286. Tryb chroniony umożliwia adresowanie pamięci przekraczającej wielkość 1 MB (tryb rzeczywisty), wprowadza wiele nowych udogodnień wspierających wielozadaniowość, takich jak: sprzętowa ochrona pamięci (układ MMU), wsparcie w przełączaniu kontekstu procesora i wiele innych.
    Tryb rzeczywisty – tryb pracy mikroprocesorów z rodziny procesorów x86, w którym procesor pracuje tak jak procesor Intel 8086.
    Bit (w ang. kawałek, skrót od binary digit, czyli cyfra dwójkowa) – najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych stanów przyjął układ. Jednostka logiczna.
    Selektor – w trybie chronionym procesorów zgodnych z modelem x86 jest to część adresu logicznego wskazująca tablicę deskryptorów i deskryptor w tej tablicy.
    x86 – rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem 8086, który z kolei wywodził się z 8-bitowego układu 8085. Nazwa architektury wywodzi się od nazw pierwszych modeli z tej rodziny, których numery kończyły się liczbą 86.

    Reklama

    Czas generowania strony: 0.009 sek.