728x90
반응형
CPU는 연산을 미리 "예측"한다.
core의 연산 속도가 1ns인데 RAM의 연산 속도는 50ns로 약 50배의 속도 차이가 발생한다. 이러한 cpu와 ram의 속도 차이를 극복하기 위해 사용하는 것이 캐시 메모리다
캐시 메모리
역할
CPU가 예측한다는 부분은 사실 캐시에서 일어나는 일이다.
아래 코드를 보면,
for (auto i = 1 ; i <= 100 ; i ++ ) {
arr[i] = i*2;
}
i=1, i=2, i=3 .... 100까지 실행될때마다 공간이 확보되는 것이 아니라 캐시 메모리가 ㅑ<= 100 까지의 공간이 필요하겠다고 예상하여 미리 캐시에 끌고온다. 이후에 RAM이 필요하다고 할 때 준비해뒀던 연산 결과를 주는데, 캐시 메모리의 정확도는 90%라고 한다. 이때, 예측을 성공하면 "Cache hit", 실패하면 "Cache miss"라고 한다. 게임같다
L1, L2, L3
캐시 메모리가 L1, L2, L3 로 나뉜 이유는 "양" 때문이다.
- L1 : 명령 or 데이터
- L2 : 명령과 데이터 섞여있음
- L3 : 여러개의 코어에서 사용하는 캐시 메모리
+ ) AI 연산이 나오면서 이 GPU가 RAM을 대체한다는 기사가 나옴 (하이닉스)
CPU 게이트
캐시를 이용해서 정보를 빼옴. 랜덤하게 RAM address 100에 담긴 정보를 요청 -> 권한 없음
하지만 권한은 없어도 실제로 처리는 한 후에 권한이 없다고 말하는거라 일단 캐싱은 되어있음. 이렇게 캐싱된 정보가 예를 들면 값이 97 이라면 cpu의 al에 올라가게 되는데 해커가 다시 해당 값에 1000을 더해달라고 요청 후에 1000을 빼달라고 요청하면 아까 권한 없어서 못본다고 했던 데이터를 약간의 번거로움만 있다면 그대로 보여주게 된다.
Reference
728x90
반응형
'STUDY > OS' 카테고리의 다른 글
02. Process VS Thread (0) | 2022.11.30 |
---|---|
01. Kernel (0) | 2022.11.30 |
00. Operating System Concept (0) | 2022.11.30 |