The amount of data being generated is exploding: According to IDC, the volume of data created, captured, or replicated is expected to increase from 33 zettabytes1 in 2018 to 175 zettabytes in 20252. To realize value from this data, we need to process it into meaningful insights. We are storing – on storage drives – and processing – in servers – more data, but often the storage and processing are not in the same place. Moving large amounts of data (drives are commonly 16TB today and capacities are increasing) between storage and compute means this approach cannot scale, and makes it harder to extract insight from that data to convert it into added value and services organizations benefit from.
In the traditional storage model, data is just stored on hard disk drives (HDDs) and solid-state drives (SSDs), and the data stored is sent to some external compute. Computational storage facilitates processing of the data on the drive where the data is stored, enabling the generation of insight and value close to the data.
What is computational storage and why does it matter?
Computational storage is all about making storage devices smarter to process the data directly on the drive it is stored on. This approach reduces the movement of large amounts of data to external processing, resulting in benefits such as reduced latency and bandwidth usage, increased security, and energy savings. Data workloads are processed directly on the storage controller itself. Applying computational storage is critical to address the real-time processing requirements of machine learning (ML) or analytics applications.
Computational storage applies to a variety of applications from IoT to edge computing. If we consider IoT, the acceleration in numbers of deployments produces huge amounts of data. Usually all the raw data is moved to, stored, and processed in a server. However, not all the data captured is relevant.
Let’s take an example: Imagine a surveillance camera system in a big parking lot. The system needs to record license plate numbers and the time when cars enter and leave to enable billing for parking time as well as recording the camera footage for security purposes. The information we are primarily interested in are the license plates. It would be very inefficient to move all the large images or video streams to the server for image processing whether or not cars are entering or leaving the parking lot. With computational storage, each camera is streaming to its local drive and then the compute recognizes the car license plates directly on the drive. It is much more efficient to be able to perform the machine learning and image recognition directly on the images or video stored on the drive and to only return to the server the insight from that data – license plate numbers and the time. Also, if you consider that there is usually more than one camera in a parking lot, if there is one drive per camera, then the more cameras, the more drives, and the more compute in the right place. It makes the system more efficient and very scalable.
Computational storage will help realize the potential of emerging technologies across applications including the IoT, artificial intelligence, machine learning, and edge computing. There are many use cases where computational storage will have a significant impact. A few common examples:
- Database acceleration – Operations performed directly on the data
- Off-load – Compression/encryption/encoding/etc. directly on the data
- Content Delivery Networks (CDNs) – Easily enabling very local content delivery
- Artificial Intelligence (AI) and Machine Learning (ML) – Generating insight directly from the vast amounts of data
- Edge computing – A Computational Storage Drive (CSD) running Linux is a self-contained small server
- Image classification – Enables meta-tagging directly on the data where it is stored
- Video – Local compute on the large files to generate insight
- Transportation – Direct processing of stored telemetry data in a vehicle
Today with a traditional storage drive, the data is moved from the device all the way to the server to be computed, which:
- Requires extra time, energy, and latency
- Increases the possibility of unauthorized access to the information
If the backhaul, the connection to the servers, in these systems provides limited bandwidth or is expensive, then the benefits of computational storage can reduce total cost of ownership significantly.
Computational storage, by reducing the movement of large amounts of data through processing on the drive brings the following benefits:
Faster response time and reduced latency
Moving intelligence to where it is needed allows results to be delivered in near real-time. The data does not need to be encapsulated in protocols, then moved and copied through routers and switches, and unpacked on the server before it can be processed.
No huge data transfers requiring energy and generating heat
Security and privacy
The data does not leave the drive, only the insight is returned, reducing the risk of leaking information
Because the compute is on the drive, adding more drives means adding more compute where the data is stored
How does computational storage work?
A Computational Storage Drive (CSD) is a storage device that provides persistent data storage and computational services. Computational storage is about coupling compute and storage to run applications locally on the data, reducing the processing required on the remote server, and reducing data movement. To do that, a processor on the drive is dedicated to processing the data directly on that drive, which allows the remote host processor to work on other tasks.
In a traditional storage system, the compute wants to do some processing on the data.
- The compute requests the data from the storage
- The storage sends the data to the compute
- The compute then does some processing in the server
- The result is moved back to the storage
In a Computational storage system, the compute does not request data.
- The compute requests an operation to be carried out on the data by the drive itself
- Processing takes place on the storage device
- The drive returns the result to the compute
Read our guide to computational storage for more insight.
Linux facilitates computational storage
There are multiple ways of implementing computational storage, however the main requirement is embedding processing capability in the drive controller that can run a rich operating system such as Linux and software components. This has key benefits:
Open source software with a vast Linux developer community
By using standard tools that are industry wide, the development experience is easier, it just works. Being able to create workloads that developers can then deploy using standard systems based on Linux to the drive, still following the SNIA standard, simplifies a system and allows for easier software development.
Readily available tools
With Linux, the vast ecosystem of tools and open source software are available to develop, deploy, and manage the computational storage workloads. This enables the huge developer community to quickly migrate tasks to computational storage drives.
Intelligent storage enabled
In a standard NVMe drive, the drive is sent blocks of data, breaks them up and stores them into pages in its NAND dies. The server asks to be sent a block of data, fetches it from the NAND, reassembles it back into a block, and finally sends it to the host. This is a valid process however the drive does not know that these blocks make up a JPEG image, for example, because it does not understand the file system. Instead, Linux running on the drive enables intelligent storage as it can mount the standard file system while applications can understand what files the blocks of data actually represent.
The drive as a mini server
Linux running on the drive can manage the drive, develop workloads, and download new workloads all using standard open source systems that exist today. It turns the drive into a mini server, but the lowest possible cost server.
Now you may wonder: Is Linux really adapted for computational storage? The answer is Yes. Is it not too big? The answer is No. Storage drives today already have Gigabytes of RAM and Terabytes of storage and fast compute to handle the massive data movements in and out of the drive.
When initially thinking of Linux, one may think of large installations of software for big servers, not adapted to on-device storage and compute. However, the requirements for Linux are much smaller compared to a big server. The software can be significantly reduced in size. Indeed, there is no need for display drivers, several functions are not applicable, and you can simplify it and tailor it to your controller. For example, Debian 9 requires only 512MB of RAM and 2GB of storage.
Administration of the CSD can be performed using the standard open-source tools that are used in these complex systems. Workloads can be securely downloaded and managed using common tools such as Kubernetes, Docker, or extended Berkeley Packet Filter (eBPF) to enable secure execution of applications or scripts in a secure way.
Arm offers the easiest, fastest, and most cost-effective computational storage solution
The Arm storage solution provides the technology, support, and ecosystem required to be successful in computational storage today.
Arm processor portfolio
Cortex-A processors with:
Porting and optimization of applications
Arm and our partners have ported all the leading Linux distributions and open source applications. It is maintained automatically, and it will run on any Cortex-A processor. Arm has also optimized these applications through Linaro to make sure everything just runs optimally on Arm.
Software ecosystem of tools and libraries
With support from the Arm software ecosystem, programming work is minimal. ML software libraries that can run on some of the Cortex-A processors will accelerate the speed at which we are searching through images or other files.
Arm’s partner, NGD Systems, is exploring the use of computational storage to help airlines analyze flight data more efficiently and effectively. Today, airlines generate multiple terabytes (TB) of data per hour and offloading and analyzing that data can take hours, which is time operators cannot spare. With computational storage, the flight analytics can be provided to the right people at the right time, which will improve safety for the 1.2 million people in the air at any one time.
There are many other, non-Linux, types of compute possible on CSDs. For fixed purpose compute functions such as encryption, compression or deduplication then low-level real-time software, hardware acceleration or Neural Processing Units (NPUs) can all be used in a the CSD system. These types of specific functions and accelerators can be built into CSDs and accessed directly through the CSD protocol extensions being defined by the industry. However, if available, these low-level functions can also be accessed from high level operating systems. The flexibility that a high-level operating system provides, and ease of customization and the huge developer community, in combination with low-level accelerators can deliver very high-performance and efficient CSD solutions.
Computational storage is happening
Computational storage is real and there are devices based on Arm processors already available today from multiple partners.
There is also an industry-wide effort to have all storage developers and players aligned to a common implementation. The SNIA Computational Storage Technical Working Group, with 45 companies and 202 members, is defining a standard and Arm is actively involved in this activity. This standard encourages the adoption and development of Computational storage as it removes the risk of fragmentation and lack of compatibility.
Visit our storage website to learn more about the Arm solution.
11 ZB zettabyte = 1,000,000,000,000,000,000,000 bytes, 1,000 EB exabytes, 1 million PB petabytes, 1 billion TB terabytes
2Source: Data Age 2025. The Digitization of the World From Edge to Core. An IDC White Paper – #US44413318, sponsored by Seagate. https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf