Virtual vs Physical memory
프로그래머는 virtual memory만을 보고 있어서 메모리 공간이 거의 무한하다고 느끼지만 실제 사용할 수 있는 physical memory 공간은 프로그래머가 추정하는 것보다 훨씬 작다. 시스템(system softeware + hardware)은 virtual memory와 physical memory를 서로 mapping 해준다. 이때 시스템이 physical memory를 잘 관리해준다면 프로그래머 입장에서는 메모리 공간이 엄청 거대하다고 느끼는 것이다.
Memory Hierarchy
이상적인 메모리라 함은 공간이 넓고 빠르며 값싼 메모리일 것이다. 하지만 현실적으로 불가능한 일이다. 공간이 넓으면 데이터의 위치를 특정하는데 오래 걸리기 때문에 느려질 것이고, 빠른 메모리거나 bandwidth이 높을수록 값이 비싸다.
빠를 수록 용량이 작고, 용량이 클 수록 느리다. 이 때문에 메모리를 계층별로 여러개를 두고 어떤 데이터를 찾을 때 빠른 메모리에서부터 찾은 다음 그곳에 없으면 그 다음 빠른 메모리에서 찾는 방식을 사용하여 최대한 효율을 높이는 방식을 사용한다.
이때 Register > Cache > Main memory > Hard disk 순으로 빠르다.
Cache는 level 1, 2, 3가 있고 L1이 가장 빠르고 L3가 가장 느리다. L1은 cpu 칩 안에 내장되어 있고 L2, L3는 그 밖에 있다.
locality
memory의 정보를 균일하게 접근하는 것이 아니라 특정 '지역'을 집중적으로 접근하는 특성
Temporal locality: 한번 접근했던 것에는 다시 접근할 가능성이 높음
Spartial locality: 한번 접근했던 것과 유사하거나 근처의 것에 접근할 가능성이 높음
locality를 이용하여 메모리에 데이터를 저장하면 필요한 데이터가 메모리에 존재할 확률을 높일 수 있다.
'학교공부 > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] Branch prediction (0) | 2024.10.13 |
---|---|
[컴퓨터구조] Cache (0) | 2023.06.09 |
[컴퓨터 구조] Multithreading (0) | 2023.06.03 |
[컴퓨터 구조] Handling Dependences (0) | 2023.05.08 |
[컴퓨터 구조] Pipelining (0) | 2023.04.25 |