Export PDF - Cours en ligne
Transcription
Export PDF - Cours en ligne
Brève introduction à la matière Grenoble INP 1 / 16 Introduction Diapos et podcast Grenoble INP 2 / 16 Eléments de base d'un circuit numérique Grenoble INP 3 / 16 Codage des nombres en base 2, la logique booléenne et les circuits combinatoires Diapos et podcast Supplément de cours sur les tableaux de Karnaugh Grenoble INP 4 / 16 Circuits séquentiels Diapos et podcast Grenoble INP 5 / 16 Construction de circuits complexes Diapos et podcast Grenoble INP 6 / 16 Mémoire Diapos et podcast Grenoble INP 7 / 16 De l'algorithme aux circuits Grenoble INP 8 / 16 Machines à états Nouveauté : le cours a été enregistré en plusieurs morceaux et contient à présent des dessins fait "live" par votre serviteur. Vu que je ne suis pas hyper doué, la webcam enregistrait le dessin la tête en bas ! Si certains d'entre vous fricotent avec INProd ou savent utiliser cinderela ou kdenlive, ils peuvent retourner les sequences (je sais le faire avec ffmpeg, mais comme il faut le faire au milieu du reste, c'est rude). L'idée est simple : vous visualiser sous kdenlive, et dès qu'arrive une séquence de dessin, et bien vous sélectionnez et retournez la séquence (bien visible sur les miniatures), et vous continuez de visualiser. A la fin, vous faites un rendering en mp4, que vous traduisez ensuite en m4v (seule format supporté par la plate-forme de distribution de l'UGA à ma connaissance) par ffmpeg -i file.mp4 -vcodec libx264 -strict -2 -r 10 file.m4v. Je me ferai ensuite un plaisir de mettre en ligne cette nouvelle version, qui épargnera les torticollis aux moins geek. De même, il y a quelques râclement de gorges, quelques blancs en début et en fin de séquence, et autres "euh" qui traînent et qui gagneraient à être post-produits, mais bon, il n'y a que 24 heures dans la journée d'une femme ou d'un homme ! Le podcast 6 est remarquable, j'ai enregistré une fenêtre sur laquelle il ne se passe rien jusqu'à 5'30' à peu près, tout en racontant comment faire l'encodage one-hot, date à laquelle je me suis aperçu que j'avais parlé sans support. J'ai donc recommancé à partir de 6'00'', temps a partir duquel vous pouvez commencer le podcast. De même que précédemment, un monteur aguérri est le bien venu pour le final cut ! Petit bug aussi dans le discours : dans la partie 6 à 7'48'', je dis "2" à la place de "3" ! Gasp ! ● ● ● Diapos Les nouveaux podcasts, en 8 morceaux: partie 1, partie 2, partie 3, partie 4, partie 5, partie 6, partie 7, partie 8. Pour les nostalgiques, le podcast 2015 Pour les angoissés : j'ai compris comment positionner la webcam pour que les images soient dans le bon sens la prochaine fois, ça devrait donc aller mieux pour le cours 6. Grenoble INP 9 / 16 Circuits PC/PO Diapos et podcast 2015 pour ceux qui aiment le réchauffé Le nouveau podcast, en 3 morceaux: partie 1, partie 2, partie 3. Je me suis un peu laissé aller à l'enthousiame, la partie 3 fait 45 minutes d'un seul tenant, préparez le paracétamol ou faite des pauses toutes les 15 minutes. Grenoble INP 10 / 16 Optimisation des circuits PC/PO Diapos et podcast de 2015 Le nouveau podcast, en 2 morceaux, j'ai oublié de couper après l'introduction (vers 16'20"): ● ● partie 1, partie 2. Il y a des problèmes de latence du à la trop haute résolution de mon écran, je vais passer en résolution plus faible pour les cours suivants. Bon cours ! Grenoble INP 11 / 16 Processeur : notions de base sur ce type de circuit Grenoble INP 12 / 16 Interprétation d'instructions Diapos et ancien podcast Le nouveau podcast, en 4 parties : partie 1, partie 2, partie 3. partie 4. Grenoble INP 13 / 16 Jeu d'instructions et architecture Diapos et podcast 2014, l'enregistrement ayant lamentablement échoué en 2015 ! Voici les deux parties du cours refaites pour cette année partie 1, partie 2. Grenoble INP 14 / 16 Processeur MIPS Diapos et podcast 2015 Le nouveau podcast en trois parties : partie 1, partie 2, partie 3. Grenoble INP 15 / 16 Cache : intérêt et principes Diapos et podcast 2015 du cours sur les caches. Le nouveau podcast : partie 1, partie 2, partie 3 Je vous invite à reproduire sur votre machine l'exemple présenté dans le podcast dont le code est ci-dessous : #include <stdint.h> volatile int32_t x[2048][128]; int main(void) { int32_t i, j, k; for (k = 0; k < 1000; k++) for (j = 0; j < 128; j++) for (i = 0; i < 2048; i++) x[i][j] = 2 * x[i][j]+k; return 0; } Il faut installer valgrind et/ou linux-perf pour avoir des informations précises sur les caches. Pour lancer perf : $ perf stat -e cache-misses ./a.out Attention cependant, car perf est perturbé par l'activité du système car il lit des compteurs disponibles dans l'architecture (il faut le lancer 50 fois et prendre le plus petit résultat dans les deux cas), alors que valgrind simule le comportement des caches, donc le système n'influe pas. Question subsidiaire : pourquoi l'ordre des boucles "lignes puis colonnes" est-il (trois fois) plus efficace que l'ordre "colonnes puis lignes" ? Grenoble INP 16 / 16