Address Decoder와 RAM 디지털

#9. 읽기. 쓰기. 찾기

아주 넓은 백지가 있다. 우리에겐 백지에 무언가를 그릴 수 있는 펜이 있고, 내가 그린것을 읽을 수 있는 눈과 지적 능력이 주어져 있다. 그래서 우리는 넓디 넓은 백지에 이것저것 글을 쓰기도 하고 그림을 그리기도 한다. 때로는 필요한 메모나 사랑하는 애인의 전화번호 등을 적어 놓기도 한다. 하지만 문제가 발생했다. 적어 놓기는 했는데 넓은 백지 어느 부분에 적어놨는지 찾을 수가 없다. 어떻게 해야 찾을 수 있을까?

방법을 생각해 보자. 먼저 넓은 백지를 동일한 크기의 면적으로 나눈다. 편의상 사각형 모양으로 생각하자. 그런 다음 각각 사각형에 번호를 매긴다. 역시 편의상 사각형 1000개 만큼의 크기를 가지는 백지라고 하자. 그러면 우리가 찾고자 하는 내용은 사각형 0번 부터 999번 사이 중 어떤 것 위에 있을 것이다.  이제 우리는 필요한 내용이 어디 있는지 백지 위에서 찾으면 된다. 애인의 전화 번호는 사각형 235번에 있다. 사각형 235번으로 가서 번호를 보면 된다.

램에서 데이터를 특정 주소에 쓰거나, 특정 주소에서 읽어오는 방식도 위와 다를 바 없다. 지난 이야기에서 말했던 1비트를 저장할 수 있는 소자(셀(cell)이라고 표현하기도 한다.)를 수 천만개 연달아 붙여 놓고 이들을 몇개씩 묶어서 거기에 번호를 매겨놓은 다음 해당 번호로 접근해서 소자에 0이나 1을 넣는 것이다. 읽어 올 때도 마찬가지로 해당 번호에 접근해서 출력을 읽는 것이 전부다. 이렇게 소자 몇개를 묶어 놓은 것을 보통 메모리 주소라고 부른다. 일반적으로 메모리 주소는 소자 8개를 묶어서 하나로 관리한다. 1비트 8개는 1바이트다. 정말 특별한 용도의 메모리가 아닌 이상 대부분의 매모리는 1바이트 단위로 메모리 주소가 매겨져 있다.

1KB 짜리 메모리는 이 메모리 주소가 0부터 1023까지 있다는 것이고, 1비트를 저장할 수 있는 메모리 소자는 8192개 있다는 말이다.

잠시 지난 번 이야기를 떠 올려 보자. 지난 번에는 8비트짜리 메모리를 만들었다. 그리고 8비트 메모리에 값을 넣기 위해 각 D 플립플롭마다 스위치를 연결해서 개별적으로 값을 입력했다. 지난 번 처럼 만든 다면 16비트짜리 메모리를 만들 경우 16개의 스위치가 필요하다. 그럼 위에서 말한 1KB의 메모리를 만든다면 스위치가 8192개 필요하게 된다. 하지만 위에서처럼 메모리 소자를 8개씩 묶어서 주소를 부여하게 되면 메모리를 8개씩 묶인 주소 단위로 제어할 수 있기 때문에 입력 스위치가 8개만 있어도 8192개의 D 플립플롭에 모두 값을 쓸 수 있다. 그리고 읽는 단위도 1바이트 씩이기 때문에 8개의 램프만 있으면 8192개의 D 플립플롭에 있는 값을 모두 읽을 수 있다. 물론 8192개의 D 플립플롭 값을 한 번에 표시할 순 없고 순서대로 8개씩 읽을 수 있을 뿐이다.

그것이 가능하기 위해서는 D 플립플롭 회로를 조금 수정해야 한다.


위 그림을 보면 기본적인 D 플립플롭 회로에 선택 단자와 입/출력 단자가 추가되었고 Q 출력도 그냥 출력되는 것이 아니라 추가된 신호를 묶어서 3-input-AND 게이트로 연결되어 있다. 그리고 이 회로를 역시 간단하게 네모 하나로 표현해서 오른쪽처럼 표현하겠다.

이제 저 회로는 D 플립플롭도 아니므로 메모리 셀(cell)이라고 표현하겠다. 선택 단자와 입/출력 단자를 제외하면 기본적인 D 플립플롭의 동작을 그대로 수행한다. 다만 선택 단자의 신호가 입력 단자와 함께 3-input-AND 게이트를 통해 RS 플립플롭의 S, R 입력으로 들어가므로 선택 단자가 1일 때만 이 메모리 셀은 값을 입력할 수 있다.

더 자세한 이야기는... http://raonlife.com/navilera/blog/view/20/ 를 방문하세요.












트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://maanu.egloos.com/tb/3342656 [도움말]

핑백

덧글

  • 달란트 2009/10/21 19:23 # 삭제 답글

    확인해 보세요//
    맨 마지막 문단에서
    "전자석과 스위치로 릴레이 스위치로 트랜지스터를 만들고 ..."
    ->"전자석과 스위치로 릴레이, 트랜지스터를 만들고..."
    "스위치로"가 혹시 빠져야 되는 건지...
    잘 읽었습니다. 컴퓨터가 쉬고 있어도 전기를 얼마나 소모하는 지 감이 오네요. 메모리에 값이 있다는 것만으로 엄청난 피드백 들이...(혹시 이건 공짜인가요?)
  • 나빌레라 2009/10/21 19:47 #

    감사합니다. 오타네요...^^;
    수정했습니다.
    메모리란건 참.. 없어서는 안될 녀석이죠...^^
  • michael 2011/10/24 18:17 # 삭제 답글

    잘 보았습니다.
    현업에서 일하는 중인데 이렇게 이해가 쏙쏙되게 만들어진 자료는 처음 보내요.
    DRAM의 구조를 이해하기 위한 여행중입니다. 이제 다음 글이내요. 기대됩니다.
댓글 입력 영역



목차

목차

블로그의 내용은 현재 출판 계약되어 있습니다. 내용 아래에 저작권도 명시되어 있지만 함부로 퍼 가시면 정말 큰일납니다.
그리고 나중에 책 나오면 꼭 한 권씩 사 주세요~감사합니다.