เหตุใดชิป ROM ของ BIOS จึงไม่ใช้เทคโนโลยี CMOS


9

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

นี่คือจากบันทึกการบรรยาย :

โปรแกรมจะถูกเก็บไว้ในชิป BIOS ระบบในขณะที่ข้อมูลที่เปลี่ยนแปลงได้จะถูกเก็บไว้ในชิป CMOS

กลุ่มฮาร์ดแวร์ของ CMOS : ฮาร์ดแวร์ที่ใช้ร่วมกันจำเป็น แต่อาจเปลี่ยนแปลงได้ - RAM ฮาร์ดไดรฟ์ฟลอปปี้ไดรฟ์พอร์ตอนุกรมและพอร์ตขนาน

ฉันรู้ว่า BIOS ถูกเก็บไว้ในหน่วยความจำแฟลชและเทคโนโลยี CMOS MOSFET นั้นสิ้นเปลืองพลังงานน้อยกว่าเมื่อเปรียบเทียบกับการใช้งานอื่น ๆ

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


1
CMOS ไม่ต้องการแบตเตอรี่เพื่อเก็บข้อมูลหรือไม่ เป็นสิ่งหนึ่งที่สูญเสียการตั้งค่า config และนาฬิกาเมื่อแบตเตอรี่หมด แต่มันจะเป็นหายนะถ้า BIOS หายไป คุณอาจแก้ไขประโยคสุดท้ายของคุณ ฉันไม่สามารถเข้าใจสิ่งที่คุณถาม
ทรานซิสเตอร์

1
Bios เป็น ROM ในขณะที่การตั้งค่าเป็น RAM
Tony Stewart Sunnyskyguy EE75

1
@Kais ไม่สามารถเขียนส่วนหนึ่งของ ROM ได้ มันตรงกันข้ามกับความหมายของคำมาก ในระหว่างเทคโนโลยี - Eraseble Programmable รอมเริ่มที่จะทำให้สิ่งที่คุณจะนำเสนอที่เป็นไปได้และตอนนี้ที่ในวงจรการเขียนโปรแกรมเป็นเรื่องง่ายที่นี้ในความเป็นจริงจะทำบ่อย แต่ในเวลาเดียวกันการรักษามุมพลังงานต่ำของชิปที่มีชีวิตอยู่ในแบตเตอรี่จะเป็นนาฬิกาปลุกและรักษาตั้งค่าบางอย่างยังเป็นไปได้เพื่อให้เป็นยังตัวเลือกนำมาใช้ในบางระบบ
Chris Stratton

2
"ROM" หมายถึง " Read Only Memory" มันเป็นคำจำกัดความที่ไม่สามารถเขียนได้ โดยทั่วไป ROM จริงจะเกี่ยวข้องกับการปรับแต่งชั้น metallization หรือแม้กระทั่งทรานซิสเตอร์องค์ประกอบจริง ในทางตรงกันข้ามมีความทรงจำ "Read Mostly" หลายประเภท (PROM, EPROM, EEPROM, Flash, ฯลฯ ) ซึ่งสามารถเปลี่ยนแปลงเนื้อหาได้ แต่มีข้อ จำกัด ด้านความเร็วและจำนวนครั้งมากกว่า RAM โดยทั่วไปแล้ววันนี้คุณจะพบ ROM จริงภายในโปรเซสเซอร์ (และแม้กระทั่งอาจเป็นสิ่งที่คุณถูกล็อกไม่ให้เขียน) ในขณะที่อุปกรณ์ภายนอกจะสามารถเขียนได้ด้วยการเชื่อมต่อที่ถูกต้อง
Chris Stratton

1
ตัวอย่างเช่นในระบบที่ทันสมัยคุณอาจมี ROM ขนาดเล็กภายในโปรเซสเซอร์ซึ่งรู้วิธีการอ่านเนื้อหาของแฟลช NOR อนุกรมในหน่วยความจำและเริ่มดำเนินการ BIOS ในแฟลช NOR จะได้รับการอัพเกรดในขณะที่บู๊ตเครื่องขนาดเล็กที่คัดลอกจากแฟลชไปยัง RAM และกระโดดเข้าไปจะได้รับการแก้ไขอย่างถาวรในเวลาที่มีการผลิตชิป
Chris Stratton

คำตอบ:


33

คุณกำลังผสมเทคโนโลยีการใช้งานกับคำศัพท์เพื่อการทำงาน

CMOS - ส่วนประกอบโลหะออกไซด์ของเซมิคอนดักเตอร์ - เป็นวิธีการสร้างตรรกะและวงจรที่เกี่ยวข้องโดยใช้ทรานซิสเตอร์เอฟเฟกต์สนาม N-Channel และ P-Channel หนึ่งในลักษณะการกำหนดของมันคือการใช้พลังงานไฟฟ้าสถิตย์ต่ำมาก - พลังงานเกือบจะใช้เมื่อเปลี่ยนสถานะเท่านั้น ดังนั้นชิปหน่วยความจำแบบสแตติกของ CMOS สามารถเก็บเนื้อหาไว้เป็นเวลาหลายปีบนแบตเตอรี่และเป็นสถานที่ที่สะดวกในการจัดเก็บข้อมูลกึ่งถาวร

ไบออสและรหัสเริ่มต้นที่เกี่ยวข้องนั้นถูกเก็บไว้ในอุปกรณ์ PROM หรือ EPROM EPROM ในยุคของพีซี IBM โดยทั่วไปแล้วจะทำในเทคโนโลยี pre-CMOS เช่น NMOS แต่ความแตกต่างที่สำคัญคือสิ่งเหล่านี้มักไม่สามารถเขียนได้เมื่อติดตั้งในคอมพิวเตอร์ แต่ในโปรแกรมเมอร์พิเศษเท่านั้น ในขณะที่ระบบและโคลนนิ่งหลายรุ่นใช้ EPROM รุ่นการผลิตจริงของ IBM-PC ใช้ PROMS ที่ไม่สามารถประมวลผลได้ราคาถูกกว่า (pinouts โดยทั่วไปใช้งานได้)

การออกแบบ PC-AT นั้นเพิ่มหน่วยความจำ CMOS ที่รองรับแบตเตอรี่สำหรับการจัดเก็บการตั้งค่าที่ปรับแต่งได้และ (อาจอยู่ในอุปกรณ์เดียวกัน) นาฬิกาแบบเรียลไทม์แบบถาวร สิ่งนี้ได้รับการอ้างถึงแบบเรียกขานโดยผู้ใช้ขั้นปลายว่าเป็น CMOS แม้ว่าแน่นอนว่ามีเพียงการใช้งานเฉพาะที่เปิดใช้งานโดยเทคโนโลยีชิปที่แพร่กระจายอย่างรวดเร็วแล้ว

แน่นอนว่าวันนี้เราไม่ได้ใช้ขนาน E / PROMs สำหรับ BIOS อีกต่อไป แต่ควรใช้แฟลช NOR แบบอนุกรมและถ่ายโอนเนื้อหาไปยัง RAM ที่เร็วกว่าสำหรับการดำเนินการ ชิป FLASH สมัยใหม่นั้นใช้เทคโนโลยีที่ได้จาก CMOS และพวกเขามักจะสามารถโปรแกรมใหม่ในวงจร มันขึ้นอยู่กับผู้ออกแบบระบบหากพวกเขาต้องการใส่ข้อมูลการกำหนดค่ากึ่งถาวรใน RAM ที่ใช้แบตเตอรีสำรองหรือในแฟลชที่สามารถโปรแกรมซ้ำได้ - ผู้ใช้หรือระบบปฏิบัติการหลังบูตอาจมีทัศนวิสัยที่แท้จริงเล็กน้อย

แต่ถึงแม้ว่าจะใช้แฟลชสำหรับการตั้งค่า แต่โดยทั่วไปจะยังคงเป็นนาฬิกาแบบเรียลไทม์พลังงานต่ำซึ่งยังคงใช้งานแบตเตอรี่


1
เมื่อซีพียูเริ่มต้นขึ้น RAM ยังไม่ได้เริ่มต้น (DRAM init นั้นซับซ้อน) สิ่งที่มันทำคือรันโค้ดที่ตำแหน่งเฉพาะ (โดยปกติคือชิพ BIOS เหนือ SPI แต่ที่คาดคะเนว่าคุณสามารถตั้งโปรแกรมบูทลำดับต่อมาเพื่อค้นหาไบออสผ่าน PCI หรือ LPC รุ่นเก่าสำหรับเหตุผลในการดีบัก) สิ่งเดียวที่ใส่ลงใน RAM คือสิ่งต่าง ๆ เช่น IVT (ตารางขัดจังหวะเวกเตอร์) และรหัสที่เกี่ยวข้องซึ่งมีประโยชน์เฉพาะก่อนที่จะเปลี่ยนจากโหมดจริง การประมวลผล BIOS จริงเมื่อ CPU กำลังบู๊ตไม่ได้เกิดขึ้นในหน่วยความจำ ดูwiki.osdev.org/System_Initialization_(x86)สำหรับรายละเอียดเพิ่มเติม
forest

1
@forest - ไม่น่าจะเป็นจริงและไม่ได้รับการสนับสนุนโดยคำอธิบายที่ค่อนข้างกว้างในลิงก์ของคุณ อาจจบลงด้วยการเรียกใช้งานแคช ram หรือ repurposed บางส่วน แต่การดำเนินการโดยตรงจาก SPI นั้นทำงานได้ไม่ดีนักและมีแนวโน้มที่จะหลีกเลี่ยงได้อย่างมาก เห็นได้ชัดว่าเมื่อแรมของระบบหลักไบออสกำลังจะทำการประมวลผลนั้นเงาดังกล่าวเป็นเรื่องปกติแม้ในยุคของ EPROM ที่ขนานกัน
Chris Stratton

1
ใช่เมื่อหน่วยความจำหลักเริ่มต้น IVT, BDA, EBDA ฯลฯ จะถูกคัดลอกไปที่นั่น อย่างไรก็ตามก่อนหน้านั้นจะมีการดำเนินการโดยตรง มันไม่ได้ดำเนินการในแคช (นั่นคือโหมด CAR, Cache-As-RAM ซึ่งต้องการการเริ่มต้นอย่างชัดเจนจาก BIOS)
ป่า

1
โปรดดูstackoverflow.com/questions/5300527/ซึ่งอธิบายรายละเอียดเพิ่มเติมนี้ โดยเฉพาะอย่างยิ่งวิธีการดำเนินการบล็อกการบูต BIOS โดยตรงผ่าน SPI สิ่งนี้เป็นไปได้โดยการแมปพื้นที่ของ BIOS ไปยังหน่วยความจำ (แน่นอนก่อนที่หน่วยความจำจะเริ่มต้นจริงดังนั้นจึงเหมือนกับ MMIO) ดังนั้นจึงไม่น่าจะเป็นจริง แต่เป็นจริง
ป่า

Chris Stratton "แต่ให้ใช้แฟลช NOR แบบอนุกรมและถ่ายโอนเนื้อหาไปยัง RAM ที่เร็วกว่าสำหรับการดำเนินการ" และคุณจะมองเห็น "การถ่ายโอนเนื้อหา" ที่นอกเหนือจากการเรียกใช้โค้ด "data move" โดยตรงจาก SPI ได้อย่างไร
Ale..chenski

12

ย้อนกลับไปเมื่อมีการคิดค้นพีซีเป็นครั้งแรกตรรกะส่วนใหญ่ของมันคือชิป NMOS และ TTL ที่ใช้พลังงานมาก CMOS นั้นใหม่มากและมีเพียงวงจรเดียวในพีซีที่ใช้มันเกี่ยวข้องกับสิ่งต่าง ๆ ที่จำเป็นในการใช้งานแบตเตอรี่เมื่อปิดเครื่องเช่น RAM การกำหนดค่าและนาฬิกาตามเวลาจริง

ทุกวันนี้ตรรกะเกือบทั้งหมดเป็น CMOS รวมถึง CPU ที่ใช้พลังงานมากและแฟลช EEPROM ที่เก็บ BIOS ดังนั้นในแง่ของคำถามของคุณจะขึ้นอยู่กับหลักฐานที่ไม่ถูกต้อง - แฟลช EEPROM เป็น CMOS อย่างไรก็ตามด้วยเหตุผลใดก็ตามคำว่า "CMOS" ในพีซียังคงอ้างถึงเฉพาะฟังก์ชั่น RAM และ RTC

หากคุณถามว่าเพราะเหตุใด BIOS จึงไม่ถูกจัดเก็บใน RAM แบบระเหยมากกว่าแฟลชแบบไม่ลบเลือนนั่นเป็นเพราะแบตเตอรีล้มเหลวและการลบไบออสจะทำให้คอมพิวเตอร์ "อิฐ" ได้อย่างมีประสิทธิภาพโดยต้องใช้ฮาร์ดแวร์พิเศษ


1
"ดังนั้นในความรู้สึกคำถามของคุณจะขึ้นอยู่กับหลักฐานที่ไม่ถูกต้อง - แฟลช EEPROM คือ CMOS" - วลี "โปรแกรมจะถูกเก็บไว้ในชิป BIOS ระบบในขณะที่ข้อมูลที่เปลี่ยนแปลงได้จะถูกเก็บไว้ใน CMOS" ทำให้ฉันสับสนเล็กน้อย ฉันได้เข้าใจ.
Kais

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

3
@Kais เนื่องจากหน่วยความจำแฟลชไม่สามารถเขียนทับได้โดยพลการและการจัดการการเขียนหน่วยความจำแฟลชทั้งหน้าใหม่ทำให้สิ่งต่าง ๆ มีความซับซ้อนในลักษณะที่เกิดข้อผิดพลาดได้ง่าย นอกจากนี้ยังมีสิ่งต่าง ๆ เช่นบันทึกเหตุการณ์ที่จัดเก็บโดย BIOSen บางตัวสิ่งนี้มาพร้อมกับอันตรายจากการเสื่อมสภาพของแฟลชและ / หรือสิ้นสุดด้วยข้อมูลที่เสียหายหากไฟฟ้าดับในเวลาที่ไม่ถูกต้อง หน่วยความจำแบบ EEPROM ทรูจะเป็นไปได้ - แต่) มันเป็นช้าที่จะเขียนและ b) คุณมีแบตเตอรี่ที่ใช้พลังงานต่ำสำหรับนาฬิกาอยู่แล้ว
rackandboneman

1
... เช่นกันเพราะทั้งระบบได้รับการออกแบบมาก่อนแฟลชทั่วไปดังนั้นไบออสจึงถูกเก็บไว้ใน PROM ทั้งสอง (ซึ่งใช้ฟิวส์เพื่อพิจารณาว่าแต่ละบิตเป็น 1 หรือ 0 และสามารถเปลี่ยนจาก 1 เป็น 0 ได้เท่านั้น กลับมาอีกครั้ง) หรือมาสก์ ROM (ซึ่งใช้เลเยอร์ของสายโลหะที่ซ้อนทับบนชิปเพื่อตั้งโปรแกรมและไม่สามารถแก้ไขได้เลยหลังจากผลิต) ดังนั้นจึงจำเป็นต้องมีอุปกรณ์แยกต่างหากและทุกอย่างจำเป็นต้องรักษาความเข้ากันได้ตั้งแต่หลัง .
จูลส์

8

ฉันคิดว่าคุณกำลังสับสนเกี่ยวกับการใช้สองตัวย่อของ "CMOS" มีชิปที่สร้างขึ้นทั้งหมดของเทคโนโลยีทรานซิสเตอร์ MOS ที่สมบูรณ์ อันที่จริงชิปเกือบทุกวันนี้ถูกสร้างขึ้นด้วยวิธีนี้รวมถึงวงจรควบคุมดิจิตอลจำนวนมากบนชิปแฟลช

การใช้งานอื่น ๆ ของ CMOS ยังคงมีอยู่ในอุตสาหกรรมพีซีตั้งแต่วันแรกสุดที่อ้างถึงชิปที่เก็บการตั้งค่าบางอย่างและนาฬิกาเรียลไทม์พร้อมแบตเตอรี่ที่ต่ออยู่ ย้อนกลับไปในสมัยนั้น (ต้นยุค 80) ชิปขนาดใหญ่จำนวนมากในพีซีคือเทคโนโลยี NMOS และชิปจิปาถะเบ็ดเตล็ดเป็นทรานซิสเตอร์แบบไบโพลาร์ลอจิก (TTL, LSTTL และอื่น ๆ ) ชิป CMOS ที่ใช้เพียงอย่างเดียวคือชิป RTC และกลายเป็นที่รู้จักในนาม "CMOS"

ทุกวันนี้ RTC ไม่ได้แยกชิปบนอุปกรณ์สถาปัตยกรรมพีซีอีกต่อไป แต่มันถูกสร้างขึ้นในชิปเซ็ตเมนบอร์ด (ซึ่งบังเอิญผลิตด้วยวงจร MOS เสริม) เป็นเรื่องยากที่ไบออสทุกวันนี้จะใช้แบตเตอรี่สำรองที่สำรองไว้ในส่วน RTC ของชิปเซ็ตเพื่อจัดเก็บการตั้งค่า แต่ไบออสใช้สองสามหน้าของอุปกรณ์เก็บข้อมูลแฟลช SPI เพื่อบันทึกการตั้งค่าในลักษณะที่ไม่ลบเลือน ดังนั้นจึงมีการตั้งค่าขั้นต่ำที่หายไปในพีซีเมื่อแบตเตอรี่หมดหรือถูกตัดการเชื่อมต่อ การตั้งค่าขั้นต่ำที่หายไปจากการกำจัดพลังงานแบตเตอรี่คือการตั้งค่าบางอย่างที่ควบคุมการทำงานของพลังงานและรีเซ็ตพฤติกรรมของชิปเซ็ตและในความเป็นจริงไม่ได้เก็บไว้ในเซลล์ RAM ที่ใช้พลังงานจากแบตเตอรี่ แบตเตอรี่เซลล์


2

ดูเพิ่มเติมที่/superuser/989499/what-does-a-cmos-chip-look-like : สิ่งนี้ทำให้เรามีลิงก์ที่สะดวกไปยังแผ่นข้อมูลMC146818ดั้งเดิมของเรา

ชิปนี้ถูกแมปหน่วยความจำและให้ 64 ไบต์ 14 ในจำนวนนี้มีไว้สำหรับนาฬิกาปล่อยให้ส่วนที่เหลือเป็น RAM สำหรับวัตถุประสงค์ทั่วไป ชิปทั้งหมดได้รับการขับเคลื่อนด้วยแบตเตอรี่ในขณะที่พีซีปิดอยู่เพื่อรักษาเวลาตามเวลาจริง

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