BIOS อ่านจากชิป BIOS หรือคัดลอกลงใน RAM เมื่อเริ่มต้นหรือไม่


10

เมื่อคุณเปิดเครื่องคอมพิวเตอร์เป็นครั้งแรกจะมีการตั้งค่าการดึงข้อมูล / เรียกใช้งานครั้งแรกเพื่อดึงคำแนะนำจากชิพ BIOS โดยตรงไปยังคำสั่งการลงทะเบียนใน CPU หรือมีการตั้งค่าวงจรอัตโนมัติเพื่อให้ตรวจพบเมื่อเปิดเครื่อง ชิป BIOS ถูกโหลดเข้าสู่ RAM โดยอัตโนมัติ?

ปรับปรุง

ฉันคิดว่าฉันพบคำตอบของฉันที่นี่ :

หลังจากสัญญาณรีเซ็ตรีเซ็ตปิด CPU จะเริ่มทำงาน ไม่สามารถเรียกใช้โค้ดใน RAM เนื่องจาก RAM ว่างเปล่า ผู้ผลิตซีพียูจะตั้งโปรแกรมล่วงหน้าให้โปรเซสเซอร์เริ่มประมวลผลรหัสที่อยู่ "FFFF: 0000" (โดยปกติคือ ROM BIOS) ของ ROM

ดังนั้นซีพียูจึงถูกเซ็ตอัพเพื่อไปดึงและประมวลผลที่อยู่หน่วยความจำ FFFF: 0000 ใน ROM ทันทีที่เปิดใช้งาน


1
หากคุณหาคำตอบด้วยตัวเองไม่โพสต์เป็นคำตอบด้านล่างแทนการแก้ไขเป็นคำถาม (คุณสามารถยอมรับคำตอบของคุณเองได้ในภายหลัง)
1686

หนังสือการอัปเกรดและซ่อมแซมพีซีที่ระบุตำแหน่งหน่วยความจำซีพียูแรกอ่านจาก .. และมีกระบวนการสอนเก่าแก่ครูสอน CS ที่อาจยังคงใช้งานได้เรียกว่า bootstrapping เช่นเดียวกับที่ดึงตัวเองขึ้นมาจาก bootstraps ของคุณซึ่งเป็นวิธี รากฐานของ) ระบบปฏิบัติการได้รับการโหลด
barlop

คำตอบ:


3

บอร์ดส่วนใหญ่เคยมีตัวเลือกใน BIOS เพื่อกำหนดค่าลักษณะการทำงานนี้ โดยทั่วไปเรียกว่าแชโดว์และมักจะเปิดใช้งานตามค่าเริ่มต้น ฉันไม่คิดว่าบอร์ดจำนวนมากรบกวนคุณเลือกวันนี้และเพียงเงาเสมอ เหตุผลก็คือเนื่องจาก RAM เร็วกว่า ROM ดังนั้นจึงเพิ่มความเร็วในการคัดลอกไปยัง RAM และเรียกใช้จากที่นั่น

โปรดทราบว่าการคัดลอกไม่ได้ทำโดยวงจรเวทย์มนตร์มันทำโดยไบออสเองเมื่อมันเริ่มรันจาก ROM ในตอนแรกมันแค่คัดลอกตัวเองไปที่ RAM จากนั้นก็ดำเนินการต่อจากที่นั่น


ดังนั้นจากสิ่งที่ฉันเข้าใจในสิ่งที่คุณพูดเมื่อ CPU มีชีวิตขึ้นมาอ่านคำแนะนำจาก ROM ซึ่งคำแนะนำบอกว่า "คัดลอกคำแนะนำการเริ่มต้นทั้งหมดที่นี่ใน ROM เป็น RAM แล้วตั้งค่าตัวนับโปรแกรมเป็นที่อยู่เริ่มต้นเช่นนั้น ในแรม " มันเกี่ยวกับใช่มั้ย
mring

@psusi คุณมีลิงก์บางส่วนที่อธิบายถึงสิ่งที่คุณกำลังพูดถึงหรือไม่? CPU Shadowing ไม่ได้รับประโยชน์อะไรมากมายและสามารถกำหนดค่าได้อย่างไร แล้วคุณกำลังพูดถึงเมื่อไหร่? เมนบอร์ดมีตัวเลือกนี้เมื่อใด คุณสามารถชี้ไปที่เมนบอร์ดรุ่นใดก็ได้ที่มีตัวเลือกนี้หรือไม่?
barlop

18

นี่เป็นอีกกรณีหนึ่งที่ภูมิปัญญาพื้นบ้านที่ได้รับในเรื่องนี้เป็นpsusiคำตอบที่น่าเสียดายและเป็นส่วนหนึ่งของคำถามที่ติดอยู่ในโลกอย่างที่มันเคยเป็นเมื่อประมาณปี 1991 แม้จะมีความมั่งคั่งของการอ้างอิงทางเทคนิคที่อธิบายว่ามันเป็นอย่างไร มิฉะนั้น.

ในโลกของปลายทศวรรษ 1980 เฟิร์มแวร์ของเครื่อง - หนึ่งในสองสิ่งที่เรียกว่า "ไบออส" ในโลกของ IBM PC ที่ใช้งานร่วมกันได้ - นั้นอยู่ในชิป ROM บนบัส ISA และซีพียูก็เริ่มเรียกใช้โค้ดจากที่อยู่จริง000FFFF0ตำแหน่งใน "หน่วยความจำทั่วไป" เข้าถึงได้ผ่านตัวชี้โหมดจริงF000:FFF0โลกนี้หายไปนาน

(โลกที่ผู้เขียนหน้า WWW ที่คุณชี้ไปนั้น S. Ebrahim Shubbar อาศัยอยู่อย่างไม่ถูกต้องแม้จะเขียนในปี 2002 นั้นเก่ากว่าซีพียูยังไม่ได้เริ่มด้วยการCS:IPรวมกันFFFF:0000ตั้งแต่ 8086 80286 เปลี่ยนสิ่งนี้เป็นF000:FFF0แต่โลก 80286 นั้นเป็นโลกที่ล้าสมัยในช่วงปลายยุค 80 ที่ภูมิปัญญาชาวบ้านยังคงหมุนเวียนอยู่)

"ชิพ BIOS" ของคุณคือ RAM และซีพียูของคุณไม่ใช่ 16 บิต

ในเครื่องคอมพิวเตอร์ที่ทันสมัยเฟิร์มเครื่องที่จะจัดขึ้นในRAM ไม่ระเหย ชิป NVRAM เชื่อมต่อกับบัส LPC (หรืออินเทอร์เฟซ "ฮับเฟิร์มแวร์" โดยเฉพาะ) และสะพาน LPC / FWH ใน "ชิปเซ็ต" โดยปกติจะปิดใช้งานการเขียนรอบ "กะพริบ" เฟิร์มแวร์เกี่ยวข้องกับการตั้งค่าการลงทะเบียนชิปเซ็ตที่เปิดใช้งานการเขียนไปยัง NVRAM แล้วเขียนไปยัง NVRAM (ใน Intel ICH10 ตัวอย่างเช่นชิปเซ็ตลงทะเบียนของชิปเซ็ตที่อนุญาตให้เขียนรอบชื่อBIOSWE"BIOS Write Enable" มีรายละเอียดเพิ่มเติมบางอย่างที่ฉันจะข้ามไปที่นี่ แต่นั่นคือส่วนสำคัญของมัน)

ประมวลผล x86 ยังไม่ได้เริ่มดำเนินการที่สถานที่000FFFF0ตั้งแต่วันของ 80286. ซีพียู 32 บิตเริ่มต้นขึ้นในสิ่งที่เป็นที่รู้จักเรียกขานว่าโหมดที่ไม่เป็นจริง แม้ว่าค่าเริ่มต้นของการCSลงทะเบียนหลังจากการรีเซ็ตคือF000ตัวอธิบายส่วนที่เกี่ยวข้องกับการลงทะเบียนนั้นในตอนแรกถือFFFF0000เป็นที่อยู่ฐานของมัน ดังนั้นที่อยู่ทางกายภาพที่เริ่มสอดคล้องกับที่ 16:16 CS: ที่อยู่ IP F000:FFF0ในความเป็นจริงและได้รับตั้งแต่วันที่ 80386 FFFFFFF0ที่

และนั่นคือสิ่งที่เฟิร์มแวร์ของเครื่องจะทำการแมปลงในพื้นที่ที่อยู่ฟิสิคัลในเครื่องที่เป็นแบบ 32 บิตและ 64 บิต มีหน้าต่าง 128KiB บนเฟิร์มแวร์ลงในพื้นที่ "หน่วยความจำทั่วไป" แต่ NVRAM ที่ถือเฟิร์มแวร์ของเครื่องนั้นอาจสูงถึง 16MiB (ถึงแม้ว่าจะแตกต่างกันไปตามชิปเซ็ต) บนพีซีที่ทันสมัย ใต้เส้น 4GiB - คือที่อยู่ทางกายภาพไปFF000000 FFFFFFFF(ในการใช้ ICH10 เป็นตัวอย่างอีกครั้ง: พื้นที่ที่อยู่นี้ถูกแมปไปยัง NVRAM เท่าใดถูกควบคุมโดยการลงทะเบียนชิปเซ็ตที่รู้จักกันในชื่อFWH_DEC_EN"เฟิร์มแวร์ Hub Decode Enable" รีจิสเตอร์เฟิร์มแวร์FWH_DEC_ENลงทะเบียนตามขนาดของชิป NVRAM จริงที่ติดตั้งบนเมนบอร์ด แต่ด้านบน 512KiB ของ NVRAM จะเสมอแมปไปยังที่อยู่ทางกายภาพFFF80000ไปFFFFFFFและไม่สามารถปิดการใช้งาน.) รหัสดำเนินการในขั้นแรกโดยหน่วยประมวลผลทันทีหลังจากชีวิตการตั้งค่าในด้านบน 64KiB ช่วงนี้อยู่ 16MiB

สำหรับการแรเงา BIOS ROM (ซึ่งเรียกว่า - ค่อนข้างbarlopคิดว่าซีพียูกำลังมีเงาเป็นเรื่องลึกลับ): ใช่การเข้าถึง NVRAM บนบัส LPC หรือฮับเฟิร์มแวร์ยังไม่เร็วเท่ากับการเข้าถึงระบบหลัก (ระเหย) RAM แต่เหตุผลที่การแชโดว์นั้นสำคัญลดน้อยลงอย่างมากกับระบบปฏิบัติการเช่น OS / 2 และ Windows NT อีกครั้งในช่วงปลายทศวรรษ 1980 และต้นปี 1990 ระบบปฏิบัติการในโหมดจริงเช่น MS-DOS, PC-DOS, DR-DOS และอื่น ๆ นั้นอยู่ด้านบนของฟังก์ชั่น I / O ที่จัดทำโดยเฟิร์มแวร์ของเครื่อง ดังนั้นรหัสของเฟิร์มแวร์และข้อมูลแบบอ่านอย่างเดียวจึงถูกเข้าถึงมากในเวลาทำงาน ระบบปฏิบัติการโหมดที่ได้รับการป้องกันเช่น OS / 2 และ Windows NT นั้นใช้น้อยกว่ามากตามบริการที่ให้มากับเฟิร์มแวร์ขณะใช้งาน ดังนั้นความจริงที่ว่าโค้ดที่รันจาก NVRAM และข้อมูลแบบอ่านอย่างเดียวในตัวเดียวกันนั้นมาถึงตัวประมวลผลช้ากว่าเมื่อแชโดว์เข้าสู่ RAM ระบบจึงมีปัญหาน้อยกว่าที่เคยเป็น

นอกจากนี้สิ่งที่เฟิร์มแวรหัสและข้อมูลของพวกเขาจะพึ่งพาไม่จำเป็นต้องอาศัยอยู่ในส่วนหนึ่งของ NVRAM แมปที่จะเป็นส่วนหนึ่งของพื้นที่ที่อยู่ทางกายภาพดังกล่าว 128KiB "หน่วยความจำปกติหน้าต่าง" ที่จำเป็นต้องแม้ shadowable ในสถานที่แรก บริการเฟิร์มแวร์โหมดที่ได้รับการป้องกันไม่จำเป็นต้องอยู่ต่ำกว่าบรรทัด 1MiB ทั้งหมดในพื้นที่ที่อยู่ตามจริงเช่นเดียวกับบริการเฟิร์มแวร์โหมดจริงและบางอย่างไม่ (และแน่นอนมันจะเป็นไปได้ที่จะทำเคล็ดลับเช่นเดียวกันกับพื้นที่ของพื้นที่ที่อยู่ทางกายภาพที่พวกเขาทำในชีวิตถ้ามีอย่างน้อย 4GiB ของแรมระบบ.)

กระแทกแดกดันแหล่งข้อมูลที่ถูกต้องมากขึ้นสำหรับข้อมูลเกี่ยวกับเรื่องนี้มากกว่าการเขียน S. Ebrahim Shubbar ในปี 2002 เป็นหนังสือ Phil Croucher ของBIOS Companionจากปีก่อนในปี 2001 M. Croucher สังเกตว่า Unices, Linux, Windows NT และ "สันนิษฐาน (95 / 98) "" ไม่ได้ประโยชน์จากการแรเงา " มันไม่จำเป็นต้องทั้งหมดไม่มีประโยชน์ แต่มันค่อนข้างน้อยมากที่เกี่ยวกับโลกของคนทำงานใน MS-DOS, PC-DOS และ DR-DOS ในโหมดจริงใน 16 บิต 80286 เครื่องในปี 1989

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.