home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / arch / 11577 < prev    next >
Encoding:
Internet Message Format  |  1992-12-11  |  4.8 KB

  1. Xref: sparky comp.arch:11577 comp.sys.mac.hardware:23862 comp.sys.ibm.pc.hardware:32879 comp.sys.intel:2661
  2. Newsgroups: comp.arch,comp.sys.mac.hardware,comp.sys.ibm.pc.hardware,comp.sys.intel
  3. Path: sparky!dsndata!backbone!backbone!wayne
  4. From: wayne@backbone.uucp (Wayne Schlitt)
  5. Subject: Re: Any new instructions in a i486?
  6. In-Reply-To: schwenk@oin.cis.udel.edu's message of Fri, 11 Dec 1992 20: 13:06 GMT
  7. Message-ID: <WAYNE.92Dec11164422@backbone.uucp>
  8. Followup-To: comp.sys.intel
  9. Sender: wayne@backbone (Wayne Schlitt)
  10. Organization: The Backbone Cabal
  11. References: <1992Dec11.201306.18470@udel.edu>
  12. Date: Fri, 11 Dec 1992 22:44:22 GMT
  13.  
  14.  
  15. There have been a fair amount of discussion in comp.sys.intel about
  16. what new instructions the i486 has (and if the Cyrix 486SLC/486DLC
  17. implement them.)
  18.  
  19. So far, the only reliable source about what the Cyrix 486's implements
  20. comes from Michael Slater's Microprocessor Reports magazine.  He says
  21. that all of the new 486 instructions are implemented.  He does not
  22. explicitly say that the new 486 flags and control register changes
  23. were implemented.  (these changes can only be seen in supervisor mode)
  24.  
  25. NeXTStep is said to not run on the Cyrix 486 chips because "they are
  26. not real 486's".  No one has come up with a reliable reason _why_ NeXT
  27. doesn't think they are "real 486's" or why NeXTStep won't run on them.
  28.  
  29.  
  30. Anyway, quoting from my 1990 i486(tm) Microprocessor Programmer's
  31. Reference Manual from Intel, chapter 21.3:
  32.  
  33. ---  start of quote  ---
  34.  
  35. 21.3 DIFFERENCES FROM THE 386(tm) CPU
  36.  
  37. Very few differences exist between the programming models of the 386
  38. DX or SX and i486 processors.  The i486 processor defines new bits in
  39. the EFLAGS, CR0, and CR3 registers, and in entries in the first- and
  40. second-level page tables.  On the 386 processors, these bits were
  41. reserved, so the new architectural features should not be a
  42. compatibility issue.
  43.  
  44.  
  45. 21.3.1 New Flag
  46.  
  47. The AC flag (bit position 18), in conjunction with the AM bit in the
  48. CR0 register, controls alignment checking.
  49.  
  50.  
  51. 21.3.2 New Exception
  52.  
  53. The alignment-check exception (exception vector 17) reports unaligned
  54. memory references when alignment checking is being performed.
  55.  
  56.  
  57. 21.3.3 New Instructions
  58.  
  59. There are three new application instructions:
  60.  
  61. *  The BSWAP instruction
  62.  
  63. *  The XADD instruction
  64.  
  65. *  The CMPXCHG instruction
  66.  
  67. There are three new system instructions, used for managing the cache
  68. and TLB: 
  69.  
  70. *  The INVD instruction
  71.  
  72. *  The WBINVD instruction
  73.  
  74. *  The INVLDPG instruction
  75.  
  76.  
  77. The form of the MOV instruction used to access the test registers has
  78. changed.  New test registers have been defined for the cache, and the
  79. model of the TLB accessed through the test registers has changed.
  80.  
  81.  
  82. 21.3.4 New Control Register Bits
  83.  
  84. Five new bits have been defined in the CR0 register:
  85.  
  86. * the NE bit
  87.  
  88. * the WP bit
  89.  
  90. * the AM bit
  91.  
  92. * the NW bit
  93.  
  94. * the CD bit
  95.  
  96.  
  97. Two new bits have been defined in the CR3 register:
  98.  
  99. * the PCD bit
  100.  
  101. * the PWT bit
  102.  
  103.  
  104. 21.3.4 New Page-Table Entry Bits
  105.  
  106. Two bits have been defined in page table entries for controlling
  107. caching of pages:
  108.  
  109. * the PCD bit
  110.  
  111. * the PWT bit
  112.  
  113.  
  114. 21.3.6 Changes in Segment Descriptor Loads
  115.  
  116. On the 386 processor, loading a segment descriptor would always cause
  117. a locked read and write to set the Accessed bit of the descriptor.  On
  118. the i486 processor, the locked read and write occur only if the bit is
  119. not already set.
  120.  
  121.  
  122. ---  end of quote  ---  (all typos are mine)
  123.  
  124. That's the entire section on the differences.  You have to go look at
  125. other parts of the manual to find out what the details are, but
  126. basically they come down to this:
  127.  
  128.  
  129. The BSWAP instruction is useful for change the byte orders to/from little
  130. endian <==> big endian.  
  131.  
  132.  
  133. The XADD and CMPXCHG instructions are useful for implementing
  134. semaphores in multi-processor systems.  Not something a normal
  135. application would have much use for.
  136.  
  137.  
  138. The supervisor instructions INVD, WBINVD invalidate the cache and the
  139. latter one also makes sure that the write-back buffers get flushed.
  140. There is a not saying that these instructions are
  141. implementation-dependent; its function may be implemented differently
  142. on future Intel processors.
  143.  
  144. The INVLPG instruction invalidates a TLB entry.  it is also noted as
  145. an implementation-dependent instruction that may change.
  146.  
  147.  
  148. The AM bit in CR0 and the AC flag are used to implement alignment
  149. checking.  If these bits are set, then various alignment restrictions
  150. are enforced.  (2 byte items must be on a even byte boundary, 4 byte
  151. items must be on a 4 byte boundary, etc)
  152.  
  153.  
  154. the NE bit enables the numerical error detection for floating-point
  155.  
  156. the WP bit prevents supervisor programs from overwriting user level data
  157.  
  158. the NW bit says that the cache is not write-through
  159.  
  160. the CD bit disables the cache
  161.  
  162. the PCD bit is the Page-Level Cache Disable
  163.  
  164. the PWT bit is the Page-Level Writes Transparent
  165.  
  166.  
  167. all and all, there are _very_ few real differences between the 386 and
  168. the 486.
  169.  
  170. -wayne
  171.