[Question] Niveau requis pour lire ces 2 livres sur l'architecture des ordinateurs

"Computer architecture : a quantitative approach" et "Modern processor design : Fundamentals of superscalar processor"

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous,

Ceci est mon premier post, je n’ai pas trouvé de conseils de rédaction sur cette sous partie du forum donc j’espère que mon post sera correcte !

Rentrons donc dans le vif du sujet : J’aime beaucoup de choses dans l’informatique, récemment j’ai voulu approfondir mes connaissances dans l’architecture des ordinateurs, sur coursea je me suis donc inscris sur un cours de la Priceton University "Computer architecture", le professeur indique utiliser 2 livres pour ce cours : "Computer architecture : a quantitative approach" de Patterson et Hennessy et "Modern processor design : fundamentals of superscalar processor" de Shen et Lipasti que vous pourrez facilement trouver sur internet téléchargeable en PDF ou autres formats.

Ma question est la suivante : Ces livres requièrent-il déjà des bases solides en architecture ou peut-on les lires en ayant les connaissances de bases en architecture ? Pour que vous ayez une idée de mon niveau j’ai une licence professionnelle RGI(Réseaux et Génie Informatique) depuis Juin 2020, avant ça j’ai fais un DUT informatique, on a eu des cours d’architectures en première année, moi j’ai aussi un peu creusé de mon côté donc par exemple je vois les système de cache L1-L3 du cpu, les registres généraux et spécialisés, l’instruction pointer, etc. Mais je vois bien que j’ignore beaucoup de choses car des fois on a des surprises sur certains programmes qui vont lentement par rapport à une instruction en particulier et en plus cela dépend de l’architecture du CPU de ce que j’ai compris aussi. Du coup je compte me former sur l’assembleur et je jugeais nécessaire pour ça de me former avant sur l’architecture des ordinateurs.

Voilà voilà, Merci de votre attention Merci d’avance pour votre aide :) !

Cordialement, Aszriel

J’ai juste regardé le sommaire du livre Computer Architecture: A Quantitative Approach (éditions ARM et RISC-V). Les livre semble aborder les notions fondamentales, mais de façon approfondie. À première vue, il se n’agit donc pas d’un livre de spécialisation sur un aspect hautement particulier du sujet ce qui, dans ce cas, impliquerait certainement une expertise au préalable. Je ne pense pas qu’il y ait un gros pré-requis que tu n’aies pas déjà d’après ce que tu indiques. J’ai l’impression que ça consolidera justement tes acquis en entrant dans le détail.

Par ailleurs, s’il est suggéré dans le cours, cela me fait dire qu’il s’agit là bien d’un livre qui sera en principe accessible (en partant du principe que le cours lui-même te soit accessible).

Malheureusement, je n’ai pas lu le livre en question (mais j’aimerais beaucoup) pour pouvoir émettre un avis plus fin que ça. Il s’agit là simplement d’une heuristique.

Bonsoir,

Merci pour ta réponse, je pense pouvoir suivre le MOOC mais c’est étrange qu’il classe cela comme "Advanced" en sachant qu’il y a "beginner" et "intermediate", aussi lors d’une des vidéos justement le professeur disait comme quoi il va allait très vite sur les "principes fondamentaux" et que qu’il fallait au préalable que l’on ait "A computer organization class", j’ai cherché un autre MOOC pour voir si il en existait un classé comme intermediaire ou débutant, mais cela n’a rien donné ^^

L’autre explication pourrait être que le livre peut convenir à un débutant car lui va être plus progressif que le cours, mais comme le cours va aller vite sur les principes fondamentaux et vite aller dans les détails techniques, ils ont classé ça comme "Advanced".

Cordialement

Salut,

J’ai acheté Computer architecture : a quantitative approach en 2011–2012 avec son compagnon : Computer Organization and Design: The Hardware Software Interface

Ce ne sont pas des livres pour débutants, il faut un minimum de connaissances pour pleinement en profiter. D’autre part du fait de la méthode de rédaction en chapitre sur des notions spécifiques rédigés par des experts, c’est plus un type de livre à "picorer" qu’à lire d’une traite.

J’ai un background systèmes embarqués et électronique. Je connais bien les architectures de microcontrôleurs, DSP, vieux CPU, les FPGA, etc. Le problème que j’ai avec Quantitative approach, c’est qu’on rentre directement dans des notions complexes. Le 1er chapitre est une introduction, le 2nd c’est sur la mémoire virtuelle…
C’est un livre destiné à des personnes ayant une formation informatique, programmation. Et ça va concerner des notions assez récentes et assez complexes. Et le problème est là, il manque certaines bases pour vraiment comprendre : soit on les a acquises autrement (via le 2nd bouquin) soit on ne les a pas et il manquera une partie des fondation au niveau de la construction des connaissances.

Le 2nd bouquin est plus destiné à des gens venant de l’électronique ou des personnes souhaitant connaitre le fonctionnement détaillé d’un processeur au niveau des différents composants élémentaires qui le composent. Et le sous-titre porte bien son nom : the hardware-software interface. On y apprend ce qui se passe dans un processeur quand une commande est exécuté, comment fonctionne un DMA, etc. Bref l’architecture basique d’un ordinateur. J’y retrouve des notions de bouquins des années 70–80 quand les processeurs étaient peu complexes et donc plus faciles à comprendre.

Concernant l’assembleur, oublie. Ca n’apporte rien, les compilateurs optimiseront bien mieux l’assembleur que toi avant pas mal d’années de pratique. Je te conseillerai plutôt de chercher à programmer des microcontrôleurs (PIC, Arduino, pas des trucs Raspberry PI, c’est trop complexe), mais en C, pas dans les langages haut niveau. C’est ce qu’on fait en école d’ingénieur (ou faisait), ça permet d’apprendre la lire la documentation technique, les plages mémoires pour accéder aux I/Os, etc. tout ce qu’on retrouve sur un ordinateur moderne, mais de façon un poil moins complexe et donc plus accessible.

Merci Zeql pour cette réponse super détaillé.

Donc c’est bien ce que je pensais, le prof le disait bien dans le MOOC comme quoi au début on allait parler de notions basiques mais qu’il comptait aller très vite dessus et limite les survoler pour aller directement dans les détails plus complexes. Ca va m’éviter de perdre du temps à tenter de lire les 30 premières pages et me demander et de me rendre compte qu’en faite le bouquin n’est pas destiné pour les rookies :) .

Alors concernant l’assembleur rassure toi, je n’ai pas l’intention de faire un compilateur ou quoi que ce soit, en réalité c’est plus par passion et car ça pourrait m’ouvrir des voies dans l’informatique intéressantes, par exemple la rétro-ingénieurie ou la cybersécurité. Bien évidemment je n’aurais pas suivi une formation ou diplôme spécifique pour cela, mais si je peux avoir quelques compétences dans ces domaines cela m’intéresse. En faite de manière général pleins de choses m’intéresses même hors informatique, du coup j’adore absorber des connaissances, en plus je me dis que ça pourrait me donner des idées pour faire des programmes plus complexes ou riches en informatique, par exemple un programme permettant de modéliser des molécule en 3D(bon là le faire tout seul ça serait compliqué je pense :lol: mais tu saisis l’idée ^^ )

Et effectivement c’est le 2ème bouquin dont tu parles que j’ai vu sur une question de Quora, la personne recommandé ce bouquin là pour débutant puis le 1er bouquin puis pour les plus avancés un dernier dont j’ai oublié le nom.

Par ailleurs j’ignorais que Raspberry PI était plus complexe, je pensais que Arduino et Raspberry PI était au même niveau, mais il faut dire que je n’ai jamais fait de la programmation embarqué bien que ça à l’air plutôt marrant et instructif :D !

Merci encore pour vos retours !

Par ailleurs j’ignorais que Raspberry PI était plus complexe, je pensais que Arduino et Raspberry PI était au même niveau, mais il faut dire que je n’ai jamais fait de la programmation embarqué bien que ça à l’air plutôt marrant et instructif :D !

À part le Pico, les Raspberry Pi ne sont pas des cartes avec un simple microcontrôleur dessus. Ce sont des System on Chip qui disposent d’un CPU moderne comparable à ceux qui équipant d’autres ordinateurs et serveur (avec un niveau de complexité comparable, donc). Typiquement, tu as besoin d’avoir un système d’exploitation « classique » (pour RPi, souvent c’est Linux) pour programmer ton applicatif par dessus et ces CPU sont d’ailleurs prévus pour fonctionner ainsi (tout comme les Intel et les AMD habituels)1. De ce fait, programmer sur RPi ne sera donc pas une expérience particulièrement différente que de programmer sur un ordinateur plus classique, même si bien-sûr il y a quelques GPIO (qui restent malgré tout accessibles via l’OS).

Pour résumer : les Raspberry Pi sont des ordinateurs.

En revanche, le récent Raspberry Pi Pico est un microcontrôleur tout à fait comparable à ce que tu trouves chez Arduino.

1 : dans le sens où ces CPU offrent des fonctionnalités qui sont utiles pour faire un système d’exploitation moderne, mais ces fonctionnalités ne pourront pas utilisées directement par le code applicatif en espace utilisateur.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte