Happy new year! This week’s edition is short, featuring a post on Apple’s new M1 chips and why they’re so fast, and another on boundaries within engineering orgs, especially “social good” ones.

Why is Apple’s M1 chip so fast? by Erik Engheim explains in simple language, and without the marketing, what’s going on with Apple’s new M1 chips. The tl;dr is that “the M1 contains a wide variety of specialized chips,” including standadrd fare CPU and GPU to dedicated units for image processing, video encoding and decoding, security, and a unified memory space.

Why is this new? Because in the past, having an “integrated graphics card” (the GPU on the same chip as the CPU) was considered bad, and it was slower than having a dedicated GPU. That was because they had different memory needs, and so data would have to be copied from CPU memory to GPU memory.

And why can’t others do this? Because the M1 is “essentially a whole computer on a chip.” It’d be challenging for a chip manufacturer to build these whole computers. But for computer-builder Apple, taking more control over its products is valuable.

There’s still more. Modern CPUs rely on out-of-order execution of micro-operations. These are chip-specific: machine code has to be decoded into micro-ops. “The ability to run fast depends on how quickly you can fill up a buffer of micro-operations,” which itself depends on quickly decoding machine code into micro-ops. And the M1 has eight decoders, when the biggest Intel and AMD microprocessors have four.

Why can’t Intel and AMD add more decoders? Because instructions are fed as streams of bytes, and the instructions are variable-length:

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.

For Apple, instructions are each 4 bytes, making it easy to add more decoders.

This was a really well-written article. The author’s explanations are clear and logically presented. He anticipated the “but why can’t they …” questions I had three times. This was fantastic!

As a side note, I’m appreciating my CS education a lot right now. This post would have been gobbledygook had I not taken a “fundamentals of computer engineering” class or something similar. It only covered the basics—clearly, this is sophisticated and challenging—but it sure helped.

Toxic and woke engineering orgs by Marianne Bellotti asks: “Why are organizations committed to positive ideals so often shitty to their employees?”

Because it’s easy for personal and professional boundaries to collapse. Companies emphasizing social good or “impact based values” can be toxic to individuals because they ask their employees to bring so much of their personal lives to work.

But the reality is that people in these environments will bring their politics to work because they’ve already brought everything else! This is problematic no matter what the politics in question are. Great teams are powered by diversity, and within that diversity — no matter how you define it — are going to be a range of political opinions. … The more the work space attempts to encroach on the personal space, the harder it is for people to leave their politics at home.

The author concludes with advice for building teams with boundaries. This was a great read.