26 January 2021, 12:29 | #1021 |
Registered User
Join Date: Jan 2017
Location: London, UK
Posts: 433
|
It seems the real reason may be lost to history, it was always my understanding that the reason the 8086 was chosen for the original IBM-PC was that IBM already had a contract with Intel to supply the processor for another product, so using it would keep cost and paperwork low. The IBM-PC project was about keeping the design as simple as possible without any custom parts (and I imagine new supplier contracts).
|
26 January 2021, 12:43 | #1022 | |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,351
|
Quote:
Why, they didn't even use the "more powerful" 8086 for original PC 5150. They chose the 8088 instead. |
|
26 January 2021, 12:46 | #1023 | |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,053
|
Quote:
There was a document written by an ex-IBM exec, who was related to the project, describing what was going on. Something like "IBM's top-secret Florida project", I don't remember exactly any more, it's been over 10 years since I read it. |
|
26 January 2021, 13:25 | #1024 |
Registered User
Join Date: May 2013
Location: Grimstad / Norway
Posts: 852
|
The story I have read is that IBM dropped the 68K because it wasn't available from multiple suppliers.
Just looking at the timeline indicates that the 68K was plenty available in time for the original PC design? |
26 January 2021, 14:19 | #1025 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,436
|
Apparently there were several reasons. There's a nice post quoting the original PC designer's reasons I found: https://yarchive.net/comp/ibm_pc_8088.html
Note that one of the reasons listed is corroborated by other accounts I read: it wasn't so much that the 68000 wasn't ready, but rather that some of the support chips/software wasn't ready/not in great shape. Litwr is undoubtedly going to be delighted that the man behind the design of the first PC (Lewis C. Eggebrecht) agrees with him the 68000 is not as memory efficient. On the other hand, he might be less happy to hear that the same man agrees the 68000 was faster than the 8086/8088. He might also not be as happy to hear that the ultimate overriding reasons stated by the man were basically cost and IBM feeling the need to not choose a design based on CPU's others already used for such systems (they wanted to be seen as leaders and not followers). They did both of these, rather than choosing based on what would have been the best technical option Last edited by roondar; 26 January 2021 at 14:33. |
26 January 2021, 14:52 | #1026 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,302
|
Quote:
That - namely cost being the primary reason - fits to the information I received when I worked at the IBM research lab in Germany. |
|
27 January 2021, 18:02 | #1027 | |||||||||||||||||||||||||
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
Quote:
Quote:
Thank you very much but in our case I just wanted to show the 68k code which is exact equivalent to the initial ARM code. Quote:
Quote:
Quote:
Quote:
I will be happy if you can help me to optimize Xlife-8 code for the 68k. I am just seeking the truth. I will be very happy if you find a way to make Xlife-8, for example, 10 times faster, which would show that the 68000 is faster than the 80486. It can be a sensation for all the world and you can become a known genius of programming! Indeed even 10% performance gain for the 68000 would be a very worthy result, the `generate' routine is only about 2 KB and it has many parts which repeat themselves, so it is about work with approximately 200 lines of code. It is difficult, large code requires too much time. However, it may be seem that you just seek a way not to prove your points. Sorry, let try this https://archive.org/stream/byte-maga...amily_djvu.txt Quote:
Quote:
Quote:
The inability of the 80286 to exit from protected mode was intended. People thought that the 80286 would use protected mode OS, why switch back to real mode then? But DOS and Bill Gates made a bit different history. However more than 20 years ppl don't need to switch back to real mode. So Intel engineers were right, they just were too haste. Quote:
Quote:
Quote:
Indeed I made a type, we need STR R2,[R1], but you made an error. Quote:
Quote:
Code:
add r0,r0,r1,lsl 2 stmdb r0!,{r2-r5} I can also make a task for you. Code:
stmia r0,{r1-r3} stmdb r0!,{r4-r7} ldmia r0!,{r1-r7} Quote:
Quote:
They show that the Quadra 700 with the 68040@25MHz has 0.89 CPU performance value on Speedometer 4.02 The same computer running with the PPC@50MHz has 2.59 CPU performance value on Speedometer 4.02 So it is easy to conclude that the PPC is about 45% faster than the 68040 at the same frequency. I know almost nothing about the PPC so I can't explain this. For me, this is just a fact. I know ppl who played DOOM on the A1200 but they used the 68060 card. Quote:
You know I want to port Xlife 7 to the Amiga but I need some wrapper which allows to use Amiga system functions instead of Xlib functions. Original Jon Bennet's algorithm is improved there and a lot of new algorithms added, a super-impossible fast hash-algorithm too. IMHO VideoEasel doesn't use Xlife algorithm, does it? Sorry I couldn't make a conversion from Xlife format to VideoEasel format. I select `import Xlife...' from menus, AREXX starts working, then it stops, but I can't find any result. Would you like help me a bit with the conversion? Quote:
BTW Bill Mensch has said recently that he can make the 6502 at 20 Ghz! IMHO it is quite enough even for Quake. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
|||||||||||||||||||||||||
27 January 2021, 18:11 | #1028 | |
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
@meynaf http://web.eece.maine.edu/~vweaver/p...l_document.pdf shows that the 68k and x86 both have good code density.
http://web.eece.maine.edu/~vweaver/p...09_density.pdf - confirms this Quote:
|
|
27 January 2021, 19:14 | #1029 | |||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,302
|
Quote:
If you like, I can send you the sources of "Lightspeedlife", and you can implement your own automaton. Maybe that is identical to XLife, but I do not recall. This was a long time ago. There was an improved LIFE algorithm by Tomas Rockiki (sp?) which uses a "boosting trick", i.e. it recalls which pattern evolves into which other pattern, and then gains even more speed by not having to calculate on a per-cell level. I haven't implemented that on VE, though in principle it is all possible. Quote:
Whatever it is - all the XLife automata have been converted already. Open "LightspeedLife" as "App", then "Open Brush". This will give you all the converted XLife patterns as brushes. But there is so much more to discover than "LIFE". There are many experiments in the guide you may want to try. They come from multiple sources, most of them from the Toffoli&Margolus book, but multiple others from "Scientific American". Sorry for the bad English, it was a long time ago I wrote this manual. Quote:
Quote:
Quote:
|
|||||
27 January 2021, 19:24 | #1030 | |||||||||||||||||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,351
|
Quote:
http://eab.abime.net/showthread.php?t=85855 "This example is a bit too big. I am not sure that I can afford to have time enough for it." Now you have the time or not ? Quote:
Perhaps you need to be recalled that the code was working with 32 bit data on the 68000, something the 8086 can not do directly, especially not faster. Quote:
I'm afraid it's your taste against anybody else's taste here - and also hard facts. Quote:
Quote:
Quote:
If it's so easy, show us several. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Yes, a/b is more accurate. But the point is - 3 instructions are enough to do that on 68k. Quote:
Quote:
Quote:
Quote:
Besides, don't trust random internet pages too much. Quote:
Now i'd be curious what cpu is required to play Superfrog on the PC. Quote:
Quote:
|
|||||||||||||||||||||||
27 January 2021, 21:52 | #1031 | |||||||
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,436
|
I missed something on page one I wanted to comment on:
Quote:
--- Now, continuing with my reply to the last post: Quote:
Quote:
Quote:
Quote:
For instance, going onto a Dutch speaking forum, opening a thread "Details over het Nederlands"* and then spend that thread to basically complain about the all missing features from the German language in the Dutch language and all the bits of the Dutch language you don't like wouldn't really score very highly either. *) For the non-Dutch here, that means "Details about Dutch", like the thread title here. Quote:
(note: I've not literally quoted all of it from the threads/blog because this post would become gigantic if I did so)
From this thread: "The code density of the 68000 is slightly worse than for the 8086. My conclusion is the x86 has slightly better code density in real mode and slightly worse in protected mode than the 68k."
Perhaps I should've phrased it slightly differently, but still: your blog post spends an inordinate amount of time to point out that while the 68000 was faster than the 8086 it was actually still too slow for "advanced systems", despite the fact that advanced systems in fact did use the 68000 when it was still new. It also makes claims that the later revisions were all either faster-but-actually-slower (68020 vs the 286 and 68030 vs 386) or slower outright (68010/68040/68060). Most of that has been contended in the previous thread (where you made the same claims), which had plenty of evidence that the 68000/68020/68030/68040 were not as slow as you claim them to be.
Again, your blog post is filled with statements and claims about how contrived and complicated the MC68K series instruction set is and how x86 was basically better. True, you do end by showing some advantages, but the tone is quite clear. Similarly, the old thread was filled with your claims about how superior the x86 instruction set was. In both the blog post and previous thread you actually end up using superlatives when talking about x86 instructions (but somehow never manage to do so when talking about 68K instructions even though the blog post is supposed to be about that CPU and not the x86).
Your conclusion of your blog post is basically that the x86 was a better CPU with fewer flaws. It's dressed up nicely, but that is the clear message.
You spend many, many posts on this in the old thread and are still defending 64KB segmentation now. Your blog post also complains that Motorola made 68020 owners pay to be able to access more memory than they needed, implying that the 80286 model was way better. It also details how you feel address registers are actually worse than segment registers in some way.
Again, you spend many posts on this and also wrote on about the lack of usefulness of relative code under MC68K UNIX (which is not actually true).So much for my "overt lies" then Quote:
Last edited by roondar; 27 January 2021 at 23:54. Reason: Corrected a few minor things / added one detail |
|||||||
27 January 2021, 21:58 | #1032 | |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,053
|
Quote:
Result: r4->r1, r5->r2, r6->r3, r7->r4, r1->r5, r2->r6, r3->r7, r0 += 3*4. That's it? Pretty much the same thing in M68K then: Code:
movem.l d1-d3,(a0) movem.l d4-d7,-(a0) movem.l (a0)+,d1-d7 |
|
27 January 2021, 22:34 | #1033 | |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,436
|
Quote:
For example:
|
|
27 January 2021, 23:25 | #1034 |
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,157
|
A somewhat better measure of CPU performance is DMIPS - a measure of a real-world workload (albeit one that's not all that representative of actual computing tasks) scaled to be directly comparable with one particular VAX machine, which is nominally considered to be capable of 1 MIPS.
Dividing the DMIPS score by the CPU clock frequency gives a directly comparable performance score for different CPUs. A number of CPUs are given such scores here: https://en.wikipedia.org/wiki/Instructions_per_second The D IPS per instruction cycle column (equivalent to DMIPS per MHz) is the interesting one. Of course, to be a valid comparison each CPU has to be running from zero-wait-state RAM and have the code compiled with an equally "good" compiler - and while references are given for each score, it's not clear the conditions under which they were obtained - so this is still a flawed comparison. But it's much more valid than comparing raw instructions per second. It also takes no account of what can be achieved by a skilled assembly language coder for each CPU. |
07 February 2021, 10:02 | #1035 | |||||||||||||||||||||||||||||||||
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
So LightSpeedLife algo rather differs from Xlife algorithm. Quote:
Quote:
Quote:
Quote:
Quote:
The IX/IY registers are terribly slow but they can slightly help if we have register starving in code. Quote:
Quote:
Quote:
Sorry, it was about the 80286 not the 8086 - http://eab.abime.net/showpost.php?p=...&postcount=764 Quote:
Quote:
http://www.alfonsomartone.itb.it/aunlzr.html it has a cite Quote:
We can organize a contest there. Quote:
You are welcome to help with Xlife-8 optimization. It would be great if we find a way to make the Amiga port faster. It seems you know how to handle the Amstrad CPC6128 so you can help with it too. Quote:
Knowledge is endless. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Why? IBM wanted a cheaper CPU but Moto's refused to make a CPU affordable for masses. Moto wanted to be Elite but forgot about MMU and FPU. Quote:
Quote:
Quote:
Quote:
And you completely missed my point about the 8086. It was a mainstream trend to tell that the 68000 was much better than 8086. My analysis shows that it was generally only slightly better but still better. So you words about the worse and even more worse 68000 is your another overt lie. All your next arguments resemble me a cheap and bad trick when a man shows a side of a coin and says that the other side is the same. Quote:
Quote:
Quote:
But it is a really fantastic. It was implemented in 1982 and modern processors still have its timings! The 68020 and 68030 have 2 times slower division. So I have had rights to write such words. Quote:
Quote:
Quote:
Quote:
|
|||||||||||||||||||||||||||||||||
07 February 2021, 10:04 | #1036 | |
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
meynaf will be disappointed that the 6502:Z80 performance ratio is close to 3 there. Some 6502 fanatics still believe that 3 or even 4 is a correct number for this case. The scores for the x86 are rather crazy, they show that the 68030 is faster than 80486 - it is clearly absurd. They base data from for this DMIPS table contradicts data from http://www.roylongbottom.org.uk/mips.htm IMHO they used different MIPS for different architectures. Wikipedia reflects common misconceptions quite often. |
|
07 February 2021, 11:27 | #1037 | |||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,302
|
Quote:
Quote:
Quote:
The intels had a very unorthogonal programming interface such as not every register being able to perform every operation, which complicated code generation a lot. Despite the unorthogonal segmentation addressing which required all types of weird workarounds in higher programming language - "far pointers and near pointers" - an nonsense like this the 68K never required. |
|||
07 February 2021, 11:29 | #1038 | ||||
Registered User
Join Date: Mar 2012
Location: Norfolk, UK
Posts: 1,157
|
Quote:
Quote:
Quote:
Quote:
|
||||
07 February 2021, 14:48 | #1039 | |||||||||||||||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,351
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Maybe, but what can be read in your blog is just your opinion, it's not knowledge. Quote:
Quote:
Quote:
Are you able to take random DOS game, disassemble it, and reassemble it so that it still works ? Quote:
Quote:
Quote:
Quote:
Yes this is what is called a shortcoming - and a rather big one. Quote:
Besides, a lot of data is 16-bit even today. That's usually a pair of 32-bit instructions, so no big deal. Ever heard of the thing that's called multi-precision ? Quote:
So what does it prove ? That 50Mhz PPC is faster than 25Mhz 68040 ? Quote:
Quote:
Quote:
Quote:
Quote:
Also perhaps 68030 is really faster than 80486 You have to be aware that benchmarks comparing different cpu families use compilers. And 68k compilers are notoriously bad. So in real life, yes, 68030 can be faster than 80486 because it is better used. (I'm not saying, however, that it's what these benchmarks show - they're probably quite wrong indeed.) |
|||||||||||||||||||||
07 February 2021, 17:37 | #1040 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,302
|
Concerning the "quirks" litwr mentions, I read the blog post, though I believe that these "quirks" are rather misunderstandings that arise if you come from a different architecture, or failing to understand the design ideas behind them.
So, the reasons why there are two carries (C and X) and why "MOVE" clears the C register are exactly the same: The purpose here was to have a conditional branch directly behind a "MOVE" such that it works consistently with an implicit "CMP #0" upfront. In order to make unsigned comparisons work consistently in this case requires clearing C, and that again requires an additonal carry, X namely, so that ADDX can be used interleaved with other instructions (such as MOVE) in between. Thus, one is the consequence of the other. The same applies to the two "left shift" instructions, LSL and ASL. The purpose here is to have an orthogonal instruction set, separated into "signed two's complement instructions" which is covered by ASL and ASR, and the V and N flags, and "unsigned arithmetics", covered by LSL, LSR, and the C flag. Thus, one would need to understand a little bit the philosophy behind this processor, providing dedicated instructions and flags for "signed", and another separate set for "unsigned", separate flags, separate instructions. That ADDX and SUBX (and NEGX) does not support all instruction modes I haven't really seen a drawback as multi-precision arithmetics is not as frequently used as this would be necessary. The same goes for its decimal counterparts, ABCD and SBCD (and NBCD). These belong to a "special purpose instruction class" you rarely need, and for that number of addressing modes is reduced as they would otherwise cover too much space in the instruction set. Remember, the 68000 is a 32bit machine, and thus an "add with carry" is much less useful on the 68000 than it was on 8-bit machines where you often needed to add with carry. Thus, that the "carried adds" were moved to the "special purpose" instruction set is the consequence of its increased bitwidth. Concerning indexed instructions, you need to understand that the 68K uses a completely different programming paradigm. This is comparable to the different purpose of index registers on the 6502 and the 6800 (or the Z80). On the Z80 and 6800, index registers are "pointers", and offsets displace them. On the 6502, the address comes from the Z-page, and the offset comes from the index. On the 68K, instead, you operate with pointers (the address registers), and you rarely use indices. Instead, you modify the pointers (the address registers) and use them to move around in an array. Arrays through indices and pointers are rarely useful. Last but not least, you misunderstand making "move from sr" priviledged. It would not have worked to replace its opcode with one that moves only the ccr, or "fakes" the move from sr. In fact, this would have been a disaster. The purpose was to let the 68010 operate in a "virtual machine" (something the intel's only learned a lot later), and thus, it would have been the purpose of the Os to determine what the state of the virtual machine should have been, and thus what the "fake state" of the machine bits of the "faked status insructions" should be, then emulate the instruction. This design principle made it necessary to make "move from sr" priviledged, and it also offered the right workaround, namely to have the Os intervene with the host program, and emulate the right state. In fact, on Amiga, "Decigel" was such a program, though it was rarely needed since it was clear from day 1 that you shouldn't read directly from the ccr. Instead, if you want to test from the ccr, use the branch instructions. The processor state is not suited to pass state information around on 68K. Thus, unlike on the 6502, for example, were you would frequently push processor states with PHP, on the 68K this principle of providing or passing information is discouraged. Instead, test the condition directly, or manipulate it with MOVE or TST. Other design flaws such as the slowness of CLR were fixed in later versions of the processor. MULx and DIVx became faster, as well. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Any software to see technical OS details? | necronom | support.Other | 3 | 02 April 2016 12:05 |
2-star rarity details? | stet | HOL suggestions and feedback | 0 | 14 December 2015 05:24 |
EAB's FTP details... | Basquemactee1 | project.Amiga File Server | 2 | 30 October 2013 22:54 |
req details for sdl | turrican3 | request.Other | 0 | 20 April 2008 22:06 |
Forum Details | BippyM | request.Other | 0 | 15 May 2006 00:56 |
|
|