High Performance Computer Architecture

Thank you for signing up for the course! We look forward to working with you and hearing your feedback in our forums.

Need help getting started?


Course Resources

Course Notes

You can view Course Notes here.

HPCA Equations

Active Power P = 1/2 C * V^2 * f * a

Yield Yield = Working Chips / Chips on Wafer

Fabrication Cost Fab Cost = Total Cost / Number of Wafers

Speedup N = Speedup(X) / Speedup(Y) = Throughput(X) / Throughput (Y) = Latency(Y) / Latency(X)

CPU Time CPU Time = # of Instructions in the progam * cycles per instruction * clock cycle time

Amdahl's Law Speedup = 1 / ((1 - Frac of Enhancement) + Frac of Enhancement / Speedup of Enhancement

Execute Time ExeTime = #Instructions * CPI * Cycle Time

CPI CPI = 1 + Mispredictions / Instructions * Penalty / Misprediction

Availability Availability = MTTF / (MTFF + MTTR)

AMAT AMAT = Hit Time + Miss Rate * Miss Penalty

AMAT AMAT = (1 - Miss Rate) * Hit Time + Miss Rate * Miss Time

Miss Time Miss Time = Hit Time + Miss Penalty

L1 miss penalty = L2 hit time + L2 miss rate * L2 miss penalty

Global Hit Rate = 1 - Global Miss Rate

Global Miss Rate = # of Misses in this cache / # of all memory accesses

Local Hit Rate = # of Hits / # of Access to this cache

Page Table Size Page Table Size = (Virtual Memory/ Page Size) * Size of Entry

RAID0 1 Disk MTTF RAID0, 1 Disk MTTF = 1 / failure rate for single disk

RAID0 N Disk MTTF RAID0, N disks MTTF = MTTF of one disk / N

RAID1 N Disk MTTDL RAID1 N Disk MTTDLN = MTTF1/N where N is the number of disks

RAID4 Write RAID4 Write = 1/2 of throughput of 1 disk

RAID4 Read RAID4 Read = (N -1) * Throughput of one disk

RAID4 MTTF RAID4 MTTF = 1(MTTF of 1 disk * MTTF of 1 disk) / (N * (N-1)*(MTTR of 1 disk)

RAID4 Data Capacity RAID4 Data Capacity = (N-10 * Capacity of 1 disk)

RAID5 Read Performance RAID5 Read Performance = N * Throughput of 1 disk

RAID5 Write Performance RAID5 Write Performance (4 Accesses/Write) = N / 4 * Throughout of 1 Disk

HPCA Glossary

You can view a comprehensive list of HPCA terminology here.

Assembly Language Programming

The assembly code used in the course examples is based on commands from different instruction sets. Most of those instruction sets can be found in the links listed below.

Intel 64 ISA

Intel Itanium ISA

68000 Instruction Set


MIPS Instructions

MIPS IV Instruction Set


ARM Assembly Language Programming


SPARC Instruction Set


Introduction to Assembly Programming

Instructions used in the course examples:

(2P) ADD r1 = r2 + r3 Look in 2P to determine if the add should be completed and the sum stored in r1

(2P) ADDI R2,R2,1 Look in 2P to determine if the add should be completed and the sum stored in R2

ADD add with overflow adds two registers and store the sum in a register

ADD.D add decimal point numbers adds two decimal point numbers and store the sum in a register

ADDI add immediate with overflow adds a register and an immediate value and stores the sum in a register

ADDUI R!,R1,#-8 ADDIU "add immmediate unsigned (no overlfow)" "add a register and an immediate value and stores the sum in a register"

BEQ branch on equal

BEQZ branch on equal to zero

BGT branch if greater than

BLE branch if less than

BNE branch on not equal

BNEZ branch if not equal

BR branch

CHK.S check validity of data in given register

CLR clear

CMOVZ conditional move if zero

CMP.EQ compare for equality

CMP.GT compare for greater than

DIV divide a word

DIV.D divide with double precision

EQ equals

JMP jump

LD load a doubleword

LL load linked word

Load get a value from memory

LW load a word

MOV move

MOVN move conditional on not zero

MOVZ move conditional on zero

MP.EQZ P1, P2, R1 Set the predicates P1 and P2 by comparing R1 to 0. If R1 == 0, P1 == true, P2 == false.

MUL multiply

NOP no operation

SC store conditional word

SHL shift left

SD store a double word

SUB subtract

SUB.D substract with double precision

SW R1,9(R1)

TBIT determine the state of the requested bit in the given register

XOR exclusive or

Linux Commands

The virtual box upon which the simulator runs is a Linux based system. Therefore, A basic knowledge of Linux/Unix is necessary for the HPCA courses.

Below is a list of the commands that

cd - change directory

cd .. = change directory up

dir - list the contents of the directory

ls -l list directory include the time and permissions

cp filename1 filename2 - copies filename1 and calls it filename2

gedit - Linux Editor

C++ Commands