1 Star 0 Fork 1

wjh731/disksim_original

forked from 颜明博/disksim_original 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
disksim_main.c 4.23 KB
一键复制 编辑 原始数据 按行查看 历史
颜明博 提交于 2018-09-29 10:04 . bug1
/*
* DiskSim Storage Subsystem Simulation Environment (Version 3.0)
* Revision Authors: John Bucy, Greg Ganger
* Contributors: John Griffin, Jiri Schindler, Steve Schlosser
*
* Copyright (c) of Carnegie Mellon University, 2001, 2002, 2003.
*
* This software is being provided by the copyright holders under the
* following license. By obtaining, using and/or copying this software,
* you agree that you have read, understood, and will comply with the
* following terms and conditions:
*
* Permission to reproduce, use, and prepare derivative works of this
* software is granted provided the copyright and "No Warranty" statements
* are included with all reproductions and derivative works and associated
* documentation. This software may also be redistributed without charge
* provided that the copyright and "No Warranty" statements are included
* in all redistributions.
*
* NO WARRANTY. THIS SOFTWARE IS FURNISHED ON AN "AS IS" BASIS.
* CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER
* EXPRESSED OR IMPLIED AS TO THE MATTER INCLUDING, BUT NOT LIMITED
* TO: WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY
* OF RESULTS OR RESULTS OBTAINED FROM USE OF THIS SOFTWARE. CARNEGIE
* MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT
* TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
* COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE
* OR DOCUMENTATION.
*
*/
/*
* DiskSim Storage Subsystem Simulation Environment (Version 2.0)
* Revision Authors: Greg Ganger
* Contributors: Ross Cohen, John Griffin, Steve Schlosser
*
* Copyright (c) of Carnegie Mellon University, 1999.
*
* Permission to reproduce, use, and prepare derivative works of
* this software for internal use is granted provided the copyright
* and "No Warranty" statements are included with all reproductions
* and derivative works. This software may also be redistributed
* without charge provided that the copyright and "No Warranty"
* statements are included in all redistributions.
*
* NO WARRANTY. THIS SOFTWARE IS FURNISHED ON AN "AS IS" BASIS.
* CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER
* EXPRESSED OR IMPLIED AS TO THE MATTER INCLUDING, BUT NOT LIMITED
* TO: WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY
* OF RESULTS OR RESULTS OBTAINED FROM USE OF THIS SOFTWARE. CARNEGIE
* MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT
* TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
*/
#include "disksim_global.h"
//flshsim
#include "ssd_interface.h"
void warmFlashsynth(){
memset(dm_table, -1, sizeof(int) * DM_MGR_SIZE);
nand_stat_reset();
reset_flash_stat();
if(ftl_type == 3){
opagemap_reset();
}
else if(ftl_type == 4)
{
write_count = 0;
read_count = 0;
}
}
void warmFlash(char *tname){
FILE *fp = fopen(tname, "r");
char buffer[80];
double time;
int devno, bcount, flags;
long int blkno;
double delay;
int i;
while(fgets(buffer, sizeof(buffer), fp)){
sscanf(buffer, "%lf %d %d %d %d\n", &time, &devno, &blkno, &bcount, &flags);
bcount = ((blkno + bcount -1) / 4 - (blkno)/4 + 1) * 4;
blkno /= 4;
blkno *= 4;
delay = callFsim(blkno, bcount, 0);
for(i = blkno; i<(blkno+bcount); i++){ dm_table[i] = DEV_FLASH; }
}
nand_stat_reset();
if(ftl_type == 3) opagemap_reset();
else if(ftl_type == 4) {
write_count = 0; read_count = 0; }
fclose(fp);
}
int main (int argc, char **argv)
{
int i;
int len;
void *addr;
void *newaddr;
if(argc == 2) {
disksim_restore_from_checkpoint (argv[1]);
}
else {
len = 8192000 + 2048000 + ALLOCSIZE;
addr = malloc (len);
newaddr = (void *) (rounduptomult ((long)addr, ALLOCSIZE));
len -= ALLOCSIZE;
disksim = disksim_initialize_disksim_structure (newaddr, len);
disksim_setup_disksim (argc, argv);
}
memset(dm_table, -1, sizeof(int)*DM_MGR_SIZE);
if(ftl_type != -1){
initFlash();
reset_flash_stat();
nand_stat_reset();
}
// warmFlashsynth();
warmFlash(argv[4]);
reset_hit_stat();
disksim_run_simulation ();
disksim_cleanup_and_printstats ();
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wjh731/disksim_original.git
git@gitee.com:wjh731/disksim_original.git
wjh731
disksim_original
disksim_original
master

搜索帮助