Skip to content

Latest commit

 

History

History
131 lines (116 loc) · 5.9 KB

Computer Systems Architectures.md

File metadata and controls

131 lines (116 loc) · 5.9 KB
tags links
cm12002
CS
Week Presentations Comments
01 4/4
02 2/2 C basics are noted very briefly [[./C Basics.md | here]].
03 3/3
04 4/4 Note this1 in [[Computer Systems Architectures.md]].
05 0/5 Data representation.
06 0/0 Consolidation week.
07 1/3 L01_P01 and P02 instructions.
08 3/3
09 2/3 L03_P01 interrupt driven IO and DMA IO.
10 3/3
11 3/3
19 3/3
20 1/2 C malloc() stuff, wasn't covered in the lecture, a recording should be posted.
21 2.5/2.5 Slides 1, 2, and the beginning of 3.
22 2/2 Slides 3 and 4.
23 2/2 Slides 5 and 6.
24 1/2 Slides 7 and 8.

NOTE: Unit codes for past papers are CM10194 and CM10195.

Computer Systems Architectures

  • Classically uniprocessor^[Uniprocessor architectures are characterised by having one ALU.] architectures include:
    • [[Von Neumann Architecture]]
    • [[Harvard Architecture]]
  • Multiprocessor (or parallel) architectures are potentially faster but harder to understand, control and predict.
    • There is no single dominant parallel architecture, but a set of alternatives that depend upon different types of parallelisms (either on task or data level) described by the [[Flynn's Taxonomy]].
    • There is a limit on how much a process can be parallelized described by the [[Amdahl's Law]].
  • There are different types of [[Memory Architectures | memory architectures]] — shared and distributed.
  • [[IO]].
  • [[Boolean Logic and Circuits]].

Operating Systems

  • [[./Operating Systems (OSs).md | OSs]].

Unsorted

Shared Memory MIMD

  • Shared memory MIMD is becoming dominant in general purpose computing, due to the diminishing returns on building larger/faster uniprocessors.
  • Multi-core processors — multiple CPUs on the same chip — are now standard.
    • They are typically used for multitasking.
    • However, it can be challenging to design software that effectively utilises multithreading capabilities.

Data Representation

  • A numeration system is a writing system for expressing numbers.

  • The radix (or the base) determines the number of unique digits, including zero, that a numeration system uses to represent numbers.

  • To convert a number in base $n$ to decimal, sum up the products of each digit and $n$ to the power of its position, starting with 0, from left to right. For example: $$ 134_8 = 1 \times 8^2 + 3 \times 8^1 + 4 \times 8^0 = 92_{10} $$

  • To convert decimal to binary, divide the given number by two^[If the number is odd, first subtract one and then divide it by two.], recording each remainder. Then write down the remainders starting from the bottom; this is the result. For example, converting 167 to binary:

DEC BIN
167 1
83 1
41 1
20 0
10 0
5 1
2 0
1 1
0 0

Starting from the bottom and omitting the preceding zero, the result is $167_{10} = 10100111_2$.

  • For reference, the first 16 binary and hexadecimal numbers are:
HEX DEC BIN
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111
10 16 10000
  • For reference, the first 16 powers of 2 are: $$ \begin{align*} 2^1 & = 2 \ 2^2 & = 4 \ 2^3 & = 8 \ 2^4 & = 16 \ 2^5 & = 32 \ 2^6 & = 64 \ 2^7 & = 128 \ 2^8 & = 256 \ 2^9 & = 512 \ 2^{10} & = 1024 \ 2^{11} & = 2048 \ 2^{12} & = 4096 \ 2^{13} & = 8192 \ 2^{14} & = 16384 \ 2^{15} & = 32768 \ 2^{16} &= 65536 \end{align*} $$

Big Ideas in Computer Architecture^[TODO: This may be useful as an entry point to all sys arch notes.]

  • Principle of abstraction, used to build systems as layers
  • 5 Classic components of a Computer (von Neumann)
  • Stored program concept: instructions just data (von Neumann)
  • Data can be anything (integers, floating point, characters): a program determines what it is
  • Principle of Locality, exploited via a memory hierarchy (cache)
  • Greater performance by exploiting parallelism

Footnotes

  1. The elements of the numeration system are that: as many digit symbols as the base are needed; the decimal system’s base or radix of ten, the cardinal number of standards in the basic set, is denoted by ‘10’; place values increase from right to left in successive powers of the base (a positional system); addition is used to make up a number consisting of combinations of digits and multiplication is used to make up the number represented by a digit in a specific place; there is an agreed starting point (the ‘unit’ place); and a point is used to denote this place.