Strobe’s design engineers report that the Osprey/MP is now passing the full complement of diagnostics used to qualify the Osprey.
Mike Penk, tasked with the design and implementation of an emulation of the Osprey, is quite pleased. He issued the following table comparing the execution times of a few sample instructions running on the Osprey/MP with the same instructions running on the 36Mhz Osprey/Qxp.
The numbers are dramatic.
Instruction | PDP 11/93 | Osprey/QXP | Osprey/MP |
---|---|---|---|
Mov rx,ry | 193 | 55.3 | 4.05 |
Add rx,ry | 192 | 55.9 | 5.62 |
Mov #n,rx | 384 | 111.8 | 5.55 |
Add #n,rx | 384 | 110.6 | 6.36 |
Mov 6(pc),rx | 933 | 267.2 | 9.23 |
Add 6(pc),rx | 925 | 269.0 | 9.82 |
Mul #n,r1 | 4200 | 1393.8 | 22.12 |
Ash #s,r1 | 1440 | 884.2 | 14.64 |
Ror rx | 190 | 111.2 | 13.22 |
Times in nanoseconds
Hardware: Osprey/Qxp 36MHz
Software: Osprey/MP executing on a 2.4 GHz Pentium 4
Mike’s charge was to emulate the Osprey Co-processor itself, such that when it came time the team could simply integrate the existing Windows/NT virtual I/O. The Strobe team is now well into that final task.
“One of the neat things about the Osprey design is its multi-processor, multi-threaded, nature,” says Penk. “We realized that the P4’s dual CPU capability might enable us to maintain the same separation of I/O and non-I/O processing we have in the Osprey, giving us significant throughput advantages.
“The question was: how was Windows NT going to handle those threads and what would it take to support the communication we need between the two halves of the emulation?
“But when I got deep enough into Windows task and thread management, I discovered that, at least in Windows NT, Microsoft engineers had made all the right decisions and that we were going to be able to use the dual CPUs the way we wanted. Now we simply have to integrate the Osprey/MP with the virtual I/O and Windows/NT will do the rest!”