亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
色久综合一二码| 精品国产伦一区二区三区免费| 欧美视频一区二区三区在线观看| 日韩免费看的电影| 亚洲午夜免费视频| 国产很黄免费观看久久| 欧美一级日韩一级| 亚洲一区二区三区四区五区黄| 久久国产福利国产秒拍| 欧美日韩综合一区| 亚洲视频在线一区观看| 国产一区二区导航在线播放| 欧美日韩国产综合久久| 亚洲视频一区二区在线观看| 国产综合一区二区| 91精品国产综合久久精品性色 | 国产亚洲视频系列| 轻轻草成人在线| 欧美在线综合视频| 亚洲人精品一区| 福利视频网站一区二区三区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 色综合久久66| 国产精品久久久久久久久图文区| 国产在线观看免费一区| 欧美一区二区美女| 婷婷中文字幕综合| 在线电影国产精品| 天天av天天翘天天综合网色鬼国产 | 国产人久久人人人人爽| 精品一区二区在线看| 日韩一区二区三区四区| 午夜天堂影视香蕉久久| 欧美久久一区二区| 日韩**一区毛片| 91精品国产综合久久久蜜臀图片| 视频一区中文字幕国产| 欧美福利一区二区| 老色鬼精品视频在线观看播放| 欧美美女一区二区在线观看| 亚洲国产精品久久久久婷婷884 | 亚洲国产精品麻豆| 欧美裸体一区二区三区| 三级一区在线视频先锋| 日韩一级完整毛片| 久久99久久99小草精品免视看| 精品黑人一区二区三区久久| 国产乱码精品一区二区三区五月婷| 精品捆绑美女sm三区| 国产精品中文字幕一区二区三区| 国产人久久人人人人爽| 成人18精品视频| 亚洲第一狼人社区| 欧美一级黄色大片| 成人午夜激情在线| 玉米视频成人免费看| 欧美日韩国产精选| 经典三级在线一区| 中文字幕不卡三区| 欧美午夜片在线看| 国内偷窥港台综合视频在线播放| 久久精品网站免费观看| 色综合天天天天做夜夜夜夜做| 亚洲va欧美va人人爽| 精品成人佐山爱一区二区| 成人黄色综合网站| 日本在线不卡视频一二三区| 欧美极品aⅴ影院| 欧美体内she精高潮| 国产在线一区二区| 亚洲狼人国产精品| 日韩欧美一区二区免费| 成人一道本在线| 热久久久久久久| 中文字幕综合网| 欧美一区二区播放| 91在线视频播放| 久久国产三级精品| 一区二区三区视频在线看| 精品免费视频一区二区| 91女神在线视频| 精品一区二区三区免费播放| 亚洲精品视频在线观看免费| 国产精品福利一区| 日韩欧美激情四射| 在线精品亚洲一区二区不卡| 久久精品在线观看| 色综合天天综合狠狠| 伦理电影国产精品| 亚洲成人综合网站| 亚洲欧洲制服丝袜| 国产视频在线观看一区二区三区| 国产精品成人一区二区艾草| 99久久精品免费| 韩国三级电影一区二区| 性做久久久久久| 亚洲猫色日本管| 久久精品亚洲一区二区三区浴池 | 9191久久久久久久久久久| 懂色av一区二区三区蜜臀| 日日夜夜精品视频免费| 国产精品久久久久影院老司| 日韩欧美中文字幕精品| 欧美午夜免费电影| 日本高清不卡aⅴ免费网站| 懂色一区二区三区免费观看| 国产毛片精品视频| 狠狠色综合色综合网络| 日韩精品91亚洲二区在线观看| 洋洋成人永久网站入口| 亚洲视频狠狠干| 亚洲欧美日韩国产综合| 中文字幕一区视频| 国产欧美综合色| 国产三级欧美三级日产三级99| 日韩精品在线一区| 久久伊99综合婷婷久久伊| 日韩精品一区二区三区老鸭窝| 91精品久久久久久蜜臀| 欧美一区二区三区电影| 日韩一区二区三区四区五区六区| 欧美一级黄色大片| 欧美精品一区二区三区视频| 精品国产乱码久久久久久浪潮| 日韩欧美亚洲国产另类| 欧美mv日韩mv国产网站app| 日韩丝袜美女视频| 久久先锋影音av鲁色资源| 久久综合一区二区| 中文字幕免费在线观看视频一区| 亚洲国产精品精华液ab| 亚洲日本乱码在线观看| 伊人色综合久久天天| 亚洲777理论| 久久精品国产澳门| 成人在线视频一区二区| 色综合久久99| 欧美日本一区二区三区| 日韩欧美自拍偷拍| 欧美韩国一区二区| 一区二区三区.www| 日韩精品亚洲一区二区三区免费| 看电影不卡的网站| 成人福利视频在线看| 在线观看日韩国产| 欧美刺激午夜性久久久久久久| 久久精品夜夜夜夜久久| 伊人性伊人情综合网| 精品影视av免费| 色中色一区二区| 精品少妇一区二区三区免费观看| 欧美国产一区二区| 亚洲va国产天堂va久久en| 国产资源在线一区| 欧美一a一片一级一片| 精品国产乱码久久久久久闺蜜| 中文字幕日本乱码精品影院| 午夜精品免费在线观看| 国产成人综合视频| 在线不卡免费av| 国产精品国产三级国产专播品爱网| 香蕉乱码成人久久天堂爱免费| 国产**成人网毛片九色 | 亚洲精品第一国产综合野| 奇米影视在线99精品| 91在线观看地址| 精品国产精品一区二区夜夜嗨| 亚洲女与黑人做爰| 国产一区二区三区四区在线观看| 在线欧美日韩国产| 国产日本一区二区| 久久电影网站中文字幕| 欧美三区在线观看| 国产精品久久久久影院亚瑟| 激情综合色播五月| 欧美日韩一区不卡| 亚洲天堂福利av| 成人免费福利片| 久久精品视频一区二区| 日韩国产欧美三级| 在线看一区二区| 中文字幕亚洲区| 成人精品高清在线| 久久精子c满五个校花| 蜜桃久久久久久久| 欧美久久久久久蜜桃| 一区二区三区高清不卡| 91社区在线播放| 中文字幕一区在线| 成人av高清在线| 国产精品久久久久国产精品日日| 激情综合色综合久久| 日韩免费高清av| 日本亚洲视频在线| 欧美日韩成人综合在线一区二区| 国产精品久久毛片| 99久久er热在这里只有精品66| 欧美国产禁国产网站cc| 国产乱码精品一区二区三区忘忧草| 亚洲精品在线三区|