Emulation Accelerates Product Development Cycles

Author: Matthew Hallberg, Storage Protocol Specialist
LeCroy Protocol Solutions Group

In today’s rapidly changing, data-centric environment, one key requirement remains constant: every company needs reliable and fast access to critical business information. A company’s fortunes are based on time-to-market in product development, the breadth and reliability of their product line, the availability of critical product design, sales and support information, and the access speed with which this information can be obtained. In recent years, the storage infrastructures of data centers have evolved with the introduction of Serial Attached SCSI (SAS) and Serial ATA (SATA). These key infrastructure changes have resulted in better performance, better availability, and lower cost.

These improvements don’t stop there, as the SAS/SATA environment is undergoing yet another revolution with the introduction of the new SAS-2 specification. One of the major changes in SAS is the doubling of the basic data rate from a previous maximum of 3.0 Gb/s per link to a new standard of 6.0 Gb/s per link. Additionally, there are some new support features in SAS-2 that are designed to be highly beneficial to data centers.


Figure 1: Two examples of Test Emulation


With the new changes and additions for the SAS-2 specification, new challenges present themselves to companies that are designing products for this new standard. Those challenges include the current lack of commercially available SAS-2 products to test their new devices to ensure interoperability. To help solve this issue, LeCroy has created new test tools to emulate the SAS-2 environment, including the STX-460 Host and Device Emulators.

Why Emulation Enables Faster Product Development

The STX-460 platform from LeCroy is the only test system that is capable of emulating SAS-2 traffic. The STX-460 can emulate either the host or the device side, enabling developers to accelerate their product cycles ahead of industry-wide adoption. Without other devices to test interoperability, designers are left to develop expensive and resource-consuming in-house platforms that rarely cover the full spectrum of testing needed. With the STX-460, developers are provided with a complete turn-key test system that can be used with a large, pre-programmed library of test suites, or easily create unique tests customized for their specific product.

For complete product testing at the protocol level, the STX-460’s host and device emulators can run at 1.5G, 3G, or 6G line speeds and automatically perform CRC generation, 8b/10b encoding and data scrambling. Link layer protocol exchanges, handshaking, OOB sequencing, multiplexing and retry conditions are handled automatically, but can also be manipulated to create various error scenarios, such as speed negotiation window (SNW) failures, buffer over/under run, CRC errors, and timeout conditions. The host emulator can be operated at the command, frame and primitive levels. The device emulator automatically handles responses to incoming commands and can be configured to exhibit normal and abnormal behavior, allowing for error handling routines to be fully tested.

With the emulators, high-level commands can be easily defined and sent to initiator or target devices through a series of convenient pull-down menus. All traffic on the bus, including traffic generated by the STX and returned traffic from the device under test, is captured and displayed in an intuitive trace format. Looping, iteration, and a wealth of conditional statements provide for precise control of the emulator scripting routines.

New Features in SAS-2

SAS-2 introduces a number of new features to expand and enhance the specification. One of the most complex and significant additions is connection multiplexing. Connection multiplexing allows host controllers the ability to access more then one drive at a time by splitting the physical link into two separate logical links and optimizing the available bandwidth for that link. Emulators are crucial in enabling designers to test and debug this functionality in their products by allowing them to send or receive multiplexed traffic to their devices under test conditions. Once this functionality is initially verified, the emulator can be used to generate errors in the stream to test how the target device under test will respond to unfavorable stimuli. This allows designers to enhance their products by providing reliable error handling and recovery.


Figure 2: Connection Multiplexing


Using the STX-460 emulators will allow designers to test a variety of different scenarios based on the new SAS-2 features, allowing them to create a product that clearly differentiates itself from the competition.

Error Detection and Recovery

When designing drivers and other firmware and/or software for new SAS and SATA products, a significant portion of the total design effort goes into error detection and recovery. In fact, many designers would agree that the majority of the programming effort for new designs is often spent developing routines that can reliably detect errors, and having detected an error, provide for an elegant recovery without inducing a system hang or crash.

Even if there were existing products on the market, interoperability testing can only test the designs under “normal” operating conditions. Yet key to any design is product reliability, which is determined in large part by the device’s ability to recover from errors induced by other system components.

Yet if other devices are designed (at least in theory) not to produce errors, how can a designer test error detection and recovery routines designed into his or her product? The only means is to have available a system which can induce pre-programmed error conditions to allow a designer to step through the code and determine that the code is correctly identifying the type of error induced, and then correctly recovering from that error.


Emulation of devices, whether host or target, provides a key advantage to product developers in at least three major areas. In the initial development of a product, emulation provides a controlled means for introducing external traffic and ensuring that basic communication routines are functioning, allowing the developer to step sequentially through communication protocols and observe the response of the device under test as the complexity of the communication protocols are increased.

Second, in the critical early stages of development of new standards, the ability to emulate devices which are not yet commercially available allows a developer to test his or her product against a known standard device and ensure that the new design meets the requirements of the new specification. In the early stages of a new communications protocol, time-to-market for the first devices is critical to establishing gains in market share, and also turns the table on competitors who now are required to prove compatibility with your devices, rather than the other way around.

Third, the ability to introduce a suite of preprogrammed error conditions allows for the development of “bullet-proof” firmware and driver code, allowing your devices to continue to function well under conditions where competitive devices fail. This directly impacts the reliability of your products and your company’s reputation in the market.

Rapid development cycles, first-to-market with new products, and outstanding product reliability—all achieved through the use of host and device emulators.


Figure 3: Programming an Emulation Sequence is Easy Using a Graphical Interface



Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.