Memory Interleave Enabler
for VIA Chipsets
Questions and Answers

Copyright (C) 2001, George E. Breese. All Rights Reserved.

Version 0.14 5/5/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.

Trademarks mentioned herein are the property of their owners.

What is it?

This is a driver for Windows 9X, ME, NT 4.0, 2000, and XP. 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 increase 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.

Chipsets for Super Socket 7 processors

Model Part # PCI ID
VP3 VT82C597 0597
MVP3 VT82C598 0598
MVP4 VT82C501 0501

Chipsets for Pentium II and III processors (the "Apollo" series)

Model Part # PCI ID
Pro VT82C691 0691
Pro133 VT82C693A 0691
Pro133A VT82C694X 0691
Pro Plus VT82C693 0693
ProSavage4 PM133 VT8605 0605
PLE133 VT8601 0601
Pro266 VT8633 3091

Chipsets for Athlon processors

Model Part # PCI ID
KX133 VT8371 0391
KT133 VT8363 0305
KT133A VT8363A 0305
S3 ProSavage KM133 8365 0305
KT266 VT8366 3099

 

To confirm that your computer has the correct chipset, try any of the following.

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?

Via Technologies Incorporated (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?

Yes. Large DIMM memory modules contain chips of 64 megabits in size. These chips contain memory that has been split into four banks. Rather than activating and using one bank at a time, the chipset can leave all the banks active. The chipset remembers the address it last accessed in each bank, and if it needs to access the same address it can do so immediately.

VIA supports up to four memory modules in most of its chipsets. The chipset can remember the last-used addresses in each bank in each module, for a total of sixteen pages of memory accessible immediately.

Smaller memory modules may have 16-megabit memory chips containing two banks per chip, or EDO memory chips. 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.

I am overclocking my CPU. Can I use this?

Generally, yes. But, you may need to reduce the amount of overclocking.

This driver switches on a previously-unused section of the chipset. This section of the chipset can be sensitive to overclocking.

The memory will be accessed faster. The memory may not be stable when overclocked and interleaved.

Both overclocking and interleave can cause the memory and chipset to use more electrical power. If the computer's power supply is inadequate, or if the power delivered to the chips is not smooth, then the computer will be unstable.

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
MVP3 (DFI P5BV3+) 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.

Recent Pentium III and Athlon chipsets (e.g. Pro133, KX133, and KT133) can have their RAM clock speed adjusted.

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 feedback@networking.tzo.com . Please note that I do not check this mailbox frequently, and I do not answer questions about installation or use of this driver.