串行存在检测

title: 存储的信息.
content: 对于支持SPD的内存模块,JEDEC标准要求在内存模块的一个EEPROM上的低128字节中存有特定参数。这些字节包括模块相关的时序参数、制造商、序列号及其他实用信息。利用内存的设备可以读取该信息来自动确定模块的关键参数。例如,SDRAM模块上的SPD数据可能提供有关CAS潜伏时间的信息,使系统可以自动配置而无需用户干预。  SPD EEPROM采用SMBus访问,这是I2C协议的一个变种。这将模块上的通信引脚数量减少到两个:时钟信号和数据信号。EEPROM与RAM共享接地引脚,有自己的电源引脚,并有三个额外引脚(SA0-2)来标识该槽,用于将EEPROM分配到0x50-0x57范围内的唯一地址。通信线路不仅可以在8个内存模块之间共享,同一SMBus通常也用于主板上的系统健康监控任务,例如读取电源电压、CPU温度和风扇速度。  (如果没有写保护,SPD EEPROMs也响应I2C地址0x30–0x37。一个扩展使用0x18–0x1F地址访问可选的芯片上温度传感器。)
title: SDR SDRAM.
content: 第一个SPD规范由JEDEC发布,并由英特尔加强,作为其PC100内存规范的一部分。指定的大多数值为二进码十进数形式。最重要的半字节可以包含10到15个值,并在某些情况下可以扩展到更高。在这种情况下, 1、2、3的编码用于编码16,17和18。最高的0的半字节被保留表示为“未定义”。  SPD ROM定义了最多三个DRAM时序,在字节18中用设置位指定了三个CAS延迟。首先是最高的CAS延迟(最快时钟),然后是两个降低时钟速度的较低的CAS延迟。
title: DDR2 SDRAM.
content: DDR2 SPD标准做了一些修改,但大致同上。一个显着变化是删除混乱且很少使用的有两个不同大小Rank的DIMM支持。  时间周期字段(字节9、23、25和49)以二进码十进数(BCD)编码,一些额外编码以十分位定义,以正确表示一些常见时序:
title: DDR3 SDRAM.
content: 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)。
title: 扩展.
content: JEDEC标准仅规定了部分SPD字节。真正关键的数据放在了前64个字节,而其余部分则由制造商标定。然而,通常提供的EEPROM为256字节。剩余空间目前已有一些用途。
title: 增强性能配置(EPP).
content: 内存通常在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内存。
title: Extreme Memory Profile(XMP).
content: 与之类似的是,英特尔为DDR3 SDRAM DIMM开发了一个JEDEC SPD扩展。它使用JEDEC未分配的字节176-255来编码更高性能的内存时序。中文也称“扩展内存配置” 头部包含下列数据。其中最重要的是“中等时基”值MTB,它是一个合理的纳秒(常用值为1/8、1/12和1/16 纳秒)。之后的许多时序值都以整数个MTB单位表示。  头部还包括该配置文件旨在支持的每个内存通道的DIMM数量;更多的DIMM可能无法正常工作。  AMD也开发了一个SPD扩充集名为AMP,功用与XMP一样。
title: 供应商指定内存.
content: 一种常见的滥用是将信息写入某些内存区域,以将特定供应商的内存模块绑定到特定系统。已知富士通技术解决方案有这样做。向系统添加不同的内存模块通常会导致拒绝运行或其他反制措施(例如每次启动时需按F1)。这是一个美光科技512 MB内存模块的输出,它的品牌是富士通西门子,注意“FSC”字符串。该系统BIOS拒绝从偏移128h开始没有此信息的内存模块。
title: 读取和写入SPD信息.
content: 内存模块制造商会将SPD信息写入模块上的EEPROM。主板BIOS则读取SPD信息来配置内存控制器。在大多数(但不是所有)主板芯片组中,存在多个能读取和修改SPD信息的程序。  使用eeprom编程器硬件和软件直接访问内存的EEPROM,可以直接读写SPD信息,而无需关心芯片组。  对于旧笔记本电脑来说,一种不太常见的用法是通用的SMBus读取器,因为BIOS可以在读取后禁用模块上的内部EEPROM,因此总线基本上可以使用。所用方法是将A0、A1线拉低,使内部存储器关闭,从而允许外部设备访问SMBus。完成此操作后,定制的Linux版本或DOS应用程序就可以访问外部设备。这样做的一个常见目的是从LCD面板的内存芯片中恢复数据,将通用面板改装为笔记本电脑专用。
title: 在旧设备.
content: 部分较旧的设备必需使用具有并行存在检测(常称为简单存在检测,或缩写PD)的SIMM。这些设备中部分使用非标准的PD编码,尤其是如IBM计算机、惠普LaserJet,及其他一些打印机。

Summary: 串行存在检测(英语:serial presence detect,缩写SPD)是一种访问内存模块有关信息的标准化方式。 早期的72针SIMM包括五个引脚,提供5比特并行存在检测(PPD)数据,而168针DIMM标准更改为串行存在检测,以编码更多信息。

Serial presence detect: In computing, serial presence detect (SPD) is a standardized way to automatically access information about a memory module. Earlier 72-pin SIMMs included five pins that provided five bits of "parallel presence detect" (PPD) data, but the 168-pin DIMM standard changed to a serial presence detect to encode much more information.