Програмите използват логическо адресиране, за да адресират операнди във физическото адресно пространство. Процесорът автоматично преобразува логическите адреси във физически, които след това се подават към системната шина.

Архитектурата на компютъра прави разлика между физическо адресно пространство (PHA) и логическо адресно пространство (LAP). Физическо адресно пространствое прост едномерен масив от байтове, достъпен от хардуера на паметта на адреса, присъстващ в адресната шина на микропроцесорната система. логическо адресно пространствоорганизирани от програмиста въз основа на специфични нужди. Преводът на логически адреси във физически се извършва от блока за управление на паметта MMU.

В архитектурата на съвременните микропроцесори LAP се представя като набор от елементарни структури: байтове, сегменти и страници. Използване на микропроцесори следните опцииорганизации логическо адресно пространство:

  • плосък (линеен) LAP:състои се от масив от байтове, който няма дефинирана структура; не се изисква превод на адрес, тъй като логическият адрес е същият като физическия;
  • сегментиран LAP:състои се от сегменти - непрекъснати области на паметта, съдържащи в общия случай променлив брой байтове; логическият адрес съдържа 2 части: ID на сегмента и отместването в рамките на сегмента; преводът на адресите се извършва от модула за сегментиране на MMU;
  • страница PA:се състои от страници - съседни области на паметта, всяка от които съдържа фиксиран брой байтове. Логическият адрес се състои от номер на страница (идентификатор) и отместване в страницата; преобразуването на логически адрес във физически адрес се извършва от единицата за пейджинг MMU;
  • сегментна страница LAP:включва сегменти,които от своя страна се състоят от страници; логическият адрес се състои от сегментен идентификатор и отместване в рамките на сегмента. MMU за картографиране на сегменти преобразува логическия адрес в номер на страница и отместване на страницата, които след това се преобразуват във физически адрес от MMU за картографиране на страници.

Микропроцесорът може да работи в два режима: реален и защитен.

При работа в реален режимвъзможностите на процесора са ограничени: капацитетът на адресируемата памет е 1 MB, няма страниране на паметта, сегментиимат фиксирана дължина от 216 байта.

Този режим обикновено се използва в началния етап на зареждане на компютъра, за да влезете защитен режим.

AT реален режимсегментните регистри на процесора съдържат горните 16 бита от физическия адрес на началото сегмент.Изместен 4 бита наляво селектордава 20-битов базов адрес на сегмента. Физическият адрес се получава чрез добавяне на този адрес към 16-битова отместена стойност в сегмента, формирана според зададения режим на адресиране за операнда или извлечена от EIP регистъра за инструкцията (фиг. 3.1). При получения адрес информацията се извлича от паметта.



Ориз. 3.1.Схема за получаване на физически адрес

Възможностите за адресиране на паметта на микропроцесора се реализират най-пълно при работа в защитен режим.Размерът на адресируемата памет се увеличава до 4 GB, появява се възможност за режим на адресиране на страници. Сегментиможе да има променлива дължина от 1 байт до 4 GB.

Общата схема за формиране на физически адрес от микропроцесор, работещ в защитен режим, показано на фиг. 3.2.

Както вече беше отбелязано, основата за формиране на физически адрес е логически адрес. Състои се от две части: селектори отмествания в сегмента.

Селекторсе съдържа в сегментния регистър на микропроцесора и ви позволява да намерите описанието на сегмента (дескриптор)в специална дескрипторна таблица. Дескрипторисегментите се съхраняват в специални глобални (GDT) и локални (LDT) дескрипторни таблици на системни обекти. Дескрипториграе много важна роля във функционирането на микропроцесора, от формирането на физически адрес с различна организация на адресното пространство и до организирането на многопрограмен режим на работа. Затова нека разгледаме структурата му по-подробно.

Сегментиработещ микропроцесор защитен режим, се характеризират с голям брой параметри. Следователно в 32-битовите микропроцесори с общо предназначение сегментната информация се съхранява в

Ориз. 3.2.Формиране на физически адрес в сегментно-страничната организация на паметта

специална 8-байтова структура от данни, наречена дескриптор, а основната функция е възложена на сегментните регистри – определяне местоположението на дескриптора.

Структура сегментен дескрипторпоказано на фиг. 3.3.

Ориз. 3.3.Структура на дескриптора на сегмента

Ще разгледаме структурата, а не формата на дескриптора, тъй като по време на прехода от микропроцесора i286 към 32-битовия MP подреждането на отделните полета на дескриптора загуби своята хармония и частично започна да изглежда като "кръпки", поставени за да се увеличи механично битовата дълбочина на тези полета.

32-битовото поле за основен адрес ви позволява да посочите началния адрес на сегмент навсякъде в 232-байтовото (4 GB) адресно пространство.

Ограничено поле(лимит) показва дължината на сегмента (по-точно дължината на сегмента минус 1: ако това поле е написано 0, това означава, че сегментът има дължина 1) в адресируеми единици, т.е. максимален размерсегмент е 2 20 елемента.

Стойността на елемента се определя от един от атрибутите на дескрипторния бит G (Granularity - грануларност или фракционност):

Така един сегмент може да има размер с точност до 1 байт в диапазона от 1 байт до 1 Mбайт (с G = 0). При размер на страницата 2 12 = 4 KB можете да зададете размера на сегмента на 4 GB (с G = l):

Тъй като в архитектурата IA-32 сегмент може да започне в произволна точка в адресното пространство и да има произволна дължина, сегментите в паметта могат частично или напълно да се припокриват.

Размерен бит(Размер по подразбиране) определя дължината на адресите и операндите, използвани в инструкцията по подразбиране:

по ваша преценка. Разбира се, този бит не е за обикновен потребител, и за системен програмист, който го използва, например, за да маркира сегменти за събиране на боклук или сегменти, чиито базови адреси не могат да бъдат променяни. Този бит е достъпен само за програми, работещи на най-високото ниво на привилегия. Микропроцесорът не се променя и не го използва в работата си.

Байт за достъпопределя основните правила за работа със сегмента.

Бит за присъствие P (Настоящо) показва възможността за достъп до сегмента. Операционната система (ОС) маркира сегмента, прехвърлен от RAM към външна памет, като временно отсъстващ, като задава неговия дескриптор на P = 0. Когато P = 1, сегментът е във физическа памет. Когато е избран дескриптор с P = 0 (сегментът не е в RAM), полетата за базов адрес и ограничение се игнорират. Това е естествено: например, как можем да говорим за базов адрес на сегмент, ако самият сегмент не е вътре оперативна памет? В тази ситуация процесорът отхвърля всички последващи опити за използване дескрипторв екипи и определени дескрипторАдресното пространство изглежда "изчезва".

Има частен случай на липса на сегмента. В същото време операционната система копира искания сегмент от диска в паметта (като е възможно да изтрие друг сегмент), зарежда го в дескрипторосновния адрес на сегмента, задава P = 1 и рестартира инструкцията, която е осъществила достъп до сегмента, който не е бил в RAM.

Двуцифреното поле DPL (Descriptor Privilege Level) показва едно от четири възможни (от 0 до 3) управлява нивата на привилегии, което определя възможността за достъп до сегмента от определени програми (ниво 0 съответства на най-много високо нивопривилегии).

Бит за обръщане A (Accessed) е зададено на "1" при всеки достъп до сегмента. Използва се от операционната система за проследяване на сегменти, които не са били достъпвани за най-дълго време.

Нека например веднъж в секунда операционната система нулира бит А в дескрипторите на всички сегменти.Ако след известно време е необходимо да се зареди нов сегмент в RAM, за който няма достатъчно място, операционната система определя "кандидати" за изчистване на част от RAM сред тези сегменти в дескрипторикой бит А не е бил зададен на "1" до този момент, тоест, които не са били достъпвани наскоро.

Тип полев байта за достъп дефинира предназначението и използването на сегмента. Ако бит S (Система - бит 4 от байта за достъп) е 1, тогава това дескрипторописва реален сегмент от паметта. Ако S = 0, тогава този дескриптор описва специален системен обект, който може да не е сегмент от паметта, като например шлюз за повикване, използван в превключване на задачи, или манипулатор на локална LDT дескрипторна таблица. Присвояване на битове<3...0>байтът за достъп се определя от типа сегмент (фиг. 3.4).

Ориз. 3.4. Access Byte Type Field Format

В кодовия сегмент:битът за подчинение C (Conforming) дефинира допълнителни правила за обработка, които осигуряват защита за програмни сегменти. За C = 1 този сегменте подчинен кодов сегмент. В този случай той умишлено е лишен от защита на привилегиите. Такъв инструмент е удобен за организиране, например, на подпрограми, които трябва да бъдат достъпни за всички задачи, изпълнявани в системата. При C = 0 това е нормален кодов сегмент; Битът за четене R (Readable) определя дали сегментът може да бъде достъпен само за изпълнение или за изпълнение и четене, например на константи като данни, използвайки префикса за заместване на сегмента. При R = 0 е разрешен само избор от сегмента на командите за тяхното изпълнение. Когато R = 1, четенето на данни от сегмента също е разрешено.

Писането в кодовия сегмент е забранено. Всеки опит за запис предизвиква софтуерно прекъсване.

В сегмента с данни:

  • ED (разгъване надолу) - бит за посока на разширяване. При ED = 1 този сегмент е стеков сегмент и отместването в сегмента трябва да е по-голямо от размера на сегмента. При ED = 0 това е действителният сегмент от данни (отместването трябва да е по-малко или равно на размера на сегмента);
  • бит за разрешаване на запис W (записваем). Когато W = 1, модификацията на сегмента е разрешена. Когато W = 0, записът в сегмента е забранен; когато се опитате да пишете в сегмента, възниква софтуерно прекъсване.

В случай на заявка за операнд отместване на сегментасе формира от микропроцесора според режима на адресиране на операнда, зададен в командата. Отместването в кодовия сегмент се извлича от регистър - указател на инструкция EIP.

Сумата от началния адрес на сегмента, извлечен от дескриптора, и генерираното отместване в сегмента дава линеен адрес(LA).

Ако в микропроцесора се използва само сегментното представяне на адресното пространство, тогава полученият линеен адрес също е физически.

Ако в допълнение към сегмента един се използва механизъм за пейджинг за организиране на паметта, тогава линеен адреспредставени като две полета: най-високите цифри съдържат числото виртуална страницаи най-ниското отместване в страницата. Номерът на виртуалната страница се преобразува във физически номер на страница с помощта на специални системни таблици: директория с таблици на страници(KTS) и таблици на страниците(TS). Местоположението на директорията на таблицата на страниците в паметта се определя от системния регистър CR3. Физическият адрес се изчислява като сбор от адреса на физическата страница, получен от таблицата на страниците, и отместването на страницата, получено от линейния адрес.

Нека сега разгледаме по-подробно всички етапи на преобразуване на логически адрес във физически.

Микропроцесорът 80386 е пълна 32-битова версия на предишните 16-битови микропроцесори 8086/80286 и представлява голям напредък в процесорната архитектура от 16-битова към 32-битова архитектура. Наред с увеличаването на битовата дълбочина има и много подобрения и допълнителни функции. Микропроцесорът 80386 осигурява: превключване на задачи, подобрено управление на паметта, управление на виртуална памет със или без пейджинг, софтуерна защита и възможност за масово съхранение. всичко софтуер, написана за по-старите микропроцесори 8086/8088 и 80286, е съвместима отдолу нагоре и за микропроцесора 80386. Обемът адресируема памет от процесора се е увеличил от 1 MB (за микропроцесора 8086/8088) или 16 MB (за 80286 микропроцесор) до 4 GB, достъпни за процесора 80386 в защитен режим. Микропроцесорът 80386 може да премине от защитен режим към реален режим без твърдо нулиранемикропроцесор, което отнема време и беше необходимо в случай на използване на процесор 80286.

Микропроцесорът 80486 е подобрена версия на микропроцесора 80386 и изпълнява много от неговите инструкции в един такт. Микропроцесорът 80486 също има вътрешен 8 KB L1 кеш и интегриран високопроизводителен математически копроцесор, който е софтуерно съвместим с копроцесора 80387. Имайте предвид, че процесорът 80486DX4 има 16 KB кеш. Микропроцесорът 80486, работещ на същата тактова честота като микропроцесора 80386, е с 50% по-производителен.

Микропроцесор 80386

Най-разпространени са две версии на микропроцесора 80386: процесорът 80386DX и опростеният процесор 80386SX с външна 16-битова шина за данни, въпреки че използва 32-битова шина вътрешно.

Процесорът 80386DX беше поставен в 132-пинов PGA (pin grid array) пакет. | Повече ▼ нова версиямикропроцесор 80386 - 80386EX съдържа: блок за управление на AT шина, контролен блок за динамично регенериране на RAM, блок за програмируем кристален избор, контролер за прекъсване, DMA контролер, таймер, блок за сериен трансфер на данни, 26 пина на адресна шина, 16 данни автобусни щифтове.

Микропроцесорът 80386DX, имащ 32-битова шина за данни и 32-битова адресна шина, може да адресира 4 GB физическа памет. Микропроцесорът 80386SX, подобно на микропроцесора 80286, адресира 16 MB памет и има само 24-битова адресна шина и 16-битова шина за данни. Микропроцесорът 80386SX е разработен след микропроцесора 80386DX за използване без изискване пълна версия 32-битова шина. Микропроцесорът 80386SX е използван в много персонални компютрикоито са използвали същото системна платкасъщото като микропроцесора 80286. Във време, когато повечето приложения, включително Windows, изискваха по-малко от 16 MB памет, процесорът 80386SX беше популярна и по-евтина версия на микропроцесора 80386. По-късно, въпреки факта, че процесорът 80486 ставаше все по-популярен по-евтин за изграждане на нови изчислителни системи, така или иначе, процесорът 80386 за дълго времеостава в търсенето за много приложения. Например микропроцесорът 80386EX, въпреки че не се използва в персонални компютри, беше много популярен във вградените системи.

Микропроцесор 80386, както и предишни версии на семейството Микропроцесори Intel, изисква само едно захранване +5.0V за работа.честота 16 MHz. Освен това имаше версия на процесора с тактова честота 33 MHz, която имаше консумация на ток 600 mA. Консумацията на ток на микропроцесора 80386EX е 320 mA при работа на 33 MHz.

Процесорът черпи ток до 1,0 A по време на определени режими на работа. Това означава, че захранването и захранващото окабеляване трябва да могат да се справят с тези пикове на тока. Процесорът има множество изводи V CC и V SS , които за правилна работавсички микропроцесори трябва да са свързани към източника постоянен ток+5,0 V (V CC) и заземен (V SS). Някои щифтове на процесора са маркирани като N/C (без връзка) и не трябва да се свързват никъде. В допълнение към споменатите, имаше няколко други версии на микропроцесорите 80386SX и 80386EX, които имаха намалено захранващо напрежение от +3,3 V. Тези процесори бяха използвани в преносими преносими компютри (ноутбук) или преносими компютри(лаптоп).

Система за памет

Системата с физическа памет, до която микропроцесорът 80386DX има достъп, има капацитет от 4 GB. Освен това процесорът има поддръжка виртуална паметдо 64 TB, картографирани към физическа памет с помощта на MCU и дескриптори. Трябва да се отбележи, че виртуалното адресиране ви позволява да използвате програмата повече от 4 GB при наличие на метод за размяна (размяна) и с голям капацитет на твърдия диск. На фиг. Фигура 6.4 показва организацията на системата с физическа памет на микропроцесора 80386DX.

Паметта е разделена на четири 8-битови банки памет, с капацитет до 1 GB всяка. Тази 32-битова организация на паметта позволява достъп до байт, дума или двойна дума. Микропроцесорът 80386DX е в състояние да прехвърля 32-битови данни в един цикъл на паметта, докато микропроцесорът 8088 изисква четири цикъла, а микропроцесорите 80286 и 80386SX се нуждаят от два цикъла. Голямата ширина на данните е много важна, особено за числа с плаваща запетая с единична точност, които заемат 32 бита. Достатъчно напредналият софтуер използва числа с плаваща запетая за съхраняване на данни, така че 32-битовите местоположения в паметта ускоряват изпълнението на програмата, ако е написана с мисъл за паметта.

Адресът на всеки байт от паметта е представен в шестнадесетичен запис, както за предишни версиипроцесори. Разликата е, че микропроцесорът 80386DX използва 32-битова адресна шина с адресируема памет в диапазона 00000000H-FFFFFFFFH.

Двете банки памет в система, изградена на микропроцесорите 8086, 80286 и 80386SX, са достъпни чрез BLE (A0 на 8086 и 80286) и OUT сигнали. Микропроцесорът 80386DX осъществява достъп до банки с памет, използвайки четири сигнала BE3-BE0. Тази организация на паметта ви позволява достъп до един байт, когато микропроцесорът активира един сигнал за разрешаване.

Когато се активират два сигнала за разрешаване, процесорът се адресира до дума. В повечето случаи адресирането на дума се отнася до банка 0 и 1 или банка 2 и 3. Местоположението на паметта 00000000H е в банка 0, местоположението 00000001H е в банка 1, местоположението 00000002H е в банка 2, а местоположението 00000003 е в банка 3. Микропроцесорът 80386DX няма адресни щифтове A0 и A1, защото те се декодират вътрешно като сигнали за разрешаване на байтове. По подобен начин 16-битовият микропроцесор 80386SX няма адресен щифт A0, тъй като той се декодира в BLE и OUT сигнали. Микропроцесорът 80386EX адресира дума с данни, разположена в две банки на 16-битова система с памет, когато сигналът BS8 е пасивен (логически висок), или байт в 8-битова система, когато този сигнал е активиран.

Контролни регистри

Микропроцесорът 80386 има други контролни регистри в допълнение към регистъра на флага EFLAGS и указателя на EIP инструкциите. Контролният регистър CR0 (контролен регистър) е идентичен с регистъра за състоянието на машината ТБО(дума за състоянието на машината) на микропроцесора 80286, с изключение на това, че е 32-битов регистър, а не 16-битов регистър. Допълнителни управляващи регистри са CR1, CR2 и CR3.

На фиг. 6.5. показва структурата на контролните регистри на микропроцесора 80386.

Контролният регистър CR1 не се използва в микропроцесора 80386, но е запазен за бъдещи продукти. Контролен регистър CR2 ​​улавя линейния адрес, на който е получена грешката на последната страница от паметта. И накрая, контролният регистър CR3 фиксира основния адрес на таблицата на страниците. По-малките 12 бита от 0 до 11 на 32-битовия регистър съдържат нули и се комбинират с останалите битове на регистъра, за да се определи началото на таблицата на 4K страници.

Регистърът CR0 има редица специални контролни битове, които са дефинирани в микропроцесора 80386, както следва:

Битът PG (разрешаване на пейджинг) е предназначен да избере преобразуването на таблицата на страниците от линейни адреси към физически адреси, когато PG = 1. Пейджингът на паметта ви позволява да присвоите произволно място във физическата памет на линеен адрес.

ЕТ

Битът ET (тип разширение) е индикатор за поддръжка на инструкции на математическия копроцесор. Ако ET е 0, тогава е избран копроцесорът 80287 и ако ET = 1, тогава е избран копроцесорът 80387. Този бит е добавен, за да отрази факта, че системата има 80387 копроцесор.

Битът TS (превключване на задача) показва, че микропроцесорът е извършил превключване на задача (промяната на съдържанието на регистъра на задачите TR в защитен режим задава TS бита). Ако битът TS е зададен, тогава инструкцията на цифровия копроцесор води до прекъсване от тип 7 ​​(копроцесорът не е наличен).

ЯЖТЕ

Битът EM (емулиране на копроцесор) е настроен да задейства прекъсване от тип 7 ​​всеки път, когато се прави опит за изпълнение на всяка ESC команда, т.е. инструкция, свързана с копроцесора. Това често се използва за софтуерна емулация на копроцесор. Емулацията намалява цената на системата, но емулираните инструкции на копроцесора често отнемат повече време за изпълнение, може би с фактор 100.

Битът MP (мониторен копроцесор) е настроен да задейства прекъсване от тип 7 ​​при всяка команда за изчакване, докато битът TS е настроен.

RE

Битът PE (разрешаване на защита) е настроен да постави микропроцесора 80386 в защитен режим. Може също така да се нулира, за да започне доста дълга последователност от инструкции за превключване към реален режим. В микропроцесора 80286 този бит може да се задава само. Микропроцесорът 80286 не може да премине обратно към реален режим, без да извърши твърдо нулиране, което изключва използването му в повечето системи със защитен режим.

Дескриптори и селектори

Преди да обсъдим блока за пейджинг, нека да разгледаме дескрипторите и селекторите на микропроцесора 80386. Микропроцесорът 80386 използва дескриптори почти по същия начин като микропроцесора 80286. Дескриптори в двата микропроцесора това е поредица от осем байта, която съдържа информация за сегмента на паметта и неговото местоположение. Селектор(съдържание на сегментния регистър) се използва за идентифициране на дескриптора, указан в таблицата на дескрипторите. Основната разлика между микропроцесорите 80286 и 80386 е, че последният има два допълнителни селектора (FS и GS), а двата най-значими байта на дескриптора са дефинирани за микропроцесора 80386. Друга разлика е, че дескрипторите на микропроцесора 80386 използват 32-битовия базов адрес на сегмента и полето за ограничение на 20-битовия сегмент вместо 24-битовия базов адрес и полето за ограничение на 16-битовия сегмент, намерени в микропроцесора 80286.

Микропроцесорът 80286 адресира 16 MB памет с 24-битов базов адрес и има 64 KB дължина на сегмент с 16-битово поле за ограничение. Микропроцесорът 80386 използва 32-битов базов адрес за адресиране на област от памет от 4 GB, а размерът на сегмента се определя от 20-битово поле за ограничение, което се използва от две различни начини. Битът за детайлност G (грануларност) на дескриптора или, в противен случай, дробният бит определя мерната единица за размера на сегмента: ако G = 0, размерът е посочен в байтове, а ако G = 1, тогава в 4K страници. По този начин размерът на сегмента с 20-битово поле за ограничение може да бъде съответно 1 MB или 4 GB.

Битът за детайлност G се появи в дескриптора, започвайки с микропроцесора 80386. Ако битът G = 0, тогава стойността, съхранена в полето за ограничение, се третира директно като ограничение за размера на сегмента, което позволява достъп до всеки 00000H-FFFFFG сегмент от 1 MB сегмент. Ако бит G = 1, тогава числото, съхранено в полето за ограничение, се интерпретира като 00000XXXH-FFFFFXXXH, където XXX е всяка стойност между 000H и FFFH. Това осигурява достъп до размера на сегмента от 0 байта до 4 GB на парчета от 4 KB. Гранична стойност 00001H показва, че ограничението за размера на сектора е 4 KB, когато G битът е 1, или 1 байт, когато G битът е 0. Пример би бил сегмент, започващ от физически адрес 10000000H. За гранична стойност от 00001H и G бит = 0, този сегмент започва от 10000000H и завършва на 10000001H. Ако G бит = 1 със същата гранична стойност (00001H), тогава сегментът започва от местоположение 100000000H и завършва на 10001FFFH.

На фиг. Фигура 6.6 показва как микропроцесорът 80386 адресира сегмент от паметта в защитен режим, използвайки селектор и дескриптор. Показаното адресиране е идентично с начина, по който микропроцесорът 80286 адресира сегмента.Разликата е в размера на сегмента, достъпен за микропроцесора 80386. Горните 13 бита (битове 15-3) на селектора се използват за избор на дескриптор от таблицата с дескриптори. Бит за индикатор на маса TI (индикатор на таблица) (бит 2 на селектора) показва типа на дескрипторната таблица: локален, ако TI бит = 1, или глобален, ако TI бит = 0. По-ниските два бита на RPL (заявено ниво на привилегия) ( битове 1-0) на селектора определят исканото ниво на привилегия за достъп до сектора.

Тъй като селекторът използва 13-битов код за достъп до дескриптора, всяка таблица (локална или глобална) съдържа не повече от 8192 дескриптора. Тъй като възможният размер на сегмента за микропроцесора 80386 достига 4 GB, 16 384 сегмента могат да бъдат достъпни наведнъж с помощта на две дескрипторни таблици. Всичко това позволява на микропроцесора 80386 да поддържа виртуална памет до 64 TB (1 TB = 1024 MB). Разбира се, система с памет с капацитет само до 4 GB реално може да съществува. Ако програмата в даден момент изисква повече от 4 GB памет, тогава необходимите данни могат да бъдат изпомпвани в системата с памет от дисково устройство или друго голямо устройство за съхранение.

Микропроцесорът 80386 използва дескрипторни таблици за глобални ( GDT) и местни (LDT)дескриптори. Третата дескрипторна таблица се използва от дескриптори на прекъсвания ( ИМА) или клапани(порти). Първите шест байта от дескриптора на микропроцесора 80386 са същите като тези на микропроцесора 80286, което гарантира съвместимост на софтуера нагоре с него. Старшите два байта на дескриптора на микропроцесора 80286 бяха запазени и съдържаха стойността 00H. Дескриптори за микропроцесори 80286 и 80386 са показани на фиг. 6.7.

Микропроцесорният дескриптор 80386 съдържа 32-битов базов адрес, 20-битово поле за ограничение на сегмента и бит за детайлност G, който определя множителя на ограничението на сегмента (1 или 4K пъти) или, в противен случай, в какви единици е зададено ограничението: в байтове (G = 0) или страници 4K всяка (G = 1). Следното е предназначението на полетата на дескриптора на микропроцесора 80386:

Основа (B31-B0)

Полето Base указва основния (начален) 32-битов адрес на сегмента във физическото адресно пространство от 4 GB на микропроцесора 80386.

Лимит (L19-L0)

Полето Limit указва ограничението в байтове за сегмента, ако битът за детайлност G = 0или в 4K страници, ако G = 1. Това позволява всякакъв размер на сегмента от 1 байт до 1 MB, ако G бит = 0 или от 4 KB до 1 GB, ако G бит = 1. Спомнете си, че ограничението показва последния байт в сегмент.

Права за достъп

Полето Права за достъп определя нивото на привилегия и друга информация относно сегмента. Този байт е различен за различни видоведескриптори и се посочва за всеки от тях.

Битът за детайлност G (грануларност) избира множител от 1 или 4K за полето за ограничение на сегмента. Ако G бит = 0, тогава множителят е 1, ако G бит = 0, тогава множителят е 4K.

Битът D (размер по подразбиране) определя размера по подразбиране на използваните операнди и регистри. Ако D = 0, тогава 16 бита, както в микропроцесора 80286; ако D = 1, тогава 32 бита, както в микропроцесора 80386. Този бит определя дали са необходими префикси за 32-битови данни и регистри на индекси. Ако D = 0, тогава е необходим префикс за достъп до 32-битови регистри и за използване на 32-битови указатели. Ако D = 1, тогава е необходим префикс за достъп до 16-битови регистри и за 16-битови указатели. Атрибутите use16 и use32, използвани с сегментната директива в асемблерния език, контролират настройката на D бита. реален режимоперацията винаги предполага, че регистрите са 16-битови, така че всяка инструкция, адресирана от 32-битов регистър или указател, трябва да има префикс.

Битът AVL (наличен) е наличен за операционна системаи може да се използва при необходимост. Той не се прилага или анализира от процесора и е предназначен за използване от приложни програми.

Има два вида дескриптори: дескриптор на код и сегмент от данни и дескриптор на системен сегмент. Първият дескриптор дефинира данните, стека и кодовите сегменти. Дескрипторът на системния сегмент е предназначен да съхранява информация за системни таблици, задачи и портали.

Суперкомпютрите винаги са били считани за специален клас компютърни технологии. Тъй като такива машини са създадени да решават необичайни проблеми, бюджетите са необичайни, а това от своя страна създаваше усещане за безкрайни възможности: изглеждаше, че проблемът винаги е само в парите и, ако налеете още десетки или два милиона, производителността може да се увеличава безкрайно. Случилото се през последните месеци и години и изразено в нов списък на 500-те най-мощни хапещи на планетата - известен ви TOP500.org - обаче дава основание да се твърди, че "безкрайността" е свършила. Суперкомпютрите са първите от модерните компютърни системисе натъкнаха на физическия предел на възможностите на полупроводниковата електроника - и за тях, на първо място, сега е необходимо да се намери изход от задънената улица. нова технологияизчисления.

Формалната следа за такова широкообхватно твърдение беше странен модел, забелязан от съставителите на горния списък. Топ 500 се актуализира два пъти годишно и в челни позициинеговият последна версия, публикуван миналата седмица, почти няма промени (само един беше добавен към първите десет нов член, а общата производителност на всичките петстотин машини се увеличи леко, от 0,223 на 0,250 екзафлопа). Но има качествена обща промяна: „центърът на тежестта“ на списъка се измести към върха му или, казано по-просто, основната изчислителна мощност сега е концентрирана в сравнително малък (исторически - рекорден счупване) брой на най-бързите машини. Изглежда така: половината от кумулативната мощност на Топ 450 се осигурява само от първите 17 компютъра в списъка. Тази тенденция не се появи вчера, но през последните шест години се оформи толкова много, че трябва да се мисли за нея.

Няма едно-единствено окончателно обяснение. Една от най-завладяващите е финансовата: през последните години суперкомпютрите станаха много по-скъпи (около четири пъти в сравнение, да речем, с броя на ухапванията от средата на нулата) и следователно сега са достъпни само за сравнително малко правителства агенции и големи компании. В допълнение, дизайнерите и купувачите на нови, не твърде мощни машини не се стремят да бъдат включени в рейтинга, за да не развалят имиджа си. И така се оказва, че колкото по-нататък, толкова по-ярко се проявява тенденцията: силните стават по-силни, слабите нелинейно бързо изостават.

Важен извод: суперкомпютрите не са престанали да бъдат необходими, те само са станали по-малко достъпни. Но какво да кажем за безсмъртния закон на Мур? Не трябва ли да компенсира увеличението на цената с по-плътна опаковка и следователно по-висока производителност? Тук възниква основното подозрение. Изглежда, че стигнахме до финалната линия, където законът на Мур, въпреки че все още работи, вече е твърде скъп за използване за повечето играчи.

Учените формулират резултата по следния начин: в отсъствието на пробивни технологии, които биха осигурили недостижима досега изчислителна скорост с един скок, суперкомпютърната индустрия е принудена да се движи по обширен път - глупаво увеличавайки броя на процесорите на своите машини. И още по-лошо: тъй като този начин не е в състояние да задоволи апетита на потребителите (а броят на хапките традиционно е не само инструмент за обработка на данни, но и начин за утвърждаване на корпоративен и национален авторитет), дизайнерите са заложили на графичния ускорители, които, да кажем, са подходящи за решаване на всякакви задачи. Броят на суперкомпютрите, които активно използват GPU, е нараснал с порядък през последните пет години!

И тук е много удобно да си припомним предстоящата замяна на известния тест Linpack, който от самото начало на публикуването на Топ 500 (преди двадесет години) е основният измерител на производителността на суперкомпютърните системи. Предлага се той да бъде заменен с новоразработения HPCG (High Performance Conjugate Gradient) тест. Причина: Linpack - написан на "Fortran" още през 1979 г. - отразява истинската производителност на измерваните системи е незадоволителна и несъответствието нараства.

Като цяло дори общият им съавтор Джак Донгара не може ясно да обясни разликата между Linpack и HPCG. Но, значително опростявайки, разликата може да се сведе до следното: Linpack основно оценява способността на суперкомпютъра да извършва чисти изчисления (които GPU ускорителите се справят добре), докато HPCG взема предвид и производителността на вътрешните комуникации, което е важно при решаване на практически научни и технически проблеми (т.е. чест нередовен достъп до паметта, например).

Ако HPCG не замени, тогава той ще допълни Linpack след няколко години „вкарване“ (за тези, които се интересуват, изходните кодове са достъпни под BSD лиценз от уебсайта на Sandia Labs). И това може да доведе до значително пренареждане на целия списък Топ 500, връщане на малки участници в него, които ще започнат да получават по-високи, по-справедливи оценки и дори корекции на архитектурата на суперкомпютрите, когато те вече не са оптимизирани за Linpack. Въпреки че, разбира се, не трябва да се надяваме особено на последното - в края на краищата все още няма пробив в изчислителната технология!

И без пробиви, скуката царуваше в света на Numberbiters. Как да изградим по-мощна машина? Поставете повече процесори - и следователно, намерете повече пари. Но реалността е, че успоредяването на практически задачи над определено (и вече постигнато) ниво не носи печалби в скоростта и дори най-много мощни суперкомпютривече са толкова скъпи, че тяхното изграждане и експлоатация могат да бъдат поети от единици, както беше обсъдено по-горе. В резултат на това потокът на суперкомпютъра пресъхва. Това е краят на една технологична ера, краят на полупроводниците, каквито ги познаваме през последните петдесет години. И докато няма технология, която може да издигне компютърната производителност на ново ниво, ние ще стагнираме, задоволявайки се с годишно увеличение от няколко процента.

Какво може да осигури такъв пробив? Западната преса се взира в нанотръбите, от които момчетата от Станфорд успяха да изградят едномерни полярни транзистори (CNFET), да научат как да правят микросхеми с гарантирана функционалност (основният проблем: все още е трудно да се избегне Голям бройнеправилно поставени нанотръби) и дори да изгради MIPS-съвместим компютър, демонстриран само миналата седмица на конференцията за суперкомпютри ACM / IEEE SC13 („Computerra“ писа за този проект: виж „“). В бъдеще тази технология е в състояние да осигури 13-кратно превъзходство в производителността на единица потребление на енергия полупроводникови чипове. Чудя се дали някой тук се занимава с нанотръби?

Много ентусиасти компютърна технологияте помнят с опит времената, когато честотите на процесора се измерваха в мегахерци, а производителите (т.е. Intel и AMD) се опитваха да изпреварят един друг в този показател. Тогава нивото на консумация на енергия и разсейване на топлината на процесорите нарасна толкова много, че стана невъзможно да продължи тази надпревара. През последните години те започнаха да увеличават броя на процесорните ядра, но в резултат на това беше достигната граница, когато този растеж стана нерентабилен. Сега получаването на най-голяма мощност на ват се превърна в основен фактор за производителността.

Всички тези промени не се случиха, защото разработчиците бяха изправени пред физическите граници на по-нататъшното развитие на съществуващите процесори. По-скоро производителността е ограничена от факта, че напредъкът в някои области - предимно енергийна ефективност - е по-бавен от напредъка в други области, като разширяване на функционалността и набори от инструкции. Възможно ли е обаче сега физическият лимит на процесорите и техните изчислителна мощноствече близо? Игор Марков от Университета на Мичиган разглежда този въпрос в статия в списание Nature.

Като се имат предвид препятствията

Марков отбелязва, че въз основа на чисто физически ограничения някои учени са изчислили, че законът на Мур ще продължи още сто години. От друга страна, групата за международна технологична пътна карта за полупроводници (ITRS) му дава няколко десетилетия живот. Предсказанията на ITRS обаче могат да бъдат поставени под въпрос: тази група предвиждаше процесори с честота от 10 GHz в дните на чиповете Core2. Причината за това несъответствие е, че много тежки физически ограничения никога не са се появявали.

Например, крайната граница на размера на функционална единица е един атом, което е крайната физическа граница. Но много преди тази граница да бъде достигната, физиката ограничава способността за точен контрол на потока от електрони. С други думи, веригите потенциално могат да бъдат толкова тънки, колкото един атом, но тяхното поведение ще стане ненадеждно много по-рано. Голяма част от текущата работа на Intel за преминаване към по-тънки производствени процеси (по-малки транзистори) е измисляне как да се структурира отделни компонентитака че да могат да продължат да функционират според очакванията.

Същността на аргумента на Марков може да бъде разбрана по следния начин: въпреки че има твърди физически граници, те често са неуместни за проблемите, които задържат прогреса на съвременния полупроводник. Вместо това сме изправени пред по-меки ограничения, които често могат да бъдат заобиколени. „Когато дойде моментът за определено ограничение, възпрепятстващо прогресията, разбирането на природата му е ключът към преодоляването му“, пише той. „Някои ограничения могат просто да бъдат игнорирани, докато други остават хипотетични и базирани само на емпирични данни; трудно се монтират висока степенсигурност."

В резултат на това това, което изглежда като бариери пред развитието, често се преодолява чрез комбинация от творческо мислене и подобрена технология. Примерът на Марков е границата на дифракция. Първоначално се предполагаше, че аргон-флуорните лазери не могат да ецват всякакви структури, по-тънки от 65 нанометра. Но с подвълнова дифракция в момента работим върху 14nm структури, използвайки същия лазер.

Къде са съвременните граници?

Марков обръща внимание на два въпроса, които смята за най-големи ограничения: енергетиката и комуникациите. Проблемът с потреблението на енергия идва от факта, че количеството енергия, използвано от съвременните вериги, не намалява пропорционално на намаляването на техния физически размер. Основният резултат от това: положени усилия за блокиране на части от чипа, когато не се използват. Но със сегашния темп на развитие този подходвъв всеки даден момент по-голямата част от чипа е неактивна - оттук и терминът "тъмен силиций".

Консумацията на енергия е пропорционална на работното напрежение на чипа и транзисторите просто не могат да работят под 200mV. Сега напрежението им е 5 пъти по-високо, така че има място за намаляване. Но напредъкът в намаляването на работното напрежение се забави, така че може отново да достигнем технологичните граници преди физическите.

Проблемът с използването на енергия е свързан с въпроса за комуникацията: по-голямата част от физическия обем на чипа и по-голямата част от неговата консумация на енергия се изразходват за взаимодействие между различните му блокове или останалата част от компютъра. Тук наистина стигаме до физическите граници. Дори ако сигналите в чипа се движат със скоростта на светлината, чип над 5 GHz не би могъл да предава информация от едната страна на чипа към другата. Най-доброто, с което можем модерни технологии, е да се опитаме да разработим чипове, в които блоковете, които често обменят данни помежду си, ще бъдат физически близо. Включването на трето измерение (т.е. триизмерни вериги) в уравнението може да помогне, но само незначително.

Какво следва?

Марков не е особен оптимист за предстоящите промени. В близко бъдеще той очаква използването на въглеродни нанотръби за окабеляване и оптични връзки за комуникации да продължи тенденцията да ни помага да избягваме физически ограничения. Той обаче отбелязва, че и двете технологии имат свои собствени ограничения. Въглеродните нанотръби могат да бъдат малки, до един нанометър в диаметър, но те също имат ограничение на размера. И фотоните, ако се използват за комуникация, ще изискват хардуери енергия.

Мнозина възлагат надежди на квантовите компютри, но Марков не е от техните фенове. " квантови компютри, както цифрови, така и аналогови, са обещаващи само в нишови приложения и не предлагат значителна производителност в общите изчисления, защото не могат бързо да изпълняват сортиране и други специфични задачи“, казва той. Проблемът също е, че това оборудване работи най-добре при температури, близки до абсолютната нула, докато при стайна температура производителността е изключително ниска.

Всички изчисления обаче до известна степен разчитат на квантови ефекти и Марков смята, че има какво полезно да се научи от квантовите системи. „Индивидуалните квантови устройства се доближават до енергийните граници за превключване, докато неквантовите устройства изостават с порядък величина.“ Очевидно постигането дори на малка степен на ефективност на квантовите системи може да даде голям старт в потреблението на енергия в рамките на целия чип.

Друго физическо ограничение на Марков: изтриването на малко информация има термодинамична цена, която не може да бъде избегната - изчисленията винаги консумират енергия. Една идея за избягване на това ограничение е "обратимо изчисление", където компонентите се връщат първоначалното състояниеслед изчисление. Този метод може, поне на теория, да ви позволи да си върнете част от използваната енергия.

Тази идея не е съвсем теоретична. Марков цитира работа, използваща свръхпроводящи вериги (които той нарича "доста екзотични") за осигуряване на обратимо поведение и разсейване на енергия под термодинамичната граница. Разбира се, тук се използват само 4 микрокелвина, така че повече енергия се изразходва за проверка на функционалността на веригите, отколкото за тяхната действителна работа.

Отвъд физиката

Докато физиката и науката за материалите поставят много ограничения върху хардуера, математиката поставя ограничения върху това, което можем да правим с тях. И въпреки репутацията си на точна наука, математическите ограничения са много по-неясни от физическите. Например, все още няма отговор за равенството на класовете на сложност P и NP, въпреки годините на усилия. И въпреки че можем да докажем, че някои алгоритми са най-ефективни за общи случаи, също така е лесно да се намерят диапазони от проблеми, при които алтернативните изчислителни подходи се представят по-добре.

Най-големият проблем, който Марков вижда тук, е борбата да се извлече повече паралелизъм от кода. Дори евтини смартфонисега работят върху многоядрени процесори, но засега използването им не е оптимално.

Като цяло, изглежда, че основното ограничение е човешкият ум. Въпреки че Марков не вижда появата на фантастични нови технологии, той е оптимист, че настоящите пречки ще бъдат премахнати или заобиколени чрез напредък в други области.

От редактора. Нашите редовни читатели знаят, че от време на време във вестника ни се появяват препечатки на най-известните, класически статии и произведения в областта на компютърните науки. „Физическите граници на компютрите“ искахме да отпечатаме дълго време... около петнадесет години. Но тази прекрасна статия някак не намери място по отношение на състава на други материали, би изглеждала твърде странно във вестник, отпечатана „просто така“. И тогава такъв късмет! Статията беше спомената (абсолютно заслужено) в последната лекция от нашия курс за напреднали като един от малкото източници на информация по тази тема на руски език. Разбира се, не можехме да пропуснем възможността. Надяваме се да ви хареса да изследвате този прекрасен популярен материал. В края на краищата дори 24 (!) години, които са изминали от публикуването му, не са го направили „остарял“, въпреки че, разбира се, технологиите са напреднали с парсеци! Но основните закони са твърде трудни дори за технологията!

Какви физически фактори ограничават процеса на изчисление? Има ли ограничаващ минимум енергия, необходима, например, за извършване на една логическа стъпка? Очевидно такъв минимум не съществува, но има други въпроси, които все още остават отворени.

Изчисление, независимо дали се извършва електронни устройства, на обикновени сметки или биологична система, като мозъка, е физически процес. За него се прилагат същите концепции, както и за други физически процеси. Колко енергия е необходима за извършване на дадено изчисление? Колко време ще отнеме? Какъв размер трябва да бъде изчислителното устройство? С други думи, какви са физическите ограничения на изчислителния процес?

Разбира се, задаването на тези въпроси е много по-лесно, отколкото отговорът. Ограниченията, от които се интересуваме, са някак много далеч от реалните ограничения, с които си имаме работа. модерна технология. Затова не можем да твърдим, че нашите изследвания помагат на инженер или технолог в работата му. Тези изследвания са по-скоро теоретични по природа. Нашата цел е да идентифицираме общите закони, които управляват всички видове обработка на информация, независимо от средствата и методите на тази обработка. Всички ограничения, които откриваме, трябва да се основават единствено на фундаментални физически принципи, а не на технологиите, които се използват в момента.

Това търсене на фундаментални ограничения вече има прецеденти. През 40-те години на миналия век К. Шанън, по това време служител на Bell Telephone Laboratories, установява, че има ограничения за количеството информация, която може да се предава по комуникационен канал при наличие на шум. Тези ограничения се прилагат независимо от това как е кодирано съобщението. Работата на Шанън бележи раждането на съвременната теория на информацията. Още по-рано, в средата и края на миналия век, физиците, опитвайки се да определят основните ограничения на ефективността на парната машина, създадоха наука, наречена „термодинамика“. Приблизително през 1960 г. Ландауер (един от авторите на тази статия), заедно с J. Swanson, докато работеха в IBM, се опитаха да приложат този вид анализ към изчислителния процес. От средата на 70-те години все повече и повече групи учени от други организации започват да се присъединяват към тези изследвания.

В нашия анализ на физическите ограничения върху изчисленията ние използваме термина "информация" в смисъла, в който е дефиниран в теорията на информацията. Според тази дефиниция информацията изчезва, когато две различни преди това ситуации станат неразличими. AT физически системи, характеризиращ се с липсата на сили на триене, информацията не може да бъде унищожена, тъй като при унищожаването на информацията определено количество енергия трябва да премине в топлина. Като пример, разгледайте две лесно различими физически ситуации. В едната от тях гумена топка е подпряна на височина 1 м от пода, в другата - на височина 2 м. Ако топката бъде пусната, тя ще падне и ще отскочи нагоре от пода. При липса на триене и при условие, че топката е идеално еластична, наблюдателят винаги ще може да каже какво е било първоначалното състояние на топката (в този случай на каква височина е била в началния момент от време), тъй като топката, паднала от височина 2 м, ще отскочи по-високо, отколкото когато падне от височина 1 м.

Въпреки това, при наличието на сили на триене, всеки път, когато топката отскочи от пода, част от енергията ще се разсее и в крайна сметка топката ще спре да отскача и ще остане на пода. Тогава ще бъде невъзможно да се определи какво е било първоначалното състояние на топката: топката, паднала от височина 2 м, ще бъде напълно идентична с топката, паднала от височина 1 м. Информацията ще бъде загубена в резултат на разсейване на енергия.

Конвенционалните изчислителни устройства, сметалото и микропроцесорът разсейват енергия по време на работа. Разсейването на енергия от логическите портове на микропроцесора се дължи на изчезването на информация. Има и други причини: електронни схемиМикропроцесорите консумират енергия дори когато просто съхраняват информация, без да я обработват. Сметките са разсейващи се поради сили на триене, които не могат да бъдат елиминирани: при липса на статично триене „костите“ биха променили позицията си под въздействието на произволно топлинно движение на молекулите. Статичното триене представлява определена минимална сила, която не зависи от скоростта на „костите“ и следователно сметалото изисква някаква минимална енергия, независимо колко бавно работят.

Нека дадем друг пример за изчезване на информация. Изразът "2 + 2" съдържа повече информация от израза "= 4". Ако знаем само, че числото 4 е получено чрез събиране на две числа, тогава няма да можем да определим кои числа са добавени: 1 + 3, 2 + 2, 0 + 4 или някаква друга двойка числа. Тъй като изходната информация се съдържа имплицитно вече във входа, можем да предположим, че никакво изчисление не генерира информация.

Конвенционалните логически порти разсейват енергията, защото изхвърлят ненужната информация. Например, ако изходът на AND gate е 0, тогава не можем да определим какво е имало на входовете.

Всъщност изчисленията, извършвани на съвременните компютри, се извършват с помощта на много операции, които унищожават информацията. Така наречената клапа И ” е устройство с две входни линии, всяка от които може да бъде настроена на сигнал, равен на 1 или 0, и една изходна линия - стойността на нейния сигнал се определя от стойностите на входовете. Ако и двата входа са 1, тогава изходът също ще бъде 1. Ако единият или двата входа са 0, тогава изходът ще бъде 0. Всеки път, когато изходът на портата е 0, ние губим информация, защото не знаем кой от три възможни състояния бяха входните редове (0 и 1; 1 и 0 или 0 и 0). Всъщност всяка логическа врата, която има повече входове отколкото изходи, неизбежно губи информация, защото не можем да определим състоянието на входовете от състоянието на изходите. Следователно, когато използваме такъв "логически необратим" клапан, ние разсейваме енергия околен свят. Изтриването на един бит данни в паметта на компютъра е друга операция, често използвана в компютрите, която също е разсейваща по природа. Когато изтриваме един бит данни, губим цялата информация за предишното състояние на този бит.

Въпреки това е справедливо да зададем въпроса, неизбежно ли е използването на необратими логически порти и операции за изтриване в изчисленията? Ако е така, тогава всяко изчисление, което правим, трябва да разсейва определено минимално количество енергия.

Както показа Бен (един от авторите на тази статия) през 1973 г., може да се мине без необратими логически елементи и без изтриване на информация в изчислението. Оттогава валидността на тази разпоредба е демонстрирана в няколко модела. Най-лесният начин за описване на модели се основава на така наречените „обратими логически порти“, като портата на Фредкин, кръстена на Едуард Фредкин в MIT. Вентилът има три входни и три изходящи линии. Сигналът на една входна линия, наречен "контролен канал", не се променя, докато преминава през портата. Ако сигналът на управляващия канал е настроен на 0, тогава входните сигнали на другите две линии също преминават без промяна. Но ако контролната линия е 1, тогава другите две изходни линии се превключват: входният сигнал на едната линия става изход на другата и обратно. Портата на Фредкин не губи информация, тъй като състоянието на входовете винаги може да се определи от състоянието на изходите.

Фредкин показа, че всяко логическо устройство, необходимо за работата на компютъра, може да бъде изградено под формата на подходяща комбинация от порти на Фредкин. За да се извърши изчислението, определени входни линии на някои порти трябва да бъдат предварително зададени на определени стойности (вижте долната фигура вляво).

Обратима логическа врата на Фредкин може да не разсейва енергия - състоянието на нейните входове може да се определи от състоянието на изходите. Вентилът има "контролна" линия, чието състояние не се променя от вентила. Ако контролната линия е 0, тогава стойностите на сигнала на другите две линии също не се променят, но ако контролната линия е 1, тогава входът на линия A става изход на линия S и обратно. С правилно свързани реверсивни вентили може да се реализира всяка функция, изпълнявана от конвенционално необратимо устройство. За да се приложи операция И (вдясно), един вход се задава на 0 и два изходни бита, наречени "боклук", се игнорират временно. Когато изчислението приключи, тези битове се използват за управление на портата в обратна посока, за да се върне компютърът в първоначалното му състояние.

Портите на Fredkin имат повече изходни линии от тези, които моделират. Следователно, в хода на изчисленията изглежда, че се образуват „битове боклук“, т.е. битове информация, които не са необходими за получаване на резултат. Преди да започнете друго изчисление, трябва по някакъв начин да изчистите компютъра от тези битове. Но ако ги изтрием, тогава ще настъпи самото разсейване на енергията, което искахме да избегнем.

Всъщност тези битове играят много важна роля. След като получим резултата от изчислението и го копираме от машината от обичайните изходни линии, процесът трябва да се пусне в обратна посока. С други думи, използваме „нежеланите битове“ и изходните битове, които компютърът получава по време на изчислението като „вход“ от „задната страна“ на машината. Това е възможно, защото всяка компютърна логическа врата е обратима. Няма загуба на информация в процеса на изчисление в обратна посока и следователно няма нужда от разсейване на енергия. В крайна сметка компютърът ще се върне в състоянието, в което е бил преди началото на изчислението. Следователно е възможно да се завърши "цикълът на изчисление" - да се задвижи компютърът напред и след това да се върне в първоначалното му състояние, без никакво разсейване на енергия.

Досега говорихме за абстрактни логически операции, без да засягаме физическите устройства, които извършват тези операции. Въпреки това не е трудно да си представим физическо устройство, което работи според принципа на Фредкин. В такова устройство каналите за предаване на информация са представени под формата на тръби. На свой ред малко информация се представя от наличието или отсъствието на топка в определен участък от тръбата. Наличието на топка се интерпретира като 1, а липсата се интерпретира като 0.

Контролната линия е представена от тясна част от тръбата, разцепена по средата в надлъжна посока. Когато топката навлезе в разделената част на тръбата, тя раздалечава страничните стени на тръбата, като по този начин задейства превключващото устройство. Това превключващо устройство насочва входните перли, които може да са в две други тръби. Когато в контролната тръба има топка, тогава всяка топка, преминаваща през входната линия, автоматично се прехвърля в друга тръба. За да се гарантира, че превключващото устройство е изключено при липса на топка в контролната тръба, разделените половини на последната се притискат една към друга с пружини. Когато топката влезе в контролната тръба и компресира пружините, тя трябва да изразходва малко енергия, за да направи това. Тази енергия обаче не се губи: тя се връща, когато контролната топка напусне разделената тръба и пружините се освободят.

Всички топки са като че ли свързани помежду си и се избутват напред от един механизъм, така че да се движат синхронно; в противен случай не бихме могли да гарантираме, че различните входни и контролни топки пристигат до логическата врата по едно и също време. В известен смисъл процесът на изчисление е подобен на движение с една степен на свобода, като например движението на две колела, разположени неподвижно на една и съща ос. Когато изчислението приключи, ние избутваме всички топки в обратната посока, елиминирайки всички операции, извършени по пътя напред и връщайки компютъра в първоначалното му състояние.

Ако устройството е напълно потопено в идеална вискозна течност, тогава силите на триене, действащи върху топките, ще бъдат пропорционални на тяхната скорост, докато няма да има статично триене. Следователно, ако сме доволни от бавното движение на топките, силата на триене ще бъде много малка. Във всяка механична система работата за преодоляване на силата на триене е равна на произведението на силата на триене и изминатото от тялото разстояние. (Следователно, колкото по-бързо плувецът преплува определено разстояние, толкова повече енергия изразходва, въпреки факта, че разстоянието остава същото независимо от скоростта на плувеца.) Ако топките преминават през клапаните на Фредкин с ниска скорост, тогава работата, извършена по време на движението (произведението на разстоянието на силата), ще бъде много малка, тъй като силата на триене е право пропорционална на скоростта на топката. Всъщност можем да изразходваме произволно малко енергия, просто поради съответното забавяне на процеса на изчисление. Така стигаме до извода, че няма минимално необходимо количество енергия, което трябва да се изразходва, за да се извърши което и да е изчисление.

Идеализиран физически модел на вентил на Фредкин: тръбите играят ролята на проводници, а наличието или отсъствието на топка се интерпретира като 1 или 0. Тесният разделен участък на тръбата е контролен канал. Когато топката я удари, стените на тръбата се разминават настрани, задействайки превключващия механизъм. Последният от своя страна прехвърля всяка пристигнала топка от линия А на линия Б и обратно. Две пружини държат канала за управление изключен, когато в него няма топка. Такъв клапан не изисква статично триене за извършване на операции. Може да се потопи във вискозна течност и тогава силите на триене ще зависят само от скоростта на топките. В този случай разсейваната енергия може да бъде произволно малка: за да се намали количеството разсейвана енергия, е необходимо само да се намали скоростта на топките, преминаващи през клапана.

В разглеждания модел на изчислително устройство, загубата на енергия от триене ще бъде много малка, ако това устройство работи достатъчно бавно. Възможно ли е да се изгради модел на още по-идеализирана машина, която може да изчислява без никакво триене? Или триенето е необходим атрибут на изчислителния процес? Фредкин, заедно с Т. Тофоли и други специалисти от MIT, показаха, че триенето не е необходимо.

Те демонстрираха това на модел на изчислително устройство, в което изчисленията се извършват чрез изстрелване на идеални билярдни топки една към друга при липса на сили на триене. В билярдния модел идеално отразяващите „огледала“ - повърхности, които променят посоката на движение на топката, са разположени по такъв начин, че движението на топките на масата симулира преминаването на битове информация през логическите порти (виж фигурата). Както и преди, наличието на топка в определена част на „компютъра“ се интерпретира като 1, а отсъствието се интерпретира като 0. Ако две топки достигнат логическата врата едновременно, тогава те се сблъскват и техните траектории се променят; новите пътища представляват изхода на портата. Фредкин, Тофоли и други разработиха огледални подредби, съответстващи на различни типове логически порти и доказаха, че е възможно да се изгради билярден модел на всеки логически елементнеобходими за изчисления.

Билярден компютърен модел: Движението на билярдни топки по повърхността на масата симулира преминаването на битове информация през логическа врата. В билярдните логически порти (вляво) траекториите на топките се променят, когато се сблъскат една с друга или с "огледала". В допълнение към функциите си във вентили, огледалата могат да променят ъгъла на траекторията на топката (a), да я изместят настрани (b), да забавят топката, без да променят крайната й посока или скорост (c), или да предизвикат пресичане на траекториите (д). Огледалата могат да бъдат подредени по такъв начин, че полученият "компютър" да изпълнява функциите на всяко логическо устройство. Например, можете да създадете компютър за билярд, който да разпознава прости числа. Такъв компютър (вдясно) приема произволна петцифрена цифра двоично число(в този случай 01101 или 13) и фиксирана входна последователност от 01. Подобно на портата на Фредкин, билярдният компютър връща повече изходни битове, отколкото се нуждае потребителят. В този случай той връща самото оригинално число (представляващо „допълнителния“ изход) и „отговора“: последователността 10, ако входът е прост, и 01, ако е съставен.

За да стартираме процеса на изчисление, изстрелваме билярдна топка на входа на компютъра, ако трябва да въведем единица. Топките трябва да влязат в машината едновременно. Тъй като топките са идеално еластични, те не губят енергия, когато се сблъскат една с друга. Те ще излязат от колата със същото количество кинетична енергия, с което са влезли в нея.

В процеса на работа билярдният компютър генерира „ненужни битове“, точно като компютър, изграден върху порти на Фредкин. След като компютърът приключи изпълнението на задачата, ние отразяваме билярдните топки в обратната посока, обръщайки процеса на изчисление. Топките ще излязат от колата точно там, където сме ги изпратили в колата, и в същото време ще се движат със същата скорост. Така механизмът, който изстреля топките в колата, вече може да върне кинетичната им енергия. И в този случай, като извършим изчисление, можем да върнем компютъра в първоначалното му състояние, без да разсейваме енергия.

Билярдният компютър има един съществен недостатък: той е изключително чувствителен към най-малките неточности. Ако топката бъде изпратена с леко отклонение от правилната посока или огледалото е обърнато под ъгъл, малко по-различен от изчисления, топките ще излязат от желаните траектории. Една или повече топки ще се отклонят от изчисления път и след известно време комбинираният ефект от тези грешки ще наруши целия процес на изчисление. Дори ако могат да бъдат направени идеално еластични топки без триене, произволното топлинно движение на молекулите, които изграждат топките, може да бъде достатъчно, за да причини грешки след няколко дузини сблъсъци.

Разбира се, би било възможно да се инсталира коригиращо оборудване, което да върне неправилно движеща се топка към желаната траектория, но в този случай информацията за предишните състояния на топката ще трябва да бъде унищожена. Например, би било необходимо да се унищожи информация относно степента на отклонение на огледалото от правилната позиция. Въпреки това, премахването на информация дори за коригиране на грешка е възможно само в система, в която съществуват сили на триене и е възможна загуба на енергия. Следователно коригиращото оборудване трябва да разсейва определено количество енергия.

Много от трудностите, срещани при използването на билярдния компютърен модел, биха могли да бъдат избегнати или поне намалени, ако се използват субмикроскопични частици като електрони вместо билярдни топки. Както посочи У. Зурек от Националната лаборатория в Лос Аламос, благодарение на законите на квантовата механика, които налагат ограничения върху състоянието на елементарните частици, може да се елиминира възможността за малки отклонения в движението на частиците.

Въпреки че досега нашите разсъждения се основаваха главно на класическата динамика, няколко изследователи предложиха други модели на обратими компютри, базирани на принципите на квантовата механика. Такива машини, предложени за първи път от П. Бениоф от Националната лаборатория в Аргон (Франция) и подобрени от други, по-специално от Р. Фейнман от Калифорнийския технологичен институт, досега са описани само в най-общи линии. По същество частиците в тези компютърни модели трябва да бъдат подредени по такъв начин, че правилата на квантовата механика, които управляват тяхното взаимодействие, да са точно същите като правилата, които предвиждат стойностите на сигналите на изходите на обратимите логически порти. Да предположим например, че спинът на една частица може да има само два възможни стойности: посока нагоре (съответстваща на двоична 1) и надолу (съответстваща на двоична 0). Взаимодействието между стойностите на спиновете на частиците трябва да се осъществи по такъв начин, че стойността на спина на дадена частица да се променя в зависимост от спина на частиците, които са наблизо. В този случай въртенето на частицата ще съответства на един от изходите на логическата врата.

По-горе говорихме основно за обработка на информация. Но компютърът трябва не само да обработва данни, но и да ги съхранява. Взаимодействието между съхранението и обработката на информация е може би най-добре описано от устройство, наречено „машина на Тюринг“ (след Алън М. Тюринг, който за пръв път предложи такава машина през 1936 г.). Машината на Тюринг може да извърши всяко изчисление, извършено от съвременен компютър. S. Benne (един от авторите на тази статия) доказа възможността за изграждане на машина на Тюринг, т.е. такъв, който не губи информация и следователно в процеса на работа може да изразходва всяко предварително определено малко количество енергия.

Машината на Тюринг е в състояние да направи всяко изчисление, което компютърът може да направи. Една безкрайно дълга лента е разделена на отделни сегменти, всеки от които съдържа 0 или 1. вътрешни състояния(тук има само две състояния: A и B), се движи по лентата. Всеки цикъл започва с главата, която чете един бит от сегмент на лента. След това, съгласно фиксиран набор от правила за преход, той записва малко данни в сегмента на лентата, променя вътрешното си състояние и се премества с една позиция наляво или надясно. Тъй като тази машина Turing има само две вътрешни състояния, възможностите му са ограничени до тривиални изчисления. По-сложните машини с голям брой състояния са в състояние да симулират поведението на всеки компютър, включително много по-сложен от самите тях. Това е възможно, защото те съхраняват пълно представяне на логическото състояние на по-голяма машина на безкрайна лента и разделят всеки изчислителен цикъл на голям брой прости стъпки. Машината, показана тук, е логически обратима: винаги можем да определим предишните състояния на машината. Машините на Тюринг с различни правила за преход може да не са логически обратими.

Машината на Тюринг се състои от няколко компонента. Една от тях е лента, разделена на отделни секции или сегменти, всяка от които съдържа 0 или 1, което е входните данни. "Главата за четене и запис" се движи по лентата. Главата може да изпълнява няколко функции - да прочете един бит данни от лентата, да запише един бит на лентата и да премести един сегмент наляво или надясно. За да може следващият цикъл да запази информация за това, което е направено в предишния, механизмът на главата има редица така наречени „състояния“. Всяко състояние представлява своя собствена, малко по-различна конфигурация на вътрешните части на главата.

При всеки цикъл главата чете малко от сегмента на лентата, срещу който се намира този моментразположен. След това записва новата битова стойност на лентата, променя вътрешното й състояние и премества един сегмент наляво или надясно. Стойността на бита, който записва, състоянието, към което преминава, и посоката, в която се движи, се определят от фиксиран набор от правила за преход. Всяко правило описва определени действия. Кое правило следва машината в момента се определя от състоянието на главата и стойността на бита, току-що прочетен от лентата. Например, правилото може да бъде: „Ако главата е в състояние А и се намира срещу сегмента, в който е записано 0, тогава тя трябва да промени стойността на този бит на 1, да отиде в състояние Б и да премести един сегмент в точно." Според някакво друго правило машината не трябва да променя състоянието си или да записва нов бит на лентата, или в противен случай трябва да спре. Не всички машини на Тюринг са обратими, но е възможно да се изгради обратима машина на Тюринг, която може да извършва всякакви изчисления.

Моделите, базирани на обратима машина на Тюринг, имат предимство пред машини като билярдния компютър, който няма триене. В билярдния компютър произволното топлинно движение на молекулите води до неизбежни грешки. Обратимите машини на Тюринг всъщност използват произволно топлинно движение: те са проектирани по такъв начин, че топлинното движение, подпомагано от слаба движеща сила, превежда машината от едно състояние в друго. Развитието на изчислителния процес наподобява движението на йон (заредена частица) в разтвор в слабо електрическо поле. Ако наблюдавате поведението на йон за кратък период от време, то ще изглежда случайно: вероятността за движение в една посока е почти същата като в другата. Въпреки това, движещата сила, дължаща се на действието на електрическото поле, дава на движението предпочитана посока. Вероятността йонът да се движи в тази посока е малко по-голяма. На пръв поглед може да изглежда невероятно, че целенасочената последователност от операции, присъщи на процеса на изчисление, може да бъде реализирана от апарат, чиято посока на движение във всеки момент може да се счита за почти произволна. Този тип действия обаче са много разпространени в природата. По-специално, това може да се наблюдава в микроскопичния свят на химичните реакции. Брауновото движение по метода на пробата и грешката или произволното топлинно движение е достатъчно ефективно, за да могат реагиращите молекули да влязат в контакт, да се подредят правилно една спрямо друга, както се изисква от тази реакция, и да образуват нови молекули, които са продукти на реакцията. По принцип всички химични реакции са обратими: същото брауново движение, което кара реакцията да протича в права посока, понякога кара реакционните продукти да преминат през обратен преход. В състояние на равновесие обратната посока на реакцията е също толкова вероятна, колкото и директната. За да накарате реакцията да върви в посока напред, трябва постоянно да добавяте молекули, които влизат в реакцията, и да премахвате молекули, които са продукти на реакцията. С други думи, трябва да приложим малка движеща сила. Когато тази сила е много малка, реакцията ще върви както напред, така и назад, но средно ще върви в посока напред. За да осигурим движеща сила, трябва да изразходваме енергия, но както в модела на вентила на Фредкин от тръби и топки, количеството енергия може да бъде произволно малко. Ако сме доволни от много бавното изпълнение на операциите, тогава няма минимално необходимо количество енергия, което трябва да се изразходва за тези операции. Обяснението е, че общото количество разсеяна енергия зависи от броя стъпки в посока напред, разделен на броя стъпки в обратна посока. (Всъщност то е пропорционално на логаритъма на това съотношение; когато самото съотношение се увеличава или намалява, неговият логаритъм се променя в същата посока.) Колкото по-бавна е реакцията в посока напред, толкова по-малко ще бъде съотношението. (Тук отново е уместна аналогията с бързите и бавните плувци: ако реакцията протича по-бавно, общото количество изразходвана енергия ще бъде по-малко, въпреки факта, че броят на междинните разпади и връзки остава същият.)

РНК полимеразата е ензим, който действа като обратима машина за копиране на лента. Той е катализатор за синтеза на РНК, която е копие на ДНК. Движейки се по веригата на ДНК, ензимът избира от заобикалящия разтвор молекула нуклеозид трифосфат (всеки нуклеозид трифосфат се състои от някаква РНК база, захарна молекула и три фосфатни групи), чиято основа е комплементарна на ДНК базата, която в момента е към да бъдат копирани. Той свързва нова база към края на изграждащата се РНК верига и освобождава пирофосфатния йон. Реакцията е обратима: понякога ензимът прикрепя пирофосфат към последната РНК връзка (полученият нуклеозид трифосфат се връща в разтвора) и се движи една позиция назад по веригата на ДНК. Когато реакцията е близо до химичното равновесие, ензимът прави почти толкова стъпки назад, колкото и напред, а общата енергия, необходима за копиране на един сегмент от ДНК, е много малка. Разсейването на енергия е толкова по-малко, колкото по-бавно протича реакцията. Следователно няма минимална енергия, необходима за копиране на сегмент от ДНК.

НЕКА ВИДИМ как работи Браунова машина на Тюринг, използвайки примера на Браунова машина за копиране на лента. Такава машина вече съществува в природата. Това е РНК полимераза – ензим, участващ в синтеза на РНК, която е копие на ДНК, изграждаща гените. Едноверижната ДНК много прилича на лентата на машина на Тюринг. Във всеки негов елемент, т.е. във всяка позиция по веригата има един от четирите нуклеотида или бази: аденин, гуанин, цитозин или тимин (A, G, C, T за кратко). Структурата на РНК е много подобна на ДНК. Това също е молекула с дълга верига, състояща се от четири вида бази - аденин, гуанин, цитозин и урацил (съответно A, G, C и U). РНК базите са в състояние да се свързват с техните комплементарни ДНК бази.

РНК полимеразата катализира образуването на нейното комплементарно копие, РНК, върху ДНК. Обикновено двойна верига на ДНК, усукана в спирала, е заобиколена от разтвор, съдържащ голям брой рибонуклеозид трифосфатни молекули, всяка от които се състои от рибонуклеотид (РНК база), захар и опашка от три фосфатни групи, свързани в серия. РНК полимеразата избира от разтвора една от РНК базите, която е комплементарна на базата, която в момента трябва да бъде копирана от ДНК веригата и я прикрепя към края на нарастващата РНК верига, освобождавайки два фосфата в околния разтвор под формата на пирофосфатен йон. След това ензимът се придвижва една позиция напред по веригата на ДНК, подготвяйки се да добави следващата база към веригата на РНК. В резултат на това се образува РНК верига, която е комплементарна на матрицата - ДНК веригата. Без РНК полимераза тези реакции биха били много бавни и няма да има гаранция, че получената РНК е точно комплементарна на ДНК.

Описаните реакции са обратими: понякога ензимът прикрепя свободен пирофосфатен йон към последната база на нарастващата РНК верига и рибонуклеозид трифосфатна молекула се освобождава в околната среда, а самият ензим се връща една позиция назад по ДНК веригата. В състояние на равновесие стъпките напред и назад се случват с еднаква честота, но в живата клетка други метаболитни процеси изместват равновесието към директна реакция поради отстраняването на пирофосфата и създаването на излишък от рибонуклеозид трифосфати. В лабораторни условия е възможно да се контролира скоростта на РНК полимеразната реакция чрез промяна на концентрациите на изходните реагенти (това е доказано от J. Levin и M. Chamberlain от Калифорнийския университет в Бъркли). Когато концентрациите се доближат до равновесие, ензимът работи по-бавно и по-малко енергия се разсейва при копирането на дадена част от ДНК, тъй като съотношението на броя на стъпките напред и назад става по-малко.

РНК полимеразата просто копира информация, без да я обработва, не е трудно да си представим как може да работи една хипотетична химическа машина на Тюринг. Лентата е една дълга скелетна молекула, към която на равни интервали са прикрепени два вида бази, интерпретирани като битове 0 и 1. Друга малка молекула е прикрепена към една от позициите във веригата от нули и единици. Позицията, към която е прикрепена тази молекула, не е нищо друго освен сегмента от лентата, върху който е разположена главата на машината на Тюринг. Има няколко различни типа "молекула на главата". Всеки тип представлява едно от възможните вътрешни състояния на машината.

Правилата за преход на машината са представени от ензими. Всеки ензим е катализатор за определена реакция. За да разберете по-добре как работят тези ензими, разгледайте един пример.

Да приемем, че молекулата на главата е от типа НО (което означава, че машината е в състояние НО ) и прикрепен към нулевата основа. Да приемем също, че е в сила следното правило за преход: „Когато главата е в състояние НО и чете 0, заменете 0 с 1, отидете на състояние AT и се преместете надясно. Ензимната молекула, представляваща това правило, има място, подходящо за прикрепване на глава на молекула от типа НО свързан към основа 1. Също така има място, подходящо за закрепване на основа 0 и място, подходящо за тип глава AT (виж снимката).

За да направи необходимия преход, ензимната молекула първо се доближава до позицията върху лентата непосредствено вдясно от основата, към която в момента е прикрепена главата на шрифта. НО . След това тя отделя както молекулата на главата, така и основата 0, към която е прикрепена главата, от лентата, и поставя на тяхно място основа 1. След това тя прикрепя глава като AT към основата вдясно от единичната основа, току-що прикрепена към лентата. Това завършва прехода. В оригиналния сегмент на лентата 0 е заменено с 1, молекулата на главата вече е от типа AT и прикрепен към основата, разположен на една позиция вдясно от оригинала.

Хипотетична ензимна машина на Тюринг може да извърши изчисление с произволно малко количество енергия. Молекулите, представляващи битове 0 и 1, са прикрепени към основната молекула. Молекулата, представляваща главата на машината на Тюринг, е прикрепена към една от позициите във веригата (7). различни видовемолекулите на главата представляват различни състояния на машината. Правилата за преход са представени от ензими. При всеки цикъл ензимът се свързва с главата и свързаната с главата битова молекула (2), отделя ги от веригата и поставя желаната битова молекула на тяхно място (3). При това той се върти, прикрепвайки подходящата молекула на главата към следващия бит отдясно или отляво на току-що променения. Цикълът вече е завършен (4): стойността на бита се е променила, главата е променила състоянието си и се е преместила. Реакции като синтеза на РНК могат да разсеят произволно малко количество енергия.

Брауновата машина на Тюринг е часовников механизъм, състоящ се от твърди гладки части, които не прилягат плътно една към друга и се поддържат в желаната позиция не чрез триене, а чрез система от канали и зъби. Въпреки свободното свързване на части, те могат да извършват само такова мащабно движение, което съответства на стъпката на изчисления в посока напред или назад, с други думи, те могат да следват само един „изчислителен път“. Механизмът е леко избутан от много слаба външна сила, така че вероятността за движение напред е почти същата като за движение назад. Въпреки това средно машината ще се придвижи напред и изчислението в крайна сметка ще бъде завършено. Една машина може да бъде накарана да изразходва произволно малко количество енергия чрез съответно намаляване на движещата сила.

Сегментите на лентата са представени от набраздени дискове, а битовете са представени от Е-образни блокове, които са прикрепени към диска в горна (7) или долна (0) позиция. Главата се състои от твърди части, свързани в сложен механизъм (повечето от които не са показани тук). На него са окачени четящ елемент, манипулатор и прът във формата на отвертка. Машината се управлява от ролка с канали, нанесени върху нейната повърхност, подобна на ролка за възпроизвеждане на плочи на фонограф (горе вляво, дълбоко вдясно). Различните жлебове отговарят на различни състояния на главата.

В началото на цикъла главата е разположена над един от дисковете, а „иглата“ е в сегмента „четене“ на жлеба на контролния валяк, съответстващ на текущото състояние на главата на машината. По време на фазата на „четене“ на цикъла (7) четецът определя дали блокът, представляващ бита, е завъртян нагоре или надолу, като изпълнява процедурата „четене на препятствие“ (в центъра вдясно). Елементът на четеца преминава по протежение на блока по горния или долния път. На една от тези пътеки той трябва да срещне препятствие под формата на издатина в края на блока, така че само една пътека остава възможна. В точката на контролния валяк, съответстваща на това „решение“, жлебовете се разклоняват и иглата се насочва в жлеба, съответстващ на стойността на бит (2). След това контролната ролка се завърта, докато иглата достигне сегмента за "записване" (3). Тук всеки канал съдържа свой собствен набор от „инструкции“, които се предават на машината чрез сложна връзка между иглата и останалата част от механизма.

Ако инструкцията изисква промяна на стойността на бит, манипулаторът се задейства и се закача за ухото на блока, след това отвертката завърта диска, докато блокът се освободи, манипулаторът завърта блока нагоре или надолу и отвертката отново се завърта диска, така че блокът да е на мястото си. След преминаване на сегмента „запис“ на контролната ролка, иглата влиза в сегмента „смяна“ (4). Всяка бразда в този сегмент съдържа инструкция за преместване на главата с една позиция наляво или надясно. След това иглата навлиза в сегмент за "промяна на състоянието" (5), където жлебовете се сливат, така че иглата навлиза в жлеба, представляващ следващото състояние на главата. Цикълът вече е завършен (6). Дисковете, съседни на този, който се чете в момента, се държат в позиция от главата. По-далечните дискове се заключват със специална „ключалка“. Заключването на всеки диск е свързано със специален бит, наречен Q-бит, на съседния диск. Устройството на тази връзка е такова, че дискът, който се чете в момента, е освободен и може да бъде преместен, докато дисковете, които са по-далеч от него, както отляво, така и отдясно, се поддържат в неподвижно състояние.

За да работи машината на Браунов Тюринг, лентата трябва да бъде потопена в разтвор, съдържащ много ензимни молекули, както и достатъчен запас от „нули“, „единици“ и „глави“ като НО и AT . За да протече реакцията в права посока, е необходима друга реакция, която да пречисти ензимните молекули от отделените от лентата глави и основи. Концентрациите на веществата, които пречистват молекулите на ензимите, са движещата сила, която кара машината на Тюринг да работи в посока напред. Отново можем да изразходваме произволно малко количество енергия, ако машината извършва операции достатъчно бавно.

Машина на Тюринг, базирана на ензими, няма да бъде без грешки. От време на време могат да възникнат реакции, протичащи без катализа от ензими. Например база 0 може спонтанно да се отдели от скелетната молекула и база 1 може да заеме нейното място. Всъщност такива грешки възникват по време на синтеза на РНК.

По принцип човек може да се отърве от тези грешки, като изгради машина на Браунов Тюринг на базата на твърд, абсолютно гладък часовников механизъм. Такава машина на Тюринг е по-малко идеализирана от билярден компютър, но по-идеализирана от ензимна машина. От една страна, неговите части не изискват абсолютно прецизна обработка, каквато е необходима за билярдните топки, частите на часовниковия механизъм могат да имат някои допуски и машината може да работи дори при наличие на значителен топлинен шум. И все пак машината трябва да е абсолютно твърда и без статично триене, а никое макроскопично тяло не притежава тези качества.

Тъй като частите на машината не прилягат плътно една към друга, те се държат в позиция не чрез триене, а чрез система от канали - канали и зъби (вижте фигурата). Въпреки че всяка част от машината има малко количество свободна игра, като парчетата от дървен пъзел, като цяло механизмът може да следва само един „изчислителен път“. С други думи, частите са свързани една с друга по такъв начин, че във всеки един момент машината може да извършва само два вида движение в голям мащаб: движението, съответстващо на стъпката на изчисление в посока напред, и движението в противоположна посока.

Компютърът прави преходи между тези два вида движение само в резултат на произволното топлинно движение на неговите части, поради въздействието на слаба външна сила. Вероятността за движение в обратна посока, елиминирайки резултатите от последната операция, е почти същата като вероятността за движение в посока напред. Малка сила, приложена отвън, тласка напред изчисленията. И отново тази сила може да се направи произволно малка; и следователно няма минимална енергия, необходима за поддържане на работа на машина на Тюринг по часовников механизъм.

Така, по причини на класическата термодинамика, няма необходимата минимална енергия за изчисления. Тогава термодинамичният анализ не влиза ли в конфликт с квантовата механика? В края на краищата, според принципа на квантово-механичната несигурност, трябва да има обратна връзка между степента на несигурност относно това колко време отнема процесът и степента на несигурност относно количеството енергия, изразходвана в този процес. Ето защо някои изследователи смятат, че във всеки процес на превключване, който се извършва за много кратък период от време, трябва да се изразходва някаква минимална енергия.

Всъщност принципът на несигурност не изисква ограничен енергиен минимум за бързо превключване. Принципът на неопределеността ще се прилага само ако се опитаме да измерим точния момент във времето, когато се е случило дадено събитие. Дори според законите на квантовата механика изключително бързи събития могат да се случат без никаква загуба на енергия. Нашето убеждение, че квантовата механика позволява изчисления с произволно малко количество енергия, се потвърждава от моделите на обратими квантово-механични компютри, разработени от Benioff et al. Тези модели не разсейват енергия и се подчиняват на законите на квантовата механика.

По този начин принципът на неопределеността изглежда не налага основни ограничения върху процеса на изчисление. Класическата термодинамика също не ги налага. Това означава ли, че компютрите изобщо нямат физически ограничения? Не, това далеч не е вярно. Истинските ограничения са свързани с въпроси, на които е много по-трудно да се отговори от тези, които поставихме и разгледахме в тази статия. Например, направете елементарно логически операциинякакво минимално крайно време? Какви са минималните размери на устройство, способно да извършва такива операции? Тъй като скалите на размера и времето са свързани с крайната скорост на светлината, изглежда, че отговорите на тези въпроси са някак взаимосвързани. Но във всеки случай няма да можем да намерим тези отговори, докато не бъде разрешен въпросът дали има някаква елементарна дискретност в универсалната скала на дължината и времето.

В другата крайност на проблема е въпросът колко голяма можем да направим компютърна памет. Колко частици във Вселената можем да съберем и комбинираме за тези цели? Факт е, че максималният възможен размер на паметта на компютъра налага ограничение върху точността, с която могат да се извършват изчисленията. Например, броят на десетичните знаци в изчислената стойност на p ще бъде ограничен. Друг, вероятно свързан с последния, въпрос се отнася до неизбежните процеси на деградация, които протичат в реалните компютри, докато стареят. Възможно ли е да се намали скоростта на унищожаване и натрупване на грешки до произволно малки стойности или тази скорост налага ограничение върху максималната продължителност на изчислението? С други думи, има ли изчислителни задачи, които не могат да бъдат изпълнени, преди материалната част на компютъра да стане неизползваема?

Всъщност въпроси като тези са за ограничения върху физическата екзекуция. математически операции. Физическите закони, на които в крайна сметка трябва да се основават отговорите, се изразяват с помощта на такива математически операции. Така си задаваме въпроса под каква форма физическите закони могат да се прилагат при ограниченията, наложени от свойствата на Вселената, които от своя страна се описват от тези закони.