07 February 2021, 17:55 | #1041 | |
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
|
|
09 February 2021, 10:24 | #1042 |
Registered User
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
|
While reading /. today I found a link to our friends Intel way back in 1982: http://www.bitsavers.org/components/...port_Oct82.pdf
No code included; I don't know if one can find some with a bit of google-fu. |
09 February 2021, 23:45 | #1043 | ||||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
They quite rightly point out that:- Quote:
But as we all know, the original IBM PC/AT (introduced in 1984) ran at 6MHz with 1 wait state. Furthermore it inserted 4 wait states for all 8 bit cards, including most video cards. With a price tag of US$6000 (equivalent to ~US$15000 today) it hardly had a 'significant price-performance advantage'. It's true that a 286 runs faster than a 68000 at the same clock speed, but only because the 286 uses 2 clocks per memory cycle vs 4 on the 68000. The clock frequency going into the CPU doesn't matter, it's how fast the instructions execute and what they do that counts. The 68000 has many more registers than the 286, they are 32 bit vs 16 bit, and it has a 'flat' memory space that doesn't require fiddling with descriptor tables to access. Therefore the 68000 should do better on real programs that manipulate large numbers and use significant amounts of memory. As for clock speed - 12.5MHz 68000's became available in June 1982, while according to DTACK GROUNDED 8MHz 286 CPUs were unobtainable in 1984! 12.5MHz/4 is faster than 6MHz/2, so in 1984 a well designed 68k system would have been faster than a 286 PC. Quote:
Quote:
Dhrystone speed test Code:
* "DHRYSTONE" Benchmark Program Version: C/1.1, 12/01/84 * MACHINE MICROPROCESSOR OPERATING COMPILER DHRYSTONES/SEC. * TYPE SYSTEM NO REG REGS * -------------------------- ------------ ----------- --------------- * Tandy 6000 68000-8Mhz Xenix 3.0 cc 694 694 * IBM PC/AT 80286-6Mhz Xenix 3.0 cc 684 704 * Atari 520ST 68000-8Mhz TOS DigResearch 839 846 * IBM PC/AT 80286-6Mhz PCDOS 3.0 MS 3.0(large) 833 847 * IBM PC/AT 80286-6Mhz PCDOS 3.0 CI-C86 2.20M 1219 1219 * WICAT PB 68000-8Mhz System V WICAT C 4.1 998 1226 * IBM PC/AT 80286-7.5Mhz Venix/286 SVR2 cc 1333 1449 * Tandy II/6000 68000-8Mhz Xenix 3.0 cc 1384 1477 * Intel 310AP 80286-8Mhz Xenix 3.0 cc 1893 2009 * WICAT PB 68000-12.5Mhz System V WICAT C 4.1 1780 2233 |
||||
13 February 2021, 04:31 | #1044 | |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
For a look at practical differences in code density I compared various executable files on Aminet that had both AROS i386 and OS3 m68k versions. These should have pretty much identical source code, and were probably all created with the same compiler. From less than 80k to over 1.5MB the m68k version was consistently smaller... Code:
78884 f9dasm_aros-i386.exe 72872 f9dasm_aos3.exe 894836 adv770 aros 775824 adv770 68k 110640 A09_aros-i386.exe 102240 A09_aos3.exe 4182636 RNOPublisher_AROS 3609996 RNOPublisher_68k 1701344 YAM 2.91p aros-i386 1400356 YAM 2.91p m68k 2639324 google-drive-handler.aros 1589520 google-drive-handler.68k |
|
13 February 2021, 14:05 | #1045 |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,215
|
Be a bit careful with these numbers. It really depends a lot on how you compile, with which options, and which compiler. For example, the gcc on x86 performs a lot of loop unrolling, which adds for quite an amount of overhead, and I wouldn't be surprised if it's doing less so on other CPU targets.
I doubt these comparisons are very telling. It's more the ability of the compiler creating short code, but if you want to measure that, optimize for "code size" (gcc option -Os) and not for speed ("-O3"). |
13 February 2021, 22:05 | #1046 | |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
As for being "more the ability of the compiler creating short code" isn't that what this is really about? If gcc (which has been developed for x86 over many years) somehow manages to produce consistently smaller 68k code despite being less developed, isn't that strong evidence for 68k being more compact? One could argue that optimized machine code might be denser than gcc on the PC, but let's be realistic - writing Megabytes of highly optimized x86 code in assembler would be a nightmare! I've seen this topic come up a few times, and the consensus always seems to be that modern x86 compilers produce code that is practically impossible to further optimize by hand for anything other than trivial code. 68k compilers OTOH... In practice the vast majority of code on both platforms is/was written in C or C++, and will continue to be. It's pointless arguing that x86 code can theoretically be smaller if it never happens in the real world. |
|
14 February 2021, 07:53 | #1047 | |||||||||||||||||||||
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
I have added information about one more oddity of the 68000 "Moreover, from the contrived Big Endian byte order, addition and subtraction operations with 32-bit numbers are performed with an additional slowdown". Indeed this was later fixed by 32-bit data bus of the 68020.
Quote:
Quote:
I also know a practical example, a powerful Perl class programming language - https://en.wikipedia.org/wiki/Rapira - it was realized at first for the 6502. Quote:
The 68020 was a processor for classes not for masses. It became possible to use it or the 68030 in mass systems only since 1992. Quote:
IMHO far/near calls are almost ideal way to do subroutine calls on a 16-bit system. People like to say about segments but they usualy forget that segments are not a problem. They just want a 32-bit registers but we had a time in the 1978-1983 when even 16-bit systems were too expensive. Moto made its 68000 for mini-computers. Quote:
Quote:
I can't read your thoughts. I also assume that you are not a megalomaniac who believes that his judgement is always right. So please share your opinions. It can help me understand you and myself better, it can also help you to better understand me and yourself. It seems you know little about the 68k. So maybe you are not a 68k expert as I might think of you? Thomas Gunter told us: "Well the main thing that we did is we added complexity to the machine, especially in transitions. As we went up the chain a little bit to 68010, 68020, we created a monster in terms of all the addressing modes that we had. We thought that adding more addressing modes was the way you made a machine more powerful, totally contrary to the principle of RISC later. And the fact that we didn't add a floating point until very late in an edition of the architecture. Thank goodness Van came and showed us how to do a high performance floating point. I wish we'd have been able to do that earlier." One can easily find this cite in Oral History Panel on the Development and Promotion of the Motorola 68000. Quote:
However the C64 has several advantages over the CPC6128: more games and their average higher quality, hardware sprites, more sophisticated SID music, GEOS. IMHO if we compare the C64 and CPC6128 it is like we compare the Amiga 500 and IBM PC AT EGA respectively. Even the Commodore Plus4 has some interesting features that the CPC missed - https://atariage.com/forums/topic/29...omment=4740107 The Atari 800 despite it was appeared 6 years before the CPC6128 has a lot of very interesting features. Do you know that IBM had plans to buy Atari and develop their PC on the Atari 800 base? One can only wonder what super 6502-based computer could have appeared if MOS Technology could survive. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Maybe but usually you can handle 16-bit data quite comfortable using 32-registers. The ARM registers can easily swap 16-bit values. My pi-spigot implementation is very fast for the ARM but the algo operates mostly on 16-bit numbers. Quote:
Quote:
Quote:
Quote:
Computer companies quite often used the 8086 (or the more advanced NEC V20 and V30) in the IBM PC compatibles since 1982. I hope you know that IBM had variants to use even the 6502 or Z80 in their mass PC. If the cumulative result was zero why to accept such contributions? |
|||||||||||||||||||||
14 February 2021, 08:04 | #1048 | ||||||||||
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
The Amiga was my third computer I used at home. The first was the Commodore+4, the second was the Amstrad CPC6128. I started to learn the 68000 assembly before the Z80 assembly. So you can't say that I come from a different architecture. Quote:
Quote:
Quote:
Quote:
Quote:
The x86-32/64 and 68k architectures use almost the same concepts around pointers. Indices can be quite useful if we have to process multidimensional arrays. And 8-bit offsets are too little to be useful often. Quote:
Quote:
IMHO it was not exactly a design flaw. But Moto's MUL/DIV on the 68020/30 much slower than on the 80286/386. IMHO instead of useless quirks they could provide faster processors. And it is not only MHO, solid companies stopped using the 68k because of its drawbacks. Quote:
Quote:
|
||||||||||
14 February 2021, 10:06 | #1049 | |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
The ironical thing is that when the Amiga was born its 68000 CPU was much more powerful than a typical 8088 based PC, and its custom chipset was much better than the typical PC's MGA/CGA video and 'PC speaker' sound - so while Amiga users sat back and waited for the machine to show its full potential PC users clamored for more performance, driving demand for faster CPUs and better multimedia devices - on PCs. In later years people complained that the A1200 was 'too little, too late' but the real problem was that previous Amigas were 'too much, too early'! I recently acquired an Amstrad PC2086, which is a PC clone with 8MHz 8086 CPU, 640kB RAM, VGA graphics, 2 x 3.5" floppy drives and a 30MB XT-IDE hard drive. With those specs it has to be better than an Amiga 500, right? Well it isn't. The CPU has a 16 bit bus but is hampered by having 8 bit instructions which makes it only ~30% faster than an 8088. The 3.5" drives are only 720k, less capacity than the Amiga is with the same drive mechanism. The VGA card is appallingly slow even in text mode, and the 'IDE' drive is the slowest I have ever tested. And this the best it can ever be because the only expansion possible is through the 8 bit ISA bus. The PC2086 originally came with Windows 3.1, but my machine didn't have it and my attempts to install it were unsuccessful. Had I managed to do so the amount of RAM left after loading Windows would be tiny, and of course no proper multitasking, no draggable screens with different resolutions etc. like we are used to on even the lowest model Amiga. In actual use it is pathetically slow, same as every 8088 PC I ever used. I feel sorry for anyone who bought one. Yet you are trying to tell us that this architecture is somehow better than the Amiga with its 68k CPU. Last edited by Bruce Abbott; 14 February 2021 at 11:12. |
|
14 February 2021, 11:08 | #1050 | |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
The Z80 has instructions to 'save' and 'load' the accumulator and flags together (push AF, pop AF, ex AF,AF'), and the ability to set or change (but not reset) the carry flag with 'scf' and 'ccf'. It does not have any instructions for direct manipulation of other flag bits. Typical methods of doing so include using instructions such 'or A' and 'cp A', just like like you might do on the 68000. The 68000 has a nifty feature where you can restore multiple registers without affecting the flags using movem, whereas on the Z80 restoring A automatically restores F as well - even when you don't want that. In practice, returning a boolean result in the flags is not often used in 68k code because it is vulnerable to being corrupted by subsequent instructions. Generally it is better to return a value in a register where it can be tested later if necessary. In many cases you get it for free anyway, eg. when storing a pointer address. I don't know much about ARM, but as I understand it only instructions with the 'S' option can have flags optionally affected or preserved. |
|
14 February 2021, 11:15 | #1051 | ||||||||||||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,215
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Haven't seen that. What is the offset in such a case? Offset to a member of a structure in an array. That's hardly larger than 128 bytes. Quote:
The principle here is that a program operating under user rights from hardware perspective has no means to find out whether it actually is operating under restricted rights or not. It could call the Os to get escalated rights, and the Os would answer to that call, and the program would find all indicators for super rights set, such as the SR flags, but all of that could be a fake. If "move from sr" would reset all super-states to zero in user mode, the Os couldn't run a user program in "simulated supervisor rights", but that's all necessary for a virtual machine. intels didn't have that type of "system in a system" simulation. Quote:
Quote:
Quote:
Quote:
The processors certainly did become faster, though. I wouldn't boil that down to the cycle count of a mul or div. Quote:
Things like the A20-gate are "quirks". A hardware workaround for a software problem. With today's knowledge, one could (or can) design certainly processors that have better ability to parallelize code, to help the code generator, but there's more that requires (and required) change on the intel architecture than on a 68K architecture. That's not quite the question Motorola wanted to answer with the system if I understand them correctly. The question rather is: How complex does a code generator have to be for the 68K to generate decently fast code, compared to the complexity of a code generator for an 8080? Today, code generators are very complex and very advanced beasts, but back then, they were naive and fairly simple. I consider it relatively simple to generate a decently fast code for the 68000, but for the 8080, this is hard - with all its unorthogonal register usages and instructions available only for certain purposes. |
||||||||||||||
14 February 2021, 11:45 | #1052 | |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
I prefer the 68k way because it treats every data register and memory location as an accumulator, so the flags are affected when you most often want them to be. Address register manipulations don't affect flags, which allows you to modify pointers at any time without destroying flags. This is also how it should be because memory addresses are not arithmetic quantities (and in the Amiga RAM addresses are effectively 'random', since you never know where your code will be loaded). |
|
14 February 2021, 15:57 | #1053 | |
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
It is obvious that the table you cited is for 32-bit benchmark. |
|
14 February 2021, 16:02 | #1054 | |
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
|
|
14 February 2021, 17:37 | #1055 | |||||||||||
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
Quote:
Quote:
Quote:
Quote:
Anyway ADDX and SUBX can be used with bytes and words and in these cases more addressing modes can actually help. Quote:
Quote:
So we can fake system flags in new MOVE to CCR, ignore them, or even keep them correct - it will change nothing if we follow documentation. Quote:
Quote:
Quote:
The 80286 needs 14 cycles for MUL and the 68020 needs 28 + time for EA calculation. Quote:
It seems that you just protest against 16-bit architectures. Do you you know a better way to make a 16-bit processor than the way of the 8086? There were enough good software for x86... All good Amiga software were eventually ported to the x86... I don't know what is wrong with real or protected modes. IMHO they are quite natural things. Yes, it is my main background idea! Intel made processors which just fitted its time. Intel upgraded them when proper time for this came. Moto tried to be faster than time, they did processor for some future but they were wrong about the actual future. So people were asked to pay for their believes in Moto's prophecies - it was crazy. Smart people figured it out by 1982, you know Bill Joy's site "It became clear that Motorola was doing with their microprocessor line roughly the same mistakes that DEC". |
|||||||||||
14 February 2021, 21:56 | #1056 |
Global Moderator
Join Date: Nov 2001
Location: Derby, UK
Age: 48
Posts: 9,355
|
Right... Firstly don't start another thread continuing from another thread. I have merged both threads. Do not create a third..
Secondly... This was extremely painful for me to read. I am not going ot close it (yet), but I will if I deem it necessary.. And... @litwr are you here just to troll amiga coders and piss them off? I've not read the first thread, sorry but 1001 very technical posts are too time consuming for my little brain, but judging by the responses in thread 2,we'll it seems you are... If that is the case then I strongly recommend you stop. Thank you... |
14 February 2021, 22:44 | #1057 | |
Registered User
Join Date: Dec 2014
Location: germany
Posts: 439
|
Quote:
Litwr, in general, please do some research before you state something as a fact. It's rather disrespectful in a discussion to just make up things and have other people check and correct them. * Stride Micro was just a new name for SAGE Computer Technology - known for the role their machines played during the development of the Amiga. |
|
15 February 2021, 00:54 | #1058 | |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,546
|
Quote:
This thread brings back memories of discussions we used to have 'back in the day' when many computer hobbyists felt it necessary to extol the purported advantages of one architecture (generally the one they owned) over another. So it's worth it even just for the nostalgia. It's also great to revisit some of those arguments in light of developments over the last 30 years. It's particularly relevant now that interest in the Amiga is surging. 5 years ago I would not have believed it would make such a comeback, that there would be new OS versions released, updated internet and a web browser that can get onto websites a PC with 3 year old software can't, new games being developed that push the machine harder, cheaper and more capable hardware being produced etc. Discussions like this should not be discouraged because while they might be 'painful' to read in their entirety, they are keeping up interest and helping us appreciate what we have and could have. Whether it's debunking the misconceptions of others or admitting we have a few ourselves, or gaining more insight and exploring possibilities - this is the lifeblood of a hobby like ours. |
|
15 February 2021, 10:13 | #1059 | ||||||||||||||||||||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
If 68000 had to have separate instruction to read system flags and a normal one to read arithmetic flags, then it means it should have privileged move from sr (and move from ccr that goes with it) from day one... Quote:
Quote:
Quote:
Quote:
But why would i care. I don't want to defend a 8-bit cpu against another 8-bit cpu, let alone a 8-bit machine against another 8-bit machine. Quote:
Quote:
Quote:
For example, you grumble about 68k's move from sr, but you forget that we have ori,andi,eori to ccr for direct flag manipulation - something that x86 and arm both lack (x86 has a few instructions but they are for single flags and give few possibilities). Quote:
Quote:
(And IBM having chosen x86 for their PC and attempting to gain its control back with the PPC didn't help.) Quote:
There are other ppl doing that, and hopefully with 68k it's easy enough. Quote:
Quote:
Quote:
At least 68k has SR with system bits on one side and user bits on another, unlike x86 which has everything mixed up in its FLAGS register. Quote:
Quote:
We just wanted to read the IPL from SR from normal supervisor code but now it's move from CCR so we get a wrong value. I suppose you can imagine that this can trigger very nice bugs. Quote:
It's a shortcoming, and one that's a lot bigger than having two carries. Quote:
But 68020 allows unaligned access to memory. Quote:
Why would we want to do that anyway. It has no sense. Which proves 68040 is clock-by-clock faster than PPC. Quote:
Quote:
Quote:
And to answer your iffy question : to be intellectually honest, or to avoid further contributions giving the same optimisations over and over. Quote:
Quote:
Funny that you criticize some opcode redundancy of 68k and fail to see that x86 has even more. Quote:
Code:
move sr,-(sp) (some other code here) move (sp)+,sr But let's execute that in a sandbox. Here we're in user mode. So the first move sr, if not caught, will write to the stack a value with S bit cleared. When we restore SR later, it will be caught but will restore S bit cleared, making the virtualization program think we want to go back to user mode, which isn't the case. We'll end up in wrong mode, and crash. Quote:
For "most people" i can't tell, but even though I myself also agree with that, in practice it is pretty much unimportant. |
||||||||||||||||||||||||||
15 February 2021, 12:17 | #1060 | |
Global Moderator
Join Date: Nov 2001
Location: Derby, UK
Age: 48
Posts: 9,355
|
I don't discourage this discussion line as long as it stays civil and respectful if you like. There are a few "on the line" moments.
Quote:
|
|
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 |
|
|