Từ kiến trúc ARMv4 cho đến ARMv7 là quá trình phát triển trải dài từ những năm 1994 cho đến 2005 khi kiến trúc ARMv7 lần đầu tiên được giới thiệu. Loạt bài này chúng tôi xin giới thiệu khái quát các phiên bản khác nhau của ARM để người đọc hiểu được sự tiến hóa của dòng vi xử lý này.

ế ộ ủ i l p trình nhúng, th ớ ầ ớ ườ ậ ộ ứ ấ ố ụ ư ệ ế ầ ứ ng trình ng d ng đang ho t đ ng t ề ọ vi x lý cũ. N m b t đ ẩ ạ ụ ớ ữ t ố ở ạ ụ ử ắ ử ấ ợ ờ ng thích v i ph n m m. Ph n lõi ARM đ ề ả ứ ầ ứ ả ươ ứ ẩ ầ ớ ầ ầ ứ ở ữ ề ệ ố ấ ẽ ẩ ị ữ ả ộ 1. Cu c cách m ng trong ki n trúc c a ARM ạ ng hay có thói quen s d ng m t dòng vi x lý V i ph n l n ng ử ườ ử ụ ộ ả thông d ng ví d nh 8051, AVR, PIC... M i khi mu n nâng c p hay nghiên c u m t s n ỗ i ki n trúc ph n c ng, đi u quan tr ng là làm th nào đ ph m m i, ngoài vi c ph i coi l ể ế ế c h n ch ch y nh ng ch ắ ượ ạ ạ ộ ươ này, các nhà s n xu t ph n c ng đã cùng h p tác và cho ra đ i dòng vi x lý ARM v i nh ng ữ ả ớ ượ ấ c c p chu n ph n c ng đáp ng kh năng t ầ ứ phép s h u trí tu (Intellectual Property), và tuân theo chu n ph n c ng ARM, các ph n ầ ệ ngo i vi thì tùy thu c vào nhà s n xu t s có nh ng quy đ nh riêng v h th ng thanh ghi và ạ t p l nh b sung. ậ ệ ổ

ki n trúc ARMv4 đ n ARMv7 Hình 1. L ch s phát tri n t ử ể ừ ế ế ị

c chia ra thành ba dòng c u hình chính, v i các ký hi u vi t t ớ ấ t t t l n ế ắ ầ ứ t c a Application, lõi ARM dòng này h tr cho các ng t t ệ ỗ ợ t c a Realtime, các ế ắ ủ ộ ứ ạ ệ ộ ạ c h tr b i c u hình này. M là ụ ử ầ ờ ự ượ ỗ ợ ở ấ ệ ử ệ ấ tiêu dùng. Hình trên cho th y Lõi ARM Cortex đ ượ l t là: A, R, M. Ch A là vi ế ắ ủ ữ ượ d ng có đ ph c t p cao nh : máy tính, đi n tho i di đ ng... R là vi ụ ư ng d ng c n tính toán x lý th i gian th c đ ứ Microcontroller, dành cho các ng d ng công nghi p và đi n t ứ các ki n trúc sau v5,v6,v7 đ u k th a t v4T. ụ ế ừ ừ ế ề

ể ừ ự ể ễ c trình bày ế ả ế ớ ơ ượ ế ể ặ ở ư ỗ c đó. ARMv4 đ n ARMv7 2. S phát tri n t ế Đ d hình dung, chúng tôi s trình bày quá trình phát tri n t ẽ ki n trúc m i h n đ ế v y s u đi m h n so v i phiên b n tr ơ ậ ẽ ư ki n trúc v4 cho đ n các ể ừ ế hình 1. M i ki n trúc m i s có đ c đi m c i ti n, nh ớ ẽ ả ướ ể ớ

Đ c đi m c a ki n trúc v4T và các phiên b n ủ ể ế ặ ả

i thi u ệ

Năm 1994 ARM7TDMI, ARM720T, ARM920T Năm gi ớ B x lý ộ ử

ế t t ế ắ ỗ ợ ậ ệ ớ ủ ỗ ợ ng trình nh h n (ti ị ạ ế ỏ ơ t là T trong các ký hi u c a b ớ ậ ệ ả ị t p l nh ARM 32 bit) mà v n t ể c thi ứ ượ ươ ẫ ươ ằ ế ế ng th p và nh g n. ARM7TDMI đ ệ ng thích v i h th ng 32 bit. Đi n hình t k nh m đáp ng các ng d ng yêu c u hi u su t cao, tiêu th ầ ụ c c u thành b i các t t ấ ượ ớ ệ ố ứ ượ ấ ệ ừ ế t vi ở ỏ ọ ỗ ợ ậ ệ i mã l ụ t: ARM7, T, D, ỗ ợ i b ng kh i Embedded Trace Macrocell (ETM) đây là gi i mã l ỗ ằ ả ả ố ỗ i pháp gi ỗ ợ ả ỉ ng kh năng x ả ườ t t ệ ố ộ ử ồ ầ ả ệ ớ ử ằ ả t c a Interface, h tr giao di n ngo i vi. ARM7TDMI có c u trúc ế ắ ủ ạ ố ọ ế ử ở ộ ệ ố Ở ả ả ớ ộ c tích h p. Ti p đó phiên b n ARM9TDMI s d ng c u trúc đ phiên b n m r ng ARM720T, b nh cache và h th ng qu n lý b nh (Memory ườ ng ở ộ ượ ử ụ ế ả ệ ủ ộ Đi m m i c a ki n trúc v4T là h tr t p l nh Thumb (vi ể x lý). H tr cùng lúc t p l nh Thumb 16 bit và ARM 32 bit. V i t p l nh Thumb 16 bit cho ậ ệ ử phép trình biên d ch t o ra ch t ki m kho ng 35% so v i khi biên d ch ớ ki n trúc này là ở ậ ệ ở ế lõi ARM7TDMI đ ấ năng l ắ M và I. T có nghĩa là h tr t p l nh Thumb 16 bit. D có nghĩ là Debug, ARM7TDMI h tr i hoàn gi ch nh dành cho lõi ARM. M có nghĩa là “Long Multiply Support” - h tr phép toán 64 bit, ngoài ra ARM7TDMI có kh năng c ng tác v i các nhân khác nh m tăng c ớ ộ lý (coprocessor). I là vi ỗ ợ ấ đ ậ ệ ng ng 3 t ng và là ki n trúc Von Neumann, b x lý s h c 32 bit. H th ng t p l nh ệ ố ườ 16/32 bit có kh năng m r ng thông qua giao di n đ ng x lý v i nhân ngoài. ớ ộ Management Unit) đ ấ ố ợ ng 5 t ng và ki n trúc Harvard. ế ầ

Đ c đi m ki n trúc v5 và các phiên b n m r ng v5T, v5TE, v5TEJ ở ộ ể ế ặ ả

iớ Năm 1999 Năm gi thi uệ

B x lý ộ ử ARM1020E/1022E v5T, ARM946E-S/ARM966E-S/ARM968E-S v5TE, ARM7EJ-S/ ARM92EJ-S/ARM1026EJ-S v5TEJ

Đ c đi m k thu t chung c a dòng ARMv5 ủ ể ặ ậ ỹ

Nhân x lý d ng RISC 32 bit ạ Ánh x b nh (Memory map I/O) ớ ử ạ ộ

ng không gian b ượ ộ 4GBytes

B x lý ộ ử I/O Dung l nhớ T p l nh ậ ệ

ế ộ Ch đ ho t đ ng ạ ộ ế ộ 16 ho c 32 bit ặ Có 7 ch đ : User, Supervisor, Abort, Undefined, System, IRQ, FIQ

ậ ệ ỗ ợ ậ ệ ở ộ

H tr t p l nh ARM 32 bit và Thumb 16 bit m r ng IRQ (Interrupt Request) và FIQ (Fast Interrupt) C u trúc t p l nh ấ Ng tắ

phiên b n v5T, b l nh Thumb đ ả ượ ả ế ố ệ ố ỗ ợ ớ ả ố ử Ở ử ự ử ằ ượ ố ộ ệ ỗ ợ c tăng lên 70%. ị c thêm vào nh m h tr ự ờ c tăng lên 8 l n và gi m đ ầ ả c h n 80% năng l ượ ơ ụ ả ộ ậ dòng ARM10 và đ c bi ng tiêu th so v i nhân không h tr ớ ượ ộ ự ặ ề ở ệ ế ả ượ ử ụ c s d ng ớ ự ặ ở ợ ệ ố ề ử ử ụ ấ ự ể ả ả ọ ố Ở c c i ti n. H tr “count leading zero” và x lý s . Ở phiên b n v5TE, h tr kh i x lý tín hi u s DSP. V i kh i DSP này, năng l c x lý tính ả toán s đ ỗ ợ phiên b n v5TE-J, kh i Jazelle đ ố ượ trình thông d ch mã Java và máy o Java (Java Virtual Machine). Th i gian th c thi mã Java đ ỗ ợ ượ kh i Jazelle. Tính năng này cho phép l p trình viên th c thi mã Java m t cách đ c l p v i h ớ ệ ố ậ c s d ng r t nhi u đi u hành. Ki n trúc v5 đ ả t là phiên b n ấ ượ ử ụ ề v5TE-J. M c dù không có nhi u thay đ i v ki n trúc tuy nhiên phiên b n v5 đ ổ ề ế ề r t nhi u b i vi x lý tích h p h th ng(System on Chip). Tính năng cao cùng v i s linh ho t ạ ề ấ trong gi y phép s d ng b n quy n chính là lý do các nhà s n xu t l a ch n lõi ARM đ phát ấ tri n s n ph m. ể ả ẩ

Đặc điểm kiến trúc v6, v6T2, v6Z và v6K

iớ Năm 2002 Năm gi thi uệ

B x lý ộ ử

ạ ữ ướ ARM1136J(F)-S, ARM1156T2(F)-S(v6T2), ARM1176JZ(F)-S(v6Z), MPCore(v6K) ổ ệ ố ớ ấ ấ ỗ ụ ệ ế ừ c tích vào lõi ARM. Đ đ m b o kh năng ả ể ể ả ể t đ ệ ượ ố đ c k th a t ki n trúc v5. V ki n trúc, ớ ổ ộ ủ ả ề ế ể ớ ớ ộ ấ ự ớ ứ ầ ả ở ư ng ti n gi ệ ớ i trí cá nhân, x lý s … Các nhân chia s và đ ng b d li u v i ế ố ộ ử đó yêu c u kh năng t c đ x lý ộ ữ ệ ử ki n trúc v6 ộ ả ố ả c c i ti n làm tăng hi u su t th c thi c a h th ng lên 30% so v i ki n trúc cũ. ủ ệ ố ệ ố ử ẻ ố ồ

ớ ng ti n: tích h p b t p l nh SIMD (Single Instruction Multiple Data) ộ ậ ệ ợ c thêm ỗ ợ ử ả ệ ữ ệ ượ ệ ạ ả ơ ộ ệ ủ ứ ể ặ ư ệ ể ả ậ

ể ữ ệ ử ụ ư ế ộ ớ i mã d li u âm thanh và hình nh, các bài toán nh n di n, hi n th hình ữ ệ t b s d ng công ngh không dây. ế ị ử ụ ữ ữ ệ ệ ố ơ ệ ề ệ ộ ố ự ể ố ư ệ ố ể ạ ộ i s d ng h th ng “big endian”. Đ có th t ạ ử ụ ỗ ợ ọ ắ ạ ị ể ử ạ ữ ệ ế nh ARMv5, ARMv6 cũng là ki n ướ ữ ệ ổ ng truy n d li u 64 bit ho c cao h n. ứ ng t o ra nh ng h th ng nhúng cao c p và ph c ki n trúc v6 theo h Đã có nhi u b sung ở ế ề c u đi m v kh năng tiêu th đi n năng th p. V i m i phiên đ t p h n nh ng v n gi ả ề ữ ượ ư ẫ ư ơ ạ c thêm vào. K th a các đ c đi m n i tr i c a ki n ế b n s có nh ng tính năng đ c bi ặ ặ ữ ả ẽ ki n trúc v6 các kh i ‘TEJ’ đ trúc v4 và v5, ượ ở ế c ph n b nh và x lý ngo i l t ng thích ng ầ ạ ệ ượ ế ừ ừ ế ộ ượ ươ c c i ti n có 5 đi m chính đ ượ ả ế ở ế + Qu n lý b nh : b nh cache và kh i qu n lý b nh (MMU- Memory Management Unit) ớ ộ đ ệ ượ ả ế + Đa nhân (Multiprocessor): đáp ng các h th ng mà nhanh nh : ph ả ươ nhau thông qua vùng nh chung. + H tr x lý đa ph ươ làm tăng kh năng x lý d li u d ng âm thanh và hình nh. H n 60 l nh SIMD đã đ ử vào b l nh c a ki n trúc v6. SIMD cũng cho phép các nhà phát tri n cài đ t các ng d ng ụ ế ph c t p h n nh : gi ị ả ơ ứ ạ nh 3D ho c h tr thi ệ ả ặ ỗ ợ t, các + Ki u d li u: là cách h th ng s d ng và l u tr d li u trong b nh . Nh ta đã bi ư h th ng SoC (System on Chip), các chip vi x lý đ n, h đi u hành và các giao di n ngo i vi ạ ử ệ ố nh USB ho c PCI hay ho t đ ng d a trên ki u d li u “little endian”. M t s các giao th c ứ ư ể ữ ệ ặ i u hóa kh năng tích nh TCP/IP hay MPEG l ả ư h p c a h th ng, ARMv6 h tr cùng lúc c hai đ nh d ng “little” và “big” endian, g i t t là ả ợ ủ ệ ố ạ “mixed-endian”. Bên c nh đó, ARMv6 còn cung c p t p l nh đ x lý d li u d ng “unalignment” - có kích th trúc 32 bit, nên h tr đ ỗ ợ ườ c d li u thay đ i. T ề ữ ệ ấ ậ ệ ng t ươ ặ ự ư ơ

và ng t: Đ thích ng cho các h th ng x lý th i gian th c b ng vector ờ ắ ể ử ứ ệ ố ự ả i thi u. ệ ng tính an toàn khi th c thi mã ch ự ươ

c tích h p ợ ở ượ t b di ế ị ề trên m ng do đó tính an ả ự ủ ng trình, kh i TrustZone đ ố ngày càng nhi u thi th c t ừ ự ế i t c t ạ ượ ả ừ ả ộ c ki m ch ng. TrustZone đ m b o các đo n mã đ c ấ ng trình đ ươ ứ ể ả ạ ưở ế ế ớ ng ng 8 t ng ( ARM1156T có ki n trúc đ ổ ế ườ ấ ủ ố ệ ố ế ẽ ệ ế ầ ầ ở ự ệ ự ấ ế c u trúc đ + X lý ngo i l ạ ệ ử ng t đ c gi ớ ắ ượ Nh m tăng c ườ ằ phiên b n v6Z. V n đ th c thi mã an toàn xu t phát t ề ự ấ đ ng d a trên n n t ng c a ARM, nhi u ch ề ủ ề ả ộ toàn c a các đo n mã nhi u khi ch a đ ạ ư ượ ề h i không làm nh h ng đ n h th ng. ệ ố ả ạ ng, dòng ARM11 là đ i di n ph bi n nh t c a ki n trúc ARMv6. V i ki n trúc Trên th tr ạ ị ườ ng ng 9 t ng), h th ng d đoán r nhánh đ ố ườ (Branch Prediction) và k t qu tr v (Return Stack) giúp ARM11 nâng cao hi u su t th c thi ng ng 8 t ng c a ARM11. l nh. Hình 2 mô t ệ ả ả ề ố ườ ả ấ ủ ầ

ng ng 8 t ng Hình 2. C u trúc đ ấ ườ ầ ố

i thi u h tr các l nh Thumb 16 và 32 bit. ậ ệ ả phiên b n ỗ ợ ượ ệ ệ ớ c gi ố Ở ả ứ ằ T p l nh Thumb-2 cũng đ ARM1176JZ(F)-S b sung kh i IEM(Intelligent Energy Management) nh m qu n lý m c tiêu th năng l ng t ổ t h n. ố ơ ượ ụ

Ki n trúc v7(v7-A, v7-R,v7-M) ế

i thi u ệ

Năm 2005 CortexA8(v7-A), Cortex-R4(v7-R), Cortex-M3(v7-M) Năm gi ớ B x lý ộ ử

ế ự ụ ự ễ i dùng cao nh : thi ủ ứ ng tác ng Ki n trúc v7 đ ặ ượ dành cho các ng d ng đòi h i tính ph c t p, m c đ t ứ ộ ươ ứ c chia thành 3 dòng chính d a trên đ c thù c a ng d ng th c ti n. Dòng A ế ị t b ứ ạ ườ ụ ư ỏ

ứ ụ ệ ờ ự c m tay di đ ng, máy tính, công ngh không dây… Dòng R dành cho ng d ng th i gian th c. ầ Dòng M ph c v nhu c u s d ng vi x lý trong công nghi p. ộ ụ ụ ầ ử ụ ử ệ

Hình 3. Hi u su t các dòng ARM ấ ệ

ộ ả ườ ượ ả ng hay đ ạ ầ ứ ẽ ả ạ ấ ầ ứ ậ ả ở c ký hi u b i ARM Cortex là m t phiên b n khác v i các phiên b n ARM th ớ ệ ộ ARMXX. ARM Cortex không có t c đ ho t đ ng hay h th ng ngo i vi nh t đ nh, tùy thu c ạ ộ ố ộ ấ ị ệ ố ấ ả ề vào nhà s n xu t ph n c ng s thi t c đ u t k h th ng ngo i vi khác nhau, tuy nhiên t ế ế ệ ố dùng chung nhân ARM Cortex và vi c l p trình và truy c p ph n c ng ph i tuân theo chu n ẩ ệ ậ CMSIS.