Option to use ZorRAM as Fast Memory?

A forum for Classic Amiga specific support issues.
Gregor
Posts: 103
Joined: Thu Sep 08, 2011 10:44 am

Option to use ZorRAM as Fast Memory?

Post by Gregor »

Would it be possible to get in the future versions of OS 4.x Classic an option to use ZorRAM boards as part of the Fast memory pool (and not just a SWAP disk)? Is this technically possible?! Yes, I know the memory on ZorRAM is much slower than the memory on CSPPC, but each of us could then decide whether to accept this handicap or not...
User avatar
Calgor
Beta Tester
Beta Tester
Posts: 319
Joined: Mon Dec 20, 2010 4:42 pm

Re: Option to use ZorRAM as Fast Memory?

Post by Calgor »

A good question as apps still run out of memory even though there is plenty of Swap still available via the ZorRAM.
Amiga 4000T: CSPPC 604e@233/060@50 146MB RAM/CVPPC/Mediator/Radeon 256MB/Realtek 8029AS/TerraTec Solo1-N/Picasso IV (Paloma Pablo Concierto)/Deneb/ZorRAM 256MB/Indivision AGA MKII/OS4.xBETA/OS4.1u4/OS3.9BB2
AmigaONE X1000: Nemo 2.1 PA6T-1682M@1.8 2GB RAM/Radeon HD 4770 512MB/Catweasel MK4+/Audigy 2 ZS/Realtek 8139D/OS4.xBETA/OS4.1u5
User avatar
ssolie
Beta Tester
Beta Tester
Posts: 1010
Joined: Mon Dec 20, 2010 8:51 pm
Location: Canada
Contact:

Re: Option to use ZorRAM as Fast Memory?

Post by ssolie »

Gregor wrote:Would it be possible to get in the future versions of OS 4.x Classic an option to use ZorRAM boards as part of the Fast memory pool (and not just a SWAP disk)? Is this technically possible?! Yes, I know the memory on ZorRAM is much slower than the memory on CSPPC, but each of us could then decide whether to accept this handicap or not...
The team proved ZorRAM was far too slow to be used as "fast" memory so that option won't be made available.
ExecSG Team Lead
Gregor
Posts: 103
Joined: Thu Sep 08, 2011 10:44 am

Re: Option to use ZorRAM as Fast Memory?

Post by Gregor »

ssolie wrote: The team proved ZorRAM was far too slow to be used as "fast" memory so that option won't be made available.
Is it the same with the memory on e.g. Radeon 9200, when used with Mediator in classic Amigas? Elbox have on their page a statement that part of that static memory can be used as Fast memory (and that it is very fast), but does AmigaOS 4.1 support this option? (I do not have Mediator to test that myself).
User avatar
danbeaver
Posts: 368
Joined: Thu Jan 19, 2012 9:58 pm
Location: Someplace you'd rather not be
Contact:

Re: Option to use ZorRAM as Fast Memory?

Post by danbeaver »

I know I have the least ability to answer this question, but I going to guess:

One, you hop off the CS-PPC board to the Zorro 3 bus. Two, you hop on the Mediator "bridge board." Three, you then get on the PCI bus. Four, you then hop up to the Radeon board and finally get to the RAM.

Or: One, you hop off the CS-PPC board to the Zorro 3 bus. You then get to an actual RAM board, and access the ram.

So, I'm guessing that if the Zorro 3 bus slows down access enough that the ZorRam is too slow for OS 4.1, then Radeon RAM access will be even slower. Mind you, Elbox has completely ignored the OS 4.1 platform. As I found out, the PCI card support uses Hyperion's own drivers (NOT ELBOX's), and includes support for cards not supported by Elbox. The best anyone has heard of is Elbox's attempt at OS 4.1, is their unreleased pci.library Version 10; and it is a kludge that will not work with the OS 4.1 drivers. As I understand it, the issue for Elbox is to re-do their DMA access to conform with the OS 4.1 specs. Another guess is that this involves a complete re-write of their software. Proper support "should" cross OS platforms as long as the hardware is constant with some (i.e., JIT from PPC to 68K) backward help. The compiler doesn't care what the hardware is, code is code (well not ASM).

Blast me if I'm off base, I said in other threads, I kinda quit the hardware/software aspect of things circa 1983, and now I'm just an "end-user."

Dan
User avatar
Calgor
Beta Tester
Beta Tester
Posts: 319
Joined: Mon Dec 20, 2010 4:42 pm

Re: Option to use ZorRAM as Fast Memory?

Post by Calgor »

@ Gregor

No, I do not believe there is an officially supported one. Elbox may have done something as mentioned by danbeaver, but it is not officially supported (if it exists, and then may cause problems).

@ danbeaver

Yes, logically one would think that going through the Mediator (which is connected via Zorro3 bus on big box mediators) would surely be an extra layer and therefore slower than ZorRAM. You can confirm this question yourself with bustest (in OS3.9). From memory the figures are in the same ballpark for throughput - but random access patterns etc may yield different results.

And as ZorRAM was deemed too slow, Mediator would likely likewise also be too slow (unless by some miracle its random access performance belies its throughput).

As to using Mediator graphics card RAM as Swap, I do not believe that is supported either.
Amiga 4000T: CSPPC 604e@233/060@50 146MB RAM/CVPPC/Mediator/Radeon 256MB/Realtek 8029AS/TerraTec Solo1-N/Picasso IV (Paloma Pablo Concierto)/Deneb/ZorRAM 256MB/Indivision AGA MKII/OS4.xBETA/OS4.1u4/OS3.9BB2
AmigaONE X1000: Nemo 2.1 PA6T-1682M@1.8 2GB RAM/Radeon HD 4770 512MB/Catweasel MK4+/Audigy 2 ZS/Realtek 8139D/OS4.xBETA/OS4.1u5
User avatar
danbeaver
Posts: 368
Joined: Thu Jan 19, 2012 9:58 pm
Location: Someplace you'd rather not be
Contact:

Re: Option to use ZorRAM as Fast Memory?

Post by danbeaver »

Hi again folks!

I have those Bus numbers per Calgor's recommendations from my A4000T, CS-ppc with 128MB 60ns RAM, + 16MB motherboard RAM + Radeon 256MB RAM on the Mediator. At the end are the ROM speed and the bus test under OS 4.1 (to be complete).
Hidden Text - Click to Show :
OS 3.9 BUS to RAM Access

CHIP:
BusSpeedTest 0.19 (mlelstv) Buffer: 16384 Bytes, Alignment: 32768
========================================================================
memtype addr op cycle calib bandwidth
chip $00018000 readw 855.8 ns normal 2.2 * 2^20 byte/s
chip $00018000 readl 870.3 ns normal 4.4 * 2^20 byte/s
chip $00018000 readm 853.5 ns normal 4.5 * 2^20 byte/s
chip $00018000 writew 563.9 ns normal 3.4 * 2^20 byte/s
chip $00018000 writel 564.6 ns normal 6.8 * 2^20 byte/s
chip $00018000 writem 564.5 ns normal 6.8 * 2^20 byte/s

************************************************************************

FAST_CSPPC:
BusSpeedTest 0.19 (mlelstv) Buffer: 16384 Bytes, Alignment: 32768
========================================================================
memtype addr op cycle calib bandwidth
fast $097B0000 readw 42.5 ns biased 44.8 * 2^20 byte/s
fast $097B0000 readl 65.1 ns biased 58.6 * 2^20 byte/s
fast $097B0000 readm 66.0 ns biased 57.8 * 2^20 byte/s
fast $097B0000 writew 46.2 ns biased 41.3 * 2^20 byte/s
fast $097B0000 writel 86.7 ns biased 44.0 * 2^20 byte/s
fast $097B0000 writem 90.9 ns biased 42.0 * 2^20 byte/s

************************************************************************

FAST_16M Motherboard:
BusSpeedTest 0.19 (mlelstv) Buffer: 16384 Bytes, Alignment: 32768
========================================================================
memtype addr op cycle calib bandwidth
user $07100000 readw 168.1 ns biased 11.3 * 2^20 byte/s
user $07100000 readl 326.2 ns biased 11.7 * 2^20 byte/s
user $07100000 readm 318.4 ns biased 12.0 * 2^20 byte/s
user $07100000 writew 252.8 ns biased 7.5 * 2^20 byte/s
user $07100000 writel 496.3 ns biased 7.7 * 2^20 byte/s
user $07100000 writem 504.1 ns biased 7.6 * 2^20 byte/s

************************************************************************

FAST_ZorRam:
BusSpeedTest 0.19 (mlelstv) Buffer: 16384 Bytes, Alignment: 32768
========================================================================
memtype addr op cycle calib bandwidth
user $71000000 readw 217.4 ns biased 8.8 * 2^20 byte/s
user $71000000 readl 413.6 ns biased 9.2 * 2^20 byte/s
user $71000000 readm 410.8 ns biased 9.3 * 2^20 byte/s
user $71000000 writew 321.1 ns biased 5.9 * 2^20 byte/s
user $71000000 writel 626.5 ns biased 6.1 * 2^20 byte/s
user $71000000 writem 627.9 ns biased 6.1 * 2^20 byte/s

************************************************************************

FAST_PCI_Radeon:
BusSpeedTest 0.19 (mlelstv) Buffer: 16384 Bytes, Alignment: 32768
========================================================================
memtype addr op cycle calib bandwidth
user $42000000 readw 797.3 ns normal 2.4 * 2^20 byte/s
user $42000000 readl 806.9 ns normal 4.7 * 2^20 byte/s
user $42000000 readm 814.0 ns normal 4.7 * 2^20 byte/s
user $42000000 writew 422.3 ns normal 4.5 * 2^20 byte/s
user $42000000 writel 422.5 ns normal 9.0 * 2^20 byte/s
user $42000000 writem 420.7 ns normal 9.1 * 2^20 byte/s

************************************************************************

ROM:
BusSpeedTest 0.19 (mlelstv) Buffer: 16384 Bytes, Alignment: 32768
========================================================================
memtype addr op cycle calib bandwidth
rom $00F80000 readw 184.1 ns biased 10.4 * 2^20 byte/s
rom $00F80000 readl 346.6 ns biased 11.0 * 2^20 byte/s
rom $00F80000 readm 348.2 ns biased 11.0 * 2^20 byte/s

************************************************************************
************************************************************************

OS4.1
CHIP:
BusSpeedTest 0.19 (mlelstv) Buffer: 262144 Bytes, Alignment: 32768
========================================================================
memtype addr op cycle calib bandwidth
chip $00030000 readw 846.9 ns normal 2.3 * 2^20 byte/s
chip $00030000 readl 847.2 ns normal 4.5 * 2^20 byte/s
chip $00030000 readm 882.1 ns normal 4.3 * 2^20 byte/s
chip $00030000 writew 561.5 ns normal 3.4 * 2^20 byte/s
chip $00030000 writel 561.3 ns normal 6.8 * 2^20 byte/s
chip $00030000 writem 560.9 ns normal 6.8 * 2^20 byte/s

************************************************************************

OS4.1
FAST:
BusSpeedTest 0.19 (mlelstv) Buffer: 262144 Bytes, Alignment: 32768
========================================================================
memtype addr op cycle calib bandwidth
fast $3D218000 readw 105.4 ns normal 18.1 * 2^20 byte/s
fast $3D218000 readl 119.0 ns normal 32.1 * 2^20 byte/s
fast $3D218000 readm 98.3 ns normal 38.8 * 2^20 byte/s
fast $3D218000 writew 106.4 ns normal 17.9 * 2^20 byte/s
fast $3D218000 writel 110.6 ns normal 34.5 * 2^20 byte/s
fast $3D218000 writem 76.4 ns normal 49.9 * 2^20 byte/s
If you see an error in my addresses, let me know and I'll run them again


-Dan

ADDENDUM:
ShowConfig Output
Hidden Text - Click to Show :
[A4000T, 16MB Motherboard RAM, CS-PPC-128MB, Indivision 1200 MK II, Mediator 3/4000T, ZorRam - 128MB, Deneb]

PROCESSOR: 604e
EMULATED: CPU 68020/68881fpu
CUSTOM CHIPS: AA NTSC Alice (id=$0033), AA Lisa (id=$00F8)
VERSION: Kickstart version 53.25, Exec version 53.25, Disk version 53.8
LEGACY RAM: Node type $A, Attributes $703 (CHIP), at $3000-$1FFFFF (~2.0 meg)

ZORRO BOARDS:
=======================================================================
Board (ELBOX): Prod=2206/161($89E/$A1)
(@$40000000, size 512meg, subsize same)

ConfigDev structure found at location $3020
==== Board ID (ExpansionRom) information:
er_Manufacturer =2206=$89E=(~$F761)
er_Product =161=$A1=(~$5E)
er_Type =$85
(type 2 (Zorro III), size 512meg, subsize same)
(not for free list, no ROM diag vec, not chained)
er_Flags =$20
(no space preference, can be shut up)
er_InitDiagVec =$0
==== Configuration (ConfigDev) information:
cd_BoardAddr =$40000000
cd_BoardSize =$20000000 (524288K)
cd_Flags =$0 (CONFIGME bit cleared)

=======================================================================
Board (ELBOX): Prod=2206/33($89E/$21)
(@$60000000, size 16meg, subsize same)

ConfigDev structure found at location $3070
==== Board ID (ExpansionRom) information:
er_Manufacturer =2206=$89E=(~$F761)
er_Product =33=$21=(~$DE)
er_Type =$88
(type 2 (Zorro III), size 16meg, subsize same)
(not for free list, no ROM diag vec, chained to next)
er_Flags =$20
(no space preference, can be shut up)
er_InitDiagVec =$0
==== Configuration (ConfigDev) information:
cd_BoardAddr =$60000000
cd_BoardSize =$1000000 (16384K)
cd_Flags =$0 (CONFIGME bit cleared)

=======================================================================
Board (E3B, Michael Boehmer): Prod=3643/16($E3B/$10)
(@$61000000, size 16meg, subsize same)

ConfigDev structure found at location $30C0
==== Board ID (ExpansionRom) information:
er_Manufacturer =3643=$E3B=(~$F1C4)
er_Product =16=$10=(~$EF)
er_Type =$88
(type 2 (Zorro III), size 16meg, subsize same)
(not for free list, no ROM diag vec, chained to next)
er_Flags =$30
(no space preference, can be shut up)
er_InitDiagVec =$0
==== Configuration (ConfigDev) information:
cd_BoardAddr =$61000000
cd_BoardSize =$1000000 (16384K)
cd_Flags =$2 (CONFIGME bit still set)

=======================================================================
Board + ROM (HD?) (E3B, Michael Boehmer): Prod=3643/19($E3B/$13) (@$E90000 64K)

ConfigDev structure found at location $3110
==== Board ID (ExpansionRom) information:
er_Manufacturer =3643=$E3B=(~$F1C4)
er_Product =19=$13=(~$EC)
er_Type =$D1
(type 3, size 64K, not for free list, ROM diag vec valid, not chained)
er_Flags =$0
(no space preference, can be shut up)
er_InitDiagVec =$8000
DiagCopy at =$3FFAC000
==== Configuration (ConfigDev) information:
cd_BoardAddr =$E90000
cd_BoardSize =$10000 (64K)
cd_Flags =$2 (CONFIGME bit still set)

=======================================================================
Board (Individual Computers): Prod=4626/23($1212/$17) (@$EA0000 64K)

ConfigDev structure found at location $3160
==== Board ID (ExpansionRom) information:
er_Manufacturer =4626=$1212=(~$EDED)
er_Product =23=$17=(~$E8)
er_Type =$C1
(type 3, size 64K, not for free list, no ROM diag vec, not chained)
er_Flags =$0
(no space preference, can be shut up)
er_InitDiagVec =$0
==== Configuration (ConfigDev) information:
cd_BoardAddr =$EA0000
cd_BoardSize =$10000 (64K)
cd_Flags =$2 (CONFIGME bit still set)
=======================================================================
RAM (E3B, Michael Boehmer): Prod=3643/32($E3B/$20)
(@$70000000, size 256meg, subsize autosized Mem)

ConfigDev structure found at location $31B0
==== Board ID (ExpansionRom) information:
er_Manufacturer =3643=$E3B=(~$F1C4)
er_Product =32=$20=(~$DF)
er_Type =$A4
(type 2 (Zorro III), size 256meg, subsize autosized)
(add to free list, no ROM diag vec, not chained)
er_Flags =$F1
(prefers 8-meg space, can not be shut up)
er_InitDiagVec =$3

==== Configuration (ConfigDev) information:
cd_BoardAddr =$70000000
cd_BoardSize =$8000000 (131072K)
cd_Flags =$2 (CONFIGME bit still set)

=======================================================================
PCI BOARDS:
Bus Device Funct. Manuf. Product Status
___________________________________________________
0x00 0x00 0x00 0x10EC 0x8029 working RTL8029
0x00 0x01 0x00 0x1002 0x5C63 working Radeon 9200 256MB
0x00 0x02 0x00 0x1033 0x0035 working Spider USB
0x00 0x02 0x01 0x1033 0x0035 working " "
0x00 0x02 0x02 0x1033 0x00E0 working " "
0x00 0x03 0x00 0x1274 0x5880 working SoundBlaster 128
0x00 0x04 0x00 0x1095 0x3114 working sii3114ide
Last edited by danbeaver on Tue May 15, 2012 3:34 pm, edited 1 time in total.
User avatar
Calgor
Beta Tester
Beta Tester
Posts: 319
Joined: Mon Dec 20, 2010 4:42 pm

Re: Option to use ZorRAM as Fast Memory?

Post by Calgor »

Well can't tell if there is anything wrong with some of your addresses as you did not supply the matching showconfig output ;) But the speeds look to be in the right ballpark.
Amiga 4000T: CSPPC 604e@233/060@50 146MB RAM/CVPPC/Mediator/Radeon 256MB/Realtek 8029AS/TerraTec Solo1-N/Picasso IV (Paloma Pablo Concierto)/Deneb/ZorRAM 256MB/Indivision AGA MKII/OS4.xBETA/OS4.1u4/OS3.9BB2
AmigaONE X1000: Nemo 2.1 PA6T-1682M@1.8 2GB RAM/Radeon HD 4770 512MB/Catweasel MK4+/Audigy 2 ZS/Realtek 8139D/OS4.xBETA/OS4.1u5
User avatar
danbeaver
Posts: 368
Joined: Thu Jan 19, 2012 9:58 pm
Location: Someplace you'd rather not be
Contact:

Re: Option to use ZorRAM as Fast Memory?

Post by danbeaver »

Please see addendum to my prior post.

Dan
User avatar
Calgor
Beta Tester
Beta Tester
Posts: 319
Joined: Mon Dec 20, 2010 4:42 pm

Re: Option to use ZorRAM as Fast Memory?

Post by Calgor »

Sorry, too many to check - you have some fancy showconfig output showing extra details (superfluous for the comparison). Also PCI card memory addresses are not displayed.

Many of them are correct, although I don't know why there is such a difference in the addresses of OS3.9 vs OS4.1 CSPPC fast RAM. I will trust you did it correctly as the speed numbers seem reasonable enough.

EDIT: Also, technically, I guess showconfig would be needed for both OS3.9 and 4.1 in case the autoconfig is done differently in expansion.library ;)
The idea (as you know of course) is to see what memory address showconfig (and pciinfo) show that the card is utilising, and then run bustest within that address range.
Amiga 4000T: CSPPC 604e@233/060@50 146MB RAM/CVPPC/Mediator/Radeon 256MB/Realtek 8029AS/TerraTec Solo1-N/Picasso IV (Paloma Pablo Concierto)/Deneb/ZorRAM 256MB/Indivision AGA MKII/OS4.xBETA/OS4.1u4/OS3.9BB2
AmigaONE X1000: Nemo 2.1 PA6T-1682M@1.8 2GB RAM/Radeon HD 4770 512MB/Catweasel MK4+/Audigy 2 ZS/Realtek 8139D/OS4.xBETA/OS4.1u5
Post Reply