Tại sao có nhiều chế độ trong CPU?


2

Trong bộ vi xử lý, có một số chế độ như chế độ người dùng, chế độ giám sát, v.v. tùy thuộc vào kiến ​​trúc của máy tính. Tại sao họ đã tạo nhiều chế độ như vậy (tại sao họ lại gán nhiều đặc quyền như vậy)


Bạn có chắc chắn rằng các chế độ bạn hỏi là chế độ của bộ vi xử lý chứ không phải chế độ hệ điều hành?

Câu trả lời:


6

Nó thường hữu ích cho một hệ điều hành để có thể chạy mã từ một nguồn có khả năng không tin cậy mà không phải cung cấp mã không giới hạn để làm hỏng hệ thống. Nếu bộ xử lý không có bất kỳ khái niệm nào về "chế độ người dùng" và "chế độ giám sát", cách duy nhất một hệ điều hành có thể hạn chế các hành động của mã không tin cậy là kiểm tra mọi lệnh đơn lẻ để đảm bảo rằng nó không làm gì cả Điều đó có thể gây ra thiệt hại. Không chính xác nhanh chóng. Để cải thiện tình hình, các bộ xử lý được thiết kế để tạo thuận lợi cho việc sử dụng mã có khả năng không tin cậy có thể gọi chế độ "bị hạn chế". Trong chế độ này, hầu hết các hướng dẫn hoạt động như bình thường, nhưng chỉ được phép truy cập vào các vùng nhớ cụ thể. Để chuyển về chế độ "không giới hạn", nó ' cần thiết để thực thi một lệnh sẽ đồng thời chuyển bộ xử lý sang chế độ không giới hạn và chuyển thực thi chương trình sang một trong một số địa chỉ đặc biệt không khả dụng trong chế độ hạn chế. Mỗi địa chỉ được liên kết với một số loại hoặc yêu cầu hệ điều hành thực hiện một việc gì đó (thông thường hoạt động chính xác sẽ được chỉ định bởi các kết hợp các giá trị trong các thanh ghi khác nhau); mã hệ điều hành sẽ kiểm tra từng yêu cầu và đảm bảo rằng nó đại diện cho một cái gì đó mà mã gọi được phép thực hiện; nếu có, hệ điều hành sẽ thực hiện thao tác được chỉ định và sau đó thực hiện một lệnh sẽ đồng thời đưa máy trở lại chế độ hạn chế và chuyển thực thi chương trình sang lệnh sau lệnh "hành động hệ điều hành yêu cầu" cuối cùng.

Vì các chế độ chuyển đổi hơi đắt tiền, một số bộ xử lý đã bao gồm các cơ sở để cho phép các hành động của một số chương trình bị hạn chế chặt chẽ trong khi các chế độ khác được phép thực hiện thêm một số điều. Tuy nhiên, trên thực tế, thường đơn giản hơn khi chỉ có hai chế độ: hạn chế và không hạn chế (thường được gọi là "người dùng" và "người giám sát").


Tôi đã thấy tên "chế độ người dùng" và "chế độ giám sát" trong ARM2 (cuối những năm 1980), không biết điều đó đã phát triển như thế nào trong những năm qua. x86 sử dụng mô hình nhẫn IIRC không phải tất cả các vòng đều được sử dụng tích cực, nhưng ảo hóa cũng sử dụng chúng.
jippie

Đầu tiên cảm ơn bạn đã trả lời .......... Có, tôi cũng đã nghiên cứu ARM để học ngôn ngữ lắp ráp. Tôi vẫn chưa rõ về câu hỏi sau đây: 1. Ai là người đưa ra quyết định đầu tiên của các chế độ (nghĩa là khi chúng ta mở máy tính thì bộ vi xử lý ở chế độ nào hoạt động) 2. Vùng nhớ đó bị hạn chế chỉ là RAM hay là cũng bao gồm ROM.
Jatin Khurana

@JatinKhurana: Bộ xử lý thường khởi động ở chế độ giám sát, vì chỉ có chế độ giám sát mới có khả năng định cấu hình những tính năng nào sẽ có sẵn cho những đoạn mã "chế độ người dùng". Đối với bộ nhớ khả dụng, nhiều bộ xử lý cho phép mã chế độ giám sát để định cấu hình mối quan hệ giữa các địa chỉ logic và thiết bị vật lý có thể bao gồm ROM, RAM, I / O hoặc bất kỳ thứ gì có thể được nối với bus ngoài.
supercat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.