2010-05-17
1
Podstawy budowy
i
działania komputera
Oferta handlowa:
Zniżka (%) = wiek klienta
3 raty
Dane:
Cena 315 zł
Wiek 37 lat
Rata:
(100
– 37) / 100 * 315
3
Przykład obliczeń
2010-05-17
2
Oferta handlowa:
Zniżka (%) = wiek klienta
3 raty
Dane:
Cena 315 zł
Wiek 37 lat
Rata:
(100
– 37) / 100 * 315
3
Algorytm
Przykład obliczeń
Obliczenia na
kalkulatorze:
100
-
37
/
100
*
315
/
3
=
Przykład obliczeń
2010-05-17
3
Obliczenia:
100
-
37
/
100
*
315
/
3
=
1. Wpisz
2.
Naciśnij
3. Wpisz
4.
Naciśnij
5. Wpisz
6.
Naciśnij
7. Wpisz
8.
Naciśnij
9. Wpisz
10.
Pokaż wynik
Program
obliczeń
Przykład obliczeń
Obliczenia:
100
-
WIEK
/
100
*
CENA
/
3
=
1. Wpisz
2.
Naciśnij
3. Wpisz
4.
Naciśnij
5. Wpisz
6.
Naciśnij
7. Wpisz
8.
Naciśnij
9. Wpisz
10.
Pokaż wynik
Program
uniwersalny
Przykład obliczeń
2010-05-17
4
Tabela:
Dane
Kto
WIEK
CENA
Babcia
63
177
Dziadek
65
150
Mama
32
512
Tato
37
315
Rata
Przykład obliczeń
Tabela:
Dane i wyniki
Kto
WIEK
CENA
Babcia
63
177
Dziadek
65
150
Mama
32
512
Tato
37
315
Rata
66,15
Przykład obliczeń
2010-05-17
5
Obliczenia:
100
-
WIEK
/
100
*
CENA
/
3
=
1. Wpisz
2.
Naciśnij
3. Wpisz
4.
Naciśnij
5. Wpisz
6.
Naciśnij
7. Wpisz
8.
Naciśnij
9. Wpisz
10.
Pokaż wynik
11.Zapisz wynik w tabelce
12.
Weź nowe WIEK i CENA i
przejdź do p.1.
Program z pętlą
Przykład obliczeń
Organizacja obliczeń
(z kalkulatorem)
Program,
Argumenty,
Wyniki
Interpretacja poleceń,
Odczytywanie danych,
Zapisywanie wyników
Wykonywanie działań
Kalkulator
Kartka
Operator
2010-05-17
6
Organizacja obliczeń
(w komputerze)
Program,
Dane
Interpretacja rozkazów
programu
Wykonywanie działań
PAMIĘĆ
UKŁAD STEROWANIA
UKŁAD WYKONAWCZY
Wykonywanie programu
Program,
Dane
Interpretacja rozkazów
programu
Wykonywanie działań
PAMIĘĆ
PROCESOR
2010-05-17
7
Pamięć
• Pamięć zewnętrzna
• Pamięć operacyjna
• RAM
• ROM
• Bajt
• Czas dostępu
• Przepustowość
• Adres
• Przestrzeń adresowa
Pamięć = urządzenie
przechowujące informację
(ang. memory, storage)
Działania na pamięci:
• zapis do pamięci
(write)
• odczyt z pamięci
(read)
Parametry pamięci:
• pojemność
• szybkość
Nie ma przetwarzania informacji !
2010-05-17
8
Miejsce pamięci
w systemie
komputerowym
Pamięć zewnętrzna, np.
• dyski stałe
• CD ROM
• dyskietki
• "pen drive"
Pamięć wewnętrzna
(główna, operacyjna)
• RAM
• ROM
Miejsce pamięci
w systemie
komputerowym
Pamięć zewnętrzna, np.
• dyski stałe
• CD ROM
• dyskietki
• "pen drive"
Pamięć wewnętrzna
(główna, operacyjna)
• RAM
• ROM
Opcjonalna
Konieczna
2010-05-17
9
Pamięć zewnętrzna
-
Jest urządzeniem
wejścia-wyjścia
- Przetwarzanie informacji
jest możliwe dopiero po
jej przepisaniu do pamięci
operacyjnej
-
Transmisje odbywają się
w blokach (kilkadziesiąt –
kilkaset bajtów)
Pamięć wewnętrzna
-
Jest nieodłączną częścią
komputera
- W czasie wykonywania
programu dostarcza do
procesora kolejne rozkazy
i potrzebne dane
2010-05-17
10
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
bit
bajt
bajt
nibble
(tetrada)
(oktet)
(oktet)
Bit (binary digit)
– cyfra dwójkowa (0 i 1)
[ang.
odrobina, kawałek]
Byte
– 8 bitów [mutacja ang. „bite” ugryźć]
Nibble
– ½ bajta [ang. kęs, ogryzek]
Bity i bajty
Bajt
– podstawowa jednostka pamięci
Zapis i odczyt zawsze dotyczy słów
będących wielokrotnością bajta
2010-05-17
11
Ścieżki
(80)
Sektor
(18/ścieżkę)
Geometria dysku elastycznego
Dyskietka 3,5 cala:
2 x 80
= 160
ścieżek
x 18
= 2 880
sektorów
x 512
= 1 474 560
bajtów danych
(1,44 MB)
2010-05-17
12
Ile potrzeba pamięci?
Ile potrzeba pamięci?
Strona tekstu A4
czcionka 10p; 102 znaki w wierszu;
60 wierszy na stronie
6120 bajtów
Książka 200 str.
ok. 1,2 MB
Muzyka na CD
1 sekunda = 75 bloków
po 588 „sampli” 4-bajtowych
176 400 bajtów
1 minuta
ok. 10 MB
2010-05-17
13
Ile potrzeba pamięci?
Ekran w trybie znakowym
25 wierszy po 80 znaków (kod znaku + atrybut)
4000 bajtów
Ekran w trybie graficznym
1024 x 768 pikseli; kolor 32-bitowy
ponad 3 MB
Organizacja pamięci operacyjnej
0
0010 1101
1
0110 1111
2
0000 0001
3
1110 1101
4
1010 1001
5
1111 0001
...
Numer
bajta
(Adres)
Zawartość
2010-05-17
14
Organizacja pamięci operacyjnej
...
A27D
B 9
A27E
5 5
A27F
F F
A280
C 6
A281
0 7
A282
6 C
Adresy
i zawartość
są zwykle
podawane
szesnastkowo
Jeden bajt
–
dwie cyfry hex
Pola wielobajtowe
...
A27D
B 9
A27E
5 5
A27F
F F
A280
C 6
A281
0 7
A282
6 C
Jakie słowo 4-bajtowe
jest pod adresem
A27E ?
2010-05-17
15
Pola wielobajtowe
...
A27D
B 9
A27E
5 5
A27F
F F
A280
C 6
A281
0 7
A282
6 C
Słowo 4-bajtowe
pod adresem
A27E:
55 FF C6 07
... czy też:
07 C6 FF 55 ?
Pola wielobajtowe
...
A27D
B 9
A27E
5 5
A27F
F F
A280
C 6
A281
0 7
A282
6 C
55 FF C6 07
07 C6 FF 55
Big Endian
Little Endian
Np. Pentium
Dwie metody
2010-05-17
16
Pamięć operacyjna
Adres
Dane
Zapis
Odczyt
Rejestr adresu
Rejestr danych
Blok pamięci
k
b
itó
w
2
k
bajtów
p
bajtów
M
ikr
o
o
p
e
ra
cj
e
Pojemność i adres
* Np.
Obszar adresów - 64 k bajtów (2
6
* 2
10
= 2
16
)
Adres -
16 bitów
Rejestr adresu - k
bitów
Obszar adresów - 2
k
bajtów
* Np.
Obszar adresów - 4 G bajty (2
2
* 2
30
= 2
32
)
Adres -
32 bitów
2010-05-17
17
Pamięć operacyjna
Odczyt
Adres
Dane
Zapis
Odczyt
Rejestr adresu
Rejestr danych
Blok pamięci
M
ikr
o
o
p
e
ra
cj
e
1
1
0
0
1
0
1
0
1
0
Pamięć operacyjna
Odczyt
Adres
Dane
Zapis
Odczyt
Rejestr adresu
Rejestr danych
Blok pamięci
M
ikr
o
o
p
e
ra
cj
e
1
1
0
0
1
0
1
0
1
0
C7
59
B3
A1
2010-05-17
18
Pamięć operacyjna
Odczyt
Adres
Dane
Zapis
Odczyt
Rejestr adresu
Rejestr danych
Blok pamięci
M
ikr
o
o
p
e
ra
cj
e
1
1
0
0
1
0
1
0
1
0
C7
59
B3
A1
A1 59 C7 B3
Pamięć operacyjna
Zapis
Adres
Dane
Zapis
Odczyt
Rejestr adresu
Rejestr danych
Blok pamięci
M
ikr
o
o
p
e
ra
cj
e
1
0
0
1
1
0
1
0
1
1
F7
2010-05-17
19
Pamięć operacyjna
Zapis
Adres
Dane
Zapis
Odczyt
Rejestr adresu
Rejestr danych
Blok pamięci
M
ikr
o
o
p
e
ra
cj
e
1
0
0
1
1
0
1
0
1
1
F7
F7
Szybkość pamięci
Czas dostępu
– czas od ustawienia adresu
do odczytania danych (nanosekundy; 10
-9
s)
Przepustowość
– liczba bajtów (lub bitów) przesyłana do/z
pamięci w ciągu sekundy
2010-05-17
20
Częstotliwość:
133 MHz (czas 7,5 ns )
Dostęp
2 x w czasie jednego okresu
Szerokość dostępu:
8 bajtów
Przepustowo
ść:
2 x 133MHz x 8B = 2,1 GB/s
Przykład:
Przestrzeń adresów
Adres p-bitowy
2
p
różnych adresów
RAM (Random Access Memory)
- Pami
ęć zapisywalna; ulotna
ROM (Read-Only Memory)
- Pami
ęć stała; nieulotna
I/O (Input/Output)
- Rejestry urz
ądzeń we-wy
ROM
RAM
Nie
implementowana
I/O
0 1 ...
... 2
p
-1
2010-05-17
21
Przestrzeń adresów
Adres p-bitowy
2
p
różnych adresów
ROM
RAM
Nie
implementowana
I/O
0 1 ...
... 2
p
-1
Np.
Adres 16-bitowy
– maksymalna pamięć 64 kB
Adres 32-bitowy
– maksymalna pamięć 4 GB
Pami
ęci półprzewodnikowe
Zapisywalna (RAM) - ulotna (
volatile
)
Dynamiczna (D-RAM)
- tania, wymaga okresowego od
świeżania
Statyczna (S-RAM)
- szybsza, dro
ższa, nie wymaga odświeżania
Sta
ła (ROM) - nieulotna (
nonvolatile
)
EPROM (Electrically Programmable ROM)
EEPROM (Electrically Eresable Programmable ROM)
FLASH
2010-05-17
22
Co jest w pamięci
operacyjnej?
System operacyjny komputera
-
zarządza zasobami
-
komunikuje się z operatorem
Programy użytkowe (aplikacje)
Program startowy (BIOS)
RAM
ładowana
z dysku
ROM !
Budowa komputera
Model von Neumann’a
Cykl rozkazowy
Pamięć operacyjna
Centralny procesor (CPU)
Jednostka arytmetyczno-logiczna (ALU)
Adres pamięci
Maszyna sekwencyjna
Rozkaz
Licznik rozkazów
Słowo rozkazowe
Kod operacyjny
Rejestry uniwersalne
2010-05-17
23
Organizacja komputera
PAMIĘĆ
PROCESOR
WEJŚCIE
WYJŚCIE
Organizacja komputera
M
CPU
I/O
Model von Neumann'a
Memory
Central
Processing
Unit
Input/Output
2010-05-17
24
Cykl rozkazowy
M
CPU
I/O
Pobiera rozkaz
Dekoduje rozkaz
Wykonuje operację
Cykl rozkazowy
Pobranie rozkazu
z pamięci
Wykonanie rozkazu
w procesorze
Czas
dostępu !
Pobieranie
argumentów
??
Procesor zawsze jest szybszy niż pamięć
2010-05-17
25
Słowo rozkazowe
Adresy argumentów
Kod operacji
Od jednego do kilku bajtów
Łańcuch dwójkowy
Słowo rozkazowe
(Przykłady)
0100 10
01
0110 1111 0011 1100
(3 bajty: 49 6F 3C)
„
Wpisz liczbę
6F3C
do rejestru
R1
”
0010 01
11
(1 bajt: 27)
„
Przesuń w lewo zawartość rejestru
R3
”
2010-05-17
26
Kod programu w pamięci
3 F
35AC:
4 7
A 2
0 5
C 6
0 0
8 E
35AD:
35AE:
35AF:
35B0:
35B1:
35B2:
Adres
Rozkaz 2-bajtowy pod adresem 35AD
Rozkaz 1-bajtowy pod adresem 35AF
Rozkaz 2-bajtowy pod adresem 35B0
Rozkazy są wykonywane sekwencyjnie
Licznik i rejestr rozkazów
3 F
35AC:
4 7
A 2
0 5
C 6
0 0
8 E
35AD:
35AE:
35AF:
35B0:
35B1:
35B2:
Adres
3 5 A D
Adres następnego rozkazu
Kod pobranego rozkazu
4 7 A 2
+ 2
Długość rozkazu
2010-05-17
27
Licznik i rejestr rozkazów
3 F
35AC:
4 7
A 2
0 5
C 6
0 0
8 E
35AD:
35AE:
35AF:
35B0:
35B1:
35B2:
Adres
3 5 A F
Adres następnego rozkazu
Kod pobranego rozkazu
0 5
+ 1
Długość rozkazu
Licznik i rejestr rozkazów
3 F
35AC:
4 7
A 2
0 5
C 6
0 0
8 E
35AD:
35AE:
35AF:
35B0:
35B1:
35B2:
Adres
3 5 B 0
Adres następnego rozkazu
Kod pobranego rozkazu
C 6 0 0
+ 2
Długość rozkazu
2010-05-17
28
Bloki funkcjonalne
Licznik rozkazów
Rejestr rozkazów
Rejestry procesora
(pamięć lokalna)
Arytmometr
Procesor centralny
Pamięć
operacyjna
Sygnały
sterujące
Znaczniki
Przepływy informacji
w czasie cyklu rozkazowego
Licznik rozkazów
Rejestr rozkazów
Arytmometr
Rejestry
procesora
Pamięć
operacyjna
Adres
Rozkaz
Pobranie rozkazu
2010-05-17
29
Przepływy informacji
w czasie cyklu rozkazowego
Licznik rozkazów
Rejestr rozkazów
Arytmometr
Rejestry
procesora
Pamięć
operacyjna
Adresy argumentów
Pobranie argumentów
Przepływy informacji
w czasie cyklu rozkazowego
Licznik rozkazów
Rejestr rozkazów
Arytmometr
Rejestry
procesora
Pamięć
operacyjna
1. argument
2. argument
Kod
operacji
Wynik
Wykonanie operacji
2010-05-17
30
Wielkość słów
maszynowych
W pamięci
8 b (1 Bajt)
Adresy
16 b; 32 b; 64 b
Rejestry procesora 16 b; 32 b; 64 b
Rozkazy
Od 1 B do kilkunastu B (CISC)
32 b (4 B) (RISC)
Model komputera
2010-05-17
31
Zasoby pamięci
64 kB pamięci operacyjnej
4 rejestry procesora (16-bitowe)
64 k = 65 536 = 2
16
,
czyli adres jest 16-bitowy
Formaty słów rozkazowych
1-bajtowe (8-bitowe):
□ □□□□□ □□
3-bajtowe (24-bitowe):
□ □□□□□ □□ □□□□□□□□ □□□□□□□□
2010-05-17
32
Formaty słów rozkazowych
Identyfikator typu słowa
0
□□□□□ □□
Kod operacji Nr rejestru
Identyf ikator
Adres pamięci
1
□□□□□ □□ □□□□□□□□ □□□□□□□□
Kod operacji Nr rejestru
Lista rozkazów
Ładowanie rejestru z pamięci
Zapamiętanie rejestru w pamięci
Przesuwanie zawartości rejestru
Zerowanie rejestru
Dodawanie liczb
Odejmowanie liczb
Iloczyn logiczny łańcuchów dwójkowych
Uzupełnienie logiczne łańcucha dwójkowego
Przejście do wskazanego rozkazu (skok)
2010-05-17
33
Kodowanie rozkazów
Rozkazy krótkie
Kod op
Zapis
symboliczny
Działanie
00000
NEG r
Zmiana znaku liczby w rej.
00001
NOT r
Uzupełnienie logiczne bitów
00010
CLR r
Zerowanie rejestru
00011
SHR r
Przesunięcie w prawo
00100
SHL r
Przesunięcie w lewo
00101
ROR r
Przesunięcie cykliczne w prawo
00110
ROL r
Przesunięcie cykliczne w lewo
…
Kodowanie rozkazów
Rozkazy długie
Kod op
Zapis
symboliczny
Działanie
00000
LD r, adr
Przepisz słowo (16b) spod adr do rej.
00001
ST adr, r
Przepisz słowo z rej. r pod adres adr
00010
ADD r, adr
Dodaj (wynik w rej.)
00011
SUB r, adr
Odejmij (wynik w rej.)
00100
AND r, adr
Iloczyn logiczny (wynik w rej.)
00101
JMP adr
Przejdź do adresu adr
00110
BC adr
Jeżeli C=1, to przejdź do adresu adr
…
2010-05-17
34
Przykład programu
w języku asemblera XM-06
LD
R2, 13A5
SHR
R2
SHR
R2
NOT
R2
ST
13A7, R2
Przykład asemblacji
LD
R2, 13A5
1
00000 10 0001 0011 1010 0101
Hex: 82 13 A5
SHR
R2
0 00011 10
Hex: 0E
2010-05-17
35
Przykład asemblacji (cd.)
ST
13A7, R2
1
00001 10 0001 0011 1010 0111
Hex: 86 13 A7
NOT
R2
0 00001 10
Hex: 06
Przykład asemblacji (cd.)
LD
R2, 13A5
SHR
R2
SHR
R2
NOT
R2
ST
13A7, R2
82 13 A5
0E
0E
06
86 13 A7
Kod programu (hex)
Postać asemblerowa
2010-05-17
36
Symulacja działania
programu
13A4
55
13A5
9E
13A6
87
13A7
3C
13A8
FF
13A9
50
13AA
…
9E87
LD R2, 13A5
R2
Pamięć
Symulacja działania
programu
13A4
55
13A5
9E
13A6
87
13A7
3C
13A8
FF
13A9
50
13AA
…
1001 1110 1000 0111
R2
Pamięć
2010-05-17
37
Symulacja działania
programu
13A4
55
13A5
9E
13A6
87
13A7
3C
13A8
FF
13A9
50
13AA
…
1001 1110 1000 0111
SHR
R2
R2
0100 1111 0100 0011
Pamięć
R2’
Symulacja działania
programu
13A4
55
13A5
9E
13A6
87
13A7
3C
13A8
FF
13A9
50
13AA
…
1001 1110 1000 0111
SHR
R2
R2
0100 1111 0100 0011
0010 0111 1010 0001
SHR
R2
Pamięć
R2’
2010-05-17
38
Symulacja
działania
programu
13A4
55
13A5
9E
13A6
87
13A7
3C
13A8
FF
13A9
50
13AA
…
R2
0010 0111 1010 0001
NOT R2
Pamięć
Symulacja
działania
programu
13A4
55
13A5
9E
13A6
87
13A7
3C
13A8
FF
13A9
50
13AA
…
R2
0010 0111 1010 0001
NOT R2
1101 1000 0101 1110
Pamięć
R2’
2010-05-17
39
Symulacja działania
programu
13A4
55
13A5
9E
13A6
87
13A7
D8
13A8
5E
13A9
50
13AA
…
R2
1101 1000 0101 1110
ST 13A7, R2
Pamięć
D8
5E
Deasemblacja programu
Adres:
Kod:
7A56
82
7A57
2C
7A58
A3
7A59
8A
7A5A
2C
7A5B
A5
7A5C
02
7A5D
0E
7A5E
86
7A5F
2C
7A60
B7
2010-05-17
40
Deasemblacja programu
Adres:
Kod:
7A56
82
7A57
2C
7A58
A3
7A59
8A
7A5A
2C
7A5B
A5
7A5C
02
7A5D
0E
7A5E
86
7A5F
2C
7A60
B7
1
000 0010 rozkaz 3-bajtowy
Deasemblacja programu
Adres:
Kod:
7A56
82
7A57
2C
7A58
A3
7A59
8A
7A5A
2C
7A5B
A5
7A5C
02
7A5D
0E
7A5E
86
7A5F
2C
7A60
B7
1 00000 10
0010 1100 LD R2, 2CA3
1010 0011
2010-05-17
41
Deasemblacja programu
Adres:
Kod:
7A56
82
7A57
2C
7A58
A3
7A59
8A
7A5A
2C
7A5B
A5
7A5C
02
7A5D
0E
7A5E
86
7A5F
2C
7A60
B7
1
000 1010 rozkaz 3-bajtowy
LD R2, 2CA3
Deasemblacja programu
Adres:
Kod:
7A56
82
7A57
2C
7A58
A3
7A59
8A
7A5A
2C
7A5B
A5
7A5C
02
7A5D
0E
7A5E
86
7A5F
2C
7A60
B7
1 00010 10
0010 1100 ADD R2, 2CA5
1010 0101
2010-05-17
42
Deasemblacja programu
Adres:
Kod:
7A56
82
7A57
2C
7A58
A3
7A59
8A
7A5A
2C
7A5B
A5
7A5C
02
7A5D
0E
7A5E
86
7A5F
2C
7A60
B7
0
000 0010 rozkaz 1-bajtowy
LD R2, 2CA3
ADD R2, 2CA5
Deasemblacja programu
Adres:
Kod:
7A56
82
7A57
2C
7A58
A3
7A59
8A
7A5A
2C
7A5B
A5
7A5C
02
7A5D
0E
7A5E
86
7A5F
2C
7A60
B7
0 00000 10 NEG R2
LD R2, 2CA3
ADD R2, 2CA5