---
# System prepended metadata

title: 2021 Computer Architecture Midterm review

---

2021 Computer Architecture Midterm review 
====

## Ch1,2

Morre's law: the number of transistors on a microchip doubles every two years.

Technology node: essentially the physical size of the transistor, the smaller it is, the more transistors in the smae area.

Response time: how long it takes to do a task

Throughput: Total work done per unit time

Performance = 1 / Execution time

$\frac{Performance_x}{Performance_y}=\frac{Execution time_y}{Execution time_x}=n$

### CPUtime
_______

$CPUTime = CPU\ Clock\ Cycles \times Clock\ Cycle\ Time=\frac{CPU\ CLock\ Cycles}{Clock\ Rate}$

$Clock\ Cycles = instruction\ Count\times Cycles\ per\ instruction$
$\Rightarrow CPUTime=Instruction\ Count\times CPI\times Cycle\ Time=\frac{IC\times CPI}{CR}$


### Power
___

$Power=Capacitiveload\times Voltage^2\times Frequency$

設計要追求高響應(Frequency)而低功耗(Power)，便須下調前兩者的影響，然而在2004年後，降低電壓與冷卻的技術飽和而停滯，在功率挑戰中形同撞上了一面高牆(Power wall)，為了執續強化處理器的效能，技術便轉往多核心發展。

Cost per die = $\frac{cost\  per\ wafer}{Dies\ per\ wafer\times Yield}$
Dies per wafer $\approx$ $\frac{Wafer\ area}{Die\ area}$

$SpecRatio=\frac{CPU\ time_{reference}}{CPU\ time_{rated}}\propto Performance$

SPEC Power Benchmark
- power consumption of server at different workload levels
- divided into 10% increments

==Amdahl's law==
$T_{improved}= \frac{T_{affected}}{improved factor}+T_{unaffected}$
Make the common case faster!!

MIPS = million of instructions Per second

## CH3


### linker & loader
```graphviz
digraph hierarchy {

                nodesep=1.0 // increases the separation between nodes
                
                node [color=Red,fontname=Courier,shape=box] 1 [label="C program"]
3 [label="Assembly language program"]
5 [label="Object:Machine language module"]
6[label="Object: Library routine"]
8[label="Executable"]
10[label="Memory"]

node [color=Blue,fontname=Courier,shape=egg]
2[label="Compiler"]
4[label="Assembler"]
7[label="Linker"]
9[label="Loader"]
                edge [color=Blue, style=dashed] //All the lines look like this
                
1->2->3->4->5
{5 6}->7->8->9->10 // Put them on the same level
}
```

Object file for Unix system contains six distinct pieces
- Object file header: size and position of the other pieces of the object file
- text segment: machine code
- static data segment: data allocated for the lifetime
- relocation information: instuctions and data words that depend on absolute addresses when the program is loaded into memory
- symbol table: remaining labels thath are not defined, such as external references
- debugging information

