MIPS InorderCPU branch problems
Review Request #744 - Created June 12, 2011 and discarded
| Information | |
|---|---|
| Deyuan Guo | |
| gem5 | |
| Reviewers | |
| Default | |
| ali, gblack, nate, stever | |
We are porting gem5 to support MIPS64, and find some problems. We try to fix them, as shown below: 1. fetch_seq_unit.cc Comment 2 lines. pc shouldn't be changed at this condition; 2. branch_predictor.cc Comment 1 line. By default, set target to NPC is OK. Adding a condition for MIPS branch likely instruction. 3. bpred_unit.cc If the branch is not taken, BTB should not be updated. In addition, 2 places in src/arch/mips/isa/formats/branch.isa: elif x == 'Likely': # not_taken_code = 'NNPC = NPC, NPC = PC;' The not_taken_code should be commented.
We have run many benchmarks of MIPS64 in gem5. And for MIPS32, with CPU_MODELS=InOrderCPU, hello world run correctly.
Review request changed
Updated (June 12, 2011, 6:11 p.m.)
Change Summary:
Two small changes in MIPS branch.isa, about the branch likely instruction.
Description: |
|
|---|
Posted (June 13, 2011, 12:27 a.m.)
-
src/cpu/inorder/resources/bpred_unit.cc (Diff revision 1) -
Can you post a separate patch for the MipsISA stuff you are describing? I dont see anything in the DIFF. Also, can you list benchmarks that you have observed to work? My overall comment is that I think I caught #s1-3 in the new InOrderCPU code (the code to get Full System working). It's just stuck behind the patches on the reviewboard being merged and passing the regressions. It's predominantly done now, w/the DTB patch being closed to resolved. The last hiccup seems to be that the 50.vortex regressions seems to have been broken in the merge. Once that gets resolved, we'll get a wave of inorder updates. At that point (in the near future), we'll compare the branch code and I'm hoping that you (Deyuan Guo) would be OK retesting your branch changes.
