Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy tính Acorn. Nhóm thiết kế, dẫn đầu bởi Roger Wilson và Steve Furber, hoàn thành việc phát triển mẫu gọi là ARM1 vào năm 1985, và vào năm sau, nhóm hoàn thành sản phẩm ARM2. ARM2 có đường truyền dữ liệu 32 bit, không gian địa chỉ 26 bit tức cho phép quản lý đến 64 Mbyte địa chỉ và 16 thanh ghi 32 bit. Thế hệ sau, ARM3 được tạo ra với 4KB bộ nhớ đệm và có chức năng được cải thiện tốt hơn nữa. Vào những năm cuối thập niên 80 do sự hợp tác với Apple, Acorn nâng nhóm thiết kế trở thành một công ty mới gọi là Advanced RISC Machines. Vì vậy hình thành chữ viết tắt ARM của Advanced RISC Machines. Về sau, Advanced RISC Machines trở thành công ty ARM Limited. Kết quả sự hợp tác này là ARM6, mẫu đầu tiên được công bố vào năm 1991 và Apple đã sử dụng bộ vi xử lý ARM 610 dựa trên ARM6 làm cơ sở cho PDA hiệu Apple Newton. Vào năm 1994, Acorn dùng ARM 610 làm CPU trong các máy vi tính RiscPC của họ. Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích thước. ARM2 có 30.000 transistors trong khi ARM6 chỉ tăng lên đến 35.000. Ý tưởng của nhà sản xuất lõi ARM là sao cho người sử dụng có thể ghép lõi ARM với một số bộ phận tùy chọn nào đó để tạo ra một CPU hoàn chỉnh, một loại CPU mà có thể tạo ra trên những nhà máy sản xuất bán dẫn cũ và vẫn tiếp tục tạo ra được sản phẩm với nhiều tính năng mà giá thành vẫn thấp. Thế hệ khá thành công của hãng là lõi xử lý ARM7TDMI, với hàng trăm triệu lõi được sử dụng trong các máy điện thoại di động, hệ thống video game cầm tay… Kiến trúc ARMv8-A được giới thiệu lần đầu năm 2011, đánh dấu sự thay đổi cơ bản trong kiến trúc ARM nhờ việc hỗ trợ kiến trúc 64-bit (đặt tên là AArch64) và có thêm một tập lệnh A64 mới.
Kiến trúc lõi ARM MỤC LỤC CHƯƠNG 1: TÌM HIỂU VỀ KIẾN TRÚC ARM 1.1 Đôi nét lịch sử hình thành phát triển ARM Việc thiết kế ARM năm 1983 dự án phát triển công ty máy tính Acorn Nhóm thiết kế, dẫn đầu Roger Wilson Steve Furber, hoàn thành việc phát triển mẫu gọi ARM1 vào năm 1985, vào năm sau, nhóm hoàn thành sản phẩm ARM2 ARM2 có đường truyền liệu 32 bit, không gian địa 26 bit tức cho phép quản lý đến 64 Mbyte địa 16 ghi 32 bit Thế hệ sau, ARM3 tạo với 4KB nhớ đệm có chức cải thiện tốt Vào năm cuối thập niên 80 hợp tác với Apple, Acorn nâng nhóm thiết kế trở thành công ty gọi Advanced RISC Machines Vì hình thành chữ viết tắt ARM Advanced RISC Machines Về sau, Advanced RISC Machines trở thành công ty ARM Limited Kết hợp tác ARM6, mẫu công bố vào năm 1991 Apple sử dụng vi xử lý ARM 610 dựa ARM6 làm sở cho PDA hiệu Apple Newton Vào năm 1994, Acorn dùng ARM 610 làm CPU máy vi tính RiscPC họ Trải qua nhiều hệ lõi ARM gần không thay đổi kích thước ARM2 có 30.000 transistors ARM6 tăng lên đến 35.000 Ý tưởng nhà sản xuất lõi ARM cho người sử dụng ghép lõi ARM với số phận tùy chọn để tạo CPU hoàn chỉnh, loại CPU mà tạo nhà máy sản xuất bán dẫn cũ tiếp tục tạo sản phẩm với nhiều tính mà giá thành thấp Thế hệ thành công hãng lõi xử lý ARM7TDMI, với hàng trăm triệu lõi sử dụng máy điện thoại di động, hệ thống video game cầm tay… Kiến trúc ARMv8-A giới thiệu lần đầu năm 2011, đánh dấu thay đổi kiến trúc ARM nhờ việc hỗ trợ kiến trúc 64-bit (đặt tên AArch64) có thêm tập lệnh A64 Kiến trúc lõi ARM Hình 1.0: Sự phát triển kiến trúc ARM ARM thành thương hiệu đứng đầu giới ứng dụng sản phẩm đòi hỏi tính cao, sử dụng lượng giá thành thấp Chính nhờ trội thị phần thúc đẩy ARM liên tục phát triển cho nhiều phiên Những thành công quan trọng việc phát triển ARM: - Giới thiệu ý tưởng định dạng tập lệnh nén lại (Thumb) cho phép tiết kiệm lượng giảm giá thành hệ thống nhỏ - Giới thiệu họ điều khiển ARM - Phát triển môi trường làm việc ảo ARM máy tính - Các ứng dụng cho hệ thống nhúng dựa lõi xử lý ARM ngày trở nên rộng r ãi 1.2 Kiến trúc ARM Kiến trúc nguyên thủy ARM bao gồm đặc điểm sau: - Kiến trúc RISC 32-bit - Tập 16 ghi truy xuất chung, ghi đóng vai trò Program Counter - Tất lệnh thực thi có điều kiện - Cấu trúc Load/Store đa thao tác - Cho phép dịch xử lý liệu sinh địa - Hầu hết lệnh thực vòng chu kỳ đơn - Không gian địa 26-bit nhanh chóng tăng lên 32-bit Kiến trúc lõi ARM Trong trình phát triển, ARM có thêm cải tiến đáng ý chẳng hạn: tập lệnh Thumb xuất từ kiến trúc ARMv4T , tập lệnh 16-bit bên cạnh tập lệnh 32-bit vốn có, nhiên tập lệnh đầy đủ Kiến trúc ARMv5TEJ cho phép tập lệnh ARM Thumb thao tác với trơn tru hơn, đồng thời bổ sung lệnh DSP Jazelle-DBX dành riêng cho việc thông dịch Java byte code phần cứng Kiến trúc ARMv6 giới thiệu tính xử lý đa phương tiện SIMD, sửa chữa kiến trúc nhớ hệ thống ARMv7 bổ sung thêm thay đổi sau: Thumb-2, TrustZone, Jazelle-RCT, Neon chia thành dòng sản phẩm: M, A, R tập trung cho chức khác Kiến trúc ARMv8-A hỗ trợ kiến trúc 64-bit tương thích ngược với kiến trúc 32-bit phiên trước Các điểm cần lưu ý kiến trúc ARMv8-A có 31 ghi 64-bit mục đích chung, Program Counter không truy nhập ghi đơn Các lệnh 32 bits tương tự A32 Ngoài kiến trúc bổ sung hệ thống ngoại lệ nâng cao khả xử lý số thực mã hóa Hình 1.1: Cuộc cách mạng ARMv8-A 1.3 Mô hình kiến trúc Các thành bên lõi xử lý ARM mô tả hình 1.3 Đây kiến trúc chung họ xử lý với lõi ARM Kiến trúc lõi ARM Hình 1.3: Mô hình kiến trúc lõi xử lý ARM Lõi xử lý ARM khối chức kết nối bus liệu, mũi tê n th ể cho dòng chảy liệu, đường thể cho bus liệu, ô biểu diễn hình khối hoạt động vùng lưu trữ Cấu hình cho thấy dòng liệu thành phần tạo nên xử lý ARM Dữ liệu vào lõi xử lý thông qua bus liệu Các liệu hướng để thực trường liệu Hình 1.3 cho thấy ưu điểm kiến trúc Harvard ARM sử dụng hai bus truyền khác (bus liệu bus lệnh tách riêng), kiến trúc Von Neumann chia sẻ liệu bus Các giải mã định hướng dịch chuyển trước chúng thực thi Mỗi lệnh thực thuộc tập lệnh riêng biệt Bộ xử lý ARM, giống tất xử lý RISC, sử dụng kiến trúc load-store Điều có nghĩa có hai loại lệnh để chuyển liệu vào xử lý: lệnh load cho phép chép liệu từ nhớ vào ghi lõi xử lý, ngược lại lệnh store cho phép chép liệu từ ghi tới nhớ Không có lệnh xử lý liệu trực tiếp nhớ Do đó, việc xử lý liệu thực ghi Kiến trúc lõi ARM Tất liệu thao tác nằm ghi, ghi toán hạng nguồn, toán hạng đích, trỏ nhớ Các liệu bit, 16 bit mở rộng thành 32 bit trước đưa vào ghi Tập lệnh ARM nằm hai nguồn ghi Rn Rm, kết trả ghi đích Rd Nguồn toán hạng đọc từ ghi sử dụng bus nội A B tương ứng Khối số học logic (ALU: Arithmetic Logic Unit) hay tích lũy nhân (MAC:Multiply-Accumulate Unit) lấy giá trị ghi Rn Rm từ bus A B, tínhtoán kết (bộ tích lũy nhân thực phép nhân hai ghi cộng kết với ghi khác) Các lệnh xử lý liệu ghi kết trực tiếp Rd trả tệp ghi Một tính quan trọng ARM ghi Rm xử lý trước shifter (bộ dịch chuyển) trước vào ALU Shifter ALU phối hợp với để tính toán biểu thức địa Mô hình ghi theo kiến trúc Registry– Registry, giao tiếp với nhớ thông qua lệnh load-store, lệnh load store sử dụng ALU để tính toán địa lưu ghi địa chỉ, tập lệnh sử dụng ALU để tạo địa tổ chức địa ghi truyền bus địa Bộ gia tốc dùng trường hợp truy xuất vùng nhớ liên tục Sau qua khối chức năng, kết Rd ghi trở lại tệp ghi Tập lệnh load – store cập nhật tăng địa ghi trước lõi xử lý đọc ghi giá trị ghi từ vị trí nhớ Lõi xử lý tiếp tục thực lệnh xảy ngắt ngoại lệ có thay đổi dòng chảy thực bình thường ARM có bẩy chế độ hoạt động, chế độ người dùng chế độ đặc quyền nhất, CPU thực mã hóa liệu cho người dùng Các chế độ hoạt động ARM mô tả bảng 1.1 Bảng 1.1: Cơ chế độ hoạt động ARM Chế độ Supervisor Fast Interrupt Request Interrupt Request Abort Kí hiệu SVC FIQ Undefined UND ỈRQ ABT Chi tiết Chế độ bảo vệ dùng cho hệ điều hành Xử lý ngắt có mức ưu tiên cao, hỗ trợ việc truyền liệu kênh xử lý Được sử dụng cho việc xử lý ngắt mục đích chung Được nhập vào sau liệu lệnh bỏ qua trình tiền nạp Dùng cho trường hợp mã lệnh không hợp lệ Ưu tiên Có Có Có Có Có Kiến trúc lõi ARM System User SYS USR Chế độ ưu tiên, dùng cho hệ điều hành Chế độ người dùng có mức ưu tiên thấp Có Không Các chế độ thiết lập phần mềm thông qua ngắt bên thông qua trình xử lý ngoại lệ Phần lớn chương trình ứng dụng thực thi chế độ User Mỗi chế độ điều khiển có ghi hỗ trợ để tăng tốc độ bắt ngoại lệ 1.4 Mô hình thiết kế ARM 1.4.1 Lõi xử lý Dạng đơn giản lõi xử lý gồm phần sau: - Program Counter (PC): Bộ đếm chương trình: giữ địa lệnh - Thanh ghi tích lũy (ACC): giữ giá trị liệu làm việc - Đơn vị xử lý số học (ALU): thực thi lệnh nhị phân cộng, trừ, gia tăng… - Thanh ghi lệnh (IR): giữ tập lệnh thực thi Lõi xử lý MU0 phát triển lõi xử lý đơn giản, có tập lệnh dài 16 bit, với 12 bit địa bit mã hóa Cấu trúc tập lệnh lõi MU0 có dạng: bits opcode 12 bits S Mô hình thiết kế đường truyền liệu đơn giản lõi xử lý MU0 mô tả hình 1.3 Việc thiết kế cấp chuyển đổi mức ghi (RTL): Bộ đếm chương trình (PC) đến tập lệnh cần thực thi, nạp vào ghi lệnh (IR), giá trị chứa IR đến vùng địa ô nhớ, nhận giá trị, kết hợp với giá trị chứa ghi tích lũy (ACC) qua đơn vị xử lý số học (ALU) để tạo giá trị mới, chứa vào ACC Mỗi lệnh vậy, tùy vào số lần truy cập ô nhớ mà tốn số chu kỳ xung nhịp tương đương Sau lệnh thực thi, PC tăng thêm Kiến trúc lõi ARM Hình 1.4: Đường truyền liệu lõi xử lý MU0 1.4.2 Các ghi ARM Để phục vụ mục đích người dùng: r0 ÷ r14 15 ghi đa dụng, r15 ghi Program Counter (PC), ghi trạng thái chương trình (CPSR Current Program Status Register) Các ghi khác giữ lại cho hệ thống (như ghi chứa ngắt).Các ghi ARM mô tả hình 1.5 Hình 1.5: Mô hình ghi ARM - Thanh ghi CPSR người dùng sử dụng chứa bit điều kiện - N: Negative - cờ bật bit cao kết xử lý ALU - Z: Zero - cờ bật kết cuối ALU - C: Carry - cờ bật kết cuối ALU lớn giá trị 32 bit tràn - V: Overflow - cờ báo tràn sang bit dấu - Thanh ghi SPSR (Save Program Status Register) dùng để lưu giữ trạng thái ghi CPSR thay đổi chế độ 1.5 Cấu trúc load-store Cũng hầu hết xử lý dùng tập lệnh RISC khác, ARM sử dụng cấu trúc load-store Điều có nghĩa là: tất lệnh (cộng, trừ…) thực ghi Chỉ có lệnh chép giá trị từ nhớ vào ghi (load) chép lại giá trị từ ghi vào nhớ (store) có ảnh hưởng tới nhớ Các xử lý CISC cho phép giá trị ghi cộng với giá trị nhớ, cho phép giá trị nhớ cộng với giá trị ghi ARM không hỗ trợ cấu trúc lệnh dạng từ nhớ đến nhớ Vì thế, tất Kiến trúc lõi ARM lệnh ARM thuộc ba loại sau: - Lệnh xử lý liệu: thay đổi giá trị ghi - Lệnh load-store: chép giá trị từ ghi vào nhớ chép giá trị từ nhớ vào ghi - Lệnh điều khiển dòng lệnh: bình thường, ta thực thi lệnh chứa vùng nhớ liên tiếp, tập lệnh điều khiển dòng lệnh cho phép chuyển sang địa khác thực thi lệnh, tới nhánh cố định (lệnh rẽ nhánh) lưu trở lại địa để phục hồi chuỗi lệnh ban đầu (lệnh rẽ nhánh kết nối) đè lên vùng mã hệ thống 1.6 Cấu trúc tập lệnh ARM 1.6.1 Thực thi lệnh có điều kiện ARM cung cấp khả thực cách có điều kiện hầu hết lệnh dựa tổ hợp trạng thái cờ điều kiện ghi CPSR Thanh ghi CPSR cho biết trạng thái chương trình mô tả hình 1.7 31 28 27 N Z C V Không dùng I F T Chọn chế độ Hình 1.7: Vị trí bit ghi CPSR 1.6.2 Phương thức định địa Đối với lệnh xử lý liệu có hai phương thức trực tiếp ghi giá trị trực tiếp Đối với lệnh load store phương thức địa gián tiếp ghi (không có phương thức trực tiếp nhớ) 1.6.3 Ngăn xếp ARM hỗ trợ việc lưu phục hồi giá trị nhiều ghi, gồm hai lệnh: LDM : Load multiple register STM : Store multiple register Việc lưu phục hồi giá trị ghi với nhớ địa lưutrong ghi nền, giá trị ghi giữ nguyên cập nhật Thứ tự địa nhớ lưu ghi tăng giảm tùy theo phương thức định địa 1.6.4 Cách tổ chức, thực thi tập lệnh ARM Tất lệnh ARM 32 bit: - Có cấu trúc dạng load-store - Cấu trúc lệnh định dạng ba địa (nghĩa địa hai toán hạng nguồn toán hạng đích địa riêng biệt) - Mỗi lệnh thực thi điều kiện.Có lệnh load-store nhiều ghi Kiến trúc lõi ARM đồng thời - Có khả dịch bit kết hợp với thực thi lệnh ALU chu kỳ máy - Chế độ Thumb code: chế độ đặc biệt ARM dùng để tăng mật độ mã cách nén lệnh 32 bit thành 16 bit Một phần cứng đặc biệt giải nén lệnh Thumb 16 bit thành lệnh 32 bit ARM hỗ trợ sáu kiểu liệu: - bit có dấu không dấu - 16 bit có dấu không dấu - 32 bit có dấu không dấu - Các toán tử ARM có 32 bit, làm việc với liệu ngắn hơn, bit cao toán tử thay bit ‘0’ Cách tổ chức thực thi tập lệnh ARM: Hình 1.8: Chu thi lệnh theo kiến trúc đường ống Cách tổ chức lõi ARM không thay đổi nhiều từ năm 1983 ÷ 1995, sử dụng tập lệnh có kiến trúc đường ống ba tầng Từ 1995 trở đây, ARM giới thiệu số lõi có sử dụng kiến trúc đường ống chín tầng Chu thi lệnh theo kiến trúc đường ống mô tả hình 1.8 Các bước thực thi lệnh gồm: - Nhận lệnh từ nhớ (fetch) - Giải mã lệnh, xác định tác động cần có kích thước lệnh (decode) - Truy cập toán hạng yêu cầu từ ghi (reg) - Kết hợp với toán hạng để tạo thành kết hay địa nhớ (ALU) - Truy cập vào nhớ cho toán hạng liệu cần thiết (mem) - Viết kết ngược lại ghi (res) Kiến trúc đường ống Kiến trúc đường ống kiến trúc vi điều khiển ARM, hình 1.9 mô tả kiến trúc đường ống ba tầng để minh họa bước thực thi lệnh: fetch – decode – excute (nhận lệnh – giải mã – thực thi) Kiến trúc lõi ARM Hình 1.9: Kiến trúc đường ống ba tầng Trong kiến trúc đường ống, lệnh thực thi lệnh thứ hai giải mã lệnh thứ ba bắt đầu nạp từ nhớ Với kỹ thuật tốc độ xử lý tăng lên nhiều chu kỳ máy Trong hình 1.9, cho ta thấy chuỗi ba lệnh nạp, giải mã, thực thi xử lý Mỗi lệnh có chu trình để hoàn thành sau đường ống lấp đầy Tập lệnh đặt vào đường ống liên tục Trong chu kỳ lõi xử lý nạp lệnh ADD (cộng) từ nhớ Trong chu kỳ thứ hai lõi tìm nạp lệnh SUB (trừ) giải mã lệnh ADD Trong chu kỳ thứ ba, hai lệnh SUB ADD di chuyển dọc theo đường ống Lệnh ADD thực thi, lệnh SUB giải mã, lệnh CMP (so sánh) nạp Quá trình gọi lấp đầy đường ống Kiến trúc đường ống cho phép lõi xử lý thực lệnh chu kỳ Khi tăng chiều dài đường ống, số lượng công việc thực công đoạn giảm, điều cho phép xử lý phải đạt đến tần số hoạt động cao để tăng hiệu suất thực thi Thời gian trễ hệ thống tăng lên có nhiều chu kỳ để lấp đầy đường ống trước lõi xử lý thực thi lệnh Chiều dài đường ống tăng lên có nghĩa liệu phải phụ thuộc công đoạn định ARM giới thiệu đưa kiến trúc đường ống có năm tác vụ, với vùng nhớ liệu chương trình riêng biệt Từ kiến trúc lệnh có ba tác vụ chia nhỏ lại thành năm tác vụ làm cho chu kỳ xung nhịp thực công việc đơn giản công đoạn, cho phép tăng chu kỳ xung nhịp hệ thống Sự tách rời nhớ chương trình nhớ liệu cho phép giảm đáng kể tài nguyên chiếm lệnh chu kỳ máy 10 Kiến trúc lõi ARM không dấu word • Lệnh hợp ngữ: Dạng định số trước: {!} LDRISTR{}{B} Rd, [Rn,] Dạng định số sau: [Rn], LDRISTR{}{B}{T} Rd, Dạng tương đối nhờ ghi PC: LDRISTR{}{B} Rd, LABEL 1.6.5.8 Lệnh chuyển liệu: byte có dấu nửa word: • Mã hóa nhị phân: Hình 1.14 Mã hóa nhị phân chuyển liệu dạng byte có dấu nửa word • Chú thích: S H Data type Signed byte 1 Unsigned half-word Signed half-word Bit S bit H cho biết loại liệu truyền quy ước bảng 18 Kiến trúc lõi ARM • Lệnh hợp ngữ: Định dạng số trước: [Rn,]{!} Định dạng số sau: [Rn], LDR|STR{}H|SHI SB Rd, LDR|STR{}H|SHISB Rd, 1.6.5.9 Lệnh chuyển liệu nhiều ghi: • Mã hóa nhị phân: Hình 1.15 Mã hóa nhị phân lệnh chuyển liệu nhiều ghi Chú thích: Danh sách ghi bao gồm mảng 16 bit thay cho 16 ghi từ R0 đến R15 U=1 địa tăng ngược lại, P=1, địa tăng trước ngược lại • Lệnh hợp ngữ: LDMISTM{} Rn{!}, • 1.6.5.10 Lệnh hoán đổi giá trị nhớ ghi: • Mã hóa nhị phân: Hình 1.16 Mã hóa nhị phân lệnh đổi giá trị nhớ ghi • Chú thích: B=1 => load byte không dấu, B=0 => load word ô nhứ định địa Rn tới Rd, chứa giá trị từ Rm vào ô nhớ tương ứng Rd Rm ghi 19 Kiến trúc lõi ARM • Lệnh hợp ngữ: SWP{}{B} Rd, Rm, Rn Thanh ghi PC không dùng lệnh Thanh ghi Rn phải khác với ghi Rm ghi Rd 1.6.5.11 Lệnh chuyển giá trị từ ghi trạng thái vào ghi đa dụng: • Mã hóa nhị phân: Hình 1.17 Mã hóa nhị phân lệnh chuyển giá trị từ ghi trạng thái vào ghi đa dụng • Chú thích: R = => Rd = SPSR R = => Rd = CPSR • Lệnh hợp ngữ: Chỉ truy cập giá trị SPSR nhờ lệnh Khi chỉnh sửa giá trị CPSR SPSR phải ý bit không sử dụng 1.6.5.12 Lệnh chuyển giá trị từ ghi đa dụng vào ghi trạng thái: • Mã hóa nhị phân: 20 Kiến trúc lõi ARM Hình 1.18 Mã hóa nhị phân lệnh chuyển giá trị từ ghi đa dụng vào ghi trạng thái • Lệnh hợp ngữ: c – Điều khiển field – PSR[7:0] x – Phần mở rộng field – PSR[15:8] (Không sử dụng mô hình ARMs tại) s – Trạng thái field – PSR[23:16] (Không sử dụng mô hình ARMs tại) f – Cờ field – PSR[31:24] Chú ý: Người lập trình không thay đổi giá trị CPSR[23:0] Tránh truy cập SPSR không thật cần thiết 1.6.5.13 Vùng không dùng lệnh: • Số học: Vùng lệnh số học mở rộng • Điều khiển: Vùng lệnh điều khiển mở rộng • Load store: • Vùng lệnh chuyển liệu mở rộng Vùng lệnh không dùng tới Vùng không định nghĩa mã lệnh 21 Kiến trúc lõi ARM 1.7 Lập trình hợp ngữ cho ARM 1.7.1 Lệnh xử lý liệu: Lệnh xử lý liệu ARM cho phép thực thi lệnh số học, logic ghi Những phép toán dạng có toán tử tham gia sinh kết Trong hai toán hạng nguồn, toán hạng thứ ghi, giá trị tức thời, toán hạng dịch bít trước tham gia vào phép tính số học mà tính chu kỳ máy - Tất toán hạng đề có chiều dài 32bit Nếu kết có chiều dàilà 32bit (Trừ trường hợp nhân sinh kết dài 64bit) ARM sử dụng cấu trúc lệnh có địa • Các lệnh toán học: ADD r0, r1, r2 ; r0 := r1 + r2 ADC r0, r1, r2 ; r0 := r1 + r2 + C SUB r0, r1, r2 ; r0 := r1 - r2 SBC r0, r1, r2 ; r0 := r1 - r2 + C - RSB r0, r1, r2 ; r0 := r2 - r1 RSC r0, r1, r2 ; r0 := r2 - r1 + C – • Các lệnh logic: AND r0, r1, r2 ; r0 := r1 and r2 ORR r0, r1, r2 ; r0 := r1 or r2 EOR r0, r1, r2 ; r0 := r1 xor r2 BIC r0, r1, r2 ; r0 := r1 and not r2 • Tác vụ chuyển giá trị ghi MOV r0, r2 ; r0 := r2 MVN r0, r2 ; r0 := not r2 • Chức so sánh CMP CMN r1, r2 ; set cc on r1 – r2 TST TEQ r1, r2 ; set cc on r1 + r2 r1, r2 ; set cc on r1 and r2 r1, r2 ; set cc on r1 xor r2 1.7.2 Chỉ lệnh chuyển liệu: Chỉ lệnh chuyển liệu tương tự lệnh số học, có tác dạng chuyển liệu ghi, ghi địa trực tiếp • Chỉ lệnh load store ghi • Chỉ lệnh load store nhiều ghi • Chỉ lệnh trao đổi giá trị ghi 1.7.3 Định địa gián tiếp qua ghi Ví dụ: LDR r0, [r1] ; r0 := mem32[r1] STR r0, [r1] ; mem32[r1] := r0 1.7.4 Khởi tạo địa pointer: 22 Kiến trúc lõi ARM 1.7.5 Định địa stack 1.7.6 Các lệnh điều khiển dòng lệnh: • Chỉ lệnh rẽ nhánh • Nhánh điều kiện …vv… 1.7.7 Chương trình đơn giản: 23 Kiến trúc lõi ARM CHƯƠNG 2: ĐẶC ĐIỂM CÁC DÒNG LÕI XỬ LÝ ARM Trong chương này, trình bày tính kiến trúc loại lõi xử lý dòng vi điều khiển ARM Từ kiến trúc lõi xử lý ARMv4 đến kiến trúc lõi xử lý ARMv7, kiến trúc có tính xử lý đặc trưng, phiên sau có bổ sung thêm tính đặc biệt, có tính kế thừa phiên trước 2.1 Phân loại tính dòng lõi xử lý ARM 2.1.1 Phân loại dòng lõi xử lý ARM Các dòng lõi xử lý ARM có bốn kiến trúc, bao gồm: kiến trúc v4T, kiến trúc v5, kiến trúc v6 kiến trúc v7 Kiến trúc ARMv4T kiến trúc bản, kiến trúc ARM sau bao gồm v5, v6, v7 kế thừa từ kiến trúc ARMv4T Hình 2.1 mô tả hình thành phát triển kiến trúc lõi xử lý ARM từ kiến trúc ARMv4 đến ARMv7 24 Kiến trúc lõi ARM Hình 2.1: Các kiến trúc lõi xử lý ARM 2.1.2 Tính dòng lõi xử lý ARM Tính dòng lõi xử lý ARM mô tả hình 2.2 Hình 2.2: Tính dòng lõi xử lý ARM Trong đó: ARM 32-Bit ISA (Instruction Set Architecture): cấu trúc tập lệnh ARM 32 bit Thumb 16-Bit ISA: cấu trúc tập lệnh Thumb 16 bit thiết lập cách phân tích tập lệnh ARM 32 bit chuyển hóa tốt phù hợp với tập lệnh 16 bit, làm giảm kích thước mã Thumb: đặc tính Thumb để cải thiện mật độ biên dịch mã, xử lý thực tập lệnh 16 bit Ở chế độ có số toán hạng kèm ẩn giới hạn số khả so với chế độ tập lệnh ARM đầy đủ Trong Thumb, mã nhỏ chức cho cải thiện mật độ mã tổng thể Trong trường hợp nhớ bus truyền liệu bị hạn chế 32 bit, mã Thumb cho phép tăng hiệu suất thành mã ARM 32 bit để tăng khả xử lý băng thông lớn Thumb-2: đưa để bổ sung cho giới hạn tập lệnh 16 bit Thumb với việc cung cấp thêm tập lệnh 32 bit mở rộng Mục tiêu Thumb-2 đạt mật độ mã Thumb với hiệu suất tương đương tập lệnh ARM 32 bit 25 Kiến trúc lõi ARM Thumb-2 Mixed ISA: kết hợp tập lệnh 16 bit 32 bit mà không cần chế độ chuyển mạch Kết hợp tập lệnh 16 bit 32 bit thời điểm thực lệnh lệnh đơn (không gây giảm hiệu suất thực thi) VFPv2 (Vector Floating Point): thực phép tính dấu chấm động kiến trúc ARM VFPv2 có 16 ghi, hoạt động với chu kỳ đơn, khả tính toán xử lý nhanh, độ trễ thấp, có độ xác cao VFPv3 phiên nâng cấp VFPv2, VFPv3 có độ xác cao với 32 ghi số tập lệnh mở rộng NVIC (Nested Vectored Interrupt Controller): Bộ điều khiển vector ngắt lồng có khả xử lý ngắt linh hoạt nhanh chóng cho phép rút ngắn thời gian trì hoãn đáp ứng ngắt (hệ thống đáp ứng ngắt nhanh hơn) với nhiều mức ưu tiên khác Jazella: công nghệ hỗ trợ trình thông dịch mã Java, cho phép lõi ARM thực thi trực tiếp mã Java cấu trúc phần cứng trạng thái thực thi thứ ba với chế độ ARM Thumb hành, làm tăng tốc khả thực thi WIC (Wake-up Interrupt Controller): Bộ điều khiển đánh thức có ngắt, giúp cho hoạt động tiêu tốn lượng TrustZone: Khối tăng tính bảo mật, đảm bảo đoạn mã độc hại không làm ảnh hưởng đến hệ thống SIMD (Single Instruction Multiple Data): Khối tập lệnh đơn đa liệu, khối cho phép tập lệnh hoạt động thời điểm mục liệu khác nhau, làm tăng khả xử lý liệu đặc biệt hiệu liệu dạng âm hình ảnh NEON: Công nghệ NEON mục đích tăng hiệu suất xử lý cho định dạng đa phương tiện, công nghệ phát triển mở rộng từ công nghệ SIMD, có khả làm tăng thuật toán xử lý tín hiệu mã hóa giải mã định dạng âm thanh, hình ảnh; đồ họa hai chiều, ba chiều; trò chơi; tổng hợp xử lý giọng nói, hình ảnh thoại với hiệu suất xử lý cao 2.2 Đặc điểm dòng lõi xử lý ARM 2.2.1 Đặc điểm kiến trúc dòng lõi xử lý ARM v4T Kiến trúc v4T ARM giới thiệu năm 1994, bao gồm lõi xử lý bao gồm: ARM7TDMI, ARM720T, ARM920T Kiến trúc v4T hỗ trợ tập lệnh Thumb (viết tắt T ký hiệu xử lý) Hỗ trợ lúc tập lệnh Thumb 16 bit ARM 32 bit Với tập lệnh Thumb 16 bit cho phép trình biên dịch tạo chương trình nhỏ mà tương thích với hệ thống 26 Kiến trúc lõi ARM 32 bit Điển hình kiến trúc lõi ARM7TDMI thiết kế nhằm đáp ứng ứng dụng yêu cầu hiệu suất cao, tiêu thụ lượng thấp nhỏ gọn Ý nghĩa ký hiệu “ARM7TDMI”: - T hỗ trợ tập lệnh Thumb 16 bit - D Debug - hiệu chỉnh lỗi - M có nghĩa “Long Multiply Support” - hỗ trợ phép toán 64 bit - I Interface, hỗ trợ giao tiếp ngoại vi ARM7TDMI hỗ trợ giải mã lỗi khối Embedded Trace Macrocell (ETM) giải pháp giải mã lỗi hoàn chỉnh dành cho lõi ARM, ARM7TDMI có khả kết hợp với lõi khác nhằm tăng cường khả xử lý ARM7TDMI có kiến trúc đường ống ba tầng, kiến trúc Von Neumann, xử lý số học 32 bit Hệ thống tập lệnh 16 32 bit có khả mở rộng thông qua giao diện đồng xử lý với lõi Ở phiên mở rộng ARM720T, nhớ đệm hệ thống quản lý nhớ (MMU-Memory Management Unit) tích hợp Tiếp phiên ARM9TDMI sử dụng kiến trúc đường ống năm tầng kiến trúc Harvard 2.2.2 Đặc điểm kiến trúc dòng lõi xử lý ARM v5 Kiến trúc v5 phiên mở rộng v5T, v5TE, v5TEJ ARM giới thiệu năm 1999, bao gồm lõi xử lý: - ARM1020E/1022E v5T - ARM946E-S/ARM966E-S/ARM968E-S v5TE - ARM7EJ-S/ARM92EJ-S/ ARM1026EJ-S v5TEJ Đặc tính kỹ thuật chung dòng ARMv5 mô tả bảng 2.1: Bảng 2.1: Đặc điểm kỹ thuật chung dòng ARMv5 Bộ xử lý I/O Dung lượng không gian nhớ Tập lệnh Chế độ hoạt động Cấu trúc tập lệnh Ngắt Lõi xử lý dạng RISC 32 bit Ánh xạ nhớ (Memory map I/O) 4GBytes 16 bit, 32 bit Có chế độ: User, Supervisor, Abort, Undefined,System, IRQ, FIQ Hỗ trợ tập lệnh ARM 32 bit Thumb 16 bit mở rộng IRQ (Interrupt Request) FIQ (Fast Interrupt) Phiên v5T: lệnh Thumb cải tiến, hỗ trợ CLZ (Count Leading Zero), CLZ tập lệnh hỗ trợ cho phép xác định biến đếm giảm chu kỳ lệnh, giúp giảm thời gian lệnh cộng, trừ, nhân, chia số nhị phân; giúp tăng tốc độ xử lý tín hiệu số so với công nghệ thực phép tính dấu chấm động 27 Kiến trúc lõi ARM Phiên v5TE: hỗ trợ khối xử lý tín hiệu số DSP (Digital Signal Processing) Với khối DSP này, lực xử lý tính toán số tăng lên 70% Phiên v5TE-J: khối Jazelle thêm vào nhằm hỗ trợ trình thông dịch mã Java thực thi mã Java Thời gian thực thi mã Java tăng lên tám lần giảm 80% lượng tiêu thụ so với lõi xử lý không hỗ trợ khối Jazelle Tính cho phép lập trình viên thực thi mã Java cách độc lập với hệ điều hành Kiến trúc v5 sử dụng nhiều dòng ARM10, đặc biệt phiên v5TEJ Mặc dù nhiều thay đổi kiến trúc, nhiên phiên kiến trúc v5 sử dụng nhiều vi xử lý tích hợp hệ thống nên tạo linh hoạt với nhiều tính cao cấp 2.2.3 Đặc điểm kiến trúc dòng lõi xử lý ARM v6 Kiến trúc v6 phiên mở rộng v6T2, v6Z v6K ARM giới thiệu năm 2002, bao gồm lõi xử lý: ARM1136J(F)-S, ARM1156T2(F)-S(v6T2), ARM1176JZ(F)-S(v6Z), MPCore(v6K) Có nhiều bổ sung kiến trúc v6 theo hướng tạo hệ thống nhúng cao cấp phức tạp giữ ưu điểm khả tiêu thụ điện thấp Với phiên có tính đặc biệt thêm vào Kế thừa đặc điểm trội kiến trúc v4 v5, kiến trúc v6 khối ‘TEJ’ tích hợp vào lõi ARM Để đảm bảo khả tương thích ngược phần nhớ xử lý ngoại lệ kế thừa từ kiến trúc v5.Về kiến trúc v6, có năm điểm cải tiến: - Quản lý nhớ: nhớ cache khối quản lý nhớ (MMU- Memory Management Unit) cải tiến làm tăng hiệu suất thực thi hệ thống lên 30% so với kiến trúc cũ - Đa lõi xử lý (Multiprocessor): đáp ứng hệ thống mà yêu cầu khả tốc độ xử lý nhanh như: phương tiện giải trí cá nhân, xử lý số… Các lõi xử lý chia sẻ đồng liệu với thông qua vùng nhớ chung - Hỗ trợ xử lý đa phương tiện: tích hợp tập lệnh SIMD (Single Instruction Multiple Data) làm tăng khả xử lý liệu dạng âm hình ảnh SIMD cho phép nhà phát triển cài đặt ứng dụng phức tạp như: giải mã liệu âm hình ảnh, toán nhận dạng, hiển thị hình ảnh 3D hỗ trợ thiết bị sử dụng công nghệ không dây - Kiểu liệu: cách hệ thống sử dụng lưu trữ liệu nhớ Các hệ thống SoC (System on Chip), chip vi xử lý đơn, hệ điều hành giao diện ngoại vi USB PCI thường hoạt động dựa kiểu 28 Kiến trúc lõi ARM liệu “little endian” Một số giao thức TCP/IP hay MPEG hoạt động dựa kiểu liệu “big endian” Để tối ưu hóa khả tích hợp hệ thống, ARMv6 hỗ trợ lúc hai định dạng “little” “big” endian, gọi tắt “mixed-endian” Bên cạnh đó, ARMv6 cung cấp tập lệnh để xử lý liệu dạng “unalignment” - có kích thước liệu thay đổi Tương tự ARMv5, ARMv6 kiến trúc 32 bit, nên hỗ trợ đường truyền liệu 64 bit cao - Xử lý ngoại lệ ngắt: để thích ứng cho hệ thống xử lý thời gian thực Nhằm tăng cường tính an toàn thực thi mã chương trình, khối TrustZone tích hợp phiên v6Z Vấn đề thực thi mã an toàn xuất phát từ thực tế ngày nhiều thiết bị di động dựa tảng ARM, nhiều chương trình tải từ mạng tính an toàn đoạn mã nhiều chưa kiểm chứng TrustZone đảm bảo đoạn mã độc hại không làm ảnh hưởng đến hệ thống Dòng ARM11 đại diện phổ biến kiến trúc ARMv6 Với kiến trúc đường ống tám tầng (ở ARM1156T áp dụng kiến trúc đường ống chín tầng), hệ thống dự đoán rẽ nhánh (Branch Prediction) kết trả (Return Stack) giúp ARM11 nâng cao hiệu suất thực thi lệnh Tập lệnh Thumb-2 giới thiệu hỗ trợ lệnh Thumb 16 bit 32 bit Ở phiên ARM1176JZ(F)-S bổ sung khối IEM (Intelligent Energy Management) để quản lý mức tiêu thụ lượng tốt 2.2.4 Kiến trúc dòng lõi xử lý ARM v7 Kiến trúc v7 phiên mở rộng v7-A, v7-R v7-M ARM giới thiệu vào năm 2005, đặc trưng bao gồm lõi xử lý: Cortex-A8 (v7-A), Cortex-R4 (v7-R), Cortex-M3 (v7-M) Kiến trúc v7 chia thành ba dòng dựa đặc thù ứng dụng thực tiễn: - Dòng A (viết tắt Application), lõi ARM dòng hỗ trợ cho ứng dụng đòi hỏi tính phức tạp, mức độ tương tác người dùng cao như: thiết bị cầm tay di động, máy tính, công nghệ không dây… - Dòng R (viết tắt Realtime), lõi ARM dòng hỗ trợ cho ứng dụng cần tính toán xử lý thời gian thực - Dòng M (viết tắt Microcontroller), lõi ARM dòng dành cho ứng dụng công nghiệp điện tử tiêu dùng ARM Cortex phiên khác với phiên ARM thường hay ký 29 Kiến trúc lõi ARM hiệu ARMXX ARM Cortex tốc độ hoạt động hay hệ thống ngoại vi định mà tùy thuộc vào nhà sản xuất phần cứng thiết kế hệ thống ngoại vi khác Tuy nhiên tất dùng chung lõi ARM Cortex việc lập trình truy cập phần cứng tuân theo chuẩn CMSIS (The Cortex Microcontroller Software Interface Standard: Chuẩn giao tiếp phần mềm vi điều khiển Cortex) 2.2.5 Kiến trúc dòng lõi xử lý ARM v8 Được giới thiệu tháng 10 năm 2011, ARMv8-A thay đổi kiến trúc lớn lịch sử phát triển ARM từ trước tới ARMv8-A hỗ trợ kiến trúc 64-bit (AArch64), bổ sung thêm tập lệnh A64 AArch64 cung cấp không gian người dùng tương thích với kiến trúc 32-bit ARMv7-A gọi AArch32 Đương nhiên tập lệnh 32-bit cũ hỗ trợ gọi A32 ARMv8-A cho phép ứng dụng 32-bit thực thi hệ điều hành 64-bit hệ điều hành 32 bit nằm quản lý máy ảo 64-bit Nó bổ sung thêm lệnh mã hóa hỗ trợ chuẩn AES SHA-1/SHA-256 Với tập lệnh A64 mới, vi điều khiển có 31 ghi dùng chung SP chuyên dụng, hầu hết lệnh nhận đối số 32 64-bit, chế độ định địa 64-bit Kiến trúc SIMD tiên tiến bao gồm tập lệnh SIMD 64 128-bit, tập lệnh tăng cường khả xử lý tín hiệu đa phương tiện cho ứng dụng, hỗ trợ tính toán số thực dấu phẩy động, tương thích với chuẩn IEEE 754 AArch64 có hệ thống xử lý ngoại lệ gồm ghi trống chế độ từ EL0 – EL3 Hình 2.3: Hệ thống ngoại lệ ARMv8-A 30 Kiến trúc lõi ARM KẾT LUẬN Trong trình nghiên cứu, tìm hiểu đề tài, chúng em trình bày nội dung sau: Trình bày khái quát vi điều khiển ARM Quá trình phát triển hình thành vi điều khiển ARM Mô hình kiến trúc vi điều khiển ARM Cấu trúc tập lệnh với nhiều ưu điểm như: tập lệnh 32 bit, cấu trúc load-store, cách tổ chức thực thi tập lệnh ARM Các tính kiến trúc loại lõi xử lý dòng vi điều khiển ARM 31 Kiến trúc lõi ARM TÀI LIỆU THAM KHẢO [1] Steve Furber, ARM-SoC Architecture, Addison Wesley [2] ARM Developer Suite - Assemler Guide, 2001 ARM Limited [3] Andy Wu, ARM SOC Architecture, Graduate Institute Engineering, 2003 of Electronics [4] TS Nguyễn Kim Khánh, Slide giảng [5] Các website, diễn đàn Internet 32 [...]... tích hợp Tiếp đó phiên bản ARM9 TDMI sử dụng kiến trúc đường ống năm tầng và kiến trúc Harvard 2.2.2 Đặc điểm kiến trúc dòng lõi xử lý ARM v5 Kiến trúc v5 và các phiên bản mở rộng v5T, v5TE, v5TEJ được ARM giới thiệu năm 1999, bao gồm các lõi xử lý: - ARM1 020E/1022E v5T - ARM9 46E-S /ARM9 66E-S /ARM9 68E-S v5TE - ARM7 EJ-S /ARM9 2EJ-S/ ARM1 026EJ-S v5TEJ Đặc tính kỹ thuật chung của dòng ARMv5 được mô tả trong bảng... xử lý ARM 2.1.1 Phân loại các dòng lõi xử lý ARM Các dòng lõi xử lý ARM cho đến nay có bốn kiến trúc, bao gồm: kiến trúc v4T, kiến trúc v5, kiến trúc v6 và kiến trúc v7 Kiến trúc ARMv4T là kiến trúc cơ bản, các kiến trúc ARM sau bao gồm v5, v6, v7 đều kế thừa từ kiến trúc ARMv4T Hình 2.1 mô tả sự hình thành và phát triển các kiến trúc lõi xử lý ARM từ kiến trúc ARMv4 đến ARMv7 24 Kiến trúc lõi ARM Hình... thoại với hiệu suất xử lý cao 2.2 Đặc điểm các dòng lõi xử lý ARM 2.2.1 Đặc điểm của kiến trúc dòng lõi xử lý ARM v4T Kiến trúc v4T được ARM giới thiệu năm 1994, bao gồm các lõi xử lý bao gồm: ARM7 TDMI, ARM7 20T, ARM9 20T Kiến trúc v4T hỗ trợ tập lệnh Thumb (viết tắt là T trong các ký hiệu của bộ 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... ARM Hình 2.1: Các kiến trúc lõi xử lý ARM 2.1.2 Tính năng các dòng lõi xử lý ARM Tính năng các dòng lõi xử lý ARM được mô tả trong hình 2.2 Hình 2.2: Tính năng các dòng lõi xử lý ARM Trong đó: ARM 32-Bit ISA (Instruction Set Architecture): cấu trúc tập lệnh ARM 32 bit Thumb 16-Bit ISA: cấu trúc tập lệnh Thumb 16 bit được thiết lập bằng cách phân tích tập lệnh ARM 32 bit và chuyển hóa tốt nhất phù hợp... tập lệnh 32 bit, cấu trúc load-store, cách tổ chức và thực thi tập lệnh của ARM 5 Các tính năng và kiến trúc các loại lõi xử lý trong các dòng vi điều khiển ARM 31 Kiến trúc lõi ARM TÀI LIỆU THAM KHẢO [1] Steve Furber, ARM- SoC Architecture, Addison Wesley [2] ARM Developer Suite - Assemler Guide, 2001 ARM Limited [3] Andy Wu, ARM SOC Architecture, Graduate Institute Engineering, 2003 of Electronics [4]... lõi xử lý ARM v8 Được giới thiệu tháng 10 năm 2011, ARMv8-A là sự thay đổi kiến trúc lớn nhất trong lịch sử phát triển của ARM từ trước tới nay ARMv8-A hỗ trợ kiến trúc 64-bit (AArch64), do đó nó được bổ sung thêm tập lệnh A64 AArch64 cung cấp không gian người dùng tương thích với kiến trúc 32-bit của ARMv7-A và được gọi là AArch32 Đương nhiên tập lệnh 32-bit cũ vẫn được hỗ trợ và gọi là A32 ARMv8-A... 22 Kiến trúc lõi ARM 1.7.5 Định địa chỉ stack 1.7.6 Các chỉ lệnh điều khiển dòng lệnh: • Chỉ lệnh rẽ nhánh • Nhánh điều kiện …vv… 1.7.7 Chương trình đơn giản: 23 Kiến trúc lõi ARM CHƯƠNG 2: ĐẶC ĐIỂM CÁC DÒNG LÕI XỬ LÝ ARM Trong chương này, sẽ trình bày các tính năng và kiến trúc các loại lõi xử lý trong các dòng vi điều khiển ARM Từ kiến trúc lõi xử lý ARMv4 đến kiến trúc lõi xử lý ARMv7, mỗi một kiến... trúc lõi ARM liệu “little endian” Một số các giao thức như TCP/IP hay MPEG hoạt động dựa trên kiểu dữ liệu “big endian” Để có thể tối ưu hóa khả năng tích 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ước dữ liệu thay đổi Tương tự như ARMv5, ARMv6 cũng... nghiệp và điện tử tiêu dùng ARM Cortex là một phiên bản khác với các phiên bản ARM thường hay được ký 29 Kiến trúc lõi ARM hiệu bởi ARMXX ARM Cortex không có tốc độ hoạt động hay hệ thống ngoại vi nhất định mà tùy thuộc vào nhà sản xuất phần cứng sẽ thiết kế hệ thống ngoại vi khác nhau Tuy nhiên tất cả đều dùng chung lõi ARM Cortex và việc lập trình và truy cập phần cứng tuân theo chuẩn CMSIS (The Cortex... cache là tách rời nhau> cũng cho phép giảm đáng kwr tài nguyên chiếm của mỗi chỉ lệnh trong một chu kỳ máy 11 Kiến trúc lõi ARM Hình 1.11 Cách tổ chức dòng chảy lệnh có 5 tác vụ với ARM9 TDMI 1.6.5 Tập lệnh của ARM 1.6.5.1 Kiểu dữ liệu ARM hỗ trợ 6 loại dữ liệu: 12 Kiến trúc lõi ARM 8 bit có dấu và không dấu 16 bit có dấu và không dấu 32 bit có dấu và không dấu Như phần trên đã đề cập, các toán tử của ... lõi xử lý ARM v5 Kiến trúc v5 phiên mở rộng v5T, v5TE, v5TEJ ARM giới thiệu năm 1999, bao gồm lõi xử lý: - ARM1 020E/1022E v5T - ARM9 46E-S /ARM9 66E-S /ARM9 68E-S v5TE - ARM7 EJ-S /ARM9 2EJ-S/ ARM1 026EJ-S... trúc ARMv4T Hình 2.1 mô tả hình thành phát triển kiến trúc lõi xử lý ARM từ kiến trúc ARMv4 đến ARMv7 24 Kiến trúc lõi ARM Hình 2.1: Các kiến trúc lõi xử lý ARM 2.1.2 Tính dòng lõi xử lý ARM Tính... 2.2 Đặc điểm dòng lõi xử lý ARM 2.2.1 Đặc điểm kiến trúc dòng lõi xử lý ARM v4T Kiến trúc v4T ARM giới thiệu năm 1994, bao gồm lõi xử lý bao gồm: ARM7 TDMI, ARM7 20T, ARM9 20T Kiến trúc v4T hỗ trợ