{"id":713641,"date":"2020-12-20T19:59:34","date_gmt":"2020-12-21T03:59:34","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-blog-post&p=713641"},"modified":"2020-12-20T19:59:34","modified_gmt":"2020-12-21T03:59:34","slug":"direct-universal-access-dua-siliconnet-is-now-open-source","status":"publish","type":"msr-blog-post","link":"https:\/\/www.microsoft.com\/en-us\/research\/articles\/direct-universal-access-dua-siliconnet-is-now-open-source\/","title":{"rendered":"Direct Universal Access (DUA)\/SiliconNet Is Now Open Source"},"content":{"rendered":"

Background<\/h2>\n

With the rapid growth of cloud-based services, efficient, flexible access to heterogeneous resources in data centers at large scale is becoming increasingly important. Improved abstracted general access primitives, support for global naming spaces, and efficient routing mechanisms are needed to support these requirements.<\/p>\n

However, as mentioned in our paper, state-of-the-art data centers are still employing traditional resource access methods. (https:\/\/www.usenix.org\/conference\/nsdi19\/presentation\/shu<\/a>).<\/p>\n

Specifically:<\/p>\n

a) Resources are connected and accessed in different manners (i.e., PCIe, Ethernet) and require different communication stacks, which increases programming complexity.<\/p>\n

b) Resources are organized in a server-centric manner. Each resource uses a dedicated name space that can only be accessed from within a host. The lack of global names for resources renders remote access inefficient.<\/p>\n

c) Resource multiplexing is a key consideration for sharing various datacenter resources as a resource pool. Currently, however, stack multiplexing is not well supported. The lack of a general resource multiplexing scheme forces developers to manually tailor a solution for each case.<\/p>\n

Direct Universal Access\/SiliconNet<\/h2>\n

Direct Universal Access (DUA ) is designed to be a key component of the next generation data center resource communication architecture, providing a set of generic access primitives (SEND\/RECEIVE, WRITE\/READ), a global naming space, and routing.\u00a0 It is an overlay architecture in that it can use both currently available implementations interfaces and functions and also support the rapid development of new implementations and functions.<\/p>\n

a) DUA provides each resource with a global address at a data-center scale. DUA combines the available resource naming schemes into a new hierarchical naming convention. Because of the hierarchical address design format that is used, both local access and remote access can be efficiently performed.<\/p>\n

b) The DUA control plane manages all resources, assigning addresses and calculating the routing paths to reach them, and manages the multiplexing of resources. In addition, a general resource multiplexing scheme is proposed in the DUA design.<\/p>\n

Details of the concept and design can be found in the published paper, the blog, and on Twitter.<\/p>\n

Paper: (https:\/\/www.usenix.org\/conference\/nsdi19\/presentation\/shu<\/a>)
\nBlog: (
https:\/\/www.microsoft.com\/en-us\/research\/blog\/researchers-seek-to-simplify-the-complex-in-cloud-computing\/<\/a>)
\nTwitter: (
https:\/\/x.com\/MSFTResearch\/status\/1105876693091344384<\/a>)<\/p>\n

\"\"<\/p>\n

SiliconNet is a highly configurable, non-blocking hardware switch that provides a sample implementation of the switching component in the DUA overlay. It has been implemented in Verilog\/SystemVerilog and released as open source in GitHub with the code name SiliconNet (https:\/\/github.com\/microsoft\/DUA<\/a>). The current version is a reference design written in Verilog\/SystemVerilog.<\/p>\n

In this release, the following features are provided:<\/p>\n