Memory Interleave Enabler
for VIA Chipsets
Questions and Answers
Copyright (C) 2001, George E. Breese. All Rights Reserved.
Version 0.12 4/2/01
Important notes:
This product CAN DAMAGE A COMPUTER. Use it carefully and at your own
risk.
If you have installed a previous version of this driver, uninstall it
before installing this version.
License: This software is licensed, not sold. The author of this product has
granted you a license to use this product, subject to the following conditions.
By possessing, using, or attempting to use this product, you assume all
liability for its use. You agree never to take legal action, civil or criminal,
against its author for any reason. You may redistribute this product in its
original form only. You may not charge money for distribution of the product,
unless all such charges are remitted to the author immediately upon payment. The
author retains ownership of all intellectual properties embodied in this
product.
What is it?
This is a driver for Windows 9X, NT, and 200X. It will increase the speed of
certain computers.
When installed on a computer whose motherboard contains certain VIA chipsets,
this driver will reprogram the VIA chipset in order to maximize the speed
of the computer's RAM.
How does it work?
This driver takes control of the main VIA-branded chip on the computers'
motherboard, which is the chip responsible for connecting the CPU to the RAM and
ROM and PCI and AGP and so forth. This driver adjusts the
way that the VIA chip communicates with the computer's RAM.
Do I need it?
If your computer has one of the following VIA chips on its motherboard, you might
need this driver. In all other cases, you do not need this driver.
- MVP3 or MVP3G, labeled "VT82C598"
- MVP4, labeled "VT82C501"
- Apollo Pro, Pro Plus, Pro133, Pro133A; labeled "VT82C691" or
"VT82C693" or "VT82C693A" or "VT82C694X"
- KX133, labeled "VT8371"
- KT133, labeled "VT8363"
If you own a computer whose motherboard contains one of the chipsets, then you might need it.
To confirm that your computer has the correct chipset, try any of the following.
- Open the computer and examine the motherboard. A large, flat, square chip
near the CPU will have the VIA logo and the part number. This chip may be under a heat sink and may be difficult or
impossible to read, in which case you will have to try a different method.
- Download Sisoft Sandra.
Examine its Mainboard Information. The 2001 edition of Sandra should identify
the chipset clearly.
- Use a PCI identification utility to obtain a list of the PCI devices in
the computer. The correct chip has vendor number 0x1106 and ID number 0597,
0598, 0691, 0391, or 0305.
- Refer to your motherboard manual.
Your computer might already have interleave enabled, in which case you will
not need this driver. You can use Sisoft Sandra
2001 to check the computer's current use of memory interleaving. Use the
Mainboard Information screen. Scroll down to "Logical/Chipset Memory
Banks". Look at the "Bank Interleave" setting. If the setting is
"2-way" or "4-way", then you do not need this
driver.
Why do I need it?
ViaTech (www.viatech.com, or www.via.com.tw)
has included a "memory interleave" feature in their chipsets since
1997. Many motherboard makers chose not to enable it, however. This feature can
drastically improve the speed of memory access, but
only if it is switched on.
I only have one memory module. Can I use interleaving?
Generally, yes. In this kind of interleaving, the chipset can remember the
location of up to four recently-used "pages" of memory on the module and can return
to them instantly. Depending on the chipset, it can also remember the last four
pages per module, for a total of sixteen pages. When the CPU needs to access
these pages, the VIA chipset can access them quickly without having to calculate
their location.
The amount of interleaving depends on the size and type of the memory chips
on the computer's RAM modules. SDRAM is required. If the chips on the modules
store 16 megabits each, the VIA chipsets can achieve two-way interleaving; if
the chips are 64 megabits, four-way interleaving is possible.
NOTE: This version of the driver does not detect 16-megabit RAM, and it
always enables 4-way interleave in any SDRAM.
I have Fast Page or EDO RAM. Can I use this?
No. This particular VIA feature is limited to SDRAM.
How do I install it?
You should have received this in a .ZIP compressed file. Extract the entire
.ZIP file to a suitable location.
If your computer is running Windows 95, 98, 98 Second Edition, or ME, then
run SETUP_9X.BAT .
If your computer is running Windows NT 4.0 or 2000, then run SETUP_NT.BAT.
After running the appropriate .BAT file, restart the computer.
How do I know that it is working?
One way to determine its effect is by performing the Memory Benchmark in
Sisoft Sandra. The resulting numbers should be significantly higher than those
without the driver.
I recorded the following results from Sisoft Sandra when testing the driver on
specific computers. Your results may vary. Higher numbers are better. All
numbers are in units of megabytes per second.
Motherboard |
Without driver |
With driver |
Apollo Pro133 (ChainTech 6ATA2) |
ALU 124, FP 128 |
ALU 223,
FP 239 |
KX133 (Biostar M7MKE) |
ALU 352, FP 376 |
ALU 413, FP 503 |
MVP3G (Tyan Trinity 400) |
ALU 110, FP 114 |
ALU 133, FP 139 |
What could go wrong with this driver?
Just about anything can go wrong. Your computer may display a "blue
screen of death". The computer may become unstable. This driver may not
help your computer at all.
This driver helped my computer. I am sharing it with you in the hope that it
will help your computer. You must decide whether this driver helped your
computer.
How do I uninstall it?
The driver can be uninstalled from the Add / Remove Programs section of
Control Panel. The driver will be removed immediately, but the memory interleave
will be enabled until the system is restarted.
What else can I do to improve memory performance?
NOTE: All changes to a computer carry a risk of damage. Try these
carefully and at your own risk.
In the computer's BIOS setup screens, you can usually find an "Advanced
Chipset Setup" screen. In this screen are several chipset-specific
settings.
If you do not understand the terminology in this section, please study RAM
and CAS issues on the Internet. If you are not comfortable making these
adjustments, do not try them.
CAS Latency adjustments should be made to match the RAM in the computer.
- CAS Latency is measured in CPU clock cycles, and a lower number is faster.
- Choices for CAS Latency are some or all of the following values:
"1", "2", "2.5", or "3".
- Every RAM module has a limit determined at the factory. The answer is
usually marked on the module's label. It is also stored inside a "SPD"
chip, a small 6mm chip mounted on a corner of the memory module.
- If a mix of CAS Latency "2" and "3" RAM is in the PC,
do not set the BIOS to "2".
- Most, but not all, PC133 CL3 RAM can be used as CL2 RAM if the CPU's Front
Side Bus (FSB) is 100MHz.
- The preferred choice is to have the BIOS use the SPD chip on the RAM
module to determine the answer. If this option exists, it should be
used.
Apollo Pro133, KX133, and KT133 chipsets can have their clock speed adjusted.
- On the Apollo Pro133, it may be set to 33MHz more or less than the CPU
speed. If your RAM happens to be rated for 33MHz more than your CPU's FSB,
you can set the RAM clock speed to "HCLK+33".
- Some BIOSes have a choice of using the SPD chip (a small 6mm chip mounted
on a corner of the memory module) to determine the answer. If this option
exists, it should be used.
- On the KX133 and KT133, the RAM speed can be set up to 133MHz if the RAM
can handle it.
Systems with AMI or Award BIOS usually have generic DRAM timing adjustments.
Typical choices are "7.5ns SDRAM", "10ns SDRAM",
"Normal", "Fast", and "Turbo". Setting this value
to "Fast" or "Turbo" can help. But, please note that some
memory will not work correctly at faster-than-normal speed.
How much memory does this driver use?
This driver uses almost no memory at all. Its only job is to reprogram the
chipset one time at startup.
Windows drivers are special programs. They have a special section that only
occupies memory while the driver is starting. Nearly all of this driver's
program code is located in this special section.
How did you make this driver?
I used notes from all over the Internet. I knew there was something
not-quite-right with my computer, and after scouring the Internet for an answer,
I stumbled on a few discussions of memory interleaving. People were discussing
how they could use H.Oda's WPCREDIT to tweak the Pro133 chipset for better operation.
H.Oda once produced a driver called
WPRESET that could reprogram the chipset at startup. WPRESET was designed to
accept a list of tweaks and would perform them every time the computer was
restarted. With all respect to H.Oda, I found bugs that prevented me from
configuring his
program at all. He has since discontinued support for WPRESET.
Eventually I grew tired of using WPCREDIT to manually tweak my computer. I
decided to create a driver to do it for me. I happen to be a computer programmer, and my job description includes
creating Windows drivers. I wrote this driver from scratch in my spare time. I
built a common set of C++ code to perform the reprogramming of the chipset. I
then created two sets of "wrapper" code, one to create a VxD and one
for a NT kernel driver.
For the record, this driver contains none of the code of WPCREDIT or WPRESET.
Before developing this driver, I used WPCREDIT to confirm which registers I wanted to change.
WPCREDIT would routinely crash my computer, and so did this driver at first. I have
found an ugly hack that solves the problem, and that is probably patentable.
(Microsoft and IBM have patented the use of obscure Intel CPU instructions, so
why can't I?)
This driver was made using a mix of assembly-language and C++ code. To
compile it, I use Microsoft Visual C++ 6.0 and Microsoft's free Windows 2000/ME
DDK. My Windows 9X VxD is based upon Microsoft's generic sample VxD, and my NT
kernel driver is actually an AppWizard-generated DLL file with some
carefully-chosen compiler and linker options.
Will you give us the source code?
I do not wish to share the source code at this time. It is not formatted
cleanly, and I may elect to use it in a commercial product later.
How do I contact you?
If you wish to offer feedback on this driver, send email to [email protected]
. Please note that I do not check this mailbox frequently, and I do not answer questions about
installation or use of this driver.
|