Principle of Locality
프로그램은 언제나 그들의 주소 영역에서 작은 부분을 접근한다.
( 생활에서의 예 : 지난 주에 지각한 사람은 이번 주에도 지각할 확률이 높음,
그러므로, 출석을 부를 때, 전체를 확인 == 지난 주 지각한 사람문 호명 )
- Temporal locality
시간적 지역성
자주 접근되는 item들은 또 다시 접근될 확률이 높다
ex) instructions in a loop, induction variables (for loop의 int i변수 같은 경우)
(시간 지역성이 잘 들어나는 것일 뿐, 공간적 지역성이 없는 건 아니다)
- Spatial locality
공간적 지역성
최근에 접근되었던 것들의 근처 item들은 곧 또 다시 접근될 확률이 높다
ex) sequential instruction access, array data
(instruction의 경우, +4를 하여 주소에 접근하면 다음 instruction에 접근할 수 있다)
Taking Advantage of Locality
위 그림은 Memory hierarchy이다.
RAM은 SRAM과 DRAM으로 나누고, SRAM의 경우엔 캐시 메모리, DRAM의 경우를 메인 메모리라고 부른다.
또한 Magnetic disk의 경우를 디스크라고 부른다. (disk가 왜 메모리의 일부인지는 다음 수업 때 설명)
Memory Hierarchy
메모리는 빠르고 클수록 좋지만, 이 둘의 장점을 아무것도 잃지 않고 가질 수는 없다.
(하지만 그렇다고 좋은 걸 포기할 수는 없지..ㅎ)
그래서 우리는 위 그림과 같은 memory hierarchy를 이용한다.
CPU와 가까울수록 메모리의 크기는 작고 빠르며, 멀수록 메모리의 크기는 크고 느리다.
먼저 CPU에서 가까운 메모리에게 '프로그램이 있는지' 물어본다. 이 때 가까운 메모리에 있으면 바로 실행을 시키면 되지만, 이 요구하는 프로그램의 크기가 클 경우에는 가까운 메모리에 존재하지 않을 가능성이 크다.
그러므로 가까운 메모리는 '여기엔 원하는 프로그램이 없다'고 대답하며, CPU를 잠깐 멈춘다.
후에 memory level을 교체하고 다시 CPU를 작동시킨다.
이와 같이 memory hierarchy를 사용하여 작동하는 것을 'illusion'을 유지한다고 하는데,
이는 CPU에 가까운 level 1만 보이게 함으로써 CPU를 속이기 때문이다.
'System Structure' 카테고리의 다른 글
[Chapter 2] Instructions : Language of the Computer (0) | 2019.10.14 |
---|---|
컴퓨터 구조 1 : 컴퓨터 시스템 구조 (0) | 2019.09.10 |