diff --git a/48yrs/48-years-processor-trend.eps b/48yrs/48-years-processor-trend.eps new file mode 100644 index 0000000..aa6a799 --- /dev/null +++ b/48yrs/48-years-processor-trend.eps @@ -0,0 +1,1406 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: 48-years-processor-trend.eps +%%Creator: gnuplot 5.2 patchlevel 8 +%%CreationDate: Thu Jul 16 10:51:23 2020 +%%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.2 (Dec 2017) +% +%/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 closepath gsave fill grestore stroke} 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 +% +/Metrics {ExtendTextBox Gswidth} def +/Lwidth {currentpoint stroke M 0 vshift R Metrics} def +/Rwidth {currentpoint stroke M dup stringwidth pop neg vshift R Metrics} def +/Cwidth {currentpoint stroke M dup stringwidth pop -2 div vshift R Metrics} def +/GLwidth {currentpoint stroke M 0 vshift R {ExtendTextBox} forall} def +/GRwidth {currentpoint stroke M dup Gwidth vshift R {ExtendTextBox} forall} def +/GCwidth {currentpoint stroke M dup Gwidth 2 div vshift R {ExtendTextBox} forall} def +/GLwidth2 {0 Gwidth AddGlyphWidth} def +/GRwidth2 {Gwidth -1 mul 0 AddGlyphWidth} def +/GCwidth2 {Gwidth 2 div dup -1 mul AddGlyphWidth} def +/AddGlyphWidth { dup TBx2 gt {userdict /TBx2 3 -1 roll put} {pop} ifelse + dup TBx1 lt {userdict /TBx1 3 -1 roll put} {pop} ifelse } def +/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} {Metrics 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 Gswidth pop -2 div + dup 0 R} {dup 6 get Gswidth 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 (48-years-processor-trend.eps) + /Subject (gnuplot plot) + /Creator (gnuplot 5.2 patchlevel 8) +% /Producer (gnuplot) +% /Keywords () + /CreationDate (Thu Jul 16 10:51:23 2020) + /DOCINFO pdfmark +end +} ifelse +% +% Support for boxed text - Ethan A Merritt Sep 2016 +% +/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 { dup type /stringtype eq + { 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 } + {} ifelse} 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 fill grestore /Boxing false def} def +0 0 0 0 InitTextBox +/TBxmargin 20 def +/TBymargin 20 def +/Boxing false def +/textshow { ExtendTextBox Gshow } 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 919 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 919 M +63 0 V +4166 0 R +-63 0 V +stroke +294 919 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (0)] +] -60.7 MRshow +/Helvetica findfont 140 scalefont setfont +/vshift -46 def +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1236 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1236 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1236 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (1)] +] -60.7 MRshow +/Helvetica findfont 140 scalefont setfont +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1553 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1553 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1553 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (2)] +] -60.7 MRshow +/Helvetica findfont 140 scalefont setfont +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 1871 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 1871 M +63 0 V +4166 0 R +-63 0 V +stroke +294 1871 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (3)] +] -60.7 MRshow +/Helvetica findfont 140 scalefont setfont +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 2188 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 2188 M +63 0 V +4166 0 R +-63 0 V +stroke +294 2188 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (4)] +] -60.7 MRshow +/Helvetica findfont 140 scalefont setfont +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 2506 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 2506 M +63 0 V +4166 0 R +-63 0 V +stroke +294 2506 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (5)] +] -60.7 MRshow +/Helvetica findfont 140 scalefont setfont +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 2823 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 2823 M +63 0 V +4166 0 R +-63 0 V +stroke +294 2823 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (6)] +] -60.7 MRshow +/Helvetica findfont 140 scalefont setfont +1.500 UL +LTb +LCb setrgbcolor +0.500 UL +LTa +LCa setrgbcolor +378 3140 M +4229 0 V +stroke +1.500 UL +LTb +LCb setrgbcolor +378 3140 M +63 0 V +4166 0 R +-63 0 V +stroke +294 3140 M +[ [(Helvetica) 140.0 0.0 true true 0 (10)] +[(Helvetica) 112.0 70.0 true true 0 (7)] +] -60.7 MRshow +/Helvetica findfont 140 scalefont setfont +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 +/Helvetica findfont 140 scalefont setfont +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 +/Helvetica findfont 140 scalefont setfont +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 +/Helvetica findfont 140 scalefont setfont +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 +/Helvetica findfont 140 scalefont setfont +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 +/Helvetica findfont 140 scalefont setfont +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 +/Helvetica findfont 140 scalefont setfont +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 1332 M +[ [(Helvetica) 140.0 0.0 true true 0 (Number of)] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.00 0.00 0.00 C +4692 1179 M +[ [(Helvetica) 140.0 0.0 true true 0 (Logical Cores)] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.00 0.53 0.00 C +4692 2022 M +[ [(Helvetica) 140.0 0.0 true true 0 (Frequency \(MHz\))] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.00 0.00 0.73 C +4692 2561 M +[ [(Helvetica) 140.0 0.0 true true 0 (Single-Thread)] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.00 0.00 0.73 C +4692 2410 M +[ [(Helvetica) 140.0 0.0 true true 0 (Performance)] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.00 0.00 0.73 C +4692 2277 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 +/Helvetica findfont 140 scalefont setfont +0.80 0.40 0.00 C +4692 3070 M +[ [(Helvetica) 140.0 0.0 true true 0 (Transistors)] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.80 0.40 0.00 C +4692 2918 M +[ [(Helvetica) 140.0 0.0 true true 0 (\(thousands\))] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.73 0.00 0.00 C +4692 1705 M +[ [(Helvetica) 140.0 0.0 true true 0 (Typical Power)] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.73 0.00 0.00 C +4692 1553 M +[ [(Helvetica) 140.0 0.0 true true 0 (\(Watts\))] +] -46.7 MLshow +/Helvetica findfont 140 scalefont setfont +0.00 0.00 0.00 C +378 214 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 +/Helvetica findfont 140 scalefont setfont +0.00 0.00 0.00 C +378 118 M +[ [(Helvetica) 80.0 0.0 true true 0 (New plot and data collected for 2010-2019 by K. Rupp)] +] -26.7 MLshow +/Helvetica findfont 140 scalefont setfont +1.500 UL +LTb +LCb setrgbcolor +LCb setrgbcolor +2492 347 M +[ [(Helvetica) 140.0 0.0 true true 0 (Year)] +] -46.7 MCshow +/Helvetica findfont 140 scalefont setfont +LTb +LCb setrgbcolor +2492 3572 M +[ [(Helvetica) 140.0 0.0 true true 0 (48 Years of Microprocessor Trend Data)] +] -46.7 MCshow +/Helvetica findfont 140 scalefont setfont +LTb +% Begin plot #1 +1.000 UP +1.000 UL +LTb +0.00 0.00 0.00 C +537 919 DiaF +569 919 DiaF +740 919 DiaF +1191 919 DiaF +1419 919 DiaF +1724 919 DiaF +1752 919 DiaF +1956 919 DiaF +2025 919 DiaF +2118 919 DiaF +2269 919 DiaF +2297 919 DiaF +2322 919 DiaF +2358 919 DiaF +2468 919 DiaF +2529 919 DiaF +2558 919 DiaF +2586 919 DiaF +2619 919 DiaF +2651 919 DiaF +2684 919 DiaF +2700 919 DiaF +2720 919 DiaF +2818 919 DiaF +2846 919 DiaF +2875 919 DiaF +2932 919 DiaF +2972 919 DiaF +3009 919 DiaF +3054 919 DiaF +3066 919 DiaF +3115 919 DiaF +3147 919 DiaF +3163 919 DiaF +3196 919 DiaF +3212 919 DiaF +3229 919 DiaF +3322 1014 DiaF +3326 919 DiaF +3399 1014 DiaF +3407 919 DiaF +3420 1205 DiaF +3428 1014 DiaF +3493 1014 DiaF +3513 1014 DiaF +3562 1110 DiaF +3570 1222 DiaF +3570 1014 DiaF +3582 1014 DiaF +3590 1205 DiaF +3607 1110 DiaF +3631 1014 DiaF +3692 1070 DiaF +3696 1110 DiaF +3716 1110 DiaF +3729 1070 DiaF +3737 1205 DiaF +3737 1166 DiaF +3777 1301 DiaF +3859 1261 DiaF +3873 1332 DiaF +3922 1205 DiaF +3964 1301 DiaF +3965 1301 DiaF +3990 1396 DiaF +4006 1301 DiaF +4049 1674 DiaF +4083 1357 DiaF +4113 1388 DiaF +4142 1492 DiaF +4167 1301 DiaF +4168 1357 DiaF +4169 1413 DiaF +4297 1440 DiaF +4311 1691 DiaF +4325 1548 DiaF +4396 1492 DiaF +4402 1440 DiaF +4403 1474 DiaF +4472 1536 DiaF +4480 1523 DiaF +4548 1474 DiaF +4590 1588 DiaF +% End plot #1 +% Begin plot #2 +1.000 UP +1.000 UL +LTb +0.00 0.53 0.00 C +537 870 BoxF +569 826 BoxF +744 1016 BoxF +1187 1142 BoxF +1419 1168 BoxF +1724 1302 BoxF +1752 1302 BoxF +1956 1428 BoxF +2025 1361 BoxF +2118 1402 BoxF +2273 1495 BoxF +2297 1484 BoxF +2297 1555 BoxF +2326 1648 BoxF +2358 1499 BoxF +2358 1428 BoxF +2468 1611 BoxF +2468 1703 BoxF +2529 1703 BoxF +2553 1540 BoxF +2586 1648 BoxF +2606 1648 BoxF +2614 1540 BoxF +2647 1778 BoxF +2692 1681 BoxF +2700 1785 BoxF +2708 1670 BoxF +2716 1703 BoxF +2818 1774 BoxF +2842 1703 BoxF +2846 1744 BoxF +2871 1763 BoxF +2871 1778 BoxF +2932 1830 BoxF +2972 1871 BoxF +3009 1856 BoxF +3017 1968 BoxF +3058 1841 BoxF +3066 1919 BoxF +3119 1982 BoxF +3151 1953 BoxF +3159 1871 BoxF +3204 1893 BoxF +3212 1979 BoxF +3220 1953 BoxF +3322 2005 BoxF +3322 1960 BoxF +3326 2049 BoxF +3399 2031 BoxF +3411 2012 BoxF +3420 1897 BoxF +3424 1982 BoxF +3497 2049 BoxF +3497 2005 BoxF +3509 2008 BoxF +3513 1986 BoxF +3562 2020 BoxF +3570 2083 BoxF +3570 2064 BoxF +3578 1968 BoxF +3590 1919 BoxF +3607 1968 BoxF +3607 1986 BoxF +3631 2023 BoxF +3692 1997 BoxF +3700 2034 BoxF +3712 2005 BoxF +3733 2005 BoxF +3737 2034 BoxF +3777 1986 BoxF +3859 2042 BoxF +3873 1991 BoxF +3922 2022 BoxF +3964 2027 BoxF +3965 2018 BoxF +3990 2051 BoxF +4006 1997 BoxF +4049 1896 BoxF +4083 2008 BoxF +4113 2013 BoxF +4142 2051 BoxF +4167 2031 BoxF +4168 2003 BoxF +4169 1986 BoxF +4297 1979 BoxF +4311 1927 BoxF +4325 2062 BoxF +4396 1979 BoxF +4402 1973 BoxF +4403 1997 BoxF +4472 2039 BoxF +4480 1896 BoxF +4548 2008 BoxF +4590 1983 BoxF +% End plot #2 +% Begin plot #3 +1.000 UP +1.000 UL +LTb +0.00 0.00 0.73 C +1956 1529 CircleF +2025 1458 CircleF +2122 1473 CircleF +2273 1540 CircleF +2297 1633 CircleF +2297 1692 CircleF +2326 1715 CircleF +2358 1674 CircleF +2472 1726 CircleF +2472 1800 CircleF +2529 1875 CircleF +2553 1748 CircleF +2590 1860 CircleF +2590 1867 CircleF +2606 1815 CircleF +2606 1915 CircleF +2651 1953 CircleF +2692 1904 CircleF +2700 1949 CircleF +2712 1845 CircleF +2716 1923 CircleF +2822 2046 CircleF +2846 1986 CircleF +2846 1889 CircleF +2871 2008 CircleF +2875 1956 CircleF +2932 2038 CircleF +2972 2087 CircleF +3009 2105 CircleF +3017 2124 CircleF +3058 2072 CircleF +3066 2124 CircleF +3119 2179 CircleF +3155 2168 CircleF +3159 2179 CircleF +3204 2191 CircleF +3212 2206 CircleF +3224 2228 CircleF +3322 2276 CircleF +3322 2258 CircleF +3322 2291 CircleF +3403 2261 CircleF +3411 2291 CircleF +3497 2276 CircleF +3501 2291 CircleF +3505 2362 CircleF +3513 2306 CircleF +3574 2347 CircleF +3578 2235 CircleF +3607 2287 CircleF +3702 2367 CircleF +3719 2291 CircleF +3736 2371 CircleF +3787 2386 CircleF +3803 2319 CircleF +3859 2398 CircleF +3873 2376 CircleF +3922 2353 CircleF +3964 2344 CircleF +3965 2433 CircleF +4006 2353 CircleF +4083 2433 CircleF +4113 2433 CircleF +4167 2448 CircleF +4168 2446 CircleF +4169 2448 CircleF +4297 2464 CircleF +4402 2471 CircleF +4403 2481 CircleF +4548 2492 CircleF +4590 2472 CircleF +% End plot #3 +% Begin plot #4 +1.000 UP +1.000 UL +LTb +0.80 0.40 0.00 C +537 1034 TriUF +573 1094 TriUF +744 1168 TriUF +1187 1384 TriUF +1419 1596 TriUF +1724 1692 TriUF +1752 1566 TriUF +1956 1581 TriUF +2025 1897 TriUF +2118 1897 TriUF +2273 1897 TriUF +2297 2027 TriUF +2297 1886 TriUF +2326 1945 TriUF +2358 2027 TriUF +2358 1860 TriUF +2468 1960 TriUF +2468 2012 TriUF +2529 2183 TriUF +2553 2027 TriUF +2590 2105 TriUF +2606 2135 TriUF +2606 2049 TriUF +2614 2072 TriUF +2647 2183 TriUF +2692 2105 TriUF +2700 2046 TriUF +2708 2172 TriUF +2716 2150 TriUF +2822 2246 TriUF +2842 2179 TriUF +2846 2139 TriUF +2871 2179 TriUF +2871 2295 TriUF +2932 2298 TriUF +2972 2332 TriUF +2972 2369 TriUF +3009 2336 TriUF +3017 2388 TriUF +3058 2317 TriUF +3070 2369 TriUF +3119 2425 TriUF +3151 2373 TriUF +3159 2615 TriUF +3204 2563 TriUF +3212 2421 TriUF +3224 2514 TriUF +3322 2536 TriUF +3322 2514 TriUF +3322 2644 TriUF +3399 2622 TriUF +3407 2522 TriUF +3420 2659 TriUF +3428 2525 TriUF +3497 2689 TriUF +3497 2566 TriUF +3501 2629 TriUF +3505 2656 TriUF +3505 2748 TriUF +3513 2563 TriUF +3562 2748 TriUF +3570 2622 TriUF +3574 2793 TriUF +3578 2525 TriUF +3590 2730 TriUF +3611 2711 TriUF +3631 2700 TriUF +3692 2715 TriUF +3700 2789 TriUF +3733 2938 TriUF +3737 2912 TriUF +3777 2700 TriUF +3794 2860 TriUF +3859 2844 TriUF +3873 2955 TriUF +3922 2848 TriUF +3964 2944 TriUF +3965 2938 TriUF +3990 2925 TriUF +4006 2848 TriUF +4049 3045 TriUF +4083 3024 TriUF +4113 3024 TriUF +4142 3021 TriUF +4167 2955 TriUF +4168 3007 TriUF +4169 3063 TriUF +4297 3095 TriUF +4325 3109 TriUF +4396 3230 TriUF +4472 3109 TriUF +4480 3243 TriUF +4548 3109 TriUF +4590 3330 TriUF +% End plot #4 +% Begin plot #5 +1.000 UP +1.000 UL +LTb +0.73 0.00 0.00 C +537 807 TriDF +573 800 TriDF +744 908 TriDF +1187 993 TriDF +1419 1071 TriDF +1724 978 TriDF +1752 1071 TriDF +1956 1108 TriDF +2025 1060 TriDF +2118 1090 TriDF +2273 1164 TriDF +2297 1287 TriDF +2326 1410 TriDF +2358 1071 TriDF +2358 1276 TriDF +2468 1380 TriDF +2468 1071 TriDF +2529 1458 TriDF +2553 1302 TriDF +2590 1402 TriDF +2602 1391 TriDF +2606 1239 TriDF +2614 1254 TriDF +2651 1439 TriDF +2692 1361 TriDF +2700 1413 TriDF +2708 1309 TriDF +2716 1399 TriDF +2822 1540 TriDF +2846 1387 TriDF +2846 1283 TriDF +2871 1309 TriDF +2871 1339 TriDF +2932 1413 TriDF +2972 1454 TriDF +2972 1332 TriDF +3009 1506 TriDF +3017 1510 TriDF +3058 1551 TriDF +3070 1477 TriDF +3119 1454 TriDF +3155 1488 TriDF +3159 1551 TriDF +3204 1614 TriDF +3212 1514 TriDF +3224 1536 TriDF +3322 1536 TriDF +3322 1573 TriDF +3326 1555 TriDF +3399 1588 TriDF +3407 1532 TriDF +3420 1510 TriDF +3428 1361 TriDF +3497 1588 TriDF +3501 1495 TriDF +3501 1584 TriDF +3505 1514 TriDF +3513 1395 TriDF +3562 1592 TriDF +3574 1555 TriDF +3582 1395 TriDF +3590 1532 TriDF +3607 1518 TriDF +3611 1547 TriDF +3631 1495 TriDF +3692 1547 TriDF +3700 1592 TriDF +3716 1584 TriDF +3725 1547 TriDF +3733 1592 TriDF +3794 1625 TriDF +3859 1590 TriDF +3873 1590 TriDF +3922 1546 TriDF +3964 1600 TriDF +3965 1590 TriDF +3990 1649 TriDF +4006 1573 TriDF +4049 1705 TriDF +4083 1590 TriDF +4113 1614 TriDF +4142 1649 TriDF +4167 1595 TriDF +4168 1595 TriDF +4169 1600 TriDF +4297 1605 TriDF +4311 1677 TriDF +4396 1634 TriDF +4402 1600 TriDF +4403 1652 TriDF +4472 1642 TriDF +4480 1680 TriDF +4548 1652 TriDF +4590 1665 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/48yrs/48-years-processor-trend.pdf b/48yrs/48-years-processor-trend.pdf new file mode 100644 index 0000000..6b14c8d Binary files /dev/null and b/48yrs/48-years-processor-trend.pdf differ diff --git a/48yrs/48-years-processor-trend.png b/48yrs/48-years-processor-trend.png new file mode 100644 index 0000000..0b42a05 Binary files /dev/null and b/48yrs/48-years-processor-trend.png differ diff --git a/48yrs/cores.dat b/48yrs/cores.dat new file mode 100644 index 0000000..5a89c09 --- /dev/null +++ b/48yrs/cores.dat @@ -0,0 +1,84 @@ +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 +2018.4 88 +2018.5 80 +2019.3 56 +2019.8 128 \ No newline at end of file diff --git a/48yrs/frequency.dat b/48yrs/frequency.dat new file mode 100644 index 0000000..8eb750c --- /dev/null +++ b/48yrs/frequency.dat @@ -0,0 +1,95 @@ +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 +2018.4 3400 +2018.5 1200 +2019.3 2700 +2019.8 2250 \ No newline at end of file diff --git a/48yrs/plot.gnuplot b/48yrs/plot.gnuplot new file mode 100644 index 0000000..254bb19 --- /dev/null +++ b/48yrs/plot.gnuplot @@ -0,0 +1,56 @@ + + +set terminal postscript eps color enhanced #font 'CourierBold,14' +set output "48-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:5e7] +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 "48 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-2019 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/48yrs/specint.dat b/48yrs/specint.dat new file mode 100644 index 0000000..cface2c --- /dev/null +++ b/48yrs/specint.dat @@ -0,0 +1,73 @@ +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 +2019.3 90900.2 +2019.8 78300.4 \ No newline at end of file diff --git a/48yrs/transistors.dat b/48yrs/transistors.dat new file mode 100644 index 0000000..64354f9 --- /dev/null +++ b/48yrs/transistors.dat @@ -0,0 +1,95 @@ +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 +2018.4 8000000 +2018.5 21100000 +2019.3 8000000 +2019.8 39500000 \ No newline at end of file diff --git a/48yrs/watts.dat b/48yrs/watts.dat new file mode 100644 index 0000000..17cec97 --- /dev/null +++ b/48yrs/watts.dat @@ -0,0 +1,95 @@ +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 +2018.4 190 +2018.5 250 +2019.3 205 +2019.8 225 diff --git a/README.md b/README.md index b02390f..e6fe51d 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ This repository contains the raw data used in my blog series on microprocessor trend data: + * [48 Years of Microprocessor Trend Data](https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/) + ![48 Years of Microprocessor Trend Data Chart](https://github.com/karlrupp/microprocessor-trend-data/blob/master/48yrs/48-years-processor-trend.png?raw=true) * [42 Years of Microprocessor Trend Data](https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/) * [40 Years of Microprocessor Trend Data](https://www.karlrupp.net/2015/06/40-years-of-microprocessor-trend-data/) diff --git a/newdata.txt b/newdata.txt index 5cb1822..13cfa3c 100644 --- a/newdata.txt +++ b/newdata.txt @@ -1,9 +1,13 @@ -# Processors added to the comparison +# Processors added to the comparison (data prior to 2011 was extracted with g3data from the original '35 years ...' plot) # 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) # +# Note on SpecInt results: +# Data up to 2017 from SpecINT 2006 database at https://www.spec.org/cpu2006/results/ +# Data after 2017 from SpecINT 2017 database at https://www.spec.org/cpu2017/results/, converted by a factor of 9.0 (empirically determined by comparing results for Xeon Platinum 8180) +# # 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 @@ -24,4 +28,8 @@ 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 +Xeon Pl. 8180 2017.07 ?? 83.6 2.5 205 56 # SpecInt 2017: 9.31 +Power9 AC922 2018.04 8.0 ?? 3.4 190 88 # TDP taken from comparable Power9 processors +Quadro GV100 2018.05 21.1 ?? 1.2 250 80 # GPU; 80 SMs +Xeon Pl. 8280 2019.03 8.0 90.9 2.7 205 56 # SpecInt 2017: 10.1 +Epyc 7742 2019.08 39.5 78.3 2.25 225 128 # SpecInt 2017: 8.7