This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

What and where is PFC (program fetch counter)?

Anonymous
Anonymous


Hi,

 

I would like to ask a question on PFC(program fetch counter).

 

On page 132 of spru732j, TMS320C64x-C64x+ DSP CPU and Instruction Set Reference Guide, as well as other numerous places in the same document:

 

 

Where is it? Is it a register in the CPU? Is did a thorough search in the document but didn’t find its description, or whether it is a register or not. In fact, the Control Register File contain only PCE1(E1 Phase Program Counter), but not such PFC register.

 

And what is the relationship between PFC and PCE1?

 

Could anyone provide detailed answers on these?

 

 

 

Zheng

  • You ask these questions about the PFC register ...

    Zheng Zhao said:
    Where is it? Is it a register in the CPU? Is did a thorough search in the document but didn’t find its description, or whether it is a register or not. In fact, the Control Register File contain only PCE1(E1 Phase Program Counter), but not such PFC register.
     
    And what is the relationship between PFC and PCE1?

    The register PFC is not exposed to the user.  Not even for read only access.  It holds the address of the instruction currently in some phase of the Program Fetch stage of the pipeline.  I'm not sure exactly which phase.  If I had to guess, I would say the Program Address Send (PS) phase.  The register PCE1 is exposed, though only for read access.  It holds the address of the instruction currently in the E1 phase of the Execute stage of the pipeline.  All of these stages and phases of the pipeline are detailed in section 4.1.4 of SPRU732J.

    Thanks and regards,

    -George

     

  • Anonymous
    0 Anonymous in reply to George Mock

    George,

    Thanks for the explanation on PFC.

    George said:

    The register PCE1 is exposed, though only for read access.

     

     

    SPRU732J TMS320C64x-C64x+ DSP CPU and Instruction Set Reference Guide (Rev. J) also said it is only readable. However, I was able to change its value arbitrarily in CCS's register view window, and the program will indeed goes to the changed address (seen from the green arrow indicator at the left) immediately.

    So how could this happen? Does CCS or the emulator has some special permission to write new value to PCE1?

     

     

    Zheng