EP0096575A2

Concurrent processing elements for using dependency free code.

Abstract

A mechanism for a data processor that is adapted to receive strings of object code, form them into higher level tasks and to determine sequences of such tasks which are logically independent so that they may be concurrently executed by a plurality of processing elements.

EP0096575A2, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Projected expiry passed 7 June 2003, 23.3 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

10 claims: 2 independent, 8 dependent

  1. 1
    In a data processing system for executing imperative code including operators and memory addresses, the combination comprising:means for forming strings of logically independent and subsequently logically dependent operators into logically independent queues;storage means for storing said logically independent queues;and a plurality of processing means coupled to said storage means for individually receiving different ones of said queues for concurrent execution.
  2. 2
    The combination according to Claim 1 wherein said forming means includes means for receiving said imperative code in sequential form, determining when an operator does not require a result of a previous operation thus indicating a logical independency and forming strings of said logically independent and subsequently logically dependent operators into logically independent queues.
  3. 3
    The combination according to Claim 2 wherein said data processing system includes a main memory, said combination further comprising:main memory addressing means to receive said memory addresses and fetch data from said main memory.
  4. 4
    The combination according to Claim 3 wherein each of said processing means includes a local storage, the combination further comprising:local storage addressing means coupled to said main memory to transmit local memory addresses to said main memory so that said main memory can transmit said fetched data to said local memory.
  5. 5
    The combination according to Claim 4 wherein said receiving means is adapted to attach said local memory address to a corresponding string of operators making up a particular logically independent queue.
  6. 6
    k, 6. In a data processing system for receiving and executing sequential code including operators and memory addresses, said system including a plurality of processing means, the method comprising:receiving said sequential code;determining when an operator does not require the result o f a previous operation indicating a logical independency;forming strings of logically independent and subsequent logically dependent operators into logically independent queues;and transmitting different ones of said queues to different individual processing means for concurrent execution.
  7. 7
    The method according to Claim 6 wherein said data processing system includes a main memory, said method further comprising:receiving a main memory address and fetching data from said main memory.
  8. 8
    The method according to Claim 7 wherein each of said processing means includes a local storage, the method further comprising:transmitting local memory addresses to said main memory so that said main memory can transmit said fetched data to said local memories.
  9. 9
    The method according to Claim 8 further including:attaching said local memory addresses to a corresponding string of operators making up a particular logically independent queu
  10. 10
    The method according to Claim 9 wherein said data processing system includes a job queue, the method further including:transmitting said independent queues of operators and corresponding local memory addresses to said job queue for subsequent distribution to said individual processing means.