home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / set6x86.zip / Doc-6x86.txt < prev    next >
Text File  |  1997-12-14  |  7KB  |  171 lines

  1.                         Cyrix Processor Support
  2.                         -----------------------
  3.         By Mike Jagdis, updated by Andrew Balsa.
  4.  
  5. Processor Recognition
  6. ---------------------
  7.  
  8.   Cyrix processors prior to the M2 power up in a default mode which is
  9. designed to avoid compatibility problems with software that makes
  10. assumptions about processor capabilities based solely on the apparent family
  11. of processor. Unless special handling is provided Cyrix chips will be
  12. identified as some unknown model of 486.
  13.  
  14.   The included Cyrix patch compiles in code that enables the CPUID
  15. instruction on Cyrix 6x86 processors.
  16.  
  17.   The M2 and later processors have CPUID enabled by default however special
  18. handling is still required to read the specific processor type since the
  19. CPUID information gives family 6, model 0 - i.e. an A step PPro.
  20.  
  21.   The patch allows all current Cyrix 6x86 family processors to be recognised
  22. and listed correctly in /proc/cpuinfo. This includes the classic 6x86, the
  23. 6x86L and the 6x86MX.
  24.  
  25.  
  26. Suspend on Halt Power Saving
  27. ----------------------------
  28.  
  29.   The suspend on halt power saving feature allows the processor to enter a low
  30. power mode when the "hlt" instruction is executed. This results in
  31. dramatically reduced operating temperatures if you do not spend long periods
  32. of time running processor intensive tasks. Cyrix processors allow this
  33. feature to be enabled and disabled through their configuration registers.
  34. The default state on reset is disabled and most BIOSes leave it disabled.
  35.  
  36.   However there appear to be a few rare cases in which the combination of
  37. suspend on halt and some bus master DMA Ethernet cards can cause the system
  38. to lock up. In these cases setting SUSP_HALT with a specific set6x86 line in
  39. your rc.cyrix file should be avoided.
  40.  
  41.  
  42. 6x86 Performance Features
  43. -------------------------
  44.  
  45.   The 6x86 has several Cyrix specific performance features. Normally a 6x86
  46. aware BIOS will set these to reasonable, if not fully optimal, settings.
  47.  
  48.   Benchmarking has shown that this fine-tuning is not needed for normal Linux
  49. operation, bringing little or no performance improvements.
  50.  
  51.  
  52. 6x86 Branch Prediction
  53. ----------------------
  54.  
  55.   The 6x86 uses speculative execution coupled with several levels of branch
  56. prediction to maximise processing speed. While the default power up state is
  57. reasonable the branch prediction logic is configurable and there may be some
  58. benefit in fine tuning it. However benchmarking has shown that even through
  59. extensive tweaking performance gains are marginal (< 0.5 %).
  60.  
  61.   Unfortunately Cyrix offers no documentation on how to configure branch
  62. prediction and IBM has only partial documentation available. Further detail
  63. and speculation is available from the 6x86opt package by Mikael Johansson
  64. <Mikael.Johansson@helsinki.fi>.
  65.  
  66.   The initial power up state of the 6x86 configures the branch prediction
  67. logic to handle short branches.
  68.  
  69.  
  70. 6x86 Variable Sized Paging Mechanism
  71. ------------------------------------
  72.  
  73.   The variable sized paging mechanism (VSPM) is a feature of the Cyrix 6x86
  74. (Classic and L) processors that allows large regions of memory to be mapped
  75. using a single MMU entry rather than many individual page sized entries.
  76. This significantly reduces the overhead in accessing such regions. It is
  77. also ideally suited to use for the linear mapping of physical memory to
  78. kernel memory used by the Linux kernel, which has a fixed mapping in memory
  79. after boot time.
  80.   
  81.   Again, extensive benchmarking has shown that turning on this feature
  82. brings no measurable performance improvement in normal use, since the
  83. 6x86(L) also has sophisticated caching for the standard fixed-size 4Kb
  84. paging mechanism.
  85.  
  86.   Perhaps for this reason and also because OS designers didn't seem
  87. interested by this specific feature, Cyrix has dropped VSPM on its new
  88. 6x86MX processors.
  89.  
  90.   The IBM/Cyrix 6x86 and 6x86L Data Books offer only a brief paragraph of
  91. explanation about VSPM. Unfortunately the observed behaviour of VSPM
  92. suggests that even this little information is not entirely correct. Worse
  93. still, no one at Cyrix is able to answer questions concerning VSPM. Given
  94. that every revision of 6x86 has *different* VSPM bugs this is not entirely
  95. surprising!
  96.  
  97.   Since VSPM is not available on 6x86MX processors and Cyrix has dropped all
  98. support for this feature, VSPM can be considered as a nice experimental
  99. feature, but not as an option for "production" kernels.
  100.  
  101.   WARNING: There appears to be no way to disable a VSPM entry once it has
  102. been created short of a hard reset (which may mean a power cycle). Failure
  103. to clear the VSPM entries means that programs that use virtual memory
  104. layouts different from Linux will crash unexpectedly after Linux has been
  105. running. This includes Windows NT/95, programs that use DOS extenders etc.
  106.  
  107.   By experiment:
  108.  
  109.   * VSPM pages must be power of two sizes. A single 24MB page fails.
  110.     This is not entirely surprising but the documentation could give
  111.     the impression that VSPM supports arbitrary sizes.
  112.  
  113.   * Documentation suggests there are 8 VSPM slots (3 bit index) but
  114.     tests show the upper four slots mirror the lower four.
  115.  
  116.   * VSPM entries appear to override traditional page table entries
  117.     so we must not overlap the start of the vmalloc region.
  118.  
  119.   The following only apply to 6x86 1 rev 6 or lower, 1 rev 7 and up seem not
  120. to have these restrictions.
  121.  
  122.   * With a 16MB page followed by an 8MB page I always get a write
  123.     fault on the last 4k of the 8MB page. With 8MB plus 4MB I can't
  124.     even boot.
  125.       If we have such a memory size we map the first power of two
  126.     with a VSPM entry and use traditional paging for the rest.
  127.  
  128.   * Do not try and create a mapping with dirty and accessed flags
  129.     clear - a step 1 rev 5 chip will crash.
  130.  
  131.   * The valid bit in a VSPM entry is non-functional. There is no way
  132.     to invalidate a VSPM entry once it has been written 
  133.  
  134.   * Attempting to replace a VSPM entry with one that maps a zero
  135.     sized region from 0 to 0 crashes the CPU.
  136.  
  137.  
  138. What more could be done
  139. -----------------------
  140.  
  141.   The 6x86 allows Address Regions to be set up and en/disabling certain
  142. features for these regions. We could analyse the setup done (or not done) by
  143. the BIOS and optimize it.
  144.  
  145.   * Setting up regions fo the main memory: RCE, WWO, WL(?), WG
  146.  
  147.   * Setting up VGA text (0x000a0000) and graphics memory (PCI:
  148.     e.g. 0xe0000000) to RCD, WG
  149.  
  150.   * Setting up BIOS regions to RCD or RCE, WT
  151.  
  152.   * Not touching SMM space (ARR3)
  153.  
  154.   * Disabling WG for Memory Mapped IO
  155.  
  156.   (RCE/D = Region cache enable/disable, WWO = Weak Write Ordering, WL = Weak
  157. Locking, WG = Write Gathering, WT = Write Through.)
  158.  
  159.  
  160. Where to get information
  161. ------------------------
  162.  
  163.   There is a databook in PDF format (6X-DBOOK.PDF), which can be down-
  164. loaded from Cyrix' WWW server, which contains a description of the
  165. Configuration Registers CCR0 - CCR5, the Device Identification Registers
  166. DIR0 DIR1 and the Address Region ARRx and Region Control RCRx registers and
  167. an incomplete description of the VSPM mechanism. More about CPU detection,
  168. VSPM and more undocumented features can be found on the Linux 6x86
  169. mini-HOWTO site (http://www.tux.org/~balsa/linux/cyrix) and by following the
  170. links found in the docs.
  171.