Fundamentals of Computer Engineering
ELEC 220
Combine CS and EE to design and implement an optimized computing system.
- the processor gets instructions and data from the memory
- input writes data to the memory
- output reads data from the memory
- control sends the signal that determind the operations of the…
- datapath, which does computations
History §
Babbage §
- diff engine
- George Scheutz
- analytical engine
- Scheutz
Binary §
Unsigned binary integers §
Range: to
2’s complement signed integers §
MSB is the sign bit.
Range: to
- Most positive:
- Most negative:
Overflow §
Sum requires more bits than the input data width.
No | Maybe | |
Maybe | No |
Maybe | No | |
No | Maybe |
Sign extension §
move 2’s complement signed int from smaller to larger container: replicate the sign bit to the left
Floating Points §
- normalized
- not normalized
IEEE 754-1985 standard.
Types:
- single precision — 32 bits
- double precision — 64 bits
Components:
-
sign (1 bit)
-
exponent (8 vs 11 bits)
implicit bias 😏 (127 vs 1023)
-
fraction (23 vs 52 bits)
special cases
-
-
subnormal/denormal numbers.
-
literally
-
-
-
NaN aka Not a Number.
-
-
Memory §
Byte ordering §
- Big Endian — LSB has highest address
- Little Endian — LSB has lowest address
Example (0x07AB9DCE
):
Address | B.E. value | L.E. value |
---|---|---|
… | … | … |
0x70 |
07 |
CE |
0x71 |
AB |
9D |
0x72 |
9D |
AB |
0x73 |
CE |
07 |
… | … | … |
Addresses, data.
-
: Kibibyte (KiB)
-
: Mebibyte (Mib)
-
…
-
Microprocessor
CPU components. No memory, no I/O.
-
Microcomputer
Has memory, some I/O.
-
Microcontroller
Many types of memory, sophisticated I/O.
TM4C123GH6PM §
Memory:
- Flash 256 KiB
- SRAM 32 KiB
- ROM
C §
Pointers §
components:
- value: address location
- type: the type of the data at the stored address
- read operands only from the register file
- write operations only to the register file
- only one way to move data between the register file and data memory
- data addresses
- instruction addresses
Bitwise operators §
-
~a
— not -
a & b
— andx & 0 = 0
;x & 1 = x
. clear -
a | b
— orx | 0 = x
;x | 1 = 1
. set -
a ^ b
— xorx ^ 0 = x
;x ^ 1 = ~x
-
a >> n
— right shift -
a << n
— left shift
RISC V §
Reduced Instruction Set Computing.
RISC-V has 32 registers. x0
through x31
. Have no type.
R-format — register-register arithmetic §
Operation | OP Code | funct7 | funct3 |
---|---|---|---|
ADD |
0110011 |
0000000 |
000 |
SUB |
0110011 |
0100000 |
000 |
SLL |
0110011 |
0000000 |
001 |
SLT |
0110011 |
0000000 |
010 |
SLTU |
0110011 |
0000000 |
011 |
XOR |
0110011 |
0000000 |
100 |
SRL |
0110011 |
0000000 |
101 |
SRA |
0110011 |
0100000 |
101 |
OR |
0110011 |
0000000 |
110 |
AND |
0110011 |
0000000 |
111 |
I-format — register-immediate arithmetic §
S-format — stores §
B-format — branches §
U-format — 20-bit upper immediate §
J-format — jumps §
Instructions §
-
add
-
lw
— load wordlw dest,offset(source)
-
sw
— store wordsw dest,offset(source)
-
lb
— load bytelb dest,offset(source)
-
sb
— store bytesb dest,offset(source)
-
slli
— shift left (logical)slli dest,source,bits
-
srai
— shift right (arithmetic) -
beq
— branch (if) equal -
bne
— branch (if) not equal -
blt
— branch (if) less than -
bge
— branch (if) less than -
j
— jump
Analog to Digital §
input: continous time signal
output: discrete sequence
Logic Design §
Demultiplexer
Multiplexer
Canonical forms:
- POS
- SOP
Transistors:
- n
- p
Cache §
memory hierarchy.
trade-off between speed and price/size. small, fast vs large, slow.
locality:
- temporal locality
- spatial locality
types:
- direct-mapped cache
- set associative cache
data bytes
- . when direct-mapped,
Word length: