[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