Podstawy architektury komputera, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr II


Podstawy architektury komputera

  1. Układ mikroprocesorowy i specjalizowany układ cyfrowy

Układy cyfrowe służą do przetwarzania informacji. Przetwarzanie polega na dostarczeniu do układu danych, które są poddawane działaniom dzięki którym otrzymujemy wyniki. Wynikami mogą być przykładowo sygnały sterujące pracą urządzeń, obrazy, teksty itp.

Przetwarzanie może się odbywać na dwa sposoby:

0x08 graphic
0x08 graphic
0x08 graphic
dane wyniki

dane wynik

program

  1. Schemat blokowy układu mikroprocesorowego

Zadaniem CPU oprócz przetwarzania informacji jest sterowanie praca pozostałych układów systemu. W skład CPU wchodzą : mikroprocesor i zegar oraz sterownik magistral. Mikroprocesor jest układem przetwarzającym informację i sterują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 posredniczy w sterowaniu magistralami wytwarzając sygnały na podstawie informacji otrzymanych z mikroprocesora.

Każde działanie wykonywane przez system mikroprocesorowy czyli np. komputer jest wynikiem realizacji okreslonego programu

Program musi być przechowywany w miejscu z którego mikroprocesor będzie mógł szybko odczytywac kolejne instrukcje przeznaczone do wykonania. Nie nadają się więc do tego celu pamięci masowe a jedynie pamięci półprzewodnikowe.

W bloku pamięci systemu stosowane są zarówno pamięci RAM jak i ROM. W pamięci RAM (pamięć operacyjna) przechowywane są kody instrukcji tworzących program, dane oraz wyniki działania programu.

Ponieważ RAM jest pamięcią ulotną i po włączeniu nie zawiera żadnych użytecznych informacji, aby więc system rozpoczął pracę musi istnieć program inicjujący umieszczony w pamięci nieulotnej. Takim programem jest BIOS (basic input output system) umieszcony w pamięci ROM.

Ostatnim niezbędnym blokiem systemu są tzw.układy wejścia-wyjścia. Posredniczą one w wymianie informacji pomiędzy mikroprocesorem i pamięcią a urzadzeniami zewnętzrnymi np. dysk twardy, napędy, drukarka zwanymi urzadzeniami peryferyjnymi. Potrzeba posredniczenia może wynikać np. z konieczności translacji sygnałów czy dostosowania szybkości pracy urządzenia do pracy systemu.

Wszystkie omówione bloki komunikują się z sobą używając wspólnych dróg zwanych magistralami. W systemie występują trzy rodzaje magistral:

magistrala danych

magistrala adresowa

magistrala sterująca

Magistralą danych przesyłane są dane do systemy , wyniki wykonanych działań oraz kody instrukcji(rozkazy). Jest ona magistralą dwukierunkową tzn. informacjie mogą wpływać do syatemu(np. dane, rozkazy) lub wypływać (np. wynik)

Magistralą adresową przesyłane są adresy komórek układu pamięci lub układów wejścia-wyjścia.

Magistrala sterująca jest zestawem linii sterujących pracą układów współpracujących z procesorem lub sygnalizacji określonych stanów(np. przepełnienia).

Zasada działania mikroprocesora

1. Schemat blokowy

Podział układów mikroprocesora na jednostkę wykonawczą i jednostkę sterującą wynika logicznie z zadań jakie pełni mikroprocesor.

Zadaniem jednostki wykonawczej EU (execution unit) jest przetwarzanie informacji czyli wykonywanie operacji arytmetycznych i logicznych. Rodzaj wykonywanych operacji zależy od wewnętrznych sygnałów sterujących wytwarzanych przez jednostkę sterującą CU.

W skład jednostki wykonawczej wchodzi jednostka arytmetyczno-logiczna ALU oraz zestaw współpracujących z nią rejestrów.

Informacją wejściową części wykonawczej są dane zaś wyjściową są wyniki.

W skład jednostki sterującej wchodza rejestr rozkazów IR, dekoder rozkazów i układ sterowania. W rejestrze rozkazów przechowywany jest kod aktualnie wykonywanego rozkazu. Kody rozkazu pobierane są do rejestru rozkazów z pamięci. Ciąg rozkazów tworzy program wykonywany przez system.

Po pobraniu z pamięci kod rozkazu jest dekodowany w dekoderze rozkazów jest więc okreslane jakiego rodzaju kod znajduje się w dekoderze rozkazów. Na tej podstawie układ sterowania wytwarza wewnetrzne lub/i zewnętrzne sygnały sterujące realizujące dany rozkaz.

  1. Rejestry procesora dostępne programowo

Zgodnie ze schematem blokowym zarówno jednostka arytmetyczno logiczna jak i układ sterowania współpracują z okreslonym zestawem rejestrów. Zawartość części rejstrów może być zmieniana w wyniku wykonania przez procesor odpowiedniej instrukcji. Rejestry te nazywane są rejestrami dostępnymi programowo. Pozostałe rejestry są niedostępne dla użytkownika i ich zestaw nie jest zwykle znany

A

F

B

C

D

E

H

L

PC

SP

A- akumlator

B, C, D, E, H, L - rejestry robocze

SP- wskaźnik stosu

F - rejestr znaczników (flagowy)
PC - licznik rozkazów

Akumlator - rejestr który zawiera jeden z argumentów wykonywanej operacji (operand) , do

tego rejestru ładowany jest również wynik

Rejestr flagowy - rejestr zawierający dodatkowe cechy wyniku operacji np. znak wyniku,

przekroczenie zakresu .Wystąpienie określonej cechy sygnalizowane jest

ustawieniem lub wyzerowaniem określonego bitu. Ustawiane bity nazywane są znacznikami lub flagami. Podstawowe flagi to:

CY- przekroczenie zakresu długości słowa

ZF- ostatnim wynikiem było zero

S - ostatnim wynikiem była jedynka

OV-przekroczenie zakresu dla operacji arytmetycznej

Licznik rozkazów - jest to jeden z istotniejszych rejestrów, oznaczany również jako

IP(instruction pointer - wskaźnik instrukcji). Zawiera on adres komórki pamięci w której przechowywany jest kod rozkazu przeznaczonego do wykonania jako następny. Zawartość tego licznika musi być więc zmieniana po wczytaniu rozkazu tak aby przy następnym wywołaniu wskazał kolejny rozkaz. Jeśli rozkazy wykonywane są kolejno to stan tego licznika będzie wzrastał za każdym razem o jeden - pobierany będzie kod z komórki o numerze większym o jeden.

Wskaźnik stosu - to rejestr zawierający adres ostatniej zapełnionej komórki stosu.

Sam stos jest rodzajem pamięci oznaczonej LIFO (last in first out -ostatni wchodzi pierwszy wychodzi). Odczyt ze stosu odbywa się od ostatniego wprowadzonego adresu(tak jak stos talerzy).

Wierzchołek stosu to adres ostatniej zapełnionej komórki stosu

Stos można budować w kierunku rosnących adresów lub w kierunku malejących adresów. Przy założeniu narastania stosu w kierunku adresów rosnących każdy zapis na stos zwiększa zawartość wskaźnika stosu a każdy odczyt zmniejsza jego zawartość. Dzięki temu wskaźnik stosu wskazuje zawsze na ostatnią zapełnioną komórkę stosu.

Rejestry robocze - mają ogólne przeznaczenie tzn. mogą przechowywać argumenty

wykonywanych operacji, wyniki czy też adresy, mogą też być np. licznikami pętli. Ich zastosowanie zależy od projektanta mikroprocesora

  1. Cykl rozkazowy

Realizując program system mikroprocesorowy wykonuje pewne powtarzające się czynności polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i wczytania ich do układu sterowania mikroprocesora a następnie realizacji rozkazu, którego kod został pobrany. W cyklu można wyróżnić dwie fazy: fazę pobrania i fazę wykonania.

Faza pobrania polega na pobraniu kodu rozkazu z komórki pamięci o adresie przechowywanym w liczniku rozkazów a następnie na umieszczeniu tego kodu w rejestrze rozkazów IR znajdującym się w układzie sterowania mikroprocesora. Kod ten jest przesyłany magistralą danych. Następnie zawartość licznika rozkazów jest modyfikowana tak aby wskazywał on na kolejny kod rozkazu przeznaczony do pobrania. Po zakończeniu fazy pobrania następuje faza wykonania.

Faza wykonania polega na zdekodowaniu kodu rozkazu znajdującego się w rejestrze IR czyli stwierdzeniu jaki to rozkaz. Po zdekodowaniu kodu rozkazu układ sterowania wytwarza wewnętrzne i/lub zewnętrzne sygnały sterujące realizujący dany rozkaz

Etapy realizacji fazy pobrania i fazy wykonania:

Faza pobrania:

Faza wykonania

μ P - mikroprocesor

MEM

MEM- pamięć

AB - adres

DB - kod rozkazu

(magistrala danych)

W przypadku rozkazów zajmujących kilka komórek pamięci etapy 1- 3 musza być kilkakrotnie powtórzone zanim system przejdzie do wykonania rozkazu.

Realizacja wszystkich wymienionych etapów wykonania rozkazu tworzy określony cykl zwany cyklem von Neumana.

W cyklu rozkazowym następują po sobie na przemian faza pobrania i faza wykonania. W celu przyspieszenia pracy systemu stosuje się modyfikację tego cyklu zwaną prefetchingiem

czyli wstępnym pobraniem instrukcji. Polega ona na równoległym wykonywaniu fazy pobrania następnego rozkazu jeszcze w trakcie wykonania rozkazu poprzedniego. Rozwinięciem idei prefetchingu jest praca potokowa.

  1. Lista rozkazów, tryby adresowania

Komputer będący systemem mikroprocesorowym przetwarza informacje zgodnie z wykonywanym programem, czyli ciągiem instrukcji realizujących algorytm działania systemu. W pamięci systemu mikroprocesorowego program przechowywany jest w postaci binarnych kodów instrukcji maszynowych (rozkazów) właściwych dla danego mikroprocesora.

Rozkaz jest więc najprostszą operacją której wykonania żąda programista od procesora

Tworzenie programów bezpośrednio przy pomocy rozkazów nazywane jest programowaniem w asemblerze. Asembler jest językiem niskiego poziomu tzn kod z asemblera jest tłumaczony już bezpośrednio na kod maszynowy. Programowanie w asemblerze jest żmudne i nie nadaje się do tworzenia rozbudowanych programów.

Dlatego stosuje się języki wysokiego poziomu np. Pascal, C++. W językach tych jednej instrukcji odpowiada wiele instrukcji maszynowych czyli rozkazów. Tłumaczeniem programów wyższych poziomów na rozkazy maszynowe zajmuje się specjalny program zwany kompilatorem .

Dodatkowo w przypadku błędów programu można posłużyć się specjalnym narzędziem (programem)-debuggerem. Pod windows najczęściej stosowany jest Lahey Fortran, uniwersalnym debuggerem jest GDB. Debuggery są często wbudowane w języki programowania i działają razem z kompilatorami(g++ w języku C++). Programy testujące w debuggerze piszę się tą samą składnią co w języku dla którego jest przeznaczony.

Zestaw instrukcji maszynowych jakie potrafi wykonać dany procesor nazywa się listą rozkazów

Rozkazy możemy podzielić na kilka podstawowych grup:

Najczęściej wykonywane są rozkazy przesłań, wykonywanych na argumentach, stosie lub jako instrukcje wejścia wyjścia.

Rozkazy arytmetyczne służą do przetwarzania informacji, w wyniku wykonania operacji jest ona zmieniona.

Rozkazy sterujące pozwalają wykonać instrukcje skoku, wywołania podprogramów czy pętli.

Rozkazy przechowywane są w postaci kodów binarnych. Sposób rozmieszczenia informacji w kodzie rozkazu nazywa się formatem rozkazu.

Tryb adresowania jest to sposób określenia miejsca przechowywania argumentów rozkazu.

Argumenty rozkazu mogą być przechowywane w rejestrach, w pamięci lub w kodzie rozkazu.

Przy adresowaniu natychmiastowym argument rozkazu zawarty jest w kodzie rozkazu

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
Kod rozkazu

Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki pamięci w której przechowywany jest rozkaz

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Kod rozkazu

0x08 graphic

0x08 graphic
0x08 graphic

MEM

Przy adresowaniu rejestrowym w kodzie rozkazu określony jest rejestr w którym przechowywany jest argument.

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Kod rozkazu

0x08 graphic

Rejestr

Przy adresowaniu pośrednim kod rozkazu zawiera określenie rejestru bądź rejestrów w których znajduje się adres komórki pamięci zawierającej argument

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Kod rozkazu MEM

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Rejestr

0x08 graphic

Przy adresowaniu indeksowym z przemieszczeniem adres argumentu przechowywanego w pamięci obliczany jest jako suma zawartości rejestru określonego w kodzie rozkazu i wartości umieszczonej w kodzie rozkazu zwanej przemieszczeniem.

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Kod rozkazu MEM

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
Rejestr

0x08 graphic

  1. Sposób prezentowania rozkazów

Lista rozkazów procesora powinna zawierać następujące informacje:

Przykładowy rozkaz o symbolicznym znaczeniu (asembler)

Przykład 1

JMP SHORT etykieta

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
EB 03h JMP SHORT NEXT 000

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
001

0x08 graphic
mnemonik 010

0x08 graphic
0x08 graphic
argument 011

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Kod rozkazu NEXT 100

0x08 graphic
w zapisie

0x08 graphic
heksadecymalnym 101

ten rozkaz zostanie wykonany

jako następny

Mnemonik jest pewnym skrótem używanym w asemblerze który powinien sugerować rodzaj operacji wykonywanej przez rozkaz. Można go traktować jako nazwę rozkazu. Mnemoniki pochodzą od słów angielskich, podany tu mnemonik JMP jest skrótem od jump - skacz do i oznacza skok do kodu oznaczonego przez argument.

Opis słowny rozkazu

Opis słowny wygląda następująco:

Wykonaj skok i pobierz kod rozkazu z komórki pamięci o adresie równym etykieta (w podanym przykładzie jest to adres NEXT =100) Słowo SHORT oznacza skok bliski w zakresie od 127 bajtów w górę do 128 bajtów w dół(wartość takiego skoku można zapisać w postaci jednego bajtu - kod U2)

Format rozkazu

W przypadku rozkazu JMP SHORT etykieta jest on następujący:

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

Kod operacji

0x08 graphic
0x08 graphic
Kod

rozkazu

Argument

Format rozkazu oprócz sposobu rozmieszcenie informacji w kodzie mówi też o długości kodu rozkazu - w naszym przypadku jest on dwubajtowy(jeden bajt kodu operacji i jeden bajt argumentu)

Ustawienie flagi

Flaga a w zasadzie rejestr flagowy zawiera dodatkowe cechy wyniku operacji. Może to być np. znak wyniku czy przekroczenie zakresu. Zastosowanie rejestrów flagowych jest zależne od konstruktora całego układu (do jakich przypadków przewidział ustawianie flag).

Przy standartowych zastosowaniach rejesrtu flagowego w naszym przypadku flagi nie byłyby ustawiane.

Przykład 2

ADC - instrukcja ADC sumuje dwie liczby umieszczone we wskazanych miejscach oraz bit CY (bit przeniesienia - patrz sumatory cyfrowe ). Jest to instrukcja arytmetyczna.

ADC ax, bx

do liczby umieszczonej w ax dodaj liczbę umieszczoną w ba oraz bit CF. Wynik umieści w ax.

W związku z wykonywaniem operacji arytmetycznych ustawione zostaną wszystkie flagi

Często stosowanym mnemonikiem jest MOV - przesyłanie danych pomiędzy dwoma miejscami, przy czym obydwa argumenty muszą być tego samego rozmiaru.

Specjalizowany układ cyfrowy

System mikroprocesorowy

PC

μ P

IR

Kod rozkazu

Kod rozkazu

Kod rozkazu

Kod operacji

argument

Kod operacji

adres

argument

Kod operacji

Określenie rejestru

argument

Kod operacji

adres

Określenie rejestru

argument

Kod operacji

wartość

Określenie rejestru

argument

przemieszczenie

11101011

00000011

Kolejny rozkaz

11101011

przemieszczenie



Wyszukiwarka

Podobne podstrony:
PODSTAWY DZIAŁANIA UKŁADÓW CYFROWYCH, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr
format[1], Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I
Pamięci dynamiczne RAM, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I
bramki logiczne, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I
router, Szkoła, Systemy Operacyjnie i sieci komputerowe, sieci
Dyski twarde-woluminy, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr II
Konsola odzyskiwania systemu, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr II
Rejestry, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr I
Teoria informatyki, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr II
instalacja win 2003, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr II
Sieci radiowe typu Wireless LAN, Szkoła, Systemy Operacyjnie i sieci komputerowe, sieci
Komunikaty konsoli-Posłaniec, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr II
Zasady bezpieczeństwa w Windows, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I
Dyski twarde-konspekt, Szkoła, Systemy Operacyjnie i sieci komputerowe, utk, semestr II
DOS, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I
ghost, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I
pliki wsadowe1, Szkoła, Systemy Operacyjnie i sieci komputerowe, systemy, semestr I, BACZE, pliki ba

więcej podobnych podstron