commit c6a01f8151c325c8f1e6f29cde59efe9f57858aa Author: Karl Rupp Date: Thu Feb 15 06:07:56 2018 +0100 Initialized repository and added 42-year data. diff --git a/40yrs/40-years-processor-trend.eps b/40yrs/40-years-processor-trend.eps new file mode 100644 index 0000000..bffea2f --- /dev/null +++ b/40yrs/40-years-processor-trend.eps @@ -0,0 +1,1315 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: 40-years-processor-trend.eps +%%Creator: gnuplot 5.0 patchlevel 3 +%%CreationDate: Thu Feb 15 06:05:09 2018 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 338 251 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following true/false flags may be edited by hand if desired. +% The unit line width and grayscale image gamma correction may also be changed. +% +/Color true def +/Blacktext false def +/Solid false def +/Dashlength 1 def +/Landscape false def +/Level1 false def +/Level3 false def +/Rounded false def +/ClipToBoundingBox false def +/SuppressPDFMark false def +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/Gamma 1.0 def +/BackgroundColor {-1.000 -1.000 -1.000} def +% +/vshift -46 def +/dl1 { + 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if +} def +/dl2 { + 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul + Rounded { currentlinewidth 0.75 mul add } if +} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/doclip { + ClipToBoundingBox { + newpath 50 50 moveto 338 50 lineto 338 251 lineto 50 251 lineto closepath + clip + } if +} def +% +% Gnuplot Prolog Version 5.1 (Oct 2015) +% +%/SuppressPDFMark true def +% +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/N {newpath moveto} bind def +/Z {closepath} bind def +/C {setrgbcolor} bind def +/f {rlineto fill} bind def +/g {setgray} bind def +/Gshow {show} def % May be redefined later in the file to support UTF-8 +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow {currentpoint stroke M 0 vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def +/BL {stroke userlinewidth 2 mul setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +/AL {stroke userlinewidth 2 div setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +/UL {dup gnulinewidth mul /userlinewidth exch def + dup 1 lt {pop 1} if 10 mul /udl exch def} def +/PL {stroke userlinewidth setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +3.8 setmiterlimit +% Classic Line colors (version 5.0) +/LCw {1 1 1} def +/LCb {0 0 0} def +/LCa {0 0 0} def +/LC0 {1 0 0} def +/LC1 {0 1 0} def +/LC2 {0 0 1} def +/LC3 {1 0 1} def +/LC4 {0 1 1} def +/LC5 {1 1 0} def +/LC6 {0 0 0} def +/LC7 {1 0.3 0} def +/LC8 {0.5 0.5 0.5} def +% Default dash patterns (version 5.0) +/LTB {BL [] LCb DL} def +/LTw {PL [] 1 setgray} def +/LTb {PL [] LCb DL} def +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def +/LT0 {PL [] LC0 DL} def +/LT1 {PL [2 dl1 3 dl2] LC1 DL} def +/LT2 {PL [1 dl1 1.5 dl2] LC2 DL} def +/LT3 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC3 DL} def +/LT4 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def +/LT5 {PL [4 dl1 2 dl2] LC5 DL} def +/LT6 {PL [1.5 dl1 1.5 dl2 1.5 dl1 1.5 dl2 1.5 dl1 6 dl2] LC6 DL} def +/LT7 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC7 DL} def +/LT8 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC8 DL} def +/SL {[] 0 setdash} def +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def +/Dia {stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt} def +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt} def +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke} def +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt} def +/Star {2 copy Pls Crs} def +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill} def +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill} def +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt} def +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill} def +/Pent {stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt} def +/PentF {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore} def +/Circle {stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt} def +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def +/C1 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath} bind def +/C2 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C3 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C4 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C5 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc} bind def +/C6 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C7 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C8 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C9 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath} bind def +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C11 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C12 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C13 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C14 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc} bind def +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath} bind def +/Square {dup Rec} bind def +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill Bsquare} bind def +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare} bind def +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare} bind def +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare} bind def +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def +/DiaE {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke} def +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke} def +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke} def +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke} def +/PentE {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore} def +/CircE {stroke [] 0 setdash + hpt 0 360 arc stroke} def +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def +/DiaW {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V Opaque stroke} def +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V Opaque stroke} def +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V Opaque stroke} def +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V Opaque stroke} def +/PentW {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + Opaque stroke grestore} def +/CircW {stroke [] 0 setdash + hpt 0 360 arc Opaque stroke} def +/BoxFill {gsave Rec 1 setgray fill grestore} def +/Density { + /Fillden exch def + currentrgbcolor + /ColB exch def /ColG exch def /ColR exch def + /ColR ColR Fillden mul Fillden sub 1 add def + /ColG ColG Fillden mul Fillden sub 1 add def + /ColB ColB Fillden mul Fillden sub 1 add def + ColR ColG ColB setrgbcolor} def +/BoxColFill {gsave Rec PolyFill} def +/PolyFill {gsave Density fill grestore grestore} def +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def +% +% PostScript Level 1 Pattern Fill routine for rectangles +% Usage: x y w h s a XX PatternFill +% x,y = lower left corner of box to be filled +% w,h = width and height of box +% a = angle in degrees between lines and x-axis +% XX = 0/1 for no/yes cross-hatch +% +/PatternFill {gsave /PFa [ 9 2 roll ] def + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse + clip + currentlinewidth 0.5 mul setlinewidth + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def + 0 0 M PFa 5 get rotate PFs -2 div dup translate + 0 1 PFs PFa 4 get div 1 add floor cvi + {PFa 4 get mul 0 M 0 PFs V} for + 0 PFa 6 get ne { + 0 1 PFs PFa 4 get div 1 add floor cvi + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for + } if + stroke grestore} def +% +/languagelevel where + {pop languagelevel} {1} ifelse +dup 2 lt + {/InterpretLevel1 true def + /InterpretLevel3 false def} + {/InterpretLevel1 Level1 def + 2 gt + {/InterpretLevel3 Level3 def} + {/InterpretLevel3 false def} + ifelse } + ifelse +% +% PostScript level 2 pattern fill definitions +% +/Level2PatternFill { +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} + bind def +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} +>> matrix makepattern +/Pat1 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} +>> matrix makepattern +/Pat2 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L + 8 8 L 8 0 L 0 0 L fill} +>> matrix makepattern +/Pat3 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L + 0 12 M 12 0 L stroke} +>> matrix makepattern +/Pat4 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L + 0 -4 M 12 8 L stroke} +>> matrix makepattern +/Pat5 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} +>> matrix makepattern +/Pat6 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} +>> matrix makepattern +/Pat7 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L + 12 0 M -4 8 L 12 4 M 0 10 L stroke} +>> matrix makepattern +/Pat8 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L + -4 0 M 12 8 L -4 4 M 8 10 L stroke} +>> matrix makepattern +/Pat9 exch def +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def +} def +% +% +%End of PostScript Level 2 code +% +/PatternBgnd { + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse +} def +% +% Substitute for Level 2 pattern fill codes with +% grayscale if Level 2 support is not selected. +% +/Level1PatternFill { +/Pattern1 {0.250 Density} bind def +/Pattern2 {0.500 Density} bind def +/Pattern3 {0.750 Density} bind def +/Pattern4 {0.125 Density} bind def +/Pattern5 {0.375 Density} bind def +/Pattern6 {0.625 Density} bind def +/Pattern7 {0.875 Density} bind def +} def +% +% Now test for support of Level 2 code +% +Level1 {Level1PatternFill} {Level2PatternFill} ifelse +% +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall +currentdict end definefont pop +% +/MFshow { + { dup 5 get 3 ge + { 5 get 3 eq {gsave} {grestore} ifelse } + {dup dup 0 get findfont exch 1 get scalefont setfont + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 + get exch 4 get {textshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get + textshow 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop + pop aload pop M} ifelse }ifelse }ifelse } + ifelse } + forall} def +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def +/MLshow { currentpoint stroke M + 0 exch R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/MRshow { currentpoint stroke M + exch dup MFwidth neg 3 -1 roll R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/MCshow { currentpoint stroke M + exch dup MFwidth -2 div 3 -1 roll R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/XYsave { [( ) 1 2 true false 3 ()] } bind def +/XYrestore { [( ) 1 2 true false 4 ()] } bind def +Level1 SuppressPDFMark or +{} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (40-years-processor-trend.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 5.0 patchlevel 3) + /Author (rupp) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Feb 15 06:05:09 2018) + /DOCINFO pdfmark +end +} ifelse +% +% Support for boxed text - Ethan A Merritt May 2005 +% +/InitTextBox { userdict /TBy2 3 -1 roll put userdict /TBx2 3 -1 roll put + userdict /TBy1 3 -1 roll put userdict /TBx1 3 -1 roll put + /Boxing true def } def +/ExtendTextBox { Boxing + { gsave dup false charpath pathbbox + dup TBy2 gt {userdict /TBy2 3 -1 roll put} {pop} ifelse + dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse + dup TBy1 lt {userdict /TBy1 3 -1 roll put} {pop} ifelse + dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse + grestore } if } def +/PopTextBox { newpath TBx1 TBxmargin sub TBy1 TBymargin sub M + TBx1 TBxmargin sub TBy2 TBymargin add L + TBx2 TBxmargin add TBy2 TBymargin add L + TBx2 TBxmargin add TBy1 TBymargin sub L closepath } def +/DrawTextBox { PopTextBox stroke /Boxing false def} def +/FillTextBox { gsave PopTextBox 1 1 1 setrgbcolor fill grestore /Boxing false def} def +0 0 0 0 InitTextBox +/TBxmargin 20 def +/TBymargin 20 def +/Boxing false def +/textshow { ExtendTextBox Gshow } def +% +% redundant definitions for compatibility with prologue.ps older than 5.0.2 +/LTB {BL [] LCb DL} def +/LTb {PL [] LCb DL} def +end +%%EndProlog +%%Page: 1 1 +gnudict begin +gsave +doclip +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 5760.00 4032.00 BoxColFill} if +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 939 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 939 M +63 0 V +4166 0 R +-63 0 V +stroke +294 939 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (0)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1285 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1285 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1285 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (1)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1631 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1631 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1631 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (2)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1977 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1977 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1977 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (3)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 2324 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 2324 M +63 0 V +4166 0 R +-63 0 V +stroke +294 2324 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (4)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 2670 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 2670 M +63 0 V +4166 0 R +-63 0 V +stroke +294 2670 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (5)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 3016 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 3016 M +63 0 V +4166 0 R +-63 0 V +stroke +294 3016 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (6)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 3362 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 3362 M +63 0 V +4166 0 R +-63 0 V +stroke +294 3362 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (7)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 697 M +0 63 V +0 2602 R +0 -63 V +stroke +378 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 1970)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +1224 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +1224 697 M +0 63 V +0 2602 R +0 -63 V +stroke +1224 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 1980)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +2070 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +2070 697 M +0 63 V +0 2602 R +0 -63 V +stroke +2070 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 1990)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +2915 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +2915 697 M +0 63 V +0 2602 R +0 -63 V +stroke +2915 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +3761 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +3761 697 M +0 63 V +0 2602 R +0 -63 V +stroke +3761 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 2010)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +4607 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +4607 697 M +0 63 V +0 2602 R +0 -63 V +stroke +4607 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 2020)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +1.500 UL +LTB +LCb setrgbcolor +378 3362 N +378 697 L +4229 0 V +0 2665 V +-4229 0 V +Z stroke +1.000 UP +0.00 0.00 0.00 C 4692 1389 M +[ [(Helvetica) 140.0 0.0 true true 0 (Number of)] +] -46.7 MLshow +0.00 0.00 0.00 C 4692 1223 M +[ [(Helvetica) 140.0 0.0 true true 0 (Logical Cores)] +] -46.7 MLshow +0.00 0.53 0.00 C 4692 2143 M +[ [(Helvetica) 140.0 0.0 true true 0 (Frequency \(MHz\))] +] -46.7 MLshow +0.00 0.00 0.73 C 4692 2731 M +[ [(Helvetica) 140.0 0.0 true true 0 (Single-Thread)] +] -46.7 MLshow +0.00 0.00 0.73 C 4692 2565 M +[ [(Helvetica) 140.0 0.0 true true 0 (Performance)] +] -46.7 MLshow +0.00 0.00 0.73 C 4692 2420 M +[ [(Helvetica) 140.0 0.0 true true 0 (\(SpecINT x 10)] +[(Helvetica) 112.0 70.0 true true 0 (3)] +[(Helvetica) 140.0 0.0 true true 0 (\))] +] -60.7 MLshow +0.80 0.40 0.00 C 4692 3285 M +[ [(Helvetica) 140.0 0.0 true true 0 (Transistors)] +] -46.7 MLshow +0.80 0.40 0.00 C 4692 3120 M +[ [(Helvetica) 140.0 0.0 true true 0 (\(thousands\))] +] -46.7 MLshow +0.73 0.00 0.00 C 4692 1796 M +[ [(Helvetica) 140.0 0.0 true true 0 (Typical Power)] +] -46.7 MLshow +0.73 0.00 0.00 C 4692 1631 M +[ [(Helvetica) 140.0 0.0 true true 0 (\(Watts\))] +] -46.7 MLshow +0.00 0.00 0.00 C 378 170 M +[ [(Helvetica) 80.0 0.0 true true 0 (Original data up to the year 2010 collected and plotted by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. Hammond, and C. Batten)] +] -26.7 MLshow +0.00 0.00 0.00 C 378 66 M +[ [(Helvetica) 80.0 0.0 true true 0 (New plot and data collected for 2010-2015 by K. Rupp)] +] -26.7 MLshow +1.500 UL +LTb +LCb setrgbcolor +LCb setrgbcolor +2492 347 M +[ [(Helvetica) 140.0 0.0 true true 0 (Year)] +] -46.7 MCshow +LTb +LCb setrgbcolor +2492 3572 M +[ [(Helvetica) 140.0 0.0 true true 0 (40 Years of Microprocessor Trend Data)] +] -46.7 MCshow +% Begin plot #1 +1.000 UP +1.000 UL +LTb +0.00 0.00 0.00 C /Helvetica findfont 140 scalefont setfont +/vshift -46 def +537 939 DiaF +569 939 DiaF +740 939 DiaF +1191 939 DiaF +1419 939 DiaF +1724 939 DiaF +1752 939 DiaF +1956 939 DiaF +2025 939 DiaF +2118 939 DiaF +2269 939 DiaF +2297 939 DiaF +2322 939 DiaF +2358 939 DiaF +2468 939 DiaF +2529 939 DiaF +2558 939 DiaF +2586 939 DiaF +2619 939 DiaF +2651 939 DiaF +2684 939 DiaF +2700 939 DiaF +2720 939 DiaF +2818 939 DiaF +2846 939 DiaF +2875 939 DiaF +2932 939 DiaF +2972 939 DiaF +3009 939 DiaF +3054 939 DiaF +3066 939 DiaF +3115 939 DiaF +3147 939 DiaF +3163 939 DiaF +3196 939 DiaF +3212 939 DiaF +3229 939 DiaF +3322 1043 DiaF +3326 939 DiaF +3399 1043 DiaF +3407 939 DiaF +3420 1252 DiaF +3428 1043 DiaF +3493 1043 DiaF +3513 1043 DiaF +3562 1147 DiaF +3570 1269 DiaF +3570 1043 DiaF +3582 1043 DiaF +3590 1252 DiaF +3607 1147 DiaF +3631 1043 DiaF +3692 1104 DiaF +3696 1147 DiaF +3716 1147 DiaF +3729 1104 DiaF +3737 1252 DiaF +3737 1208 DiaF +3777 1356 DiaF +3859 1313 DiaF +3873 1389 DiaF +3922 1252 DiaF +3964 1356 DiaF +3965 1356 DiaF +3990 1460 DiaF +4006 1356 DiaF +4049 1763 DiaF +4083 1417 DiaF +4113 1450 DiaF +4142 1564 DiaF +4167 1356 DiaF +4168 1417 DiaF +4169 1478 DiaF +% End plot #1 +% Begin plot #2 +1.000 UP +1.000 UL +LTb +0.00 0.53 0.00 C /Helvetica findfont 140 scalefont setfont +537 886 BoxF +569 838 BoxF +744 1044 BoxF +1187 1182 BoxF +1419 1211 BoxF +1724 1357 BoxF +1752 1357 BoxF +1956 1495 BoxF +2025 1422 BoxF +2118 1466 BoxF +2273 1568 BoxF +2297 1556 BoxF +2297 1633 BoxF +2326 1734 BoxF +2358 1572 BoxF +2358 1495 BoxF +2468 1693 BoxF +2468 1795 BoxF +2529 1795 BoxF +2553 1616 BoxF +2586 1734 BoxF +2606 1734 BoxF +2614 1616 BoxF +2647 1876 BoxF +2692 1771 BoxF +2700 1884 BoxF +2708 1758 BoxF +2716 1795 BoxF +2818 1872 BoxF +2842 1795 BoxF +2846 1839 BoxF +2871 1860 BoxF +2871 1876 BoxF +2932 1933 BoxF +2972 1977 BoxF +3009 1961 BoxF +3017 2083 BoxF +3058 1945 BoxF +3066 2030 BoxF +3119 2099 BoxF +3151 2067 BoxF +3159 1977 BoxF +3204 2002 BoxF +3212 2095 BoxF +3220 2067 BoxF +3322 2123 BoxF +3322 2075 BoxF +3326 2172 BoxF +3399 2152 BoxF +3411 2132 BoxF +3420 2006 BoxF +3424 2099 BoxF +3497 2172 BoxF +3497 2123 BoxF +3509 2127 BoxF +3513 2103 BoxF +3562 2140 BoxF +3570 2209 BoxF +3570 2188 BoxF +3578 2083 BoxF +3590 2030 BoxF +3607 2083 BoxF +3607 2103 BoxF +3631 2144 BoxF +3692 2115 BoxF +3700 2156 BoxF +3712 2123 BoxF +3733 2123 BoxF +3737 2156 BoxF +3777 2103 BoxF +3859 2164 BoxF +3873 2109 BoxF +3922 2143 BoxF +3964 2147 BoxF +3965 2137 BoxF +3990 2174 BoxF +4006 2115 BoxF +4049 2005 BoxF +4083 2127 BoxF +4113 2132 BoxF +4142 2174 BoxF +4167 2152 BoxF +4168 2121 BoxF +4169 2103 BoxF +% End plot #2 +% Begin plot #3 +1.000 UP +1.000 UL +LTb +0.00 0.00 0.73 C /Helvetica findfont 140 scalefont setfont +1956 1604 CircleF +2025 1527 CircleF +2122 1543 CircleF +2273 1616 CircleF +2297 1718 CircleF +2297 1783 CircleF +2326 1807 CircleF +2358 1762 CircleF +2472 1819 CircleF +2472 1900 CircleF +2529 1981 CircleF +2553 1844 CircleF +2590 1965 CircleF +2590 1973 CircleF +2606 1917 CircleF +2606 2026 CircleF +2651 2067 CircleF +2692 2014 CircleF +2700 2063 CircleF +2712 1949 CircleF +2716 2034 CircleF +2822 2168 CircleF +2846 2103 CircleF +2846 1998 CircleF +2871 2127 CircleF +2875 2071 CircleF +2932 2160 CircleF +2972 2213 CircleF +3009 2233 CircleF +3017 2253 CircleF +3058 2196 CircleF +3066 2253 CircleF +3119 2314 CircleF +3155 2302 CircleF +3159 2314 CircleF +3204 2326 CircleF +3212 2342 CircleF +3224 2367 CircleF +3322 2420 CircleF +3322 2399 CircleF +3322 2436 CircleF +3403 2403 CircleF +3411 2436 CircleF +3497 2420 CircleF +3501 2436 CircleF +3505 2513 CircleF +3513 2452 CircleF +3574 2497 CircleF +3578 2375 CircleF +3607 2432 CircleF +3702 2519 CircleF +3719 2436 CircleF +3736 2523 CircleF +3787 2539 CircleF +3803 2466 CircleF +3859 2553 CircleF +3873 2528 CircleF +3922 2503 CircleF +3964 2494 CircleF +3965 2590 CircleF +4006 2503 CircleF +4083 2590 CircleF +4113 2590 CircleF +4167 2607 CircleF +4168 2605 CircleF +4169 2607 CircleF +% End plot #3 +% Begin plot #4 +1.000 UP +1.000 UL +LTb +0.80 0.40 0.00 C /Helvetica findfont 140 scalefont setfont +537 1065 TriUF +573 1130 TriUF +744 1211 TriUF +1187 1446 TriUF +1419 1677 TriUF +1724 1783 TriUF +1752 1645 TriUF +1956 1661 TriUF +2025 2006 TriUF +2118 2006 TriUF +2273 2006 TriUF +2297 2148 TriUF +2297 1994 TriUF +2326 2059 TriUF +2358 2148 TriUF +2358 1965 TriUF +2468 2075 TriUF +2468 2132 TriUF +2529 2318 TriUF +2553 2148 TriUF +2590 2233 TriUF +2606 2265 TriUF +2606 2172 TriUF +2614 2196 TriUF +2647 2318 TriUF +2692 2233 TriUF +2700 2168 TriUF +2708 2306 TriUF +2716 2282 TriUF +2822 2387 TriUF +2842 2314 TriUF +2846 2269 TriUF +2871 2314 TriUF +2871 2440 TriUF +2932 2444 TriUF +2972 2480 TriUF +2972 2521 TriUF +3009 2484 TriUF +3017 2541 TriUF +3058 2464 TriUF +3070 2521 TriUF +3119 2582 TriUF +3151 2525 TriUF +3159 2789 TriUF +3204 2732 TriUF +3212 2578 TriUF +3224 2679 TriUF +3322 2704 TriUF +3322 2679 TriUF +3322 2821 TriUF +3399 2797 TriUF +3407 2687 TriUF +3420 2837 TriUF +3428 2691 TriUF +3497 2870 TriUF +3497 2736 TriUF +3501 2805 TriUF +3505 2833 TriUF +3505 2935 TriUF +3513 2732 TriUF +3562 2935 TriUF +3570 2797 TriUF +3574 2983 TriUF +3578 2691 TriUF +3590 2914 TriUF +3611 2894 TriUF +3631 2882 TriUF +3692 2898 TriUF +3700 2979 TriUF +3733 3142 TriUF +3737 3113 TriUF +3777 2882 TriUF +3794 3056 TriUF +3859 3039 TriUF +3873 3159 TriUF +3922 3043 TriUF +3964 3147 TriUF +3965 3141 TriUF +3990 3127 TriUF +4006 3043 TriUF +4049 3258 TriUF +4083 3235 TriUF +4113 3235 TriUF +4142 3232 TriUF +4167 3159 TriUF +4168 3217 TriUF +4169 3277 TriUF +% End plot #4 +% Begin plot #5 +1.000 UP +1.000 UL +LTb +0.73 0.00 0.00 C /Helvetica findfont 140 scalefont setfont +537 817 TriDF +573 809 TriDF +744 927 TriDF +1187 1020 TriDF +1419 1105 TriDF +1724 1004 TriDF +1752 1105 TriDF +1956 1146 TriDF +2025 1093 TriDF +2118 1126 TriDF +2273 1207 TriDF +2297 1341 TriDF +2326 1474 TriDF +2358 1105 TriDF +2358 1328 TriDF +2468 1442 TriDF +2468 1105 TriDF +2529 1527 TriDF +2553 1357 TriDF +2590 1466 TriDF +2602 1454 TriDF +2606 1288 TriDF +2614 1304 TriDF +2651 1507 TriDF +2692 1422 TriDF +2700 1478 TriDF +2708 1365 TriDF +2716 1462 TriDF +2822 1616 TriDF +2846 1450 TriDF +2846 1336 TriDF +2871 1365 TriDF +2871 1397 TriDF +2932 1478 TriDF +2972 1523 TriDF +2972 1389 TriDF +3009 1580 TriDF +3017 1584 TriDF +3058 1629 TriDF +3070 1547 TriDF +3119 1523 TriDF +3155 1560 TriDF +3159 1629 TriDF +3204 1698 TriDF +3212 1588 TriDF +3224 1612 TriDF +3322 1612 TriDF +3322 1653 TriDF +3326 1633 TriDF +3399 1669 TriDF +3407 1608 TriDF +3420 1584 TriDF +3428 1422 TriDF +3497 1669 TriDF +3501 1568 TriDF +3501 1665 TriDF +3505 1588 TriDF +3513 1458 TriDF +3562 1673 TriDF +3574 1633 TriDF +3582 1458 TriDF +3590 1608 TriDF +3607 1592 TriDF +3611 1624 TriDF +3631 1568 TriDF +3692 1624 TriDF +3700 1673 TriDF +3716 1665 TriDF +3725 1624 TriDF +3733 1673 TriDF +3794 1710 TriDF +3859 1671 TriDF +3873 1671 TriDF +3922 1624 TriDF +3964 1682 TriDF +3965 1671 TriDF +3990 1735 TriDF +4006 1652 TriDF +4049 1796 TriDF +4083 1671 TriDF +4113 1697 TriDF +4142 1735 TriDF +4167 1676 TriDF +4168 1676 TriDF +4169 1682 TriDF +% End plot #5 +2.000 UL +LTb +LCb setrgbcolor +1.500 UL +LTB +LCb setrgbcolor +378 3362 N +378 697 L +4229 0 V +0 2665 V +-4229 0 V +Z stroke +1.000 UP +1.500 UL +LTb +LCb setrgbcolor +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/40yrs/40-years-processor-trend.pdf b/40yrs/40-years-processor-trend.pdf new file mode 100644 index 0000000..1fa447d Binary files /dev/null and b/40yrs/40-years-processor-trend.pdf differ diff --git a/40yrs/40-years-processor-trend.png b/40yrs/40-years-processor-trend.png new file mode 100644 index 0000000..af7dd05 Binary files /dev/null and b/40yrs/40-years-processor-trend.png differ diff --git a/40yrs/cores.dat b/40yrs/cores.dat new file mode 100644 index 0000000..f1e335e --- /dev/null +++ b/40yrs/cores.dat @@ -0,0 +1,77 @@ +1971.875 1 +1972.25961538 1 +1974.27884615 1 +1979.61538462 1 +1982.30769231 1 +1985.91346154 1 +1986.25 1 +1988.65384615 1 +1989.47115385 1 +1990.57692308 1 +1992.35576923 1 +1992.69230769 1 +1992.98076923 1 +1993.41346154 1 +1994.71153846 1 +1995.43269231 1 +1995.76923077 1 +1996.10576923 1 +1996.49038462 1 +1996.875 1 +1997.25961538 1 +1997.45192308 1 +1997.69230769 1 +1998.84615385 1 +1999.18269231 1 +1999.51923077 1 +2000.19230769 1 +2000.67307692 1 +2001.10576923 1 +2001.63461538 1 +2001.77884615 1 +2002.35576923 1 +2002.74038462 1 +2002.93269231 1 +2003.31730769 1 +2003.50961538 1 +2003.70192308 1 +2004.80769231 2 +2004.85576923 1 +2005.72115385 2 +2005.81730769 1 +2005.96153846 8 +2006.05769231 2 +2006.82692308 2 +2007.06730769 2 +2007.64423077 4 +2007.74038462 9 +2007.74038462 2 +2007.88461538 2 +2007.98076923 8 +2008.17307692 4 +2008.46153846 2 +2009.18269231 3 +2009.23076923 4 +2009.47115385 4 +2009.61538462 3 +2009.71153846 8 +2009.71153846 6 +2010.19230769 16 +#### +2011.16 12 +2011.32 20 +2011.9 8 +2012.40 16 +2012.41 16 +2012.7 32 +2012.9 16 +2013.4 240 +2013.8 24 +2014.16 30 +2014.5 64 +2014.8 16 +2014.81 24 +2014.82 36 + + + diff --git a/40yrs/frequency.dat b/40yrs/frequency.dat new file mode 100644 index 0000000..527a5ac --- /dev/null +++ b/40yrs/frequency.dat @@ -0,0 +1,86 @@ +1971.875 0.704135515486 +1972.25961538 0.509367521678 +1974.32692308 2.01691455473 +1979.56730769 5.04806571667 +1982.30769231 6.09756235221 +1985.91346154 16.1076153462 +1986.25 16.1076153462 +1988.65384615 40.3151936286 +1989.47115385 24.8045441431 +1990.57692308 33.3762469429 +1992.40384615 65.5248823737 +1992.69230769 60.4296390238 +1992.69230769 100.903504484 +1993.02884615 198.095677855 +1993.41346154 67.3170382414 +1993.41346154 40.3151936286 +1994.71153846 151.247254531 +1994.71153846 296.93148482 +1995.43269231 296.93148482 +1995.72115385 90.5797775943 +1996.10576923 198.095677855 +1996.34615385 198.095677855 +1996.44230769 90.5797775943 +1996.82692308 509.367521678 +1997.35576923 252.547893258 +1997.45192308 537.611747456 +1997.54807692 232.909659246 +1997.64423077 296.93148482 +1998.84615385 495.806824168 +1999.13461538 296.93148482 +1999.18269231 399.542055895 +1999.47115385 457.252669897 +1999.47115385 509.367521678 +2000.19230769 743.179548784 +2000.67307692 1000 +2001.10576923 897.687132447 +2001.20192308 2016.91455473 +2001.68269231 805.842187761 +2001.77884615 1420.18116969 +2002.40384615 2246.79009181 +2002.78846154 1810.55824303 +2002.88461538 1000 +2003.41346154 1175.74326592 +2003.50961538 2186.97465501 +2003.60576923 1810.55824303 +2004.80769231 2641.64832039 +2004.80769231 1910.95297497 +2004.85576923 3651.74127255 +2005.72115385 3190.84898063 +2005.86538462 2788.12666541 +2005.96153846 1207.90074743 +2006.00961538 2246.79009181 +2006.875 3651.74127255 +2006.875 2641.64832039 +2007.01923077 2713.89943121 +2007.06730769 2308.24152676 +2007.64423077 2942.72717621 +2007.74038462 4655.52593116 +2007.74038462 4067.94432108 +2007.83653846 2016.91455473 +2007.98076923 1420.18116969 +2008.17307692 2016.91455473 +2008.17307692 2308.24152676 +2008.46153846 3023.21302502 +2009.18269231 2502.86543117 +2009.27884615 3278.12115139 +2009.42307692 2641.64832039 +2009.66346154 2641.64832039 +2009.71153846 3278.12115139 +2010.19230769 2308.24152676 +#### +2011.16 3470 +2011.32 2400 +2011.9 3000 +2012.40 3100 +2012.41 2900 +2012.7 3700 +2012.9 2500 +2013.4 1200 +2013.8 2700 +2014.16 2800 +2014.5 3700 +2014.8 3200 +2014.81 2600 +2014.82 2300 + diff --git a/40yrs/plot.gnuplot b/40yrs/plot.gnuplot new file mode 100644 index 0000000..80a5c1e --- /dev/null +++ b/40yrs/plot.gnuplot @@ -0,0 +1,56 @@ + + +set terminal postscript eps color enhanced #font 'CourierBold,14' +set output "40-years-processor-trend.eps" + +set rmargin at screen 0.64 + +set style line 1 lt 1 ps 1 pt 13 lc rgb "#000000" +set style line 2 lt 1 ps 1 pt 5 lc rgb "#008800" +set style line 3 lt 1 ps 1 pt 7 lc rgb "#0000BB" +set style line 4 lt 1 ps 1 pt 9 lc rgb "#CC6600" +set style line 5 lt 1 ps 1 pt 11 lc rgb "#BB0000" + + +set size 0.8 +set size ratio 0.63 + +set border lw 1.5 + +set xlabel "Year" + +set grid +unset key +set logscale y +set format y "10^{%T}" + +set xrange [1970:2020] +set yrange [0.2:1e7] +unset mytics + +set label "Number of" at 2021,2e1 tc ls 1 +set label "Logical Cores" at 2021,6.6e0 tc ls 1 + +set label "Frequency (MHz)" at 2021,3e3 tc ls 2 + +set label "Single-Thread" at 2021,1.5e5 tc ls 3 +set label "Performance" at 2021,5e4 tc ls 3 +set label "(SpecINT x 10^{3})" at 2021,1.9e4 tc ls 3 + +set label "Transistors" at 2021,6e6 tc ls 4 +set label "(thousands)" at 2021,2e6 tc ls 4 + +set label "Typical Power" at 2021,3e2 tc ls 5 +set label "(Watts)" at 2021,1e2 tc ls 5 + +set title "40 Years of Microprocessor Trend Data" + +set label "Original data up to the year 2010 collected and plotted by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. Hammond, and C. Batten" at 1970,6e-3 tc ls 1 font ",8" +set label "New plot and data collected for 2010-2015 by K. Rupp" at 1970,3e-3 tc ls 1 font ",8" + +plot \ + "cores.dat" using 1:2 ls 1 with points, \ + "frequency.dat" using 1:2 ls 2 with points, \ + "specint.dat" using 1:2 ls 3 with points, \ + "transistors.dat" using 1:2 ls 4 with points, \ + "watts.dat" using 1:2 ls 5 with points diff --git a/40yrs/specint.dat b/40yrs/specint.dat new file mode 100644 index 0000000..2ab7483 --- /dev/null +++ b/40yrs/specint.dat @@ -0,0 +1,69 @@ +1988.65384615 83.5362546958 +1989.47115385 50.0286461058 +1990.625 55.7306040127 +1992.40384615 90.5797775943 +1992.69230769 177.827941004 +1992.69230769 273.841963426 +1993.02884615 321.967844425 +1993.41346154 239.279917343 +1994.75961538 349.115193717 +1994.75961538 598.885433492 +1995.43269231 1027.35076818 +1995.72115385 410.469838044 +1996.15384615 922.239565104 +1996.15384615 973.377380904 +1996.34615385 667.142718041 +1996.34615385 1382.37222736 +1996.875 1810.55824303 +1997.35576923 1274.87836177 +1997.45192308 1762.35644057 +1997.59615385 827.882590628 +1997.64423077 1459.02421563 +1998.89423077 3554.52235561 +1999.18269231 2308.24152676 +1999.18269231 1144.4419008 +1999.47115385 2713.89943121 +1999.51923077 1860.07840181 +2000.19230769 3367.78028307 +2000.67307692 4782.85814165 +2001.10576923 5473.70326288 +2001.20192308 6264.33536657 +2001.68269231 4293.51021008 +2001.77884615 6264.33536657 +2002.40384615 9389.79801048 +2002.83653846 8659.6432336 +2002.88461538 9389.79801048 +2003.41346154 10181.5172172 +2003.50961538 11341.944035 +2003.65384615 13335.2143216 +2004.80769231 18938.4202733 +2004.80769231 16548.1709994 +2004.80769231 21096.9051341 +2005.76923077 17000.7761882 +2005.86538462 21096.9051341 +2006.875 18938.4202733 +2006.92307692 21096.9051341 +2006.97115385 35226.9465147 +2007.06730769 23501.4008461 +2007.78846154 31622.7766017 +2007.83653846 14074.6466334 +2008.17307692 20535.2502646 +#### +2009.3 36600 # Xeon W5580 +2009.5 21100 # Opteron 2435 +2009.7 37700 # Xeon W5590 +2010.3 42000 # Xeon X5680 +2010.5 25800 # Opteron 4184 +#### +2011.16 46000.7 +2011.32 39000.4 +2011.9 33000.6 +2012.40 31000.8 +2012.41 59000.0 +2012.9 33000.7 +2013.8 59000.6 +2014.16 59000.9 +2014.8 66000.4 +2014.81 65000.4 +2014.82 66000.1 + diff --git a/40yrs/transistors.dat b/40yrs/transistors.dat new file mode 100644 index 0000000..47ff882 --- /dev/null +++ b/40yrs/transistors.dat @@ -0,0 +1,89 @@ +1971.875 2.30824152676 +1972.30769231 3.55452235561 +1974.32692308 6.09756235221 +1979.56730769 29.1637757405 +1982.30769231 135.772714211 +1985.91346154 273.841963426 +1986.25 109.411381058 +1988.65384615 121.881418484 +1989.47115385 1207.90074743 +1990.57692308 1207.90074743 +1992.40384615 1207.90074743 +1992.69230769 3105.90022362 +1992.69230769 1113.97385999 +1993.02884615 1715.43789634 +1993.41346154 3105.90022362 +1993.41346154 922.239565104 +1994.71153846 1910.95297497 +1994.71153846 2788.12666541 +1995.43269231 9646.61619911 +1995.72115385 3105.90022362 +1996.15384615 5473.70326288 +1996.34615385 6792.52507006 +1996.34615385 3651.74127255 +1996.44230769 4293.51021008 +1996.82692308 9646.61619911 +1997.35576923 5473.70326288 +1997.45192308 3554.52235561 +1997.54807692 8896.4911282 +1997.64423077 7566.6953714 +1998.89423077 15261.3780258 +1999.13461538 9389.79801048 +1999.18269231 6978.3058486 +1999.47115385 9389.79801048 +1999.47115385 21673.9216957 +2000.19230769 22266.7201035 +2000.67307692 28387.3596476 +2000.67307692 37180.2666391 +2001.10576923 29163.7757405 +2001.20192308 42550.6550247 +2001.68269231 25482.9674798 +2001.82692308 37180.2666391 +2002.40384615 55730.6040127 +2002.78846154 38197.1754928 +2002.88461538 220673.406908 +2003.41346154 151247.254531 +2003.50961538 54246.9093701 +2003.65384615 106498.563535 +2004.80769231 125214.968907 +2004.80769231 106498.563535 +2004.80769231 273841.963426 +2005.72115385 232909.659246 +2005.81730769 112403.866377 +2005.96153846 305052.789027 +2006.05769231 115478.198469 +2006.875 378551.524926 +2006.875 155383.983127 +2006.92307692 245824.406892 +2006.97115385 296931.48482 +2006.97115385 582941.534714 +2007.06730769 151247.254531 +2007.64423077 582941.534714 +2007.74038462 232909.659246 +2007.78846154 805842.187761 +2007.83653846 115478.198469 +2007.98076923 509367.521678 +2008.22115385 445079.406236 +2008.46153846 410469.838044 +2009.18269231 457252.669897 +2009.27884615 784388.558145 +2009.66346154 2308241.52676 +2009.71153846 1910952.97497 +2010.19230769 410469.838044 +2010.38461538 1309747.2643 +#### +2011.16 1170000 +2011.32 2600000 +2011.9 1200000 +2012.40 2400000 +2012.41 2300000 +2012.7 2100000 +2012.9 1200000 +2013.4 5000000 +2013.8 4300000 +2014.16 4300000 +2014.5 4200000 +2014.8 2600000 +2014.81 3800000 +2014.82 5700000 + diff --git a/40yrs/watts.dat b/40yrs/watts.dat new file mode 100644 index 0000000..f6e5ed4 --- /dev/null +++ b/40yrs/watts.dat @@ -0,0 +1,87 @@ +1971.875 0.445079406236 +1972.30769231 0.421696503429 +1974.32692308 0.922239565104 +1979.56730769 1.71543789634 +1982.30769231 3.02321302502 +1985.91346154 1.53992652606 +1986.25 3.02321302502 +1988.65384615 3.95964498892 +1989.47115385 2.78812666541 +1990.57692308 3.45989166087 +1992.40384615 5.9352292723 +1992.69230769 14.4595990307 +1993.02884615 35.2269465147 +1993.41346154 3.02321302502 +1993.41346154 13.3352143216 +1994.71153846 28.3873596476 +1994.71153846 3.02321302502 +1995.43269231 50.0286461058 +1995.72115385 16.1076153462 +1996.15384615 33.3762469429 +1996.29807692 30.7808954655 +1996.34615385 10.1815172172 +1996.44230769 11.341944035 +1996.875 43.7144481261 +1997.35576923 24.8045441431 +1997.45192308 36.1904305625 +1997.54807692 17.0007761882 +1997.64423077 32.4876838337 +1998.89423077 90.5797775943 +1999.18269231 29.96142741 +1999.18269231 14.0746466334 +1999.47115385 17.0007761882 +1999.47115385 21.0969051341 +2000.19230769 36.1904305625 +2000.67307692 48.6967525166 +2000.67307692 19.9885481187 +2001.10576923 71.0497411443 +2001.20192308 72.9930061435 +2001.68269231 98.2171889188 +2001.82692308 57.2548788436 +2002.40384615 48.6967525166 +2002.83653846 62.0824360719 +2002.88461538 98.2171889188 +2003.41346154 155.383983127 +2003.50961538 74.9894209332 +2003.65384615 88.1683066776 +2004.80769231 88.1683066776 +2004.80769231 115.478198469 +2004.85576923 100.903504484 +2005.72115385 128.639694494 +2005.81730769 85.8210354325 +2005.96153846 72.9930061435 +2006.05769231 24.8045441431 +2006.875 128.639694494 +2006.92307692 65.5248823737 +2006.92307692 125.214968907 +2006.97115385 74.9894209332 +2007.06730769 31.6227766017 +2007.64423077 132.158088956 +2007.78846154 100.903504484 +2007.88461538 31.6227766017 +2007.98076923 85.8210354325 +2008.17307692 77.0404392011 +2008.22115385 95.6023901095 +2008.46153846 65.5248823737 +2009.18269231 95.6023901095 +2009.27884615 132.158088956 +2009.47115385 125.214968907 +2009.56730769 95.6023901095 +2009.66346154 132.158088956 +2010.38461538 168.485487944 +#### +2011.16 130 +2011.32 130 +2011.9 95 +2012.40 140 +2012.41 130 +2012.7 200 +2012.9 115 +2013.4 300 +2013.8 130 +2014.16 155 +2014.5 200 +2014.8 135 +2014.81 135 +2014.82 140 + diff --git a/42yrs/42-years-processor-trend.eps b/42yrs/42-years-processor-trend.eps new file mode 100644 index 0000000..1d35e37 --- /dev/null +++ b/42yrs/42-years-processor-trend.eps @@ -0,0 +1,1338 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: 42-years-processor-trend.eps +%%Creator: gnuplot 5.0 patchlevel 3 +%%CreationDate: Thu Feb 15 05:52:29 2018 +%%DocumentFonts: (atend) +%%BoundingBox: 50 50 338 251 +%%EndComments +%%BeginProlog +/gnudict 256 dict def +gnudict begin +% +% The following true/false flags may be edited by hand if desired. +% The unit line width and grayscale image gamma correction may also be changed. +% +/Color true def +/Blacktext false def +/Solid false def +/Dashlength 1 def +/Landscape false def +/Level1 false def +/Level3 false def +/Rounded false def +/ClipToBoundingBox false def +/SuppressPDFMark false def +/TransparentPatterns false def +/gnulinewidth 5.000 def +/userlinewidth gnulinewidth def +/Gamma 1.0 def +/BackgroundColor {-1.000 -1.000 -1.000} def +% +/vshift -46 def +/dl1 { + 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul + Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if +} def +/dl2 { + 10.0 Dashlength userlinewidth gnulinewidth div mul mul mul + Rounded { currentlinewidth 0.75 mul add } if +} def +/hpt_ 31.5 def +/vpt_ 31.5 def +/hpt hpt_ def +/vpt vpt_ def +/doclip { + ClipToBoundingBox { + newpath 50 50 moveto 338 50 lineto 338 251 lineto 50 251 lineto closepath + clip + } if +} def +% +% Gnuplot Prolog Version 5.1 (Oct 2015) +% +%/SuppressPDFMark true def +% +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/N {newpath moveto} bind def +/Z {closepath} bind def +/C {setrgbcolor} bind def +/f {rlineto fill} bind def +/g {setgray} bind def +/Gshow {show} def % May be redefined later in the file to support UTF-8 +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow {currentpoint stroke M 0 vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R + Blacktext {gsave 0 setgray textshow grestore} {textshow} ifelse} def +/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def + /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def +/DL {Color {setrgbcolor Solid {pop []} if 0 setdash} + {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def +/BL {stroke userlinewidth 2 mul setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +/AL {stroke userlinewidth 2 div setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +/UL {dup gnulinewidth mul /userlinewidth exch def + dup 1 lt {pop 1} if 10 mul /udl exch def} def +/PL {stroke userlinewidth setlinewidth + Rounded {1 setlinejoin 1 setlinecap} if} def +3.8 setmiterlimit +% Classic Line colors (version 5.0) +/LCw {1 1 1} def +/LCb {0 0 0} def +/LCa {0 0 0} def +/LC0 {1 0 0} def +/LC1 {0 1 0} def +/LC2 {0 0 1} def +/LC3 {1 0 1} def +/LC4 {0 1 1} def +/LC5 {1 1 0} def +/LC6 {0 0 0} def +/LC7 {1 0.3 0} def +/LC8 {0.5 0.5 0.5} def +% Default dash patterns (version 5.0) +/LTB {BL [] LCb DL} def +/LTw {PL [] 1 setgray} def +/LTb {PL [] LCb DL} def +/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def +/LT0 {PL [] LC0 DL} def +/LT1 {PL [2 dl1 3 dl2] LC1 DL} def +/LT2 {PL [1 dl1 1.5 dl2] LC2 DL} def +/LT3 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC3 DL} def +/LT4 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def +/LT5 {PL [4 dl1 2 dl2] LC5 DL} def +/LT6 {PL [1.5 dl1 1.5 dl2 1.5 dl1 1.5 dl2 1.5 dl1 6 dl2] LC6 DL} def +/LT7 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC7 DL} def +/LT8 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC8 DL} def +/SL {[] 0 setdash} def +/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def +/Dia {stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + Pnt} def +/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + Pnt} def +/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke} def +/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + Pnt} def +/Star {2 copy Pls Crs} def +/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath fill} def +/TriUF {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath fill} def +/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke + Pnt} def +/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath fill} def +/DiaF {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath fill} def +/Pent {stroke [] 0 setdash 2 copy gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore Pnt} def +/PentF {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath fill grestore} def +/Circle {stroke [] 0 setdash 2 copy + hpt 0 360 arc stroke Pnt} def +/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def +/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def +/C1 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + vpt 0 360 arc closepath} bind def +/C2 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C3 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C4 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C5 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc + 2 copy moveto + 2 copy vpt 180 270 arc closepath fill + vpt 0 360 arc} bind def +/C6 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C7 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 270 arc closepath fill + vpt 0 360 arc closepath} bind def +/C8 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C9 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 270 450 arc closepath fill + vpt 0 360 arc closepath} bind def +/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill + 2 copy moveto + 2 copy vpt 90 180 arc closepath fill + vpt 0 360 arc closepath} bind def +/C11 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 180 arc closepath fill + 2 copy moveto + 2 copy vpt 270 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C12 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C13 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 0 90 arc closepath fill + 2 copy moveto + 2 copy vpt 180 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/C14 {BL [] 0 setdash 2 copy moveto + 2 copy vpt 90 360 arc closepath fill + vpt 0 360 arc} bind def +/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill + vpt 0 360 arc closepath} bind def +/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto + neg 0 rlineto closepath} bind def +/Square {dup Rec} bind def +/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def +/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def +/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def +/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def +/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def +/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def +/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill + exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def +/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def +/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill + 2 copy vpt Square fill Bsquare} bind def +/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def +/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def +/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill + Bsquare} bind def +/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill + Bsquare} bind def +/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def +/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy vpt Square fill Bsquare} bind def +/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill + 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def +/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def +/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def +/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def +/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def +/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def +/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def +/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def +/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def +/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def +/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def +/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def +/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def +/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def +/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def +/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def +/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def +/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def +/DiaE {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke} def +/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke} def +/TriUE {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke} def +/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V closepath stroke} def +/PentE {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + closepath stroke grestore} def +/CircE {stroke [] 0 setdash + hpt 0 360 arc stroke} def +/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def +/DiaW {stroke [] 0 setdash vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V Opaque stroke} def +/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V Opaque stroke} def +/TriUW {stroke [] 0 setdash vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V Opaque stroke} def +/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M + hpt neg vpt 1.62 mul V + hpt 2 mul 0 V + hpt neg vpt -1.62 mul V Opaque stroke} def +/PentW {stroke [] 0 setdash gsave + translate 0 hpt M 4 {72 rotate 0 hpt L} repeat + Opaque stroke grestore} def +/CircW {stroke [] 0 setdash + hpt 0 360 arc Opaque stroke} def +/BoxFill {gsave Rec 1 setgray fill grestore} def +/Density { + /Fillden exch def + currentrgbcolor + /ColB exch def /ColG exch def /ColR exch def + /ColR ColR Fillden mul Fillden sub 1 add def + /ColG ColG Fillden mul Fillden sub 1 add def + /ColB ColB Fillden mul Fillden sub 1 add def + ColR ColG ColB setrgbcolor} def +/BoxColFill {gsave Rec PolyFill} def +/PolyFill {gsave Density fill grestore grestore} def +/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def +% +% PostScript Level 1 Pattern Fill routine for rectangles +% Usage: x y w h s a XX PatternFill +% x,y = lower left corner of box to be filled +% w,h = width and height of box +% a = angle in degrees between lines and x-axis +% XX = 0/1 for no/yes cross-hatch +% +/PatternFill {gsave /PFa [ 9 2 roll ] def + PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate + PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse + clip + currentlinewidth 0.5 mul setlinewidth + /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def + 0 0 M PFa 5 get rotate PFs -2 div dup translate + 0 1 PFs PFa 4 get div 1 add floor cvi + {PFa 4 get mul 0 M 0 PFs V} for + 0 PFa 6 get ne { + 0 1 PFs PFa 4 get div 1 add floor cvi + {PFa 4 get mul 0 2 1 roll M PFs 0 V} for + } if + stroke grestore} def +% +/languagelevel where + {pop languagelevel} {1} ifelse +dup 2 lt + {/InterpretLevel1 true def + /InterpretLevel3 false def} + {/InterpretLevel1 Level1 def + 2 gt + {/InterpretLevel3 Level3 def} + {/InterpretLevel3 false def} + ifelse } + ifelse +% +% PostScript level 2 pattern fill definitions +% +/Level2PatternFill { +/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8} + bind def +/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} +>> matrix makepattern +/Pat1 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke + 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} +>> matrix makepattern +/Pat2 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L + 8 8 L 8 0 L 0 0 L fill} +>> matrix makepattern +/Pat3 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L + 0 12 M 12 0 L stroke} +>> matrix makepattern +/Pat4 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L + 0 -4 M 12 8 L stroke} +>> matrix makepattern +/Pat5 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L + 0 12 M 8 -4 L 4 12 M 10 0 L stroke} +>> matrix makepattern +/Pat6 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L + 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} +>> matrix makepattern +/Pat7 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L + 12 0 M -4 8 L 12 4 M 0 10 L stroke} +>> matrix makepattern +/Pat8 exch def +<< Tile8x8 + /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L + -4 0 M 12 8 L -4 4 M 8 10 L stroke} +>> matrix makepattern +/Pat9 exch def +/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def +/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def +/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def +/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def +/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def +/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def +/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def +} def +% +% +%End of PostScript Level 2 code +% +/PatternBgnd { + TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse +} def +% +% Substitute for Level 2 pattern fill codes with +% grayscale if Level 2 support is not selected. +% +/Level1PatternFill { +/Pattern1 {0.250 Density} bind def +/Pattern2 {0.500 Density} bind def +/Pattern3 {0.750 Density} bind def +/Pattern4 {0.125 Density} bind def +/Pattern5 {0.375 Density} bind def +/Pattern6 {0.625 Density} bind def +/Pattern7 {0.875 Density} bind def +} def +% +% Now test for support of Level 2 code +% +Level1 {Level1PatternFill} {Level2PatternFill} ifelse +% +/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont +dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall +currentdict end definefont pop +% +/MFshow { + { dup 5 get 3 ge + { 5 get 3 eq {gsave} {grestore} ifelse } + {dup dup 0 get findfont exch 1 get scalefont setfont + [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 + get exch 4 get {textshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq + {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 + get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div + dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get + textshow 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop + pop aload pop M} ifelse }ifelse }ifelse } + ifelse } + forall} def +/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def +/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } + {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont + 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def +/MLshow { currentpoint stroke M + 0 exch R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/MRshow { currentpoint stroke M + exch dup MFwidth neg 3 -1 roll R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/MCshow { currentpoint stroke M + exch dup MFwidth -2 div 3 -1 roll R + Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def +/XYsave { [( ) 1 2 true false 3 ()] } bind def +/XYrestore { [( ) 1 2 true false 4 ()] } bind def +Level1 SuppressPDFMark or +{} { +/SDict 10 dict def +systemdict /pdfmark known not { + userdict /pdfmark systemdict /cleartomark get put +} if +SDict begin [ + /Title (42-years-processor-trend.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 5.0 patchlevel 3) + /Author (rupp) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Feb 15 05:52:29 2018) + /DOCINFO pdfmark +end +} ifelse +% +% Support for boxed text - Ethan A Merritt May 2005 +% +/InitTextBox { userdict /TBy2 3 -1 roll put userdict /TBx2 3 -1 roll put + userdict /TBy1 3 -1 roll put userdict /TBx1 3 -1 roll put + /Boxing true def } def +/ExtendTextBox { Boxing + { gsave dup false charpath pathbbox + dup TBy2 gt {userdict /TBy2 3 -1 roll put} {pop} ifelse + dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse + dup TBy1 lt {userdict /TBy1 3 -1 roll put} {pop} ifelse + dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse + grestore } if } def +/PopTextBox { newpath TBx1 TBxmargin sub TBy1 TBymargin sub M + TBx1 TBxmargin sub TBy2 TBymargin add L + TBx2 TBxmargin add TBy2 TBymargin add L + TBx2 TBxmargin add TBy1 TBymargin sub L closepath } def +/DrawTextBox { PopTextBox stroke /Boxing false def} def +/FillTextBox { gsave PopTextBox 1 1 1 setrgbcolor fill grestore /Boxing false def} def +0 0 0 0 InitTextBox +/TBxmargin 20 def +/TBymargin 20 def +/Boxing false def +/textshow { ExtendTextBox Gshow } def +% +% redundant definitions for compatibility with prologue.ps older than 5.0.2 +/LTB {BL [] LCb DL} def +/LTb {PL [] LCb DL} def +end +%%EndProlog +%%Page: 1 1 +gnudict begin +gsave +doclip +50 50 translate +0.050 0.050 scale +0 setgray +newpath +(Helvetica) findfont 140 scalefont setfont +BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 5760.00 4032.00 BoxColFill} if +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 925 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 925 M +63 0 V +4166 0 R +-63 0 V +stroke +294 925 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (0)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1251 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1251 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1251 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (1)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1577 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1577 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1577 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (2)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1903 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1903 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1903 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (3)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 2229 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 2229 M +63 0 V +4166 0 R +-63 0 V +stroke +294 2229 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (4)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 2555 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 2555 M +63 0 V +4166 0 R +-63 0 V +stroke +294 2555 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (5)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 2881 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 2881 M +63 0 V +4166 0 R +-63 0 V +stroke +294 2881 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (6)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 3206 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 3206 M +63 0 V +4166 0 R +-63 0 V +stroke +294 3206 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (7)] +] -60.7 MRshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 697 M +0 63 V +0 2602 R +0 -63 V +stroke +378 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 1970)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +1224 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +1224 697 M +0 63 V +0 2602 R +0 -63 V +stroke +1224 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 1980)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +2070 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +2070 697 M +0 63 V +0 2602 R +0 -63 V +stroke +2070 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 1990)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +2915 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +2915 697 M +0 63 V +0 2602 R +0 -63 V +stroke +2915 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 2000)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +3761 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +3761 697 M +0 63 V +0 2602 R +0 -63 V +stroke +3761 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 2010)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +4607 697 M +0 2665 V +stroke +1.500 UL +LTb +LCb setrgbcolor +4607 697 M +0 63 V +0 2602 R +0 -63 V +stroke +4607 557 M +[ [(Helvetica) 140.0 0.0 true true 0 ( 2020)] +] -46.7 MCshow +1.500 UL +LTb +LCb setrgbcolor +1.500 UL +LTB +LCb setrgbcolor +378 3362 N +378 697 L +4229 0 V +0 2665 V +-4229 0 V +Z stroke +1.000 UP +0.00 0.00 0.00 C 4692 1349 M +[ [(Helvetica) 140.0 0.0 true true 0 (Number of)] +] -46.7 MLshow +0.00 0.00 0.00 C 4692 1192 M +[ [(Helvetica) 140.0 0.0 true true 0 (Logical Cores)] +] -46.7 MLshow +0.00 0.53 0.00 C 4692 2058 M +[ [(Helvetica) 140.0 0.0 true true 0 (Frequency \(MHz\))] +] -46.7 MLshow +0.00 0.00 0.73 C 4692 2612 M +[ [(Helvetica) 140.0 0.0 true true 0 (Single-Thread)] +] -46.7 MLshow +0.00 0.00 0.73 C 4692 2456 M +[ [(Helvetica) 140.0 0.0 true true 0 (Performance)] +] -46.7 MLshow +0.00 0.00 0.73 C 4692 2319 M +[ [(Helvetica) 140.0 0.0 true true 0 (\(SpecINT x 10)] +[(Helvetica) 112.0 70.0 true true 0 (3)] +[(Helvetica) 140.0 0.0 true true 0 (\))] +] -60.7 MLshow +0.80 0.40 0.00 C 4692 3134 M +[ [(Helvetica) 140.0 0.0 true true 0 (Transistors)] +] -46.7 MLshow +0.80 0.40 0.00 C 4692 2979 M +[ [(Helvetica) 140.0 0.0 true true 0 (\(thousands\))] +] -46.7 MLshow +0.73 0.00 0.00 C 4692 1732 M +[ [(Helvetica) 140.0 0.0 true true 0 (Typical Power)] +] -46.7 MLshow +0.73 0.00 0.00 C 4692 1577 M +[ [(Helvetica) 140.0 0.0 true true 0 (\(Watts\))] +] -46.7 MLshow +0.00 0.00 0.00 C 378 201 M +[ [(Helvetica) 80.0 0.0 true true 0 (Original data up to the year 2010 collected and plotted by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. Hammond, and C. Batten)] +] -26.7 MLshow +0.00 0.00 0.00 C 378 102 M +[ [(Helvetica) 80.0 0.0 true true 0 (New plot and data collected for 2010-2017 by K. Rupp)] +] -26.7 MLshow +1.500 UL +LTb +LCb setrgbcolor +LCb setrgbcolor +2492 347 M +[ [(Helvetica) 140.0 0.0 true true 0 (Year)] +] -46.7 MCshow +LTb +LCb setrgbcolor +2492 3572 M +[ [(Helvetica) 140.0 0.0 true true 0 (42 Years of Microprocessor Trend Data)] +] -46.7 MCshow +% Begin plot #1 +1.000 UP +1.000 UL +LTb +0.00 0.00 0.00 C /Helvetica findfont 140 scalefont setfont +/vshift -46 def +537 925 DiaF +569 925 DiaF +740 925 DiaF +1191 925 DiaF +1419 925 DiaF +1724 925 DiaF +1752 925 DiaF +1956 925 DiaF +2025 925 DiaF +2118 925 DiaF +2269 925 DiaF +2297 925 DiaF +2322 925 DiaF +2358 925 DiaF +2468 925 DiaF +2529 925 DiaF +2558 925 DiaF +2586 925 DiaF +2619 925 DiaF +2651 925 DiaF +2684 925 DiaF +2700 925 DiaF +2720 925 DiaF +2818 925 DiaF +2846 925 DiaF +2875 925 DiaF +2932 925 DiaF +2972 925 DiaF +3009 925 DiaF +3054 925 DiaF +3066 925 DiaF +3115 925 DiaF +3147 925 DiaF +3163 925 DiaF +3196 925 DiaF +3212 925 DiaF +3229 925 DiaF +3322 1023 DiaF +3326 925 DiaF +3399 1023 DiaF +3407 925 DiaF +3420 1219 DiaF +3428 1023 DiaF +3493 1023 DiaF +3513 1023 DiaF +3562 1121 DiaF +3570 1236 DiaF +3570 1023 DiaF +3582 1023 DiaF +3590 1219 DiaF +3607 1121 DiaF +3631 1023 DiaF +3692 1080 DiaF +3696 1121 DiaF +3716 1121 DiaF +3729 1080 DiaF +3737 1219 DiaF +3737 1178 DiaF +3777 1317 DiaF +3859 1277 DiaF +3873 1349 DiaF +3922 1219 DiaF +3964 1317 DiaF +3965 1317 DiaF +3990 1415 DiaF +4006 1317 DiaF +4049 1701 DiaF +4083 1375 DiaF +4113 1406 DiaF +4142 1514 DiaF +4167 1317 DiaF +4168 1375 DiaF +4169 1432 DiaF +4297 1461 DiaF +4311 1718 DiaF +4325 1571 DiaF +4396 1514 DiaF +4402 1461 DiaF +4403 1495 DiaF +% End plot #1 +% Begin plot #2 +1.000 UP +1.000 UL +LTb +0.00 0.53 0.00 C /Helvetica findfont 140 scalefont setfont +537 875 BoxF +569 829 BoxF +744 1024 BoxF +1187 1154 BoxF +1419 1181 BoxF +1724 1318 BoxF +1752 1318 BoxF +1956 1448 BoxF +2025 1379 BoxF +2118 1421 BoxF +2273 1517 BoxF +2297 1505 BoxF +2297 1578 BoxF +2326 1673 BoxF +2358 1521 BoxF +2358 1448 BoxF +2468 1635 BoxF +2468 1731 BoxF +2529 1731 BoxF +2553 1563 BoxF +2586 1673 BoxF +2606 1673 BoxF +2614 1563 BoxF +2647 1807 BoxF +2692 1708 BoxF +2700 1815 BoxF +2708 1696 BoxF +2716 1731 BoxF +2818 1803 BoxF +2842 1731 BoxF +2846 1773 BoxF +2871 1792 BoxF +2871 1807 BoxF +2932 1861 BoxF +2972 1903 BoxF +3009 1887 BoxF +3017 2002 BoxF +3058 1872 BoxF +3066 1952 BoxF +3119 2017 BoxF +3151 1987 BoxF +3159 1903 BoxF +3204 1926 BoxF +3212 2013 BoxF +3220 1987 BoxF +3322 2040 BoxF +3322 1994 BoxF +3326 2086 BoxF +3399 2067 BoxF +3411 2048 BoxF +3420 1929 BoxF +3424 2017 BoxF +3497 2086 BoxF +3497 2040 BoxF +3509 2044 BoxF +3513 2021 BoxF +3562 2055 BoxF +3570 2120 BoxF +3570 2101 BoxF +3578 2002 BoxF +3590 1952 BoxF +3607 2002 BoxF +3607 2021 BoxF +3631 2059 BoxF +3692 2033 BoxF +3700 2071 BoxF +3712 2040 BoxF +3733 2040 BoxF +3737 2071 BoxF +3777 2021 BoxF +3859 2079 BoxF +3873 2027 BoxF +3922 2058 BoxF +3964 2063 BoxF +3965 2053 BoxF +3990 2088 BoxF +4006 2032 BoxF +4049 1928 BoxF +4083 2043 BoxF +4113 2048 BoxF +4142 2088 BoxF +4167 2067 BoxF +4168 2038 BoxF +4169 2021 BoxF +4297 2014 BoxF +4311 1960 BoxF +4325 2099 BoxF +4396 2014 BoxF +4402 2008 BoxF +4403 2032 BoxF +% End plot #2 +% Begin plot #3 +1.000 UP +1.000 UL +LTb +0.00 0.00 0.73 C /Helvetica findfont 140 scalefont setfont +1956 1551 CircleF +2025 1479 CircleF +2122 1494 CircleF +2273 1563 CircleF +2297 1658 CircleF +2297 1719 CircleF +2326 1742 CircleF +2358 1700 CircleF +2472 1754 CircleF +2472 1830 CircleF +2529 1907 CircleF +2553 1777 CircleF +2590 1891 CircleF +2590 1899 CircleF +2606 1845 CircleF +2606 1949 CircleF +2651 1987 CircleF +2692 1937 CircleF +2700 1983 CircleF +2712 1876 CircleF +2716 1956 CircleF +2822 2082 CircleF +2846 2021 CircleF +2846 1922 CircleF +2871 2044 CircleF +2875 1991 CircleF +2932 2075 CircleF +2972 2124 CircleF +3009 2143 CircleF +3017 2162 CircleF +3058 2109 CircleF +3066 2162 CircleF +3119 2220 CircleF +3155 2208 CircleF +3159 2220 CircleF +3204 2231 CircleF +3212 2246 CircleF +3224 2269 CircleF +3322 2319 CircleF +3322 2300 CircleF +3322 2334 CircleF +3403 2304 CircleF +3411 2334 CircleF +3497 2319 CircleF +3501 2334 CircleF +3505 2407 CircleF +3513 2350 CircleF +3574 2392 CircleF +3578 2277 CircleF +3607 2330 CircleF +3702 2412 CircleF +3719 2334 CircleF +3736 2416 CircleF +3787 2432 CircleF +3803 2363 CircleF +3859 2445 CircleF +3873 2421 CircleF +3922 2398 CircleF +3964 2389 CircleF +3965 2480 CircleF +4006 2398 CircleF +4083 2480 CircleF +4113 2480 CircleF +4167 2496 CircleF +4168 2494 CircleF +4169 2496 CircleF +4297 2512 CircleF +4402 2519 CircleF +4403 2529 CircleF +% End plot #3 +% Begin plot #4 +1.000 UP +1.000 UL +LTb +0.80 0.40 0.00 C /Helvetica findfont 140 scalefont setfont +537 1043 TriUF +573 1104 TriUF +744 1181 TriUF +1187 1402 TriUF +1419 1620 TriUF +1724 1719 TriUF +1752 1589 TriUF +1956 1605 TriUF +2025 1929 TriUF +2118 1929 TriUF +2273 1929 TriUF +2297 2063 TriUF +2297 1918 TriUF +2326 1979 TriUF +2358 2063 TriUF +2358 1891 TriUF +2468 1994 TriUF +2468 2048 TriUF +2529 2224 TriUF +2553 2063 TriUF +2590 2143 TriUF +2606 2174 TriUF +2606 2086 TriUF +2614 2109 TriUF +2647 2224 TriUF +2692 2143 TriUF +2700 2082 TriUF +2708 2212 TriUF +2716 2189 TriUF +2822 2288 TriUF +2842 2220 TriUF +2846 2178 TriUF +2871 2220 TriUF +2871 2338 TriUF +2932 2342 TriUF +2972 2376 TriUF +2972 2415 TriUF +3009 2380 TriUF +3017 2434 TriUF +3058 2361 TriUF +3070 2415 TriUF +3119 2472 TriUF +3151 2418 TriUF +3159 2667 TriUF +3204 2613 TriUF +3212 2468 TriUF +3224 2563 TriUF +3322 2586 TriUF +3322 2563 TriUF +3322 2697 TriUF +3399 2674 TriUF +3407 2571 TriUF +3420 2712 TriUF +3428 2575 TriUF +3497 2743 TriUF +3497 2617 TriUF +3501 2682 TriUF +3505 2709 TriUF +3505 2804 TriUF +3513 2613 TriUF +3562 2804 TriUF +3570 2674 TriUF +3574 2850 TriUF +3578 2575 TriUF +3590 2785 TriUF +3611 2766 TriUF +3631 2754 TriUF +3692 2770 TriUF +3700 2846 TriUF +3733 2999 TriUF +3737 2972 TriUF +3777 2754 TriUF +3794 2919 TriUF +3859 2903 TriUF +3873 3016 TriUF +3922 2906 TriUF +3964 3004 TriUF +3965 2998 TriUF +3990 2986 TriUF +4006 2906 TriUF +4049 3108 TriUF +4083 3087 TriUF +4113 3087 TriUF +4142 3084 TriUF +4167 3016 TriUF +4168 3070 TriUF +4169 3127 TriUF +4297 3160 TriUF +4325 3175 TriUF +4396 3299 TriUF +% End plot #4 +% Begin plot #5 +1.000 UP +1.000 UL +LTb +0.73 0.00 0.00 C /Helvetica findfont 140 scalefont setfont +537 810 TriDF +573 803 TriDF +744 913 TriDF +1187 1001 TriDF +1419 1081 TriDF +1724 986 TriDF +1752 1081 TriDF +1956 1120 TriDF +2025 1070 TriDF +2118 1101 TriDF +2273 1177 TriDF +2297 1303 TriDF +2326 1429 TriDF +2358 1081 TriDF +2358 1292 TriDF +2468 1398 TriDF +2468 1081 TriDF +2529 1479 TriDF +2553 1318 TriDF +2590 1421 TriDF +2602 1410 TriDF +2606 1253 TriDF +2614 1269 TriDF +2651 1460 TriDF +2692 1379 TriDF +2700 1433 TriDF +2708 1326 TriDF +2716 1418 TriDF +2822 1563 TriDF +2846 1406 TriDF +2846 1299 TriDF +2871 1326 TriDF +2871 1356 TriDF +2932 1433 TriDF +2972 1475 TriDF +2972 1349 TriDF +3009 1528 TriDF +3017 1532 TriDF +3058 1574 TriDF +3070 1498 TriDF +3119 1475 TriDF +3155 1509 TriDF +3159 1574 TriDF +3204 1639 TriDF +3212 1536 TriDF +3224 1559 TriDF +3322 1559 TriDF +3322 1597 TriDF +3326 1578 TriDF +3399 1612 TriDF +3407 1555 TriDF +3420 1532 TriDF +3428 1379 TriDF +3497 1612 TriDF +3501 1517 TriDF +3501 1609 TriDF +3505 1536 TriDF +3513 1414 TriDF +3562 1616 TriDF +3574 1578 TriDF +3582 1414 TriDF +3590 1555 TriDF +3607 1540 TriDF +3611 1570 TriDF +3631 1517 TriDF +3692 1570 TriDF +3700 1616 TriDF +3716 1609 TriDF +3725 1570 TriDF +3733 1616 TriDF +3794 1651 TriDF +3859 1614 TriDF +3873 1614 TriDF +3922 1569 TriDF +3964 1624 TriDF +3965 1614 TriDF +3990 1675 TriDF +4006 1597 TriDF +4049 1732 TriDF +4083 1614 TriDF +4113 1639 TriDF +4142 1675 TriDF +4167 1619 TriDF +4168 1619 TriDF +4169 1624 TriDF +4297 1629 TriDF +4311 1704 TriDF +4396 1660 TriDF +4402 1624 TriDF +4403 1678 TriDF +% End plot #5 +2.000 UL +LTb +LCb setrgbcolor +1.500 UL +LTB +LCb setrgbcolor +378 3362 N +378 697 L +4229 0 V +0 2665 V +-4229 0 V +Z stroke +1.000 UP +1.500 UL +LTb +LCb setrgbcolor +stroke +grestore +end +showpage +%%Trailer +%%DocumentFonts: Helvetica diff --git a/42yrs/42-years-processor-trend.pdf b/42yrs/42-years-processor-trend.pdf new file mode 100644 index 0000000..1e5c593 Binary files /dev/null and b/42yrs/42-years-processor-trend.pdf differ diff --git a/42yrs/42-years-processor-trend.png b/42yrs/42-years-processor-trend.png new file mode 100644 index 0000000..4915f23 Binary files /dev/null and b/42yrs/42-years-processor-trend.png differ diff --git a/42yrs/cores.dat b/42yrs/cores.dat new file mode 100644 index 0000000..717c150 --- /dev/null +++ b/42yrs/cores.dat @@ -0,0 +1,80 @@ +1971.875 1 +1972.25961538 1 +1974.27884615 1 +1979.61538462 1 +1982.30769231 1 +1985.91346154 1 +1986.25 1 +1988.65384615 1 +1989.47115385 1 +1990.57692308 1 +1992.35576923 1 +1992.69230769 1 +1992.98076923 1 +1993.41346154 1 +1994.71153846 1 +1995.43269231 1 +1995.76923077 1 +1996.10576923 1 +1996.49038462 1 +1996.875 1 +1997.25961538 1 +1997.45192308 1 +1997.69230769 1 +1998.84615385 1 +1999.18269231 1 +1999.51923077 1 +2000.19230769 1 +2000.67307692 1 +2001.10576923 1 +2001.63461538 1 +2001.77884615 1 +2002.35576923 1 +2002.74038462 1 +2002.93269231 1 +2003.31730769 1 +2003.50961538 1 +2003.70192308 1 +2004.80769231 2 +2004.85576923 1 +2005.72115385 2 +2005.81730769 1 +2005.96153846 8 +2006.05769231 2 +2006.82692308 2 +2007.06730769 2 +2007.64423077 4 +2007.74038462 9 +2007.74038462 2 +2007.88461538 2 +2007.98076923 8 +2008.17307692 4 +2008.46153846 2 +2009.18269231 3 +2009.23076923 4 +2009.47115385 4 +2009.61538462 3 +2009.71153846 8 +2009.71153846 6 +2010.19230769 16 +#### +2011.16 12 +2011.32 20 +2011.9 8 +2012.40 16 +2012.41 16 +2012.7 32 +2012.9 16 +2013.4 240 +2013.8 24 +2014.16 30 +2014.5 64 +2014.8 16 +2014.81 24 +2014.82 36 +2016.33 44 +2016.5 272 +2016.67 96 +2017.5 64 +2017.58 44 +2017.59 56 diff --git a/42yrs/frequency.dat b/42yrs/frequency.dat new file mode 100644 index 0000000..2ab025a --- /dev/null +++ b/42yrs/frequency.dat @@ -0,0 +1,91 @@ +1971.875 0.704135515486 +1972.25961538 0.509367521678 +1974.32692308 2.01691455473 +1979.56730769 5.04806571667 +1982.30769231 6.09756235221 +1985.91346154 16.1076153462 +1986.25 16.1076153462 +1988.65384615 40.3151936286 +1989.47115385 24.8045441431 +1990.57692308 33.3762469429 +1992.40384615 65.5248823737 +1992.69230769 60.4296390238 +1992.69230769 100.903504484 +1993.02884615 198.095677855 +1993.41346154 67.3170382414 +1993.41346154 40.3151936286 +1994.71153846 151.247254531 +1994.71153846 296.93148482 +1995.43269231 296.93148482 +1995.72115385 90.5797775943 +1996.10576923 198.095677855 +1996.34615385 198.095677855 +1996.44230769 90.5797775943 +1996.82692308 509.367521678 +1997.35576923 252.547893258 +1997.45192308 537.611747456 +1997.54807692 232.909659246 +1997.64423077 296.93148482 +1998.84615385 495.806824168 +1999.13461538 296.93148482 +1999.18269231 399.542055895 +1999.47115385 457.252669897 +1999.47115385 509.367521678 +2000.19230769 743.179548784 +2000.67307692 1000 +2001.10576923 897.687132447 +2001.20192308 2016.91455473 +2001.68269231 805.842187761 +2001.77884615 1420.18116969 +2002.40384615 2246.79009181 +2002.78846154 1810.55824303 +2002.88461538 1000 +2003.41346154 1175.74326592 +2003.50961538 2186.97465501 +2003.60576923 1810.55824303 +2004.80769231 2641.64832039 +2004.80769231 1910.95297497 +2004.85576923 3651.74127255 +2005.72115385 3190.84898063 +2005.86538462 2788.12666541 +2005.96153846 1207.90074743 +2006.00961538 2246.79009181 +2006.875 3651.74127255 +2006.875 2641.64832039 +2007.01923077 2713.89943121 +2007.06730769 2308.24152676 +2007.64423077 2942.72717621 +2007.74038462 4655.52593116 +2007.74038462 4067.94432108 +2007.83653846 2016.91455473 +2007.98076923 1420.18116969 +2008.17307692 2016.91455473 +2008.17307692 2308.24152676 +2008.46153846 3023.21302502 +2009.18269231 2502.86543117 +2009.27884615 3278.12115139 +2009.42307692 2641.64832039 +2009.66346154 2641.64832039 +2009.71153846 3278.12115139 +2010.19230769 2308.24152676 +#### +2011.16 3470 +2011.32 2400 +2011.9 3000 +2012.40 3100 +2012.41 2900 +2012.7 3700 +2012.9 2500 +2013.4 1200 +2013.8 2700 +2014.16 2800 +2014.5 3700 +2014.8 3200 +2014.81 2600 +2014.82 2300 +2016.33 2200 +2016.5 1500 +2016.67 4000 +2017.5 2200 +2017.58 2100 +2017.59 2500 diff --git a/42yrs/plot.gnuplot b/42yrs/plot.gnuplot new file mode 100644 index 0000000..4dfc9bf --- /dev/null +++ b/42yrs/plot.gnuplot @@ -0,0 +1,56 @@ + + +set terminal postscript eps color enhanced #font 'CourierBold,14' +set output "42-years-processor-trend.eps" + +set rmargin at screen 0.64 + +set style line 1 lt 1 ps 1 pt 13 lc rgb "#000000" +set style line 2 lt 1 ps 1 pt 5 lc rgb "#008800" +set style line 3 lt 1 ps 1 pt 7 lc rgb "#0000BB" +set style line 4 lt 1 ps 1 pt 9 lc rgb "#CC6600" +set style line 5 lt 1 ps 1 pt 11 lc rgb "#BB0000" + + +set size 0.8 +set size ratio 0.63 + +set border lw 1.5 + +set xlabel "Year" + +set grid +unset key +set logscale y +set format y "10^{%T}" + +set xrange [1970:2020] +set yrange [0.2:3e7] +unset mytics + +set label "Number of" at 2021,2e1 tc ls 1 +set label "Logical Cores" at 2021,6.6e0 tc ls 1 + +set label "Frequency (MHz)" at 2021,3e3 tc ls 2 + +set label "Single-Thread" at 2021,1.5e5 tc ls 3 +set label "Performance" at 2021,5e4 tc ls 3 +set label "(SpecINT x 10^{3})" at 2021,1.9e4 tc ls 3 + +set label "Transistors" at 2021,6e6 tc ls 4 +set label "(thousands)" at 2021,2e6 tc ls 4 + +set label "Typical Power" at 2021,3e2 tc ls 5 +set label "(Watts)" at 2021,1e2 tc ls 5 + +set title "42 Years of Microprocessor Trend Data" + +set label "Original data up to the year 2010 collected and plotted by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. Hammond, and C. Batten" at 1970,6e-3 tc ls 1 font ",8" +set label "New plot and data collected for 2010-2017 by K. Rupp" at 1970,3e-3 tc ls 1 font ",8" + +plot \ + "cores.dat" using 1:2 ls 1 with points, \ + "frequency.dat" using 1:2 ls 2 with points, \ + "specint.dat" using 1:2 ls 3 with points, \ + "transistors.dat" using 1:2 ls 4 with points, \ + "watts.dat" using 1:2 ls 5 with points diff --git a/42yrs/specint.dat b/42yrs/specint.dat new file mode 100644 index 0000000..5a85165 --- /dev/null +++ b/42yrs/specint.dat @@ -0,0 +1,71 @@ +1988.65384615 83.5362546958 +1989.47115385 50.0286461058 +1990.625 55.7306040127 +1992.40384615 90.5797775943 +1992.69230769 177.827941004 +1992.69230769 273.841963426 +1993.02884615 321.967844425 +1993.41346154 239.279917343 +1994.75961538 349.115193717 +1994.75961538 598.885433492 +1995.43269231 1027.35076818 +1995.72115385 410.469838044 +1996.15384615 922.239565104 +1996.15384615 973.377380904 +1996.34615385 667.142718041 +1996.34615385 1382.37222736 +1996.875 1810.55824303 +1997.35576923 1274.87836177 +1997.45192308 1762.35644057 +1997.59615385 827.882590628 +1997.64423077 1459.02421563 +1998.89423077 3554.52235561 +1999.18269231 2308.24152676 +1999.18269231 1144.4419008 +1999.47115385 2713.89943121 +1999.51923077 1860.07840181 +2000.19230769 3367.78028307 +2000.67307692 4782.85814165 +2001.10576923 5473.70326288 +2001.20192308 6264.33536657 +2001.68269231 4293.51021008 +2001.77884615 6264.33536657 +2002.40384615 9389.79801048 +2002.83653846 8659.6432336 +2002.88461538 9389.79801048 +2003.41346154 10181.5172172 +2003.50961538 11341.944035 +2003.65384615 13335.2143216 +2004.80769231 18938.4202733 +2004.80769231 16548.1709994 +2004.80769231 21096.9051341 +2005.76923077 17000.7761882 +2005.86538462 21096.9051341 +2006.875 18938.4202733 +2006.92307692 21096.9051341 +2006.97115385 35226.9465147 +2007.06730769 23501.4008461 +2007.78846154 31622.7766017 +2007.83653846 14074.6466334 +2008.17307692 20535.2502646 +#### +2009.3 36600 # Xeon W5580 +2009.5 21100 # Opteron 2435 +2009.7 37700 # Xeon W5590 +2010.3 42000 # Xeon X5680 +2010.5 25800 # Opteron 4184 +#### +2011.16 46000.7 +2011.32 39000.4 +2011.9 33000.6 +2012.40 31000.8 +2012.41 59000.0 +2012.9 33000.7 +2013.8 59000.6 +2014.16 59000.9 +2014.8 66000.4 +2014.81 65000.4 +2014.82 66000.1 +2016.33 73900.2 +2017.58 77900.2 +2017.59 83600.3 diff --git a/42yrs/transistors.dat b/42yrs/transistors.dat new file mode 100644 index 0000000..1a6157a --- /dev/null +++ b/42yrs/transistors.dat @@ -0,0 +1,91 @@ +1971.875 2.30824152676 +1972.30769231 3.55452235561 +1974.32692308 6.09756235221 +1979.56730769 29.1637757405 +1982.30769231 135.772714211 +1985.91346154 273.841963426 +1986.25 109.411381058 +1988.65384615 121.881418484 +1989.47115385 1207.90074743 +1990.57692308 1207.90074743 +1992.40384615 1207.90074743 +1992.69230769 3105.90022362 +1992.69230769 1113.97385999 +1993.02884615 1715.43789634 +1993.41346154 3105.90022362 +1993.41346154 922.239565104 +1994.71153846 1910.95297497 +1994.71153846 2788.12666541 +1995.43269231 9646.61619911 +1995.72115385 3105.90022362 +1996.15384615 5473.70326288 +1996.34615385 6792.52507006 +1996.34615385 3651.74127255 +1996.44230769 4293.51021008 +1996.82692308 9646.61619911 +1997.35576923 5473.70326288 +1997.45192308 3554.52235561 +1997.54807692 8896.4911282 +1997.64423077 7566.6953714 +1998.89423077 15261.3780258 +1999.13461538 9389.79801048 +1999.18269231 6978.3058486 +1999.47115385 9389.79801048 +1999.47115385 21673.9216957 +2000.19230769 22266.7201035 +2000.67307692 28387.3596476 +2000.67307692 37180.2666391 +2001.10576923 29163.7757405 +2001.20192308 42550.6550247 +2001.68269231 25482.9674798 +2001.82692308 37180.2666391 +2002.40384615 55730.6040127 +2002.78846154 38197.1754928 +2002.88461538 220673.406908 +2003.41346154 151247.254531 +2003.50961538 54246.9093701 +2003.65384615 106498.563535 +2004.80769231 125214.968907 +2004.80769231 106498.563535 +2004.80769231 273841.963426 +2005.72115385 232909.659246 +2005.81730769 112403.866377 +2005.96153846 305052.789027 +2006.05769231 115478.198469 +2006.875 378551.524926 +2006.875 155383.983127 +2006.92307692 245824.406892 +2006.97115385 296931.48482 +2006.97115385 582941.534714 +2007.06730769 151247.254531 +2007.64423077 582941.534714 +2007.74038462 232909.659246 +2007.78846154 805842.187761 +2007.83653846 115478.198469 +2007.98076923 509367.521678 +2008.22115385 445079.406236 +2008.46153846 410469.838044 +2009.18269231 457252.669897 +2009.27884615 784388.558145 +2009.66346154 2308241.52676 +2009.71153846 1910952.97497 +2010.19230769 410469.838044 +2010.38461538 1309747.2643 +#### +2011.16 1170000 +2011.32 2600000 +2011.9 1200000 +2012.40 2400000 +2012.41 2300000 +2012.7 2100000 +2012.9 1200000 +2013.4 5000000 +2013.8 4300000 +2014.16 4300000 +2014.5 4200000 +2014.8 2600000 +2014.81 3800000 +2014.82 5700000 +2016.33 7200000 +2016.67 8000000 +2017.5 19200000 diff --git a/42yrs/watts.dat b/42yrs/watts.dat new file mode 100644 index 0000000..0ad64e2 --- /dev/null +++ b/42yrs/watts.dat @@ -0,0 +1,91 @@ +1971.875 0.445079406236 +1972.30769231 0.421696503429 +1974.32692308 0.922239565104 +1979.56730769 1.71543789634 +1982.30769231 3.02321302502 +1985.91346154 1.53992652606 +1986.25 3.02321302502 +1988.65384615 3.95964498892 +1989.47115385 2.78812666541 +1990.57692308 3.45989166087 +1992.40384615 5.9352292723 +1992.69230769 14.4595990307 +1993.02884615 35.2269465147 +1993.41346154 3.02321302502 +1993.41346154 13.3352143216 +1994.71153846 28.3873596476 +1994.71153846 3.02321302502 +1995.43269231 50.0286461058 +1995.72115385 16.1076153462 +1996.15384615 33.3762469429 +1996.29807692 30.7808954655 +1996.34615385 10.1815172172 +1996.44230769 11.341944035 +1996.875 43.7144481261 +1997.35576923 24.8045441431 +1997.45192308 36.1904305625 +1997.54807692 17.0007761882 +1997.64423077 32.4876838337 +1998.89423077 90.5797775943 +1999.18269231 29.96142741 +1999.18269231 14.0746466334 +1999.47115385 17.0007761882 +1999.47115385 21.0969051341 +2000.19230769 36.1904305625 +2000.67307692 48.6967525166 +2000.67307692 19.9885481187 +2001.10576923 71.0497411443 +2001.20192308 72.9930061435 +2001.68269231 98.2171889188 +2001.82692308 57.2548788436 +2002.40384615 48.6967525166 +2002.83653846 62.0824360719 +2002.88461538 98.2171889188 +2003.41346154 155.383983127 +2003.50961538 74.9894209332 +2003.65384615 88.1683066776 +2004.80769231 88.1683066776 +2004.80769231 115.478198469 +2004.85576923 100.903504484 +2005.72115385 128.639694494 +2005.81730769 85.8210354325 +2005.96153846 72.9930061435 +2006.05769231 24.8045441431 +2006.875 128.639694494 +2006.92307692 65.5248823737 +2006.92307692 125.214968907 +2006.97115385 74.9894209332 +2007.06730769 31.6227766017 +2007.64423077 132.158088956 +2007.78846154 100.903504484 +2007.88461538 31.6227766017 +2007.98076923 85.8210354325 +2008.17307692 77.0404392011 +2008.22115385 95.6023901095 +2008.46153846 65.5248823737 +2009.18269231 95.6023901095 +2009.27884615 132.158088956 +2009.47115385 125.214968907 +2009.56730769 95.6023901095 +2009.66346154 132.158088956 +2010.38461538 168.485487944 +#### +2011.16 130 +2011.32 130 +2011.9 95 +2012.40 140 +2012.41 130 +2012.7 200 +2012.9 115 +2013.4 300 +2013.8 130 +2014.16 155 +2014.5 200 +2014.8 135 +2014.81 135 +2014.82 140 +2016.33 145 +2016.5 245 +2017.5 180 +2017.58 140 +2017.59 205 diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..6723086 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,114 @@ +This data and plotting script is provided under the permissive 'Creative Commons Attribution 4.0 International Public License' +In short, you are free to: + Share - copy and redistribute the material in any medium or format + Adapt - remix, transform, and build upon the material +for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. + +No additional restrictions - You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. + +See also: + https://creativecommons.org/licenses/by/4.0/ + https://creativecommons.org/licenses/by/4.0/legalcode + +-------------------- + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 – Definitions. + + Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. + Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. + Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. + Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. + Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. + Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. + Licensor means the individual(s) or entity(ies) granting rights under this Public License. + Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. + Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. + You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + License grant. + Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: + reproduce and Share the Licensed Material, in whole or in part; and + produce, reproduce, and Share Adapted Material. + Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. + Term. The term of this Public License is specified in Section 6(a). + Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + Downstream recipients. + Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. + No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. + No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). + + Other rights. + Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. + Patent and trademark rights are not licensed under this Public License. + To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + Attribution. + + If You Share the Licensed Material (including in modified form), You must: + retain the following if it is supplied by the Licensor with the Licensed Material: + identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); + a copyright notice; + a notice that refers to this Public License; + a notice that refers to the disclaimer of warranties; + a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + indicate if You modified the Licensed Material and retain an indication of any previous modifications; and + indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. + You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. + If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. + If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; + if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and + You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + + Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. + To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. + + The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + + This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. + + Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or + upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. + For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. + Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + + The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. + Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + +Section 8 – Interpretation. + + For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. + To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. + No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. + Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. + diff --git a/newdata.txt b/newdata.txt new file mode 100644 index 0000000..5cb1822 --- /dev/null +++ b/newdata.txt @@ -0,0 +1,27 @@ +# Processors added to the comparison +# Threads := No. of logical cores (SMT threads counted separately) +# +# Intel (see http://en.wikipedia.org/wiki/List_of_Intel_Xeon_microprocessors#Nehalem-based_Xeons) +# AMD (see http://www.techarp.com/showarticle.aspx?artno=354&pgno=2) +# +# Name Year Trans.(10^9) SpecInt Freq (GHz) TDP Threads Notes +Xeon X5690 2011.02 1.17 46.7 3.47 130 12 # http://www.anandtech.com/show/5553/the-xeon-e52600-dual-sandybridge-for-servers/2 +Xeon E7-8870 2011.04 2.6 39.4 2.4 130 20 +Opteron 4284 2011.11 1.2 33.6 3.0 95 8 +Opteron 6284SE 2012.05 2.4 31.8 3.1 140 16 +Xeon E5-2690 2012.05 2.3 59.0 2.9 130 16 # http://www.anandtech.com/show/5553/the-xeon-e52600-dual-sandybridge-for-servers/2 +Power7+ 780 2012.08 2.1 ?? 3.7 200 32 # TDP: http://arstechnica.com/civis/viewtopic.php?f=8&t=40992 +Opteron 6380 2012.11 1.2 33.7 2.5 115 16 +Xeon Phi 2013.05 5.0 ?? 1.2 300 240 +Xeon E5-2697v2 2013.09 4.3 59.6 2.7 130 24 # http://wccftech.com/intel-announces-ivy-bridge-ep-xeon/ +Xeon E7-4890v2 2014.02 4.3 59.9 2.8 155 30 +Power8 S814 2014.06 4.2 ?? 3.7 200 64 # TDP taken from Power7+ +Xeon E5-2667v3 2014.09 2.6 66.4 3.2 135 16 +Xeon E5-2690v3 2014.09 3.8 65.4 2.6 135 24 +Xeon E5-2699v3 2014.09 5.7 66.1 2.3 145 36 +Xeon E5-2699v4 2016.04 7.2 73.9 2.2 145 44 +Xeon Phi 7290 2016.06 ?? ?? 1.5 245 272 +Power8 2016.08 8.0 ?? 4.0 ?? 96 # Freq. approximate, TDP unknown +Epyc 7601 2017.06 19.2 ?? 2.2 180 64 +Xeon Gold 6152 2017.07 ?? 77.9 2.1 140 44 +Xeon Pl. 8180 2017.07 ?? 83.6 2.5 205 56