Welcome, Guest. Please login or register.
Amiga Kit Amiga Store Hollywood MAL AMIStore App Store

AuthorTopic: TurboMMU040+ released!  (Read 559 times)

0 Members and 1 Guest are viewing this topic.

Offline SpeedGeek

TurboMMU040+ released!
« on: December 01, 2018, 01:31:16 PM »
TurboMMU040+ 1.0 ©SpeedGeek 2018

INTRODUCTION:
TurboMMU040+ is an MMU tool to maximize the MMU performance of
most* 68040 and 68060 libraries. The MMU is a most excellent
and valuable feature of advanced 68K CPUs. Unfortunately, it's
usage does not come without any performance loss. How much
performance is lost depends on many factors, but this tool
deals specifically with the MMU configuration factors.

FEATURES:
- Enables 8K page mode MMU operation!
- Converts existing 4K page tables to 8K page tables
- Does NOT increase memory usage for MMU tables
- Enables (optional) ITTx management for 32GB of address
space!
- Uses 68040/060 library detection code
- 100% Assembler code

REQUIREMENTS:
- Amiga with 68040 or 68060 CPU and MMU
- 68040.library or 68060.library

PERFORMANCE AND TECHNICAL ISSUES:
The 8K page size provides a 2x increase in the address space
which resides in the ATC. When a page address "Hits" in the
ATC it provides a "Zero" wait state address translation.
When a page address "Misses" in the ATC the MMU performs a
table search in memory to find the page address. Hence, many
wait states are incurred which result in a performance loss.
Both the 68040 and 68060 have a 64 entry ATC so 64 x 4K = 256K
and 64 x 8K = 512K.

The ITTx registers manage the instruction page descriptors
for a 16MB - 32GB size of address space. They are typically
disabled but may be enabled for part of the address space by a
few libraries. TurboMMU040 optionally enables it for the full
32GB of address space. This effectively bypasses the MMU
and provides "Zero" wait state performance for all instruction
translations. The ITTx usage trade off is the loss of the of
the performance benefit (if any) from remapping the Kickstart
ROM(s) into Fast memory. Also, if the library has already
enabled the ITTx you may want to keep the default settings.

WARNINGS:
Failure to disable or unmap MMU remapped Kickstart ROM(s)
will result in a loss of memory which can NOT be reclaimed
after conversion to 8K pages (YOU HAVE BEEN WARNED!).

Attempted usage of this tool with existing 4K MMU tools is
VERY risky! Some tools will check the page size and safely
exit, but others will just assume the page size is correct
and proceed to crash your system! Likewise, libraries which
have a built in API (e.g. Phase 5) should be used with
caution.

This tool does NOT always provide an identical memory map to
the original. Specific cases when mapping will change are:

1) MMU remapping of the Zero page area is disabled.
2) SRP table differs from URP table (URP table replaces SRP
table).
3) The Kickstart MMU remap warnings have been ignored (All
physical ROM addresses are restored).

*Compatibility support for most 68040 and 68060 libraries does
NOT mean all of them!

NOTES:
The executable file name excludes the "+" character to avoid
problems with the Amiga Shell. See TurboMMUtools.txt for info
on the initial support tools.

HISTORY:
v1.0 - First release

Here is the link:

http://eab.abime.net/showthread.php?p=1288238
« Last Edit: December 01, 2018, 06:09:43 PM by SpeedGeek »
 

Offline BozzerBigD

Re: TurboMMU040+ released!
« Reply #1 on: December 01, 2018, 02:28:24 PM »
I'm not really sure what a MMU does. Oxypatcher tells me that it's not active on my 060 when ever the Amiga boots up. Why would I need this? What is a 8k memory address page when it's at home?  ???
"Art challenges technology. Technology inspires the art."

John Lasseter, Pixar Animation Studios
 

Offline SpeedGeek

Re: TurboMMU040+ released!
« Reply #2 on: December 01, 2018, 02:46:19 PM »
I'm not really sure what a MMU does. Oxypatcher tells me that it's not active on my 060 when ever the Amiga boots up. Why would I need this? What is a 8k memory address page when it's at home?  ???

Wow! I hope you are not joking (but I don't mind jokes when they are funny). The Memory Management Unit performs logical to physical address translations, manages the cache mode and write protection features of specific memory areas known as "Pages".

If Oxypatcher reports the MMU is not active it's probably wrong, unless you don't have a 68060.library installed or you are using an EC060 (which kinda defeats the purpose of Oxypatcher).  ::) 
 

Offline SpeedGeek

Re: TurboMMU040+ released!
« Reply #3 on: December 03, 2018, 01:45:10 PM »
** NEWS UPDATE **

TurboMMU040+ 1.1 released

v1.1 - Added code to keep the Zero page remapping if it meets
the 8K alignment requirement (So you got a 50/50 chance)

EDIT:
Joe Regulars (TM) kolla require a benchmark tool to convince themselves anything is worthwhile. So TurboMMUbench 1.1 has been released! See image in post #1.
« Last Edit: December 03, 2018, 09:56:52 PM by SpeedGeek »
 

Offline Dynamic_Computing

Re: TurboMMU040+ released!
« Reply #4 on: December 04, 2018, 04:29:36 AM »
Will this allow my Amiga to play "Crysis"?

OK.. Seriously.. Have you tested it with the new Amiga OS 3.1.4? I know they tweaked the CPU settings a bit and I was just wondering if your nice software would mess with any of that.
 

Offline kolla

Re: TurboMMU040+ released!
« Reply #5 on: December 04, 2018, 01:49:33 PM »
Joe Regulars (TM) kolla require a benchmark tool to convince themselves anything is worthwhile. So TurboMMUbench 1.1 has been released! See image in post #1.

Only the software I actually *use* is worthwhile - benchmark tools are of little value in themselves for "Joe Regulars" - you might just as well write a program that randomly spits out "impressive numbers" [TM]
Personally, I happily give away performance for better stability and better functionality, I suspect I am not alone in this.
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
 

Offline SpeedGeek

Re: TurboMMU040+ released!
« Reply #6 on: December 04, 2018, 02:25:05 PM »
Will this allow my Amiga to play "Crysis"?

OK.. Seriously.. Have you tested it with the new Amiga OS 3.1.4? I know they tweaked the CPU settings a bit and I was just wondering if your nice software would mess with any of that.

No OS 3.1.4 testing was done, and there is absolutely no reason why it would make any difference. The developers told you to use the same 68040/060 libraries as you were using before. These libraries determine the MMU configuration and table setup. So I've tested compatibility with several different libraries before the code was even released.  ;)
 

Offline SpeedGeek

Re: TurboMMU040+ released!
« Reply #7 on: December 04, 2018, 02:44:33 PM »
Only the software I actually *use* is worthwhile - benchmark tools are of little value in themselves for "Joe Regulars" - you might just as well write a program that randomly spits out "impressive numbers" [TM]
Personally, I happily give away performance for better stability and better functionality, I suspect I am not alone in this.

Sometimes it may be worth sacrificing performance for stability and sometimes not. It is a mistake to assume improving performance always means sacrificing stability, I suspect I am not alone in this either.

Did you forget Motorola/Freescale/NXP, Commodore, Amiga Inc., H&P, Hyperion and various 3rd party developers have already made some performance vs. stability decisions for you?   
 

Offline SpeedGeek

Re: TurboMMU040+ released!
« Reply #8 on: December 04, 2018, 05:45:08 PM »
* 2ND NEWS UPDATE **

TurboMMU040+ 1.2 released.

v1.2 - Added code to compare Page table address at 8K blocks
vs. 4K blocks. This might improve indirect mapping accuracy only since direct mapping is always converted to the physical address.

Offline SpeedGeek

Re: TurboMMU040+ released!
« Reply #9 on: December 05, 2018, 02:11:42 PM »
** 3RD NEWS UPDATE **

TurboMMUtools 1.1 released

- 1.1 Added RemapZero 1.0
 

Offline SpeedGeek

Re: TurboMMU040+ released!
« Reply #10 on: December 09, 2018, 12:14:17 AM »
** 4TH NEWS UPDATE **

TurboMMU040+ 1.3 released.

v1.3 - Updated code to allow indirect mapping of the "Extended"
Zero page area. Added NOITTx option so the libraries default ITTx
settings can be maintained.