I figured out how to enable 4-way memory interleave and now get 22%/23% improvement in bandwidth from default settings as measured by SiSandra. Shown below are the two changes I made in location 51 and 64 – you must do both to enable 4-way interleaving. WPCREDIT is as useful to overclockers as SOFT FSB. Don’t leave home without it.
SUMMARY: WPCREDIT is a very powerful tweaking tool – for the SOYO 6VCA, it resulted in a 10% improvement in memory bandwidth.
There is a new site called VIA Hardware which did an article on memory tweaking for the MSI 6309 using H. Oda’s WPCREDIT. I tried it but did not get any performance improvement – I am guessing I was tweaked out already.
However, I am playing with the SOYO 6VCA and used WPCREDIT with great success – I achieved a 10% improvement in memory bandwidth per SiSandra Benchmarks – not bad! So what follows is a detailed description on what I did; if you use this, please email your experience so we can pass along any tips to others. Also note that there is no documentation with WPCREDIT, so what follows is my experience with the program.
What Programs Do I Need?
Go to H. ODA into the DOWNLOAD section; download WPCREDIT and under WPCREDIT PCR Files, download VIA Apollo Pro series (Northbridges). Install, unzip etc. and then open WPCREDIT. (NOTE: There is another program called WPCRSET – this makes PERMANENT changes at bootup; I would not use this initially as it could cripple your system if you make a wrong entry).
WHen you first run WPCREDIT, Click on FILE, then PCR Open. The VIA133A file is called 11060691.pcr; click on it to load it into WPCREDIT.
The pic below is a shot of the opening WPCREDIT’s opening screen for the VIA133A. This is basically a table of values which tells the VIA chipset what to do. Clicking on a cell will show the contents of that cell and, on the right, a brief description of what’s in the cell. Some of it is pretty cryptic. Most of the cells contain no data.
Once you click on a cell, you can move around to each cell by using your arrow keys – I found this easier than mousing cell-to-cell. I have highlighted in yellow cell row 60 column 04. This is the cell which changes SDRAM Interleaving for Bank 0/1. Memory interleaving provides higher bandwidth between the CPU and main memory. Interleaving splits the memory system into independent banks, which can answer read or write requests independently, in parallel.*
The pic below shows this cell in detail. On the right you see the description of what the cell’s contents control. The BIN at the bottom of the screen corresponds to the contents displayed on the right hand pane.
Now this may sound screwy, but the numbers 0 through 7 in the right hand pane correspond to the BIN numbers reading from left to right. Number 7 on the right lines up to Number 0 in the BIN. As you click on a number in the BIN, an asterisk will light up next to the corresponding number in the right hand pane.
For “0/1 bank interleave”, the BIN numbers are 01010001. Shown in this pic is the interleave set to 2-way: “01=2 way” (I tried 4 way – does not work). The default setting on the SOYO is 00: “00=none”. Changing it is simple: Click on “edit”, enter the new number and then click on “set”. It will ask it you want to change, say “yes” and the change is made.
Either it will be OK or you may freeze up. If you freeze, no problem – reboot. The change is not permanent. If you use the companion program WPCRSET, the change will be made at boot-up. I prefer to use WPCREDIT as I can always get back to default settings.
You can save the changes you make to a file; click on File, then Register Save, give it a name, then save it. This way you can load different tweaks depending on what you’re doing. I also saved the default settings in a file called “default” (DUH!) so I can quickly compare the effect of any change.
In the table below, I show the before and after effects on the SOYO changing the interleave:
Memory performance improved by 8.7% to 11%, with 133 MHz improvement averaging almost 11%. This narrows the gap compared to BX (represented by the SOYO+IV) to about a 15-17% difference. Careful SDRAM selection might narrow the gap to single digits (See ASUS and Virtual Channel Memory).
I think the upshot of this is that substantial performance improvements for VIA chipsets are possible, and hopefully more experience by motherboard developers with VIA chipsets will yield significantly improved performance. However, whether VIA will be competitive with Intel’s upcoming i815 chipset is a big unknown.
Please email your experiences with this utility – I’m still learning. Please note that this is advanced tweaking; you break it, it’s on your watch.
*If you’re interested in learning more about Interleaving, try these links:
Based on user inputs, the easiest and most productive tweak is Memory Interleaving (row 60, column 04).
“Using the VIA Hardware.com tweaks below I got a 7% increase on my P3V4X. My bank interleave on Register 60-4 was already set to 10=4-way so I did not make any changes to it.
- Register 50 (1) I set CPU DRAM read while snoop to enable. This gave all the settings in register 50 to “enabled.”
- Register 51 (6) Set CPU DRAM write 0 ws to enable.
- Register 51 (2) Set CPU DRAM prefetch depth to 4-level.
- Register 51 (1) Set CPU DRAM post-write depth to 4-level.
- Register 51 (0) Set concurrent CPU/PCI-master to enable.”
“Just wanted to mention that I think WPcredit is a very nice program. I used it with my P3V4X, where 2-way interleaving seems to be default. I changed it to 4-way and my memory results in Sisoft Sandra went up a bit.
Cpu/memory bandwidth = 331mb/sec
Fpu/memory bandwidth = 382mb/sec
Cpu/memory bandwidth = 382mb/sec
Fpu/memory bandwidth = 458mb/sec
Using cas2 pc133 7ns ram.”
“What a great piece of software this is!! I was able to get just over a 10% gain in memory bandwidth using WPCREDIT! Here’s a look at my system:
- SOYO SY-6VBA133 (will be upgrading to the 133A very soon!)
- PIII 550E @ 753MHz (137MHz FSB)
- 128MB Generic PC-133 7ns
- 64MB Generic PC-133 7ns
- Maxtor 10.2 7200RPM
- 44x Generic CD-Rom
- Matrox G400Maxx Dualhead
- SB PCI128
- General Instruments Cable Modem
- LTWin modem
With just the bios tweaks, I was only able to get 170/180 for memory bandwidth. That’s pretty horrible. Using WPCREDIT, I set both banks of SDRAM to 2-way interleave. Memory bandwidth immediately went to 180/190. I decided to give 4-way interleaving a try, and to my surprise it not only worked, but my bandwidth went up 190/200. That’s nowhere near BX territory, but then again, this is NOT the 133A version (that’s next). I would recommend anyone with an Apollo Pro 133/133A to give this utility a try.”
“I used Sandra 2000 for my Shuttle AV61mobo; it has the older VIA 133 Pro chipset. At 105 MHz memory speed with my Celeron 533A at 840 MHz, my scores were 130 and 138. Well I used your tweaks and got an 11.55% increase but it was only in the 140’s. Then I went to the VIA hardware site and used the other recommended tweaks there. I ran Sandra again and it was up to 246 and 263 – 90% increase!!!!!!!!!!!!!!!!! This is a great tweak for those with the older VIA chipsets brings them up to par with the newest VIA chipsets.”
- ASUS P3V4X Bios revision 1004.01
- Celeron II 566 @900 MHz
- 128MB PC133 Mushkin High Performance w/Moshel Revision 1.5
- Windows 98
I got it to do 4 way interleaving stable!!!!!!
My system before: 284/331
My system after: 327/384
The Ram is one stick. For some reason the computer will not show those results after a fresh boot. It only shows those results when I change it in the current Windows enviroment. I made it permanent but when I reboot, I do not get those amazing results. But I did do some more tweaking and finally do get a consistant result each time I boot, so it looks like these results I am attaching are the most accurate. This screen shot is of the WPCRSET program showing exactly what I changed. BTW if the system crashes you can boot in safe mode and undo the changes, so it really isn’t permanent.”
“I played around with that H’Oda utility and found out that you can also Enable Sidebanding (A0:09) and adjust the AGP divider (60:08), and you can set the CAS timing to 1T!! (Isn’t that special).
I wasn’t able to squeeze any extra performance out of the VCM though. I did notice that the BIOS settings did not match what was in H’Oda’s utility. For example, I’ve used the 2-2-2-5 setting in the BIOS but it showed up completely different in the utility.”
Memory interleaving is a way to get your machine to access your memory banks simultaneously, rather than sequentially.
By enabling 2x or 4x interleaving, I got a 25% memory bandwidth improvement on my P3V4X using 1×128 MB Apacer DIMM.
This works on all Via-based machines as well as many other chipsets, though the Via chipset shows the most benefit.
Until now, Via boards have always lagged behind the BX boards in memory performance. This tweak goes a long way towards redressing the balance. BX owners should also check to see if their interleaving is maximized.
Some BIOSes enable interleaving by default, some don’t. To check whether your system has interleaving, or enable it, you will need to download a small app.
H-Oda, the person who has written a number of great utilities, including SoftFSB, has compiled a couple of neat apps which allow you to make changes to the PCI register (Note: This is not the Windows Registry) so you can make and test all sorts of memory tweaks.
First, go here.
Download WPCREDIT and under WPCREDIT PCR Files, download VIA Apollo Pro series (Northbridges), or the PCR appropriate for your chipset. Install, unzip etc. and then open WPCREDIT.
There is another program called WPCRSET – you will also need this to make PERMANENT changes at bootup. Get WPCRSET and just store it somewhere for the moment.
After you have unpacked the WPCREDIT files, just run the proggy. This is what it looks like:
If you are familiar with hex editors, this will not look strange to you. If you aren’t, this can look a little daunting. Don’t worry, though. Any changes made in WPCREDIT are NOT permanent. If you make a mistake, all settings will be returned to normal on the next boot.
Despite first appearances, WPCREDIT is remarkably easy to use.
As you can see from the picture, you will see the main window is a grid of numbers. These show you where the particular bits of code are; they are called offsets. To find an offset, you look at the first digit in the left column to find the first digit, and you look at the last digit in the top column to find the last digit.
So to find offset 51, we would first look for the “50” in the left column, and then the “01” in the top column. Where those two meet is offset 51.
If you wanted to edit offset 51, you would move your cursor to that location. It should say “D8”, click on it. You will see information show up at the bottom of the screen.
The box in the bottom left corner shows which offset is selected for editing and what the current value is. The information in the center bottom breaks down the current value by hex and bin number.
You don’t have to know what that means, all you need to know is that you have to change the bin number to change the values and make the machine do what you want.
The BIN number is a string of 1’s and 0’s, click on any of the digits in the BIN number. You will see a yellow star appear next to the options in the right hand window. Changing that BIN digit from 1 to 0 or from 0 to 1, will change the selected option on the right. It’s that simple.
Here’s an example:
- Select offset 51. The data or “HEX” is “D8”, and the BIN is “11011000”.
Let’s change the DRAM read request rate from “3T” to “2T”. Click on the first “0” in the BIN number. You will see the option selected by a yellow star in the right window.
Simply overtype the “0” with a “1” to change the DRAM request rate from 3T to 2T. You will see the Data or “HEX” value change from “D8” to “F8”. If you wanted to apply the change to the PCI register, you would click on set and confirm the data change when prompted, and that would be it. Don’t do this if your memory can’t handle CAS2, though, it could hang up your machine. But if you did, all you would have to do is reboot, and your original settings would be restored.
It’s a good idea to run the Sandra memory benchmark between each change you make. That way you’ll see if the tweak helped you or not. If your screen locks up or you get a BSOD, that tweak doesn’t work
Again, WPCREDIT makes no permanent changes. (WCPRSET does that.)
After you have played around and got the fastest memory tweaks you can, you can save the settings as an “rg” file, so you don’t have to redo your work. You can just these when you next run WPCREDIT, by selecting the “register load” option in the file menu.
However, not even an rg file changes anything permanently. It doesn’t take effect until you bring it up and apply it, and even then, the changes make only last until you restart your computer.
SETTINGS FOR VIA CHIPSETS:
Here are the most common changes – the ones that will enable 2x and 4x interleaving on the Via chipsets. They include the Offset, Data or “HEX” value and bin number. You can shortcut by entering the complete new bin numbers into all the offsets, but I recommend you make one change at a time and test that change. These settings work perfectly on my P3V4X, but that doesn’t mean they will work on yours!
Original Settings: (these may/will vary)
- 50 – FD – 11111101
- 51 – D8 – 11011000
- 64 – 95 – 10010101
- 65 – 95 – 10010101
- 66 – 11 – 00010001
- 67 – 95 – 10010101
- 68 – 03 – 00000011
- 50 – FF – 11111111 (enables CPU Dram Read while snoop)
- 51 – FF – 11111111 (changes prefetch and p/write depth to 4)
- 64 – 12 – 00010010 (bank 0/1 4x interleaving enabled)
- 65 – 12 – 00010010 (bank 2/3 4x interleaving enabled)
- 66 – 12 – 00010010 (bank 4/5 4x interleaving enabled)
- 67 – 12 – 00010010 (bank 6/7 4x interleaving enabled)
- 68 – 43 – 01000011 (set bank active page control to any bank)
NOTE: Some people report a better performance increase from using 2 memory sticks (DIMMS). Even when only using 1 DIMM, there is a significant performance increase. DIMMs are, after all 2 SIMMS, stuck back to back – so interleaving just operates between each side of the dimm (4 dimm slots = 8 memory banks).
If 4x interleaving doesn’t work, try 2x – it may depend on your system. You can also use WPCREDIT to check what is enabled in the BIOS. Just click on offsets 64,65,66,67 to see what level of interleaving, if any, is enabled by default in your BIOS.
WARNING: Don’t try and change any of the latency values, they are not determined by the PCI register and will probably result in a BSOD.
SIDEBANDING: You are not restricted to editing just the offsets mentioned here, feel free to scroll through the 100+ offsets (use the arrow keys for speed) and see if anything looks interesting. I discovered that offset A9 allows sidebanding to be turned on. Sandra correctly reported this, but 3DMark crashed when I made this change. Perhaps you can figure out a way of enabling this.
MAKING IT PERMANENT:
Now to make these cool performance tweaks load automatically on bootup.
You might think that having saved your settings in WPCREDIT as an rg file, it would simply be a matter of importing that rg file into WPCRSET to make the changes permanent. Alas – no! H.Oda must have left his logic chip at home the day he compiled WPCRSET.
In addition, it has a completely different interface and the original instructions are in Japanese.
Not to worry, it’s blindingly simple to use. You will need to install WPCRSET to a permanent directory (unlike WPCREDIT). WPCRSET will need to live on your computer, as long as you want these settings on bootup. For this reason, I gave it pride of place on C:, rather than burying it in sub-directories. Create a folder for it, call it what you like, copy and install the WPCRSET files into it.
Open WCPRSET and click on ADD.
Go to each offset that you’ve changed (50, 51, 64, 65, 66, 67). Highlight each offset in turn (i.e. 51), look to the lower left hand corner of WCPREDIT at the OFFSET and DATA (ex. 51 – FF).
Enter the OFFSET (51) from WCPREDIT into the REGISTER BOX in the WCPRSET Edit screen. Enter the DATA (FF) from WCPREDIT into the WCPRSET Edit DATA box. The other boxes stay empty.
Click on OK and then select “ADD” again. Keep doing that for every offset you have changed. When you have finished, from the main WCPRSET screen, select START. This is the command to load your new settings on bootup. Click on OK, and restart your computer when prompted.
In the event of errors, BSOD etc. you can turn of the tweak, by booting into safe mode, loading WPCRSET and and selecting “stop” – reboot and everything is back to normal.
If you are feeling brave and are the owner of a P3V4X, you can shortcut all of this and just enter the offsets and data provided, straight into WPCRSET. Just don’t blame me if you get a BSOD.
Some useful links that illustrate interleaving with graphics etc: