Đâ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 psusi
câ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:FFF0
Thế 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:IP
sự kết hợp FFFF:0000
kể từ 8086 Những 80286 thay đổi này để F000:FFF0
Như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 là 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í 000FFFF0
kể 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 CS
ghi 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ữ FFFF0000
là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:FFF0
trê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 barlop
nghĩ 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.