BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 3Cấu trúc ñơn giản, cho phép dễ dàng thay ñổi ñể có tần số hoạt ñộng cao hơn The ARM Processor ðược thiết kế cho các ứng dụng nhúng, là CPU ch
Trang 1BÙI QUỐC BẢO
Cấu trúc dựa trên cấu trúc RISC
(Reduced Instruction Set Computer)
Trang 2BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 3
Cấu trúc ñơn giản, cho phép dễ dàng thay ñổi
ñể có tần số hoạt ñộng cao hơn
The ARM Processor
ðược thiết kế cho các ứng dụng nhúng,
là CPU cho các hệ thống system-on-chip
Hỗ trợ tập lệnh 16 bit và 32 bit
Cấu trúc không thuần túy là RISC.
Vi xử lý ARM ñược bán dưới dạng 1 lõi
IP (intellectual property core)
Trang 3BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 5
Main features of ARM Processor
Mhz Tuy nhiên 1 số dòng ARM
mới có thể chạy với tốc ñộ
Trang 4BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 7
Cấu trúc Von Neumann
Code và data chứa trong cùng không gian ñịa chỉ.
•Chỉ có 1 bus giao tiếp bộ nhớ.
•Tận dụng ñược không gian nhớ.
•Chương trình có thể thiết kế mềm dẻo hơn.
•Data có thể bị chép ñè lên chương trình.
•Bị bottle neck trong quá trình truyền data và dữ liệu
Trang 5BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 9
Cấu trúc Harvard
Dùng 2 bus riêng ñể truy cập code và data
Code và data có thể nằm chung trong 1 không gian nhớ
Truy cập code và data cùng lúc
Cho phép ñộ dài code và data khác nhau
Code không bị ghi ñè bởi data
Phần cứng CPU phức tạp hơn
Pipeline
Cấu trúc pipeline cho phép một lệnh ñược
thực thi trong lúc nạp và giải mã các lệnh
khác.
Với cấu trúc này, một lệnh có thể ñược
thực thi trong 1 chu kỳ clock
Trang 6BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 11
ARM Cortex M3 block diagram
Memory endian
ARMv7-M cho phép chọn endian mode
cho các tác vụ truy cập data.
Các mã lệnh luôn ở dạng little endian
Các lệnh load và store vào không gian
ñiều khiển hệ thống (system control
space) luôn ở dạng little endian
Trang 7BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 13
Processor operating mode
Handle mode: Khi CPU chạy 1 chương trình xử
lý exception (ví dụ: trình phục vụ ngắt).
Thread mode: Khi chạy một chương trình bình
thường.
Privileged access level
Trong chế ñộ truy cập ưu tiên (Privileged
access level), CPU ñược truy cập toàn
bộ tài nguyên hệ thống.
Sau khi reset, CPU sẽ ñi vào trạng thái
này.
Trang 8BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 15
User access level
Trong trạng thái này, CPU không ñược
truy cập vào 1 số tài nguyên hệ thống
(VD: thanh ghi cấu hình).
Sử dụng chạy 1 chương trình dưới sự
ñiều khiển của 1 hệ ñiều hành.
Mode transition
Trang 9BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 17
Chương trình với hệ ñiều hành
Hệ ñiều hành chạy ở chế ñộ thread
mode với privileged access level.
Khi một exception (VD: ngắt timer) xảy
ra, hệ ñiều hành ñi vào chế ñộ handle
mode.
Các tác vụ ñược thực thi ở thread mode
với user access level.
Trang 10BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 19
Stack Pointer Register
Thanh ghi R13 ñược sử dụng như là thanh ghi
stack pointer cho tác vụ ñang tích cực.
Bit [1:0] luôn luôn bằng 00
SP_main:
Là thanh ghi SP mặc ñịnh, sử dụng trong handle
mode hoặc trong thread mode khi chương trình
hoặc OS chạy ở chế ñộ Privileged level.
SP_Process:
ðược sử dụng trong thread mode
Trang 11BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 21
Link Register
Thanh ghi R14 chứa ñịa chỉ quay về khi
lệnh BL (Branch and Link) hay BLX
(Branch and Link with Exchange) ñược
thực thi.
Có thể ñược sử dụng trong các lệnh
quay về từ trình phục vụ ngoại lệ.
Bit thấp nhất luôn luôn bằng 0.
main ; Main program
Trang 12BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 23
Program Counter Register
Thanh ghi R15 ñược dùng như Program
Counter.
Bit thấp nhất phải ñược set lên 1 khi 1
lệnh rẽ nhánh ñược thực thi ñể chỉ ra
mode ñang chạy là Thumb mode
Program Status Registers
MRS r0, APSR ; Read Flag state into R0
ESPR và ISPR là thanh ghi chỉ ñọc Ta truy cập PSR bằng lệnh MSR:
Trang 13BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 25
Combined Program Status Registers
MRS r0, PSR ; Read the combined program status word
MSR PSR, r0 ; Write combined program state word
Trang 14BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 27
Mask register
Dùng ñể cấm các exception:
MRS r0, BASEPRI ; Read BASEPRI register into R0
MRS r0, PRIMASK ; Read PRIMASK register into R0
MRS r0, FAULTMASK ; Read FAULTMASK register
;into R0 MSR BASEPRI, r0 ; Write R0 into BASEPRI register
MSR PRIMASK, r0 ; Write R0 into PRIMASK register
MSR FAULTMASK, r0 ; Write R0 into FAULTMASK
;register
Trang 15BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 29
Thanh ghi ñiều khiển (CONTROL)
Bit CONTROL[1]
Luôn bằng 0 ở handle mode
Trong thread mode, nó có thể bằng 0
hay 1
Chỉ có thể ghi khi CPU ở Thread mode
và privileged state
Trang 16BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 31
Bit CONTROL[0]
Chỉ có thể ghi khi CPU ở privileged state
MRS r0, CONTROL ; Read CONTROL
;register into R0 MSR CONTROL, r0 ; Write R0 into
;CONTROL register
Exception
Trang 17BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 33
Exception
Exception
Trang 18BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 35
Vector table
Vector table
Trang 19BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 37
Vector table
EXPORT Vectors
Vectors
DCD StackMem + Stack ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NmiSR ; NMI Handler
DCD FaultISR ; Hard Fault Handler
DCD IntDefaultHandler ; MPU Fault Handler
DCD IntDefaultHandler ; Bus Fault Handler
DCD IntDefaultHandler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD IntDefaultHandler ; SVCall Handler
DCD IntDefaultHandler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD IntDefaultHandler ; PendSV Handler
DCD SysTickHandler ; SysTick Handler
Vector table
IntDefaultHandler
B IntDefaultHandler
Trang 20Exception with CONTROL[1]=0
Trang 21BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 41
Exception with CONTROL[1]=1
Reset sequence
Trang 22BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 43
Reset sequence