Кіріспе
Жад модулі туралы ақпаратқа автоматты түрде қол жеткізудің стандартталған тәсілі. Компьютерде, сериялық қатысуды анықтау (SPD) – жад модулі туралы ақпаратқа автоматты түрде қол жеткізудің стандартталған тәсілі. Алдыңғы 72 контактілі SIMM модулінде бес контакт болды, олар бес биттік параллель қатысуды анықтау (PPD) деректерін ұсынды, бірақ 168 контактілі DIMM стандарты көбірек ақпаратты кодтау үшін сериялық қатысуды анықтауға өзгертілді. Қалыпты заманауи компьютер қосылғанда, ол өзін-өзі тексеруден (POST) бастайды. Шамамен 1990 жылдардың ортасынан бері, бұл процеске қазіргі уақытта орнатылған аппаратты автоматты түрде конфигурациялау кіреді. SPD – компьютерге қандай жад орнатылғанын және жадқа қол жеткізу үшін қандай уақыт параметрлерін пайдалану керектігін білуге мүмкіндік беретін жадтық аппараттық мүмкіндік. Кейбір компьютерлер аппараттық өзгерістерге толық автоматты түрде бейімделеді. Көп жағдайда, BIOS параметрлерін қарау және өзгерту үшін арнайы қосымша процедура бар. Компьютердің жад SPD деректерін қалай пайдаланатынын бақылауға болады – параметрлерді таңдауға, жад уақытын таңдамалы түрде өзгертуге немесе SPD деректерін толығымен жоюға (оверклокингті қараңыз) болады.
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 more information. When an ordinary modern computer is turned on, it starts by doing a power on self test (POST). Since about the mid 1990s, this process includes automatically configuring the hardware currently present. SPD is a memory hardware feature that makes it possible for the computer to know what memory is present, and what memory timings to use to access the memory. Some computers adapt to hardware changes completely automatically. In most cases, there is a special optional procedure for accessing BIOS parameters, to view and potentially make changes in settings. It may be possible to control how the computer uses the memory SPD data—to choose settings, selectively modify memory timings, or possibly to completely override the SPD data (see overclocking).
Сақталған ақпарат
Жад модулі SPD-ні қолдау үшін, JEDEC стандарттары жад модуліне орналастырылған EEPROM-ның төменгі 128 байтында белгілі бір параметрлердің болуын талап етеді. Бұл байттарда модульдің уақыт параметрлері, өндірушісі, серийлік нөмірі және модуль туралы басқа да пайдалы ақпараттар бар. Жадты пайдаланатын құрылғылар осы ақпаратты оқып, модульдің негізгі параметрлерін автоматты түрде анықтайды. Мысалы, SDRAM модуліндегі SPD деректері CAS жалдамасы туралы ақпаратты ұсынуы мүмкін, соның арқасында жүйе оны пайдаланушының араласуынсыз дұрыс орната алады. SPD EEPROM жад-жазбасына I2C протоколының түрі SMBus арқылы қол жеткізіледі. Бұл модульдегі байланыс тіректерінің санын екіге дейін азайтады: сағат сигналы және дерек сигналы. EEPROM RAM-мен ортақ жер тіректеріне ие, өз қуат тірегі бар және слотты анықтау үшін үш қосымша тірегі бар (SA0–2), олар EEPROM-ге 0x50–0x57 диапазонындағы бірегей мекенжайды тағайындау үшін қолданылады. Байланыс желілері 8 жад модулі арасында ортақ пайдаланылады, сонымен қатар осы SMBus аналық платаларда жүйе денсаулығын бақылау міндеттері үшін жиі қолданылады, мысалы, қуат көзі кернеулерін, процессор температурасын және желдеткіш жылдамдықтарын оқу. SPD EEPROM-дер, егер олар жазудан қорғалмаған болса, I2C мекенжайларына 0x30–0x37 жауап береді, ал кеңейтім (TSE сериясы) чиптегі опционалды температура сенсорына қол жеткізу үшін 0x18–0x1F мекенжайларын пайдаланады. Бұл мәндердің барлығы жеті биттік I2C мекенжайлары болып табылады, олар SA0–2 бар құрылғы түрін анықтау коды (DTIC) префиксімен құрылған: 3-слоттан (1100) оқу үшін 110 0011 = 0x33 қолданылады. Соңғы R/W битімен ол 8 биттік құрылғыны таңдау кодын құрайды. Ескеріңіз, жазуды қорғау операциялары үшін слот ID семантикасы өзгеше: олар үшін SA тіректері арқылы мүлдем берілмеуі мүмкін. SPD-ден бұрын жад чиптері параллельдік болуды анықтау (PPD) арқылы анықталды. PPD әрбір ақпарат биті үшін жеке тіректі пайдаланды, бұл пиндер үшін шектеулі орын болғандықтан, жад модулінің жылдамдығы мен тығыздығын ғана сақтауға болатындығын білдіреді.
SDR SDRAM
SPD-нің алғашқы спецификациясы JEDEC тарапынан шығарылды және 1998 жылы Intel ұсынған PC100 жады спецификациясының аясында күшейтілді. Көрсетілген мәндердің көпшілігі екілік кодталған ондық сан түрінде берілген. Ең маңызды ниббл 10-нан 15-ке дейінгі мәндерді қамтуы мүмкін, ал кейбір жағдайларда одан да жоғары. Мұндай жағдайларда 1, 2 және 3 кодтары 16, 17 және 18 сандарын кодтау үшін пайдаланылады. 0-дің ең маңызды нибблі "белгісіз" деп белгілеу үшін резервтелген. SPD ROM, 18-байттағы биттермен көрсетілген үш CAS латенттілігі үшін DRAM уақыттарының үш мәнін анықтайды. Біріншісі – ең жоғары CAS латенттілігі (ең жылдам сағат), содан кейін прогрессивті түрде төмендейтін сағаттық жылдамдықтары бар екі төмен CAS латенттілігі. + SDR SDRAM үшін SPD мазмұны Байт Бит Түсіндірмелер (ондық) (он алтылық) 0 0x00 Қатысқан байттардың саны Әдетте 128 1 0x01 log2(SPD EEPROM көлемі) Әдетте 8 (256 байт) 2 0x02 Негізгі жад түрі (4: SPD SDRAM) 3 0x03 2-банктың қатарлық адресінің биттері (0–15) 1-банктың қатарлық адресінің биттері (1–15) 2-банк 1-банктан ерекшеленсе 0 болады 4 0x04 2-банктың бағандық адресінің биттері (0–15) 1-банктың бағандық адресінің биттері (1–15) 2-банк 1-банктан ерекшеленсе 0 болады 5 0x05 Модульдегі RAM банктерінің саны (1–255) Көбінесе 1 немесе 2 6 0x06 Модульдің дерек енінің төмен байты Көбінесе 64, ECC DIMM үшін 72 7 0x07 Модульдің дерек енінің жоғары байты 0, ені 256 биттен жоғары болмаса 8 0x08 Бұл жиналымның интерфейс кернеуі деңгейі (Vcc қуат кернеуімен бірдей емес) (0–4) Кестелік іздеу арқылы декодталады 9 0x09 Наносекундтар (0–15) Наносекундтардың оннан бірі (0.0–0.9) Ең жоғары CAS латенттілігіндегі сағат циклы уақыты 10 0x0a Наносекундтар (0–15) Наносекундтардың оннан бірі (0.0–0.9) SDRAM сағаттан қол жеткізу уақыты (tAC) 11 0x0b DIMM конфигурациясының түрі (0–2): ECC жоқ, паритет, ECC Кестелік іздеу 12 0x0c Өзін-өзі жаңалау периоды (0–5): 64, 256, 128, 32, 16, 8 кГц Жаңалау талаптары 13 0x0d 2-банк 2× 1-банктың негізгі SDRAM ені (1–127, әдетте 8) 1-банктың дерек SDRAM құрылғыларының ені. 2-банк бірдей енде болуы мүмкін немесе 7-бит орнатылған болса, 2× енде болуы мүмкін. 14 0x0e 2-банк 2× 1-банктың ECC SDRAM ені (0–127) 1-банктың ECC/паритет SDRAM құрылғыларының ені. 2-банк бірдей енде болуы мүмкін немесе 7-бит орнатылған болса, 2× енде болуы мүмкін. 15 0x0f Кездейсоқ бағандық оқылымдар үшін сағаттық кешігу Әдетте 1 16 0x10 Бет — — — — 8 4 2 1 Қолдау көрсетілетін импульс ұзындықтары (бит картасы) 17 0x11 SDRAM құрылғысына арналған банктер (1–255) Әдетте 2 немесе 4 18 0x12 — 7 6 5 4 3 2 1 Қолдау көрсетілетін латенттік уақыттар (бит картасы) 19 0x13 — 6 5 4 3 2 1 0 Қолдау көрсетілетін латенттік уақыттар (бит картасы) 20 0x14 — 6 5 4 3 2 1 0 Қолдау көрсетілетін латенттік уақыттар (бит картасы) 21 0x15 — Артық Диф. сағат Тіркелген деректер Буферлік деректер Картада PLL Тіркелген адресі. Буферлік адрестер Жады модулі мүмкіндіктерінің бит картасы 22 0x16 — — Жоғарғы Vcc (қуат кернеуі) толеранттылығы Төменгі Vcc (қуат кернеуі) толеранттылығы Жазу/1 оқу импульсі Барлық алдын ала жүктеу Автоматты алдын ала жүктеу Алдын ала жүктеу Жады чипі мүмкіндіктерін қолдау бит картасы 23 0x17 Наносекундтар (4–18) Наносекундтардың оннан бірі (0–9: 0.0–0.9) Орташа CAS латенттілігіндегі сағат циклы уақыты 24 0x18 Наносекундтар (4–18) Наносекундтардың оннан бірі (0–9: 0.0–0.9) Сағаттан деректерге қол жеткізу уақыты (tAC) 25 0x19 Наносекундтар (1–63) 0.25 нс (0–3: 0.00–0.75) Қысқа CAS латенттілігіндегі сағат циклы уақыты. 26 0x1a Наносекундтар (1–63) 0.25 нс (0–3: 0.00–0.75) Сағаттан деректерге қол жеткізу уақыты (tAC) 27 0x1b Наносекундтар (1–255) Минималды қатардың алдын ала жүктелу уақыты (tRP) 28 0x1c Наносекундтар (1–255) Минималды қатардың белсенді-қатардың белсенді кешігуі (tRRD) 29 0x1d Наносекундтар (1–255) Минималды кешігу уақыты (tRCD) 30 0x1e Наносекундтар (1–255) Минималды белсенділік алдын ала жүктелу уақыты (tRAS) 31 0x1f 512 МиБ 256 МиБ 128 МиБ 64 МиБ 32 МиБ 16 МиБ 8 МиБ 4 МиБ Модуль банкінің тығыздығы (бит картасы). Әртүрлі өлшемдегі банктер болса, екі бит орнатылады. 32 0x20 Белгі (1: −) Наносекундтар (0–7) Наносекундтардың оннан бірі (0–9: 0.0–0.9) Сағаттан адрес/команданы орнату уақыты 33 0x21 Белгі (1: −) Наносекундтар (0–7) Наносекундтардың оннан бірі (0–9: 0.0–0.9) Сағаттан кейін адрес/команданы ұстау уақыты 34 0x22 Белгі (1: −) Наносекундтар (0–7) Наносекундтардың оннан бірі (0–9: 0.0–0.9) Сағаттан деректерді енгізу уақыты 35 0x23 Белгі (1: −) Наносекундтар (0–7) Наносекундтардың оннан бірі (0–9: 0.0–0.9) Сағаттан кейін деректерді ұстау уақыты 36–61 0x24–0x3d colspan=8 Болашақтағы стандарттау үшін 62 0x3e Басты нұсқау (0–9) Кіші нұсқау (0–9) SPD нұсқау деңгейі; мысалы, 1.2 63 0x3f Тексеру сомасы 0–62 байттардың қосындысы, содан кейін теріс емес 64–71 0x40–0x47 Өндірушінің JEDEC идентификаторы. Кішкентай эндианмен сақталады, соңы нөлмен толтырылады 72 0x48 Модульдің өндіріс орны Вендорға арналған код 73–90 0x49–0x5a Модульдің бөлік нөмірі ASCII, кеңістікпен толтырылады 91–92 0x5b–0x5c Модульді қайта қарау коды Вендорға арналған код 93 0x5d Онжылдықтар (0–9: 0–90) Жылдар (0–9) Өндіріс күні (ЖЖАА) 94 0x5e Он апта (0–5: 0–50) Апталар (0–9) 95–98 0x5f–0x62 Модульдің сериялық нөмірі Вендорға арналған код 99–125 0x63–0x7f Өндірушіге арналған нақты деректер Өнімділікті жақсарту мүмкін 126 0x7e 0x66 66 МГц үшін, 0x64 100 МГц үшін Intel жиілігі қолдауы 127 0x7f CLK0 CLK1 CLK3 CLK3 90/100 °C CL3 CL2 Бірнеше Intel мүмкіндіктерінің бит картасы
Ұзартулар
JEDEC стандарты SPD байттарының тек бір бөлігін ғана анықтайды. Нағыз маңызды деректердің бәрі алғашқы 64 байтқа сыяды, ал қалған бөлігі өндірушіні анықтау үшін арналған. Дегенмен, көбінесе 256 байттық EEPROM орнатылады. Қалған орын түрлі мақсаттар үшін қолданылып келеді.
Өндірушіге тән жады
Көп кездесетін қателік – белгілі бір жүйеге нақты өндірушінің жад модульдерін байланыстыру үшін белгілі бір жад аймақтарына ақпарат жазу. Fujitsu Technology Solutions осылай істейтіні белгілі. Жүйеге басқа жад модулін қосу көбінесе бас тартуға немесе басқа да қарсы шараларға (мысалы, әр қосылғанда 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 Бұл Micron Technologies компаниясының Fujitsu Siemens Computers брендімен шығарылған 512 МБ жад модулінің нәтижесі, "FSC" жолын назар аударыңыз. Жүйелік BIOS 128h смещениесінен бастап осы ақпарат жоқ жад модульдерін қабылдамайды. Кейбір Packard Bell AMD ноутбуктері де осы әдісті қолданады, мұндай жағдайда белгілері әртүрлі болуы мүмкін, бірақ бұл дыбыстық сигналдың орнына жыпылықтайтын курсорға әкелуі мүмкін. Айтқанда, бұл BIOS-тың зақымдануының да белгісі болуы мүмкін. 2 ГБ жадты 4 ГБ-қа жаңарту да мәселе тудыруы мүмкін.
53 43 00 04 EF 4F 8D 1F 00 01 70 00 01 03 C1 CF SC O p
This is the output of a 512 MB memory module from Micron Technologies, branded for Fujitsu Siemens Computers, note the "FSC" string. The system BIOS rejects memory modules that don't have this information starting at offset 128h. Some Packard Bell AMD laptops also use this method, in this case the symptoms can vary but it can lead to a flashing cursor rather than a beep pattern. Incidentally this can also be a symptom of BIOS corruption as well. Though upgrading a 2 GB to a 4 GB can also lead to issues.
БЖД-ға ақпаратты оқу және жазу
Жад модулін өндірушілер SPD ақпаратын модульдегі EEPROM-ға жазады. Аналық платаның BIOS-тары жад контроллерін конфигурациялау үшін SPD ақпаратын оқиды. SPD ақпаратын көбінесе, бірақ барлық негізгі платалар чипсеттерінде оқитын және өзгерте алатын бірнеше бағдарламалар бар. dmidecode – жад туралы ақпаратты (және басқа да нәрселерді) декодтай алатын және Linux, FreeBSD, NetBSD, OpenBSD, BeOS, Cygwin және Solaris жүйелерінде жұмыс істейтін бағдарлама. dmidecode SPD ақпаратына тікелей қол жеткізбейді; ол жад туралы SMBIOS деректерін көрсетеді. Бұл ақпарат шектеулі немесе дұрыс болмауы мүмкін. Linux және FreeBSD жүйелерінде i2c құралдарымен қамтамасыз етілген decode dimms пайдаланушы кеңістігіндегі бағдарламасы компьютердегі SPD ақпараты бар кез келген жадтың ақпаратын декодтайды және шығарады. Ол ядродағы SMBus контроллерінің қолдауын, EEPROM ядролық драйверін, сондай-ақ SPD EEPROM-дерінің SMBus-қа қосылуын қажет етеді. Ескі Linux дистрибутивтерінде decode dimms.pl lm-sensors құрамына кіретін. OpenBSD 4.3 нұсқасынан бастап жад модульдері туралы ақпарат беру үшін spdmem(4) драйверін қосты. Драйвер NetBSD-ден алынған, ол 5.0 нұсқасынан бастап қолжетімді. Coreboot компьютердегі барлық жад контроллерлерін уақыт, көлем және басқа да қасиеттерімен инициализациялау үшін SPD ақпаратын оқиды және пайдаланады. Windows жүйелері HWiNFO, CPU-Z және Speccy сияқты бағдарламаларды қолданады, олар SPD-ден DRAM модулі туралы ақпаратты оқиды және көрсетеді. Чипсетке тәуелсіз SPD ақпаратын оқу және жазу EEPROM-ға тікелей eeprom программалық және аппараттық құралдары арқылы жүзеге асырылады. Ескі ноутбуктерді сирек қолданылатын мақсатта – жалпы SMBus оқырмандары ретінде пайдалануға болады, себебі BIOS оқығаннан кейін модульдегі ішкі EEPROM-ды өшіруге болады, сондықтан шина негізінен қолдануға болады. Қолданылатын әдіс – ішкі жадты өшіру үшін A0, A1 желілерін төмендету, сыртқы құрылғыға SMBus-қа кіруге мүмкіндік беру. Бұл орындалғаннан кейін, бейімделген Linux жинағы немесе DOS қолданбасы сыртқы құрылғыға кіре алады. Көптеген ноутбуктермен бірге келетін веб-камералардағы чипті қайта жазу да кең таралған, себебі шина жылдамдығы айтарлықтай жоғары және тіпті 25x үйлесімді чиптерді чип бұзылған жағдайда UEFI-ді кейіннен клондау үшін оқуға болады. Өкінішке орай, бұл DDR3 және одан төмен нұсқаларында ғана жұмыс істейді, себебі DDR4 басқа қауіпсіздік шараларын қолданады және көбінесе тек оқуға болады. SPDTool немесе ұқсас құралдарды қолданып, WP желісі бос чиппен ауыстыруға болады, сонда оны орнында өзгертуге болады. Кейбір чипсеттерде "SMBus драйвері үйлесімсіз?" деген хабарлама пайда болуы мүмкін, сондықтан оқуға да рұқсат берілмейді.
RGB LED басқаруы
Кейбір жад модульдері (әсіресе ойындық компьютерлерде) меншікті SMBus командалары арқылы басқарылатын RGB LED-терін қолдайды. Бұл қосымша жалғағыштар мен кабельдерді қажет етпестен LED түстерін басқаруға мүмкіндік береді. 2020 жылы ғана жарықтарды басқаруға қажетті бірнеше өндірушінің ядролық драйверлері, толық ядролық жадқа қол жеткізуден бастап, MSR және I/O порттарын басқаруға дейін, көптеген реттерде бұзылып, қол жеткізуге мүмкіндік берді.
Ескірген жабдықтар
Кейбір ескі жабдықтар SIMM-дерді параллельді анықтау мүмкіндігімен (көбінесе жай ғана анықтау немесе PD деп аталады) пайдалануды қажет етеді. Атап айтқанда, IBM компьютерлері мен Hewlett Packard LaserJet және басқа да принтерлерде стандартты емес PD кодтамасы қолданылады.