home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 July & August / Pcwk78a98.iso / Sharewar / Cpucool / Cpuidle / README.TXT < prev    next >
Text File  |  1998-04-06  |  16KB  |  395 lines

  1. README.TXT for CpuIdle Win95/98
  2.  
  3. CpuIdle is Copyright (C) 1997,98 Andreas Goetz.
  4.  
  5.                  goetz@stud.uni-hannover.de
  6.                  http://www.stud.uni-hannover.de/~goetz
  7.  
  8. FREEWARE
  9.  
  10.  
  11.  
  12. 1. What is it
  13. 2. Installation
  14. 3. Introduction
  15. 4. Optimization
  16. 5. Command Line and Features
  17. 6. Supported Hardware
  18. 7. Availability
  19. 8. Legal
  20. 9. Thanks
  21.  
  22.  
  23.  
  24. 1. What is it
  25.  
  26.  
  27. CpuIdle runs a HLT command in an idle priority thread under Win95/98. That
  28. allows modern microprocessors to save power and stay cool. Great for
  29. overclocking.
  30.  
  31. CpuIdle's is also the best and most complete CPU optimizer for Win95/98 that
  32. exists. Most CPUs include performance increasing options that are disabled by
  33. default. CpuIdle activates them all!
  34.  
  35.  
  36. 2. Installation
  37.  
  38.  
  39. Unzip cpuidle.zip into any directory. If you have an old version of the
  40. cpuidle.vxd in the Windows system directory delete it. Run CpuIdle. It is
  41. recommended to place CpuIdle in the Windows StartUp folder.
  42.  
  43.  
  44.  
  45. 3. Introduction
  46.  
  47.  
  48. Due to CMOS technology in which modern microprocessors are manufactured they
  49. do not only consist of transistors but also capacitors and resistors. The
  50. resistors create heat that must be conducted  away from the processor. This is
  51. easier with higher temperature gradients. It is for that reason that
  52. microprocessors are not only equipped with large heat spreaders but also
  53. actively cooled with fans or Peltier cooling elements. Higher temperatures
  54. worsen parasitic effects like elektromigration or oxide breakdown that might
  55. eventually lead to failure. A temperature increase of 10 degrees centigrade
  56. means halfed lifetime for chips. This not only holds for the microprocessor
  57. but also for the voltage regulation module (VRM) that supplies the IO- and
  58. core voltages. Especially out-dated or cheap mainboard designs employ passive
  59. VRMs that generate additional heat in the PC.
  60.  
  61. Under normal circumstances the CPU isn't always active but spends much time
  62. waiting for the keyboard, harddisk or CD-ROM. What would be more logical than
  63. to turn off the CPU for that period? That's exactly what the HLT machine
  64. instruction (Opcode F4) does. Whenever the CPU encounters a HLT instruction
  65. the clock is halted and the CPU enters suspend mode until an interrupt, NMI or
  66. reset happens. With the advent of power saving microprocessors like the Cyrix
  67. Cx486S the instruction acquired an additional property. When "Suspend on HLT"
  68. is enabled in the configuration register the processor not only stops on HLT
  69. but also enters the power saving suspend mode.
  70.  
  71. Modern operating systems like Linux or Windows NT execute the HLT instruction
  72. in an idle priority thread. This thread is always executed when- as the name
  73. implies- the CPU is otherwise idle. Therefore no additional execution time is
  74. needed, the CPU will not run slower. This does not hurt performance since the
  75. CPU controls the powering-down of specific internal parts by hardware-control,
  76. so there's no software intervention needed for explicitly re-enabling a
  77. powered-down part (cited from set6x86 readme by Koen Gadeyne).
  78.  
  79. Using this feature the power consumption at the Windows NT prompt can be-
  80. according to German c't magazine- 2.1A (K6-166) to 5.3A (K6 233) lower than at
  81. the DOS prompt. With Intel processors the power saving is lower but also
  82. measurable. For Cyrix the "Suspend on HLT" feature must first be enabled if
  83. the BIOS does not provide support. That can be done with tools  like cx86 from
  84. http://www.heise.de/ct/ftp or set6x86.
  85.  
  86. Unfortunately, Windows 95 does not support HLT. To remove this limitation
  87. CpuIdle provides an idle thread executing HLT for Windows 95. Since HLT is a
  88. privileged instruction it can only be executed on ring 0 whereas normal
  89. Windows programs run on ring 3. CpuIdle uses a virtual device driver (VxD)
  90. that can run on ring 0 to execute HLT.
  91.  
  92. On the test system (K6-200) the temperature as measured below the fan could be
  93. lowered by more than 10 degrees centigrade when Windows was idle.
  94.  
  95.  
  96.  
  97. 4. Optimization
  98.  
  99.  
  100. CpuIdle can and does by default enable the following features on your CPU:
  101.  
  102.                     | P5/P5MMX |  PII  | K5/K6/K6 3D | M1SC/M1/M2 | IDT C6
  103. --------------------+----------+-------+-------------+------------+---------
  104.  Write Allocatation |          |       |     Yes     |    Yes     |
  105. --------------------+----------+-------+-------------+------------+---------
  106.       Auto HLT      |   Yes    |  Yes  |             |            |  Yes
  107.   Low Power on AHD  | Yes(MMX) |       |             |            |
  108.    Suspend on HLT   |          |       |  Always On  |    Yes     |
  109. --------------------+----------+-------+-------------+------------+---------
  110.      No Locking     |          |  Yes  |             |    Yes     |
  111. --------------------+----------+-------+-------------+------------+---------
  112.    Weak Ordering    |          |       |             |            |  Yes
  113.  
  114. When a features exists on a CPU it will be enabled. If you experience problems
  115. with this please read the next section on how to disable the features you
  116. don't need.
  117.  
  118.  
  119.  
  120. 5. Command Line and Features
  121.  
  122.  
  123. * Popup menu *
  124.  
  125. Right-clicking on CpuIdle reveals a self-explenatory popup menu. Check or
  126. uncheck the "Enabled" menu item to turn idling on/ off. The same can be done
  127. by double-clicking on the taskbar icon.
  128. If started without any parameters CpuIdle will consume about 500KB of 32Bit
  129. memory (according to Wintop from MS Kernel Toys). The largest part of this
  130. memory is used for the nice interface, icons and bitmaps. If you think that
  131. this is too much and you don't need the interface see -loadonly below.
  132.  
  133.  
  134. * CPU Info sheet *
  135.  
  136. On the "CPU Info" sheet various CPU parameters like vendor (i.e. AMD), family
  137. (i.e. family 5 meaning P5), chip stepping and clock rate are displayed. If you
  138. the "CPUID not supported on this machine" message you either have a CPU that
  139. is too old to support the CPUID instruction (386, some 486) or it is disabled
  140. on your machine or you used the -noID switch. Cyrix CPUs allow to enable/
  141. disable the availability of CPUID, you can set this with tools like set6x86 or
  142. 6x86opt.
  143. For Cyrix CPUs further information is displayed, like Write Allocation or
  144. Suspend on HLT (if you see that this is disabled CpuIdle can't do much good
  145. for your Cyrix based system).
  146. Even if Windows has identified your CPU as "CyrixInstead" (also via CPUID),
  147. Windows obviously first enables CPUID, executes the instruction and then
  148. disables it again (at least in OSR2). Unfortunately enabling is a privileged
  149. instruction and only allowed for the system. Maybe later releases of CpuIdle
  150. will address this problem.
  151. If your CPU is not or not correctly identified by CpuIdle, or the displayed
  152. clock rate is incorrect, CpuIdle's main function, the cooling of your CPU, is
  153. NOT impaired.
  154.  
  155.  
  156. * Command line switches *
  157.  
  158. If you run CpuIdle manually select "Start/Execute" from the taskbar and
  159. specify the CpuIdle location and any switches desired. If you have created a
  160. link to cpuidle.exe right-click on the link, select "Properties" and enter the
  161. switches into "Destination".
  162.  
  163. -hide
  164. Loads CpuIdle without displaying the taskbar idle icon. The drawback is that
  165. if you want to exit or restart CpuIdle you'll first have to kill the program
  166. manually since there's no hotkey available to redisplay the icon. The CpuIdle
  167. display can also be hidden by selecting "Hide" in the CpuIdle menu.
  168.  
  169. -quit
  170. Tells CpuIdle to quit after optimizing your CPU. Use this if you do not want/
  171. need the power saving features.
  172.  
  173. -noExt
  174. NoExt is used to turn off the use of extened CPUID codes above 0x8000000 since
  175. not all CPUs support these codes. You souldn't normally need this since
  176. CpuIdle can detect this itself.
  177.  
  178. -alt
  179. Use alternative idle loop (inside VxD instead of main program). Use this if
  180. you experiece performance or compatibility problems (works like v2.4).
  181.  
  182. -loadonly
  183. Loadonly tells CpuIdle to load the Vxd, start the idle process and then quit
  184. but leave the VxD and the idle process in memory. CpuIdle will then need less
  185. than 64K of memory. 
  186. Unfortunately ome programs are able kill the idle process. Windows CPU monitor
  187. is one of these. When you start such a program CpuIdle will still display 
  188. "enabled" though it does no longer receive idle cycles. There is no way for
  189. CpuIdle to detect this. Since this could be dangerous for overclocked CPUs
  190. CpuIdle now has a built-in failsafe mode. With this mode CpuIdle will restart
  191. the idle process each 30 seconds if started with the -alt parameter (without
  192. this it's not necessary) so the longest time for which your CPU will run
  193. without support from CpuIdle is below 30 seconds.
  194. For this feature to work CpuIdle must be running. It does not work with
  195. -loadonly switch since CpuIdle is not in memory if this switch is set (only
  196. the VxD). So if you are using -loadonly don't start CPU monitor after CpuIdle!
  197.  
  198.  
  199. Switches for disabling processor specific features:
  200.  
  201. Beginning with version 2.5 CpuIdle enables all performance increasing CPU
  202. features by default. This removes the need for any DOS-based CPU optimizers.
  203. If you do not need or want these features to be enabled, you can use the
  204. follwing switches to override the default behaviour. Note: These switches are
  205. only for the experienced user. You shouldn't normally need them. 
  206. If you're not sure if you want or need this read the very good manual for
  207. 6x86opt from http://www.alternativecpu.com
  208.  
  209. - nolock: disables the use of "NO_LOCK" on Cyrix and PII processors
  210. - nowtalloc: disables the use of "Write Allocation" on Cyrix and AMD K5/K6
  211.   processors
  212. - nosuspend: disables the use of "Suspend on HLT" on Cyrix, IDT C6 and Intel
  213.   P5/P5MMX/PII processors
  214. - noopt: disables ALL optimization switches
  215.  
  216. Note: The following switches that were introduced with version 2.4 to enable
  217. some features specific to Cyrix CPUs are no longer supported by CpuIdle.
  218. CpuIdle now enables all performance increasing features by default (equivalent
  219. to the use of cxall in v2.4). 
  220.  
  221. No longer supported:
  222. - cxsusphlt: enable "Suspend on HLT"
  223. - cxnolock: enable "NO_LOCK" locked bus cycles are disabled, leading to higher
  224.   performance
  225. - cxwtalloc: enable "WT_ALLOC" - write allocation increases performance of the
  226.   CPU-memory interface
  227. - cxall: enable all of the above options
  228.  
  229.  
  230.  
  231. * Example *
  232.  
  233. Let's say you have a Cyrix 6x86MX, you want to get the most out of it, you
  234. don't want to use any DOS programs (like 6x86opt) but you still need locked
  235. bus cycles (whyever). Thanks to the person who send this "how to":
  236.  
  237. Make a short cut to the program, right mouse click on the short cut, go down
  238. and click on properties, select the shortcut tab, you can add the switches
  239. where it says target.á After you have verified that the short cut works, it is
  240. recommended to copy it to your StartUp folder.
  241.  
  242. The switches you could use in case are:
  243.  
  244.     \programs\cpuidle.exe -nolock
  245.  
  246.  
  247. * Failsafe feature *
  248.  
  249. Since v2.4 CpuIdle has a failsafe feature. As written below (read about -wait
  250. switch), some programs are able kill the idle process. Windows CPU monitor is
  251. one of these. When you start such a program CpuIdle will still display
  252. "enabled" though it does no longer receive idle cycles. There is no way for
  253. CpuIdle to detect this. Since this could be dangerous for overclocked CPUs
  254. CpuIdle now has a built-in failsafe mode. With this mode CpuIdle will restart
  255. the idle process each 30 seconds (this does not consume CPU time) so the
  256. longest time for which your CPU will run without support from CpuIdle is below
  257. 30 seconds.
  258. Note: For this feature to work CpuIdle must be running. It does not work with
  259. -loadonly switch since CpuIdle is not in memory if this switch is set (only
  260. the VxD).
  261.  
  262.  
  263.  
  264. 6. Supported Hardware
  265.  
  266.  
  267. AMD:
  268.  
  269. CpuIdle should work instantly with AMD Microprocessors K5, K6 and upcoming K6+
  270. (or K6 3D or whatever it is called). All AMD CPUs have built-in "Suspend on
  271. HLT" that is always enabled.
  272.  
  273. Intel:
  274.  
  275. Modern Intel P5, P5MMX, PPro and PII type processors are supported. With the
  276. P5 Intel introduced "Suspend on HLT" for it's CPUs. This features is hardly
  277. documented and by default disabled (shame on all BIOS programmers). To my
  278. knowledge CpuIdle is the only software that uses this feature. When this
  279. feature is enabled additional 1.8 Amperes can be saved. Without enabled
  280. AutoHalt (that's how it's called) Intel CPUs will still run cooler with
  281. CpuIdle but from the table below you can see that the power (and temperature)
  282. savings will be lower than for AMD or Cyrix processors (these values are taken
  283. from c't magazine without AutoHalt enabled).
  284. Note: AutoHalt means the same like "Suspend on HLT"
  285.  
  286. Cyrix:
  287.  
  288. Cyrix M1SC, M1 and M2 have a "Suspend on HLT" feature that has to be enabled
  289. by software or via BIOS setup. When run without command line switches that
  290. override the default settings CpuIdle enables "Suspend on HLT" by default.
  291. With the same procedure it should also work with 486 Cyrix, TI and IBM models.
  292.  
  293.  
  294. "Suspend on Halt" for Cyrix compatible CPUs:
  295.  
  296. The following processors should all be supported by CpuIdle if the "Suspend on
  297. Halt" (Bit 3 in Configuration Control Register 2 - CCR2) is enabled. CpuIdle
  298. enables this feature by default.
  299.  
  300. Cyrix    Cx486S/S2/D/D2/DX/DX2/DX4
  301. IBM    BL486DX/DX2 (Blue Lightning)
  302. TI    TI486DX2,TI486DX4
  303. Cyrix    Cx5x86 (M1SC), IBM 5x86
  304. Cyrix    Cx6x86 (M1), IBM 6x86
  305. Cyrix    Cx6x86MX (M2)
  306.  
  307.  
  308. Power Consumption DOS prompt vs. NT prompt according to c't magazine
  309. (http://www.heise.de/ct).
  310.  
  311. These values are must not be compared since some of the measurements took
  312. place on different computing environments (i.e. mainboard). Furthermore they
  313. must not be compared to CpuIdle since on NT the HLT is supported by the
  314. operating system whereas CpuIdle is just an add-on.
  315.  
  316. AMD
  317.  
  318.     K5-166    K6-166    K6-200    K6-233
  319. DOS    5.2A    3.8A    5.0A    7.2A
  320. NT    2.8A    1.7A    1.8A    1.9A
  321.  
  322. Pentium
  323.  
  324.     166    MMX-166    MMX-200    MMX-233    
  325. DOS    5.1A    3.94A    4.4A    5.2A
  326. NT    4.2A    3.25A    4.2A    4.9A
  327.  
  328.  
  329.  
  330. 7. Availability
  331.  
  332.  
  333. CpuIdle is available for download from
  334.  
  335.     http://www.stud.uni-hannover.de/~goetz
  336.  
  337. If you feel that this program is just what you've been waiting for and would
  338. like to encourage further development and express your gratitude you may want
  339. to send $20 or whatever amount you think appropriate to the address given
  340. below, though there is no obligation to do so. Please don't send cheques since
  341. cashing is extremely expensive in Germany. All donations will be happily
  342. accepted.
  343.  
  344.     Andreas Goetz
  345.     Suedring 11
  346.     31275 Lehrte
  347.     GERMANY
  348.  
  349. Due to the overwhelming number of questions and requests I received via email,
  350. users that require additional assistance are now strongly encouraged to
  351. register.
  352.  
  353. If you read the documentation carefully and still have questions you can reach
  354. the author at goetz@stud.uni-hannover.de If you are reporting bugs please make
  355. sure that you are using only the latest CpuIdle version. 
  356.  
  357.  
  358.  
  359. 8. Legal
  360.  
  361.  
  362. This software can be used freely for any purpose in non-commercial
  363. environments. For use in commercial environments contact the author. CpuIdle
  364. can be distributed freely, as long as it is not sold commercially without
  365. permission from Andreas Goetz. However, including this software on CD-ROMs
  366. containing other free software, permission has explicitly to be granted even
  367. if this software is not a primary selling argument for the CD.
  368.  
  369.  
  370.  
  371. 9. Thanks
  372.  
  373.  
  374. Special thanks to Virgil Smith for coding the VxD. Without him this program
  375. would never have been possible. I'd also like to thank Marton Balog for his
  376. enthusiasm in coding DosIdle. 
  377.  
  378. Special greetings to Muddle who proof-read this document and first aroused my
  379. love for the English language.
  380.  
  381.  
  382. More thanks to the following authors for their Freeware Delphi components:
  383.  
  384. Ahto Tanner:        TUrlLabel
  385. Pete Ness:        TTrayIcon
  386.  
  387.  
  388. DISCLAIMER
  389.  
  390. THIS SOFTWARE AND THE ACCOMPANYING FILES ARE DISTRIBUTED "AS IS" AND WITHOUT
  391. ANY WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO REPONSIBILITIES FOR POSSIBLE
  392. DAMAGES OR EVEN FUNCTIONALITY CAN BE TAKEN. THE USER MUST ASSUME THE ENTIRE
  393. RISK OF USING THIS PROGRAM. ALL TRADEMARKS ARE PROPERTY OF THEIR RESPECTIVE
  394. OWNERS.
  395.