p klad v vojov ho diagramu adi e adi s dic mi et zci: adi s ta em

Transkript

p klad v vojov ho diagramu adi e adi s dic mi et zci: adi s ta em
pklad vvojovho diagramu adie
adi s dicmi etzci:
(viz UPS12 { 10)
20
!
ten instrukce
22
24
0
IPA1
-
???
M0
0
HOLD
M2
M3
MR
DB RI 1
READY
1
25
27
1
23
M4
INCIP
IPA0
I1B
1 M5
???
M1
HLDA
0
26
???
M9
konec
adi
NLP2000/01
1
5.12.1995 c A. Pluhek
adi s taem:
Dek.
READY
HOLD
r
r
r
-
Ovl.
Dek. . . . dekodr
STOPSET 2r
r
r
- HLDA
- MR
ta
NLP2000/01
..
jinak
adi
t
3
5.12.1995 c A. Pluhek
5.12.1995 c A. Pluhek
kdovn
podm
nek:
VP podm
nka
0
adr0
1
READY
2
HOLD
3
I1B
.
..
.
..
program
OZ
Ovl. . . . ovldn
tae
..
2
mikroprogramovan adi |
horizont
ln mikroprogramov
n:
r
r
r
Ovldn
tae:
ta podm
nka
ovldn
0 HOLD
SET 2 nastaven na 2
1 HOLD
STOP net
3 READY STOP net
4. I1B
SET 9 nastaven
na 9
.
.
..
adi
NLP2000/01
M0
M2
M1
M3
M4
M9
M5
.
..
20
21
22
23
24
25
26
27.
.
.
NLP2000/01
. . .
HLDA MR IPA0 IPA1 INCIP DRI1
.
..
?
?
0
1
0
0
?
?
..
.
.
..
?
?
0
0
1
0
?
?
..
.
adi
.
..
.
..
?
?
0
0
0
?
?
1
0
0
0
?
?
1
?
?
..
.
..
.
4
.
..
?
?
0
0
0
1
?
?
..
.
.
..
...
? ...
? ...
0 ...
0 ...
1 ...
0 ...
? ...
? ...
..
. ...
adr VP
.
..
.
..
22
??
24
22
24
26
2
?
0
2
1
3
..
.
..
.
??
??
?
?
5.12.1995 c A. Pluhek
Obvody pro posuv
shifters]
P.: posuv vpravo o 1 msto
pm kd | bez detekce ztr
ty pesnosti
logick
cyklick
arit cykl
0
dic sign
ly: 0
1
1
0
1
0
1
aritmetick
logick
cyklick
aritmetick
???
Obvody pro posuv - II.
P.: posuv vpravo o 2 msta
pm kd | s detekc ztr
ty pesnosti (ZP )
logick
cyklick aritmetick
P.: aritmetick posuv vlevo o 2 msta
pm kd | s detekc peplnn (PP )
P.: doplkov kd | aritmetick posuv o 2 msta
vlevo s detekc peplnn (PP ) a
vpravo bez detekce ztr
ty pesnosti
NLP2000/01
Aritmetika
1
barrel shifter
17.9.1998 c A. Pluhek
NLP2000/01
Aritmetika
2
17.9.1998 c A. Pluhek
trivi
ln posuvn registr
]
posuvn registr s paralelnm vstupem
NLP2000/01
Aritmetika
3
17.9.1998 c A. Pluhek
NLP2000/01
Aritmetika
4
21.9.1998 c A. Pluhek
pln staka
NOT{AND{OR
full adder]
NAND{NAND{NAND
pln staka plstaky
NOT{AND{OR
NAND{NAND{NAND
s = abp + abp + abp + abp Vyuv se nap. vztah:
q = ab + ap + bp
a ab ac = abc apod.
polovin staka (plstaka) half adder]
s = (a b) p
q = ab + p(a b)
G = ab ... penos se Generuje (vznik)
P = a b... penos Prochz
Vyuv se vztah
s = ab + ab = a b
q = ab
a ab = ab a ab b = ab
NLP2000/01
Aritmetika
5
16.10.1998 c A. Pluhek
Vhybka
Pozn.: Lze pout tak P = a + b
NLP2000/01
Aritmetika
6
Predikce penos
(3bitov
sekce)
Generate]
Propagate]
19.10.1998 c A. Pluhek
carry look-ahead]
Nen nakresleno:
G = G000 + P 000 G00 + P 000 P 00 G0
P = P 000 P 00 P 0
NLP2000/01
Aritmetika
7
19.10.1998 c A. Pluhek
NLP2000/01
Aritmetika
8
19.10.1998 c A. Pluhek
Destkov staka{odtaka
v dopl
kovm kdu
Inverzn kd
X
je-li X 0
I(X ) = jg
X j = Z ; " + X je-li X 0
nebo jg
X j = Z ; " ; jX j = Z ; " + X
I(X )
z = 2 jednikov doplnk
6
e
"
Z
- u -" z = 10 devtkov doplnk
1Z
2
eu
e
u
eu
u
; 21 Z 0
-X
ue
1
2
Z
; 12 Z < X < 21 Z
rozsah:
symetrick
zobrazen: nen jednoznan: kladn
a z
porn
nula
znamnko: slice v nejvym du
| jako u doplkovho kdu, ale:
kladn
a z
porn
nula
(odvozen jako u doplkovho kdu)
NLP2000/01
Aritmetika
9
19.10.1995 c A. Pluhek
NLP2000/01
Inverzn kd | II.
P.: z = 2 Z = 10002
X
+0
+1
+2
+3
;3
;2
;1
;0
0
0
0
0
1
1
1
1
I(X )
0
0
1
1
0
0
1
1
0 kladn
nula
1
0
1
0
1
0
1 z
porn
nula
P.: z = 10 Z = 100010
X
+0
+. 1
..
+499
;499
..
.
;1
;0
NLP2000/01
"=1
I(X )
"=1
0 0 0 kladn
nula
0 0. 1
..
4 9 9
5 0. 0
..
9 9 8
9 9 9 z
porn
nula
Aritmetika
11 9.10.1995 c A. Pluhek
Aritmetika
10 8.10.1996 c A. Pluhek
Stn v inverznm kdu
I(A)+I(B)
I(A + B)
A 0 B 0 A+B
A+B
A 0 B 0 A + B + Z -"
A+B
A0 B 0
A + B + Z-"
A 0 B 0 A + B + Z-"+ Z -" A + B + Z-"
A) + I(B)
I(A + B) = I(
I(A) + I(B) ; Z + "
Setou se obrazy a
penos z nejvyho du
se zavede do nejniho du
kruhov penos
peplnn: jako u doplkovho kdu
P.: z = 2 Z = 10002
"=1
Aritmetika
12
NLP2000/01
3.8.1999 c A. Pluhek
Nsoben | 1
Nsoben | 2
Nsoben nezpornch sel
Nsoben
modul
jednotka
A Z = zn + 1 " = z;m
B Y = z) + 1 = z;
A = A=" cel
sla
B = B=
A<Z
B<Y
B = P bi zi =) A B = P A bi zi
i =0
i =0
A bi = ? (jinak stn a posuvy)
A B = A B " A B = A B z;m ; A B < Z Y = zn + 1 + + 1
poty slic
ped rkou za rkou
A
n+1
m
B
+1
AB n+1+ +1 m+
n
soben ;! n
soben celch sel
dle: pouze nsoben celch sel !!!
NLP2000/01
Aritmetika
13 25.10.1995 c A. Pluhek
1 z = 2:
A bi = 0A
2 z 6= 2:
A0
A1
A2
A3
staka (destkov)
posuvy (destkov)
registr B: sestupn ta (aspo nejni d)
staka, obvod pro posuv a registr C1: o 1 d
ir (nelze vyut penos | nesta)
posuv a po zpracov
n 1 slice (po vynulovn
posledn slice v registru B)
Aritmetika
NLP2000/01
0
0
1
1
zn (A B ) = zn (A)
P.:
0
1
0
1
0
1
1
0
zn (B )
0 1 0 1 1 = 1 b1 1 0 b1
016+18+04+12+11=116;18+14+02;11
8 + 2 + 1 = 16 ; 8 + 4; 1
i 4 3 2 1 0
bi 0 1 0 1 1
i 1 b1 1 0 b1
= f (b ) = ?
6= f 0(b ) . . . konen automat
b ! 0 ! 0 & nic
1 ! b1 & bi + 1 := bi + 1 + 1
:::
b
bi ; 1
0 1 0 1
Q0 0 ;1 Q0 Q1 ) 0
i
i
i
i
i
i
i
Q1 1 0 Q0 Q1
po
ten stav: Q0
NLP2000/01
Aritmetika
3.8.1999 c A. Pluhek
z=2
1 Boothova metoda
slice: 0, 1 a ;1 | tzv. relativn slice
konvence: b1 = ;1
(obecn: ba = ;a)
abs. hodn.: nezporn sla
+
; ;
+
14
Nsoben sel v doplkovm kdu
jA Bj = jAj jBj
+
;
+
;
A
A+A
A+A+A
Nsoben v doplkovm kdu | 1
Nsoben sel v pmm kdu
absolutn hodnota:
+
+
;
;
..
.
0
? dvojkov ! destkov nsobika ?
Nsoben v pmm kdu
znamnko:
=
=
=
=
(UPS8 { 1)
15 15.10.1995 c A. Pluhek
NLP2000/01
Aritmetika
: : : stav Q0
: : : stav Q1
bi
0 1
0 ;1
1
1 0
b;1 = 0
16 25.10.1995 c A. Pluhek
Nsoben v doplkovm kdu | 2
Nsoben sel v doplkovm kdu
Nsoben v doplkovm kdu | 3
1 | II.
D(B) = P bDi 2i
modul: Y
i =0
ozname: Bb slo zskan pevodem obrazu D(B )
A
bD = 1 ) B < 0
automat skon ve stavu Q1 )
) nepietla se 1 v du +1
) Bb = D(B) ; Y = Y + B ; Y
) Bb = B
P.: cel
sla | 4 bity
B = ;5 = ;1012
D(B) = 1011
Bb = b110b1 = ;8 + 4 ; 1 = ;5
B
bD = 0 ) B 0
automat skon ve stavu Q0 )
) Bb = D(B) = B
) Bb = B
NLP2000/01
Aritmetika
17 25.10.1995 c A. Pluhek
Nsoben sel v doplkovm kdu
P.: A = ;112 B = ;0102 A B =1102
D(A) =101 D(B) =110 D0 (A B) =000 110
B = ;010 = 0b10
1 1 1 1 0 1 0 b1 0
000000
000000
0
000000
b1
00010
negace
1
hork
1
00011
0000
0
0001
pouit 4bitov staky
1 1 0 1 0 b1 0
0000
0000
0
00000
b1
0010
negace
1
hork
1
00011
0000
0
0001
NLP2000/01
Nsoben v doplkovm kdu | 4
Nsoben sel v doplkovm kdu
1 | p.
Aritmetika
18 23.10.1995 c A. Pluhek
Nsoben v doplkovm kdu | 5
1 | schma
Nsoben sel v doplkovm kdu
2
2 jin zpsob:
D(B) = P bDi 2i = B0 + B00,
i =0
;1
kde
B0 = bD 2 a B00 = P bDi 2i
i =0
0 ;! b10 0
pevede se pouze B 0 = 10
00 0 ;! 00 0
Tedy: Prvn bit D(B ) zleva (tzn. bD ) m
opanou
v
hu, tzn. v
hu ;2 (nikoliv v
hu +2 ).
Zvr:
NLP2000/01
Aritmetika
19 25.10.1995 c A. Pluhek
jako nez
porn
sla, ale v poslednm kroku
odt
n (0 nebo 1nsobku) msto pit
n.
P.: A = ;112 B = ;0102 A B =1102
D(A) =101 D(B) =110 ;! b110
1101110
0000
+ 0000
0
00000
+ 1101
1
11101
znam. rozen
b1 negace
;0010
1
hork 1
0001
NLP2000/01
Aritmetika
20 25.10.1995 c A. Pluhek
Dlen | 1
Dlen | 2
Dlen
A=B = ?
Dlen | nez
porn
dvojkov
lbitov
sla < 1
B 6= 0 !!!
nez
porn
sla | dvojkov
soustava
Z = 1 ) A < 1 B < 1
I.
| s n
vratem pes nulu
| bez n
vratu pes nulu
(UPS8 { 2)
(UPS8 { 3)
sch.
" = 1 ) cel
sla
AB = ?
A%B = ?
1 N
hrada dlitele: B B z k = B<<k ,
kde k je max. takov slo, e:
B zk A nebo B<<k nelze provst
0!C
&
k+1 krok# podle I.
zbytek := zbytek >>k
p. 1
2 $dlouh% registr pro dlence A:
dlenec A: l bit#
dlitel B : k bit#
dlka registru A: l + k
p. 2
II.
NLP2000/01
Aritmetika
21 8.10.1996 c A. Pluhek
' NLP2000/01
1 p. 1a
pozorov
n
111 : 011
) B << k = 110
) k=1
)
) 2 kroky
A= 111
B= 110
0 1 1 1
; 1 0 0 1 negace
1 hork 1
10001
+ ) 1
###
0010
; 1001
1
01100
; ) 0
###
0 1 0 0
N
0 1 1 0 nvrat
01010
###
010
0 1 , 0 | zbytek 1 0 | pod l
Aritmetika
22 25.10.1995 c A. Pluhek
Dlen | 4
dlen celch sel
NLP2000/01
podl . . . C
zbytek . . . A
Aritmetika
Dlen | 3
A = 111
B = 011
l+1 (pop. l+2) takt#
1. takt
0 | 1
dal takty 1 1 0
n
vrat
0 0 0
23 30.9.1997 c A. Pluhek
dlen celch sel
A = 111
B = 011
A= 111
###
0 1 1 1
; 1001
1
10001
###
A:= 0 0 1
...
0010
; 1001
1
01100
###
A:= 1 0 0
###
0 1 0 0
N 0110
0 1 0 1 0
###
010
0 1 ,0
NLP2000/01
1 p. 1b
) B << k = 110
) k=1
B= 110
)
) 2 kroky
negace
hork 1
+ ) 1
; )
0
nvrat
| zbytek
Aritmetika
1 0 | pod l
24 8.10.1996 c A. Pluhek
Dlen | 5
Dlen | 6
dlen celch sel
2 p. 2a
pozorov
n
111 : 011
;
0
+
;
N
000111
1 1 0 0 : :
1 : :
1110 : :
#### :
1101 :
0 0 1 1 :
100001
####
0001
1 1 0 0
1
01110
0011
10001
001
NLP2000/01
A = 111
;
0
: 0 011
negace
hork 1
; ) 0
+
+ ) 1
;
1
0
N
; )0
nvrat
| zbytek
Aritmetika
0 1 0 | pod l
25 30.9.1997 c A. Pluhek
Dlen | 7
dlen celch sel
' 1. takt
1 0 | 1
dal takty 1 0 1 0
n
vrat
0 1 0 0
NLP2000/01
dlen celch sel
Aritmetika
2
l (pop. l+1) takt#
podl . . . ni dy A
zbytek . . . vy dy A
27 24.10.1995 c A. Pluhek
1
2 p. 2b
B = 011
000111
: 0011
1 1 0 0 : :
negace
1 : : hork 1
1110 : : ;)0
......
11011?
0 0 1 1 : :
00001 : +) 1
......
0001??
1 1 0 0 : :
1 : :
1110 : : ;)
0
......
110???
0 1 1 0 : : nvrat
001? : :
######
001???
0 0 1 | zbytek
0 1 0 | pod l
NLP2000/01
Aritmetika
26 8.10.1996 c A. Pluhek
Bezpenostn kdy | 1
Bezpenostn kdy | 2
BEZPENOSTN KDY
chyby
?
a
-
pam,
cesta,
jednotka,
- d=
?
d 6= a
d=a
KANL
modely kanl (charakter chyb):
kanl symetrick: pravd(0!1)=pravd(1!0)
nesymetrick:
6=
s vmazem
kanl bez pamti | nezvisl chyby
s pamt | shluky chyb
9 8
P.: a = 1110 1111>
>3 chyby nebo
d = 1011 0111= <1 shluk dlky 4 anebo
# ##
> >
:
0101 1000 2 shluky dlky 1 a 2
ad
NLP2000/01
B. k.
1
kodr
dekodr
emn
am
cm
bm ?
dm
k K n KANL n D k
m m
s -syndrom
19.11.1995 c A. Pluh
ek
a = (a1 . . . ak )
..b = (b1 . . . bn) slovo, vektor, znak, . . .
.
(
(
kdov,
ppustn,
slova nekdov,
nebo
znaky neppustn.
ozn.: B = fkdov slovag
kd K : a!b
!!! nkdy pouze B !!!
P.:
b
a
K
K
1
2
00 000 111
01 011 001
10 101 010
11 110 100
NLP2000/01
B. k.
3
00000
01011
10101
11110
2
K
3.8.1999 c A. Pluh
ek
Bezpenostn kdy | 3
Bezpenostn kdy | 4
dvojkov kd: bi 2 f0 1g
blokov kd (n,k) | ureno n a k 9
k informan (rozhodovac) obsah, >
= shannon
mra informace, informan entropie> (nespr.
bit)
m = n ; k redundance, nadbytenost 9
k=n norma kdu, penosov rychlost, >
=
pomrn (relativn) mra informace> %
m=n pomrn (relativn)(redundance informan st
systematick kd: slovo kontroln st
nap. K1 , K3 | syst.
K2 | nesyst.
chyby: vektor chyb e = b c
c = b e () b = c e
zjiovn chyb: c 62 B
oprava chyb: c nahradit nejpodobnjm b
P.: K3 c = 1 0 1 1 1
62 f g
b = 1 0 1 0 1 = =) d=10
e = 00010
detekn kd | detekce (zjitn) chyb
samoopravn kd | korekce (oprava) chyb
bezpenostn kd | detekn / samoopravn kd
Hammingova vzdlenost:
1 slov b' a b": vzd(b',b") | poet odlinch bit
NLP2000/01
B. k.
3
19.11.1995 c A. Pluh
ek
P.:
2
3 3 4
4 3
3
3
K
kdu
| kdov vzdlenost
| kvzd = min vzd(b',b")
nap. pro K3 : kvzd= 3
vha slova | poet jedniek
P.:
NLP2000/01
3
K
0 3 3 4
vzd(b',b") = vha(b'b")
B. k.
4
22.11.1995 c A. Pluh
ek
Bezpenostn kdy | 5
Bezpenostn kdy | 6
geometrick interpretace vzdlenosti:
dch < kvzd
detekce:
dch . . . detekovateln chyby
dch + och < kvzd
oprava:
och . . . opraviteln chyby
och dch
P.:
kvzd= 4
dch 3 2 D | detekce
och 0 1
(bez korekce)
1 ch.
2 ch.
3 ch.
4 ch.
K K | korekce
D N | nic
# # | patn
korekce
N
D
D
D
N
kvzd
SED
j j #
j j D etecting
j # C orrecting
# E rror
S ingle
D ouble
T riple
Q uadruple
NLP2000/01
B. k.
5
21.11.2000 c A. Pluh
ek
NLP2000/01
2
3
4
..
.
6
B. k.
Bezpenostn kdy | 7
24.11.1995 c A. Pluh
ek
jeden Hammingv kd | 1
Jednoduch bezpenostn kdy
opakovac kd (n, 1):
1
b 1 = . . . = b n = a1
kvzd = n
velk redundance =) mal informan obsah
jeden Hammingv kd
2 koktav kd (jk, k):
jkrt se opakuje tot$ (k bit)
velk redundance =) mal informan obsah
3 parita (k+1, k):
b = (a(1 . . . ak , p)
sud: p = a a
parita lich: p = a1 ak 1
1
k
minimln redundance pouze detekce 1 chyby
kvzd = 3 =
b1 b2 b3
a1 a2 a3
B. k.
7
4.5.1998 c A. Pluh
ek
| kd (7,4)
p1 = a1 a2 a4
p2 = a1 a3 a4
p3 = a2 a3 a4
)
4 p
n a podln parita:
P.:
k = 4 = 22
a1 a2 p1
a1 a2 p1
a3 a4 p2
a3 a4 p2
p3 p4
p3 p4 p5
kvzd = 3
kvzd = 4
kd (8,4)
kd (9,4)
NLP2000/01
SED
SEC nebo DED
SEC-DED nebo TED
SEC (nebo DED)
b4
a4
b5
p1
b6
p2
b7
p3
b1 b2 b3 b4 b5 b6 b7
p1 p2 a1 p3 a2 a3 a4
x
NLP2000/01
x
B. k.
x
x
x
x
x
8
x
x
x
x
x
28.11.1995 c A. Pluh
ek
jeden Hammingv kd | 2
b1 = a1
b2 = a1
b3 = a1
b4 = a2
b5 = a2
b6 = a3
b7 = a4
b1 = b3
b2 = b3
b4 = b5
$dn chyba = ci = bi
nap.: c1 = c3 c5 c7
= c1 c3 c5 c7 = 0
jeden Hammingv kd | 3
a2 a4
a3 a4
a3 a4
b=a G
01 1 1 0 0 0 01
B 1 0 0 1 1 0 0 CC
G=B
@0 1 0 1 0 1 0A
1 1 0 1 0 0 1
generovac matice
b5 b7
b6 b7
b6 b7
s = c HT
00 0 0 1 1 1 11
H=@ 0 1 1 0 0 1 1 A
)
)
1 0 1 0 1 0 1
kontroln matice
e
0000000
1000000
..
.
0000010
0000001
s3 = c1 c3 c5 c7
s2 = c2 c3 c6 c7
s1 = c4 c5 c6 c7
NLP2000/01
B. k.
9
s
000
001
..
.
110
111
28.11.1995 c A. Pluh
ek
M vbec smysl pou$vat bezpenostn kdy ???
..
.
SED:
SEC:
..
.
polovina chyb
???
n
n. z 2 ; 1 chyb ???
..
???
Pravdpodobnost:
P . . . pravdpodobnost vskytu
bitu
;n chybnho
i
n;i
n bit i chybnch:
P
(
1
; P)
i
P
jinak:
P.:
P = 10;9
32b / 1sec
njak chyba: 32 10;9
...
31 sec
SED (33,32):
njak chyba: 33 10;9
sud poet chyb: 5,3 10;16 . . . 61,3 rok
SEC (38,32):
njak chyba: 38 10;9
neopraviteln chyba: 7 10;16 . . . 46,0 rok
NLP2000/01
B. k.
11
25.11.1995 c A. Pluh
ek
*dky ka$d z matic tvo bzi tzv. vektorovho neboli
linernho prostoru.
domc kol:
Najdte generovac a kontroln
matici pro dve uveden kdy! Pro lichou paritu a
pro kd K2 by se Vm to vak nemlo podait.
NLP2000/01
B. k.
10
18.9.1998 c A. Pluh
ek
linern kdy | 1
linern kdy | 2
skalrn
souin vektor u a v:
(u1 . . . un ) (v1 . . . vn) = u1 v1 + + un vn
p: 01011 11101 = 0+1+0+0+1 = 0
ortogonln
vektory: u ? v , u v = 0
p: 01011 ? 11101
vektorov / linern prostor
mnoina vech slov dvojkovho blokovho kdu
& operace: vektorov neboli linern
prostor V
se skalrn
m souinem
nad tlesem GT(2)
Galoisovo (konen) 2prvkov tleso
GT(2)
0 1
+ 0 1
eld]
0 0 1
0 0 0
1 1 0
1 0 1
XOR
AND
x+t=y , x=y+t =) odtn stn
t 2 GT(2) skalr
v = (v1 . . . vn ) 2 V vektor
operace:
souet vektor | Abelova (komutativn) grupa
nsoben vektoru skalrem: 0 v = 0
Podprostor W prostoru V :
uzavenost
Podprostor W je sm prostorem.
Vechny linern
kombinace vektor u : : : v
tvo
vektorov (linern) prostor.
Vektory linern nezvisl =) bze (prostoru)
Stejn poet vektor kad bze ! dimenze
f0,1g
ortogonln doplnk U k prostoru V : U ?V
u 2 U () (8u 2 U ) (8v 2 V ) u?v
U je prostor, tzv. nulov prostor prostoru V
U ?V
1v = v
asociativn zkon: (s t) v = s (t v)
distributivn zkony: (s + t) v = s v + t v
t (u + v) = t u + t v
NLP2000/01
Lin. k.
1
18.9.1998 c A. Pluh
ek
()
NLP2000/01
Lin. k.
b = a G = a1 g1 ak gk
gi = it dek G
b = lin. komb. g1 : : : gk
vechna b = a G ! linern
prostor
bze: g1 : : : gk
dky G lin. nezvisl
(Pro?)
G ! prostor V
H ! prostor U (= V ?U
dky H lin. nezvisl
(Pro?)
G HT = 0
=) m + k = n
c 2 V () (8u 2 U ) c u = 0
c 2 V () c HT = 0
G: k n, H: m n
3
2
3.8.1999 c A. Pluh
ek
linern kdy | 4
Linern kdy
kdov slova tvo
linern
prostor
popis linern
ch kd: matice
grupov kdy | dvojkov (?) linern
kdy
Lin. k.
V ?U
ortogonalita prostor () ortogonalita bz
v 2 V () (8u 2 U ) u?v
linern kdy | 3
NLP2000/01
W V
23.11.1995 c A. Pluh
ek
b HT =a G HT =0
b=aG
s = c HT
c=b + e
T
s = e H =) syndrom zvis
pouze na chyb
chyba
v pozic
ch
i
iaj
..
.
sT
e
0. . . 010. . . 0
i-t sloupecH
+ j -t
0. . . 010. . . 010. . . 0 i-t
sloupecH
..
..
.
.
= poet lin. nezvislch sloupc matice H
dch kvzd
1 1
2
2 2
3
kvzd= + 1
3.
..
3.
..
NLP2000/01
4.
..
Lin. k.
4
25.11.1995 c A. Pluh
ek
linern kdy | 5
G = (Ik , F)
H = (FT , Im )
linern kdy | 6
systematick kd
Ij . . . jednotkov matice j j
elementrn
operace s dky:
zmna dk
piten
linern
kombinace jinch dk
(nsoben dku nenulovm skalrem)
G ! G' t mnoina kdovch slov
H ! H' jin (vyhovuj
c
) kontroln
matice
!!! syndromy maj
jin vznam !!!
G = H = ?
H = G = ?
Nelze-li *:
NLP2000/01
elementrn
operace +
+ ve uveden vztahy
permutace sloupc
nalezen
matice
opan permutace sloupc
Lin. k.
5
Hammingv kd (7,4) | trochu jin
6.12.1995 c A. Pluh
ek
NLP2000/01
Lin. k.
6
linern kdy | 8
kodr
dekodr
0 0 0 1
Lin. k.
elemententrn
operace: 1 + 2 ! 1'
3 + 1' ! 3'
2 + 3' ! 2'
00 1 1 1 1 0 01
H' = @ 1 0 1 1 0 1 0 A
1 1 0 1 0 0 1
01 0 0 0 0 1 11
B 0 1 0 0 1 0 1 CC
G=B
@0 0 1 0 1 1 0A
0 0 0 1 1 1 1
linern kdy | 7
01 0 0 0
B0 1 0 0
G=B
@0 0 1 0
NLP2000/01
P.:
oprava 1 chyby =) vzjemn rzn sloupce H:
00 0 0 1 1 1 11
H=@ 0 1 1 0 0 1 1 A
1 0 1 0 1 0 1
7
0
1
1
1
1
0
1
1
1
1
0
1
1
CC
A
27.11.1995 c A. Pluh
ek
24.11.1995 c A. Pluh
ek
00 0 0 1 1 1 11
H=@ 0 1 1 0 0 1 1 A
1 0 1 0 1 0 1
NLP2000/01
Lin. k.
8
27.11.1995 c A. Pluh
ek
linern kdy | 9
Hammingovy kdy
kdov vzdlenost:
vzd(b',b") = vha(b' b")
lin. kd =) b' b" je kdov slovo
lin. kd =) kvzd = minim. vha 6= 0
lin. kd K | lich kdov vzdlenost
lin. kd K | kd K + parita (sud)
kvzd(K) = kvzd(K) + 1
P.:
Hamm. k.: kvzd = 3
Hamm. k. + parita: kvzd = 4
#
roz
en Hammingv kd
P.:
NLP2000/01
p
n a podln parita
analogicky kvzd: 3 ! 4
Lin. k.
9
perfektn
kdy SEC | vechny syndromy vyuity
kvzd = 3
n = 2m ; 1 k = n ; m
m 2
3
4
5
...
kd (3,1) (7,4) (15,11) (31,26) . . .
odvozen kdy: men
k =) n% nap. kdy (12,8),
(21,16), (38,32), . . .
rozen Hammingovy kdy
kvaziperfektn
kdy SEC{DED | vechny syndromy
vyuity
00 0 0 0 1 1 1 11
P.:
B 0 0 1 1 0 0 1 1 CC
H=B
@0 1 0 1 0 1 0 1A
1 1 1 1 1 1 1 1
s = x x x 1 =) 1 chyba
s = x x x 0 =) 2 chyby (krom s = 0000)
(dn chyba)
obecn: kvzd = 4 n = 2m ; 1 k = n ; m
m 3
4
5
6
...
kd (4,1) (8,4) (16,11) (32,26) . . .
6.12.1995 c A. Pluh
ek
NLP2000/01
Lin. k.
10
18.9.1998 c A. Pluh
ek
Kdy RM | 1
Kdy RM | 2
kdy RM
(Reed { Muller)
parametry: a jlenn logick souiny promnnch (pomocnch)
P.:
=3
j
souiny
0G 0 1 1 1 1 1 1 1 1 1
10000 1111
1G 0 0 1 1 0 0 1 1 0101 0101 #
20000 0011
2G 0 0 0 0 0 1 0 1
#
0 0 0 1 0 0 0 1 #
3G 3 0 0 0 0 0 0 0 1
#
G
0
1
2
0 00G1
0 G 1 G @1 G A
G
2G
P.:
kvzd = 2 ; n = 2
k = poet dk G
NLP2000/01
Lin. k.
11
9.11.2000
c A. Pluh
ek
NLP2000/01
RM (1, 3)
= 3, = 1, kvzd = 4
n = 8, k = 4, kd (8,4) | SEC-DED
01 1 1 1 1 1 1 11
B 0 0 0 0 1 1 1 1 CC
G=B
@0 0 1 1 0 0 1 1A
0 1 0 1 0 1 0 1
b1 = a1
b2 = a1 + a4
b3 = a1 + a3
b4 = a1 + a3 + a4
b5 = a1 + a2
b6 = a1 + a2 + a4
b7 = a1 + a2 + a3
b8 = a1 + a2 + a3 + a4
a4 = b1 + b2 = b3 + b4 =
= b5 + b6 = b7 + b8
a3 = b1 + b3 = b2 + b4 =
= b5 + b7 = b6 + b8
a2 = b1 + b5 = b2 + b6 =
= b3 + b7 = b4 + b8
Lin. k.
Kdy RM | 3
P.:
a = (a1 a2 a3 a4 ) = (0a1 a), kde
0 a = (a ) a 1 a = (a a a )
1
2 3 4
b = a G = ( a a) b = 0a 0G = b
0
0G 1
;
1
0
a 1G
00
b = (b1 b2 : : : b8 ) = a1 (11. . . 1)
b = (b1 b2 : : : b8 ) = (a1 a1 : : : a1 )
0
0
0
0
0
0
0
0
a1 = b1 = b2 =
0
NLP2000/01
0
Lin. k.
= b8
0
13
8.11.2000 c A. Pluh
ek
=2
0 0G 1
b = a G = (0 a1 a2 a) @ 1 G A =
2G
0
1
1
2
2
0
= a G+ a G+ a G
1. Urit 2 a.
2. Urit b = b
3. Urit 1 a.
4. Urit b = b
5. Urit 0 a = a1 .
= 0a 0 G +1 a 1 G
G
12
Kdy RM | 4
pklad { pokraovn
0 1
1
1
2
1
2
3
8.11.2000 c A. Pluh
ek
NLP2000/01
;
;
0
a 2 G.
2
a 1 G.
1
Nkter kdy RM
4
5
5
6
6
6
Lin. k.
n
16
32
32
64
64
64
k
5
6
16
7
22
42
14
m
11
26
16
57
42
22
kvzd
8
16
8
32
16
8
9.11.2000 c A. Pluh
ek
Kdy BCH | 1
Kdy BCH | 2
Kdy BCH
Konen (Galoisova) tlesa
P.:
Pro kad prvo
slo p a pro kad pirozen j > 0
existuje prv jedno konen tleso GT(pj ), kter m
pj prvk.
!!!
Jin konen tlesa neexistuj
.
P.: GT(4) = GT(22 )
}
~
|
nap.:
} ...
~ ...
}~|
|
}}}}}
|
~}~|
}~
|}|~
~}
}~|
| + ~ = nebo | ~ = |
nula (} = 0)
jednika (~ = 1)
~
}
|
NLP2000/01
i
0
1
2
3
00
Lin. k.
15
8.11.2000 c A. Pluh
ek
00
P.: GT(16) = GT(24 )
V kadm konenm tlese existuje primitivn
prvek
, tzn. takov prvek , e (8 6= 0) (9i) = i
P.: = |
=
1
|=| =|
= 1 = = |2 = | |
| = 2 = ~ = |3 = | | |
~ = 3 = 0
00 01 10 11
00 00 01 10 11
00 00 00 00 00
01 01 00 11 10
01 00 01 10 11
10 10 11 00 01
10 00 10 11 01
11 11 10 01 00
11 00 11 01 10
= 10 =
(lze vak pout tak =11)
1
= 10
2 = 11
3 = 01 = 0
S
tn
: XOR
nap.: 10+11=01
Nsoben
: i j = i + j , nap.
10 11 = 1 2 = 3 = 0 =
= 01
NLP2000/01
i
0001
0010
0100
1000
i
4
5
6
7
Lin. k.
Kdy BCH | 3
(Bose { Chaudhuri { Hoquenghem)
(zjednodueno)
kdy (n,k) pro opravu t chyb (tj. kd t EC)
n = 2
; 1 a m = n ; k
je primitivn
prvek tlesa GT(2m )
H = 1 2 n
kvzd = 3 . . . SEC
3 6
2 3nn
kvzd = 5 . . . DEC
H= 1
0 5 10 5n 1
H = @ 3 6 3n A
kvzd = 7 . . . TEC
1 2 n
..
.
P.: n = 31 =) GT(32) =) 5bitov prvky
kvzd = 3 =) m = 5 =) kd (31,26)
kvzd = 5 =) m = 10 =) kd (31,21)
atd.
P.:
17
i
0011
0110
1100
1011
8
9
10
11
i
0101
1010
0111
1110
16
i
12
13
14
15
i
1111
1101
1001
0001
8.11.2000 c A. Pluh
ek
8.11.2000 c A. Pluh
ek
01 1 1 1
BB 0 1 0 1
BB 0 0 1 1
B0 0 0 1
H=B
BB 0 0 1 0
BB 0 1 0 0
@
kd(15,7)
0111
0010
0001
1000
0110
1101
1001 1010
0001 0011
Rozen kdy BCH
parita nav
c
6
8
10
12
14
16
22
24
28
32
NLP2000/01
1011
1001
1000
1100
1011
0111
1111
0101
1 1 01
0 1 0C
CC
1 1 0C
0 1 1C
C
1 1 0C
C
1 0 0C
C
0 0 0A
111
oprava t chyb detekce t+1 chyb
(srov. rozen Hammingv kd)
Nkter rozen kdy BCH
)
kvzd n
Pozn.: Uveden kdov vzdlenost je tzv. zaruen.
Skuten kdov vzdlenost me bt vt
.
Lin. k.
i
Kdy BCH | 4
kdy BCH
NLP2000/01
0
+}~|
}
~
|
+ 00 01 10 11
k
n
16 7 32
16 5 (!) 32
Lin. k.
k
n
64
64
64
32 11 (!) 64
64
32 6 (!) 64
64
64
64
64
18
21
16
k
51
45
39
36 (!)
30 (!)
24 (!)
18 (!)
16 (!)
10 (!)
7 (!)
10.11.2000 c A. Pluh
ek
Mnoholeny nad tlesem GT(2) | 1
Mnoholeny nad tlesem GT(2) | 2
Nsoben mnoholen
Kdy a mnoholeny
mnoholeny nad tlesem GT(2):
C (x) = cn;1xn;1 + + c1x + c0
ci 2 GT(2) x 2 ? !!!
P.:
Mnoholeny stupn < n:
vektorov/linern prostor
(bez skalrnho souinu)
izomorfn s prostorem uspodanch ntic:
cn;1xn;1 + + c0 (cn;1 : : : c0)
p.:
n=7
x5+ x3 + x + 1 0101011
izomore | jen: souet & nsoben skalrem
P.: B (x) = G(x)A(x) = (x3+x+1) (x3+x)
1x6+0x5+1x4+1x3
G(x)x3
5
4
3
2
0x +0x +0x +0x
G(x)0
4
3
2
1x +0x +1x +1x
G(x)x
0x3+0x2+0x+0 G(x)0
1x6+0x5+0x4+1x3+1x2+1x+0 = B (x)
zkrcen zpis: 1 0 1 1 1 0 1 0
1011
0000
1011
0000
1001110 b=ga
(zde neoznauje skalrn souin!)
Mnoholeny:
nsoben a dlen mnoholen | obv. postup
analogie s okruhem celch sel | dlitelnost
NLP2002/3
Cykl. k.
1
15.11.2000 c A. Pluhek
NLP2002/3
Mnoholeny nad tlesem GT(2) | 3
+
zbytek C (x) % G(x) = x+1
podl C (x) G(x) = x3+x+1
zkrcen zpis: 6 5 4 3 2 1 0
C (x)
1000110
G(x)
1011
C (x) % G(x) 1011
C (x) G(x) 011
NLP2002/3
Cykl. k.
3
2
20.11.2002 c A. Pluhek
Mnoholeny nad tlesem GT(2) | 4
Dlen mnoholen
P.: C (x) = x6+x2+x G(x) = x3+x+1
1x6+0x5+0x4+0x3+1x2+1x+0 =)
1x6+0x5+1x4+1x3
0x5+1x4+1x3+1x2
=)
5
4
3
2
+
+
+
0x 0x 0x 0x
1x4+1x3+1x2+1x =)
1x4+0x3+1x2+1x
1x3+0x2+0x+0 =)
1x3+0x2+1x+1
0x2+1x+1
Cykl. k.
Dlen mnoholen
P.:
1x3
-
C (x) : G(x)
C (x) = x6+x2+x = c6 x6 + + c0
G(x) = x3+x+1 = g3 x3 + + g0
1000
1011
0 0 1 1
000
0 1 1
10
0 1
1
0x2
-
1x
1
-
+
0
2
1 1 0:1011=1011
#jj
1 j j
0#j
11j
11#
000
011
011
(
20.11.2002 c A. Pluhek
NLP2002/3
Cykl. k.
4
20.11.2002 c A. Pluhek
Kdy generovan mnoholenem | 1
Mnoholeny nad tlesem GT(2) | 5
Dlitelnost mnoholen
deg P (x) | stupe mnoholenu P (x)
deg 0 = ;1
deg (P (x)G(x)) = deg P (x) + deg G(x)
G(x) 6= 0
deg (P (x)%G(x)) < deg G(x)
deg (P (x)G(x)) = deg P (x) ; deg G(x)
P (x)%G(x) = 0 () G(x) j P (x)
6=
Kdy generovan mnoholenem
(?)
() G(x) 6 j P (x)
G(x) j P (x) () 9Y (x) P (x) = G(x)Y (x)
G(x) je dlitelem P (x)
nerozloiteln (ireducibiln) mnoholen P (x):
nem jin dlitele ne 1 a P (x)
pro GT(2)!
obdoba prvosel
rozklad na prvoinitele je jednoznan
prvoinitel = nerozloiteln mnoholen
P.: x7 + 1 = (x3+x2+1) (x3+x+1) (x+1)
NLP2002/3
Cykl. k.
5
19.3.1998 c A. Pluhek
G(x) = xm + gm;1xm;1 + . . . + g1x + 1
m = deg G(x) > 0
G(x) . . . generovac mnoholen
A(x) a . . . k bit =) k;1 deg A(x)
B(x) = A(x) G(x)
B(x) b . . . n bit =) n;1 deg B(x)
n=k+m
m = deg G(x) . . . redundance
P.: G(x) = x3+x+1 a = 0101 b = 010 0111
(viz p. na nsoben mnoholen)
Pozorovn: x j G(x) =) B (x) = B (x) x
=) b = x. . . x0
Zvr: mus platit x 6 j G(x)
0
NLP2002/3
Kdy generovan mnoholenem | 2
Pozorovn:
A(x) = ak;1 xk;1 + + a0
A(x) G(x) = ak;1 G(x) xk;1+. . . +a0 G(x)
G(x) xk;1, . . . , G(x) | linern nezvisl
| bze linernho prostoru
A(x) G(x) | v"echny linern kombinace
Zvr:
P.:
K#d generovan mnoholenem je linern
0
B
G= B
B@
gm gm;1 . .. 0 1
0 gm . .. 0 C
CC
..
..
.
.
... A
0
0 . .. g0
G(x) =0 x3+x+1
1
1 0 1 1 0 0 0
G= B
@0 1 0 1 1 0 0C
A
0 0 1 0 1 1 0
0 0 0 1 0 1 1
kol: Ovte, e kdy generovan mnoholenem G(x) a
matic G jsou stejn. Najdte kontroln matici H a vimnte si, e je to matice Hammingova kdu (7,4).
NLP2002/3
Cykl. k.
7
4.5.1998 c A. Pluhek
6
Cykl. k.
13.11.2000 c A. Pluhek
Kdy generovan mnoholenem | 3
B(x) b . . . vyslan slovo
C (x) c . . . pijat slovo
E(x) e . . . chybov mnoholen
C (x) = B(x) + E(x)
S(x) = C (x) % G(x) . . . syndrom
B(x) % G(x) = 0
S(x) = E(x) % G(x)
syndrom zvis pouze na chybch
E(x) = E (x) xj x 6 j E (x)
E(x) . . . shluk chyb d lky l = (deg E (x))+1
P.: E (x) 0101100 . . . shluk chyb d lky 4
E (x) 01011 j = 2
deg E (x) = 3
detekce chyb: S (x) = E (x) % G(x) = 0 ?
x 6 j G(x) =) xj nem vliv
E (x) % G(x) = 0 ?
E (x) =
6 0 & deg E (x) < deg G(x) =)
=) E (x) % G(x) =
6 0, tedy:
detekce shluk chyb d lky l m = deg G(x)
P.: G(x) = x16+1 =) l 16
0
0
0
0
0
0
0
0
0
NLP2002/3
Cykl. k.
8
19.3.1998 c A. Pluhek
Cyklick kdy | 1
Cyklick kdy | 2
Cyklick kdy
(1) linern k#dy
(2) cyklick posuv k#dov ho slova ! k#dov slovo
P.: K1 | cyklick
(viz B. k. 2)
K2 | nespluje (1)
K3 | nespluje (2)
dle pedp.: G(x) j (xn ; 1), tzn.:
G(x) H (x) = xn ; 1
9H (x)
H (x) | kontroln mnoholen
(m podstatn men vznam ne kontroln matice)
Pozorovn:
B(x) = bn;1 xn;1 + + b0 = G(x) A(x)
cykl. pos. vlevo:
B (x) = B(x) x ; bn;1 xn + bn;1 =
= B (x) x ; bn;1 (xn ; 1) =
= A(x) G(x) x ; bn;1 G(x) H (x) =
= %A(x) x + bn;1 H (x)] G(x)
Zvr: Mnoholen G(x) generuje cyklick k#d
P.: G(x) = x3+x+1 G(x) j (x7 ; 1)
k#d (7,4) generovan G(x) je cyklick
K | cyklick k#d =) 9 K':
k#dy K a K': stejn mnoina k#dovch slov
k#d K': generovn mnoholenem G(x)
G(x) =6 0 . . . nejni" stupe
P.:
k#d K1 je cyklick
(viz B. k. 2)
k#d K1 ':
G(x) = x + 1
t mnoina k#dovch slov:
f 000, 011, 101, 110 g
0
NLP2002/3
Cykl. k.
9
18.11.2000 c A. Pluhek
Cykl. k.
10
13.11.2000 c A. Pluhek
Cyklick kdy | 3
Cyklick kdy | 4
Systematick cyklick kdy
Nkter cyklick kdy:
B(x) = A(x) G(x) | k#d nen systematick
(existuj vjimky)
Systematick k#d:
B(x) = A(x) xm + A(x) xm%G(x) ,
kde m = deg G(x)
P.: G(x) = x3+x+1
A(x)
0101
3
A(x) x
0101 000
3
A(x) x % G(x) 100
B(x)
0101 100
!!! Mnoina k#dovch slov je u obou k#d stejn !!!
NLP2002/3
NLP2002/3
Cykl. k.
11
15.11.2000 c A. Pluhek
G(x) = x + 1
B(x) = G(x) A(x)
x = 1 =) G(x) = G(1) = 0 =) B(x) = 0
=) B (x) = bn ; 1 + + b0 = 0
=) parita (sud)
G(x) = xm + 1
xm 1 mod G(x)
...
kongruence
stejn zbytek po dlen
C (x) = Cj (x) (xm)j + + C0(x) (xm)0
C (x) Cj (x) + + C0(x) mod G(x)
=) pod ln parita mtic bit (sud)
Hammingovy k#dy
nap.:
3
G(x) = x + x + 1 k#d (7,4)
G(x) = x4 + x + 1 k#d (15,11)
G(x) = x5 + x2 + 1 k#d (31,26)
BCH k#dy (viz linern kdy)
RS k#dy
Reed { Solomon
Fireovy k#dy
NLP2002/3
Cykl. k.
12
17.11.2000 c A. Pluhek
Fireovy kdy | 1
Fireovy kdy | 2
d r mnoholenu P (x) je nejmen" takov r, e
P (x) j (xr ; 1)
P.: d x3+x+1 je roven 7 (ale stupe je roven 3)
Fireovy kdy
x ; 1 j x ; 1 () i j j
shluky chyb E1 (x) a E2(x)
E1(x) = E (x) x
x 6 j E (x)
E2(x) = E (x) x
x 6 j E (x)
deg E (x) + deg E (x) < q
ji
otzka: Kdy E1 (x) E2 (x)
mod xq +1
vahy: E1(x) ; E2 (x) 0
mod xq +1
(E (x)+E (x) xj ; i ) xi 0 mod xq +1
xi neobsahuje prvoinitele xq +1
E (x)+E (x) xj ; i 0
mod xq +1
odpov*: Prv kdy E (x) = E (x) a q j j ; i
E (x) = E (x) = E (x)
deg E (x) < deg P (x) a P (x) m d r
otzka: Kdy E (x) (xj ; i + 1) 0 mod P (x)
odpov*: Prv kdy r j j ; i
i
j
i
0
0
j
00
0
00
00
0
00
0
00
0
0
00
P (x) . . . nerozloiteln mnoholen du r
Q(x) = xq+1 ! q a r nesoudln p = deg P (x) q = deg Q(x)
n = NSN (q, r)
nejmen spolen nsobek
G(x) = P (x) Q(x)
generovac mnoholen nbitov ho Fireova k#du
(
q+1
l1 l2 l1 + ll2 1p
detekce shluk chyb d lky l2
oprava shluk chyb d lky l1
-
P.:
00
P (x) = x3+x+1 =) p=3
Q(x) = x5+1 =) q=5
n = 35 l1 = l2 = 3
nebo
anebo
NLP2002/3
Cykl. k.
13
18.11.2000 c A. Pluhek
NLP2002/3
l1
l1
=2
=1
l2
l2
=4
=5
14
Cykl. k.
r=7
q6jp
18.11.2000 c A. Pluhek
Fireovy kdy | 3
Oprava shluku chyb
Prodlouen Fireovy kdy
Msto jednoho mnoholenu P (x) se pouije nkolik
mnoholen P 1(x), P 2(x), . . .
D lka k#dov ho slova: n = NSN (q, r1, r2, . . . ),
kde r1, r2, . . . jsou dy P 1(x), P 2(x), . . .
P.: P 1(x) = x11+x7+x6+x+1
P 2(x) = x12+x11+ +x+1
P 3(x) = x11+x9+x7+x6+x5+x+1
Q(x) = x22+1
G(x) = P 1(x) P 2(x) P 3(x) Q(x)
k#d (558 442, 558 386), tzn. m=56
shluky d lky 11
(princip Meggittova dekod ru)
cyklick k#d: 9H (x) G(x) H (x) = xn + 1
xn = G(x) H (x) + 1
syndrom:
S(x) = E(x) % G(x)
shluk chyb: E (x) = E (x) xj
x 6 j E (x)
n
;
j
E(x) x = E (x) xn
E(x) xn;j = E (x) G(x) H (x) +
+ E (x)
n
;
j
E(x) x E (x) mod G(x)
S(x) xn;j E (x) mod G(x)
deg E (x) deg G(x)
E (x) = (S(x) xn;j ) % G(x)
0
0
0
0
0
0
0
0
0
oprava:
Pot se S (x), S (x) x, S (x) x2 ,
atd., dokud nen vsledkem mnoholen, kter pslu" opraviteln chyb. Vsledn mnoholen je roven
E (x) a poet provedench krok uruje hodnotu j.
0
NLP2002/3
Cykl. k.
15
18.11.2000 c A. Pluhek
NLP2002/3
Cykl. k.
16
18.11.2000 c A. Pluhek
!"# "!"#
!"#
$
"!"#
%
)
*
&'(
$
&'(
)*
&'(
! "#$
ÆÄȾ¼¼¾»¿
­
ÆÄȾ¼¼¾»¿
­
­
/
- 0
+
,
-. ,
-. ,
/
+
0+
ÆÄȾ¼¼¾»¿
­
ÆÄȾ¼¼¾»¿
!
$ /
- 0+
1 - , -. , 2
- + - 0 $
, 1 33 424
$ %
+ -
0 "!& ' "#$ ! &%
0 "(& ' "#$ ( &%
- . - + -
$5 - $
, 1 -3 $
-
ÆÄȾ¼¼¾»¿
­
ÆÄȾ¼¼¾»¿
­
­
#$%& "
678 679 67/ . . . 1 79 7/ . . . 1 -. $5 , ,
$
, , , ÆÄȾ¼¼¾»¿
­
ÆÄȾ¼¼¾»¿
' "
#$%& #$%& !
%$ )* +#
ÆÄȾ¼¼¾»¿
' "
­
ÆÄȾ¼¼¾»¿
' "
#$%& #$%& "
$ !"#
­
+
0 0
0 .
1 :
1 :
,-./
,,
+
,-./ 0 #
) ,, 0 #
ÆÄȾ¼¼¾»¿
' "
­
ÆÄȾ¼¼¾»¿
­
%$%& %$%& $+ 1
;;; ;;;
<
8
<
8
<
8
'
'
9
<
8
<
8
!
'
9
<
8
6
6
9
!
8
'
9
2
8
6
9
'
9
'
2
6
9
'
8
2
2
6
9
ÆÄȾ¼¼¾»¿
8
8
8
8
!
8
'
9
!
8
­
ÆÄȾ¼¼¾»¿
%$%& !
'
­
%$%& %$ )* +#
,
- +
, 3
ÆÄȾ¼¼¾»¿
­
ÆÄȾ¼¼¾»¿
­
( ) ( ) ,4 5 #46 0 +7 8 ÆÄȾ¼¼¾»¿
"
­
ÆÄȾ¼¼¾»¿
( ) !
7+ 1 $ $
9 9 9 : -
8 8 8 : 9 / D E
/ < F < <
D < < F <
9 F 9 9
< 8 F <
9 9 F 9
E < < < F
< 8 < F
< 8 8 F
F 9 9 9
F 8 9 9
F 8 9 8
8 F 8 9
8 9 F 9
9 F 9 9
8 8 F 9
9 F 9 8
8 8 F 8
8 8 8 F
8 8 8 F
9 9 9 F
­
F 8 8 <
9 F 8 9
0+
9
/
D
ÆÄȾ¼¼¾»¿
"
F 8 < <
.% &- 0 *#
9 F < < <
= :>:4 : ?
( ) @ A BC
) +
9
9
.+ ? - $ , G - .
8
/ D E
' "
­
ÆÄȾ¼¼¾»¿
! ­
( ) "
( ) !+ #46 #9# 4# +$
5 ÆÄȾ¼¼¾»¿
H9
!"
­
( ) '
!+ #46
!"#
"!"#
&$ -
3 $
:&-; 0 ))
)*
75<
#
)9 )) +=$ >$
I AB
Æ
"!"# K $ $
:&-; 0 ) 4 >* >$
Æ
)3 * AB
75<
ÆÄȾ¼¼¾»¿
?@A 0 B+* :&-; 9
@IJ C
@ C
AB
$ $
5 ­
'?
ÆÄȾ¼¼¾»¿
­
PRINCIPY LOKALIT
Lokality dat
asov lokalita
temporal locality]
Jsou-li pouita njak data, d se oekvat, e
t data budou brzy pouita znovu.
Prostorov lokalita
spatial locality]
Jsou-li pouita njak data, d se oekvat, e
brzy budou pouita data uloen na blzk
adrese.
Lokality instrukc
asov lokalita
temporal locality]
Je-li pouita njak instrukce, d se oekvat, e
t instrukce bude brzy pouita znovu.
Prostorov lokalita
spatial locality]
Je-li pouita njak instrukce, d se oekvat,
e brzy bude pouita instrukce uloen na blzk
adrese.
NLP2000/01
Cache
1
2.12.2000 c A. P.
skryt pam cache | 1
skryt pam cache | 2
Skryt pam
!!!
cache ]
(Rychl vyrovnvac pam) buer]
Termn skryt pam nen bn pouvn !!!
skryt pam: asociativn pam (CAM)
HP . . . hlavn pam
procesor
HP ! !
! SP
SP .. . skryt pam
data/instrukce 2 SP =) nete se z HP, ale ze SP
SP vrazn rychlej ne HP (jinak to nem smysl)
skryt pam: asociativn pam (CAM)
kl: adresa v HP
data: pslun
bloky dat/instrukc
nezapomenout na bit platnosti !
vyuv se princip asov
lokality
vt kapacita SP =) astji se te ze SP
! omezen stupe asociativity
vyuv se princip prostorov
lokality:
netou se jednotliv slova/slabiky, ale bloky
jako tag se pouij vy dy
NLP2000/01
Cache
2
12.12.2000 c A. P.
Pklad:
HP: kapacita = 64KB = 216 B
..
.
0FF0 F0F1 F2 F3 F4 F5 F6F7 00 01 02 03 04 05 06 07
1000 08090A0B0C0D0E0FFFFEFDFCEFEEEDED
..
.
SP: 4 adresy
stupe asociativity = 2
d
lka blok = 4 kapacita = 32B = 442 B
0 987 10 20 30 40 P 100 08 09 0A 0B P 0
1 100 0C 0D 0E 0F P 0FF 0C 0D 0E 0F P 0
2 000 11 22 33 44 N 321 FF FF FF FF N 1
3 100 EF EE ED ED P 0FF 04 05 06 07 P 0
100 EF EE ED ED P 0FF 04 05 06 07 P
0FF 6=
P = .
P
04 05 06 07
0
1
2
3
***
"ten obsahu pamov
ho msta v HP na adrese
0FFE16 = 0000 1111 1111 11 10 2 0FF 3 2
NLP2000/01
Cache
3
12.12.2000 c A. P.
skryt pam cache | 3
"TEN#
koe$cient %spnosti
u
koe$cient vpadku bloku v = 1 ; u
t . . . vybavovac doba SP
T . . . vybavovac doba HP
. . . prmrn vybavovac doba
skryt pam cache | 4
hit ratio]
miss ratio]
s
riov
ten
look-through]
nejprve ten ze SP
ne%spn
ten ze SP =) ten z HP
= t + v T = u t + v (t + T )
nezatuje zbyten sbrnice
paraleln ten
look-aside]
souasn
ten ze SP i z HP
%spn
ten ze SP =) zastav se ten z HP
= ut + v T < t + v T
rychlej ne s
riov
ten
NLP2000/01
Cache
4
5.12.2000 c A. P.
Konzistence (neboli koherence) dat
(zejm. v multiprocesorovch syst
mech)
prbn zpis + zkaz ukldn urench dat
(strnek) do SP
prbn zpis + hldn sbrnice
snooping]
! hlda
watch dog]
odloen zpis ???!!!???
protokol MESI . . . Modify
Exclusive
Shared
Invalid
Cache
odloen
copy-back]
zpisy se provdj pouze do SP
=) men zaten sbrnic
=) rychlej zpis
???
konzistence dat v HP a ve SP
???
pznak modi$kace dirty, modied, write-into]
(vedle bitu platnosti)
present, valid]
Ped pepsnm modi$kovan
ho bloku v SP je
teba tento blok uloit do HP.
NLP2000/01
skryt pam cache | 5
zpis
pmo
pes vyrovnvac pam (buer)
NLP2000/01
Z&PIS
prbn
write-through]
kad zpis se provd do HP
je zajitna konzistence dat v HP a ve SP
allocate-write]
s rezervac msta
ten
bloku
z
blok 62 SP =) + zpis dat doHPSPdo SP
bez rezervace msta
non-allocate-write]
blok 62 SP =) data ze zap pouze do HP
Budou-li tato teba, bude nutn ten z HP!
6
12.12.2000 c A. P.
Cache
5
6.12.2000 c A. P.
skryt pam cache | 6
(data + instrukce)
? 1 nebo 2 SP ?
SP by mla bt transparetn, a proto:
1 SP . . . procesory von Neumanova typu
2 SP . . . procesory harvardsk
ho typu (klasick
)
Je vhodn
vzt v %vahu:
1 SP . . . zajiuje trasparenci
i pi pepisovn instrukc
2 SP . . . nemus bt stejn vyuvany
? 1 nebo 2 SP ?
Hierarchie SP
(jinak)
motivace: vt kapacita () men rychlost
procesor () SP1 () SP2 () () HP
sbrnice
zprav.: SP1 . . . prbn zpis write-through]
SP2 . . . odloen zpis copy-back]
NLP2000/01
Cache
7
12.12.2000 c A. P.
Virtuln pam | 1
Virtuln pam | 2
Virtuln pam (VP)
pomysln pam | vyuv se jako dn
pam
pamov msta jsou chvli tam
{ chvli jinde
hlavn pam + vnj pam | adresovan jinak
HP . . . hlavn pam
motivace: zven kapacity pamti
VP HP (ale podstatn vt kapacita)
peadresovn (nein probl
my)
ochrana pamti (jedna z monost)
typy:
strnkovan
segmentovan
Segmentace nap. u 8086
reprezentuje zcela jin problm. !!!
kombinovan
p.: 80x86, kde x86 386 a je pouit tzv.
(nikoliv tzv. reln) reim
virt. a. ! segm ! lin. a. ! str ! fyz. a.
!!!
NLP2000/01 Virt. p.
1
18.12.2000 c A. P.
Strnkovan virtuln pam | 1
strnka . . . mnoina K = 2k pamovch mst
zan na adrese dliteln K
typick velikost 4kB = 212B
adresov prostor HP lze rozdlit do rmc frames]
rmec strnka
analogicky lze rozdlit do rmc adresov prostor VP
Vyuit HP:
Nkter z rmc vyivaj systmov programy
(normln programy je tedy vyuvat nemohou).
Systmov programy (jdro operanho systmu)
zajiuj nap. zpracovn peruen a pod. a
obsahuji nap. tabulku peruovacch vektor,
(dle diskutovanou) tabulku strnek apod.
Ostatn rmce jsou vyivny pro implementaci
virtulni pamti (a jsou tedy vyuvny pro
normln programy).
NLP2000/01 Virt. p.
3
virtuln ! fyzick
HW
nen-li to mon
page fault]
peruen a potom:
virtuln ! na vnj pamti SW
a pesun z vnj pamti do HP
peklad adres:
2
NLP2000/01 Virt. p.
18.12.2000 c A. P.
Strnkovan virtuln pam | 2
Strnkovan virtuln pam
zkladn principy:
Procesor akceptuje pouze data/instrukce uloen
v HP.
Proto: Nejsou-li data/instrukce uloen v HP
pesunou se do n z vnj pamti.
princip asov lokality
=) data/instrukce budou brzy asi znovu pouita
princip prostorov lokality:
Kdy u se provd pesun, pesune se toho vc:
{ cel strnka (nap. 256B, . .. , 4KB, . . . 4MB)
{ cel segment (nap. 1B 32GB)
adresy: virtuln (matematick, logick)
fyzick | v HP
na vnj pamti
18.12.2000 c A. P.
Peklad virtulnch adres na fyzick:
VS
AvS
&
peklad
#
#
beze zmny
#
FS
AvS
VS . . . virtuln strnka
(slo rmce)
FS . . . fyzick strnka (v HP) (slo rmce)
AvS . . . adresa ve strnce
oset]
Peklad provd technick vybaven (HW) a vyaduje:
tabulku strnek (TS) v HP
registr
ZTS | registr zatku tabulky strnek
registr DTS | registr dlky tabulky strnek
Registry ZTS a DTS jsou programov dostupn.
Nepovede-li se peklad, dojde k peruen programu.
=) Systmov programy (tedy SW)
zmn obsazen HP (zavede se do n VS),
aktualizuje TS, ZTS a DTS
Potom se bude pokraovat v programu (od msta
peruen).
NLP2000/01 Virt. p.
4
18.12.2000 c A. P.
Strnkovan virtuln pam | 3
Strnkovan virtuln pam | 4
Tabulka strnek TS (uloen v HP):
Poloky TSi] jsou indexovny i = 0, 1, 2, 3, . . . "
poloka TSi] pslu VS (virtuln strnce) i.
Kad poloka mus obsahovat:
{ slo rmce HP psluejcho dan VS
(pokud je VS vbec v HP | jinak cokoliv)
{ bit platnosti (1 () VS je v HP)
Poloky jsou stejn dlouh (a to dostaten).
Dlka poloky
se vol tak, aby mohla bt uloena
l
v L = 2 pamovch (adresovatelnch) mstech
(nap. 4B).
=) adresa(TSi]) = ZT S + i L, neboli
adresa(TSi]) = ZT S + i / l, kde
ZT S je obsah registru ZTS a
i / l oznauje posuv i o l mst vlevo.
Poloka TSi] pslu VS uloen v HP prv
tehdy, kdy bit platnosti je roven 1 a i < DT S ,
kde DT S je obsah registru DTS.
NLP2000/01 Virt. p.
5
18.12.2000 c A. P.
Strnkovan virtuln pam | 5
virtuln adresa:
NS
SvNS
AvS
NS . . . nadstrnka
SvNS . . . strnka v nadstrnce
AvS . . . adresa ve strnce
virtuln adresa
DTNS dlka
TNS
NS
SvNS AvS
ZTNS zatek
TNS
?
+ /i
/j
0
?
-1 -+ 1 -1 0
?
+
1
0
R 01 1TS
TNS
tabulka
tabulky
strnek
nadstrnek 1
? ?
fyzick adresa
Pozn.: poloka TNS me obsahovat tak dlku TS
vcerovov tabulka strnek | analogicky
7
virtuln adresa
> 00002 12A
DTS 00005
ZTS 008000
008004 +? 00004 /1
-
008000
008002
008004
008006
008008
NLP2000/01 Virt. p.
1
1
1
0
1
14F
C0F
EEF
A11
129
? ?
EEF 12A
fyzick adresa
6
18.12.2000 c A. P.
Strnkovan virtuln pam | 6
2rovov tabulka strnek
NLP2000/01 Virt. p.
P.: 1 strnka 4KB = 212B 1 rmec
VP . . . 4GB = 232B 1M = 220 rmc
HP . . . 16MB = 224B 4K = 212 rmc
poloka TS: l 12b+1b =) L = 2B
max. velikost TS = 2MB
18.12.2000 c A. P.
Pklady HP: 224B = 16MB
212 = 4K rmc & 212 B = 4KB
1.
20b
12b
VS
AvS
TS : 1M poloek & 2B = 2 MB
2. 14b
6b
12b
NS
SvNS AvS
TNS : 16K poloek & 4B = 64 KB
TS: max. 64 poloek & 2B = 128B
max. < 4K TS = 512 KB
576 KB
3. 10b 10b
12b
NS
SvNS
AvS
TNS : 1K poloek & 4B = 4 KB
TS: max. 1K poloek & 2B = 2KB
max. < 1K TS = 2000 KB
2004 KB
ad 3.:
Byl uvaovn hor ppad ne nejhor mon
!
St budou posledn nejpouvanj
strnky
v pli mnoha nadstrnkch ( prostorov lokalita
NLP2000/01 Virt. p.
8
18.12.2000 c A. P.
Strnkovan virtuln pam | 7
Strnkovan virtuln pam | 8
1 )rov*ov tabulky strnek:
pi kadm pstupu do VP 1 ten z HP navc
tedy: VP je 2 pomalej ne HP
vce )rov*ov tabulky strnek:
mn pamti
dal ten z HP =) del cyklus pamti
??? e
en ???
TLB :
Transfer Look-aside Buer]
asociativn pam (CAM)
| velmi asto pln asociativn (!!!)
kl: virtuln strnka
data: fyzick strnka + kapacita < max. poet fyzickch strnek (obvykle)
typicky 64 slov
trasparentn (obvykle)
nen pam funkn nezbytn
(obvykle)
kopie poloek jsou v TS (pop. v TNS)
(jejich ten vak trv d
le)
NLP2000/01 Virt. p.
9
18.12.2000 c A. P.
Vmna strnek v HP
VS 62 HP =) peruen =) je teba: VS ! HP
otzky: 1. Je msto v HP?
2. Co vyhodit?
3. Jak vyhodit?
ad 1.: ano
=) Nen o em diskutovat!
ad 2.: e se prostedky SW
=) lze pout i sloitj algoritmy
=) HW tomu mus poskytnout podporu
ad 3.: e se prostedky SW:
Dolo ke zmn VS umstn v HP
(dolo k zpisu)?
ANO =) ped pepsnm strnky v HP
je nutn zajistit konzistenci
(uloit pepisovanou strnku)
NE =) nic
HW: je teba uloit programov dostupn
pznak zmny
modify, dirty]
vhodn msto (programov dostupn)
| poloka TS
NLP2000/01 Virt. p.
10
Strnkovan virtuln pam | 9
Strnkovan virtuln pam | 10
Vmna strnek v HP
ad 2. (jet jednou)
Jak vybrat tu sprvnou
strnku k vyhozen
?
nejlpe: Vyhodit strnku, kter
bude(!) poteba nejpozdji. ?progn"za ?
,e se prostedky SW. To vyaduje podporu HW
:
used, referenced]
pznak pouit strnky
vhodn msto (programov dostupn) | poloka TS
1 )rov*ov tabulka strnek
18.12.2000 c A. P.
Pouv se reim tzv. krjen asu
. time slicing]
Program je peruovn asovaem. (nap. po msec)
Pi kadm peruen dojde
| k vyhodnocen pznak
| k vymazn (te# ji starch) pznak
NLP2000/01 Virt. p.
11
18.12.2000 c A. P.
NLP2000/01 Virt. p.
12
18.12.2000 c A. P.
Strnkovan virtuln pam | 11
Strnkovan virtuln pam | 12
2 )rov*ov tabulka strnek
NLP2000/01 Virt. p.
13
Vmna strnek v HP
ad 2. (do tetice)
Jak vybrat tu sprvnou strnku k vyhozen?
$e se prostedky SW !!!
LRU
Least Recently Used]
matice ? (viz asociativn pamti) ? rozmry ?
tae ? | pro kadou fyzickou strnku jeden
| ponkud nestandardn ta
| poet bit = poet strnek
tn potu peruen zpsobench asovaem
t = slo takovho peruen
strnka byla pouit =) pidlit j hodnotu t
minimln t . . . nejdle nepouito
FIFO
First-In First-Out]
Vyhod se to nejstar.
modif.: ochrana posledn pouitch strnek
LFU
Least Frequently Used]
poet interval od posledn vmny strnek,
v nich byla strnka pouita
Vyhod se strnka s minimlnm ohodnocenm.
18.12.2000 c A. P.
NLP2000/01 Virt. p.
Strnkovan virtuln pam | 13
Tabulka strnek TS
Segmentovan virtuln pam
(znovu a &plnji):
segment . . . mnoina pamovch mst
velikost je omezena
me bt umstn kdekoliv v HP
p.: 1B 4GB 2 max. 4GB HP
vyuit HP: -st vyuivaj systmov programy.
Zbytek vyuivaj normln
programy.
Obdobn principy jako u strnkovan VP.
15
18.12.2000 c A. P.
Segmentovan virtuln pam | 1
Poloka TS by mla (me) obsahovat:
slo rmce HP (slo fyzick strnky)
bit platnosti
present, valid]
bit zmny (zpis do strnky) dirty, modi'ed]
bit pouito
used, referenced]
jin tzv. dic bity, nap.
zkaz ukldn do SP (skryt pam | cache)
zkaz zpisu do strnky (tzv. ochrana pamti |
ze strnky lze st, ale nelze do n zapisovat)
NLP2000/01 Virt. p.
14
18.12.2000 c A. P.
??? -m se li ???
velikost strnky / segmentu (stejn / rzn)
umstn strnky / segmentu (i K / kdekoliv)
tabulka strnek / tabulka segment
poloka tabulky segment, tzv.
popisova segmentu segment descriptor],
mus obsahovat informaci o dlce segmentu
pro uren fyzick adresy nutn staka
NLP2000/01 Virt. p.
16
18.12.2000 c A. P.
SBRNICE
BUS]
soubor vodi a pravidel uren
k propojen jednotek potae
styk = propojen = rozhran
interface]
podsbrnice | obv. t nazvan sbrnice:
adresov
Address Bus]
datov
Data Bus]
dic . . . dic a stavov sign
ly Control Bus]
adresy a data mohou bt multiplexov
ny (asov):
) sta jedin
sbrnice pro adresy i data
) je teba dic sign
l adresa / data
pipojen jednotek ke sbrnici | vstupy:
oteven kolektor | nkolik jednotek me
vyslat souasn sign
l (nulu) na t vodi
3stavov vstup | vyslat me pouze ta
jednotka, kter
to m
povoleno
NLP2000/01
Sbrnice
1
24.10.1997 c A. Pluhek
operace (typick):
ten
z
pis
ten { zmna { z
pis
z
pis { ten
penos bloku
read]
write]
read { modify { write]
read after write]
block data transfer]
broadcast (obnk?):
pkaz vem jednotk
m
broadcall (???): informace ode vech jednotek
(pop. od urench jednotek)
NLP2000/01
Sbrnice
2
3.1.1997 c A. Pluhek
korespondenn reim
sbrnice:
} jednoelov (soukrom)
dedicated]
} sdlen
shared, non-dedicated]
{ systmov
{ lok
ln
{ V/V
sbrnice:
~ paraleln
~ sriov . . .
aktivn .. . prv komunikuj
pasivn
aktivn jednotka:
dic (nadzen
, adi)
master]
zen
(podzen
)
slave]
aktivn jednotka:
~ vyslajc (vysla, zdroj)
source, talker]
~ pijmajc (pijma, cl)
destination, listener]
jednotky
z
lon a pro systmov ely
hand shake]
non-interlocked]
half interlocked]
fully interlocked]
1h jednodue v
zan
2h stedn v
zan
3h pln v
zan
1h 2h 3h
operace
poadavek
potvrzen
- - - -
-
trv
stanovenou
dobu
ukoneno po pijet
odpovdi
P.: z
pis | adresa: zrove s daty (nezakreleno)
sbrnice:
synchronn hodiny
jednosmrn zen
one-way control]
asynchronn
zprav. obousmrn zen
two-way control]
) korespondenn reim
pseudosynchronn (semisynchronn, polosynchr.)
hodiny + sign
l(y) ek
n WAIT]
(obousmrn zen)
NLP2000/01
Sbrnice
3
5.1.1997 c A. Pluhek
NLP2000/01
Sbrnice
4
8.1.1997 c A. Pluhek
pidlovn sbrnic:
centralizovan: pidlova sbrnice bus arbiter]
(funkci pidlovae nkdy zastv procesor)
paraleln = nez
visl dosti a potvrzen
independent requests and grants]
sriov
daisy chain]
kombinovan | paraleln a sriov
cyklick vzvy
pooling]
dost o pidlen sbrnice )
) pidlova nabz postupn a adresn
sbrnici jednotlivm jednotk
m
distribuovan . . . bez pidlovae
prioritn
pi vtm zaten sbrnice:
starvation (vyhladovn): jednotky s nzkou
prioriou nemaj anci
een: fairness (korektnost, slunost)
round-robin: jednotky si cyklicky ped
vaj
pr
vo pstupu na sbrnici (srov.: token ring)
pozn.: pidlov
n lze prov
dt s pedstihem
NLP2000/01
Sbrnice
5
8.1.1997 c A. Pluhek
Distribuovan pidlovn (prioritn)
NLP2000/01
Centralizovan pidlovn:
Ji jednotka
Pi pidleno
paraleln:
rrr
pidlova
6
1
J1
obsazeno
pidlova 1
P1
-
obsazeno
NLP2000/01
?P1
2
J2
6?
sriov:
6
i dost
6
6
-
J1a
6?
Sbrnice
rrr
6?
potvrzen vbru
6
?P2
J1b
6
-
6?
6
10.1.1997 c A. Pluhek
8
11.12.1995 c A. Pluhek
Fairness:
. . . oteven kolektor
Sbrnice
7
15.1.1997 c A. Pluhek
NLP2000/01
Sbrnice
Logick a geogra
ck adresovn:
Nkter sbrnice
UNIBUS
MUBUS
S-100
MULTIBUS
STD-BUS
VME
DEC
vc. feder. technol. stav 1975
MITS 1976
IEEE 696
Intel 1974
IEEE 796
Pro-log 1981
IEEE 961
Motorola, Mostek, IEEE 1096,
Philips-Signetics, IEEE 1132,
Thomson-CSF 1981 . . .
NUBUS
MIT 1979
ANSI/IEEE
(Western Digital, 1196/1987
Texas Instruments)
MULTIBUS II. Intel 1983
IEEE 1296
FUTUREBUS+ 1983
IEEE
896.1-1987
V/V:
Centronics
SCSI
ANSI X3.131-1986
PC: ISA, EISA, MCA, VL-BUS, PCI
SPARC: SBUS, MBUS
NLP2000/01
Sbrnice
9
8.1.1997 c A. Pluhek
NLP2000/01
Sbrnice
10
10.1.1997 c A. Pluhek
Komprese dat
(Komprimace dat)
P.: zakdovat slovo ARARAUNA
K1 K2
etnost
absolutn relativn
A 00 0
4
0,500
N 01 111
1
0,125
R 10 10
2
0,250
U 11 110
1
0,125
kd K1 : 00 10 00 10 00 11 01 00 . . . 16 bit
kd K2 : 0 10 0 10 0 110 111 0 . . . 14 bit
prexov kd: dn kdov slovo nen prexem
(zatkem) jinho kdovho slova
P.: K1 | blokov kd (viz t bezpenostn kdy)
K2 | prexov kd
postxov kd: dn kdov slovo nen postxem
(koncovkou) jinho kdovho slova
axov kd: kd, kter je prexov i postxov
NLP2000/01
Komprese
1
1.12.1996 c A. Pluhek
informan entropie
m men je pravdpodobnost p zprvy, tm je zprva
cennj | tm vt je jej informan obsah E , tzn.:
p1 roste =) roste E
logaritmick mra:
E = log2 p1 = ;log2 p
E = ;log2 p (shannon)
E . . . informan entropie, informan obsah, mra
mnostv informace aj. (viz t bezpenostn kdy)
stejn pravdpodobn nbitov sla:
poet sel:
N = 2n
pravdpodobnost: p = N1 = 2;n
entropie:
E = n (shannon bit)
v nbitovm sle me bt n shannon
pi . . . pravdpodobnost it z k monch zprv
k
H = ; P (pi log2 pi)
prmrn entropie
i=1
NLP2000/01
Komprese
3
21.9.1998 c A. Pluhek
komprese
(t komprimace): kdovn (pesn
ji:
pekdovn) | snen potu bit
dekdovn: dekomprese (dekomprimace)
nov dlka
kompresn pomr KP = pvodn
dlka
P.: pedp.: K1 : pvodn kd
K2: nov kd | komprimovan data
KP = 14/16 = 87,5% (pro ARARAUNA)
zprva = etz dlch zprv
nap.: text = etz psmen a dalch znak
zdrojov jednotka Sj | (pvodn) dl zprva
kdov jednotka Cj | zakdovan dl zprva
NLP2000/01
Komprese
2
3.12.1996 c A. Pluhek
P.: pkl. ARARAUNA
pedp.: pravdpodobnost = relativn etnost
entropie psmen 4/8
A, 1/8
N, 2/8
R, 1/8
U: 1, 3, 2, 3
prmrn entropie 1 psmene:
H = 0,51 + 0,1253 + 0,252 + 0,1253 = 1,75
pj . . . pravdpodobnost zdrojov jednotky Sj
Ej . . . entropie zdrojov jednotky Sj
Hj . . . prmrn entropie jt dl zprvy
zprva S1,S2 , . . . , Sm:
pravdpodobnost p = p1 p2 pm
Pm E
entropie E = ;log2 p, tzn.: E =
j =1 j
prmrn entropie (analogicky):
H=
Pm H
j=1 j
P.: entropie zprvy ARARAUNA:
E = 1+2+1+2+1+3+3+1 = 14 (shannon)
prmrn entropie 8psmenovho slova:
H = 81,75 = 14
(shannon)
NLP2000/01
Komprese
4
21.9.1998 c A. Pluhek
redundance
(nadbytenost)
E . . . entropie zprvy
L . . . dlka zpisu = max. mon entropie
redundance: R = L ; E
pi . . . pravdpodobmost it z k monch zprv
Ei . . . entropie it zprvy
Li . . . dlka zpisu it zprvy
H . . . prmrn entropie
Pk
prmrn redundance: Q = pi (Li ; Ei )
i=1
kP
Q = pi Li ; H
i=1
P.: pkl. ARARAUNA kd K1
pedp.: pravdpodobnost = relativn etnost
R = Q = 16 ; 14 = 2 (shannon)
komprese dat: snit redundanci na minimum!
NLP2000/01
Komprese
5
8.12.1996 c A. Pluhek
Eliasv kd I.
kdovn pirozench sel (v
tch ne 0)
pedpoklad: men sla | astj vskyt
princip: nbitov zpis sla, zanajc 1
ped tento zpis umstit n;1 nul
=) prexov kd
1
2
3
4
5
6
7
8
9
...
0
0
0
0
0 0 0
0 0 0
...
0
0
1
1
1
1
1 0
1 0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
Eliasv kd II.
ped nbitov zpis sla umstit n v Eliasov kdu I.
z nbitovho zpisu sla vypustit prvn bit (jedniku)
P.: 38610 = 1 1000 00102 ) n = 9 000 1001
vsledn kdovn: 000 1001 1000 0010
NLP2000/01
Komprese
7
4.5.1998 c A. Pluhek
Metody komprese (vybran:)
speciln
sla
Elias
Fibonacci
obrazov informace (prstky)
databze (jmna, data narozen apod.)
obecn
I.
statick | t kd pro rzn data
Shannon { Fano
Hu%man
aritmetick k.
hybridn = semiadaptivn | kd 2 data
dynamick = adaptivn | t algoritmus
kompresi i dekompresi
proFGK
(Faller { Gallager { Knuth)
V (Vitter)
obecn
II. | slovnkov
metody
statick
hybridn = semiadaptivn
dynamick = adaptivn
Lempel { Ziv (LZ77, LZ78)
BSTW (Bentley { Sleator { Tarjan { Wei)
NLP2000/01
Komprese
6
8.12.1996 c A. Pluhek
Fibonacciho kd
kdovn pirozench sel (v
tch ne 0)
pedpoklad: men sla | astj vskyt
Fibonacciho sla (du 2):
F;1 = F0 = 1,
Fi = Fi ; 1 + Fi ; 2 pro i = 1, 2, 3, . . . ,
F0, F1, F2, . . . pouijeme jako 'vhy( zpisu sel:
i . . . 5 4 3 2 1 0 ;1
Fi . . . 13 8 5 3 2 1 1
1
1
2
1 0
3
1 0 0
1 0 1
4
5
1 0 0 0
1 0 0 1
6
7
1 0 1 0
1 0 0 0 0
8
9
1 0 0 0 1
...
...
v zpisech nejsou 2 jedniky vedle sebe
NLP2000/01
Komprese
8
8.12.1996 c A. Pluhek
Fibonacciho kd (du 2):
Shannon { Fanov kd
obrtit poad bit (v pedchozch zpisech)
pidat 1 na konec =) prexov kd
1
1
0
0
1
0
1
0
0
1
1
2
3
4
5
6
7
8
9
...
2
3
1
1
0
0
0
0
1
0
0
...
5
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
8
seadit znaky podle etnosti (abs. nebo rel.)
dlit podle etnosti na poloviny (pokud mono)
0 ! 1 (nebo naopak)
...
P.: pkl. ARARAUNA
A R U N
4 2 1 1
1/2 1/4 1/8 1/8
0
1..
10
11.
110 111
1
1
1
tzv. kdov
1 1
1 1
A
R
U
N
8m
strom :
A1
A
4
Komprese
9
8.12.1996 c A. Pluhek
Humanv kd
seadit znaky podle etnosti (abs. nebo rel.)
znaky ! uzly ohodnocen etnost
nov uzly:
dvojice minimln ohodnocench uzl
ohodnotit soutem ohodnocen
P.: pkl. ARARAUNA
8
A1
A
4
A1
A
0
2
0 A1
A
R
U
N
6
0
0
10
110
111
4
5
4
A
3
2
R
2
1
U
tzv. sourozeneck
NLP2000/01
Komprese
1
A
1
N
vlastnost
11
NLP2000/01
Komprese
10
A1
A
0
2
R
0
1
U
2m
A1
A
1
N
8.12.1996 c A. Pluhek
Kdy Shannon { Fanov a Humanv
kdov strom :
7
4m
0
A
NLP2000/01
0
10
110
111
8.12.1996 c A. Pluhek
pedstavitel statickch metod
velmi mal a minimln redundance
P.:
znak etnost S-F H
A
11
00 0
B
5
01 100
C
5
10 101
D
4
110 110
E
3
111 111
28 znak: Shannon { Fano 63 bit
Hu%man
62 bit
semiadaptivn (hybridn) kdovn
dva prchody:
1. uren etnost dlch zprv ! kd
2. vlastn kdovn
s daty je nutno penst/zapsat
i kdovac tabulku
NLP2000/01
Komprese
12
3.12.1996 c A. Pluhek
metoda FGK | 1
metoda FGK | 2
metoda FGK
metoda FGP | pklad I.
zakdovat etz znak 'METEME '
(Faller { Gallager { Knuth)
postupn vytven a modikace kdovho stromu:
na potku tvo strom jen 'zvltn( uzel |
uzel (list) ohodnocen 0: nulov list
nov znak na vstupu:
vyle se kd nulovho listu (poprv nic)
vyle se vstupujc znak (nap. v kdu ASCII)
nulov list se nahrad binrnm podstromem:
koen ohodnocen 1
lev list: nulov list
prav list pslu znaku | ohodnocen 1
'znm( znak na vstupu:
vyle se kd znaku
pro list, kter znaku pslu, a postupn pro
vechny jeho pedchdce (sm
rem ke koenu)
se zamn uzel s podstromem (pokud existuje):
jeho koen je stejn ohodnocen uzel
m vy slo | uzly jsou slovny zdola
nahoru a zleva doprava
ohodnocen uzlu a vech jeho pedchdc se
zv o 1
vstup vstup
1
'M'
Komprese
13
3.12.1996 c A. Pluhek
'M'
0
'E'
0'E'
0
5
0
'E'
2
00'T'
14
2m 6 1
A1
A
A1
A
1
5
M
2
E
3
E
0
1
T
'E'
4m
0 A1
A
2m 2
0 A1 E
A
1m 1
5
3
1
'M'
NLP2000/01
Komprese
15
E
7
0
4
1
5
E
0
T
8.12.1996 c A. Pluhek
3
3
M
' '
NLP2000/01
100'
6
0
3m
A1
A
1m 4 2
M
A1
A
1
T
6m
A1
A
6
0
3m
A1
A
1m 2
4
A1
A
1
M
1
2
16
8.12.1996 c A. Pluhek
'
Komprese
A1
A
2
0
6
A1
A
2
01
M
8.12.1996 c A. Pluhek
0
7
0
1
metoda FGP | pklad III.
vstup vstup
strom
'M'
01
7 5m
A1
A
1m 4 1
2
01
A1
A
1
Komprese
A1
4
3
NLP2000/01
2m
A
1m 1
0
'T'
1
M
metoda FGK | 4
0
1
2
5
metoda FGP | pklad II.
vstup vstup
strom
'T' 00'T'
7 3m
3
A1
A
1
metoda FGK | 3
0
1m
3
NLP2000/01
strom
T
Slovnkov metody
orientovny na opakujc se podetzce,
tzv. frze, pop. digramy, trigramy, . . .
vytv se 'slovnky( frz, . . .
metoda LZ78
poloky ve slovnku slovny od 1
0 przdn etz
do slovnku se ukld vstup podetz
ve slovnku se hled nejdel podetz na vstupu
vstup: slo poloky & nsledujc znak
P.: zakdovat: ARA ARARAUNA
vstup vstup
1 A
0A
2 R
0R
3 A
1
4 AR 1 R
5 ARA 4 A
6 U
0U
7 N
0N
8 A
3
NLP2000/01
Komprese
17
(13 znak)
8.12.1996 c A. Pluhek
! " ! #"
! " ! " $ ! "
! %"
! " ! " $ $ ! &"
' ! " ! " $ $ ! ("
)
* +
,* , ! " $ ! -"
' !
" '
'
) . )/ 0
# '/ ' ½ 1 ' '
' )
2*
* '
* ' )
'
! " . !2#"
'
! " !.". $ .!."
!2%"
'
! " . $ .
!2&"
! 0" ! " .0 $ 0. $ !2("
! " ! !"" .!" $ !". $ 0 !2-"
)
! " !23"
!24"
)
! " ! " $ ! "
! #" ! " 0 $ # $ !25"
! $0" ! ½" ½ $ ½ $ 0
!26"
! " !." $ . !2#0"
! " !." $ . !2##"
* +
,* , )
! " $ !2#%"
7
'
' 8 )/ / * ) +
'
) 8 )/ / * #
9
/ !)
" * 8 / ) : : * 9 * !
" / 0 / # ; !2(" !25" < =
8 '
' < '
) >' : ! #" ! -" +
. ?
* +
/ ! "! "! " ! " $ !
" !9#"
! " # $ !9%"
@
! "! "! " ! . " $ .
!9&"
@@
! "! "! " !
. " $ . !9("
A *+
: / ! " 0 $ / ! / 8 "
7
'+
1* , )/ : $ !½ " )/ : $ !½ "
$ !½ " $ ½ ½ . . !A * ' , * "
%

Podobné dokumenty

profitest mbase mtech

profitest mbase mtech Je-li p˚stroj pouûv‰n pouze k ˝Îelu, ke kterÏmu byl vyroben, bezpeÎnost obsluhy i p˚stroje je zajiötÔna. P˚ed pouûitm p˚stroje si peÎlivÔ p˚eÎtÔte celý n‰vod k pouûit. ÿiÚte se vöemi pokyny, ...

Více

V. Koubek: Automaty a gramatiky

V. Koubek: Automaty a gramatiky o Mealyho nebo Mooreùv automat, a pí¹eme 2 X  , mìlo by být pod èarou poznamenáno, ¾e pro Mealyho je 2 X + . Vzhledem k tomuto odstavci to nadále pova¾uji za samozøejmost a poznámky pod èarou ...

Více

Databázové servery pro nejvy‰‰í nároky a pro zpracování jak

Databázové servery pro nejvy‰‰í nároky a pro zpracování jak a to v plné mífie platí i pro databázové servery IBM - IBM Informix a IBM DB2. Databázové servery jsou nezbytné pro systémy transakãního zpracování, pro aplikace ERP, CRM a SCM. VyuÏívají se pro ana...

Více

Nestandardní zápisy £ísel

Nestandardní zápisy £ísel 1 neplatila. To zjistíme tak, ºe −1 ani −i se nám nepoda°í v této bázi vyjád°it. Kdybychom totiº cht¥li na výpo£et posledního koecientu v rozvoji £ísla −i v bázi β = i + 1 pouºít v¥tu 2, dostaneme...

Více

čtení - Publi.cz

čtení - Publi.cz displejem iPhone (2007) anebo tablet iPad (2010). Také v oblasti počítačů byla tato společnost mezi prvnímí mezi all-in-one počítači produktem iMac (Obrázek 2, 1998), kdy v této době byly běžně poč...

Více

PROFiTEST 0100S-II

PROFiTEST 0100S-II Volba komunikaÎnho jazyka Nastaven z‰kladnch a vedlejöch funkc ...........................................8 Test bateri nebo akumul‰tor¸ .........................................................

Více

Operaˇcní systémy

Operaˇcní systémy lepší je situace u (stále experimentálních) mikrojader 2. generace (např. L4: minimalismus, optimalizace pro konkrétní architekturu), nicméně tato nevýhoda přetrvává. Úvod – p.15/30

Více

Hammingův kód

Hammingův kód 8. Napište polynom G(x), který přísluší vektoru 100101. Polynom G(x) je generovacím polynomem cyklického kódu (31, k). Určete hodnotu k. Kolik informačních bitů a kolik kontrolních bitů bude obsaho...

Více