Tải bản đầy đủ (.doc) (10 trang)

Kiến trúc máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (338.03 KB, 10 trang )

Chương 1.

Giới thiệu tổng quan

Họ vi xử lý ARM9 là giải pháp vi xử lý đơn cho các ứng dụng microcontroller,
DSP (Digital Signal Processing) và Java. ARM9 đem đến thị trường chip giá rẻ
và giảm bớt sự phức tạp, tiết kiệm năng lượng và thời gian giao dịch. Họ ARM9
gồm có các vi xử lý ARM968E-S, ARM946E-S, ARM926E-S.
Các vi xử lý ARM9 là trái tim của những sản phẩm tín hiệu số cao cấp. Họ vi xử
lý ARM9 đáp ứng được các yêu cầu khắt khe về tính hiệu quả cao, tính linh hoạt
và chi phí cho các ứng dụng nhúng.
1. Lĩnh vực ứng dụng ARM9:
Tiêu dùng: Smartphones, PDA, Set top box, đồ chơi điện tử, máy quay phim kĩ
thuật số.
Mạng: Wireless LAN, 802.11, Bluetooth, SCSI, 2.5G/3G, Baseband
Xe hơi: Power train, ABS, Body systems, Navigation, Infotainment.
Nhúng: USB controllers, Bluetooth controllers, máy quét y khoa
Lưu trữ: HDD controllers, ổ cứng trạng thái rắn (solid state drive)
2. So sánh các đặc điểm giữa các vi xử lý trong họ ARM9
ARM968E-S
Đây là vi xử lý ARM9 nhỏ nhất với sự cải tiến DSP để giảm sự tiêu thụ năng
lượng cho các ứng dụng nhúng thời gian thực.
Vi xử lý hoạt động có hiệu quả nhờ vào Tightly Coupled Memory được tích hợp
thơng qua giao diện chuẩn.
ARM946E-S
ARM946E-S có sự cải tiến về bộ xử lý cache với MPU cho các ứng dụng thời
gian thực chạy trên RTOS.


Vi xử lý hướng thời gian thực được bổ sung thêm các Memory Protection Unit.
Vi xử lý này có ích cho các ứng dụng mà phần lớn code nằm ở trong bộ nhớ


chính và có nhu cầu nạp vào cache. Việc xử lý các exception và dữ liệu có thể
thực hiện tại Tightly Coupled Memory.
ARM926EJ-S
Vi xử lý có hỗ trợ Java, DSP và MMU (Memory Management Unit) dành cho
các ứng dụng chạy trên hệ điều hành.
ARM926EJ-S là vi xử lý có khả năng hỗ trợ đầy đủ các hệ điều hành như Linux,
WindowsCE và Symbian. Vi xử lý này thích hợp cho nhiều ứng dụng cần giao
diện đồ họa.

Hình Giới thiệu tổng quan-1 So sánh đặc điểm giữa các vi xử lý trong họ
ARM9

A. ARM926EJ-S
1. Tập thanh ghi của ARM926EJ-S


Các thanh ghi của ARM
-

r0 -> r14 : 15 thanh ghi đa dụng

-

r15 : thanh ghi PC

-

CPRS : thanh ghi trạng thái chương trình hiện tại

-


Các thanh ghi khác được giữ lại cho hệ thống (vd như thanh ghi chứa ngắt )

ARM9 có nhiều cải tiến lớn so với ARM7 bằng việc sử dụng thêm nhiều
transitor, gồm có:
-

Cải tiến tần số đồng hồ: từ kiến trúc pipleline 3 giai đoạn thành 5 giai đoạn

để tốc độ đồng hồ tăng gần như gấp đôi
-

Cải tiến chu kỳ xung nhịp: nạp và lưu trữ nhanh hơn, nhiều lệnh chỉ tốn

một chu kỳ đồng hồ, tối ưu hóa lúc biên dịch.


Vi xử lý ARM9 kết hợp chặt chẽ giữa các lệnh để gia tăng việc xử lý tín hiệu số
như đa thực thi để hỗ trợ có hiệu quả việc thi hành các thuật tốn xử lý tín hiệu
số.

2. Thanh ghi trạng thái
Vi xử lý có một thanh ghi trạng thái chương trình hiện thời (CPSR) và 5 thanh
ghi trạng thái chương trình đã được lưu lại (SPSRs) để xử lý các exception.
Thanh ghi trạng thái chương trình có nhiệm vụ:
1

-

Lưu trữ thơng tin về những thao tác tính tốn gần đây nhất được


thực hiện trong ALU.
-

Điều khiển mở và đóng các ngắt

2

-

Thiết lập kiểu thao tác của vi xử lý

3

Cấu trúc thanh ghi trạng thái chương trình hiện tại
4
• N: Negative- cờ này được bật khi bit cao nhất của kết quả xử lý ALU bằng
1.
5
• Z: Zero- cờ này được bật khi kết quả cuối cùng trong ALU bằng 0.
6
• C: Carry- cờ này được bật khi kết quả cuối cùng trong ALU lớn hơn giá
trị 32bit và tràn.
7
• V: Overflow-cờ báo tràn sang bit dấu.
3. Khuân dạng lệnh
Tất cả lệnh của ARM đều là 32bit:
1
• Có cấu trúc dạng load-store.



1
• Cấu trúc lệnh định dạng 3 địa chỉ (nghĩa là địa chỉ của 2 toán hạng nguồn
và toán hạng đích đều là các địa chỉ riêng biệt)
2
1
Cấu trúc chỉ lệnh có 3 địa chỉ:

2
Cấu trúc chỉ lệnh có 3 địa chỉ
Ví dụ:
ADD d, s1, s2 ; d := s1 + s2
3
4
5
máy.
6

• Mỗi chỉ lệnh thực thi một điều kiện.
• Có cả chỉ lệnh load-store nhiều thanh ghi đồng thời.
• Có khả năng dịch bit kết hợp với thực thi lệnh ALU trong chỉ 1 chu kì
• Thumb code

0
4. Cấu trúc load-store:
1
Cũng như hầu hết các bộ xử lý dùng tập lênh RISC khác, ARM cũng sử dụng cấu
trúc load-store. Điều đó có nghĩa là: tất cả các chỉ lệnh <cộng, trừ…> đều được
thực hiện trên thanh ghi. Chỉ có lệnh copy giá trị từ bộ nhớ vào thanh ghi<load>
hoặc chép lại giá trị từ thanh ghi vào bộ nhớ<store> mới có ảnh hưởng tới bộ nhớ.

Các bộ xử lý CISC cho phép giá trị trên thanh ghi có thể cộng với giá trị trong bộ
nhớ, đơi khi cịn cho phép giá trị trên bộ nhớ có thể cộng với giá trị trên thanh ghi.
ARM không hỗ trợ cấu trúc lệnh dạng ‘từ bộ nhớ đến bộ nhớ’. Vì thế, tất cả các
lệnh của ARM có thể thuộc 1 trong 3 loại sau:
1
1. Chỉ lệnh xử lý dữ liệu: chỉ thay đổi giá trị trên thanh ghi.
2
2. Chỉ lệnh truyền dữ liệu: copy giá trị từ thanh ghi vào bộ nhớ và chép giá
trị từ bộ nhớ vào thanh ghi.<load-store>
3
3. Chỉ lệnh điều khiển dịng lệnh: Bình thường, ta thực thi các chỉ lệnh chứa
trong một vùng nhớ liên tiếp, chỉ lệnh điều khiển dòng lệnh cho phép chuyển sang
các địa chỉ khác nhau khi thực thi lệnh, tới những nhánh cố định, <lệnh rẽ nhánh>
hoặc là lưu và trở lại địa chỉ để phục hồi chuỗi lệnh ban đầu kết nối> hay là đè lên vùng code của hệ thống <gọi giám sát-ngắt phần mềm>.
4.1 Lệnh xử lý dữ liệu
Lệnh xử lý dữ liệu của ARM cho phép thực thi các lệnh số học, logic trên các
thanh ghi. Những phép tốn dạng này có 2 tóan tử tham gia và sinh ra 1 kết quả
duy nhất. Trong 2 tóan hạng nguồn, tốn hạng thứ 2 có thể là thanh ghi, giá trị tức


thời, tóan hạng này có thể được dịch bit trước khi tham gia vào phép tính số học
mà vẫn tính là trong 1 chu kì máy.
+
Tất cả các tốn hạng đều có chiều dài 32bit.
+
Nếu là 1 kết quả thì nó cũng có chiều dài là 32bit ra kết quả dài 64bit>
+
ARM sử dụng cấu trúc chỉ lệnh có 3 địa chỉ.


Cấu trúc của một chỉ lệnh
1

• Các lệnh tóan học.

1

• Các lệnh logic.


Các lệnh logic
1
• Tác vụ chuyển giá trị các thanh ghi.

Tác vụ chuyển các giá trị của thanh ghi
1
• Chức năng so sánh:

Chức năng so sánh
1
• ….
2
Bị ảnh hưởng bởi các bit cờ, trạng thái các cờ được quy định:
+
Cờ N=1 nếu kết quả là âm <N=bit cao nhất của kết quả>
+
cờ Z=1 nếu kết quả bằng 0.
+
Cờ C được bật nếu kết quả có nhớ từ ALU(ADD, ADC, SUB, SBC, RSB,

RSC, CMP, CMN) hay từ kết quả của phép dịch bit. Nếu khơng có phép dịch bit,
cờ C được giữ giá trị trước đó.
+
Cờ V chỉ bị ảnh hưởng trong các phép tốn số học. V=1 khi có tràn từ bit
30 sang 31. Nó quan trọng chỉ trong phép tốn học bù 2 có dấu.
Lệnh nhân

Chỉ lệnh của lệnh nhân
Giả lệnh hợp ngữ trong thanh ghi từ 21-23 được cho bởi bảng sau:
Opcode
[23:21]
000
001

Mnemonic Ý nghĩa
MUL
MLA

Tác động

Nhân kết quả 32-bit.
Rd:=(Rm*Rs)[31:0]
Nhân -tích lũy cho giá Rd:=(Rm*Rs + Rn)
trị kết quả 32 bit.
[31:0]


100

UMULL


101

UMLAL

110

SMULL

111

SMLAL

Nhân khơng dấu 64bit

RdHi: RdLo := Rm *
Rs
Nhân và tích lũy giá trị RdHi: RdLo += Rm *
không dấu 64bit
Rs
Nhân có dấu 64 bit
RdHi: RdLo := Rm *
Rs
Nhân và tích lũy giá trị RdHi: RdLo+=Rm*Rs
64bit

Lệnh hợp ngữ:
MUL{<cond>}{S} Rd, Rm, Rs
MLA{<cond>}{S} Rd, Rm, Rs, Rn
<mul>{<cond>}{S} RdHi, RdLo, Rm, Rs với <mul> là một trong các

lệnh(UMULL, UMLAL, SMULL, SMLAL).
1

4.2 Chỉ lệnh chuyển dữ liệu:

Chỉ lệnh chuyển dữ liệu cũng tương tự như lệnh số học, có các dạng như chuyển
dữ liệu giữa 2 thanh ghi, giữa 1 thanh ghi và 1 địa chỉ trực tiếp.
1
o Chỉ lệnh load và store 1 thanh ghi.
2
o Chỉ lệnh load và store nhiều thanh ghi.
3
o Chỉ lệnh trao đổi giá trị các thanh ghi
Ta có thể lấy ví dụ một vài lệnh sau đây :
4

* Lệnh chuyển dữ liệu nhiều thanh ghi:

5

Mã hóa nhị phân lệnh chuyển dữ liệu nhiều thanh ghi
1

Chú thích:


Danh sách các thanh ghi bao gồm một mảng 16 bit thay thế cho 16 thanh ghi từ R0
đến R15 <vị trí bit tương ứng với số thứ tự thanh ghi>. U=1 địa chỉ nền tăng và
ngược lại, P=1, địa chỉ nền tăng trước và ngược lại.
1

Lệnh hợp ngữ:
LDMISTM{<cond>}<add mode> Rn{!}, <registers>
1
2
* Lệnh hoán đổi giá trị của bộ nhớ và thanh ghi:

Mã hóa nhị phân chỉ lệnh đổi giá trị của bộ nhớ và thanh ghi
1
Chú thích:
B=1=>load byte khơng dấu, B=0=>load word ở ô nhớ được định địa chỉ bởi Rn
tới Rd, chứa giá trị từ Rm vào ô nhớ tương ứng. Rd và Rm có thể là 1 thanh ghi.
1
2
Lệnh hợp ngữ:
SWP{<cond>}{B} Rd, Rm,Rn
1
2
Chú ý:
+Thanhghi PC không được dùng trong chỉ lệnh này.
+Thanh ghi Rn phải khác với thanh ghi Rm và thanh ghi Rd
4.3 Các chỉ lệnh điều khiển dòng lệnh:
1
o Chỉ lệnh rẽ nhánh.
2
o Nhánh điều kiện.
3
Điều kiện cần thực thi nằm trên 4 bit cao nhất của chỉ lệnh.

Vị trí các bit điều kiện trong chỉ lệnh 32bit



Tổ hợp các điều kiện này được quyết định bởi các bit <N,Z,C,V> nằm trong thanh
ghi trạng thái chương trình hiện tại <CPSR>
Opcode
Mnemonic
Giải thích
Trạng thái cờ để
[31:28]
extension
thực thi
0000
EQ
Bằng 0 hoặc bằng nhau
Z=1
0001
NE
Khơng bằng
Z=0
0010
CS/HS
Có nhớ, cao hơn số khơng C=1
có dấu
0011
CC/LO
Xóa cờ nhớ, thấp hơn số C=0
có dấu
0100
Ml
Trừ/âm
N=1

0101
PL
Cộng/dương hay zero
N=0
0110
VS
Cờ tràn
V=1
0111
VC
Khơng tràn
V=0
1000
HI
Lớn hơn số không dấu
C=1 và Z=0
1001
LS
Bé hơn hoặc bằng số C=0 hoặc Z =1
không dấu
1010
GE
Lớn hơn hoạc bàng số có N=V
dấu
1011
LT
Nhỏ hơn số có dấu
N≠V
1100
GT

Lớn hơn số có dấu
Z=0 và N=V
1101
LENhỏ hơn hoặc bằng số có Z=1 hoặc N≠V
dấu
1110
AL
Ln luôn
Tùy định
1111
NV
Không được sử dụng!
Không tồn tại
2

..vv…



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×