DEV Community

vast cow
vast cow

Posted on

Checking if a Used Core i7-6700 is Genuine Without Benchmarks

When purchasing a used Intel CPU, you might wonder if the heat spreader has been swapped with another CPU or if it's a fake with a modified model number.

This time, using an actual Intel Core i7-6700 as an example, we'll try to determine how much we can verify its authenticity without using performance measurements, by checking:

  • Heat spreader markings
  • S-Spec
  • FPO (Batch Number)
  • ATPO (Serial Number)
  • Data Matrix
  • Partial ATPO

The Core i7-6700 We're Checking

The CPU surface has the following markings:

i7-6700
SR2L2 3.40GHZ
X012C345 (e4)
Enter fullscreen mode Exit fullscreen mode

First, let's clarify what each of these means.

Display Meaning
i7-6700 CPU model name
SR2L2 S-Spec
3.40GHZ Base clock speed
X012C345 FPO (Batch Number)
(e4) Not ATPO

According to Intel's official information, the Core i7-6700 has an S-Spec of SR2L2 and an R0 stepping. Also, the i7-6700 has a base clock speed of 3.40GHz.

Therefore, there are no inconsistencies in the markings on the surface so far.

What is FPO?

FPO stands for "Finished Process Order," and Intel treats it as the Batch Number.

In this CPU,

X012C345
Enter fullscreen mode Exit fullscreen mode

is the FPO.

The FPO is located on the heat spreader.

Importantly, it is different from SR2L2.

SR2L2    → S-Spec
X012C345 → FPO
Enter fullscreen mode Exit fullscreen mode

Even in Intel's Warranty Information, the FPO is entered as the "Batch number."

What is ATPO?

ATPO stands for "Assembly Test Process Order," and it is treated as the CPU's Serial Number.

While the FPO is a batch number, the ATPO is a number to identify each individual processor.

Intel CPUs have a very small 2D Matrix on the outer edge of the substrate.

Decoding this 2D Matrix allows you to obtain the Full ATPO (complete serial number).

Reading a 2D Matrix with a Smartphone

This time, I was able to read the code using the "Code Scan - QR & Barcode Scanner" app from the App Store on my iPhone.

https://apps.apple.com/jp/app/code-scan-qr-barcode-scanner/id1554812545

Because the Intel CPU code is very small, it may not be recognized properly by a regular QR code reader. Intel also states that you can read the 2D Matrix using a compatible app that utilizes your smartphone's camera.

When reading, it helps to:

  • Clean the surface of the CPU to remove any dirt.
  • Take the picture in a well-lit area.
  • If there is reflection, shine a light on it from an angle.
  • Focus on the code.
  • If necessary, use macro photography.
  • Cover the parts other than the 2D Matrix with dark paper or objects to increase the contrast between the code and the board.

This will increase the chances of success.

In particular, in the tests I conducted, covering the parts other than the code with something dark and making the 2D Matrix stand out made it easier to recognize.

The CPU board has characters, wiring patterns, and metal parts, so when viewed from the camera, there are many fine patterns in addition to the 2D Matrix. Therefore, the method of covering the surroundings to hide them and making only the code you want to read stand out is worth trying when the scan is unstable.

With this i7-6700, I scanned it with my iPhone using this method as well, and the app gave me the following result:

U6SG012345678
Enter fullscreen mode Exit fullscreen mode

What you need is the Content side.

Therefore, the Full ATPO of this CPU is:

U6SG012345678
Enter fullscreen mode Exit fullscreen mode

Note that Hex is not a different serial number.

For example:

55 → U
36 → 6
53 → S
47 → G
Enter fullscreen mode Exit fullscreen mode

It is a hexadecimal representation of the characters in the Content string.

Finding the Partial ATPO

Next, carefully examine the outer edge of the CPU substrate.

On this CPU, a very small string:

45678
Enter fullscreen mode Exit fullscreen mode

was printed.

This is the Partial ATPO.

According to Intel, the Partial ATPO is the last 3-5 characters of the Full ATPO.

Therefore, compare it with the Full ATPO read from the Data Matrix earlier.

Full ATPO
U6SG012345678
        ↓↓↓↓↓
        45678

Partial ATPO on the substrate
45678
Enter fullscreen mode Exit fullscreen mode

The last 5 characters matched perfectly.

This is an important checkpoint.

Intel also advises, as a procedure for checking counterfeit CPUs, to read the Full ATPO from the 2D Matrix and compare the last 5 characters with the Partial ATPO printed on the outer edge of the CPU. If it is genuine, they should match.

Therefore, in this CPU:

Data Matrix
     ↓
U6SG012345678
        ↓
      45678
        ↑
"45678" on the substrate
Enter fullscreen mode Exit fullscreen mode

This correspondence was confirmed.

At least, the Data Matrix on the substrate and the Partial ATPO that humans can read are correctly matched.

Can the Heat Spreader and Substrate be Directly Matched?

This is the part I was particularly concerned about while researching.

On the heat spreader side, there is:

i7-6700
SR2L2
X012C345
Enter fullscreen mode Exit fullscreen mode

On the other hand, on the substrate side, there is:

Full ATPO:
U6SG012345678

Partial ATPO:
45678
Enter fullscreen mode Exit fullscreen mode

In summary:

[Heat Spreader]
i7-6700
SR2L2
FPO: X012C345
       │
       │ ← This is what I wanted to confirm
       │
[CPU Substrate]
Full ATPO: U6SG012345678
Partial ATPO: 45678
Enter fullscreen mode Exit fullscreen mode

Regarding Full ATPO and Partial ATPO:

U6SG012345678
        ↓↓↓↓↓
        45678
Enter fullscreen mode Exit fullscreen mode

This can be physically confirmed.

However, there is no publicly available rule that users can use to calculate and confirm the relationship between:

FPO X012C345
      ↕
ATPO U6SG012345678
Enter fullscreen mode Exit fullscreen mode

If you can successfully search Intel's Warranty Information, you can confirm the combination of FPO and ATPO, but in this i7-6700, no search results were found.

Therefore, I could not completely confirm that the heat spreader was originally attached to this substrate at the factory.

How to Check for "A Fake with an i7-6700 Heat Spreader Placed on a Different CPU"?

For example, consider the following:

Different CPU substrate
   +
Heat spreader labeled i7-6700
Enter fullscreen mode Exit fullscreen mode

This is a form of forgery.

In this case, it will look like an i7-6700 just by looking at the surface.

In this case, what is effective is the identification information inside the CPU.

Intel also advises that if you can install the CPU in a PC, use the Intel Processor Diagnostic Tool to check:

Genuine Intel: Pass
Enter fullscreen mode Exit fullscreen mode

and that the product name matches.

Furthermore, with CPU-Z and HWiNFO, check:

  • Core i7-6700
  • Skylake
  • 4 cores, 8 threads
  • 8MB L3
  • R0 stepping
  • CPUID is consistent with Skylake

If you check these, it will be much easier to detect a simple forgery where "the heat spreader says i7-6700, but the inside is a different CPU."

This is different from comparing benchmark scores; it's a method of checking the identification information returned by the CPU itself.

Results This Time

In this Core i7-6700:

Check Result
i7-6700 is printed on the surface
S-Spec SR2L2 Matches Intel's official information
3.40GHZ Matches Intel's specifications
FPO X012C345 Confirmed
2D Matrix Successfully read
Full ATPO Successfully obtained
Partial ATPO 45678
Full ATPO ending 45678
Full/Partial ATPO 5 characters match perfectly
Warranty Information Could not find the product
FPO and ATPO Intel DB check Unconfirmed

Therefore, within the scope that we could confirm this time, no information contradicting the fact that it is a genuine Core i7-6700 was found.

In particular,

The last 5 characters of the Full ATPO obtained from the Data Matrix and the Partial ATPO printed directly on the substrate matched.

This is a strong piece of evidence.

However, since the combination of FPO and ATPO could not be confirmed in Intel's Warranty Information,

We could not completely confirm that the heat spreader and substrate were originally a set from the factory.

Summary of How to Check a Used Intel CPU

If you want to check without using performance measurements, the following order is practical:

① Check the model number on the CPU surface
        ↓
② Compare the S-Spec with Intel's official information
        ↓
③ Record the FPO
        ↓
④ Scan the 2D Matrix on the outer edge of the substrate
        ↓
⑤ Obtain the Full ATPO
        ↓
⑥ Find the Partial ATPO on the substrate
        ↓
⑦ Compare with the last 3-5 characters of the Full ATPO
        ↓
⑧ Enter the FPO + ATPO in Intel Warranty Information
        ↓
⑨ If you can install it in a PC, use the
   Intel Processor Diagnostic Tool to check
   for Genuine Intel and the product name
Enter fullscreen mode Exit fullscreen mode

In particular, ④-⑦ can be checked without running the CPU.

Caution: It's Best Not to Publish the ATPO

The ATPO is the CPU's Serial Number.

When publishing photos on blogs or flea market sites, it is best to hide part of it, like this:

U6SG0123*****
Enter fullscreen mode Exit fullscreen mode

Also, since it may be possible to read the Full ATPO from the code even if you hide the 2D Matrix itself, it is safe to put a mosaic on the 2D Matrix as well.

Summary

Intel CPUs have multiple identification pieces of information, not just "Core i7" written on them:

S-Spec → FPO → Data Matrix → Full ATPO → Partial ATPO

In this i7-6700, we were able to confirm up to:

SR2L2
FPO: X012C345
Full ATPO: U6SG0123*****
Partial ATPO: 45678
Enter fullscreen mode Exit fullscreen mode

and the correspondence between Full ATPO and Partial ATPO was also confirmed.

When checking the authenticity of a used CPU, it is useful to use not only benchmark results but also this method of cross-checking physical traceability information.

However, this does not cryptographically prove the authenticity of the semiconductor. In particular, with older CPUs, search results may not be found in Intel's current Warranty search, so it is practical to combine:

Physical marking consistency + ATPO consistency + identification information inside the CPU

to make a judgment.

中古のCore i7-6700が本物か、ベンチマークを使わずに確認してみた

中古でIntel CPUを入手したとき、「ヒートスプレッダだけ別のCPUに交換されていないか」「型番を書き換えた偽物ではないか」が気になることがあります。

今回は実際のIntel Core i7-6700を例に、性能測定を使わず、

  • ヒートスプレッダの刻印
  • S-Spec
  • FPO(Batch Number)
  • ATPO(Serial Number)
  • Data Matrix
  • Partial ATPO

を使って、どこまで真贋を確認できるのか試してみました。

今回確認するCore i7-6700

CPU表面には次のように刻印されています。

i7-6700
SR2L2 3.40GHZ
X012C345 (e4)
Enter fullscreen mode Exit fullscreen mode

まず、それぞれの意味を整理します。

表示 意味
i7-6700 CPUの製品名
SR2L2 S-Spec
3.40GHZ ベースクロック
X012C345 FPO(Batch Number)
(e4) ATPOではない

Intel公式情報でも、Core i7-6700の製品版にはS-Spec SR2L2、R0ステッピングが存在します。また、i7-6700のベースクロックは3.40GHzです。

したがって、ここまでの表面刻印には矛盾がありません。

FPOとは?

FPOは「Finished Process Order」の略で、IntelではBatch Numberとして扱われています。

今回のCPUでは、

X012C345
Enter fullscreen mode Exit fullscreen mode

がFPOだとします。

FPOはヒートスプレッダ上にあります。

ここで重要なのは、SR2L2とは別物ということです。

SR2L2    → S-Spec
X012C345 → FPO
Enter fullscreen mode Exit fullscreen mode

IntelのWarranty InformationでもFPOは「Batch number」として入力します。

ATPOとは?

ATPOは「Assembly Test Process Order」の略で、CPUのSerial Numberとして扱われています。

FPOがバッチ番号なのに対して、ATPOは個々のプロセッサを識別するための番号です。

Intel CPUでは、基板外周に非常に小さな2D Matrixがあります。

この2D Matrixをデコードすると、Full ATPO(完全なシリアル番号)を取得できます。

2D Matrixをスマートフォンで読み取る

今回、iPhoneではApp Storeの「Code Scan - QR & Barcode Scanner」を使用すると読み取ることができました。

https://apps.apple.com/jp/app/code-scan-qr-barcode-scanner/id1554812545

Intel CPUのコードは非常に小さいため、通常のQRコードリーダーではうまく認識されない場合があります。Intelも、スマートフォンのカメラを利用する対応アプリで2D Matrixを読み取れると案内しています。

読み取り時は、

  • CPU表面の汚れを落とす
  • 明るい場所で撮影する
  • 反射する場合は光を斜めから当てる
  • コードにピントを合わせる
  • 必要ならマクロ撮影する
  • 2D Matrix以外の部分を暗めの紙や物で隠し、コード部分と基板とのコントラストを高くする

と成功しやすくなります。

特に今回試した範囲では、コード以外の部分を暗いもので覆い、2D Matrixだけが目立つ状態にすると認識しやすくなりました。

CPU基板には文字や配線パターン、金属部分などがあり、カメラから見ると2D Matrix以外にも細かな模様が多数存在します。そのため、周囲を暗く隠して読み取らせたいコードだけを目立たせる方法は、スキャンが安定しない場合に試す価値があります。

今回のi7-6700では、この方法も併用しながらiPhoneでスキャンしたところ、アプリから次のような結果が得られました。

U6SG012345678
Enter fullscreen mode Exit fullscreen mode

必要なのはContent側です。

したがって、このCPUのFull ATPOは、

U6SG012345678
Enter fullscreen mode Exit fullscreen mode

となります。

なお、Hexは別のシリアル番号ではありません。

例えば、

55 → U
36 → 6
53 → S
47 → G
Enter fullscreen mode Exit fullscreen mode

というように、Contentの文字列を16進数で表現したものです。

Partial ATPOを探す

次に、CPU基板の外周をよく確認します。

今回のCPUには、

45678
Enter fullscreen mode Exit fullscreen mode

という非常に小さな文字が印刷されていました。

これがPartial ATPOです。

IntelによるとPartial ATPOは、Full ATPOの末尾3~5文字です。

そこで先ほどData Matrixから読み取ったFull ATPOと比較します。

Full ATPO
U6SG012345678
        ↓↓↓↓↓
        45678

基板上のPartial ATPO
45678
Enter fullscreen mode Exit fullscreen mode

末尾5文字が完全に一致しました。

これは重要なチェックポイントです。

Intel自身も偽造CPUを確認する手順として、2D MatrixからFull ATPOを読み取り、その末尾5文字とCPU外周に印刷されたPartial ATPOを比較し、正規品なら一致することを確認するよう案内しています。

つまり今回のCPUでは、

Data Matrix
     ↓
U6SG012345678
        ↓
      45678
        ↑
基板上の「45678」
Enter fullscreen mode Exit fullscreen mode

という対応が確認できました。

少なくとも、基板上のData Matrixと人間が読めるPartial ATPOは正しく対応しています。

ヒートスプレッダと基板は直接照合できるのか?

ここが今回調べていて特に気になった部分です。

ヒートスプレッダ側には、

i7-6700
SR2L2
X012C345
Enter fullscreen mode Exit fullscreen mode

があります。

一方、基板側には、

Full ATPO:
U6SG012345678

Partial ATPO:
45678
Enter fullscreen mode Exit fullscreen mode

があります。

整理すると、

【ヒートスプレッダ】
i7-6700
SR2L2
FPO: X012C345
       │
       │ ← 本来この対応を確認したい
       │
【CPU基板】
Full ATPO: U6SG012345678
Partial ATPO: 45678
Enter fullscreen mode Exit fullscreen mode

という構造です。

Full ATPOとPartial ATPOについては、

U6SG012345678
        ↓↓↓↓↓
        45678
Enter fullscreen mode Exit fullscreen mode

と物理的に確認できます。

しかし、

FPO X012C345
      ↕
ATPO U6SG012345678
Enter fullscreen mode Exit fullscreen mode

について、ユーザーが番号から計算して確認できる公開された規則は見当たりません。

IntelのWarranty Informationが正常に検索できれば、FPOとATPOを組み合わせて確認できますが、今回のi7-6700では検索結果が得られませんでした。

そのため、ヒートスプレッダが本当にこの基板に元々取り付けられていたものなのかを、刻印だけで100%証明するところまでは到達できませんでした。

「別CPUにi7-6700のヒートスプレッダを載せた偽物」はどう確認する?

例えば、

別のCPU基板
   +
i7-6700と書かれたヒートスプレッダ
Enter fullscreen mode Exit fullscreen mode

という偽装を考えます。

この場合、表面を見るだけではi7-6700に見えてしまいます。

そこで有効なのがCPU内部の識別情報です。

Intel自身も、CPUをPCに搭載できる場合はIntel Processor Diagnostic Toolを使用し、

Genuine Intel: Pass
Enter fullscreen mode Exit fullscreen mode

となること、および製品名が一致することを確認する方法を案内しています。

さらにCPU-ZやHWiNFOなどで、

  • Core i7-6700
  • Skylake
  • 4コア8スレッド
  • 8MB L3
  • R0ステッピング
  • CPUIDがSkylakeとして整合

などを確認すれば、「ヒートスプレッダにはi7-6700と書いてあるが、中身は別CPU」という単純な偽装はかなり見抜きやすくなります。

これはベンチマークのスコア比較とは異なり、CPU自身が返す識別情報を確認する方法です。

今回の結果

今回のCore i7-6700では、

チェック 結果
表面にi7-6700と刻印
S-Spec SR2L2 Intel公式情報と一致
3.40GHz Intel公式仕様と一致
FPO X012C345 確認
2D Matrix 読み取り成功
Full ATPO 取得成功
Partial ATPO 45678
Full ATPO末尾 45678
Full/Partial ATPO 5文字完全一致
Warranty Information 製品を発見できず
FPOとATPOのIntel DB照合 未確認

したがって、今回確認できた範囲では、正規のCore i7-6700と矛盾する情報は見つかりませんでした。

特に、

Data Matrixから取得したFull ATPOの末尾5文字と、基板に直接印刷されたPartial ATPOが一致した

ことは強い確認材料です。

ただし、Intel Warranty InformationでFPOとATPOの組み合わせを確認できなかったため、

「ヒートスプレッダと基板が工場出荷時から同じ組み合わせだった」ことまで完全に証明できたわけではありません。

中古Intel CPUを確認するときの手順まとめ

性能測定を使わず確認するなら、次の順番が実用的だと思います。

① CPU表面の型番を確認
        ↓
② S-SpecをIntel公式情報と照合
        ↓
③ FPOを記録
        ↓
④ 基板外周の2D Matrixをスキャン
        ↓
⑤ Full ATPOを取得
        ↓
⑥ 基板上のPartial ATPOを探す
        ↓
⑦ Full ATPO末尾3~5文字と比較
        ↓
⑧ Intel Warranty Informationに
   FPO + ATPOを入力
        ↓
⑨ PCに搭載できるなら
   Intel Processor Diagnostic Toolで
   Genuine Intelと製品名を確認
Enter fullscreen mode Exit fullscreen mode

特に④~⑦は、CPUを動作させなくても確認できます。

注意:ATPOは公開しない方がよい

ATPOはCPUのSerial Numberです。

ブログやフリマサイトなどで写真を公開する場合は、

U6SG0123*****
Enter fullscreen mode Exit fullscreen mode

のように一部を隠しておいた方がよいでしょう。

Data Matrixそのものを鮮明な写真で公開すると、文字を隠していてもコードからFull ATPOを読み取れる可能性があるため、Data Matrixにもモザイクをかけるのが安全です。

まとめ

Intel CPUには、単に「Core i7」と書かれているだけではなく、

S-Spec → FPO → Data Matrix → Full ATPO → Partial ATPO

という複数の識別情報があります。

今回のi7-6700では、

SR2L2
FPO: X012C345
Full ATPO: U6SG0123*****
Partial ATPO: 45678
Enter fullscreen mode Exit fullscreen mode

まで確認でき、Full ATPOとPartial ATPOの対応も確認できました。

中古CPUの真贋確認ではベンチマーク結果だけを見るのではなく、こうした物理的なトレーサビリティ情報を相互照合する方法も有効です。

ただし、これだけで半導体の真正性を暗号学的に証明できるわけではありません。特に古いCPUではIntelの現行Warranty検索で結果が得られない場合もあるため、

物理刻印の整合性 + ATPOの整合性 + CPU内部の識別情報

を組み合わせて判断するのが現実的です。

Top comments (0)