-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/1091/#review2379
-----------------------------------------------------------

Ship it!


Ship It!

- Ali Saidi


On March 22, 2012, 9:40 a.m., Andreas Hansson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/1091/
> -----------------------------------------------------------
> 
> (Updated March 22, 2012, 9:40 a.m.)
> 
> 
> Review request for Default.
> 
> 
> Description
> -------
> 
> MEM: Introduce the master/slave port sub-classes in C++
> 
> This patch introduces the notion of a master and slave port in the C++
> code, thus bringing the previous classification from the Python
> classes into the corresponding simulation objects and memory objects.
> 
> The patch enables us to classify behaviours into the two bins and add
> assumptions and enfore compliance, also simplifying the two
> interfaces. As a starting point, isSnooping is confined to a master
> port, and getAddrRanges to slave ports. More of these specilisations
> are to come in later patches.
> 
> The getPort function is not getMasterPort and getSlavePort, and
> returns a port reference rather than a pointer as NULL would never be
> a valid return value. The default implementation of these two
> functions is placed in MemObject, and calls fatal.
> 
> The one drawback with this specific patch is that it requires some
> code duplication, e.g. QueuedPort becomes QueuedMasterPort and
> QueuedSlavePort, and BusPort becomes BusMasterPort and BusSlavePort
> (avoiding multiple inheritance). With the later introduction of the
> port interfaces, moving the functionality outside the port itself, a
> lot of the duplicated code will disappear again.
> 
> 
> Diffs
> -----
> 
>   src/arch/arm/table_walker.hh 31648cc2e0d9 
>   src/arch/arm/table_walker.cc 31648cc2e0d9 
>   src/arch/arm/tlb.hh 31648cc2e0d9 
>   src/arch/arm/tlb.cc 31648cc2e0d9 
>   src/arch/x86/interrupts.hh 31648cc2e0d9 
>   src/arch/x86/interrupts.cc 31648cc2e0d9 
>   src/arch/x86/pagetable_walker.hh 31648cc2e0d9 
>   src/arch/x86/pagetable_walker.cc 31648cc2e0d9 
>   src/arch/x86/tlb.hh 31648cc2e0d9 
>   src/arch/x86/tlb.cc 31648cc2e0d9 
>   src/cpu/base.hh 31648cc2e0d9 
>   src/cpu/base.cc 31648cc2e0d9 
>   src/cpu/checker/cpu.hh 31648cc2e0d9 
>   src/cpu/inorder/resources/cache_unit.hh 31648cc2e0d9 
>   src/cpu/o3/cpu.hh 31648cc2e0d9 
>   src/cpu/o3/lsq_unit.hh 31648cc2e0d9 
>   src/cpu/o3/lsq_unit_impl.hh 31648cc2e0d9 
>   src/cpu/ozone/OzoneCPU.py 31648cc2e0d9 
>   src/cpu/ozone/cpu.hh 31648cc2e0d9 
>   src/cpu/ozone/cpu_impl.hh 31648cc2e0d9 
>   src/cpu/ozone/front_end.hh 31648cc2e0d9 
>   src/cpu/ozone/front_end_impl.hh 31648cc2e0d9 
>   src/cpu/ozone/lw_lsq.hh 31648cc2e0d9 
>   src/cpu/ozone/lw_lsq_impl.hh 31648cc2e0d9 
>   src/cpu/simple/atomic.hh 31648cc2e0d9 
>   src/cpu/simple/atomic.cc 31648cc2e0d9 
>   src/cpu/testers/directedtest/RubyDirectedTester.hh 31648cc2e0d9 
>   src/cpu/testers/directedtest/RubyDirectedTester.cc 31648cc2e0d9 
>   src/cpu/testers/memtest/memtest.hh 31648cc2e0d9 
>   src/cpu/testers/memtest/memtest.cc 31648cc2e0d9 
>   src/cpu/testers/networktest/networktest.hh 31648cc2e0d9 
>   src/cpu/testers/networktest/networktest.cc 31648cc2e0d9 
>   src/cpu/testers/rubytest/RubyTester.hh 31648cc2e0d9 
>   src/cpu/testers/rubytest/RubyTester.cc 31648cc2e0d9 
>   src/dev/copy_engine.hh 31648cc2e0d9 
>   src/dev/copy_engine.cc 31648cc2e0d9 
>   src/dev/io_device.hh 31648cc2e0d9 
>   src/dev/io_device.cc 31648cc2e0d9 
>   src/dev/pcidev.hh 31648cc2e0d9 
>   src/dev/x86/i82094aa.hh 31648cc2e0d9 
>   src/dev/x86/i82094aa.cc 31648cc2e0d9 
>   src/dev/x86/intdev.hh 31648cc2e0d9 
>   src/dev/x86/intdev.cc 31648cc2e0d9 
>   src/kern/tru64/tru64_events.cc 31648cc2e0d9 
>   src/mem/bridge.hh 31648cc2e0d9 
>   src/mem/bridge.cc 31648cc2e0d9 
>   src/mem/bus.hh 31648cc2e0d9 
>   src/mem/bus.cc 31648cc2e0d9 
>   src/mem/cache/base.hh 31648cc2e0d9 
>   src/mem/cache/base.cc 31648cc2e0d9 
>   src/mem/cache/builder.cc 31648cc2e0d9 
>   src/mem/cache/cache.hh 31648cc2e0d9 
>   src/mem/cache/cache_impl.hh 31648cc2e0d9 
>   src/mem/fs_translating_port_proxy.hh 31648cc2e0d9 
>   src/mem/fs_translating_port_proxy.cc 31648cc2e0d9 
>   src/mem/mem_object.hh 31648cc2e0d9 
>   src/mem/mem_object.cc 31648cc2e0d9 
>   src/mem/mport.hh 31648cc2e0d9 
>   src/mem/mport.cc 31648cc2e0d9 
>   src/mem/physical.hh 31648cc2e0d9 
>   src/mem/physical.cc 31648cc2e0d9 
>   src/mem/port.hh 31648cc2e0d9 
>   src/mem/port.cc 31648cc2e0d9 
>   src/mem/port_proxy.hh 31648cc2e0d9 
>   src/mem/qport.hh 31648cc2e0d9 
>   src/mem/ruby/system/RubyPort.hh 31648cc2e0d9 
>   src/mem/ruby/system/RubyPort.cc 31648cc2e0d9 
>   src/mem/se_translating_port_proxy.hh 31648cc2e0d9 
>   src/mem/se_translating_port_proxy.cc 31648cc2e0d9 
>   src/mem/tport.hh 31648cc2e0d9 
>   src/mem/tport.cc 31648cc2e0d9 
>   src/python/swig/pyobject.cc 31648cc2e0d9 
>   src/sim/system.hh 31648cc2e0d9 
>   src/sim/system.cc 31648cc2e0d9 
>   src/sim/tlb.hh 31648cc2e0d9 
> 
> Diff: http://reviews.gem5.org/r/1091/diff/
> 
> 
> Testing
> -------
> 
> util/regress all passing (disregarding t1000 and eio)
> 
> 
> Thanks,
> 
> Andreas Hansson
> 
>

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to