Παράδειγμα τρήζης ηοσ προζομοιωηή ηοσ TRN+ Παξαθάησ αλαθέξεηαη έλα νινθιεξσκέλν ζελάξην ρξήζεο ηνπ ινγηζκηθνύ πξνζνκνίσζεο ηνπ TRN+. 1. Αξρηθά, αλνίγνπκε ην πεξηβάιινλ πξνζνκνίσζεο πνπ απεηθνλίδεηαη ζηελ εηθόλα 1. Τν πεξηβάιινλ αλνίγεη θάλνληαο δηπιό θιηθ ζην αξρείν trn.jar..όπσο, παξαηεξνύκε ζηε γξακκή ηίηινπ ηνπ παξαζύξνπ, αξρηθά δε θνξηώλεηαη θαλέλα πξόγξακκα ζηνλ πξνζνκνησηή ( No program loaded. ). Γηαθξίλνπκε, επίζεο, όινπο ηνπο θαηαρσξεηέο ηεο θεληξηθήο κνλάδαο επεμεξγαζίαο, ην πεδίν εηζαγσγήο δεδνκέλσλ ( Input ) θαη ηελ πεξηνρή θαηαγξαθήο γεγνλόησλ ( Logging Process Area ). Δηθόλα 1. Πεξηβάιινλ πξνζνκνησηή 2. Αλνίγνπκε ην Notepad ή νπνηνδήπνηε αιιό επεμεξγαζηή θεηκέλνπ πξνθεηκέλνπ λα γξάςνπκε ηελ εθαξκνγή καο ζε γιώζζα Assembly. Σώδνπκε ην αξρείν κε θαηάιεμε.asm. Σηε ζπλέρεηα, εθηεινύκε ηελ παξαθάησ αθνινπζία ελεξγεηώλ κέζα από ην πεξηβάιινλ πξνζνκνίσζεο. File Open Assembly File Δάλ ην πξόγξακκά καο είλαη νξζό ζπληαθηηθώο ηόηε θνξηώλεηαη ζηε κλήκε θαη είλαη έηνηκν πξνο εθηέιεζε πξνζνκνίσζε. Σε πεξίπησζε εύξεζεο ζπληαθηηθνύ ιάζνπο, ιακβάλνπκε κήλπκα ιάζνπο ζπκβνινκεηάθξαζεο (Translation Error) θαη ην πξόγξακκα δελ θνξηώλεηαη ζηε κλήκε. 1
3. Δθόζνλ ην πξόγξακκα δελ παξνπζηάζεη ζπληαθηηθό ιάζνο, θνξηώλεηαη ζηε κλήκε θαη απεηθνλίδεηαη ζηελ πάλσ αξηζηεξή γσλία ηνπ πεξηβάιινληνο πξνζνκνίσζεο κε ηε κνξθή «Γηεύζπλζε - Γεδνκέλα» Δηθόλα 2. Καηάζηαζε κλήκεο ηνπ πξνζνκνησηή 4. Γηα ηελ εθθίλεζε πξνζνκνίσζεο παηάκε Run. 5. Καζώο ην πξόγξακκα εθηειείηαη, έρνπκε ηε δπλαηόηεηα i. λα ηξνπνπνηήζνπκε ηελ ηαρύηεηα πξνζνκνίσζεο ( slow, medium, fast, define ). ii. λα παγώζνπκε ηελ εθηέιεζε ηνπ πξνγξάκκαηνο ( Pause) iii. λα δηαθόςνπκε ηελ εθηέιεζε ηνπ πξνγξάκκαηνο ( Stop ) 6. Σε πεξίπησζε πνπ ζέινπκε λα απνζεθεύζνπκε ηελ θαηάζηαζε ηεο κλήκεο ηνπ επεμεξγαζηή παγώλνπκε ην πξόγξακκα (Pause) θαη ζηε ζπλέρεηα εθηεινύκε ηελ παξαθάησ αθνινπζία ελεξγεηώλ File Save memory to image file Αληίζηξνθα, έρνπκε ηε δπλαηόηεηα λα επαλαθηήζνπκε ην ζηηγκηόηππν ηεο κλήκεο νπνηεδήπνηε εκείο επηιέμνπκε. File Load memory image file (.mif ) 7. Αλ παξνπζηαζηεί ιάζνο θαηά ηελ εθηέιεζε ηνπ πξνγξάκκαηνο ( Runtime Error ) ν ρξήζηεο εηδνπνηείηαη κε κήλπκα ιάζνπο. 8. Μεηά ην πέξαο ηεο πξνζνκνίσζεο κπνξνύκε λα ηππώζνπκε ην πεξηερόκελν ηεο πεξηνρήο θαηαγξαθήο γεγνλόησλ. 2
ΚΑΣΑΥΩΡΗΣΕ ΣΟΤ TRN K M E 1 SC X IR A I F SR F2 F1 V Z S H PC AR BR ΚΑΣΑΥΩΡΗΣΕ Καηατωρηηής A Καηατωρηηής X Καηατωρηηής IR Καηατωρηηής PC Καηατωρηηής I Mεηρηηής αλληλοστίας SC Π ρ ο ς δ ι ά δ ρ ο μ ο δ ι ε σ θ ύ ν ζ ε ω ν Π ρ ο ς / Α π ό δ ι ά δ ρ ο μ ο δ ε δ ο μ έ ν ω ν ΠΕΡΙΓΡΑΦΗ Ολνκάδεηαη ζπζζσξεπηήο (accumulator), έρεη κήθνο 2 bits θαη ρξεζηκνπνηείηαη γηα ηελ εθηέιεζε αξηζκεηηθώλ θαη ινγηθώλ πξάμεσλ σο θαη γηα ηελ ζπζζώξεπζε (απνζήθεπζε) ησλ ελδηάκεζσλ απνηειεζκάησλ ησλ πξάμεσλ. Βνεζεηηθόο θαηαρσξεηήο κήθνπο 2 bits πνπ ρξεζηκνπνηείηαη σο επέθηαζε ηνπ θαηαρσξεηή A, γηα ηελ εθηέιεζε νξηζκέλσλ αξηζκεηηθώλ πξάμεσλ Ολνκάδεηαη θαηαρσξεηήο εληνιώλ (instruction register), είλαη κήθνπο 2 bits θαη πεξηέρεη ηελ εληνιή πνπ πξόθεηηαη θάζε θνξά λα εθηειεζζεί. Ολνκάδεηαη κεηξεηήο πξνγξάκκαηνο (program counter), είλαη κήθνπο 13 bits θαη πεξηέρεη ηελ δηεύζπλζε ηεο πξνο εθηέιεζε εληνιήο πνπ βξίζθεηαη ζηελ κλήκε Ολνκάδεηαη θαηαρσξεηήο δείθηεο (index register), είλαη κήθνπο 13 bits θαη ρξεζηκνπνηείηαη θαηά ηελ δεηθηνδνηεκέλε αλαθνξά ζηελ κλήκε. Δπίζεο ρξεζηκνπνηείηαη θαη σο κεηξεηήο (counter). Ο ρξεζηκεύεη ζαλ βεκαηνδόηεο γηα λα θαζνξίδεη δηαθξηηέο ρξνληθέο ζηηγκέο, ηξνθνδνηεί δε έλαλ απνθσδηθνπνηεηή ν νπνίνο έρεη m εμόδνπο, θάζε κία από ηηο νπνίεο αληηζηνηρεί ζε κία ρξνληθή ζηηγκή, ηέζζεξηο θαηαζηάζεηο (, 1, 1, 11). Kαηατωρηηής AR Καηατωρηηής BR Καηατωρηηής καηάζηαζης SR καηατωρηηής κύκλων F flip-flop H (halt) Καηατωρηηή (SP) ηοίβας Ο (13 bits) ζπλδέεηαη απ επζείαο κε ηνλ δηάδξνκν δηεπζύλζεσλ θαη ρξεζηκεύεη γηα λα θαζνξίδεη κία δηεύζπλζε από όπνπ γίλεηαη κεηαθνξά θάπνηαο πιεξνθνξίαο, όηαλ εθηειείηαη κία εληνιή αλαθνξάο ζηελ κλήκε ή νη εληνιέο INP θαη OUT. (2 bits) πεξηέρεη ηελ κεηαθεξόκελε πιεξνθνξία θαη ζπλδέεηαη ζηνλ δηάδξνκν δεδνκέλσλ. Ο θαηαρσξεηήο θαηάζηαζεο SR πεξηέρεη πιεξνθνξίεο ζρεηηθά κε ηελ θαηάζηαζε ηεο ηειεπηαίαο πξάμεο (αξηζκεηηθήο ή ινγηθήο) πνπ έγηλε ζηελ ΚΜΔ κε ηελ ζπκκεηνρή ηνπ ζπζζσξεπηή A. απνηειείηαη από ηξία bits θαη ζπγθεθξηκέλα ηα V, Z θαη S 1. Τν V γίλεηαη 1, όηαλ κεηά από θάπνηα αξηζκεηηθή πξάμε ππάξρεη ππεξρείιηζε (overflow). Απηό ζπκβαίλεη, όηαλ ην αιγεβξηθό άζξνηζκα δύν νξηζκάησλ μεπεξλάεη ηηο δπλαηόηεηεο παξάζηαζεο ησλ αξηζκώλ 2. Τν bit Z γίλεηαη 1 κόλν όηαλ, κεηά από θάπνηα πξάμε, όια ηα bits ηνπ ζπζζσξεπηή A είλαη. 3. Τν bit S είλαη 1 κόλν όηαλ, κεηά από ηελ εθηέιεζε θάπνηαο πξάμεο, ην bit πξνζήκνπ ηνπ ζπζζσξεπηή A είλαη 1 θαη αληίζηξνθα γηα S=. Έρεη δύν bits ην F1 θαη ην F2 πνπ θαζνξίδνπλ ηέζζεξηο δηαθνξεηηθέο θαηαζηάζεηο. Οη ηέζζεξηο απηέο θαηαζηάζεηο αληηζηνηρνύλ ζηνπο ηέζζεξηο θύθινπο (θάζεηο) κεραλήο ελόο θύθινπ εληνιήο θαη πην ζπγθεθξηκέλα: 1. ζηνλ θύθιν αλάθιεζεο εληνιήο, F1=F2= 2. ζηνλ θύθιν δεηθηνδόηεζεο (δεηθηνδνηεκέλεο αλαθνξάο), F1= F2=1 3. ζηνλ θύθιν έκκεζεο αλαθνξάο F1=1 F2= 4. ζηνλ θύθιν εθηέιεζεο ηεο εληνιήο., F1=1 F2=1 Έρεη ζθνπό λα ζηακαηήζεη πξνζσξηλά ηελ ιεηηνπξγία ηνπ TRN. Όηαλ H=1, ηόηε ην θεληξηθό ξνιόη ηεο ΚΜΔ παύεη λα ηξνθνδνηεί κε σξνινγηαθνύο παικνύο ηνλ SC θαη έηζη ε ΚΜΔ ηνπ TRN «παγώλεη» ζηελ θαηάζηαζε πνπ βξέζεθε, κέρξηο όηνπ γίλεη πάιη H= (κε αλάινγν δηαθόπηε ζηνλ πίλαθα ειέγρνπ ηνπ TRN). 3
Η θαηάζηαζε όισλ ησλ θαηαρσξεηώλ είλαη νξαηή κέζα από ην γξαθηθό πεξηβάιινλ ηνπ πξνγξάκκαηνο. Δπηπιένλ, ππάξρεη ην ξνιόη ηνπ επεμεξγαζηή ην νπνίν ζπγρξνλίδεη ηνπο θύθινπο κεραλήο ηνπ ζπζηήκαηνο. Ανάλσζη μικρολειηοσργιών μονάδας ελέγτοσ Η αθνινπζία ειέγρνπ γηα ηνπο ηέζζεξηο θύθινπο εληνιήο ηνπ TRN+ έρεη σο εμήο: Κύκλος ανάκληζης ενηολής f t : AR PC; f t 1: Read; PC PC+1 f t 2: IR BR; AR BR( AP ); f t 3 ED : F1 1; F2 1; f t 3 E D : F2 1; f t 3 D: F1 1 1. Τελ πξώηε ρξνληθή ζηηγκή t 1 εθηεινύληαη παξάιιεια δύν κηθξνιεηηνπξγίεο. Η κηθξνιεηηνπξγία Read έρεη σο απνηέιεζκα λα γίλεη 1 ε γξακκή ειέγρνπ Read ηνπ δηαδξόκνπ ειέγρνπ θαη έηζη λα κεηαθεξζεί από ηελ θεληξηθή κλήκε ε εληνιή πνπ βξίζθεηαη ζηελ δηεύζπλζε πνπ δείρλεη ν AR. 2. Σεκεηώλεηαη όηη γίλεηαη ε ππόζεζε όηη έλαο θύθινο ξνινγηνύ επαξθεί γηα ηελ αλάγλσζε από ηελ θεληξηθή κλήκε θαη όηη ε θαηαρώξεζε ζηνλ BR γίλεηαη κε ην αξλεηηθό κέησπν ηνπ παικνύ ειέγρνπ f t 1. Η κηθξνιεηηνπξγία PC PC+1 έρεη ζθνπό λα πξνεηνηκάζεη ηελ αλάθιεζε ηεο επόκελεο εληνιήο. 3. Τελ δεύηεξε ρξνληθή ζηηγκή t 2 ην πεξηερόκελν ηνπ BR θαηαρσξείηαη ζηνλ θαηαρσξεηή εληνιώλ IR θαη παξάιιεια ην πεξηερόκελν ηνπ ηκήκαηνο δηεύζπλζεο (address part, AP), δειαδή ηα ςεθία έσο θαη ηνπ BR, θαηαρσξείηαη ζηνλ θαηαρσξεηή AR, γηα λα πξνεηνηκαζζεί έηζη ε επόκελε πξνζπέιαζε ζηελ κλήκε. 4. Τελ ηξίηε ρξνληθή ζηηγκή t 3 θαζνξίδνληαη νη ηηκέο ησλ F1, F2, αλαιόγσο ησλ πεξηερνκέλσλ ησλ ςεθίσλ E θαη D ηνπ IR, έηζη ώζηε λα αθνινπζήζεη ζηελ ζπλέρεηα ν θαηάιιεινο θύθινο κεραλήο. 5. Δίλαη πξνθαλέο όηη ν κεηξεηή αιιεινπρίαο ζα ζπλερίζεη κε ηελ ρξνληθή ζηηγκή t πάιη, επεηδή έρεη δύν bits κήθνο. Κύκλος δεικηοδοηημένης αναθοράς f 1 t E : f 1 t E : AR IR( AP )+I; F2 1; CSC; AR IR( AP )+I; F2 1; F1 ; CSC; Έλαο θύθινο ξνινγηνύ είλαη αξθεηόο γηα ηελ εθηέιεζε ηνπ θύθινπ δεηθηνδνηεκέλεο αλαθνξάο. Σηνλ θύθιν απηό, ην πεξηερόκελν ηνπ AR γίλεηαη ίζν κε ην άζξνηζκα ηνπ θαηαρσξεηή δείθηε θαη ηνπ πεξηερνκέλνπ ηνπ ηκήκαηνο δηεύζπλζε ηνπ IR. Δπίζεο πξνεηνηκάδεηαη ν επόκελνο θύθινο θαζνξίδνληαο ηηο ηηκέο ησλ F1 θαη F2. Τέινο, γηα λα κελ ραζεί άιινο ρξόλνο, κηα θαη ν θύθινο δεηθηνδνηεκέλεο αλαθνξάο θαιύπηεηαη ζε έλα θύθιν ξνινγηνύ, κεδελίδεηαη ν θαηαρσξεηή αιιεινπρίαο. Απηό γίλεηαη κε ηελ κηθξνιεηηνπξγία CSC πνπ ζεκαίλεη «κεδεληζκόο κεηξεηή αιιεινπρίαο». Έηζη ε επόκελε ρξνληθή ζηηγκή ζα είλαη πάιη ε t. Κύκλος έμμεζης αναθοράς 4
f 2 t : f 2 t 1 : Read; AR BR( AP ); F1 1; CSC; Τελ ρξνληθή ζηηγκή t ηνπ θύθινπ έκκεζεο αλαθνξάο εθηειείηαη ε κηθξνιεηηνπξγία Read, έηζη ώζηε λα αλαθιεζεί ε ηειηθή δηεύζπλζε θαη λα πξνεηνηκαζζεί ε αλάθιεζε ηνπ νξίζκαηνο ηεο εληνιήο. Κύκλος εκηέλεζης ενηολής Ο θύθινο εθηέιεζεο ηεο εληνιήο είλαη δηαθνξεηηθόο γηα θάζε εληνιή θαη εμαξηάηαη από ηελ ζπγθεθξηκέλε εληνιή ε νπνία θαζνξίδεηαη ζην πεδίν εληνιήο ηνπ IR 5