รอม (ROM: Read-only Memory หน่วยความจำอ่านอย่างเดียว) เป็นหน่วยความจำแบบสารกึ่งตัวนำชั่วคราวชนิดอ่านได้อย่างเดียว ใช้เป็นสื่อบันทึกในคอมพิวเตอร์ เพราะไม่สามารถบันทึกซ้ำได้ (อย่างง่ายๆ) เป็นหน่วยความจำที่มีซอฟต์แวร์หรือข้อมูลอยู่แล้ว และพร้อมที่จะนำมาต่อกับไมโครโพรเซสเซอร์ได้โดยตรง หน่วยความจำประเภทนี้แม้ไม่มีไฟเลี้ยงต่ออยู่ ข้อมูลก็จะไม่หายไปจากหน่วยความจำ (nonvolatile) โดยทั่วไปจะใช้เก็บข้อมูลที่ไม่ต้องมีการแก้ไขอีกแล้วเช่น

  • เก็บโปรแกรมไบออส (Basic Input output System : BIOS) หรือเฟิร์มแวร์ ที่ควบคุมการทำงานของคอมพิวเตอร์
  • ใช้เก็บโปรแกรมการทำงานสำหรับเครื่องคิดเลข
  • ใช้เก็บโปรแกรมของคอมพิวเตอร์ที่ทำงานเฉพาะด้าน เช่น ในรถยนต์ที่ใช้ระบบคอมพิวเตอร์ควบคุมวงจร ควบคุมในเครื่องซักผ้า เป็นต้น

หน่วยความจำประเภท ROM นี้ยังแบ่งออกเป็นประเภทย่อยๆ ตามลักษณะการใช้งานได้หลายประเภท สำหรับเทคโนโลยีในการผลิตตัวไอซีที่ทำหน้าที่เป็น ROM มีทั้งแบบ MOS และแบบไบโพลาร์ ดังแผนภาพ

ชนิดของ ROM แก้

Mask ROM แก้

หน่วยความจำประเภทนี้ ข้อมูลทั้งหมดที่อยู่ภายในจะถูกโปรแกรมมาจากโรงงานตั้งแต่ขั้นตอนการผลิตไอซี เราจะใช้ ROM ชนิดนี้ เมื่อข้อมูลนั้นไม่มีการเปลี่ยนแปลง และเหมาะสำหรับงานที่ผลิตครั้งละมากๆ ผู้ใช้ไม่สามารถ เปลี่ยนแปลงข้อมูลภายใน ROM ได้ ROM ประเภทนี้มีทั้งแบบไบโพลาร์และแบบ MOS  

PROM (Programmable ROM) แก้

จากไอซี ROM แบบแรกการโปรแกรมข้อมูลจะต้องโปรแกรมมาจากโรงงาน และต้องผลิตจำนวนมากจึงจะคุ้มค่ากับต้นทุนในการผลิต อีกทั้งโรงงานผู้ผลิตไอซีจะรู้ข้อมูลที่เก็บอยู่ด้วย สำหรับระบบดิจิทัลหรือคอมพิวเตอร์ที่ผลิตออกมาจำนวนไม่มากและต้องการใช้หน่วยความจำ ROM สามารถนำหน่วยความจำ ROM มาโปรมแกรมเองได้ โดยหน่วยความจำนี้จะเรียกว่า PROM ( Programmable Read Only Memory ) หน่วยความจำประเภทนี้ เซลล์เก็บข้อมูลแต่ละเซลล์จะมีฟิวส์ ( fused ) ต่ออยู่ เป็นหน่วยความจำที่ข้อมูลที่ต้องการโปรแกรมจะถูกโปรแกรมโดยผู้ใช้เอง โดยป้อนพัลส์แรงดันสูง ( HIGH VOLTAGE PULSED ) ไอซี PROM ที่ยังไม่ถูกโปรแกรมนั้น ข้อมูลทุกเซลล์หรือทุกบิตจะมีค่าเท่ากันหมด คือ มีลอจิกเป็น 1 แต่เมื่อได้มีการโปรแกรมโดยป้อนแรงดันไฟสูงๆเข้าไปจะทำให้เซลล์บางเซลล์ฟิวส์ขาดไป ทำให้ตำแหน่งที่เซลล์นั้นต่ออยู่มีลอจิกเป็น 0 เมื่อ PROM ถูกโปรแกรมแล้ว ข้อมูลภายใน จะไม่สามารถเปลี่ยนแปลงได้อีก เนื่องจากฟิวส์ที่ขาดไปแล้วไม่สามารถต่อได้ หน่วยความจำชนิดนี้ จะใช้ในงานที่ใช้ความเร็วสูง ซึ่งความเร็วสูงกว่า หน่วยความจำที่โปรแกรมได้ชนิดอื่นๆ

EPROM (Erasable Programmable ROM) แก้

หน่วยความจำประเภท EPROM เป็นหน่วยความจำประเภท PROM ที่สามารถลบข้อมูลหรือโปรแกรมข้อมูลใหม่ได้ เหมาะสำหรับงานสร้างวงจรต้นแบบที่อาจต้องมีการแก้ไขโปรแกรมหรือข้อมูลใหม่ ข้อมูลจะถูกโปรแกรม โดยผู้ใช้โดยการให้สัญญาณ ที่มีแรงดันสูง ( HIGH VOLTAGE SIGNAL ) ผ่านเข้าไปในตัว EPROM ซึ่งเป็นวิธีเดียวกับที่ใช้ใน PROM หน่วยความจำประเภทนี้มี 2 ประเภท คือ ประเภทที่ลบข้อมูลด้วยรังสีอัลตราไวโอเลต หรือที่เรียกกันว่า UV PROM ส่วนอีกประเภทหนึ่งเป็นหน่วยความจำที่ลบข้อมูลด้วยไฟฟ้า เรียกว่า EEPROM ย่อมาจาก Electrical Erasable PROM

หน่วยความจำประเภท UV PROM การโปรแกรมทำได้โดยการป้อนค่าแรงดันไฟฟ้าที่เหมาะสมเข้าไป และข้อมูลจะถูกบันทึกไว้ตลอดไป สำหรับการลบข้อมูลทำได้ด้วยการฉายแสงอัลตราไวโอเลตเข้าไปในตัว ไอซี โดยผ่านทางช่องใสที่ทำด้วยผลึกควอตซ์ที่อยู่บนตัวไอซี เมื่อฉายแสงครู่หนึ่ง ( ประมาณ 5 - 10 นาที ) ข้อมูลที่อยู่ภายในก็จะถูกลบทิ้ง ซึ่งช่วงเวลาที่ฉายแสงนี้สามารถดูได้จากข้อมูลที่กำหนด ( DATA SHEET ) มากับตัว EPROM

หน่วยความจำประเภท EEPROM แม้ว่าจะลบและโปรแกรมข้อมูลได้ด้วยกระแสไฟฟ้าซึ่งสะดวกในการใช้งาน แต่ความเร็วในการอ่าน และเขียนข้อมูลจะไม่เร็วเท่าที่ควร

การอ่านขนาดความจุจาก Data Sheet แก้

ส่วนประกอบพื้นฐานของ ROM จะมีสัญญาณต่างๆ ที่เกี่ยวข้องกับ ROM และทุกชิปที่อยู่ใน ROM มักมีการจัดแบ่งแยกหน้าที่เสมอ เช่น ขาแอดเดรสของ ROM เป็นอินพุต ส่วนขาข้อมูลจะเป็นเอาต์พุต โดยหลักการแล้วขาข้อมูลจะต่อเข้ากับบัสข้อมูลซึ่งเป็นบัส 2 ทาง ลักษณะโครงสร้างภายในของข้อมูลในหน่วยความจำสามารถดูได้จาก Data Sheet ของ ROM นั้นๆ เช่น ROM ที่ระบุเป็น 1024 8 หรือ 4096 8 ตัวเลขชุดแรก (1024,4096) จะบอกถึงจำนวนตำแหน่งที่ใช้เก็บข้อมูลภายใน ส่วนตัวเลขชุดที่สอง ( 8,8 ) จะเป็นตัวบอกถึงจำนวนบิตของข้อมูลแบบขนานที่อ่านจาก ROM

ในการที่จะกำหนดจำนวนเส้นของบัสแอดเดรสที่ใช้กับ ROM จะสามารถรู้ได้จาก

2 ยกกำลัง x = จำนวนแอดเดรสที่อ้างถึง

เช่น 2 ยกกำลัง x = 4096 จะได้ x = 12 ซึ่งก็คือ จำนวนเส้นบัสแอดเดรสนั่นเอง

การอ่านข้อมูลจาก ROM แก้

  1. CPU จะส่งแอดเดรสไปให้ ROM แอดเดรสดังกล่าวจะปรากฏ เป็นแอดเดรสที่ต้องการอ่าน ใน ROMโดยข้อมูลจะถูกอ่านออกมาเพียงครั้งละ 1 ไบต์เท่านั้น
  2. CPU จะต้องให้ช่วงเวลาของการส่งแอดเดรสยาวนานพอประมาณ ( Wait State ) เรียกว่า Access Time โดยปกติแล้วจะต้องใช้เวลาประมาณ 100 - 300 นาโนวินาที ซึ่งขึ้นอยู่กับชนิดของ ROM ซึ่ง ROM จะใช้เวลานั้นในการถอดรหัสแอดเดรส ของข้อมูลที่ต้องการจะอ่านออกมาที่เอาต์พุตของ ROM ซึ่งถ้าใช้เวลาเร็วกว่านั้น ROM จะตอบสนองไม่ทัน
  3. CPU จะส่งสัญญาณไปทำการเลือก ROM เรียกว่า สัญญาณ CS (Chip Select) เพื่อบอกว่าต้องการเลือก ROM ซึ่งเป็นการส่งสัญญาณเพื่อยืนยันการเลือกชิปนั่นเอง
  4. ข้อมูลจะผ่านออกทางขาข้อมูลชั่วขณะจังหวะการเลือกชิป และเมื่อขาการเลือกชิปไม่แอคทีฟ ข้อมูลก็จะเข้าสู่ภาวะที่มีอิมพีแดนซ์สูง