Rejestr procesora

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Rejestry procesora (ang. processor registers) – komórki pamięci o niewielkich rozmiarach (najczęściej 4/8/16/32/64/128/256 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 (obliczenia) wyłącznie korzystając z wewnętrznych rejestrów, użycie do obliczeń danych zawartych w pamięci wymaga użycia rozkazu kopiowania ich do rejestrów. Podobnie wyniki obliczeń są umieszczane w rejestrach, w niektórych procesorach, tylko w jednym rejestrze zwanym akumulatorem, w innych istnieje możliwość umieszczenia wyniku w jednym z wielu rejestrów, przeniesienie wyniku do pamięci wymaga użycia dodatkowego rozkazu procesora.

Rejestr stanu lub rejestr flag (niepoprawnie: rejestr statusu) – rejestr procesora opisujący i kontrolujący jego stan. Zawartość tego rejestru może zależeć od ostatnio wykonanej operacji (zmiana pośrednia), bądź trybu pracy procesora, który można ustawiać (zmiana bezpośrednia). Budowa rejestru stanu zależy od modelu programowego danego procesora, w szczególności może on mieć różne rozmiary (zwykle jest to ściśle związane z rodzajem architektury), jednak zwykle ma długość będąca wielokrotnością bajtu, czyli najczęściej oktetu: 8, 16, 32 lub 64 bitów. Pojedynczy bit rejestru stanu nazywa się flagą bądź znacznikiem.Stała - identyfikator, któremu przypisana wartość (liczbowa, tekstowa, itp.) nie może być zwykle zmieniana podczas wykonywania programu (chyba, że stosuje on samomodyfikujący się kod). Choć wartość ta jest określana tylko raz, można się do niej odwoływać w programie wielokrotnie (w zależności od jej widoczności). Stosowanie stałej zamiast wielokrotnie tych samych wartości, wyrażeń stałych, literałów itp., nie tylko ułatwia konserwację kodu, ale i dostarcza dla niej nazwę opisową, zwiększając czytelność kodu.

Rejestry procesora stanowią najwyższy szczebel w hierarchii pamięci, będąc najszybszym rodzajem pamięci komputera. Realizowane zazwyczaj za pomocą przerzutników dwustanowych, z reguły jako tablica rejestrów (blok rejestrów, z ang. register file).

Liczba rejestrów i możliwości wykonywania na nich operacji zależy od przyjętej koncepcji budowy procesora określanej jako architektura procesora.

Podział ze względu na zastosowanie[ | edytuj kod]

W architekturze procesora CISC, ze względu na zastosowanie, można wyróżnić rodzaje rejestrów:

Podprogram (inaczej funkcja lub procedura) - termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu.Definicja intuicyjna: SSE to dodatkowe rozkazy rozpoznawane przez mikroprocesory firmy Intel oraz kompatybilnych, które pozwalają znacznie szybciej wykonywać obliczenia matematyczne, szczególnie te wykorzystywane w dziedzinie multimediów, co przekłada się na zwiększenie efektywności działania m.in. gier komputerowych, programów graficznych, muzycznych, kodowania filmów i muzyki.
  • akumulator – rejestr, w którym jest jeden z argumentów działania i w którym umieszczany jest wynik działań,
  • rejestry danych – do przechowywania danych całkowitoliczbowych, np. argumentów i wyników obliczeń,
  • rejestry adresowe – do przechowywania adresów i uzyskiwania dostępu do pamięci, wśród nich wyróżnić można rejestry segmentowe,
  • rejestry ogólnego zastosowania (ang. general purpose), będące połączeniem dwóch powyższych typów, czyli mogące przechowywać zarówno dane, jak i adresy,
  • rejestry zmiennoprzecinkowe – do przechowywania i wykonywania obliczeń na liczbach zmiennoprzecinkowych, z reguły znajdujące się w oddzielnym bloku funkcjonalnym procesora, zwanym koprocesorem (FPU),
  • rejestry stałych – przechowujące stałe, jedynie do odczytu,
  • rejestry wektorowe – przechowujące dane do jednoczesnego przetwarzania wielu danych przez instrukcje typu SIMD,
  • rejestry specjalne, określające stan wykonania, wśród nich wymienić można rejestr wskaźnika instrukcji, wskaźnik stosu, rejestr flag procesora,
  • rejestry instrukcji – do przechowywania obecnie przetwarzanej instrukcji
  • Rejestry procesorów x86[ | edytuj kod]

    32-bitowe rejestry ogólnego przeznaczenia to:

    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.MMX (MultiMedia eXtensions lub Matrix Math eXtensions) to zestaw 57 instrukcji SIMD dla procesorów Pentium i zgodnych. Rozkazy MMX mogą realizować działania logiczne i arytmetyczne na liczbach całkowitych. Pierwotnie wprowadzone w 1996 przez Intela dla procesorów Pentium MMX, aktualnie dostępne również na procesory innych producentów – wraz z rozwojem procesorów i dodawaniem nowych rozszerzeń (np. SSE) zbiór rozkazów MMX powiększał się. Instrukcje te są wykorzystywane przez procesory od Intel Pentium MMX i AMD K6 wzwyż.
  • EAX – Accumulator (akumulator – jego pamięć wykorzystuje arytmometr; używa się go do przechowywania wyników wielu operacji)
  • EBX – Base Register (rejestr bazowy – służy do adresowania)
  • ECX – Counter Register (rejestr licznikowy – służy jako licznik w pętli)
  • EDX – Data Register (rejestr danych – umożliwia przekaz/odbiór danych z portów wejścia/wyjścia)
  • ESP – Stack Pointer (przechowuje wskaźnik wierzchołka stosu)
  • EBP – Base Pointer (rejestr bazowy – służy do adresowania)
  • ESI – Source Index (rejestr źródłowy – trzyma źródło łańcucha danych)
  • EDI – Destination Index (rejestr przeznaczenia – przetrzymuje informacje o miejscu docelowym łańcucha danych)
  • Możliwy jest też dostęp do ich 16-bitowych mniej znaczących części – AX, BX, CX, DX, SP, BP, SI, DI, a w przypadku czterech pierwszych także do młodszego (Low) i starszego bajta (High) – odpowiednio AL, AH, BL, BH, CL, CH, DL, DH.

    Wskaźnik stosu w informatyce służy do wskazywania szczytu stosu. Zwykle określa się tak jeden z rejestrów mikroprocesora lub mikrokontrolera, rzadziej zmienną w pamięci.Koprocesor, jednostka zmiennoprzecinkowa (FPU, ang. Floating Point Unit) to układ scalony wspomagający procesor w obliczeniach zmiennoprzecinkowych. W większości współczesnych konstrukcji, koprocesor arytmetyczny, a także jednostki obsługujące bardziej skomplikowane obliczenia (np. instrukcje wektorowe) są zintegrowane z procesorem w jednym układzie.

    W procesorach 64-bitowych do rejestrów o długości 64 bitów odwołuje się poprzez nazwę z przedrostkiem R zamiast E – np. RAX, RBX.

    Są też dostępne rejestry segmentów, określające położenie segmentów pamięci w przestrzeni adresowej (gdy procesor pracuje w trybie rzeczywistym lub wirtualnym) lub deskryptory segmentów (w trybie chronionym):

  • CS – Code Segment (segment kodu);
  • DS – Data Segment (segment danych);
  • ES – Extra Segment (dodatkowy segment danych);
  • SS – Stack Segment (segment stosu);
  • FS – dodatkowy rejestr segmentu;
  • GS – dodatkowy rejestr segmentu.
  • Ponadto istnieją:

    Pamięć operacyjna (ang. internal memory, primary storage) – pamięć adresowana i dostępna bezpośrednio przez procesor, a nie przez urządzenia wejścia-wyjścia procesora. W pamięci tej mogą być umieszczane rozkazy (kody operacji) procesora (program) dostępne bezpośrednio przez procesor i stąd nazwa pamięć operacyjna. W Polsce często pamięć ta jest utożsamiana z pamięcią RAM, choć jest to zawężenie pojęcia, pamięcią operacyjną jest też pamięć nieulotna (ROM, EPROM i inne jej odmiany) dostępna bezpośrednio przez procesor, a dawniej używano pamięci o dostępie cyklicznym.Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu cyfrowego, przeznaczonego do przechowywania i ewentualnego przetwarzania informacji. Przerzutnik współtworzy najniższe piętro struktury układu i zdolny jest do zapamiętania jednego bitu informacji. Grupa czterech lub ośmiu połączonych ze sobą przerzutników tworzy następne, wyższe piętro - tzw. rejestr, zdolny już do pamiętania jednego bajta informacji.
  • EFLAGSrejestr flag procesora, składający się z pojedynczych bitów określających stan procesora;
  • EIP – wskaźnik adresowy na aktualnie wykonywaną instrukcję. Za jego pomocą procesor realizuje m.in. skoki, pętle, przejścia do podprogramów;
  • rejestry koprocesora arytmetycznego:
  • osiem rejestrów stosu koprocesora, oznaczanych w zależności od kompilatora jako ST0... ST7, 0... 7 lub ST(0)... ST(7);
  • rejestr stanu koprocesora;
  • rejestr stanu stosu koprocesora;
  • rejestr sterujący koprocesora;
  • rejestry kontrolne procesora CRn (n – numer rejestru);
  • rejestry debugera DRn (n – numer rejestru);
  • rejestry MMX (rozszerzenie) – 8 rejestrów 64-bitowych nazywanych mm0 ... mm7 (zamapowane na rejestry FPU);
  • rejestry SSE (rozszerzenie):
  • 8 rejestrów 128-bitowych nazywanych xmm0 ... xmm7; w trybie 64-bitowym dostępne jest 8 kolejnych rejestrów 128-bitowych xmm8 ... xmm15;
  • rejestr kontrolno-sterujący mxcsr.
  • Deskryptor segmentu – struktura występująca w globalnej oraz lokalnej tablicy deskryptorów, opisująca położenie i właściwości segmentu pamięci.Library of Congress Control Number (LCCN) – numer nadawany elementom skatalogowanym przez Bibliotekę Kongresu wykorzystywany przez amerykańskie biblioteki do wyszukiwania rekordów bibliograficznych w bazach danych i zamawiania kart katalogowych w Bibliotece Kongresu lub u innych komercyjnych dostawców.


    Podstrony: 1 [2] [3]




    Warto wiedzieć że... beta

    Pamięć komputerowa to różnego rodzaju urządzenia i bloki funkcjonalne komputera, służące do przechowywania danych i programów (systemu operacyjnego oraz aplikacji). Potocznie przez "pamięć komputerową" rozumie się samą pamięć operacyjną.
    Licznik programu (skr. PC), inaczej wskaźnik instrukcji (skr. IP) lub licznik rozkazów, jest rejestrem procesora przechowującym informację o tym, w którym miejscu sekwencji instrukcji znajduje się aktualnie procesor. W zależności od modelu procesora w rejestrze tym przechowywany jest adres aktualnie wykonywanej lub częściej następnej instrukcji. W tym drugim wypadku licznik programu jest zwiększany zaraz po odebraniu instrukcji i przeniesieniu jej do rejestru instrukcji. Poprzez modyfikację tego rejestru implementuje się skoki, w tym skoki warunkowe, pętle i podprogramy.
    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.
    SIMD (ang. Single Instruction, Multiple Data) – jeden z podstawowych rodzajów architektur komputerowych według taksonomii Flynna, obejmujący systemy, w których przetwarzanych jest wiele strumieni danych w oparciu o pojedynczy strumień rozkazów. Architektura SIMD jest charakterystyczna dla komputerów wektorowych.
    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.
    Rejestr segmentowy – rejestr 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:
    W programowaniu pętla to jedna z trzech podstawowych konstrukcji programowania strukturalnego (obok instrukcji warunkowej i instrukcji wyboru). Umożliwia cykliczne wykonywanie ciągu instrukcji określoną liczbę razy, do momentu zajścia pewnych warunków, dla każdego elementu kolekcji lub w nieskończoność.

    Reklama