Minnesproblem på C64c

Diskussioner om hårdvara

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher

Minnesproblem på C64c

Inläggav Raccoon » 6 januari 2017, 21:09

Jag har problem med demot Lunatico på min C64c.
Som ni ser i början av demot kan man välja VSP kanal och min C64 kraschar med kanal 1, 2 och 3, 4 fungerar och resten har jag inte testat ännu.
Är det RAM-minnet som är problem med eller är det något annat?
Användarvisningsbild
Raccoon
Gesäll
Gesäll
 
Inlägg: 199
Blev medlem: 15 december 2008, 23:07
Ort: Kungsbacka

Re: Minnesproblem på C64c

Inläggav bjonte » 7 januari 2017, 06:06

Problem med VSP-demos har med RAM refresh att göra. Det är helt naturligt att det inte funkar och datorn är inte trasig. När effekten används så fördröjs RAM refresh så länge att vissa datorer hinner tappa minnet.

EDIT: Detta är inte helt sant. Se bättre förklaring nedan.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1858
Blev medlem: 17 april 2006, 23:12

Re: Minnesproblem på C64c

Inläggav Raccoon » 7 januari 2017, 09:16

Finns det inget att göra åt problemet?
Ett annat RAM-minne som håller minnet längre?

Har nu testat alla 7 kanaler och bara 4an funkar.
Användarvisningsbild
Raccoon
Gesäll
Gesäll
 
Inlägg: 199
Blev medlem: 15 december 2008, 23:07
Ort: Kungsbacka

Re: Minnesproblem på C64c

Inläggav Raccoon » 7 januari 2017, 09:21

Jag har märkt av att den är lite instabil på några andra demo, det kan ju vara samma problem, men där kan jag inte välja kanal så det kan jag inte testa.
Användarvisningsbild
Raccoon
Gesäll
Gesäll
 
Inlägg: 199
Blev medlem: 15 december 2008, 23:07
Ort: Kungsbacka

Re: Minnesproblem på C64c

Inläggav bjonte » 7 januari 2017, 10:23

Raccoon skrev:Finns det inget att göra åt problemet?
Ett annat RAM-minne som håller minnet längre?

Jag sökte lite och upptäckte att jag ljög lite om RAM-refresh. Det är relaterat men det är inte så enkelt. En förklaring från CSDB (http://csdb.dk/release/?id=115690):

The c64 accesses memory twice in every clock cycle. Each memory access begins with the lsb of the address (also known as the row address) being placed on an internal bus connected to the dram chips. As soon as the row address is stable, the row address strobe (ras) signal is given. Each dram chip now latches the row address into a register, and this register controls a multiplexer which connects the selected memory row to a set of wires called sense lines. Each sense line connects to a single bit of memory.

The sense lines have been precharged to a voltage in between logical zero and logical one. The charge stored in the memory cell affects the sense line towards a slightly lower or higher voltage depending on the bit value. A feedback amplifier senses the voltage difference and exaggerates it, so that the sense line reaches the proper voltage representing either zero or one. because the memory cell is connected (through the multiplexer) to the sense line, the amplified charge will also flow back and refresh the memory cell. hence, a memory row is refreshed whenever it is opened.

Vsp is achieved by triggering a badline condition during idle mode in the visible part of a rasterline. When this happens, the vic chip gets confused about what memory address to access during the half-cycle following the write to $d011. It sets the internal bus lines to 11111111 in preparation for an idle fetch, but suddenly changes its mind and tries to read from an address with an lsb of 00000111.

Now, since electrical lines can't change voltage instantaneously, there is a brief moment of time when each of the changing bits (bit 3 through 7) is neither a valid one nor a valid zero. But because the vic chip changes the address at an abnormal time, there is now a risk that the ras signal, which is generated independently by another part of the vic chip, is sent while one or more bus lines is within the undefined voltage range.

When an undefined voltage is latched into a register, the register enters a metastable state, which means that its output will flicker rapidly between zero and one several times before settling. This has catastrophic consequences for a dram: the row multiplexer will connect several different memory rows, one at a time, to the same sense lines. But as soon as some charge has moved from a memory cell to the sense line, the amplifier will pull it all the way to a one or a zero. If, at this point, another memory row is connected, then the charge will travel from the sense line into this other memory cell. In short, one memory cell gets refreshed with the bit value of a different memory cell.


Jens Schoenfeld har gjort en VSP-fix i hårdvara:

http://wiki.icomp.de/wiki/VSP-Fix
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1858
Blev medlem: 17 april 2006, 23:12

Re: Minnesproblem på C64c

Inläggav Raccoon » 7 januari 2017, 11:02

Det där var lite för tekniskt för mina kunskaper, men jag förstår ungefär problemet.

Dock verkar fixen bara vara för C64-reloaded, kretsarna som visas på bilden finns inte på mina moderkort.
Användarvisningsbild
Raccoon
Gesäll
Gesäll
 
Inlägg: 199
Blev medlem: 15 december 2008, 23:07
Ort: Kungsbacka

Re: Minnesproblem på C64c

Inläggav bjonte » 7 januari 2017, 11:18

Raccoon skrev:Dock verkar fixen bara vara för C64-reloaded, kretsarna som visas på bilden finns inte på mina moderkort.

Ja precis, det är för Reloaded.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1858
Blev medlem: 17 april 2006, 23:12


Återgå till Hårdvara

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst

Banners

BOA Japon Mediapalatset Nostalgibutiken
Quartex Retro Overlays Retroplay Spel och sånt
Super Motaro Söders Serie & Skivhandel vintagegames.se RG 2016
cron