More feature stories by year:
Return to: 2016 Feature Stories
CLIENT: HSA FOUNDATION
Mar. 30, 2016: EE Times
Peter N. Glaskowsky
FSA has matured into today's Heterogeneous System Architecture specification, now owned and maintained by the HSA Foundation.
Before 2000, personal computers typically had just one user-programmable processor: the CPU. There were many attempts over the years to add different kinds of processors, but it wasn't until the invention of the GPU that heterogeneous multiprocessing became a common feature in the PC market.
Since then, there has been a rapid proliferation in the number and kind of processors in PCs and PC-like devices such as tablets and smartphones. System-on-chip processors today often include a DSP for audio, modem, and multimedia processing, an image signal processor to accelerate camera-related operations, and other dedicated processors for sensor fusion, data communications, and data storage.
Multiprocessing was introduced to the PC platform in an ad-hoc fashion by multiple independent vendors. Because the necessary architectural support was not provided by operating-system developers, these vendors were forced to work within the constraints of a driver model inherited from simpler peripheral devices. The biggest constraint was the requirement for a CPU to coordinate transfers of data and commands between the host and each coprocessor's local memory.
As the number and the importance of such coprocessors increased, this CPU-centric approach became prohibitively inconvenient. Too much potential performance was being wasted on these unnecessary coordination tasks. Too many bugs and too many security vulnerabilities were being enabled by the need to translate between multiple physical and virtual address spaces.
So, however belatedly, solutions emerged, and arguably the most comprehensive of these began as AMD's Fusion System Architecture in 2011. FSA matured into today's Heterogeneous System Architecture specification, now owned and maintained by the HSA Foundation, in which AMD has been joined by six other founding members (ARM, Imagination, MediaTek, Qualcomm, Samsung, and Texas Instruments) and 42 other participants in several categories.
The Foundation released version 1.0 of the HSA specification in 2015, and in December published a book providing additional background and implementation advice: Heterogeneous System Architecture -- A New Compute Platform Infrastructure. Edited by Wen-Mei W. Hwu of the University of Illinois at Urbana-Champaign, this book is an effective combination of background, theory, and practical examples for using each of HSA's many features. Each group of features is addressed in a chapter written by academic and corporate experts on that topic.
The most important features of HSA (to my way of thinking) are the single memory model, single queuing model, and single virtual instruction set for all HSA-compliant processors (agents) in the system. There is also some standardization for preemption and context switching, but fundamental differences between types of processors -- between CPUs and GPUs, for example, which have context-switching delays that may differ by orders of magnitude -- make it impossible to stretch a single context-switching model to accommodate every kind of HSA agent. Many additional features build on these fundamentals: standards for atomic memory operations, exception handling, debugging, runtime APIs, and so on.
The HSA memory model is worth a more detailed explanation. It standardizes many characteristics of the memory subsystem that evolved independently under the influences of competing CPU, system, and operating-system vendors. Going forward, those who design and program HSA agents will need to support only one set of rules for virtual addressing, coherency, and consistency, not today's conflicting, confusing, and bug-inducing mélange of definitions.
As an engineer who has spent many years advocating for architectural modernization, I applaud the HSA Foundation's progress, but I think there's room for further (and equally substantial) improvements. In particular, I think the traditional distinction between "memory" and "storage" became obsolete when flash memory was invented, yet the PC industry has stubbornly resisted ideas that have proven successful in other computing applications.
There are some relevant topics that are not addressed in this book. CPUs, GPUs, and DSPs aren't the only types of processors that might be useful in PCs -- FPGAs are attracting considerable interest in both personal and high-performance computing, for example -- but these account for most of the work that has gone into the HSA effort so far.
System architecture defines the limits of system security, but security isn't addressed here at all; the word doesn't even appear in the book's index. It is an unfortunate reality that HSA can make GPU-hosted viruses just as dangerous as those that run on CPUs. System implementers should be taught how to minimize this new threat surface, but this book will not help them.
A page or two to position HSA with respect to traditional dichotomies in the PC and smart-device markets would not have gone amiss: x86 vs. ARM, Windows vs. Linux, little-endian vs. big-endian, and so on. If programmers can safely ignore all of these differences on HSA-compliant systems, I'd like to see that point made as clearly as possible.
Finally, as an independent reviewer, I must point out the elephant in the room: Intel does not support HSA. (I have no professional relationship with Intel or any member of the HSA Foundation.) Intel, which controls about 80% of the overall PC market, has its own implementations of shared virtual memory and some of the other elements of HSA. For purely pragmatic reasons, it would help the HSA Foundation to explain how its solutions differ and where they are superior.
I spoke with Dr. John Glossner, president of the HSA Foundation, about all of these observations. As Glossner told me -- and as the Foundation's website makes clear -- most of the interest in HSA today comes from mobile platform vendors. While Intel would be welcome to participate, the company has little presence in the mobile market except for the relatively small niche of Windows 10 tablets, so its absence is no obstacle to wider adoption of HSA.
Glossner also explained that the primary goal for version 1.0 of the HSA specification was to help vendors to implement HSA in platforms using their own IP "from top to bottom." These vendors will generally have fewer concerns about these issues, since they control all of the elements of the design, and more interest in standards-based application-specific coprocessors.
Version 1.1, now in work, will facilitate the integration of IP from multiple vendors into individual system-on-chip solutions. In this environment, security, endianness, and similar matters will need further attention, and the new revision of the HSA specification -- and, I assume, a new edition of this book -- will address them in greater detail.
Irrespective of any shortcomings, Heterogeneous System Architecture -- A New Compute Platform Infrastructure is a valuable and insightful book. Not only should it be read by any engineer who is working on HSA-based systems (or might be in the future), it should also be read by students in computer science, engineering, and system architecture, as well as architects of competing platforms to see why they ought to consider joining the HSA Foundation.
A leading innovator in computer architecture, Peter Glaskowsky helped found, fund, and build the x86 CPU startup Montalvo Systems. He worked as a senior architect at Intel and as a silicon strategist at Microsoft, has co-authored two books on space elevators, consults on intellectual property matters, and holds 17 U.S. patents.
Return to: 2016 Feature Stories