Overview
The AMD Advanced Synchronization Facility (ASF) is an experimental instruction set extension for the AMD64 architecture that would provide new capabilities for efficient synchronization of access to shared data in highly multithreaded applications as well as operating system kernels. ASF provides a means for software to inspect and update multiple shared memory locations atomically without having to rely on locks for mutual exclusion. It is intended to facilitate lock-free programming for highly concurrent shared data structures, allowing more complex and higher performance manipulation of such structures than is practical with traditional techniques based on compare-swap instructions such as CMPXCHG16B. ASF code can also interoperate with lock-based code, or with Software Transactional Memory.
Some basic usage examples of ASF are provided in the specification. However, we expect the programming community could readily use the power and flexibility of ASF to implement very sophisticated, robust and innovative concurrent data structure algorithms, and we encourage such experimentation. AMD will be releasing a simulation framework in the near future to facilitate this.
AMD is releasing this proposal to encourage the parallel programming community to review and comment on it. Such input will help shape the ultimate direction of this feature, so that it may best serve the needs of advanced parallel application developers.
Documentation
The ASF specification is currently in the proposal stage. AMD is committed to providing technologies that meet software development needs, and is therefore soliciting community input to help refine the ASF specification.
Please download the
ASF specification proposal (PDF) (March 2009).
Feedback
Please send your feedback, comments and suggestions to ASF_Feedback@amd.com, or feel free to join public discussion of it in our developer forum.