VOGONS


First post, by noshutdown

User metadata
Rank Oldbie
Rank
Oldbie

whats the difference between edo and fpm:
for fpm, the output data becomes invalid once the cas line is pulled high, so the next read cycle cannot start until cpu has received the output data.
for edo, the output data is still valid after the cas line is pulled high, until cas line is pulled low again. this allows the next read cycle to start earlier, thereby shortening the latency(usually by one clock per read).
for example, -60ns edo can do 6-2-2-2 at 66fsb, while fpm is only up to 7-3-3-3, which makes quite a difference.

this is how it sounds, but in reality there are more limitations, one of which is that dram must wait for cache, it would be totally meaningless if dram is timed at same speed as cache. for example, if a pentium board is equipped with old async cache, which can only do 4-2-2-2 at 66fsb, then edo ram timing can only be set to 6-3-3-3. thats why the rumor "edo only helps when paired with pipeline burst cache"(pipeline burst cache runs at 3-1-1-1 all the way up to over 100fsb).

the following is what i consider "standard rated timing" for 33, 40 and 50fsb, and estimated performance. some people have gone faster than this, but is probably above spec and depends on individual board, cache and ram.

33fsb
cache: 2-1-1-1, ~2.35clk/read, 57mb/s
dram: 4-2-2-2, ~3.6clk/read, 37mb/s

40fsb
cache: 2-2-2-2, ~3.1clk/read, 52mb/s
dram: 5-3-3-3(may do 5-2-2-2 but has to wait for cache), ~4.6clk/read, 35mb/s
cacheless edo: 4-2-2-2, ~3.6clk/read, 44mb/s

50fsb
cache: 3-2-2-2, ~3.5clk/read, 57mb/s
dram: 6-3-3-3, ~5clk/read, 40mb/s
cacheless edo: 5-2-2-2, ~4clk/read, 50mb/s

as you can see, there is no real way to improve 486 cache/ram performance significantly, other than overclocking out of spec.

Reply 1 of 1, by mkarcher

User metadata
Rank l33t
Rank
l33t

I don't see where your "RAM must wait for cache" claim comes from. There is no reason for the L2 cache to not accept a cacheline fill (this is what happens on a read miss) as fast as it can do a read burst. So if the cache can do 3-2-2-2 at 50MHz when the processor reads from it, it should be perfectly fine to capture data from the RAM at 5-2-2-2 when the processor fills a cacheline from RAM.

There is no strict requirement that a chipset must not put the row address of a potential RAM cycle already onto the memory address bus (or the column address in case of a page hit), if it does not start the cycle using /RAS or /CAS, so there also is no need for the lead-off to be slower on boards with L2 cache than on boards without L2 cache. Still, you can make the trade-off of not[ starting a RAM cycle before you know you have a cache miss to prevent unneeded closing of pages.

As I understand it, the main problem that hindered EDO adoption in PC systems is a shortcoming of the PS/2 memory module system. To make use of the the page mode (which you do want starting at FSB above 10 MHz), you want to keep open memory pages for some time. This is a simple thing on FPM RAM: Just don't de-assert the /RAS line to keep the page open. Keeping /RAS asserted does not cause any complications on the board when you use FPM RAM (of course, you can't refresh RAM while a page is still open, and some other complications inherent to DRAM architecture). On EDO DRAM on the other hand, the "extended data out" phase has the modules drive the memory contents to the data bus as long as /OE (output enable) and /RAS (row address strobe) keep asserted. So while you can cause an FPM module to release the data bus by just deasserting /CAS, the whole point of EDO is that you can't. So to free the data bus with EDO modules, you need to either deassert /RAS or /OE. And that's where the shortcoming of PS/2 modules is apparent: /OE is no pin on PS/2 modules, and the /OE input pin of EDO chips is permanently asserted! This means the only way to have an EDO PS/2 module stop driving the data bus is deasserting /RAS, which causes the module to close the page.

This means for EDO support on PS/2 modules, you can only have one bank open at once, and if you don't have buffer chips between RAM and the FSB (although you always should), you can't even have a single page open if any other bus cycles of the processor is going to happen. One of my long-term plans is connecting the /OE input of the memory chips of a PS/2 module to one of the reserved or the presence detect pins of that PS/2 module, and add a bodge wire from the /MEMOE output of the SiS 496 north bridge to that pin on the PS/2 slot. This could fix the incompatibility with EDO modules known for a lot of 486 mainboards.