Code Monkey home page Code Monkey logo

ocowfc's Introduction

OCOWFC

Open-Channel Open-Way Flash Controller

Introduction

OCOWFC is a high-performance open-channel open-way NAND Flash controller (NFC) that supports the channel-way-plane levels of interleaving and the cache mode pipelining. Several architecture innovations are proposed to improve performance and resource efficiency.

  1. The NFC exposes the multi-channel, multi-way Flash topology to FTL, providing a set of queue-based asynchronous interfaces for each way of the Flash memory. This open-way architecture can simplify the command scheduling in FTL and the way-level interleaving in hardware. Besides, data buffers are greatly reduced due to the separate control and data paths as well as the exploitation of the ONFI data pause mechanism.
  2. A dual-level hardware command scheduler is integrated into the NFC. The upper-level scheduling improves the utilization of the multi-plane and cache mode operations. The lower-level scheduling auto-interleaves commands in fine granularity that can overlap the busy periods of Flash operations.
  3. The Flash commands are classified into four groups according to their functions: checking status, reading data, writing data, and others. One finite state machine (FSM) is designed for each group rather than each command to save hardware resources.

Performance

We implement the NFC in an FPGA platform attached with a four-channel, four-way, and two-plane Flash array. When the I/O speed is configured as 333MT/s, the maximum reading and programming bandwidths can reach 1.2GB/s and 0.36 GB/s, accounting for 93% and 27% of the theoretical maximum bandwidth. The minimum latencies for the page reading and programming are 119μs and 2ms, respectively.

Publications

[1] Y. Qiu, W. Yin, and L. Wang, "A High-performance Open-channel Open-way NAND Flash Controller Architecture," in FPL2021. (not published yet)

Project Setup

  1. Target FPGA device: Xilinx KCU105 board
  2. Development tools: Vivado 2019.2

ocowfc's People

Contributors

yhqiu16 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.