4 ms·
What I am interested to know is who invented pipelining? I tried googling but without much success. Does anybody know?
by codedokode 2y ago
What I am interested to know is who invented pipelining? I tried googling but without much success. Does anybody know?
- paulsutter 2y agoProbably the first person to ask, 'how can I speed up this processor, maybe there's a way to do more than one processing step at a time for each instruction'
- zelos 2y agoPresumably by analogy to production lines in factories?
- sroussey 2y agoActually, it’s just obvious when you design the most basic ALU and the circuits for doing the carry.
- codedokode 2y agoPipelining requires inserting extra (costly) flip-flops and intuitively one might think that this would decrease the performance. It is not that easy.
- NotCamelCase 2y agoIs it really that much different than e.g. a cook preparing carrots while onions are being cooked? Nobody needed to invent this as far as my knowledge of history goes; so, maybe there really is nothing new under the sun :) Joking aside, of course, the ingenuity lies in finding a fitting solution to problem at hand, as well as knowing how to apply it.
- adrian_b 2y agoActually there are 2 ways to do more than one processing step at a time: parallel execution and pipelined (a.k.a. overlapped) execution. Both ways had been used for many centuries for the manufacturing of complex things, as ways to organize the work of multiple workers.
- taneq 2y agoSlightly offtopic but did we go to uni together and team up on a couple of demo compos and VJ some events? If so hey it's been ages and whats up? :D If not, cool name and stuff. :)
- PittleyDunkin 2y agoI'm guessing https://en.wikipedia.org/wiki/Donald_B._Gillies https://en.wikipedia.org/wiki/Donald_B._Gillies is a good bet for this claim.
- adrian_b 2y agoNope. 1957 in a transistorized computer is far too late for the origin of pipelining. Pipelining had already been used in computers with vacuum tubes a few years before and it had also been used already a decade earlier in computers with electromechanical relays, i.e. IBM SSEC, which had a 3-stage pipeline for the execution of its instructions (IBM SSEC had a Harvard architecture, with distinct kinds of memories for program and for data). Before 1959, pipelining was named "overlapped execution". The first use of the word "pipeline" was as a metaphor in the description of the IBM Stretch computer, in 1959. The word "pipeline" began to be used as a verb, with forms like "pipelining" and "pipelined" around 1965. The first paper where I have seen such a verbal use was from the US Army. Outside computing, pipelining as a method of accelerating iterative processes had been used for centuries in the progressive assembly lines, e.g. for cars, and before that for ships or engines. Pipelined execution and parallel execution are dual methods for accelerating an iterative process that transforms a stream of data. In the former the process is divided into subprocesses through which the stream of data passes in series, while in the latter the stream of data is divided into substreams that go in parallel through multiple instances of the process.
- cogman10 2y agoThe earliest "pipeline" example I can find is the portsmouth block mills [1] implemented by Marc Brunel[2]/Henry Maudslay[3] around 1802 [1] https://en.wikipedia.org/wiki/Portsmouth_Block_Mills https://en.wikipedia.org/wiki/Portsmouth_Block_Mills [2] https://en.wikipedia.org/wiki/Marc_Isambard_Brunel https://en.wikipedia.org/wiki/Marc_Isambard_Brunel [3] https://en.wikipedia.org/wiki/Henry_Maudslay https://en.wikipedia.org/wiki/Henry_Maudslay
- bjourne 2y agoBefore that you had bucket brigades.
- nxobject 2y agoEDIT: Adrian_B’s sibling comment has even earlier historical examples that illustrate how architecture ideas are as old as the hills. There are good historical hardware architecture textbooks: Peter Kogge’s “The Architecture of Pipelined Computers” (‘81) mentions that the UNIVAC 1 pipelined IO (from which dedicated IO units sprung out), the IBM 7094 similarly interleaved multiple-state memory access cycles between multiple memory units to increase throughput, and then the IBM STRETCH had a two-part fetch-execute without attempt to address hazards. So pipelining came out the ad-hoc application of the patterns of interleaving and hiving off functionality to dedicated units. In general, a lot of hardware architecture ideas cropped up very early in big iron, with microcoding even co-existing with them, without all of the extra full ideas being worked out (e.g. forwarding, hazard resolution of all types, etc.) There’s a whole fun universe of vintage hardware architecture textbooks that get through the essential concepts through historical big iron, if you’re willing to look beyond Hennessy and Patterson and Shen and Lipasti! I am thinking that the latter might have references to other historical textbooks on pipelining, though. “The Anatomy of a High-Performance Microprocessor”, a pedagogical deep-dive into the design of the AMD K6 uarch (up to detailed algorithms and HDL!), will have good references to historical textbooks too since these authors were trained before the crop of “modern” (microprocessor-era) textbooks.
- deleted 2y ago[deleted]
- AtlasBarfed 2y agoCome on, this isn't like the invention of calculus. Pipelining is just assembly line processing that anyone who managed or designed any factory would have implemented as soon as the transistor real estate became available.