성능은 시간과 리소스에 대응되어 컴퓨터 시스템이 수행하는 작업의 양.
성능을 측정하는 척도는 의도에 따라 다양합니다. 개인 사용자는 응답 시간으로 성능을 느끼고 데이터센터 관리자는 처리량으로 성능을 느낍니다.
응답시간
응답시간은 작업 시작부터 종료까지 걸린 시간을 의미합니다.
디스크 접근, 메모리 접근, 입출력 작업, 운영체제 오버헤드, cpu 연산 시간을 포함합니다.
처리량
단위 시간당 처리할 수 있는 일의 양을 의미합니다.
응답시간과 다른 척도로 시스템 성능을 평가할 때 사용합니다.
[Q1] 같은 프로그램이 컴퓨터 A에서 10초 B에서는 15초 걸린다면 A는 B보다 얼마나 빠른가?
A: 1.5배
프로그램의 성능을 실행시간으로만 판단하기에는 OS 오버헤드, 메모리 접근, 입출력 작업등이 포함된 경과 시간이고, 상황에 따라 이 시간들은 변칙적이기 때문에 정확하지 않습니다.
따라서 CPU 성능은 특정 작업을 하기 위해 CPU가 소비한 실제 시간만을 측정합니다.
프로그램의 cpu 실행시간
= 프로그램의 cpu 클럭 사이클 수 * 클럭 사이클 시간
= 프로그램의 cpu 클럭 사이클 수 / 클럭 속도
= 명령어 수 x CPI / 클럭 속도
Clock
- 논리상태 0과 1이 주기적으로 나타나는 방형파 신호
- 클럭 사이클: 클럭의 시간 간격
- 클럭 속도: 클럭 사이클의 역수. 숫자가 클 수록 빠른 처리 능력.
- CPI = Clock cycle Per Instruction = 명령어 하나의 실행에 필요한 평균 클럭 사이클 수
[Q2] 2GHz 클럭의 컴퓨터 A에서 10초에 수행되는 프로그램이 있다. 이 프로그램을 6초 동안에 실행할 컴퓨터 B를 설계하고자 한다. 이 때, A보다 1.2배 많은 클럭 사이클이 필요하게 된다고 할 때, 컴퓨터 B의 클럭 속도는 얼마로 결정해야 하는가?
A: 4GHz
전력이란 컴퓨터가 동작하는데 소비되는 전기의 힘입니다. 트랜지스터가 0에서 1로 혹은 그 반대로 스위칭할 때 전력이 사용됩니다. 따라서 전력은 트랜지스터가 스위칭할 때 소모되는 에너지와 시간당 논리값이 바뀌는 빈도수의 곱입니다.
전력과 클럭 속도는 밀접한 관계가 있고,
cpu 온도가 낮아지면 전력소모가 줄어듭니다.
파워서플라이를 통해 전력을 공급받습니다.
전압을 낮추면 트랜지스터 누설 전류가 커지고, 전압이 너무 높아지면 온도가 올라가서 냉각 비용이 발생합니다.
전력이 높아질수록 클럭속도도 비례 관계에 있는데 팬티엄4 cpu 이후에는 전력은 줄이고 클록속도는 유지하는 모양새네요.
단일 프로세서 -> 멀티코어 프로세서(여러 개의 코어를 집적한 프로세서)
파이프라인 구조를 채택하여 병렬성을 높이고 처리량을 최대화 함
32bit
386CPU에서 1 클럭 당 처리할 수 있는 최대 크기는 32bit 데이터입니다.
32bit는 byte로 표현하면 4byte(1byte = 8bit)이므로 4byte 주소체계를 가지고 있다고 할 수 있습니다.
4byte는 00000000~FFFFFFFF까지 표현할 수 있는 수이고, 이는 10진수로 표현하면 4294967295.
이는 4GB를 십진수로 표현한 값과 같습니다.
4GB = 4 1024 1024 * 1024 (kb, mb, gb) = 4294967296
암달의 법칙
- 트랜지스터의 증가로 인한 성능 향상에 한계점 도달
- 코어 개수를 늘리는 방향으로 cpu의 진화
- 멀티코어 -> 성능 2배 X
- 병렬화 문제에서 기인하여 프로세서 개수 만으로는 성능 향상에 한계점이 생김