doug@oakhill.UUCP (Doug MacGregor) (12/14/84)
M68000 Architecture Analysis - Part III.a Below are a few samples of the data that can be obtained using this evaluation package. These examples are from a variety of source data. They are intended as exam- ples of the evaluations available and are not meant to be taken as representative of the 68000 family. The first information shown describes the average number of accesses that take place during an instruction. These are described in terms of the total number of accesses as well as the type of accesses. In conjunction with the evaluation of the 68020 where the instruction cache provides some confusion, it is possible to specify a cache hit rate or (as in the example below) show the behavior for both the cache disabled and the cache hitting 100% to see the range of activity. Also shown are the percentages of the various types of accesses. Finally, there is shown the number of clocks required for execution for various number of wait states. This figure can be used to derive the average number of clocks per instruction by dividing the number of clocks by the number of instructions shown at the top. These charac- teristics can be observed for any processor in the family. MC68020 Sample of 1000000. instructions no cache cache type of access access/inst access/inst ---------------------------------------------------------- total instruction accesses 0.957 0.000 total data reads 0.386 0.387 total data writes 0.244 0.244 total accesses 1.587 0.631 no cache cache type of access percent percent ------------------------------------------------------ instruction accesses 60.311 0.000 data reads 24.319 61.351 data writes 15.370 38.649 # of wait states no cache clocks cache clocks ---------------------------------------------------------- 0 - 7712343.5 - 6403860.5 1 - 9298905.0 - 7034788.0 2 - 10885471.0 - 7665718.5 3 - 12472027.0 - 8296648.5 4 - 14058602.0 - 8927580.0 5 - 15645174.0 - 9558510.0 6 - 17231740.0 - 10189435.0 7 - 18818300.0 - 10820366.0 8 - 20404854.0 - 11451297.0 9 - 21991436.0 - 12082221.0 10 - 23577988.0 - 12713153.0 11 - 25164560.0 - 13344083.0 12 - 26751122.0 - 13975011.0 13 - 28337688.0 - 14605933.0 The next plot shows the expected performance level for any of the processors at any clock frequency at system access times from 0 to 600ns. As above, the effect of the cache on the 68020 can be either explicitly stated as a hit rate, or the performance of the machine with and without the cache can be observed. The performance is measured in terms of 68000 MIPS (millions of instructions executed per second). This provides a reasonable performance measure between the elements of the family. One of the goals of this study is to better understand the relationship of a 68000 MIP to a 68020 MIP throughout various applications. For these plots the system access time is measured as the time from valid address to data. PERFORMANCE ANALYSIS of MC68020 at various speeds 68000 Cache 100% Hit Rate 1 = 16.00Mhz 2 = 20.00Mhz 3 = 24.00Mhz MIPS Sample of 1000000. instructions Cache Disabled a = 16.00Mhz b = 20.00Mhz c = 24.00Mhz 5.50 + | | | | 5.00 + | | | | 4.50 + | | | | 4.00 + | | 3333333333333 | | 3.50 + | 33333333 | | | ccccccccccccc2222 33333333 3.00 + | 333333333 | 2222222222 | 33333333 | cccccccc 2222222222 2.50 + bbbbbbbbbbbbbbbbb111111 33333333 | 2222222222 | 33333333 | cccccccc1111111 2222222222 33333333 | bbbbbbbbbb 111111111111 333333333 2.00 + aaaaaaaaaaaaaaaaaaaaaaa 2222222222 33333333 | ccccccccc 1111111111111 2222222222 33333333 | bbbbbbbbbb 111111111111 2222222222 33333333 | aaaaaaaaaaaaa cccccccc 2222222222 33333333 | bbbbbbbbbb 111111111111 2222222222 333333333 1.50 + cccccccc 1111111111111 2222222222 | aaaaaaaaaaabbbbbbbcccccccc 1111111111111111111222 | | aaaaaaaaabbbbbcccccccc | aaaaaabbbccccccccccccccccc 1.00 + aaaabbbbbbbbbbcccccccc | aabbbbbbbbcccccccccccccccc | aaaaaaaaabbbbccccccccc | aaaaaaabbb | 0.50 + | | | | 0.00 + +---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ 50 100 150 200 250 300 350 400 450 500 550 600 TOTAL SYSTEM ACCESS TIME - (ADDRESS TO DATA) Similar to the performance plots, the plots of bus utiliza- tion indicate the percentage of the bus that is utilized by a particular processor over a given range of system access times. As in other cases the 68020 cache characteristics can be specified or as a default both disabled case and 100% hit rates are provided. It is possible to see the introduc- tion of wait states as system access time increases for a particular processor and clock rate. The measurement of the bus utilization can be useful in determining the behavior of the processor in a system in which there are multiple pro- cessors using a common bus, or in a system with multiple bus masters BUS UTILIZATION ANALYSIS of MC68020 at various speeds Cache 100% Hit Rate 1 = 16.00Mhz 2 = 20.00Mhz 3 = 24.00Mhz % of Bus Used Sample of 1000000. instructions Cache Disabled a = 16.00Mhz b = 20.00Mhz c = 24.00Mhz 100.0 + | | | | 90.0 + | cccccccccccccccccccccbb | cccccccccccccccc bbbbbbbbbbbbbbbbbbbb | ccccccccccccccbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaa | cccccccc bbbbbbbbbb aaaaaaaaaaaaa 80.0 + cccccccc bbbbbbbbbb aaaaaaaaaaaa | ccccccccbbbbbbbbbb aaaaaaaaaaaa | cccccccbbbbbbbbbbaaaaaaaaaaaaa | | cccccbbbbbbbbaaaaaaaaaaaa 70.0 + | cccbbbbbaaaaaaaaaaaaa 3333333 | 3333333333333333 22 | 33333333 2222222222 | 33333333 2222222222 60.0 + aaaaaaaaaaaaaaaaaaaaaaa 333333333 2222222222 1111111111 | 33333333 2222222222 111111111111 | | 33333333 2222222222 1111111111111 | 33333333 2222222222 111111111111 50.0 + | 333333332222222222 111111111111 | | 333333322222222221111111111111 | 40.0 + 3333322222222111111111111 | | | 333222221111111111111 | 30.0 + | 11111111111111111111111 | | | 20.0 + | | | | 10.0 + | | | | | +---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ 50 100 150 200 250 300 350 400 450 500 550 600 TOTAL SYSTEM ACCESS TIME - (ADDRESS TO DATA) In the following tables the dynamic frequency and the dynamic execution times for various categories of instruc- tions and addressing modes are presented. The first table provides a general breakdown of instruction categories. This is elaborated upon in the second table where the type of instruction are broken into categories with much greater resolution. GENERAL INSTRUCTION CLASSIFICATION General Class Dynamic Freqency Dynamic Execution Time ---------------------------------------------------- MOVES = 33.51 = 32.42 BRANCH/JUMP = 23.95 = 26.34 CMP/TST = 11.13 = 11.55 ARITH/LOGICAL = 16.53 = 13.98 SUBROUTINE = 3.39 = 5.60 MISCELLANEOUS = 10.76 = 10.08 ---------- ---------- Total 99.27 99.98 SPECIFIC INSTRUCTION CLASSIFICATION General Class Dynamic Freqency Dynamic Execution Time ---------------------------------------------------- MOVES = 33.51 = 32.42 Move reg,reg = 3.05 = 0.96 Move reg,mem = 6.39 = 4.82 Move mem,reg = 16.06 = 17.29 Move mem,mem = 7.54 = 8.92 Movem = 0.03 = 0.15 Swap = 0.44 = 0.28 BRANCH/JUMP = 23.95 = 26.34 Bcc = 15.03 = 15.11 DBcc = 8.37 = 10.53 Jmp = 0.56 = 0.71 CMP/TST = 11.13 = 11.55 Cmp = 8.04 = 8.25 Tst = 3.09 = 3.31 ARITH/LOGICAL = 16.53 = 13.98 Arith/Logic = 8.04 = 8.25 Addx/Subx = 0.00 = 0.00 Eor = 0.30 = 0.10 Mul = 0.62 = 2.80 Div = 0.15 = 1.20 Shift = 2.93 = 1.87 Rotate = 0.38 = 0.24 Ext = 0.88 = 0.55 SUBROUTINE = 3.39 = 5.60 Bsr = 0.98 = 1.39 Jsr = 0.71 = 1.01 Rts = 1.69 = 3.19 MISCELLANEOUS = 10.76 = 10.08 Bit = 0.40 = 0.40 Clr = 2.82 = 2.57 Lea = 2.41 = 2.05 Pea = 1.93 = 2.15 Link = 1.38 = 1.09 Unlink = 1.38 = 1.31 Scc = 0.43 = 0.53 ---------- ---------- Total 99.27 99.98 Both the source and destination addressing modes are categorized. These categories can be a good indication of how operands are being accessed and thus how the machine is dealing with operands in memory and with registers. SOURCE EFFECTIVE ADDRESSING MODES General Class Dynamic Freqency Dynamic Execution Time ---------------------------------------------------- NONE = 35.35 = 36.38 REGISTER DIRECT = 12.74 = 8.76 Dn = 2.32 = 1.99 An = 1.47 = 1.14 Rn = 8.95 = 5.62 REGISTER INDIRECT = 28.66 = 34.75 (An) = 3.38 = 3.42 (An)+ = 4.20 = 4.64 -(An) = 0.06 = 0.08 (d,An) = 18.04 = 23.30 Calc (An) = 0.86 = 1.19 Calc (d,An) = 2.12 = 2.12 REGISTER INDEXED = 2.56 = 2.89 (d,An,Xn) = 0.80 = 1.20 Calc (d,An,Xn) = 1.76 = 1.69 ABSOLUTE = 0.54 = 0.66 xxx.w = 0.00 = 0.00 xxx.l = 0.00 = 0.00 Calc xxx.w = 0.14 = 0.15 Calc xxx.l = 0.40 = 0.51 PROGRAM RELATIVE = 0.34 = 0.29 (d,PC) = 0.01 = 0.06 Calc (d,PC) = 0.33 = 0.23 PROGRAM INDEXED = 0.01 = 0.02 (d,PC,Xn) = 0.00 = 0.00 Calc (d,PC,Xn) = 0.01 = 0.02 IMMEDIATE = 8.27 = 7.71 xxx = 7.07 = 7.33 Quick = 1.20 = 0.38 IMPLIED STACK = 3.08 = 4.50 (SP)+ = 3.08 = 4.50 ---------- ---------- Total 91.55 95.96 DESTINATION EFFECTIVE ADDRESSING MODES General Class Dynamic Freqency Dynamic Execution Time ---------------------------------------------------- NONE = 17.28 = 19.01 REGISTER DIRECT = 50.03 = 46.65 Dn = 24.53 = 23.01 An = 7.57 = 5.68 Rn = 17.93 = 17.96 REGISTER INDIRECT = 24.35 = 25.60 (An) = 1.79 = 1.83 (An)+ = 7.37 = 8.05 -(An) = 5.90 = 5.92 (d,An) = 9.28 = 9.81 REGISTER INDEXED = 1.99 = 2.88 (d,An,Xn) = 1.99 = 2.88 ABSOLUTE = 0.00 = 0.00 xxx.w = 0.00 = 0.00 xxx.l = 0.00 = 0.00 IMPLIED STACK = 5.02 = 5.66 (SP)+ = 5.02 = 5.66 ---------- ---------- Total 98.66 99.81