Dr Jefyll wrote:
In one of our other threads we found ourselves discussing a somewhat mysterious reset bug reported to exist in NMOS 6502s.
For ease of reference, I'm going to bring in some quotes from that thread, and from messages Garth referenced. I'll do that at the bottom of this post.
The idea of the bug is that NMOS parts, or early NMOS parts, suffered a heating problem or even suffered damage if RST was active for too long. The information has not been found in any datasheet. Garth
recalls it as being true, and ioncannon believes he saw a heating problem
this year (**)
Checking Acorn's BBC micro and Electron schematics, neither make any effort to limit the length of RST. I have a BBC micro here, with a Rockwell NMOS 6502 with datecode 8402. I held RST for well over ten seconds, with no heating problem and no evidence of ill effect. Of course, that's a late datecode.
GARTHWILSON wrote:
I can't put much credibility into an argument that a company could easily make non-trivial changes to the masks easily though
I've read(*) that MOS had a competitive advantage in that they could make trivial changes to their masks, where other companies would have to re-do one or more masks. That's more expensive. It's not unusual to seek fixes which affect the smallest number of masks, then as now.
GARTHWILSON wrote:
Making new masks for a design change was very expensive. It would not make sense for them to fix this bug without fixing several others; but those were never fixed on the NMOS 6502.
Indeed, new masks are expensive, but a single mask is cheaper than a full mask set, and patching a mask is cheaper still. Fixing the ROR bug might have been possible as a mask patch, and so might this RST bug (if was real) whereas other fixes might not have been possible. So I don't think you can argue they would fix all or nothing. They'd fix the things which were hurting most, according to the cost of each fix - as with all engineering.
falcon5252 makes the point that an in-house fab can change the process to improve yield, and indeed the parent company can design according to the process capability. That might well have helped Commodore once they'd acquired MOS, and MOS having design and process very close would have helped them get good yields and performance faster, compared to a hypothetical company where design and process didn't communicate.
Dr Jefyll wrote:
Contention on an external bus is probably more serious since the current capability of the external-bus-driving transistors is greater than that for transistors driving internal buses. Also, correct me if I'm wrong, but with NMOS logic, don't they use weak, passive pull-up transistors for the internal logic?
Right, sort of! There are several possible design techniques. Almost all the internal logic of 6502 uses depletion-mode pullups with the gate controlled by the output, which are always on, but a bit more strongly on when driving a high value. The larger internal drivers have the pullup's gate controlled by a logic signal, so there's a potential for a logic bug. But even those pullups are usually quite weak. The only strong pullups on the chip which could cause contention are the ones which drive the databus pins. It's not impossible that the databus could be driven by the 6502 even during a read cycle, if there were a logic bug on the chip - and such a bug would need fixing!
The suppression of the stack writes during reset is something I still haven't tracked down in visual6502. Bear in mind that visual6502 is a particular NMOS part, in fact it had date code 8316 and is a Revision D. So, not an early part. (Although, it's possible that Rockwell, say, had a second source licence and never updated their mask copies other than to shrink them.)
Now, the references, for reference:
GARTHWILSON wrote:
At
viewtopic.php?t=1759&start=4 , or the fifth post of the topic General Discussions-->Beginner in digital circuitry which is at
viewtopic.php?t=1759 , after I mentioned the NMOS RST chip-heating bug, ioncannon wrote on Feb 1 of this year, "Ahh so it wasn't just me, whenever RST was grounded, the chip would heat up significantly." So far I have not found anything more on it though. My possibly inadequate search line was "6502 NMOS RST bug".
Making new masks for a design change was very expensive. It would not make sense for them to fix this bug without fixing several others; but those were never fixed on the NMOS 6502.
ioncannon wrote:
...
GARTHWILSON wrote:
All good answers from BDD, but I think he's mostly thinking about the CMOS 6502. I don't think the NMOS one had a Schmitt-trigger input for RST\, so it needed a clean edge with a quick rise time. I can't find anything about it in the Rockwell or Synertek data sheets right now though. I do know that the NMOS ones had a die-heating problem with leaving the RST line down more than a tenth of a second or so. 50ms was what a lot of RST circuits were made to deliver. You will need more than just a switch, since the switch will produce a lot of bouncing instead of a clean RST signal. If the last low time is at least a few clock cycles long, you might be in luck, if the rise time is fast enough. Use a CMOS one and you won't have to worry about it.
...
The NMOS 6502 had several bugs and quirks that got fixed in the CMOS one. ...
Ahh so it wasn't just me, whenever RST was grounded, the chip would heat up significantly. Should 500khz clock be ok? I read it's due to DRAM data inside the CPU degrading if the chip is not clocked fast enough.
Cheers
Ed
ps. Edit: added footnote:
(*)
falcon5252 wrote:
The Rise of MOS Technology,, Some of the links sited in the story are dead but its still a good read..
http://www.commodore.ca/history/company ... nology.htmyes, it's a good read! It also contains the statement "MOS figured out a process to repair Masks as they are reduced" which echoes the similar statement on wikipedia,
attributed to a conversation with Bill Mensch:
Quote:
MOS had a secret weapon: the ability to "fix" its masks
(I recommend also "On the Edge" - excerpt
here)
(**) would be nice to know the datecode and manufacturer of the CPU - ah, I note it's a Nintendo, which is NMOS and contains a presumed unlicensed mask copy of a 6502 with 5 datapath transistors removed as a single-mask hack. It has some yield fixes which visual6502's revD does not have, but they could be Nintendo's. As it's a Nintendo chip, the reset problem might not even be in the 6502 section.