Preview
|
Title
|
Description
|
|
Road Map summary
|
We take a look at how computer architecture
is placed in the tree of knowledge
|
|
Digital Systems Summary 1/3
|
A summary of the block of lectures above
|
|
Digital Systems Summary 2/3 |
A summary of the block of lectures above
|
|
Digital Systems Summary 3/3 |
A summary of the block of lectures above
|
|
Adders
|
Half adders and full adders as the
cornerstone of computer calculations
|
|
Ripple-carry adder
|
Ripple-carry adder. How to make an n-bit
adder from full adders. And how to turn an adder into a
subtractor |
|
Carry-look-ahead adder
|
To improve speed of calculation, instead
of 32 full adders in a ripple-carry adder, we will use 8
carry-look-ahead adders of 4 bits |
|
Left/right Shift
|
How a left/right 1-bit shifter is made |
|
(DE)MUX
|
A multiplexer (MUX) and demultiplexer
(DEMUX) |
|
(DE)CODER |
A coder and a decoder |
|
Comparator
|
A 4-bit comparator: A=B, A<B and A>B
|
|
Arithmetic and Logic Unit (ALU)
|
A look at the Arithmetic and Logic Unit
(ALU) |
|
Central Processing Unit (CPU)
|
A close look at a Central Processing Unit
(CPU) |
|
Control Logic
|
How does the control logic work inside a
CPU |
|
Multiplication
Russian-peasant algorithm |
How to go from addition hardware to a
multiplication algorithm. The Russian-peasant algorithm |
|
Division
|
A shift-compare-subtract algorithm to do
divisions with simple hardware
|
|
Karatsuba
|
Some advanced multiplication techniques.
Karatsuba algorithm (dividing large 2m bit numbers into 2
m bit numbers and doing the multiplication with them) and
the look-up-table algorithm, in fact done with only a
table of squares
|
|
Static/dynamic RAM
|
How a basic memory (RAM) chip works
|
|
Combining memory chips
|
How to join memory chips to have larger
memory size.
|
|
Information
|
The philosophical/physical aspects of
information. About the amount of information when
receiving a message and the entropy of a message before
sending it.
|
|
Physical memory organization
|
The physical organization of memory
|
|
Memory (Software aspects 1/4)
|
How is the memory in a computer organized
logically
|
|
Endianness
|
Endianness (Little endian vs. Big endian)
|
|
Memory (Software aspects 2/4)
|
More logic aspects of memory organization
are presented. Heap vs. stack. Recursivity. Garbage
collection. Global pointer, frame pointer.
|
|
Memory (Software aspects 3/4)
|
More aspects of memory organization.
Paging. Virtual memory. Memory management unit (MMU).
Assembly addressing methods
|
|
Memory (Software aspects 4/4). Overlays
|
Memory overlays
|
|
Memory: ROM
|
How ROM (read-only memory) is made and it
is compared to static and dynamic RAM
|
|
BIOS and bootstrapping
|
About the BIOS and how it can bootstrap the
computer into action
|
|
Buses and motherboards
|
How does the CPU communicate with other
components? Here we will see the hierarchy of
communication buses. We'll also take a look where all the
components are on a Motherboard
|
|
Communication
|
We will see here how in communication
bit-errors can be avoided by hardware and software.
hardware: twisted pair. Software: parity checking and
forward-error correction (FEC) using Hamming 7.4 coding
|
|
Floating point IEEE 754 (1/4)
|
How do we represent real numbers on a
computer? In comparison to integer numbers.
|
|
Floating point IEEE 754 (2/4)
|
With a limited number of digits, what are
the ranges and precision of the numbers?
|
|
Floating point IEEE 754 (3/4)
|
The IEEE 754 standard. How floating point
numbers are represented in 32 bit (single) and 64 bit
(double). Normalized and denormalized numbers. Fractions
and significands. Exponent, excess-127
|
|
Floating point (4/4). Divisions
|
How multiplications and divisions are done
on a computer. Divisions consists of finding the
reciprocal of the denominator
|
|
Floating point: Newton Raphson method
|
How to implement other mathematical
functions.
Here we will see how to use the method of Newton-Raphson
to find the square root of an argument.
|
|
Architecture examples
|
A list of items to take into consideration
when analyzing a computer architecture
|
|
Difference Engine
|
A close look at how the Difference Engine
of Charles Babbage looked (beginning of 19th century)
|
|
Intel 4004
|
A short summary of the Intel 4004
processor. Bad sound!!!
|
|
Intel 4004 (addendum)
|
Some extra features of the Intel 4004
processor described
|
|
Intel 4004 (1/2)
|
A short summary of the Intel 4004 processor
|
|
MOS 65xx (1/2)
|
It was used in the first Apple computers
and the famous Commodore C=64, but how does the MOS 65xx
family of CPUs work?
|
|
MOS 65xx (2/2)
|
How a 65xx Assembly instruction is
constructed and translated into machine code
|
|
VICE C=64 emulator and Merlin Assembler
|
A C=64 emulator running an assembler to
write programs in 6510 Assembly (Merlin)
|
|
x86 (1/2)
|
A look at the Intel x86 family of
processors
|
|
x86 (2/2)
|
A look at the Intel x86 family of
processors
|
|
AVR Atmel (Arduino)
|
A close look at the AVR Atmel used in for
instance the Arduino platform
|
|
AVR Assembly
|
How to write AVR Assembly and upload it to
an AVR processor in an Arduino board. We will use the avra
assembler to translate our code and the avrdude program to
upload it to our processor
|
|
x86 Assembly Hello World (1/3): NASM
|
How to use the NASM compiler to write an
x86 Assembly program to print "Hello World" using system
calls and interrupts (0x80)
|
|
x86 Hello World (2/3): AS
|
How to use the AS compiler to write an x86
Assembly program to print "Hello World!" using interrupts
(0x80)
|
|
x86 Assembly: Hello World (3/3): printf
|
How to use libraries from other languages
in x86 Assembly. More specifically, how to use printf to
output strings and integers
|
|
x86 in-line Assembly in C
|
How to use in-line x86 Assembly in C code
|
|
Quantum computing
|
What is quantum computing and how does it
work?
|
|
Asynchronous computing. The brain
|
The difference between synchronous and
asynchronous computing. An example how the brain works and
comparing it to the state-of-the-art Summit computer. Can
it pass a Turing test?
|