Dual 6502 system

For discussing the 65xx hardware itself or electronics projects.
Post Reply
hatsugai
Posts: 9
Joined: 10 Oct 2020

Dual 6502 system

Post by hatsugai »

Hi,

I made a dual 6502 SMP system. Bus arbitration is performed by MLB, RDY, and BE. Read-modify-write instructions such as INC are treated as atomic operations. You can implement mutexes by using LSR, for example.

https://github.com/hatsugai/Dual6502

hatsugai
User avatar
BigEd
Posts: 11463
Joined: 11 Dec 2008
Location: England
Contact:

Re: Dual 6502 system

Post by BigEd »

That seems very nice and simple!

It looks like you have a single RAM but run the two CPUs on opposite phases - so presumably they both run at full speed until an MLB from one of them locks the bus for a few cycles?

Photos from your repo (hope that's OK):
hatsugai-Dual6502-arbitration.png
hatsugai-Dual6502-breadboard.png
hatsugai
Posts: 9
Joined: 10 Oct 2020

Re: Dual 6502 system

Post by hatsugai »

Thank you for the comment and images.

Yes, two CPUs run with no wait except the arbitration case. Thanks to the BE signal, no bus buffer is needed. The signals MLB, RDY, and BE make SMP so simple. the design of 6502 signals is great, I think.

memory space (can be configured easily by programming GAL):

0000H - BFFFH separated
C000H - FFFFH shared

There is a room to improvement: For example, the wait time can be reduced by moving the timing of MLB with an extra circuit.

hatsugai
User avatar
BigEd
Posts: 11463
Joined: 11 Dec 2008
Location: England
Contact:

Re: Dual 6502 system

Post by BigEd »

Oh, that's good: some shared and some private memory.
Post Reply