yet another pdp-11 in fgpa
Johnny Billquist
bqt at softjar.se
Mon Jun 21 17:07:17 CDT 2010
"Walter F.J. Mueller" <W.F.J.Mueller at gsi.de> wrote:
> Hi there,
>
> Brad Parker just posted about his FPGA implementation of a PDP-11,
> which boots so far RT-11, RSTS V4, BSD 2.9 and Unix V6. There was a
> question how fast an FPGA solution might be compared to a PDP-11/93.
>
> I've also implemented a PDP-11 on an FPGA. It is a full 11/70 with
> split I&D, MMU and cache. No FPP so far. Available peripherals are so
> far DL11, LP11, KW11L, PC11, and RK11. All I/O is channeled over via
> 'remote-register-interface' onto a single bi-directional byte stream
> interface, so the FPGA board needs a backend PC with a server program
> to handle the I/O requests.
Cool! Nice!
> The design is FPGA proven, runs on Digilent S3 and NEXYS2 boards, the
> former with 1 MB 10 ns SRAM, the later with 16 MB 70ns PSDRAM.
>
> Resource consumption is
> S3 board xc3s1000 2471 slices or 33%
> NEXYS2 board xc3s1200e 2624 slices or 30%
>
> The implementation was verified against many XXDP maindec's. There are
> some open issues, especially some details of trap and double error
> handling aren't correct yet. In practice this is of little importance,
> the FPGA system happily boots and runs BSD 2.11, a system using 22bit
> addressing and split I&D space. {Note: you need patch 447 for 2.11BSD
> to get FPP emulation and RK support working}
Any plans on the FPP? It would be really nice and useful to have.
As for traps and double errors, feel free to ask. I don't know if I have
all the answers, but I might be able to figure them out. Besides, I also
have access to one (or three) functional 11/70 machines.
> On Performance: The design runs at 50 MHz. I've run parts of the
> Byte Unix benchmark on the FPGA systems. Given that the FPP is only
> emulated by the 2.11BSD kernel it makes only sense to look at the integer
> benchmarks. The Dhrystone benchmark 'dhry2reg' gives about '11500 lps'
> on both boards. For comparison see Michael Schneiders page
> http://www.vaxcluster.de/mambo/bench2.php?mach=pdp11 which gives about
> '830 lps' for a 11/53. There is little Dhrystone difference between
> the two boards despite the very different memory access times. The
> 8 kB cache with 32 bit cache lines really helps on the NEXYS2 board.
The 11/53 is a really slow machine. Not that helpful to compare with.
But you seem to push a nice number anyway.
But 50MHz... The J11 in an 11/9x machine runs at 20 MHz, which would
suggest that you should only be able to push about 2.5 times the
performance, unless you do some more clever tricks.
(The 11/9x machine runs all memory as cache.)
> I'm in the middle of homogenizing some internal interfaces and of some
> code cleanup, also the backend handler needs a re-write in C++ (currently
> perl). When that's done I'll make the whole package (VHDL sources, test
> benches, backend) available on 'OpenCores'.
>
> Finally a comment to Dave Mitton's remark
>> > Now what would be really cool would be to make 4 CPUs and re-create
>> > an 11/74 quad.
>> > http://www.miim.com/faq/hardware/multipro.html#castor
*Sigh* I wonder if anyone is ever going to be able to set Bruce Mitchell
right on his facts.
CASTOR didn't disappear. I talked with Dave Carroll about it not so many
years ago, and the machine was still around, altough at that time with a
hardware problem causing it to be down.
(There are plenty of other small errors on Bruce Mitchells pages as
well, but from my small dealings with him in the past, he don't seem to
be interested in listening.)
> The reason why I picked a 11/70 and not a J11 as target is because my
> goal is a 11/74. I've implemented the IIST already and tested against
> the IIST Diagnostic I could find in XXDP (riiab0). A dual core will
> fit into a single xc3s1200e of the NEXYS2 board. The work needed is
> quite clear and doable (changes on cache, mmu, and cpu core for asrb).
> However, I've no plans to implement the CIS, so it will always be a
> subset of a 11/74. But for sure fun to do and run.
You do know that the J11 is already designed for mP usage, except that
DECs testing of that was even more secret than the 11/74?
The 11/74 definitely don't need CIS though. I don't think any prototype
11/74 even had it. It was planned for the next generation of the
machine, that never got built. Anyway, it was to be an option for the
CPU as far as I know. Just as FPP.
IIST is needed for RSX to be happy (the only OS that supports the
11/74), and you also need to implement parts of the memory bus behaviour
with interlocking. You can ignore the MK11 box CSRs, even though it will
look a little funny, but you do need separate DL11s for each CPU core,
along with the rest of the I/O bus, or else things will probably not
work. The 11/74 is a shared memory machine, but not shared I/O bus.
Johnny
More information about the cctalk
mailing list