From microcode, there is a cycle_cnt register which returns a 64 bit value of the cycle count register. It's latency is about that of an SDRAM instruction. It has no interrupt or signals associated with is, so your left with polling this register or reading it on a per-packet bases
You could use an SA timer configured to fire off an IRQ at countdown, where the IRQ handler count send an inter_thread signal to one of the microengines. You could swap out on the signal, in which case your microcode sleeps in that thread until the timer is fired off, or you could use the br_signal instruction that causes the microcode for that thead to branch when the inter thread signal is fired off by the SA, allowing you to perform other processing until the signal arrvives. Hope this helps, barry.sprajc@intel.com -----Original Message----- From: Austen McDonald [mailto:austen@cc.gatech.edu] Sent: Tuesday, June 05, 2001 11:47 AM To: ixp1200@CS.Princeton.EDU Subject: [ixp1200] Timer from microengines... Im looking for a timer for use inside microcode (for network protocol timeout). I know there is the timer from the arm but Ive heard that the IX bus has some kind of timer that I might be able to tap into? Does anyone know about this? Must I use the SA timer if I want to wait a certain period of time? Austen McDonald austen@cc.gatech.edu God does not care about our mathematical difficulties. He integrates empirically. -- Albert Einstein
participants (1)
-
Sprajc, Barry