Design Project: Instruction Set Design Discussion: Please bring your questions to the class. We will discuss your questions which might help others. Submission: Make sure that your name is written at the top of the first page. Upload your report as a single PDF file in Moodle. The report should be prepared using a word processor; it should not be handwritten. Before uploading the report, rename the file with your lastname and firstname (Lastname_Fristname.pdf). Again please do not forget to write your name at the top of the first page. Verification: Download the submitted file from Moodle to verify the correctness of your submission. Help: Your instructor is always available to help you understand the concepts discussed in the course so that you can apply them to the design project. So please feel free to contact the instructor. It is, however, your instructor's general policy not to comment on students' work before submission. This is one way for your instructor to help you to be confident in your work, learn to follow instructions, learn to ask questions when you are unsure, and learn work independently with little or no supervision. Design: Design an instruction set of a 16-bit CPU that has only 16 instructions. Note that no two instructions in an instruction set can be identical. The length of the machine code for each of the instructions should be 16 bits. The instructions should belong to at least three different formats. Make and state any necessary assumptions. Explain all the design decisions. In addition to everything you would like to include in the report, make sure to include a list of registers, instruction formats, explanation on why you have selected certain instructions, which registers an instruction uses, etc. Following are some key points that could be followed when working on the project. Decide how many (user-accessible) registers the CPU is going to have. Decide which instructions the CPU is going to have. Decide which instruction format each of the instructions will use. Decide the opcode for each of the instructions. Decide how many bits are necessary to represent the opcodes and each of the registers. Decide the instruction formats. Give each of the formats a name. Decide the number of fields each of the instruction formats will have. Give each of the fields a name and decide the number of bits that will be used to represent them. It is not necessary that you have the same instruction formats as in the textbook. Even if you try to use one of the instruction format from the textbook, you not necessarily have to have the same number of fields as in the textbook. Decide how each of the instructions is represented in machine code. Make sure to show sample machine code for every instruction. (See Section 2.5 of the textbook for machine code representations of the instructions of LEGv8 processors.) It should be noted that you not necessarily have to use the same fields or same number of fields to represent machine codes as used in the textbook for LEGv8 processor. Understand how all of the above are done in the textbook for a 64-bit CPU. You may like to consider only the concepts presented in Chapter 2 of the textbook when working on the project. For a set of sample instructions, you may like to refer to pages 64-65 of the textbook. Beyond the textbook, you are not required to study or explore any additional materials to complete the design project. If you, however, decide to get ideas from other sources, such resources should be clearly listed as a list of references. The 16-bit CPU with only 16 instructions is not going to be a very useful one but that is okay; we want to learn how to design. -------------------------------------------------------------------------- Clarification The following two lines of code do not represent two different instructions. They are two examples of an instruction. ADD X0, X2, X3 ADD X1, X2, X3 Speaking in another way, the above two lines of code can be executed by the same hardware. Therefore, they represent the same instruction. -------------------------------------------------------------------------- How to start the project? You are advised to do the following at first before you think about doing the design project. This way you will i) be benefited the most for your time, ii) have a good finished product in the end, and iii) enjoy the project or at least it will be less boring. a) Watch two videos from Chapter 2; b) Read the relevant Sections from Chapter 2; c) Try to understand everything from those sections from Chapter 2; d) If you are not clear about something, repeat above steps and seek help from the instructor; e) Read the assignment multiple times and try to understand every words. Allocate some time over several days to master the materials from Chapter 2 and then work on the design project. Your instructor welcomes questions from you. Every question is good. If you would like to have an in-depth conversation with your instructor on the design project, it is highly recommended that you study all the background materials in advance as listed above. -------------------------------------------------------------------------- How long the report should be? Everyone will come up with their unique way of presenting the design. As a result, the number of pages will vary from design to design. There is no minimum or maximum page count requirement. --------------------------------------------------------------------------