Table of Contents

News

simics presentation: May 21(Monday)6:00pm-9:20pm at SEIEE 3-414/404/528

Main Content

Introduction

The goal of our project is to design a pipelined, cached processor with some advanced modules.

Verilog is recommended to you as your design language.

Our discussing group is http://groups.google.com/group/mips-acm-sjtu, or you can send email to mips-acm-sjtu@googlegroups.com

Purpose

Requirements

  1. Basic Module
    • Your 5-stage pipelined CPU should be able to run a required subset of MIPS 32 bit instructions.
    • Your design of CPU should contain 2-level caches.
    • Your design of CPU should include dynamic branch prediction(bonus).
  2. Instruction Set
    • The minimum set of instruction includes: add, addi, sub, and, andi, beq, bne, j, jal, jr, lw, nor, or, ori, lui, slt, slti, sll, srl, sw
    • You can refer to the “green card” for more details concerning the instructions.
  3. Pipeline Design
    • As this is the core of our project, we will certainly test heavily on correctness and robustness of the pipeline design.
    • You should at least design and implement the pipeline which is described in the textbook.
    • In addition, you can also consult Mr. Li Yamin’s materials if necessary.
    • The difficulty of pipeline design lies in solving several kinds of hazards. This will be discussed later.
  4. Cache and Memory
    • The following requirements should be strictly followed:
      1. The size of data of L1 Cache is fixed to 1KB.
      2. The size of data of L2 Cache is fixed to 16KB.
      3. The size of Memory is fixed to 1MB.
      4. Data and instructions share one memory space. Do not split your memory into two.
    • Notice: only the size of data is limited. Therefore, you are free to design the additional data used in your cache including valid bits, dirty bits and so on. Moreover, you should choose your design of your cache carefully. A bad design of cache will invite great complexity, low efficiency and endless bugs.
  5. Advance Module
    • This is the most exciting part of our project. You can try out whatever you are interested in, but it should be related to CPU design. In past years, we have seen (or witnessed, which is more appropriate):
      1. Linux Schedule Policy
      2. Memory Hierarchy
      3. Instruction Level Parallelism (ILP)
      4. Thread Level Parallelism (TLP)
      5. Cache Coherence

Schedule

Slides

Submission

Tools

Modelsim 6.5b SE, used for the final test

download link:

windows: http://download.acm-project.org/modelsim_6.5b_se_windows.exe

linux:

Resources

Web Pages

Documents

Contact

Diyi Yang(杨笛一) huyaoyang001 [at] gmail.com

Liuli Chen(陈旒俐)chenliuli.sea [at] gmail.com

Hongyu Zhu(朱虹宇)serailhydra [at] gmail.com