 |
Welcome to the Natami / Amiga ForumThis forum is for AMIGA fans interested in the new NATAMI platform.
Please read the forum usage manual.
|
Do you have ideas and feature wishes? Post them here and discuss your ideas. |
| Audio DSP for the NatAmi | page 1 2 3 4 5 6 7
|
|---|
|
|---|
Amiga Believer Canada
| | Posts 282 08 Sep 2010 06:56
| Since there is a lot more of raw processing on the upgraded Altera FPGA, I would suggest implementing a m96k compatible audio DSP, more precisely a superset of the m96k. The 96000 was chosen because it is binary compatible with the m56k, found on several Amiga sound cards which are supported by several Amiga audio oriented programs. This means that existing software can likely use the DSP which a small patch. Moreover, the m96k supports 32 bit integers, 32 bit float, 2048 32 bit words or RAM (which can be implemented as SRAM in the FPGA), in addition to 10 96 bit registers to hold intermediates. The m96k has great parallelism, it can do in parallel three arithmetic operations (integer or float), two data move operations, four addressing operations and one DMA transfer. On the FPGA, it may be possible to bring all those operations to one clock cycle, especially since an DSP operates on registers, unlike the m68k which can work on memory. I would add m56k compatible 16 bit integer support (some m56k had 16 bit support, though not all) if it is missing (I have been unable to find if the m96k has 16 bit support) and half precision floating point support (this often has quite enough precision). Of course, such a chip should work on ChipRAM only. This sort of DSP, in addition to supporting some existing Amiga software, would allow things such as realtime effects (ex: reverb), wavetracing, hrtf or ambisonic sound positionning or other types of sound editing and processing.
| |
Gunnar von Boehn Germany
| | (Moderator) Posts 5775 08 Sep 2010 10:20
| The main 68K CPU can do all what the DSP can do and a lot more. Adding an enhanced FPU to the 68K Core or adding enhacnements as SIMD instructions to the 68K Core do make the 68K even more superior. A 2nd 68000 is much easier to program and to support than a extra alien DSP core. Therefore if there is a desire for a dedicated Audio core the most sensible solution, in my opinion, is adding an extra 68K core.
| |
André Jernung Sweden
| | (MX-Board Owner) Posts 988 08 Sep 2010 10:53
| The problems with using software DSP effects and software synthesizers on modern audio workstations is that they are multitasking together with every other program. Thus, if CPU load is too high because of using too many or running something in the background, things will start to stutter and fail. Using subcores dedicated to DSP:ing will remove this problem. We could dedicate an entire subcore to a time critical effect like a professional reverb or a software synthesizer - and be able to guarantee no stuttering and no failures. Although the m56k and m96 sure are good at doing their thing (love what people did with the MC56001 in Atari Falcon), the subcores/SPU:s would be more flexible while able to perform the same task.
| |
Marcel Verdaasdonk Netherlands
| | Posts 3979 08 Sep 2010 12:47
| Gummar Andre your right but keep in mind the Amiga had specialized hardware for it's tasks. we would need a library i think they got supplied with the cards that had them. and using either the main MPU or a SPU is too generic, IMHO. (Sub Processing Unit) Parse through such a library and think how would it m68k only. oh one more thing take the high road on this one guys.
| |
Guillaume Michalakakos France
| | (MX-Board Owner) Posts 454 08 Sep 2010 13:33
| Gunnar von Boehn wrote:
| The main 68K CPU can do all what the DSP can do and a lot more. Adding an enhanced FPU to the 68K Core or adding enhacnements as SIMD instructions to the 68K Core do make the 68K even more superior. A 2nd 68000 is much easier to program and to support than a extra alien DSP core. Therefore if there is a desire for a dedicated Audio core the most sensible solution, in my opinion, is adding an extra 68K core. |
+1 I totally agree with this. The Natami must be very easy to code. It's IMHO a big advantage to have the same ASM for the sub-cores than for the CPU. In addition to this, this will save a lot of time for our favorite hardware team ;-) Some days ago I saw that my most CPU-hungry realtime audio effect (a high-end convolution reverb) take about 20% of ONE of my 2,3ghz G5 cores, in 24 bit 48khz. About 25% in 24 bit 96khz. For exemple if robin consist of let say 4 68050 subcores at 150 mhz, I think he can have enough power to make the calculation without using the CPU. Marcel Verdaasdonk wrote:
| Gummar Andre your right but keep in mind the Amiga had specialized hardware for it's tasks. |
The "m" is close to the "n" on netherlands keyboards ? LOL :D ;-) What you say is true BUT I think that having subcores is more usefull because of flexibility. I will try to explain with a short exemple : If there is an audio DSP on Natami, ok for people like me this is very nice. But for people like Bartek it's useless !!! So we must add ANOTHER dedicated unit for help gfx artists like Bartek. With the subcores, we can use the place take by this 2 dedicated unit for processing units that can be used for ANYTHING !! That means in theory : with this sollution me and Bartek will have more power for our things. But this can be very usefull too for compilation, torrent, work on databases, etc etc. Cheers :-)
| |
Golgoth 27 France
| | Posts 185 08 Sep 2010 14:43
| If i understood right, very roughly, the "sub cores" can be used as DSP or SIMD units (maybe with some tiny adds) and make useless the need to implement those units. And as "sub cores" are 68k they are coding more easely. Am i right ? (i assume that question is also valid for the SIMD thread).
| |
Steve Thomas United Kingdom
| | Posts 178 08 Sep 2010 15:55
| It appears that the sub-cores will "standard" 070's which may not have the peak performance of dedicated DSP or SIMD but which may be easier to write code for.
| |
Gunnar von Boehn Germany
| | (Moderator) Posts 5775 08 Sep 2010 17:05
| steve thomas wrote:
| It appears that the sub-cores will "standard" 070's which may not have the peak performance of dedicated DSP.
|
Why do you think a 070 would have less performance than such a DSP?
| |
Golgoth 27 France
| | Posts 185 08 Sep 2010 17:30
| steve thomas wrote:
| It appears that the sub-cores will "standard" 070's which may not have the peak performance of dedicated DSP or SIMD but which may be easier to write code for.
|
Yes, i understood that "sub cores" are copies of the main processor (050/070). But i have some (stupids :) ) interrogations in mind (i don't know HW and i'm totally unaware of how is made a CPU). Maybe "sub cores" don't need some specific parts that only the main processor will use (i don't know at all) ? That way, maybe "sub cores" could be enhanced with that free space and being more specialized. If they are still 90% (random number) like the main processor, they are still easy to use like any 68k. And the enhancements will not complicate too much the use of the new functions, because coders can still ignore them and use "sub cores" in the 68k way. But i agree that an easy to code NatAmi will still be better than a Natami who need 3 years to be tamed. I hope that I'm understandable.
| |
Marcel Verdaasdonk Netherlands
| | Posts 3979 08 Sep 2010 17:59
| Gunnar von Boehn wrote:
|
steve thomas wrote:
| It appears that the sub-cores will "standard" 070's which may not have the peak performance of dedicated DSP. |
Why do you think a 070 would have less performance than such a DSP?
|
It is a generally accepted fact specialized hardware out preforms general hardware. I am under the assumption a CPU fall under the classification general hardware, DSP's are optimized for a specific function. So could you explain if both had the same speed and same bandwidth, why would the CPU out perform specialized/optimized hardware on a so called 'home ground advantage'?
| |
Gunnar von Boehn Germany
| | (Moderator) Posts 5775 08 Sep 2010 18:10
| Marcel Verdaasdonk wrote:
| So could you explain if both had the same speed and same bandwidth, why would the CPU out perform specialized/optimized hardware on a so called 'home ground advantage'?
|
This is simple to explain. :-) Lets repeat our development timeline: 1) Get 68050 out of the door 2) Bring 68050E out 3) Bring 68070 (the best 68K core ever) out. At this point the 68070 will be the best 68K CPU ever. Now cloning the 070 to get some MAID-Cores will take a few days work only. In a few days work you can NOT develop a DSP. This mean you have the choice between A) The best 68K core ever as maid B) No DSP core as the development is not done. Developing a dedicated DSP will take long time. Maybe 1 year, maybe 2 years. End even after 2 years development time its not sure that the DSP will be as fast as the 68070 core. Instead spending time on develping "island solutions" it would make much more sense in enhancing the 68070 into an 68090 ... Any general enhancements to the 68K will benefit all cores. The main CPU core, and all Maid-Cores. I assume you all agree with me.
| |
Lord Aga
| | Posts 129 08 Sep 2010 18:21
| You bet :) 68K all the way !
| |
Steve Thomas United Kingdom
| | Posts 178 08 Sep 2010 18:25
| Gunnar von Boehn wrote:
|
steve thomas wrote:
| It appears that the sub-cores will "standard" 070's which may not have the peak performance of dedicated DSP. |
Why do you think a 070 would have less performance than such a DSP?
|
OK, I accept that the 070 will be faster than a non-existent DSP. But, as Marcel said specialised hardware is generally faster.
| |
Gunnar von Boehn Germany
| | (Moderator) Posts 5775 08 Sep 2010 18:41
| steve thomas wrote:
| OK, I accept that the 070 will be faster than a non-existent DSP. But, as Marcel said specialised hardware is generally faster.
|
Now is this prejustice or fact? Please take the time and try to explain why you think a DSP like the propused 98000 should be faster.
| |
Amiga Believer Canada
| | Posts 282 08 Sep 2010 23:28
| > It is a generally accepted fact specialized hardware out preforms general hardware. This is of course true.> I am under the assumption a CPU fall under the classification general hardware, DSP's are optimized for a specific function. Exactly, the instruction set of the m96k was specifically chosen to speed up signal processing, on the other hand, the m68k instruction set is not specifically tuned for signal processing / audio processing. This is like saying: forget the 3D core, we shall put a second 68k, it will be easier. Components should be sepecialized for their dedicated task. Otherwise, we are just going to create a 68k version of the IBM Cell processor, which is a fair design (but no more). We should not just have a second 68k for whatever use a programmer finds for it. We should have a dedicated sound processor. I often find that on the Amiga platform, people treat audio as something of second-level importance compared to graphics, which is unfortunate. I consider sound to be of top importance, even more than graphics. There should be a dedicated audio processor just as there is a dedicated 3D core. Moreover, the advantage of software already supporting the m56k (found on the Delfina family of sound cards) should not be overlooked, those programs can be patched to take advantage of the m96k and m56k compatible DSP. The m96k has several strong points, like it's ability to do 10 operations in parallel, which I already mentionned. I recommand against the modern approach of doing everything in software on a generic processor. Things such as audio should be done in hardware, in realtime on a dedicated co-processor. > Please take the time and try to explain why you think a DSP like the propused 98000 should be faster. It is a 96000, not an inexistant 98000. The reason why it would be faster is obvious, the m96k can do three arithmetic operations in parallel (versus 1 for the 68k), and a total of 10 operations in parallel. It works on it's local SRAM, rather than on the ChipRAM to which it is connected, this lessens the load on the ChipRAM bus, it can do DMA transfers between it's SRAM and the external RAM, in this case, the NatAmi ChipRAM. These transfers can be done in parallel to the DSP unit doing other instructions. More over, it has on board lookup tables for sine and log operations (I do however wonder how they managed to put such a table in 2048 memory words).
| |
Guillaume Michalakakos France
| | (MX-Board Owner) Posts 454 09 Sep 2010 00:01
| A lot of informations about the 96002 and all others DSP made by motorola here : EXTERNAL LINK
| |
Marcel Verdaasdonk Netherlands
| | Posts 3979 09 Sep 2010 00:11
| hm Gunnar I never said a thing about development time. And i think 68080 would still be between the 68070 and the 68090. DSP is a little bit to general but Gunnar you do agree blitter is faster than the CPU in coping information, right? And your example is a bit unfair, there are plenty of available DSP in VHDL. ;) But as i said before in this post it's a little too general still.
| |
Ceti 331 United Kingdom
| | Posts 282 09 Sep 2010 04:49
| Amiga Believer wrote:
| It works on it's local SRAM, rather than on the ChipRAM to which it is connected, this lessens the load on the ChipRAM bus, it can do DMA transfers between it's SRAM and the external RAM, in this case, the NatAmi ChipRAM. These transfers can be done in parallel to the DSP unit doing other instructions. More over, it has on board lookup tables for sine and log operations (I do however wonder how they managed to put such a table in 2048 memory words). |
What do you think to the idea of adding Scratchpad RAM to the Slave Cores to make them more DSP-like. maybe something like the SH4 where the half the cache could be switched into scratchpad optionally, or just doing that permanently.. Have they discussed Cache Coherency issues with their subcores idea here ? :)
| |
Amiga Believer Canada
| | Posts 282 09 Sep 2010 05:47
| As I said, I favour specialised hardware over generic one. A slave core is not the best approach, a dedicated audio DSP that does nothing but audio is a better one.
| |
Claudio Wieland Germany
| | (Natami Team) Posts 706 09 Sep 2010 06:55
| This is all about time-to-market. How many years do you intend to wait, until this and that special DSP is implemented and tested? I'd like to point out that Team Natami is not the only one working on a system. In this sense, we're on a competition with others. And the faster we find a *decent* and *working* solution, which is appropriate for a FPGA based system, the more "market share" there will be for Natami. The first one to penetrate a market, is the one to be dominant. You're right that a special piece of hardware *can* work faster than a less dumbed down CPU. But each special piece of hardware introduces a new unorthogonality into the system. This makes it a lot harder to code for it. If you, say, add 3 new special hardwares, each with its own instruction set: Who will want to learn all that? This makes it 3x harder to get 100% power out of the hardware, as each new architecture has its own intricacies. At first, I was reluctant about Gunnar's idea, too ;-) . But I arrived the conclusion that in a FPGA based system, it makes much more sense to add generic computing power first. We have a hard clockrate limit to obey. And FPGAs are perfect for doing 100x the same thing in parallel. The N050 is great, but still a lot less powerful than modern-day standard CPUs. If we want to make Natami a powerful system, we first have to overcome the most obvious lack of Amiga nowadays: Generic computing power. This does not mean at all that there will never be some new specialised hardware additions to the system. But for now, they are really totally low priority. We need to multiply the generic power first, and make it easily accessible. Cheers
| |
|
|
|
|