RE: In search of bad 4164, 41256 DRAM

From: Jeffrey Birt <birt_j_at_soigeneris.com>
Date: Sat, 14 Sep 2019 11:20:18 -0500
Message-ID: <007101d56b18$4d0ccf90$e7266eb0$_at_soigeneris.com>
I did some reading on these ‘march’ algorithms this morning and found that a lot of the literature that is out there concerns byte/word wide memories, testing memory in situ and weeding out all the other things on a device (decoding logic, etc. ) that could cause problems.

 

From what I can gather there is an issue where adjacent memory cells can have an issue, i.e. if cell one is at a ‘1’ then cell ‘2’ might not want to transition to a ‘1’ or ‘0’. The ‘marching’ are various bit patterns to detect these types of errors with a minimum of time/effort with different forms being better at detecting some types of faults than others.

 

I’m not sure how to translate this to bit wide memory at present though.

 

Jeff Birt

 

From: David Roberts <daver21145_at_gmail.com> 
Sent: Friday, September 13, 2019 3:09 PM
To: cbm-hackers_at_musoftware.de
Subject: Re: In search of bad 4164, 41256 DRAM

 

Checkout the march-b and march-c algorithms. These are pretty good 'off the peg' algorithms for finding quite a range of faults.

 

Dave

 

On Fri, 13 Sep 2019 at 21:05, Jeffrey Birt <birt_j_at_soigeneris.com <mailto:birt_j_at_soigeneris.com> > wrote:

Hi All,

 

I built a DRAM tester for fun and to brush up on Arduino development. I have a lot of students I work with use Arduino, so I wanted to build something to stay up to date and I have not done anything with an Arduino for more than a year. I found a project online as a starting point and added an automatic DRAM refresh driven by Timer2 overflow. Even with a pokey Arduino and the ISR in C it can refresh 64 rows in less and 100us. 

 

I did a quick test with a 41256 just now and was happy I could read/write all bits successfully. Then I realized I don’t have any known bad 4164/41256 type DRAM chips on hand. So, if you happen to have a few bad DRAM chips on hand and you’re in the USA I would gladly take them off your hands. Otherwise I’ll have to figure out a way to inject a simulated fault. Maybe writing a wrong value to a known cell after writing the proper pattern to all cells would be a good enough simulation?

 

I still have a way to go with the software. The original project I found online used separate functions for each test pattern. I want to create a single function that will write a bit pattern that is passed to it and then verify that pattern is in memory. Maybe a n second pause would be good to have in place between the write and verify to ensure that the refresh is working properly?

 

Thanks,

Jeff Birt 
Received on 2019-09-14 17:20:18

Archive generated by hypermail 2.3.0.