Embedded CPU advice... - Miata Turbo Forum - Boost cars, acquire cats.

Welcome to Miataturbo.net   Members
 


Insert BS here A place to discuss anything you want

Reply
 
 
 
LinkBack Thread Tools Search this Thread
Old 08-31-2010, 02:09 AM   #1
Boost Pope
Thread Starter
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Delicious and Moist.
Posts: 26,326
Total Cats: 1,926
Default Embedded CPU advice...

Please, keep this thread clean. I need the voice of experienced programmers here.

So I've finally convinced the right people at work that it's time for us to explore an IP-based alternative to our current audio network architecture, which is essentially circuit-switched TDM OC3. Now the problem is that I need to start coming up with a plan for a proof-of-concept.

What I need to build, quite simply, is a box which sits between the ethernet world (1000bT) and an FPGA, shoveling data between the two. It'll need to handle receiving data from the gate array and shipping it out to various multicast destinations, as well as receiving multicast streams, buffering them to ensure they're assembled in order and without dropouts and then sending them to the gate array. If it can also manage to drive a display and take input from a keyboard-like device, all the better.

For the FPGA-CPU interface, I'm thinking we'll probably use PCIe and DMA. The Xilinx Spartan 6 XLTs have four PCIe channels in silicon, so that part should be easy. Where I fall on my face, in terms of practical knowledge, is in knowing what it's going to take in terms of CPU power to handle the ethernet side of the equation. In looking around at the SBC / SOM market, I see a lot of relatively powerful Atom-based systems (example), some ARM9 devices (example), and... not much else.

Oh, and it's got to be fanless. I don't give a crap about form factor or power requirements, but no fans. Our stuff goes into recording studios, not server rooms.

In terms of being able to move a pretty massive amount of multicast packets what's it actually going to take to make this happen? Useful datarate will be in the 150-200 Mb/sec neighborhood, both ways, continuous. That's raw payload only, without overhead, and packet sizes are going to be tiny- in our current architecture, each "packet" is 32 bits per audio stream, delivered serially at a rate of 48,000 per second, and figure 50-100 streams per device, depending on configuration. The tradeoff for larger packet sizes is a larger buffer and more delay, which isn't a good thing in a live broadcast environment. This ain't VOIP.
Joe Perez is offline   Reply With Quote
Old 08-31-2010, 03:17 AM   #2
Supporting Vendor
iTrader: (10)
 
Reverant's Avatar
 
Join Date: Jun 2006
Location: Athens, Greece
Posts: 5,441
Total Cats: 198
Default

ARM9 is your answer.
Reverant is offline   Reply With Quote
Old 08-31-2010, 03:20 AM   #3
Elite Member
 
Join Date: Jul 2005
Posts: 6,454
Total Cats: 80
Default

With convection heat pipe cooling...
JasonC SBB is offline   Reply With Quote
Old 08-31-2010, 03:42 AM   #4
Supporting Vendor
iTrader: (10)
 
Reverant's Avatar
 
Join Date: Jun 2006
Location: Athens, Greece
Posts: 5,441
Total Cats: 198
Default

A decently sized heatsink would do, no problems there.
Reverant is offline   Reply With Quote
Old 08-31-2010, 11:26 AM   #5
y8s
2 Props,3 Dildos,& 1 Cat
iTrader: (8)
 
y8s's Avatar
 
Join Date: Jun 2005
Location: Fake Virginia
Posts: 19,038
Total Cats: 407
Default

do you have a latency limitation?
y8s is offline   Reply With Quote
Old 08-31-2010, 01:31 PM   #6
Elite Member
iTrader: (24)
 
Join Date: Jun 2007
Location: Sherman Oaks, CA
Posts: 4,481
Total Cats: 3
Default

Do you need to filter incoming traffic in any way? As I understand it's all TCP/IP based. If that is the case, I would suggest something like Intel Atom D510 - plenty of power to do some traffic shaping and other more advanced things with minimal power consumption and nominal heat produced. Plus its x86_64 which would make programming so much easier since you can install Linux and use a shitload of pre-existing libraries to help you.
UrbanSoot is offline   Reply With Quote
Old 08-31-2010, 02:18 PM   #7
Boost Pope
Thread Starter
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Delicious and Moist.
Posts: 26,326
Total Cats: 1,926
Default

Quote:
Originally Posted by Reverant View Post
ARM9 is your answer.
Seriously? It just seems counterintuative to me that a 500 Mhz ARM9 device could actually sustain the sort of datarate we need, bi-directionally, over a non-trivially complex protocol. But then, I have utterly no basis for comparison here.

One thing I'm noticing is that most of the Atom & Geode based platforms come with on-board VGA, whereas the ARM9 machines, if anything, include only a simple LVDS driver. Having done a bit more research into Realtime Linux, it seems that with some clever coding, we can probably run the whole user interface on the platform as well, by assigning the network code to run in the realtime kernel, and sending the UI over to the "full" kernel to be run in a best-effort mode.


Quote:
Originally Posted by JasonC SBB View Post
With convection heat pipe cooling...
We have some flexibility here. Since we design our own enclosures as well, we can come up with some mechanical interconnect between the CPU and the chassis which should serve as an effective heat-spreader. I just need to make sure that whatever chip we go with can operate at whatever rate it needs to in order to handle this workload, 24 hours a day for 10 years, without ever throttling itself down to the point where throughput is compromised.


Quote:
Originally Posted by y8s View Post
do you have a latency limitation?
Well, it's a give-and-take sort of scenario.

The big limitation here is in dealing with "live" audio paths, such as between a DJ's microphone and his headphones. In such an environment, the end-to-end delay really needs to be kept down to just a couple of milliseconds, or else the talent will start to perceive comb filtering effects. Presently, we achieve signal latencies in the tens of microseconds for signal paths that are internal to one device, and generally under 200us across a large routed path.

Of course, there are a lot of sources for which latency is no bother at all. The path from a device such as CD player or automation computer to air could easily suffer delay in the tens of milliseconds, and something like a satellite receiver or an OB CODEC could tolerate 100 ms or more without anybody noticing.

One approach here would be to have variable payload sizes. A "critical" source might be transported in packets of just one or two samples each, whereas a less critical source might be bundled into packets of tens of samples or more prior to transmission. This would lower the workload on the system somewhat.

(I wonder if that idea is patentable? Just to be safe, let's say that I reserve all rights to that concept.)
Joe Perez is offline   Reply With Quote
Old 08-31-2010, 02:21 PM   #8
Boost Pope
Thread Starter
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Delicious and Moist.
Posts: 26,326
Total Cats: 1,926
Default

Quote:
Originally Posted by UrbanSoot View Post
Do you need to filter incoming traffic in any way?
Assuming that the switch fabric does its job properly, no. If I understand IGMP correctly, any particular device should only be receiving traffic that it has subscribed to.


Quote:
As I understand it's all TCP/IP based. If that is the case, I would suggest something like Intel Atom D510 - plenty of power to do some traffic shaping and other more advanced things with minimal power consumption and nominal heat produced. Plus its x86_64 which would make programming so much easier since you can install Linux and use a shitload of pre-existing libraries to help you.
I'm leaning in that direction, for the exact reasons you illustrate.
Joe Perez is offline   Reply With Quote
Old 08-31-2010, 03:42 PM   #9
Elite Member
iTrader: (12)
 
Join Date: Aug 2006
Location: Central-ish VA
Posts: 4,449
Total Cats: 16
Default

There is no OTS porduct that already does what you are talking about? Or would you building it yourself be cheaper than parts+labor for them to pay you to do it?
neogenesis2004 is offline   Reply With Quote
Old 08-31-2010, 03:56 PM   #10
Boost Pope
Thread Starter
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Delicious and Moist.
Posts: 26,326
Total Cats: 1,926
Default

This isn't a personal project, it's a new technology platform for my company's line of networked audio consoles.

So no, there's really no specific product that interfaces directly to our current FPGA-based audio DSP technology and converts it to ethernet. The goal, however, is to find an off-the-shelf single board computer platform which we can write some code for and then integrate it into a box which will also contain the requisite hardware to translate between the PC world and our current OC3-based links. As we move forward, future products will forgo the OC3 interface in favor of integrating directly with the SBC, probably via PCIe.
Joe Perez is offline   Reply With Quote
Old 08-31-2010, 04:00 PM   #11
Elite Member
iTrader: (12)
 
Join Date: Aug 2006
Location: Central-ish VA
Posts: 4,449
Total Cats: 16
Default

I see now, the bigger picture. I didn't clue in that you were trying to add an additional product to your company's current line. I thought you were still doing traveling studio setup thing, didn't realize you were working on audio product engineering now.
neogenesis2004 is offline   Reply With Quote
Old 08-31-2010, 04:01 PM   #12
y8s
2 Props,3 Dildos,& 1 Cat
iTrader: (8)
 
y8s's Avatar
 
Join Date: Jun 2005
Location: Fake Virginia
Posts: 19,038
Total Cats: 407
Default

we've dealt with some companies that do wireless transmission of two video channels over multiple wireless N channels (or a network cable) and we try to hit (wireless) latencies of 10ms or below (less than a frame of video at 60Hz).

most of what we've seen are embedded linux or windows systems that have one or more expresscard slots for the network adapter (future flexibility) but I'm not sure of the processors.

Pretty sure the last one I saw didn't have a fan.
y8s is offline   Reply With Quote
Old 08-31-2010, 04:13 PM   #13
Elite Member
iTrader: (12)
 
Join Date: Aug 2006
Location: Central-ish VA
Posts: 4,449
Total Cats: 16
Default

I agree with Slava, for proof of concept or even production it would be hard to beat a dual core atom cpu running at like 1.7Ghz. That should give you MORE than enough power to work with when running a small linux kernal. would also give you a PCI-E slot that you could make a custom interface card for your FPGA interface.

Is size even a consideration or are you looking at a rackmount solution?
neogenesis2004 is offline   Reply With Quote
Old 08-31-2010, 05:23 PM   #14
Boost Pope
Thread Starter
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Delicious and Moist.
Posts: 26,326
Total Cats: 1,926
Default

Quote:
Originally Posted by neogenesis2004 View Post
I agree with Slava, for proof of concept or even production it would be hard to beat a dual core atom cpu running at like 1.7Ghz.
Indeed, I hadn't even noticed that all of the ARM9 boards I've come across are PCI only, no PCIe. Not a total deal-killer, but PCIe is definitely looking like the preferable interface.

And obviously, the whole point of a proof-of-concept demo is to get into the general ballpark of the chipset that would be used in the final product.


Quote:
Is size even a consideration or are you looking at a rackmount solution?
It's not a major concern right now. The product currently being looked at will be a rackmount device, and while 1RU would be nice, 2RU isn't going to kill anyone.

Ultimately, it would be nice if it were able to be integrated into the audio console itself. I'm assuming that as time marches on, dual-core atom SOMs (or something that's binary-compatible with them) will start showing up. When you are building products with a typical 5-10 year production lifecycle, obsolescence is always a Sword of Damocles.
Joe Perez is offline   Reply With Quote
Old 08-31-2010, 11:36 PM   #15
Elite Member
iTrader: (24)
 
Join Date: Jun 2007
Location: Sherman Oaks, CA
Posts: 4,481
Total Cats: 3
Default

Supermicro has a D510-based server motherboard for cheap and it fits perfectly in their 1U half-depth cases

PS: once you are ready for production, you can get very good custom-made server cases from Casetronic. I believe Supermicro does custom to-spec systems too.

Anyways, if you are looking for something dirt cheap - look into VIA C7 CPUs as well. Plenty of boards and software support.
UrbanSoot is offline   Reply With Quote
Old 08-31-2010, 11:54 PM   #16
Elite Member
iTrader: (12)
 
Join Date: Aug 2006
Location: Central-ish VA
Posts: 4,449
Total Cats: 16
Default

If you used a ION/ION2 atom board you could also use the CUDA dev kit to make use of the geforce core. http://developer.nvidia.com/object/c...downloads.html That should be able to accel greatly at processing audio streams. The Geforce 9400M has 16 stream processors and runs at almost 600MHz. I don't see how you could possibly need more HP.
neogenesis2004 is offline   Reply With Quote
Old 09-01-2010, 01:55 AM   #17
Boost Pope
Thread Starter
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Delicious and Moist.
Posts: 26,326
Total Cats: 1,926
Default

Quote:
Originally Posted by neogenesis2004 View Post
If you used a ION/ION2 atom board you could also use the CUDA dev kit to make use of the geforce core.
Interesting. I'd never really thought about a GPU. Honestly though, I'm very much leaning towards a regular ole' commodity x86-class board that has everything on it we'd need- ethernet MAC, video, PCIe host, USB host, etc.




Quote:
Originally Posted by UrbanSoot View Post
Anyways, if you are looking for something dirt cheap - look into VIA C7 CPUs as well. Plenty of boards and software support.
Hmm. I don't think I've run across any in my searching. Essentially, I'm focusing on finding systems that have all of the I/O that I need (including Gig-ethernet) and then whatever processors they happen to have is somewhat secondary.



Quote:
Originally Posted by UrbanSoot View Post
PS: once you are ready for production, you can get very good custom-made server cases from Casetronic.
Appreciate it, but we do all of our own mechanical fab in-house.




It occurs to me that most of y'all have no idea what I actually do for a living, so here's some examples of the products we build.

First, an oldie, but one of my favorites, the ABX Multitrack console:






Here's BMX, the mack daddy of major-market on-air boards in its day (recently discontinued). This one's in Ryan Seacrest's studio at E!:






Netwave, one of our newer boards targeted at the "budget conscious" market (ie: it only costs about $15,000):


(Yes, that is a HUD.)



Our "workhorse" console, the RMX.





SMX, a tiny little two-bus mixer for news booths, voicetrack rooms, etc:





The Vistamax (well, six of them, plus power supplies). This is the core routing frame. Each one is capable of handling up to 448 audio inputs and outputs, plus providing network connectivity for the consoles:

Joe Perez is offline   Reply With Quote
Old 09-01-2010, 03:22 AM   #18
Elite Member
iTrader: (12)
 
Join Date: Aug 2006
Location: Central-ish VA
Posts: 4,449
Total Cats: 16
Default

Quote:
Originally Posted by Joe Perez View Post
Interesting. I'd never really thought about a GPU. Honestly though, I'm very much leaning towards a regular ole' commodity x86-class board that has everything on it we'd need- ethernet MAC, video, PCIe host, USB host, etc.
You do realize that a ION motherboard is a regular ole' x86 class board right? It contains an Atom cpu, either single or dual core, and a ATI 9400M gpu. ION is just a moniker signifying that it has those two things. The same way Intel's "Centrino" moniker signifies a laptop has an intel cpu and intel wireless card. Its just a label. It will also have GB ethernet, powerful video that can also be harnessed for processing data, PCIe x16 slot on many, USB, literally every input and output you should need. It can also run just about any OS since there are ports of basically everything and virtually everything runs on x86 hardware these days. A ton of enterprise level hardware like load balancers, firewalls, etc use either linux or a modified windows CE OS. Its much simpler than making an embedded OS from scratch for threading, scheduling, etc... They just serve up their menu using something similar to IIS or Apache to configure over a browser through HTTPS.
neogenesis2004 is offline   Reply With Quote
Old 09-01-2010, 12:20 PM   #19
Boost Pope
Thread Starter
iTrader: (8)
 
Joe Perez's Avatar
 
Join Date: Sep 2005
Location: Delicious and Moist.
Posts: 26,326
Total Cats: 1,926
Default

Quote:
Originally Posted by neogenesis2004 View Post
You do realize that a ION motherboard is a regular ole' x86 class board right?
No, I didn't. Didn't realize we'd gone in that direction.

I went and looked it up, and it looks like a fine PC board, but we really need a proper SOM-style board, with a single source power supply, I/O on headers rather than back-panel connectors, etc. A desktop-style ATX/ITX/BTX board would be a bit of a pain in the *** to deal with in terms of powering it and interfacing to it. Not impossible, just not my first choice.

There's also a certain stigma within the company attached to anything that's obviously a "PC." Can't explain this, it's just how things are. Make it look like a ruggedized industrial controller and folks are fine with it. But if it looks like something you could buy at Fry's or from Dell, it's perceived as cheap and flimsy.
Joe Perez is offline   Reply With Quote
Old 09-01-2010, 01:42 PM   #20
Elite Member
iTrader: (12)
 
Join Date: Aug 2006
Location: Central-ish VA
Posts: 4,449
Total Cats: 16
Default

Quote:
Originally Posted by Joe Perez View Post
No, I didn't. Didn't realize we'd gone in that direction.
You yourself said above that you were leaning toward a x86 board..... So I'm not computing what you are even considering an option anymore. I'll just stay out of this now. GL
neogenesis2004 is offline   Reply With Quote
 
 
Reply

Related Topics
Thread Thread Starter Forum Replies Last Post
A better Spark Out circuit. Joe Perez MEGAsquirt 180 08-18-2015 10:18 AM
Saudis in Audis Cspence Insert BS here 2 10-22-2010 11:22 AM
Because I'm a nerd. dustinb Insert BS here 29 09-14-2010 05:50 PM
Need some more help hbrew MEGAsquirt 7 07-13-2010 09:41 AM
Diy cpu Joe Perez Insert BS here 7 04-27-2009 11:35 PM


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



All times are GMT -4. The time now is 09:26 AM.