Explain Like I’m 5 — Why are AMD processors not, or less, vulnerable to Meltdown and Spectre?

All these answers are abstruse and complex. Can someone please explain like I’m 5 by relying on, but varietizing, u/zoox101’s excellent analogy? I copy and paste it here with some trifling corrections and modifications, like differently gendering the librarian and the diary’s owner to avoid confusing pronouns.


At its heart, your computer works just like a library. It’s constantly reading and moving information just like students read and move books. And just like any good library, your computer has a friendly librarian: Ms Kernel.

Whenever you go to check out a book, you give Ms Kernel the title and she goes to fetch it for you. However, this library may contain some pretty secret stuff, so Ms Kernel always checks to make sure you’ve got permission to read the book you’re requesting.

Back in the old days, Ms. Kernel had to do all the work herself, and it was painfully slow. Recently computers are better designed, and can do multiple operations at once, meaning that Ms. Kernel now has a bunch of assistants helping her. This is great for the library, because now it can handle more people than ever before! However, it also creates a weakness that was only just discovered. Here’s how the weakness works.

You, a mischievous ne’er do well, want to read your rival Ed’s diary, which he keeps in the library. However, Ed hasn’t shared his diary with you, so Ms Kernel won’t let you check it out. So you decide to do something rather clever…Rather than asking for the diary directly, you ask Ms. Kernel to fetch two things:

  1. Ed’s diary

  2. a book where the first word in the title is the first word in Ed’s diary.

Back in the old days, this wouldn’t have been a problem. The first thing Ms. Kernel would have done, was to ask Ed if you could read her diary. When Ed said no, Ms. Kernel would’ve stopped.

However the assistants complicate things. To save time, Ms Kernel asks one assistant to ask Ed for permission, while the other goes to find the two books you requested. When the first assistant tells Ms Kernel that Ed said no, the second one gives Ms K the books which Ms. K sets on her desk.

Ms. Kernel tells you that you can’t have the books. However, because they’re sitting on the desk, you can read the titles. The first one’s called "Ed’s Diary" and the second one’s called "The Cat in the Hat". Because you requested a book whose title that begins with the same word as the first word in Ed’s diary, you know that the first word in the diary must be "The".

If you wanted to, you could repeat this process for every word in the diary, until you could read the whole diary.

This exploit endangers all libraries because it works in every library that has assistant librarians, which covers just about every modern processor out there. The only real panacea is to force the assistants to run the check before fetching the books, which will slow down the library as a whole. The biggest vulnerability is that the parallel processing (assistants) is leaving the cache (desk) in a different state than they found it, even though the permission check failed.

Thankfully, no known malware exploits this bug, but the safest thing to do is to update your devices as soon as a fix is released, to prevent them from being infiltrated in the future. The performance shouldn’t slow down most personal devices (small library, few assistants), but will decrease performance on larger machines (i.e. university supercomputers).

Textbook on how processors are actually structured at the circuit level

I am looking for a textbook that helps me understand how basic digital electronic units are used to build complicated integrated circuits.

I have looked online for textbooks, but what I have found tends to be either

  1. At a level of abstraction below what I’m looking for: textbooks on the nitty gritty electrical engineering aspects of circuits. They tend to have hundreds of pages on how a transistor even works. Example: Foundations of Analog and Digital Circuits by Agarwal and Lang.

  2. At a level of abstraction above what I’m looking for: textbooks that take “operations” and functional units as the basic units. E.g. they take the existence of an ALU as given, without explaining, in detail, how to make an ALU out of components like AND gates and flip-flops. They tend to emphasize programming language concepts rather than actual digital circuits and signals. Example: Modern Processor Design by Shen and Lipasti

Both of these are interesting of course. But I’m looking for a textbook that goes into the basic components of a microchip, abstracting away from the most nitty gritty physical implementation, but while capturing the basic low level details of micro chip design.

I want to basically know how AND, OR, gates etc, and flip flops, and clock signal (and whatever other units there might be) are used to create cache memory, ALU’s, to make sure that the circuit is synchronized etc.

I am not sure what keywords I should be looking for to find such a textbook.

Payment processors for Squarespace

Is there any other payment processor you can link to Squarespace other then stripe or some lend some advice or point me to where I could figure it out ?

Stripe has deemed my perfectly normal print on demand fashion site high risk and won't accept me, only other option I have is Paypal. Is there a place or way I could buy a stripe account to link to my Squarespace site or link a Braintree or Authorize dot net to a Squarespace site ?

Why isn’t a valid bit used for associative cache in processors

Direct map cache uses a valid bit to effectively know if any data is present to a specific cache-slot (aka line/index). If this is the only use of this bit, then I believe, once a line has v-bit set, it won’t be unset until power off.

In addition, I wonder why similar optimization has not been done for associative (full or k-way) cache. Only reason I could imagine is that since for every read/write, a cache-slot will be filled, the cache will be filled pretty soon; and the probability of a slot being empty is zero in no time.

Any feedback will be much appreciated.

I have code compiled for Intel i7: how can I know which Xeon processors it could run on?

I have code compiled for Intel i7: how can I know which Xeon processors it could run on?

There seems to be no clear way to know.

I developed these rules-of-thumb, but am unsure if they suffice. The Xeon processors that could run i7 code should be:

  • Of or after the Nehalem_(microarchitecture) family of processors.
  • Support DDR-4 memory.
  • Of lithography process of 45nm or smaller.
  • From the year 2008 onwards.

Is there a table somewhere on the web that makes comparisons between Core and Xeon processors in terms of which code they could run?

I have code compiled for Intel i7: how can I know which Xeon processors it could run on?

I have code compiled for Intel i7: how can I know which Xeon processors it could run on?

There seems to be no clear way to know.

I developed these rules-of-thumb, but am unsure if they suffice. The Xeon processors that could run i7 code should be:

  • Of or after the Nehalem_(microarchitecture) family of processors.
  • Support DDR-4 memory.
  • Of lithography process of 45nm or smaller.
  • From the year 2008 onwards.

Is there a table somewhere on the web that makes comparisons between Core and Xeon processors in terms of which code they could run?

If the Intel Pentium processors, was not made compatible to programs written for its predecessor, it could have been designed to be a faster processor

I find this question while solving some government job question bank. If someone could provide the answer along with a little explanation it would be very helpful.

Ques:- If the Intel Pentium processors, was not made compatible to programs written for its predecessor, it could have been designed to be a faster processor.

  1. The statement is true
  2. The statement is false
  3. The speed cannot be predicted
  4. Speed has nothing to do with the compatibility

(I did not find any tag as microprocessor or something so i have to keep it under the tag computer architecture, sorry for that, but i did not have sufficient reputation to create a tag.)