6 ms·
> Does it run at the full speed of an original 6502 chip? > No; it's relatively slow. The MOnSter 6502 runs at about 1/20th the speed of the original, thanks t
by lloeki 3y ago
> Does it run at the full speed of an original 6502 chip?
> No; it's relatively slow. The MOnSter 6502 runs at about 1/20th the speed of the original, thanks to the much larger capacitance of the design. The maximum reliable clock rate is around 50 kHz. The primary limit to the clock speed is the gate capacitance of the MOSFETs that we are using, which is much larger than the capacitance of the MOSFETs on an original 6502 die.
Now I'm curious but in way over my head.
Could the speed be improved by using MOSFETs with better capacitance?
Can the full 1.023 Mhz be attained by throwing money at it or are there physical limitations at that scale?
- junon 3y agoI'm not an expert but a hobbyist. Take what I say with a grain of salt. > Could the speed be improved by using MOSFETs with better capacitance? Not using MOSFETs would make it faster, in theory. MOSFETs have a delay time and are considered slow. But it appears they want to be true to how the original was made. There definitely exist mosfets indistinguishable from dust - I made the mistake of designing with a few at one point. So probably, yes. Another thing I noticed is that the distance between the components on the board is quite high. They might have done that to replicate the original layout, or maybe I'm just not seeing it correctly. But everything - including the traces on the board - has some capacitance. > Can the full 1.023 Mhz be attained by throwing money at it or are there physical limitations at that scale? Hard to answer without measuring, though I'd imagine it's possible. 1MHz isn't that fast, but if you have high capacitances or they don't switch fast enough (e.g. MOSFETs) then your signals are going to get muddy. EDIT: to be clear, not ragging on the project. This stuff is beyond cool.
- codeflo 3y agoThe real question is why would you. This is an educational project that visually demonstrates how a CPU operates. It could clock at 0.5 Hz for that purpose.
- sebcat 3y ago> Not using MOSFETs would make it faster, in theory. My understanding is that the MOS 6502 was MOS, so MOSFET. Not using MOSFETs would make it less of a replica. Implementing the replica in an integrated circuit instead of discrete transistors would lower capacitance. The delay time is a consequence of the capacitance.
- junon 3y agoI'm aware of all of this (I even mentioned the MOSFET vs not in my comment), I was just answering the OPs questions.
- skissane 3y agoThis is basically a second generation computer, whose heyday was in the first half of the 1960s – after vacuum tubes, but before the first integrated circuits. It makes me wonder, what transistor family would give you the best performance for this (very unusual nowadays) use case? Obviously not MOSFETs. From what I understand, germanium transistors were most common for 2nd generation computers, because (at the time) silicon transistor technology wasn't sufficiently mature to be used for that application.
- fallous 3y agoMaybe try ECL?
- TheOtherHobbes 3y agoECL would definitely be faster. Switching time is around 1nS, which is a solid order of magnitude faster than NMOS. But it would need something like 2 to 4 times the surface area, and would make a nice room heater.
- zokier 3y agoits unfortunate they don't have any details on what components were used so its difficult to say how much room for improvement there is still.
- Pet_Ant 3y ago> The maximum reliable clock rate is around 50 kHz. For those too lazy to do the math: the original did 1 MHz to 3 MHz. Note the units -which I missed the first time- kHz vs mHz. https://en.wikipedia.org/wiki/MOS_Technology_6502 https://en.wikipedia.org/wiki/MOS_Technology_6502
- generuso 3y agoI assume they use garden variety MOSFETs like 2N7002, which cost a few pennies when bought in bulk. The gate capacitance is 20 pF. One logic gate output is typically driving several inputs, so the typical load is several-fold of this capacitance. One could check the schematics for the maximum fan-out in the real circuit. The longest, one foot long traces on the PCB add another few tens of pF. So the capacitance seen by an output of a logic gate will probably be in the range of 20-100 pF most of the time. But it is the slowest gates which determine the speed of the whole circuit, so the worst case could be much worse. These transistors themselves are extremely fast and can switch on and off in about 3 ns. Their channel resistance is in single Ohm range even at the lowish gate voltages, so the RC time constant is also very small 100pF * 3 Ohms = 0.3 ns. Thus this is also not an issue. The slowness of the circuit comes from elsewhere. First, from the resistors which pull the logic gate outputs to the supply voltage. There is one for each logic gate, so a total of one thousand of these, and in the first approximation half of them conduct at any given time. To keep power consumption low, these resistors must have relatively high resistance values. If we limit the current for the logic to 1 A total, that is 2 mA for each of the 500 resistors. Therefore the resistors must be 2.5 kOhm for 5 V supply voltage. Thus charging of the nodes of the circuit through these 2.5 kOhm resistors is almost a thousand times slower than discharging the same nodes through the 3 Ohm channel resistance of a fully open transistor. Still, this is not too bad -- on the order of 250 ns of delay per gate. But the frequency for the whole circuit is determined by delay not through just one, but through many gates in series, plus there are probably parts of the circuit topology which are not optimal for implementing them with discrete transistors, where the delay does not follow from such a simple reasoning as above. The speed can probably be easily increased by an order of magnitude if one were willing to spend 50W instead of 5W for the circuit. Beyond that, one would want a CPU circuit designed specifically for implementation in discrete transistors, not a discrete element copy of a monolithic chip.