2 Replies Latest reply on Jun 24, 2011 11:16 AM by mziwisky



      Much of the SCC documentation refers to a new instruction, CL1INVMB.  This instruction is not recognized by the supplied `i386-unknown-linux-gnu-gcc` as a valid assembly instruction.  Further, I found no mention of the opcode for this instruction in the documentation.  However, the rckpc and rckmb drivers in SCC linux have CL1FLUSHMB #define'd as the byte sequence 0f 0a.  So then, I assume 0f 0a is the opcode for CL1INVMB.  Is this correct?

        • 1. Re: CL1INVMB == CL1FLUSHMB ?

          To be nit-picky, it's an invalidate not a flush. By flush we mean writing the value out to memory. Since L1 is typically write-back, not write-through, you can have stuff in L1 that is not in memory. And so if you want to read from the MPB (like getting a new message) we want to ensure that you get the new stuff, so we provide CL1INVMB. Invalidate for us means that ... well, the cache line is invalid and a read sends you to memory.


          Yes, 0f 0a is the opcode for CL1INVMB. There really isn't a CL1FLUSHMB ... although yes, sometimes people do call it a flush.

          • 2. Re: CL1INVMB == CL1FLUSHMB ?

            Alright, so CL1FLUSHMB is just  a poor name for the same function.  Thanks for the info, Ted.