Welcome, Guest. Please login or register.

Author Topic: 64KiB alignment?  (Read 3067 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline ejstansTopic starter

  • Newbie
  • *
  • Join Date: Jun 2009
  • Posts: 48
    • Show all replies
64KiB alignment?
« on: July 10, 2011, 06:17:27 PM »
Hola!

I was reading through some old Amiga magazine where it talked about aligning bitplanes on 64KiB boundaries for maximum speed. Huh? What's this about?
"It is preferable not to travel with a dead machine."

A500 1.3 / 512KiB slowmem / GVP HD8 w/ 8MiB fastmem & 52MB HDD
A600 2.05 / 1GB SSD
A1200 3.0 / Blizzard 1200/4 w/ 68882 @ 33MHz / 1GB SSD
A1200T 3.0 / Apollo 1260 w/ 68EC060 @ 50MHz & 16 MiB fastmem / 4GB SSD
 

Offline ejstansTopic starter

  • Newbie
  • *
  • Join Date: Jun 2009
  • Posts: 48
    • Show all replies
Re: 64KiB alignment?
« Reply #1 on: July 10, 2011, 07:06:17 PM »
There's a good chance the article is incorrect (they've printed nonsense before), but I did find another reference to the 64KiB alignment. In the "How to code" series, in the section on relocatable code, we find the following sentence: "If you require bitplanes to be on a 64Kb boundary then try the following [...]" followed by code clearly trying to allocate on 64 kilobyte boundary.

It doesn't say anything about the reason for such a want though.

So, what are they talking about, if not nonsense? Worth pointing out that this is pre-AGA also. Is the 64-bit alignment applicable on OCS/ECS?
"It is preferable not to travel with a dead machine."

A500 1.3 / 512KiB slowmem / GVP HD8 w/ 8MiB fastmem & 52MB HDD
A600 2.05 / 1GB SSD
A1200 3.0 / Blizzard 1200/4 w/ 68882 @ 33MHz / 1GB SSD
A1200T 3.0 / Apollo 1260 w/ 68EC060 @ 50MHz & 16 MiB fastmem / 4GB SSD
 

Offline ejstansTopic starter

  • Newbie
  • *
  • Join Date: Jun 2009
  • Posts: 48
    • Show all replies
Re: 64KiB alignment?
« Reply #2 on: July 11, 2011, 08:49:37 AM »
Quote from: Leffmann;648981
The reason people did 64K alignment of bitplanes, and more often areas touched by the Blitter, was in order to squeeze out a little extra performance by not having to repeatedly set the high word of the pointers since it wouldn't change.

In a tight loop doing many smaller blits you could always up the number of bobs or whatever on the screen like this, especially on the unexpanded classic machines.

Aligning the data in your emulated Amiga on 64 byte boundaries to suit the outside machine isn't going to make a difference, there's just too much stuff happening for that to be noticable, but f.ex aligning your 32-bit accesses on 68020 and up will of course still matter inside your emulated Amiga.

Quote from: psxphill;648982
Aligning on 64k boundaries allows you to do some funky things just by updating the high part of the blitter/bitplane address registers.

Ah, thank you both! This would explain it then! :)
"It is preferable not to travel with a dead machine."

A500 1.3 / 512KiB slowmem / GVP HD8 w/ 8MiB fastmem & 52MB HDD
A600 2.05 / 1GB SSD
A1200 3.0 / Blizzard 1200/4 w/ 68882 @ 33MHz / 1GB SSD
A1200T 3.0 / Apollo 1260 w/ 68EC060 @ 50MHz & 16 MiB fastmem / 4GB SSD