ECE 251 Spring 202 — Study Guide
Mid-term exam scheduled for Tuesday, March 11th, as a take-home, closed-book exam.
Topic Guide for our mid-term exam:
- Definition of computer architecture
- von Neumann, aka Princeton, architecture
- Harvard architecture
- store program concept
- machine code represents both instructions and data
- types of computers
- CISC
- variable length instructions
- RISC
- fixed length instructions
- Design principles of computer architecture
-
The design of a modern, von Neumann-based digital computer
- the definition
- the components
- the relationships among the components
- the diagram connecting the components together
-
MIPS32 instruction set architecture (ISA)
-
Registers
- User available aka “General Purpose Registers (GPR)”
- R0 through R31
- bit width (32-bit CPU) as operand width
- CPU-only accessible
- Program Counter (PC)
- Endian-ness
- Big Endian — by MIPS32 definition
- Little Endian
- Memory addressability
- Byte-addressable — by MIPS32 definition
- Instruction types
- Register-based
- Immediate-based
- Jump-based
- Core instructions
- Arithmetic and logic
- Memory
- Branch
- Pseudo instructions
- Memory
- Branch
- Memory layout
- Stack
- Dynamic data
- Static data
- Text
- Reserved
-
MIPS32 Assembly Programming
- each line of MIPS assembly represents an instruction, 32-bits
- Arithmetic
- Memory access
- Conditional statements
- Branching (conditional vs absolute, looping, recursion)
- Convert C to Assembly
- Convert Assembly to unlinked MIPS32 machine code (binary)
- Convert MIPS32 machine code to assembly
- Convert MIPS32 assembly code to C code
- Procedural programming
- Leaf procedure
- Nested procedure
- Recursion — implement recursive algorithms like Fibonacci, factorial, etc.
syscall
, a kernel call for a simple OS on MIPS (QtSpim, MARS)
- SystemVerilog
- module and test bench coding
- timing definition
- use of parameters
- implement digital circuits
- full adder (ripple carry)
- clock
- registers (implemented using DFFs)
- register file
- shift logical right and left
- program counter