모든 컴퓨터시스템들은 프로그램과 데이터를 저장하기 위한 장치로서 주기억장치(main memory)와 보조 저장장치(auxiliary storage device)를 가지고 있다.
최근 CPU와 기억장치들 간의 속도 차이가 커지고 필요한 저장 용량이 증가함에 따라, 시스템 성능을 향상시키고 가격대성능비(cost vs performance ratio)를 개선하기 위해 다양한 유형의 기억장치들을 시스템에 포함시키고 있다.
기억장치는 CPU가 직접 액세스할 수 있는 내부 기억장치(internal memory)와 장치 제어기(device controller)를 통하여 액세스할 수 있는 외부 기억장치(xternal memory)로 구성된다.
기억장치의 분류와 특성
액세스(access)
- 기억장치에 대한 읽기 및 쓰기 동작
컴퓨터 시스템은 프로그램과 데이터를 저장하기 위하여 기억장치를 가지고 있는데, CPU가 어떤 정보를 기억장치에 쓰거나 기억장치로부터 읽는 동작을 액세스한다고 한다.
기억장치는 제조 공정 재료 및 조직에 따라 액세스하는 방법도 달라진다.
기억장치의 액세스 유형
- 순차적 액세스(sequential access)
- 기억장치에 저장된 정보를 처음부터 순서대로 액세스하는 방식이다.
- 자기 테이프(magnetic tape) 저장장치가 이 방식을 이요하는데, 저장되는 모든 정보는 테이프의 처음 위치에서 시작하여 연속적으로 위치하게 된다.
- 그 내용들은 내부적으로 레코드(record)라고 불리는 정보 단위로 분리되어 저장되고, 각 레코드는 고유의 주소를 가진다.
- 테이프의 전체 내용을 읽거나 쓰는 경우에는 처음부터 시작하면 되지만, 테이프 내 임의의 위치에 저장된 특정 정보를 읽기 위해서는 그 위치에 도달할 때까지 앞부분의 테이프를 모두 통과해야 한다. 따라서 정보가 저장된 위치에 따라 액세스 시간이 달라진다.
- 직접 액세스(direct access)
- 읽기/쓰기 장치를 정보가 위치한 근거로 직접 이동시킨 다음에, 순차적 검색으로 최종 위치에 도달하여 액세스하는 방식
- 이 방식에서도 액세스 시간은 정봉의 저장위치에 따라 가변적이다.
- 자기디스크와 CD-ROM, DVD등이 직접 액세스 방식을 이용하는 저장장치이다.
- 임의 액세스(random access)
- 기억 장소들이 임의로 선택될 수 있으며, 기억장치내의 어떤 위치든 액세스에 걸리는 시간이 동일한 방식
- 어떤 위치든 임의로 선택될 수 있고, 직접 주소지정 되고, 액세스될 수 있다. 결과적으로, 기억장치 내의 어떤 위치를 액세스하든 그에 걸리는 시간이 항상 일정하다.
- 반도체 기억장치들이 임의 액세스 방식을 이용한다.
- 연관 액세스(associative access)
- 각 기억장소에 포함된 키(key)값의 검색을 통하여 액세스할 위치를 찾아내는 방식
- 임의 액세스의 변형으로서, 각 기억 장소에는 키 값에 해당하는 비트들이 데이터와 함께 저장되어 있다.
- 액세스 요구(access request)에는 주소 대신 원하는 비트 패턴이 포함되어 있는데, 그 비트들과 각 기억장소의 위치에 관계 없이 일정하다. 그러나 입력 비트 패턴과 키 값들은 한 개씩 순차적으로 비교하면 시간이 많이 걸리기 때문에, 일반적으로 모든 기억 장소의 키 값들을 동시에 비교할 수 있는 하드웨어를 포함하고 있다.
- 이 유형의 기억장치는 회로가 복잡하고 가격이 매우 높기 때문에 특수한 용도로만 사용된다.
기억 장치 시스템을 설계하는 데 있어서 고려해야 할 주요 특성은 용량(capacity)과 액세스 속도(access speed)이다. 기억장치에서 용량을 나타내는 단위는 바이트(byte : 1바이트 = 8비트) 혹은 단어(word)이다
일반적으로 단어 길이는 8, 16, 32 혹은 64비트인데, 단어의 길이는 CPU가 실행할 명령어의 길이 혹은 내부 연산에서 한 번에 처리할 수 있는 데이터 비트의 수와 같다.
전송단위(unit of transfer)
- 한 번의 기억장치 액세스에 의해 읽거나 쓸 수 있는 비트 수
CPU가 한 번의 기억장치 액세스에 의해 읽거나 쓸 수 있는 비트 수를 전송 단위라 한다. 내부 기억장치에 있어서 전송 단위는 기억장치 모듈로 들어가고 나오는 데이터 선들의 수와 같다.
단어 길이와 같은 경우도 있고, 그렇지 않은 경우도 있다. 외부 기억장치에서는 데이터가 단어보다 훨씬 더 큰 단위로 전송되기도 하는데, 그 단위를 블록(block) 이라고 부른다. 디스크와 같은 대용량 저장장치의 경우에는 블록의 크기가 일반적으로 512바이트 혹은 1K바이트이다. 그러나 외부 기억장치에 접속되는 데이터 버스의 폭은 8비트, 16비트 혹은 32비트이기 때문에, 한 블록을 전송하기 위해서는 여러 번의 전송 동작들이 연속적으로 수행되어야 한다.
주소지정 단위(addressable unit)
- 하나의 주소에 의 해 액세스되는 비트들의 그룹
각 기억장치 위치에는 고유의 주소가 할당되는데, 각 바이트에 대하여 별도의 주소를 지정할 수도 있다. 대부분의 시스템들에서 주소 지정 단위가 바이트이지만, 단어 단위로 주소를 지정하는 시스템들도 있다.
CPU가 발생하는 주소 비트 수 A와 주소지정 될 수 있는 기억 장소들의 수 N과의 관계는 2^A=N이다. 따라서 만약 바이트 단위로 주소를 지정 한다면, 주소지정 될 수 있는 기억장치 용량은 N바이트가 된다. 그런데 단어의 길이가 32비트(4바이트)인 시스템에서 주소를 단더 단위로 지정한다면, A개의 주소 비트들로 주소지정할 수 있는 전체 기억장치 용량은 N단어 , 즉 4N바이트가 된다. 그러나 바이트 단위로 주소를 지정하는 경우에는 필요한 바이트만 별도로 액세스할 수 있다는 장점이 있다.
기억장치 시스템의 다른 주요 특성인 액세스 속도와 관련된 파라미터들
- 액세스 시간(access time)
- 주소와 읽기/쓰기 신호가 기억장치에 도착한 순간부터 데이터가 저장되거나 읽혀지는 동작이 완료될때까지의 시간
- 임의 액세스 기억장치의 경우 액세스 시간이 모든 기억 장소들에 대하여 동일하지만, 순차적 혹은 직접 액세스 기억장치의 경우에는 데이터가 저장되어 있는 위치에 따라 달라진다.
- 기억장치 사이클 시간(memory cycle time)
- 액세스 시간과 데이터 복원(data restoration) 시간을 합한 시간
- 이 시간은 액세스 시간과 다음 액세스를 시작하기 위해 필요한 동작에 걸리는 추가적인 시간을 합한 시간이다. 여기서 추가적인 시간이란 읽기 동작 후에 정보가 소멸되는 저장장치인 경우에 그것을 복원시키는데 걸리는 시간을 말한다.
- 과거에 사용되던 자기 코어(magnetic core)나 최근에 개발되고 있는 FRAM은 읽기 동작 후에 내용이 지워지며, 자동적으로 다시 복구되지만 일정 시간이 소요된다. 그러나 반도체 기억장치나 디스크와 같은 최근의 저장장치들은 내용이 지워지지 않기 때문에 액세스 시간과 사이클 시간이 같다.
- FRAM : 강유전체라고 부르는 물질의 특성을 이용하여 제조되는 반도체 기억장치이다.
- 데이터 전송률(data transfer rate)
- 기억장치로부터 초당 읽혀지거나 쓰여질 수 있는 비트 수를 말한다. 따라서 이것은 (1/액세스 시간) x (한 번에 읽혀지는 데이터 바이트의 수)에 의해 구할 수 있다.
- ex) 어떤 RAM 모듈의 액세스 시간이 100ms이고, 한 번에 32비트씩 읽혀진다면,
데이터 전송률은 {1/(100 x 10^-9)} x (32 / 8) = 40[MBytes/sec]가 된다.
기억장치는 제조에 사용되는 물리적인 재료들에 의해 분류될 수 있다. 그들중에서 오늘날 가장 널리 사용되고 있는 세 가지 유형은 LSI 또는 VLSI 기술을 이용하는 반도체 기억장치(semiconductor memory)와 디스크 및 테이프와 같이 자력을 이용하는 자기-표면 기악장치(magnetic-surface memory), 그리고 레이저광을 이용하는 광 저장장치(optical storage device)이다.
기억장치 데이터를 저장하는 성질에 따라 두 가지 유형으로 나눌 수 있다.
- 휘발성 기억장치(volatile memory)
- 전력공급이 중단되면 저장된 내용이 사라지는 기억 장치
- 비휘발성 기억장치(nonvolatile memory)
- 전력공급이 중단되어도 저장된 내용이 그대로 유지되는 기억장치
Reference
컴퓨터 구조론 개정 5판