News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_eto

what memory expansion size to choose?

Started by eto, 20:10, 29 September 22

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

eto

Quote from: WacKEDmaN on 18:25, 05 October 22ill just throw in my 2c worth....
it would be alot easier to use a single SRAM (512k/1mb) chip, less wiring up/soldering..no refresh circuit needed..
Let me put it this way: 6 weeks ago I thought it would be a great idea to put a SIMM into my CPC. After working on the internal upgrade for the 6128 and finally (somehow) understanding how everything works together, an internal upgrade with a SIMM seems feasible but too much work with little benefit. The logic isn't that complex and I have a PCB already laid out, but even once it works, you need to do a lot of soldering and it will create a huge mess in the CPC. Definitely over 30 cables that need to be soldered. Which means, if you are a bloke like me, who spends more time debugging because of stupid little mistakes than actual soldering, you should not even try it.

While I still think it would be a fun (or frustrating - depending on my actual soldering skills) project for me, it's not of much use for anybody else. Even if properly documented, I doubt a lot of people would try to replicate it, if you can get a "good enough" external RAM extension for 30€.

But I still think that I am not the only one who dislikes the external extensions, if it's not required to have them externally. I have replaced the second bank with 256MBit chips and that's already fine to upgrade the 6128 to 320KB but it's still a lot of soldering work. Unless you have to change (many) RAM chips anyway, I would not recommend it.

I'm now considering to build an internal upgrade board that can be plugged into the CPU socket. That was actually the root cause for my question here, if it's even worth to think about a PCB that can hold more than 512KB. 512KB simplifies things a lot - and if my idea is correct, I will only need a FlipFlop, a GAL and of course the SRAM chip, which all are available in DIP packages, so most people that know how to solder should be able to deal with it.

TotO

Quote from: GUNHED on 21:08, 05 October 22ROM and mass storage is no replacement for RAM btw.
The ROM is read only memory. While the data do not need to be updated, that perfectly does the job of a filled RAM from any media. About mass storage, it is enough faster on CPC for direct to disc usages.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

GUNHED

Yes, ROM is read only as you say. So if I need to work with 4 MB of data (f.e. the genome of S. cerevisiae) ROM is of NO use!
To access data on a modern mass storage is still 100 times slower than access to RAM directly. 
And I just don't wan't to have applications run 100 times slower.

If somebody just uses games, fine. But not everybody uses the CPC as game machine only.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

eto

Quote from: GUNHED on 11:19, 07 October 22Yes, ROM is read only as you say. So if I need to work with 4 MB of data (f.e. the genome of S. cerevisiae) ROM is of NO use!

You are dealing with the genome data on a CPC?

GUNHED

Quote from: eto on 11:47, 07 October 22
Quote from: GUNHED on 11:19, 07 October 22Yes, ROM is read only as you say. So if I need to work with 4 MB of data (f.e. the genome of S. cerevisiae) ROM is of NO use!

You are dealing with the genome data on a CPC?
Yes, I did. Actually you can fit 16 Mbp (mega base pairs) into 4 MB of RAM (2 bit for each base pair, features separated). The CPC was used for some of my research publications.
However, this is for sure not of common interest, but an working example.

In general RAM is gold. And few MB can't be a sin - as soon as you do some serious work. There would be more examples.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

TotO

Quote from: GUNHED on 11:19, 07 October 22Yes, ROM is read only as you say. So if I need to work with 4 MB of data (f.e. the genome of S. cerevisiae) ROM is of NO use
ROM is for solfwares with their own data, not the user data. (that allows to save RAM in any case)

Quote from: GUNHED on 11:19, 07 October 22To access data on a modern mass storage is still 100 times slower than access to RAM directly.
RAM is around 150K per second on CPC. Reading you, we have to understand that mass storage is around 1.5K per second... In fact it is enough close to the ROM/RAM speed. Anyway, if you have 4MB of data, you have to load them from the mass-storage (not a floppy disc) to the RAM. Finally, no need to load all when you can do it step by step, using less memory.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

eto

Quote from: GUNHED on 12:41, 07 October 22However, this is for sure not of common interest, but an working example.

In general RAM is gold. And few MB can't be a sin - as soon as you do some serious work. There would be more examples.
Of course they won't be a sin. The good thing is: there is an extension out there that supports 4MB. So whoever needs it, can get one.

If it would have the same complexity/price/space requirement, it would be a no-brainer. A 2/4MB extension will be about 3x more expensive, bigger and more complex than a 64-512K extension.




Prodatron

#32
Beside ram discs, nearly all examples, where huge amount of RAM is used, are streaming stuff. Either video streams or audio samples, see the examples mentioned some posts above. But all this has to be loaded from a mass storage first, which is nearly as fast as the RAM itself, as you just load it sequentially anyway (100times slower is maybe loading from tape).

Handling big data (>=512K) in RAM in a random way is a very rare thing on CPC. Using big ram expansions for executing code in all parts of the RAM is even more rare (the only example I know is SymbOS, I wonder if there are any more?).

So I agree with Toto, the use-cases for having 1/2/4MB ram expansions are pretty little.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

zhulien

Quote from: Prodatron on 10:42, 08 October 22Handling big data (>=512K) in RAM in a random way is a very rare thing on CPC. Using big ram expansions for executing code in all parts of the RAM is even more rare (the only example I know is SymbOS, I wonder if there are any more?).

So I agree with Toto, the use-cases for having 1/2/4MB ram expansions are pretty little.
MCP also executes background tasks from the extra banks.  My dev machine is configured to use 512kb which gives up to 32 16kb tasks running in the background of BASIC.  In reality this is quite a lot of load for a CPC to run them all concurrently - I plan to add 64kb tasks too which means between 8 64kb tasks and up to 32 16kb tasks in 512k.  Double that for 1mb which is a lot.  I see the potential not so much for concurrent tasks, but a mix of concurrent driver tasks and applications running from the external memory - such as text editor, monitor (and target object code to run - and crash when developing) and all the rest surviving a reset.  This currently works well with POCs and should make development on CPC must more friendly.  Of course the crashed code doesn't survive the reset, or it will likely be a crash loop.

I have worked out a virtual memory scheme also which works with my context switcher to allow up to 4mb virtual memory on a 464 (slowly) or on a 128kb+ machine quite acceptably.  But it really works best with large programs that do not context switch but need tons of RAM.

GUNHED

Of course the use-cases for any kind of RAM expansion are very little.
Let's stay honest: More than 90% of the available software runs with 64 KB only very well.
So, the argument of use-cases is not helpful in this regard.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

eto

Quote from: GUNHED on 17:44, 12 October 22Of course the use-cases for any kind of RAM expansion are very little.
Let's stay honest: More than 90% of the available software runs with 64 KB only very well.
So, the argument of use-cases is not helpful in this regard.

Of course it is... It's THE part that we are missing.

If there would be an interesting use-case for 4MB, people would start to get interested in it. Even if it would just be an idea, developers would maybe pick up the idea. But there is nothing. Not a single idea came up over the last couple of years, since 4MB are available, that more than a few people really are interested in. 

Technology becomes widely adopted, when it there is a "demand" and the technology is "good enough" to meet that demand. Demand is nothing else but a popular use-case, a "I want/need that" moment. The Iphone did not become popular because of the technology. It did become popular, because Apple identified use-cases - and then delivered technology that is good enough for those use-cases. 

GUNHED

I'm using 4 MB of expansion RAM in two of my CPC6128 since years (on internally, one externally) and I have quite some great use-cases for it. And of course my use-case are not automatically true for somebody else.

But it's the old story of hen and egg? Which was there first?
Here I sometimes have the feeling that people want to stop development by telling: Oh there is no hen / no egg - so we don't need the other.

As researcher I think the way around: Let's have one of them and we will have the other too.

BTW: Do you guys out there know how much(!) software Devilmarkus made for 4 MB's or RAM?
It's plenty!
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

GUNHED

Quote from: Prodatron on 10:42, 08 October 22Handling big data (>=512K) in RAM in a random way is a very rare thing on CPC. Using big ram expansions for executing code in all parts of the RAM is even more rare (the only example I know is SymbOS, I wonder if there are any more?).
Well, the multi tasking manager for FutureOS (called Caruh) allows to have working tasks using up to 4 MB for applications. I did show that on the XzentriX 2022 meeting actually. The maximum number of tasks is 255 in theory (in reality it's around 253-254, some RAM get's lost for buffering).
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Gryzor

If I'm not mistaken Markus' 4MB software is all about streaming media? 

GUNHED

Some yes, some sound, some video, some others. I lost oversight.

The same is true for most 128 KB software (just having some wallpapers or pictures in the expansion RAM most of the time - but hey! At least :-))
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

martin464

Guys there's something i don't understand
i found a 512kb expansion in the loft from Yarek it says 6128 on it, why won't this work on a 464?

Secondly, I'm going to acquire a Zaxon 512kb which definately will work
What I'd like is to use 64kb so i can run cp/m3 (patched) I know that works
But can I use the remainder as a ram disk and get 448kb say C: drive in cp/m like the PC/W's have
For me the ram disk is really a requirement for a project i got... 


CPC 464 - 212387 K31-4Z

"One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation." Ada Lovelace

TotO

#41
Quote from: martin464 on 12:12, 30 October 22Guys there's something i don't understand i found a 512kb expansion in the loft from Yarek it says 6128 on it, why won't this work on a 464?
Because it is printed 6128 on it. ;D

The CPC 464 was originaly not expected to receive a RAM expansion. (only ROM)
It is mandatory to handle extra electronics stuffs, not required on a CPC 6128 to make it working.

Quote from: martin464 on 12:12, 30 October 22Secondly, I'm going to acquire a Zaxon 512kb which definately will work
What I'd like is to use 64kb so i can run cp/m3 (patched) I know that works. But can I use the remainder as a ram disk and get 448kb say C: drive in cp/m like the PC/W's have. For me the ram disk is really a requirement for a project i got...
The Zaxon expansion is a dk'tronics clone that handle the missing electronic to run on a CPC 464.
Now, it will require extra software in ROM to add the RAM Drive support. (need CP/M patched for the usage)

The X-MEM offer the RAM Drive for CP/M (shared with the BASIC), but I'm currently not building them.


"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

martin464

Yes TotO but I wonder what the 464 lacks, after all it bank switches already the ROM! Is there some mod that could make the 6128 expansions work? I'm thinking of building my own RAM pack cause I don't know if I can obtain the Zaxon one

CPC 464 - 212387 K31-4Z

"One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation." Ada Lovelace

eto

Quote from: martin464 on 11:03, 02 November 22Yes TotO but I wonder what the 464 lacks, after all it bank switches already the ROM! Is there some mod that could make the 6128 expansions work? I'm thinking of building my own RAM pack cause I don't know if I can obtain the Zaxon one


The 6128 has an additional PAL that the 464 doesn't have. It adds behaviour that is crucial for proper expanded RAM handling: 

1) the RAMDIS signal in the 6128 also protects internal RAM from being written
2) the PAL controls A15 and A14 of the RAM which then realises the banking. 

When you start developing a new RAM expansion it's much simpler to create an extension for a 6128 first. If everything works there, you can go for the 464 and either overdrive some lines or manipulate the board of the 464 in hardware.

I would expect that this was either an early or just a simple RAM expansion of Yarek which didn't deal with the manipulations that are required for a 464.


martin464

ah thanks i may be ok cause i ordered a zaxon from cpcstore.co.uk. after a few beers i forgot i ordered it, now i see it went to spam and they are posting it. the last few days i've been trying to figure out what the heck i ordered, if anything and from whom. So it is looking promising. the last few days have been trying to work out what i did after those beers it was a mystery, I know I ordered something, but what? I think I need my own personal ram extension!
CPC 464 - 212387 K31-4Z

"One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation." Ada Lovelace

Powered by SMFPacks Menu Editor Mod