제 2장 성능 문제
성능을 위한 설계
- 해마다 가격은 하락하는데 성능과 용량이 크게 상승함.
- 각종 비즈니스들은 트랜잭션 및 데이터베이스의 처리를 대규모 클라이언트-서버 네트워크들을 지원하는 강력한 서버에 의존.
- 클라우드 서비스 제공 회사들은 대규모의 고성능 서버 뱅크들을 이용.
마이크로프로세서의 속도
파이프라이닝
:- 여러 개의 명령어들을 동시에 서로 다른 단계를 수행함으로써 다수의 명령어를 동시에 실행.
분기 예측
:- 프로세서는 기억장치로부터 인출된 명령어 코드를 미리 살펴보고, 어떤 분기 혹은 명령어가 다음에 처리될 것인지 미리 예측.
슈퍼스칼라 실행
:- 매 프로세서 클록 사이클마다 한 개 이상의 명령어 발송하는 능력. 결과적으로 여러 파이프라인들이 사용됨.
데이터 흐름 분석
:- 프로세서는 명령어들 간의 결과값 혹은 데이터에 대한 의존성을 분석함으로써 명령어들의 최적 실행 스케쥴을 찾아낸다.
추정 실행
:- 분기 예측과 데이터 흐름 분석을 이용하는 어떤 프로세서들은 명령어들이 프로그램 실행 과정에서 나타나기 전에 미리 명령어 실행, 이 때 결과값은 임시 장소에 저장됨.
성능 균형
- 다양한 구성 요소들의 능력 간의 불일치를 보완하기 위해서 조직과 구조(Organization & Architecture)를 적절히 조절하고 튜닝함.
칩 조직과 구조의 개선
- 프로세서의 하드웨어 속도를 증가시킨다.
- 근본적으로 프로세서 칩 상의 논리 게이트의 크기를 줄임.
- 더 많은 게이트를 조밈랗게 넣고 클록 속도를 높인다.
- 게이트들이 더 밀도 높게 위치하면 신호들의 전파 시간이 크게 줄어든다.
- 캐시의 크기와 속도를 증가시킨다.
- 캐시 액세스 시간이 크게 줄어든다.
- 프로세서 조직과 구조를 바꾼다.
- 병렬성을 이용하여 명령어 실행 속도를 높인다.
클록 속도와 회로 밀도가 증가함에 따른 문제점들
전력
:- 칩 내부 회로의 밀도와 클록 속도가 높아짐에 따라, 전력 밀도 또한 높아지고, 열 발산이 많아짐.
RC 지연
:- 칩 상에서 트랜지스터들 간에 흐르는 전자들의 속도는 금속선들의 저항과 캐퍼시턴스에 의해 제한.
- RC 곱의 값이 증가함에 따라 지연도 길어짐.
- 칩 상의 부품 크기가 작아질수록 연결선들은 더 가늘어져서 저항이 증가함.
- 선들이 더 가까이 위치하면 캐퍼시턴스 증가.
기억장치 지연
:- 기억장치 액세스 속도는 프로세서 속도보다 뒤떨어진다.
멀티코어(Multicore)
- 동일 칩 상에 다수의 프로세서들를 두는 방식은 클록 속도를 높이지 않더라도 성능을 향상시키는 가능성을 제공한다.
- 하나의 복잡한 프로세서를 사용하는 것보다는 더 간단하게 여러 개의 프로세서들을 사용하는 것이다.
다수 집적 코어(MIC)와 그래픽 처리 유닛(GPU)
다수 집적 코어(MIC)
:- 성능 개선을 위하여 많은 수의 코어들을 이용하기 위한 소프트웨어 개발에 대한 도전
- 멀티코어 및 MIC 전략은 단일 칩에 범용 프로세서들을 모아두는 것을 포함
- 병렬 프로세싱의 코딩
그래픽 처리 유닛(GPU)
:- 그래픽 데이터들에 대한 병렬 연산을 수행하기 위하여 설계된 코아
- CPU와 달리 연산장치가 많고 제어가 단순하다.
암달의 법칙
단일 프로세서에 비교하여 다수의 프로세서들을 사용한 프로그램의 잠재적 속도 향상에 대한 이론
$T$ : 단일 코어 속도 처리 진행시간(single core execute time)
$f$ : 병렬 처리가 가능한 비율(percentage of parallel processing available)
$N$ : 멀티코어 개수
$$T=(1-f)T+fT$$
멀티코어 실행 시간(multi core execute time)
$$\frac{(1-f)T+fT}{N}=(1-f(\frac{1}{N}))T$$
속도 향상
$$\frac{1}{1-f+\frac{f}{N}}$$
리틀의 법칙
- 통계적으로 안정된 상태와 누출이 없는 시스템에 적용.
큐잉 시스템(Queueing System)
:- 만약 서버가 쉬는 상태라면 개체는 즉시 서비스를 받음. 그렇지 않다면 도착한 개체는 대기열 혹은 큐에 들어간다.
- 단일 서버를 위한 단일 큐(single queue) 혹은 다수 서버들를 위한 단일큐, 다수 큐 등등 시스템 구성은 다양하다.
💡 안정 상태 조건 하에 큐잉 시스템 내에 있는 평균 개체 수는 개체들의 평균 도착율과 한 개체가 시스템에서 소모하는 평균 시간을 곱한 값과 같다.
$L$ : 큐잉 시스템 내에 있는 평균 개체수
$\lambda$ : 개체들의 평균 도착률
$W$ : 한 개체가 시스템에서 소모하는 평균 시간
$$L=\lambda W$$
컴퓨터 성능의 동작
프로그램을 얼마나 빠르게 실행할 수 있을지를 알기 위해서 프로그램 실행시간 추정.
- $CPI$ (Clock per time):
- 단위(평균적인) 명령어당 평균 사이클(하나의 명령어를 처리하는데 몇 사이클이 걸리는지)
- $T$ (program execute time): 프로그램 실행 시간
- $MIPS$ $rate$ (Millions of instructions per second) : 시간당 몇백만개의 명령어를 처리하는지
CPI 공식
$$
CPI=\frac{\displaystyle\sum_{i=1}^n(CPI_i \times I_i)}{I_c}
=p+( m \times k )
$$
- 용어
- $I_c$ (instruction count per time):
- 프로그램당 명령어 수
- $I_c$ (instruction count per time):
프로그램 실행 시간 공식
$$
T=I_c \times CPI \times \tau =I_c \times [ p+( m \times k ) ] \times \tau
$$
용어
- $\tau$ : clock duration
- $p$ : # of clock cycles for decoding/executing the instruction
- $m$ : # of memory reference (메모리 액세스에 걸리는 시간)
- $k$ : memory cycle time/ processor cycle time
CPU가 하나의 명령어를 처리하는데 걸리는 시간은 CPU가 하나의 명령어를 해석하는데에 걸리는 시간($p$)과 메모리를 접근하는데에 걸리는 시간( $m$ $\times$ $k$ )의 합과 같다.
MIPS rate
$$
MIPS=\frac{I_c}{T \times 10^6}=\frac{f}{CPI \times 10^6}
$$
- 용어
- $f$ : clock frequency
$$f=\frac{1}{\tau}$$
- $f$ : clock frequency
평균의 계산
그떄그떄마다 세 평균 중에서 하나를 선택
산술평균
- 여러 시스템들의 실행시간 성능을 비교할 때 사용.
$$
\frac{1}{N}\displaystyle\sum_{i=1}^N x_i
$$
기하평균
$$
\left( \prod_{i=1}^N x_i \right)^\frac{1}{N}
$$
조화평균
$$
\frac{N}{\displaystyle\sum_{i=1}^N \frac{1}{x_i}}
$$
- 평균이 항상 옳은 결론을 이끌어 내지 못함
- 하나의 단일 수치로 모든 정보를 제공하지 못함(평균의 한계)
- 벤치마크에서 기하 평균 사용
- 기준 컴퓨터와의 실행시간 비율로 성능 측정하여, 일반적으로 일관성 있게 도출
벤치마크
- 벤치마크 프로그램의 특징
- 고급 언어로 작성되며, 서로 다른 기계에서 호환성을 가질 수 있다
- 시스템 프로그래밍(OS), 수치적 프로그래밍(MATLAB) 혹은 상업용 프로그래밍과 같이 특정 종류의 프로그래밍이여야 된다.
System Performance Evaluation Corporation(SPEC)
- 속도 척도
- 단일 작업들을 완료할 수 있는 능력 비교하는데 사용된다.
- 비율 척도
- 컴퓨터가 어떤 시간 내에 몇개의 작업들을 완료하는 지 측정하는 것으로 처리율(throughput) 또는 능력(capacity) 비율 측정이라 부른다.
'컴퓨터 구조' 카테고리의 다른 글
제 6장 외부 기억장치(I/O 모듈에 연결된 기억장치) (0) | 2024.03.28 |
---|---|
제 5장 내부 기억장치 (0) | 2024.03.28 |
제 4장 캐시 메모리 (0) | 2024.03.28 |
제 3장 최상위에서 본 컴퓨터의 기능 및 상호연결 (0) | 2024.03.28 |
제 1장 기본 개념과 컴퓨터 발전과정 (0) | 2024.03.28 |