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代碼...
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代碼...
在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;
}
在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));
'float n =(year - 1998)/ 2;'評估爲4,而不是4.5? – Ori 2011-03-06 06:57:25
確實。摩爾在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;
}
這實際上是一個常見的小姐報價。 – 2011-03-06 06:14:25
2011-03-06 06:22:29
–@Martin你應該繼續閱讀。 1975年,摩爾每兩年將其投影改爲雙晶體管:「最明顯的是,1975年,摩爾每兩年將其投影改變了一倍。」 – 2011-03-06 09:09:41