SD1020Number of Members :3
Vidura Manu Wijayasekara Ridhima AgarwalBhaskar Kumar
Advisor : Dr. Sudarshan Srinivasan
THE FIVE CLASSIC COMPONENTS OF A COMPUTER
32-Bit MIPS Elastic Synchronous Processor
INTRODUCTION
In this project we would implement a synchronous processor,
which is latency insensitive by design. Many research is
happening in the industry on this topic, since the timing issues
get more harder to solve with wire delays becoming an
significant factor. In current method wire delays cannot be
determined until final layout, which is a significant draw back in
the synchronous design phase.
LATENCY
Logic Gate
Logic Gate
Logic Gate
Logic Gate
Logic Gate
Logic Gate
Logic Gate
Logic Gate
Logic Gate
Logic Gate
Logic Gate
Logic Gate
As the size of the transistor gets smaller…-Gate delay improves-Wire delay becomes too large to ignore
WIRE DELAY CANNOT BE DETERMINED UNTIL THE FINAL LAYOUT
Study the MIPS (Microprocessor without Interlocked Pipeline Stages) architecture
Test with two benchmarks to verify the functionality of the processor
Study Synthesis of Synchronous Elastic Architectures and implement on a MIPS processor.
Compile, simulate, test, and verify each component on the DE2 development board with the Altera Cyclone II FPGA.
Design controllers for Latency Insensitive Design.
REQUIREMENTS
DESIGN APPROACH CURRENT DESIGN COMPONENTS PIPELINING ELASTIC CONTROLLERS TESTING, EVALUATION, AND VERIFICATION SOFTWARE IMPLEMENTATION
TECHNICAL CONTENT
The logic design is described using VHDL Will be tested on Altera Cyclone II FPGA The project is in two phases:
Phase 1: a synchronous microprocessor will be designed and implemented.
Phase2: the design will be modified to a latency insensitive microprocessor and implemented
DESIGN APPROACH
ALU Program Counter Instruction Memory Data Memory Registers & Register File Decoder Forwarding Unit Hazard Detection Unit Elastic Controllers
COMPONENTS
ALU (Arithmetic Logic Unit)
Does the major calculations including add, AND, OR sub
In MIPS, the ALU takes two 32-bit inputs and produces one 32-bit output, plus some additional signals.
Final 32-Bit ALU
The register containing the address of the instruction in the program being executed.
MIPS instructions are each four bytes long, so the PC should be incremented by four to read the next instruction in sequence.
Program Counter (PC)
Holds the instructions of a program. This design is capable of four basic instructions:
R type Instructions
(includes all the ALU operations)
Load/Store InstructionsLoad: read a value from a memory location
Store: write a value to a memory locationBranch if equal Instruction
Branch to a given offset if two register
values are equal.
Instruction Memory (IM)
Instruction Fetch Stage
Data Memory
A 32-bit register file being used for the data memory for simplicity.
This model contains only 128 bytes of memory.
Address
WriteData
DataMemory
ReadData
MemWrite
MemRead
Register File: A state element that consists of a set of registers that can be read and written by supplying a register number to be accessed.
Registers: Small, fast, storage units that are a part of the data path of the computer.
Size: from a few bits to a few hundred bits. MIPS registers hold 32 bits.
Number: from one to a few hundred. MIPS has 32 registers.
Registers AND Register File
A logic block that has an n-bit input and 2n outputs where only one output is asserted for each input combination
Decoder
Read Data
Instruction[25 - 21]
Instruction[20 - 16]
Instruction[15 - 11]
ReadRegister 1
ReadRegister 2
WriteRegister
WriteData
ReadData 1
ReadData 2
0
1
Mux
Registers
Instruction[15 - 0] Sign
Extend
16 32
0
1
Mux
ALU Result
MemtoReg
RegWriteRegDst
Block diagram of MIPS decode unit
A method of resolving the data hazard by retrieving from internal buffers rather than waiting for it to arrive from programmer-visible registers or memo
Hazard Detection Unit This operates in the ID stage. Handles the data and control hazards created by the
Forwarding unit. It stalls or flushes the registers to prevent unpredictable
operations.
Forwarding Unit
Final Datapath before Pipelining
Buffered, Synchronous pipelines Conventional microprocessors are synchronous circuits
that use buffered, synchronous pipelines. In these pipelines, "pipeline registers" are inserted in-between pipeline stages, and are clocked synchronously. The time between each clock signal is set to be greater than the longest delay between pipeline stages, so that when the registers are clocked, the data that is written to them is the final result of the previous stage.
Pipelining
Pipelined Datapath
For Latency Insensitivity, the latches in the pipeline will be replaced with Elastic Controllers.
This will be done in the next semester.
Elastic Controllers
Each component has been separately tested on Altera (FPGA).
The functionality of each component is further evaluated on the FPGA and the data or the output after performing the test have been collected.
The verification of the data/output has been done.
TESTING, EVALUATION AND VERIFICATION
1st cc 2nd cc 3rd cc 4th cc 5th cc 6th cc 7th cc 8th cc 9th cc
REG03
0 0 0 0 1 2 3 4 5
IF/ID 1 2 3 ... …. …. …. … …
ID/EX 1 2 3 … …
EX/MEM
1 2 … …
MEM/WB
1 2 ….
1 2
EVALUATION OF THE PIPELINEExecuted instruction:
000000 00001 00011 00011 00000 100000
Why Software is needed: Hardware doesn’t execute MIPS assembly language code. It only stores and executes those instructions that are written in a suitable format. This binary format is called the Machine Language.
Software chosen: Machine Language: As it can be used directly by the
hardware for execution. Assembly Language: Since machine code is very hard to
understand that is why it is needed to make it understandable and human-centric. For this, Assembly Language is selected as it is very close to Machine code.
Software Implementation
ALU Instructions: ADD , AND , OR , SUB , SLT , J OP Code( it is of 6 bits of length) 1St Register( 5 bits of address length)2ND Register( 5 bits of address length)16 bits of number to be performed with 2ND register.
Instructions Performed
ALU Instruction
Op Code
ADD 001000
AND 100100
OR 100101
SUB 100010
SLT 101010
J 000010
BUBBLE SORTING
LINEAR SEARCH
The first phase of the project has been achieved successfully.
This second phase will be resumed starting from Spring 2011.
Some work is already being done for the second phase.(Elastic Controllers)
PROJECT STATUS
SL.NO
TASKS DURATION ( weeks) Person Responsible
1 First Group Meeting 2 All
2 Requirements Capture 3 All
3 Adder & Subs tractorALU instruction program for MIPS in Asm 4 Rid-Vid, Bhaskar
4 ALU (Operations+ Unit)Encode programs in machine code 4,5 Rid-Vid, Bhaskar
5 Implement Pipeline Algorithm for Linear Search 5,6 Rid-Vid, Bhaskar
6 Decoding Logic Algorithm for Sorting 6,7 Rid-Vid, Bhaskar
7 Program Counter Logic Asm for Linear search 6,8 Rid-Vid, Bhaskar
8 ALU Instructions Asm for linear sorting 7-9,9 Rid-Vid, Bhaskar
9 Load Instructions Encoding Linear Search 9-11,10 Rid-Vid, Bhaskar
10 Store Instructions Encode Sorting 11 Rid-Vid, Bhaskar
11 Branch Instructions, EC Test Sorting 12-14,12 Rid-Vid, Bhaskar
12 FPGA test Test Binary search Program 15,13-15 Rid-Vid, Bhaskar
13 Presentation + Demo 16 All
UPDATED TIMELINE
BUDGETITEM DISCRIPTION AMOUNT($)
BOOK “COMPUTER ORGNIZATION AND
DESIGN”
50.00
TOTAL 50.00
APPROVED BUDGET 50.00
The Synchronous Latency Insensitive is an effective design which can resolve the timing issues.
The software segment holds a vital importance in the verification of the final design.
So far we were able to accomplish our target and look towards the upcoming semester.
SUMMARY