# Hierarchical_Cache **Repository Path**: zhangxiao2000/hierarchical_cache ## Basic Information - **Project Name**: Hierarchical_Cache - **Description**: Python语言做的一个异构多层缓存的仿真器,用于缓存算法和分级存储系统的研究。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-17 - **Last Updated**: 2020-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 关于本软件: 多层异构存储系统仿真程序从架构上可划分为四个主要模块,首先是预处理模块,包括对Trace进行处理与初始化,删除Trace文件中的无用信息,摘取其中的关键信息,并利用这些关键信息通过模拟系统来进行模拟。预处理模块还包括对介质配置参数的设置,例如介质容量、读写带宽的配置。其次是存储系统仿真模块,该部分是模拟器最主要的模块,包括不同介质的仿真策略,例如缓存策略以及分级策略等。组件的仿真通过划分不同组件,包括NVM、SSD、HDD、内存等,通过不同参数信息区分不同组件。缓存策略的主要目的是通过将高访问频率的数据调入内存来提高读写速率。分级存储策略对数据进行冷热区分,对于热数据可以放置在更高层次的存储设备中,使得介质间负载达到均衡。第三部分为时序仿真模块,主要是将Trace变成时间序列,然后利用时间序列模型进行预测。其主要功能就是根据现有的文件访问记录去预测在某一个时间点或者时间段内可能被访问的文件,通过预测信息,事先将可能被访问的文件调入到上一级介质。最后为统计模块,记录前面模块的统计量,给出可视化的显示,相关统计量包括文件读写次数,读写命中次数,读写缺失次数等。 环境要求: Ubuntu 18.04系统Python 3.6环境 运行方法: 首先创建Profiler对象并传入所需基本参数,如访问序列与缓存大小。 通过已创建的Profile对象的open方法打开指定访问序列,若未指定则打开初始化该对象时设定的文件。 通过profile方法传入缓存方法名,进行对之前指定访问序列的模拟运行,同时将运行结果输出至屏幕。 通过plot方法绘制缓存命中率曲线图。 扩展方法: