Gii thiu ARM
---Ф---
Người viết: Bùi Trung Hiếu
Webmaster: Khoa hc và tui tr
Li m đầu:
ng dng cho các h thng nhúng hin nay ngày càng tr nên phc tp, không phi
đơn gin chđiu khin mt cht đèn giao thông định thi, đếm s người ra vào ca, điu
khin động cơ ON-OFF, hin th mt câu thông báo trên LCD ..v.vv.. xu thế tt yếu, các nhân
điu khin cn có cu hình mnh hơn, đáp ng thi gian thc tt hơn các nhân điu khin
8bit đang dùng!
Như đã phân tích mt s bài viết trước, ta đa phn vn s dng nhân điu khin
8 bit cho các ng dng, và như thế, vô tình đã thu hp kh năng điu khin các h thng
nhúng. Chính s hn chế v dung lượng b nh chương trình-d liu cũng đã nh hưởng
không ít ti phm vi ng dng ca nó. Khi dùng vi điu khin 8bit làm mt b điu khin PID
kinh đin <cho động cơ chng hn> cũng là mt c gng không nh t người lp trình, đừng
nói đến vic dùng nó vào các ng dng da trên cơ s lý thuyết điu khin hin đại, đòi độ
chính xác cao, đáp ng thi gian thc tt!1 Tt nhiên, vi vi điu khin 8bit, bn vn có th
dùng để điu khin m lò nhit, hay nhng đối tượng có mc quán tính ln!2 Đi kèm vi vic
điu khin c gng y là gii thut s phc tp lên. Bn còn hoài nghi? C th đi, ban đầu,
bn thu nh gii thut điu khin bng các lý thuyết toán hc, s c gng hn chế dung
lượng b nh chương trình s làm tăng thi gian x lý và cn nhiu ô nh trung gian. Tuy
nhiên, nếu bn s dng các nhân 8bit có tn s dao động ln thì kết qu cũng chp nhn
được! Nếu nhân 8bit y h tr tính toán s thc thì kết qu còn tt hơn!
Không th nói rng vi nhân điu khin 8bit, ta chng làm nên trò trng gì, vì như
vy, đã ph nhn kết qu lâu nay ca phn đông dân lp trình vi điu khin-nht là đối vi
sinh viên ta, luôn năng động, sáng to! Ch có th nói rng, các kết qu y luôn b hn chế
khi ta ng dng vào công ngh cao: truyn thông đa phương tin, x lý âm thanh, hình nh,
các thiết b h tr cá nhân <PDA>, các ng dng trong mobile robot linh hot, t hành và
‘biết ng x’..vv… Yêu cu nhng h thng cn s linh động, tiêu tn ít năng lượng, nh gn,
nhưng cu hình mnh và tính năng phc tp luôn được đặt ra. Nhu cu th trường cn, người
làm kĩ thut không th b qua trong thi bui cnh tranh hin nay!
Và như thế, mi bn cùng tôi đi vào khám phá nhng cõi mi! Nhng bước đi đầu
tiên bao gi cũng có th vp ngã! Và thế, tôi cn s giúp sc, phê bình và đóng góp ca mi
người, biết đâu, khi nào đấy, tôi có l đi vào ngõ ct, còn có tiếng kêu và vòng tay đón v đất
m!
Thân chào!
1 Ví d đưa ra tôi chưa tính đến sai s do sensor.
2 Theo tính toán ban đầu ca tôi thì ta dư sc dùng mt nhân điu khin 8 bit cho vic điu khin m lò nhit vi
3 tp biến ngôn ng ngõ vào và 2 ngõ ra tun t, mi biến ngôn ng có 7 cp điu khin vi thi gian ly mu
khong 0.5 giây
Gii thiu ARM – Bùi Trung Hiếu
Các đề mc chính:
Danh mc các hình v:..........................................................................................................................................4
Danh mc các bng:..............................................................................................................................................4
A. ARM - Đôi nét v lch s hình thành và phát trin: ...................................................................................5
B. Sơ lược v thiết kế nhân điu khin:...........................................................................................................5
B.I. Đôi nét v thiết kế phn cng:............................................................................................................. 5
B.II. Cu trúc máy tính s s dng chương trình lưu tr:<Stored-program>............................................ 5
B.III. Dng đơn gin ca b x lý: ............................................................................................................... 7
B.IV. Sơ qua v cách thiết kế cu trúc tp lnh:........................................................................................... 7
IV.1. Cu trúc ch lnh có 4 địa ch:........................................................................................................ 7
IV.2. Cu trúc ch lnh có 3 địa ch:........................................................................................................ 7
IV.3. Cu trúc ch lnh có 2 địa ch:........................................................................................................ 7
IV.4. Cu trúc ch lnh có 1 địa ch:........................................................................................................ 8
IV.5. Cu trúc ch lnh không truy cp địa ch:...................................................................................... 8
B.V. Các chế độ định địa ch:...................................................................................................................... 8
B.VI. Cu trúc lnh CISC và RISC: .............................................................................................................. 8
VI.1. Nêu vn đề:..................................................................................................................................... 8
VI.2. Thiết kế tp lnh da trên CISC và RISC: ...................................................................................... 8
i. Chu kì lnh:..................................................................................................................................... 9
ii. So sánh CISC và RISC:................................................................................................................... 9
ii.a. Kiến trúc tp lnh RISC: ....................................................................................................... 9
ii.b. T chc tp lnh RISC: ......................................................................................................... 9
ii.c. Đim mnh ca b x lý dùng tp lnh RISC: ...................................................................... 9
ii.d. Tn s hot động ti đa ca RISC và CISC: ....................................................................... 10
ii.e. Nhng đim bt tin ca RISC:........................................................................................... 10
C. Kiến trúc t chc ca ARM:.....................................................................................................................10
C.I. Sơ lược v tên gi:............................................................................................................................. 10
C.II. S kế tha cu trúc:........................................................................................................................... 10
II.1. Cu trúc cơ bn: ........................................................................................................................... 10
II.2. Mô hình thiết kế ARM:.................................................................................................................. 10
i. Thanh ghi trng thái chương trình hin ti(CPSR) ...................................................................... 11
II.3. Cu trúc load-store:...................................................................................................................... 11
II.4. Tp lnh ca ARM:....................................................................................................................... 11
II.5. ARM C-Compiler:......................................................................................................................... 12
D. Lp trình hp ng cho ARM:....................................................................................................................12
D.I. Lnh x lý d liu:............................................................................................................................. 12
D.II. Ch lnh chuyn d liu:.................................................................................................................... 13
D.III. Định địa ch gián tiếp qua thanh ghi:................................................................................................ 13
D.IV. Khi to địa ch pointer: <r15=PC>................................................................................................ 13
D.V. Định địa ch stack.............................................................................................................................. 13
D.VI. Các ch lnh điu khin dòng lnh: ................................................................................................... 13
D.VII. Viết chương trình đơn gin:.......................................................................................................... 13
©2006 Khoa hc và tui tr
Gii thiu ARM – Bùi Trung Hiếu
E. Cách t chc và thc thi tp lnh ca ARM:............................................................................................14
E.I. Dòng chy lnh có 3 tác v:.............................................................................................................. 14
E.II. Dòng chy lnh có 5 tác v:.............................................................................................................. 14
F. Tp lnh ca ARM:....................................................................................................................................15
F.I. Kiu d liu:...................................................................................................................................... 15
F.II. Chế độ hot động: ............................................................................................................................. 15
F.III. Thc thi các điu kin: ...................................................................................................................... 16
F.IV. Ngt phn mm<SWI>: .................................................................................................................... 17
F.V. Lnh x lý d liu:............................................................................................................................. 17
V.1. Mã hóa nh phân:.......................................................................................................................... 17
V.2. Phân tích: ..................................................................................................................................... 17
i. Opcode: ........................................................................................................................................ 18
ii. Điu kin: ..................................................................................................................................... 18
F.VI. Lnh nhân:......................................................................................................................................... 18
VI.1. Mã hóa nh phân:.......................................................................................................................... 18
VI.2. Phân tích: ..................................................................................................................................... 18
i. Opcode: ........................................................................................................................................ 18
ii. Lnh hp ng:............................................................................................................................... 19
F.VII. Lnh chuyn d liu: byte không du và 1 word:.............................................................................. 19
VII.1. Mã hóa nh phân:.......................................................................................................................... 19
VII.2. Lnh hp ng:<p135-136> .......................................................................................................... 19
F.VIII. Lnh chuyn d liu: byte có du và na word:........................................................................... 19
VIII.1. Mã hóa nh phân:..................................................................................................................... 19
VIII.2. Chú thích:................................................................................................................................. 20
VIII.3. Lnh hp ng:.......................................................................................................................... 20
F.IX. Lnh chuyn d liu nhiu thanh ghi: ............................................................................................... 20
IX.1. Mã hóa nh phân:.......................................................................................................................... 20
IX.2. Chú thích: ..................................................................................................................................... 21
IX.3. Lnh hp ng:............................................................................................................................... 21
F.X. Lnh hoán đổi giá tr ca b nh thanh ghi: ................................................................................ 21
X.1. Mã hóa nh phân:.......................................................................................................................... 21
X.2. Chú thích: ..................................................................................................................................... 21
X.3. Lnh hp ng:............................................................................................................................... 21
X.4. Chú ý: ........................................................................................................................................... 21
F.XI. Lnh chuyn giá tr t thanh ghi trng thái vào thanh ghi đa dng:................................................. 21
XI.1. Mã hóa nh phân:.......................................................................................................................... 21
XI.2. Chú thích: ..................................................................................................................................... 21
XI.3. Lnh hp ng:............................................................................................................................... 21
XI.4. Chú ý: ........................................................................................................................................... 21
F.XII. Lnh chuyn giá tr t thanh ghi đa dng vào thanh ghi trng thái:................................................. 21
XII.1. Mã hóa nh phân:.......................................................................................................................... 21
XII.2. Lnh hp ng:............................................................................................................................... 22
XII.3. Chú ý: ........................................................................................................................................... 22
F.XIII. Vùng không được dùng trong các ch lnh: .................................................................................. 22
i. S hc:............................................................................................................................................... 22
ii. Điu khin: ........................................................................................................................................ 22
iii. Load-store: ........................................................................................................................................ 22
iv. Vùng lnh không dùng ti: ................................................................................................................ 23
F.XIV. Ghi chú: ........................................................................................................................................ 23
G. H tr ca kiến trúc ARM cho ngôn ng cp cao:...................................................................................23
©2006 Khoa hc và tui tr
Gii thiu ARM – Bùi Trung Hiếu
H. Tp lnh Thumb:........................................................................................................................................23
I. B nh cache: ............................................................................................................................................ 23
I.I. Cache là gì?-Vì sao phi dùng cache: ................................................................................................... 23
I.II. Mt s hình nh v cache:................................................................................................................. 23
J. Kết lun: .....................................................................................................................................................24
K. Tài lu tham kho chính:...........................................................................................................................24
Danh mc các hình v:
Hình 1: Mô hình máy tính s s dng chương trình lưu tr....................................................................... 6
Hình 2: Cu trúc chun cho ch lnh ca MU0 ......................................................................................... 7
Hình 3: Ví d v đường truyn d liu ca MU0....................................................................................... 7
Hình 4: Cu trúc ch lnh có 4 địa ch..................................................................................................... 7
Hình 5: Cu trúc ch lnh có 3 địa ch..................................................................................................... 7
Hình 6: Cu trúc ch lnh có 2 địa ch..................................................................................................... 7
Hình 7: Cu trúc ch lnh có 1 địa ch..................................................................................................... 8
Hình 8: Cu trúc ch lnh không truy cp địa ch..................................................................................... 8
Hình 9: Thc thi lnh theo cu trúc dòng chy........................................................................................ 9
Hình 10: Các thanh ghi ca ARM ..........................................................................................................11
Hình 11: Cu trúc ca thanh ghi trng thái chương trình hin ti..............................................................11
Hình 12: Cu trúc ca b công c h tr phát trin.................................................................................12
Hình 13: Các lnh toán hc.................................................................................................................12
Hình 14: Các lnh logic .......................................................................................................................13
Hình 15: Tác v chuyn các giá tr ca thanh ghi ...................................................................................13
Hình 16: Chc năng so sánh................................................................................................................13
Hình 17: Ch lnh mt chu kì máy s dng dòng chy lnh có 3 tác v.....................................................14
Hình 18: Dòng chy lnh 3 tác v áp dng trong trường hp 1ch lnh có nhiu chu kì máy.........................14
Hình 19: Cách t chc dòng chy lnh có 5 tác v vi ARM9TDMI ............................................................15
Hình 20: V trí các bit điu kin trong ch lnh 32bit...............................................................................16
Hình 21: Ngt phn mm....................................................................................................................17
Hình 22: Cu trúc mt ch lnh ............................................................................................................17
Hình 23: Mã hóa nh phân cho ch lnh nhân..........................................................................................18
Hình 24: Mã hóa nh phân cho cu trúc truyn d liu dng byte không du hoc word ..............................19
Hình 25: Mã hóa nh phân chuyn d liu dng byte có du và na word ..................................................20
Hình 26: Mã hóa nh phân lnh chuyn d liu nhiu thanh ghi ................................................................20
Hình 27: Mã hóa nh phân ch lnh đổi giá tr ca b nh và thanh ghi ......................................................21
Hình 28: Mã hóa nh phân ca lnh chuyn giá tr thanh ghi trng thái vào thanh ghi đa dng ....................21
Hình 29: Mã hóa nh phân ca lnh chuyn giá tr thanh ghi đa dng vào thanh ghi trng thái....................22
Hình 30: Vùng lnh s hc m rng......................................................................................................22
Hình 31: Vùng lnh điu khin m rng ................................................................................................22
Hình 32: Vùng lnh chuyn d liu m rng ..........................................................................................22
Hình 33: Vùng không được định nghĩa trong mã lnh..............................................................................23
Hình 34: Cache dùng chung cho vùng nh d liu và địa ch <Von-Neuman> ............................................23
Hình 35: Cache có vùng nh d liu và địa ch tách ri nhau <Cu trúc Harvard> ......................................24
Danh mc các bng:
Bng 1: Bng thng kê các loi ch lnh thường dùng .............................................................................. 8
Bng 2: Các chế độ hot động ca ARM và s dng thanh ghi .................................................................16
Bng 3: Các địa ch dùng cho h thng .................................................................................................16
Bng 4: Các điu kin.........................................................................................................................17
Bng 5: Bng Opcode .........................................................................................................................18
Bng 6: Gi lnh hp ng cho phép nhân ..............................................................................................18
Bng 7: Mã hóa loi d liu.................................................................................................................20
©2006 Khoa hc và tui tr
Gii thiu ARM – Bùi Trung Hiếu
A. ARM - Đôi nét v lch s hình thành và phát trin:
Ngày 26/4/1985, mu sn phm ARM đầu tiên sn xut ti công ty kĩ thut VLSI,
SanJose, bang Califonia được chuyn ti trung tâm máy tính Acorn Cambridge, Anh
Quc. Mt vài gi sau, chương trình th nghim đầu tiên thành công và h đã khui sâm
banh ăn mng!
Na thp niên sau đó, ARM được phát trin rt nhanh chóng để làm nhân máy tính để
bàn ca Acorn, nn tng cho các máy tính h tr giáo dc Anh. Trong thp niên 1990,
dưới s phát trin ca Acorn Limited, ARM đã thành mt thương hiu đứng đầu thế gii
v các ng dng sn phm nhúng đòi hi tính năng cao, s dng năng lượng ít và giá
thành thp.
Chính nh s ni tri v th phn đã thúc đẩy ARM liên tc được phát trin và cho ra
nhiu phiên bn mi. Nhng thành công quan trng trong vic phát trin ARM thp
niên sau này:
o Gii thiu ý tưởng v định dng các ch lnh được nén li (thumb) cho phép
tiết kim năng lượng và giá thành nhng h thng nh.
o Gii thiu h điu khin ARM9, ARM10 và ‘Strong ARM’
o Phát trin môi trường làm vic o ca ARM trên PC.
o Các ng dng cho h thng nhúng da trên nhân x lý ARM ngày càng tr
nên rng rãi.
Hu hết các nguyên lý ca h thng trên chip (Systems on chip-SoC) và cách thiết kế
b x lý hin đại được s dng trong ARM, ARM còn đưa ra mt s khái nim mi <như
gii nén động các dòng lnh>. Vic s dng 3 trng thái nhn lnh-gii mã-thc thi trong mi
chu kì máy mang tính quy phm để thiết kế các h thng x lý thc. Do đó, nhân x lý ARM
được s dng rng rãi trong các h thng phc tp.
B. Sơ lược v thiết kế nhân điu khin:
Vic thiết kế các nhân điu khin đa dng vn là mong ước ca hu hết kĩ sư. Điu đó,
đòi hi nhng nghiên cu t m, chi tiết, đầy mâu thun và c s tha hip. Trong phn này, ta
s bàn v mt s khái nim xung quanh vic thiết kế phn cng cho nhân điu khin, thiết kế
tp lnh, cu trúc máy tính s thc thi lnh dng stored-program.
B.I. Đôi nét v thiết kế phn cng:
Máy tính là mt thiết b hot động tc độ rt cao. Nhng vi x lý hin đại có th bao
gm đến vài triu transistor <hin ti đang s dng công ngh 90nm> và chúng đóng ngt
đến hàng trăm triu ln trong mt giây. Tt c chúng (Transistor) đều phi hoàn ho, chng
có Transistor nào được phép sai lch hoc hot động ngu nhiên, mt sai lch nh ca dù ch
1 Transistor cũng có th gây sai lch cho c h thng! Bn c tưởng tượng-so sánh mt đội
quân tinh nhu thin chiến được hun luyn công phu dàn quân khp chiến tuyến, bt kì 1 v
trí nào không chiến đấu được cũng làm c đội quân tht th! <hoc đơn gin hơn, bn c nghĩ
là mình phi hc qua 5-6 môn tiên quyết mi có th làm lun văn tt nghip-nếu rt bt kì
môn nào cũng không được nhn đề tài!> Như thế, ta thy s phc tp đến mc nào ca mt
vi điu khin!
Tuy nhiên, không phi công ngh bt đầu vào chế to bán dn kích thước micro, nano
ngay được, đấy là mt quá trình phát trin lâu dài, t ng chân không, mt Transistor, vài
Transistor, mch tích hp (IC) đến mch tích hp rt cao (VLSI) vi vài triu Transistor hiu
ng trường trên mi chip đơn l!
B.II. Cu trúc máy tính s s dng chương trình lưu tr:<Stored-program>
Xem hình sau:
©2006 Khoa hc và tui tr