Hi Kleovoulos,

Thank you for your reply. I was able to identify NEON instruction data-widths 
using the same logic that you described. Describing it below for future 
reference -


VADD instruction is as described below:

VADD{cond}.datatype {Qd}, Qn, Qm ----> where datatype is I8, I16, I32, or I64.



>From "src/arch/arm/isa/insts/neon.isa", I find that this instruction is 
>implemented as NVaddD.

And this can be found in  "./build/ARM/arch/arm/generated/exec-ns.cc.inc" as 
show below:


"

    template
    Fault NVaddD<uint8_t>::execute(
            CPU_EXEC_CONTEXT *, Trace::InstRecord *) const;

    template
    Fault NVaddD<uint16_t>::execute(
            CPU_EXEC_CONTEXT *, Trace::InstRecord *) const;

    template
    Fault NVaddD<uint32_t>::execute(
            CPU_EXEC_CONTEXT *, Trace::InstRecord *) const;

    template
    Fault NVaddD<uint64_t>::execute(
            CPU_EXEC_CONTEXT *, Trace::InstRecord *) const;
"

>From above, the possible data-widths are 8-bit to 64-bit.
I dynamically identify the width for the executing instruction by simply 
reading the size of "Element" in the below code:

"
    Fault NVaddD<Element>::execute(CPU_EXEC_CONTEXT *xc,
            Trace::InstRecord *traceData) const
    {
.
.
.
DPRINTF(Arm,"%d\n",sizeof(Element));
.
.
}
"

Thank you for your inputs!

- Gokul



________________________________
From: gem5-users <[email protected]> on behalf of 
[email protected] <[email protected]>
Sent: Monday, June 12, 2017 11:00 AM
To: [email protected]
Subject: gem5-users Digest, Vol 131, Issue 10

Send gem5-users mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of gem5-users digest..."


Today's Topics:

   1. Invalid transition DMA controller in NoC (SHARJEEL KHILJI)
   2. Re: Invalid transition DMA controller in NoC (Nikos Nikoleris)
   3. Re: Datatype (data-width) of NEON operations for ARM in   Gem5
      (Kleovoulos Kalaitzidis)
   4. Re: BBV file not generated(or found) (Oscar Rosell)
   5. Re: SystemC and GEM5 SE Mode (Qureshi Yasir Mahmood)
   6. Memory Mapping SE - Virtual to Physical Address
      (Qureshi Yasir Mahmood)


----------------------------------------------------------------------

Message: 1
Date: Mon, 12 Jun 2017 11:56:51 +0500
From: SHARJEEL KHILJI <[email protected]>
To: gem5 users mailing list <[email protected]>
Subject: [gem5-users] Invalid transition DMA controller in NoC
Message-ID:
        <caemrrtz4m06apd5jfimhzam3xlpdikxn5ngesf1ham06jf6...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hi,

I am running the following system,

scons build/ARM/gem5.debug PROTOCOL=MESI_Two_Level

./build/ARM/gem5.debug --debug-flags ProtocolTrace  configs/example/fs.py
--l1d_size=32kB --l1i_size=32kB --num-l2caches 4  --l2_size=1MB
--cacheline_size=64 --machine-type=VExpress_GEM5_V1 --kernel
/home/khilji/gem5/m5/system/binaries/vmlinux-aarch32 --disk-image
/home/khilji/gem5/m5/system/disks/arm-ubuntu-natty-headless.img
--dtb-filename /home/khilji/gem5/m5/system/dtb/armv7_gem5_v1_4cpu.dtb
--num-cpus=4  --ruby --num-dirs=4 --network=garnet2.0 --topology Mesh_XY
--mesh-rows 2 --mem-size 1GB  --cpu-clock 1GHz

While running this in debug, and booting the linux I get the following
invalid DMA transition.
When DMA controller receives the read request from the DMA sequencer it
moves to the busy read state
but when input response (Data) is received from (Directory/or PUTX L1) the
DMA has already returned to
ready state before Data event occurs. There are three DMA controllers
(equal to dma ports) in the system as specified in config.ini.
Is this because of the fact that one of the controllers issues the read
request to directory and all of the controllers receive the response?
and then those who have not issued the request receive the response while
in ready state which results in exception.
Following is the protocol trace

   646885666000   2    L1Cache             Load
M>M                        [0xbda99a00, line 0xbda99a00]
   646885667000   2        Seq               Begin
>                            [0x80359d7c, line 0x80359d40] IFETCH
   646885668000   2        Seq                Done
>                            [0x80359d7c, line 0x80359d40] 1 cycles
   646885668000   2    L1Cache              Ifetch
S>S                       [0x80359d40, line 0x80359d40]
   646885670500   1        DMA         ReadRequest
READY>BUSY_RD                 [0xbf040000, line 0xbf040000]
   646885676000   0  Directory            DMA_READ   M>M_DRD
[0xbf040000, line 0xbf040000]
   646885681500   0    L2Cache             MEM_Inv    MT>MT_I
[0xbf040000, line 0xbf040000]
   646885681500   0    L2Cache             MEM_Inv    MT_I>MT_I
[0xbf040000, line 0xbf040000]
   646885685500   2    L1Cache                 Inv
M>I                         [0xbf040000, line 0xbf040000]
   646885694000   0    L2Cache             WB_Data    MT_I>M_I
[0xbf040000, line 0xbf040000]
   646885700000   0  Directory                Data
M_DRD>M_DRDI          [0xbf040000, line 0xbf040000]

panic: Invalid transition
system.ruby.dma_cntrl0 time: 1293771411 addr: 3204710400 event: Data state:
READY
Memory Usage: 1584496 KBytes
Program aborted at tick 646885705500

Any suggestions?

best regards,
Muhammad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://m5sim.org/cgi-bin/mailman/private/gem5-users/attachments/20170612/3bc91ba4/attachment-0001.html>

------------------------------

Message: 2
Date: Mon, 12 Jun 2017 08:10:23 +0000
From: Nikos Nikoleris <[email protected]>
To: gem5 users mailing list <[email protected]>
Subject: Re: [gem5-users] Invalid transition DMA controller in NoC
Message-ID:
        
<am5pr0802mb252978fbb950936927f45098f7...@am5pr0802mb2529.eurprd08.prod.outlook.com>

Content-Type: text/plain; charset="utf-8"

Hi Muhammad,


If I remember correctly, MESI_Two_Level lacks support for multiple DMA 
controllers. The request message does not store the source of the packet and 
the response doesn't reach the right DMA controller. If you have a look at 
MOESI_CMP_directory, the DMA controller (MOESI_CMP_directory-dma.sm) encodes 
the source node in the Requestor and RequestorMachine fields which are then 
used to route the response. It shouldn't be too hard to add something similar 
for the MESI_Two_Level protocol.


Nikos

________________________________
From: gem5-users <[email protected]> on behalf of SHARJEEL KHILJI 
<[email protected]>
Sent: 12 June 2017 07:56:51
To: gem5 users mailing list
Subject: [gem5-users] Invalid transition DMA controller in NoC

Hi,

I am running the following system,

scons build/ARM/gem5.debug PROTOCOL=MESI_Two_Level

./build/ARM/gem5.debug --debug-flags ProtocolTrace  configs/example/fs.py  
--l1d_size=32kB --l1i_size=32kB --num-l2caches 4  --l2_size=1MB  
--cacheline_size=64 --machine-type=VExpress_GEM5_V1 --kernel 
/home/khilji/gem5/m5/system/binaries/vmlinux-aarch32 --disk-image 
/home/khilji/gem5/m5/system/disks/arm-ubuntu-natty-headless.img --dtb-filename 
/home/khilji/gem5/m5/system/dtb/armv7_gem5_v1_4cpu.dtb --num-cpus=4  --ruby 
--num-dirs=4 --network=garnet2.0 --topology Mesh_XY --mesh-rows 2 --mem-size 
1GB  --cpu-clock 1GHz

While running this in debug, and booting the linux I get the following invalid 
DMA transition.
When DMA controller receives the read request from the DMA sequencer it moves 
to the busy read state
but when input response (Data) is received from (Directory/or PUTX L1) the DMA 
has already returned to
ready state before Data event occurs. There are three DMA controllers (equal to 
dma ports) in the system as specified in config.ini.
Is this because of the fact that one of the controllers issues the read request 
to directory and all of the controllers receive the response?
and then those who have not issued the request receive the response while in 
ready state which results in exception.
Following is the protocol trace

   646885666000   2    L1Cache             Load           M>M                   
     [0xbda99a00, line 0xbda99a00]
   646885667000   2        Seq               Begin           >                  
          [0x80359d7c, line 0x80359d40] IFETCH
   646885668000   2        Seq                Done           >                  
          [0x80359d7c, line 0x80359d40] 1 cycles
   646885668000   2    L1Cache              Ifetch         S>S                  
     [0x80359d40, line 0x80359d40]
   646885670500   1        DMA         ReadRequest    READY>BUSY_RD             
    [0xbf040000, line 0xbf040000]
   646885676000   0  Directory            DMA_READ   M>M_DRD             
[0xbf040000, line 0xbf040000]
   646885681500   0    L2Cache             MEM_Inv    MT>MT_I            
[0xbf040000, line 0xbf040000]
   646885681500   0    L2Cache             MEM_Inv    MT_I>MT_I           
[0xbf040000, line 0xbf040000]
   646885685500   2    L1Cache                 Inv         M>I                  
       [0xbf040000, line 0xbf040000]
   646885694000   0    L2Cache             WB_Data    MT_I>M_I             
[0xbf040000, line 0xbf040000]
   646885700000   0  Directory                Data          M_DRD>M_DRDI        
  [0xbf040000, line 0xbf040000]

panic: Invalid transition
system.ruby.dma_cntrl0 time: 1293771411 addr: 3204710400 event: Data state: 
READY
Memory Usage: 1584496 KBytes
Program aborted at tick 646885705500

Any suggestions?

best regards,
Muhammad


IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://m5sim.org/cgi-bin/mailman/private/gem5-users/attachments/20170612/b7301a30/attachment-0001.html>

------------------------------

Message: 3
Date: Mon, 12 Jun 2017 10:27:47 +0200 (CEST)
From: Kleovoulos Kalaitzidis <[email protected]>
To: gem5 users mailing list <[email protected]>
Subject: Re: [gem5-users] Datatype (data-width) of NEON operations for
        ARM in  Gem5
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

Hello,
I could suggest a way that I have been using for checking access width of load 
instructions but I am not sure it could fit for Neon instructions.
So, normally the produced/built file in the generated folder "exec-ns.cc.inc" 
contains all the information in detail for any instruction. But you have to
find the macro-representation of the instruction by the decoder files in the 
../src/arch/arm/isa and match the instruction name with the macro presented in
the generated file. And following the decoder you can find out how the 
instruction is decoded depending on the bit representation, and you can use the 
same pattern of the decoder
to identify an instruction beyond strcompare. So, for a given instruction you 
can find its macro in the decoder, grep it in the generated files to see its 
actual implementation and
sizes etc.

I hope it helps.

--
Kleovoulos Kalaitzidis
Doctorant - Équipe PACAP

Centre de recherche INRIA Rennes - Bretagne Atlantique
Bâtiment 12E, Bureau E321, Campus de Beaulieu,
35042 Rennes Cedex, France

----- Original Message -----

> From: "Gokul Subramanian Ravi" <[email protected]>
> To: [email protected]
> Sent: Friday, June 9, 2017 9:17:35 PM
> Subject: [gem5-users] Datatype (data-width) of NEON operations for ARM in
> Gem5

> Hello all,

> I'm trying to optimize execution for ARM NEON instructions via Gem5 and for
> that I need to be able to identify the data-width of the executing NEON
> operations.

> From the ARM site, the instructions are as follows:

> VADD{cond}.datatype {Qd}, Qn, Qm ----> where datatype is I8, I16, I32, or
> I64.

> I'm identifying different instructions by performing "
> inst->staticInst->disassemble(..)" and then I do some string comparisons to
> figure out instructions I'm interested in. But for NEON instructions, the
> disassemble() doesn't tell me the "datatype".

> Can someone provide pointers as to how I can identify the datatype? I'm
> guessing I can get something from src/arch/arm/* but not sure what I should
> be looking at. Thank you!

> Best,
> Gokul Subramanian Ravi ,
> Graduate Student,
> ECE Dept.,
> University of Wisconsin-Madison

> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
gem5-users Info Page - m5 
sim<http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users>
m5sim.org
Discussion for users of the gem5 simulator. To see the collection of prior 
postings to the list, visit the gem5-users Archives. (The current archive ...



-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://m5sim.org/cgi-bin/mailman/private/gem5-users/attachments/20170612/71ba3397/attachment-0001.html>

------------------------------

Message: 4
Date: Mon, 12 Jun 2017 12:01:12 +0200
From: Oscar Rosell <[email protected]>
To: gem5 users mailing list <[email protected]>, Muzamil Rafique
        <[email protected]>
Subject: Re: [gem5-users] BBV file not generated(or found)
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"; Format="flowed"

Hi,

I don't see any evident problem. Have you tried to generate any BBV
file? For example:

./build/ARM/gem5.opt configs/example/se.py -c
./tests/test-progs/hello/bin/arm/linux/hello  --simpoint-profile
--simpoint-interval 10000 --fastmem

should work.

Regards,

    Oscar

On 09/06/17 19:07, Muzamil Rafique wrote:
> Hi All,
>
> I am trying to generate BBV file for SimPoint creation using the
> following command:
>
> build/X86/gem5.opt configs/example/spec06_config.py --benchmark bzip2
> --benchmark_stdout=m5out/bzip2.out --benchmark_stderr=m5out/bzip2.err
> -I 100000000 --simpoint-profile --simpoint-interval 10000 --fastmem
>
> But at the end of simulation, I am not getting the BBV
> file(simpoint.bb.gz), neither in gem5 run directory nor in output
> directory.
>
> Can anyone help me out with this issue? Am i doing something wrong?
>
> Muzamil
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
gem5-users Info Page - m5 
sim<http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users>
m5sim.org
Discussion for users of the gem5 simulator. To see the collection of prior 
postings to the list, visit the gem5-users Archives. (The current archive ...




-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://m5sim.org/cgi-bin/mailman/private/gem5-users/attachments/20170612/a58acf29/attachment-0001.html>

------------------------------

Message: 5
Date: Mon, 12 Jun 2017 12:44:49 +0000
From: Qureshi Yasir Mahmood <[email protected]>
To: gem5 users mailing list <[email protected]>
Subject: Re: [gem5-users] SystemC and GEM5 SE Mode
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"

Hi Matthias,

I think I have a clue to the problem in the TLM and se.py simulation  that when 
I configure se.py to have TLM memory using configuration parameter 
--tlm-memory, and also have some physical memory like SimpleMemory using 
--mem-type=SimpleMemory, it only creates the TLM memory port and does not 
instantiate the Simple memory. I manually edited the config.ini file to include 
  both SimpleMemory and the tlm-memory and the helloworld program worked.

So I think there is a bug in se.py that when tlm-memory is used, it doesn't 
create any other memory.

Regards
Yasir

-----Original Message-----
From: gem5-users [mailto:[email protected]] On Behalf Of Matthias Jung
Sent: 09 June 2017 00:21
To: gem5 users mailing list <[email protected]>
Subject: Re: [gem5-users] SystemC and GEM5 SE Mode

Hi Yasir,

I just wanted to say that se.py works without problems in the cxx config.
And I confirmed that there is an issue with the TLM setup and se.py.

Regards
Matthias

> Am 08.06.2017 um 14:43 schrieb Qureshi Yasir Mahmood <[email protected]>:
>
> Hi Matthias,
>
> Thank you for the reply. When you say " Using util/cxx_config with se.py or 
> fs.py with util/tlm works fine",  do you mean I should compile the 
> build/examples/slave_port/gem5.sc using cxx_config ?
>
> Regards
> Yasir
>
>
> -----Original Message-----
> From: gem5-users [mailto:[email protected]] On Behalf Of Matthias 
> Jung
> Sent: 07 June 2017 23:50
> To: gem5 users mailing list <[email protected]>
> Subject: Re: [gem5-users] SystemC and GEM5 SE Mode
>
> Hi Yasir,
>
> I just had a short look, indeed there is an issue.
> Using util/cxx_config with se.py or fs.py with util/tlm works fine.
> We will have a deeper look into it.
>
> Regards
> Matthias
>
>
>> Am 07.06.2017 um 18:22 schrieb Qureshi Yasir Mahmood <[email protected]>:
>>
>> Hello All,
>>
>> I am trying to setup a GEM5-SystemC co-simulation with gem5 running in SE 
>> mode. I have followed the tutorial in /util/tlm/README file and I can run 
>> the example provided. But when I try to run GEM5 in SE with TLM enabled, I 
>> get the following error,
>>
>> First to build the config file, I run
>>
>> ../../build/ARM/gem5.opt ../../configs/example/se.py  
>> --tlm-memory=transactor  --mem-type=SimpleMemory --mem-size=512MB 
>> --mem-channels=1 -c ../../../helloworld/hevc
>>
>> And then to run
>>
>> bash-4.2$ build/examples/slave_port/gem5.sc m5out/config.ini
>>
>>        SystemC 2.3.1-Accellera --- May 31 2017 13:14:37
>>        Copyright (c) 1996-2014 by all Contributors,
>>       ALL RIGHTS RESERVED
>> ============================================================
>> EventQueue Dump  (cycle 0)
>> ------------------------------------------------------------
>> <No Events>
>> ============================================================
>> 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000
>> 0 s (=) : sc_main Start of Simulation
>> warn: ClockedObject: More than one power state change request encountered 
>> within the same simulation tick
>> fatal: Out of memory, please increase size of physical memory.
>> Memory Usage: 597116 Kbytes
>>
>>
>> Can anyone please let me know, if I need to have a separate physical memory 
>> for this and hence modify the se.py file or just control it through the 
>> configuration options ?
>>
>> Regards
>> Yasir
>> _______________________________________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

------------------------------

Message: 6
Date: Mon, 12 Jun 2017 13:06:26 +0000
From: Qureshi Yasir Mahmood <[email protected]>
To: gem5 users mailing list <[email protected]>
Subject: [gem5-users] Memory Mapping SE - Virtual to Physical Address
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"

Hi All,

I have a following system in GEM5 SE mode, with ARM , simple physical memory 
and an external tlm-memory.

I know the address range of both of the memories as defined in config.ini file. 
Now I want to explicitly access the PHY-MEM and also TLM memory, but I am 
unable to do that due to virtual address in the SE mode. Is there a way that I 
can access both the memories explicitly in C ?

# +----------------+       +-------+        ^
# | System Port |       |  CPU  |       |
# +---------+------+     +---+---+       |
#                   |                         |               | gem5 World
#                   |          +-------+               |
#                   |          |                              |
# +---------v------v--------------+    |
# |                  Membus                 |    |
# +-----+---------------+--------+     |
#            |                         |                      |
#  +----v-------+           |                      |
# |PHY_MEM|            |                      |
#  +------------+            |                      |
#                                       |                      v
#                                       |                      External Port
#                                       |                      ^
#                                       |                      |
#                               +---v---+               | TLM World
#                               |  TLM  |               |
#                               +--------+              v

Regards
Yasir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://m5sim.org/cgi-bin/mailman/private/gem5-users/attachments/20170612/e1df1393/attachment-0001.html>

------------------------------

Subject: Digest Footer

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

------------------------------

End of gem5-users Digest, Vol 131, Issue 10
*******************************************
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to