Bộ nhớ chỉ đọc (ROM) là một loại bộ nhớ không thể thay đổi được được sử dụng trong máy tính và các thiết bị điện tử khác. Dữ liệu được lưu trữ trong ROM không thể được chỉnh sửa điện tử sau khi sản xuất. ROM hữu ích cho việc lưu trữ phần mềm hiếm khi thay đổi trong vòng đời của hệ thống, đôi khi được gọi là phần mềm nhúng (firmware). Các ứng dụng phần mềm cho các thiết bị điện tử có thể được phân phối dưới dạng các bản sao không thể thay đổi của ROM (ROM trò chơi điện tử).
Bộ nhớ chỉ đọc có thể được lập trình xóa (EPROM) và bộ nhớ chỉ đọc có thể được lập trình xóa bằng điện (EEPROM) có thể được xóa và lập trình lại, nhưng thường chỉ có thể được thực hiện ở tốc độ chậm, có thể cần thiết bị đặc biệt để thực hiện, và có thể chỉ được sửa đổi một số lần nhất định.
Thuật ngữ 'ROM' đôi khi được sử dụng để chỉ một thiết bị ROM có chứa phần mềm hoặc một tệp có chứa phần mềm được lưu trữ trong EEPROM hoặc Bộ nhớ Flash. Ví dụ: Người dùng sửa đổi hệ điều hành Android gọi các tệp chứa hệ điều hành đã sửa đổi là 'ROM tùy chỉnh' (Custom ROM).
Các loại ROM

ROM được sử dụng để lưu trữ chương trình BIOS.
Mọi chương trình được lưu trữ có thể sử dụng một dạng lưu trữ cố định trên ROM (nghĩa là dữ liệu của nó không bị mất khi bị ngắt nguồn) để lưu trữ chương trình ban đầu khởi chạy khi máy tính được bật hoặc bắt đầu thực thi (một quá trình được gọi là khởi động, thường được viết tắt là 'booting' hoặc 'booting up').
Các loại bộ nhớ chỉ đọc được sử dụng làm bộ lưu trữ không mất dữ liệu cho các chương trình trong hầu hết các máy tính, ví dụ như ENIAC từ năm 1948. Bộ nhớ chỉ đọc thực hiện điều này đơn giản hơn bởi vì nó chỉ cần một cơ chế để đọc các giá trị được lưu trữ và không thay đổi chúng, do đó có thể được thực hiện với các thiết bị điện tử thô (xem các ví dụ lịch sử bên dưới). Với sự ra đời của mạch tích hợp vào những năm 1960, cả ROM và RAM có thể thay đổi đã được triển khai dưới dạng các mảng bóng bán dẫn trong vi mạch silicon; tuy nhiên, một ô nhớ ROM có thể được sản xuất bằng ít bóng bán dẫn hơn so với một ô nhớ SRAM. Do đó, ROM có thể được sản xuất với chi phí thấp hơn so với RAM trong nhiều năm.
Hầu hết các máy tính gia đình của những năm 1980 đã lưu trữ một trình thông dịch BASIC hoặc hệ điều hành trong ROM vì các hình thức lưu trữ không mất dữ liệu khác như ổ đĩa từ là quá tốn kém. Ví dụ, Commodore 64 bao gồm 64 KB RAM và 20 KB ROM chứa trình thông dịch BASIC và 'kernel' (hạt nhân) của hệ điều hành. Các máy tính gia đình hoặc văn phòng sau này như IBM PC XT thường bao gồm các ổ đĩa từ và dung lượng RAM lớn hơn, cho phép chúng tải hệ điều hành từ ổ cứng vào RAM, chỉ còn một chương trình khởi động phần cứng tối thiểu trong ROM (được gọi là BIOS trong các máy tính tương thích IBM). Cơ chế này cho phép chạy các hệ điều hành phức tạp hơn và dễ dàng nâng cấp hơn.
Trong các thiết bị PC hiện đại, 'ROM' (hoặc flash) được dùng để lưu trữ phần cứng khởi động (firmware) cơ bản cho bộ xử lý chính, cũng như các firmware khác cần thiết để điều khiển các thiết bị độc lập như card đồ họa, ổ cứng, ổ đĩa DVD, màn hình, v.v.. trong hệ thống. Ngày nay, nhiều bộ nhớ 'chỉ đọc' này - đặc biệt là BIOS - thường được thay thế bằng bộ nhớ Flash (xem bên dưới), để cho phép lập trình lại khi cần nâng cấp firmware. Tuy nhiên, các hệ thống phụ đơn giản (chẳng hạn như bàn phím hoặc một số bộ điều khiển giao tiếp trong các mạch tích hợp trên bo mạch chính chẳng hạn) có thể sử dụng ROM (lập trình một lần).
ROM và các công nghệ kế thừa như flash rất phổ biến trong các hệ thống nhúng. Chúng xuất hiện trong mọi thứ, từ robot công nghiệp đến thiết bị gia dụng, điện tử tiêu dùng và IoT internet vạn vật (máy nghe nhạc MP3, hộp giải mã set-top-box, v.v.) tất cả được thiết kế cho các chức năng cụ thể, nhưng dựa trên bộ vi xử lý đa năng. Với phần mềm thường được tích hợp sát vào phần cứng, các thay đổi chương trình hiếm khi cần thiết trong các thiết bị đó (thường không trang bị ổ cứng vì lý do chi phí, kích thước hoặc mức tiêu thụ điện năng). Kể từ năm 2008, hầu hết các sản phẩm đều sử dụng Flash thay vì ROM và nhiều sản phẩm cung cấp một số cổng để kết nối với PC cho phần sụn (firmware) cập nhật; ví dụ, trình phát âm thanh kỹ thuật số có thể được cập nhật để hỗ trợ định dạng tệp mới. Một số người đã tận dụng tính linh hoạt này để lập trình lại các sản phẩm tiêu dùng cho mục đích mới; ví dụ, các dự án iPodLinux và OpenWrt đã cho phép người dùng chạy các bản phân phối Linux đầy đủ tính năng trên máy nghe nhạc MP3 và bộ định tuyến không dây của họ.
ROM cũng hữu ích cho việc lưu trữ dữ liệu mật mã, vì nó khiến chúng khó thay đổi, điều này có thể được sử dụng để tăng cường bảo mật thông tin.
Sử dụng để lưu trữ dữ liệu
Vì ROM không thể được sửa đổi (hoặc khó sửa đổi), nên nó chỉ phù hợp để lưu trữ dữ liệu mà dự kiến sẽ không cần sửa đổi nhiều trong suốt vòng đời của thiết bị. Cuối cùng, ROM đã được sử dụng trong nhiều máy tính để lưu trữ các bảng tra cứu để đánh giá các hàm toán học và logic (ví dụ: một đơn vị dấu phẩy động có thể lập bảng hàm sin để tạo điều kiện tính toán nhanh hơn). Điều này đặc biệt hiệu quả với CPU chậm và ROM rẻ hơn so với RAM.
Đáng chú ý, bộ xử lý hình ảnh màn hình của các máy tính ban đầu lưu trữ các bảng ký tự phông chữ bitmap trong ROM. Điều này thường có nghĩa là phông chữ hiển thị văn bản không thể thay đổi tương tác. Đây là trường hợp cho cả bộ điều hợp CGA và MDA có sẵn với IBM PC XT.
Việc sử dụng ROM để lưu trữ một lượng nhỏ dữ liệu như vậy đã biến mất gần như hoàn toàn trong các máy tính đa năng hiện đại. Tuy nhiên, Flash ROM đã đảm nhận vai trò mới là phương tiện để lưu trữ hàng loạt hoặc lưu trữ thứ cấp các tệp.
- PROM (Programmable Read-Only Memory) hay Mask ROM: Bộ nhớ chỉ đọc có thể lập trình (PROM) hoặc ROM lập trình một lần (OTP), có thể được ghi vào hoặc lập trình lại thông qua một thiết bị đặc biệt gọi là lập trình PROM. Thông thường, thiết bị này sử dụng điện áp cao để phá hủy vĩnh viễn hoặc tạo các liên kết bên trong (cầu chì hoặc antifuses) trong chip. Do đó, một PROM chỉ có thể được lập trình một lần.

- EPROM (Erasable Programmable Read-Only Memory): Bộ nhớ chỉ đọc có thể lập trình lại (EPROM) bằng cách tiếp xúc với ánh sáng cực tím mạnh(thường trong 10 phút hoặc lâu hơn), sau đó viết lại với quy trình cần điện áp cao hơn thông thường. Tiếp xúc nhiều lần với tia UV cuối cùng sẽ làm hao mòn EPROM, nhưng độ bền của hầu hết các chip EPROM đều đạt 1000 chu kỳ xóa và lập trình lại. Các chip EPROM thường có thể được phân biệt bởi 'cửa sổ' cho phép ánh sáng UV đi vào. Sau khi lập trình, cửa sổ thường được phủ nhãn bảo vệ để ngăn việc xóa do vô tình. Một số chip EPROM được lập trình tại nhà máy trước khi chúng được đóng gói và không bao gồm cửa sổ.
Một loại phổ biến hiện nay là Bộ nhớ flash, thường được gọi đơn giản là Flash, được sử dụng như EEPROM và trong ổ USB flash.
- RAM
- Bộ nhớ flash
- CD-ROM