Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
메모리 계층 구조
  • Loading branch information
sigridjineth authored Nov 27, 2021
commit 702076f192eb85f7294e528e1a6fa8bb2178e658
19 changes: 19 additions & 0 deletions operating-system/memory-hierarchy/sigrid/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 메모리 계층 구조
![](https://i.imgur.com/Ga7efAW.png)
## 개요
* 메모리 계층 구조는 메모리에 필요에 따라 여러 종류로 나누어 둠으로서, CPU가 메모리에 훨씬 빨리 접근하도록 유도하기 위함이다.
* Registers, Cache: CPU 내부에 존재하므로, 빠르게 접근할 수 있다.
* 캐시
* ![](https://i.imgur.com/YIk9tLP.png)
* Memory: CPU 외부에 존재하므로, Registers와 Cache보다 느리게 접근할 수 있다.
* RAM: Random Access Memory. RAM은 어느 위치에 저장된 데이터든지 접근(읽기 및 쓰기)하는 데 동일한 시간이 걸리는 메모리이기에 ‘랜덤(Random, 무작위)’이라는 명칭이 주어졌다.
* Hard Disk: 직접 CPU에 접근할 수 없다. CPU가 하드 디스크에 접근하기 위해서는, 하드 디스크의 데이터를 메모리로 이동시킨 후에야 메모리에 접근해야 한다. 따라서 매우 느리다.

## 특징
### 비용적 측면
* 메모리 구조에서 상층으로 갈수록 더 비싸진다.
### 참조의 지역성 (Locality of Reference)
* 자주 쓰이는 데이터는 자주 쓰이고, 그렇지 않은 데이터는 그렇지 않다. CPU는 자동으로 자주 쓰이는 데이터이고, 또는 자주 쓰일 것 같은 데이터를 캐시로 읽어온다.
* 자주 쓰이는 데이터는, 전체 데이터 양에 비해 작은 양이다. 따라서, 캐시는 메모리보다 더 작아도 된다.
### 속도적 측면
* CPU와 가까이 있는 레지스터가 가장 빠르게 접근 가능하고, 밑으로 내려갈 수록 접근 속도가 느려진다.