Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 4

Tuyên: Embedded Linus, Lõi ARM, Thanh ghi và chế độ hoạt động

++ Embedded Linus

Cấu trúc Embedded Linux

Trước hết, để chạy một hệ Linux, phần cứng phải đáp ứng được được các yêu cầu sau:
thứ nhất, Linux yêu cầu CPU tối thiểu phải là 32 bit, có chứa một đơn vị quản lý bộ nhớ
(MMU). Thứ hai, phải đủ bộ nhớ RAM cung cấp cho hệ thống. Thứ ba, vào/ra (I/O) tối
thiểu phải đủ cho việc debug. Cuối cùng, nhân phải có khả năng tải hoặc truy cập vào
một hệ thống tập tin gốc (root filesystem) thông qua các thiết bị lưu trữ cố định hoặc kết
nối thêm.

Trong sơ đồ cấu trúc trên, ngay phía trên phần cứng là nhân. Nhân là thành phần lõi của
hệ điều hành. Chức năng của nhân là để quản lý phần cứng một cách hiệu quả đồng thời
cung cấp giao diện lập trình, qua đó các phần mềm sử dụng được phần cứng thông qua
nhân. Cũng giống như nhân UNIX, nhân Linux điều khiển thiết bị, quản lý truy cập I/O,
kiểm soát quá trình lập lịch (scheduling), thi hành việc chia sẻ bộ nhớ, xử lý phân phối
các tín hiệu, và phục vụ các nhiệm vụ khác. Nó cũng cho phép ứng dụng sử dụng các API
được cung cấp bởi một nhân có thể di chuyển được giữa các cấu trúc khác nhau được hỗ
trợ bởi nhân đó với sự thay đổi nhỏ hoặc không thay đổi. Điều này thường xuyên được sử
dụng đối với Linux, có thể nhận thấy khối thống nhất của các ứng dụng sẵn có trên tất cả
các cấu trúc được hỗ trợ bởi Linux.
Trong nhân, có hai lớp dịch vụ chính cung cấp các chức năng theo yêu cầu của ứng dụng.
Tương tác mức thấp (Low-level interfaces) là đặc trưng riêng cho các cấu hình phần cứng
mà trên đó nhân chạy và qui định để kiểm soát trực tiếp tài nguyên phần cứng bằng cách
sử dụng một phần cứng độc lập với API. Phía trên dịch vụ mức thấp được cung cấp bởi
nhân, các thành phần mức cao cung cấp các abstractions phổ biến cho tất cả các hệ thống
UNIX, bao gồm cả các tiến trình, tập tin, các socket, và tín hiệu.
Giữa hai mức độ của abstraction, nhân đôi khi cần phải gọi đến các thành phần phiên
dịch (interpretation component) để hiểu và tương tác được với cấu trúc dữ liệu đi và đến
một số thiết bị. chẳng hạn như hệ thống tập tin và giao thức mạng là những cấu trúc dữ
liệu mà nhân cần phải hiểu và tương tác được để cấp quyền truy cập vào dữ liệu đi và
đến.
Trong lúc hoạt động bình thường, nhân yêu cầu phải có ít nhất một cấu trúc filesystem đó
là root filesystem. Từ filesystem này nhân tải các ứng dụng đầu tiên chạy trên hệ thống.
Nhân cũng dựa vào filesystem này cho các họat động sau đó, chẳng hạn như tải mô đun
và cung cấp mỗi tiến trình với một thư mục làm việc. hệ thống tập tin gốc lưu trữ và họat
động từ thiết bị lưu trữ thực hoặc tải vào bộ nhớ RAM trong khi khởi động hệ thống và
vận hành trên đó.
Thư viện được sử dụng bởi hầu hết các ứng dụng Linux là thư viện GNU C glibc, thư
viện được liên kết động với các ứng dụng. Điều này cho phép nhiều ứng dụng có thể sử
dụng chung một thư viện. Thư viện C được tìm thấy trên filesystem của hệ thống, chẳng
hạn có thể tải thư viện một lần lên bộ nhớ RAM, các ứng dụng sẽ cùng chia sẻ thư viện
này. Tuy nhiên trên một số hệ thống nhúng, khi mà chỉ có một phần của thư viện được sử
dụng bởi một vài ứng dụng thì việc liên kết tĩnh giữa thư viện và ứng dụng sẽ tiết kiệm
được bộ nhớ và đảm bảo được tính gọn nhẹ của hệ thống.
++ Lõi ARM
Kiến trúc lõi ARM được thiết kế chuyên dụng cho các ứng dụng nhũng. Do đó hiện thực
hóa chip ARM được thiết kế để cho các ứng dụng nhỏ nhưng có hiệu năng cao, tiêu thụ ít
năng lượng.
Lõi ARM được thiết kế theo kiến trúc RISC, nó chứa các kiến trúc RISC chung.
+Các thanh ghi đồng dạng.
+Kiến trúc dạng Load-Store. Các địa chỉ Load/Store chỉ xác định từ nội dung thanh ghi
và các chỉ lệnh.
+Các kiểu đánh địa chỉ đơn giản.
+Các chỉ lệnh có độ dài cố định và đòngo dạng, do đó đơn giản hóa việc giải mã các câu
lệnh.
+Thay vì chỉ dùng một chu kỳ xung nhịp nhỏ cho tất cả các chỉ lệnh, ARM thiết kế sao
cho tối giản số chu kỳ xung nhịp cho một chỉ lệnh, do đó tăng được sự phức tạp cho các
chỉ lệnh đơn lẻ.
Ngoài ra kiến trúc ARM có thể cung cấp
-Điều khiển cả khối logic số học ALU và bộ dịch chuyển trong lệnh xử lý dữ liệu để tối
đa hóa việc sử dụng ALU và bộ dịch chuyển.
-Các chế độ địa chỉ chỉ tự tăng hoặc giảm để tối ưu hóa các lệnh vòng lặp.
-Các nhân Load/Store để tối đa dữ liệu truyền qua.
Thanh ghi và các chế độ hoạt động của lõi ARM
Lõi ARM có 37 thanh ghi trong đó có 31 thanh ghi đa dụng. Tuy nhiên tại một thời điểm
chỉ có 16 thanh ghi đa dụng và 2 thanh ghi trạng thái hiển thị. Các thanh ghi khác ở dạng
ẩn, chỉ hiển thị ở một số chế độ hoạt động riêng.
Các thanh ghi đa dụng có thể dùng để lưu dữ liệu hoặc địa chỉ. Các thanh ghi này được
đánh dấu bằng ký hiệu r. Tất cả các thanh ghi đều 32 bit.
Trong các thanh ghi đa dụng ở trên có 3 thanh ghi còn được dùng để các chức năng hoặc
nhiệm vụ đặc biệt riêng r13,r14,r15.
+Thanh ghi r13 được dùng làm stack pointer SP
+Thang ghi r14 được gọi là thanh ghi kết nối LR chứa địa chỉ quay lại của chương trình
khi chương trình chạy 1 hàm con.
+ Thanh ghi r15 là bộ đếm chương trình PC và chứa địa chỉ của lệnh tiếp theo.
Thanh ghi trạng thái chương trình hiện tại: cpsr có 4 trường, mỗi trường có 8 bit cở trạng
thái mở rộng và điều khiển.
Các cở của cpsr như sau
- N : Negative cờ này được bật khi bit cao nhất của kết quả xử lý ALU bằng 1.
-Z :Zero cờ này được bật khi kết quả cuối cùng trong ALU bằng 0.
- C Carry cờ này được bật khi kết quả cuối cùng trong ALU lớn hơn giá trị 32 bit và tràn.
- V Overflow cờ báo tràn sang bit dấu.
Chế độ hoạt động của VXL sẽ xác định thanh ghi nào hoạt động và quyền truy cập tới
thanh ghi cpsr. Mỗi chế độ hoạt động của bộ VXL sẽ là chế độ đặc quyền và không đặc
quyền.
Có 7 chế độ đặc quyền.
+Bộ VXL hoạt động ở chế độ Abort khi bộ VXL không thể truy cập bộ nhớ.
+Bộ VXL hoạt động ở chế độ Interrupt request và fast interrupt request tương ứng với hai
mức ngắt của của chip ARM.
+Bộ VXL hoạt động ở chế độ System khi hệ thống có thể truy cập và đọc ghi toàn bộ
thanh ghi cpsr
+Bộ VXL chuyển sang chế độ Underfined khi bộ VXL gặp 1 lênhk không xác định hoặc
không được hỗ trợ.
+Bộ VXL hoạt động ở chế độ USer là để chạy các chương trình và các ứng dụng thông
thường.

You might also like