Articol scris de Major Tom, care s-a mutat odată pe Jupiter, pentru că i-a plăcut mai mult gravitația de acolo.

Tigăile jos, fetelor. Știm că nu sunteți ITste și că aveți o minte genială. Ideea din spatele titlului este alta. N-am cum explica bărbaților computația cuantică fără a explica fizica cuantică. Cum să le explic eu lor ca bila aia de pe masă e și albă, și neagră în același timp? “Lasă-ne, fraiere, cu vrăjeala și zi ce vrei.” Dar pentru voi… pentru voi este evident.

Cum functioneaza un tranzistor clasic ?

Am zis data trecută de tranzistor și mi-ați reproșat, corect de altfel, că am ales greșit să reprezint comutația printr-un tranzistor bipolar „BJT”, care de fapt e folosit în general pentru a integra, spre deosebire de un tranzistor unipolar sau cu efect de câmp, „FET”, folosit pentru a comuta. Voiam doar să rămân pe teritoriul limbii române și al conceptelor abstracte. Dar pentru că acest detaliu ajută acum contextul, am zis că e un moment bun sa adnotăm diferit terminale după cum urmează:

  • G – grila unui FET, echivalent cu baza unui BJT
  • S – sursa unui FET, echivalent cu emitorul unui BJT
  • D – drena unui FET, echivalent cu colectorul unui BJT

Spre deosebire de BJT, G-ul unui tranzistor FET este controlat în tensiune, nu curent (pun intended). Asta înseamnă că un BJT este în general folosit pentru a preamplifica curenți foarte mici captați de la diverși senzori. În general, curentul este folosit pentru a integra semnale, tensiunea in schimb este folosită pentru a afla un număr redus de valori discrete și a le folosi pentru scopul de a comuta. Cum FETul lucrează foarte bine cu semnale de tensiune mică, a fost exact ce aveam nevoie în construcția blocurilor logice.

Trebuie să vorbim pe scurt și despre detaliile de fabricare a tranzistorului, în special a tranzistorului FET. În stare pură, siliciul, deși conduce curentul mai bine decât alte materiale izolatoare precum plasticul, nu o face nici pe departe la fel de bine ca un metal. De aici și termenul de semi-conductor. Motivul? Atomul de siliciu are 4 electroni, deci dacă ne uităm la structura cristalină formată de atomii de siliciu, observăm că au o capacitate de alipire (valență) perfectă, adică electronii au nevoie de energie suplimentară pentru a evada din legăturile covalente cu alți electroni vecini care formează cristalul de siliciu. Asta împiedică ușurința de deplasare a electronilor în cristalul de siliciu. Da, dar noi avem nevoie totuși de un conductor care poate fi comutat, nu ne ajuta folosire siliciului în stare pura, așa că injectam (dopăm) cristalul de siliciu cu impurități de fosfor sau bor pentru a rupe această valență perfectă. Fosforul are 5 electroni, iar borul are 3 electroni.

Ce înseamnă asta? Cristalele injectate cu fosfor pot ceda ușor al 5-lea electron, iar cristalele injectate cu bor pot primi cu ușurință electroni.

În momentul în care alipim cristalul injectat cu fosfor unui cristal injectat cu bor, în zona de alipire se creează o regiune de contact neutră în care electronul în plus al fosforului echilibrează electronul în minus al borului, astfel încât zona de contact acționează ca siliciul în stare pură, practic o barieră împotriva trecerii curentului chiar intre cele doua tipuri de cristale injectate. Pentru a ridica această barieră, aplicăm tensiune la terminalul G al tranzistorului, care rupe această barieră și formează un canal de conducție a curentului electric.

Există 3 moduri importante de fabricare a tranzistorului în chipseturi și am să le menționez fără detalii: MOS, SOI si FinFet.

  • Cea clasică și ieftină este MOS, litografie pe 3 substraturi: metal, oxid, siliciu
  • SOI „Silicon on Insulator”, frecvent folosită in 22 – 28 nm
  • FinFet este un MOS cu nervuri 3D și este cea folosita azi în nodurile de 14, 10 și 7nm

Ai ajuns până aici fără să te plictisești ? Acum poți uita tot. Sunt la un google distanță, nu ai nevoie să-ți încarci memoria cu informație deja existentă, ai nevoie sa o încarci cu concepte abstracte diferite de alte concepte abstracte.

Spinul magnetic

Toate particulele fundamentale din modelul standard posedă spin magnetic. Pe noi astăzi ne interesează electronul. În realitate nu e vorba de nici o rotație (spin), dar pentru a asimila vizual spinul magnetic, rotația este o analogie bună. Cea mai apropiată analogie a conceptului de spin este busola care își aliniază acul cu câmpul magnetic al pământului.

Imaginează-ți că o particulă, să spunem un electron, are atașat un ac precum cel al unei busole. În lipsa oricărei forțe, acul busolei se aliniază cu câmpul magnetic al pământului. Dacă începi să te învârți haotic, acul ăla nu mai stă fix. Se învârte de nebun în funcție de forțele implicate în agitarea busolei, dar și în funcție de forța magnetică exercitată mai slab asupra busolei. În cazul particulelor, agitația asta este cauzată de căldură (sigur te-ai lovit de termenul de agitație termică. Fiertul apei e probabil cel mai reprezentativ fenomen al agitației termice). Căldura este o forma de energie care se poate transforma în altă formă de energie, adică spin magnetic.

De câtă căldură avem nevoie pentru a modifica spinul unui electron ? Foarte puțină, puțin peste zero absolut (Kelvin), adică −273.15° C. La −273.15° C am putea spune ca un electron se află în repaus (nu exista de fapt repaus din cauza principiului incertitudinii al lui Heisenberg, dar asta e o discuție și mai lungă). Cum urci în temperatură, spinul începe să se agite. Cam așa:

Practic, în lipsa căldurii, spinul se aliniază cuminte unui câmp magnetic, în prezența căldurii se agită de nebun. Dar ce facem dacă vrem să-l controlăm cu precizie, să așezăm spinul în exact direcția dorită?

Răspunsul: scăpăm de căldură pentru a-l calma, iar apoi folosim microunde pentru a-l încălzi și implicit roti în exact poziția pe care o dorim. Și facem asta doar controlând frecvența și amplitudinea microundelor. Cam așa:

Cum functioneaza un tranzistor cuantic ?

Nu vă luați iar de mine cu termenul “tranzistor cuantic”. Nu există așa ceva, se numește de fapt „single-atom transistor”, dar eu îi spun aici tranzistor cuantic. Acum că știm cum funcționează un tranzistor clasic și știm și cum funcționează spinul unui singur electron, hai să vedem cum închidem sau deschidem tranzistorul cuantic doar controlând spinul unui singur atom (chiar și nucleul are spin, dar dacă intrăm și aici, nu se mai termină povestea asta, așa că ne vom referi la spinul unui singur electron). Vă aduc aminte că atomul de fosfor are 5 electroni. Cum ar fi să injectăm un singur atom de fosfor într-un cristal injectat deja cu atomi de bor și să controlăm spinul electronului?

Am obține un tranzistor care se închide și deschide controlând spinul doar din microunde. Spin UP = deschis, Spin Down = închis. Acesta este tranzistorul ce stă la baza computației cuantice.

Qubit

Ăsta e momentul în care ne lovim de fizica cuantică. Maddame va poate învăța fizica cuantică, dar în momentul ăsta e necesar să mă credeți pe cuvânt că până nu observăm/citim/măsurăm, spuneți-i cum vreți, spinul electronului, acest spin se afla in Spin UP si Spin DOWN in acelasi timp. Citim/măsuram/observăm spinul exact in momentul in care tranzistorul se închide sau deschide. Până când tranzistorul nu se închide sau deschide, spinul este în același timp UP si DOWN. Această stare se numește superpoziție (suprapunere) cuantică. Colapsul unei superpoziții în spin Up sau Down este rezolvat de ecuațiile lui Schrödinger (adică își decide poziția) prin calcul probabilistic, și nu deterministic.

Pentru a controla valoarea unui bit clasic trebuie să vin cu o singura valoare: adevărat sau fals. Pentru a controla valoare unui bit cuantic, adică unui Qubit, trebuie să vin cu 2 valori probabilistice: Q1 si Q2. Probabil veți spune, ok și ce mare brânză putem face cu asta ?

Cu un singur qubit nu ai putea face nimic în plus față de ce ai putea face cu 1 bit clasic. Și aici ajungem la corelarea cuantică între două sau mai multe particule, „entanglement”. În fizica cuantică, două sau mai multe particule aflate la capetele opuse ale universului acționează într-o anume corelație una față de cealaltă sau față de toate celelalte. Practic dacă schimbi spinul uneia dintre ele, cealaltă își schimbă și ea spinul direct proporțional cu nivelul de corelație în care se află cu ea.

Când cunoști corelația între 2 particule, e suficient să schimbi spinul unei singure particule pentru a schimba si cunoaște, fără a măsura, spinul celei de-a doua particule. Iar când cunoști corelația între 3, 4, 100, 1000 particule, practic cunoști spinul tuturor celorlalte particule fără măcar a măsura.

Știind asta hai să încercăm să diferențiem bitul clasic de cel cuantic.

  • 1 Qubit = 2 biți clasici (pentru că trebuie să-ți dau 2^1 coeficienți )
  • 2 Qubiți = 4 biți clasici (intră în joc corelarea, iar pentru că trebuie să cunosc corelația între 2 Qubiti, știu că voi avea nevoie de 2^2 = 4 coeficienți)
  • 3 Qubiți = 8 biți clasici (deja trebuie sa cunosc corelația dintre 3 Qubiti adică 2^3 = 8 coeficienți)

Poate ați observat deja creșterea exponențială.

  • 20 Qubiți = 1.048.576 biți clasici (2^20 = 1.048.576 coeficienți)
  • 300 Qubiți = numărul de atomi din universul observabil. Mai exact teoretic poți simula universul în 300 de Qubiți complet corelați (un task extrem de dificil, dar, zic eu, tangibil în următorii 20 de ani)

E dificil acum să înțelegi “the big picture”, vă pot spune doar că numărul de operații necesare pentru a rezolva probleme dificile scade exponențial. În matematică și informatică, Big O descrie numărul de operații necesare rezolvării unei probleme și în general e un detaliu de maxim interes când rezolvi probleme complexe. De exemplu, găsirea celui mai scurt traseu între punctul A și B din univers, fără să te lovești de nici o altă planetă, cu un algoritm clasic, implică un număr foarte mare de operații. Un algoritm cuantic însă, rulat pe un sistem cu câțiva zeci de Qubiți complet corelați, poate rezolva problema în doar o singură operație. De asemenea, predicția meteorologică, din nou operații peste operații ce necesită multă putere de calcul și multă energie, task pe care un algoritm cuantic l-ar rezolva într-un singur pas.

Criptografia, de exemplu, se bazează pe incapacitate computației clasice de a găsi numărul prim al unei valori foarte mari. Pentru a găsi numărul prim, computația clasică are nevoie de mii de ani cu toata puterea de calcul existentă astăzi. Un sistem cuantic ? Depinde de numărul biților corelați. Un an, o zi, un minut. Din cauza computerelor cuantice a și apărut interesul pentru idea de „post-quantum criptography”.

Pot rula algoritmi clasici pe computere cuantice ? În nici un caz. Doar algoritmii cuantici modelați specific pentru numărul maxim de corelații posibile. IBM are un proiect în care au pus la dispoziție un sistem cuantic cu aprox. 20 biți corelați parțial. E foarte greu să corelezi 20 de tranzistori cuantici.

Vom vedea computație cuantică mobilă ? Nu știu dacă se va întâmpla așa ceva vreodată. E dificil să ții un tranzistor aproape de 0 Kelvin. Mecanismul de răcire în sine este un topic separat (și chiar interesant). Sitsemul de răcire e foarte dificil de miniaturizat. Generarea câmpului magnetic necesar alinierii spinului este iarăși un mecanism greu de miniaturizat.

Poate computația cuantică să înlocuiască computația clasică ? Greu de crezut, pentru că în probleme matematice ușoare cum ar fi afișarea unei pagini web, redarea audio sau video, viteza de procesare e mult mai lentă decât la computația clasică. Computația cuantică, zic eu, va rămâne pentru mult timp strict dedicată rezolvării problemelor foarte complexe.

Vrei să te joci cu algoritmi cuantici ? Uite: quantum-computing.ibm.com

 

“Revere those things beyond science which really matter and about which it is so difficult to speak.”

Werner Heisenberg