Security Locks Becoming Pickable
Tue, 11/01/2005 - 07:48
Systems Programming
As much of a problem as it is for that crowd, it is a much more serious concern for many embedded systems. Any device that depends on IPSEC or SSH could suddenly find itself vulnerable unless a new executable can be distributed to devices already in the field. The necessary conditions for this are a device that is designed with this type of upgradeability and the awareness that upgrades are necessary. I suspect that the first condition is more common today than the second one, given that most embedded developers are users of security protocols rather than security specialists.
The typical pattern of upgrades like these is that not much is done about them until a headline-quality event takes place and raises public awareness. The trick is to be among those reading the headline rather than being the subject of them.
Larry Mittag
Trig the Easy Way
Mon, 09/26/2005 - 20:00
Digital Signal Processing
Notice that the need for non-integer calculations is not completely removed. The calculations described use ratios of whole numbers which still require fractional calculations. The win is that these ratios should be much more amenable to fixed-point arithmetic rather than full floating point. This could significantly improve the throughput on a number of applications that calculate phase angles, potentially even allowing these calculations to be implemented in hardware rather than software.
These are the kinds of advances that can make significant differences to many embedded systems, even though they are often largely ignored by desktop programmers. I look forward to learning more about it.
Larry Mittag
Next-Level Systems Design Options
Fri, 07/15/2005 - 07:31
Systems Design
At one level, this reminds me of the old joke about the MIT grad student who was assigned an application program to write by his professor. After a few weeks the prof asked how it was going. "Great!", came the reply. "I am almost done designing the language to write it in!".
It is certainly true that a lot of time can be spent reinventing the wheel with design options like this, but it also gives us a way to experiment with new ideas for design. As I have mentioned before, I think we need to break out of the current design box and find new ways to design systems rather than hardware or software.
Larry Mittag
Universal Translator
Wed, 07/13/2005 - 06:59
Design Methodologies
I have long imagined a system where a software engineer could examine a representation of a proposed system that was meaningful to him. This representation would be on a tool with a button that could be pressed to represent the same system in a hardware-centric view. Personally I think this is more feasible than a common language between these two groups, but others think differently. That is the crux of an article out of EE Times by someone with yet another "universal" design tool.
The problem with this concept is that the result will always be a compromise. As (mostly) a software guy I want something that shows what I need to see in a manner that is as unambiguous as possible. Resistor values and gate counts are noise as far as I'm concerned.
Larry Mittag
Redefining Computer Architectures
Tue, 07/12/2005 - 08:37
Systems Design
We have been in a stagnant period regarding advances in computer architecture for a decade or more now. A lot has gotten done in that period due in part to the relative stability of that architecture, but the cracks are getting too big to ignore. Reexamining the CPU architecture is a good start, but the advent of SoC and FPGA-based macroarchitectures are an excellent opportunity to experiment a bit with more radical departures. The PC is capable of doing a lot of good things, but it is boring. Is there a better way?
Larry Mittag
FPGA Design Becomes Mainstream
Thu, 07/07/2005 - 06:10
Design Methodologies
The first describes a toolset that recompiles C code into an FPGA design. Many companies are struggling to define FPGA code already in terms of whether it is hardware or software, and tools like this are sure to blur that line even further.
The second is a bit more obscure, but no less indicative of the trend. This story describes a set of tools to support a Linix-integrated FPGA-based development system for mobile computing.
The key takeaway from these and similar stories is that FPGAs are not a niche specialty anymore. There have been predictions that hardware designs will someday consist of a very small number of massively-produced FPGA boards that are then programmed to function. I considered those predictions quite fanciful at the time, but now I am not so sure.
Larry Mittag
Stop the Madness
Thu, 06/02/2005 - 12:51
Design Methodologies
UML has been accepted by the mainstream software and systems design community as a de facto standard, but it is still meeting a lot of resistance from the embedded community. This is coming to a head as more complex systems are being rolled out with tighter design cycles and more stringent requirements. Case in point, the Toyota Prius has much more complex control software than usual in it’s famed power train, but apparently that software still has a bug or two in it. This is evidenced by the stalling problems that first surfaced on Edmunds.com and was subsequently reported on nationally by CNN at Prius hybrids dogged by software.
The question becomes when problems like this become serious enough to drive embedded developers to formal systems design methodologies. Granted, real-time software has it’s own set of problems that are often not well-addressed by standard design tools, but real-time extensions are available from a number of vendors that address this problem. There have been any number of tool companies that have attempted to survive selling design tools that assist embedded developers, and there is a graveyard of bodies for their efforts. When will this cycle finally end?
Open-Source Squabbling: Can't We All Just Get Along?
Tue, 06/21/2005 - 06:42
The Job
This is hardly surprising. It is always hard to coordinate creative people. There are always more than a few ways to implement an idea, with few objective ways to judge the quality of the result. There will be disagreements whenever people are working together, whether it is within the walls of a company or not. I have seen code that simply didn't work come out of both environments.
There are two ways to avoid this situation. The first is to use design tools like UML that can communicate a consistent vision of the system being designed. This type of rigor can be hard to enforce in an open-source environment, but it really does raise the level of communication.
The second solution is the empowerment of the individual. The best software I have seen is generally written by a single programmer. This is not always because the individual is an uber-programmer, but the simple fact is that it is easier to communicate with yourself than with others.
Larry Mittag






