 |
Welcome to the Natami / Amiga ForumThis forum is for AMIGA fans interested in the new NATAMI platform.
Please read the forum usage manual.
|
Welcome to the Natami lounge. Meet new AMIGA friends here and enjoy having a friendly chit chat. |
| NatAmi Is the Way to Go : Encouragement & Ideas | |
|---|
|
|---|
Gilles DRIDI France
| | Posts 107 10 May 2012 16:39
| Hello all, As I said in a natami user discussion : CLICK HERE NatAmi is an Amiga DMA architecture. I think after 20 years -- for sure -- even in the USA : "quoique" ! the license is in the public domain. So I said, The whole Amiga software and hardware is a user-oriented architecture not to say heavily DMA-oriented architecture or hardware acceleration for everything (as said Gunnar). For sure, this OS is responsive. I recall just that now, with the Gigabit ethernet onto the NatAmi board and with a kind browser it will be a network oriented computer. If tasks in this multitasking OS are in "some way ; to think" protected. For me it lacks MMU, but not the way you think, a kind of virtual machine (so uses of the MMU) and as a user will experience : A "virtual machine" For each [Amiga] screen. And, the is more to do than just adding a classical MMU or using features of a management memory unit, to think and conceived/engineer, that is the segmentation & logical feature. Not, using the paging mechanism, which leads to trashing problem. I'm just an software engineer and "self Amiga apprenti" like everyone here. But, saying you don't need some MMU feature like segmentation (not paging) is a non-sense on modern CPUs and modern architecture. Because, Enforcer is built-in AmigaOS4 [former Amiga developer knows this great program : Enforcer] ! Is tricking with the copper to load a new MMU configuration each time a screen is displayed possible ? You can imagine easy multi-processing (don't care the kind) because they will be a task-queue for each virtual machine = for each screen. I think someting like this will be done for the AmigaOS4.2 ... on the X1000. Now, we know how to improve the software that is the multitasking to have not only a user-oriented machine but a network&user-oriented machine. After this big improvement of the hardware : The NatAmi... user, and, network oriented OS. Best regards. DgeeDee from FRANCE
| |
Gilles DRIDI France
| | Posts 107 13 May 2012 17:55
| Hello, I know I'm boring .. But my propos, means NO virtual machine in the trend No Java virtual machine, no need to run software on virtual machine, indeed. Just logical memory maps for each instance of the original AmigaOS on each core (a minimal use of MMU feature with NO PAGING , just segmentation I think). This also means COMPATIBILITY ; you can launch two workbenchs on each instance of the AmigaOS (this is, already, done with emulation like UAE ; isn't it !) And we know that we can launch two workbenchs on our great Amiga ; due to built-in multithreading, but with my point of vue, we can protected one OS instance crashing from another (or the whole system won't stop if a bugs appear on the Browser ! Things which are very hard to prevent with network/downloading code). Kind of this work has been done on MorphOS. Instance swapping is also a user solution to load balancing. I know, I'm pretending ! And also Great for browsing the Web.. as I just said with no needs to know for sandbox, because Amiga apps will run as usual. A great user AND Simple Networking oriented AmigaOS. The question was in the minds of C=A engineers, back from the 1990s, and the simpler it is the better it is ! Another fact is that, what we call "thrashing" (on MMU enabled system) is just graphics thrashing onto an Amiga screen ; that is pixel poking into the CHIP memory, only.. like usual. But notice that on modern Amiga(new machine) thrashing means always the system bugs and reboot even with some feature of MMU enable ! Sound is also bad, strange graphics pixel always means reboots on modern system (even with 7.1 and even with R500 GPU). Instead of just "ghost" [CHIP pixel trashing] on classical Amiga. Some C=A engineer, said to me someday that "MMU" is the separation of CHIP and FAST memory on the Amiga. That is true but a new Exec with a per core AmigaOS instance will be great too !! This surely means real message passing API(kind of MPI) for those who what to do real SMPs.. end of the debate. Simple multicore processing needs instances of the AmigaOS and this issues a new Exec with the marketing notion of "Virtual machine" ! And simple it is means just simple to do ; segmentation for each instance of the system Exec Object.. and multithreading like before. Ready to code ... Kind regards dGee-Dee Amiga enthousiast enables.
| |
SID Hervé France
| | Posts 663 13 May 2012 21:55
| How will be managed the DMA and, more generally, hardware resources or what will happen if an application hits directly in the memory or any register?
| |
Nixus Minimax Germany
| | Posts 272 14 May 2012 09:37
| Gilles, I brought up a similar thought some time ago when joining this forum. I think classic AOS is lean enough to have an instance of the classic OS for each task, screen or program. Newer stuff could be added using a clean userspace/kernelspace and memory protection model. Of course, there are loads of implications but I think this would be the only way to eventually turn AOS into something closer to the state-of-the-art. Few people liked the idea which doesn't matter all that much because it isn't going to happen anyway...
| |
Gilles DRIDI France
| | Posts 107 14 May 2012 20:08
| SID Hervé wrote:
| How will be managed the DMA and, more generally, hardware resources or what will happen if an application hits directly in the memory or any register?
|
First @ MinusMax : Great but you know I'm so rough ! Secondly, I just know that hardware resource on the Amiga(OS) are files named : 'cia.resource' 'potgo.resource' 'disk.resource?' It lacks some more 'xxxx.resource' which are lower level then Exec devices. But the concept is only valid with original Amiga SmallMachineDMA model architecture. And it is hard to use the pile : hardware -------- resource Exec device DOS device -------- User Handler In a french article (use the translate icon on the site) I said : " Je n'ai pas vérifié, mais seules les ressouces devraient pouvoir verrouiller certaines parties du système au niveau de leur API (Open/Close) ou conceptuellement avec un sémaphore mutex, uniquement binaire si la ressource n'est pas multiple sinon je conseille d'utiliser l'allocation multiple "en pool" de sémaphores binaires (de verrous) ; plutôt qu'un sémaphore multivalué au-delà de la plage 0/1-). " J'ajoute que l'allocation des resources doit ce faire dans un contexte non-multitâche. Sinon interblocage "possible". In english now : " I've not verify, but only resouces should lock parts of the system (not device directly or libraries) with Open/Close . _Conceptually_ a mutex semaphore or binary semaphore and a pool of binary semaphore only if "the resource got multiple instance" ; the pool is prefered to multivalued semaphore [what we used to play on system computing course] " Furthermore I have to said, that allocating resource must be done when there is no multitasking or at "boot time" : when a new instance of the AmigaOS is launch (with a pool of binary semaphore introduce in OS 1.3 ;-) The article can be found in the obligement french online magazine : EXTERNAL LINK (use translate at the upper-left corner for a pretty good english) Gilles ed!dridi
| |
Pawel K. Poland
| | Posts 53 14 May 2012 22:33
| using separate VM and Amiga OS for applications is neat idea. It could work as expected (protect guru from meditation ;) ) if: 1. we have proper VM implementation with memory protection 2. we don't want to use hardware directly or emulate AGA if it does use it. Another possibility though very not likely would be to write really smart wrapper/layer that would use real registers on many programs. AD1. generally it would need some features NatAmi won't have initially or even ever. New AOS should also be heavely redone with different ideology behind it though those things don't actually have to be visible to normal user (by normal I meant: not programmer). In such system we might use VMs to launch legacy code. AD2. Best thing would be if programs didn't used hardware directly at all, just system friendly calls. But that is not the case with many programs. We could use emulator approach for that, but... that is out of question on real 68K machine, even NatAmi. So last thing would be to redirect calls to real hardware. It's probably doable but unfortunately so hard to program it will never happen, especially such system would be considered not in amiga spirit by most people... ps. you can use 68K VMs in AROS and it actually works pretty good ps. some system actually pulled of with those ideas eg. 32bit Windows used VMs to run 16bit code. In Win9x it also had access to real VGA registers. On WinNT visualization was more secure but also slower.
| |
Comp Arch
| | Posts 33 14 May 2012 22:41
| Nixus Minimax wrote:
| I think classic AOS is lean enough to have an instance of the classic OS for each task, screen or program. Newer stuff could be added using a clean userspace/kernelspace and memory protection model. |
I second that. Nixus Minimax wrote:
| Of course, there are loads of implications but I think this would be the only way to eventually turn AOS into something closer to the state-of-the-art. |
And the most logical way to go, too, IMHO. Nixus Minimax wrote:
| Few people liked the idea |
Uhm.. well.. uh.. here's one.. albeit a very insignificant one.. Nixus Minimax wrote:
| which doesn't matter all that much |
Yep, insignificant. :) Nixus Minimax wrote:
| because it isn't going to happen anyway... |
Which really is a pity, IMO. Following this way the NatAmi could not only establish itself as _the_ future hardware of the Amiga but also as _the_ platform for new modern innovative Amiga software, because its true meaning would be to include both: compatibility and expandability. But let's wait and see. As soon as the development of the NatAmi has reached the state of 'fully hardware compatible final release' (the current focus), suggestions like these might have a chance to get discussed again. .. At least, I hope so. :)
| |
Pawel K. Poland
| | Posts 53 14 May 2012 22:58
| it came to me that it might be doable because of FPGA nature of NatAmi :) we can give each task its own chip memory and/or save/load AGA register all at once with hardware. With such approach we could use many full screen AGA applications at once and switch between them. Ofcourse it would be possible to to actually run only one application at once with that aproach but that would suffice and bonus would be not compromised performance. And that would be still hard to implement but at least possible ;) But first things first... exterminating bugs in circuits is top priority for NatAmi :)
| |
Nixus Minimax Germany
| | Posts 272 15 May 2012 12:13
| Well, I think that hardware access isn't that big of a problem. I don't think that "serious" software will use much of that anyway. I mean, who has seen copper lists in some type of office software? The most popular type of software that needs hardware access are games. If you want to run a legacy game, it is up to you if everything else breaks. Perhaps one could do some kind of suspend-to-disk for all other AOS instances before running one AOS instance with software that needs low-level access.
| |
SID Hervé France
| | Posts 663 15 May 2012 19:15
| HelloGilles DRIDI wrote:
| I just know that hardware resource on the Amiga(OS) are files named :'cia.resource' 'potgo.resource' 'disk.resource?' It lacks some more 'xxxx.resource' which are lower level then Exec devices. But the concept is only valid with original Amiga SmallMachineDMA model architecture. And it is hard to use the pile : hardware -------- resource Exec device DOS device -------- User Handler ... " I've not verify, but only resources should lock parts of the system (not device directly or libraries) with Open/Close . _Conceptually_ a mutex semaphore or binary semaphore and a pool of binary semaphore only if "the resource got multiple instance" ; the pool is prefered to multivalued semaphore [what we used to play on system computing course] " Furthermore I have to said, that allocating resource must be done when there is no multitasking or at "boot time" : when a new instance of the AmigaOS is launch (with a pool of binary semaphore introduce in OS 1.3 ;-)
|
Correct if necessary: what is proposed is a modified kickstart in order to run multiple instances of Workbench. Somethings intrigues me: This seems to imply that only applications that respect the OS will be eligible. True or false? Several kickstart will be run simultaneously? Thanks
| |
Marcel Verdaasdonk Netherlands
| | Posts 3974 15 May 2012 22:30
| Nixus Minimax wrote:
| Well, I think that hardware access isn't that big of a problem. I don't think that "serious" software will use much of that anyway. I mean, who has seen copper lists in some type of office software? The most popular type of software that needs hardware access are games. If you want to run a legacy game, it is up to you if everything else breaks. Perhaps one could do some kind of suspend-to-disk for all other AOS instances before running one AOS instance with software that needs low-level access.
|
To be honest Nixus i am with you on this up to the suspend to disk. If this trend will stick about the flash drive media this would be a bad idea because it would be another write access of the finite one's.(SSD's CF card and other flash media) If needed to be low level access could be intercepted.
| |
Nixus Minimax Germany
| | Posts 272 16 May 2012 13:37
| Marcel Verdaasdonk wrote:
| To be honest Nixus i am with you on this up to the suspend to disk. If this trend will stick about the flash drive media this would be a bad idea because it would be another write access of the finite one's.(SSD's CF card and other flash media) |
I guess it wouldn't be impossible to protect the RAM space of the other instances in a soft-reboot of just the one instance that does low-level access, e.g. one might do a hardware reboot of the custom chip stuff and a software reboot of only the instance that did the low-level access.
| |
Megol .
| | Posts 671 16 May 2012 15:00
| Marcel Verdaasdonk wrote:
|
Nixus Minimax wrote:
| Well, I think that hardware access isn't that big of a problem. I don't think that "serious" software will use much of that anyway. I mean, who has seen copper lists in some type of office software? The most popular type of software that needs hardware access are games. If you want to run a legacy game, it is up to you if everything else breaks. Perhaps one could do some kind of suspend-to-disk for all other AOS instances before running one AOS instance with software that needs low-level access. |
To be honest Nixus i am with you on this up to the suspend to disk. If this trend will stick about the flash drive media this would be a bad idea because it would be another write access of the finite one's.(SSD's CF card and other flash media) If needed to be low level access could be intercepted.
|
Writes are finite but the real problem with flash are the limited erases per block. However with a proper system design that isn't that much of a problem: add good ECC, detect when a block is going faulty (which is varying but more than the guaranteed # of erases) and switch the block from MLC to SLC mode.
| |
Marcel Verdaasdonk Netherlands
| | Posts 3974 16 May 2012 18:06
| Megol that should be internal of those drives a system should be completely unaware of what hardware they actually are reading from or writing to. Since this is completely depending on the user.Even if i use a regular HDD writes in a given period of time are finite.(Interface limitations, this even goes for SATA 600) Besides that IIRC most current hardware hitting software did not go outside the first 16MB. Besides that the natami's design would allow more space so future software hitting the hardware, ai i do not wanna think of it too much. To be honest i was thinking of writing a tracker program for the natami.(something i currently have in my project fridge) If the audio software interface isn't to my liking i will bang the hardware.
| |
Nixus Minimax Germany
| | Posts 272 17 May 2012 11:08
| Marcel Verdaasdonk wrote:
| To be honest i was thinking of writing a tracker program for the natami.(something i currently have in my project fridge) If the audio software interface isn't to my liking i will bang the hardware.
|
Why not write an audio software interface instead?
| |
Marcel Verdaasdonk Netherlands
| | Posts 3974 17 May 2012 20:13
| because i am more of the intend to make software for replay and reproduction.
| |
Jacek Rafal Tatko Espania
| | Posts 607 18 May 2012 13:45
| EXTERNAL LINK Ideas , Encouragement , Experiences ... Some of You might want to get a Great Job done , make Experiences , bring back New Ideas , Encouragement , Expertise , Energy , and +1++ re-sources to e.g. : The Natami Project ;)
| |
|
|
|
|