Programy používajú logické adresovanie na adresovanie operandov vo fyzickom adresnom priestore. Procesor automaticky prekladá logické adresy na fyzické, ktoré sú potom vydávané na systémovú zbernicu.

Architektúra počítača rozlišuje medzi priestorom fyzických adries (PHA) a priestorom logických adries (LAP). Fyzický adresný priestor je jednoduché jednorozmerné pole bajtov, ku ktorým pristupuje pamäťový hardvér na adrese prítomnej na adresovej zbernici mikroprocesorového systému. priestor logických adries organizuje programátor na základe špecifických potrieb. Preklad logických adries na fyzické adresy vykonáva jednotka správy pamäte MMU.

V architektúre moderných mikroprocesorov je LAP reprezentovaný ako súbor základných štruktúr: bajtov, segmentov a stránok. Použitie mikroprocesorov nasledujúce možnosti organizácií priestor logických adries:

  • plochý (lineárny) LAP: pozostáva z poľa bajtov, ktoré nemá definovanú štruktúru; preklad adries nie je potrebný, pretože logická adresa je rovnaká ako fyzická;
  • segmentovaný LAP: pozostáva zo segmentov - súvislých oblastí pamäte obsahujúcich vo všeobecnom prípade premenlivý počet bajtov; logická adresa obsahuje 2 časti: ID segmentu a ofset v rámci segmentu; preklad adries vykonáva segmentačná jednotka MMU;
  • strana PA: pozostáva zo stránok – súvislých oblastí pamäte, z ktorých každá obsahuje pevný počet bajtov. Logická adresa pozostáva z čísla stránky (identifikátora) a posunu v rámci stránky; preklad logickej adresy na fyzickú adresu vykonáva pagingová jednotka MMU;
  • segmentová stránka LAP: zahŕňa segmenty, ktoré zase pozostávajú zo strán; logická adresa pozostáva z identifikátora segmentu a ofsetu v rámci segmentu. Mapovač segmentov MMU prekladá logickú adresu na číslo stránky a ofset stránky, ktoré sú potom preložené na fyzickú adresu mapovačom stránok MMU.

Mikroprocesor je schopný pracovať v dvoch režimoch: reálny a chránený.

Pri práci v skutočný režim možnosti procesora sú obmedzené: kapacita adresovateľnej pamäte je 1 MB, nedochádza k stránkovaniu pamäte, segmentov majú pevnú dĺžku 216 bajtov.

Tento režim sa zvyčajne používa v počiatočnej fáze zavádzania počítača chránený režim.

AT skutočný režim registre segmentov procesora obsahujú horných 16 bitov fyzickej adresy začiatku segment. Posunuté o 4 bity doľava selektor udáva 20-bitovú základnú adresu segmentu. Fyzická adresa sa získa pridaním tejto adresy k 16-bitovej hodnote offsetu v segmente, vytvorenom podľa určeného režimu adresovania pre operand alebo extrahovanej z registra EIP pre inštrukciu (obr. 3.1). Na prijatej adrese sa informácie načítajú z pamäte.



Ryža. 3.1. Schéma na získanie fyzickej adresy

Možnosti adresovania pamäte mikroprocesora sa naplno prejavia pri práci chránený režim. Množstvo adresovateľnej pamäte sa zvýši na 4 GB, objaví sa možnosť režimu adresovania stránok. Segmenty môže mať premenlivú dĺžku od 1 bajtu do 4 GB.

Všeobecná schéma na vytvorenie fyzickej adresy mikroprocesorom pracujúcim v chránený režim, znázornené na obr. 3.2.

Ako už bolo uvedené, základom pre vytvorenie fyzickej adresy je logická adresa. Pozostáva z dvoch častí: selektor a offsety v segmente.

Selektor obsiahnutý v registri segmentov mikroprocesora a umožňuje vám nájsť popis segmentu (deskriptor) v špeciálnej tabuľke deskriptorov. Deskriptory segmenty sú uložené v špeciálnych systémových objektoch globálnych (GDT) a lokálnych (LDT) tabuľkách deskriptorov. Deskriptor hrá veľmi dôležitú úlohu vo fungovaní mikroprocesora, od vytvorenia fyzickej adresy s inou organizáciou adresného priestoru až po organizáciu multiprogramového režimu prevádzky. Preto zvážme jeho štruktúru podrobnejšie.

Segmenty spustený mikroprocesor chránený režim, sa vyznačujú veľkým množstvom parametrov. Preto sú v 32-bitových mikroprocesoroch na všeobecné účely uložené informácie o segmentoch

Ryža. 3.2. Vytvorenie fyzickej adresy v organizácii segmentovej stránky pamäte

špeciálna 8-bajtová dátová štruktúra tzv deskriptor, a hlavná funkcia je priradená segmentovým registrom - určenie umiestnenia deskriptora.

Štruktúra deskriptor segmentu znázornené na obr. 3.3.

Ryža. 3.3.Štruktúra deskriptora segmentu

Budeme brať do úvahy štruktúru a nie formát deskriptora, pretože pri prechode z mikroprocesora i286 na 32-bitový MP stratilo usporiadanie jednotlivých polí deskriptora svoju harmóniu a čiastočne začalo vyzerať ako „záplaty“. aby sa mechanicky zvýšila bitová hĺbka týchto polí.

Pole 32-bitovej základnej adresy vám umožňuje zadať počiatočnú adresu segmentu kdekoľvek v 232-bajtovom (4 GB) adresnom priestore.

Limitné pole(limit) udáva dĺžku segmentu (presnejšie dĺžku segmentu mínus 1: ak je toto pole napísané 0, znamená to, že segment má dĺžku 1) v adresovateľných jednotkách, tj. maximálna veľkosť segment je 2 20 prvkov.

Hodnota prvku je určená jedným z atribútov deskriptora bit G (Granularity - granularita alebo zlomkovosť):

Segment teda môže mať veľkosť s presnosťou na 1 bajt v rozsahu od 1 bajtu do 1 Mbyte (s G = 0). Pri veľkosti stránky 2 12 = 4 KB môžete nastaviť veľkosť segmentu na 4 GB (s G = l):

Pretože v architektúre IA-32 môže segment začínať v ľubovoľnom bode v adresnom priestore a mať ľubovoľnú dĺžku, segmenty v pamäti sa môžu čiastočne alebo úplne prekrývať.

Rozmer bit(Predvolená veľkosť) určuje štandardne dĺžku adries a operandov použitých v inštrukcii:

podľa vlastného uváženia. Samozrejme, tento kúsok nie je určený bežný používateľ, a pre systémový programátor, ktorá ho používa napríklad na označenie segmentov pre garbage collection alebo segmentov, ktorých základné adresy nie je možné upraviť. Tento bit je dostupný len pre programy spustené na najvyššej úrovni oprávnení. Mikroprocesor ho pri svojej práci nemení a nevyužíva.

Prístup Byte definuje základné pravidlá manipulácie so segmentom.

Bit prítomnosti P (Present) označuje možnosť prístupu k segmentu. Operačný systém (OS) označí segment prenesený z RAM do externej pamäte ako dočasne neprítomný nastavením jeho deskriptora na P = 0. Keď P = 1, segment je vo fyzickej pamäti. Keď je vybratý deskriptor s P = 0 (segment nie je v RAM), polia základnej adresy a limitu sa ignorujú. Je to prirodzené: napríklad, ako môžeme hovoriť o základnej adrese segmentu, ak samotný segment nie je in Náhodný vstup do pamäťe? V tejto situácii procesor odmietne všetky následné pokusy o použitie deskriptor v tímoch a definované deskriptor Zdá sa, že adresný priestor „zmizne“.

Existuje špeciálny prípad neprítomnosti segmentu. Operačný systém zároveň skopíruje požadovaný segment z disku do pamäte (pričom prípadne vymaže ďalší segment), načíta ho do deskriptor základnú adresu segmentu, nastaví P = 1 a reštartuje inštrukciu, ktorá pristupovala k segmentu, ktorý nebol v RAM.

Dvojmiestne pole DPL (Descriptor Privilege Level) označuje jedno zo štyroch možných (od 0 do 3) zvládnuť úrovne privilégií, ktorý určuje možnosť prístupu k segmentu určitými programami (úroveň 0 zodpovedá najviac vysoký stupeň privilégiá).

Reverzný bit A (Accessed) je nastavené na "1" pri akomkoľvek prístupe k segmentu. Používa ho operačný systém na sledovanie segmentov, ku ktorým sa najdlhšie nepristupovalo.

Nechajme napríklad raz za sekundu operačný systém resetovať v deskriptoroch všetkých segmentov bit A. Ak je po určitom čase potrebné nahrať do RAM nový segment, pre ktorý nie je dostatok miesta, operačný systém určuje „kandidátov“, aby vymazali časť pamäte RAM medzi týmito segmentmi deskriptory ktorý bit A nebol až do tohto bodu nastavený na "1", to znamená, ku ktorým sa v poslednom čase nepristupovalo.

Zadajte pole v prístupovom byte definuje účel a použitie segmentu. Ak je bit S (systém - bit 4 prístupového bajtu) 1, potom toto deskriptor opisuje skutočný pamäťový segment. Ak S = 0, potom tento deskriptor popisuje špeciálny systémový objekt, ktorý nemusí byť segmentom pamäte, ako je napríklad brána hovoru použitá v prepínači úloh alebo rukoväť lokálnej tabuľky deskriptorov LDT. Priradenie bitov<3...0>prístupový bajt je určený typom segmentu (obr. 3.4).

Ryža. 3.4. Formát poľa typu Access Byte

V segmente kódu: bit podriadenosti C (Conforming) definuje ďalšie pravidlá manipulácie, ktoré poskytujú ochranu segmentom programu. Pre C = 1 tento segment je podriadený segment kódu. V tomto prípade je úmyselne zbavený ochrany výsad. Takýto nástroj je vhodný napríklad na organizovanie podprogramov, ktoré by mali byť dostupné pre všetky úlohy bežiace v systéme. S C = 0 je to normálny segment kódu; Čítací bit R (Readable) nastavuje, či je možné k segmentu pristupovať iba na vykonanie alebo na vykonanie a čítanie napríklad konštánt ako dát pomocou prefixu nahradenia segmentu. Keď R = 0, je povolený iba výber zo segmentu príkazov na ich vykonanie. Keď R = 1, je povolené aj čítanie údajov zo segmentu.

Zápis do segmentu kódu je zakázaný. Akýkoľvek pokus o zápis spôsobí softvérové ​​prerušenie.

V segmente údajov:

  • ED (Expand Down) - bit smeru expanzie. Pri ED = 1 je tento segment segmentom zásobníka a posun v segmente musí byť väčší ako veľkosť segmentu. S ED = 0 je to skutočný dátový segment (offset musí byť menší alebo rovný veľkosti segmentu);
  • bit povolenia zápisu W (zapisovateľný). Keď W = 1, modifikácia segmentu je povolená. Keď W = 0, zápis do segmentu je zakázaný, pri pokuse o zápis do segmentu dôjde k softvérovému prerušeniu.

V prípade požiadavky na operand ofset segmentu je tvorený mikroprocesorom podľa režimu adresovania operandov špecifikovaného v príkaze. Posun v segmente kódu sa extrahuje z register - ukazovateľ inštrukcie EIP.

Súčet počiatočnej adresy segmentu získanej z deskriptora a vygenerovaného posunu v segmente poskytuje lineárna adresa(LA).

Ak je v mikroprocesore použitá len segmentová reprezentácia adresného priestoru, potom je výsledná lineárna adresa tiež fyzická.

Ak sa okrem segmentového používa aj stránkovací mechanizmus na organizáciu pamäte, potom lineárna adresa reprezentované ako dve polia: najvyššie číslice obsahujú číslo virtuálna stránka a najnižší posun na stránke. Konverzia virtuálneho čísla stránky na fyzické číslo stránky sa vykonáva pomocou špeciálnych systémových tabuliek: adresár tabuľky stránok(KTS) a tabuľky stránok(TS). Umiestnenie adresára tabuľky stránok v pamäti určuje systémový register CR3. Fyzická adresa sa vypočíta ako súčet fyzickej adresy stránky získanej z tabuľky stránok a ofsetu stránky získaného z lineárnej adresy.

Pozrime sa teraz podrobnejšie na všetky fázy prevodu logickej adresy na fyzickú.

Mikroprocesor 80386 je úplnou 32-bitovou verziou predchádzajúcich 16-bitových mikroprocesorov 8086/80286 a predstavuje významný pokrok v architektúre procesorov zo 16-bitovej na 32-bitovú architektúru. Spolu s nárastom bitovej hĺbky existuje aj veľa vylepšení a pridané vlastnosti. Mikroprocesor 80386 poskytuje: prepínanie úloh, vylepšenú správu pamäte, správu virtuálnej pamäte s alebo bez stránkovania, ochranu softvéru a možnosť veľkokapacitného úložiska. Všetky softvér, napísaný pre staršie mikroprocesory 8086/8088 a 80286 je kompatibilný zdola nahor a pre mikroprocesor 80386. Množstvo adresovateľnej pamäte procesorom sa zvýšilo z 1 MB (pre mikroprocesor 8086/8088) alebo 16 MB (pre 80286 mikroprocesor) na 4 GB dostupné pre procesor 80386 v chránenom režime. Mikroprocesor 80386 sa môže zmeniť z chráneného režimu na skutočný režim bez tvrdý reštart mikroprocesor, ktorý je časovo náročný a bol nevyhnutný v prípade použitia procesora 80286.

Mikroprocesor 80486 je vylepšená verzia mikroprocesora 80386 a vykonáva mnohé z jeho inštrukcií v jednom hodinovom cykle. Mikroprocesor 80486 má tiež internú 8 KB vyrovnávaciu pamäť L1 a integrovaný vysokovýkonný matematický koprocesor, ktorý je softvérovo kompatibilný s koprocesorom 80387. Upozorňujeme, že procesor 80486DX4 má vyrovnávaciu pamäť 16 KB. Mikroprocesor 80486, ktorý beží na rovnakej frekvencii ako mikroprocesor 80386, je o 50 % produktívnejší.

Mikroprocesor 80386

Najbežnejšie boli dve verzie mikroprocesora 80386: procesor 80386DX a zjednodušený procesor 80386SX s externou 16-bitovou dátovou zbernicou, hoci interne používal 32-bitovú zbernicu.

Procesor 80386DX bol umiestnený v 132-pinovom PGA (pin grid array) puzdre. Viac novú verziu mikroprocesor 80386 - 80386EX obsahuje: riadiacu jednotku zbernice AT, riadiacu jednotku dynamickej regenerácie RAM, programovateľnú jednotku výberu kryštálov, kontrolér prerušenia, kontrolér DMA, jednotku časovača, jednotku sériového prenosu údajov, 26 pinov adresovej zbernice, 16 údajov čapy autobusu.

Mikroprocesor 80386DX s 32-bitovou dátovou zbernicou a 32-bitovou adresovou zbernicou je schopný adresovať 4 GB fyzickej pamäte. Mikroprocesor 80386SX, podobne ako mikroprocesor 80286, adresuje 16 MB pamäte a má len 24-bitovú adresovú zbernicu a 16-bitovú dátovú zbernicu. Mikroprocesor 80386SX bol vyvinutý po mikroprocesore 80386DX na použitie bez potreby plná verzia 32-bitová zbernica. Mikroprocesor 80386SX bol použitý v mnohých osobné počítače ktorí používali to isté systémová doska rovnaký ako mikroprocesor 80286. V čase, keď väčšina aplikácií, vrátane Windowsu, vyžadovala menej ako 16 MB pamäte, bol procesor 80386SX populárnou a lacnejšou verziou mikroprocesora 80386. Neskôr, napriek tomu, že procesor 80486 sa čoraz viac stáva lacnejšie na budovanie nových výpočtových systémov, každopádne procesor 80386 na dlhú dobu zostal v dopyte pre mnohé aplikácie. Napríklad mikroprocesor 80386EX, aj keď sa nepoužíval v osobných počítačoch, bol veľmi populárny vo vstavaných systémoch.

Mikroprocesor 80386, ako aj predchádzajúce verzie rodiny Mikroprocesory Intel, vyžaduje na prevádzku iba jeden zdroj +5,0V.frekvencia 16 MHz. Okrem toho existovala verzia procesora s taktom 33 MHz, ktorý mal prúdový odber 600 mA. Prúdová spotreba mikroprocesora 80386EX je 320 mA pri prevádzke na 33 MHz.

Procesor odoberá pri určitých prevádzkových režimoch prúd až 1,0 A. To znamená, že napájací zdroj a napájacia kabeláž musia byť schopné zvládnuť tieto prúdové špičky. Procesor má početné piny V CC a V SS , ktoré pre správna prevádzka všetky mikroprocesory musia byť pripojené k zdroju priamy prúd+5,0 V (V CC) a uzemnený (V SS). Niektoré piny procesora sú označené ako N/C (bez pripojenia) a nemali by byť nikde pripojené. Okrem spomínaných existovalo niekoľko ďalších verzií mikroprocesorov 80386SX a 80386EX, ktoré mali znížené napájacie napätie +3,3 V. Tieto procesory sa používali v prenosných notebookoch (notebook) resp. prenosné počítače(prenosný počítač).

Pamäťový systém

Fyzický pamäťový systém, ku ktorému má mikroprocesor 80386DX prístup, má kapacitu 4 GB. Okrem toho má procesor podporu virtuálna pamäť až 64 TB mapovaných do fyzickej pamäte pomocou MCU a deskriptorov. Treba poznamenať, že virtuálne adresovanie vám umožňuje používať program viac ako 4 GB v prítomnosti metódy swapovania (swapovanie) a pri veľkej kapacite pevného disku. Na obr. Obrázok 6.4 znázorňuje organizáciu systému fyzickej pamäte mikroprocesora 80386DX.

Pamäť je rozdelená do štyroch 8-bitových pamäťových bánk, každá s kapacitou až 1 GB. Táto 32-bitová organizácia pamäte umožňuje prístup k bajtom, slovu alebo dvojitému slovu. Mikroprocesor 80386DX je schopný preniesť 32-bitové dáta v jednom pamäťovom cykle, kým mikroprocesor 8088 potreboval štyri cykly a mikroprocesory 80286 a 80386SX dva cykly. Veľká šírka údajov je veľmi dôležitá, najmä pre čísla s jednou presnosťou s pohyblivou rádovou čiarkou, ktoré zaberajú 32 bitov. Dostatočne pokročilý softvér používa na ukladanie údajov čísla s pohyblivou rádovou čiarkou, takže 32-bitové pamäťové miesta urýchľujú vykonávanie programu, ak sa pri jeho zápise myslí na pamäť.

Adresa každého bajtu pamäte je znázornená v šestnástkovej sústave, ako napr predchádzajúce verzie spracovateľov. Rozdiel je v tom, že mikroprocesor 80386DX používa 32-bitovú adresovú zbernicu s pamäťou adresovateľnou v rozsahu 00000000H-FFFFFFFFH.

K dvom pamäťovým bankám v systéme postavenom na mikroprocesoroch 8086, 80286 a 80386SX sa pristupuje cez signály BLE (A0 na 8086 a 80286) a OUT. Mikroprocesor 80386DX pristupuje k pamäťovým bankám pomocou štyroch signálov BE3-BE0. Táto organizácia pamäte vám umožňuje prístup k jednému bajtu, keď mikroprocesor aktivuje jeden povoľovací signál.

Keď sú aktivované dva aktivačné signály, procesor je adresovaný slovu. Vo väčšine prípadov sa adresovanie slova týka banky 0 a 1 alebo banky 2 a 3. Miesto pamäte 00000000H je v banke 0, miesto 00000001H je v banke 1, miesto 00000002H je v banke 2 a miesto 00000003 je v banke 3. Mikroprocesor 80386DX nemá adresové kolíky A0 a A1, pretože sú interne dekódované ako bajtové aktivačné signály. Podobne 16-bitový mikroprocesor 80386SX nemá adresný kolík A0, pretože je dekódovaný na signály BLE a OUT. Mikroprocesor 80386EX adresuje dátové slovo umiestnené v dvoch bankách 16-bitového pamäťového systému, keď je signál BS8 pasívny (logicky vysoký), alebo bajt v 8-bitovom systéme, keď je tento signál aktivovaný.

Riadiace registre

Mikroprocesor 80386 má okrem registra príznakov EFLAGS a ukazovateľa inštrukcie EIP aj ďalšie riadiace registre. Riadiaci register CR0 (riadiaci register) je identický s registrom stavu stroja MSW(stavové slovo stroja) mikroprocesora 80286, okrem toho, že ide o 32-bitový register, nie 16-bitový register. Ďalšie riadiace registre sú CR1, CR2 a CR3.

Na obr. 6.5. ukazuje štruktúru riadiacich registrov mikroprocesora 80386.

Riadiaci register CR1 sa nepoužíva v mikroprocesore 80386, ale je rezervovaný pre budúce produkty. Riadiaci register CR2 zachytáva lineárnu adresu, na ktorej bola prijatá posledná chyba stránky pamäte. Nakoniec riadiaci register CR3 fixuje základnú adresu tabuľky stránok. Spodných 12 bitov 0 až 11 32-bitového registra obsahuje nuly a sú kombinované so zvyškom bitov registra na určenie začiatku tabuľky stránok 4K.

Register CR0 má množstvo špeciálnych riadiacich bitov, ktoré sú v mikroprocesore 80386 definované takto:

Bit PG (paging enable) je určený na výber prevodu tabuľky stránok z lineárnych adries na fyzické adresy, keď PG = 1. Pamäťové stránkovanie umožňuje priradiť ľubovoľné miesto fyzickej pamäte k lineárnej adrese.

ET

Bit ET (typ rozšírenia) je indikátorom podpory inštrukcií matematického koprocesora. Ak je ET 0, vyberie sa koprocesor 80287 a ak ET = 1, vyberie sa koprocesor 80387. Tento bit bol pridaný, aby odrážal skutočnosť, že systém má koprocesor 80387.

Bit TS (task switch) indikuje, že mikroprocesor vykonal prepnutie úlohy (zmena obsahu registra úloh TR v zabezpečenom režime nastaví bit TS). Ak je nastavený bit TS, potom inštrukcia digitálneho koprocesora vedie k prerušeniu typu 7 (koprocesor nie je dostupný).

JESŤ

Bit EM (emulovať koprocesor) je nastavený tak, aby spustil prerušenie typu 7 vždy, keď dôjde k pokusu o vykonanie každého príkazu ESC, t. j. inštrukcie súvisiacej s koprocesorom. Toto sa často používa na softvérovú emuláciu koprocesora. Emulácia znižuje náklady na systém, ale vykonanie inštrukcií emulovaného koprocesora často trvá dlhšie, možno až 100-násobne.

Bit MP (koprocesor monitora) je nastavený tak, aby spúšťal prerušenie typu 7 pri každom príkaze čakania, kým je nastavený bit TS.

RE

Bit PE (povolenie ochrany) je nastavený tak, aby prepol mikroprocesor 80386 do chráneného režimu. Môže sa tiež resetovať a spustiť pomerne dlhú sekvenciu pokynov na prepnutie do skutočného režimu. V mikroprocesore 80286 je možné nastaviť iba tento bit. Mikroprocesor 80286 nie je schopný prejsť späť do reálneho režimu bez vykonania tvrdého resetu, čo bráni jeho použitiu vo väčšine systémov s chráneným režimom.

Deskriptory a selektory

Pred diskusiou o stránkovacom bloku sa pozrime na deskriptory a selektory mikroprocesora 80386. Mikroprocesor 80386 používa deskriptory v podstate rovnakým spôsobom ako mikroprocesor 80286. Deskriptor v oboch mikroprocesoroch je to sekvencia ôsmich bajtov, ktorá obsahuje informácie o pamäťovom segmente a jeho umiestnení. Selektor(obsah segmentového registra) sa používa na identifikáciu deskriptora špecifikovaného v tabuľke deskriptorov. Hlavný rozdiel medzi mikroprocesormi 80286 a 80386 je v tom, že tento má dva ďalšie selektory (FS a GS) a dva najvýznamnejšie bajty deskriptora sú definované pre mikroprocesor 80386. Ďalším rozdielom je, že deskriptory mikroprocesora 80386 používajú 32-bitovú základnú adresu segmentu a 20-bitové pole limitu segmentu namiesto 24-bitovej základnej adresy a 16-bitového poľa limitu segmentu, ktoré sa nachádzajú v mikroprocesore 80286.

Mikroprocesor 80286 adresuje 16 MB pamäťovú oblasť svojou 24-bitovou základnou adresou a má dĺžku segmentu 64 KB s 16-bitovým limitným poľom. Mikroprocesor 80386 používa 32-bitovú základnú adresu na adresovanie 4 GB pamäťovej oblasti a veľkosť segmentu je určená 20-bitovým limitným poľom, ktoré používajú dve rôzne cesty. Bit granularity G (granularity) deskriptora alebo, inak, zlomkový bit určuje mernú jednotku pre veľkosť segmentu: ak G = 0, veľkosť je špecifikovaná v bajtoch a ak G = 1, potom v 4K stránkach. Veľkosť segmentu s 20-bitovým limitným poľom teda môže byť 1 MB alebo 4 GB.

Bit granularity G sa objavil v deskriptore počnúc mikroprocesorom 80386. Ak je bit G = 0, potom sa s hodnotou uloženou v poli limitu zaobchádza priamo ako s limitom veľkosti segmentu, čo umožňuje prístup k akémukoľvek segmentu 00000H-FFFFFG s veľkosťou 1 MB segment. Ak je G bit = 1, potom sa číslo uložené v poli limitu interpretuje ako 00000XXXH-FFFFFXXXH, kde XXX je ľubovoľná hodnota medzi 000H a FFFH. To poskytuje prístup k veľkosti segmentu od 0 bajtov do 4 GB v kusoch po 4 KB. Limitná hodnota 00001H označuje, že limit veľkosti sektora je 4 KB, keď je G bit 1, alebo 1 bajt, keď G bit je 0. Príkladom môže byť segment začínajúci na fyzickej adrese 10000000H. Pre limitnú hodnotu 00001H a G bit = 0 tento segment začína na 10000000H a končí na 10000001H. Ak je G bit = 1 s rovnakou limitnou hodnotou (00001H), segment začína na pozícii 100000000H a končí na 10001FFFH.

Na obr. Obrázok 6.6 ukazuje, ako mikroprocesor 80386 adresuje segment pamäte v chránenom režime pomocou selektora a deskriptora. Zobrazené adresovanie je identické so spôsobom, akým mikroprocesor 80286 adresuje segment. Rozdiel je vo veľkosti segmentu dostupného pre mikroprocesor 80386. Horných 13 bitov (bity 15-3) selektora sa používa na výber deskriptora z tabuľky deskriptorov. Ukazovateľ tabuľky bit( bity 1-0) selektora určujú požadovanú úroveň privilégií na prístup k sektoru.

Keďže selektor používa na prístup k deskriptoru 13-bitový kód, každá tabuľka (lokálna alebo globálna) neobsahuje viac ako 8192 deskriptorov. Keďže možná veľkosť segmentu pre mikroprocesor 80386 dosahuje 4 GB, pomocou dvoch tabuliek deskriptorov je možné naraz pristupovať k 16 384 segmentom. To všetko umožňuje mikroprocesoru 80386 podporovať virtuálnu pamäť až do 64 TB (1 TB = 1024 MB). Samozrejme, pamäťový systém s kapacitou len do 4 GB môže reálne existovať. Ak program v určitom okamihu vyžaduje viac ako 4 GB pamäte, potom je možné požadované údaje načerpať do pamäťového systému z diskovej jednotky alebo iného veľkého úložného zariadenia.

Mikroprocesor 80386 používa tabuľky deskriptorov pre globálne ( GDT) a miestne (LDT) deskriptory. Tretiu tabuľku deskriptorov používajú deskriptory prerušení ( GOT) alebo ventily(brány). Prvých šesť bajtov deskriptora mikroprocesora 80386 je rovnakých ako v mikroprocesore 80286, čo zaisťuje softvérovú kompatibilitu s ním zdola nahor. Vysoké dva bajty deskriptora mikroprocesora 80286 boli rezervované a obsahovali hodnotu 00H. Deskriptory pre mikroprocesory 80286 a 80386 sú znázornené na obr. 6.7.

Mikroprocesorový deskriptor 80386 obsahuje 32-bitovú základnú adresu, 20-bitové pole limitu segmentu a bit granularity G, ktorý určuje multiplikátor limitu segmentu (1 alebo 4K krát) alebo inak, v akých jednotkách je limit nastavený: v bajtov (G = 0) alebo strán po 4K (G = 1). Nasleduje účel polí deskriptora mikroprocesora 80386:

Základňa (B31-B0)

Pole Base určuje základnú (počiatočnú) 32-bitovú adresu segmentu vo fyzickom 4 GB adresnom priestore mikroprocesora 80386.

Limit (L19-L0)

Pole Limit určuje limit v bajtoch pre segment, ak je bit granularity G = 0 alebo v 4K stránkach, ak G = 1. To umožňuje akúkoľvek veľkosť segmentu od 1 bajtu do 1 MB, ak G bit = 0 alebo od 4 KB do 1 GB, ak G bit = 1. Pripomeňme, že limit označuje posledný bajt v segment.

Prístupové práva

Pole Prístupové práva definuje úroveň privilégií a ďalšie informácie týkajúce sa segmentu. Tento bajt je odlišný pre odlišné typy deskriptorov a je špecifikovaný pre každý z nich.

Bit granularity G (granularity) vyberá násobiteľ 1 alebo 4K pre pole limitu segmentu. Ak je G bit = 0, potom je multiplikátor 1, ak je G bit = 0, potom je multiplikátor 4K.

Bit D (predvolená veľkosť) určuje predvolenú veľkosť použitých operandov a registrov. Ak D = 0, potom 16 bitov, ako v mikroprocesore 80286; ak D = 1, potom 32 bitov, ako v mikroprocesore 80386. Tento bit určuje, či sú potrebné prefixy pre 32-bitové dátové a indexové registre. Ak D = 0, potom sa na prístup k 32-bitovým registrom a na používanie 32-bitových ukazovateľov vyžaduje predpona. Ak D = 1, potom sa pre prístup k 16-bitovým registrom a pre 16-bitové ukazovatele vyžaduje predpona. Atribúty use16 a use32, ktoré sa používajú s direktívou segmentu v jazyku symbolických inštrukcií, riadia nastavenie bitu D. skutočný režim operácia vždy predpokladá, že registre sú 16-bitové, takže každá inštrukcia adresovaná 32-bitovým registrom alebo ukazovateľom musí mať prefix.

AVL (dostupný) bit je dostupný pre operačný systém a možno ho použiť podľa potreby. Neaplikuje ho ani neanalyzuje procesor a je určený na použitie aplikačnými programami.

Existujú dva druhy deskriptorov: deskriptor kódového a dátového segmentu a deskriptor systémového segmentu. Prvý deskriptor definuje segmenty údajov, zásobníka a kódu. Deskriptor segmentu systému je určený na ukladanie informácií o systémových tabuľkách, úlohách a bránach.

Superpočítače boli vždy považované za špeciálnu triedu výpočtovej techniky. Keďže sa takéto stroje stavajú na riešenie nezvyčajných problémov, rozpočty sú nezvyčajné, a to zase dávalo tušiť nekonečné možnosti: zdalo sa, že problém je vždy len v peniazoch a ak do nich nasypete ďalšie desiatky či dva milióny, produktivitu je možné zvyšovať donekonečna. To, čo sa udialo v posledných mesiacoch a rokoch a čo vyjadruje nový zoznam 500 najmocnejších kúskov planéty – vám známy TOP500.org – však dáva dôvod tvrdiť, že „nekonečnu“ je koniec. Superpočítače sú prvé z moderných počítačové systémy narazili na fyzikálnu hranicu možností polovodičovej elektroniky - a pre nich je teraz v prvom rade potrebné nájsť cestu zo slepej uličky. Nová technológia výpočtový.

Formálnym vodítkom pre takéto ďalekosiahle vyhlásenie bol zvláštny vzorec, ktorý si všimli zostavovatelia vyššie uvedeného zoznamu. Top 500 sa aktualizuje dvakrát ročne a in najvyššie pozície jeho Najnovšia verzia, zverejnenom minulý týždeň, nenastali takmer žiadne zmeny (do prvej desiatky pribudla iba jedna nový člen a celkový výkon všetkých päťsto strojov sa mierne zvýšil, z 0,223 na 0,250 exaflopov). Nastala však kvalitatívna všeobecná zmena: „ťažisko“ zoznamu sa posunulo na jeho vrchol, alebo, jednoduchšie povedané, hlavný výpočtový výkon je teraz sústredený v relatívne malom (historicky - rekordnom- lámanie) počet najrýchlejších strojov. Vyzerá to takto: polovicu kumulatívneho výkonu Top 450 poskytuje iba prvých 17 počítačov v zozname. Tento trend sa neobjavil včera, no za posledných šesť rokov sa natoľko vyprofiloval, že sa nad ním treba zamyslieť.

Neexistuje jediné definitívne vysvetlenie. Jeden z najpresvedčivejších je finančný: v posledných rokoch sa superpočítače stali oveľa drahšími (asi štyrikrát v porovnaní, povedzme, s počtom súst na strednej nule), a preto sú teraz dostupné len pre relatívne málo vlád. agentúry a veľké spoločnosti. Navyše dizajnéri a nákupcovia nových, nie príliš výkonných strojov sa nesnažia byť v hodnotení zaradení, aby si nepokazili imidž. A tak sa ukazuje, že čím ďalej, tým jasnejšie sa trend prejavuje: silní silnejú, slabí nelineárne rýchlo zaostávajú.

Dôležitý záver: superpočítače neprestali byť potrebné, len sa stali menej dostupnými. Ale čo Moorov nehynúci zákon? Nemalo by to navýšenie ceny kompenzovať užším balením a tým aj vyšším výkonom? Tu sa objavuje hlavné podozrenie. Zdá sa, že sme sa dostali do cieľa, kde Moorov zákon, hoci stále funguje, je už pre väčšinu hráčov príliš drahý na použitie.

Vedci formulujú výsledok nasledovne: pri absencii prelomových technológií, ktoré by poskytli dovtedy nedosiahnuteľnú výpočtovú rýchlosť jedným skokom, je superpočítačový priemysel nútený ísť po rozsiahlej ceste – hlúpo zvyšovať počet procesorov na svojich strojoch. A čo je ešte horšie: keďže tento spôsob nedokáže uspokojiť chúťky používateľov (a množstvo biterov je tradične nielen nástrojom na spracovanie dát, ale aj spôsobom, ako si vybudovať korporátnu a národnú autoritu), dizajnéri stavili na grafické urýchľovače, ktoré sú povedzme vhodné na riešenie nie hocijakých úloh. Počet superpočítačov, ktoré aktívne využívajú GPU, za posledných päť rokov rádovo vzrástol!

A tu je veľmi šikovné pripomenúť pripravovanú náhradu slávneho testu Linpack, ktorý bol od samého začiatku zverejnenia Top 500 (pred dvadsiatimi rokmi) hlavným meradlom výkonu superpočítačových systémov. Navrhuje sa nahradiť ho novo vyvinutým testom HPCG (High Performance Conjugate Gradient). Dôvod: Linpack - napísaný vo "Fortran" už v roku 1979 - odráža skutočný výkon meraných systémov je neuspokojivý a rozdiely narastajú.

Vo všeobecnosti ani ich spoločný spoluautor Jack Dongarra nedokáže jasne vysvetliť rozdiel medzi Linpackom a HPCG. Veľmi zjednodušene však možno rozdiel zredukovať na nasledovné: Linpack hodnotí hlavne schopnosť superpočítača vykonávať čisté výpočty (čo GPU akcelerátory robia dobre), zatiaľ čo HPCG berie do úvahy aj výkon internej komunikácie, čo je dôležité v riešenie praktických vedeckých a technických problémov (teda napríklad časté nepravidelné prístupy do pamäte).

Ak HPCG nenahradí, potom po niekoľkých rokoch „zabehnutia“ doplní Linpack (pre tých, ktorí majú záujem, zdrojové kódy sú dostupné pod licenciou BSD z webovej stránky Sandia Labs). A to by mohlo viesť k výraznému preskupeniu celého rebríčka Top 500, návratu malých účastníkov doň, ktorí začnú dostávať vyššie, spravodlivejšie hodnotenia a dokonca aj úpravy architektúry superpočítačov, keď už nebudú optimalizované pre Linpack. Aj keď, samozrejme, by sme nemali zvlášť dúfať v to druhé - koniec koncov, stále neexistuje žiadna prelomová výpočtová technológia!

A bez objavov zavládla vo svete Numberbiters nuda. Ako postaviť výkonnejší stroj? Dajte viac procesorov - a preto nájdite viac peňazí. Realita je ale taká, že paralelizácia praktických úloh nad určitú (a už dosiahnutú) úroveň neprináša rýchlostné prírastky a ani tie naj výkonné superpočítače sú už také drahé, že ich výstavbu a prevádzku si môžu dovoliť jednotky, ako je uvedené vyššie. V dôsledku toho prúd superpočítača vyschne. Toto je koniec technologickej éry, koniec polovodičov, ako ich poznáme za posledných päťdesiat rokov. A kým nebude technológia, ktorá dokáže posunúť výkon počítača na novú úroveň, budeme stagnovať, uspokojíme sa s ročným prírastkom o niekoľko percent.

Čo môže poskytnúť taký prielom? Západná tlač čumí na nanorúrky, z ktorých sa chlapcom v Stanforde podarilo postaviť jednorozmerné polárne tranzistory (CNFET), naučiť sa vyrábať mikroobvody so zaručenou funkčnosťou (hlavný problém: stále je ťažké vyhnúť sa Vysoké číslo nesprávne umiestnené nanorúrky) a dokonca postaviť počítač kompatibilný s MIPS, demonštrovaný len minulý týždeň na superpočítačovej konferencii ACM / IEEE SC13 („Computerra“ napísala o tomto projekte: pozri „“). V budúcnosti je táto technológia schopná poskytnúť 13-násobnú prevahu výkonu na jednotku spotreby energie polovodičové čipy. Zaujímalo by ma, či sa tu niekto zaoberá nanorúrkami?

Veľa nadšencov počítačová technológia so skúsenosťami si pamätajú časy, keď sa frekvencie procesorov merali v megahertzoch a výrobcovia (teda Intel a AMD) sa v tomto ukazovateli snažili predbiehať. Potom úroveň spotreby energie a rozptylu tepla procesorov vzrástla natoľko, že bolo nemožné pokračovať v tomto preteku. V posledných rokoch začali zvyšovať počet procesorových jadier, no výsledkom bola hranica, kedy sa tento rast stal nerentabilným. Teraz sa získanie najvyššieho výkonu na watt stalo hlavným faktorom výkonu.

Všetky tieto zmeny nenastali, pretože vývojári čelili fyzickým limitom ďalšieho vývoja existujúcich procesorov. Výkon bol skôr obmedzený skutočnosťou, že pokrok v niektorých oblastiach – predovšetkým v oblasti energetickej účinnosti – bol pomalší ako pokrok v iných oblastiach, ako je napríklad rozširovanie funkcií a inštruktážnych súborov. Môže sa však stať, že teraz je fyzický limit procesorov a ich výpočtový výkon už blízko? Igor Markov z University of Michigan sa tejto problematike venoval v článku v časopise Nature.

Berúc do úvahy prekážky

Markov poznamenáva, že na základe čisto fyzikálnych obmedzení niektorí vedci vypočítali, že Mooreov zákon bude trvať ďalších sto rokov. Na druhej strane skupina International Technology Roadmap for Semiconductors (ITRS) mu dáva niekoľko desaťročí života. Predpovede ITRS však možno spochybniť: táto skupina predikovala procesory s frekvenciou 10 GHz v časoch čipov Core2. Dôvodom tohto rozdielu je, že mnohé vážne fyzické obmedzenia nikdy neprišli do úvahy.

Napríklad extrémna hranica veľkosti funkčnej jednotky je jeden atóm, čo je konečná fyzikálna hranica. Ale dlho predtým, ako sa tento limit dosiahne, fyzika obmedzí schopnosť presne riadiť tok elektrónov. Inými slovami, obvody môžu byť potenciálne tenké ako jeden atóm, ale ich správanie sa oveľa skôr stane nespoľahlivým. Veľká časť prebiehajúcej práce spoločnosti Intel na prechode na tenšie výrobné procesy (menšie tranzistory) spočíva v hľadaní spôsobu štruktúry jednotlivé zložky aby mohli naďalej fungovať podľa očakávania.

Podstatu Markovovej argumentácie možno chápať asi takto: hoci existujú tvrdé fyzikálne limity, často nie sú relevantné pre problémy moderného pokroku v oblasti polovodičov. Namiesto toho čelíme miernejším obmedzeniam, ktoré sa často dajú obísť. „Keď príde moment pre určité obmedzenie, ktoré bráni progresii, pochopenie jeho povahy je kľúčom k jeho prekonaniu,“ píše. „Niektoré obmedzenia možno jednoducho ignorovať, zatiaľ čo iné zostávajú hypotetické a založené len na empirických dôkazoch; ťažko sa inštalujú vysoký stupeň istota."

Výsledkom je, že to, čo sa javí ako prekážky rozvoja, sa často prekonáva kombináciou kreatívneho myslenia a vylepšenej technológie. Markovovým príkladom je difrakčný limit. Pôvodne to malo zabrániť argón-fluórovým laserom leptať akékoľvek štruktúry tenšie ako 65 nanometrov. Ale s difrakciou pod vlnovou dĺžkou v súčasnosti pracujeme na 14nm štruktúrach pomocou rovnakého lasera.

Kde sú moderné limity?

Markov venuje pozornosť dvom problémom, ktoré považuje za najväčšie limity: energetike a komunikáciám. Problém spotreby energie vychádza zo skutočnosti, že množstvo energie spotrebovanej modernými obvodmi neklesá úmerne so znižovaním ich fyzickej veľkosti. Hlavným výsledkom je snaha zablokovať časti čipu, keď sa nepoužívajú. Ale pri súčasnom tempe vývoja tento prístup v ktoromkoľvek danom čase je väčšina čipu neaktívna – odtiaľ pochádza výraz „tmavý kremík“.

Spotreba energie je úmerná prevádzkovému napätiu čipu a tranzistory jednoducho nemôžu pracovať pod 200 mV. Teraz je ich napätie 5x vyššie, takže priestor na zníženie je. Pokrok v znižovaní prevádzkového napätia sa však spomalil, takže možno opäť dosiahneme technologické limity pred fyzickými.

Problém spotreby energie súvisí s otázkou komunikácie: väčšina fyzického objemu čipu a väčšina jeho spotreby energie sa vynakladá na interakciu medzi jeho rôznymi blokmi alebo zvyškom počítača. Tu sa už naozaj dostávame k fyzickým hraniciam. Aj keby sa signály v čipe šírili rýchlosťou svetla, čip nad 5 GHz by nebol schopný prenášať informácie z jednej strany čipu na druhú. To najlepšie, čo môžeme urobiť moderné technológie, je pokúsiť sa vyvinúť čipy, v ktorých by boli bloky, ktoré si medzi sebou často vymieňajú dáta, fyzicky blízke. Zahrnutie tretieho rozmeru (teda trojrozmerných reťazcov) do rovnice by mohlo pomôcť, ale len okrajovo.

Čo bude ďalej?

Markov nie je v súvislosti s nadchádzajúcimi zmenami obzvlášť optimistický. V blízkej budúcnosti očakáva, že používanie uhlíkových nanorúrok na elektroinštaláciu a optické prepojenia pre komunikáciu bude pokračovať v trende, ktorý nám pomôže vyhnúť sa fyzickým limitom. Poznamenáva však, že obe tieto technológie majú svoje obmedzenia. Uhlíkové nanorúrky môžu byť malé, až do priemeru nanometrov, ale majú aj obmedzenie veľkosti. A fotóny, ak sa používajú na komunikáciu, by to vyžadovali hardvér a energie.

Mnohí vkladajú svoje nádeje do kvantových počítačov, no Markov nepatrí medzi ich fanúšikov. " kvantové počítače Digitálne aj analógové sú sľubné len v okrajových aplikáciách a neponúkajú významný výkon vo všeobecnej výpočtovej technike, pretože nedokážu rýchlo vykonávať triedenie a iné špecifické úlohy,“ hovorí. Problém je aj v tom, že toto zariadenie najlepšie funguje pri teplotách blízkych absolútnej nule, zatiaľ čo pri izbovej teplote je výkon extrémne nízky.

Všetky výpočty sa však do určitej miery spoliehajú na kvantové efekty a Markov verí, že z kvantových systémov sa dá niečo užitočné naučiť. "Jednotlivé kvantové zariadenia sa približujú k energetickým limitom pre prepínanie, zatiaľ čo nekvantové zariadenia zaostávajú rádovo." Je zrejmé, že získanie aj malého stupňa účinnosti kvantových systémov môže znamenať veľký štart v spotrebe energie v rámci celého čipu.

Ďalší Markovovský fyzikálny limit: vymazanie časti informácie má termodynamické náklady, ktorým sa nedá vyhnúť – výpočty vždy spotrebúvajú energiu. Jedným z nápadov, ako sa vyhnúť tomuto limitu, je "výpočet reverzibilný", kde sú komponenty vrátené počiatočný stav po výpočte. Táto metóda vám môže, aspoň teoreticky, umožniť získať späť časť použitej energie.

Táto myšlienka nie je úplne teoretická. Markov cituje prácu využívajúcu supravodivé obvody (ktoré nazýva "celkom exotické") na zabezpečenie reverzibilného správania a rozptylu energie pod termodynamickým limitom. Samozrejme sú tu použité len 4 mikrokelviny, takže na kontrolu funkčnosti obvodov sa spotrebuje viac energie ako na ich skutočnú prevádzku.

Okrem fyziky

Zatiaľ čo fyzika a materiálová veda kladú veľa obmedzení na hardvér, matematika obmedzuje to, čo s nimi môžeme robiť. A napriek svojej povesti exaktnej vedy sú matematické obmedzenia oveľa vágne ako fyzikálne. Napríklad stále neexistuje odpoveď na rovnosť tried zložitosti P a NP, a to aj napriek dlhoročnému úsiliu. A hoci môžeme dokázať, že niektoré algoritmy sú najefektívnejšie pre všeobecné prípady, je tiež ľahké nájsť rozsah problémov, kde alternatívne výpočtové prístupy fungujú lepšie.

Najväčší problém, ktorý tu Markov vidí, je snaha extrahovať z kódu viac paralelizmu. Dokonca lacné smartfóny teraz sa pracuje na viacjadrové procesory, no zatiaľ ich využitie nie je optimálne.

Vo všeobecnosti sa zdá, že hlavným obmedzením je ľudská myseľ. Hoci Markov nevidí žiadne fantastické nové technológie, je optimista, že súčasné prekážky budú odstránené alebo obídené pokrokom v iných oblastiach.

Od redaktora. Naši pravidelní čitatelia vedia, že v našich novinách sa občas objavia dotlače najznámejších, klasických článkov a prác z oblasti informatiky. „Physical Limits of Computing“ sme chceli vytlačiť už dlho... asi pätnásť rokov. Ale tento úžasný článok si akosi nenašiel miesto z hľadiska zloženia iných materiálov, v novinách by vyzeral príliš divne, vytlačené „len tak“. A potom také šťastie! Článok bol spomenutý (absolútne zaslúžený) na poslednej prednáške nášho zdokonaľovacieho kurzu, ako jeden z mála zdrojov informácií na túto tému v ruštine. Príležitosť sme si samozrejme nemohli nechať ujsť. Dúfame, že sa vám bude páčiť objavovanie tohto nádherného obľúbeného materiálu. Koniec koncov, ani 24 (!) rokov, ktoré uplynuli od jeho vydania, ho neurobilo „zastaraným“, aj keď, samozrejme, technológie šli dopredu o parseky! Ale základné zákony sú príliš tvrdé aj pre technológiu!

Aké fyzikálne faktory obmedzujú proces výpočtu? Existuje limitujúca minimálna energia potrebná napríklad na vykonanie jedného logického kroku? Zdá sa, že takéto minimum neexistuje, ale sú tu ďalšie otázky, ktoré stále zostávajú otvorené.

Výpočet, bez ohľadu na to, či sa vykonáva elektronické zariadenia, na bežných účtoch alebo biologický systém, ako je mozog, je fyzikálny proces. Platia preň rovnaké pojmy ako pre iné fyzikálne procesy. Koľko energie je potrebné na vykonanie daného výpočtu? Ako dlho to trvá? Akú veľkosť by malo mať výpočtové zariadenie? Inými slovami, aké sú fyzikálne limity procesu výpočtu?

Samozrejme, položiť si tieto otázky je oveľa jednoduchšie ako na ne odpovedať. Obmedzenia, ktoré nás zaujímajú, sú akosi veľmi vzdialené od skutočných obmedzení, s ktorými sa zaoberáme. moderná technológia. Preto nemôžeme tvrdiť, že náš výskum pomáha inžinierovi alebo technológovi v jeho práci. Tieto štúdie majú skôr teoretický charakter. Naším cieľom je identifikovať všeobecné zákony, ktoré upravujú všetky druhy spracovania informácií bez ohľadu na prostriedky a metódy tohto spracovania. Akékoľvek limity, ktoré nájdeme, musia byť založené výlučne na základných fyzikálnych princípoch a nie na technológiách, ktoré sa v súčasnosti používajú.

Toto hľadanie základných obmedzení už malo precedensy. V 40. rokoch 20. storočia K. Shannon, v tom čase zamestnanec Bell Telephone Laboratories, zistil, že existujú obmedzenia týkajúce sa množstva informácií, ktoré sa môžu prenášať cez komunikačný kanál v prítomnosti šumu. Tieto obmedzenia platia bez ohľadu na to, ako je správa zakódovaná. Shannonova práca znamenala zrod modernej teórie informácie. Ešte skôr, v polovici a na konci minulého storočia, fyzici, ktorí sa pokúšali určiť základné obmedzenia účinnosti parného stroja, vytvorili vedu nazývanú „termodynamika“. Okolo roku 1960 sa Landauer (jeden z autorov tohto článku) spolu s J. Swansonom počas práce v IBM pokúsili aplikovať tento druh analýzy na výpočtový proces. Od polovice 70. rokov 20. storočia sa k týmto štúdiám začalo pripájať čoraz viac skupín vedcov z iných organizácií.

V našej analýze fyzikálnych obmedzení pri výpočte používame pojem „informácia“ v zmysle, v akom je definovaný v teórii informácie. Podľa tejto definície informácia zmizne vždy, keď sa dve predtým odlišné situácie stanú nerozoznateľnými. AT fyzické systémy, vyznačujúci sa absenciou trecích síl, informáciu nemožno zničiť, pretože pri zničení informácie musí prejsť určité množstvo energie do tepla. Ako príklad uvažujme dve ľahko rozlíšiteľné fyzické situácie. V jednej z nich je gumená loptička podopretá vo výške 1 m od podlahy, v druhej vo výške 2 m. Ak sa loptička uvoľní, spadne a odrazí sa od podlahy. Pri absencii trenia a za predpokladu, že lopta je dokonale elastická, bude pozorovateľ vždy schopný povedať, aký bol počiatočný stav lopty (v tomto prípade, v akej výške bola v počiatočnom okamihu), pretože lopta, ktorá spadla z výšky 2 m, sa odrazí vyššie, ako keď spadne z výšky 1 m.

Avšak v prítomnosti trecích síl, zakaždým, keď sa lopta odrazí od podlahy, určitá energia sa rozptýli a nakoniec sa lopta prestane odrážať a zostane na podlahe. Potom nebude možné určiť, aký bol počiatočný stav lopty: lopta, ktorá spadla z výšky 2 m, bude úplne identická s loptou, ktorá spadla z výšky 1 m. Informácie sa stratia v dôsledku rozptyl energie.

Bežné výpočtové zariadenia, počítadlo a mikroprocesor rozptyľujú energiu počas prevádzky. Rozptyl energie logickými hradlami mikroprocesora je spôsobený zmiznutím informácií. Existujú aj iné dôvody: elektronické obvody Mikroprocesory spotrebúvajú energiu, aj keď jednoducho ukladajú informácie bez toho, aby ich spracovávali. Účty sú disipatívne v dôsledku trecích síl, ktoré nemožno eliminovať: bez statického trenia by „kosti“ zmenili polohu pod vplyvom náhodného tepelného pohybu molekúl. Statické trenie predstavuje určitú minimálnu silu, ktorá nezávisí od rýchlosti „kostí“, a preto počítadlo vyžaduje určitú minimálnu energiu, bez ohľadu na to, ako pomaly pracujú.

Uveďme ďalší príklad miznutia informácií. Výraz „2 + 2“ obsahuje viac informácií ako výraz „= 4“. Ak vieme, že číslo 4 bolo získané sčítaním dvoch čísel, potom nedokážeme určiť, ktoré čísla sa pridali: 1 + 3, 2 + 2, 0 + 4 alebo nejaký iný pár čísel. Keďže výstupná informácia je implicitne obsiahnutá už vo vstupe, môžeme predpokladať, že žiadny výpočet informáciu negeneruje.

Konvenčné logické brány rozptyľujú energiu, pretože zahadzujú nepotrebné informácie. Napríklad, ak je výstup hradla AND 0, potom nemôžeme určiť, čo bolo na vstupoch.

V skutočnosti sa výpočty vykonávané na moderných počítačoch vykonávajú pomocou mnohých operácií, ktoré ničia informácie. Takzvaný ventil A “ je zariadenie s dvoma vstupnými vedeniami, z ktorých každý môže byť nastavený na signál rovný 1 alebo 0, a jedným výstupným riadkom - hodnota jeho signálu je určená hodnotami vstupov. Ak sú oba vstupy 1, výstup bude tiež 1. Ak je jeden alebo oba vstupy 0, potom výstup bude 0. Kedykoľvek je výstup hradla 0, stratíme informácie, pretože nevieme, ktorý z nich tri možné stavy boli vstupné riadky (0 a 1; 1 a 0 alebo 0 a 0). V skutočnosti každé logické hradlo, ktoré má viac vstupov ako výstupov, nevyhnutne stráca informácie, pretože zo stavu výstupov nemôžeme určiť stav vstupov. Preto vždy, keď použijeme takýto „logicky nezvratný“ ventil, rozptýlime energiu dovnútra životné prostredie. Vymazanie jedného bitu údajov v pamäti počítača je ďalšou operáciou často používanou vo výpočtovej technike, ktorá má tiež disipatívnu povahu. Pri vymazaní jedného bitu dát stratíme všetky informácie o predchádzajúcom stave tohto bitu.

Je však fér položiť si otázku, či je použitie nezvratných logických brán a operácií vymazania vo výpočtovej technike nevyhnutné? Ak áno, potom akýkoľvek výpočet, ktorý urobíme, musí rozptýliť určité minimálne množstvo energie.

Ako ukázal Benne (jeden z autorov tohto článku) v roku 1973, človek sa zaobíde bez nevratných logických prvkov a bez vymazania informácií vo výpočte. Odvtedy bola platnosť tohto ustanovenia preukázaná v niekoľkých modeloch. Najjednoduchší spôsob, ako opísať modely, je založený na takzvaných „reverzibilných logických bránach“, ako je napríklad Fredkinova brána, pomenovaná po Edwardovi Fredkinovi z MIT. Ventil má tri vstupné a tri výstupné vedenia. Signál na jednej vstupnej linke, nazývanej "riadiaci kanál", sa pri prechode bránou nemení. Ak je signál na riadiacom kanáli nastavený na 0, potom vstupné signály na ďalších dvoch vedeniach tiež prejdú bez zmeny. Ale ak je riadiaca linka 1, potom sa ostatné dve výstupné linky prepnú: vstupný signál jednej linky sa stane výstupom druhej linky a naopak. Fredkinovo hradlo nestráca informácie, keďže stav vstupov možno vždy určiť zo stavu výstupov.

Fredkin ukázal, že akékoľvek logické zariadenie potrebné pre chod počítača môže byť zostavené vo forme vhodnej kombinácie Fredkinových brán. Na vykonanie výpočtu musia byť určité vstupné riadky niektorých brán vopred nastavené na určité hodnoty (pozri dolný obrázok vľavo).

Reverzibilné Fredkinovo logické hradlo nemusí rozptýliť energiu – stav na jeho vstupoch možno určiť zo stavu výstupov. Ventil má „riadiace“ vedenie, ktorého stav ventil nemení. Ak je riadiaca čiara 0, potom sa hodnoty signálu na ďalších dvoch čiarach tiež nemenia, ale ak je riadiaca čiara 1, potom sa vstup čiary A stane výstupom čiary S a naopak. So správne pripojenými reverzibilnými ventilmi je možné realizovať akúkoľvek funkciu vykonávanú konvenčným nereverzibilným zariadením. Na implementáciu operácie AND (vpravo) je jeden vstup nastavený na 0 a dva výstupné bity, nazývané „odpad“, sú dočasne ignorované. Po dokončení výpočtu sa tieto bity použijú na ovládanie brány v opačnom smere, aby sa počítač vrátil do pôvodného stavu.

Brány Fredkin majú viac výstupných línií ako tie, ktoré modelujú. Preto by sa pri výpočtoch zdalo, že vznikajú „odpadkové kúsky“, t.j. bitov informácií, ktoré nie sú potrebné na vytvorenie výsledku. Než začnete s ďalším výpočtom, musíte nejakým spôsobom vyčistiť počítač od týchto bitov. Ale ak ich vymažeme, potom dôjde k samotnému rozptylu energie, ktorému sme sa chceli vyhnúť.

V skutočnosti tieto bity zohrávajú veľmi dôležitú úlohu. Po prijatí výsledku výpočtu a jeho skopírovaní zo stroja z bežných výstupných riadkov by mal proces prebiehať v opačnom smere. Inými slovami, používame „nevyžiadané bity“ a výstupné bity, ktoré počítač dostane počas výpočtu ako „vstup“ zo „zadnej strany“ stroja. Je to možné, pretože každá počítačová logická brána je reverzibilná. V procese výpočtu v opačnom smere nedochádza k strate informácií, a preto nie je potrebné rozptyľovať energiu. Nakoniec sa počítač vráti do stavu, v ktorom bol pred začatím výpočtu. Preto je možné dokončiť „cyklus výpočtu“ – poháňať počítač vpred a následne sa vrátiť do pôvodného stavu, bez straty energie.

Doteraz sme hovorili o abstraktných logických operáciách bez toho, aby sme sa dotkli fyzických zariadení, ktoré tieto operácie vykonávajú. Nie je však ťažké predstaviť si fyzické zariadenie, ktoré funguje podľa Fredkinovho princípu. V takomto zariadení sú kanály na prenos informácií prezentované vo forme rúrok. Na druhej strane trochu informácie predstavuje prítomnosť alebo neprítomnosť gule v určitej časti trubice. Prítomnosť lopty sa interpretuje ako 1 a neprítomnosť sa interpretuje ako 0.

Kontrolná línia je reprezentovaná úzkym úsekom rúrky, v pozdĺžnom smere v strede rozdeleným. Keď gulička vstúpi do delenej časti rúrky, odtlačí bočné steny rúrky od seba, čím sa uvedie do činnosti spínacie zariadenie. Toto spínacie zariadenie vedie vstupné guľôčky, ktoré môžu byť v dvoch ďalších rúrkach. Keď je gulička v kontrolnej trubici, potom sa každá gulička prechádzajúca cez vstupné vedenie automaticky prenesie do inej trubice. Aby sa zabezpečilo, že spínacie zariadenie je vypnuté v neprítomnosti guľôčky v ovládacej trubici, sú jej rozdelené polovice pritlačené pružinami k sebe. Keď sa gulička dostane do riadiacej trubice a stlačí pružiny, musí na to vynaložiť určitú energiu. Táto energia sa však nestráca: vracia sa, keď ovládacia gulička opustí delenú trubicu a pružiny sa uvoľnia.

Všetky loptičky sú akoby navzájom spojené a sú posúvané dopredu jedným mechanizmom, takže sa pohybujú synchrónne; inak by sme nemohli zabezpečiť, aby rôzne vstupné a riadiace guľôčky dorazili na logické hradlo v rovnakom čase. V istom zmysle je proces výpočtu podobný pohybu s jedným stupňom voľnosti, ako je pohyb dvoch kolies pevne sediacich na tej istej náprave. Po dokončení výpočtu zatlačíme všetky loptičky opačným smerom, čím eliminujeme všetky operácie vykonávané na ceste vpred a vrátime počítač do pôvodného stavu.

Ak je zariadenie úplne ponorené do ideálnej viskóznej tekutiny, potom trecie sily pôsobiace na guľôčky budú úmerné ich rýchlosti, pričom nedôjde k žiadnemu statickému treniu. Ak sa teda uspokojíme s pomalým pohybom loptičiek, trecia sila bude veľmi malá. V akomkoľvek mechanickom systéme sa práca na prekonanie trecej sily rovná súčinu trecej sily a vzdialenosti, ktorú telo prejde. (Preto čím rýchlejšie plavec prepláva určitú vzdialenosť, tým viac energie vydá, napriek tomu, že vzdialenosť zostáva rovnaká bez ohľadu na rýchlosť plavca.) Ak loptičky prejdú cez Fredkinove ventily nízkou rýchlosťou, potom práca vykonaná počas pohybu (súčin silovej vzdialenosti) bude veľmi malá, pretože sila trenia je priamo úmerná rýchlosti lopty. V skutočnosti môžeme minúť ľubovoľne málo energie, jednoducho kvôli zodpovedajúcemu spomaleniu procesu výpočtu. Dospeli sme teda k záveru, že neexistuje žiadne minimálne požadované množstvo energie, ktoré je potrebné vynaložiť na vykonanie daného výpočtu.

Idealizovaný fyzikálny model Fredkinovho ventilu: trubice zohrávajú úlohu vodičov a prítomnosť alebo neprítomnosť gule sa interpretuje ako 1 alebo 0. Úzka delená časť trubice je riadiaci kanál. Keď naň gulička narazí, steny trubice sa rozchádzajú do strán, čím sa aktivuje spínací mechanizmus. Ten zase prenesie akúkoľvek prichádzajúcu loptičku z čiary A do čiary B a naopak. Dve pružiny udržujú ovládací kanál vypnutý, keď v ňom nie je žiadna guľa. Takýto ventil nevyžaduje statické trenie na vykonávanie operácií. Môže byť ponorený do viskóznej kvapaliny a potom budú trecie sily závisieť iba od rýchlosti guľôčok. V tomto prípade môže byť rozptýlená energia ľubovoľne malá: na zníženie množstva rozptýlenej energie je potrebné iba znížiť rýchlosť guľôčok prechádzajúcich ventilom.

V uvažovanom modeli výpočtového zariadenia bude energia stratená trením veľmi malá, ak toto zariadenie pracuje dostatočne pomaly. Je možné postaviť model ešte idealizovanejšieho stroja, ktorý by dokázal počítať bez akéhokoľvek trenia? Alebo je trenie nevyhnutným atribútom výpočtového procesu? Fredkin spolu s T. Toffolim a ďalšími špecialistami z MIT ukázali, že trenie nie je potrebné.

Demonštrovali to na modeli výpočtového zariadenia, v ktorom sa výpočty uskutočňujú tak, že sa ideálne biliardové gule strieľajú k sebe pri absencii trecích síl. V biliardovom modeli sú ideálne reflexné „zrkadlá“ - plochy, ktoré menia smer pohybu guľôčok, umiestnené tak, že pohyb guľôčok po stole simuluje prechod bitov informácií cez logické brány (pozri obrázok). Rovnako ako predtým, prítomnosť guľôčky v určitej časti „počítača“ sa interpretuje ako 1 a neprítomnosť sa interpretuje ako 0. Ak dve guľôčky dosiahnu logickú bránu v rovnakom čase, potom sa zrazia a ich trajektórie sa zmenia; nové cesty predstavujú výstup brány. Fredkin, Toffoli a ďalší vyvinuli zrkadlové usporiadanie zodpovedajúce rôznym typom logických brán a dokázali, že je možné postaviť biliardový model akéhokoľvek logický prvok potrebné pre výpočty.

Počítačový model biliardu: Pohyb biliardových gúľ po povrchu stola simuluje prechod bitov informácií cez logické hradlo. V biliardových logických bránach (vľavo) sa trajektórie gúľ menia, keď sa zrazia navzájom alebo so "zrkadlami". Okrem svojich funkcií vo ventiloch môžu zrkadlá zmeniť uhol trajektórie lopty (a), posunúť ju na stranu (b), oneskoriť loptu bez toho, aby zmenili jej konečný smer alebo rýchlosť (c), alebo spôsobiť, že sa trajektórie pretnú. (d). Zrkadlá môžu byť usporiadané tak, aby výsledný "počítač" vykonával funkcie akéhokoľvek logického zariadenia. Môžete si napríklad postaviť biliardový počítač na rozpoznávanie prvočísel. Takýto počítač (vpravo) akceptuje ľubovoľnú päťcifernú číslicu binárne číslo(v tomto prípade 01101 alebo 13) a pevnú vstupnú sekvenciu 01. Podobne ako Fredkinova brána, aj biliardový počítač vracia viac výstupných bitov, než potrebuje používateľ. V tomto prípade vráti samotné pôvodné číslo (predstavujúce „extra“ výstup) a „odpoveď“: sekvenciu 10, ak je vstup prvočíslo, a 01, ak je zložený.

Na spustenie procesu výpočtu vystrelíme biliardovú guľu na vstup počítača, ak potrebujeme zadať jednotku. Loptičky musia vstúpiť do stroja súčasne. Keďže sú loptičky dokonale elastické, nestrácajú energiu, keď na seba narazia. Z auta vystúpia s rovnakým množstvom kinetickej energie, s akou doň vstúpili.

V procese prevádzky biliardový počítač generuje „nevyžiadané bity“, rovnako ako počítač postavený na Fredkinových bránach. Keď počítač dokončí vykonávanie úlohy, odrážame biliardové gule v opačnom smere, čím sa proces výpočtu obráti. Loptičky budú vychádzať z auta presne tam, kde sme ich do autu poslali a zároveň sa budú pohybovať rovnakou rýchlosťou. Mechanizmus, ktorý vypustil guľôčky do auta, tak teraz môže získať späť ich kinetickú energiu. A v tomto prípade môžeme vykonaním výpočtu vrátiť počítač do pôvodného stavu bez straty energie.

Biliardový počítač má jednu významnú nevýhodu: je mimoriadne citlivý na najmenšie nepresnosti. Ak je loptička odoslaná s miernou odchýlkou ​​od správneho smeru, alebo je zrkadlo natočené v mierne odlišnom uhle, ako je vypočítaný, loptičky vyletia z požadovaných trajektórií. Jedna alebo viac loptičiek sa odchýli od vypočítanej dráhy a po určitom čase kombinovaný účinok týchto chýb naruší celý proces výpočtu. Aj keby sa dali vyrobiť dokonale elastické guľôčky bez trenia, náhodný tepelný pohyb molekúl, ktoré guľôčky tvoria, by mohol stačiť na to, aby spôsobil chyby po niekoľkých desiatkach zrážok.

Samozrejme, bolo by možné inštalovať korekčné zariadenie, ktoré by vrátilo nesprávne pohybujúcu sa guľu na požadovanú dráhu, ale v tomto prípade by museli byť zničené informácie o predchádzajúcich stavoch loptičky. Napríklad by bolo potrebné zničiť informácie o veľkosti odchýlky zrkadla od správnej polohy. Zbaviť sa informácií aj za účelom opravy chyby je však možné len v systéme, v ktorom existujú trecie sily a je možná strata energie. Preto musí korekčné zariadenie odvádzať určité množstvo energie.

Mnohým ťažkostiam, s ktorými sa stretávame pri používaní počítačového modelu biliardu, by sa dalo predísť alebo ich aspoň znížiť, keby sa namiesto biliardových gúľ použili submikroskopické častice, ako sú elektróny. Ako upozornil W. Zurek z Los Alamos National Laboratory, vďaka zákonom kvantovej mechaniky, ktoré ukladajú obmedzenia na stav elementárnych častíc, možno eliminovať možnosť malých odchýlok v pohybe častíc.

Hoci naše úvahy boli doteraz založené najmä na klasickej dynamike, viacerí výskumníci navrhli iné modely reverzibilných počítačov založené na princípoch kvantovej mechaniky. Takéto stroje, ktoré prvýkrát navrhol P. Benioff z Národného laboratória v Argonne (Francúzsko) a zdokonalili iní, najmä R. Feynman z Kalifornského technologického inštitútu, boli doteraz opísané len v najvšeobecnejších pojmoch. V podstate častice v týchto počítačových modeloch musia byť usporiadané tak, aby pravidlá kvantovej mechaniky, ktoré riadia ich interakciu, boli úplne rovnaké ako pravidlá, ktoré predpovedajú hodnoty signálov na výstupoch reverzibilných logických brán. Predpokladajme napríklad, že rotácia častice môže mať iba dva možné hodnoty: smer hore (zodpovedá binárnej 1) a dole (zodpovedá dvojkovej 0). Interakcia medzi hodnotami rotácií častíc musí prebiehať tak, aby sa hodnota rotácie danej častice menila v závislosti od rotácie častíc, ktoré sú v blízkosti. V tomto prípade bude rotácia častice zodpovedať jednému z výstupov logického hradla.

Vyššie sme hovorili najmä o spracovaní informácií. Počítač ale musí dáta nielen spracovávať, ale aj uchovávať. Súhru medzi ukladaním a spracovaním informácií možno najlepšie popisuje zariadenie nazývané „Turingov stroj“ (podľa Alana M. Turinga, ktorý prvýkrát navrhol takýto stroj v roku 1936). Turingov stroj môže vykonávať akýkoľvek výpočet vykonávaný moderným počítačom. S. Benne (jeden z autorov tohto článku) dokázal možnosť zostrojiť Turingov stroj, t.j. taký, ktorý nestráca informácie, a preto môže v procese práce vynaložiť akékoľvek vopred určené malé množstvo energie.

Turingov stroj je schopný vykonať akýkoľvek výpočet, ktorý dokáže počítač. Nekonečne dlhá páska je rozdelená na samostatné segmenty, z ktorých každý obsahuje 0 alebo 1. „Čítacia a zapisovacia hlava“, ktorá môže byť v ľubovoľnom z niekoľkých vnútorné stavy(tu sú len dva stavy: A a B), sa pohybuje po páske. Každý cyklus začína tým, že hlava načíta jeden bit zo segmentu pásky. Potom podľa pevne stanoveného súboru pravidiel prechodu zapíše kúsok údajov do segmentu pásky, zmení jeho vnútorný stav a posunie sa o jednu pozíciu doľava alebo doprava. Pretože tento stroj Turing má len dva vnútorné stavy, jeho možnosti sú obmedzené na triviálne výpočty. Zložitejšie stroje s veľkým počtom stavov sú schopné simulovať správanie akéhokoľvek počítača, vrátane tých oveľa zložitejších, ako sú ony samy. Je to možné, pretože ukladajú kompletnú reprezentáciu logického stavu väčšieho stroja na nekonečnú pásku a rozdeľujú každý výpočtový cyklus na veľké množstvo jednoduché kroky. Tu zobrazený stroj je logicky reverzibilný: vždy vieme určiť predchádzajúce stavy stroja. Turingove stroje s rôznymi pravidlami prechodu nemusia byť logicky reverzibilné.

Turingov stroj sa skladá z niekoľkých komponentov. Jednou z nich je páska rozdelená na samostatné časti alebo segmenty, z ktorých každá obsahuje 0 alebo 1, čo sú vstupné údaje. Po páske sa pohybuje „hlava na čítanie a zápis“. Hlava môže vykonávať niekoľko funkcií – prečítať jeden bit dát z pásky, zapísať jeden bit na pásku a presunúť jeden segment doľava alebo doprava. Aby si ďalší cyklus zachoval informácie o tom, čo sa urobilo v predchádzajúcom, hlavový mechanizmus má niekoľko takzvaných „stavov“. Každý stav predstavuje vlastnú, mierne odlišnú konfiguráciu vnútorných častí hlavy.

V každom cykle hlava číta bit zo segmentu pásky oproti, v ktorom sa nachádza tento moment Nachádza. Potom zapíše novú bitovú hodnotu na pásku, zmení jej vnútorný stav a posunie jeden segment doľava alebo doprava. Hodnota bitu, ktorý zapisuje, stav, do ktorého prechádza, a smer, ktorým sa pohybuje, sú určené pevnou sadou pravidiel prechodu. Každé pravidlo popisuje určité akcie. Akým pravidlom sa stroj momentálne riadi, je určené stavom hlavy a hodnotou bitu práve načítaného z pásky. Pravidlo môže napríklad znieť: „Ak je hlava v stave A a nachádza sa oproti segmentu, v ktorom je zapísaná 0, potom by mala zmeniť hodnotu tohto bitu na 1, prejsť do stavu B a presunúť jeden segment do správny." Podľa nejakého iného pravidla stroj nesmie zmeniť svoj stav alebo zapísať nový bit na pásku, inak sa musí zastaviť. Nie všetky Turingove stroje sú reverzibilné, ale je možné postaviť reverzibilný Turingov stroj, ktorý dokáže vykonávať akýkoľvek výpočet.

Modely založené na reverzibilnom Turingovom stroji majú výhodu oproti strojom ako je biliardový počítač, ktorý nemá žiadne trenie. V biliardovom počítači vedie náhodný tepelný pohyb molekúl k nevyhnutným chybám. Reverzibilné Turingove stroje v skutočnosti používajú náhodný tepelný pohyb: sú navrhnuté tak, že je to tepelný pohyb podporovaný slabou hnacou silou, ktorý prenesie stroj z jedného stavu do druhého. Vývoj výpočtového procesu pripomína pohyb iónu (nabitej častice) v roztoku v slabom elektrickom poli. Ak na krátky čas pozorujete správanie iónu, bude sa vám zdať náhodné: pravdepodobnosť pohybu v jednom smere je takmer rovnaká ako v druhom. Hnacia sila v dôsledku pôsobenia elektrického poľa však dáva pohybu preferovaný smer. Pravdepodobnosť, že sa ión bude pohybovať týmto smerom, je o niečo väčšia. Na prvý pohľad sa môže zdať neuveriteľné, že účelnú postupnosť operácií, ktorá je súčasťou procesu výpočtu, môže realizovať prístroj, ktorého smer pohybu v ľubovoľnom časovom okamihu možno považovať za takmer náhodný. Tento typ akcie je však v prírode veľmi bežný. Dá sa pozorovať najmä v mikroskopickom svete chemických reakcií. Pokus-omyl Brownov pohyb alebo náhodný tepelný pohyb je dostatočne účinný na to, aby sa reagujúce molekuly dostali do kontaktu, správne sa navzájom usporiadali, ako to vyžaduje táto reakcia, a vytvorili nové molekuly, ktoré sú produktmi reakcie. V zásade sú všetky chemické reakcie reverzibilné: ten istý Brownov pohyb, ktorý spôsobuje, že reakcia prebieha v smere dopredu, niekedy spôsobuje, že reakčné produkty prechádzajú spätným prechodom. V rovnovážnom stave je opačný smer reakcie rovnako pravdepodobný ako priamy. Aby reakcia prebiehala smerom dopredu, musíte neustále pridávať molekuly, ktoré vstupujú do reakcie, a odstraňovať molekuly, ktoré sú produktmi reakcie. Inými slovami, musíme použiť malú hnaciu silu. Keď je táto sila veľmi malá, reakcia pôjde dopredu aj dozadu, ale v priemere pôjde dopredu. Aby sme poskytli hnaciu silu, musíme vynaložiť energiu, ale ako vo Fredkinovom modeli rúrok a guľôčok, množstvo energie môže byť ľubovoľne malé. Ak sa uspokojíme s veľmi pomalým vykonávaním operácií, tak neexistuje žiadne minimálne požadované množstvo energie, ktoré je potrebné na tieto operácie vynaložiť. Vysvetlením je, že celkové množstvo rozptýlenej energie závisí od počtu krokov v smere dopredu vydeleného počtom krokov v smere dozadu. (V skutočnosti je úmerný logaritmu tohto pomeru; keď sa samotný pomer zvyšuje alebo znižuje, jeho logaritmus sa mení v rovnakom smere.) Čím pomalšie reakcia prebieha smerom dopredu, tým menší bude pomer. (Analógia s rýchlymi a pomalými plavcami je tu opäť relevantná: ak reakcia prebieha pomalšie, celkové množstvo vynaloženej energie bude menšie, napriek tomu, že počet prechodných rozpadov a spojení zostáva rovnaký.)

RNA polymeráza je enzým, ktorý funguje ako stroj na kopírovanie reverzibilných pások. Je katalyzátorom syntézy RNA, ktorá je kópiou DNA. Pohybujúc sa pozdĺž reťazca DNA, enzým vyberá z okolitého roztoku molekulu nukleozidtrifosfátu (každý nukleozidtrifosfát pozostáva z určitej RNA bázy, molekuly cukru a troch fosfátových skupín), ktorej báza je komplementárna so bázou DNA, ktorá je v súčasnosti byť skopírované. Pripojí novú bázu ku koncu budovaného reťazca RNA a uvoľní pyrofosfátový ión. Reakcia je reverzibilná: niekedy enzým pripojí pyrofosfát na poslednú väzbu RNA (výsledný nukleozidtrifosfát sa vráti do roztoku) a posunie sa späť o jednu pozíciu pozdĺž reťazca DNA. Keď sa reakcia blíži k chemickej rovnováhe, enzým urobí takmer toľko krokov späť ako dopredu a celková energia potrebná na skopírovanie jedného segmentu DNA je veľmi malá. Strata energie je tým menšia, čím pomalšie reakcia prebieha. Preto nie je potrebná minimálna energia potrebná na kopírovanie segmentu DNA.

POZRIME SA, ako funguje Brownov Turingov stroj na príklade Brownovho stroja na kopírovanie pásky. Takýto stroj už v prírode existuje. Ide o RNA polymerázu – enzým podieľajúci sa na syntéze RNA, ktorá je kópiou DNA tvoriacej gény. Jednovláknová DNA je veľmi podobná páske Turingovho stroja. V každom svojom prvku, t.j. v každej polohe pozdĺž reťazca je jeden zo štyroch nukleotidov alebo báz: adenín, guanín, cytozín alebo tymín (skrátene A, G, C, T). Štruktúra RNA je veľmi podobná DNA. Je to tiež molekula podobná dlhému reťazcu pozostávajúca zo štyroch typov báz – adenínu, guanínu, cytozínu a uracilu (v tomto poradí A, G, C a U). Bázy RNA sú schopné viazať sa na svoje komplementárne bázy DNA.

RNA polymeráza katalyzuje tvorbu svojej komplementárnej kópie, RNA, na DNA. Dvojvlákno DNA skrútené do špirály je zvyčajne obklopené roztokom obsahujúcim veľké množstvo molekúl ribonukleozidtrifosfátu, z ktorých každá pozostáva z ribonukleotidu (báza RNA), cukru a chvosta troch fosfátových skupín spojených do seba. séria. RNA polymeráza vyberie z roztoku jednu z báz RNA, ktorá je komplementárna so bázou, ktorá sa má v súčasnosti skopírovať z reťazca DNA a pripojí ju na koniec rastúceho reťazca RNA, pričom do okolitého roztoku uvoľní dva fosfáty vo forme pyrofosfátový ión. Enzým sa potom posunie dopredu o jednu pozíciu pozdĺž vlákna DNA a pripraví sa na pridanie ďalšej bázy do vlákna RNA. V dôsledku toho sa vytvorí reťazec RNA, ktorý je komplementárny k templátu - reťazcu DNA. Bez RNA polymerázy by boli tieto reakcie veľmi pomalé a nebolo by zaručené, že výsledná RNA je presne komplementárna s DNA.

Popísané reakcie sú reverzibilné: niekedy enzým pripojí voľný pyrofosfátový ión na poslednú bázu rastúceho reťazca RNA a molekula ribonukleozidtrifosfátu sa uvoľní do prostredia a samotný enzým sa vráti o jednu pozíciu späť pozdĺž reťazca DNA. V rovnovážnom stave sa kroky vpred a vzad vyskytujú s rovnakou frekvenciou, ale v živej bunke iné metabolické procesy posúvajú rovnováhu smerom k priamej reakcii v dôsledku odstránenia pyrofosfátu a tvorby nadbytku ribonukleozidtrifosfátov. V laboratórnych podmienkach je možné kontrolovať rýchlosť RNA polymerázovej reakcie zmenou koncentrácií počiatočných činidiel (to dokázali J. Levin a M. Chamberlain z Kalifornskej univerzity v Berkeley). Keď sa koncentrácie blížia k rovnováhe, enzým pracuje pomalšie a pri kopírovaní daného kúsku DNA sa rozptýli menej energie, pretože pomer počtu krokov vpred a vzad sa zmenšuje.

RNA polymeráza jednoducho kopíruje informácie bez ich spracovania, nie je ťažké si predstaviť, ako by mohol fungovať hypotetický Turingov chemický stroj. Páska je jedna dlhá kostrová molekula, ku ktorej sú v pravidelných intervaloch pripojené dva typy báz, interpretované ako bity 0 a 1. Ďalšia malá molekula je pripojená k jednej z pozícií v reťazci núl a jednotiek. Pozícia, ku ktorej je táto molekula pripojená, nie je nič iné ako segment pásky, na ktorom je umiestnená hlava Turingovho stroja. Existuje niekoľko rôznych typov "hlavovej molekuly". Každý typ predstavuje jeden z možných vnútorných stavov stroja.

Prechodové pravidlá stroja predstavujú enzýmy. Každý enzým je katalyzátorom špecifickej reakcie. Ak chcete lepšie pochopiť, ako tieto enzýmy fungujú, zvážte príklad.

Predpokladajme, že molekula hlavy je typu ALE (to znamená, že stroj je v stave ALE ) a pripevnený k nulovej základni. Predpokladajme tiež, že platí nasledujúce prechodné pravidlo: „Keď je hlava v stave ALE a číta 0, nahraďte 0 1, prejdite do stavu AT a posuňte sa doprava. Molekula enzýmu reprezentujúca toto pravidlo má miesto vhodné na pripojenie hlavnej molekuly tohto typu ALE pripojený k základni 1. Má tiež miesto vhodné na pripevnenie základne 0 a miesto vhodné pre typ hlavy AT (pozri obrázok).

Na uskutočnenie požadovaného prechodu sa molekula enzýmu najskôr priblíži k pozícii na páske hneď napravo od základne, ku ktorej je práve pripojená typová hlava. ALE . Potom z pásky oddelí molekulu hlavy a základňu 0, ku ktorej je hlava pripevnená, a na ich miesto umiestni základňu 1. Potom pripevní hlavu ako AT k základni napravo od jedinej základne práve pripojenej k páske. Tým je prechod dokončený. Na pôvodnom páskovom segmente bola 0 nahradená 1, molekula hlavy je teraz tohto typu AT a pripevnené k základni, umiestnené o jednu pozíciu napravo od originálu.

Hypotetický Turingov enzýmový stroj môže vykonávať výpočty s ľubovoľne malým množstvom energie. Molekuly reprezentujúce bity 0 a 1 sú pripojené k základnej molekule. Molekula predstavujúca hlavu Turingovho stroja je pripojená k jednej z pozícií v reťazci (7). odlišné typy molekuly hlavy predstavujú rôzne stavy stroja. Prechodové pravidlá predstavujú enzýmy. V každom cykle sa enzým spojí s hlavou a molekulou bitu spojenou s hlavou (2), oddelí ich od reťazca a na ich miesto umiestni požadovanú molekulu bitu (3). Pritom sa otáča a pripája príslušnú molekulu hlavy k ďalšiemu bitu vpravo alebo vľavo od práve zmeneného bitu. Slučka je teraz dokončená (4): hodnota bitu sa zmenila, hlava zmenila stav a posunula sa. Reakcie ako syntéza RNA môžu rozptýliť ľubovoľne malé množstvo energie.

Turingov Brownov stroj je hodinový mechanizmus pozostávajúci z tuhých hladkých častí, ktoré k sebe tesne nepriliehajú a sú v požadovanej polohe podopreté nie trením, ale systémom drážok a zubov. Napriek voľnému spojeniu dielov môžu vykonávať len taký veľký pohyb, ktorý zodpovedá kroku výpočtov v smere dopredu alebo dozadu, inými slovami, môžu sledovať iba jednu „výpočtovú cestu“. Mechanizmus je mierne tlačený veľmi slabou vonkajšou silou, takže pravdepodobnosť pohybu dopredu je takmer rovnaká ako pohyb dozadu. V priemere sa však stroj pohne dopredu a výpočet bude nakoniec dokončený. Stroj môže byť vyrobený tak, aby vynaložil ľubovoľne malé množstvo energie zodpovedajúcim znížením hnacej sily.

Segmenty pásky sú reprezentované drážkovanými diskami a bity sú reprezentované blokmi v tvare E, ktoré sú pripevnené k disku buď v hornej (7) alebo dolnej (0) polohe. Hlava pozostáva z tuhých častí spojených v zložitom mechanizme (väčšina z nich tu nie je znázornená). Na ňom je zavesený čítací prvok, manipulátor a tyč v tvare skrutkovača. Strojček sa ovláda valčekom s drážkami nanesenými na jeho povrchu, podobne ako valček na prehrávanie platní na fonografe (vľavo hore, vpravo hlboko). Rôzne drážky zodpovedajú rôznym stavom hlavy.

Na začiatku cyklu je hlava umiestnená nad jedným z kotúčov a „ihla“ je v „čítanom“ segmente drážky riadiaceho valca, ktorý zodpovedá aktuálnemu stavu hlavy stroja. Počas fázy „čítania“ slučky (7) čítačka určí, či sa blok predstavujúci bit otočí nahor alebo nadol vykonaním procedúry „čítania s prekážkou“ (vpravo uprostred). Čítací prvok prechádza pozdĺž bloku pozdĺž hornej alebo dolnej cesty. Na jednej z týchto ciest sa musí stretnúť s prekážkou v podobe rímsy na konci bloku, takže zostáva možná len jedna cesta. V bode riadiaceho valca zodpovedajúcom tomuto „rozhodnutiu“ sa drážky rozvetvujú a ihla je vedená do drážky zodpovedajúcej hodnote bitu (2). Ovládací valec sa potom otáča, kým ihla nedosiahne segment „zápis“ (3). Tu každá drážka obsahuje svoj vlastný súbor „pokynov“, ktoré sa prenášajú do stroja pomocou zložitého spojenia medzi ihlou a zvyškom mechanizmu.

Ak inštrukcia vyžaduje zmenu hodnoty bitu, manipulátor sa uvedie do činnosti a zavesí sa na výstupok bloku, potom skrutkovač otáča disk, kým sa blok neuvoľní, manipulátor otočí blok nahor alebo nadol a skrutkovač sa znova otočí. disk tak, aby bol blok na svojom mieste. Po prejdení segmentu „write“ ovládacieho valca sa ihla dostane do segmentu „shift“ (4). Každá drážka v tomto segmente obsahuje pokyn na posunutie hlavy o jednu polohu doľava alebo doprava. Ďalej ihla vstupuje do segmentu „zmeny stavu“ (5), kde sa drážky spájajú, takže ihla vstupuje do drážky predstavujúcej ďalší stav hlavy. Slučka je teraz dokončená (6). Disky susediace s práve čítaným diskom sú držané v polohe hlavou. Disky ďalej sú uzamknuté špeciálnym „zámkom“. Zámok každého disku je spojený so špeciálnym bitom, nazývaným Q-bit, susedného disku. Usporiadanie tohto spojenia je také, že práve čítaný disk je uvoľnený a môže sa pohybovať, zatiaľ čo disky ďalej od neho, ako doľava, tak doprava, sú udržiavané v stacionárnom stave.

Aby Brownov Turingov stroj fungoval, páska musí byť ponorená do roztoku obsahujúceho veľa molekúl enzýmu, ako aj dostatočnú zásobu „núl“, „jednotiek“ a „hlavičiek“ ako napr. ALE a AT . Aby reakcia prebiehala smerom dopredu, je potrebná nejaká iná reakcia, ktorá by prečistila molekuly enzýmu od hláv a báz oddelených od pásky. Koncentrácie látok, ktoré čistia molekuly enzýmov, sú hnacou silou, vďaka ktorej Turingov stroj pracuje v smere dopredu. Opäť môžeme vynaložiť ľubovoľne malé množstvo energie, ak stroj vykonáva operácie dostatočne pomaly.

Turingov stroj založený na enzýmoch nebude bezchybný. Z času na čas sa môžu vyskytnúť reakcie, ktoré prebiehajú bez katalýzy enzýmami. Napríklad báza 0 sa môže spontánne oddeliť od molekuly skeletu a báza 1 môže nahradiť jej miesto. V skutočnosti sa takéto chyby vyskytujú počas syntézy RNA.

V zásade by sa týchto chýb dalo zbaviť tak, že by sme postavili Brownov Turingov stroj na báze tuhého, absolútne hladkého hodinového stroja. Takýto Turingov stroj je menej idealizovaný ako biliardový počítač, ale viac idealizovaný ako enzýmový stroj. Na jednej strane si jeho časti nevyžadujú absolútne presné opracovanie, ako je to potrebné pri biliardových guličkách, časti hodinového strojčeka môžu mať určité tolerancie a stroj môže pracovať aj pri výraznom tepelnom šume. Napriek tomu musí byť stroj absolútne pevný a bez statického trenia a žiadne makroskopické teleso nemá tieto vlastnosti.

Keďže časti stroja k sebe tesne nepriliehajú, sú držané v polohe nie trením, ale systémom drážok - drážok a zubov (pozri obrázok). Hoci každá časť stroja má malé množstvo voľnej hry, ako kúsky drevenej skladačky, vo všeobecnosti môže mechanizmus sledovať iba jednu „výpočtovú cestu“. Inými slovami, diely sú navzájom prepojené takým spôsobom, že v danom čase môže stroj vykonávať iba dva typy pohybu veľkého rozsahu: pohyb zodpovedajúci kroku výpočtu v smere dopredu a pohyb v smere opačný smer.

Počítač robí prechody medzi týmito dvoma druhmi pohybu len ako výsledok náhodného tepelného pohybu jeho častí, vplyvom slabej vonkajšej sily. Pravdepodobnosť pohybu v opačnom smere, eliminujúca výsledky poslednej operácie, je takmer rovnaká ako pravdepodobnosť pohybu v smere dopredu. Malá sila pôsobiaca zvonku posúva výpočty dopredu. A opäť môže byť táto sila ľubovoľne malá; a preto nie je potrebná minimálna energia potrebná na udržanie chodu Turingovho stroja na hodinovom stroji.

Z dôvodov klasickej termodynamiky teda nie je potrebná minimálna energia na výpočty. Nedostáva sa potom termodynamická analýza do konfliktu s kvantovou mechanikou? Koniec koncov, podľa princípu kvantovej mechanickej neistoty by mal existovať inverzný vzťah medzi stupňom neistoty o tom, ako dlho proces trvá, a stupňom neistoty o množstve energie vynaloženej v tomto procese. Niektorí výskumníci sa preto domnievajú, že pri akomkoľvek procese prepínania, ktorý sa uskutoční vo veľmi krátkom čase, je potrebné vynaložiť určité minimum energie.

V skutočnosti princíp neistoty nevyžaduje žiadne konečné minimum energie pre rýchlu spínaciu udalosť. Princíp neistoty by sa uplatnil iba vtedy, ak by sme sa pokúsili zmerať presný časový okamih, kedy došlo k udalosti. Aj podľa zákonov kvantovej mechaniky môžu nastať extrémne rýchle udalosti bez akejkoľvek straty energie. Naše presvedčenie, že kvantová mechanika umožňuje výpočty s ľubovoľne malým množstvom energie, potvrdzujú modely reverzibilných kvantových mechanických počítačov vyvinuté Benioffom a kol. Tieto modely nerozptyľujú energiu a riadia sa zákonmi kvantovej mechaniky.

Zdá sa teda, že princíp neistoty nekladie zásadné obmedzenia na proces výpočtu. Nevnucuje ich ani klasická termodynamika. Znamená to, že výpočtová technika nemá žiadne fyzické limity? Nie, to ani zďaleka nie je pravda. Skutočné obmedzenia súvisia s otázkami, na ktoré je oveľa ťažšie odpovedať ako na tie, ktoré sme položili a zvážili v tomto článku. Urobte napríklad základné veci logické operácie nejaký minimálny čas ukončenia? Aké sú minimálne rozmery zariadenia schopného vykonávať takéto operácie? Keďže mierky veľkosti a času súvisia s konečnou rýchlosťou svetla, zdá sa, že odpovede na tieto otázky sú akosi prepojené. Tieto odpovede však v žiadnom prípade nenájdeme, kým sa nevyrieši otázka, či v univerzálnej škále dĺžky a času existuje nejaká elementárna diskrétnosť.

Druhým extrémom problému je otázka, akú veľkú pamäť počítača dokážeme vyrobiť. Koľko častíc vo vesmíre môžeme zhromaždiť a spojiť na tieto účely? Faktom je, že maximálna možná veľkosť pamäte počítača obmedzuje presnosť, s akou je možné vykonávať výpočty. Napríklad počet desatinných miest vo vypočítanej hodnote p bude obmedzený. Ďalšia, možno súvisiaca s tým druhým, otázka sa týka nevyhnutných degradačných procesov, ktoré prebiehajú v skutočných počítačoch, keď starnú. Je možné znížiť mieru deštrukcie a hromadenia chýb na ľubovoľne malé hodnoty, alebo táto rýchlosť obmedzuje maximálnu dobu trvania výpočtu? Inými slovami, existujú nejaké výpočtové úlohy, ktoré sa nedajú dokončiť skôr, ako sa materiálna časť počítača stane nepoužiteľnou?

V skutočnosti sa takéto otázky týkajú obmedzení fyzickej popravy. matematické operácie. Fyzikálne zákony, na ktorých musia byť odpovede v konečnom dôsledku založené, sú vyjadrené pomocou takýchto matematických operácií. Kladieme si teda otázku, v akej forme môžu platiť fyzikálne zákony pod obmedzeniami danými vlastnosťami vesmíru, ktoré sú naopak týmito zákonmi opísané.