Architektura komputerów
2. PRZETWARZANIE W
KOMPUTERZE
2 PRZETWARZANIE W KOMPUTERZE
2.1 „Klasyczny” komputer
2.1.1 Model von Neumanna
2.1.2 Model Harvard
2.1.3 Realizacja, implementacja, architektura -
warstwowy model komputera
2.2 Model Flynna
2.3 Przetwarzanie w klasycznym komputerze
ArKom 2013 – 2 Przetwarzanie w
komputerze
2 - 2
2.1 „Klasyczny” komputer
• Przetwarzanie informacji (wejście, wyjście)
sterowane informacją – czarna skrzynka
• Przetwarzanie na ciągach liczb zerojedynkowych
• Przetwarzanie w oparciu program – od ENIAC
(1946) - programmed computing, tzn. algorytm
(zbiór precyzyjnych reguł) precyzyjnie
zakodowany w program,
ArKom 2013 – 2 Przetwarzanie w
komputerze
3
• modele/abstrakcje komputerów
– architektura – zachowanie się z punktu
widzenia użytkownika
– implementacja – jaka jest struktura i jak
działa – organizacja logiczna
– realizacja – z czego zbudowano
ArKom 2013 – 2 Przetwarzanie w
komputerze
4
2.1.1 Model von Neumann
ArKom 2013 – 2 Przetwarzanie w
komputerze
5
MEMORY
CONTROL
UNIT
ARITHMETIC
LOGIC
UNIT
accumulator
INPUT
OUTPUT
CPU
Jak to działa?
ArKom 2013 – 2 Przetwarzanie w
komputerze
6
CONTROL
INPUT
ALU
MEMORY
OUTPUT
Data/Instructio
n Flow
Control Flow
Instrukcja/rozkaz/liczba słowo
29.10.2013
ArKom 2013 – 2 Przetwarzanie w
komputerze
7
opcode
addressis
s
magnitude
Cykl rozkazowy (Instruction cycle)
ArKom 2013 – 2 Przetwarzanie w
komputerze
8
START
HALT
Fetch the next Instruction
Execute the Instruction
Fetch Cycle
Execute Cycle
Przykład
• Zadanie. Dodać dwie liczby i wynik
ulokować w pamięci
• kody operacyjne:
–
0001 1 – pobierz rozkaz z pamięci i
prześlij go do rejestru rozkazów
–
0010 2 – zapamiętaj wartość
akumulatora w pamięci
–
0101 5 – dodaj do akumulatora
komórkę pamięci
ArKom 2013 – 2 Przetwarzanie w
komputerze
9
A. Załadowanie pierwszego rozkazu do rejestru IR
ArKom 2013 – 2 Przetwarzanie w
komputerze
10
MEMORY
30
0
94
1
94
0
30
2
30
1
1 940
0002
0003
2 941
5 941
CU
300
1 940
PC
IR
ALU
ACC
B załadowanie do ACC liczby z komórki „940” oraz
zwiększenie o 1 rejestru PC
ArKom 2013 – 2 Przetwarzanie w
komputerze
11
MEMORY
300
941
940
302
301
1 940
0002
0003
2 941
5 941
ALU
0003 ACC
CU
300
1 940
PC
IR
+
1
C Pobranie do rejestru IR kolejnego rozkazu (adres w pamięci
„301”)
ArKom 2013 – 2 Przetwarzanie w
komputerze
12
MEMORY
300
941
940
302
301
1 940
0002
0003
2 941
5 941
CU
301
5 941
PC
IR
ALU
0003 ACC
D Wykonanie dodawania i lokowanie wyniku w
ACC. Zwiększenie licznika PC
ArKom 2013 – 2 Przetwarzanie w
komputerze
13
MEMORY
30
0
94
1
94
0
30
2
30
1
1 940
0002
0003
2 941
5 941
CU
301
5 941
PC
IR
+
1
ALU
0005
ACC
E Pobranie rozkazu 302
ArKom 2013 – 2 Przetwarzanie w
komputerze
14
MEMORY
30
0
94
1
94
0
30
2
30
1
1 940
0002
0003
2 941
5 941
CU
302
2 941
PC
IR
ALU
0005 AC
C
F Wykonanie rozkazu 302, czyli wysłanie
wyniku dodawania do komórki pamięci „941”
ArKom 2013 – 2 Przetwarzanie w
komputerze
15
MEMORY
30
0
94
1
94
0
30
2
30
1
1 940
0005
0003
2 941
5 941
CU
302
2 941
PC
IR
+
1
ALU
0005
AC
C
• System komputerowy zbudowany w oparciu o
architekturę von Neumanna powinien:
– mieć skończoną i funkcjonalnie pełną listę rozkazów
– mieć możliwość wprowadzenia programu do
systemu komputerowego poprzez urządzenie
zewnętrzne i jego przechowywanie w pamięci w
sposób identyczny jak danych
– dane i instrukcje w takim systemie powinny być
jednakowo dostępne dla procesora
– informacja jest przetwarzana dzięki sekwencyjnemu
odczytywaniu instrukcji z pamięci i wykonywaniu
tych instrukcji w procesorze.
ArKom 2013 – 2 Przetwarzanie w
komputerze
16
2.1.2 Model Harvard
• Architektura harwardzka – w odróżnieniu od
architektury von Neumanna pamięć danych
programu jest oddzielona od pamięci rozkazów.
ArKom 2013 – 2 Przetwarzanie w
komputerze
17
ArKom 2013 – 2 Przetwarzanie w
komputerze
18
ALU
CU
I/O
Instructio
ns
Memory
Data
Memory
• Prostsza budowa przekłada się na większą szybkość
działania - dlatego ten typ architektury jest często
wykorzystywany w procesorach sygnałowych oraz
przy dostępie procesora do pamięci cache.
• Separacja pamieci danych od pamięci rozkazów
sprawia, że architektura harwardzka jest obecnie
powszechnie stosowana w mikrokomputerach
jednoukładowych, w których dane programu są
najczęściej zapisane w nieulotnej pamięci ROM
(EPROM/EEPROM), natomiast dla danych
tymczasowych wykorzystana jest pamięć RAM
(wewnętrzna lub zewnętrzna).
ArKom 2013 – 2 Przetwarzanie w
komputerze
19
2.1.3 Realizacja, implementacja,
architektura - warstwowy model komputera
• Realizacja – technologie umożliwiają:
– rozbudowę i wbudowanie różnych
funkcjonalności (cache, specjalizowane
układy/bloki – np. zmiennoprzecinkowe
jednostki)
– zwiększenie szybkości działania
– miniaturyzację
– ograniczenie mocy wydzielanej itd.
ArKom 2013 – 2 Przetwarzanie w
komputerze
20
• Implementacja / organizacja /
organizacja logiczna – opisuje
współdziałanie bloków
funkcjonalnych komputera ≡ sposób
przechowywania informacji +
sposób i harmonogram przepływu w
strukturze komputera
• Organizacja komputera może być
opisana na różnych poziomach
szczegółowości struktury
ArKom 2013 – 2 Przetwarzanie w
komputerze
21
ArKom 2013 – 2 Przetwarzanie w
komputerze
22
KOMPUTER
BLOKI FUNKCJONALNE
(block level)
REJESTRY
(register-transfer level; RTL)
[hardware description/design level;
HDL]
UKŁADY LOGICZNE
(gate level)
ELEKTRONIKA
(electronic circuits level)
• Architektura - opis zachowania się komputera
z punktu widzenia użytkownika, ale abstrahuje
od jego organizacji logicznej
• Użytkownik działa w języku wysokiego
poziomu i nie chce znać budowy komputera, a
„architektura” interpretuje te ‘zapisy” do
poziomu języka maszynowego (język
programowania w kodzie binarny zrozumiały
bezpośrednio przez CPU) opisującego
zachowanie sprzętu w oparciu, o który działa
oprogramowanie.
ArKom 2013 – 2 Przetwarzanie w
komputerze
23
ArKom 2013 – 2 Przetwarzanie w
komputerze
24
• 5.11.2013
Atrybuty architektury - (Instruction-
Set Architecture) [WK]
• Lista rozkazów
• Formaty danych
• Struktura rozkazu
• Sposoby adresowania
• System przerwań
• Rejestry i pamięć
• Dąży się do zachowania np. listy rozkazów przy
zmianach organizacji, np. liczby rejestrów,
długości słowa
• Architektura decyduje o kompatybilności
komputerów
Języki i tłumaczenia/interpretacje model
warstwowy komputera
• Model warstwowy: każda warstwa
może być rozpatrywana jako
maszyna wirtualna; każda warstwa
definiowana jest przez własny język;
każda warstwa korzysta z usług
warstwy niższej (bliższej sprzętowi)
ArKom 2013 – 2 Przetwarzanie w
komputerze
25
ArKom 2013 – 2 Przetwarzanie w
komputerze
26
Aplikacje
Języki wysokiego poziomu
Asembler
Sprzęt
Język
maszynowy
• Język wysokiego poziomu (High Level Language – HLL)
• Asembler (assembler) – program tłumaczący język
wysokiego poziomu na język maszynowy - specyficzny dla
danego procesora
– Tłumaczy „mnemoniki słowa kluczowe” na kody operacyjne
oraz etykiety (nadane przez programistów) na adresy
– Tłumaczy również dyrektywy – polecenia dodatkowe związane z
realizacją tłumaczenia, np. dot. rezerwacji pamięci, nadania
zmiennym wartości początkowych, sygnalizacji błędów
translacji
– Tłumaczy jeden/jeden program HLL na język maszynowy, czyli
powstaje program binarny!
– Pomaga mu system operacyjny
ArKom 2013 – 2 Przetwarzanie w
komputerze
27
• Rozróżnia się
tłumaczenie/translacja:
• Kompilatory (compiler) – tłumaczą cały
program na cały program w kodzie
maszynowym
• Interpreter – tłumaczą sukcesywnie
instrukcje programu źródłowego na kod
maszynowy – nie ma programu wynikowego
ArKom 2013 – 2 Przetwarzanie w
komputerze
28
2.2 Model Flynna
• Taksonomia ≡ Systematyka klasyfikacji
architektur komputerów;
–
podział na kategorie
–
definiowanie / określenie własności
• Taksonomia Flynn (1968)
Komputer = przetwarza strumienie danych i
strumienie instrukcji
ArKom 2013 – 2 Przetwarzanie w
komputerze
29
Liczba strumieni danych
1
N
Liczba
strumie
ni
instrukcj
i
1
SISD
Single
Instruction
stream; Single
Data stream
SIMD
Single Instruction
stream;
Multiple Data
stream
N
MISD
Multiple
Instruction
stream; Single
Data stream
MIMD
Multiple
Instruction stream;
Multiple Data
stream
ArKom 2013 – 2 Przetwarzanie w
komputerze
30
•
SISD – pojedynczy strumień instrukcji i
danych – von Neumann – najbardziej
rozpowszechniony typ architektury
•
SIMD – jedna instrukcja powoduje wykonanie
tej samej operacji na wielu kompletach danych –
procesor wektorowy, procesor macierzowy
•
MISD - ??? (procesor potokowy?)
•
MIMD – wieloprocesor, wielokomputer
ArKom 2013 – 2 Przetwarzanie w
komputerze
31
2.3 Przetwarzanie w klasycznym komputerze
• Przykład - Czajnik
• Sterowanie gotowaniem wody w czajniku
elektrycznym
ArKom 2013 – 2 Przetwarzanie w
komputerze
32
ArKom 2013 – 2 Przetwarzanie w
komputerze
33
• if T:=TW=100 then I:=0; nigdy taka temperatura
• if T>99 then t+D I=0; woda musi się gotować przez
pewien czas (bakterie)
• if TW= TW(P) then t+D I=0; temperature wrzenia
wody zależy od ciśnienia atmosferycznego Morze
Martwe – Mont Everest
• TW≈100-h/100
• skąd wziąć tabelę; if TW(P) T>T* then t+D I=0
• czas opóźnienia zależy temperatury wrzenia, czyli od
ciśnienia, czyli od wysokości
• zbiór rozmyty – temperatura wrzenia
• model matematyczny
ArKom 2013 – 2 Przetwarzanie w
komputerze
34
Czajnik 1 – Funkcja przynależności
temperatury wrzenia
ArKom 2013 – 2 Przetwarzanie w
komputerze
35
100 105
85
75
0,8
1
1,0
0
Czajnik 1 – Zależność czasu opóźnienia od
temperatury wrzenia
ArKom 2013 – 2 Przetwarzanie w
komputerze
36
opóźnienie
temperatura
100
20
Kroki
Uwagi
12.11.2013
1 Opis problemu
Sformułowanie i werbalny opis problemu
2 Model
matematyczny
Przetworzenie problemu w matematyczny zapis;
1) zawsze uproszczenie i w wielu przypadkach
nie da się zbudować jednoznacznego modelu,
2) należy dopasować do danych,
3 Rozwiązanie
„modelu
matematycznego”
Nie każdy model da się rozwiązać;
1) brak „aparatu” matematycznego,
2) ograniczenia komputera pamięć, złożoność
obliczeniowa,
4 Algorytm
Opracowanie algorytmu często wprowadza
kolejne uproszczenia i ograniczenia do modelu
i precyzji jego rozwiązania
5 Program
Kolejne ograniczenia i utrudnienia
6 Testowanie na
zbiorach danych
Nie zawsze program liczy w zakładanym zakresie
zmienności danych
7 Obliczenia
ArKom 2013 – 2 Przetwarzanie w
komputerze
1 - 37