Skip to main content
Engineering LibreTexts

4.1: Instruction Set Architecture (ISA)

  • Page ID
    76109
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    When implementing a CPU, a virtual representation must first be created to specify a number of architectural decisions that must be made. Obvious things such as:

    1. Will the CPU be a Complex Instruction Set CPU (CISC) or a Reduced Instruction Set CPU (RISC)?
    2. What are the supported data types, for example will the CPU support ints, shorts, characters, floats, doubles, etc?
    3. How big to make the data items, such as integers and addresses. Often this is related to and called the word size for a CPU.
    4. The format of data items, such as using two’s complement for integer values, IEEE 754 format for floats, and ASCII for characters. The format for all supported data types must be specified.
    5. How many registers will exist and how they will be used.
    6. How is data transferred between units in the CPU, called the processor datapath.
    7. How will data be provided to the ALU, or more specifically will the computer be a 0- address (stack), 1-address (accumulator) or 2/3-address (general register) organization.
    8. When designing a CPU, memory can be accessed directly by instructions, or the access to memory can be limited to load and store instructions. The ARM CPU falls into the latter category of a load and store architecture.

    9. Is there a unified memory, called a Von Neumann or Princeton architecture, or is the memory divided between text and data segments, called a Harvard architecture.

    This section will address specifically the last three issues: the type of datapath for the data, how memory is accessed, and the memory organization.

    The ARM architecture is a modified version of a 3-address, load and store architecture. Therefore, the rest of this chapter will be cover a generic version of 3-address load and store architecture that is capable of running ARM instructions.


    This page titled 4.1: Instruction Set Architecture (ISA) is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Charles W. Kann III via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.

    • Was this article helpful?