Computația clasică pe înțelesul IT-știlor

Articol scris de Major Tom, singurul cititor al acestui blog care a fost în vizită într-un univers paralel.

Cineva trebuia să-și facă mila și de ITști, nu-i putem marginaliza la nesfârșit pentru micile și neînsemnatele lor aroganțe. Până la urmă au și ei dreptul să înțeleagă ce fac. Glumesc, da ?

Acum că mi-am asigurat toata antipatia de care aveam nevoie, pot răsufla ușurat știind că voi găsi toată îngăduința în cazul în care dau cu bățul în baltă.

NOTĂ: Multe concepte sunt simplificate sau chiar ușor distorsionate pentru a face articolul mai digerabil.

Computația reprezintă proprietatea unui sistem de a rezolva probleme. Primul sistem cu această proprietate care probabil vă vine in minte se numește “socotitoare” – sublim nume. În funcție de numărul de linii și coloane, poți rezolva ecuații polinomiale mai simple sau mai complexe. O ecuație polinomială este o ecuatie inventată pentru a-l găsi pe X exclusiv cu ajutorul operatorilor matematici de bază:

  • adunare
  • scădere
  • înmulțire
  • împărțire

În matematică există mai mulți operatori, dar sunt derivabili din acești operatori prin serializare.

Problema cu socotitoarea este că e un sistem foarte lent și limitat ca spatiu de stocare. Pentru a rezolva o problemă matematică complexă, este mai ușor să folosești o foaie și un creion. Pentru a crea un sistem care rezolvă orice problemă din viața reală (clasică, nu cuantică) avem nevoie de un set de reguli care să poată reprezenta abstract orice problemă matematică. Până în anii 1930 nu exista nici un model logic și repetabil de abordare a oricarei probleme matematice. Existau o grămadă de abordări diferite (moștenite toate din procesul de transformare numit “calculus”), fiecare abordare fiind limitată de rezolvarea unui set restrâns de probleme.

Ce înseamnă de fapt a calcula? E un proces de transformare a informației într-o informație cu entropie diferită.

Generalizarea computației clasice

În anii 1930, matematicianul logician american Alonzo Church vine cu primul model structurat de calcul care poate rezolva orice problemă clasică și il numeste “Lambda calculus”. λ-calculus este practic primul limbaj de programare capabil să rezolve abstract pe o foaie de hartie absolut orice problema clasică. Este un limbaj de programare pur funcțional (in λ-calculus informația este reprezentată ca o funcție), care se poate interpreta și rescrie singur.

Diviziunea celulară, cel mai spectaculos proces de transfomare a informației, se poate reprezenta în λ-calculus ca o expresie lambda numita “Y Combinator”.

Automatizarea și accelerarea computației clasice

λ-calculus e un limbaj de programare gândit pentru a fi folosit pe o foaie de hârtie, dar era nevoie de automatizare și accelerare a procesului de calcul.

Cred că ați auzit de Alan Turing, matematicianul și criptanalistul care a spart codul aparatului de encriptare nazist Enigma, salvand numeroase vieți omenești. A contat prea puțin, problema principală era orientarea lui sexuală de neiertat în rândul primatelor.

În fine. În anul 1936 el vine cu primul model abstract al unei mașini de calcul numită mașină Turing. O mașină Turing este primul model abstract și strămoșul computerelor de astăzi. Ce e așa special la mașina asta ? Păi definește într-un mod abstract pașii pe care o mașină de calcul mecanică sau electronică trebuie să-i parcurgă pentru a putea rezolva orice problemă clasică. Pentru a putea sparge Enigma, Turing a avut nevoie să automatizeze și să accelereze procesul de calcul, construind o mașină de calcul acționată mecanic, folosind modelul abstract al mașinii Turing inventate de el în 1936. Aveți mai jos o animație gif captată de aici: http://turingmachine.io

Ceea ce vedeți în animație reprezintă o secvență de pași efectuați de o mașină Turing. Pașii aceștia compun un “program”. În exemplul de față, scopul programului este de a însuma aritmetic valoarea inițială, decimală 11 reprezentată de cei 4 biți (1011 binar = 11 decimal), cu valoarea decimală 1. Adică 11+1 = 12 (1100 binar = 12 decimal).

Pentru a citi valoarea inițială 11, mașina trebuie să parcurgă 4 pași, ca să citească cei 4 biți. După citire va trebui să rescrie primii 3 biți pentru a obține valoare decimală 12.

Destul de banal, însă acest model procedural stă la baza automatizarii computației clasice. E principiul fundamental pe care se bazează computația clasică.

FAQ:

În ce limbaj de programare este scris acest mic program ?

 În cazul de față este scris in cod mașină. Codul mașină este unic pentru fiecare tip de mașină/arhitectură în parte, fie că e vorba de procesorul unui Smartphone, fie că e vorba de o mașină Turing mecanică.

Într-o caracterizare superficială, definiția codului unei mașini cu trei taste colorate (alb, negru, roșu) ar suna așa:

  • dacă apeși tasta albă o singură dată, capul de citire sare o poziție în față;
  • dacă apeși tasta neagră, sare o poziție în spate;
  • dacă apeși tasta roșie, salvează valoarea temporară într-un acumulator de valori,

Ați prins, cred, ideea.

Practic, pentru a introduce și rula un program într-o mașină, ai de executat o serie de tastări pe care astăzi noi le numim “opcode” atunci când rulează direct pe hardware sau “bytecode” când rulează în mașini virtuale. Astăzi opcodeul reprezintă adresele instrucțiunilor suportate de procesor (move, add, load, store etc.). Acest set de instrucțiuni este specific fiecărui procesor în parte.

Procesorul unui smartphone, de exemplu, având un set redus de instrucțiuni (ceea ce îl ajută să economisească baterie), se numște un procesor RISC, pe când procesorul clasic pe care îl știți (x86) are un set complex de instrucțiuni, adică este un procesor CISC.

Poate el fi scris în λ-calculus ?

Da, poate fi scris în λ-calculus pentru că este un limbaj de programare “Turing complete”, adică poate fi tradus în cod mașină, deci pentru a-l rula pe mașina noastră de calcul, avem nevoie ca cineva (om sau un alt program) să-l interpreteze (adică să-l înțeleagă) și cineva (om sau alt program) să îl compileze (traducă) în codul pe care mașina de calcul îl întelege, adică combinația specifică de butoane.

Notă: Turing și-a susținut teza de doctorat cu Alonzo Church drept profesor.

Există limbaje de programare sau proccesoare care nu sunt “Turing complete” ?

Da. De exemplu, limbajele de programare a graficii 3D (numite shaders) nu sunt TC și nici  procesoarele DSP nu sunt TC pentru că nu sunt proiectate pentru a rezolva probleme generale. Sunt proiectate pentru a rezolva probleme specifice foarte eficient și rapid.

De ce valorile sunt reprezentate binar și nu decimal ?

Pentru că a fost mai convenabil dpdv mecanic dar si dpdv electronic să foloseșsti un comutator în 2 poziții, în locul a 10 poziții. Întrerupatorul acționat mecanic cred că îl știți cu toții. Întrerupătorul acționat electronic se numește tranzistor.

Evoluția computației clasice.

În 1945, matematicianul și fizicianul de origine maghiară John Von Neumann vine cu prima arhitectură evoluată a unui computer (arhitectura Von Neumann) și descrie primul model abstract evoluat și structurat al unei mașini Turing, pe care noi astăzi îl numim computer. (De fapt astăzi utilizăm arhitectura Harvard, care este la rândul ei un model evoluat al arhitecturii Von Neumann).

Prezentul computației clasice

Computația modernă așa cum o știți se bazează pe tranzistori. Tranzistorul este un simplu comutator acționat electronic. Cu cât frecevența de acționare a comutatorului este mai mare, cu atât mai rapid termină de efectuat o operație. Dacă dorim creșterea numărului de operații, atunci vom crește numărul de tranzistori în procesor.

Tranzistorul este componenta fundamentală în computație.

El funcționează simplu. Este format din 3 terminale asa cum se vede in imaginea de mai jos (bază, colector și emitor). Inițial, între emitor și colector nu circulă curent, adică 0 logic, ceea ce înseamnă că tranzistorul este închis. În momentul în care aplicăm o tensiune, la baza lui se formează un canal conductor între emitor și colector, adică tranzistorul este deschis și reprezintă valoarea logică 1.

Din tranzistori se formează celule logice de baza (Flip-Flop/Latch/D-Latch etc.) care pot stoca sau șterge valori logice. Mai simplu spus, acestea sunt blocuri fundamentale de memorie statică. Din aceste celule de baza sunt formate blocuri mai avansate pe care le vedeți în specificații denumite NAND, NOR etc.

În ultimii 30 de ani, necesitatea creșterii computației a condus la creșterea densității numărului de tranzistori în procesor. Poate ați auzit de legea lui Moore, care spune că densitatea se dublează odată la 2 ani. Pentru a dubla densitatea trebuie micșorată distanța dintre emitor și colector. Problema este că am cam atins limita. Limita legii lui Moore este de 5 nanometri. Mai jos de distanța asta apare fenomenul numit “quantum tunneling” care impiedică închiderea tranzistorului. Un tranzistor care nu poate fi controlat e total inutil. Cei din industrie au totuși niște idei care rezolvă problema, înconjurând baza tranzitorului. Astăzi distanța dintre emitor și colector este de 7nm în tehnologie FinFet sau 12nm in tehnologie FD-SOI.

Viitorul computației clasice

Necesitatea creșterii puterii de calcul e abia la început, însă creșterea numărului de tranzistori nu este suficientă. Avem nevoie de creșterea paralelismului per instrucțiune.

Aici intervine computația cuantică despre care vom vorbi data viitoare. Un alt domeniu care prinde tot mai multe rădăcini odată cu avansul nanotehnologiei (în principal avansul în industria litografică), este computația moleculară.

Dați un search pe youtube după “molecular machines”. Sunt practic ansamble mecanice la nivel molecular. În corpul nostru găsim o serie de mașini moleculare, însă nu sunt Turing complete.

ADNul este și el un subansamblu al unei mașini moleculare. Nici mașinile (computerele) moleculare, nici computerele cuantice nu sunt o alternativă la computația clasică bazată pe tranzistori, sunt doar o extensie care duce la rezolvarea unor probleme foarte specifice de paralelism, în cazul computerelor cuantice sau de miniaturizare la nivel molecular în cazul computerelor moleculare.

Recomandare de carte: The Information: A History, a Theory, a Flood.

Gabriela Firea vrea să închidă acest site.

Poți contribui la eforturile mele cu un abonament de 3 USD

73 comentarii

  1. mi-a placut articolul, chiar daca tematica este putin arida.
    incepe cu o aroganta, pentru captarea atentiei.
    adevarat, daca autorul era anonim, as fi zis ca este barbat.
    dupa lectura, m-am gandit ca nu stiu daca sunt disponibile, cu plata, cursuri on-line de calitate in limba romana.

    6

  2. cred că-s mai proastă decât îmi imaginam chiar și în cele mai negre vise, că eu n-am înțeles nimic. 🙁
    is not you, is me. 🙂

    23

  3. Cred ca Major Tom e în continuare în universul lui paralel 😀

    8

  4. Am ajuns la concluzia la care altii au ajuns de mult in istorie , ca cine nu stie de gluma este prost si arogant.
    Da, exista o corelare intre cele trei elemnte ; misto/gluma, prostie, aroganta.

    2

  5. E binar nu neapărat ca e mai simplu ci ca astea is stările curentului: ai sau nu ai. (mențiune pentru aia care nu înțeleg de ce e mai simplu nu pentru tine).

    In 3 body problem fac aia un computer din 30 milioane oameni și fiecare având 2 steaguri alb/negru. Povestește ce ai băgat tu aici dar aproape uman :p

    8

    • Deci trăim în Matrix dar nu ca baterii ci ca elemente de calculator… GENIAL…

      3

    • #11

      Pai nu, ca 0 logic e 0V, 1 logic 1V. Cine te
      impiedica sa te duci pana la 10V ? Dar nu stiu daca intelegi ce inseamna sa ai 10 nivele. Motivul pentru care Intel scade voltajul la foecare generatie e pentru a scadea puterea consumata. Puterea scade fie odata cu curentul fie cu tensiunea. Sa ai 10 nivele inseamna ineficienta. Ce zici tu seamana mai
      mult cu computatia dar nu sarcina ci rotatia magnetica.

      0

    • #12

      *seamana cu computatia cuantica voiam sa zic

      0

    • De fapt ai vreo 16 niveluri la QLC si chiar 32 la PLC in memoriile flash.

      0

    • Gica: nu. Ca nu era vorba de oameni. Și nu trăiau în computer ci erau folosiți sa facă niște calcule

      Tom: io o vad ca pe introducerea unei probleme în plus. În loc sa mergi pe 1/0 (ai, nu ai) mergi pe (am, dar 3 deci).

      Apropo de sistemu asta binar, știți ca în monte Cristo foloseau astia un fel de telegraf manual. Ala francez avea niște brate și fiecare poziție a bratelor era o litera. (Real history, dar în carte apare)
      Suedezii au inventat un sistem binar. 10 placi, fiecare placa avea doua poziții. 2^10 variante.

      1

    • bine, ma pot înșela și sa fie ușor pe multiple nivele de voltaj. Dar, ar trebui schimbat mult prea mult și nu știu cât ar fi câștigul real

      0

    • Am găsit o comparație mișto între baza 2 și baza 3+
      Engleza are 26 de caractere. Cu astea faci cuvinte.
      Chineză are 3000 de caractere.
      Da. Un cuvânt în engleză are mai multe caractere decat unu în engleza…dar care e ala mai ușor de învățat /utilizat și care e mai predispus la erori?

      2

    • Așa știam și eu că sistemul binar e ales tocmai pentru că pot fi doar 2 stări ale curentului ai(0) sau nu ai(1).

      „Pai nu, ca 0 logic e 0V, 1 logic 1V.” Faptul că 1 logic e 1V e până la urmă o convenție și mă gândesc că nu e 10V din motive de eficiență.

      Dacă eu comunic cu vecinul de peste drum fiecare având o lanternă, important e ca lanterna pornită să însemne ceva, iar lanterna închisă să însemne altceva. În contextul informației nu prea contează pe câți volți merge lanterna mea, ci dacă e on sau off.

      6

    • #18

      Sistemul binar este folosit pentru ca e mai putin predispus la erori. Atunci cand se trimite semnal electric pe fir, la capatul celalalt poate ajunge distorsionat din cauza “zgomotului” de pe canalul de comunicatie. Partea care citeste trebuie sa isi dea seama ce valoare reprezinta acel semnal, si e mai simplu sa incerci sa ghicesti daca e 0 sau 1 decat daca ai avea 10 posibile valori (oare o fi 3 sau 7?). Daca vreti sa studiati mai in amanunt problema, vedeti la ce folosesc codurile corectoare de erori in arhitectura calculatoarelor (CRC etc)

      5

    • #19

      Există mai multe metode de a crește numărul de stări. Vă recomand următoarea serie de pe khan academy, pentru cei interesați de o scurtă istoria a informației:

      https://www.khanacademy.org/computing/computer-science/informationtheory/moderninfotheory/v/intro-to-channel-capacity-information-theory

      0

  6. #20

    Băejnebun?

    4

  7. #21
    saint

    unii-s in universuri paralele, eu sunt doar .. paralel

    3

    • Eu îs… serie

      2

    • #23
      Alexandra

      Masina timpului functioneaza! Am citit, am inchis ochii si parca ma vad in banca la facultate, intai la cursul de arhitectura calculatoarelor, apoi la circuite electronice.. si mi s-a facut dor. iti multumesc ca, desi n-ai vrut, ai facut posibila aceasta calatorie! 🙂

      5

  8. Foarte fain explicat. Mulțumesc.

    5

  9. #25

    Sunt IT-st, dar intai de toate sunt inginer.
    Sunt inginer, dar intai de toate sunt artist.

    10

  10. #26

    Close to the metal, eh?
    Misto articolul desi jumatate din el a fost in chineza ptr mine. :))
    Recunosc totusi ca putin timp in care am scris in X86 ASM a fost unul dintre cele mai excitante perioade din viata mea de programator – fiind si primul limbaj invatat. Si acum mai am pe undeva un convertor din hex in binary si decimal + o comanda secreta care printeaza inimioare violet intr-o veselie si da crash programului. 😀

    Te joci si cu chestii gen Arduino, electronica, etc? Daca da te invidiez.

    Asteptam articolul despre quantum computing (ma dispera ca nivelul meu de mate e mult sub ce trebuie ptr. a putea programa intr-un limbaj quantum).

    1

    • #27

      Cea mai low level aventura in computatia clasica a fost sa creez un SoC ce include processor RISC-V in 28nm FD-SOI, LTE si ceva IP custom in 60 Ghz. Da, m-am jucat si cu Arduino. E fun.

      2

    • Gigele, pe vremea aia era asa excitant ca aveai sute de mega de femei in calculator…

      1

  11. #29

    Cateodata iti dai seama singur, cateodata ai nevoie de ajutor….pentru a-ti da seama ca esti pe din afara:) Multumesc! D-aia n-am scutire pe impozit…

    7

  12. #30

    Interesant. O singură observație aș avea:
    De ce valorile sunt reprezentate binar și nu decimal? Pentru că, tehnic vorbind, biții sunt valori pe care le poate avea tensiunea electrică la bornele unui element electronic. Teoretic, dacă tensiunea e 0, bitul are valoarea 0. dacă tensiunea e mai mare de 0, bitul este 1. Numai că, în practică, componentele electrice nu sunt perfecte și nu se comportă ca în „mediul ideal” din fizică. În PC-urile de astăzi, bitul este considerat zero dacă tensiunea citită este între 0 și 1.3V și 1 când tensiunea citită este de la 3.5 la 5V (nu mai țin minte exact valorile, dar ați înțeles ideea că asemenea plaje de valori acoperă fluctuațiile de tensiune care ar putea altera rezultatul calculelor). Dacă s-ar putea face piese electronice care să funcționeze la modul ideal, valoarea tensiunii electrice într-o celulă de memorie ar putea fi împărțită în intervale discrete de 0.1V (pe plaja 0-1V, de exemplu). Am avea calculatoare mult mai reci, mult mai economicoase și mult mai rapide. Ia să vedem: numărul 6 ar fi reprezentat de o valoare a tensiunii între 0.5 și 0.6V, citită într-un singur pas. În calculatoarele binare, 6 înseamnă 110, ceea ce înseamnă 3 celule de memorie, pentru a căror citire e nevoie de trei pași. Deci, după părerea mea, reprezentarea binară a informației e rezultatul constrângerilor tehnice, iar comutatorul cu 2 poziții (în loc de 10 ) e consecința firească a alegerii reprezentării binare. Părerea mea, contraziceti-mă cu plăcere 🙂

    4

    • #31

      Pentru ca cuprul linilor
      de transmisie din PCB nu reprezinta un conductor ideal. El are impedanta sau admitanta lui. Liniile de transmisie la voltaje mici sunt foarte sensibile la
      interferenta electromagnetica.

      3

    • Aici intervine ingineria cu magnificul LVDS (sau muistul, depinde pe cine întrebi).

      1

    • @maotze dunga: inainte ca masinile de calcul digitale sa ajunga suficient de rapide, se foloseau calculatoare analogice care rezolvau ecuatii diferentiale si alte mascari mult mai rapid, tocmai pentru ca foloseau practic o infinitate de nivele de tensiune. Mai greu era cu programarea, fiecare calculator era construit de la zero pentru a rezolva o singura problema.

      0

  13. #34

    Nu sunt programator dar stiam cam 90% din ce-i scris mai sus. Poate doar aia care au urmat cursuri gen invata java in 30 de zile si acum se numesc programatori nu stiau asta.

    8

  14. #35

    Pentru a evidentia starile logice un tranzistor mosfet(G S D ) este mai potrivit decat un tranzistor bipolar( B C E ) . Pentru a evidentia doua stari se folosesc doi tranzistori fet . Latimea canalului drena- sursa a tranzistorului mosfet (sau derivate a stratului dopant) spune ce tehnologie se foloseste. Limita fizica ar fi 1nm in cazul siliciului

    1

    • #36

      Ai dreptate cu mosfetul dar n-am vrut sa o dau in eng si ma adresez publicului larg. De fapt e si mai detaliat de atat in CMOS dar nu e cazul aici. 5nm isotropic, anisotropic am zis deja ca poate cobora sub 5nm. Din nou nu am vrut sa le bat capul. Nu stiu exact limita in anisotropic si sincer nu cred ca o stii nici tu in 3D. In 2D e 1nm din ce stiu.

      3

  15. #37

    Cum se aplica tensiunea pe-un anumit tranzistor?

    0

    • #38

      Nu cred ca inteleg intrebarea. Pentru a inchide/ deschide tranzistorul aplici tensiunea la baza/gate.

      2

  16. #39

    Am ramas foarte impresionat de computatzia turingistå de mai sus. Mai ales chestia cu „ecuatia polinomiala” merita sute de laicuri. Maiorul Toma ar fi putut totusi consulta wiki ceva mai atent inainte de-a emite postul.

    4

    • #40

      Sa stii ca am folosit foarte putin wiki, cat sa verific niste date. N-ai cum scrie un articol cuprinzator folosind wiki. Dar unde am dat-o in bara ?

      1

  17. doar două observații: 1. la risc redus nu se refera la set redus de instrucțiuni ci la lipsa de complexitate ca un opus la cisc. seturile risc sunt comparabile ca dimensiune cu cisc dar prezinta o simplitate si uniformitate la formatul binar al instructiunilor si la modurile de adresare. 2. opcode nu reprezinta o adresa a instructiunii ci o eticheta pe mai multi biti din codul masina care este unica fiecarei instructiuni…gata, promit sa nu mai trag fum la ore târzii….

    6

  18. Cine vrea sa citeasca o carte pe acelasi subiect recomand cu caldura Code: The Hidden Language of Computer Hardware and Software de Charles Petzold. Daca e o carte in care vrei sa inveti cum functioneaza computerele si istoria lor, chiar daca n-ai avut nicio treaba cu ele inainte, that’s the book.

    3

    • Pare mișto. Mersi de recomandare!

      1

    • Chiar e, n-am vrut să pun link către Amazon ca poate îmi intra comment-ul în spam, dar review-urile cărții vorbesc de la sine 🙂 Chiar te ține prins de la un capitol la altul și mi-ar fi plăcut să o citesc în liceu. Sunt foarte rare cărțile care explică atât de simplu concepte care pot părea grele pentru unii.

      3

  19. Articol pentru o Românie normală. Eu îl voi printa.

    0

  20. #46

    De ce n-am acum 16 ani…

    3

  21. #47

    Dacă asta e explicația simplă… nu vreau să o vad pe ăia complicată :))

    3

  22. #48

    Evident ca fiecare interpreteaza in baza intereselor si afinitatilor personale, „realistii” vor analiza corectitudinea informatiilor, „umanistii” vor privi prezentarea lor.
    Un text ca un cristal pur…. Limpede, organizat, luminos… Fascinant.
    Major Tom, indraznesc sa te rog sa ne mai scrii. Despre ce vrei tu.
    O singura intrebare: desenele sint facute de tine?

    2

  23. #52

    Dar ce faci concret ca sa aplici tensiunea?

    0

    • Pui o sîrmă.

      1

    • #54

      Cred ca tu vrei sa intelegi ce se intampla din momentul in care apesi power on. Sincer e lunga povestea da pe scurt e cam asa: cand tu apesi power on, intrerupatorul trimite un puls de 3.3V (luati de la sursa de tensiune) catre chipsetul de power management. Chipsetul de power management alimeteaza cu putere toate celelalte retele inclusiv procesorul, memoria, hdd, chipsetul in care e scris BIOSul. In momentul asta BIOSul incepe sa trimita cos masina catre CPU conform
      configuratiei. Prima instructiune trimisa de BIOS catre CPU trigaruieste valoare logica 1 catre primul tranzistor al blocului D-Latch responsabil de acea instructiune din procesor. Drept urmare procesorul executa primul pas al unei masini Turing. BIOS/UEFI este primul program care ruleaza pe CPU. Este programul care pointeaza catre bootloader care la randul lui incarca kernelul sistemului de operare. Totul in pasi specifici unei masini Turing. Deci tensiunea aia vine de la sursa de putere dar prelucrata.

      4

  24. #55

    Merda…nu sunt proasta, sunt imbucurator de proasta. Ma duc sa ma bag in dulap

    1

    • Termina cu prostiile, articolul pur si simplu nu te ia de la zero (nici nu prea are cum si nici autorul nu se screme prea tare). Sunt carti bune daca te intereseaza subiectul, doar ca iti ia mai mult timp sa il intelegi.

      0

    • #57

      :)))

      0

  25. #58

    Desfaci capacul la computer, cauti tranzistorul si pui sarma? In acest articol sunt numai generalitati fumate de 50 de ani, fara nimic concret.

    0

    • eu inteleg ca vrei sa pari destept, te chinui de 3 comentarii, desi nu te baga nimeni in seama. aceste articole se adreseaza exclusiv celor care nu au legatura cu sistemul si care sunt curiosi. specialistii care au fumat aceste generalitati sunt rugati sa cante la alta masa. multumesc

    • #60

      Nu toti fumam ceea ce fumezi tu… de 50 ani…

      0

    • Colceag Nicolae, merge si cu fibra optica moderna, de aia de care nu gaseai acum 50 de ani.

      0

    • #63

      E chiar mai simplu, sarma e pusa de altii acolo, tu doar apesi butonul de pe carcasa. Odata ce ai trimis tu, manual, primul semnal electric, preiau tranzistorii mai departe si se activeaza unul pe celalalt.

      0

  26. #64

    This is Ground Control to Major Tom
    You’ve really made the grade

    2

  27. #65

    Degeaba va suparati! Nimeni nu-i lamureste pe oameni pentru ca nimeni nu intelege, de fapt, cum stau lucrurile, ci doar repeta papagaliceste diferite pasaje disparate din carti!

    0

    • #66

      dupa parerea ta, cine vrea intr-adevar sa inteleaga de la primul pas la ultimul, se rezuma la un articol de pe un blog ? Eu il vad ca pe un stegulet care semnaleaza ca in domeniul calculatoarelor se intimpla chestii interesante, cu o demonstratie ilustrativa.
      Sau tu pretinzi sa primesti mura-n gura un curs complet si gratuit?

      1

    • #67

      Poate nici nu se intelege intrebarea ta corect. Ca sa aplici tensiunea pe un tranzistor, incepi prin a alimenta procesorul cu curent, adica apesi butonul. Tranzistorii de pe procesor sunt asezati in grupuri si straturi pentru a forma porti logice, in care emiterul unui tranzistor este legat la baza urmatorui tranzistor. In acest fel, se poate aplica tensiunea pe tranzistori in mod selectiv. Pentru a porni tot procesul asta se folosesc niste instructiuni fixe programate de catre producatorul cipului.

      0

    • #68

      Omul întreabă unde exact are loc conversia din cod în tensiune electrică. Problema e că dacă are întrebarea asta, nu prea are pregătirea necesară să palpeze răspunsul. Major Tom i-a explicat în detaliu, omul susține în continuare că nu a primit explicație.

      Mai incerc eu: ai un ROM conectat la un CPU. Ambele primesc un semnal de clock de la un oscilator extern. Când conectezi circuitele astea la 3V, ROM-ul stie un singur lucru: sa trimita pe pinii de iesire, pe fiecare ciclu de ceas, in ordine, codul (binar) scris in el. Pe fiecare ciclu de ceas e parcurs cate un tranzistor din rom
      si in functie de starea lui, iesirea e 0 sau 3V.

      CPU-ul primeste pe sârmă codul (sincronizat pe acelasi ceas) și interpreteaza comenzile. Extrapolezi tu la un sistem mai complex care face acelasi lucru cu memoria ram, porturi interne si externe etc.

      0

  28. #69

    Uite ici computație
    (){ |& };

    0

  29. #70

    Un del de Maddame2, foarte faina seria asta de articole. cuz’ i’m a stupid milenial :)), dar macar am rabdare sa le citesc, deci attention span-ul nu e fucked up de tot.

    1

  30. #71

    Pentru corectitudinea informatiei transmise, avem niste corectii de facut.

    – tranzistorul desenat este unul MOS (Metal Oxid Semiconductor), dar explicatia este data pentru unul bipolar. Functionarea lor nu este identica, ci similara, ca rezultat final se obtine acelasi lucru, un dispozitiv care conduce sau nu curentul electric.
    Diferentele intre cele doua tipuri sunt multe, una din ele si cea mai importanta este astfel:
    – bipolarul este comandat in curent, este nevoie de un curent injectat in jonctiunea formata intre terminalele Baza si Emitor pentru a „deschide” un canal conductiv intre Colector si Emitor. Curentul curge de la Baza catre Emitor la bipolarul de tip NPN, respectiv invers la cel PNP. Bipolarul are un asa numit factor Beta, supraunitar, ce semnifica amplificarea curentului de baza in curentul de colector. La un factor 100, curentul de baza necesar pentru un anumit curent de colector este de 100 de ori mai mic.
    – mosfet-ul (de la Metal Oxide Semiconductor Field Effect Transistor) functioneaza pe baza tensiunii, nu a curentului per se. Intre terminalele Poarta (Gate – echivalent Baza de la bipolar) si Sursa (echivalent Emitor) se aplica o tensiune, iar daca tensiunea depaseste un anumit prag, specific tehnologiei folosite (0.2-1V), atunci aceasta tensiune duce la acumularea de sarcini in canalul tranzistorului, ce permite circulatia curentului intre Drena si Sursa. Mosfet-ul poate fi considerat, de fapt, un fel de rezistenta cu valoarea controlata de tensiunea de poarta, pentru ca rezistenta cand este deschis are o valoare finita foarte mica (sute-zeci-ohmi, pana la miliohmi), iar cand este inchis este o valoare tot finita, dar foarte mare (mega ohmi).

    Unde vroiam sa ajung, dar am lungit explicatia, este consumul de curent. Portile logice folosite azi in orice dispozitiv digital sunt create cu tranzistoare MOS in mod exclusiv. Bipolarele sunt folosite foarte rar, doar in anumite situatii speciale.
    Cum ziceam, bipolarul necesita curent de actionare, ce trebuie sa „curga” tot timpul cat vrem ca tranzistorul sa fie conductiv. Asta nu e chiar ideal. Mosfetul are nevoie de o tensiune aplicata, iar dupa deschiderea canalului, adica dupa acumularea unei sarcini in capacitatea formata de poarta si canal, nu mai curge curent de actionare. O poarta logica MOS consuma ceva sarcina electrica (tradusa in curent*timp) numai la schimbarea starii, dupa care nu consuma nimic, in afara de un curent infim numit leakage, datorat rezistentei foarte mari, dar finita, a tranzistorului neconductiv.

    Si totusi, de ce consuma microcontrolerele si procesoarele curent? Mult curent chiar? Datorita schimbarii starii milioanelor si miliardelor de porti logice la o frecventa foarte mare, fiecare poarta consumand o energie la fiecare schimbare de stare echivalenta cu CU^2, unde C este capacitatea portii, iar U este tensiunea de actionare (poate ne mai amintim de la fizica de clasa a XI-a, daca nu, fuga la wikipedia).

    Apropos, va stau la dispozitie pentru elaborarea/imbunatatirea/corectarea unor articole pe teme tehnice.

    0

    • baga mare, daca crezi ca e interesant si poti explica mai asa, pentru noi:)

  31. #73

    Va multumesc pt ceea ce faceti, pt comentarii, pt subiectele stiintifice si pt acest blog deosebit. Eu am intrebat, desi stiam ca tot in ceata voi ramane si asta nu din vina comentatorilor si nici din vina mea. Adevarul este ca pt a intelege ceva, trebuie sa stii mai intai altceva. Daca incepi cu studiul acelui altceva, nu-l poti intelege tocmai pt ca nu stii acel ceva de la inceput. Atunci, cum se poate iesi din acest impas? Studiul interactiv, elev-profesor. Elevul intreaba iar profesorul stie imediat de ce nu intelege elevul si ce cunostinte lipsa are, nu neaparat din fizica, ci de multe ori din matematica sau chiar din chimie. Sunt rari profesorii care intr-adevar pot sa faca asta. Majoritatea repeta pe de rost ceea ce scrie in manual. Din moment ce elevul nu intelege pasajul din manual, deodata-l intelege miraculos pt ca-l recita ca pe-o poezie profesorul? Daca i se repeta de multe ori, elevul ajunge sa-l memoreze pe dinafara, dar tot nimic nu intelege!

    0

Adaugă un comentariu

Câmpurile marcate cu * sunt obligatorii! Adresa de email nu va fi publicată.