0% ont trouvé ce document utile (0 vote)
9 vues17 pages

Architecture de Von Neumann expliquée

Transféré par

Hiba Saghir
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues17 pages

Architecture de Von Neumann expliquée

Transféré par

Hiba Saghir
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Architecture de Von Neumann

Unités fonctionnelles
Architecture de Von Neumann

L’architecture de Von Neumann est un


modèle structurel d’ordinateur dans lequel
une unité de stockage (mémoire) unique
sert à conserver à la fois les instructions et
les données demandées ou produites par le
calcul. Les ordinateurs actuels sont tous
basés sur des versions améliorées de cette
architecture.
L’architecture de Von Neumann décompose
l’ordinateur en 4 parties distinctes :

● l’unité arithmétique et logique (UAL ou ALU en


anglais) ou unité de traitement : son rôle est
d’effectuer les opérations de base;

● l’unité de contrôle, chargée du «séquençage»


des opérations: elle joue un rôle de
coordonnateur;
● la mémoire qui contient à la fois les données
et le programme qui indiquera à l’unité de
contrôle quels sont les calculs à faire sur ces
données. La mémoire se divise entre mémoire
volatile (programmes et données en cours de
fonctionnement) et mémoire permanente
(programmes et données de base de la
machine) ;
● les dispositifs d’entrée-sortie, qui permettent
de communiquer avec le monde extérieur.
Architecture de Von Neumann
Mémoire

Elle est composée de suite de mots


mémoire (suite de bits de taille fixe).

Chaque mot mémoire est identifié par


son adresse (code biniare).
Mémoire

Exemple:
RAM de deux
octets chacun
avec des adresses
de 0 à 15 codées
sur 4 bits.
Registres
Pour assurer leur fonctionnement, l'unité de
traitement (partie opérative) et l'unité de
commande (Partie contrôle), utilise des
mémoires très rapides appelés registres.

En règle général, dans le contexte d'un


processeur particulier, les registres sont
associés à des noms courts indiquant leur
rôle.
Registres
Unité de commande
Elle est composée de deux registres:

Le compteur ordinal (CO): stocke l'adresse de


l'instruction à exécuter, sa taille est
identique à celle d'une adresse mémoire.

Le registre d'instruction (RI) stocke


l'instruction en cours d'execution, sa taille
est égale à celle d'un mot mémoire.
Unité de commande

CO

RI
Codage de l'instruction en cours par RI:
Exercice
On suppose que les codes des opérations de base sont: 0000
pour l'addition, 0001 pour la multiplication, 0010 pour la
soustraction et 0011 pour la division.

1- Expliquer le rôle de chacune des instructions codées comme


suit:
0001 1000 0011 1001
0000 1100 0101 1000
0011 1001 0101 0010

2- Donner le code de l'instruction effectuant la division entre le


mot mémoire d'adresse 9 avec celui d'adresse 2 et stocke le
résultat dans le mot d'adresse 5.
Unité de traitement
Elle exécute des opérations de base et composée de:
- 3 registres:
- deux servant à stocker les données (donnée 1 et donnée 2)
- 1 registre pour stocker le résultat de l'opératio effectuée.

- Unité arithmétique et logique(UAL): lorsqu'on lui


fournit le code d'une opération, elle prend les
contenus des deux premiers registres (stockant
donnée1 et donnée 2) et remplit le troisieme par le
résultat.
Unité de traitement
Fonctionnement d’un Microprocesseur
M
• Extrait une instruction de la mémoire
• Analyse l’instruction
• Recherche dans la mémoire les données concernées
• Assure le chargement des données si nécessaire
• Déclenche l’opération adéquate sur l’UAL
• Range le résultat dans la mémoire
• Passe à l’instruction suivante
Exercice
Expliquer (via des schémas) les différentes
phases permettant d'executer le programme
suivant:
In A=2 ;
Int B=4 ;
Int C= 17;
Int D,E ;
D=A*B;
E=C+D ;

Common questions

Alimenté par l’IA

In executing the operation sequence "D=A*B; E=C+D;" within the Von Neumann architecture, the ALU and registers collaborate for appropriate data processing. Initially, the control unit fetches and decodes the multiplication instruction for "D=A*B". It retrieves values of A and B from registers or memory, performs the multiplication using the ALU, and places the result in D's storage location. Subsequently, for "E=C+D", the process repeats: fetching the add instruction, retrieving C and D values, executing addition via the ALU, and storing the outcome in E's register. This sequence demonstrates the cycle of instruction fetching, execution synchrony, and result storage central to this architecture .

The Von Neumann architecture uses memory addresses to identify specific locations in memory where data and instructions are stored. The program counter (PC), also known as the ordinal counter, plays a significant role by storing the memory address of the next instruction to be executed. This ensures a sequential flow of instruction processing. The PC automatically increments after each instruction fetch, enabling the system to proceed through the instruction set stored in memory .

Essential components ensuring synergy in the Von Neumann architecture include the control unit, ALU, memory, and registers. These elements are interlinked through a shared bus system, facilitating seamless data and instruction exchanges. The control unit orchestrates data flow by managing sequential instruction execution with the program counter (PC). The ALU processes operations on data fetched into specific registers, guided by instructions relayed from memory. Registers serve as fast-access storage for operands and results, while the memory holds both instructions and data, enabling the synergy between planning (via instruction) and execution (via data operation). The integrated operation of these components is critical to efficient computational output .

The primary role of the arithmetic and logic unit (ALU) in the Von Neumann architecture is to perform the basic arithmetic and logical operations required by the computer program. It executes these operations by taking input from certain registers designated as containing the necessary data. Once it receives the code of an operation, the ALU processes the inputs (data from the first two registers) and stores the result in a third register .

The control unit in the Von Neumann architecture manages its operation cycle through precise sequencing of instructions. It does this by utilizing the program counter (PC) to keep track of the address of the next instruction. In each cycle, the control unit fetches the instruction from memory at the address stored in the PC, temporarily holds it in the instruction register (RI), and decodes it to determine the required control signals. This process allows the control unit to sequentially step through a program's instructions, ensuring that each one is executed in the correct order, hence playing a vital role in coordinated computational control .

Using a single memory structure for both data and instructions in the Von Neumann architecture has the potential to streamline storage needs but poses significant challenges. Chief among these is the 'Von Neumann bottleneck,' wherein the shared memory bus becomes a limiting factor for data throughput. This bottleneck can slow down processing speeds as the architecture deals with simultaneous demands for instruction and data retrieval. Additionally, the unified memory space can lead to difficulty in protecting instructions from being altered or corrupted by unintended data operations, increasing the risk of bugs and inefficiencies within software applications .

The instruction register (RI) in the Von Neumann architecture control unit functions to temporarily hold the current instruction that is being executed. This register is crucial as it holds the coded form of the instruction during processing, allowing the control unit to decode and execute it. The size of the RI corresponds to the size of a memory word, ensuring seamless instruction retrieval and execution .

In executing a division operation within the Von Neumann architecture, registers are pivotal for holding the operands and the result. Two registers store the operands (data1 and data2), and a third register is used to store the resultant value after computation. The division operation is coded typically with a specific code, such as '0011' representing division in this architecture. This allows the ALU to recognize and perform the correct operation on the values held in the registers designated for operands, subsequently placing the result in the result register .

The instruction execution cycle within the Von Neumann architecture includes several critical steps: 1) Fetch - where the next instruction is retrieved from memory using the program counter and stored in the instruction register, 2) Decode - interpreting the retrieved instruction to understand what action needs to be performed, 3) Execute - the control unit orchestrates the appropriate components (ALU, registers) to carry out the instruction, and 4) Store/Write-back - the results from execution are stored back into memory or registers for further operations. Each step ensures coherent program management, sustaining the flow from instruction retrieval to execution, ensuring all program operations are conducted systematically and efficiently .

In the Von Neumann architecture, both instructions and data are stored in the same memory space, making use of a single storage unit for this purpose. This design implies that specific segments of the memory are used interchangeably to hold either instructions or data. This unification allows for flexible storage allocation but often leads to a bottleneck, commonly referred to as the Von Neumann bottleneck. This issue arises because instructions and data share the same bus for transfer, limiting the data throughput that can be achieved, hence potentially impacting the system's overall performance .

Vous aimerez peut-être aussi