Sari la conținut
ELFORUM - Forumul electronistilor

Gata ? frecventa procesoarelor


Badman

Postări Recomandate

  • Administratori

Vad ca acum de 10 ani nu mai inainteaza astia cu frecventa la procesoare 

 

Scot tot felu de petarde pe banda rulanta dar rar sare cate unul de 4Mhz

 

Eu cred ca au atins frecventa limita pentru o functionare stabila, ce parere aveti ?

Link spre comentariu

Mi se pare un lucru bun. Cumva era mai simplu sa progresezi in ceea ce priveste hardware-ul, stiai mereu ce ai de facut, disipatie mai mica, tranzistori mai mici si mai multi, clock-uri mai mari etc. E aceasi gen de mentalitate prin care daca ai un drum cu o singura banda, rezolvi problema traficului punand masinile sa mearga cu viteza de 200Km/h. 

Uneori e bine sa mai dam cu capul si sa stam o idee sa reflectam asupra drumului de parcurs. 

Pana sa apara conceptul de multi-core in mainstream, a fost o perioada similara cand incepeam iarasi sa impingem in zona de 3-4Ghz cu procesoare single core cu TDP sinistru de mare. Atunci ne-am batut capul sa introducem concepte gen branch prediction sau sa avansam metode noi de out of order execution pentru a optimiza performantele acestor procesoare. 

 

Un exemplu simplu. Am urmatoarea sarcina de rezolvat: 

 

3+2+(2x8-10)+2:1-1+10-2= ? 

 

Metoda primitiva folosita la origine spre a rezolva aceasta sarcina viza modul in care noi am face-o. Respectiv ordinea operatiilor, intai continutul parantezei, incepem cu inmultiri/impartiri, apoi adunari scaderi etc - pana ajungem la rezultat. Daca ai o ecuatie complexa de rezolvat - asta e - in termen simplisti - un procesor tactat la 2Ghz o "rezolva" mai repede decat unul la 1Ghz (restul aspectelor fiind similare). Prin analogie cu modul in care noi am aborda problema, au fost ulterior scrise primele aplicatii care s-o rezolve. 

 

Apoi niste neni creativi au venit cu urmatoarea chestie (nu intru in detalii despre pipe line-uri, chiar cu riscul de a simplifica exprimand gresit unele aspecte): 

Hai sa spargem ecuatia noastra in cateva bucatele distincte

 

3+2 = 

2x8-10 = 

2:1-1= 

10-2= 

 

Chestii mai simple pe care procesorul sa le abordeze concomitent. Astfel rezolvam cele 4 sectiuni simultan si apoi rezultatele le adunam/scadem conform sarcinii initiale. Un procesor ce foloseste pipeline-uri paralele poate performa mai eficient in astfel de sarcini chiar tactat la o frecventa mai mica fata de cel din cazul anterior. Tu ca si om n-ai putea niciodata aborda astfel o problema de acest gen, dar asta nu opreste cu nimic un procesor... 

Peste chestia asta putem veni cu speculative execution sau cu branch prediction si tot asa... 

 

Ideea e ca o mica pauza ne pune in postura de a ne bate nitel capul si a intelege mai bine ca finalmente dispunem de  resurse limitate  si cum sa le valorificam mai eficient - pentru ca din punctul asta de vedere avem mult spatiu de evolutie. 

 

Un exemplu de gandire umana asupra unei masini de calcul evoluata - ar fi tocmai in cazul filmelor Star Trek.

In Next Generation, avem androidul Data si computerul navei. 2 chestii distincte foarte ultra mega avansate. Vine capitanu' : Data, avem o problema, mezu' navei a depasit regiunea SOA si urmeaza sa se faca sarma. Tu esti singurul care poate salva acum nava! Reconfigureaza nu stiu care parametri, avem doar 2 minute pana pocneste nava!!

Si se apuca Data (cel mai avansat android cunoscut) sa transmita comenzile computerului navei (cel mai avansat computer implementat pe o nava). Si cum o face?!? - Aaah, pai se duce la o consola si .... TASTEAZA FOARTE REPEDE. :rade:  Deci cele mai avansate 2 computere din bucata aia de galaxie, n-au gasit alt mod mai inteligent de a comunica decat o interfata mecanica cu taste (sau touchscreen) in care bati caracter cu caracter si instructiune cu instructiune. 

Asta inseamna sa alergi dupa Gigahertzi de dragul vitezei...

 

 

Editat de matzah
Link spre comentariu
1 hour ago, matzah said:

3+2+(2x8-10)+2:1-1+10-2= ? 

 

Apoi niste neni creativi au venit cu urmatoarea chestie (nu intru in detalii despre pipe line-uri, chiar cu riscul de a simplifica exprimand gresit unele aspecte): 

Hai sa spargem ecuatia noastra in cateva bucatele distincte

 

3+2 = 

2x8-10 = 

2:1-1= 

10-2= 

 

Problema aici este ca nu toate operatiunile alea dureaza la fel de mult, unele dintre ele pot chiar sa dureze mult mai mult si tot procesul este blocat asteptand dupa operatiunea respectiva sa se termine. Apoi operatiunea finala este rulata tot pe un singur core. De asta aportul de performanta nu este direct proportional cu numarul de core-uri, de multe ori nici nu se justifica programarea complicate multicore pentru un castig minor sau deloc. Majoritatea aplicatilor nu castiga nimic ruland pe mai multe core-uri.

 

Daca vorbeam de autostrazi si de viteze ideea e simpla:

Se considera ca avem date de transportat si automat in loc sa crestem viteza, crestem capacitatea de transport, schimbam masina mica cu un camion mare cat 4 masini mici. Camionul respectiv nu o sa poata sa mearga la fel de repede ca o masina mica (mai multe core-uri = caldura mai multa generata = racire mai greoaie), cu toate optimizarile camionul respectiv o sa consume si mai mult decat o masina mica - fiecare core consuma, chiar si in idle, consum care iar se traduce in caldura si baterie consumata. Putem sa dam disable la core-uri si le folosim doar atunci cand avem nevoie dar cam dispare rostul de a avea un procesor puternic daca il ti oprit, si daca dai disable la core-uri nu o sa iti urce viteza, viteza tot aia este, nu e ca si cum ar fi urmarit sa dezvolte viteza in loc de sa creasca numarul de core-uri.

 

Si la sfarsit, utilizatorul normal, de rand, are nevoie doar sa se duca singur pe el cu masina, nu are date greoaie de carat, in schimb el vrea sa se miste repede, dar este limitat de faptul ca i-au fost bagate pe gat mai multe core-uri decat are el nevoie. El deschide un browser, deschide un youtube, un facebook / twitter / twitch, socializeaza putin, deschide cateva poze, poate chiar un paint, un radio online. Nimic din toate astea nu beneficiaza de mai mult de doua core-uri. Chiar daca browser-ul poate stie sa foloseasca mai multe, el nu are nevoie de ele, el nu foloseste un core la 100% ca sa il ajute altul. Deschizand toate aplicatile normale mentionate mai sus, la un loc, pe un procesor normal o sa avem incarcare de 10% cu spike-uri catre maxim doar pe cateva sutimi de secunda cand accesam o noua pagina.

 

Eu cu siguranta prefer un dual core la 5ghz decat un quad-octa core la 4ghz. Nu folosesc la nimic mai multe core-uri, doar stau in idle si imi consuma curent si genereaza caldura si singurul core sau cele doua pe care il folosesc merge/merg la 4ghz, deci viteza mica fata de un posibil 5ghz la un procesor similar dar numai cu doua core-uri.

 

Un dualcore la 5ghz s-ar misca mult mai bine decat un quad/octa core la 4ghz din care folosesti doar 1-2 core-uri, folosire normala de zi cu zi. Nu cred ca sta vre-unul din noi sa codeze nonstop sau sa faca cine stie ce randari profesionale sau gaussian blururi fara oprire. Chiar si cand faci astea, daca le faci un sfert din timpul total, dualcore-ul la 5ghz s-ar tine in media zilnica deasupra quad core-ului. Castigi cand le faci nonstop, dar nimeni nu face asta pe un calculator normal. Sa zici ca faci asta nonstop pe calculatorul de zi cu zi e doar o minciuna exagerata.

Editat de dany_cta
Link spre comentariu

S - a ( cam ) ajuns la limitele tehnologice pentru procesoare cu siliciu . Deja sant componente pe 7nm , mai sus devin instabile . Atat se poate ... fizica e imuabila , tot  ea  ne - a adus pana aici . Trebuie altceva ( ca material ) , alta arhitectura , sau alt principiu . Sau toate la un loc , daca nu  macar cateva . Deja prea mult ( tehnologic si comercial ) , schimbarile ar fi ( sau vor fi ) radicale ... Cand se va intampla . Peste mult timp ( parerea mea )  . Inca nu e cazul . 99 % din lumea pe care o avem in jur este electronizata  cu structuri " clasice " .  De la marile supercalculatoare , Facebook , telefonul mobil inteligent , toata industria , stiinta , tehnologia ,  cercetarea , invatamantul , fabricile , comertul , sant impletite in jurul actualei tehnologii . Nimeni nu stie care va fi urmatorul pas . Oricum ,  mai radical decat descoperirea si folosirea focului . Cand va fi ... , eu cred ca intr - un viitor incert . Acum este civilizatia siliciului  . Viitoarea ... Ma rog , pareri personale . 

 

https://www.stiintaonline.ro/limita-de-utilizare-a-siliciului-si-urmatoarea-revolutie-din-electronica/

Editat de gauss
Link spre comentariu

Probabil că la un moment dat nici nu va mai fi nevoie de o putere așa de mare de procesare, cel puțin la nivelul utilizatorului obișnuit. S-a crescut rezoluția imaginilor la niveluri inutile aplicațiilor uzuale.La ce îți trebuie o imagine de 4k dacă nu există infrastructură care s-o transmită și pe care să și-o permită toată lumea ? Au apărut telefoane cu n-șpe mii de Megapixeli, la ce bun, dacă un ecran normal nu mai face diferența între ele ? Logica unei imagini cu mulți megapixeli e s-o folosești pe ecrane mari, unde mai puțini pixeli s-ar vedea aiurea, dar când privești pe un ecran de monitor sau de telefon care are o rezoluție nativă limitată, o imagine de 10 Mpixeli va apărea aproape la fel cu una de 5 Mpixeli, fiindcă monitorul nu are de unde să-ți afișeze mai mulți pixeli decât are la dispoziție. Acum, problema e că toate aceste imagini HD necesită o putere imensă de prelucrare pentru servere și computerele personale, practic cea mai mare parte a informației vehiculate e imagine......

Cred că rezoluțiile uzuale se vor stabiliza la un moment dat și nu va fi nevoie nici să tot schimbăm plăci video din ce în ce mai performante, fiindcă tehnologia nu va trebui să depășească limitele umane.....

 

Editat de validae
Link spre comentariu

@dany_cta pai exact, la momentul actual nu te ajuta un numar suplimentar de nuclee, tocmai din slaba optimizare a aplicatiilor pentru asa ceva. Cel putin in lumea x86 vorbim de mult legacy support catre trebuie asigurat, asta fiind una din piedicile mari in a modifica radical modul in care aplicatiile folosesc resursele disponibile. 

Un exemplu ca se poate altfel decat x86 ar fi platformele arm din dispozitivele mobile. Sunt dezvoltate si standardizate ulterior ce instructiunile de baza ale x86 au fost practic batute in cuie. Ori astazi poti obtine cu ele performante similare cu x86 intr-un TDP mai bun. Fireste n-avem alternativa ARM pentru segmente high end din procesoarele x86 sau pentru unele tipuri de aplicatii. Dar se poate... 

Procesoarele lucreaza cu pipeline-uri. Practic ne-o imaginam ca o linie de asamblare de o anumita lungime pe care se pot executa un numar de pasi. Timpul in care un pipe line este parcurs este dat de frecventa de ceas a procesorului. La origine, era desirabil sa avem pipe line-uri cat mai lungi deoarece puteam introduce instructiuni mai complexe ce erau "rezolvate" pe parcursul prin pipe line. 

Deci pipe line lung (multe instructiuni) + viteza executie mare (frecventa ceas mare) = utilizatori fericiti

Apoi a aparut problema cu software-ul. De regula in realitate nu multe aplicatii incarca eficient un pipe line lung. Ori chiar daca incarc cu 20% (sa zicem.. ) acel pipe line e blocat pentru acea "bataie" de ceas. Ulterior datorita directiei in care o lua software-ul, s-a propus varianta cu pipeline-uri mai mici, dar mai multe. Avantajul ar fi ca pe aceasi "bataie" de ceas, poti aparent face in paralel mai multe chestii, desi fiecare din ele - mai simpla. 

Si iarasi.. a aparut problema de care zici, unele instructiuni tin un pipe line scurt ocupat prea mult timp. Astfel avem in toate procesoarele moderne mai multe tipuri de pipe line-uri, de lungime diferita. 

 

Problema e ca daca ai pipe line-uri mai mici si multe, e posibil ca o aplicatie.. efectiv chiar sa n-aiba nevoie de atatea, sa incarce doar un numar restrans. Aici intervine branch prediction. Sunt destule cazuri in care o bucata de cod tinde sa aiba un comportament destul de predictibil. Spre exemplu: 

 

If (conditie) 

Then (chestii de facut) 

Else (alte chestii de facut) 

End If 

 

(PS, stiu ca procesorul nu "vede" lucrurile asa, dar sa ne imaginam interpretarea binara a ce e mai sus) 

 

Daca ai pipeline-uri mai mici, poti sparge asta in bucatele separate. Pe un pipeline lung, verifici conditia IF, apoi rulezi instructiunile cazului in care te afli. Pe un pipeline scurt, stiind ca ai o conditie IF, te astepti in mod normal sa ai un Then si un Else. Chiar daca n-ai apucat inca sa verifici conditia IF, nu te opreste nimeni sa incepi sa procesezi cazurile Then si Else incarcand alte pipe line-uri. In momentul in care ai rezolvat conditia IF, apoi incarci din cache varianta corecta (then/else) iar pe cealalta o stergi. 

In practica diferenta intre branch prediction+out of order execution si ... fara branch prediction + in order execution - este de 35-40% in favoarea primei variante. Asta pe aplicatii uzuale, in conditiile aceleasi frecvente de ceas, cache similar etc. 

 

Toate chestiile astea le facem folosind un singur nucleu. Fireste daca cresc frecventa de ceas, tot acest proces poate fi derulat mai rapid, si intr-o vreme era mai simplu efectiv sa fac asta. Astazi nu. Deci softisti si astilalti cu hardware vor trebui sa lucreze mai indeaproape in dezvoltarea viitoarelor procesoare. 

 

E adevarat, ne apropiem de sfarsitul posibilitatilor de a miniaturiza acei tranzistori. Aici nu e vorba de siliciu vs galiu sau chestii de genul. Ci simpla distanta intre drena-sursa. Ca sa functioneze efectiv, un tranzistor trebuie sa poata controla eficace fluxul de electroni intre astea. Si mai esential, sa poata sa-l opreasca. Sub 2-3nm intervine mecanica cuantica. Bariera fiind foarte mica, electronii o pot efectiv "sari" in baza unui efect numit "quantum tunnelling". Probabilitatea acestui fenomen creste cu cat scazi distanta intre cei 2 electrozi (ca sa le zic asa). Sub 2-3nm este intr-atat de mare incat "0" si "1" nu mai sunt o chestie atat de clara si intervin prea multe erori in tranzitia dintre stari. Problema asta n-o rezolvi cu alte materiale, nu e ca si cum ai putea pune un izolator mai bun intre cei doi electrozi sau a ii confectiona din alt material sau pe alt substrat. Quantum tunnelling asta (nu stiu cum sa-i zic in romana) nu tine cont de chestii de acest gen. 

De-asta incercam sa trisam oricum altfel aceasta problema, alte nuclee, TDP mai mare etc. Nu poti miniaturiza mai mult. 

Iar tranzitia la procesarea cuantica e al naibi de abrubta si impractica actual din simplul motiv din care astea nu functioneaza binar si nu prea obtii mari beneficii daca introduci un layer suplimentar ce translateaza binar in cuantic (probabilitati). Va trebui ori sa rescrii tot software-ul existent de cand lumea ori sa incepi practic de la zero - pentru a putea vedea beneficiile unui astfel de model computational. 

 

Editat de matzah
Link spre comentariu
11 hours ago, PapaHell said:

Vad ca acum de 10 ani nu mai inainteaza astia cu frecventa la procesoare 

 

Scot tot felu de petarde pe banda rulanta dar rar sare cate unul de 4Mhz

 

Eu cred ca au atins frecventa limita pentru o functionare stabila, ce parere aveti ?

Conteaza prea putin ritmul de baza al unui microprocesor, infinit mai importanta e arhitectura!

 Ia comparati un  CPU Core2Duo la 3Ghz din 2006, cu un APU AMD 10 Kaveri, tinut tot in 3GHz, din anul 2015!!!:)

 Una e un amarat de CPU cu 2 nuclee/2 thread, alta e o bestiuta cu 4 CPU+6 GPU pe o singura pastila(numere reale!), care zburda cu 3,7Ghz, si are un set de instructiuni actual. Una e sa te uiti la un film cu raporturile imaginii 3/2(de ex. un film cu Stan si Bran din anii `30), si sa-l vezi pe un A10/Ryzen la 16/9, fara absolut nici o deformare geometrica si evident fara nici o cropuire, zero anamorfism,  alta e sa te chinui cu o cazatura de C2D/Quad din 2006, cu o placa video vai de steaua ei, care abia afiseaza corect desktop-ul de Win7, iar la Win 10 baga artefacte/zimti in mod garantat, fiindca e depasit driverul.

Progresul APU e urias in ultimii 5-6 ani, e normal ca un CPU Intel la 3Ghz de acum 10 ani sa coste 5 lei SH, iar un APU-nou-nout( pentru necunoscatori cu caracteristcii similare celui vechi), intre 500 lei si 1500 lei. Tot asa cum nu poti compara un telefon Samsung S5830i din 2011, cu un Samsung S10 din prezent...diferentele sunt colosale. sau nu poti compara o amarata de memorie DDR2/800, cu o memorie DDR4 la 2400 MHz.Chair e dovada de gigleism sa faci asemenea comparatii, ce sa spui, ca o DDR2/800 se misca cu maxim 1600MB/s iar o DDR4 se misca cu 4400-4800MHz?! Diferentele sunt la o randare DWG intre 39 minute la sistemul cu DDR4 si 1129 de ore cu DDR2-ceva grotesc, enorm.

Editat de Spitfire
Link spre comentariu

Nici nu conteaza viteza chiar  asa daca nu exista programe /jocuri care sa necesite asa frecvente mari, multe nu folosesc toate nucleele, apoi de ce sa se streseze asa de mult intel sau amd daca nu este nevoie de asa ceva, amd deabia fac fata si sunt in urma intel, in plus exista si limitarea termica, nu ca nu s-ar putea da iau foc fara solutii de racire eficiente, sa nu mai vorbim si de zgârcenia lor cand aleg de ex. sa puna pasta termica intre procesor si capsula, daramite sa dezvolte cine stie ce procesor de 7 ghz. Mai conteaza si placa video (cam mult in unele aplicatii, daca nu e una buna trage in jos procesorul indiferent de cat de bun este) ram ssd.... Or sa ajunga sa zicem sa producă procesoare pe 7nm etc apoi, pana la procesoare cuantice se cam bate pasul pe loc. Vad ca este singur,, progres,,! 

Link spre comentariu

 

Quote

amd deabia fac fata si sunt in urma intel

Pe bune?! Ia sa vedem ceva echivalent de la Intel pentrul asa ceva:1-1080.1238710771.thumb.jpg.8a6bc4b5a2a5d203fda576d8f4e91230.jpg

 

Intr-adevar, in 2018 AMD "abia a tinut pasul" cu Intel:

 

 

Quote

sa puna pasta termica intre procesor si capsula, daramite sa dezvolte cine stie ce procesor de 7 ghz

Limita teoretica pentru siliciu e de 4,4GHz, la o groapa de potential de 0,62V.Nu am auzit de vreun procesor Intel sau AMD care sa aiba pasta termoconductoare intre pastila si IHS.

Intel-AMD-CPU-Market-Share_1.png

Editat de Spitfire
Link spre comentariu

Defapt aici vroiai sa ajungi de la inceput, nu-i asa?

@Spitfire lasa vrajelile cu AMD vs Intel. Sint doua categorii de procesoare optimizate pt aplicatii de tip difert.

In functie de ceea ce le dai sa calculeze va iesi cind unul cind celalat mai bun. Este exact cum faci comparatiile cu un post mai sus, adica nu pot fi comparate direct.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări