-Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)
|
|
- Αμύντας Λόντος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών, αργές π.χ. πληκτρολόγιο. Για το Ι/Ο έχει γίνει η λιγότερη έρευνα..(i/o busses, I/O switched fabrics ) Ιεραρχία Μνήμης: καταχωρητές, κρυφή μνήμη (L1), κρυφή μνήμη (L2), κύρια Μνήμη- ΠΟΛΥ ΣΗΜΑΝΤΙΚΟ ΣΤΟΙΧΕΙΟ! 7/2/2011 cslab@ntua
2 Αρχιτεκτονικές Συνόλου Εντολών Instruction Set Architectures Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος bytes για κάθε εντολή; ( bytes, MIPS 4 bytes) Πώς γίνεται η αποκωδικοποίηση (ID); Που βρίσκονται τα ορίσματα (operands) και το αποτέλεσμα: Μνήμη-καταχωρητές, πόσα ορίσματα, τι μεγέθους; Ποια είναι στη μνήμη και ποια όχι; Πόσοι κύκλοι για κάθε εντολή; 7/2/2011 cslab@ntua
3 Κατηγορίες Αρχιτεκτονικών Συνόλου Εντολών (ISA Classes) 1. Αρχιτεκτονικές Συσσωρευτή (accumulator architectures) (μας θυμίζει κάτι?) 2. Αρχιτεκτονικές επεκταμένου συσσωρευτή ή καταχωρητών ειδικού σκοπού (extended accumulator ή special purpose register) 3. Αρχιτεκτονικές Καταχωρητών Γενικού Σκοπού 3α. register-memory 3b. register-register (RISC) 7/2/
4 Αρχιτεκτονικές Συσσωρευτή (1) 1η γενιά υπολογιστών: h/w ακριβό, μεγάλο μέγεθος καταχωρητή. Ένας καταχωρητής για όλες τις αριθμητικές εντολές (συσσώρευε όλες τις λειτουργίες Συσσωρευτής (Accum) Σύνηθες: 1ο όρισμα είναι ο Αccum,, 2o η μνήμη, μήμη, αποτέλεσμα στον Accum π.χ. add 200 Παράδειγμα: A = B + C Accum = Memory(AddressB); Accum = Accum + Memory(AddressC); Memory(AddressA) = Accum; Load AddressB Add AddressC Store AddressA Όλες οι μεταβλητές αποθηκεύονται στη μνήμη. Δεν υπάρχουν βοηθητικοί καταχωρητές 7/2/2011 cslab@ntua
5 Αρχιτεκτονικές Συσσωρευτή (2) Κατά: Χρειάζονται πολλές εντολές για ένα πρόγραμμα Κάθε φορά πήγαινε-φέρε από τη μνήμη (? Κακό είναι αυτό) Bottleneck o Accum! Υπέρ: Εύκολοι compilers, κατανοητός προγραμματισμός, εύκολη σχεδίαση h/w Λύση; Πρόσθεση καταχωρητών για συγκεκριμένες λειτουργίες (ISAs καταχωρητών ειδικού σκοπού) 7/2/2011 cslab@ntua
6 Αρχιτεκτονικές Επεκταμένου Συσσωρευτή Καταχωρητές ειδικού σκοπού π.χ. δεικτοδότηση, αριθμητικές πράξεις Υπάρχουν εντολές που τα ορίσματα είναι όλα σε καταχωρητές Κατά βάση (π.χ. σε αριθμητικές εντολές) το ένα όρισμα στη μνήμη. 7/2/
7 Αρχιτεκτονικές Καταχωρητών γενικού σκοπού Register-memory Αφήνουν το ένα όρισμα να είναι στη μνήμη (πχ ) Load R1, B Add R1, C Store A, R1 A=B+C extended-accumulator Register-register register (load store) (1980+) Load R1, B Load R2, C Add R3, R1, R2 Store A, R3 register-register Memory-memory accumulator register-memory 7/2/2011 cslab@ntua
8 Αρχιτεκτονική Στοίβας Καθόλου registers! Stack model ~ 1960!!! Στοίβα που μεταφέρονται τα ορίσματα που αρχικά βρίσκονται στη μνήμη. Καθώς βγαίνουν γίνονται οι πράξεις και το αποτέλεσμα ξαναμπαίνει στη στοίβα. Θυμάστε τα HP calculators με reverse polish notation A=B+C push Address C push AddressB add pop AddressA 7/2/2011 cslab@ntua
9 Εντολές μεταβλητού μήκους: 1-17 bytes 80x bytes VAX, IBM Γιατί?? Ιnstruction Memory ακριβή, οικονομία χώρου!!!! Εμείς στο μάθημα: register-register ISA! (load- store) 1. Οι καταχωρητές είναι γρηγορότεροι από τη μνήμη 2. Μειώνεται η κίνηση με μνήμη 3. Δυνατότητα να υποστηριχθεί σταθερό μήκος εντολών 4. (τα ορίσματα είναι καταχωρητές, άρα ό αριθμός τους (πχ καταχωρητές) όχι δ/νσεις μνήμης Compilers πιο δύσκολοι!!! 7/2/
10 Βασικές Αρχές Σχεδίασης (patterson-hennessy COD2e) 1. Η ομοιομορφία των λειτουργιών συμβάλλει στην απλότητα του υλικού (Simplicity favors Regularity) 2. Όσο μικρότερο τόσο ταχύτερο! (smaller is faster) 3. H καλή σχεδίαση απαιτεί σημαντικούς συμβιβασμούς (Good design demands good compromises) Γενικότητες? Θα τα δούμε στη συνέχεια... 7/2/2011 cslab@ntua
11 MIPS σύνολο εντολών: Λέξεις των 32 bit (μνήμη οργανωμένη σε bytes, ακολουθεί το μοντέλο big Εndian) 32 καταχωρητές γενικού σκοπού - REGISTER FILE Θα μιλήσουμε για: εντολές αποθήκευσης στη μνήμη (lw, sw) Αριθμητικές εντολές (add, sub κλπ) Εντολές διακλάδωσης (branch instructions) Δεν αφήνουμε τις εντολές να έχουν μεταβλητό πλήθος ορισμάτων- π.χ. add a,b,c πάντα: a=b+c Θυμηθείτε την 1η η αρχή: H ομοιομορφία μ των λειτουργιών συμβάλλει στην απλότητα του h/w 7/2/2011 cslab@ntua
12 Σύνολο Εντολών Instruction Set Λέξεις της γλώσσας του υπολογιστή εντολές Γλώσσες των υπολογιστών όμοιες Στο μάθημα, σύνολο εντολών MIPS 7/2/
13 Αφού οι καταχωρητές είναι τόσο...«γρήγοροι» γιατί να μην μεγαλώσουμε το μέγεθος του register file? 2η αρχή: Όσο μικρότερο τόσο ταχύτερο! Αν το register file πολύ μεγάλο, πιο πολύπλοκη η αποκωδικοποίηση, πιο μεγάλος ο κύκλος ρολογιού (φάση ID) άρα...υπάρχει ρχ tradeoff Μνήμη οργανωμένη σε bytes: (Κάθε byte και ξεχωριστή δνση) 2 30 λέξεις μνήμης των 32 bit (4 bytes) κάθε μια Memory [0] Memory [4] Memory [8] Memory [12] $s0, $s1, καταχωρητές (μεταβλητές συνήθως) $t0, $t1, καταχωρητές (προσωρινές τιμές) $zero ειδικός καταχωρητής περιέχει το 0 32 bits 32 bits 32 bits 32 bits 7/2/2011 cslab@ntua
14 Big Endian vs Little Endian Big Endian: H δνση του πιο σημαντικού byte (MSB) είναι και δνση της λέξης Little Endian: H δνση του λιγότερο σημαντικού byte (LSB) είναι και δνση της λέξης H λέξη αποθηκεύεται πάντα σε συνεχόμενες θέσεις: δνση, δνση+1,.., δνση+3 3 BIG_ENDIAN A[0] 0 MSB LSB A[1] 4 MSB LSB A[2] 8 MSB LSB 8 bits LITTLE_ENDIANENDIAN A[0] 0 LSB MSB A[1] 4 LSB MSB A[2] 8 LSB MSB 7/2/2011 cslab@ntua
15 MIPS ISA (βασικές εντολές) Αριθμητικές εντολές add, sub: πάντα τρία ορίσματα - ποτέ δνση μνήμης! add $s1, $s2, $s3 # $s1 = $s2+$s3 sub $s1, $s2, $s3 # $s1 = $s2-$s3 Εντολές μεταφοράς δεδομένων (load-store): Εδώ έχουμε αναφορά στη μνήμη (πόσοι τρόποι? Θα το δούμε στη συνέχεια) lw $s1, 100($s2) # $s1 = Memory(100+$s2) (load word) sw $s1, 100($s2) # Memory(100+$s2) = $s1(store word) 7/2/2011 cslab@ntua
16 Λειτουργίες υλικού υπολογιστών Αριθμητικές Πράξεις add a, b, c # a b + c a = b + c + d + e; add a, b, c add a, a, d add a, a, e 3 εντολές για το άθροισμα 4 μεταβλητών 7/2/2011 cslab@ntua
17 Παράδειγμα: Κώδικας σε C a = b + c; d = a e; Λειτουργίες υλικού υπολογιστών Μετάφραση σε κώδικα MIPS add a, b, c sub d, a, e 7/2/2011 cslab@ntua
18 Λειτουργίες υλικού υπολογιστών Παράδειγμα: f = (g + h) (i + j); Τι παράγει ο compiler? add t0, g, h # προσωρινή μεταβλητή t0 add t1, i, j # προσωρινή μεταβλητή t1 sub f, t0, t1 # το f περιέχει το t0 t1 7/2/2011 cslab@ntua
19 Λειτουργίες υλικού υπολογιστών Κατηγορία Εντολή Παράδειγμα Σημασία Σχόλια Αριθμητικές ικές Πράξεις add add a, b, c a = b + c subtract sub a, b, c a = b - c Πάντα 3 τελεστέοι Πάντα 3 τελεστέοι 7/2/2011 cslab@ntua
20 Τελεστέοι Υλικού Υπολογιστών f = (g + h) (i + j); (f,g,h,i,j) ανατίθενται σε ($s0,$s1,$s2,$s3,$s4) $t0, $t1 προσωρινοί καταχωρητές add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 7/2/2011 cslab@ntua
21 Τελεστέοι Υλικού Υπολογιστών Γλώσσες προγραμματισμού έχουν: απλές μεταβλητές σύνθετες δομές (π.χ. arrays, structs) Πώς τις αναπαριστά ένας υπολογιστής; Πάντα στη μνήμη Εντολές μεταφοράς δεδομένων 7/2/
22 Εντολές μεταφοράς δεδομένων Π.χ. Διεύθυνση του 3 στοιχείου είναι 2 Τελεστέοι Υλικού Υπολογιστών Τιμή στοιχείου Memory[2] είναι 10 7/2/2011 cslab@ntua
23 Τελεστέοι Υλικού Υπολογιστών Εντολή μεταφοράς δδ δεδομένων από τη μνήμη load καταχωρητής, σταθερά(καταχωρητής) π.χ. lw $t1, 4($s2) φορτώνουμε στον $t1 την τιμή M[$s2+4] 7/2/
24 Τελεστέοι Υλικού Υπολογιστών Παράδειγμα: Α πίνακας 100 λέξεων (4 bytes η λέξη) g, h ανατίθενται σε $1$2 $s1, $s2 αρχική διεύθυνση του A στον $s3 Μεταγλωττίστε g = h + A[8]; offset base register lw $t0, 32($s3) add $s1, $s2, $t0 7/2/2011 cslab@ntua
25 Μνήμη είναι byte addressable Τελεστέοι Υλικού Υπολογιστών Δύο διαδοχικές λέξεις διαφέρουν κατά 4 alignment restriction (ευθυγράμμιση) λέξεις ξεκινάνε πάντα σε διεύθυνση πολ/σιο του 4 7/2/2011 cslab@ntua
26 Σταθερές: Τελεστέοι Υλικού Υπολογιστών Πρόσθεση της τιμής 4 στον $s3 lw $t0, AddrConstant4($s1) add $s3, $s3, $t0 ή addi $s3, $s3, 4 Make common case FAST 7/2/2011 cslab@ntua
27 Τελεστέοι Υλικού Υπολογιστών Τελεστέοι MIPS 32 καταχωρητές $s0, $s1, θέσεις λέξεων στη μνήμη 2 32 θέσεις byte στη μνήμη 7/2/2011 cslab@ntua
28 Τελεστέοι Υλικού Υπολογιστών Συμβολική γλώσσα MIPS Παραδείγματα add $s1, $s2, $s3 sub $s1, $s2, $s3 addi $s1, $s2, 100 lw $s1, 100($s2) sw $s1,100($s2) 7/2/
29 Τελεστέοι Υλικού Υπολογιστών Πόσο γρήγορα πληθαίνουν οι καταχωρητές σε έναν επεξεργαστή; 1. Πολύ γρήγορα (Νόμος Moore, 2 ος αριθμός τρανζίστορ/18 μήνες) 2. Πολύ αργά (portable binary code) Π.χ. Θέλουμε τα προγράμματά μας να τρέχουν ρχ και στον Pentium III και στον Pentium IV 7/2/2011 cslab@ntua
30 Αναπαράσταση Εντολών στον Υπολογιστή Δυαδικά ψηφία, Δυαδικό σύστημα (binary) Υλικό υπολογιστών, υψηλή-χαμηλή τάση, κλπ. Kαταχωρητές $s0,..., $s7 αντιστοιχίζονται στους 16 ως 23 $t0,..., $t7 αντιστοιχίζονται στους 8 ως 15 7/2/2011 cslab@ntua
31 Αναπαράσταση Εντολών στον Υπολογιστή Συμβολική αναπαράσταση: add $t0, $s1, $s2 Assembly Πώς την καταλαβαίνει ο MIPS? $s1 $s2 $t0 unused add Κώδικας μηχανής bit 5 bit 5 bit 5 bit 5 bit 6 bit 7/2/2011 cslab@ntua
32 Μορφή Εντολής - Instruction Format Θυμηθείτε το 1ο κανόνα: Η ομοιομορφία των λειτουργιών συμβάλλει στην απλότητα του υλικού R-Type (register type) op rs rt rd shamt funct 6 bits 5bits 5bits 5bits 5bits 6bits Op: opcode rs,rt: register source operands Rd: register destination operand Shamt: shift amount Funct: op specific (function code) add $rd, $rs, $rt 7/2/2011 cslab@ntua
33 MIPS R Type (ALU) R-Type: Όλες οι εντολές της ALU που χρησιμοποιούν 3 καταχωρητές OP rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Παραδείγματα : add $1,$2,$3$2 $3 and $1,$2,$3$2 $3 sub $1,$2,$3 or $1,$2,$3 Destination register in rd Operand register in rt Operand register in rs 7/2/2011 cslab@ntua
34 Αναπαράσταση Εντολών στον Υπολογιστή op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit Τι γίνεται με τη load? Πώς χωράνε οι τελεστές της στα παραπάνω πεδία? Π.χ. η σταθερά της lw. lw $t1, 8000($s3) σε ποιο πεδίο χωράει; 7/2/2011 cslab@ntua
35 Ερώτηση: Μας αρκεί το R-Type? Τι γίνεται με εντολές που θέλουν ορίσματα διευθύνσεις ή σταθερές? Θυμηθείτε, θέλουμε σταθερό μέγεθος κάθε εντολής (32 bit) Απάντηση: Μάλλον όχι Άρα: H καλή σχεδίαση απαιτεί σημαντικούς συμβιβασμούς (3η αρχή) Ι-Type: op rs rt address_ offset 6 bits 5 bits 5 bits 16 bits lw $rt, address_offset($rs) Τα 3 πρώτα πεδία (op,rs, (p,, rt) έχουν το ίδιο όνομα και μέγεθος μγ όπως και πριν 7/2/2011 cslab@ntua
36 Αναπαράσταση Εντολών στον Υπολογιστή Παράδειγμα: lw $t0, 32($s3) Kαταχωρητές (σκονάκι ) $s0,..., $s7 αντιστοιχίζονται στους 16 ως 23 $t0,..., $t7 αντιστοιχίζονται στους 8 ως 15 I-format op rs rt σταθερά ή διεύθυνση 6 bit 5 bit 5 bit 16 bit xxxxxx /2/2011 cslab@ntua
37 Επεξεργαστής Αριθμός καταχωρητών γενικού σκοπού Αρχιτεκτονική EDSAC 1 accumulator 1949 IBM accumulator 1953 CDC load-store 1963 IBM register-memory 1964 DEC PDP-8 1 accumulator 1965 DEC PDP-11 8 Register-memory 1970 Intel accumulator 1972 Motorola accumulator 1974 DEC VAX 16 register-memory, memory-memory 1977 Intel extended daccumulator 1978 Motorola register-memory 1980 Intel register-memory 1985 MIPS 32 load-store 1985 HP PA-RISC 32 load-store 1986 SPARC 32 load-store 1987 PowerPC 32 load-store 1992 DEC Alpha 32 load-store 1992 Έτος 7/2/2011 cslab@ntua
38 Κανόνες Ονοματοδοσίας και Χρήση των MIPS Registers Εκτός από το συνήθη συμβολισμό των καταχωρητών με $ ακολουθούμενο από τον αριθμό του καταχωρητή, μπορούν επίσης να παρασταθούν και ως εξής : Αρ. Καταχωρητή Όνομα Χρήση Preserved on call? $zero $at $v0-$v1 $ $a0-$a3 $t0-$t7 Constant value 0 Reserved for assembler Vl Values for result and expression evaluation Arguments Temporaries n.a. όχι όχι ναι όχι $s0-$s7 $t8-$t9 Saved More temporaries ναι όχι $k0-$k1 $ Reserved for operating system ναι $gp $sp $fp Global pointer Stack pointer Frame pointer ναι ναι ναι 31 $ra Return address ναι 7/2/2011 cslab@ntua
39 MIPS I Type : Load/Store OP rs rt address 6 bits 5 bits 5 bits 16 bits address: 16 bit memory address offset in bytes added to base register. Παραδείγματα : Offset base register in rs source register in rt Store word: sw 500($4), $3 Load word: lw $1, 30($2) Destination register in rt Offset base register in rs 7/2/2011 cslab@ntua
40 MIPS ALU I Type Οι I-Type εντολές της ALU χρησιμοποιούν 2 καταχωρητές και μία σταθερή τιμή I-Type είναι και οι εντολές Loads/stores, conditional branches. OP rs rt immediate 6 bits 5 bits 5 bits 16 bits immediate: Constant second operand for ALU instruction. Παραδείγματα : add immediate: addi $1,$2,100 and immediate andi $1,$2,10 Constant operand Result register in rt in immediate Source operand register in rs 7/2/2011 cslab@ntua
41 MIPS data transfer instructions Παραδείγματα Instruction sw 500($4), $3 sh 502($2), $3 sb 41($3), $2 lw$1 $1, 30($2) lh $1, 40($3) lhu $1, 40($3) lb $1, 40($3) lbu $1, 40($3) Σχόλια Store word Store half Store byte Loadword Load halfword Load halfword unsigned Load byte Load byte unsigned lui $1, 40 Load Upper Immediate (16 bits shifted left by 16) LUI R5 R /2/
42 How about larger constants? We'd like to be able to load a 32 bit constant into a register Must use two instructions; new "load upper immediate" instruction lui $t0, filled with zeros Then must get the lower order bits right, i.e., ori $t0, $t0, ori /2/2011 cslab@ntua
43 Memory layout Topics to Review Text, data (static and heap), and the stack Procedure conventions Procedure call bookkeeping Caller Saved Registers: Return address $ra Arguments $a0, $a1, $a2, $a3 Return value $v0, $v1 $t Registers $t0 $t9 Callee Saved Registers: $s Registers $s0 $s7 Procedure structure Prologue: Body: Epilogue: allocate frame, save registers, assign locals procedure code restore registers, free frame 7/2/
44 Overview Data types Application / HLL requirements Hardware support (data and instructions) MIPS data types Support for bytes and strings Addressing Modes Data Instructions Large constants and far target addresses SPIM code 7/2/2011 cslab@ntua
45 Data Types Applications / HLL Integer Floating point Character String Date Currency Text, Objects (ADT) Blob double precision Signed, unsigned Hardware support Numeric data types Integers 8 / 16 / 32 / 64 bits Signed or unsigned Binary coded decimal (COBOL, Y2K!) Floating point 32 / 64 /128 bits Nonnumeric data types Characters Strings Boolean (bit maps) Pointers 7/2/2011 cslab@ntua
46 MIPS Data Types (1/2) Basic machine data type: 32 bit word Integers (signed or unsigned) 1,128,878,917 Floating point numbers ASCII characters C I S E Memoryaddresses (pointers) 0x Instructions 7/2/2011 cslab@ntua
47 MIPS Data Types (2/2) 16 bit constants (immediates) addi $s0, $0$10 $s1, 0x8020 lw $t0, 20($s0) Half word (16 bits) lh (lhu): load half word lh $t0, 20($s0) sh: save half word sh $t0, 20($s0) Byte (8 bits) lb (lbu): load byte sh $t0, 20($s0) sb: save byte sh $t0, 20($s0) 7/2/
48 Byte Instructions lb $s1, 4($s0) Address Memory Bytes $s0: $s1: 0x xFFFFFFAA 0x lbu $s1, 2($s0) $s0: $s1: 0x x AA 7/2/
49 String Manipulation Void strcpy (char[], char y[]) { int i; i = 0; while ((x[i]=y[i])!= 0) i = i + 1; } C convention: Null byte ( ) represents end of the string Importance of comments in MIPS! strcpy: subi $sp, $sp, 4 sw $s0, 0($sp) add $s0, $zero, $zero L1: add $t1, $a1, $s0 lb $t2, 0($t1) add $t3, $a0, $s0 sb $t2, 0($t3) beq $t2, $zero, L2 addi $s0, $s0, 1 j L1 L2: lw $s0, 0($sp) addi $sp, $sp, 4 jr $ra 7/2/2011 cslab@ntua
50 Constants Smallconstants areused frequently (50% of operands) e.g., g, A = A + 5; Solutions Put 'typical constants' in memory and load them. Create hard wired registers (like $zero) for constants like 1. MIPS Instructions: slti $8, $18, 10 andi $29, $29, 6 ori $29, $29, 0x4a addi $29, $29, /2/2011 cslab@ntua
51 Large Constants To load a 32 bit constant into a register: 1. Load (16) higher order bits lui $t0, Then must get the lower order bits right, i.e., ori $t0, $t0, $t0: ori /2/2011 cslab@ntua
52 Addressing Modes Addresses for data and instructions Data (operands and results) Registers Memory locations Constants Efficient encoding of addresses (p (space: 32 bits) Registers (32) => 5 bits to encode address Destructive instructions: reg2 = reg2 + reg1 Accumulator Stack Orthogonality of opcodes and addressing modes 7/2/2011 cslab@ntua
53 Data Addressing Modes Register addressing Themost common (fastestand and shortest) add $3, $2, $1 Base addressing Operand is at a memory location with offset lw $t0, 20 ($t1) Immediate addressing Operand is a small constant within the instruction addi $t0, $t1, 4 (signed 16 bit integer) 7/2/2011 cslab@ntua
54 Addressing 1. Immediate addressing op rs rt Immediate 2. Register addressing op rs rt rd... funct Registers Register 3. Base addressing op rs rt Address Memory Register + Byte Halfword Word 4. PC-relative addressing op rs rt Address * 4 Memory PC + Word 5. Pseudodirect addressing op Address * 4 PC Memory Word 7/2/2011 cslab@ntua
55 Instruction Addressing Modes Addresses are 32 bits long Special purpose register it PC (program counter) ) stores the address of the current instruction PC relative addressing (branches) Address: PC + (constant in the instruction) * 4 beq $t0, $t1, 20 (0x ) Pseudodirect addressing (jumps) Address: PC[31:28] : (constant in the instruction) * 4 7/2/2011 cslab@ntua
56 SPIM Code PC main [0x ] [0x ] [0x ] [0x c] [0x ] [0x ] [0x ] [0x c] [0x ] [0x ] [0x ] exit MIPS machine code Pseudo MIPS add $9, $10, $11 (0x014b4820) main: add $t1, $t2, $t3 j 0x [exit] (0x ) j exit addi $9, $10, -50 (0x2149ffce) addi $t1, $t2, -50 lw $8, 5($9) (0x8d280005) lw $t0, 5($t1) lw $8, -5($9) (0x8d28fffb) lw $t0, -5($t1) bne $8, $9, 20 [exit-pc] (0x ) bne $t0, $t1, exit addi $9, $10, 50 (0x ) addi $t1, $t2, 50 bne $8, $9, -28 [main-pc] (0x1509fff9) bne $t0, $t1, main lb $8, -5($9) (0x8128fffb) lb $t0, -5($t1) j 0x [main] (0x ) j main add $9, $10, $11 (0x014b4820) exit: add $t1, $t2, $t3 7/2/2011 cslab@ntua
57 Far Target Address 0x Text Segment (252MB) (0x07fe0000) PC (0x ) beq $s0, $s1, L1 (0x ) bne $s0, $s1, L2 (0x ) L1: j L1 L2: 0x /2/2011 cslab@ntua
58 Overview Pointers (addresses) and values Argument passing Storage lifetime and scope Pointer arithmetic Pointers and arrays Pointers in MIPS 7/2/
59 Pointers Pointer: a variable that contains the address of another variable HLL version of machine language memory address Why use Pointers? Sometimes only way to express computation Often more compact and efficient code Why not? Huge source of bugs in real software, perhaps the largest single source 1) Dangling reference (premature free) 2) Memory leaks (tardy free): can't have long-running jobs without periodic restart of them 7/2/2011 cslab@ntua
60 C Pointer Operators Suppose c has value 100, it is located in memory at address 0x Unary operator & gives address: p = &c; gives address of c to p; p points to c (p == 0x ) Unary operator * gives value that pointer points to if p = &c =>* p == 100 (Dereferencing a pointer) Deferencing data transfer in assembler... =... *p...;; load (get value from location pointed to by p) *p =...; store (put value into location pointed to by p) 7/2/2011 cslab@ntua
61 Pointer Arithmetic int x = 1, y = 2; /* x and y are integer variables */ int z[10]; /* an array of 10 ints, z points to start */ int *p; /* p is a pointer to an int */ p: x = 21; /* assigns x the new value 21 */ z[0] = 2; z[1] = 3 /* assigns 2 to the first, 3 to the next */ p = &z[0]; /* p refers to the first element of z */ 4 p = z; /* same thing; p[ i ] == z[ i ]*/ z[1] 3 p = p+1; /* now it points to the next element, z[1] */ z[0] 2 p++; /* now it points to the one after that, z[2] */ y: 2 *p = 4; /* assigns 4 to there, z[2] == 4*/ p = 3; /* bad idea! Absolute address!!! */ x: 21 p = &x; /* p points to x, *p == 21 */ z = &y illegal!!!!! array name is not a variable 7/2/2011 cslab@ntua
62 Assembly Code c is int, has value 100, in memory at address 0x , p in $a0, x in $s0 1.p = &c; /* p gets 0x */ lui $a0,0x1000 # p = 0x x = *p; /* x gets 100 */ lw $s0, 0($a0) # dereferencing p 3. *p = 200; /* c gets 200 */ addi $t0,$0,200 sw $t0, 0($a0) # dereferencing p 7/2/2011 cslab@ntua
63 Example int strlen(char *s) { char *p = s; /* p points to chars */ while (*p!= \0 ) p++; /* points to next char */ return p - s; /* end - start */ } mov $t0,$a0 lbu $t1,0($t0) /* derefence p */ beq $t1,$zero, Exit Loop:addi $t0,$t0,1 /* p++ */ lbu $t1,0($t0) /* derefence p */ bne $t1,$zero, Loop Exit:sub $v0,$t0,$a0 jr $ra 7/2/2011 cslab@ntua
64 Argument Passing Options 2 choices Call by Value :passacopy a of the item to the function/procedure Call by Reference : pass a pointer to the item to the function/procedure Single word variables passed by value Passing an array? e.g., a[100] Pascal (call by value) copies 100 words of a[] onto the stack C (call by reference) passes a pointer (1 word) to the array a[] in a register 7/2/2011 cslab@ntua
65 Lifetime of Storage and Scope Automatic (stack allocated) Typical llocal lvariables of a function Created upon call, released upon return Scope is the function Heap allocated Created upon malloc, released upon free Referenced via pointers External l/ static ti Exist for entire program Code Static Heap Stack 7/2/2011 cslab@ntua
66 Arrays, Pointers, and Functions 4 versions of array function that adds two arrays and puts sum in a third array (sumarray) 1. Third array is passed to function 2. Ui Using a local l array (on stack) k)for result and passing a pointer to it 3. Third array is allocated on heap 4. Third array is declared static Purpose of example is to show interaction ti of fc statements, pointers, and memory allocation 7/2/2011 cslab@ntua
67 Version 1 int x[100], y[100], z[100]; sumarray(x, y, z); C calling convention means: sumarray(&x[0], &y[0], &z[0]); Really passing pointers to arrays addi $a0,$gp,0 # x[0] starts at $gp addi $a1,$gp,400 # y[0] above x[100] addi $a2,$gp,800 # z[0] above y[100] jal sumarray 7/2/2011 cslab@ntua
68 Version1: Compiled Code void sumarray(int a[], int b[], int c[]) { int i; for(i = 0; i < 100; i = i + 1) c[i] = a[i] + b[i]; } addi $t0,$a0,400 # beyond end of a[] Loop: beq $a0,$t0,exit lw $t1, 0($a0) # $t1=a[i] lw $t2, 0($a1) # $t2=b[i] add $t1,$t1,$t2 # $t1=a[i] + b[i] sw $t1, 0($a2) # c[i]=a[i] [ ] + b[i] addi $a0,$a0,4 # $a0++ addi $a1,$a1,4 # $a1++ addi $a2,$a2,4 # $a2++ j Loop Exit: jr $ra 7/2/2011 cslab@ntua
69 Version 2 int *sumarray(int a[],int b[]) { int i, c[100]; for(i=0;i<100;i=i+1) addi $t0,$a0,400 # beyond end of a[] addi $sp,$sp,-400 # space for c addi $t3,$sp,0 $sp # ptr for c c[i] = a[i] + b[i]; return c; addi $v0,$t3,0 # $v0 = &c[0] Loop: beq $a0,$t0,exit } lw $t1, 0($a0) # $t1=a[i] lw $t2, 0($a1) # $t2=b[i] add $t1,$t1,$t2 # $t1=a[i] + b[i] sw $t1, 0($t3) # c[i]=a[i] a[i]+b[i] addi $a0,$a0,4 # $a0++ $sp addi $a1,$a1,4 # $a1++ c[100] addi $t3,$t3,4 # $t3++ j Loop a[100] Exit: addi $sp,$sp, 400 # pop stack B[100] jr $ra 7/2/2011 cslab@ntua
70 Version 3 int * sumarray(int a[],int b[]) { int i; Code int *c; c = (int *) malloc(100); for(i=0;i<100;i=i+1) c[i] = a[i] + b[i]; return c; } Heap Static c[100] Not reused unless freed Can lead to memory leaks Java, Scheme have garbage collectors to reclaim free space Stack 7/2/2011 cslab@ntua
71 Version 3: Compiled Code addi $t0,$a0,400 # beyond end of a[] addi $sp,$sp, -12 # space for regs sw $ra, 0($sp) # save $ra sw $a0, 4($sp) # save 1st arg. sw $a1, 8($sp) # save 2nd arg. addi $a0,$zero,400 jal malloc addi $t3,$v0,0 # ptr for c lw $a0, 4($sp) # restore 1st arg. lw $a1, 8($sp) # restore 2nd arg. Loop: beq $a0,$t0,exit... (loop as before on prior slide ) j Loop Exit:lw $ra, 0($sp) # restore $ra addi $sp, $sp, 12 # pop stack jr $ra 7/2/2011 cslab@ntua
72 Version 4 int * sumarray(int a[],int b[]) { int i; static int c[100]; } for(i=0;i<100;i=i+1) c[i] = a[i] + b[i]; return c; Compiler allocates once for function, space is reused Will be changed next time sumarray invoked Why describe? used in C libraries Code Static c[100] Heap Stack 7/2/2011 cslab@ntua
73 Review MIPS operands Name Example Comments $s0-$s7, $t0-$t9, $zero, Fast locations for data. In MIPS, data must be in registers to perform 32 registers $a0-$a3, $v0-$v1, $gp, arithmetic. MIPS register $zero alw ays equals 0. Register $at is $fp, $sp, $ra, $at reserved for the assembler to handle large constants. Memory[0], Accessed only by data transfer instructions. MIPS uses byte addresses, so 2 30 memory Memory[4],..., sequential words differ by 4. Memory holds data structures, such as arrays, words Memory[ ] and spilled registers, such as those saved on procedure calls. 7/2/2011 cslab@ntua
74 Review MIPS assembly language Category Instruction Example Meaning Comments add add $s1, $s2, $s3 $s1 = $s2 + $s3 Three operands; data in registers Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers add immediate addi $s1, $s2, 100 $s1 = $s Used to add constants load word lw $s1, 100($s2) $s1 = Memory[$s ] Word from memory to register store word sw $s1, 100($s2) Memory[$s ] = $s1 Word from register to memory Data transfer load byte lb $s1, 100($s2) $s1 = Memory[$s ] Byte from memory to register store byte sb $s1, 100($s2) Memory[$s ] = $s1 Byte from register to memory load upper immediate lui $s1, 100 $s1 = 100 * 2 16 Loads constant in upper 16 bits branch on equal beq $s1, $s2, 25 if ($s1 == $s2) go to PC branch on not equal bne $s1, $s2, 25 if ($s1!= $s2) go to Conditional PC branch set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = 0 Equal test; PC-relative branch Not equal test; PC-relative Compare less than; for beq, bne set less than immediate slti $s1, $s2, 100 if ( $s2 < 100) $s1 = 1; else $s1 = 0 Compare less than constant jump j 2500 go to Jump to target address Uncondi- jump register jr $ra go to $ra For switch, procedure return tional jump jump and link jal 2500 $ra = PC + 4; go to For procedure call 7/2/2011 cslab@ntua
75 Conclusions Data can be anything Datatyping restricts data representations Applications restrict datatyping MIPS Datatypes: Number, String, Boolean Addressing: Pointers, Values Many addressing modes (direct, indirect, ) Memory based address storage (jr instruction) Arrays: big chunks of memory Pointers versus stack storage Be careful of memory leaks! 7/2/2011 cslab@ntua
76 Αναπαράσταση Εντολών στον Υπολογιστή εντολή μορφή op rs rt rd shamt funct address add R 0 reg reg reg 0 32 ten δ.ε. sub R 0 reg reg reg 0 34 ten δ.ε. addi I 8 ten reg reg δ.ε. δ.ε. δ.ε. σταθ. lw I 35 ten reg reg δ.ε. δ.ε. δ.ε. διευθ. sw I 43 ten reg reg δ.ε. δ.ε. δ.ε. διευθ. 7/2/2011 cslab@ntua
77 Αναπαράσταση Εντολών στον Υπολογιστή Παράδειγμα: $t1 περιέχει base address πίνακα Α(32 bit/στοιχείο ί Α[i]) $s2 αντιστοιχίζεται στη μεταβλητή h Μεταγλωττίστε το A[300] = h + A[300]; lw $t0, 1200($t1) add $t0, $s2, $t0 sw $t0, 1200($t1) 7/2/2011 cslab@ntua
78 Αναπαράσταση Εντολών στον Υπολογιστή Παράδειγμα (συνέχεια): lw $t0, 1200($t1) add $t0, $s2, $t0 sw $t0, 1200($t1) Κώδικας Μηχανής?? op rs rt rd shamt funct /2/2011 cslab@ntua
79 Αναπαράσταση Εντολών στον Υπολογιστή Παράδειγμα (συνέχεια): op rs rt rd shamt funct op rs rt rd shamt funct /2/2011 cslab@ntua
80 Αναπαράσταση Εντολών στον Υπολογιστή Έννοια αποθηκευμένου προγράμματος Ο υπολογιστής κάνει πολλές εργασίες φορτώνοντας δεδομένα στο μνήμη. Δεδομένα και εντολές είναι στοιχεία στη μνήμη. Π.χ. compilers μεταφράζουν στοιχεία σε κάποια άλλα στοιχεία. 7/2/
81 Λογικές Λειτουργίες (Πράξεις) Λογικές Λειτουργίες Τελεστές C Εντολές MIPS Shift left << Shift right >> Sll (shift left logical) Srl (shift right logical) AND & and, andi OR or, ori NOT ~ nor 7/2/2011 cslab@ntua
82 SHIFT Λογικές Λειτουργίες (Πράξεις) $s0: = 9 ten sll $t2, $s0, 4 Κάνουμε shift αριστερά το περιεχόμενο του $s0 κατά 4 θέσεις = 144 ten και τοποθετούμε το αποτέλεσμα στον $t2.!!το περιεχόμενο του $s0 μένει αμετάβλητο!! 7/2/2011 cslab@ntua
83 SHIFT sll $t2, $s0, 4 Λογικές Λειτουργίες (Πράξεις) Kαταχωρητές (σκονάκι ) $s0,..., $s7 αντιστοιχίζονται στους 16 ως 23 $t0,..., $t7 αντιστοιχίζονται στους 8 ως 15 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit op rs rt rd shamt funct sll: opcode=0 0, funct=0 7/2/2011 cslab@ntua
84 AND, OR Λογικές Λειτουργίες (Πράξεις) $t2: $t1: and $t0, $t1, $t2 # Μάσκα $t0: or $t0, $t1, $t2 $t0: /2/2011 cslab@ntua
85 Λογικές Λειτουργίες (Πράξεις) NOT, NOR $t1: $t3: not $t0, $t1 δεν υπάρχει γιατί θέλουμε πάντα 2 καταχωρητές source. Άρα χρησιμοποιούμε τη nor: A NOR 0 = NOT (A OR 0) = NOT A nor $t0, $t1, $t3 $t0: /2/2011 cslab@ntua
86 MIPS Arithmetic Instructions Παραδείγματα Instruction Παράδειγμα Έννοια Σχόλια add add$1,$2,$3 $1 = $2 + $3 3 operands; exception possible subtract sub $1,$2,$3 $1 = $2 $3 3 operands; exception possible add immediate addi $1,$2,100 $1 = $ constant; exception possible add unsigned addu $1,$2,$3 $1 = $2 + $3 3 operands; no exceptions subtract t unsigned subu $1,$2,$3 $2 $3 $1 = $2 $3 3 operands; no exceptions add imm. unsign. addiu $1,$2,100 $1 = $ constant; no exceptions multiply mult $2,$3 Hi, Lo = $2 x $3 64 bit signed product multiply pyunsigned multu$2,$3 Hi, Lo = $2 x $3 64 bit unsigned product divide div $2,$3 Lo = $2 $3, Lo = quotient, Hi = remainder Hi = $2 mod $3 divide unsigned divu $2,$3 Lo = $2 $3, Unsigned quotient & remainder Hi = $2 mod $3 Move from Hi mfhi $1 $1 = Hi Used to get copy of Hi Move from Lo mflo $1 $1 = Lo Used to get copy of Lo 7/2/2011 cslab@ntua
87 MIPS Logic/Shift Instructions Παραδείγματα Instruction Παράδειγμα Έννοια Σχόλια and and $1,$2,$3 $1 = $2 & $3 3 reg. operands; Logical AND or or $1,$2,$3 $1 = $2 $3 3 reg. operands; Logical OR xor xor $1,$2,$3 $1 = $2 $3 3 reg. operands; Logical XOR nor nor $1,$2,$3 $1 = ~($2 $3) 3 reg. operands; Logical NOR and immediate andi $1,$2,10 $1 = $2 & 10 Logical AND reg, constant or immediate ori $1,$2,10 $1 = $2 10 Logical OR reg, constant xor immediate xori $1, $2,10 $1 = ~$2 &~10 Logical XOR reg, constant shift left logical sll $1,$2,10 $1 = $2 << 10 Shift left by constant shift right logical srl $1,$2,10 $1 = $2 >> 10 Shift right by constant shift right ihtarithm. sra $1,$2,10 $2 10 $1 = $2 >> 10 Shift right iht(i (sign extend) shift left logical sllv $1,$2,$3 $1 = $2 << $3 Shift left by variable shift right logical srlv $1,$2, $3 $1 = $2 >> $3 Shift right by variable shift right arithm. srav $1,$2, $2 $3 $1 = $2 >> $3 Shift right arith. by variable 7/2/2011 cslab@ntua
88 beq, bne Εντολές Λήψης Αποφάσεων beq reg1, reg2, L1 #branch if equal Αν οι καταχωρητές reg1 και reg2 είναι ίσοι, πήγαινε στην ετικέτα L1 bne reg1, reg2, L1 #branch if not equal Αν οι καταχωρητές reg1 και reg2 δεν είναι ίσοι, πήγαινε στην ετικέτα L1 7/2/
89 Εντολές Λήψης Αποφάσεων Παράδειγμα: if(i == j) f = g + h; else f = g h; με f, g, h, i, j αντιστοιχούνται σε $s0,..., $s4 version 1 bne $s3, $s4, Else add $s0, $s1, $s2 j Exit Else:sub $s0, $s1, $s2 Exit: version 2 beq $s3, $s4, Then sub $s0, $s1, $s2 j Exit Then: add $s0, $s1, $s2 Exit: 7/2/2011 cslab@ntua
90 Βρόχοι (Loops) Εντολές Λήψης Αποφάσεων while e(save[i] == k) i += 1; με i = $s3, k = $s5, save base addr = $s6 Loop: sll $t1, $s3, 2 #πολ/ζω i επί 4 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit addi $s3, $s3, 1 j Loop Exit: 7/2/2011 cslab@ntua
91 Συγκρίσεις slt $t0, $s3, $s4 Εντολές Λήψης Αποφάσεων # set on less than Ο καταχωρητής $t0 τίθεται με 1 αν η τιμή στον $s3 είναι μικρότερη από την τιμή στο $s4. Σταθερές ως τελεστέοι είναι δημοφιλείς στις συγκρίσεις slti $t0, $s2, 10 # set on less than # immediate Ο καταχωρητής $t0 τίθεται με 1 αν η τιμή στον $s2 είναι μικρότερη από την τιμή 10. 7/2/2011 cslab@ntua
92 MIPS Branch, Compare, Jump Παραδείγματα Instruction Παράδειγμα Έννοια branch on equal beq $1,$2,100 if ($1 == $2) go to PC Equal test; PC relative branch branch on not eq. bne $1,$2,100 if ($1!= $2) go to PC Not equal test; PC relative branch set on less than slt $1,$2,$3 if ($2 < $3) $1=1; else $1=0 Compare less than; 2 s comp. set less than imm. slti $1,$2,100 if ($2 < 100) $1=1; else $1=0 Compare < constant; 2 s comp. set less than uns. sltu $1,$2,$3 if ($2 < $3) $1=1; else $1=0 Compare less than; natural numbers set l. t. imm. uns. sltiu li $1,$2,100$ if ($2 < 100) $1=1; else $1=0 Compare < constant; natural numbers jump j go to Jump to target address jump register jr $31 go to $31 For switch, procedure return jump and link jal $31 = PC + 4; go to For procedure call 7/2/2011 cslab@ntua
93 Εντολές διακλάδωσης-branching instructions branch if equal beq $s3, 4s4, L1 # goto L1 if $s3 equals $s4 branch if!equal bne $s3, 4s4, L1 # goto L1 if $s3 not equals $s4 unconditional Jump jr $t1 # goto $t1... είναι I Type εντολές slt $t0, $s3, $s4 #set $t0 to 1 if $s3 is less than $s4;else set $t0 to 0 Όμως: j L1 # goto L1 Πόσο μεγάλο είναι το μήκος του address L1; Πόσο «μεγάλο» μπορεί να είναι το άλμα; 7/2/2011 cslab@ntua
94 MIPS Branch I Type OP rs rt address 6 bits 5 bits 5 bits 16 bits address: 16 bit memory address branch target offset in words added d to PC to form branch address. Παραδείγματα : Register in rs Final offset is calculated in bytes, equals to Register in rt {instruction field address} x 4, e.g. new PC = PC Branch on equal beq $1,$2,100 Branch on not equal bne $1,$2,100 7/2/2011 cslab@ntua
95 MIPS J Type J-Type: jump j, jump and link jal OP jump target 6 bits 26 bits jump target: jump memory address in words. Παραδείγματα : final jump memory address in bytes is calculated from {jump target} x 4 Branch on equal j Branch on not equal jal /2/2011 cslab@ntua
96 Other Jump Instructions Jump (J type): j # jump to address Jump Register (NB: R type!): jr rs # jump to 32 bit address in register rs Jump and Link (J type): jal # jump to and save PC in R31 Use jal for procedure calls, it saves the return address (PC+4) in register 31 ($ra) Use jr $ra to return from subroutine Nested procedures must save $ra on a stack, and should use registers it $sp (stack pointer) and $fp (frame pointer) manage the stack. 7/2/2011 cslab@ntua
97 Summary of MIPS instruction formats R type (add, sub, slt, jr) op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits I type (beq, bne + addi, lui + lw, sw) op rs rt immediate value / address offset 6 bits 5 bits 5 bits 16 bits J type (j, jl) jal) op jump target address 6 bits 26 bits 7/2/2011 cslab@ntua
98 Απ ευθείας διευθυνσιοδότηση- Σταθερές Οι πιο πολλές αριθμητικές εκφράσεις σε προγράμματα, περιέχουν σταθερές: ρςπ.χ. index++ Στον κώδικα του gcc: 52% εκφράσεων έχουν constants Στον κώδικα του spice: 69% των εκφράσεων! Τι κάνουμε με τις σταθερές (και αν είναι >16bit;) Θέλουμε: $s3=$s3+2 lw $t0, addr_of_constant_2($zero) add $s3,$s3,$t0 Αλλιώς: addi $s3,$s3,2 (add immediate) Όμοια: slti $t0,$s2, 10 # $t0=1 if $s2<10 7/2/2011 cslab@ntua
99 Τρόποι Διευθυνσιοδότησης στον MIPS: 1. Register Addressing 2. Base or Displacement Addressing 3. Immediate Addressing 4. PC-relative addressing (address is the sum of the PC and a constant in the instruction) 5. Pseudodirect addressing (the jump address is the 26 bits of the instruction, concatenated with the upper bits of the PC) 7/2/2011 cslab@ntua
100 1. Immediate addressing op rs rt Immediate addi $rt,$rs,immediate π.χ. lui $t0, 255 slti $t0, $s1, 10 I-Type 2. Register addressing op rs rt rd... funct 3. Base addressing op rs rt Address add $rd,$rs,$rt π.χ. add $t0,$s1,$s2 Registers Register Memory R-Type Register + Byte Halfword Word I-Type lw $rt,address($rs) π.χ. lw $t1,100($s2) 4. PC-relative addressing op rs rt Address Memory PC + Word I-Type bne $rs,$rt,address # goto {4 x address (0:15)} π.χ. bne $s0,$s1,l2 5. Pseudodirect addressing op Address Memory PC Word J-Type j address # goto {4 x address(0:25)}(0:27)-(28:31)(pc) 7/2/2011 cslab@ntua
101 Addressing Modes : Παραδείγματα Addr. mode Παράδειγμα Έννοια χρήση Register add r4,r3 Regs[r4] Regs[r4]+ Regs[r3] a value is in register Immediate add r4,#3 Regs[r4] Regs[r4]+3 for constants Displacement add r4,100(r1) Regs[r4] Regs[r4]+Mem[100+ Regs[r1]] local variables Reg. indirect add r4,(r1) Regs[r4] Regs[r4]+Mem[Regs[r1]] accessing using a pointer or comp. address Indexed add r4,(r1+r2) Regs[r4] Regs[r4]+Mem[Regs[r1]+ array addressing (base +offset) Regs[r2]] Direct add r4,(1001) Regs[r4] Regs[r4]+Mem[1001] addr. static data Mem. Indirect add r4,@(r3) Regs[r4] Regs[r4]+Mem[Mem[Regs[r3]]] g[ [ [ g[ ]]] if R3 keeps the address of a pointer p, this yields *p Autoincrement add r4,(r3)+ Regs[r4] Regs[r4]+Mem[Regs[r3]] Regs[r3] Regs[r3]+d Autodecrement add r4,-(r3) Regs[r3] Regs[r3]-d Regs[r4] Regs[r4]+Mem[Regs[r3]] stepping through arrays within a loop; d defines size of an element similar as previous Scaled add r4,100(r2)[r3] Regs[r4] g[ Regs[r4]+ g[ to index arrays Mem[100+Regs[r2]+Regs[r3]*d] 7/2/2011 cslab@ntua
-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)
Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών,
Διαβάστε περισσότεραΟργάνωση Υπολογιστών
Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών,
Διαβάστε περισσότερα-Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)
Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών,
Διαβάστε περισσότερα-Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)
Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών,
Διαβάστε περισσότεραΠεριγραφή αρχιτεκτονικής MIPS MIPS assembly (1o και 2o μέρος)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης Περιγραφή αρχιτεκτονικής MIPS MIPS assembly (1o και 2o μέρος) Άδεια Χρήσης Το
Διαβάστε περισσότεραΑρχιτεκτονικές Συνόλου Εντολών
Αρχιτεκτονικές Συνόλου Εντολών Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών MIPS ISA
Αρχιτεκτονική Υπολογιστών MIPS ISA 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΑρχιτεκτονικές Συνόλου Εντολών
Αρχιτεκτονικές Συνόλου Εντολών Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος
Διαβάστε περισσότεραΑρχιτεκτονικές Συνόλου Εντολών
Αρχιτεκτονικές Συνόλου Εντολών Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος
Διαβάστε περισσότεραΑρχιτεκτονικές Συνόλου Εντολών
Αρχιτεκτονικές Συνόλου Εντολών Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος
Διαβάστε περισσότεραΕντολές του MIPS (2)
ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3
Διαβάστε περισσότεραΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)
ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Y Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3 = &A[0] = 0x0001080 &A[8]
Διαβάστε περισσότεραΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1
ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1 Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Σύνολο Εντολών Το ρεπερτόριο
Διαβάστε περισσότεραLANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή
INSTRUCTIONS LANGUAGE OF THE MACHINE Οργάνωση Υπολογιστή Τυπική οργάνωση υπολογιστή 1 Εκτέλεση προγραμμάτων σε υπολογιστή INSTRUCTION SET Οι λέξεις στη γλώσσα μηχανής ονομάζονται εντολές (instructions)
Διαβάστε περισσότεραChapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:
Διαβάστε περισσότεραΣύγχρονες Αρχιτεκτονικές Υπολογιστών
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής
Διαβάστε περισσότεραΕισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 2 ο Σύνολα Εντολών Οι εντολές που εκτελεί ο κάθε επεξεργαστής (ή οικογένεια επεξεργαστών) MIPS ARM SPARC PowerPC IA-32 Αρχιτεκτονικές συνόλου εντολών Βασικές Έννοιες Εντολές μηχανής
Διαβάστε περισσότεραO επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,
Διαβάστε περισσότεραΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly
ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly Αρης Ευθυμίου Το σημερινό μάθημα! Σύνταξη εντολών! Θέματα σχετικά με τη προσπέλαση, οργάνωση μνήμης διευθύνση για κάθε byte διευθύνσεις λέξεων
Διαβάστε περισσότεραChapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:
Διαβάστε περισσότεραChapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Τρίτη (3 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο
Διαβάστε περισσότεραO επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,
Διαβάστε περισσότερακαι η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath
O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I
Διαβάστε περισσότεραChapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:
Διαβάστε περισσότεραChapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:
Διαβάστε περισσότεραΔιαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4
ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 4 Διαδικασίες Ι Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Εισαγωγή στους Η/Υ (ΗΥ134) 1 Διευθυνσιοδότηση διακλαδώσεων
Διαβάστε περισσότεραΕργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1
Εργαστήριο Αρ. 1 Εισαγωγή στην Αρχιτεκτονική MIPS Πέτρος Παναγή Σελ. 1 Πώς Δημιουργείτε ένα Executable Αρχείο Source File: Ένα TEXT αρχείο με τον πυγαίο κώδικα. Assemble: Μεταφράζει τις assembly εντολές
Διαβάστε περισσότεραΔιαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5
ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 5 Διαδικασίες ΙI Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Εισαγωγή στους Η/Υ (ΗΥ134) 1 Κατανομή μνήμης Κείμενο
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραμε έμφαση στο MIPS R2000
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ενότητα 3 Αρχιτεκτονικές Συνόλου Εντολών με έμφαση στο MIPS R2000 Καθηγητής Αντώνης Πασχάλης
Διαβάστε περισσότεραΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος
ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος Ε.1 Σας δίνεται ο πιο κάτω κώδικας. Ξαναγράψτε τον ώστε να μειωθεί ο αριθμός των εντολών του αλλά διατηρώντας την ίδια λειτουργιά
Διαβάστε περισσότεραΚεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή
Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Σύνολο εντολών Σύνολο εντολών (Instruction set) Το «ρεπερτόριο» των εντολών ενός υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με
Διαβάστε περισσότεραΚεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή
Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Σύνολο εντολών Σύνολο εντολών (Instruction set) Το «ρεπερτόριο» των εντολών ενός υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με
Διαβάστε περισσότεραSingle Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης
Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Single Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότερα6. Επιστροφή ελέγχου στο σημείο εκκίνησης
Υποστήριξη διαδικασιών στο υλικό των υπολογιστών Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1. Τοποθέτηση παραμέτρων 2. Μεταβίβαση ελέγχου στη διαδικασία 3. Λήψη πόρων αποθήκευσης 4. Εκτέλεση επιθυμητής
Διαβάστε περισσότεραΤέτοιες λειτουργίες γίνονται διαμέσου του
Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου
Διαβάστε περισσότεραΕισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 3-4: Προγραμματισμός MIPS Προγραμματισμός σε Συμβολική Γλώσσα Η συμβολική γλώσσα: δεν έχει τύπους, δεν έχει δηλώσεις μεταβλητών, δεν έχει δομές ελέγχου, δεν έχει εντολές βρόχων,
Διαβάστε περισσότεραΚεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)
Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) 1 Ανακοινώσεις Ιστοσελίδα μαθήματος ΗΜΥ 212, ενημερώνεται συχνά: http://www.ece.ucy.ac.cy/courses/ece212/ Ιστοσελίδα εργαστηρίου
Διαβάστε περισσότεραΣυναρτήσεις-Διαδικασίες
ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 4 Συναρτήσεις-Διαδικασίες Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Διαδικασίες (procedures) Γνωστές και σαν υπορουτίνες (subroutines)
Διαβάστε περισσότεραΥποστήριξη διαδικασιών στο υλικό των υπολογιστών
Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1. Τοποθέτηση παραμέτρων 2. Μεταβίβαση ελέγχου στη διαδικασία 3. Λήψη πόρων αποθήκευσης 4. Εκτέλεση επιθυμητής εργασίας 5. Τοποθέτηση αποτελέσματος σε
Διαβάστε περισσότεραΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2
ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 5ο μάθημα:αρχές, ιδιότητες αρχιτεκτονικού συνόλου εντολών (ISA) Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Εσωτερική αποθήκευση
Διαβάστε περισσότεραChapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:
Διαβάστε περισσότεραΠΛΕ- 027 Μικροεπεξεργαστές
ΠΛΕ- 027 Μικροεπεξεργαστές 3ο μάθημα: γλώσσα μηχανής MIPS, προγραμματισμός assembly Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Stored Program Computers Αναπαράσταση
Διαβάστε περισσότεραMIPS functions and procedures
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης MIPS functions and procedures Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠροχωρηµένα Θέµατα Αρχιτεκτονικής
Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1 Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές
Διαβάστε περισσότεραΚεφάλαιο 3. Αριθμητική Υπολογιστών Review. Hardware implementation of simple ALU Multiply/Divide Real Numbers
Κεφάλαιο 3 Αριθμητική Υπολογιστών Review signed numbers, 2 s complement, hex/dec/bin, add/subtract, logical Hardware implementation of simple ALU Multiply/Divide Real Numbers 1 Προσημασμένοι και Απρόσημοι
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠαραδείγματα Assembly (Μέρος
Παραδείγματα Assembly (Μέρος Β) 1 Άσκηση 1 Γράψτε ένα πρόγραμμα (4 εντολών) με το οποίο μπορείτε να προσθέσετε το περιεχόμενο των θέσεων μνήμης 0Χ30000000 και 0Χ30000001. Το αποτέλεσμα να αποθηκευτεί ως
Διαβάστε περισσότεραadd $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;
Άσκηση 1 η Μέρος Α Ζητούμενο: Δίνεται το παρακάτω πρόγραμμα σε C καθώς και μια μετάφραση του σε assembly MIPS. Συμπληρώστε τα κενά. Σας υπενθυμίζουμε ότι ο καταχωρητής $0 (ή $zero) είναι πάντα μηδέν. int
Διαβάστε περισσότεραΗ διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 2. Εντολές : Η γλώσσα του υπολογιστή
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Δεύτερη (2 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο
Διαβάστε περισσότεραΠΛΕ- 027 Μικροεπεξεργαστές
ΠΛΕ- 027 Μικροεπεξεργαστές 2ο μάθημα: γλώσσα μηχανής MIPS, προγραμματισμός assembly Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Σύνολο εντολών μηχανής Το λεξιλόγιο
Διαβάστε περισσότερα; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΗ διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το
Διαβάστε περισσότεραΚεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)
Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) 1 Τι θα μάθουμε σε αυτό το Κεφάλαιο: Instructions (Εντολές): the words of the computer language human form: Assembly language
Διαβάστε περισσότεραΑρχιτεκτονικές Συνόλου Εντολών (ΙΙ)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική
Διαβάστε περισσότεραΤελική Εξέταση, Απαντήσεις/Λύσεις
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 Τελική Εξέταση, Απαντήσεις/Λύσεις Άσκηση 1: Assembly για
Διαβάστε περισσότεραΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ
ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Intel x86 ISA Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ RISC vs. CISC Η assembly των επεξεργαστών ARM, SPARC (Sun), και Power (IBM) είναι όμοιες
Διαβάστε περισσότεραΕπεξεργαστής Υλοποίηση ενός κύκλου μηχανής
ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική
Διαβάστε περισσότεραΟργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή
Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Ασκήσεις Η αρίθµηση των ασκήσεων είναι από την 4 η έκδοση του «Οργάνωση και Σχεδίαση
Διαβάστε περισσότεραΑρχιτεκτονική υπολογιστών
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Ευάγγελος Καρβούνης Παρασκευή, 15/01/2016 Τι είναι ομάδα εντολών;
Διαβάστε περισσότεραΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος
ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών
Διαβάστε περισσότεραΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 2 Εντολές: H γλώσσα μηχανής
ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 2 Εντολές: H γλώσσα μηχανής Αρχιτεκτονική Σύνολο Εντολών MIPS (assembly) αναπαράσταση στο υλικό (ΜIPS) μετάφραση από HLL σε LLL Δομές ελέγχου
Διαβάστε περισσότερα1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις Άσκηση 1: Σωστό/Λάθος
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Κεφάλαιο 2 Ασκήσεις Άσκηση 1 Κώδικας C: f = g + h + B[4]; f = g A[B[4]]; f, g, h, στους $s0, $s1, $s2, και διευθύνσεις βάσης των πινάκων Α και Β στους $s6 και $s7 Ποιος είναι ο αντίστοιχος κώδικας MIPS;
Διαβάστε περισσότεραΕντολές γλώσσας μηχανής
Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών
ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Αποκωδικοποίηση Εντολής x86 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
Διαβάστε περισσότεραΕπεξεργαστής Υλοποίηση ενός κύκλου μηχανής
ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική
Διαβάστε περισσότεραΟργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΑρχιτεκτονικζσ Συνόλου Εντολϊν
Αρχιτεκτονικζσ Συνόλου Εντολϊν Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμόσ εντολών Μορφή Εντολών: μεταβλθτό ι ςτακερό μζγεκοσ
Διαβάστε περισσότεραΑπλός επεξεργαστής (Επανάληψη)
Απλός επεξεργαστής (Επανάληψη) Διάδρομος δεδομένων και μονάδα ελέγχου 4 ο κεφάλαιο Ο επεξεργαστής : Διάδρομος Δεδομένων και Έλεγχος Σε αυτό το κεφάλαιο θα μελετήσουμε την υλοποίηση του διαδρόμου δεδομένων
Διαβάστε περισσότεραΕντολές: H γλώσσα μηχανής
Εντολές: H γλώσσα μηχανής Αρχιτεκτονική Σύνολο Εντολών MIPS (assembly) αναπαράσταση στο υλικό (ΜIPS) μετάφραση από HLL σε LLL Δομές ελέγχου και βασικοί τύποι δεδομένων Κεφ. 2 + APPENDIX B 2.1-2.10,2.13,
Διαβάστε περισσότεραΕργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πώς Δημιουργείτε ένα Executable Αρχείο
Εργαστήριο Αρ. 1 Εισαγωγή στην Αρχιτεκτονική MPS Πέτρος Παναγή Σελ. 1 Πώς Δημιουργείτε ένα Executable Αρχείο Source File: Ένα TEXT αρχείο με τον πυγαίο κώδικα. Assemble: Μεταφράζει τις assembly εντολές
Διαβάστε περισσότεραΤεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1
Τεχνολογίες ημιαγωγών Chapter 2 Instructions: Language of the Computer 1 Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες
Διαβάστε περισσότεραChapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy
Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ.
Διαβάστε περισσότεραΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.
ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2. Pipelining (Αν υπάρχει χρόνος) Θα ξαναπάμε πίσω στο Κεφ.3αργότερα. ΕΠΛ 221--
Διαβάστε περισσότεραΘέµατα Φεβρουαρίου
Θέµατα Φεβρουαρίου 2-2 cslab@ntua 2- Θέµα ο (3%): Έστω η παρακάτω ακολουθία εντολών που χρησιµοποιείται για την αντιγραφ από µια θέση µνµης σε µια άλλη (memory-to-memory copy): lw $2, ($) sw $2, 2($) i)
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΑρχιτεκτονικη υπολογιστων
ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος hatzagarak@cs.teicrete.gr Εισαγωγη: ο επεξεργαστης και η γλωσσα του Eπεξεργαστής: MIPS Microprocessor Without Interlocked
Διαβάστε περισσότεραΑρχιτεκτονικές Συνόλου Εντολών
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ο
Διαβάστε περισσότεραData-Level Parallelism Linking & Loading
ΗΥ 232 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Διάλεξη 18 Data-Level Parallelism Linking & Loading Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Y (ECE 232) 1
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I
ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία
Διαβάστε περισσότεραΕργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος
Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Σχόλια: - - This is a single line comment - - There is no alternative way to write multi-line comments Αναγνωριστικά: Τα αναγνωριστικά
Διαβάστε περισσότεραChapter 3 Αριθμητική Υπολογιστών
Chapter 3 Αριθμητική Υπολογιστών Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία
Διαβάστε περισσότερα; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Τι
Διαβάστε περισσότεραΆσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.
(α) Παραδείγματα Assembly Εαρινό Εξάμηνο 2012 Γράψτε ένα μικρό πρόγραμμα (1-3 εντολές) με το οποίο μπορείτε να ανιχνεύσετε την τιμή του δυαδικού ψηφίου στη θέση 7 της θέσης μνήμης 0Χ23450009 εάν το λιγότερο
Διαβάστε περισσότεραΕντολές: H γλώσσα μηχανής
Εντολές: H γλώσσα μηχανής Αρχιτεκτονική Σύνολο Εντολών MIPS (assembly) αναπαράσταση στο υλικό (ΜIPS) μετάφραση από HLL σε LLL Δομές ελέγχου και βασικοί τύποι δεδομένων Κεφ. 2 + APPENDIX B 2.1-2.10,2.13,
Διαβάστε περισσότεραΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε
Διαβάστε περισσότεραΕισαγωγή στην πληροφορική -4
Εισαγωγή στην πληροφορική 6 (, 64) bits Μνήµη Θέση (κύτταρο cell) µνήµης, χωράει λέξεις (words) εντολές (πρόγραµµα), αριθµοί (δεδοµένα) Αριθµοί: δυαδική (binary) αναπαράσταση = = = 4 = 4 = 5 = 7 Εισαγωγή
Διαβάστε περισσότεραΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2
ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Εργαστήριο Αρ. 2 Εισαγωγή στην Αρχιτεκτονική ARMv8-A Arithmetic and Logic Instr..data, Branch and Loops, PhD Σελ. 1 Memory Allocation LEGv8 0000
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΜΣ Εφαρμοσμένη Πληροφορική Οργάνωση και Σχεδίαση Η/Υ Πρώτη Σειρά Ασκήσεων 7 Απριλίου 2017 ενδεικτική παράδοση: 5 Μαΐου Για
Διαβάστε περισσότεραΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών
ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών
Διαβάστε περισσότεραΤρόποι Διευθυνσιοδότησης
Τρόποι Διευθυνσιοδότησης στους Μικροεπεξεργαστές MIPS-32 (Διάλεξη 2) 1 Τρόποι Διευθυνσιοδότησης Η διεύθυνση μνήμης μπορεί να δηλωθεί με 6 τρόπους : 1. Περιεχόμενο καταχωρητή: 2. Άμεση τιμή: 3. Άμεση τιμή
Διαβάστε περισσότεραΘ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών
Θ. Ζαχαριάδης Αν. Καθηγητής Λ. Σαράκης Καθ. Εφαρμογών CMP REG, memory memory, REG REG, REG memory, immediate REG, immediate Compare. operand1 - operand2 result is not stored anywhere, flags are set (OF,
Διαβάστε περισσότεραΟργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 3: Προσπελάσεις Μνήμης στον MIPS. Μανόλης Γ.Η. Κατεβαίνης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 3: Προσπελάσεις Μνήμης στον MIPS Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραMulti Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης
Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Multi Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΟργάνωση Υπολογιστών
Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό
Διαβάστε περισσότεραΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86
ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη
Διαβάστε περισσότερα