I'm an embedded software engineer, but my role would also include systems engineering. If we can procure off the shelf products that meet our requirements then we will not design in house. As a systems engineer, then security is obviously high, then I would say manageability. Connectivity is up front in making our choices. Performance is less of an issue for us.
Cars are where we will probably see huge advances happening. While they happened in the phone sooner, the potential for change there is more limited. Phomnes have been multi-processor for ever (almost).
@mclaus - there are probably several ways including shared memory or using interfaces such as IPC. These are both generic in that they dont have to know where they are running. Shared memory is faster but does require some platform specific to be known, but IPC is slower.
Quantum computing - Dont know. IN some applications it may be an interesting way to go. Digital/binary computation is not particularly efficient, neither is synchronous design. The industry tends to design what it knows and has good tools for.
@lyrad - what a complex question! If you are concerned about scheduling as part of the design phase, many companies are now deploying virtual prototypes where they can assess their communications needs and measure expected response times. I not sure there is an easy way to do it.
JuanP - also, consider that as processors become more powerful there is incentive to consolidate embedded systems. Virtualization allows embedded systems of different criticalities to share a (multi-)processor without jeopardy.
@JuanP - I also gave the example of the car. Centralization of processing removed long latency communications necessary for things such as direct car control. You would not use a single core for this because of real time constraints and security reasons.
Am I correct in assuming that many (most?) of these types of processor features are usually not exercised by application SW directly - but are usually utilized primarily by some kind of middle ware - OS or 3rd party library?
Can you give examples of how virtualization might help in embedded systems? I still do not see a strong case for it. Your example in server farms is not a good embedded system example, it is a typical IT system.
Another path is for companies like ARM who make their processor available as IP. Then Semiconductor companies can make custom chips for particular applications. This requires higher volumes than standard CPU parts.
Remember that a system is more than justy a processor - it needs other supporting hardware. There are many industrial companies that boards and systems suitable for industrial apps, or automotive applications.
@mclaus: The hypervisor is usually responsible for multiplexing requests from multiple VMs to the single physical instance of the hardware. This is very important for things like I/O mapped access to PCI bus where an access actually requires two transactions.
Currently working on sensor packs of software for factory sensing plus vibration sensors for low frequency. Also working on the data collection model with data servers ethernet and DB servers on Linux. The whole architecture I guess.
@lyrad -- I agree -- I have built manufacturing systems that could rebuild themselves -- both program and data -- if servers or data collection failed. The processors and network must support the eHealth part ad the security -- they cannot provide it.
Be sure to right-click and save to your desktop 'Today's Slide Deck' under Special Educational Materials above right to download the PowerPoint for today's session. Brian will talk through the slides during his lecture.
The streaming audio player will appear on this web page when the show starts at 2pm eastern today. Note however that some companies block live audio streams. If when the show starts you don't hear any audio, refresh your browser and the player should appear. Also, if IE doesn't "like" the player, try Firefox.