Accelize Licensing Technology
Licensing is the heart of any Digital Rights Management (DRM) system. It is an access control technology that restricts the use of digital products – software, music, video, etc. – to entitled customers.
Licensing typically relies on 3 key technologies:
- Encryption – to protect the digital product
- Hardware identification – to identify the execution device
- Authentication – to authenticate entitled users
FPGA Licensing Core Technology
The core licensing technology is based on a license key that unlocks at runtime the proper operation of an FPGA design. The license key is loaded into the FPGA after its configuration, usually through PCIe.
The license key is an encrypted container that delivers a secret Activation Code to each protected function inside the FPGA. Protected function can only operate properly when the secret activation code has been received electrically within the function’s digital logic. This protection is implemented into HDL, by using individual bits of the activation code to insert blocking points into control logic and masking points into datapath logic.
The encryption key for the license key is unique per FPGA, derived from a unique hardware identifier such as Xilinx DNA or Intel CHIP_ID. Thus, a license key can exclusively unlock the FPGA device it has been generated for; any attempt to load a license key into another FPGA device will fail.
The Accelize licensing technology is offered in two distinct modes :
- Static licensing
- Dynamic licensing
Static licensing is the traditional licensing mode. It is a file-based scheme implemented by statically packaging the license key into a license file, stored locally on the server that hosts the FPGA card.
Static licensing is entirely local, with no connection outside the server. This significantly limits the rights such license key can implement to a perpetual, non-revocable license, which entitles the FPGA card itself. This in turn significantly limits the possible business models, which is further discussed later in this document.
Dynamic licensing is a powerful and flexible scheme. It is a server-based scheme implemented by delivering license keys from a license server. Specifically, the license server delivers a stream of temporary license keys at regular time intervals. To prevent replay attacks, each license key is single-use, which is achieved through a classical challenge-response handshake.
Accelize offers an online DRM service for dynamic licensing. The single requirement to connect to this service is a trivial outbound https port.
Dynamic licensing has many benefits over the simple static licensing mode. First, it implements user-based entitlements, allowing users to execute licensed applications on any FPGA card, anywhere – on-prem, cloud, appliance. Second, dynamic licensing enables subscriptions, term licenses (e.g. 1 year term) and evaluations licenses (e.g. 14 days). Last but not least, dynamic licensing enables the collection of runtime metering information from executions within the FPGA – such as volume of data processed-, which simultaneously provides valuable business intelligence and unlocks pay-per-use business models.
With these two licensing modes – static and dynamic -, Accelize offers 3 distinct licensing models:
Nodelocked licensing is a static licensing mode. A Nodelocked license is a license grant which allows an application to be executed on a specific FPGA card, and only on that card while minimizing the deployment frictions.
As discussed above, the license grant is perpetual, non-revocable and transferable. It entitles an FPGA card and is not bound to a particular user.
Floating licensing is a dynamic licensing mode. A Floating license is a license grant which allows a specified number of concurrent instances of the application to be executed on any FPGA card.
Floating licenses grants are bound to entitled users, and the DRM service dynamically enforces the maximum number of concurrent instances allowed, for each authenticated user.
Metered licensing is also a dynamic licensing mode. A Metered license is a license grant which allows unlimited execution of an application on any FPGA card, and incurs post-use periodic billing based on actual usage measured within the application FPGA. Monthly invoices based on data volumes is the most common scenario, yet Accelize supports billing based on any combination of measurable metric collected inside the FPGA (data volume, data type, time, events, invocations, etc).
Metered licenses grants are bound to entitled users, and the DRM service dynamically and securely collects the metering information generated within the FPGA, for each authenticated user.
Comparing Licensing Models
Licensing models have a different set of properties:
- Licensing Mode
Whether a license model is static or dynamic.
- Entitlement Type
Whether the entitlement is assigned to an authenticated user, or to a distinct FPGA card identified through its unique hardware ID.
- Licensing Metric
How the usage is measured when a licensed user executes an FPGA application.
How a licensing model supports concurrent executions of the same application.
Whether a license grant is perpetual, or term, i.e. limited in time through an expiration date or a subscription expiration.
Whether a license grant can be revoked, or not.
Whether a license grant is tied to a specific FPGA card, or can be dynamically bound to any FPGA card.
- Usage Monitoring
Whether a licensing model allows monitoring of each execution of applications.
|entitlement type||Hardware Node||User||User|
Important note: the Accelize licensing technology embedded into the FPGA design dynamically supports all licensing modes without any change to the application. Thus, one can sell its application under multiple licensing models, without any modifications to the application. This not only allows sales & marketing to try different business models easily, but it also allows custom business models tailored to specific customers.