1.04k likes | 1.25k Views
Advanced Computer Architectures – HB49 –. Vincenzo De Florio K.U.Leuven / ESAT / ELECTA. Advanced Computer Architectures. The domain of A.C.A. groups technological and design solutions that allow to provide, today, a better answer to the set of design goals.
E N D
Advanced Computer Architectures– HB49 – Vincenzo De Florio K.U.Leuven / ESAT / ELECTA
Advanced Computer Architectures • The domain of A.C.A. groups technological and design solutions that allow to provide, today, a better answerto the set of design goals • Better = joint & improved • Which design goals ?
Advanced Computer Architectures • Design goals of ACA include • Performance • Power consumption • Price • Size • Dependability • Standard compliancy • Safety • Scalability • Real-timeliness • Security • Application-specific tailoring • Embedding issues • Scheduling
Advanced Computer Architectures: aims & contents • Introducing the basic concepts behind ACA • Discussing the path that has brought to current technological and design solutions • Current computer design problems, techniques, solutions • Advanced solutions – domain specific, parallelisms, trends… • AI-specific ACA
Advanced Computer Architectures: Goals of the course • Give insight in the structure of modern computer systems • Understand current trends in the field of computer design • Teach how to consider the best match between an (AI) problem and a computer architecture • Enable to use architectural knowledge to optimise a service’s • Execution speed • Timeliness • Dependability • ...
Course books • Mandatory: • None. • References: • Computer Architectures: A Quantitive Approach(2nd edition)David A. Patterson, John L. HennessyMorgan Kaufmann Publishers, 1996, ISBN 1-55860-329-8 • Third edition is available, though currently the course focusses on 2nd • Advanced Computer Architectures: A design space approach Dezsö Sima, Terence Fountain, Péter Kacsuk, Addison-Wesley, 1997, ISBN 0-201-42291-3
Powerpoint slides Slides can be fetched from http://www.esat.kuleuven.ac.be/~deflorio/aca Slides are going to be updated during the course
Exercises and laboratory sessions • How to make use of a parallel architecture... • Under rethinking • ...to reach a higher performance / dependability / ... • ...using C and a message passing system... • on a cluster of workstations.
Exam • Oral with written preparation of 2 hours approx. • Closed book! • Possible questions, e.g. • Given a specific AI problem and a set of design goals, sketch a computer architecture that matches them. Justify your choice. • Given a sketch of a computer architecture, comment on the pros and cons of it from different viewpoints (performance, dependability, match with certain classes of AI problems…) • Reply to some questions • Solve some exercises • See example on web page
Course contents • Basic Concepts • Computer Design • Computer Architectures for AI • Computer Architectures in Practice
Basic Concepts • Computer history • Virtual machines
Basic Concepts • Computer history • Generation -1: The early days (…-1642) • Generation 0: Mechanical (1642-1945) • Generation 1: Vacuum tubes (1945-1955) • Generation 2: Discrete transistors (1955-1965) • Generation 3: Integrated circuits (1965-1980) • Generation 4: VLSI (1980-?) • Virtual machines
Basic Concepts • Computer history • Generation -1: The early days (…-1642) • Generation 0: Mechanical (1642-1945) • Generation 1: Vacuum tubes (1945-1955) • Generation 2: Discrete transistors (1955-1965) • Generation 3: Integrated circuits (1965-1980) • Generation 4: VLSI (1980-?) • Virtual machines
Generation -1: The early days(…-1642) • Calculation was a need since the early days for transactions and maintaining inventories • Early man counted by means of matching one set of objects with another set (stones and sheep). The operations of addition and subtraction were simply the operations of adding or subtracting groups of objects to the sack of counting stones
Generation -1: The early days(…-1642) = have the same cardinality = same number of elements = represent the same number!
Generation -1: The early days(…-1642) A B B Representation of number “2” Representation of number “1” Representation of number “3” Procedure: put the contents of sack A into sack B Result: sack B now contains … Call this manual procedure: “addition of integer numbers”
Generation -1: The early days(…-1642) • Key aspect: • manipulating shells, one can manipulate numbers… • and perform simple computations (additions, subtractions…) • Very simple, error-prone computations • Taking the time needed by objects manipulation (quite slow)
Generation -1: The early days(…-1642) • Early counting tables, named abaci, not only formalized this counting method but also introduced the concept of positional notation that we use today.
Generation -1: The early days(…-1642) 111 – 010 = 101 • Only much later, counting became an abstract process and numbers were represented by strings of written characters called digits. • New manual procedures could be applied on these strings • This allowed for computing on … papyrus. • A little more complex computations • Still manual, though a little faster to execute • Still error prone
Generation -1: The early days(…-1642) • In the twelfth century Muhammad ibn Musa Al'Khowarizmi developed the concept of a written process to be followed to achieve some goal, and published this in a book: hence the word algorithm
Generation -1: The early days(…-1642) • For many years, “The” problem was: • How to perform • A given algorithm • In a mechanical (non-manual) way, • Possibly faster than a man could do, • Possibly with less mistakes? • For even more years computing just meant “being able to perform arithmetical operations”
Generation -1: The early days(…-1642) • Codex Madrid - Leonardo Da Vinci (1500) • Drawing of a mechanical calculator...
Basic Concepts • Computer history • Generation -1: The early days (…-1642) • Generation 0: Mechanical (1642-1945) • Generation 1: Vacuum tubes (1945-1955) • Generation 2: Discrete transistors (1955-1965) • Generation 3: Integrated circuits (1965-1980) • Generation 4: VLSI (1980-?) • Virtual machines
Generation 0: Mechanical(1642-1945) • Blaise Pascal, son of a tax collector, created in 1642 an adding machine with automatic carries from one position to the next • Addition was achieved by the underlying gears turning as each digit was dialed in, the cumulative total being displayed in a window above the "keyboard”: mechanical, fixed (hardwired) algorithm
Generation 0: Mechanical(1642-1945) • An algorithm (actually, a single one!) was computable • Mechanically (with minimal intervention of the user) • Slightly faster than a man could do, • With less mistakes • Computing º “being able to perform arithmetical operations” • Numbers were represented onto quadrants (positional notation)
Generation 0: Mechanical(1642-1945) • Joseph-Marie Jacquard invented in 1801 an automatic loom using punched cards for the control of the patterns in the fabrics
Generation 0: Mechanical(1642-1945) • The machine performed according to a fixed scheme • The output was a function of a “program” written onto punched cards • Algorithms in software: First example of a general purpose machine (for looming ;-) • Mechanical, faster, less mistakes • Allowed to create very complex fabrics at low cost • Unfortunately, Jacquard’s genial invention was regarded as threatening jobs in the cloth trade…
Generation 0: Mechanical(1642-1945) • Charles Babbage recognized in 1822 that most navigation tables contained lots of errors leading to the loss of ships. • He applied to the British Government for assistance, and received the first government grant for computer research
Generation 0: Mechanical(1642-1945) 3,700 errors
Generation 0: Mechanical(1642-1945) • “I wish these calculations had been executed by steam.” • Babbage designs the Difference Engine to compute, quickly and reliably, the entries in navigation tables • An application-specific hard-coded machine
Generation 0: Mechanical(1642-1945) • Despite the grant from the British government, Babbage never actually built up its machine • From 1832 he devoted all his energies and all his money to a more ambitious machine… • Several years later, the Swedish Georg Scheutz, on the basis of Babbage’s publications, built a Difference Engine
Generation 0: Mechanical(1642-1945) • “The science of mathematics is becoming too large in its parts to be fully dominated by human intellect. The time is approaching when its entire executable part shall be appointed to the unfailing power of mechanism.”(Babbage’s letter to the king of Sweden, 1856)
Generation 0: Mechanical(1642-1945) • Scheutz machine: completed in 1853 • Gold medal, Paris Exposition, 1855 • Sold to the Dudley Observatory in 1856 • Not without consequences! • …director at Dudley got fired! • Two sources: • http://cdl.library.cornell.edu/cgi-bin/moa/moa-cgi?notisid=ABS1821-0002&byte=17574886 • Also available inhttp://www.esat.kuleuven.ac.be/~deflorio/aca/MaB*.gif
Generation 0: Mechanical(1642-1945) "The Swedish Calculating Machine [..] Our readers will, of course, understand that the machine is not self-acting. It does not give logarithms, for example, merely for saying, `Good machine, we want logarithms.’ It must be fed both with manual power and with calculation. The seed must be according with the harvest wanted; men do not grow figs or thistles, even in a calculating machine. But the return is greater than in most harvests; a very little calculation makes the machine do an enormous quantity of result by help of barrel-organ exercise.”“Calculating by Machinery”, The Manufacturer and Builder, Vol. 2, No. 8, pp. 225-227, Aug. 1870.
Generation 0: Mechanical(1642-1945) “This machine […] solves equations of 4th and even greater degree; operates in any numerical system […] The scientists, boosting their computation capabilities as a miracle of natural law, will be soon taken over by a simple machine that, under the nearly blind guidance of a common man and by means of custom movement, is going to dig the infinite outer space with a security and depth way greater than that of scientists. Any man able to formulate a problem and having at his disposal Mr. Scheutzs’ machine will have no need for Archimedes’, Newtons, or Laplaces […] This quasi-intelligent machine not only computes in a few seconds what normally would require hours; it also prints the obtained results, adding the advantages of a neat calligraphy to those of computations with no chance for errors.” (Brisse, 1875, on the Scheutz machine)
Generation 0: Mechanical(1642-1945) • Babbage’s new machine was the so-called Analytical Engine • This new machine is indeed the first “computer” as we intend it today • A programmable device whose structure resembles the one of modern computers • Despite he spent most of his money and energies on the development of the new machine, Babbage was not able to succeed ¾ for the same reason, eg, Leonardo could not actually realize many of his designs: technology was not enough mature yet
Generation 0: Mechanical(1642-1945) • Structure of the Analytical Engine • Input organs (to input data and code!) • Output organs • The Store, where data and code are stored • The Mill (arithmetical unit), to execute arithmetical operations • The Control Unit, to impose a given sequence to the operations • Uses punched cards • 1 addition in 3’’, 1 mul/div in 2’ to 4’
Generation 0: Mechanical(1642-1945) • A fully compliant A.E. was built in 1989-91 making use of the original Babbage’s designs
Generation 0: Mechanical(1642-1945) • Ada Augusta King, Countess of Lovelace, may be considered as “the first programmer:” She wrote the first programs for Babbage’s Analytical Engine
Generation 0: Mechanical(1642-1945) • “The limits of arithmetic[al computations] had been overcome the same moment the [Jacquard’s] idea of using cards had come to light, and the Analytical Machine has actually nothing in common with the “calculating machines”. Having allowed machinery to mutually combine strings of general symbols [opcodes] in series of unlimited variety and length [the software programs], a logic link [a homomorphism] is established between material actions and those abstract mental processes that pertain to the most abstract branch of mathematical sciences.” Ada Lovelace, 1842
Interlude • That is • No more simple arithmetical operations • No more single, predefined (set of) computations • No more manual or semi-manual use • No more the human error rate • No more the human computing speed • “Strings of general symbols arranged into series of unlimited variety and length.” • A noteworthy example: DNA
Generation 0: Mechanical(1642-1945) • “[…] So a new, vast and powerful language has been developed […] such that humanity will benefit from practical applications becoming faster and more precise than it was possible so far. • To our knowledge, no machine like the Analytical Engine exists or has ever been imagined as a practical endeavor, the same way nobody could ever imagine a thinking machine.” (cited reference)
Generation 0: Mechanical(1642-1945) • Analytical Engine Java Applet Simulator: • http://www.fourmilab.ch/babbage/applet.html • Analytical Engine Command-line Emulator: • http://www.fourmilab.ch/babbage/cmdline.html • Excerpts from Babbage’s autobiography • http://www.fourmilab.ch/babbage/contents.html
Generation 0: Mechanical(1642-1945) • 1936: Alan M. Turing defines a model of universal computability with his “Turing Machine” • A simple machine: complexity required to compute any function is all in its software • ‘‘The importance of the universal machine is clear. We do not need to have an infinity of different machines doing different jobs. A single one will suffice. The engineering problem of producing various machines for various jobs is replaced by the office work of programming the universal machine to do these jobs.’’ • (Turing, “Intelligent Machinery”)
Generation 0: Mechanical(1642-1945) • The increasing population in the US, and the demands of Congress to ask more questions in each census, was making the processing of the data a longer and longer process. • It was anticipated that the 1890 census data would not have been processed before the 1900 census was due – unless something was done to improve the processing methodology. • Herman Hollerith won the competition for the delivery of data processing equipment to assist in the processing of the data from the 1890 US Census • The company he founded, Hollerith Tabulating Company, eventually became one of the three that composed the Calculating-Tabulating-Recording (C-T-R) company in 1914, eventually renamed as IBM in 1924.
Generation 0: Mechanical(1642-1945) • Konrad Zuse, in Berlin, Germany, developed in 1935 his Z-1 computer in his parent's living room, a relay computer, using binary arithmetic. • Instruction cycle time: 6 seconds (0.17 Hz)
Generation 0: Mechanical(1642-1945) • The first large scale, automatic, general purpose, electromechanical calculator was the Harvard Mark I (AKA IBM Automatic Sequence Control Calculator [ASCC]) conceived by Howard Aiken in the late 1930’s • The ASCC was not a stored program machine but instead was driven by a paper tape containing the instructions.
Generation 0: Mechanical(1642-1945) • Grace Murray Hopper found the first computer bug beaten to death in the jaws of a relay. She glued it into the logbook of the computer and thereafter when the machine stopped (frequently) she told Howard Aiken that they were "debugging" the computer. Numbered pages for USA patents Lab book!!
Basic Concepts • Computer history • Generation -1: The early days (…-1642) • Generation 0: Mechanical (1642-1945) • Generation 1: Vacuum tubes (1945-1955) • Generation 2: Discrete transistors (1955-1965) • Generation 3: Integrated circuits (1965-1980) • Generation 4: VLSI (1980-?) • Virtual machines