UTK - zstio.wri.pl
Transkrypt
UTK - zstio.wri.pl
UTK UTK Zadaniem centralnej jednostki przetwarzającej – CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz układy pomocnicze, takie jak zegar czy sterownik magistral. Mikroprocesor jest układem przetwarzającym informację i kierującym pracą reszty układów. Zegar systemowy wytwarza przebiegi czasowe niezbędne do pracy mikroprocesora i systemu. Sterownik magistral jest układem, który pośredniczy w sterowaniu magistralami, wytwarzając na podstawie informacji otrzymanych z mikroprocesora (sygnałów statusowych i sterujących) sygnały sterujące pracą układów pamięci i układów wejścia/wyjścia. Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor. UTK Rejestry procesora dostępne programowo UTK Rejestry procesora dostępne programowo Akumulator Akumulatorem nazywamy rejestr, który zawiera jeden z operandów (argumentów) wykonywanej operacji i do którego jest ładowany wynik wykonywanej operacji. Definicja akumulatora pojawiła się po raz pierwszy przy omawianiu jednostki arytmetyczno-logicznej. W starszych procesorach definicja ta obowiązywała ściśle, w nowszych notuje się liczne odstępstwa mające na celu przyspieszenie realizacji programu. Przykładowo w procesorach rodziny 80x86 wynik dodawania może być umieszczany także w rejestrze innym niż akumulator. UTK Rejestry procesora dostępne programowo Rejestr flagowy Rejestrem flagowym nazywamy rejestr zawierający dodatkowe cechy wyniku wykonywanej operacji potrzebne do podjęcia decyzji o dalszym sposobie przetwarzania informacji. Cechami tymi mogą być przykładowo znak wyniku, wystąpienie przekroczenia zakresu czy parzystość (na przykład parzysta bądź nieparzysta liczba jedynek w wyniku). Wystąpienie określonego przypadku, na przykład wyniku dodatniego bądź ujemnego, sygnalizowane jest ustawieniem lub wyzerowaniem określonego bitu w rejestrze flagowym. Lista najczęściej używanych flag: CY lub CF (ang. curry flag) – flaga przeniesienia lub pożyczki. Ustawiana (czyli przyjmuje wartość 1), gdy rezultat operacji przekracza zakres długości słowa, w którym zapisywany jest wynik. Istotna dla operacji arytmetycznych na liczbach bez znaku. Z lub ZF (ang. zero flag) – flaga sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest 0. S lub SF (ang. sign flag) – flaga znaku. Ustawiana, gdy najstarszy bit wyniku wykonywanej operacji jest równy 1. Zasadniczo flaga ta ma znaczenie dla operacji arytmetycznych interpretowanych jako liczby ze znakiem (w kodzie U2). P lub PF (ang. parity flag) – flaga parzystości. Sygnalizuje parzystą lub nieparzystą liczbę jedynek w wyniku (np. w jego najmłodszym bajcie). Dokładna reguła ustawiania tej flagi zależy od typu procesora. OV lub OF (ang. overflow flag) – flaga przepełnienia. Sygnalizuje przekroczenie zakresu dla operacji arytmetycznych, gdy są interpretowane jako operacje na liczbach ze znakiem zapisanych w kodzie U2. AC lub AF (ang. auxiliary carry flag) – flaga przeniesienia pomocniczego lub połówkowego. Ustawiana, gdy występuje przeniesienie lub pożyczka z najstarszego bitu pierwszej tetrady wyniku. Istotna przy interpretowaniu wyniku operacji arytmetycznych w kodzie prostym BCD. UTK Rejestry procesora dostępne programowo Licznik rozkazów Licznik rozkazów jest jednym z istotniejszych rejestrów umożliwiających zrozumienie działania mikroprocesora i systemu mikroprocesorowego. W nowszych mikroprocesorach nosi on nazwę IP – wskaźnika instrukcji (ang. Instruction Pointer), co jest chyba trafniejsze. Definicja tego rejestru jest następująca: Licznikiem rozkazów (wskaźnikiem instrukcji) nazywamy rejestr mikroprocesora zawierający adres komórki pamięci, w której przechowywany jest kod rozkazu przeznaczonego do wykonania jako następny. Z definicji tej wynika, że po wczytaniu kolejnego kodu rozkazu zawartość licznika rozkazów powinna zostać zmieniona tak, aby wskazywał kolejny rozkaz przeznaczony do wczytania do mikroprocesora. Ponieważ w przeważającej części program jest wykonywany kolejno, instrukcja po instrukcji (chociaż są od tego odstępstwa – omawiamy je w podrozdziale poświęconym liście rozkazów), to pobranie kodu rozkazu z kolejnej komórki pamięci powoduje zwiększenie zawartości licznika rozkazów o 1. W pewnych przypadkach zawartość licznika rozkazów jest zmieniana w wyniku wykonania określonego rozkazu (dlatego jest rejestrem dostępnym programowo). O tego typu rozkazach będzie mowa przy omawianiu listy rozkazów. UTK Rejestry procesora dostępne programowo Wskaźnik stosu Przed podaniem definicji wskaźnika stosu musimy najpierw wyjaśnić pojęcie stosu. Stosem nazywamy wyróżniony obszar pamięci używany według następujących reguł: 1.Informacje zapisywane są na stos do kolejnych komórek (pod kolejnymi adresami), przy czym żadnego adresu nie wolno pominąć. 2. Odczytujemy informacje w kolejności odwrotnej do ich zapisu. 3. Informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do pierwszej wolnej, przy czym komórkę odczytaną traktujemy jako wolną. Stos jest więc rodzajem pamięci (czy też buforem) oznaczanej przez LIFO (ang. last In first out – ostatni wchodzi, pierwszy wychodzi). Pamięć taką można porównać do stosu talerzy (stąd zresztą nazwa). Talerze dokładamy do stosu, kładąc je na wierzchu, a zabieramy, zdejmując je także z wierzchu, gdyż w przypadku zmiany kolejności grozi nam katastrofa, co odnosi się także do stosu komputerowego. W przypadku pojęcia stosu w pamięci, zgodnie z regułą 3, konieczna jest znajomość adresu ostatniej zapełnionej komórki stosu, przy czym komórkę odczytaną uważamy za pustą (zdjęliśmy talerz). Komórka ta zwana jest wierzchołkiem stosu. Wskaźnikiem stosu nazywamy rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołka stosu).