Structura unui calculator Lab02
Calculatorul?
Calculator? 1
Calculator?
Calculator? #include <stdio.h> #include <conio.h> #include <time.h> #include <dos.h> #include <stdlib.h> #define NR_MAX 5000 #define pas 50 typedef struct { double valoare; int baterie; }nod; int nr_repetari=1; //reteaua de noduri nod a[NR_MAX]; //nr de noduri care sunt active la un moment dat int n; //eroarea maxima admisa pentru valori double epsilon; // tablou temporar la nodul C int b[NR_MAX]; //timp transmisie mesaje pe retea int D=1; // ------------ Functie ce initializeaza valorile interne ale bateriilor ------------------- void init() randomize(); for(int i=0;i<n;i++) a[i].baterie=random(101); a[i].valoare=random(1000*epsilon)/1000; } // ----------- Functie ce simuleaza trimiterea de mesaje ----------------------------------- void cere_valori(int dlay)
Calculatorul - cum îl abordăm? Software FIC Imagine prelucrata din Principles Of Computer Architecture - Miles J. Murdocca, Vincent P. Heuring - Prentice Hall,1999 Hardware
Ce face un calculator? Cine spune asta? De unde? Care unde apare? START Instrucţiuni de executat? Funcţie de codul operaţiei (OPCODE) Adu instrucţiunea (FETCH) Execută instrucţiunea Nu Da Cine spune asta? De unde? Care unde apare? Cine îl defineşte? Cum? Unde?
Arhitectura unui calculator Von Neumann Harvard Imagini http://www.elec.canterbury.ac.nz/PublicArea/Staff/hof/p10-embed/p10-tutorial
Funcţionarea + Instrucţiune Instrucţiune 11 10 1 START Nu Instrucţiuni de executat? Funcţie de codul operaţiei (OPCODE) Adu instrucţiunea (FETCH) Execută instrucţiunea Nu Da Instrucţiune + Instrucţiune 11 10 1
Etapele execuţiei Adu instrucţiune Decodifică instrucţiune START Instrucţiuni de executat? Funcţie de codul operaţiei (OPCODE) Adu instrucţiunea (FETCH) Execută instrucţiunea Nu Da Adu instrucţiune Instruction Access sau Instruction Fetch Decodifică instrucţiune Instruction Decode Execută instrucţiune Execution Data Access Store (write back) Results
Microprocesorul şcoală IAS* Şi acum... o maşină reală Microprocesorul şcoală IAS* * IAS – Institute for Advanced Studies, Princeton
Structura IAS DR AR PC IR AC DPU PCU ICS DPU Data /Gate register Address register PC Program counter IR Instruction register AC accumulator DPU Data programming unit PCU Program controling unit ICS Internal control signals Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Funcţionarea IAS Instruction Fetch DPU Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Funcţionarea IAS Instruction Fetch Instruction Decode DPU Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Instrucţiunea este un ADD
Funcţionarea IAS - ADD Instruction Fetch Instruction Decode Execution DPU Instruction Fetch Instruction Decode Execution Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Funcţionarea IAS - ADD Instruction Fetch Instruction Decode Execution DPU Instruction Fetch Instruction Decode Execution Data Access Write back Results Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Instrucţiunea este un LOAD
Funcţionarea IAS Instruction Fetch DPU Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Funcţionarea IAS Instruction Fetch Instruction Decode DPU Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Funcţionarea IAS - LOAD DPU Instruction Fetch Instruction Decode Execution Data access Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Funcţionarea IAS - LOAD DPU Instruction Fetch Instruction Decode Execution Data access Writeback result Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Mix and match Part 1
IAS vs Von Neumann DPU Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR PC IR Control unit ICS
Etapele execuţiei Adu instrucţiune Decodifică instrucţiune START Instrucţiuni de executat? Funcţie de codul operaţiei (OPCODE) Adu instrucţiunea (FETCH) Execută instrucţiunea Nu Da Adu instrucţiune Instruction Access sau Instruction Fetch Decodifică instrucţiune Instruction Decode Execută instrucţiune Execution Data Access Store (write back) Results
În continuare... o ALTĂ maşină reală Microprocesorul şcoală MIPS
Structura MIPS PC - Program counter; NPC - New PC; IR – Instruction register; Imm – immediate; LMD – loaded memory data; cond – branch condtion
Funcţionarea MIPS - ADD Notă: Selectarea adresei următoare nu este animată
Funcţionarea MIPS - LOAD Notă: Selectarea adresei următoare nu este animată
Mix and match Part 2
MIPS vs VonNeumann
Etapele execuţiei Adu instrucţiune Decodifică instrucţiune START Instrucţiuni de executat? Funcţie de codul operaţiei (OPCODE) Adu instrucţiunea (FETCH) Execută instrucţiunea Nu Da Adu instrucţiune Instruction Access sau Instruction Fetch Decodifică instrucţiune Instruction Decode Execută instrucţiune Execution Data Access Store (write back) Results
Von Neumann
IAS DPU Arithmetic logic circuit AC Main Memory 25 x 8 biţi DR PCU AR Control unit ICS
MIPS
P4