Design a CPU 2

Design a CPU 2

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 74 Lessons (18h 16m) | 15.48 GB

Computer Architecture Organisation and Design

In this course we take what we learned from the first course and expand on the simple 8 bit design and create a 16 bit machine with a maximum of 64 instructions with each instruction having access to 4 different addressing modes. We cover port mapped i/o and memory mapped i/o. We start using a new faster more stable version of Logisim.
The hard wired control unit is replaced with a mixed hardwired and microcoded control unit. We increase the number of general purpose registers from 4 to 6 and add in a temporary register, index register , stack pointer register and floating point unit register.

We design a new assembler in python to help us write the assembly language code with our new larger instruction set.

Finally we add on a keyboard a character display and a graphics display.

The 64 Kbyte address space is split into a ROM that contains the start of an operating system and commonly used subroutines and a RAM that contains the program code and data.
If you want to know how to build a fully functioning 16 bit machine and design some cool assembly language programs then this is the course you need to take.

Don’t just read about theory and imaginary machines , build an actual machine that works. It’s the best way of learning Computer Architecture Design and Organisation.

What you’ll learn

  • Mico-Coded Control Unit Design
  • Addressing Modes
  • Assembler in Python
  • CPU Mertrics
  • Labels and Declarations
  • Port Mapped Input Output
  • Memory Mapped Input Output
  • The Stack
  • Subroutines
  • High Level Language Constructs in Assembly Language
  • 16 Bit Machine with 90 Instructions

Who this course is for:

  • This course is aimed at people who want to learn Computer Architecture Organisation and Design by building their very own Computer as opposed to learning from imaginary machines.
Table of Contents

Introduction
1 Introduction
2 The CPU
3 Assembler Debugger
4 Load and Run

Add Subtract Multiply Divide
5 Count to Three
6 Add Subtract
7 Multiply Divide
8 CPU and Algorithm Metrics

Assembler and Compiler
9 Assembler Labels and Declarations
10 Compile and Assemble

Update Design
11 Roadmap for Next 10 Videos
12 New Reset Method

Port Mapped IO
13 Input Output Instruction
14 Input Device
15 Output Device
16 New Completed Input Output

Port to Logisim Evolution
17 Port to Logisim Evolution

Bit Machine
18 Bit Machine

Memory Mapped IO
19 Memory Mapped IO Theory
20 Memory Mapped IO Circuits

Micro-Coded Control Unit
21 Hardwired v Micro-Coded Control Unit
22 Transition to Micro-Coded Control Unit
23 Micro-Coded Control Unit Explained
24 Mixed Micro-Coded and Hard Wired Control Unit
25 Mapping Instructions to ROM
26 Compression ROM

The Stack
27 New Design Overview
28 Stack 1 Theory
29 Stack 2 Implemetation
30 Stack 3 Instructions

Architecture and Addressing Modes
31 Addressing Modes Introduction
32 Architecture 1
33 Architecture 2
34 Full Instruction Set
35 Implementing Addressing Mode in MicroCode
36 Architecture 3
37 Architecture 4

Keyboard Screen and Graphics Display
38 Keyboard
39 Keyboared Example
40 Display
41 Display Example
42 New Clock Circuit
43 Graphics Card 1
44 PIXEL Instruction
45 PIXEL Example
46 Graphics Card 2
47 SPLASH Instruction
48 Creating a Splash Screen Image

Assembler
49 Install Python
50 First Assembly Language Program
51 Loops and Labels
52 EQU and DS Assembler Directives
53 Factorial Example
54 Greatest Common Divisor
55 DS , DC , EQU Assembler Directives Compared

Subroutines , Functions and Basic Control Structures
56 Read and Write Characters
57 (get_char) and (print_char) Subroutines
58 Passing Parameters by Value
59 Passing Parameters by Reference
60 Passing Parameters Using the Stack
61 Basic High Level Constructs
62 Recursion
63 Generating a One Dimensional Array using EQU Directive
64 Manipulating a One Dimensional Array using the EQU Directive
65 Generating a One Dimensional Array using the DS Directive
66 Printing Characters from an Array to the Screen using the DC Directive

Mathematics Library
67 The Absolute Value

Graphics Library
68 Bresenhams Algorithm
69 Bresenham’s Algorithm Example
70 Bresenham’s Line Drawing Algorithm in Python
71 Breseham’s Algorithm in Assembly Language Video 1
72 Bresenham’s Algorithm in Assembly Language Video 2

Goodbye
73 Next Course

Bonus Section
74 Bonus Lecture

Homepage