해당 신호의 각 주기는 CPU가 한 명령어를 처리하는 데 필요한 클럭의 단위로 구분 짓는 데 사용된다.
간단하게 컴퓨터의 모든 부품을 알맞게 동작할 수 있도록 하는 시간 단위라고도 할 수 있다.
그래서 CPU의 동작 속도를 나타내는 척도로
CPU 내부에서 발생하는 전기적 펄스의 빈도를 의미한다.
(해당 펄스는 CPU가 명령어를 처리하는 속도를 결정하게 된다.)
정리
컴퓨터 부품들은 정해진 "클럭 신호"에 맞춰서 움직인다.
CPU는 "명령어 사이클" 흐름에 맞춰 명령어들을 실행한다.
클럭 신호에 따라 속도가 변하는 이유
클럭 신호가 빨라짐
클럭 신호가 빨라진 만큼 CPU는 명령어 사이클을 더 빠르게 반복 진행
명령어 사이클이 빠르게 반복하므로 해당 속도에 맞춰서 다른 부품들도 그에 발맞춰 빠르게 동작
즉, 클럭 속도가 높은 CPU는 일반적으로 성능이 좋다.
그래서 클럭 속도는 CPU의 속도 단위로 간주되기도 한다.
클럭 속도는 헤르츠(Hz) 단위로 측정하며, 이는 1초에 클럭이 몇 번 반복되는지를 의미하며 일반적으로 기가헤르츠(GHz) 단위로 측정된다. (1GHz = 10억Hz)
다만, 클럭은 시계처럼 일정한 속도로 유지되는 것이 아니라 빨라질 수도 있고, 느려질 수도 있다.
그래서 판매하는 CPU를 살펴보면 기본 클럭 속도(Base)와 최대 클럭 속도(Max)가 같이 표기되어 있는 것을 볼 수 있는데 이는 대부분 상황에서 Base 클럭 속도(최소 보장 속도)로 안정적인 동작을 수행하도록 설계되어 있으며, 특정 조건 하에서 일시적으로 Max 클럭 속도까지 도달할 수 있다는 있다는 표기다.
하지만 클럭 속도만 무지막지하게 높다고 무조건 CPU가 빨라지는 것은 아니다.
그래픽이 많이 요구되는 동작을 수행하는 경우에
클럭 속도가 높을수록 발열 문제가 더 심각해질 수도 있다.
이러한 현상에 대해 일부 원인
클럭 속도 상승 -> 전력 소모 증가 -> 발열 발생 (성능은 향상되지만 효율성은 감소)
클럭 속도 상승 -> CPU or GPU 내부의 수많은 트랜지스터의 스위칭이 빈번하게 발생 -> 발열 발생
CPU에서 사용되는 스레드 : 하드웨어적 스레드 프로그래밍에서 사용되는 스레드 : 소프트웨어적 스레드
하드웨어적 스레드는 하나의 코어가 동시에 처리하는 명령어 단위(개수)를 의미한다. (물리적인 CPU 코어에서 동시에 실행할 수 있는 스레드) 보통 기본적인 CPU를 설명하는 경우 1코어/1스레드인 CPU를 기준으로 설명을 한다. 즉, "명령어를 실행하는 부품"이 하나 있고(1코어), 한 번에 하나씩 명령어를 실행(1스레드)한다.
다만 여러 스레드를 지원하는 CPU는 하나의 코어로도 여러 개의 명령어를 동시에 실행할 수 있다. 위 그림처럼 2코어/4스레드인 경우 동시에 2개의 코어를 동작할 수 있으며 각 코어는 2개씩 스레드를 가지고 있으며 각 코어는 명령어를 동시에 2개씩 실행할 수 있다. 즉, 동시에 총 4개의 명령어까지 처리할 수 있다는 의미다.
이렇게 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 "멀티스레드 프로세서" 또는 "멀티스레드 CPU"라고 부른다.
Tip. CPU 회사인 인텔에서는 자신들이 만든 멀티스레드 기술을 "하이퍼스레드"라고 지칭하기도 한다.
스프트웨어적 스레드는 하나의 프로그램에서 독립적으로 실행되는 단위(개수)를 의미한다. (운영체제와 애플리케이션에서 관리하는 스레드)
하나의 프로그램은 실행되는 과정에서 한 부분만 실행될 수도 있지만, 여러 부분이 동시에 실행될 수도 있다.
구현하고 싶은 기능이 3가지 있다고 가정하자. 1. 입출력장치(키보드)를 통해 입력받은 내용을 화면에 보여주기 2. 맞춤법 검사 3. 현재 상황을 수시로 저장
각 기능을 동작시키는 코드를 각각의 스레드로 만들면 동시에 실행할 수 있게 된다.
정리
하드웨어적 스레드는 하나의 코어가 동시에 처리하는 명령어 단위를 의미하여 스레드 개수만큼까지만 동시에 명령어 처리가 가능하지만 소프트웨어적 스레드는 CPU에 1스레드만 존재한다고 해도 프로그램의 여러 부분을 동시에 실행할 수 있다. (소프트웨어에서 말하는 스레드는 CPU의 스레드를 가리키는 것이 아니기 때문)
즉, 하드웨어 기준에서 말하는 스레드와 소프트웨어 기준에서 말하는 스레드는 서로 다른 기준을 가지고 있다.
해당 신호의 각 주기는 CPU가 한 명령어를 처리하는 데 필요한 클럭의 단위로 구분 짓는 데 사용된다.
간단하게 컴퓨터의 모든 부품을 알맞게 동작할 수 있도록 하는 시간 단위라고도 할 수 있다.
그래서 CPU의 동작 속도를 나타내는 척도로
CPU 내부에서 발생하는 전기적 펄스의 빈도를 의미한다.
(해당 펄스는 CPU가 명령어를 처리하는 속도를 결정하게 된다.)
정리
컴퓨터 부품들은 정해진 "클럭 신호"에 맞춰서 움직인다.
CPU는 "명령어 사이클" 흐름에 맞춰 명령어들을 실행한다.
클럭 신호에 따라 속도가 변하는 이유
클럭 신호가 빨라짐
클럭 신호가 빨라진 만큼 CPU는 명령어 사이클을 더 빠르게 반복 진행
명령어 사이클이 빠르게 반복하므로 해당 속도에 맞춰서 다른 부품들도 그에 발맞춰 빠르게 동작
즉, 클럭 속도가 높은 CPU는 일반적으로 성능이 좋다.
그래서 클럭 속도는 CPU의 속도 단위로 간주되기도 한다.
클럭 속도는 헤르츠(Hz) 단위로 측정하며, 이는 1초에 클럭이 몇 번 반복되는지를 의미하며 일반적으로 기가헤르츠(GHz) 단위로 측정된다. (1GHz = 10억Hz)
다만, 클럭은 시계처럼 일정한 속도로 유지되는 것이 아니라 빨라질 수도 있고, 느려질 수도 있다.
그래서 판매하는 CPU를 살펴보면 기본 클럭 속도(Base)와 최대 클럭 속도(Max)가 같이 표기되어 있는 것을 볼 수 있는데 이는 대부분 상황에서 Base 클럭 속도(최소 보장 속도)로 안정적인 동작을 수행하도록 설계되어 있으며, 특정 조건 하에서 일시적으로 Max 클럭 속도까지 도달할 수 있다는 있다는 표기다.
하지만 클럭 속도만 무지막지하게 높다고 무조건 CPU가 빨라지는 것은 아니다.
그래픽이 많이 요구되는 동작을 수행하는 경우에
클럭 속도가 높을수록 발열 문제가 더 심각해질 수도 있다.
이러한 현상에 대해 일부 원인
클럭 속도 상승 -> 전력 소모 증가 -> 발열 발생 (성능은 향상되지만 효율성은 감소)
클럭 속도 상승 -> CPU or GPU 내부의 수많은 트랜지스터의 스위칭이 빈번하게 발생 -> 발열 발생
CPU에서 사용되는 스레드 : 하드웨어적 스레드 프로그래밍에서 사용되는 스레드 : 소프트웨어적 스레드
하드웨어적 스레드는 하나의 코어가 동시에 처리하는 명령어 단위(개수)를 의미한다. (물리적인 CPU 코어에서 동시에 실행할 수 있는 스레드) 보통 기본적인 CPU를 설명하는 경우 1코어/1스레드인 CPU를 기준으로 설명을 한다. 즉, "명령어를 실행하는 부품"이 하나 있고(1코어), 한 번에 하나씩 명령어를 실행(1스레드)한다.
다만 여러 스레드를 지원하는 CPU는 하나의 코어로도 여러 개의 명령어를 동시에 실행할 수 있다. 위 그림처럼 2코어/4스레드인 경우 동시에 2개의 코어를 동작할 수 있으며 각 코어는 2개씩 스레드를 가지고 있으며 각 코어는 명령어를 동시에 2개씩 실행할 수 있다. 즉, 동시에 총 4개의 명령어까지 처리할 수 있다는 의미다.
이렇게 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 "멀티스레드 프로세서" 또는 "멀티스레드 CPU"라고 부른다.
Tip. CPU 회사인 인텔에서는 자신들이 만든 멀티스레드 기술을 "하이퍼스레드"라고 지칭하기도 한다.
스프트웨어적 스레드는 하나의 프로그램에서 독립적으로 실행되는 단위(개수)를 의미한다. (운영체제와 애플리케이션에서 관리하는 스레드)
하나의 프로그램은 실행되는 과정에서 한 부분만 실행될 수도 있지만, 여러 부분이 동시에 실행될 수도 있다.
구현하고 싶은 기능이 3가지 있다고 가정하자. 1. 입출력장치(키보드)를 통해 입력받은 내용을 화면에 보여주기 2. 맞춤법 검사 3. 현재 상황을 수시로 저장
각 기능을 동작시키는 코드를 각각의 스레드로 만들면 동시에 실행할 수 있게 된다.
정리
하드웨어적 스레드는 하나의 코어가 동시에 처리하는 명령어 단위를 의미하여 스레드 개수만큼까지만 동시에 명령어 처리가 가능하지만 소프트웨어적 스레드는 CPU에 1스레드만 존재한다고 해도 프로그램의 여러 부분을 동시에 실행할 수 있다. (소프트웨어에서 말하는 스레드는 CPU의 스레드를 가리키는 것이 아니기 때문)
즉, 하드웨어 기준에서 말하는 스레드와 소프트웨어 기준에서 말하는 스레드는 서로 다른 기준을 가지고 있다.