We may earn an affiliate commission when you visit our partners.
Course image
Oli Howson, Visakh Ajith, Suzanne Candanedo, Awadhy Mohammed, Gianluca Cantone, Jay Piamjariyakul, and Angeliki Agathi Tsintzira

Want to understand how the central processing unit (CPU) of a microprocessor works? How the code you type is actually executed by your computer? Presented by engineers from Arm, this course provides you with an introduction to the central components of processors including:

Read more

Want to understand how the central processing unit (CPU) of a microprocessor works? How the code you type is actually executed by your computer? Presented by engineers from Arm, this course provides you with an introduction to the central components of processors including:

  • the Arithmetic Logic Unit, or ALU, and the arithmetic and logical operations it carries out;
  • the Fetch-Decode-Execute cycle or FDE within different architectures;
  • pipelining, or how a CPU decides what to prioritise and the challenges faced when doing so;
  • types of memory and their uses;
  • the process that high level code, such as C#, goes through to get converted into machine code;
  • assembly code, an interim step between high level and machine level code; and
  • how assembling and compiling work together to produce object code or executable files.

There is also a practical opportunity to be introduced to an assembly language.

What's inside

Learning objectives

  • The purpose, specs, components and activities of a cpu
  • The differences and uses of ram, rom, and cache memory
  • The purpose and activities of buses and registers
  • Opcode, operands and memory addresses
  • The purpose and operations of an arithmetic logic unit
  • The fetch-decode-execute cycle
  • The need for assembly and machine code
  • Basic conversion of assembly code to machine code
  • You will learn:

Syllabus

Module 1: Introduction to the CPU
An introduction to the CPU, the importance of binary in Computing, and the central components of processors.
Read more
Module 2 The ALU and Decode Unit
An exploration of the Arithmetic Logic Unit (ALU), the arithmetical and logical operations it carries out, often on a bit-by-bit level.
Module 3 The Fetch-Decode-Execute Cycle
A discussion of the Fetch-Execute or Fetch-Decode-Execute cycle (FDE). Consideration of some elements which impact the performance of the CPU, the connecting types of memory, and pipelining.
Module 4 Assembly Language
Discussion of the need for machine code and the process to convert object code to machine code. A practical introduction to assembly language through the BSim emulator.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores the full scope of modern processor architecture
Examines essential concepts for understanding foundational computer science concepts
Taught by recognized engineers from Arm, a leading chip designer
Practical insights into assembly language through BSim emulator
Suitable for students and professionals seeking to strengthen their understanding of computer architecture
Assumes basic understanding of programming concepts

Save this course

Save Introduction to Microprocessors to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Introduction to Microprocessors with these activities:
Review Binary Number System
Strengthen your foundation by revisiting the binary number system, a key component of computer architecture.
Browse courses on Binary Number System
Show steps
  • Review the basic concepts of binary numbers (0s and 1s)
  • Convert decimal numbers to binary numbers and vice versa
  • Perform simple arithmetic operations (addition and subtraction) in binary
Participate in a Study Group
Enhance your learning by discussing concepts and sharing insights with peers.
Show steps
  • Find a study partner or group who is also taking the course
  • Set regular meeting times to discuss the course material
  • Review key concepts and work through problems together
  • Quiz each other on the material to test your understanding
Practice Arithmetic and Logical Operations
Sharpen your understanding of the fundamental operations performed by the Arithmetic Logic Unit.
Browse courses on Arithmetic Logic Unit
Show steps
  • Review the different arithmetic operations (addition, subtraction, multiplication, division)
  • Practice performing these operations on binary numbers
  • Learn about the different logical operations (AND, OR, NOT, XOR)
  • Solve problems involving combinations of arithmetic and logical operations
Four other activities
Expand to see all activities and additional details
Show all seven activities
Convert Assembly Code to Machine Code
Reinforce your understanding of the relationship between assembly language and machine code.
Browse courses on Assembly Language
Show steps
  • Review the basic instruction set and addressing modes of a simple CPU
  • Translate a series of assembly language instructions into their equivalent machine code
  • Identify and resolve any errors in the conversion process
  • Simulate the execution of the machine code using an emulator
Explore the Fetch-Decode-Execute Cycle
Deepen your understanding of the core mechanism that drives the operation of a CPU.
Show steps
  • Find tutorials that explain the Fetch-Decode-Execute cycle
  • Follow along with the tutorials, taking notes
  • Try to explain the cycle to someone who is not familiar with it
  • Identify the different components involved in each stage of the cycle
  • Research different variations of the Fetch-Decode-Execute cycle
Build an Assembly Language Program
Solidify your understanding of assembly language and computer architecture by creating your own program.
Browse courses on Assembly Language
Show steps
  • Choose a simple task to implement in assembly language
  • Learn the basics of assembly language syntax
  • Write the assembly language code for your program using an assembler
  • Test and debug your program using an emulator or simulator
  • Optimize your program for efficiency and performance
Assist in a Computer Science Lab
Gain practical experience and support students by volunteering in a computer science lab.
Show steps
  • Contact a local computer science department or organization to offer your services
  • Assist students with their coursework, projects, and lab assignments
  • Provide technical support and troubleshooting assistance
  • Share your knowledge and experience with students
  • Observe and learn from experienced professionals and researchers

Career center

Learners who complete Introduction to Microprocessors will develop knowledge and skills that may be useful to these careers:
Database Administrator
Database Administrators design, implement, and maintain databases. They may work on a variety of projects, from creating new databases to optimizing existing systems. Some Administrators specialize in a particular type of database, such as SQL or NoSQL. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Database Administrator.
Web Developer
Web Developers design and develop websites and web applications. They may work on a variety of projects, from creating simple websites to developing complex e-commerce systems. Some Developers specialize in a particular area, such as front-end development or back-end development. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Web Developer.
Network Administrator
Network Administrators design, implement, and maintain computer networks. They may work on a variety of projects, from creating new networks to optimizing existing systems. Some Administrators specialize in a particular area, such as network security or network management. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Network Administrator.
Game Developer
Game Developers design and develop video games. They may work on a variety of projects, from creating simple games to developing complex AAA titles. Some Developers specialize in a particular area, such as game design or programming. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Game Developer.
Software Developer
Software Developers design, develop, and maintain computer applications. They may work on a variety of projects, from developing new software to updating existing systems. Some Developers specialize in a particular area, such as mobile development or cloud computing. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Software Developer.
Systems Analyst
Systems Analysts design, develop, and implement computer systems. They may work on a variety of projects, from creating new systems to upgrading existing systems. Some Analysts specialize in a particular area, such as business analysis or systems engineering. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Systems Analyst.
Mobile Developer
Mobile Developers design and develop mobile applications. They may work on a variety of projects, from creating simple games to developing complex business applications. Some Developers specialize in a particular platform, such as iOS or Android. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Mobile Developer.
Computer Programmer
Computer Programmers write and maintain the code that makes computers and applications work. They may work on a variety of projects, from developing new software to updating existing systems. Some Programmers specialize in a particular area, such as database programming or web development. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Computer Programmer.
Computer Engineer
Computer Engineers design, develop, and maintain computer systems. They may work on a variety of projects, from creating new hardware to developing new software. Some Engineers specialize in a particular area, such as computer architecture or computer security. This course can help you build a foundation for success. It will introduce you to the central components of processors, the Fetch-Decode-Execute cycle, and assembly language. These concepts are essential for anyone who wants to work as a Computer Engineer.
Mechanical Engineer
Mechanical Engineers design, develop, and maintain mechanical systems. They may work on a variety of projects, from creating new products to improving existing systems. Some Engineers specialize in a particular area, such as robotics or manufacturing. This course may be useful for you. It will provide you with a foundation in the central components of processors. This knowledge will be helpful if you choose to specialize in computer engineering or mechatronics.
Materials Scientist
Materials Scientists research and develop new materials. They may work on a variety of projects, from creating new products to improving existing systems. Some Scientists specialize in a particular area, such as materials chemistry or materials physics. This course may be useful for you. It will provide you with a foundation in the central components of processors. This knowledge will be helpful if you choose to specialize in computer engineering or embedded systems.
Chemical Engineer
Chemical Engineers design, develop, and maintain chemical processes. They may work on a variety of projects, from creating new products to improving existing systems. Some Engineers specialize in a particular area, such as process engineering or materials science. This course may be useful for you. It will provide you with a foundation in the central components of processors. This knowledge will be helpful if you choose to specialize in computer engineering or embedded systems.
Electrical Engineer
Electrical Engineers design, develop, and maintain electrical systems. They may work on a variety of projects, from creating new products to improving existing systems. Some Engineers specialize in a particular area, such as power systems or electronics. This course may be useful for you. It will provide you with a foundation in the central components of processors. This knowledge will be helpful if you choose to specialize in computer engineering.
Biomedical Engineer
Biomedical Engineers design, develop, and maintain medical devices and systems. They may work on a variety of projects, from creating new products to improving existing systems. Some Engineers specialize in a particular area, such as biomaterials or medical imaging. This course may be useful for you. It will provide you with a foundation in the central components of processors. This knowledge will be helpful if you choose to specialize in computer engineering or embedded systems.
Civil Engineer
Civil Engineers design, develop, and maintain civil infrastructure. They may work on a variety of projects, from creating new buildings to improving existing roads. Some Engineers specialize in a particular area, such as structural engineering or transportation engineering. This course may be useful for you. It will provide you with a foundation in the central components of processors. This knowledge will be helpful if you choose to specialize in computer engineering or embedded systems.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Introduction to Microprocessors.
Often used at academic institutions, this book delves into the fundamental principles of computer architecture and organization, providing a useful complement to the course's introduction to the components and activities of a CPU.
Provides a broad overview of computer systems, including topics such as computer architecture and assembly language, offering a good supplement to the course's introduction to the components and activities of a CPU.
Offers a more in-depth exploration of computer architecture, providing a strong foundation for understanding the concepts covered in the course.
Save
While not directly related to the course's focus on ARM assembly language, this book provides a solid foundation in assembly language programming, complementing the course's introduction to the subject.
Covers topics such as digital logic design and computer architecture, offering a valuable complement to the course's introduction to the components and activities of a CPU.
Provides a thorough examination of computer systems from a programmer's point of view, offering valuable insights that complement the course's introduction to the components and activities of a CPU.
While not directly related to the course's focus on ARM assembly language, this book offers a detailed examination of MIPS assembly language, providing a valuable supplement to the course's introduction to the subject.
Provides a comprehensive guide to ARM system development, complementing the course's introduction to ARM assembly language.
Offers a practical introduction to assembly language programming, providing a useful supplement to the course's introduction to the subject.
Provides a comprehensive overview of microprocessor theory and design, complementing the course's introduction to the components and activities of a CPU.
Offers a concise overview of computer organization and architecture, providing a useful supplement to the course's introduction to the components and activities of a CPU.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser