You are on page 1of 101

Gio trnh h thng nhng

Bin tp bi:
Khoa CNTT HSP KT Hng Yn

Gio trnh h thng nhng


Bin tp bi:
Khoa CNTT HSP KT Hng Yn
Cc tc gi:
Khoa CNTT HSP KT Hng Yn

Phin bn trc tuyn:


http://voer.edu.vn/c/21d27e3a

MC LC
1. M u h thng nhng
2. Tng quan h thng nhng
3. Cc thnh phn c bn trong kin trc phn cng H thng nhng
4. Mt s nn phn cng v C s k thut ca phn mm nhng
5. H iu hnh cho cc h thng nhng (HH thi gian thc)
6. C bn v lp trnh nhng
7. Tc v v truyn thng gia cc tc v
8. K thut lp lch v x l ngt trong thi gian thc
9. Thit k H thng nhng
10. Thit k cc phn mm iu khin
Tham gia ng gp

1/99

M u h thng nhng
Tn Module: H thng nhng (Embedded System)
M Module: ES334
Gio vin: Hong Quc Vit - Phm Ngc Hng
Ngnh hc: Cng ngh Thng tin S gi hc: 96 gi - 02 tn ch
Loi hnh o to: Chnh qui Thi gian thc hin: Hc k II Nm III
Nm hc: 2009/2010 Loi Module: LT
Phin bn: 20081007

Mc tiu
Sau khi hon thnh module ny, ngi hc c kh nng:
Gii thch c mt s cc khi nim lin quan n h thng nhng, h iu
hnh nhng v phn mm nhng.
Phn tch c cc c im cu trc phn cng, h iu hnh v phn mm
cho cc h thng nhng.
ng dng trong thit k v pht trin phn mm cho h thng nhng n gin.
Rn luyn kh nng t nghin cu, kh nng lm vic theo nhm.
Module ny s gip ngi hc pht trin v hon thin cc nng lc: Phn tch (M3), T
vn (M3) v Thc hin(M3), thit k (M3).

iu kin tin quyt


Ngi hc hc cc mn K thut in t; K thut s; Vi x l; Kin trc my tnh;
Lp trnh hng i tng; Hc song song hoc sau mn H iu hnh.

M t module
Module ny cung cp cho ngi hc cc kin thc c bn v h thng nhng, ni dung
chnh bao gm: Gii thiu chung v cc h thng nhng; Kin trc phn cng h thng
nhng; H iu hnh nhng, phn mm nhng.

2/99

Ni dung MODULE
Tng quan v H thng nhng
Gii thiu mn hc
H thng nhng l g?
Lch s pht trin ca h thng nhng
Xu hng pht trin ca cc h thng nhng
Nhng thch thc v vn cn tn ti vi h thng nhng
Cc c im ca h thng nhng
Mt s v d v h thng nhng
Cc thnh phn c bn trong kin trc phn cng H thng nhng
n v x l trung tm CPU
Xung nhp v trng thi tn hiu
Bus a ch, d liu v iu khin
B nh
Ngoi vi
Giao din
Mt s nn phn cng nhng thng dng
Chip Vi x l/Vi iu khin nhng
Chip DSP
C s k thut ca phn mm nhng
Phn mm nhng l g?
c im ca phn mm nhng

3/99

Quy trnh pht trin phn mm nhng


H iu hnh cho cc H thng nhng
c im chung ca H iu hnh
H iu hnh cho cc h thng nhng - h iu hnh thi gian thc
Thi gian thc (Real - Time) l g?
Cc dng thi gian thc
H iu hnh thi gian thc
C bn v Lp trnh nhng
Biu din s v d liu
Ngn ng lp trnh
Cc kin trc phn mm nhng thng dng
Tp lnh
Tc v v truyn thng gia cc tc v
Cc tc v (Task)
Truyn thng v ng b gia cc tc v
Semaphore
Monitor
K thut lp lch v x l ngt trong thi gian thc
Cc khi nim
Cc phng php lp lch ph bin
K thut lp lch
X l ngt

4/99

Thit k H thng nhng


Quy trnh pht trin
M hnh ha s kin v tc v
Thit k cc phn mm iu khin
Thit k phn mm iu khin
Mt s phng php pht trin phn mm nhng
Project: Phn tch s , cu trc phn cng, phm mm v h iu hnh nhng
cho mt thit b c th trong thc t.

Ti liu tham kho:


Sch gio trnh, Slide do gio vin bin son.
Sch tham kho:
[1]. Gio trnh H thng nhng
[2]. TS. Lu Hng Vit, H thng iu khin nhng
[3]. Ken Arnold, Embedded Controller Hardware Design
[4]. Michael Barr, Programming Embedded Systems

Hc liu:
Gio trnh lu hnh ni b, sch tham kho, my tnh, ti nguyn trn Internet, Projector.

nh gi:
nh gi qu trnh (tiu lun): 40%
Kim tra cui k: 60%

K hoch hc tp
B tr ging dy module H thng nhng (2 tn ch) nh sau:

5/99

30 tit l thuyt (thc hin trong 10 bui, mi bui 3 tit) 6 tit tho lun v 60 gi chun
b c nhn: 45 gi (ti liu 90 trang) v 15 gi (bi tp ln).

K hoch hc tp
Bi Mc tiu

Trnh by
c mc
tiu ca
Module
Trnh by
c nh
ngha, lch
s pht
trin ca h
thng
nhng
Ch ra c
xu hng
pht trin
ca v cc
thch thc
vi h
thng
nhng
Trnh by
c cc
c trng
c bn ca
ca mt h
thng
nhng
Trnh by
c cc
c im c
th ca H
thng
nhng:
Giao din,
kin trc
CPU, thit

Hot ng gio
vin
Gii thiu
v mn
hc,
phng
php hc,
mc tiu
mn hc...
Nu mt
s ng
dng c s
dng h
thng
nhng trn
thc t
(my
git...) t
trnh
by nh
ngha h
thng
nhng
Trnh by
xu hng
pht trin
ca h
thng
nhng
hin nay,
nhng
thch thc
v cc vn
cn tn
ti vi h
h thng
nhng

Hot ng
sinh vin

SGSV

c bi 1
trong ti liu
[1]Ghi nhn
li nhng vn
c
bn,Tham gia 8h
tho lun cc
vn m gio
vin nu
ra.c ti liu
c giao

iu kn
thc hin

Phng LTTi
liu tham
kho [1]

6/99

b ngoi vi,
cng c
pht trin
v tin
cy
Nu c
mt s v
d v h
thng
nhng trn
thc t

Ly v d
v mt
chic my
PC thy
r c
im ca
cc thnh
phn :
mn hnh,
CPU, h
iu hnh,
cc thit b
ngoi vi...
Tho lun
v cc c
im ca
mt PC
v: Giao
din,
CPU, h
iu hnh,
cc phn
mm, cc
thit bi
ngoi vi...
T v d
trnh by
cc c
im ca
mt H
thng
nhng v
Giao din,
kin trc
CPU...
Nu mt
vi v d
ca H
thng
nhng
trong thc

7/99

t cuc
sng
Tng kt
bi hc
Hng
dn sinh
vin c
ti liu
tham
kho, v
nhn
mnh
nhng
cng vic
ca sinh
vin trong
bi tip
theo

Trnh by
c cc
thnh phn
c bn
trong kin
trc phn
cng ca
mt h
thng
nhng
Trnh by
c c
im, cc
chc nng
ca cc
thnh phn
trong phn
cng ca
mt h
thng
nhng:
CPU, Bus,
B nh...

Tho lun
v thnh
phn phn
cng ca
mt h
thng PC
thng
thng v
chc nng
ca tng
thnh
phn
Tho lun
v vai tr
ca cc
thnh
phn phn
cng trong
mt PC
Lin h v
so snh
cc thnh
phn phn
cng ca

c ti
liu [1]
Tham
gia
tho
lun v
cc
vn
nu ra
Nm
vng
cc
8h
kin
thc
trong
mn
hc
kin
trc
my
tnh
Ghi
ch
nhng

- Phng LTTi liu tham


kho [1],[2]

8/99

PC vi cc
thnh
phn phn
cng ca
mt h
thng
nhng
M t c
im v
trnh by
chc nng
ca cc
thnh
phn phn
cng h
thng
nhng
Hng
dn sinh
vin c
ti liu
tham
kho, v
nhn
mnh
nhng
cng vic
ca sinh
vin trong
bi tip
theo.

Trnh by
tng quan
v cc Chip
Vi x l
nhng
Trnh by
c mt
s nn phn
cng nhng
thng dng
hin nay

Trnh by
tng quan
v cc
Chip Vi
x l
nhng.
Vai tr
ca cc
Chip trong
cc h
thng

vn
c bn

c ti
liu [1]
Nm
vng
cc
kin
8h
thc
trong
mn
hc
kin

- Phng LTTi liu tham


kho [1], [2]

9/99

v: c
im, chc
nng, u
im ...

Trnh by
c khi
nim v
phn mm
h thng
nhng, xu
th pht
trin phn
mm nhng
trn th
gii hin
nay v tm
quan trng
ca n.
Trnh by
c cc
c im
ca mt
phn mm
nhng
M t c
quy trnh
pht trin
ca mt

Trnh by
mt s
phn cng
nhng
hin nay.
Gii thch
cc c
im,
chc nng,
u im
vi mi
loi
Hng
dn sinh
vin c
ti liu
tham
kho.

trc
my
tnh
Ghi
ch
nhng
vn
c bn

Tho lun
v bi hc
trc (bi
c).
Tho lun
v phn
mm trong
mt h
thng my
tnh PC
trnh by
khi nim
v phn
mm
nhng
Tho lun
v cc c
im ca
mt phn
mm PC
trnh
by cc
c im
ca mt

c
trc
cc
ch
lin
quan
trong
ti liu
Tham
gia
tho
lun v 8h
bi hc
trc,
tho
lun v
phn
mm
trong
h
thng
my
tnh

Phng
L
thuyt
Ti
liu
tham
kho
[1]

10/99

phn mm
nhng.

phn mm
nhng
Trnh by
cc bc
trong quy
trnh pht
trin ca
phn mm
nhng
(qu trnh
bin dch
v pht
trin phn
mm
nhng)

Tham
gia
tho
lun
cc c
im
ca
mt
phn
mm
PC
Ghi
ch
cc
vn
c bn

Trnh by
c c
im chung
ca mt H
iu hnh
ni chung
Trnh by
c khi
nim v
thi gian
thc v cc
dng ca
ca thi
gian thc
Trnh by
c khi
nim, vai
tr v cc
c im
ca H iu
hnh thi
gian thc.

Tho lun
v c
im vai
tr, cu
trc ca
mt ca h
iu hnh
(mn hc:
H iu
hnh)
Ly v d
v cc h
thng
nhng yu
cu thi
gian thc
trn thc
t v phn
tch v d
ny
T v d
a ra
trnh by
khi nim
v thi
gian thc

Tho
lun
vn
m
gio
vin
a ra
Trao
i kt
qu
tho
lun
vi cc
8h
sinh
vin
khc
Ghi
nhn
cc
vn
v thi
gian
thc v
h iu
hnh
thi

- Phng LTTi liu tham


kho [1],[2]

11/99

Nm vng
c cch
biu din
s, d liu
v thao tc
thnh tho
trn cc h
thng c s
trong k
thut lp
trnh nhng
Trnh by
c cc
ngn ng
lp trnh
c dng
trong qu
trnh pht
trin phn
mm nhng

v a ra
cc c
im.
Nu nn
cc dng
thc ca
thi gian
thc
Trnh by
khi nim
h iu
hnh thi
gian thc
v cc c
im ca
n
Tng kt
bi hc
Giao ni
dung hc
bi sau

Tho lun
v bi hc
trc (bi
c)
Trnh by
cch biu
din s v
d liu
Yu cu
sinh vin
thc hin
mt s
php tnh
trong cc
h c s
khc nhau
Trnh by
cc ngn
ng lp
trnh dng
cho pht

gian
thc.
c ti
liu
c
giao

Tham
gia
tho
lun v
bi hc
trc
Tham
gia
tho
lun v
cc h 8h
thng
c s
trong
biu
din d
liu
trong
lp
trnh
nhng

- Phng LTTi liu tham


kho [1], [2]

12/99

Ch ra c
cc kin
trc ca
phn mm
H thng
nhng
Trnh by
c cc
c im
ca cc
kin trc
phn mm
h thng
nhng
Gii thch
c c
im chung
ca tp lnh
trong phn
mm nhng
v m t
c tp
lnh ca
mt s
VXL/VK
nhng

M t c
cu trc,
chc nng,

trin phn
mm cho
PC
trnh by
cc ngn
ng lp
trnh dng
pht trin
phn mm
nhng
Ly v d
in hnh
cho mi
loi kin
trc phn
mm h
thng
nhng
T v d
trnh by
cc c
im ca
mi loi
kin trc
phn mm
h thng
nhng
Nu ra cu
trc tp
lnh v
cc kiu
truyn a
ch ton t
lnh
Tng kt
bi hc
Giao ni
dung hc
bi sau

Tip cn
vn h
thng iu

v lm
v d
m
gio
vin
a ra
Ghi
nhn
li cc
kin
trc
phn
mm
nhng
thng
dng
hin
nay.
Ghi
ch
cc
vn
c bn

Trao
i kt 8h
qu

- Phng LTTi liu tham


kho [1],[2]

13/99

v cc c
im ca
mt tc v
trong h
iu hnh
thi gian
thc.
Trnh by
c hai c
ch ng
b v
truyn
thng s
dng trong
cc h iu
hnh thi
gian thc
(Semaphore
v
Monitor).

khin s
kin
a nhim,
t nu
khi nim
tc v
(task)
Trnh by
khi nim
h thng
iu khin
s kin
trnh
by a
nhim t
nu
khi nim
tc v
a ra
hnh v
m t cu
trc ca
mt tc v
v nu cu
trc mi
tc v
Gii thiu
vn
truyn
thng v
ng b
v a ra
mt vi c
ch ng
b v
truyn
thng s
dng trong
cc h
iu hnh
thi gian
thc

tho
lun
vi cc
bn
sinh
vin
khc
Lm
vic
c lp
phn
tch
hnh v
m t
cu
trc
ca
mt tc
v
Ghi
nhn
cc
vn
quan
trng
v tc
v v
truyn
thng
gia
cc tc
v
trong
h iu
hnh
thi
gian
thc

14/99

Trnh by
c im
ca hai c
ch c th.

Trnh by
c vai
tr ca lp
lch trong
h iu
hnh thi
gian thc
Ch ra c
cc kiu lp
lch khc
nhau (lp
lch c chu
k, lp lch
khng chu
k...)
Trnh by
c cc k
thut lp
lch khc
nhau
Trnh by
cc k thut
x l ngt
(Polling v
Interrupt)

a ra m
hnh trng
thi ca
tc v
Gii thch
cc thnh
phn trong
m hnh
trng thi
ca tc v
Tho lun
v vn
lp lch
trong cc
h iu
hnh
thng
thng.
Gii thiu
v cc
kiu lp
lch khc
nhau trong
h iu
hnh thi
gian thc
(c
im.... )
Tip cn
v trnh
by khi
nim h
thng iu
khin s
kin
Trnh by
2 phng
php tip

Tham
gia
tho
lun
vn
m
gio
vin
a ra.
Trao
i kt
qu
tho
lun
vi cc
bn
sinh
vin
khc
8h
Lm
vic
c lp
phn
tch
hnh v
m t
m
hnh
trng
thi
ca tc
v
Ghi
nhn
li cc
vn
quan
trng

- Phng LTProjector- Ti
liu tham
kho [1], [2]

15/99

cn l:
Polling v
Interrupt
Trnh by
cc c
im ca
Polling
M t cc
c im
ngt
(Interrupt),
cc loi
ngt dng
trong cc
h vi x l
Tng kt
bi hc

Ch ra c
chu trnh
pht trin
ca mt h
thng
nhng (cc
bc
phats trin
mt h
thng
nhng)
Trnh by
c m
hnh ha s
kin v tc
v

Tho lun
v chu
trnh pht
trin ca
mt h
thng
phn mm
thng
thng
Nu ra chu
trnh pht
trin ca
mt h
thng
nhng
Nu nn
m hnh
ha s
kin
Petrinet
Gii thiu
vic quy
c biu
din m

Tham
gia
tho
lun
tch
cc v
vn
c
giao
Ghi
cho
cc
8h
vn
lin
quan
n m
hnh
ha s
kin v
tc v
trong
h
thng
nhng.

- Phng LTTi liu tham


kho [1]

16/99

hnh ha
Petrinet
M t cc
tnh hung
hot ng
c bn vi
Petrinet

10

Trnh by
c cc
vn v
thit k
phn mm
iu khin
ca mt h
thng
nhng
Ch ra c
cc mt s
phng
php pht
trin phn
mm nhng
bng my
tnh.

Gii thiu
l thuyt
lin quan
n thit
k phn
mm iu
khin
Trnh by
mt s
phng
php pht
trin phn
mm
nhng
bng my
tnh

Tham
gia
tho
lun v
mi
ch
Trao
8h
i kt
qu vi
cc
sinh
vin
khc

- Phng LTTi liu tham


kho [1],[2]

17/99

Tng quan h thng nhng


Gii thiu mn hc
Module ny cung cp cho ngi hc cc kin thc c bn v h thng nhng, Ni dung
chnh bao gm: Gii thiu chung v cc h thng nhng; Kin trc phn cng h thng
nhng; H iu hnh nhng, phn mm nhng.
Sau khi hon thnh module ny, ngi hc c kh nng:
Gii thch c mt s cc khi nim lin quan n h thng nhng, h iu
hnh nhng v phn mm nhng.
Phn tch c cc c im cu trc phn cng, h iu hnh v phn mm
cho cc h thng nhng.
ng dng trong thit k v pht trin phn mm cho h thng nhng n gin.
Rn luyn kh nng t nghin cu, kh nng lm vic theo nhm.
hc tt mn hc ny mi ngi hc phi t xy dng cho mnh mt phng php
hc thch hp. Nhng phng php chung hc mn hc ny l ngi hc phi hiu
tht k cc phn l thuyt c bn t tm hiu cc phn kin thc m rng.

H thng nhng l g?
H thng nhng (Embedded system) l mt thut ng ch mt h thng c kh nng
t tr c nhng vo trong mt mi trng hay mt h thng m. l cc h thng
tch hp c phn cng v phn phm thc hin mt hoc mt nhm chc nng chuyn
bit c th .
H thng nhng (HTN) thng c thit k thc hin mt chc nng chuyn bit
no . Khc vi cc my tnh a chc nng, chng hn nh my tnh c nhn, mt h
thng nhng ch thc hin mt hoc mt vi chc nng nht nh, thng i km vi
nhng yu cu c th v bao gm mt s thit b my mc v phn cng chuyn dng
m ta khng tm thy trong mt my tnh a nng ni chung. V h thng ch c xy
dng cho mt s nhim v nht nh nn cc nh thit k c th ti u ha n nhm
gim thiu kch thc v chi ph sn xut. Cc h thng nhng thng c sn xut
hng lot vi s lng ln. HTN rt a dng, phong ph v chng loi. c th l
nhng thit b cm tay nh gn nh ng h k thut s v my chi nhc MP3, hoc
nhng sn phm ln nh n giao thng, b kim sot trong nh my hoc h thng
kim sot cc my nng lng ht nhn. Xt v phc tp, h thng nhng c th rt
n gin vi mt vi iu khin hoc rt phc tp vi nhiu n v, cc thit b ngoi vi
v mng li c nm gn trong mt lp v my ln.
18/99

Cc thit b PDA hoc my tnh cm tay cng c mt s c im tng t vi h thng


nhng nh cc h iu hnh hoc vi x l iu khin chng nhng cc thit b ny khng
phi l h thng nhng tht s bi chng l cc thit b a nng, cho php s dng nhiu
ng dng v kt ni n nhiu thit b ngoi vi.

Lch s pht trin ca h thng nhng


H thng nhng u tin l Apollo Guidance Computer(My tnh dn ng Apollo)
c pht trin bi Charles Stark Draper ti phng th nghim ca trng i hc
MITnm 1960. H thng nhng c sn xut hng lot u tin l my hng dn cho
tn la qun s vo nm 1961. N l my hng dn Autonetics D-17, c xy dng
s dng nhng bng bn dn v mt a cng duy tr b nh. Khi Minuteman II c
a vo sn xut nm 1996, AutoneticsD-17 c thay th vi mt my tnh mi s
dng mch tch hp. Tnh nng thit k ch yu ca my tnh Minuteman II l n a ra
thut ton c th lp trnh li sau lm cho tn la chnh xc hn, v my tnh c
th kim tra tn la, gim trng lng ca cp in v u ni in.
T nhng ng dng u tin vo nhng nm 1960, cc h thng nhng pht trin mnh
m v kh nng x l. B vi x l u tin hng n ngi tiu dng l Intel 4004,
c pht minh phc v my tnh in t v nhng h thng nh khc. Tuy nhin n
vn cn cc chip nh ngoi v nhng h tr khc. Vo nhng nm cui 1970, nhng b
x l 8 bit c sn xut, nhng nhn chung chng vn cn n nhng chip nh bn
ngoi.
Vo gia thp nin 80, k thut mch tch hp t trnh cao dn n nhiu thnh
phn c th a vo mt chip x l. Cc b vi x l c gi l cc vi iu khin v
c chp nhn rng ri. Vi gi c thp, cc vi iu khin tr nn rt hp dn xy
dng cc h thng chuyn dng. c mt s bng n v s lng cc h thng nhng
trong tt c cc lnh vc th trng v s cc nh u t sn xut theo hng ny. V
d, rt nhiu chip x l c bit xut hin vi nhiu giao din lp trnh hn l kiu song
song truyn thng kt ni cc vi x l. Vo cui nhng nm 80, cc h thng nhng
tr nn ph bin trong hu ht cc thit b in t v khuynh hng ny vn cn tip
tc cho n nay.

Xu hng pht trin ca cc h thng nhng


Sau my tnh ln (mainframe), PC v Internet th h thng nhng ang l ln sng i
mi th 3 trong cng ngh thng tin v truyn thng.
Xu hng pht trin ca cc h thng nhng hin nay l:

19/99

Phn mm ngy cng chim t trng cao v tr thnh mt thnh phn cu


to nn thit b bnh ng nh cc phn c kh, linh kin in t, linh kin
quang hc
Cc h nhng ngy cng phc tp hn p ng cc yu cu kht khe v thi
gian thc, tiu t nng lng v hot ng tin cy n nh hn.
Cc h nhng ngy cng c mm do cao p ng cc yu cu nhanh chng
a sn phm ra thng trng, c kh nng bo tr t xa, c tnh c nhn cao.
Cc h nhng ngy cng c kh nng hi thoi cao, c kh nng kt ni mng
v hi thoi vi ngi s dng.
Cc h nhng ngy cng c tnh thch nghi, t t chc cao c kh nng ti cu
hnh nh mt thc th, mt tc nhn.
Cc h nhng ngy cng c kh nng tip nhn nng lng t nhiu ngun
khc nhau (nh sng, rung ng, in t trng, sinh hc.) to nn cc h
thng t tip nhn nng lng trong qu trnh hot ng.

Nhng thch thc v vn cn tn ti vi h thng nhng


H thng nhng hin nay cn phi i mt vi cc vn sau:
phc tp ca s lin kt a ngnh phi hp cng - mm. phc tp ca h
thng tng cao do n kt hp nhiu lnh vc a ngnh, kt hp phn cng mm, trong khi cc phng php thit k v kim tra cha chn mui. Khong
cch gia l thuyt v thc hnh ln v cn thiu cc phng php v l thuyt
hon chnh cho kho st phn tch ton cc cc h nhng.
Thiu phng php tch hp ti u gia cc thnh phn to nn h nhng bao
gm l thuyt iu khin t ng, thit k my, cng ngh phn mm, in t,
vi x l, cc cng ngh h tr khc.
Thch thc i vi tin cy v tnh m ca h thng: Do h thng nhng
thng phi hi thoi vi mi trng xung quanh nn nhiu khi gp nhng tnh
hung khng c thit k trc d dn n h thng b lon. Trong qu trnh
hot ng mt s phn mm thng phi chnh li v thay i nn h thng
phn mm c th khng kim sot c. i vi h thng m, cc hng th 3
a cc module mi, thnh phn mi vo cng c th gy nn s hot ng
thiu tin cy.

Cc c im ca h thng nhng
H thng nhng thng c mt s c im chung nh sau:
Cc h thng nhng c thit k thc hin mt s nhim v chuyn dng
ch khng phi ng vai tr l cc h thng my tnh a chc nng. Mt s h
thng i hi rng buc v tnh hot ng thi gian thc m bo an ton

20/99

v tnh ng dng. Mt s h thng khng i hi hoc rng buc cht ch, cho
php n gin ha h thng phn cng gim thiu chi ph sn xut.
Mt h thng nhng thng khng phi l mt khi ring bit m l mt h
thng phc tp nm trong thit b m n iu khin.
Phn mm c vit cho cc h thng nhng c gi l firmware v c lu
tr trong cc chip b nh ch c (ROM - Read Only Memory) hoc b nh
flash ch khng phi l trong mt a. Phn mm thng chy vi s ti
nguyn phn cng hn ch: khng c bn phm, mn hnh hoc c nhng vi
kch thc nh, b nh hn ch.
Sau y, chng ta s i su, xem xt c th c im ca cc thnh phn ca h thng
nhng.
Giao din
Cc h thng nhng c th khng c giao din (i vi nhng h thng n nhim) hoc
c y giao din giao tip vi ngi dng tng t nh cc h iu hnh trong cc
thit b bn. i vi cc h thng n gin, thit b nhng s dng nt bm, n LED
v hin th ch c nh hoc ch hin th s, thng i km vi mt h thng menu n
gin.
Cn trong mt h thng phc tp hn, mt mn hnh ha, cm ng hoc c cc nt
bm l mn hnh cho php thc hin cc thao tc phc tp m ti thiu ha c
khong khng gian cn s dng. ngha ca cc nt bm c th thay i theo mn hnh
v cc la chn. Cc h thng nhng thng c mt mn hnh vi mt nt bm dng cn
iu khin (joystick button). S pht trin mnh m ca mng ton cu mang n cho
nhng nh thit k h nhng mt la chn mi l s dng mt giao din web thng qua
vic kt ni mng. iu ny c th gip trnh c chi ph cho nhng mn hnh phc
tp nhng ng thi vn cung cp kh nng hin th v nhp liu phc tp khi cn n,
thng qua mt my tnh khc. iu ny l ht sc hu dng i vi cc thit b iu
khin t xa, ci t vnh vin. V d, cc router l cc thit b ng dng tin ch ny.
Kin trc CPU
Cc b x l trong h thng nhng c th c chia thnh hai loi: Vi x l v vi iu
khin. Cc vi iu khin thng c cc thit b ngoi vi c tch hp trn chip nhm
gim kch thc ca h thng. C rt nhiu loi kin trc CPU c s dng trong thit
k h nhng nh ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR
iu ny tri ngc vi cc loi my tnh bn, thng b hn ch vi mt vi kin
trc my tnh nht nh. Cc h thng nhng c kch thc nh v c thit k
hot ng trong mi trng cng nghip thng la chn PC/104 v PC/104++ lm nn
tng. Nhng h thng ny thng s dng DOS, Linux hoc cc h iu hnh nhng
thi gian thc nh QNX hay VxWorks. Cn cc h thng nhng c kch thc rt ln

21/99

thng s dng mt cu hnh thng dng l h thng on chip (System on a chip SoC),
mt bng mch tch hp cho mt ng dng c th (An Application Specific Integrated
Circuit ASIC). Sau nhn CPU thm vo nh mt phn ca thit k chip. Mt chin
lc tng t l s dng FPGA (field-programmable gate array) v lp trnh cho n vi
nhng thnh phn nguyn l thit k bao gm c CPU.
Thit b ngoi vi
H thng nhng giao tip vi bn ngoi thng qua cc thit b ngoi vi, v d nh:

Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485.


Universal Serial Bus (USB).
Networks: Controller Area Network, LonWorks.
B nh thi: PLL(s), Capture/Compare v Time Processing Units.
Discrete IO: General Purpose Input/Output (GPIO).

Cng c pht trin


Tng t nh cc sn phm phn mm khc, phn mm h thng nhng cng c
pht trin nh vic s dng cc trnh bin dch (compilers), chng trnh dch hp ng
(assembler) hoc cc cng c g ri (debuggers). Tuy nhin, cc nh thit k h thng
nhng c th s dng mt s cng c chuyn dng nh:
B g ri mch hoc cc chng trnh m phng (emulator).
Tin ch thm cc gi tr checksum hoc CRC vo chng trnh, gip h
thng nhng c th kim tra tnh hp l ca chng trnh .
i vi cc h thng x l tn hiu s, ngi pht trin h thng c th s dng
phn mm workbench nh MathCad hoc Mathematica m phng cc php
ton.
Cc trnh bin dch v trnh lin kt (linker) chuyn dng c s dng ti
u ha mt thit b phn cng.
Mt h thng nhng c th c ngn ng lp trnh v cng c thit k ring ca
n hoc s dng v ci tin t mt ngn ng c sn.
Cc cng c phn mm c th c to ra bi cc cng ty phn mm chuyn dng v
h thng nhng hoc chuyn i t cc cng c pht trin phn mm GNU. i khi, cc
cng c pht trin dnh cho my tnh c nhn cng c s dng nu b x l ca h
thng nhng gn ging vi b x l ca mt my PC thng dng.
tin cy
Cc h thng nhng thng nm trong cc c my c k vng l s chy hng nm
tri lin tc m khng b li hoc c th khi phc h thng khi gp li. V th, cc phn

22/99

mm h thng nhng c pht trin v kim th mt cch cn thn hn l phn mm


cho my tnh c nhn. Ngoi ra, cc thit b ri khng ng tin cy nh a, cng tc
hoc nt bm thng b hn ch s dng. Vic khi phc h thng khi gp li c th
c thc hin bng cch s dng cc k thut nh watchdog timer nu phn mm
khng u n nhn c cc tn hiu watchdog nh k th h thng s b khi ng li.
Mt s vn c th v tin cy nh:
H thng khng th ngng sa cha mt cch an ton, v d nh cc h
thng khng gian, h thng dy cp di y bin, cc n hiu dn ng
Gii php a ra l chuyn sang s dng cc h thng con d tr hoc cc phn
mm cung cp mt phn chc nng.
H thng phi c chy lin tc v tnh an ton, v d nh cc thit b dn
ng my bay, thit b kim sot an ton trong cc nh my ha cht
Gii php a ra l la chn backup h thng.
Nu h thng ngng hot ng s gy tn tht rt nhiu tin ca v d nh cc
dch v bun bn t ng, h thng chuyn tin, h thng kim sot trong cc
nh my

Mt s v d v h thng nhng
Quanh ta c rt nhiu sn phm nhng nh l vi sng, ni cm in, iu ho, in thoi
di ng, t, my bay, tu thu, cc u o c cu chp hnh thng minh . Ta c th
thy hin nay h thng nhng c mt mi lc mi ni trong cuc sng ca chng ta.
Cc my tr li t ng, cc thit b y t, my in, h thng dn ng trong khng lu
u c tch hp cc h thng nhng.

Cu trc bn trong Router

Router l mt v d ca h thng nhng. Cc h thng nhng trong m hnh Router bao


gm: Microprocessor (4), RAM (6), v Flash memory(7).

23/99

Cc thit b trn cc tu v tr c tch hp rt nhiu cc h thng nhng.

Tu thm d Sao Ha

24/99

Cc thnh phn c bn trong kin trc


phn cng H thng nhng

Kin trc in hnh ca cc chip VXL/VK nhng

n v x l trung tm CPU

Kin trc CPU

Ngi ta vn bit ti phn li x l ca cc b vi x l (VXL) l n v x l trung tm


CPU (Central Processing Unit) ng vai tr nh b no chu trch nhim thc thi cc
php tnh v thc hin cc lnh. Phn chnh ca CPU m nhn chc nng ny l n v
logic ton hc (ALU - Arthimetic Logic Unit). Ngoi ra h tr hot ng cho ALU
cn thm mt s thnh phn khc nh b gii m (decoder), b tun t (Sequencer) v
cc thanh ghi.

25/99

B gii m chuyn i (thng dch) cc lnh lu tr trong b m chng trnh thnh


cc m m ALU c th hiu c v thc thi. B tun t c nhim v qun l dng d
liu trao i qua bus d liu ca VXL. Cc thanh ghi c s dng CPU lu tr tm
thi cc d liu chnh cho vic thc thi cc lnh v chng c th thay i ni dung trong
qu trnh hot ng ca ALU. Hu ht cc thanh ghi ca VXL u l cc b nh c
tham chiu (mapped) v hi nhp vi khu vc b nh v c th c s dng nh bt
k khu vc nh khc.
Cc thanh ghi c chc nng lu tr trng thi ca CPU. Nu cc ni dung ca b nh
VXL v cc ni dung ca cc thanh ghi ti mt thi im no c lu gi y th
hon ton c th tm dng thc hin phn chng trnh hin ti trong mt khong thi
gian bt k v c th tr li trng thi ca CPU trc . Thc t s lng cc thanh ghi
v tn gi ca chng cng khc nhau trong cc h VXL/VK v thng do chnh cc
nh ch to qui nh, nhng v c bn chng u c chung cc chc nng nh nu.
Khi th t byte trong b nh c xc nh th ngi thit k phn cng phi thc
hin mt s quyt nh xem CPU s lu d liu nh th no. C ch ny cng khc
nhau tu theo kin trc tp lnh c p dng. C ba loi hnh c bn:
Kin trc ngn xp.
Kin trc b tch lu.
Kin trc thanh ghi mc ch chung.
Kin trc ngn xp s dng ngn xp thc hin lnh v cc ton t nhn c t nh
ngn xp. Mc d c ch ny h tr mt m tt v m hnh n gin cho vic nh
gi cch th hin chng trnh nhng ngn xp khng th h tr kh nng truy nhp
ngu nhin v hn ch hiu sut thc hin lnh.
Kin trc b tch lu vi lnh mt ton t ngm mc nh cha trong thanh ghi tch lu
c th gim c phc tp bn trong ca cu trc CPU v cho php cu thnh lnh
rt nh gn. Nhng thanh ghi tch lu ch l ni cha d liu tm thi nn giao thng b
nh rt ln.
Kin trc thanh ghi mc ch chung s dng cc tp thanh ghi mc ch chung v c
n nhn nh m hnh ca cc h thng CPU mi, hin i. Cc tp thanh ghi nhanh
hn b nh thng v d dng cho b bin dch x l thc thi v c th c s dng
mt cch hiu qu. Hn na gi thnh phn cng ngy cng c xu th gim ng k v
tp thanh ghi c th tng nhanh. Nu c ch truy nhp b nh nhanh th kin trc da
trn ngn xp c th l s la chn l tng, cn nu truy nhp b nh chm th kin
trc thanh ghi s l s la chn ph hp nht.

26/99

Mt s thanh ghi vi chc nng in hnh thng c s dng trong cc kin trc CPU
nh sau:
Thanh ghi con tr ngn xp (stack pointer): Thanh ghi ny lu gi a ch tip theo ca
ngn xp. Theo nguyn l gi tr a ch cha trong thanh ghi con tr ngn xp s gim
nu d liu c lu thm vo ngn xp v s tng khi d liu c ly ra khi ngn
xp.
Thanh ghi ch s (index register): Thanh ghi ch s c s dng lu a ch khi
mode a ch c s dng. N cn c bit ti vi tn gi l thanh ghi con tr hay
thanh ghi la chn tp (Microchip).
Thanh ghi a ch lnh/B m chng trnh (Program Counter): Mt trong nhng
thanh ghi quan trng nht ca CPU l thanh ghi b m chng trnh. Thanh ghi b m
chng trnh lu a ch lnh tip theo ca chng trnh s c CPU x l. Mi khi
lnh c tr ti v c CPU x l th ni dung gi tr ca thanh ghi b m chng
trnh s tng ln mt. Chng trnh s kt thc khi thanh ghi PC c gi tr bng a ch
cui cng ca chng trnh nm trong b nh chng trnh.
Thanh ghi tch ly (Accumulator): Thanh ghi tch ly l mt thanh ghi giao tip trc tip
vi ALU, c s dng lu gi cc ton t hoc kt qu ca mt php ton trong qu
trnh hot ng ca ALU.

Xung nhp v trng thi tn hiu


Trong VXL v cc vi mch s ni chung, hot ng ca h thng c thc hin ng
b hoc d b theo cc xung nhp chun. Cc nhp c ly trc tip hoc gin tip t
mt ngun xung chun thng l cc mch to xung. m t hot ng ca h thng,
cc tn hiu d liu v iu khin thng c m t trng thi theo gin thi gian
v mc tn hiu nh c ch ra trong Hnh 2.3.

M t v trng thi tn hiu hot ng trong VXL

Mc ch ca vic m t trng thi tn hiu theo gin thi gian v mc tn hiu l


phn tch v xc nh chui s kin hot ng chi tit trong mi chu k bus. Nh vic
27/99

m t ny chng ta c th xem xt n kh nng p ng thi gian ca cc s kin thc


thi trong h thng v thi gian cn thit thc thi hot ng tun t cng nh l kh
nng tng thch khi c s hot ng phi hp gia cc thit b ghp ni hay m rng
trong h thng. Thng thng thng tin v cc nhp thi gian hot ng cng nh c
tnh k thut chi tit c cung cp hoc qui nh bi cc nh ch to.
Mt s c trng v thi gian ca cc trng thi hot ng c bn ca cc tn hiu h
thng gm c nh sau:
Thi gian tng hoc gim.
Thi gian tr lan truyn tn hiu.
Thi gian thit lp v lu gi.
Tr cm hot ng v trng thi treo (Tri-State).
rng xung.
Tn s nhp xung hot ng.
Thi gian tng hoc gim:

M t trng thi tn hiu tng v gim

Thi gian tng c nh ngha l khong thi gian tn hiu tng t 20% n 80%
mc tn hiu cn thit. Thi gian gim l khong thi gian tn hiu gim t 80% n
20% mc tn hiu cn thit.
Thi gian tr lan truyn tn hiu:
L khong thi gian tnh t khi thay i tn hiu vo cho ti khi c s thay i tn hiu
u ra. c tnh ny thng do cu to v kh nng truyn dn tn hiu vt l trong h
thng tn hiu.

28/99

M t trng thi v tr lan truyn tn hiu

Thi gian thit lp v lu gi:


Khong thi gian cn thit tn hiu trch mu t ti mt trng thi n nh trc khi
nhp xung chun ng h thay i c gi l thi gian thit lp. Thi gian lu gi l
khong thi gian cn thit duy tr tn hiu trch mu n nh sau khi xung nhp chun
ng h thay i. Thc cht khong thi gian thit lp v thi gian lu gi l cn thit
m bo tn hiu c ghi nhn chnh xc v n nh trong qu trnh hot ng v
chuyn mc trng thi. Gin thi gian trong Hnh 2.6: Thi gian thit lp v lu gi
minh ha thi gian thit lp v lu gi trong hot ng ca Triger D.

Thi gian thit lp v lu tr

Trong trng hp hot ng chuyn trng thi tn hiu khng ng b v khng m bo


c thi gian thit lp v lu gi s c th dn n s mt n nh hay khng xc nh
mc tn hiu trong h thng. Hin tng ny c bit ti vi tn gi l metastabilit.
minh ha cho hin tng ny trong Hnh 2.7 m t hot ng li ca mt Triger khi cc
mc tn hiu vo khng tha mn yu cu v thi thit lp v lu gi.

Hin tng Metastabilit trong hot ng ca Triger D

29/99

Chu k tn hiu 3 trng thi v contention:

M t chu k tn hiu 3 trng thi v Contention

rng xung v tn s nhp xung chun:

rng v tn s xung nhp chun

Bus a ch, d liu v iu khin


Bus a ch:
Bus a ch l cc ng dn tn hiu logic mt chiu truyn a ch tham chiu ti
cc khu vc b nh v ch ra d liu c lu gi u trong khng gian b nh. Trong
qa trnh hot ng CPU s iu khin bus a ch truyn d liu gia cc khu vc b
nh v CPU. Cc a ch thng thng tham chiu ti cc khu vc b nh hoc cc khu
vc vo ra, hoc ngoi vi. D liu c lu cc khu vc thng l 8bit (1 byte),
16bit, hoc 32bit ty thuc vo cu trc tng loi vi x l/vi iu khin. Hu ht cc vi
iu khin thng nh a ch d liu theo khi 8bit. Cc loi vi x l 8bit, 16bit v
32bit ni chung cng u c th lm vic trao i vi kiu d liu 8bit v 16bit.
Chng ta vn thng c bit ti khi nim a ch truy nhp trc tip, l kh nng
CPU c th tham chiu v truy nhp ti trong mt chu k bus. Nu vi x l c N bit a
ch tc l n c th nh a ch c 2N khu vc m CPU c th tham chiu trc tip
ti. Qui c cc khu vc c nh a ch bt u t a ch 0 v tng dn n 2N-1.
Hin nay cc vi x l v vi iu khin ni chung ch yu vn s dng ph bin cc bus

30/99

d liu c rng l 16, 20, 24, hoc 32bit. Nu nh a ch theo byte th mt vi x l


16bit c th nh a ch c 216 khu vc b nh tc l 65,536 byte = 64Kbyte. Tuy
nhin c mt s khu vc b nh m CPU khng th truy nhp trc tip ti tc l phi s
dng nhiu nhp bus truy nhp, thng thng phi kt hp vi vic iu khin phn
mm. K thut ny ch yu c s dng m rng b nh v thng c bit ti
vi khi nim nh a ch trang nh khi nhu cu nh a ch khu vc nh vt qu
phm vi c th nh a ch truy nhp trc tip.
V d: CPU 80286 c 24bit a ch s cho php nh a ch trc tip cho 224 byte nh.
CPU 80386 v cc loi vi x l mnh hn c khng gian a ch 32bit s c th nh
c ti 232 byte a ch trc tip.
Bus d liu
Bus d liu l cc knh truyn ti thng tin theo hai chiu gia CPU v b nh hoc
cc thit b ngoi vi vo ra. Bus d liu c iu khin bi CPU c hoc vit cc
d liu hoc m lnh thc thi trong qu trnh hot ng ca CPU. rng ca bus d
liu ni chung s xc nh c lng d liu c th truyn v trao i trn bus. Tc
truyn hay trao i d liu thng c tnh theo n v l [byte/s]. S lng ng bit
d liu s cho php xc nh c s lng bit c th lu tr trong mi khu vc tham
chiu trc tip. Nu mt bus d liu c kh nng thc hin mt ln truyn trong 1 s,
th bus d liu 8bit s c bng thng l 1Mbyte/s, bus 16bit s c bng thng l 2Mbyte/
s v bus 32bit s c bng thng l 4Mbyte/s. Trong trng hp bus d liu 8bit vi chu
k bus l T=1s (tc l s truyn c 1byte/1chu k) th s truyn c 1 Mbyte trong
1s hay 2Mbyte trong 2s.
Bus iu khin
Bus iu khin phc v truyn ti cc thng tin d liu iu khin hot ng ca h
thng. Thng thng cc d liu iu khin bao gm cc tn hiu chu k ng b cc
nhp chuyn ng v hot ng ca h thng. Bus iu khin thng c iu khin
bi CPU ng b ha nhp hot ng v d liu trao i trn cc bus. Trong trng
hp vi x l s dng dn knh bus d liu v bus a ch tc l mt phn hoc ton b
bus d liu s c s dng chung chia s vi bus a ch th cn mt tn hiu iu khin
phn nhp truy nhp cho php cht lu tr thng tin a ch mi khi bt u mt chu
k truyn. Mt v d v cc chu k bus v s ng b ca chng trong hot ng ca
h thng bus a ch v d liu dn knh c ch ra trong Hnh 2.10: y l hot ng
in hnh trong h vi iu khin 8051 v nhiu loi tng t.

31/99

Chu k hot ng bus dn knh

B nh
Kin trc b nh:
Kin trc b nh c chia ra lm hai loi chnh v c p dng rng ri trong hu ht
cc Chip x l nhng hin nay l kin trc b nh von Neumann v Havard. Trong kin
trc von Neumann khng phn bit vng cha d liu v m chng trnh. C chng
trnh v d liu u c truy nhp theo cng mt ng. iu ny cho php a d
liu vo vng m chng trnh ROM, v cng c th lu m chng trnh vo vng d
liu RAM v thc hin t .

Kin trc b nh von Neumann v Havard

Kin trc Havard tch/phn bit vng lu m chng trnh v d liu. M chng trnh
ch c th c lu v thc hin trong vng cha ROM v d liu cng ch c th lu
v trao i trong vng RAM. Hu ht cc vi x l nhng ngy nay s dng kin trc b
nh Havard hoc kin trc Havard m rng (tc l b nh chng trnh v d liu tch
bit nhng vn cho php kh nng hn ch ly d liu ra t vng m chng trnh).
Trong kin trc b nh Havard m rng thng s dng mt s lng nh cc con tr
ly d liu t vng m chng trnh theo cch nhng vo trong cc lnh tc thi. Mt
s Chip vi iu khin nhng tiu biu hin nay s dng cu trc Havard l 8031, PIC,
Atmel AVR90S. Nu s dng Chip 8031 chng ta s nhn thy iu ny thng qua vic
truy nhp ly d liu ra t vng d liu RAM hoc t vng m chng trnh. Chng ta
c mt vi con tr c s dng ly d liu ra t b nh d liu RAM, nhng ch c

32/99

duy nht mt con tr DPTR c th c s dng ly d liu ra t vng m chng


trnh. Hnh 3.11 m t nguyn l kin trc ca b nh von Neumann v Harvard.
u im ni bt ca cu trc b nh Harvard so vi kin trc von Neumann l c hai
knh tch bit truy nhp vo vng b nh m chng trnh v d liu nh vy m m
chng trnh v d liu c th c truy nhp ng thi v lm tng tc lung trao
i vi b x l.
B nh chng trnh PROM (Programmable Read Only Memory)
Vng lu m chng trnh. C ba loi b nh PROM thng dng c s dng cho
h nhng v s c gii thiu ln lt sau y:
EPROM :Bao gm mt mng cc transistor kh trnh. M chng trnh s c ghi trc
tip v vi x l c th c ra thc hin. EPROM c th xo c bng tia cc tm v
c th c lp trnh li. Cu trc vt l ca EPROM c m t nh trong Hnh 3.12.

Nguyn l cu to v hot ng xo ca EPROM

B nh Flash: Cng ging nh EPROM c cu to bi mt mng transistor kh trnh


nhng c th xo c bng in v chnh v vy c th np li chng trnh m khng
cn tch ra khi nn phn cng VXL. u im ca b nh flash l c th lp trnh trc
tip trn mch cng m n ang thc thi trn .

33/99

S nguyn l ghp ni EPROM vi VXL

B nh d liu RAM: Vng lu hoc trao i d liu trung gian trong qu trnh
thc hin chng trnh.

Cu trc nguyn l b nh RAM

C hai loi SRAM v DRAM.

Cu trc mt phn t nh DRAM

34/99

Nguyn l ghp ni (m rng) RAM vi VXL

Ngoi vi
B nh thi/B m:
Hu ht cc chip vi iu khin ngy nay u c t nht mt b nh thi gian/b m c
th cu hnh hot ng linh hot theo cc mode phc v nhiu mc ch trong cc ng
dng x l, iu khin. Cc b nh thi gian cho php to ra cc chui xung v ngt
thi gian hoc m theo cc khong thi gian c th lp trnh. Chng thng c ng
dng ph bin trong cc nhim v m xung, o khong thi gian cc s kin, hoc nh
chu k thi gian thc thi cc tc v. Mt trong nhng ng dng quan trng ca b nh
thi gian l to nhp t b to xung thch anh cho b truyn thng d b a nng hot
ng. Thc cht l ng dng thc hin php chia tn s. t c chnh
xc, tn s thch anh thng c chn sao cho cc php chia s nguyn c thc hin
chnh xc m bo cho tc truyn thng d liu c to ra chnh xc. Chnh v vy
h vi iu khin 80C51 thng hay s dng thch anh c tn s dao ng l 11.059 thay
v 12MHz to ra nhp hot ng truyn thng tc chun 9600.

B nh thi/b m 8bit ca AVR

B iu khin ngt:

35/99

Ngt l mt s kin xy ra lm dng hot ng chng trnh hin ti phc v thc thi
mt tc v hay mt chng trnh khc. C ch ngt gip CPU lm tng tc p ng
phc v cc s kin trong chng trnh hot ng ca VXL/VK. Cc VK khc nhau
s nh ngha cc ngun to ngt khc nhau nhng u c chung mt c ch hot ng
v d nh ngt truyn thng ni tip, ngt b nh thi gian, ngt cng, ngt ngoi...Khi
mt s kin yu cu ngt xut hin, nu c chp nhn CPU s lu ct trng thi hot
ng cho chng trnh hin ti ang thc hin v d nh ni dung b m chng trnh
(con tr lnh) cc ni dung thanh ghi lu d liu iu khin chng trnh ni chung
thc thi chng trnh phc v tc v cho s kin ngt. Thc cht qu trnh ngt l CPU
nhn dng tn hiu ngt, nu chp nhn s a con tr lnh chng trnh tr ti vng
m cha chng trnh phc v tc v ngt. V vy mi mt ngt u gn vi mt vector
ngt nh mt con tr lu thng tin a ch ca vng b nh cha m chng trnh phc
v tc v ca ngt. CPU s thc hin chng trnh phc v tc v ngt n khi no gp
lnh quay tr v chng trnh trc thi im s kin ngt xy ra. C th phn ra 2 loi
ngun ngt: Ngt cng v Ngt mm.
Ngt mm: Ngt mm thc cht thc hin mt li gi hm c bit m c kch hot
bi cc ngun ngt l cc s kin xut hin t bn trong chng trnh v ngoi vi tch
hp trn Chip v d nh ngt thi gian, ngt chuyn i A/D, C ch ngt ny cn
c hiu l loi thc hin ng b vi chng trnh v n c kch hot v thc thi ti
cc thi im xc nh trong chng trnh. Hm c gi s thc thi chc nng tng
ng vi yu cu ngt. Cc hm thng c tr bi mt vector ngt m c nh
ngha v gn c nh bi nh sn xut Chip. V d nh h iu hnh ca PC s dng
ngt s 21hex gn cho ngt truy nhp c d liu t a cng v xut d liu ra my
in.
Ngt cng: Ngt cng c th c xem nh l mt li gi hm c bit trong ngun
kch hot l mt s kin n t bn ngoi chng trnh thng qua mt cu trc phn
cng (thng c kt ni vi th gii bn ngoi qua cc chn ngt). Ngt cng thng
c hiu hot ng theo c ch d b v cc s kin ngt kch hot t cc tn hiu ngoi
vi bn ngoi v tng i c lp vi CPU, thng l khng xc nh c thi im
kch hot. Khi cc ngt cng c kch hot CPU s nhn dng v thc hin li gi hm
thc thi chc nng phc v s kin ngt tng ng.
Trong cc c ch ngt khong thi gian t khi xut hin s kin ngt (c yu cu phc
v ngt) ti khi dch v ngt c thc thi l xc nh v tu thuc vo cng ngh phn
cng x l ca Chip.
B nh thi ch canh (Watchdog Timer)
Thng thng khi c mt s c xy ra lm h thng b treo hoc chy qun, CPU s
khng th tip tc thc hin ng chc nng. c bit khi h thng phi lm vic
ch vn hnh t ng v khng c s can thip trc tip thng xuyn bi ngi

36/99

vn hnh. thc hin c ch t gim st v pht hin s c phn mm, mt s VXL/


VK c thm mt b nh thi ch canh. Bn cht l mt b nh thi c bit
nh ngha mt khung thi gian hot ng bnh thng ca h thng. Nu c s c phn
mm xy ra s lm h thng b treo khi b nh thi ch canh s pht hin v gip
h thng thot khi trng thi bng cch thc hin khi to li chng trnh. Chng
trnh hot ng khi c b nh thi phi m bo reset n trc khi khung thi gian b vi
phm. Khung thi gian ny c nh ngha ph thuc vo s nh gi ca ngi thc
hin phn mm, thit lp khong thi gian m bo chc chn h thng thc hin bnh
thng khng c s c phn mm.
C mt s c ch thc hin ci t b nh thi cho canh gim st hot ng ca h
thng nh sau:

S nguyn l ca b nh thi

Nguyn l hot ng ca b nh thi

B iu khin truy cp b nh trc tip DMA:


DMA (Direct Memory Access) l c ch hot ng cho php hai hay nhiu vi x l hoc
ngoi vi chia s bus chung. Thit b no ang c quyn iu khin bus s c th ton
quyn truy nhp v trao i d liu trc tip vi cc b nh nh h thng c mt vi x
l. ng dng ph bin nht ca DMA l chia s b nh chung gia hai b vi x l hoc
cc ngoi vi truyn d liu trc tip gia thit b ngoi vi vo/ra v b nh d liu
ca VXL.
37/99

Truy nhp b nh trc tip c s dng p ng nhu cu trao i d liu vo ra


tc cao gia ngoi vi vi b nh. Thng thng cc ngoi vi kt ni vi h thng
phi chia s bus d liu v c iu khin bi CPU trong qu trnh trao i d liu.
iu ny lm hn ch tc trao i, tng cng tc v loi b s can thip ca
CPU, c bit trong trng hp cn truyn mt lng d liu ln. C ch hot ng
DMA c m t nh trong Hnh 2.20. Th tc c bt u bng vic yu cu thc
hin DMA vi CPU. Sau khi x l, nu c chp nhn CPU s trao quyn iu khin
bus cho ngoi vi v thc hin qu trnh trao i d liu. Sau khi thc hin xong CPU s
nhn c thng bo v nhn li quyn iu khin bus. Trong c ch DMA, c hai cch
truyn d liu: kiu DMA chu k n, v kiu DMA chu k nhm (burst).

Nhp hot ng DMA

DMA chu k n v nhm: Trong kiu hot ng DMA chu k nhm, ngoi vi s nhn
c quyn iu khin v truyn khi d liu ri tr li quyn iu khin cho CPU.
Trong c ch DMA chu k n ngoi vi sau khi nhn c quyn iu khin bus ch
truyn mt t d liu ri tr li ngay quyn kim sot b nh v bus d liu cho CPU.
Trong c ch thc hin DMA cn c mt bc x l quyt nh xem thit b no s
c nhn quyn iu khin trong trng hp c nhiu hn mt thit b c nhu cu s
dng DMA. Thng thng kiu DMA chu k nhm cn t d liu thng tin iu khin
(overhead) nn c kh nng trao i vi tc cao nhng li chim nhiu thi gian truy
nhp bus do truyn c khi d liu ln. iu ny c th nh hng n hot ng ca
c h thng do trong sut qu trnh thc hin DMA nhm, CPU s b kho quyn truy
nhp b nh v khng th x l cc nhim v khc ca h thng m c nhu cu b nh,
v d nh cc dch v ngt, hoc cc tc v thi gian thc...
Chu k ri (Cycle Stealing): Trong kiu ny DMA s c thc hin trong nhng thi
im chu k bus m CPU khng s dng bus do khng cn thc hin th tc x l
cp pht quyn truy nhp v thc hin DMA. Hu ht cc vi x l hin i u s dng
gn nh 100% dung lng b nh v bng thng ca bus nn s khng c nhiu thi

38/99

gian dnh cho DMA thc hin. tit kim v ti u ti nguyn th cn c mt trng
ti phn x v d liu s c truyn i xp chng theo thi gian. Ni chung kiu DMA
dng burst hiu qu nht khi khong thi gian cn thc hin DMA tng i nh. Trong
khong thi gian thc hin DMA, ton b bng thng ca bus s c s dng ti a
v ton b khi d liu s c truyn i trong mt khong thi gian rt ngn. Nhng
nhc im ca n l nu d liu cn truyn ln v cn mt khong thi gian di th s
dn n vic block CPU v c th b qua vic x l cc s kin v tc v khc. i vi
DMA chu k n th yu cu truy nhp b nh, truyn mt t d liu v gii phng bus.
C ch ny cho php thc hin truyn interleave v c bit ti vi tn gi inteleaved
DMA. Kiu truyn DMA chu k n ph hp truyn d liu trong mt khong thi
gian di m c thi gian yu cu truy nhp v gii phng bus cho mi ln truyn
mt t d liu. Chnh v vy s gim bng thng truy nhp bus do phi mt nhiu thi
gian yu cu truy nhp v gii phng bus. Trong trng hp ny CPU v cc thit b
khc vn c th chia s v truyn d liu nhng trong mt di bng thng hp. Trong
nhiu h thng bus thc hin c ch x l v gii quyt yu cu truy nhp (trng ti)
thng qua d liu truyn v vy cng khng nh hng nhiu n tc truyn DMA.
DMA c yu cu khi kh nng iu khin ca CPU truyn d liu thc hin qu
chm. DMA cng thc s c ngha khi CPU ang phi thc hin cc tc v khc m
khng cn nhu cu truy nhp bus.

Giao din
Giao din song song 8bit/16bit
Cc cng song song l mt dng giao din vo ra n gin v ph bin nht kt ni
thng tin vi ngoi vi. C nhiu loi cu trc giao din vt l in t t dng cng vo
ra n gin cc Collector TTL h trong cc ng dng cng my in n cc loi cu trc
giao din cng tc cao nh cc chun bus IEEE-488 hay SCSI. Hu ht cc chip iu
khin nhng c mt vi cng vo ra song song kh trnh (c th cu hnh). Cc giao din
ph hp vi cc cng vo ra n gin nh cc kho chuyn. Chng cng ph hp
trong cc bi ton phc v giao din kt ni iu khin v gim st theo cc giao din
nh kiu rle bn dn.

Cu trc nguyn l in hnh ca mt cng vo/ra logic

39/99

Giao din ni tip:


USART:

Cu trc n gin ha cuae USART

Mode hot ng truyn thng ng b

Mode hot ng truyn thng d b

I2C (Inter-IC)
Giao thc u tin truyn thng ni tip c pht trin bi Philips Semiconductor v
c gi l bus I2C. V ngun gc n c thit k l iu khin lin thng IC (Inter
IC) nn n c t tn l I2C. Tt c cc chp c tch hp v tng thch vi I2C u
c thm mt giao din tch hp trn Chip truyn thng trc tip vi cc thit b tng
40/99

thch I2C khc. Vic truyn d liu ni tip theo hai hng 8 bit c thc thi theo 3
ch sau:
Chun (Standard)100 Kbits/sec
Nhanh (Fast)400 Kbits/sec
Tc cao (High Speed)3.4 Mbits/sec
ng bus thc hin truyn thng ni tip I2C gm hai ng l ng truyn d liu
ni tip SDA v ng truyn nhp xung ng h ni tip SCL. V c ch hot ng l
ng b nn n cn c mt nhp xung tn hiu ng b. Cc thit b h tr I2C u c
mt a ch nh ngha trc, trong mt s bit a ch l thp c th cu hnh. n v
hoc thit b khi to qu trnh truyn thng l n v Ch v cng l n v to xung
nhp ng b, iu khin cho php kt thc qu trnh truyn. Nu n v Ch mun
truyn thng vi n v khc n s gi km thng tin a ch ca n v m n mun
truyn trong d liu truyn. n v T u c gn v nh a ch thng qua n
v Ch c th thit lp truyn thng v trao i d liu. Bus d liu c thit k cho
php thc hin nhiu n v Ch v T trn cng Bus.
Qu trnh truyn thng I2C c bt u bng tn hiu start to ra bi n v Ch. Sau
n v Ch s truyn i d liu 7 bit cha a ch ca n v T m n mun truyn
thng, theo th t l cc bit c trng s ln nht MSB s c truyn trc. Bit th
tm tip theo s cha thng tin xc nh n v T s thc hin vai tr nhn (0) hay
gi (1) d liu. Tip theo s l mt bit ACK xc nhn bi n v nhn nhn c
1 byte trc hay khng. n v truyn (gi) s truyn i 1 byte d liu bt u bi
MSB. Ti im cui ca byte truyn, n v nhn s to ra mt bit xc nhn ACK mi.
Khun mu 9 bit ny (gm 8 bit d liu v 1 bit xc nhn) s c lp li nu cn truyn
tip byte na. Khi n v Ch trao i xong d liu cn n s quan st bit xc nhn
ACK cui cng ri sau s to ra mt tn hiu dng STOP kt thc qu trnh truyn
thng.
I2C l mt giao din truyn thng c bit thch hp cho cc ng dng truyn thng
gia cc n v trn cng mt bo mch vi khong cch ngn v tc thp. V d nh
truyn thng gia CPU vi cc khi chc nng trn cng mt bo mch nh EEPROM,
cm bin, ng h to thi gian thc... Hu ht cc thit b h tr I2C hot ng tc
400Kbps, mt s cho php hot ng tc cao vi Mbps. I2C kh n gin
thc thi kt ni nhiu n v v n h tr c ch xc nh a ch.
SPI:
SPI l mt giao din cng ni tip ng b ba dy cho php kt ni truyn thng nhiu
VK c pht trin bi Motorola. Trong cu hnh mng kt ni truyn thng ny phi
c mt VK gi vai tr l Ch (Master) v cc VK cn li c th hoc l Ch hoc l
T. SPI c 4 tc c th lp trnh, cc v pha nhp ng h kh trnh v kt thc ngt

41/99

truyn thng. Nhp ng h khng nm trong dng d liu v phi c cung cp nh


mt tn hiu tch c lp. C ba thanh ghi SPSR, SPCR v SPDR cho php thc hin
cc chc nng iu khin, trng thi v lu tr. C bn chn c bn cn thit thc thi
chun giao din truyn thng ny:

D liu ra MOSI (Master Output Slave Input)


D liu vo MISO (Master Input Slave Output)
Nhp xung chun SCLK (Serial Clock)
La chn thnh phn t SS (Slave Select)

Kt ni nguyn l truyn thng SPI gia my Master v Slave

Hnh 2.25 ch ra nguyn l kt ni gia mt n v Ch v mt n v T trong truyn


thng SPI. Trong tn hiu SCLK s c to ra bi n v Ch v l tn hiu vo ca
n v T. MOSI l ng truyn d liu ra t n v Ch ti n v T v MISO l
ng truyn d liu vo n v Ch n t n v T. n v T c la chn khi
n v Ch kch hot tn hiu SS.

S kt ni truyn thng SPI ca mt n v ch vi nhiu n v t

Nu h thng c nhiu n v t n v Ch s to phi ra cc tn hiu tch bit chn


n v T. C ch c thc hin nh s kt ni nguyn l m t nh trong Hnh
2.26. n v Ch s to ra tn hiu chn n v T nh cc chn tn hiu logic a chc
nng. Cc tn hiu ny phi c iu khin v m bo n nh v thi gian trnh
trng hp tn hiu b thay i trong qu trnh ang truyn d liu. Mt iu d nhn ra
rng SPI khng h tr c ch xc nhn trong qu trnh thc hin truyn thng. iu ny
ph thuc vo giao thc nh ngha hoc phi thc hin b sung thm mt s cc m
rng ph bn ngoi.
Kh nng truyn thng ng thi hai chiu vi tc ln n khong vi Mbit/s v
nguyn l kh n gin nn SPI hon ton ph hp thc hin truyn thng gia cc

42/99

thit b yu cu truyn thng tc chm, c bit hiu qu trong cc ng dng mt n


v Ch v mt n v T. Tuy nhin trong cc ng dng vi nhiu n v T vic thc
thi li kh phc tp v thiu c ch xc nh a ch, v s phc tp s tng ln khi s
n v T tng.

43/99

Mt s nn phn cng v C s k thut


ca phn mm nhng
Mt s nn phn cng nhng thng dng
Trong phn ny gii thiu ngn gn cu trc nguyn l ca cc chip x l nhng ng
dng trong cc nn phn cng nhng hin nay.
S pht trin nhanh chng cc chng loi Chip kh trnh vi mt tch hp cao v
ang c mt tc ng ng k n s thay i trong vic thit k cc nn phn cng thit
b x l v iu khin s trong thp k gn y. Mi chng loi u c nhng c im
v phm vi i tng ng dng v lun khng ngng pht trin p ng mt cch
tt nht cho cc yu cu cng ngh. Chng ang hng ti tp trung cho mt th trng
cng ngh tim nng rng ln l cc thit b x l v iu khin nhng. y gii
thiu ngn gn v 2 chng loi chip x l, iu khin nhng in hnh ang tn ti v
pht trin v mt s c im v hng phm vi ng dng ca chng.
C th k ra hng lot cc Chp kh trnh c th s dng cho cc bi ton thit k h
nhng nh cc h vi x l/vi iu khin nhng (Microprocessor/ Microcontroller), Chip
DSP (Digital Signal Processing), cc Chip kh trnh trng (FPD Field Programmable
Device). Chng ta d b chong ngp nu bt u cng vic thit k bng vic tm kim
mt Chip x l iu khin ph hp cho ng dng. V vy cn phi c mt hiu bit v
s phn bit v c im v ng dng ca chng khi la chn v thit k. Cc thng
tin lin quan nh nh sn xut cung cp Chip, cc kin thc v cng c pht trin km
theoMt s chng loi Chip in hnh s c gii thiu.
Chip Vi x l/Vi iu khin nhng
y l mt chng loi rt in hnh v ang c s dng rt ph bin hin ny. Chng
c ra i v s dng theo s pht trin ca cc Chip x l ng dng cho my tnh. V
i tng ng dng l cc thit b nhng nn cu trc cng c thay i theo p
ng cc ng dng. Hin nay chng ta c th thy cc h vi x l iu khin ca rt nhiu
cc nh ch to cung cp nh, Intel, Atmel, Motorola, Infineon. V cu trc, chng cng
tng t nh cc Chp x l pht trin cho PC nhng mc n gin hn nhiu v
cng nng v ti nguyn. Ph bin vn l cc Chip c rng bus d liu l 8bit, 16bit,
32bit. V bn cht cu trc, Chip vi iu khin l chip vi x l c tch hp thm cc
ngoi vi. Cc ngoi vi thng l cc khi chc nng ngoi vi thng dng nh b nh
thi gian, b m, b chuyn i A/D, giao din song song, ni tipMc tch hp
ngoi vi cng khc nhau tu thuc vo mc ch ng dng s c th tm c Chip ph
hp. Thc t vi cc ng dng yu cu tch hp cao th s s dng gii php tch hp

44/99

trn chip, nu khng th hu ht cc Chip u cung cp gii php m rng ngoi vi


p ng cho mt s lng ng dng rng v mm do.

Kin trc nguyn l ca VK vi cu trc Havard

Kin trc ca h VK AVR

Chip DSP
DSP vn c bit ti nh mt loi vi iu khin c bit vi kh nng x l nhanh
phc v cc bi ton yu cu khi lng v tc x l tnh ton ln. Vi u im ni
bt v rng bng thng ca bus v thanh ghi tch lu, cho php ALU x l song song
vi tc c v x l lnh nhanh hn cc loi vi iu khin thng thng. Chip DSP
cho php thc hin nhiu lnh trong mt nhp nh vo kin trc b nh Havard.
Thng thng khi phi s dng DSP tc l p ng cc bi ton tnh ton ln v tc
cao v vy nh dng biu din ton hc s l mt yu t quan trng phn loi v
c quan tm. Hin nay ch yu chng vn c phn loi theo hai kiu l du phy
ng v du phy tnh. y cng chnh l mt yu t quan trng phi quan tm i vi
ngi thit k la chn c mt DSP ph hp vi ng dng ca mnh. Cc loi
45/99

DSP du phy tnh thng l loi 16bit hoc 24bit cn cc loi du phy tnh thng l
32bit. Mt v d in hnh v mt DSP 16bit du phy tnh l TMS320C55x, lu cc s
nguyn 16bit hoc cc s thc trong mt min gi tr c nh. Tuy nhin cc gi tr v
h s trung gian c th c lu tr vi chnh xc l 32bit trong thanh ghi tch lu
40bit nhm gim thiu li tnh ton do php lm trn trong qu trnh tnh ton. Thng
thng cc loi DSP du phy tnh c gi thnh r hn cc loi DSP du phy ng v
yu cu s lng chn Onchip t hn v cn s dng lng silicon t hn.
u im ni bt ca cc DSP du phy ng l c th x l v biu din s trong di
phm vi gi tr rng v ng. Do vn v chuyn i v hn ch v phm vi biu
din s khng phi quan tm nh i vi loi DSP du phy tnh. Mt loi DSP 32bit
du phy tnh in hnh l TMS320C67x c th x l v biu din s gm 24bit mantissa
v 8bit exponent. Phn mantissa biu din phn s l trong phm vi -1.0 +1.0 v phn
exponent biu din v tr ca du phy nh phn v c th dch chuyn sang tri hoc
phi tu theo gi tr s m n biu din. iu ny tri ngc vi cc thit k trn nn
DSP du phy tnh, ngi pht trin chng trnh phi t qui c, tnh ton v phn chia
n nh thang biu din s v phi lun lu tm ti kh nng trn s c th xy ra trong
qu trnh x l tnh ton. Chnh iu ny gy ra kh khn khng nh i vi ngi
lp trnh. Ni chung pht trin chng trnh cho DSP du phy ng thng n gin
hn nhng gi thnh li cao hn nhiu v nng lng tiu th thng thng cng ln
hn.
V d chnh xc ca DSP du phy ng 32 bit l 223 vi 24 bit biu din phn
mantissa. Vng ng l (1.18 1038 x 3.4 1038).
Nhng nh thit k h thng phi quyt nh vng v chnh xc cn thit cho cc ng
dng. Cc vi x l du phy ng thng c s dng cho cc ng dng yu cu v
chnh xc cao v di biu din s ln ph hp vi h thng c cu trc b nh ln.
Hn na cc DSP du phy ng cho php pht trin phn mm hiu qu v n gin
hn bng cc trnh bin dch ngn ng bc cao nh C do c th gim c gi thnh
v thi gian pht trin. Tuy nhin gi thnh li cao nn cc DSP du phy ng ph hp
vi cc ng dng kh c bit v thng l vi s lng t.

C s k thut ca phn mm nhng


Phn mm nhng l g?
Phn mm nhng l mt chng trnh c vit, bin dch trn my tnh v np vo mt
h thng khc (gi tt l KIT) bao gm mt hoc nhiu b vi x l c ci sn mt
h iu hnh, b nh ghi chp c, cc cng giao tip vi cc phn cng khc
Phn mm nhng l phn mm to nn phn hn, phn tr tu ca cc sn phm nhng.
Phn mm nhng ngy cng c t l gi tr cao trong gi tr ca cc sn phm nhng.
46/99

Hin nay phn ln cc phn mm nhng nm trong cc sn phm truyn thng v cc


sn phm in t tiu dng (consumer electronics), tip n l trong cc sn phm t,
phng tin vn chuyn, my mc thit b y t, cc thit b nng lng, cc thit b cnh
bo bo v v cc sn phm o v iu khin.
c th tn ti v pht trin, cc sn phm cng nghip v tiu dng cn phi thng
xuyn i mi v ngy cng c nhiu chc nng tin dng v thng minh hn. Cc chc
nng ny phn ln do cc chng trnh nhng to nn. Phn mm nhng l mt lnh
vc cng ngh then cht cho s pht trin kinh t ca nhiu quc gia trn th gii nh
Nht Bn, Hn Quc, Phn Lan v Trung quc. Ti M c nhiu chng trnh h tr
ca Nh nc pht trin cc h thng v phn mm nhng. Hn Quc c nhng d
n ln nhm pht trin cng ngh phn mm nhng nh cc thit b gia dng ni mng
Internet, h thng phn mm nhng cho pht trin thnh ph thng minh, d n pht
trin ngnh cng nghip phn mm nhng, trung tm h tr cc ngnh cng nghip hu
PC.... Thy in coi pht trin cc h nhng c tm quan trng chin lc cho s pht
trin ca t nc. Phn Lan c nhng chnh sch quc gia tch cc cho nghin cu pht
trin cc h nhng c bit l cc phn mm nhng. Nhng quc gia ny cn thnh lp
nhiu vin nghin cu v trung tm pht trin cc h nhng.
c im ca phn mm nhng
Hin nay phn mm nhng c mt s c im sau ni bt:
Phn mm nhng pht trin theo hng chc nng ha c th.
Hn ch v ti nguyn b nh.
Yu cu thi gian thc.
Quy trnh pht trin ca phn mm nhng

Qu trnh bin dch v pht trin phn mm nhng

Qu trnh bin dch (Computing):

47/99

Nhim v chnh ca b bin dch l chuyn i chng trnh c vit bng ngn ng
thn thin vi con ngi v d nh C, C++,thnh tp m lnh tng ng c th c
v hiu bi b vi x l ch. Theo cch hiu ny th bn cht mt b hp ng cng l
mt b bin dch chuyn i mt - mt t mt dng lnh hp ng thnh mt dng m
lnh tng ng cho b vi x l c th hiu v thc thi. Chnh v vy i khi ngi ta
vn nhm hiu gia khi nim b hp ng v b bin dch. Tuy nhin vic bin dch ca
b hp ng s c thc thi n gin hn rt nhiu so vi cc b bin dch cho cc m
ngun vit bng ngn ng bc cao khc.
Mi mt b x l thng c ring ngn ng my v vy cn phi chn la mt b bin
dch ph hp c th chuyn i chnh xc thnh dng m my tng ng vi b x l
ch. i vi cc h thng nhng, b bin dch l mt chng trnh ng dng lun c
thc thi trn my ch (mi trng pht trin chng trnh) v cn c tn gi l b bin
dch cho (cross - compiler). V b bin dch chy trn mt nn phn cng to ra m
chng trnh chy trn mi trng phn cng khc. Vic s dng b bin dch cho ny
l mt thnh phn khng th thiu trong qu trnh pht trin phn mm cho h nhng.
Cc b bin dch cho thng c th cu hnh thc thi vic chuyn i cho nhiu nn
phn cng khc nhau mt cch linh hot. V vic la chn cu hnh bin dch tng ng
vi cc nn phn cng i khi cng kh c lp vi chng trnh ng dng ca b bin
dch.
Kt qu u tin ca qu trnh bin dch nhn c l mt dng m lnh c bit ti
vi tn gi l tp i tng (object file). Ni dung ca tp i tng ny c th c
xem nh l mt cu trc d liu trung gian v thng c nh ngha nh mt nh
dng chun COFF (Common Object File Format) hay nh dng ca b lin kt m rng
ELF (Extended Linker Format) Nu s dng nhiu b bin dch cho cc modul m
ngun ca mt chng trnh ln th cn phi m bo rng cc tp i tng c to
ra phi c chung mt kiu nh dng.
Hu ht ni dung ca cc tp i tng u bt u bi mt phn header m t cc
phn theo sau. Mi mt phn s cha mt hoc nhiu khi m hoc d liu nh c
s dng trong tp m ngun. Tuy nhin cc khi c nhm li bi b bin dch vo
trong cc phn lin quan. V d nh tt c cc khi m c nhm li vo trong mt
phn c gi l text, cc bin ton cc c khi to (cng cc gi tr khi to ca
chng) vo trong phn d liu, v cc bin ton cc cha c khi to vo trong phn
bss.
Cng kh ph bin thng c mt bng biu tng cha trong ni dung ca tp i
tng. N cha tn v a ch ca tt c cc bin v hm c tham chiu trong tp m
ngun. Cc phn cha trong bng ny khng phi lc no cng y v c mt s bin
v hm c nh ngha v cha trong cc tp m ngun khc. Chnh v vy cn phi c
b lin kt thc thi x l vn ny.

48/99

Qu trnh lin kt (Linking):


Tt c cc tp i tng nhn c sau bc thc hin bin dch u tin u phi c
t hp li theo mt cch c bit trc khi n c np v chy trn mi trng phn
cng ch. Nh thy trn, bn thn cc tp i tng cng c th l cha hon thin
v vy b lin kt phi x l t hp cc tp i tng vi nhau v hon thin nt
phn cn khuyt cho cc bin hoc hm tham chiu lin thng gia cc tp m ngun
c bin dch c lp.
Kt qu u ra ca b lin kt l mt tp i tng mi c cha tt c m v d liu
trong tp m ngun v cng kiu nh dng tp. N thc thi c iu ny bng cch t
hp mt cch tng ng cc phn text, d liu v phn bss t cc tp u vo v to
ra mt tp i tng theo nh dng m my thng nht. Trong qa trnh b lin kt thc
hin t hp cc phn ni dung tng ng n cn thc hin thm c vn hon chnh
cc a ch tham chiu ca cc bin v hm cha c y trong bc thc hin bin
dch.
Cc b lin kt c th c kch hot thc hin c lp vi b bin dch v cc tp i
tng c to ra bi b bin dch c coi nh cc tham bin vo. i vi cc ng
dng nhng n thng cha phn m khi to c bin dch cng phi c gp
trong danh sch tham bin vo ny.
Nu cng mt biu tng c khai bo hn mt ln nm trong mt tp i tng th b
lin kt s khng th x l. N s kch hot c ch bo li ngi pht trin chng
trnh xem xt li. Hoc khi mt biu tng khng th tm c a ch tham chiu thc
trong ton b cc tp i tng th b lin kt s c gng t gii quyt theo kh nng
cho php da vo cc thng tin v d nh cha trong phn m t ca th vin chun.
iu ny cng thng hoc c th gp vi trng hp cc hm tham chiu trong chng
trnh.
Rt ng tic l cc hm th vin chun thng yu cu mt vi thay i trc khi n
c th c s dng trong chng trnh ng dng nhng. Vn y l cc th vin
chun cung cp cho cc b cng c pht trin ch dng n kh nng nh dng v to ra
tp i tng. Hn na chng ta cng rt t khi c th truy nhp c vo m ngun ca
cc th vin chun c th t thay i. Hin nay cng c mt s nh cung cp dch v
phn mm h tr cng c chuyn i hay thay i th vin C chun ng dng cho
cc ng dng nhng, v d nh Cygnus. Gi phn mm ny c gi l newlib v c
cung cp min ph. Chng ta c th ti v trang web ca Cygnus. N s h tr chng ta
gii quyt vn m b lin kt c th gp phi khi chng trnh s dng cc hm thuc
th vin C chun.
Sau khi hp nht thnh cng tt c cc thnh phn m v phn d liu tng ng
cng nh cc vn v tham chiu ti cc biu tng cha c thc thi trong qu trnh

49/99

bin dch n l, b lin kt s to ra mt bn sao c bit ca chng trnh c kh nng


nh v li (relocatable). Hay ni cch khc, chng trnh c hon thin ngoi tr mt
iu: Khng c a ch b nh no cha c gn bn trong cc phn m v d liu.
Nu chng ta khng phi l ang pht trin phn mm cho h nhng th qu trnh bin
dch c th kt thc ti y. Tuy nhin, vi h nhng ngay c h thng nhng bao
gm c h iu hnh chng ta vn cn phi c mt m chng trnh (image) nh phn
c nh v tuyt i. Thc t nu c mt h iu hnh th phn m v d liu cng
thng gp c vo bn trong chng trnh c kh nng nh v li. Ton b ng dng
nhng bao gm c h iu hnh thng lin kt tnh vi nhau v thc hin nh mt m
chng trnh nh phn thng nht.
Qu trnh nh v (Locating)
Cng c thc hin vic chuyn i mt chng trnh c kh nng nh v li thnh mt
dng m chng trnh nh phn c th thc thi c gi l b nh v. N s m nhim
vai tr ca bc n gin nht trong cc bc thc thi bin dch ni chung. Thc t
chng ta phi t lm hu ht cng vic ca bc ny bng cch cung cp thng tin v
b nh c cu hnh trn nn phn cng m chng ta ang pht trin v chnh l
tham s u vo cho vic thc thi ca b nh v. B nh v s s dng thng tin ny
gn cc a ch vt l cho mi phn m lnh v d liu bn trong chng trnh c
thc thi m c th nh v li. Tip theo n s to ra mt tp c cha chng trnh b
nh nh phn c th np trc tip vo b nh chng trnh trn nn phn cng thc
thi.
Trong nhiu trng hp b nh v l mt chng trnh kh c lp vi cc phn cng
c khc trong h thng phn mm pht trin. Tuy nhin trong cc b cng c pht trin
GNU chc nng ny c tch hp lun trong b lin kt. Tuy nhin khng nn nhm
ln v chc nng ca chng trong qu trnh thc thi bin dch. Thng thng chng
trnh chy trn cc my tnh mc ch chung th h iu hnh s thc hin vic chuyn
i v gn chnh xc a ch thc cho cc phn m v d liu trong chng trnh ng
dng, cn vi chng trnh pht trin chy trn h nhng th vic ny phi c thc
hin bi b nh v. y cng chnh l im khc bit c bn khi thc hin bin dch
mt chng trnh ng dng cho h nhng.
Thng tin v b nh vt l ca h thng phn cng pht trin m cn phi cung cp
cho b nh v GNU phi c nh dng theo kiu biu din ca b lin kt. Thng tin
ny i khi c s dng iu khin mt cch chnh xc th t trong cc phn m
chng trnh v d liu bn trong chng trnh c th nh v li. Nhng y chng ta
cn phi thc hin nhiu hn th, tc l phi thit lp chnh xc khu vc ca mi phn
trong b nh.

50/99

H iu hnh cho cc h thng nhng (HH


thi gian thc)
c im chung ca H iu hnh
Ngun gc ra i ca h iu hnh l m nhim vai tr trung gian tng tc trc
tip vi phn cng ca my tnh, phc v cho nhiu ng dng a dng. Cc h iu hnh
cung cp mt tp cc chc nng cn thit cho php cc gi phn mm iu khin
phn cng my tnh m khng cn phi can thip trc tip su. H iu hnh ca my
tnh c th thy n bao gm cc drivers cho cc ngoi vi tch hp vi my tnh nh card
mn hnh, card m thanh... Cc cng c qun l ti nguyn nh b nh v cc thit
b ngoi vi ni chung. iu ny to ra mt giao din rt thun li cho cc ng dng v
ngi s dng pht trin phn mm trn cc nn phn cng c. ng thi trnh c
yu cu v hiu bit su sc v phn cng v c th pht trin da trn cc ngn ng bc
cao.
H thng iu hnh bn cht cng l mt loi phn mm nhng n khc vi cc loi
phn mm thng thng. S khc bit in hnh l h thng iu hnh c np v thc
thi u tin khi h thng bt u khi ng v c thc hin trc tip bi b x l ca
h thng. H thng iu hnh c vit phc v iu khin b x l cng nh cc ti
nguyn khc trong h thng bi v n s m nhim chc nng qun l v lp lch cc
qu trnh s dng CPU v cng chia s ti nguyn.

Kin trc H iu hnh

51/99

H iu hnh cho cc h thng nhng - h iu hnh thi gian thc


Thi gian thc (Real - Time) l g?
Thi gian thc rt kh nh ngha. tng c bn ca thi gian thc th hin ch:
mt h thng phi c nhng phn ng thch hp, ng thi im vi mi trng ca n.
Nhiu ngi lun ngh rng, thi gian thc c ngha l thc s nhanh, cng nhanh cng
tt, iu ny l sai lm. Thi gian thc c ngha nhanh (fast enough) trong mt
ng cnh, mt mi trng m h thng ang hot ng. Khi chng ta cp n my
tnh iu khin ng c t, chng ta cn n chy cng nhanh cng tt.
Mt v d khc, khi chng ta cp n mt nh my lc du ho hc chng hn, nh
my c iu khin bi mt hoc mt h thng my tnh. Cc my tnh ny c trch
nhim iu khin qu trnh ho hc ng thi phi pht hin ra c cc s c c th
xy ra. Tuy nhin, cc phn ng hay cc qu trnh ho hc thng c hng s thi gian
kh ln t hng giy cho ti hng pht l t. Chnh v th my chng ta c th gi thit
rng my tnh hon ton c kh nng phn ng li cc s c nghim trng. Tuy nhin,
t vn l nu h thng my tnh ang trong qu trnh in mt bn bo co di v
cc thng s sn lng ca tun trc th t nhin trc trc xy ra. Vy th n mt bao
nhiu thi gian c th phn ng li cc s c nh th?
Thc cht ca vic tnh ton thi gian thc khng ch vic phn ng nhanh m cn
phi ng tin cy v chnh xc. My tnh iu khin ng c trong t ca bn phi c
th iu chnh lung nhin liu v thi gian nh la mt cch hp l trong mi vng
quay. Nu khng, ng c s khng lm vic theo mong mun. My tnh trong nh my
lc du phi c th pht hin v phn ng li cc iu kin bt thng trong thi gian
cho php c th trnh c cc thm ho c th xy ra.
Nh vy, ngh thut ca lp trnh thi gian thc chnh l vic thit k h thng sao cho
n c th tip nhn mt cch chnh xc cc rng buc v mt thi gian trong sut qu
trnh cc s kin ngu nhin v khng ng b xy ra.
Cc dng thi gian thc
V c bn, chng trnh c tnh thi gian thc phi c kh nng phn ng li cc s
kin trong mi trng m h thng lm vic trong khong thi gian nht nh cho trc.
Nhng h thng nh vy c gi l h thng iu khin s kin (hay h thng li
s kin event-driven) v c th c m t bng thi gian tr t khi m s kin xy ra
cho ti khi h thng c hot ng phn ng li vi s kin .
Thi gian thc, mt khc, i hi mt gii hn cao hn v thi gian tr, c gi l
thi hn lp danh mc (scheduling deadline). Mt h thng thi gian thc c th c
chia lm 2 loi: thi gian thc cng (hard real-time) v thigian thc mm (soft

52/99

real-time). Trong h thng hard real-time, h thng phi tip nhn v nm bt c


scheduling deadline ca n ti mi v mi thi im. S sai st trong vic tip nhn
deadline c th dn n hu qu nghim trng thm ch cht ngi. Ly v d: my h
tr nhp tim cho bnh nhn khi phu thut. Thut ton iu khin ph thuc vo thi
gian nhp tim ca ngi bnh, nu thi gian ny b tr, tnh mng ca ngi bnh s b
nh hng.
i vi khi nim soft real-time, scheduling deadline c d th hn cht t. Chng ta
mong mun h thng phn ng li cc s kin trong thi gian cho php nhng khng
c g thc s nghim trng xy ra nu h thng thnh thong b tr. Li v mt thi gian
c th ch n gin l dn n hu qu gim tin cy ca i tng i vi h thng
m khng c hu qu th thm no khc xy ra. Mng li thu ngn t ng ca ngn
hng l v d r nht cho soft real-time. Mng rt tin t ng ATM l h thng thi
gian thc? Chng ai dm t cc c. Khi bn a th ATM vo my, bn mong l my
s phn ng li trong vng 1 hay 2 giy. Nhng nu n lu hn th, iu ti t nht c
th xy ra l bn st rut v thy kh chu i vi ci my .
Trn thc t c rt nhiu h thng phi hp c 2 loi trn, trong , mt phn no ca
h thng lm vic da trn hard real-time, mt s phn khc li da trn soft real-time.
H iu hnh thi gian thc.
H iu hnh thi gian thc RealTime Operating Systems(RTOS), l phn mm iu
khin chuyn dng thng c dng trong nhng ng dng in ton nhng c ti
nguyn b nh hn ch v yu cu ngt ngho v thi gian p ng tc thi, tnh sn
sng cao v kh nng t kim sot mt cch chnh xc.
C th tm thy RTOS bt k ni no. Chng cng ph bin nh nhng h iu hnh m
bn quen thuc nh Windows, Mac OS v Unix. RTOS m thm lm vic bn trong
cc b nh tuyn v chuyn mch trn mng, ng c xe, my nhn tin, in thoi di
ng, thit b y t, thit b o lng v iu khin cng nghip v cc v s ng dng
khc.
Mt thuc tnh quan trng ca RTOS l kh nng tch bit vi ng dng, v vy nu c
mt chng trnh b "cht" hay hot ng khng hp l, RTOS c th nhanh chng c
lp chng trnh ny, kch hot c ch phc hi v bo v cc chng trnh khc hay
chnh bn thn h iu hnh khi cc hu qu ca cc lnh sai. C ch bo v tng t
cng c p dng trnh tnh trng trn b nh do bt k chng trnh no gy ra.
RTOS xut hin hai dng: cng v mm. Nu tnh nng x l ng vi mt s kin no
khng xy ra hay xy ra khng nhanh, RTOS cng s chm dt hot ng ny v
gi khng gy nh hng n tin cy v tnh sn sng ca phn cn li ca h thng.

53/99

V RTOS v my tnh nhng tr nn ph bin trong cc ng dng quan trng, cc nh


pht trin thng mi ang to nn nhng RTOS mi vi tnh sn sng cao. Nhng sn
phm ny c mt thnh phn phn mm chuyn dng lm chc nng cnh bo, chy cc
chng trnh chn on h thng gip xc nh chnh xc vn trc trc hay t ng
chuyn i sang h thng d phng. Hin thi RTOS sn sng cao h tr bus Compact
PCI ca t chc PCI Industrial Computer Manufacturers Group, bus ny dng cho phn
cng c th trao i nng.
RTOS c rt nhiu dng. Sn phm thng mi nh VxWorks v VxWorks AE, u ca
Wind River Systems Inc; VxWorks AE c thit k vi tnh sn sng cao, h tr kh
nng gi thng ip phn tn v c th chu li. RTOS cho php lp trnh vin tch bit
th vin dng chung, d liu v phn mm h thng cng nh ng dng.
LynxOS l loi RTOS cng, lm vic vi Unix v Java. QNX chy trn b x l Intel
x86 vi nhn ch c 10 KB.
RTOS ca gii nghin cu gm c Chimera ca i hc Carnegie Mellon. y l h
thng a nhim, a b x l thi gian thc, c thit k to s d dng cho cc nh
lp trnh trong vic ti cu hnh v ti s dng m. Chimera nhm vo cc h thng r
b v t ng. RTOS ca i hc Maryland, c tn l Maruti, h tr cho c ng dng
thi gian thc cng v mm.
Trong nhiu nm, ng dng da trn RTOS ch yu l trong cc h thng nhng v mi
gn y th chng c mt khp ni, t thit b y t c iu khin bng my nh
cho n my pha c ph, nhng ng dng tnh ton phn tn ang thc y cc nh pht
trin h iu hnh thc hin nghin cu v pht trin chun. Chnh ph M cng c mt
s chng trnh v lnh vc ny nh cng ngh qun l ti nguyn thi gian thc, mng,
qun l d liu v phn mm iu khin trung gian. Mc ch ca chng trnh l lm
cho cc h thng cng tc, phn tn c th giao tip v chia s ti nguyn vi nhau. Mt
u ban chuyn trch ang y mnh vic to ra khung cng ngh cho tnh ton phn tn
thi gian thc, p dng cho c ng dng qun s v thng mi. Khung cng ngh ny
s h tr cc giao tip v thnh phn lin tc chun.
Cho d ai l ngi to ra mi trng tnh ton phn tn thi gian thc, ph dng th
RTOS vn s l mt trong nhng cng ngh quan trng nht m ngi dng cui cha
tng nghe n.

54/99

So snh kin trc RTOS v OS chun

H thng iu hnh vi phn li l ht nhn phi m nhim cc tc v chnh nh sau:

X l ngt
Lu tr ng cnh chng trnh ti thi im xut hin ngt
Nhn dng v la chn ng b x l v phc v dch v ngt
iu khin qu trnh
To v kt thc qu trnh/tc v
Lp lch v iu phi hot ng h thng
nh thi
iu khin ngoi vi
X l ngt
Khi to giao tip vo ra

Cu trc H iu hnh thi gian thc

Ty theo c ch thc hin v xy dng hot ng ca ht nhn ngi ta phn loi mt


s loi hnh:
H thng thi gian thc nh: Vi loi ny cc phn mm c pht trin m
khng cn c h iu hnh, ngi lp trnh phi t qun l v x l cc vn
v iu khin h thng bao gm:
X l ngt
iu khin qu trnh/ tc v
Qun l b nh
Cng ngh a nhim
Mi qu trnh c mt khng gian b nh ring
Cc qu trnh phi c chia nh thnh cc Thread cng chia s khng gian b
nh.
Cc dch v cung cp bi ht nhn
To v kt thc qu trnh/ tc v
Truyn thng gia cc qu trnh
Cc dch v v nh thi gian
55/99

Mt s cc dch v cung cp h tr vic thc thi lin quan n iu khin h


thng

56/99

C bn v lp trnh nhng
Biu din s v d liu
n v c bn nht trong biu din thng tin ca h thng s c gi l bit,
chnh l k hiu vit tt ca thut ng binary digit.
Nm 1964, IBM thit k v ch to my tnh s s dng mt nhm 8 bit
nh a ch b nh v nh ngha ra thut ng 8 bit = 1 byte.
Ngy nay s dng rng ri thut ng word l mt t d liu dng biu din
kch thc d liu m c x l mt cch hiu qu nht i vi mi loi kin
trc x l s c th. Chnh v vy mt t c th l 16 bits, 32 bits, hoc 64
bits
Mi mt byte c th c chia ra thnh hai na 4 bit v c gi l cc nibble.
Nibble cha cc bit trng s ln c gi l nibble bc cao, v nibble cha cc
bit trng s nh c gi l nibble bc thp.
Cc h thng c s
Trong cc h thng biu din s hin nay u c biu din dng tng qut l tng
lu tha theo c s, v c phn loi theo gi tr c s. Mt cch tng qut mt h biu
din s c s b v a c biu din nh sau:
A=anbn+ an-1bn-1++ a0 = ni = 0 aibi
V d: nh c s binary (nh phn), c s decimal (thp phn, c s 8 Octal (bt phn).
V d v biu din cc gi tr trong cc h c s khc nhau:
243.5110 = 2 x 102 + 4 x 101 + 3 x 100 + 5 x 10-1 + 1 x 10-2
2123 = 2 x 32 + 1 x 31 + 2 x 30
101102 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 0 x 20 = 2210
Hai loi c s biu din thng dng nht hin nay cho cc h thng x l s l c s nh
phn v c s mi su.
S nguyn
Trong biu din s c du phn bit s dng v s m ngi ta s dng bit trng s
ln nht qui c lm bit du v cc bit cn li c s dng biu din gi tr ln
ca s. V d mt t 8 bit c s dng biu din gi tr -1 s c dng nh phn l
10000001, v gi tr +1 s c dng 00000001. Nh vy vi mt t 8 bit c th biu din

57/99

c cc s trong phm vi t -127 n +127. Mt cch tng qut mt t N bit s biu


din c -2(N-1)-1 n +2(N-1)-1.
Ch khi thc hin cng hai s c du:
Nu hai s cng du th thc hin php cng phn biu din gi tr v s dng
bit du cng du vi hai s .
Nu hai s khc du th kt qu s nhn du ca ton t ln hn, v thc hin
php tr gia ton t c gi tr ln hn vi ton t b hn.
V d 1: Cng hai s c du 010011112 v 001000112.
1 1 1 1 carries (S nh)
0 1 0 0 1 1 1 1 (79)
0 + 0 1 0 0 0 1 1 + (35)
0 1 1 1 0 0 1 0 (114)
V d 2: Tr hai s c du 010011112 v 011000112.
0 1 1 2 borrows (s vay)
0 1 1 0 0 0 1 1 (99)
0 - 1 0 0 1 1 1 1 - (79)
0 0 0 1 0 1 0 0 (20)
Thut ton thc hin php tnh c du:
(1) Khai bo v xa cc bin lu gi tr v du chun b thc hin php tnh.
(2) Kim tra du ca ton t th nht xem c phi s m khng. Nu l s
m th thc hin b du v b ton t. Nu khng th chuyn qua thc hin
bc 3.
(3) Kim tra du ca ton t th hai xem c phi s m khng. Nu l s m
th thc hin b du v b ton t. Nu khng th chuyn sang thc hin bc
4.
(4) Thc hin php nhn hoc chia vi cc ton t va x l.
(5) Kim tra du. Nu zero th coi nh kt thc. Nu bng -1 (0ffh) th thc
hin php tnh b hai vi kt qu thu c v kt thc.
Hin nay ngi ta s dng hai qui c biu din s nguyn phn bit theo th t ca
byte trng s trong mt t c biu din:
58/99

Litte edian: byte trng s nh nht ng trc thun li cho php cng hoc
tr.
Big endian: byte trng s ln nht ng trc thun li cho php nhn hoc
chia.
V d: xt mt s nh phn 4byte
Byte 3 Byte 2 Byte 1 Byte 0
Theo qui c biu din litte edian th th t a ch lu trong b nh s l:
a ch c s + 0 = Byte 0
a ch c s + 1 = Byte 1
a ch c s + 2 = Byte 2
a ch c s + 3 = Byte 3
V theo qui c biu din s big edian s l:
a ch c s + 0 = Byte 3
a ch c s + 1 = Byte 2
a ch c s + 2 = Byte 1
a ch c s + 3 = Byte 0
S du phy tnh
Chng ta c th s dng mt k hiu du chm o biu din mt s thc. Du chm
o c s dng trong t d liu dng phn bit v ngn cch gia phn biu din
gi tr nguyn ca d liu v mt phn l thp phn. V d v mt t 8bit biu din s
du phy ng c ch ra nh trong Hnh 6.1. Vi cch biu din ny, gi tr thc ca
s c tnh nh sau:
N = a4 24 + a3 23 + a2 22 + a1 21 + a0 20 + a1 21 + a2 22 + a3 23
= 0.24+1.23+0.22+1.21+0.20+1.2-1+0.2-2+1.2-3
= 8+2+1+1/2+1/8 = 11.625

59/99

nh dng biu din s du phy tnh 8 bit

Nhc im ca phng php biu din s du phy tnh l vng biu din s nguyn
b hn ch bi du phy tnh c gn c nh. iu ny d xy ra hin tng trn s
khi thc hin cc php nhn hai s ln.
S du phy ng
Phng php biu din s chnh xc v linh hot c s dng rng ri hin nay l h
thng biu din s du phy ng. y cng l mt phng php biu din s khoa hc
bao gm 2 phn: phn biu din lu tr s mantissa v mt phn lu tr biu din s
exponent. V d trong h c s thp phn, mt s nguyn bng 5 c th c biu din
hoc l 0.5*101 , 50 * 101 , hoc 0.05*102 Trong my tnh s hoc h thng s ni
chung, cc s du phy ng nh phn thng c biu din dng:
N = M * 2E
Trong :
M l phn gi tr s mantissa,
E l phn ly tha ca s N. M thng l cc gi tr l m phn thp phn ca
n thng nm trong khong 0.5 M 1.
Hnh 6.2 m t biu din mt s du phy ng ca t 8 bit gm 5 bit biu din phn s
c ngha mantissa, v 3 bit biu din phn ly tha. V cc phn mantissa v ly tha
u c th nhn cc gi tr m v vy cc bit u tin ca cc phn gi tr u c th
c s dng biu din du khi cn thit.

Biu din du phy ng 8bit

60/99

Trong mt s VXL, VK do rng t nh phn nh nn c th s dng 2 t biu


din mt s du phy ng. Mt t s dng biu din gi tr mantissa, v mt phn
biu din gi tr exponent.
Nu phn mantissa c chun ha thnh mt s l c gi tr trong khong 0.5 M
1 th bit u tin sau bit du thng l mt v s c mt du phy nh phn n ngay sau
bit du.
Phn biu din exponent E s quyt nh v tr ca du phy ng s dch sang tri (E>0)
hay sang phi (E<0) bao nhiu v tr. V d biu din mt s thp phn 6.5 bng mt t
8 bit du phy ng nh sau:
N = .1101 * 2 11(2) = (1/2+1/4+1/16)*2 3 = 6.5
Trong trng hp ny phn mantissa gm 4 bit v phn exponent gm 3 bit. Nu ta dch
du phy sang phi 3 v tr bit th chng ta s c mt s nh phn du phy ng biu
din c s l 110.1.
Tng qut ha trong trng hp mt s nh phn du phy ng n bit gm m bit biu
din phn mantissa v e bit biu din phn exponent th gi tr ca s ln nht c th
biu din c s l:
e 1 1)

Nmax = (1 2 m + 1)2(2

V s dng nh nht c th biu din l:


e 1 1)

Nmin = 0.5 2 (2

Theo tiu chun IEEE 754 v 854 c 2 nh dng chnh cho s du phy ng l s thc
di (long) v s thc ngn (short) chng khc nhau v di biu din v ln lu tr
yu cu. Theo chun ny, s thc di c nh dng 8 byte bao gm 1 bit du, 11 bit
exponent v 53 bit lu gi tr s c ngha. Mt s thc ngn c nh dng 4 byte bao
gm 1 bit du, 8 bit ly tha v 24 bit lu gi tr s c ngha. Mt s thc ngn c th
biu din v x l c s c gi tr nm trong di 1038 to 10-38 v s thc di c th
biu din v x l c s c gi tr thuc di 10308 to 10-308 . biu din mt gi
tr tng ng nh vy bng s du phy tnh th cn ti 256 bit hay 32 byte d liu.

Ngn ng lp trnh
Mt trong nhng ngn ng lp trnh c l ph cp rng ri nht hin nay l ngn ng C.
So vi bt k ngn ng lp trnh no khc ang tn ti C thc s ph hp v tr thnh
mt ngn ng pht trin ca h nhng. iu ny khng phi l c hu v s tn ti mi,
nhng ti thi im ny th C c l l mt ngn ng gn gi nht tr thnh mt chun
61/99

ngn ng trong th gii h nhng. Trong phn ny chng ta s cng tm hiu ti sao C
li tr thnh mt ngn ng ph bin n vy v ti sao chng ta la chn n nh mt
ngn ng minh ha cho vic lp trnh h nhng.
S thnh cng v pht trin phn mm thng l nh vo s la chn ngn ng ph hp
nht cho mt d n t ra. Cn phi tm mt ngn ng c th p ng c yu cu
lp trnh cho cc b x l t 8bit n 64bit, trong cc h thng ch c hu hn v b nh
vi Kbyte hoc Mbyte. Cho ti nay, iu ny ch c C l thc s c th tha mn v ph
hp nht.
R rng C c mt s u im ni bt tiu biu nh kh nh v d dng cho vic hc, cc
chng trnh bin dch thng kh sn cho hu ht cc b x l ang s dng hin nay,
v c rt nhiu ngi bit v lm ch c ngn ng ny ri, hay ni cch khc cng
c ph cp t lu. Hn na C c li th l khng ph thuc vo b x l thc thi
m ngun. Ngi lp trnh ch phi tp trung ch yu vo vic xy dng thut ton, ng
dng v th hin bng ngn ng thn thin thay v phi tm hiu su v kin thc phn
cng, cng nh rt nhiu cc u im ni bt khc ca ngn ng bc cao ni chung.
C l mt th mnh ln nht ca C l mt ngn ng bc cao mc thp nht. Tc l vi
ngn ng C chng ta vn c th iu khin v truy nhp trc tip phn cng kh thun
tin m khng h phi hy sinh hay nh i bt k mt th mnh no ca ngn ng bc
cao. Thc cht y cng l mt trong nhng tiu ch xy dng ca nhng ngi sng
lp ra ngn ng C mun hng ti. Thc t iu ny c cp n khi hai nh
sng lp ra ngn ng C, KernighanvRitchie a vo trong phn gii thiu ca cun
sch ca h The C Programming Language nh sau: C is a relatively low level
language. This characterization is not pejorative; it simply means that C deals with the
same sort of objects that most computers do. These may be combined and moved about
with the arithmetic and logical operators implemented by real machines
Tt nhin l C khng phi l ngn ng duy nht cho cc nh lp trnh nhng. t nht hin
nay ngi ta cng c th bit ti ngoi ngn ng C l Assembly, C++, v Ada.
Trong nhng bui u pht trin h nhng th ngn ng Assembly ch yu c s dng
cho cc vi x l ch. Vi ngn ng ny cho php ngi lp trnh iu khin v kim
sot hon ton vi x l cng nh phn cng h thng trong vic thc thi chng trnh.
Tuy nhin ngn ng Assembly c nhiu nhc im m cng chnh l l do ti sao hin
nay n t c ph cp v s dng. l, vic hc v s dng ngn ng Assembly rt
kh khn v c bit kh khn trong vic pht trin cc chng trnh ng dng ln phc
tp. Hin nay n ch c s dng ch yu nh im ni gia ngn ng bc cao v bc
thp v c s dng khi c yu cu c bit v hiu sut thc hin v ti u v tc
m khng th t c bng ngn ng khc. Ngn ng Assembly ch thc s ph hp
cho nhng ngi c kinh nghim v hiu bit tt v cu trc phn cng ch cng nh
nguyn l thc hin ca b lnh v chp x l.

62/99

C++ l mt ngn ng k tha t C nhm vo cc lp ng dng v t duy lp trnh


hng i tng v cng bt u chim c s lng ln quan tm trong vic ng
dng cho pht trin h nhng. Tt c cc c im ct li ca C vn c k tha hon
ton trong ngn ng C++ v ngoi ra cn h tr kh nng mi v tru tng ha d liu
v ph hp vi t duy lp trnh hin i; hng i tng. Tuy nhin iu ny b nh
i bi hiu sut v thi gian thc thi do ch ph hp vi cc d n pht trin chng
trnh ln v khng chu sc p ln v thi gian thc thi.
Ada cng l mt ngn ng hng i tng mc d n khng c ph cp rng ri nh
C++. Ada c xy dng bi c quan quc phng M phc v pht trin cc phn
mm qun s chuyn dng c bit. Mc d cng c chun ha quc t (Ada83 v
Ada95) nhng n vn khng c ph cp rng ri ngoi vic ng dng ch yu trong
cc lnh vc qun s v hng khng v tr. V n cng dn dn b mt u th v s ph
cp trong thi gian gn y, y cng l mt iu ng tic v bn thn Ada cng l mt
ngn ng c nhiu c im ph hp cho vic pht trin phn mm h nhng thay v
phi s dng C++.

Cc kin trc phn mm nhng thng dng


Hin nay tn ti mt s loi kin trc phn mm thng dng trong cc h thng nhng
nh sau:
Vng lp kim sot n gin
Theo thit k ny, phn mm c t chc thnh mt vng lp n gin. Vng lp gi
n cc chng trnh con, mi chng trnh con qun l mt phn ca h thng phn
cng hoc phn mm.
H thng ngt iu khin
Cc h thng nhng thng c iu khin bng cc ngt. C ngha l cc tc v ca
h thng nhng c kch hot bi cc loi s kin khc nhau. V d, mt ngt c th
c sinh ra bi mt b nh thi sau mt chu k c nh ngha trc, hoc bi s
kin khi cng ni tip nhn c mt byte no .
Loi kin trc ny thng c s dng trong cc h thng c b qun l s kin n
gin, ngn gn v cn tr thp. H thng ny thng thc hin mt tc v n gin
trong mt vng lp chnh. i khi, cc tc v phc tp hn s c thm vo mt cu
trc hng i trong b qun l ngt c vng lp x l sau . Lc ny, h thng
gn ging vi kiu nhn a nhim vi cc tin trnh ri rc.

63/99

a nhim tng tc
Mt h thng a nhim khng u tin cng gn ging vi k thut vng lp kim sot
n gin ngoi tr vic vng lp ny c n giu thng qua mt giao din lp trnh
API. Cc nh lp trnh nh ngha mt lot cc nhim v, mi nhim v chy trong mt
mi trng ring ca n. Khi khng cn thc hin nhim v th n gi n cc tin
trnh con tm ngh (bng cch gi pause, wait, yeild ).
u im v nhc im ca loi kin trc ny cng ging vi kim vng lp kim sot
n gin. Tuy nhin, vic thm mt phn mm mi c thc hin d dng hn bng
cch lp trnh mt tc v mi hoc thm vo hng i thng dch (queue-interpreter).
a nhim u tin
loi kin trc ny, h thng thng c mt on m mc thp thc hin vic chuyn
i gia cc tc v khc nhau thng qua mt b nh thi. on m ny thng nm
mc m h thng c coi l c mt h iu hnh v v th cng gp phi tt c nhng
phc tp trong vic qun l a nhim.
Bt k tc v no c th ph hy d liu ca mt tc v khc u cn phi c tch
bit mt cch chnh xc. Vic truy cp ti cc d liu chia s c th c qun l bng
mt s k thut ng b ha nh hng i thng ip (message queues), semaphores
V nhng phc tp ni trn nn mt gii php thng c a ra l s dng mt h
iu hnh thi gian thc. Lc , cc nh lp trnh c th tp trung vo vic pht trin
cc chc nng ca thit b ch khng cn quan tm n cc dch v ca h iu hnh
na.
Vi nhn (Microkernel) v nhn ngoi (Exokernel)
Khi nim vi nhn (microkernel) l mt bc tip cn gn hn ti khi nim h iu
hnh thi gian thc. Lc ny, nhn h iu hnh thc hin vic cp pht b nh v
chuyn CPU cho cc lung thc thi. Cn cc tin trnh ngi dng s dng cc chc
nng chnh nh h thng file, giao din mng li, Ni chung, kin trc ny thng
c p dng trong cc h thng m vic chuyn i v giao tip gia cc tc v l
nhanh.
Cn nhn ngoi (exokernel) tin hnh giao tip hiu qu bng cch s dng cc li gi
chng trnh con thng thng. Phn cng v ton b phn mm trong h thng lun
p ng v c th c m rng bi cc ng dng.

64/99

Nhn khi (monolithic kernels)


Trong kin trc ny, mt nhn y vi cc kh nng phc tp c chuyn i
ph hp vi mi trng nhng. iu ny gip cc nh lp trnh c c mt mi
trng ging vi h iu hnh trong cc my bn nh Linux hay Microsoft Windows
v v th rt thun li cho vic pht trin. Tuy nhin, n li i hi ng k cc ti
nguyn phn cng lm tng chi ph ca h thng. Mt s loi nhn khi thng dng l
Embedded Linux v Windows CE. Mc d chi ph phn cng tng ln nhng loi h
thng nhng ny ang tng trng rt mnh, c bit l trong cc thit b nhng mnh
nh Wireless router hoc h thng nh v GPS. L do ca iu ny l:
H thng ny c cng kt ni n cc chip nhng thng dng.
H thng cho php s dng li cc on m sn c ph bin nh cc trnh iu
khin thit b, Web Servers, Firewalls,
Vic pht trin h thng c th c tin hnh vi mt tp nhiu loi c tnh,
chc nng cn sau lc phn phi sn phm, h thng c th c cu hnh
loi b mt s chc nng khng cn thit. iu ny gip tit kim c
nhng vng nh m cc chc nng chim gi.
H thng c ch ngi dng d dng chy cc ng dng v g ri. Nh
, qui trnh pht trin c thc hin d dng hn v vic lp trnh c tnh linh
ng hn.
C nhiu h thng nhng thiu cc yu cu cht ch v tnh thi gian thc ca
h thng qun l. Cn mt h thng nh Embedded Linux c tc nhanh
tr li cho nhiu ng dng. Cc chc nng cn n s phn ng nhanh cng
c th c t vo phn cng.

Tp lnh
Cu trc tp lnh CISC v RISC
Hu ht cc vi iu khin v VXL nhng c cu trc c pht trin da theo kin trc
my tnh tp lnh phc hp CISC (Complex Instruction Set Computer). CISC l mt cu
trc x l cc lnh phc hp, tc l mt lnh phc hp s bao gm mt vi lnh n.
Theo nguyn l ny c th gim bt c thi gian dng truy nhp v c m chng
trnh t b nh. iu ny rt c ngha vi cc kin trc thit k x l tnh ton theo
kiu tun t. L do cho s ra i ca tp lnh phc hp nhm gim thiu dung lng b
nh cn thit lu gi chng trnh thc hin, v s gim c gi thnh v b nh
cn cung cp cho CPU. Cc lnh cng gn v phc hp th s cn cng t khng gian b
nh chng trnh. Kin trc tp lnh phc hp s dng cc lnh vi di bin i tu
thuc vo phc hp ca cc lnh t n gin n phc tp. Trong s c mt s
lng ln cc lnh c th truy nhp trc tip b nh. V vy vi kin trc tp lnh phc
hp chng ta s c c mt tp lnh a dng phc hp, gn, vi di lnh thay i
v dn n chu k thc hin lnh cng thay i tu theo phc hp trong tng lnh.
65/99

Mt vi lnh phc hp, c bit l cc lnh truy nhp b nh cn ti vi chc chu k


thc hin. Trong mt s trng hp cc nh thit k VXL thy rng cn phi gim chu
k nhp lnh c thi gian cho cc lnh hon thnh iu ny cng dn n thi gian
thc hin b ko di hn.
Mt s VK c pht trin theo kin trc my tnh tp lnh rt gn RISC (Reduced
Instruction Set Computer). RISC ph hp vi cc thit k kin trc x l cc lnh n.
Thut ng rt gn (reduced) i khi b hiu khng tht chnh xc theo ngha en ca
n thc cht tng gc xut pht t kh nng cung cp mt tp lnh ti thiu thc
hin tt c cc hot ng chnh nh: chuyn d liu, cc hot ng ALU v r nhnh
iu khin chng trnh. Ch c cc lnh np (load), lu tr (store) l c php truy
nhp trc tip b nh.

So snh c im ca CISC v RISC

Cc kiu truyn a ch ton t lnh


Cc kiu nh/truyn a ch cho php chng ta ch ra/truyn ton t tham gia trong cc
lnh thc thi. Kiu a ch c th ch ra l mt hng s, mt thanh ghi hoc mt khu vc
c th trong b nh. Mt s kiu nh a ch cho php s dng a ch ngn v mt s
loi th cho php chng ta xc nh khu vc cha ton t lnh, v thng c gi l
a ch hiu dng ca ton t v thng l ng. Chng ta s xt mt s loi hnh nh
a ch c bn hin ang c s dng rng ri trong c ch thc hin lnh.
nh a ch tc th (Immediate Addressing): Phng php ny cho php
truyn gi tr ton t lnh mt cch tc th nh mt phn ca cu lnh c
thc thi. V d nu s dng kiu nh a ch tc thi cho cu lnh Load
0x0008 th gi tr 0x0008 s c np ngay vo AC. Trng bit thng dng
cha ton t lnh s cha gi tr thc ca ton t ch khng phi a ch ca
ton t cn truyn cho lnh thc thi. Kiu a ch tc thi cho php thc thi
66/99

lnh rt nhanh v khng phi thc hin truy xut b nh np gi tr ton t


m gi tr ton t c gp nh mt phn trong cu lnh v c th thc thi
ngay. V ton t tham gia nh mt phn c nh ca chng trnh v vy kiu
nh a ch ny ch ph hp vi cc ton t hng v bit trc ti thi im
thc hin chng trnh, hay xc nh ti thi im bin dch chng trnh.
nh a ch trc tip (Direct Addressing):Phng php ny cho php truyn
ton t lnh thng qua a ch trc tip cha ton t trong b nh. V d nu
s dng c ch nh a ch ton t trc tip th trong cu lnh Load 0x0008 s
c hiu l d liu hay ton t c np trong cu lnh ny nm trong b nh
ti a ch 0x0008. C ch nh a ch trc tip cng thuc loi hnh kh
nhanh mc d khng nhanh c nh c ch truyn a ch tc thi nhng
mm do cao hn v a ch ca ton t khng nm trong phn m lnh v gi
tr c th thay i trong qu trnh thc thi chng trnh.
nh a ch thanh ghi (Register Addressing): Trong cch nh a ch v
truyn ton t ny th ton t khng nm trong b nh nh trng hp nh a
ch trc tip m nm ti chnh trong thanh ghi. Khi ton t c np vo
thanh ghi th vic thc hin c th rt nhanh v tc truy xut thanh ghi nhanh
hn so vi b nh. Nhng s lng thanh ghi ch c hn v phi c chia s
trong qu trnh thc hin chng trnh v vy cc ton t phi c np vo
thanh ghi trc khi n c thc thi.
nh a ch gin tip (Indirect Addressing): Trong phng php truyn ton
t ny, trng ton t trong cu lnh c s dng tham chiu ti mt con
tr nm trong b nh tr ti a ch hiu dng ca ton t. C ch truyn
ny c th ni l mm do nht so vi cc c ch truyn a ch khc trong qu
trnh thc thi chng trnh. V d nu p dng c ch truyn a ch gin tip
trong cu lnh Load 0x0008 th s c hiu l gi tr d liu c a ch ti
0x0008 thc cht l cha a ch hiu dng ca ton t cn truyn cho cu lnh.
Gi thit ti v tr nh 0x0008 ang cha gi tr 0x02A0 th 0x02A0 chnh l
gi tr thc ca ton t s c np vo AC. Mt bin th khc cng c th
thc hin theo c ch ny l truyn tham chiu ti con tr nm trong khu vc
thanh ghi. C ch ny cn c bit ti vi tn gi l nh a ch gin tip
thanh ghi. V d mt cu lnh Load R1 s dng c ch truyn a ch gin tip
thanh ghi th chng ta c th d dng thng dch c ton t truyn trong cu
lnh ny c a ch hiu dng nm trong thanh ghi R1.
Cch nh a ch c s v ch s (Indexed and Based Addressing): Trong c
ch ny ngi ta s dng mt thanh ghi cha offset ( chnh lch tng
i) m s c cng vi ton t to ra mt a ch hiu dng. V d, nu
ton t X ca lnh Load X c nh a ch theo c ch a ch ch s v
thanh ghi R1 l thanh ghi cha ch s v c gi tr l 1 th a ch hiu dng ca
ton t thc cht s l X+1. C ch nh a ch c s cng ging nh vy
ngoi tr mt iu l thay v s dng thanh ghi a ch offset th y s dng
thanh ghi a ch c s. V mt l thuyt s khc nhau gia hai c ch tham
chiu a ch ny l chng c s dng th no ch khng phi cc ton t
67/99

c tnh ton th no. Mt thanh ghi ch s s lu ch s m s c s dng


nh mt offset so vi a ch c a ra trong trng a ch ca lnh thc thi.
Thanh ghi c s lu mt a ch c s v trng a ch trong cu lnh thc thi
s lu gi tr dch chuyn t a ch ny. Hai c ch tham chiu a ch ny rt
hu ch trong vic truy xut vi cc phn t kiu mng. Tu thuc vo thit k
tp lnh cc thanh ghi mc ch chung thng hay c s dng trong c ch
nh a ch ny.
nh a ch ngn xp (Stack Addressing): Trong c ch truyn a ch ny th
ton t nhn c t nh ngn xp. Thay v s dng thanh ghi mc ch chung
hay nh kin trc da trn ngn xp lu cc ton t trn nh ca ngn xp,
v c th truy xut vi CPU. Kin trc ny khng ch hiu qu trong vic lu
gi cc gi tr trung gian trong cc php tnh phc tp m cn cung cp mt
phng php hiu qu trong vic truyn cc tham s trong cc li gi hm cng
nh lu ct cc cu trc d liu cc b v nh ngha ra phm vi tn ti ca
cc bin v cc hm con. Trong cc cu trc lnh truyn ton t da trn ngn
xp, hu ht cc lnh ch bao gm phn m, tuy nhin cng c mt s lnh c
bit ch c mt ton t v d nh lnh ct vo (push) hoc ly ra (pop) t ngn
xp. Ch c mt s lnh yu cu hai ton t th hai gi tr cha trong 2 nh
trn nh ngn xp s c s dng. V d nh lnh Add, CPU ly ra khi ngn
xp hai phn t nm trn nh ri thc hin php cng v sau lu kt qu tr
li nh ngn xp.
Cc cch nh a ch khc: C rt nhiu bin c th to bi cc c ch nh
a ch gii thiu trn. l s t hp trong vic to ra hoc xc nh a ch
hiu dng ca ton t truyn cho lnh thc thi. V d nh c ch nh a ch
ch s gin tip s dng ng thi c hai c ch nh a ch ng thi, tng
t nh vy cng c c ch nh a ch c s/offsetCng c mt s c ch t
ng tng hoc gim thanh ghi s dng trong lnh ang thc thi nh vy m c
th gim c ln ca m chng trnh c bit ph hp cho cc ng dng
Nhng.

68/99

Tc v v truyn thng gia cc tc v


Cc tc v (Task)
Mt h thng thi gian thc c gi l iu khin s kin c ngha l h thng
phi c chc nng chnh l phn ng li cc s kin xy ra trong mi trng ca h
thng. Vy th h thng phn ng li cc s kin nh th no? Mt gii php a ra
c tn a nhim. Gii php ny c chng minh l mt m hnh chun cho cc h
thng iu khin s kin v h thng s dng ngt. tng c bn ca gii php ny l
chng ta c th phn chia mt vn ln thnh cc nhnh nh v n gin hn gii
quyt. Mi mt vn con (sub-problem) tr thnh mt tc v - task. Mi mt tc v
ch lm mt vic n gin. Sau , chng ta gi thit rng cc tc v ny chy song song
vi nhau. Trn thc t, cc tc v khng bao gi chy song song nu chng ta khng c
mt h thng a vi x l. Trong trng hp ang xt, cc tc v s chia s mt b vi x
l.
Cng ging nh cc chng trnh khc, mt tc v bao gm m lnh thc hin cc
chc nng tc v phi thc hin (do ngi lp trnh thit k). M lnh c cha
trong mt hm tng t nh hm main() trong ngn ng lp trnh C. iu lm nn s
khc bit ca tc v chnh l ng cnh (context) cha trong ngn xp (stack) ca n.

Task l g?

Mi mt tc v bao gm :
M ngun cha cc chc nng ca tc v.
Mt ngn xp cha ng cnh ca tc v.
Mt hp th (mail box) (ty chn) phc v cho vic truyn thng vi cc tc
v khc.
Ch rng, i khi (nhiu khi kh hu dng) ta c th to ra nhiu tc v t mt hm
chung. Nh ni, iu lm cho mt tc v c th tch bit v khc bit vi cc tc v

69/99

khc chnh l ngn xp ca n. Thc t y chnh l lp trnh hng i tng kiu c


in. Ta c th ngh rng hm tc v chnh l vic nh ngha mt class. V mt tc v
to ra t hm chnh l mt v d v class.
Mc d c th thy cc tc v l kh c lp, nhng v c bn th chng cng cn phi
hp tc vi nhau thc hin mt mc ch chung c thit k sn cho h thng.
V vy, mi mt tc v cn phi c mt c ch truyn thng m thng qua , chng c
th kt ni, ng b vi cc tc v khc. Trong trng hp ny, ta gi c ch l Hp
th mail box.
Hnh 7.2 miu t cu trc m ngun ca mt tc v. i s data dng tham s ha
mt tc v. Vai tr ca n cng ging vi cc i s argv v argc trong hm main() vi
ngn ng C. i s ny thc s quan trng trong trng hp nhiu tc v cng c to
ra t mt hm. S duy nht ca tc v c th hin bi gi tr ca i s ny.

Cu trc thng thng ca mt tc v

Mt tc v c th c khi ng vi mt vi khi to (c th bao gm khi to i s


data). Sau , thng thng, tc v s i vo mt vng lp khng gii hn. Ti mt vi
im trong vng lp, n s i "Mt s kin no xy ra", c th, s kin l mt
bn tin c gi ti mail box, hoc n gin l trn b nh thi. Trong khi ch s kin,
tc v s khng lm g c v khng s dng b vi x l. Mt vi tc v khc nu sn
sng hot ng hoc ang hot ng s x dng b vi x l.
Khi s kin m tc v ang ch xy ra, tc v s "thc dy" v: nhn ly bn tin, gii m
bn tin v hot ng theo cc yu cu t sn da trn mt h thng cc yu cu c
phn nh bi cu lnh switch(). Sau khi thc hin xong yu cu, tc v li quay tr li
trng thi ch s kin.
C th thy rng, tt c cc t v u ginh phn ln thi gian cho vic ch mt s kin
no xy ra. y cung chnh l l do a nhim hot ng.

70/99

Truyn thng v ng b gia cc tc v


Mc du cac tac vu c xem nh c lp vi nhau nhng nhim vu tng quat cua h
thng yu cu cac tac vu phai co s lin h vi nhau, hp tac vi nhau. Do o, thnh
phn ct yu cua bt c h iu hnh thi gian thc l tp hp cc dich vu truyn thng
v ng b.
C mt vi c ch ng b v truyn thng hay c s dung, bao gm:
Semaphore: S dng cho vic ng b ha tn hiu v kha nng tn dung ti
nguyn.
Monitor: iu khin vic truy cp vo vng d liu chia s trong hot ng ca
h thng.
Semaphore
Hay xet 2 tac vu, mi tac vu co nhim vu in mt ban tin co ni dung I am task n (n la
s th t cua tac v) bng mt may in chia se nh trong hinh di. Nu chung ta khng
s dng b t c mt c ch ng b nao, kt qua co c t may in se co th la II a
amm tatasskk 12.

chia s ti nguyn

iu cn thit y la phai co mt c ch nao o vi c ch nay, may in chi co th


c s dung bi 1 tac vu tai mt thi im xac inh.
Semaphore hot ng ging nh mt chic cha khoa cho vic truy cp ti tai nguyn.
Chi c tac vu co chia khoa nay mi co quyn s dung tai nguyn. co th s dng tai
nguyn (la chic may in trong trng hp nay), tac vu cn yu cu (acquire) chia khoa
(semaphore) bng cach goi ti mt dich vu thich hp nh trong hinh 7.4. Nu cha khoa
trang thai sn sang, tc la tai nguyn (may in) hin tai khng c s dung bi bt k
mt tac vu nao, tac vu o co th c cho phep s dung tai nguyn. Sau khi s dung
xong, tac vu o phai tr li (release) semaphore cho cac tac vu khac co th s dung.

71/99

Chia s ti nguyn vi Semaphone

Tuy nhin, nu may in ang c s dung, tac vu o s bi khoa cho ti khi tac vu
ang s dung may in tra lai semaphore. Cng mt lc co th co nhiu tac vu yu cu
semaphore trong khi may in ang hoat ng. Tt ca cac tac vu o u s bi khoa. Cac
tac vu bi khoa s c xp hang theo kiu hang i theo th t v mt u tin hoc theo
th t thi gian ma chng yu cu semaphore theo lnh acquireSem. Cach thc sp xp
th t hang i cho cac tac vu co th c xy dng trong kernel hoc cng co th c
cu hinh khi ma semaphore c to ra
Lnh acquireSem hoat ng nh sau:
Giam gia tri cua semaphore.
Nu kt qu gi tr ln hn hay bng 0, tc l ti nguyn l sn sng, tc v c
th s dng ti nguyn ngay lp tc. Ngc lai kt qu nh hn 0, tc v s b
kha v ch n khi tc v ang s dng ti nguyn s dng lnh releaseSem.
Lnh releaseSem tng gi tr ca semaphore, Nu kt qu tr v b hn hoc bng 0,
iu c ngha l c t nht mt tc v ang i semaphore, do tc v s c
chuyn vo trng thi sn sng.
Trong trng hp my in ny, semaphore s c gn mc nh ban u l 1 trong
trng hp h thng ch c mt my in c qun l. Trng hp ny thng thng
c gi l semaphore nh phn (binary semaphore) phn bit vi cc trng hp
tng qut hn (counting semaphore), trong semaphore c mc nh l mt s bt
k nguyn v khng m.
Xt mt b nh a ch b nh ng qun l b nh m c nh nh trn hnh 7.5.
y chng ta khi to cho semaphore mt s lng b nh m ang cn trng ti
thi im ban u. Khi cu lnh bufReq c gi n, n trc tin dnh ly semaphore,
sau nh a ch cho b nh m. Trong 10 ln gi lnh bufReq u tin, semaphore
vn cn khng m, iu ny lm cho cc tc v yu cu semaphore vn c th hot ng

72/99

c. n ln thc thi lnh bufReq ln th 11, tc v yu cu s b kha v ch n khi


c mt tc v khc gi lnh bufReq gii phng semaphore.

Chia s h thng a ti nguyn

Mt s kenel s dng c hai loi binary semaphore v couting semaphore v trong mt


mt s trng hp, binary semaphore c hiu qu hn. Binary semaphone i khi cn
c gi l mutex c ngha l loi tr ln nhau (mutual exclusion) .
Mt semaphore i khi cng c th c s dng to tn hiu cho s xut hin ca
mt s kin nh trong hnh 7.6. Ly v d lm th no m h thng c th nhn bit
c s xut hin ca mt ngt? tc v cn thng tin v s xut hin ca ngt s treo
(pend) semaphore ln. Chng trnh con dch v ngt (Internet sevice Routine) s phc
v ngt v sau gi (post) semaphore li. (ch rng: thut ng pend v post
c s dng thng xuyn hn cc thut ng acquire v release.

To tn hiu cho s kin thng qua semaphore

cc v d trn, semaphore c khi to bi mt gi tr khc 0 bi v ti nguyn l sn


sng s dng. y, semaphore c khi to l 0. V vy khi tc v u tin treo

73/99

(pend) semaphore, n ngay lp tc b kha li - s kin cha c sy ra. Khi mt ISR


gi (post) li semaphore, tc v tip tc c nh thc v tip tc c thc hin .
Khi semaphore c s dng nh mt kha ti nguyn, nhiu tc v c th post hoc
pend n. Tuy nhin trong trng hp to tn hiu hoc ng b ha, semaphore thng
c s dng bi ch mt ISR v mt 1 tc v.
C ch tng t nh trn cng c th c s dng khi mt tc v mun to tn hiu
ca mt s kin ti mt tc v khc.
Monitor
Monitor l mt ngn ng lp trnh c xy dng iu khin vic truy nhp vo vng
d liu chia s trong hot ng ca h thng. M chng trnh ng b c b sung
vo trong b bin dch v thc thi khi chy chng trnh.

Monitor l mt modul ng gi
Cc cu trc d liu c chia s.
Cc th tc hot ng thao tc trn cc cu trc d liu chia s.
ng b cc lung thc thi ng thi m c th kch hot cc th tc trong hot
ng h thng.
Monitor c th bo v d liu khi s truy nhp khng c cu trc. N m bo
rng cc lung truy nhp vo d liu thng qua cc th tc tng tc theo
nhng cch hp php v c kim sot.
Monitor m bo loi tr xung t
Ch c mt lung c th thc thi bt k th tc no ti mi mt thi im
(lung trong monitor)
Nu c mt lung ang thc thi bn trong mt monitor n s kho cc lung
khc mun vo, do monitor cng phi c mt hng i.

Minh ha v Monitor

74/99

K thut lp lch v x l ngt trong thi


gian thc
Cc khi nim
Cc tc v (task) hot ng di s gim st ca kernel thi gian thc. Chng bao gm:
Mt tp hp cc dch v thc hin cc cng vic nh ng b ho v giao tip
truyn thng gia cc tc v.
Mt b lp lch (scheduler) vi chc nng khng nh rng ch c duy nht tc
v vi mc u tin cao nht ang c thc thi.
B lp lch xt cc tc v nh nhng ci my trng thi (state machine). Tt c cc
kernel u c m hnh trng thi ca n, tuy nhin, thng thng th cc m hnh trng
thi ny rt phc tp. Hnh 9.1 ch ra cho cc bn thy mt m hnh trng thi mang tnh
khi nim ca tc v. Trong hnh, ta thy c cc trng thi:
ang thc thi (Running): ch c duy nht mt tc v l c nm trong trng
thi ny. Mt tc v c th t ng chuyn t trng thi ang thc thi sang
trng thi Kho (Blocked) bng vic ch i mt s kin xy ra. Trong mt h
thng c s chim quyn thc thi (chng ta s cp n n sau), b lp lch c
th bt mt tc v ang trng thi ang thc thi xung trng thi Sn sng
(Ready) nu c mt tc v vi mc u tin cao hn chuyn n trng thi Sn
sng. Chng ta gi n l schim quyn thc thi (preemption).
Sn sng (Ready): nu mt tc v sn sng hot ng nhng li c mc
u tin thp hn tc v ang thc thi, tc v s c chuyn n trng thi
ny v ch. Tc v ny s c chuyn n trng thi ang thc thi nu n tr
thnh tc v c mc u tin cao nht.
Kho (Blocked): mt tc v b kho l tc v ang i mt s kin no xy
ra, v d nh mt bn tin, tin nhn c gi n hp th ca tc v , hay thi
gian ch ca tc v kt thc.

75/99

M hnh trng thi ca tc v

Cc phng php lp lch ph bin


Lp lch c chu k
C rt nhiu tc v m cng vic ca n ch l thc dy theo chu k, lm mt vi cng
vic no v quay tr li ng tip. C mt vi phng php thc hin cc tc v
kiu ny nh trn hnh 8.2. Trong tt c cc h iu hnh, chng ta u c th tm thy
mt lnh gi l hm tr Delay(), hoc l mt vi hm c chc nng tng t. Hm ny
lm cho tc v b kho trong mt thi gian xc nh cho trc, thng thng thi gian
ny c biu din bng xung ng h (clock tick). Hnh 8.2a cho ta thy vic thc hin
mt tc v khi ta s dng lnh Delay() i vi tc v c tnh chu k . Trong trng
hp ny, khong thi gian tr l 3 clock tick. Hot ng ca h thng ph thuc vo thi
gian thc thi ca tc v. Nu thi gian thc hin nh hn 1 tick th tc v s thc dy
sau mi 3 tick nh mong mun. Tuy nhin, nu tc v hot ng qu 1 tick, khi , sau
khi tc v gi lnh Delay(), n vn s b kho trong 3 clock tick. Th nhng, trong v
d ny, tc v thc t l s thc dy sau mi 4 xung clock tick. khng phi l iu
chng ta mong mun.
Mt phng n khc, khng phi h thng no cng c, c trnh by hnh 8.2b.
Trong trng hp ny, b lp lch s nh thc tc v vo ng thi im thch hp m
khng quan tm n thi gian thc hin tc v. Do , thay v dng hm Delay(), mt
tc v c tnh chu k s gi hm WaitTilNext(). Hm ny s kha tc v cho ti phin
thc hin k tip.

76/99

Cc tc v c tnh chu k

Lp lch khng theo chu k


Mt s tc v phi phn ng li cc s kin xy ra ngu nhin ti cc thi im khc
nhau. Mt s kin c th l vic mt gi d liu t trn mng c gi n ni, vic
mt ci cng tc ng li ch ra l b nc y hoc cng c th l s kt thc
vic convert mt tn hiu tng t sang s ca b ADC v ang cn c c. Thng
thng, cc s kin khng ng b ny c giao tip vi my tnh thng qua cc ngt.
Chng trnh con dch v ngt phi c cch no kt ni s xut hin ca ngt vi
tc v chu trch nhim x l s kin.
Lp lch theo kiu chim quyn thc thi v lp lch khng c chim quyn thc thi
C 2 phng thc c bn cho vic lp lch mt tc v: chim quyn thc thi v khng
chim quyn thc thi. Xt 2 tc v: tc v 1 c mc u tin thp hn ang thc hin v
tc v 2 c mc u tin cao hn ang b kho ch mt s kin xy ra, s kin ny
c thng bo bi mt tn hiu ngt. Hnh 8.3a cho thy nhng g xy ra trong h thng
khng c tnh chim quyn u tin. Chng trnh con dch v ngt ISR lm cho tc v 2
vi mc u tin cao hn chuyn t trng thi Kho sang trng thi Sn sng. Tuy nhin,
n khi ISR c thc hin xong th tc v 1 vi mc u tin thp hn vn s c tip
tc thc thi ti im n b ngt. Sau , khi tc v 1 b kho ch s kin th tc v 2
mi c chuyn sang trng thi thc thi.
Hnh 8.3 b ng vi trng hp ca h thng c tnh chim quyn u tin. im khc
bit y l b lp lch c gi n cui chng trnh con dch v ngt. B lp lch
xc nh tc v c mc u tin cao ang trng thi Sn sng v chuyn n ln trng

77/99

thi thc thi. Do , tc v vi mc u tin thp b chim quyn thc thi. Mt h


thng khng c tnh chim quyn thc thi mun rng tt c cc tc v phi l nhng
cng dn tt bng cch t nguyn trao tr b x l cho cc tc v khc chc chn
mt iu: cc tc v u c c hi s dng b x l. Cc th h Windows trc kia
u l dng ny. Linux th khc, n l mt h iu hnh c tnh chim quyn thc thi
mc d cc bn Linux chun khng quan tm n vn thi gian thc bi trong mt
thi gian di, vn chim quyn thc thi khng c cp.
Cc h thng c tnh chim quyn thc thi cung cp cho ta nhiu hn thi gian phn ng
c th d on c bi v tc v c mc u tin cao s c x l ngay lp tc. y
chnh l im ct li ca thi gian thc: kh nng m bo mt thi gian ln nht
phn ng li mt s kin. Trong h thng khng chim quyn thc thi, chng c g
m bo thi gian mt tc v nhng li b x l cho cc tc v khc. Mt khc, trong
mt h thng c chim quyn u tin, vn tranh chp ti nguyn h thng cng ng
c quan tm cn thn.

Lp lch: C v khng c chim quyn thc thi

Hai phng n khc c tn dng x l cc tc v c cng mc u tin. Trong


phng thc lp lch kiu vng lp robin, mt tc v s c thc thi n khi no n
b kho (block) ch mt s kin xut hin hoc cng c khi n tnh nguyn nhng
(yield) b x l li. S khc bit gia kho v nhng l ch: trong trng hp th 2,
tc v s quay tr li trng thi Sn sng (ready). Xt trng hp trong danh sch Sn
sng c 3 tc v th t ln lt l A, B, C. Cc tc v ny c cng mc u tin nh
nhau. Tc v A ng u danh sch v c chuyn n trng thi Thc thi. Khi tc v
A nhng (yield) b x l, tc v B tr thnh trng thi thc thi v danh sch Sn sng
s nh sau:

78/99

BCA
Khi B nhng, C s chuyn trng thi v danh sch s chuyn thnh:
BCA
Nh vy, tt c cc tc v s hot ng thnh mt vng trn, chng hot ng theo kiu
nhng nhau. Cc tc v c mc u tin thp hn trong trng thi Sn sng s khng
bao gi c thc hin cho n khi tt c cc tc v trn b kho.
Nht ct thi gian l mt bin th ca vng lp robin. Trong , n quy nh mi tc v
s nhn c mt lng thi gian nht nh hay cn gi l nht ct thi gian. Vic lm
ny bo v cc tc v khi trng hp chim dng b x l qu lu. Do , mt tc v
s chy cho n khi n b kho, n tnh nguyn nhng hay qu hn v thi gian cho
php. Ty thuc vo hon cnh v yu cu, cc tc v s c lng thi gian cho php
bng nhau hoc khc nhau. Xt trn kha cnh no , vng lp robin ch l mt dng
khc ca vng lp polling.

K thut lp lch
FCFS
Trong c ch lp lch n trc c ph v trc th cc qu tnh c x l theo th
t m n xut hin yu cu v cho n khi hon thnh. C ch lp lch ny thuc loi
khng ngt c v c u im l d dng thc thi. Tuy nhin, n khng ph hp cho
cc h thng m h tr nhiu ngi s dng v c mt s bin i ln v thi gian trung
bnh m mt qu trnh hay tc v phi ch i c x l. Hn na do vic x l
khng ngt c nn c hin tng chim hu c quyn b x l trong thi gian di
v c th gy ra s tr bt thng trong qu trnh thc hin ca cc tc v phi ch i
khc.
Shortest Job First - SJF
Trong c ch lp lch ny tc v c thi gian thc thi ngn nht s c quyn u tin cao
nht v s c phc v trc. Vn chnh gp phi trong c ch lp lch ny l khng
bit trc c thi gian thc thi ca cc tc v tham gia trong chng trnh v thng
thng phi p dng c ch tin on v nh gi da vo kinh nghim v cc tc v
thc thi trong h thng. iu ny chc chn rt kh lun m bo c chnh xc.
C ch lp lch ny c th p dng cho c loi ngt c v khng ngt c.
Rate monotonic (RM):

79/99

Phng php lp lch RM c l hin ny l thut ton c bit ti nhiu nht p dng
cho cc tc v hay qu trnh c lp. Phng php ny da trn mt s gi thit sau:
(1) Tt c cc tc v tham gia h thng phi c deadline kiu chu k
(2) Tt c cc tc v c lp vi nhau
(3) Thi gian thc hin ca cc tc v bit trc v khng i
(4) Thi gian chuyn i ng cnh thc hin l rt nh v c th b qua
Thut ton RM c thc thi theo nguyn l gn mc u tin cho cc tc v da trn
chu k ca chng. Tc v no c chu k nh th s c c gn mc u tin cao. Theo
nguyn l ny vi cc tc v chu k khng thay i th RM s l phng php lp lch
cho php ngt v mc u tin c nh. Tuy nhin RM h tr yu cu h thng khng tt.
Earliest deadline first (EDF)
Nh ng tn gi ca phng php, thut ton lp lich theo phng php ny s dng
deadline ca tc v hay nh iu kin u tin x l iu phi hot ng. Tc v c
deadline gn nht s c mc u tin cao nht v cc tc v c deadline xa nht s nhn
mc u tin thp nht. u im ni bt ca phng php ny l gii hn c th lp lch
p ng c 100% cho tt c cc tp tc v. Hn na mc u tin gn cho mi tc v
trong qu trnh hot ng l ng v vy chu k ca tc v c th thay i bt k lc no
theo thi gian. EDF c th c p dng cho cc tp tc v chu k v cng c th m
rng p ng cho cc trng hp cc deadline thay i khc nhau theo chu k.
Vn chnh ca thut ton lp lich EDF l khng th m bo c tc v no trong
h thng c th khng c thc thi trong tnh hung qu h thng b qu ti. Trong
nhiu trng hp mc d mc s dng trung bnh nh hn 100% nhng vn c th
trong mt tnh hung no vn vt qua kh nng p ng ca h thng tc l s c
tc v khng c m bo thc thi ng. Trong nhng trng hp nh vy cn phi
iu khin bit tc v no b li khng thc hin thnh cng hoc tc v no c
thc hin thnh cng trong qu trnh qu .
Minimum Laxity first (MLF)
C ch lp lch ny s u tin tc v no cn t thi gian cn li thc hin nht trc
khi n phi kt thc m bo yu cu thc thi ng. y c xem l c ch lp lch
gn quyn u tin ng v d t c s ti u v hiu sut thc hin v s cng bng
trong h thng.
Round Robin

80/99

y l mt c ch lp lch phn b u n, ngt c v n gin. Mi mt tc v c


x l/phc v trong mt khong thi gian nht nh v lp li theo mt chu trnh xuyn
sut ton b cc tc v tham gia trong h thng. Khong thi gian phc v cho mi tc
v trong qu trnh l mt s tho hip gia thi gian thc hin ca cc tc v v thi
gian thc hin mt chu trnh. C th chn khong thi gian rt nh v i lc chng
ta khng nhn c ra rng ang c s phn b thc hin trong h thng. Tuy nhin nu
thi gian qu nh c th lm mt tnh hiu qu thc hin ton h thng v cn nhiu
thi gian trong vic chuyn i ng cnh cho mi tc v sau mi chu trnh thc hin.

X l ngt
Mt h thng thi gian thc c gi l iu khin s kin c ngha l h thng
phi c chc nng chnh l phn ng li cc s kin xy ra trong mi trng ca h
thng. Vy th h thng phn ng li cc s kin nh th no?. Hin nay c hai phng
php tip cn vn ny. Phng php u tin l Polling hay Vng lp Polling v
phng php th 2 l x l ngt (Interrup).
Polling

Vng lp Polling

Hy xem on code trong hnh 8.4. Chng trnh c bt u bng mt vi ci t ban


u cho h thng ri truy cp vo trong mt vng lp v hn, trong , cc s kin m
h thng c th phn ng li c kim tra. Khi c mt s kin xy ra, dch v phn ng
li s kin c kch hot.
Tin trnh thc hin ca vng lp trn t ra kh n gin v thch hp vi nhng h
thng nh khng i hi qu gt gao v mt thi gian. Tuy nhin, cng c mt s vn
cn bn n:
Thi gian phn ng li s kin ph thuc rt ln vo v tr m chng trnh
ang thc hin trong vng lp. Ly v d: Nu s kin event_1 xy ra ngay
81/99

trc cu lnh if(event_1) th thi gian phn ng l rt ngn. Nhng nu s kin


event_1 xy ra ngay sau khi cu lnh kim tra , chng trnh lc ny phi
qut ton b vng lp v quay tr v im u v thc hin dch v ca s kin
event_1.
V cng l mt h qu tt yu, thi gian phn ng cng l mt hm ca s
lng s kin c kch hot ti mt thi im v sau l thi gian thc hin
cc dch v trong mt ln qut vng lp ca chng trnh.
Tt c cc s kin c chng trnh i x mt cch bnh ng v khng c
s u tin no c.
Khi c mt c tnh mi, do l dch v mi, c thm vo chng trnh,
thi gian phn ng li di thm ra.
Interrupt (ngt)
Phng php tip cn th 2 l ngt (Interrupt). Rt hu dng v cng gy khng t kh
khn cho ngi lp trnh. tng ca ngt: s xut hin ca mt s kin c th ngt
tin trnh thc hin ca chng trnh, nhi thm v thc hin mt tin trnh khc vo
nh hnh 8.5. Khi tin trnh nhi thm c thc hin xong, chng trnh chnh li c
thc hin tip t thi im b ngt. Tin trnh ca s kin ngt c thc hin ngay lp
tc m khng phi quan tm n chng trnh chnh. Nhng tin trnh nh th ngi ta
gi l chng trnh con dch v ngt (Interrupt Service Routine) vit tt ISR.
Cc th h vi x l hin nay thng thc hin 3 loi ngt khc nhau:
Cu lnh INT, hay nhiu khi cn c nhc n vi ci tn l TRAP (by). N
nh mt cu lnh gi mt chng trnh con c bit. Chng ta s cp n
n sau.
Cc trng hp c bit ca b x l. Cc iu kin li nh li chia 0, li truy
cp bt hp php vo b nh c th c iu khin thng qua c ch ngt.

Ngt

Hai loi ngt k trn ng b vi vic thc hin lnh. Trong : INT chnh l mt cu
lnh v cc li c bit ca b x l chnh l kt qu trc tip ca vic thc hin lnh.

82/99

Loi ngt th 3 c to ra bi s kin xy ra bn ngoi b x l. Loi ngt ny c


to ra bi cc I/O phn cng v xy ra khng ng b vi vic thc hin lnh.
Cc ngt ngoi khng ng b:
Lm ti a ho hiu sut v thng lng ca h thng my tnh
Gy ra phn ln cc li v rc ri cho ngi lp trnh
Hu ht cc b x l u s dng lc ngt ging nhau. Hnh 8.6 ch ra kin trc
ngt ca Intel x86. 1kilo byte (KB) u tin ca b nh c ginh cho bng vct ngt
(Interrupt Vector Table). Mi mt vct c 4 byte th hin a ch (segment v offset)
ca chng trnh con dch v ngt. Cc vct ny mang nhng ngha, chc nng khc
nhau v c nh ngha bi kin trc ca b x l. V d: vct 0 l li chia 0, vct 3
l breakpoint (lnh ngt INT 1byte).

Ngt- Bng vct ngt

Mt s vct c dnh cho cc ngt ngoi. Trong PC, cc vct 8 n 15 v 0x70 n


0x77 c dnh cho phn cng.
Tt c cc vct c truy cp thng qua lnh ngt INT 2byte, trong , byte th 2 ch
ra s th t ca vct (ngt). Phn mm h thng thng thit lp cc quy c lin quan
n nhiu vct ny. V d: PC BIOS s dng mt s ngt cho cc dch v phn cng
v LINUX s dng ngt INT 0x80 gi dch v ca kernel.
Sau y l mt v d v vic s dng ngt INT 0x80 ca Linux:
B x l lu li gi tr hin thi ca thanh ghi b m chng trnh Program
Counter (PC) v Code Segment (CS) vo ngn xp stack cng vi t iu khin
trng thi b x l Proccesor Status Word (PSW).

83/99

Byte th 2 trong cu lnh INT l mt ch s trong bng vct ngt t tm


c a ch ca chng trnh con dch v ngt (ISR). B x l np a ch ny
vo thanh ghi PC v CS v vic thc hin chng trnh con c thc hin t
im ny.

Ngt v hot ng ca ngt

Kt thc ca ISR l cu lnh IRET (Interrupt Return). N gii phng PC v CS


np li gi tr ca chng trnh chnh v thc hin tip lnh tip theo sau
lnh INT.
Lnh INT cng tng t nh lnh gi chng trnh con CALL nhng c i cht khc
bit: trong khi a ch ch ca lnh CALL c nhng vo trong cu lnh th vi
INT, ta khng cn quan tm n a ch ca ISR. a ch ca n nm trong bng vct
ngt. y l mt im thun li cho vic truyn thng gia chng trnh c bin dch
v chng trnh c ti, v d nh chng trnh ng dng v h iu hnh.
Cc ngt ngoi c cch thc thc hin nh th hin trong hnh 8.8. Mt thit b bn
ngoi a ra mt yu cu ngt Interrupt Request (IRQ). Khi b x l phn ng li
bng mt xc nhn chp nhn ngt Interrupt Acknowledge (IAK), thit b s gi s
th t ca vct ngt ln bus d liu. B x l sau s thit lp mt lnh ngt INT vi
ch s vct ngt c cung cp.

Ngt cng

84/99

Hnh 8.8: Ngt cng


Ngt c th c kch hot hoc b v hiu ho. cp ca b x l, ngt c th c
kch hot hoc v hiu ho thng qua cu lnh STI v CLI. Cc ngt c th c kch
hot hoc v hiu mt cch c chn lc c b iu khin ngt 8259 hay chnh thit
b . Trn thc t, vic kch hot v v hiu ngt chnh lim mu cht thit k v
thc thi mt phn mm thi gian thc
Cng khng c g ng ngc nhin khi ni rng ngt khng ng b c nhng vn
ng bn ca n. mt ng dng thu thp d liu da trn b A/D a knh nh trn
hnh 8.9. C mi khi b chuyn i A/D thu thp mt tp hp d liu trn cc knh, n
ngt b x l. Chng trnh con dch v ngt c d liu v ct vo b nh m, ni m
chng trnh khc (cn gi l chng trnh nn) s tip tc x l.

V d v ngt

Hot ng iu khin ngt cho php chng ta phn ng li A/D mt cch nhanh chng
trong khi b nh m tch chng trnh nn khi ngun d liu, v d: chng trnh nn
khng cn quan tm n d liu c t u m c c. By gi hy xem n on m
lnh c ghi trong hnh 8.9. Gi thit ch l th nghim, chng ta cung cp mt tn hiu
bin i lin tc vo c knh 5 v 6. ng thi, gi thit rng chng trnh s khng b
fail khi ang thc hin o tn hiu ng nht.
Trong thc t, chng trnh nh vit chc chn s b fail bi v mt ngt c th
xy ra trong khi cp nht bin Cur_temp v cp nht bin Set_temp vi kt qu l gi
tr ca bin Cur_temp c cp nht t tp hp d liu c trc , cn gi tr ca bin
Set_temp c cp nht t tp hp d liu hin thi. Nh vy, khi tn hiu u vo thay
i theo thi gian v cc tp hp d liu c tch ri nhau cc thi gian xc nh, gi
tr cc bin s khc nhau v do , chng trnh s fail.
y chnh l bn cht ca vn lp trnh thi gian thc. Cn phi qun l cc ngt
khngng b chng khng xy ra vo nhng thiim khng thch hp.

85/99

C mt gii php, d khng hay cho lm, gii quyt vn ny. Ta c th dng mt
lnh v hiu ho ngt (CLI) trc khi cp nht bin Cur_temp v kch hot ngt bng
lnh STI sau khi cp nht bin Set_temp. Vic lm ny gip cc ngt trnh khi phin
phc ca vic cp nht lin tc nh cp. C v nh chng ta sng sut khi s
dng cc lnh CLI v STI nh mt cha kho cho mt gii php ng n, nhng nu
ch n gin l ri cc lnh CLI v STI trong code ca chng trnh th cng chng khc
g vic s dng cc lnh go to v cc bin ton cc.

86/99

Thit k H thng nhng


Quy trnh pht trin ca mt h thng nhng
Qu trnh pht trin ca mt h thng nhng c thc hin theo chu trnh sau:

(1) Problem specification


(2) Tool/chip selection
(3) Software plan
(4) Device plan
(5) Code/debug
(6) Test
(7) Integrate

M hnh ha s kin v tc v
Phng php m hnh Petrinet
Nm 1962 Carl Adam Petri cng b phng php m hnh hnh ho tc v hay qu
trnh theo s ph thuc nhn qu c ph cp rng ri v c bit ti nh ngy
ny vi tn gi l mng Petri.
Mng Petri c s dng ph bin biu din m hnh v phn tch cc h thng c s
cnh tranh trong qu trnh hot ng. Mt h thng c th hiu l mt t hp ca nhiu
thnh phn v mi thnh phn th u c cc thuc tnh. Cc thuc tnh c th thay
i v c c trng bi cc bin trng thi. Mt chui cc trng thi s m t qu trnh
ng ca mt h thng.
Mng Petri thc s l mt gii php m t h thng ng vi cc s kin ri rc tc
ng lm thay i trng thi ca cc i tng trong h thng theo tng iu kin c th
trng thi ca h thng.
Mng Petri c thit lp da trn 3 thnh phn chnh: (1) Cc iu kin, (2) cc s
kin, v (3) quan h lung. Cc iu kin c th l tho mn hoc khng tho mn. Cc
s kin l c th xy ra hoc khng. V quan h lung m t iu kin ca h trc khi
s kin xy ra.
Cc iu kin i hi phi tho mn mt s kin xy ra hoc chuyn trng thi thc
hin th c gi l iu kin trc (precondition). Cc iu kin m c tho mn khi
mt s kin no xy ra th c gi l iu kin sau (postcondition).

87/99

Quy c biu din m hnh Petrinet

V d v m hnh mng Petri

Trong qui c biu din hnh ho th mng Petri s dng cc vng trn biu din cc
iu kin, cc hp biu din cc s kin, v mi tn biu din quan h lung. Mt v
d minh ho v mng Petri c m t trong Hnh 13.1, trong :
P = {p1 , p2 ,..., pnp } l tp gm np v tr c biu din trong m hnh (c
m t bi cc vng trn).
T = {t1 , t2 ,..., tnt } l tp gm nt chuyn i trong tp chuyn i biu din
trong m hnh (c m t bi cc hnh ch nht).
I biu din quan h i vo chuyn i v c k hiu bi ng mi tn theo
hng t cc v tr ti cc chuyn i.
O biu din quan h i ra khi chuyn i v c k hiu bi cc ng mi
tn theo hng t cc chuyn i ti cc v tr.
M = {m1 , m2 ,...mnp } l du trng thi ca cc chuyn i trong h thng.
Cc gi tr mi l s cc th bi (c k hiu nh cc chm trn en) cha bn
trong cc v tr pi trong tp du M .
H thng ng c th c m t bi mng Petri nh s chuyn dch cc th bi trong
cc v tr ca h thng m hnh v tun th theo lut sau:
Mt chuyn i c php thc thi nu tt c cc v tr i vo chuyn i
cha t nht mt th bi.
Khi mt chuyn i c thc thi xong (hon thnh) th mt th bi s b
loi ra khi v tr i vo chuyn i ng thi b sung thm mt th bi vo
cc v tr u ra tng ng ca chuyn i .

88/99

Cc trng thi ng ca h thng c m t bi tp R(M) nh du bi cc du trong


tp M. Trong v d trn c 5 phn t du trong tp R ln lt l M 1 , M 2 , M 3 , M 4 ,
M 5. Tng ng ln lt nh sau:

M 1 = (1, 0, 0, 0, 0)
M 2 = (0,1,1, 0, 0)
M 3 = (0,1, 0, 0,1)
M 4 = (0, 0, 0,1,1)
M 5 = (0, 0,1,1, 0)

M t cc tnh hung hot ng c bn vi Petrinet


Song song v ng b:
Trong m hnh PN m t nh trong Hnh 9.2 (a), cc chuyn i t1 v t2 c php thc
hin ng thi; hot ng ca chng khng nh hng n nhau. Cc hot ng c
m hnh bi hai chuyn i thc hin song song. Trong h thng d phng vi tin
cy cao, m hnh ny c s dng biu din hai thnh phn C1 v C2 song song
m bo hot ng d phng; trong trng hp ny cc v tr p1 v p3 biu din iu
kin lm vic, cc v tr p2 v p4 biu din iu kin li, t1 v t2 l cc s kin li trong
cc tc v C1 v C2 mt cch tng ng.

M hnh Petrinet 2 hot ng song song: c lp (a) v ng b (b)

Trong hot ng song song, cc tc v hon ton c lp, tuy nhin nu cc s kin
cn phi kt thc v l iu kin cho mt chuyn i khc th hot ng ng b c
th c thc hin nh b sung mt chuyn i t3 nh m t trong Hnh 9.2 (b). Khi
chuyn i t3 cn th bi ng thi ca c p2 v p4.
Chia s ng b:
Mt yu t c trng trong hot ng ca h thng phn tn l thng phi chia s mt
s ti nguyn hu hn. S thiu thn v ti nguyn lm hn ch hot ng ca h thng
trong qu trnh x l thm ch lm tc nghn h thng. Vic m hnh v phn tch cc

89/99

h thng c hin tng tc nghn l mt tc v kh khn trong hu ht cc qu trnh m


hnh c th gp phi.

Hot ng ca b m vi dung lng hu hn

minh ho tnh hung ny, biu din hot ng ca b m vi dung lng hu hn


c m t bi PN trong Hnh 9.3. V tr p3 m hnh s cc v tr b m cn trng v
v tr p2 m hnh s v tr c in y; ch rng tng cc th bi cha trong cc
v tr p2 v p3 lun l hng s (trong v d ny l 3). Chuyn i t2 m hnh qu trnh
in y mt v tr b m v hon thnh nu c t nht mt v tr b m cn trng cng
vi th bi cha trong v tr p1 v p3. Chuyn i t3 c php thc hin nu c t nht
mt v tr b m c in y. Khi hon thnh chuyn i t3, mt th bi s c
chuyn t v tr p2 sang v tr p3.
Tun t:
Hot ng tun t s c m t v minh ho bi hot ng ca b to v b s dng
thng qua mt b m. B to s sinh ra cc i tng a vo trong mt b m v
s c ly ra bi b s dng. Qu trnh s dng s phi c thc hin mt cch tun
t theo qu trnh to ra i tng. M hnh cho hot ng ny c din t bi PN nh
trong Hnh 9.4 (a). Th bi cha trong v tr p1 c ngha l b to sn sng thc hin.
Khi cc chuyn i t1 v t2 hon thnh th mt i tng c to ra (mt th bi tng
ng cng s c chuyn vo trong b m m hnh bi v tr p5) v b to li sn sng
tr li. Nu b s dng c nhu cu tiu th (c m hnh bi th bi cha trong v tr
p3 ) v ang c t nht mt i tng trong b m th mt th bi cha trong v tr p5
s c ly i v chuyn i t3 s hon thnh.

90/99

Hot ng to v s dng vi b mv hn (a) v hu hn(b)

Trong cch m t trong Hnh 9.4 (a) th vic to v s dng c thc hin thng qua
mt b m vi gi thit l c dung lng v hn. Trong thc t th cc b m l hu
hn, m t hot ng vi b m loi ny Hnh 9.4 (b) c s dng. V tr p6 m
hnh cc v tr b m cn trng v v tr p5 m hnh cc v tr b m c in y.
Tng s lng cc th bi cha trong cc v tr p5 v p6 phi lun l hng s. Nu mt
th bi c gn cho v tr p5 trong du khi to th b to s khng th to thm i
tng chng no b s dng vn cha tiu th i tng trong b m.
Loi tr xung t

Hot ng loi tr ca hai tc v song song chia s ti nguyn

Hai tc v C1 v C2 c php lm vic song song v cng chia s ti nguyn CS,


nhng khng c truy nhp vo ti nguyn ng thi. Gin PN cho hot ng ny
c m t nh trong Hnh 10.5. Cc v tr p1 v p5 biu din cc tc v C1 v C2 lm
vic c lp; v tr p2 v p6 biu din cc yu cu ca cc tc v C1 v C2 mt cch
tng ng khi mun truy nhp vo ti nguyn chia s CS; p3 v p7 biu din CS ang
b chim dng bi cc tc v C1 v C2 mt cch tng ng. V tr p4 m t quyt nh
xem tc v no c th truy nhp ti nguyn Cs v trnh cc v tr p3 v p7 b nh du
ng thi. Thc t khi p2 v p6 c nh du th cc chuyn i t2 v t5 xung t.
Vic hon thnh mt trong hai tc v s kho/cm ln nhau. Vic hon thnh chuyn i
91/99

t3 hoc t6 s m hnh vic gii phng ngun ti nguyn chung (chuyn th bi tr li v


tr p4) v tr v iu kin lm vic bnh thng.
Ngn ng m t phn cng (VHDL)
VHDL (Very High Speed Integrated Circuit Hardware Description Lanuage) l mt
ngn ng chung m t cc thit k phn cng mc phn t logic c bn cu thnh
nn h thng v c pht trin bi t chc quc phng M. Mc ch chnh l
thun tin cho vic trao i d liu thit k phn cng theo mt nh dng chun m mi
ngi c th hiu v thng dch, to iu kin thun li trong vic phi hp hay hp tc
trong cc d n thit k. c bit n rt thun tin trong vic chuyn i hay tng hp
bin dch thnh mt dng ngn ng thc thi phn cng thc. iu ny rt kh thc hin
bng cc ngn ng bc cao nh C nhng vi VHDL iu ny chnh l u im ni bt
v l th mnh trong vic m hnh ho h thng, m t mt cch chi tit cc phn t
cng cu thnh tham gia trong h thng.
VHDL l mt chun IEEE (Std - 1076) c s h tr bi rt nhiu nh cung cp
pht trin phn cng. ng dng mt cch chuyn nghip ngn ng ny l phc v cho
vic m t cc mch ASICs phc hp, ch to thc thi cc mch FPGA...
Ngn ng VHDL c th c hiu kh d dng vi cu trc c php r rng gn ging
nh ngn ng Visual Basic v Pascal. N c th pht huy c th mnh v c php
nh ngha xy dng kiu d liu mi v h tr cho vic lp trnh theo nhm. Vi xu th
hin nay cc nhm pht trin c th thc thi vi iu kin cch xa nhau v khong cch
a l, v vy vic phi hp v thit k theo nhm l rt cn thit.

92/99

Thit k cc phn mm iu khin


Thit k phn mm iu khin

H thng iu khin s

thc thi mt b iu khin s trn thit b vt l thc phi i hi xt xem b iu


khin vi m hnh hm truyn cho c th hin thc ha c khng. iu kin phi
xt thc ra l m bo rng khng c u ra no ca h thng li xut hin trc khi
c tn hiu vo. Hay ni cch khc h thng xy dng phi tun th tnh nhn qu.
Nu khai trin hm truyn ca b iu khin s c m t dng tng qut:

thnh chui ly tha theo z th n phi khng c php cha bt k phn t no cha
ly tha dng ca z. Hay ni cch khc l b iu khin c m t nh trn phi c
bc 0 tc l bc ca t s phi nh hn hoc bng bc ca mu s (n m). Sau khi
thit k c b iu khin s th vic cn li l lp trnh v np vo cc b iu khin
vt l kh trnh. Thc cht qu trnh ny l thc thi hm truyn ca b iu khin s
bng lp trnh s trn cc b iu khin vt l c. y chng ta s ch yu quan
tm n vic trin khai chun b cho bc lp trnh cc hm truyn ca b iu khin
s. Xut pht t m t hm truyn dng tng qut ca b iu khin s:

trong , a0 0 nu b0 0 ; m v n l cc s nguyn dng.


C th trin khai thc thi mt hm truyn ca b iu khin s theo 3 cch nh sau:
Trin khai lp trnh s trc tip

93/99

trin khai lp theo phng php lp trnh trc tip th hm truyn b iu khin
cho biu din trong min z phi c chuyn i v dng hm truyn ri rc:

T ng thc trn d dng tnh ra c gi tr ca u ra u * (t ) ca b iu khin s


cho theo cc gi tr hin ti v qu kh ca u vo e* (t ) cng nh cc gi tr qu kh
ca chnh n

thc hin b iu khin ny yu cu phi lu tr cc gi tr qu kh ca u vo v


u ra ca b iu khin. Vi b iu khin cho yu cu phi c n + m gi tr cn
phi lu tr hay ni cch khc cn phi c n + m phn t lu tr.
Mt phng php khc trin khai lp trnh trc tip l s dng c ch tch trc tip
u vo v u ra ca b iu khin theo mt bin trung gian X(z). Khng mt tnh tng
qut nu chng ta nhn c t v mu ca hm truyn b iu khin s cho vi mt
bin X(z). T rt ra c hm truyn ca u vo E(z) theo X(z) v hm truyn ca
u ra U(z) theo X(z). Phng php ny thc hin nh sau:

Theo phng php ny yu cu s phn t lu tr chnh bng gi tr n, bng bc ca a


thc mu s trong hm truyn b iu khin s cho. T 2 ng thc trn ta cng d
dng xy dng c gin trng thi m t hm truyn ca b iu khin s (gi thit
m = n = 3 ).

Gin trng thi ca h thng s

Trin khai lp trnh s ghp tng


94/99

Cch trin khai ny yu cu chuyn i b iu khin v dng tch ca cc hm truyn


n gin c th d dng thc hin bng cc chng trnh n gin. Hay ni cch khc
b iu khin s cho l kt qu ghp tng ca nhiu b iu khin nh.
Trin khai lp trnh s song song
B iu khin cho s c tch ra thnh tng ca cc b iu khin n gin v c
th thc hin lp trnh song song cho cc b iu khin .

Mt s phng php pht trin phn mm nhng

Trong qu trnh pht trin, phn mm cn phi c th nghim vi i tng iu


khin. Tu thuc vo tng mi trng pht trin chng ta c th tin hnh theo mt s
cc phng php sau.
M hnh Offline

Trong h thng pht trin ny nn phn cng nhng ch c m phng bng m hnh
chy trn PC v i tng iu khin cng l m hnh m phng chy trn PC. V vy
qu trnh pht trin thc cht l qu trnh chy m phng h thng c thc hin hon
ton trn PC. Vi h thng ny khng th th nghim cho cc s kin p ng thi gian
thc v thi gian ca m phng khc vi thi gian din bin thc ca h thng.
H thng pht trin (Software in the loop)

95/99

H thng ny m phng nn phn cng thc trn PC cho p ng hnh vi ging nh vi


vi mch cng thc v m hnh i tng c m hnh thc thi trn PC. Loi h thng
ny cng tng t nh h thng m phng offline tuy nhin c u im hn v kh nng
m phng hnh vi v p ng ca vi mch nhng chnh xc hn v trung thc hn. V
cng c mt nhc im l khng th nghim c bi ton thi gian thc.
M phng thi gian thc

H thng ny s dng nn phn cng nhng ch thc nhng i tng th ch l m


hnh thi gian thc khng phi i tng thc. u im l kh mm do v thay i cu
hnh n gin trong qu trnh pht trin th nghim vi cc hnh vi khc nhau ca
i tng. Rt ngt v n gin ha cng vic xy dng i tng.
M hnh pht trin thc

H thng ny s dng nn phn cng nhng ch thc vi i tng thc. Tuy nhin c
s h tr ca cng c pht trin c th ci t v th nghim trc tip trn nn phn
cng thc. y l mt dng m hnh cho kt qu trung thc v chnh xc nht trong cc
dng h thng pht trin nu trn. Tuy nhin cc nn phn cng ny thng c pht
trin v h tr bi cc nh cung cp c th tng thch vi cng c phn mm km
theo.

96/99

Tham gia ng gp
Ti liu: Gio trnh h thng nhng
Bin tp bi: Khoa CNTT HSP KT Hng Yn
URL: http://voer.edu.vn/c/21d27e3a
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: M u h thng nhng
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/15d41e87
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Tng quan h thng nhng
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/31cdc775
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Cc thnh phn c bn trong kin trc phn cng H thng nhng
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/b72e9e6b
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Mt s nn phn cng v C s k thut ca phn mm nhng
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/5e1891c0
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: H iu hnh cho cc h thng nhng (HH thi gian thc)
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/07006533
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: C bn v lp trnh nhng
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/5a2d134e

97/99

Giy php: http://creativecommons.org/licenses/by/3.0/


Module: Tc v v truyn thng gia cc tc v
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/82718aea
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: K thut lp lch v x l ngt trong thi gian thc
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/ae6f2cbb
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Thit k H thng nhng
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/8609914f
Giy php: http://creativecommons.org/licenses/by/3.0/
Module: Thit k cc phn mm iu khin
Cc tc gi: Khoa CNTT HSP KT Hng Yn
URL: http://www.voer.edu.vn/m/5ee15cc9
Giy php: http://creativecommons.org/licenses/by/3.0/

98/99

Chng trnh Th vin Hc liu M Vit Nam


Chng trnh Th vin Hc liu M Vit Nam (Vietnam Open Educational Resources
VOER) c h tr bi Qu Vit Nam. Mc tiu ca chng trnh l xy dng kho
Ti nguyn gio dc M min ph ca ngi Vit v cho ngi Vit, c ni dung phong
ph. Cc ni dung u tun th Giy php Creative Commons Attribution (CC-by) 4.0
do cc ni dung u c th c s dng, ti s dng v truy nhp min ph trc
ht trong trong mi trng ging dy, hc tp v nghin cu sau cho ton x hi.
Vi s h tr ca Qu Vit Nam, Th vin Hc liu M Vit Nam (VOER) tr thnh
mt cng thng tin chnh cho cc sinh vin v ging vin trong v ngoi Vit Nam. Mi
ngy c hng chc nghn lt truy cp VOER (www.voer.edu.vn) nghin cu, hc
tp v ti ti liu ging dy v. Vi hng chc nghn module kin thc t hng nghn
tc gi khc nhau ng gp, Th Vin Hc liu M Vit Nam l mt kho tng ti liu
khng l, ni dung phong ph phc v cho tt c cc nhu cu hc tp, nghin cu ca
c gi.
Ngun ti liu m phong ph c trn VOER c c l do s chia s t nguyn ca cc
tc gi trong v ngoi nc. Qu trnh chia s ti liu trn VOER tr ln d dng nh
m 1, 2, 3 nh vo sc mnh ca nn tng Hanoi Spring.
Hanoi Spring l mt nn tng cng ngh tin tin c thit k cho php cng chng d
dng chia s ti liu ging dy, hc tp cng nh ch ng pht trin chng trnh ging
dy da trn khi nim v hc liu m (OCW) v ti nguyn gio dc m (OER) . Khi
nim chia s tri thc c tnh cch mng c khi xng v pht trin tin phong
bi i hc MIT v i hc Rice Hoa K trong vng mt thp k qua. K t , phong
tro Ti nguyn Gio dc M pht trin nhanh chng, c UNESCO h tr v c
chp nhn nh mt chng trnh chnh thc nhiu nc trn th gii.

99/99

You might also like