ROM은 RAM의 구성과 비슷한 형태지만 쓰기 동작을 하지 않으므로 더 간단한 구조를 갖는다. 주소를 입력해 데이터를 읽을 위치를 결정하는 주소 디코더가 존재하고 이것이 기억장치의 배열과 연결되어 있다. [ 그림 7-32 ]는 ROM의 구성에 대한 블록도다. N개의 입력 선은 디코더에 의해 2의 n승 개의 주소가 존재하며, 이것은 2의 n승개의 워드가 존재하는 것과 동일한 의미다. 기억장치 배열에서 워드의 길이는 M비트이고 이것이 출력 비트가 된다.

[ 그림 7-32 ]

RAM에서는 D 플립플롭으로 구성된 기억소자들의 배열을 형성해서 기억장치를 만들지만 ROM에서는 플립플롭 대신 OR 게이트의 연결 관계를 통해서 기억장치 배열을 형성한다. ROM에 저장된 데이터는 OR 게이트의 고정된 연결로 표현되고, 이것은 변경이 불가능해서 항상 동일하게 출력된다. 결과적으로 읽기만 가능하고 비휘발성인 ROM의 특성을 잘 만족한다. 여기서 OR 게이트의 수는 ROM의 출력 선 수와 동일하다 [ 그림 7-33 ] 은 ROM의 회로도를 나타낸 것으로 5비트의 주소 입력 선이 존재하므로 32(=2의5승)개의 워드가 존재하며, 출력은 4비트의 2진 데이터를 출력한다. 이때 출력값 F1, F2, F3, F4는 OR 게이트 입력과 각 워드 간의 연결에 따라서 결정된다. RAM과 비교해 ROM에서는 쓰기 동작이 없으므로 입력단자가 존재하지 않는 것을 확인할 수 있다.(RAM에서 R/W의 단자가 없다)

[ 그림 7-34 ]는 2 X 4 ROM의 내부 조직을 나타낸 것이다. 워드의 길이는 3비트이고 네 개의 워드가 존재하며, 출력은 3비트다. A0A1 = 00이면 D0가 선택되고 출력 F0F1F2는 101이 된다. A0A1=01이면 D1이 선택되고 출력 F0F1F2는 011이 된다. 마지막으로 A0A1=11이면 D3이 선택되고 출력F0F1F2는 111이 된다.

[ 그림 7-34]

[ 표 7-1 ]은 [그림 7-34]의 진리표다.