English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 19 June 2023, 20:40   #41
Rock'n Roll
German Translator
 
Rock'n Roll's Avatar
 
Join Date: Aug 2018
Location: Drübeck / Germany
Age: 49
Posts: 197
I know the blitter cycle diagram but I don't get a relation to the DMA-debugger output.
If I look in the dma-debugger output I can't see a special blitter idle cycle information. I only see BLT-A, BLT-B, BLT-C, BLT-D.

OK, if I use the normal D-copy. I see the a 'B' sign. It's a notice to a idle cycle. This cycle is used by the CPU then.
Or I can see a 'S' sign in normal more channel blitter operation (BLITPRI=0). But no idle cycle would be moved.
And it is clear the the blitter works further after a CPU-cycle (or other higher dma-cycle) with his next step.

And I also know, any blitter cycle needs free cycle, even if it is idle cycle and CPU can use any idle blitter cycle.

B = blitter needed this cycle but it is also available for CPU if CPU needs it.
(=blitter idle cycle which means blitter did some internal operation but it
didn't need bus hardware = CPU can still access chip bus)

S = CPU stole this cycle from blitter

For me it's also at least 4 cycles not 3, and then the next. (5.) cycle the CPU gets the bus access if no other higher dma want use it.
And if BLIPRI=1, CPU can't steel any cycle. Or not? I only try to understand the rules.
Rock'n Roll is offline  
Old 20 June 2023, 20:11   #42
Rock'n Roll
German Translator
 
Rock'n Roll's Avatar
 
Join Date: Aug 2018
Location: Drübeck / Germany
Age: 49
Posts: 197
ok, the blitter idle-cycle point is clear now:
https://eab.abime.net/showpost.php?p...29&postcount=2

a good example for the blitter idle cycle is a B->D or C->D copy
blitter cycle diagram: BD-BD-BD- or CD-CD-CD- and each '-' is a idle cycle, CPU can use the idle-cycle and
it is marked with 'B' in DMA-debugger and also if BLITPRI=1 this cycle can be used from CPU.

but this point isn't clear for me:

HRM says: If DMAF BLITHOG is a 0 (BLITPRI=0), the DMA manager will monitor the 68000 cycle requests. If the
68000 is unsatisfied for three consecutive memory cycles, the blitter will release the bus for one cycle.

And this graphic https://www.powerprograms.nl/amiga/c...b27f12-601.png
shows this waiting for three memory cycles.

But DMA-Debugger shows every 5. cycle. What is the explanation for this? And that confuse me.

Code:
[10  16]  [11  17]  [12  18]  [13  19]  [14  20]  [15  21]  [16  22]  [17  23]
 BLT-C 70  BLT-D 00  BLT-A 74  BLT-B 72    CPU-RW  BLT-C 70  BLT-D 00  BLT-A 74
     FFFF      FF80      0000      3FFF  S   0280      C000      FFFF      0000
 0001F87A  0002014A  0001FA74  0001F978  00C2C698  0001F87C  0002016E  0001FA76
 B68C3200  B68C3400  B68C3600  B68C3800  B68C3A00  B68C3C00  B68C3E00  B68C4000

 [18  24]  [19  25]  [1A  26]  [1B  27]  [1C  28]  [1D  29]  [1E  30]  [1F  31]
 BLT-B 72    CPU-RW  BLT-C 70  BLT-D 00  BLT-A 74  BLT-B 72    CPU-RW  BLT-C 70
     FF80  S   8000      0000      FFFF      0000      0000  S   611F      FFFF
 0001F97A  00DFF004  0001F87E  00020170  0001FA78  0001F97C  00DFF006  0001F880
 B68C4200  B68C4400  B68C4600  B68C4800  B68C4A00  B68C4C00  B68C4E00  B68C5000
Rock'n Roll is offline  
Old 20 June 2023, 20:27   #43
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,210
Quote:
Originally Posted by Rock'n Roll View Post
HRM says: If DMAF BLITHOG is a 0 (BLITPRI=0), the DMA manager will monitor the 68000 cycle requests. If the
68000 is unsatisfied for three consecutive memory cycles, the blitter will release the bus for one cycle.

And this graphic https://www.powerprograms.nl/amiga/c...b27f12-601.png
shows this waiting for three memory cycles.

But DMA-Debugger shows every 5. cycle. What is the explanation for this? And that confuse me.

Image is not accessible to me, but I think I tried to explain this earlier in the thread. 7MHz 68000 running as fast as possible (e.g. only executing NOP instructions) can only access memory every 4th CPU cycles (== every other CCK).


With only CPU and blitter running (and BLTPRI=0) you will see CBBBBC. Because first you have CPU internal cylce (2 CPU, 1 CCK), then it starts waiting and the 3 (CCK) cycle waiting limit Toni mentions kicks in.


If instead of NOPs the CPU is doing e.g. LSL.W #8,D0 you will see a pattern of CBBBB-(CPU starts wanting to access memory)-BBBC (may have off by one error here, but hopefully you get the idea, and try with MUL/DIV instructions to see it for maximum effect).
paraj is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Blitter Busy Flag bloodline Coders. Asm / Hardware 20 08 March 2019 20:49
Blitter: clean-up line drawing and fill mode idle cycles. ross Coders. Asm / Hardware 9 12 May 2018 22:32
Trying to measuring the CPU cycles/instr ! (A500) amilo3438 Coders. Asm / Hardware 20 31 August 2017 20:22
Blitter busy flag with blitter DMA off? NorthWay Coders. Asm / Hardware 9 23 February 2014 21:05
CPU execution on odd cycles if no Audio/Disk/Sprite DMA mc6809e Coders. Asm / Hardware 2 02 April 2012 19:50

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 23:39.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.12140 seconds with 13 queries