개발/CS

CPU 성능 향상을 위한 설계

쪼르뚜 2025. 5. 29. 20:34
728x90
반응형

 

⭐ 이 포스팅은 위 책의 Chapter02 컴퓨터 구조 - CPU (70p ~ 78p) 분량의 내용을 바탕으로 정리했습니다.

 

CPU 클럭 속도

클럭(clock)이란 컴퓨터 부품을 일사불란하게 움직일 수 있게 하는 시간의 단위입니다. 클럭 속도는 헤르츠(Hz) 단위로 측정되는데, 이는 클럭이 1초에 몇 번 반복되는지를 나타냅니다. 클럭 속도가 높은 CPU는 일반적으로 성능이 좋아 클럭 속도는 CPU 속도 단위로 간주되기도 합니다.

멀티코어와 멀티스레드

코어(core)CPU 내에서 명령어를 읽어 들이고, 해석하고, 실행하는 부품을 의미합니다. 여러 개의 코어를 포함하고 있는 CPU는 멀티코어 CPU, 혹은 멀티코어 프로세서라고 부릅니다.

스레드(thread)의 사전적 의미는 '실행 흐름의 단위'입니다. 하지만 범용성 높은 용어이기 때문에 CPU에서 사용하는 하드웨어적인 스레드프로그래밍 언어 및 운영체제에서 사용하는 소프트웨어적인 스레드로 나누어 기억해야 합니다.

 

하드웨어 스레드하나의 코어가 동시에 처리하는 명령어의 단위를 의미합니다. 코어 하나가 한 번에 하나의 명령어를 처리한다면 1코어 1스레드 CPU이고, 코어 2개가 한 번에 4개의 명령어를 처리한다면 이는 2코어 4스레드 CPU인 것입니다. 하지만 이는 하드웨어 스레드 메모리 속 프로그램 입장에서 CPU와 다를 바 없습니다. 그래서 하드웨어 스레드를 논리 프로세서(logical processor)라고 부르기도 합니다.

소프트웨어 스레드하나의 프로그램에서 독립적으로 실행되는 단위를 의미합니다. '어떤 프로그램이 여러 스레드를 통해 실행될 수 있다'는 말은 '메모리에 적재된 해당 프로그램을 구성하는 여러 부분이 동시에 실행될 수 있다'는 말과 같습니다. 유의할 점은 하드웨어 스레드가 하나인 CPU로도 이러한 프로그램을 충분히 실행할 수 있다는 점입니다.

 

하드웨어 스레드와 소프트웨어 스레드의 차이는 동시성병렬성으로 더 명확히 이해할 수 있습니다.

병렬성(parallelism)은 작업을 물리적으로 동시에 처리하는 성질입니다. 하드웨어 스레드가 4개인 CPU가 4개의 명령어를 동시에 실행하는 경우입니다.

동시성(concurrency)은 동시에 작업을 처리하는 것처럼 보이는 성질을 의미합니다. 이 CPU가 빠르게 작업을 번갈아 가며 처리할 경우, 사용자의 눈에는 마치 여러 작업이 동시에 처리되는 것처럼 보일 수 있지만, 물리적으로 같은 시점에 여러 작업이 동시에 처리되고 있는 것은 아닙니다.

즉, 하드웨어 스레드는 '병령성'을 구현하기 위한 물리적인 실행 단위에 가깝고, 소프트웨어 스레드는 '동시성'을 구현하기 위한 논리적인 실행 단위에 가깝습니다.

728x90
반응형