19 December 2020, 14:36 | #61 | |||||||||||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
No, an exception is an exception. How the program deals with it determines whether that is a crash or not.
Quote:
Quote:
Quote:
Again, that wasn't important back then, but it is very important today with massive SMT. Quote:
Quote:
Quote:
Coldfire has a very simple pipeline, it was designed for that. It's not a workstation processor, but its target market were embedded systems where CPU power consumption is important. On such a system, you don't use a complicated pipeline with opcode fusion. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
|||||||||||||
19 December 2020, 16:52 | #62 | ||||||||||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
What are you defending here anyway ? The only systems still using 68k are "toy systems" and the embedded, and none of these will need these instructions. Quote:
Except that if you try : Code:
moveq #0,d0 move.b d0,d0 Code:
moveq #0,d0 move.b (a0,d0.w),d0 Quote:
Quote:
I like code density. It's one of my design goals. It has several benefits, even in a software vm. It's not about 68k market at all, actually, just that i want to code on something that's more developer friendly. Quote:
Second, most - if not all - machines ever using a 68k weren't doing this. Actually the 68000 is not even able to really do this separation - MOVES got added later. Quote:
Sorry, but this is a failed theory. The fact the design is this way does not make it more successful. It's the same thing as the C vs X flags. Another nice, wrong theory. Quote:
Quote:
Quote:
Quote:
|
||||||||||||||||
20 December 2020, 07:23 | #63 | ||
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,581
|
Quote:
Many years ago I was working with Motorola MCUs, then wanted to use 8031 but didn't like Intel's mnemonics. So I created a Motorola style instruction set equivalent and coded with that. Great idea except I couldn't use anyone else's code or tools, so I capitulated and learned to use the Intel mnemonics. That's what you have to do when living in the real world. But meynaf is apparently creating a little fantasy world for his own amusement. The fact that it has no application for Amiga users (or anyone else probably) doesn't concern him. Quote:
It is interesting to compare the concerns of Amiga developers to those on other platforms. We think 1MB of program code is a lot, but on a modern PC it's a pittance. Windows 10 uses several Gigabytes just to start up, and a fairly plain looking web page may require 1GB on a modern browser. This bloat is affecting stuff ported the Amiga as well, but what can you do when the original code was written without any attempt to minimize memory usage? At the other end of the scale I have done a lot of work with MCUs that only had 1k of ROM or less and a few bytes of RAM. That's when you learn to make every byte count! But embedded developers today just buy a bigger faster chip, which is cheaper than spending the time to make your code more efficient. And with all the code written in C it's not hard to switch to a totally different CPU. This thread isn't really about any practical application of an extended 68k CPU (certainly not for Amiga anyway), but more someone's dream of their ideal 68k-like ISA. This is in the finest tradition of Amigans ranting on about what Amiga shoulda coulda woulda been if Commodore wasn't in charge - with every person having their own ideas. So let's hear those ideas! |
||
20 December 2020, 07:44 | #64 | |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
|
|
20 December 2020, 08:01 | #65 |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,581
|
I thought Line-A was for extending the instruction set. But of course once that was provided it couldn't be used for extending the actual instruction set in future CPUs, because existing applications might be using it.
On the Amiga at least one language (Blitz BASIC) uses it, but it may not use all possible opcodes. Therefore it should be possible to simulate new instructions through Line-A, then when we are happy with them produce a new CPU with native versions that don't go through the exception vector. Just avoid the opcodes used by popular legacy code, then tell developers not to use the ones we have allocated. But what do we really want? That's right - programmable microcode! Then we can load in our own custom instructions with total flexibility and without compromising compatibility. Imagine c2p in a single instruction, customized to suit the particular screen mode. Or DSP functions, built in mpeg decoding, encryption etc. Or even a completely different ISA. And we already have the hardware to do it. |
20 December 2020, 10:38 | #66 | |||||||||||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
Quote:
Quote:
Certainly. Multi-core processing always does, you need additional primiives. I am not saying one is better than the other, just that you need one. CAS alone is not sufficient, you need some primitive in the sense of CAS2 that allows atomic exchange of two pointers/one pointer and a number. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Yes, and I don't want to add to remove anything. I am just saying, would one develop an instruction set similar to the 68K today, with what we know today about CPU design, this instruction would likely go. |
|||||||||||||
20 December 2020, 10:44 | #67 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
Correct, for the user to extend it. It is just a different perspective to the same thing. One can either say, "line A" triggers a subroutine, or an Os call, or one could say that this operation the line A performs extends the instruction set by an "instruction" that implements the corresponding operation. Apple used that for Os calls. Atari did that for its blitter emulation (which became hardware later).
Thus, line-a is user-reserved, not motorola-reserved. Line-F is reserved for motorola, not for the user. Quote:
If I would create a new CPU, well, that would look totally different, but I don't, and I won't. |
|
20 December 2020, 11:47 | #68 | |||||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
Nah, i don't think so. And even if a compiler does that, where's the point ? Should an instruction be created just to satisfy the needs of a few compilers ? Quote:
Accessing same structure from several concurrently running threads is usually looking for trouble. Sometimes it is necessary, but... that's rare. Should we create an instruction for a rare case ? Quote:
Besides, CAS2 is a microcode monster and it is S.L.O.W. Quote:
Quote:
Quote:
Quote:
But at least this one makes asm programmer's life easier. Concentrating on "fast" aspect of the thing is very reductive. ... apart that during all that time code without it isn't really as fast as code with it. For example, it is common to merge an instruction with a branch going over it. If it's already a merged instruction, it no longer works. Not to mention the lowered pressure on icache bandwidth. Quote:
Quote:
Which are ? Quote:
Quote:
If you remove movem, then the instruction set would cease to be similar to the 68k. Remember original design goal of 68k, it is to ease coding in asm - removing that instruction goes totally against this. |
|||||||||||
20 December 2020, 12:26 | #69 | ||||||||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
Quote:
Quote:
Quote:
Yes, as you cannot synchronize data between CPUs in any other way. So some support is needed. Quote:
Quote:
But why do you insist on "an existing compiler"? I thought this discussion would be academic in first place? Quote:
[QUOTE=meynaf;1447308] The same can be said about many instructions, actually - including those you defend here (f.e. chk, trapcc). [/QOUTE] Look, what you don't appreciate is that mot created this instruction set with a particular mindset, and that there was - back then - a use case for them. Ok, put that overboard. You get a different architecture. But then, if you want a new architecture to begin with (which is insane, but anyhow), you should address all deficiencies of the 68K right at the beginning, and make it fit for 2021. That implies support for multiprocessing, and this requires some form of synchronization primitive. Function codes are available for the 68K, that is the point. Quote:
Quote:
Then you would need that for any other type of instruction as well. Shifts? Rols? Mul? Div? Why stop there? Quote:
Quote:
Assembler was already going out of fashion at the time of the 68K. Assembler was the domain of the 6800. |
||||||||||
20 December 2020, 16:53 | #70 | ||||||||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
Quote:
Quote:
Quote:
Quote:
It's probably microcoded even with todays x86. Quote:
Quote:
I have CAS. Quote:
Yes this gives me a different architecture in some way, yet still very similar. Isn't it what this thread is all about ? And yes i have support for multiprocessing and some form of synchronization primitive (actually several). Not that the vm currently uses that, however. Quote:
Quote:
Quote:
What makes the difference on the Atari ST is supervisor vs user, not PC relative or not - which does not make a difference there (data section is always right after text section). Quote:
So yes, shifts and rols are similar and have same modes. Ditto for mul & div. And of course and/or/eor are all logical operations and support same modes. Quote:
Hence removing chk does not change the way you code on the cpu - but believe me that with movem removed it would become night and day. Quote:
|
||||||||||||||
20 December 2020, 19:45 | #71 | ||||||||||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
I am talking about CPU exceptions. They only crash if they are not handled. Actually, C++ exceptions also crash the program if they are not handled. Whether an exception crashes is thus not a matter of the exception, but a matter of whether there is some way of recovering from them.
Quote:
There are two possible routes: Think about what is important for the Amiga. For the Amiga, nothing of that is of any relevance. It would just create more islands of incompatibility, which makes little sense. If you think about 68K in general, then there are many more things that are more important than "additional addressing modes for eor". What would be much more important would be 64 wide registers, and larger addressing spaces. However, these two goals are mutually exclusive. A modern 68K, and something that is useful for the Amiga. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
||||||||||||
20 December 2020, 20:29 | #72 | ||||||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
Quote:
Quote:
So at the end : neither of these. Quote:
Quote:
Quote:
Yes, but not exactly up to date. Quote:
Quote:
No, these are just driven by marketing needs to faster execute badly written programs, and the failure of cpu manufacturers to achieve faster single threaded execution. In any case, they are not required on a 68k-like machine. Quote:
Quote:
Yet i can say that write protecting the code isn't very useful and both ways are ok for me. I still have to see one. Quote:
No, we don't have better processor platforms. And my vm, though not finished there, also works on common pc hardware. Quote:
About getting rid of instructions that are "in the way", why do you think i didn't keep cmp2/chk2/cas2. About removing movem, certainly not. It represents nearly 1 instruction out of 50. Widely used instructions must not be removed. Even if this one is only second to the Bitfields when it comes to complexity of implementation. |
||||||||||||
21 December 2020, 06:52 | #73 |
Registered User
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,581
|
|
21 December 2020, 09:35 | #74 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
|
21 December 2020, 15:28 | #75 | ||||||||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
Quote:
Quote:
Quote:
On the 68060, CAS2 was dropped. Back then, it wasn't important, of course. There were no multi-core 68K systems, so the thing was irrelevant. Back then. Quote:
Quote:
Quote:
That depends on your goals. If you would want to modernize 68K and make it ready for SMP, then that would be the way to go. Quote:
Quote:
Certainly we do. A lot faster, more powerful. Quote:
Quote:
Lack of vision? Lack of insight? Don't ask me. I would keep them, in particular CAS2 as I really have needs for it. Not on the Amiga, of course. Looks like a serious drawback. |
||||||||||
21 December 2020, 17:12 | #76 | ||||||||||||
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Quote:
And all this just to defend completely obsolete CHK... I am afraid trying to explain it wouldn't be very useful. Your mind is already set and will not change. Quote:
Quote:
Why should i care about what you use or not ? Quote:
Why not program the real thing, simply because it's an horror. Why waste so much computing power on a VM, guess what, programs may end up faster than native ones simply because it's not hard to beat bloatware. Anyway it's a machine where it is commonplace to stack software layers on top of other software layers, so at the end it's the same. Quote:
Quote:
Quote:
But as i said, my goal isn't 68k compatibility. I just wanted to take from 68k what i like, and make a better thing. Quote:
Quote:
But with no control anymore on what happens in them. More powerful but could be sending spam without user to notice. Machines that don't belong to their users anymore. With considerably reduced life duration. And of course, a PITA to program. Sorry but it's not my definition of "better". Quote:
Yes in some way it does not have much sense but guess what : it's the only solution. If no cpu gets implemented with a decent ISA today its not my fault. I do with what i can use. Anyhow, tell that to Java or .Net users. Quote:
Quote:
Now, keep CAS2 if you want and be happy with it - i don't want you to change that, even if it would be better if you tried to envision how an ideal machine would be, without paying too much attention on current technology. Then perhaps we would be able to really talk. But it's not. The drawback isn't located at not having a CAS2 or similar instruction. The drawback is the reason why one would want such an instruction at first place. Now a question if you don't mind. Why do you insist so much for imposing your point of view on something you obviously won't be using ? Don't tell me you fear it's gonna be used some day, so much that you'll be forced to use it too |
||||||||||||
21 December 2020, 18:04 | #77 | |
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,295
|
Quote:
It is of course just a hobby project - staring with a simplistic VM and maybe going FPGA one day. The complexity of something like the 68000 is probably the upper limit for such a project ... As meynaf's vm for him my project is for my personal use - I am not trying to convince you of anything or getting others to use it. That said: I enjoy the discussion it spawned! |
|
21 December 2020, 18:33 | #78 | ||||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,295
|
Quote:
https://en.wikipedia.org/wiki/Sony_NEWS The Apple MacII had a 68020 and for NuBus development a 68000 on a card running A/ROSE with a 32bit preemptive multitasking kernel, which was quite more advanced than the System2 running on the MacII itself ... https://en.wikipedia.org/wiki/A/ROSE SMP is not the only way to do multicore: AMP (Asymmetric Multi-Processing ) uAMP (unsupervised Asymmetric Multi-Processing) BMP (Bound Multi-Processing) Cluster (e.g. Lightwave on 68k) ... The more cores you want to handle the less classic SMP is the best solution. Quote:
|
||||
21 December 2020, 20:35 | #79 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,233
|
Quote:
You hopefully don't attempt to convince me that AmigaOs is an "operating system", right? |
|
22 December 2020, 06:57 | #80 | ||
Registered User
Join Date: May 2017
Location: Munich/Bavaria
Posts: 2,295
|
Quote:
You seen to misunderstand the concept of SMP and why it is not working well for larger numbers of processors... There is a reason why AMD an others are implementing NUMA ... Quote:
And no: it is also not a "sane" one, even if it did some things right others did not back in the day - but this has only historical value from today’s point of view... But that does not change the fact that all of today’s operating systems are totally crap and a insane mess. Let’s see what Fuchsia brings... |
||
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
68k & PPC CPU Usage monitor for OS3 | ancalimon | support.Apps | 1 | 29 June 2020 23:42 |
68k CPU pause (bubble) | kamelito | Coders. Asm / Hardware | 9 | 27 January 2020 15:09 |
Bad weather for the 68K socket cpu cards | Solderbro | support.Hardware | 0 | 14 July 2018 10:19 |
Looking to get max CPU performance in WinUAE 68k OS | GunnzAkimbo | support.WinUAE | 1 | 12 May 2016 11:18 |
Apollo / Phoenix CISC CPUs m68k compatible | Snake79 | News | 3 | 05 March 2015 20:20 |
|
|