Internet of Things (IoT), Big Data and Blockchain are compute-intensive solutions. All these technologies use a large amount of data and are in need to continuously move data in and out of storage through a secure transmission across the network. In this information age, and the ever-increasing demand to handle too large volumes of data, Intel introduced QuickAssist Technology (QAT). QAT is designed for optimizing the use and deployment of algorithm accelerators in security and networking applications.
The complexity of security and networking applications is growing day by day. And because of this, systems need more and more computational resources to manage workloads, which includes functionality like pattern matching, compression, and encryption. QuickAssist Technology allows the user to meet the ever-increasing demand for data, especially when it needs to be encrypted and compressed. Using this Intel technology, users can ensure that the applications are secure, fast and available all the time.
What is Intel QuickAssist Technology?
The QuickAssist Technology is developed by Intel and runs on the Intel Architecture. The Intel architecture is paired with the Intel communications chipset 8925 to 8955, for offloading some of the workloads like cryptography and compression from the CPU to the communication chip 89XX. The QuickAssist accelerator on the communication chip 89XX acts as a companion to the processor. The main purpose of doing this is to release the processor from intensive operations like compression and cryptography services. The acceleration capabilities of the QuickAssist improves the performance and efficiency in data storage, networking, security and big data applications.
Advantages of Intel QuickAssist
- The technology makes it easier for developers to integrate the accelerators in their designs and thus decrease the development time, support migration to designs using SOC (System on Chip) and accelerate performance for demanding applications.
- It increases business flexibility by offering solutions that best fit the changing business requirements. It also frees up the valuable cycles on processors and allows it to perform value-added functionality.
- The technology provides a uniform means of communication between accelerators, applications, and acceleration technologies. Due to this, the resources are managed more productively.
- It boosts application throughput, by reducing the demand on the platform and maximizes the CPU utilization.
QuickAssist has been designed to work with intelligent systems in industries like energy, chemical production, and manufacturing, which are exploring the use of FPGA (field programmable gate array). The field programmable gate array can speed up domain specific algorithms, by implementing them directly into the hardware. The technology provides a uniform way for applications, so as to communicate with the accelerators and even manage them as resources.
OpenSSL and QuickAssist
The OpenSSL is the most widely used technology when it comes to securing communications between compute nodes. OpenSSL is responsible for power encryption on a myriad number of private and public websites. Not only this, but it is used to secure communications in other applications too. It is one of the most important parts of modern communication infrastructure, and when any vulnerability is found in it, many software developers, admins, and executives tend to have sleepless nights.
The QAT accelerator can be accessed in the kernel space through the device driver and a library in user space. The cryptographic and encryption services are provided to the OpenSSL with the help of standard engine framework. The engine is built on top of the userspace library and is interfacing with QuickAssist API. This integration with the OpenSSL framework provides seamless utilization of resources and thus improving its overall performance.
OpenSSL along with QuickAssist simplifies the overall acceleration process. After installing the QAT engine, you can drop the engine in the OpenSSL 1.1 as opposed to getting a special OpenSSL version, making the solution much easier to deploy and get the advantage of acceleration services.
QuickAssist in the Software Stack
Applications developers who are looking to get access to the QuickAssist technology can do it by accessing the QAT API. The application interface provides easy interfacing between the QuickAssist acceleration driver and customer application. The user can also get access to it through open source software frameworks, SHIM layer. This layer acts as an adapter between QAT API and the industry standard frameworks.
The QAT API accesses the QAT driver, which provides the acceleration services to the application software. This drivers consist of two layers. The acceleration driver framework and the service access layer.
- Acceleration Driver Framework
The acceleration driver framework has multiple roles to perform. This role includes and is as follows.
- The driver framework is responsible for downloading the firmware which will control the hardware performing acceleration services.
- Creating receive and transmit rings. The driver framework communicates with the firmware through the host DRAM implemented rings. This ring system is used to pass the response message between the firmware and SAL (Service Access Layer).
- Service Access Layer
The service access layer is responsible to create and start the acceleration services. The two services which are available are as follows.
- Cryptographic Services
- Compression Services
Once the services are enabled, the SAL will place a message on the transmit rings and once the message is processed, the firmware will place the response message on receive rings. The SAL will than decode the message present on receive ring, in a callback function and will update the API output parameters.
With zillion bytes of data available on the internet, the need to process the data, and functionality like encryption and compression rapidly is extremely important. The QAT helps to reduce the workload on the processor and thus, in turn, helps to utilize the resources more efficiently.