Αρχιτεκτονικζσ Συνόλου Εντολϊν

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Αρχιτεκτονικζσ Συνόλου Εντολϊν"

Transcript

1 Αρχιτεκτονικζσ Συνόλου Εντολϊν Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμόσ εντολών Μορφή Εντολών: μεταβλθτό ι ςτακερό μζγεκοσ bytes για κάκε εντολι; ( bytes, MIPS 4 bytes) Πϊσ γίνεται θ αποκωδικοποίθςθ (ID); Που βρίςκονται τα ορίςματα (operands) και το αποτζλεςμα: Μνιμθ-καταχωρθτζσ, πόςα ορίςματα, τι μεγζκουσ; Ποια είναι ςτθ μνιμθ και ποια όχι; Πόςοι κφκλοι για κάθε εντολή; 1

2 Κατθγορίεσ Αρχιτεκτονικϊν Συνόλου Εντολϊν 1. Αρχιτεκτονικζσ Συςςωρευτι (accumulator architectures) (μασ κυμίηει κάτι?) 2. Αρχιτεκτονικζσ επεκταμζνου ςυςςωρευτι ι καταχωρθτϊν ειδικοφ ςκοποφ (extended accumulator ι special purpose register) 3. Αρχιτεκτονικζσ Καταχωρθτϊν Γενικοφ Σκοποφ 3α. register-memory 3b. register-register (RISC) 2

3 Αρχιτεκτονικζσ Συςςωρευτι (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 Όλεσ οι μεταβλθτζσ αποκθκεφονται ςτθ μνιμθ. Δεν υπάρχουν βοθκθτικοί καταχωρθτζσ 3

4 Αρχιτεκτονικζσ Συςςωρευτι (2) Κατά: Χρειάηονται πολλζσ εντολζσ για ζνα πρόγραμμα Κάκε φορά πιγαινε-φζρε από τθ μνιμθ (? Κακό είναι αυτό) Bottleneck o Accum! Υπζρ: Εφκολοι compilers, κατανοθτόσ προγραμματιςμόσ, εφκολθ ςχεδίαςθ h/w Λφςθ; Πρόςκεςθ καταχωρθτϊν για ςυγκεκριμζνεσ λειτουργίεσ (ISAs καταχωρθτϊν ειδικοφ ςκοποφ) 4

5 Αρχιτεκτονικζσ Επεκταμζνου Συςςωρευτι Καταχωρθτζσ ειδικοφ ςκοποφ π.χ. δεικτοδότθςθ, αρικμθτικζσ πράξεισ Υπάρχουν εντολζσ που τα ορίςματα είναι όλα ςε καταχωρθτζσ Κατά βάςθ (π.χ. ςε αρικμθτικζσ εντολζσ) το ζνα όριςμα ςτθ μνιμθ. 5

6 Αρχιτεκτονικζσ Καταχωρθτϊν Γενικοφ Σκοποφ 1. CISC 2. RISC Complex Instruction Set Computer Reduced Instruction Set Computer Εντολζσ για πράξεισ Register-Memory ι Memory-Memory Πράξεισ μόνο Register-Register (load store) (1980+) Αφινουν το ζνα όριςμα να είναι ςτθ μνιμθ (πχ ) Load R1, B Add R1, C Store A, R1 A=B+C Load R1, B Load R2, C Add R3, R1, R2 Store A, R3 extended-accumulator register-register Memory-memory accumulator register-memory 6

7 Αρχιτεκτονικι Στοίβασ Κακόλου registers! Stack model ~ 1960!!! Στοίβα που μεταφζρονται τα ορίςματα που αρχικά βρίςκονται ςτθ μνιμθ. Κακϊσ βγαίνουν γίνονται οι πράξεισ και το αποτζλεςμα ξαναμπαίνει ςτθ ςτοίβα. Θυμάςτε τα HP calculators με reverse polish notation A=B+C push Address C push AddressB Add pop AddressA 7

8 Εντολζσ μεταβλθτοφ μικουσ: 1-17 bytes 80x bytes VAX, IBM Γιατί?? Ιnstruction Memory ακριβι, οικονομία χϊρου!!!! Compilers πιο δφςκολοι!!! Αρχιτεκτονικζσ CISC Εμείσ ςτο μάκθμα: register-register ISA! (load- store). Γιατί?? 1. Οι καταχωρθτζσ είναι γρθγορότεροι από τθ μνιμθ 2. Μειϊνεται θ κίνθςθ με μνιμθ 3. Δυνατότθτα να υποςτθριχκεί ςτακερό μικοσ εντολϊν 4. (τα ορίςματα είναι καταχωρθτζσ, άρα ό αρικμόσ τουσ (πχ καταχωρθτζσ) όχι δ/νςεισ μνιμθσ 8

9 Βαςικζσ Αρχζσ Σχεδίαςθσ (Patterson-Hennessy COD2e) 1. Η ομοιομορφία των λειτουργιϊν ςυμβάλλει ςτθν απλότθτα του υλικοφ (Simplicity favors Regularity) 2. Όςο μικρότερο τόςο ταχφτερο! (smaller is faster) 3. H καλι ςχεδίαςθ απαιτεί ςθμαντικοφσ ςυμβιβαςμοφσ (Good design demands good compromises) Γενικότητεσ? Θα τα δοφμε ςτη ςυνζχεια... 9

10 Σφνολο Εντολϊν MIPS Η MIPS Technologies ζκανε εμπορικό τον Stanford MIPS Μεγάλο μερίδιο τθσ αγοράσ των πυρινων ενςωματωμζνων επεξεργαςτϊν Εφαρμογζσ ςε καταναλωτικά θλεκτρονικά, εξοπλιςμό δικτφων και αποκικευςθσ, φωτογραφικζσ μθχανζσ, εκτυπωτζσ, Τυπικό πολλϊν ςφγχρονων ISA (Instruction Set Architecture) Πλθροφορία ςτθν αποςπϊμενθ κάρτα Αναφοράσ Δεδομζνων MIPS (πράςινθ κάρτα), και τα Παραρτιματα Β και Εx 10

11 Σφνολο Εντολϊν MIPS Λζξεισ των 32 bit Μνιμθ οργανωμζνθ ςε bytes Κάκε byte είναι μια ξεχωριςτι δνςθ 2 30 λζξεισ μνιμθσ των 32 bits Ακολουκεί το μοντζλο big Endian Register File 32 καταχωρθτζσ γενικοφ ςκοποφ Εντολζσ : αποκικευςθσ ςτθ μνιμθ (lw, sw) αρικμθτικζσ (add, sub κλπ) διακλάδωςθσ (branch instructions) Memory [0] Memory [4] Memory [8] Memory [12] 32 bits 32 bits 32 bits 32 bits 11

12 Big Endian vs Little Endian Big Endian: H δνςθ του πιο ςθμαντικοφ byte (MSB) είναι και δνςθ τθσ λζξθσ Little Endian: H δνςθ του λιγότερο ςθμαντικοφ byte (LSB) είναι και δνςθ τθσ λζξθσ H λζξθ αποκθκεφεται πάντα ςε ςυνεχόμενεσ κζςεισ: δνςθ, δνςθ+1, δνςθ+2,δνςθ+3 BIG_ENDIAN A[0] 0 MSB LSB A[1] 4 MSB LSB A[2] 8 MSB LSB 8 bits LITTLE_ENDIAN A[0] 0 LSB MSB A[1] 4 LSB MSB A[2] 8 LSB MSB 12

13 MIPS ISA : Αρικμθτικζσ λειτουργίεσ Πρόςκεςθ και αφαίρεςθ (add, sub) Πάντα 3 ορίςματα ΠΟΤΕ δνςθ μνιμθσ Δφο προελεφςεισ και ζνασ προοριςμόσ add a, b, c # a = b + c Όλεσ οι αρικμθτικζσ λειτουργίεσ ζχουν αυτι τθ μορφι 1 θ αρχι ςχεδίαςθσ: η απλότητα ευνοεί την κανονικότητα Η κανονικότθτα κάνει τθν υλοποίθςθ απλοφςτερθ Η απλότθτα επιτρζπει μεγαλφτερθ απόδοςθ με χαμθλότερο κόςτοσ 13

14 Τελεςτζσ - Καταχωρθτζσ Οι αρικμθτικζσ εντολζσ χρθςιμοποιοφν καταχωρθτζσ ωσ τελεςτζσ (operands) Ο MIPS διακζτει ζνα αρχείο καταχωρθτϊν (register file) με 32 καταχωρθτζσ των 32-bit Χριςθ για τα δεδομζνα που προςπελάηονται ςυχνά Αρίκμθςθ καταχωρθτϊν από 0 ζωσ 31 Ονόματα του ςυμβολομεταφραςτι (assembler) $t0, $t1,, $t9 για προςωρινζσ τιμζσ $s0, $s1,, $s7 για αποκθκευμζνεσ μεταβλθτζσ 2 θ αρχι ςχεδίαςθσ : το μικρότερο είναι ταχφτερο παραβολι με κφρια μνιμθ: εκατομμφρια κζςεων 14

15 Παράδειγμα Κϊδικασ ςε C a = b + c; d = a e; Μετάφραςθ ςε κϊδικα MIPS add a, b, c sub d, a, e 15

16 Παράδειγμα Κϊδικασ ςε C f = (g + h) (i + j); Τι παράγει ο compiler? Μετάφραςθ ςε κϊδικα MIPS add $t0, $s1, $s2 add $t1, $s3. $s4 sub $s0, $t0, $t1 # προςωρινι μεταβλθτι t0 # προςωρινι μεταβλθτι t1 16

17 Τελεςτζσ - Μνιμθ Οι γλϊςςεσ προγραμματιςμοφ ζχουν: απλζσ μεταβλθτζσ ςφνκετεσ δομζσ (π.χ. arrays, structs) O υπολογιςτισ τισ αναπαριςτά ΠΑΝΤΑ ΣΤΗ ΜΝΗΜΗ. Επομζνωσ χρειαηόμαςτε εντολζσ μεταφοράσ δεδομζνων από και προσ τθ μνιμθ. 17

18 Τελεςτζσ - Μνιμθ Εντολι μεταφοράσ δεδομζνων από τθ μνιμθ load καταχωρθτισ, ςτακερά(καταχωρθτισ) lw $t1, 4($s2) φορτϊνουμε ςτον $t1 τθν τιμι M[$s2+4] 18

19 Παράδειγμα Κϊδικασ C g = h + A[8]; g ςτον $s1, h ςτον $s2 και θ δνςθ βάςθσ του A ςτον $s3. Μεταγλωττιςμζνοσ κϊδικασ MIPS Ο δείκτθσ 8 απαιτεί offset 32 (4 byte ανά λζξθ). offset lw $t0, 32($s3) add $s1, $s2, $t0 base register 19

20 Οργάνωςθ Μνιμθσ Μνιμθ είναι byte addressable Δφο διαδοχικζσ λζξεισ διαφζρουν κατά 4 alignment restriction (ευκυγράμμιςθ) λζξεισ ξεκινάνε πάντα ςε διεφκυνςθ πολ/ςιο του 4 20

21 Παράδειγμα 2 Κϊδικασ C Α*12+ = h + A[8]; h ςτον $s2 και θ δνςθ βάςθσ του A ςτον $s3. Μεταγλωττιςμζνοσ κϊδικασ MIPS Ο δείκτθσ 8 απαιτεί offset 32 (4 byte ανά λζξθ). offset lw $t0, 32($s3) add $t0, $t0, $s2 sw $t0, 48($s3) base register 21

22 Άμεςοι Τελεςτζοι (Immediate) Στακερά δεδομζνα κακορίηονται ςε μια εντολι addi $s3, $s3, 4 Δεν υπάρχει εντολι άμεςθσ αφαίρεςθσ (sub immediate) Απλϊσ χρθςιμοποιείται μια αρνθτικι ςτακζρα addi $s2, $s1, -1 3 θ αρχι ςχεδίαςθσ: Κάνε τη ςυνηθιςμζνη περίπτωςη γρήγορη Οι μικρζσ ςτακερζσ είναι ςυνθκιςμζνεσ Ο άμεςοσ τελεςτζοσ αποφεφγει μια εντολι φόρτωςθσ (load) 22

23 H ςτακερά ΜΗΔΕΝ Ακολουκϊντασ πάλι τθν 3 θ αρχι ςχεδίαςθσ, ο MIPS ζχει ςτον καταχωρθτι $zero αποκθκευμζνθ τθ ςτακερά 0. Δεν μπορεί να εγγραφεί άλλθ τιμι Χριςιμθ ςε πολλζσ λειτουργίεσ Μετακίνθςθ δεδομζνων μεταξφ καταχωρθτϊν π.x. add $t1, $t2, $zero 23

24 Σφνοψθ Τελεςτζοι MIPS Συνοπτικά, ςτον MIPS ο τελεςτισ κάποιασ εντολισ μπορεί να είναι : 1. Ζνασ από τουσ 32 καταχωρθτζσ 2. Μία από τισ 2 30 λζξεισ τθσ μνιμθσ 3. Ζνα από τα 2 32 bytes τθσ μνιμθσ 24

25 Κανόνεσ Ονοματοδοςίασ και Χριςθ των MIPS Registers Εκτόσ από το ςυνικθ ςυμβολιςμό των καταχωρθτϊν με $ ακολουκοφμενο από τον αρικμό του καταχωρθτι, μποροφν επίςθσ να παραςτακοφν και ωσ εξισ : Αρ. Καταχωρθτι Όνομα Χριςθ Preserved on call? $zero $at $v0-$v1 n.a. όχι όχι $a0-$a3 $t0-$t7 $s0-$s7 $t8-$t9 $k0-$k1 $gp $sp $fp $ra Constant value 0 Reserved for assembler Values for result and expression evaluation Arguments Temporaries Saved More temporaries Reserved for operating system Global pointer Stack pointer Frame pointer Return address ναι όχι ναι όχι ναι ναι ναι ναι ναι 25

26 Αναπαράςταςθ Εντολϊν (1) Οι εντολζσ κωδικοποιοφνται ςτο δυαδικό ςφςτθμα Κϊδικασ μθχανισ (machine code) Υλικό υπολογιςτϊν υψθλι-χαμθλι τάςθ, κλπ. Εντολζσ MIPS : Κωδικοποιοφνται ωσ λζξεισ εντολισ των 32 bit Μικρόσ αρικμόσ μορφϊν (formats) για τον κωδικό λειτουργίασ (opcode), τουσ αρικμοφσ καταχωρθτϊν, κλπ. Κανονικότθτα! Αρικμοί καταχωρθτϊν $t0 $t7 είναι οι καταχωρθτζσ 8 15 $t8 $t9 είναι οι καταχωρθτζσ $s0 $s7 είναι οι καταχωρθτζσ

27 Αναπαράςταςθ Εντολϊν (2) Συμβολικι αναπαράςταςθ: add $t0, $s1, $s2 Πϊσ τθν καταλαβαίνει ο MIPS? Assembly $s1 $s2 $t0 unused add Κϊδικασ μθχανισ bit 5 bit 5 bit 5 bit 5 bit 6 bit 27

28 Μορφι Εντολισ 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 28

29 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 and $1,$2,$3 sub $1,$2,$3 or $1,$2,$3 Destination register in rd Operand register in rt Operand register in rs 29

30 Αναπαράςταςθ Εντολϊν ςτον Υπολογιςτι (R-Type) op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit Τι γίνεται με τθ load? Πϊσ χωράνε οι τελεςτζσ τθσ ςτα παραπάνω πεδία? Π.χ. θ ςτακερά τθσ lw. lw $t1, 8000($s3) ςε ποιο πεδίο χωράει; 30

31 MIPS I-Type Δεν μασ αρκεί το 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, rt) ζχουν το ίδιο όνομα και μζγεκοσ όπωσ και πριν 31

32 Αναπαράςταςθ Εντολϊν ςτον Υπολογιςτι (I-Type) Παράδειγμα: lw $t0, 32($s3) Kαταχωρθτζσ (ςκονάκι ) $s0,..., $s7 αντιςτοιχίηονται ςτουσ $t0,..., $t7 αντιςτοιχίηονται ςτουσ 8-15 I-format op rs rt ζηαθερά ή διεύθσνζη 6 bit 5 bit 5 bit 16 bit xxxxxx

33 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. Παραδείγματα : source register in rt Offset Store word: sw $3, 500($4) base register in rs Load word: lw $1, 30($2) Destination register in rt Offset base register in rs 33

34 MIPS I-Type : ALU Οι 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 Result register in rt Constant operand in immediate Source operand register in rs 34

35 MIPS data transfer instructions : Παραδείγματα (1) Instruction sw $3, 500($4) sh $3, 502($2), sb $2, 41($3) lw $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 Load word 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

36 MIPS data transfer instructions : Παραδείγματα (2) Τι γίνεται με τισ μεγαλφτερεσ ςτακερζσ; Ζςτω ότι κζλουμε να φορτϊςουμε μια 32-bit ςτακερά ςε κάποιο καταχωρθτι, π.χ Θα χρθςιμοποιιςουμε τθν Load Upper Immediate εντολι π.χ. lui $t0, Μθδενικά $t Στθ ςυνζχεια πρζπει να κζςουμε ςωςτά τα lower order bits π.χ. ori $t0, ori

37 Αναπαράςταςθ Εντολϊν ςτον Υπολογιςτι ενηολή μορθή 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 δ.ε. δ.ε. δ.ε. διεσθ. 37

38 Παράδειγμα: Μεταγλωττίςτε το A[300] = h + A[300] $t1 δνςθ βάςθσ πίνακα Α (32 bit/ςτοιχείο Α*i]), $s2 μεταβλθτι h lw $t0, 1200($t1) add $t0, $s2, $t0 sw $t0, 1200($t1) Αναπαράςταςθ Εντολϊν ςτον Υπολογιςτι op rs rt rd shamt funct op rs rt rd shamt funct

39 Λογικζσ Λειτουργίεσ (Πράξεισ) (1) Λογικές Λειηοσργίες Τελεζηές C Ενηολές MIPS Shift left << Shift right >> Sll (shift left logical) Srl (shift right logical) AND & and, andi OR or, ori NOT ~ nor 39

40 Λογικζσ Λειτουργίεσ (Πράξεισ) (2) SHIFT $s0: = 9 ten sll $t2, $s0, 4 Κάνουμε shift αριςτερά το περιεχόμενο του $s0 κατά 4 κζςεισ = 144 ten και τοποκετοφμε το αποτζλεςμα ςτον $t2.!!το περιεχόμενο του $s0 μζνει αμετάβλθτο!! 40

41 Λογικζσ Λειτουργίεσ (Πράξεισ) (3) SHIFT sll $t2, $s0, 4 Kαηατωρηηές (ζκονάκι ) $s0,..., $s7 ανηιζηοιτίζονηαι ζηοσς $t0,..., $t7 ανηιζηοιτίζονηαι ζηοσς bit 5 bit 5 bit 5 bit 5 bit 6 bit op rs rt rd shamt funct sll: opcode=0, funct=0 41

42 Λογικζσ Λειτουργίεσ (Πράξεισ) (4) AND, OR $t2: $t1: and $t0, $t1, $t2 # Μάςκα $t0: or $t0, $t1, $t2 $t0:

43 Λογικζσ Λειτουργίεσ (Πράξεισ) (5) NOT, NOR $t1: $t3: not $t0, $t1 δεν υπάρχει γιατί κζλουμε πάντα 2 καταχωρθτζσ source. Άρα χρθςιμοποιοφμε τθ nor: A NOR 0 = NOT (A OR 0) = NOT A nor $t0, $t1, $t3 $t0:

44 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 unsigned subu $1,$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 unsigned 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 44

45 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 arithm. sra $1,$2,10 $1 = $2 >> 10 Shift right (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, $3 $1 = $2 >> $3 Shift right arith. by variable 45

46 Εντολζσ Λιψθσ Αποφάςεων (1) beq, bne beq reg1, reg2, L1 #branch if equal Αν οι καταχωρθτζσ reg1 και reg2 είναι ίςοι, πιγαινε ςτθν ετικζτα L1 bne reg1, reg2, L1 #branch if not equal Αν οι καταχωρθτζσ reg1 και reg2 δεν είναι ίςοι, πιγαινε ςτθν ετικζτα L1 46

47 Εντολζσ Λιψθσ Αποφάςεων (2) Παράδειγμα: 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: 47

48 Εντολζσ Λιψθσ Αποφάςεων (3) Βρόχοι (Loops) while (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: 48

49 Εντολζσ Λιψθσ Αποφάςεων (4) Συγκρίςεισ slt $t0, $s3, $s4 # set on less than Ο καταχωρθτισ $t0 τίκεται με 1 αν θ τιμι ςτον $s3 είναι μικρότερθ από τθν τιμι ςτο $s4. Στακερζσ ωσ τελεςτζοι είναι δθμοφιλείσ ςτισ ςυγκρίςεισ slti $t0, $s2, 10 # set on less than immediate Ο καταχωρθτισ $t0 τίκεται με 1 αν θ τιμι ςτον $s2 είναι μικρότερθ από τθν τιμι

50 Εντολζσ Λιψθσ Αποφάςεων (5) Γιατί όχι blt, bge κτλ; Το υλικό για τισ <,, είναι πιο αργό από αυτό για τισ =, Ο ςυνδυαςμόσ ςυνκθκϊν για μια διακλάδωςθ περιλαμβάνει περιςςότερθ δουλειά ανά εντολι. Πιο αργό ρολόι Επιβαρφνονται όλεσ οι εντολζσ! Οι beq, bne είναι θ ςυνικθσ περίπτωςθ Καλόσ ςχεδιαςτικόσ ςυμβιβαςμόσ. 50

51 MIPS Branch, Compare, Jump : Παραδείγματα Instruction Παράδειγμα Έννοια branch on equal beq $1,$2,100 if ($1 == $2) go to PC+4+10 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 $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 51

52 Εντολζσ διακλάδωςθσ 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; Πόςο «μεγάλο» μπορεί να είναι το άλμα; 52

53 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 to PC to form branch address. Παραδείγματα : Register in rs Register in rt Final offset is calculated in bytes, equals to {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 53

54 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 Jump j Jump and Link jal

55 Εντολζσ Jump Jump (J-type): j # jump to address Jump Register (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 Χριςθ για κλιςθ διαδικαςιϊν/μεκόδων. Αποκθκεφει τθ διεφκυνςθ επιςτροφισ (PC+4) ςτον καταχωρθτι 31 ($ra) Η επιςτροφι από τθ διαδικαςία επιτυγχάνεται με χριςθ jr $ra Οι εμφωλιαςμζνεσ διαδικαςίεσ κα πρζπει να αποκθκεφουν τον $ra ςτθ ςτοίβα και να χρθςιμοποιοφν τουσ καταχωρθτζσ $sp (stack pointer) και $fp (frame pointer) για να χειρίηονται τθ ςτοίβα. 55

56 Σφνοψθ 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, jal) op jump target address 6 bits 26 bits 56

57 Ζννοια αποκθκευμζνου προγράμματοσ Ο σπολογιζηής κάνει πολλές εργαζίες θορηώνονηας δεδομένα ζηο μνήμη. Δεδομένα και ενηολές είναι ζηοιτεία ζηη μνήμη. Π.τ. compilers μεηαθράζοσν ζηοιτεία ζε κάποια άλλα ζηοιτεία. 57

58 Διάταξθ τθσ Μνιμθσ Κείμενο (Text) Kϊδικασ προγράμματοσ Στατικά Δεδομζνα (Static data) Κακολικζσ Μεταβλθτζσ (π.χ. ςτατικζσ μεταβλθτζσ τθσ C, constant arrays και ςυμβολοςειρζσ (strings) Δυναμικά Δεδομζνα Σωρόσ (Heap) π.χ. malloc ςτθ C Στοίβα (stack) Αυτόματθ αποκικευςθ 58

59 Τφποι Δεδομζνων 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 59

60 Τφποι Δεδομζνων : MIPS (1) Βαςικόσ τφποσ δεδομζνων: 32-bit word Integers (signed or unsigned) 1,128,878,917 Floating point numbers ASCII χαρακτιρεσ C I S E Διευκφνςεισ μνιμθσ (pointers) 0x Εντολζσ 60

61 Τφποι Δεδομζνων : MIPS (2) 16-bit ςτακερζσ (immediates) addi $s0, $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) 61

62 Εντολζσ λειτουργίασ Byte lb $s1, 4($s0) $s0: $s1: 0x xFFFFFFAA Address 0x Memory Bytes lbu $s1, 2($s0) $s0: $s1: 0x x AA 62

63 Παράδειγμα : Αντιγραφι String 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 63

64 Στακερζσ Συχνά χρθςιμοποιοφνται μικρζσ ςτακερζσ (50% των τελεςτϊν) e.g., A = A + 5; Λφςθ Αποκικευςθ τυπικϊν ςτακερϊν ςτθ μνιμθ και φόρτωςθ τουσ. Δθμιουγία hard-wired καταχωρθτϊν (π.χ. $zero) για ςτακερζσ όπωσ 0, 1 κτλ. MIPS Instructions: slti $8, $18, 10 andi $29, $29, 6 ori $29, $29, 0x4a addi $29, $29,

65 Τρόποι Διευκυνςιοδότθςθσ Διευκφνςεισ για δεδομζνα και εντολζσ Δεδομζνα (τελεςτζσ / αποτελζςματα) Καταχωρθτζσ Θζςεισ μνιμθσ Στακερζσ Αποδοτικι κωδικοποίθςθ διευκφνςεων (χϊροσ: 32 bits) Καταχωρθτζσ (32) => 5 bits κωδικοποιοφν 1 32-bit δνςθ Destructive instructions: reg2 = reg2 + reg1 Accumulator Stack Τα opcodes μποροφν να χρθςιμοποιθκοφν με διαφορετικοφσ τρόπουσ διευκυνςιοδότθςθσ Orthogonality of opcodes and addressing modes 65

66 Διευκυνςιοδότθςθ Δεδομζνων Διευκυνςιοδότθςθ μζςω καταχωρθτι (Register addressing) Η πιο ςυνθκιςμζνθ (ςφντομθ και ταχφτατθ) add $3, $2, $1 Διευκυνςιοδότθςθ βάςθσ (Base addressing) O τελεςτζοσ είναι ςε μια κζςθ μνιμθσ με κάποιο offset lw $t0, 20 ($t1) Άμεςθ διευκυνςιοδότθςθ (Immediate addressing) Ο τελεςτζοσ είναι μια μικρι ςτακερά και περιζχεται ςτθν εντολι addi $t0, $t1, 4 (signed 16-bit integer) 66

67 Διευκυνςιοδότθςθ Εντολϊν Οι διευκφνςεισ ζχουν μικοσ 32 bits Καταχωρθτισ ειδικοφ ςκοποφ : PC (program counter) Αποκθκεφει τθ διεφκυνςθ τθσ εντολισ που εκτελείται εκείνθ τθ ςτιγμι Διευκυνςιοδότθςθ με χριςθ PC (PC-relative addressing) Branches Νζα διεφκυνςθ: PC + (constant in the instruction) * 4 beq $t0, $t1, 20 (0x ) Ψεφδοαμεςθ διευκυνςιοδότθςθ (Pseudodirect addressing) Jumps Νζα διεφκυνςθ: PC[31:28] : (constant in the instruction) * 4 67

68 Περίλθψθ Τρόπων Διευκυνςιοδότθςθσ 68

69 Παράδειγμα : Απομακρυςμζνεσ Διευκφνςεισ 0x Text Segment (252MB) (0x07fe0000) PC (0x ) beq $s0, $s1, L1 (0x ) (0x ) L1: bne $s0, $s1, L2 j L2: L1 0x

70 Δείκτεσ (Pointers) Pointer: Μια μεταβλθτι, θ οποία περιζχει τθ διεφκυνςθ μιασ άλλθσ μεταβλθτισ Αποτελεί τθ HLL ζκφραςθ τθσ διεφκυνςθσ μνιμθσ ςε γλϊςςα μθχανισ Γιατί χρθςιμοποιοφμε δείκτεσ; Κάποιεσ φορζσ είναι ο μοναδικόσ τρόποσ για να εκφράςουμε κάποιο υπολογιςμό Πιο αποδοτικόσ και ςυμπτυγμζνοσ κϊδικασ Γιατί να ΜΗ χρθςιμοποιοφμε δείκτεσ; Πικανϊσ θ μεγαλφτερθ πθγι bugs 1) Dangling reference (λόγω πρϊιμθσ απελευκζρωςθσ) 2) Memory leaks (tardy free): Αποτρζπουν τθν φπαρξθ διεργαςιϊν που τρζχουν για μεγάλα χρονικά διαςτιματα μιασ και απαιτοφν τθν επανζναρξθ τουσ 70

71 C Pointer Operators Ζςτω ότι θ μεταβλθτι c ζχει τθν τιμι 100 και βρίςκεται ςτθ κζςθ μνιμθσ 0x Unary operator & δίνει τθ διεφκυνςθ: p = &c; gives address of c to p; p points to c (p == 0x ) Unary operator * δίνει τθν τιμι ςτθν οποία δείχνει ο pointer 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) 71

72 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 */ p = z; /* same thing; p[ i ] == z[ i ]*/ p = p+1; /* now it points to the next element, z[1] */ p++; /* now it points to the one after that, z[2] */ *p = 4; /* assigns 4 to there, z[2] == 4*/ p = 3; /* bad idea! Absolute address!!! */ p = &x; /* p points to x, *p == 21 */ z = &y illegal!!!!! array name is not a variable z[1] z[0] y: x:

73 Assembly Code : Παράδειγμα (1) Ζςτω ακζραιοσ c με τιμι 100 που βρίςκεται ςτθ κζςθ μνιμθσ 0x , p ςτον $a0 και x ςτον $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 73

74 Assembly Code : Παράδειγμα (2) 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 74

75 Επικοινωνία Οριςμάτων (Argument Passing Options) 2 μζκοδοι Κλιςθ κατά τιμι (Call by Value): Ζνα αντίγραφο ςτζλνεται του αντικειμζνου ςτζλνεται ςτθ μζκοδο/διαδικαςία Κλιςθ κατά αναφορά (Call by Reference): Ζνασ pointer ςτο αντικείμενο ςτζλνεται ςτθ μζκοδο/διαδικαςία Οι μεταβλθτζσ μικουσ 1 λζξθσ ςτζλνονται κατά τιμι Τι γίνεται ςτθν περίπτωςθ ενόσ πίνακα; π.χ. a[100] Pascal (call by value): Αντιγράφει 100 λζξεισ του a[] ςτθ ςτοίβα C (call by reference) : Περνά ζνα pointer (1 word) που δείχνει ςτο a[] ςε ζνα καταχωρθτι 75

76 Lifetime of Storage and Scope Αυτόματα (stack allocated) Τοπικζσ μεταβλθτζσ μιασ μεκόδου/διαδικαςίασ Δθμιουργοφνται κατά τθν κλιςθ και απελευκερϊνονται κατά τθν επιςτροφι Scope = θ μζκοδοσ/διαδικαςία Heap allocated Δθμιουργοφνται με malloc Απελευκερϊνονται με free Αναφορζσ μζςω pointers External / static Επιηοφν για ολόκλθρθ τθν εκτζλεςθ του προγράμματοσ Code Static Heap Stack 76

77 Πίνακεσ, Δείκτεσ και Μζκοδοι/Διαδικαςίεσ 4 εκδόςεισ μιασ μεκόδου/διαδικαςίασ θ οποία προςκζτει 2 πίνακεσ και αποκθκεφει το άκροιςμα ςε ζνα 3 ο πίνακα (sumarray) 1. Ο 3 οσ πίνακασ ςτζλνεται ςτθ μζκοδο 2. Χριςθ ενόσ τοπικοφ πίνακα (ςτθ ςτοίβα) για το αποτζλεςμα και πζραςμα ενόσ δείκτθ ςε αυτόν 3. Ο 3 οσ πίνακασ τοποκετείται ςτο heap 4. Ο 3 οσ πίνακασ ορίηεται ωσ static Σκοπόσ του παραδείγματοσ είναι να δείξουμε τθ χριςθ των C statements, των pointers και τθσ αντίςτοιχθσ memory allocation. 77

78 Πίνακεσ, Δείκτεσ και Μζκοδοι/Διαδικαςίεσ : Version 1 int x[100], y[100], z[100]; sumarray(x, y, z); C calling convention : sumarray(&x[0], &y[0], &z[0]); Στθν πραγματικότθτα περνάμε pointers ςτουσ πίνακεσ 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 78

79 Πίνακεσ, Δείκτεσ και Μζκοδοι/Διαδικαςίεσ : Version 1 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 79

80 Πίνακεσ, Δείκτεσ και Μζκοδοι/Διαδικαςίεσ : Version 2 int *sumarray(int a[],int b[]) { } int i, c[100]; for(i=0;i<100;i=i+1) c[i] = a[i] + b[i]; return c; $sp c[100] a[100] B[100] addi $t0,$a0,400 # beyond end of a[] addi $sp,$sp,-400 # space for c addi $t3,$sp,0 # ptr for 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] + b[i] addi $a0,$a0,4 # $a0++ addi $a1,$a1,4 # $a1++ addi $t3,$t3,4 # $t3++ j Loop Exit: addi $sp,$sp, 400 # pop stack jr $ra 80

81 Πίνακεσ, Δείκτεσ και Μζκοδοι/Διαδικαςίεσ : Version 3 int * sumarray(int a[],int b[]) { int i; int *c; c = (int *) malloc(100); for(i=0;i<100;i=i+1) c[i] = a[i] + b[i]; return c; } Ο χϊροσ που δεςμεφτθκε δεν επαναχρθςιμοποιείται, εκτόσ αν απελευκερωκεί (freed) Είναι πικανό να οδθγιςει ςε memory leaks Java, Scheme διακζτουν garbage collectors για να επανακτοφν ελεφκερο χϊρο Code Static c[100] Heap Stack 81

82 Πίνακεσ, Δείκτεσ και Μζκοδοι/Διαδικαςίεσ : Version 3 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 82

83 Πίνακεσ, Δείκτεσ και Μζκοδοι/Διαδικαςίεσ : 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 δεςμεφει χϊρο μια φορά για τθ μζκοδο και ο χϊροσ επαναχρθςιμοποιείται Θα μεταβλθκεί τθν επόμενθ φορά που κα κλθκεί θ sumarray Γιατί τθν αναφζρουμε; Χρθςιμοποιείται ςτισ C libraries! Code Static c[100] Heap Stack 83

84 84 Επανάλθψθ (1)

85 Επανάλθψθ (2) M IP S a s s e m b ly la n g u a g e C a te g o ry In s tru c tio n E x a m p le M e a n in g C o m m e n ts add add $s1, $s2, $s3 $s1 = $s2 + $s3 T h re e o p e ra n d s ; d a ta in re g is te rs A rith m e tic s u b tra c t sub $s1, $s2, $s3 $s1 = $s2 - $s3 T h re e o p e ra n d s ; d a ta in re g is te rs a d d im m e d ia te addi $s1, $s2, 100 $s1 = $s U s e d to a d d c o n s ta n ts lo a d w o rd lw $s1, 100($s2) $s1 = M e m o ry [$s ] W o rd fro m m e m o ry to re g is te r s to re w o rd sw $s1, 100($s2) M e m o ry [$s ] = $ s 1 W o rd fro m re g is te r to m e m o ry D a ta tra n s fe r lo a d b y te lb $s1, 100($s2) $s1 = M e m o ry [$s ] B y te fro m m e m o ry to re g is te r s to re b y te sb $s1, 100($s2) M e m o ry [$s ] = $ s 1 B y te fro m re g is te r to m e m o ry lo a d u p p e r im m e d ia te lui $s1, 100 $ s 1 = * 2 16 L o a d s c o n s ta n t in u p p e r 1 6 b its b ra n c h o n e q u a l beq $s1, $s2, 25 if ($s1 == $s2) g o to P C b ra n c h o n n o t e q u a l bne $s1, $s2, 25 if ($s1!= $s2) g o to P C C o n d itio n a l b ra n c h s e t o n le s s th a n slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1 ; e ls e $s1 = 0 E q u a l te s t; P C -re la tiv e b ra n c h N o t e q u a l te s t; P C -re la tiv e C o m p a re le s s th a n ; fo r b e q, b n e s e t le s s th a n im m e d ia te slti $s1, $s2, 100 if ($s2 < 100) $s1 = 1 ; e ls e $s1 = 0 C o m p a re le s s th a n c o n s ta n t ju m p j 2500 g o to J u m p to ta rg e t a d d re s s U n c o n d i- ju m p re g is te r jr $ra g o to $ra F o r s w itc h, p ro c e d u re re tu rn tio n a l ju m p ju m p a n d lin k jal 2500 $ra = P C + 4 ; g o to F o r p ro c e d u re c a ll 85

86 Συμπεράςματα Τα δεδομζνα μπορεί να είναι οτιδιποτε Datatyping περιορίηει τισ μορφζσ των δεδομζνων (data representations) Οι εφαρμογζσ περιορίηουν το datatyping MIPS Datatypes: Number, String, Boolean Addressing: Pointers, Values Πολλαπλοί τρόποι διευκυνςιοδότθςθσ (direct, indirect, ) Memory-based address storage (jr instruction) Πίνακεσ : μεγάλα κομμάτια μνήμησ Pointers vs stack storage Προςοχι ςτα memory leaks! 86

87 Επανάλθψθ : Τρόποι Διευκυνςιοδότθςθσ 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]+ Regs[r2]] array addressing (base +offset) 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]]] 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]] Scaled add r4,100(r2)[r3] Regs[r4] Regs[r4]+ Mem[100+Regs[r2]+Regs[r3]*d] stepping through arrays within a loop; d defines size of an element similar as previous to index arrays 87

-Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

-Επεξεργαστής: 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) (Μεγάλη ποικιλία!!)

-Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών,

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών

Αρχιτεκτονικές Συνόλου Εντολών Αρχιτεκτονικές Συνόλου Εντολών Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος

Διαβάστε περισσότερα

Περιγραφή αρχιτεκτονικής MIPS MIPS assembly (1o και 2o μέρος)

Περιγραφή αρχιτεκτονικής MIPS MIPS assembly (1o και 2o μέρος) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης Περιγραφή αρχιτεκτονικής MIPS MIPS assembly (1o και 2o μέρος) Άδεια Χρήσης Το

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών MIPS ISA

Αρχιτεκτονική Υπολογιστών MIPS ISA Αρχιτεκτονική Υπολογιστών MIPS ISA 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών,

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών

Αρχιτεκτονικές Συνόλου Εντολών Αρχιτεκτονικές Συνόλου Εντολών 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)

Εντολές του MIPS (2) ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3

Διαβάστε περισσότερα

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1 ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1 Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Σύνολο Εντολών Το ρεπερτόριο

Διαβάστε περισσότερα

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Y Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3 = &A[0] = 0x0001080 &A[8]

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή INSTRUCTIONS LANGUAGE OF THE MACHINE Οργάνωση Υπολογιστή Τυπική οργάνωση υπολογιστή 1 Εκτέλεση προγραμμάτων σε υπολογιστή INSTRUCTION SET Οι λέξεις στη γλώσσα μηχανής ονομάζονται εντολές (instructions)

Διαβάστε περισσότερα

-Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

-Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών,

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly Αρης Ευθυμίου Το σημερινό μάθημα! Σύνταξη εντολών! Θέματα σχετικά με τη προσπέλαση, οργάνωση μνήμης διευθύνση για κάθε byte διευθύνσεις λέξεων

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Τρίτη (3 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο

Διαβάστε περισσότερα

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Σύνολο εντολών Σύνολο εντολών (Instruction set) Το «ρεπερτόριο» των εντολών ενός υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με

Διαβάστε περισσότερα

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Σύνολο εντολών Σύνολο εντολών (Instruction set) Το «ρεπερτόριο» των εντολών ενός υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με

Διαβάστε περισσότερα

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5 ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 5 Διαδικασίες ΙI Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Εισαγωγή στους Η/Υ (ΗΥ134) 1 Κατανομή μνήμης Κείμενο

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4 ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 4 Διαδικασίες Ι Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Εισαγωγή στους Η/Υ (ΗΥ134) 1 Διευθυνσιοδότηση διακλαδώσεων

Διαβάστε περισσότερα

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος Ε.1 Σας δίνεται ο πιο κάτω κώδικας. Ξαναγράψτε τον ώστε να μειωθεί ο αριθμός των εντολών του αλλά διατηρώντας την ίδια λειτουργιά

Διαβάστε περισσότερα

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 2 ο Σύνολα Εντολών Οι εντολές που εκτελεί ο κάθε επεξεργαστής (ή οικογένεια επεξεργαστών) MIPS ARM SPARC PowerPC IA-32 Αρχιτεκτονικές συνόλου εντολών Βασικές Έννοιες Εντολές μηχανής

Διαβάστε περισσότερα

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1 Εργαστήριο Αρ. 1 Εισαγωγή στην Αρχιτεκτονική MIPS Πέτρος Παναγή Σελ. 1 Πώς Δημιουργείτε ένα Executable Αρχείο Source File: Ένα TEXT αρχείο με τον πυγαίο κώδικα. Assemble: Μεταφράζει τις assembly εντολές

Διαβάστε περισσότερα

με έμφαση στο MIPS R2000

με έμφαση στο MIPS R2000 ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ενότητα 3 Αρχιτεκτονικές Συνόλου Εντολών με έμφαση στο MIPS R2000 Καθηγητής Αντώνης Πασχάλης

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές

ΠΛΕ- 027 Μικροεπεξεργαστές ΠΛΕ- 027 Μικροεπεξεργαστές 3ο μάθημα: γλώσσα μηχανής MIPS, προγραμματισμός assembly Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Stored Program Computers Αναπαράσταση

Διαβάστε περισσότερα

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;

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

Διαβάστε περισσότερα

Συναρτήσεις-Διαδικασίες

Συναρτήσεις-Διαδικασίες ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 4 Συναρτήσεις-Διαδικασίες Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Διαδικασίες (procedures) Γνωστές και σαν υπορουτίνες (subroutines)

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή (συνέχεια) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση:

Διαβάστε περισσότερα

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ Κεφάλαιο 8 Η γλϊςςα Pascal Παράγραφοσ 8.2 Βαςικοί τφποι δεδομζνων Σα δεδομζνα ενόσ προγράμματοσ μπορεί να: είναι αποκθκευμζνα εςωτερικά ςτθν μνιμθ είναι αποκθκευμζνα εξωτερικά

Διαβάστε περισσότερα

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 3-4: Προγραμματισμός MIPS Προγραμματισμός σε Συμβολική Γλώσσα Η συμβολική γλώσσα: δεν έχει τύπους, δεν έχει δηλώσεις μεταβλητών, δεν έχει δομές ελέγχου, δεν έχει εντολές βρόχων,

Διαβάστε περισσότερα

6. Επιςτροφι ελζγχου ςτο ςθμείο εκκίνθςθσ

6. Επιςτροφι ελζγχου ςτο ςθμείο εκκίνθςθσ Υποςτιριξθ διαδικαςιϊν ςτο υλικό των υπολογιςτϊν Βιματα ςτθν εκτζλεςθ μιασ διαδικαςίασ (procedure) 1. Τοποκζτθςθ παραμζτρων 2. Μεταβίβαςθ ελζγχου ςτθ διαδικαςία 3. Λιψθ πόρων αποκικευςθσ 4. Εκτζλεςθ επικυμθτισ

Διαβάστε περισσότερα

Κεφάλαιο 3. Αριθμητική Υπολογιστών Review. Hardware implementation of simple ALU Multiply/Divide Real Numbers

Κεφάλαιο 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 Προσημασμένοι και Απρόσημοι

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές

ΠΛΕ- 027 Μικροεπεξεργαστές ΠΛΕ- 027 Μικροεπεξεργαστές 2ο μάθημα: γλώσσα μηχανής MIPS, προγραμματισμός assembly Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Σύνολο εντολών μηχανής Το λεξιλόγιο

Διαβάστε περισσότερα

Τέτοιες λειτουργίες γίνονται διαμέσου του

Τέτοιες λειτουργίες γίνονται διαμέσου του Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου

Διαβάστε περισσότερα

6. Επιστροφή ελέγχου στο σημείο εκκίνησης

6. Επιστροφή ελέγχου στο σημείο εκκίνησης Υποστήριξη διαδικασιών στο υλικό των υπολογιστών Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1. Τοποθέτηση παραμέτρων 2. Μεταβίβαση ελέγχου στη διαδικασία 3. Λήψη πόρων αποθήκευσης 4. Εκτέλεση επιθυμητής

Διαβάστε περισσότερα

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1. Τοποθέτηση παραμέτρων 2. Μεταβίβαση ελέγχου στη διαδικασία 3. Λήψη πόρων αποθήκευσης 4. Εκτέλεση επιθυμητής εργασίας 5. Τοποθέτηση αποτελέσματος σε

Διαβάστε περισσότερα

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) 1 Ανακοινώσεις Ιστοσελίδα μαθήματος ΗΜΥ 212, ενημερώνεται συχνά: http://www.ece.ucy.ac.cy/courses/ece212/ Ιστοσελίδα εργαστηρίου

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Κεφάλαιο 2 Ασκήσεις Άσκηση 1 Κώδικας C: f = g + h + B[4]; f = g A[B[4]]; f, g, h, στους $s0, $s1, $s2, και διευθύνσεις βάσης των πινάκων Α και Β στους $s6 και $s7 Ποιος είναι ο αντίστοιχος κώδικας MIPS;

Διαβάστε περισσότερα

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 2. Εντολές : Η γλώσσα του υπολογιστή

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 2. Εντολές : Η γλώσσα του υπολογιστή Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Δεύτερη (2 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο

Διαβάστε περισσότερα

MIPS functions and procedures

MIPS functions and procedures Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης MIPS functions and procedures Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Διαχείριςθ Μνιμθσ Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Κάκε μεταβλθτι ςχετίηεται με μία κζςθ ςτθν κφρια μνιμθ του υπολογιςτι. Κάκε κζςθ ςτθ μνιμθ ζχει τθ δικι τθσ ξεχωριςτι διεφκυνςθ. Με άμεςθ

Διαβάστε περισσότερα

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Single Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Παραδείγματα Assembly (Μέρος

Παραδείγματα Assembly (Μέρος Παραδείγματα Assembly (Μέρος Β) 1 Άσκηση 1 Γράψτε ένα πρόγραμμα (4 εντολών) με το οποίο μπορείτε να προσθέσετε το περιεχόμενο των θέσεων μνήμης 0Χ30000000 και 0Χ30000001. Το αποτέλεσμα να αποθηκευτεί ως

Διαβάστε περισσότερα

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το

Διαβάστε περισσότερα

Εντολές: H γλώσσα μηχανής

Εντολές: H γλώσσα μηχανής Εντολές: H γλώσσα μηχανής Αρχιτεκτονική Σύνολο Εντολών MIPS (assembly) αναπαράσταση στο υλικό (ΜIPS) μετάφραση από HLL σε LLL Δομές ελέγχου και βασικοί τύποι δεδομένων Κεφ. 2 + APPENDIX B 2.1-2.10,2.13,

Διαβάστε περισσότερα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 5ο μάθημα:αρχές, ιδιότητες αρχιτεκτονικού συνόλου εντολών (ISA) Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Εσωτερική αποθήκευση

Διαβάστε περισσότερα

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) 1 Τι θα μάθουμε σε αυτό το Κεφάλαιο: Instructions (Εντολές): the words of the computer language human form: Assembly language

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

Διαβάστε περισσότερα

Απλός επεξεργαστής (Επανάληψη)

Απλός επεξεργαστής (Επανάληψη) Απλός επεξεργαστής (Επανάληψη) Διάδρομος δεδομένων και μονάδα ελέγχου 4 ο κεφάλαιο Ο επεξεργαστής : Διάδρομος Δεδομένων και Έλεγχος Σε αυτό το κεφάλαιο θα μελετήσουμε την υλοποίηση του διαδρόμου δεδομένων

Διαβάστε περισσότερα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ελιδοποίθςθ (1/10) Σόςο θ κατάτμθςθ διαμεριςμάτων ςτακεροφ μεγζκουσ όςο και θ κατάτμθςθ διαμεριςμάτων μεταβλθτοφ και άνιςου μεγζκουσ δεν κάνουν

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Αποκωδικοποίηση Εντολής x86 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 2 Εντολές: H γλώσσα μηχανής

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 2 Εντολές: H γλώσσα μηχανής ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 2 Εντολές: H γλώσσα μηχανής Αρχιτεκτονική Σύνολο Εντολών MIPS (assembly) αναπαράσταση στο υλικό (ΜIPS) μετάφραση από HLL σε LLL Δομές ελέγχου

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Data-Level Parallelism Linking & Loading

Data-Level Parallelism Linking & Loading ΗΥ 232 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Διάλεξη 18 Data-Level Parallelism Linking & Loading Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Y (ECE 232) 1

Διαβάστε περισσότερα

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Δρ. Χρήζηος Ηλιούδης Μθ Προςθμαςμζνοι Ακζραιοι Εφαρμογζσ (ςε οποιαδιποτε περίπτωςθ δεν χρειάηονται αρνθτικοί αρικμοί) Καταμζτρθςθ. Διευκυνςιοδότθςθ.

Διαβάστε περισσότερα

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 9 Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ 1 Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Ευάγγελος Καρβούνης Παρασκευή, 15/01/2016 Τι είναι ομάδα εντολών;

Διαβάστε περισσότερα

Εντολές: H γλώσσα μηχανής

Εντολές: H γλώσσα μηχανής Εντολές: H γλώσσα μηχανής Αρχιτεκτονική Σύνολο Εντολών MIPS (assembly) αναπαράσταση στο υλικό (ΜIPS) μετάφραση από HLL σε LLL Δομές ελέγχου και βασικοί τύποι δεδομένων Κεφ. 2 + APPENDIX B 2.1-2.10,2.13,

Διαβάστε περισσότερα

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Intel x86 ISA Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ RISC vs. CISC Η assembly των επεξεργαστών ARM, SPARC (Sun), και Power (IBM) είναι όμοιες

Διαβάστε περισσότερα

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Ασκήσεις Η αρίθµηση των ασκήσεων είναι από την 4 η έκδοση του «Οργάνωση και Σχεδίαση

Διαβάστε περισσότερα

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Προχωρηµένα Θέµατα Αρχιτεκτονικής Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1 Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές

Διαβάστε περισσότερα

Σειρά Ασκήσεων 3: Προσπελάσεις Μνήµης στον MIPS

Σειρά Ασκήσεων 3: Προσπελάσεις Μνήµης στον MIPS Σειρά Ασκήσεων 3: Προσπελάσεις Μνήµης στον MIPS Προσπελάσεις Μνήµης: Εντολές load και store Ο MIPS, όπως και οι άλλοι επεξεργαστές τύπου RISC, δεν έχει εντολές που να κάνουν αριθµητικές πράξεις πάνω σε

Διαβάστε περισσότερα

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι Παράςταςη κινητήσ υποδιαςτολήσ ςφμφωνα με το πρότυπο ΙΕΕΕ Δρ. Χρήστος Ηλιούδης το πρότυπο ΙΕΕΕ 754 ζχει χρθςιμοποιθκεί ευρζωσ ςε πραγματικοφσ υπολογιςτζσ. Το πρότυπο αυτό κακορίηει δφο βαςικζσ μορφζσ κινθτισ

Διαβάστε περισσότερα

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Σχόλια: - - This is a single line comment - - There is no alternative way to write multi-line comments Αναγνωριστικά: Τα αναγνωριστικά

Διαβάστε περισσότερα

Δομζσ Δεδομζνων Πίνακεσ

Δομζσ Δεδομζνων Πίνακεσ Δομζσ Δεδομζνων Πίνακεσ Διάλεξθ 2 Περιεχόμενα Πίνακεσ: Οριςμοί, Γενικζσ ζννοιεσ Αποκικευςθ πινάκων Ειδικζσ μορφζσ πινάκων Αλγόρικμοι Αναηιτθςθσ Σειριακι Αναηιτθςθ Δυαδικι Αναηιτθςθ Οριςμοί, Γενικζσ ζννοιεσ

Διαβάστε περισσότερα

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Μετάφραση ενός Προγράμματος Εξαιρέσεις

Μετάφραση ενός Προγράμματος Εξαιρέσεις ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 7 Μετάφραση ενός Προγράμματος Εξαιρέσεις Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Στάδια μετάφρασης ενός προγράμματος

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών

Αρχιτεκτονικές Συνόλου Εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ο

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 3: Προσπελάσεις Μνήμης στον MIPS. Μανόλης Γ.Η. Κατεβαίνης

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 3: Προσπελάσεις Μνήμης στον MIPS. Μανόλης Γ.Η. Κατεβαίνης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 3: Προσπελάσεις Μνήμης στον MIPS Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πώς Δημιουργείτε ένα Executable Αρχείο

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πώς Δημιουργείτε ένα Executable Αρχείο Εργαστήριο Αρ. 1 Εισαγωγή στην Αρχιτεκτονική MPS Πέτρος Παναγή Σελ. 1 Πώς Δημιουργείτε ένα Executable Αρχείο Source File: Ένα TEXT αρχείο με τον πυγαίο κώδικα. Assemble: Μεταφράζει τις assembly εντολές

Διαβάστε περισσότερα

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις Άσκηση 1: Σωστό/Λάθος

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

Διαβάστε περισσότερα

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2. ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2. Pipelining (Αν υπάρχει χρόνος) Θα ξαναπάμε πίσω στο Κεφ.3αργότερα. ΕΠΛ 221--

Διαβάστε περισσότερα

Τελική Εξέταση, Απαντήσεις/Λύσεις

Τελική Εξέταση, Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 Τελική Εξέταση, Απαντήσεις/Λύσεις Άσκηση 1: Assembly για

Διαβάστε περισσότερα

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Περιεχόμενα Ζννοια δομισ Οριςμόσ δομισ Διλωςθ μεταβλθτϊν Απόδοςθ Αρχικϊν τιμϊν Αναφορά ςτα μζλθ μιασ δομισ Ζνκεςθ Δομισ Πίνακεσ Δομϊν Η ζννοια τθσ δομισ Χρθςιμοποιιςαμε

Διαβάστε περισσότερα

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Τι

Διαβάστε περισσότερα

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1 Τεχνολογίες ημιαγωγών Chapter 2 Instructions: Language of the Computer 1 Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών Ι

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι Επιλεγμένες εντολές και συναρτήσεις assembly Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

Διαβάστε περισσότερα

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4 Τμήμα Μησανικών Πληποφοπικήρ, Τ.Ε.Ι. Ηπείπος Ακαδημαϊκό Έτορ 2016-2017, 6 ο Εξάμηνο Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4 Διδάςκων Τςιακμάκθσ Κυριάκοσ, Phd MSc in Electronic Physics (Radioelectrology)

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ.

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

Διαβάστε περισσότερα

Εισαγωγή στην πληροφορική -4

Εισαγωγή στην πληροφορική -4 Εισαγωγή στην πληροφορική 6 (, 64) bits Μνήµη Θέση (κύτταρο cell) µνήµης, χωράει λέξεις (words) εντολές (πρόγραµµα), αριθµοί (δεδοµένα) Αριθµοί: δυαδική (binary) αναπαράσταση = = = 4 = 4 = 5 = 7 Εισαγωγή

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

Διαβάστε περισσότερα