开源项目
文章平均质量分 74
JEWELCCL
我给你时间成就编织未来,但是请记住我的时间有限
展开
-
SSDsim源码分析之initiation
SSDsim之initiation本文继续介绍SSDsim中有关的代码解析和注解: SSDsim之initiation initiation函数的主要功能initiation函数的调用关系图initiation函数的控制流图源代码和相关注解initiation()函数的主要功能initiation函数的调用关系图initiation函数的控制流图源代码和相关注解initiation原创 2016-10-02 14:17:48 · 2909 阅读 · 5 评论 -
SSDsim源码分析之creat_sub_request()
Creat_sub_request()函数的功能主要是根据传输参数lpn、size、state和IO请求项req创建一个子请求sub_req。每一个创建出来的sub_req的操作区域都是当前lpn的区域,也就是说,可能存在创建出来的子请求sub_req的size是小于当前的lpn的大小的,但是每一个sub_req的操作目标区域都是在当前lpn所在的区域之中。这个函数可谓在初始化处理IO请求项的过程原创 2017-06-26 13:38:46 · 1599 阅读 · 4 评论 -
SSDsim源码分析之Buffer_management()
Buffer_management()也就是缓存管理函数,这个是核心函数模块之一,其主要模拟数据缓存层cache的功能。但是在SSDsim中,所谓的缓存其实主要就是一个写buffer,主要优先为写操作服务,当写请求命中时,会直接在buffer中进行一个更新;未命中时,首先根据缓存的空闲容量情况,写请求会分布成多个子请求写入缓存中。当缓存容量不足时,则先会从LRU队列中写回缓存队列中的数据,以便腾出空原创 2017-01-26 15:03:34 · 2012 阅读 · 0 评论 -
SSDsim源码分析之find_nearest_event()
SSDsim源码分析之find_nearest_event()在介绍find_nearest_event()函数之前,我们很有必要了解下关于SSDsim的一些必要的模拟驱动原理:SSDsim模拟驱动原理SSDsim可以提供对时间和能耗的模拟。而首先我们先介绍下时间模拟部分的基本原理和依据;通常大多数模拟器的驱动方式分为三种类型:即时间驱动,事件驱动和请求驱动。采用时间驱动方式的模拟器需要先设置一个固原创 2016-11-20 19:21:34 · 1615 阅读 · 0 评论 -
SSDsim源码分析之get_request()
SSDsim源码分析之get_request()本篇博文继续讲述SSDsim的核心模拟原理,这里介绍的get_request()函数主要负责逐条读取tracefile中的IO请求并且将其挂到ssd->request队列上,tracefile是作为IO请求数据的载体;根据固定格式的IO数据,如IO到达系统时间、IO的操作长度和目标扇区等,将这些IO数据进行相应的处理和保存记录工作。下面我们结合源原创 2016-11-19 23:52:56 · 1546 阅读 · 0 评论 -
SSDsim源码分析之pre_process_page
pre_process_page() 从本篇博文开始,我们将会对SSDsim中最核心的部分进行详细的分析和注解,SSDsim仿真器最核心的部分在于三大函数: **pre_preocess_page()页读请求预处理函数** **simmulate()核心模拟函数** **statistic_output()统计输出信息函数** 其中最为重要和庞大的函数当属simmu原创 2016-10-05 15:37:23 · 4342 阅读 · 0 评论 -
SSDsim源码分析之 load_parameters
这篇博文将继续分析SSDsim的初始化过程,主要的分析对象函数是这个load_parameters()函数,接下来让我们分析下这个函数的主要框架以及给出相应的源码注释。load_parameters()函数的主要功能 load_parameters函数的主要功能是负责将参数文件parameter中的SSD相关设置参数一一传输至ssd->parameters这个结构体定义中。其中,load_p原创 2016-10-03 22:29:24 · 1797 阅读 · 1 评论 -
SSDsim源码分析之get_ppn_for_pre_process
get_ppn_for_pre_process()介绍前面我们介绍了SSDsim的读请求预处理函数,其功能就是将IOtrace文件中的所有IO读请求先预先处理,整体上的功能和过程就是为了模拟经过一段IO处理后整个SSD的状态。其中,在pre_process_for_page()函数中,有一个非常重要的调用子函数get_ppn_for_pre_process(),这个函数是在程序判断当前IO原创 2016-10-08 12:23:24 · 1912 阅读 · 0 评论 -
SSDsim源码分析之make_aged
SSDsim是一个针对SSD进行模拟仿真的软件系统,所以针对已经使用过的SSD也需要进行一定程度的模拟,因为SSD存在着磨损耐性的问题。在SSD上存储的数据,除了无法进行覆盖写操作之外,其擦除数据的操作也是对块级block为单位进行整块擦除的,因此每一个block都会有一个对应的擦除上限。一旦该block的擦除次数达到了earse_limit,则该block便无法像正常的block一样能够保证数据的原创 2016-10-03 23:18:46 · 1764 阅读 · 4 评论 -
python(2048源码)
#-*- coding:utf-8 -*-import cursesfrom random import randrange, choice # generate and place new tilefrom collections import defaultdictletter_codes = [ord(ch) for ch in 'WASDRQwasdrq']actions =...转载 2018-03-23 13:35:50 · 1814 阅读 · 0 评论