
연차가 쌓일수록 프레임워크 사용법보다는 "도대체 이 코드가 하드웨어 위에서 어떻게 도는가?"에 대한 갈증이 생긴다. 오늘은 컴퓨터 구조의 가장 기초인 폰 노이만 구조와 하버드 구조, 그리고 자바 개발자에게 떼려야 뗄 수 없는 JIT 컴파일러가 이 구조 위에서 겪는 캐시

지난 포스팅에서 폰 노이만 구조의 병목 현상에 대해 다뤘다. 하지만 CPU 엔지니어들은 단순히 병목을 해결하는 것에 그치지 않고, "어떻게 하면 클럭당 처리량(IPC: Instructions Per Clock)을 늘릴 수 있을까?"를 고민했다.명령어 하나가 끝날 때까지

지난 포스팅에서 우리는 CPU가 성능을 극대화하기 위해 결과를 모르는 상태에서 미리 실행하는 '추측 실행(Speculative Execution)'을 한다고 배웠다. 하지만 모든 도박에는 리스크가 따른다.만약 CPU의 예측이 빗나간다면(Misprediction) 어떤

원래 물리나 수학에서 스칼라(Scalar)는 '방향 없이 크기(값)만 있는 것'을 말해. (예: 온도, 몸무게). 반대로 방향까지 있는 건 벡터(Vector)라고 하지.컴퓨터 구조에서 '스칼라 프로세서'라고 하면 "한 번에 딱 하나씩(Single) 처리하는 놈"이라는

개발자가 작성한 고상한 객체지향 코드도, 결국은 전기가 되어 실리콘 칩 위를 달린다."내 코드가 물리적으로 어떻게 실행되는가?"를 이해하는 것은 시니어 개발자로 가기 위한 필수 관문이다.본 포스팅은 CPU가 속도의 한계를 극복해 온 4단계 진화 과정(구조 → 파이프라인