1/8
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Computer Architecture
A set of rules and methods that describe the functionality, organisation, and implementation of computer systems, which can be applied at many levels/or layers such as:
Processor architecture, memory architecture, instruction set architecture (ISA), etc.
What is Computer Architecture at the System Level?
how we link processors to devices for input and output, computer networks and other systems (e.g. architecture of the Internet), etc
What is current Computer Architecture standardised on?
von neumann architecture
Von Neumann Architecture
Memory that stores data and instructions together
A control unit that contains an instruction register and program counter
A processing unit that contains an arithmetic logic unit (ALU) and processor registers
Input and output mechanisms
The central processing unit (CPU) consisting of the ALU + CU often also contain high-speed cache memory
Harvard Architecture
Instructions memories and data memories are separate, to overcome the bottleneck of Von Neumann Architecture
Parallel (same time) access to instruction and data memory, can be faster
Better cyber resilience against potential cyber attacks - more memory stores - if one gets attacked then not all data is lost - there is less probability of both stores getting attacked successfully
Modified Harvard Architecture
Separates instruction and data caches internally
But a single unified main memory is still visible to users/ programs
Used in chips such as ARM9, MIPS, PowerPC, x86
Form a users/programmers view, looks like Von Neumann Architecture
Speed Metrics
Clock rate
E.g. a 1.87GHz processor makes 1.87 billion ticks per second
But, different instructions may take different numbers of ticks – sometimes unfair as a comparing metric
Millions of instructions per second (MIPS)
a better indication of speed, but it depends on which instructions are counted (number of instructions)
Different results for different programs – again could be unfair
Floating point operations per second (FLOPS)
Arguably a better indication of speed “where it counts” – again maybe unfair
None are ideal. Also, don’t take into account input/output speed
Limiting Factors on Speed
Density limitations
Number of transistors per square inch
“Moore’s Law” (1965, updated 1975): transistor number on a silicon doubles every 2 years
Power limitations (critical challenge)
Around 1/3 of the power used to propagate the clock signal around the processor
So, power and heat problems increase as clock rate increases – Cooling becomes very challenging to accommodate this problem
Coarser-grained Parallelism: Clustering
We can increase performance by linking computers using high-speed networks:
Leads to idea of “blade servers”
Obviously they don’t all need screens, etc
Applications run across the cluster (ideally)
Although, some applications can’t easily be decomposed in this way