<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Wed, 24 May 1995 14:48:46 +0200
From   : ddhlo@...
Subject: Paired instruction fetch

Hi All!

I hope this doesn't get trivial, but I'm still working on the 6502 emulator, 
and have finally got the thing running. For testing I've used the programs 
below.

Original benchmark program (256^3 loop) for testing 6502 emulators:

NMOS:

 00 01         a9 00         LDA #0
 02 03         a2 00         LDX #0
 04 05         a0 00  .loop2 LDY #0
 06            88     .loop  DEY
 07 08         d0 fd         BNE loop
 09            ca            DEX
 0a 0b         d0 fa         BNE loop
 0c            a8            TAY
 0d            88            DEY
 0e            98            TYA
 0f 10         d0 f3         BNE loop2
 11            60            RTS

I have modified the benchmark program to allow for one CMOS instruction 
(DEA=decrement accumulator).

CMOS:

 00 01         a9 00         LDA #0
 02 03         a2 00         LDX #0
 04 05         a0 00         LDY #0
 06            88     .loop  DEY
 07 08         d0 fd         BNE loop
 09            ca            DEX
 0a 0b         d0 fa         BNE loop
 0c            3a            DEA
 0f 10         d0 f7         BNE loop
 11            60            RTS

Now - when executing the CMOS program on both my architectures (SIF: 
one-by-one fetching, PIF: selected opcodes executed in pairs (like 
DEX:BNE<n>)), I get these times:


Host CPU (DOS):      Single Instruction Fetch       Paired Instruction Fetch 
                        (SIF architecture)            (PIF architecture)
80486DX-33MHz		27 seconds			11 seconds

That's a huge performance improvement... But then again - this program does 
nothing more that performing paired instructions. Does anyone have a more 
generic method?

I have dropped my initial idea of having a 4byte pipeline for opcode
fetching.

Please note I've disabled 6845, VIAs and IRQ/NMI. This is a stripped 6502 
emulation.


P.S: Does anyone know where I can pick up David Alan Gilbert's BBC emulator 
for Windows 95?

It's stated in his recent e-mail to the list, that binary examples should be 
inthe zipped file - but I onlyu get source code then unzipping it...

I'm interested in:

BEEBWIN.EXE	- Uses WinG
BEEBNWG.EXE	- Doesn't use WinG

Thanks in advance.



Lars



<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>