Mill Computing, Inc. Forums The Mill Architecture The Mill and an alternative to SIMD

Tagged: ,

  • Author
    Posts
  • jstopard
    Participant
    Post count: 8
    #4034 |

    The Mill is able to emulate several streams of execution (each with its own set of data) on the same procedure, but it pays for this by having to execute many instructions that would otherwise be unnecessary to execute. This approach isn’t wrong, it’s just one possible approach to parallelisation that, in this case, is a low energy approach. The Mill method is to provide a fixed schedule that the CPU is expected to execute as specified; this means that the compiler is tasked with specifying which functional units execute what operations at any point in the schedule (an approach associated with VLIW, historically).

    My QUESTION is as follows: why not simply emulate several streams of execution, directly (not at the thread level); and allow each stream to share from a pool of func. units? Instead of executing all paths within the for loop, just represent the loop as a graph in hardware, and then each stream can execute a single node from that graph.

    If I’m missing an obvious snag here, please let me know.

  • staff
    Keymaster
    Post count: 50

    The problems with allowing each stream to share from a pool of functional units are:
    1. How are the streams defined?
    2. By what, a compiler?
    3. How is a stream able to be tied to a particular functional unit for a particular time – this likely has a lot of cost to it.

You must be logged in to reply to this topic.