|
|
07/05/2008 : Le cours du vendredi 16 mai 2008 est avancé au mercredi 14 mai 2008 de 15h00 à 16h30 en salle C3.
|
Ce cours, dispensé à Polytech'Nice-Sophia - ELEC 4, est consacré aux architectures des processeurs numériques programmables. Il ne s'agit pas de décrire tel ou tel processeur du commerce ancien ou moderne, il s'agit de comprendre pourquoi les processeurs ont été conçus tels qu'ils sont et ainsi se donner les moyens d'imaginer les prochaines générations.
1. Repères historiques
Il serait injuste de ne pas commencer par citer Charles Babbage (1791-1871) et sa machine analytique dont l'architecture est d'une modernité étonnante ...
In Babbage’s time numerical tables were calculated by humans called ‘'computers''. At Cambridge he saw the high error rate of the people computing the tables and thus started his life’s work in trying to calculate the tables mechanically, removing all human error. He began in 1822 with what he called the difference engine, made to compute values of polynomial functions.
... et d'oublier la première programmeuse : Ada Lovelace (1815-1852).
... an impressive mathematician and one of the few people who totally understood Babbage's vision, created a program for the Analytical Engine. Had the Analytical Engine ever actually been built, her program would have been able to calculate a numerical sequence known as the Bernoulli numbers. Based on this work, Ada is now credited as being the first computer programmer and, in 1979, a contemporary programming language was named Ada in her honour.
Shortly afterward
, in 1981, a satirical article in Datamation magazine described the Babbage programming language, the "language of the future".
Revenons en des temps plus récents. L'architecture de presque tous les processeurs actuels est directement issue de celle imaginée par John Von Neumann pour l'ordinateur EDVAC.
Cette architecture est décrite dans un très célèbre document : First Draft on a Report of the EDVAC publié le 30 juin 1945. Cette architecture est connue sous le nom de Architecture de Von Neumann.
Il serait cependant injuste d'ignorer les travaux de J. Presper Eckert et de John William Mauchly qui, à peu près à la même époque, ont conçu l'ordinateur ENIAC.
2. Lectures
Ce cours a beaucoup évolué au cours des années jusqu'à ce que je découvre le cours 6.004 du MIT publié dans le cadre de l'opération OpenCourseWare (MIT OCW) qui consiste à mettre en ligne tous les cours de cette prestigieuse institution.
Le cours 6.004 présenté par le Prof. Steve Ward et par le Prof. Chris Terman, est exactement le cours auquel je souhaitais aboutir. A partir de là, il n'est pas étonnant qu'il devienne le support de ce cours.
Les méthodes d'enseignements utilisées au MIT (dont la population est très particulière) sont très différentes de celles pratiquées chez nous (EPU de Nice), aussi, quelques aménagements de présentation sont nécessaires.
Tous les documents mis en ligne ne seront pas utilisés lors du cours. Cependant, leur lecture ne peut être que fructueuse et certains seront proposés (:cell PQA(PSS(imposés):) sous forme de lectures personnelles. Tous ces documents sont en anglais et ... il n'est pas question de les traduire. N'hésitez pas à consulter votre professeur d'anglais préféré.
Présentation du cours (Jean Demartini)
* Le poéme servant à illustrer le codage de l'information est The Paul Revere's Ride de H.W.Longfellow. Un peu d'histoire ...
... On April 18, 1775, Paul Revere and William Dawes were sent to warn Samuel Adams and John Hancock of British plans to march from Boston to seize patriot military stores at Concord. A signal was established to warn if the British were coming by land or by sea. From the steeple of the Old North Church in Boston, two lanterns would mean the British were coming by sea, and one would mean by land. One lantern was lit. The British were coming by land.
Revere left Boston around 10 PM. Along the road to Lexington, he warned residents that "the British are coming!" He arrived in Lexington around midnight riding a borrowed horse. At 1 AM, Revere, William Dawes, and Dr. Samuel Prescott left for Concord. Revere was captured. Only Prescott got through to Concord ... more ...
3. Exercices
|
|
"There's a big difference between understanding someone else's answer to a question and being able to generate that answer yourself. It's very tempting to just read the question and then immediately view the answer but that is not the best way to use these questions. You are strongly encouraged to try the questions yourself and then use the answers to check your work."
|
Les exercices traités en séance et consacrés à la modélisation du micro-contrôleur RISC pipeline PIC10F20x de Microchip Technology utilisent le HDL Verilog. Le choix de Verilog repose sur les arguments suivants :
- Verilog est utilisé (au moins) aussi largement que VHDL et System C. Il est donc important d'en avoir des notions. Les composants dont le design à utilisé Verilog génèrent plus de chiffre d'affaire que ceux développés en utilisant les autres HDL.
- Son apprentissage est assez facile.
- Il se prête bien à la synthèse.
- De nombreux outils libres sont disponibles.
Parmi ceux-ci j'ai sélectionné :
- Icarus Verilog : un compilateur-simulateur Verilog pour Windows et *NIX totalement compatible IEEE 1364-2001. Il ne possède pas d'IDE intégrée et doit être assicié à un éditeur de programmes.
- WaveVCD : visionneuse libre de fichiers VCD distribuée par ISS-US.
- PSPad Editor : un IDE libre remarquablement efficace tout en restant très simple à utiliser et à personnaliser. Son forum est très actif.
Trois documents classiques en aide l'apprentissage :
L'utilisation des langages HDL n'est pas nouvelle. On peut attribuer l'invention du premier langage HDL à Ken Iverson.
APL (for A Programming Language) is an array programming language based on a notation invented in 1957 by Kenneth E. Iverson while at Harvard University. It originated in an attempt to provide consistent notation for the teaching and analysis of topics related to the application of computers. The notation was later used to describe the IBM System/360 machine architecture, a description much more concise and exact than the existing documentation and revealing several previously unnoticed problems. Then, a Selectric typeball was made to write a linear representation of this notation. In 1964, a subset of the notation was implemented as a programming language.
Iverson published his notation in 1962 in a book titled A Programming Language and APL got its name from the title of this book. Iverson received the Turing Award in 1979 for his work.
à suivre
3.1. Exercices associés au cours
Les séries d'exercices en gras sont particulièrement conseillées.
3.2. Exercices d'application
Ces exercices sont consacrés à une description assez complète d'un micro-contrôleur classique : PIC10F20x. Cette description est réalisée pas à pas en Verilog ... suite.
3.3. Contrôles
Voici les 3 derniers devoirs de contrôle qui ont été posés :
- juin 2006 — les documents fournis en annexe étaient soit des copies de certaines diapositives du cours soit des documents concernant le PIC10F20x qui n'a pas été traité cette année.
- septembre 2006 — ou comment appliquer ce qu'on a appris à une architecture tout à fait différente.
- juin 2007 — quelques questions concernant les FSM, une architecture pipeline et des variations autour de la machine Beta. Ce contrôle a été ,malheureusement, l'occasion de rappeler qu'une réponse non justifiée n'a aucune valeur.