Struktura systemu komputerowego
Maszyna von Neumanna (ang. von Neumann machine) - koncepcja komputera,
utrzymującego w pamięci zarówno program jak i dane; możliwość wymiany programu i
danych na inne; zarówno program, jak i dane są przechowywane w pamięci w kodzie
dwójkowym, a ich przetwarzanie odbywa się w arytmometrze; rozkazy są podzielone na dwie
części: polecenie i adres argumentu (argumentów).
Operacje sprzętowe w komputerze:
odczyt z pamięci programu do procesora,
odczyt z pamięci danych do procesora,
zapis danych z procesora do pamięci danych,
odczyt z układów wejścia-wyjścia do procesora,
zapis danych z procesora do układów wejścia-wyjścia,
bezpośredni odczyt z pamięci danych przez układy wejścia-wyjścia (ang. direct memory access,
DMA),
bezpośredni zapis do pamięci danych przez układy wejścia-wyjścia (ang. direct memory access,
DMA),
operacje na rejestrach wewnętrznych procesora,
obsługa przerwań.
Elementy składowe komputera:
Szyna, magistrala (ang. bus) - wiązka przewodów lub zespół ścieżek na płytce obwodu
drukowanego, do wzajemnej komunikacji pomiędzy elementami komputera. W definicji
szyny, prócz samych przewodów sygnałowych, mieści się ściśle zdefiniowany protokół
(standard) precyzujący zbiór komunikatów. Przykłady standardów szyn: ISA, PCI, SCSI,
PCMCIA.
Jednostka centralna (ang. central processing unit, CPU) - element komputera, który pobiera
i wykonuje rozkazy. Składa się z jednostki arytmetyczno-logicznej, jednostki sterującej,
rejestrów, dekodera rozkazów. W przypadku komputerów jednoprocesorowych oznacza po
prostu procesor. Natomiast, jeśli mówimy o komputerze wieloprocesorowym, CPU oznacza
wszystkie procesory lub procesor nadrzędny.
Pamięć danych (ang. data memory) pamięć do zapisu i odczytu przeznaczona do
przechowywania danych.
Pamięć programu (ang. program memory) pamięć do odczytu przeznaczona do
przechowywania kodu programu.
Układ wejścia-wyjścia (ang. input-output circuit, I/O) - element komputera, służący do
wymiany informacji między komputerem a urządzeniem zewnętrznym.
Elementy składowe procesora:
Jednostka arytmetyczno-logiczna zwana również arytmometrem (ang. Arithmetic Logical
Unit), część procesora wykonująca podstawowe operacje arytmetyczne i logiczne, pobierającą
argumenty działań z rejestrów procesora lub z pamięci oraz określająca znaczniki w rejestrze
stanu procesora.
Typowe operacje wykonywane przez ALU:
suma logiczna OR (funkcja alternatywy),
iloczyn logiczny AND (funkcja koniunkcji),
różnica symetryczna EX-OR (funkcja różnowartościowości),
negacja logiczna NOT,
dodawanie i odejmowanie arytmetyczne liczb w naturalnym kodzie dwójkowym (NKB) i liczb
dziesiętnych w kodzie BCD (ang. binary coded decimal),
mnożenie i dzielenie arytmetyczne liczb w naturalnym kodzie dwójkowym (NKB) i liczb dziesiętnych
(BCD),
porównywanie logiczne dwóch sekwencji bitów,
porównywanie arytmetyczne dwóch liczb,
przesunięcia i rotacje,
zerowanie, ustawianie, negowanie i testowanie bitów.
Typowe znaczniki (flagi) ustawiane w wyniku operacji:
zera (ang. zero, Z),
znaku (ang. sign, S),
parzystości (ang. parity, P),
przepełnienia (ang. overflow, OV),
przeniesienia (ang. carry, C),
przeniesienia połówkowego (ang. auxiliary carry, AC).
Jednostka sterująca (ang. control unit) - część procesora, która zapewnia przebieg operacji
zdefiniowanej kodem rozkazu, steruje przenoszeniem danych wewnątrz procesora oraz
wymianą danych i sygnałów sterujących poprzez magistrale zewnętrzne.
Dekoder rozkazu (ang. instruction decoder) dekoder tłumaczący kod rozkazu na
mikrorozkazy realizowane przez układy wewnętrzne procesora.
Rejestr (ang. register) część procesora przechowująca dane lub adres.
Podstawowe rejestry procesora:
akumulator (ang. accumulator, A, ACC),
rejestry robocze (ang. general purpose registers),
licznik rozkazów (ang. program counter, PC),
wskaznik stosu (ang. stack pointer, SP),
rejestr stanu (wskazników, flag) (ang. flag register, F, program status word, PSW),
rejestr rozkazów (ang. instruction register, IR),
pamięć podręczna (ang. cache memory) - jako zbiór rejestrów,
rejestry buforowe danych i adresu (ang. buffer registers).
Cykl pracy komputera:
Cykl rozkazowy (ang. instruction cycle) - ciąg czynności, które wykonuje układ sterowania
jednostki centralnej w czasie realizowania jednego rozkazu. Na cykl rozkazowy składają się:
jednakowa dla wszystkich rozkazów faza pobrania, w której pobierany jest kod operacji z
komórki pamięci o adresie zapisanym w liczniku rozkazów (zawartość licznika zwiększa się,
a kod operacji jest dekodowany) oraz faza wykonania, w której następuje realizacja operacji
wskazanej przez rozkaz. Jeżeli w treści wykonywanego rozkazu jest adres lub argument
bezpośredni, to w fazie wykonywania może nastąpić kolejne zwiększenie zawartości licznika
rozkazów. Na cykl rozkazowy składają się jeden lub kilka cykli maszynowych.
Cykl maszynowy (ang. machine cycle) - cykl, w którym następuje przesłanie danych (odczyt lub
zapis) między:
- jednostką centralną a pamięcią lub układem wejścia wyjścia, - rejestrami procesora.
W zależności od rodzaju przesłania rozróżnia się cykl maszynowy: pobrania kodu operacji,
odczytu i zapisu pamięci/rejestrów, odczytu i zapisu wejścia-wyjścia, przyjęcia przerwania.
Jeden cykl maszynowy wykonywany jest w czasie jednego lub kilku/kilkunastu (w zależności
od procesora i rodzaju cyklu) taktów zegara systemowego.
Zegar systemowy (ang. system clock) generator impulsów prostokątnych, taktuje procesor,
układy pamięciowe i układy wejścia-wyjścia.
Cykl pamięci (ang. memory cycle) - ciąg operacji składających się na jeden dostęp (odczyt
lub zapis) do pamięci. W każdym cyklu maszynowym następuje wysłanie:
adresu na magistralę adresową,
danych na magistralę danych,
sygnałów sterujących, informujących o rodzaju cyklu, na magistralę sterującą.
Układy pamięci lub wejścia - wyjścia powinny w tym czasie wykonać odpowiednie czynności
- zapisać dane lub wysłać je na magistralę danych. Cykl pamięci często jest utożsamiany z
cyklem maszynowym.
Licznik rozkazów (ang. program counter) rejestr procesora; adresuje pamięć programu,
przechowując adres, spod którego należy pobrać kod następnego rozkazu lub argument
bieżącego rozkazu (np. rozkaz MOVC A,@A+PC z listy procesora Intel 8051).
Przykład:
Rozkazy Znaczenie
MOV R2, #n; R2 n
MOV [R1],[R3+]; wykonaj n-razy:
{
[R1] [R3]
R1 R1 + 1
R3 R3 + 1
}
R1, R2, R3 rejestry robocze,
[Rx] adres komórki pamięci zapisanej w Rx.
Wskaznik stosu (ang. stack pointer) rejestr procesora; adresuje pamięć o organizacji typu
stos (ang. LIFO last in first out), wskazując tzw. wierzchołek stosu, czyli adres ostatnio
zapisanych danych. Wykorzystywany jest do:
tymczasowego zapisu danych:
ż przechowywanych w rejestrach (rozkazy połóż na stos, zdejmij ze stosu),
ż w fazie wykonywania niektórych rozkazów przez mikroprocesor (np. dodawanie danych
wielobajtowych);
zapisu zawartości licznika rozkazów PC podczas wykonywania rozkazu wywoływania
podprogramu lub obsługi przerwania. Adres przechowywany w PC zostaje zapamiętany na
stosie w celu umożliwienia powrotu do programu głównego po zakończeniu wykonywania
podprogramu;
przechowywania danych wyrażanych za pomocą notacji przyrostkowej, zwanej również
odwrotną notacją polską.
Rozkazy procesora typy i przetwarzanie
Rozkazy maszynowe są przetwarzane przez procesor jako dane binarne (zerojedynkowe).
Każdy rozkaz posiada unikatowy kod operacji oraz opcjonalnie dodatkowe elementy:
przedrostek (ang. prefix) warunkuje sposób wykonania rozkazu,
kod operacji (ang. opcode) określa operację, jaka ma być przeprowadzona;
przyrostek (ang. postfix) określa rodzaj i typ argumentów,
odniesienie do argumentów zródłowych (ang. source), którymi mogą być: dane
bezpośrednie, adresy pamięci lub układów we-wy, rejestry procesora;
odniesienie do argumentów przeznaczenia (ang. destination) lub wyniku (ang. result),
którymi mogą być: adresy pamięci lub układów we-wy, rejestry procesora;
odniesienie do następnego rozkazu określa adres następnego rozkazu, który będzie
wykonany po rozkazie bieżącym.
Przykład 1:
NOP; nic nie rób
NOP opcode zapisany w języku symbolicznym, tzw. mnemonik,
Przykład 2:
ADD A , R1; A A + R1
ADD opcode,
A, R1 argumenty zródłowe, A argument przeznaczenia.
Przykład 3:
MOVX A , @R1; A [R1]
MOV opcode, X przyrostek, oznacza zewnętrzną pamięć lub układy wejścia-wyjścia,
[R1] argument zródłowy, A argument przeznaczenia.
Przykład 4:
LJMP adres; PC adres
L przyrostek (ang. long)
JMP opcode,
adres adres następnego rozkazu.
Typowe rodzaje operacji wykonywane przez procesor:
transferu (przesłań) danych,
arytmetyczne,
logiczne,
konwersji (translacji),
wejścia-wyjścia,
sterowania systemowego,
przekazywania sterowania.
Opis skrótów:
az argument zródłowy,
ad argument docelowy (przeznaczenia),
azd argument jednocześnie zródłowy i docelowy.
Rodzaj Nazwa
Opis
operacji operacji
Move skopiuj az ą ad
Store zapisz az w pamięci
Load odczytaj ad z pamięci
Transfer Exchange azd1 ą azd2
danych Clear wyzeruj azd (0...0b)
Set ustaw azd (1...1b)
Push zachowaj az na stosie
Pop załaduj ad ze stosu
Add azd azd + az
Subtract azd azd az
Multiply ad1...2 az * az
Divide ad1...2 az / az
Arytmetyczne Absolute azd |azd|
Negate azd - azd
Increment azd azd + 1
Decrement azd azd 1
Compare az1 az2, (flagi OV, Z, C, S)
AND
azd azd Ł az
OR
azd azd az
NOT
azd neguj azd
EX-OR
azd azd az
Logiczne Test
az1 Ł az2, (flaga Z)
Compare
az1 az2, (flaga Z)
przesuń w prawo/lewo azd
Shift
obracaj w prawo/lewo azd
Rotate
Translate azdątabela przyporząd.ąazd
Konwersji
Convert zmiana postaci azd na inną
Input odczytaj az z układu we-wy
Wejścia- Output zapisz ad do układu we-wy
wyjścia Start I/O zapisz kod do układu I/O
Test I/O odczytaj kod stanu z układu I/O
Sterowania Set control bits ustaw flagi ogólnego przeznaczenia i systemowe
systemowego Clear control bits zeruj flagi ogólnego przeznaczenia i systemowe
Jump (branch) skocz pod adres ad,
Jump conditional czyli PC ad
skocz pod adres ad, jeśli warunek spełniony/nie
Jump to spełniony
Subroutine
Return
skocz do podprogramu, zachowaj na stosie adres
Execute powrotu
wróć z podprogramu (pobierz ze stosu adres
Przekazywania Skip powrotu)
sterowania Skip conditional pobierz argument i wykonaj jak rozkaz, PC bez
Halt zmian
pomiń następny rozkaz
Wait (hold) pomiń następny rozkaz, jeśli warunek spełniony/nie
spełniony
No operation zatrzymaj wykonywanie programu
zatrzymaj wykonywanie programu a następnie
wznów po spełnieniu warunku
nie wykonuj żadnego działania
Wyszukiwarka
Podobne podstrony:
SO 02 Struktury Systemow Komputerowychmikronapedy w systemach komputerowychSTRUKTURA SYSTEMOW INFORMACYJNYCH STREFY SCHENGENBezpieczeństwo systemňw komputerowych praca dyplomowaBezpieczeństwo systemów komputerowych06 struktury systemow logistycznych10 System komputerowy, rodzaje, jednostki pamięciid113Systemy komputeroweSystemy komputeroweAdministrator systemow komputerowych!3102informatyka system komputerowy w firmie usługowejAnalityk systemów komputerowych!3103Administrowanie systemami komputerowymiBezpieczeństwo systemów komputerowych 2Podstawowe pojęcia dotyczące systemu komputerowegowięcej podobnych podstron