You are on page 1of 3

home

information

forum

contact

download/buy

sitemap

Plugins Bundles Tutorials
Introduction Compression Limiters Equalizers Mixing tutorial Mastering tutorial Stereo expansion Analog vs. Digital 32-bit vs. 64-bit Get social

32-bit vs. 64-bit
With the advent of cheap multi-core processing and the subsequent arrival of the latest operating systems to utilize their power, more and more people are demanding 64-bit systems and applications. But how many of us actually understand what 64-bit means? We try to clear up the confusion by looking at the advantages and disadvantages of each system. Memory Do you really need more memory? Why have 64-bit architectures been developed? What do you need to "be 64-bit" ? x32 vs. x64 Does x64 improve audio quality? Memory Everything is bigger Virtual address space Performance & CPU features Overall OS performance Registers Calling convention Running 32-bit applications on x64 Conclusion

Memory

Let's start by explaining the fundamentals of memory. RAM (random access memory) is a very fast memory, which is used to store al currently running applications and the associated data needed. In our case this would relate to blocks of audio data, D.A.W. software & related programs, virtual instruments and samples etc. If there is not enough RAM memory available to store all of this data, the O/ (operating system) can 'swap' part of it onto the hard drive and load it back into memory when needed. However this swapping come at a cost - speed.

MDrummer Large
MDrummer Large is currently the world's most advanced drum studio, and contains the most powerful samplers and synthesizers. With unlimited effect pipelines this machine becomes the hero of drum machines. Its ultra-powerful rhythm system is capable of...

RAM is not the fastest memory in the computer, in fact it is relatively slow compared to the processor speed. First there is 'cache memory, which is similar to RAM, but is in much closer proximity to the CPU. While RAM is connected to the CPU via wires man centimeters in length, called a 'system bus', cache memory is usually integrated inside the CPU itself. Unfortunately, it is also mor expensive than RAM, so it is usually only supplied in batches of just a few megabytes. Cache is situated between the CPU and RAM, s when looking for data, the processor visits the cache first and only accesses the RAM when the information it needs is not present.

The fastest memory in the computer is called the 'register', which is actually as fast as the CPU itself. Most work is done inside it bu it's size isn't measured in gigabytes, megabytes or even kilobytes. You only have a few hundred bytes, with the actual amount defined by the CPU architecture.

Do you really need more memory?

32-bit systems can address up to around 3GB of memory. This limit must suffice for the whole system and all running applications otherwise something will get swapped. In addition, there is another limitation for separate applications - usually 2GB. This 3GB limi still seems generous, but besides actual samples it will also contain all executables and temporary files etc. After all these are take into account, you probably have around 1.5GB free for your project.

Is this enough? Well it usually is, so let's look at an example of a large audio project. Let's say that our project needs 3GB of RAM. 1GB of this will be taken by up by executables and temporary structures and so is effectively lost. The remaining 2GB contains the data t be loaded from your hard drive. This data is usually compressed, so we could estimate that with lossless audio compression and th structures needed for random access, we would need to load about 1GB from the disk. Even though modern hard disks have become lot faster, with fragmentation and simultaneous operations, a fair estimate of the fastest loading speed would be around 50MB pe second. Therefore loading all the data will take 20 seconds. Add to this the time to compute the temporary structures, and even with an 8-core processor, it will take 25 seconds to load.

25 seconds to load a project! Do you really want to wait that long? Well, sometimes you don't have a choice, but this scenario doe highlight the disadvantages of using so much memory.

Why have 64-bit architectures been developed?

Frankly, not for audio. The main reason for development was to meet the continuously increasing demands from servers. Unlik D.A.W. programs, which are basically the exclusive main applications when working with audio, servers process hundreds of requests a once using terabyte databases. They also access the data in a virtually random order, so it is necessary to keep as much of the data i memory as possible.

Now that 64-bit processors have been developed for servers, why not use them in other applications as well? Memory was a major issu for developers back in the days of 16-bit architectures. With the arrival of 32-bit systems, speed became the priority and so we starte wasting memory until eventually the limit was reached. With the advent of 64-bit machines, the same situation has happened again. So now we need lots of memory for audio, video, games etc...

Do you need to go 64 bit? It's probable that within 5 years most computers will be running 64-bit operating systems and therefor most of the applications will also be 64-bit. Until then, can you manage without upgrading? We cover some key details below to help you decide.

What do you need to "be 64-bit" ?

First of all you need a 64-bit compatible processor, almost all of them are 64-bit these days. With the exception of the high end server based "Itanium" processor (which you aren't likely to come across), all of them are also backward compatible with 32-bi architecture, so it is not uncommon to see notebooks running 64-bit processors with a 32-bit operating system installed.

Mac OS 10. which the system scheduler switches to th bridge. it is loaded from memory into the cache. but the interrupts are much more frequent and interrupts do take quite a lot of processing power. so the designers had t use an alternative approach. x32 vs. So again. Do not switch to x64. We can take 'page swapping' as an example. for referring to 64-bit architecture. If the data is not presen in the memory. Only the operating system and processor holds thi information. If your plugins are mostly available as 32-bit only (which is almost always the case on the Mac OS fo example). and gives that memory t the application. The 64-bit space is just too large to be stored in a small database. If you notice a gradua degradation in performance.5 (32-bit). is actually smalle than 8 bytes. this is the reason for it's development. an address onl has 4 bytes. it is stored at a different location! Therefore all of the data in memory can become progressively more fragmented. called an 'address'. When the developers were switching to 64-bit hosts. Virtual address space This next issue is a little more involved and may be a little harder to understand. x64 is the way the processor works internally. and you are not running out of memory. the locates something that is sat in memory and has not been used for some time. but modern applications contain huge amounts of addresses.6 (64-bit) is faster than 10. Finally you also need 64-bit plugins. It is the bridge that actually asks the plugin to carry out the operation. so the processor contains several 'multiplication' units and uses them when needed. Windows XP/Vista/7. T overcome this issue they had to develop so-called 'bridges' first. x64 Now we can finally get to the 32-bit versus 64-bit architecture question. This is where it gets much more complicated since many hosts are only 32-bit. that's not completely true. the 4 bytes of each address will actually contain some relevant data This difference may seem insignificant. x64 code is much bigger than x32 code. For the purposes of this tutorial we won't be considering 16 bit platforms. since they are basically now obsolete (even washing machines now use 32-bit processors!). the CPU is switched to 32-bit mode with only a minimal performance degradation. the bigger the code is. slower and less reliable. but how does the CPU know what each address means? In x32 systems there is a small database for these memory addresses and both the CPU and the system know its structure. after all. isn't it? With bridges everything becomes much more complicated. processing audio ofte requires multiplication.Secondly. Well. accessing the TLB is faster than accessing the small database foun in x32 systems. which is probably caused by the system getting untidy and progressively more fragmented. But is this extra memory use effectively? Everything is bigger Firstly. Does x64 improve audio quality? No. which we will cover later. This makes the process faster. but once again we have lost som memory. By code we mean the executables. Moreover. Next you require applications. That aside. which didn't exist for the 64-bit platform. If the host needs something from the plugin. and then gives the data back to the host. However. it is possible that 10. You can try this for yoursel because with Windows 7 you are able to install both x32 and x64 editions from a single DVD. and since they need to stay inside memory (though thi is slightly simplified).if you use a 32-bit host. So an application is running. because the operating system has 'swapped it' onto the hard disk. the couldn't release them immediately. A bridge is a separate application that runs between a particula plugin and the host.6 are all now available as 64-bit. On one hand. a possible solution may be to reinstall the OS.5. then it generates an interrupt and the operatin system fixes it.6 uses the system resources slightly better than 10. It doesn't matter if it is i 32-bit or 64-bit mode. because the system is bigger. You may recall that the cache is fast but small while RAM is slow and big. It has nothing to do with actual computations. When there is not enough memory available for an application. and instructions for the processor. they will occupy more space. The TLB contains only the most recently used addresses. Therefore I strongly suggest using bridges only i there is no other choice. whereas with x32. then the advice would be to stick with a 32-bit host even if the host itself available as 64-bit. With Windows I didn't notice any performance improvement o degradation when switching to 64-bit although the loading may be slower. If you run a 32-bit application in a 64-bi operating system. since you will rarely exceed the 2GB limit. a number for example. . However big changes in Mac OS X performance were also note over time. Prett complicated. Finally the x64 processors need everything to be "64-bit aligned". so every time an address is not found interrupt must be generated to force the OS to fix it. use 32-bit plugins. the less of it can fit into th cache and so it must be continually loaded all over again! With 64-bit you also need 8 bytes to uniquely identify any place in the memory. it will be rounded up to use 8 bytes regardless. If you use 64-bit host. moves it to the hard disk. This can occur in just about any part of the memory and it's even possible that every time the application touche data. use 64-bit plugins. there are many more that offer improvements over x32. For example. When an application is accessing a part of the memory. because of technica reasons. it creates a request. you need a 64-bit operating system. Memory There's no doubt that x64 can utilize more memory. Modern operating systems use 'virtual address space'. it looks at the database and knows where the data actually is. which means if something. it will eventually use the same unit to get the correct result. The golden rule is . In x64 the situation is much more complex. but you must also use much more of it. because you think your music will sound better :). So ever time the system needs to access the memory. because people still needed to use their plugins. It stands t reason therefore that your applications themselves will also be much bigger. The result was to use something called a 'TLB' (a translation lookaside buffer) which is a small hash-table that acts like a cache. We will also use the identifier x64. With Mac OS X it seems that 10. with x64 systems yo have more memory at your disposal. and similarly x32 for 32-bit architecture. Performance & CPU features The x64 system also delivers some new features and while some of them have been forced by the bigger memory requirements of th 64-bit platform. Overall OS performance Operating systems use the same CPU features as applications. it doesn't actually know which part of the memory it is addressing.

Now that we have covered the main differences. if you are running in 32-bit mode.Registers x64 architecture has more registers than it's x32 equivalent and because all computations are performed inside registers. even if it is a 64-bit processor. it is up to you to make a more informed decision as to whether or not you want to o indeed need to make the switch. Fortunately. This switching is called 'scheduling'. The way they communicate is by predefined communication protocol. However. So it seems that despite the existence of a bigger set of registers there is little or n performance gain. so this task is done using registers i possible. so that the black boxes understand each other. but there are also some issues to be aware of. because it needs to utilize some services from it But because the operating system is 64-bit. A 64-bit system can however access all of your memory and that should be the only reason for you to mak the switch to x64. it may also need to switch the CPU mode back and forth between x64 and x32 which will invariably take som time. these calls must first be translated from 32-bit to 64-bit and then run through 'dispatcher'. is this a problem? If we look at what happens when running a 32-bit application on x64. . you should also use 64-bit plugins and vice versa. When using a 64-bit host. Calling convention Try to imagine modern applications as huge blocks of black boxes that need to talk to one another. So the question is. The conclusion is. However the system is constantly switching between applications lot. a plugin's front end 'GUI' (graphic user interface). that it is perfectly fine to run 32-bit applications on 64-bit operating system. it must send instructions to this other black box on what kind of line it needs to draw. the better. so every time it needs to draw a line. is created by a black box. the compiler generating the application code must carefully allocate and us the registers. For example. Additionally. and that's not exactly simple. we see that the CPU is switched to the so-called 32-bi compatibility mode. in which it behaves as any 32-bit processor. approximately several thousand times per second. Another consideration is that each application needs to call the operating system. when running x64. x64 has nothing to do with audio It is perfectly fine to run 32-bit applications on 64-bit operating system. in x64 this becomes highly ineffective. Running 32-bit applications on x64 As mentioned previously. Everytime the scheduler switches from application to another. this extra time seems negligible. So far though. it can still use onl the x32 set of registers. which draws it. Conclusion x64 has several advantages over x32. When it comes to performance. there isn't muc difference between them. This protocol is called a 'calling convention'. this currently doesn't seem to cause any significant overhead either. Until then it's inevitable that from time to time we will need to run some 32-bit applications. theoretically the more of them you have. If any slowdown does occur. especially on the Apple platform. Now this black box may nee to call upon another black box to draw lines. it will b minimal. And that's the calling convention. it will take some time before everything is available as 64-bit. While in x32 most data has been transmitted by memory. And that is of course much faster.