Typing Assembly Programs with Explicit Forwarding

  • Authors:
  • Lennart Beringer

  • Affiliations:
  • -

  • Venue:
  • TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

We consider processor architectures where communication of values is achieved through operand queues instead of registers. Explicit forwarding tags in an instruction's code denote the source of its operands and the destination of its result. We give operational models for sequential and distributed execution, where no assumptions are made about the relative speed of functional units. We introduce type systems which ensure that programs use the forwarding mechanism in a coordinated way, ruling out various run time hazards. Deadlocks due to operand starvation, operand queue mismatches, non-determinism due to race conditions and deadlock due to the finite length of operand queues are eliminated. Types are based on the shape of operand queue configurations, abstracting from the value of an operand and from the order of items in operand queues. Extending ideas from the literature relating program fragments adjacent in the control flow graph, the type system is generalised to forwarding across basic blocks.