• Cosmos OpenSSD架构分析--FSC


    接口速度:

    type   bw 
    read 75μs 1s/75μs*8k/1s=104m/s
    write   1300μs    1s/1300μs*8k/1s=6m/s
    erase 3.8ms  1s/3.8ms*8k*256/1s=526m/s
    PCIe Gen2 x8 5Gbps 5Gbps/8*8=4.88G/s
    DDR3 533MHz(32bit) 32bit*533MHZ/8=2.132GB/s

    system bus-

    AXI-Lite (bus 32 bits)

    Used for control
    Operates @ 100MHz
     

    storage data bus-

    AXI (bus 64 bits, burst length: 16)

    Used for DMA operations between flash
    storage controller/PCIe interface and
    DRAM
    Operates @ 100 MHz
    64bit*100MHZ/8=800m/s 
    flash bus  Operates @ 50MHz, DDR (100MB/s data rate) 8bit*50MHZ/8=50m/s  

    数据传输

    PCIE <--DMA--AXI--> DRAM <--DMA--AXI> FSC <--flash bus--> DIE

    FSC控制器结构如下:

    Way arbiter

    Way arbiter是用在当有多个way controller都要请求commonflash bus 和 access page buffer,因为是公用的,所以就要分配permission权限,算法如下:

    lastGrantedWay = 0
    while (true)
      if (requestArrived)
        for (i = 0 to numberOfWays)
          nextCandidate = (lastGrantedWay + i) % numberOfWays    //就是从上次使用的way继续往下轮训着找
          if (hasRequested(nextCandidate))
            grantPermission(nextCandidate)


    permission权限的意思是指(每次只有一个way可以使用):

    ● Access page buffer (through data path)
    ● Use flash bus

    下面列出一个example:

    Buffer controller

    Buffer controller controls data bus between page buffer and BCH ECC encoder/decoder

    Buffer size is 2198B
    ● Data 2048B + 60B ECC parity + reserved (90B)
      – Reserved space was intended to support more powerful ECC (currently not used)
    ● Page size of flash device is 8192B, thus, data transfer occurs 4 times


    写过程:

    读过程:



    page结构

    1.Physical page size of flash device
    ■ 8KB+448B (8640B)
    2.There are four chunks
    ■ Each chunk consists of a pair of data and parity
    3.Reserved 40B area is intended to store FTL metadata (currently not used)

    way controller

    下面来看flash controller的具体结构:

    ①Reset, mode change commands are directly executed at their dedicated modules

    ● Reset module and mode change module are responsible for the control

    ②Page read, page program, block erase commands are executed in 2-3 stages

  • 相关阅读:
    java多线程练习题 类
    java练习题在一个文件里面输入内容在另一个文件里面可以查看
    java练习题输入流姓名学号信息
    java 异常处理2
    java 处理异常练习题
    java get银行练习题
    java 练习题 求梯形的面积和周长
    java get正确写类的练习题 猫
    GUID 全局唯一标识符
    oracle 建表 练习2
  • 原文地址:https://www.cnblogs.com/losing-1216/p/5015567.html
Copyright © 2020-2023  润新知