FEMU  原版 master 7e238cc
FEMU: Accurate, Scalable and Extensible NVMe SSD Emulator (FAST'18)
ftl.h 文件参考

ftl相关数据声明 更多...

#include "../nvme.h"
ftl.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

结构体

struct  ppa
 describe a physical page addr 更多...
 
struct  nand_page
 更多...
 
struct  nand_block
 更多...
 
struct  nand_plane
 plane 更多...
 
struct  nand_lun
 晶圆 更多...
 
struct  ssd_channel
 通道 更多...
 
struct  ssdparams
 ssd参数 更多...
 
struct  line
 line 更多...
 
struct  write_pointer
 wp: record next write addr 更多...
 
struct  line_mgmt
 记录各种line的列表和数量 更多...
 
struct  nand_cmd
 
struct  ssd
 模拟一个ssd 更多...
 

宏定义

#define INVALID_PPA   (~(0ULL))
 
#define INVALID_LPN   (~(0ULL))
 
#define UNMAPPED_PPA   (~(0ULL))
 
#define BLK_BITS   (16)
 
#define PG_BITS   (16)
 
#define SEC_BITS   (8)
 
#define PL_BITS   (8)
 
#define LUN_BITS   (8)
 
#define CH_BITS   (7)
 
#define ftl_debug(fmt, ...)   do { } while (0)
 
#define ftl_err(fmt, ...)   do { fprintf(stderr, "[FEMU] FTL-Err: " fmt, ## __VA_ARGS__); } while (0)
 
#define ftl_log(fmt, ...)   do { printf("[FEMU] FTL-Log: " fmt, ## __VA_ARGS__); } while (0)
 
#define ftl_assert(expression)
 

类型定义

typedef int nand_sec_status_t
 
typedef struct line line
 line 更多...
 

枚举

enum  {
  NAND_READ = 0, NAND_WRITE = 1, NAND_ERASE = 2, NAND_READ_LATENCY = 40000,
  NAND_PROG_LATENCY = 200000, NAND_ERASE_LATENCY = 2000000
}
 NAND物理时延设置 更多...
 
enum  { USER_IO = 0, GC_IO = 1 }
 
enum  {
  SEC_FREE = 0, SEC_INVALID = 1, SEC_VALID = 2, PG_FREE = 0,
  PG_INVALID = 1, PG_VALID = 2
}
 
enum  {
  FEMU_ENABLE_GC_DELAY = 1, FEMU_DISABLE_GC_DELAY = 2, FEMU_ENABLE_DELAY_EMU = 3, FEMU_DISABLE_DELAY_EMU = 4,
  FEMU_RESET_ACCT = 5, FEMU_ENABLE_LOG = 6, FEMU_DISABLE_LOG = 7
}
 

函数

void ssd_init (FemuCtrl *n)
 初始化ssd参数,为ssd各层结构体分配空间,创建ftl线程 更多...
 

详细描述

ftl相关数据声明

宏定义说明

◆ BLK_BITS

#define BLK_BITS   (16)

◆ CH_BITS

#define CH_BITS   (7)

◆ ftl_assert

#define ftl_assert (   expression)

◆ ftl_debug

#define ftl_debug (   fmt,
  ... 
)    do { } while (0)

◆ ftl_err

#define ftl_err (   fmt,
  ... 
)    do { fprintf(stderr, "[FEMU] FTL-Err: " fmt, ## __VA_ARGS__); } while (0)

◆ ftl_log

#define ftl_log (   fmt,
  ... 
)    do { printf("[FEMU] FTL-Log: " fmt, ## __VA_ARGS__); } while (0)

◆ INVALID_LPN

#define INVALID_LPN   (~(0ULL))

◆ INVALID_PPA

#define INVALID_PPA   (~(0ULL))

◆ LUN_BITS

#define LUN_BITS   (8)

◆ PG_BITS

#define PG_BITS   (16)

◆ PL_BITS

#define PL_BITS   (8)

◆ SEC_BITS

#define SEC_BITS   (8)

◆ UNMAPPED_PPA

#define UNMAPPED_PPA   (~(0ULL))

类型定义说明

◆ line

typedef struct line line

line

◆ nand_sec_status_t

typedef int nand_sec_status_t

枚举类型说明

◆ anonymous enum

anonymous enum

NAND物理时延设置

枚举值
NAND_READ 
NAND_WRITE 
NAND_ERASE 
NAND_READ_LATENCY 
NAND_PROG_LATENCY 
NAND_ERASE_LATENCY 

◆ anonymous enum

anonymous enum
枚举值
USER_IO 
GC_IO 

◆ anonymous enum

anonymous enum
枚举值
SEC_FREE 
SEC_INVALID 
SEC_VALID 
PG_FREE 
PG_INVALID 
PG_VALID 

◆ anonymous enum

anonymous enum
枚举值
FEMU_ENABLE_GC_DELAY 
FEMU_DISABLE_GC_DELAY 
FEMU_ENABLE_DELAY_EMU 
FEMU_DISABLE_DELAY_EMU 
FEMU_RESET_ACCT 
FEMU_ENABLE_LOG 
FEMU_DISABLE_LOG 

函数说明

◆ ssd_init()

void ssd_init ( FemuCtrl n)

初始化ssd参数,为ssd各层结构体分配空间,创建ftl线程

参数
n
函数调用图:
这是这个函数的调用关系图: