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 [13], 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 3.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.
Hình 3.1: Các kiến trúc lõi xử lý ARM.
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 3.2.
Hình 3.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 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ã, bộ xử lý thực hiện tập lệnh 16 bit. Ở chế độ này có một số toán hạng đi kèm sẽ ẩn đi và giới hạn một số khả năng so với chế độ tập lệnh ARM đầy đủ. Trong Thumb, các mã sẽ nhỏ hơn và ít chức năng cho cải thiện mật độ mã tổng thể. Trong trường hợp bộ nhớ hoặc bus truyền dữ liệu bị hạn chế dưới 32 bit, mã Thumb cho phép tăng hiệu suất thành mã ARM 32 bit để tăng khả năng xử lý trên băng thông lớn hơn.
Thumb-2: được đưa ra để bổ sung cho các 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 của Thumb-2 là đạt được mật độ mã như Thumb với hiệu suất tương đương như tập lệnh ARM 32 bit.
Thumb-2 Mixed ISA: kết hợp tập lệnh 16 bit và 32 bit mà có thể không cần chế độ chuyển mạch. Kết hợp tập lệnh 16 bit và 32 bit ngay tại thời điểm đang thực hiện lệnh và chỉ trong một lệnh đơn (không gây giảm hiệu suất thực thi).
VFPv2 (Vector Floating Point): là bộ thực hiện phép tính dấu chấm động của kiến trúc ARM. VFPv2 có 16 thanh ghi, hoạt động với một chu kỳ đơn, khả năng tính toán và xử lý rất nhanh, độ trễ thấp, có độ chính xác cao.
VFPv3 là phiên bản nâng cấp của VFPv2, VFPv3 có độ chính xác cao hơn với 32 thanh ghi và một số tập lệnh được mở rộng.
NVIC (Nested Vectored Interrupt Controller): Bộ điều khiển vector ngắt lồng nhau có khả năng xử lý ngắt rất linh hoạt và nhanh chóng và 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 nhau.
Jazella: là 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 trong cấu trúc phần cứng như là trạng thái thực thi thứ ba cùng với các chế độ ARM và Thumb hiện hành, làm tăng tốc khả năng thực thi.
WIC (Wake-up Interrupt Controller): Bộ điều khiển đánh thức khi có ngắt, giúp cho các hoạt động tiêu tốn ít năng lượng hơn.
TrustZone: Khối tăng tính bảo mật, đảm bảo các đ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 dữ liệu, khối này cho phép tập lệnh hoạt động tại cùng thời điểm trên các mục dữ liệu khác nhau, làm tăng khả năng xử lý dữ liệu và đặc biệt hiệu quả đối với các dữ liệu dạng âm thanh và hình ảnh.
NEON: Công nghệ NEON mục đích là tăng hiệu suất xử lý cho các định dạng đa phương tiện, công nghệ này được phát triển mở rộng từ công nghệ SIMD, có khả năng làm tăng các thuật toán xử lý tín hiệu như là mã hóa và giải mã các đị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 trong thoại với hiệu suất xử lý cao.