什么是摩尔定律的估计,这是一个实现这一目标的计划

时间:2011-03-06 06:06:01

标签: java c++ c

1988年,英特尔386 SX微处理器的晶体管数量为275,000个。 1997年Pentium II Intel微处理器的晶体管数量是多少?

如果英特尔每两年将晶体管数量增加一倍,那么新的处理器将具有

Pn = 275,000 * 2^n (where n = 9/2 = 4.5)    
   = 275,000 * 22.63
   = 6.2 million transistors

那么如何使用C,C ++或java代码呢?

3 个答案:

答案 0 :(得分:2)

事实上。摩尔在1975年改变了他的预测,将每隔两年年的晶体管数量增加一倍。

#include <stdio.h>
#include <math.h>

int main () {
    double transistors = 275000;
    double years = 1997-1988;
    printf("%f", transistors*pow(2.0,years/2)); // 6222539.674442
    getch();
    return 0;
}

答案 1 :(得分:0)

在C:

#include <stdio.h>
#include <math.h>

#define BASELINE_CPU_YEAR 1988
#define BASELINE_CPU_TRANSISTORS 275000

/* Estimate transistor count for Intel CPUs for a given year
 * based on Moore's law */
double moores_law(int year) {
        float year_offset = (year - BASELINE_CPU_YEAR) / 2.0;
        return BASELINE_CPU_TRANSISTORS * pow(2, year_offset);
}

int main () {
        int year = 1997;
        printf("Moore's law projects a %d CPU would have %.2f transistors.\n", 
                year, moores_law(year));

        return 0;
}

答案 2 :(得分:-1)

在java或c#中你可以做这样的事情

int year = 2010; //for example

double  P0 = 275000;
float n = ((float)year - 1988) / 2; //1988 -> base year

double Pn = P0 * (Math.Pow(2, n));