序列存在檢測（英語：serial presence detect，縮寫 SPD）是一種存取記憶體模組有關訊息的標準化方式。 早期的 72 pin SIMM 包括五個針腳，提供 5 位元平行存在檢測（PPD）資料，而 168 pin DIMM 標準更改為序列存在檢測，以編碼更多訊息。

在普通的現代電腦開機時，它將進行一次開機自檢（POST）。自從 20 世紀 90 年代中期以來，這個過程包括自動設定當前存在的硬體。SPD 是一項記憶體硬體特性，可使電腦了解存在的記憶體以及存取記憶體要使用的時序。

部分電腦可以完全自動地適應硬體變更。在大多數情況下，有一個特殊的可選步驟可以存取 BIOS 參數，得以檢視並可能更改相關設定。有些電腦可以控制如何使用 SPD 中儲存的資料 —— 可以選擇性的修改記憶體時序，乃至完全覆蓋（忽視）SPD 資料，詳見超頻。



儲存的訊息

對於支援 SPD 的記憶體模組，JEDEC 標準要求在記憶體模組的一個 EEPROM 上的低 128 位元組中存有特定參數。這些位元組包括模組相關的時序參數、製造商、序列號及其他實用訊息。利用記憶體的裝置可以讀取該訊息來自動確定模組的關鍵參數。例如，SDRAM 模組上的 SPD 資料可能提供有關 CAS 潛伏時間的訊息，使系統可以自動組態而無需使用者干預。

SPD EEPROM 採用 SMBus 存取，這是 I²C 協定的一個變種。這將模組上的通信針腳數量減少到兩個：時鐘訊號和資料訊號。EEPROM 與 RAM 共享接地針腳，有自己的電源針腳，並有三個額外針腳（SA0-2）來標識該槽，用於將 EEPROM 分配到 0x50-0x57 範圍內的唯一位址。通信線路不僅可以在 8 個記憶體模組之間共享，同一 SMBus 通常也用於主機板上的系統健康監視任務，例如讀取電源電壓、CPU 溫度和風扇速度。

（如果沒有防寫，SPD EEPROMs 也回應 I²C 位址 0x30–0x37。一個擴充使用 0x18–0x1F 位址存取可選的晶片上溫度感測器。）

SDR SDRAM

第一個 SPD 規範由 JEDEC 發布，並由英特爾加強，作為其 PC100 記憶體規範的一部分。指定的大多數值為二進碼十進數形式。最重要的半位元組可以包含 10 到 15 個值，並在某些情況下可以擴充到更高。在這種情況下， 1、2、3 的編碼用於編碼 16,17 和 18。最高的 0 的半位元組被保留表示為「未定義」。

SPD ROM 定義了最多三個 DRAM 時序，在位元組 18 中用設定位指定了三個 CAS 延遲。首先是最高的 CAS 延遲（最快時鐘），然後是兩個降低時鐘速度的較低的 CAS 延遲。

DDR2 SDRAM

DDR2 SPD 標準做了一些修改，但大致同上。一個顯著變化是刪除混亂且很少使用的有兩個不同大小 Rank 的 DIMM 支援。

時間周期欄位（位元組 9、23、25 和 49）以二進碼十進數（BCD）編碼，一些額外編碼以十分位定義，以正確表示一些常見時序：

DDR3 SDRAM

DDR3 SDRAM 標準大幅修繕，簡化了 SPD 內容布局。取代多個 BCD 編碼的奈秒欄位，一些「時基」單元被規定為高精度，並且各種時序參數被編碼為基本單元的倍數。此外，根據 CAS 延遲指定不同時序的做法已被刪除，現在只有一組時序參數。

修訂 1.1 使一些參數列示為「中等時基」值加上（帶符號，-128 +127）「精細時基」校正。通常來說，中等時基為 1/8 ns（125 ps），精細時基為 1、2,5 或 5 ps。為了與缺少校正的早期版本相容，中等時間基數通常向上取整，並且校正為負。以這種方式工作的值為：

模組的儲存容量可以從位元組 4、7 和 8 計算。模組寬度（位元組 8）除以每個晶片的位數（位元組 7）得出每個 rank 的晶片數量。然後可以乘以每個晶片的容量（位元組 4）和模組上晶片的 Rank 數量（通常為 1 或 2，從位元組 7）。

DDR4 SDRAM



擴充

JEDEC 標準僅規定了部分 SPD 位元組。真正關鍵的資料放在了前 64 個位元組，而其餘部分則由製造商標定。然而，通常提供的 EEPROM 為 256 位元組。剩餘空間目前已有一些用途。

增強效能組態（EPP）

記憶體通常在 SPD ROM 中附有保守的時序建議，以確保在所有系統上基本功能執行正常。愛好者通常會花費很多時間來手動調整記憶體時序以提高速度。

增強效能設定檔是一項 SPD 擴充，由 Nvidia 和 Corsair 開發，其中包含使 DDR2 SDRAM 以更高效能執行的額外訊息，例如 JEDEC SPD 規範中不包括的供電電壓和命令時序訊息。EPP 訊息儲存在同一個 EEPROM 中，不過位元組在 99-127，屬於 DDR2 SPD 標準中的未使用區域。

這些參數專為 nForce 5、nForce 6 和 nForce 7 晶片組上的記憶體控制器設計。Nvidia 鼓勵在 BIOS 為其高端主機板晶片組支援 EPP。此能旨在提供「一鍵超頻」，以最小的努力取得更佳效能。

Nvidia 為效能和穩定性得到認證的 EPP 記憶體提供的名稱是「SLI-Ready 記憶體」。術語「SLI-Ready 記憶體」引起了一些混亂，因為這與 NVIDIA SLI 無關。使用者可以使用單個影片卡（哪怕非 Nvidia 卡）搭配 EPP/SLI 記憶體，也可以在沒有 EPP/SLI 記憶體的情況下執行多卡 SLI 影片組態。

其擴充版本 EPP 2.0 則支援 DDR3 記憶體。

Extreme Memory Profile（XMP）

與之類似的是，英特爾為 DDR3 SDRAM DIMM 開發了一個 JEDEC SPD 擴充。它使用 JEDEC 未分配的位元組 176-255 來編碼更高效能的記憶體時序。中文也稱「擴充記憶體組態」
頭部包含下列資料。其中最重要的是「中等時基」值 MTB，它是一個合理的奈秒（常用值為 1/8、1/12 和 1/16 奈秒）。之後的許多時序值都以整數個 MTB 單位表示。

頭部還包括該設定檔旨在支援的每個記憶體通道的 DIMM 數量；更多的 DIMM 可能無法正常工作。

AMD 也開發了一個 SPD 擴充集名為 AMP，功用與 XMP 一樣。

供應商指定記憶體

一種常見的濫用是將訊息寫入某些記憶體區域，以將特定供應商的記憶體模組繫結到特定系統。已知富士通技術解決方案有這樣做。向系統添加不同的記憶體模組通常會導致拒絕執行或其他反制措施（例如每次啟動時需按 F1）。

```
02 0E 00 01-00 00 00 EF-02 03 19 4D-BC 47 C3 46 ...........M.G.F
53 43 00 04-EF 4F 8D 1F-00 01 70 00-01 03 C1 CF SC...O....p.....
```
這是一個美光科技 512 MB 記憶體模組的輸出，它的品牌是富士通西門子，注意「FSC」字串。該系統 BIOS 拒絕從偏移 128h 開始沒有此訊息的記憶體模組。



讀取和寫入 SPD 訊息

記憶體模組製造商會將 SPD 訊息寫入模組上的 EEPROM。主機板 BIOS 則讀取 SPD 訊息來組態記憶體控制器。在大多數（但不是所有）主機板晶片組中，存在多個能讀取和修改 SPD 訊息的程式。


* dmidecode（頁面存檔備份，存於網際網路檔案館）程式可以解碼記憶體（及其他）有關訊息，可以在 Linux、FreeBSD、NetBSD、OpenBSD、BeOS、Cygwin 和 Solaris 上執行。dmidecode 不直接存取 SPD 訊息；它會報告有關記憶體的 BIOS 資料。此訊息可能受限或不正確。

* 在 Linux 系統上，使用者空間程式 decode-dimms 可以以 i2c-tools 解碼和印出電腦中任何有 SPD 訊息的記憶體訊息。它需要核心中支援 SMBus 控制器、EEPROM 核心驅動，並且 SPD EEPROM 已連接到 SMBus。在舊的 Linux 發行版上，decode-dimms.pl 作為 lm\_sensors 的一部分可用。

* OpenBSD 自 4.3 版本起包含驅動程式 spdmem (4) 來提供有關記憶體模組的訊息。該驅動程式從 NetBSD 移植（自 5.0 版本可用）。

* Coreboot 讀取和使用 SPD 訊息來初始電腦中的所有記憶體控制器的時序、大小及其他屬性。

* Windows 上使用如 HWiNFO32、CPU-Z 或 Speccy 軟體可以讀取和顯示 SPD 中的 DRAM 模組訊息。

使用 eeprom 編程器硬體和軟體直接存取記憶體的 EEPROM，可以直接讀寫 SPD 訊息，而無需關心晶片組。

對於舊筆記型電腦來說，一種不太常見的用法是通用的 SMBus 讀取器，因為 BIOS 可以在讀取後禁用模組上的內部 EEPROM，因此匯流排基本上可以使用。所用方法是將 A0、A1 線拉低，使記憶體關閉，從而允許外部裝置存取 SMBus。完成此操作後，客製化的 Linux 版本或 DOS 應用程式就可以存取外部裝置。這樣做的一個常見目的是從 LCD 面板的記憶體晶片中恢復資料，將通用面板改裝為筆記型電腦專用。



在舊裝置

部分較舊的裝置必需使用具有平行存在檢測（常稱為簡單存在檢測，或縮寫 PD）的 SIMM。這些裝置中部分使用非標準的 PD 編碼，尤其是如 IBM 電腦、惠普 LaserJet，及其他一些印表機。



參見


* 感測器電子資料表



參考資料



外部連結


* Serial Presence Detect Standard, General Standard

* SPD Rev1.0 for DDR SDRAM（頁面存檔備份，存於網際網路檔案館）

* SPD Rev1.2 for DDR2 SDRAM（頁面存檔備份，存於網際網路檔案館）

* SPD Rev1.3 for DDR2 SDRAM

* SPECIALITY DDR2-1066 SDRAM（頁面存檔備份，存於網際網路檔案館）

* Linux 軟體套件 i2c-tools

* Instructions on how to use lm-sensors or i2c-tools to read the data

* Memory Performance: 16GB DDR3-1333 to DDR3-2400 on Ivy Bridge IGP with G.Skill（頁面存檔備份，存於網際網路檔案館） – explanation of various timing values