自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JewelCCL的博客

天道酬勤,人道酬真,我道酬麗

  • 博客(17)
  • 收藏
  • 关注

转载 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 1768

原创 python多重赋值的一个小问题

今天无意中发现在python中的一个多重赋值的小问题,自己一开始是比较简单化的理解了这个多重赋值操作的概念,所以导致在一道实现斐波那契数列的代码中,发现了自己的问题,顺便记录下吧,当作是学习总结。首先是python的多重赋值操作,先用一个直观的代码来看:a,b = 0,1 上述就是一个最简单的多重赋值操作,这个赋值操作的作用是将赋值操作 = 右侧的对象逐一赋给左侧的对象,所以这个操

2018-01-28 16:34:45 830 1

转载 (转)简明 VIM 练级攻略

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类

2018-01-28 15:11:33 234

原创 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 1558 4

原创 SSDsim源码分析之Buffer_management()

Buffer_management()也就是缓存管理函数,这个是核心函数模块之一,其主要模拟数据缓存层cache的功能。但是在SSDsim中,所谓的缓存其实主要就是一个写buffer,主要优先为写操作服务,当写请求命中时,会直接在buffer中进行一个更新;未命中时,首先根据缓存的空闲容量情况,写请求会分布成多个子请求写入缓存中。当缓存容量不足时,则先会从LRU队列中写回缓存队列中的数据,以便腾出空

2017-01-26 15:03:34 1955

原创 SSDsim源码分析之find_nearest_event()

SSDsim源码分析之find_nearest_event()在介绍find_nearest_event()函数之前,我们很有必要了解下关于SSDsim的一些必要的模拟驱动原理:SSDsim模拟驱动原理SSDsim可以提供对时间和能耗的模拟。而首先我们先介绍下时间模拟部分的基本原理和依据;通常大多数模拟器的驱动方式分为三种类型:即时间驱动,事件驱动和请求驱动。采用时间驱动方式的模拟器需要先设置一个固

2016-11-20 19:21:34 1558

原创 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 1522

原创 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 1873

原创 嵌入式ARM裸板程序——存储管理器驱动

本博文是根据百问网韦东山老师的嵌入式视频教程,基于jz2440进行嵌入式开发学习所记录的学习体会,如有雷同纯属巧合。存储管理器ARM的存储管理器,其实是一个存储控制器的作用。通过前面的学习我们可以了解到,在2440开发板上,单板一上电开机,开发板会自动地从flash中拷贝4K字节的数据(无论有没有)到片内内存SRAM中然后程序指针PC会从0地址开始执行指令。所以,我们如果在单板上想运行裸板程序,那么

2016-10-06 12:30:10 1632

原创 嵌入式ARM裸板程序——GPIO

本博文是根据百问网韦东山老师的嵌入式视频教程,基于jz2440进行嵌入式开发学习所记录的学习体会,如有雷同纯属巧合。GPIO首先是第一个裸板程序GPIO,由于视频教程实在足够详细,因此我们直接先看程序源码理解好一些重要的过程原理:@******************************************************************************@ File

2016-10-05 23:48:54 2052

原创 SSDsim源码分析之pre_process_page

pre_process_page() 从本篇博文开始,我们将会对SSDsim中最核心的部分进行详细的分析和注解,SSDsim仿真器最核心的部分在于三大函数: **pre_preocess_page()页读请求预处理函数** **simmulate()核心模拟函数** **statistic_output()统计输出信息函数** 其中最为重要和庞大的函数当属simmu

2016-10-05 15:37:23 4309

原创 C语言学习总结(二)

关于函数参数表中的数组的一些问题,主要有:(1)作为函数参数传递值的时候,普通变量传递的是值,指针变量传递的是地址的值,而数组作为一个参数传递时其实是传递了该数组的地址(也就是头元素的首地址),所以其实不是将整个数组传递到函数中的,相反,仅仅传递了首元素地址;(2)作为数组的概念,本身其实就是相当于指针,也就是说a[n]相当于在内存中开辟了一段连续的内存空间,首地址的指针*a就是指向了第一个元素a[

2016-10-03 23:55:08 565

原创 SSDsim源码分析之make_aged

SSDsim是一个针对SSD进行模拟仿真的软件系统,所以针对已经使用过的SSD也需要进行一定程度的模拟,因为SSD存在着磨损耐性的问题。在SSD上存储的数据,除了无法进行覆盖写操作之外,其擦除数据的操作也是对块级block为单位进行整块擦除的,因此每一个block都会有一个对应的擦除上限。一旦该block的擦除次数达到了earse_limit,则该block便无法像正常的block一样能够保证数据的

2016-10-03 23:18:46 1723 4

原创 SSDsim源码分析之 load_parameters

这篇博文将继续分析SSDsim的初始化过程,主要的分析对象函数是这个load_parameters()函数,接下来让我们分析下这个函数的主要框架以及给出相应的源码注释。load_parameters()函数的主要功能 load_parameters函数的主要功能是负责将参数文件parameter中的SSD相关设置参数一一传输至ssd->parameters这个结构体定义中。其中,load_p

2016-10-03 22:29:24 1736 1

原创 SSDsim源码分析之initiation

SSDsim之initiation本文继续介绍SSDsim中有关的代码解析和注解: SSDsim之initiation initiation函数的主要功能initiation函数的调用关系图initiation函数的控制流图源代码和相关注解initiation()函数的主要功能initiation函数的调用关系图initiation函数的控制流图源代码和相关注解initiation

2016-10-02 14:17:48 2842 5

原创 C语言学习总结(一)

定义和声明的区别这个通常是一个常见的但是又容易忽略的问题,需要好好正视一下到底什么才是变量的声明?什么才是变量的定义?以及它们彼此之间的区别?怎么分辨?让我们先来看看一个例子:uint i;uint j = 0;extern uint i;在这个例子里面,哪个是定义?哪个是声明?定义又分什么情况?在内存中有什么表现?首先理解下定义:定义就是由编译器负责创建一个对象并且为这个对象分配一块内存

2016-06-01 23:24:18 1067

原创 SSDsim源码分析之main

由于研究论文的选题定在了ssd的能耗存储优化上,所以就顺便写一些博客文章,主要的先介绍一下ssdsim这个开源工具的一些内容以及基本的知识:SSDsim介绍SSD基本概念介绍主体功能main函数解析后续总结SSDsim介绍 SSDsim是一款固态硬盘的模拟仿真软件,它提供了一系列强大的前期功能验证手段并且可以较为准确地对真实SSD固态硬盘嵌入式硬件设备进行一个仿真模拟,所以可以有效地模

2016-06-01 12:17:18 7422 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除