Skip to content
CKBench · Explainer

Why two identical SD cards test differently

Three SanDisk High Endurance 128GB cards with the same model code and the same barcode went through the same bench on the same reader. Two of them agree to a hundredth of a megabyte per second. The third reads 81 percent faster and writes worse at small files, because it is a different build, and its own registers say so. Here is what "the same card" means to the card, four cases from my own bench, and how to find out which one you have.

CKTechCheck on YouTube

Prefer to watch?

There is no video for this one. The cards in it have all been on camera at some point, and the next bench run will be too. Subscribe to catch it.

Visit the channel

The short version

The name on the box is not the card. A product line outlives the silicon inside it, and the model code is a promise about the label, not the chip. Two of my three SanDisk High Endurance 128GB cards are twins down to the byte in every register and to 0.01 MB/s on the bench; the third carries a different product name in its CID, an older firmware revision, a different declared capacity and three registers that differ, and it reads 174.94 MB/s where the twins read 96.78. Same model code, same barcode. A SanDisk Ultra pair eight years apart splits in opposite directions, a Samsung PRO Plus pair one generation apart splits by 13 percent on write, and a PNY card turns out to be register-identical to a Gigastone sold under another manufacturer ID. Every card carries its own identity in a register you can read, and this site now reads it before every run.

Attribute every number to a unit, a reader and a state

Disclosure: Every card in this article was bought at retail with my own money or was already in my own cameras before the bench existed; none was supplied by a manufacturer, and nobody saw a result before it went up. This post contains affiliate links. As an Amazon Associate I earn from qualifying purchases, at no extra cost to you. Affiliate links like these and my YouTube channel are what keep the site running.

Start here

What "the same card" means to the card

A memory card knows exactly what it is, and it will tell any host that asks in the right way. Four small read-only registers carry the answer, and this whole article is about reading them.

The CID, the card identification register, holds a manufacturer ID, an OEM ID, a five-character product name, a firmware revision, a serial number and a manufacture date. It is the card's birth certificate, and it is the register the CKBench register page catalogs across every card I have read, thirty-four cards and ten distinct manufacturer IDs as of 19 September 2026. The CSD declares what the card is: its size in allocation units, which is where the byte count on the hub comes from. The SCR and the SD Status declare what the card can do: the specification version, the bus widths, the speed classes it claims and the erase behavior it supports.

When two cards are the same design, all four registers agree except the serial and the date. When they are not, the registers disagree, and the disagreement is visible before a single byte is written. Which means the question in the headline has an answer you can check rather than argue about. Here are four cases, all from cards physically on my bench, all with the registers read on a Raspberry Pi's native SD slot and the numbers taken from the run files.

Case one

Same model code, same barcode, different silicon

SanDisk High Endurance 128GB, model code SDSQQNR-128G-GN6IA, UPC 619659173104, three units. Two were bought new for the bench in 2026. One I already owned. At the point of sale they are indistinguishable: one SKU, one barcode, one retail listing. Here is what their registers say.

UnitCID: MID / OID / product nameFirmware revBuiltDeclared bytes (CSD)Registers
Unit A, bought new, 20260x03 / SD / SA1288.705/2026127,999,672,320CSD, SCR and SSR identical to unit C
Unit C, bought new, 20260x03 / SD / SA1288.707/2026127,999,672,320identical to unit A
Unit B, owned since 20250x03 / SD / SN1288.504/2025127,865,454,592all three registers differ from A and C

Units A and C are the same design: the same product name, SA128, the same revision, the same declared capacity to the byte, and CSD, SCR and SD Status identical. Unit B is something else. Its product name is SN128, its firmware revision is older, it declares exactly 134,217,728 fewer bytes, and all three of the other registers differ. It was also built in April 2025, before either of the other two, even though it is the SKU a buyer would have received for most of a year: the older build under the same barcode. The only thing on the cardboard that gives it away is a copyright line, Western Digital 2022 on unit B's box against Sandisk Corporation 2025 on unit A's, which is a corporate-era tell and not a specification.

Now the bench, same reader for all three, the ProGrade PGM0.5, worst ten seconds being committed sequential write over five minutes, and the reader named because the reader changes the answer.

UnitSequential readSequential writeWorst 10 sRandom 4K read / write IOPS
Unit A (SA128)96.78 MB/s89.7087.981,549 / 1,030
Unit C (SA128)96.7789.7087.981,546 / 1,020
Unit B (SN128)174.94107.62100.771,854 / 716

Read the first two rows and then the third. A and C agree to a hundredth of a megabyte per second on read and to the exact figure on write and worst ten seconds, three weeks apart, which is what "the same card" looks like when it really is the same card. Unit B reads 1.81 times faster, because its controller speaks the DDR200-class extension the other two do not, and it proved that on the whole-card verify at 179.98 MB/s, not just on a one-gigabyte file. It writes faster too, and it is 30 percent worse at random small writes, 716 IOPS against 1,030. Faster in one direction, slower in another, and the same product to every system that sells it.

The consequences are not academic. The review of this card describes unit A, and it says so now: it describes one of two builds a buyer might receive. The 88.0 MB/s floor that review carries is unit A's, and it is the corpus's reference anchor because unit A is the unit that reproduced itself on a second card; unit B's 100.77 is a different card's number and is filed under a different letter.

Two cards you cannot tell apart in a shop differ by 81 percent on read. Their registers told the difference before the first byte was written.
Case two

Same name, eight years apart, opposite directions

SanDisk Ultra 128GB. The face of the card prints the brand, the line, the capacity and the class marks, and no speed and no model code. SanDisk has sold that face at several different rated speeds over the years, so the name alone does not tell you what you own. My two units are a 2018 card and a 2026 card, and the registers put a date and a product name on each.

UnitCID: MID / OID / product nameFirmware revBuiltDeclared bytes (CSD)Registers
2018 unit, the SDSQUAR generation0x03 / SD / SC1288.009/2018127,865,454,592all three registers differ from the 2026 unit
2026 unit, SDSQUJQ-128G-GZ6MA0x03 / SD / SK1288.606/2026127,999,672,320all three registers differ from the 2018 unit

The model code changed with the generation: the 2026 box prints SDSQUJQ-128G-GZ6MA and a 195 MB/s read rating, where the 2018 card's generation was rated 100 MB/s and its face prints nothing. So this pair is not one SKU, it is one product name across two SKUs, which is the more common way the same card turns out to be a different card. The review tests both, on two readers, and the split runs in opposite directions.

UnitRead, PGM0.5 / SDDR-B751Write, PGM0.5 / SDDR-B751Worst 10 sRandom 4K read / write IOPS, PGM0.5
2018 unit (SC128)96.74 / 96.82 MB/s60.71 / 62.4959.66 / 59.981,713 / 535
2026 unit (SK128)180.74 / 203.4725.18 / 25.3524.12 / 24.011,641 / 692

The 2026 card reads 2.1 times faster on the same second reader, and beats its own 195 rating there at 203.47, which took a second host to prove because the primary reader's slot tops out near 181. The same 2026 card writes at 41 percent of the 2018 card's rate, 25 against 61 MB/s, on both readers. Newer, faster, slower. If a review of "the SanDisk Ultra 128GB" quoted one write number without a build date, it would be wrong for one of these two cards by a factor of 2.4.

Case three

Twins in one batch, and a generation apart

Samsung PRO Plus 512GB, three units. Unit A was sealed until it went on the bench, model MB-MD512SA rated 180 and 130 MB/s. Unit C was bought as a check on unit A. Unit B had been in one of my dash cams since 2023 and belongs to the previous generation, MB-MD512KA, which Samsung rated at 160.

UnitCID: MID / OID / product nameFirmware revBuiltDeclared bytes (CSD)Registers
Unit A, sealed, MB-MD512SA0x1B / SM / FF4Y73.005/2025512,711,720,960CSD, SCR and SSR identical to unit C
Unit C, same batch0x1B / SM / FF4Y73.005/2025512,711,720,960identical to unit A; serial shares A's first byte
Unit B, in service since 2023, MB-MD512KA0x1B / SM / FF8S53.009/2022512,711,720,960CSD and SCR identical to A; SSR differs

A and C are what a same-batch pair looks like: the same product name, the same month of manufacture, serial numbers that share their first byte, and three registers identical to the last bit. On the bench every figure lands within 1.4 percent, and the review says exactly that: two cards from one batch cannot prove a production run is consistent, but they rule out the most obvious way a single-unit review goes wrong. Unit B is the generation before. Its product name is FF8S5, it was built in September 2022, it shares the CSD and SCR with the newer pair and differs only in its SD Status, and once its state had been reset it wrote at 123.51 MB/s against the newer pair's 142.15, which is 87 percent, on the same reader.

UnitSequential readSequential writeWorst 10 sRandom 4K read / write IOPS
Unit A (FF4Y7, sealed)169.30 MB/s142.15141.562,372 / 1,895
Unit C (FF4Y7, same batch)169.33141.29142.712,405 / 1,907
Unit B (FF8S5), as it came out of the dash cam157.3513.2213.001,851 / 546
Unit B (FF8S5), after one full rewrite160.77123.51113.981,862 / 796

That third row is the trap this article is not about. Unit B arrived writing at a tenth of its rated speed with nothing wrong with it, and one whole-card write brought it back to the fourth row. That is a card's state, not its identity, and it has its own article. What identity accounts for is the gap between the fourth row and the first two: an older generation writing 13 percent slower than the current one under the same name, which the registers announced before the run.

One clause on something I have not written up: the PRO Plus pair's CSD, SCR and SD Status are also identical to my Samsung PRO Ultimate 512GB's, a different product line on the same platform. Same registers, different label, which is the mirror image of everything above and the subject of the next case.

The mirror image

Different names, one platform

If one name can hide two chips, one chip can wear five names. The PNY Premier-X 128GB reports manufacturer ID 0x74 in its CID, a value nothing else on my bench reports. Its CSD, SCR and SD Status are byte-identical to the Gigastone High Endurance Pro 128GB, which reports 0xFE, and its SD Status is identical to three more 0xFE cards: the Newegg TeamGroup, the Botslab that came bundled with a dash cam, and the FitcamX that came bundled with another. The Gigastone's CID even repeats the TeamGroup's field for field, except the serial and the date.

CardCID: MID / OID / product nameFirmware revBuiltDeclared bytes (CSD)Registers
PNY Premier-X 128GB0x74 / J` / SD6.102/2025125,069,950,976CSD, SCR and SSR identical to the Gigastone; SSR identical to all four below
Gigastone High Endurance Pro 128GB0xFE / 42 / SD2.011/2025125,069,950,976CID identical to the TeamGroup except serial and date
Newegg TeamGroup 128GB0xFE / 42 / SD2.002/2024123,731,968,000SSR identical to the PNY
Botslab 128GB (bundled)0xFE / h / SZYL2.010/2025124,644,229,120SCR and SSR identical to the PNY
FitcamX 64GB (bundled)0xFE / 4p / SZYL2.011/202562,325,260,288SCR and SSR identical to the PNY

Two things follow, and one thing does not. First, the manufacturer ID is the assembler's field, not the chip maker's: the same controller platform shows up behind two different IDs, so I do not name a maker for any of these, and neither should anyone reading a lookup table. Second, the capacity is per lot, not per platform: five cards, four different declared byte counts, the PNY and the Gigastone alone matching to the byte. What does not follow is that identical registers mean identical behavior. Those five cards' worst ten seconds run 35.5, 43.8, 53.9, 59.56 fresh and 47.08, and the way each one folds when its cache fills is different again. The registers say what platform a card is. They do not say how it was configured, which flash it got, or how it was graded.

Why this happens

The vendor says so, in writing

None of this is a secret and none of it is misconduct. A consumer card is a product line, and the line is maintained for years while the controllers and the flash under it change with whatever is available and cheapest to build. SanDisk put it in a white paper for its industrial customers in January 2026, explaining why they should not buy consumer cards for cameras that have to keep working:

"Additionally, the bill of materials, including the controller, firmware, and NAND technology, can change over time without prior notice."Sandisk, Benefit of adopting Sandisk's high-endurance OEM-grade microSD cards, white paper, January 2026

That is the thesis of this article, in the vendor's words. The same document is the one that explains why consumer cards carry an hours rating instead of a bytes rating. Read together, the two sentences say that the model code on a consumer card is a contract about the label and the marks, both of which every unit above honored, and not about what is inside.

The consequence

What this does to a review, including mine

A review measures a unit. That sentence used to be a caveat and it is now the method. Every figure on this site is attributed to a unit, a reader and a state, because each of the three can move the number by more than the difference between two competing cards: a unit by 81 percent on read, a reader by a full video speed class, a state by a factor of ten. Write speeds are measured with every byte committed to the card, the way a camera writes, so they read lower than burst benchmarks; the scoring page explains why.

Three things changed on this bench because of the cards above. Every card's CID is dumped on a native SD slot before it is benched, so a second unit is compared to the first by register before it is compared by number. Units keep their letters for good: the High Endurance review's anchor is unit A's, the corpus's reference band is built on unit A because unit C reproduced it, and unit B's figures are unit B's. And every read figure names the reader it was measured on, with a second host run before any read number is reported as the card's limit rather than the host's.

It also changes how to read anyone else's number. A speed figure with no build date, no reader and no unit is a description of one card on one afternoon, and it may be a perfectly accurate description of a card you cannot buy any more.

Two other reasons

The same card also tests differently for two reasons that are not the card

The host. The reader and the port it hangs off set a ceiling the card cannot exceed, and on this bench that ceiling has been measured twice over: the primary reader's microSD slot tops out near 181 MB/s on read, and since protocol v1.21 it has a write ceiling too, near 157, found when the Amazon Basics 128GB held 155.92 MB/s through its worst ten seconds there and 188.11 on the second reader, same card, same day. That whole story, the four host tiers and the USB port that costs more than any of them, belongs to the reader tiers post and its buying companion, and I am not retelling it here.

The state. A card that has been written end to end and never told which blocks are dead can hold a lower floor than the same card fresh, with nothing worn and every byte intact: the Gigastone above floored at 59.56 sealed and 31.04 used, and the PRO Plus unit B wrote at 13.22 as it came out of a dash cam. That is a card's condition, it is reversible, and the used-card explainer owns it, with the erase experiment that settled the mechanism.

Identity is the third variable, and it is the one nobody can reset. A different build is a different card for as long as you own it.

The practical half

How to know which one you have

  1. Read the model code before the brand. It is on the box and often on the card's back, and it changes with the generation more often than the face does: SDSQUAR became SDSQUJQ on the Ultra, MB-MD512KA became MB-MD512SA on the PRO Plus. It does not catch a silicon change inside one model code, which is case one.
  2. Read the CID on a native SD slot. A USB card reader hides the registers behind a bridge chip; a Raspberry Pi, or any Linux machine with a built-in SD slot, exposes them in sysfs. The register page has the walkthrough; the files are these:
    /sys/block/mmcblk0/device/cid   the whole register
    /sys/block/mmcblk0/device/manfid   /sys/block/mmcblk0/device/oemid   /sys/block/mmcblk0/device/name   /sys/block/mmcblk0/device/date
  3. Decode it. Paste the CID into the CID decoder and it returns all seven fields, looks the manufacturer ID up against the register, and tells you whether the identity matches a card already on this bench.
  4. Compare the product name and the date, not the serial. Two units of one build share a product name and a firmware revision; the serial and the month differ on every card and prove nothing. SA128 against SN128 was the whole difference in case one.
  5. Then read any review's number as one unit's number. If it names a build date, a reader and a unit, you can tell whether it describes your card. If it does not, it describes somebody's card.
Common questions

Frequently Asked Questions

Why do two identical SD cards test at different speeds?

Because they are often not identical inside. One model code can be built with different controllers and flash over its life, and the two builds can differ by 81 percent on read, as two SanDisk High Endurance 128GB cards with the same barcode did on my bench. The card's CID register tells the builds apart; the box does not.

Can the same SD card model have different chips inside?

Yes. SanDisk states in its own 2026 white paper that a consumer card's controller, firmware and NAND can change over time without notice. My High Endurance units A and B share a model code and a UPC and differ in product name, firmware revision, declared capacity and three of their four registers.

How do I tell which version of an SD card I have?

Check the model code on the box first, then read the CID register on a native SD slot such as a Raspberry Pi and decode it. The product name, firmware revision and manufacture date identify the build. The serial number identifies only that one card.

What is a CID on an SD card?

The card identification register: 16 bytes of read-only data holding the manufacturer ID, an OEM ID, a five-character product name, a firmware revision, a serial number and a manufacture date. Every SD card has one, and it is written at the factory.

Can I read the CID with a USB card reader?

Usually not. A USB reader presents the card as a generic disk through a bridge chip and does not pass the registers through. A native SD slot on a Linux machine, including any Raspberry Pi, exposes them as files under /sys/block/mmcblk0/device/.

Do two cards with the same registers perform the same?

Two cards from the same build usually do: my High Endurance units A and C agree to 0.01 MB/s, and two PRO Plus cards from one batch land within 1.4 percent. Two cards on the same platform under different labels do not have to: five cards sharing an SD Status register floor between 35.5 and 59.56 MB/s.

Is the faster unit the better card?

Not necessarily. The High Endurance unit that reads 81 percent faster is 30 percent worse at random small writes, and the 2026 SanDisk Ultra that reads twice as fast as the 2018 one writes at 41 percent of its rate. Faster in one direction is often slower in another.

Does this mean SD card reviews are useless?

It means a review describes a unit, and a useful one says which. A figure that names the build date, the reader and the unit can be matched to the card in your hand. A figure that names none of them may be accurate and still not describe anything you can buy.

The bottom line

The card knows what it is

The box tells you what the card is called and what it is rated to do, and on every unit above the marks were honest. What the box cannot tell you is which build you got, and that turned out to be worth 81 percent on read, 2.4 times on write, and a different answer on small files, across cards sold as the same thing. The card itself can tell you, in a register that costs nothing to read, and the difference between a review that names its unit and one that does not is the difference between a measurement and a rumour.

So read the model code, read the CID when it matters, and hold every number, mine included, to a unit, a reader and a state. That is the whole method, and it is why the three High Endurance cards in this article have three letters instead of one review.