티스토리 뷰

CS/운영체제

#26 메모리 - 메모리 종류

RadderNepa 2023. 5. 28. 11:05

● 도입

- 컴퓨터에는 여러 종류의 메모리가 있다.

- 이번 글에서는 컴퓨터는 왜 여러 종류의 메모리가 필요하며 각각의 차이점이 무엇인지 알아보자


● 메모리

출처 - 인프런, 그림으로 쉽게 배우는 운영체제

- 위의 그림은 컴퓨터에서 사용되는 메모리들을 보여준다.

- (左 → 右) 갈수록 가격은 싸지고 용량은 커지지만 속도는 느리다.


1. 레지스터

- 레지스터는 가장 빠른 기억장소로 CPU 내에 존재한다.

- 컴퓨터 전원이 꺼지면 데이터가 사라지기 때문에 휘발성 메모리라고 부른다.

- CPU를 구분할 때 32bit, 64bit 라는 용어를 사용하는데 이것은 레지스터의 크기가 32bit와 64bit 라는 것을 의미한다.

- 32bit 레지스터를 가지고 있으면 32bit CPU / 64bit 레지스터를 가지고 있으면 64bit CPU 라고 한다.

- CPU는 계산을 할 때 메인메모리(RAM)에 있는 값을 레지스터로 가져와서 계산을 수행한다.

- 계산 결과는 다시 메인메모리에 저장시킨다.

ex)

출처 - 인프런, 그림으로 쉽게 배우는 운영체제

- 위의 사진은 컴파일을 할 때 생성되는 어셈블리 코드의 일부이다.(왼쪽이 명령어, 오른쪽이 데이터)

- 초록색 박스 부분이 레지스터를 가지고 처리하는 부분이다.

cf) 어셈블리 코드는 기계어로 일대일 매칭이 되기 때문에 실제로 레지스터를 사용하는 것을 볼 수 있다.

 

2. 캐시

- 프로그램이 실제로 올라가는 곳이 바로 메인메모리(이하 RAM)이며 RAM과 레지스터 사이에는 캐시라는 휘발성 메모리가 존재한다.

- 레지스터는 CPU가 사용하는 메모리로 속도가 굉장히 빠르다. 그에 비해 RAM의 속도는 매우 느리다.

- RAM에 있는 값을 레지스터로 옮기려면 시간이 한참 걸리기 때문에 필요할 것 같은 데이터를 미리 가져오는 작업이 필요한데 이때 미리 가져온 데이터를 저장하는 곳이 바로 캐시이다.

- 캐시는 성능상의 이유로 여러개를 둔다.

- 만약 CPU가 값을 요청해 RAM에서 레지스터로 값을 옮겨야 한다면 단계에 따라 가장 속도가 빠른 L1 캐시를 보고 여기에 값이 없다면 L2 캐시를 확인해본다.

- L2 캐시에도 값이 없다면 그때 RAM에서 값을 가져온다.

위는 현재 내 PC의 캐시 상태이다.(L1 ~ L3까지 3개의 캐시가 있다.)

 

3. 메인메모리(RAM)

- 메인메모리(이하 RAM)는 실제 운영체제와 다른 프로세스들이 올라가는 공간이다.

- 전원이 공급되지 않으면 데이터가 지워지기 때문에 휘발성 메모리이다.

- HDD, SDD 보다 속도는 빠르지만 가격이 비싸기 때문에 데이터 저장보다는 실행중인 프로그램만 올린다.

 

4. HDD, SDD

- HDD, SDD는 보조저장장치이다.

- 컴퓨터에는 작업한 파일, 음악, 게임 등을 저장할 필요가 있다.

- 위에서 살펴본 레지스터, 캐시, 메인메모리 등은 휘발성 메모리이고 가격이 비싸기 때문에 저장이라는 작업에 적합하지 않다.

- 그렇기에 가격도 저렴하고 전원이 공급되지 않아도 데이터가 지워지지 않는 비휘발성 메모리가 필요했는데 그것이 바로 

HDD와 SDD이다.

- 같은 용량의 하드디스크와 메인메모리의 가격 차이만 봐도 알 수 있다. 1TB 용량의 하드디스크는 7만원이지만 같은 용량의 RAM은 544만원이다.

- 메인메모리의 가격도 충격인데 만약 캐시와 레지스터로 1TB를 만든다고 하면 컴퓨터의 가격은 기절일 것이다.

- 현재의 PC는 레지스터, 캐시, RAM, HDD의 적절한 조합으로 가격과 속도가 절충돼있기 때문에 합리적인 가격에 사용할 수 있는 것이다.(솔직히 합리적인지는 모르겠음)

출처 - 인프런, 그림으로 쉽게 배우는 운영체제

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함