串行存在检测(英語:,缩写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
一个SDRAM模块,包含SPD数据(红圈)。
第一个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)。
扩展
JEDEC标准仅规定了部分SPD字节。真正关键的数据放在了前64个字节,而其余部分则由制造商标定。然而,通常提供的EEPROM为