Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Very long instruction word
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == The concept of VLIW architecture, and the term ''VLIW'', were invented by [[Josh Fisher]] in his research group at [[Yale University]] in the early 1980s.<ref name="eli512">{{ cite conference | first = Joseph A. | last = Fisher | author-link= Josh Fisher | year = 1983 | title = Very Long Instruction Word architectures and the ELI-512 | conference= International Symposium on Computer Architecture | book-title = Proceedings of the 10th annual international symposium on Computer architecture | publisher = [[Association for Computing Machinery]] (ACM) | location = New York, NY, USA | pages = 140–150 | doi = 10.1145/800046.801649 | isbn = 0-89791-101-6 | doi-access= free }}</ref> His original development of [[trace scheduling]] as a compiling method for VLIW was developed when he was a graduate student at [[New York University]]. Before VLIW, the notion of prescheduling [[execution unit]]s and instruction-level parallelism in software was well established in the practice of developing [[Microcode#Horizontal microcode|horizontal microcode]]. Before Fisher the theoretical aspects of what would be later called VLIW were developed by the Soviet computer scientist [[Mikhail Kartsev]]<ref name="Kartsev">{{cite journal |last=Kartsev |first=Mikhail |date=1970 |title=Вопросы построения многопроцессорных вычислительных систем |trans-title=Building the multiprocessor computer systems |url= |language=Russian |journal= Radioelectronic Matters, Electronic Computing Technics |volume= |issue=5–6 |pages=3–19 |doi= |access-date=}}</ref> based on his Sixties work on military-oriented M-9 and M-10 computers. His ideas were later developed and published as a part of a textbook<ref>{{cite book |last1=Kartsev |first1=Mikhail |last2=Brik | first2=Vladimir |date=1981 |title=Вычислительные системы и синхронная арифметика |trans-title=Compuring systems and synchronous arythmetics |url= |url-access= |format= |language=Russian |location=Moscow |publisher=Radio i Svyaz |isbn= |via= |quote=}}</ref> two years before Fisher's seminal paper, but because of the [[Iron Curtain]] and because Kartsev's work was mostly military-related it remained largely unknown in the West. Fisher's innovations involved developing a compiler that could target horizontal microcode from programs written in an ordinary [[programming language]]. He realized that to get good performance and target a [[wide-issue]] machine, it would be necessary to find parallelism beyond that generally within a [[basic block]]. He also developed [[region scheduling]] methods to identify parallelism beyond basic blocks. Trace scheduling is such a method, and involves scheduling the most likely path of basic blocks first, inserting compensating code to deal with speculative motions, scheduling the second most likely trace, and so on, until the schedule is complete. Fisher's second innovation was the notion that the target CPU architecture should be designed to be a reasonable target for a compiler; that the compiler and the architecture for a VLIW processor must be codesigned. This was inspired partly by the difficulty Fisher observed at Yale of compiling for architectures like [[Floating Point Systems]]' FPS164, which had a [[complex instruction set computing]] (CISC) architecture that separated instruction initiation from the instructions that saved the result, needing very complex scheduling algorithms. Fisher developed a set of principles characterizing a proper VLIW design, such as self-draining pipelines, wide multi-port [[register file]]s, and [[memory architecture]]s. These principles made it easier for compilers to emit fast code. The first VLIW compiler was described in a Ph.D. thesis by John Ellis, supervised by Fisher. The compiler was named Bulldog, after Yale's mascot.<ref name="acmaward">{{ cite web | title = ACM 1985 Doctoral Dissertation Award | publisher = [[Association for Computing Machinery]] (ACM) | access-date = 2007-10-15 | url = http://awards.acm.org/citation.cfm?id=9267768&srt=year&year=1985&aw=146&ao=DOCDISRT | quote = For his dissertation ''Bulldog: A Compiler for VLIW Architecture''. | url-status = dead | archive-url = https://web.archive.org/web/20080402020350/http://awards.acm.org/citation.cfm?id=9267768&srt=year&year=1985&aw=146&ao=DOCDISRT | archive-date = 2008-04-02 }}</ref> Fisher left Yale in 1984 to found a startup company, [[Multiflow]], along with cofounders John O'Donnell and John Ruttenberg. Multiflow produced the TRACE series of VLIW [[minisupercomputer]]s, shipping their first machines in 1987. Multiflow's VLIW could issue 28 operations in parallel per instruction. The TRACE system was implemented in a mix of [[Integrated circuit#Generations|medium-scale integration (MSI), large-scale integration (LSI), and very large-scale integration (VLSI)]], packaged in cabinets, a technology obsoleted as it grew more cost-effective to integrate all of the components of a processor (excluding memory) on one chip. Multiflow was too early to catch the following wave, when chip architectures began to allow multiple-issue CPUs.{{clarify|date=January 2015|reason=does 'multiple-issue' mean pipelining?}} The major semiconductor companies recognized the value of Multiflow technology in this context, so the compiler and architecture were subsequently licensed to most of these firms.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Very long instruction word
(section)
Add topic