2011-03-06 53 views
0

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代碼...

+1

這實際上是一個常見的小姐報價。 – 2011-03-06 06:14:25

+0

最低組件成本的複雜性以每年大約兩倍的速度增長......當然,在短期內,如果不增加,預計這個速度會繼續下去。從長遠來看,增長率有點不確定,儘管沒有理由相信至少在10年內不會保持穩定。這意味着到1975年,每個集成電路的最小成本元件數量將達到65,000個。我相信這樣一個大電路可以建在一個晶圓上。 2011-03-06 06:22:29

+0

@Martin你應該繼續閱讀。 1975年,摩爾每兩年將其投影改爲雙晶體管:「最明顯的是,1975年,摩爾每兩年將其投影改變了一倍。」 – 2011-03-06 09:09:41

回答

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; 
} 
-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)); 
+1

'float n =(year - 1998)/ 2;'評估爲4,而不是4.5? – Ori 2011-03-06 06:57:25

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; 
}