summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2004-10-21Check in of various updates to the CPU. Mainly adds in stats, improvesKevin Lim
branch prediction, and makes memory dependence work properly. SConscript: Added return address stack, tournament predictor. cpu/base_cpu.cc: Added debug break and print statements. cpu/base_dyn_inst.cc: cpu/base_dyn_inst.hh: Comment out possibly unneeded variables. cpu/beta_cpu/2bit_local_pred.cc: 2bit predictor no longer speculatively updates itself. cpu/beta_cpu/alpha_dyn_inst.hh: Comment formatting. cpu/beta_cpu/alpha_full_cpu.hh: Formatting cpu/beta_cpu/alpha_full_cpu_builder.cc: Added new parameters for branch predictors, and IQ parameters. cpu/beta_cpu/alpha_full_cpu_impl.hh: Register stats. cpu/beta_cpu/alpha_params.hh: Added parameters for IQ, branch predictors, and store sets. cpu/beta_cpu/bpred_unit.cc: Removed one class. cpu/beta_cpu/bpred_unit.hh: Add in RAS, stats. Changed branch predictor unit functionality so that it holds a history of past branches so it can update, and also hold a proper history of the RAS so it can be restored on branch mispredicts. cpu/beta_cpu/bpred_unit_impl.hh: Added in stats, history of branches, RAS. Now bpred unit actually modifies the instruction's predicted next PC. cpu/beta_cpu/btb.cc: Add in sanity checks. cpu/beta_cpu/comm.hh: Add in communication where needed, remove it where it's not. cpu/beta_cpu/commit.hh: cpu/beta_cpu/rename.hh: cpu/beta_cpu/rename_impl.hh: Add in stats. cpu/beta_cpu/commit_impl.hh: Stats, update what is sent back on branch mispredict. cpu/beta_cpu/cpu_policy.hh: Change the bpred unit being used. cpu/beta_cpu/decode.hh: cpu/beta_cpu/decode_impl.hh: Stats. cpu/beta_cpu/fetch.hh: Stats, change squash so it can handle squashes from decode differently than squashes from commit. cpu/beta_cpu/fetch_impl.hh: Add in stats. Change how a cache line is fetched. Update to work with caches. Also have separate functions for different behavior if squash is coming from decode vs commit. cpu/beta_cpu/free_list.hh: Remove some old comments. cpu/beta_cpu/full_cpu.cc: cpu/beta_cpu/full_cpu.hh: Added function to remove instructions from back of instruction list until a certain sequence number. cpu/beta_cpu/iew.hh: Stats, separate squashing behavior due to branches vs memory. cpu/beta_cpu/iew_impl.hh: Stats, separate squashing behavior for branches vs memory. cpu/beta_cpu/inst_queue.cc: Debug stuff cpu/beta_cpu/inst_queue.hh: Stats, change how mem dep unit works, debug stuff cpu/beta_cpu/inst_queue_impl.hh: Stats, change how mem dep unit works, debug stuff. Also add in parameters that used to be hardcoded. cpu/beta_cpu/mem_dep_unit.hh: cpu/beta_cpu/mem_dep_unit_impl.hh: Add in stats, change how memory dependence unit works. It now holds the memory instructions that are waiting for their memory dependences to resolve. It provides which instructions are ready directly to the IQ. cpu/beta_cpu/regfile.hh: Fix up sanity checks. cpu/beta_cpu/rename_map.cc: Fix loop variable type. cpu/beta_cpu/rob_impl.hh: Remove intermediate DynInstPtr cpu/beta_cpu/store_set.cc: Add in debugging statements. cpu/beta_cpu/store_set.hh: Reorder function arguments to match the rest of the calls. --HG-- extra : convert_revision : aabf9b1fecd1d743265dfc3b174d6159937c6f44
2004-09-23Update to make multiple instruction issue and different latencies work.Kevin Lim
Also change to ref counted DynInst. SConscript: Add branch predictor, BTB, load store queue, and storesets. arch/isa_parser.py: Specify the template parameter for AlphaDynInst base/traceflags.py: Add load store queue, store set, and mem dependence unit to the list of trace flags. cpu/base_dyn_inst.cc: Change formating, add in debug statement. cpu/base_dyn_inst.hh: Change DynInst to be RefCounted, add flag to clear whether or not this instruction can commit. This is likely to be removed in the future. cpu/beta_cpu/alpha_dyn_inst.cc: AlphaDynInst has been changed to be templated, so now this CC file is just used to force instantiations of AlphaDynInst. cpu/beta_cpu/alpha_dyn_inst.hh: Changed AlphaDynInst to be templated on Impl. Removed some unnecessary functions. cpu/beta_cpu/alpha_full_cpu.cc: AlphaFullCPU has been changed to be templated, so this CC file is now just used to force instantation of AlphaFullCPU. cpu/beta_cpu/alpha_full_cpu.hh: Change AlphaFullCPU to be templated on Impl. cpu/beta_cpu/alpha_impl.hh: Update it to reflect AlphaDynInst and AlphaFullCPU being templated on Impl. Also removed time buffers from here, as they are really a part of the CPU and are thus in the CPU policy now. cpu/beta_cpu/alpha_params.hh: Make AlphaSimpleParams inherit from the BaseFullCPU so that it doesn't need to specifically declare any parameters that are already in the BaseFullCPU. cpu/beta_cpu/comm.hh: Changed the structure of the time buffer communication structs. Now they include the size of the packet of instructions it is sending. Added some parameters to the backwards communication struct, mainly for squashing. cpu/beta_cpu/commit.hh: Update typenames to reflect change in location of time buffer structs. Update DynInst to DynInstPtr (it is refcounted now). cpu/beta_cpu/commit_impl.hh: Formatting changes mainly. Also sends back proper information on branch mispredicts so that the bpred unit can update itself. Updated behavior for non-speculative instructions (stores, any other non-spec instructions): once they reach the head of the ROB, the ROB signals back to the IQ that it can go ahead and issue the non-speculative instruction. The instruction itself is updated so that commit won't try to commit it again until it is done executing. cpu/beta_cpu/cpu_policy.hh: Added branch prediction unit, mem dependence prediction unit, load store queue. Moved time buffer structs from AlphaSimpleImpl to here. cpu/beta_cpu/decode.hh: Changed typedefs to reflect change in location of time buffer structs and also the change from DynInst to ref counted DynInstPtr. cpu/beta_cpu/decode_impl.hh: Continues to buffer instructions even while unblocking now. Changed how it loops through groups of instructions so it can properly block during the middle of a group of instructions. cpu/beta_cpu/fetch.hh: Changed typedefs to reflect change in location of time buffer structs and the change to ref counted DynInsts. Also added in branch brediction unit. cpu/beta_cpu/fetch_impl.hh: Add in branch prediction. Changed how fetch checks inputs and its current state to make for easier logic. cpu/beta_cpu/free_list.cc: Changed int regs and float regs to logically use one flat namespace. Future change will be moving them to a single scoreboard to conserve space. cpu/beta_cpu/free_list.hh: Mostly debugging statements. Might be removed for performance in future. cpu/beta_cpu/full_cpu.cc: Added in some debugging statements. Updated BaseFullCPU to take a params object. cpu/beta_cpu/full_cpu.hh: Added params class within BaseCPU that other param classes will be able to inherit from. Updated typedefs to reflect change in location of time buffer structs and ref counted DynInst. cpu/beta_cpu/iew.hh: Updated typedefs to reflect change in location of time buffer structs and use of ref counted DynInsts. cpu/beta_cpu/iew_impl.hh: Added in load store queue, updated iew to be able to execute non- speculative instructions, instead of having them execute in commit. cpu/beta_cpu/inst_queue.hh: Updated change to ref counted DynInsts. Changed inst queue to hold non-speculative instructions as well, which are issued only when commit signals backwards that a nonspeculative instruction is at the head of the ROB. cpu/beta_cpu/inst_queue_impl.hh: Updated to allow for non-speculative instructions to be in the inst queue. Also added some debug functions. cpu/beta_cpu/regfile.hh: Added debugging statements, changed formatting. cpu/beta_cpu/rename.hh: Updated typedefs, added some functions to clean up code. cpu/beta_cpu/rename_impl.hh: Moved some code into functions to make it easier to read. cpu/beta_cpu/rename_map.cc: Changed int and float reg behavior to use a single flat namespace. In the future, the rename maps can be combined to a single rename map to save space. cpu/beta_cpu/rename_map.hh: Added destructor. cpu/beta_cpu/rob.hh: Updated it with change from DynInst to ref counted DynInst. cpu/beta_cpu/rob_impl.hh: Formatting, updated to use ref counted DynInst. cpu/static_inst.hh: Updated forward declaration for AlphaDynInst now that it is templated. --HG-- extra : convert_revision : 1045f240ee9b6a4bd368e1806aca029ebbdc6dd3
2004-08-20Check in of new CPU. This checkin works under non-Fullsystem mode, with no ↵Kevin Lim
caches. SConscript: Added new CPU files to build. arch/alpha/isa_desc: Changed rduniq and wruniq to be nonspeculative because the uniq register is not renamed. arch/isa_parser.py: Added new CPU exec method. base/statistics.hh: Minor change for namespace conflict. Probably can change back one the new CPU files are cleaned up. base/traceflags.py: Added new CPU trace flags. cpu/static_inst.hh: Changed static inst to use a file that defines the execute functions. --HG-- extra : convert_revision : bd4ce34361308280168324817fc1258dd253e519
2004-08-11Whack the make stuff since it doesn't work anymore anyway.Nathan Binkert
We're solely using SCons now. --HG-- extra : convert_revision : 122b255e3143d1192c136211cbf3618ff7262fa9
2004-08-11commented script with various kernel parameter tweaks for betterNathan Binkert
network performance --HG-- extra : convert_revision : 9fd2f18a0d2b79942661d764d90177a50754d9c0
2004-08-11cleanup interrupt code for gigabit deviceNathan Binkert
dev/ns_gige.cc: Clean up the interrupt code. Do a better job determining when coalescing should happen. Remove some bogus comments Stop using magic numbers in initialization and comment what the various numbers do dev/ns_gige_reg.h: #define describing which interrupts cannot be delayed and which interrrupts we don't implement --HG-- extra : convert_revision : eb196afa0bf448e1849dd2bd30dde32134effee7
2004-08-11std::Nathan Binkert
--HG-- extra : convert_revision : 8383048265ef5b4d7c995dbf44f7d85e349ddbde
2004-08-10Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/z/saidi/work/m5Ali Saidi
--HG-- extra : convert_revision : 006842b706c7d972f6722b2767c82c6761c447b2
2004-08-10tweak a bunch of kernel parameters to get better performanceNathan Binkert
--HG-- extra : convert_revision : 57cca576fac4013027c2cb6c85cc73cbbcf772ae
2004-08-09Totally re-do/reorganize the python part of the statistics codeNathan Binkert
Make the database creation/removal/cleanup code use python Make formulas work with the database Add support to do some graphing, but needs more work Still need to work on vectors, 2d vectors, dists and vectordists --HG-- extra : convert_revision : 1a88320dcc036a3751e8a036770766dce76a568c
2004-08-07Split libelf/SConscript into two parts, one for theSteve Reinhardt
shared build and one for the per-config header file copying. SConscript: Just include libelf/SConscript-local. build/SConstruct: Include libelf/SConscript-global. --HG-- extra : convert_revision : 0a4ae8f1514819f99fec101b898c19dabd4d59bd
2004-08-07make_c_file.py, load_odescs.py:Steve Reinhardt
Change mode to -rwxrwx--x --HG-- extra : convert_revision : 253dc560ed7b1f321635a9420e47d6d6e53c30ad
2004-08-05Integrate Python configuration script parsing into m5 itself.Steve Reinhardt
SConscript: Add pyconfig/{pyconfig,code}.cc Add list of object description (.od) files. Include pyconfig/SConscript. base/inifile.cc: Get rid of CPP_PIPE... it never really worked anyway. base/inifile.hh: Make load(ifstream&) method public so pyconfig code can call it. sim/main.cc: Handle Python config scripts (end in '.py' instead of '.ini'). sim/pyconfig/m5configbase.py: Add license. Fix minor __setattr__ problem (2.3 related?) --HG-- rename : util/config/m5configbase.py => sim/pyconfig/m5configbase.py extra : convert_revision : 5e004922f950bfdefced333285584b80ad7ffb83
2004-08-03Move libelf/SConscript include to m5/SConscript, so elfSteve Reinhardt
headers get created in build tree (under build/FOO/libelf) instead of source tree (m5/libelf). SConscript: Move libelf/SConscript include here. build/SConstruct: Get rid of libelf/SConscript include (moved to m5/SConscript). --HG-- extra : convert_revision : c0acb3bab2afa5079748b907c5917f548582099e
2004-08-03added p4 configAli Saidi
--HG-- extra : convert_revision : e64b1d6340f7a262653847f15f736e25356ed2d2
2004-08-02merged full_cpu.ini, system.ini and devtime.cAli Saidi
util/ccdrv/devtime.c: coding style --HG-- extra : convert_revision : 972941e100ba13a2ece0986454c4a3485841d9cb
2004-08-02added m5 debug and m5 switch cpu instruction (doesn't work yet) andAli Saidi
a p4 memory/cpu config arch/alpha/alpha_memory.cc: Added code to fault on an unaligned access arch/alpha/isa_desc: arch/alpha/pseudo_inst.cc: arch/alpha/pseudo_inst.hh: Added m5debug break and m5switchcpu (the latter doesn't work) --HG-- extra : convert_revision : 409e73adb151600a4fea49f35bf6f503f66fa916
2004-08-02fix compileNathan Binkert
base/stats/events.cc: Make this compile with MYSQL stuff --HG-- extra : convert_revision : e4e8f9b078447f5e7f535b2678a2ed7d44fa8644
2004-08-01moved alpha access to an unused part of the uncachebale addressAli Saidi
space in tsunami. --HG-- extra : convert_revision : 53eb2ed0cf869565b76d1576c65e29fb3df4dcb6
2004-07-31Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/tmp/m5-dprintkAli Saidi
--HG-- extra : convert_revision : d26b89ff1bf224dbcd6c9eeeab361f516a8d7360
2004-07-31few forgotten changes for dprintkAli Saidi
SConscript: Added printk to scons kern/linux/linux_system.cc: kern/linux/printk.cc: Forgot to commit this dprintk change --HG-- extra : convert_revision : d9a71835b55ece7e84b34632ee6646ac2d0535da
2004-07-30added printk.cc to the sconsscript so it will actually build.Lisa Hsu
SConscript: grrr, spent half an hour looking for why the linker was dying. needed to include the new file printk.cc --HG-- extra : convert_revision : 4c461d9dbe96e94d7c312bf71ee8ad4c87a3b1a1
2004-07-30Added debug printk supportAli Saidi
arch/alpha/ev5.hh: Added max address PAL code can be at arch/alpha/vtophys.cc: Check max address pal can be at so we don't do the wrong conversion if gdb asks for an unaligned access. --HG-- extra : convert_revision : b44f6a8fcd8582337a7d4033f28137c7e718a6a8
2004-07-30Clean up the functional memory debugging stuff a bit.Nathan Binkert
--HG-- extra : convert_revision : 3e05996af51c1c051b044864b50edb21e39368e4
2004-07-30name this stat since it makes life easier with the mysql stuffNathan Binkert
--HG-- extra : convert_revision : cad76b1741f17e183285a8805198345bd815e98b
2004-07-30better debuggingNathan Binkert
dev/ns_gige.cc: Make all DPRINTF statements take one line. If they need two lines, break them up into separate statements. This makes grep much more effective since *every* line will be prefixed by the cycle that the trace message is from and the object that caused the message. normalize some debugging statements so that searching is easier (e.g. always say rxState, not rx state or receive state) break into the debugger when a packet is dropped since we don't really like dropping packets. --HG-- extra : convert_revision : 9cf309ca2143a6b8c8215ac5dd6a31aae60173cd
2004-07-30Fix a few bugs in the receive state machine. In doing back to trackingNathan Binkert
whether or not the state machine is enabled rather than tracking the specific instance of trying to halt the state machine. dev/ns_gige.cc: change back to tracking the state machine's enableness instead of whether or not it is trying to halt. Also fix a major bug that would cause the NIC to drop packets when the rx state machine was idle, but enabled. Fix a couple other bugs in the state machine where the idle interrupt would happen at the wrong time. Add a warning to deal with improper values of intrTick dev/ns_gige.hh: We need to keep track of whether the state machine is enabled or not separately from the control register since the bits don't always reflect the truth. --HG-- extra : convert_revision : 20056b225fa62a0744473babfd693506aa5f29b2
2004-07-30make all ethernet dma use the new interfaceNathan Binkert
--HG-- extra : convert_revision : 1cab883fac2bffd83cb035ebf28958c15118dfdc
2004-07-30better debugging of DMA operationsNathan Binkert
dev/ns_gige.cc: use the new PhysicalMemory dma_read and dma_write functions --HG-- extra : convert_revision : 427049d43355f02ac8bdfe2e60c24825dd734006
2004-07-30Improve the debuggability of FunctionalMemory objects by allowingNathan Binkert
the user to choose which objects will break (so you can have only the client system break for example.) Add features to differentiate between breaking on reads and writes and break when an address gets a specific data value. --HG-- extra : convert_revision : b8b2d1b43832bf74ee75b3f789df829f5b876a17
2004-07-30Move all of the object matching code to a shared file so it canNathan Binkert
be more easily re-used. This currently uses some cooked up matching function that I wrote a while ago, but should probably be changed to use regular expressions in the future. add doDebugBreak to control breakpoints on a per SimObject basis SConscript: add match base/stats/events.cc: base/trace.cc: Move the object matching code into a separate file so it can be more easily shared base/trace.hh: the object matching code was wrapped up and moved. adapt. sim/sim_object.cc: add the doDebugBreak flag that can be set on a per-SimObject basis. This will be used in the future to control whether or not debug_break() will actually break for a given object. provide a function interface that can be called from the debugger. sim/sim_object.hh: add the doDebugBreak flag that can be set on a per-SimObject basis. This will be used in the future to control whether or not debug_break() will actually break for a given object. --HG-- extra : convert_revision : 6bf7924de63d41f5ba6b80d579efdf26ba265a8f
2004-07-30Make the DDUMP tracing feature output the cycle number andNathan Binkert
the object name on every line. This makes grep a bit more effective. kern/tru64/dump_mbuf.cc: use the new data dump format that trace.hh now provides --HG-- extra : convert_revision : 179efa96aaff9da710baae13c9e981975d2abdc1
2004-07-28Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/tmp/m5Ali Saidi
--HG-- extra : convert_revision : 11ce57baaa1ccdb159d83bdad527c92087aa0502
2004-07-28updated readme to reflect linux/scons changesAli Saidi
Put correct date in copyright headers based on bk changesets LICENSE: Updated copyright on license file README: Updaded readme to reflect shift to scons and linux support cpu/trace/reader/ibm_reader.cc: cpu/trace/reader/ibm_reader.hh: cpu/trace/reader/itx_reader.cc: cpu/trace/reader/itx_reader.hh: cpu/trace/reader/m5_reader.cc: cpu/trace/reader/m5_reader.hh: cpu/trace/reader/mem_trace_reader.cc: cpu/trace/reader/mem_trace_reader.hh: cpu/trace/trace_cpu.cc: cpu/trace/trace_cpu.hh: updated copyright (only changeset in 2004) kern/kernel_stats.cc: kern/kernel_stats.hh: updated copyright --HG-- extra : convert_revision : 726aed4b38ff4d230c63a570df83c63075b3c76f
2004-07-26styleNathan Binkert
--HG-- extra : convert_revision : 7489726b6c7bd11af603a448e4ff56c1e46139fe
2004-07-26Move the query function to the cc file and make trace stuff workNathan Binkert
base/mysql.cc: Move the query function to the cc file make the trace stuff work base/mysql.hh: Move the query function to the cc file --HG-- extra : convert_revision : c47cb12afa47d3fe4a7a031b3563601adab62913
2004-07-23Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5Nathan Binkert
into ziff.eecs.umich.edu:/z/binkertn/research/m5/current --HG-- extra : convert_revision : 375f5dc9556fa12bd67915b8c348f35f49ca5049
2004-07-23add a trace mechanism to trace sql stuffNathan Binkert
base/mysql.hh: Trace sql queries base/traceflags.py: Add a trace flag to trace sql queries --HG-- extra : convert_revision : dc25abb474db7334529b791a7aa90f8178ea59ea
2004-07-23use the linux 2.6 kernelNathan Binkert
Make it so the two system config can have one system with a cache hier and the other without --HG-- extra : convert_revision : 32403821cb889d00283ae0982e3fbe21a93acce4
2004-07-23When a packet has finished transmitting, kick the stateNathan Binkert
machine too. The fifo may have been full and we want to get another packet into it if we can. --HG-- extra : convert_revision : 8f57294bd18f5eccb900118f2de83a4ccfd20dbb
2004-07-23formattingNathan Binkert
--HG-- extra : convert_revision : a1577ca129ff98ab83bb46714331831c15156adc
2004-07-23sim ticks should be the number of elapsed ticks, not curTickNathan Binkert
--HG-- extra : convert_revision : 709753255e3e0425940b49e5df0271105935f3d4
2004-07-23a little bit more info when dumping the event queue.Nathan Binkert
add a function that can be called from the debugger to dump the event queue --HG-- extra : convert_revision : 2a8bb9b948abf611e8dc8cefe208a33b7a3c2c90
2004-07-23If we're doing mysql, we're doing binningNathan Binkert
--HG-- extra : convert_revision : a5a15136d991b41263d6e5aa2f79deefc85a99a9
2004-07-23notify the transmitter when the packet has finished transmitting.Nathan Binkert
--HG-- extra : convert_revision : 66f6f80945c1f621cdc3e743f601d2a73361bacd
2004-07-22Stats database fixes to avoid naming conflicts in the databaseNathan Binkert
and to do proper dumping of non-binned stats. base/stats/mysql.cc: have configure return whether or not the stat is a printable stat. This avoids naming problems in the database. don't store non printable stats. dump non-binned stats into the special bin 0 base/stats/mysql.hh: have configure return whether or not the stat is a printable stat. This avoids naming problems in the database. --HG-- extra : convert_revision : e33b115d605226a838eee2e6489e03b8d77ffc02
2004-07-22Add support to store less than the full packet in an etherdumpNathan Binkert
and actually default to only storing a max of 96 bytes per packet since that should be plenty to fit all of the headers in. --HG-- extra : convert_revision : 0c4a6571d80536477ed166e695d957e39da0334e
2004-07-22more initial checking of statsNathan Binkert
base/statistics.cc: add more checking to the stats stuff to make sure that things are set up correctly base/stats/statdb.cc: Check that bins are only registered once. --HG-- extra : convert_revision : b0eafe4f584a8587dc3bf48812c632531ca28cb6
2004-07-21one more fix to the ini filesAli Saidi
--HG-- extra : convert_revision : 1261cb1dd78c3a7e4ec1c99de4b6136819375016
2004-07-21Merge zizzer:/bk/m5 into zeep.eecs.umich.edu:/tmp/m5Ali Saidi
--HG-- extra : convert_revision : 8444a4f15530bef95350e124f9b840c74e236f7d