NAND Flash Memory

NAND Flash Memory:
The Complete Storage Solution for
Windows Platforms
Abstract
This paper provides information about the usage, capabilities, and advantages of
NAND Flash Memory for the Microsoft® Windows® family of operating systems. It
provides guidelines for system designers to incorporate NAND Flash Memory as a
robust and complete storage solution for their Microsoft Windows based platforms.
Contents
Introduction............................................................................................................................................. 3
NAND Flash Memory – The Chosen One .......................................................................................... 3
Insights into NAND Flash Memory Technology .................................................................................. 4
Faces of Removable Flash ................................................................................................................ 5
Future of Removable Flash ............................................................................................................... 6
Windows and Flash Memory ............................................................................................................. 7
Integrating Flash Memory in Embedded Windows Platforms ............................................................. 8
NAND Flash Memory Design Considerations .................................................................................. 10
Call to Action ................................................................................................................................... 11
Acronyms and Terms............................................................................................................................ 12
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 2
Windows Hardware Engineering Conference
Author's Disclaimer and Copyright:
SanDisk® Corporation general policy does not recommend the use of its products in life support
applications where in a failure or malfunction of the product may directly threaten life or injury. Per
SanDisk Terms and Conditions of Sale, the user of SanDisk products in life support applications
assumes all risk of such use and indemnifies SanDisk against all damages.
The information in this paper is subject to change without notice.
SanDisk Corporation shall not be liable for technical or editorial errors or omissions contained
herein; nor for incidental or consequential damages resulting from the furnishing, performance, or use
of this material.
All parts of the SanDisk documentation are protected by copyright law and all rights are reserved.
This documentation may not, in whole or in part, be copied, photocopied, reproduced, translated, or
reduced to any electronic medium or machine-readable form without prior consent, in writing, from
SanDisk Corporation.
SanDisk and the SanDisk logo are registered trademarks of SanDisk Corporation.
Product names mentioned herein are for identification purposes only and may be trademarks and/or
registered trademarks of their respective companies.
© 2003 SanDisk Corporation. All rights reserved.
SanDisk products are covered or licensed under one or more of the following U.S. Patent Nos.
5,070,032; 5,095,344; 5,168,465; 5,172,338; 5,198,380; 5,200,959; 5,268,318; 5,268,870; 5,272,669;
5,418,752; 5,602,987. Other U.S. and foreign patents awarded and pending.
WinHEC Sponsors’ Disclaimer: The contents of this document have not been authored or confirmed by
Microsoft or the WinHEC conference co-sponsors (hereinafter “WinHEC Sponsors”). Accordingly, the
information contained in this document does not necessarily represent the views of the WinHEC
Sponsors and the WinHEC Sponsors cannot make any representation concerning its accuracy. THE
WinHEC SPONSORS MAKE NO WARRANTIES, EXPRESS OR IMPLIED, WITH RESPECT TO THIS
INFORMATION.
Microsoft, Windows, and Windows NT are trademarks or registered trademarks of Microsoft Corporation
in the United States and/or other countries. Other product and company names mentioned herein may
be the trademarks of their respective owners.
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 3
Introduction
Over the past decade, the Microsoft® Windows® operating system has grown from
a rudimentary GUI shell into a mature ultra-sophisticated operating system that has
transformed the user experience on desktops and beyond. Advancements such as
Plug and Play, multimedia support, robust multi-threading, and refined intuitive
interfaces, significantly contributed to the success of the desktop PC, and helped
spawn a myriad of other innovative environments such as automotive applications,
handheld systems, and consumer electronics products like smart phones and
personal DVD players.
In parallel with this evolution, flash memory-based storage devices have been a
similar catalyst in the fostering of these breakthrough platforms. This is particularly
evident in products such as MP3 music players and digital cameras where flash has
completely displaced traditional media. From its earliest roots as an EPROM
replacement, targeted solely at the storage of executable code, the technology has
made many leaps which have resulted in today’s powerful generation of NAND
Flash Memory capable of housing code and handling intensive disk-like data
storage applications as well.
The inherent characteristics of flash – ruggedness (can withstand up to 2000 Gs),
small form factor (over 1GB can be stored in a postage stamp-like footprint), and
low power (minimal consumption well-suited for battery operated devices) –
precisely mirror the requirements of many of today’s specialized Windows
environments. In these platforms, flash has replaced rotating disk drives as the
primary device at the heart of storage subsystems. In addition to this role, flash
memory’s widely-supported, industry standard, forms – PC Cards, CompactFlash,
MultimediaCards, Secure Digital Cards, and Memory Stick – have also made it the
preferred vehicle for transferring data between computing platforms and consumer
electronics products.
Seamless support within Windows for all of these forms of storage contributes to
this interoperability and the ease with which flash can be incorporated in system
designs. Beyond these existing uses of flash, new techniques for leveraging the
technology are emerging as well. Third party hardware design models and software
packages, as well as software layers being added natively within Windows are
enabling flash memory chips to be directly embedded within systems, resulting in a
complete code and data storage solution that dramatically reduces hardware costs.
While this concept isn’t entirely new, the capabilities and cost structure of the latest
NAND Flash Memory technology are revolutionizing the use of flash memory in
system design.
This white paper offers insights into the state-of-the-art in flash technology, its
evolvement, and trends for the future. Also covered is a round up of all the various
types of flash-based storage devices being used under Windows, with looks at how
these are benefiting applications. Finally, we highlight some of the techniques that
are currently being employed by system designers to optimally integrate all of
capabilities of flash at previously unattainable levels of cost effectiveness.
NAND Flash Memory – The Chosen One
Several factors have fueled the development of today’s most prevalent dataoriented flash technology: the ability to effectively handle write-intensive
applications, requirements for large storage capacity, and the all-important need to
deliver the absolute lowest cost storage solution. To meet these criteria, flash
vendors such as Toshiba, SanDisk, and Samsung have turned to NAND Flash
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 4
Memory. NAND Flash Memory, invented several years after the inception of NOR
Flash Memory technology (the original variety of flash aimed at code storage
applications), is characterized by its smaller cell size, reduced pin count, and sectororiented management of the media. Its scaled back cell size results in higher
densities of the memory and consequently larger storage capacities.
The upper limits on how much data can be accommodated are further increased
when multi-level cell (MLC) design in applied to the technology. MLC, a technique
pioneered by SanDisk, enables more than one bit of data to be stored in a single
flash memory cell – this effectively allows twice the amount of data to be stored
without proportionally increasing the cost of the memory.
Today, capacities available with NAND Flash can reach 64MB with 512 Mbit binary
(single-level cell) chips and doubled to 128MB with MLC 1Gbit versions of the flash.
(Two 1Gbit die can also be stacked in a single TSOP to achieve 256MB.)
Respective NOR Flash capacity maximums are 16MB based on 128Mbit binary
chips and 32MB with 256 Mbit density MLC chips.
In addition to differences in capacity maximums, price per megabyte tends to widely
separate the two technologies as well. At the time of this writing, the device
normalized unit cost per megabyte for NAND Flash was less than one half that of
NOR Flash.
Insights into NAND Flash Memory Technology
NAND Flash Memory was designed from the ground up to optimally manage data
storage. Internally, the architecture emphasizes speedy write performance, as the
task -- common to all flash technologies -- of erasing the flash prior to write
operations is streamlined via efficiently sized erase blocks and a disk sector-styled
handling of data. Externally, the interface is disk-like as well: On host systems,
NAND Flash is readily connected using the same simple interface commonly found
in many computer peripherals. Instead of requiring full address lines required to
access the full capacity of the memory, a simple hardware interface that consists of
two address lines and an 8-bit port is used to access the stored data.
Each time a read or write command is issued, the amount of data transferred is
always one page consisting of 528 bytes (512 bytes of data and 16 bytes typically
containing ECC). This is one of the primary distinctions between the NAND Flash
and NOR Flash interfaces: data transfers with NAND Flash always involve the
issuing of a command and the accessing of a page’s worth of data – NOR Flash’s
interface (with address lines and control signals behaving the same as a SRAM chip
or other memory component) supports random access to any single data element.
In the past, this difference in interfaces, kept NAND Flash solely employed for disk
like data storage applications and NOR Flash tapped for random data access
applications. Today, this traditional default usage of the technologies is changing
due to a number of factors:
1. The adoption of operating systems such as Windows in non-desktop
applications forces the adoption of a PC architecture where the OS is the
most valuable component if there exists a mass storage device.
2. Storage requirements for the OS and Applications have reached the
maximum available capacities offered by random access non-volatile
memory
3. The desire to have only one storage media in a system to control costs.
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 5
4. Performance improvements with SDRAM has forced the need to execute
the majority of the applications in SDRAM.
5. A mass storage device available with reasonable write speeds can
eliminate the need for battery backed up SDRAM.
For example, a 32MB NAND Flash Memory chip might be used to house a 16MB
Microsoft Windows CE image and also serve as a 16MB data repository.
Differences between NAND Flash Memory and its predecessor become more
striking in platforms such as digital cameras where data is heavily written, as its
write performance drastically distances it from NOR Flash. The write speed for
NAND Flash is at a minimum 10x that of NOR Flash. This becomes significant when
transferring large amounts of data.
Faces of Removable Flash
Several years ago, there was only one type of platform running the Windows
operating system: the desktop PC (and its close relatives such as laptops and
notebooks). Similarly, there was one major type of removable flash storage device:
the PC Card. During that era, the credit card-sized, PCMCIA-interfaced, ATA flash
product was just starting to “plug and play,” and served primarily only as an auxiliary
storage medium – enabling limited data backup and some data interchange with a
few early generation PDAs. Industry pundits may have viewed the still fairly
expensive (at the time, multiple dollars per megabyte versus today’s ever-dropping
pricing, averaging 30 cents per megabyte) technology as ephemeral, doomed to go
the way of other fated storage offerings.
Move the clock forward to 2003 and we have the Windows operating system
running on seemingly everything from automobile platforms to phones to slotmachines, with flash devices providing the storage for these and dozens of other
platforms including digital cameras, music players, and digital camcorders. During
the past few years, fueled by the requirements of these new systems and the full
weight of the some the world’s largest electronics companies pioneering standards,
several wildly popular removable flash storage products surfaced.
The first, known as CompactFlash (CF), offered the same PC Card ATA
functionality albeit within a match book-sized form factor. This standard, originally
conceived of by SanDisk in 1995, has been promoted by the over 220-member
CompactFlash association, which counts companies such as Hewlett-Packard,
Hitachi, and IBM, among its members. Not long after its introduction, CF soon
became the de facto standard for digital camera storage. Its convenient size and
generous range of capacities (8MB to 1GB) resulted in ubiquitous CF slots built into
digital cameras, MP3 music players, Pocket PCs, set-top boxes, printers, and many
other platforms. CompactFlash is also subtly embedded in places you might not
even suspect – for example, CF serves as: a boot device for gaming machines, a
critical data storehouse in cardiac deliberators, and as a recording medium within
digital music recorders.
In 1997, the need for storage within smaller devices such as cell phones and
pagers, prompted Siemans/AG and SanDisk to develop the postage stamp-sized
(24mm x 32mm x 1.4mm) MultiMediaCard. This form of flash storage internally
operates just like a CompactFlash card with a built-in controller managing the flash,
but externally, it presents a simple seven pin serial interface which is readily
integrated with a number of popular CPUs. The MultiMediaCard association
consisting today of over 100 members helped proliferate this standard, making it a
fixture in many MP3 players and cell phones. The standard is alive and well today,
enjoying support from notable companies such as Nokia and Siemens. With
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 6
capacities available ranging from 8MB to 128MB, the MultiMediaCard has been
particularly popular for use in storing video clips on digital camcorders (it’s a great
mechanism for moving clips over to Windows platforms) – although many of these
camcorder designs have now moved to the faster Secure Digital (SD) memory card.
SD is a super set of the MultiMediaCard. The use of four data lines instead of one
enables significantly faster throughput and a sophisticated licensed key-driven
encryption capability is also supported for optionally protecting content such as
copyrighted music and other materials.
Backward compatibility exists with MultiMediaCards which can be operated within
SD slots on host platforms.
The SD standard has benefited from heavy endorsing by electronics industry
leaders like Panasonic and Toshiba. Its association of over 540 members includes a
formidable list of companies which have helped push the standard to the extent that
its popularity has eclipsed even that of CompactFlash. Millions of mobile phones,
digital still cameras, and digital camcorders now support SD, as do some interesting
hybrid products: mobile phones with digital camera integration in particular have
taken advantage of SD for housing MPEG4 video clips and other data that can be
emailed and used within other Windows platforms.
Capacities of up to 1GB are bringing the long-awaited capability of housing fulllength motion picture video on flash memory storage devices into reality. Popularity
of SD is projected to continue to escalate, placing it near the top of the list of units
shipped along with the Memory Stick.
The Memory Stick, a flash storage device in a form factor resembling a stick of
chewing gum, originated with Sony and has been broadly supported across Sony’s
extensive line of digital still cameras, digital camcorders, and Walkman audio
players. Behind Sony’s marketing muscle, the product has grown to the most widely
shipped removable flash storage product. Moreover, an association of over 400
companies and a licensing program by Sony have resulted in additional vendors
producing Memory Stick-enabled consumer electronics products, and flash memory
suppliers like SanDisk offering versions of the Memory Stick as well.
Future of Removable Flash
With some of the largest companies in the world designing products based on a
number of these removable flash storage standards, it’s safe to assume that all will
continue to be successful, although the current trend indicates that many of the
products being brought to market today are favoring either SD or the Memory Stick.
Much of this momentum is a natural migration following advances in processor
power and in higher available storage capacities. These aligning factors are driving
many applications such as motion JPEG and MPEG video. Products like digital still
cameras capable of storing MPEG4 video clips are thriving as a result.
Choice of the storage medium in these platforms is somewhat polarized with Sony
products featuring the Memory Stick, and products from Panasonic and others
mostly choosing SD. Adoption of these two standards in particular is projected to
continue over the next few years. Figure 1 depicts this anticipated growth.
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 7
Secure Digital and Memory Stick Projections
Units Shipped (millions)
160
140
120
100
80
60
40
20
0
2001
2002
2003
2004
2005
2006
Year
Memory Stick (MS)
Secure Digital (SD)
Figure 1
Source: IDC, May 2002
Inside of these storage products, breakthroughs in the flash technology such as
MLC and higher densities are helping to further fuel the markets by enabling larger
capacities and reduced costs. As shown in Figure 2, advances are expected to
continue to be dramatic.
NAND Unit Shipments
100%
80%
60%
40%
20%
0%
2001
2002*
<=32Mb
64Mb
2003*
128Mb
2004*
256Mb
Figure 2
2005*
512Mb
1Gb
2006*
2Gb
2007*
4Gb
Source: Semico, Jan. 2003
Windows and Flash Memory
In addition to all of the compelling new consumer electronics products, Windows
itself has contributed a lot to the success of flash storage products: it seamlessly
supports all of them across a variety of bus interfaces and makes data interchange
with host systems transparent and automatic.
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 8
This is particularly evident in later versions of Windows such as Windows XP, where
AutoPlay streamlines tasks involving flash. When a flash device is inserted into a
host slot such as a card reader, the system inspects the media and detects what
content is present. It then presents the user with appropriate task choices for
processing the data. If the content involves audio such as WAV or MP3 files, the
Media Player or other specialized application associated with these types of files is
launched. For digital pictures such as JPEG files, helpful “wizards” such as the
“Print Photo Wizard” make it especially easy to manipulate and print pictures.
Another aspect of Windows that’s providing interoperability for flash devices is the
rock-solid support for USB – it “just works.” When dynamically attached to a USB
port, flash memory card readers and solid state flash memory-based “pen drives”
are automatically recognized as mass storage class-compliant devices, enabling
large amounts of data to be backed up/restored and conveniently moved between
computer systems. This new avenue of taking large volumes of personal data to
different computers is becoming extremely popular and is projected to be one of the
top applications for flash in the coming years.
Beyond the infrastructure within the Windows operating system that supports all of
these removable forms of flash storage, new capabilities which support the direct
interfacing of flash memory chips within embedded platforms is opening up even
more choices for system designers as we will see.
Integrating Flash Memory in Embedded Windows Platforms
In his article, The Disappearing Computer, Bill Gates speaks of: “the exploding
number of embedded computers” and the fact that on a daily basis people in the
United States interact with about 150 embedded systems, and that these account
for up to 90% of the microprocessors produced today.
Based on this, it’s no mystery why Microsoft has put a huge effort into producing
embedded versions of Windows targeted at these platforms. These represent
significant opportunities for developers able to design solutions which effectively
meet the specialized requirements of the embedded environments while keeping
system costs at a minimum.
For non-volatile storage, often what is needed is an embedded media, extremely
rugged, impervious to shock and vibration, and low in power consumption. Directly
integrating NAND Flash Memory chips on a system board meets these
requirements as flash is able to withstand 1000 Gs of shock and draws as little as
10mA current, making it particularly well-suited for battery-operated platforms.
Figure 3 contrasts NAND Flash Memory’s minimal power consumption with other
storage approaches.
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 9
Power Consumption of Various Storage Media
Notebook Hard
Drive @ 5V
NOR Flash (Intel
StrataFlash) @ 3.3V
CompactFlash @
3.3V
NAND Flash @ 3.3V
0
10
20
30
40
50
Normal Operating Current (mA)
Figure 3
Source: SanDisk, March 2003
Performance considerations when reading and writing the media are key factors as
well. At present, NAND Flash Memory can store data at a rate of 2KBytes/300µs,
compared to NOR Flash at 200KBytes/s. Hence, a very simple data storage with
NAND Flash can have a transfer rate of 6MBytes/s on a single device. With a more
sophisticated NAND Flash management controller and multiple NAND Flash
Memory devices, higher performance is possible. A single NAND Flash device can
have a sustained read transfer rate of 10MBytes/s.
One important aspect of NAND Flash management algorithms is the ability to
provide constant performance over the life of the product. The ideal situation is that
performance is constant for all type of write conditions. This is one of the challenges
for NAND Flash based storage systems. This is also a strength of NAND Flash
Memory.
In addition to these benefits, impact on product margins is perhaps most significant.
One common cost improvement methodology is to provide only the functions
required by the applications. For some applications, the use of Flash based storage
systems such as a Compact Flash, has the added benefit that the card is
removable. However, if a removable feature does not add value, the simplest option
is to eliminate all the items required to make the card removable. In such instances,
designers would choose a Flash memory chipset, thus eliminating the connectors.
Further cost improvement is possible if the NAND Flash controller is also
eliminated. However, this approach requires the addition of software (no hardware
cost) to provide the functionality of the hardware controller.
Overall system cost is further reduced with the use of next generation MLC NAND
Flash Technology. This is because MLC NAND Flash has the lowest cost structure
of any flash technology, and because only the chips themselves are used: no
hardware controller is employed to manage the flash (removable devices such as
CompactFlash or SD utilize built-in hardware controllers for this purpose). The
NAND Flash software controller is required to provide the operating system the
same access to the NAND Flash as the hardware controller. The software
controller, such as SanDisk’s Stingray, handles all aspects of flash tasks (normally
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 10
done by a hardware controller: manipulating physical/logical address mapping, built
in wear leveling mechanism to extend NAND Flash life expand, manipulating
internal erase blocks, managing factory defect block, managing error correction,
etc.), and provide the “flash translation” that enables host file systems to view the
raw chips as a disk-like, sector-oriented storage device.
This approach of using a “software controller” to manage flash memory is not a new
concept: several forms of this, along with various flash file systems have been
available over the years. Not all of these software packages however, have kept
pace with NAND Flash technology, particularly MLC NAND Flash, as the
complexities of this technology have made it difficult for existing designs to adapt.
Flash manufacturers with intimate knowledge of the technology, such as SanDisk,
have software packages and Windows drivers available that automatically handle
binary as well as MLC NAND Flash chips. Even better news: starting with 2003
version of Windows Pocket PC, support is now built into the operating system to
transparently handle all of these functions.
NAND Flash Memory Design Considerations
As we’ve seen, designing a storage solution based on NAND Flash is easily
accomplished from a Windows software standpoint. The cogency of the cost
reduction that embedding NAND Flash chips allows is striking given the economic
model of today’s hardware products: in some cases hardware is even provided free
or below cost (such as the case with cell phones and set-top boxes) with money
being made on providing services later. Thus, system designers are becoming more
and more clever in how they incorporate NAND Flash technology.
To streamline hardware and software interface issues and maximize performance,
third parties and flash manufacturers provide solutions that decrease the
development risk and improve time to market with offerings such as SanDisk’s
Shark (NAND Flash Hardware Interface Logic IP) and SanDisk’s Stingray (NAND
Flash Data Management Software).
How the platform is booted can be another not so obvious area where the cost
structure of NAND Flash can be leveraged. The increasing sophistication of
embedded platforms brings with it increased requirements for disk-like data storage
and the need for larger code space. A single high density NAND Flash part
furnishes more than adequate capacity to accommodate both of these functions. A
well-designed configuration – even after adding additional SDRAM with which to
shadow the code – results in reduced system costs.
The key question regarding booting is: how does the code get moved initially from
NAND Flash into the SDRAM? After all, at power on, system software needs to be
directly executed to initialize the platform. The answer to this question involves the
introduction of an interface layer that helps to manage this initialization. If the
platform’s processor provides support for embedded boot code, transferring the
code from NAND Flash into SDRAM is a trivial matter. Processors which can readily
accomplish this include Motorola’s MC9328MX1 and NEOMAGIC’s (formerly Linkup
Systems) NMS7210A. The NMS7210A has a special provision for booting from an
inexpensive serial PROM that can house the code that performs the transfer.
In environments where boot options aren’t as flexible, a few hundred gates of
programmable logic can be employed to do the job. One approach is illustrated in
Figure 4. At power on reset, NAND Flash Memory provides the boot code to the
system processor. This boot code initializes the system SDRAM, loads the system
code into SDRAM and transfers control to the application in SDRAM. There are a
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 11
number of approaches and the exact approach will vary depending on the CPU and
the system architecture.
Volatile Memory (e.g.
SDRAM)
Non-Volatile Memory
NAND Flash
OS
+
Application
System Data
OS
+
Application
OS
+
Application
System
Specific
OS
Loader
3
System
Specific
OS
Loader
2
CPU
System Data
System
Init
System Init
SDRAM
Test
Figure 4
1
SDRAM
Test
Start-up
Code
Page 1-15
Page 0
Source: SanDisk, March 2003
Call to Action
Windows has gained many salient features and expanded its support for flash
memory storage. As a result, today, all major forms of flash storage are
transparently handled by the operating system – this tight integration has brought
new levels of convenience to end users and powerful options for developers.
This is particularly important for embedded Windows environments, as the
characteristics of flash precisely mirror requirements for ruggedness, conservation
of space within small form factors, and minimal power consumption. The capabilities
and cost structure of NAND Flash Memory furnish a complete code and data
storage solution at previously unattainable levels of cost effectiveness. By
incorporating the design techniques mentioned here, these benefits can be readily
put to work in your platform.
Manufacturers of various Windows-based platforms should:

Integrate NAND Flash chip and removable Flash Card into the system board
directly

Take advantage of Windows platform built in support for NAND Flash

Consult flash manufacturers to get complete flush solution to shorten product to
market time
Feedback:

To provide feedback, please send e-mail to [email protected].
WinHEC 2003
Microsoft Windows Hardware Engineering Conference
NAND Flash Memory:
The Complete Storage Solution for Windows Platforms - 12
Acronyms and Terms
EPROM: Erasable Programmable Read - Only Memory device
MLC: Multi Level Cell
WinHEC 2003
Microsoft Windows Hardware Engineering Conference