View unanswered posts | View active topics It is currently Thu Apr 18, 2024 2:26 pm



Reply to topic  [ 3 posts ] 
 Register renaming 
Author Message

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2095
Location: Canada
I've an idea for register renaming that doesn't use a physical register file. It uses the reorder buffer + architectural register file instead.
Could this work is what I'm wondering ?

_________________
Robert Finch http://www.finitron.ca


Wed Mar 26, 2014 4:06 pm
Profile WWW

Joined: Tue Dec 11, 2012 8:03 am
Posts: 285
Location: California
Is the reorder buffer like an indirect register, like PIC's FSR, the INDF accesses the register pointed to by FSR? Or maybe instead like an index register, an offset in the register file?

_________________
http://WilsonMinesCo.com/ lots of 6502 resources


Wed Mar 26, 2014 6:51 pm
Profile WWW

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2095
Location: Canada
The reorder buffer and register renaming I refer to is one used by a superscalar processor.

Garth wrote:
like PIC's FSR, the INDF accesses the register pointed to by FSR


Register renaming is a bit like the FSR. Instead of a single FSR register though, there is a mapping table that maps the registers to other "physical registers". In the mapping table there are entries like "R1=R64" which tells the processor to use R64 whenever it sees R1 specified. There are more physical registers than there are logical (architectural) ones. Remapping the registers allows dependencies to be overcome.

What I think can be done is instead of using more physical registers, the mapping table can contain tags to destination results that are contained in the reorder buffer. So my mapping table contains entries like "R1=TAG1" rather than another physical register. The processor then gets the value for R1 from the reorder buffer entry containing the destination tag "TAG1". Eventually when the instruction is finished the map is reset so "R1=R1".

The reorder buffer itself is much larger than a register. It is a circular buffer that contains a number of entries. It's a little bit like a ring buffer of IR's that allows instructions to be queued up. Each entry contains an instruction, operands, the result of the instruction, and other bookkeeping fields.
While the processor is running, fetched instructions are stored in the tail positions of the reorder buffer. Instructions that are finished drop off the head of the buffer.

_________________
Robert Finch http://www.finitron.ca


Thu Mar 27, 2014 4:18 am
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 3 posts ] 

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software