Short: Patch CopyMem/Quick for 68030 v1.1 Author: dbusse@primus-online.de (Dirk Busse) Uploader: dbusse primus-online de (Dirk Busse) Type: util/boot Requires: At least a 68020 CPU Architecture: m68k-amigaos Description: This is a small patch which replace the CopyMem and CopyMemQuick functions of exec.library. These functions are optimized for the 68030 processor. They should also work with the 68020/040/060 processors. The patch tests for a 68020 or higher processor. If it can't find one, it doesn't install the patch and exits with a return code of 20 (=fail). It also fails, if it can't allocate the necessary memory. In some cases these new functions are four times faster than the original functions. Installation: Just copy CMQ030 into c: And insert CMQ030 in your s:Startup-Sequence The source code is also in the archive. Author: Dirk Busse Kropsburgstraße 8 D-67141 Neuhofen Germany <100.141999@germanynet.de> Speed comparision: There are already some similar patches available on the Aminet: CopyMemQuicker V2.8 from 1994 -> Aminet:util/boot/COPMQR28.lha PCM V1.0 from 1996 -> Aminet:util/boot/PCM_1.0.lha CMQ060 from 1998 -> Aminet:util/boot/CMQ060.lha Also MCP could patch these functions. CopyMemQuicker is optimized for a 68000,010 and 020 processor. PCM and CMQ060 are optimized for the 68040 and 060 processors and are working only with this prozessors. MCP V1.32b12 is on some cases faster than CopyMemQuicker V2.8, but on small moves it is very slow. And now there is CMQ030, the fastest of all. Here are some test results. All results are measured on the same AMIGA 2000 with a GVP Impact 68030 Processor Expansion with 4MByte 32-bit Fast Ram and clocked with 28.322000 MHz. TestIt from CopyMemQuicker V2.8 original CopyMemQuicker MCP CMQ030 Kickstart3.1 V2.8 V1.32b12 V1.0 CopyMem routines 282×64kB L->L 1.87 1.85 1.87 1.55 73×64kB L->L+1 2.13 1.06 0.63 0.43 206×64kB L->E 1.79 1.79 1.81 1.27 73×64kB L->E+1 2.13 1.09 0.63 0.43 73×64kB L+1->L 2.13 1.07 0.53 0.49 191×64kB L+1->L+1 1.83 1.25 1.81 1.05 73×64kB L+1->E 2.13 1.07 0.69 0.43 250×64kB L+1->E+1 1.85 1.81 2.39 1.51 250×64kB E->L 1.85 1.81 1.87 1.67 73×64kB E->L+1 2.13 1.07 0.69 0.49 191×64kB E->E 1.83 1.25 1.80 1.05 73×64kB E->E+1 2.13 1.07 0.69 0.43 73×64kB E+1->L 2.11 1.07 0.53 0.49 206×64kB E+1->L+1 1.79 1.79 1.95 1.39 73×64kB E+1->E 2.13 1.07 0.69 0.46 282×64kB E+1->E+1 1.87 1.85 2.69 1.57 16950×1kB L->L 1.91 1.88 1.93 1.49 4700×1kB L->L+1 2.15 1.13 0.66 0.49 12000×1kB E->E 1.90 1.32 1.90 1.12 98000×128B L->L 2.01 1.84 2.21 1.17 77500×128B E->E 1.95 1.43 2.13 1.43 294000×19B L->L 2.23 1.58 3.19 1.24 311000×18B L->L 2.23 1.58 3.24 1.25 331500×17B L->L 2.23 1.70 3.31 1.37 478000×16B L->L 2.53 2.26 4.51 1.86 530000×8B L->L 2.31 1.90 3.19 1.37 715000×4B L->L 1.91 1.35 2.99 1.49 1095000×1B L->L 1.53 0.66 3.22 0.42 CopyMemQuick 282×64kB L->L 1.87 1.75 1.89 1.55 16950×1kB L->L 1.87 1.84 1.91 1.47 98000×128B L->L 1.84 1.63 2.16 1.11 478000×16B L->L 1.66 1.30 2.85 1.12 530000×8B L->L 1.29 0.84 2.63 0.57 715000×4B L->L 1.45 0.85 3.15 0.43 History: 1.0 (29.Nov.1998) - First public version. 1.1 ( 5.Jan.1999) All changes made to this version doesn't effect the speed. They are only to avoid problems with future versions of AMIGA OS. - changed the version string to the standard format - changed BMI to BCS and BPL to BCC -> now CMQ030 could move blocks bigger than 2 GigaByte ;-)