summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2006-05-16Split SimpleCPU into two different models, AtomicSimpleCPU andSteve Reinhardt
TimingSimpleCPU, which use atomic and timing memory accesses respectively. Common code is factored into the BaseSimpleCPU class. AtomicSimpleCPU includes an option (simulate_stalls) to add delays based on the estimated latency reported by the atomic accesses. Plain old "SimpleCPU" is gone; I have not updated all the config files (just test/test.py). Also fixes to get timing accesses working in new memory model and to get split-phase memory instruction definitions working with new memory model as well. arch/alpha/isa/main.isa: Need to include packet_impl.h for functions that use Packet objects. arch/alpha/isa/mem.isa: Change completeAcc() methods to take Packet object pointers. Also split out StoreCond template for completeAcc(), since that's the only one that needs write_result and we get an unused variable warning if we always have it in there. build/SConstruct: Update list of recognized CPU model names. configs/test/test.py: Change SimpleCPU to AtomicSimpleCPU. cpu/SConscript: Define sources for new CPU models. Add split memory access methods to CPU model signatures. cpu/cpu_models.py: cpu/static_inst.hh: Define new CPU models. cpu/simple/base.cc: cpu/simple/base.hh: Factor out pieces specific to Atomic or Timing models. mem/bus.cc: Bus needs to be able to route timing packets based on explicit dest so responses can get back to requester. Set dest to Packet::Broadcast to indicate that dest should be derived from address. Also set packet src field based on port from which packet is sent. mem/bus.hh: Set packet src field based on port from which packet is sent. mem/packet.hh: Define Broadcast destination address to indicate that packet should be routed based on address. mem/physical.cc: Set packet dest on response so packet is routed back to requester properly. mem/port.cc: Flag blob packets as Broadcast. python/m5/objects/PhysicalMemory.py: Change default latency to be 1 cycle. --HG-- rename : cpu/simple/cpu.cc => cpu/simple/base.cc rename : cpu/simple/cpu.hh => cpu/simple/base.hh extra : convert_revision : e9646af6406a20c8c605087936dc4683375c2132
2006-05-15Many files:Steve Reinhardt
Get rid of more unneeded includes. base/hostinfo.cc: base/inet.cc: base/remote_gdb.cc: cpu/simple/cpu.cc: dev/alpha_console.cc: dev/disk_image.cc: dev/ns_gige.cc: dev/sinic.cc: mem/physical.cc: sim/param.cc: sim/process.cc: sim/pseudo_inst.cc: test/cprintftest.cc: Get rid of more unneeded includes. --HG-- extra : convert_revision : f531ae40db3787f2c55df7d251f251ecae4ab731
2006-05-15Many files:Steve Reinhardt
Fix sstream includes arch/alpha/tlb.cc: base/cprintf.hh: base/cprintf_formats.hh: base/crc.cc: base/statistics.cc: base/statistics.hh: base/stats/text.cc: cpu/memtest/memtest.cc: cpu/simple/cpu.cc: dev/pcidev.cc: sim/eventq.cc: Fix sstream includes --HG-- extra : convert_revision : fd69937ea26b4961e92f1736fa44daa16f54698d
2006-05-15Merge zizzer:/bk/newmemAli Saidi
into zeep.pool:/z/saidi/work/m5.newmem base/loader/elf_object.cc: removed SPARC32PLUS since it doesn't work. --HG-- extra : convert_revision : 620a1c75cdeefbeeb97383d92335cf319d9c9444
2006-05-15Add support for sparc/solaris syscall emulation. Not tested yet because I ↵Ali Saidi
can't get a static sparc 64 binary arch/sparc/SConscript: arch/sparc/process.cc: base/loader/elf_object.cc: Add support for sparc/solaris syscall emulation. --HG-- extra : convert_revision : e22df8476e5c6ae14db1cab1d94d01c0578ea06c
2006-05-15fix typo, headers protection should be named __DIR_DIR_..._FILE_HH__Ali Saidi
--HG-- extra : convert_revision : 18268bfcb8575a33659ae94b821e1f4cc9b7d821
2006-05-14Merge m5.eecs.umich.edu:/bk/newmemGabe Black
into ewok.(none):/home/gblack/m5/newmem --HG-- extra : convert_revision : 2db5529a9fbe8c62e57cad05f093c915f9713c67
2006-05-14Fixed some problems with signed vs. unsigned numbers which were breaking ↵Gabe Black
conditional moves and signed divisions. Also did some minor clean ups. --HG-- extra : convert_revision : 6389ec18387a68ea5b675badfe1fd10cd30c264d
2006-05-14Made the decoder handle reg_or_imm type arguments with type qualifiers.Gabe Black
--HG-- extra : convert_revision : f0ec58d754401fa6f3d64998355644882c5f5c96
2006-05-14Made EM_SPARC32PLUS be recognized as belonging to the SPARC architecture. ↵Gabe Black
Programs which have this set will not work because the stack works differently, so this should probably throw an error and quit. --HG-- extra : convert_revision : b770045cad02d30445de0d7cc4d8c611a0ac931f
2006-05-14Moved the UnimpFault to be globalGabe Black
--HG-- extra : convert_revision : a42224c70c475c1559e83b8a2ef71ff3b792a3ab
2006-05-14Copied Korey's MIPS tests over to SPARCGabe Black
--HG-- extra : convert_revision : bcfefd77c35245ce938ecb9bb46e97ad07377db8
2006-05-12Merge zeep.pool:/z/saidi/work/m5.headAli Saidi
into zeep.pool:/z/saidi/work/m5.nm_m5_pull --HG-- extra : convert_revision : fc90e4e8eefd78a3b7554e06fbc666965794753b
2006-05-12replace /.automount/ with /n/Ali Saidi
--HG-- extra : convert_revision : 8b9ad49fa7e2e8863ebaf3f6709fc4fda62f2862
2006-05-12Merge zeep.pool:/z/saidi/work/m5.headAli Saidi
into zeep.pool:/z/saidi/work/m5.nm_m5_pull SConscript: dram memory needs to be converted to newmem before we can use it dev/ide_ctrl.cc: don't need this printing in newmem dev/ide_disk.cc: will read stats in next commit dev/sinic.cc: merge sinic from head, still needs work --HG-- extra : convert_revision : b9aabd8c7814d07d54ce6f971aad3ec349fa24e1
2006-05-12fix the checkpoint bugAli Saidi
--HG-- extra : convert_revision : 1ccae3282737d70b14ff86c8647e2e662a42c3bc
2006-05-12FP programs are back to running... Condition Codes can be read and set...Korey Sewell
Special Regs (Hi,Lo,FCSR) are now added to the operands for use in decoder.isa. Now it's back to just debugging execution of code for the release (those unaligned memory access instruction pairs are still quite the pain i might add) arch/mips/isa_traits.hh: declare functions for .cc file arch/mips/isa_traits.cc: delete unnecessary overloaded functions implement condition code functions implement round function arch/mips/isa/base.isa: remove R31 constant... define in the operands.isa file instead arch/mips/isa/decoder.isa: wholesale changes once again to FP. Now the FP Condition Codes are implemented and the FP programs can run and complete to finish. Use isnan() instead of my unorderedFP() function Also, we now access special regs such as HI,LO,FCSR,etc. just like we do any other reg. operand arch/mips/isa/operands.isa: add more operands for special control regs in int and FP regfiles arch/mips/isa/formats/branch.isa: use R31 instead of r31 arch/mips/isa/formats/fp.isa: use MakeCCVector to set Condition Codes in FCSR arch/mips/regfile/float_regfile.hh: treat control regs like any other reg. Just Index them after the regular architectural registers arch/mips/regfile/int_regfile.hh: treat hi,lo as regular int. regs w/special indexing arch/mips/regfile/regfile.hh: no longer need for special register accesses with their own function. --HG-- rename : arch/mips/regfile.hh => arch/mips/regfile/regfile.hh extra : convert_revision : 5d2f8fdb59606de2b2e9db3e0a085240561e479e
2006-05-11Initialize the count on the number of devices drained properly.Ron Dreslinski
--HG-- extra : convert_revision : 80833647202985d1c1c7d23c6896831fcd27ff40
2006-05-11First pass at a serializer object, may need to work on naming of object and ↵Ron Dreslinski
functions: Intended Use: A SimObject will call the serializer when it needs the state to be serializable (i.e. switchCPUs, checkpoint, switch memory access model). It will call the requestSeialization() function. The Serializer will signal all the objects in its list to drain their state via the SimObject method drain(). Drain() has a default implementation to just signal done. When each object is drained it will signal the Serializer that it has drained via the signalDrained() function. The Serializer will collect these signals, when all have drained it will signal the initial requestor via serializationComplete() method in the SimObject. Once that object is done, it will signal the Serializer to resumeExecution(). The Serializer will signal all the objects in its list to resume via the resume() method on the SimObject. SConscript: Add serializer object to build list sim/sim_object.cc: Add default behavior for drain (just signal finished, must be overided if you really must drain something) sim/sim_object.hh: Add functions for serializer --HG-- extra : convert_revision : 15aa2d1b42010c2d703bef9114c11d079c216170
2006-05-11make the dma buffer equal to the max dma sizeAli Saidi
--HG-- extra : convert_revision : 87adee6c2239f67976675c9291dc4fbaa4f67507
2006-05-11ide printing to match newmemAli Saidi
--HG-- extra : convert_revision : ca6665bd93d257a8cf9d43600828ac22998c5810
2006-05-11make m5 panic a little more verboseAli Saidi
--HG-- extra : convert_revision : 32f52d829040c06c8a62cab1a7af1ed3b453b6f9
2006-05-11Fixes for Paired-Single FP Compare Operations...Korey Sewell
Now all the variations of FP should be implemented correctly in the decoder. The new formats and functions supporting these functions need to be implemented for some of the FP stuff but for the most part things are looking like their "supposed to"... arch/mips/isa/decoder.isa: Fixes for Paired-Single FP Compare Operations... Now all the variations of FP should be implemented correctly in the decoder. arch/mips/isa/formats/fp.isa: Add new PS formats arch/mips/isa_traits.cc: Add skeleton overloaded round & truncate functions arch/mips/isa_traits.hh: declare overloaded functions --HG-- extra : convert_revision : 15d5cf7b08ac2dc9ebcd6b268e92d4abffdd8597
2006-05-10Support for FP Paired Single OperationsKorey Sewell
Auxiliary Functions and Formats for FP in general arch/mips/isa/decoder.isa: ISA Parser doesnt accept operands of different types in one instruction so fix this for unorderedFP functions... Add basic support for Paired Singled (PS) FP ops which happen to be part of the MIPS 32-ASE but turned out to be included in the MIPS32ISA manual... The PS instructions allow SIMD in a pipeline... arch/mips/isa/formats/fp.isa: Add some more Formats for FP operation. I will add some auxiliary code through these formats to alleviate code redundancy in the decoder.isa arch/mips/isa/operands.isa: Add operands for Paired Singles Ops arch/mips/isa_traits.cc: removed convert&round function and replace with fpConvert. The whole "rounding mode" stuff is something that should be considered for full-system mode... Also added skeletons for the unorderedFP,truncFP,and condition code funcs. arch/mips/isa_traits.hh: declare some Functions arch/mips/types.hh: add new conversion types --HG-- extra : convert_revision : 79251d590a27b74a3d6a62a2fbb937df3e59963f
2006-05-10Merge zizzer:/bk/newmemKorey Sewell
into zazzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem --HG-- extra : convert_revision : 0a146eed200abd2c18f135b112987c5cf91a649b
2006-05-10revamping code to appropriately handle FP condition code and conversion ops.Korey Sewell
There still needs to be a work around to handle the paired singles operations ... arch/mips/isa/decoder.isa: More revamping of the floating point ops in decoder.isa. Change all of the "convert and round" functions to fpConvert. Also, the utility functions roundFP, truncFP, and unorderedFP are in place everywhere. Things have been set up to appropriately use the FP condition codes in the decoder.isa The fp.isa format file and the isa_traits.cc file now needed to be updated to implement the appropriate "backend" operations/functionality... arch/mips/isa_traits.hh: Remove convert & round functions Add roundFP, truncFP,unorderedFP, and the get/setFPconditionCode functions arch/mips/isa_traits.cc: Add utility functions --HG-- extra : convert_revision : 3d6708388abae5b432467f528d52e6343afecd9c
2006-05-10decoder.isa:Korey Sewell
Now handles instructions for FP compares in single or double recision arch/mips/isa/decoder.isa: Now handles instructions for FP compares in single or double recision --HG-- extra : convert_revision : eb3a13616e6736bf2d1ead0b816dda8c6099b20f
2006-05-09decoder.isa:Korey Sewell
Basic Code for Floating Point Compare with Single Precision Floats Added. arch/mips/isa/decoder.isa: Basic Code for Floating Point Compare with Single Precision Floats Added. --HG-- extra : convert_revision : 56b14da1e9d987c2d2090fd2f79af8b12fe8d2ec
2006-05-09decoder.isa:Korey Sewell
Added support for FP compare instructions. Somehow these flew beneath my radar. Also, I start to use special FP utility functions in FP code. Right now, they are defined in isa_traits.hh but may be moved in the future arch/mips/isa/decoder.isa: Added support for FP compare instructions. Somehow these flew beneath my radar. Also, I start to use special FP utility functions in FP code. Right now, they are defined in isa_traits.hh but may be moved in the future --HG-- extra : convert_revision : 84a3b66882f3977ce9c1356cf466d62a7fd8bf19
2006-05-09Print M5 build options for 'scons -h'.Steve Reinhardt
--HG-- extra : convert_revision : 14ef62e513987b89e913e2bf9b8771ee086ed0a0
2006-05-08Start working on more complex FP testsKorey Sewell
Debug FP instructions to handle these FP insts arch/mips/isa/bitfields.isa: add Bitfield for Floating Point Condition Codes arch/mips/isa/decoder.isa: Follow instruction naming style with FP single insts Send the float value to the convert&round functions in single FP add ll inst support add 'token' sc support arch/mips/isa_traits.cc: Add SINGLE->WORD, WORD->SINGLE, & WORD->DOUBLE conversions arch/mips/regfile.hh: update header files arch/mips/regfile/float_regfile.hh: Add more FP registers --HG-- rename : arch/mips/int_regfile.hh => arch/mips/regfile/int_regfile.hh rename : arch/mips/misc_regfile.hh => arch/mips/regfile/misc_regfile.hh extra : convert_revision : 92faf0bfd8542ade762ac569ec158d198f6a9c7e
2006-05-07First Steps in cleaning up MIPS code - This changeset rearranges the files ↵Korey Sewell
in the MIPS directory by moving where constants/types/classes are defined arch/mips/SConscript: arch/mips/isa_traits.cc: arch/mips/isa_traits.hh: arch/mips/process.cc: arch/mips/linux/linux.cc: arch/mips/utility.hh: arch/mips/linux/process.cc: arch/mips/int_regfile.hh: arch/mips/misc_regfile.hh: arch/mips/regfile.hh: arch/mips/types.hh: MIPS directory rearranging --HG-- rename : arch/mips/mips_linux.cc => arch/mips/linux/linux.cc rename : arch/mips/mips_linux.hh => arch/mips/linux/linux.hh rename : arch/mips/linux_process.cc => arch/mips/linux/process.cc rename : arch/mips/linux_process.hh => arch/mips/linux/process.hh extra : convert_revision : 138eee48c8ed75efcf38572f335a556aaec38fc7
2006-05-07Minor changes for FP ... MIPS now works for floating-point programs...Korey Sewell
Now we are to the point where more benchmarks and instruction-coverage is necessary to totally verify/validate correct operation across all MIPS instructions arch/mips/isa_traits.hh: fix for reading double values ... must rearrange bits before using void* to read double. configs/test/hello_mips: real hello world MIPS binary --HG-- extra : convert_revision : 153de1f8a830882c6972bd0bdb56da818f614def
2006-05-07Basic MIPS floating point test works now ... I had to realize that when ↵Korey Sewell
using the double FP reg the register with the higher # contains the most significant bytes... arch/mips/isa/decoder.isa: divide instruction fixes arch/mips/isa_traits.cc: use double as argument to cvt & round function. clean up cout statements in function. arch/mips/isa_traits.hh: In MIPS the higher # reg of a doubles pair is ALSO the most significant reg. Once I switched this the basic MIPS FP test I had worked. --HG-- extra : convert_revision : 45c80df229e6174d0b52fc7cfb530642b1f1fc35
2006-05-04take-out debug only codeKorey Sewell
arch/mips/isa/formats/fp.isa: take out debug-only code --HG-- extra : convert_revision : 12c320b4b1432a626acefc496ec7a188c8b3fb66
2006-05-04Merge zizzer:/bk/newmemKorey Sewell
into zizzer.eecs.umich.edu:/.automount/zooks/y/ksewell/research/m5-sim/newmem --HG-- extra : convert_revision : c48a8857f5a520ff8061eb3d8f08dcd43661e68c
2006-05-04recognized 32 & 64 bit unsigned integer types and set the width appropriatelyKorey Sewell
arch/mips/isa_traits.hh: debug statements to be taken out real soon like... --HG-- extra : convert_revision : 4e9abcb99c991db93328d01d7606a2bb942b29ee
2006-05-02Redo the FloatRegFile using unsigned integersKorey Sewell
Edit the convert_and_round function which access FloatRegFile arch/isa_parser.py: recognize when we are writing a 'uint64_t' FloatReg and set the width appropriately arch/mips/isa/decoder.isa: Send a 'float' to the convert function instead of a unsigned word. Do this so we dont have to worry about the bit manipulation ourselves. We can just concern ourselves with values. Use unsigned double to get movd... arch/mips/isa/formats/fp.isa: float debug statement arch/mips/isa_traits.cc: add different versions of convert_and_round functions arch/mips/isa_traits.hh: Use an array of uint32_t unsigned integers to represent the Floating Point Regfile configs/test/hello_mips: basic FP program cpu/simple/cpu.hh: spacing --HG-- extra : convert_revision : a6fca91ad6365c83025f1131d71fa1b8ee76d7bc
2006-05-02Fix some of lisa's barchart changesNathan Binkert
util/stats/barchart.py: - there is no self.inner_axes - don't append an empty value to self.xsubticks, otherwise subsequent calls will get extra empty ticks - rotate labels 30 degrees instead of 90 so it looks better --HG-- extra : convert_revision : 1cbac6d1f92bfc6b2c1e886ad5f9d4c78a2b3820
2006-05-01move code from packet.hh to packet.cc and packet_impl.hhAli Saidi
fix very annoying not-compiler bug arch/sparc/regfile.hh: You have not included an out-of-class definition of your static members. See [9.4.2]/4 and about a billion gcc bug reports. If statements get around the problem through some magic, and than seems nicer that putting a definition of them in a c file somewhere. cpu/simple/cpu.cc: get() and set() do the conversion now dev/io_device.hh: need get() and set() defentions in all the devices mem/packet.cc: mem/packet.hh: move code from packet.hh to packet.cc mem/physical.cc: packet_impl needed for templated packet functions --HG-- extra : convert_revision : 6c11842aa928d9af7b4cabe826306fe1fe09e693
2006-04-30Got hello world to work!Gabe Black
arch/sparc/isa/decoder.isa: Made sure if a register was assigned to along some control path, then all paths on which no exception would block commit set a value as well. Also, Rs1 is treated as signed for bpr instructions. arch/sparc/isa/formats/integerop.isa: Added an IntOpImm11 class which sign extends the SIMM11 immediate field. arch/sparc/isa/formats/mem.isa: Fixed how offsets are used, and how disassembly is generated. arch/sparc/linux/process.cc: Added fstat and exit_group syscalls. --HG-- extra : convert_revision : 3b4427d239d254a92179a4137441125b8a364264
2006-04-29fixes for seAli Saidi
mem/packet.cc: mem/port.hh: fix for se compilation --HG-- extra : convert_revision : ac960e295f6b51875898245fb55383a59b06cac6
2006-04-28Merge zizzer:/bk/newmemAli Saidi
into zeep.pool:/z/saidi/work/m5.newmem --HG-- extra : convert_revision : d6f7c4dd146613eeba39249f2d916a77108bc8c1
2006-04-28don't need BusBridge.py anymoreAli Saidi
--HG-- extra : convert_revision : 9ec26ee61d4bc68f1dcd1a8ac162c9519b8e6fde
2006-04-28random mix of tidbitsAli Saidi
configs/test/fs.py: update fs.py to use a bus bridge cpu/simple/cpu.hh: cpu should just return that it doesn't snoop any address ranges python/m5/objects/System.py: move boot_osflags to system --HG-- extra : convert_revision : b4256df7eada7e65b69513361de8bffc3fdd680b
2006-04-28devices should increment pkt.time instead of assiging to itAli Saidi
--HG-- extra : convert_revision : b4ca3c7fc13bf0856eb2a800a11d5611b473ec3e
2006-04-28add a bridge object, modify bus object to be able to connect to other buses ↵Ali Saidi
or bridges without panicing SConscript: add new cc files to scons mem/bus.cc: mem/bus.hh: implement addressRanges() on the bus. propigate address ranges to anyone who is interested stripping out ranges of who your propigating to (to avoid livelock) mem/packet.hh: add intersect function that returns true if two packets touch at least one byte of the same data (for functional access) add fixPacket() that will eventually take the correct action giving a timing and functional packet, right now it panics mem/physical.cc: Don't panic if the physical memory recieves a status change, just ignore. --HG-- extra : convert_revision : d470d51f2fb1db2700ad271e09792315ef33ba01
2006-04-28Add SparcSystem objectAli Saidi
arch/alpha/system.hh: sim/system.hh: make boot_osflags apply to all systems --HG-- extra : convert_revision : 48cf903fd92be250b86817210951b85fa5e74632
2006-04-28Fixed constants to work on 32 bit hostsGabe Black
--HG-- extra : convert_revision : acc8e6f60cfdca518fa45afef4165395cba23d4f
2006-04-28Merge m5.eecs.umich.edu:/bk/newmemGabe Black
into ewok.(none):/home/gblack/m5/newmem cpu/simple/cpu.cc: Hand merged --HG-- extra : convert_revision : 68414730c23d41c30cfb7bcfa604029a5fc8622c