Cosmos OpenSSD架构分析--FSC

2023-05-16

接口速度:

type bw 
read75μs1s/75μs*8k/1s=104m/s
write  1300μs   1s/1300μs*8k/1s=6m/s
erase3.8ms 1s/3.8ms*8k*256/1s=526m/s
PCIe Gen2 x85Gbps5Gbps/8*8=4.88G/s
DDR3533MHz(32bit)32bit*533MHZ/8=2.132GB/s

system bus-

AXI-Lite (bus width: 32 bits)

Used for control
Operates @ 100MHz
 

storage data bus-

AXI (bus width: 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

转载于:https://www.cnblogs.com/losing-1216/p/5015567.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cosmos OpenSSD架构分析--FSC 的相关文章

随机推荐

  • openstack No valid host was found. There are not enough hosts available.

    root 64 dell PowerEdge T30 gedit var log nova nova conductor log root 64 dell PowerEdge T30 gedit var log nova nova sche
  • Python中判断字符串是否为数字的三个方法isdecimal 、isdigit、isnumeric的差别

    isdecimal isdigit isnumeric这三个字符串方法都用于判断字符串是否为数字 xff0c 为什么用三个方法呢 xff1f 他们的差别是什么内 xff1f isdecimal xff1a 是否为十进制数字符 xff0c 包
  • 超过255台电脑IP和子网掩码的一些知识(轉)

    超过255台电脑IP和子网掩码的一些知识 我们都知道 xff0c xff29 xff30 是由四段数字组成 xff0c 在此 xff0c 我们先来了解一下3类常用的 xff29 xff30 A类IP段 0 0 0 0 到127 255 25
  • Unable to determine the device handle for GPU 0000:01:00.0: GPU is lost.问题排坑

    在运行maskrcnn时 xff0c 会碰到训练不动的问题 xff0c 就卡在这儿 UserWarning Converting sparse IndexedSlices to a dense Tensor of unknown shape
  • TCP/UDP协议

    一 协议的概念 什么是协议 xff1f 从应用的角度出发 xff0c 协议可理解为 规则 xff0c 是数据传输和数据的解释的规则 假设 xff0c A B双方欲传输文件 规定 xff1a 第一次 xff0c 传输文件名 xff0c 接收方
  • Chapter 4 Metrology system

    The metrology system measures the position of the probe relative to the product in the six critical directions in the pl
  • 二值信号量和互斥锁到底有什么区别?

    在说明之前我先抛出结论 xff1a 互斥锁和二值信号量在使用上非常相似 xff0c 但是互斥锁解决了优先级翻转的问题 假定我们现在有三个任务 xff0c task1 xff0c task2 xff0c task3 xff0c 任务优先级ta
  • uCos的多任务实现

    uCos的多任务实现 作为操作系统 OS xff0c 最基本的一项服务就是提供多线程 xff0c 在实时操作系统uCos里 xff0c 多线程被称为多任务 Task 多任务并不是CPU能真正同时运行多个程序 xff0c 实际是靠CPU在多个
  • 设置vnc登录远程虚拟机

    设置vnc登录远程虚拟机 原理简介 xff1a vnc分为vnc server 和vnc view xff0c 我们经常用来连接远端服务器的是vnc view客户端 xff0c server端部署在服务器端 vnc 能够与远端服务器实现通信
  • S03_CH13_ZYNQ A9 TCP UART双核AMP例程

    S03 CH13 ZYNQ A9 TCP UART双核AMP例程 13 1概述 ZYNQ中存在两个独立的ARM核 xff0c 在很多应用场景中往往只需使用其中的1个核心即可 然而 xff0c 对于复杂的设计 xff0c 例如多任务 xff0
  • Git 本地仓库(使用小乌龟进行操作,一个人开发)

    一 首先在本地创建版本库 创建成功最明显的特征是该目录下存在一个隐藏文件夹 xff08 git xff09 前提 xff1a 已设置显示隐藏文件 三种方式 xff1a 1 Git GUI Here xff08 右击 xff09 2 Git
  • ubuntu html5桌面,docker-ubuntu-vnc-desktop

    docker ubuntu vnc desktop Docker image to provide HTML5 VNC interface to access Ubuntu 16 04 LXDE desktop environment Qu
  • Docker容器跨主机通信--overlay网络

    一 Docker主机间容器通信的解决方案 Docker网络驱动 Overlay 基于VXLAN封装实现Docker原生Overlay网络Macvlan Docker主机网卡接口逻辑上分为多个子接口 xff0c 每个子接口标识一个VLAN 容
  • intel和AMD CPU性能对比(2016年CPU天梯图)组装电脑必读!

    http www 365pcbuy com article 411 html 特别提示 xff1a 此文已经于2016年10月12日更新 xff01 内容变动较大 xff0c 请细细品鉴 xff01 如何为客户推荐高性价比机型是我站的重要工
  • SDN控制器-POX学习(一)

    本文实验环境 1 VirtualBox 2 SDN Hub tutorial VM 64bit 学习目标 1 熟悉SDN Hub tutorial 2 学习POX提供的样例代码 tutorial l2 hub py SDN Hub tuto
  • android 编译突然出错,错误原因 Could not resolve com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+....

    错误追根是因为微信支付依赖的错误 解决办法 xff1a 微信支付依赖版本 43 号改为微信支付依赖最新版本 在这里https bintray com wechat sdk team maven可以查看到wechat sdk的最新版本号 xf
  • 浏览器相关知识

    1 认识浏览器 浏览器是把在互联网上找到的文本文档翻译成网页 xff0c 网页包括图形 音频 视频和文本等 2 浏览器的主要功能 展示网页资源 xff0c 即请求服务器并将请求的结果显示在浏览器窗口中 资源的格式一般是HTML xff0c
  • linux vnc的默认端口修改

    linux vnc的默认端口修改 2014 02 08 20 01 28 分类 xff1a LINUX vnc的默认端口是5901 xff0c 这个说法是不对的 vnc并不是只有一个端口 以前另一个文章介绍了nvcserver的配置用户的过
  • redis配置

    1 Redis 3 2x配置文件详解 2 3 4 默认redis不是以后台进程的方式启动 xff0c 如果需要在后台运行 xff0c 需要将这个值设置成yes 5 以后台方式启动的时候 xff0c redis会写入默认的进程文件 var r
  • Cosmos OpenSSD架构分析--FSC

    接口速度 xff1a type bw read75 s1s 75 s 8k 1s 61 104m swrite 1300 s 1s 1300 s 8k 1s 61 6m serase3 8ms 1s 3 8ms 8k 256 1s 61 5