Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

Σχετικά έγγραφα
Διαφορές single-processor αρχιτεκτονικών και SoCs

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Οργάνωση Υπολογιστών (IΙI)

Λειτουργικά Συστήματα (ΗΥ321)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Εικονική Μνήμη (virtual memory)

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

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

Επαναληπτικές Ασκήσεις Μαθήματος

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Λογικά σύμβολα των CPU, RAM, ROM και I/O module

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Λογισμικό - Προγράμματα

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

Εικονική Μνήμη (Virtual Μemory)

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Τεχνολογίες Κύριας Μνήμης

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΥΝΕΡΓΑΣΤΗΚΑΝ ΡΟΚΑ ΑΦΡΟΔΙΤΗ ΣΩΤΗΡΑΚΟΥ ΣΤΑΜΑΤΙΑ ΦΕΒΡΟΥΑΡΙΟΣ 2006

Εισαγωγή στην Πληροφορική

Εικονική Μνήμη (1/2)

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Η ιεραρχία της μνήμης

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

Κ Α Λ Ε Ι. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Καβάλα ΥΠΟΥΡΓΕΙΟ ΥΓΕΙΑΣ & ΚΟΙΝΩΝΙΚΗΣ

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

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

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης

Λειτουργικά Συστήματα Η/Υ

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

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Εισαγωγή στα Λειτουργικά Συστήματα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Διασύνδεση Εισόδου-Εξόδου

Οργάνωση Υπολογιστών (ΙI)

Α. Τ Ε Χ Ν Ι Κ Η Ε Κ Θ Ε Σ Η

Κεφάλαιο 4. Διδακτικοί Στόχοι. Για την αναγκαιότητα, τον τρόπο συνεργασίας, τις δυνατότητες και τον τρόπο εγκατάστασης των περιφερειακών συσκευών.

Ιχνηλασία Λειτουργιών Εισόδου/Εξόδου σε Παράλληλα Συστήματα Αρχείων με χρήση Δικτύου Εικονικών Μηχανών ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Network Address Translation (NAT)

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Εικονική Μνήμη (Virtual Μemory)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

Μάθημα 8: Διαχείριση Μνήμης

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

Λ.Σ. και Ασφάλεια Πληροφοριακών Συστημάτων

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ


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

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

Λιβανός Γιώργος Εξάμηνο 2017Β

Επίπεδο δικτύου IP Forwading κτλ

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

7.2.2 Σχέση OSI και TCP/IP

Συστήματα Αρχείων (Σ.Α.)

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

Οδηγός Ασύρματου ικτύου Αισθητήρων στο Λειτουργικό Σύστημα Linux

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Εισαγωγή στα Λειτουργικά

Εισαγωγή στο διαδίκτυο

Λειτουργικά Συστήματα (ΗΥ321)

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

Οδηγός Ασύρματου Δικτύου Αισθητήρων στο Λειτουργικό Σύστημα Linux

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΓΡΑΜΜΑΤΕΙΑ ΣΥΓΚΛΗΤΟΥ ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Πληροφορική I. "Λογισμικό (Software)" B. Φερεντίνος

ΤΕΙ ΗΠΕΙΡΟΥ. ΜΑΘΗΜΑ: Πρωτόκολλα Επικοινωνίας ιαδικτύου. Εξάµηνο: 3ον. Στεργίου Ελευθέριος

Εισαγωγή στην Πληροφορική

ΠΛΕ- 027 Μικροεπεξεργαστές 11ο μάθημα: Είσοδος- Εξοδος (Ε/Ε)

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

Ανάπτυξη Ηλεκτρονικών Υπηρεσιών του Δημοκρίτειου Πανεπιστημίου Θράκης Υποέργο 4

Transcript:

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης Αναστάσιος Α. Νάνος ananos@cslab.ntua.gr Επιβλέπων: Νεκτάριος Κοζύρης, Επ. Καθηγητής Ε.Μ.Π.

Στόχος Σχεδίαση μηχανισμού ανάκτησης δεδομένων από συσκευές αποθήκευσης Πάνω από δίκτυο Myrinet Με παράκαμψη της ιεραρχίας μνήμης Υλοποίηση του μηχανισμού

Συνοπτικά... Συστήματα Αποθήκευσης Δίκτυα Διασύνδεσης Linux Σχεδιασμός μοντέλου ανάκτησης δεδομένων Υλοποίηση της συσκευής gmblock Σύνοψη / Συμπεράσματα

Συστήματα Αποθήκευσης Ιστορικά παραμελημένο κομμάτι μελέτης Μεγάλος όγκος πληροφοριών Μειωμένη ταχύτητα ανάκτησης / γρήγορα δίκτυα

Δίκτυα (Ι) Συνεχώς αυξανόμενη ταχύτητα φυσικού μέσου Αδυναμία εκμετάλλευσης εύρους ζώνης φυσικού στρώματος δικτύωσης Bottleneck μέσα στο Υπολογιστικό Σύστημα Αντιγραφές μέσα στον πυρήνα Αύξηση του Latency Μείωση της ταχύτητας ανάκτησης δεδομένων από δίκτυο

Δίκτυα (ΙΙ) TCP/IP Ευρέως διαδεδομένο (+) Πολύπλοκη υλοποίηση (-) Απαιτεί επεξεργαστική ισχύ και μνήμη για την εγκατάσταση επικοινωνίας (-) Αυξάνει τo latency μέσα στο Υ.Σ. (-)

Δίκτυα (ΙΙ) TCP/IP Myrinet Υψηλές Ταχύτητες Τοπολογία Έλεγχος σφαλμάτων Έξυπνη Δρομολόγηση Έλεγχος Ροής Σύστημα επικοινωνίας χώρου χρήστη Επικοινωνία με μηνύματα Αξιοπιστία

Δικτυακή Συσκευή Αποθήκευσης Εικονική συσκευή αποθήκευσης Ανάκτηση / Αποθήκευση δεδομένων απο απόσταση Βασικά σημεία Εφαρμογές Έκδοση αιτήσεων για ανάγνωση Εξυπηρέτηση αιτήσεων Δίκτυο Μεταφορά αίτησης / εξυπηρετημένης αίτησης

Επιλογές Σχεδίασης Λειτουργικό Linux Σύστημα Ανοικτό Λογισμικό Δίκτυο Φορητότητα Επεκτασιμότητα Διασύνδεσης Συστήματα Αρχείων Βασικά Οδηγοί Συσκευών χαρακτηριστικά

Επιλογές Σχεδίασης Λειτουργικό Myrinet Σύστημα Υψηλή ταχύτητα στο φυσικό μέσο Δίκτυο Επικοινωνία με μηνύματα Δικτύωση στο χώρο χρήστη Διασύνδεσης Βασικά χαρακτηριστικά

Επιλογές Σχεδίασης Λειτουργικό Σύστημα Δίκτυο Διασύνδεσης Βασικά χαρακτηριστικά TCP/IP Myrinet Χώρος Χρήστη Χώρος Πυρήνα Μνήμη κάρτας δικτύου Δίκτυο (καλώδιο)

Επιλογές Σχεδίασης Λειτουργικό Σύστημα Δίκτυο Διασύνδεσης Βασικά χαρακτηριστικά Myrinet interface LANai RISC μp LANai SRAM DMA send / receive DMA host-to/from-lanai

Επιλογές Σχεδίασης Λειτουργικό Σύστημα Δίκτυο Διασύνδεσης Βασικά χαρακτηριστικά Myrinet interface (gm) Ports Gm module (nic driver) Library (libgm) Firmware (mcp) library (libgm) Process userspace kernelspace Port gm module host host Process Process hardware Myrinet NIC (mcp)

Επιλογές Σχεδίασης Λειτουργικό Σύστημα Δίκτυο Διασύνδεσης Βασικά χαρακτηριστικά Δέσμευση DMA buffer στην κεντρική μνήμη Δήλωση token Ενημέρωση LANai Αντιγραφή στη στατική μνήμη (host-to-lanai DMA) Αντιγραφή στο δίκτυο (LANaito-network DMA)

Επιλογές Σχεδίασης Λειτουργικό Μοντέλο Πελάτη Εξυπηρετητή Υλοποίηση σε χώρο χρήστη Σύστημα Δίκτυο Διασύνδεσης Βασικά χαρακτηριστικά

Πελάτης Εξυπηρετητής Στρώμα χειρισμού συσκευών block Στρώμα χειρισμού συσκευών block Οδηγός Δικτυακής Συσκευής Block Οδηγός Συσκευής Δικτύου Οδηγός Συσκευής Δικτύου Συσκευή Δικτύου Συσκευή Δικτύου Οδηγός Συσκευής Block Storage

Πελάτης Έκδοση μιας αίτησης ανάγνωσης δεδομένων Μετάφραση αίτησης σε δικτυακό μήνυμα Αποστολή στο δίκτυο για εξυπηρέτηση

Πελάτης (generic) Έκδοση Αίτησης Έλεγχος αν υπάρχει στην page cache Ενημέρωση για την αίτηση στο στρώμα χειρισμού συσκευών block Πέρασμα στον οδηγό συσκευής δικτυακής αποθήκευσης Μετάφραση και αντιγραφή στον οδηγό της κάρτας δικτύου Αντιγραφή στην κάρτα δικτύου Αποστολή προς εξυπηρέτηση Λήψη μηνύματος Αντιγραφή στον οδηγό της κάρτας δικτύου Αντιγραφή στον οδηγό nbd buffer page cache NIC Driver vfs OS block layer Network Block Device Driver NIC Αντιγραφή στην page cache Ενημέρωση του στρώματος χειρισμού συσκευών block Αντιγραφή στο χώρο χρήστη

Εξυπηρετητής (generic) Άνοιγμα της συσκευής Λήψη αίτησης Ανάκτηση δεδομένων Αποστολή ζητούμενων δεδομένων με την αίτηση bd = open(/dev/local_block_device, O_READONLY); for (;;) { recv(&request); read(bd, request, &buffer); send(buffer, remote_node); }

Μονοπάτι δεδομένων στον Εξυπηρετητή (nbd over TCP/IP) Εισερχόμενη αίτηση Αντιγραφή στην κεντρική μνήμη στο χώρο πυρήνα Αντιγραφή στο χώρο χρήστη Αίτηση ανάγνωσης από το μέσο αποθήκευσης Έλεγχος αν υπάρχει στην page cache Aντιγραφή των δεδομένων στην page cache Αντιγραφή των δεδομένων στο χώρο χρήστη buffer TCP page cache vfs IP NIC drv Αντιγραφή των δεδομένων NIC στο χώρο πυρήνα και προετοιμασία του Αντιγραφή στην μηνύματος δικτύου κάρτα δικτύου Storage Αποστολή στο δίκτυο

Μονοπάτι δεδομένων στον Εξυπηρετητή (nbd over TCP/IP) Εισερχόμενη αίτηση Αντιγραφή στην κεντρική μνήμη στο χώρο πυρήνα Αντιγραφή στο χώρο χρήστη και μετάφραση της αίτησης NIC CPU0 Αίτηση ανάγνωσης από το μέσο αποθήκευσης και αντιγραφή των δεδομένων στην κεντρική μνήμη CPU1 Northbridge Αντιγραφή των δεδομένων στο χώρο χρήστη Αντιγραφή των δεδομένων στην κάρτα δικτύου Αποστολή στο δίκτυο Storage Storage DIMMs

Εξυπηρετητής (direct I/O) Άνοιγμα της συσκευής Λήψη αίτησης Ανάκτηση δεδομένων (με απευθείας Ε/Ε) Αποστολή ζητούμενων δεδομένων με την αίτηση bd = open(/dev/local_block_device, O_READONLY O_DIRECT); for (;;) { gm_recv(&request); read(bd, request, &buffer); gm_send(buffer, remote_node); }

Μονοπάτι δεδομένων στον Εξυπηρετητή (nbd over Myrinet) Εισερχόμενη αίτηση Αντιγραφή στο χώρο χρήστη Αίτηση ανάγνωσης από το μέσο αποθήκευσης buffer Αντιγραφή των δεδομένων στο χώρο χρήστη vfs Αντιγραφή στην κάρτα δικτύου Αποστολή στο δίκτυο NIC Storage

Μονοπάτι δεδομένων στον Εξυπηρετητή (nbd over Myrinet) Εισερχόμενη αίτηση Αντιγραφή των δεδομένων στην κεντρική μνήμη στο χώρο χρήστη NIC CPU0 CPU1 Μετάφραση της αίτησης Αίτηση ανάγνωσης από το μέσο αποθήκευσης και αντιγραφή των δεδομένων στην κεντρική μνήμη (O_DIRECT) Αντιγραφή των δεδομένων στην κάρτα δικτύου Αποστολή στο δίκτυο Northbridge Storage Storage DIMMs

Εξυπηρετητής (tcp/ip & myrinet) Εύρος ζώνης μνήμης Αντίγραφα στον πυρήνα (tcp/ip) Μεταφορά με χρήση της κεντρικής μνήμης (Myrinet) Χρήση CPU Εκτός από τη μετάφραση δημιουργεί αντίγραφα (tcp/ip) Βελτίωση με Direct I/O (Μyrinet)

Εξυπηρετητής (gmblock) gm buffers στο χώρο εικονικής μνήμης της διεργασίας του εξυπηρετητή (ουσιαστικά στην SRAM) Ανάκτηση δεδομένων με Direct I/O bd = open(/dev/local_block_device, O_READONLY O_DIRECT); for (;;) { gm_recv(&request); read(bd, request, &buffer); gm_send(buffer, remote_node); }

Μονοπάτι δεδομένων στον Εξυπηρετητή (gmblock) Εισερχόμενη αίτηση Αντιγραφή στο χώρο χρήστη Αίτηση ανάγνωσης από το μέσο αποθήκευσης Αντιγραφή στην κάρτα δικτύου (O_DIRECT) vfs Αποστολή στο δίκτυο SRAM NIC Storage

Μονοπάτι δεδομένων στον Εξυπηρετητή (gmblock) Εισερχόμενη αίτηση Αντιγραφή των δεδομένων στην κεντρική μνήμη στο χώρο χρήστη NIC CPU0 CPU1 Μετάφραση της αίτησης Αίτηση ανάγνωσης από το μέσο αποθήκευσης και αντιγραφή των δεδομένων στην κάρτα δικτύου (O_DIRECT) Northbridge Αποστολή στο δίκτυο Storage Storage DIMMs

Υλοποίηση Πελάτης (kernel module) Εξυπηρετητής (εφαρμογή χώρου χρήστη) Βελτιστοποιημένο Μονοπάτι (αλλαγές στον πυρήνα και στο GM)

Αίτηση gmblock Αναγνωριστικό Αρχικός sector Αριθμός sectors Ζητούμενα δεδομένα

Πελάτης Εικονική Συσκευή Block Δομή εφαρμογής Αιτήσεις: Μετάφραση Αιτήσεις: Ολοκλήρωση

Πελάτης / Ουρά αιτήσεων Ουρά αιτήσεων Έξοδος αίτησης block από ουρά αιτήσεων της συσκευής Μετάφραση αίτησης block σε αίτηση gmblock Αποστολή στο δίκτυο

Πελάτης / Λήψη και Ολοκλήρωση Λήψη μηνύματος Αναγνώριση αίτησης gmblock Μετάφραση αίτησης gmblock σε αίτηση block Αντιγραφή των ζητούμενων δεδομένων στους απομονωτές Πέρασμα στην end_request() για ολοκλήρωση της αίτησης

Εξυπηρετητής Νήματα Χειρισμός Αιτήσεων Ανάγνωση από το μέσο αποθήκευσης Αποστολή ολοκληρωμένων αιτήσεων bd = open(/dev/local_block_device, O_READONLY O_DIRECT); for (;;) { gm_recv(&request); read(bd, request, &buffer); gm_send(buffer, remote_node); }

Εξυπηρετητής Εύρεση του απομονωτή στην SRAM του LANai Άνοιγμα της συσκευής αποθήκευσης (O_DIRECT) Λήψη μηνύματος Αναγνώριση αίτησης gmblock Μετάφραση αίτησης gmblock σε sector και nr Αντιγραφή των ζητούμενων δεδομένων στην αίτηση πάνω στη στατική μνήμη του LANai Πέρασμα στη my_send() για την αποστολή της αίτησης με gm_send() στο καλώδιο

Βελτιστοποιημένο Μονοπάτι Αλλαγές: στο GM (βιβλιοθήκη, firmware, οδηγός συσκευής) στον πυρήνα του Linux

Αλλαγές στο GM Allocation του απομονωτή της SRAM (firmware) malloc() Απεικόνιση του απομονωτή στο χώρο εικονικών διευθύνσεων (libgm, kernel module) mmap() Αποστολή από τον απομονωτή σαν να ήταν GM buffer (library, firmware) user_sdma bypass

Αλλαγές στο GM δέσμευση απομονωτή στη στατική μνήμη του LANai απεικόνιση του sram_buf στο χώρο εικονικών διευθύνσεων αποστολή στο δίκτυο μέσω του sram_buf Virtual Memory 0GB 4GB RAM PCI Map Physical Address Space SRAM RAM Myrinet NIC

Διαχείριση μνήμης στον πυρήνα Memory Zones Zone_DMA Zone_Normal Zone_Highmem Αντιστοιχίζονται οι ψηφίδες μνήμης (RAM) Δημιουργούνται (από τον πυρήνα) struct pages με πληροφορίες για τη μνήμη (dirty / flushed / reserved κλπ)

Direct I/O & DMA DMA μεταφορά με O_DIRECT σε διευθύνσεις μνήμης SRAM (που απεικονίζεται στο χώρο εικονικών διευθύνσεων / virtual memory) ΔΕΝ αντιμετωπίζεται ως μνήμη. Ενσωμάτωση ΖΟΝΕ_PCI (φυσικές διευθύνσεις διαύλου PCI) στη διαχείριση μνήμης pci bus addresses <-> struct pages διευθύνσεις διαύλου PCI == μνήμη Μπορεί να ενσωματωθεί στο μηχανισμό διαχείρισης μνήμης του πυρήνα και έτσι Μπορεί να γίνεται DMA από και προς αυτό.

ΖΟΝΕ_PCI & lspci -v # lspci -v 0000:00:0a.0 Network controller: MYRICOM Inc. Myrinet 2000 Scalable Cluster Interconnect (rev 03) Subsystem: MYRICOM Inc. Myrinet 2000 Scalable Cluster Interconnect Memory at e4000000 (32-bit, prefetchable) [size=16m] # cat /proc/zoneinfo Node 0, zone Memory-mapped PCI pages free 0 present 950287 start_pfn: 98288 -> 17FF0000= 0.3 GB present + start_pfn = zone_pci_end = 1048575 pages = FFFFF000 =4GB

ΖΟΝΕ_PCI & lspci v 0GB e5000000 0.3GB 4GB RAM (ψηφίδες) PCI map 0x00000000 0x17FF0000 e4000000 0xFFFFF000 Physical Memory LANai Physical address space Memory at e4000000 (32-bit, prefetchable) [size=16m]

Συμπεράσματα Ανεξαρτησία από το block layer (εξυπηρετητής, βελτιστοποιημένο μονοπάτι) Μηχανισμός που εν δυνάμει μπορεί να συντελέσει στη βελτίωση της επίδοσης δικτυακών συσκευών αποθήκευσης Μείωση στο ελάχιστο της επιβάρυνσης του επεξεργαστή από το μονοπάτι των δεδομένων

Επεκτάσεις Πολλές requests σε εξέλιξη Read-write Parallel file system