메모리는 이렇게 생겼다.
Address pin과 Data pin (이 둘이 서로 따로 존재한다는 것을 기억하자! 이게 중요하다!)으로 구성되어 있다.
RD(Read) pin : memory로부터 data를 읽을 때 사용
WR : write 할 때
A[0]~[7] : Addresss pin이며 8개니까 2^8개의 주소를 가리킬 수 있다. 0x0~0xFF
D[0]~[7] : Data pin이며 각 주소당 몇 칸의 데이터를 저장할 수 있느냐이다. 이 메모리에서 주소 하나로 가리킬 수 있는 데이터 량은 8bit (1byte)임을 알 수 있다.
그럼 이 메모리에 담을 수 있는 총 데이터의 크기는 주소의 크기 x 주소 하나당 데이터 크기 이니까 2^8 x 8 bit = 2^8 Byte = 256 Byte가 된다.
본격 memory write 예제!
0xAB (10101011) 주소번지에 0x7C (11111100) 이라는 data를 write할 때 메모리 상태는 어떻게 될까? WR에 1, RD에는 0을 주고 A와 D 비트에 각각 앞서 얘기한 것들을 주면 된다.
반대로 읽을 때는 RD에 1을 주고, WR에는 0을 주고 주소비트를 data pin에서 data가 뿜어져 나온다. 끝.