View Single Post
Old 06 November 2019, 15:29   #23
Registered User

Join Date: Sep 2015
Location: Germany
Posts: 231
Originally Posted by ross View Post
Interesting thread!
Do you have some code for a cold start setup (i.e. bootblock code for a game/demo start?)
I'm not sure if I can help you. I'm not an expert programming 68040/060 MMUs. I once opened this thead: mainly to turn off the 68040/60's caches and control the cachemodes via the TTx registers registers without a MMU table. My post from 24 January 2019, 09:30 in my thread may help you and make things clearer. Sorry, but I didn't understand yet how to create MMU tables. The question is what you want to set at boot time. The caches are turned off and the cashmodes are like I explained in this thread.

Alternatively I have these links:

The 68030 and 68040 on the Zorro III Bus

68040 Compability Warning

68040 Programming

Originally Posted by ross View Post
Unfortunately I have never had a 040 or 060, so I'm not totally sure how to handle them to their full potential in a true real Amiga environment..
[this should have been put in the message above, but oh well ]

I found this interesting text among my old documents for 030 :
               MC68030 COMPARISON WITH MC68020

I read with interest the "Assessing MC68030 and MC68882 Performance" letter
from Roy Druian, Product Marketing Manager of Motorola, as well as Dave
Bursky's "32-Bit Microprocessors 1987 Technology Forecast" in the Electronic
Design magazine of Jan. 8, 1987.  Mr. Druian's letter tried to demonstrate
that Motorola's 68030 at 20MHz has twice the performance of 68020 at 16.67MHz.
In Mr. Busky's survey, Motorola's 68030 is presented as having 3 times the
performance of 68020.

Using Motorola's own performance data for 68020 and the data available for
68030 (see bibliography below), I calculated the 68030 performance improvement
relative to the 68020.  These calculations, presented in detail below, show
that the performance of 68030 is only 18% better than that of 68020 at the same
frequency (20MHz) even if we believe the high hit ratios Motorola claims for
its small (256 byte) internal caches.

Using the data presented by Motorola in [2], the calculated 68030 performance
is 3.3 MIPS at 20 MHz, while 68020 performance is 2.3 MIPS at 16.67 and 2.8
MIPS at 20MHz.

The other 68030 problems that Motorola's papers do not stress are:
        -impossible timing for its synchronous bus protocol (very hard and
         expensive to run with zero wait-states at 20MHz).
        -virtual (logical) caches (see [1] for problems of virtual caches)
        -lack of hardware cache invalidation for the internal caches, which
         makes 68030 very hard to use in multiprocessing systems or where
         external devices (eg. DMA) may change memory values
        -long context switching time, because it has to save temporary data
         inside the CPU (problem inherited from 68020)
        -small TLB (Address Translation Cache) for the 68030 MMU (22 entries

Actually 68030 has no real MMU, as the TLB misses are handled by the 68030
Execution Unit and not by the MMU itself, transparent to the execution pipe.
The high price of a TLB miss (because it is handled in microcode, serial to
the instruction execution), combined with the relatively low TLB hit ratio
(should be 90 - 95% for the 22 entry TLB and not 98% as Motorola claims)
makes the use of the on-chip 68030 MMU expensive in terms of performance.

        68030 vs. 68020 Comparison

The improvements of 68030 versus 68020 consist of improvement of the Instruction
Cache hit ratio due to larger line size (16 bytes for 68030 vs. 4 bytes for
68020), addition of a small Data Cache and integration of the MMU on chip.

As for the "internal Harvard architecture", 68020 allows also the overlap of
instruction fetches with data operand access [3].  The 68030 left unchanged
the Execution Unit, except for the addition of some instructions to support
the TLB on chip [4].  As a consequence, the only change in the performance
model of 68030 when compared with 68020 is the improvement in the performance
penalty for addressing instructions and data in memory.

Using Motorola's own data (Table 6 in [2]), the average number of operand memory
access per instruction for 68020 are:
        -0.384 reads per instruction
        -0.242 writes per instruction

The Data Cache with 48% hit ratio and the 2 clock bus cycle will improve the
68030 execution time by:

0.384 * 0.48 * 2 + 0.384 * 0.52 * 1 = 0.567 clocks

        - 0.384 represents the average number of operand reads per instruction,
        - 0.48 represents the Data Cach hit ratio,
        - 2 represents the difference, in clocks, between 68020 going to
          external memory (no wait states) and 68030 finding data in the
          internal cache,
        - 0.52 (1-0.48) represents the Data Cache miss ratio,
        - 1 represents the difference, in clocks, between the 3 clock bus
          cycle of 68020 and the 2 clock bus cycle of 68030.

The writes have roughly the same influence on performance for 68020 and 68030,
as the Data Cache is a write-through cache and writes are buffered by the BIU.

The other 68030 improvement is the higher Instruction Cache hit ratio because
of 16 byte line size (the effect of the burst is already taken into account
in the hit ratio of the Instruction Cache and Data Cache).

According to Table 4 in [2], the number of clocks-per-instruction for 68020
drops from 7.159 with a 64% hit ratio instruction cache to 6.373 with a 100%
hit ratio instruction cache (an improvement of 0.786 clocks-per-instruction).
The estimated improvement given to 68030 by its 82% hit ratio instruction
cache and its 2 clock bus protocol (no wait state) is 0.5 clocks-per-instruc-

The overall performance improvements due to the architectural improvements
of 68030 relative to 68020 is then:

0.567 + 0.5 = 1.067 clocks/instruction

According to Motorola's own calculations in [2], the average performance of
68020 with the Instruction Cache ON for the workload in [2] is 7.159 clocks/
instruction (Table 4 in [2]) when no wait states are present.  This translates
into 2.3 MIPS at 16.67 MHz and 2.8 MIPS at 20MHz.  

The (7.159 -1.067) = 6.092 clocks/instruction for 68030 translates into 3.3
MIPS at 20MHz.

The relative improvement in performance of 68030 versus 68020 at the same
frequency is then:

(3.3 - 2.8) * 100/ 2.8 = 18%

If the 16.67 MHz 68020 is compared against the 20 MHz 68030, the performance
improvement factor is still only:

(3.3 - 2.3) * 100/ 2.3 = 43%

        68030 Synchronous Bus Timing

Even the 18% architectural improvements of 68030 versus 68020 is questionable
because of the way the 68030 2-cycle synchronous bus protocol is designed.

For a Read bus cycle, the 68030 issues the address at the beginning of the
first clock cycle and expects the system to return the ready signal (named
STERM) at the end of the same cycle.  Data is sampled by 68030 in the middle
of the second cycle.  According to the 68030 spec [6], the read bus timing at
20MHz is:

        - Address-to-STERM time = 25 ns
        - Address-to-Data time = 40 ns

For a Write bus cycle, 68030 issues the address at the beginning of the first
clock cycle, data at the beginning of the second clock cycle and expects the
system to return ready (STERM) at the end of the first cycle.  According to
the 68030 spec, the write bus timing at 20 MHz is :

        - Address-to-STERM time = 25 ns
        - Write Data Valid time = 25 ns

It is hard to avoid wait-states at 20MHz with such timing even when using
the fastest and most expensive static RAM's.  No wonder the Motorola is
unwilling to  commit pushing 68030 beyond 20MHz; with the 68030 bus protocol
wait states are unavoidable.

                Sorin Iacobovici
                Computer and System Architecture
                National Semiconductor Corp.
                Santa Clara, Ca.

        1. A.J. Smith "Cache Memories", ACM Computing Surveys, vol.14,
                no. 3, September 1982, pp. 473-530
        2. D. MacGregor, J. Rubinstein "A Performance Analysis of
                MC68020-based Systems", IEEE Micro, Dec. 1985,
                pp. 50-70
        3. D. MacGregor, D. Mothersole and B. Moyer "The Motorola MC68020",
                IEEE Micro, Vol.4, no.4 Aug. 1984, pp. 101-118
        4. J.T.Reinhart "Extra Functions and Higher Speed Push
                Microprocessor to Top", Electron Products,
                Oct. 1, 1986, pp.35-39
        5. D. MacGregor "Diverse Applications Put Splotlight on 68020's
                Improvements", Electronic Design, Feb. 7, 1985,
        6. Motorola Inc. "MC68030 -Second Generation 32-Bit Enhanced
                Microprocessor", Technical Data, Motorola Inc., 1986
                pp. 1-27

That's an interesting document you found. Thanks for sharing.

Last edited by dissident; 06 November 2019 at 15:36.
dissident is offline  
Page generated in 0.04328 seconds with 11 queries