Une architecture externe de processeur[1],[2] ou architecture de jeu d'instructions[3] (ISA, de l'anglais instruction set architecture), ou tout simplement architecture (de processeur)[4],[5],[6], est la spécification fonctionnelle d'un processeur, du point de vue du programmeur en langage machine. L'architecture comprend notamment la donnée d'un jeu d'instructions, d'un ensemble de registres visibles par le programmeur, d'une organisation de la mémoire et des entrées sorties, des modalités d'un éventuel support multiprocesseur, etc.
Le terme externe employé ici permet de bien faire la différence avec la microarchitecture ou architecture interne, qui s'intéresse à l'implémentation pratique du comportement spécifié par une architecture externe. Une architecture externe donnée peut être implémentée sous forme de plusieurs microarchitectures.
- ↑ Les termes d'architectures interne et externe ont notamment été repris en 1998 dans le document « Principes d'architecture externe des ordinateurs »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?) de « François Anceau »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), titulaire de la Chaire des techniques fondamentales de l'informatique au CNAM.
- ↑ F. Anceau, The Architecture of Microprocessors, Addison-Wesley, 1985, « For any computer, there are two distinct architectures : (a) the external architecture which describes the machine as seen by its users (programmers) in terms of its instruction set [and] its facilities (number of registers, etc.), (b) the internal architecture which describes how the machine is physically organized [...]. »
- ↑ Par exemple dans Nicholas P. Carter, Architecture de l'ordinateur, Schaum's, 2002 ou Architecture de l'ordinateur : Cours et exercices, Andrew Tanenbaum, Jean-Alain Hernandez (trad.), René Joly (trad.), Dunod, 2001.
- ↑ G. M. Amdahl, G. A. Blaauw et F. P. Brooks, Jr., « Architecture of the IBM System/360 », IBM Journal of Research and Development, volume 8, numéro 2, p. 87-101, 1964. Voir notamment la note suivante : « The term architecture is used here to describe the attributes of a system as seen by the programmer, i.e., the conceptual structure and functimal behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation. »
- ↑ B. Shriver et B. Smith, The Anatomy of a High-Performance Microprocessor : a Systems Perspective. The IEEE Computer Society, 1998, p. xi : « Architecture refers to the instruction set, resources, and features of a processor that are visible to software programs running on the processor. The architecture determines what software the processor can directly execute and essentially forms a specification for the microarchitecture. The term architecture as defined here is often called the instruction set architecture. »
- ↑ D.A. Patterson, J.L. Hennessy, Computer Organization & Design, Elsevier, 2005, p. 21 : « One of the most important example of abstraction is the interface between hardware and lowest-level software. Because of its importance, it is given a special name: the instruction set architecture, or simply architecture, of a machine. »