Đồ án cod lab 4

Upload: dai-nguyen

Post on 04-Jun-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 n COD lab 4

    1/53

    NCUTRCMYTNH

    LAB 4: MIPS PIPELINEDCPU

    Nhm : 37Khoa :inT- VinThngTrng :iHcBch KhoaNng

    NGUYNTHNH INGUYNCNG LINH

    L HUV

  • 8/13/2019 n COD lab 4

    2/53

    I. XYDNGDATAPATHCBN1. GIITHIUYUCUCALAB 4 Thitkchip MIPS Pipelined 32 bit thchinc

    cc lnh: ADD,BNE,J,JR,LW,SW,SLT,SUB,XORI.

  • 8/13/2019 n COD lab 4

    3/53

    TP LNH ADD rd, rs, rt: Reg[rd] = Reg[rs] + Reg[rt].

    BNE rs, rt, imm16: if (Reg[rs] != Reg[rt]) PC = PC + 4 +Sign_ext(Imm16)

  • 8/13/2019 n COD lab 4

    4/53

    2. CCKHICBN

    1. Khitm v lylnh:- Gmc:

    + Bnhlnh(Instruction memory)

    + Thanh ghi PC (Program Counter)

    + Bcng(Adder)

  • 8/13/2019 n COD lab 4

    5/53

    A. KHITMVLYLNH

  • 8/13/2019 n COD lab 4

    6/53

    B. FILETHANHGHI32 BIT(REGFILE)

  • 8/13/2019 n COD lab 4

    7/53

    C. BALU

  • 8/13/2019 n COD lab 4

    8/53

    D. BNHDLIU

  • 8/13/2019 n COD lab 4

    9/53

    3. GHPNIVBSUNGDATAPATH

    ivicc lnhkhun dngR:

    + GmADD, SUB, SLT v JR.

    Cc lnhADD, SUB, SLT yu cu:

    LydliutRegFile, asang khiALU tnh ton, lulivo RegFile.

    + Ring lnhJR th chcnlydliut

    RegFile thay ithanh ghi PC

  • 8/13/2019 n COD lab 4

    10/53

    3. GHPNIVBSUNGDATAPATH

    ivicc lnhkhun dngR:

  • 8/13/2019 n COD lab 4

    11/53

    3. GHPNIVBSUNGDATAPATH

    Thm lnhXORI:XORI rt, rs, imm16: Reg[rt] = Reg[rs] XOR

    Zero_ext(Imm16)

    Cnbsung:

    KhiZero_extend

    BMux chnuvo cho ALU

    (ReadData2 hocZero_ext(Imm16) )

    BMux chnachcho WriteRegister(rd hocrt )

  • 8/13/2019 n COD lab 4

    12/53

    3. GHPNIVBSUNGDATAPATH

    Thm cc lnhtruy cpbnhLW , SW:- LW rt, imm16(rs): Reg[rt] = Mem[Reg[rs] +

    Sign_ext(Imm16)].

    - SW rt, imm16(rs): Mem[Reg[rs] + Sign_ext(Imm16)] =Reg[rt].

    Cnthm khimrngduSign_extend

    Thm bMux chngi trcho WriteData : LyktqutALU hoctDataMem

  • 8/13/2019 n COD lab 4

    13/53

    3. GHPNIVBSUNGDATAPATH

  • 8/13/2019 n COD lab 4

    14/53

    3. GHPNIVBSUNGDATAPATH

    Thm cc lnhnhy:

    - Nhyc iukin: BNE

    - Nhykhng iukin: J, JR

  • 8/13/2019 n COD lab 4

    15/53

    PC = PC +4

  • 8/13/2019 n COD lab 4

    16/53

    THMLNHBNE(BRANCHIFNOTEQUAL)

  • 8/13/2019 n COD lab 4

    17/53

    THMLNHJUMP

  • 8/13/2019 n COD lab 4

    18/53

    THMLNHJR

  • 8/13/2019 n COD lab 4

    19/53

    4. KHIIUKHIN(CONTROL)

    Tora cc tn hiuiukhin:- RegWrite

    - RegDst

    - ALUSrc

    - ALUOp

    - MemRead

    - MemWrite

    - MemtoReg

    - Branch

    - Jump

    - SignZero

  • 8/13/2019 n COD lab 4

    20/53

    20

    Instruction Opcode R type Lw Sw Bne jmp Xori

    Input

    Op 5 0 1 1 0 0 0

    Op 4 0 0 0 0 0 0

    Op 3 0 0 1 0 0 1

    Op 2 0 0 0 1 0 1

    Op 1 0 1 1 0 1 1

    Op 0 0 1 1 1 0 0

    Outputs

    Jump 0 0 0 0 1 0

    RegDst 1 0 X X X 0

    ALUSrc 0 1 1 0 X 1

    MemtoReg 0 1 X X X 0

    RegWrite 1 1 0 0 0 1

    MemRead 0 1 0 0 0 0

    MemWrite 0 0 1 0 0 0

    Branch 0 0 0 1 X 0

    ALUOp 10 00 00 01 XX 11

    SignZero X 0 0 0 X 1

  • 8/13/2019 n COD lab 4

    21/53

    BNGGITRTNHIUIUKHINKHI ALUCONTROL

    21

    Intruction ALUOp Funct ALUControlALUOp1 ALUOp2 F5 F4 F3 F2 F1 F0

    LW 0 0 X X X X X X 0 0

    SW 0 0 X X X X X X 0 0

    BNE 0 1 X X X X X X 1 0

    ADD 1 0 1 0 0 0 0 0 0 0

    XORI 1 1 X X X X X X 0 1

    SUB 1 0 1 0 0 0 1 0 1 0

    SLT 1 0 1 0 1 0 1 0 1 1

  • 8/13/2019 n COD lab 4

    22/53

    JRCONTROLVBNECONTROL

    JRControl:

    - NuALUOp = 10 (R-type) v Function = 001000

    th JRControl = 1.

    Cn ngclith JRControl = 0 bneControl

    - NuBranch = 1 v ZeroFlag = 0 th bneControl=1

    cn ngclibneControl = 0

  • 8/13/2019 n COD lab 4

    23/53

  • 8/13/2019 n COD lab 4

    24/53

    II. GIITHIUVMIPS PIPELINE: Pipeline : Cc lnhthchintheo kiugiu

    => Tndngkhongthigian rigiacc cng on(Stages).

  • 8/13/2019 n COD lab 4

    25/53

    MTSXUNGT(HAZARD) TRONGCUTRCPIPELINE

    Structural hazard:- L xung txyra khi phncngkhng htrvickthpxl cc lnhngthi(vd:Khi 2 lnhlin tipcngghi ktquvo 1 thanh ghi,khi 2 lnhcng truy cpb

    nh cng 1 thiim).

  • 8/13/2019 n COD lab 4

    26/53

  • 8/13/2019 n COD lab 4

    27/53

    MTSXUNGT(HAZARD) TRONGCUTRCPIPELINE

    Data hazard:

    - Xyra khi m dliucncho lnhtiptheo chac snv angcxl cc lnhtrc.

  • 8/13/2019 n COD lab 4

    28/53

    M ( )

  • 8/13/2019 n COD lab 4

    29/53

    MTSXUNGT(HAZARD) TRONGCUTRCPIPELINE Control hazard:

    - L xung txyra khi c lnhrnhnh.

    - Khi mtlnhrnhnh cthcthi th chabitcachlnhtiptheo .

  • 8/13/2019 n COD lab 4

    30/53

  • 8/13/2019 n COD lab 4

    31/53

    2. CCHXLHAZARD

    a. Structural hazard:

    - Thm cc thanh ghi giacc tintrnh chadliucxl tcc tintrnh trc.

    - Cc thanh ghi schia phncngthnh nhngphntngngvicc Stage.

  • 8/13/2019 n COD lab 4

    32/53

  • 8/13/2019 n COD lab 4

    33/53

    2. CCHXLHAZARD

    b. Data hazard:C 2 kthutxl data hazard:

    - Forwarding

    - Stalling

  • 8/13/2019 n COD lab 4

    34/53

    CCHXLHAZARD- FORWARDINGKthutforwarding:

    - L kthutchuyntipdliuura sau khi tnh ton tbALU hocsau khi truy cpDataMem vo sdng lnhsau, khng chcho nkhi ghi vo RegFile.

  • 8/13/2019 n COD lab 4

    35/53

  • 8/13/2019 n COD lab 4

    36/53

  • 8/13/2019 n COD lab 4

    37/53

    IUKINXYRAFORWARDING EX hazard:

    If (EX/MEM.RegWrite=1)

    and (EX/MEM.RegisterRd!=0)

    and (EX/MEM.RegisterRd=ID/EX.RegisterRs))

    => ForwardA=10

    If (EX/MEM.RegWrite=1)

    and (EX/MEM.RegisterRd!=0)

    and (EX/MEM.RegisterRd=ID/EX.RegisterRt))

    => ForwardB=10

  • 8/13/2019 n COD lab 4

    38/53

    IUKINXYRAFORWARDING MEM hazard:

    If (MEM/WB.RegWrite=1)and (MEM/WB.RegisterRd!=0)

    and (MEM/WB.RegisterRd=ID/EX.RegisterRs))

    => ForwardA=01

    If (MEM/WB.RegWrite=1)

    and (MEM/WB.RegisterRd!=0)

    and (MEM/WB.RegisterRd=ID/EX.RegisterRt))

    => ForwardB=01

  • 8/13/2019 n COD lab 4

    39/53

    KHIFORWARDINGCCTNHIUIUKHINCHNTONHNGCHOALU

  • 8/13/2019 n COD lab 4

    40/53

    2. CCHXLHAZARD-STALLING

    Kthutstalling :- L kthuttr hon victhcthi 1 lnhchdliuc ctcc cu lnhtrc, sdngcho cu lnhsau.

  • 8/13/2019 n COD lab 4

    41/53

  • 8/13/2019 n COD lab 4

    42/53

  • 8/13/2019 n COD lab 4

    43/53

    IUKINXYRASTALLING: ID/EX.MemRead=1

    ID/EX.RegisterRt=IF/ID.RegisterRs

    or

    ID/EX.RegisterRt=IF/ID.RegisterRt

  • 8/13/2019 n COD lab 4

    44/53

    2. CCHXLHAZARD

    Control hazard:

    - Thcthi cc lnhbnh thng. Nuxyra rnhnhth flush cc lnhvatm, giim sau.

    - Xy dng1 khic thflush cc lnhtm v gii

    m cng onIF v ID.-iukinflush: 1 trong nhngiukin:

    + khi thcthi lnhJump, JR

    + lnhBNE thaiukinnhy

  • 8/13/2019 n COD lab 4

    45/53

    KHIXLCONTROLHAZARD:

    Nuxyra rnhnh (c lnhJump, JR hocthaiukinlnhBNE) th sset IF_flush v ID_flush hylnhtm vgiim.

    DISCARDINSTRUCTION

    Jump

    BneControlIF flush

    ID flush JRControl

  • 8/13/2019 n COD lab 4

    46/53

    KHIWB_FORWARD Hazard c thxyra Write Back Stage:

    - Khi ghi v cticng 1 thiim cng 1 achth dliucra khng mbongl dliuangcghi vo.

    - Khcphc: Dng 1 khiWB_Forward chuyntipdliuangghi tingay ura.

  • 8/13/2019 n COD lab 4

    47/53

    KHIWB_FORWARD

    rt

    rs

    ReadData2 Out

    ReadData1 Out

    WriteRegister

    RegWrite

    WriteData

    ReadData2

    ReadData1

    WB_Forward

  • 8/13/2019 n COD lab 4

    48/53

    KHIWB_FORWARD HotngcakhiWB_Forward

    WB_RegWrite = 1 chuyntip

    WB_WriteRegister khc $0 => WB_WriteDataWB_WriteRegister = rs n ReadData1Out

    WB_RegWrite = 1 chuyntip

    WB_WriteRegister khc $0 => WB_WriteDataWB_WriteRegister = rt n ReadData2Out

  • 8/13/2019 n COD lab 4

    49/53

    Discard

    Instruction

    IF_Flush

    ID_Flush

    Jump

    Bnecontrol

    JRControl

    Hazard

    Detection

    Unit

    PC_Write

    IFID_Write

    Stall_flush

    EX_Memread

    ID_rs

    EX_rt

    ID_rt

    IFID_flush

    Stall_flush

    ID_flushflush

    MIPS PIPELINE DATAPATH

  • 8/13/2019 n COD lab 4

    50/53

  • 8/13/2019 n COD lab 4

    51/53

    TINHNHMPHNGTRONGMODELSIM Code: Main: xori $s1,$0,0x0002 xori $s2,$0,0x0006 j labelB labelA: xori $s1,$0,0x0002 xori $s2,$0,0x0002 labelB:

    sub $s3,$s2,$s1 bne $s1,$s2,labelA add $s4,$s1,$s2 sw $s4,8($s3) lw $s5,8($s3) slt $s6,$s2,$s5 xori $s6,$s6,0x0001 jr $s6

  • 8/13/2019 n COD lab 4

    52/53

    M PHNG

    MIPS Pipeline

    Quartus ModelSim

  • 8/13/2019 n COD lab 4

    53/53