5.10.2006 Někteří z vás mají ještě živé vzpomínky na to, jak se dal snadno zadrátovat procesor intel Celeron/Pentium III Tualatin, aby i přes mírné odlišnosti ve specifikaci pracoval ve stávajících základních deskách (nejčastěji s oblíbeným iBX440 chipsetem). Historie se opakuje a intel nám přichystal podobné 'příjemné' překvapení u nového procesoru Core 2 Duo. Ten je určen do téhož Socketu 775 LGA jako novější z řady procesorů Pentium 4. Intel ale usoudil, že by bylo dobré trochu zvýšit prodej nových desek a chipsetů a tak lehce pozměnil pin-out nového Core 2 Duo, aby ve stávajících deskách nefungoval. Odůvodnil to pak potřebou nového VRM regulátoru s jemnějším krokem napětí (opravdu má smysl u spínaného zdroje řešit setiny Voltu?). Někde se mylně uvádí, že Core 2 Duo není kompatabilní se staršími chipsety, ale např. deska ASRock ConRoe 865PE je jasným důkazem, že si C2D rozumí i se starším chipsetem i865 (celkem dobrá a levná alternativa s AGP). Pravda, bylo potřeba menšího boostu napětí chipsetu, aby utáhl spolehlivě FSB 1066 MHz, takže na taktování to už moc není.
Zajímalo mě tedy, jak moc se zapojení padů nového C2D změnilo a tak jsem si stáhl datasheety a porovnal. Na obrázku níže je rozložení padů C2D na spodku pouzdra. Červeně jsem označil pady, jejichž význam se změnil a pokládám je za kritický pro správnou funkci, zeleně jsou pak označeny změny, kterým nepřikládám takovou váhu a šedě jsou označeny prázdná místa bez padů. V tabulce je pak krátký popis signálů, kterých se změna týká.
pad typ P4 Core2 popis D23 PWR FC9 VCCPLL napájení PLL: 1,5V / 130 mA AM5 OUT FC11 VID6 výběr napájecího napětí jádra Vcore AM7 OUT FC12 VID7 výběr napájecího napětí jádra Vcore AN7 OUT FC16 VID_SELECT výběr VID tabulky P4/Core2, vnitřní pull-up H29 OUT GTLREF_SEL FC15 výběr referenční úrovně GTL pro chipset (log. 0 na P4) H2 IN FC6 GTLREF1 referenční úroveň log. 1 pro GTL+ vstupy (spolu s GTLREF0) AM6 IN VTTPWRGD FC40 úroveň H oznamuje procesoru stabilní úroveň napájení Vtt G2 ANL FC1 COMP2 připojen na Vss přes přesný odpor 50 R R1 ANL FC2 COMP3 připojen na Vss přes přesný odpor 50 R B13 ANL FC19 COMP8 připojen na Vss přes přesný odpor 25 R AL3 IN VSS VRDSEL detekce podpory Core2 - pokud je 0, procesor nepracuje Y1 IN BOOTSELECT FC0 detekce podpory P4 - pokud je 0, procesor nepracuje J16 I/O DP0# FC31 parita pro datové linky D63:0 H15 I/O DP1# FC32 parita pro datové linky D63:0 H16 I/O DP2# FC33 parita pro datové linky D63:0 J17 I/O DP3# FC34 parita pro datové linky D63:0 U2 I/O AP0# FC29 parita pro adresové linky A35:0 U3 I/O AP1# FC30 parita pro adresové linky A35:0 H4 IN RSP# FC35 odpověď na paritu linek RS2:0 AB3 I/O MCERR# FC37 "Machine Check Error" - nezotavitelná chyba, generuje chipset nebo CPU AD3 I/O BINIT# FC36 signál inicializace sběrnice, generuje chipset nebo CPU G5 I/O FC7 PECI proprietární 1-drátová sběrnice (přenos údajů z on-chip senzoru teploty - DTS) V2 OUT LL_ID0 RSVD "LoadLine Slope" (log. 0 na P4) AA2 OUT LL_ID1 FC39 "LoadLine Slope" (log. 0 na P4) A24 PWR VSS FC23 zem E29 PWR VSS FC26 zem G1 PWR VSS FC27 zem U1 PWR VSS FC28 zem C9 - RSVD FC38 rezervovaný E24 - RSVD FC10 rezervovaný G10 - RSVD FC38 rezervovaný FCx - open drain výstupy pro kompatabilitu s jinými CPU
Jak je vidět, změn je o něco více než v případě Tualatinu. Napájení jádra procesoru obstarává na základní desce obvod VRM (Voltage Regulator Module), což je zde pulsní vícefázový můstkový step-down měnič. Jeho výstupní napětí je programovatelné v určitém rozsahu pomocí logických vstupů VID. Procesor kombinací 0/1 na svých výstupních VID padech říká VRM, jaké napětí od něj požaduje (do toho se ještě může vložit další obvod, který požadavek CPU přebije dle vašeho nastavení v SETUPu). U Pentia 4 a C2D se navíc toto napětí může dynamicky měnit v závislosti na pracovní frekvenci (technologie Enhanced Intel Speedstep - EIST). Při zapnutí počítače nastaví procesor nějakou výchozí hodnotu napětí, která je individuálně nastavená od výrobce a nemusí být nutně stejná pro stejný typ CPU.
U Pentia 4 sloužilo k nastavování napětí 6 padů VID[5:0]. To umožňovalo celkem 64 různých kombinací v rozsahu 0,8375 - 1,6000 V. U C2D přibyly další 2 pady, tedy celkem 8 VID[7:0], což by umožňovalo až 256 kombinací. Intelu se to zdálo asi trochu moc a tak u C2D omezili výběr na 6 padů VID[6:1] a ty dva (VID7, VID0) si nechali do rezervy pro budoucí použití, u C2D jsou spojeny se zemí. Kombinace odpovídají rozsahu napětí 0,8500 - 1,6000 V. Tím, že se zrušil význam VID0 a zavedl VID6, nastal trochu chaos ve VID tabulce. Zde můžeme vidět, jaké skutečné napětí by na požadavek C2D nastavil VRM v základní desce určené pouze pro Pentium 4:
VID7:0 Vcore Vcore in P4-only mobo 0 111111 0 OFF 1,1000 0 111101 0 0,8500 1,2000 0 111100 0 0,8625 1,2500 0 111011 0 0,8750 1,3500 0 111010 0 0,8875 1,3500 0 111001 0 0,9000 1,4000 0 111000 0 0,9125 1,4500 0 110111 0 0,9250 1,5000 0 110110 0 0,9375 1,5500 0 110101 0 0,9500 1,6000 0 110100 0 0,9625 0,8750 0 110011 0 0,9750 0,9250 0 110010 0 0,9875 0,9750 0 110001 0 1,0000 1,0250 0 110000 0 1,0125 1,0750 0 101111 0 1,0250 1,1125 0 101110 0 1,0375 1,1625 0 101101 0 1,0500 1,2125 0 101100 0 1,0625 1,2625 0 101011 0 1,0750 1,3125 0 101010 0 1,0875 1,3625 0 101001 0 1,1000 1,4125 0 101000 0 1,1125 1,4625 0 100111 0 1,1250 1,5125 0 100110 0 1,1375 1,5625 0 100101 0 1,1500 0,8375 0 100100 0 1,1625 0,8875 0 100011 0 1,1750 0,9375 0 100010 0 1,1875 0,9875 0 100001 0 1,2000 1,0375 0 100000 0 1,2125 1,0875 0 011111 0 1,2250 1,1000 0 011110 0 1,2375 1,1500 0 011101 0 1,2500 1,2000 0 011100 0 1,2625 1,2500 0 011011 0 1,2750 1,3000 0 011010 0 1,2875 1,3500 0 011001 0 1,3000 1,4000 0 011000 0 1,3125 1,4500 0 010111 0 1,3250 1,5000 0 010110 0 1,3375 1,5500 0 010101 0 1,3500 1,6000 0 010100 0 1,3625 0,8750 0 010011 0 1,3750 0,9250 0 010010 0 1,3875 0,9750 0 010001 0 1,4000 1,0250 0 010000 0 1,4125 1,0750 0 001111 0 1,4250 1,1125 0 001110 0 1,4375 1,1625 0 001101 0 1,4500 1,2125 0 001100 0 1,4625 1,2625 0 001011 0 1,4750 1,3125 0 001010 0 1,4875 1,3625 0 001001 0 1,5000 1,4125 0 001000 0 1,5125 1,4625 0 000111 0 1,5250 1,5125 0 000110 0 1,5375 1,5625 0 000101 0 1,5500 0,8375 0 000100 0 1,5625 0,8875 0 000011 0 1,5750 0,9375 0 000010 0 1,5875 0,9875 0 000001 0 1,6000 1,0375 0 000000 0 OFF 1,0875
Po zapnutí PC bychom neměli žádnou kontrolu nad tím, jaké napětí do procesoru půjde, protože se defaultní VID může lišit i kus od kusu stejného typu. Takže základem úspěchu rozběhnutí C2D v desce pro Pentium 4 by bylo zadrátovat napětí natvrdo, asi nejsnáze na padech řídicího integrovaného obvodu VRM (tím samozřejmě přijdeme o výhody EIST).
Další nezbytností je dostat na pad VCCPLL (D23) napájení 1,5 V pro PLL, který násobí FSB na pracovní frekvenci jádra. Na pady GTLREF1 (H2) a GTLREF0 (H1) by se měly přivést referenční úrovně (vyrobené např. odporovým děličem) pro log. 1 a log. 0 vstupů GTL+. Logika GTL+ je přitom napájená z napětí Vtt = 1,20 V. Pady COMP2 (G2) a COMP3 (R1) je potřeba připojit přes přesné (1%) odpory 50 R a COMP8 (B13) přes 25 R na zem.
Pak je tu naschvál pad VRDSEL (AL3), který blokuje funkci při vložení C2D do nekompatabilní desky a je třeba ho zaizolovat proti zemi. Zajímavé je, že u C2D byly vynechány linky datové a adresové parity, které ale jak tak koukám, stejně nemají protějšky na běžných chipsetech 8xx/9xx, tak snad chybět nebudou. U C2D přibylo kromě snímací teplotní diody i digitální teplotní čidlo DTS, které komunikuje s chipsetem po jednodrátové sběrnici vyvedené na pad PECI (G5). To ale můžeme oželet, neboť hodnotu lze vyčíst z MSR registru. DTS čidlo snímá teplotu v místě nejvyššího zahřívání každého jádra a oproti teplotě z diody (kterou měří většina programů) se může lišit i o více jak 10°C! Teplotu z DTS umí přečíst např. program Core Temp. Ostatní změny se už týkají nevýznamných signálů, rezervovaných padů a zemí.
Uvedl jsem zde výčet rozdílů na které jsem přišel a nastínil postup "zadrátování" C2D do desky pro P4. Avšak narozdíl od Tualatinu pro Socket 370 zde vidím docela velký problém v praktické realizaci. Pady na LGA pouzdru a protilehlé pérové kontakty jsou zde od dost menší. Navíc patice pro procesor je SMD, takže se nelze na pady dostat z druhé strany. Pokud je spoj tažen vnitřní vrstvou PCB od procesoru k chipsetu bez jediného prokovu do vnější vrstvy, je nemožné ho přerušit a přepojit podle potřeby jinam. Jediná možnost by pak byla propojovat tenoučkým lakovaným drátkem přímo na spodku procesoru, ale taky to nevidím moc reálně. Pokud by se to přecejen podařilo, obával bych se zvýšené nestability vlivem přidaných parazitních indukčností a kapacit.
Já osobně jsem se těhle "drátovacích" choutek vzdal, neboť základní deska o které jsem uvažoval by na to byla příliš drahá (procesor taktéž) a výsledek příliš nejistý. Takže jsem se nakonec rozhodl pro levnější desku bez ISA slotu, ale s nativní podporou C2D Asus P5LD2. Později jsem taky objevil způsob, jak v soketu LGA775 snadno rozběhnout procesory LGA771.
7.4.2008 Pro zajímavost jsem zde doplnil popis tří padů BSEL2:0 (BSEL0 - pad B22, BSEL1 - pad B23, BSEL2 - pad C21), kterými procesor desce oznamuje, jaká je jeho defaultní frekvence FSB. Tyto signály jsou na desce nějakým způsobem propojeny s hodinovým generátorem PLL, který podle dané kombinace nastaví odpovídající frekvenci. V případě, že ochuzený BIOS neumožňuje FSB nastavit ručně, ale PLL to umí, lze pak snadno "zadrátovat" vlastní požadovanou BSEL kombinaci. Na netu je o tom pod heslem "BSEL mod" spousta informací a návodů. Na některých deskách to ale nemusí fungovat. Zkoušel jsem přelepením pinu BSEL1 na E8400 nastavit kombinaci 110b odpovídající 400MHz FSB na svojí desce GA-P31-DS3L, ale vůbec se to nerozjelo. Zkoušel jsem i další kombinace a nic.
BSEL2:0 FSB [MHz] FSB QDR [MHz] 000 266 1066 001 133 533 010 200 800 011 166 667 100 333 1333 101 n/a n/a 110 400 1600 111 n/a n/a