[ixp1200] How to Ensure Microcode Executes in the Correct Ord er?

Elsenbeck, Jim Jim.Elsenbeck at sciatl.com
Tue Feb 17 12:23:49 EST 2004


Since his question may have been an ixp1200 (and not ixp2xxx) he really just
wants to remove the defer[1].

jim

-----Original Message-----
From: David Mentre [mailto:Mentre at tcl.ite.mee.com] 
Sent: Tuesday, February 17, 2004 11:27 AM
To: 'IXP1200 Developer's List'
Subject: RE: [ixp1200] How to Ensure Microcode Executes in the Correct Ord
er?


Hello Jo,

> From: Jo Ueyama [mailto:ueyama at comp.lancs.ac.uk]
> Sent: Tuesday, February 17, 2004 5:06 PM

>    What instruction/switch do I need to add in order to ensure that 
> instructions in microcode are carried in the correct order? 
> In the code 
> below the alu instruction MUST be performed *after* scratch read 
> finishes AND *before* write scratch is carried out.
>     Any ideas?

You must use a signal to wait for the read to be done.

More specifically:

> #include "stdmac.uc"
> 
> .local zero gpr1 $xfer

.sig sig_scratch

> 
> immed32[gpr1, 0x1100AB88]
> immed32[zero, 0x0]
> 
> scratch[read, $xfer, zero, 0, 1], ctx_swap, defer[1]

;; replace above line with:
scratch[read, $xfer, zero, 0, 1], sig_done[sig_scratch]
ctx_arb[sig_scratch] ;; after that point, you'll be sure that read is done

> alu[$xfer, $xfer, +, gpr1]
> scratch[write, $xfer, zero, 0, 1], ctx_swap
> .endlocal

I've not compiled that code, so I may I made a typo or forgotten something.


Signals are used at length in Intel microcode. You should absolutely read
Intel manuals if you want to do serious IXP programming. Look at Intel
Programmers Reference, sect. 2.8, registers & signals.

Yours,
david
-- 
David Mentré <mentre at tcl.ite.mee.com> - Research engineer (Ph.D.)
Mitsubishi Electric ITE-TCL / European Telecommunication Research Lab
Phone: +33 2 23 45 58 29 / Fax: +33 2 23 45 58 59 
http://www.mitsubishi-electric-itce.fr
_______________________________________________
ixp1200 mailing list
ixp1200 at lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/ixp1200


     - - - - - - -  Appended by Scientific-Atlanta, Inc.  - - - - - - -  
This e-mail and any attachments may contain information which is confidential, proprietary, privileged or otherwise protected by law. The information is solely intended for the named addressee (or a person responsible for delivering it to the addressee). If you are not the intended recipient of this message, you are not authorized to read, print, retain, copy or disseminate this message or any part of it. If you have received this e-mail in error, please notify the sender immediately by return e-mail and delete it from your computer.



More information about the ixp1200 mailing list