Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Architektura systemów komputerowych (jesień 2013)

Podobne prezentacje


Prezentacja na temat: "Architektura systemów komputerowych (jesień 2013)"— Zapis prezentacji:

1 Architektura systemów komputerowych (jesień 2013)
Wykład 5 Budowa i działanie komputera dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki

2 Działanie komputera Podstawowa funkcja komputera – wykonywanie programów Na najwyższym poziomie możemy opisać system komputerowy poprzez: Opisanie zewnętrznego zachowania każdego modułu (danych i sygnałów kontrolnych, które wymienia on z innymi modułami) Podanie struktury połączeń i sterowania wymaganego do zarządzania tą strukturą

3 Struktura logiczna komputera
MAR - rejestr adresowy pamięci - określa adres w pamięci następnego zapisu lub odczytu MBR - rejestr buforowy pamięci - zawiera dane, które mają być zapisane w pamięci lub dane odczytane z pamięci I/OAR - rejestr adresowy we/wy - określa konkretne urządzenie we/wy I/OBR - rejestr buforowy we/wy - wykorzystywany do wymiany danych między modułem we/wy a jednostką centralną PC - licznik rozkazu - rejestr zawierający informacje który rozkaz ma być pobrany IR - rejestr rozkazu - do przechowywania pobranego rozkazu ACC – akumulator – rejestr w którym wykonywane są wszystkie operacje arytmetyczno logiczne

4 Struktura fizyczna komputera
Rezonator kwarcowy Szyna danych Urządzenia wejścia wyjścia Pamięć programu (ROM) Pamięć danych (RAM) Programowane układy I/O Szyny we/wy MIKROPROCESOR Zegar Szyny we/wy sterowanie szyna adresowa Szyna sterowania

5 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ół, precyzujący zbiór komunikatów. Przykłady standardów szyn: ISA, PCI, PCI express, AGP, 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.

6 Elementy składowe komputera
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.

7 Budowa procesora

8 Budowa procesora Jednostka arytmetyczno-logiczna zwana również arytmometrem (ALU 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 i iloczyn logiczny AND różnica symetryczna XOR, negacja logiczna NOT, Dodawanie i odejmowanie arytmetyczne liczb 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. 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.

9 Budowa procesora 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), wskaźnik stosu (ang. stack pointer, SP), rejestr stanu (wskaźnikó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).

10 Operacje sprzętowe komputera
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 operacje na rejestrach wewnętrznych procesora, obsługa przerwań.

11 Nawiązanie do historii informatyki
Maszyna Turinga Alan Turing w 1936 opisał tok myślenia prowadzący od obliczeń wykonywanych ręcznie do obliczeń wykonywanych przez prostą abstrakcyjną maszynę, która była w stanie wykonywać zaprogramowaną matematyczną operację czyli tak zwany algorytm. Maszyna mogła wykonać jednak tylko jeden, określony algorytm. Liczby miały być podawane maszynie za pomocą papierowej taśmy Maszyna Turinga jest uniwersalnym modelem wszelkich obliczeń Posiada ona obecnie olbrzymie znaczenie teoretyczne, ponieważ wszystkie współczesne komputery dają się do niej sprowadzić TEZA: Problem jest rozwiązalny na komputerze, jeśli da się zdefiniować rozwiązującą go maszynę Turinga

12 Maszyna von Neumanna Model działania maszyny von Neumanna:
Maszyna von Neumanna to konkretyzacja maszyny Turinga, pozwalająca na zaprojektowanie rzeczywistego komputera Maszyna von Neumanna składa się z procesora (CPU) oraz pamięci, w której przechowywane są dane oraz rozkazy Model działania maszyny von Neumanna: 1. pobieranie rozkazu z pamięci 2. pobieranie danych z pamięci wskazanych w rozkazie 3. wykonywanie rozkazu (przetwarzanie danych) 4. zapisywanie wyniku w pamięci 5. powrót do punktu 1

13 Cykl pracy komputera Wykonywanie programu
Program składa się z zestawu rozkazów przechowywanych w pamięci Jednostka centralna realizuje program poprzez wykonywanie rozkazów w nim zawartych Cykl rozkazowy (ang. instruction cycle) - ciąg czynności, które wykonuje układ sterowania jednostki centralnej w czasie realizowania jednego rozkazu. Przetwarzanie rozkazów realizowane jest przez procesor w dwóch krokach: Pobranie rozkazu z pamięci Wykonanie rozkazu

14 Fazy wykonania rozkazu
Wykonanie rozkazu przez procesor można podzielić na 4/5 kolejno następujących po sobie faz: F – pobranie kodu rozkazu z pamięci (fetch) D – dekodowanie (decode) wraz z obliczaniem adresów operandów i ich pobraniem P – opcjonalne pobranie argumentu z pamięci. E – wykonanie (execute), W – zapamiętanie wyniku (write), w szczególności transfer rejestr – pamięć.

15 Cykl rozkazowy - pobieranie
Licznik programu (PC – Program Counter) przechowuje adres następnej instrukcji do wykonania Procesor pobiera instrukcję z pamięci spod adresu wskazywanego przez PC Zwiększany jest licznik PC (incrementacja PC) Instrukcja ładowana jest do rejestru rozkazowego IR (Instruction Register) Procesor interpretuje rozkaz i przeprowadza wymagane działanie (przechodzi do cyklu wykonywania)

16 Cykl rozkazowy - wykonanie
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ęciową lub układem wejścia – wyjścia, - rejestrami procesora. Istnieją cztery kategorie cykli Przesłanie procesor <-> pamięć Przesłanie procesor <-> wejście/wyjście Przetwarzanie danych (operacje arytmetyczne lub logiczne na danych) Sterowanie – zmiana sekwencji operacji np. rozkaz skoku Kombinacja wyżej wymienionych działań

17 Cykl maszynowy i takt 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.

18 Przykład wykonania programu (1)
Pobierz instrukcję spod adresu 300 wskazywanego przez licznik programu

19 Przykład wykonania programu (2)
Pobierz i wykonaj instrukcję 1 z parametrem 940 (załadowanie liczby do akumulatora)

20 Przykład wykonania programu (3)
Pobierz i wykonaj instrukcję 5 z parametrem 941 (dodanie liczby do akumulatora)

21 Przykład wykonania programu (4)
Wynik działania jest w akumulatorze

22 Przykład wykonania programu (5)
Pobierz instrukcję 2 z parametrem 941 (przepisanie zawartości akumulatora do pamięci)

23 Przykład wykonania programu (6)
Wykonaj instrukcję

24 Graf cyklu rozkazowego

25 Inny przykład programu
Załóżmy, że R1, R2, R3 – rejestry robocze, [R1], [R2], [R3] – adres komórki pamięci zapisanej w rejestrze MOV R2, #n; MOV [R1],[R3+]; Znaczenie: Wstaw do R2 wartość n wykonaj n-razy: { [R1]  [R3] R1  R1 + 1 R3  R3 + 1 } Jaki będzie efekt działania?

26 Typy rozkazów procesora
Rozkazy maszynowe są przetwarzane przez procesor jako dane binarne (zerojedynkowe). Każdy rozkaz posiada unikatowy kod operacji (ang. opcode) oraz opcjonalnie dodatkowe elementy: odniesienie do argumentów źródłowych (SA ang. Source arguments), którymi mogą być: dane bezpośrednie, adresy pamięci lub układów we-wy, rejestry procesora; odniesienie do argumentów przeznaczenia (DA ang. Destination args.) 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.

27 Przykłady rozkazów NOP; nic nie rób ADD A , R1; A  A + R1
NOP – opcode ADD A , R1; A  A + R1 ADD – opcode, A, R1 – argumenty źródłowe, A – argument przeznaczenia. SJMP adres; PC  adres SJMP – opcode, adres – adres następnego rozkazu.

28 Typowe operacje procesora – transfer danych
move skopiuj SA -> DA store zapisz SA w pamięci load odczytaj DA z pamięci clear wyzeruj SDA (ustaw 0...0b) set ustaw SDA (ustaw 1...1b) push zachowaj SA na wierzchołku stosu pop załaduj DA z wierzchołka stosu

29 Typowe operacje procesora – arytmetyczne
add SDA <- SDA + SA subtract SDA <- SDA – SA multiply DA1...2 <- SA * SA divide DA1...2 <- SA / SA absolute SDA <- |SDA| negate SDA <- - SDA increment SDA <- SDA + 1 decrement SDA <- SDA – 1 compare SA1 – SA2

30 Typowe operacje procesora – logiczne
AND SDA <- SDA & SA OR SDA <- SDA | SA NOT SDA <- ~SDA XOR SDA <- SDA ^ SA test SA1 & SA2, (flaga Z) compare SA1 – SA2, (flaga Z) shift przesuń w prawo/lewo SDA rotate obracaj w prawo/lewo SDA

31 Typowe operacje procesora – sterowanie programem
jump DA skocz pod adres [DA] jump conditional DA skocz pod adres [DA] jeśli flaga Z=0 jump to subroutine DA skocz do podprogramu, zachowaj na stosie adres powrotu return pobierz ze stosu adres powrotu i wróć execute pobierz argument i wykonaj rozkaz PC bez zmian skip pomiń następny rozkaz skip conditional – pomiń następny rozkaz, jeśli flaga Z=0 wait – zatrzymaj program dopóki flaga Z=0 NOP– pusta operacja


Pobierz ppt "Architektura systemów komputerowych (jesień 2013)"

Podobne prezentacje


Reklamy Google