Εισαγωγή στην πληροφορική 6 (, 64) bits Μνήµη Θέση (κύτταρο cell) µνήµης, χωράει λέξεις (words) εντολές (πρόγραµµα), αριθµοί (δεδοµένα) Αριθµοί: δυαδική (binary) αναπαράσταση = = = 4 = 4 = 5 = 7 Εισαγωγή στην πληροφορική - Μνήµη () Μνήµη () Πως περιγράφουµε το περιεχόµενο µιας θέσης µνήµης (λέξης) ; = D7C Το περιγράφουµε σαν µια τετράδα αριθµών στο δεκαεξαδικό σύστηµα 4 5 6 7 8 9 Α Β C D E F Ακέραιοι αριθµοί: Χαρακτήρες (ASCII code): Εντολές προγράµµατος: 6 bits ακέραιος / λέξη 8 bits 8 bits op-code χαρακτήρες / λέξη διεύθυνση µνήµης 4 bits bits Πλήθος 6 8 = 56 4, Εισαγωγή στην πληροφορική - Εισαγωγή στην πληροφορική -4
Αρχιτεκτονική µηχανής Αρχιτεκτονική µηχανής () Program counter Instruction register Accumulator Program data, άλλες χρήσεις load store Microprogram Program counter Instruction register Accumulator Micromemory καταχωρητές (registers) Εισαγωγή στην πληροφορική -5 Εισαγωγή στην πληροφορική -6 Παράδειγµα 4 bits bits διεύθυνση µιας θέσης Μ στην κύρια µνήµη LOAD M M -> ACC STORE M ACC -> M ADD M ACC+M -> ACC SUBTRΑCT M ACC-M -> ACC MULTIPLY M ACC*M -> ACC DIVIDE M ACC/M -> ACC JUMP M πήδα στην θέση Μ JUMPZERO M πήδα στην θέση Μ εάν ACC= JUMPSUB M πήδα στην υπορουτίνα στην θέση Μ RETURN M επέστρεψε από υπορουτίνα στη θέση Μ HALT 946 LOAD 959 947 STORE 958 948 LOAD 957 949 JUMPZERO 956 95 SUBTRACT 959 95 STORE 957 95 LOAD 958 95 ADD 958 954 STORE 958 955 JUMP 948 956 HALT 957 45 958 959 96 ACC x y σταθερά = Υπολογισµός του x y = = L ο βήµα ο βήµα y:= while x!= do { x:=x-; y:= y+y} Εισαγωγή στην πληροφορική -7 Εισαγωγή στην πληροφορική -8
Υπορουτίνες Υπορουτίνες () 6 7 JUMPSUB 8 946 διεύθ. επιστροφής XXXX 947 XXXX 948 XXXX 959 RETURN Πρόγραµµα σε γλώσσα µηχανής: Γράφεται από τον compiler, χρησιµοποιεί Πληροφορία που υπάρχει από την αρχή : στατική (άρα την ξέρει ο compiler όταν µεταφράζει το πρόγραµµα σε γλώσσα µηχανής) Πληροφορία που µπαίνει κατά την διάρκεια του τρεξίµατος του προγράµµατος : δυναµική (ο compiler ξέρει πως να φτιαχτεί at run time) module δυναµική πληροφορία στατική πληροφορία 6 7 JUMPSUB 8 4 4 JUMPSUB 4 χώρος για δυναµική χρήση 946 XXXX 947 XXXX 948 XXXX 959 RETURN Εισαγωγή στην πληροφορική -9 Εισαγωγή στην πληροφορική - Πέρασµα παραµέτρων main program x := 5; y := 6; z := f(x,y); r := ; d := ; z := f(r,d); module f(a,b); {t:= a+b; t:= *t; return t } πραγµατικές παράµετροι τυπικές παράµετροι τιµή που επιστρέφεται module module βασικό πρόγραµµα µνήµη Πέρασµα παραµέτρων () activation record ενός module return value b a return address της f main program x := 5; y := 6; z := f(x,y); r := ; d := ; z := f(r,d); module f(a,b); {t:= a+b; t:= *t; return t } µηχανής. x -> y -> jumpsub z <-... r -> d -> jumpsub z <-.. t <- (-)+(-) t <- t * t -> return Εισαγωγή στην πληροφορική - Εισαγωγή στην πληροφορική -
Περισσότερη πολυπλοκότητα Τεχνικές εισόδου-εξόδου CISC RISC: απλές ή πολύπλοκες γλώσσες µηχανής; pipelining: δουλεύουµε σε πολλές εντολές παράλληλα Πολυεπεξεργαστές: MIMD, SIMD, network, load-balancing index register D Addressing (πρόσβαση): 54 Τύπος πρόσβασης Εντολή Τιµή στον ACC immediate LOAD 5 immediate 5 direct LOAD 5 direct 54 indirect LOAD 5 indirect indexed LOAD 5 indexed 89 7 89 5 5 54 55 copy main memory status register / / a buffer register device busy/ready/successful_read I/O device b c d e f g PC interrupt # interrupt table program code modules για interrupts Εισαγωγή στην πληροφορική - Εισαγωγή στην πληροφορική -4 Λογικές πύλες Μνήµη AND πύλη OR πύλη είσοδοι είσοδοι είσοδος NOT πύλη δεδοµένα εισόδου Flip-flop = bit Α καταχωρητής 6 bits = 6 flip-flops Β Είσοδοι Είσοδοι Είσοδος έλεγχος Γ δεδοµένα εξόδου Στα σύρµατα ΑΒ, Γ η τάση αλλάζει µόνο κατά την διάρκεια του παλµού ελέγχου, µετά παραµένει Η τιµή των δεδοµένων εξόδου παραµένει σταθερή Εισαγωγή στην πληροφορική -5 Εισαγωγή στην πληροφορική -6
Αθροιστής Αθροιστής () πρώτο ψηφίο δεύτερο ψηφίο ψηφία πρώτου αριθµού ψηφία δεύτερου αριθµού / / / / / + ->, + ->, + ->, + ->, κύκλωµα ηµιαθροιστή Εισαγωγή στην πληροφορική -7 / / / Εισαγωγή στην πληροφορική -8