BIOS có được đọc từ chip BIOS hoặc được sao chép vào RAM khi khởi động không?


10

Khi bạn bật máy tính lần đầu tiên, chu trình tìm nạp / thực thi trước tiên được thiết lập để tìm nạp các lệnh từ chip BIOS trực tiếp đến thanh ghi lệnh trong CPU hoặc có mạch tự động được thiết lập để khi phát hiện bật nguồn, các hướng dẫn trong chip BIOS được tự động nạp vào RAM?

Cập nhật

Tôi nghĩ rằng tôi đã tìm thấy câu trả lời của tôi ở đây :

Sau khi tắt tín hiệu đặt lại, CPU bắt đầu hoạt động. Mã trong RAM không thể được thực thi do RAM trống. Các nhà sản xuất CPU lập trình trước bộ xử lý để luôn bắt đầu thực thi mã tại địa chỉ "FFFF: 0000" (thường là BIOS ROM) của ROM.

Vì vậy, CPU được thiết lập vật lý để tìm nạp và thực thi địa chỉ bộ nhớ FFFF: 0000 trong ROM ngay khi bật.


1
Nếu bạn tự tìm thấy câu trả lời, hãy đăng nó dưới dạng câu trả lời bên dưới, thay vì chỉnh sửa nó thành câu hỏi. (Bạn có thể chấp nhận câu trả lời của riêng mình sau một thời gian.)
grawity

Cuốn sách Nâng cấp và sửa chữa PC, nó đề cập đến một vị trí bộ nhớ mà CPU đầu tiên đọc từ .. Và có một quy trình mà các giáo viên CS cũ dạy vẫn có thể áp dụng, được gọi là bootstrapping, như là tự kéo lên bằng bootstraps của bạn, đó là cách ( nền tảng của) một hệ điều hành được tải.
barlop

Câu trả lời:


3

Hầu hết các bảng được sử dụng để có một tùy chọn trong BIOS để cấu hình hành vi này. Nó thường được gọi là bóng và nó thường được bật theo mặc định. Tôi không nghĩ rằng nhiều bảng làm phiền cho bạn tùy chọn những ngày này và luôn luôn bóng tối. Lý do là vì RAM nhanh hơn ROM, vì vậy nó tăng tốc mọi thứ để sao chép nó vào RAM và chạy nó từ đó.

Lưu ý rằng bản sao không được thực hiện bởi một số mạch ma thuật, nó chỉ được thực hiện bởi chính bios khi nó bắt đầu thực thi ROM ban đầu, nó chỉ sao chép vào RAM và sau đó tiếp tục thực thi từ đó.


Vì vậy, từ những gì tôi hiểu về những gì bạn đã nói, khi đi vào cuộc sống, CPU đọc các hướng dẫn từ ROM, hướng dẫn này nói "Sao chép tất cả các hướng dẫn khởi động ở đây trong ROM sang RAM và sau đó đặt bộ đếm chương trình thành địa chỉ bắt đầu như vậy trong RAM. " Điều đó có đúng không?
mring

@psusi Bạn có một số liên kết giải thích những gì bạn đang nói về? Tạo bóng CPU không giúp tôi hiểu được nhiều và làm thế nào để cấu hình nó. Và khi nào bạn đang nói về? Khi nào bo mạch chủ có tùy chọn này? Bạn có thể chỉ ra bất kỳ mẫu bo mạch chủ nào có tùy chọn này không?
barlop

17

Đây là một trường hợp khác mà trí tuệ dân gian nhận được về chủ đề này, không may được minh họa bằng psusicâu trả lời và thực sự là một phần của câu hỏi, bị mắc kẹt trên thế giới như 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 về việc bây giờ nó như thế nào nếu không thì.

Trong thế giới cuối những năm 1980, phần sụn máy - một trong hai thứ gọi là "BIOS" trong thế giới tương thích với PC của IBM - thực sự nằm trong một con chip ROM trên bus ISA; và CPU thực sự đã bắt đầu thực thi mã tại địa chỉ vật lý 000FFFF0, một vị trí trong "bộ nhớ thông thường" được truy cập thông qua con trỏ chế độ thực F000:FFF0Thế giới này đã qua lâu rồi.

(Thế giới mà tác giả của trang cá nhân mà bạn đã chỉ ra, S. Ebrahim Shubbar, sai lầm sống ở, mặc dù viết vào năm 2002, thậm chí còn lớn hơn. CPU chưa bắt đầu với CS:IPsự kết hợp FFFF:0000kể từ 8086 Những 80286 thay đổi này để F000:FFF0Nhưng bản thân thế giới 80286 là thế giới lỗi thời vào cuối những năm 1980 mà trí tuệ dân gian vẫn lưu hành.)

"Chip BIOS" của bạn RAM; và CPU của bạn không phải là 16 bit.

Trong các PC hiện đại, phần sụn của máy được giữ trong RAM không bay hơi . Chip NVRAM được kết nối với bus LPC (hoặc với giao diện "trung tâm phần mềm vững chắc") và cầu LPC / FWH trong "chipset" thường vô hiệu hóa các chu kỳ ghi vào nó. "Nhấp nháy" phần sụn bao gồm cài đặt các thanh ghi chipset cho phép ghi vào NVRAM và sau đó ghi vào NVRAM. (Ví dụ, trong Intel ICH10, bit đăng ký chipset cho phép ghi chu kỳ ghi được đặt tên là BIOSWE"Kích hoạt ghi BIOS". Có một số chi tiết bổ sung mà tôi sẽ bỏ qua ở đây, nhưng đó là ý chính của nó.)

Bộ xử lý x86 chưa bắt đầu thực thi tại vị trí 000FFFF0kể từ thời của 80286. CPU 32 bit khởi động ở chế độ thông thường được gọi là chế độ không thực . Mặc dù giá trị ban đầu của thanh CSghi sau khi đặt lại là F000, bộ mô tả phân đoạn được liên kết với thanh ghi đó ban đầu giữ FFFF0000làm địa chỉ cơ sở của nó. Vì vậy, địa chỉ vật lý ban đầu tương ứng với địa chỉ 16:16 CS: IP F000:FFF0trên thực tế và đã có từ thời của 80386 , FFFFFFF0.

Và đó là nơi 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. Có một cửa sổ 128KiB trên phần sụn trong khu vực "bộ nhớ thông thường", nhưng NVRAM giữ phần sụn máy có thể lên tới 16MiB (mặc dù điều này thay đổi theo chipset) trên các PC hiện đại và chủ yếu được ánh xạ vào 16MiB của không gian địa chỉ vật lý ngay lập tức bên dưới dòng 4GiB - tức là địa chỉ vật lý FF000000đến FFFFFFFF. (Để sử dụng ICH10 làm ví dụ một lần nữa: Bao nhiêu không gian địa chỉ này được ánh xạ tới NVRAM được điều khiển bởi một thanh ghi chipset được gọi là FWH_DEC_EN"Kích hoạt giải mã trung tâm phần mềm", đăng ký. Chương trình cơ sở được mã hóa để lập trình lạiFWH_DEC_ENđăng ký theo kích thước của chip NVRAM thực tế được cài đặt trên bo mạch chính. Nhưng đầu 512KiB của NVRAM được luôn ánh xạ, đến các địa chỉ vật lý FFF80000để FFFFFFF, và không thể bị vô hiệu.) Mã này ban đầu được thực hiện bởi bộ vi xử lý ngay sau khi cuộc sống reset trong 64KiB đầu dải địa chỉ 16MiB này.

Đối với việc tạo bóng ROM ROM (đó là cái gọi là - hoàn toàn tại sao barlopnghĩ rằng CPU bị che khuất là một bí ẩn): Có, truy cập vào NVRAM trên bus LPC hoặc trung tâm chương trình cơ sở vẫn không nhanh như truy cập vào hệ thống chính (dễ bay hơi) RAM. Nhưng những lý do khiến việc tạo bóng rất quan trọng giảm đi rất nhiều với những tiến bộ của các hệ điều hành như OS / 2 và Windows NT - một lần nữa vào cuối những năm 1980 và đầu những năm 1990. Các hệ điều hành chế độ thực như MS-DOS, PC-DOS, DR-DOS, v.v. được xếp lớp trên cùng của chức năng I / O được cung cấp bởi phần sụn máy. Vì vậy, mã của phần sụn và dữ liệu chỉ đọc cuối cùng đã được truy cập rất nhiều vào thời gian chạy. Các hệ điều hành chế độ được bảo vệ như OS / 2 và Windows NT ít phụ thuộc hơnkhi các dịch vụ được cung cấp phần sụn tại thời điểm chạy. Vì vậy, việc mã thực thi ra khỏi NVRAM và dữ liệu chỉ đọc giống nhau, đến bộ xử lý chậm hơn so với khi bị bóng vào RAM hệ thống ít gặp sự cố hơn trước đây.

Hơn nữa, những gì mã firmware và dữ liệu mà họ làm dựa vào không nhất thiết sống trong một phần của NVRAM ánh xạ tới các phần của không gian địa chỉ vật lý, 128KiB cửa sổ "bộ nhớ thông thường" nói trên, có nghĩa là nhất thiết thậm chí shadowable ở nơi đầu tiên. Tất cả các dịch vụ phần sụn ở chế độ được bảo vệ không cần phải nằm dưới dòng 1MiB trong không gian địa chỉ vật lý như các dịch vụ phần sụn ở chế độ thực, và một số thì không. (Và tất nhiên nó chỉ sẽ có thể để làm các trick cùng với diện tích của không gian địa chỉ vật lý mà chúng ta đang sống trong nếu có ít nhất 4GiB của hệ thống RAM).

Trớ trêu thay, một nguồn thông tin chính xác về thông tin này hơn S. Ebrahim Shubbar viết vào năm 2002 là cuốn sách của Phil Croucher, BIOS Compener từ một năm trước năm 2001. M. Croucher quan sát rằng Unices, Linux, Windows NT và "có lẽ (95 / 98) "" không nhận được lợi ích từ bóng tối ". Nó không hoàn toàn không có lợi ích gì, nhưng nó tương đối rất ít đối với thế giới của những người chạy MS-DOS, PC-DOS và DR-DOS ở chế độ thực trên các máy 80286 16 bit vào năm 1989.

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.