Computer Organization and Architecture
This course includes
Lessons
TestPrep
Lab
AI Tutor (Add-on)
Lessons
29+ Lessons | 11+ Exercises | 202+ Quizzes | 176+ Flashcards | 176+ Glossary of terms
TestPrep
44+ Pre Assessment Questions | 58+ Post Assessment Questions |
Need guidance and support? Click here to check our Instructor Led Course.
Here's what you will learn
Download Course OutlineLessons 1: Introduction
- What’s New in the Eleventh Edition
- Support of ACM/IEEE Computer Science and Computer Engineering Curricula
- Objectives
- Example Systems
- Plan of the Text
Lessons 2: Basic Concepts and Computer Evolution
- Organization and Architecture
- Structure and Function
- The IAS Computer
- Gates, Memory Cells, Chips, and Multichip Modules
- The Evolution of the Intel x86 Architecture
- Embedded Systems
- ARM Architecture
Lessons 3: Performance Concepts
- Designing for Performance
- Multicore, Mics, and GPGPUs
- Two Laws that Provide Insight: Amdahl's Law and Little’s Law
- Basic Measures of Computer Performance
- Calculating the Mean
- Benchmarks and Spec
Lessons 4: A Top-Level View of Computer Function and Interconnection
- Computer Components
- Computer Function
- Interconnection Structures
- Bus Interconnection
- Point-to-Point Interconnect
- PCI Express
Lessons 5: The Memory Hierarchy: Locality and Performance
- Principle of Locality
- Characteristics of Memory Systems
- The Memory Hierarchy
- Performance Modeling of a Multilevel Memory Hierarchy
Lessons 6: Cache Memory
- Cache Memory Principles
- Elements of Cache Design
- Implementing Cache Controllers
- Intel x86 Cache Organization
- The IBM z13 Cache Organization
- Cache Performance Models
Lessons 7: Internal Memory
- Semiconductor Main Memory
- Error Correction
- DDR DRAM
- eDRAM
- Flash Memory
- Newer Nonvolatile Solid-State Memory Technologies
Lessons 8: External Memory
- Magnetic Disk
- RAID
- Solid State Drives
- Optical Memory
- Magnetic Tape
Lessons 9: Input/Output
- External Devices
- I/O Modules
- Programmed I/O
- Interrupt-Driven I/O
- Direct Memory Access
- Direct Cache Access
- I/O Channels and Processors
- External Interconnection Standards
- IBM z13 I/O Structure
Lessons 10: Operating System Support
- Operating System Overview
- Scheduling
- Memory Management
- Intel x86 Memory Management
- ARM Memory Management
Lessons 11: Number Systems
- The Decimal System
- Positional Number Systems
- The Binary System
- Converting Between Binary and Decimal
- Hexadecimal Notation
Lessons 12: Computer Arithmetic
- The Arithmetic and Logic Unit
- Integer Representation
- Integer Arithmetic
- Floating-Point Representation
- Floating-Point Arithmetic
Lessons 13: Digital Logic
- Boolean Algebra
- Gates
- Combinational Circuits
- Sequential Circuits
- Programmable Logic Devices
Lessons 14: Instruction Sets: Characteristics and Functions
- Machine Instruction Characteristics
- Types of Operands
- Intel x86 and ARM Data Types
- Types of Operations
- Intel x86 and ARM Operation Types
- Appendix 13A Little-, Big-, and Bi-Endian
Lessons 15: Instruction Sets: Addressing Modes and Formats
- Addressing Modes
- x86 and ARM Addressing Modes
- Instruction Formats
- x86 and ARM Instruction Formats
Lessons 16: Assembly Language and Related Topics
- Assembly Language Concepts
- Motivation For Assembly Language Programming
- Assembly Language Elements
- EXAMPLES
- Types of assemblers
- Assemblers
- Loading and Linking
Lessons 17: Processor Structure and Function
- Processor Organization
- Register Organization
- Instruction Cycle
- Instruction Pipelining
- Processor Organization for Pipelining
- The x86 Processor Family
- The ARM Processor
Lessons 18: Reduced Instruction Set Computers
- Instruction Execution Characteristics
- The Use of a Large Register File
- Compiler-Based Register Optimization
- Reduced Instruction Set Architecture
- RISC Pipelining
- RISC-V Instructions
- MIPS R4000
- SPARC
- Processor Organization For Pipelining
- CISC, RISC, And Contemporary Systems
Lessons 19: Instruction-Level Parallelism and Superscalar Processors
- Overview
- Design Issues
- Intel Core Microarchitecture
- ARM Cortex-A8
- ARM Cortex-A53
- ARM Cortex-M3
Lessons 20: Control Unit Operation and Microprogrammed Control
- Micro-Operations
- Control of the Processor
- Hardwired Implementation
- Microprogrammed Control
Lessons 21: Parallel Processing
- Multiple Processor Organizations
- Symmetric Multiprocessors
- Cache Coherence and the MESI Protocol
- Multithreading and Chip Multiprocessors
- Clusters
- Nonuniform Memory Access
Lessons 22: Multicore Computers
- Hardware Performance Issues
- Software Performance Issues
- Multicore Organization
- Heterogeneous Multicore Organization
- INTEL Core i7 Memory Hierarchies
- The ARM Cortex-A53 and Intel Core i7 Memory Hierarchies
- INTEL Core i7-5960X
- INTEL Core i7 6700
- ARM Cortex-A15 MPCore
- IBM z13 Mainframe
Appendix A: System Buses
- A.1 Bus Structure
- A.2 Multiple-Bus Hierarchies
- A.3 Elements of Bus Design
Appendix B: Victim Cache Strategies
- B.1 Victim Cache
- B.2 Selective Victim Cache
Appendix C: Interleaved Memory
Appendix D: The International Reference Alphabet
Appendix E: Stacks
- E.1 Stacks
- E.2 Stack Implementation
- E.3 Expression Evaluation
Appendix F: Recursive Procedures
- F.1 Recursion
- F.2 Activation Tree Representation
- F.3 Stack Implementation
- F.4 Recursion and Iteration
Appendix G: Additional Instruction Pipeline Topics
- G.1 Pipeline Reservation Tables
- G.2 Reorder Buffers
- G.3 Tomasulo’s Algorithm
- G.4 Scoreboarding
Hands-on LAB Activities (Performance Labs)
Basic Concepts and Computer Evolution
- Installing a CPU Fan on a Motherboard
- Installing Motherboard Components
- Installing a Motherboard, Processor, and Processor Fan
- Installing an Expansion Card on a Motherboard
Performance Concepts
- Calculating the Mean
A Top-Level View of Computer Function and Interconnection
- Installing Input and Output Devices
- Identifying a PCI Bus Slot
The Memory Hierarchy: Locality and Performance
- Determining the Characteristics of Memory Devices in a Memory Architecture
Cache Memory
- Determining L3 Cache Sizes for The Processors
Internal Memory
- Determining Semiconductor Memory Types and Their Erasure Processes
- Installing DDR5 RAM on a Motherboard
External Memory
- Connecting the Motherboard to the Internal Hard Disk
Input/Output
- Installing an NIC on a Motherboard of a CPU
- Connecting a New Workstation to the Internet
- Connecting a USB Printer
Operating System Support
- Configuring a Wireless Client
Number Systems
- Converting Fraction Decimal Number into Equivalent Binary Number
Computer Arithmetic
- Converting Decimal Number into Two's Complement Binary Number
Digital Logic
- Identifying Types of Logic Gates
Instruction Sets: Characteristics and Functions
- Drag the x86 data type to its description.
Instruction Sets: Addressing Modes and Formats
- Identify the Addressing Mode
Assembly Language and Related Topics
- Using Greatest Common Divisor
Processor Structure and Function
- Installing an i7 Processor on a Motherboard
Reduced Instruction Set Computers
- Determining Characteristics of Processors
Instruction-Level Parallelism and Superscalar Processors
- Understanding the Intel Core Microarchitecture
Control Unit Operation and Microprogrammed Control
- Understanding The Functioning of Microprogrammed Control Unit
Parallel Processing
- Determing the Types of Parallel Processor Systems
- Installing Memory Modules on a Motherboard
Multicore Computers
- Identifying Chip Organizations
- Identifying Levels of Cache
- Determining ARM ACE Cache Line States