Thread: Use of MOVE16
View Single Post
Old 22 June 2020, 18:41   #16
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,292
Quote:
Originally Posted by SpeedGeek View Post
Yes, you can assume MOVE16 is safe to use on properly designed Boards in any classic Amiga 68K system.
I don't know what "you" assume, but what "one" can assume is probably better left to other people.



Quote:
Originally Posted by SpeedGeek View Post
The Commodore 68040.library was used verbatim by most 3rd party 68040 Board manufacturers. Phase 5 created their own 68040.library to add support for proprietary hardware, but not because they needed to fix any "Broken by Design" Boards.
GVP had their own library, Apollo had their own library, to name two comtemporary hardware vendors. P5 you already mentioned.



I would really wish there would be a generic way how to supply a CPU library, and I am really trying hard to make the best possible approximation of such a thing, but the reality tells another story, much to my own displeasure. I wish it would be different, but it isn't.



Quote:
Originally Posted by SpeedGeek View Post
Also, according to the 040 manual MOVE16 only bypasses the Copyback cache, so how do you conclude it also bypasses the push buffer?
It doesn't. It is just not any faster in situations where it matters because the weakest link in the whole affair is the bus, and not the execution speed. The limiting factor is the bus speed, not the execution speed - proven by experiment.


The only situation where it would make a difference speedwise is if you would move from CPU-local 32-bit memory to itself. Unfortunately, the whole architecture of the Amiga makes it impossible to detect whether a particular piece of memory satisfies this requirement, and hence whether MOVE16 is beneficial. Worst, in most situations where you *would* want to move memory around, you want to move it from CPU-local memory over Zorro II/III or the chip mem Bus, and this is exactly the situation where MOVE16 has no benefits because the bus is saturated anyhow, and where it has risks, so you would want to avoid to use it.


Thus, there is rarely any practical gain, except in benchmarks, just risks that cannot be controlled properly because the system does not provide any means to control them.


Quote:
Originally Posted by SpeedGeek View Post
I just explained two ways in which MOVE16 outperforms other instructions. I even explained an easy way for you to observe the worst case performance of the Copyback cache.

Just that my practical experiments showed that it does not. So why should I bother taking a risk if the net benefit is nil when I would need it?
Thomas Richter is offline  
 
Page generated in 0.06554 seconds with 11 queries