ใครโหลด BIOS ใน RAM ระหว่างบูตคอมพิวเตอร์


8

เมื่อคอมพิวเตอร์เริ่มการทำงานรหัสใน BIOS จะถูกดำเนินการก่อน อย่างไรก็ตามรหัสใน BIOS โหลดเข้าสู่ RAM สำหรับการดำเนินการอย่างไร

ฉันได้อ้างถึงคำถามนี้ - BIOS อ่านจากชิป BIOS หรือคัดลอกลงใน RAM เมื่อเริ่มต้นหรือไม่ . อย่างไรก็ตามมันทำให้ฉันสับสนมากขึ้น หาก BIOS โหลดจาก ROM และ ROM เป็นชิปแยกต่างหากจุดประสงค์ของการพูดถึงที่อยู่เซ็กเมนต์ใน RAM คืออะไร? นอกจากนี้รหัส BIOS โหลดอยู่ที่ไหน - มันอยู่ใน 1 MiB ล่าสุดของพื้นที่ที่อยู่โหมดจริงหรือสถานที่อื่น ๆ ?

หากใครบางคนสามารถทำรายการขั้นตอนจากคอมพิวเตอร์เริ่มต้นจนถึงการดำเนินการตามคำสั่ง BIOS แรกรวมถึงที่อยู่หน่วยความจำที่ใช้มันจะมีประโยชน์มาก

คำตอบ:


7

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

คุณคงไม่สับสนถ้าคุณอ่านคำตอบของฉันเพราะคุณจะไม่ถามเกี่ยวกับ "BIOS ที่โหลดจาก ROM" ในตอนแรก

"ชิพ BIOS" ของคุณไม่ใช่ ROM; ไม่มีรหัสเครื่องระหว่างการเริ่มต้นโปรเซสเซอร์และคำสั่งแรกในเฟิร์มแวร์ และ "M" ทั้งใน "RAM" และ "ROM" หมายถึง "หน่วยความจำ"

ขณะที่ผมเขียนก่อนในเครื่องคอมพิวเตอร์ที่ทันสมัยเฟิร์มเครื่องที่จะจัดขึ้นในRAM ไม่ระเหย ไม่ใช่ ROM เหมือนที่เคยเป็นมา ดูคำตอบก่อนหน้านี้สำหรับรายละเอียดของชิป NVRAM ที่เชื่อมต่อกับบัส LPC (ตัวอย่างเช่น: บนเครื่องนั่งถอดประกอบข้างฉันขณะที่ฉันพิมพ์สิ่งนี้ NVRAM ที่ถือเฟิร์มแวร์คือ Pm49FL004T ซึ่งเป็นชิป LPC แฟลชแรม RAM)

CPU แบบ 32 บิตไม่เริ่มทำงานในโหมดจริงและไม่เริ่มต้นด้วยที่อยู่ที่ต่ำกว่าบรรทัด 1MiB นั่นเป็นเวลาหลายสิบปีที่ขยะล้าสมัยจากช่วงเวลาของโปรเซสเซอร์ x86 แบบ 16 บิต พวกเขาเริ่มต้นในสิ่งที่เป็นที่รู้จักเรียกขานว่าโหมดที่ไม่เป็นจริงและอีกครั้งในคำตอบก่อนที่ฉันได้ให้รายละเอียดของสิ่งที่ได้รับกรณีที่จริงตั้งแต่การถือกำเนิดของ 80386 พวกเขาโหลดคำสั่งแรกของพวกเขาจากที่อยู่ซึ่งอันที่จริงอยู่ด้านบนสุดของพื้นที่ที่อยู่แบบ 32 บิต, FFFFFFF0.

ในคำตอบก่อนหน้าของฉันฉันบอกคุณในรายละเอียดที่ส่วนใหญ่เฟิร์มแวร์เครื่องถูกแมปลงในพื้นที่ที่อยู่ทางกายภาพในเครื่อง x86 32- บิตและ 64- บิต โปรดจำไว้ว่า: ทั้งสอง RAM และ ROM ที่มีหน่วยความจำ ฟิสิคัลแอดเดรสคือแอดเดรสหน่วยความจำบนบัสระบบ พวกเขาสามารถอยู่ทั้ง RAM หรือ ROM (พวกเขายังสามารถพูดถึงสิ่งอื่น ๆ ได้เช่นกัน แต่นั่นเป็นเพียงการพูดคุยที่ซับซ้อน) ที่อยู่ทางกายภาพFFFFFFF0คือ 16 ไบต์ด้านล่างของช่วง 512KiB ที่ 512KiB สูงสุดของเฟิร์มแวร์ใน RAM ที่ไม่ลบเลือนจะถูกแมปบน ระบบบัสโดย "ชิปเซ็ต"

ไม่มี "การโหลด" จากชิป ROM ในตำนานบางตัวที่ดำเนินการตั้งแต่เริ่มต้นหรือรีเซ็ต ชิปโฮลดิ้งเฟิร์มเป็นแรมไม่ระเหย มันยังคงรักษาเนื้อหาของมันเขียนเมื่อมันเป็น "ประกาย" ข้ามวงจรไฟฟ้า และซีพียูจะอ่านคำสั่งเฟิร์มแวร์และข้อมูลจากมันผ่านทางบัสของระบบและบนบัส LPC (และอาจเป็นสะพาน LPC / FWH) ที่เชื่อมต่อกับบัสของระบบผ่านชิปเซ็ตโดยใช้ที่อยู่หน่วยความจำทางกายภาพ

อ่านเพิ่มเติม


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

เมื่อเขากล่าวว่าหน่วยความจำเข้าถึงโดยไม่ลบเลือน (NVRAM) เขาอ้างถึงเทคโนโลยีที่แตกต่างจาก RAM ที่ใช้เป็นหน่วยความจำระบบหลัก (โดยทั่วไปคือ Dynamic Random Access Access, DRAM) มันเป็นชิปแยกต่างหากจาก RAM หลักที่มีเฟิร์มแวร์แม้ว่าจะปิดอยู่ดังนั้นส่วน "ไม่ลบเลือน"
Dougvj

@Dougvj: ในกรณีนี้ทำไมเราถึงมีที่อยู่แยกต่างหากของ FFFFFFF0 ขนาด NVRAM จะไม่ใช่แค่ขนาดของเฟิร์มแวร์หรือไม่
Cygnus

ฉันคิดว่าคำถามของคุณได้รับการจัดการที่ดีกว่าเป็นคำถามจริงไม่ใช่แสดงความคิดเห็นในคำตอบนี้ ดูคำถาม "ที่เกี่ยวข้อง" บางอย่างทางด้านขวาจากนั้นหาคำถามที่จะถามซึ่งจะช่วยให้คุณเข้าใจมากขึ้น (มีที่ว่างใน SuperUser แน่นอนสำหรับคำถาม + คำตอบเกี่ยวกับพื้นฐานอย่างมากดูเหมือนว่ามาจาก shufti สั้น ๆ )
JdeBP

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