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