컴퓨터 구성 요소
- Input
- Output
- Memory
- 프로세서
- datapath(데이터가 다니는 통로)
- control(제어 유닛)
각각의 예시
- input : 키보드, 마우스, 마이크, 네트워크 어댑터, SSD
- output : 스피커, LCD, SSD
- memory : dram(느리지만 용량이 큼), sram(빠르지만 용량이 크진 않음)
- processor(cpu : central processing unit)
- data path : 산술 연산을 수행
- control : datapath, memory, I/O에게 뭘 할지 명령
컴퓨터 성능
응답시간(Response Time = execution time)
작업개시에서 종료까지의 시간
일반적으로 사용자가 요청을 시작한 후 첫 번째 응답을 받을 때까지 걸리는 시간을 측정(웹페이지 요청)
- 디스크 접근, 메모리 접근, 입출력 작업, 운영체제 오버헤드 및 cpu시간을 다 포함
Throughput(Bandwidth)
일정 시간동안 처리하는 작업의 양
- bps(bit/s)
- flops
- 단위시간 1초에 얼마나 많은 floation point를 연산하는가(즉, 1초에 (+, *)연산을 몇번 하는가?)
- 예시)
- 2G flops per 1 cpu
- 4 cpu = 8G flops
- 단위
- 1k → 1M → 1G → 1T → 1P (*10^3)
- 키로 → 메가 → 기가 → 테라 → 페타
- 1m → 1µ → 1n → 1p → 1f (/10^3)
- 미리 → 마이크로 → 나노 → 피코 → 펨토
Wall clock time(elapsed time)
한 작업을 끝내는데 필요한 전체 시간
- 프로그램이 실행되는 데 걸리는 시간이나 파일을 전송하는 데 걸리는 시간 등을 측정할 때 사용
🔥 response time과 wall clock time의 차이점
wall clock time은 작업이 완료되는 데 걸리는 전체 시간을 측정하고, response time은 요청에 대한 응답이 얼마나 빨리 전송되는지를 측정
cpu time
I/O 대기시간을 제외하고 cpu가 이 작업에만 사용한 시간
- 프로세서가 순수하게 이 프로그램을 실행하기 위해 소비한 시간
공식
Response time(실행 시간)
cpu time(cpu 실행시간)
CPI(명령어 성능)과 CPU 클럭사이클 수
문제 예시
- 같은 프로그램을 컴퓨터 A에서 10초, B에서는 15초 컬린다면 A는 B 보다 얼마나 빠른가?
풀이
A가 B보다 얼마나 빠른지 묻는 것이므로 상대적인 값 구하기
실행시간 A의 1.5배가 실행시간 B
- We want to build a computer B that execute our
program in 6 seconds whereas a 2GHz-computer A
does in 10 seconds. Raising the clock rate of the
computer B causes to require 1.2 times as many clock
cycles as computer A. What should be the clock rate
of computer B?
컴퓨터 A = 실행시간 : 10초, 클럭싸이클 시간 : 2GHz
컴퓨터 B = 실행시간 : 6초, 클럭싸이클 시간 : ?
컴퓨터 B의 클럭속도를 높이는 것은 컴퓨터 A의 클럭싸이클 수를 1.2배한 만큼이 필요하다.
- Which code sequence will be faster?
4.
- Computers A and B implement the same ISA. Computer A has a clock cycle time of 250 ps and an effective CPI of 2.0 for some program and computer B has a clock cycle time of 500 ps and an effective CPI of 1.2 for the same program. Which computer is faster and by how much?
프로그램 성능에 영향을 미치는 것
효과적인 알고리즘을 골라야 좋은 퍼포먼스가 나옴(CPI, 명령어 개수에 영향)
프로그래밍 언어에 따라 명령의 개수에 형향을 줌
컴파일러는 소스 언어를 컴퓨터 명령어로 변환하는 역할으 수행하기에 얼마나 효율적인가에 따라 영향을 줌
ISA는 명령어 집합 구조로 어떤 기능을 수행하기 위해 필요한 명령어의 수, 명령어당 사이클 수, 프로세서의 클럭 속도에 미치는 영향을 미침
Power
- 집적회로의 주된 기술인 CMOS가 에너지를 소비하는 주원인은 동적 에너지(트랜지스터가 0=>1 혹은 반대로 스위칭 되는 동안 소비되는 에너지)
If we reduce a voltage 25%, how much can we reduce
the dynamic power consumption?
- 파워를 낮추는 방법 : 전압 낮추기
- frequency를 유지하면서 전압을 낮추기는 힘듦
- 트랜지스터의 volatge를 줄일 수 없어서(Threshhold volatge가 고정되어있기에 V_{dd}가 더 낮출수 없기 때문에(0과 1이 구분이 안될 수 있음)
- 멀티코어로 기술 발전(전압을 낮추긴 힘들기에 코어를 여러개 사용)
단일 프로세서에서 멀티 프로세서
멀티코어는 성능을 늘릴 수 있음(Power 소비량을 비슷하게 유지하면서)
- 한 프로그램의 응답속도 개선 대신 여러 프로그램의 처리량을 개선
- 예를 들어 for문을 돌아도 100번까지 돌면 한 프로세스는 0
49, 다른 프로세스는 50100까지 도는 형식으로 멀티코어로 처리량 개선하기위한 알고리즘 필요 - 멀티코어여도 순서가 있다면 처리량이 비슷함?
- 하드웨어 악셀러레이터 사용(특수 작업을 빠르게 처리)
- 예를 들어 for문을 돌아도 100번까지 돌면 한 프로세스는 0
- C는 늘지만 전압과 Frequency를 줄여 전체 Power를 줄임
- 나노를 줄일수록 vdd를 줄이는데 power
Amdahl의 법칙
A program runs in 100 seconds in a computer. Multiply
operations takes 80 seconds out of 100 seconds. How
much speedup do I have to achieve in multiply
operation to make the program 5 times faster ?
개선크기를 구할 수 없음
MIPS
실행시간 대신 쓸 수 있는 척도 중 하나
instuctions(명령어 집합)가 다른 경우 mips로 비교해도 의미 x
📌cpu 실행시간만이 유용한 성능 척도
'컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 6(병렬 프로그래밍, GPU&CPU 비교) (0) | 2023.06.28 |
---|---|
컴퓨터 구조 5(캐시) (0) | 2023.06.28 |
컴퓨터 구조 4(파이프라이닝) (0) | 2023.06.28 |
컴퓨터 구조 3(Datapath) (0) | 2023.05.03 |
컴퓨터 구조 2(RISC-V) (0) | 2023.05.03 |