Skip to main content
Call us : 2810-393312
E-mail :
helpdesk@uoc.gr
English (en)
Ελληνικά (el)
English (en)
You are currently using guest access
Log in
Home
Home
More
Open course index
Open block drawer
Οργάνωση Υπολογιστών
Topic outline
General information
Collapse all
Expand all
General Information
Page
Course Content
Page
Instructor Details
Page
Target Group
Page
Course Objectives
Page
Requirements
Page
Bibliography - Sources
Page
1. Introduction, Registers, add/sub, addi, the Assembly language and the SPIM simulator
1.0 Περιγραφή του μαθήματος και διαδικαστικά
Page
1.1: Βασική λειτουργία του Υπολογιστή
Page
1.2: Γλώσσες Μηχανής, Καταχωρητές, RISC, MIPS
Page
1.3 (α): Assembly - add/sub, j
Page
1.3 (β): Immediates, Καταχωρητής Μηδέν, Σύνθεση άλλων πράξεων
Page
1.4: Προσομοιωτές, SPIM
Page
1.5: Οδηγίες (Directives) προς τον Assembler
Page
Άσκηση 1: Εισαγωγή, Καταχωρητές, add/sub, addi, η Γλώσσα Assembly και ο Προσομοιωτής SPIM
File
2. Loops and SPIM Console Communication
2.1: Διακλαδώσεις υπό Συνθήκη
Page
2.2: Strings, Print, Read
Page
Άσκηση 2: Βρόχοι και Επικοινωνία Κονσόλας στον SPIM
File
3. Memory accesses in MIPS
3.1 (α): Οι εντολές load και store
Page
3.1 (β): Πίνακες, παράδειγμα σελίδων 123-125
Page
3.2 (α): Αρχιτεκτονικές Byte Addressable
Page
3.1 (γ): Χρήσεις του Addressing Mode του MIPS
Page
3.2 (β): Περιορισμοί Ευθυγράμμισης
Page
3.4: Σχόλια για την Άσκηση 3.1
Page
3.3 (α): Τι είναι οι Μηχανές Big-Endian και Little-Endian;
Page
3.3 (β): Τι θα συμβεί αν τρέξουμε το πρόγραμμα σε έναν επεξεργαστή;
Page
3.3 (γ): ftp
Page
Άσκηση 3: Προσπελάσεις Μνήμης στον MIPS
File
4. Machine language, Instruction format
4.1: Format Εντολών του MIPS (Γλώσσα Μηχανής)
Page
4.2: op-func: Κωδικοποίηση Μεταβλητού Μήκους
Page
Άσκηση 4: Γλώσσα Μηχανής, Format Εντολών
File
5. Comparison and Control Transfer Instructions
5.1 (α): Προορισμός διακλαδώσεων PC-relative
Page
5.1 (β): Συγκρίσεις καταχωρητών στις Εντολές Διακλάδωσης του MIPS
Page
5.1 (γ): Οι εντολές slt, slti
Page
ΕΠΑΝΑΛΗΨΗ
Page
5.1 (γ - δεύτερο μέρος): Οι εντολές slt, slti
Page
5.1 (δ): Μετάφραση if-then-else
Page
5.1 (ε): Μετάφραση while
Page
5.1 (στ): Μετάφραση Συνθήκης με Λογικό ΚΑΙ
Page
5.1 (ζ): Εντολή Jump και Διεύθυνση Προορισμού της
Page
5.1 (η): Jump-Register για πολύ μακριά και για επιστροφή από τη διαδικασία
Page
5.1 (θ): Jump-Register για Switch Statement
Page
5.1 (ι): Jump-and-Link για κάλεσμα διαδικασίας
Page
Άσκηση 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου
File
6. Procedure Calls, Register saving and restoring
6.2 (α): Που αποθηκεύεται η Διεύθυνση Επιστροφής;
Page
6.1 (α): Ορισμός Caller-Saved, Callee-Saved
Page
6.1 (β): Διάρκεια ζωής Καταχωρητή
Page
6.1 (γ): Περίπτωση 1: νεκρός στο κάλεσμα
Page
6.1 (δ): Περίπτωση 2: ζωντανός στο κάλεσμα
Page
6.1 (ε): Προσωρινοί και Διατηρούμενοι Καταχωρητές
Page
6.2 (β): Ορίσματα και Επιστρεφόμενες τιμές διαδικασιών
Page
6.2 (γ): Χάρτες Καταχωρητών - 6.4: Καθολικές (Global) Μεταβλητές
Page
6.3: Αναδρομή, Στοίβα
Page
Σημειώσεις Διδασκαλίας 6: Κάλεσμα Διαδικασιών, Χρήση και Σώσιμο Καταχωρητών
File
7. Linked List and Procedure Call Program (Exercise)
7.2: Δυναμική Εκχώρηση Μνήμης
Page
Επανάληψη Καλέσματος και Επιστροφής διαδικασίας
Page
Άσκηση 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών
File
8. A simple MIPS implementation in a single-cycle per instruction
8.1 Γενική Ιδέα Απλής Υλοποίησης του MIPS σε 1 κύκλο ρολογιού ανά εντολή
Page
8.2: Πολύπορτο Αρχείο Καταχωρητών
Page
8.3: Προσημασμένοι Αριθμοί, Επέκταση Προσήμου
Page
8.4: Load Upper Immediate: Κατασκευή Αυθαίρετων 32-μπιτων σταθερών σε καταχωρητή
Page
8.5: To Datapath του MIPS ενός κύκλου ρολογιού με πλήρεις λεπτομέρειες
Page
8.6: Το (Συνδυαστικό) Κύκλωμα Ελέγχου
Page
8.7: Πόσο αργό είναι το ρολόι της απλής υλοποίησης;
Page
8.8: Περί σπατάλης ή μη υπολογιστικών πόρων
Page
8.9: Υλοποίηση πολλαπλών κύκλων ανά εντολή για εξοικονόμηση πόρων
Page
ΕΠΑΝΑΛΗΨΗ - Οι Διευθύνσεις Μνήμης και οι Εντολές Load και Store
Page
ΕΠΑΝΑΛΗΨΗ - Εντολές Διακλάδωσης και Διαδικασίες
Page
Άσκηση 8: Μία Απλή Υλοποίηση του MIPS σε Έναν Κύκλο Ρολογιού ανά Εντολή
File
Quiz
9. Pipelining
9.1: Εισαγωγή, Παροχή, Καθυστέρηση, Παράδειγμα Μπουγάδας
Page
9.2: Βασική ιδέα του Pipelined Datapath
Page
9.3: Παροχή και καθυστέρηση... ξανά!
Page
9.4: Λεπτομερής Λειτουργία του Pipelined Datapath χωρίς Αλληλεξαρτήσεις ή Διακλαδώσεις
Page
9.5: Γραφική Αναπαράσταση Ομοχειρίας
Page
9.6: Μονάδα Ελέγχου για την Ομοχειρία
Page
9.7: Εντολές ALU: 4 ή 5 Βαθμίδες;
Page
9.8: Αλληλεξαρτήσεις μεταξύ εντολών ALU: "Προσπέρασμα"
Page
9.9: Datapath για Προσπέρασμα
Page
9.10: Έλεγχος για Προσπέρασμα
Page
9.11: Εξάρτηση από προηγούμενη εντολή Load: Αναμονή
Page
9.12: Κύκλωμα Ελέγχου για Αναμονή
Page
9.13: Στατική Αναδιάταξη Εντολών γιά την Αποφυγή Αναμονών
Page
9.14: Αλληλεξαρτήσεις RAW, WAW, WAR
Page
9.15: Οι Aλληλεξαρτήσεις στη δική μας Pipeline, Συνολικά
Page
9.16: Διακλαδώσεις και Άλματα, Υπόθεση Αποτυχίας της Διακλάδωσης και Ακύρωση Εντολών εάν αυτή Επιτύχει
Page
9.17: Πρόβλεψη Διακλαδώσεων
Page
Άσκηση 9: Εισαγωγή στην Ομοχειρία (Pipelining - Διοχέτευση)
File
10. Processor performance, CPI
Άσκηση 10.1: Επίδοση Επεξεργαστών
Page
Άσκηση 10.2: Mέσο CPI του Επεξεργαστή πολλαπλών κύκλων ανά εντολή
Page
Άσκηση 10: Επίδοση Επεξεργαστών, CPI
File
11. Cache Memories and their performance
11.0: Εισαγωγή στην Ιεραρχία Μνήμης
Page
11.3 (α): Πώς ψάχνουμε κάτι που το έχουμε στην κρυφή μνήμη;
Page
11.3 (β): Kρυφές μνήμες Μονοσήμαντης ('Αμεσης) Απεικόνισης
Page
11.3 (γ): Οι Ετικέτες (Tags)
Page
11.1: Μέσος Χρόνος Προσπέλασης Ιεραρχίας Μνήμης
Page
11.2: Επίδοση Επεξεργαστή με Ιεραρχία Μνήμης
Page
11.5: Αύξηση μεγέθους του Block (Line) για εκμετάλλευση της Χωρικής Τοπικότητας
Page
11.5 (β): Block (Line) για εκμετάλλευση της Χωρικής Τοπικότητας
Page
11.6: Συσχετιστική Κρυφή Μνήμη Δύο Δρόμων
Page
11.7: Επιλογή του Block που θα Αντικατασταθεί
Page
11.8: Ταυτόχρονη και Ετερόχρονη Εγγραφή (Write-Through, Write-Back)
Page
Επιπλέον διδακτικό υλικό κρυφών μνημών
File
Άσκηση 11: Κρυφές Μνήμες και η Επίδοσή τους
File
12. Virtual memory
12.1 (α): Εικονική Μνήμη: Στόχοι της
Page
12.1 (β): Διεργασίες (Processes), Εικονικές Μηχανές
Page
12.2 (α): Σελίδες, Τοποθέτηση, Αναζήτηση
Page
12.2 (β): Μετάφραση Διευθύνσεων
Page
12.2 (γ): Ταχύτητα Μετάφρασης: TLB και η σχέση του με τις Κρυφές Μνήμες
Page
12.2 (δ): Το TLB σε σχέση με την Κρυφή Μνήμη
Page
12.3 (α): Διακοπές/Εξαιρέσεις
Page
12.3 (β): Προστασία Λειτουργικού Συστήματος: User/Kernel Mode
Page
12.3 (γ): Προστασία και Συνεργασία μεταξύ Διεργασιών
Page
12.5: Πολυεπίπεδοι Πίνακες Μετάφρασης
Page
Άσκηση 12: Εικονική Μνήμη (Virtual Memory)
File
13. I/O units, Buses, DMA
13.1: SRAM, DRAM, Προσπελάσεις Συνεχόμενων Λέξεων
Page
13.2: Κόστος Εκκίνησης και Παροχή (Startup Cost versus Throughput)
Page
13.3: Διαφύλλωση (Interleaving), Αλληλοκαλυπτόμενες Δοσοληψίες
Page
13.4: Απεικόνιση Μνήμης των Μονάδων Ε/Ε (Memory Mapped I/O)
Page
13.5 (α): Καταχωρητές Κατάστασης
Page
13.5 (β): Busy Wait, Polling
Page
13.6: Κόστος Ε/Ε βάσει Δειγματοληψίας και βάσει Διακοπών
Page
13.7: Aπευθείας Πρόσβαση Μνήμης (DMA) από Συσκευές Ε/Ε
Page
Άσκηση 13: Μονάδες Εισόδου/Εξόδου (I/O), Σύνδεσμοι/Αρτηρίες, DMA
File
14. Cache Coherence, advanced processors (Out-of-Order, Superscalar, Multithreading, Multicores)
14.1: DMA και Συνοχή Κρυφής-Κύριας Μνήμης
Page
14.2 (α): Πολυεπεξεργαστές και Κρυφές Μνήμες
Page
14.2 (β): Πρωτόκολλα Συνοχής τύπου "Snooping"
Page
14.4 (α): Παραλληλία Επιπέδου Εντολής (ILP)
Page
14.4 (β): Στατικό Instruction Scheduling και οι δυσκολίες του με άγνωστες διευθύνσεις
Page
14.4 (γ): Επεξεργαστές με Out-of-Order Execution
Page
14.5: Πολυνημάτωση (Multithreading)
Page
Άσκηση 14: Συνοχή (Coherence) Κρυφών Μνημών, Προχωρημένοι Επεξεργαστές (Out-of-Order, Superscalar, Multithreading, Multicores)
File
15. REFRESHER COURSE
15.1: Ευθυγράμμιση Μπλοκς
Page
15.2: Εικονικές Μνήμες
Page
15.3: Κρυφές Μνήμες
Page
15.4: CPI (Cycles per Instruction)
Page
15.5: Interrupts and Exceptions
Page
15.6: Pipeline
Page
15.7: Επικοινωνία με τις Περιφερειακές Συσκευές
Page
15.8: Προχωρημένοι Επεξεργαστές
Page