From: wallmann@backus.pu.informatik.th-darmstadt.de (Natuerlich!)
Subject: Re: Falcon BUS..
Date: Mon, 14 Dec 1992 23:55:58 GMT
Organization: MSD software vault #9 @THD

Due to the recent discussion I have rehacked my (till now private) little
bustest program as to make it fairly portable between Amiga
and Atari. The assembler portion is very small and oughta be
quickly ported. So in case no one finds any major faults in 
the algorithm I think it would be interesting to run this program
on the Amiga 1200 and the F030 (of which I own neither). To get 
some 'comparable' figures the test should be done with:

	640x400x256colors 60Hz non-interlaced 
and	320x200x16colors  60Hz non-interlaced 

This program tests 16 and 32 bit read and write accesses.

Nat!

Here comes the source code, zooed and uuencoded

table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 bustest.zoo
M6D]/(#(N,3 @07)C:&EV92X:  #<I\3]*@   -;___\"  $        #W*?$z
M_0("W@$  '$   "/&; #C&=?!   ;0$   (!          !B=7,N<P      y
M    "@ 8%NP     I %     0"DC*  !(V*7S;6D'/]X P+N!IHPLN*?AN-$x
M*#PJ"//B;2!_AEMVDSKO'/Z2S374<"*F14PW0+$VI"$(96[58S80EFU3/^I"w
M2L'YFMN_++:S3L4.:[^L.,E4AOGFTLUM+Z5QQ@^"J1H98.#N[_+Q\' CZH;$v
M98X)-Q4S0$16DUKL$F*FFGMX$1C4S%1@(Z.DH.>$695::H'AO8N4(WPR[+-3u
M\]=FJ_\G.Q#Y0; ^#<(S8UWX @]_>CQ0HS/4B:7'S$_+'#5+[57'03^J@!=Mt
MW^K1]'*D_,3I7U_5?7ZTKIK4 1X;OHBU70Y&HVJS(&W0W[BJ&L]M<I,4_^FFs
M*UF%#=Q0II[#Y#6E0=VN.^3SO4QY>%*T+8\5XS@$)3KNY63C.?$S@**#=M&>r
M7DF:(ID7B/%D+^EGR],>3D]L'#>B9I2[W-0:W SKP-R7FVQ-O2[^>KNIV=K0q
MBB7J!+;NT1#PROTI).$-4Q!6XS=EABH/.XH  -RGQ/T" @T&   E @  CQF<p
M! +/  @  .@#   " 0          8G5S=&5S="YC      H &([X     *0!o
M0    $ I(R@  YEKEMFVVYQSKP!_D@HJ3R:;<U&&NFM&LEO!=7I*+)<!@( Pn
M6D5$0RB5B2HZQAN#>-7Q)+<E&MW7O 3;,.ZMMM3-D++_WTQ0^[+D-+!!ZSDNm
MTFKQ8/&M=ARO-N+6<K6'.G<$09+"VYER>&':YB*W(6II&581_E@/\>RHND_>l
M=CKCI.UI.?(!^7[H1:J3]U*$4P6QT&"DD6EN7B(J9(4;%+VEMN,YZ3RL.5BTk
M*[J9/9TM.'8[Z#Q2YI;4)26#%ZS:TPK2\YE!P?0&^8>V,@N-WG@U)/>'AB'"j
M%+_ I,K_MHH*\RE?EK-7LQ;5AC4A5JV7F<C94Z[+89E[7&L=58=[O_^A"R9Ii
MN1"JTXC.'XM=8A=5WI"*TM6KW_'X>SHU:IN0N#"Y;8+WX!^:=;=:%615*L1;h
MXQ1R+SO43<EA[4*.6GJZO?UD6C/GSZ?"] $MKCX1U=CA+1[  6NY[J$MIFNAg
M6$H1S_MV>P0CES^;[ZL\WUK23)6E=>R>@2&?(4_>M(R(DY)6KN+)06?Y>;G]f
M5'"@N31R0D,;$F[UHLWU  ,V:ML]%,?%+_&&OHI(^4$JP'VX,<]'--->9"IZe
M)OX?J?!AWX3>G'K;ABYLY<?/B+X'XPIZZ"T>?S\I:]Q=)G?TQ**[N(I_TZ_7d
M1VJ[9NP,S8!XUX@>==;QOMP."+K5'%S=PA-]1=C-P"L3,52( HFP$AE<9NP>c
M+X?>\LPQK@MK4 2%1>O%XC82*TU;J1XQ('X#=K,KRN)MV+@;"T@*M\*0H6 Sb
M'"5/L.\K0I>U'=BR&O3$E#G0SUMJ+\Q>@1.0H$O0X7)<9D;D?5SS]N-L.&+;a
M<-7TE@DY@74%;P&P3J=554&Y7'2 ;V"=OS8,JOR5/PT%273\=.FDL\<Y161Vz
M321<>C[GSR" 0<M'S99;;IX,L-PAFT?Y"TOA?V\O^PL,V]E^D+'$P:0%6'=By
MQ4\*Q_F:::, M%RTE:DW=1(2D^2VA[E6,;D61O-$,3RVZG<"JC@E8Y^(5X#Cx
MBA( B<BO@T7H5BV"B;>WEZ.!-?L+E@KAH2?@FXO1%ID,A;)R0'6!V>8D9<O-w
M1+C/WU-"-KP\(U!$BV>4R],%V]UDU1598^V7QJJ'#]]&J#%O<?!J?(HXWC&Lv
M& 501\?:SX#! X!17Q>3@4[R59TV@P SOF; +WCS,_W\-(SSV+Q!.:)<:N27u
M$ID+HT^[5V='NH+-&V?K6\*AE7$=T\.!V.R>O' XROGTQ>KP;;4AG[MGD!B(t
M,XM>*OFNEQEP/NVY>*;'DV:Y_5(. >$8*!^[C@S8X[Q#Y<?GJ'"UW/97\H^7s
MHCJT"4.H'\/$[GZ\_MXGNLP  -RGQ/T"                            r
>                                     /R#q
 p
end
---------------------------------------------------------------
The measurement algorithm is the following:

o	Shuts off almost all IRQ sources (should shut off data caches)

o	First the time needed for a couple of thousands of loops
	of a specific piece of code is measured.

o	Second the same amount of loops is done on another piece
	of code, which is the same as the first piece, except 
	that this code does one bus access more. 
	(e.g. MOVE  d0,(a0)  instead of  MOVE   d0,d0

o	The difference is taken and a mbyte/s value is computed


The method is inaccurate in these ways:  
a) timing is (on the ST) done with a IRQ-Timer which isn't all that accurate.
   (can be improved with higher loop factors)
b) the IRQ decreases the CPU-time available for the test program, thus for 
   the excess time of the second measurement, the IRQ time is in the figure.
c) this actually tests RAM access rather than bus access.

The reported figures are therefore slightly low! (shouldn't be more than 
10% though)

P.S.
I have ported (and bugfixed) the DBMALLOC library (by Conor P. Cahill)  
to the ST (for PURE-C only). I don't have the guts to put this stuff into 
the public, since the changes to the source aren't really in a form, where 
I'd could release them. Anyway this malloc library is a must for anyone who 
runs into weird and unexplainable problems, so if you want it contact me
by email.
-- 
 -----   Email: wallmann@backus.pu.informatik.th-darmstadt.de  -----
               "Bang that bit that doesn't bang"   
                  VfL Bochum:  "Unabsteigbar"
Newsgroups: comp.sys.atari.st.tech