Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολογών Μηχανικών και Τεχνολογίας Υπολογιστών Προηγμένοι Μικροεπεξεργαστές Καθηγητής Σταύρος Α. Κουμπιάς.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολογών Μηχανικών και Τεχνολογίας Υπολογιστών Προηγμένοι Μικροεπεξεργαστές Καθηγητής Σταύρος Α. Κουμπιάς."— Μεταγράφημα παρουσίασης:

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολογών Μηχανικών και Τεχνολογίας Υπολογιστών Προηγμένοι Μικροεπεξεργαστές Καθηγητής Σταύρος Α. Κουμπιάς

2 Επισκόπηση

3 Ο 8085 Μικροεπεξεργαστής (μ-ε) Το 1977, η Intel Corporation εισήγαγε μια βελτιωμένη έκδοση του 8080- τον 8085. Αυτός επρόκειτο να είναι ο τελευταίος 8-bit μικροεπεξεργαστής γενικής χρήσης που αναπτύχθηκε από την Intel. Αν και ήταν μόνο λίγο προχωρημένος από τον 8080, ο 8085 εκτελούσε λογισμικό σε ακόμα μεγαλύτερη ταχύτητα. Μια πρόσθεση που έπαιρνε 2 μs στον 8080 απαιτούσε μόνο 1.3 μs στον 8085. Τα κύρια πλεονεκτήματα του 8085 ήσαν η εσωτερική του χρονογεννήτρια, ο εσωτερικός ελεγκτής συστήματος, η υψηλότερη συχνότητα του ρολογιού. Αυτό το υψηλότερο επίπεδο ολοκλήρωσης των συνιστωσών ελάττωσε το κόστος του 8085 και αύξησε τη χρησιμότητά του. Η Intel κατόρθωσε να πωλήσει περισσότερα από 100 εκατομμύρια τεμάχια του 8085, συμπεριλαμβανομένων και των 8085 που κατασκευάστηκαν από άλλους εγκεκριμένους δεύτερους προμηθευτές. Εφαρμογές που περιλαμβάνουν τον 8085 χρησιμοποιούνται ακόμα και σχεδιάζονται και θα εξακολουθήσουν να είναι δημοφιλείς στο μέλλον. Εκτιμάται ότι πάρχουν περισσότεροι από 700 εκατομμύρια μικροεπεξεργαστές που εκτελούν 8085 συμβατούς κώδικες.

4 Ο μ-ε 8086 (Ι) Το 1978, η Intel εισήγαγε στην αγορά τον 8086 μικροεπεξεργαστή, Σε ένα χρόνο περίπου αργότερα εισήγαγε τον 8088. Και οι δύο διατάξεις ήσαν 16-bit μικροεπεξεργαστές, οι οποίοι εκτελούσαν εντολές σε 400 ns (2,5 MIPs ή 2,5 εκατομμύρια εντολές ανά δευτερόλεπτο). Αυτό αντιπροσώπευε μια πολύ μεγάλη βελτίωση ως προς την ταχύτητα εκτελέσεως του 8085. (Μια 1M byte μνήμη περιλαμβάνει θέσεις μνήμης έκτασης 1.024Κ byte, ή 1.048.576 bytes). Αυτή η υψηλότερη ταχύτητα εκτέλεσης και η μεγαλύτερη έκταση μνήμης επέτρεψαν στους 8086 και 8088 να αντικαταστήσουν μικρότερους μικροϋπολογιστές σε πολλές εφαρμογές. Ένα άλλο χαρακτηριστικό στους 8086/8088 ήταν η μικρή 4-ή 6- byte λανθάνουσα (cache) μνήμη εντολών ή ουράς αναμονής (queue) που φέρνει μερικές εντολές πριν αυτές εκτελεστούν. Η ουρά αναμονής επιτάγχυνε τη λειτουργία πολλών ακολουθιών εντολών και αποδείχθηκε να είναι η βάση για πολύ μεγαλύτερες λανθάνουσες μνήμες που απαντώνται στους μοντέρνους μικροεπεξεργαστές.

5 Η αύξηση στην έκταση της μνήμης και οι επιπλέον εντολές των 8086 και 8088 έχουν οδηγήσει σε πολλές εξελιγμένες εφαρμογές για τους μικροεπεξεργαστές. Βελτιώσεις στο σύνολο των εντολών περιλάμβαναν μία εντολή πολλαπλασσιασμού-και- διαίρεσης, που δεν υπήρχε στους αρχικούς μικροεπεξεργαστές. Επίσης, ο αριθμός των εντολών αυξήθηκε από 45 στον 4004, σε 246 στον 8085 και σε περισσότερες από 20.000 παραλλαγές στους 8086 και 8088 μικροεπεξεργαστές. Σημειώστε ότι αυτοί οι μικροεπεξεργαστές ονομάζονταν CISC (complex instruction set computers= υπολογιστές πολυσύνθετων διατάξεων εντολών) λόγω του αριθμού και της πολυπλοκότητας των εντολών. Οι πρόσθετες εντολές διευκόλυναν την ανάπτυξη αποτελεσματικών και εξελιγμένων εφαρμογών ακόμα και αν ο αριθμός τους ήταν στην αρχή συντριπτικός και χρειαζόταν πολύς χρόνος για εκμάθηση. Ο 16-bit μικροεπεξεργαστής παρείχε επίσης περισσότερους εσωτερικούς καταχωρητές αποθήκευσης από όσο ο 8-bit μικροεπεξεργαστής. Επιπλέον, οι καταχωρητές αυτοί επέτρεψαν στο λογισμικό να γραφεί περισ­σότερο αποδοτικά. Ο 8086 (ΙΙ)

6 Ο 16-bit μικροεπεξεργαστής εξελίχθηκε κυρίως λόγω της ανάγκης για συστήματα μεγαλύτερης μνήμης. Η δημοτικότητα της οικογένειας Intel εξασφαλίστηκε το 1981 όταν η IBM Corporation αποφάσισε να χρησιμοποιήσει τον 8088 μικροεπεξεργαστή στον προσωπικό της υπολογιστή. Εφαρμογές όπως, λογιστικά φύλλα (spreadsheets), επεξεργαστές λέξεων, ελεγκτές ορθογραφίας, και θησαυροί δεδομένων βασιζόμενοι σε υπολογιστή απαιτούσαν εντατική μνήμη και χρειάζονταν περισσότερα από 64K bytes μνήμης που βρίσκονται στον 8-bit μικροεπεξεργαστή για να εκτελεί αποδοτικά. Οι 16-bit 8086 και 8088 παρείχαν 1Μ bytes μνήμης για αυτές τις εφαρμογές. Γρήγορα, ακόμα και η 1M byte μνήμη αποδείχτηκε περιοριστική για μεγάλα λογιστικά φύλλα και άλλες εφαρμογές. Αυτό οδήγησε την Intel στο να θέσει στην αγορά τον 80286 μικροεπεξεργαστή, ένα βελτιωμένο 8086, το 1983. Ο 8086 (ΙΙΙ)

7 ALU ADD AH BH CH AL BL CL DL BP DI SI SP DH CS ES SS DS IP Addr generation Bus Controller 1 2 3 4 5 6 Internal Data Bus FLAGS EU Instruction Queue BIU Data BusAddress Bus Αρχιτεκτονική μ-ε 8086

8 Παραλληλία Φάσεων Εκτέλεσης/Ανάκλησης

9 The 80x86 Addressing Modes The 80x86 processors let you access memory in many different ways. The 80x86 memory addressing modes provide flexible access to memory, allowing you to easily access variables, arrays, records, pointers, and other complex data types. Mastery of the 80x86 addressing modes is the first step towards mastering 80x86 assembly language. When Intel designed the original 8086 processor, they provided it with a flexible, though limited, set of memory addressing modes. Intel added several new addressing modes when it introduced the 80386 microprocessor. Note that the 80386 retained all the modes of the previous processors; the new modes are just an added bonus. If you need to write code that works on 80286 and earlier processors, you will not be able to take advantage of these new modes. However, if you intend to run your code on 80386sx or higher processors, you can use these new modes. Since many programmers still need to write programs that run on 80286 and earlier machines, it's important to separate the discussion of these two sets of addressing modes to avoid confusing them.

10

11

12 Register Addressing Modes (I) Most 8086 instructions can operate on the 8086's general purpose register set. By specifying the name of the register as an operand to the instruction, you may access the contents of that register. Consider the 8086 mov (move) instruction: mov destination, source This instruction copies the data from the source operand to the destination operand. The eight and 16 bit registers are certainly valid operands for this instruction. The only restriction is that both operands must be the same size. Now let's look at some actual 8086 mov instructions: mov ax, bx ;Copies the value from BX into AX mov dl, al ;Copies the value from AL into DL mov si, dx ;Copies the value from DX into SI mov sp, bp ;Copies the value from BP into SP mov dh, cl ;Copies the value from CL into DH mov ax, ax ;Yes, this is legal!

13 Register Addressing Modes (II) The registers are the best place to keep often used variables. Instructions using the registers are shorter and faster than those that access memory. The abbreviated operands reg and r/m (register/memory) used wherever you may use one of the 8086's general purpose registers. In addition to the general purpose registers, many 8086 instructions (including the mov instruction) allow you to specify one of the segment registers as an operand. There are two restrictions on the use of the segment registers with the mov instruction. First of all, you may not specify cs as the destination operand, second, only one of the operands can be a segment register. You cannot move data from one segment register to another with a single mov instruction. To copy the value of cs to ds, you'd have to use some sequence like: mov ax, cs, mov ds, ax You should never use the segment registers as data registers to hold arbitrary values. They should only contain segment addresses. The abbreviated operand sreg used wherever segment register operands are allowed (or required).

14 Memory Addressing Mode (Ι) The 8086 provides 17 different ways to access memory. This may seem like quite a bit at first, but fortunately most of the address modes are simple variants of one another so they're very easy to learn. The key to good assembly language programming is the proper use of memory addressing modes. The addressing modes provided by the 8086 family include: displacement-only, base, displacement plus base, base plus indexed, and displacement plus base plus indexed. Variations on these five forms provide the 17 different addressing modes on the 8086.

15 Memory Addressing Mode (ΙΙ) The Displacement Only Addressing Mode The most common addressing mode, and the one that's easiest to understand, is the displacement-only (or direct) addressing mode. The displacement-only addressing mode consists of a 16 bit constant that specifies the address of the target location. The instruction mov al,ds:[8088h] loads the al register with a copy of the byte at memory location 8088h. Likewise, the instruction mov ds:[1234h],dl stores the value in the dl register to memory location 1234h:

16 Memory Addressing Mode (IΙΙ) The Displacement Only Addressing Mode Intel named this the displacement-only addressing mode because a 16 bit constant (displacement) follows the mov opcode in memory. In that respect it is quite similar to the direct addressing mode on the x86 processors. There are some minor differences, however. First of all, a displacement is exactly that- some distance from some other point. On the x86, a direct address can be thought of as a displacement from address zero. On the 80x86 processors, this displacement is an offset from the beginning of a segment (the data segment in this example. So, you can think of the displacement-only addressing mode as a direct addressing mode. You can also access words on the 8086 processors :

17 Memory Addressing Mode (IV) The Displacement Only Addressing Mode By default, all displacement-only values provide offsets into the data segment. If you want to provide an offset into a different segment, you must use a segment override prefix before your address. For example, to access location 1234h in the extra segment (es) you would use an instruction of the form mov ax,es:[1234h]. Likewise, to access this location in the code segment you would use the instruction mov ax, cs:[1234h]. The ds: prefix in the previous examples is not a segment override. The CPU uses the data segment register by default. These specific examples require ds: because of MASM's syntactical limitations.

18 The Register Indirect Addressing Mode (I) The 80x86 CPUs let you access memory indirectly through a register using the register indirect addressing modes. There are four forms of this addressing mode on the 8086, best demonstrated by the following instructions: mov al, [bx] mov al, [bp] mov al, [si] mov al, [di] As with the x86 [bx] addressing mode, these four addressing modes reference the byte at the offset found in the bx, bp, si, or di register, respectively. The [bx], [si], and [di] modes use the ds segment by default. The [bp] addressing mode uses the stack segment (ss) by default. You can use the segment override prefix symbols if you wish to access data in different segments. The following instructions demonstrate the use of these overrides: mov al, cs:[bx] mov al, ds:[bp] mov al, ss:[si] mov al, es:[di]

19 The Register Indirect Addressing Mode (II) Intel refers to [bx] and [bp] as base addressing modes and bx and bp as base registers (in fact, bp stands for base pointer). Intel refers to the [si] and [di] addressing modes as indexed addressing modes (si stands for source index, di stands for destination index). However, these addressing modes are functionally equivalent. Note: the [si] and [di] addressing modes work exactly the same way, just substitute si and di for bx above.

20 Indexed Addressing Mode (I) The indexed addressing modes use the following syntax: mov al, disp[bx] mov al, disp[bp] mov al, disp[si] mov al, disp[di] If bx contains 1000h, then the instruction mov cl,20h[bx] will load cl from memory location ds:1020h. Likewise, if bp contains 2020h, mov dh,1000h[bp] will load dh from location ss:3020. The offsets generated by these addressing modes are the sum of the constant and the specified register. The addressing modes involving bx, si, and di all use the data segment, the disp[bp] addressing mode uses the stack segment by default. As with the register indirect addressing modes, you can use the segment override prefixes to specify a different segment: mov al, ss:disp[bx] mov al, es:disp[bp] mov al, cs:disp[si] mov al, ss:disp[di]

21 Indexed Addressing Mode (II) You may substitute si or di in the figure above to obtain the [si+disp] and [di+disp] addressing modes. Note that Intel still refers to these addressing modes as based addressing and indexed addressing. Intel's literature does not differentiate between these modes with or without the constant.

22 Based Indexed Addressing Mode (I) The based indexed addressing modes are simply combinations of the register indirect addressing modes. These addressing modes form the offset by adding together a base register (bx or bp) and an index register (si or di). The allowable forms for these addressing modes are mov al, [bx][si] mov al, [bx][di] mov al, [bp][si] mov al, [bp][di] Suppose that bx contains 1000h and si contains 880h. Then the instruction mov al,[bx][si] would load al from location DS:1880h. Likewise, if bp contains 1598h and di contains 1004, mov ax,[bp+di] will load the 16 bits in ax from locations SS:259C and SS:259D. The addressing modes that do not involve bp use the data segment by default. Those that have bp as an operand use the stack segment by default.

23 Based Indexed Addressing Mode (II) You substitute di in the figure above to obtain the [bx+di] addressing mode. You substitute di in the figure above to obtain the [bp+di] addressing mode.

24 Based Indexed Plus Displacement Addressing Mode (I) These addressing modes are a slight modification of the base/indexed addressing modes with the addition of an eight bit or sixteen bit constant. The following are some examples of these addressing modes: mov al, disp[bx][si] mov al, disp[bx+di] mov al, [bp+si+disp] mov al, [bp][di][disp] You may substitute di in the figure above to produce the [bx+di+disp] addressing mode.

25 Based Indexed Plus Displacement Addressing Mode (II) You may substitute di in the figure above to produce the [bp+di+disp] addressing mode. Suppose bp contains 1000h, bx contains 2000h, si contains 120h, and di contains 5. Then, mov al,10h[bx+si] loads al from address DS:2130; mov ch,125h[bp+di] loads ch from location SS:112A; and mov bx,cs:2[bx][di] loads bx from location CS:2007.

26 Οι μ-ε 80186 & 80286 Ο 80186/80188 και ο 80286 (embedded controllers) αποτελούν βελτιωμένες εκδόσεις των προγε­νέστερων 8086/8088 μικροεπεξεργαστών της Intel. O 80186/80188 όπως και ο 80286 είναι μικροεπεξεργαστές των 16-bit, οι οποίοι είναι προς τα πάνω συμβατοί με τους 8086/8088. Ακόμα και το hardware των μικροεπεξεργαστών αυτών είναι παρόμοιο με αυτό των προγενέστερων εκδόσεων.

27 Ο 32-bit μ-ε 80386 (Ι) Οι εφαρμογές άρχισαν να απαιτούσαν γρηγορότερες ταχύτητες για τον επεξεργαστή, περισσότερη μνήμη, και ευρύτερες αρτηρίες δεδομένων. O 80386 (1986) αντιπροσώπευε μια μεγάλη ανακατασκευή της αρχιτεκτονικής των 16-bit 8086-80286 μικροεπεξεργαστών. Ο 80386 ήταν ο πρώτος 32-bit μικροεπεξεργαστής της Intel που περιείχε μια 32-bit αρτηρία δεδομένων και μια 32-bit διεύθυνση μνήμης. Διαμέσου αυτών των 32-bit αρτηριών, ο 80386 διευθυνσιοδοτούσε μέχρι 4G bytes μνήμη Ο 80386 ήταν επίσης διαθέσιμος σε μερικούς τροποποιημένους τύπους όπως ο 80386SX, ο οποίος διευθυνσιοδοτούσε 16Μ bytes μνήμης μέσω μιας 16-bit αρτηρίας δεδομένων και μιας 24-bit αρτηρίας διεύθυνσης. Το 1995 η Intel εισήγαγε τον 80386ΕΧ μικροεπεξεργαστή (embedded PC ) που περιλαμβάνει όλες τις συνιστώσες ενός προσωπικού υπολογιστή πάνω σε ένα μόνο chip. Ο 80386ΕΧ περιέχει επίσης 24 γραμμές για δεδομένα εισόδου/εξόδου, μία 26-bit αρτηρία διεύθυνσης, μία 16-bit αρτηρία δεδομένων, έναν ελεγκτή ανανεώσεως DRAM, και προγραμματιζόμενη λογική επιλογή του chip.

28 Ο μικροεπεξεργαστής 80386 είναι μια ολοκληρωμένη έκδοση των 32 bits των προγενέστερων 8086/8088 και 80286 μικροεπεξεργαστών των 16 bits.Εκτός από το μεγαλύτερο μέγεθος των διαύλων, υπάρχουν πολλές βελτιώσεις και επιπρόσθετα χαρακτηριστικά. Ο μικροεπεξεργαστής 80386 υποστηρίζει πολυεπεξεργασία, διαχείριση μνήμης, εικονική (virtual) μνήμη με ή χωρίς σελιδοποίηση, προστασία λογισμικού, και ένα μεγάλο σύστημα μνήμης. Όλο το λογισμικό που έχει γραφεί για τους προγενέστερους 80xείναι προς τα άνω συμβατό με τον 80386. Ο 80386 μπορεί να εκτελέσει μεταγωγή ανάμεσα σε προστατευμένο τρόπο λειτουργίας και πραγματικό τρόπο λειτουργίας χωρίς επανάθεση (reset) του μικροεπεξεργαστή. Η μεταγωγή από τον προστατευμένο τρόπο λειτουργίας στον πραγματικό τρόπο λειτουργίας ήταν ένα πρόβλημα στον μικροεπεξεργαστή 80286 διότι απαιτούσε επανάθεση του υλικού. Ο 32-bit μ-ε 80386 (ΙΙ)

29 Ο 32-bit μ-ε 80386 είναι χρήσιμος λόγω του μεγέθους της αρτηρίας δεδομένων του, η οποία μεταφέρει πραγματικούς αριθμούς (απλής ακριβείας, κινητή υποδιαστολή) που απαιτούν 32-bit εύρος μνήμης. Για να επεξεργαστεί αποτελεσματικά πραγματικούς αριθμούς των 32-bit, ο μικροεπεξεργαστής πρέπει να περάσει αυτούς αποδοτικά μεταξύ αυτού και της μνήμης. Αν περάσουν διαμέσου μιας 8-bit αρτηρίας δεδομένων, παίρνει τέσσερις κύκλους ανάγνωσης και γραφής. Όμως αν περάσουν μέσω μιας 32-bit αρτηρίας δεδομένων, μόνο ένας κύκλος ανάγνωσης και γραφής θα απαιτηθεί. Αυτό αυξάνει αισθητά την ταχύτητα οποιουδήποτε προγράμματος που χειρίζεται πραγματικούς αριθμούς. Οι περισσότερες γλώσσες υψηλού επιπέδου, τα λογιστικά φύλλα, και συστήματα διαχείρισης βάσης δεδομένων χρησιμοποιούν πραγματικούς αριθμούς για αποθήκευση δεδομένων. Οι πραγματικοί αριθμοί είναι επίσης σε πακέτα γραφικού σχεδιασμού τα οποία χρησιμοποιούν διανύσματα για να τυπώσουν εικόνες σε βίντεο-οθόνες (πχ. συστήματα CAD, computer aided drafting/design) Ο 32-bit μ-ε 80386 (ΙΙΙ)

30 Εκτός από την παροχή υψηλότερων ταχυτήτων ρολογιού, ο 80386 περιλάμβανε μια μονάδα διαχείρισης μνήμης που επέτρεπε στους πόρους της μνήμης να κατανέμονται και να διαχειρίζονται από το λειτουργικό σύστημα. Προηγούμενοι μικροεπεξεργαστές άφηναν τη διαχείριση της μνήμης στο λογισμικό. Ο 80386 περιλάμβανε κυκλώματα υλικού (hardware) για τη διαχείριση και τον προσδιορισμό της μνήμης, πράγμα που βελτίωσε την αποδοτικότητα και ελάττωσε το επιπλέον λογισμικό. Η διάταξη εντολών του 80386 μικροεπεξεργαστή ήταν συμβατή με τους προηγούμενους μικροεπεξεργαστές 8086, 8088 και 80286. Οι πρόσθετες αναφέρονται στους 32-bit καταχωρητές και διαχειρίζονται το σύστημα μνήμης. Θα πρέπει να σημειωθεί ότι οι εντολές διαχείρισης μνήμης και τεχνικές που χρησιμοποιήθηκαν από τον 80286 ήσαν επίσης συμβατές με τον 80386 μικροεπεξεργαστή. Αυτά τα χαρακτηριστικά επέτρεψαν σε παλαιότερο, 16-bit λογισμικό να λειτουργεί στον 80386 μικροεπεξεργαστή. Ο 32-bit μ-ε 80386 (ΙV)

31 Ο μ-ε 80486 (I) Το 1989, η Intel εισήγαγε τον μικροεπεξεργαστή 80486, με ενσωματωμένους έναν μικροεπεξεργαστή σαν τον 80386, έναν αριθμητικό συνεπεξεργαστή σαν τον 80387, και ένα σύστημα με 8 Kbytes λανθάνουσα μνήμη (cache memory) σε ένα ολοκληρωμένο πακέτο. Αν και ο 80486 δεν ήταν δραστικά διαφορετικός από τον 80386, περιλάμβανε όμως μια ουσιαστική αλλαγή. Η εσωτερική δομή του 80486 ήταν τροποποίηση του 80386 έτσι ώστε οι μισές εντολές εκτελούνταν με ένα ρόλοι αντί για δύο ρολόγια. Επειδή ο 80486 ήταν διαθέσιμος σε έναν τύπο των 50 MHz, οι μισές περίπου εντολές εκτελούνταν σε 20 ns (50 MIPs). Η βελτίωση για μια τυπική μίξη εντολών ήταν περίπου 50% ως προς τον 80386 όταν λειτουργούσε με την ίδια ταχύτητα ρολογιού.

32 Μετέπειτα εκδόσεις του 80486 εκτελούσαν εντολές σε ακόμα μεγαλύτερες ταχύτητες με ένα 66 MHz μοντέλο διπλού ρολογιού (80486DX2). Αυτό το μοντέλο 66MHz διπλού ρολογιού εκτελούσε εντολές σε ένα ρυθμό 66MHz με μεταβιβάσεις μνήμης εκτελούμενες με το ρυθμό των 33 MHz. Θα πρέπει να σημειωθεί ότι ο 80486DX4 εκτελούσε εντολές με περίπου την ίδια ταχύτητα όπως ο 60 MHz Pentium. Περιλάμβανε επίσης μια εκτεταμένη 16Κ Byte λανθάνουσα μνήμη στη θέση της τυποποιημένης 8Κ Byte λανθάνουσας μνήμης που είχε ο αρχικός 80486 μικροεπεξεργαστής. Στην ίδια περίπου περίοδο, η εταιρία Advanced Micro Devices (AMD) παρήγαγε ένα μοντέλο τριπλού ρολογιού που λειτουργούσε με ταχύτητα αρτηρίας 40 MHz και ταχύτητα ρολογιού 120 MHz. Με τους Pentium II και Pentium III οι μικροεπεξεργαστές αυτοί έφτασαν να εκτελούν εντολές σε ρυθμούς μεγαλύτερους των 250 MHz. Ο μ-ε 80486 (II)

33 Άλλες εκδόσεις του 80486 ονομάσθηκαν μικροεπεξεργαστές Overdrive. Ο μικροεπε­ξεργαστής Overdrive ήταν στην πραγματικότητα μια παραλλαγή διπλού ρολογιού του 80486DX που αντικατέστησε έναν 80486SX ή τον αργότερο σε ταχύτητα 80486DX. Όταν ο επεξεργαστής Overdrive ετίθετο στην υποδοχή (socket), αντικαθιστώντας τους 80486SX ή 80486DX λειτουργούσε σαν έκδοση μικροεπεξεργαστή διπλού ρολογιού. Για παράδειγμα, αν ένας 80486SΧ που λειτουργούσε σε 25 MHz αντικαθίστατο από έναν μικροεπεξεργαστή Overdrive, αυτός λειτουργούσε ως ένας 80486DX2 50 MHz μικροεπεξεργαστής χρησιμοποιώντας ένα ρυθμό μεταφοράς προς/από τη μνήμη 25 MHz. Ο μ-ε 80486 (III)

34 Ο μ-ε Pentium (I) Ο Pentium περιλαμβάνει μια 8K Byte λανθάνουσα μνήμη για εντολές και μια 8K Byte λανθάνουσα μνήμη για δεδομένα. Αυτό επιτρέπει σε ένα πρόγραμμα που μεταφέρει μια μεγάλη ποσότητα δεδομένων μνήμης να επωφελείται ακόμα από μια λανθάνουσα μνήμη. Το σύστημα μνήμης περιλαμβάνει έως 64G Bytes, με το εύρος της αρτηρίας δεδομένων αυξημένο από 32 bits που έχουν οι 80386 και 80486 σε 64 bits. Ο μικροεπεξεργαστής Pentium σηματοδοτεί βελτίωση στην αρχιτεκτονική του μικροεπεξεργαστή 80486. Οι αλλαγές συμπεριλαμβάνουν μια βελτιωμένη δομή cache, μία ευρύτερη αρτηρία δεδομένων, έναν γρηγορότερο αριθμητικό συνεπεξεργαστή, έναν διπλό επεξεργαστή ακεραίων αριθμών καθώς και μια λογική πρόβλεψης των διακλαδώσεων.

35 Ο μ-ε Pentium (IΙ) Η δομή της cache έχει αναδιοργανωθεί για να σχηματίζει δύο caches των 8K bytes, η μία για το caching των δεδομένων και η άλλη των εντολών. Το εύρος της αρτηρίας δεδομένων έχει επεκταθεί από 32-bits σε 64-bits. Ο αριθμητικός συνεπεξεργαστής λειτουργεί πέντε φορές γρηγορότερα απ΄ ότι ο αριθμητικός συνεπεξεργαστής του 80486. Ο διπλός επεξεργαστής ακεραίων επιτρέπει πολλές φορές την εκτέλεση δύο εντολών ανά κύκλο ρολογιού. Τέλος, η λογική πρόβλεψης διακλάδωσης επιτρέπει προγράμματα που έχουν branches να εκτελούνται πιο αποτελεσματικά. Σημειώνεται ότι οι αλλαγές αυτές είναι εσωτερικές του Pentium, το οποίο κάνει προς τα πάνω συμβατό το λογισμικό των προγενέστερων μικροεπεξεργαστών 80Χ86 της Intel.

36 Η ταχύτητα μεταφοράς της αρτηρίας δεδομένων ήταν είτε 60MHz ή 66 MHz εξαρτώμενη από την έκδοση του Pentium. Αυτό το μεγαλύτερο εύρος της αρτηρίας δεδομένων εξυπηρετούσε αριθμούς κινητής υποδιαστολής διπλής ακρίβειας που χρησιμοποιούνταν για γραφικές απεικονίσεις υψηλής ταχύτητας δημιουργούμενες από διανύσματα. Αυτό επίσης μετέφερε δεδομένα μεταξύ του συστήματος της μνήμης και του μικροεπεξεργαστή με υψηλό ρυθμό. Αυτό επιτρέπει στην ιδεατή πραγματικότητα (virtual reality) και το λογισμικό να λειτουργεί σε περισσότερο ρεαλιστικούς ρυθμούς για τρέχουσες και μελλοντικές Pentium πλατφόρμες. Αυτή η διευρυμένη αρτηρία δεδομένων και η υψηλότερη ταχύτητα εκτέλεσης του Pentium θα πρέπει επίσης να επιτρέπει βίντεο- απεικονίσεις πλήρους πλαισίου που λειτουργούν σε ρυθμούς σάρωσης των 30 Ηz ή υψηλότερης σε σύγκριση με την εμπορική τηλεόραση. Ο μ-ε Pentium (IIΙ)

37 Πιθανώς το πιο έξυπνο χαρακτηριστικό του Pentium είναι οι δικοί του επεξεργαστές ακεραίων. Ο Pentium εκτελεί δύο εντολές, που δεν είναι εξαρτημένες η μια από την άλλη, ταυτόχρονα, επειδή περιλαμβάνει δύο ανεξάρτητους επεξεργαστές με βαση την τεχνολογία υπερκλιμακωτή (superscaler). Αυτό επιτρέπει στον Pentium να εκτελεί συχνά δύο εντολές ανά περίοδο ρολογιού. Ο μ-ε Pentium (IV)

38 Ένα άλλο χαρακτηριστικό που επαυξάνει την επίδοση είναι μια τεχνολογία πρόβλεψης άλματος που επιταχύνει την εκτέλεση των προγραμμάτων τα οποία περιλαμβάνουν βρόχους. Όπως και ο 80486, ο Pentium χρησιμοποιεί επίσης έναν επεξεργαστή εσωτερικής κινητής υποδιαστολής για να διαχειρίζεται δεδομένα κινητής υποδιαστολής, όμως με μια βελτίωση ταχύτητας κατά πέντε φορές. Αυτά τα χαρακτηριστικά μπορούν να επιτρέψουν στον Pentium να αντικαταστήσει μερικές από τις μηχανές RISC (Reduced Instruction Set Computer= υπολογιστής ελαττωμένου συνόλου εντολών) που επί του παρόντος εκτελούν μια εντολή ανά ωρολογιακό παλμό. Σημειώστε ότι μερικοί νεώτεροι επεξεργαστές RISC εκτελούν περισσότερες από μία εντολή ανά ωρολογιακό παλμό μέσω της εισαγωγής τεχνολογίας superscaler. Ο μ-ε Pentium (V)

39 A superscalar CPU architecture implements a form of parallelism called instruction-level parallelism within a single processor. It therefore allows faster CPU throughput than would otherwise be possible at a given clock rate. A superscalar processor executes more than one instruction during a clock cycle by simultaneously dispatching multiple instructions to different functional units on the processor. Each functional unit is not a separate CPU core but an execution resource within a single CPU such as an arithmetic logic unit, a bit shifter, or a multiplier.CPUparallelisminstruction-level parallelismthroughputclock ratearithmetic logic unitmultiplier Available performance improvement from superscalar techniques is limited by three key areas: – –The degree of intrinsic parallelism in the instruction stream (instructions requiring the same computational resources from the CPU). – –The complexity and time cost of dependency checking logic and register renaming circuitry – –The branch instruction processing. Ο μ-ε Pentium (VI)

40 Ο μ-ε Pentium Pro (I) Ο μικροεπεξεργαστής Pentium Pro περιέχει 21 εκατομμύρια τρανζίστορ, 3 μονάδες ακεραίων, καθώς επίσης μια μονάδα κινητής υποδιαστολής για να αυξήσει την επίδοση του λογισμικού. Ο μικροεπεξεργαστής Pentium Pro έχει αριστοποιηθεί για να εκτελεί κώδικα 32-bit αποτελεσματικά. Ακόμα μια αλλαγή είναι το ότι ο Pentium Pro μπορεί να διευθυνσιοδοτεί είτε ένα σύστημα 4G Byte μνήμης ή ένα σύστημα 64G Byte μνήμης (36-bit address bus). Ο Pentium Pro αποτελεί μια πιο γρήγορη έκδοση του Pentium και περιέχει μια τροποποιημένη εσωτερική αρχιτεκτονική, η οποία μπορεί και δρομολογεί μέχρι και πέντε εντολές για εκτέλεση, καθώς και μια γρηγορότερη μονάδα κινητής υποδιαστολής. Ο Pentium Pro περιέχει επίσης μια cache δευτέρου επιπέδου των 256K-byte ή 512K-byte επιπρόσθετα στην 16K-byte cache πρώτου επιπέδου (8 Κ για δεδομένα και 8 Κ για εντολές). Επίσης έχουν προστεθεί τέσσερις επιπλέον γραμμές διεύθυνσης, δίνοντας στον Pentium Pro την δυνατότητα πρόσβασης στο εκπληκτικό, άμεσα διευθυνσιο­δοτούμενο, διάστημα μνήμης των 64G bytes.

41 Ο μ-ε Pentium Pro (II) Μια άλλη σημαντική αλλαγή είναι ότι ο Pentium Pro χρησιμοποιεί τρεις μηχανές εκτέλεσης, έτσι ώστε να μπορεί να εκτελεί μέχρι τρεις εντολές κάθε φορά, που μπορούν να αλληλεξαρτώνται και ακόμα να εκτελούνται παράλληλα. Αυτό αντιπροσωπεύει μια αλλαγή του Pentium, που εκτελεί δύο εντολές ταυτόχρονα, εφόσον αυτές δεν συγκρούονται.

42 Σχετικές ταχύτητες 80386DX των 25MHz έως Pentium των 133 MHz Σχετικές ταχύτητες των μ-ε 80386 έως Pentium

43 Ο 8088 περιέχει μια 8-bit αρτηρία δεδομένων, 8086, 80286, 80386SL, 80386SX και 80386EX αρτηρία 16-bits δεδομένων, οι 80386DX, 80486SX και 80486DX αρτηρία 32-bits και τελικά ο Pentium και Pentium Pro αρτηρία 64-bits Το δομικό διάγραμμα ενός συστήματος υπολογιστή (I)

44 Το δομικό διάγραμμα ενός συστήματος υπολογιστή (II)

45 Real mode ή real address mode, είναι τρόπος λειτουργίας μιας 80286 και μεταγενέστερης x86-compatible CPU. Το Real mode χαρακτηρίζεται από μια οργάνωση μνήμης με 20-bit segmented memory address space (παρέχοντας 1 MB άμεσα προσπελάσιμης μνήμης) και μιας άμεσης, χωρίς όριο προσπέλασης σε όλες τις θέσεις μνήμης και τις διευθύνσεις I/O και περιφερειακών. 80286x86CPUMB Το real mode δεν παρέχει υποστήριξη για memory protection, multitasking, ή code privilege levels. 80186 CPUs και προηγούμενες μέχρι τον 8086, έχουν μόνο ένα τρόπο λειτουργίας, το ισοδύναμο με τον real mode. Όλες οι x86 CPUs στη σειρα 80286 και μετά αρχίζουν σε real mode νετά από reset.801868086 80286 Real Mode of Operation

46 O protected mode ή protected virtual address mode, επιτρέπει στο λογισμικό συστήματος να υλοποιεί λειτουργιες virtual memory, paging, safe multi-tasking και άλλες που αυξάνουν τον έλεγχο του ΟS στο application software. virtual memorypagingmulti-taskingapplication software Αρχικά ο processor που υποστηρίζει x86 protected mode, μετά το reset, εκτελεί εντολές σε real mode, για να εξασφαλισει backwards compatibility με τους προηγούμενους x86 processors. Το Protected mode μπορεί να εισαχθεί αφου το system software θέσει διάφορους descriptor tables και ενεργοποιήσει το Protection Enable (PE) bit στον Control Register 0 (CR0)backwards compatibilitybitControl Register Το Protected mode προστέθηκε στην x86 architecture το 1982, με τον Intel 80286 processor και επεκτάθηκε αργότερα με τον 80386 το 1985 και στη συνέχεια υιοθετήθηκε από όλες τις μεταγενέστερες x86 CPUs.x86 architectureIntel8028680386 Με το x86 memory segmentation στην x86 architecture η μνήμη χωρίζεται σε τμήματα τα οποία διευθύνονται μέσω ενός single index register χωρίς να αλλάζει ένα 16-bit segment selector. Στο real mode, ένα segment είναι πάντα 64 kilobytes (χρησιμοποιώντας 16-bit offsets), ενώ στο protected mode, ένα segment μπορεί να έχει μεταβλητό εύρος.x86 architectureindex registerreal modekilobytesprotected mode Protected Mode of Operation

47 Προστατευόμενος Τρόπος Λειτουργίας (Protected Mode of Operation ) Η διευθυνσιοδότηση στον προστατευμένο τρόπο λειτουργίας (από τον 80286 και πάνω) επιτρέπει την προσπέλαση σε δεδομένα και κώδικα που βρίσκονται μέσα και πέρα από το πρώτο Mbyte της μνήμης. Η διευθυνσιοδότηση αυτής της εκτεταμένης περιοχής μνήμης απαιτεί αλλαγή στο μηχανισμό διευθυνσιοδότησης μέσω τμήματος και απόκλισης που χρησιμοποιείται στον πραγματικό τρόπο λειτουργίας. Όταν επιχειρείται προσπέλαση σε κώδικα ή δεδομένα που βρίσκονται στην εκτεταμένη μνήμη, εξακολουθεί να χρησιμοποιείται η διεύθυνση απόκλισης που ορίζει μια θέση μέσα σε ένα τμήμα μνήμης. Η διαφορά είναι ότι εδώ δεν υπάρχει η διεύθυνση τμήματος όπως αυτή ορίσθηκε στον πραγματικό τρόπο λειτουργίας. Στη θέση της διεύθυνσης τμήματος, ο καταχωρητής τμήματος περιέχει έναν επιλογέα (selector) οποίος με τη σειρά του επιλέγει ένα περιγραφέα (descriptor) μέσα σε ένα πίνακα (descriptor table). Ο περιγραφέας καθορίζει τη διεύθυνση αρχής του τμήματος, το μήκος του καθώς και τα δικαιώματα προσπέλασης. Εξ’ αιτίας του ότι ο καταχωρητής τμήματος μαζί με τη διεύθυνση απόκλισης εξακολουθούν να διευθυνσιοδοτούν τη μνήμη, οι εντολές στον προστατευμένο τρόπο λειτουργίας είναι ίδιες με αυτές του πραγματικού τρόπου. Στην πραγματικότητα τα περισσότερα προγράμματα τα οποία είναι γραμμένα για να εκτελούνται στον πραγματικό τρόπο, εκτελούνται και στον προστατευμένο τρόπο χωρίς καμμία αλλαγή. Η διαφορά μεταξύ των δύο τρόπων είναι η διαδικασία με την οποία μεταφράζεται ο καταχωρητής τμήματος από τον μικροεπεξεργαστή για την προσπέλαση της μνήμης.

48 Επιλογείς (selectors) και Περιγραφείς (descriptors) Ο επιλογέας που βρίσκεται μέσα στον καταχωρητή τμήματος, επιλέγει έναν από 8192 περιγραφείς μέσα από τον ένα εκ των δύο συνολικά πινάκων περιγραφέων που υπάρχουν στο σύστημα. Ο περιγραφέας καθορίζει τη θέση, το μέγεθος και τα δικαιώματα προσπέλασης του τμήματος. Έμμεσα, ο καταχωρητής τμήματος εξακολουθεί να επιλέγει ένα τμήμα μνήμης, απλά δεν το κάνει άμεσα όπως στον πραγματικό τρόπο λειτουργίας. Για παράδειγμα, στον πραγματικό τρόπο λειτουργίας, αν CS = 0008H, το τμήμα κώδικα αρχίζει στη θέση 00080Η. Στον προστατευμένο τρόπο, αυτός ο αριθμός είναι δυνατό να προσπελαύνει οποιαδήποτε διεύθυνση μνήμης σε ολόκληρο το σύστημα για το τμήμα κώδικα. Υπάρχουν δύο πίνακες περιγραφέων που χρησιμοποιούνται με τους καταχωρητές τμήματος: ο ένας περιέχει γενικούς (global) περιγραφείς και ο άλλος τοπικούς (local). Οι γενικοί περιγραφείς περιέχουν ορισμούς τμημάτων που εφαρμόζονται σε όλα τα προγράμματα, ενώ οι τοπικοί περιγραφείς συνήθως είναι μοναδικοί για κάθε εφαρμογή. Ο κάθε τέτοιος πίνακας περιέχει 8192 περιγραφείς με αποτέλεσμα κάθε στιγμή να είναι διαθέσιμοι σε μια εφαρμογή 16384 περιγραφείς. Επειδή ένας περιγραφέας ορίζει ένα τμήμα μνήμης, κάθε εφαρμογή έχει στη διάθεσή της 16384 διαφορετικά τμήματα.

49 Το παρακάτω σχήμα παρουσιάζει τη δομή ενός περιγραφέα για τους μικροεπεξεργαστές από τον 80286 έως τον Pentium Pro. Παρατηρείστε ότι κάθε ένας από τους περιγραφείς έχει μήκος 8 bytes με αποτέλεσμα ο κάθε ένας από τους πίνακες να έχει μέγεθος 64 Kbytes. Οι περιγραφείς του 80286 διαφέρουν ελάχιστα από αυτούς των 80386 έως Pentium Pro αλλά είναι συμβατοί προς τα πάνω. Η μορφή περιγραφέα για τους μικροεπεξεργαστές 80286 και 80386/ 80486/ Pentium/Pentium Pro

50 Το πεδίο του περιγραφέα που αναφέρεται στη διεύθυνση βάσης δείχνει την αρχική διεύθυνση του τμήματος. Για τον 80286 μικροεπεξεργαστή, το πεδίο αυτό έχει εύρος 24-bit και έτσι τα τμήματα είναι δυνατό να αρχίζουν σε οποιαδήποτε διεύθυνση μέσα στα 16 Mbytes της μνήμης. Να σημειωθεί ότι ο περιορισμός βηματισμού των ορίων των τμημάτων ανά 16 bytes που υπήρχε στον πραγματικό τρόπο, εδώ δεν υπάρχει. Από τον 80386 και πάνω, το εύρος του πεδίου διεύθυνσης βάσης είναι 32-bit με αποτέλεσμα δυνατότητα διευθυνσιοδότησης τμήματος οπουδήποτε μέσα σε 4 Gbytes της μνήμης. Να σημειωθεί πως ο περιγραφέας του 80286 είναι προς τα πάνω συμβατός με αυτούς των 80386 έως Pentium Pro, έχοντας τα 16 πλέον σημαντικά bits ίσα με 0. Το πεδίο ορίου τμήματος (segment limit) περιέχει την τελευταία διεύθυνση απόκλισης που είναι δυνατό να βρεθεί στο τμήμα. Για παράδειγμα, αν ένα τμήμα ξεκινά από τη θέση μνήμης F00000H και τερματίζει στη θέση F000FFH, η διεύθυνση βάσης είναι η F00000H και το όριο είναι FFH. Για τον 80286 η διεύθυνση βάσης είναι η F00000H και το όριο 00FFH. Για τον 80386 και πάνω η διεύθυνση βάσης είναι η 00F00000H και το όριο είναι 000FFH. Επισημαίνεται ότι ο 80286 έχει ένα όριο τμήματος 16-bit ενώ από τον 80386 και πάνω υπάρχει όριο τμήματος των 20-bit. Ο 80286 προσπελαύνει τμήματα μνήμης τα οποία είναι μεγέθους από 1 έως 64 Kbytes (διότι η διεύθυνση απόκλισης είναι ένα μέγεθος των 16-bits λόγω της 16-bit αρχιτεκτονικής του μικροεπεξεργαστή). Από τον 80386 και πάνω προσπελαύνονται τμήματα μεγέθους 1 έως 1 Μbytes ή 4Κ έως 4 Gbytes, κάτι που επιλέγεται με το G bit (η αρχιτεκτονική είναι 32-bit, κάτι που επιτρέπει – στον προστατευμένο τρόπο λειτουργίας – διεύθυνση απόκλισης των 32-bits).

51 Το G bit ή bit αναλυτικότητας (granularity bit). υπάρχει στους 80386 - Pentium Pro μικροεπεξεργαστές και δεν υπάρχει στον περιγραφέα του 80286: Εάν G = 0 τότε το πεδίο του ορίου καθορίζει ένα μέγεθος τμήματος από ένα byte έως 1 Mbyte. Αν G = 1 τότε το όριο είναι ένα οποιοδήποτε πολλαπλάσιο των 4 Kbytes. Αυτό επιτρέπει ένα μέγεθος τμήματος από 4 Kbytes έως 4 Gbytes σε βήματα των 4Κ. Το AV bit, στον περιγραφέα από τον 80386 και μετά, χρησιμοποιείται σε μερικά λειτουργικά συστήματα για την ένδειξη της διαθεσιμότητας (AV = 1) ή μη (AV = 0) του τμήματος. Το D bit δείχνει το πώς οι επεξεργαστές από τον 80386 έως τον Pentium Pro, προσπελαύνουν τα δεδομένα στους καταχωρητές και στη μνήμη στον προστατευμένο τρόπο λειτουργίας. Αν D = 0 οι εντολές είναι 16-bit εντολές, συμβατές με την αρχιτεκτονική των 8086 – 80286. Αυτό σημαίνει ότι οι εντολές χρησιμοποιούν 16-bit μετατοπίσεις και 16-bit καταχωρητές. Ο τρόπος αυτός λειτουργίας συνήθως καλείται 16-bit τρόπος λειτουργίας. Αν D = 1 τότε οι εντολές είναι 32-bit εντολές. Εξ’ ορισμού στον 32-bit τρόπο λειτουργίας ο μικροεπεξεργαστής θεωρεί όλες τις μετατοπίσεις και τους καταχωρητές 32-bit. Υπάρχει όμως και η δυνατότητα σε κάθε τρόπο λειτουργίας, και στον 16-bit και στον 32-bit, για αλλαγή της εξ’ ορισμού (default) θεώρησης των μετατοπίσεων και των καταχωρητών.

52 Τα πεδίο δικαιωμάτων πρόσβασης (σχήμα) ελέγχει την πρόσβαση στο τμήμα της μνήμης. Το byte αυτό περιγράφει πως λειτουργεί το τμήμα στο σύστημα και πως επιτρέπεται ο πλήρης έλεγχος επί του τμήματος. Αν το τμήμα είναι ένα τμήμα δεδομένων ορίζεται και η κατεύθυνση ανάπτυξής του. Αν το μέγεθος του τμήματος ξεπεράσει το όριό του η εκτέλεση του προγράμματος διακόπτεται με την ένδειξη γενικού λάθους προστασίας (general protection fault). Είναι δυνατόν ακόμα να καθορισθεί και αν στο τμήμα μπορούν να εγγραφούν δεδομένα ή το τμήμα είναι τμήμα μόνο ανάγνωσης και προστατευμένο από εγγραφή. Το τμήμα κώδικα επίσης ελέγχεται κατά παρόμοιο τρόπο και μπορούμε να έχουμε και τμήμα προστατευμένο ακόμα και από ανάγνωση, για λόγους διασφάλισης και προστασίας του λογισμικού. To byte των δικαιωμάτων πρόσβασης για τον περιγραφέα 80286, 80386, 80486, Pentium και Pentium Pro

53 Τα περιεχόμενα ενός καταχωρητή τμήματος σε προστατευμένο τρόπο λειτουργίας για τους μικροεπεξεργαστές 80286 και πάνω Οι περιγραφείς επιλέγονται από τον πίνακα των περιγραφέων σύμφωνα με τα περιεχόμενα του καταχωρητή τμήματος. Οπως φαίνεται από το σχήμα, ο καταχωρητής τμήματος περιέχει ένα 13-bit πεδίο επιλογέα (Selector), ένα bit επιλογής πίνακα και ένα πεδίο αίτησης επιπέδου δικαιωμάτων. Ο 13-bit επιλογέας επιλέγει έναν από 8192 περιγραφείς από τον πίνακα περιγραφέων. Το TI bit επιλέγει είτε τον γενικό πίνακα (TI = 0) είτε τον τοπικό πίνακα (TI = 1). To αιτούμενο προνομιακό επίπεδο (Requested Privilege Level – RPL) δηλώνει το προνομιακό επίπεδο που επιθυμείται από το εν λόγω τμήμα. Το υψηλότερο προνομιακό επίπεδο είναι το 00 και το χαμηλότερο 11. Αν το αιτούμενο επίπεδο είναι ίσο ή υψηλότερο σε προτεραιότητα από το επίπεδο που τίθεται με το πεδίο δικαιωμάτων πρόσβασης, τότε επιτρέπεται η πρόσβαση στο τμήμα. Για παράδειγμα αν το αιτούμενο επίπεδο δικαιωμάτων είναι 10 και το πεδίο διακαιωμάτων πρόσβασης είναι 11, τότε επιτρέπεται η προσπέλαση του τμήματος, διότι το 10 είναι υψηλότερο προνομιακό επίπεδο. Τα προνομιακά επίπεδα χρησιμοποιούνται σε πολυχρηστικά περιβάλλοντα. Αν παραβιαστεί ένα επίπεδο, τότε κανονικά το σύστημα θα εκδόσει μια ένδειξη αυτής της παραβίασης.

54 Το παρακάτω σχήμα δείχνει το πώς ο καταχωρητής τμήματος, που περιέχει τον επιλογέα επιλέγει έναν περιγραφέα από τον γενικό πίνακα. Η καταχώρηση στον γενικό πίνακα επιλέγει με τη σειρά της ένα τμήμα στη μνήμη του συστήματος. Στο σχήμα ο DS περιέχει το 0008Η το οποίο επιλέγει τον περιγραφέα υπ’ αριθμό 1 από το γενικό πίνακα χρησιμοποιώντας ένα αιτούμενο επίπεδο δικαιωμάτων ίσο με 00. Ο περιγραφέας Νο.1 ορίζει τη βάση του τμήματος στη θέση 00100000Η και το όριο στη θέση 000FFH. Αυτό σημαίνει ότι το φόρτωμα της τιμής 0008Η στον DS οδηγεί το μικροεπεξεργαστή στη χρήση των θέσεων 00100000Η – 001000FFH για το τμήμα δεδομένων στο συγκεκριμένο παράδειγμα. Να σημειωθεί ότι ο Νο.0 περιγραφέας ονομάζεται κενός ή μηδενικός (null) και απαγορεύεται να χρησιμοποιείται για προσπέλαση μνήμης. Χρήση του καταχωρητή DS για την επιλογή ενός περιγραφέα από τον συνολικό πίνακα περιγραφέων. Σ΄ αυτό το παράδειγμα ο καταχωρητής DS προσπελαύνει τις θέσεις μνήμης 100000H-1000FFH ως ένα τμήμα δεδομένων

55 80386 MEMORY MANAGEMENT

56 SEGMENT TRANSLATION

57

58

59

60 PAGE TRANSLATION

61

62

63

64

65

66 PROTECTION

67

68

69

70

71

72

73

74

75

76

77

78

79

80 Ι.2 Μη Oρατοί από το Πρόγραμμα Kαταχωρητές Ο γενικός και ο τοπικός πίνακας περιγραφέων βρίσκονται στην κύρια μνήμη του συστήματος. Για την προσπέλαση αυτών των πινάκων οι 80286, 80386, Pentium και Pentium Pro χρησιμοποιούν «αόρατους» από το πρόγραμμα καταχωρητές. Οι αόρατοι αυτοί καταχωρητές δεν προσπελαύνονται άμεσα από το πρόγραμμα. Γι’ αυτό και έχουν τέτοια ονομασία, παρ’όλο που κάποιοι από αυτούς είναι δυνατό να προσπελασθούν από το λογισμικό του συστήματος. Το Σχήμα 2-10 παρουσιάζει τους μη ορατούς καταχωρητές όπως αυτοί εμφανίζονται στους μικροεπεξεργαστές από τον 80286 ως τον Pentium Pro. Αυτοί οι μικροεπεξεργαστές ελέγχουν το μικροεπεξεργαστή στον προστατευμένο τρόπο λειτουργίας. ΣΧΗΜΑ 2-10. Oι μη-ορατοί από το πρόγραμμα καταχωρητής στους μικροεπεξεργαστές 80286 και πάνω

81 Κάθε ένας από τους καταχωρητές τμήματος περιέχει ένα μη ορατό μέρος κατά τον προστατευμένο τρόπο λειτουργίας. Το μη ορατό αυτό τμήμα των καταχωρητών συνήθως αποκαλείται κρυφός καταχωρητής (cache). Ο κρυφός αυτός καταχωρητής δεν πρέπει να συγχέεται με τις τυπικές κρυφές μνήμες πρώτου και δευτέρου επιπέδου που υπάρχουν στους ανώτερους επεξεργαστές της οικογένειας. Στο μη ορατό μέρος του καταχωρητή τμήματος φορτώνονται η διεύθυνση βάσης, το όριο και τα δικαιώματα πρόσβασης κάθε φορά που αλλάζει η τιμή του καταχωρητή τμήματος. Όταν μια νέα τιμή φορτώνεται στον καταχωρητή τμήματος, ο μικροεπεξεργαστής προσπελαύνει έναν πίνακα περιγραφέων και φορτώνει τα περιεχόμενα του επιλεγμένου περιγραφέα στο κρυφό μέρος του καταχωρητή τμήματος. Οι τιμές αυτές θα κρατηθούν εκεί και θα χρησιμοποιούνται για την προσπέλαση του τμήματος εως ότου αλλάξει η τιμή του καταχωρητή τμήματος. Αυτό επιτρέπει στον μικροεπεξεργαστή να κάνει επαναληπτικές προσπελάσεις στο ίδιο τμήμα χωρίς κάθε φορά να ανατρέχει στους πίνακες περιγραφέων, γι’ αυτό και ο όρος κρυφός (cache). Ο καταχωρητής γενικού πίνακα περιγραφέων, GDTR (global descriptor table register), και ο καταχωρητής πίνακα περιγραφέων διακοπής, IDTR (interrupt descriptor table register), περιέχουν τη διεύθυνση βάσης και το όριο του πίνακα περιγραφέων. Το όριο του κάθε πίνακα περιγραφέων είναι 16- bits, εξ’αιτίας του μέγιστου μήκους των 64 Kbytes. Όταν επιθυμείται προστατευμένος τρόπος λειτουργίας, η διεύθυνση του γενικού πίνακα περιγραφέων και το όριό του φορτώνονται στον GDTR. Πριν από την έναρξη χρήσης του προστατευμένου τρόπου λειτουργίας, πρέπει επίσης να αρχικοποιηθεί ο πίνακας περιγραφέων διακοπής και ο IDTR καταχωρητής.

82 Η θέση του τοπικού πίνακα περιγραφέων επιλέγεται από το γενικό πίνακα. Ενας από τους γενικούς περιγραφείς έχει συμπληρωθεί ώστε να οδηγεί στον τοπικό πίνακα. Για να προσπελασθεί ο τοπικός πίνακας, ο καταχωρητής τοπικού πίνακα περιγραφέων, LDTR (local descriptor table register), φορτώνεται με έναν επιλογέα όπως ακριβώς και ένας καταχωρητής τμήματος. Ο επιλογέας αυτός ορίζει μια θέση στον γενικό πίνακα περιγραφέων από όπου φορτώνονται στo κρυφό τμήμα του LDTR η διεύθυνση βάσης, το μέγεθος και τα δικαιώματα πρόσβασης του τοπικού πίνακα περιγραφέων. Ο καταχωρητής έργων, TR (Task Register), περιέχει έναν επιλογέα που ορίζει έναν περιγραφέα, ο οποίος με τη σειρά του ορίζει ένα έργο., δηλ. συνήθως ένα πρόγραμμα εφαρμογής. Ο περιγραφέας για τη διαδικασία είναι αποθηκευμένος στο γενικό πίνακα περιγραφέων έτσι ώστε η πρόσβαση να μπορεί να ελεγχθεί μέσω των διαφορετικών προνομιακών επιπέδων. Ο TR επιτρέπει την μεταγωγή μεταξύ δύο έργων (task switch) σε 17μsec περίπου. Η μεταγωγή έργων επιτρέπει στα συστήματα πολυδιεργασίας να μετακινούνται από το ένα έργο στο άλλο με ένα απλό και τυπικό τρόπο.

83 ΙΙ.2 Καταχωρητές Σελιδοποίησης Η μονάδα σελιδοποίησης ελέγχεται από τα περιεχόμενα των καταχωρητών ελέγχου του μικροεπεξεργαστή (Σχήμα 2-11 για τα περιεχόμενα των καταχωρητών ελέγχου CR0 – CR3). Να σημειωθεί ότι οι καταχωρητές αυτοί είναι διαθέσιμοι από τον 80386 και μετά. Επίσης, οι Pentium και Pentium Pro περιέχουν έναν επιπλέον καταχωρητή ελέγχου, τον CR4, ο οποίος ελέγχει επεκτάσεις λειτουργιών που παρέχονται από αυτούς τους μικροεπεξεργαστές. Μια από αυτές τις νέες λειτουργίες είναι η ενεργοποίηση σελίδας των 4 Mbytes θέτοντας το bit 4 του CR4. ΣΧΗΜΑ 2-11. Η δομή του καταχωρητή ελέγχου του μικροεπεξεργαστή

84 Οι σημαντικοί για τη σελιδοποίηση καταχωρητές είναι οι CR0 και CR3. Το τελευταίο bit αριστερά (PG) του CR0 επιλέγει σελιδοποίηση όταν τοποθετείται σε τιμή λογικού 1. Αν PG = 0 η γραμμική διεύθυνση που παράγεται από το πρόγραμμα γίνεται και η φυσική διεύθυνση προσπέλασης της μνήμης. Αν PG = 1 τότε η γραμμική διεύθυνση μετατρέπεται σε φυσική μέσω του μηχανισμού σελιδοποίησης. Ο μηχανισμός σελιδοποίησης λειτουργεί και στον πραγματικό και στον προστατευμένο τρόπο λειτουργίας.

85 Τα περιεχόμενα του CR3 περιλαμβάνουν τη διεύθυνση βάσης του καταλόγου σελίδων και τα PCD και PWT bits. Τα bits αυτά ελέγχουν τη λειτουργία των αντίστοιχων ακροδεκτών του μικροεπεξεργαστή. Αν το PCD bit είναι ίσο με 1, τότε ο PCD ακροδέκτης οδηγείται στο 1 κατά τη διάρκεια κύκλων που δεν είναι σελίδες. Αυτό επιτρέπει το εξωτερικό υλικό να ελέγχει την κρυφή μνήμη cache δευτέρου επιπέδου. (Η κρυφή μνήμη δευτέρου επιπέδου είναι μια εξωτερική ταχύτατη μνήμη που λειτουργεί ως ενδιάμεσος μεταξύ του μικροεπεξεργαστή και της κύριας μνήμης DRAM του συστήματος). Το PWT bit, επίσης, εμφανίζεται στον PWT ακροδέκτη κατά τη διαδικασία κύκλων αρτηρίας, που δεν σχετίζονται με τη σελιδοποίηση, για τον έλεγχο της κρυφής μνήμης write-through. Η διεύθυνση βάσης του καταλόγου σελίδων καθορίζει τη θέση του καταλόγου που περιέχει τις διευθύνσεις των πινάκων μετάφρασης σελίδων. Να σημειωθεί ότι η διεύθυνση αυτή τοποθετεί τον κατάλογο σε θέση που είναι πολλαπλάσιο των 4 Kbytes, μια και εσωτερικά συμπληρώνεται με ένα πεδίο 000Η στα δεξιά. Ο κατάλογος σελίδων περιέχει 1024 καταχωρήσεις των 4 Bytes η κάθε μια. Κάθε τέτοια καταχώρηση οδηγεί σε ένα πίνακα σελίδων, επίσης των 1024 καταχωρήσεων. ΣΧΗΜΑ 2-11. Η δομή του καταχωρητή ελέγχου του μικροεπεξεργαστή

86 Η γραμμική διεύθυνση, όπως αυτή παράγεται από το πρόγραμμα, χωρίζεται σε τρία τμήματα τα οποία χρησιμοποιούνται για την προσπέλαση του καταλόγου σελίδων (page directory), του πίνακα σελίδων (page table), και της απόκλισης μέσα στη σελίδα (page offset). Το Σχήμα 2- 12 δείχνει τη γραμμική διεύθυνση και το χωρισμό της στα τμήματα που χρησιμοποιούνται από το μηχανισμό σελιδοποίησης. Παρατηρείστε πώς τα πρώτα 10 bits από αριστερά ορίζουν τη θέση μιας καταχώρησης στον κατάλογο σελίδων. Για τις γραμμικές διευθύνσεις 00000000Η – 003FFFFFH προσπελαύνεται η πρώτη καταχώρηση στον κατάλογο. Κάθε τέτοια καταχώρηση αντιπροσωπεύει και ένα τμήμα 4 Mbytes του συστήματος μνήμης. Τα περιεχόμενα της καταχώρησης αυτής στον κατάλογο επιλέγουν ένα πίνακα ο οποίος δεικτοδοτείται από τα επόμενα 10 bits της γραμμικής διεύθυνσης (θέσεις 12 – 21). Αυτό σημαίνει ότι οι διευθύνσεις 00000000H – 00000FFFH επιλέγουν την πρώτη καταχώρηση στον κατάλογο και την πρώτη καταχώρηση στον πίνακα σελίδων. Παρατηρείστε ότι πρόκειται για ένα εύρος προγράμματος διευθύνσεων των 4 Kbytes. Το τμήμα της γραμμικής διεύθυνσης που ορίζει τη απόκλιση (bits 0-11) επιλέγει ένα byte μέσα στη σελίδα των 4 Kbytes. Στο Σχήμα 2-12, αν η πρώτη καταχώρηση του πίνακα σελίδων (θέση 0) περιέχει τη διεύθυνση 00100000Η, τότε η φυσική διεύθυνση είναι 00100000Η – 00100FFFH για γραμμική διεύθυνση 00000000Η – 00000FFFH. Αυτό σημαίνει ότι όταν το πρόγραμμα προσπελαύνει μια θέση μεταξύ 00000000Η και 00000FFFH τότε ο μικροεπεξεργαστής προσπελαύνει μια φυσική διεύθυνση από 00100000Η έως 00100FFFH. ΣΧΗΜΑ 2-12. Η μορφή της γραμμικής διεύθυνσης (a) και μιας καταχώρησης στον κατάλογο σελίδων ή στον πίνακα σελίδων (b)

87 31...... 22 21...... 12 11...... 0 DIRTABLEOFFSET A 32-bit Linear address is divided as follows: Physical address is then computed (in hardware) as: CR3 + DIR:points to the table_base. table_base + TABLE:points to the page_base. physical_address =page_base + OFFSET Format for Page directory and Page table entries: 31...... 12 11.. 9876543210 ADDR ESS OS00DA00U/SR/WP D1 means page is dirty (undefined for page directory entry). R/W0 means readonly for user. U/S1 means user page. P1 means page is present in memory. A1 means page has been accessed (set to 0 by aging). OSdefined by the OS.

88 The advantage of the paging mechanism is that: the complete segment of a task need not be in the physical memory at any time. Only a few pages of the segments, which are required currently for the execution need to be available in the physical memory. Thus the memory requirement of the task is substantially reduced, relinquishing the available memory for other tasks. Whenever the other pages of task are required for execution, they may be fetched from the secondary storage. The previous page which are executed, need not be available in the memory, and hence the space occupied by them may be relinquished for other tasks

89 Thus, paging mechanism provides an effective technique to manage the physical memory for multitasking systems. Paging Unit: The paging unit of 80386 uses a two level table mechanism to convert a linear address provided by segmentation unit into physical addresses. The paging unit converts the complete map of a task into pages, each of size 4K. The task is further handled in terms of its page, rather than segments. The paging unit handles every task in terms of three components namely page directory, page tables and page itself.

90 Paging Descriptor Base Register: The control register CR2 is used to store the 32-bit linear address at which the previous page fault was detected. The CR3 is used as page directory physical base address register, to store the physical starting address of the page Directory. The lower 12 bit of the CR3 are always zero to ensure the page size aligned directory. A move operation to CR3 automatically loads the page table entry caches and a task switch operation, to load CR0 suitably. Page Directory : This is at the most 4Kbytes in size. Each directory entry is of 4 bytes, thus a total of 1024 entries are allowed in a directory. The upper 10 bits of the linear address are used as an index to the corresponding page directory entry. The page directory entries point to page tables. Page Tables: Each page table is of 4Kbytes in size and many contain a maximum of 1024 entries. The page table entries contain the starting address of the page and the statistical information about the page.

91

92

93

94

95 Cache (Λανθάνουσα, Κρυφή) Memory Η λανθάνουσα μνήμη χρησιμοποιούμενη από την CPU για την μείωση του μέσου χρόνου προσπέλασης της μνήμης του συστήματος. Η μνήμη αυτή είναι μικρότερη και ταχύτερη και αποθηκεύει ‘αντίγραφα’ δεδομένων απο τις πλέον χρησιμοποιούμενες θέσεις της κύριας (main memory). Όταν ο processor χρειάζεται να διαβάσει ή να γράψει σε μια θέση της κύριας μνήμης, πρώτα ελέγχει αν ένα ‘αντίγραφο’ αυτού του δεδομένου υπάρχει στην cache. Αν ναι, ο processor άμεσα διαβάζει η γράφει από ή στην cache, που υψηλότερη ταχύτητα απ’ ότι αν έκανε το ίδιο έργο με την κύρια μνήμη. Υπάρχουν 3 ανεξάρτητες CPU caches: η instruction cache ‘…to speed up executable instruction fetch…’, a data cache ‘…to speed up data fetch and store…’, και η translation lookaside buffer «... to speed up virtual-to-physical address translation for both executable instructions and data...’translation lookaside buffer

96 Το σύστημα μνήμης (I) Το σύστημα μνήμης διαιρείται σε τρία μέρη: στην TPA (transient program area), την περιοχή του συστήματος, και το XMS (extended memory system). Ο τύπος του μικροεπεξεργαστή στον υπολογιστή προσδιορίζει αν υπάρχει ή όχι ένα σύστημα εκτεταμένης μνήμης. Η TPA: Η περιοχή μεταβατικού προγράμματος (TPA) περιλαμβάνει το λειτουργικό σύστημα και άλλα προγράμματα που ελέγχουν το σύστημα του υπολογιστή. Το μήκος της TPA είναι 640K Bytes (ο χάρτης ρης μνήμης TPA διαφέρει μεταξύ συστημάτων). Η ελεύθερη TPA περιοχή περιλαμβάνει προγράμματα εφαρμογών καθώς αυτά επιλέγονται. Αυτά τα προγράμματα εφαρμογών περιλαμβάνουν επεξεργαστές κειμένου, προγράμματα λογιστικών φύλλων, προγράμματα CAD, και άλλα.

97 Ο ενδεικτικός χάρτης μνήμης της TPA σε έναν PC

98 H Περιοχή Συστήματος: Η περιοχή συστήματος, αν και μικρότερη από την TPA, είναι επίσης εξίσου σημαντική. Η περιοχή συστήματος (System Area) περιέχει προγράμματα είτε σε μια μνήμη ανάγνωσης μόνο (ROM) ή μνήμη flash καθώς και περιοχές μνήμης ανάγνωσης/γραφής (RAM) για αποθήκευση δεδομένων. Το Σχήμα 1-5 δείχνει την περιοχή του συστήματος ενός τυπικού προγράμματος υπολογιστή. Όπως και με το χάρτη της TPA, αυτός ο χάρτης επίσης περιλαμβάνει τις δεκαεξαδικές διευθύνσεις μνήμης των διαφόρων περιοχών. Η περιοχή στις θέσεις C8000H-DFFFFH είναι συνήθως ανοικτή ή ελεύθερη. Αυτή η περιοχή χρησιμοποιείται για το διευρυμένο σύστημα μνήμης (Expanded Memory System - EMS) και η χρήση του εξαρτάται από το σύστημα και τη διάρθρωση. Το EMS επιτρέπει σε ένα 64Κ byte πλαίσιο σελίδας της μνήμης να χρησιμοποιείται από προγράμματα εφαρμογών. Αυτό το 64Κ byte πλαίσιο σελίδας χρησιμοποιείται για να διευρύνει το σύστημα μνήμης φέρνοντας δια μεταγωγής σελίδες της μνήμης από EMS σε αυτή τη περιοχή των διευθύνσεων μνήμης. Το σύστημα μνήμης (IΙ)

99 Περιοχή συστήματος ενός τυπικού PC

100 Extended memory: Αναφέρεται συνήθως στη μνήμη πάνω από το πρώτο megabyte of address space σε ένα τύπου IBM PC με ένα 80286 ή μεταγενέστερο processor. Ο όρος αυτός συνήθως χρησιμοποιείται για DOS και Windows operating systems. Τα DOS προγράμματα, εκτελούμενα σε real mode ή virtual x86 mode, δεν μπορούν να προσπελάσουν άμεσα αυτήν την μνήμη, αλλά μπορούν να το κάνουν μέσω ένός application programming interface (API) που ονομάζεται eXtended Memory Specification (XMS) και το οποίο υλοποιείται μέσω ενός driver (όπως το HIMEM.SYS) ή του OS το οποίο εκτελεί το memory management και αντιγράφει μεταξύ conventional και extended memory, θέτοντας προσωρινά τον processor σε protected mode. Κατ’ αυτήν την έννοια ο όρος "extended memory" μπορεί να αναφέρεται είτε στη συνολική είτε σε ένα μέρος της extended memory (μέσω αυτού του API).megabyte address spaceIBM PC80286processorDOSWindowsoperating systemsreal modevirtual x86 modeapplication programming interfaceeXtended Memory SpecificationHIMEM.SYSmemory management conventionalprotected mode Extended memory δεν πρέπει να συγχέεται με την expanded memory (μνήμη PC πέραν των 640 kb χρησιμοποιώντας expansion card με bank switched memory modules)expanded memoryexpansion cardbank switched Το σύστημα μνήμης (IΙ)

101 Μεγέθη αρτηριών και μνήμης των μ-ε της Intel PartData Bus WidthAddress Bus WidthMemory Size 808616 20 1M 80888 20 1M 8018616 20 1M 801888 20 1M 8028616 24 16M 80386SX16 24 16M 80386DX32 4G 80386EX16 26 64M 8048632 4G Pentium64 32 4G Pentium Overdrive32 4G4G Pentium Pro64 32 4G4G Pentium Pro64 36 64G

102 Απλές αριθμητικές λογικές λειτουργίες OperationComment Addition Subtraction Multiplication Division ANDLogical multiplication ORLogical addition NOTLogical inversion NEGArithmetic inversion Shift Rotate

103 Αποφάσεις που εκτελούνται στους μ-ε 8086-80486 και Pentium/Pentium Pro DecisionComment ZeroTest a number for zero or not-zero SignTest a number for positive or negative Carry Test for carry after addition or a borrow after subtraction Parity Test a number for an even or an odd number of ones Overflow Test for an overflow that indicates an invalid signed result after addition or subtraction

104 Ο Μικροεπεξεργαστής 80386 διεξοδικά… Ο μικροεπεξεργαστής 80386 είναι μια ολοκληρωμένη έκδοση των 32 bits των προγενέστερων 8086/8088 και 80286 μικροεπεξεργαστών των 16 bits και αντιπροσωπεύει μία μεγάλη εξέλιξη στην αρχιτεκτονική. Εκτός από το μεγαλύτερο μέγεθος των διαύλων, υπάρχουν πολλές βελτιώσεις και επιπρόσθετα χαρακτηριστικά. Ο μικροεπεξεργαστής 80386 υποστηρίζει πολυεπεξεργασία, διαχείριση μνήμης, εικονική (virtual) μνήμη με ή χωρίς σελιδοποίηση, προστασία λογισμικού, και ένα μεγάλο σύστημα μνήμης. Όλο το λογισμικό που έχει γραφεί για τους προγενέστερους 8086/8088 και τον 80286 είναι προς τα άνω συμβατό με τον μικροεπεξεργαστή 80386. Το μέγεθος μνήμης που διευθυνσιοδοτείται από τον 80386 αυξάνεται από το 1Μ byte των 8086/8088 και τα 16Μ bytes του 80286 σε 4G bytes. Ο 80386 μπορεί να εκτελέσει μεταγωγή ανάμεσα σε προστατευμένο τρόπο λειτουργίας και πραγματικό τρόπο λειτουργίας χωρίς επανάθεση (reset) του μικροεπεξεργαστή. Η μεταγωγή από τον προστατευμένο τρόπο λειτουργίας στον πραγματικό τρόπο λειτουργίας ήταν ένα πρόβλημα στον μικροεπεξεργαστή 80286 διότι απαιτούσε επανάθεση του υλικού.

105 A31-A2Οι συνδέσεις διευθύνσεων (Address bus connections) διευθυνσιοδοτούν οποιαδήποτε από τις 1 G  32 θέσεις μνήμης που υπάρχουν στο σύστημα μνήμης του 80386. Να σημειωθεί ότι τα Α0 και Α1 κωδικοποιούνται στα σήματα bank enable ( - ) προκειμένου να επιλεγεί οποιοδήποτε ή όλα από τα τέσσερα bytes σε μια θέση μνήμης εύρους 32-bit. Επίσης, να σημειωθεί ότι, επειδή ο 80386SX περιλαμβάνει μια αρτηρία δεδομένων των 16-bits αντί των 32-bits που συναντάται στον 80386DX, το Α1 υπάρχει στον 80386SX και τα σήματα bank enable έχουν αντικατασταθεί από τα και. Το σήμα ενεργοποιεί τα επάνω μισό της αρτηρίας δεδομένων, και το σήμα το κάτω μισό. D31-D0Οι συνδέσεις αρτηρίας δεδομένων (data bus connections) μεταφέρουν δεδομένα μεταξύ του μικροεπεξεργαστή και της μνήμης ως και του συστήματος Ι/Ο. Να σημειωθεί ότι ο 80386SX περιλαμβάνει τα D 15 -D 0. -Τα σήματα bank enable επιλέγουν τη προσπέλαση ενός byte, λέξης, ή διπλής λέξης δεδομένων. Τα σήματα αυτά γεννώνται εσωτερικά από τον μικροεπεξεργαστή από τα bits διεύθυνσης Α1 και Α0. M/M/Το σήμα memory/IO επιλέγει μια διάταξη μνήμης όταν είναι σε λογικό 1 ή μια Ι/Ο διάταξη όταν είναι σε λογικό 0. Κατά τη διάρκεια μιας λειτουργίας Ι/Ο, η αρτηρία διευθύνσεων περιέχει μια διεύθυνση Ι/Ο των 14-bit στις συνδέσεις διευθύνσεων Α15-Α2. W/W/Το σήμα εγγραφής/ανάγνωσης (write/read) γνωστοποιεί ότι ο τρέχων κύκλος αρτηρίας είναι εγγραφής όταν είναι σε λογικό 1 ή ανάγνωσης όταν είναι σε λογικό 0. ΒΕ3-ΒΕ0 ADSΤο σήμα address data strobe ενεργοποιείται όταν ο 80386 έχει εκπέμψει μια σωστή διεύθυνση μνήμης ή Ι/Ο. Το σήμα αυτό συνδυάζεται με το σήμα W/ προκειμένου να δημιουργηθούν τα ξεχωριστά σήματα ανάγνωσης και εγγραφής, τα οποία συναντώνται σε συστήματα βασισμένα στους προγενέστερους μικροεπεξεργαστές 8086-80286. RESETΤο σήμα επανάθεσης (reset) αρχικοποιεί τον 80386, αναγκάζοντάς τον να ξεκινήσει την εκτέλεση λογισμικού στη θέση μνήμης FFFFFFF0H. Ο 80386 επανατίθεται στον πραγματικό τρόπο λειτουργίας και οι 12 περισσότερο αριστερά συνδέσεις διεύθυνσης παραμένουν σε λογική 1 (FFH) μέχρις ότου εκτελεστεί ένα far jump ή ένα far call. Αυτό επιτρέπει τη συμβατότητα με τους προγενέστερους μικροεπεξεργαστές.

106 NAΤο σήμα next address αναγκάζει τον 80386 να εκπέμψει τη διεύθυνση της επόμενης εντολής ή τα δεδομένα στο τρέχοντα κύκλο αρτηρίας. Η ακίδα αυτή συχνά χρησιμοποιείται με την διαδιακασία pipelining της διεύθυνσης. HOLDΤο σήμα hold απαιτεί μια ενέργεια DMA. HLDAΤο σήμα hold acknowledge γνωστοποιεί ότι ο 80386 είναι τη στιγμή αυτή σε κατάσταση hold. PEREQΤο σήμα αίτησης συνεπεξεργαστή (coprocessor request) ζητά από τον 80386 να εγκαταλείψει τον έλεγχο και είναι μία απ’ ευθείας σύνδεση στον μαθηματικό συνεπεξεργαστή 80387. BUSYΤο σήμα busy είναι μια είσοδος που χρησιμοποιείται από την εντολή WAIT ή FWAIT η οποία αναμένει τον συνεπεξεργαστή να μην είναι κατειλημμένος. Το σήμα αυτό είναι επίσης μία απ’ ευθείας σύνδεση προς τον 80387 από τον 80386. ERRORΤο σήμα λάθους (error) γνωστοποιεί στον μικροεπεξεργαστή ότι ένα λάθος έχει ανιχνευθεί από τον συνεπεξεργαστή. INTRΈνα σήμα αίτησης διακοπής (interrupt) χρησιμοποιείται από εξωτερικά κυκλώματα για να αιτήσει μία διακοπή. NMIΈνα σήμα μη-επικαλυπτόμενης διακοπής (non-maskable interrupt) απαιτεί μια μη-επικαλυπτόμενη διακοπή όπως έκανε στις προγενέστερες εκδόσεις του μικροεπεξεργαστή. CLK2Το σήμα clock times 2 οδηγείται από ένα σήμα ρολογιού το οποίο είναι διπλάσιο από τη συχνότητα λειτουργίας του 80386. Για παράδειγμα, για συχνότητα λειτουργίας του 80386, 16 MHz, εφαρμόζουμε ένα ρολόι των 32 MHz σ’ αυτή την ακίδα. READYΤο σήμα ready ελέγχει τον αριθμό των καταστάσεων αναμονής που εισέρχονται στο χρονισμό προκειμένου να επιμηκύνουν τις προσπελάσεις μνήμης. LOCKΤο σήμα lock μεταβαίνει σε λογικό 0 όταν μια εντολή έχει το πρόθεμα LOCK:. Αυτό χρησιμοποιείται περισσότερο κατά τη διάρκεια DMA προσπελάσεων. D/ CΤο σήμα data/control γνωστοποιεί ότι η αρτηρία δεδομένων περιέχει δεδομένα προς ή από τη μνήμη ή Ι/Ο όταν είναι σε λογικό 1. Εάν το D/ είναι σε λογικό 0, ο μικροεπεξεργαστής σταματά ή εκτελεί μια αναγνώριση διακοπής. BS16Το σήμα bus size 16 επιλέγει είτε μια αρτηρία δεδομένων των 32-bit ( =1) ή μια αρτηρία δεδομένων των 16-bit ( =0). Στις περισσότερες περιπτώσεις, που ο 80386DX λειτουργεί σε μια αρτηρία δεδομένων των 16-bit, χρησιμοποιούμε τον 80386SX.

107 Το σύστημα μνήμης του μικροεπεξεργαστή 80386 Παρατηρείστε ότι η μνήμη είναι οργανωμένη σε τέσσερις συστοιχίες, η κάθε μία εκ των οποίων περιέχει 1G byte. Η μνήμη προσπελαύνεται ως δεδομένα των 8-, 16-, ή 32-bit. Το σύστημα φυσικής μνήμης του 80386DX είναι 4G bytes σε μέγεθος και διευθυνσιοδοτείται ως ακολούθως: εάν χρησιμοποιείται εικονική διευθυνσιοδότηση, 64Τ bytes χαρτογραφούνται σε 4G bytes φυσικού χώρου από τη μονάδα διαχείρισης μνήμης και τους περιγραφείς (descriptors). Σημειώστε ότι η εικονική διευθυνσιοδότηση επιτρέπει σ’ ένα πρόγραμμα να είναι μεγαλύτερο από 4G bytes εάν υπάρχει μία μέθοδος εναλλαγής (swapping) μ’ ένα πολύ μεγάλο σκληρό δίσκο. Το σύστημα φυσικής μνήμης του 80386DX

108 Η μνήμη διαιρείται σε τέσσερις συστοιχίες μνήμης των 8-bit, η κάθε μια εκ των οποίων περιλαμβάνει μέχρι 1G byte μνήμης. Αυτή η οργάνωση μνήμης των 32-bit επιτρέπει σε bytes, λέξεις και διπλές λέξεις δεδομένων μνήμης να προσπελαύνονται άμεσα. Ο 80386DX μεταφέρει έναν αριθμό μέχρι 32-bits σ’ έναν απλό κύκλο μνήμης, ενώ ο προγενέστερος 8088 απαιτεί τέσσερις κύκλους προκειμένου να διεκπεραιώσει την ίδια μεταφορά και οι 80286 και 80386SX απαιτούν δύο κύκλους. Σήμερα, το εύρος των δεδομένων είναι σημαντικό, ιδιαίτερα με τους αριθμούς κινητής υποδιαστολής απλής ακρίβειας πλάτους 32-bits. Οι αριθμοί κινητής υποδιαστολής χρησιμοποιούνται από λογισμικό υψηλού επιπέδου για την αποθήκευση δεδομένων. Έτσι οι θέσεις μνήμης των 32-bit επιταχύνουν την εκτέλεση λογισμικού υψηλού επιπέδου, εάν είναι γραμμένο ώστε να εκμεταλλευτεί αυτή την ευρύτερη μνήμη. Κάθε byte μνήμης αριθμείται στο δεκαεξαδικό όπως γίνονταν και σε προηγούμενες εκδόσεις της οικογένειας. Η διαφορά είναι ότι ο 80386DX χρησιμοποιεί διεύθυνση μνήμης των 32-bit με τα bytes της μνήμης να αριθμούνται από τη θέση 00000000Η έως FFFFFFFFH.

109 Σύστημα Απομόνωσης: Οι απομονωτές (buffers) αυξάνουν την ικανότητα οδήγησης των διαύλων διευθύνσεων, δεδομένων, και ελέγχου. Το σήμα HLDA χρησιμοποιείται για να ενεργοποιήσει όλους τους απομονωτές σ’ ένα σύστημα το οποίο χρησιμοποιεί άμεση προσπέλαση μνήμης. Αλλιώς, σ’ ένα σύστημα μη-DMA οι ακίδες ενεργοποίησης απομονωτών συνδέονται στη γείωση.

110 Pipelines και caches Η κρυφή (cache) μνήμη είναι μια περιοχή μνήμης προσωρινής αποθήκευσης (buffer) η οποία επιτρέπει στον 80386 να λειτουργεί περισσότερο αποτελεσματικά με τις χαμηλότερες ταχύτητες μνημών DRAM. Ο μηχανισμός pipeline είναι ένας ιδιαίτερος τρόπος διαχείρισης των προσπελάσεων μνήμης έτσι ώστε η μνήμη να έχει επιπρόσθετο χρόνο για την προσπέλαση δεδομένων. Ένας 80386 των 16 MHz επιτρέπει σε διατάξεις μνήμης με χρόνους προσπέλασης των 50 ns ή μικρότερους να λειτουργούν σε πλήρη ταχύτητα. Για τυπικές μνήμες με χρόνο προσπέλασης των 60 ns ή μεγαλύτερο, απαιτείται κάποια τεχνική για να διασυνδεθούν αυτές οι διατάξεις μνήμης, οι οποίες είναι βραδύτερες απ’ ότι απαιτείται από τον μικροεπεξεργαστή. Ο μηχανισμός pipeline είναι ο προτιμότερος τρόπος διασύνδεσης μνήμης διότι ο μικροεπεξεργαστής 80386 υποστηρίζει αυτές τις προσπελάσεις. Το pipeline επιτρέπει στη μνήμη μια επιπλέον περίοδο ρολογιού για την προσπέλαση των δεδομένων. Το επιπρόσθετο ρολόι επεκτείνει το χρόνο προσπέλασης από 50 ns σε 81 ns σ’ έναν 80386 ο οποίος λειτουργεί μ’ ένα ρολόι των 16 MHz. Η διαδικασία pipe, όπως συχνά λέγεται, τίθεται από τον μικροεπεξεργαστή. Όταν μια εντολή προσκομίζεται από τη μνήμη, ο μικροεπεξεργαστής έχει συχνά επιπλέον χρόνο πριν προσκομιστεί η επόμενη εντολή. Κατά τη διάρκεια αυτού του επιπλέον χρόνου, η διεύθυνση της επόμενης εντολής στέλνεται από την αρτηρία διευθύνσεων νωρίτερα. Αυτός ο επιπλέον χρόνος (μια περίοδος ρολογιού) χρησιμοποιείται για να επιτρέψει επιπρόσθετο χρόνο προσπέλασης σε αργές διατάξεις μνήμης. Από το πλεονέκτημα του pipeline δεν μπορούν να επωφεληθούν όλες οι αναφορές στη μνήμη, το οποίο σημαίνει ότι σε μερικούς κύκλους μνήμης δεν μπορεί να εφαρμοστεί ο μηχανισμός αυτός. Οι κύκλοι μνήμης στους οποίους δεν μπορεί να εφαρμοστεί απαιτούν μια κατάσταση αναμονής εάν ο κανονικός κύκλος pipeline δεν απαιτεί καταστάσεις αναμονής. Συνολικά, μια σωλήνωση είναι ένα χαρακτηριστικό κέρδους σε κόστος, επειδή χαλαρώνει το χρόνο προσπέλασης που απαιτείται από το σύστημα μνήμης σε χαμηλής ταχύτητας συστήματα.

111 Στα συστήματα σχετικά υψηλής ταχύτητας, δηλαδή πάνω από 25 MHz, ο μηχανισμός του pipeline δεν προσφέρει σημαντικό πλεονέκτημα. Σ’ αυτά τα υψηλής ταχύτητας συστήματα, μια άλλη τεχνική πρέπει να χρησιμοποιηθεί για να αυξηθεί η ταχύτητα του συστήματος μνήμης. Το σύστημα μνήμης cache βελτιώνει τη συνολική απόδοση των συστημάτων μνήμης για δεδομένα τα οποία προσπελαύνονται περισσότερο από μία φορά. Να σημειωθεί ότι ο 80486 περιλαμβάνει μια εσωτερική μνήμη cache η οποία καλείται μνήμη cache πρώτου επιπέδου (level one cache), ενώ ο 80386 δύναται να περιλαμβάνει μόνο μια εξωτερική μνήμη cache η οποία καλείται μνήμη cache δευτέρου επιπέδου (level two cache). Μια μνήμη cache είναι ένα σύστημα μνήμης υψηλής ταχύτητας η οποία τοποθετείται μεταξύ του μικροεπεξεργαστή και του συστήματος μνήμης DRAM. Οι διατάξεις μνήμης cache είναι συνήθως στατικά κύτταρα μνήμης RAM με χρόνους προσπέλασης μικρότερους από 25 ns. Σε πολλές περιπτώσεις, βλέπουμε συστήματα μνήμης cache με μεγέθη μεταξύ 32Κ και 1Μ byte. Το μέγεθός της καθορίζεται περισσότερο από την εφαρμογή παρά από τον μικροεπεξεργαστή. Εάν ένα πρόγραμμα είναι μικρό και αναφέρεται σε λιγοστά δεδομένα μνήμης, μια μικρή μνήμη cache είναι ικανοποιητική. Εάν ένα πρόγραμμα είναι μεγάλο και κάνει αναφορές σε μεγάλα τμήματα μνήμης, το μεγαλύτερο δυνατό μέγεθος μνήμης cache συνιστάται. Σε πολλές περιπτώσεις, μια τέτοια μνήμη των 64Κ-byte βελτιώνει την ταχύτητα αρκετά, αλλά το μεγαλύτερο όφελος συχνά προκύπτει από μία μνήμη cache των 256-Κ bytes. Έχει βρεθεί ότι αυξάνοντας το μέγεθος της κρυφής μνήμης πέρα από τα 256Κ προκύπτει μικρό όφελος στην ταχύτητα λειτουργίας του συστήματος που περιλαμβάνει ένα μικροεπεξεργαστή 80386.

112 Τα Συστήματα Διαπλεκόμενης (Interleaved) Μνήμης είναι μια άλλη μέθοδος για τη βελτίωση της ταχύτητας εκτέλεσης. Το μόνο του μειονέκτημα είναι ότι κοστίζει σημαντικά περισσότερο ένεκα της δομής του. Τα συστήματα μνήμης interleaved εμφανίζονται σε μερικά συστήματα έτσι ώστε οι χρόνοι προσπέλασης μνήμης να μπορούν να επιμηκύνθουν, χωρίς την ανάγκη ύπαρξης καταστάσεων αναμονής. Σε μερικά συστήματα, η μνήμη αυτή μπορεί να απαιτεί καταστάσεις αναμονής (wait), αλλά με αρκετά μειωμένο τον αριθμό τους. Ένα σύστημα μνήμης interleaved απαιτεί δύο ή περισσότερες ολοκληρωμένες ομάδες αρτηριών διεύθυνσης και έναν ελεγκτή ο οποίος θα παρέχει διευθύνσεις για την κάθε αρτηρία. Τα συστήματα που χρησιμοποιούν δύο πλήρεις αρτηρίες καλούνται two-way interleave, ενώ τα συστήματα που χρησιμοποιούν τέσσερις πλήρεις αρτηρίες καλούνται four-way interleave. Μια μνήμη interleaved διαιρείται σε δύο ή τέσσερα μέρη. Για παράδειγμα, σ’ ένα σύστημα μνήμης που έχει αναπτυχθεί για τον μικροεπεξεργαστή 80386SX, το ένα μέρος περιλαμβάνει τις διευθύνσεις 16-bit 0000000Η-000001Η, 000004Η-000005Η, κτλ., ενώ το άλλο μέρος περιλαμβάνει τις διευθύνσεις 000002-000003, 000006Η-000007Η, κτλ. Εν’ όσω ο μικροεπεξεργαστής προσπελαύνει τις θέσεις 000000Η-000001Η, η λογική του ελέγχου interleaved δημιουργεί το σήμα address strobe για τις θέσεις 000002Η-000003Η. Κατόπιν επιλέγει και προσπελαύνει τη λέξη στη θέση 000002Η-000003Η εν’ όσω ο μικροεπεξεργαστής επεξεργάζεται τη λέξη στη θέση 000000Η-000001Η. Αυτή η διαδικασία εναλλάσσει τμήματα μνήμης, αυξάνοντας την απόδοση του συστήματος μνήμης. Το interleaving επιμηκύνει τη διάρκεια του χρόνου προσπέλασης που παρέχεται στη μνήμη, διότι η διεύθυνση δημιουργείται για να επιλέξει τη μνήμη πριν την προσπελάσει ο μικροεπεξεργαστής. Αυτό συμβαίνει διότι ο μικροεπεξεργαστής εφαρμόζει pipelining στις διευθύνσεις μνήμης, στέλνοντας έξω την επόμενη διεύθυνση πριν αναγνωστούν τα δεδομένα από την τελευταία διεύθυνση.

113 Στο Σχήμα δείχνεται το διάγραμμα χρονισμού της διεύθυνσης όπως αυτή εμφανίζεται στις ακίδες διεύθυνσης του μικροεπεξεργαστή. Αυτό το διάγραμμα χρονισμού δείχνει πως η επόμενη διεύθυνση εξάγεται πριν προσπελαθούν τα υφιστάμενα δεδομένα. Επίσης, δείχνει πως αυξάνεται ο χρόνος προσπέλασης χρησιμοποιώντας διευθύνσεις μνήμης interleaved για κάθε τμήμα μνήμης συγκρινόμενος με τη non-interleaved προσπέλαση, η οποία απαιτεί μια κατάσταση αναμονής.

114 Το Σύστημα Εισόδου/Εξόδου: Το σύστημα εισόδου/εξόδου του 80386 είναι το ίδιο όπως αυτό που συναντάται σε οποιοδήποτε μικροϋπολογιστικό σύστημα της οικογένειας Intel 8086. Υπάρχουν 64Κ διαφορετικά bytes I/O χώρου διαθέσιμα, εάν απομονωμένο Ι/Ο υλοποιείται. Με το απομονωμένο Ι/Ο, οι εντολές ΙΝ και OUT χρησιμοποιούνται για να μεταφέρουν δεδομένα Ι/Ο μεταξύ του μικροεπεξεργαστή και των διατάξεων Ι/Ο. Η διεύθυνση της θύρας Ι/Ο εμφανίζεται στις συνδέσεις Α15-Α2 της αρτηρίας διευθύνσεων, με τα ΒΕ3-ΒΕ0 να χρησιμοποιούνται για την επιλογή ενός byte, λέξης, ή διπλής λέξης δεδομένων Ι/Ο. Εάν υλοποιείται Ι/Ο με χαρτογράφηση μνήμης, τότε ο αριθμός των θέσεων Ι/Ο μπορεί να είναι ένας αριθμός μέχρι 4G bytes. Με Ι/Ο χαρτογράφηση μνήμης, κάθε εντολή η οποία μεταφέρει δεδομένα μεταξύ του μικροεπεξεργαστή και του συστήματος μνήμης μπορεί να χρησιμοποιηθεί για μεταφορές Ι/Ο, διότι η διάταξη Ι/Ο χρησιμοποιείται ως διάταξη μνήμης. Όλα σχεδόν τα συστήματα του 80386 χρησιμοποιούν απομονωμένο Ι/Ο, ένεκα του σχήματος προστασίας Ι/Ο που παρέχεται από τον 80386 σε προστατευμένο τρόπο λειτουργίας. Το επόμενο χήμα δείχνει τη χαρτογράφηση Ι/Ο για τον μικροεπεξεργαστή 80386. Αντίθετα προς τη χαρτογράφηση μνήμης των προγενέστερων μικροεπεξεργαστών της Intel, οι οποίοι ήταν 16-bits, ο 80386 χρησιμοποιεί ένα ολοκληρωμένο σύστημα Ι/Ο εύρους 32-bit διαιρεμένο σε τέσσερις συστοιχίες. Αυτό είναι όμοιο με το σύστημα μνήμης, το οποίο επίσης διαιρείται σε τέσσερις συστοιχίες. Οι περισσότερες μεταφορές Ι/Ο έχουν εύρος 8-bit διότι συχνά χρησιμοποιούμε τον κώδικα ASCII (κώδικας των 7-bit) για μεταφορά αλφαριθμητικών δεδομένων μεταξύ του μικροεπεξεργαστή και των εκτυπωτών και πληκτρολογίων. Αυτό μπορεί να αλλάξει εάν ο Unicode, ένας αλφαριθμητικός κώδικας των 16-bit, γίνει κοινός και αντικαταστήσει τον κώδικα ASCII. Πρόσφατα, οι διατάξεις Ι/Ο οι οποίες είναι των 16- και ακόμη των 32-bits έχουν εμφανιστεί για συστήματα όπως μνήμη δίσκου και διασυνδέσεις οθόνης. Οι ευρύτερες αυτές αρτηρίες αυξάνουν το ρυθμό μεταφοράς δεδομένων μεταξύ του μικροεπεξεργαστή και της διάταξης Ι/Ο όταν συγκρίνονται με τις μεταφορές των 8-bit.Οι θέσεις Ι/Ο αριθμούνται από 0000Η μέχρι FFFFH. Ένα μέρος της χαρτογράφησης Ι/Ο είναι σχεδιασμένη για τον μαθηματικό συνεπεξεργαστή 80387. Αν και οι αριθμοί των θυρών για το συνεπεξεργαστή είναι αρκετά υψηλότερα από την κανονική χαρτογράφηση Ι/Ο, είναι σημαντικό να λαμβάνονται υπόψη όταν αποκωδικοποιείται ο χώρος Ι/Ο (επικαλύψεις). Ο συνεπεξεργαστής χρησιμοποιεί τις θέσεις Ι/Ο 800000F8H-800000FFH για επικοινωνίες μεταξύ των 80387 και 80386. -

115 Η χαρτογράφηση απομονωμένου Ι/Ο για τον μικροεπεξεργαστή 80386. Εδώ τέσσερις συστοιχίες των 8-bits η καθεμία χρησιμοποιούνται για να διευθυνσιοδοτήσουν 64Κ διαφορετικών θέσεων Ι/Ο. Το Ι/Ο αριθμείται από τη θέση 0000Η μέχρι την FFFFH

116 Ο χρονισμός είναι σημαντικός στην κατανόηση του πως συνδέεται η μνήμη και το Ι/Ο στο μικροεπεξεργαστή 80386. Το Σχήμα δείχνει το διάγραμμα χρονισμού ενός κύκλου ανάγνωσης μνήμης χωρίς pipelining. Παρατηρήστε ότι ο χρονισμός έχει αναφορά στο σήμα εισόδου CLK2 και ότι ένας κύκλος αρτηρίας αποτελείται από τέσσερις περιόδους ρολογιού. Όπως φαίνεται από τον πίνακα που συνοδεύει το Σχήμα, η αναφορά σε MHz σχετίζεται με τη περίοδο της κατάστασης, η οποία είναι διπλάσια αυτής του CLK2. Κάθε κύκλος αρτηρίας περιλαμβάνει δύο καταστάσεις ρολογιού με κάθε κατάσταση (Τ1 και Τ2) να περιλαμβάνει δύο περιόδους ρολογιού. Ο χρονισμός ανάγνωσης χωρίς pipelining για τον μικροεπεξεργαστή 80386

117 Ο χρονισμός ανάγνωσης με pipelining για τον μικροεπεξεργαστή 80386

118 Χρονισμός χωρίς pipelining με καμία και μία κατάσταση αναμονής Η είσοδος READY καθορίζει αν πρόκειται να εισαχθούν ή όχι καταστάσεις αναμονής μέσα στο χρονισμό. Η είσοδος READY στον 80386 είναι μια δυναμική είσοδος η οποία πρέπει να ενεργοποιείται κατά τη διάρκεια κάθε κύκλου αρτηρίας. Το Σχήμα δείχνει λίγους κύκλους αρτηρίας με ένα κανονικό κύκλο (0 αναμονές) και έναν ο οποίος περιέχει μία μόνο κατάσταση αναμονής. Παρατηρήστε πως η είσοδος READY ελέγχεται για να προκαλέσει 0 ή 1 αναμονές. Το σήμα READY δειγματοληπτείται στο τέλος ενός κύκλου αρτηρίας για να καθοριστεί εάν ο τρέχων κύκλος ρολογιού είναι Τ2 ή TW. Εάν READY = 0 τη στιγμή αυτή, αυτό είναι το τέλος του κύκλου αρτηρίας, δηλαδή Τ2. Εάν το READY =1 στο τέλος ενός κύκλου ρολογιού, ο κύκλος είναι ένα TW και ο μικροεπεξεργαστής συνεχίζει να ελέγχει το READY, αναζητώντας για ένα λογικό 0 στο τέλος του κύκλου αρτηρίας. Σ’ ένα σύστημα χωρίς pipelining, όταν το ADS ( σήμα address data strobe που ενεργοποιείται όταν ο 80386 έχει εκπέμψει μια σωστή διεύθυνση μνήμης ή Ι/Ο) γίνεται λογικό 0 (αληθές), μια κατάσταση αναμονής εισάγεται εάν READY = 1. Αφού το ADS επιστρέψει στο λογικό 1, οι θετικές παρυφές του ρολογιού μετρώνται για να δημιουργηθεί το σήμα READY. Το σήμα READY γίνεται λογικό 0 μετά το πρώτο ρολόι της κατάστασης Τ2 για να μην εισαχθούν καταστάσεις αναμονής. Εάν εισαχθεί μία κατάσταση αναμονής, η γραμμή READY πρέπει να διατηρηθεί σε λογικό 1 μέχρι να παρέλθουν τουλάχιστον δύο ρολόγια. Εάν επιπρόσθετες καταστάσεις αναμονής είναι επιθυμητές, τότε επιπρόσθετος χρόνος πρέπει να παρέλθει πριν καθαριστεί το READY. Αυτό ουσιαστικά επιτρέπει οποιοδήποτε αριθμό καταστάσεων αναμονής να εισαχθούν μέσα στο χρονισμό.


Κατέβασμα ppt "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολογών Μηχανικών και Τεχνολογίας Υπολογιστών Προηγμένοι Μικροεπεξεργαστές Καθηγητής Σταύρος Α. Κουμπιάς."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google