Jaettu väylä on harvinaisen huono ratkaisu kun laitetaan useampi prosessori. Pelkästään tuon takia Opteron oli täysin ylivoimainen.
Kaikki prosessorit eivät käytä sitä väylää jatkuvasti.
Kun vain yksi prosessori käyttää kaistaa, yksi jaettu väylä on nopeampi kuin se, että jokaisella olisi oma hitaampi väylänsä.
Lisäksi esim. välimuistin koherenttius on paljon helpompi toteuttaa jaetulla väylällä, kun muut prosessorit voivat vaan suoraan snoopata, mitä väylällä tapahtuu. Muilla ratkaisuilla sen koherenttiuden ylläpitämiseen alkaa helposti kulua huomattava määrä ylimääräistä kaistaa, kun niitä koherenttiustietoja pitää alkaa erikseen lähettelemään joka puolelle.
Kaikissa ratkaisuissa on hyvät ja huonot puolensa, ei ole yksikäsitteisesti parempia ja yksikäsitteisesti huonompia ratkaisuja,
väylätopologioiden luokitteleminen mustavalkoisesti parempiin ja huonompiin on lähinnä lapsellista.
hkultala sanoi:
AMDn oli PAKKO laittaa ytimet samalle piilastulle, koska sillä piilastulla oli myös muistiohjain eikä ollut mitään jaettua väylää johon niitä piilastuja voi helposti kytkeä useampia.
AMD:n oli pakko laittaa koska HT linkkejä laitettiin enemmän vain Opteroneihin.
Kummasti Intelillä ei ollut mitään pakkoa, vaikkei ollut YHTÄÄN HT-linkkiä, tai QPI-linkkiä.
Core 2:ssa se ratkaisu oli mietitty valmiiksi, prosessoriytimien kommunikointi L2 välimuistin kautta. Pentium 4:ssa ei mietitty dual core toteutusta ollenkaan. Vaihtoehtoisesti siitä ei piitattu mitään, on sekin vaihtoehto.
Koska prosessoriytimien kommunikointi L2 välimuistin kautta on selvästi nopeampi tapa kuin piirisarjan kautta.
Kertoisitko nyt, mistä prosessoriydinten välisestä kommunikaatiosta
tarkkaan ottaen puhut?
X86-prosessorilla ei ole mitään "lähetä tämä data toiselle ytimelle"-käskyjä.
Ja edelleenkään et tunnu ymmärtävän miten jaettu väylä toimii. Prosessoriytimet pystyvät kommunikoimaan ihan suoraan sen väylän yli keskenään, eikä sen liikenteen tarvi kiertää piirisarjan kautta.
Sen sijaan Athlon MP:ssä jossa EI OLLUT jaettua väylää vaan kaikilla prosessoreilla oli oma yksityinen linkkinsä piirisarjaan, prosessorien välisen liikenteen täytyi kiertää piirisarjan kautta, koska mitään suoraa kommunikaatiokanavaa prosessoreiden välillä ei ollut.
Ja välimuistikoherenttiusprotokolla on se, mikä tässä oikeasti käytännössä merkitsee.
Missään tapauksessa se liikenne ei kuitenkaan kulje vain piirisarjan kautta. Se kulkee joko suoraan tai MUISTIN kautta.
En kuitenkaan tunne K8n enkä P4n välimuistikoherenttiusprotokollia tarpeeksi hyvin, että osaisin sanoa KUMMASTAKAAN tämän suhteen 100% varmaksi mitään.
edit: Tosin nyt kun vähän noita koherenttiusprotokollia mietin, niin alan olla melko varma, että kummallakaan liikenteen ei tyypillisissä tilanteissa tarvi kulkea muistin kautta.
Mitkä tekniset pointit tukevat vastakkaista mielipidettä? Pelkästään laittamalla enemmän kuin yksi prosessori, Intelin prosessoriväylä tukehtuu helposti. Se yksinään riittää perusteluksi.
Eikä tukehdu. Et ole esittänyt mitään benchmark-tuloksia näiden väitteidesi tueksi. Kuvittelet vaan niin, koska "teoreettiset kaistaluvut" näyttää pienemmiltä.
(ja joo, seuraavaksi varmaan kaivat jonkun raa'an muistikaistatestin, joka on täysin EVVK tosimaailman suorituskyvyn kannalta.
Oikeat tosimaailman softat eivät tee pelkkää memcpytä tai memset:iä, eikä niillä kahdella ytimellä P4n väylä ole mikään paha pullonkaula)
Niin? Prosessori julkaistiin 2003. Sen arkkitehtuuri oli valmis jo paljon aiemmin. Prosessorissa oli tunnettuja valmistuspuolen ongelmia.
Arkkitehtuuri on AINA valmis "paljon aiemmin". Siitä että arkkitehtuuri on valmis menee AINA yli vuosi siihen että piiri on markkinoilla. Ja näiden valmistusteknisten ongelmien takia ensin julkaistiin Opteron palvelinkäyttöön (niitä tarvi valmistaa pienempiä määriä) ja Athlon 64 tuli vasta syksyllä.
Noartwood tuli kuitenkin n. vuoden Opteroniakin aiemmin ja oli siis arkkitehtuurina valmis varmasti aiemmin, mutta millään tällä ei kuitenkaan ole sen kanssa mitään tekemistä, oliko Pentium D purkkaviritys vai ei.
Eiköhän tuo L2 välimuisti samalle piirille vasta vuonna 2000 osaltaan selitä miksi Athlon64:ssa saattoi olla valmistusongelmia.
Ei.
Athlon 64 oli ensimmäinen 130nm SoI-prosessilla valmistettu piiri, valmistusongelmat liittyivät siihen, eikä millään tavalla L2-kakkuun.
Alkuperäinen K7(julkaistiin 1999) valmistettiin 250nm tekniikalla, ja se oli jo niin iso piiri, että L2-välimuistin laittaminen samalle piirille olisi tehnyt siitä todella valtavan piirin.
Kun AMD seuraavana vuonna otti käyttöön 180nm valmistusprosessin, ensin tehtiin ihan vaan saman K7n die-shrink (K75) minimaalisilla muutoksilla itse logiikkaan. Syitä oli käytännössä kaksi:
1) Riskien minimointi. Jos L2-kakun kanssa tulee jotain ongelmia olisi kuitenkin joku hyvä piiri mitä myydä hyvissä määrissä.
2) Aikataululliset seikat. Pelkän shrinkin sai tehtyä nopeammin valmiiksi.
Ja sitten myöhemmin tehtiin mallit, joissa L2-välimuisti oli samalla piirillä itse prosessoytimen kanssa.
Ja AMDllä oli jo keväällä 1999 250nm tekniikalla tehty K6-3 jossa oli 256kiB L2-kakkua prosessorin kanssa samalla piirillä.
Noudatat nyt täysin väärinpäistä päättelylogiikkaa. Kun olet saanut päähäsi jonkun "päätelmän", joka perustuu virheellisiin faktoihin, yrität alkaa "muuttamaan niitä faktoja" vastaamaan päätelmääsi. Oikea tapa toimia on, että sen sijaan korjataan sitä päätelmää, kun korjattuja faktoja alaa tulla esille.
Intelillä kesti 4 vuotta AMD:n jälkeen saada prosessoriin integroitu muistiohjain.
Intel julkaisi esim. helmikuussa 2002 XScale PXA210-piirin, jossa oli prosssorin kanssa samalle piirille integroitu DRAM-ohjain. Tämä siis yli puoli vuotta ennen AMDn ensimmäistä K8-piiriä.
Ei kyse ollut siitä, että olisi olisi jotenkin "ollut 4 vuotta integroidun mustiohjaimen kehityksestä jäljessä" vaan kyse oli siitä, että Intel ei tuolloin HALUNNUT laittaa x86-prossuihinsa integroitua muistiohjainta.
Ja syy tähän on hyvin selvä: Rambus.
Intelillä itseasiassa oli jo AMDtä ennen kehitteillä x86-prosessori, johon oli tarkoitus tulla integroitu muistiohjain. Tämän piirin koodinimi olisi ollut Timna, ja se olisi sisältänyt Pentium 3 -ytimen, Rambus-muistiohjaimen ja integroidun näytönohjaimen.
(kyseessä olisi siis ollut "fuusio-piiri" n. 10 vuotta AMDtä ennen)
Intel Timna - Wikipedia
Rambus-muisti osoittautui paljon suunniteltua kalliimmaksi valmistaa eikä se löynyt itseään läpi, ja Intel joutui perumaan Timnan, koska sille ei olisi ollut markkinoita koska se olisi toiminut vain hyvin kalliin muistityypin kanssa.
Tämän seurauksena Intelillä ei ollut suurta motivaatiota lukita prosessoreitaan toimimaan vain yhden muistityypin kanssa, ja muistiohjain pidettiin erillisellä piirillä, siten että tästä erillisestä muistiohjainpiiristä pystyttiin tekemän eri versiota eri muistityyppejä varten, kuten oli aiemminkin tehty, ja saatiin prosessorit helposti toimimaan minkä tahansa muistityypin kanssa.
Se oli aikaansa edellä vuosia. SOI tekniikan ongelmat uutisten mukaan ratkaisi IBM.
IBM muuten käyttää edelleen POWER-prosessoreissaan erillisiä DRAM-ohjainpiirejä, eikä prosessoripiirille integroitua muistiohjainta. Ja IBMn POWER-prosessorit on maailman nopeimpia prosessoreita.
Markkinoilla ja valmiina ovat eri asioita. Arkkitehtuuri saattoi hyvinkin olla valmis. AthlonXP:n ansiosta AMD:lla ei myöskään ollut tulenpalava kiire Athlon64:n kanssa.
Athlon XP oli jo selvästi jäänyt jälkeen P4lle tuolloin. Nopein Athlon XP(Barton) pyöri 2.2 GHz:lla eikä se pärjännyt 3.2 GHz Northwoodille. Toki AMD siihen lätkäisi kylkeen "PR3200+"-leiman mutta se ei ollut tuon merkinnän arvoinen. Omistin kyseisen prossun aikoinaan.
AMD Athlon 64 & Athlon 64 FX - It's Judgment Day
Ytimien osalta ero oli kyllä suuri. Toisaalta pelkästään x86-64 oli uudistuksena selvästi merkittävämpi.
Jaa merkittävämpi kuin northwood vs prescott? Prescott lisäsi MYÖS tuen x64-64lle. AMDllä siirtyminen 32->64 bittiin on jotenkin merkittävämpi muutos kuin intelillä siirtyminen 32->64 bittiin?
AMDllä liukuhihnan rakenne pysyi melko samanlaisena K7->K8, paitsi että se vaan levennettiin 64 bittiin, ja decodeen lisättiin pari liukuhihnavaihetta lisää.
Presscottissa taas liukuhihnan pituus kasvoi n. puolitoistakertaisesti, ja käytännössä koko kokonaislukupuolen laskentayksiköt laitettiin täysin uusiksi, kun tuplanopeista ALUista luovuttiin.
Kuten jo selitin, Pentium 4 tukehtui kahden prosessorin ratkaisuissa jaetun väylän takia.
Onko esittää jotain benchmarkkeja tämän tukehtumisteorian todistamiseksi?
Se väylä oli ihan tarpeeksi nopea että se ei muodostunut merkittäväksi pullonkaulaksi.
Siinä Pentium 4n jaetussa väylässä ja siihen P4n piirisarjaan kytketyissä muisteissa oli kaistaa paljon enemmän kuin esim. AMDn socket 754:n muistiväylässä. Vasta socket 939n myötä AMD meni kuluttajamalleissa intelin ohi muistikaistassa.
Lisäksi kahden ytimen toteutus oli AMD:n ratkaisua huonompi ja kuristi entisestään muutenkin ahdasta prosessoriväylää.
Eikä kuristanut. Ylivoimaisesti suurin osa kaistantarpeesta suuntautuu muistiin, joten lähinnä sillä on väliä, paljonko kaistaa muistiin on.
hkultala sanoi:
Selitin jo, että core2 duo-tyylinen jaettu L2-välimuisti ei olisi toiminut P4n kanssa,
Eikä edes AMD K8ssa tehnyt jaettua L2-välimuistia, vaikka sillä oli isot L1-välimuistit, joiden kanssa se olisi toiminut paremmin.
Puhut pelkkää mutua, tähän mennessä et ole sanonut yhtään teknistä perustelua.
Ja Intelin MCM-ratkaisu nimenomaan mahdollisti useamman eri ytimen kokoonpanon pienemmällä määrällä erilaisia piilastuja. AMDn piti tehdä oma piilastunsa joka ydinmäärälle, ja uuden piilastun suunnittelu taas maksaa aina huomattavasti aikaa ja työtä. Intelin ratkaisussa oli siis yksi selvä tekninen etu AMDn ratkaisuun verrattuna.
Ei olisi toiminut koska siihen ei varauduttu.
Jälleen kerran pihalla kuin lumiukko.
Koko P4n idea perustui siihen, että L1-välimuisti on pieni ja nopea, ja L2 on myös hyvin nopea ja lähellä itse ydintä.
ja kuten jo totesin, AMD päätyi myös käyttämään ydinkohtaista L2-välimuistia.
Jälleen kerran sinulla on pahoja kaksoisstandardeja, vaadit inteliltä ihan eri asioita kun AMD:ltä.
Core 2:n kohdalla varauduttiin.
Core2 pohjautui P6-arkkitehtuuriin, jossa oli selvästi isommat L1-välimuistit.
Vai tuliko sekin sattumalta? AMD:lla ei ollut mitään tarvetta tehdä purkkaviritystä koska kahden ytimen ratkaisu oli valmiiksi mietitty,
Päinvastoin. Intelin p4n L1-välimuistiratkaisu oli sellainen, että se vaati erilliset L2-välimustit, ja intel toteutti erilliset L2-välimuistit P-D:ssä. Välimuistirakenne oli aina tasapainoinen.
AMD:n L1-välimuistiratkaisu oli sellainen, että se olisi toiminut myös hitaamman, jaetun L2-välimuistin kanssa. Silti AMD toteutti erilliset L2-välimuistit. Kumpi tässä oikein tekee purkkavirityksiä?
kuten myös selvästi järkevämpi prosessoriväylä integroidulla muistiohjaimella. Eivät ne sattumalta tulleet.
Yhden soketin systeemissä tämä sinun "järkevämpi prosessoriväyläsi" on täysin merkityksetön, kun sinne yhdelle soketille ei kuitenkaan pystytä tällä ratkaisulla änkemään yhtään enempää muistikaistaa.
Eikä integroidun muistiohjaimen hyödyt liity millään tavalla moneen ytimeen.
Yhden soketin systeemeissä integroidun muistiohjaimen hyöty on pienempi viive muistiin, ja siitä hyödytään ihan yhtä lailla vaikka ytimiä on vain yksi.
Monen soketin systeemeissä taas integroitu miustiohjain ja NUMA-topologia mahdollistaa paremman kaistan, mutta tämä vaatii sen useamman soketin. Tosin NUMAnkin voisi toteuttaa myös vaikka muistiohjain olisi erillisellä piirillä.
Miten K8 tähän liittyy? SMT tuli AMD:n prosessoreihin vasta 2017. Koska Willametessa ei ollut HT:ta, se viittaa pahasti siihen ettei HT:ta alunperin suunniteltu Pentium 4:n vaan se päätettiin lisätä jälkikäteen. Intel ei Pentium 4:n arkkitehtuuria esitellessä sanonut mitään HT:sta.
Ei sanonut, koska ei ollut mitään TARVETTA sanoa. Se olisi vaan herättänyt kilpailijat. Ja kyseessä on sen verran prosessorin rakenteeseen vaikuttava ominaisuus, että sen toteuttava logiikka todennäköisesti(muttei varmasti) oli jo Willametessa, mutta kytkettynä pois päältä, koska:
1) Liian pienten välimuistien takia suorituskykyhyöty siitä olisi useammin ollut negatiivinen kuin positiivinen
2) Maailmalla oli aivan liian vähän monisäkeistettyä softaa
tai
3) Toteutus oli vielä rikki, ja saatiin korjattua vasta jossain northwoodin revisiossa.
Jos on varaa, niin paljon parempi kehitellä uusia ominaisuuksia salassa, verifioida ne kunnolla, varmistaa että niistä oikeasti saadaan suorituskykyhyötyä ja sitten pudottaa pommi julkaisemalla uusi ominaisuus ennen kuin sitä hypettänyt kilpailija saa sen valmiiksi.
SMT:tähän DEC oli hypettänyt olevan tulossa Alpha EV8iin. Alpha EV8 ei vaan koskaan saapunut kauppohin, ja intel yllätti kaikki
AMD taas päätti Bulldozeriin tehdä CMT:n(clustered multi-threading) jota luuli SMT:tä paremmaksi ratkaisuksi.
Osoittautui virheeksi, ja Zenissä vaihdettiin SMT:hen.
Socket 754: yhden kanavan muisti
Socket 939: kahden kanavan muisti
Socket 940: palvelinratkaisu, ei lasketa
Tälle julkaistiin myös työpöytäprossuja, että lasketaanpas.
Socket AM2: DDR2 tuki, pakko vaihtaa
Intelin ei ollut mikään pakko vaihtaa sokettia aina muistityyppiä vaihtaessaan
Socket F: palvelinratkaisu, ei lasketa, DDR2 tuki, pakko vaihtaa
Intelin ei ollut mikään pakko vaihtaa sokettia aina muistityyppiä vaihtaessaan
Socket S1: kannettaviin, ei lasketa
Eli ei kovin montaa. Otetaan Intel vertailuun (palvelin- ja mobiilikantoja ei mukana):
Socket 423
Socket 478 DDR
Socket 478 RDRAM
LGA775 v1 (tuki yhden ytimen Prescotteja)
LGA775 v2 (tuki dual coreja)
LGA775 v3 (tuki Core 2:a)
LGA775 v4 (tuki korkeamman väylätaajuuden Core 2:a)
Väärin, tässä on 3 vain sokettia: socket 423, socket 478 ja socket 478.
Ihan sama prosessori toimi sekä DDR- että RAMBUS-muistin kanssa, ei ollut mitään erillisiä "socket 478 DDR" ja "socket 478 RDRAM"-soketteja.
Ja tämä oli juuri pointti siinä sinun mielestä "antiikkisessa" väylässäsi.
Oli toki sitten joitain piirisarjojen (epä)yhteensopivuusjuttuja, että piirisarjan piti olla vähintään tiettyä tasoa että tietyt prossut toimii.
Tuossahan juuri siihen vastasit. AMD:n dual coret sopivat käytännössä kaikkiin Socket 939 emolevyihin, myös niihin jotka oli valmistettu kauan ennen dual core prosessorin julkaisua.
Socket 939 julkaistiin 11kk ennen Athlon 64 X2n julkaisua. Ja kyseessä oli jo kolmas K8-soketti.
Tosin, moniin niihin "kaun ennen" valmistettuihin emoihin tarvi käytännössä BIOS-päivityksen että tuplaydinprossut toimivat niilllä.
Intelin dual coret vaativat uudet emolevyt vaikka olivatkin nimellisesti "samalle kannalle" = Intel ei tiennyt millainen se MCM ratkaisu tulisi olemaan.
Ei tuollaista voi olla tietämättä.
Mutta lueskelinpa vähän lisää:
Kyse oli siitä, että piirisarjalta vaadittiin SMP-tuki, koska prosessoreita on useampi. Jotkut "vanhat" Xeon-piirisarjat muuten toimivat jo P-Dn kanssa, mutta niitä käyttävät LGA775-emolevyt taisivat olla hyvin harvinaisia.
Intel oli jättänyt SMP-tuen pois kuluttajapiirisarjoistaan, koska halusi säästää, ja toisaalta markkinasegmentoida.
Ja yhteensopivuuden yms. kannalta oli sitten fiksumpaa tuoda samalla kertaa markkinoille se SMPtä tukeva kuluttajapiirisarja ja se SMP-tuen vaativa prossu, kuin esim. lisätä se SMP-tuki johonkin vuotta aiemmin tulevaan emoon jonka julkaisun aikana ei olisi yhtään sitä tarvitsevia prossuja ulos, jolloin olisi suuri riski että emolevyvalmistajat kuitenkin mokaa sen tuen kanssa.
Sähkönkulutuksen kanssa tällä ei siis ollut oikeasti mitään tekemistä.
Voihan asian noinkin sanoa. AMD oli silti miettinyt asian valmiiksi toisin kuin Intel.
Lähinnä että AMD oli populoinut maailman emolevyillä, jotka teoriassa tukivat moniydinprossuja, intel ei.
Core 2 Duo ei ollut kunnollinen moniydinprosessori
Jaa että enää se ei olekaan
Aamulla se vielä mielestäsi oli.
Nyt siitä tekee "epäkunnollisen moniydinprossun" se, että siinä oli muistiohjain erillisellä piirillä? Asia, joka EI MILLÄÄN tavalla rajoita sitä, millainen sen moniydinrakenne on.
Vai koska kirjoitin sinulle mitä eroja on Core 2:n ja Athlon 64 X2n rakenteessa, ja jos sinun määritelmälläsi vain AMD:n ratkaisu voi olla "oikea" tai "kunnollinen" niin jos joku muu on erilainen, sen täytyy olla "epäkunnollinen" ?
mutta siinä oli mietitty alusta saakka miten saadaan jossain määrin järkevä kahden ytimen toteutus aikaan ja siinä oli sellainen alusta saakka. Ei tosin mietitty järkevää neljän ytimen toteutusta eikä järkevämpää prosessoriväylää. Silti vähemmän purkkaviritys kuin Pentium D.
.. tai sitten siinä nimenomaan oli mietitty, että tehdään järkevä hierarkinen systeemi. Kaksi ydintä menee samalla piilastulla ja yhteisellä L2-välimuistilla, mutta jos 4 ydintä yrittäisi kytkeä samaan L2-välimuistiin, se alkaisi käydä liian hitaaksi. Joten käytännössä tarvii joka tapauksessa 2 erillistä L2-välimuistia, no, samalla voi tehdä 2 erillistä piilastua.
Ja yllättäen core2quad jossa on 2 piilastua MCM-paketissa jaetulla väyllällä onkin nyt jotenkin vähemmän purkkaviritys kuin P-D jossa on 2 piilastua MCM-paketissa jaetulla väylällä. Vaikka saman sinun mielestäsi hirveän hitaan pullonkaulaväylän takana on jopa enemmän ytimiä. Millä kriteereillä sinä oikein lasket sitä "purkkavirityksesi" astetta?
hkultala sanoi:
.. ja intel oli käyttänyt jaettua väyläänsä kytkemään yhteen monia prosessoriytimiä jo vuonna 1995, vuosia ennen kuin AMD uskalsi edes unelmoida tekevänsä mitään SMP-systeemeitä. (tosin tämä väylä käytti hiukan erilaista signalointia kuin P4n väylä)
Kertoo tuokin siitä kuinka jälkeenjäänyt Pentium 4:n väylä lopulta oli.
Kyseessä oli ERI VÄYLÄ. Jonka olisi pitänyt käydä ilmi tuosta boldatusta osiosta. Väylän topologia vaan oli samanlainen.
P4ssa käytetty väylä siis oli 6..26.66 kertaa nopeampi kuin tuo P6ssa käytetty(vähän riippuen, mitä versioita näistä vertaa)