From: Martin Brown on
On 21/05/2010 10:33, JW wrote:
> On Thu, 20 May 2010 18:19:18 -0700 (PDT) MooseFET<kensmith(a)rahul.net>
> wrote in Message id:
> <66d63767-f13a-4637-afe7-7b2258ac5641(a)42g2000prb.googlegroups.com>:
>
>> Actually, the 8086 did go slower than that. A jump instruction on an
>> 8086
>> took IIRC 21 clocks and the clock rate was only about 3MHz max.

IIRC 18+EA for complex jumps and lots of other instructions.

Fastest was JMP SI at about 11 cycles. These days speculative execution
and multiple arithmetic units makes cycle counting pointless.

> IIRC, the Intel 8086 topped out at 10MHz. AMD and NEC may have had faster
> versions.

NEC V20 & V30 had improved microcode by peephole optimisation ISTR done
mostly by a couple of fairly talented interns - obvious reverse
engineering infringements but worthwhile for a 10% performance gain. I
had one of the first Epson PCs in the UK which was NEC V30 based.

Regards,
Martin Brown
From: MooseFET on
On May 21, 2:33 am, JW <n...(a)dev.null> wrote:
> On Thu, 20 May 2010 18:19:18 -0700 (PDT) MooseFET <kensm...(a)rahul.net>
> wrote in Message id:
> <66d63767-f13a-4637-afe7-7b2258ac5...(a)42g2000prb.googlegroups.com>:
>
> >Actually, the 8086 did go slower than that.  A jump instruction on an
> >8086
> >took IIRC 21 clocks and the clock rate was only about 3MHz max.
>
> IIRC, the Intel 8086 topped out at 10MHz. AMD and NEC may have had faster
> versions.

Yes, at least later ones, could go a lot faster than 3MHz.
The completed system even with the 10MHz CPU clock still was
extremely slow on a jump instruction. It had a prefetch buffer
that would hold the next instruction or two. On a jump, it
took a lot of clock cycles to change CS:IP and then a bunch
more to do the (CS*16)+IP and then about 1uS to get the word
from the external memory.
From: MooseFET on
On May 21, 4:43 am, Martin Brown <|||newspam...(a)nezumi.demon.co.uk>
wrote:
> On 21/05/2010 10:33, JW wrote:
>
> > On Thu, 20 May 2010 18:19:18 -0700 (PDT) MooseFET<kensm...(a)rahul.net>
> > wrote in Message id:
> > <66d63767-f13a-4637-afe7-7b2258ac5...(a)42g2000prb.googlegroups.com>:
>
> >> Actually, the 8086 did go slower than that.  A jump instruction on an
> >> 8086
> >> took IIRC 21 clocks and the clock rate was only about 3MHz max.
>
> IIRC 18+EA for complex jumps and lots of other instructions.
>
> Fastest was JMP SI at about 11 cycles. These days speculative execution
> and multiple arithmetic units makes cycle counting pointless.

Actually, you can still estimate the time it takes to do a routine
by cycle counting. It now takes a lot more work to get very accurate
but you can just assume that the cycles to fetch or the cycles to
perform the operations will need to happen and take the larger of the
two numbers over spans of about 10 instructions. If the processor
does parallel instructions just divide by the number it can do in
parallel.

Why would anyone bother doing this you may ask. You can quickly
throw
away the obviously bogus ideas for how to make a routine faster before
actually testing them. These days, the table lookup almost always
loses to the calculation methods on the basis of bus cycles.

> > IIRC, the Intel 8086 topped out at 10MHz. AMD and NEC may have had faster
> > versions.
>
> NEC V20 & V30 had improved microcode by peephole optimisation ISTR done
> mostly by a couple of fairly talented interns - obvious reverse
> engineering infringements but worthwhile for a 10% performance gain. I
> had one of the first Epson PCs in the UK which was NEC V30 based.

I had a machine with IIRC, the V20. It was the 8088 look alike. I
put
it in the first "PC" I had. It did make the machine just a little
faster. I wrote a program that took about an hour to finish. The NEC
chip got it done in about 10% less time.

That machine had a 9Meg hard drive in it. It was supposed to be 10Meg
but only about 90% of the tracks worked.


>
> Regards,
> Martin Brown

From: Jan Panteltje on
On a sunny day (Thu, 20 May 2010 18:25:26 -0700 (PDT)) it happened MooseFET
<kensmith(a)rahul.net> wrote in
<f3eeb13b-9ff4-4b6e-93cf-1b629e942e60(a)k17g2000pro.googlegroups.com>:

>> The PIC 18F has an 8 bit hardware multiplier
>> So for A7:A0 x B7:B0 -> C15:C0
>> in one instruction
>
>8052 has a MUL AB
>
>
>> It also has very nice compares:
>> cpfseq �compare register F with accumulator, skip next instruction if e=
>qual
>> spfsgt �same, but less than
>> cpfslt �same, but greater then
>
>8051 has the CJNE A,#5,Line500 and a DJNZ R2,Line600

I know, I wrote a 8052 assembler:
http://panteltje.com/panteltje/newsflex/a52-2.0.lsm

>For many operations, a test and jump is just one instruction

The original 8051 was powerful, but did not have a lot of special I/O,
none actually.
I think these days they have versions with ADC and stuff.
Can be nice if you invested time in that architecture.
Hope it has on board FLASH too.

From: Jan Panteltje on
On a sunny day (Fri, 21 May 2010 12:43:13 +0100) it happened Martin Brown
<|||newspam|||@nezumi.demon.co.uk> wrote in
<hluJn.15453$jt.6454(a)newsfe04.iad>:

>On 21/05/2010 10:33, JW wrote:
>> On Thu, 20 May 2010 18:19:18 -0700 (PDT) MooseFET<kensmith(a)rahul.net>
>> wrote in Message id:
>> <66d63767-f13a-4637-afe7-7b2258ac5641(a)42g2000prb.googlegroups.com>:
>>
>>> Actually, the 8086 did go slower than that. A jump instruction on an
>>> 8086
>>> took IIRC 21 clocks and the clock rate was only about 3MHz max.
>
>IIRC 18+EA for complex jumps and lots of other instructions.
>
>Fastest was JMP SI at about 11 cycles. These days speculative execution
>and multiple arithmetic units makes cycle counting pointless.
>
>> IIRC, the Intel 8086 topped out at 10MHz. AMD and NEC may have had faster
>> versions.
>
>NEC V20 & V30 had improved microcode by peephole optimisation ISTR done
>mostly by a couple of fairly talented interns - obvious reverse
>engineering infringements but worthwhile for a 10% performance gain. I
>had one of the first Epson PCs in the UK which was NEC V30 based.
>
>Regards,
>Martin Brown

I still have an unused V20 or V30 chip, cannot remmeber which one, somewhere.
In case anyone stil runs one and needs one :-)