Gigabyte GA-P31-DS3L support

      20.3.2008 Když jsem před čtyřmi měsíci objednával ze zahraničí desku Commell P4LA, očekával jsem, že získám ideální MB, se kterým vydržím hodně dlouho. Bohužel tato deska nesplnila moje očekávání. Zásadní problém je nefunkční ISA DMA a tím pádem nepoužitelný ISA slot, kvůli kterému jsem ji kupoval. To je dáno použitým chipsetem ICH7 (týká se všech desek s ICH6 a novější), který už nemá potřebné DMA linky pro korektní připojení PCI2ISA bridge. Dalším neduhem je absence DMA u CF slotu, kde se pak karta plouží ve šnečím PIO módu. Jako jediné plus tak zůstává velký počet sériových portů, které ale nejsou nenahraditelné. Navíc BIOS P4LA neumožňuje žádné rozšířené nastavení CPU, sběrnic a pamětí a také díky bídné podpoře ze strany výrobce je tak zazděna cesta k budoucímu upgrade na CPU se 1333MHz FSB a rychlejší paměti jak 667 MHz (ani nelze nastavit potřebnou voltáž VDIMM).
      Došel jsem tedy k závěru, že bude lepší se poohlédnout jinde. Aby s upgradem bylo co nejméně SW problémů, rozhodl jsem se pro nový chipset intel P31, který je v podstatě jen vylepšená 945-tka spolupracující s ICH7, jenž nabízí 1 nativní IDE kanál. Při prohlížení webshop katalogů mi padla do oka deska GA-P31-DS3L od Gigabyte. Je to vcelku jednoduchá deska bez zbytečností, ale má vše co potřebuju - COM, LPT, IDE, podporu nových 45nm CPU, FSB 1333 MHz, DDR2 1066 MHz, dostatek klasických PCI slotů, bohaté O'C nastavení v BIOSu a navíc za lidovou cenu. Díky podpoře novější sběrnice PCI-E 1.1 by neměl být problém s kompatabilitou novějších grafických karet PCI-E 2.0 a 3.0. To je problém u starších chipsetů intel 915 - 945, ty mají pouze PCI-E 1.0a, která není s PCI-E 2.x a 3.x kompatabilní.

Přehled parametrů:

CPU: LGA775 - Pentium 4, Pentium D, Core 2 Duo/Quad
CPU regulátor:  VRM 11 ISL6312 (0,5 - 2,0 V; 4-fázový)
Chipset: intel P31, 82801GB (ICH7), ITE IT8718F
PLL: ICS 9LPRS587EGLF
HW monitor: součást ITE IT8718F na LPC (napětí, PWM/otáčky, teploty)
FSB: 100-700 MHz, overvoltage až +0,3 V
PCI Express: 90-150 MHz, divider: FSB/2,00 - FSB/3,33, overvoltage až +0,3 V
Paměť: 4x DIMM 256-2048 MB DDR/DDR2 1066/800/667/533/400 (2,0x - 4,0x)
unbuffered, bez ECC (celkem max. 4096 MB), 1,8 - 2,5 V
Sběrnice: 1 x PCI Express x16 1.1
3 x PCI Express x1 1.1
3 x PCI 2.3
Síťovka: Realtek RTL8111B 10/100/1000 Mbit Ethernet,
RJ45, network BootROM
Audio: Realtek ALC888 7.1-kanálové High-Definition Audio
Konektory: 1 x IDE/ATAPI Ultra DMA 100 (ICH7)
4 x SATA 2.0 (ICH7)
1 x 1,44/2,88MB disketová jednotka
1 x SPP/ECP/EPP paralelní port
1 x sériový port RS232
1 x PS/2 myší port
1 x PS/2 klávesnicový port
8 x USB 2.0 port (4 na panelu, 4 na desce)
1 x koaxiální S/PDIF + 3x audio jack
4 x ventilátor (2 s PWM regulací) s měřením otáček
1 x ATX 24-pin (zdroj stačí 20-pin) + ATX 12 V aux 4-pin (nutný)
BIOS: Phoenix/Award PnP BIOS 6.00PG
ACPI 1.0b, SMBIOS 2.3, DMI 2.0, PnP BIOS 1.0a
podpora USB legacy pro Mass Storage zařízení
512 kB sériová SPI FlashROM Winbond 25X40VSIG 3,3 V
plynulé nastavení FSB a PCI-E po 1 MHz, overvoltage, časování DRAM
Formát: plný ATX 305 x 210 mm

Gigabyte GA-P31-DS3L photo


BIOSy

typ datum popis velikost
EXE 30.7.2008 Nejnovější oficiální BIOS F10a beta 438 kB

      Nakonec jsem neodolal tuto desku nekoupit, alespoň na zkoušku :). Když už jsem byl v tom, rozhodl jsem se i pro upgrade pamětí, aktuální ceny jsou docela příznivé. Vybral jsem dualchannel kit od Corsairu 2*1024MB DDR II 800 MHz Twin2X2048-6400C4 4-4-4-12, 2,1 V. Vím, že CL časování na platformě intel není moc kritické, ale když byly ty CL4 ještě asi o 25,- kaček levnější jak stejné CL5, tak proč je nevzít :) Alespoň to dává vyšší potenciál k taktování. V současnosti mi bez problémů běží na 900 MHz DDR při 2,0 V s CL5 časováním. Paměti pro 1066 MHz DDR byly přece jen už o dost dražší. Mimo jiné výrobce u této desky (chipsetu) upozorňuje na problémy se stabilitou, pokud by byly obsazeny oba DIMM sloty v jednom kanálu oboustrannými moduly (zřejmě vyšší kapacitní zátěž sběrnice).
      S montáží desky nebyl žádný vážnější problém, neb se jedná o klasický ATX rozměr (deska P4LA byla o něco širší a musel jsem kvůli tomu řezat šuplík na HDD). Jediné, co musím zkritizovat, je naprosto debilní umístění konektoru IDE a disketovky, které by se krásně vešly podél kraje desky vedle napájecího ATX konektoru. Jakoby snad ten layoutér nikdy neskládal počítač, OMFG. Takže jsem musel nacvaknout nový delší IDE kábl pro optické mechaniky, floppy kšanda se tam dala poskládat bez úprav. Naštěstí nepoužívám žádné dlouhé PCI karty, které by do konektorů svou délkou zasahovaly. Výrobce proto přikládá 1 SATA kablík se zalomením konektoru o 90° Z předchozích zkušeností vím, jak northbridge pěkně peče, takže jsem na jeho pasiv automaticky namontoval malý větráček napájený ze 7 V. Alespoň že se Gigabyte nechlubí trapně nápisem "fanless design" jako Asus. Také jsem si všiml, jak se zde šetřilo na FlashROM pro BIOS. Poprvé jsem se zde setkal se sériovou SPI flashkou v SMD pouzdru SO8 připájenou přímo na desku. Takže pokud neumíte pájet, tak majzla na BIOS! O tom se ještě zmíním později. Zde je pár fotek z montáže:

GA-P31-DS3L mobo GA-P31-DS3L CPU LGA775 socket Winbond W25X40 SPI FlashROM GA-P31-DS3L in case

      Do desky jsem osadil nové paměti, jinak všechen ostatní HW zůstal stejný. PC najel na první zapnutí a tak jsem se mohl pustit do nastavení SETUPu a instalace ovladačů. Jen připomínám pro ty, kdo ještě neměli zkušenost s BIOSy na deskách Gigabyte, tak v hlavní obrazovce SETUPu je potřeba stisknout [CTRL]+[F1], aby se zobrazily rozšířené možnosti nastavení, kterých je opravdu dostatek. Lze nastavovat frekvenci FSB a PCI-E po kroku 1 MHz, násobička pamětí má hodnoty 2x, 2,4x, 2,5x, 3x, 3,3x a 4x. Časování DRAM je buď automatické podle informací z SPD EEPROM nebo ruční, včetně významné položky tRD (Static tRead Value, v SETUPu značeno jako ACT to ACT Delay (tRRD)). Voltovat lze CPU (0,5 - 2,0 V), paměti (1,8 - 2,5 V), FSB (1,2 - 1,5 V), MCH (1,25 - 1,55 V) a PCI-E (1,5 - 1,8 V). Pro začátek jsem nastavil jen lehký overclock zvýšením FSB Core 2 Duo E6400 z 266 na 300 MHz bez zvyšování napětí (paměti na 900 MHz DDR při 2,0 V). Nechybí podpora USB mass-storage zařízení a možnost bootovat z nich. Pro ladění také příde vhod možnost uložit si až 8 profilů nastavení SETUPu do FlashROM (tzn. že zůstanou uložené i po CMOS resetu). Jediné, co jsem tam trochu postrádal, je klasické nastavení rychlosti klávesnice (delay a repeat rate), které jde ale ve většině OS nastavit nebo na to napsat program. V MemTestu jsem pro porovnání změřil propustnost pamětí při různém nastavení a konfiguraci single vs. dual channel (procentní nárůst v závorce):

FSB/DRAM DDR/CL [MHz] single channel [MB/s] dual channel [MB/s]
266/667/CL5, MCH i945 2310 2867 (+24%)
266/667/CL5, MCH P31 2527 3474 (+37%)
266/667/CL4, MCH P31 2690 3682 (+37%)
266/800/CL5, MCH P31 2875 3972 (+38%)
266/800/CL4, MCH P31 2979 3973 (+33%)
300/900/CL5, MCH P31 3234 4262 (+32%)
350/875/CL5, MCH P31 3317 4560 (+37%)

      Zprovoznění OS probíhalo vcelku hladce. DOS a Linux výměnu desky ani nepostřehly a vše fungovalo jako dříve. Do Windows XP jsem akorát musel doinstalovat ovladač síťové karty Realtek 8111B z webu výrobce. U Windows 98SE se jako největší problém ukázalo 2 GB RAM, s kterými systém odmítal nastartovat. Dohledal jsem, že na MSFN fóru se tím už zabývalo více lidí. Nakonec jsem to vyřešil. S tím, že systém vidí jen něco přes 1 GB RAM a zbytek se používá na RAMDISK pro swapfile. Podrobný popis je zde. Další problém způsoboval nejnovější ovladač síťovky z webu Realteku, po jehož instalaci Windows 98SE zatuhly při dalším startu (fungoval jen nouzový režim). Když jsem ale zkusil starší verzi ovladače z dodávaného instalačního CD, tak vše fungovalo bez problému. Umístil jsem jej ke stažení na windows98.xf.cz. Všechny Plug&Play zařízení se redetekovali korektně, ve správci zařízení nemám žádný vykřičník. Takže jsem s funkcí této desky zatím spokojen a časem počítám s upgradem na nějaký 45nm CPU.
      Taktovat lze nejen z BIOSu ale i za běhu programem SetFSB 2.0.b.20l pro Windows9x/NT/2k/XP/Vista, stačí jen zvolit správný typ PLL ICS 9LPRS587EGLF. Když jsem psal na podporu IDT s prosbou o datasheet k PLL, tak mě ho odmítli poslat s tím, že je to proprietární součástka a že v současnosti datasheet nemůžou uvolnit. Zkusil jsem tedy kontaktovat autora SetFSB, který datasheet sice taky nemá, ale poskytnul mi potřebný popis registrů, takže zkusím přidat podporu i do svého programu SMB.
      Také jsem se hnedle zajímal o možnost modifikace BIOSu. Jenže už při banální výměně EPA loga jsem tvrdě narazil. Přestože jsem použil poslední verzi CBROM 1.82, tak došlo k poškození BIOSu a skončil jsem po flashi s černou pípající obrazovkou. Nezbylo než FlashROM odpájet a pokusit se ji přeprogramovat. Bylo to zrovna o víkendu, takže jsem neměl po ruce sériový programátor Asix Presto, který běžně používám v práci. Vzal jsem to jako výzvu a zkusil naprogramovat paměť přes paralelní port. Software jsem měl v neděli večer hotový a BIOS úspěšně přeprogramoval. Popis zapojení a program je zde. Protože jsem tušil další problémy, tak jsem flash čip na desku nepájel, ale přidělal sem tam redukci na DIL8, takže můžu paměť pohodlně vyndávat.

SPI FlashROM SO8 v DIL8 patici

      Pikantní na tom je i to, že na stránkách Gigabyte je ke stažení utilita Face Wizard přímo určená k modifikaci VGA loga BIOSu, která používá stejnou verzi CBROMu a není zde žádné omezení, jenž by zabránilo jeho použití na novějších BIOSech, které může poškodit. K poškození BIOSu dojde i v případě modifikace programem MODBIN6 2.04.01. BIOS se sice uloží a načte v pořádku (nejde tedy o chybu kontrolního součtu), ale po flashi už nenajede. Jak jsem později zjistil na různých hax0rských fórech (a po pár desítkách vlastních neúspěšných pokusů), tento problém má na svědomí nový typ modulů s kterým stávající verze CBROMu neumí korektně pracovat. V mojem případě jde o tyto dva moduly:


AWARD BIOS content listing 1.2 (C) 2004-2008 by Martin Rehak; rayer^seznam*cz
Compiled by GCC 4.2.3 at 22:56:33, Mar 29 2008
524288 BIOS image loaded.

  Filename     Offset   cSize  uSize  Dec.Addr.  Description
-------------+--------+------+------+-----------+------------
 p31ds3l.BIN        0h  84119 131072 5000:0000h - System BIOS
awardext.rom    148BFh  43406  62336 407F:0000h - XGroup code
 ACPITBL.BIN    1F275h   5579  15165 4003:0000h - ACPI table
AwardBmp.bmp    20867h    642   5772 4002:0000h - EPA logo
  ggroup.bin    20B11h   5637   7472 403B:0000h - GROUP ROM [18]
awardeyt.rom    2213Ch  22684  48144 400E:0000h - YGroup code
_EN_CODE.BIN    27A00h  11279  30624 4029:0000h - GROUP ROM [0]
 rtegrom.lom    2A637h  30882  51200 4086:0000h - PCI ROM[A]
    ds3l.bmp    31F00h  29626 307980 4000:0000h - VGA logo
 PPMINIT.ROM    392DEh   2689   6189 4067:0000h - GV3
     SBF.BIN    39D86h   7672  10411 4012:0000h - OEM ROM[0]
 MEMINIT.BIN !  3BBA1h  51913  51904 4069:0000h - MINIT
NCPUCODE.BIN    66FE0h  49152  49152            - Not compress. CPU microcode
DDR2_MRC.BIN !  74320h  29193  29184 3010:0000h - unknown

Note: Decompression address shown above is not real adress where module
is stored. All modules are usually extracted at 4000:0000 and then relocated.
Low byte of the segment is further processed by original.tmp and used to
calculate true address for relocation.

Tyto moduly MINIT a GV3 zřejmě musí zůstat na svém místě. Jakmile CBROM odstraní nebo nahradí nějaký jiný modul, který je nad nimi, dojde automaticky k jejich posunutí v image a BIOS se stane nefunkční. Možná má BootBlock na tyto moduly nějaké absolutní reference, které je třeba upravit, zatím ale nikdo pořádně neví. Jedinou možností tak zůstává ruční editace s důrazem na zachování umístění těchto dvou modulů. Pakované moduly, které se nacházejí před nimi lze vykopírovat z image (např. pomocí AWDLS 1.2) a vložit zpět v jiném pořadí. Pokud je potřeba vložit modul, který je větší než původní, musí se jiný modul o daný počet Bytů zmenšit nebo úplně vypustit. V takovém případě ale musí být vložen "prázdný" modul, který vyplní tuto mezeru (mezi jednotlivými moduly, resp. na jejich konci je právě jeden nulový Byte jako oddělovač). Takový modul lze vyrobit z náhodných dat vhodné velikosti zabalených jako dummy PCI ROM (CBROM při vkládání modulů zanechává na disku dočasný soubor bios.rom, který je právě zkomprimovaný modul, jenž do image ručně vložíme). Je to trochu metoda pokus-omyl, než se podaří vyrobit přesně požadovanou velikost. Jemné doladění velikosti lze provést i změnou délky názvu nekomprimovaného dummy modulu. Tento postup není nijak složitý, akorát vyžaduje jistou míru soustředění se na věc, aby se někde něco o Byte neposunulo nebo nepřepsalo. Nakonec je potřeba přepočítat kontrolní součet BIOS image. To za nás udělá CBROM, když parametrem /extract vybalíme libovolný modul. Zní to sice poněkud divně, protože extrakce modulů je operace, která by neměla nijak modifikovat zdrojový soubor, ale je to tak. Můžete si obsah souborů před a potom porovnat.
      Nakonec se mi podařilo z image vyhodit modul EPA a VGA loga a BootROM síťovky a vložit tam vlastní EPA logo a PCI modul ROMOS. Zbylé místo jsem vyplnil dummy PCI ROM modulem (stuffing.bin). Jak můžete vidět na dalším screenu, pozice MINIT a GV3 se v BIOS image nezměnila. Takto upravený BIOS po flashnutí normálně funguje.


AWARD BIOS content listing 1.2 (C) 2004-2008 by Martin Rehak; rayer^seznam*cz
Compiled by GCC 4.2.3 at 22:56:33, Mar 29 2008
524288 BIOS image loaded.

  Filename     Offset   cSize  uSize  Dec.Addr.  Description
-------------+--------+------+------+-----------+------------
 p31ds3l.BIN        0h  84119 131072 5000:0000h - System BIOS
awardext.rom    148BFh  43406  62336 407F:0000h - XGroup code
 ACPITBL.BIN    1F275h   5579  15165 4003:0000h - ACPI table
  ggroup.bin    20867h   5637   7472 403B:0000h - GROUP ROM [18]
awardeyt.rom    21E92h  22684  48144 400E:0000h - YGroup code
_EN_CODE.BIN    27756h  11279  30624 4029:0000h - GROUP ROM [0]
  SKULL4.EPA    2A38Dh   4868  10140 4002:0000h - EPA logo
   ROMOS.BIN    2B6B7h  50974  65536 4086:0000h - PCI ROM[A]
STUFFING.BIN    37DFAh   5308   5308 4087:0000h - PCI ROM[B]
 PPMINIT.ROM    392DEh   2689   6189 4067:0000h - GV3
     SBF.BIN    39D86h   7672  10411 4012:0000h - OEM ROM[0]
 MEMINIT.BIN !  3BBA1h  51913  51904 4069:0000h - MINIT
NCPUCODE.BIN    66FE0h  49152  49152            - Not compress. CPU microcode
DDR2_MRC.BIN !  74320h  29193  29184 3010:0000h - unknown

Note: Decompression address shown above is not real adress where module
is stored. All modules are usually extracted at 4000:0000 and then relocated.
Low byte of the segment is further processed by original.tmp and used to
calculate true address for relocation.

      Další poznámka patří modulu NCPUCODE.BIN. Jde o nekomprimovaný blok update mikrokódů pro intel CPU. Dříve byl blok mikrokódů vložen v BIOS image jako běžný komprimovaný modul. Avšak vzhledem k entropičnosti těchto dat neměla komprese žádný smysl. V novějších BIOSech se začal používat nekomprimovaný modul mikrokódů. CBROM má sice odpovídající parametr /nc_cpucode, který ale v praxi nefunguje. Modul tak nejde ani extrahovat ani vložit. Opět je možná pouze ruční editace BIOS image. Konec modulu lze spolehlivě vyhledat podle patičky *ALIN16* následované 32-bitovou velikostí bloku mikrokódů uloženého před patičkou a řetězcem s názvem souboru modulu NCPUCODE.BIN. Blok mikrokódů je prostý slepenec z dílčích mikrokódů (bez oddělovací značky) typicky o velikosti 2, 4, 6 nebo 8 kB. Před a za blokem mikrokódů bývá obvykle větší počet prázdných FFh Bytů. Mikrokódy lze vyextrahovat mým prográmkem AWDLS a přepsat (při zachování velikosti) ručně v hexaeditoru.
      Naštěstí Gigabyte svoje BIOSy aktualizuje docela často a jak jsem koukal, tak žádné novější mikrokódy nejsou, takže není zatím k modifikaci důvod, ale je dobré mít tu možnost až deska zastará a zájem výrobce na aktualizacích opadne. Doufám však, že už v tu dobu bude venku nějaký novější CBROM, který to pořeší jednodušeji.

      12.8.2008 Od verze BIOSu F9e došlo k přeskupení modulů a objevil se jeden záhadný problém ještě více komplikující modifikaci. Jak už bylo řečeno, modul MEMINIT.BIN je pro BIOS kritický a nesmí se s ním hýbat. Nyní ale nelze šahat ani na bootROM síťovky - modul rtegrom.lom. Pokud se změní byť jen třeba jedno písmeno z malého na velké nebo se modul odstraní či přesune na jinou pozici než bezprostředně za MEMINIT.BIN, tak BIOS při studeném restartu 2x dlouze pípne (ještě než naběhne obraz na monitoru), avšak pak normálně pokračuje bez jakékoliv chybové hlášky. Domnívám se proto, že BootBlock chrání modul MEMINIT.BIN nějakým dalším kontrolním součtem, který neumí CBROM přepočítat. Nějakou chybou se do tohoto kontrolního součtu započítává i prvních 11 Bytů z následujícího modulu rtegrom.lom a proto ho nelze běžným způsobem měnit. Zjistil sem, že stačí zachovat stejný součet Bytů, avšak žádný Byte se nesmí překulit přes hodnotu FFh. Ke kompenzaci součtu lze využít i 1 Byte před rtegrom.lom na offsetu 37720h, který lze libovolně měnit.


AWARD BIOS content listing 1.4 (C) 2004-2008 by Martin Rehak; rayer^seznam*cz
Compiled by GCC 4.2.3 at 02:13:58, Aug 11 2008
524288 BIOS image loaded.

  Filename     Offset   cSize  uSize  Dec.Addr.  Description
-------------+--------+------+------+-----------+------------
 p31ds3l.BIN        0h  84017 131072 5000:0000h - System BIOS
awardext.rom    14859h  42000  60560 407F:0000h - XGroup code
 ACPITBL.BIN    1EC91h   5579  15167 4003:0000h - ACPI table
   DUMMY.BIN    20283h    645    645 4013:0000h - OEM ROM[1]
  ggroup.bin    2052Dh   5789   7728 403B:0000h - GROUP ROM [18]
 ffgroup.bin    21BF0h   2511   3232 403D:0000h - GROUP ROM [20]
awardeyt.rom    225E6h  22630  48016 400E:0000h - YGroup code
_EN_CODE.BIN    27E74h  11411  30864 4029:0000h - GROUP ROM [0]
 MEMINIT.BIN    2AB2Fh  52171  52160 4069:0000h - MINIT
 rtegrom.lom    37721h    250  51200 4087:0000h - PCI ROM[B]
 PPMINIT.ROM    37842h   2991   8877 4067:0000h - GV3
     SBF.BIN    38418h   7672  10411 4012:0000h - OEM ROM[0]
  SKULL4.EPA    3A233h   4868  10140 4002:0000h - EPA logo
   ROMOS.BIN    3B55Dh  61509  65536 4086:0000h - PCI ROM[A]
NCPUCODE.BIN    66FE0h  47104  47104            - Not compress. CPU microcode
DDR2_MRC.BIN    741A0h  29193  29184 3010:0000h - unknown

Note: Decompression address shown above is not real adress where module
is stored. All modules are usually extracted at 4000:0000 and then relocated.
Low byte of the segment is further processed by original.tmp and used to
calculate true address for relocation.

      Nakonec se mi po delším laborování podařilo úpravou v LHA hlavičce komprimovaného modulu rtegrom.lom zmenšit jeho velikost na minimum při zachování správného součtu, aby BootBlock nenadával. Obsah modulu jsem změnil tak, aby BIOS jeho kód nespouštěl a neinterferoval s jinými PCI ROM moduly. Zde je třeba upozornit na to, že BIOS Gigabyte je k PCI a ISA ROM modulům dosti benevolentní, kontroluje sice hlavičku 55AAh, ale už se třeba nezajímá o to, jestli celkový součet Bytů modulu je 0 nebo jaký je jeho CRC16 v komprimované podobě. Další moduly za rtegrom.lom lze už normálně přidávat/odebírat přes CBROM 1.82. Použití MODBINu je problematické v tom, že se při modifikaci hlavního modulu p31ds3l.BIN zcela jistě změní jeho komprimovaná velikost a tím pádem se posune pozice všech dalších modulů včetně kritického MEMINIT.BIN. To je pak třeba korigovat pomocí vycpávkové ROM (lze použít s výhodou typ OEM ROM 0-9) nahrazující původní EPA logo. Gigabyte také vydal novou verzi utility Face Wizard, která již BIOS nezkurví. V balíčku už není program CBROM, ale patrně jsou jeho funkce zakompilované přímo do hlavního programu nebo nějaké DLL. Takže novějšího CBROMu se asi jen tak nedočkáme :(


intel Core 2 Duo E8400

      28.5.2008 Tuto základní desku jsem pořizoval s výhledem na brzký upgrade novým 45nm procesorem. Vzhledem k tomu, že multithreadingových aplikací je stále po málu, jsem se rozhodl raději pro rychlejší dvoujádro než pomalejší čtyřjádro. Nakonec jsem za docela příznivou cenu koupil Core 2 Duo E8400. Oproti předchůdci E6400 se zvýšily taktovací frekvence FSB z 266 na 333 MHz, násobič z 6 - 8x (s krokem po 1x) na 6 - 9x (s krokem po 0,5x) a tedy výsledná frekvence jádra z 2133 na 3000 MHz. Také L2 cache se výrazně rozrostla z 2 na 6 MB. BTW to je víc, než měl můj první PC 486DX cache a RAM dohromady :). Snížilo se také napájecí napětí Vcore, můj kousek má default 1,225 V.
      Nová 45nm technologie je pro intel docela zásadní inovací, protože zde byl nahrazen SiO2 - materiál izolační vrstvy hradel MOSFETů, který se používal už od pradávna, za nový materiál HfO2. Díky tomu se podařilo více než 10x snížit parazitní klidový proud hradel MOSFETů (gate leakage) a o 30% snížit potřebnou energii na sepnutí tranzistoru. Důsledkem je, že ani při velkém nárůstu počtu tranzistorů a vyšší frekvenci se prakticky nezvýšila spotřeba, TDP zůstává na hodnotě 65 W. Vylepšení doznal i powermanagement, takže E8400 dosahuje při nízké zátěži dokonce o něco nižší teploty. Je vidět, že se intelu daří, bohužel tato řada Core 2 je už asi to poslední do patice LGA775 - následník Nehalem je určen do nového soketu LGA1366.
      Instalace a detekce procesoru proběhla bez problémů, takže jsem se v příštích dnech směle pustil do taktování. V první řadě jsem potřeboval zjistit maximální frekvenci FSB, kterou CPU nebo deska zvládne. Násobič jsem tedy nastavil na nejnižší 6x, paměti jsem držel na nižších frekvencích a konzervativním časování a postupně začal zvyšovat frekvenci FSB a při vyšších taktech i napětí MCH (northbridge), FSB a Vcore. Ze začátku to vypadalo docela nadějně, podařilo se mi POSTnout až na 549 MHz ale pak už se nějak odporoučela grafika - nicméně podle zvuků HDD a odezvě na slepě zadávané příkazy v DOSu bylo evidentní, že CPU ještě žije :). Napětí MHC a FSB jsem měl zvednuté o +0,3 V a Vcore jsem si dovolil nastavit maximálně 1,45 V. Frekvenci PCI-E jsem měl nastavenou na auto, protože manuální nastavení na 100 nebo 101 MHz fungovalo jen při taktech blízkých defaultu, jinak systém vůbec nenabíhal. Později jsem vyzkoušel, že když náhodou trefím správnou vyšší frekvenci PCI-E, tak to naběhne a můžu pak po 1MHz krocích postupně snižovat takt PCI-E na ještě funkční mez, která závisí na aktuální frekvenci FSB. Zjevně tedy nefunguje PCI-E lock (chyba BIOSu nebo PLL), což je problém i některých dalších desek Gigabyte.
      Během taktování FSB jsem také měřil propustnost pamětí memtestem a našel mezní hranice FSB strapu MCH na 400 a 500 MHz. Při překročení těchto hranic dojde ke změně vnitřního časování MCH (mj. prodloužení tRD), což má za následek mírné skokové snížení propustnosti pamětí. V mojem případě je ztráta něco kolem 120 MB/s (viz graf níže), takže vcelku zanedbatelná.

FSB strap - RAM bandwidth vs FSB

      To, že systém POSTnul či nabootoval v nouzovém režimu DOSu však neříká nic o stabilitě. Nad 533 MHz FSB tuhnul i DOS s ovladačem XMS a Windows 98 při startu. Poměrně účinný a rychlý test se ukázal být start Windows XP. Ty se podařilo nabootovat až po velkém snížení FSB pod 466 MHz. Dále přišel na řadu násobič. Pro vybrané frekvence FSB jsem postupně zvedal násobič a sledoval stabilitu systému. Zde jsem musel z nároků hodně slevit. Při 9 x 533 MHz procesor vůbec nenastartoval, při 9 x 500 MHz nestihly naběhnout ani Windows 98, při 9 x 466 MHz Windows 98 vytuhly do 5 minut. Teprve při 9 x 450 MHz systém začal vykazovat známky stability a tak nastoupil tvrdší test pomocí programu Orthos. Program provádí intenzivně výpočet FFT a přitom kontroluje neustále správnost výsledků, takže odhalí i drobnou nestabilitu dříve, než spadne OS. Zátěž se také dosti promítá do teploty jader, které se vzhledem k obyčejnému vzduchovému chlazení CPU a Vcore 1,45 V, vyšplhaly rychle k 90°C, takže to během pár minut skončilo chybou.
      Nechtěl jsem už dál systém mučit vysokými napětími a tak jsem se rozhodl pro skromnou a zdánlivě bezproblémovou frekvenci 9 x 400 (3600) MHz s násobičkou pamětí 2x na 800 MHz a časováním 4-4-4-16. Napětí chipsetu a pamětí jsem nechal na default a postupně jsem došel k minimálnímu Vcore 1,25625 V při kterém běžel Orthos několik hodin bez chyby. Pro jistotu jsem pak Vcore ještě trošku zvednul na 1,2625 V. S pocitem dobře vykonané O'C práce jsem PC pozdě v noci vypnul a šel spát. Jaké bylo ale ráno překvapení, když jsem PC zapnul a nenabootovalo. BIOS to po pár vteřinách vzdal, vypnul PC a zapnul s defaultní frekvencí. Tak jsem vlezl do SETUPu a nahrál zpět uložený profil na 400 MHz FSB. Situace se opakovala. Zkoušel jsem tedy napřed zvýšit Vcore, pak napětí MCH a FSB ale pořád nic. Teprve po několika restartech se to konečně chytlo. Nechal jsem to dalších pár hodin testovat v Orthosu, ale žádné chyby se neobjevily. Při restartech a krátkém vypnutí se už pak PC chovalo normálně. Tedy až do dalšího rána, kdy to opět nechtělo nastartovat. Zjistil jsem, že zřejmě hraje roli teplota systému při zapínání. Když je PC dlouho vypnuté a všechny komponenty vychladnou, tak je pak se startem problém. Pokud je systém už zajetý po nějaké té hodině práce, tak se zapínáním není problém.
      Snažil jsem se najít zdroj problému, bohužel to v takovém případě jde dost zdlouhavě. Zkoušel jsem zvyšovat napětí Vcore, chipsetu i pamětí, nastavit pomalejší časování, jinou násobičku, prodloužit tRD, snížit násobič na 6x, ale vůbec nic nepomohlo. Problém jsem prezentoval i na O'C fóru, kde byla vyslovena nedůvěra k pamětem a kompatabilitě BIOSu s 45nm CPU. Mám tu po ruce ještě starší RAMky od Kingmaxu, které jsem nastavil hodně pomalu (včetně single channel módu s jedním modulem), ale taky žádný efekt. Nakonec se moje nedůvěra obrátila k ATX zdroji. Sice má PC bez monitoru při plné zátěži v Orthosu spotřebu jen 140 W (zdroj je 350W), ale kdo ví, co to bere při startu. Půjčil jsem si tedy jiný 500 W zdroj, avšak problém se opakoval. Dokonce jsem si kvůli tomu dotáhl z práce digitální paměťový osciloskop a sledoval jsem náběhy napětí na +12 V a +5 V větvích po zapnutí. Ale nic jsem nevykoukal. Napětí vyběhlo po čisté exponenciele během nějakých 5 ms bez jakýchkoliv zákmitů či poklesů. Pak byl patrný už jen jemný šum asi 60 mVpp. Sice se mě na Rebels Haven fóru stále snaží jeden týpek zarputile přesvědčit, že je to poddimenzovaným zdrojem, ale zas nemám tolik peněz nazbyt, abych je vyhodil za přehnaně silný zdroj s kterým to může dělat úplně to samé...
      Takže mi nezbylo než jít s FSB ještě víc dolů. Prozatím mám nastaveno 9 x 389 (3500) MHz s násobičkou RAM 2,4x na 934 MHz a časováním 5-5-5-20 a Vcore 1,2375 V. Systém zatím startuje normálně i za studena, ale ještě po tom budu pátrat. Zde jsou ke stažení moje detailní zápisky z taktování. Pro porovnání výkonu s předchozím CPU a také starým Tualatinem 1100@1466 jsem provedl pár testů v oblíbených aplikacích a hrách (jako u minulého testu). V případě některých SW jsem už měl nainstalovanou novější verzi, takže výsledek není úplně porovnatelný (viz DosBOX 0.65 vs 0.72, kde došlo k tak dramatickému nárůstu výkonu hlavně díky optimalizaci kódu). Také jsem přidal výsledek z Everest 5.30.1900 benchmarku na 3,6 GHz

OS: WinXP Win98 WinXP SMP Win98 WinXP SMP WinXP SMP
TEST: Tualatin 1466 MHz E6400 2133 MHz E6400 2133 MHz E8400 3500 MHz E8400 3500 MHz E8600 4000 MHz
DOS/3DStudio render [1] 2:48 1:38 1:38 1:03 1:03 0:51
DOS/Pi benchmark [2] 1:17 0:29 0:29 0:13 0:13 0:10,48
DOS/FFMPEG [3] - - - - - 0:24,00
DOS/Quake1 [4] - - - - - 521 FPS
Paint Shop Pro [5] 0:46 0:14 0:14 0:08 0:08 0:07
WinRAR komprese [6] 9:51 4:09 2:56 (-29%) 3:07 1:57 (-37%) 1:31
DOSBox-Quake1 [7] 3,6 FPS 10,0 FPS 10,9 FPS (+9%) 61,7 FPS 62,4 FPS (+1%) 125,1 FPS
Quake II SW render [8] 14 FPS 50 FPS 47 FPS (-6%) 90 FPS 87 FPS (-3%) 95,5 FPS
Unreal Tournament OGL [9]  68 FPS 186 FPS 200 FPS (+7%) 256 FPS 267 FPS (+4%) 420 FPS
Super PI/mod 1.5 XS (1M)  - - - - - 0:11,75
(uvedené časy jsou ve formátu minuty:sekundy)
[1] - 3D Studio R4 render p_hodiny.3ds, 1280x1024/24bpp
[2] - můj prográmek na výpočet Pí, DOS/DJGPP (optimalizace pro PIII)
[3] - FFMPEG 2.1.8 komprese MPEG1 -> h264, 6748896B velký soubor UBILOGO.MPG
[4] - Quake1 320x200, demo1.dem
[5] - Paint Shop Pro 9.01, filtr edge preserve smooth 5 na bitmapě 3600x3600/24
[6] - WinRAR 3.60 (u E8400 ver. 3.71, u E8600 ver. 3.80), best compress, 404461568B velký ISO image (SCO-OS.ISO)
[7] - DOSBox 0.65 CVS 3.12.2006 (u E8400 ver. 0.72 CVS 27.11.2007, u E8600 ver 0.74 SVN 25.1.2015) - Quake1 320x200, demo1.dem
[8] - Quake II software rendering 1600x1200, demo1.dm2
[9] - Unreal Tournament OpenGL rendering 1280x1024, flyby, GeForce 6600GT (u E8400 7600GS, u E8600 7900GT) na default

E8400 benchmark

Měření příkonu PC sestavy TrueRMS wattmetrem:

full load (Windows XP): 140 W, cos(φ) = 0,95
idle (Windows XP): 101 W
idle (DOS): 126 W
+40 W LCD monitor NEC 2190UXp

      18.7.2008 Jak jsem zjistil, tak na problém se studeným startem při přetaktování na 400 MHz FSB má dosti vliv frekvence a napětí PCI-E. Když jsem manuálně nastavil nejmenší možnou frekvenci 118 MHz a přidal 0,1 V na napájení PCI-E, tak se dost zvýšila pravděpodobnost, že stroj za studena naběhne. Ale i tak se mi párkrát stalo, že nenaběhnul. Nevím jestli vlivem chladnějších posledních dnů nebo erupcí na slunci ;-). Takže jsem se zas vrátil na 389 x 9 (3500) MHz a PCI-E na 115 MHz. Grafická karta na toto chování nemá vliv, zkoušel jsem GF7600GS a GF7900GT. Sem zvědav, jak to bude startovat v zimě až otevřu okno :P

      8.8.2009 Nedávno jsem si pořídil POST kartu do PCI slotu, abych mohl vysledovat v jaké fázi se PC zasekne při náhodném neúspěšném startu. Při normálním startu vypadá sekvence POST kódů zhruba takto: power on - 44, 99, 33, DD, C0, C1, 54, 44, 33, DD, C0, C1, C3, 02, 18, 25, 26 - normal boot (default 3 GHz). Některé kódy se zobrazují velice krátce, takže jsem je nebyl schopen při natáčení na foťák zachytit. Při neúspěšném startu je sekvence POST kódů zhruba takováto: power on - 44, 99, DD, C0, C1, 54 - 44, 99, DD, C0, C1, 54, C1, C3, 02, 18, 25 - 44, 99, 33, DD, C0, C1, power off (O'C 3,5 GHz). Kód 25h se na displeji zobrazuje asi 2 vteřiny, pak rychle proběhne sekvence podobná té po zapnutí a PC se vypne, po 2 vteřinách se znovu zapne s defaultním nastavením hodin. Kódy 25h a 26h jsou v generic Award BIOSu ponechány jako reserved, tzn. že každý výrobce základních desek jim může přiřadit jiný význam. S pomocí uživatele -HoNY- z O'C fóra jsem zjistil význam těchto kódů pro MB Gigabyte GA-X58UD5 (předpokládám, že budou platit i pro GA-P31-DS3L): 25h = Early PCI initialization: Enumerate PCI bus number, Assign memory & I/O resource, Search for a valid VGA device & VGA BIOS, and put it into C000:0.
26h = 1. If Early_Init_Onboard_Generator is not defined Onboard clock generator initialization. Disable respective clock resource to empty PCI & DIMM slots, 2. Init onboard PWM, 3. Init onboard HW monitor devices. Jelikož mají tyto více významů, tak z toho stejně nejsem moc chytrej. Každopádně teď v létě v horku se problém se startem objevuje častěji.

      12.10.2011 Zatím co současné paměti DDR3 hodně zlevnili, DDR2 už z trhu pomalu mizí a jejich cena spíše roste a tak jsem se rozhodl pro upgrade, dokud se ještě dají nějaké rozumně sehnat. Když už tedy upgrade, vybral jsem si paměti s frekvencí 1066 MHz (maximum co deska oficiálně podporuje) Kingston 2x 2GB kit DDR2 1066 MHz CL5 HyperX box. Tyto moduly potřebují pro správnou funkci zvýšené napájecí napětí 2,2 V (deska umí až 2,5 V).
      Vyměnil jsem tedy 2 stávající moduly od Corsairu za tyto nové, nastavil jsem v BIOSu doporučené časování 5-5-5-15 při frekvenci 1066 MHz (násobička FSB x 3) a napětí 2,2 V. Nabootoval jsem bez problémů do Windows XP, ale asi po půl hodince se komp z ničeho nic restartoval. Pustil jsem se tedy do důkladného testování s MemTestem a Orthosem. Jak se ukázalo, Orthos odhalil chybu poměrně rychle, typicky během minuty. Zkusil jsem napřed zvýšit napětí pamětí až na 2,4 V a pak i zpomalit časování až na 6-6-6-18, ale stejně to nepomohlo, jen se o trochu oddálil okamžik výskytu chyby. Nezbylo tedy nic jiného, než snížit násobič pamětí na 2,5x (při mojem taktování 890 MHz). Časování jsem vyladil na stabilních 5-5-5-15, které fungovalo dokonce i při 2,1V. Pokus o CL4 ale dopadl opět chybami, takže už jsem to tak nechal. Memtest prošel bez problémů a ani po týdnu používání se neobjevila jakákoliv známka nestability. To, že paměti nefungují spolehlivě na jmenovitých 1066 MHz, přičítam spíš neschopnosti desky (přestože se na sobě chvástá velkým nápisem "DDRII1066"), ale nemám možnost paměti otestovat v jiné desce nebo u sebe jiné paměti. Přesto jsem naměřil alespoň malý nárůst propustnosti, podle MemTestu z 4474 MB/s na 4603 MB/s. Zde je podrobnější porovnání z programu MBench 1.0:

paměť Corsair 854 MHz Kingston 890 MHz Kingston 800 MHz
časování 5-5-5-16; 2,4x; 2,1 V 5-5-5-15; 2,5x; 2,1 V 4-4-4-16; 2,0x; 2,1 V
latence 68,0 ns (218 clocks) 66,2 ns (212 clocks) 64,5 ns (258 clocks)
integer R/W 6014 / 2683 MB/s 6157 / 2813 MB/s 6563 / 2831 MB/s
MMX R/W 6670 / 2680 MB/s 6907 / 2817 MB/s 7223 / 2852 MB/s
SSE R/W 6774 / 7220 MB/s 6977 / 7279 MB/s 7233 / 8214 MB/s

      1.9.2012 Naskytla se mi příležitost koupit procesor intel C2D E8500 a tak jsem se rozhodl, že svůj stávající PC ještě o trochu popoženu. Zatím se mi moc nechce do přestavby PC na Core i7 Sandy/Ivy Bridge, protože jsem dosud nenašel základní desku, která by splňovala všechny moje požadavky a výkon mi ještě celkem stačí.¨Jedná se o jeden z nejrychlejších procesorů do soketu LGA775 taktovaný defaultně na 3,16 GHz (9,5 x 333 MHz). Nejrychlejším sériově prodávaným procesorem byl E8600 na 3,33 GHz, který je však dnes poměrně velkou (a drahou) vzácností. Absolutně nejrychlejším pak byl model E8700 na 3,5 GHz, ale ten se snad ani nedostal oficiálně do prodeje a má ho jen pár nadšenců. Výměna procesoru proběhla bez problémů, zkoušej jsem ho i nataktovat na 3,8 GHz (9,5 x 400 MHz) a jede. Dokonce při zátěži ukazuje o něco menší teploty jader než měl E8400, ale to může být jen rozptylem v toleranci přesnosti interních čidel teploty. Nárůst výkonu moc znát nebyl, je to spíš tak pro lepší pocit :)

      6.2.2014 Tak se mi povedlo výhodně sehnat nejrychlejší dvoujádro do LGA775 intel C2D E8600 a výkon stávající sestavy ještě o krůček postrčit. Taktování si dá líbit i na 4,0 GHz (10 x 400 MHz), ale to už mi při extrémní zátěži programem LinX 0.6.5 lezla teplota jader až k 90°C (tento program je extrémní vařič CPU ideální na testy, s žádnou jinou reálnou aplikací jsem nikdy takových teplot nedosáhl, spíše tak o 10 - 15°C méně), nicméně běžel stabilně. Vzhledem k poměru cena/nárůst výkonu se mi stále do nového intel core i7 nechce (což by neslo i náklady na MB a RAM) a výkon mi stále ještě stačí. Mnohem výraznější oživení PC představovala výměna systémového disku za SSD Samsung 840 Pro.
      Nedávno jsem se ještě dověděl o další zajímavé možnosti upgrade pro LGA775 desky: s pomocí primitivní "redukce" (cca 130 Kč), která zaizoluje pár padů na CPU a 2 prohodí, je možné do desky osadit serverové Xeony určené pro soket LGA771. Nejrychlejší z nich je intel X5470 (4-jádro na 3,33 GHz s 12 MB L2 cache), je to ale pěkný vařič se 120 W TDP. Jeho cena se na eBay pohybuje kolem 100 euro, na Aukru např. 1600 Kč.

CPU intel C2D E8600

      22.8.2015 Na radiojarmarku v Holicích jsem sehnal jednu velmi podobnou základní desku GA-EP31-DS3L rev. 2.0. Oproti mojí GA-P31-DS3L má navíc DualBIOS s 2 x 1 MB FlashROM (místo 512 kB), čtveřici diagnostických LED a novější revizi ethernet čipu RTL 8111C. Než jsem se ale odhodlal k výměně, tak mi v hlavě uzrál nápad na poněkud radikálnější upgrade v podobě desky GA-P67-DS3-B3 a CPU Core i7-2600K. Obě staré desky si nechám do zálohy.



Zpět

Aktualizováno 12.8.2020 v 3:21