Tom:

Often when you say something on this forum, I am reminded of a stanza from the 
Tom Petty song, "Into the Great Wide Open."  The stanza is "Rebel Without a 
Clue."  I'm sure you think the same of me.

>> In fact, the new 3.3 GHz i5 CPU runs about 10 times faster than the
>> 33 MHz 386 did, not more than 100 times like you would expect.
>
> this doesn't make sense AT ALL.
> even in your own source,

> Generic  AMD    AM386DX     33   334
> Unknown  Intel  Pentium-3  650  4611
> Generic  AMD    K6-2       350  4780

> you document that an AMD k6-2 350 MHz is 15 times faster then a 33
> MHz 386 CPU. And we all KNOW that an Intel i5-4590 running at 3.30
> GHz is faster then AMD K6-2.

Not true.  You just ASSUME it must be faster.  When you actually do a real-life 
test, it isn't.  And I'm fully aware that it doesn't make any sense -- which is 
exactly why I'm pointing it out.  And I will repeat my earlier statement -- 
there is something VERY wrong going on here.

The test I ran said that my 3.3 GHz i5 (with the Cache enabled) ran at about 
3400 Slowdown Units (SU's), which is about 10 times faster than the AMD 33 MHz 
386, and WAY SLOWER than the 350 MHz AMD K6-2.

I know you don't believe it and that you don't think anybody else should 
believe it either.  You think I must be doing something wrong, but I'm not.

> for those who want to search themself, search the source for
> 'WasteLoop'.
>
> it all boils down to some garbage (does nothing sensible) code,
> including
>
>  MOV  CX,2               ;Do two bits
>  REPE CMPSB              ;Compare the string to itself
>  ADD  AL,220             ;Give AL a number
>  ADD  AX,3456            ;Give AX a number
>  MOV  BX,DummyVar        ;BX=address of DummyVar
>  MOV  DummyVar,AX        ;Store it in DummyVar
>  SUB  AX,ES:DummyVar     ;AX=0
>  XLATB                   ;AL=[BX+(unsigned)AL]
>  SAL  BX,CL              ;Multiply BX by 2, CL times
>  MOV  CL,3               ;Divide by 3
>  SAR  DummyVar,CL        ;Signed divide DummyVar by 2, 3 times
>  SBB  AX,8               ;Subtract with borrow
>  AAM                     ;ASCII adjust after multiply
>                           (AL/10:AH=Quo,AL=Rem)
>  DAS                     ;Decimal adjust after subtraction
>  MOV  DX,21h             ;Do an
>  IN   AL,DX              ;  IN
>  POP  CX                 ;Restore the loop counter
>  DEC  CX                 ;Decrement it
>  JZ   WasteExit          ;If it's 0, we're done
>  JUMP WasteLoop          ;If it's not, do it all again
>
>  looks innocent enough. the problem child is
>  IN   AL,DX              ;  IN

Does the fact that it's called "WasteLoop" or what the documentation for 
SLOWDOWN says or what the comments in the source code says mean anything to you 
at all?  The code in nonsensical because it's sole purpose is to waste the 
CPU's resources by having it do something that provides no useful output -- it 
just wastes time so the CPU can't do anything truly useful.  THAT'S WHAT IT'S 
DESIGNED TO DO.  That's how it slows the computer down.  It performs its 
function perfectly well.

> and the fact that the 'IN'-bus doesn't run significant faster then it
> did in 386's days (there is a reason modern disks are accessed with
> (U)DMA, not IN). the speed depends on the chipset and the actual port
> address, but is more like 10 MHz then 3 GHz.

And I/O Port 21h has nothing to do with disk access or UDMA.  And the purpose 
of the code is to slow things down.  So, your point is ...?

>> I then ran a second test where I disabled the cache on the CPU (you
>> can do this with my CPUCACHE program which is included with
>> SLOWDOWN).  This is a more "apples-to-apples" comparison of the
>> _actual_ CPU speed than the original test with the cache enabled.
>
> it's not. almost EVERYBODY knows that GHz CPU's just don't make sense
> without cache, because it is always waiting for the next instruction
> coming from memory. and memory access times are basically unchanged
> for the last 30 years at 60-100 ns. so a modern CPU without cache
> spends all the time waiting for CPU instructions coming from memory.

All CPUs since the 486 have caches.  As my ACTUAL test results indicate above, 
a 350 MHz AMD K6-2 runs WAY faster than my 3.3 GHz i5, and they both have 
caches.

I KNOW you don't believe the results of my tests because they don't make any 
sense to you, and they don't make any sense to me either.  BUT THEY ARE STILL 
TRUE.  Denying real-life test results or just making excuses for why they don't 
make any sense or declaring the test algorithm to be "nonsense" isn't going to 
help your case.

>> When I did this test, the computer ran almost exactly the same speed
>> as the 33 MHz 386 (it was about 3% faster, not 10,000% faster as
>> "logic" would dictate).
>
> the is exactly no "logic" in your argument.

A 33 MHz AM386DX CPU (which doesn't have a cache) runs at 334 Slowdown Units, 
and a 3.3 GHz Intel i5 with the cache disabled runs at almost exactly the same 
speed.  That's just the way it is.  What exactly is illogical about that?

Believe me, Tom, I understand exactly where you're coming from.  The problem is 
that your "logic" doesn't match reality.

>> Let me ask you a few questions.  One of the things I said was that
>> the main reason modern CPU's seem so fast is because of "tricks"
>> like pipelining and caching,
>
> and read ahead caching, write back buffering, and more

Which don't seem to affect the speed ACCORDING TO THE REAL-LIFE TEST RESULTS.

>> and you seem to indicate that you don't
>> think that is true.
>
> no. that's true.

It IS true, even though you don't believe it.  All you've done here is declare, 
"I know it can't be true because it doesn't make sense."  If you performed the 
test yourself you would see, and you probably still wouldn't believe it.

>> Would you even _consider_ running a modern OS
>> on a CPU with the cache disabled, when the actual, verifiable data
>> shows it would run about the same speed as in the 386 days?

> I'm not stupid.

No, you're not stupid.  But I think you might be afraid of the truth.

>> The next set of questions relate again to what I mentioned
>> previously.  What if modern CPU's were super high-speed 386-class
>> CPU's?  That is, what if we applied modern fabrication techniques to
>> 386 era technology -- how fast would the CPU's actually be?  Let's
>> assume we could fabricate a 3.3 GHz 386-class CPU.  Do you think it
>> would be 10,000% faster than a 33 MHz 386?
>
> nope. unless you can bring 10,000% faster memory. else you need a
> cache.

Let me repeat what I said to Rugxolo in a different response to this sub-thread.

This is something much more serious than a "tradeoff" or a 
"regression".  My new i5 CPU appears to be spending _at least_ 99% of its 
resources NOT processing OpCodes and NOT accessing the cache (because there 
isn't one).  And the problem is blamed on "sub-optimal code".  I don't know 
what the CPU is doing with all those resources it has, but I do know what it's 
NOT doing.  I do know that what's going on inside a CPU is very complicated.  
Call me naive, but I always thought 
the primary purpose of a CPU was to process OpCodes.  Silly me.

>>  I think it probably
>> would be -- I certainly think it would be WAY faster than my 3.3 GHz
>> i5.

> nope.

Even though a 350 MHz K6-2 is WAY faster than my 3.3 GHz i5?  And again, I know 
it doesn't make any sense, but it's still true.

As far as I can tell, the Emperor has no Clothes.


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to