dockerfile/examples/omnivore/content-fetch/readabilityjs/test/test-pages/debugger.medium/source.html

2946 lines
536 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta data-rh="true" charset="utf-8" />
<script async="async" src="https://cdn.branch.io/branch-latest.min.js"></script>
<script async="async" src="https://www.google-analytics.com/analytics.js"></script>
<script>
<![CDATA[
!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach((function(n){n(o,t)})),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach((function(e){n(e,l,f)}))}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener)
]]>
</script>
<script defer="defer" src="https://cdn.optimizely.com/js/16180790160.js"></script>
<title>
Why Is Apples M1 Chip So Fast? | Debugger
</title>
<meta data-rh="true" name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1" />
<meta data-rh="true" name="theme-color" content="#000000" />
<meta data-rh="true" name="twitter:app:name:iphone" content="Medium" />
<meta data-rh="true" name="twitter:app:id:iphone" content="828256236" />
<meta data-rh="true" property="al:ios:app_name" content="Medium" />
<meta data-rh="true" property="al:ios:app_store_id" content="828256236" />
<meta data-rh="true" property="al:android:package" content="com.medium.reader" />
<meta data-rh="true" property="fb:app_id" content="542599432471018" />
<meta data-rh="true" property="og:site_name" content="Medium" />
<meta data-rh="true" property="og:type" content="article" />
<meta data-rh="true" property="article:published_time" content="2021-01-24T11:01:23.917Z" />
<meta data-rh="true" name="title" content="Why Is Apples M1 Chip So Fast? | Debugger" />
<meta data-rh="true" property="og:title" content="Why Is Apples M1 Chip So Fast?" />
<meta data-rh="true" property="twitter:title" content="Why Is Apples M1 Chip So Fast?" />
<meta data-rh="true" name="twitter:site" content="@Medium" />
<meta data-rh="true" name="twitter:app:url:iphone" content="medium://p/3262b158cba2" />
<meta data-rh="true" property="al:android:url" content="medium://p/3262b158cba2" />
<meta data-rh="true" property="al:ios:url" content="medium://p/3262b158cba2" />
<meta data-rh="true" property="al:android:app_name" content="Medium" />
<meta data-rh="true" name="description" content="Real-world experience with the new M1 Macs has started ticking in. They are fast. Real fast. But why? What is the magic?" />
<meta data-rh="true" property="og:description" content="Real world experience with the new M1 Macs have started ticking in. They are fast. Real fast. But why? What is the magic?" />
<meta data-rh="true" property="twitter:description" content="Real world experience with the new M1 Macs have started ticking in. They are fast. Real fast. But why? What is the magic?" />
<meta data-rh="true" property="og:url" content="https://debugger.medium.com/why-is-apples-m1-chip-so-fast-3262b158cba2" />
<meta data-rh="true" property="al:web:url" content="https://debugger.medium.com/why-is-apples-m1-chip-so-fast-3262b158cba2" />
<meta data-rh="true" property="og:image" content="https://miro.medium.com/max/1200/1*thz7gKafCYxWoA0h8aGjcg.jpeg" />
<meta data-rh="true" name="twitter:image:src" content="https://miro.medium.com/max/1200/1*thz7gKafCYxWoA0h8aGjcg.jpeg" />
<meta data-rh="true" name="twitter:card" content="summary_large_image" />
<meta data-rh="true" property="article:author" content="https://erik-engheim.medium.com" />
<meta data-rh="true" name="author" content="Erik Engheim" />
<meta data-rh="true" name="robots" content="index,follow,max-image-preview:large" />
<meta data-rh="true" name="referrer" content="unsafe-url" />
<meta data-rh="true" name="twitter:label1" value="Reading time" />
<meta data-rh="true" name="twitter:data1" value="23 min read" />
<meta data-rh="true" name="parsely-post-id" content="3262b158cba2" />
<link data-rh="true" rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" />
<link data-rh="true" rel="apple-touch-icon" sizes="152x152" href="https://miro.medium.com/fit/c/152/152/1*sHhtYhaCe2Uc3IU0IgKwIQ.png" />
<link data-rh="true" rel="apple-touch-icon" sizes="120x120" href="https://miro.medium.com/fit/c/120/120/1*sHhtYhaCe2Uc3IU0IgKwIQ.png" />
<link data-rh="true" rel="apple-touch-icon" sizes="76x76" href="https://miro.medium.com/fit/c/76/76/1*sHhtYhaCe2Uc3IU0IgKwIQ.png" />
<link data-rh="true" rel="apple-touch-icon" sizes="60x60" href="https://miro.medium.com/fit/c/60/60/1*sHhtYhaCe2Uc3IU0IgKwIQ.png" />
<link data-rh="true" rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/Medium-Avatar-500x500.svg" color="#171717" />
<link data-rh="true" id="glyph_preload_link" rel="preload" as="style" type="text/css" href="https://glyph.medium.com/css/unbound.css" />
<link data-rh="true" id="glyph_link" rel="stylesheet" type="text/css" href="https://glyph.medium.com/css/unbound.css" />
<link data-rh="true" rel="author" href="https://erik-engheim.medium.com" />
<link data-rh="true" rel="canonical" href="https://debugger.medium.com/why-is-apples-m1-chip-so-fast-3262b158cba2" />
<link data-rh="true" rel="alternate" href="android-app://com.medium.reader/https/medium.com/p/3262b158cba2" />
<script data-rh="true">
<![CDATA[
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-24232453-2', 'auto');
ga('send', 'pageview');
]]>
</script>
<link rel="preload" href="https://cdn.optimizely.com/js/16180790160.js" as="script" />
<style type="text/css" data-fela-rehydration="622" data-fela-type="STATIC">
/*<![CDATA[*/
html{box-sizing:border-box}*, *:before, *:after{box-sizing:inherit}body{margin:0;padding:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:rgba(0,0,0,0.8);position:relative;min-height:100vh}h1, h2, h3, h4, h5, h6, dl, dd, ol, ul, menu, figure, blockquote, p, pre, form{margin:0}menu, ol, ul{padding:0;list-style:none;list-style-image:none}main{display:block}a{color:inherit;text-decoration:none}a, button, input{-webkit-tap-highlight-color:transparent}img, svg{vertical-align:middle}button{background:transparent;overflow:visible}button, input, optgroup, select, textarea{margin:0}:root{--reach-tabs:1;--reach-menu-button:1}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="KEYFRAME">
/*<![CDATA[*/
@-webkit-keyframes k1{0%{opacity:0;transform:translateY(-60px)}100%{opacity:1;transform:translateY(0px)}}@-moz-keyframes k1{0%{opacity:0;transform:translateY(-60px)}100%{opacity:1;transform:translateY(0px)}}@keyframes k1{0%{opacity:0;transform:translateY(-60px)}100%{opacity:1;transform:translateY(0px)}}@-webkit-keyframes k2{0%{opacity:1;transform:translateY(0px)}100%{opacity:0;transform:translateY(-60px)}}@-moz-keyframes k2{0%{opacity:1;transform:translateY(0px)}100%{opacity:0;transform:translateY(-60px)}}@keyframes k2{0%{opacity:1;transform:translateY(0px)}100%{opacity:0;transform:translateY(-60px)}}@-webkit-keyframes k3{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}@-moz-keyframes k3{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}@keyframes k3{0%{opacity:0.8}50%{opacity:0.5}100%{opacity:0.8}}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE">
/*<![CDATA[*/
.a{font-family:medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}.b{font-weight:400}.c{background-color:rgba(255, 255, 255, 1)}.l{height:100vh}.m{width:100vw}.n{display:flex}.o{align-items:center}.p{justify-content:center}.q{height:25px}.r{fill:rgba(41, 41, 41, 1)}.s{display:block}.t{margin-bottom:36px}.v{width:100%}.w{overflow-x:scroll}.x{white-space:nowrap}.y{scrollbar-width:none}.z{-ms-overflow-style:none}.ab::-webkit-scrollbar{display:none}.ac{box-shadow:inset 0 -1px 0 rgba(230, 230, 230, 1)}.ae{min-height:184px}.ah{flex-direction:column}.ai{background-color:#000000}.aj{display:none}.al{border-bottom:none}.am{position:relative}.an{z-index:500}.at{max-width:1192px}.au{min-width:0}.av{height:62px}.aw{flex-direction:row}.ax{flex:1 0 auto}.ay{visibility:hidden}.az{margin-right:16px}.ba{font-family:sohne, "Helvetica Neue", Helvetica, Arial, sans-serif}.bb{font-size:14px}.bc{line-height:20px}.bd{color:rgba(217, 247, 50, 1)}.be{padding:7px 16px 9px}.bf{background:0}.bg{fill:rgba(217, 247, 50, 1)}.bh{border-color:rgba(217, 247, 50, 1)}.bm:disabled{cursor:inherit}.bn:disabled{opacity:0.3}.bo:disabled:hover{color:rgba(217, 247, 50, 1)}.bp:disabled:hover{fill:rgba(217, 247, 50, 1)}.bq:disabled:hover{border-color:rgba(217, 247, 50, 1)}.br{border-radius:4px}.bs{border-width:1px}.bt{border-style:solid}.bu{box-sizing:border-box}.bv{display:inline-block}.bw{text-decoration:none}.bx{margin-left:0px}.by{color:rgba(177, 174, 174, 1)}.bz{font-size:inherit}.ca{border:inherit}.cb{font-family:inherit}.cc{letter-spacing:inherit}.cd{font-weight:inherit}.ce{padding:0}.cf{margin:0}.cg:disabled{cursor:default}.ch:disabled{color:rgba(163, 208, 162, 0.5)}.ci:disabled{fill:rgba(163, 208, 162, 0.5)}.cj{fill:rgba(217, 214, 214, 1)}.ck{min-height:115px}.cl{justify-content:space-between}.cr{align-items:flex-start}.cs{margin-bottom:0px}.ct{margin-top:-32px}.cu{flex-wrap:wrap}.cx{margin-top:32px}.cy{margin-right:24px}.da{height:35px}.db{width:166px}.dc{flex:0 0 auto}.dd{justify-self:flex-end}.de{margin-bottom:-3px}.df{margin-left:14px}.dg{margin-top:-3px}.dh{fill:rgba(236, 233, 233, 1)}.di{padding-top:1px}.dj{height:70px}.dl{font-size:16px}.dm{line-height:24px}.dn:before{margin-bottom:-10px}.do:before{content:""}.dp:before{display:table}.dq:before{border-collapse:collapse}.dr:after{margin-top:-6px}.ds:after{content:""}.dt:after{display:table}.du:after{border-collapse:collapse}.dv{color:rgba(117, 117, 117, 1)}.dw{margin-right:32px}.dx{margin-bottom:-16px}.dy{margin-top:-14px}.dz{color:rgba(255, 255, 255, 1)}.ea{fill:rgba(255, 255, 255, 1)}.eb{background:rgba(122, 144, 0, 1)}.ec{border-color:rgba(122, 144, 0, 1)}.ef:disabled:hover{background:rgba(122, 144, 0, 1)}.eg:disabled:hover{border-color:rgba(122, 144, 0, 1)}.eh{margin-right:12px}.ei{display:inline-flex}.ej{color:inherit}.ek{fill:inherit}.en:disabled{color:rgba(117, 117, 117, 1)}.eo:disabled{fill:rgba(117, 117, 117, 1)}.ep{margin-left:12px}.eq{margin:0 12px}.er{position:absolute}.es{right:24px}.et{margin:0px}.eu{border:0px}.ev{padding:0px}.ew{cursor:pointer}.ex{stroke:rgba(117, 117, 117, 1)}.fa{border-top:none}.fb{left:0}.fc{opacity:0}.fd{position:fixed}.fe{right:0}.ff{top:0}.fh{margin-top:0px}.fi{height:60px}.fl{color:rgba(122, 144, 0, 1)}.fm{fill:rgba(122, 144, 0, 1)}.fp:disabled:hover{color:rgba(122, 144, 0, 1)}.fq:disabled:hover{fill:rgba(122, 144, 0, 1)}.fr{margin-left:16px}.fs{padding-left:24px}.ft{padding-right:24px}.fu{margin-left:auto}.fv{margin-right:auto}.fw{max-width:728px}.fx{top:calc(100vh + 100px)}.fy{bottom:calc(100vh + 100px)}.fz{width:10px}.ga{pointer-events:none}.gb{word-break:break-word}.gc{word-wrap:break-word}.gd:after{display:block}.ge:after{clear:both}.gf{max-width:680px}.gg{line-height:1.23}.gh{letter-spacing:0}.gi{font-style:normal}.gj{font-family:fell, Georgia, Cambria, "Times New Roman", Times, serif}.he{margin-bottom:-0.27em}.hf{color:rgba(41, 41, 41, 1)}.hg{line-height:1.394}.hw{margin-bottom:-0.42em}.ia{width:28px}.ib{height:28px}.ic{fill:rgba(26, 137, 23, 1)}.id{width:calc(100% + 24px)}.ie{height:calc(100% + 24px)}.if{top:50%}.ig{left:50%}.ih{transform:translateX(-50%) translateY(-50%)}.ii{border-radius:50%}.ij{fill:rgba(61, 61, 61, 1)}.ik{margin-top:-2px}.il{padding-left:4px}.im{margin:0 4px}.in{margin:0 7px}.io{align-items:flex-end}.ix{padding-right:6px}.iy{margin-right:8px}.iz{fill:rgba(117, 117, 117, 1)}.ja{margin-right:-6px}.jb{max-width:2880px}.jc{margin-top:33px}.jd{clear:both}.jf{cursor:zoom-in}.jg{z-index:auto}.ji{transition:opacity 100ms 400ms}.jj{height:100%}.jk{overflow:hidden}.jl{will-change:transform}.jm{transform:translateZ(0)}.jn{margin:auto}.jo{background-color:rgba(242, 242, 242, 1)}.jp{padding-bottom:56.25%}.jq{height:0}.jr{filter:blur(20px)}.js{transform:scale(1.1)}.jt{visibility:visible}.ju{margin-top:10px}.jv{text-align:center}.jy{line-height:1.58}.jz{letter-spacing:-0.004em}.ka{font-family:charter, Georgia, Cambria, "Times New Roman", Times, serif}.kt{margin-bottom:-0.46em}.ku{clear:left}.kv{float:left}.kw{font-size:66px}.kx{line-height:.83}.ld{list-style-type:decimal}.le{margin-left:30px}.lf{padding-left:0px}.ll{text-decoration:underline}.lm{list-style-type:disc}.ln{line-height:1.12}.lo{letter-spacing:-0.022em}.lp{font-weight:500}.mi{margin-bottom:-0.28em}.mt{max-width:100%}.mu{padding:20px}.mv{background:rgba(242, 242, 242, 1)}.mw{overflow-x:auto}.mx{line-height:1.18}.my{font-family:Menlo, Monaco, "Courier New", Courier, monospace}.mz{margin-top:-0.09em}.na{margin-bottom:-0.09em}.nb{white-space:pre-wrap}.nc{padding:2px 4px}.nd{font-size:75%}.ne> strong{font-family:inherit}.nf{max-width:400px}.ng{padding-bottom:55.75%}.nh{font-style:italic}.ni{max-width:1200px}.nj{padding-bottom:30%}.nk{max-width:600px}.nl{padding-bottom:69.66666666666667%}.nm{max-width:425px}.nn{padding-bottom:62.82352941176471%}.nv{margin-bottom:-0.31em}.nw{max-width:576px}.nx{max-width:640px}.ny{padding-bottom:50.15625%}.nz{max-width:550px}.oa{padding-bottom:66.54545454545455%}.ob{max-width:389px}.oc{padding-bottom:53.72750642673522%}.od{max-width:834px}.oe{padding-bottom:56.594724220623505%}.of{max-width:900px}.og{padding-bottom:60%}.oh{max-width:748px}.oi{padding-bottom:61.49732620320856%}.oj{padding-bottom:62.833333333333336%}.ok{max-width:358px}.ol{padding-bottom:86.31284916201118%}.om{max-width:990px}.on{padding-bottom:56.16161616161616%}.oo{margin-bottom:14px}.op{padding-top:24px}.oq{padding-bottom:10px}.or{background-color:rgba(8, 8, 8, 1)}.os{height:3px}.ot{width:3px}.ou{margin-right:20px}.ov{font-weight:700}.ow{will-change:opacity}.ox{width:188px}.oy{transform:translateX(406px)}.oz{top:calc(65px + 54px + 14px)}.pc{top:159px}.pe{width:131px}.pf{padding-bottom:28px}.pg{border-bottom:1px solid rgba(230, 230, 230, 1)}.ph{font-size:12px}.pi{line-height:16px}.pj{letter-spacing:0.083em}.pk{text-transform:uppercase}.pl{padding-bottom:5px}.pm{padding-top:5px}.pn{padding-top:2px}.po{padding-top:14px}.pp{padding-top:28px}.pq{margin-bottom:19px}.pr{margin-left:-3px}.px{outline:0}.py{border:0}.pz{user-select:none}.qa> svg{pointer-events:none}.qc{-webkit-user-select:none}.qm button{text-align:left}.qn{opacity:0.4}.qo{cursor:not-allowed}.qp{padding-right:9px}.qy{margin-top:40px}.qz{padding-bottom:25px}.ra{margin-top:25px}.rb{max-width:155px}.rf{top:1px}.rt{margin-left:-1px}.ru{margin-left:-4px}.sc{padding-right:8px}.sd{padding-bottom:40px}.se{list-style-type:none}.sf{margin-bottom:8px}.sg{font-size:13px}.sh{line-height:22px}.si{border-radius:3px}.sj{padding:5px 10px}.sk{padding-bottom:4px}.sl{padding-top:32px}.sm{background-color:rgba(250, 250, 250, 1)}.tc{text-overflow:ellipsis}.td{display:-webkit-box}.te{-webkit-line-clamp:1}.tf{-webkit-box-orient:vertical}.th{padding-right:168px}.ti{padding-top:25px}.to{margin-bottom:96px}.tp{background:rgba(255, 255, 255, 1)}.tq{margin-bottom:40px}.tr{margin-top:24px}.ts{padding-bottom:16px}.tt{margin-bottom:24px}.vf{flex-grow:0}.vg{padding-bottom:24px}.vh{max-width:500px}.vi{flex:0 1 auto}.vm{padding-bottom:8px}.vx{padding-bottom:100%}.wi{padding:32px 0}.wj{background-color:rgba(0, 0, 0, 0.9)}.wn:disabled{color:rgba(255, 255, 255, 0.7)}.wo:disabled{fill:rgba(255, 255, 255, 0.7)}.wp{height:22px}.wq{color:rgba(255, 255, 255, 0.7)}.wr{padding-top:8px}.ws{width:200px}.wu{color:rgba(255, 255, 255, 0.98)}.bi:hover{color:rgba(184, 212, 0, 1)}.bj:hover{fill:rgba(184, 212, 0, 1)}.bk:hover{border-color:rgba(184, 212, 0, 1)}.bl:hover{cursor:pointer}.ed:hover{background:rgba(105, 123, 0, 1)}.ee:hover{border-color:rgba(105, 123, 0, 1)}.el:hover{color:rgba(25, 25, 25, 1)}.em:hover{fill:rgba(25, 25, 25, 1)}.fn:hover{color:rgba(105, 123, 0, 1)}.fo:hover{fill:rgba(105, 123, 0, 1)}.qe:hover{fill:rgba(117, 117, 117, 1)}.vu:hover{text-decoration:underline}.wl:hover{color:rgba(255, 255, 255, 0.99)}.wm:hover{fill:rgba(255, 255, 255, 0.99)}.jh:focus{transform:scale(1.01)}.qd:focus{fill:rgba(117, 117, 117, 1)}.qb:active{border-style:none}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (min-width: 1080px)">
/*<![CDATA[*/
.d{display:none}.as{margin:0 64px}.ha{font-size:46px}.hb{margin-top:0.6em}.hc{line-height:56px}.hd{letter-spacing:-0.011em}.ht{font-size:22px}.hu{margin-top:0.92em}.hv{line-height:28px}.iv{margin-left:30px}.kp{font-size:21px}.kq{margin-top:2em}.kr{line-height:32px}.ks{letter-spacing:-0.003em}.lc{padding-top:7px}.lk{margin-top:1.05em}.me{font-size:30px}.mf{margin-top:1.95em}.mg{line-height:36px}.mh{letter-spacing:0}.mn{margin-top:0.86em}.ms{margin-top:56px}.nu{margin-top:1.72em}.pw{margin-right:5px}.ql{margin-top:5px}.qx{padding-left:6px}.rh{display:inline-block}.rm{margin-left:7px}.rn{margin-top:8px}.rs{width:25px}.sa{padding-left:7px}.sb{top:3px}.sz{font-size:20px}.ta{line-height:24px}.tb{max-height:24px}.tn{margin:0}.ui{width:calc(100% + 32px)}.uj{margin-left:-16px}.uk{margin-right:-16px}.vb{padding-left:16px}.vc{padding-right:16px}.vd{flex-basis:25%}.ve{max-width:25%}.vr{font-size:16px}.vs{line-height:20px}.wg{min-width:70px}.wh{min-height:70px}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (max-width: 1079.98px)">
/*<![CDATA[*/
.e{display:none}.iu{margin-left:30px}.jw{margin-left:auto}.jx{text-align:center}.pv{margin-right:5px}.qk{margin-top:5px}.qw{padding-left:6px}.rg{display:inline-block}.rk{margin-left:7px}.rl{margin-top:8px}.rr{width:25px}.ry{padding-left:7px}.rz{top:3px}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (max-width: 903.98px)">
/*<![CDATA[*/
.f{display:none}.it{margin-left:30px}.pu{margin-right:5px}.qj{margin-top:5px}.qu{padding-left:6px}.qv{top:3px}.re{display:inline-block}.ri{margin-left:7px}.rj{margin-top:8px}.rq{width:15px}.rx{padding-left:3px}.vl{margin-right:16px}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (max-width: 727.98px)">
/*<![CDATA[*/
.g{display:none}.u{margin-bottom:20px}.af{box-shadow:inset 0 -1px 0 rgba(230, 230, 230, 1)}.ag{min-height:230px}.ak{display:block}.cm{min-height:98px}.cn{display:flex}.co{align-items:flex-start}.cp{flex-direction:column}.cq{justify-content:flex-end}.cv{margin-bottom:28px}.cw{margin-top:0px}.cz{margin-top:28px}.dk{margin:0}.ey{border-top:1px solid rgba(230, 230, 230, 1)}.ez{border-bottom:1px solid rgba(230, 230, 230, 1)}.fj{align-items:center}.fk{flex:1 0 auto}.hy{margin-top:32px}.hz{flex-direction:column-reverse}.ir{margin-bottom:30px}.is{margin-left:0px}.pt{margin-left:8px}.qh{margin-top:2px}.qi{margin-right:8px}.qs{padding-left:6px}.qt{top:3px}.rd{display:inline-block}.rp{width:15px}.rw{padding-left:3px}.tu{padding-bottom:12px}.tv{margin-top:16px}.vk{margin-right:16px}.vv{margin-left:16px}.vw{margin-right:0px}.wk{padding:32px 0}.wt{width:140px}.wv{margin-bottom:16px}.ww{margin-top:30px}.wx{width:100%}.wy{flex-direction:row}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (max-width: 551.98px)">
/*<![CDATA[*/
.h{display:none}.ao{margin:0 24px}.gk{font-size:32px}.gl{margin-top:0.64em}.gm{line-height:40px}.gn{letter-spacing:-0.016em}.hh{font-size:18px}.hi{margin-top:0.79em}.hj{line-height:24px}.hx{margin-top:32px}.ip{margin-bottom:30px}.iq{margin-left:0px}.kb{margin-top:1.56em}.kc{line-height:28px}.kd{letter-spacing:-0.003em}.ky{padding-top:0}.lg{margin-top:1.34em}.lq{font-size:22px}.lr{margin-top:1.2em}.ls{letter-spacing:0}.mj{margin-top:0.67em}.mo{margin-top:40px}.no{font-size:20px}.np{margin-top:1.23em}.ps{margin-left:8px}.qf{margin-top:2px}.qg{margin-right:8px}.qq{padding-left:6px}.qr{top:3px}.rc{display:inline-block}.ro{width:15px}.rv{padding-left:3px}.sn{font-size:16px}.so{line-height:20px}.sp{max-height:20px}.tj{margin:0}.tw{width:calc(100% + 24px)}.tx{margin-left:-12px}.ty{margin-right:-12px}.ul{padding-left:12px}.um{padding-right:12px}.un{flex-basis:100%}.uo{max-width:100%}.vj{margin-right:16px}.vt{margin-bottom:0px}.vy{min-width:48px}.vz{min-height:48px}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (min-width: 904px) and (max-width: 1079.98px)">
/*<![CDATA[*/
.i{display:none}.ar{margin:0 64px}.gw{font-size:46px}.gx{margin-top:0.6em}.gy{line-height:56px}.gz{letter-spacing:-0.011em}.hq{font-size:22px}.hr{margin-top:0.92em}.hs{line-height:28px}.kl{font-size:21px}.km{margin-top:2em}.kn{line-height:32px}.ko{letter-spacing:-0.003em}.lb{padding-top:7px}.lj{margin-top:1.05em}.ma{font-size:30px}.mb{margin-top:1.95em}.mc{line-height:36px}.md{letter-spacing:0}.mm{margin-top:0.86em}.mr{margin-top:56px}.nt{margin-top:1.72em}.sw{font-size:20px}.sx{line-height:24px}.sy{max-height:24px}.tm{margin:0}.uf{width:calc(100% + 32px)}.ug{margin-left:-16px}.uh{margin-right:-16px}.ux{padding-left:16px}.uy{padding-right:16px}.uz{flex-basis:25%}.va{max-width:25%}.vp{font-size:16px}.vq{line-height:20px}.we{min-width:70px}.wf{min-height:70px}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (min-width: 728px) and (max-width: 903.98px)">
/*<![CDATA[*/
.j{display:none}.aq{margin:0 48px}.gs{font-size:46px}.gt{margin-top:0.6em}.gu{line-height:56px}.gv{letter-spacing:-0.011em}.hn{font-size:22px}.ho{margin-top:0.92em}.hp{line-height:28px}.kh{font-size:21px}.ki{margin-top:2em}.kj{line-height:32px}.kk{letter-spacing:-0.003em}.la{padding-top:7px}.li{margin-top:1.05em}.lw{font-size:30px}.lx{margin-top:1.95em}.ly{line-height:36px}.lz{letter-spacing:0}.ml{margin-top:0.86em}.mq{margin-top:56px}.ns{margin-top:1.72em}.st{font-size:20px}.su{line-height:24px}.sv{max-height:24px}.tl{margin:0}.uc{width:calc(100% + 28px)}.ud{margin-left:-14px}.ue{margin-right:-14px}.ut{padding-left:14px}.uu{padding-right:14px}.uv{flex-basis:50%}.uw{max-width:50%}.vn{font-size:16px}.vo{line-height:20px}.wc{min-width:48px}.wd{min-height:48px}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (min-width: 552px) and (max-width: 727.98px)">
/*<![CDATA[*/
.k{display:none}.ap{margin:0 24px}.go{font-size:32px}.gp{margin-top:0.64em}.gq{line-height:40px}.gr{letter-spacing:-0.016em}.hk{font-size:18px}.hl{margin-top:0.79em}.hm{line-height:24px}.ke{margin-top:1.56em}.kf{line-height:28px}.kg{letter-spacing:-0.003em}.kz{padding-top:0}.lh{margin-top:1.34em}.lt{font-size:22px}.lu{margin-top:1.2em}.lv{letter-spacing:0}.mk{margin-top:0.67em}.mp{margin-top:40px}.nq{font-size:20px}.nr{margin-top:1.23em}.sq{font-size:16px}.sr{line-height:20px}.ss{max-height:20px}.tk{margin:0}.tz{width:calc(100% + 24px)}.ua{margin-left:-12px}.ub{margin-right:-12px}.up{padding-left:12px}.uq{padding-right:12px}.ur{flex-basis:100%}.us{max-width:100%}.wa{min-width:48px}.wb{min-height:48px}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="print">
/*<![CDATA[*/
.iw{display:none}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="(prefers-reduced-motion: no-preference)">
/*<![CDATA[*/
.fg{animation:k2 .2s ease-in-out both}.je{transition:transform 300ms cubic-bezier(0.2, 0, 0.2, 1)}.pa{transition:opacity 200ms}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (max-width: 1230px)">
/*<![CDATA[*/
.pb{display:none}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="all and (max-width: 1198px)">
/*<![CDATA[*/
.pd{display:none}
/*]]>*/
</style>
<style type="text/css" data-fela-rehydration="622" data-fela-type="RULE" media="(orientation: landscape) and (max-width: 903.98px)">
/*<![CDATA[*/
.tg{max-height:none}
/*]]>*/
</style>
<link rel="icon" href="https://miro.medium.com/fit/c/128/128/1*p88dLF6W89KEG54e8BGG4A.png" data-rh="true" />
<link rel="preload" href="https://miro.medium.com/max/2880/1*s3Uiw9sGrwFiIayL4hge0A.png" as="image" data-rh="true" />
<link rel="preload" href="https://miro.medium.com/max/64/1*s3Uiw9sGrwFiIayL4hge0A.png" as="image" data-rh="true" />
<script type="application/ld+json" data-rh="true">
<![CDATA[
{"@context":"http:\u002F\u002Fschema.org","@type":"NewsArticle","image":["https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F1200\u002F1*thz7gKafCYxWoA0h8aGjcg.jpeg"],"url":"https:\u002F\u002Fdebugger.medium.com\u002Fwhy-is-apples-m1-chip-so-fast-3262b158cba2","dateCreated":"2020-11-28T04:33:13.474Z","datePublished":"2020-11-28T04:33:13.474Z","dateModified":"2021-01-24T11:01:26.109Z","headline":"Why Is Apples M1 Chip So Fast? | Debugger","name":"Why Is Apples M1 Chip So Fast? | Debugger","description":"Real-world experience with the new M1 Macs has started ticking in. They are fast. Real fast. But why? What is the magic?","identifier":"3262b158cba2","keywords":["Lite:true","Tag:M1","Tag:Apple Silicon","Tag:Apple","Tag:Microprocessor","Tag:Performance","Topic:Digital Life","Topic:Software Engineering","Topic:Gadgets","Topic:Technology","Publication:debugger-by-medium","Elevated:false","LockedPostSource:LOCKED_POST_SOURCE_UGC","LayerCake:2"],"author":{"@type":"Person","name":"Erik Engheim","url":"https:\u002F\u002Ferik-engheim.debugger.medium.com"},"creator":["Erik Engheim"],"publisher":{"@type":"Organization","name":"Debugger","url":"debugger.medium.com","logo":{"@type":"ImageObject","width":308,"height":60,"url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F308\u002F1*OMF3fSqH8t4xBJ9-6oZDZw.png"}},"mainEntityOfPage":"https:\u002F\u002Fdebugger.medium.com\u002Fwhy-is-apples-m1-chip-so-fast-3262b158cba2","isAccessibleForFree":"False","hasPart":{"@type":"WebPageElement","isAccessibleForFree":"False","cssSelector":".meteredContent"}}
]]>
</script>
<script type="text/javascript" data-rh="true">
//<![CDATA[
(function(b,r,a,n,c,h,_,s,d,k){if(!b[n]||!b[n]._q){for(;s<_.length;)c(h,_[s++]);d=r.createElement(a);d.async=1;d.src="https://cdn.branch.io/branch-latest.min.js";k=r.getElementsByTagName(a)[0];k.parentNode.insertBefore(d,k);b[n]=h}})(window,document,"script","branch",function(b,r){b[r]=function(){b._q.push([r,arguments])}},{_q:[],_v:1},"addListener applyCode autoAppIndex banner closeBanner closeJourney creditHistory credits data deepview deepviewCta first getCode init link logout redeem referrals removeListener sendSMS setBranchViewData setIdentity track validateCode trackCommerceEvent logEvent".split(" "), 0);
branch.init('key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm', {metadata: {}, 'no_journeys': true, 'disable_exit_animation': true, 'disable_entry_animation': true, 'tracking_disabled': null}, function(err, data) {});
//]]>
</script>
</head>
<body>
<div id="root">
<div class="a b c">
<script>
<![CDATA[
document.domain = document.domain;
]]>
</script>
<div>
<script>
<![CDATA[
if (window.self !== window.top) window.location = "about:blank"
]]>
</script>
</div>
<script>
<![CDATA[
window.PARSELY = window.PARSELY || {autotrack: false}
]]>
</script>
<div class="s">
<div class="t s u">
<div class="ac ae s af ag">
<div class="n ah ai">
<div class="n p">
<div class="ao ap aq ar as at au v">
<div class="ck n o aw cl cm cn co cp cq">
<div class="v n cr cl">
<div class="n v">
<div class="cs ct v n o aw cu cv cw cn co cp">
<div class="cx cy s cz">
<a href="/?source=post_page-----3262b158cba2--------------------------------" aria-label="Publication Homepage" rel="noopener">
<div class="da db s">
<img alt="Debugger" class="" src="https://miro.medium.com/max/332/1*fHP0sKfxxIHwAV-ADLsQlg.png" width="166" height="35" />
</div></a>
</div>
</div>
</div>
<div class="n o dc dd an g">
<div class="jt" id="lo-meta-header-sign-in-link">
<h4 class="ba b bb bc by">
<span><a href="https://medium.com/m/signin?operation=login&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=post_page-----3262b158cba2---------------------nav_reg-----------" class="bd bg bz ca cb cc cd ce cf bl bi bj cg ch ci" rel="noopener">Sign in</a></span>
</h4>
</div>
<div class="jt" id="lo-meta-header-sign-up-button">
<div class="de df dg cy s">
<span><button class="ba b bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw">Get started</button></span>
</div>
</div><a href="https://medium.com/?source=post_page-----3262b158cba2--------------------------------" aria-label="Homepage" rel="noopener"><svg viewbox="0 0 1043.63 592.71" class="q dh">
<g data-name="Layer 2">
<g data-name="Layer 1">
<path d="M588.67 296.36c0 163.67-131.78 296.35-294.33 296.35S0 460 0 296.36 131.78 0 294.34 0s294.33 132.69 294.33 296.36M911.56 296.36c0 154.06-65.89 279-147.17 279s-147.17-124.94-147.17-279 65.88-279 147.16-279 147.17 124.9 147.17 279M1043.63 296.36c0 138-23.17 249.94-51.76 249.94s-51.75-111.91-51.75-249.94 23.17-249.94 51.75-249.94 51.76 111.9 51.76 249.94"></path>
</g>
</g></svg></a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="s ak">
<div class="n p">
<div class="ao ap aq ar as at au v">
<div class="w x y z ab">
<div class="di dj n o">
<div class="s dk">
<div class="n o">
<div class="dw s">
<div class="dx dy s">
<div class="bv" aria-hidden="false">
<div class="n aw">
<span class="ba b dl dm dn do dp dq dr ds dt du dv"><button class="ba b bb bc dz be ea eb ec ed ee bl bm bn ef eg br bs bt bu bv bw">Follow</button></span>
</div>
</div>
</div>
</div>
<div class="eh ei ah">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/followers?source=post_page-----3262b158cba2--------------------------------">8.4K Followers</a>
</div>
<div class="ep s g">
·
</div>
<div class="ep s g">
<nav class="n o">
<span class="eq n ah"><a href="https://onezero.medium.com/?source=post_page-----3262b158cba2--------------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">OneZero</a></span><span class="eq n ah"><a href="http://futurehuman.medium.com/?source=post_page-----3262b158cba2--------------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">Future Human</a></span>
</nav>
</div>
<div class="ep n ah g">
<a href="/about?source=post_page-----3262b158cba2--------------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">About</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="xy s">
<div class="ey ez fa al c fb xl fd fe ff jt an xx">
<div class="n p">
<div class="ao ap aq ar as at au v"></div>
</div>
</div>
</div>
</div>
<div class="s iw">
<div class="yc yd v jj fd ye yf ew fc yg ga" aria-hidden="true"></div>
<div class="yh fd yi yj xr yc jj bu yk yl ym xl yn yo yp wx yq yr ys yt" aria-hidden="true">
<div class="yw yx n o aw cl">
<h2 class="ba lp yy dm gh hf">
Responses (76)
</h2>
<div class="n aw">
<div class="s am yz">
<div class="cf s am fe">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" data-testid="close-button" aria-label="close"><svg width="25" height="25" viewbox="0 0 25 25" class="iz">
<path d="M18.13 6.11l-5.61 5.61-5.6-5.61-.81.8 5.61 5.61-5.61 5.61.8.8 5.61-5.6 5.61 5.6.8-.8-5.6-5.6 5.6-5.62"></path></svg></button>
</div>
</div>
</div>
</div>
<div>
<div class="dm">
<div class="aca za acb s">
<div class="yj abs br n ah abt abu abv">
<div class="n ah">
<h4 class="ba b bb bc hf">
<span><a href="https://medium.com/m/signin?operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----3262b158cba2---------------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="acc s">
<h4 class="ba b bb bc dv">
<span>What are your thoughts?</span>
</h4>
</div></a></span>
</h4>
<div class="abw n abx aby fc abz">
<div class="abr">
<h4 class="ba b bb bc hf">
<button class="ba b bb bc hf acd r bf ace acf acg ach bl bm bn aci acj ack br bs bt bu bv bw">Cancel</button><button class="ba b bb bc dz acd ea acl acm acn aco bl bm bn acp acq br bs bt bu bv bw" disabled="disabled">Respond</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="s">
<div class="s">
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<img alt="Andrew Zhu" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/1*jWjp-XobYFzCEI0bENf65w.png" width="32" height="32" />
<div class="zp s">
<div class="n aw">
<a href="https://xhinker.medium.com/?source=responses-----3262b158cba2----0----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
Andrew Zhu
</h4></a>
</div><a href="https://xhinker.medium.com/once-linux-and-windows-can-run-on-m1-chip-amd-and-intel-is-doom-f2ba5da67bc6?source=responses-----3262b158cba2----0----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div role="button" tabindex="0" class="zq zr si zs zt zu ew c">
<p id="embedded-quote-3fb807533ddc-7fce" class="zv zw gi ka b hh zx hk zy zz aba abb abc abd abe kt gb abf hf" data-selectable-paragraph="">
<mark class="abg xt ew">PC users may jump ship, but that is a slow process. You dont leave immediately a platform you are heavily invested in.</mark>
</p>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Once, Linux and Windows can run on M1 chip. AMD and Intel is doom.
</h4>
</div>
</div>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
based on current changing speed, Run Linux and Windows in M1 chip is just a matter of time.
</h4>
</div>
</div>
</div>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2Ff2ba5da67bc6&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----f2ba5da67bc6----0-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
147
</h4>
</div>
</div>
</div>
<div class="ep q n o">
<div class="n o">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo"><svg width="29" height="29" class="r q abj" aria-label="responses">
<path d="M21.27 20.06a9.04 9.04 0 0 0 2.75-6.68C24.02 8.21 19.67 4 14.1 4S4 8.21 4 13.38c0 5.18 4.53 9.39 10.1 9.39 1 0 2-.14 2.95-.41.28.25.6.49.92.7a7.46 7.46 0 0 0 4.19 1.3c.27 0 .5-.13.6-.35a.63.63 0 0 0-.05-.65 8.08 8.08 0 0 1-1.29-2.58 5.42 5.42 0 0 1-.15-.75zm-3.85 1.32l-.08-.28-.4.12a9.72 9.72 0 0 1-2.84.43c-4.96 0-9-3.71-9-8.27 0-4.55 4.04-8.26 9-8.26 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32a5.59 5.59 0 0 0 .21 1.29c.19.7.49 1.4.89 2.08a6.43 6.43 0 0 1-2.67-1.06c-.34-.22-.88-.48-1.16-.74z"></path></svg><span class="zf abl bv"><span class="ba b sg bc hf">4 replies</span></span></button>
</div>
</div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<img alt="tim t" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/0*YHu2FtoSb7JPF9Nk.jpg" width="32" height="32" />
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@sfx2000?source=responses-----3262b158cba2----1----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
tim t
</h4></a>
</div><a href="https://medium.com/@sfx2000/dont-underestimate-the-value-of-the-toolchain-xcode-is-optimized-for-apple-silicon-and-many-d73c56515c18?source=responses-----3262b158cba2----1----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Don't underestimate the value of the toolchain - xcode is optimized for Apple Silicon (and many years of iOS), and this is tightly coupled the underlying OS - good article, well done
</h4>
</div>
</div>
</div>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2Fd73c56515c18&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----d73c56515c18----1-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
135
</h4>
</div>
</div>
</div>
<div class="ep q n o"></div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<img alt="Marc J. Driftmeyer" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/1*wfO-dtsNUUDOiDKN73aQcA.jpeg" width="32" height="32" />
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@mdriftmeyer?source=responses-----3262b158cba2----2----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
Marc J. Driftmeyer
</h4></a>
</div><a href="https://medium.com/@mdriftmeyer/your-last-paragraph-is-delusional-clap-trap-30774ede1fde?source=responses-----3262b158cba2----2----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Your last paragraph is delusional clap trap. AMD has been developing APUs and was the premier driver of HSA long before Apple got into the game.
</h4>
</div>
</div>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
What's worse is you know nothing of Xilinx and how it is going to completely revolutionize AMDs designs…...
</h4>
</div>
</div>
</div><button class="abm abn ew"><span class="ba b sg bc abo">Read More</span></button>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2F30774ede1fde&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----30774ede1fde----2-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
147
</h4>
</div>
</div>
</div>
<div class="ep q n o">
<div class="n o">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo"><svg width="29" height="29" class="r q abj" aria-label="responses">
<path d="M21.27 20.06a9.04 9.04 0 0 0 2.75-6.68C24.02 8.21 19.67 4 14.1 4S4 8.21 4 13.38c0 5.18 4.53 9.39 10.1 9.39 1 0 2-.14 2.95-.41.28.25.6.49.92.7a7.46 7.46 0 0 0 4.19 1.3c.27 0 .5-.13.6-.35a.63.63 0 0 0-.05-.65 8.08 8.08 0 0 1-1.29-2.58 5.42 5.42 0 0 1-.15-.75zm-3.85 1.32l-.08-.28-.4.12a9.72 9.72 0 0 1-2.84.43c-4.96 0-9-3.71-9-8.27 0-4.55 4.04-8.26 9-8.26 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32a5.59 5.59 0 0 0 .21 1.29c.19.7.49 1.4.89 2.08a6.43 6.43 0 0 1-2.67-1.06c-.34-.22-.88-.48-1.16-.74z"></path></svg><span class="zf abl bv"><span class="ba b sg bc hf">6 replies</span></span></button>
</div>
</div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<div class="am ze zd">
<div class="ic n aw o p er abp abq if ig ih ga">
<svg width="39" height="39" viewbox="0 0 39 39">
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.5 1C11.83 1 5.17 5.75 1.9 12.71L1 12.3C4.4 5.02 11.4 0 19.5 0S34.6 5.02 38 12.29l-.9.42C33.82 5.75 27.16 1 19.5 1zM1.9 26.29C5.18 33.25 11.84 38 19.5 38c7.67 0 14.33-4.75 17.6-11.71l.9.42C34.6 33.98 27.6 39 19.5 39S4.4 33.98 1 26.71l.9-.42z"></path></svg>
</div><img alt="the mule" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/0*MkDypX2zouOrAXxJ.jpg" width="32" height="32" />
</div>
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@FoolAllTheTime?source=responses-----3262b158cba2----3----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
the mule
</h4></a>
</div><a href="https://medium.com/@FoolAllTheTime/this-is-absolutely-one-of-the-best-articles-ive-read-in-awhile-39af92a366d9?source=responses-----3262b158cba2----3----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
This is absolutely one of the best articles i've read in awhile. Thank you so much, the OoO operation x86 overhang is something new to me. I didn't even realize.
</h4>
</div>
</div>
</div>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2F39af92a366d9&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----39af92a366d9----3-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
95
</h4>
</div>
</div>
</div>
<div class="ep q n o"></div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<div class="am ze zd">
<div class="ic n aw o p er abp abq if ig ih ga">
<svg width="39" height="39" viewbox="0 0 39 39">
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.5 1C11.83 1 5.17 5.75 1.9 12.71L1 12.3C4.4 5.02 11.4 0 19.5 0S34.6 5.02 38 12.29l-.9.42C33.82 5.75 27.16 1 19.5 1zM1.9 26.29C5.18 33.25 11.84 38 19.5 38c7.67 0 14.33-4.75 17.6-11.71l.9.42C34.6 33.98 27.6 39 19.5 39S4.4 33.98 1 26.71l.9-.42z"></path></svg>
</div><img alt="Nicholas Ballard" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/1*QeAQh0DbxpIiDajtj-rVPg.jpeg" width="32" height="32" />
</div>
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@nball?source=responses-----3262b158cba2----4----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
Nicholas Ballard
</h4></a>
</div><a href="https://medium.com/@nball/this-article-is-good-bec46ff2aae?source=responses-----3262b158cba2----4----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
This article is good. Possibly the best article Ive ever read on&#160;Medium. Thorough, technical, opinionated with a well thought out thesis on the new chips. M1 is a step function improvement in SoC. Makes me want to order a new computer though I absolutely dont need another.&#160;:-)
</h4>
</div>
</div>
</div>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2Fbec46ff2aae&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----bec46ff2aae----4-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
78
</h4>
</div>
</div>
</div>
<div class="ep q n o">
<div class="n o">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo"><svg width="29" height="29" class="r q abj" aria-label="responses">
<path d="M21.27 20.06a9.04 9.04 0 0 0 2.75-6.68C24.02 8.21 19.67 4 14.1 4S4 8.21 4 13.38c0 5.18 4.53 9.39 10.1 9.39 1 0 2-.14 2.95-.41.28.25.6.49.92.7a7.46 7.46 0 0 0 4.19 1.3c.27 0 .5-.13.6-.35a.63.63 0 0 0-.05-.65 8.08 8.08 0 0 1-1.29-2.58 5.42 5.42 0 0 1-.15-.75zm-3.85 1.32l-.08-.28-.4.12a9.72 9.72 0 0 1-2.84.43c-4.96 0-9-3.71-9-8.27 0-4.55 4.04-8.26 9-8.26 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32a5.59 5.59 0 0 0 .21 1.29c.19.7.49 1.4.89 2.08a6.43 6.43 0 0 1-2.67-1.06c-.34-.22-.88-.48-1.16-.74z"></path></svg><span class="zf abl bv"><span class="ba b sg bc hf">1 reply</span></span></button>
</div>
</div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<img alt="Charles" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/0*MVCIf-nqLKmSGUtG.jpeg" width="32" height="32" />
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@vigilant?source=responses-----3262b158cba2----5----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
Charles
</h4></a>
</div><a href="https://medium.com/@vigilant/just-wanted-to-add-some-thought-from-me-using-the-slowest-m1-laptop-since-last-tuesday-coming-from-dda365c9b0b1?source=responses-----3262b158cba2----5----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Just wanted to add some thought from me using the slowest M1 laptop since last Tuesday, coming from 2019 16 MacBook Pro
</h4>
</div>
</div>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
The MacBook Air just mercilessly beats the mess out of my 2019 16 MacBook Pro in day to day operations. The MacBook Air will be…...
</h4>
</div>
</div>
</div><button class="abm abn ew"><span class="ba b sg bc abo">Read More</span></button>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2Fdda365c9b0b1&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----dda365c9b0b1----5-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
93
</h4>
</div>
</div>
</div>
<div class="ep q n o">
<div class="n o">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo"><svg width="29" height="29" class="r q abj" aria-label="responses">
<path d="M21.27 20.06a9.04 9.04 0 0 0 2.75-6.68C24.02 8.21 19.67 4 14.1 4S4 8.21 4 13.38c0 5.18 4.53 9.39 10.1 9.39 1 0 2-.14 2.95-.41.28.25.6.49.92.7a7.46 7.46 0 0 0 4.19 1.3c.27 0 .5-.13.6-.35a.63.63 0 0 0-.05-.65 8.08 8.08 0 0 1-1.29-2.58 5.42 5.42 0 0 1-.15-.75zm-3.85 1.32l-.08-.28-.4.12a9.72 9.72 0 0 1-2.84.43c-4.96 0-9-3.71-9-8.27 0-4.55 4.04-8.26 9-8.26 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32a5.59 5.59 0 0 0 .21 1.29c.19.7.49 1.4.89 2.08a6.43 6.43 0 0 1-2.67-1.06c-.34-.22-.88-.48-1.16-.74z"></path></svg><span class="zf abl bv"><span class="ba b sg bc hf">1 reply</span></span></button>
</div>
</div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<img alt="Roberto Brega" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/0*l2lkzBKXDtYWir2p.png" width="32" height="32" />
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@robi?source=responses-----3262b158cba2----6----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
Roberto Brega
</h4></a>
</div><a href="https://medium.com/@robi/dear-erik-i-appreciate-your-noble-attempt-at-making-this-topic-accessible-to-the-public-bb1b379f2e1c?source=responses-----3262b158cba2----6----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Dear Erik, I appreciate your noble attempt at making this topic accessible to the public. However, it loses a lot of value if correctness is sacrificed at the altar of simplification.
</h4>
</div>
</div>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Out of the many fallacies in the text, I chose two: A) presenting…...
</h4>
</div>
</div>
</div><button class="abm abn ew"><span class="ba b sg bc abo">Read More</span></button>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2Fbb1b379f2e1c&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----bb1b379f2e1c----6-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
63
</h4>
</div>
</div>
</div>
<div class="ep q n o">
<div class="n o">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo"><svg width="29" height="29" class="r q abj" aria-label="responses">
<path d="M21.27 20.06a9.04 9.04 0 0 0 2.75-6.68C24.02 8.21 19.67 4 14.1 4S4 8.21 4 13.38c0 5.18 4.53 9.39 10.1 9.39 1 0 2-.14 2.95-.41.28.25.6.49.92.7a7.46 7.46 0 0 0 4.19 1.3c.27 0 .5-.13.6-.35a.63.63 0 0 0-.05-.65 8.08 8.08 0 0 1-1.29-2.58 5.42 5.42 0 0 1-.15-.75zm-3.85 1.32l-.08-.28-.4.12a9.72 9.72 0 0 1-2.84.43c-4.96 0-9-3.71-9-8.27 0-4.55 4.04-8.26 9-8.26 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32a5.59 5.59 0 0 0 .21 1.29c.19.7.49 1.4.89 2.08a6.43 6.43 0 0 1-2.67-1.06c-.34-.22-.88-.48-1.16-.74z"></path></svg><span class="zf abl bv"><span class="ba b sg bc hf">5 replies</span></span></button>
</div>
</div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<div class="am ze zd">
<div class="ic n aw o p er abp abq if ig ih ga">
<svg width="39" height="39" viewbox="0 0 39 39">
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.5 1C11.83 1 5.17 5.75 1.9 12.71L1 12.3C4.4 5.02 11.4 0 19.5 0S34.6 5.02 38 12.29l-.9.42C33.82 5.75 27.16 1 19.5 1zM1.9 26.29C5.18 33.25 11.84 38 19.5 38c7.67 0 14.33-4.75 17.6-11.71l.9.42C34.6 33.98 27.6 39 19.5 39S4.4 33.98 1 26.71l.9-.42z"></path></svg>
</div><img alt="forrest macgregor" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/2*Da_oEfZeVYZjkWMXBbkFgw.jpeg" width="32" height="32" />
</div>
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@fauxscot?source=responses-----3262b158cba2----7----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
forrest macgregor
</h4></a>
</div><a href="https://medium.com/@fauxscot/socs-are-the-bomb-b63b76dd05ca?source=responses-----3262b158cba2----7----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
SoC's are the bomb!
</h4>
</div>
</div>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Physical distance is an issue once propagation delays start approaching processing intervals. There are outfits that make wafer-scale integrated circuits to exploit that one fact. Cray used to base its entire supercomputer line on…...
</h4>
</div>
</div>
</div><button class="abm abn ew"><span class="ba b sg bc abo">Read More</span></button>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2Fb63b76dd05ca&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----b63b76dd05ca----7-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
73
</h4>
</div>
</div>
</div>
<div class="ep q n o"></div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="pg zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<img alt="Alex Limi" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/1*4K_tL1KgoQAD3eAjp5nSVA.jpeg" width="32" height="32" />
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@limi?source=responses-----3262b158cba2----8----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
Alex Limi
</h4></a>
</div><a href="https://medium.com/@limi/specialized-chips-like-this-were-a-cornerstone-of-e-g-ac52dfce3617?source=responses-----3262b158cba2----8----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div role="button" tabindex="0" class="zq zr si zs zt zu ew c">
<p id="embedded-quote-feb528cab17e-e379" class="zv zw gi ka b hh zx hk zy zz aba abb abc abd abe kt gb abf hf" data-selectable-paragraph="">
<mark class="abg xt ew">For many years already specialized chips such as the graphical processing units (GPUs) have been sitting in Nvidia and AMD graphics cards performing operations related to graphics much ...</mark>
</p>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Specialized chips like this were a cornerstone of e.g. the Amiga computer (blitter! AGA chipset!), so it predates the AMD/Nvidia graphics chips by many years.
</h4>
</div>
</div>
</div>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2Fac52dfce3617&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----ac52dfce3617----8-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
68
</h4>
</div>
</div>
</div>
<div class="ep q n o">
<div class="n o">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo"><svg width="29" height="29" class="r q abj" aria-label="responses">
<path d="M21.27 20.06a9.04 9.04 0 0 0 2.75-6.68C24.02 8.21 19.67 4 14.1 4S4 8.21 4 13.38c0 5.18 4.53 9.39 10.1 9.39 1 0 2-.14 2.95-.41.28.25.6.49.92.7a7.46 7.46 0 0 0 4.19 1.3c.27 0 .5-.13.6-.35a.63.63 0 0 0-.05-.65 8.08 8.08 0 0 1-1.29-2.58 5.42 5.42 0 0 1-.15-.75zm-3.85 1.32l-.08-.28-.4.12a9.72 9.72 0 0 1-2.84.43c-4.96 0-9-3.71-9-8.27 0-4.55 4.04-8.26 9-8.26 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32a5.59 5.59 0 0 0 .21 1.29c.19.7.49 1.4.89 2.08a6.43 6.43 0 0 1-2.67-1.06c-.34-.22-.88-.48-1.16-.74z"></path></svg><span class="zf abl bv"><span class="ba b sg bc hf">1 reply</span></span></button>
</div>
</div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="al zn s">
<div>
<div class="v jj">
<div class="ts ti s">
<div class="n aw cl">
<div class="n o aw">
<img alt="Drew Golden" class="s ii zd ze" src="https://miro.medium.com/fit/c/32/32/0*F61zMwDl_dCqy3eU" width="32" height="32" />
<div class="zp s">
<div class="n aw">
<a href="https://medium.com/@drew.golden?source=responses-----3262b158cba2----9----------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<h4 class="ba b bb bc hf">
Drew Golden
</h4></a>
</div><a href="https://medium.com/@drew.golden/well-written-piece-thoughtful-and-insighful-nice-work-sir-cf3504382eda?source=responses-----3262b158cba2----9----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener nofollow">
<h4 class="ba b bb bc dv">
about 2 months ago
</h4></a>
</div>
</div><button class="ew py ij em zo"><svg class="overflow-dots-filled-25px_svg__svgIcon-use" width="25" height="25">
<path d="M5 12.5c0 .55.2 1.02.59 1.41.39.4.86.59 1.41.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41A1.93 1.93 0 0 0 7 10.5c-.55 0-1.02.2-1.41.59-.4.39-.59.86-.59 1.41zm5.62 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.42.59.55 0 1.02-.2 1.41-.59.4-.39.59-.86.59-1.41 0-.55-.2-1.02-.59-1.41a1.93 1.93 0 0 0-1.41-.59c-.55 0-1.03.2-1.42.59-.39.39-.58.86-.58 1.41zm5.6 0c0 .55.2 1.02.58 1.41.4.4.87.59 1.43.59.56 0 1.03-.2 1.42-.59.39-.39.58-.86.58-1.41 0-.55-.2-1.02-.58-1.41a1.93 1.93 0 0 0-1.42-.59c-.56 0-1.04.2-1.43.59-.39.39-.58.86-.58 1.41z" fill-rule="evenodd"></path></svg></button>
</div>
<div class="abh s">
<pre class="nb"></pre>
<div class="abi s">
<div class="dm">
<h4 class="ba b bb bc hf">
Well written piece - thoughtful and insighful - nice work sir!
</h4>
</div>
</div>
</div>
<div class="abk n o aw cl">
<div class="n o">
<div class="n o">
<div class="s am iq is pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fp%2Fcf3504382eda&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=responses-----cf3504382eda----9-----------------respond_sidebar-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
60
</h4>
</div>
</div>
</div>
<div class="ep q n o">
<div class="n o">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo"><svg width="29" height="29" class="r q abj" aria-label="responses">
<path d="M21.27 20.06a9.04 9.04 0 0 0 2.75-6.68C24.02 8.21 19.67 4 14.1 4S4 8.21 4 13.38c0 5.18 4.53 9.39 10.1 9.39 1 0 2-.14 2.95-.41.28.25.6.49.92.7a7.46 7.46 0 0 0 4.19 1.3c.27 0 .5-.13.6-.35a.63.63 0 0 0-.05-.65 8.08 8.08 0 0 1-1.29-2.58 5.42 5.42 0 0 1-.15-.75zm-3.85 1.32l-.08-.28-.4.12a9.72 9.72 0 0 1-2.84.43c-4.96 0-9-3.71-9-8.27 0-4.55 4.04-8.26 9-8.26 4.95 0 8.77 3.71 8.77 8.27 0 2.25-.75 4.35-2.5 5.92l-.24.21v.32a5.59 5.59 0 0 0 .21 1.29c.19.7.49 1.4.89 2.08a6.43 6.43 0 0 1-2.67-1.06c-.34-.22-.88-.48-1.16-.74z"></path></svg><span class="zf abl bv"><span class="ba b sg bc hf">1 reply</span></span></button>
</div>
</div>
</div>
<div class="ix s">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl vu cg en eo">Reply</button>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<article class="meteredContent">
<section class="fs ft fu fv v fw bu s">
<div>
<div class="jt" id="lo-highlight-meter-1-highlight-box">
<div class="xd br xe am xf">
<div class="xg xh n cl xi">
<h4 class="ba b dl dm hf">
<span class="jt" id="lo-highlight-meter-1-copy">You have <b>2</b> free member-only stories left this month.</span>
</h4>
<div class="xj x">
<h4 class="ba b dl dm hf">
<span class="jt" id="lo-highlight-meter-1-link"><span><a href="https://medium.com/m/signin?operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=-----3262b158cba2---------------------smart_meter-----------" class="ej ek bz ca cb cc cd ce cf bl cg en eo ll" rel="noopener">Sign up for Medium and get an extra one</a></span></span>
</h4>
</div>
</div>
</div>
</div>
</div>
</section>
<div>
<div class="er fb yb fy fz ga"></div>
<div class="fu fv fw am"></div>
<section class="gb gc gd ds ge">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<div class="">
<h1 id="8c58" class="gg gh gi gj b gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf">
Why Is Apples M1 Chip So Fast?
</h1>
</div>
<div class="">
<h2 id="d808" class="hg gh gi ba b hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw dv">
Real-world experience with the new M1 Macs has started ticking in. They are fast. Real fast. But why? What is the magic?
</h2>
<div class="cx">
<div class="n cl hx hy hz">
<div class="o n">
<div>
<a href="https://erik-engheim.medium.com/?source=post_page-----3262b158cba2--------------------------------" rel="noopener">
<div class="am ia ib">
<div class="ic n aw o p er id ie if ig ih ga">
<svg width="36" height="36" viewbox="0 0 36 36">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18 1.87c-6.63 0-12.4 4.14-15.21 10.21L2 11.71C4.94 5.37 11 1 18 1s13.06 4.37 16 10.71l-.79.37C30.4 6.01 24.63 1.88 18 1.88zM2.79 23.92c2.81 6.07 8.58 10.2 15.21 10.2 6.63 0 12.4-4.13 15.21-10.2l.79.37C31.06 30.63 25 35 18 35S4.94 30.63 2 24.29l.79-.37z"></path></svg>
</div><img alt="Erik Engheim" class="s ii ib ia" src="https://miro.medium.com/fit/c/56/56/0*1Y9ylHZ8csOxgZr7.jpg" width="28" height="28" />
</div></a>
</div>
<div class="ep v n cu">
<div class="n">
<div style="flex:1">
<span class="ba b bb bc hf"><a href="https://erik-engheim.medium.com/?source=post_page-----3262b158cba2--------------------------------" class="" rel="noopener">
<h4 class="ba b bb bc fl">
<span class="ba b bb bc hf">Erik Engheim</span>
</h4></a></span>
</div>
</div><span class="ba b bb bc dv"><a class="" rel="noopener" href="/why-is-apples-m1-chip-so-fast-3262b158cba2?source=post_page-----3262b158cba2--------------------------------">
<h4 class="ba b bb bc dv">
<span class="ba b bb bc dv">Nov 28, 2020<span class="in">·</span>23 min read<svg class="ij ik il" width="15" height="15" viewbox="0 0 15 15">
<path d="M7.44 2.32c.03-.1.09-.1.12 0l1.2 3.53a.29.29 0 0 0 .26.2h3.88c.11 0 .13.04.04.1L9.8 8.33a.27.27 0 0 0-.1.29l1.2 3.53c.03.1-.01.13-.1.07l-3.14-2.18a.3.3 0 0 0-.32 0L4.2 12.22c-.1.06-.14.03-.1-.07l1.2-3.53a.27.27 0 0 0-.1-.3L2.06 6.16c-.1-.06-.07-.12.03-.12h3.89a.29.29 0 0 0 .26-.19l1.2-3.52z"></path></svg></span>
</h4></a></span>
</div>
</div>
<div class="n io ip iq ir is it iu iv iw">
<div class="n o">
<div class="ix s">
<div class="bv" aria-hidden="false">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" aria-label="Share Post"><svg width="25" height="25" class="r">
<g fill-rule="evenodd">
<path d="M15.6 5a.42.42 0 0 0 .17-.3.42.42 0 0 0-.12-.33l-2.8-2.79a.5.5 0 0 0-.7 0l-2.8 2.8a.4.4 0 0 0-.1.32c0 .12.07.23.16.3h.02a.45.45 0 0 0 .57-.04l2-2V10c0 .28.23.5.5.5s.5-.22.5-.5V2.93l2.02 2.02c.08.07.18.12.3.13.11.01.21-.02.3-.08v.01"></path>
<path d="M18 7h-1.5a.5.5 0 0 0 0 1h1.6c.5 0 .9.4.9.9v10.2c0 .5-.4.9-.9.9H6.9a.9.9 0 0 1-.9-.9V8.9c0-.5.4-.9.9-.9h1.6a.5.5 0 0 0 .35-.15A.5.5 0 0 0 9 7.5a.5.5 0 0 0-.15-.35A.5.5 0 0 0 8.5 7H7a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h11a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2"></path>
</g></svg></button>
</div>
</div>
<div class="iy s">
<div class="iz">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fbookmark%2Fp%2F3262b158cba2&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=post_actions_header--------------------------bookmark_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener"><svg width="25" height="25" viewbox="0 0 25 25">
<path d="M19 6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14.66h.01c.01.1.05.2.12.28a.5.5 0 0 0 .7.03l5.67-4.12 5.66 4.13a.5.5 0 0 0 .71-.03.5.5 0 0 0 .12-.29H19V6zm-6.84 9.97L7 19.64V6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v13.64l-5.16-3.67a.49.49 0 0 0-.68 0z" fill-rule="evenodd"></path></svg></a></span>
</div>
</div>
<div class="ja s ax"></div>
</div>
</div>
</div>
</div>
</div>
<figure class="jc jd fu fv paragraph-image">
<div role="button" tabindex="0" class="je jf am jg v jh">
<div class="fu fv jb">
<div class="jn s am jo">
<div class="jp jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="2880" height="1620" src="https://miro.medium.com/max/2880/1*thz7gKafCYxWoA0h8aGjcg.jpeg" srcset="https://miro.medium.com/max/276/1*thz7gKafCYxWoA0h8aGjcg.jpeg 276w, https://miro.medium.com/max/552/1*thz7gKafCYxWoA0h8aGjcg.jpeg 552w, https://miro.medium.com/max/640/1*thz7gKafCYxWoA0h8aGjcg.jpeg 640w, https://miro.medium.com/max/700/1*thz7gKafCYxWoA0h8aGjcg.jpeg 700w" sizes="700px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/5760/1*thz7gKafCYxWoA0h8aGjcg.jpeg" width="2880" height="1620" srcset="https://miro.medium.com/max/552/1*thz7gKafCYxWoA0h8aGjcg.jpeg 276w, https://miro.medium.com/max/1104/1*thz7gKafCYxWoA0h8aGjcg.jpeg 552w, https://miro.medium.com/max/1280/1*thz7gKafCYxWoA0h8aGjcg.jpeg 640w, https://miro.medium.com/max/1400/1*thz7gKafCYxWoA0h8aGjcg.jpeg 700w" sizes="700px" /></noscript>
</div>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
Image: Apple
</figcaption>
</figure>
<p id="8eb8" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf ku" data-selectable-paragraph="">
<span class="s kv kw kx eh ky kz la lb lc am">On</span> YouTube, I watched a Mac user who had bought an iMac last year. It was maxed out with 40 GB of RAM costing him about $4,000. He watched in disbelief how his hyperexpensive iMac was being demolished by his new M1 Mac Mini, which he had paid a measly $700 for.
</p>
<p id="1408" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
In real-world test after test, the M1 Macs are not merely inching past top-of-the-line Intel Macs, they are destroying them. In disbelief, people have started asking how on earth this is possible?
</p>
<p id="71b6" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
If you are one o<span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm"><span id="rmm">f</span></span></span></span></span></span></span></span></span></span></span></span> those people, you have come to the right place. Here I plan to break it down into digestible pieces exactly what it is that Apple has done with the M1. Specifically the questions I think a lot of people have are:
</p>
<ol class="">
<li id="89bf" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ld le lf hf" data-selectable-paragraph="">What are the technical reasons this M1 chip is so fast?
</li>
<li id="c5cb" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt ld le lf hf" data-selectable-paragraph="">Has Apple made some really exotic technical choices to make this possible?
</li>
<li id="03e6" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt ld le lf hf" data-selectable-paragraph="">How easy will it be for the competition such as Intel and AMD to pull the same technical tricks?
</li>
</ol>
<p id="6e93" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Sure you could try to Google this, but if you try to learn what Apple has done beyond the superficial explanations, you will quickly get buried in highly technical jargon such as M1 using very wide instruction decoders, enormous reorder buffer (ROB), etc. Unless you are a CPU hardware geek, a lot of this will simply be gobbledygook.
</p>
<p id="ecc7" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
To get the most out of this story I advise reading my earlier piece: “<a href="https://medium.com/swlh/what-does-risc-and-cisc-mean-in-2020-7b4d42c9a9de" class="ej ll" target="_blank" rel="noopener">What Does RISC and CISC mean in 2020</a>?” There I explain what a microprocessor (CPU) is as well as various important concepts such as:
</p>
<ul class="">
<li id="4638" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt lm le lf hf" data-selectable-paragraph="">Instruction set architecture (ISA)
</li>
<li id="e7aa" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Pipelining
</li>
<li id="69ae" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Load/store architecture
</li>
<li id="f37f" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Microcode vs. micro-operations
</li>
</ul>
<p id="85a3" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
But if you are impatient, I will do a quick version of the material you need to understand to grasp my explanation of the M1 chip.
</p>
<h1 id="a207" class="ln lo gi ba lp lq lr kc ls lt lu kf lv lw lx ly lz ma mb mc md me mf mg mh mi hf" data-selectable-paragraph="">
What is a microprocessor (CPU)?
</h1>
<p id="285c" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
Normally when speaking of chips from Intel and AMD we talk about central processing units (CPUs) or microprocessors. As you can read more about in my <a href="https://medium.com/swlh/what-does-risc-and-cisc-mean-in-2020-7b4d42c9a9de" class="ej ll" target="_blank" rel="noopener">RISC vs. CISC story</a>, these pull in instructions from memory. Then each instruction is typically carried out in sequence.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="n p ak">
<img alt="A very basic RISC CPU, not the M1" class="mt" src="https://miro.medium.com/proxy/1*3G7uz4l1GnFacxz6InrLLw.png" />
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
A very basic RISC CPU, not the M1. Instructions are moved from memory along <strong class="ba lp">blue</strong> arrows into the instruction register. There a decoder figures out what the instruction is and enables different parts of the CPU through the <strong class="ba lp">red</strong> control lines. The ALU adds and subtracts numbers placed in the registers.
</figcaption>
</figure>
<p id="5525" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
A CPU at its most basic level is a device with a number of named memory cells called registers and a number of computational units called arithmetic logic units (ALU). The ALUs perform things like addition, subtraction, and other basic math operations. However, these are only connected to the CPU registers. If you want to add up two numbers, you have to get those two numbers from memory and into two registers in the CPU.
</p>
<p id="db6e" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Here are some examples of typical instructions that a RISC CPU as found on the M1 carries out.
</p>
<pre class="mo mp mq mr ms mu mv mw"><span id="9500" class="hf mx lo gi my b dl mz na s nb" data-selectable-paragraph="">load r1, 150<br />load r2, 200<br />add r1, r2<br />store r1, 310</span></pre>
<p id="d5bb" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Here <code class="jo nc nd ne my b">r1</code> and <code class="jo nc nd ne my b">r2</code> are the registers I talked about. Modern RISC CPUs cannot do operations on numbers that are not in a register like this. For example, it cannot add two numbers residing in RAM in two different locations. Instead, it has to pull these two numbers into a separate register. That is what we do in this simple example. We pull in the number at memory location 150 in the RAM and put it into register <code class="jo nc nd ne my b">r1</code> in the CPU. Next, we put the contents of address 200 into register <code class="jo nc nd ne my b">r2</code>. Only then can the numbers be added with the <code class="jo nc nd ne my b">add r1, r2</code> instruction.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv nf">
<div class="jn s am jo">
<div class="ng jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="400" height="223" src="https://miro.medium.com/max/400/1*kDqSqtumOzNFZdpixUW0IQ.jpeg" srcset="https://miro.medium.com/max/276/1*kDqSqtumOzNFZdpixUW0IQ.jpeg 276w, https://miro.medium.com/max/400/1*kDqSqtumOzNFZdpixUW0IQ.jpeg 400w" sizes="400px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/800/1*kDqSqtumOzNFZdpixUW0IQ.jpeg" width="400" height="223" srcset="https://miro.medium.com/max/552/1*kDqSqtumOzNFZdpixUW0IQ.jpeg 276w, https://miro.medium.com/max/800/1*kDqSqtumOzNFZdpixUW0IQ.jpeg 400w" sizes="400px" /></noscript>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
An old mechanical calculator with two registers: the accumulator and input register. Modern CPUs typically have more than a dozen registers, and they are electronic rather than mechanical.
</figcaption>
</figure>
<p id="7146" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
The concept of registers is old. For example, on this old mechanical calculator, the <em class="nh">register</em> is what holds the numbers you are adding. Likely the origin of the term <em class="nh">cash register</em>. The register is where you registered input numbers.
</p>
<h1 id="22f2" class="ln lo gi ba lp lq lr kc ls lt lu kf lv lw lx ly lz ma mb mc md me mf mg mh mi hf" data-selectable-paragraph="">
The M1 is not a CPU!
</h1>
<p id="d450" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
But here is a very important thing to understand about the M1:
</p>
<p id="777f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
The M1 is not a CPU, it is a whole system of multiple chips put into one large silicon package. The CPU is just one of these chips.
</p>
<p id="69f0" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Basically, the M1 is one whole computer onto a chip. The M1 contains a CPU, graphical processing unit (GPU), memory, input and output controllers, and many more things making up a whole computer. This is what we call a system on a chip (SoC).
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div role="button" tabindex="0" class="je jf am jg v jh">
<div class="fu fv ni">
<div class="jn s am jo">
<div class="nj jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="1200" height="360" src="https://miro.medium.com/max/1200/1*c4EYUAVj4k7n6wWLoWUVdA.png" srcset="https://miro.medium.com/max/276/1*c4EYUAVj4k7n6wWLoWUVdA.png 276w, https://miro.medium.com/max/552/1*c4EYUAVj4k7n6wWLoWUVdA.png 552w, https://miro.medium.com/max/640/1*c4EYUAVj4k7n6wWLoWUVdA.png 640w, https://miro.medium.com/max/700/1*c4EYUAVj4k7n6wWLoWUVdA.png 700w" sizes="700px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/2400/1*c4EYUAVj4k7n6wWLoWUVdA.png" width="1200" height="360" srcset="https://miro.medium.com/max/552/1*c4EYUAVj4k7n6wWLoWUVdA.png 276w, https://miro.medium.com/max/1104/1*c4EYUAVj4k7n6wWLoWUVdA.png 552w, https://miro.medium.com/max/1280/1*c4EYUAVj4k7n6wWLoWUVdA.png 640w, https://miro.medium.com/max/1400/1*c4EYUAVj4k7n6wWLoWUVdA.png 700w" sizes="700px" /></noscript>
</div>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
M1 is a system on a chip. Meaning all the parts making up a computer are placed on one silicon chip.
</figcaption>
</figure>
<p id="fce1" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Today if you buy a chip — whether from Intel or AMD — you actually get what amounts to <em class="nh">multiple</em> microprocessors in one package. In the past computers would have multiple physically separate chips on the motherboard of the computer.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv nk">
<div class="jn s am jo">
<div class="nl jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="600" height="418" src="https://miro.medium.com/max/600/1*GBrG4D2YCEVYREXAHIiJnQ.png" srcset="https://miro.medium.com/max/276/1*GBrG4D2YCEVYREXAHIiJnQ.png 276w, https://miro.medium.com/max/552/1*GBrG4D2YCEVYREXAHIiJnQ.png 552w, https://miro.medium.com/max/600/1*GBrG4D2YCEVYREXAHIiJnQ.png 600w" sizes="600px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1200/1*GBrG4D2YCEVYREXAHIiJnQ.png" width="600" height="418" srcset="https://miro.medium.com/max/552/1*GBrG4D2YCEVYREXAHIiJnQ.png 276w, https://miro.medium.com/max/1104/1*GBrG4D2YCEVYREXAHIiJnQ.png 552w, https://miro.medium.com/max/1200/1*GBrG4D2YCEVYREXAHIiJnQ.png 600w" sizes="600px" /></noscript>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
Example of a computer motherboard. Memory, CPU, graphics cards, IO controllers, network cards, and many other components can be attached to the motherboard to communicate with each other.
</figcaption>
</figure>
<p id="9cf5" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
However because we are able to put so many transistors on a silicon die today, companies such as Intel and AMD began putting multiple microprocessors onto one chip. Today we refer to these chips as CPU cores. One core is basically a full independent chip that can read instructions from memory and perform calculations.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv nm">
<div class="jn s am jo">
<div class="nn jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="425" height="267" src="https://miro.medium.com/max/425/1*XZsBJV_v4WybnUFYjJJiPQ.gif" srcset="https://miro.medium.com/max/276/1*XZsBJV_v4WybnUFYjJJiPQ.gif 276w, https://miro.medium.com/max/425/1*XZsBJV_v4WybnUFYjJJiPQ.gif 425w" sizes="425px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/850/1*XZsBJV_v4WybnUFYjJJiPQ.gif" width="425" height="267" srcset="https://miro.medium.com/max/552/1*XZsBJV_v4WybnUFYjJJiPQ.gif 276w, https://miro.medium.com/max/850/1*XZsBJV_v4WybnUFYjJJiPQ.gif 425w" sizes="425px" /></noscript>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
A microchip with multiple CPU cores.
</figcaption>
</figure>
<p id="18a4" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
This has for a long time been the name of the game in terms of increasing performance: Just add more general-purpose CPU cores. But there is a disturbance in the force. There is one player in the CPU market which is deviating from this trend.
</p>
<h2 id="cff4" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
Apples not so secret heterogeneous computing strategy
</h2>
<p id="8feb" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
Instead of adding ever more general-purpose CPU cores, Apple has followed another strategy: They have started adding ever more specialized chips doing a few specialized tasks. The benefit of this is that specialized chips tend to be able to perform their tasks significantly faster using much less electric current than a general-purpose CPU core.
</p>
<p id="e379" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
This is not entirely new knowledge. For many years already specialized chips such as the graphical processing units (GPUs) have been sitting in Nvidia and AMD graphics cards performing operations related to graphics much faster than general-purpose CPUs.
</p>
<p id="866e" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
What Apple has done is simply to take a more radical shift toward this direction. Rather than just having general-purpose cores and memory, the M1 contains a wide variety of specialized chips:
</p>
<ul class="">
<li id="6e0e" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt lm le lf hf" data-selectable-paragraph="">Central processing unit (CPU) — the “brains” of the SoC. Runs most of the code of the operating system and your apps.
</li>
<li id="037c" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Graphics processing unit (GPU) — handles graphics-related tasks, such as visualizing an apps user interface and 2D/3D gaming.
</li>
<li id="9a44" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Image processing unit (ISP) — can be used to speed up common tasks done by image processing applications.
</li>
<li id="c654" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Digital signal processor (DSP) — handles more mathematically intensive functions than a CPU. Includes decompressing music files.
</li>
<li id="1cac" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Neural processing unit (NPU) — used in high-end smartphones to accelerate machine learning (A.I.) tasks. These include voice recognition and camera processing.
</li>
<li id="ce8d" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Video encoder/decoder — handles the power-efficient conversion of video files and formats.
</li>
<li id="d9a8" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Secure Enclave — encryption, authentication, and security.
</li>
<li id="2d2b" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Unified memory — allows the CPU, GPU, and other cores to quickly exchange information.
</li>
</ul>
<p id="967a" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
This is part of the reason why a lot of people working on images and video editing with the M1 Macs are seeing such speed improvements. A lot of the tasks they do can run directly on specialized hardware. That is what allows a cheap M1 Mac Mini to encode a large video file without breaking a sweat while an expensive iMac has all its fans going full blast and still cannot keep up.
</p>
<p id="39d6" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Read more about heterogeneous computing: <a href="https://erik-engheim.medium.com/apple-m1-foreshadows-risc-v-dd63a62b2562" class="ej ll" target="_blank" rel="noopener">Apple M1 foreshadows Rise of RISC-V</a>.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv nw">
<div class="jn s am jo">
<div class="jp jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="576" height="324" src="https://miro.medium.com/max/576/1*SpFJ9g-taH9a-TvXdnaq2w.png" srcset="https://miro.medium.com/max/276/1*SpFJ9g-taH9a-TvXdnaq2w.png 276w, https://miro.medium.com/max/552/1*SpFJ9g-taH9a-TvXdnaq2w.png 552w, https://miro.medium.com/max/576/1*SpFJ9g-taH9a-TvXdnaq2w.png 576w" sizes="576px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1152/1*SpFJ9g-taH9a-TvXdnaq2w.png" width="576" height="324" srcset="https://miro.medium.com/max/552/1*SpFJ9g-taH9a-TvXdnaq2w.png 276w, https://miro.medium.com/max/1104/1*SpFJ9g-taH9a-TvXdnaq2w.png 552w, https://miro.medium.com/max/1152/1*SpFJ9g-taH9a-TvXdnaq2w.png 576w" sizes="576px" /></noscript>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
In <strong class="ba lp">blue</strong> you see multiple CPU cores accessing memory, and in <strong class="ba lp">green</strong> you see large numbers of GPU cores accessing memory.
</figcaption>
</figure>
<h2 id="d906" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
What is Special About Apples Unified Memory Architecture?
</h2>
<p id="956a" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
Apples “Unified Memory Architecture” (UMA) is a bit tricky to wrap your head around (I got it wrong first time I wrote it down here).
</p>
<p id="8cb3" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
To explain why, we need to take a few steps back.
</p>
<p id="b7a7" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
For a long time cheap computer systems have had the CPU and GPU integrated into the same chip (same silicon die). These have been famously slow. In the past saying “integrated graphics” was essentially the same as saying “slow graphics.”
</p>
<p id="a598" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
These where slow for severals reasons:
</p>
<p id="1d41" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Separate areas of this memory got reserved for the CPU and GPU. If the CPU had a chunk of data it wanted the GPU to use, it couldnt say “here have some of my memory.” No, the CPU had to explicitly copy the whole chunk of data over the memory area controlled by the GPU.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv nx">
<div class="jn s am jo">
<div class="ny jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="640" height="321" src="https://miro.medium.com/max/640/1*7c67HhuDWVFM3Pi-mO5boA.jpeg" srcset="https://miro.medium.com/max/276/1*7c67HhuDWVFM3Pi-mO5boA.jpeg 276w, https://miro.medium.com/max/552/1*7c67HhuDWVFM3Pi-mO5boA.jpeg 552w, https://miro.medium.com/max/640/1*7c67HhuDWVFM3Pi-mO5boA.jpeg 640w" sizes="640px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1280/1*7c67HhuDWVFM3Pi-mO5boA.jpeg" width="640" height="321" srcset="https://miro.medium.com/max/552/1*7c67HhuDWVFM3Pi-mO5boA.jpeg 276w, https://miro.medium.com/max/1104/1*7c67HhuDWVFM3Pi-mO5boA.jpeg 552w, https://miro.medium.com/max/1280/1*7c67HhuDWVFM3Pi-mO5boA.jpeg 640w" sizes="640px" /></noscript>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
CPUs dont need a lot of data served, but they want it <strong class="ba lp">fast</strong>.
</figcaption>
</figure>
<p id="f669" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
CPUs and GPUs dont want their memory served the same way. Let us do a silly food analogy: CPUs want their plate of data served very quickly by the waiter, but they are totally cool with small portion sizes. Imagine a fancy French restaurant with waiters on rollerblades to serve you really quickly.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv nz">
<div class="jn s am jo">
<div class="oa jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="550" height="366" src="https://miro.medium.com/max/550/1*ethYaJsPETw2zxF7Xm0Z0w.jpeg" srcset="https://miro.medium.com/max/276/1*ethYaJsPETw2zxF7Xm0Z0w.jpeg 276w, https://miro.medium.com/max/550/1*ethYaJsPETw2zxF7Xm0Z0w.jpeg 550w" sizes="550px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1100/1*ethYaJsPETw2zxF7Xm0Z0w.jpeg" width="550" height="366" srcset="https://miro.medium.com/max/552/1*ethYaJsPETw2zxF7Xm0Z0w.jpeg 276w, https://miro.medium.com/max/1100/1*ethYaJsPETw2zxF7Xm0Z0w.jpeg 550w" sizes="550px" /></noscript>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
This is how your GPU wants their memory: <strong class="ba lp">huge</strong> portions. The more the merrier.
</figcaption>
</figure>
<p id="9c14" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
GPUs in contrast are cool with the waiter being slow to serve the data. But the GPUs want enormous servings. They gobble massive amounts of data because they are massive parallel machines, that can chew through lots of data in parallel. Imagine an American junk food place, where the food takes some time to arrive because they are pushing a whole trolley of food to your seating area.
</p>
<p id="812f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
With such different needs, putting CPUs and GPUs on the same physical chip was not a great idea. The GPUs would sit there starving while given small French servings. The result was that there was no point in putting powerful GPUs on an SoC. The tiny portions of data served up, could easily be chewed up by a weak little GPU.
</p>
<p id="d539" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
The second problem was that large GPUs produce a lot of heat and thus you cannot integrate them with the CPU without getting problems ridding yourself of the heat produced. Thus discrete graphics cards tend to look like the one below: Large beasts with massive cooling fans. They have special dedicated memory designed to serve the greedy cards massive amounts of data.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv ob">
<div class="jn s am jo">
<div class="oc jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="389" height="209" src="https://miro.medium.com/max/389/1*gQcbAlaUXNtjJi6OAUzMsg.jpeg" srcset="https://miro.medium.com/max/276/1*gQcbAlaUXNtjJi6OAUzMsg.jpeg 276w, https://miro.medium.com/max/389/1*gQcbAlaUXNtjJi6OAUzMsg.jpeg 389w" sizes="389px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/778/1*gQcbAlaUXNtjJi6OAUzMsg.jpeg" width="389" height="209" srcset="https://miro.medium.com/max/552/1*gQcbAlaUXNtjJi6OAUzMsg.jpeg 276w, https://miro.medium.com/max/778/1*gQcbAlaUXNtjJi6OAUzMsg.jpeg 389w" sizes="389px" /></noscript>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
GeForce RTX 3080
</figcaption>
</figure>
<p id="14fa" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
That is why these cards have high performance. But they have an achilles heel: Whenever they have to get data from the memory used by the CPU, this happens over a set of copper traces on the computer motherboard called a PCIe bus. Try chugging water through a super thin straw. It may get to your mouth fast, but the throughput is totally inadequate.
</p>
<p id="5fca" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Apples <em class="nh">Unified Memory Architecture</em> tries to solve all these problems without having the disadvantages of old school shared memory. They achieve this in the following ways:
</p>
<ol class="">
<li id="dade" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ld le lf hf" data-selectable-paragraph="">There is no special area reserved just for the CPU or just the GPU. Memory is allocated to both processors. They can both use the same memory. No copying is needed.
</li>
<li id="4c61" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt ld le lf hf" data-selectable-paragraph="">Apple uses memory which serves both large chunks of data and serves it fast. In computer speak that is called low latency and high throughput. Thus the need to be connected to separate types of memory is removed.
</li>
<li id="2508" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt ld le lf hf" data-selectable-paragraph="">Apple has gotten the watt usage of the GPU down, so that a relatively powerful GPU can be integrated without overheating the SoC. And ARM chips produce less heat, allowing the GPU to have a higher heat budget than a GPU on the same silicon die as an AMD or Intel CPU.
</li>
</ol>
<p id="ba08" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Some will say unified memory is not entirely new. It is true that different systems have had it in the past. But then the difference in memory requirements may not have been as large. Secondly what Nvidia calls Unified Memory is not really the same thing. In the Nvidea world Unified Memory simply means that there is software and hardware which takes care of automatically copying data back and forth between the separate CPU and GPU memory. Thus from a programmers perspective Apple and Nvidia Unified Memory may look the same, but it is not the same in a physical sense.
</p>
<p id="2fcb" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
There is of course a tradeoff in this strategy. Getting this high bandwidth memory (big servings) require full integration which means you take away the opportunity from customers to upgrade their memory. But Apple seeks to minimize this problem by making the communication with the SSD disks so fast, that they essentially work like old fashion memory.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div role="button" tabindex="0" class="je jf am jg v jh">
<div class="fu fv od">
<div class="jn s am jo">
<div class="oe jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="834" height="472" src="https://miro.medium.com/max/834/1*IJFHpc1CrblUt09PSzaTyg.png" srcset="https://miro.medium.com/max/276/1*IJFHpc1CrblUt09PSzaTyg.png 276w, https://miro.medium.com/max/552/1*IJFHpc1CrblUt09PSzaTyg.png 552w, https://miro.medium.com/max/640/1*IJFHpc1CrblUt09PSzaTyg.png 640w, https://miro.medium.com/max/700/1*IJFHpc1CrblUt09PSzaTyg.png 700w" sizes="700px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1668/1*IJFHpc1CrblUt09PSzaTyg.png" width="834" height="472" srcset="https://miro.medium.com/max/552/1*IJFHpc1CrblUt09PSzaTyg.png 276w, https://miro.medium.com/max/1104/1*IJFHpc1CrblUt09PSzaTyg.png 552w, https://miro.medium.com/max/1280/1*IJFHpc1CrblUt09PSzaTyg.png 640w, https://miro.medium.com/max/1400/1*IJFHpc1CrblUt09PSzaTyg.png 700w" sizes="700px" /></noscript>
</div>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
How Macs used GPUs before unified memory. There was even an option of having graphics cards outside the computer using a Thunderbolt 3 cable. There is some speculation that this may still be possible in the future.
</figcaption>
</figure>
<h2 id="d329" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
If SoCs Are So Smart, Why Dont Intel and AMD Copy This Strategy?
</h2>
<p id="f5e0" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
If what Apple is doing is so smart, why is not everybody doing it? To some extent they are. Other ARM chip makers are increasingly putting in specialized hardware.
</p>
<p id="2bdd" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
AMD has also started putting stronger GPUs on some of their chips and moving gradually toward some form of SoC with the accelerated processing units (APU) which are basically CPU cores and GPU cores placed on the same silicon die.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div role="button" tabindex="0" class="je jf am jg v jh">
<div class="fu fv of">
<div class="jn s am jo">
<div class="og jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="900" height="540" src="https://miro.medium.com/max/900/1*vutPH0zsrwSzGgFWomL61A.jpeg" srcset="https://miro.medium.com/max/276/1*vutPH0zsrwSzGgFWomL61A.jpeg 276w, https://miro.medium.com/max/552/1*vutPH0zsrwSzGgFWomL61A.jpeg 552w, https://miro.medium.com/max/640/1*vutPH0zsrwSzGgFWomL61A.jpeg 640w, https://miro.medium.com/max/700/1*vutPH0zsrwSzGgFWomL61A.jpeg 700w" sizes="700px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1800/1*vutPH0zsrwSzGgFWomL61A.jpeg" width="900" height="540" srcset="https://miro.medium.com/max/552/1*vutPH0zsrwSzGgFWomL61A.jpeg 276w, https://miro.medium.com/max/1104/1*vutPH0zsrwSzGgFWomL61A.jpeg 552w, https://miro.medium.com/max/1280/1*vutPH0zsrwSzGgFWomL61A.jpeg 640w, https://miro.medium.com/max/1400/1*vutPH0zsrwSzGgFWomL61A.jpeg 700w" sizes="700px" /></noscript>
</div>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
AMD Ryzen Accelerated Processing Unit (APU) which combines CPU and GPU (Radeon Vega) on one silicon chip. Does however not contain other co-processors, IO-controllers, or unified memory.
</figcaption>
</figure>
<p id="279e" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Yet there are important reasons why they cannot do this. An SoC is essentially a whole computer on a chip. That makes it a more natural fit for an actual computer-maker, such as HP and Dell. Let me clarify with a silly car analogy: If your business model is to build and sell car engines, it would be an unusual leap to begin manufacturing and selling whole cars.
</p>
<p id="04e1" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
For ARM, in contrast, this isnt an issue. Computer makers such as Dell or HP could simply license ARM intellectual property and buy IP for other chips, to add whatever specialized hardware they think their SoC should have. Next, they ship the finished design over to a semiconductor foundry such as <a href="https://en.wikipedia.org/wiki/GlobalFoundries" class="ej ll" target="_blank" rel="noopener nofollow">GlobalFoundries</a> or <a href="https://www.tsmc.com/english" class="ej ll" target="_blank" rel="noopener nofollow">TSMC</a>, which manufactures chips for AMD and Apple today.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div role="button" tabindex="0" class="je jf am jg v jh">
<div class="fu fv oh">
<div class="jn s am jo">
<div class="oi jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="748" height="460" src="https://miro.medium.com/max/748/1*d88lw8YMonKgdDWQLC1jXQ.jpeg" srcset="https://miro.medium.com/max/276/1*d88lw8YMonKgdDWQLC1jXQ.jpeg 276w, https://miro.medium.com/max/552/1*d88lw8YMonKgdDWQLC1jXQ.jpeg 552w, https://miro.medium.com/max/640/1*d88lw8YMonKgdDWQLC1jXQ.jpeg 640w, https://miro.medium.com/max/700/1*d88lw8YMonKgdDWQLC1jXQ.jpeg 700w" sizes="700px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1496/1*d88lw8YMonKgdDWQLC1jXQ.jpeg" width="748" height="460" srcset="https://miro.medium.com/max/552/1*d88lw8YMonKgdDWQLC1jXQ.jpeg 276w, https://miro.medium.com/max/1104/1*d88lw8YMonKgdDWQLC1jXQ.jpeg 552w, https://miro.medium.com/max/1280/1*d88lw8YMonKgdDWQLC1jXQ.jpeg 640w, https://miro.medium.com/max/1400/1*d88lw8YMonKgdDWQLC1jXQ.jpeg 700w" sizes="700px" /></noscript>
</div>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
TSMC semiconductor foundry in Taiwan. TSMC manufactures chips for other companies such as AMD, Apple, Nvidia, and Qualcomm.
</figcaption>
</figure>
<p id="a601" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Here we get a big problem with the Intel and AMD business model. Their business models are based on selling general-purpose CPUs, which people just slot onto a large PC motherboard. Thus computer-makers can simply buy motherboards, memory, CPUs, and graphics cards from different vendors and integrate them into one solution.
</p>
<p id="7f77" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
But we are quickly moving away from that world. In the new SoC world, you dont assemble physical components from different vendors. Instead, you assemble IP (intellectual property) from different vendors. You buy the design for graphics cards, CPUs, modems, IO controllers, and other things from different vendors and use that to design an SoC in-house. Then you get a foundry to manufacture this.
</p>
<p id="2fba" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Now you got a big problem, because neither Intel, AMD, or Nvidia are going to license their intellectual property to Dell or HP for them to make an SoC for their machines.
</p>
<p id="b24c" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Sure Intel and AMD may simply begin to sell whole finished SoCs. But what are these to contain? PC-makers may have different ideas of what they should contain. You potentially get a conflict between Intel, AMD, Microsoft, and PC-makers about what sort of specialized chips should be included because these will need software support.
</p>
<p id="558d" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
For Apple this is simple. They control the whole widget. They give you, for example, the Core ML library for developers to write <a href="https://developer.apple.com/machine-learning/" class="ej ll" target="_blank" rel="noopener nofollow">machine learning</a> stuff. Whether Core ML runs on Apples CPU or the Neural Engine is an implementation detail developers dont have to care about.
</p>
<h2 id="711f" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
The fundamental challenge of making any CPU run fast
</h2>
<p id="f11c" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
So heterogeneous computing is part of the reason but not the sole reason. The fast general-purpose CPU cores on the M1, called Firestorm, are genuinely fast. This is a major deviation from ARM CPU cores in the past which tended to be very weak compared to AMD and Intel cores.
</p>
<p id="b74c" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Firestorm, in contrast, beats most Intel cores and almost beats the fastest AMD Ryzen cores. Conventional wisdom said that was not going to happen.
</p>
<p id="ab49" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Before talking about what makes Firestorm fast it helps to understand what the core idea of making a fast CPU is really about.
</p>
<p id="92fc" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
In principle you accomplish in a combination of two strategies:
</p>
<ol class="">
<li id="68be" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ld le lf hf" data-selectable-paragraph="">Perform more instructions in a sequence faster.
</li>
<li id="5f98" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt ld le lf hf" data-selectable-paragraph="">Perform lots of instructions in parallel.
</li>
</ol>
<p id="bd92" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Back in the 80s, it was easy. Just increase the clock frequency and the instructions would finish faster. Every clock cycle is when the computer does something. But this <em class="nh">something</em> can be quite little. Thus an instruction may require multiple clock cycles to finish because it is made up of several smaller tasks.
</p>
<p id="905f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
However, today increasing the clock frequency is next to impossible. That is the whole “End of Moores Law” that people have been harping on for over a decade now.
</p>
<p id="2133" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Thus it is really about executing as many instructions as possible in parallel.
</p>
<h2 id="1f1b" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
Multi-core or Out-of-Order processors?
</h2>
<p id="9966" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
There are two approaches to this.
</p>
<ul class="">
<li id="23a9" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt lm le lf hf" data-selectable-paragraph="">Add more CPU cores. Each core works independent and in parallel.
</li>
<li id="1299" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Make each CPU core execute multiple instructions in parallel.
</li>
</ul>
<p id="6553" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
For a software developer, adding cores is like adding <em class="nh">threads</em>. Every CPU core is like a hardware thread.
</p>
<p id="5a7a" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
If you dont know what a thread is, then you can think of it as the process of carrying out a task. With two cores, a CPU can carry out two separate tasks concurrently: two threads. The tasks could be described as two separate programs stores in memory or it could actually be the same program performed twice. Each thread needs some bookkeeping, such as <em class="nh">where</em> in a sequence of program instructions the thread is currently at. Each thread may store temporary results which should be kept separate.
</p>
<p id="8059" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
In principle, a processor can have just one core and run multiple threads. In this case, it simply halts one thread and stores current progress before switching to another. Later it switches back. This doesnt bring much of a performance enhancement unless the thread has to frequently halt to:
</p>
<ul class="">
<li id="e4a8" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt lm le lf hf" data-selectable-paragraph="">Wait for input from the user
</li>
<li id="468b" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Data from a slow network connection, etc.
</li>
</ul>
<p id="5f6f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Let us call these software threads. Hardware threads mean you have actual physical CPU cores at your disposal to speed up things.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv nk">
<div class="jn s am jo">
<div class="oj jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="600" height="377" src="https://miro.medium.com/max/600/1*2mDUgCX9a49EldiCTbL6fA.png" srcset="https://miro.medium.com/max/276/1*2mDUgCX9a49EldiCTbL6fA.png 276w, https://miro.medium.com/max/552/1*2mDUgCX9a49EldiCTbL6fA.png 552w, https://miro.medium.com/max/600/1*2mDUgCX9a49EldiCTbL6fA.png 600w" sizes="600px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1200/1*2mDUgCX9a49EldiCTbL6fA.png" width="600" height="377" srcset="https://miro.medium.com/max/552/1*2mDUgCX9a49EldiCTbL6fA.png 276w, https://miro.medium.com/max/1104/1*2mDUgCX9a49EldiCTbL6fA.png 552w, https://miro.medium.com/max/1200/1*2mDUgCX9a49EldiCTbL6fA.png 600w" sizes="600px" /></noscript>
</div>
</div>
</div>
</figure>
<p id="3d7f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
The problem with threads is that software developers have to write so called multi-threaded code. That is often difficult. In the past, this was some of the hardest code to write. However making <em class="nh">server software</em> multi-threaded tends to be easy. It is simply a matter of handling each user request on a separate thread. Thus in this case having lots of cores, is an obvious advantage. Especially for cloud services.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div class="fu fv ok">
<div class="jn s am jo">
<div class="ol jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="358" height="309" src="https://miro.medium.com/max/358/1*X5ZTLTHUYBdw0t25TemHcQ.png" srcset="https://miro.medium.com/max/276/1*X5ZTLTHUYBdw0t25TemHcQ.png 276w, https://miro.medium.com/max/358/1*X5ZTLTHUYBdw0t25TemHcQ.png 358w" sizes="358px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/716/1*X5ZTLTHUYBdw0t25TemHcQ.png" width="358" height="309" srcset="https://miro.medium.com/max/552/1*X5ZTLTHUYBdw0t25TemHcQ.png 276w, https://miro.medium.com/max/716/1*X5ZTLTHUYBdw0t25TemHcQ.png 358w" sizes="358px" /></noscript>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
The Ampere Altra Max ARM CPU with 128 cores designed for cloud computing, where a lot of hardware threads is a benefit.
</figcaption>
</figure>
<p id="f30f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
That is the reason why you see ARM CPU-makers such as Ampere making CPUs such as the <a href="https://www.networkworld.com/article/3564514/ampere-announces-128-core-arm-server-processor.html" class="ej ll" target="_blank" rel="noopener nofollow">Altra Max</a> which has a crazy 128 cores. This chip is specifically made for the cloud. You dont need crazy single-core performance, because in the cloud it is all about having as many threads as possible per watt to handle as many concurrent users as possible.
</p>
<p id="e162" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Read more about ARM CPUs with many cores: <a href="https://erik-engheim.medium.com/are-servers-next-for-apple-7992213d72c9" class="ej ll" target="_blank" rel="noopener">Are Servers Next for Apple?</a>
</p>
<p id="6ead" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Apple, in contrast, is on the complete opposite end of the spectrum. They make single-user devices. Lots of threads is not an advantage. Their devices are used for gaming, video editing, development, etc. They want desktops with beautiful responsive graphics and animations.
</p>
<p id="e3ca" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Desktop software is generally not made to utilize lots of cores. For example, computer games will likely benefit from eight cores, but something like 128 cores would be a total waste. Instead, you would want fewer but more powerful cores.
</p>
<h2 id="8ac1" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
How Out-of-Order Execution Works
</h2>
<p id="4cc9" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
To make a more powerful core we need it to execute more instructions in parallel. <a href="https://en.wikipedia.org/wiki/Out-of-order_execution" class="ej ll" target="_blank" rel="noopener nofollow">Out-of-Order execution</a> (OoOE) is a way to execute more instructions in parallel but without exposing that capability as multiple threads.
</p>
<p id="4f36" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
For an alternative solution read: <a href="https://erik-engheim.medium.com/very-long-instruction-word-microprocessors-17262def3037" class="ej ll" target="_blank" rel="noopener">Very Long Instruction Word Microprocessors</a>
</p>
<p id="db59" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Developers dont have to code their software specifically to take advantage of OoOE. Seen from the developers perspective it just looks like each core runs faster. Please note it is not a direct alternative to hardware threads. You want to use both, depending on the particular problem you are solving.
</p>
<p id="2402" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
To understand how OoOE works, you need to understand some things about memory. Asking for data in one particular memory location is slow. But the CPU is capable of getting getting many bytes at the same time. Hence getting 1 specific byte in memory, takes no less time than getting 100 more bytes following that byte in memory.
</p>
<figure class="mo mp mq mr ms jd fu fv paragraph-image">
<div role="button" tabindex="0" class="je jf am jg v jh">
<div class="fu fv om">
<div class="jn s am jo">
<div class="on jq s">
<div class="fc ji er ff fb jj v jk jl jm"></div><img alt="Image for post" class="xl xm er ff fb jj v c" width="990" height="556" src="https://miro.medium.com/max/990/1*IbuGfelqOOtcyX8NwTh-tw.jpeg" srcset="https://miro.medium.com/max/276/1*IbuGfelqOOtcyX8NwTh-tw.jpeg 276w, https://miro.medium.com/max/552/1*IbuGfelqOOtcyX8NwTh-tw.jpeg 552w, https://miro.medium.com/max/640/1*IbuGfelqOOtcyX8NwTh-tw.jpeg 640w, https://miro.medium.com/max/700/1*IbuGfelqOOtcyX8NwTh-tw.jpeg 700w" sizes="700px" /><noscript><img alt="Image for post" class="er ff fb jj v" src="https://miro.medium.com/max/1980/1*IbuGfelqOOtcyX8NwTh-tw.jpeg" width="990" height="556" srcset="https://miro.medium.com/max/552/1*IbuGfelqOOtcyX8NwTh-tw.jpeg 276w, https://miro.medium.com/max/1104/1*IbuGfelqOOtcyX8NwTh-tw.jpeg 552w, https://miro.medium.com/max/1280/1*IbuGfelqOOtcyX8NwTh-tw.jpeg 640w, https://miro.medium.com/max/1400/1*IbuGfelqOOtcyX8NwTh-tw.jpeg 700w" sizes="700px" /></noscript>
</div>
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b bb bc dv" data-selectable-paragraph="">
Robot pickers in a Warehouse for Komplett.no, an online store in Norway
</figcaption>
</figure>
<p id="170f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Here is an analogy: Consider pickers in a warehouse. Could be the little red robots in the picture above. Moving to multiple locations spread all over takes time. But picking up items from slots adjacent to each other is quick. Computer memory is very similar. You can quickly fetch content of memory cells which are adjecent.
</p>
<p id="4d52" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Data is sent across what we call a databus. You can think of it as a road or pipe between memory and different parts of the CPU where data gets pushed through. In reality, it is of course just some copper tracks conducting electricity. If the databus is wide enough you can get multiple bytes at the same time.
</p>
<p id="2053" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Thus CPUs get a whole chunk of instructions at a time to execute. But they are written to be executed one after the other. Modern microprocessors do what we call Out-of-Order execution (OoOE).
</p>
<p id="de65" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
That means they are able to analyze a buffer of instructions quickly and see which ones depend on which. Look at the simple example below:
</p>
<pre class="mo mp mq mr ms mu mv mw"><span id="4de2" class="hf mx lo gi my b dl mz na s nb" data-selectable-paragraph="">01: mul r1, r2, r3 // r1 ← r2 × r3<br />02: add r4, r1, 5 // r4 ← r1 + 5<br />03: add r6, r2, 1 // r6 ← r2 + 1</span></pre>
<p id="d5a8" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Multiplication tends to be a slow process. So say it takes multiple clock cycles to perform. The second instruction will simply have to wait because its calculation depends on knowing the result that gets put into the <code class="jo nc nd ne my b">r1</code> register.
</p>
<p id="d3b8" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
However, the third instruction at line <code class="jo nc nd ne my b">03</code> doesnt depend on calculations from previous instructions. Hence an Out-of-Order processor can begin calculating this instruction in parallel.
</p>
<p id="deba" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
However more realistically we are talking about hundreds of instructions. The CPU is able to figure out all the dependencies between these instructions.
</p>
<p id="b30b" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
It analyses the instructions by looking at the inputs to each instruction. Do the inputs depend on output from one or more other instructions? By input and output, we mean registers containing results from previous calculations.
</p>
<p id="d5b1" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
For example, the <code class="jo nc nd ne my b">add r4, r1, 5</code> instruction depends on input from <code class="jo nc nd ne my b">r1</code> which is produced by <code class="jo nc nd ne my b">mul r1, r2, r3</code> . We can chain together these relationships into long elaborate graphs that the CPU can work through. The nodes are the instructions and the edges are the registers connecting them.
</p>
<p id="621d" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
The CPU can analyze such a graph of nodes and determine which instructions it can perform in parallel and where it needs to wait for the results from multiple dependent calculations before carrying on.
</p>
<p id="46ee" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Many instructions will finish early but we cannot make their results official. We cannot commit them; otherwise, we supply the result in the wrong order. To the rest of the world, it has to look as if the instructions were carried out in the same sequence as they were issued.
</p>
<p id="8815" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Like a stack, the CPU will keep popping done instructions from the top, until hitting an instruction that is not done.
</p>
<p id="0770" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Basically you got two forms of parallelism: One that the developer must deal with explicitly when writing code and one that is entirely transparent. Of course the latter relies on lots of transistors on the CPU dedicated to Out-of-Order Execution magic. This is not a viable solution for small CPUs with few transistors.
</p>
<p id="01ee" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
It is the superior Out-of-Order execution that is making the Firestorm cores on the M1 kick ass and take names. It is in fact much stronger than anything from Intel or AMD and they may never be able to catch up. To understand why, we need to get into some more technical details.
</p>
<h2 id="52fe" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
ISA Instructions vs Micro-Operations
</h2>
<p id="c057" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
Previously I skipped some details on how Out-of-Order Execution (OoOE) works.
</p>
<p id="5a6b" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Programs loaded into memory are made up of machine code instructions designed for specific Instruction-Set Architectures (ISA) such as x86, ARM, PowerPC, 68K, MIPS, AVR etc.
</p>
<p id="c8b7" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
For instance the x86 instruction to fetch a number from memory location 24 into a register you may write:
</p>
<pre class="mo mp mq mr ms mu mv mw"><span id="bc03" class="hf mx lo gi my b dl mz na s nb" data-selectable-paragraph="">MOV ax, 24</span></pre>
<p id="c6bc" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
x86 have registers named <code class="jo nc nd ne my b">ax</code>, <code class="jo nc nd ne my b">bx</code>, <code class="jo nc nd ne my b">cx</code> and <code class="jo nc nd ne my b">dx</code>(remember these are the memory cells inside the CPU you perform operations on). However the equivalent ARM instruction would look like this:
</p>
<pre class="mo mp mq mr ms mu mv mw"><span id="64d0" class="hf mx lo gi my b dl mz na s nb" data-selectable-paragraph="">LDR r0, 24</span></pre>
<p id="4cd1" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
AMD and Intel processors understand the x86 ISA, while Apple Silicon chips, such as M1, understand the ARM Instruction-Set Architecture (ISA).
</p>
<p id="2266" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
However internally the CPU works on an entirely different instruction-set invisible to the programmer. We call these micro-operations (micro-ops or μops). These are the instructions the Out-of-Order hardware works with.
</p>
<p id="a998" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
But why cant the OoOE hardware work with regular machine code instructions? Because the CPU needs to attach lots of different information to the instructions to be able to run them in parallel.
</p>
<p id="8d96" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Thus while a normal ARM instruction may be 32-bit (32 digits of 0 and 1), a micro-op can be much longer. It contains information about its order.
</p>
<pre class="mo mp mq mr ms mu mv mw"><span id="a55d" class="hf mx lo gi my b dl mz na s nb" data-selectable-paragraph="">01: mul r1, r2, r3 // r1 ← r2 × r3<br />02: add r4, r1, 5 // r4 ← r1 + 5<br />03: add r1, r2, 1 // r1 ← r2 + 1</span></pre>
<p id="0c5e" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Consider if we run instruction <code class="jo nc nd ne my b">01: mul</code> and <code class="jo nc nd ne my b">03: add</code> in parallel. Both store their result in register <code class="jo nc nd ne my b">r1</code> . If we write the result of instruction <code class="jo nc nd ne my b">03: add</code> before <code class="jo nc nd ne my b">01: mul</code>, then instruction <code class="jo nc nd ne my b">02: add</code> will get the wrong input. Hence it is very important to keep track of instruction order. The order is stored with each micro-op. It also stores e.g. that instruction <code class="jo nc nd ne my b">02: add</code> depends on output from <code class="jo nc nd ne my b">01: mul</code>.
</p>
<p id="64b5" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
That is why we cannot have programs written using micro-ops. They contain lots of details specific to the internals of each microprocessor. Two ARM processors could have very different micro-ops internally.
</p>
<p id="31fb" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Read more about CPUs with micro-ops like instructions: <a href="https://erik-engheim.medium.com/very-long-instruction-word-microprocessors-17262def3037" class="ej ll" target="_blank" rel="noopener">Very Long Instruction Word Microprocessors.</a>
</p>
<p id="3180" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Also, micro-ops are usually easier to work with for the CPU. Why? Because they each do <em class="nh">one</em> simple limited task. Regular ISA instructions can be more complex causing a bunch of stuff to happen and thus frequently translate to multiple micro-ops. Thus the name “micro” comes from the small task they do, not the length of the instruction in memory.
</p>
<p id="ff1f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
For CISC CPUs there is usually no alternative but to use micro-ops otherwise the large complex CISC instructions would make pipelines and OoOE next to impossible to achieve.
</p>
<p id="4d71" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Read more: <a href="https://erik-engheim.medium.com/microprocessor-pipelining-f63df4ee60cf" class="ej ll" target="_blank" rel="noopener">Why Pipeline a Microprocessor?</a>
</p>
<p id="9da7" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
RISC CPUs have a choice. So, for example, smaller ARM CPUs dont use micro-ops at all. But that also means they cannot do things such as OoOE.
</p>
</div>
</div>
</section>
<div class="n p cx oo op oq" role="separator"></div>
<section class="gb gc gd ds ge">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<h2 id="b27b" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
Why is AMD and Intel Out-of-Order execution inferior to M1?
</h2>
<p id="cd20" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
But you wonder, why does any of this matter? Why is this detail important to know to understand why Apple has the upper hand on AMD and Intel?
</p>
<p id="8286" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
It is because the ability to run fast depends on how quickly you can fill up a buffer of micro-operations. If you got a large buffer then the OoOE hardware will have an easier time to locate two or more instructions which it can run in parallel. But there is no point in having a large instruction buffer if you cannot refill it fast enough after instructions get picked and executed.
</p>
<p id="5cf7" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
The ability to refill the instruction buffer quickly relies on the ability to quickly chop machine code instruction into micro-ops. The hardware units that does this are called <em class="nh">decoders</em>.
</p>
<p id="d0d8" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
And finally we get to the killer feature of the M1. The biggest and meanest Intel and AMD microprocessor have a total of four decoders busy cutting machine code instructions into micro-ops.
</p>
<p id="8622" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
But this is no match for the M1, which has an absolutely unheard of number of decoders: Eight. Significantly more than anybody else in the industry. That means it can fill up the instruction buffer much quicker.
</p>
<p id="0669" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
To deal with this the M1 also has an instruction buffer which is 3x times larger than what is normal in the industry.
</p>
<h2 id="59ff" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
Why cant Intel and AMD add more instruction decoders?
</h2>
<p id="4735" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
This is where we finally see the revenge of RISC, and where the fact that the M1 Firestorm core has an ARM RISC architecture begins to matter.
</p>
<p id="fca4" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
You see, an x86 instruction can be anywhere from 115 bytes long. RISC instructions have fixed length. Every ARM instruction is 4 bytes long. Why is that relevant in this case?
</p>
<p id="d102" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Because splitting up a stream of bytes into instructions to feed into eight different decoders in parallel becomes trivial if every instruction has the same length.
</p>
<p id="b4e4" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
However, on an x86 CPU, the decoders have no clue <em class="nh">where</em> the next instruction starts. It has to actually analyze each instruction in order to see how long it is.
</p>
<p id="e842" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
The brute force way Intel and AMD deal with this is by simply attempting to decode instructions at every possible starting point. That means x86 chips have to deal with lots of wrong guesses and mistakes which has to be discarded. This creates such a convoluted and complicated decoder stage that it is really hard to add more decoders. But for Apple, it is trivial in comparison to keep adding more.
</p>
<p id="499d" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
In fact, adding more causes so many other problems that four decoders according to AMD itself is basically an upper limit for them.
</p>
<p id="bb2e" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
<mark class="xs xt ew">This is what allows the M1 Firestorm cores to essentially process</mark> <mark class="xs xt ew"><strong class="ka ov">twice</strong></mark> <mark class="xs xt ew">as many instructions as AMD and Intel CPUs at the</mark> <mark class="xs xt ew"><em class="nh">same</em></mark> <mark class="xs xt ew">clock frequency.</mark>
</p>
<p id="327e" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
One could argue as a counterpoint that CISC instructions turn into more micro-ops. For instance if every x86 instruction turned into 2 micro-ops while every ARM instruction turned into 1 micro-op, then four x86 decoders would produce the same number of micro-ops per clock cycle as an ARM CPU with 8 decoders.
</p>
<p id="b2f1" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Except this is not the case in the real world. Highly optimized x86 code rarely uses complex CISC instructions, which would translate into many micro-ops. In fact most will only translate into 1 micro-op.
</p>
<p id="8792" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
However all these simple x86 instructions dont help Intel or AMD. Because even if those 15 byte long instructions are rare, the decoders have to be made to handle them. This incurs complexity that blocks AMD and Intel from adding more decoders.
</p>
<h2 id="26e4" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
But AMDs Zen3 cores are still faster right?
</h2>
<p id="7106" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
As far as I remember from performance benchmarks, the newest AMD CPU cores, the ones called Zen3 are slightly faster than Firestorm cores. But here is the kicker: That only happens because the Zen3 cores are clocked at 5 GHz. Firestorm cores are clocked at 3.2 GHz. The Zen3 is just barely squeezing past Firestorm despite having almost 60% higher clock frequency.
</p>
<p id="da9f" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
So why doesnt Apple increase the clock frequency too? Because higher clock frequency makes the chips run hotter. That is one of Apples key selling points. Their computers — unlike Intel and AMD offerings — barely need cooling.
</p>
<p id="f640" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
In essence, one could say Firestorm cores really are superior to Zen3 cores. Zen3 only manages to stay in the game by drawing a lot more current and getting a lot hotter. Something Apple simply chooses not to do.
</p>
<p id="6302" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
If Apple wants higher performance they are simply going to add more cores. That lets them keep watt usage down while offering more performance.
</p>
<h2 id="e95d" class="mx lo gi ba lp no np hj ls nq nr hm lv hn ns hp lz hq nt hs md ht nu hv mh nv hf" data-selectable-paragraph="">
The future
</h2>
<p id="9450" class="jy jz gi ka b hh mj kc kd hk mk kf kg kh ml kj kk kl mm kn ko kp mn kr ks kt gb hf" data-selectable-paragraph="">
It seems AMD and Intel have painted themselves into a corner on two fronts:
</p>
<ul class="">
<li id="9af9" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt lm le lf hf" data-selectable-paragraph="">They dont have a business model that makes it easy to pursue heterogeneous computing and SoC designs.
</li>
<li id="7c75" class="jy jz gi ka b hh lg kc kd hk lh kf kg kh li kj kk kl lj kn ko kp lk kr ks kt lm le lf hf" data-selectable-paragraph="">Their legacy x86 CISC instruction set is coming back to haunt them, making it hard to improve OoO performance.
</li>
</ul>
<p id="8380" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
Read more: <a href="https://erik-engheim.medium.com/intel-arm-and-the-innovators-dilemma-a9ebd20ea200" class="ej ll" target="_blank" rel="noopener">Intel, ARM and the Innovators Dilemma</a>
</p>
<p id="0ff6" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
It doesnt mean game over. They can increase the clock frequency and use more cooling, throw in more cores, beef up the CPU caches, etc. But they are both at a disadvantage. Intel is in the worst situation, as their cores are already soundly beaten by Firestorm, and they have weak GPUs to integrate with an SoC solution.
</p>
<p id="cd04" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
The problem with throwing in more cores is that for typical desktop workloads you reach diminishing returns with too many cores. Sure lots of cores are great for servers.
</p>
<p id="2a88" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
However here companies such as Amazon and Ampere are attacking with monster CPUs with 128 cores. This is like fighting the western and eastern front at the same time.
</p>
<p id="7fce" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
But fortunately for AMD and Intel, Apple doesnt sell their chips on the market. So PC users will simply have to put up with whatever they are offering. PC users may jump ship, but that is a slow process. You dont leave immediately a platform you are heavily invested in.
</p>
<p id="731a" class="jy jz gi ka b hh kb kc kd hk ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt gb hf" data-selectable-paragraph="">
But young professionals, with money to burn without too deep investments in any platform, may increasingly turn to Apple in the future, beefing up their hold on the premium market and consequently their share of the total profit in the PC market.
</p>
</div>
</div>
</section>
</div>
</article>
<div>
<div class="qy jd n ah p">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<div class="n cu"></div>
<div class="n o cu"></div>
<div class="qz ra s">
<div class="ra n cl iw">
<div class="n aw">
<div class="rb s">
<div class="n o">
<div class="s am ps pt pu pv pw">
<span class="s rc rd re e d"><span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fdebugger-by-medium%2F3262b158cba2&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=post_actions_footer-----3262b158cba2---------------------clap_footer-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb qc r qd qe">
<span class="s rc rd re e d"><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="am rf qm">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo">14.5K</button>
</h4>
</div>
</div>
</div>
</div>
<div class="s ro rp rq rr rs"></div>
<div class="qp n o aw">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="1" aria-labelledby="1">
<button class="ew py ce"><span class="ru s rc rd re e d"><svg width="25" height="25" class="r" aria-label="responses">
<path d="M19.07 21.12a6.33 6.33 0 0 1-3.53-1.1 7.8 7.8 0 0 1-.7-.52c-.77.21-1.57.32-2.38.32-4.67 0-8.46-3.5-8.46-7.8C4 7.7 7.79 4.2 12.46 4.2c4.66 0 8.46 3.5 8.46 7.8 0 2.06-.85 3.99-2.4 5.45a6.28 6.28 0 0 0 1.14 2.59c.15.21.17.48.06.7a.69.69 0 0 1-.62.38h-.03zm0-1v.5l.03-.5h-.03zm-3.92-1.64l.21.2a6.09 6.09 0 0 0 3.24 1.54 7.14 7.14 0 0 1-.83-1.84 5.15 5.15 0 0 1-.16-.75 2.4 2.4 0 0 1-.02-.29v-.23l.18-.15a6.6 6.6 0 0 0 2.3-4.96c0-3.82-3.4-6.93-7.6-6.93-4.19 0-7.6 3.11-7.6 6.93 0 3.83 3.41 6.94 7.6 6.94.83 0 1.64-.12 2.41-.35l.28-.08z" fill-rule="evenodd"></path></svg></span></button>
</div>
</div>
<div class="s am rv qr rw qt rx qv ry rz sa sb">
<h4 class="ba b bb bc hf">
<button class="ew py ce">76<!-- --></button>
</h4>
</div>
</div>
</div>
<div class="n o">
<div class="ix s">
<div class="bv" aria-hidden="false">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" aria-label="Share Post"><svg width="25" height="25" class="r">
<g fill-rule="evenodd">
<path d="M15.6 5a.42.42 0 0 0 .17-.3.42.42 0 0 0-.12-.33l-2.8-2.79a.5.5 0 0 0-.7 0l-2.8 2.8a.4.4 0 0 0-.1.32c0 .12.07.23.16.3h.02a.45.45 0 0 0 .57-.04l2-2V10c0 .28.23.5.5.5s.5-.22.5-.5V2.93l2.02 2.02c.08.07.18.12.3.13.11.01.21-.02.3-.08v.01"></path>
<path d="M18 7h-1.5a.5.5 0 0 0 0 1h1.6c.5 0 .9.4.9.9v10.2c0 .5-.4.9-.9.9H6.9a.9.9 0 0 1-.9-.9V8.9c0-.5.4-.9.9-.9h1.6a.5.5 0 0 0 .35-.15A.5.5 0 0 0 9 7.5a.5.5 0 0 0-.15-.35A.5.5 0 0 0 8.5 7H7a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h11a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2"></path>
</g></svg></button>
</div>
</div>
<div class="sc s dc">
<div class="iz">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fbookmark%2Fp%2F3262b158cba2&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=post_actions_footer--------------------------bookmark_footer-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener"><svg width="25" height="25" viewbox="0 0 25 25">
<path d="M19 6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14.66h.01c.01.1.05.2.12.28a.5.5 0 0 0 .7.03l5.67-4.12 5.66 4.13a.5.5 0 0 0 .71-.03.5.5 0 0 0 .12-.29H19V6zm-6.84 9.97L7 19.64V6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v13.64l-5.16-3.67a.49.49 0 0 0-.68 0z" fill-rule="evenodd"></path></svg></a></span>
</div>
</div>
</div>
</div>
</div>
<div class="sd ra s">
<ul class="ce cf">
<li class="bv se iy sf">
<a href="/tagged/m1" class="ba b sg sh dv si sj bw s mv">M1</a>
</li>
<li class="bv se iy sf">
<a href="/tagged/apple-silicon" class="ba b sg sh dv si sj bw s mv">Apple Silicon</a>
</li>
<li class="bv se iy sf">
<a href="/tagged/apple" class="ba b sg sh dv si sj bw s mv">Apple</a>
</li>
<li class="bv se iy sf">
<a href="/tagged/microprocessor" class="ba b sg sh dv si sj bw s mv">Microprocessor</a>
</li>
<li class="bv se iy sf">
<a href="/tagged/performance" class="ba b sg sh dv si sj bw s mv">Performance</a>
</li>
</ul>
</div>
</div>
</div>
<div>
<div class="n p">
<div class="ao ap aq ar as gf au v"></div>
</div>
<div class="s iw">
<div class="sk sl s sm">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<div class="n o cl">
<h2 class="ba lp sn so sp ls sq sr ss lv st su sv lz sw sx sy md sz ta tb mh jk tc td te tf tg hf">
<a href="https://debugger.medium.com/?source=follow_footer-------------------------------------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">More from Debugger</a>
</h2>
<div class="bv" aria-hidden="false">
<div class="n aw">
<span><button class="ba b bb bc dz be ea eb ec ed ee bl bm bn ef eg br bs bt bu bv bw">Follow</button></span>
</div>
</div>
</div>
<div class="pm th s">
<h4 class="ba b bb bc dv">
Debugger is a publication from Medium about consumer technology and gadgets. It is run by the OneZero editorial team, which also publishes stories about major forces in technology through its namesake publication and stories about science on Future Human.
</h4>
</div>
</div>
</div>
</div>
</div>
<div class="ti s sm iw">
<div class="n p">
<div class="tj tk tl tm tn mt au v">
<div class="fu fv acr s hx hy acs act acu">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<div class="v jj">
<div class="s">
<div class="o n">
<div class="v n cu">
<div class="n">
<div style="flex: 1 1 0%;">
<span class="ba b bb bc hf"><a href="https://dlberes.medium.com/?source=follow_footer---------0----------------------------" class="" rel="noopener">
<h4 class="ba b bb bc fl">
<span class="ba b bb bc hf">Damon Beres</span>
</h4></a></span>
</div>
</div><span class="ba b bb bc dv"><a class="" rel="noopener" href="/even-if-we-cant-be-together-we-can-stop-delivering-terrible-holiday-gifts-37cbb8bad808?source=follow_footer---------0----------------------------">
<h4 class="ba b bb bc dv">
<span class="ba b bb bc dv"><span class="im">·</span>Nov 25, 2020</span>
</h4></a></span>
</div>
</div>
<div class="zk s">
<div>
<div class="er fb yb fy fz ga"></div>
<section class="gb gc gd ds ge">
<div class="">
<h1 id="6149" class="gg gh gi gj b lq kc ls lt kf lv acv acw acx acy acz aea aeb aec aed zk he hf">
<a class="ej bw" rel="noopener" href="/even-if-we-cant-be-together-we-can-stop-delivering-terrible-holiday-gifts-37cbb8bad808?source=follow_footer---------0----------------------------">“Even if we cant be together, we can stop delivering terrible holiday gifts”</a>
</h1>
</div>
<p id="240c" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aee kt gb hf" data-selectable-paragraph="">
With Black Friday upon us, <a href="https://medium.com/@LanceUlanoff/what-not-to-buy-on-black-friday-pandemic-edition-9b179b5aa926" class="ej ll" target="_blank" rel="noopener">tech writer Lance Ulanoff has wisdom to share</a> about the presents to avoid. Why are stores still hawking DVD players and Blu-Ray discs? And $25 Apple Watch knockoffs? Dont fall for any of it.
</p>
<p id="6e56" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aef kt gb hf" data-selectable-paragraph="">
Read the full story at the link below:
</p>
<div class="tr aeg">
<a href="https://medium.com/@LanceUlanoff/what-not-to-buy-on-black-friday-pandemic-edition-9b179b5aa926" target="_blank" rel="noopener">
<div class="ev n dc">
<div class="aeh n ah p aei aej">
<h2 class="gj b dl bc jk aek tc td ael tf tg gh hf">
What Not to Buy on Black Friday Pandemic Edition
</h2>
<div class="aem s">
<h3 class="ba b dl bc jk aek tc td ael tf tg dv">
Even if we cant be together, we can stop delivering terrible holiday gifts
</h3>
</div>
<div class="zk s">
<h4 class="ba b sg bc jk aek tc td ael tf tg dv">
medium.com
</h4>
</div>
</div>
<div class="aen s">
<img src="https://miro.medium.com/max/160/0*d0UJ-OqYFN2ZO7r0" />
</div>
</div></a>
</div>
</section>
</div>
</div>
</div>
<div class="aet n o cl">
<div class="n o">
<div class="n o">
<div class="s am ps pt pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fdebugger-by-medium%2F37cbb8bad808&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer-----37cbb8bad808----0-----------------clap_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="qm">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo">43</button>
</h4>
</div>
</div>
</div>
<div class="aeu n o aev vv aew aex aey">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/even-if-we-cant-be-together-we-can-stop-delivering-terrible-holiday-gifts-37cbb8bad808?responsesOpen=true&amp;source=follow_footer---------0----------------------------">
<div class="aez n o aw">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="12" aria-labelledby="12">
<button class="ew py ce"><svg width="25" height="25" class="r" aria-label="responses">
<path d="M19.07 21.12a6.33 6.33 0 0 1-3.53-1.1 7.8 7.8 0 0 1-.7-.52c-.77.21-1.57.32-2.38.32-4.67 0-8.46-3.5-8.46-7.8C4 7.7 7.79 4.2 12.46 4.2c4.66 0 8.46 3.5 8.46 7.8 0 2.06-.85 3.99-2.4 5.45a6.28 6.28 0 0 0 1.14 2.59c.15.21.17.48.06.7a.69.69 0 0 1-.62.38h-.03zm0-1v.5l.03-.5h-.03zm-3.92-1.64l.21.2a6.09 6.09 0 0 0 3.24 1.54 7.14 7.14 0 0 1-.83-1.84 5.15 5.15 0 0 1-.16-.75 2.4 2.4 0 0 1-.02-.29v-.23l.18-.15a6.6 6.6 0 0 0 2.3-4.96c0-3.82-3.4-6.93-7.6-6.93-4.19 0-7.6 3.11-7.6 6.93 0 3.83 3.41 6.94 7.6 6.94.83 0 1.64-.12 2.41-.35l.28-.08z" fill-rule="evenodd"></path></svg></button>
</div>
</div>
<div class="s am rv afa rw afb rx afc ry afd sa afe"></div>
</div></a>
</div>
</div>
<div class="n o aff">
<div class="eh s">
<div class="bv" aria-hidden="false">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" aria-label="Share Post"><svg width="25" height="25" class="r">
<g fill-rule="evenodd">
<path d="M15.6 5a.42.42 0 0 0 .17-.3.42.42 0 0 0-.12-.33l-2.8-2.79a.5.5 0 0 0-.7 0l-2.8 2.8a.4.4 0 0 0-.1.32c0 .12.07.23.16.3h.02a.45.45 0 0 0 .57-.04l2-2V10c0 .28.23.5.5.5s.5-.22.5-.5V2.93l2.02 2.02c.08.07.18.12.3.13.11.01.21-.02.3-.08v.01"></path>
<path d="M18 7h-1.5a.5.5 0 0 0 0 1h1.6c.5 0 .9.4.9.9v10.2c0 .5-.4.9-.9.9H6.9a.9.9 0 0 1-.9-.9V8.9c0-.5.4-.9.9-.9h1.6a.5.5 0 0 0 .35-.15A.5.5 0 0 0 9 7.5a.5.5 0 0 0-.15-.35A.5.5 0 0 0 8.5 7H7a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h11a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2"></path>
</g></svg></button>
</div>
</div>
<div class="eh s">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="13" aria-labelledby="13">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fbookmark%2Fp%2F37cbb8bad808&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer---------0-----------------bookmark_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener"><svg width="25" height="25" viewbox="0 0 25 25" class="ij">
<path d="M19 6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14.66h.01c.01.1.05.2.12.28a.5.5 0 0 0 .7.03l5.67-4.12 5.66 4.13a.5.5 0 0 0 .71-.03.5.5 0 0 0 .12-.29H19V6zm-6.84 9.97L7 19.64V6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v13.64l-5.16-3.67a.49.49 0 0 0-.68 0z" fill-rule="evenodd"></path></svg></a></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fu fv acr s ip afi ir ww afj afk afl afm afn afo">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<hr class="py afg afh cf" />
<div class="v jj">
<div class="tr s afp">
<div class="o n">
<div class="v n cu">
<div class="n">
<div style="flex: 1 1 0%;">
<span class="ba b bb bc hf"><a href="https://angelalashbrook.medium.com/?source=follow_footer---------1----------------------------" class="" rel="noopener">
<h4 class="ba b bb bc fl">
<span class="ba b bb bc hf">Angela Lashbrook</span>
</h4></a></span>
</div>
</div><span class="ba b bb bc dv"><a class="" rel="noopener" href="/how-to-optimize-your-ability-to-focus-with-sound-and-music-b59731128be8?source=follow_footer---------1----------------------------">
<h4 class="ba b bb bc dv">
<span class="ba b bb bc dv"><span class="im">·</span>Nov 25, 2020<svg class="ij ik il" width="15" height="15" viewbox="0 0 15 15">
<path d="M7.44 2.32c.03-.1.09-.1.12 0l1.2 3.53a.29.29 0 0 0 .26.2h3.88c.11 0 .13.04.04.1L9.8 8.33a.27.27 0 0 0-.1.29l1.2 3.53c.03.1-.01.13-.1.07l-3.14-2.18a.3.3 0 0 0-.32 0L4.2 12.22c-.1.06-.14.03-.1-.07l1.2-3.53a.27.27 0 0 0-.1-.3L2.06 6.16c-.1-.06-.07-.12.03-.12h3.89a.29.29 0 0 0 .26-.19l1.2-3.52z"></path></svg></span>
</h4></a></span>
</div>
</div>
<div class="zk s">
<div>
<div class="er fb yb fy fz ga"></div>
<section class="gb gc gd ds ge">
<div class="">
<h1 id="3723" class="gg gh gi gj b lq kc ls lt kf lv acv acw acx acy acz aea aeb aec aed zk he hf">
<a class="ej bw" rel="noopener" href="/how-to-optimize-your-ability-to-focus-with-sound-and-music-b59731128be8?source=follow_footer---------1----------------------------">How to Optimize Your Ability to Focus With Sound and Music</a>
</h1>
</div>
<div class="">
<h2 id="f359" class="hg gh gi ba b afq afr hw hh hj hk hm hn hp hq hs ht hv dv">
What science and experts say is the best music for tuning out the world while working through a pandemic
</h2>
</div>
<figure class="afs jd fu fv paragraph-image">
<div class="aft fu fv">
<div class="jn s am jo">
<div class="afu jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img alt="A European robin singing" class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/30/1*A65itt206dBX_3gSKv3hdA.jpeg?q=20" width="700" height="515" />
</div><img alt="A European robin singing" class="fc ji er ff fb jj v c" width="700" height="515" />
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b sg bc dv" data-selectable-paragraph="">
Photo: Gabriel Chalmeta/500px/Getty Images
</figcaption>
</figure>
<p id="f58a" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks cx kt gb hf" data-selectable-paragraph="">
Last week, an Eminem <a href="https://www.youtube.com/watch?v=0-9mDUCEzQM&amp;feature=emb_title" class="ej ll" target="_blank" rel="noopener nofollow">YouTube video</a> made me sick.
</p>
<p id="d1b0" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aef kt gb hf" data-selectable-paragraph="">
Not because of anything Eminem did, but rather because the song that streamed when I clicked play is edited into whats known as “8D audio,” a <a href="https://www.digitaltrends.com/home-theater/what-is-8d-audio/" class="ej ll" target="_blank" rel="noopener nofollow">nonsense term</a> that describes music thats been modulated to sound as if its playing in your shared physical space. Eminems voice, for example, was edited to play gradually louder in my left earphone — as if he was approaching me from the left as he raps, before his voice circled around to my right.
</p>
<p id="aa0b" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aef kt gb hf" data-selectable-paragraph="">
8D audio is frequently promoted as <a href="https://www.youtube.com/results?search_query=8d+sounds+for+focus" class="ej ll" target="_blank" rel="noopener nofollow">great for focus</a>, though the notion that someone would find it easier to concentrate while sitting in the same room as, say, a dubstep artist is beyond me. Research suggests you should dispense with distracting 8D audio and listen to another type of music or sound instead. …
</p>
</section>
</div>
</div>
</div>
<div class="afv s">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/how-to-optimize-your-ability-to-focus-with-sound-and-music-b59731128be8?readmore=1&amp;source=follow_footer---------1----------------------------">
<h4 class="ba b bb bc fl">
Read more · 8 min read
</h4></a>
</div>
<div class="aet n o cl">
<div class="n o">
<div class="n o">
<div class="s am ps pt pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fdebugger-by-medium%2Fb59731128be8&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer-----b59731128be8----1-----------------clap_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="qm">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo">663</button>
</h4>
</div>
</div>
</div>
<div class="aeu n o aev vv aew aex aey">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/how-to-optimize-your-ability-to-focus-with-sound-and-music-b59731128be8?responsesOpen=true&amp;source=follow_footer---------1----------------------------">
<div class="qp n o aw">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="14" aria-labelledby="14">
<button class="ew py ce"><svg width="25" height="25" class="r" aria-label="responses">
<path d="M19.07 21.12a6.33 6.33 0 0 1-3.53-1.1 7.8 7.8 0 0 1-.7-.52c-.77.21-1.57.32-2.38.32-4.67 0-8.46-3.5-8.46-7.8C4 7.7 7.79 4.2 12.46 4.2c4.66 0 8.46 3.5 8.46 7.8 0 2.06-.85 3.99-2.4 5.45a6.28 6.28 0 0 0 1.14 2.59c.15.21.17.48.06.7a.69.69 0 0 1-.62.38h-.03zm0-1v.5l.03-.5h-.03zm-3.92-1.64l.21.2a6.09 6.09 0 0 0 3.24 1.54 7.14 7.14 0 0 1-.83-1.84 5.15 5.15 0 0 1-.16-.75 2.4 2.4 0 0 1-.02-.29v-.23l.18-.15a6.6 6.6 0 0 0 2.3-4.96c0-3.82-3.4-6.93-7.6-6.93-4.19 0-7.6 3.11-7.6 6.93 0 3.83 3.41 6.94 7.6 6.94.83 0 1.64-.12 2.41-.35l.28-.08z" fill-rule="evenodd"></path></svg></button>
</div>
</div>
<div class="s am rv afa rw afb rx afc ry afd sa afe">
<h4 class="ba b bb bc hf">
<button class="ew py ce">6</button>
</h4>
</div>
</div></a>
</div>
</div>
<div class="n o aff">
<div class="eh s">
<div class="bv" aria-hidden="false">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" aria-label="Share Post"><svg width="25" height="25" class="r">
<g fill-rule="evenodd">
<path d="M15.6 5a.42.42 0 0 0 .17-.3.42.42 0 0 0-.12-.33l-2.8-2.79a.5.5 0 0 0-.7 0l-2.8 2.8a.4.4 0 0 0-.1.32c0 .12.07.23.16.3h.02a.45.45 0 0 0 .57-.04l2-2V10c0 .28.23.5.5.5s.5-.22.5-.5V2.93l2.02 2.02c.08.07.18.12.3.13.11.01.21-.02.3-.08v.01"></path>
<path d="M18 7h-1.5a.5.5 0 0 0 0 1h1.6c.5 0 .9.4.9.9v10.2c0 .5-.4.9-.9.9H6.9a.9.9 0 0 1-.9-.9V8.9c0-.5.4-.9.9-.9h1.6a.5.5 0 0 0 .35-.15A.5.5 0 0 0 9 7.5a.5.5 0 0 0-.15-.35A.5.5 0 0 0 8.5 7H7a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h11a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2"></path>
</g></svg></button>
</div>
</div>
<div class="eh s">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="15" aria-labelledby="15">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fbookmark%2Fp%2Fb59731128be8&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer---------1-----------------bookmark_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener"><svg width="25" height="25" viewbox="0 0 25 25" class="ij">
<path d="M19 6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14.66h.01c.01.1.05.2.12.28a.5.5 0 0 0 .7.03l5.67-4.12 5.66 4.13a.5.5 0 0 0 .71-.03.5.5 0 0 0 .12-.29H19V6zm-6.84 9.97L7 19.64V6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v13.64l-5.16-3.67a.49.49 0 0 0-.68 0z" fill-rule="evenodd"></path></svg></a></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fu fv acr s ip afi ir ww afj afk afl afm afn afo">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<hr class="py afg afh cf" />
<div class="v jj">
<div class="tr s afp">
<div class="o n">
<div class="v n cu">
<div class="n">
<div style="flex: 1 1 0%;">
<span class="ba b bb bc hf"><a href="https://tomsmith585.medium.com/?source=follow_footer---------2----------------------------" class="" rel="noopener">
<h4 class="ba b bb bc fl">
<span class="ba b bb bc hf">Thomas Smith</span>
</h4></a></span>
</div>
</div><span class="ba b bb bc dv"><a class="" rel="noopener" href="/replace-your-face-with-an-a-i-twin-to-trick-facial-recognition-22be6931cf1?source=follow_footer---------2----------------------------">
<h4 class="ba b bb bc dv">
<span class="ba b bb bc dv"><span class="im">·</span>Nov 25, 2020<svg class="ij ik il" width="15" height="15" viewbox="0 0 15 15">
<path d="M7.44 2.32c.03-.1.09-.1.12 0l1.2 3.53a.29.29 0 0 0 .26.2h3.88c.11 0 .13.04.04.1L9.8 8.33a.27.27 0 0 0-.1.29l1.2 3.53c.03.1-.01.13-.1.07l-3.14-2.18a.3.3 0 0 0-.32 0L4.2 12.22c-.1.06-.14.03-.1-.07l1.2-3.53a.27.27 0 0 0-.1-.3L2.06 6.16c-.1-.06-.07-.12.03-.12h3.89a.29.29 0 0 0 .26-.19l1.2-3.52z"></path></svg></span>
</h4></a></span>
</div>
</div>
<div class="zk s">
<div>
<div class="er fb yb fy fz ga"></div>
<section class="gb gc gd ds ge">
<div class="">
<h1 id="6a64" class="gg gh gi gj b lq kc ls lt kf lv acv acw acx acy acz aea aeb aec aed zk he hf">
<a class="ej bw" rel="noopener" href="/replace-your-face-with-an-a-i-twin-to-trick-facial-recognition-22be6931cf1?source=follow_footer---------2----------------------------">Replace Your Face With an A.I. Twin to Trick Facial Recognition</a>
</h1>
</div>
<div class="">
<h2 id="fe55" class="hg gh gi ba b afq afr hw hh hj hk hm hn hp hq hs ht hv dv">
Try the Anonymizer tool to create a fake face that looks like you
</h2>
</div>
<figure class="afs jd fu fv paragraph-image">
<div class="aft fu fv">
<div class="jn s am jo">
<div class="afw jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img alt="Image for post" class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/30/1*d647YFNwWY0VgTUS--6Ffg.jpeg?q=20" width="700" height="456" />
</div><img alt="Image for post" class="fc ji er ff fb jj v c" width="700" height="456" />
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b sg bc dv" data-selectable-paragraph="">
Image: Donald Iain Smith/Getty Images
</figcaption>
</figure>
<p id="6217" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks cx kt gb hf ku" data-selectable-paragraph="">
If youve posted a photo of yourself online in the past few years, theres a good chance Clearview AI has slurped it up and added it to the companys massive facial recognition database of more than 3.1 billion images. The <em class="nh">New York Times</em> said that Clearview could “<a href="https://www.nytimes.com/2020/01/18/technology/clearview-privacy-facial-recognition.html" class="ej ll" target="_blank" rel="noopener nofollow">end privacy as we know it</a>.” In January, I got my hands on my own Clearview AI profile, and <a href="https://onezero.medium.com/i-got-my-file-from-clearview-ai-and-it-freaked-me-out-33ca28b5d6d4" class="ej ll" target="_blank" rel="noopener">its contents freaked me out</a>.
</p>
<p id="1de2" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aef kt gb hf" data-selectable-paragraph="">
A wide variety of legal and legislative challenges have been mounted against Clearview. My own article was cited in the American Civil Liberties Unions <a href="https://www.aclu.org/sites/default/files/field_document/aclu_v_clearview_complaint_final.pdf" class="ej ll" target="_blank" rel="noopener nofollow">landmark class-action lawsuit</a> against the company. …
</p>
</section>
</div>
</div>
</div>
<div class="afv s">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/replace-your-face-with-an-a-i-twin-to-trick-facial-recognition-22be6931cf1?readmore=1&amp;source=follow_footer---------2----------------------------">
<h4 class="ba b bb bc fl">
Read more · 8 min read
</h4></a>
</div>
<div class="aet n o cl">
<div class="n o">
<div class="n o">
<div class="s am ps pt pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fdebugger-by-medium%2F22be6931cf1&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer-----22be6931cf1----2-----------------clap_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="qm">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo">778</button>
</h4>
</div>
</div>
</div>
<div class="aeu n o aev vv aew aex aey">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/replace-your-face-with-an-a-i-twin-to-trick-facial-recognition-22be6931cf1?responsesOpen=true&amp;source=follow_footer---------2----------------------------">
<div class="qp n o aw">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="16" aria-labelledby="16">
<button class="ew py ce"><svg width="25" height="25" class="r" aria-label="responses">
<path d="M19.07 21.12a6.33 6.33 0 0 1-3.53-1.1 7.8 7.8 0 0 1-.7-.52c-.77.21-1.57.32-2.38.32-4.67 0-8.46-3.5-8.46-7.8C4 7.7 7.79 4.2 12.46 4.2c4.66 0 8.46 3.5 8.46 7.8 0 2.06-.85 3.99-2.4 5.45a6.28 6.28 0 0 0 1.14 2.59c.15.21.17.48.06.7a.69.69 0 0 1-.62.38h-.03zm0-1v.5l.03-.5h-.03zm-3.92-1.64l.21.2a6.09 6.09 0 0 0 3.24 1.54 7.14 7.14 0 0 1-.83-1.84 5.15 5.15 0 0 1-.16-.75 2.4 2.4 0 0 1-.02-.29v-.23l.18-.15a6.6 6.6 0 0 0 2.3-4.96c0-3.82-3.4-6.93-7.6-6.93-4.19 0-7.6 3.11-7.6 6.93 0 3.83 3.41 6.94 7.6 6.94.83 0 1.64-.12 2.41-.35l.28-.08z" fill-rule="evenodd"></path></svg></button>
</div>
</div>
<div class="s am rv afa rw afb rx afc ry afd sa afe">
<h4 class="ba b bb bc hf">
<button class="ew py ce">7</button>
</h4>
</div>
</div></a>
</div>
</div>
<div class="n o aff">
<div class="eh s">
<div class="bv" aria-hidden="false">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" aria-label="Share Post"><svg width="25" height="25" class="r">
<g fill-rule="evenodd">
<path d="M15.6 5a.42.42 0 0 0 .17-.3.42.42 0 0 0-.12-.33l-2.8-2.79a.5.5 0 0 0-.7 0l-2.8 2.8a.4.4 0 0 0-.1.32c0 .12.07.23.16.3h.02a.45.45 0 0 0 .57-.04l2-2V10c0 .28.23.5.5.5s.5-.22.5-.5V2.93l2.02 2.02c.08.07.18.12.3.13.11.01.21-.02.3-.08v.01"></path>
<path d="M18 7h-1.5a.5.5 0 0 0 0 1h1.6c.5 0 .9.4.9.9v10.2c0 .5-.4.9-.9.9H6.9a.9.9 0 0 1-.9-.9V8.9c0-.5.4-.9.9-.9h1.6a.5.5 0 0 0 .35-.15A.5.5 0 0 0 9 7.5a.5.5 0 0 0-.15-.35A.5.5 0 0 0 8.5 7H7a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h11a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2"></path>
</g></svg></button>
</div>
</div>
<div class="eh s">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="17" aria-labelledby="17">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fbookmark%2Fp%2F22be6931cf1&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer---------2-----------------bookmark_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener"><svg width="25" height="25" viewbox="0 0 25 25" class="ij">
<path d="M19 6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14.66h.01c.01.1.05.2.12.28a.5.5 0 0 0 .7.03l5.67-4.12 5.66 4.13a.5.5 0 0 0 .71-.03.5.5 0 0 0 .12-.29H19V6zm-6.84 9.97L7 19.64V6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v13.64l-5.16-3.67a.49.49 0 0 0-.68 0z" fill-rule="evenodd"></path></svg></a></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fu fv acr s ip afi ir ww afj afk afl afm afn afo">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<hr class="py afg afh cf" />
<div class="v jj">
<div class="tr s afp">
<div class="o n">
<div class="v n cu">
<div class="n">
<div style="flex: 1 1 0%;">
<span class="ba b bb bc hf"><a href="https://tomsmith585.medium.com/?source=follow_footer---------3----------------------------" class="" rel="noopener">
<h4 class="ba b bb bc fl">
<span class="ba b bb bc hf">Thomas Smith</span>
</h4></a></span>
</div>
</div><span class="ba b bb bc dv"><a class="" rel="noopener" href="/a-gift-guide-to-this-holiday-seasons-creepiest-surveillance-gadgets-d46a65fcd53e?source=follow_footer---------3----------------------------">
<h4 class="ba b bb bc dv">
<span class="ba b bb bc dv"><span class="im">·</span>Nov 24, 2020<svg class="ij ik il" width="15" height="15" viewbox="0 0 15 15">
<path d="M7.44 2.32c.03-.1.09-.1.12 0l1.2 3.53a.29.29 0 0 0 .26.2h3.88c.11 0 .13.04.04.1L9.8 8.33a.27.27 0 0 0-.1.29l1.2 3.53c.03.1-.01.13-.1.07l-3.14-2.18a.3.3 0 0 0-.32 0L4.2 12.22c-.1.06-.14.03-.1-.07l1.2-3.53a.27.27 0 0 0-.1-.3L2.06 6.16c-.1-.06-.07-.12.03-.12h3.89a.29.29 0 0 0 .26-.19l1.2-3.52z"></path></svg></span>
</h4></a></span>
</div>
</div>
<div class="zk s">
<div>
<div class="er fb yb fy fz ga"></div>
<section class="gb gc gd ds ge">
<h2 id="d29c" class="afx afy gi ba b sg tr nv dv pk" data-selectable-paragraph="">
<a href="https://debugger.medium.com/tagged/gift-guide" class="ej bw" target="_blank" rel="noopener">Gift Guide</a>
</h2>
<div class="">
<h1 id="ef1a" class="gg gh gi gj b lq kc ls lt kf lv acv acw acx acy acz aea aeb aec aed aem he hf">
<a class="ej bw" rel="noopener" href="/a-gift-guide-to-this-holiday-seasons-creepiest-surveillance-gadgets-d46a65fcd53e?source=follow_footer---------3----------------------------">A Gift Guide to This Holiday Seasons Creepiest Surveillance Gadgets</a>
</h1>
</div>
<div class="">
<h2 id="4383" class="hg gh gi ba b afq afr hw hh hj hk hm hn hp hq hs ht hv dv">
Let your loved ones decide what privacy means to them
</h2>
</div>
<figure class="afs jd fu fv paragraph-image">
<div class="aft fu fv">
<div class="jn s am jo">
<div class="afz jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img alt="3 different web cams facing a little figurine person." class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/30/0*qDA-p6tROLkwpN1E?q=20" width="700" height="467" />
</div><img alt="3 different web cams facing a little figurine person." class="fc ji er ff fb jj v c" width="700" height="467" />
</div>
</div>
</div>
<figcaption class="ju jv fw fu fv jw jx ba b sg bc dv" data-selectable-paragraph="">
Photo courtesy of the author
</figcaption>
</figure>
<p id="7df7" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks cx kt gb hf ku" data-selectable-paragraph="">
One of the best things about the holiday season is that you get to force your own privacy preferences on others.
</p>
<p id="274e" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aef kt gb hf" data-selectable-paragraph="">
Maybe your family member wouldnt normally buy a watch that tells Google when theyre asleep or a doorbell that helps them inform on their neighbors. But during this brief window each year, you can make a whole variety of fraught privacy decisions for them through gift-giving! Theyll be forced to live with your privacy choices or risk offending you by returning your thoughtful, pricey gadget to the Amazon warehouse from whence it came.
</p>
<p id="230c" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aef kt gb hf" data-selectable-paragraph="">
You love your friends and family. Really, you do. But if your gadget choice allowed a soulless megacorporation to siphon up their personal data to feed its ever-churning grist mill of profit, maybe youd be okay with that. Or perhaps youd enjoy the option of remotely flying a surveillance drone around their home — or activating the camera on their smart assistant by “dropping in” without their immediate consent. …
</p>
</section>
</div>
</div>
</div>
<div class="afv s">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/a-gift-guide-to-this-holiday-seasons-creepiest-surveillance-gadgets-d46a65fcd53e?readmore=1&amp;source=follow_footer---------3----------------------------">
<h4 class="ba b bb bc fl">
Read more · 9 min read
</h4></a>
</div>
<div class="aet n o cl">
<div class="n o">
<div class="n o">
<div class="s am ps pt pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fdebugger-by-medium%2Fd46a65fcd53e&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer-----d46a65fcd53e----3-----------------clap_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="qm">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo">286</button>
</h4>
</div>
</div>
</div>
<div class="aeu n o aev vv aew aex aey">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/a-gift-guide-to-this-holiday-seasons-creepiest-surveillance-gadgets-d46a65fcd53e?responsesOpen=true&amp;source=follow_footer---------3----------------------------">
<div class="qp n o aw">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="18" aria-labelledby="18">
<button class="ew py ce"><svg width="25" height="25" class="r" aria-label="responses">
<path d="M19.07 21.12a6.33 6.33 0 0 1-3.53-1.1 7.8 7.8 0 0 1-.7-.52c-.77.21-1.57.32-2.38.32-4.67 0-8.46-3.5-8.46-7.8C4 7.7 7.79 4.2 12.46 4.2c4.66 0 8.46 3.5 8.46 7.8 0 2.06-.85 3.99-2.4 5.45a6.28 6.28 0 0 0 1.14 2.59c.15.21.17.48.06.7a.69.69 0 0 1-.62.38h-.03zm0-1v.5l.03-.5h-.03zm-3.92-1.64l.21.2a6.09 6.09 0 0 0 3.24 1.54 7.14 7.14 0 0 1-.83-1.84 5.15 5.15 0 0 1-.16-.75 2.4 2.4 0 0 1-.02-.29v-.23l.18-.15a6.6 6.6 0 0 0 2.3-4.96c0-3.82-3.4-6.93-7.6-6.93-4.19 0-7.6 3.11-7.6 6.93 0 3.83 3.41 6.94 7.6 6.94.83 0 1.64-.12 2.41-.35l.28-.08z" fill-rule="evenodd"></path></svg></button>
</div>
</div>
<div class="s am rv afa rw afb rx afc ry afd sa afe">
<h4 class="ba b bb bc hf">
<button class="ew py ce">3</button>
</h4>
</div>
</div></a>
</div>
</div>
<div class="n o aff">
<div class="eh s">
<div class="bv" aria-hidden="false">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" aria-label="Share Post"><svg width="25" height="25" class="r">
<g fill-rule="evenodd">
<path d="M15.6 5a.42.42 0 0 0 .17-.3.42.42 0 0 0-.12-.33l-2.8-2.79a.5.5 0 0 0-.7 0l-2.8 2.8a.4.4 0 0 0-.1.32c0 .12.07.23.16.3h.02a.45.45 0 0 0 .57-.04l2-2V10c0 .28.23.5.5.5s.5-.22.5-.5V2.93l2.02 2.02c.08.07.18.12.3.13.11.01.21-.02.3-.08v.01"></path>
<path d="M18 7h-1.5a.5.5 0 0 0 0 1h1.6c.5 0 .9.4.9.9v10.2c0 .5-.4.9-.9.9H6.9a.9.9 0 0 1-.9-.9V8.9c0-.5.4-.9.9-.9h1.6a.5.5 0 0 0 .35-.15A.5.5 0 0 0 9 7.5a.5.5 0 0 0-.15-.35A.5.5 0 0 0 8.5 7H7a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h11a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2"></path>
</g></svg></button>
</div>
</div>
<div class="eh s">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="19" aria-labelledby="19">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fbookmark%2Fp%2Fd46a65fcd53e&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer---------3-----------------bookmark_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener"><svg width="25" height="25" viewbox="0 0 25 25" class="ij">
<path d="M19 6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14.66h.01c.01.1.05.2.12.28a.5.5 0 0 0 .7.03l5.67-4.12 5.66 4.13a.5.5 0 0 0 .71-.03.5.5 0 0 0 .12-.29H19V6zm-6.84 9.97L7 19.64V6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v13.64l-5.16-3.67a.49.49 0 0 0-.68 0z" fill-rule="evenodd"></path></svg></a></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fu fv acr s ip afi ir ww afj afk afl afm afn afo">
<div class="n p">
<div class="ao ap aq ar as gf au v">
<hr class="py afg afh cf" />
<div class="v jj">
<div class="tr s afp">
<div class="o n">
<div class="v n cu">
<div class="n">
<div style="flex: 1 1 0%;">
<span class="ba b bb bc hf"><a href="https://megan.medium.com/?source=follow_footer---------4----------------------------" class="" rel="noopener">
<h4 class="ba b bb bc fl">
<span class="ba b bb bc hf">Megan Morrone</span>
</h4></a></span>
</div>
</div><span class="ba b bb bc dv"><a class="" rel="noopener" href="/watch-charlies-brown-s-holiday-specials-without-an-apple-tv-subscription-in-this-limited-window-44c9d2e3ef38?source=follow_footer---------4----------------------------">
<h4 class="ba b bb bc dv">
<span class="ba b bb bc dv"><span class="im">·</span>Nov 24, 2020<svg class="ij ik il" width="15" height="15" viewbox="0 0 15 15">
<path d="M7.44 2.32c.03-.1.09-.1.12 0l1.2 3.53a.29.29 0 0 0 .26.2h3.88c.11 0 .13.04.04.1L9.8 8.33a.27.27 0 0 0-.1.29l1.2 3.53c.03.1-.01.13-.1.07l-3.14-2.18a.3.3 0 0 0-.32 0L4.2 12.22c-.1.06-.14.03-.1-.07l1.2-3.53a.27.27 0 0 0-.1-.3L2.06 6.16c-.1-.06-.07-.12.03-.12h3.89a.29.29 0 0 0 .26-.19l1.2-3.52z"></path></svg></span>
</h4></a></span>
</div>
</div>
<div class="zk s">
<div>
<div class="er fb yb fy fz ga"></div>
<section class="gb gc gd ds ge">
<div class="">
<h1 id="b3dd" class="gg gh gi gj b lq kc ls lt kf lv acv acw acx acy acz aea aeb aec aed zk he hf">
<a class="ej bw" rel="noopener" href="/watch-charlies-brown-s-holiday-specials-without-an-apple-tv-subscription-in-this-limited-window-44c9d2e3ef38?source=follow_footer---------4----------------------------">Watch Charlies Browns Holiday Specials Without an Apple TV+ Subscription (In This Limited Window)</a>
</h1>
</div>
<p id="52b1" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aee kt gb hf" data-selectable-paragraph="">
We cant gather safely with all of our loved ones this year, but thanks to Apple, we can now watch <em class="nh">A Charlie Brown Thanksgiving</em> without an Apple TV+ subscription. So, I guess we have something to be sort of grateful for?
</p>
<p id="42b7" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aef kt gb hf" data-selectable-paragraph="">
Last month <a class="ej ll" target="_blank" rel="noopener" href="/were-being-privatized-charlie-brown-5674a623899a"><em class="nh">Debugger</em> reported</a> that, for the first time ever, the classic Peanuts holiday specials would stream exclusively on Apple TV+ and would be available only to those willing to pay the $4.99 a month subscription or sign up for one of the <a class="ej ll" target="_blank" rel="noopener" href="/apple-one-wants-you-to-pay-more-to-bundle-services-you-dont-want-ee81ad776f62">Apple One bundles</a>. Not exactly in the spirit of these anti-capitalistic childrens stories.
</p>
<p id="4cfe" class="jy jz gi ka b hh kc kd hk kf kg kh kj kk kl kn ko kp kr ks aef kt gb hf" data-selectable-paragraph="">
Now, <a href="https://variety.com/2020/tv/news/charlie-brown-pbs-apple-peanuts-tv-streaming-1234834757/" class="ej ll" target="_blank" rel="noopener nofollow">according to <em class="nh">Variety</em></a>, Apple will share the Peanuts gangs misadventures, including Charlies beautiful tiny tree with the rest of us. <em class="nh">A Charlie Brown Thanksgiving</em> aired on PBS last night, but anyone can watch it for free with the Apple TV+ app (or via the web portal for those without an Apple device) from November 2527. You can watch <em class="nh">A Charlie Brown Christmas</em> the same way from December 1113. …
</p>
</section>
</div>
</div>
</div>
<div class="afv s">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/watch-charlies-brown-s-holiday-specials-without-an-apple-tv-subscription-in-this-limited-window-44c9d2e3ef38?readmore=1&amp;source=follow_footer---------4----------------------------">
<h4 class="ba b bb bc fl">
Read more · 1 min read
</h4></a>
</div>
<div class="aet n o cl">
<div class="n o">
<div class="n o">
<div class="s am ps pt pu pv pw">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fvote%2Fdebugger-by-medium%2F44c9d2e3ef38&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer-----44c9d2e3ef38----4-----------------clap_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener">
<div class="ce px py pz ew qa qb xc r qd qe">
<span><svg width="25" height="25" viewbox="0 0 25 25" aria-label="clap">
<g fill-rule="evenodd">
<path d="M11.74 0l.76 2.97.76-2.97zM14.81 3.78l1.84-2.56-1.42-.47zM8.38 1.22l1.84 2.56L9.8.75zM20.38 21.62a5.11 5.11 0 0 1-3.16 1.61l.49-.45c2.88-2.89 3.45-5.98 1.69-9.21l-1.1-1.94-.96-2.02c-.31-.67-.23-1.18.25-1.55a.84.84 0 0 1 .66-.16c.34.05.66.28.88.6l2.85 5.02c1.18 1.97 1.38 5.12-1.6 8.1M7.1 21.1l-5.02-5.02a1 1 0 0 1 .7-1.7 1 1 0 0 1 .72.3l2.6 2.6a.44.44 0 0 0 .63-.62L4.1 14.04l-1.75-1.75a1 1 0 1 1 1.41-1.41l4.15 4.15a.44.44 0 0 0 .63 0 .44.44 0 0 0 0-.62L4.4 10.26 3.22 9.08a1 1 0 0 1 0-1.4 1.02 1.02 0 0 1 1.41 0l1.18 1.16L9.96 13a.44.44 0 0 0 .62 0 .44.44 0 0 0 0-.63L6.43 8.22a.99.99 0 0 1-.3-.7.99.99 0 0 1 .3-.7 1 1 0 0 1 1.41 0l7 6.98a.44.44 0 0 0 .7-.5l-1.35-2.85c-.31-.68-.23-1.19.25-1.56a.85.85 0 0 1 .66-.16c.34.06.66.28.88.6L18.63 14c1.57 2.88 1.07 5.54-1.55 8.16a5.62 5.62 0 0 1-5.06 1.65 9.35 9.35 0 0 1-4.93-2.72zM11 5.98l2.56 2.56c-.5.6-.56 1.41-.15 2.28l.26.56-4.25-4.25a.98.98 0 0 1-.12-.45 1 1 0 0 1 .29-.7 1.02 1.02 0 0 1 1.41 0zm8.89 2.06c-.38-.56-.9-.92-1.49-1.01a1.74 1.74 0 0 0-1.34.33c-.38.29-.61.65-.71 1.06a2.1 2.1 0 0 0-1.1-.56 1.78 1.78 0 0 0-.99.13l-2.64-2.64a1.88 1.88 0 0 0-2.65 0 1.86 1.86 0 0 0-.48.85 1.89 1.89 0 0 0-2.67-.01 1.87 1.87 0 0 0-.5.9c-.76-.75-2-.75-2.7-.04a1.88 1.88 0 0 0 0 2.66c-.3.12-.61.29-.87.55a1.88 1.88 0 0 0 0 2.66l.62.62a1.88 1.88 0 0 0-.9 3.16l5.01 5.02c1.6 1.6 3.52 2.64 5.4 2.96a7.16 7.16 0 0 0 1.18.1c1.03 0 2-.25 2.9-.7A5.9 5.9 0 0 0 21 22.24c3.34-3.34 3.08-6.93 1.74-9.17l-2.87-5.04z"></path>
</g></svg></span>
</div></a></span>
</div>
<div class="s qf qg qh qi qj qk ql">
<div class="qm">
<h4 class="ba b bb bc hf">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo">54</button>
</h4>
</div>
</div>
</div>
<div class="aeu n o aev vv aew aex aey">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener" href="/watch-charlies-brown-s-holiday-specials-without-an-apple-tv-subscription-in-this-limited-window-44c9d2e3ef38?responsesOpen=true&amp;source=follow_footer---------4----------------------------">
<div class="aez n o aw">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="20" aria-labelledby="20">
<button class="ew py ce"><svg width="25" height="25" class="r" aria-label="responses">
<path d="M19.07 21.12a6.33 6.33 0 0 1-3.53-1.1 7.8 7.8 0 0 1-.7-.52c-.77.21-1.57.32-2.38.32-4.67 0-8.46-3.5-8.46-7.8C4 7.7 7.79 4.2 12.46 4.2c4.66 0 8.46 3.5 8.46 7.8 0 2.06-.85 3.99-2.4 5.45a6.28 6.28 0 0 0 1.14 2.59c.15.21.17.48.06.7a.69.69 0 0 1-.62.38h-.03zm0-1v.5l.03-.5h-.03zm-3.92-1.64l.21.2a6.09 6.09 0 0 0 3.24 1.54 7.14 7.14 0 0 1-.83-1.84 5.15 5.15 0 0 1-.16-.75 2.4 2.4 0 0 1-.02-.29v-.23l.18-.15a6.6 6.6 0 0 0 2.3-4.96c0-3.82-3.4-6.93-7.6-6.93-4.19 0-7.6 3.11-7.6 6.93 0 3.83 3.41 6.94 7.6 6.94.83 0 1.64-.12 2.41-.35l.28-.08z" fill-rule="evenodd"></path></svg></button>
</div>
</div>
<div class="s am rv afa rw afb rx afc ry afd sa afe"></div>
</div></a>
</div>
</div>
<div class="n o aff">
<div class="eh s">
<div class="bv" aria-hidden="false">
<button class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" aria-label="Share Post"><svg width="25" height="25" class="r">
<g fill-rule="evenodd">
<path d="M15.6 5a.42.42 0 0 0 .17-.3.42.42 0 0 0-.12-.33l-2.8-2.79a.5.5 0 0 0-.7 0l-2.8 2.8a.4.4 0 0 0-.1.32c0 .12.07.23.16.3h.02a.45.45 0 0 0 .57-.04l2-2V10c0 .28.23.5.5.5s.5-.22.5-.5V2.93l2.02 2.02c.08.07.18.12.3.13.11.01.21-.02.3-.08v.01"></path>
<path d="M18 7h-1.5a.5.5 0 0 0 0 1h1.6c.5 0 .9.4.9.9v10.2c0 .5-.4.9-.9.9H6.9a.9.9 0 0 1-.9-.9V8.9c0-.5.4-.9.9-.9h1.6a.5.5 0 0 0 .35-.15A.5.5 0 0 0 9 7.5a.5.5 0 0 0-.15-.35A.5.5 0 0 0 8.5 7H7a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h11a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2"></path>
</g></svg></button>
</div>
</div>
<div class="eh s">
<div>
<div class="bv" role="tooltip" aria-hidden="false" aria-describedby="21" aria-labelledby="21">
<span><a href="https://medium.com/m/signin?actionUrl=%2F_%2Fbookmark%2Fp%2F44c9d2e3ef38&amp;operation=register&amp;redirect=https%3A%2F%2Fdebugger.medium.com%2Fwhy-is-apples-m1-chip-so-fast-3262b158cba2&amp;source=follow_footer---------4-----------------bookmark_preview-----------" class="ej ek bz ca cb cc cd ce cf bl el em cg en eo" rel="noopener"><svg width="25" height="25" viewbox="0 0 25 25" class="ij">
<path d="M19 6a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v14.66h.01c.01.1.05.2.12.28a.5.5 0 0 0 .7.03l5.67-4.12 5.66 4.13a.5.5 0 0 0 .71-.03.5.5 0 0 0 .12-.29H19V6zm-6.84 9.97L7 19.64V6a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v13.64l-5.16-3.67a.49.49 0 0 0-.68 0z" fill-rule="evenodd"></path></svg></a></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="n p">
<div class="ao ap aq ar as gf au v">
<hr class="py afg afh cf" />
</div>
</div>
<div class="to qy s">
<div class="mt s jv">
<a href="https://debugger.medium.com/?source=follow_footer-------------------------------------" class="ba b bb bc dz be ea eb ec ed ee bl bm bn ef eg br bs bt bu bv bw" rel="noopener">Read more from <!-- -->Debugger</a>
</div>
</div>
</div>
</div>
</div>
<div class="s tp iw">
<div class="n p">
<div class="ao ap aq ar as at au v">
<div class="tq tr s">
<div class="ts pg tt tr s tu tv">
<h2 class="ba lp no hj ls nq hm lv hn hp lz hq hs md ht hv mh hf">
More From Medium
</h2>
</div>
<div class="cr n aw cu tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk">
<div class="ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf">
<div class="vg vh s">
<div class="v jj">
<div class="n cl">
<div class="s vi vj vk vl">
<div class="vm s">
<h2 class="ba lp sn so ls sq sr lv vn vo lz vp vq md vr vs mh hf">
<a rel="noopener" href="/how-to-mine-a-little-bitcoin-on-nearly-any-pc-8a0601ec858d?source=post_internal_links---------0----------------------------">How to Mine a Little Bitcoin on Nearly Any PC</a>
</h2>
</div>
<div class="o n">
<div class="v s">
<div class="n">
<div style="flex:1">
<div class="cs n o vt">
<span class="ba b bb bc hf"><span class="ba b sg bc hf"><a href="https://tomsmith585.medium.com/?source=post_internal_links---------0----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Thomas Smith</a> <span><!-- -->in<!-- --> <a href="https://debugger.medium.com/?source=post_internal_links---------0----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Debugger</a></span></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="ep iy s vv vw">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo s" rel="noopener" href="/how-to-mine-a-little-bitcoin-on-nearly-any-pc-8a0601ec858d?source=post_internal_links---------0----------------------------">
<div class="jn s am jo">
<div class="vx jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img class="er ff fb jj v jr js jt" src="https://miro.medium.com/freeze/max/60/1*9MmC-mJJuSedFoh6O5K8hg.gif?q=20" width="70" height="70" role="presentation" />
</div><img class="fc ji vy vz wa wb wc wd we wf wg wh c" width="70" height="70" role="presentation" /><noscript><img class="vy vz wa wb wc wd we wf wg wh" src="https://miro.medium.com/focal/140/140/49/52/1*9MmC-mJJuSedFoh6O5K8hg.gif" width="70" height="70" srcset="https://miro.medium.com/focal/96/140/49/52/1*9MmC-mJJuSedFoh6O5K8hg.gif 48w, https://miro.medium.com/focal/140/140/49/52/1*9MmC-mJJuSedFoh6O5K8hg.gif 70w" sizes="70px" role="presentation" /></noscript>
</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf">
<div class="vg vh s">
<div class="v jj">
<div class="n cl">
<div class="s vi vj vk vl">
<div class="vm s">
<h2 class="ba lp sn so ls sq sr lv vn vo lz vp vq md vr vs mh hf">
<a rel="noopener" href="/i-rented-my-tesla-to-a-stranger-on-turo-was-it-worth-it-ff72274751e8?source=post_internal_links---------1----------------------------">I Rented My Tesla to a Stranger on Turo</a>
</h2>
</div>
<div class="o n">
<div class="v s">
<div class="n">
<div style="flex:1">
<div class="cs n o vt">
<span class="ba b bb bc hf"><span class="ba b sg bc hf"><a href="https://medium.com/@churchshelby?source=post_internal_links---------1----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Shelby Church</a> <span><!-- -->in<!-- --> <a href="https://debugger.medium.com/?source=post_internal_links---------1----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Debugger</a></span></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="ep iy s vv vw">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo s" rel="noopener" href="/i-rented-my-tesla-to-a-stranger-on-turo-was-it-worth-it-ff72274751e8?source=post_internal_links---------1----------------------------">
<div class="jn s am jo">
<div class="vx jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/60/1*uZkz7Wchmvur-XZxG4ID0w.png?q=20" width="70" height="70" role="presentation" />
</div><img class="fc ji vy vz wa wb wc wd we wf wg wh c" width="70" height="70" role="presentation" /><noscript><img class="vy vz wa wb wc wd we wf wg wh" src="https://miro.medium.com/focal/140/140/50/55/1*uZkz7Wchmvur-XZxG4ID0w.png" width="70" height="70" srcset="https://miro.medium.com/focal/96/140/50/55/1*uZkz7Wchmvur-XZxG4ID0w.png 48w, https://miro.medium.com/focal/140/140/50/55/1*uZkz7Wchmvur-XZxG4ID0w.png 70w" sizes="70px" role="presentation" /></noscript>
</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf">
<div class="vg vh s">
<div class="v jj">
<div class="n cl">
<div class="s vi vj vk vl">
<div class="vm s">
<h2 class="ba lp sn so ls sq sr lv vn vo lz vp vq md vr vs mh hf">
<a rel="noopener" href="/the-iphone-12-mini-isnt-a-top-seller-and-that-s-just-fine-for-apple-c3452c7f4f48?source=post_internal_links---------2----------------------------">The iPhone 12 Mini Isnt a Top Sellerand Thats Just Fine for Apple</a>
</h2>
</div>
<div class="o n">
<div class="v s">
<div class="n">
<div style="flex:1">
<div class="cs n o vt">
<span class="ba b bb bc hf"><span class="ba b sg bc hf"><a href="https://shortformernie.medium.com/?source=post_internal_links---------2----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Ernie Smith</a> <span><!-- -->in<!-- --> <a href="https://debugger.medium.com/?source=post_internal_links---------2----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Debugger</a></span></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="ep iy s vv vw">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo s" rel="noopener" href="/the-iphone-12-mini-isnt-a-top-seller-and-that-s-just-fine-for-apple-c3452c7f4f48?source=post_internal_links---------2----------------------------">
<div class="jn s am jo">
<div class="vx jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/60/1*6U4e2AC3QLG0D2Zlcph2Hw.jpeg?q=20" width="70" height="70" role="presentation" />
</div><img class="fc ji vy vz wa wb wc wd we wf wg wh c" width="70" height="70" role="presentation" /><noscript><img class="vy vz wa wb wc wd we wf wg wh" src="https://miro.medium.com/focal/140/140/36/35/1*6U4e2AC3QLG0D2Zlcph2Hw.jpeg" width="70" height="70" srcset="https://miro.medium.com/focal/96/140/36/35/1*6U4e2AC3QLG0D2Zlcph2Hw.jpeg 48w, https://miro.medium.com/focal/140/140/36/35/1*6U4e2AC3QLG0D2Zlcph2Hw.jpeg 70w" sizes="70px" role="presentation" /></noscript>
</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf">
<div class="vg vh s">
<div class="v jj">
<div class="n cl">
<div class="s vi vj vk vl">
<div class="vm s">
<h2 class="ba lp sn so ls sq sr lv vn vo lz vp vq md vr vs mh hf">
<a rel="noopener" href="/how-i-cook-84-meals-in-3-hours-3937ce8fb970?source=post_internal_links---------3----------------------------">How I Cook 84 Meals in 3 Hours</a>
</h2>
</div>
<div class="o n">
<div class="v s">
<div class="n">
<div style="flex:1">
<div class="cs n o vt">
<span class="ba b bb bc hf"><span class="ba b sg bc hf"><a href="https://tomsmith585.medium.com/?source=post_internal_links---------3----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Thomas Smith</a> <span><!-- -->in<!-- --> <a href="https://debugger.medium.com/?source=post_internal_links---------3----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Debugger</a></span></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="ep iy s vv vw">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo s" rel="noopener" href="/how-i-cook-84-meals-in-3-hours-3937ce8fb970?source=post_internal_links---------3----------------------------">
<div class="jn s am jo">
<div class="vx jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img class="er ff fb jj v jr js jt" src="https://miro.medium.com/freeze/max/60/1*1nAVe267OX5wneNPpyZ0Xw.gif?q=20" width="70" height="70" role="presentation" />
</div><img class="fc ji vy vz wa wb wc wd we wf wg wh c" width="70" height="70" role="presentation" /><noscript><img class="vy vz wa wb wc wd we wf wg wh" src="https://miro.medium.com/focal/140/140/66/53/1*1nAVe267OX5wneNPpyZ0Xw.gif" width="70" height="70" srcset="https://miro.medium.com/focal/96/140/66/53/1*1nAVe267OX5wneNPpyZ0Xw.gif 48w, https://miro.medium.com/focal/140/140/66/53/1*1nAVe267OX5wneNPpyZ0Xw.gif 70w" sizes="70px" role="presentation" /></noscript>
</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf">
<div class="vg vh s">
<div class="v jj">
<div class="n cl">
<div class="s vi vj vk vl">
<div class="vm s">
<h2 class="ba lp sn so ls sq sr lv vn vo lz vp vq md vr vs mh hf">
<a rel="noopener" href="/i-3d-printed-a-custom-mask-clip-to-keep-my-glasses-from-fogging-up-6e82e9bf3a9d?source=post_internal_links---------4----------------------------">I 3D-Printed a Custom Mask Clip to Keep My Glasses From Fogging Up</a>
</h2>
</div>
<div class="o n">
<div class="v s">
<div class="n">
<div style="flex:1">
<div class="cs n o vt">
<span class="ba b bb bc hf"><span class="ba b sg bc hf"><a href="https://dave.medium.com/?source=post_internal_links---------4----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Dave Gershgorn</a> <span><!-- -->in<!-- --> <a href="https://debugger.medium.com/?source=post_internal_links---------4----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Debugger</a></span></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="ep iy s vv vw">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo s" rel="noopener" href="/i-3d-printed-a-custom-mask-clip-to-keep-my-glasses-from-fogging-up-6e82e9bf3a9d?source=post_internal_links---------4----------------------------">
<div class="jn s am jo">
<div class="vx jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/60/0*2vx3npvVomnRJrDM?q=20" width="70" height="70" role="presentation" />
</div><img class="fc ji vy vz wa wb wc wd we wf wg wh c" width="70" height="70" role="presentation" /><noscript><img class="vy vz wa wb wc wd we wf wg wh" src="https://miro.medium.com/focal/140/140/63/57/0*2vx3npvVomnRJrDM" width="70" height="70" srcset="https://miro.medium.com/focal/96/140/63/57/0*2vx3npvVomnRJrDM 48w, https://miro.medium.com/focal/140/140/63/57/0*2vx3npvVomnRJrDM 70w" sizes="70px" role="presentation" /></noscript>
</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf">
<div class="vg vh s">
<div class="v jj">
<div class="n cl">
<div class="s vi vj vk vl">
<div class="vm s">
<h2 class="ba lp sn so ls sq sr lv vn vo lz vp vq md vr vs mh hf">
<a rel="noopener" href="/notes-is-the-iphone-s-killer-app-yes-really-2d1feea09cbd?source=post_internal_links---------5----------------------------">Notes Is the iPhones Killer App. Yes, Really.</a>
</h2>
</div>
<div class="o n">
<div class="v s">
<div class="n">
<div style="flex:1">
<div class="cs n o vt">
<span class="ba b bb bc hf"><span class="ba b sg bc hf"><a href="https://max-phillips.medium.com/?source=post_internal_links---------5----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Max Phillips</a> <span><!-- -->in<!-- --> <a href="https://debugger.medium.com/?source=post_internal_links---------5----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Debugger</a></span></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="ep iy s vv vw">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo s" rel="noopener" href="/notes-is-the-iphone-s-killer-app-yes-really-2d1feea09cbd?source=post_internal_links---------5----------------------------">
<div class="jn s am jo">
<div class="vx jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/60/0*TPmBwFqS5sznO2rP?q=20" width="70" height="70" role="presentation" />
</div><img class="fc ji vy vz wa wb wc wd we wf wg wh c" width="70" height="70" role="presentation" /><noscript><img class="vy vz wa wb wc wd we wf wg wh" src="https://miro.medium.com/focal/140/140/51/46/0*TPmBwFqS5sznO2rP" width="70" height="70" srcset="https://miro.medium.com/focal/96/140/51/46/0*TPmBwFqS5sznO2rP 48w, https://miro.medium.com/focal/140/140/51/46/0*TPmBwFqS5sznO2rP 70w" sizes="70px" role="presentation" /></noscript>
</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf">
<div class="vg vh s">
<div class="v jj">
<div class="n cl">
<div class="s vi vj vk vl">
<div class="vm s">
<h2 class="ba lp sn so ls sq sr lv vn vo lz vp vq md vr vs mh hf">
<a rel="noopener" href="/people-are-using-airbnb-to-book-pandemic-vacations-they-may-never-take-90fb6c124d14?source=post_internal_links---------6----------------------------">People Are Using Airbnb to Book Pandemic Vacations They May Never Take</a>
</h2>
</div>
<div class="o n">
<div class="v s">
<div class="n">
<div style="flex:1">
<div class="cs n o vt">
<span class="ba b bb bc hf"><span class="ba b sg bc hf"><a href="https://angelalashbrook.medium.com/?source=post_internal_links---------6----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Angela Lashbrook</a> <span><!-- -->in<!-- --> <a href="https://debugger.medium.com/?source=post_internal_links---------6----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Debugger</a></span></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="ep iy s vv vw">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo s" rel="noopener" href="/people-are-using-airbnb-to-book-pandemic-vacations-they-may-never-take-90fb6c124d14?source=post_internal_links---------6----------------------------">
<div class="jn s am jo">
<div class="vx jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/60/1*xsX6onQFpWlBy2S6V4i3ww.jpeg?q=20" width="70" height="70" role="presentation" />
</div><img class="fc ji vy vz wa wb wc wd we wf wg wh c" width="70" height="70" role="presentation" /><noscript><img class="vy vz wa wb wc wd we wf wg wh" src="https://miro.medium.com/focal/140/140/42/59/1*xsX6onQFpWlBy2S6V4i3ww.jpeg" width="70" height="70" srcset="https://miro.medium.com/focal/96/140/42/59/1*xsX6onQFpWlBy2S6V4i3ww.jpeg 48w, https://miro.medium.com/focal/140/140/42/59/1*xsX6onQFpWlBy2S6V4i3ww.jpeg 70w" sizes="70px" role="presentation" /></noscript>
</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
<div class="ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf">
<div class="vg vh s">
<div class="v jj">
<div class="n cl">
<div class="s vi vj vk vl">
<div class="vm s">
<h2 class="ba lp sn so ls sq sr lv vn vo lz vp vq md vr vs mh hf">
<a rel="noopener" href="/i-asked-gpt-3-to-write-a-sea-shanty-about-bidens-inauguration-cb6e8a90d675?source=post_internal_links---------7----------------------------">I Asked GPT-3 to Write a Sea Shanty About Bidens Inauguration</a>
</h2>
</div>
<div class="o n">
<div class="v s">
<div class="n">
<div style="flex:1">
<div class="cs n o vt">
<span class="ba b bb bc hf"><span class="ba b sg bc hf"><a href="https://tomsmith585.medium.com/?source=post_internal_links---------7----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Thomas Smith</a> <span><!-- -->in<!-- --> <a href="https://debugger.medium.com/?source=post_internal_links---------7----------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg en eo" rel="noopener">Debugger</a></span></span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="ep iy s vv vw">
<a class="ej ek bz ca cb cc cd ce cf bl el em cg en eo s" rel="noopener" href="/i-asked-gpt-3-to-write-a-sea-shanty-about-bidens-inauguration-cb6e8a90d675?source=post_internal_links---------7----------------------------">
<div class="jn s am jo">
<div class="vx jq s">
<div class="xl xm er ff fb jj v jk jl jm">
<img class="er ff fb jj v jr js jt" src="https://miro.medium.com/max/60/1*bFp6FVsowL5vfeQAj-jd9g.png?q=20" width="70" height="70" role="presentation" />
</div><img class="fc ji vy vz wa wb wc wd we wf wg wh c" width="70" height="70" role="presentation" /><noscript><img class="vy vz wa wb wc wd we wf wg wh" src="https://miro.medium.com/focal/140/140/32/24/1*bFp6FVsowL5vfeQAj-jd9g.png" width="70" height="70" srcset="https://miro.medium.com/focal/96/140/32/24/1*bFp6FVsowL5vfeQAj-jd9g.png 48w, https://miro.medium.com/focal/140/140/32/24/1*bFp6FVsowL5vfeQAj-jd9g.png 70w" sizes="70px" role="presentation" /></noscript>
</div>
</div></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wi s wj wk">
<div class="n p">
<div class="ao ap aq ar as at au v">
<div class="n ah">
<div class="n o cl">
<a href="https://medium.com/?source=post_page-----3262b158cba2--------------------------------" aria-label="Go to homepage" class="ej ek bz ca cb cc cd ce cf bl wl wm cg wn wo" rel="noopener"><svg viewbox="0 0 3940 610" class="ea wp">
<path d="M594.79 308.2c0 163.76-131.85 296.52-294.5 296.52S5.8 472 5.8 308.2 137.65 11.69 300.29 11.69s294.5 132.75 294.5 296.51M917.86 308.2c0 154.16-65.93 279.12-147.25 279.12s-147.25-125-147.25-279.12S689.29 29.08 770.61 29.08s147.25 125 147.25 279.12M1050 308.2c0 138.12-23.19 250.08-51.79 250.08s-51.79-112-51.79-250.08 23.19-250.08 51.8-250.08S1050 170.09 1050 308.2M1862.77 37.4l.82-.18v-6.35h-167.48l-155.51 365.5-155.51-365.5h-180.48v6.35l.81.18c30.57 6.9 46.09 17.19 46.09 54.3v434.45c0 37.11-15.58 47.4-46.15 54.3l-.81.18V587H1327v-6.35l-.81-.18c-30.57-6.9-46.09-17.19-46.09-54.3V116.9L1479.87 587h11.33l205.59-483.21V536.9c-2.62 29.31-18 38.36-45.68 44.61l-.82.19v6.3h213.3v-6.3l-.82-.19c-27.71-6.25-43.46-15.3-46.08-44.61l-.14-445.2h.14c0-37.11 15.52-47.4 46.08-54.3m97.43 287.8c3.49-78.06 31.52-134.4 78.56-135.37 14.51.24 26.68 5 36.14 14.16 20.1 19.51 29.55 60.28 28.09 121.21zm-2.11 22h250v-1.05c-.71-59.69-18-106.12-51.34-138-28.82-27.55-71.49-42.71-116.31-42.71h-1c-23.26 0-51.79 5.64-72.09 15.86-23.11 10.7-43.49 26.7-60.45 47.7-27.3 33.83-43.84 79.55-47.86 130.93-.13 1.54-.24 3.08-.35 4.62s-.18 2.92-.25 4.39a332.64 332.64 0 0 0-.36 21.69C1860.79 507 1923.65 600 2035.3 600c98 0 155.07-71.64 169.3-167.8l-7.19-2.53c-25 51.68-69.9 83-121 79.18-69.76-5.22-123.2-75.95-118.35-161.63m532.69 157.68c-8.2 19.45-25.31 30.15-48.24 30.15s-43.89-15.74-58.78-44.34c-16-30.7-24.42-74.1-24.42-125.51 0-107 33.28-176.21 84.79-176.21 21.57 0 38.55 10.7 46.65 29.37zm165.84 76.28c-30.57-7.23-46.09-18-46.09-57V5.28L2424.77 60v6.7l1.14-.09c25.62-2.07 43 1.47 53.09 10.79 7.9 7.3 11.75 18.5 11.75 34.26v71.14c-18.31-11.69-40.09-17.38-66.52-17.38-53.6 0-102.59 22.57-137.92 63.56-36.83 42.72-56.3 101.1-56.3 168.81C2230 518.72 2289.53 600 2378.13 600c51.83 0 93.53-28.4 112.62-76.3V588h166.65v-6.66zm159.29-505.33c0-37.76-28.47-66.24-66.24-66.24-37.59 0-67 29.1-67 66.24s29.44 66.24 67 66.24c37.77 0 66.24-28.48 66.24-66.24m43.84 505.33c-30.57-7.23-46.09-18-46.09-57h-.13V166.65l-166.66 47.85v6.5l1 .09c36.06 3.21 45.93 15.63 45.93 57.77V588h166.8v-6.66zm427.05 0c-30.57-7.23-46.09-18-46.09-57V166.65L3082 212.92v6.52l.94.1c29.48 3.1 38 16.23 38 58.56v226c-9.83 19.45-28.27 31-50.61 31.78-36.23 0-56.18-24.47-56.18-68.9V166.66l-166.66 47.85V221l1 .09c36.06 3.2 45.94 15.62 45.94 57.77v191.27a214.48 214.48 0 0 0 3.47 39.82l3 13.05c14.11 50.56 51.08 77 109 77 49.06 0 92.06-30.37 111-77.89v66h166.66v-6.66zM3934.2 588v-6.67l-.81-.19c-33.17-7.65-46.09-22.07-46.09-51.43v-243.2c0-75.83-42.59-121.09-113.93-121.09-52 0-95.85 30.05-112.73 76.86-13.41-49.6-52-76.86-109.06-76.86-50.12 0-89.4 26.45-106.25 71.13v-69.87l-166.66 45.89v6.54l1 .09c35.63 3.16 45.93 15.94 45.93 57V588h155.5v-6.66l-.82-.2c-26.46-6.22-35-17.56-35-46.66V255.72c7-16.35 21.11-35.72 49-35.72 34.64 0 52.2 24 52.2 71.28V588h155.54v-6.66l-.82-.2c-26.46-6.22-35-17.56-35-46.66v-248a160.45 160.45 0 0 0-2.2-27.68c7.42-17.77 22.34-38.8 51.37-38.8 35.13 0 52.2 23.31 52.2 71.28V588z"></path></svg></a>
<div class="wr ws n cl wt cn">
<h4 class="ba b bb bc wq"></h4>
</div><a href="https://medium.com/about?autoplay=1&amp;source=post_page-----3262b158cba2--------------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg wn wo" rel="noopener">About</a>
<h4 class="ba b dl dm wu">
<a href="https://help.medium.com/hc/en-us?source=post_page-----3262b158cba2--------------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg wn wo" rel="noopener">Help</a>
</h4>
<h4 class="ba b dl dm wu">
<a href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f?source=post_page-----3262b158cba2--------------------------------" class="ej ek bz ca cb cc cd ce cf bl vu cg wn wo" rel="noopener">Legal</a>
</h4>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
<![CDATA[
window.__BUILD_ID__ = "main-20210125-211900-e00cf8d7fc"
]]>
</script>
<script>
<![CDATA[
window.__GRAPHQL_URI__ = "https://debugger.medium.com/_/graphql"
]]>
</script>
<script>
<![CDATA[
window.__PRELOADED_STATE__ = {"auroraPage":{"isAuroraPageEnabled":true},"config":{"nodeEnv":"production","version":"main-20210125-211900-e00cf8d7fc","target":"production","productName":"Medium","publicUrl":"https:\u002F\u002Fcdn-client.medium.com\u002Flite","authDomain":"medium.com","authGoogleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","favicon":"production","glyphUrl":"https:\u002F\u002Fglyph.medium.com","branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","lightStep":{"name":"lite-web","host":"lightstep.medium.systems","token":"ce5be895bef60919541332990ac9fef2","appVersion":"main-20210125-211900-e00cf8d7fc"},"algolia":{"appId":"MQ57UUUQZ2","apiKeySearch":"394474ced050e3911ae2249ecc774921","indexPrefix":"medium_","host":"-dsn.algolia.net"},"recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","datadog":{"clientToken":"pub853ea8d17ad6821d9f8f11861d23dfed","context":{"deployment":{"target":"production","tag":"main-20210125-211900-e00cf8d7fc","commit":"e00cf8d7fcc3ea388587750ac655688bae7b63bd"}},"datacenter":"us"},"isAmp":false,"googleAnalyticsCode":"UA-24232453-2","signInWallCustomDomainCollectionIds":["3a8144eabfe3","336d898217ee","61061eb0c96b","138adf9c44c","819cc2aaeee0"],"mediumOwnedAndOperatedCollectionIds":["544c7006046e","bcc38c8f6edf","444d13b52878","8d6b8a439e32","92d2092dc598","1285ba81cada","cb8577c9149e","8ccfed20cbb2","ae2a65f35510","3f6ecf56618","7b6769f2748b","fc8964313712","ef8e90590e66","191186aaafa0","d944778ce714","bdc4052bbdba","88d9857e584e","9dc80918cc93","8a9336e5bb4","cef6983b292","54c98c43354d","193b68bd4fba","b7e45b22fec3","55760f21cdc5"],"tierOneDomains":["medium.com","thebolditalic.com","arcdigital.media","towardsdatascience.com","uxdesign.cc","codeburst.io","psiloveyou.xyz","writingcooperative.com","entrepreneurshandbook.co","prototypr.io","betterhumans.coach.me","theascent.pub"],"topicsToFollow":["d61cf867d93f","8a146bc21b28","1eca0103fff3","4d562ee63426","aef1078a3ef5","e15e46793f8d","6158eb913466","55f1c20aba7a","3d18b94f6858","4861fee224fd","63c6f1f93ee","1d98b3a9a871","decb52b64abf","ae5d4995e225","830cded25262"],"defaultImages":{"avatar":{"imageId":"1*dmbNkD5D-u45r44go_cf0g.png","height":150,"width":150},"orgLogo":{"imageId":"1*OMF3fSqH8t4xBJ9-6oZDZw.png","height":106,"width":545},"postLogo":{"imageId":"1*3sela1OADrJr7dJk_CXaEQ.png","height":810,"width":1440},"postPreviewImage":{"imageId":"1*hn4v1tCaJy7cWMyb0bpNpQ.png","height":386,"width":579}},"performanceTags":[],"collectionStructuredData":{"8d6b8a439e32":{"name":"Elemental","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F980\u002F1*9ygdqoKprhwuTVKUM0DLPA@2x.png","width":980,"height":159}}},"3f6ecf56618":{"name":"Forge","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F596\u002F1*uULpIlImcO5TDuBZ6lm7Lg@2x.png","width":596,"height":183}}},"ae2a65f35510":{"name":"GEN","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F264\u002F1*RdVZMdvfV3YiZTw6mX7yWA.png","width":264,"height":140}}},"88d9857e584e":{"name":"LEVEL","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*JqYMhNX6KNNb2UlqGqO2WQ.png","width":540,"height":108}}},"7b6769f2748b":{"name":"Marker","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F383\u002F1*haCUs0wF6TgOOvfoY-jEoQ@2x.png","width":383,"height":92}}},"444d13b52878":{"name":"OneZero","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*cw32fIqCbRWzwJaoQw6BUg.png","width":540,"height":123}}},"8ccfed20cbb2":{"name":"Zora","data":{"@type":"NewsMediaOrganization","ethicsPolicy":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Farticles\u002F360043290473","logo":{"@type":"ImageObject","url":"https:\u002F\u002Fmiro.medium.com\u002Fmax\u002F540\u002F1*tZUQqRcCCZDXjjiZ4bDvgQ.png","width":540,"height":106}}}},"embeddedPostIds":{"coronavirus":"cd3010f9d81f"},"sharedCdcMessaging":{"COVID_APPLICABLE_TAG_SLUGS":[],"COVID_APPLICABLE_TOPIC_NAMES":[],"COVID_APPLICABLE_TOPIC_NAMES_FOR_TOPIC_PAGE":[],"COVID_MESSAGES":{"tierA":{"text":"For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":66,"end":73,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"tierB":{"text":"Anyone can publish on Medium per our Policies, but we dont fact-check every story. For more info about the coronavirus, see cdc.gov.","markups":[{"start":37,"end":45,"href":"https:\u002F\u002Fhelp.medium.com\u002Fhc\u002Fen-us\u002Fcategories\u002F201931128-Policies-Safety"},{"start":125,"end":132,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"paywall":{"text":"This article has been made free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":56,"end":70,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":138,"end":145,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]},"unbound":{"text":"This article is free for everyone, thanks to Medium Members. For more information on the novel coronavirus and Covid-19, visit cdc.gov.","markups":[{"start":45,"end":59,"href":"https:\u002F\u002Fmedium.com\u002Fmembership"},{"start":127,"end":134,"href":"https:\u002F\u002Fwww.cdc.gov\u002Fcoronavirus\u002F2019-nCoV"}]}},"COVID_BANNER_POST_ID_OVERRIDE_WHITELIST":["3b31a67bff4a"]},"sharedVoteMessaging":{"TAGS":["politics","election-2020","government","us-politics","election","2020-presidential-race","trump","donald-trump","democrats","republicans","congress","republican-party","democratic-party","biden","joe-biden","maga"],"TOPICS":["politics","election"],"MESSAGE":{"text":"Find out more about the U.S. election results here.","markups":[{"start":46,"end":50,"href":"https:\u002F\u002Fcookpolitical.com\u002F2020-national-popular-vote-tracker"}]},"EXCLUDE_POSTS":["397ef29e3ca5"]},"embedPostRules":[],"recircOptions":{"v1":{"limit":3},"v2":{"limit":8}},"braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","paypalClientId":"AXj1G4fotC2GE8KzWX9mSxCH1wmPE3nJglf4Z2ig_amnhvlMVX87otaq58niAg9iuLktVNF_1WCMnN7v","stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","errorTracking":"none"},"debug":{"requestId":"ae26196f-619e-46b9-8bf6-109b7c52aed3","branchDeployConfig":null,"originalSpanCarrier":{"ot-tracer-spanid":"3df801a24c6b87c2","ot-tracer-traceid":"2b1da638312fcf68","ot-tracer-sampled":"true"}},"session":{"user":{"id":"lo_e9ba35822a0e"},"xsrf":"","isSpoofed":false},"stats":{"itemCount":0,"sending":false,"timeout":null,"backup":{}},"navigation":{"branch":{"show":null,"hasRendered":null,"blockedByCTA":false},"hideGoogleOneTap":false,"hasRenderedGoogleOneTap":null,"hasRenderedAlternateUserBanner":null,"currentLocation":"https:\u002F\u002Fdebugger.medium.com\u002Fwhy-is-apples-m1-chip-so-fast-3262b158cba2","host":"debugger.medium.com","hostname":"debugger.medium.com","susiModal":{"step":null,"operation":"register"},"postRead":false},"client":{"isBot":false,"isEu":false,"isUs":false,"isNativeMedium":false,"isSafariMobile":false,"isSafari":false,"inAppBrowserName":"","routingEntity":{"type":"COLLECTION","id":"193b68bd4fba","explicit":true},"supportsWebp":true,"edgeCacheEnabled":false},"multiVote":{"clapsPerPost":{}},"tracing":{}}
]]>
</script>
<script>
<![CDATA[
window.__APOLLO_STATE__ = {"ROOT_QUERY":{"__typename":"Query","variantFlags":[{"__typename":"VariantFlag","name":"allow_access","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_signup","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"allow_test_auth","valueType":{"__typename":"VariantFlagString","value":"disallow"}},{"__typename":"VariantFlag","name":"android_enable_lock_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"assign_default_topic_to_posts","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"available_annual_plan","valueType":{"__typename":"VariantFlagString","value":"2c754bcc2995"}},{"__typename":"VariantFlag","name":"available_monthly_plan","valueType":{"__typename":"VariantFlagString","value":"60e220181034"}},{"__typename":"VariantFlag","name":"bane_add_user","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"bane_verify_domain","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"branch_seo_metadata","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"browsable_stream_config_bucket","valueType":{"__typename":"VariantFlagString","value":"curated-topics"}},{"__typename":"VariantFlag","name":"coronavirus_topic_recirc","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"covid_19_cdc_banner","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"default_seo_post_titles","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_android_subscription_activity_carousel","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_ios_resume_reading_toast","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_ios_subscription_activity_carousel","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_mobile_featured_chunk","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"disable_post_recommended_from_friends_provider","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_android_local_currency","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_annual_renewal_reminder_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_app_flirty_thirty","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_apple_parse_expires_at","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_apple_sign_in","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_apple_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_apple_webhook_renewal_failure","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_about_page_routing","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_general_admission","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_nav","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_profile_follow_pages","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_profile_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_pub_follower_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_recirc","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_sticky_nav","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_aurora_tag_page_routing","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_author_autotier","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_automated_mission_control_triggers","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_apple_pay","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_client","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_integration","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_paypal","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_braintree_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_branch_io","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_branch_text_me_the_app","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_branding","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_branding_fonts","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_cleansweep_double_writes","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_client_error_tracking","valueType":{"__typename":"VariantFlagString","value":"none"}},{"__typename":"VariantFlag","name":"enable_confirm_sign_in","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_cta_meter","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_curation_priority_queue_experiment","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_dedicated_series_tab_api_ios","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_digest_feature_logging","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_digest_tagline","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_earn_redirect","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_edit_alt_text","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_email_sign_in_captcha","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_email_to_subscribers_after_publish","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_embedding_based_diversification","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_end_of_post_cleanup","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_evhead_com_to_ev_medium_com_redirect","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_expanded_feature_chunk_pool","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_filter_by_resend_rules","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_filter_expire_processor","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_footer_app_buttons","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_fyf_authors_and_collections","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_global_susi_modal","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_google_one_tap","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_google_webhook","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_google_webhook_subscription_cancelled","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_highlander_member_digest","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_hightower_user_minimum_guarantee","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_homepage_write_button","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_increased_digest_timeout","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ios_post_stats","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_json_logs_trained_ranker","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_kbfd_rex","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_kbfd_rex_app_highlights","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_kbfd_rex_daily_digest","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_homepage","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_homepage_feed","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_notifications","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_pay_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_post","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_post_cd","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_post_highlights","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_post_highlights_view_only","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_profile","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_pub_homepage_for_selected_domains","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_server_upstream_deadlines","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_stories","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_threaded_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_topics","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lite_unread_notification_count_mutation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_lock_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_login_code_flow","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_marketing_emails","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_media_resource_try_catch","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_medium2_kbfd","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_membership_remove_section_a","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_miro_on_kubernetes","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mission_control","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ml_rank_modules","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_ml_rank_rex_anno","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_mute","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_checkout_flow","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_collaborative_filtering_data","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_new_three_dot_menu","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_parsely","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_patronus_on_kubernetes","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_popularity_feature","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_import","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_page_nav_stickiness_removal","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_post_settings_screen","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_primary_topic_for_mobile","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_profile_design_reminder","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_profile_page_seo_titles","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_responses_2","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_responses_all","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_responses_edit_and_delete","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_responses_moderation","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rex_follow_feed_cache","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rito_upstream_deadlines","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_rtr_channel","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_s3_sites","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_save_to_medium","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_signup_friction","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_starspace","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_starspace_ranker_starspace","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tick_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tipalti_onboarding","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_trending_posts_diversification","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_tribute_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_triton_predictions","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_trumpland_landing_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_unfiltered_cf","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"enable_untruncated_author_post_as_email","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"glyph_font_set","valueType":{"__typename":"VariantFlagString","value":"m2-unbound"}},{"__typename":"VariantFlag","name":"google_sign_in_android","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_generic_home_modules","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_home_post_menu","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_iceland_paywall","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_enable_lock_responses","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"ios_pub_follow_email_opt_in","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"is_not_medium_subscriber","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"kill_fastrak","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"kill_stripe_express","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"limit_post_referrers","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"limit_user_follows","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"make_nav_sticky","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"new_transition_page","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"provider_for_credit_card_form","valueType":{"__typename":"VariantFlagString","value":"BRAINTREE"}},{"__typename":"VariantFlag","name":"pub_sidebar","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"redefine_average_post_reading_time","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"remove_post_post_similarity","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"retrained_ranker","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"sign_up_with_email_button","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"signin_services","valueType":{"__typename":"VariantFlagString","value":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple"}},{"__typename":"VariantFlag","name":"signup_services","valueType":{"__typename":"VariantFlagString","value":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple"}},{"__typename":"VariantFlag","name":"skip_sign_in_recaptcha","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"suppress_apple_missing_expires_date_alert","valueType":{"__typename":"VariantFlagBoolean","value":true}},{"__typename":"VariantFlag","name":"use_new_admin_topic_backend","valueType":{"__typename":"VariantFlagBoolean","value":true}}],"viewer":null,"meterPost({\"postId\":\"3262b158cba2\",\"postMeteringOptions\":{}})":{"__ref":"MeteringInfo:{}"},"postResult({\"id\":\"3262b158cba2\"})":{"__ref":"Post:3262b158cba2"}},"MeteringInfo:{}":{"__typename":"MeteringInfo","postIds":["3262b158cba2"],"maxUnlockCount":3,"unlocksRemaining":2},"ImageMetadata:1*p88dLF6W89KEG54e8BGG4A.png":{"id":"1*p88dLF6W89KEG54e8BGG4A.png","__typename":"ImageMetadata"},"CustomStyleSheet:ada816ee827e":{"id":"ada816ee827e","__typename":"CustomStyleSheet","global":{"__typename":"GlobalStyles","colorPalette":{"__typename":"StyleSheetColorPalette","primary":{"__typename":"ColorValue","colorPalette":{"__typename":"ColorPalette","highlightSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FFEFF8C4","point":0},{"__typename":"ColorPoint","color":"#FFECF7BA","point":0.1},{"__typename":"ColorPoint","color":"#FFE9F7AF","point":0.2},{"__typename":"ColorPoint","color":"#FFE6F6A5","point":0.3},{"__typename":"ColorPoint","color":"#FFE3F49B","point":0.4},{"__typename":"ColorPoint","color":"#FFE1F391","point":0.5},{"__typename":"ColorPoint","color":"#FFDEF287","point":0.6},{"__typename":"ColorPoint","color":"#FFDBF17C","point":0.7},{"__typename":"ColorPoint","color":"#FFD9F071","point":0.8},{"__typename":"ColorPoint","color":"#FFD6EE66","point":0.9},{"__typename":"ColorPoint","color":"#FFD4ED5B","point":1}]},"defaultBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FF7A9000","point":0},{"__typename":"ColorPoint","color":"#FF728600","point":0.1},{"__typename":"ColorPoint","color":"#FF697B00","point":0.2},{"__typename":"ColorPoint","color":"#FF607100","point":0.3},{"__typename":"ColorPoint","color":"#FF576600","point":0.4},{"__typename":"ColorPoint","color":"#FF4E5B00","point":0.5},{"__typename":"ColorPoint","color":"#FF445000","point":0.6},{"__typename":"ColorPoint","color":"#FF3A4404","point":0.7},{"__typename":"ColorPoint","color":"#FF2F3706","point":0.8},{"__typename":"ColorPoint","color":"#FF242A06","point":0.9},{"__typename":"ColorPoint","color":"#FF181C04","point":1}]},"tintBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFd9f732","colorPoints":[{"__typename":"ColorPoint","color":"#FFD9F732","point":0},{"__typename":"ColorPoint","color":"#FFC9E51D","point":0.1},{"__typename":"ColorPoint","color":"#FFB8D400","point":0.2},{"__typename":"ColorPoint","color":"#FFA7C100","point":0.3},{"__typename":"ColorPoint","color":"#FF96AE00","point":0.4},{"__typename":"ColorPoint","color":"#FF849B00","point":0.5},{"__typename":"ColorPoint","color":"#FF728600","point":0.6},{"__typename":"ColorPoint","color":"#FF5F7100","point":0.7},{"__typename":"ColorPoint","color":"#FF4A5A00","point":0.8},{"__typename":"ColorPoint","color":"#FF354100","point":0.9},{"__typename":"ColorPoint","color":"#FF1C2600","point":1}]}}},"background":null},"fonts":{"__typename":"StyleSheetFonts","font1":{"__typename":"StyleSheetFont","name":"SERIF_1"},"font2":{"__typename":"StyleSheetFont","name":"SANS_SERIF_1"},"font3":{"__typename":"StyleSheetFont","name":"SERIF_2"}}},"header":{"__typename":"HeaderStyles","backgroundColor":{"__typename":"ColorValue","colorPalette":{"__typename":"ColorPalette","tintBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FF000000","colorPoints":[{"__typename":"ColorPoint","color":"#FF000000","point":0},{"__typename":"ColorPoint","color":"#FF1E1D1D","point":0.1},{"__typename":"ColorPoint","color":"#FF3C3B3B","point":0.2},{"__typename":"ColorPoint","color":"#FF565555","point":0.3},{"__typename":"ColorPoint","color":"#FF6F6D6D","point":0.4},{"__typename":"ColorPoint","color":"#FF868484","point":0.5},{"__typename":"ColorPoint","color":"#FF9C9A99","point":0.6},{"__typename":"ColorPoint","color":"#FFB1AEAE","point":0.7},{"__typename":"ColorPoint","color":"#FFC5C3C2","point":0.8},{"__typename":"ColorPoint","color":"#FFD9D6D6","point":0.9},{"__typename":"ColorPoint","color":"#FFECE9E9","point":1}]}},"rgb":"000000","alpha":"70"},"postBackgroundColor":null,"headerScale":"HEADER_SCALE_MEDIUM","horizontalAlignment":"CENTER","backgroundImageDisplayMode":"IMAGE_DISPLAY_MODE_FILL","backgroundImageVerticalAlignment":"START","backgroundColorDisplayMode":"COLOR_DISPLAY_MODE_SOLID","secondaryBackgroundColor":null,"backgroundImage":{"__ref":"ImageMetadata:1*s3Uiw9sGrwFiIayL4hge0A.png"},"nameColor":null,"nameTreatment":"NAME_TREATMENT_LOGO","postNameTreatment":"NAME_TREATMENT_LOGO","logoImage":{"__ref":"ImageMetadata:1*fHP0sKfxxIHwAV-ADLsQlg.png"},"logoScale":"HEADER_SCALE_LARGE","taglineColor":{"__typename":"ColorValue","rgb":"ffffff","alpha":"ff"},"taglineTreatment":"TAGLINE_TREATMENT_HEADER"},"navigation":{"__typename":"HeaderNavigation","navItems":[{"__typename":"HeaderNavigationItem","name":"OneZero","href":"https:\u002F\u002Fonezero.medium.com\u002F","tagSlugs":[],"type":"NAV_TYPE_LINK"},{"__typename":"HeaderNavigationItem","name":"Future Human","href":"http:\u002F\u002Ffuturehuman.medium.com\u002F","tagSlugs":[],"type":"NAV_TYPE_LINK"}]},"postBody":null},"ImageMetadata:":{"id":"","__typename":"ImageMetadata","originalWidth":0,"originalHeight":0},"User:30da86fe8b0d":{"id":"30da86fe8b0d","__typename":"User"},"Collection:193b68bd4fba":{"id":"193b68bd4fba","__typename":"Collection","domain":"debugger.medium.com","googleAnalyticsId":null,"slug":"debugger-by-medium","colorBehavior":"ACCENT_COLOR","isAuroraVisible":true,"favicon":{"__ref":"ImageMetadata:1*p88dLF6W89KEG54e8BGG4A.png"},"name":"Debugger","colorPalette":{"__typename":"ColorPalette","highlightSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FFFFFFFF","point":0},{"__typename":"ColorPoint","color":"#FFE8F3E8","point":0.1},{"__typename":"ColorPoint","color":"#FFE8F3E8","point":0.2},{"__typename":"ColorPoint","color":"#FFD1E7D1","point":0.6},{"__typename":"ColorPoint","color":"#FFA3D0A2","point":1}]},"defaultBackgroundSpectrum":{"__typename":"ColorSpectrum","backgroundColor":"#FFFFFFFF","colorPoints":[{"__typename":"ColorPoint","color":"#FF1A8917","point":0},{"__typename":"ColorPoint","color":"#FF11800E","point":0.1},{"__typename":"ColorPoint","color":"#FF0F730C","point":0.2},{"__typename":"ColorPoint","color":"#FF095407","point":1}]},"tintBackgroundSpectrum":null},"customStyleSheet":{"__ref":"CustomStyleSheet:ada816ee827e"},"tagline":"Every gadget has a story. A new publication from Medium about consumer technology.","isAuroraEligible":true,"viewerIsEditor":false,"logo":{"__ref":"ImageMetadata:"},"navItems":[],"creator":{"__ref":"User:30da86fe8b0d"},"subscriberCount":8400,"avatar":{"__ref":"ImageMetadata:1*p88dLF6W89KEG54e8BGG4A.png"},"isEnrolledInHightower":false,"newsletterV3":null,"viewerIsFollowing":false,"viewerIsSubscribedToLetters":false,"canToggleEmail":true,"isUserSubscribedToCollectionEmails":false,"viewerIsMuting":false,"viewerCanEditOwnPosts":false,"viewerCanEditPosts":false,"description":"Debugger is a publication from Medium about consumer technology and gadgets. It is run by the OneZero editorial team, which also publishes stories about major forces in technology through its namesake publication and stories about science on Future Human.","ampEnabled":false,"twitterUsername":null,"facebookPageId":null},"User:c2fa2c34f40c":{"id":"c2fa2c34f40c","__typename":"User","isSuspended":false,"name":"Erik Engheim","hasCompletedProfile":false,"bio":"Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.","imageId":"0*1Y9ylHZ8csOxgZr7.jpg","customStyleSheet":null,"hasDomain":true,"username":"erik-engheim","isAuroraVisible":true,"socialStats":{"__typename":"SocialStats","followerCount":6714},"isBlocking":false,"mediumMemberAt":1563174000000,"isMuting":false,"isFollowing":false,"allowNotes":true,"newsletterV3":null,"viewerIsUser":false,"twitterScreenName":"","isPartnerProgramEnrolled":false},"ImageMetadata:1*s3Uiw9sGrwFiIayL4hge0A.png":{"id":"1*s3Uiw9sGrwFiIayL4hge0A.png","__typename":"ImageMetadata","originalWidth":2880},"ImageMetadata:1*fHP0sKfxxIHwAV-ADLsQlg.png":{"id":"1*fHP0sKfxxIHwAV-ADLsQlg.png","__typename":"ImageMetadata","originalWidth":2000,"originalHeight":422},"Paragraph:6df80d920455_0":{"id":"6df80d920455_0","__typename":"Paragraph","name":"8c58","text":"Why Is Apples M1 Chip So Fast?","type":"H3","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_1":{"id":"6df80d920455_1","__typename":"Paragraph","name":"d808","text":"Real-world experience with the new M1 Macs has started ticking in. They are fast. Real fast. But why? What is the magic?","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_2":{"id":"6df80d920455_2","__typename":"Paragraph","name":"70b3","text":"Image: Apple","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*thz7gKafCYxWoA0h8aGjcg.jpeg"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_3":{"id":"6df80d920455_3","__typename":"Paragraph","name":"8eb8","text":"On YouTube, I watched a Mac user who had bought an iMac last year. It was maxed out with 40 GB of RAM costing him about $4,000. He watched in disbelief how his hyperexpensive iMac was being demolished by his new M1 Mac Mini, which he had paid a measly $700 for.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":true,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_4":{"id":"6df80d920455_4","__typename":"Paragraph","name":"1408","text":"In real-world test after test, the M1 Macs are not merely inching past top-of-the-line Intel Macs, they are destroying them. In disbelief, people have started asking how on earth this is possible?","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_5":{"id":"6df80d920455_5","__typename":"Paragraph","name":"71b6","text":"If you are one of those people, you have come to the right place. Here I plan to break it down into digestible pieces exactly what it is that Apple has done with the M1. Specifically the questions I think a lot of people have are:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_6":{"id":"6df80d920455_6","__typename":"Paragraph","name":"89bf","text":"What are the technical reasons this M1 chip is so fast?","type":"OLI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_7":{"id":"6df80d920455_7","__typename":"Paragraph","name":"c5cb","text":"Has Apple made some really exotic technical choices to make this possible?","type":"OLI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_8":{"id":"6df80d920455_8","__typename":"Paragraph","name":"03e6","text":"How easy will it be for the competition such as Intel and AMD to pull the same technical tricks?","type":"OLI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_9":{"id":"6df80d920455_9","__typename":"Paragraph","name":"6e93","text":"Sure you could try to Google this, but if you try to learn what Apple has done beyond the superficial explanations, you will quickly get buried in highly technical jargon such as M1 using very wide instruction decoders, enormous reorder buffer (ROB), etc. Unless you are a CPU hardware geek, a lot of this will simply be gobbledygook.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_10":{"id":"6df80d920455_10","__typename":"Paragraph","name":"ecc7","text":"To get the most out of this story I advise reading my earlier piece: “What Does RISC and CISC mean in 2020?” There I explain what a microprocessor (CPU) is as well as various important concepts such as:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":70,"end":106,"type":"A","href":"https:\u002F\u002Fmedium.com\u002Fswlh\u002Fwhat-does-risc-and-cisc-mean-in-2020-7b4d42c9a9de","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_11":{"id":"6df80d920455_11","__typename":"Paragraph","name":"4638","text":"Instruction set architecture (ISA)","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_12":{"id":"6df80d920455_12","__typename":"Paragraph","name":"e7aa","text":"Pipelining","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_13":{"id":"6df80d920455_13","__typename":"Paragraph","name":"69ae","text":"Load\u002Fstore architecture","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_14":{"id":"6df80d920455_14","__typename":"Paragraph","name":"f37f","text":"Microcode vs. micro-operations","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_15":{"id":"6df80d920455_15","__typename":"Paragraph","name":"85a3","text":"But if you are impatient, I will do a quick version of the material you need to understand to grasp my explanation of the M1 chip.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_16":{"id":"6df80d920455_16","__typename":"Paragraph","name":"a207","text":"What is a microprocessor (CPU)?","type":"H3","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_17":{"id":"6df80d920455_17","__typename":"Paragraph","name":"285c","text":"Normally when speaking of chips from Intel and AMD we talk about central processing units (CPUs) or microprocessors. As you can read more about in my RISC vs. CISC story, these pull in instructions from memory. Then each instruction is typically carried out in sequence.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":150,"end":169,"type":"A","href":"https:\u002F\u002Fmedium.com\u002Fswlh\u002Fwhat-does-risc-and-cisc-mean-in-2020-7b4d42c9a9de","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_18":{"id":"6df80d920455_18","__typename":"Paragraph","name":"a711","text":"A very basic RISC CPU, not the M1. Instructions are moved from memory along blue arrows into the instruction register. There a decoder figures out what the instruction is and enables different parts of the CPU through the red control lines. The ALU adds and subtracts numbers placed in the registers.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*3G7uz4l1GnFacxz6InrLLw.png"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":76,"end":80,"type":"STRONG","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":222,"end":225,"type":"STRONG","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_19":{"id":"6df80d920455_19","__typename":"Paragraph","name":"5525","text":"A CPU at its most basic level is a device with a number of named memory cells called registers and a number of computational units called arithmetic logic units (ALU). The ALUs perform things like addition, subtraction, and other basic math operations. However, these are only connected to the CPU registers. If you want to add up two numbers, you have to get those two numbers from memory and into two registers in the CPU.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_20":{"id":"6df80d920455_20","__typename":"Paragraph","name":"db6e","text":"Here are some examples of typical instructions that a RISC CPU as found on the M1 carries out.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_21":{"id":"6df80d920455_21","__typename":"Paragraph","name":"9500","text":"load r1, 150\nload r2, 200\nadd r1, r2\nstore r1, 310","type":"PRE","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":0,"end":51,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_22":{"id":"6df80d920455_22","__typename":"Paragraph","name":"d5bb","text":"Here r1 and r2 are the registers I talked about. Modern RISC CPUs cannot do operations on numbers that are not in a register like this. For example, it cannot add two numbers residing in RAM in two different locations. Instead, it has to pull these two numbers into a separate register. That is what we do in this simple example. We pull in the number at memory location 150 in the RAM and put it into register r1 in the CPU. Next, we put the contents of address 200 into register r2. Only then can the numbers be added with the add r1, r2 instruction.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":5,"end":7,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":12,"end":14,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":411,"end":413,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":481,"end":483,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":529,"end":539,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_23":{"id":"6df80d920455_23","__typename":"Paragraph","name":"7d8c","text":"An old mechanical calculator with two registers: the accumulator and input register. Modern CPUs typically have more than a dozen registers, and they are electronic rather than mechanical.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*kDqSqtumOzNFZdpixUW0IQ.jpeg"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_24":{"id":"6df80d920455_24","__typename":"Paragraph","name":"7146","text":"The concept of registers is old. For example, on this old mechanical calculator, the register is what holds the numbers you are adding. Likely the origin of the term cash register. The register is where you registered input numbers.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":85,"end":93,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":166,"end":179,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_25":{"id":"6df80d920455_25","__typename":"Paragraph","name":"22f2","text":"The M1 is not a CPU!","type":"H3","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_26":{"id":"6df80d920455_26","__typename":"Paragraph","name":"d450","text":"But here is a very important thing to understand about the M1:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_27":{"id":"6df80d920455_27","__typename":"Paragraph","name":"777f","text":"The M1 is not a CPU, it is a whole system of multiple chips put into one large silicon package. The CPU is just one of these chips.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_28":{"id":"6df80d920455_28","__typename":"Paragraph","name":"69f0","text":"Basically, the M1 is one whole computer onto a chip. The M1 contains a CPU, graphical processing unit (GPU), memory, input and output controllers, and many more things making up a whole computer. This is what we call a system on a chip (SoC).","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_29":{"id":"6df80d920455_29","__typename":"Paragraph","name":"2be5","text":"M1 is a system on a chip. Meaning all the parts making up a computer are placed on one silicon chip.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*c4EYUAVj4k7n6wWLoWUVdA.png"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_30":{"id":"6df80d920455_30","__typename":"Paragraph","name":"fce1","text":"Today if you buy a chip — whether from Intel or AMD — you actually get what amounts to multiple microprocessors in one package. In the past computers would have multiple physically separate chips on the motherboard of the computer.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":87,"end":95,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_31":{"id":"6df80d920455_31","__typename":"Paragraph","name":"2ec0","text":"Example of a computer motherboard. Memory, CPU, graphics cards, IO controllers, network cards, and many other components can be attached to the motherboard to communicate with each other.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*GBrG4D2YCEVYREXAHIiJnQ.png"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_32":{"id":"6df80d920455_32","__typename":"Paragraph","name":"9cf5","text":"However because we are able to put so many transistors on a silicon die today, companies such as Intel and AMD began putting multiple microprocessors onto one chip. Today we refer to these chips as CPU cores. One core is basically a full independent chip that can read instructions from memory and perform calculations.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_33":{"id":"6df80d920455_33","__typename":"Paragraph","name":"5d80","text":"A microchip with multiple CPU cores.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*XZsBJV_v4WybnUFYjJJiPQ.gif"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_34":{"id":"6df80d920455_34","__typename":"Paragraph","name":"18a4","text":"This has for a long time been the name of the game in terms of increasing performance: Just add more general-purpose CPU cores. But there is a disturbance in the force. There is one player in the CPU market which is deviating from this trend.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_35":{"id":"6df80d920455_35","__typename":"Paragraph","name":"cff4","text":"Apples not so secret heterogeneous computing strategy","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_36":{"id":"6df80d920455_36","__typename":"Paragraph","name":"8feb","text":"Instead of adding ever more general-purpose CPU cores, Apple has followed another strategy: They have started adding ever more specialized chips doing a few specialized tasks. The benefit of this is that specialized chips tend to be able to perform their tasks significantly faster using much less electric current than a general-purpose CPU core.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_37":{"id":"6df80d920455_37","__typename":"Paragraph","name":"e379","text":"This is not entirely new knowledge. For many years already specialized chips such as the graphical processing units (GPUs) have been sitting in Nvidia and AMD graphics cards performing operations related to graphics much faster than general-purpose CPUs.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_38":{"id":"6df80d920455_38","__typename":"Paragraph","name":"866e","text":"What Apple has done is simply to take a more radical shift toward this direction. Rather than just having general-purpose cores and memory, the M1 contains a wide variety of specialized chips:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_39":{"id":"6df80d920455_39","__typename":"Paragraph","name":"6e0e","text":"Central processing unit (CPU) — the “brains” of the SoC. Runs most of the code of the operating system and your apps.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_40":{"id":"6df80d920455_40","__typename":"Paragraph","name":"037c","text":"Graphics processing unit (GPU) — handles graphics-related tasks, such as visualizing an apps user interface and 2D\u002F3D gaming.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_41":{"id":"6df80d920455_41","__typename":"Paragraph","name":"9a44","text":"Image processing unit (ISP) — can be used to speed up common tasks done by image processing applications.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_42":{"id":"6df80d920455_42","__typename":"Paragraph","name":"c654","text":"Digital signal processor (DSP) — handles more mathematically intensive functions than a CPU. Includes decompressing music files.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_43":{"id":"6df80d920455_43","__typename":"Paragraph","name":"1cac","text":"Neural processing unit (NPU) — used in high-end smartphones to accelerate machine learning (A.I.) tasks. These include voice recognition and camera processing.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_44":{"id":"6df80d920455_44","__typename":"Paragraph","name":"ce8d","text":"Video encoder\u002Fdecoder — handles the power-efficient conversion of video files and formats.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_45":{"id":"6df80d920455_45","__typename":"Paragraph","name":"d9a8","text":"Secure Enclave — encryption, authentication, and security.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_46":{"id":"6df80d920455_46","__typename":"Paragraph","name":"2d2b","text":"Unified memory — allows the CPU, GPU, and other cores to quickly exchange information.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_47":{"id":"6df80d920455_47","__typename":"Paragraph","name":"967a","text":"This is part of the reason why a lot of people working on images and video editing with the M1 Macs are seeing such speed improvements. A lot of the tasks they do can run directly on specialized hardware. That is what allows a cheap M1 Mac Mini to encode a large video file without breaking a sweat while an expensive iMac has all its fans going full blast and still cannot keep up.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_48":{"id":"6df80d920455_48","__typename":"Paragraph","name":"39d6","text":"Read more about heterogeneous computing: Apple M1 foreshadows Rise of RISC-V.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":41,"end":76,"type":"A","href":"https:\u002F\u002Ferik-engheim.medium.com\u002Fapple-m1-foreshadows-risc-v-dd63a62b2562","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_49":{"id":"6df80d920455_49","__typename":"Paragraph","name":"4049","text":"In blue you see multiple CPU cores accessing memory, and in green you see large numbers of GPU cores accessing memory.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*SpFJ9g-taH9a-TvXdnaq2w.png"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":3,"end":7,"type":"STRONG","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":60,"end":65,"type":"STRONG","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_50":{"id":"6df80d920455_50","__typename":"Paragraph","name":"d906","text":"What is Special About Apples Unified Memory Architecture?","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_51":{"id":"6df80d920455_51","__typename":"Paragraph","name":"956a","text":"Apples “Unified Memory Architecture” (UMA) is a bit tricky to wrap your head around (I got it wrong first time I wrote it down here).","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_52":{"id":"6df80d920455_52","__typename":"Paragraph","name":"8cb3","text":"To explain why, we need to take a few steps back.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_53":{"id":"6df80d920455_53","__typename":"Paragraph","name":"b7a7","text":"For a long time cheap computer systems have had the CPU and GPU integrated into the same chip (same silicon die). These have been famously slow. In the past saying “integrated graphics” was essentially the same as saying “slow graphics.”","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_54":{"id":"6df80d920455_54","__typename":"Paragraph","name":"a598","text":"These where slow for severals reasons:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_55":{"id":"6df80d920455_55","__typename":"Paragraph","name":"1d41","text":"Separate areas of this memory got reserved for the CPU and GPU. If the CPU had a chunk of data it wanted the GPU to use, it couldnt say “here have some of my memory.” No, the CPU had to explicitly copy the whole chunk of data over the memory area controlled by the GPU.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_56":{"id":"6df80d920455_56","__typename":"Paragraph","name":"dd18","text":"CPUs dont need a lot of data served, but they want it fast.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*7c67HhuDWVFM3Pi-mO5boA.jpeg"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":55,"end":59,"type":"STRONG","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_57":{"id":"6df80d920455_57","__typename":"Paragraph","name":"f669","text":"CPUs and GPUs dont want their memory served the same way. Let us do a silly food analogy: CPUs want their plate of data served very quickly by the waiter, but they are totally cool with small portion sizes. Imagine a fancy French restaurant with waiters on rollerblades to serve you really quickly.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_58":{"id":"6df80d920455_58","__typename":"Paragraph","name":"cc63","text":"This is how your GPU wants their memory: huge portions. The more the merrier.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*ethYaJsPETw2zxF7Xm0Z0w.jpeg"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":41,"end":45,"type":"STRONG","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_59":{"id":"6df80d920455_59","__typename":"Paragraph","name":"9c14","text":"GPUs in contrast are cool with the waiter being slow to serve the data. But the GPUs want enormous servings. They gobble massive amounts of data because they are massive parallel machines, that can chew through lots of data in parallel. Imagine an American junk food place, where the food takes some time to arrive because they are pushing a whole trolley of food to your seating area.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_60":{"id":"6df80d920455_60","__typename":"Paragraph","name":"812f","text":"With such different needs, putting CPUs and GPUs on the same physical chip was not a great idea. The GPUs would sit there starving while given small French servings. The result was that there was no point in putting powerful GPUs on an SoC. The tiny portions of data served up, could easily be chewed up by a weak little GPU.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_61":{"id":"6df80d920455_61","__typename":"Paragraph","name":"d539","text":"The second problem was that large GPUs produce a lot of heat and thus you cannot integrate them with the CPU without getting problems ridding yourself of the heat produced. Thus discrete graphics cards tend to look like the one below: Large beasts with massive cooling fans. They have special dedicated memory designed to serve the greedy cards massive amounts of data.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_62":{"id":"6df80d920455_62","__typename":"Paragraph","name":"303f","text":"GeForce RTX 3080","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*gQcbAlaUXNtjJi6OAUzMsg.jpeg"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_63":{"id":"6df80d920455_63","__typename":"Paragraph","name":"14fa","text":"That is why these cards have high performance. But they have an achilles heel: Whenever they have to get data from the memory used by the CPU, this happens over a set of copper traces on the computer motherboard called a PCIe bus. Try chugging water through a super thin straw. It may get to your mouth fast, but the throughput is totally inadequate.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_64":{"id":"6df80d920455_64","__typename":"Paragraph","name":"5fca","text":"Apples Unified Memory Architecture tries to solve all these problems without having the disadvantages of old school shared memory. They achieve this in the following ways:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":8,"end":35,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_65":{"id":"6df80d920455_65","__typename":"Paragraph","name":"dade","text":"There is no special area reserved just for the CPU or just the GPU. Memory is allocated to both processors. They can both use the same memory. No copying is needed.","type":"OLI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_66":{"id":"6df80d920455_66","__typename":"Paragraph","name":"4c61","text":"Apple uses memory which serves both large chunks of data and serves it fast. In computer speak that is called low latency and high throughput. Thus the need to be connected to separate types of memory is removed.","type":"OLI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_67":{"id":"6df80d920455_67","__typename":"Paragraph","name":"2508","text":"Apple has gotten the watt usage of the GPU down, so that a relatively powerful GPU can be integrated without overheating the SoC. And ARM chips produce less heat, allowing the GPU to have a higher heat budget than a GPU on the same silicon die as an AMD or Intel CPU.","type":"OLI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_68":{"id":"6df80d920455_68","__typename":"Paragraph","name":"ba08","text":"Some will say unified memory is not entirely new. It is true that different systems have had it in the past. But then the difference in memory requirements may not have been as large. Secondly what Nvidia calls Unified Memory is not really the same thing. In the Nvidea world Unified Memory simply means that there is software and hardware which takes care of automatically copying data back and forth between the separate CPU and GPU memory. Thus from a programmers perspective Apple and Nvidia Unified Memory may look the same, but it is not the same in a physical sense.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_69":{"id":"6df80d920455_69","__typename":"Paragraph","name":"2fcb","text":"There is of course a tradeoff in this strategy. Getting this high bandwidth memory (big servings) require full integration which means you take away the opportunity from customers to upgrade their memory. But Apple seeks to minimize this problem by making the communication with the SSD disks so fast, that they essentially work like old fashion memory.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_70":{"id":"6df80d920455_70","__typename":"Paragraph","name":"ec91","text":"How Macs used GPUs before unified memory. There was even an option of having graphics cards outside the computer using a Thunderbolt 3 cable. There is some speculation that this may still be possible in the future.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*IJFHpc1CrblUt09PSzaTyg.png"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_71":{"id":"6df80d920455_71","__typename":"Paragraph","name":"d329","text":"If SoCs Are So Smart, Why Dont Intel and AMD Copy This Strategy?","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_72":{"id":"6df80d920455_72","__typename":"Paragraph","name":"f5e0","text":"If what Apple is doing is so smart, why is not everybody doing it? To some extent they are. Other ARM chip makers are increasingly putting in specialized hardware.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_73":{"id":"6df80d920455_73","__typename":"Paragraph","name":"2bdd","text":"AMD has also started putting stronger GPUs on some of their chips and moving gradually toward some form of SoC with the accelerated processing units (APU) which are basically CPU cores and GPU cores placed on the same silicon die.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_74":{"id":"6df80d920455_74","__typename":"Paragraph","name":"0602","text":"AMD Ryzen Accelerated Processing Unit (APU) which combines CPU and GPU (Radeon Vega) on one silicon chip. Does however not contain other co-processors, IO-controllers, or unified memory.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*vutPH0zsrwSzGgFWomL61A.jpeg"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_75":{"id":"6df80d920455_75","__typename":"Paragraph","name":"279e","text":"Yet there are important reasons why they cannot do this. An SoC is essentially a whole computer on a chip. That makes it a more natural fit for an actual computer-maker, such as HP and Dell. Let me clarify with a silly car analogy: If your business model is to build and sell car engines, it would be an unusual leap to begin manufacturing and selling whole cars.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_76":{"id":"6df80d920455_76","__typename":"Paragraph","name":"04e1","text":"For ARM, in contrast, this isnt an issue. Computer makers such as Dell or HP could simply license ARM intellectual property and buy IP for other chips, to add whatever specialized hardware they think their SoC should have. Next, they ship the finished design over to a semiconductor foundry such as GlobalFoundries or TSMC, which manufactures chips for AMD and Apple today.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":300,"end":315,"type":"A","href":"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGlobalFoundries","anchorType":"LINK","userId":null,"linkMetadata":null},{"__typename":"Markup","start":319,"end":323,"type":"A","href":"https:\u002F\u002Fwww.tsmc.com\u002Fenglish","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_77":{"id":"6df80d920455_77","__typename":"Paragraph","name":"2ca8","text":"TSMC semiconductor foundry in Taiwan. TSMC manufactures chips for other companies such as AMD, Apple, Nvidia, and Qualcomm.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*d88lw8YMonKgdDWQLC1jXQ.jpeg"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_78":{"id":"6df80d920455_78","__typename":"Paragraph","name":"a601","text":"Here we get a big problem with the Intel and AMD business model. Their business models are based on selling general-purpose CPUs, which people just slot onto a large PC motherboard. Thus computer-makers can simply buy motherboards, memory, CPUs, and graphics cards from different vendors and integrate them into one solution.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_79":{"id":"6df80d920455_79","__typename":"Paragraph","name":"7f77","text":"But we are quickly moving away from that world. In the new SoC world, you dont assemble physical components from different vendors. Instead, you assemble IP (intellectual property) from different vendors. You buy the design for graphics cards, CPUs, modems, IO controllers, and other things from different vendors and use that to design an SoC in-house. Then you get a foundry to manufacture this.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_80":{"id":"6df80d920455_80","__typename":"Paragraph","name":"2fba","text":"Now you got a big problem, because neither Intel, AMD, or Nvidia are going to license their intellectual property to Dell or HP for them to make an SoC for their machines.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_81":{"id":"6df80d920455_81","__typename":"Paragraph","name":"b24c","text":"Sure Intel and AMD may simply begin to sell whole finished SoCs. But what are these to contain? PC-makers may have different ideas of what they should contain. You potentially get a conflict between Intel, AMD, Microsoft, and PC-makers about what sort of specialized chips should be included because these will need software support.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_82":{"id":"6df80d920455_82","__typename":"Paragraph","name":"558d","text":"For Apple this is simple. They control the whole widget. They give you, for example, the Core ML library for developers to write machine learning stuff. Whether Core ML runs on Apples CPU or the Neural Engine is an implementation detail developers dont have to care about.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":129,"end":145,"type":"A","href":"https:\u002F\u002Fdeveloper.apple.com\u002Fmachine-learning\u002F","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_83":{"id":"6df80d920455_83","__typename":"Paragraph","name":"711f","text":"The fundamental challenge of making any CPU run fast","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_84":{"id":"6df80d920455_84","__typename":"Paragraph","name":"f11c","text":"So heterogeneous computing is part of the reason but not the sole reason. The fast general-purpose CPU cores on the M1, called Firestorm, are genuinely fast. This is a major deviation from ARM CPU cores in the past which tended to be very weak compared to AMD and Intel cores.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_85":{"id":"6df80d920455_85","__typename":"Paragraph","name":"b74c","text":"Firestorm, in contrast, beats most Intel cores and almost beats the fastest AMD Ryzen cores. Conventional wisdom said that was not going to happen.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_86":{"id":"6df80d920455_86","__typename":"Paragraph","name":"ab49","text":"Before talking about what makes Firestorm fast it helps to understand what the core idea of making a fast CPU is really about.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_87":{"id":"6df80d920455_87","__typename":"Paragraph","name":"92fc","text":"In principle you accomplish in a combination of two strategies:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_88":{"id":"6df80d920455_88","__typename":"Paragraph","name":"68be","text":"Perform more instructions in a sequence faster.","type":"OLI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_89":{"id":"6df80d920455_89","__typename":"Paragraph","name":"5f98","text":"Perform lots of instructions in parallel.","type":"OLI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_90":{"id":"6df80d920455_90","__typename":"Paragraph","name":"bd92","text":"Back in the 80s, it was easy. Just increase the clock frequency and the instructions would finish faster. Every clock cycle is when the computer does something. But this something can be quite little. Thus an instruction may require multiple clock cycles to finish because it is made up of several smaller tasks.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":171,"end":180,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_91":{"id":"6df80d920455_91","__typename":"Paragraph","name":"905f","text":"However, today increasing the clock frequency is next to impossible. That is the whole “End of Moores Law” that people have been harping on for over a decade now.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_92":{"id":"6df80d920455_92","__typename":"Paragraph","name":"2133","text":"Thus it is really about executing as many instructions as possible in parallel.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_93":{"id":"6df80d920455_93","__typename":"Paragraph","name":"1f1b","text":"Multi-core or Out-of-Order processors?","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_94":{"id":"6df80d920455_94","__typename":"Paragraph","name":"9966","text":"There are two approaches to this.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_95":{"id":"6df80d920455_95","__typename":"Paragraph","name":"23a9","text":"Add more CPU cores. Each core works independent and in parallel.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_96":{"id":"6df80d920455_96","__typename":"Paragraph","name":"1299","text":"Make each CPU core execute multiple instructions in parallel.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_97":{"id":"6df80d920455_97","__typename":"Paragraph","name":"6553","text":"For a software developer, adding cores is like adding threads. Every CPU core is like a hardware thread.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":54,"end":61,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_98":{"id":"6df80d920455_98","__typename":"Paragraph","name":"5a7a","text":"If you dont know what a thread is, then you can think of it as the process of carrying out a task. With two cores, a CPU can carry out two separate tasks concurrently: two threads. The tasks could be described as two separate programs stores in memory or it could actually be the same program performed twice. Each thread needs some bookkeeping, such as where in a sequence of program instructions the thread is currently at. Each thread may store temporary results which should be kept separate.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":355,"end":360,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_99":{"id":"6df80d920455_99","__typename":"Paragraph","name":"8059","text":"In principle, a processor can have just one core and run multiple threads. In this case, it simply halts one thread and stores current progress before switching to another. Later it switches back. This doesnt bring much of a performance enhancement unless the thread has to frequently halt to:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_100":{"id":"6df80d920455_100","__typename":"Paragraph","name":"e4a8","text":"Wait for input from the user","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_101":{"id":"6df80d920455_101","__typename":"Paragraph","name":"468b","text":"Data from a slow network connection, etc.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_102":{"id":"6df80d920455_102","__typename":"Paragraph","name":"5f6f","text":"Let us call these software threads. Hardware threads mean you have actual physical CPU cores at your disposal to speed up things.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_103":{"id":"6df80d920455_103","__typename":"Paragraph","name":"bdd7","text":"","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*2mDUgCX9a49EldiCTbL6fA.png"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_104":{"id":"6df80d920455_104","__typename":"Paragraph","name":"3d7f","text":"The problem with threads is that software developers have to write so called multi-threaded code. That is often difficult. In the past, this was some of the hardest code to write. However making server software multi-threaded tends to be easy. It is simply a matter of handling each user request on a separate thread. Thus in this case having lots of cores, is an obvious advantage. Especially for cloud services.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":195,"end":211,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_105":{"id":"6df80d920455_105","__typename":"Paragraph","name":"5a0b","text":"The Ampere Altra Max ARM CPU with 128 cores designed for cloud computing, where a lot of hardware threads is a benefit.","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*X5ZTLTHUYBdw0t25TemHcQ.png"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_106":{"id":"6df80d920455_106","__typename":"Paragraph","name":"f30f","text":"That is the reason why you see ARM CPU-makers such as Ampere making CPUs such as the Altra Max which has a crazy 128 cores. This chip is specifically made for the cloud. You dont need crazy single-core performance, because in the cloud it is all about having as many threads as possible per watt to handle as many concurrent users as possible.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":85,"end":94,"type":"A","href":"https:\u002F\u002Fwww.networkworld.com\u002Farticle\u002F3564514\u002Fampere-announces-128-core-arm-server-processor.html","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_107":{"id":"6df80d920455_107","__typename":"Paragraph","name":"e162","text":"Read more about ARM CPUs with many cores: Are Servers Next for Apple?","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":42,"end":69,"type":"A","href":"https:\u002F\u002Ferik-engheim.medium.com\u002Fare-servers-next-for-apple-7992213d72c9","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_108":{"id":"6df80d920455_108","__typename":"Paragraph","name":"6ead","text":"Apple, in contrast, is on the complete opposite end of the spectrum. They make single-user devices. Lots of threads is not an advantage. Their devices are used for gaming, video editing, development, etc. They want desktops with beautiful responsive graphics and animations.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_109":{"id":"6df80d920455_109","__typename":"Paragraph","name":"e3ca","text":"Desktop software is generally not made to utilize lots of cores. For example, computer games will likely benefit from eight cores, but something like 128 cores would be a total waste. Instead, you would want fewer but more powerful cores.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_110":{"id":"6df80d920455_110","__typename":"Paragraph","name":"8ac1","text":"How Out-of-Order Execution Works","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_111":{"id":"6df80d920455_111","__typename":"Paragraph","name":"4cc9","text":"To make a more powerful core we need it to execute more instructions in parallel. Out-of-Order execution (OoOE) is a way to execute more instructions in parallel but without exposing that capability as multiple threads.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":82,"end":104,"type":"A","href":"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOut-of-order_execution","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_112":{"id":"6df80d920455_112","__typename":"Paragraph","name":"4f36","text":"For an alternative solution read: Very Long Instruction Word Microprocessors","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":34,"end":76,"type":"A","href":"https:\u002F\u002Ferik-engheim.medium.com\u002Fvery-long-instruction-word-microprocessors-17262def3037","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_113":{"id":"6df80d920455_113","__typename":"Paragraph","name":"db59","text":"Developers dont have to code their software specifically to take advantage of OoOE. Seen from the developers perspective it just looks like each core runs faster. Please note it is not a direct alternative to hardware threads. You want to use both, depending on the particular problem you are solving.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_114":{"id":"6df80d920455_114","__typename":"Paragraph","name":"2402","text":"To understand how OoOE works, you need to understand some things about memory. Asking for data in one particular memory location is slow. But the CPU is capable of getting getting many bytes at the same time. Hence getting 1 specific byte in memory, takes no less time than getting 100 more bytes following that byte in memory.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_115":{"id":"6df80d920455_115","__typename":"Paragraph","name":"6a52","text":"Robot pickers in a Warehouse for Komplett.no, an online store in Norway","type":"IMG","href":null,"layout":"INSET_CENTER","metadata":{"__ref":"ImageMetadata:1*IbuGfelqOOtcyX8NwTh-tw.jpeg"},"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_116":{"id":"6df80d920455_116","__typename":"Paragraph","name":"170f","text":"Here is an analogy: Consider pickers in a warehouse. Could be the little red robots in the picture above. Moving to multiple locations spread all over takes time. But picking up items from slots adjacent to each other is quick. Computer memory is very similar. You can quickly fetch content of memory cells which are adjecent.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_117":{"id":"6df80d920455_117","__typename":"Paragraph","name":"4d52","text":"Data is sent across what we call a databus. You can think of it as a road or pipe between memory and different parts of the CPU where data gets pushed through. In reality, it is of course just some copper tracks conducting electricity. If the databus is wide enough you can get multiple bytes at the same time.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_118":{"id":"6df80d920455_118","__typename":"Paragraph","name":"2053","text":"Thus CPUs get a whole chunk of instructions at a time to execute. But they are written to be executed one after the other. Modern microprocessors do what we call Out-of-Order execution (OoOE).","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_119":{"id":"6df80d920455_119","__typename":"Paragraph","name":"de65","text":"That means they are able to analyze a buffer of instructions quickly and see which ones depend on which. Look at the simple example below:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_120":{"id":"6df80d920455_120","__typename":"Paragraph","name":"4de2","text":"01: mul r1, r2, r3 \u002F\u002F r1 ← r2 × r3\n02: add r4, r1, 5 \u002F\u002F r4 ← r1 + 5\n03: add r6, r2, 1 \u002F\u002F r6 ← r2 + 1","type":"PRE","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":0,"end":111,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_121":{"id":"6df80d920455_121","__typename":"Paragraph","name":"d5a8","text":"Multiplication tends to be a slow process. So say it takes multiple clock cycles to perform. The second instruction will simply have to wait because its calculation depends on knowing the result that gets put into the r1 register.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":218,"end":220,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_122":{"id":"6df80d920455_122","__typename":"Paragraph","name":"d3b8","text":"However, the third instruction at line 03 doesnt depend on calculations from previous instructions. Hence an Out-of-Order processor can begin calculating this instruction in parallel.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":39,"end":41,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_123":{"id":"6df80d920455_123","__typename":"Paragraph","name":"deba","text":"However more realistically we are talking about hundreds of instructions. The CPU is able to figure out all the dependencies between these instructions.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_124":{"id":"6df80d920455_124","__typename":"Paragraph","name":"b30b","text":"It analyses the instructions by looking at the inputs to each instruction. Do the inputs depend on output from one or more other instructions? By input and output, we mean registers containing results from previous calculations.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_125":{"id":"6df80d920455_125","__typename":"Paragraph","name":"d5b1","text":"For example, the add r4, r1, 5 instruction depends on input from r1 which is produced by mul r1, r2, r3 . We can chain together these relationships into long elaborate graphs that the CPU can work through. The nodes are the instructions and the edges are the registers connecting them.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":17,"end":30,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":65,"end":67,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":89,"end":103,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_126":{"id":"6df80d920455_126","__typename":"Paragraph","name":"621d","text":"The CPU can analyze such a graph of nodes and determine which instructions it can perform in parallel and where it needs to wait for the results from multiple dependent calculations before carrying on.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_127":{"id":"6df80d920455_127","__typename":"Paragraph","name":"46ee","text":"Many instructions will finish early but we cannot make their results official. We cannot commit them; otherwise, we supply the result in the wrong order. To the rest of the world, it has to look as if the instructions were carried out in the same sequence as they were issued.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_128":{"id":"6df80d920455_128","__typename":"Paragraph","name":"8815","text":"Like a stack, the CPU will keep popping done instructions from the top, until hitting an instruction that is not done.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_129":{"id":"6df80d920455_129","__typename":"Paragraph","name":"0770","text":"Basically you got two forms of parallelism: One that the developer must deal with explicitly when writing code and one that is entirely transparent. Of course the latter relies on lots of transistors on the CPU dedicated to Out-of-Order Execution magic. This is not a viable solution for small CPUs with few transistors.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_130":{"id":"6df80d920455_130","__typename":"Paragraph","name":"01ee","text":"It is the superior Out-of-Order execution that is making the Firestorm cores on the M1 kick ass and take names. It is in fact much stronger than anything from Intel or AMD and they may never be able to catch up. To understand why, we need to get into some more technical details.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_131":{"id":"6df80d920455_131","__typename":"Paragraph","name":"52fe","text":"ISA Instructions vs Micro-Operations","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_132":{"id":"6df80d920455_132","__typename":"Paragraph","name":"c057","text":"Previously I skipped some details on how Out-of-Order Execution (OoOE) works.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_133":{"id":"6df80d920455_133","__typename":"Paragraph","name":"5a6b","text":"Programs loaded into memory are made up of machine code instructions designed for specific Instruction-Set Architectures (ISA) such as x86, ARM, PowerPC, 68K, MIPS, AVR etc.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_134":{"id":"6df80d920455_134","__typename":"Paragraph","name":"c8b7","text":"For instance the x86 instruction to fetch a number from memory location 24 into a register you may write:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_135":{"id":"6df80d920455_135","__typename":"Paragraph","name":"bc03","text":"MOV ax, 24","type":"PRE","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_136":{"id":"6df80d920455_136","__typename":"Paragraph","name":"c6bc","text":"x86 have registers named ax, bx, cx and dx(remember these are the memory cells inside the CPU you perform operations on). However the equivalent ARM instruction would look like this:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":25,"end":27,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":29,"end":31,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":33,"end":35,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":40,"end":42,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_137":{"id":"6df80d920455_137","__typename":"Paragraph","name":"64d0","text":"LDR r0, 24","type":"PRE","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_138":{"id":"6df80d920455_138","__typename":"Paragraph","name":"4cd1","text":"AMD and Intel processors understand the x86 ISA, while Apple Silicon chips, such as M1, understand the ARM Instruction-Set Architecture (ISA).","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_139":{"id":"6df80d920455_139","__typename":"Paragraph","name":"2266","text":"However internally the CPU works on an entirely different instruction-set invisible to the programmer. We call these micro-operations (micro-ops or μops). These are the instructions the Out-of-Order hardware works with.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_140":{"id":"6df80d920455_140","__typename":"Paragraph","name":"a998","text":"But why cant the OoOE hardware work with regular machine code instructions? Because the CPU needs to attach lots of different information to the instructions to be able to run them in parallel.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_141":{"id":"6df80d920455_141","__typename":"Paragraph","name":"8d96","text":"Thus while a normal ARM instruction may be 32-bit (32 digits of 0 and 1), a micro-op can be much longer. It contains information about its order.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_142":{"id":"6df80d920455_142","__typename":"Paragraph","name":"a55d","text":"01: mul r1, r2, r3 \u002F\u002F r1 ← r2 × r3\n02: add r4, r1, 5 \u002F\u002F r4 ← r1 + 5\n03: add r1, r2, 1 \u002F\u002F r1 ← r2 + 1","type":"PRE","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":0,"end":111,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_143":{"id":"6df80d920455_143","__typename":"Paragraph","name":"0c5e","text":"Consider if we run instruction 01: mul and 03: add in parallel. Both store their result in register r1 . If we write the result of instruction 03: add before 01: mul, then instruction 02: add will get the wrong input. Hence it is very important to keep track of instruction order. The order is stored with each micro-op. It also stores e.g. that instruction 02: add depends on output from 01: mul.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":31,"end":38,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":43,"end":50,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":100,"end":102,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":143,"end":150,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":158,"end":165,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":184,"end":191,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":358,"end":365,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":389,"end":396,"type":"CODE","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_144":{"id":"6df80d920455_144","__typename":"Paragraph","name":"64b5","text":"That is why we cannot have programs written using micro-ops. They contain lots of details specific to the internals of each microprocessor. Two ARM processors could have very different micro-ops internally.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_145":{"id":"6df80d920455_145","__typename":"Paragraph","name":"31fb","text":"Read more about CPUs with micro-ops like instructions: Very Long Instruction Word Microprocessors.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":55,"end":98,"type":"A","href":"https:\u002F\u002Ferik-engheim.medium.com\u002Fvery-long-instruction-word-microprocessors-17262def3037","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_146":{"id":"6df80d920455_146","__typename":"Paragraph","name":"3180","text":"Also, micro-ops are usually easier to work with for the CPU. Why? Because they each do one simple limited task. Regular ISA instructions can be more complex causing a bunch of stuff to happen and thus frequently translate to multiple micro-ops. Thus the name “micro” comes from the small task they do, not the length of the instruction in memory.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":87,"end":90,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_147":{"id":"6df80d920455_147","__typename":"Paragraph","name":"ff1f","text":"For CISC CPUs there is usually no alternative but to use micro-ops otherwise the large complex CISC instructions would make pipelines and OoOE next to impossible to achieve.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_148":{"id":"6df80d920455_148","__typename":"Paragraph","name":"4d71","text":"Read more: Why Pipeline a Microprocessor?","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":11,"end":41,"type":"A","href":"https:\u002F\u002Ferik-engheim.medium.com\u002Fmicroprocessor-pipelining-f63df4ee60cf","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_149":{"id":"6df80d920455_149","__typename":"Paragraph","name":"9da7","text":"RISC CPUs have a choice. So, for example, smaller ARM CPUs dont use micro-ops at all. But that also means they cannot do things such as OoOE.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_150":{"id":"6df80d920455_150","__typename":"Paragraph","name":"b27b","text":"Why is AMD and Intel Out-of-Order execution inferior to M1?","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_151":{"id":"6df80d920455_151","__typename":"Paragraph","name":"cd20","text":"But you wonder, why does any of this matter? Why is this detail important to know to understand why Apple has the upper hand on AMD and Intel?","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_152":{"id":"6df80d920455_152","__typename":"Paragraph","name":"8286","text":"It is because the ability to run fast depends on how quickly you can fill up a buffer of micro-operations. If you got a large buffer then the OoOE hardware will have an easier time to locate two or more instructions which it can run in parallel. But there is no point in having a large instruction buffer if you cannot refill it fast enough after instructions get picked and executed.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_153":{"id":"6df80d920455_153","__typename":"Paragraph","name":"5cf7","text":"The ability to refill the instruction buffer quickly relies on the ability to quickly chop machine code instruction into micro-ops. The hardware units that does this are called decoders.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":177,"end":185,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_154":{"id":"6df80d920455_154","__typename":"Paragraph","name":"d0d8","text":"And finally we get to the killer feature of the M1. The biggest and meanest Intel and AMD microprocessor have a total of four decoders busy cutting machine code instructions into micro-ops.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_155":{"id":"6df80d920455_155","__typename":"Paragraph","name":"8622","text":"But this is no match for the M1, which has an absolutely unheard of number of decoders: Eight. Significantly more than anybody else in the industry. That means it can fill up the instruction buffer much quicker.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_156":{"id":"6df80d920455_156","__typename":"Paragraph","name":"0669","text":"To deal with this the M1 also has an instruction buffer which is 3x times larger than what is normal in the industry.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_157":{"id":"6df80d920455_157","__typename":"Paragraph","name":"59ff","text":"Why cant Intel and AMD add more instruction decoders?","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_158":{"id":"6df80d920455_158","__typename":"Paragraph","name":"4735","text":"This is where we finally see the revenge of RISC, and where the fact that the M1 Firestorm core has an ARM RISC architecture begins to matter.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_159":{"id":"6df80d920455_159","__typename":"Paragraph","name":"fca4","text":"You see, an x86 instruction can be anywhere from 115 bytes long. RISC instructions have fixed length. Every ARM instruction is 4 bytes long. Why is that relevant in this case?","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_160":{"id":"6df80d920455_160","__typename":"Paragraph","name":"d102","text":"Because splitting up a stream of bytes into instructions to feed into eight different decoders in parallel becomes trivial if every instruction has the same length.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_161":{"id":"6df80d920455_161","__typename":"Paragraph","name":"b4e4","text":"However, on an x86 CPU, the decoders have no clue where the next instruction starts. It has to actually analyze each instruction in order to see how long it is.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":50,"end":55,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_162":{"id":"6df80d920455_162","__typename":"Paragraph","name":"e842","text":"The brute force way Intel and AMD deal with this is by simply attempting to decode instructions at every possible starting point. That means x86 chips have to deal with lots of wrong guesses and mistakes which has to be discarded. This creates such a convoluted and complicated decoder stage that it is really hard to add more decoders. But for Apple, it is trivial in comparison to keep adding more.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_163":{"id":"6df80d920455_163","__typename":"Paragraph","name":"499d","text":"In fact, adding more causes so many other problems that four decoders according to AMD itself is basically an upper limit for them.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_164":{"id":"6df80d920455_164","__typename":"Paragraph","name":"bb2e","text":"This is what allows the M1 Firestorm cores to essentially process twice as many instructions as AMD and Intel CPUs at the same clock frequency.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":66,"end":71,"type":"STRONG","href":null,"anchorType":null,"userId":null,"linkMetadata":null},{"__typename":"Markup","start":122,"end":126,"type":"EM","href":null,"anchorType":null,"userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_165":{"id":"6df80d920455_165","__typename":"Paragraph","name":"327e","text":"One could argue as a counterpoint that CISC instructions turn into more micro-ops. For instance if every x86 instruction turned into 2 micro-ops while every ARM instruction turned into 1 micro-op, then four x86 decoders would produce the same number of micro-ops per clock cycle as an ARM CPU with 8 decoders.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_166":{"id":"6df80d920455_166","__typename":"Paragraph","name":"b2f1","text":"Except this is not the case in the real world. Highly optimized x86 code rarely uses complex CISC instructions, which would translate into many micro-ops. In fact most will only translate into 1 micro-op.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_167":{"id":"6df80d920455_167","__typename":"Paragraph","name":"8792","text":"However all these simple x86 instructions dont help Intel or AMD. Because even if those 15 byte long instructions are rare, the decoders have to be made to handle them. This incurs complexity that blocks AMD and Intel from adding more decoders.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_168":{"id":"6df80d920455_168","__typename":"Paragraph","name":"26e4","text":"But AMDs Zen3 cores are still faster right?","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_169":{"id":"6df80d920455_169","__typename":"Paragraph","name":"7106","text":"As far as I remember from performance benchmarks, the newest AMD CPU cores, the ones called Zen3 are slightly faster than Firestorm cores. But here is the kicker: That only happens because the Zen3 cores are clocked at 5 GHz. Firestorm cores are clocked at 3.2 GHz. The Zen3 is just barely squeezing past Firestorm despite having almost 60% higher clock frequency.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_170":{"id":"6df80d920455_170","__typename":"Paragraph","name":"da9f","text":"So why doesnt Apple increase the clock frequency too? Because higher clock frequency makes the chips run hotter. That is one of Apples key selling points. Their computers — unlike Intel and AMD offerings — barely need cooling.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_171":{"id":"6df80d920455_171","__typename":"Paragraph","name":"f640","text":"In essence, one could say Firestorm cores really are superior to Zen3 cores. Zen3 only manages to stay in the game by drawing a lot more current and getting a lot hotter. Something Apple simply chooses not to do.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_172":{"id":"6df80d920455_172","__typename":"Paragraph","name":"6302","text":"If Apple wants higher performance they are simply going to add more cores. That lets them keep watt usage down while offering more performance.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_173":{"id":"6df80d920455_173","__typename":"Paragraph","name":"e95d","text":"The future","type":"H4","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_174":{"id":"6df80d920455_174","__typename":"Paragraph","name":"9450","text":"It seems AMD and Intel have painted themselves into a corner on two fronts:","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_175":{"id":"6df80d920455_175","__typename":"Paragraph","name":"9af9","text":"They dont have a business model that makes it easy to pursue heterogeneous computing and SoC designs.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_176":{"id":"6df80d920455_176","__typename":"Paragraph","name":"7c75","text":"Their legacy x86 CISC instruction set is coming back to haunt them, making it hard to improve OoO performance.","type":"ULI","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_177":{"id":"6df80d920455_177","__typename":"Paragraph","name":"8380","text":"Read more: Intel, ARM and the Innovators Dilemma","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[{"__typename":"Markup","start":11,"end":48,"type":"A","href":"https:\u002F\u002Ferik-engheim.medium.com\u002Fintel-arm-and-the-innovators-dilemma-a9ebd20ea200","anchorType":"LINK","userId":null,"linkMetadata":null}],"dropCapImage":null},"Paragraph:6df80d920455_178":{"id":"6df80d920455_178","__typename":"Paragraph","name":"0ff6","text":"It doesnt mean game over. They can increase the clock frequency and use more cooling, throw in more cores, beef up the CPU caches, etc. But they are both at a disadvantage. Intel is in the worst situation, as their cores are already soundly beaten by Firestorm, and they have weak GPUs to integrate with an SoC solution.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_179":{"id":"6df80d920455_179","__typename":"Paragraph","name":"cd04","text":"The problem with throwing in more cores is that for typical desktop workloads you reach diminishing returns with too many cores. Sure lots of cores are great for servers.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_180":{"id":"6df80d920455_180","__typename":"Paragraph","name":"2a88","text":"However here companies such as Amazon and Ampere are attacking with monster CPUs with 128 cores. This is like fighting the western and eastern front at the same time.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_181":{"id":"6df80d920455_181","__typename":"Paragraph","name":"7fce","text":"But fortunately for AMD and Intel, Apple doesnt sell their chips on the market. So PC users will simply have to put up with whatever they are offering. PC users may jump ship, but that is a slow process. You dont leave immediately a platform you are heavily invested in.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"Paragraph:6df80d920455_182":{"id":"6df80d920455_182","__typename":"Paragraph","name":"731a","text":"But young professionals, with money to burn without too deep investments in any platform, may increasingly turn to Apple in the future, beefing up their hold on the premium market and consequently their share of the total profit in the PC market.","type":"P","href":null,"layout":null,"metadata":null,"hasDropCap":null,"iframe":null,"mixtapeMetadata":null,"markups":[],"dropCapImage":null},"ImageMetadata:1*thz7gKafCYxWoA0h8aGjcg.jpeg":{"id":"1*thz7gKafCYxWoA0h8aGjcg.jpeg","__typename":"ImageMetadata","originalHeight":1620,"originalWidth":2880,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*3G7uz4l1GnFacxz6InrLLw.png":{"id":"1*3G7uz4l1GnFacxz6InrLLw.png","__typename":"ImageMetadata","originalHeight":null,"originalWidth":null,"focusPercentX":null,"focusPercentY":null,"alt":"A very basic RISC CPU, not the M1"},"ImageMetadata:1*kDqSqtumOzNFZdpixUW0IQ.jpeg":{"id":"1*kDqSqtumOzNFZdpixUW0IQ.jpeg","__typename":"ImageMetadata","originalHeight":223,"originalWidth":400,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*c4EYUAVj4k7n6wWLoWUVdA.png":{"id":"1*c4EYUAVj4k7n6wWLoWUVdA.png","__typename":"ImageMetadata","originalHeight":360,"originalWidth":1200,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*GBrG4D2YCEVYREXAHIiJnQ.png":{"id":"1*GBrG4D2YCEVYREXAHIiJnQ.png","__typename":"ImageMetadata","originalHeight":418,"originalWidth":600,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*XZsBJV_v4WybnUFYjJJiPQ.gif":{"id":"1*XZsBJV_v4WybnUFYjJJiPQ.gif","__typename":"ImageMetadata","originalHeight":267,"originalWidth":425,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*SpFJ9g-taH9a-TvXdnaq2w.png":{"id":"1*SpFJ9g-taH9a-TvXdnaq2w.png","__typename":"ImageMetadata","originalHeight":324,"originalWidth":576,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*7c67HhuDWVFM3Pi-mO5boA.jpeg":{"id":"1*7c67HhuDWVFM3Pi-mO5boA.jpeg","__typename":"ImageMetadata","originalHeight":321,"originalWidth":640,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*ethYaJsPETw2zxF7Xm0Z0w.jpeg":{"id":"1*ethYaJsPETw2zxF7Xm0Z0w.jpeg","__typename":"ImageMetadata","originalHeight":366,"originalWidth":550,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*gQcbAlaUXNtjJi6OAUzMsg.jpeg":{"id":"1*gQcbAlaUXNtjJi6OAUzMsg.jpeg","__typename":"ImageMetadata","originalHeight":209,"originalWidth":389,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*IJFHpc1CrblUt09PSzaTyg.png":{"id":"1*IJFHpc1CrblUt09PSzaTyg.png","__typename":"ImageMetadata","originalHeight":472,"originalWidth":834,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*vutPH0zsrwSzGgFWomL61A.jpeg":{"id":"1*vutPH0zsrwSzGgFWomL61A.jpeg","__typename":"ImageMetadata","originalHeight":540,"originalWidth":900,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*d88lw8YMonKgdDWQLC1jXQ.jpeg":{"id":"1*d88lw8YMonKgdDWQLC1jXQ.jpeg","__typename":"ImageMetadata","originalHeight":460,"originalWidth":748,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*2mDUgCX9a49EldiCTbL6fA.png":{"id":"1*2mDUgCX9a49EldiCTbL6fA.png","__typename":"ImageMetadata","originalHeight":377,"originalWidth":600,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*X5ZTLTHUYBdw0t25TemHcQ.png":{"id":"1*X5ZTLTHUYBdw0t25TemHcQ.png","__typename":"ImageMetadata","originalHeight":309,"originalWidth":358,"focusPercentX":null,"focusPercentY":null,"alt":null},"ImageMetadata:1*IbuGfelqOOtcyX8NwTh-tw.jpeg":{"id":"1*IbuGfelqOOtcyX8NwTh-tw.jpeg","__typename":"ImageMetadata","originalHeight":556,"originalWidth":990,"focusPercentX":null,"focusPercentY":null,"alt":null},"Tag:m1":{"id":"m1","__typename":"Tag","displayTitle":"M1"},"Tag:apple-silicon":{"id":"apple-silicon","__typename":"Tag","displayTitle":"Apple Silicon"},"Tag:apple":{"id":"apple","__typename":"Tag","displayTitle":"Apple"},"Tag:microprocessor":{"id":"microprocessor","__typename":"Tag","displayTitle":"Microprocessor"},"Tag:performance":{"id":"performance","__typename":"Tag","displayTitle":"Performance"},"ImageMetadata:1*9MmC-mJJuSedFoh6O5K8hg.gif":{"id":"1*9MmC-mJJuSedFoh6O5K8hg.gif","__typename":"ImageMetadata","focusPercentX":49,"focusPercentY":52},"User:d00bc5bb7954":{"id":"d00bc5bb7954","__typename":"User","name":"Thomas Smith","username":"tomsmith585","bio":"Co-Founder & CEO of Gado Images. I write, speak and consult about tech, privacy, AI and photography. tom@gadoimages.com","isFollowing":false,"imageId":"2*3vJU4sgGd_CmFQFl4wH6-Q.jpeg","mediumMemberAt":1571008828000,"hasDomain":true},"Post:8a0601ec858d":{"id":"8a0601ec858d","__typename":"Post","title":"How to Mine a Little Bitcoin on Nearly Any PC","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fhow-to-mine-a-little-bitcoin-on-nearly-any-pc-8a0601ec858d","previewImage":{"__ref":"ImageMetadata:1*9MmC-mJJuSedFoh6O5K8hg.gif"},"isPublished":true,"firstPublishedAt":1610951550387,"readingTime":4.889622641509434,"statusForCollection":"APPROVED","isLocked":true,"isShortform":false,"visibility":"LOCKED","collection":{"__ref":"Collection:193b68bd4fba"},"creator":{"__ref":"User:d00bc5bb7954"},"previewContent":{"__typename":"PreviewContent","isFullContent":false}},"ImageMetadata:1*uZkz7Wchmvur-XZxG4ID0w.png":{"id":"1*uZkz7Wchmvur-XZxG4ID0w.png","__typename":"ImageMetadata","focusPercentX":50,"focusPercentY":55},"User:97fbb3b16247":{"id":"97fbb3b16247","__typename":"User","name":"Shelby Church","username":"churchshelby","bio":"Tech & Lifestyle Content Creator on YouTube","isFollowing":false,"imageId":"2*INLUMayIeiZWtWUIfuDMVA.png","mediumMemberAt":1586213588000,"hasDomain":false},"Post:ff72274751e8":{"id":"ff72274751e8","__typename":"Post","title":"I Rented My Tesla to a Stranger on Turo","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fi-rented-my-tesla-to-a-stranger-on-turo-was-it-worth-it-ff72274751e8","previewImage":{"__ref":"ImageMetadata:1*uZkz7Wchmvur-XZxG4ID0w.png"},"isPublished":true,"firstPublishedAt":1611183117100,"readingTime":6.434905660377359,"statusForCollection":"APPROVED","isLocked":true,"isShortform":false,"visibility":"LOCKED","collection":{"__ref":"Collection:193b68bd4fba"},"creator":{"__ref":"User:97fbb3b16247"},"previewContent":{"__typename":"PreviewContent","isFullContent":false}},"ImageMetadata:1*6U4e2AC3QLG0D2Zlcph2Hw.jpeg":{"id":"1*6U4e2AC3QLG0D2Zlcph2Hw.jpeg","__typename":"ImageMetadata","focusPercentX":36,"focusPercentY":35},"User:26ab7ea2877":{"id":"26ab7ea2877","__typename":"User","name":"Ernie Smith","username":"shortformernie","bio":"Editor of @readtedium, the dull side of the internet. You may know me from @ShortFormBlog. Subscribe to my thought machine: http:\u002F\u002Ftedium.co\u002F","isFollowing":false,"imageId":"1*ri8gCYgzfc29ue72Iu0LPw.jpeg","mediumMemberAt":1504191078000,"hasDomain":true},"Post:c3452c7f4f48":{"id":"c3452c7f4f48","__typename":"Post","title":"The iPhone 12 Mini Isnt a Top Sellerand Thats Just Fine for Apple","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fthe-iphone-12-mini-isnt-a-top-seller-and-that-s-just-fine-for-apple-c3452c7f4f48","previewImage":{"__ref":"ImageMetadata:1*6U4e2AC3QLG0D2Zlcph2Hw.jpeg"},"isPublished":true,"firstPublishedAt":1611297178263,"readingTime":4.29433962264151,"statusForCollection":"APPROVED","isLocked":true,"isShortform":false,"visibility":"LOCKED","collection":{"__ref":"Collection:193b68bd4fba"},"creator":{"__ref":"User:26ab7ea2877"},"previewContent":{"__typename":"PreviewContent","isFullContent":false}},"ImageMetadata:1*1nAVe267OX5wneNPpyZ0Xw.gif":{"id":"1*1nAVe267OX5wneNPpyZ0Xw.gif","__typename":"ImageMetadata","focusPercentX":66,"focusPercentY":53},"Post:3937ce8fb970":{"id":"3937ce8fb970","__typename":"Post","title":"How I Cook 84 Meals in 3 Hours","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fhow-i-cook-84-meals-in-3-hours-3937ce8fb970","previewImage":{"__ref":"ImageMetadata:1*1nAVe267OX5wneNPpyZ0Xw.gif"},"isPublished":true,"firstPublishedAt":1611383532784,"readingTime":5.8437106918239,"statusForCollection":"APPROVED","isLocked":true,"isShortform":false,"visibility":"LOCKED","collection":{"__ref":"Collection:193b68bd4fba"},"creator":{"__ref":"User:d00bc5bb7954"},"previewContent":{"__typename":"PreviewContent","isFullContent":false}},"ImageMetadata:0*2vx3npvVomnRJrDM":{"id":"0*2vx3npvVomnRJrDM","__typename":"ImageMetadata","focusPercentX":63,"focusPercentY":57},"User:dc17621a577f":{"id":"dc17621a577f","__typename":"User","name":"Dave Gershgorn","username":"dave","bio":"Writing on AI at OneZero. Previously Qz, PopSci, and NYTimes.","isFollowing":false,"imageId":"1*gvfsEr5QLmN1yX3B5tWaVg.jpeg","mediumMemberAt":1553181785000,"hasDomain":true},"Post:6e82e9bf3a9d":{"id":"6e82e9bf3a9d","__typename":"Post","title":"I 3D-Printed a Custom Mask Clip to Keep My Glasses From Fogging Up","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fi-3d-printed-a-custom-mask-clip-to-keep-my-glasses-from-fogging-up-6e82e9bf3a9d","previewImage":{"__ref":"ImageMetadata:0*2vx3npvVomnRJrDM"},"isPublished":true,"firstPublishedAt":1610519548788,"readingTime":8.661320754716982,"statusForCollection":"APPROVED","isLocked":true,"isShortform":false,"visibility":"LOCKED","collection":{"__ref":"Collection:193b68bd4fba"},"creator":{"__ref":"User:dc17621a577f"},"previewContent":{"__typename":"PreviewContent","isFullContent":false}},"ImageMetadata:0*TPmBwFqS5sznO2rP":{"id":"0*TPmBwFqS5sznO2rP","__typename":"ImageMetadata","focusPercentX":51,"focusPercentY":46},"User:82ceb895d2bc":{"id":"82ceb895d2bc","__typename":"User","name":"Max Phillips","username":"max-phillips","bio":"Self-improvement tips | Find out how I wrote 200+ articles with a free Productivity Enhancement Guide \u003E https:\u002F\u002Fmaxphillipsguides.ck.page","isFollowing":false,"imageId":"1*wd_n0efrQEr9QpIg_WL_WA@2x.jpeg","mediumMemberAt":1567702523000,"hasDomain":true},"Post:2d1feea09cbd":{"id":"2d1feea09cbd","__typename":"Post","title":"Notes Is the iPhones Killer App. Yes, Really.","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fnotes-is-the-iphone-s-killer-app-yes-really-2d1feea09cbd","previewImage":{"__ref":"ImageMetadata:0*TPmBwFqS5sznO2rP"},"isPublished":true,"firstPublishedAt":1609828363722,"readingTime":3.4716981132075473,"statusForCollection":"APPROVED","isLocked":true,"isShortform":false,"visibility":"LOCKED","collection":{"__ref":"Collection:193b68bd4fba"},"creator":{"__ref":"User:82ceb895d2bc"},"previewContent":{"__typename":"PreviewContent","isFullContent":false}},"ImageMetadata:1*xsX6onQFpWlBy2S6V4i3ww.jpeg":{"id":"1*xsX6onQFpWlBy2S6V4i3ww.jpeg","__typename":"ImageMetadata","focusPercentX":42,"focusPercentY":59},"User:ec92ba75ef27":{"id":"ec92ba75ef27","__typename":"User","name":"Angela Lashbrook","username":"angelalashbrook","bio":"Im a columnist for OneZero, where I write about the intersection of health & tech. Also seen at Elemental, The Atlantic, VICE, and Vox. Brooklyn, NY.","isFollowing":false,"imageId":"1*WcvJy2K0r1dP4cvlOUCd-Q.jpeg","mediumMemberAt":1576609062000,"hasDomain":true},"Post:90fb6c124d14":{"id":"90fb6c124d14","__typename":"Post","title":"People Are Using Airbnb to Book Pandemic Vacations They May Never Take","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fpeople-are-using-airbnb-to-book-pandemic-vacations-they-may-never-take-90fb6c124d14","previewImage":{"__ref":"ImageMetadata:1*xsX6onQFpWlBy2S6V4i3ww.jpeg"},"isPublished":true,"firstPublishedAt":1611210798193,"readingTime":5.09811320754717,"statusForCollection":"APPROVED","isLocked":true,"isShortform":false,"visibility":"LOCKED","collection":{"__ref":"Collection:193b68bd4fba"},"creator":{"__ref":"User:ec92ba75ef27"},"previewContent":{"__typename":"PreviewContent","isFullContent":false}},"ImageMetadata:1*bFp6FVsowL5vfeQAj-jd9g.png":{"id":"1*bFp6FVsowL5vfeQAj-jd9g.png","__typename":"ImageMetadata","focusPercentX":32,"focusPercentY":24},"Post:cb6e8a90d675":{"id":"cb6e8a90d675","__typename":"Post","title":"I Asked GPT-3 to Write a Sea Shanty About Bidens Inauguration","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fi-asked-gpt-3-to-write-a-sea-shanty-about-bidens-inauguration-cb6e8a90d675","previewImage":{"__ref":"ImageMetadata:1*bFp6FVsowL5vfeQAj-jd9g.png"},"isPublished":true,"firstPublishedAt":1611124356420,"readingTime":2.9433962264150946,"statusForCollection":"APPROVED","isLocked":true,"isShortform":false,"visibility":"LOCKED","collection":{"__ref":"Collection:193b68bd4fba"},"creator":{"__ref":"User:d00bc5bb7954"},"previewContent":{"__typename":"PreviewContent","isFullContent":false}},"Post:3262b158cba2":{"id":"3262b158cba2","__typename":"Post","canonicalUrl":"","collection":{"__ref":"Collection:193b68bd4fba"},"content({\"postMeteringOptions\":{}})":{"__typename":"PostContent","isLockedPreviewOnly":false,"validatedShareKey":"","isCacheableContent":false,"bodyModel":{"__typename":"RichText","paragraphs":[{"__ref":"Paragraph:6df80d920455_0"},{"__ref":"Paragraph:6df80d920455_1"},{"__ref":"Paragraph:6df80d920455_2"},{"__ref":"Paragraph:6df80d920455_3"},{"__ref":"Paragraph:6df80d920455_4"},{"__ref":"Paragraph:6df80d920455_5"},{"__ref":"Paragraph:6df80d920455_6"},{"__ref":"Paragraph:6df80d920455_7"},{"__ref":"Paragraph:6df80d920455_8"},{"__ref":"Paragraph:6df80d920455_9"},{"__ref":"Paragraph:6df80d920455_10"},{"__ref":"Paragraph:6df80d920455_11"},{"__ref":"Paragraph:6df80d920455_12"},{"__ref":"Paragraph:6df80d920455_13"},{"__ref":"Paragraph:6df80d920455_14"},{"__ref":"Paragraph:6df80d920455_15"},{"__ref":"Paragraph:6df80d920455_16"},{"__ref":"Paragraph:6df80d920455_17"},{"__ref":"Paragraph:6df80d920455_18"},{"__ref":"Paragraph:6df80d920455_19"},{"__ref":"Paragraph:6df80d920455_20"},{"__ref":"Paragraph:6df80d920455_21"},{"__ref":"Paragraph:6df80d920455_22"},{"__ref":"Paragraph:6df80d920455_23"},{"__ref":"Paragraph:6df80d920455_24"},{"__ref":"Paragraph:6df80d920455_25"},{"__ref":"Paragraph:6df80d920455_26"},{"__ref":"Paragraph:6df80d920455_27"},{"__ref":"Paragraph:6df80d920455_28"},{"__ref":"Paragraph:6df80d920455_29"},{"__ref":"Paragraph:6df80d920455_30"},{"__ref":"Paragraph:6df80d920455_31"},{"__ref":"Paragraph:6df80d920455_32"},{"__ref":"Paragraph:6df80d920455_33"},{"__ref":"Paragraph:6df80d920455_34"},{"__ref":"Paragraph:6df80d920455_35"},{"__ref":"Paragraph:6df80d920455_36"},{"__ref":"Paragraph:6df80d920455_37"},{"__ref":"Paragraph:6df80d920455_38"},{"__ref":"Paragraph:6df80d920455_39"},{"__ref":"Paragraph:6df80d920455_40"},{"__ref":"Paragraph:6df80d920455_41"},{"__ref":"Paragraph:6df80d920455_42"},{"__ref":"Paragraph:6df80d920455_43"},{"__ref":"Paragraph:6df80d920455_44"},{"__ref":"Paragraph:6df80d920455_45"},{"__ref":"Paragraph:6df80d920455_46"},{"__ref":"Paragraph:6df80d920455_47"},{"__ref":"Paragraph:6df80d920455_48"},{"__ref":"Paragraph:6df80d920455_49"},{"__ref":"Paragraph:6df80d920455_50"},{"__ref":"Paragraph:6df80d920455_51"},{"__ref":"Paragraph:6df80d920455_52"},{"__ref":"Paragraph:6df80d920455_53"},{"__ref":"Paragraph:6df80d920455_54"},{"__ref":"Paragraph:6df80d920455_55"},{"__ref":"Paragraph:6df80d920455_56"},{"__ref":"Paragraph:6df80d920455_57"},{"__ref":"Paragraph:6df80d920455_58"},{"__ref":"Paragraph:6df80d920455_59"},{"__ref":"Paragraph:6df80d920455_60"},{"__ref":"Paragraph:6df80d920455_61"},{"__ref":"Paragraph:6df80d920455_62"},{"__ref":"Paragraph:6df80d920455_63"},{"__ref":"Paragraph:6df80d920455_64"},{"__ref":"Paragraph:6df80d920455_65"},{"__ref":"Paragraph:6df80d920455_66"},{"__ref":"Paragraph:6df80d920455_67"},{"__ref":"Paragraph:6df80d920455_68"},{"__ref":"Paragraph:6df80d920455_69"},{"__ref":"Paragraph:6df80d920455_70"},{"__ref":"Paragraph:6df80d920455_71"},{"__ref":"Paragraph:6df80d920455_72"},{"__ref":"Paragraph:6df80d920455_73"},{"__ref":"Paragraph:6df80d920455_74"},{"__ref":"Paragraph:6df80d920455_75"},{"__ref":"Paragraph:6df80d920455_76"},{"__ref":"Paragraph:6df80d920455_77"},{"__ref":"Paragraph:6df80d920455_78"},{"__ref":"Paragraph:6df80d920455_79"},{"__ref":"Paragraph:6df80d920455_80"},{"__ref":"Paragraph:6df80d920455_81"},{"__ref":"Paragraph:6df80d920455_82"},{"__ref":"Paragraph:6df80d920455_83"},{"__ref":"Paragraph:6df80d920455_84"},{"__ref":"Paragraph:6df80d920455_85"},{"__ref":"Paragraph:6df80d920455_86"},{"__ref":"Paragraph:6df80d920455_87"},{"__ref":"Paragraph:6df80d920455_88"},{"__ref":"Paragraph:6df80d920455_89"},{"__ref":"Paragraph:6df80d920455_90"},{"__ref":"Paragraph:6df80d920455_91"},{"__ref":"Paragraph:6df80d920455_92"},{"__ref":"Paragraph:6df80d920455_93"},{"__ref":"Paragraph:6df80d920455_94"},{"__ref":"Paragraph:6df80d920455_95"},{"__ref":"Paragraph:6df80d920455_96"},{"__ref":"Paragraph:6df80d920455_97"},{"__ref":"Paragraph:6df80d920455_98"},{"__ref":"Paragraph:6df80d920455_99"},{"__ref":"Paragraph:6df80d920455_100"},{"__ref":"Paragraph:6df80d920455_101"},{"__ref":"Paragraph:6df80d920455_102"},{"__ref":"Paragraph:6df80d920455_103"},{"__ref":"Paragraph:6df80d920455_104"},{"__ref":"Paragraph:6df80d920455_105"},{"__ref":"Paragraph:6df80d920455_106"},{"__ref":"Paragraph:6df80d920455_107"},{"__ref":"Paragraph:6df80d920455_108"},{"__ref":"Paragraph:6df80d920455_109"},{"__ref":"Paragraph:6df80d920455_110"},{"__ref":"Paragraph:6df80d920455_111"},{"__ref":"Paragraph:6df80d920455_112"},{"__ref":"Paragraph:6df80d920455_113"},{"__ref":"Paragraph:6df80d920455_114"},{"__ref":"Paragraph:6df80d920455_115"},{"__ref":"Paragraph:6df80d920455_116"},{"__ref":"Paragraph:6df80d920455_117"},{"__ref":"Paragraph:6df80d920455_118"},{"__ref":"Paragraph:6df80d920455_119"},{"__ref":"Paragraph:6df80d920455_120"},{"__ref":"Paragraph:6df80d920455_121"},{"__ref":"Paragraph:6df80d920455_122"},{"__ref":"Paragraph:6df80d920455_123"},{"__ref":"Paragraph:6df80d920455_124"},{"__ref":"Paragraph:6df80d920455_125"},{"__ref":"Paragraph:6df80d920455_126"},{"__ref":"Paragraph:6df80d920455_127"},{"__ref":"Paragraph:6df80d920455_128"},{"__ref":"Paragraph:6df80d920455_129"},{"__ref":"Paragraph:6df80d920455_130"},{"__ref":"Paragraph:6df80d920455_131"},{"__ref":"Paragraph:6df80d920455_132"},{"__ref":"Paragraph:6df80d920455_133"},{"__ref":"Paragraph:6df80d920455_134"},{"__ref":"Paragraph:6df80d920455_135"},{"__ref":"Paragraph:6df80d920455_136"},{"__ref":"Paragraph:6df80d920455_137"},{"__ref":"Paragraph:6df80d920455_138"},{"__ref":"Paragraph:6df80d920455_139"},{"__ref":"Paragraph:6df80d920455_140"},{"__ref":"Paragraph:6df80d920455_141"},{"__ref":"Paragraph:6df80d920455_142"},{"__ref":"Paragraph:6df80d920455_143"},{"__ref":"Paragraph:6df80d920455_144"},{"__ref":"Paragraph:6df80d920455_145"},{"__ref":"Paragraph:6df80d920455_146"},{"__ref":"Paragraph:6df80d920455_147"},{"__ref":"Paragraph:6df80d920455_148"},{"__ref":"Paragraph:6df80d920455_149"},{"__ref":"Paragraph:6df80d920455_150"},{"__ref":"Paragraph:6df80d920455_151"},{"__ref":"Paragraph:6df80d920455_152"},{"__ref":"Paragraph:6df80d920455_153"},{"__ref":"Paragraph:6df80d920455_154"},{"__ref":"Paragraph:6df80d920455_155"},{"__ref":"Paragraph:6df80d920455_156"},{"__ref":"Paragraph:6df80d920455_157"},{"__ref":"Paragraph:6df80d920455_158"},{"__ref":"Paragraph:6df80d920455_159"},{"__ref":"Paragraph:6df80d920455_160"},{"__ref":"Paragraph:6df80d920455_161"},{"__ref":"Paragraph:6df80d920455_162"},{"__ref":"Paragraph:6df80d920455_163"},{"__ref":"Paragraph:6df80d920455_164"},{"__ref":"Paragraph:6df80d920455_165"},{"__ref":"Paragraph:6df80d920455_166"},{"__ref":"Paragraph:6df80d920455_167"},{"__ref":"Paragraph:6df80d920455_168"},{"__ref":"Paragraph:6df80d920455_169"},{"__ref":"Paragraph:6df80d920455_170"},{"__ref":"Paragraph:6df80d920455_171"},{"__ref":"Paragraph:6df80d920455_172"},{"__ref":"Paragraph:6df80d920455_173"},{"__ref":"Paragraph:6df80d920455_174"},{"__ref":"Paragraph:6df80d920455_175"},{"__ref":"Paragraph:6df80d920455_176"},{"__ref":"Paragraph:6df80d920455_177"},{"__ref":"Paragraph:6df80d920455_178"},{"__ref":"Paragraph:6df80d920455_179"},{"__ref":"Paragraph:6df80d920455_180"},{"__ref":"Paragraph:6df80d920455_181"},{"__ref":"Paragraph:6df80d920455_182"}],"sections":[{"__typename":"Section","name":"a19f","startIndex":0,"textLayout":null,"imageLayout":null,"backgroundImage":null,"videoLayout":null,"backgroundVideo":null},{"__typename":"Section","name":"4a91","startIndex":150,"textLayout":null,"imageLayout":null,"backgroundImage":null,"videoLayout":null,"backgroundVideo":null}]}},"creator":{"__ref":"User:c2fa2c34f40c"},"customStyleSheet":{"__ref":"CustomStyleSheet:ada816ee827e"},"firstPublishedAt":1606537993474,"isLocked":true,"isPublished":true,"isShortform":false,"layerCake":2,"primaryTopic":{"__typename":"Topic","name":"Technology","slug":"technology","isFollowing":null},"title":"Why Is Apples M1 Chip So Fast?","mediumUrl":"https:\u002F\u002Fdebugger.medium.com\u002Fwhy-is-apples-m1-chip-so-fast-3262b158cba2","isLimitedState":false,"visibility":"LOCKED","license":"ALL_RIGHTS_RESERVED","allowResponses":true,"newsletterId":"","sequence":null,"tags":[{"__ref":"Tag:m1"},{"__ref":"Tag:apple-silicon"},{"__ref":"Tag:apple"},{"__ref":"Tag:microprocessor"},{"__ref":"Tag:performance"}],"topics":[{"__typename":"Topic","topicId":"1e386a916ed9","name":"Digital Life","slug":"digital-life"},{"__typename":"Topic","topicId":"55f1c20aba7a","name":"Software Engineering","slug":"software-engineering"},{"__typename":"Topic","topicId":"de2ba92bba77","name":"Gadgets","slug":"gadgets"},{"__typename":"Topic","topicId":"f862bfc84e38","name":"Technology","slug":"technology"}],"viewerClapCount":0,"showSubscribeToProfilePromo":false,"showSubscribeToCollectionNewsletterV3Promo":false,"inResponseToPostResult":null,"isNewsletter":false,"socialTitle":"","socialDek":"","metaDescription":"","latestPublishedAt":1611486083917,"readingTime":22.063207547169814,"previewContent":{"__typename":"PreviewContent","subtitle":"Real world experience with the new M1 Macs have started ticking in. They are fast. Real fast. But why? What is the magic?"},"previewImage":{"__ref":"ImageMetadata:1*thz7gKafCYxWoA0h8aGjcg.jpeg"},"creatorPartnerProgramEnrollmentStatus":"PERMISSION_DENIED","clapCount":14508,"lockedSource":"LOCKED_POST_SOURCE_UGC","isSuspended":false,"pendingCollection":null,"statusForCollection":"APPROVED","pinnedAt":0,"pinnedByCreatorAt":0,"curationEligibleAt":1606537991300,"shareKey":null,"internalLinks({\"paging\":{\"limit\":8}})":{"__typename":"InternalLinksConnection","items":[{"__ref":"Post:8a0601ec858d"},{"__ref":"Post:ff72274751e8"},{"__ref":"Post:c3452c7f4f48"},{"__ref":"Post:3937ce8fb970"},{"__ref":"Post:6e82e9bf3a9d"},{"__ref":"Post:2d1feea09cbd"},{"__ref":"Post:90fb6c124d14"},{"__ref":"Post:cb6e8a90d675"}]},"collaborators":[],"translationSourcePost":null,"inResponseToMediaResource":null,"isDistributionAlertDismissed":false,"audioVersionUrl":"","seoTitle":"Why Is Apples M1 Chip So Fast?","updatedAt":1611486086109,"shortformType":"SHORTFORM_TYPE_LINK","structuredData":"","seoDescription":"Real-world experience with the new M1 Macs has started ticking in. They are fast. Real fast. But why? What is the magic?","postResponses":{"__typename":"PostResponses","count":76},"latestPublishedVersion":"6df80d920455","isPublishToEmail":false,"readingList":"READING_LIST_NONE","voterCount":2586,"recommenders":[]}}
]]>
</script>
<script src="https://cdn-client.medium.com/lite/static/js/manifest.de7347bc.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/6678.b2d6f316.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/main.ffeef11d.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/5573.159bf40f.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/instrumentation.5300d181.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/reporting.e6757680.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/1752.a348f767.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/4464.c01c0ad8.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/8342.6aa0b45e.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/1148.fddd1e85.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/5064.428a44c8.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/9274.431d8f19.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/2846.88308418.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/7012.f07cdd3a.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/7993.7703b238.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/6839.2f3b0813.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/5967.5409cf64.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/8751.0b0595e4.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/6010.e20f82a7.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/7131.03d7d44b.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/2626.6e6338e9.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/9809.2014403c.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/9978.da38313d.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/7106.32df7fe7.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/1978.c2dd6520.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/587.95692ce5.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/2514.597d2c66.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/2602.62a205f1.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/8018.5e3d4d54.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/8831.0e93f1f7.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/3981.3dc8b046.chunk.js"></script>
<script src="https://cdn-client.medium.com/lite/static/js/Post.008fa8f5.chunk.js"></script>
<script>
<![CDATA[
window.main();
]]>
</script>
<script src="//d1z2jf7jlzjs58.cloudfront.net/keys/medium.com/p.js" async="async" id="parsely-cf"></script>
</body>
</html>