혼공단 10기 3주차 학습 기록
메모리와 캐시 메모리
RAM의 특징
RAM은 휘발성 저장장치(Volatile Memory)로 전원을 끄면 저장된 내용이 사라진다. 반면에 보조기억장치는 전원을 꺼도 저장된 내용이 유지되는 비휘발성 저장장치(Non-volatile Memory)이다. 하지만 CPU는 보조기억장치에 직접 접근하는 것이 불가능하기 때문에 프로그램을 실행하기 위해서는 보조기억장치에 보관된 프로그램을 RAM으로 복사한 뒤 저장해야 한다.
그럼 RAM 용량에 따라 실행 속도는 어떤 차이를 보일까? 만약 아래와 같이 RAM 용량이 프로그램을 하나만 저장할 수 있도록 작은 경우라면,
[작은 RAM 용량]
CPU가 A와 B 프로그램을 순차적으로 실행한다고 가정해 보자. RAM은 하나의 프로그램만 저장할 수 있으므로 보조기억장치로부터 먼저 A 프로그램을 가져와 저장한다. 그리고 B 프로그램을 실행할 때 다시 B 프로그램을 가져와 저장하고 실행해야 한다.
그러나 RAM 용량이 이보다 더 큰 경우라면,
[큰 RAM 용량]
RAM 용량이 두 프로그램을 모두 담을 수 있을 정도로 크면 한 번에 A, B 프로그램을 모두 가져와 동시에 실행하는 것이 가능하다.
RAM 용량이 클수록 많은 프로그램을 동시에 빠르게 실행할 수 있다.
*용량이 필요 이상으로 큰 경우, 실행 속도에는 큰 영향을 주지 않는다.
RAM의 종류
RAM 종류에는 DRAM, SRAM, SDRAM, DDRAM 4가지가 있다. 먼저 DRAM과 SRAM에 대해 살펴보자.
DRAM(Dynamic RAM)
DRAM은 저장된 데이터가 시간이 지나면 점차 소멸하는 RAM을 말한다. 데이터가 사라지는 것을 방지하기 위해 주기적으로 데이터를 다시 저장(재활성화)해야 한다는 특징을 가진다.
우리가 가장 일반적으로 주기억장치에 사용되는 RAM이 바로 DRAM이다. 상대적으로 소비 전력이 낮고, 가격이 저렴하며, 대용량으로 설계하기가 용이하기 때문이다.
SRAM(Static RAM)
반대로 SRAM은 저장된 데이터가 시간이 지나도 사라지지 않는다. 그래서 데이터를 재활성화할 필요도 없으며 일반적으로 DRAM보다 속도도 빠르다는 장점이 있다.
그러면 SRAM을 메모리로 사용하면 더 좋지 않을까 싶지만 아쉽게도 SRAM은 DRAM보다 소비 전력도 크고, 가격도 비싸며, 대용량 설계도 힘들다. 그래서 메모리보다는 주로 속도가 빨라야 하는 저장장치인 캐시 메모리에 사용한다.
SDRAM(Synchronous DRAM)
SDRAM은 클럭 신호에 맞춰 동작하면서 CPU와 정보를 주고받는 발전된 형태의 DRAM이다.
DDR DRAM(Double Data Rate DRAM)
DDR SDRAM은 최근 가장 많이 사용되는 RAM으로 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다. 대역폭은 데이터를 주고받는 길의 너비를 뜻하는데, 대역폭이 넓다는 말은 속도가 그만큼 빠르다는 말과도 같다. DDR SDRAM은 SDRAM보다 2배의 대역폭을 갖고 있어 2배 속도가 빠르다.
캐시 메모리(Cache Memory)
메모리 계층 구조(Memory Hierarchy)
저장 장치는 일반적으로 CPU와 가까울수록 속도가 빠르고 저장 용량은 작으며 가격이 비싸다. CPU와 가장 가까운 레지스터가 속도가 제일 빠르며 메모리, 보조기억장치 순으로 속도가 상대적으로 느리다.
이렇게 레지스터에 접근하는 것보다 속도가 느린 메모리의 단점을 개선하기 위해 캐시 메모리가 등장했다.
캐시 메모리는 레지스터보다 용량이 크고 메모리보다 접근 속도가 빠른 SRAM 기반의 저장 장치이다. 메모리에서 필요한 일부 데이터를 캐시 메모리에 미리 저장해 놓으면 CPU가 데이터에 접근하는 속도를 개선할 수 있다.
캐시 메모리는 CPU가 사용할 법한 데이터를 예측해서 저장한다. 예측한 데이터가 맞아 실제로 활용되는 경우를 캐시 히트(cache hit)라고 하며 맞지 않아 메모리에서 직접 데이터를 가져와야 하는 경우를 캐시 미스(cache miss)라고 한다. 히트되는 비율은 캐시 적중률(cache hit ratio)이라고 부르며 ‘캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)‘로 계산할 수 있다.
참조 지역성 원리(Locality of reference, principle of locality)
캐시 메모리가 데이터를 예측하는 방법은 아래 참조 지역성 원리를 따른다.
참조 지역성 원리
- 최근에 접근한 메모리 공간에 다시 접근하려는 경향
- 접근한 메모리 공간 근처에 접근하려는 경향
두 경향을 바탕으로 CPU가 사용할 만한 데이터를 예측할 수 있다.
보조 기억 장치
RAID(Redundant Array of Independent Disks)
RAID는 하드 디스크와 SSD를 사용해 데이터의 안전성이나 높은 성능을 위해 여러 개의 물리 보조기억장치를 하나의 논리 보조기억장치처럼 사용하는 기술이다.
RAID 종류
RAID 0
RAID 0은 여러 개의 보조기억장치에 데이터를 나누어 저장하는 방식이다. 데이터를 분산하여 저장하는 것을 스트라이핑(Striping)이라고 한다. 스트라이핑된 데이터는 동시에 읽고 쓸 수 있기 때문에 하나의 저장 장치를 이용하는 것보다 속도가 빠르다.
그러나 RAID 0은 저장된 데이터가 안전하지 않다는 큰 단점이 존재한다. 하나의 디스크에 문제가 생겨도 전체 데이터 정보를 읽을 수 없기 때문이다.
RAID 1
RAID 0의 단점을 개선하여 RAID 1이 등장했다. 완전한 복사본을 만들어 데이터를 저장하기 때문에 속도는 RAID 0보다 느리지만 복구가 간단하다는 장점이 있다. 하나의 디스크에 문제가 발생해도 복사본에 저장된 데이터를 불러오면 된다.
그러나 하드 디스크 개수가 정해져 있으면 사용 가능한 용량이 적어지기 때문에 많은 양의 하드 디스크가 필요하고, 이는 곧 비용 문제로 이어진다는 단점이 있다.
RAID 4
RAID 4는 오류를 검출하고 복구하기 위한 정보인 패리티 비트(parity bit)를 저장한 장치를 따로 두는 방식이다. 그래서 RAID 1보다 적은 하드 디스크로도 데이터를 안전하게 보관할 수 있다.
RAID 4의 단점은 새로 데이터가 저장될 때마다 패리티를 저장하는 장치에도 데이터를 저장하므로 병목 현상이 발생한다는 것이다.
RAID 5
RAID 5는 RAID 4와 같이 패리티 정보를 저장하지만 병목 현상을 방지하기 위해 분산하여 저장한다.
RAID 6
RAID 6은 RAID 5와 기본적인 방식은 비슷하나, 패리티를 두 개 두는 방식이다. 그래서 RAID 4나 RAID 5보다는 안전하지만, 패리티가 두 개이므로 RAID 5보다는 쓰기 속도가 느리다. 속도를 포기하고 안전성을 중요시 여길 때 주로 사용한다.
입출력 장치
장치 컨트롤러(Device Controller)와 장치 드라이버(Device Driver)
입출력 장치는 종류가 매우 많아 정보를 주고받는 방식을 규격화하기가 어렵고 CPU와 메모리에 비해 데이터 전송률이 낮다. 그래서 컴퓨터에 직접 연결하지 않고 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고받는다.
프린터를 새로 사면 장치 드라이버를 설치해야 하는 경험을 해본 적이 있을 것이다.
바로 이 장치 드라이버가 장치 컨트롤러와 컴퓨터 내부가 정보를 주고 받을 수 있게 해주는 프로그램이다.
기본 미션
p.185
3. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.
[보기] SRAM, DRAM
- 주로 캐시 메모리로 활용됩니다. ( 1 )
- 주로 주기억장치로 활용됩니다. ( 2 )
- 대용량화하기 유리합니다. ( 3 )
- 집적도가 상대적으로 낮습니다. ( 4 )
정답:
- SRAM
- DRAM
- DRAM
- SRAM
DRAM은 상대적으로 소비 전력이 낮고, 가격이 저렴하며, 대용량으로 설계하기가 용이(집적도 높음)하므로 주기억장치로 활용된다. SRAM은 DRAM과 반대의 특성을 가지고 있고 속도가 빠르므로 주로 캐시 메모리로 활용된다.
p.205
1. 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.
[보기] 메모리, 보조기억장치, 캐시 메모리, 레지스터
정답:
- 레지스터
- 캐시 메모리
- 메모리
- 보조기억장치
*본문 그림 참조
추가 미션
Q. RAID의 정의와 종류를 간단히 정리해 보기
RAID
RAID
하드 디스크와 SSD를 사용해 데이터의 안전성이나 높은 성능을 위해 여러 개의 물리 보조기억장치를 하나의 논리 보조기억장치처럼 사용하는 기술
RAID 0
- 여러 개의 보조기억장치에 데이터를 나누어 저장하는 방식
- 데이터를 동시에 읽고 쓸 수 있어 하나의 디스크를 사용하는 것보다 속도가 빠름
- 하나의 디스크에 문제가 생겨도 전체 데이터 정보를 잃을 수 있어 저장된 데이터가 안전하지 않음
RAID 1
- 완전한 복사본을 만들에 데이터를 저장하므로 복구가 간편함
- RAID보다 속도가 느림
- 많은 양의 하드 디스크가 필요하므로 비용 문제 발생
RAID 4
- 패리티 비트를 저장한 장치를 따로 두는 방식
- RAID 1보다 적은 하드 디스크로 데이터를 안전하게 보관할 수 있음
- 새로운 데이터가 저장될 때마다 패리티 저장 장치에도 데이터를 저장하므로 병목 현상 발생
RAID 5
- 패리티 정보를 분산하여 저장하는 방식
- 병목 현상 개선
RAID 6
- RAID 5와 비슷하지만, 패리티를 두 개 두는 방식
- RAID 4와 RAID 5에 비해 데이터를 더 안전하게 보관 가능
- 쓰기 속도가 느림
References
[📚book] 혼자 공부하는 컴퓨터 구조 + 운영체제