c, Liên kết thông qua stack
7.5. Bộ nhớ ROM – Read Only Memory
Khi chương trình nạp vào bộ nhớ, nó sẽ tồn tại trong bộ nhớ cho đến khi bị ghi
đè hoặc cho đến khi nguồn điện cung cấp cho hệ thống bị ngắt. Trong một số ứng dụng, chương trình không thay đổi trong suốt quá trình hoạt động, chương trình sẽ được ghi vào bộ nhớ chỉ đọc ROM (Read Only Memory). ROM thường
được sử dụng để lưu chương trình trong các máy chơi game, máy tính, điện thoại,...
ROM là một chip được cấu tạo rất đơn giản. Tất cả cần có chỉ là một bộ giải mã, vài đường tín hiệu đầu ra và một vài cổng logic, không cần bất cứ một flip-flop hay một tụđiện nào cả. Hình 7.10 bên trái là một bộ nhớ ROM lưu trữ 4 từ độ
rộng 4 bit (0101, 1011, 1110 và 0000). Mỗi một địa chỉ vào (00, 01, 10, 11) tương ứng với một địa chỉ lưu trữ. Hình 7.10 bên phải là một cách thể hiện nữa của ROM với cấu tạo từ các diode bán dẫn.
Để mở rộng ứng dụng của mình, ROM cần lập trình được. Nhu cầu này dẫn tới sự xuất hiện của PROM (Programmable ROM), cho phép người dùng ghi nội dung một lần bằng thiết bị có tên ROM bunner
PROM có nhược điểm là chỉ cho phép ghi nội dung 1 lần, do đó xuất hiện thêm ROM cho ghi dữ liệu vào phần chưa ghi, EPROM (Erasable PROM). Tiếp đó là sự xuất hiện của ROM cho phép xóa dữ liệu bằng tia cực tím UVPROM (Ultraviolet PROM) và ROM xóa dữ liệu bằng điện EEPROM (Electrically Erasable PROM)
Một ứng dụng khác của ROM được trình bày tiếp theo đây là bộ ALU cho phép toán đơn giản. Giả sử ta cần xây dựng một bộ ALU có thể thực hiện được 4 phép toán: cộng, trừ, nhân và chia với các toán hạng 8 bit. Ta sẽ tạo ra một bảng chân lý có tổng số trạng thái đầu ra là 216 và 22 trạng thái điều khiển. Sau đó ta sẽ nạp bảng trạng thái vào ROM. Kết quả thể hiện trên hình 7.11.
Hình 7.11. Ứng dụng ROM để tạo thành một ALU đơn giản
Lúc đó, các tín hiệu địa chỉ được sử dụng để làm nơi nhập các toán hạng A và B và các tín hiệu điều khiển để thực hiện phép toán. Chú ý rằng các kết quả phép toán tương ứng với các tín hiệu điều khiển đã được nạp sẵn trên ROM