맨위로가기

클럭당 명령어 처리 횟수

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

클럭당 명령어 처리 횟수(IPC)는 중앙 처리 장치(CPU)가 클럭 사이클당 실행할 수 있는 명령어 수를 나타낸다. 초기 CPU는 한 번에 하나의 명령어를 처리했지만, 명령어 파이프라인 및 슈퍼스칼라 프로세서 설계를 통해 여러 명령어를 병렬로 처리하여 IPC를 향상시켰다. IPC는 CPU의 초당 명령어 수와 플롭스(초당 부동 소수점 연산)를 계산하는 데 사용되며, 프로세서의 클럭 속도와 함께 성능을 나타내는 지표로 활용된다. IPC는 소프트웨어, 메모리 계층 등 다양한 요인에 따라 달라지며, 명령어 집합 구조와 마이크로아키텍처, 컴퓨터 시스템 구성, 운영 체제 및 응용 소프트웨어의 설계 등도 컴퓨터의 전반적인 속도에 영향을 미친다.

더 읽어볼만한 페이지

  • 클럭 신호 - 클럭 속도
    클럭 속도는 CPU의 주기적인 신호 속도로 헤르츠(Hz) 단위로 측정되며, CPU 성능에 영향을 미치지만 아키텍처 등 다른 요인과 함께 고려해야 하고, 오버클럭킹은 성능 향상과 함께 시스템 불안정의 위험이 있다.
  • 클럭 신호 - 클럭 게이팅
    클럭 게이팅은 디지털 회로에서 불필요한 클럭 신호 전달을 막아 전력 소모를 줄이는 기술로, 저전력 장치에 필수적으로 활용되며, RTL 코딩 등을 통해 설계에 적용되어 에너지 효율성을 높이는 데 기여한다.
  • 명령어 처리 - 멀티스레딩
    멀티스레딩은 프로세스 내에서 여러 스레드를 동시 실행하여 처리 능력을 향상시키는 기술로, 응답성 향상과 자원 공유 등의 장점이 있지만, 자원 간섭과 소프트웨어 복잡성 증가 등의 단점도 존재하며, 다양한 모델과 구현 방식, 스레드 스케줄러, 가상 머신 활성화 가능성 등을 고려해야 한다.
  • 명령어 처리 - 마이크로아키텍처
    마이크로아키텍처는 명령어 집합 아키텍처를 구현하는 프로세서의 구성 요소, 상호 연결, 작동 방식을 포괄하는 개념으로, 동일 ISA에서 반도체 기술 발전과 새로운 구조 및 회로를 통해 성능 향상을 가능하게 한다.
클럭당 명령어 처리 횟수
기본 정보
정의클럭 사이클당 실행되는 명령어의 평균 수
약칭IPC
관련 지표명령어 처리량, 명령어당 사이클 수
설명
개념IPC는 주어진 프로그램에 대해 컴퓨터의 성능을 평가하는 한 가지 방법임. 주어진 프로그램에 대해 IPC 값이 높을수록 빠름. IPC는 명령어당 사이클 수(CPI)의 역수와 같음.
영향 요인CPU 설계
메모리 시스템
컴파일러 최적화
활용마이크로프로세서 아키텍처의 성능 특성을 설명하는 데 사용됨
같이 보기
관련 항목명령어 처리량
명령어당 사이클 수
FLOPS
컴퓨터 성능

2. 사이클 당 명령어 수(IPC) 설명

초기 CPU는 명령어를 순차적으로 실행했지만, 현대 CPU는 명령어 파이프라인과 슈퍼스칼라 프로세서 설계를 통해 여러 작업을 병렬로 처리한다. 이 때문에 "사이클당 완료된 명령어 수"(IPC)가 1보다 훨씬 높아졌으며, 이는 CPU 성능 향상에 크게 기여했다.

높은 MIPS는 높은 IPC와 낮은 클럭 속도(예: AMD 애슬론, 초기 인텔 코어 시리즈), 또는 낮은 IPC와 높은 클럭 속도(예: 인텔 펜티엄 4, AMD 불도저)로 얻을 수 있다. 그러나 IPC와 클럭 속도가 모두 높으면 일반적으로 더 높은 성능을 낸다.

2. 1. IPC 계산

IPC(클럭당 명령어 처리 횟수)는 일련의 코드를 실행하고, 이를 완료하는 데 필요한 기계어 수준 명령어 수를 계산한 다음, 고성능 타이머를 사용하여 실제 하드웨어에서 이를 완료하는 데 필요한 클럭 사이클 수를 계산하여 수행된다. 최종 결과는 명령어 수를 CPU 클럭 사이클 수로 나누어 얻는다.

프로세서의 초당 명령어 수와 초당 부동 소수점 연산은 사이클당 명령어 수에 해당 프로세서의 클럭 속도(헤르츠로 표시된 초당 사이클 수)를 곱하여 구할 수 있다. 초당 명령어 수는 프로세서의 예상 성능을 대략적으로 나타내는 지표이다.

IPC 계산 절차는 다음과 같다. 먼저, 하나의 코드 세트를 실행하고, 이를 완료하는 데 필요한 머신 레벨의 명령 수를 계산한다. 다음으로, 고정밀 타이머를 사용하여 실제 하드웨어에서 앞서 언급한 코드 세트를 완료하는 데 필요한 클록 사이클 수를 계산한다. 마지막으로, 명령 수를 CPU의 클록 사이클 수로 나눔으로써 IPC를 얻을 수 있다.

2. 2. 명령어 집합과 IPC

프로세서의 초당 명령어 수와 초당 부동 소수점 연산은 클럭당 명령어 수에 해당 프로세서의 클럭 속도(헤르츠로 표시된 초당 사이클 수)를 곱하여 구할 수 있다. 초당 명령어 수는 프로세서의 예상 성능을 대략적으로 나타내는 지표이다.

클럭당 실행되는 명령어 수는 주어진 프로세서에 대해 일정하지 않다. 실행 중인 특정 소프트웨어가 프로세서, 실제로 전체 머신, 특히 메모리 계층과 상호 작용하는 방식에 따라 달라진다. 그러나 특정 프로세서 기능은 평균보다 높은 IPC 값을 갖는 설계를 유도하는 경향이 있다. 여러 개의 산술 논리 장치(ALU는 기본적인 산술 및 논리 연산을 수행할 수 있는 프로세서 하위 시스템)와 짧은 파이프라인이 존재한다. 서로 다른 명령어 집합을 비교할 때, 더 간단한 명령어 집합은 동일한 칩 기술을 사용하는 더 복잡한 명령어 집합의 구현보다 더 높은 IPC 값을 가질 수 있다. 그러나 더 복잡한 명령어 집합은 더 적은 수의 명령어로 더 유용한 작업을 수행할 수 있다. 따라서 서로 다른 명령어 집합 간의 IPC 값을 비교하는 것은 (예: x86 대 ARM) 일반적으로 의미가 없다.

3. 컴퓨터 속도

초기 세대의 CPU는 명령을 실행하기 위한 모든 단계를 순차적으로 수행했지만, 현대 CPU는 많은 작업을 병렬로 처리할 수 있다. 클럭 속도를 계속 두 배로 늘리는 것은 불가능하기 때문에, 명령어 파이프라인과 슈퍼스칼라 프로세서 설계가 발전하여 CPU가 다양한 실행 유닛을 병렬로 사용할 수 있게 되었다. 즉, 들어오는 명령을 미리 살펴보면서 최적화한다. 이로 인해 "사이클당 완료된 명령어 수"가 1보다 훨씬 높아졌으며, 이후 CPU 세대의 속도 향상에 크게 기여했다.

프로세서의 초당 명령어 수와 초당 부동 소수점 연산은 사이클당 명령어 수에 해당 프로세서의 클럭 속도(헤르츠로 표시된 초당 사이클 수)를 곱하여 구할 수 있다. 초당 명령어 수는 프로세서의 예상 성능을 대략적으로 나타내는 지표이다.

클럭당 실행되는 명령어 수는 주어진 프로세서에 대해 일정하지 않다. 실행 중인 특정 소프트웨어가 프로세서, 실제로 전체 머신, 특히 메모리 계층과 상호 작용하는 방식에 따라 달라진다. 그러나 특정 프로세서 기능은 평균보다 높은 IPC 값을 갖는 설계를 유도하는 경향이 있다. 여러 개의 산술 논리 장치(ALU는 기본적인 산술 및 논리 연산을 수행할 수 있는 프로세서 하위 시스템)와 짧은 파이프라인의 존재이다. 서로 다른 명령어 집합을 비교할 때, 더 간단한 명령어 집합은 동일한 칩 기술을 사용하는 더 복잡한 명령어 집합의 구현보다 더 높은 IPC 값을 가질 수 있다. 그러나 더 복잡한 명령어 집합은 더 적은 수의 명령어로 더 유용한 작업을 수행할 수 있다. 따라서 서로 다른 명령어 집합 간의 IPC 값을 비교하는 것은 (예: x86 대 ARM) 일반적으로 의미가 없다.

어떤 컴퓨터로 수행할 수 있는 유용한 작업은 프로세서 속도 외에도 명령어 집합 구조, 프로세서의 마이크로아키텍처, 컴퓨터 시스템 구성(예: 디스크 저장 장치 시스템의 설계와 연결된 다른 장치의 성능 및 기능), 운영 체제의 효율성, 응용 소프트웨어의 상위 수준 설계 등 여러 요인에 따라 달라진다.

컴퓨터 사용자 및 구매자에게 사이클당 명령어 수보다는 응용 벤치마크가 일반적으로 시스템 성능에 대한 훨씬 더 유용한 지표이다. 그러나 IPC는 클럭 속도가 컴퓨터 성능과 관련된 유일한 요소가 아닌 이유를 보여주는 한 가지 예시이다.

4. 다양한 마이크로아키텍처를 위한 사이클 당 FLOP

CPU 계열2배 정밀도단일 정밀도
인텔 코어 및 인텔 네할렘4 DP IPC8 SP IPC
인텔 샌디브리지인텔 아이비브리지8 DP IPC16 SP IPC
인텔 하스웰, 인텔 브로드웰인텔 스카이레이크 (클라이언트)16 DP IPC32 SP IPC
인텔 스카이레이크 (서버)32 DP IPC64 SP IPC
AMD K104 DP IPC8 SP IPC
AMD 불도저, AMD 파일드라이버 및 AMD 스팀롤러, 모듈 당 (2 코어)8 DP IPC16 SP IPC
인텔 아톰 (Bonnell, Saltwell, Silvermont 및 Goldmont)2 DP IPC4 SP IPC
AMD 밥캣2 DP IPC4 SP IPC
AMD 재규어4 DP IPC8 SP IPC
ARM Cortex-A71 IPC8 SP IPC
ARM Cortex-A91 IPC8 SP IPC
ARM Cortex-A151 DP IPC8 SP IPC
ARM Cortex-A322 DP IPC8 SP IPC
ARM Cortex-A352 DP IPC8 SP IPC
ARM Cortex-A532 DP IPC8 SP IPC
ARM Cortex-A572 DP IPC8 SP IPC
ARM Cortex-A722 DP IPC8 SP IPC
Qualcomm Krait1 DP IPC8 SP IPC
Qualcomm Kryo2 DP IPC8 SP IPC
IBM PowerPC A2 (Blue Gene/Q), 코어 당8 DP IPC (SP 요소는 DP로 확장되며 동일한 유닛 상에서 처리된다)
IBM PowerPC A2 (Blue Gene/Q), 스레드 당4 DP IPC (SP 요소는 DP로 확장되며 동일한 유닛 상에서 처리된다)
인텔 제온 파이 (Knights Corner), 코어 당16 DP IPC32 SP IPC
인텔 제온 파이 (Knights Corner), 스레드 당 (코어 당 2개)8 DP IPC16 SP IPC



어떤 컴퓨터에서든 가능한 동작의 실행 속도는 프로세서 속도 외에도 명령어 집합 아키텍처, 프로세서의 마이크로아키텍처, 컴퓨터 시스템 구성(보조 기억 장치의 설계 및 기타 부속 장치의 가용성과 성능 등), 운영 체제의 효율성, 사용되는 애플리케이션 소프트웨어 설계의 정교함 등 다양한 요인에 따라 달라진다.

컴퓨터 시스템 사용자나 구매자에게 IPC는 시스템 성능의 척도가 되지 않는다. 시스템 성능을 측정하려면 벤치마크가 훨씬 유용하다.

참조

[1] 서적 Computer organization and design: the hardware/software interface https://www.worldcat[...] Elsevier/Morgan Kaufmann, Morgan Kaufmann is an imprint of Elsevier 2014
[2] 서적 Computer Architecture: A Quantitative Approach https://books.google[...] Elsevier 2006-11-03
[3] 서적 Computer organization and architecture: designing for performance Pearson-Prentice Hall 2016
[4] 서적 Computer architecture: a quantitative approach https://books.google[...] 2007



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com