!!!!!! P R E L I M I N A R Y R E L E A S E !!!!!! ********************************************************************* * * * AMICOM'S PERFORMANCE TOOL VERSION 0.B (1990-09-26) * * * ********************************************************************* Aperf V0.B Description --------------------------------------------------------------------- APERF is a CLI command that displays information on the system performance. I wrote it because I was unsatisfied with many of the existing similar tools. Most of them are either very unaccurate or they only give 'relative' performance, the value of which is questionable in most cases. APERF displays very exact values of the CPU (and FPU) clockspeed. Further, it attempts to determine the access speed of Chip and Fast memory. In most cases, it will succeed in doing so and then is very exact. Further options are: Number of multiplications and divisions per second. First version 1990-09-16 Updates: V0.A (1990-09-24): Bugs (changing cache status, crash of print routine) fixed V0.B (1990-09-25): Unresolved problems: On A3000, FPU behaves strangely slow. Therefore, the FPU clock on other machines must be adjusted by 18/19 if it is a 68882. Aperf V0.B Instructions --------------------------------------------------------------------- To start APERF, simply type APERF without options. It will come up with the readouts after less than 1 second. If for some reason it cannot perform its tests, an error report will appear. The memory speed readout says the following: rd and wr stands for read and write, .W and .L for word and longword. Word access takes place at even addresses and longword access on multiples of 4 to see if there is 32bit RAM in place. The actual number you get is the number of accesses the CPU can make under ideal circumstances (using MOVEM). This number should be CPUCLK/4 for 68000 (no waitstate RAM) and CLK/3 for 68020+. However, I have never seen anything else than CLK/4 on any machine. 16bit RAM will always give you half the number of longword accesses than word. The Amiga 3000 is the only machine that reads 1.79M longs in chipmem because its chipmem data path is 32bit. On the other hand, this is a poor value compared to its CPU clock rate (Chipmem clock is still 7.16 MHz). CHIPMEM-DMA CONSIDERATIONS In Chipmemory, various system DMA operations take place all the time and all of them have priority over the CPU. In the 'normal' case of a 2-bitplane 640x200 or 640x400 Hi-Res mode (non-Productivity) Workbench Screen, we have bitplane DMA in every other of the possible access slots. This causes no trouble to the CPU, because it does also only use every other slot. That is the reason why you get the true value of 1.79M (=7.16/4) from Shell on the Workbench Screen. You can experiment with other modes, like productivity/superhires (both use all slots when having 2 bitplanes on) or parts of hires-4bitplane screens overlapping the Workbench Screen. You will get values degraded in a more or less random fashion. The reason for that is that I use a very short period to measure the speed. Since the Screen does not occupy the entire video frame, the result depends stronly on the amount of time that the measurement overlaps with the unused vertical blank. Aperf V0.B Technical Info --------------------------------------------------------------------- Some may wonder how I can produce such very exact CPU clock speed values. Well, I must admit that I used a lot of hack. But I think there is not other way to do it. Here are some differences to other performance tools I looked at - I use DISABLE while measureing Many tools produce wrong clockspeeds or degraded performance readouts when you move the mousepointer. I hate that. - I use fast instead of slow time bases. This enables to 1) measure more quickly and 2) caclulate more precisely because the number of ticks is larger. I use the CIA timers clocked at 716kHz. - I make use of cache wherever possible. The only way to make an instruction use exactly the number of clock cycles described in the Motorola manuals is to run it from cache. To determine the clock speed of the 68000, I use a special method which does not rely on cache. I will also not keep as a secret that I do not display any result that I adjust or somehow caclulate using experimented values. All results come out of calculations that represent true physical conditions like a NOP takes 2 clocks, a CIA 'o2' tick is 1.39µS etc. Aperf V0.B Error Messages --------------------------------------------------------------------- *** Cant allocate CIA timer for time base. The CIA A timer A has been detected being occupied.