Professional Documents
Culture Documents
υπολογιστική πολυπλοκότητα 1 PDF
υπολογιστική πολυπλοκότητα 1 PDF
/ &
&
3.1
2006
.
, ,
..
. ,
,
, , ,
, , .
/ &
.
/ &
, ,
.
" "
.
,
.
2001 ,
(
), . 3.0
,
.
.
. ,
.
.
.
.
1 ______________________________________________________ 7
_______________________________________________________________7
1.1 von Neumann _________________________________________________8
1.2 _____________________________________________10
1.3 _________________________________________11
2 _____________________________________________________ 15
A ________________________________________________15
2.1 _________________________________15
2.2 - - ___________________17
2.3 ____________________________________________________21
2.3.1. (signed magnitude / sign and magnitude) ____________________22
2.3.2. - (excess / biased code)__________________________22
2.3.3. 1 _________________________________________________23
2.3.4. 2 _________________________________________________26
2.4 __________________________________________28
2.4.1 ___________________________________________________30
2.4.2 ____________________________________________________31
2.5 __________________________34
2.5.1. ________________________________34
2.5.2. _________________________________________________36
2.5.3. _________________38
3 _____________________________________________________ 41
_____________________________________________________41
3.1 / 1_________________________________42
3.2 / 2_________________________________43
3.3 / _____________________________45
3.4 _____________________________________________46
3.5 __________________________________47
3.6 __________________________________________50
3.7 _____________________________________50
3.8 Booth _____________________51
3.9 ______________________________________53
3.10 _________________________________________________________55
4 _____________________________________________________ 57
____________________________________________57
4.1 ___________________________________________________________57
4.1.1 ____________________________________________62
4.1.2 _______________________________________________________63
4.2 ______________________________________________67
4.3 ____________________________________________________69
5_______________________________________________________73
_____________________________________________________ 73
5.1 __________________________________________________________ 75
5.2 _______________________________________________________ 76
5.3 ______________________________________________ 80
5.4 ___________________________________________ 81
5.4 ________________________________________________ 84
5.5 Assembly_________________________________ 86
6______________________________________________________89
- _______________________________________________________ 89
6.1 (masters) (slaves) _____________________________ 89
6.2 (Single master Many slaves) _____________________ 90
6.3 (Multiple master arbitration) ___________________ 93
6.4 __________________________________ 96
6.5 (Secondary Storage / Mass Storage)____________________________ 99
6.5.1. ____________________________________________________________ 99
6.5.2. (Hard Disks) ___________________________________________ 103
6.5.3. (Magnetic Tapes) ____________________________________ 105
6.5.4. O (ptical Disks)__________________________________________ 106
6.6 ________________________________________________________ 107
6.6.1. (Keyboard) _____________________________________________ 107
6.6.2. ______________________________________________ 108
6.7 _________________________________________________________ 109
6.7.1 ____________________________________________________________ 109
6.7.2 O _________________________________________________________ 113
7______________________________________________________117
___________________________________________________ 117
7.1. ______________________________________________________ 120
7.2. _____________________________________________________ 121
7.3. _______________________________________________________ 122
7.4. _________________________________________________ 122
7.4.1. CSMA / CD (Carrier Sense Multiple Access with Collision Detection)___________ 123
7.4.2. Token Based ________________________________________________________ 123
8______________________________________________________125
& _______________________________ 125
9______________________________________________________139
E __________________________________________________ 139
1
() f(x) () x,
x.
.
,
,
,
, .
( ).
(versatility).
(primitives)
.
,
,
.
f1(A, B) = + ,
f2(, ) = A B 0, f3(A) = 0 0 1 .
f4(A, B, C) = A + B C f5(, ) = A *
- 7 -
1 -
:
(..
).
,
.
,
,
.
.
.
, .
John Louis von Neumann (1903
1957). (
Princeton von Neumann, J. Prespert Eckert
- 8 -
1 -
0000000000000000000000000 0000000000000000000000000
0000000000000000000000000
0000000000000000000000000 & 0000000000000000000000000
0000000000000000000000000
A
.
(Input Unit),
(data) .
(instructions)
.
(Memory Unit).
,
.
(Arithmetic Logic Unit ALU) E
(Control Unit).
(Output Unit). ALU
- 9 -
1 -
- KME (Central
Processing Unit CPU).
To von Neumann
.
. ,
.
, . von Neumann
.
1.2
von
Neumann
.
3 : CPU
ALU , / (Input / Output Unit
I/O Unit) . (
) 3
: (Address Bus),
(Data Bus) (Control Bus).
CPU /
( .
"" .
).
- 10 -
1 -
.
, ( )
.
.
.
3
.
1.3
.
( )
.
:
, ,
.
, ,
.
.
.
,
, .
.
.
,
.
(Machine Code) / (Assembly
Language).
.
.
- 11 -
1 -
0 1
( assembler-
0 1) .
. ,
,
.
.
.
CPU Intel (
Personal Computers / PCs)
,
( Apple
CPU Motorola).
.
.
.
(high level languages) C, Java, Pascal
Fortran.
.
(compiler) (interpreter)
. (o assembler
) (source code)
.
. ,
,
.
.
(debugging).
- 12 -
1 -
To / .
, , .
.
.
( ,
)
- 13 -
1 -
- 14 -
2
,
. (
)
(data encoding / data representation).
(, /
).
,
.
2.1 :
( 2001)
.
0V 5V.
0 1
.
.
0
- 15 -
2
1 5V 0V.
0V 5V
.
( )
(Bnary digiT BIT) .
0 1
0, 1, 2, 3, 4, 5, 6, 7, 8 9.
.
: , , , , .
( ) :
0
1
2
3
4
5
6
7
8
9
.
.
20 1 .
.
:
1 2 .
2 22 .
3 23 .
2 .
2 6 log26.
- 16 -
2
= log2
. (M x,
y, y x). = 3
.
210
000
100
010
001
110
101
011
111
.
:
(nibble) = (22)
Byte () = (23)
Kilobyte - Byte (KB) = 1024 (210) Bytes
Megabyte - MByte (MB) = 1024 (210) Bytes = 220 Bytes
Gigabyte - GByte (GB) = 1024 (210) ytes = 230 Bytes
Terabyte - TByte (TB) = 1024 (210) GByte = 240 Bytes
1GB ( )
233 .
2.2 - -
.
,
.
.
-
[0, -1]. (radix)
. =10
0 9. =8
0 7. >10
- 17 -
2
10. =16,
0 15 , , C, D, E
F 10, 11, 12, 13, 14 15 ,
.
.
.
-1-23210, i, 0 i -1, -
w-1w-2 w2w1w0. -1
w-1, -2 w-2 .
,
:
(w )
1
= i i
i =0
,
2 3 6 1 6 4 3 1.
6*2+4*3+3*6+1*1 = 43.
, ,
6 1 1 0 ( 6*6+4*1+3*1+1*0 = 43).
. ,
.
i i.
- .
-1-23210 . .
827.
82710 102*8 +
101*2+100*7. 10001102
26*1+25*0+24*0+23*0+22*1+21*1+20*0 = 7010.
. =10
.
- 18 -
2
=10 10. 10
.
10 - .
-110 =
+-1-1+11+00 = 10.
,-1,, 1,0.
1. :
-1+-2-1+0 1+ (0/) = (10 / )
0
.
-1 .
2. = (10 / )
,-1,, 1.
3. = 0 , 1.
(
,
).
11458
. .
11458 = 83*1 + 82*1 + 81*4 + 80*5 = 61310.
61310 :
613 / 2 306 1 (=0)
306 / 2 153 0 (=1)
153 / 2 76 1 (=2)
76 / 2 38 0 (=3)
38 / 2 19 0 (=4)
19 / 2 9 1 (=5)
9/2 4 1 (=6)
4/2 2 0 (=7)
2/2 1 0 (=8)
1/2 0 1 (=9)
11458 = 10011001012.
() ()
=
,
.
.
= 8
- 19 -
2
= 2. =3
3 . 528 =
81*5 + 80*2 = 2 * 5 + 2 * 2 = 2 * (2 *1 + 2 * 0 + 2 *1) + 2 * (2 * 0 + 2 *1 + 2 * 0) =
31 30 3 2 1 0 0 2 1 0
2 *1 + 2 * 0 + 2 *1 + 2 * 0 + 2 *1 + 2 * 0 = 1010102,
5 4 3 2 1 0
3
(
3
) :
A 32D16
.
:
11010
23 10011
23 10010
23 11101
23
A 3 2 D
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 1000
9 1001
1010
1011
C 1100
D 1101
E 1110
F 1111
,
0
.
{{{{{{
:
001 010 001 100 101 101
1 2 1 4 5 5
- 20 -
2
.
.
()
.
2.3
,
.
2.
.
.
.
,
.
. ,
, .. :
7+(4-3) = 8
(7+4) 3 = ?
,
.
.
.
- 21 -
2
( 0 1
)
. -1
-210 :
2
2
( 1)
1
(
i
i
)
i =0
-.
.
.
,
[(2-1-1),
2-1-1]. 0.
+0 00000 0 10000.
.
- 22 -
2
4
. .
4
+3 111 (=+3+4)
+2 110 (=+2+4)
+1 101 (=+1+4)
0 100 (= 0+4)
-1 011 (=-1+4)
-2 010 (=-2+4)
-3 001 (=-3+4)
-4 000 (=-4+4)
= 2-1.
-1-210 :
2
1
(
i
i )
i =0
,
,
,
.
2.3.3. 1
1
,
()
.
(inverters)
.
:
+1210 000011002. 1
000011001s.
1210 000011002. 1
111100111s.
1.
-1-2 10.
- 23 -
2
1. -1. 0
. 1
.
... ,
1 2 1 0 i
i.
2.
-1 -(2-1-1).
11100010 1. 1,
.
: 000111012 2910.
-2910. 2 :
-(27-1)*1 + 26*1 + 25*1 + 21*1 = -2910.
.
,
[(2-1-1), 2-1-1],
10000 011..11
.
0 : 00000 11111.
1 (
2 ),
.
. -1-2 10 1s.
2 2
2 2
[-(2-1-1)]*-1 + (
i
i ) = [-(2-1)] *-1 +2-1*-1 + (
i
i ) ,
i =0 i =0
- 24 -
2
.
11101011s = 111101011s = 1101011s = 101011s
,
1
.
, .
0
.
.
.
.
:
2910
4510 +
7410
9 5.
(10) (4)
, .
2 4 .
(7)
.
.
.
1
(2)
.
- 25 -
2
1 2
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
,
.
. 0 0
0 (
)
0 0
. ,
3
.
.
76543210
011111002
010110102 +
110101102
12410, 9010 21410.
2.3.4. 2
1
2 . ,
2
,
()
.
2
(inverters) (incrementer)
.
- 26 -
2
,
,
.
:
4310 2 : 00101011
43 001010112.
11010100 (
1). 1 11010101
2.
32 00100000. 2
11100000,
1.
2.
-1-2 10.
1. -1. 0
. 1
.
( ... +1),
1 2 1 0 i
i.
2.
-1 -2-1.
11100010 2. 1,
.
: 000111102
3010. -3010.
2 : -27*1 + 26*1 + 25*1 + 21*1 = -3010.
0, 00000.
.
[2-1, 2-1-1], 10000
- 27 -
2
01111. ,
.
2.4
.
. ,
. .
"" (
) 101,01102,
.
,
:
22*1+20*1+2-2*1+2-3*1 = 5,37510
- : -1-210,-1-2-(-1)-
.
1
: i
i
i =
- (
) : 0,10
- ,
0,-1-2-+1- = -1-1 + -2-2 + -+1-+1 + --
= 0,10. -1, -2, ,
-+1, -.
1. :
(0,10 * ) = 0-1+-1-2+ -+2-+1 + -+1- = -1,-2-+1-
-1
0,10 .
-1 .
2. ' = (0,10 * ) - 0-1
-2,-3,, -.
- 28 -
2
3. ' = 0 , 1.
.
0,158
.
0,158 = 8-1*1 + 8-2 *5 = 0,20312510.
:
0,203125 * 2 0 (= -1 ) 0,40625 10
0,40625 * 2 0 (= -2 ) 0,8125 10
0,8125 * 2 1 (= -3 ) 0,625 10
0,625 * 2 1 (= -4 ) 0,25
10
0,25 * 2 0 (= -5 ) 0,5
10
0,5 * 2 1 (= -6 ) 0
10
5 C 2
. .
. 0,210
. :
0,2 * 2 0 (= -1 ) 0,4
0,4 * 2 0 (= -2 ) 0,8
0,8 * 2 1 (= -3 ) 0,6
0,6 * 2 1 (= -4 ) 0,2
, 0,2.
0,210
.
.
0,33333310
, .. 0,13.
- 29 -
2
2.4.1
.
16
.
15 .
. 11
. , 0,210
0000000000000011 0,187510.
6%.
7 ( 15
), 0000000000110011
0,1992187510 1%.
211
27.
.
,
(fixed-point representations)
. ,
.
(..
Avogadro 6,023 * 1023) (.. ,
) .
40 .
.
.
.
(floating point) .
- 30 -
2
2.4.2
(scientific notation).
*, (
significant mantissa) , B
(exponent) .
Avogadro 6,023*1023 = 6,023, = 10 = 23.
. ,
.
.
3,76*101, 0,376 *102 376*10-2 .
-
(normalized)
.
.
,
, ,
.
:
. 3
.
4.
16.
.
:
- --- . ---- ---- ----
3
- 31 -
2
.
14310 .
14310=8F16.
. 8F16
= 8F*160 = 0,8F*162.
. 0
. (2) excess 4 6 1102.
8, F 0
: 0110100011110000.
.
,
.
/
,
,
.
754 IEEE (Institute of Electrical and
Electronic Engineers).
.
32 ( - single precision) 64 (
- double precision) ,
. 2,
.
:
Single Precision 32 8 127 1 + 23 (+1)
Double Precision 64 11 1023 1 + 52 (+1)
- 32 -
2
:
, .
.
.
1,2 0,12 .
2 :
1,
(hidden bit), (
(+1) ).
0
0 .
+ - 1
.
.
0/0 1
.
0 00000 00000 +0
1 00000 00000 -0
0 00000 11111 +
1 00000 11111 -
0/1 00000 11111 NaN (Not a Number)
754
: (-1) * (1+) * 2(-) .
.
18,7510 single precision .
1810
1810 = 100102.
0,7510 = 0,112. 18,7510 = 10010,112 = 10010,11 * 20 =
1,001011 * 24. :
0.
= 4, excess 127 10000011.
= 1,001011, 23
(hidden) 00101100000000000000000.
- 33 -
2
:
0 10000011 00101100000000000000000
0 10000100 10100000000000000000000
132-
127=5 (1).101. 1,101*25 =
110100 * 20 = 5210.
2.5
,
, .
,
. (
0 1.
,
).
2.5.1.
,
ASCII (American Standard Code for Information
Interchange), .
- 34 -
2
7
128 .
00H 1FH 7FH
.
. "a" "" .
. -,
48 (30).
32 (20).
ASCII
. 128
.
EBCDIC
(Extended Binary Coded Decimal Interchange Code),
8 256
. ASCII ,
.
.
EBCDIC
.
, Unicode. Unicode
. 2,0 38.885
. Unicode 16
. . ,
Unicode,
32 32-bit ISO
10646 Universal Character Set (UCS-4).
- 35 -
2
2.5.2.
. ,
(duotone) .
( ).
(continuous tone)
, .
.
(gray scale) (color).
(, picture elements, pixels),
. () ()
.
.
,
(
).
() () ()
A
. (
) ,
. ,
() .
- 36 -
2
,
. , 256 8
.
16 256
1 4 8
pixel pixel pixel
, ,
.
.
,
, ,
.
.
- 37 -
2
, 256 ,
24 .
16 (2563).
(image depth - ).
2.5.3.
(sampling) (quantification)
.
.
; O Nyquist f,
2*f. H
:
.
20Hz
20KHz. ,
- 38 -
2
40KHz.
.
2 +6 V. A
8 1V,
000 [-2, -1] 111
(5, 6]. 1.2V 100.
""
.
0,5V .
256 0,015625V
8 .
- 39 -
2
- 40 -
3
.
.
.
,
, .
,
.
.
2. ,
1 '
.
8 .
,
- +(-)
.
- 41 -
3
3.1 / 1
1
(end-around-carry). ,
1
( ),
,
.
0. =-10010
=10110. 1 :
= -10010 = 100110112
=+10110 =011001012
000000002 1 .
. ,
. 1
+ 1 = 100111001's = -9910.
9910 111111101's,
1 1. 10010
111111111's 0.
.
10110 0,
000000001's. 0 ,
.
(111111111's)
8
.
.
.
01001011 (+75) 11000101 (- 58)
10001001 (-118) + 01110010 (+114)+
0 11010100 (-43) 1 00110111
1
00111000 (+56)
- 42 -
3
.
.
:
0
1
2.
1 .
.
3.2 / 2
2
. ,
.
.
( ) .
- 43 -
3
.
,
(operands).
. .
. ,
.
.
= 76543210
= 76543210. 76543210 ,
76543210
. 7 = 7 = 1 7 = 0 7
= 7 = 0 7 =1. 7 = 0
= 1,
7 = 1 = 0.
7 ,
.
/
2.
(ripple carry).
0,
- 44 -
3
. 1
1 2 (
- +2's).
.
7 6 5 4 3 2 1 0 /
7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0
7 6 5 4 3 2 1 0
3.3 /
,
(
) :
,
.
.
,
.
.
.
.
00110010 (+50) 10101111 (-47)
00010000 (+16) + 00100000 (+32) +
01000010 (+66) 10001111 (-15)
:
- 45 -
3
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
/
:
,
,
.
,
.
.
.
3.4
. ,
(shifts)
.
:
(logic shift) , .
.
0. 011101.
- 46 -
3
000111
111010.
,
2,
2.
(arithmetic shift) .
0 .
2 111000
111110.
2,
2 .
(rotation) , .
. 100101
. 1
110010.
(shifter)
.
3.5
.
11 9
.
- 47 -
3
1 0 1 1 (1110)
x 1 0 0 1 (910)
1 0 1 1
0 0 0 0
0 0 0 0
1 0 1 1 +
1 1 0 0 0 1 1 (9910)
.
0 1,
0
.
.
1,
.
1011000,
3 .
+ 1 .
.
= -1-2
0 = -1-2 0.
.
1. =0 = = 0.
2. .
3. 0 5.
4. .
5. = .
6. 1 .
7. = ; .
2.
=4=100 =5=101 .
- 48 -
3
/
1 =0, =4, = 0
2 0
3 4
4 = 0 + 4 = 4
5 =8
6 = +1 = 1
7 2
2 1
3 5
5 = 16
6 = +1 = 2
7 2
2 2
3 4
4 = 4 + 16 = 20
5 = 32
6 = +1 = 3
7
.
(flow charts).
:
() .
:
=0,
= ,
= 0
=0 ? = +
= ()
= +1
= ?
- 49 -
3
3.6
,
. +
,
.
=
= 0
< =
?
= +1
= -
/ ,
.
.
3.7
.
.
= +5 =-3
2. :
- 50 -
3
1 1 0 1 (-32's)
x 0 1 0 1 (+52's)
1 1 0 1
0 0 0 0
1 1 0 1
0 0 0 0 +
1 0 0 0 0 0 1 (-632's) !!!
1 3
.
.
.
4 ,
8 . ,
8 :
1 1 1 1 1 1 0 1 (-32's)
x 0 1 0 1 (+52's)
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0
1 1 1 1 0 1
0 0 0 0 0 +
1 1 1 1 0 0 0 1 (-152's)
8
.
0,
.
3.8 Booth
. -1 -2
1.
* * 2, * -1 * 2-1, , * * 2,
- 51 -
3
Booth,
0, (+1)
(1). Booth recoded .
Booth =5
= 55. = 0110111,
5 4
. Booth
= 55 = 64 16 + 8 1 = (1000002) (00100002) + (0001000)
(0000001) = (+1) 0 (-1) (+1) 0 0 (-1).
4 3 ,
25% .
1.
Booth
.
1 0 (1),
0 1 (+1).
0. 0
.
Booth . H
recoded 2110 = 0101012 (+1)(-1)(+1)(-1)(+1)(-1)
. ,
Booth
0, (+1), (+2), (-1) (-2).
- 52 -
3
recoded
.
, (+1)(-1) (-1)(+1) recoded
(+1) (-1) .
(+1)(+1)(+1)
22
. Booth
.
recoded
. recoded
,
,
.
0 0 0 000 111
0 (+1) +1 001
0 (1) -1 110
(+1) 0 +2 011
(+1) (1) +1 010
(-1) 0 -2 100
(-1) (+1) -1 101
= 010101111102 =70210.
:
(+1)(-1)(+1)(-1)(+1)0000(-1)0
(+1)(-1)(-1)00(-2)
22
702 1024-256-64-2.
3.9
.
/ ,
- 53 -
3
.
.
0.11100 * 25
0.01000 * 22, 6
.
; .
0.11100 * 25 1.11000 * 24, 1.10000 * 23, 1.00000 * 22.
1.01000 * 22. ,
,
0.01000 * 22 = 0.00100 * 23 = 0.00010 * 24 = 0.00001 * 25
0.11101 * 25.
,
,
25
.
.
/ .
.
.
.
.
,
- 2.
.
754
IEEE.
.
.
- 54 -
3
.
,
.
:
.
,
.
.
.
3.10
.
.
,
. 25 :
25 1 = 24, 24 3 = 21, 21 5 = 16, 16 7 = 9, 9 9 = 0
16 :
16 1 = 15, 15 3 = 12, 12 5 = 7, 7 7 = 0
5 25 4 16.
.
.
. 43623
- 55 -
3
208. 208
,
208. 208
.
.
- 56 -
4
, .
.
/ .
4.1
2, ,
, , ,
.
.
(memory cell)
.
.
.
. ,
,
.
(semiconductors), .
- 57 -
4
bytes
. ,
.
/
.
.
.
.
8 , 8
.
byte ( 4 8 byte
2001).
(word). H
.
32 byte
:
1
2
3
4
(+) * (C-D) =5, =3, C=2
D=1. 8,
.
.
3 .
1
2
3 0 0 0 0 1 0 0 0
4
- 58 -
4
(C D = 1)
,
. ,
.
(address). 4
4 .
4 .
:
00
01
0 0 0 0 1 0 0 0
10
11
.
:
(Memory Write).
.
(Memory Read).
.
(memory
accesses).
.
, .
,
.
1
:
- 59 -
4
00
0 0 0 0 0 0 0 1
01
0 0 0 0 1 0 0 0
10
11
, 1
2.
.
. ,
.
. 0
3. 3,
:
00
0 0 0 0 0 0 0 1
01
0 0 0 0 1 0 0 0
10
0 0 0 0 1 0 0 0
11
.
.
,
.
.
.
, :
;
.
- 60 -
4
big-endian
.
. 32
bit F2341088H byte.
33FH
big-endian :
33FH 11110010 (F2H)
33FFH 00110100 (34H)
3400H 00010000 (10H)
3401H 10001000 (88H)
little-endian
.
little endian
:
33FH 10001000 (88H)
33FFH 00010000 (10H)
3400H 00110100 (34H)
3401H 11110010 (F2H)
(alignment) ;
8
8 .
16
little-endian byte
.
alignment
.
- 61 -
4
4.1.1
,
, ,
, .
.
. ,
.
.
.
,
0 -1.
(
) ns.
,
.
(Read Only Memories
ROMs) / (RAMs).
:
PROMs (Programmable ROMs) :
ROM .
PROMs (Erasable Ps) :
UV
.
PROMs (Electrically Erasable Ps) :
.
Flash :
.
.
- 62 -
4
(non volatile memories). '
(bootstrap code).
RAMs (volatile
memories). RAMs (SRAM)
(DRAM).
.
.
.
(memory refresh). (2001) 200%
, .
,
.
(Content Addressable Memories CAMs).
.
4.1.2
,
.
,
.
;
:
.
, 3 5
.
.
.
- 63 -
4
. (
.
VLSI).
, ,
.
.
:
.
+ .
.
.
.
+ .
.
.
:
- 64 -
4
M = 1 M = 1
= 100 ns = 200 ns
/ Bit = 10-6 / Bit = 10-7
M = 8 Bytes
= 10 ns
/ Bit = 10-4
.
2 ,
.
.
.
.
10 ns
.
, 200 ns.
.
40 ns
80% .
1000 ,
100 ns *1000 = 100 s.
(10 ns * 800) + (240 ns * 200) = 56 s.
44%
. (
,
).
2.
. ,
,
- 65 -
4
.
:
64 16384 bits 0.25 1 ns Static RAM
1 1KB 1MB 2 10 ns Static RAM
(L1 Cache)
2 512 KB 2 MB 5 20 ns Static RAM
(L2 Cache)
64 MB - 1GB 6 40 ns Dynamic RAM
4 60 GB > 10 s
Backup > 1.2 GB > 1 ms /
,
. 1
2,
, .
.
.
,
. cache 1
2
1 ,
. , .
2 ,
.
- 66 -
4
4.2
,
. ,
, 1 .
.
.
AND, OR, XOR
.
.
,
:
.
,
.
.
. ..
,
. .
,
.
"" .
, .
.
:
/
- 67 -
4
/
2
IEEE.
. .
.
8 256
.
.
:
(program counter).
.
(status register).
.
/
, ,
.
(Memory Address Register MAR).
,
.
(Memory Data Register MDR).
.
.
.
- 68 -
4
.
60 ( " "
). 60 32.
32
.
.
.
.
.
( )
.
.
4.3
.
,
,
.
(operation code opcode).
.
,
.
,
.
.
opcodes
.
- 69 -
4
opcodes ,
. - opcode
bytes 00010101 4 18,
:
00010101 00000100 00010010
0 1
(machine code programming).
,
. .
0 1
.
Assembly
.
.
,
.
(
) :
1. . (
R,
).
2. ( MDR
).
H :
1. . (
MAR,
MDR
).
2. ( / /
/ )
- 70 -
4
3. , (
MDR
MAR,
).
opcode.
,
+1, +1+2, +1+2+3, 1, 2 3
(
).
.
(jump) (branch)
.
- 71 -
4
- 72 -
5
. (Assembly)
.
,
. Assembly
.
KME
.
(Instruction Set
Architecture ISA).
.
,
, Assembler (
),
. assembler
, (loader),
- 73 -
5
.
.
,
.
,
.
LAB196
. .
/ MCS-96 Intel.
MCS-96 . H
16
. (on-chip RAM)
230 bytes. .
80C196KB 16
. 216
. ' 8
byte.
64 Kbytes.
.
00 - FFH 256
. 80196 2 bytes
16 bits, ,
(double-word).
aligned
aligned 4.
,
8 16
.
, , CX 16-bits
AL byte AX, AH byte.
BL byte BX.
CL byte CX.
- 74 -
5
5.1
80196
.
.
. "BYTE"
8 , "byte" 8
. :
BYTES: BYTES 8
0 255.
modulo-255 .
8 .
BYTE ,
.
WORDS: WORD 16
0 65535.
modulo-
65535 .
16 .
WORD
byte.
SHORT-INTEGERS: SHORT-INTEGERS 8-bit
-128 +127.
SHORT-INTEGER 1
.
INTEGERS: INTEGERS 16
-32768 +32767.
INTEGER 1
.
BITS: BITS
.
- 75 -
5
DOUBLE-WORDS: DOUBLE-WORDS
32 0
4294967295. '
' ,
32 16
16 16 .
byte.
DOUBLE-WORD '
WORD .
LONG-INTEGERS: LONG-INTEGERS
32 -2147483648
+2147483647. '
' ,
32 16
16 16 .
byte.
LONG-INTEGER '
INTEGER .
C. char
C
BYTE, short C
SHORT-INTEGER,
long C
LONG-INTEGER.
5.2
.
ADD
SHL (Shift Left).
opcodes
. ,
. BYTES
- 76 -
5
WORDS
( ADDB DD).
Assembly
:
(
) :
(DD)
(SUB)
(MUL)
(DIV)
(CLR)
(CMP)
(INC)
(DEC)
(NEG)
:
1 ()
(D)
(OR)
(XOR)
(SH)
:
(LD)
(ST)
(BMOV
Block Move)
- 77 -
5
.
.
.
,
.
:
(BR Branch)
(Jump)
/ (CALL)
/ (RET)
, .
,
.
/ / ,
.
.
,
.
.
.
.
:
SHORT / INTEGER INTEGER /
LONG INTEGER ()
:
(PUSH)
(POP)
()
LIFO (Last In First - Out).
- 78 -
5
.
.
(stack pointer).
FFFFH FF00H.
FFFFH (
). PUSH
. POP
.
:
(NOP No operation)
(RST Reset)
( Enable Interrupts)
(DI Disable Interrupts)
(IDLPD)
.
.
:
# EQU 80
80.
.
assembler
.
(label). START
:
[START] ADD AX, BX
- 79 -
5
/ / .
,
.
,
.
.
5.3
Assembly
( )
.
.
.
, .
C=A+B,
C, A, B .
.
accumulator ().
:
LD A
ADD B
ST C
, .
.
v C.
( 2 ) :
ADD A, B
ST A, C
- 80 -
5
. ADD
, 3 5 ,
!!!
8 5.
,
ADD B, A !!!
C.
,
D
:
LD D, A
ADD D, B
ST D, C
T, 3 :
ADD C, A, B
.
(sources)
(destination). source
.
2 3 ( )
(opcodes).
5.4
.
.
- 81 -
5
.
.
( )
.
.
( :
# EQU 80
# B EQU 82
# C EQU 84
# L EQU 80
# BL EQU 82
# CL EQU 84
MEM_ () _WORD ()
WORD
, +1 .
MEM_ (80) = 2
_ (81) = 03
MEM_ (82) = 42
_ (83) = F2
MEM_ (84) = 08
_ (85) = 0A ):
.
,
..
INCB CL
_ (84) = _ (84) + 1
.
.
, , . ..
LD AL,[AX]
- 82 -
5
MEM_(80) = MEM_(MEM_WORD(80))
MEM_(80) = MEM_(032)
.
.
. , BYTES SHORT-
INTEGERS ,
WORDS INTEGERS . ..
LD AX,[BX]+
MEM_WORD(80) = MEM_WORD(F242)
MEM_WORD(82) = MEM_WORD(82) + 2
BYTES
ADDB AL,BL,[CX]+
MEM_(80) = MEM_(82) + _ (008)
MEM_(84) = MEM_(84) + 1
.
.
,
.
..
ADD AX,#340
MEM_WORD(80) = MEM_WORD(80) + 340
. ..
LDB AL,12[BX]
_BYTE (80) = MEM_BYTE(12+MEM_WORD(82)),
_BYTE (80) = MEM_BYTE(F254),
- 83 -
5
2.
61
90. 6110
00111101 2
3D
3D[90].
.
37
90, DB[90], -3710
2 : 11011011. T,
.
.
SP
.
:
LD AX,2[SP]
.
MCS-96 0000
0001 0.
,
. ..
ADD AX,1234[0]
EM_WORD(80) = MEM_WORD(1234).
5.4
(PSW)
.
Boolean
.
,
:
- 84 -
5
7 6 5 4 3 2 1 0
Z N V VT C X I ST
Z: Z (Zero) 1
.
N: N (egative) 1
.
N
.
V: V (oVerflow) 1
.
VT: VT (oVerflow Trap) 1 V
1, .
VT
.
V
.
C: C (Carry) 1
bit
bit
.
C (
C=0).
I: /
. .
ST: ST (STicky bit) 1
(1)
C . ST
C
PSW
.
- 85 -
5
5.5 Assembly
.
byte 5F21 -
5F2A 5F20.
.
:
= 0
= _ (5F21)
E > = _ (5F22 + )
_ (5F22 + ) ?
= +1
= 9 ?
_ (5F20) =
, ,
.
5F22 5F2A.
.
byte .
5F21
5F22 5F2A.
, .
- 86 -
5
. X BL
, AX BL
.
.
:
# AX EQU 80
81 80
# L EQU 80 byte
80 L
# BL EQU 82 byte
82 BL
LD A, #0000 = 0
LDB BL, 5F21[00] = _(5F21)
[LABEL 1] CMPB BL, 5F22[AX] - _(5F22 + )
JH [LABEL 2]
LDB BL, 5F22[AX] = _(5F22 + )
[LABEL 2] INCB AL = + 1
CMPB AL, #09 9
JNE [LABEL 1]
0 [LABEL
1]
STB BL, 5F20[00] _ (5F20) =
- 87 -
5
- 88 -
6
-
.
.
.
( )
.
.
.
- 89 -
6 -
0.
1
1. 0
0V 1 5V, :
+5 V
0 V
.
,
"" .
(master) (slaves).
, ,
, .
CPU / / /
1 2 k
- 90 -
6 -
.
-
256 bytes. ,
256
.
.
-
.
. ,
,
.
,
, .
,
.
- (programmed
I/O). :
)
.
,
-1 .
) ,
.
)
.
:
.
,
)
- 91 -
6 -
.
.
.
(interrupt signals).
(interrupt driven I/O).
,
. ,
( , .) ,
.
. , ,
.
(interrupt masking)
.
) )
.
, .
.
.
(OR)
.
.
.
-,
.
- 92 -
6 -
.
,
,
.
(interrupt
controller). ,
,
.
(interrupt vector table).
. ,
.
.
( ) , (bus
arbiter)
, .
,
. ,
,
- 93 -
6 -
(high impendance),
.
,
,
.
.
(real-time systems).
(cycle stealing)
. ,
:
ADD R1, R2
R1 R2
R1.
,
.
. ,
,
.
(bus grant)
.
.
- 94 -
6 -
KME
1 2 -
/ / /
(Direct Memory Access DMA-
controller),
.
1byte .
(
).
:
1)
.
2) .
3) ,
.
4) ,
( device
driver).
5) To
.
(
).
6)
.
7)
,
.
8)
, ,
- 95 -
6 -
.
,
,
.
,
.
6.4
.
(serial) (parallel)
.
,
.
(ports) .
" "
.
:
,
. 30
ns (, 33,33... MHz)
33,33 bps
(Megabits / sec), 8
266,64 bps.
. (
. ,
- 96 -
6 -
,
. 2002-
100 Gbps ).
.
, .
.
.
, :
)
( ).
(simplex) .
)
( ).
- (half-duplex) .
)
. (full-duplex)
.
E
.
,
.
10011001.
.
.
(phase shift) .
- 97 -
6 -
(..
2) ( 1) .
1 1 1 1
0 0 0 0
. 2
.
.
Manchester.
.
1
0. 0110010
- 98 -
6 -
.
.
.
( preambles)
.
.
- 99 -
6 -
Drive FDD). 8 .
1981 5,25 ,
3,5
.
,
. ,
, .
, tracks. track
,
sectors. sector ,
512, 1024 2048 bytes.
sectors
sectors. ,
sectors tracks,
.
Sectors
Sectors
Sector
sector. sector
512 bytes , 1243 bytes,
3 sectors, .
1.2 bytes
.
- 100 -
6 -
.
,
.
. /
sector
.
tracks, sector.
/
sector
, (file).
sectors,
tracks.
.
, sectors (
- 101 -
6 -
track
),
sectors .
, ,
, sectors ,
.
sectors .
(fragmentation).
(defragmentation)
,
.
,
. , ,
: ,
sectors,
sector .
:
Gray.
, sectors
,
. Gray ,
:
1. bn-1bn-2 b0 ,
Gray gn-
1gn-2 g0, : gn-1 = bn-1 gk = bk+1 bk =0,1, ..., n-2 (
).
2. gn-1gn-2 g0 Gray,
bn-1bn-2 b0,
: bn-1 = gn-1 bk = bk+1 gk =0,1, ..., n-2.
Gray
,
. .. Gray
0 1.
2
- 102 -
6 -
0 1 1 0. 0
1, 00 01 11 10,
Gray 2 . 00 01
11 10 10 11 01 00
: 000 001 011 010 110 111 101 100,
.
H ,
sectors, interleaving factor. ,
sector, ,
, interleaving factor 2.
sector sector 0
track 0. sector
sector. < track, sector
track>. O sector sector (boot sector)
,
.
sector sector ,
sector ,
sector.
( )
( ,
).
.
- 103 -
6 -
,
(moving head disk).
,
track .
.
sectors
tracks ,
bits
.
sector , :
track (
head seek time).
sector
( rotational delay)
sector.
H .
tracks,
.
.
2 1024 tracks
. tracks 0
511 ,
.
- 104 -
6 -
tracks .
(fixed heads disks) .
.
.
. ,
(tracks). 9 , byte
(parity 8). 9
(frame) .
(record) .
- 105 -
6 -
.
(inter-record gap).
CD ROMs
. CD,
. H
CD ,
, .
,
.
o WORM
(write once read many) CD-R (read / write CDs).
, laser
.
.
- 106 -
6 -
6.6
6.6.1. (Keyboard)
.
.
.
.
8
(scan code). AT
.
,
.
2 bytes : F016 .
( KBD Data) (KBD
Clock), .
20 30 Hz. 5 Pin DIN PS/2
:
4. GND 4. N/C
6. N/C
- 107 -
6 -
:
(Data)
( 1).
11 bits
.
(start bit), 8 ,
( 8)
(stop bit).
( , F016).
O
Clock.
6.6.2.
,
trackballs, (digitizing tablet bit pad),
(lightpens) (touch screens)
(joystics).
.
. ,
.
,
:
.
.
- 108 -
6 -
.
(light emitting diode LED)
. ,
. trackballs
,
, .
.
.
.
.
,
.
30 60 .
,
. ,
.
.
,
.
.
6.7
6.7.1
. .
:
(cathode ray tube CRT)
- 109 -
6 -
,
(pixels).
.
,
. (
resolution) ,
:
1981, IBM CGA (Colour Graphics Adapter),
320x200 (
) 4
.
1984 IBM EGA (Enhanced Graphics Adapter),
640x350 16 .
1987 1990 IBM VGA (Video
Graphics Adapter) SVGA (Super Video Graphics Adapter) XGA (EXtended
Graphics Array) 800x600
(16,8
) 1024x768 216
.
, Ultra Extended
Graphics Array (UXGA), 1600x1200
16,8 .
CRT,
.
CRT
.
,
:
- 110 -
6 -
CRT
,
. ,
,
.
, 3
,
.
, (dot
pitch), .
,
(two-port memory)
(Video RAM VRAM).
- 111 -
6 -
.
.
640 x 480 ,
:
640
modulo 640 modulo 480
pixel
0 479
. ,
0 639
. ,
.
.
, :
- 112 -
6 -
,
25 . ,
,
,
. 50
(interlaced).
,
(non-interlaced)
.
,
( horizontal blanking).
(
vertical blanking).
6.7.2 O
(printers).
.
.
,
,
, ,
.
,
.
(daisy chain / daisy wheel printers).
.
,
,
. , ,
(dot matrix).
- 113 -
6 -
7 24 .
.
.
(
).
.
.
.
.
.
:
)
)
.
)
.
(dots per
inch dpi).
(2400 dpi)
.
.
.
.
:
1.
.
- 114 -
6 -
2.
( )
.
3. .
.
4.
.
5.
.
6.
.
(
1200 dpi) .
,
(
10 )
.
- 115 -
6 -
- 116 -
7
/
.
.
(
) .
, ,
. ,
. .
. ,
,
.
,
.
(International Standards Organization ISO)
- 117 -
7
OSI (Open System Interconnect).
/
, SI ,
. OSI
(7) (
) : physical, data link, network, transport, session, presentation
application. H .
Application Application
Presentation Presentation
Session Session
Transport Transport
Network Network
Data Link Data Link
Physical Physical
SI
. ,
. OSI
( ).
.
.
.
A .
- 118 -
7
(Applications Layer)
. ,
, (ftp file transfer protocol).
(Presentation Layer)
.. little endian big endian
.
(Session Layer)
.
.
(Transport Layer)
.
.
. ,
.
.
(Network Layer)
.
,
.
, .
(Data Link)
.
(frames)
, ,
.
(Physical Layer) 0 1
(, , ).
- 119 -
7
, ,
,
, .
.
.
:
(Local Area Networks LANs)
.
(Wide Area Networks / Long Haul Networks),
.
(bandwidth) ,
,
.
bits/sec
(bps) , Kbps, Mbps. ,
103 106 210 220.
(, ),
bandwidth .
(segments)
.
(
- asymmetric connection).
7.1.
.
- 120 -
7
.
.
.
.
.
Ethernet.
7.2.
.
.
.
.
- 121 -
7
,
.
Token Ring
IBM.
7.3.
.
00000000
00000000
00000000
00000000
00000000
00000000
00000000
(hub).
.
.
.
.
(single point of failure).
7.4.
(
)
:
- 122 -
7
- 123 -
7
- 124 -
8
&
.
,
, .
.
,
TL.
0
0 0,7 V 1
2,7 5 V.
0,7 2,7 V.
,
.
.
0 0,3 V.
.
.
- 125 -
8 &
0,3 V
.
0,7 V
. 2,7 V
.
(single bit error).
, .
(multiple bit error).
.
/ (error
detection / correction codes).
/
.
.
,
, , ,
.
n
2n ,
/ .
,
' . (
2n,
).
- 126 -
8 &
/ ,
,
( set of
codewords) (non-codewords).
,
.
( check bits)
2n+k .
n
n+k .
/
.
.
n=8
2 Mbit/s. k=3, 1 sec 2Mbit,
8/11 3/11
.
(8/11) * 2 bit = 1,45 bit
27%.
:
)
/ ;
) k
, /
, /
. ;
Richard Wesley Hamming (1915 1998),
- 127 -
8 &
.
Hamming.
(Hamming distance),
.
01001 11101 Hamming
2, 1 3 .
111 011 1.
2n+k .
Hamming (code distance)
.
: 1111, 0011, 0000,
1101. Hamming 2
.
, 1.
1 2 2
1 3 4
1 4 1
2 3 2
2 4 3
3 4 3
.
1
. ,
.
1111 1 ,
0111,
. 3
, 1101,
.
- 128 -
8 &
2 .
d+1
d .
2.
.
:
)
) .
.
.
. ,
.
;
2
.
1111 1011.
1011 ""
1111 0011.
1111 0000
. 4
3.
3 1
2 .
.
2c+1 c .
- 129 -
8 &
.
/ .
2. (parity bit)
.
100111011
. : 0 |
100111011.
H n
2n .
n+1 . 2n+1
,
.
n+1 .
/ 2
0 1 1 0
/ 1, .
EX-OR (EX-NOR) .
n=4,
d3, d2, d1 d0,
P .
.
- 130 -
8 &
d2 d0 P
d3 d1
. 3
4 ,
:
1010
0111
1101
(
) ,
(
):
1 0 1 0 0
0 1 1 1 1
1 1 0 1 1
0 0 0 0 0
1 0 1 0 0
0 1 10 1 1
1 1 0 1 1
0 0 0 0 0
- 131 -
8 &
.
.
:
1 0 1 0 0
0 1 10 1 1
1 1 0 1 1
0 0 0 0 0
,
n+k (+1
) n k .
,
.
Hamming
.
. n
2n .
k
, , . .
.
n+k .
:
) .
) n
) k
.
b3 b2 b1 b0
ck-1 c0. H
b3 b2 b1 b0 ck-1 c0.
:
- 132 -
8 &
b3 b2 b1 b0 ck-1 c0
b3 b2 b1 b0 ck-1 c0
b3 b2 b1 b0 ck-1 c0 4 ,
b3 b2 b1 b0 ck-1 c0
b3 b2 b1 b0 ck-1 c0
b3 b2 b1 b0 ck-1 c0 ,
b3 b2 b1 b0 ck-1 c0
,
(1+n+k).
,
.. b3b2b1b0ck-1c0
b3b2b1b0ck-1c0.
.
2n, 2n
* (1+n+k). n+k 2n+k
. :
2n * (1+n+k) 2n+k (1+n+k) 2k.
n
. n=12.
5. =5
.
7 ( 8)
Hamming.
,
.
. ,
, .
.
- 133 -
8 &
. .
4 b3b2b1b0 3
c3c2c1. : (b3, b1, b0, c1), (b3, b2, b0, c2) (b3, b2, b1,
c3).
. b0.
c1 c2.
c1 c2
b0 b3. b3 ,
c3, .
b0 .
.
,
, .
()
b0 c1, c2
b1 c1, c3
b2 c2, c3
b3 c1, c2, c3
c1 c1
c2 c2
c3 c3
.
=
9876543210 = 1000111011. n = 10,
4 ,
C8C4C2C1. ,
2, .
:
14 13 12 11 10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 C8 3 2 1 C4 0 C2 C1
1 0 0 0 1 1 1 0 1 1
- 134 -
8 &
( )
:
C1 : 1, 3, 5, 7, 9, 11, 13,
C2 : 2, 3, 6, 7, 10, 11, 14, 15
C4 : 4, 5, 6, 7, 12, 13, 14, 15,
C8 : 8, 9, 10, 11, 12, 13, 14, 15,
(,
2.
2. .. 6, 11.
11 = 8 + 2 + 1,
8, 2 1, C8, C2, C1).
:
C1 : 0
C2 : 0
C4 : 1
C8 : 1
:
14 13 12 11 10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 C8 3 2 1 C4 0 C2 C1
1 0 0 0 1 1 1 1 0 1 1 1 0 0
4.
:
14 13 12 11 10 9 8 7 6 5 4 3 2 1
9 8 7 6 5 4 C8 3 2 1 C4 0 C2 C1
1 0 0 0 1 10 1 1 0 1 1 1 0 0
C1 C8.
C1 C8 9, 11 13.
- 135 -
8 &
11 C2. ,
13 C4. C2 C4
, 9
.
XOR ,
1
1 R
.
Hamming
. ,
,
.
.
Hamming
.
:
14 13 12 11 10 9 8 7 6 5 4 3 2 1 Parity
9 8 7 6 5 4 C8 3 2 1 C4 0 C2 C1 P
1 0 0 0 1 1 1 1 0 1 1 1 0 0 0
:
) .
.
) .
.
)
. .
- 136 -
8 &
.
.
(Cyclic Redundancy CRC Codes).
x. 100111
:
1*x5 + 0*x4 + 0*x3 + 1*x2 + 1*x1 + 1*x0 = x5 + x2 + x + 1
Lin Costello
.
""
.
.
.
- 137 -
8 &
- 138 -
9
1
;
0
10-1, 10 . , o
10.
log2 10 , 3,32* .
2
2
AND -1 0.
: 2 0...010...0,
, 0 , . -1
0...001...1, 0 1 1
0. D
0.
: -1
X>0. b...b10...0 b{0,1}
0 , 0. -1 b...b01...1. AND 0,
b...b = 0...0 0...010...0. 2.
- 139 -
9
3
1 : 10002, 10008, 100010, 100016 ?
0116 ?
5 11101100 .
23, 83, 103 163.
*163 + 1*161 + *160 = 10 * 4096 + 16 + 11 = 4098710.
516 = (1010)(0101)2 = 101001012.
111011002 = (1110)(1100)2=C16.
4
, r. , r,
.
1234 + 5432 = 6666
41/3 = 13
33/3 = 11
23 + 44 + 14 + 32 = 223
(1+5)r3 + (2+4)r2 + (3+3)r1 + (4+2)r0 = 6r3 + 6r2 + 6r1 + 6r0 = 6666r. A r7.
(4r+1) = 3(r+3) r=8.
3r+3 = 3(r+1). H r4.
2r + 3 + 4r + 4 + r + 4 + 3r + 2 = 2r2 + 2r + 3 2r2 8r 10 = 0. H
r = 6 r= -1. H .
5
) ,
: 12345 123,1875 0,125
)
, 1
2 : = -23, =45, = -64
- 140 -
9
) 12345 = 110000001110012, 123 =
11110112. 0,1875 = 0,00112
0,125 = 0,0012.
:
12345 11000000111001 30071 3039
123,1875 1111011,0011 173,14 7,3
0,125 0,001 0,1 0,2
) .
8 ,
.
= -2310. 2310 = 000101112, 23 10010111,
1 11101000 2 11101001.
4510 = 001011012 .
O 6410 = 010000002. 64 - 11000000,
1 10111111 2 11000000.
6
) : = 11001000, = 10000000, = 01111111,
2. 8-bit +, -
, +. .
) , ,
1.
= 11001000 = -128+64+8 = -5610, =-12810 =12710. = -12710 =
10000001 2. + = 11001000 + 10000000 = 01001000
. -5610 -12810 = -18410
7210 . ,
.
- = +(-) = 11001000 + 10000001 = 01001001 .
. - = -18310
- = 7310.
+ = 10000000 + 01111111 = 11111111 .
, 2 11111111 =
- 141 -
9
-128+64+32+16+8+4+2+1 = -110 -128+127 =
-1.
.
1
(2-1-1) 2-1-1.
18410.
2-1-1 184 2-1 185 2 370 log2370 8,53. A
=9.
7
=-4210, =4005 =5216.
) 1, 64
2 8
.
) + 1 -
2, 8 9 .
.
) ,
,
1 0 1 1 0
1 0 1 0 1
0 0 1 1 0
0 1 1 1 1+
) 4210 = 001010102, -4210 = 110101011's. B=4005 = 4*52 = 10010 = 011001002.
64 16410
101001002. = 5216 = 010100102. ,
2.
) = 011001001's = 010100101's. K +
101101101's = -127 + 32 + 16 +4 +2 = -7310.
. + 9
: +=0011001001's + 0010100101's = 0101101101's = 128 + 32 + 16 + 4 + 2 =
18210, .
- 142 -
9
- +(-). A=-4210 = 110101102's = -10010 = 100111002's.
- = 110101102's + 100111002's = 011100102's = 11410.
. (
1
0). 9 - =
1110101102's + 1100111002's = 1011100102's = -256 + 64 + 32 + 16 + 2 = -14210,
.
n
1 2
(-2n-1,2n-1) [-2n-1,2n-1) .
) , .
,
, .
.
1 0 1 1 0
1 0 1 0 1
0 0 1 1 0
0 1 1 1 1+
1 2 2 3 2 1
1 0 0 0 0 0 0
8
:
= -5610
= -11410
= 3F16
2 8
+, -, +.
1. .
2.
?
=-5610. 8 5610 001110002
-5610 2 110001112 + 1 =
- 143 -
9
110010002s.
= 100011102s.
= 3F16 = 001111112 = 001111112s = 6310. = 110000012s
+ : 11001000 + 10001110 = 01010110
.
( 1)
( 0).
+ = -5610 - 11410 = -17010, 010101102 = 8610.
. , (6) 0
(7) 1.
. n
2 [-2n-1, 2n-1),
-17010 9 .
= 110010002s + 110000012s = 100010012s = -11910 7 =1. T
= -5610 - 6310 = - 11910. 6 7=1 1 = 0
.
+ = 100011102s + 001111112s = 110011012s = -5110 7=0.
+ = -11410 + 6310 = -5110. 6 7=0 0 = 0
.
.
9
string :
Lucky 52
ASCII .
.
. 52
, 5 2. 5
2 .
ASCII :
4C 75 63 6B 79 20 35 32
- 144 -
9
10
= -1110 = 2310. , 2,
6 . o *.
?
Booth.
M ,
* recoded, .
, ?
= -1110. 1110 6 001011, =
1101012's. = 0101112's. ,
,
11 . :
1 1 0 1 0 1
0 1 0 1 1 1 x
1 1 1 1 1 1 1 0 1 0 1
1 1 1 1 1 1 0 1 0 1
1 1 1 1 1 0 1 0 1
1 1 1 0 1 0 1 +
1 1 1 0 0 0 0 0 0 1 1
T 4 3.
Booth (+1)(-1)(+1)00(-1).
(+1)(+2)(-1), 22i
=(+1)(+2)(-1) = (+1)24+(+2)*22+(-1)20 = 24+23-20.
* = * (24+23-20)= *24+*23-, :
1 1 1 0 1 0 1 0 0 0 0 *24
1 1 1 1 0 1 0 1 0 0 0 *23
0 0 0 0 0 0 0 1 0 1 1+ -
1 1 1 0 0 0 0 0 0 1 1
T 3. 2
33% .
- 145 -
9
11
1316.
) .
*B ?
) Booth. ?
% ?
) () Booth.
) 1316 = 1*36 + 3*6 + 1 = 5510 = 01101112.
1, .
5 . 4
.
) 0
. 0 1
(-1), 1 0 (+1)
0. :
0 1 1 0 1 1 1 0
{ { { { { { {
(+1)*26 + (-1)*24+ (+1)*23+ (-1)*20 = 64 16 + 8 1 = 5510.
4 3 .
25%.
( : 2
. (-1)*24
4
2 ).
)
Booth,
. ,
0
.
, .
Booth
- 146 -
9
.
:
0 1 1 0 1 1 1 0
{ { { { { { {
:
(+1)*22*3 + (-1)*22*2 + (+2)*22*1 + (-1)*22*0 = 64 16 + 8 1 = 5510.
4
3 .
12
.
.
.
= 0 A = 0 ,1 10
=+A
=10 ? 10
,
A=0,110 .
0,1.
2.
0,1
.
- 147 -
9
1. -1 = 2x0,1 = 0 =0,2
2. -2 = 2x0,2 = 0 =0,4
3. -3 = 2x0,4 = 0 =0,8
4. -4 = 2x0,8 = 1 =0,6
5. -5 = 2x0,6 = 1 =0,2
6. -6 = 2x0,2 = 0 =0,4
7. -7 = 2x0,4 = 0 =0,8
: 0,2, 0,4,
0,8, 0,6 0,2, 0,4, 0,8 .
, 0,1
.
1010. 1010,
.
.
13
compiler, interpreter, assembler.
. compilers
interpreters ,
assembler Assembly,
. compilers
() interpreters ()
,
- .
.
, -
.
. assembler
() ,
,
opcodes,
.
- 148 -
9
14
.
:
1. .
2. .
3. .
:
4. .
5. .
.
15
8192 .
;
( , GB) :
byte ;
K 32 ;
8192 , log2 8192 .
13 .
byte 8192 bytes = 8 *1024 bytes = 8 *210 bytes = 8 Kbytes. O
32 4 =22 bytes,
22 * 23 * 210 bytes = 32Kbytes.
16
(.. ADD,
SUB, ...), 2 3 operands, perand
.
(opcodes)
.
opcode.
- 149 -
9
. 2 3 operands
,
.
.
:
LDB 80, [90]
LDB 80, #90
, .
opcodes.
operand
.
2 2
.
3 .
opcodes (2 + 3)
:
z = log2 (2 + 3)
17
32 .
16 ,
?
(.. DD, LOAD, STORE, ).
, .
1.
?
2.
.
16 2 bytes.
232.
2 x 232 bytes = 23 x 230 bytes = 8 GB.
1.
- 150 -
9
x = log2 y = log2
. = x + y = log2 + log2.
, =25 =5, 5+3=8
.
2. 2x 2y, 2x+y
log2 () x+y log2 () log2 + log2 .
,
.
'
= log2(). = 7.
18
;
) :
PUSH A
PUSH D ) -:
ADD LOAD R1, A
PUSH B ADD R1, D
PUSH D LOAD R2, B
MUL ADD R2, C
POP E STORE R2, E
PUSH A ADD R1, E
MUL MUL R1, A
PUSH C STORE R1, E
ADD ) - :
PUSH E LOAD R1, C
ADD LOAD R2, A
POP E ADD R2, R2, R1
) : LOAD R1, B
LOAD A ADD R1, R2, R1
MUL C LOAD R2, D
ADD B MUL R2, R2, R1
STORE E ADD R1, R2, R1
LOAD D STORE R1, E
ADD E
STORE E
- 151 -
9
:
) )
( ) LOAD R1, A R1 = A
PUSH A A ADD R1, D R1 = A + D
PUSH D D, A LOAD R2, B R2 = B
ADD D+ ADD R2, C R2 = B + C
PUSH B B, D+ STORE R2, E E = B + C
PUSH D D, B, D+ ADD R1, E R1 = A+D+B+C
MUL D*B, D+A MUL R1, A R1 = A*(A+D+B+C)
POP E D+A STORE R1, E E = A*(A+D+B+C)
: E=D*B E = A * (A + D + B + C)
PUSH A A, D+
MUL A*(D+A)
PUSH C C, A*(D+A)
ADD C+A*(D+A) ) - :
PUSH E D*B, C+A*(D+A)
ADD D*B+C+A*(D+A) LOAD R1, C R1 = C
POP E KENO LOAD R2, A R2 = A
E = D*B+C+A*(A+D) ADD R2, R2, R1 R2 = A+C
LOAD R1, B R1 = B
) ADD R1, R2, R1 R1 = A+C+B
LOAD R2, D R2 = D
( = ) MUL R2, R2, R1 R2 = D*(A+C+B)
LOAD A =
ADD ADD R1, R2, R1 R1= D*(A+C+B)+
MUL C = A*C (A+C+B)
ADD B = B+A*C STORE R1, E E= D*(A+C+B)+
STORE E E = B+A*C (A+C+B)
LOAD D =D E = D * (A + C + B) + (A + C + B)
ADD E = D+B+A*C
STORE E E = D+B+A*C
E = D+B+A*C
19
/ Assembly.
:
.
.
.
, .
:
.
assembly.
=>
.
assembly
.
- 152 -
9
20
H LDB AL, [80] ( byte L
) ;
: [AL] = F3, [80] = F3A2, [F3A0] = AA, [F3A1] = AB,
[F3A2]=BA, [F3A3]=77 ( [] ) ;
H 80 81,
16 .
16 8 .
AL.
80 81
F3A2. F3A2,
. H L,
F3. [F3]=BA.
21
(labels) Assembly.
K
/ / .
,
. .
,
.
.
ssembly
,
Assembler
Assembly , .
:
.
(relocability).
,
.
- 153 -
9
22
Assembly byte
5F4016 5F8016.
LDB 80, 5F40[00]
STB 80, 5F80[00]
23
Assembly 16
.
5F2016 5F2116, 5F4016
5F4116,
5F8016 5F8116,
LDB 80, 5F20[00]
LDB 81, 5F40[00]
ADDB 80, 81
STB 80, 5F80[00]
LDB 80, 5F21[00]
LDB 81, 5F41[00]
ADDCB 80, 81
STB 80, 5F81[00]
2 .
bytes.
bytes
.
.
.
? manual
, LDB
.
- 154 -
9
24
Assembly byte 5F2016
0 5F2116. 1.
.
Assembly
.
0. 1.
carry
flag.
LDB 80, 5F20[00]
LDB 81, #01
SHRB 80, 81
JC ODD
LDB 90, #00
STB 90, 5F21[00]
SJMP END
[ODD] LDB 90, #01
STB 90, 5F21[00]
[END] BRK
O .
90 #01, 81 !
.
.
:
LDB 80, 5F20[00]
LDB 81, #01
SHRB 80, 81
JC ODD
LDB 81, #00
[ODD] STB 81, 5F21[00]
H
.
.
,
.
.
- 155 -
9
( spaghetti). O
, ,
.
LDB 80, 5F20[00]
NDB 80, #01
JNE ODD
LDB 80, #00
STB 80, 5F21[00]
SJMP END
[ODD] LDB 80, #01
STB 80, 5F21[00]
[END] BRK
O .
.
. AND
80 0 1 !
80 5F2116 :
LDB 80, 5F20[00]
NDB 80, #01
STB 80, 5F21[00]
BRK
25
Assembly byte
5F21 5F2A16
5F2016.
CLR 80
LDB 82, 5F21[80]
[LOOP] CMPB 82, 5F22[80]
JH SKIP
LDB 82, 5F22[80]
[SKIP] INC 80
CMP 80, #0009
JNE LOOP
STB 82, 5F20[00]
BRK
26
Assembly
LOAD
STORE.
- 156 -
9
.
80 90. :
PUSH 80
PUSH 90
POP 80
POP 90
27
Assembly 4
.
:
1. 4 .
2 1 ,
2 .
2. . 4
byte,
byte .
.
4 6000 6003H
80.
LDBSE 80, 6000[00]
LDBSE 82, 6001[00]
LDBSE 84, 6002[00]
LDBSE 86, 6003[00]
ADD 80, 82
ADD 84, 86
ADD 80, 84
LDB 82, #02
SHR 80, 82
- 157 -
9
28
byte 5F20. Assembly
5F21.
To
.
, 81
82 :
LDB 81, #01
LDB 80, 5F20[00]
CLRB 82
[AGAIN] CMPB 80, 81
JLT DONE
SUBB 80, 81
INCB 82
ADDB 81, #02
SJMP AGAIN
[DONE] STB 82, 5F21[00]
29
. Assembly.
. 1 .
.
1 byte
5F20 5F21 . To
82, 80.
LDB 80, 5F20[00]
LDB 81, 5F21[00]
CLRB 82
[LOOP] CMPB 80, 81
JLT END
INCB 82
SUBB 80, 81
SJMP LOOP
[END] BRK
- 158 -
9
30
Assembly
520 529.
5C00.
.
.
byte 0.
byte.
.
byte
, .
CLR 90
CLRB 86
LD 80, #520
[LOOP] LDB 82, [80]
DB 83, 82, #01
JE
LDBSE 84, 82
ADD 90, 84
INCB 86
[] INC 80
CMP 80, #5B2A
JNE LOOP
DIV 90, 86
STB 90, 5C00[00]
O .
90 . O 86
. 80
, 82. 83
82
. 84.
,
( ) .
31
5F20 byte b7b6b5b4b3b2b1b0. Z
Assembly nibbles byte,
, 5F20 byte b3b2b1b0b7b6b5b4.
- 159 -
9
.
.
LDB 80, 5F20[00]
LDB 81, 80
LDB 83, #04
SHRB 81, 83
SHLB 80, 83
ORB 80, 81
STB 80, 5F20[00]
( SHR)
.
LDB 80, 5F20[00]
LDB 81, 80
LDB 82, #04
SHR 80, 82
STB 80, 5F20[00]
32
Assembly (short
integers) bit 0, :
16-bit 82,
8-bit 85, ( bytes).
LDBZE 90, 85
ADD 90, 82
DEC 90
[LOOP] CMP 90, 82
JLT END
LDB 84, [82]
ANDB 84, #7F
STB 84, [82]+
SJMP LOOP
[END] BRK
- 160 -
9
33
5F2016 byte.
ssembly "110"
byte 5F2116.
LDB 91, #01
LDB 90, #00
LDB 80, 5F20[00]
LDB 81, #07
[LOOP] ANDB 82, 80, 81
CMPB 82, #06
JNE SKIP
INCB 90
[SKIP] SHRB 80, 91
CMPB 80, #06
JLT END
SJMP LOOP
[END] BRK
34
,
, . :
16-bit 82,
8-bit 85, ( bytes).
LDBZE 90, 85
ADD 90, 82
DEC 90
[LOOP] CMP 90, 82
JL END
PUSH [82]
PUSH [90]
POP [82]+
POP [90]
DEC 90
SJMP LOOP
[END] BRK
- 161 -
9
35
. 11001011, 3, 5
6 .
:
5F0016 16 bytes.
H (16-bit) 5F4016.
LD 7A, #0001
LD 80, 5F40[00]
CLR 90
[LOOP] SHR 80, 7A
JC SKIP
STB 7B, 5F00[90]
[SKIP] INC 90
CMPB 90, #10
JNE LOOP
BRK
36
ssembly bytes,
5F2016 5F2116.
5F2416.
.
82. zero extended
84.
LD 80, 5F20[00]
CMPB 80, 5F21[00]
JLT SWITCH
LDB 82, 5F21[00]
LDBZE 90, 82
LDBZE 84, 80
SJMP LOOP
[SWITCH] LDB 82, 80
LDBZE 84, 5F21[00]
LDBZE 90, 80
- 162 -
9
,
82 .
86 88.
[LOOP] LD 86, 84
DIVUB 86, 82
CMPB 87, #00
JNE NEXT
LD 88, 90
DIVUB 88, 82
CMPB 89, #00
JE FOUND
[NEXT] DECB 82
JE STOP
SJMP LOOP
[FOUND] STB 82, 5F24[00]
[STOP] BRK
37
Assembly
byte 5F2016 3910.
5F2216.
LDB 80, 5F20[00]
CMPB 80, #00
JE EXIT
LDB 81, #00
LDB 82, #27 (3910=001001112=2716)
LDB 83, #01
[LOOP] CMPB 80, 82
JGT DONE
SHLB 80, 83
INCB 81
SJMP LOOP
[DONE] STB 81, 5F22[00]
[EXIT] BRK
- 163 -
9
38
Assembly
5F2016 5F2916.
5F216 5F216.
LD 80, #5F20
[LOOP] LDB 82, [80]
ANDB 82, #01
JE FOUND
INC 80
CMP 80, #5F2A
JNE LOOP
SJMP SKIP
[FOUND] ST 80, 5F2A[00]
[SKIP] BRK
39
ssembly
C :
if then { code segment A} else {code segment B}
: !=, ==, >, <, <=, >=
for {i=0; i<MAXVALUE; i++} {code segment C}
80 82 .
if, ssembly :
CMP 80, 82
JXX SEGMENTA
[SEGMENTB] ...
Assembly code segment B
...
SJMP NEXT
[SEGMENTA] ...
Assembly code segment B
...
[NEXT]
- 164 -
9
JXX .
if statement,
:
!= JNE
a==b JE
a>b JGT
a<b JLT
a>=b JGE
a<=b JLE
o 80 i loop.
82 VALUE. VALUE 25510.
ssembly :
LDB 80, #00
[LOOP] ...
Assembly code segment C
...
INCB 80
CMPB 80, 82
JNE LOOP
40
.
Y :
1.
.
, .
,
.
.
,
.
- 165 -
9
2. .
,
.
41
: " DMA
byte - 1 ,
100 bytes 100 ".
.
DMA 100 .
1 byte /
100 , .
42
1h 21a
2h a 2 1b
1g 2g b
f1 f2 c2 c1
e2 d2
e1 d1
) 2 tracks 8 sectors .
sector 512 bytes sectors,
, :
2123 bytes ?
2848 bytes ?
640 bytes ?
) sectors ,
, . (..
"1 1c", sector
sector 1c ).
) 2123/(512) = 5 sectors, 2848/(512) = 6
sectors 640/(512) = 2 sectors.
- 166 -
9
sector , sectors
.
) ,
.
sectors.
sectors : 1, 2, 3, 4, 5 sectors
1a, 1b, 1c, 1d, 1e .
1, 2 3 sectors 1f, 1g 1h .
track 2. 1h
track.
4, 5 6, 1 2 sectors 2a, 2b, 2c
2d 2e .
( :
1h. 2 track
2b).
43
:
, +1.
2 n ,
.
.
:
0000
1111
4.
00000
11110
4.
. 2 n
[-2n-1, 2n-1), ,
-2n-1, .
- 167 -
9
44
ssembly 5F21
byte 5F20.
byte
. 80 byte
. 81
. 82 ,
1 .
.
81.
LDB 80, 5F20[00]
LDB 81, #01
LDB 82, #01
[LOOP] CMPB 80, #00
JE END
SHRB 80, 82
JNC LOOP
XORB 81, #01
SJMP LOOP
[END] STB 81, 5F21[00]
45
.
n 0 1.
)
? ( : .
: n ).
) (),
.
- 168 -
9
/ n, /
0 1.
n
0
1
0
1
0
1
0
1
n , n
.
.
,
.
46
? 5
? .
d ,
d+1.
5. 5
amming 5, 5
. 5 ,
, :
4 3 2 1 0
!4 !3 !2 !1 !0
- 169 -
9
( : 4, 3, 2, 1 0
, .
16 ).
47
) ?
) ?
) () ()
? .
) -7810 1, 8 .
(), .
) d ,
d+1.
3.
) c , 2c+1.
3.
) :
amming ,
/ . 3.
Hamming .
3.
modified
Hamming
.
modified amming . 4.
amming A . 4
modified
Hamming , 4.
3, x, y
z .
modified Hamming
(P PB).
- 170 -
9
1 x, y z 1 x, y z P PB
0 3 0 1
1 2 1 0
2 1 0 1
3 0 1 0
0 3 1 0
1 2 0 1
2 1 1 0
3 0 0 1
A 4 modified amming.
( :
,
1).
) -7810 1
7810,
010011102. -7810 = 101100011s. H
:
13 12 11 10 9 8 7 6 5 4 3 2 1
P M7 M6 M5 M4 C8 M3 M2 M1 C4 M0 C2 C1
1 0 1 1 0 0 0 1
C1=M0 M1 M3 M4 M6 = 0
C2=M0 M2 M3 M5 M6 = 0
C4=M1 M2 M3 M7 = 1
C8=M4 M5 M6 M7 = 1
P=M0 M1 M2 M3 M4 M5 M6 M7 C1 C2 C4 C8 = 0
:
13 12 11 10 9 8 7 6 5 4 3 2 1
P M7 M6 M 5 M 4 C8 M3 M 2 M1 C4 M0 C2 C1
0 1 0 1 1 1 0 0 0 1 1 0 0
48
) :
-> 0 0 0 1 1 0 1 0 1 1 0 1 <-
Hamming
.
, .
- 171 -
9
)
( ) :
-> 0 1 1 1 0 1 1 <-
) 1bit/ns
? ?
?
) amming
2 .
:
12 11 10 9 8 7 6 5 4 3 2 1
M7 M6 M5 M4 C8 M3 M2 M1 C4 M0 C2 C1
0 0 0 1 1 0 1 0 1 1 0 1
:
P1 = M 6 M 4 M 3 M 1 M 0 C 1 = 1
P2 = M 6 M 5 M 3 M 2 M 0 C 2 = 0
P4 = M 7 M 3 M 2 M 1 C4 = 0
P8 = M 7 M 6 M 5 M 4 C8 = 0
P8P4P2P1 = 0001 = 1 ,
:
12 11 10 9 8 7 6 5 4 3 2 1
M7 M6 M5 M4 C8 M3 M2 M1 C4 M0 C2 C1
0 0 0 1 1 0 1 0 1 1 0 0
,
M7M6M5M4M3M2M1M0=00010101.
- 172 -
9
) .
:
0 1 1
1 1 0
0 1 1
1 0 1
0 1 1
To ,
.
.
) 12 () 13 (14) ().
25 (26) 25 (26) ns. H 8
() 7 ().
15 / 25 = 60% (15/26 = 57,7%). () 8/12 = 75%
() 7/13 = 53,8% (7/14 = 50%).
.
49
11 .
: 0 1 1 1 1 0 0 1 0 1 0.
,
3 .
/ . ?
2c c+d+1, d=11,
c=4 4
.
:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
M10 M9 M8 M7 M6 M5 M4 C8 M3 M2 M1 C4 M0 C2 C1
0 1 1 1 1 0 0 1 0 1 0
- 173 -
9
C1=M0 M1 M3 M4 M6 M8 M10 = 0
C2=M0 M2 M5 M6 M9 M10 = 1
C4=M1 M2 M3 M7 M8 M9 M10 = 1
C8=M4 M5 M6 M7 M8 M9 M10 = 0
:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
M10 M9 M8 M7 M6 M5 M4 C8 M3 M2 M1 C4 M0 C2 C1
0 1 1 1 1 0 0 0 1 0 1 1 0 1 0
8
:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
M10 M9 M8 M7 M6 M5 M4 C8 M3 M2 M1 C4 M0 C2 C1
0 1 0 1 1 0 0 0 1 0 1 1 0 1 0
:
P1 = C1 M0 M1 M3 M4 M6 M8 M10 = 1
P2 = C2 M0 M2 M5 M6 M9 M10 = 0
P4 = C4 M1 M2 M3 M7 M8 M9 M10 = 1
P8 = C8 M4 M5 M6 M7 M8 M9 M10 = 1
P8P4P2P1 = 1101 = 1310 M8.
4
:
0 1 1 1 1
1 0 0 1 0
0 1 0 0 1
1 0 1 0 0
0. M8,
:
0 1 0 1 1
1 0 0 1 0
0 1 0 0 1
1 0 1 0 0
.
.
Hamming,
.
- 174 -
9
50
modified Hamming.
,
. .
( ) 0 0 1 1 1 1 0 1 1 0 ( )
,
0 0 1 1 1 1 0 1 1 = 0,
.
. :
9 8 7 6 5 4 3 2 1
M 4 C8 M3 M2 M1 C4 M0 C2 C1
0 0 1 1 1 1 0 1 1
C1, C1 0 1 3 4
.
.
51
half-duplex ,
. , 64
Hamming . ,
16
. 60%
40% , ,
.
64 c
2c64+c+1. A 7 .
, 64+7=71
64.
16 4x4 8 (9)
(4 4 ) ( 1
). , 16+8(9)=24(25)
16.
60%
0,6*64/71 + 0,4*16/24(25) = 0,8075 (0,7968) 80,75%(79,68%).
- 175 -
9
- 176 -