Ai tải BIOS trong RAM trong quá trình khởi động máy tính


8

Khi máy tính khởi động, mã trong BIOS được thực thi trước. Tuy nhiên, làm thế nào mã trong BIOS được tải vào RAM để thực thi?

Tôi đã đề cập đến câu hỏi này - BIOS có được đọc từ chip BIOS hoặc được sao chép vào RAM khi khởi động không? . Tuy nhiên, nó đã làm tôi bối rối hơn. Nếu BIOS được tải từ ROM và ROM là một chip riêng biệt, điểm cần nói về địa chỉ phân khúc trong RAM là gì? Ngoài ra, mã BIOS được tải ở đâu - nó nằm trong 1 MiB cuối cùng của không gian địa chỉ chế độ thực hay một số vị trí khác?

Nếu ai đó có thể liệt kê các bước từ khởi động máy tính cho đến khi thực hiện lệnh BIOS đầu tiên bao gồm các địa chỉ bộ nhớ được sử dụng, nó sẽ rất hữu ích

Câu trả lời:


7

Như tôi đã viết trong câu trả lời của mình cho câu hỏi đó, trí tuệ dân gian nhận được về chủ đề này - không may được minh họa bằng các câu trả lời khác ở đó (và ở nơi khác trong SuperUser) - bị mắc kẹt trên thế giới vào khoảng năm 1991, mặc dù có rất nhiều tài liệu tham khảo kỹ thuật có sẵn giải thích làm thế nào bây giờ khác

Bạn sẽ không bị nhầm lẫn nếu bạn đã đọc câu trả lời của tôi, bởi vì bạn sẽ không hỏi về "BIOS được tải từ ROM" ngay từ đầu.

"Chip BIOS" của bạn không phải là ROM; không có mã máy giữa khởi động bộ xử lý và lệnh đầu tiên trong phần sụn; và "M" trong cả "RAM" và "ROM" có nghĩa là "bộ nhớ".

Như tôi đã viết trước đây, trong các PC hiện đại, phần sụn của máy được giữ trong RAM không bay hơi . Nó không phải là ROM như trước đây. Xem câu trả lời trước để biết chi tiết về chip NVRAM được kết nối với bus LPC. (Ví dụ: Trên một máy ngồi tháo rời bên cạnh tôi khi tôi nhập cái này, NVRAM giữ phần sụn là Pm49FL004T, chip RAM LPC Flash.)

CPU 32 bit không khởi động ở chế độ thực và không bắt đầu với địa chỉ nằm dưới dòng 1MiB. Đó là những thập kỷ lỗi thời từ thời của bộ xử lý x86 16 bit. Họ bắt đầu ở chế độ thông thường được gọi là chế độ không thực , và một lần nữa trong câu trả lời trước của tôi, tôi đã đưa ra các chi tiết về những gì thực sự đã xảy ra kể từ khi 80386 ra đời . Họ tải hướng dẫn đầu tiên của họ từ một địa chỉ trên thực tế ngay trên không gian địa chỉ 32 bit , FFFFFFF0.

Trong câu trả lời trước của tôi, tôi đã nói với bạn một cách chi tiết về phần sụn máy chủ yếu được ánh xạ vào không gian địa chỉ vật lý trên các máy x86 32 bit và 64 bit. Ghi nhớ: Cả RAM và ROM đều là bộ nhớ . Địa chỉ vật lý là địa chỉ bộ nhớ , trên bus hệ thống. Họ có thể giải quyết RAM hoặc ROM. (Họ thậm chí có thể giải quyết những thứ khác là tốt, nhưng đó chỉ là làm phức tạp cuộc thảo luận này.) Các địa chỉ vật lý FFFFFFF0là 16 byte dưới đỉnh của dãy 512KiB nơi đầu 512KiB của firmware, trong RAM không bay hơi, được luôn luôn ánh xạ trên bus hệ thống bằng "chipset".

Không có "tải" từ một số chip ROM huyền thoại xảy ra khi khởi động hoặc thiết lập lại bộ xử lý. Con chip giữ phần sụn là RAM không bay hơi . Nó giữ lại nội dung của nó, được viết khi "flash", qua các chu kỳ điện. Và CPU chỉ đọc các hướng dẫn và dữ liệu phần sụn từ nó, qua bus hệ thống và qua bus LPC (và có thể là cầu LPC / FWH) được kết nối với bus hệ thống thông qua chipset, sử dụng địa chỉ bộ nhớ vật lý.

đọc thêm


Cảm ơn bạn, điều này dường như rõ ràng hơn nhiều đối với tôi. Tuy nhiên, khi bạn nói rằng RAM không biến động và dữ liệu được đọc từ nó, điều đó có nghĩa là BIOS được kết hợp với RAM theo một cách nào đó? Có phải mỗi chip RAM đi kèm với một BIOS? Tôi biết điều này có vẻ ngu ngốc, nhưng tôi là người mới bắt đầu trong chủ đề này.
Cygnus

Khi anh ta nói bộ nhớ truy cập ngẫu nhiên không biến động (NVRAM), anh ta đang đề cập đến một công nghệ khác với RAM được sử dụng làm bộ nhớ hệ thống chính (Điển hình là Bộ nhớ truy cập ngẫu nhiên động, DRAM). Đó là một con chip riêng biệt từ RAM chính có chứa phần sụn ngay cả khi tắt nguồn, do đó là phần "không bay hơi".
Dougvj

@Dougvj: Trong trường hợp đó, tại sao chúng tôi có một địa chỉ riêng của FFFFFFF0 cho nó? Kích thước NVRAM có phải chỉ là kích thước của phần sụn không?
Cygnus

Tôi nghĩ rằng câu hỏi của bạn được xử lý tốt hơn như câu hỏi thực tế, không phải ý kiến ​​về câu trả lời này. Nhìn vào một số câu hỏi "Liên quan" ở bên phải, sau đó tìm ra một câu hỏi để hỏi thêm về sự hiểu biết của bạn. (Chắc chắn có chỗ trên SuperUser cho một số câu hỏi + câu trả lời về những điều cơ bản, có vẻ như từ một shufti ngắn.)
JdeBP

@JdeBP: Tôi đã thêm một câu hỏi mới- superuser.com/questions/695769/NH
Cygnus
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.