Covenant


[Class of Computers

Personal computers

- General purpose, variety of software.

- Subject to cost/performance trade off.


Server computers

- Network based

- High capacity, performance, reliability.

- Range from small servers to building sized


Supercomputers

- High-end scientific and engineering calculations.

- Highest capability but represent a small fraction of the overall computer market.


Embedded computers

- Hidden as components of systems


The Post PC Era  

- Personal Mobile Device(PMD)

Battery operated

Connects to the Internet

Hundreds of dollars.

Download software(apps) to run on them

Not use keyboard and mouse

A touch-sensitive screen or even speech input.

Smart phones, tablets, electronic glasses

- Cloud computing

Warehouse Scale Computers(WSC)

Software as a Service (SaaS)

Portion of software run on a PMD and a portion ruin in the Cloud.

Amazon and Google


In the 1960s and 1970s, a primary constraint on computer performance was the size of the computers memory(the parallel nature of processors and the hierarchical nature of memories)

Today's programmers need to worry about energy efficiency of their programs running either on the PMD or in the Cloud.


[Eight Great Ideas]

[1] Design for Moor's Law - 무어의 법칙

[2] Use abstraction to simplify design - 설계를 단순화 하는 추상화

[3] Make the common case fast.- 자주 생기는 일을 빠르게

[4] Performance via parallelism - 병렬성을 통한 성능 개선

[5] Performance via pipeline - 파이프 라이닝을 통한 성능 개선

[6] Performance via prediction - 예측을 통한 성능 개선

[7] Hierarchy of memories. - 메모리 계층 구조

[8] Dependability via redundancy. - 여유분을 위한 신용도 개선



Below Your Program

- Application software : Written in high-level language

- System software. : Compiler : translates HLL code to machine code

- Hardware : Processor, memory, I/O controllers


Levels of Program Code

- High-level language

- Assembly language 

- Hardware : Processor, memory, I/O controllers

 

Under the Covers

[1] Input

[2] Output

[3] Memory

[4] Datapath

[5] Control unit

* Processor : Datapath + Control Unit

* Input/Output includes 

[1] User-interface devices : Display, keyboard, mouse

[2] Storage devices : Hard disk, CD/DVD, flash

[3] Network adapters : For communicating with other computers


Abstractions

- Instruction set architecture (ISA - 명령어 집합구조)

The hardware/software interface

The interface between the hardware and the lowest-level software

- Application binary interface(ABI)

The basic instruction set plus system software interface. 



[Response Time and Throughput]

- Response time(응답시간)

Execution time(처치량)

How long it takes to do a task. (작업을 시작해서 종료할 때까지의 시간이다.)

- Throughput(처리량)

Total work done per unit time.(일정시간동안 처리하는 작업의 양)

- Response Time과 Throughput의 관계

Response time이 증가하면 throughput은 감소한다. 다만 throughput은 response time에 영향을 주지 않는다.


[예제] How are response time and throughput affected by 

[1] Replacing the processor with a faster version?

[2] Adding more processors?


답]  1) 응답시간이 단축된다. 처리량은 좋아진다.

2) 특정 태스크의 실행시간이 단축되는 것은 아니다.

전체적으로 처리량은 좋아진다. (processors가 2배 많아진다고 처리량이 2배 좋아지는 것은 아니다.)



Relative Performance

Define Performance = 1 / Execution Time

' X is n times faster than Y ' -> Performance X / Performance Y = Execution time Y / Execution time X = n

 


[예제] Time taken to run a program

10s on A, 15s on B than how much faster is A than B?


[풀이]

Execution B / Execution A = 15s / 10s = 1.5

So A is 1.5 times faster than B


We will normally use the terminology as fast as when we try to compare computers quantitatively (~보다 빠르다라는 단어를 보통 사용한다.)

We usually say "improve performance" or "improve execution" when we mean "increase performance" or '"decrease execution" (;성능이 증가한다, 실행 시간이 감소한다 라는 단어보다 성능이 개선된다, 실행시간이 개선된다. 라는 말을 쓸것이다.)



[CPU Clocking]

Clock cycle(= ticks, clock ticks, clock periods, clocks cycles) : 


Clock Period : Duration of a clock cycle(한 클럭 사이클에 걸리는 시간)

Ex] 250ps = 0.25ns = 250 * 10^-12 s

10 nsec clock cycle

100 MHz clock rate

5 nsec clock cycle

200 MHz clock rate

2 nsec clock cycle

500 MHz clock rate

1 nsec clock cycle

1GHz clock rate

5 nsec clock cycle

2 GHz clock rate

250 psec clock cycle

4 GHz clock rate

200 psec clock cycle

5 GHz clock rate


Clock frequency(rate) : Cycles per second

Ex] 4.0GHz = 4000MHz = 4.0 * 10^9 Hz

* the inversion of the clock period(clock frequency와 clock period는 역수 관계이다.)


[CPU Time]

CPU Time = CPU Clock Cycles * Clock Cycle Time = CPU Clock Cycles / Clock Rate

  

프로그램의 실행 시간 = 프로그램의 CPU 클럭 사이클 수 * 클럭 사이클 시간


성능은, clock cycles수를 감소하면 성능이 증가한다.

clock rate를 증가하면 성능이 증가한다. 




[Instruction Count and CPI]

Clock Cycles = Instruction Count * Cycles per Instruction

CPU Time = Instruction Count * CPI * Clock Cycle Time = Instruction Count * CPI / Clock Rate

CPU 클럭 사이클 수 = 명렁어 수 * 명령어당 클락 사잌르 수


CPU : Clock cycles per Instruction 


[예제] Computer A : Cycle Time = 250ps, CPI = 2.0

Computer B : Cycle Time = 500ps, CPI = 1.2

Same ISA-instruction set architecture, Which is faster and by how much? 

(같은 ISA 명령어 구조를 가지고 있을 떄 어떤 것이 얼마나 빠른가?)


[풀이] 

CPU Time A = Instruction Count * CPI A * Cycle Time A = I * 2.0 * 250ps = I * 500ps

CPU Time B = Instruction Count * CPI B * Cycle Time B = I * 1.2 * 500ps  = I * 600ps


CPU Time B / CPU Time A = I * 600ps / I * 500ps = 1.2 , A가 B보다 1.2배 빠르다. 


[명령어 유형별 CPI]



[The Power Wall - 전력장벽]

상용 프로세서 냉각 문제 때문에 실제로 사용할 수 있는 전력의 한계에 도달했다. 

더이상 전압을 내릴 수 없다. 


[Power Trends]


Power = Capacitive load * Voltage ^ 2 * Frequency

* Frequency가 1000배 증가할 때 Voltage를 5V -> 1V로 낮추어서 Power가 30배만 증가하게 된 것이다. 




[Problem Solving]


1.6 [20] <§1.6> Consider two different implementations of the same instruction set architecture. The instructions can be divided into four classes according to their CPI (class A, B, C, and D). P1 with a clock rate of 2.5 GHz and CPIs of 1, 2, 3, and 3, and P2 with a clock rate of 3 GHz and CPIs of 2, 2, 2, and 2.
Given a program with a dynamic instruction count of 1.0E6 instructions divided into classes as follows: 10% class A, 20% class B, 50% class C, and 20% class D, which implementation is faster?
a. What is the global CPI for each implementation?
b. Find the clock cycles required in both cases.

동일한 명령어 세트인데, 두 가지의 아키텍처 구현을 고려해라. 인스트럭션은 4가지 종류로 나뉘어지고, A, B, C,D마다 각각의 CPI를 가지고 있다. P1의 clock rate는 2.5GHz이고, 각각의 인스트럭션 당 CPI는 1, 2, 3, 3이다. 그리고 P2의 clock rate는 3GHz이고, CPI는 2,2,2,2 이다.

1.0E6개의 명령어를 실행하는 프로그램이 있다. 그 중 10%가 A클래스, 20%가 B클래스, 50%가 C클래스, D클래스는 20%에 해당한다. P1, P2중 어느 것이 빠르겠는가?

a. 각 구현의 글로벌 CPI(전체적인 CPI)를 구하라.

b. 두 경우에 요구 되어지는 클락 사이클수를 구하라.




1.14 Assume a program requires the execution of 50×106 FP instructions, 110×106 INT instructions, 80×106 L/S instructions, and 16×106 branch instructions. The CPI for each type of instruction is 1, 1, 4, and 2, respectively. Assume that the processor has a 2 GHz clock rate.
1.14.1 [10] <§1.10> By how much must we improve the CPI of FP instructions if we want the program to run two times faster?
1.14.2 [10] <§1.10> By how much must we improve the CPI of L/S instructions if we want the program to run two times faster?
1.14.3 [5] <§1.10> By how much is the execution time of the program improved if the CPI of INT and FP instructions is reduced by 40% and the CPI of L/S and Branch is reduced by 30%?


문제 해석)

1.14 어떤 프로그램이 있는데, 이 프로그램은 50 * 개의 FP명령어, 110*개의 INT명령어, 80 *의 L/S명령어, 16*개의 분기 명령어를 실행한다. 각각의 경우 CPI는 1, 1, 4, 2이며 프로세서가 2GHz 클럭을 갖는다.

1.14.1 [10]<1.10> 프로그램을 2배 빠르게 하고 싶으면 FP 명령어의 CPI를 얼마나 개선해야 하는가?

1.14.2 [10]<1.10> 프로그램을 2배 빠르게 하고 싶으면 L/S 명령어의 CPI를 얼마나 개선해야 하는가?

1.14.3 INT와 FP명령어의 CPI가 40%줄고, L/S와 분기 명령어의 CPI가 30%줄면 실행시간은 얼마나 개선되는가? 

(*앞으로 L/S명령어를 적재 저장 명령어 혹은 LS라고 혼용해서 사용 하겠습니다.)



















참고 : COMPUTER ORGANIZATION AND DESIGN 5th(컴퓨터 구조 및 설계) David A Patterson. John L. Hennessy

본 계시글은 배워서 남주자라는 가치를 실현하기 위해서 작성되었습니다.

<><