Instruction-Level Parallelism

Mark Smotherman
Last updated: April 2024

Summary: ILP dates backs to the 1940s, and various attempts have been made to exploit it over the years.


... under construction ...
... intro to be written ...

                 dependency    fn. unit   time to start
                  checking    assignment    execution
                 ----------   ----------  -------------

  superscalar     hardware     hardware     hardware
                 ...........
  EPIC            software  .  hardware     hardware
                             ............
  dynamic VLIW    software     software  .  hardware
                                          ............
  VLIW            software     software     software



    code generation
          |                 superscalar
          |`----------------------------------.
          |                                   |
  .-------|-----------------.         .-------|-----------------.
  |       v                 |         |       v                 |
  | dependency checking     |         | dependency checking     |
  |     O(n^2)              |         |       |                 |
  |       |                 |  EPIC   |       |                 |
  |       |`----------------------------------.                 |
  |       v                 |         |       v                 |
  | fn. unit assignment     |         | fn. unit assignment     |
  |       |                 | dynamic |       |                 |
  |       |                 |  VLIW   |       |                 |
  |       |`----------------------------------.                 |
  |       v                 |         |       v                 |
  | time to start execution |         | time to start execution |
  |       |                 |         |       |                 |
  |       `                 |  VLIW   |       |                 |
  |        `----------------------------------.                 |
  |                         |         |       |                 |
  `-------------------------'         `-------|-----------------'
      compiler scheduling                     |  hardware control
                                              |
                                              v
                                         hardware fn. units

See B. Rau and J. Fisher, "Instruction-Level Parallel Processing: History, Overview and Perspective," HP Tech Rept, 1992 (pdf).


A partial list of machines and designs exploiting ILP

1940s

1950s

1960s

1970s

1980s

1990s

2000s


Other Resources


Acknowledgements

My thanks to David Hemmendinger for pointing me to the Harvard Mark I and other early machines with overlaps among the function units.


[History page] [Mark's homepage] [CPSC homepage] [Clemson Univ. homepage]

mark@cs.clemson.edu