亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? io.c.svn-base

?? 模擬多核狀態下龍芯處理器的功能
?? SVN-BASE
?? 第 1 頁 / 共 3 頁
字號:
/*------------------------------------------------------------
 *                              CACTI 4.0
 *         Copyright 2005 Hewlett-Packard Development Corporation
 *                         All Rights Reserved
 *
 * Permission to use, copy, and modify this software and its documentation is
 * hereby granted only under the following terms and conditions.  Both the
 * above copyright notice and this permission notice must appear in all copies
 * of the software, derivative works or modified versions, and any portions
 * thereof, and both notices must appear in supporting documentation.
 *
 * Users of this software agree to the terms and conditions set forth herein, and
 * hereby grant back to Hewlett-Packard Company and its affiliated companies ("HP")
 * a non-exclusive, unrestricted, royalty-free right and license under any changes, 
 * enhancements or extensions  made to the core functions of the software, including 
 * but not limited to those affording compatibility with other hardware or software
 * environments, but excluding applications which incorporate this software.
 * Users further agree to use their best efforts to return to HP any such changes,
 * enhancements or extensions that they make and inform HP of noteworthy uses of
 * this software.  Correspondence should be provided to HP at:
 *
 *                       Director of Intellectual Property Licensing
 *                       Office of Strategy and Technology
 *                       Hewlett-Packard Company
 *                       1501 Page Mill Road
 *                       Palo Alto, California  94304
 *
 * This software may be distributed (but not offered for sale or transferred
 * for compensation) to third parties, provided such third parties agree to
 * abide by the terms and conditions of this notice.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND HP DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL HP 
 * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 *------------------------------------------------------------*/

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "areadef.h"
#include "basic_circuit.h"
#include "leakage.h"
#include "time.h"

#define NEXTINT(a) skip(); scanf("%d",&(a));
#define NEXTFLOAT(a) skip(); scanf("%lf",&(a));
						
/*---------------------------------------------------------------*/

//v4.1: No longer using calculate_area function as area has already been
//computed for the given tech node
//extern double calculate_area(area_type,double);


int input_data(int argc,char *argv[])
{
   int C,B,A,ERP,EWP,RWP,NSER, NSubbanks, fully_assoc;
   double tech;
   double logbanks, assoc;
   double logbanksfloor, assocfloor;
   int bits_output = 64;

   /*if ((argc!=6) && (argc!=9)) {
      printf("Cmd-line parameters: C B A TECH NSubbanks\n");
      printf("                 OR: C B A TECH RWP ERP EWP NSubbanks\n");
      exit(0);
   }*/

   if ((argc!=6) && (argc!=9)&& (argc!=15)) {
      printf("Cmd-line parameters: C B A TECH NSubbanks\n");
      printf("                 OR: C B A TECH RWP ERP EWP NSubbanks\n");
      exit(1);
   }

   B = atoi(argv[2]);
   if ((B < 1)) {
       printf("Block size must >=1\n");
       exit(1);
   }

    if (argc==9)
     {
		if ((B*8 < bits_output)) {
			printf("Block size must be at least %d\n", bits_output/8);
			exit(1);
		}
 
		tech = atof(argv[4]);
		if ((tech <= 0)) {
			printf("Feature size must be > 0\n");
			exit(1);
		 }
		if ((tech > 0.8)) {
			printf("Feature size must be <= 0.80 (um)\n");
			 exit(1);
		 }

       RWP = atoi(argv[5]);
       ERP = atoi(argv[6]);
       EWP = atoi(argv[7]);
       NSER = 0;

       if ((RWP < 0) || (EWP < 0) || (ERP < 0)) {
		 printf("Ports must >=0\n");
		 exit(1);
       }
       if (RWP > 2) {
		 printf("Maximum of 2 read/write ports\n");
		 exit(1);
       }
       if ((RWP+ERP+EWP) < 1) {
       	 printf("Must have at least one port\n");
       	 exit(1);
       }

       NSubbanks = atoi(argv[8]);

       if (NSubbanks < 1 ) {
         printf("Number of subbanks should be greater than or equal to 1 and should be a power of 2\n");
         exit(1);
       }

       logbanks = logtwo((double)(NSubbanks));
       logbanksfloor = floor(logbanks);
      
       if(logbanks > logbanksfloor){
         printf("Number of subbanks should be greater than or equal to 1 and should be a power of 2\n");
         exit(1);
       }

     }
   
   else if(argc==6)
     {

		if ((B*8 < bits_output)) {
			printf("Block size must be at least %d\n", bits_output/8);
			exit(1);
		}
 
		tech = atof(argv[4]);
		if ((tech <= 0)) {
			printf("Feature size must be > 0\n");
			exit(1);
		 }

		if ((tech > 0.8)) {
			printf("Feature size must be <= 0.80 (um)\n");
			exit(1);
		 }

       RWP=1;
       ERP=0;
       EWP=0;
       NSER=0;

       NSubbanks = atoi(argv[5]);
       if (NSubbanks < 1 ) {
         printf("Number of subbanks should be greater than or equal to 1 and should be a power of 2\n");
         exit(1); 
       }
       logbanks = logtwo((double)(NSubbanks));
       logbanksfloor = floor(logbanks);

       if(logbanks > logbanksfloor){
         printf("Number of subbanks should be greater than or equal to 1 and should be a power of 2\n");
         exit(1);
       }

     }
	 else 
     {
       tech = atof(argv[9]);
	   NSubbanks = atoi(argv[8]);
	   if ((tech <= 0)) {
			printf("Feature size must be > 0\n");
			exit(1);
		 }

	   if ((tech > 0.8)) {
			printf("Feature size must be <= 0.80 (um)\n");
			exit(1);
		}
     }

   C = atoi(argv[1])/((int) (NSubbanks));
   if (atoi(argv[1]) < 64) {
       printf("Cache size must be greater than 32!\n");
       exit(1);
   }
 
   if ((strcmp(argv[3],"FA") == 0) || (argv[3][0] == '0'))
     {
       A=C/B;
       fully_assoc = 1;
     }
   else
     {
       if (strcmp(argv[3],"DM") == 0)
         {
           A=1;
           fully_assoc = 0;
         }
       else
         {
           fully_assoc = 0;
           A = atoi(argv[3]);
		   if ((A < 0)||(A > 16)) {
             printf("Associativity must be  1,2,4,8,16 or 0(fully associative)\n");
             exit(1);
           }
           assoc = logtwo((double)(A));
           assocfloor = floor(assoc);

           if(assoc > assocfloor){
             printf("Associativity should be a power of 2\n");
             exit(1);
           }

           }
     }

   if (!fully_assoc && C/(B*A) < 1) {
     printf("Number of sets is less than 1:\n  Need to either increase cache size, or decrease associativity or block size\n  (or use fully associative cache)\n");
       exit(1);
   }
 
   return(OK);
}

void output_time_components(result_type *result,parameter_type *parameters)
{
int A;
       printf(" address routing delay (ns): %g\n",result->subbank_address_routing_delay/1e-9);
       //printf(" address routing power (nJ): %g\n",result->subbank_address_routing_power*1e9);
 
  A=parameters->tag_associativity;
   if (!parameters->fully_assoc)
     {
       printf(" decode_data (ns): %g\n",result->decoder_delay_data/1e-9);
       printf("     dyn. energy (nJ): %g\n",result->decoder_power_data.readOp.dynamic*1e9);
	   printf("     leak. power (mW): %g\n",result->decoder_power_data.readOp.leakage*1e3);
     }
   else
     {
       printf(" tag_comparison (ns): %g\n",result->decoder_delay_data/1e-9);
       printf("     dyn. energy (nJ): %g\n",result->decoder_power_data.readOp.dynamic*1e9);
	   printf("     leak. power (mW): %g\n",result->decoder_power_data.readOp.leakage*1e3);
     }
   printf(" wordline and bitline data (ns): %g\n",(result->wordline_delay_data+result->bitline_delay_data)/1e-9);
   printf("  dyn. wordline energy (nJ): %g\n",(result->wordline_power_data.readOp.dynamic)*1e9);
   printf("  leak. wordline power (mW): %g\n",(result->wordline_power_data.readOp.leakage)*1e3);
   printf("  dyn. read data bitline energy (nJ): %g\n",(result->bitline_power_data.readOp.dynamic)*1e9);
   printf("  dyn. write data bitline energy (nJ): %g\n",(result->bitline_power_data.writeOp.dynamic)*1e9);
   printf("  leak. data bitline power (mW): %g\n",(result->bitline_power_data.writeOp.leakage)*1e3);

   printf(" sense_amp_data (ns): %g\n",result->sense_amp_delay_data/1e-9);
   printf("     dyn. energy (nJ): %g\n",result->sense_amp_power_data.readOp.dynamic*1e9);
   printf("     leak. power (mW): %g\n",result->sense_amp_power_data.readOp.leakage*1e3);
   if (!parameters->fully_assoc)
     {
       printf(" decode_tag (ns): %g\n",result->decoder_delay_tag/1e-9);
       printf("     dyn. energy (nJ): %g\n",result->decoder_power_tag.readOp.dynamic*1e9);
	   printf("     leak. power (mW): %g\n",result->decoder_power_tag.readOp.leakage*1e3);

        printf(" wordline and bitline tag (ns): %g\n",(result->wordline_delay_tag+result->bitline_delay_tag)/1e-9);
		printf("  dyn. wordline energy (nJ): %g\n",(result->wordline_power_tag.readOp.dynamic)*1e9);
		printf("  leak. wordline power (mW): %g\n",(result->wordline_power_tag.readOp.leakage)*1e3);
		printf("  dyn. read data bitline energy (nJ): %g\n",(result->bitline_power_tag.readOp.dynamic)*1e9);
		printf("  dyn. write data bitline energy (nJ): %g\n",(result->bitline_power_tag.writeOp.dynamic)*1e9);
		printf("  leak. data bitline power (mW): %g\n",(result->bitline_power_tag.writeOp.leakage)*1e3);

       printf(" sense_amp_tag (ns): %g\n",result->sense_amp_delay_tag/1e-9);
       printf("  dyn. read energy (nJ): %g\n",result->sense_amp_power_tag.readOp.dynamic*1e9);
	   printf("  leak. read power (mW): %g\n",result->sense_amp_power_tag.readOp.leakage*1e3);
       printf(" compare (ns): %g\n",result->compare_part_delay/1e-9);
       printf("  dyn. read energy (nJ): %g\n",result->compare_part_power.readOp.dynamic*1e9);
	   printf("  leak. read power (mW): %g\n",result->compare_part_power.readOp.leakage*1e3);
       if (A == 1)
         {
           printf(" valid signal driver (ns): %g\n",result->drive_valid_delay/1e-9);
           printf("     dyn. read energy (nJ): %g\n",result->drive_valid_power.readOp.dynamic*1e9);
		   printf("    leak. read power (mW): %g\n",result->drive_valid_power.readOp.leakage*1e3);
         }
       else {
         printf(" mux driver (ns): %g\n",result->drive_mux_delay/1e-9);
         printf("  dyn. read energy (nJ): %g\n",result->drive_mux_power.readOp.dynamic*1e9);
		 printf("  leak. read power (mW): %g\n",result->drive_mux_power.readOp.leakage*1e3);
         printf(" sel inverter (ns): %g\n",result->selb_delay/1e-9);
         printf("  dyn. read energy (nJ): %g\n",result->selb_power.readOp.dynamic*1e9);
		 printf("  leak. read power (mW): %g\n",result->selb_power.readOp.leakage*1e3);
       }
     }
   printf(" data output driver (ns): %g\n",result->data_output_delay/1e-9);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜在线观看视频在线| 欧美色图12p| 成人不卡免费av| 884aa四虎影成人精品一区| 欧美激情一区在线| 极品美女销魂一区二区三区免费| 色噜噜偷拍精品综合在线| 精品国产99国产精品| 亚洲第一成人在线| 91国产视频在线观看| 午夜电影网一区| 欧美日韩高清一区| 亚洲免费观看视频| 成人午夜大片免费观看| 久久久不卡网国产精品二区| 裸体一区二区三区| 91玉足脚交白嫩脚丫在线播放| 欧美精品一区二区三区在线播放| 国产精品1区二区.| 国产欧美一区二区精品久导航 | 欧美精彩视频一区二区三区| 国产美女精品一区二区三区| 色偷偷成人一区二区三区91 | 久久综合久久鬼色| 亚洲电影第三页| 欧美成人vps| 国产一区二区三区四区五区入口| 欧美国产精品专区| 一本大道久久a久久精二百| 免费精品视频在线| 日韩免费观看高清完整版在线观看| 亚洲sss视频在线视频| 精品久久久久久综合日本欧美| 成人黄色电影在线| 蜜臀久久99精品久久久久宅男| 国产欧美中文在线| 欧美疯狂性受xxxxx喷水图片| 日韩av网站在线观看| 日韩免费视频一区| 91黄色小视频| 东方aⅴ免费观看久久av| 国产精品传媒入口麻豆| 在线欧美日韩精品| 日韩国产成人精品| 自拍偷自拍亚洲精品播放| 在线精品观看国产| 成人激情开心网| 久99久精品视频免费观看| 亚洲午夜久久久久久久久久久| 国产亚洲美州欧州综合国| 成人激情综合网站| 国产综合成人久久大片91| 国产精品久久久久永久免费观看| 日韩一区二区电影| 国产成人a级片| 亚洲在线中文字幕| 欧美成人官网二区| 在线综合亚洲欧美在线视频| 91日韩精品一区| 福利91精品一区二区三区| 久久99热这里只有精品| 亚洲3atv精品一区二区三区| 亚洲天堂精品在线观看| 欧美国产精品专区| 中文一区一区三区高中清不卡| 精品国产免费一区二区三区香蕉| 欧美区一区二区三区| 精品视频123区在线观看| 99热在这里有精品免费| 五月天一区二区| 午夜视频在线观看一区| 亚洲福利视频一区二区| 亚洲一区二区视频| 亚洲一区二区三区视频在线播放| 一区二区三区中文在线观看| 精品精品国产高清一毛片一天堂| 777xxx欧美| 日韩一区二区三区免费看 | 欧美喷水一区二区| 91精品一区二区三区久久久久久 | 一区二区三区色| 一区二区在线观看不卡| 久久这里只有精品视频网| 精品国产一区二区在线观看| 精品国产99国产精品| 国产调教视频一区| 国产精品三级久久久久三级| 欧美一二三区精品| 精品黑人一区二区三区久久| 久久久精品tv| 17c精品麻豆一区二区免费| 精品久久久久久无| 国产色综合久久| 中文字幕一区二区三区不卡在线| 亚洲欧美另类综合偷拍| 久色婷婷小香蕉久久| 精品一区二区三区影院在线午夜 | 亚洲妇熟xx妇色黄| 日本欧美一区二区三区乱码| 韩国一区二区视频| 粉嫩aⅴ一区二区三区四区| 成人aa视频在线观看| 91成人免费网站| 日韩小视频在线观看专区| 日韩美女视频一区二区在线观看| 久久久99久久| 亚洲精品欧美二区三区中文字幕| 午夜av一区二区三区| 精东粉嫩av免费一区二区三区| 处破女av一区二区| 欧美日韩国产综合一区二区| 精品日韩99亚洲| 国产精品人妖ts系列视频| 亚洲高清视频中文字幕| 国产精品99久| 欧美日韩视频在线一区二区| 欧美成人一级视频| 亚洲欧洲日韩在线| 日韩—二三区免费观看av| av一区二区三区在线| 6080国产精品一区二区| 日本一区二区三级电影在线观看| 亚洲高清一区二区三区| 国产成人av网站| 制服丝袜中文字幕一区| 日韩一区在线看| 精品一区二区三区视频在线观看 | 日韩一区二区三区四区五区六区| 国产精品久久久一本精品| 美女视频网站久久| 色999日韩国产欧美一区二区| 精品国产免费一区二区三区香蕉| 亚洲综合在线第一页| 国产一区二区在线影院| 欧美卡1卡2卡| 亚洲理论在线观看| 成人小视频免费在线观看| 3d成人h动漫网站入口| 国产精品色眯眯| 国产一区二区美女诱惑| 欧美男女性生活在线直播观看| 中文字幕中文字幕一区| 蜜桃视频一区二区三区 | 99久久精品国产毛片| 国产精品123| 日韩欧美在线123| 一区二区三区欧美亚洲| 99视频精品在线| 中文字幕免费不卡在线| 麻豆精品一区二区av白丝在线| 欧美日韩久久一区二区| 夜夜嗨av一区二区三区四季av| 成人动漫中文字幕| 国产午夜精品福利| 精品制服美女丁香| 日韩一区二区三区免费看| 日韩福利视频网| 在线播放视频一区| 五月天国产精品| 欧美一区在线视频| 国产精品久久久久影院| 国产高清精品在线| 337p日本欧洲亚洲大胆精品| 麻豆精品新av中文字幕| 欧美不卡一二三| 精品无码三级在线观看视频| 精品国产免费视频| 国产精品一卡二卡| 欧美国产成人精品| 成人激情开心网| 亚洲精品写真福利| 欧美三区在线视频| 青娱乐精品在线视频| 精品少妇一区二区| 精彩视频一区二区| 欧美激情一区不卡| 一本色道a无线码一区v| 亚洲国产精品一区二区久久 | 色综合天天狠狠| 曰韩精品一区二区| 69av一区二区三区| 激情亚洲综合在线| 国产精品黄色在线观看| 色88888久久久久久影院按摩 | 免费成人美女在线观看| 欧美电影免费观看高清完整版| 激情综合网最新| 中文字幕高清不卡| 日本精品视频一区二区三区| 亚洲国产日韩综合久久精品| 91麻豆精品国产91久久久使用方法| 美脚の诱脚舐め脚责91 | 欧美日韩国产电影| 久久99精品视频| 亚洲欧洲精品一区二区三区 | 国产精品一二三四| 亚洲欧洲在线观看av| 欧美猛男gaygay网站| 国产精品1区二区.| 亚洲一区二区五区|