CPU에 비해 메모리가 너무 느릴 뿐더러 메모리에 접근하는데 오래 걸려서 손해가 너무 심함
그래서 당장 처리할거를 레지스터에 담아두고 처리하는거 레지스터는 개빠르니까
쉽게 풀어 설명하면 매번 콜라 한모금 마시려고 냉장고 왔다 갔다 하는거 하고(메모리)
니 옆에 컵 두고 따라 마시는 거 차이(레지스터)
메모리는 DRAM인데 레지스터에 쓰는 SRAM에 비해 느림 SRAM은 빠른 대신 비싼 문제가 있음
결국 비용 문제인데 적은 비용으로 더 효율을 내기 위해서 cpu - 레지스터 - 캐시 - 메모리의 구조를 만들게 된거임
우리가 쓰는 컴퓨터가 물리적으로 이런 구조를 갖고 있으니까
cpu에서 명령어를 처리하는 ALU는 레지스터까지 가져와서 연산을 할 수 밖에 없음
3. CPU는 가까이 있는 레지스터 파일을 가지고 연산함. 중간에 load save 등등은 os call때려서 했던걸로 기억난다. 그러면 레지스터랑 캐시랑 메모리간에 데이터가 다를거니까, 난 a=a+1 load a를 실행했는데 대충 a+1을 레지스터에 실행하고 load a를 캐시나 메모리에 실행하면 값이 반영 안되는 이런 식의 오류가 있지 않겠냐 하는데 CPU 아키텍처의 미친듯한 prediction 하고 안되겠다 싶으면 exception handler였나 그걸로 해결했던거같음. 그럼 다시 컴구 공부하러간다