컴퓨터의 기억장치란?
● 기억장치
중앙처리장치가 어떤 작업을 처리하려면 데이터와 데이터를 처리할 프로그램이 필요합니다. 기억장치는 데이터, 프로그램, 연산의 중간 결과 등을 일시적 또는 영구적으로 저장하는 장치입니다. 기억장치는 접근 속도, 기억 용량, 용도 등에 따라 레지스터, 캐시 메모리, 주기억장치, 보조기억장치로 나누어집니다. 그 종류는 레지스터, 캐시 메모리, 주기억장치, 보조기억장치로 분류할 수 있습니다.
- 레지스터 : 중앙처리장치 내부에 존재하는 기억장치입니다. 접근 시간이 중앙처리장치의 처리 속도와 비슷합니다.
- 캐시 메모리 : 중앙처리장치가 주기억장치에 접근할 때 속도 차이를 줄이기 위해 사용됩니다. 실행 중인 프로그램의 명령어와 데이터를 저장합니다.
기억 용량은 작지만 접근 시간이 주기억장치보다 5 ~ 10배 정도 빠릅니다.
- 주기억장치 : 중앙처리장치가 직접 데이터를 읽고 쓸 수 있는 장치입니다. 레지스터나 캐시 메모리보다 기억 용량이 큽니다.
- 보조기억장치 : 주기억장치에 비해 접근 시간은 느리지만 기억 용량이 큽니다. 접근 시간은 주기억장치보다 약 1,000배 정도 느립니다.
당연히 이러한 기억장치들은 읽고 쓰는 속도에 비례하여 가격이 올라갑니다. 이러한 이유로 중앙처리장치에 직접 연결된 기억장치에는 기억 용량이 작고 속도가 빠른 장치를 사용하고, 보조기억장치에는 속도는 느리지만 가격이 저려하고 기억 용량이 큰 것을 사용합니다. 다음은 기억장치의 계층 구조를 나타낸 것입니다.
4 계층 : 레지스터
3 계층 : 캐시 메모리
2 계층 : 주기억장치
1 계층 : 보조기억장치
계층이 올라갈수록 접근 속도가 증가하고 저장 비용이 상승합니다. 반면에 기억 용량은 감소하게 됩니다. 따라서 기억장치의 구성 비용과 성능을 고려해서 중앙처리장치가 자주 사용하는 데이터를 상위 계층에 저장하는 편이 훨씬 효율적입니다. 다음 그림은 기억장치에서 데이터의 흐름을 나타낸 것입니다. 중앙처리장치는 보조기억장치에 직접 접근할 수 없기 때문에 보조기억장치에 저장된 프로그램을 실행하기 위해서는 프로그램과 데이터를 주기억장치로 옮겨야 합니다. 중앙처리장치가 주기억장치에서 프로그램과 데이터를 처음 가져올 때는 캐시 메로리로 가져옵니다. 그 이유는 중앙처리장치가 필요로 하는 프로그램과 데이터가 캐시 메모리에서 발견되면 즉시 가져올 수 있기 때문에 접근 시간을 단축할 수 있어서 입니다.
리포트를 작성하기 위해 한글을 실행시키면 주기억장치는 보조기억장치에 저장된 워드프로세서 프로그램을 읽어 들입니다. 사용자가 문서 작업을 실행하면 중앙처리장치는 필요한 프로그램과 데이터를 주기억장치에서 가져와 작업을 합니다. 이 때 자주 사용하는 프로그램과 데이터는 속도가 빠른 캐시 메로리로 가져옵니다. 그래야 다음에 접근할 때 속도를 단축시킬 수 있기 때문입니다.
주기억장치는 컴퓨터가 동작하는 동안 프로그램, 데이터, 연산의 중간 결과 등을 저장합니다. 중앙처리장치와 직접 데이터를 교환할 수 있도록 내부 버스로 연결되어 있습니다. 일반적으로 말하는 기억장치는 주기억장치를 말합니다. 램(RAM)은 전원 공급이 중단되면 저장된 정보가 모두 지워지는 휘발성 메모리로 정보를 기록하고 해독하는 장치입니다. 정보의 저장 위치에 관계없이 일정한 시간 내에 읽거나 쓸 수 있는 임의 접근 기억장치입니다. 램은 제조 기술에 따라 DRAM과 SRAM으로 구분됩니다.
- DRAM : DRAM은 트랜지스터 내의 축전지에 충전된 전하를 이용하여 정보를 저장합니다. 축전지에 충전된 전하의 존재 유무를 0과 1로 구분하는데, 축전지의 전하는 시간이 지나면 방전되므로 주기적으로 충전 해야 합니다. DRAM은 가격이 저렴하고 전력 소모가 적으며 동작 속도가 빠르고 직접도가 높습니다. 따라서 대용량 메모리로 쓰기에 적합하여 주기억장치로 사용됩니다.
- SRAM : SRAM은 플립플롭 기억소자로 구성되며 전원이 공급되는 동안 정보가 계속 유지되기 때문에 DRAM처럼 주기적으로 충전하지 않아도 됩니다. SRAM은 DRAM에 비해 회로가 복잡하고 전력 소모가 많으며 가격 또한 비싸지만 동작 속도가 빨라 캐시 메모리에 주로 사용됩니다.
캐시메모리는 중앙처리장치와 주기억장치의 속도 차이로 발생하는 병목현상을 완화하기 위해서 필요합니다. 즉, CPU가 주변장치에 비해서 상대적으로 빠르기 때문이라는 것입니다. 캐시 메모리는 주변 장치와 CPU 사이에 존재하면서 이러한 성능 저하를 막아줍니다. 캐시 메모리를 상대적으로 용량이 적어 주기억장치의 내용 전체가 아니라 일부만 저장합니다. 중앙처리장치는 주기억장치로부터 프로그램이나 데이터를 가져올 때 우선적으로 원하는 정보가 캐시 메모리에 존재하는지 검사합니다. 원하는 정보가 캐시 메모리에 존재하면 바로 읽어오고, 존재하지 않으면 주기억장치에서 캐시 메모리로 저장한 후 읽어옵니다.
중앙처리장치가 필요로 하는 정보가 캐시 메모리에 존재하는 상황을 캐시 적중이라고 하며 존재하지 않는 상황을 캐시 미스라고 말합니다. 원하는 정보가 캐시 메모리에 존재할 확률을 나타내는 캐시 적중률(Hit Ratio)는 다음과 같이 정의합니다. 캐시 적중률이 높을수록 컴퓨터의 성능이 우수해집니다.
캐시 적중률(H) = 캐시 적중 횟수 / 전체 기억장치 참조 횟수
캐시 메모리를 사용하면 기억장치의 평균 접근 시간이 상당히 많이 개선됩니다. 캐시 메모리를 사용할 때 기억 장치의 유효 접근 시간은 다음과 같습니다.
유효 접근 시간 = (H X 캐시 적중 시 기억장치 접근 시간) + ((1 - H) + 캐시 미스 시 기억장치 접근 시간)
예시 ) 캐시 메모리 접근 시간이 20ns, 주기억장치 접근 시간이 100ns, 캐시 적중률이 95%일 때 기억 장치의 유효 접근 시간은 ?
( 0.95 X 20ns ) + ( 0.05 X 120ns ) = 25ns
여기서 중요한 점은 캐시 미스일 때는 캐시 접근 시간 + 주기억장치 접근 시간을 모두 더한 120ns로 계산한다는 점입니다.
'컴퓨터 기초' 카테고리의 다른 글
프로그램의 개념과 컴파일이해하기! (1) | 2016.06.14 |
---|---|
중앙처리장치(CPU)의 작동 원리를 알아보자! (0) | 2016.06.11 |
컴퓨터의 구조를 설명해줄게! (1) | 2016.06.08 |
부동 소수점 방식이란? (2) | 2016.06.06 |
1의 보수와 2의 보수를 이해하자! (11) | 2016.06.06 |