หน่วยความจำอ่านอย่างเดียว

thumb|ROM
**หน่วยความจำอ่านอย่างเดียว** (Read-only Memory) หรือเรียกย่อว่า **รอม** (ROM) เป็นหน่วยความจำแบบสารกึ่งตัวนำชั่วคราวชนิดอ่านได้อย่างเดียว ใช้เป็นสื่อบันทึกในคอมพิวเตอร์ เพราะไม่สามารถบันทึกซ้ำได้ (อย่างง่าย ๆ) เป็นหน่วยความจำที่มีซอฟต์แวร์หรือข้อมูลอยู่แล้ว และพร้อมที่จะนำมาต่อกับไมโครโพรเซสเซอร์ได้โดยตรง หน่วยความจำประเภทนี้แม้ไม่มีไฟเลี้ยงต่ออยู่ ข้อมูลก็จะไม่หายไปจากหน่วยความจำ (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
# CPU จะส่งแอดเดรสไปให้ ROM แอดเดรสดังกล่าวจะปรากฏเป็นแอดเดรสที่ต้องการอ่านใน ROM โดยข้อมูลจะถูกอ่านออกมาเพียงครั้งละ 1 ไบต์เท่านั้น
# CPU จะต้องให้ช่วงเวลาของการส่งแอดเดรสยาวนานพอประมาณ (Wait State) เรียกว่า Access Time โดยปกติแล้วจะต้องใช้เวลาประมาณ 100 - 300 นาโนวินาที ซึ่งขึ้นอยู่กับชนิดของ ROM ซึ่ง ROM จะใช้เวลานั้นในการถอดรหัสแอดเดรส ของข้อมูลที่ต้องการจะอ่านออกมาที่เอาต์พุตของ ROM ซึ่งถ้าใช้เวลาเร็วกว่านั้น ROM จะตอบสนองไม่ทัน
# CPU จะส่งสัญญาณไปทำการเลือก ROM เรียกว่า สัญญาณ CS (Chip Select) เพื่อบอกว่าต้องการเลือก ROM ซึ่งเป็นการส่งสัญญาณเพื่อยืนยันการเลือกชิปนั่นเอง
# ข้อมูลจะผ่านออกทางขาข้อมูลชั่วขณะจังหวะการเลือกชิป และเมื่อขาการเลือกชิปไม่แอคทีฟ ข้อมูลก็จะเข้าสู่ภาวะที่มีอิมพีแดนซ์สูง

หมวดหมู่:หน่วยความจำคอมพิวเตอร์
หมวดหมู่:หน่วยความจำถาวร
หมวดหมู่:อิเล็กทรอนิกส์
หมวดหมู่:วิศวกรรมไฟฟ้า

## อ้างอิง