[PTLsim-devel] Branch and store register files

Matt T. Yourst
Mon Mar 5 18:02:25 EST 2007


On Monday 05 March 2007 12:23, Timothy Jones wrote:
> Hi everyone,
>
> Could somebody tell me what the point of the branch and store register
> files is? When I'm running my simulations, not a single instruction gets
> their source operands from them. Could somebody tell me why they are
> there and what sort of data it is that they contain since I can't quite
> see any reason to have them if no instruction is reading them. I'm using
> the latest PTLsim and running a billion instructions from each benchmark
> so I'm fairly confident with the results I'm getting!
>

The only reason PTLsim has a separate "register file" for stores and branches 
is for consistency, so there's somewhere to put the result (in the case of 
branch uops, this result is the target RIP) and/or track dependencies.

Loads and stores track memory dependencies on prior stores using the physical 
register assigned to the earlier store, even though that physical register 
serves no other purpose. Therefore, the dependency tracking mechanism assumes 
that every uop has a physical register, regardless of whether or not that 
register's data is actually consumed by another uop.

You'll notice that the store "register file" is the same size as the store 
queue, and the branch register file size is equal to the maximum number of 
branches in flight. Therefore, these pseudo register files are never a 
bottleneck, so they don't affect performance.

- Matt Yourst

-------------------------------------------------------
 Matt T. Yourst               yourst at cs.binghamton.edu
 Binghamton University, Department of Computer Science
-------------------------------------------------------


More information about the PTLsim-devel mailing list