AmmoMercy的技术博客

Stay hungry, stay foolish.

0%

文献阅读:Reinforcement learning-driven address mapping and caching for flash-based remote sensing image processing

Reinforcement learning-driven address mapping and caching for flash-based remote sensing image processing

Introduction

  • 遥感等地球观测技术生成的图像数据量很大,传统地面站计算方式信息传输量大,计算工作下沉到在轨设备是一种新的趋势。(类似雾计算的概念?)

  • 对I/O要求高,遂使用Flash作为数据存储。

  • Flash特性决定采用异地更新策略。

  • FTL在控制器实现,作用是提供地址转换。

  • 粒度划分的映射策略:page映射、block映射以及混合映射,本文采用page映射

  • 遥感图像处理有其独特的I/O特征、需要高吞吐量以及限制SRAM大小

    • 张提出基于可能性的缓存管理策略——灵活性差——可通过机器学习改进
    • 强空间局部性和相关的访问模式
    • 访问序列是一些小的随机访问的多次重复

2.1cache替换

  • f-lash cache替换的特殊特质:

    • 脏页写回
    • 逻辑-物理映射键值对多而SRAM容量小——内部SRAM存储部分常用映射(LRU)
  • 将cache分成不同的区域并使用不同的替换策略:如CF LRU分成两个区域working/clean-first只在cf中进行cache回收

  • 非冷脏优先存储or热干净优先=>无普适方法

  • 本文关注映射而不是实际数据

2.3强化学习

  • agent 动态随机environment 长期奖励

  • agent根据来自不同环境的reward学习

  • reward源于agent的action

Visual analysis

  • 遥感图形处理io trace视觉分析说明有更明显的访问模式:

    • 连续读写带来的强空间局部性
    • 不经常重复度- 弱时间局部性
    • 大的io请求更好的连续性模式 更弱的时间局部性
    • 时空局部性随时间改变

    res:现有的cache替换算法很难适用于这种特定模式

  • 小io:

    • logs 写
    • metadata图像元数据(时间、格式、地理信息等)读
  • 大io:图像本身

  • 大io有好的访问模式和空间局部性 但大io仍然可再分 不能简单地使用粗粒度的调度

  • 现有的调度算法是content-blind 与内容无关的

  • 几种关注内容的ftl

    • SFTL 基于bitmap 适用性差
    • CDFTL 两级按需缓存->冗余 为高度规则的io模式设计
  • 调度策略:

    • 大小分开
    • 读写分开
    • 适应性好
    • 总体性能 而非单纯的命中率
    • Q-FTL

Methodology

  • 实时 遥感数据处理 缓存容量有限
  • 总体性能 应用时间局部性 消耗评估 缓存管理技术
  • 尽可能减少写脏映射 同时提升命中率
  • 视作序列预测问题 并用强化学习解决

4.1 overview

  • 大小分开
  • 动态权重计算
  • 强化学习替换算法
  • SRAM两个区域:
    • 小元数据:CFLRU
    • 大真正的图像数据:增强学习进行动态权重计算

4.2 Workflow of cache management

  • 翻译成逻辑地址:
    • 命中
    • 不命中:启动替换算法
  • 根据预定义的大小阈值分流请求
    • 超过阈值:page-level
    • 未超阈值:entry-level
  • page-level
    • 命中
    • 未命中:从entry-level
      • 空间足够
      • 空间不足:使用动态评价模型替换
        • 无脏数据
        • 有脏数据:写回
  • entry-level
    • 使用cf-clean
    • entry对应的页也在内存中:同时清理
    • 属于同一页的脏entry一起协会、
  • CF-LRU:干净的entry比更优先替换,脏entry被保留更久

4.3 Seperating large and small I/O requests

4.4. A weighting access cost measurement model

  • 独立请求

$$
Co𝑠𝑡t = {W_w\Sigma^1{k=0}W_k+W_r\Sigma^n_{k=0}R_k \over N}
$$

cost_t代表时间间隔t内的cost

W_w、W_r代表读写权重n是一个页内的entry数W_k和R_k代表当前页的第k个entry

4.5. Reinforcement learning-driven cache replacement

  • 低cost的页被优先替换

  • 使用强化学习来决定写和读相对权重

  • Q-learning 专注于长期最优解

  • 性能和额外开销的平衡

  • 强化学习的实现

    • agent与cahe flash和io请求交互
    • cache等构成env
    • actions为cost的比率w 实数且一位小数 而非直接将替换行为作为action
    • w∈[1,13)
      • w<1: r比w开销大
    • State被定义为基于eq1计算的开销
    • 权重w由强化学习实时调整

    由于数据量会变得很大 在一定时间间隔后将命中/未命中数据一分为二