컴퓨터에서 p/g과 data를 저장하기 위한 기억장치 : 주기억장치, 보조기억장치.
[최근동향] CPU와 기억장치들 사이의 속도격차가 커지고 요구되는 저장용량이 증가함.
=> 시스템 성능 향상과 가성비를 개선하기 위해, 다양한 기억장치를 시스템에 포함시키고 있음.
기억장치에는...
① 내부기억장치(internal memory) :CPU가 직접 접속 (5장)
② 외부기억장치(external memory) : 장치 제어기를 통해 접속 (6장)
5장에서는, 내부기억장치에 대해 알아보자.
액세스(access, 접속) : CPU가 어떤 정보를 기억장치에 쓰거나 읽는 동작.
기억장치는 제조공정, 재료 및 성질 등에 따라 액세스 방법이 다름.
기억장치의 액세스 유형
① 순차적(sequential) 액세스 : 기억장치에 저장된 정보들을 처음부터 순서대로 액세스함.
= 저장되는 모든 정보는 테이프의 처음 위치에서 시작하여 연속적으로 위치. ex.) 자기 테이프
= 그 내용들은 내부적으로 레코드 단위로 분리되어 저장되고 각 레코드는 고유주소를 가짐.
= 순차적으로 접근하므로 정보가 저장된 위치에 따라 액세스 시간이 달라짐.
= 개인용으로 사용되지 않으며, 기업이나 데이터 센터 등에서 백업용(안전성, 용량)으로 사용됨.
② 직접(direct) 액세스 : 읽기/쓰기 장치가 각 레코드(혹은 블록) 근처로 직접 이동한 후에 순차적으로 검색하여 최종 위치에 도달. (자세한 내용은 6장에서...)
=> ∴ 액세스 시간이 정보의 저장위치에 따라 달라짐. ex.) 자기 디스크, CD-ROM, DVD 등
③ 임의(random) 액세스 : 기억장치 내의 모든 저장장소는 고유의 주소를 가지며 별도의 읽기/쓰기 회로를 가짐. ex.) 반도체 기억장치
=> ∴ 기억장치 내의 어떤 위치든 임의로 선택될 수 있으며, 액세스에 걸리는 시간이 동일함.
④ 연관(associative) 액세스 : 임의 액세스의 변형으로 각 기억장소에 포함된 키(key)값의 검색을통해 액세스할 위치를 찾아내는 방식.
=> 킷값의 비교에 걸리는 시간은 기억장소의 위치에 관계없이 일정.
=> 보통, 모든 기억장소의 킷값을 동시에 비교할 수 있는 h/w를 포함하고 있으므로 회로가 복잡하고 가격이 고가임.
∴ 특수용도로만 사용됨.
※ 기억장치를 설계할 때 고려해야 할 주요 사항 : 용량(capacity), 액세스 속도
저장용량의 단위 : 바이트(byte, 1byte = 8bit) 혹은 단어(word)인데, 일반적으로 단어의 길이는8/16/32/64bit인데, 실행할 명령어의 길이나 내부 연산에서 한 번에 처리 가능한 data bit 수임.
전송단위(unit of transfer) : CPU가 한 번의 기억장치 액세스에서 읽거나 쓸 수 있는 bit 수.
= 내부 기억장치의 전송단위 : 기억장치 모듈로 연결된 data 선의 수와 같음. (단어 길이와 무관)
= 외부 기억장치의 전송단위 : data가 단어보다 큰 단위로 전송되기도 하는데, 그 단위를 블록(block)이라고 함. 예를 들어, 디스크의 경우에 블록의 크기는 512byte 혹은 1Kbyte.
=> 그러나 외부 기억장치에 접속되는 data bus의 폭은 8/16/32 bit이므로 한 블록을 전송하기 위해서는 여러 번의 전송동작이 수행되어야 함.
주소지정 단위(addressable unit) : 하나의 주소에 의해 액세스되는 bit의 그룹.
= 기억장치의 각 위치에는 고유의 주소가 할당.
=> 그 방법은 ① 각 byte 별로 주소지정, ② 각 단어 별로 주소지정.
=> 주소 bit의 수 A와 기억장소의 수 N과의 관계 : $N=2^A$
ex.) 바이트 단위로 주소를 지정하면, 기억장치의 용량은 N 바이트가 됨. 단어의 길이가 32bit (4byte)인 시스템에서 단어 단위로 주소를 지정하면, 기억장치의 용량은 N 단어, 즉 4N 바이트.
cf.) 위 예에서, 바이트 단위로 주소를 지정하는 경우, 필요한 바이트만 액세스 할 수 있음.
액세스 속도와 관련된 파라미터
① 액세스 시간 : 주소와 읽기/쓰기 신호가 기억장치에 도착한 순간부터 data가 저장되거나 읽혀지는 동작이 완료될 때까지의 시간.
cf.) 임의 액세스의 경우, 모든 기억장소에 대해 동일하나, 순차적/직접 액세스의 경우, 달라짐.
② 기억장치 사이클 시간 (memory cycle time) : 액세스 시간과 다음 액세스를 시작하기 위해 필요한 추가 시간을 합한 시간.
= 추가 시간 : 읽기 동작 후에 정보가 소멸되는 저장장치인 경우, 이를 복원하는데 걸리는 시간
ex.) 자기코어, FRAM 등은 읽기 동작 후 내용이 지워지며 이의 복구를 위해 시간이 소요됨.반도체 기억장치, 디스크 등은 내용이 지워지지 않으므로 (액세스 시간)=(사이클 시간)
③ data 전송률 (data transfer rate) : 기억장치로부터 초당 읽혀지거나 쓰여질 수 있는 bit 수.
ex.) RAM의 액세스 시간이 100ns이고, 한번에 32bit씩 읽혀질 때, data 전송률
제조에 사용되는 재료에 의한 기억장치의 분류
① 반도체 기억장치 : LSI 또는 VLSI 기술을 이용.
② 자기-표면 기억장치 : 디스크나 테이프와 같이 자력을 이용.
③ 광(optical) 저장장치 : 레이저 광을 이용.
data를 저장하는 성질에 따른 분류
① 휘발성(volatile) 기억장치 : 저장된 정보가 시간이 지나면 점차 사라지거나, 전력공급이 중단되면 소멸.
ex.) 반도체 기억장치의 일부
② 비휘발성(nonvolatile) 기억장치 : 저장된 정보가 다시 변경되기 전까지는 그대로 유지되며 정보 유지를 위해 지속적인 전력 공급도 불필요.
ex.) 자기-표면 기억장치, 광 저장장치 등
※ 컴퓨터의 성능에 가장 중요한 영향을 미치는 요소 : CPU
But, 기억장치가 느리다면, 명령어나 data를 액세스하는 과정에서 시간지연 발생하고 성능저하
[최근동향] 기억장치 제조기술의 발전으로 반도체 기억장치의 속도가 계속 높아짐.
But, CPU의 속도는 더 급속히 향상되고 있어서, 둘 간의 속도격차는 줄어들지 않는 실정.
또한, 보조저장장치들의 대부분은 기계장치를 포함하고 있어서 액세스 속도가 현저히 느림.