Dominique HOUZET
Professeur des Universités - Grenoble-INP, Grenoble, France
Cet article s'organise autour de l'utilisation et de la mise en oeuvre des microprocesseurs en présentant en particulier leurs boîtiers, les outils de développement logiciel et matériel, et les critères de choix de composants. Les perspectives d'évolution sont présentées, ainsi que trois exemples d'application des microprocesseurs dans des systèmes réels comme les smartphones, les réseaux et les imprimantes laser.
Le concept de microprocesseur, qui correspond à une implémentation de la fonction unité de traitement sur un seul circuit, ne s'éloigne pas, en termes d'architecture, des processeurs au sens général. Les différents aspects de l'architecture des microprocesseurs sont le support système, le jeu d'instruction, la hiérarchie mémoire, l'architecture interne, les interfaces, le parallélisme et l'évaluation des performances. Cette présentation de l'achitecture des microprocesseurs est illustrée par des exemples de ce qui se fait de mieux dans chaque domaine.
Les microprocesseurs sont au cœur des systèmes numériques. Ils permettent le développement de logiciels toujours plus évolués, adressant des applications de plus en plus sophistiquées. Leur intégration dans les systèmes embarqués représente l’évolution la plus visible récemment au travers des objets numériques. Il s’agit de la révolution du numérique. Cet article présente l’évolution récente des microprocesseurs en la situant par rapport à l’histoire des quarante dernières années, les différentes déclinaisons des microprocesseurs ainsi que le lien avec le logiciel.
Cet article s'intéresse à l'architecture et à la programmation des cartes graphiques dans le but de réaliser des calculs. L'évolution des processeurs vers le parallélisme est décrite, puis celle des cartes graphiques vers la programmation généraliste et le calcul massivement parallèle. Les principales architectures des cartes graphiques et les outils logiciels disponibles pour les programmer sont exposées. Une description plus détaillée des cartes NVIDIA, du langage de programmation CUDA et des librairies associées est effectuée, suivie d'un exemple de programmation et d'optimisation. Pour finir, un aperçu des résultats obtenus et des évolutions techniques possibles est donné.