Computer Systems Architecture 2 - project

by Karol Wieczorek published 2020/03/15 19:21:00 GMT+2, last modified 2020-10-13T23:25:46+02:00

Rules for completing the course

  1. Because of the pandemic the project will be performed remotely only
  2. Students work in 3-4 person teams.
  3. Each of the team have to choose a subject from the following (see bottom) and realize it to the end of the semester
  4. Project is realized in 4 parts:
    • complete list of instructions created according to the specification of the project - processor instructions must have a variable length format
    • executing unit (block of registers, ALU, CPU-MEM device, segmentation unit etc.)
    • control unit (device generating control signals and microprogram for each of the processor instruction)
    • CPU-RAM cooperator device and instructions fetching unit to execute programs automatically
  5. The project will be assessed according to the following rules:
    • 3.0 - coded list of instructions
    • 4.0 - executing unit
    • 4.5 - control unit
    • 5.0 - possibility of executing programs automatically
  6. Every  even Wednesday (according to plan), teams must send me an email with the subject: CSA2_PROJECT_ [team number] telling me what the team has been doing in the last 2 weeks (it can be 2-3 sentences but I want to know what you are doing).
  7. To complete the project you have to prepare a report describing all parts of the project you finish.

Subjects of projects

General assumptions:

The project should include:

  • operating memory chip,
  • draft list of orders,
  • microprogram (microinstruction) design,
  • a microprocessor system, consisting of the following elements:
    • bus handling systems: data and address,
    • memory manager chip,
    • instruction download block,
    • control system (controller),
    • data path block.
Depending on the number of the selected task, individual elements of the microprocessor should be appropriately modified. The report should include all information appearing in instruction No. 8 and additional information resulting from the specificity of the project. In all projects, each microprocessor, after receiving the RESET signal, should start the program execution from the memory address 0 after it is active.

Additional assumptions and limitations:

  1. The numeric code to be used in the project is U2,
  2. Registers, depending on their destination, should be grouped into blocks, and access to the registers must be realized via the common I / O bus of a given block,
  3. the comparator module is called COMP_8B ,
  4. the multiplier module is called MULT_8B and is available here: [download] ,
  5. the full adder module is called FULL_ADD_8B and is available here: [download] ,
  6. microprocessor instructions are to have a variable code length, unless the task content indicates otherwise,
  7. in all tasks, a separate ALU block should be developed with a default address accumulator register and a bit-addressed markers register (if necessary - it results from the task content),
  8. unless otherwise indicated by the limitations contained in the project specification, it is allowed to use universal registers with certain built-in functionalities, e.g. the ability to perform logical operations on the contents of the register, etc.

Symbols used in the content of the tasks:

  • rej - register (universal, special, segment),
  • nat - immediate value,
  • pam - memory,
  • rej-rej - the command argument is to be 2 registers, the result should be saved in the first register,
  • rej-nat - the command arguments are to be register and immediate value,
  • reg-pam - the command arguments are to be a register and a memory cell addressed in accordance with the addressing modes available in a given task.
In the case of operation using segment registers, the code segment register can only be the second operand of the instruction, and the other segment registers can be used as destination register only in data transfer operations.

Tasks for the project

  1. Design the microprocessor and accompanying systems in accordance with the specifications and limitations presented in the introduction to this manual. In addition, the microprocessor must:
    • be able to address 4096 words of operational memory,
    • support addressing: default, immediate, direct,
    • support memory segmentation with division into program code segment and data segment,
    • have an appropriate number of segment registers,
    • have an order counter register (read only),
    • have 4 universal registers,
    • handle the stack,
    • to execute orders:
      • data transmission of reg-nat, reg-reg, reg-memory,
      • adding / subtracting reg-nat, reg-reg,
      • multiplication of reg-nat, reg-reg,
      • comparing records,
      • performing an unconditional jump,
      • performing conditional jumps when greater, smaller, equal,
      • calculation of logical function values ​​for reg.
    The basic word length of a microprocessor is 8 bits. The marker register must be updated after the execution of the equivalent instructions. The microprocessor command word MUST be of variable length. The word length on the microprocessor data bus is to be 8 bits. Prepare a program in memory that will demonstrate the capabilities of the microprocessor (the content of the pseudocode along with the content of the assembler should be included in the report).



  2. Design the microprocessor and accompanying systems in accordance with the specifications and limitations presented in the introduction to this manual. In addition, the microprocessor must:
    • be able to address 4096 words of operational memory,
    • support addressing: default, immediate, indirect register,
    • support memory segmentation with division into program code segment and data segment,
    • have an appropriate number of segment registers,
    • have an order counter register (read only),
    • have 8 universal registers,
    • to execute orders:
      • data transmission of reg-nat, reg-reg, reg-memory,
      • adding / subtracting reg-nat, reg-reg,
      • multiplication of reg-nat, reg-reg,
      • comparing records,
      • performing conditional jumps when greater, smaller, equal,
      • computing logical function values ​​for register.
    The basic word length of a microprocessor is 8 bits. The marker register must be updated after the execution of the equivalent instructions. The microprocessor command word MUST be of variable length. The word length on the microprocessor data bus is to be 8 bits. Prepare a program in memory that will demonstrate the capabilities of the microprocessor (the content of the pseudocode along with the content of the assembler should be included in the report).