Installing more memory in your computer is a seemingly easy task, yet there can be so many issues to bear in mind that are often overlooked.
With RAM costing so little these days, there's a huge temptation to install more in your existing PC; but with so many types of RAM available, there's often some confusion about your options when it comes to upgrading. The simplest advice is to add more of the type you've already installed, since you'll rarely have the option of changing to another type or speed, as these factors are decided by your motherboard and associated chipset.
However, if you're not sure what type and speed of RAM your PC uses, you can either run a utility like SiSoftware's Sandra (see PC Notes May 2002 for more information) and use its Mainboard Information applet, or you can simply look in your motherboard's user manual -- both should inform you about the different sizes and types of RAM that are supported. If you didn't receive a manual with your PC, Sandra will also tell you what make and model of motherboard is inside your PC, saving you from having to physically open the computer and check yourself, and you can nearly always download the manual in PDF format from the manufacturer's web site.
Sandra can also gather plenty of other useful information about your existing RAM if it has an SPD (Serial Presence Detect) chip built-in, such as its CAS latency, RAS to CAS Delay, and RAS Precharge value, as also shown in the Sandra screenshot by the 2-2-2CL at the end of each line of the Logical/Chipset memory Bank data. I discussed all these parameters in SOS December 2002's PC Musician, and such information will help you to determine exactly what type of RAM you can add. However, it's worth remembering that although it might be possible to install faster RAM than you've already got, your PC will still only be able run at the speed of the lowest module if you mix different speeds together, and will probably crash if you try manually adjusting RAM timings to be faster in the BIOS.
The best recommendation for reliability is still to use well-known names like Crucial, Micron, Kingston and Samsung, and avoid generic RAM that sometimes provides borderline performance -- in most cases it's really not worth the possible aggravation for the slight saving involved. If you go for named RAM, the best approach is to use the search facilities of these manufacturers' web sites, and unless you really know your JEDEC specifications (which determine the 'PC' number of each memory type -- PC2100, for example) and your relevant memory speeds in nanoseconds, this is far easier than wading through endless lists of RAM types and sizes. You'll rarely run into problems mixing different brands of RAM so long as they're of similar types, and you're less likely to run into incompatibilities generally by sticking to well-known brands.
Sandra will also display the maximum amount of RAM you can install, although it sometimes gets this wrong as the figure is determined by several factors. The motherboard may provide the ceiling limit due to the number of memory slots available, in addition to what combinations of sizes they each support (64, 128, 256 and 512 MB for example), or, particularly in older machines, it may be limited by the type of motherboard chipset. I've even come across reports of a few motherboards that have RAM limits due to BIOS errors.
However, for a long time there's been confusion about the RAM limits supported by various versions of Windows. All the 32-bit versions of Windows, including the Windows 9x family, Windows NT, 2000 and XP, can address up to 4GB of real and virtual (swap or page file) memory, while other more specialised server versions go even higher, such as Windows 2000 Advanced Server and Windows Server 2003 Datacenter Edition, which support 8GB and a massive 64GB respectively.
Although Windows 95, 98 and ME can access a maximum of 2GB physical RAM, Microsoft state that these versions of Windows weren't designed to handle more than 1GB. However, after people ran into problems when installing more than 512MB, getting errors such as 'Insufficient memory to initialise Windows', many have come away with the impression that this is as high as these operating systems can go.
In turns out that these error messages are caused by the Vcache setting and are easily solved. What happens is that, by default, the maximum cache size gets calculated from the amount of RAM that Windows detects each time it starts up, and once you install more than 512MB, the maximum cache size is so large that Windows falls over its own bootlaces, so to speak. The solution, and one that most musicians using these versions of Windows will already have implemented, is to limit the maximum size of the Vcache setting by making sure that the system.ini file contains a suitable MaxFileCache line. If you don't want to edit this manually, one of the easiest ways to do this is to run the freeware Cacheman utility (www.outertech.com), enabling you to safely install additional RAM if it's supported by the rest of your system.
If you want to install more than 1GB of RAM for a Windows 2000 or XP system, you might get instability from Windows 9x installations on the same machine, so in this case the answer is to limit the amount of physical RAM that the Windows 98/ME partitions can access. Just type in a new line under the [386enh] section of their system.ini files that reads MaxPhysPage=40000, save the file and reboot your PC.
Whether or not you'll benefit from installing huge amounts of RAM is another matter, since this mainly depends on what software you're running and, quite often, how it's actually set up. Once your PC has more than about 128MB (the realistic minimum for most modern Windows versions), your PC certainly won't go any faster by adding more RAM, unless it's actually being used.
Many musicians are perfectly happy with 256MB of RAM, and this will benefit performance if you're running several memory-hungry applications, since they'll all be able to coexist without excessive swap or page-file activity. With 512MB or more, you may also be able to disable the Windows swap or page file altogether, which guarantees that there'll be no shuffling of data between RAM and hard drive at inopportune moments. However, the benefits of this tweak are disputed, particularly for Windows 2000 and XP, and a few applications insist on having some virtual memory, being unable to run without a swap file. I've disabled virtual memory on the Windows 98SE boots of my 512MB PC, but left it active on all my XP boots, with a modest but fixed 256MB page file situated on a data drive.
Anyone who's installed 512MB or more is likely to be using a sizeable chunk of it for sample storage. This also applies to anyone running Creative Labs cards that rely on system RAM for Soundfonts, such as the Soundblaster Live, which could use up to 32MB of system RAM, but the Audigy range upped this to 1GB. More recently, many software synths have also used sizeable amounts of system RAM, including the Spectrasonics series, a few of whose patches require up to 256MB of RAM.
Software samplers may take even more, since you're more likely to load in multiple instruments, and although Gigastudio streams its samples from your hard drive, it still needs to buffer the attack of every sample. In the case of instruments using multiple layered samples on every note, this can soon consume several hundreds of megabytes, and Halion, for example, provides a pre-load option to balance sample streaming against storing them in available system RAM, so you can adjust the settings to suit your system.
Out of interest, I loaded up a few of my typical songs running Gigastudio, Cubase SX and Wavelab, and found that the most they used was 75 percent of my 512MB of system RAM, with hardly any use of virtual memory. Cacheman provides a handy real-time readout of both available physical memory and virtual memory that will help you monitor your requirements, giving you a better idea of whether or not adding more RAM is likely to help.
SOS Forum contributor 'origin309' has taken my adjustments for the SW1000XG master EQ settings (see PC Notes December 2002) and used them to create a tiny 14k executable file that will scan your PC for the appropriate 'SW1000XG #1 Synthesizer' MIDI port, and send four short strings of SysEx data to it. If you place this in your Windows Startup folder, it will automatically adjust the EQ each time you boot up for a significantly flatter response when using the normal analogue or S/PDIF outputs. This utility has already been tested in Windows 98 and XP, but ought to work with most Windows versions.
I discussed programmer Tobias Fleischer's P4 P Bugger denormalisation tool in PC Notes October 2002, but his web site also contains a number of other useful programs and resources. Bit View displays the bit-depth of incoming audio streams, Channel Grabber is a simple WAV recording utility, while MCC (MIDI Control Centre) is a stand-alone application that converts incoming keyboard, mouse or joystick events into MIDI data in real time. There's also a handy page of DSP-related information to help new coders get started, along with the Kondor plug-in that provides information about the host application, configure plug-ins, and monitor incoming VST events -- ideal for debugging and analysis.
Shortly after releasing a Pentium 4 motherboard chipset that supports dual-channel DDR333 SDRAM (the SiS655), for a combined 5.4GB/second memory bandwidth, SiS have announced a new R659 chipset that's designed for a four-channel RDRAM architecture, and is able to offer a bandwidth of 9.6GB/second using four channels of 1200MHz RDRAM memory. It will be paired with the SiS964 South Bridge chip and be able to support eight USB 2.0 ports in addition to Serial ATA. The first samples should be available later this year.