분류 전체보기137 CPU Cache Miss는 왜 성능을 크게 떨어뜨릴까 CPU 구조를 공부하다 보면 “캐시(Cache)”라는 개념이 정말 중요하게 나온다. 처음에는 그냥 속도를 조금 더 빠르게 만드는 보조 메모리 정도로만 생각했었다. 그런데 파이프라인, 분기 예측, Out-of-Order Execution 같은 구조들을 하나씩 이해하고 나니까 결국 CPU가 가장 싫어하는 건 “기다리는 시간”이라는 걸 알게 됐다. 그리고 그 기다림을 가장 크게 만드는 원인 중 하나가 바로 Cache Miss였다.나도 예전에는 CPU 성능이 높으면 모든 작업이 그냥 빠르게 돌아가는 줄 알았다. 그런데 실제로는 CPU가 아무리 빨라도 필요한 데이터를 제때 가져오지 못하면 내부에서 계속 멈추고 기다리는 상황이 발생할 수 있다는 걸 알고 꽤 충격이었다. 특히 최신 CPU일수록 계산 속도는 엄청 빨라.. 2026. 5. 15. Out-of-Order Execution은 왜 필요할까 파이프라인과 분기 예측까지 이해하고 나면 자연스럽게 이런 생각이 들게 된다. “CPU는 이미 엄청 효율적으로 움직이고 있는 것 같은데, 왜 최신 CPU는 구조가 점점 더 복잡해지는 걸까?” 나도 처음에는 CPU 성능이라는 게 그냥 클럭 속도랑 코어 수 차이 정도라고만 생각했었다. 그런데 CPU 내부 구조를 조금씩 공부하다 보니까, 실제로는 “얼마나 기다리는 시간을 줄이느냐”가 굉장히 중요한 문제라는 걸 알게 됐다. 그리고 그 대표적인 기술 중 하나가 바로 Out-of-Order Execution이다. CPU는 생각보다 기다리는 시간이 많다처음 CPU 구조를 배울 때는 명령어가 순서대로 깔끔하게 실행되는 줄 알았다. 예를 들어 1번 명령어 끝나고 2번, 그다음 3번처럼 차례대로 처리하는 방식 말이다. 실.. 2026. 5. 15. Branch Prediction(분기 예측)은 왜 중요할까 파이프라인 구조를 이해하고 나면 자연스럽게 한 가지 의문이 생긴다. “CPU가 여러 명령어를 겹쳐서 처리한다면, if문 같은 조건문은 어떻게 되는 걸까?” 나도 처음에는 이 부분을 별로 신경 쓰지 않았다. 그냥 조건이 맞으면 실행하고 아니면 넘어가는 단순한 구조라고 생각했다. 그런데 CPU 입장에서 조건문은 생각보다 꽤 큰 문제였다. 왜냐하면 다음에 어떤 명령어를 실행해야 할지 바로 결정할 수 없는 상황이 생기기 때문이다. 그리고 이 문제를 최대한 줄이기 위해 등장한 기술이 바로 Branch Prediction, 즉 분기 예측이다. 조건문은 CPU 파이프라인을 멈추게 만들 수 있다CPU는 파이프라인 구조 덕분에 여러 명령어를 겹쳐서 처리한다. Fetch, Decode, Execute 같은 단계를 동시에 .. 2026. 5. 14. 파이프라인(Pipeline)은 왜 CPU를 빠르게 만들까 컴퓨터 구조를 조금만 공부하다 보면 “파이프라인(Pipeline)”이라는 단어를 정말 자주 보게 된다. 처음에는 이름부터 너무 어려워 보여서 그냥 CPU를 빠르게 만드는 기술 정도로만 생각했었다. 나도 예전에는 CPU 성능은 단순히 GHz 숫자나 코어 개수로만 결정되는 줄 알았다. 그런데 조금씩 CPU 내부 구조를 찾아보다 보니까 실제로는 CPU가 일을 얼마나 효율적으로 겹쳐서 처리하느냐도 엄청 중요하다는 걸 알게 됐다. 특히 파이프라인 개념을 이해하고 나니까 “왜 CPU가 단순 계산기가 아니라 엄청 복잡한 시스템인지” 조금씩 감이 오기 시작했다. 예전에는 프로그램 실행 버튼을 누르면 CPU가 그냥 하나씩 계산하는 줄 알았는데, 실제로는 여러 명령어가 내부에서 동시에 다른 단계로 움직이고 있다는 걸 보고.. 2026. 5. 14. DMA(Direct Memory Access)는 왜 필요할까 인터럽트까지 공부하고 나면 자연스럽게 이런 생각이 들게 된다. “CPU가 모든 데이터를 직접 처리하면 되는 거 아닌가?” 나도 처음에는 컴퓨터에서 일어나는 거의 모든 작업을 CPU가 직접 하는 줄 알았다. 그런데 실제로는 SSD, 네트워크 카드, 그래픽카드 같은 장치들이 엄청 많은 데이터를 계속 주고받고 있었고, 그걸 CPU가 하나하나 직접 옮기게 하면 생각보다 엄청난 낭비가 발생한다는 걸 알게 됐다. 이 문제를 해결하기 위해 등장한 기술이 바로 DMA(Direct Memory Access)다. CPU가 직접 데이터를 옮기면 너무 비효율적이다컴퓨터에서는 데이터를 읽고 쓰는 작업이 끊임없이 발생한다. 예를 들어 SSD에서 파일을 읽어오거나, 인터넷 데이터를 받거나, 영상을 재생하는 과정에서도 계속 메모리 .. 2026. 5. 13. 인터럽트(Interrupt)는 왜 필요할까 컴퓨터 구조를 공부하다 보면 “인터럽트(Interrupt)”라는 단어를 정말 자주 보게 된다. 처음에는 이름부터 너무 어려워 보여서 그냥 넘어갔던 기억이 있다. 나도 예전에는 CPU가 모든 걸 스스로 알아서 처리하는 줄 알았다. 그런데 조금씩 운영체제와 하드웨어 구조를 공부하다 보니까, 실제로는 CPU가 계속 모든 장치를 직접 확인하는 방식으로는 절대 효율적으로 동작할 수 없다는 걸 알게 됐다. 그 문제를 해결하기 위해 등장한 개념이 바로 인터럽트다. CPU가 모든 장치를 계속 확인하면 너무 비효율적이다컴퓨터에는 정말 많은 장치들이 연결되어 있다. 키보드, 마우스, SSD, 네트워크 카드 같은 장치들이 계속 데이터를 주고받는다. 처음에는 CPU가 이런 장치들을 하나씩 계속 확인하는 줄 알았다.예를 들어 .. 2026. 5. 13. 이전 1 2 3 4 ··· 23 다음