Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Balala2007

    tag

    válasz R.Zoli #13 üzenetére

    De igen, papiron, elso kozelitesben nagyon jol nez ki a K10 FPU-ja, de van par gyenge pontja, amit nagyreszt a K8-tol orokolt (nem birtak/akartak javitani). Szubjektiv sulyossagi sorrendben, elore amit a legfontosabbnak latok:

    1, K8/K10 nagyon nem szereti, ha egy xmm regiszterben megvaltozik az adattipus. Amig egyforma PS/PD/DQ adatokra vonatkozo utasitasok vonatkoznak egy regiszterre, az OK, de ha valtozik, akkor durva penaltykat is elszenved. Sztem leginkabb emiatt gyenge a K10 pl. a PovRay es az EVEREST Julia tesztben.
    2, A K8/K10 uops kikuldese sokkal rugalmatlanabb, mint az Intele. Az ICU egy primitiv algoritmus alapjan szetosztja a uops-okat az EU-k varakozoallomasai kozott, es ezekbol nincs atjaras a masikba.Ha az uops FMUL/FADD pipe-hoz kotott, akkor valtakozva, ha mind a 3 EU-hoz kotheto, akkor FMISC,FMUL,FADD sorrendben dobalja be oket. Igy elofordulhat, hogy pl. az elfoglalt FADD-ra var tobb olyan uops is, amit az eppen uresben allo FMUL is le tudna kezelni. (Intelnel nincs ilyen gond, ott elvileg a teljes 32 uops-os RS-bol barmelyik hozzarendelheto barmelyik EU-hoz, viszont csak 3 regiszter read portja van.)
    3, A K10 FPU EU-knak csak egy result bus-a van, ezert egy idoben nem fejezodhet be ugyanazt az EU-t hasznalo uops. (Pl. ADDPD es ket ciklussal kesobb egy CMPPD.)
    4, K10-nel a minimum FPU latency 2, meg a sima masolo MOVAPx/MOVDQx-ekre is. A throughput elvileg 1/3 az Intelhez hasonloan, de valamiert ezeket az ertekeket sem tudja kitartani. Core-on az egyszerubb xmm utasitasok 1 clk alatt megvannak (MOV/AND/NAND/OR/XOR/ADD/SUB).
    5, Az optim guide-tol elteroen az xmm shift/pack/unpack/shuffle utasitasok 2lat/0.5 tp helyett 3lat/0.5tp-vel mennek. K8-on ezek meg (a PSHUFD kivetelevel) 2lat/1tp-vel mentek... Lehet, hogy ezek az utasitasok kritikusak az orajelemelesnel???
    6, Ez a legkevesbe fontos, de a leglatvanyosabb, en ezen akadtam ki teljesen. Kikapcsoltak azokat a specialis eset kezeleseket meg x87-ben, amik mar a legelso, SlotA-s K7-ekben is benne voltak. A lassu (es ritka) lebegopontos osztasnal ill. gyokvonasnal szokas megkulonboztetni a trivialis eseteket: 0.0/x, x/1.0, x/(2.0^n) es sqrt(0.0), sqrt(1.0) szamitasa eseten nem kell vegigfuttatni az egesz oszto/gyokvono eljarast, kapasbol lehet tudni az eredmenyt. Ugy latszik a K10-ben nem maradt erre eleg tranzisztor...

    Tudtommal uton van a K10 B3 es C0 revizio, de en ezekben legfeljebb az 5, es 6, problemak javitasat tudom elkepzelni, a tobbin csak egy totalis ujratervezes segithet.

    "This is the beginning of a beautiful friendship" - kommentalhatna az Intel a Phenomot. :)

    [ Szerkesztve ]

    AIDA64.com

Új hozzászólás Aktív témák