CS/컴퓨터 구조론

컴퓨터 구조론 5장 [기억장치- 기억장치 모듈]

devrabbit22 2025. 3. 31. 11:09
  • 주기억장치를 구성하는 ROM과 RAM은 각 칩 당 저장할 수 있는 용량에 한계가 있다.
  • 원하는 만큼의 기억장치 용량을 가지도록 하기 위해서는 여러 개의 칩들을 사용해야 한다.
  • 칩의 각 기억 장소에 저장되는 비트 수가 일반적으로 단어의 길이보다 적기 때문에, 한 번에 한 단어식 액세스할 수 있도록 하기 위해서는 여러 개의 칩들을 병렬로 접속해야 한다.

컴퓨터의 단어 길이가 N 비트이고 기억장치 칩의 데이터 입출력 비트 수가 B개일 때, 한 번에 한 단어씩의 데이터 액세스가 가능하도록 하기 위해서는 N/B개의 칩들로부터 동시에 B비트씩 액세스 할 수 있어야 한다. 그렇게 하기 위해서는 기억 장치 칩들을 병렬로 접속해야 한다.

ex) 단어 길이가 8비트인 컴퓨터에서 두 개의 16 x 4bit RAM 칩들을 이용하여 기억장치를 구성한다면, 그 칩들을 병렬로 접속하여 한 번에 8비트씩 읽기/쓰기가 가능하도록 해야 한다. 병렬접속을 위해서는 모든 주소비트들(A3~A0)을 두 칩에 공통적으로 인가하며, 칩 선택(Chip select : CS) 신호도 같은 것을 접속한다.

두 개의 RAM 칩들을 병렬접속한 예

두 RAM 칩에서 동일한 위치에 있는 기억 장소들에게 같은 주소가 배정된다. 즉, 이 예의 겨우에 두 칩의 첫 번째 기억장소들에게 모두 '0000' 번지가 배정되며, 다음 기억 장소에는 '0001', ..., 그리고 마지막 기억 장소에는 '1111' 번지가 배정된다. 결과적으로, 전체 주소 영역은 0000~1111번지가 된다.

RAM1의 데이터 입출력 선들은 상위 데이터 버스 선들(D7~D4)과 접속한다.

RAM2의 데이터 선들은 하위 데이터 버스 선들(D3~D0)과 접속한다.

이와 같이 구성하게 되면, 어떤 한 기억 장소가 선택되었을 때 각 칩에서 4비트씩, 전체적으로 8-비트 데이터가 동시에 입력 혹은 출력된다.

1K x 8bit RAM들을 이용한 1K x 32bit 기억장치 모듈의 설계

단어 길이가 32비트인 컴퓨터의 기억장치 모듈을 내부 조직이 1K x 8비트인 RAM 칩들을 이용하여 구성한다고 가정

  • 각 읽기/쓰기 동작 때마다 32비트씩의 데이터가 액세스되는 기억장치 모듈을 칩당 8비트씩 입출력되는 RAM들을 이용하여 설계한다.
  • 그와 같은 모듈을 설계하기 위해서는 32/8=4개의 RAM 칩들을 병렬로 접속하면 된다.
  • 그렇게 접속하면, 모듈 내의 모든 칩들에 같은 주소를 가진 기억장소들이 한 개씩 존재하게 된다. 이 경우에 각 주소에 저장될 32비트 데이터 중에서 최상위 8비트(D31~D24)는 맨 좌측 칩에 저장하고, 그 다음 칩들에 순서대로 D23 ~D16, D15~8 그리고 맨 우측 칩에 최하위 비트들인 D7~D0를 각각 저장하면된다.
  • 각 단어의 길이는 4바이트이므로, 기억장치의 전체 용량은 (1K~8bit) x 4개 = 32Kbit = 4KByte = 1Kword가 된다. 
  • 10개의 주소 선들(A9~A0)이 모든 칩들에 공통으로 연결되기 때문에 칩들의 같은 위치에 있는 기억장소들은 동일한 주소를 가지게 되는 것이다.
  • 따라서 어떤 주소가 인가되면 그 주소에 해당하는 기억 장소가 네 개의 RAM 칩들에 모두 존재하기 때문에, 각 칩 당 8bit씩 전체 32-bit 단어에 대한 쓰기(혹은 읽기) 동작이 한 번에 수행될 수 있는 것이다.

주소 영역을 보면 모든 칩들의 첫 번째 기억장소는 0번지이며, 마지막 기억 장소의 주소는 3FFH번지이다.(여기서 3FF는 10비트의 2진수 비트 배열인 '1111111111'을 4비트씩 묶어서 각각 16진수로 변환한 표현이며, H는 앞의 숫자들이 16진수라는 것을 가리키는 표기이다.)

직렬 접속을 이용하여 기억 장소의 수를 확장하는 방법

두 개의 RAM 칩들을 직렬접속한 예
1K x 8bit RAM을 이용한 4K x 8bit 기억장치 모듈의 구성

  • 기억장치 모듈의 전체 기억 장소 수는 4K = 2^12 - 4096개가 되므로, 주소 비트는 12개가 필요하게 된다. 
  • 각 RAM 칩에는 1024개씩의 기억 장소들이 존재하므로, 주소의 하위 10비트는 모든 칩들에 공통으로 접속해야 한다.
  • RAM 칩의 수가 모두 네 개이므로, 그들을 구분하기 위한 칩 선택(CS) 신호를 그 수만큼 발새해야 한다. 따라서 주소 비트들 중에서 최상위 두 비트들(A11, A10)을 2 x 4 해독기로 네 개의 CS 신호들을 발생시킨다. 그리고 해독기의 첫 번째 출력은 RAM1의 CS 입력으로 연결하고, 두 번째 출력은 RAM2, 세 번째 출격은 RAM3 그리고 네 번쨰 출력은 RAM4로 각각 연결한다.

각 RAM에 지정되는 주소 영역

표에서 H는 16진수(hexadecimal)라는 것을 가리킨다.

병렬 접속과 직접 접속을 조합하면 더 큰 용량의 기억장치 모듈도 설계할 수 있다.

ROM과 RAM들로 구성된 주기억장치를 가진 간단한 마이크로 컴퓨터 설계 순서

  1. 컴퓨터에 필요한 전체 기억장치 용량을 결정한다.
  2. 사용가능한 칩들을 조사하고, 그들에 대한 주소 표(address table : address map이라고도 함)를 작성한다.
  3. 세부적인 회로를 설계한다.

ex) 단어 길이가 8bit이고, 1KByte의 ROM과 2KByte의 RAM으로 구성된 주기억장치를 가지는 마이크로 컴퓨터

8- bit 마이크로컴퓨터를 위한 기억장치 설계

시스템 초기화 및 OS 프로그램이 저장되는 ROM들의 주소는 0번지부터 시작하고, RAM의 주소는 800H번지부터 시작하도록 한다. 그리고 사용할 수 있는 칩들로는 네 개의 512 x 8bit RAM들과 한 개의 1K x 8bit ROM이 있다고 가정한다.

이러한 구성의 기억장치 주소 표

기억장치 주소 표

여기서 x는 0이나 1 중의 어느 값이든 가질 수 있다는 표시이다.

ex) RAM1의 경우 하위 9비트 모두가 0이면 첫 번째 기억 장소의 주소가 되고, 모두 1이면 마지막 기억 장소의 주소, 그리고 0과 1이 조합된 주소들은 그 사이의 다른 기억 장소들의 주소가 된다.

  • 여기서 주소 영역(16진수)들은 각 칩에 할당되는 시작 주소와 마지막 주소를 표시해주고 있다.
  • CPU로부터 발생되는 주소는 모두 16비트이지만, 이 용량의 기억장치시스템에 주소를 지정하기 위해서는 그 주소 비트들을 모두 사용할 필요는 없다. 먼저, ROM의 용량은 1KByte이므로 10개의 주소 비트들(9~A0)이 입력되어야 한다.
  • 반면에 각 RAM 칩은 용량이 512바이트이기 때문에 주소가 9비트이면 되지만, 전체 RAM 용량은 2KByte이므로 11비트의 주소가 필요하다. 
  • 주소의 상위 두 비트(A10, A9)는 네 개의 RAM 칩들을 구분하는데 사용된다.

8-비트 CPU를 위한 기억장치 설계의 예

유의할 사항

  • 각 칩이 칩 선택 신호를 두 개씩 (CS1, CS2)가지고 있으며, CS1은 1일 때 활성화되고 CS2는 0일때 활성화 된다는 점이다.
  • 이 신호들을 적절히 이용하면 칩 선택 회로를 간략화 시킬 수 있다. 
  • ROM은 A11 = 0일 때 선택되고 RAM은 A11=1일 때만 선택된다.
  • 따라서 A11을 ROM 칩의 CS2와 RAM칩의 CS1로 각각 연결하고, 인버터를 통과시킨 다음에는 ROM의 CS1으로 접속한다면, ROM은 별도의 해독기 없이도 RAM과 구분되어 칩 선택이 가능해진다.
  • 네 개의 RAM들에 대한 각각 구분은 두개의 주소 비트들(A10, A9)에 의해 이루어진다. 
  • 그 두 비트를 2 x 4해독기로 입력시켜 네 개의 출력들을 발생하고, 그들을 각 칩의 CS1 신호로 사용하고 있다(여기서 해독기의 출력에 버블(o)이 표시되는 것은 active-low 라는 의미로서, 선택된 출력의 값은 0이 되고 선택되지 않은 출격은 1이 된다.) 
  • 그 결과, A10A9 = '00'이면 첫 번째 RAM이 선택되고 '01'이면 두 번째 RAM, '10'이면 세 번째 RAM, '11'이면 네 번째 RAM이 각각 선택된다.
  • CPU로부터 발생되는 RD 및 WR 신호도 일반적으로 active-low 신호이며, 모든 RAM 칩들로 연결되어 읽기 혹은 쓰기 동작을 선택해준다. 그리고 ROM 칩으로는 RD 신호만 연결함녀 된다.
  • 모든 기억장치 칩들의 데이터 입출력 선들이 8개씩이므로, 그들은 모두 데이터 버스에 공통적으로 연결된다.

Reference

컴퓨터 구조론 개정 5판

https://yz-zone.tistory.com/85

 

[ 컴퓨터구조 ] 5.4 기억장치 모듈의 설계

기억장치 모듈의 설계 ▣ 기억장치 모듈이란? ▪기억장치 칩의 데이터 I/O 비트 수가 컴퓨터의 단어 길이보다 적은 경우 ➔여러 개의 칩들을 병렬로 접속하여 기억장치 모듈을 구성 (한 번에 한

yz-zone.tistory.com