A programok logikai címzést használnak az operandusok megcímzésére a fizikai címtérben. A processzor automatikusan lefordítja a logikai címeket fizikai címekre, amelyeket aztán kiad a rendszerbuszra.

A számítógép architektúrája megkülönbözteti a fizikai címteret (PHA) és a logikai címteret (LAP). Fizikai címtér egy egyszerű, egydimenziós bájttömb, amelyet a memóriahardver a mikroprocesszoros rendszer címbuszon lévő címén ér el. logikai címtér konkrét igények alapján szervezi meg a programozó. A logikai címek fizikai címekre fordítását az MMU memóriakezelő egység végzi.

A modern mikroprocesszorok architektúrájában a LAP elemi struktúrák halmazaként jelenik meg: bájtok, szegmensek és oldalak. Mikroprocesszorokat használnak a következő lehetőségeket szervezetek logikai címtér:

  • lapos (lineáris) LAP: bájtok tömbjéből áll, amelynek nincs meghatározott szerkezete; címfordítás nem szükséges, mivel a logikai cím megegyezik a fizikai címmel;
  • szegmentált LAP: szegmensekből áll - a memória folytonos területei, amelyek általános esetben változó számú bájtot tartalmaznak; a logikai cím 2 részből áll: a szegmensazonosítóból és a szegmensen belüli eltolásból; a címfordítást az MMU szegmentáló egység végzi;
  • PA oldal: oldalakból áll - a memória összefüggő területeiből, amelyek mindegyike meghatározott számú bájtot tartalmaz. A logikai cím egy oldalszámból (azonosító) és az oldalon belüli eltolásból áll; egy logikai cím fizikai címmé történő fordítását az MMU személyhívó egység végzi;
  • szegmensoldali LAP: tartalmazza szegmensek, amelyek viszont oldalakból állnak; a logikai cím egy szegmensazonosítóból és a szegmensen belüli eltolásból áll. A szegmensleképező MMU lefordítja a logikai címet oldalszámmá és oldaleltolássá, amelyeket azután az oldalleképező MMU lefordít fizikai címre.

A mikroprocesszor két üzemmódban képes működni: valós és védett.

Amikor bent dolgozik valós mód a processzor képességei korlátozottak: a címezhető memória kapacitása 1 MB, nincs memória lapozás, szegmensek rögzített hossza 216 bájt.

Ezt a módot általában a számítógép indításának kezdeti szakaszában használják a belépéshez védett mód.

NÁL NÉL valós mód A processzor szegmensregiszterei a kezdet fizikai címének felső 16 bitjét tartalmazzák szegmens. 4 bittel balra tolódott választó megadja a szegmens 20 bites alapcímét. A fizikai címet úgy kapjuk meg, hogy ezt a címet hozzáadjuk egy 16 bites offset értékhez a szegmensben, amely az operandushoz megadott címzési mód szerint van kialakítva, vagy az utasítás EIP regiszteréből kinyerhető (3.1. ábra). A kapott címen az információ lekérésre kerül a memóriából.



Rizs. 3.1. Fizikai cím megszerzésének sémája

A mikroprocesszor memóriacímzési képességei a legteljesebben akkor valósulnak meg, amikor bedolgozunk védett mód. A címezhető memória mennyisége 4 GB-ra nő, megjelenik az oldalcímzési mód lehetősége. Szegmensek 1 bájttól 4 GB-ig változó hosszúságú lehet.

A fizikai cím létrehozásának általános sémája egy működő mikroprocesszorral védett módábrán látható. 3.2.

Mint már említettük, a fizikai cím kialakításának alapja a logikai cím. Két részből áll: választóés eltolások a szegmensben.

Választó a mikroprocesszor szegmensregiszterében található, és lehetővé teszi a szegmens leírásának megtalálását (leíró) egy speciális leíró táblázatban. Leírók A szegmenseket speciális rendszerobjektumok globális (GDT) és helyi (LDT) leíró táblákban tárolják. Leíró nagyon fontos szerepet játszik a mikroprocesszor működésében, a címtér változatos szervezésével járó fizikai cím kialakításától a többprogramos működési mód megszervezéséig. Ezért nézzük meg részletesebben a szerkezetét.

Szegmensek mikroprocesszor fut be védett mód, nagyszámú paraméter jellemzi. Ezért az általános célú 32 bites mikroprocesszorokban a szegmensinformációkat tárolják

Rizs. 3.2. Fizikai cím kialakítása a memória szegmensoldalas szerveződésében

nevű speciális 8 bájtos adatstruktúra leíró, és a fő funkciót a szegmensregiszterekhez rendeljük - meghatározva a leíró helyét.

Szerkezet szegmens leíróábrán látható. 3.3.

Rizs. 3.3. Szegmensleíró szerkezet

A szerkezetet fogjuk figyelembe venni, és nem a leíró formátumát, mivel az i286 mikroprocesszorról a 32 bites MP-re való áttérés során az egyes leírómezők elrendezése elvesztette harmóniáját, és részben úgy nézett ki, mint a rendbe rakott "foltok". hogy mechanikusan növeljük ezeknek a mezőknek a bitmélységét.

A 32 bites alapcímmező lehetővé teszi egy szegmens kezdőcímének megadását a 232 bájtos (4 GB) címtérben bárhol.

Limit mező(limit) jelzi a szegmens hosszát (pontosabban a szegmens hosszát mínusz 1: ha ez a mező 0, akkor ez azt jelenti, hogy a szegmens hossza 1) címezhető egységekben, azaz maximális méret szegmens 2 20 elemből áll.

Az elem értékét a G leíró bit egyik attribútuma határozza meg (Granularity - granularity, vagy fractionality):

Így egy szegmens mérete 1 bájt pontosságú lehet 1 bájttól 1 Mbyte-ig (G = 0 esetén). 2 12 = 4 KB oldalméret esetén a szegmens méretét 4 GB-ra állíthatja (G = l esetén):

Mivel az IA-32 architektúrában egy szegmens a címtér tetszőleges pontjáról indulhat, és tetszőleges hosszúságú lehet, a memóriában lévő szegmensek részben vagy teljesen átfedhetik egymást.

Méret bit(Alapértelmezett méret) alapértelmezés szerint meghatározza az utasításban használt címek és operandusok hosszát:

saját belátása szerint. Természetesen ez a rész nem erre való hétköznapi felhasználó, és számára rendszerprogramozó, amely például szemétgyűjtő szegmensek vagy olyan szegmensek megjelölésére használja, amelyek alapcíme nem módosítható. Ez a bit csak a legmagasabb jogosultsági szinten futó programok számára érhető el. A mikroprocesszor nem változtatja meg és nem használja fel a munkájában.

Access Byte meghatározza a szegmens kezelésének alapvető szabályait.

Presence Bit P (jelen) a szegmens elérésének képességét jelzi. Az operációs rendszer (OS) ideiglenesen hiányzóként jelöli meg a RAM-ból a külső memóriába átvitt szegmenst, ha leíróját P = 0-ra állítja. Ha P = 1, a szegmens a fizikai memóriában van. Ha egy P = 0-s leírót választunk (a szegmens nincs a RAM-ban), az alapcím és a határérték mezőket figyelmen kívül hagyja. Ez természetes: például hogyan beszélhetünk egy szegmens alapcíméről, ha maga a szegmens nincs benne véletlen hozzáférésű memória? Ebben a helyzetben a processzor minden további felhasználási kísérletet elutasít leíró csapatokban, és meghatározott leíróÚgy tűnik, hogy a címtér "eltűnik".

Van egy speciális eset a szegmens hiányának. Ezzel egyidejűleg az operációs rendszer a kért szegmenst a lemezről a memóriába másolja (miközben esetleg egy másik szegmenst töröl), betölti leíró a szegmens alapcíme, beállítja a P = 1 értéket, és újraindítja azt az utasítást, amely hozzáfért a RAM-ban nem lévő szegmenshez.

A kétjegyű DPL (Descriptor Privilege Level) mező a négy lehetséges közül egyet jelöl (0 és 3 között) jogosultsági szinteket kezelni, amely meghatározza a szegmenshez való hozzáférés lehetőségét bizonyos programok által (a 0. szint felel meg leginkább magas szint kiváltságok).

Fordító bit Az A (Hozzáférés) értéke "1" a szegmenshez való bármely hozzáférésnél. Az operációs rendszer a leghosszabb ideig nem elért szegmensek nyomon követésére használja.

Például másodpercenként egyszer állítsa vissza az operációs rendszer az A bitet az összes szegmens leírójában. Ha egy idő után új szegmenst kell betölteni a RAM-ba, amelyhez nincs elég hely, az operációs rendszer meghatározza a "jelölteket" a RAM egy részének törlésére, a benne lévő szegmensek közül leírók amely A bit eddig nem volt "1"-re állítva, vagyis amelyekhez nem fértek hozzá mostanában.

Írja be a mezőt a hozzáférési bájtban határozza meg a szegmens célját és használatát. Ha az S bit (Rendszer - a hozzáférési bájt 4. bitje) 1, akkor ez leíró valós memóriaszakaszt ír le. Ha S = 0, akkor ez a leíró egy speciális rendszerobjektumot ír le, amely nem lehet memóriaszegmens, például egy feladatkapcsolóban használt hívási átjáró, vagy egy helyi LDT leíró tábla kezelője. Bit hozzárendelés<3...0>A hozzáférési bájtot a szegmens típusa határozza meg (3.4. ábra).

Rizs. 3.4. Hozzáférés bájttípus mezőformátum

A kódszegmensben: a C (Conforming) alárendeltségi bit további kezelési szabályokat határoz meg, amelyek védelmet nyújtanak a programszegmensek számára. Ha C = 1 ezt a szegmenst egy alárendelt kódszegmens. Ebben az esetben szándékosan fosztják meg a privilégiumvédelemtől. Egy ilyen eszköz kényelmes például olyan szubrutinok szervezésére, amelyeknek elérhetőnek kell lenniük a rendszerben futó összes feladat számára. C = 0 esetén ez egy normál kódszegmens; Az R (Readable) olvasási bit azt állítja be, hogy a szegmenshez csak végrehajtáshoz lehet-e hozzáférni, vagy például konstansok adatként történő végrehajtásához és olvasásához a szegmenscsere előtag használatával. Ha R = 0, csak a parancsok szegmenséből lehet kiválasztani a végrehajtásukat. Ha R = 1, a szegmensből származó adatok kiolvasása is megengedett.

A kódszegmensbe írás tilos. Minden írási kísérlet szoftvermegszakítást okoz.

Az adatszegmensben:

  • ED (Expand Down) – terjeszkedési irány bit. ED = 1 esetén ez a szegmens veremszegmens, és a szegmens eltolásának nagyobbnak kell lennie, mint a szegmens mérete. ED = 0 esetén ez a tényleges adatszegmens (az eltolásnak kisebbnek vagy egyenlőnek kell lennie, mint a szegmens mérete);
  • írás engedélyező bit W(írható). Ha W = 1, a szegmensmódosítás megengedett. Ha W = 0, a szegmensbe írás tilos; amikor megpróbál a szegmensbe írni, szoftveres megszakítás lép fel.

Operandus kérés esetén szegmenseltolás a mikroprocesszor a parancsban megadott operanduscímzési mód szerint alakítja ki. A kódszegmensben lévő eltolás ebből származik regiszter - utasításmutató EIP.

A leíróból leolvasott szegmens kezdőcímének és a szegmensben generált eltolásnak az összege adja lineáris cím(LA).

Ha a mikroprocesszorban csak a címtér szegmensábrázolását használjuk, akkor a kapott lineáris cím is fizikai cím.

Ha az első szegmensen kívül lapozási mechanizmust is használunk a memória szervezésére, akkor lineáris cím két mezőként ábrázolva: a legmagasabb számjegyek tartalmazzák a számot virtuális oldal, és a legkisebb eltolás az oldalon. A virtuális oldalszám fizikai oldalszámmá konvertálása speciális rendszertáblázatok segítségével történik: oldaltábla könyvtár(KTS) és oldaltáblázatok(TS). Az oldaltábla könyvtárának helyét a memóriában a CR3 rendszerregiszter határozza meg. A fizikai cím az oldaltáblázatból kapott fizikai oldalcím és a lineáris címből kapott oldaleltolás összegeként kerül kiszámításra.

Tekintsük most részletesebben a logikai címek fizikai címké alakításának minden lépését.

A 80386 mikroprocesszor a korábbi 16 bites 8086/80286 mikroprocesszorok teljes 32 bites változata, és jelentős előrelépést jelent a processzorarchitektúra terén 16 bitről 32 bitesre. A bitmélység növekedésével együtt számos fejlesztés és további jellemzők. A 80386 mikroprocesszor a következőket kínálja: feladatváltás, továbbfejlesztett memóriakezelés, virtuális memóriakezelés lapozással vagy anélkül, szoftvervédelem és tömegtárolási képesség. Összes szoftver, a régebbi 8086/8088 és 80286 mikroprocesszorokhoz írt alulról felfelé kompatibilis és a 80386 mikroprocesszorhoz A processzor által címezhető memória mennyisége 1 MB-ról (8086/8088 mikroprocesszornál) vagy 16 MB-ról (80286 esetén) nőtt mikroprocesszor) 4 GB-ig elérhető a 80386 processzor védett módban. A 80386 mikroprocesszor védett módból valós módba válthat anélkül újraindítás mikroprocesszor, ami időigényes és a 80286-os processzor használata esetén volt szükséges.

A 80486 mikroprocesszor a 80386 mikroprocesszor továbbfejlesztett változata, és számos utasítást egyetlen órajel ciklusban hajt végre. A 80486 mikroprocesszor egy 8 KB-os belső L1 gyorsítótárral és egy integrált, nagy teljesítményű matematikai koprocesszorral is rendelkezik, amely szoftver kompatibilis a 80387 társprocesszorral.. Ne feledje, hogy a 80486DX4 processzor 16 KB gyorsítótárral rendelkezik. A 80486-os mikroprocesszor, amely ugyanazon az órajelen fut, mint a 80386-os mikroprocesszor, 50%-kal termelékenyebb.

Mikroprocesszor 80386

A 80386 mikroprocesszor két változata volt a legelterjedtebb: a 80386DX processzor és az egyszerűsített 80386SX processzor külső 16 bites adatbusszal, bár belsőleg 32 bites buszt használt.

A 80386DX processzor egy 132 tűs PGA (pin grid array) csomagba került. Több egy új verzió A 80386 - 80386EX mikroprocesszor tartalma: AT busz vezérlő egység, dinamikus RAM regenerálás vezérlő egység, programozható kristály választó egység, megszakítás vezérlő, DMA vezérlő, időzítő egység, soros adatátviteli egység, 26 címbusz láb, 16 adat buszcsapok.

A 32 bites adatbusszal és 32 bites címbusszal rendelkező 80386DX mikroprocesszor 4 GB fizikai memória címezésére képes. A 80386SX mikroprocesszor a 80286 mikroprocesszorhoz hasonlóan 16 MB memóriát címez, és csak 24 bites címbusszal és 16 bites adatbusszal rendelkezik. A 80386SX mikroprocesszort a 80386DX mikroprocesszor után fejlesztették ki anélkül, hogy szükség lenne rá. teljes verzió 32 bites busz. A 80386SX mikroprocesszort sokan használták személyi számítógépek aki ugyanazt használta alaplap Ugyanaz, mint a 80286 mikroprocesszornál. Abban az időben, amikor a legtöbb alkalmazás, beleértve a Windowst is, kevesebb mint 16 MB memóriát igényelt, a 80386SX processzor a 80386 mikroprocesszor népszerű és olcsóbb változata volt. Később annak ellenére, hogy a 80486 processzor lett Mindenesetre egyre olcsóbb az új számítástechnikai rendszerek kiépítése, a 80386-os processzor hosszú ideje sok alkalmazás iránt továbbra is kereslet maradt. Például a 80386EX mikroprocesszor, bár személyi számítógépekben nem használták, nagyon népszerű volt a beágyazott rendszerekben.

80386 mikroprocesszor, valamint a család korábbi verziói Intel mikroprocesszorok, csak egy +5.0V tápegység szükséges a működéshez.frekvencia 16 MHz. Ezen kívül volt a processzornak egy 33 MHz-es órajelű változata, amelynek áramfelvétele 600 mA. A 80386EX mikroprocesszor áramfelvétele 320 mA 33 MHz-en üzemelve.

A processzor bizonyos üzemmódokban 1,0 A-ig vesz fel áramot, ami azt jelenti, hogy a tápegységnek és a tápkábelnek tudnia kell kezelni ezeket az áramcsúcsokat. A processzor számos V CC és V SS tűvel rendelkezik, amelyek a helyes működés A mikroprocesszort a forráshoz kell csatlakoztatni egyenáram+5,0 V (V CC) és földelt (V SS). Egyes processzor érintkezők N/C (nincs kapcsolat) jelzéssel vannak ellátva, és nem szabad sehova csatlakoztatni. Az említetteken kívül a 80386SX és 80386EX mikroprocesszorok számos más változata is létezett, melyek tápfeszültsége +3,3 V. Ezeket a processzorokat hordozható notebook számítógépekben (notebook) ill. laptop számítógépek(laptop).

Memória rendszer

A 80386DX mikroprocesszor által elérhető fizikai memóriarendszer kapacitása 4 GB. Ezenkívül a processzornak van támogatása virtuális memória 64 TB-ig leképezve a fizikai memóriára az MCU és a leírók segítségével. Meg kell jegyezni, hogy a virtuális címzés lehetővé teszi a program több mint 4 GB használatát a cseremód (csere) jelenlétében és a merevlemez nagy kapacitásával. ábrán. A 6.4. ábra a 80386DX mikroprocesszor fizikai memóriarendszerének felépítését mutatja.

A memória négy 8 bites memóriabankra van felosztva, egyenként legfeljebb 1 GB kapacitással. Ez a 32 bites memóriaszervezés lehetővé teszi a hozzáférést egy bájthoz, szóhoz vagy duplaszóhoz. A 80386DX mikroprocesszor 32 bites adatátvitelre képes egy memóriaciklus alatt, míg a 8088 mikroprocesszor négy, a 80286 és 80386SX mikroprocesszor két ciklust igényel. A nagy adatszélesség nagyon fontos, különösen az egyszeres precíziós lebegőpontos számoknál, amelyek 32 bitet foglalnak el. A kellően fejlett szoftverek lebegőpontos számokat használnak az adatok tárolására, így a 32 bites memóriahelyek felgyorsítják a program végrehajtását, ha a memóriát figyelembe véve írják.

A memória minden bájtjának címe hexadecimális jelöléssel van ábrázolva, mint például előző verziók processzorok. A különbség az, hogy a 80386DX mikroprocesszor 32 bites címbuszt használ a 00000000H-FFFFFFFFH tartományban címezhető memóriával.

A 8086, 80286 és 80386SX mikroprocesszorokra épülő rendszer két memóriabankja a BLE (8086 és 80286 esetén A0) és OUT jeleken keresztül érhető el. A 80386DX mikroprocesszor négy BE3-BE0 jellel éri el a memóriabankokat. Ez a memóriaszervezés lehetővé teszi egy bájt elérését, amikor a mikroprocesszor aktivál egy engedélyező jelet.

Két engedélyező jel aktiválásakor a processzor egy szóhoz szól. A legtöbb esetben egy szó megcímzése a 0. és 1. bankra vagy a 2. és 3. bankra vonatkozik. A 00000000H memóriahely a 0. bankban, a 00000001H hely az 1. bankban, a 00000002H a 2. bankban, a 00000003. pedig a 3. bankban található. A 80386DX mikroprocesszornak nincs A0 és A1 címtűje, mert ezeket belsőleg bájt engedélyezési jelként dekódolják. Hasonlóképpen, a 16 bites 80386SX mikroprocesszornak nincs A0 címtűje, mivel BLE és OUT jelekké dekódolják. A 80386EX mikroprocesszor egy adatszót címez meg, amely egy 16 bites memóriarendszer két bankjában található, ha a BS8 jel passzív (logikai magas), vagy egy bájtot egy 8 bites rendszerben, amikor ez a jel aktiválva van.

Ellenőrző regiszterek

A 80386 mikroprocesszor az EFLAGS flag regiszteren és az EIP utasításmutatón kívül más vezérlőregiszterekkel is rendelkezik. A CR0 vezérlőregiszter (vezérlőregiszter) megegyezik a gép állapotregiszterével MSW(gépállapot szó) a 80286 mikroprocesszor, kivéve, hogy ez egy 32 bites regiszter, nem pedig 16 bites. További vezérlőregiszterek a CR1, CR2 és CR3.

ábrán. 6.5. mutatja a 80386 mikroprocesszor vezérlőregisztereinek felépítését.

A CR1 vezérlőregisztert a 80386 mikroprocesszor nem használja, de a jövőbeni termékek számára van fenntartva. A CR2 vezérlőregiszter rögzíti azt a lineáris címet, amelyen az utolsó memórialaphiba érkezett. Végül a CR3 vezérlőregiszter rögzíti az oldaltábla alapcímét. A 32 bites regiszter alsó 12 bitje 0-tól 11-ig nullákat tartalmaz, és a regiszter többi bitjével kombinálva meghatározza a 4K oldaltábla elejét.

A CR0 regiszter számos speciális vezérlőbittel rendelkezik, amelyek a 80386 mikroprocesszorban a következők szerint vannak definiálva:

A PG (lapozás engedélyezése) bit célja, hogy kiválassza az oldaltáblázat lineáris címekről fizikai címekké való átalakítását, ha PG = 1. A memórialapozás lehetővé teszi, hogy bármilyen fizikai memóriahelyet hozzárendeljen egy lineáris címhez.

ET

Az ET (extension type) bit a matematikai társprocesszor utasításainak támogatását jelzi. Ha ET 0, akkor a 80287 koprocesszor kerül kiválasztásra, ha pedig ET = 1, akkor a 80387 koprocesszor kerül kiválasztásra.

A TS (task switch) bit azt jelzi, hogy a mikroprocesszor feladatváltást hajtott végre (a TR feladatregiszter tartalmának biztonságos módban történő megváltoztatása beállítja a TS bitet). Ha a TS bit be van állítva, akkor egy digitális társprocesszor utasítás 7-es típusú megszakítást eredményez (a társprocesszor nem elérhető).

ESZIK

Az EM (emulate coprocessor) bit úgy van beállítva, hogy 7-es típusú megszakítást váltson ki, amikor minden egyes ESC parancsot, azaz a társprocesszorhoz kapcsolódó utasítást végrehajtanak. Ezt gyakran használják társprocesszor szoftveres emulációjára. Az emuláció csökkenti a rendszer költségeit, de az emulált társprocesszor-utasítások végrehajtása gyakran tovább tart, akár 100-szor is.

Az MP (monitor coprocessor) bit úgy van beállítva, hogy 7-es típusú megszakítást indítson minden várakozási parancsnál, miközben a TS bit be van állítva.

ÚJRA

A PE (protection enable) bit úgy van beállítva, hogy a 80386-os mikroprocesszort védett módba helyezze. Ezenkívül alaphelyzetbe állhat, hogy elindítson egy meglehetősen hosszú utasítássorozatot a valós módba váltáshoz. A 80286-os mikroprocesszorban ez a bit csak állítható. A 80286-os mikroprocesszor nem tud visszaváltani valós módba hard reset végrehajtása nélkül, ami kizárja a használatát a legtöbb védett módú rendszerben.

Leírók és kiválasztók

Mielőtt a lapozóblokkról beszélnénk, nézzük meg a 80386 mikroprocesszor leíróit és szelektorait A 80386 mikroprocesszor nagyjából ugyanúgy használja a leírókat, mint a 80286 mikroprocesszor. Leíró mindkét mikroprocesszorban ez egy nyolc bájtos sorozat, amely információkat tartalmaz a memóriaszegmensről és annak helyéről. Választó(a szegmensregiszter tartalma) a leíró táblázatban megadott leíró azonosítására szolgál. A 80286-os és 80386-os mikroprocesszorok közötti fő különbség az, hogy az utóbbi két további szelektorral (FS és GS) rendelkezik, és a leíró két legjelentősebb bájtja a 80386-os mikroprocesszorhoz van definiálva. Egy másik különbség az, hogy a 80386 mikroprocesszor leírók a 32 bites szegmens alapcímét és a 20 bites szegmenskorlát mezőt használják a 80286 mikroprocesszoron található 24 bites alapcím és 16 bites szegmenskorlát mező helyett.

A 80286-os mikroprocesszor 16 MB-os memóriaterületet címez meg 24 bites alapcímével, és 64 KB-os szegmenshosszal rendelkezik a 16 bites határmezővel. A 80386-os mikroprocesszor 32 bites alapcímet használ egy 4 GB-os memóriaterület megcímzésére, a szegmens méretét pedig egy 20 bites határmező határozza meg, amelyet két felhasználó használ. különböző utak. A leíró G granularitási bitje (szemcsésség) vagy egyébként a törtbit határozza meg a szegmens méretének mértékegységét: ha G = 0, akkor a méret bájtokban van megadva, ha G = 1, akkor 4K oldalakban. Így a szegmens mérete 20 bites limitmezővel 1 MB, illetve 4 GB lehet.

A G granularitás bit a 80386 mikroprocesszor óta jelenik meg a leíróban. Ha a G bit = 0, akkor a limit mezőben tárolt értéket közvetlenül szegmensméret-korlátként kezeli, amely lehetővé teszi a hozzáférést egy 1 MB-os 00000H-FFFFG szegmenshez. szegmens. Ha a G bit = 1, akkor a határérték mezőben tárolt szám 00000XXXH-FFFFFXXXHként értelmeződik, ahol XXX bármely érték 000H és FFFH között. Ez hozzáférést biztosít a 0 bájttól 4 GB-ig terjedő szegmensmérethez 4 KB-os darabokban. A 00001H határérték azt jelzi, hogy a szektor méretkorlátja 4 KB, ha a G bit értéke 1, vagy 1 bájt, ha a G bit értéke 0. Példa erre egy 10000000H fizikai címmel kezdődő szegmens. 00001H határérték és G bit = 0 esetén ez a szegmens 10000000H-nál kezdődik és 10000001H-nál ér véget. Ha a G bit = 1 azonos határértékkel (00001H), akkor a szegmens a 100000000H helyen kezdődik és 10001FFFH-nál végződik.

ábrán. A 6.6. ábra azt mutatja, hogy a 80386 mikroprocesszor hogyan címez meg egy memóriaszegmenst védett módban egy szelektor és egy leíró segítségével. A bemutatott címzés megegyezik a 80286-os mikroprocesszor szegmens címzésével, a különbség a 80386-os mikroprocesszor számára elérhető szegmens méretében van. A szelektor felső 13 bitje (15-3 bit) egy leíró kiválasztására szolgál a leíró táblázatból. Táblázatjelző bit A TI (tábla indikátor) (a szelektor 2. bitje) a leíró tábla típusát jelzi: lokális, ha a TI bit = 1, vagy globális, ha a TI bit = 0. Az RPL (kért jogosultsági szint) alsó két bitje ( A szelektor 1-0) bitjei meghatározzák a szektor eléréséhez szükséges jogosultsági szintet.

Mivel a szelektor 13 bites kódot használ a leíró eléréséhez, minden tábla (helyi vagy globális) legfeljebb 8192 leírót tartalmaz. Mivel a 80386-os mikroprocesszor lehetséges szegmensmérete eléri a 4 GB-ot, két leíró táblázat segítségével egyszerre 16 384 szegmens érhető el. Mindez lehetővé teszi, hogy a 80386 mikroprocesszor 64 TB-ig (1 TB = 1024 MB) támogassa a virtuális memóriát. Természetesen létezhet olyan memóriarendszer, amelynek kapacitása legfeljebb 4 GB. Ha a program egy adott időpontban 4 GB-nál több memóriát igényel, akkor a szükséges adatok lemezmeghajtóról vagy más nagy tárolóeszközről pumpálhatók a memóriarendszerbe.

A 80386 mikroprocesszor leíró táblázatokat használ a globális ( GDT) és helyi (LDT) leírók. A harmadik leíró táblát a megszakítás leírók használják ( KAPOTT) vagy szelepek(kapuk). A 80386 mikroprocesszor leíró első hat bájtja megegyezik a 80286 mikroprocesszoréval, ami alulról felfelé biztosítja a szoftver kompatibilitását vele. A 80286 mikroprocesszor leíró magas két bájtja le van foglalva, és 00H értéket tartalmazott. A 80286-os és 80386-os mikroprocesszorok leírói az ábrán láthatók. 6.7.

A 80386 mikroprocesszor-leíró tartalmaz egy 32 bites alapcímet, egy 20 bites szegmenskorlát mezőt és egy G granularitási bitet, amely meghatározza a szegmenskorlát szorzót (1 vagy 4K-szor), vagy egyébként azt, hogy milyen egységekben van beállítva a határ: bájt (G = 0) vagy oldalanként 4K (G = 1). A 80386 mikroprocesszor leíró mezők célja a következő:

Alap (B31-B0)

A Bázis mező megadja a szegmens alap (kezdő) 32 bites címét a 80386-os mikroprocesszor fizikai 4 GB-os címterében.

Határérték (L19-L0)

A Limit mező megadja a szegmens bájtban megadott korlátját, ha a részletességi bit G = 0 vagy 4K oldalakon, ha G = 1. Ez bármilyen szegmensméretet megenged 1 bájttól 1 MB-ig, ha a G bit = 0, vagy 4 KB és 1 GB között, ha a G bit = 1. Emlékezzünk vissza, hogy a határ az utolsó bájtot jelöli szegmens.

Hozzáférési jogok

A Hozzáférési jogok mező határozza meg a jogosultsági szintet és a szegmensre vonatkozó egyéb információkat. Ez a bájt más különböző típusok leírók, és mindegyikhez meg van adva.

A G granularitási bit (szemcsésség) 1 vagy 4K szorzót választ ki a szegmenskorlát mezőhöz. Ha a G bit = 0, akkor a szorzó 1, ha a G bit = 0, akkor a szorzó 4K.

A D (alapértelmezett méret) bit határozza meg a használt operandusok és regiszterek alapértelmezett méretét. Ha D = 0, akkor 16 bit, mint a 80286 mikroprocesszorban; ha D = 1, akkor 32 bit, mint a 80386 mikroprocesszorban Ez a bit határozza meg, hogy szükséges-e előtag a 32 bites adat- és indexregiszterekhez. Ha D = 0, akkor a 32 bites regiszterek eléréséhez és a 32 bites mutatók használatához előtag szükséges. Ha D = 1, akkor a 16 bites regiszterek és a 16 bites mutatók eléréséhez előtag szükséges. Az assembly nyelvben a szegmens direktívával együtt használt use16 és use32 attribútumok szabályozzák a D bit beállítását. valós mód A művelet mindig azt feltételezi, hogy a regiszterek 16 bitesek, ezért a 32 bites regiszter vagy mutató által címzett utasításokat előtaggal kell ellátni.

Az AVL (elérhető) bit a következőhöz érhető el operációs rendszerés szükség szerint használható. A processzor nem alkalmazza és nem elemzi, és az alkalmazási programok általi használatra készült.

Kétféle leíró létezik: egy kód- és adatszegmens-leíró, valamint egy rendszerszegmens-leíró. Az első leíró határozza meg az adat-, verem- és kódszegmenseket. A rendszerszegmens leíró célja a rendszertáblákról, feladatokról és kapukról szóló információk tárolása.

A szuperszámítógépeket mindig is a számítástechnika speciális osztályának tekintették. Mivel az ilyen gépeket a szokatlan problémák megoldására építik, a költségvetés szokatlan, és ez viszont a végtelen lehetőségek érzését keltette: úgy tűnt, mindig csak a pénzben van a probléma, és újabb tucat-két millióval a termelékenység is csökkenhet. végtelenül növekedett. Ami az elmúlt hónapokban és években történt, és amit a bolygó legerősebb 500 legerősebb számának friss listája – az Ön által ismert TOP500.org – fejez ki, okot ad arra, hogy kijelentsük, hogy a „végtelennek” vége. A szuperszámítógépek az elsők a modern világban számítógépes rendszerek belebotlottak a félvezető elektronika lehetőségeinek fizikai határába - és számukra mindenekelőtt most meg kell találni a kiutat a zsákutcából. új technológia számítástechnika.

Egy ilyen nagy horderejű kijelentés formai nyoma egy furcsa minta volt, amelyet a fenti lista összeállítói vettek észre. A Top 500 évente kétszer frissül felső pozíciókövé legújabb verzió A múlt héten megjelent, szinte semmi változás nem történt (csak egy került be az első tízbe új tag, és mind az ötszáz gép összteljesítménye kismértékben, 0,223-ról 0,250 exaflopra nőtt). Volt azonban egy minőségi általános változás: a lista „súlypontja” a lista tetejére tolódott, vagy leegyszerűsítve: a fő számítási teljesítmény most egy viszonylag kicsi (történelmileg rekordot döntögető) helyen összpontosul. ) a leggyorsabb gépek száma. Így néz ki: a Top 450 összesített teljesítményének felét csak a lista első 17 számítógépe adja. Ez a tendencia nem tegnap jelentkezett, de az elmúlt hat évben annyira formát öltött, hogy el kell gondolkodni rajta.

Nincs egyetlen végleges magyarázat. Az egyik leglenyűgözőbb a pénzügyi: az elmúlt években a szuperszámítógépek sokkal drágábbak lettek (mintegy négyszeresére, mint mondjuk a nullaközéphez képest), és ezért ma már csak viszonylag kevés kormány számára érhetők el. ügynökségek és nagyvállalatok. Ráadásul az új, nem túl erős gépek tervezői és vásárlói nem törekednek arra, hogy szerepeljenek az értékelésben, hogy ne rontsák az imázsukat. Így aztán kiderül, hogy minél tovább, annál fényesebben nyilvánul meg a trend: az erősek megerősödnek, a gyengék pedig nemlineárisan gyorsan lemaradnak.

Fontos következtetés: a szuperszámítógépekre nem szűnt meg szükség, csak egyre kevésbé hozzáférhetőek. De mi a helyzet Moore halhatatlan törvényével? Az áremelkedést nem kellene feszesebb csomagolással és ezáltal nagyobb teljesítménnyel pótolni? Itt merül fel a fő gyanú. Úgy tűnik, elérkeztünk a célba, ahol a Moore-törvény, bár még mindig működik, már túl drága ahhoz, hogy a legtöbb játékos számára használja.

A tudósok a következőképpen fogalmazzák meg az eredményt: az eddig elérhetetlen számítási sebességet egy ugrással biztosító áttörést jelentő technológiák hiányában a szuperszámítógép-ipar kiterjedt pályára kényszerül – ostobán megnövelve a processzorok számát a gépeiken. És ami még rosszabb: mivel ez az út nem képes kielégíteni a felhasználók étvágyát (a bitszám pedig hagyományosan nem csak adatfeldolgozó eszköz, hanem vállalati és országos tekintélyteremtés is), a tervezők grafikus gyorsítókra hagyatkoztak. , amelyek mondjuk nem akármilyen feladat megoldására alkalmasak. A GPU-kat aktívan használó szuperszámítógépek száma nagyságrenddel nőtt az elmúlt öt évben!

És itt nagyon hasznos visszaemlékezni a híres Linpack teszt közelgő leváltására, amely a Top 500 megjelenésének kezdetétől (húsz évvel ezelőtt) a szuperszámítógépes rendszerek teljesítményének fő mérőszáma. Javasoljuk, hogy helyettesítsék az újonnan kifejlesztett HPCG (High Performance Conjugate Gradient) teszttel. Oka: A Linpack - a Fortran nyelven még 1979-ben íródott - azt mutatja, hogy a mért rendszerek valódi teljesítménye nem kielégítő, és az eltérés egyre nő.

Általában még közös társszerzőjük, Jack Dongarra sem tudja egyértelműen megmagyarázni a Linpack és a HPCG közötti különbséget. De nagyban leegyszerűsítve a különbség a következőkre csökkenthető: a Linpack elsősorban a szuperszámítógépek tiszta számítási képességét értékeli (amit a GPU-gyorsítók jól teljesítenek), míg a HPCG a belső kommunikáció teljesítményét is figyelembe veszi, ami fontos gyakorlati tudományos és technikai problémák megoldása (vagyis például gyakori, szabálytalan memóriaelérés).

Ha a HPCG nem váltja fel, akkor néhány év „befutás” után kiegészíti a Linpack-et (akit érdekel, a forráskódok BSD licenc alatt elérhetők a Sandia Labs weboldaláról). Ez pedig a teljes Top 500-as lista jelentős átrendeződését, a kis résztvevők visszatérését vonhatja maga után, akik magasabb, igazságosabb értékeléseket kapnak, sőt a szuperszámítógépek architektúrájának módosításait is, ha már nem Linpack-re optimalizálták. Bár persze ez utóbbiban nem szabad különösebben reménykedni – elvégre még mindig nincs áttörő számítástechnika!

És áttörések nélkül az unalom uralkodott el a Numberbiterek világában. Hogyan építsünk erősebb gépet? Tegyen több processzort - és ezért találjon több pénz. De a valóság az, hogy a gyakorlati feladatok egy bizonyos (és már elért) szint feletti párhuzamosítása nem hoz sebességnövekedést, sőt a legtöbbet nagy teljesítményű szuperszámítógépek már olyan drágák, hogy építésüket és üzemeltetésüket az egységek megengedhetik maguknak, amint azt fentebb tárgyaltuk. Ennek eredményeként a szuperszámítógép-folyam kiszárad. Ez egy technológiai korszak vége, vége a félvezetőknek, ahogyan az elmúlt ötven évben ismertük őket. És amíg nem lesz olyan technológia, amely új szintre emelheti a számítógép teljesítményét, addig stagnálni fogunk, megelégedve néhány százalékos éves növekedéssel.

Mi adhat ekkora áttörést? A nyugati sajtó a nanocsöveket bámulja, amelyekből a stanfordi srácoknak sikerült egydimenziós poláris tranzisztorokat (CNFET-eket) építeni, megtanulni, hogyan lehet garantált funkcionalitású mikroáramköröket készíteni (a fő probléma: még mindig nehéz elkerülni egy nagy szám rossz helyen elhelyezett nanocsövek) és még egy MIPS-kompatibilis számítógépet is készíthet, amit éppen a múlt héten mutattak be az ACM / IEEE SC13 szuperszámítógép konferencián (a „Computerra” írt erről a projektről: lásd „”). A jövőben ez a technológia 13-szoros teljesítményfölényt képes biztosítani egységnyi energiafogyasztásra vetítve félvezető chipek. Kíváncsi vagyok, foglalkozik-e itt valaki nanocsövekkel?

Sok rajongó számítógépes technológia tapasztalattal emlékeznek azokra az időkre, amikor a processzorfrekvenciákat megahertzben mérték, és ebben a mutatóban a gyártók (vagyis az Intel és az AMD) igyekeztek megelőzni egymást. Aztán a processzorok energiafogyasztása és hőleadása annyira megnőtt, hogy lehetetlenné vált ennek a versenynek a folytatása. Az elmúlt években elkezdték növelni a processzormagok számát, de ennek eredményeként elértek egy határt, amikor ez a növekedés veszteségessé vált. Mostanra a legnagyobb teljesítmény elérése wattonként a teljesítmény fő tényezőjévé vált.

Mindezek a változások nem következtek be, mert a fejlesztők szembesültek a meglévő processzorok továbbfejlesztésének fizikai korlátaival. A teljesítményt inkább az korlátozta, hogy egyes területeken – elsősorban az energiahatékonyságban – lassabb volt a fejlődés, mint más területeken, például a funkcionalitás és az utasításkészletek bővítésében. Azonban lehet, hogy most a fizikai korlát a processzorok és azok számítási teljesítmény már közel? Igor Markov, a Michigani Egyetem munkatársa a Nature folyóiratban megjelent cikkében foglalkozott ezzel a kérdéssel.

Figyelembe véve az akadályokat

Markov megjegyzi, hogy tisztán fizikai korlátok alapján egyes tudósok úgy számoltak, hogy a Moore-törvény még száz évig fennmarad. Másrészt az International Technology Roadmap for Semiconductors (ITRS) csoport néhány évtizednyi élettartamot ad neki. Az ITRS előrejelzései azonban megkérdőjelezhetők: ez a csoport a Core2 chipek idejében 10 GHz-es processzorokat jósol. Ennek az eltérésnek az az oka, hogy sok súlyos fizikai korlát soha nem került szóba.

Például egy funkcionális egység méretének szélső határa egy atom, ami a végső fizikai határ. De jóval azelőtt, hogy ezt a határt elérhetnénk, a fizika korlátozza az elektronok áramlásának pontos szabályozását. Más szóval, az áramkörök akár egy atom vékonyak is lehetnek, de viselkedésük sokkal hamarabb válik megbízhatatlanná. Az Intel a vékonyabb gyártási folyamatokra (kisebb tranzisztorokra) való átállásra irányuló folyamatban lévő munkája nagy része a strukturálás módjának kitalálása. egyedi komponensekígy továbbra is az elvárt módon működhetnek.

Markov érvelésének lényege valahogy így értelmezhető: bár vannak kemény fizikai korlátok, ezek gyakran irrelevánsak a modern félvezetők fejlődését gátló problémák szempontjából. Ehelyett enyhébb korlátozásokkal kell szembenéznünk, amelyek gyakran megkerülhetők. „Amikor eljön a pillanat egy bizonyos fejlődést akadályozó korláthoz, annak természetének megértése a kulcsa annak leküzdéséhez” – írja. „Egyes korlátokat egyszerűen figyelmen kívül lehet hagyni, míg mások hipotetikusak maradnak, és csak empirikus bizonyítékokon alapulnak; nehezen telepíthetők magas fok bizonyosság."

Ennek eredményeként a fejlődés útjában álló akadályokat gyakran a kreatív gondolkodás és a fejlett technológia kombinációja hárítja el. Markov példája a diffrakciós határ. Kezdetben azt kellett volna megakadályozni, hogy az argon-fluor lézerek lemarjanak 65 nanométernél vékonyabb szerkezeteket. De a szubhullámhosszú diffrakcióval jelenleg 14 nm-es struktúrákon dolgozunk ugyanazzal a lézerrel.

Hol vannak a modern határok?

Markov két olyan kérdésre figyel, amelyeket a legnagyobb korlátnak tart: az energiára és a kommunikációra. Az energiafelhasználás kérdése abból adódik, hogy a modern áramkörök által felhasznált energia mennyisége nem csökken a fizikai méretük csökkenésével arányosan. Ennek fő eredménye: erőfeszítéseket tettek a chip egyes részei blokkolására, amikor azok nincsenek használatban. De a jelenlegi fejlődési ütem mellett ez a megközelítés Bármikor a chip nagy része inaktív – innen ered a "sötét szilícium" kifejezés.

Az energiafelhasználás arányos a chip üzemi feszültségével, és a tranzisztorok egyszerűen nem működhetnek 200 mV alatt. Most 5-ször nagyobb a feszültségük, így van lehetőség csökkenteni. Az üzemi feszültség csökkentésében azonban lelassult az előrehaladás, így ismét elérhetjük a technológiai határokat a fizikaiak előtt.

Az energiafelhasználás problémája a kommunikáció kérdéséhez kapcsolódik: a chip fizikai térfogatának nagy részét és energiafogyasztásának nagy részét a különböző blokkjai vagy a számítógép többi része közötti interakcióra fordítják. Itt tényleg elérjük a fizikai határokat. Még ha a chipben lévő jelek fénysebességgel haladnának is, az 5 GHz feletti chip nem tud információt továbbítani a chip egyik oldaláról a másikra. A legjobb, amivel tehetünk modern technológiák, célja olyan chipek fejlesztése, amelyekben az egymással gyakran adatot cserélő blokkok fizikailag közel lennének. Egy harmadik dimenzió (azaz háromdimenziós láncok) bevonása az egyenletbe segíthet, de csak csekély mértékben.

Mi a következő lépés?

Markov nem különösebben optimista a közelgő változásokat illetően. A közeljövőben arra számít, hogy a szén nanocsövek használata a vezetékezésben és az optikai összeköttetések a kommunikációban folytatni fogja azt a tendenciát, amely segít elkerülni a fizikai korlátokat. Megjegyzi azonban, hogy mindkét technológiának megvannak a maga korlátai. A szén nanocsövek lehetnek kicsik, akár nanométer átmérőjűek is, de mérethatáruk is van. És a fotonokra, ha kommunikációra használnák, szükség lenne rá hardverés energia.

Sokan a kvantumszámítógépekhez fűzik reményeiket, de Markov nem tartozik a rajongóik közé. " kvantumszámítógépek, mind a digitális, mind az analóg, csak a szűkebb alkalmazásokban ígéretesek, és nem nyújtanak jelentős teljesítményt az általános számítástechnikában, mert nem tudnak gyorsan válogatni és más speciális feladatokat elvégezni” – mondja. A probléma az is, hogy ez a berendezés abszolút nullához közeli hőmérsékleten működik a legjobban, míg szobahőmérsékleten a teljesítménye rendkívül alacsony.

Azonban minden számítás bizonyos mértékig kvantumhatásokra támaszkodik, és Markov úgy véli, hogy van valami hasznos tanulnivaló a kvantumrendszerekből. "Az egyes kvantumeszközök közelítik a kapcsolási energia határait, míg a nem kvantum eszközök nagyságrenddel lemaradnak." Nyilvánvaló, hogy a kvantumrendszerek kis mértékű hatékonyságának elérése nagymértékben elindíthatja az energiafogyasztást a teljes chipen belül.

Egy másik markovi fizikai határ: egy kis információ törlésének termodinamikai költsége van, amelyet nem lehet elkerülni – a számítások mindig energiát fogyasztanak. Az egyik ötlet ennek a határnak az elkerülésére a "reverzibilis számítás", ahol a komponensek visszakerülnek a kezdeti állapot számítás után. Ez a módszer – legalábbis elméletben – lehetővé teszi a felhasznált energia egy részének visszaszerzését.

Ez az elképzelés nem teljesen elméleti. Markov a szupravezető áramkörök alkalmazásával végzett munkára hivatkozik (amelyeket "meglehetősen egzotikusnak" nevez), hogy visszafordítható viselkedést és a termodinamikai határ alatti energiadisszipációt biztosítsák. Természetesen itt csak 4 mikrokelvint használnak fel, így több energiát fordítanak az áramkörök működőképességének ellenőrzésére, mint a tényleges működésükre.

A fizikán túl

Míg a fizika és az anyagtudomány sok korlátot szab a hardvernek, a matematika szab határokat annak, hogy mit tehetünk velük. És annak ellenére, hogy egzakt tudományként ismert, a matematikai korlátok sokkal homályosabbak, mint a fizikaiak. Például még mindig nincs válasz a P és NP komplexitási osztályok egyenlőségére, az évekig tartó erőfeszítések ellenére. És bár bebizonyíthatjuk, hogy egyes algoritmusok a leghatékonyabbak általános esetekre, könnyű megtalálni azokat a problémákat, ahol az alternatív számítási megközelítések jobban teljesítenek.

A legnagyobb probléma, amit Markov itt lát, az a küzdelem, hogy több párhuzamosságot vonjon ki a kódból. Még olcsó okostelefonok most dolgoznak többmagos processzorok, de egyelőre nem optimális a használatuk.

Általában úgy tűnik, hogy a fő korlát az emberi elme. Bár Markov nem lát fantasztikus új technológiák megjelenését, optimista a tekintetben, hogy a jelenlegi akadályok elhárulnak, vagy megkerülik a fejlődést más területeken.

A szerkesztőtől. Rendszeres olvasóink tudják, hogy lapunkban időnként megjelennek a leghíresebb, klasszikus számítástechnikai cikkek, művek utánnyomásai. A „Számítástechnika fizikai korlátait” régóta szerettük volna kinyomtatni… körülbelül tizenöt éve. De ez a csodálatos cikk valahogy nem kapott helyet más anyagok összetételében, túl furcsán nézne ki egy újságban, ha „csak úgy” nyomtatják. És akkor ilyen szerencse! A cikk megemlítésre került (teljesen megérdemelten) továbbképző tanfolyamunk utolsó előadásán, mint azon kevés orosz nyelvű információforrások egyikeként ebben a témában. Természetesen nem hagyhattuk ki a lehetőséget. Reméljük, hogy élvezni fogja ezt a csodálatos népszerű anyagot. Hiszen még a megjelenése óta eltelt 24 (!) év sem tette „elavulttá”, bár persze a technológiák parszekekkel haladtak előre! De az alapvető törvények még a technológiának is túl kemények!

Milyen fizikai tényezők korlátozzák a számítási folyamatot? Van-e korlátozó minimális energiaszükséglet, például egy logikai lépés végrehajtásához? Látszólag ilyen minimum nem létezik, de vannak még nyitott kérdések.

Számítás, függetlenül attól, hogy megtörténik-e elektronikus eszközök, közönséges számlák szerint vagy egy biológiai rendszer, mint például az agy, egy fizikai folyamat. Ugyanazok a fogalmak vonatkoznak rá, mint más fizikai folyamatokra. Mennyi energia szükséges egy adott számítás elvégzéséhez? Mennyi időbe telik? Milyen méretű legyen a számítástechnikai eszköz? Más szóval, melyek a számítási folyamat fizikai korlátai?

Természetesen ezeket a kérdéseket sokkal könnyebb feltenni, mint válaszolni rájuk. A minket érdeklő korlátok valahogy nagyon távol állnak azoktól a valós korlátoktól, amelyekkel szembenézünk. modern technológia. Ezért nem állíthatjuk, hogy kutatásunk egy mérnök vagy egy technológus munkáját segíti. Ezek a tanulmányok inkább elméleti jellegűek. Célunk, hogy azonosítsuk azokat az általános törvényeket, amelyek az információfeldolgozás minden típusát szabályozzák, tekintet nélkül a feldolgozás eszközeire és módszereire. Az általunk talált korlátoknak kizárólag alapvető fizikai elveken kell alapulniuk, nem pedig a jelenleg használt technológiákon.

Ennek az alapvető korlátok keresésének már voltak előzményei. Az 1940-es években K. Shannon, a Bell Telephone Laboratories akkori alkalmazottja megállapította, hogy zaj jelenlétében egy kommunikációs csatornán továbbítható információ mennyisége korlátozott. Ezek a korlátozások az üzenet kódolásától függetlenül érvényesek. Shannon munkája a modern információelmélet születését jelentette. Még korábban, a múlt század közepén és végén a fizikusok, akik megpróbálták meghatározni a gőzgép hatékonyságának alapvető korlátait, létrehozták a „termodinamika” nevű tudományt. 1960 körül Landauer (a cikk egyik szerzője) J. Swansonnal együtt, miközben az IBM-nél dolgozott, megpróbálta alkalmazni ezt a fajta elemzést a számítási folyamatban. Az 1970-es évek közepétől egyre több más szervezetek tudóscsoportja kezdett csatlakozni ezekhez a vizsgálatokhoz.

A számítás fizikai korlátainak elemzése során az „információ” kifejezést abban az értelemben használjuk, ahogyan az információelméletben meghatározásra került. E definíció szerint az információ akkor tűnik el, amikor két, korábban különálló helyzet megkülönböztethetetlenné válik. NÁL NÉL fizikai rendszerek, amelyet a súrlódási erők hiánya jellemez, az információ nem semmisíthető meg, mert az információ megsemmisülésekor bizonyos mennyiségű energiának át kell mennie hővé. Példaként vegyünk két könnyen megkülönböztethető fizikai helyzetet. Az egyikben a padlótól 1 m, a másikban 2 m magasságban egy gumilabda van megtámasztva, ha elengedjük a labdát, leesik és felpattan a padlóról. Súrlódás hiányában és feltéve, hogy a labda tökéletesen rugalmas, a megfigyelő mindig meg tudja mondani, hogy milyen volt a labda kezdeti állapota (ebben az esetben milyen magasságban volt a kezdeti időpontban), mivel a 2 m magasságból leesett labda magasabbra pattan, mint amikor 1 m magasságból zuhan.

Súrlódási erők jelenlétében azonban minden alkalommal, amikor a labda lepattan a padlóról, bizonyos energia eloszlik, és végül a labda abbahagyja a pattanást, és a padlón marad. Ekkor lehetetlen lesz megállapítani, hogy mi volt a labda kezdeti állapota: a 2 m magasságból leesett labda teljesen azonos lesz az 1 m magasságból leesett labdával. Az információ elveszik energia disszipáció.

A hagyományos számítástechnikai eszközök, az abakusz és a mikroprocesszor elvezetik az energiát működés közben. A mikroprocesszor logikai kapui általi energiadisszipáció az információ eltűnésének köszönhető. Vannak más okok is: elektronikus áramkörök A mikroprocesszorok akkor is fogyasztanak energiát, ha egyszerűen információt tárolnak anélkül, hogy azokat feldolgoznák. Az elszámolások disszipatívak a nem kiküszöbölhető súrlódási erők miatt: statikus súrlódás hiányában a „csontok” a molekulák véletlenszerű hőmozgásának hatására változnának helyzetükön. A statikus súrlódás egy bizonyos minimális erőt jelent, amely nem függ a „csontok” sebességétől, ezért az abakusz minimális energiát igényel, függetlenül attól, hogy milyen lassan működnek.

Mondjunk egy másik példát az információ eltűnésére. A "2 + 2" kifejezés több információt tartalmaz, mint a "= 4" kifejezés. Ha csak azt tudjuk, hogy a 4-es számot két szám összeadásával kaptuk, akkor nem tudjuk megállapítani, hogy melyik számot adtuk össze: 1 + 3, 2 + 2, 0 + 4 vagy más számpár. Mivel a kimeneti információ implicit módon már benne van a bemenetben, feltételezhetjük, hogy egyetlen számítás sem generál információt.

A hagyományos logikai kapuk eloszlatják az energiát, mert eldobják a szükségtelen információkat. Például, ha az ÉS kapu kimenete 0, akkor nem tudjuk meghatározni, hogy mi volt a bemeneteken.

Valójában a modern számítógépeken végzett számításokat számos olyan művelet segítségével végzik, amelyek megsemmisítik az információkat. Az úgynevezett szelep És ” egy két bemeneti vonallal rendelkező eszköz, amelyek mindegyike 1-es vagy 0-s jelre állítható, és egy kimeneti vonal - jelének értékét a bemenetek értékei határozzák meg. Ha mindkét bemenet 1, akkor a kimenet is 1 lesz. Ha az egyik vagy mindkét bemenet 0, akkor a kimenet 0. Ha a kapu kimenete 0, akkor információt veszítünk, mert nem tudjuk, hogy melyik három lehetséges állapot volt a bemeneti sorok (0 és 1; 1 és 0 vagy 0 és 0). Valójában minden logikai kapu, amelynek több bemenete van, mint kimenete, elkerülhetetlenül információt veszít, mert nem tudjuk meghatározni a bemenetek állapotát a kimenetek állapotából. Ezért valahányszor egy ilyen „logikailag visszafordíthatatlan” szelepet használunk, az energiát szétszórjuk környezet. A számítógép memóriájában lévő adatok egy bitjének törlése egy másik, a számítástechnikában gyakran használt művelet, amely szintén disszipatív jellegű. Egy bit adat törlésekor minden információ elveszik a bit korábbi állapotáról.

Azonban jogos feltenni a kérdést, hogy a számítástechnikában elkerülhetetlen-e az irreverzibilis logikai kapuk és a törlési műveletek alkalmazása? Ha igen, akkor minden számításunknak el kell oszlatnia egy bizonyos minimális mennyiségű energiát.

Ahogy Benne (a cikk egyik szerzője) megmutatta 1973-ban, megtehetjük az irreverzibilis logikai elemeket és az információk törlését a számításban. Azóta ennek a rendelkezésnek az érvényességét több modell is bizonyítja. A legegyszerűbb az úgynevezett „reverzibilis logikai kapukon” alapuló modelleket leírni, mint például a Fredkin-kapu, amelyet Edward Fredkinről neveztek el az MIT-n. A szelepnek három bemeneti és három kimeneti vezetéke van. Az egyik bemeneti vonalon, amelyet "vezérlőcsatornának" neveznek, a jel nem változik, ahogy áthalad a kapun. Ha a vezérlőcsatornán a jel 0-ra van állítva, akkor a másik két vonal bemeneti jelei is változás nélkül haladnak át. De ha a vezérlővonal 1, akkor a másik két kimeneti vonal átkapcsol: az egyik vonal bemeneti jele a másik kimenete lesz, és fordítva. A Fredkin-kapu nem veszít információt, hiszen a bemenetek állapota mindig meghatározható a kimenetek állapotából.

Fredkin megmutatta, hogy a számítógép működéséhez szükséges bármely logikai eszköz megépíthető Fredkin kapuk megfelelő kombinációja formájában. A számítás elvégzéséhez egyes kapuk bizonyos bemeneti sorait előre be kell állítani bizonyos értékekre (lásd a bal alsó ábrát).

Előfordulhat, hogy a megfordítható Fredkin logikai kapu nem disszipál energiát - a bemeneti állapot a kimenetek állapotából meghatározható. A szelepnek van egy „vezérlő” vezetéke, amelynek állapotát a szelep nem változtatja meg. Ha a vezérlővonal 0, akkor a másik két vonalon a jelértékek sem változnak, de ha a vezérlővonal 1, akkor az A sor bemenete az S sor kimenete lesz, és fordítva. Megfelelően csatlakoztatott reverzibilis szelepekkel bármely hagyományos, nem reverzibilis eszköz által végzett funkció megvalósítható. Az ÉS művelet végrehajtásához (jobbra) az egyik bemenet 0-ra van állítva, és két kimeneti bit, úgynevezett "szemét", átmenetileg figyelmen kívül marad. Amikor a számítás befejeződött, ezek a bitek a kapu ellenkező irányú működtetésére szolgálnak, hogy a számítógépet visszaállítsák eredeti állapotába.

A Fredkin kapuknak több kimeneti vonala van, mint az általuk modellezetteknek. Ezért a számítások során úgy tűnik, hogy „szemétdarabok” keletkeznek, pl. olyan információ bitek, amelyek nem szükségesek az eredmény eléréséhez. Mielőtt újabb számításba kezdene, valahogyan meg kell tisztítania a számítógépet ezektől a bitektől. De ha kitöröljük őket, akkor az az energiaeloszlás következik be, amelyet el akartunk kerülni.

Valójában ezek a bitek nagyon fontos szerepet játszanak. Miután megkaptuk a számítás eredményét, és a szokásos kimeneti sorokról lemásoltuk a gépről, a folyamatot az ellenkező irányba kell futtatni. Vagyis a „junk biteket” és azokat a kimeneti biteket használjuk, amelyeket a számítógép a számítás során „bemenetként” kap a gép „hátsó oldaláról”. Ez azért lehetséges, mert minden számítógépes logikai kapu megfordítható. A fordított irányú számítási folyamat során nem történik információvesztés, ezért nincs szükség az energia eloszlatására. Végül a számítógép visszatér a számítás megkezdése előtti állapotába. Ezért lehetséges a "számítási ciklus" befejezése - a számítógép előrehajtása, majd az eredeti állapotba való visszatérés energiaveszteség nélkül.

Eddig absztrakt logikai műveletekről beszéltünk anélkül, hogy érintettük volna az ezeket a műveleteket végrehajtó fizikai eszközöket. Nem nehéz azonban elképzelni egy fizikai eszközt, amely a Fredkin-elv szerint működik. Egy ilyen eszközben az információ továbbítására szolgáló csatornák csövek formájában vannak bemutatva. Egy kis információt viszont egy labda jelenléte vagy hiánya képvisel a cső egy bizonyos szakaszában. A labda jelenlétét 1-nek, a hiányát 0-nak kell értelmezni.

A vezérlővonalat a cső egy keskeny szakasza képviseli, amely középen hosszirányban hasított. Amikor a golyó bejut a cső hasított szakaszába, széttolja a cső oldalfalait, így működteti a kapcsolószerkezetet. Ez a kapcsolóeszköz vezeti a bemeneti gyöngyöket, amelyek két másik csőben lehetnek. Ha egy golyó van a vezérlőcsőben, akkor a bemeneti vezetéken keresztül érkező golyó automatikusan átkerül egy másik csőbe. Annak biztosítására, hogy a kapcsolókészülék ki legyen kapcsolva, ha nincs golyó a vezérlőcsőben, az utóbbi kettéosztott feleit rugók nyomják egymáshoz. Amikor a golyó belép a vezérlőcsőbe, és összenyomja a rugókat, ehhez némi energiát kell fordítania. Ez az energia azonban nem vész el: visszaadódik, amikor a vezérlőgolyó elhagyja a hasított csövet és a rugók elengednek.

Az összes golyó egymással össze van kötve, és egyetlen mechanizmussal tolják előre, így szinkronban mozognak; egyébként nem tudnánk biztosítani, hogy a különböző bemeneti és vezérlőgolyók egy időben érkezzenek a logikai kapuhoz. Bizonyos értelemben a számítási folyamat hasonló az egy szabadságfokú mozgáshoz, például két, ugyanazon a tengelyen mereven ülő kerék mozgásához. Amikor a számítás befejeződött, az összes golyót az ellenkező irányba toljuk, kiküszöbölve az összes műveletet az előrehaladási úton, és visszaállítjuk a számítógépet az eredeti állapotába.

Ha az eszköz teljesen elmerül egy ideális viszkózus folyadékban, akkor a golyókra ható súrlódási erők arányosak lesznek a sebességükkel, miközben nem lesz statikus súrlódás. Ezért, ha megelégszünk a golyók lassú mozgásával, a súrlódási erő nagyon kicsi lesz. Minden mechanikai rendszerben a súrlódási erő leküzdésére irányuló munka egyenlő a súrlódási erő és a test által megtett út szorzatával. (Ezért minél gyorsabban úszik meg egy úszó egy bizonyos távolságot, annál több energiát költ el, annak ellenére, hogy a távolság az úszó sebességétől függetlenül változatlan marad.) Ha a golyók kis sebességgel haladnak át a Fredkin-szelepeken, akkor a a mozgás során végzett munka (az erőtávolság szorzata) nagyon kicsi lesz, mivel a súrlódási erő egyenesen arányos a labda sebességével. Valójában tetszőlegesen kevés energiát költhetünk el, egyszerűen a számítási folyamat megfelelő lassulása miatt. Így arra a következtetésre jutunk, hogy nincs minimálisan szükséges energiamennyiség, amelyet egy adott számítás elvégzéséhez el kell fordítani.

A Fredkin-szelep idealizált fizikai modellje: a csövek a vezető szerepét töltik be, a golyó jelenlétét vagy hiányát pedig 1-ként vagy 0-ként értelmezzük. A cső keskeny hasított része a vezérlőcsatorna. Amikor egy labda eltalálja, a cső falai oldalra válnak, működtetve a kapcsoló mechanizmust. Ez utóbbi pedig minden érkező labdát áthelyez az A sorból a B vonalba és fordítva. Két rugó tartja kikapcsolva a vezérlőcsatornát, ha nincs benne labda. Egy ilyen szelep nem igényel statikus súrlódást a műveletek végrehajtásához. Viszkózus folyadékba meríthető, és akkor a súrlódási erők csak a golyók sebességétől függenek. Ebben az esetben a disszipált energia tetszőlegesen kicsi lehet: a disszipált energia mennyiségének csökkentése érdekében csak a szelepen áthaladó golyók sebességét kell csökkenteni.

Egy számítástechnikai eszköz figyelembe vett modelljében a súrlódás miatti veszteség nagyon kicsi lesz, ha ez az eszköz elég lassan működik. Lehetséges egy még idealizáltabb gép modelljét építeni, amely súrlódás nélkül tud számolni? Vagy a súrlódás a számítási folyamat szükséges tulajdonsága? Fredkin T. Toffolival és az MIT más szakembereivel együtt megmutatta, hogy nincs szükség súrlódásra.

Ezt egy olyan számítástechnikai eszköz modelljén mutatták be, amelyben a számításokat úgy végzik, hogy ideális biliárdgolyókat lőnek egymás felé súrlódási erők hiányában. A biliárdmodellben az ideálisan tükröző „tükrök” - a labda mozgásának irányát megváltoztató felületek - úgy vannak elhelyezve, hogy az asztalon lévő golyók mozgása szimulálja az információ bitek áthaladását a logikai kapukon (lásd az ábrát). Mint korábban, a labda jelenléte a „számítógép” egy bizonyos részében 1-nek, a hiánya pedig 0-nak van értelmezve. Ha két golyó egyszerre éri el a logikai kaput, akkor összeütközik és a pályájuk megváltozik; az új utak a kapu kimenetét jelentik. Fredkin, Toffoli és mások a különböző típusú logikai kapuknak megfelelő tükörelrendezéseket fejlesztettek ki, és bebizonyították, hogy bármilyen biliárdmodellt meg lehet építeni. logikai elem számításokhoz szükséges.

Biliárd számítógépes modell: A biliárdgolyók mozgása az asztal felületén szimulálja az információ bitek áthaladását egy logikai kapun. A biliárd logikai kapukban (balra) a golyók pályája megváltozik, amikor egymásnak vagy "tükrökkel" ütköznek. A szelepekben betöltött funkcióik mellett a tükrök megváltoztathatják a labda pályájának szögét (a), oldalra tolhatják (b), késleltethetik a labdát anélkül, hogy megváltoztatnák a végső irányát vagy sebességét (c), vagy a pályák metszéspontját idézhetik elő. (d). A tükröket úgy lehet elhelyezni, hogy a kapott "számítógép" bármilyen logikai eszköz funkcióit ellátja. Például építhet egy biliárd számítógépet a prímszámok felismerésére. Egy ilyen számítógép (jobb oldalon) tetszőleges öt számjegyet fogad el bináris szám(ebben az esetben 01101 vagy 13) és 01 rögzített bemeneti sorozat. A Fredkin-kapuhoz hasonlóan a biliárd számítógép is több kimeneti bitet ad vissza, mint amennyire a felhasználónak szüksége van. Ebben az esetben magát az eredeti számot adja vissza (ami az „extra” kimenetet jelenti) és a „választ”: 10-es sorozatot, ha a bemenet prím, és 01-et, ha összetett.

A számítási folyamat elindításához biliárdlabdát lőünk a számítógép bemenetére, ha egységet kell megadnunk. A labdáknak egyszerre kell belépniük a gépbe. Mivel a golyók tökéletesen rugalmasak, nem veszítenek energiából, amikor egymásnak ütköznek. Ugyanolyan kinetikus energiával fognak kiszállni az autóból, mint amivel beszálltak.

Működése során a biliárd számítógép „szemét biteket” generál, akárcsak a Fredkin Gatesre épített számítógép. Miután a számítógép befejezte a feladat végrehajtását, a biliárdgolyókat az ellenkező irányba tükrözzük, megfordítva a számítási folyamatot. A golyók pontosan ott fognak kijönni az autóból, ahol beküldtük őket, és ugyanakkor ugyanolyan sebességgel mozognak. Így az a mechanizmus, amely a golyókat az autóba indította, most visszakaphatja mozgási energiáját. Ebben az esetben pedig egy számítás elvégzésével energiaveszteség nélkül visszaállíthatjuk a számítógépet eredeti állapotába.

A biliárd számítógépnek van egy jelentős hátránya: rendkívül érzékeny a legkisebb pontatlanságra. Ha a labdát a helyes iránytól enyhe eltéréssel küldjük el, vagy a tükröt a számítotttól kissé eltérő szögben fordítjuk, a labdák a kívánt pályáról indulnak el. Egy vagy több golyó eltér a számított útvonaltól, és egy idő után ezeknek a hibáknak az együttes hatása megzavarja a teljes számítási folyamatot. Még ha tökéletesen rugalmas, súrlódásmentes golyókat is lehetne készíteni, a golyókat alkotó molekulák véletlenszerű hőmozgása elegendő lehet ahhoz, hogy néhány tucat ütközés után hibákat okozzon.

Természetesen be lehetne szerelni olyan korrekciós berendezéseket, amelyek egy hibásan mozgó labdát visszavezetnének a kívánt pályára, de ebben az esetben a labda korábbi állapotaira vonatkozó információkat meg kell semmisíteni. Például meg kell semmisíteni a tükör helyes helyzetétől való eltérésének mértékére vonatkozó információkat. Az információtól való megszabadulás azonban még a hiba kijavítása érdekében is csak olyan rendszerben lehetséges, amelyben súrlódási erők vannak és energiaveszteség lehetséges. Ezért a korrekciós berendezésnek bizonyos mennyiségű energiát el kell oszlatnia.

A biliárdszámítógép-modell használata során felmerülő számos nehézség elkerülhető vagy legalábbis csökkenthető lenne, ha biliárdgolyók helyett szubmikroszkópos részecskéket, például elektronokat használnának. Amint arra W. Zurek, a Los Alamos National Laboratory munkatársa rámutatott, a kvantummechanika törvényeinek köszönhetően, amelyek korlátozzák az elemi részecskék állapotát, kiküszöbölhető a részecskék mozgásában bekövetkező kis eltérések lehetősége.

Bár eddigi érvelésünk főként a klasszikus dinamikán alapult, több kutató is javasolta a reverzibilis számítógépek más modelljét a kvantummechanika elvein. Az ilyen gépeket, amelyeket először P. Benioff javasolt az argonne-i (Franciaország) Nemzeti Laboratóriumtól, és amelyeket mások, különösen R. Feynman, a California Institute of Technology munkatársa fejlesztettek tovább, eddig csak a legáltalánosabb kifejezésekkel írták le. Lényegében ezekben a számítógépes modellekben a részecskéket úgy kell elrendezni, hogy a kvantummechanika szabályai, amelyek kölcsönhatásukat szabályozzák, pontosan megegyezzenek azokkal a szabályokkal, amelyek a reverzibilis logikai kapuk kimenetein lévő jelek értékeit előre jelzik. Tegyük fel például, hogy egy részecske spinjében csak kettő lehet lehetséges értékek: irány felfelé (megfelel az 1-es binárisnak) és lefelé (megfelel a 0-nak). A részecskék spinjei közötti kölcsönhatásnak úgy kell megvalósulnia, hogy egy adott részecske spinjének értéke a közelben lévő részecskék spinétől függően változzon. Ebben az esetben a részecske spinje a logikai kapu egyik kimenetének felel meg.

Fentebb főleg az információfeldolgozásról volt szó. De a számítógépnek nemcsak feldolgoznia kell az adatokat, hanem tárolnia is kell azokat. Az információ tárolása és feldolgozása közötti kölcsönhatást talán a „Turing-gépnek” nevezett eszköz írja le a legjobban (Alan M. Turing nyomán, aki 1936-ban először javasolt egy ilyen gépet). A Turing-gép bármilyen számítást elvégezhet, amelyet egy modern számítógép végez. S. Benne (a cikk egyik szerzője) bebizonyította egy Turing-gép megépítésének lehetőségét, i.e. amely nem veszít információt, és ezért a munkafolyamat során bármilyen előre meghatározott kis mennyiségű energiát el tud fordítani.

A Turing-gép bármilyen számítást képes elvégezni, amit egy számítógép képes elvégezni. Egy végtelenül hosszú szalag diszkrét szegmensekre van osztva, amelyek mindegyike egy 0-t vagy 1-et tartalmaz. Egy "olvasó és írófej", amely a több közül bármelyik lehet. belső állapotok(itt csak két állapot van: A és B), a szalag mentén mozog. Minden ciklus azzal kezdődik, hogy a fej kiolvas egy bitet egy szalagszegmensből. Ezután az átmeneti szabályok rögzített halmaza szerint egy kis adatot ír a szalagszegmensbe, megváltoztatja a belső állapotát, és egy pozícióval balra vagy jobbra mozog. Mert a ezt a gépet A Turingnak csak két belső állapota van, képességei triviális számításokra korlátozódnak. A bonyolultabb, nagyszámú állapotú gépek képesek szimulálni bármely számítógép viselkedését, beleértve a náluk sokkal bonyolultabbakat is. Ez annak a ténynek köszönhető, hogy egy nagyobb gép logikai állapotának teljes reprezentációját tárolják egy végtelen szalagon, és minden számítási ciklust nagyszámú egyszerű lépéseket. Az itt látható gép logikailag megfordítható: mindig meg tudjuk határozni a gép korábbi állapotait. Előfordulhat, hogy a különböző átmeneti szabályokkal rendelkező Turing-gépek logikailag nem reverzibilisek.

A Turing-gép több komponensből áll. Az egyik egy szalag, amely külön szakaszokra vagy szegmensekre van osztva, amelyek mindegyike 0-t vagy 1-et tartalmaz, ami a bemeneti adat. Az "olvasó és írófej" a szalagon mozog. A fej több funkciót is elláthat - egy bit adatot kiolvas a szalagról, egy bitet ír a szalagra, és egy szegmenst balra vagy jobbra mozgat. Annak érdekében, hogy a következő ciklus információkat őrizzen meg arról, hogy mi történt az előzővel, a fejmechanizmusnak számos úgynevezett „állapota” van. Mindegyik állapot a fej belső részeinek saját, kissé eltérő konfigurációját képviseli.

Minden ciklusban a fej olvas egy kicsit a vele szemben lévő szalagszakaszból Ebben a pillanatban található. Ezután felírja az új bitértéket a szalagra, megváltoztatja a belső állapotát, és egy szegmenst balra vagy jobbra mozgat. Az általa írt bit értékét, az átmenet állapotát és a mozgás irányát rögzített átmeneti szabályok határozzák meg. Minden szabály bizonyos műveleteket ír le. Azt, hogy a gép éppen melyik szabályt követi, a fej állapota és a szalagról éppen leolvasott bit értéke határozza meg. Például a szabály a következő lehet: „Ha a fej A állapotban van, és szemben helyezkedik el azzal a szegmenssel, amelyben 0 van írva, akkor ennek a bitnek az értékét 1-re kell módosítania, mennie kell a B állapotba, és egy szegmenst kell mozgatnia a jobb." Más szabály szerint a gép nem változtathatja meg az állapotát, nem írhat új bitet a szalagra, különben meg kell állnia. Nem minden Turing-gép megfordítható, de meg lehet építeni egy megfordítható Turing-gépet, amely bármilyen számítást elvégezhet.

A megfordítható Turing-gépen alapuló modellek előnyt élveznek az olyan gépekkel szemben, mint a biliárd számítógép, amelynek nincs súrlódása. Egy biliárd számítógépben a molekulák véletlenszerű hőmozgása elkerülhetetlen hibákhoz vezet. A megfordítható Turing-gépek valójában véletlenszerű hőmozgást használnak: úgy vannak megtervezve, hogy a hőmozgás, amelyet egy gyenge hajtóerő segít, viszi át a gépet egyik állapotból a másikba. A számítási folyamat fejlődése egy ion (töltött részecske) mozgásához hasonlít egy oldatban gyenge elektromos térben. Ha egy ion viselkedését rövid ideig megfigyeljük, az véletlenszerűnek fog tűnni: az egyik irányú mozgás valószínűsége majdnem ugyanaz, mint a másik irányba. Az elektromos tér hatásából adódó hajtóerő azonban preferált irányt ad a mozgásnak. Valamivel nagyobb annak a valószínűsége, hogy az ion ebbe az irányba mozog. Első pillantásra hihetetlennek tűnhet, hogy a számítási folyamatban rejlő céltudatos műveletsor egy olyan berendezéssel valósítható meg, amelynek mozgásiránya minden pillanatban szinte véletlenszerűnek tekinthető. Ez a fajta cselekvés azonban nagyon gyakori a természetben. Különösen a kémiai reakciók mikroszkopikus világában figyelhető meg. A Brown-mozgás vagy véletlenszerű hőmozgás próba és hiba révén elég hatékony ahhoz, hogy a reagáló molekulák érintkezésbe kerüljenek, egymáshoz képest megfelelően rendeződjenek, ahogyan ezt a reakció megköveteli, és új molekulákat képezzenek, amelyek reakciótermékek. Elvileg minden kémiai reakció reverzibilis: ugyanaz a Brown-mozgás, amely a reakciót előrefelé viszi végbe, néha azt idézi elő, hogy a reakciótermékek fordított átmeneten mennek keresztül. Egyensúlyi állapotban a reakció fordított iránya ugyanolyan valószínű, mint a közvetlen. Ahhoz, hogy a reakció előrehaladjon, folyamatosan hozzáadnia kell a reakcióba belépő molekulákat, és el kell távolítania azokat a molekulákat, amelyek a reakció termékei. Más szóval, egy kis hajtóerőt kell alkalmaznunk. Ha ez az erő nagyon kicsi, a reakció előre és hátra is megy, de átlagosan előrefelé halad. A hajtóerő biztosításához energiát kell fordítanunk, azonban, mint a Fredkin szelepes csövek és golyók modelljében, az energia mennyisége tetszőlegesen kicsi lehet. Ha elégedettek vagyunk a műveletek nagyon lassú végrehajtásával, akkor nincs minimális energiamennyiség, amelyet ezekre a műveletekre kell fordítani. Ennek magyarázata az, hogy a disszipált energia teljes mennyisége attól függ, hogy az előre irányú lépések száma osztva a fordított irányú lépések számával. (Valójában ennek az aránynak a logaritmusával arányos; ha maga az arány nő vagy csökken, a logaritmusa ugyanabba az irányba változik.) Minél lassabban halad előre a reakció, annál kisebb lesz az arány. (A gyors és lassú úszókkal való analógia itt is releváns: ha a reakció lassabban megy végbe, akkor az összes felhasznált energia kevesebb lesz, annak ellenére, hogy a közbenső bomlások és kapcsolódások száma változatlan marad.)

Az RNS-polimeráz egy olyan enzim, amely reverzibilis szalagmásológépként működik. Az RNS szintézisének katalizátora, amely a DNS másolata. A DNS-lánc mentén haladva az enzim kiválaszt a környező oldatból egy nukleozid-trifoszfát-molekulát (mindegyik nukleozid-trifoszfát egy RNS-bázisból, egy cukormolekulából és három foszfátcsoportból áll), amelynek bázisa komplementer a jelenleg is működő DNS-bázissal. le kell másolni. Új bázist köt az épülő RNS-lánc végéhez, és felszabadítja a pirofoszfát iont. A reakció reverzibilis: előfordul, hogy az enzim pirofoszfátot köt az utolsó RNS-kapcsolathoz (a keletkező nukleozid-trifoszfát visszatér az oldatba), és egy pozícióval visszafelé mozog a DNS-lánc mentén. Amikor a reakció közel áll a kémiai egyensúlyhoz, az enzim csaknem annyi lépést tesz hátra, mint előre, és a DNS egy szegmensének másolásához szükséges teljes energia nagyon kicsi. Minél kisebb az energiadisszipáció, annál lassabban megy végbe a reakció. Ezért nincs minimális energia szükséges a DNS egy szegmensének másolásához.

NÉZZÜK MEG, hogyan működik egy Brown-féle Turing-gép a szalag másolására szolgáló Brown-gép példáján. Ilyen gép már létezik a természetben. Ez az RNS polimeráz – egy enzim, amely részt vesz az RNS szintézisében, amely a géneket alkotó DNS másolata. Az egyszálú DNS sokban hasonlít egy Turing-gép szalagjára. Minden egyes elemében, pl. a lánc minden pozíciójában négy nukleotid vagy bázis egyike található: adenin, guanin, citozin vagy timin (röviden A, G, C, T). Az RNS szerkezete nagyon hasonló a DNS-hez. Ez is egy hosszú láncszerű molekula, amely négyféle bázisból áll - adeninből, guaninból, citozinból és uracilból (A, G, C és U). Az RNS-bázisok képesek kötődni komplementer DNS-bázisukhoz.

Az RNS polimeráz katalizálja komplementer másolatának, az RNS-nek a kialakulását a DNS-en. Általában a hélixbe csavart DNS kettős szálat nagyszámú ribonukleozid-trifoszfát molekulát tartalmazó oldat veszi körül, amelyek mindegyike egy ribonukleotidból (RNS-bázis), egy cukorból és három egymáshoz kapcsolódó foszfátcsoportból áll. sorozat. Az RNS-polimeráz az oldatból kiválasztja az egyik olyan RNS-bázist, amely komplementer a DNS-szálról jelenleg lemásolandó bázissal, és a növekvő RNS-szál végéhez kapcsolja, két foszfátot szabadítva fel a környező oldatba. pirofoszfát ion. Az enzim ezután egy pozíciót előrehalad a DNS-szál mentén, felkészülve a következő bázis hozzáadására az RNS-szálhoz. Ennek eredményeként egy RNS-lánc képződik, amely komplementer a templáttal - a DNS-lánccal. RNS polimeráz nélkül ezek a reakciók nagyon lassúak lennének, és nem lenne garancia arra, hogy a kapott RNS pontosan komplementer a DNS-sel.

A leírt reakciók reverzibilisek: előfordul, hogy az enzim egy szabad pirofoszfát iont köt a növekvő RNS-lánc utolsó bázisához, és egy ribonukleozid-trifoszfát molekula kerül a környezetbe, és maga az enzim egy pozícióval visszakerül a DNS-lánc mentén. Egyensúlyi állapotban az előre és hátra lépések azonos gyakorisággal fordulnak elő, de élő sejtben más anyagcsere-folyamatok a pirofoszfát eltávolítása és a ribonukleozid-trifoszfátok feleslegének keletkezése miatt az egyensúlyt egy előre irányuló reakció felé tolják el. Laboratóriumi körülmények között a kiindulási reagensek koncentrációjának változtatásával szabályozható az RNS polimeráz reakció sebessége (ezt J. Levin és M. Chamberlain, a Berkeley-i Kaliforniai Egyetem munkatársai bizonyították). Ahogy a koncentráció közeledik az egyensúlyi állapothoz, az enzim lassabban működik, és kevesebb energia vész el egy adott DNS-darab másolásakor, mivel az előre-hátra lépések aránya csökken.

Az RNS-polimeráz egyszerűen másolja az információkat feldolgozás nélkül, nem nehéz elképzelni, hogyan működhet egy hipotetikus Turing-kémiai gép. A szalag egy hosszú vázmolekula, amelyhez szabályos időközönként kétféle bázis kapcsolódik, 0 és 1 bitként értelmezve. Egy másik kis molekula a nullák és egyesek láncának egyik pozíciójához kapcsolódik. Az a helyzet, amelyhez ez a molekula kapcsolódik, nem más, mint a szalag azon szegmense, amelyen a Turing-gép feje található. Számos különböző típusú "fejmolekula" létezik. Mindegyik típus a gép egyik lehetséges belső állapotát jelenti.

A gép átmeneti szabályait enzimek képviselik. Mindegyik enzim egy adott reakció katalizátora. Az enzimek működésének jobb megértéséhez nézzünk meg egy példát.

Tegyük fel, hogy a fejmolekula a típusú DE (azaz a gép állapotban van DE ) és a nulla alaphoz rögzítve. Tételezzük fel azt is, hogy a következő átmeneti szabály érvényben van: „Ha a fej állapotában van DE és 0-t ír ki, cserélje ki a 0-t 1-re, lépjen az állapotba NÁL NÉL és lépj jobbra. Az ezt a szabályt képviselő enzimmolekula olyan hellyel rendelkezik, amely alkalmas egy ilyen típusú fejmolekula rögzítésére DE 1. aljzathoz csatlakozik. Van még egy 0. alap rögzítésére alkalmas hely és egy fejtípusnak megfelelő hely NÁL NÉL (Lásd a képen).

A szükséges átmenethez az enzimmolekula először megközelíti a szalagon közvetlenül attól a bázistól jobbra lévő pozíciót, amelyhez a típusfej jelenleg kapcsolódik. DE . Ezután leválasztja a szalagról a fejmolekulát és a 0-s alapot, amelyhez a fej kapcsolódik, és a helyükre helyezi az 1-es alapot. NÁL NÉL a szalagra erősített egyetlen talp jobb oldalán lévő alapra. Ezzel befejeződik az átmenet. Az eredeti szalagszegmensen a 0-t 1-re cserélték, a fejmolekula most ilyen típusú NÁL NÉL és az alaphoz rögzítve, az eredetitől jobbra egy pozícióval.

Egy hipotetikus Turing-enzimgép tetszőlegesen kis mennyiségű energiával tud számítást végezni. A 0. és 1. bitet képviselő molekulák a gerinc molekulához kapcsolódnak. A Turing-gép fejét jelképező molekula a lánc (7) egyik pozíciójához kapcsolódik. különböző típusok fejmolekulák a gép különböző állapotait képviselik. Az átmeneti szabályokat enzimek képviselik. Az enzim minden ciklusban összekapcsolódik a fejjel és a fejhez tartozó bitmolekulával (2), elválasztja őket a lánctól, és a kívánt bitmolekulát a helyükre helyezi (3). Ennek során forog, és a megfelelő fejmolekulát a következő bithez rögzíti az éppen megváltoztatotttól jobbra vagy balra. A ciklus befejeződött (4): a bit értéke megváltozott, a fej állapota megváltozott és elmozdult. Az olyan reakciók, mint az RNS-szintézis, tetszőlegesen kis mennyiségű energiát oszlathatnak el.

A Turing-féle Brown-gép egy óraszerkezet, amely merev, sima részekből áll, amelyek nem illeszkednek szorosan egymáshoz, és nem súrlódás, hanem hornyok és fogak rendszere tartják a kívánt helyzetben. Az alkatrészek szabad összekapcsolása ellenére csak olyan nagy léptékű mozgást tudnak végrehajtani, amely megfelel a számítási lépésnek előre vagy hátrafelé, vagyis csak egy „számítási utat” követhetnek. A mechanizmust egy nagyon gyenge külső erő enyhén tolja, így az előrehaladás valószínűsége majdnem megegyezik a hátralépéssel. Átlagosan azonban a gép előrehalad, és a számítás végül befejeződik. A hajtóerő megfelelő csökkentésével egy gép tetszőlegesen kis mennyiségű energiát költhet el.

A szalagszegmenseket barázdált korongok, a biteket pedig E-alakú blokkok képviselik, amelyek felső (7) vagy alsó (0) helyzetben vannak a lemezhez rögzítve. A fej merev részekből áll, amelyek egy összetett mechanizmusban vannak összekapcsolva (amelyek többsége itt nem látható). Egy olvasóelem, egy manipulátor és egy csavarhúzó alakú rúd van felfüggesztve rá. A gépet egy görgő vezérli, amelynek felületén hornyok vannak, hasonlóan a hanglemezek lejátszására szolgáló görgőhöz (bal felső, jobb mélység). Különböző hornyok felelnek meg a fej különböző állapotainak.

A ciklus elején a fej az egyik tárcsa felett helyezkedik el, és a „tű” a vezérlőgörgő horony „olvasó” szegmensében van, amely megfelel a gépfej aktuális állapotának. A (7) hurok „olvasási” fázisában az olvasó meghatározza, hogy a bitet reprezentáló blokkot felfelé vagy lefelé forgatjuk-e az „akadályolvasás” eljárás végrehajtásával (jobbra középen). Az olvasóelem a blokk mentén halad a felső vagy az alsó pálya mentén. Ezen ösvények egyikén a blokk végén egy párkány formájában akadállyal kell találkoznia, így csak egy út marad. Az ennek a „döntésnek” megfelelő vezérlőgörgős ponton a hornyok kiágaznak, és a tűt a (2) bit értékének megfelelő horonyba vezetjük. Ezután a vezérlőgörgő addig forog, amíg a tű el nem éri az "író" szegmenst (3). Itt minden horony saját „utasításokat” tartalmaz, amelyeket a tű és a mechanizmus többi része közötti bonyolult kapcsolat segítségével továbbítanak a géphez.

Ha az utasítás egy bit értékének módosítását igényli, a manipulátort működtetjük és ráakadunk a blokk fülére, majd a csavarhúzó addig forgatja a tárcsát, amíg a blokk szabaddá válik, a manipulátor felfelé vagy lefelé forgatja a blokkot, és a csavarhúzó ismét elfordul. a lemezt úgy, hogy a blokk a helyére kerüljön. Miután áthaladt a vezérlőgörgő „írási” szegmensén, a tű belép a „váltó” szegmensbe (4). Ebben a szegmensben minden horony tartalmaz egy utasítást a fej egy pozícióval balra vagy jobbra történő mozgatására. Ezután a tű belép egy "állapotváltó" szegmensbe (5), ahol a hornyok egyesülnek, így a tű belép a fej következő állapotát képviselő horonyba. A hurok ezzel befejeződött (6). Az éppen olvasott lemez melletti lemezeket a fej tartja a helyén. A távolabbi lemezeket speciális „zárral” zárják. Az egyes lemezek zárolása a szomszédos lemez egy speciális bitjéhez, az úgynevezett Q-bithez van társítva. Ennek a kapcsolatnak az elrendezése olyan, hogy az éppen olvasott lemez elengedhető és mozgatható, míg a tőle távolabb lévő lemezek jobbra és balra egyaránt álló állapotban maradnak.

Ahhoz, hogy a Brown-turing gép működjön, a szalagot olyan oldatba kell meríteni, amely sok enzimmolekulát tartalmaz, valamint elegendő mennyiségű "nullát", "egyeset" és "fejet" tartalmaz. DE és NÁL NÉL . Ahhoz, hogy a reakció előre haladjon, más reakcióra van szükség, amely megtisztítja az enzimmolekulákat a szalagról leválasztott fejekből és bázisokból. Az enzimmolekulákat megtisztító anyagok koncentrációja az a hajtóerő, amely a Turing-gépet előrefelé vezérli. Ismét tetszőlegesen kis mennyiségű energiát költhetünk el, ha a gép elég lassan hajt végre műveleteket.

Egy enzim alapú Turing-gép nem lesz hibamentes. Időnként előfordulhatnak olyan reakciók, amelyek enzimek általi katalízis nélkül mennek végbe. Például a 0-s bázis spontán elválhat a vázmolekulától, és az 1-es bázis átveheti a helyét. Valójában ilyen hibák előfordulnak az RNS-szintézis során.

Ezektől a hibáktól elvileg úgy lehetne megszabadulni, ha egy merev, abszolút sima óraműre épülő Brown-turing-gépet építünk. Egy ilyen Turing-gép kevésbé idealizált, mint egy biliárd számítógép, de idealizáltabb, mint egy enzimgép. Egyrészt alkatrészei nem igényelnek abszolút precíz megmunkálást, ahogy az a biliárdlabdáknál szükséges, az óraszerkezet alkatrészei rendelkezhetnek némi tűréssel és a gép jelentős hőzaj mellett is működhet. Pedig a gépnek abszolút merevnek és statikus súrlódástól mentesnek kell lennie, és egyetlen makroszkopikus test sem rendelkezik ezekkel a tulajdonságokkal.

Mivel a gép részei nem illeszkednek szorosan egymáshoz, nem a súrlódás, hanem a hornyok - hornyok és fogak - rendszere tartja a helyükön (lásd az ábrát). Bár a gép minden részén van egy kis szabad játék, mint egy fa kirakós játék darabjai, a mechanizmus általában csak egy „számítási utat” tud követni. Vagyis az alkatrészek egymásba vannak kapcsolva oly módon, hogy a gép egy adott időpontban csak kétféle nagy léptékű mozgást tud végrehajtani: a számítási lépésnek megfelelő mozgást előrefelé, illetve a ellenkező irányba.

A számítógép e két mozgástípus között csak a részeinek véletlenszerű hőmozgása következtében, gyenge külső erő hatására lép át. Az ellenkező irányú mozgás valószínűsége, az utolsó művelet eredményeit kiküszöbölve, majdnem megegyezik az előre irányú mozgás valószínűségével. A kívülről kifejtett kis erő előreviszi a számításokat. És megint ez az erő tetszőlegesen kicsinyíthető; és ennélfogva nincs minimális energia szükséges ahhoz, hogy egy Turing-gépet óraműködésen tartsa.

Így a klasszikus termodinamikai okokból nincs a számításokhoz szükséges minimális energia. A termodinamikai elemzés akkor nem kerül konfliktusba a kvantummechanikával? Hiszen a kvantummechanikai bizonytalanság elve szerint fordított kapcsolatnak kell lennie a folyamat időtartamára vonatkozó bizonytalanság mértéke és a folyamatban elhasznált energia mennyiségének bizonytalansága között. Egyes kutatók ezért úgy vélik, hogy minden olyan kapcsolási folyamatban, amely nagyon rövid időn belül megy végbe, minimális energiát kell felhasználni.

Valójában a bizonytalansági elv nem igényel véges energiaminimumot egy gyors kapcsolási eseményhez. A bizonytalanság elve csak akkor érvényesülne, ha egy esemény bekövetkezésének pontos időpontját próbálnánk megmérni. Még a kvantummechanika törvényei szerint is rendkívül gyors események történhetnek energiaveszteség nélkül. Azt a meggyőződésünket, hogy a kvantummechanika tetszőlegesen kis energiaráfordítással is lehetővé teszi a számítások elvégzését, megerősítik a Benioff és munkatársai által kidolgozott reverzibilis kvantummechanikai számítógépek modelljei. Ezek a modellek nem oszlatják el az energiát, és engedelmeskednek a kvantummechanika törvényeinek.

Így a bizonytalanság elve nem támaszt alapvető korlátozásokat a számítási folyamatban. A klasszikus termodinamika sem kényszeríti ki őket. Ez azt jelenti, hogy a számítástechnikának egyáltalán nincsenek fizikai korlátai? Nem, ez messze nem igaz. A valódi korlátok olyan kérdésekhez kapcsolódnak, amelyekre sokkal nehezebb válaszolni, mint azokra, amelyeket ebben a cikkben feltettünk és megvizsgáltunk. Például végezzen elemi logikai műveletek valami minimális befejezési idő? Melyek az ilyen műveletek elvégzésére alkalmas eszköz minimális méretei? Mivel a méret- és időskálák a véges fénysebességhez kapcsolódnak, úgy tűnik, hogy ezekre a kérdésekre adott válaszok valamilyen módon összefüggenek egymással. Ezeket a válaszokat azonban mindenesetre nem fogjuk megtalálni mindaddig, amíg meg nem oldódik az a kérdés, hogy van-e valamilyen elemi diszkrétség az egyetemes hossz- és időskálában.

A probléma másik véglete az a kérdés, hogy mekkora méretűvé tehetjük a számítógép memóriáját. Hány részecskét tudunk összegyűjteni és kombinálni az univerzumban erre a célra? A tény az, hogy a számítógép memória lehetséges maximális mérete korlátozza a számítások elvégzésének pontosságát. Például a tizedesjegyek száma a számított p értékben korlátozott lesz. Egy másik, valószínűleg az utóbbihoz kapcsolódó kérdés a valódi számítógépekben az öregedés során végbemenő elkerülhetetlen degradációs folyamatokra vonatkozik. Lehetséges-e tetszőlegesen kis értékekre csökkenteni a megsemmisülés és a hibahalmozódás mértékét, vagy ez az arány korlátozza a számítás maximális időtartamát? Más szóval, vannak olyan számítási feladatok, amelyeket nem lehet elvégezni, mielőtt a számítógép anyagi része használhatatlanná válik?

Valójában az ehhez hasonló kérdések a fizikai végrehajtás korlátozására vonatkoznak. matematikai műveletek. A fizikai törvények, amelyeken a válaszoknak végső soron alapulniuk kell, maguk is ilyen matematikai műveletekkel fejeződnek ki. Így feltesszük magunknak a kérdést, hogy a fizikai törvények milyen formában érvényesülhetnek a világegyetem tulajdonságai által támasztott korlátozások mellett, amelyeket viszont ezek a törvények írnak le.