Computer Abstractions & Technology Part.3 - Computer Architecture

Computer Abstractions & Technology Part.3 - Computer Architecture

Tag
Computer Science Engineering
Computer Architecture

Example: Calculating CPI bottom up

Operation
CPI_i
Frequency
CPI_i X Freq
Time(%)
ALU
1
50%
.5
33%
Load
2
20%
.5
27%
Store
2
10%
.2
13%
Branch
2
20%
.4
27%
 

Power Wall

Power(전력)의 발전양상

notion image
 

집적회로에서의 CMOS

📌
CMOS에서의 첫 에너지 소비는 동적 에너지로, clock frequency마다 on-off, off-on으로 스위치 방식으로 제어된다.
notion image
 
그래프의 기간동안
  • 전력 소모는 약 30배 증가
  • 전압은 5V에서 1V로
  • 주기는 약 1000배 빨라짐
⇒ 주기가 1000배 빨라졌어도 전력 소모는 약 30배 정도로밖에 증가하지 않음
 

전력을 줄여보자

  • 새로운 CPU가 있다고 가정해보자.
    • 기존 CPU보다 85%의 capacitive load
    • 15%의 voltage 감소와 15%의 frequency 감소
notion image
 

The Power wall

더 이상 voltage를 감소시킬 수 없음.
더 이상 열을 잡을 수가 없음 ⇒ 발열량이 더 늘어나면 안됨
→ 이 상황에서 성능을 향상시키는 방법: Multi-core
 

Multiprocessors

  • Multicore microprocessors
    • 칩 안에 여러 개의 processor를 탑재
  • multicore를 통한 성능향상을 보려면, parallel 프로그래밍이 필요함
    • 반대로 instruction 수준의 parallism과 비교해서
      • 하드웨어가 알아서 다수의 명령을 동시에 처리함
      • 프로그래머는 딱히 신경쓰지 않아도 됨
    • 난관
      • performance를 위한 프로그래밍
      • Load balancing
      • communication과 synchronization 최적화
      •  

함정: 암달의 법칙 ( Amdahl’s Law )

  • 컴퓨터의 어떤 부분을 향상시키면, 전체적인 성능에서도 비례적인 향상을 기대할 수 있다.
* 어떤 시스템을 개선하여 전체 작업 중 P%의 부분에서 S배의 성능이 향상되었을 때, 전체 시스템에서 최대 성능 향상은 위와 같다.
 
notion image
📌
개선 후의 실행 시간 = (개선에 의해 영향을 받는 실행 시간 / 성능 향상 비율) + 영향을 받지 않는 실행 시간
⇒ 시스템의 한 부분의 성능을 향상시키면, 전체 시스템의 성능 향상은 해당 시스템이 차지하는 비율에 비례해서만큼만 향상된다.
 
ex) 전체 100초 중 곱 연산은 80초가 소요된다.
곱 연산의 성능을 얼마나 향상시켜야 전체 성능이 5배로 증가할 수 있는가?
→ 20s = 80s / n + 20s 불가능
 
추론: 일반적인 경우(부분)을 빠르게 하면 전체적으로 빨라진다.
시스템의 성능 향상을 하고자 하면, 시스템에서 가장 많은 부분을 차지하는 부분을 향상시키는 것이 바람직하다.
 

착오: 유휴(idle) 상태에선 저전력인가?

  • i7의 Power benchmark에서
    • 100% load: 258W
    • 50% load: 170W (100% load에 비해 66%)
    • 10% load: 121W (100% load에 비해 47%)
→ load와 전력 소모는 비례하지 않는다.
 
  • Google data center
    • 보통 10% ~ 50% load
    • 100% load가 되는 때는 전체 시간 중 1%도 안 될 정도로 거의 없음
 

함정: 성능 지표로서의 MIPS

📌
MIPS: Millions of Instructions per second ( 초당 몇백만개의 instruction들을 실행하는가 )
  • 다음의 맹점이 있다.
    • 컴퓨터마다 ISA(명령 집합 구조)는 다르다.
    • instruction마다 복잡도가 다르다.
    • 어떤 명령은 한 cycle이지만, 어떤 명령은 여러 cycles.
      • 즉 명령마다 CPI가 다르다.
 
MIPS는 CPI에 반비례한다. ( 영향을 받는다 )
MIPS는 CPI에 반비례한다. ( 영향을 받는다 )
  • 같은 CPU에서도 프로그램에 따라 CPI는 달라진다.
⇒ 즉, MIPS는 하드웨어의 성능측정 단위라고 하기 어렵다.
 

끝맺으며

  • 기술의 발전으로 인해 Performance / cost는 증가하고 있다.
  • 추상화의 계층적인 층 구조
    • 하드웨어, 소프트웨어 양쪽 측면 모두
  • Instruction set architecture(ISA, 명령 집합 구조)
    • 하드웨어/소프트웨어 사이의 데이터/명령 교환(interface)
  • Execution time: 성능 측정에 최고의 도구
  • Power(전력 소모)는 줄이는 데 한계가 있으며, 성능 향상에 제한을 주는 요소이다.
    • 성능 향상을 위해 parallelism을 사용한다.