System Software & Operating System for Fast Storage
We are working on the redesign, optimization, and refactoring of system software and operating systems (e.g., the Linux kernel) for high-performance storage media. Our main research interests include: 1) optimizing storage engines of data-intensive applications (e.g., key-value store and DBMS), 2) developing new file systems or memory management systems for fast storage like flash-based SSDs, 3) refactoring storage firmware (e.g., a flash translation layer) to realize higher I/O performance with better economics in terms of power, space, and costs. In particular, cross-layer optimizations that co-optimize various layers in a vertical manner are one of our primary interests.
Software-defined and Network-attached Key-value Store
We are developing a NoHost, an ARM-based key-value store, which is more efficient in terms of cost-power-performance and provides much better scalability than x86-based storage servers. A node in NoHost comprises a low-power embedded-class processor (e.g., ARM Cortex-A53), a few gigabytes of DRAM and ash chips, and can be directly connected to a network port in a datacenter. A large-scale distributed storage cluster can be formed simply by adding more NoHost nodes to the network. Applications in the datacenter can take multiple “software-defined” views of NoHost store via a thin KV-adapter layer, which translates conventional KV, file, SQL, and block accesses into KV requests for the NoHost.
High-performance Nonvolatile Storage Device Prototyping
We are developing a high-performance nonvolatile storage platform. Our storage prototype is based on Xilinx Ultra-scale ZCU102 which is equipped with ARM Cortex-A53 CPU, ARM Cortex-R5 CPU, 4GB DRAM, and FPGA fabrics. An in-house flash card is directly attached to the ZCU102 though high-speed FMC ports. This prototype board enables us to develop and evaluate a variety of storage management algorithms, such as a flash translation layer, and even in-store computing accelerators. In addition to ZCU102, our group also has another storage prototype boards, including DragonFire Cards, which are also being used for our storage firmware study.
Real-time Flash Storage for Self-Driving Cars
We design and implement a real-time high-capacity flash storage system for self-driving cars called AutoBox. Fully self-driving cars are expected to have high-capacity flash storage as their key component to keep high density maps, sensor data, and so on. Unlike typical environments like datacenters and PCs, for self-driving cars, flash storage should satisfy two strong requirements, (1) guaranteed I/O latency and (2) thermal tolerance. Our primary goal for AutoBox is to develop new storage firmware and controller logics for high-density flash storage so that it ensures bounded I/O latency as well as functions correctly even under extremely high temperature.
Self-Defensible SSDs from Hackers and Ransomware Attacks
We propose a new approach to defending against ransomware inside NAND flash-based SSDs. To realize the idea of defense-inside-SSDs, a lightweight detection technique and a perfect recovery algorithm are implemented in SSDs as the form of storage firmware. We propose a ransomware detection algorithm that identifies activities of ransomware based on its unique behavioral features. For perfect and instant recovery, we also propose using the delayed deletion feature of SSDs, which allows us to recover original files even after they are encrypted by ransomware.
Big-data Analysis Machines
We develop a clustered big-data analysis machine that makes use of both high-performance FPGAs and NAND flash to boost the performance of big-data analytic applications. In our system, FPGA-based accelerators are combined with flash storage, which enables us to take advantage of near-data processing. To quickly access large amounts of data, we refactor the conventional software stack, including a file system and a device driver, so that it minimally relies on the Linux kernel. To provide a flexible custom interface to hardware accelerators inside the flash storage, we develop an automatic HW-SW interface generation tool chain.