Memory를 이해하면 System을 이해하는데엄청좋아요. Memory를모르고는System을이해한다고말하기좀그렇죠. 모든주변 Device들은 Memory와똑같이 Control 가능하다고보시면되니까요. 더정확하고자세한 Memory의 Control에관련해서는 Device Control에 System Architecture의 "Memory Device를 Control한다는것"을읽어보시면더자세하게나올테고요. 기본적인 Memory의동작에대해서얘기해보죠.
Memory는이렇게생겼어요.
Address Pin과 Data pin으로구성되어있고요, 나머지는RD (Read), WR (Write) pin으로구성되어있어요. RD는Memory로부터 Data를읽을때, WR은 Memory에 Data를 Write할때사용하는 pin이고요, A[0]~ A[7]은 Address pin, D[0]~D[7]은 Data pin이에요. Address는개수가 8개니까, 2^8 가지 (각 pin 마다 0 아니면 1을가질수있으니까요) Address를나타낼수있으니까요. 0~ 2^8-1 주소만큼을 Memory가처리할수있는거지요. - 0x0~ 0xFF까지에요, 256 Byte만큼의크기네요 - 메모리마다처리할수는양에따라Address pin의개수가틀려요. 1MB까지처리할수있는녀석은 Address pin이 20개있으면되겠지요. (2^20이 1MB니까요)
Data는 0~7까지 8bit를처리할수있네요. 한번에 Data를담을수있는양이라고보시면되어요. 쓸때도 1 Byte만큼, 읽을때도 1 Byte 만큼을한번에처리할수있는거죠. 그러니까한번에처리가능한양만큼씩이니까꼭 8 bit씩이라고생각하시면곤란해요. 자, 그러면이제 Memory가어떻게동작하는지한번볼까요! 0xAB (10101011)번지의 Data를 Write할때의 Memory 상태는이렇습니다요. WR에 1을주고요, RD에는 0을주는거죠. Write할꺼니까요. 그러면 0xAB번지를 Address pin에주고서요, 쓰고싶은 Data인 0x7C (1111100) 를 Data pin으로주게되면 0xAB번지에 0x7C가써지는거에요.
오호, 간단하죠. 그럼반대로읽을때는어떻게할까요? 0x7C가잘써져있는지확인해보시죠. 또역시간단해요. RD를 1로주고요, WR을 0으로주고요, Address에 0xAB를주게되면, Data pin으로 0x7C가튀어나오게되는것이죠.
오호, 이런거에요. Memory에는이런식으로 Data가저장되고, 읽어드릴수도있는거죠. 여기에서 RD나WR은다른형식으로도 control될수있지만, (이건뒤쪽에더자세히! 나올꺼에요) Address와 Data에관련된건아~ 주~ 똑같으니까, 이것만알아둬도, 오호! Memory란이런거구나하고알수있을것이라생각하고있어요.
댓글