<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Embedded Software &#187; Articles</title>
	<atom:link href="http://tech.opensystemsmedia.com/embedded-software/TECH/articles/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech.opensystemsmedia.com/embedded-software</link>
	<description>Beyond simple input/output data transformation, embedded software is built into the electronics of devices we use every day - cars, phones, TVs, appliances, health monitoring equipment, etc. - to control these systems&#039; interactions with the physical world. Embedded software thus becomes more complex as applications become more sophisticated in systems such as planes, missiles, and process control systems. Developers must consider timeliness, concurrency, liveness, reactivity, and heterogeneity when programming abstractions. Types of embedded software include operating systems such as embedded Linux, Windows Embedded, and Real-Time Operating Systems (RTOSs), which are intended for real-time applications and designed to be very compact and efficient, forsaking many functions that non-embedded computer operating systems provide. Communication protocols designated for embedded systems can be closed or open source.</description>
	<lastBuildDate>Mon, 30 Apr 2012 20:59:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Secure virtualization for tactical environments</title>
		<link>http://www.mil-embedded.com/articles/id/?5619</link>
		<comments>http://www.mil-embedded.com/articles/id/?5619#comments</comments>
		<pubDate>Thu, 19 Apr 2012 15:00:00 +0000</pubDate>
		<dc:creator>David Egts, Red Hat</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[about embedded systems]]></category>
		<category><![CDATA[application of embedded system in military]]></category>
		<category><![CDATA[applications of embedded systems]]></category>
		<category><![CDATA[applications of embedded systems in military]]></category>
		<category><![CDATA[embedded computer systems]]></category>
		<category><![CDATA[embedded control system]]></category>
		<category><![CDATA[embedded control systems]]></category>
		<category><![CDATA[embedded linux]]></category>
		<category><![CDATA[embedded operating system]]></category>
		<category><![CDATA[embedded operating systems]]></category>
		<category><![CDATA[embedded pc]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[embedded system]]></category>
		<category><![CDATA[embedded system application]]></category>
		<category><![CDATA[embedded system applications]]></category>
		<category><![CDATA[embedded system architecture]]></category>
		<category><![CDATA[embedded system design]]></category>
		<category><![CDATA[embedded system development]]></category>
		<category><![CDATA[embedded system engineering]]></category>
		<category><![CDATA[embedded system hardware]]></category>
		<category><![CDATA[embedded system pdf]]></category>
		<category><![CDATA[embedded system ppt]]></category>
		<category><![CDATA[embedded system programming]]></category>
		<category><![CDATA[embedded system projects]]></category>
		<category><![CDATA[embedded system software]]></category>
		<category><![CDATA[embedded system tutorial]]></category>
		<category><![CDATA[embedded systeme]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[embedded systems applications]]></category>
		<category><![CDATA[embedded systems architecture]]></category>
		<category><![CDATA[embedded systems basics]]></category>
		<category><![CDATA[embedded systems companies]]></category>
		<category><![CDATA[embedded systems design]]></category>
		<category><![CDATA[embedded systems development]]></category>
		<category><![CDATA[embedded systems engineer]]></category>
		<category><![CDATA[embedded systems engineering]]></category>
		<category><![CDATA[embedded systems hardware]]></category>
		<category><![CDATA[embedded systems jobs]]></category>
		<category><![CDATA[embedded systems magazine]]></category>
		<category><![CDATA[embedded systems ppt]]></category>
		<category><![CDATA[embedded systems programming]]></category>
		<category><![CDATA[embedded systems projects]]></category>
		<category><![CDATA[embedded systems software]]></category>
		<category><![CDATA[embedded systems tutorial]]></category>
		<category><![CDATA[embeded system]]></category>
		<category><![CDATA[embeded systems]]></category>
		<category><![CDATA[Industry Spotlight]]></category>
		<category><![CDATA[introduction to embedded systems]]></category>
		<category><![CDATA[linux embedded]]></category>
		<category><![CDATA[linux embedded system]]></category>
		<category><![CDATA[linux embedded systems]]></category>
		<category><![CDATA[military embedded systems]]></category>
		<category><![CDATA[military embedded systems magazine]]></category>
		<category><![CDATA[programming embedded systems]]></category>
		<category><![CDATA[real time and embedded systems]]></category>
		<category><![CDATA[real time embedded system]]></category>
		<category><![CDATA[real time embedded systems]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[what are embedded systems]]></category>
		<category><![CDATA[what is an embedded system]]></category>
		<category><![CDATA[what is embedded system]]></category>
		<category><![CDATA[what is embedded systems]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=6bbaf94ec204a3a0a69dfa60418dad13</guid>
		<description><![CDATA[Virtualization bestows significant benefits on the warfighter, including consolidation, uniformity, live migration, and performance, but only if that sensitive tactical data can rely on secure hypervisors.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="3" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5619%2Ffigures%2F3" />Virtualization has proven its value in the data center, but can it work in tactical environments? Yes, but only if it&#8217;s secure.</h3>
<p><span id="more-1002"></span><span class='body'>
<p class="body-text">The evolution of computing capabilities to allow the mobilization of data has paved the way for the transformation of tactical vehicles into rolling data centers. These impressive machines have provided invaluable resources for warfighters to dominate the battlefield. Unfortunately, despite the obvious benefits to packing a Humvee or tank with real-time intelligence computing equipment, these capabilities come at a not-so-obvious price: a sacrifice of precious power, cooling capabilities, and logistical space to accommodate the new equipment. For example, too many computers could adversely impact  visibility or generate additional heat in an  already scorching environment, dulling a soldiers&#8217; reaction time and potentially increasing health and safety risks.</p>
<p class="body-text">Interestingly, these rolling data centers are experiencing many of the same challenges found in today&#8217;s enterprise data centers &#8211; again, power drain, insufficient cooling, and lack of space. To address these challenges, data center managers have turned to virtualization to perform physical to virtual server consolidation, regularly achieving a 10 to 1 optimization or better. Can the lessons learned by virtualization in the data center also benefit tactical vehicle environments? What about special security requirements of tactical vehicles that contain content of differing classification levels? It is essential to understand the unique challenges and similarities between virtualized and physical server consolidation, as well as some of the secure  virtualization advances made by the open source community that can be directly applied to help the warfighter. </p>
<p class="heading-1">Benefits of virtualization</p>
<p class="body-text">There are several benefits to the deployment of virtualization to the field and in data centers, including consolidation, uniformity, live migration, and performance, which can specifically aid  warfighters and increase efficiency on the front lines. </p>
<p class="heading-2">Consolidation</p>
<p class="body-text">When workloads are consolidated with virtualization, hardware utilization increases. More can be done with less hardware, resulting in power, space, and cooling savings. In tactical environments, capabilities can be added with nominal increases in compute requirements. By consolidating workloads on fewer  physical systems, the newly available space can be repurposed for additional mission features, more bullets, and literally more elbow room for the crew. </p>
<p class="heading-2">Uniformity</p>
<p class="body-text">Virtualization allows data center managers to abstract hardware from the OS. This allows the data center manager to acquire the best performing hardware, for the lowest possible price, without needing to recertify software stacks. Hardware vendors can be pitted against one another to deliver the best value. In tactical environments, this advantage is even more profound, with no need for each application to have its own computer with an exotic form factor, power requirements, proprietary connectors, and so on. As a result, new capabilities can be added much more easily and hardware refreshes can happen much more quickly because, as mentioned, recertification time is reduced. Additionally, not every vehicle may need the same capability, so the need to rigidly budget power, space, and cooling, whether the capability is used or not, becomes relaxed. In the end, uniformity makes the warfighter much more nimble.</p>
<p class="heading-2">Live migration</p>
<p class="body-text">If imminent hardware failure is detected on a hypervisor in the data center, a workload can be live migrated with zero downtime. Even if the hypervisor fails unexpectedly, the virtual machines running on it can be restarted on other hardware without user intervention. In tactical environments, battle damage resulting in the loss of a computer may result in loss of critical capabilities needed in the heat of battle. By running workloads directly on physical hardware, the capability may not be restored until the warfighter returns for the vehicle to be serviced, which may be too late. If the workload is virtualized, it could be migrated in real-time to or restarted on a functional server elsewhere in the vehicle without warfighter intervention. As a result, the probability of the warfighter losing a mission-critical component during battle for an extended period of time is lessened.</p>
<p class="heading-2">Performance</p>
<p class="body-text">Some workloads that require low-latency or high-bandwidth communication between systems actually run faster when virtualized on the same piece of hardware. This is because the virtual network communication is done over the system backplane instead of going from physical system to physical system across a much slower and higher latency networking infrastructure. This increased performance and lower latency can help the warfighter respond much more quickly in the heat of battle. </p>
<p class="heading-1">Is virtualization secure?</p>
<p class="body-text">Not by itself. If a hypervisor is compromised, not only is it compromised, but so are the virtual machines running on it as well as the virtual machine disk files connected to the hypervisor that may be running on it, on another hypervisor, or at rest. When a hypervisor exploit happens, restoring all virtual disk files from a known reliable backup is needed. If the time of exploit cannot be pinpointed, a full reinstall from scratch may be necessary. Many virtualization security solutions put in place offer a trusted means for the virtual machines to communicate with each other, but these tools offer no protection in the event of a hypervisor compromise. If virtualization is to be deployed in tactical environments, the hypervisors must be secure so the warfighter can trust the integrity of the components supporting the mission. So do technologies exist to prevent this type of exploit? Yes, thanks to the open source community. </p>
<p class="body-text">Secure virtualization with sVirt: <span class="italics">sVirt </span>is a secure virtualization open source project, built upon a time-tested SELinux open source project pioneered by the NSA and the commercial software industry, dating back to 1999. sVirt is used to securely isolate KVMs (or Kernel-based Virtual Machines) from the hypervisor and from each other. Before we get into the details of sVirt, let&#8217;s do a quick review of SELinux and KVM:</p>
<p class="body-text"><span class="italics">SELinux</span> predates x86-based virtualization and was originally used to lock down physical systems to prevent rogue applications from harming one another as well as the main system. SELinux is all about labeling. Every object on an SELinux system is labeled according to its function. This includes processes, users, files, hardware devices, network ports and adapters, and so on. The SELinux policy allows objects with certain labels to explicitly access objects with other labels and deny everything else. For instance, if a rogue web server process wants to read a password file, SELinux will block and log the access since the SELinux policy does not explicitly allow processes with a web server label to access files labeled as password files. SELinux is not an add-on to Linux &#8211; it is built in. SELinux has been enabled by default in mainstream enterprise Linux distributions since 2007.</p>
<p class="body-text"><span class="italics">KVM </span>is an open source project that emerged in 2006 and was accepted in the upstream Linux kernel in 2007 and can today be found in numerous Linux distributions. KVM is unique in that all KVM virtual machines are Linux processes. As such, KVM is very lean because it can leverage the time-tested Linux operating system to manage VMs, perform hardware enablement, and leverage advances in power efficiency and performance, to name a few. As a tremendous side effect, in the same way a web server process can be confined with SELinux policy, a KVM virtual machine process with the SELinux policy called <span class="italics">sVirt,</span> mentioned previously, can also be confined.</p>
<p class="body-text">At a high level, sVirt works by placing SELinux &#8220;force fields&#8221; around virtual machines, which confine what they can do. sVirt can even protect virtual machine guests that do not have the built-in protections of SELinux like Windows, as pictured in Figure 1.</p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure1', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5619%2Ffigures%2F1" title="High-level overview of KVM with sVirt protection"><br />
					<img width="470" border="0" alt="Figure1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5619%2Ffigures%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 1:</b> High-level overview of KVM with sVirt protection</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="body-text">When a virtual guest starts, the KVM Linux process is given a unique SELinux label by sVirt. Correspondingly, the virtual disk file of that virtual machine is given a matching label. With the exception of the process and the virtual disk file, no other object on the system has the same label. When a second virtual machine starts, the second virtual machine&#8217;s KVM Linux process and virtual disk file are given their own unique but matching labels. This is all pictured in Figure 2.</p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure2', 'width=875,height=834,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure2" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5619%2Ffigures%2F2" title="Unique virtual machine process and disk file dynamic labeling by sVirt"><br />
					<img width="470" border="0" alt="Figure2" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5619%2Ffigures%2F2" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 2:</b> Unique virtual machine process and disk file dynamic labeling by sVirt</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom)</b></div>
</td>
</tr>
</table>
</figure>
<p class="body-text">In the event that a virtual machine is able to do a hypervisor exploit and gain administrator access, sVirt at the kernel level confines the virtual machine to only what is allowed by the sVirt SELinux policy, namely to see its own disk file (not others), use other resources narrowly allowed by virtual machines, and nothing else.</p>
<p class="body-text">Sounds great, but does sVirt really work? Actually, yes. At the Black Hat USA 2011 conference, Nelson Elhage presented a method to compromise KVM, but the use of sVirt defeated his approach.</p>
<p class="body-text">Side note: Interestingly enough, the labels created by sVirt are Multi Category Security (MCS) labels. MCS (and Multi Level Security or MLS) labels are concepts derived directly from secure computing efforts driven by the NSA and other agencies. The fascinating part is that this demonstrates how agencies with classified data requirements have helped the open source community take their requirements from niche to mainstream. By leveraging the proven MCS capabilities of SELinux, Common Criteria certification of KVM with sVirt becomes much easier.</p>
<p class="body-text">Red Hat is a contributor on both the sVirt and KVM projects, as well as SELinux, utilizing their Red Hat Enterprise Linux and Red Hat Enterprise Virtualization products. For more information on these projects, visit www.selinuxproject.org or www.linux-kvm.org.</p>
<p class="heading-1">Future work</p>
<p class="body-text">Things can always be made better and more secure. An additional concept being integrated into virtualization is the concept of resource control groups or <span class="italics">cgroups.</span> In the same way as SELinux can confine access by Linux processes, cgroups is used to control the CPU, network, memory, and other resources consumed by Linux processes. Since KVM virtual machines are Linux processes, they can also be confined by cgroups in the same way they are confined by sVirt. This paves the way for resource fairness when it comes to virtualization multitenancy. One integrator&#8217;s virtual machine won&#8217;t overconsume their fair share of system resources, which could adversely affect another integrator&#8217;s virtual machine on the same hypervisor. From a security perspective, cgroups can also be used to prevent a denial of service attack on one virtual machine from taking down an entire hypervisor.</p>
<p class="body-text">Another open source effort under consideration is that of trusted computing. As computing resources containing sensitive data are pushed deeper and deeper into the battlefield, a secure means to boot and trust federated systems that aren&#8217;t locked and under guard in a data center becomes paramount. The open source community along with government agencies and hardware and software vendors are actively working on trusted computing technologies to address these needs. Since KVMs are Linux processes, the ability to rapidly adopt these emerging trusted computing methodologies becomes much more straightforward as opposed to inventing something wholly new. </p>
<p class="author-bio">David Egts is a Principal Architect at Red&nbsp;Hat, Inc., specializing in the application of open source enterprise infrastructure technologies within federal, state, and local government agencies, the Department of Defense, and educational institutions. Contact Dave at degts@redhat.com. </p>
<p class="contact-info">Red Hat   703-748-2201  www.redhat.com</p>
</p></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/04/secure-virtualization-for-tactical-environments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing mobile small cell defense networks</title>
		<link>http://www.compactpci-systems.com/articles/id/?5590</link>
		<comments>http://www.compactpci-systems.com/articles/id/?5590#comments</comments>
		<pubDate>Thu, 22 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>John Long, RadiSys</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Technology Feature]]></category>
		<category><![CDATA[COM Express]]></category>
		<category><![CDATA[Radisys]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=9310a79e434efb8239aeeea87a66eb94</guid>
		<description><![CDATA[ATCA chassis fitted with optimized software and COM Express hardware are leading the charge in next-generation network-centric warfare.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="4" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FCPCI5590%2Ffigures%2F4" />Entire Aerospace and Defense (A&#038;D) networks, from base stations to the core, are being consolidated into small, ruggedized communications platforms that provide the ability for an entire network to be picked up and moved. Femtocells are now being found on Humvees, ships, and even carried in a soldier&#8217;s pack, providing unparalleled communications right where it&#8217;s needed most. Compact network cores can fit in 2U and 5U ATCA chassis and can easily be transported. However, these ultra-portable cellular networks require a combination of hardware and optimized software that meets specialized Size, Weight, and Power (SWaP) requirements for next-generation network-centric warfare. </h3>
<p><span id="more-900"></span><span class='body'>
<p class=Bodytext>Our military networks have been lacking agility and reliability in comparison to the commercial cellular devices the enemy has at its disposal. Efforts in Iraq and Afghanistan have exposed this gap between proprietary radio communications and commercial cellular networks. Smart phones and cellular networks are allowing an unprecedented level of situational awareness, giving soldiers a significant advantage in the palm of their hand, but cellular networks can be difficult to deploy from a military transport vehicle, such as a Humvee or destroyer, because they tend to be very large, heavy, bulky, and power-hungry. In addition, the network nodes are too cumbersome to be portable, lack the ability to deliver ad-hoc communications, and are not easily customizable to deliver the reliability and security that the military requires.</p>
<p class=bodytext>The military wants to take advantage of proven commercial cellular technology and the associated economies of scale for the next-generation mobile communications systems. However, it cannot simply re-use this technology as is. These portable networks require particular architectures and specific hardware and software elements to meet the specific requirements, such as Size, Weight, and Power (SWaP), of network-centric warfare. This is leading to tremendous changes in how the military implements its wartime communications networks as it moves toward adoption of standards-based cellular technology with 3G today and LTE in the future. </p>
<h1>Transitioning from proprietary solutions to COTS hardware</h1>
<p class=bodytext>The telecom industry has been steadily moving from proprietary to standards-based designs due to refined standards and the development of a healthy supplier ecosystem. As telecom companies transition from proprietary to standards-based architectures, some are now saving resources and capital by outsourcing critical design and validation tasks. By using Commercial Off-The-Shelf (COTS) hardware as opposed to designing a computing system in-house, Network Equipment Providers (NEPs) are now in a position to avoid hardware design altogether and can focus development efforts on software-based value-add features. NEPs are finding that equipment based on open standards architectures typically costs less to deploy because it makes sound economic sense to design scalable platforms that can be employed across multiple applications (Figure 1). </p>
<p class=figures>
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure1', 'width=875,height=648,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FCPCI5590%2Ffigures%2F1" title="The cost benefits of using COTS rather than proprietary solutions over the lifetime of a military system are apparent from the time of development."><br />
					<img width="470" border="0" alt="Figure1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FCPCI5590%2Ffigures%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 1:</b> The cost benefits of using COTS rather than proprietary solutions over the lifetime of a military system are apparent from the time of development.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class=bodytext>Open standards-based COTS solutions not only address many issues facing equipment manufacturers, they also meet the needs of military programs. Military and aerospace system designers, who are in the process of replacing proprietary architectures, are seeking COTS technologies that competently accommodate the toughest environmental conditions (such as extreme temperatures) yet are efficient enough to meet application needs for power, performance, and heat dissipation. For example, the military is now looking outside of its engineering ranks to guarantee that its components are rigorously temperature tested. Many COTS technologies were designed to both withstand the rigors of military environments, and offer developers readily available, interoperable hardware that reduces design effort. </p>
<h1>Putting the pieces together</h1>
<p class=bodytext>Next-generation network-centric warfare requires ultra-portable cellular networks that squeeze the entire system, from base station to the core, into a small, ruggedized platform that can be picked up and moved, or even carried in a soldier&#8217;s pack (Figure 2). COTS technologies have made tremendous progress in satisfying the size, ruggedness, and performance requirements for a wide range of Aerospace and Defense (A&amp;D) applications. </p>
<p class=figures>
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure2', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure2" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FCPCI5590%2Ffigures%2F2" title="COTS technology can be leveraged to support the ultra-portable networks required for communications in network-centric warfare."><br />
					<img width="470" border="0" alt="Figure2" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FCPCI5590%2Ffigures%2F2" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 2:</b> COTS technology can be leveraged to support the ultra-portable networks required for communications in network-centric warfare.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class=bodytext>When combined, COTS technologies such as AdvancedTCA (ATCA) and COM Express provide a complete, deployment-ready solution with the flexibility for design and software enhancements. Together they support a network of networks in a manner that is standards compliant, providing a high level of interoperability and scalability. Many protocols can be consolidated onto one platform of nearly any size to accommodate a variety of missions, with base stations ranging in size from a big box to several smaller distributed units.</p>
<p class=bodytext>No matter the computing technology, year after year designers try to find ways to increase performance. Successfully integrating a high level of computing power basically comes down to board size, board power consumption, and backplane technology. In all of these areas, ATCA has a significant advantage. ATCA is a bladed platform that easily scales features and performance by adding blades that support new applications or more computing power. With its roots in telecom, ATCA was designed to maximize serviceability and availability, leveraging hot-swappable components and redundancy (for example boards, switches, fans, and power entry modules). In the field, an ATCA chassis is powered by stepping up the military vehicle battery voltage to 48 volts, thus avoiding the 120-volt (AC) supply required by a rackmount server. Yet, to attain the maximum benefits from ATCA equipment, manufacturers have realized it takes a combination of telecom and ATCA expertise to bring all of the elements together &#8212; chassis, blades, operating system, middleware, and platform management software &#8212; into a cohesive platform. </p>
<p class=bodytext>Boosting performance is especially challenging for designers of small form factor systems who face stringent space and power constraints. It&#8217;s also difficult to keep up with the design churn associated with implementing new processor generations and increasingly complex design rules. As a result, military system developers are turning to COM Express boards, which remove the processor, chipset, and memory from the rest of the design. For example, for the purpose of reducing size and cost, a leading provider of military mobile telecommunications technology and software development completely revamped its system architecture using COM Express, and now the core network is the size of a shoebox and one-tenth the cost of other available solutions. </p>
<p class=figures>
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure3', 'width=875,height=653,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure3" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FCPCI5590%2Ffigures%2F3" title="Radisys&amp;#8217; CEQM67 combines the next generation quad-core performance the Intel Core i7 processor and the Mobile Intel QM67 Express Chipset with Radisys design expertise to provide breakthrough processing performance on a Type 6 COM Express Revision 2.0 module."><br />
					<img width="470" border="0" alt="Figure3" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FCPCI5590%2Ffigures%2F3" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 3:</b> Radisys&#8217; CEQM67 combines the next generation quad-core performance the Intel Core i7 processor and the Mobile Intel QM67 Express Chipset with Radisys design expertise to provide breakthrough processing performance on a Type 6 COM Express Revision 2.0 module.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<h1>The case for small cells in military applications</h1>
<p class=bodytext>Small cells provide unparalleled communications right where it&#8217;s needed most without adding extra weight or taking up a lot of space. As opposed to a traditional macrocell on a hilltop or a tall tower, a small cell is a wireless base station that is portable and transmits at very low power. Small cells typically use an IP broadband connection (such as cable, DSL, or fiber) for backhaul and eliminate the need for dual-mode handsets, as virtually any existing wireless handset should work seamlessly with a small cell offered by the carrier.</p>
<p class=bodytext>A wireless equipment manufacturer recently set out to design a flexible LTE network solution that could scale from small to large networks to serve U.S. state and local governments seeking to improve public safety. Increasing capacity had to be as simple as adding processing blades to the chassis and activating additional subscriber licenses, while minimizing SWaP was essential for supporting military or disaster response applications in which the wireless network may need to be transported via van or military Humvee. For customers with existing mobile infrastructure, the solution required the flexibility to make use of legacy equipment. To meet its objectives, the equipment manufacturer developed an Evolved Packet Core (EPC) that is available in different hardware configurations, making it a highly scalable and cost-effective solution. The EPC ships in either a 2- or 14-slot ATCA chassis from Radisys, running the full complement of Trillium LTE protocol software including open interfaces for integrating external network elements.</p>
<h1>But is it secure?</h1>
<p class=bodytext>Commercial cellular networks have built-in security and integrity protection features. These, however, are being modified for military applications. Existing features that can be customized include:</p>
<p class=numberedbullets style='mso-list:l8 level1 lfo2;mso-list-change:"%1\:1\:0\:\." "Brandon Lewis" 20120315T0948'><![if !supportLists]><span style='mso-fareast-font-family:Times;mso-bidi-font-family:Times'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><![endif]>Air interface ciphering &#8211; In commercial networks this is based on the Advanced Encryption Standard (AES) and KASUMI and SNOW 3G algorithms, but can be modified to use any defense-grade encryption approach.</p>
<p class=numberedbullets style='mso-list:l8 level1 lfo2;mso-list-change:"%1\:2\:0\:\." "Brandon Lewis" 20120315T0948'><![if !supportLists]><span style='mso-fareast-font-family:Times;mso-bidi-font-family:Times'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><![endif]>Integrity protection &#8211; Mobility and session state information is encrypted and decrypted in the core of the network leveraging commercial-grade algorithms, which may be customized for military requirements.</p>
<p class=bodytext>The ATCA platform enables a robust telecom security gateway that offers world-class security features with multi-gigabit performance to secure the backhaul capabilities &#8212; the infrastructure for connecting cell sites to the core network. Furthermore, the COM Express combination of Intel Active Management Technology (Intel AMT) and Trusted Platform Management (TPM) ensures remote access transactions are safe and secure. In addition, since small cells are portable and not left in the same spot for long periods of time, they are less vulnerable. However, many NEPs are also addressing security through protocols. For example, Radisys provides the COTS solutions for mobile infrastructure and the expertise needed to customize the solutions based on SWaP constraints, while NEPs bring the specific insight needed to wrap A&amp;D security features around the standard offering.</p>
<p class=bodytext>Warfighters need more situational awareness on the battlefield and better communications back to the command center. Adoption of commercial standards-defined cellular technology solves the agility, reliability, and cost challenges, but does not deliver an ultra-mobile solution enabling ad-hoc network roll-out and the network of networks concept central to next-generation network-centric warfare. These ultra-portable cellular networks require a combination of hardware and optimized software that meets specialized security and SWaP requirements. Modular, ruggedized computers combined with a customizable carrier board provide COTS-based hardware ideal for ultra-portable warfighter communications applications and are specifically developed to support the extreme conditions in the field. The addition of small cell software solutions provides unparalleled communications right where it&#8217;s needed most, without extra weight or bulk. <b style='mso-bidi-font-weight:normal'><i style='mso-bidi-font-style: normal'><o:p></o:p></i></b></p>
<p class=authorbio>John Long is a product line manager at Radisys, with a focus on ATCA single board computers and storage. </p>
<p class=contactinfoCxSpFirst>Radisys</p>
<p class=contactinfoCxSpMiddle><a href="http://www.radisys.com">www.radisys.com</a><o:p></o:p></p>
<p class=contactinfoCxSpLast><span style='font-weight:normal'><a href="mailto:john.long@radisys.com"><b style='mso-bidi-font-weight:normal'>john.long@radisys.com</b></a></span></p>
</p></div>
<div style='mso-element:comment-list'><![if !supportAnnotations]><br />
<hr class=msocomoff align=left size=1 width="33%">  <![endif]></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/optimizing-mobile-small-cell-defense-networks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effective UI development with GUI tools for embedded devices</title>
		<link>http://www.smallformfactors.com/articles/id/?5557</link>
		<comments>http://www.smallformfactors.com/articles/id/?5557#comments</comments>
		<pubDate>Mon, 12 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[about embedded systems]]></category>
		<category><![CDATA[capacitive touch panel]]></category>
		<category><![CDATA[capacitive touch screens]]></category>
		<category><![CDATA[capacitive touch sensing]]></category>
		<category><![CDATA[capacitive touch sensors]]></category>
		<category><![CDATA[design embedded system]]></category>
		<category><![CDATA[design of embedded systems]]></category>
		<category><![CDATA[design user interfaces]]></category>
		<category><![CDATA[designing a user interface]]></category>
		<category><![CDATA[designing embedded systems]]></category>
		<category><![CDATA[designing graphical user interface]]></category>
		<category><![CDATA[development user interface]]></category>
		<category><![CDATA[embedded design systems]]></category>
		<category><![CDATA[embedded development]]></category>
		<category><![CDATA[embedded hardware design]]></category>
		<category><![CDATA[embedded sbc]]></category>
		<category><![CDATA[embedded single board computer]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[embedded software design]]></category>
		<category><![CDATA[embedded software systems]]></category>
		<category><![CDATA[embedded system applications]]></category>
		<category><![CDATA[embedded system development]]></category>
		<category><![CDATA[embedded system hardware]]></category>
		<category><![CDATA[embedded system software]]></category>
		<category><![CDATA[embedded systeme]]></category>
		<category><![CDATA[embedded systems development]]></category>
		<category><![CDATA[embedded systems hardware]]></category>
		<category><![CDATA[embedded systems software]]></category>
		<category><![CDATA[engineering software development]]></category>
		<category><![CDATA[graphical user interface builder]]></category>
		<category><![CDATA[graphical user interface design standards]]></category>
		<category><![CDATA[graphical user interface tools]]></category>
		<category><![CDATA[gui interface design]]></category>
		<category><![CDATA[gui prototyping]]></category>
		<category><![CDATA[gui prototyping tool]]></category>
		<category><![CDATA[GUI tools]]></category>
		<category><![CDATA[human interface design]]></category>
		<category><![CDATA[launching a new product]]></category>
		<category><![CDATA[launching new product]]></category>
		<category><![CDATA[new product launch]]></category>
		<category><![CDATA[pc 104 sbc]]></category>
		<category><![CDATA[product launch strategy]]></category>
		<category><![CDATA[product software development]]></category>
		<category><![CDATA[programming embedded system]]></category>
		<category><![CDATA[prototype user interface]]></category>
		<category><![CDATA[resistive touch screens]]></category>
		<category><![CDATA[software development product]]></category>
		<category><![CDATA[software development system]]></category>
		<category><![CDATA[software embedded systems]]></category>
		<category><![CDATA[software user interface]]></category>
		<category><![CDATA[ui mockup]]></category>
		<category><![CDATA[ui prototyping]]></category>
		<category><![CDATA[user interface design standards]]></category>
		<category><![CDATA[user interface design usability]]></category>
		<category><![CDATA[user interface guideline]]></category>
		<category><![CDATA[user interface mockup]]></category>
		<category><![CDATA[user interface prototype]]></category>
		<category><![CDATA[user interface prototyping tools]]></category>
		<category><![CDATA[user interface software]]></category>
		<category><![CDATA[user interface usability]]></category>
		<category><![CDATA[user interface wireframe]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=716a2364a13d668c8c3e49b47c9c8093</guid>
		<description><![CDATA[An effective Graphical User Interface (GUI) development platform can mean the difference in creating a time- and money-saving GUI that is viable through generations of devices.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="3" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045557%2Ffigures%2F3" />A good Graphical User Interface (GUI) can thrill customers, and a good reusable GUI development platform can save developers time and money; however, design subtleties and pitfalls keep developers on their toes.</h3>
<p><span id="more-874"></span><span class='body'>
<p class="body-text">A good User Interface (UI) is priceless. Think of the clean iTunes interface. The meaning of &#8220;UI&#8221; is quickly becoming something other than &#8220;User Interface&#8221;; it can now stand for &#8220;Unbelievably Important&#8221; and an &#8220;Untapped Investment&#8221; in embedded systems. </p>
<p class="body-text">As microcontrollers move up the ladder in capability and out into the world of the consumer, and processors have moved from low-capacity 8-bit to high-capacity 32-bit systems, human interaction with software becomes more important. Along the way, programmers wondered, &#8220;What do I do with this horsepower?&#8221; Now they&#8217;re in a position to use this power to respond to customer requirements that say, &#8220;I want this to look like an Android or iPad app.&#8221;</p>
<p class="body-text">However, the amount of effort involved in creating an effective UI is non-trivial. Graphical User Interface (GUI) development takes at least three basic steps: designing a visual interface (windows and widgets), writing the code that implements that interface, and getting that code to work on the specified hardware. Additionally, as processor power has grown, so have customer expectations. Color, touchscreens, gesture recognition, and speech recognition continue to up the ante in development efforts and create even greater challenges. Tools like GUI software packages are available to help automate&nbsp;the basics, but programmers still have a lot of work to do to create a polished interactive interface where each step of development has its own challenges and&nbsp;remedies.</p>
<p class="heading-1">Designing and building the interface</p>
<p class="body-text">The old-fashioned, and still valuable, way to build a visual interface is pencil and graph paper. In essence this step&nbsp;involves creating &#8220;storyboards&#8221; and mapping out the interface.</p>
<p class="body-text">The updated version of those storyboards is a good GUI package that includes an interface builder: a way for the developer to define a window&#8217;s complete layout with adornments, scroll bars, text areas, buttons, widgets, colors, text, and so on. This allows items to be positioned accurately with correctly configured behavior and styles.</p>
<p class="body-text">There should be transparent objects that can act as containers to group certain objects together, such as a collection of radio buttons that respond to a single message. The library will have a message-delivery system that can deliver the message to the objects in the group. All of the required properties and connections among the controls in the window can be set up using a container hierarchy. </p>
<p class="body-text">There is a critical subtlety here to be aware of. Typically the layout utility is a desktop tool that ultimately generates code for an embedded platform. It is important for the interface to look and behave precisely the same on both the host development platform and the platform being developed. The window builder should enable a What-You-See-Is-What-You-Get (WYSIWYG) design. The same runtime library rendering the image on the desktop should render the image on the destination device. The OS shouldn&#8217;t, for example, render a font one way on the desktop OS and appear differently on the end product. Pixel-for-pixel spacing on a small output device can matter a great deal.</p>
<p class="heading-1">Creating the code</p>
<p class="body-text">Once settled on a design, some libraries make developers write code from scratch. That&#8217;s not the ideal solution. A good GUI package will generate all the code and configuration files required to create the interface. The generated code should be compiler-neutral, typically standard ANSI C or C++.</p>
<p class="body-text">A good bit of the UI&#8217;s basic behavior code can be generated as well. For example, a collection of radio buttons has the standard behavior of all turning off except the one selected. That update behavior can be coded automatically. This is not rocket science; programmers spending time writing basic functionality wastes their true value.</p>
<p class="body-text">The functionality behind that interface is up to the developer. Here the library can be a great help. This code should be well documented, showing developers where to add (and not add) code to the program. The automatically generated code should have function stubs with statements equivalent to <span class="code-character">// put your code here</span>. The designers of the library know what kind of code belongs where and should provide a great deal of guidance. Look for that kind of help in good GUI tools.</p>
<p class="body-text">Finally, in addition to the actual programming code, consider UI text. Fonts in foreign languages and non-Roman scripts like Mandarin, Kanji, or Arabic are an important consideration. Look carefully for font support in a tool. How does text get into the UI, and how easy is it to update and modify that text? What happens when a client says, &#8220;We&#8217;re going after the market in India; we need to have the software localized into Hindi&#8221;? Developers need to be able to change the language independently of the code for smooth system transitions.</p>
<p class="heading-1">Running on hardware</p>
<p class="body-text">Once the interface is fully designed and coded, it has to work. It should be compatible with multiple processors, multiple display screens with different display technologies, physical dimensions, and color depths. It needs to be independent of hardware assumptions and dependencies so migration to new platforms and the addition/removal of components will not require substantial recoding or redesign. Input mechanisms should also be independent &#8211; mouse, stylus, capacitive touch, resistive touch, and so forth. The library should be software independent as well, and should work with a choice of operating systems, drivers, and other software packages. </p>
<p class="body-text">To work on a hardware platform, no library can stand alone. It must have a runtime library that sits on the hardware and does work like render images and fonts. There are also hardware drivers for input and output devices. As an example, take a look at the block diagram for the PEG library from Freescale (Figure 1).</p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure1', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045557%2Ffigures%2F1" title="A well-factored GUI library can replace input and output drivers relatively&amp;nbsp;easily, as seen in the PEG library from Freescale."><br />
					<img width="470" border="0" alt="Figure1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045557%2Ffigures%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 1:</b> A well-factored GUI library can replace input and output drivers relatively&nbsp;easily, as seen in the PEG library from Freescale.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="body-text">Moving a GUI to a new platform is still work, but a compartmentalized design reduces the work to a minimum. If input is changed from mouse to gesture-based resistive touch, the design is going to need a new input driver. However, a well-factored GUI should require very few if any changes to the design and code. In a well-factored design, the GUI calls a routine to get an XY coordinate instead of calling a mouse driver. The mouse will feed that coordinate into the input layer, isolating the GUI from the hardware. Then if the mouse changes to a stylus or a touch screen, the GUI code doesn&#8217;t change at all; each new driver feeds its data to the right place. </p>
<p class="body-text">But wait, there&#8217;s more. Recall the importance of WYSIWYG between the desktop designer and the embedded platform: This isn&#8217;t just for quality control and testing &#8211; there is another significant benefit from that. It&#8217;s possible to build a functional prototype on the desktop without having the actual physical device complete and in hand; the application can be distributed to key stakeholders in the beginning of the development cycle and get buy-in without developing hardware. Then after the device really exists and when the specs come in for the next-generation device that needs to hit the market in three weeks, developers will be as prepared as they can be. </p>
<p class="heading-1">Focus on implementation, not code</p>
<p class="body-text">Using GUI tools can help lock down the basics and give developers more time to focus on making sure an interface&#8217;s logic is sound and the interaction is intuitive. Because it is relatively easy to create a working mockup of a UI, developers can test usability before or in parallel with application functionality. End users will thank UI designers when they don&#8217;t have&nbsp;to figure out what to choose for messages like the one in Figure 2. </p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure2', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure2" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045557%2Ffigures%2F2" title="Which button cancels the operation? UI developers should spend time programming logic and interactive elements rather than basic code to avoid these types of embarrassments."><br />
					<img width="470" border="0" alt="Figure2" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045557%2Ffigures%2F2" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 2:</b> Which button cancels the operation? UI developers should spend time programming logic and interactive elements rather than basic code to avoid these types of embarrassments.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="heading-1">Jump off the shoulders of giants</p>
<p class="body-text">Creating a UI for the first time is revolutionary. Modifying and leveraging it in future products is evolutionary. Creating a new UI for every new piece of software, or even writing code to create windows and widgets isn&#8217;t a smart use of time. Very bright people solved these problems a good while back, and the intelligent thing to do here is to reuse known good practices &#8211; a simple UI consistent across and independent of different platforms &#8211; with the help of a good GUI engine. The proper choice of GUI tools allows UI code to be future-proofed (as much as possible) during development, reducing time and support burdens during its lifetime. </p>
<p class="author-bio">Jim Trudeau is Senior Technical Marketer focusing on software solutions with the Industrial and Multi-Market Group of Freescale, in Austin, TX. He is the author of <span class="contact-info">Programming Starter Kit for Macintosh </span>(1995) and <span class="contact-info">Mastering CodeWarrior </span>(1997), as well as numerous articles and training courses on software development. He is inordinately fond of a good UI.</p>
<p class="author-bio">Roger Edgar is responsible for product management and&nbsp;business development for Freescale&#8217;s Industrial and Multi-market Enablement team, including the PEG software line. Prior to Freescale, Roger was as a founding partner for JumpStart Marketing and served as Vice President at Impart Technologies.</p>
<p class="contact-info">Freescale Semiconductor Jim.Trudeau@freescale.com  Roger.Edgar@freescale.com www.freescale.com</p>
</p></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/effective-ui-development-with-gui-tools-for-embedded-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APUs strike the ideal balance of form, function, and power consumption for graphics-intensive portable devices</title>
		<link>http://www.smallformfactors.com/articles/id/?5556</link>
		<comments>http://www.smallformfactors.com/articles/id/?5556#comments</comments>
		<pubDate>Mon, 12 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>Kelly Gillian, AMD</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[3d medical images]]></category>
		<category><![CDATA[3d medical imaging]]></category>
		<category><![CDATA[agp 1gb graphics card]]></category>
		<category><![CDATA[agp graphic card]]></category>
		<category><![CDATA[agp graphic cards]]></category>
		<category><![CDATA[agp graphics cards]]></category>
		<category><![CDATA[amd]]></category>
		<category><![CDATA[APUs]]></category>
		<category><![CDATA[cheap pci graphic cards]]></category>
		<category><![CDATA[cpci form factor]]></category>
		<category><![CDATA[displayport dvi cable]]></category>
		<category><![CDATA[displayport dvi hdmi]]></category>
		<category><![CDATA[displayport hdmi]]></category>
		<category><![CDATA[displayport hdmi adapter]]></category>
		<category><![CDATA[displayport to dvi adaptor]]></category>
		<category><![CDATA[displayport to dvi converter]]></category>
		<category><![CDATA[displayport to hdmi]]></category>
		<category><![CDATA[displayport to hdmi cable]]></category>
		<category><![CDATA[distributed parallel computing]]></category>
		<category><![CDATA[dual graphics card]]></category>
		<category><![CDATA[dual graphics cards]]></category>
		<category><![CDATA[dual monitor graphics cards]]></category>
		<category><![CDATA[embedded board]]></category>
		<category><![CDATA[embedded boards]]></category>
		<category><![CDATA[embedded computer boards]]></category>
		<category><![CDATA[embedded computer system]]></category>
		<category><![CDATA[embedded computer systems]]></category>
		<category><![CDATA[embedded single board computers]]></category>
		<category><![CDATA[embedded software development]]></category>
		<category><![CDATA[fanless embedded computer]]></category>
		<category><![CDATA[fanless pc]]></category>
		<category><![CDATA[gaming graphic cards]]></category>
		<category><![CDATA[gaming graphics card]]></category>
		<category><![CDATA[gaming graphics cards]]></category>
		<category><![CDATA[gpu parallel computing]]></category>
		<category><![CDATA[hdmi displayport]]></category>
		<category><![CDATA[high resolution medical images]]></category>
		<category><![CDATA[Kontron]]></category>
		<category><![CDATA[low power pc]]></category>
		<category><![CDATA[medical devices companies]]></category>
		<category><![CDATA[medical devices manufacturers]]></category>
		<category><![CDATA[medical diagnostic devices]]></category>
		<category><![CDATA[medical imaging centers]]></category>
		<category><![CDATA[medical imaging diagnostic]]></category>
		<category><![CDATA[medical imaging radiology]]></category>
		<category><![CDATA[mini displayport hdmi]]></category>
		<category><![CDATA[mini displayport to dvi adapter]]></category>
		<category><![CDATA[mini displayport to dvi cable]]></category>
		<category><![CDATA[mini displayport to hdmi]]></category>
		<category><![CDATA[multiple display video card]]></category>
		<category><![CDATA[multiple display video cards]]></category>
		<category><![CDATA[multiple monitor video card]]></category>
		<category><![CDATA[multiple monitor video cards]]></category>
		<category><![CDATA[multiple screen displays]]></category>
		<category><![CDATA[pacs medical imaging]]></category>
		<category><![CDATA[pc fanless]]></category>
		<category><![CDATA[pci graphic card]]></category>
		<category><![CDATA[pci graphic cards]]></category>
		<category><![CDATA[pci graphics cards]]></category>
		<category><![CDATA[radiology medical imaging]]></category>
		<category><![CDATA[sbc form factor]]></category>
		<category><![CDATA[small form factor barebones pc]]></category>
		<category><![CDATA[x86 embedded board]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=036ab977e3ec2ed4817e20dda112196f</guid>
		<description><![CDATA[Accelerated Processing Units (APUs) yield big graphics in small form factors.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="1" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045556%2Ffigures%2F1" />Achieving high levels of graphics and video performance for portable, small form factor systems is difficult when utilizing conventional CPU and discrete GPU processor architectures. With the recent advent of Accelerated Processing Units (APUs), designers are equipped to break this graphics barrier without giving an inch &#8211; literally &#8211; in board space.</h3>
<p><span id="more-875"></span><span class='body'>
<p class="body-text">Ongoing innovation in the x86 semiconductor industry is the foundation for the near-ubiquitous use of x86 embedded computing technology in the ever-growing range of SFF applications. Even with continued improvements in CPU performance and power efficiency, however, designers of SFF portable systems remain challenged to achieve their most ambitious design goals for graphics performance and visual immersion. Growing demand for&nbsp;higher&nbsp;performance graphics capabilities has&nbsp;led OEMs to explore new x86&nbsp;processor architectures that promise to meet exacting multimedia performance requirements for applications spanning commercial, medical, and industrial domains, with a growing focus on portable and/or battery-powered devices.</p>
<p class="body-text"><span id="Ad-ABD-1" style="display: none; float: left;"></span>Embedded boards and modules equipped with new-generation Accelerated Processing Units (APUs) can facilitate advanced graphics capabilities within an extremely small footprint, without compromising power and cooling efficiency or cost. The merging of advanced x86 computing capabilities with the parallel processing power of General-Purpose Graphics Processing Units (GPGPUs) in a single device allows OEMs to design low-power, graphics-intensive SFF systems that until now have been exclusive to power-hungry multicore CPUs and add-on graphics cards.</p>
<p class="heading-1">The evolution to increasingly intense&nbsp;graphics</p>
<p class="body-text">Graphics-driven applications are accelerating the pace of innovation for portable, energy-efficient SFF systems. Applications spanning digital signage, information terminals, point-of-care medical imaging and diagnosis, and industrial applications are evolving to offer advanced graphics performance, but in many cases are constrained by conventional CPU and discrete GPU processor architectures. Here we&#8217;ll look at each of these applications individually and address some of their unique design constraints, and also assess the ways in which APUs can minimize these constraints.</p>
<p class="heading-2">Mobile digital signage and information terminals</p>
<p class="body-text">The travel services industry in particular has embraced digital signage as a means to provide timely, location-aware information. GPS-assisted in-vehicle digital signage and other mobile digital signage better equip travelers for personal use and empower travel services and transportation vendors with &#8220;high proximity&#8221; advertising space for local businesses. Multi-screen display capabilities are emerging as an important feature for these applications, and mobile digital signage is especially sensitive to power consumption requirements. Low power draw is crucial if a mobile digital sign is to be powered by, for example, a shuttle bus battery.</p>
<p class="heading-2">Point-of-care medical imaging and&nbsp;diagnosis</p>
<p class="body-text">Portable medical devices with sophisticated medical imaging capabilities for use at the point of care outside of the hospital can enable medical professionals to examine patients in the field, as well as access and process imaging-intensive patient data such as Picture Archiving and Communications Systems (PACS) datasets stored within hospital information systems. These devices ensure high-resolution imaging and ultra-precise diagnostic information that first responders and care providers count on to expedite treatment decisions.</p>
<p class="body-text">Apart from the inherent design constraints associated with high-performance graphics processing, device portability, and battery-life preservation, medical device designers grapple with stringent device certification processes that often consume valuable time and intense time-to-market pressures that few other industries face as acutely.</p>
<p class="heading-2">Portable industrial applications</p>
<p class="body-text">Imaging and data-intensive industrial applications such as image detection and recognition, automated inspection, and distributed data collection systems that require high-speed vector processing are increasingly being deployed in remote settings for monitoring purposes, and are therefore sensitive to portability requirements. In addition to requiring increased parallel processing capabilities to facilitate high-precision real-time data collection, these systems often need to be ruggedized for harsh environments. Highly compact, fluid- and particle-sealed system enclosures present obvious challenges to airflow and venting &#8211; challenges that are often insurmountable with traditional CPUs due to their thermal profiles.</p>
<p class="heading-1">APUs yield higher performance graphics with fewer components</p>
<p class="body-text">New-generation boards and modules designed with advanced x86 APUs are ideally suited to minimize and/or eliminate the aforementioned design challenges while maximizing overall graphics performance. The combination of a low-power CPU and a discrete-level GPU into a single embedded APU provides OEMs with optimal picture resolution (frame rates and resolutions of up to 2560 x 1600 pixels, for example) for their graphics-driven, mobile SFF systems. Combining a GPU core on the same die as the CPU enables host systems to offload computation-intensive pixel data processing from the CPU to the GPU. Freed from this task, the CPU can serve I/O requests with much lower latency, thereby dramatically improving real-time graphics processing performance. </p>
<p class="heading-1">Size and integration</p>
<p class="body-text">APUs also reduce the footprint of a traditional three-chip platform to just two chips &#8211; the APU and the companion controller hub. The combination of general purpose CPU and GPU onto a single die with a high-speed bus architecture and shared, low-latency memory model simplifies design complexity through a reduction in board layers and power supply needs, enabling SFF system designers to achieve aggressive form factor goals while driving down overall system costs.</p>
<p class="body-text">By providing native, high-performance graphics processing at the silicon level, APUs preclude the need for bulky add-on graphics cards that usually require a right-edge connector. In space-constrained designs, an edge connector takes up more space (card-edge boards are typically 3&quot; to 5&quot; taller) and exposes it to additional shock and vibration that can lead to signal integrity issues. Designing APU-caliber graphics capabilities directly onto a carrier board is a more rugged, long-term option. </p>
<p class="heading-1">Power and cooling</p>
<p class="body-text">The Performance-Per-Watt (PPW) gains enabled by APUs assure greater power efficiency and lower heat dissipation, which in turn can preclude the need for fan cooling within SFF systems, thus helping to preserve board space, improve overall system reliability, limit system noise, and lower BOM costs. Supporting Thermal Design Power (TDP) profiles from 5.5 W to 18 W, with typical power consumption below 6 W[1], AMD G-Series APUs equip designers with the ability to keep board-level total power dissipation to within approximately 35&nbsp;W, well within the 45 W threshold at which mobile systems begin to become hot and physically uncomfortable to the touch. These factors enable designers to optimize their SFF systems for extremely compact enclosures and/or applications with power constraints, and can help designers stay within the 25 W threshold at which passive cooling is an acceptable (and typically favorable) option.</p>
<p class="heading-1">Multi-display video immersion</p>
<p class="body-text">The ability to support multiple independent display outputs simultaneously is an emerging requirement for realizing ultra-immersive video displays for digital signage, and also SFF portable medical devices. New-generation APUs enable designers to cost-effectively develop multiple video displays without sacrificing board space for add-on graphics cards and controllers or compromising overall picture resolution. They also offer the ability to decode up to three HD video streams in parallel and support up to four independent digital displays via a wide range of standard interfaces, including DisplayPort, DVI, HDMI, LVDS, and VGA. </p>
<p class="heading-1">Vector processing for SFF industrial&nbsp;systems</p>
<p class="body-text">Applications requiring increased parallel computing capabilities, such as the portable medical and industrial devices mentioned above, are well suited for boards and modules equipped with APUs. These applications include 3D medical X-ray image reconstruction and smart camera applications such as high-precision image/pattern detection and identification. However, traditional CPU architectures and application programming tools are optimized for scalar data structures and serial algorithms, and as such, are not the best match for data-intensive vector processing applications. </p>
<p class="body-text">The integration of general-purpose, programmable scalar and vector processor cores for high-speed parallel processing establishes a new level of processing performance for SFF systems at an unprecedented PPW. In the case of AMD G-Series APUs, the general-purpose vector processor cores within the embedded GPU &#8211; 80 shader cores running at 500 MHz (AMD Fusion T56N) &#8211; drive the ultra-high-speed processing required to handle intensive numerical computations. </p>
<p class="heading-1">Time to market</p>
<p class="body-text">The inherent architectural advantages introduced with APUs go a long way toward minimizing design complexity and accelerating time to market. These advantages are owed primarily to reductions in board layers, discrete add-on processors/cards, and power supply and cooling needs, which naturally minimize the number of components on the board and therefore enable designers to shorten, and in some cases eliminate, design cycles. </p>
<p class="body-text">The underlying x86 APU architecture also enables portable SFF system designers to tap into the vast selection of existing x86-optimized software, applications, and development environments available on the market, introducing additional opportunities to enhance development efficiency and speed time to market. The open development ecosystem for the AMD G-Series platform, for example, includes support for Linux, Microsoft Windows, and Real-Time Operating Systems (RTOSs), multiple BIOS options, OpenGL&nbsp;4.0 and OpenCL support, and source-level debug tools. </p>
<p class="body-text">By implementing AMD G-Series APUs on the most common form factors for graphics-intensive applications, such as Computers-On-Module (COMs) and SFF SBCs and motherboards, Kontron is making the benefits of this new x86 processing architecture readily available for application development. OEMs and system integrators can take advantage of highly scalable, validated APU-based platforms that streamline design cycles and minimize design risks to ensure fast time to market for graphics-intensive and parallel-data SFF applications.</p>
<p class="heading-1">Making graphics performance goals&nbsp;achievable</p>
<p class="body-text">New APU processor architectures are making a fast and transformative impact on SFF design initiatives, unlocking high-performance graphics capabilities in small form factors that simply can&#8217;t be achieved with conventional CPUs and GPUs. Continued innovation in the APU domain promises to push graphics performance boundaries even further, and will ultimately yield a new generation of portable SFF systems that defy space, power, and cooling limitations in ways previously unimagined. </p>
<p class="author-bio">Kelly Gillilan is the Product Marketing Manager for the AMD Embedded Solution division, overseeing worldwide marketing strategy and activities. He has worked extensively in embedded applications for most of the past decade. Kelly holds a degree in Computer Engineering and is fluent in Mandarin Chinese.</p>
<p class="author-bio">Christine Van&nbsp;De&nbsp;Graaf is the Product Manager for Kontron America&#8217;s Embedded Modules and Small Form Factor SBCs product families. Christine has more than a&nbsp;decade of experience working in the embedded computing technology industry, and holds an MBA in marketing management from California State University, East Bay.</p>
<p class="contact-info">AMD kelly.gillilan@amd.com www.amd.com</p>
<p class="contact-info">Kontron christine.vandegraaf@us.kontron.com www.kontron.com</p>
<p class="reference-heading">References</p>
<p class="references-list">[1] For complete test and configuration information please refer to the AMD&nbsp;&#8220;Brazos&#8221; Platform Performance and Power Optimization Guide Publication #48109 Rev 2.01 available on the AMD Embedded Developers Support Web site.</p>
</p></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/apus-strike-the-ideal-balance-of-form-function-and-power-consumption-for-graphics-intensive-portable-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Panel discussion: Designing portable medical devices that emulate today&#8217;s consumer devices &#8211; with added security</title>
		<link>http://www.smallformfactors.com/articles/id/?5559</link>
		<comments>http://www.smallformfactors.com/articles/id/?5559#comments</comments>
		<pubDate>Mon, 12 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>Monique DeVoe, Editor, OpenSystems Media</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[510k medical device]]></category>
		<category><![CDATA[Assistant Managing Editor]]></category>
		<category><![CDATA[class 2 medical devices]]></category>
		<category><![CDATA[class ii medical devices]]></category>
		<category><![CDATA[design embedded system]]></category>
		<category><![CDATA[embedded board]]></category>
		<category><![CDATA[embedded computer linux]]></category>
		<category><![CDATA[embedded computer system]]></category>
		<category><![CDATA[embedded computer systems]]></category>
		<category><![CDATA[embedded cpu]]></category>
		<category><![CDATA[embedded development]]></category>
		<category><![CDATA[embedded hardware design]]></category>
		<category><![CDATA[embedded linux board]]></category>
		<category><![CDATA[embedded linux boards]]></category>
		<category><![CDATA[embedded linux computer]]></category>
		<category><![CDATA[embedded linux hardware]]></category>
		<category><![CDATA[embedded pc]]></category>
		<category><![CDATA[embedded sbc]]></category>
		<category><![CDATA[embedded single board computer]]></category>
		<category><![CDATA[embedded single board computers]]></category>
		<category><![CDATA[embedded software]]></category>
		<category><![CDATA[embedded software design]]></category>
		<category><![CDATA[embedded software developer]]></category>
		<category><![CDATA[embedded system applications]]></category>
		<category><![CDATA[embedded systeme]]></category>
		<category><![CDATA[embedded systems applications]]></category>
		<category><![CDATA[embedded x86]]></category>
		<category><![CDATA[european medical device market]]></category>
		<category><![CDATA[fanless embedded pc]]></category>
		<category><![CDATA[fanless panel pc]]></category>
		<category><![CDATA[fda approval medical device]]></category>
		<category><![CDATA[fda approval medical devices]]></category>
		<category><![CDATA[fda certification medical devices]]></category>
		<category><![CDATA[fda medical device registration]]></category>
		<category><![CDATA[fda registration]]></category>
		<category><![CDATA[fda regulations]]></category>
		<category><![CDATA[industrial panel pc]]></category>
		<category><![CDATA[linux embedded]]></category>
		<category><![CDATA[linux embedded board]]></category>
		<category><![CDATA[linux embedded boards]]></category>
		<category><![CDATA[linux embedded computer]]></category>
		<category><![CDATA[manufacturing medical devices]]></category>
		<category><![CDATA[medical device 510 k]]></category>
		<category><![CDATA[medical device diagnostic]]></category>
		<category><![CDATA[medical device fda approval]]></category>
		<category><![CDATA[medical device manufacturing industry]]></category>
		<category><![CDATA[medical device reimbursement]]></category>
		<category><![CDATA[medical devices market size]]></category>
		<category><![CDATA[medical devices regulation]]></category>
		<category><![CDATA[medical diagnostic device]]></category>
		<category><![CDATA[medical technology devices]]></category>
		<category><![CDATA[mobile wireless devices]]></category>
		<category><![CDATA[Panel discussion]]></category>
		<category><![CDATA[pc 104 sbc]]></category>
		<category><![CDATA[pc embedded]]></category>
		<category><![CDATA[Portable medical devices]]></category>
		<category><![CDATA[reimbursement medical devices]]></category>
		<category><![CDATA[sbc embedded]]></category>
		<category><![CDATA[single board computer]]></category>
		<category><![CDATA[single board computers]]></category>
		<category><![CDATA[software embedded]]></category>
		<category><![CDATA[x86 embedded]]></category>
		<category><![CDATA[x86 embedded linux]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=94c6955d10ef0e1af8df1d1988bc2ca7</guid>
		<description><![CDATA[Balancing the scales of security and usability is the focus of industry experts concerned with building the next generation of portable medical devices.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="2" class="figure_intro" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=200&#038;w=225&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045559%2Ffigures%2F2" />Editor&#8217;s note: Portable devices are a top focus in the small form factor embedded scene. Medical devices lead the portable design revolution, taking patient care out of traditional clinical settings and into the home and remote settings. When we asked a group of panelists about the present and future of mobile devices, medical was at the forefront of their minds. They discussed the challenges of combining the &#8220;iPhone factor&#8221; of user-friendly design with stringent security requirements and regulations, choosing platforms, and others that stand in the way of the next-generation of devices they&#8217;re trying to develop. Edited excerpts follow.</h3>
<p><span id="more-876"></span><span class='body'>
<p class="body-text"></p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure1', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045559%2Ffigures%2F1" title="Portable medical device panel."><br />
					<img width="470" border="0" alt="Figure1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FPC1045559%2Ffigures%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 1:</b> Portable medical device panel.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="interview-question"><span class="interview-name">SFF:</span> Portable medical devices have&nbsp;come a long way in the last few&nbsp;years. What impresses you about the current state of technology in these types of devices?</p>
<p class="body-text"><span class="interview-name">TABORN:</span> The cell phone market, among others, is driving cost, size, power, and ease of use improvements and possibilities into all application areas, which in medical modalities are quickly being implemented to improve patient outcomes. The handheld ultrasound and its battery life is a great example. The most impressive impact on medical devices is the better focus on user experience. This will directly improve patient care by decreasing the error rate of the applications and evaluation of the data.</p>
<p class="body-text"><span class="interview-name">McCRACKEN:</span> Out of nowhere, Android has emerged with the potential to become a dominant platform for portable embedded computing devices in the not-so-distant future. Chip-scale integration and improvements in battery technologies accompany the demand for standardized software application platforms. Finally, the performance of ARM SoCs has increased (up to Gigahertz dual core), while Intel has lowered its entry-level ultra-mobile processors to fit within size and power envelopes in order to compete for these coveted high-volume applications.</p>
<p class="body-text"><span class="interview-name">CHUNG:</span> The projective capacitive multi-touch screen has become one of the hottest topics within this segment, but requires application software development to showcase its values. Also, energy efficiency has always been a key focal point for portable devices, and the rise of RISC-based solutions has helped to further energy savings. </p>
<p class="body-text">Additionally, the different types of connectivity including Wi-Fi, Bluetooth, and 3.5G/4G wireless that are now readily built into portable medical devices permit easy access of electronic medical record databases or the future medical cloud in any location equipped with wireless signal reception. </p>
<p class="body-text"><span class="interview-name">MUNCH:</span> The acceptance of x86 and Windows into a market that has traditionally relied on custom hardware and software solutions is impressive. We see Windows as the primary user interface tied to FPGAs performing data crunching in many medical applications. There is also an increasing desire to use standard building-block products like COM Express CPU modules to allow the product design to be focused on its&nbsp;core competency, which is increasingly software.</p>
<p class="interview-question"><span class="interview-name">SFF:</span> What design challenges are engineers currently facing in medical device development?</p>
<p class="body-text"><span class="interview-name">McCRACKEN:</span> One key task facing engineers is platform selection. Everything from design environment and development tools to production royalties to product updating in the field hangs in the balance. Android is optimized for ARM at the moment, while other Linux platforms and Windows Embedded Compact run well on ARM and x86/Intel architectures alike. Additionally, time-to-market pressures are becoming as critical for FDA and other regulatory-based markets as they are for commercial and consumer markets where the winners take all. To that end, the richness and completeness of a product offering&#8217;s &#8220;out-of-the-box&#8221; functionality translates directly to competitive advantage. SBCs&nbsp;and COMs&nbsp;need to be ready as close as possible to the silicon launch (mass production).</p>
<p class="body-text"><span class="interview-name">MUNCH:</span> There has been a significant increase in the speed of signals in today&#8217;s designs, resulting in the need to use expensive and complicated simulation tools to verify signal integrity. Waiting until a design is fabricated to check and catch signal integrity issues can impact launch schedules and development costs. Even when using module building blocks the design still needs to deal with high-speed interfaces such as PCI Express, SATA, and now USB 3.0 SuperSpeed.</p>
<p class="body-text"><span class="interview-name">TABORN:</span> Of the many challenges engineers face, designers must first consider security since virtually all medical devices in the future will be connected to some type of network. Second, there are new demands for &#8220;ease of use&#8221; that are fostered by what many in the industry call the &#8220;iPhone factor.&#8221; </p>
<p class="body-text"><span class="interview-name">CHUNG:</span> Medical customers see features like low cost, long battery life, light weight, slim design, and new technologies that are currently seen in consumer products, and expect to see these elements implemented in portable medical products, but medical devices do not yet have these features.</p>
<p class="interview-question"><span class="interview-name">SFF:</span> Where do you expect medical devices to go in the future?</p>
<p class="body-text"><span class="interview-name">CHUNG:</span> Eventually portable medical devices will be used in the same sense that we use smartphones and tablets in our daily lives, but within a more secure network and with mechanisms to permit/deny access to sensitive patient data. Not only the patients but the physicians and healthcare administrators will benefit significantly from this development.</p>
<p class="body-text">From a hardware perspective, lighter and thinner is always the trend. On a system level, portable medical devices have different market segments, such as general hospital/clinical administration usage that may require building a whole infrastructure, or portable diagnostic devices for ultrasound, ECG, and blood pressure monitoring that require joint system design with customers. </p>
<p class="body-text"><span class="interview-name">McCRACKEN:</span> Someday, the portable subset of embedded devices will be nearly as ubiquitous as their consumer counterparts, relatively speaking. Whether in the form of sensors or medical patient monitors, these products will proliferate based upon consolidated, standardized ultra-mobile platforms much the way the original DOS + x86 embedded computers did. In some cases with dual- or multicore systems, the second processor core will be devoted to the deterministic and real-time aspects of the device, such as taking measurements.</p>
<p class="body-text"><span class="interview-name">TABORN:</span> These devices will be far more flexible and extensible in the future. One of the best things to happen to medical is the advent of the iPhone. This demonstrated to the world that a small device could be intuitive and very efficient. This will cause device manufactures to address the areas of ease of use and human workflow, reducing human error and encouraging operation and use cases in non-traditional settings&nbsp;&#8211; improving patient care throughout the&nbsp;world.</p>
<p class="interview-question"><span class="interview-name">SFF:</span> What does the industry need to get to the next generation of medical portable mobile devices?</p>
<p class="body-text"><span class="interview-name">MUNCH:</span> Continuing to drive down total power consumption would be a good start, and achieving this will just take time. This results in two benefits: an increase in battery life (or a smaller battery to reduce weight) and reduction in power that needs to be dissipated. </p>
<p class="body-text"><span class="interview-name">CHUNG:</span> The prospect of wireless battery charging would be one technology that would help these applications realize their true potential for power-efficiency and application usage. </p>
<p class="body-text">Additionally, comprehensive infrastructure, regulations, and mobile healthcare protocols will be key to these devices&#8217; future. This will allow medical computing manufacturers the ability to develop portable/mobile medical-specific devices and applications that can be implemented within the same network, making the future medical cloud ecosystem possible. </p>
<p class="body-text"><span class="interview-name">TABORN:</span> The ability to implement future security policies must be considered in today&#8217;s devices. This suggests having the &#8220;headroom&#8221; in the design shipped today to be able to implement more complex policies in the future. Unlike most devices, medical devices in clinical and hospital settings are unique in that they can be in service for 10-to-15 years. For consumer-geared medical mobile devices, we will have to ensure that the applications data acquired can be just as safe and reliable as data acquired in the clinical setting (given the various different circumstances). Multicore solutions are becoming readily available in both Intel and ARM architecture families. This topology choice will allow developers to address these unique application requirements for today with the necessary performance headroom to support the ever-changing security landscape.</p>
<p class="body-text"><span class="interview-name">McCRACKEN:</span> Better hardware standards are needed in order to &#8220;cross the chasm.&#8221; Some existing standards like Qseven have been reasonably architecture-independent. However, there are now so many single-vendor-driven x86 and (especially) ARM module and interface standards that have been prevented from reaching critical mass in this industry. A casual stroll down the halls of Embedded World in Germany reveals that a massive shake-out will be needed; otherwise system manufacturers will be left squandering time-to-market and development budgets in taking the full custom path. Standards organizations have been portrayed as slow-moving and political, leading some suppliers to go it alone. Any standards groups that can set aside self-interests and become more responsive to customers and end users will have a major leg up in leading the consolidation that is needed to facilitate the next wave of medical portable devices. </p>
</p></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/panel-discussion-designing-portable-medical-devices-that-emulate-todays-consumer-devices-with-added-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmable perks: Tallying the benefits of FPGAs</title>
		<link>http://www.embedded-computing.com/articles/id/?5553</link>
		<comments>http://www.embedded-computing.com/articles/id/?5553#comments</comments>
		<pubDate>Fri, 09 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>Jennifer Hesse, Editor, OpenSystems Media</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Silicon]]></category>
		<category><![CDATA[FPGAs]]></category>
		<category><![CDATA[OpenSystems Media]]></category>
		<category><![CDATA[Programmable perks]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=d22f4303dee8bf7bc1dc45ec349c0f2e</guid>
		<description><![CDATA[Leaders in the field of FPGAs share their thoughts on how FPGA technology can simplify and add functionality to embedded designs.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="5" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F5" />Editor&#8217;s note: While many embedded design considerations depend on the target application, some requirements are inevitable: greater performance, lower costs, and increasingly faster time to market. Thanks to major advancements in process technology, FPGAs address all of these design needs by offering substantial parallel processing capabilities, as well as quick-fix infield upgradability. For a comprehensive overview of how FPGA technology can help achieve embedded design goals, we interviewed executives from the leading FPGA companies and collected excerpts from their responses in this virtual panel discussion.</h3>
<p><span id="more-873"></span><span class='body'>
<p class=Bodytext><o:p>&nbsp;</o:p></p>
<p class=figures>
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure1', 'width=875,height=1282,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F1" title="Executive panelists"><br />
					<img width="470" border="0" alt="Figure1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 1:</b> Executive panelists</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom)</b></div>
</td>
</tr>
</table>
</figure>
<p class=interviewquestion><span class=interviewname>ECD:</span> With higher power requirements and recurring costs than custom logic or ASICs, which projects are best suited for FPGA technology?</p>
<p class=bodytext><span class=interviewname>BURICH:</span> FPGAs have benefited significantly from Moore&#8217;s Law, and as a result have been able to stay at the bleeding edge of process technology while at the same time considerably reducing power consumption and development costs. As the costs of advanced process technologies rise (about $60 million for an ASIC at 40 nm), it gets harder to justify the upfront R&amp;D costs. Today, we see a shrinking number of applications that can justify a leading-edge ASIC &#8211;&nbsp;mostly restricted to cell phones, PDAs, video games, and other high-volume applications. Those who can&#8217;t justify such an upfront investment seek to use trailing-edge process technologies. <o:p></o:p></p>
<p class=bodytext>In contrast, FPGAs can afford to use the latest process node and take advantage of Moore&#8217;s Law because there is a much wider array of applications that FPGAs can target. Today&#8217;s leading-edge FPGAs are 2-3 process nodes ahead of where most ASICs are, giving users the most advanced process technology available plus all the accompanying benefits at an overall lower cost. Development costs of leading-edge FPGAs are dramatically reduced because FPGA vendors can aggregate development costs across thousands of designs and customers. FPGAs are ideally suited for industrial, communications, automotive, military, medical, aerospace, and other designs with sub 1 million volumes or where a high degree of flexibility is required.<span class=interviewname><o:p></o:p></span></p>
<p class=bodytext><span class=interviewname>GETMAN:</span> You have to be careful not to take an overly simplistic view when looking at power and cost and comparing different components like ASICs, ASSPs, FPGAs, and new hybrid products like Extensible Processing Platforms (EPPs). The comparison cannot just be at the device level; it also requires analysis at the system level and overall project level.</p>
<p class=bodytext>Design engineers must first answer some tough questions concerning costs, tool availability and effectiveness, production volume, time to market, and how best to present this information to management to gain support throughout the design process.</p>
<p class=bodytext>It&#8217;s interesting to compare these technologies, but in the end, the application is the final differentiator. A list of design objectives in order of importance, including cost (both development &#8211; nonrecurring engineering, and production &#8211; recurring unit cost), die size, time to market, tools, performance, and IP requirements must first be created. Then ask which technology best meets those objectives.</p>
<p class=bodytext>That analysis cannot just stay at the device level, where ASSPs and ASICs have an advantage with regard to both power and cost. For ASICs, the upfront cost means that only very high-volume applications can efficiently use an ASIC. Another trend is for companies to develop &#8220;kitchen sink ASICs,&#8221; where the design requirements for many different end products are the same, thus a single ASIC targeting multiple applications can be developed. However, this creates a problem with design complexity and project risks. Therefore, many customers are moving away from this approach after experiencing product delays and receiving products that, in the end, do not serve anyone&#8217;s needs perfectly. The other disadvantages that kitchen sink ASICs bring are that the silicon area is &#8220;inflated&#8221; to accommodate all the target applications, and therefore is less cost- and power-efficient.</p>
<p class=bodytext>We have always told our customers that if you have an ASSP that does exactly what you want and do not need or want to differentiate your product through hardware functions, then maybe that ASSP is the right choice for you. Most designs, however, can benefit from a flexible, programmable device that targets their unique applications and differentiates their products from the competition. <o:p></o:p></p>
<p class=bodytext>To accomplish that, many ASSP users add an FPGA next to their ASSP. While this offers a certain level of flexibility, it can also present some performance and power consumption challenges, stemming from the interface between the ASSP and the FPGA. This is why in the past few years, we have seen a push for fully integrated FPGA solutions, as well as FPGA vendors starting to offer hybrid solutions like an EPP (see Figure 2).</p>
<p class=figures>
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure2', 'width=875,height=718,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure2" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F2" title="An Extensible Processing Platform (EPP) combines a high-performance dual-core ARM processor with standard peripherals and programmable logic."><br />
					<img width="470" border="0" alt="Figure2" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F2" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 2:</b> An Extensible Processing Platform (EPP) combines a high-performance dual-core ARM processor with standard peripherals and programmable logic.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.8x)</b></div>
</td>
</tr>
</table>
</figure>
<p class=bodytext>Over time, FPGAs have begun taking commonly used blocks such as DSP multipliers, small block RAM memories, and even high-speed serial I/O to offer the best balance of features and flexibility. The Zynq-7000 EPP family uses standard ASIC techniques to harden close to 11 million ASIC gates in the processing subsystem. This type of architecture swings the financial and technical bar around total cost of ownership, performance, and power radically away from traditional ASICs.</p>
<p class=bodytext>Massive parallel processing capabilities are another key benefit of FPGA technology, allowing designers to reach a level of performance not achievable with ASSP products. Additionally, using FPGAs within an EPP greatly reduces the risks involved when designing with ASICSs and ASSPs, as these devices cannot accommodate late design changes and do not provide the flexibility of infield upgrades. FPGAs offer the ultimate system integration platform to meet the growing need for programmable systems that cut development cycles, enable adoption to changing standards, and extend product lifetimes through field upgradability.</p>
<p class=bodytext>This segues perfectly to reducing time to market, a major advantage for any company&#8217;s product. FPGA technology allows our customers to move to market quickly, often in a matter of weeks, while drastically reducing their R&amp;D costs. We offer design engineers a blank device that can be configured and reconfigured on-the-fly to implement any logic function that can be performed by an application-specific device. FPGA technology allows our customers to make changes to their designs very late in the design cycle. Even after the end product has been completed and shipped, they can extend its useful life by reprogramming the FPGA.</p>
<p class=bodytext>Innovations in FPGA technology have reduced the gap of power per device, making FPGAs much more competitive from a power standpoint. The battle to deliver maximum performance with minimum power expenditure is center stage in the evolution of the FPGA. Power conservation affects every budget, whether technological or financial. Product acceptability, reliability, and profitability depend as much or more on power efficiency as they do on performance, regardless of the type of project.</p>
<p class=bodytext>However, the key element of power savings will come from integration and reduced power consumption due to the chip-to-chip interface, which again, must be analyzed at the system level and not just at the chip level.</p>
<p class=bodytext>Increased system performance means new process technologies, massive parallel processing capability, advances in memory interfaces, high-speed transceivers (up to 28 Gbps), and no bottlenecks due to chip-to-chip interfaces. Decreasing power again relates to process technology, and in our case, this means using TSMC&#8217;s high-performance, low-power 28 nm process (a unified architecture across all of our 7 series FPGAs), other technology innovations, and burning no power to do chip-to-chip interfaces in a single device, as well as using fewer power supplies to reduce power consumption on the boards. Cost reduction is based on the use of a single device, which means there are no upfront costs and fewer components used on the board, resulting in a smaller bill of materials and a simpler design.</p>
<p class=bodytext><span class=interviewname>RILEY:</span> The traditional trade-offs between FPGAs and ASICs/custom devices are still in effect. For a specific application, ASICs are lower power and lower cost, but they take much longer to develop and require a large upfront investment. What&#8217;s changing are the time-to-market requirements and useful market life for many projects. <o:p></o:p></p>
<p class=bodytext>Communications and wireless infrastructure developments are under tremendous pressure to get to market, driving engineers to consider process technologies that are reprogrammable and available today. In many cases, this is an FPGA. In the past few years, companies such as Lattice Semiconductor and SiliconBlue Technologies have been developing FPGAs that have solid capabilities and are priced well under $1. In fast-moving, cost-sensitive markets like consumer mobile, this type of solution is often the only way to add functionality in such a short time.</p>
<p class=interviewquestion><span class=interviewname>ECD:</span> How can FPGA technology help embedded design teams deal with reduced budgets and increased system complexity?</p>
<p class=bodytext><span class=interviewname>GETMAN:</span> While system complexity increases and the reduction of system design budgets becomes more of a reality, embedded system designers are jumping on the FPGA technology bandwagon to shorten design cycles, battle obsolescence, and simplify product updates. Using the constantly growing number of integrated FPGA development tools, reusable logic elements, and off-the-shelf modules, designers are creating new and innovative embedded systems that can be easily reconfigured for updates and changes in requirements with only a minimum impact on engineering and manufacturing.</p>
<p class=bodytext>FPGA designs combine multiple components into a single package that reduces component count, board size, and manufacturing complexity. Processors, memory, custom logic, and many of the peripherals in a typical embedded project are now in the FPGA. Today&#8217;s FPGA architecture has grown into billions of logic blocks (equivalent to gates), and with programmable interconnection flexibility designers can easily create hardware functions that exactly match the needs of a specific embedded application.</p>
<p class=bodytext>Drop-in IP cores from device vendors, third-party suppliers, and the open-source community ease FPGA set-up. The standardization of an IP interface (we use the AMBA 4 AXI standard) also greatly reduces design complexity when integrating functions into a single device. Furthermore, fueling a comprehensive ecosystem of hardware design tools, as well as software design tools and operating systems, is yet another key element of reducing design complexity.</p>
<p class=bodytext>Designers can segment FPGA-based signal processing algorithms into parallel computing structures to boost performance. High-level synthesis tools such as AutoESL can help simplify FPGA design and enable companies and developers not familiar with FPGAs or even hardware design to reap the inherent benefits of FPGA technology.</p>
<p class=bodytext>By utilizing a broad set of tools, the embedded designer&#8217;s tool bag for enabling FPGA technology has become increasingly mainstream. FPGA vendors are putting significant time and money into their development tools to improve the turnaround time, which will permit more iterations while reducing time to market and saving engineering efforts. The integration of many system elements into a single device reduces design complexity, as there are fewer chip-to-chip interfaces, as well as fewer performance bottlenecks.<o:p></o:p></p>
<p class=bodytext><span class=interviewname>RILEY:</span> FPGAs are often used as bridging or coprocessing solutions. This allows embedded engineers to build systems out of the products they have. Can&#8217;t connect two dissimilar processors? No problem. FPGAs support a wide range of I/O types. Can&#8217;t handle the processing load? No problem. FPGAs can be configured to offload key functions. <o:p></o:p></p>
<p class=bodytext>FPGAs help get system products to market quickly, and the price and power of FPGA solutions has been dropping at a breakneck pace the past 10 years. FPGAs are used today in smart phones, tablets, laptops, handheld GPS devices, and many other platforms that were once the sole domain of custom logic.</p>
<p class=bodytext><span class=interviewname>BURICH:</span> Designers today are challenged to get many different systems to market in shorter and shorter periods of time. By enabling easy customization for different features, price points, and evolving standards, FPGAs enable engineers to design a common platform and quickly spin off varying systems. <o:p></o:p></p>
<p class=bodytext>One of the most disruptive aspects of embedded design is adopting a new architecture to meet changing requirements. The industrial, medical, and military segments, for example, are also very concerned about product longevity and avoiding device obsolescence. By designing with FPGAs, customers can make incremental changes to a common design to adapt to changing market needs or industry specifications. Having a common tool flow with extensive design reuse addresses budget and time constraints.</p>
<p class=bodytext>New System-on-Chip (SoC) FPGAs featuring hard ARM processor subsystems also help embedded design teams address reduced budgets (see Figure 3). Today&#8217;s leading-edge FPGAs are targeting 28 nm process technology, which relatively few commercial CPUs or ASSPs use. A monolithic SoC FPGA system maximizes power efficiency and software partitioning flexibility. SoC FPGAs allow hundreds of data signals to connect different functional areas, thus enabling 100 Gbps or greater bandwidth with nanosecond-level latencies, representing orders of magnitude better performance and latency than discrete implementations. Furthermore, monolithic integration permits memory controllers to be shared, allowing high-bandwidth memory access for hardware accelerators. A monolithic SoC FPGA implementation enables embedded design teams to increase system performance while lowering system costs and reducing power versus a two-chip solution.</p>
<p class=figures>
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure3', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure3" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F3" title="Today&amp;#8217;s SoC FPGAs combine a hard ARM processor subsystem with the fabric of a 28 nm FPGA."><br />
					<img width="470" border="0" alt="Figure3" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F3" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 3:</b> Today&#8217;s SoC FPGAs combine a hard ARM processor subsystem with the fabric of a 28 nm FPGA.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class=interviewquestion><span class=interviewname>ECD:</span> One of the biggest obstacles to adopting FPGA technology has been the steep learning curve associated with development tools. How has this changed?</p>
<p class=bodytext><span class=interviewname>BURICH:</span> This depends on the designer&#8217;s background. Those familiar with ASICs can quickly adapt to FPGA design flows and save time through the benefits of quicker verification in real silicon. Those who are not familiar with Real-Time Logic (RTL) will have a steeper learning curve. This is being addressed in two areas. The first is system-level design tools such as Altera&#8217;s Qsys, which enables designers to quickly assemble different design blocks using a higher-level graphic block environment. The second is automated RTL development from C language source. While this approach has been tried for many years, it is now coming of age for embedded developers with standards such as OpenCL. OpenCL also addresses the increasing challenge of designing multicore systems. Altera recently announced a program for evaluating FPGA-based OpenCL implementations.<span class=interviewname><o:p></o:p></span></p>
<p class=bodytext><span class=interviewname>GETMAN:</span> Developing FPGA solutions can be complex, requiring the appropriate software tools. While each chip technology requires specific design tools, FPGA users are shielded from concerns of manufacturing yield and submicron issues by the nature of FPGA design flow, which brings ease-of-use, cost, and time-to-market benefits. FPGAs arrive fully tested and physically functional; the FPGA supplier handles physical design, verification, and characterization. Xilinx offers integrated design and debug tools for logic, DSP, and embedded processing, plus interfaces to third-party tools. FPGA design tools have improved dramatically, particularly [those] tools that apply high-level languages or interfaces to develop applications, such as MATLAB/Simulink from MathWorks. </p>
<p class=bodytext>Depending on the provider, software to program FPGAs varies in content and value-add features like compilation and editing tools. Very high-speed Hardware Description Language (VHDL) is the most common development language used. It allows FPGAs to be programmed via an easy-to-use graphical development environment. Additionally, FPGA vendors who provide tools such as development boards, support, and reference designs simplify the FPGA design process.</p>
<p class=bodytext>Conversely, there are longer design and verification cycles for ASICs, with a high likelihood of design re-spins and associated penalties. Plus, costly verification tools, training, and resources are required. </p>
<p class=bodytext>FPGA vendors who continue investing in software development tools and IP will enable more complex systems to be designed while carrying their silicon platform forward and promoting growth. The challenges going forward have not changed. These challenges continue to be reducing power, providing more capability at a lower cost, and further simplifying the programming. As progress is made on all of these fronts, the market share for FPGAs is increasing over ASIC/ASSP providers.</p>
<p class=bodytext><span class=interviewname>RILEY:</span> The learning curve for FPGA design tools depends on where you are coming from. If you are an ASIC designer, the FPGA design tools will seem familiar. A design flow that includes HDL design entry, simulation, synthesis, and place and route is similar to an ASIC flow. For a software engineer who is used to programming in C/C++, the FPGA design flow will be new and require a learning curve. <o:p></o:p></p>
<p class=bodytext>Some vendors have claimed that you can write your code in C and their tools will automatically convert it to HDL. In my experience, this process still requires much human engineering to achieve the system throughput goal that drove the need to move beyond the confines of the microprocessor. There are well-established methodologies for partitioning a design between software and dedicated hardware. These still result in the best cost and performance, and FPGAs allow designers to experiment with different partitioning. Over the years, some FPGAs have included integrated processors, but they have not been successful. One reason for this is the lack of flexibility. <o:p></o:p></p>
<p class=bodytext>The world of microprocessors is vast. You can find any price, performance, or power point you desire from multiple vendors. Once you integrate the processor into the FPGA, your options become limited very quickly.</p>
<p class=interviewquestion><span class=interviewname>ECD:</span> What types of IP core libraries do you offer to shorten the embedded design process?</p>
<p class=bodytext><span class=interviewname>RILEY:</span> Lattice offers a wide range of IP cores, reference designs, and evaluation boards for PCI Express, Serial Rapid I/O, XAUI, Finite Impulse Response (FIR) filtering, Fast Fourier Transforms (FFTs), image and video scaling, MIPI interfaces, and more. Lattice focuses on the mid-range and low-density segments within the FPGA market. This means we concentrate on delivering high-end capabilities such as DDR3 memory interfaces and advanced filtering in low-cost, low-power FPGA platforms. <o:p></o:p></p>
<p class=bodytext>Lattice offers IP cores through a novel tool called IPExpress, which allows customers to change high-level parameters and generate new IP structures tuned to their feature, size, and performance requirements. Lattice provides many reference designs for free at our website. We also work closely with our customers to generate custom designs to meet their needs.<span class=interviewname><o:p></o:p></span></p>
<p class=bodytext><span class=interviewname>BURICH:</span> IP libraries are important, and we offer a wide range of cores from memory controllers to embedded peripherals to high-speed communications interfaces. One of the most popular is our Video and Image Processing (VIP) Suite and our Nios II embedded processor IP. We also have a partner ecosystem that offers IP cores tailored to meet specific application requirements. <o:p></o:p></p>
<p class=bodytext>Just as important as the IP offering is the interconnect logic that ties the IP cores together into a coherent system. Altera offers a system integration tool (SOPC Builder) that automatically generates the logic that handles seemingly trivial yet critically important tasks of bus width adaptation, bus arbitration, bursting, interrupts, and more. We connect memory-mapped and streaming interfaces seamlessly and support high-performance bus standards like ARM AXI, as well as our lightweight, open Avalon interface standards. With the introduction of Qsys, we now generate a Network-on-Chip architecture offering even higher levels of performance and flexibility. Designers can not only assemble IP cores into a custom system, they can also create custom subsystems that can be shared internally to exploit the FPGA design reuse advantage.<o:p></o:p></p>
<p class=bodytext><span class=interviewname>GETMAN:</span> Xilinx offers nearly 100 different embedded processing peripheral IP cores in categories including Processor IP Cores, Interface/Bus/Bridge IP, Peripheral IP, Communications IP, Infrastructure IP, Memory Controller IP, and Debug IP. These cores are included with the ISE Design Suite: Embedded Edition Development Kit and work directly in our Platform Studio, which supports MicroBlaze and PowerPC for PLB-based cores and MicroBlaze for AXI-based cores.</p>
<p class=interviewquestion><span class=interviewname>ECD:</span> Which industry standards do you support to provide customers off-the-shelf, reconfigurable designs?<o:p></o:p></p>
<p class=bodytext><span class=interviewname>GETMAN:</span> We see two aspects with regard to supporting industry standards, one at the external level and one at the internal level. At the external level, take the FPGA Mezzanine Card (FMC) defined in VITA 57 as an example. By using the reconfigurable I/O of FPGAs, design engineers can easily change a transceiver protocol or an I/O standard and route it through a different card connected to the FMC connector on our boards to create a new application/customer. Examples of internal standards that enable quick configuration/reconfiguration are AMBA 4 AXI, IP-XACT, and the proposed IEEE standard for IP Quality (QIP).<o:p></o:p></p>
<p class=bodytext>We support many interface standards for most market segments, including wireless communications, aerospace and defense, intelligent video, automotive, instrumentation, and medical imaging, which eases the connection to other systems. Having a comprehensive IP offering from Xilinx and its partners enables designers to quickly reconfigure their designs for applications or products.<o:p></o:p></p>
<p class=bodytext><span class=interviewname>RILEY:</span> Lattice supports a wide range of hardware standards to help customers evaluate our silicon, design tools, and IP cores. Many of these evaluation boards are available for under $199, which allows customers of all sizes to experiment with Lattice products. Two standards that are popular with embedded designers are PCI Express and the Advanced Mezzanine Card. The AMC provides an FMC expansion connector, a USB-B connection to UART for runtime control, an RJ-45 interface to 10/100/1000 Ethernet, and an SFP transceiver module cage and connection.<o:p></o:p></p>
<p class=bodytext><span class=interviewname>BURICH:</span> From the IP interconnect perspective, we support ARM&#8217;s AMBA AXI bus standard, as well as our own open Avalon bus standards (memory-mapped and streaming). Our Qsys system integration tool supports both AXI and Avalon, and the architecture of the tool is such that we can add other interconnect standards easily as needed. <o:p></o:p></p>
<p class=bodytext>From the IP interface standard perspective, we and our partners offer a wide range of IP cores that can be assembled into a custom system quickly with Qsys. Altera offers a wide variety of IP blocks of differing size and complexity, from the basic arithmetic blocks to transceivers, memory controllers, microprocessors, signal processing, and protocol interfaces. Altera and its third-party IP partners offer a broad portfolio of off-the-shelf, configurable IP cores optimized for Altera devices. Licensed and unlicensed IP is delivered and installed with our Quartus II design software.<span class=interviewname><o:p></o:p></span></p>
<p class=interviewquestion><span class=interviewname>ECD:</span> Marketing materials for new processors with Advanced Vector Extensions (AVX) suggest replacing external FPGAs with code. Will this new architecture affect the FPGA industry?</p>
<p class=bodytext><span class=interviewname>RILEY:</span> AVX is an extension of the x86 instruction set targeted at improving performance, specifically in floating-point designs. Processors with AVX can work together with FPGAs to handle tasks such as bridging a dual-sensor interface to a new processor (see Figure 4). These extensions will allow embedded designers to do more with their x86 architectures; however, the performance gulf between a processor and an FPGA is still very large. Benchmark applications such as Finite Impulse Response (FIR) filtering, Fast Fourier Transforms (FFTs), and 2D image filtering are still many times faster on FPGAs than microprocessors. Also, FPGAs are superior for implementing general-purpose logic and bridging to dissimilar devices. So AVX will be a big help to many embedded designers, but it won&#8217;t obviate the need for FPGAs in embedded designs.</p>
<p class=figures>
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure4', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure4" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F4" title="Lattice Semiconductor&amp;#8217;s MachXO2 FPGA can be implemented as a high-speed CMOS sensor interface."><br />
					<img width="470" border="0" alt="Figure4" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD5553%2Ffigures%2F4" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 4:</b> Lattice Semiconductor&#8217;s MachXO2 FPGA can be implemented as a high-speed CMOS sensor interface.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p>		   <span class=interviewname><o:p></o:p></span></p>
<p class=bodytext><span class=interviewname>BURICH:</span> Custom hardware has always outperformed software. The trade-offs of off-the-shelf hardware extensions are:</p>
<p class=numberedbullets><![if !supportLists]><span style='mso-fareast-font-family: Times;mso-bidi-font-family:Times'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span></span><![endif]>They might not be optimal for a broad range of applications; only custom, application-specific hardware can deliver the best performance. AVX offers benefits to the PC and tablet industries, but FPGAs already come with strong parallel processing capabilities and are the better fit for embedded markets. One-size-fits-all acceleration incurs the cost of answering a wide range of needs, resulting in inherent inefficiencies.</p>
<p class=numberedbullets style='text-indent:0in;mso-list:none'>Off-the-shelf hardware extensions don&#8217;t lend themselves to establishing a competitive advantage because competitors have access to the very same hardware and software. Custom hardware can create a competitive differentiator and help developers create a product that outperforms the competition in both performance and revenue generation.<o:p></o:p></p>
<p class=bodytext><span class=interviewname>GETMAN:</span> These types of specialized extensions are not new trends to the industry. As an example, MMX was introduced in the mid &#8217;90s on Intel Pentium processors to improve multimedia processing. The ARM architecture is also enhanced with NEON extensions that serve a similar purpose.<o:p></o:p></p>
<p class=bodytext>In a design where an FPGA is used to perform simple accelerator functions for the main processor, the extra gain in performance from AVX will remove the need for some FPGAs. However, FPGAs are used for other functions beyond just simple accelerators, such as adding peripherals to the main processor, and the AVX architecture cannot address this need covered by FPGAs.<o:p></o:p></p>
<p class=bodytext>With the continual need for increased system performance, fixed defined instructions might not perfectly address a great deal of proprietary algorithm processing. This results in more clock cycles per function, yielding not only lower performance, but also higher power. This makes the massive parallel approach provided by FPGA architecture well-suited for hardware acceleration, thus enabling customers to continue achieving higher system performance. Therefore, the answer on industry effect is both yes and no.<o:p></o:p></p>
<p class=bodytext>In addition, FPGA companies have introduced new hybrid architectures (such as the Zynq-7000) that combine application-class processors and programmable logic. These new architectures offer the capability to add hardware accelerators in the programmable logic and have it controlled by the processor in a similar way as AVX. The massive parallel processing capabilities of programmable logic available in these hybrid devices enable performance beyond what AVX instructions could bring to a processor.<o:p></o:p></p>
<p class=authorbio>Misha Burich is the senior VP of R&amp;D at Altera.</p>
<p class=authorbio>Lawrence Getman is the VP of Processing Platforms at Xilinx. Prior to this role, Lawrence was in charge of corporate development at Xilinx. Before joining Xilinx, he worked as the VP of Business Development at Triscend Corporation and held a variety of marketing and sales roles. Lawrence has a BSEE from Rochester Institute of Technology and an MBA from San Jose State University.<o:p></o:p></p>
<p class=authorbio>Sean Riley is Corporate VP of the Infrastructure Business Group at Lattice Semiconductor.</p>
<p class=contactinfoCxSpFirst>Altera<br /> Linkedin: <a href="http://www.linkedin.com/company/altera">www.linkedin.com/company/altera</a><br /> Facebook: <span style='font-weight:normal'><a href="http://www.fb.com/alteracorp"><b style='mso-bidi-font-weight:normal'>www.fb.com/alteracorp</b></a></span> <br /> Twitter: <a href="https://twitter.com/#!/alteracorp">@alteracorp</a><br /> <span style='font-weight:normal'><a href="http://www.altera.com"><b style='mso-bidi-font-weight:normal'>www.altera.com</b></a></span> </p>
<p class=contactinfoCxSpMiddle>Xilinx<br /> Linkedin: <span style='font-weight:normal'><a href="http://www.linkedin.com/company/xilinx"><b style='mso-bidi-font-weight: normal'>www.linkedin.com/company/xilinx</b></a></span> <br /> Facebook: <span style='font-weight:normal'><a href="http://www.fb.com/XilinxInc"><b style='mso-bidi-font-weight:normal'>www.fb.com/XilinxInc</b></a></span> <br /> Twitter: <a href="https://twitter.com/#!/xilinxinc">@XilinxInc</a><br /> <span style='font-weight:normal'><a href="http://www.xilinx.com"><b style='mso-bidi-font-weight:normal'>www.xilinx.com</b></a></span> </p>
<p class=contactinfoCxSpLast>Lattice Semiconductor<br /> Linkedin: <span style='font-weight:normal'><a href="http://www.linkedin.com/company/lattice-semiconductor"><b style='mso-bidi-font-weight:normal'>www.linkedin.com/company/lattice-semiconductor</b></a></span> <br /> Facebook: <span style='font-weight:normal'><a href="http://www.fb.com/latticesemi"><b style='mso-bidi-font-weight:normal'>www.fb.com/latticesemi</b></a></span> <br /> Twitter: <a href="https://twitter.com/#!/latticesemi">@latticesemi</a><br /> <span style='font-weight:normal'><a href="http://www.latticesemi.com"><b style='mso-bidi-font-weight:normal'>www.latticesemi.com</b></a></span> </p>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/programmable-perks-tallying-the-benefits-of-fpgas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open source clears up the military stovepipe mess: Interview with Cal Houghton, Vice President, Strategic Initiatives &amp; Advanced Technology, Intelligent Software Solutions</title>
		<link>http://www.mil-embedded.com/articles/id/?5579</link>
		<comments>http://www.mil-embedded.com/articles/id/?5579#comments</comments>
		<pubDate>Wed, 07 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>Sharon Hess</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[ajax application development]]></category>
		<category><![CDATA[ajax rich internet application]]></category>
		<category><![CDATA[application development database]]></category>
		<category><![CDATA[applications of database]]></category>
		<category><![CDATA[architecture soa]]></category>
		<category><![CDATA[c4isr systems]]></category>
		<category><![CDATA[client server application development]]></category>
		<category><![CDATA[client server web applications]]></category>
		<category><![CDATA[commercially off the shelf]]></category>
		<category><![CDATA[compare database tables]]></category>
		<category><![CDATA[compare sql database]]></category>
		<category><![CDATA[compare sql databases]]></category>
		<category><![CDATA[compare two databases]]></category>
		<category><![CDATA[creating applications]]></category>
		<category><![CDATA[creating web based applications]]></category>
		<category><![CDATA[database application]]></category>
		<category><![CDATA[database application development]]></category>
		<category><![CDATA[database for .net]]></category>
		<category><![CDATA[developing a web application]]></category>
		<category><![CDATA[developing database applications]]></category>
		<category><![CDATA[developing net applications]]></category>
		<category><![CDATA[developing rich internet applications]]></category>
		<category><![CDATA[developing web application]]></category>
		<category><![CDATA[Industry Spotlight]]></category>
		<category><![CDATA[internet application developer]]></category>
		<category><![CDATA[internet application services]]></category>
		<category><![CDATA[internet application software]]></category>
		<category><![CDATA[j2ee application development]]></category>
		<category><![CDATA[j2ee web application development]]></category>
		<category><![CDATA[j2ee web development]]></category>
		<category><![CDATA[Managing Editor]]></category>
		<category><![CDATA[military embedded system]]></category>
		<category><![CDATA[mobile web application developers]]></category>
		<category><![CDATA[net database]]></category>
		<category><![CDATA[net web application development]]></category>
		<category><![CDATA[Open source clears up the military stovepipe mess]]></category>
		<category><![CDATA[relational data modelling]]></category>
		<category><![CDATA[relational database tables]]></category>
		<category><![CDATA[rich internet]]></category>
		<category><![CDATA[rich internet aplication]]></category>
		<category><![CDATA[rich internet application developer]]></category>
		<category><![CDATA[rich internet application developers]]></category>
		<category><![CDATA[rich internet applications development]]></category>
		<category><![CDATA[rich internet applications frameworks]]></category>
		<category><![CDATA[rich internet applications ria]]></category>
		<category><![CDATA[rich internet applications rias]]></category>
		<category><![CDATA[rich internet apps]]></category>
		<category><![CDATA[Software analysis]]></category>
		<category><![CDATA[sql compare databases]]></category>
		<category><![CDATA[sql compare tables]]></category>
		<category><![CDATA[sql data compare]]></category>
		<category><![CDATA[sql database compare]]></category>
		<category><![CDATA[sql schema compare]]></category>
		<category><![CDATA[web app developer]]></category>
		<category><![CDATA[web app developers]]></category>
		<category><![CDATA[web application development frameworks]]></category>
		<category><![CDATA[web application development tool]]></category>
		<category><![CDATA[web based application developer]]></category>
		<category><![CDATA[web based application development on .net]]></category>
		<category><![CDATA[web based application development tools]]></category>
		<category><![CDATA[web based database application]]></category>
		<category><![CDATA[web based database applications]]></category>
		<category><![CDATA[web based database development]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=7fc83c772519d5c405301ed63af11ff9</guid>
		<description><![CDATA[In an exclusive interview with Military Embedded Systems, Carl Houghton of Intelligent Software Solutions details how the company's software toolkit links disparate databases and operates in "real-time," quickly compiling data and automating operator notification when data changes.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="1" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5579%2Ffigures%2F1" />Editor&#8217;s note: While the issue of military stovepipes continues on, Government Off-the-Shelf software provider Intelligent Software Solutions&#8217; toolkit &#8211; already in use by several branches of the U.S. Armed Forces &#8211; is thwarting the challenge by making it possible to link several disparate databases or data sources that would have otherwise not been able to &#8220;talk&#8221; to each other. As Managing Editor Sharon Hess found out when she recently talked to Carl Houghton, Vice President, Strategic Initiatives &#038; Advanced Technology at Intelligent Software Solutions, the &#8220;real-time&#8221; ability of the software to combine data fast and automatically notify operators of data changes greatly simplifies the challenge for command and control operatives, as well as other government personnel. Meanwhile, the open source software company also does a thing or two with iOS and Android &#8211; and watches to see which one will capture the market. Edited excerpts follow.</h3>
<p><span id="more-852"></span><span class='body'>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Intelligent Software Solutions is a software and public services company founded about 15 years ago and headquartered in Colorado Springs. The company was started by four software engineers who still own the company. We&#8217;ve got close to 700&nbsp;employees today, with offices in Tampa, Florida; Rome, New York; Washington, D.C.; and Hampton, Virginia; and we just opened an office recently in Boston. We&#8217;ve got four major business units in the company: One focuses on Command and Control and Intelligence, Surveillance, and Reconnaissance. We also have a National Systems division, focused on D.C. area customers and the Coast Guard. Then we have our Enterprise System Division, which used to be called Combat Systems and provides support to ongoing operations in Afghanistan and a couple other places. And then we&#8217;ve got my division, Strategic Initiatives, and we focus on advanced technology development. We are doing things for DARPA and other service laboratories and research and development work, both IRAD as well as government-funded research and&nbsp;development. </p>
<p class="interview-question">You&#8217;re focused on Government Off-the-Shelf [GOTS], I believe?</p>
<p class="body-text"><span id="Ad-ABD-1" style="display: none; float: left;"></span><span class="interview-name">HOUGHTON:</span> Yes, we develop software for desktop, Web, and mobile device applications; we&#8217;re predominantly a Government Off-the-Shelf software provider: The government owns unlimited use rights to everything we develop, so they don&#8217;t have to license for each deployment. What is nice about that model is that we&#8217;ve got this ubiquitous data access framework on the backend that can connect up to a lot of different data sources. And then we can use that to push the data out, whether it be to a desktop application, a Web application, or a mobile application. And so we try to reuse these government off-the-shelf frameworks as much as we can in our applications. </p>
<p class="interview-question">Can you tell me which government entities you work with and which kinds of open source software you&#8217;re providing them?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Our largest contract is actually with the Air Force Research Laboratory [AFRL], and they use our WebTAS-TK toolkit. It started out as a $350 million indefinite delivery/indefinite quantity [AFRL] contract, but any government agency can use [the contract] to purchase software and services. The toolkit is software that provides ubiquitous data access, visualization, and data analysis for a wide range of applications. And what&#8217;s nice about it is we can build on top of that framework. [When] you want to build the new application, we have a 70 to 80 percent solution at the starting point and then we can build what we call &#8220;business layers&#8221; on top of that to extend it to solve different problems. So for the Coast Guard, we could take a piece of Government Off-the-Shelf software, build a business layer on top of that that is specific to their requirements and workload, and they have a solution without having to start from scratch and [without having to] ask for licensing and software. So we replicate that model across the government space. </p>
<p class="body-text">We do a lot of work with the Air Force and the Army and some work with the Coast Guard, as I mentioned. We typically provide them with WebTAS-TK or perhaps CIDNE, which is software that tracks events. So if you have a series of events that takes place and you want to track it and you want to track who was involved, for example, CIDNE enables you to do that. So the main two applications we deploy to our customer base right now are WebTAS-TK and CIDNE. We&#8217;ve got other types of software that are more minor applications. We do service oriented architecture infrastructures for the space community and for several others. </p>
<p class="interview-question">Are WebTAS-TK and CIDNE used by warfighters or by operators at a desk?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Yes to both. The users could be [soldiers] deployed in Afghanistan, who use the software for various visualization/analytical purposes [and transmit that information] to people who are back in the U.S. using the data for Command and Control purposes. The Coast Guard is using it for maritime operations for securing our&nbsp;ports. </p>
<p class="interview-question">Let&#8217;s drill down on how WebTAS-TK works.</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Sure. So the software itself is predominantly a Java-based framework that allows us to do database connections. We can use JDBC- or ODBC-type connections to connect to relational databases. We can connect to other relational data sources; we can connect to Web services and various streaming data sources. I can&#8217;t go into specific details about specific applications on the government space, but I can give you some information. For example, if you had 20 different relational databases that range from Excel spreadsheets through Access databases all the way up to enterprise Oracle instances and you wanted to federate those into a single data space that could have a single logical object monolog you could query against &#8211; [WebTAS-TK] provides the ability to federate and provide that single logical object model and data space. </p>
<p class="body-text">So once you have that, then we have a whole series of different analytical tools that allow you to visualize and analyze data temporally, geospatially, and internodally to look for interesting bits of data from your federated data space. </p>
<p class="interview-question">Tell me more about the Web and mobile applications you work on.</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> On the Web side, we use a wide variety of technologies, anything from Java server faces to Flex and Flash. We do a lot with pure Flash with Flex and ActionScript. We also were doing some HTML5 applications, and all of those have the ability to come through the WebTAS-TK backend or provide Web-based access to that data. In the mobile space we develop on both iOS and Android, and we get to those through the use of JSON or other transport media to get the information from a WebTAS-TK backend to a mobile device on the front end. </p>
<p class="interview-question">Can you give a scenario of how the military would use WebTAS-TK? </p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Let&#8217;s say you had a Command and Control application requirement and that you have a database that has information on where a particular aircraft is located. And maybe you have other sources of information that say, &#8220;Here is the status of all the various bases.&#8221; And then you&#8217;ve got a third database that has maybe targets for flying purposes, and you need to federate those things so you can plan missions, know what your available resources are and what their status is, and know which targets you are going to plan against. And you need the ability to eventually bring that data together from these three disparate databases that don&#8217;t talk to each other in order to be able to do that planning. That is what you could do with this software. You could imagine that could be 50 different databases. Today it is a classic problem [in the military] of &#8220;I&#8217;ve got all these different stovepipes and no way to federate and look across them such that I can make those decisions.&#8221;</p>
<p class="interview-question">Does WebTAS-TK deliver the data, analyses, and so on in real time? </p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> It&#8217;s real time. It can operate transactionally. So as a database or data source gets updated in real time or when a table gets data added to it or updated, or a Web service fires an event to say &#8220;Hey, something has changed,&#8221; the software can make a real-time update to the displays and the analytics and notify the operator. I know you&#8217;re talking embedded systems, so when you talk &#8220;real time,&#8221; it may be on a different sort of scale or level, but in a database transaction level, we are real time. If there has been a transaction in the database, we&#8217;re talking less than a second that the other data is updated and the operator can be made aware there has been a change to a database&nbsp;table. </p>
<p class="interview-question">So the change notifications are&nbsp;automatically generated by the&nbsp;software? </p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Correct. So the services piece that we do is customization of the software to a particular domain. But we&#8217;re not a data producer. </p>
<p class="interview-question">Since your products are deployed to the military or government, is there a security feature built into the software?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Yes. There is a security manager built into the software and it does go through security accreditation by the appropriate government agency(ies) for deployment. Both CIDNE and WebTAS-TK go through accreditation for every release.</p>
<p class="interview-question">Can you tell me more about CIDNE &#8211; how it works or a real-life military scenario?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> I can&#8217;t go into as much detail on CIDNE specifically. I am basically constrained as to what is in the public domain on the program. But we use Adobe ColdFusion; it runs on top of the Microsoft SQL Server database and allows people to enter events of interest and track those events over time and&nbsp;space. </p>
<p class="interview-question">Is it looking for just a preset, specific event like &#8220;I am looking for a man wearing a hat going into a building,&#8221; or does it look for similarities between&nbsp;events? </p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> In and of itself, it is not an analytical program. It is really a database, a federated database of events. So really it&#8217;s a series of forms where people can enter events, and they really can be any kind of event. So it could be that we&#8217;ve got burglaries around San&nbsp;Antonio and I want to be able to track those burglaries for the police department. It will allow users to track who was involved, where the burglaries took place, geospatially and temporally, and gives you a standardized way of everybody entering that information. But that is just one class of events; you could have a thousand classes of events and you could track them all in a single database. That is really what the power of the thing is.</p>
<p class="interview-question">You said that military is using CIDNE&nbsp;now?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Yes, but I can&#8217;t really go into the details of that, unfortunately.</p>
<p class="interview-question">What would you say is the focus&nbsp;of your&nbsp;government and military customers? What are the trends?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> I think what we see and again when you look at constrained budgets going forward, they don&#8217;t want to necessarily pay huge licensing fees for software. And then the ability for them to fund just development on the specific functionality that they want and the ability to rapidly get that functionality into their hands. </p>
<p class="interview-question">What else &#8211; any specific technology capabilities?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> Yeah, the ability to provide ubiquitous data access and connect up to and federate all those data sources is something that is very attractive. The other functional thing that people like is the ability, for instance, to send output to Google Earth. Seemingly that is a very simple thing, but when you get in and say, &#8220;OK, I want to take Google Earth and I want to connect up to 50 different data sources with it,&#8221; there is not a way to do that out-of-the-box using just Google Earth &#8211; especially if those are relational databases with very complex data models. And so we have a lot of users that use us as kind of an intermediary to translate from all the databases they want to get at and send to Google Earth on the other side. </p>
<p class="interview-question">All the software your company designs &#8211; WebTAS-TK and CIDNE&nbsp;and&nbsp;your software for mobile devices &#8211; that&#8217;s ALL Government Off-the-Shelf?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> That is correct. Everything we do is GOTS. </p>
<p class="interview-question">Would there be security issues in using GOTS software for commercial customers, if your commercial customers knew how to use the same software that government customers were using?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> No, because the core software itself is rather innocuous. There are no security issues with providing that in the commercial space. We have gotten approval from the government to actually sell it as a commercial product, so they have gone through the security reviews and have no issues with it. We have also gone through the Commerce Department and gotten a commerce jurisdiction to sell it externally to foreign countries. And anytime we deal with potentially foreign military sales, we have to go through ITAR, which is, of course, a rather involved review before we can export anything.</p>
<p class="interview-question">Are there any new trends in open source&nbsp;software?</p>
<p class="body-text"><span class="interview-name">HOUGHTON:</span> The biggest one that we are seeing is the transition to rich Internet technologies &#8211; and the trend over the past year to push toward more HTML5 functionality in the rich Internet application space and even in the mobile application space. With Adobe announcing this year that they are giving up on Flash runtime on the mobile devices and feeding that to HTML5, it&#8217;s really interesting. One of the best things with HTML5 is that it provides the ability to do all the things you can do with Flash in terms of having a rich experience inside the browser (the ability to play video and to play audio and to have interactive content) &#8211; without having any plug-ins. HTML5 is still not a standard ratified by the World Wide Web Consortium, so Internet Explorer and Microsoft are still not fully compliant with the HTML5 spec. But other browsers such as Google Chrome and Safari are implementing all the functionality. </p>
<p class="body-text">The other huge growth area that we are seeing is just Android being proliferated as an open source operating system on mobile devices and really providing an [alternative] to iOS. The fact that you have an open source operating system in a mobile space is very attractive. So I&nbsp;think the proliferation and growth of Android and in particular in the tablet space is going to be interesting as they try to compete with the iPad and iOS.  </p>
<p class="author-bio">Carl Houghton, Vice President, Strategic Initiatives &amp; Advanced Technology at&nbsp;Intelligent Software Solutions (ISS), is responsible for facilitating strategic business&nbsp;development goals across numerous business units in the company. Carl&nbsp;is&nbsp;a combat veteran of the U.S. Air Force. He flew more than 2,000 combat hours in support of operations in the Middle East and Bosnia and Herzegovina. He&nbsp;has&nbsp;a&nbsp;Bachelor&#8217;s of Science in Information Technology and is a graduate with honors from&nbsp;the Defense Language Institute in Modern Standard Arabic. Contact&nbsp;him at&nbsp;<a href="mailto:carl.houghton@issinc.com">carl.houghton@issinc.com</a>.</p>
<p class="contact-info">Intelligent Software Solutions 719-457-0690 www.issinc.com</p>
</p></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/open-source-clears-up-the-military-stovepipe-mess-interview-with-cal-houghton-vice-president-strategic-initiatives-advanced-technology-intelligent-software-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trusting the tools: An agile approach to tool qualification for DO-178C</title>
		<link>http://www.mil-embedded.com/articles/id/?5578</link>
		<comments>http://www.mil-embedded.com/articles/id/?5578#comments</comments>
		<pubDate>Wed, 07 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>Dr. Benjamin Brosgol, AdaCore</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[178b certification]]></category>
		<category><![CDATA[ada 2005 gnat]]></category>
		<category><![CDATA[ada 95 compiler]]></category>
		<category><![CDATA[AdaCore]]></category>
		<category><![CDATA[adacore gnat]]></category>
		<category><![CDATA[adacore gnat pro]]></category>
		<category><![CDATA[aonix ada]]></category>
		<category><![CDATA[biztalk failed message routing]]></category>
		<category><![CDATA[c code static analysis]]></category>
		<category><![CDATA[c static analysis tool]]></category>
		<category><![CDATA[c static analysis tools]]></category>
		<category><![CDATA[code analyze tool]]></category>
		<category><![CDATA[do-178b do-254]]></category>
		<category><![CDATA[do178b certification]]></category>
		<category><![CDATA[faa do-178b]]></category>
		<category><![CDATA[gnat ada 2005]]></category>
		<category><![CDATA[gnat ada compiler]]></category>
		<category><![CDATA[gnat ada download]]></category>
		<category><![CDATA[gnat ada windows]]></category>
		<category><![CDATA[klocwork static analysis]]></category>
		<category><![CDATA[klocwork tool]]></category>
		<category><![CDATA[Mil Tech Trends]]></category>
		<category><![CDATA[rtca 178b]]></category>
		<category><![CDATA[rtca d0-160]]></category>
		<category><![CDATA[rtca d0-160d]]></category>
		<category><![CDATA[rtca do-178a]]></category>
		<category><![CDATA[rtca do-178c]]></category>
		<category><![CDATA[rtca do160d]]></category>
		<category><![CDATA[rtca do178]]></category>
		<category><![CDATA[rtca do178b]]></category>
		<category><![CDATA[rtca do254]]></category>
		<category><![CDATA[software engg models]]></category>
		<category><![CDATA[source code static analysis]]></category>
		<category><![CDATA[static code analyser]]></category>
		<category><![CDATA[static code analyzers]]></category>
		<category><![CDATA[static code checker]]></category>
		<category><![CDATA[Transitioning from DO-178B to DO-178C]]></category>
		<category><![CDATA[Trusting the tools]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=dc7970dc74b6e85c6a2929b361994c0b</guid>
		<description><![CDATA[As the transition from DO-178C takes hold, ensuring tool qualification for software being developed to the new standard is a must. With attention to Tool Qualification Levels (TQLs) and a Configuration Management (CM) system, development tools, projects, and environments can transition smoothly between requirements.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="2" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5578%2Ffigures%2F2" />The new avionics software safety standard DO-178C, along with its supplemental Software Tool Qualification Considerations (DO-330), has clarified and expanded the tool qualification guidance provided in DO-178B. The challenge of maintaining qualification-ready tools throughout a system&#8217;s evolution can be expedited through an approach based on agile development principles.</h3>
<p><span id="more-853"></span><span class='body'>
<p class="body-text">If a manual activity required for avionics software certification is reduced or replaced by an automated tool, and the output of that activity is used without being verified, then the developer needs to qualify the tool: demonstrate that the tool is at least as trustworthy as the activity that it is replacing. The new avionics safety standard, DO-178C &#8211; together with its companion <span class="italics">Software Tool Qualification Considerations,</span> DO-330 &#8211; has clarified and expanded the tool qualification guidance defined in DO-178B. The following discussion summarizes the new guidance and describes an agile approach to maintaining qualification-ready tools in the presence of system maintenance and changes.</p>
<p class="heading-1">Tool qualification in DO-178B</p>
<p class="body-text">DO-178B[1], a commercial avionics software safety standard that is finding increasing usage in military aircraft development, is often referred to as &#8220;process based&#8221;: It specifies an interrelated collection of software life-cycle processes, each comprising a set of activities and associated objectives. The activities produce outputs (&#8220;artifacts&#8221;) that are evaluated by certification authority personnel to see if they comply with the objectives specified in DO-178B. The applicable objectives (and thus the applicable activities and artifacts) depend on the Software Level: the criticality of the software in ensuring aircraft and occupant safety. The levels range from E (no effect) to A (software failure can directly lead to loss of aircraft and, therefore, lives).</p>
<p class="body-text">Some DO-178B activities are automatable, and the standard describes how a tool can be trusted to replace or reduce a manual activity if the tool&#8217;s output is used without being verified. It defines two categories: development tools and verification tools. A <span class="italics">development tool </span>generates output that is part of the airborne software and thus has the potential to introduce errors. An example is a code generator that produces source code from a model-based design. <span class="italics">A verification tool</span> cannot introduce any errors but may fail to detect errors, for example, a static analysis tool that identifies variables that are read before being initialized. </p>
<p class="body-text">Tool qualification entails preparing, among other data items, the Tool Operational Requirements (TOR). The TOR defines various properties of the tool including its features, installation, usage, and operational environment.</p>
<p class="body-text">A development tool needs to be qualified if, and only if, the software generated by the tool will not be subjected to the same applicable certification objectives as the other airborne software. Development tool qualification entails meeting the same objectives as for the certification of the airborne software. (Although compilers and linkers are development tools, qualification is not required since their output is verified through other DO-178B activities. Indeed, qualification would be expensive and would not simplify the effort in meeting other objectives such as traceability analysis.)</p>
<p class="body-text">Qualifying a verification tool is considerably simpler than qualifying a development tool, in part because DO-178B&#8217;s philosophy is to encourage the use of such tools to automate activities involving repetitive and rule-based tasks, which are better performed by automated tools than by humans. Qualifying a verification tool basically consists in demonstrating that the tool complies with its TOR. </p>
<p class="heading-1">Tool qualification in DO-178C</p>
<p class="body-text">Tool qualification has been an important part of DO-178B certification, but several issues have arisen in practice:</p>
<ul>
<li class="bullets">The distinction between a verification tool and a development tool is not always straightforward. Moreover, a verification tool might not simply automate a specific activity; its output may also be used&nbsp;to eliminate or reduce some other activity.</li>
<li class="bullets">Requiring a development tool to&nbsp;meet the same objectives as the airborne software is unnecessarily restrictive, since the operational environments are different. For example, an unbounded recursion in&nbsp;the avionics software could exhaust stack storage and lead to a system failure; the same behavior in a development tool would not present a safety hazard. </li>
<li class="bullets">Although tool qualification is intrinsically in the context of a specific system, it would be beneficial if the qualification requirements expedited reuse of qualified tools on a modified version&nbsp;of an existing system.</li>
</ul>
<p class="body-text">All of these issues are addressed in either DO-178C[2] or its accompanying supplement DO-330, <span class="italics">Software Tool Qualification Considerations[3].</span></p>
<ul>
<li class="bullets">The terms &#8220;development tool&#8221; and &#8220;verification tool&#8221; have been replaced by three criteria. Criterion&nbsp;1 corresponds to a development tool (that is, the tool could insert an error into airborne software). Criterion&nbsp;2 corresponds to a verification tool that could fail to detect an error and is used to reduce other development or verification activities. Criterion 3 corresponds to a verification tool that could fail to detect an error but is not used to reduce other development or verification&nbsp;activities.</li>
<li class="bullets">The required qualification for a tool &#8211; its Tool Qualification Level (TQL) &#8211; depends on its Criterion and on the Software Level of the software that the tool is used for, as shown in Table 1. The TQL ranges from 5 (comparable to a DO-178B verification tool) to 1 (similar to Software Level A). The activities and data items associated with each TQL are defined in a separate document, DO-330, with the same structure as DO-178C. DO-330 provides comprehensive guidance for tool qualification and recognizes the differences between the execution environments for the airborne software and the tool. </li>
<li class="bullets">DO-330 explicitly covers the usage&nbsp;of previously qualified tools. In brief, the reuse of a previously qualified tool is allowed as long as the developer can demonstrate, through a change impact analysis, that the tool still complies with its TQL requirements despite any changes in the operational environment or to&nbsp;the tool itself.</li>
</ul>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Table1', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Table1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5578%2Ftables%2F1" title="The required qualification for a tool &amp;#8211; its Tool Qualification Level (TQL) &amp;#8211; depends on its Criterion and on the Software Level of the software for which the tool is used."><br />
					<img width="470" border="0" alt="Table1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5578%2Ftables%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Table 1:</b> The required qualification for a tool &#8211; its Tool Qualification Level (TQL) &#8211; depends on its Criterion and on the Software Level of the software for which the tool is used.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="heading-1">Reuse of previously qualified tools</p>
<p class="body-text">The ability to reuse, or easily adapt, the qualification artifacts for a previously qualified tool is especially important. DO-178B provided no explicit guidance here. Tool qualification that was performed for one system would need to be repeated for any new system or if any aspect of the tool or environment changed. As a result, a project manager would commonly choose the operational environment and tools at an early stage, and then commit to these versions so that the tool qualification artifacts could be used during final system certification. This is sometimes referred to as the &#8220;big freeze,&#8221; where the environment and tools are locked in early. </p>
<p class="body-text">DO-330 addresses these issues. Specific guidance for previously qualified tools allows reuse of the qualification artifacts as long as nothing has changed that would affect qualification. It considers three scenarios: </p>
<ul>
<li class="bullets">Reuse of a previously qualified tool without change &#8211; An example is when a tool is used for related projects or on multiple phases of an existing project. The developer needs to identify the approach and&nbsp;rationale in the plans.</li>
<li class="bullets">Changes to the tool operational environment &#8211; The developer needs to update one or more of the plans, but the bulk of the original qualification artifacts may be reused as is. Only the updated artifacts related to the operational environment need to be reviewed by the certification authority.</li>
<li class="bullets">Changes to the tool itself &#8211; A&nbsp;change impact analysis has to be&nbsp;provided, but tool requalification still has a reduced cost, essentially only requiring activities associated with aspects that have changed or are affected by the change. The key is to be able to exactly determine and specify what has changed and what these changes impact, or perhaps more importantly, what they&nbsp;do not impact.</li>
</ul>
<p class="heading-1">Agile requalification</p>
<p class="body-text">Based on the tool qualification guidance &#8211; either from DO-178B or from DO-178C and DO-330 &#8211; it is possible to define a framework for tracking the changes to a tool or its operational environment and for automatically initiating the tool qualification activities triggered by the&nbsp;changes.</p>
<p class="body-text">For example, a tool can be initially developed and qualified based on the objectives defined in DO-178C and DO-330. The full tool development life-cycle processes and their associated qualification artifacts can be captured and maintained in a Configuration Management (CM) system, including all dependence relationships (see Figure&nbsp;1). The core CM system allows basic regeneration of all qualification data and artifacts needed to reproduce a tool qualification. The full structure allows impact and change analysis. In this way any change to the tool&#8217;s operational environment or to the tool itself can be tracked. Most importantly, the structure will clearly show which parts of the tool and its artifacts are not affected and thus can remain unchanged and retain their previous review and qualification readiness.</p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure1', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5578%2Ffigures%2F1" title="The full tool development life-cycle processes and their associated qualification artifacts can be captured and maintained in a Configuration Management (CM) system, including all dependence relationships."><br />
					<img width="470" border="0" alt="Figure1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5578%2Ffigures%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 1:</b> The full tool development life-cycle processes and their associated qualification artifacts can be captured and maintained in a Configuration Management (CM) system, including all dependence relationships.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="heading-1">Transitioning to the new qualification&nbsp;guidance</p>
<p class="body-text">DO-178B is effectively a subset of DO-178C. Thus, a project can continue with the development and certification plans established for DO-178B while migrating chosen portions to DO-178C, for example, to exploit the tool qualification objectives in DO-330. Therefore, both existing DO-178B projects and new DO-178C projects can take advantage of DO-330&#8217;s cost-effective guidance on tool qualification and requalification. </p>
<p class="body-text">The AdaCore Qualifying Machine framework[4], an in-progress implementation of the agile technique described in the previous section, supports this approach. It can help projects avoid the &#8220;big freeze,&#8221; so that tools and development environments can evolve smoothly. Tools may be upgraded to newer versions as updates become available, without the risk of losing the tool qualification required for system certification. </p>
<p class="reference-heading">References:</p>
<p class="references-list">[1] RTCA SC-167/EUROCAE WG-12. RTCA/DO-178B &#8211; Software Considerations in Airborne&nbsp;Systems and Equipment Certification, December 1992. </p>
<p class="references-list">[2] RTCA/DO-178C &#8211; Software Considerations in Airborne Systems and Equipment Certification; publication expected in 2012. </p>
<p class="references-list">[3] RTCA/DO-330 &#8211; Software Tool Qualification Considerations; publication expected in 2012. </p>
<p class="references-list">[4] www.open-do.org/projects/qualifying-machine</p>
<p class="author-bio">Dr. Benjamin&nbsp;Brosgol is a senior member of the technical staff&nbsp;at&nbsp;AdaCore. He has more than 30 years of experience in the&nbsp;software industry, concentrating on languages and technologies for high-integrity systems. He has presented papers and tutorials on safety and security certification at numerous conferences and has published articles on this subject in a variety of technical journals. He holds a Ph.D. in Applied Mathematics from&nbsp;Harvard University. He can be contacted at brosgol@adacore.com.</p>
<p class="author-bio">Greg Gicca is Director of Safety and Security Product Marketing&nbsp;at AdaCore. He has more than 20 years of experience in designing and implementing software development tools and has participated in industry and government groups responsible for defining software quality evaluation standards. He has concentrated on the safety and security arena for embedded systems, with a particular focus on the DO-178B safety standard and the Multiple Independent Levels of Security (MILS) architecture. He can be contacted at gicca@adacore.com.</p>
<p class="contact-info">AdaCore 212-620-7300   www.adacore.com www.linkedin.com/company/adacore www.twitter.com/AdaCoreCompany</p>
</p></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/trusting-the-tools-an-agile-approach-to-tool-qualification-for-do-178c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automated performance measurement and timing analysis help military embedded systems avoid early obsolescence</title>
		<link>http://www.mil-embedded.com/articles/id/?5581</link>
		<comments>http://www.mil-embedded.com/articles/id/?5581#comments</comments>
		<pubDate>Wed, 07 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>Dr. Andrew Coombes, Rapita Systems</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[178b certification]]></category>
		<category><![CDATA[ada 2005 gnat]]></category>
		<category><![CDATA[ada 95 compiler]]></category>
		<category><![CDATA[ada compilers]]></category>
		<category><![CDATA[ada gnat]]></category>
		<category><![CDATA[ada safety critical]]></category>
		<category><![CDATA[adacore gnat]]></category>
		<category><![CDATA[adacore gnat pro]]></category>
		<category><![CDATA[aonix ada]]></category>
		<category><![CDATA[c static analysis tool]]></category>
		<category><![CDATA[c static analysis tools]]></category>
		<category><![CDATA[c static code analyzer]]></category>
		<category><![CDATA[code analyze tool]]></category>
		<category><![CDATA[code coverage analysis]]></category>
		<category><![CDATA[code static analysis]]></category>
		<category><![CDATA[compiler ada]]></category>
		<category><![CDATA[constraints linear programming]]></category>
		<category><![CDATA[do 178b certification]]></category>
		<category><![CDATA[do-178b do-254]]></category>
		<category><![CDATA[do178b certification]]></category>
		<category><![CDATA[embedded hardware design]]></category>
		<category><![CDATA[embedded microcontroller systems]]></category>
		<category><![CDATA[embedded realtime systems programming]]></category>
		<category><![CDATA[embedded system designing]]></category>
		<category><![CDATA[faa do-178b]]></category>
		<category><![CDATA[gnat ada 2005]]></category>
		<category><![CDATA[gnat ada compiler]]></category>
		<category><![CDATA[gnat ada download]]></category>
		<category><![CDATA[gnat ada windows]]></category>
		<category><![CDATA[Industry Spotlight]]></category>
		<category><![CDATA[klocwork static analysis]]></category>
		<category><![CDATA[linear programing problem]]></category>
		<category><![CDATA[linear programing problems]]></category>
		<category><![CDATA[linear programing solver]]></category>
		<category><![CDATA[linear programming constraints]]></category>
		<category><![CDATA[linear programming optimization]]></category>
		<category><![CDATA[microprocessor embedded system]]></category>
		<category><![CDATA[military embedded system]]></category>
		<category><![CDATA[Rapita Systems]]></category>
		<category><![CDATA[realtime embedded system]]></category>
		<category><![CDATA[realtime embedded systems]]></category>
		<category><![CDATA[rtca 178b]]></category>
		<category><![CDATA[rtca d0-160]]></category>
		<category><![CDATA[rtca d0-160d]]></category>
		<category><![CDATA[rtca do-160f]]></category>
		<category><![CDATA[rtca do-178a]]></category>
		<category><![CDATA[rtca do-178c]]></category>
		<category><![CDATA[rtca do-254]]></category>
		<category><![CDATA[rtca do160d]]></category>
		<category><![CDATA[rtca do178]]></category>
		<category><![CDATA[rtca do178b]]></category>
		<category><![CDATA[rtca do254]]></category>
		<category><![CDATA[Software analysis]]></category>
		<category><![CDATA[solve linear program]]></category>
		<category><![CDATA[source code static analysis]]></category>
		<category><![CDATA[static analysis tool]]></category>
		<category><![CDATA[static analysis tools c]]></category>
		<category><![CDATA[static code analyser]]></category>
		<category><![CDATA[static code analysis tool]]></category>
		<category><![CDATA[static code analysis tools]]></category>
		<category><![CDATA[static code analyzer]]></category>
		<category><![CDATA[static code analyzers]]></category>
		<category><![CDATA[static code checker]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=63c71724cdc9443d781d750245cb3b73</guid>
		<description><![CDATA[Muddled with mods? Automated performance measurement and timing analysis technology can aid in optimizing software performance degradation inherent in continuous modification, allowing systems to retain features and pushing out obsolescence.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="3" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5581%2Ffigures%2F3" />The ongoing success of military embedded systems on land, sea, and air depends on the ability to modify the systems to meet emerging requirements. Over time, accumulated modifications to software-based systems result in degradation of the performance of that system. Eventually, the resulting performance degradation leaves system developers with the choice of either abandoning planned new features or replacing the hardware and accepting early obsolescence. There is an alternative. Automated performance measurement and timing analysis technology provide developers with the tools to optimize away much of the performance degradation resulting from accumulated modifications, thereby avoiding either abandoning features or early obsolescence.</h3>
<p><span id="more-854"></span><span class='body'>
<p class="body-text">Military embedded systems are typically enhanced many times during their lifetime. Many of these enhancements are software updates. Over time, the software updates cumulatively increase the demands placed on the computing platform. This can lead to the hardware&#8217;s capabilities becoming insufficient to meet application demands, potentially resulting in intermittent failures. </p>
<p class="body-text">System developers then face the difficult choice of either abandoning planned new features, leading to capability decay, or replacing the hardware (that is, early obsolescence). </p>
<p class="body-text">A viable alternative requires the identification of high-impact, low-risk strategies for optimizing software, thereby maximizing the service life of the computing platform. This alternative includes automated performance measurement and timing analysis.</p>
<p class="heading-1">The problem of performance</p>
<p class="body-text">Military embedded systems, and especially avionic systems, such as the BAE&nbsp;Systems Hawk&#8217;s mission control computer, are often real-time embedded systems. Real-time systems are distinct because their correct behavior depends both on their operations being logically correct, and on the time at which those operations are performed. Engineers developing these systems must be able to provide convincing evidence that the software always executes within its time constraints. </p>
<p class="body-text">The nature of software means that every time it is executed, it could take a different path through the code, leading to different execution times. Even when using the system in the same way, differences in the internal state could mean that the user sees widely varying execution times. Because of this, it is entirely possible to rigorously test software without seeing any timing problems, then to encounter a situation in actual use that results in significant timing problems. So to be sure a system always meets its execution time, it is necessary to establish its Worst-Case Execution Time (WCET), which is also a consideration for DO-178B.</p>
<p class="heading-1">Finding Worst-Case Execution Time</p>
<p class="body-text">Measurement is an approach often taken to obtain confidence in the timing behavior of a real-time system. To measure timing, engineers typically place instrumentation points at the start and end of sections of code they wish to measure. These points record the elapsed time, either by toggling an output port (monitored via an oscilloscope or logic analyzer) or by reading an on-chip timer and recording the resulting timestamps in memory.</p>
<p class="body-text">Unfortunately, these high-water marks might not reflect the longest time that the code could take to execute. This happens when the longest path through the code has not been exercised by tests, as illustrated in Figure 1. Two tests, represented in Figure&nbsp;1 by the green path and the blue path, are run. The observed execution times from these tests are 110 and 85 respectively. Despite these tests executing all code in the software, there is a third path (shown in red), which has an execution time of 140, making it the longest path. </p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure1', 'width=875,height=1449,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5581%2Ffigures%2F1" title="Execution paths: High-water marks might not reflect the longest time that the code could take to execute. This happens when the longest path through the code has not been exercised by tests."><br />
					<img width="470" border="0" alt="Figure1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5581%2Ffigures%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 1:</b> Execution paths: High-water marks might not reflect the longest time that the code could take to execute. This happens when the longest path through the code has not been exercised by tests.</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom)</b></div>
</td>
</tr>
</table>
</figure>
<p class="body-text">This example shows that simply executing all code isn&#8217;t enough to exercise the longest path. For nontrivial code, it is very hard to devise tests that are certain to drive the code down its longest path. This situation can be avoided by adding instrumentation points at each decision point in the code. Whenever an instrumentation point is executed, its ID and a timestamp are recorded. Running a series of tests on the system results in the creation of a timing trace. Combining the timing information from the trace with information about the structure of the code makes it possible to find information about the timing behavior of the software, including predictions of WCET.</p>
<p class="body-text">For typical military applications, which can run into millions of lines of code, it would be extremely laborious to instrument programs by hand; moreover, the volume of trace data typically produced would make manual attempts to combine trace data with program structural information infeasible. Fortunately, the tasks of program instrumentation, trace processing, combining trace data with program structural information, and data mining/presentation are all amenable to automation. RapiTime from Rapita Systems is an automated performance measurement and timing analysis technology that helps solve the challenge of obtaining detailed timing information about large military embedded systems implemented in C, C++, or Ada.</p>
<p class="heading-1">Performance optimization</p>
<p class="body-text">Knowing the WCET is only one part of the solution: When faced with the problem of a software component that overruns its execution time budget, it is essential that a systematic, scientific approach is taken to optimizing the component&#8217;s performance. </p>
<p class="body-text">Software performance optimization requires three questions to be answered:</p>
<ul>
<li class="bullets">Where is the best place to optimize?</li>
<li class="bullets">Is the proposed optimization making an improvement?</li>
<li class="bullets">How much improvement can be made?</li>
</ul>
<p class="heading-2">Where is the best place to optimize?</p>
<p class="body-text">In a typical complex application: </p>
<p class="body-text">(1) Most subprograms are not actually&nbsp;on the worst-case path; they&nbsp;contribute nothing to the worst-case execution time. Optimization of these subprograms would not reduce the WCET at all.</p>
<p class="body-text">(2) Many subprograms contribute a small amount to the WCET and so do not represent good candidates for optimization. Effort spent optimizing these subprograms would not constitute an effective use&nbsp;of resources.</p>
<p class="body-text">(3) A small number of subprograms contribute a large fraction of the overall WCET (Figure 2). Therefore, the subprograms are potential candidates for optimization. </p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure2', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure2" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5581%2Ffigures%2F2" title="Cumulative contribution of subprograms to the overall WCET"><br />
					<img width="470" border="0" alt="Figure2" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5581%2Ffigures%2F2" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 2:</b> Cumulative contribution of subprograms to the overall WCET</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="body-text">By inspecting WCET information, engineers can easily identify a relatively small number of components where optimization could potentially have a large impact on the overall worst-case execution time.</p>
<p class="heading-2">Am I improving things?</p>
<p class="body-text">It is sometimes tempting to try to short circuit the analysis process by guessing where the worst-case hotspots are, optimizing that code, and then seeing what the effects are. However, the experience of software optimization tells us that even highly skilled software engineers with an in-depth understanding of their code find it almost impossible to identify the significant contributors to the WCET, and hence the best candidates for optimization, without access to detailed timing information.</p>
<p class="body-text">Often it seems so obvious &#8211; &#8220;It must be that section of code that makes all those floating-point calculations that is the best candidate for optimization&#8221; &#8211; when actually, some innocuous-looking assignment hides a memory copy that is taking nearly all of the time. The answer to this problem is simple: Don&#8217;t guess, measure. Then repeat the measurement to quantify the improvement (or lack thereof).</p>
<p class="heading-2">How much improvement can be&nbsp;made?</p>
<p class="body-text">Table 1 indicates the level of improvements in Worst-Case Execution Times that can be obtained through a simple process of software optimization. These results were achieved using RapiTime technology to provide detailed timing information on the mission computer of a BAE Systems Hawk. These optimizations led to an overall decrease of 23&nbsp;percent in WCET.</p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Table1', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Table1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5581%2Ftables%2F1" title="Optimization improvements on a BAE Systems Hawk mission computer"><br />
					<img width="470" border="0" alt="Table1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5581%2Ftables%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Table 1:</b> Optimization improvements on a BAE Systems Hawk mission computer</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="heading-1">The benefits of WCET and performance optimization</p>
<p class="body-text">Access to automated performance measurement and detailed timing analysis during the modification of military embedded systems can provide a number of advantages to the developer:</p>
<p class="body-text">1. A systematic and scientific approach&nbsp;is utilized in obtaining confidence in the system&#8217;s timing behavior.</p>
<p class="body-text">2. Detailed information about worst-case execution time allows candidates for optimization to be quickly identified.</p>
<p class="body-text">3. Automated measurement allows the effectiveness of candidate optimizations to be assessed.</p>
<p class="body-text">The ability to do the best possible timing optimizations means avoiding making the hardware unnecessarily obsolete and eliminating the need to abandon planned new features or replace the hardware and accept early obsolescence. </p>
<p class="author-bio">Dr. Andrew&nbsp;Coombes is Marketing and Engineering Services Manager at Rapita Systems. For the past 15 years, he has helped&nbsp;develop and commercialize software tools for embedded, real-time applications. He received his DPhil in Computer Science at&nbsp;the High-Integrity Systems Engineering Group at the University of York (UK) before working in a consultancy and for the BAE Systems Dependable Computing Systems Centre (DCSC). Contact&nbsp;him at acoombes@rapitasystems.com.</p>
<p class="contact-info">Rapita Systems  +44 1904 567747 www.rapitasystems.com</p>
</p></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/automated-performance-measurement-and-timing-analysis-help-military-embedded-systems-avoid-early-obsolescence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symbolic execution techniques identify vulnerabilities in safety-critical code</title>
		<link>http://www.mil-embedded.com/articles/id/?5580</link>
		<comments>http://www.mil-embedded.com/articles/id/?5580#comments</comments>
		<pubDate>Wed, 07 Mar 2012 15:00:00 +0000</pubDate>
		<dc:creator>Paul Anderson, GrammaTech</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[application penetration testing]]></category>
		<category><![CDATA[application penetration testing tools]]></category>
		<category><![CDATA[application security scanning]]></category>
		<category><![CDATA[application security testing tools]]></category>
		<category><![CDATA[application security vulnerabilities]]></category>
		<category><![CDATA[application vulnerability testing]]></category>
		<category><![CDATA[c static code analysis tools]]></category>
		<category><![CDATA[c static code analyzer]]></category>
		<category><![CDATA[code analyzer tool]]></category>
		<category><![CDATA[code static analysis]]></category>
		<category><![CDATA[distributed embedded systems]]></category>
		<category><![CDATA[GrammaTech]]></category>
		<category><![CDATA[improving .net application performance]]></category>
		<category><![CDATA[Industry Spotlight]]></category>
		<category><![CDATA[klocwork static analysis]]></category>
		<category><![CDATA[metrics for software quality]]></category>
		<category><![CDATA[military embedded system]]></category>
		<category><![CDATA[parallel distributed computing]]></category>
		<category><![CDATA[penetration test tool]]></category>
		<category><![CDATA[penetration test tools]]></category>
		<category><![CDATA[penetration testing methodologies]]></category>
		<category><![CDATA[penetration testing methodology]]></category>
		<category><![CDATA[penetration testing tool]]></category>
		<category><![CDATA[penetration testing web applications]]></category>
		<category><![CDATA[reliability testing in software testing]]></category>
		<category><![CDATA[security application testing]]></category>
		<category><![CDATA[security pen testing]]></category>
		<category><![CDATA[security testing for web application]]></category>
		<category><![CDATA[security testing for web applications]]></category>
		<category><![CDATA[security testing in web application]]></category>
		<category><![CDATA[security testing of web applications]]></category>
		<category><![CDATA[security testing tool]]></category>
		<category><![CDATA[security testing tools]]></category>
		<category><![CDATA[security testing web application]]></category>
		<category><![CDATA[security testing web applications]]></category>
		<category><![CDATA[Software analysis]]></category>
		<category><![CDATA[software complexity metrics]]></category>
		<category><![CDATA[software reliability and testing]]></category>
		<category><![CDATA[software reliability testing]]></category>
		<category><![CDATA[source code analysis tool]]></category>
		<category><![CDATA[source code static analysis]]></category>
		<category><![CDATA[static code analyser]]></category>
		<category><![CDATA[static code analysis tools c]]></category>
		<category><![CDATA[static code analyzer]]></category>
		<category><![CDATA[static code analyzers]]></category>
		<category><![CDATA[static code checker]]></category>
		<category><![CDATA[testing web application security]]></category>
		<category><![CDATA[therac 25 accidents]]></category>
		<category><![CDATA[therac-25 radiation therapy machine]]></category>
		<category><![CDATA[vulnerability penetration testing]]></category>
		<category><![CDATA[vulnerability testing tools]]></category>
		<category><![CDATA[web app penetration testing]]></category>
		<category><![CDATA[web app security testing]]></category>
		<category><![CDATA[web application pen testing]]></category>
		<category><![CDATA[web application penetration test]]></category>
		<category><![CDATA[web application penetration testing]]></category>
		<category><![CDATA[web application security scanner]]></category>
		<category><![CDATA[web application vulnerabilities]]></category>
		<category><![CDATA[web application vulnerability]]></category>
		<category><![CDATA[web application vulnerability scanner]]></category>
		<category><![CDATA[web application vulnerability scanners]]></category>
		<category><![CDATA[web application vulnerability testing]]></category>
		<category><![CDATA[web security testing tools]]></category>

		<guid isPermaLink="false">http://tech.opensystemsmedia.com/embedded-software/?guid=12dd6153af04a69f0be98ce7cc584c7b</guid>
		<description><![CDATA[Testing, testing... Advanced static analysis tools are key in identifying and eliminating concurrency defects, and producing high-quality safety-critical software.]]></description>
			<content:encoded><![CDATA[<div class="story">
<h3 class="abstract"><img alt="3" class="figure_intro wide" src="http://i.opensystemsmedia.com/?zc=F&#038;f=png&#038;h=320&#038;w=600&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5580%2Ffigures%2F3" />Multicore processors are becoming increasingly popular in safety-critical applications because they offer significant price and performance improvements. However, writing multithreaded applications for multicore hardware is notoriously difficult and could result in catastrophic failures. The following describes symbolic execution techniques for identifying issues including data races &#8211; one of the most common concurrency defects &#8211; and how static analysis can help developers find and eliminate them.</h3>
<p><span id="more-855"></span><span class='body'>
<p class="body-text">Maximizing performance is especially important for military embedded systems because of the growing need to keep costs low while satisfying the requirements of connectivity in an increasingly digital battlefield. As manufacturers reach the limits of what can be&nbsp;wrung from increased miniaturization and integration, the best approach to increased performance is the use of multicore processors. </p>
<p class="body-text">The downside is that to take full advantage of many cores executing in parallel, the software must be written to be intrinsically multithreaded. Software written to be single-threaded for a single core processor will realize little or no performance benefit when executed on a multicore processor: It must be rewritten or adapted to use multithreading. The key challenge is to keep the cores busy as much as possible, while ensuring that they coordinate access to shared resources properly. Unfortunately writing such code is much harder than writing single-threaded code. When there are defects such as deadlocks or race conditions, they can manifest in ways that are difficult to diagnose. Traditional techniques for finding and eliminating concurrency bugs may be&nbsp;ineffective.</p>
<p class="body-text">One of the core reasons why concurrency bugs are so difficult is because there is an enormous number of ways in which the events in the threads can be interleaved when those threads execute. As the number of threads or instructions increases, the number of interleavings increases exponentially. If thread A executes M instructions and thread B executes N instructions, there are <span class="superscript">N+M</span>CN possible interleavings of the two threads. For example, given two trivial threads with 10 instructions each, there are 184,756 possible interleavings of those instructions. Even with very small programs it is clear that it is next to impossible to test all possible combinations. Secondly, even if it is possible to identify a single interleaving that leads to a failure, it can be very difficult to set up a repeatable test case that uses that particular interleaving because scheduling of threads is effectively nondeterministic. Consequently, debugging concurrent programs can be very expensive and time consuming. A race condition is a class of concurrency defect that is easy to accidentally introduce and difficult to eliminate with conventional testing. However, there are techniques programmers can use to find and remove them. </p>
<p class="heading-1">Potential catastrophic failures </p>
<p class="body-text">Compared to single-threaded code, entirely new classes of defect can occur in concurrent programs, including deadlock, starvation, and race conditions. Such defects mostly cause mysterious failures during development that are very difficult to diagnose and eliminate. One avionics manufacturer we have worked with spent two person-years applying traditional debugging techniques in an effort to find the root cause of an intermittent software failure that turned out to be a race condition. Sometimes the consequences can be dire &#8211; two of the most infamous software failures ever were caused by race conditions. The Therac-25 radiation therapy machine featured a race condition that was responsible for the deaths of several patients[2]. Similarly, the 2003 Northeast blackout was exacerbated by a race condition that resulted in misleading information being communicated to the technicians[3]. </p>
<p class="body-text">There are several different kinds of race conditions. One of the most common and insidious forms &#8211; data races &#8211; is the class of race conditions involving access to memory locations. </p>
<p class="body-text">A data race occurs when there are two or more threads of execution that access a shared memory location, at least one thread is changing the data at that location, and there is no explicit mechanism for coordinating access. If a data race occurs it can leave the program in an inconsistent state.</p>
<p class="body-text">Consider avionics code that controls the position of a flap. In normal circumstances the flap is in a position dictated by the flight control software, but the pilot can override that position by pressing a button on his control panel, in which case a manually set position is used. To keep things simple, let&#8217;s say that there are two threads in the program: one that controls the flap and one that monitors the position of the elements on the control panel. There is also a shared Boolean variable, named <span class="italics">is_manual,</span> that encodes whether the manual override is set or not. The flap position thread checks the value of <span class="italics">is_manual,</span> and if true, it sets the position accordingly. The control panel thread listens for button press events, and if the override button is pressed, it sets <span class="italics">is_manual</span> to true. Figure 1 shows the code that one might write to implement this specification. This code is likely to work most of the time; however, because the is_manual variable encodes a state that is shared by both threads, it is vulnerable to a data race because access to it is not protected by a lock. If the flap positioning code is being executed at the exact time that the pilot hits the override button, then the program may enter an inconsistent state and the wrong flap position will be used. Figure&nbsp;2 shows how this might happen.</p>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure1', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure1" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5580%2Ffigures%2F1" title="Code in two threads that access a shared variable"><br />
					<img width="470" border="0" alt="Figure1" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5580%2Ffigures%2F1" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 1:</b> Code in two threads that access a shared variable</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="figures">
<figure>
<table width="480" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td align="center" >
<p>				<a onclick="popup=window.open(this.href, 'Figure2', 'width=875,height=580,scrollbars=no,resizable=yes'); popup.focus(); return false;" id="Figure2" href="http://i.opensystemsmedia.com/?bg=ffffff&#038;q=90&#038;w=871&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5580%2Ffigures%2F2" title="An interleaving of instructions that causes a data race"><br />
					<img width="470" border="0" alt="Figure2" src="http://i.opensystemsmedia.com/?q=94&#038;bg=ffffff&#038;w=470&#038;f=jpg&#038;src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FMES5580%2Ffigures%2F2" /><br />
				</a>
				</td>
</tr>
<tr>
<td class="caption" align="center" style="padding-top: 11px; line-height: 1em;">
<figcaption><b>Figure 2:</b> An interleaving of instructions that causes a data race</figcaption>
<div style="color: #336600; padding-top: 4px; font-size: 9px;"><b>(click graphic to zoom by 1.9x)</b></div>
</td>
</tr>
</table>
</figure>
<p class="body-text">This example neatly illustrates one of the properties of data races that makes them hard to diagnose: The symptom of corruption may only be observable long after the data race has occurred. In this case, the fact that the wrong flap position is being used may only be noticed when the pilot notices the aircraft is not responding as expected.</p>
<p class="body-text">A widely held belief is that some instances of data races are benign and can be tolerated. However, it is now clear beyond doubt that this is only rarely true. The C standard[4] states unambiguously that compilers are allowed to assume that there are no data races, so optimizers can and do make transformations that are valid for improving the performance of single-threaded code but which introduce bugs when there are apparently benign race conditions. These are subtle effects &#8211; even experienced programmers are regularly surprised by them. (See reference [1] for a full explanation and several compelling examples.) Because of this, to achieve high levels of assurance and avoid disastrous failures, it is very important to find and remove all data races.</p>
<p class="heading-1">Eliminating concurrency defects</p>
<p class="body-text">Given that concurrency defects, and data races in particular, are so risky, it is important to use multiple techniques to eliminate them. Traditional dynamic testing is not well suited for finding many concurrency defects because of non-determinism. A program that passes a test hundreds of times may later fail in the same environment with exactly the same inputs because the bug can be exquisitely sensitive to timing. Engineers looking for high assurance must turn to other techniques if they are to eliminate concurrency defects.</p>
<p class="body-text">Static analysis tools offer a means for finding such bugs. The key difference between testing and static analysis is that it tests a particular execution of a program for a given set of inputs, whereas static analysis finds properties that are good for all possible executions and all inputs. (In practice, static analysis tools make approximations to achieve acceptable performance and precision, so fall short of this ideal model. Nevertheless, they do cover many more cases than would ever be possible with traditional testing.)</p>
<p class="body-text">Roughly speaking, static analysis tools work by creating a model of the program and by doing a symbolic execution of that model, looking for error conditions along the way. For example, GrammaTech&#8217;s CodeSonar static analysis tool finds data races by creating a map of which locks are held by which threads and by reasoning about the possible interleavings that could result in unsynchronized access to shared variables. Deadlock and other concurrency defects (including lock mismanagement) are found using similar techniques.</p>
<p class="heading-1">Custom concurrency constructs: A&nbsp;case study</p>
<p class="body-text">Standard defect detection techniques are most useful when programs use standard ways of managing concurrency. Most tools recognize and can reason about the special properties of standard libraries such as the POSIX threads library or proprietary interfaces such as VxWorks. However, many systems use custom techniques for managing concurrency.</p>
<p class="body-text">For example, another manufacturer we worked with built a safety-critical device on a platform that used a custom pre-emptive multithreaded software interface. In this design, a key constraint was that all data instances that could be accessed from multiple priority levels of threads had to be protected with proper guard constructs. Prior to using static analysis, validating that this constraint was respected required a person-month of manual analysis. To reduce the cost, they sought a solution by turning to static analysis. An important property of modern advanced static analysis tools is that they are extensible: They provide an API with abstractions that make it convenient to implement custom static-analysis algorithms. Using CodeSonar&#8217;s API, they were able to program a solution that piggybacked on the algorithms used at the core of the existing analyses to find locations in the code where the design constraint was being violated. The resulting tool, implemented as a plug-in, is able to find violations of the key constraint automatically, all at a fraction of the cost and in much less time than was previously possible.</p>
<p class="heading-1">Multicore trade-off </p>
<p class="body-text">There are compelling reasons to move to multicore processor designs, but the risk is that doing so introduces the possibility of concurrency defects in the software. These are easy to introduce &#8211; even apparently innocent code can harbor nasty multithreading bugs &#8211; and notoriously difficult to diagnose and eliminate when they occur. Traditional testing techniques alone are inadequate to ensure high-quality software, mainly because of the high degree of nondeterminism. The use of advanced static analysis tools that use symbolic execution is one approach that can help because such tools can reason about all possible ways in which the code can execute. These tools can find defects such as data races and deadlocks in code that uses standard multithreading libraries, and can even be adapted to designs that use nonstandard concurrency constructs. </p>
<p class="reference-heading">References</p>
<p class="references-list">[1] Boehm, H.-J., How to miscompile programs with &#8220;benign&#8221; data races. In HotPar&#8217;11 Proceedings of the 3rd USENIX conference on Hot topics in parallelism.</p>
<p class="references-list">[2] Leveson, N.G., An investigation of the Therac-25 accidents. IEEE Computer, 1993. 26: pp.&nbsp;18-41.</p>
<p class="references-list">[3] Poulsen, K., Tracking the blackout bug, www.securityfocus.com/news/8412.</p>
<p class="references-list">[4] C Standards Committee (WG14). Committee Draft: www.open-std.org/jtc1/sc22/wg14/www/docs/n1539.pdf</p>
<p class="author-bio">Paul Anderson is VP of Engineering at GrammaTech. He&nbsp;received&nbsp;his B.Sc. from Kings College, University of London and&nbsp;his Ph.D. in Computer Science from City University London. Paul manages GrammaTech&#8217;s engineering team and is the architect of the company&#8217;s static analysis tools. Paul has worked in the software industry for 20 years, with most of his experience focused on developing static analysis, automated testing, and program transformation tools. Contact him at paul@grammatech.com.</p>
<p class="contact-info">GrammaTech, Inc.  607-273-7340 www.grammatech.com</p>
</p></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tech.opensystemsmedia.com/embedded-software/2012/03/symbolic-execution-techniques-identify-vulnerabilities-in-safety-critical-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

