On 7/17/2013 7:44 AM, Arthur Perais wrote:
My understanding is that issueLat is the minimum number of cycles you have to wait before scheduling an instruction of the same type on the FU. Specifically, if opLat is 6 and issueLat is 1, you have a pipelined unit with a latency of 6 cycles but you have a throughput of 1 op/cycle once the pipe is full.

Thanks for your clarification. So even all resource like operands/FUs are available, the instruction still need to wait issueLat cycles before execution, correct?

The delay between dispatch and issue indeed depends on how soon the operands become ready wrt to contention (number of FUs, issue width). The scheduler schedules oldest instruction first without regard for the instruction type. Furthermore, there is not speculative scheduling, meaning that if you increase issueToExecute to more than one, you cannot schedule depending instructions back to back (correct me if I'm wrong).

Is there any structure like dispatch queue, issue queue defined in gem5?
From textbook, after renaming, instruction will wait in dispatch queue for operands. If operands become ready, it will go to issue queue waiting for execution. I'm not sure if gem5 will simulate the contention in issue queue.

Thanks again for any information.

Hope it helps.

Arthur.

Le 17/07/2013 03:03, Jianghao a écrit :
Take the following from config.ini file, my understanding is here we defined 2 function units, both of them can execute IntMult and IntDiv type of instructions, and opLat defines how many ticks need to execute that instruction. Please correct me if my understanding is wrong.

My confusion comes from the meaning of issueLat. Does it define the latence from dispatch to issue? From my understanding about O3, after instruction decoding/ renaming, if operands are ready, instruction can be issued for execution. So that delay from dispatch to issue should not be constant, which depends on the number of ready instructions and the available execution units. Can anybody give me some hints regarding gem5 implementation of the o3 scheduler part? Really appreciate for any help.


[system.cpu.fuPool.FUList1]
type=FUDesc
children=opList0 opList1
count=2
opList=system.cpu.fuPool.FUList1.opList0 system.cpu.fuPool.FUList1.opList1

[system.cpu.fuPool.FUList1.opList0]
type=OpDesc
issueLat=1
opClass=IntMult
opLat=3

[system.cpu.fuPool.FUList1.opList1]
type=OpDesc
issueLat=12
opClass=IntDiv
opLat=12


_______________________________________________
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

Reply via email to