Profile picture

10cheon00의 Archive

컴퓨터 구조론 (1) - 컴퓨터 추상화 및 관련 기술

October 26, 2023

2023년 2학기 컴퓨터 구조론 수업을 듣고 정리한 내용입니다. 수업 교재는 컴퓨터 구조 및 설계 RISC-V 2판입니다. 컴퓨터 추상화 및 관련 기술인데 CPU 성능을 측정하는 방법밖에 기억나지 않는다. :(

컴퓨터 구조 분야의 7가지 아이디어

  • 설계를 단순화하는 추상화
  • 자주 생기는 일을 빠르게
  • 병렬성을 통한 성능 개선
  • 파이프라이닝을 통한 성능 개선
  • 예측을 통한 성능 개선
  • 메모리 계층 구조
  • 여유분을 이용한 신용도 개선

하나하나 다 정리하기 버거워서, 대신 잘 정리된 링크로 대채한다.

컴퓨터 구조 개발의 아이디어 7가지 (추상화, 빠르게, 병렬성, 파이프라이닝, 예측, 계층구조, 신용도)

CPU 성능

CPU 성능은 특정 프로그램을 실행하는데 걸리는 시간, 다른 말로 하면 정해진 개수의 명령어를 처리하는데 걸린 실행시간으로 측정한다.

CPU 성능을 알기 위해 구하는 실행시간은 아래의 공식으로 얻어진다.

실행시간=명령어 수CPICCT실행 시간 = {명령어\ 수}*{CPI}*{CCT}

CPI

Clock Per Instruction이다. 전체 클럭 수를 전체 명령어 수로 나눠 한 명령어를 실행하는데 몇 개의 클록이 필요한지를 의미한다.

CPI=전체 클럭수프로그램의 전체 명령어 수CPI = {{전체\ 클럭 수}\over{프로그램의\ 전체\ 명령어\ 수}}

ex) 명령어 3개를 실행하는데 24클록이 필요하다면 이 CPU의 CPI243=8{{24}\over{3}} = 8이다.

CCT

Clock Cycle Time으로, 클럭의 주기를 의미한다. 주기값으로 CPU의 클럭을 나타내기보단 주기의 역수인 주파수(클럭 속도)로 CPU의 클럭을 나타낸다.

예를 들어 AMD 5600x의 기본 클럭은 3.7Ghz인데, 역수를 취하면 약 0.27027027ns을 얻을 수 있다. 이게 CCT다.

클럭속도=1CCT클럭 속도 = {1\over{CCT}}

클럭 시간의 역수가 주파수, 즉 클럭 속도임을 알고 있기 때문에 CPU의 실행 시간을 구하는 공식은 이렇게도 쓸 수 있다.

실행시간=명령어 수CPICCT=명령어 수CPI클럭 속도실행 시간 = {{명령어\ 수}*{CPI}*{CCT}} = {{{명령어\ 수}*{CPI}}\over{클럭\ 속도}}

예시

Q. 명령어 10810^8개를 실행하는데 실행시간이 15초이고 클럭 속도가 1.01091.0*10^9일 때, CPI는?

위 공식에 따라,

15=108CPI1.010915 = {{10^8 * CPI}\over{1.0*10^9}}

전개하면 CPI=150 CPI = 150이다.

Q. 아래의 표를 보고 평균 CPI를 구하라.

A프로그램 B프로그램 C프로그램
클록수 3 5 2
명령어수 1 5 6

평균 CPI는 CPI공식에 의해 전체 클럭 수를 전체 명령어 수로 나눈 값이다.

평균 CPI=31+55+261+5+6=4012=2.5평균\ CPI = {{3*1 + 5*5 + 2*6}\over{1+5+6}} = {40\over{12}} = 2.5

따라서 2.5임을 알 수 있다. 이렇게 얻은 평균 CPI값은 다른 CPU의 평균 CPI값과 비교하여 상대 성능을 측정해볼 수도 있다.

CPU 전력

성능이 아무리 좋아도 전성비가 꽝이면 좋은 CPU로 보기 힘들다.

전력=12용량성 부하V2f전력 = {{1\over2} *{용량성\ 부하}*V^2*f}

VV는 전압이고, ff는 스위칭 빈도, 즉 주파수를 말하고 클럭 속도가 된다. 용량성 부하는 트랜지스터를 의미한다는 것 같다.


Loading script...