CPU lấy hướng dẫn đầu tiên từ đâu?


7

Để mã BIOS có vấn đề, nó phải được bộ xử lý đánh giá. Tuy nhiên, bản thân bộ xử lý cần phải làm việc để thực sự có quyền truy cập vào mã BIOS, vì CPU chỉ thực hiện các hướng dẫn được đưa ra, nên phải đưa ra hướng dẫn cho CPU (vì tôi không thể tưởng tượng ra cách nào để chỉ dẫn " chảy "từ BIOS sang CPU mà không có gì ở giữa).

Các hướng dẫn để tải BIOS và chuyển điều khiển tới nó được lưu trữ ở đâu và ai chuyển các hướng dẫn này cho CPU để CPU có thể tạo ra chúng?



3
Phiên bản đơn giản hóa quá mức: Mã khởi động được lưu trữ trong ROM tại một địa chỉ cố định X. Khi bạn đặt lại CPU, con trỏ lệnh được đặt lại về cùng một địa chỉ cố định X. CPU bắt đầu thực hiện các lệnh như bình thường: tìm nạp lệnh tiếp theo từ địa chỉ X, giải mã nó, thực hiện nó, v.v.
Jukka Suomela

2
Khi bạn kích hoạt tín hiệu "đặt lại" trong CPU, CPU sẽ khởi tạo các thanh ghi của nó thành các giá trị được mã hóa cứng nhất định. Con trỏ lệnh là một trong những thanh ghi được khởi tạo cho một số giá trị được mã hóa cứng. Về bản chất, nhà sản xuất CPU chọn địa chỉ X được mã hóa cứng này. Sau đó, bất cứ ai kết hợp một máy tính hoàn chỉnh phải đảm bảo rằng có một cái gì đó hữu ích tại địa chỉ X (ví dụ: chip nhớ ROM có mã khởi động có ý nghĩa).
Jukka Suomela

1
Về bản chất, có.
Jukka Suomela

2
Có, thiết lập truyền thống là một phần không gian địa chỉ của CPU là RAM (dễ bay hơi) và một phần của nó là ROM (không dễ bay hơi). Và giá trị ban đầu của bộ đếm chương trình trỏ đến một địa chỉ trong ROM.
Jukka Suomela

Câu trả lời:


6

1. (Tóm tắt các câu trả lời trong bình luận của Jukka)

Mã khởi động được lưu trữ trong ROM (bộ nhớ không bay hơi) tại một địa chỉ cố định X.

Khi bạn kích hoạt tín hiệu "đặt lại" trong CPU, CPU sẽ khởi tạo các thanh ghi của nó thành các giá trị được mã hóa cứng nhất định. Con trỏ lệnh là một trong những thanh ghi được khởi tạo cho một số giá trị được mã hóa cứng. Về bản chất, nhà sản xuất CPU chọn địa chỉ X được mã hóa cứng này. Do đó, khi bạn đặt lại CPU, con trỏ lệnh được đặt lại về cùng một địa chỉ cố định X. CPU bắt đầu thực hiện các lệnh như bình thường: tìm nạp lệnh tiếp theo từ địa chỉ X , giải mã nó, thực hiện nó, vv

Sau đó, bất cứ ai kết hợp một máy tính hoàn chỉnh phải đảm bảo rằng có một cái gì đó hữu ích tại địa chỉ X (ví dụ: chip nhớ ROM có mã khởi động có ý nghĩa).

2. Xây dựng

CPU có cách làm việc rất đơn giản, được gọi là chu trình FETCH-EXECUTE:

(a) FETCH : Nó đi vào bộ nhớ và đưa ra lệnh ở địa chỉ [PC]. (PC là tên của một thanh ghi CPU bên trong; nó giữ địa chỉ của lệnh chúng ta cần thực hiện tiếp theo ..).
(b) Thực thi : PC thực thi lệnh mà nó vừa lấy từ bộ nhớ
(c) PCPC + 1. (*)
(d) Quay trở lại (a).

Vòng lặp tìm nạp này xảy ra mọi lúc, bất kể chương trình bạn đang chạy. Đặc biệt, khi CPU khởi động (giả sử, khi sức mạnh của nó tăng từ 0 đến Vcc), CPU chỉ cần bắt đầu thực hiện vòng lặp trên.

Giá trị ban đầu của PC phụ thuộc vào CPU cụ thể. Có thể là CPU thức dậy với PC = 0 hoặc có thể là PC = 0xFFF0 (như xảy ra với họ X86 của Intel) hoặc với bất kỳ PC giá trị nào khác =PCTôinTôit. Nếu bạn nhấn nút đặt lại hoặc tắt và bật nguồn, CPU sẽ khôi phục PC về giá trị ban đầu.PCTôinTôit và CPU bắt đầu chạy chương trình trong bộ nhớ tại địa chỉ PCTôinTôit, thông qua vòng lặp tìm nạp.

Bây giờ đây là nhiệm vụ của nhà thiết kế máy tính để đảm bảo rằng BIOS nằm trong bộ nhớ tại địa chỉ PCTôinTôit. BIOS thường nằm trong bộ nhớ không bay hơi nên luôn có chương trình để chạy trong địa chỉ đó, ngay cả khi bạn vừa tắt và bật (điều này sẽ xóa RAM nhưng không phải là BIOS. BIOS, mặc dù có thể và xảy ra, ví dụ, khi thiết bị của bạn cập nhật "phần sụn").


(*) Tiến lên PC bằng +1 giả định rằng mỗi lệnh chiếm 1 địa chỉ của không gian bộ nhớ. Điều này hiếm khi xảy ra. Trong các hệ thống thực, chúng ta có thể thấy ở đây PC + 4 (như trong MIPS 32b) hoặc PC + x (vớix{1,...,7} phụ thuộc vào chính hướng dẫn) như trong họ X86, v.v.

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.