Step-by-Step
[CS] 메모리 본문
메모리
전자 회로에서 데이터나 상태, 명령어 등을 기록하는 장치
메모리 계층
- 하위계층으로 갈수록 용량이 늘어나고, 가격이 저렴하지만, 속도가 느림
- 상위계층으로 갈수록 용량은 적고, 가격이 높지만, 속도가 빠름
- 레지스터와 캐시는 CPU 내부에 존재 → CPU에 빠르게 접근 가능
- 주기억장치(=메모리)는 CPU 외부에 존재 → 레지스터와 캐시보다 CPU에 늦게 접근
- 보조기억장치(=하드디스크)는 CPU에 접근할 방법이 없음
- 하드디스크 데이터를 메모리로 이동시키고, 메모리에서 접근해서 가능 = "느린 접근"
1. 보조기억장치
- 물리적인 디스크가 연결되어있는 저장장치
- 주기억장치보다는 느림
- 전원을 끄더라도 저장된 데이터가 사라지지 않은 비휘발성이며, 영구적으로 보관 가능
- 대표적으로 HDD와 SSD가 있음
HDD(Hard Disk Driver)
- 하드디스크라 불리우는 보조장치
- 물리적인 디스크를 고속으로 회전시켜 데이터를 저장하는 장치
- 충격에 약하며, 소음이 다소 발생
- 가장 대중적인 보조기억장치였지만, 크기가 작고 처리속도가 향상된 SSD가 나오면서 많이 소명됨
SSD(Solid State Driver)
- 반도체 기반 정보를 저장하는 보조기억장치
- 물리적으로 데이터를 저장하지 않고, 전기적으로 데이터를 저장
- HDD보다 속도가 월등히 빠르고, 소음도 발생하지 않음
- 전력 소모가 적고, 경량/소형화 할 수 있음
- But HDD에 비해 가격이 높음
2. 주기억장치
- 흔히 "메모리"라고 하는 영역
- 컴퓨터 내부에서 CPU가 처리하고 있는 내용을 저장하고 있는 기억장치
- CPU 명령에 의해 기억된 장소에 직접 접근하여 읽고 쓸 수 있음
- 대표적으로 RAM과 ROM이 있음
RAM(Random Access Memory)
- 읽고 쓰기가 가능함
- 응용프로그램, 운영체제 등을 불러와 CPU가 작업할 수 있도록 하는 기억장치
- 데이터를 읽는 속도와 기록하는 속도가 같고 프로그램을 로딩하거나 데이터를 임시 저장할때 사용
- 전언이 끊어지면 데이터가 전부 지워지는 휘발성 메모리(Volatile Memory)
ROM(Read Only Memory)
- 전원이 끊어져도 기록된 데이터들이 소멸되지 않는 비휘발성 메모리(Non- Volatile Memeory)
- 오직 기억된 데이터를 읽기만 가능한 장치
- 데이터를 저장한 후 반영구적으로 사용
3. 캐시 메모리
- CPU의 처리속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용되는 고속 Buffer Memory
캐시메모리 특징
- CPU가 주기억장치에서 저장된 데이터를 읽어올 때 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음 이용할때 캐시메모리에서 먼저 가져오면서 속도를 향상시킴
- 메모리 계층 구조에서 가장 빠른 소자이며, 처리속도가 거의 CPU 속도와 비슷하다
- 주기억장치를 접근하는 횟수가 줄어들어, 컴퓨터 처리속도가 향상된다
캐시메모리 작동 원리
캐시가 효율적으로 동작하려면, 캐시에 저장할 데이터가 지역성을 가져야 함
※ 지역성 : 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어남
- 시간 지역성 : 특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높음
- 예를 들어, For / while 반복문에 사용되는 데이터는 참조될 가능성이 높으므로 다시 저장함
- 공간 지역성 : 액세스된 기억장소와 인접한 기억장소가 액세스될 가능성이 높음.
- 예를 들어, 배열에서 연속 접근시 참조된 데이터 근처에 있는 데이터가 참조 가능성이 높으므로 저장
4. 레지스터
- CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 다목적 공간
- 프로세스 내부에 있는 작은 공간으로 연산제어, 디버깅 등 목적으로 사용
- 공간은 작고 가격은 비싸지만, CPU에 직접 연결되어 있어 연산 속도가 RAM, HDD, SSD보다 빠름
- CPU는 자체적으로 데이터를 저장할 수 없으므로 레지스터를 이용하여 연산처리 및 번지지정을 도움
레지스터와 캐시의 차이점
- 캐시 : CPU와 별도로 있는 공간, 메인 메모리와 CPU 간의 속도 차이를 극복하기 위함
- 레지스터 : CPU 안에서 연산을 처리하기 위해 데이터를 저장하는 공간
레지스터와 캐시의 공통점
- 어떤 명령어나 데이터를 저장해두는 저장 공간
'CS공부 > 기본기술' 카테고리의 다른 글
[CS] 운영체제 (0) | 2023.11.15 |
---|---|
[CS] 데이터베이스 (1) | 2023.11.04 |
[CS] 객체지향 프로그래밍 (0) | 2023.11.04 |
Comments