misc02 harnessing moore
Harnessing Moore’s Law
(with Selected Implications)
Mark D. Hill
Computer Sciences Department
University of Wisconsin-Madison
http://www.cs.wisc.edu/~markhill
This talk is based, in part, on an essay I wrote as part of
a National Academy of Sciences study panel.
© 2003 Mark D. Hill
CS & ECE, University of Wisconsin-Madison
Motivation
• What the do the following intervals have in common?
– Prehistory-2003
– 2004-2005
• Answer: Equal progress in absolute computer speed
• Furthermore, more doublings in 2006-07, 2008-09, …
• Questions
– Why do computers get better and cheaper?
– How do computer architects contribute (my bias)?
– How to learn to project future trends and implications?
© 2003 Mark D. Hill
CS & ECE, University of Wisconsin-Madison
Outline
• Computer Primer
– Software
– Hardware
• Technology Primer
• Harnessing Moore’s Law
• Future Trends
© 2003 Mark D. Hill
CS & ECE, University of Wisconsin-Madison
Computer Primer: Software
Application programmers write software:
int main (int argc, char *argv[])
{
int i;
int sum = 0;
for (i = 0; i
(with Selected Implications)
Mark D. Hill
Computer Sciences Department
University of Wisconsin-Madison
http://www.cs.wisc.edu/~markhill
This talk is based, in part, on an essay I wrote as part of
a National Academy of Sciences study panel.
© 2003 Mark D. Hill
CS & ECE, University of Wisconsin-Madison
Motivation
• What the do the following intervals have in common?
– Prehistory-2003
– 2004-2005
• Answer: Equal progress in absolute computer speed
• Furthermore, more doublings in 2006-07, 2008-09, …
• Questions
– Why do computers get better and cheaper?
– How do computer architects contribute (my bias)?
– How to learn to project future trends and implications?
© 2003 Mark D. Hill
CS & ECE, University of Wisconsin-Madison
Outline
• Computer Primer
– Software
– Hardware
• Technology Primer
• Harnessing Moore’s Law
• Future Trends
© 2003 Mark D. Hill
CS & ECE, University of Wisconsin-Madison
Computer Primer: Software
Application programmers write software:
int main (int argc, char *argv[])
{
int i;
int sum = 0;
for (i = 0; i