You are on page 1of 4

Giới thiệu về MPC

Bộ điều khiển bảo vệ bộ nhớ (MPC) là các thành phần phần cứng hoặc hệ thống con
cung cấp khả năng bảo vệ bộ nhớ trong hệ thống máy tính. Chúng thường được tìm thấy
trong các hệ thống nhúng, bộ vi điều khiển và một số bộ xử lý chuyên dụng. MPC giúp phân
vùng bộ nhớ của hệ thống thành các vùng hoặc trang khác nhau và cho phép phần mềm
xác định các thuộc tính bảo mật của từng vùng, thường được phân loại là Bảo mật hoặc
Không bảo mật.
Hoạt động của Bộ điều khiển Bảo vệ Bộ nhớ (Memory Protection Controller - MPC)
1. Phân vùng bộ nhớ: MPC chia bộ nhớ của hệ thống thành các trang hoặc vùng. Mỗi
trang hoặc vùng được gán một phạm vi địa chỉ cụ thể và được liên kết với các thuộc tính
bảo mật cụ thể.
2. Thuộc tính bảo mật: MPC cho phép phần mềm xác định các thuộc tính bảo mật cho
mỗi vùng bộ nhớ. Những thuộc tính này quyết định quyền truy cập cho các trang tương
ứng. Các thuộc tính bảo mật phổ biến bao gồm quyền truy cập An toàn (Secure), Không an
toàn (Non-secure), Chỉ đọc (Read-only), Ghi (Read-write), Thực thi (Execute) hoặc Không
thực thi (No-execute).
3. Xác thực truy cập: Khi một chương trình phần mềm hoặc bộ xử lý cố gắng truy cập
một địa chỉ bộ nhớ cụ thể, MPC kiểm tra các thuộc tính bảo mật liên kết với vùng bộ nhớ
đích.
4. Quyền truy cập: Dựa trên các thuộc tính bảo mật đã xác định, MPC xác định xem
quyền truy cập bộ nhớ được phép hay không. Nếu truy cập vi phạm quyền đã xác định,
MPC tạo ra một lỗi hoặc ngoại lệ, có thể được xử lý bởi phần mềm hoặc gây ra phản ứng
phù hợp từ hệ thống.
5. Xử lý ngoại lệ: Nếu một lỗi hoặc ngoại lệ được tạo ra do việc truy cập bộ nhớ không
được ủy quyền, phần mềm hoặc hệ điều hành có thể phản ứng tương ứng. Điều này có thể
bao gồm chấm dứt quá trình gây lỗi, kích hoạt trình xử lý lỗi hoặc thực hiện các biện pháp
bảo mật khác như được xác định bởi thiết kế của hệ thống.
6. Phân tách An toàn và Không an toàn: Một trong những mục đích chính của MPC là
thực hiện việc tách riêng các vùng bộ nhớ an toàn và không an toàn. Việc phân tách này
đảm bảo rằng dữ liệu nhạy cảm hoặc các thành phần hệ thống quan trọng được bảo vệ
khỏi việc truy cập hoặc thay đổi trái phép.

Bộ điều khiển bảo vệ bộ nhớ (MPC) đóng vai trò là cổng bảo mật cho các giao dịch AXI
nhắm mục tiêu giao diện bộ nhớ. Kiểm tra bảo mật hoạt động ở cấp độ khối hoặc trang và
có thể lập trình bằng cách sử dụng giao diện APB slave.
Hình dưới đây cho thấy các giao diện MPC.
Hình 3-1 Giao diện MPC
Giao diện AXI phụ và AXI chính cung cấp đường dẫn dữ liệu AXI từ kết nối liên thông
đến bộ điều khiển bộ nhớ.
Để hỗ trợ hoạt động tĩnh công suất thấp, MPC có hai giao diện Q-Channel. Một Q-
Channel dùng để tắt đồng hồ và Kênh Q còn lại dùng để tắt nguồn.
giao diện cấu hình
Khi bật nguồn, MPC sử dụng giá trị của đầu vào cfg_init_value làm giá trị khởi tạo cho
Bảng tra cứu (LUT) là An toàn hoặc Không an toàn cho toàn bộ phạm vi bộ nhớ mà MPC
bảo vệ.
Nếu vi phạm bảo mật xảy ra, MPC sẽ tạo ra một ngắt và cfg_sec_resp kiểm soát xem
MPC có:
 Phản hồi với lỗi AXI (SLVERR) slave
 Bỏ qua giao dịch ghi hoặc trả về 0 cho giao dịch đọc.

Tùy chọn cấu hình MPC


MPC có các tùy chọn thiết kế cấu hình kích thước khối bộ nhớ, độ rộng của một số tín
hiệu AXI và sự hiện diện của logic đồng bộ hóa trên các đầu vào Q-Channel. Bạn cũng có
thể định cấu hình MPC để hỗ trợ tính năng kiểm soát giao dịch AXI.
Khi triển khai MPC trong SoC, bạn có thể định cấu hình:
 Độ rộng của bus địa chỉ AXI, bằng cách sử dụng tham số ADDR_WIDTH. Tham số có
thể được đặt thành giá trị bao gồm từ 12-32.
 Chiều rộng của bus dữ liệu AXI, bằng cách sử dụng tham số DATA_WIDTH. Độ rộng
có thể là 32, 64, 128 hoặc 256 bit.
 Độ rộng của tín hiệu ID trên giao diện AXI, bằng cách sử dụng tham số
ID_WIDTH. Tham số có thể được đặt thành giá trị bao gồm từ 2-32.
 Độ rộng của tín hiệu Người dùng trên mỗi kênh AXI, bằng cách sử dụng các tham số
ARUSER_WIDTH, AWUSER_WIDTH, BUSER_WIDTH, RUSER_WIDTH và
WUSER_WIDTH. Một tham số có thể được đặt thành một giá trị bao gồm từ 0-256.
 Kích thước của khối bộ nhớ, bằng cách sử dụng tham số BLK_SIZE. Kích thước khối
có thể là 256 byte đến 1MB. 
 MPC để hỗ trợ tính năng kiểm soát giao dịch AXI bằng cách sử dụng tham số
GATE_PRESENT. 
 Sự hiện diện của bộ đồng bộ hóa trên đầu vào Q-Channel QREQn. Xem Kênh Q của
MPC .

Ngắt MPC
MPC có đầu ra ngắt nhạy cảm với mức độ, irq, có thể chỉ ra sự xuất hiện của vi phạm
bảo mật.
Nếu vi phạm bảo mật xảy ra khi irq ở mức THẤP, MPC sẽ lưu thông tin về vi phạm
trong các thanh ghi IRQ_STAT, IRQ_INFO1 và IRQ_INFO2. Ngoài ra, nếu bit thanh ghi
IRQ_EN được đặt thành 1 và tín hiệu irq_enable_* tương ứng là CAO, thì MPC sẽ đặt ngắt
irq là CAO. Tín hiệu irq vẫn ở mức CAO cho đến khi thanh ghi IRQ_CLEAR được ghi vào.
Ghi chú
 Nếu xảy ra nhiều vi phạm bảo mật thì MPC sẽ không cập nhật các thanh ghi
IRQ_STAT, IRQ_INFO1 và IRQ_INFO2. Tuy nhiên, nếu vi phạm bảo mật xảy ra khi đang
ở trạng thái ngắt và irq_enable_* được đặt, thì MPC sẽ cập nhật bit
IRQ_INFO2.ERR_MULTI.
 Khi IRQ_EN.IRQ_EN == 0 và irq ở mức THẤP, nếu vi phạm đồng thời xảy ra đối với
giao dịch đọc và giao dịch ghi, MPC sẽ lưu thông tin về vi phạm đọc trong các thanh
ghi IRQ_STAT, IRQ_INFO1 và IRQ_INFO2.
Vô hiệu hóa các ngắt để truy cập bộ nhớ từ trình gỡ lỗi
Nếu bit thanh ghi IRQ_SET được đặt thành 0, trình gỡ lỗi có thể sử dụng các tín hiệu
irq_enable_* để ngăn việc tạo ngắt khi nó truy cập vào các vùng bộ nhớ. Tín hiệu
irq_enable_rd kiểm soát xem MPC có thể đặt irq CAO hay không khi vi phạm bảo mật xảy ra
trong quá trình đọc giao dịch. Tín hiệu irq_enable_wr kiểm soát xem MPC có thể đặt irq
CAO hay không khi vi phạm bảo mật xảy ra trong quá trình ghi giao dịch.
Ghi chú
Nếu bit thanh ghi IRQ_SET được đặt thành 1, thì MPC sẽ bỏ qua các tín hiệu
irq_enable_* và tạo ra các ngắt khi IRQ_EN.IRQ_EN == 1.
Kênh Q MPC
MPC cung cấp hai giao diện Q-Channel. Bạn có thể sử dụng một kênh để điều khiển
đồng hồ và kênh còn lại để điều khiển nguồn, cho phép MPC chỉ báo khi nào nó cần đồng
hồ và nguồn.
Cả hai Kênh Q đều triển khai các giao diện năng lượng thấp mà Thông số kỹ thuật
giao diện năng lượng thấp AMBA, Giao diện kênh Q nhánh và Kênh P mô tả.
Sự hiện diện của bộ đồng bộ hóa trên đầu vào clk_qreqn và pwr_qreqn của Kênh Q có
thể định cấu hình bằng cách sử dụng các tham số QCLK_SYNC_EN và QPWR_SYNC_EN.

MPC AMBA bus properties

Các giao thức AMBA xác định nhiều loại thuộc tính cho biết khả năng của thiết bị.
Bảng sau đây liệt kê các thuộc tính AXI5 của MPC.

Bảng 3-1 Thuộc tính MPC AXI5

You might also like