Path: menudo.uh.edu!menudo.uh.edu!usenet From: markus@techfak.uni-bielefeld.de (Markus Illenseer) Newsgroups: comp.sys.amiga.reviews Subject: REVIEW: GigaMem 2.0 Followup-To: comp.sys.amiga.applications Date: 20 Feb 1993 03:28:54 GMT Organization: The Amiga Online Review Column - ed. Daniel Barrett Lines: 488 Sender: amiga-reviews@math.uh.edu (comp.sys.amiga.reviews moderator) Distribution: world Message-ID: <1m48hmINN90u@menudo.uh.edu> Reply-To: markus@techfak.uni-bielefeld.de (Markus Illenseer) NNTP-Posting-Host: karazm.math.uh.edu Keywords: virtual memory, MMU, RAM, commercial PRODUCT NAME GigaMem 2.0 (GigaMem 3.0 with 68040 support is available now) BRIEF DESCRIPTION GigaMem is a software package which provides virtual memory for Amiga Systems that have Memory Management Units (MMU) and a hard drive. AUTHOR/COMPANY INFORMATION GERMAN DISTRIBUTOR Name: BSC Bueroautmomation AG Address: Lerchenstrasse 5 D-8000 Muenchen Germany Phone: +49 89 357 130 0 FAX: +49 89 357 130 99 USA DISTRIBUTOR Name: INOVAtronics Address: 8499 Greenville Ave., Suite 209b Dallas, TX 75231 USA Phone: (214) 340-4991 LIST PRICE (approximate) 149.- DM, which is approximately $100 US. SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS HARDWARE GigaMem needs an Amiga System with a working Memory Management Unit (MMU), which is available on most accelerator cards (e.g., A2620, A2630) or in the Amiga 3000 and Amiga 4000. It does not work with the 68000, 68020 without 68851 (MMU), 680EC20 (can only address 16 MB of RAM), nor 680EC30 (MMU-less version of 68030), as all of them do not come with a built-in MMU. To be able to swap the content of the virtual memory, GigaMem needs a reliable medium. In most terms, this is a hard drive. The more space is available on this hard drive, the more virtual memory you can obtain with GigaMem. Basically, at least 100K of (real) RAM are required. The more RAM you have, the faster GigaMem will work. SOFTWARE Amiga DOS Version 2.04 or higher is recommended. Amiga DOS Version 1.2 and 1.3 are supported. COPY PROTECTION None. GigaMem installs on a hard drive using the standard Commodore Installer program. MACHINE USED FOR TESTING GigaMem was tested on an Amiga 2000 with A2630 turbo card (4 MB of 32Bit RAM), A2091 SCSI adapter with several hard drives, and 4 MB of 16 Bit RAM. It was also tested with 1 and 2 MB Chip RAM on this A2000. A second test platform was an Amiga 3000 with 2 MB Chip, 8 MB Fast RAM and several hard drives. On this system, a 1.9 GB DEC drive was used for testing real large amounts of virtual RAM. On both Amigas, AmigaDOS 2.04 and Kickstart 37.175 was used. For some further tests, a A2065 Ethernet card was used. As other hardware is not needed for a virtual memory system, it will not be mentioned here unless it interfered with GigaMem. OVERVIEW When virtual memory systems started becoming available for the Amiga, I wondered how they could be useful on an Amiga at all. At my university, I work with several image processing packages and like to port some these to my Amiga. Image processing is an expensive job requiring a lot of memory. It uses a large amount of data (pictures in any form) and requires a fast CPU (to use filters, detectors, etc.). A single 512x512 24Bit Image uses 700KB of RAM! Now imagine if you have a whole sequence of pictures, or if you have to compare several pictures simultaneously! On the Amiga, you always get in trouble with this if you don't have enough RAM. For that purpose, a virtual memory system is exactly what you need. It provides a way to simulate RAM on an external medium, such as a hard drive. GigaMem is such a product and will be tested on the platform mentioned above. ANY virtual memory system needs a MMU to be able to provide such a service. In addition, the OS must be able to track memory resources somewhat. Fortunately, AmigaDOS does that with AllocMem() and AllocVec(). Even better, Amiga DOS provides a way to allocate specific RAM, such as Public and Chip RAM. Basically, the 68030 together with the 68851 (MMU), is able to address 4 GB RAM. The Amiga system does split this into two 2 GB partitions of RAM. So, any virtual memory system could supply 2 GB as maximum amount of RAM. GigaMem does provide 1 GB RAM max. During my tests, I was able to add more, but I unfortunately encountered a bug in GigaMem 2.0 here. There was no check for more than 1 GB RAM. This problem vanishes with GigaMem V3.0. You might consider 1 GB of virtual RAM as Utopian, but I know of many purposes where this amount is really needed. INSTALLATION GigaMem comes on one disk. It can be installed manually or with the supplied Commodore Installer program. The Installer works only on a correctly set up Amiga system. From within WB 2.0, programs can be started at WB start time by placing them into the SYS:WBStartup drawer. A wrongly installed system will not allow a correct setup of GigaMem using Installer. GigaMem will install itself in the SYS:WBStartup drawer and copy some files to its own directory. Also, a vmem.library will be copied to the Libs: drawer. Preferably, GigaMem works on hard drive based systems. Floppy-only systems won't have much luck using the package, but it can be done. (I have not tested this.) Following the instructions in the manual, GigaMem-Prefs is started. A full flavored, Style-Guide-compliant, Intuitionized window opens and allows the user to install the virtual memory system on the Amiga. The window is "localized" with the text is in English by default. German and French text are also available. The window is separated into two main parts: Memory Configuration, and Program Database. The part for the memory configuration has Gadgets for Virtual Memory, Buffer Memory, Cache Memory, and entries for the Swapping Medium. The manual explains the Gadgets and their functions in detail. Just let it be mentioned that the Buffer Memory is essential for the speed of the virtual memory, as this buffer will be swapped. The larger this buffer, the more real memory will be used for swapping, and the faster GigaMem will work. The Swapping Medium can be defined in two ways. You can designate a partition of a hard drive for GigaMem's use, or use a normal, sequential AmigaDOS File on any hard drive or other AmigaDOS media. The solution with the partition is preferred: AmigaDOS is not used, so it is faster and will not interfere with any AmigaDOS partition. Any hard drive should work here. Special informations for the mask-entry are read from the Rigid Disk Block (RDB) of the hard drive; if this is not available, the Devs:Mountlist file is scanned (for Amigas with no autoboot capability). I couldn't test GigaMem on a system which does not provide the RDB, but I see no reason why it should not work. Using an AmigaDOS File allows to set up GigaMem quickly and is useful for temporary usage. This solution is slower, but it works on every medium; even swapping via network is possible. After defining the amount of virtual memory and the way of swapping the memory, the installation is almost done. On the left part of the window, a database will show up in a listview (scrolling list) gadget. This lets you specify how the virtual memory should be used by individual programs. Some programs are already listed: AdPro, Cygnus Ed, Audio Master, Maple, Pagemaster and many more. Some entries have specific configurations already prepared. For AdPro, the configuration shows that the authors of GigaMem intended to give it virtual memory first. For AudioMaster, a comment states not to use the HiFi-Play-Mode. This is because AudioMaster will disable the system in this mode, and therefore disable GigaMem as well. For each Program in the database, a priority of the use of virtual memory can be given: use virtual memory before using real memory, use real memory first, use only virtual memory, or use only real memory. Thus, the user can provide specific types and amounts of memory to specific programs. This is a very nice feature of GigaMem: it shows that the programmers have been aware of the MEMF_PUBLIC problem. (This is a flag in AllocMem() to specify special RAM, but it was misinterpreted by some programmers in the past.) An automatic way of detecting the need for virtual memory using this flag will probably fail on many programs. The database of GigaMem allows the user to enable or disable the access to the virtual memory to a specific program. New programs can be added to the database using a standard (ASL) file requester or by dropping the icon on the GigaMemPrefs window (AmigaDOS 2.0 and higher only). There is a special entry, External Programs, which allows one to specify the settings for the programs supporting virtual memory via the supplied vmem.library. After setting the database, one can save the actual configuration, or just use it temporarily. GigaMem is a Commodity under OS 2.0 and higher, so its preferences can be changed online using a hotkey or the Commodities Exchange tool. Under WB 1.2 and 1.3, the GigMemPrefs Tool has to be started again. After either a reboot, or after starting GigaMem, the system will provide virtual memory. It is really nice to see this new entry on the WB Screen: 1,502,106 CHIP 3,436,340 other RAM 39,345,234 VMem (Snapshot, 40MB virtual memory) Also, the 'Avail' command shows the new amount of RAM: Type Available In-Use Maximum Largest chip 1473680 622448 2096128 1260560 fast 8423928 5207560 13631488 5242880 total 9897608 5830008 15727616 5242880 (Snapshot, 5MB virtual memory) This shows that the largest available Block is at least of the size of the amount of provided virtual memory. This is important for many programs, as they need contiguous RAM. TESTING Now, as everything is set up, we can start testing. Using both ways of swapping the virtual RAM, I've set up several test configurations on both of the Amigas listed above: 40 MB partition using 40 MB vmem 1 MB Buffer Cache 40 MB Amiga DOS File using 40 MB vmem 1 MB Buffer Cache 512 MB partition using 512 MB vmem 2 MB Buffer Cache 1 GB partition using 1 GB vmem 4 MB Buffer Cache The buffer cache is not very large but seemed to be sufficient during the tests. The manual states that the half of the real RAM should be used as a buffer. You have to find a suitable configuration yourself here (usage of real RAM vs. usage of VMem). On the software side, I tested AdPro, PBMPlus (an image converter package), CygnusEd, Maple V, and several other programs known to like large amounts of memory. As a "stress test," I launched several commodities and other programs (a music player, a 'Dir sys: All' in a shell and such), to test the behavior of GigaMem in a multitasking system. The initial test was to copy many large files into RAM:. After filling up the normal (real) RAM which was left, the virtual memory is used. The hard drive begins to spin and ... nothing happens. The files were all copied into RAM:, no problem at all. In all 4 configuration, this test worked. I admit, this is not a good test, but it tests if GigaMem is working OK. The next test was to use the commonly known memory-hog AdPro (Art Department Professional), an image processing toolkit. It likes to eat all the available RAM in the system. This is also the case when using it with GigaMem. AdPro failed to run with the 1GB VMEM configuration (rather funny, I think); it just liked to work with 512 MB. Converting a large (75%) JPEG picture (1600x1280x24) into an IFF picture takes a long time, but it did work without any problems. Using some of the filters was successful and still showed the stability of GigaMem. The same JPEG-picture was used with the PBMPlus-library. The Amiga Version of PBMPlus can use both, RAM and file-oriented conversion. If enough (contiguous) RAM is available, RAM is used. PBMPlus had no problem with GigaMem at all, even though, like AdPro, it is a real memory-eater. All configurations worked fine. For Cygnus Ed, I created a large text file (10MB) containing only the character 'a' in it. This file was then loaded into CED and a global search-and-replace operation was performed to turn every 'a' into 'b'. A simple test, but very effective, since every byte has to be replaced, which means a lot of swapping and paging to the hard drive. GigaMem worked fine in all configurations. The next test was Maple V, a powerful mathematical software package for several computer platforms. Maple can calculate to arbitrary floating point precision. The simple test was to copy the number pi (3.14159...) with more than 1E399 decimal places of accuracy into another variable. This was a very heavy test, but did not fail on any configuration. But it did take a great deal of time. *sigh* All of the above tests were successful, except for the one where AdPro refused to work with more than 512 MB RAM. GigaMem takes time, and the hard drive is stressed, but it works fine. The overall speed is not bad, and it gives me the feeling of having a Unix machine under my fingers. A Sun 3/60 or 3/80 would swap more than GigaMem, but they don't work the same way. It is really astonishing to see how easily GigaMem worked with large amounts of data. I tried to setup more than 1 GB of virtual memory, as though the manual states at most 1 GB is possible. I was told that this is the maximum size. Any other size could not be tested. To make it short, I've been able to work with 1.5 GB of virtual memory without any problems. The only problem I had was to fill that memory! It takes a long time to fill 1.5 GB of RAM. For using the "AmigaDOS file" method of swapping data, I tried another nasty solution: I mounted a hard drive from a UNIX environment to my Amiga via NFS (Network FileSystem) and the Amiga TCP/IP, using a A2065 Ethernet card. The speed of the Ethernet card is about 300 KB/second. This test was made to test the behavior of GigaMem and the usage of the Zorro Bus: large amounts of data have to fit into the bus, and the Ethernet card is not as fast as a hard drive, and it has only a 8K buffer for its FIFO buffer.... GigaMem had no problems at all accessing this remote file. The FASTROM option of CPU (WB2.0 command) and SetCPU (PD program by Dave Haynie) which also creates a MMU table worked fine with GigaMem. DOCUMENTATION The documentation is a full flavored binder, separated into two main parts, the German and the English manual. The two differ in some ways, but only in some details. It looks like someone of the Relog AG wrote the English manual first, and someone from BSC wrote the German manual. One can see some strange translations, but at least they are used throughout the whole manual. The manual itself is very clear from the beginning. The different ways of installing a virtual memory system are explained with their basic advantages and disadvantages. The problems which may occur are discussed and the ways to solve them are shortly but accurately explained. Some hints and tricks are given for more experienced users, along with special tricks for some special programs which normally would not work with virtual memory. The manual leaves almost nothing unmentioned, though some points are not really clear afterwards. For instance, the problems with some Mountlists and special DOS Flags could be made clearer. The manual tries to address itself to both beginners and intermediate users. Experts won't have any problems at all, but won't be satisfied as the manual does not explain in depth the details of GigaMem. For the beginners, the manual is not easy to read and requires regular use of the Amiga System and some knowledge of Mountlists and devices. On the disk, a file "LastMinute.doc" gives some facts about some new features, or warns about using a specific product which has not been listed in the printed manual. LIKES AND DISLIKES Personally, I really like the Intuitionized appearance of the setup of GigaMem. It does provide a very easy way to configure the virtual memory, the needs of specific programs, and the needs of the user. The system itself is almost invisible to the user, once started. It is very transparent and very reliable. I like the way the installation works, using the Commodore Installer. Of course, it requires a correct setup of the Amiga to start with. The best advantage is that you are able to give virtual memory to very specific programs, and even more, tell them not to use virtual memory, if you know they don't like it. This offers high security to your system. I don't like the German part of the manual, but only because it uses some very uncommon words (bad translation?). Why didn't the (German speaking) authors write the manual themselves? It looks like they want to invent a new language, rather than use commonly known words. The problems which may occur on some systems using a non-standard way to hook up a hard drive are not clearly explained. Of course, this is not a problem of GigaMem, but the user is left alone here. I am almost sorry, but I have no wishes for the next version. COMPARISON TO OTHER SIMILAR PRODUCTS I have used the VMEM system of my old Evolution SCSI adapter (Macro Systems) two years ago already. I was never satisfied of the way it provides virtual memory. VMEM did only run with the Evolution adapter, and only on specific partitions on the hard drive. But the partition was not read out of the partition table -- the specs were given manually by the user -- so if the user made a typo, VMEM could crash your machine immediately and seriously. Also, the system was not very stable and did not work with some programs. There was no way to enable or to disable the virtual memory for specific programs. Another product is available on the market to provide virtual memory. It's called XMEM. Unfortunately, I wasn't able to test it yet. I was told it is a bit faster than GigaMem, but less reliable. It does use the MEMF_PUBLIC flag of the AllocMem() function to detect whether a program desires virtual memory. There are some PD systems providing virtual memory. One of them appeared on a PD disk of the German Amiga Mag "Amiga". This one never worked for me. The binary was not executable. Another could be found on the Internet, but was not more than a developer system, and didn't provided a way to give virtual memory to the whole system, but to a linked program. Of course, one might compare GigaMem with a working UNIX (TM) system. There, the system always is set up with a specific amount of virtual memory. But the OS already provides virtual memory; thus, we can't really compare it with any of the Amiga virtual memory systems. BUGS I was not able to find a major bug. I am steadily in contact with one of the authors of GigaMem, and talked with him about future versions of GigaMem. The problem with the 040 MMU have been elaborated. A working version is available right now. As I am writing this, GigaMem Version 3.0 is available. This version merely is a bug fix release. No really new features have been included. VENDOR SUPPORT I am in the lucky situation to know two of the authors of GigaMem. But I purchased GigaMem the normal way. I bought it when it was just coming out last year. The distributor had no idea how to distribute GigaMem then, so I got just the manual and one disk. This should have been changed by now; e.g., a box or a nice folder. At least I was impressed by how fast I got the system (1 week). One plus for the distributor. As I have had no problem with GigaMem yet, I have not contacted the vendor nor the authors for an update or bugfix yet. The distributor, BSC, does have a HotLine especially for GigaMem. WARRANTY Standard warranty applies to GigaMem. In case of a disk damage, the disk will be replaced according to the manual. No specific warranty time is given. In Germany, it is at least 6 months by law. CONCLUSIONS The product offers a fair way to add more temporary RAM to your system; thus, any price below the price of REAL RAM is justified. Even a large hard drive is far cheaper than the same amount of (virtual) RAM. GigaMem is useful for everybody: for someone who has to deal with large amounts of RAM every day, and for the one who has a use for it only once a month. Professionals might consider real RAM before purchasing GigaMem; but for testing and temporary using large (real large) amounts of RAM, GigaMem really fits. On a list of 0 up to 5 stars, i would give 4.5 stars. COPYRIGHT NOTICE This review is Copyright 1993 Markus Illenseer. All rights reserved. Include the standard disclaimer here. The author of this text is not responsible for anything if you get into some serious problems due to this text. -- Markus Illenseer EMail: markus@TechFak.Uni-Bielefeld.de Universitaet Bielefeld Technische Fakultaet < this space intentionally left blank > D-4800 BIELEFELD 1 'TTY-fighters attacking!', Con Solo shouted --- Daniel Barrett, Moderator, comp.sys.amiga.reviews Send reviews to: amiga-reviews-submissions@math.uh.edu Request information: amiga-reviews-requests@math.uh.edu Moderator mail: amiga-reviews@math.uh.edu