670 likes | 1.08k Views
Audio System Design Considerations For Windows Vista System Logo Certification. H å kon Strande Program Manager Media Technology Group Microsoft Corporation. Agenda. Vista and Streaming audio – The Vision Discoverability in hardware Enabling Class drivers, transparency, flexibility
E N D
Audio System Design Considerations For Windows Vista System Logo Certification Håkon StrandeProgram ManagerMedia Technology GroupMicrosoft Corporation
Agenda • Vista and Streaming audio – The Vision • Discoverability in hardware • Enabling Class drivers, transparency, flexibility • Extensibility in hardware • Standard that lasts, enables new scenarios • Stability from software infrastructure • WaveRT, System Effects Infrastructure • Quality from hardware and software • Fidelity, latency • HD Audio System Implementation Deep Dive
Discoverability • It just works... • Class driver enabling through standards Universal Audio Architecture UAA USB driver UAA HDA driver UAA Futures USB Audio HD Audio Future HW Standards
UAA? What Does It Mean? • Paradigm shift: Universal Audio Architecture Initiative • System Audio device compliance with select standardized technology spec • System Audio device compatibility with Windows Vista Audio class driver • System logo tests performed with relevant Windows Audio Class driver
Discoverability • Designed for Windows Vista audio hardware expose standardized HW interfaces • Guaranteed audio functionality on all Windows Vista PCs • These standard interfaces are supported by Microsoft audio class drivers • Broad Industry Benefits from UAA • System Integrators and IHVs • Windows natively always covers their audio solution • Value products – Low cost and business PCs • SKUs where stability and security are more important • Vendor specific driver can be provided for differentiation • End User Benefits • Guaranteed audio support on upgrade or clean Windows installation • Provides option for stable, secure audio device support
Discoverability • Transparency of audio subsystem extending to HW • OS Policy opportunities like aggregation, routing, mixing, user choice No user control of device usage User controlledOS/AppPolicy Layer Hardware a Black Box to System In the past...
Discoverability • Transparency of audio subsystem extending to HW • OS Policy opportunities like aggregation, routing, mixing, user choice User controlledOS/AppPolicy Layer DiscoverableHardware Now with HD Audio...
Discoverability • Transparency of audio subsystem extending to HW • OS Policy opportunities like aggregation, routing, mixing, user choice Aggregate devices Smart policy like ducking and device roles User controlledOS/AppPolicy Layer Host-based mixing and routing
Discoverability • Independent devices, Dynamic Devices, and Device Roles • Multi streaming scenarios like ubiquitous VOIP • Device availability better illustrated User controlledOS/AppPolicy Layer
Discoverability • Independent devices, Dynamic Devices, and Device Roles • Multi streaming scenarios like ubiquitous VOIP • Device availability better illustrated Device Role: VOIP User controlledOS/AppPolicy Layer
Discoverability • Independent devices, Dynamic Devices, and Device Roles • Multi streaming scenarios like ubiquitous VOIP • Device availability better illustrated Device Role: VOIP Device Role:Entertainment User controlledOS/AppPolicy Layer
Discoverability • Independent devices, Dynamic Devices, and Device Roles • Multi streaming scenarios like ubiquitous VOIP • Device availability better illustrated Device Role: VOIP Device Role:Entertainment User controlledOS/AppPolicy Layer Device Role: Console
Discoverability From this • Transparency of audio subsystem extending to HW • OS Policy opportunities like aggregation, routing, mixing, user choice No user control of device usage User controlledOS/AppPolicy Layer Hardware was a Black Box to OS
Discoverability To this! • Independent devices, Dynamic Devices, and Device Roles • Multi streaming scenarios like ubiquitous VOIP • Device availability better illustrated Device Role: VOIP Device Role:Entertainment User controlledOS/AppPolicy Layer Device Role: Console
Discoverability Great UI But can we really use the device? • Independent devices, Dynamic Devices, and Device Roles • Multi streaming scenarios like ubiquitous VOIP • Device availability better illustrated Device Role: VOIP Device Role:Entertainment User controlledOS/AppPolicy Layer Peripherals are connected Device Role: Console
Discoverability • Independent devices, Dynamic Devices, and Device Roles • Multi streaming scenarios like ubiquitous VOIP • Device availability better illustrated Device Role: VOIP Disconnected Device Role:Entertainment User controlledOS/AppPolicy Layer Microphone is disconnected Device Role: Console
Discoverability • Independent devices, Dynamic Devices, and Device Roles • Multi streaming scenarios like ubiquitous VOIP • Device availability better illustrated Device Role: VOIP Disconnected Device Role:Entertainment User controlledOS/AppPolicy Layer Microphone is connected again Device Role: Console
Extensibility • UAA standards must be extensible • Ensure long life of technology • USB Audio OK (with 2.0 spec) • 1394 Audio OK • AC-97 not so much • Needed a new HW design for the 95% market segment • Intel and Microsoft developed the High Definition Audio specification with extensibility in mind
C C Extensibility System Memory • DMA Engines • Dynamic allocation of DMA engine to a single stream • Streams • Bind single program’s audio to a DMA engine • Each stream’s sample sizes and rate are independent • Flexible Link Protocol • Managed resource with future bandwidth extensibility • Variable number of streams each with different rates and widths • Initialization and Configuration • 3-tiers: a) controller b) link or codec c) acoustic device • Fully enumerated Codec Structure • Codec communication • Packet-like command and response • Ring buffer (not “PIO” register-based) Controller RAM HD AudioController DMA DMA DMA DMA Codec C Integrated C HD Audio Link Codec C Motherboard C Codec C Add-in C Mobile Docking Station Codec C C
Stability And Transparency • Stable, reliable audio device infrastructure • User mode audio system • Audio Device Infrastructure changes • Simplified and scope limited device driver model • WaveRT PortCls miniport • Value-add audio processing moved to user mode • System Effects Infrastructure
Stability And Transparency Audio Engine Gaming Audio API Memory Buffer User Mode Kernel Mode PortCls Microsoft HD Audio FunctionClass Driver (WaveRT) System Effects System Effects Or 3rd party driver Microsoft HD Audio Bus Driver HW
Stability And Transparency Audio Engine Gaming Audio API System Effects Memory Buffer User Mode Kernel Mode PortCls 3rd party value-add DDI Microsoft HD Audio FunctionClass Driver (WaveRT) System Effects Or 3rd party driver DDI Microsoft HD Audio Bus Driver HW
Stability And Transparency • WaveRT friendly hardware designs • A UAA HD Audio-compatible implementation meets this requirement automatically • To be considered WaveRT port friendly, the audio hardware must support the following • Cyclic DMA engine with a scatter-gather list • Position register that is separate from other hardware registers (can be a copy) • Ability to split samples between pages • Ability to loop on buffers without software intervention • This requirement does not apply to external or internal USB audio and 1394 audio devices
Quality • WaveRT: Low latency enabling driver model • HW Maps buffer to audio engine user mode buffer • HW Maps position similarly • Multi-media Class Scheduler • Improved file I/O • Higher fidelity opportunities • Multiple streams with multi-channel data at high bit depth and sample rates from all PCs • Breaking the limitations of common legacy solutions • Transition away from AC-97 • 16bit/48KHz is no longer the limit
Quality • New initiative from Microsoft to improve baseline PC audio fidelity • Evangelization of board/device design guidelines • Defined Logo fidelity requirements • Enforcement using automated tests and analyzers • Bar set at current industry state
Quality • New initiative from Microsoft to improve baseline PC audio fidelity • Evangelization of board/device design guidelines • Defined Logo fidelity requirements • Enforcement using automated tests and analyzers • Bar set at current industry state
How Does UAA Affect System Implementation? • Please invest time to understand the new Windows requirements and implement the system audio device accordingly • Your systems will fail Windows Vista logo certification if you do nothing • You cannot continue to design and validate the same way as in the past with AC-97 solutions • There are new considerations • New way of reporting system and device capabilities, CRITICAL for logo certification: System BIOS programs HD Audio codec pin configuration registers according to Microsoft guidelines • New model for how the system’s audio device is tested relies on the new system audio capabilities reporting mechanism • The codec vendor’s customized driver now plays less of a role during system certification phase, thus the Microsoft class driver should be your system bring-up validation tool
What Do You Have To Do Differently? • To ensure Windows Vista Logo certification, System Implementers should: • Validate system audio solution UAA compliance with relevant specifications and early in design cycle • Validate system audio solution UAA compliance by using Microsoft provided UAA during design cycle • Validate system audio solution UAA compliance by using relevant Microsoft’s UAA during design and test cycles Microsoft UAA design guidelines test tools audio class driver
Focus: High Definition Audio • HD Audio is the most important of the currently defined UAA technologies • Microsoft expects 95% of all UAA compliant systems to be based on HD Audio and require 100% of all Windows Vista systems to be UAA compliant • HD Audio is extensible and discoverable • Allowing multitude of solutions and the means to accurately report each solution’s capabilities
HD Audio Deep Dive • Section Goals • Understand what HD Audio Pin Configuration Default Register is • Understand its impact on HD Audio system implementation • HD Audio Codec Configurability • Pin Configuration Default Register • Microsoft Pin Configuration Guidelines for HD Audio Devices • HD Audio Class Driver • Impacts to your HD Audio system designs • Validation tools
HD Audio Codec Configurability • HD Audio specification defines a way for system designers (like OEMs/ODMs) to specify how an HD audio codec is used in a particular system • Specified through the programming of Pin Configuration Default Settings • On the same codec, applying different set of Pin Configuration Default Settings, you can have different audio configurations to meet the needs of individual systems
HD Audio Codec Configurability Customized AC 97 Driver 1 Customized AC 97 Driver 2
HD Audio Codec Configurability • One of our goals is to guarantee the availability of audio functionality right after Windows installation • With AC 97 Audio, the only way to achieve this goal is to add every single 3rd party driver into Windows, which is impossible
HD Audio Codec Configurability HD Audio Class Driver HD Audio Class Driver Pin Configuration Default Registers 1 Pin Configuration Default Registers 2
What Is The Pin Configuration Register? Computer Box A 32-bit register, one for each pin to specify the intended usage for each pin
What Is The Pin Configuration Register? Configuration Default Register Computer Box Configuration Default Register Connectivity Def Device Misc Location Def Association Connection Type Color Sequence Number
What Is The Pin Configuration Register? • Detailed Pin Configuration register fields Jack, fixed, no connection… Rear, Front, Right, Left, External, Internal… LineOut, Speaker, HP, SPDIF Out, Mic In… 1/8” jack, RCA, Optical… Black, Green, Orange, Blue… Jack presence detection capability How to group pins into logical devices Special information in a logical device Connectivity Location Def Device Connection Type Color Jack Override Def Association Sequence Number
Location, Connection Type, Color Used in UI to guide users how to connect peripheral devices Unique color in a location is user friendly – recommended!
Port Connectivity • The Port Connectivity field indicates whether the pin widget represents an external audio jack, has a fixed connection to an internal device (for example, integrated speakers), or is unconnected • Set to no-physical connection for unused pins to avoid class exposing unusable audio device
Default Device • Default Device indicates the intended use of the jack or device • It could be an input device (like Mic in, Line In, SPDIF In) or an output device (like speaker, line out, headphone, SPDIF Out…) • Each pin can only have one “Default Device” • This is where the HD Audio Specification comes short of supporting jack re-tasking
Association, Sequence Number • Association is used to form groups of pins that operate as multi-pin device • Sequence Number is used for speaker-channel mapping in multi-channel devices Logical Device List Pin Configuration Register Sequence Number Bit 3:0 Association Default Bit 7:4 Association 1 Line Out Pin Widget 10 Line Out Pin Widget 11 Line Out Pin Widget 18 Line Out Pin Widget 10 1 0 Line Out Pin Widget 11 1 1 Association 2 Translated by parser to Line In Pin Widget 12 Line Out Pin Widget 18 1 2 Association 3 Line In Pin Widget 12 2 0 Mic In Pin Widget 15 Mic In Pin Widget 15 3 0
Jack Detection Override • The HD Audio class driver uses “Jack Detection” to detect whether speakers, headphones, microphones, and other external devices are plugged into audio jacks • When “Jack Detection” capability is present, HD Audio class driver will enable “Dynamic Device” feature for this device • Exposing it only when physical connection is detected • Improved end user experience • Avoid support calls • Otherwise, each device is treated as “Static Device” – always exposed
Jack Detection Override • Used to indicate whether external circuit on motherboard is present for enabling jack detection capability • When this bit is set, it means no external circuit is added; clear it when circuit is present (negative logic)
Common Issues • Jack Detection Override • Use HD Audio Front Panel because AC 97 Front Panel can not do jack detection with HD Audio codecs • Use two Pin Widgets to associate re-directed behavior • Splitting signals from one codec port is prohibited as the OS is not aware • EAPD and SPDIF In • EAPD behavior is reversed from AC-97 spec • Use GPIO0 if EAPD is used for SPDIF In
Microsoft Pin Configuration Guidelines For HD Audio Devices • A Microsoft document that complements HD Audio Specification • The spec itself does not completely specify how exactly to program Pin Configuration Registers in a logical device with more than one pin • Defines the pin configuration requirements for each Windows supported device type • Is part of Windows Vista Logo requirements for systems with HD Audio solutions
Single Pin Device Types • Speaker, Line Out, Headphone Out, SPDIF Out, HDMI Audio Out • Mic in, Line In, Aux In, SPDIF In
Multi-Pin Devices • Multi-channel Speaker/Line Out Devices • Quad • 5.1 • 7.1
Multi-Pin Devices • Redirected Headphone • Combine headphone with speakers/line out • Redirected Internal Speaker • Combine internal speaker with speakers/line out Internal Speaker
Multi-Pin Devices • MuxedCapture • A collection of mutually exclusive input devices that share the same ADC Mux Mic In Line In or Mic In Line In