Programlar, fiziksel adres alanındaki işlenenleri adreslemek için mantıksal adresleme kullanır. İşlemci, mantıksal adresleri otomatik olarak fiziksel adreslere çevirir ve bunlar daha sonra sistem veri yoluna verilir.

Bir bilgisayarın mimarisi, fiziksel adres alanı (PHA) ile mantıksal adres alanı (LAP) arasında ayrım yapar. Fiziksel adres alanı mikroişlemci sisteminin adres yolunda bulunan adresteki bellek donanımı tarafından erişilen basit tek boyutlu bir bayt dizisidir. mantıksal adres alanı programcı tarafından özel ihtiyaçlara göre düzenlenir. Mantıksal adreslerin fiziksel adreslere çevrilmesi MMU bellek yönetim birimi tarafından gerçekleştirilir.

Modern mikroişlemcilerin mimarisinde LAP, bir dizi temel yapı olarak temsil edilir: baytlar, bölümler ve sayfalar. Mikroişlemciler kullanır aşağıdaki seçenekler kuruluşlar mantıksal adres alanı:

  • düz (doğrusal) TUR: tanımlanmış bir yapıya sahip olmayan bir dizi bayttan oluşur; mantıksal adres fiziksel adresle aynı olduğundan adres çevirisi gerekli değildir;
  • segmentli TUR: bölümlerden oluşur - genel durumda değişken sayıda bayt içeren sürekli bellek alanları; mantıksal adres 2 parça içerir: segment kimliği ve segment içindeki ofset; adres çevirisi MMU segmentasyon birimi tarafından gerçekleştirilir;
  • sayfa PA: sayfalardan oluşur - her biri sabit sayıda bayt içeren bitişik bellek alanları. Mantıksal adres, bir sayfa numarasından (tanımlayıcı) ve sayfa içindeki bir ofsetten oluşur; mantıksal bir adresin fiziksel bir adrese çevrilmesi MMU çağrı birimi tarafından gerçekleştirilir;
  • segment sayfası LAP: içerir segmentler, sırayla sayfalardan oluşan; mantıksal adres, bir segment tanımlayıcısı ve segment içindeki bir ofsetten oluşur. Segment eşleyici MMU, mantıksal adresi bir sayfa numarasına ve sayfa ofsetine çevirir, bunlar daha sonra sayfa eşleyici MMU tarafından fiziksel bir adrese çevrilir.

Mikroişlemci iki modda çalışabilir: gerçek ve korumalı.

çalışırken gerçek mod işlemci yetenekleri sınırlıdır: adreslenebilir bellek kapasitesi 1 MB'dir, belleğin sayfalaması yoktur, segmentler 216 bayt sabit uzunluğa sahiptir.

Bu mod genellikle, giriş yapmak için bilgisayarı başlatmanın ilk aşamasında kullanılır. korumalı mod.

AT gerçek mod işlemci segment kayıtları, başlangıcın fiziksel adresinin üst 16 bitini içerir segment. 4 bit sola kaydırıldı seçici segmentin 20 bitlik temel adresini verir. Fiziksel adres, işlenen için belirtilen adresleme moduna göre oluşturulan veya talimat için EIP kaydından çıkarılan segmentteki 16 bitlik bir ofset değerine bu adresin eklenmesiyle elde edilir (Şekil 3.1). Alınan adreste bilgi hafızadan alınır.



Pirinç. 3.1. Fiziksel bir adres alma şeması

Mikroişlemcinin bellek adresleme yetenekleri, en tam olarak, içinde çalışırken gerçekleşir. korumalı mod. Adreslenebilir hafıza miktarı 4 GB'a çıkarıldı, sayfa adresleme modu olasılığı ortaya çıktı. Segmentler 1 bayttan 4 GB'a kadar değişken bir uzunluğa sahip olabilir.

İçinde çalışan bir mikroişlemci tarafından fiziksel bir adresin oluşturulması için genel şema korumalı mod, Şek. 3.2.

Daha önce belirtildiği gibi, fiziksel bir adresin oluşumunun temeli mantıksal bir adrestir. İki bölümden oluşur: seçici ve segmentteki ofsetler.

seçici mikroişlemcinin segment kaydında bulunur ve segmentin açıklamasını bulmanızı sağlar (tanımlayıcı)özel bir tanımlayıcı tablosunda. Tanımlayıcılar segmentler özel sistem nesneleri global (GDT) ve yerel (LDT) tanımlayıcı tablolarında saklanır. tanımlayıcı farklı bir adres alanı organizasyonu ile fiziksel bir adresin oluşturulmasından çok programlı bir çalışma modunun organizasyonuna kadar mikroişlemcinin işleyişinde çok önemli bir rol oynar. Bu nedenle, yapısını daha ayrıntılı olarak ele alalım.

Segmentlerçalışan mikroişlemci korumalı mod, çok sayıda parametre ile karakterize edilir. Bu nedenle, genel amaçlı 32 bit mikroişlemcilerde segment bilgileri,

Pirinç. 3.2. Belleğin segment sayfası organizasyonunda fiziksel bir adresin oluşumu

adı verilen 8 baytlık özel bir veri yapısı tanımlayıcı, ve ana işlev segment kayıtlarına atanır - tanımlayıcının yerini belirler.

Yapı segment tanımlayıcıŞek. 3.3.

Pirinç. 3.3. Segment tanımlayıcı yapısı

Tanımlayıcının biçimini değil yapısını dikkate alacağız, çünkü i286 mikroişlemcisinden 32-bit MP'ye geçiş sırasında, bireysel tanımlayıcı alanlarının düzenlenmesi uyumunu kaybetti ve kısmen sıraya konan "yamalar" gibi görünmeye başladı. bu alanların bit derinliğini mekanik olarak artırmak için.

32 bitlik temel adres alanı, 232 baytlık (4 GB) adres alanında herhangi bir yerde bir segmentin başlangıç ​​adresini belirtmenize olanak tanır.

Sınır alanı(limit) segmentin uzunluğunu belirtir (daha doğrusu segmentin uzunluğu eksi 1: bu alana 0 yazılırsa, bu segmentin adreslenebilir birimlerde 1 uzunluğunda olduğu anlamına gelir, yani en büyük boy segment 2 20 elemandır.

Öğenin değeri, G tanımlayıcı bitinin niteliklerinden biri tarafından belirlenir (Ayrıntılılık - ayrıntı düzeyi veya kesirlilik):

Bu nedenle, bir segment 1 bayt ila 1 MB (G = 0 ile) aralığında 1 bayt içinde bir boyuta sahip olabilir. 2 12 = 4 KB sayfa boyutuyla, segment boyutunu 4 GB olarak ayarlayabilirsiniz (G = l ile):

IA-32 mimarisinde, bir segment adres uzayında rastgele bir noktadan başlayabildiğinden ve rastgele bir uzunluğa sahip olduğundan, bellekteki segmentler kısmen veya tamamen örtüşebilir.

Boyut Biti(Varsayılan boyut), varsayılan olarak talimatta kullanılan adreslerin ve işlenenlerin uzunluğunu belirler:

kendi takdirine bağlı olarak. Tabii ki, bu bit için değil sıradan kullanıcı, ve için sistem programcısı, örneğin, çöp toplama için segmentleri veya temel adresleri değiştirilemeyen segmentleri işaretlemek için kullanır. Bu bit, yalnızca en yüksek ayrıcalık düzeyinde çalışan programlar için kullanılabilir. Mikroişlemci onu değiştirmez veya işinde kullanmaz.

Erişim Baytı segmenti işlemek için temel kuralları tanımlar.

Varlık biti P (Mevcut), segmente erişim yeteneğini gösterir. İşletim sistemi (OS), tanımlayıcısını P = 0 olarak ayarlayarak RAM'den harici belleğe aktarılan bir segmenti geçici olarak eksik olarak işaretler. P = 1 olduğunda, segment fiziksel bellektedir. P = 0 olan bir tanımlayıcı seçildiğinde (segment RAM'de değil), temel adres ve limit alanları yok sayılır. Bu doğaldır: örneğin, segmentin kendisi bir segmentte değilse, bir segmentin temel adresi hakkında nasıl konuşabiliriz? rasgele erişim belleği? Bu durumda, işlemci sonraki tüm kullanım girişimlerini reddeder. tanımlayıcı takımlar halinde ve tanımlanmış tanımlayıcı Adres alanı "kayboluyor" gibi görünüyor.

Segmentin olmaması özel bir durum vardır. Aynı zamanda, işletim sistemi istenen segmenti diskten belleğe kopyalar (muhtemelen başka bir segmenti silerek), onu diskten belleğe yükler. tanımlayıcı segmentin temel adresi, P = 1'i ayarlar ve RAM'de olmayan segmente erişen talimatı yeniden başlatır.

İki basamaklı DPL (Tanımlayıcı Ayrıcalık Düzeyi) alanı, dört olası (0'dan 3'e kadar) birini gösterir. ayrıcalık seviyelerini idare et, segmente belirli programlar tarafından erişilip erişilemeyeceğini belirler (düzey 0, en yüksek ayrıcalık düzeyine karşılık gelir).

Ters bit A (Erişilen), segmente herhangi bir erişimde "1" olarak ayarlanır. İşletim sistemi tarafından uzun süredir erişilmeyen bölümlerin kaydını tutmak için kullanılır.

Örneğin, saniyede bir kez, işletim sisteminin tüm segmentlerin tanımlayıcılarında A bitini sıfırlamasına izin verin.Bir süre sonra, RAM'e yeterli alan olmayan yeni bir segment yüklemek gerekirse, işletim sistemi içindeki segmentler arasında RAM'in bir kısmını temizlemek için "adayları" belirler. Tanımlayıcılar hangi A biti bu noktaya kadar "1" olarak ayarlanmadı, yani yakın zamanda erişilmedi.

Tür alanı erişim baytında bölümün amacını ve kullanımını tanımlar. S biti (Sistem - erişim baytının 4. biti) 1 ise, bu tanımlayıcı gerçek bir bellek segmentini tanımlar. S = 0 ise, bu tanımlayıcı, bir görev anahtarında kullanılan bir çağrı ağ geçidi veya bir yerel LDT tanımlayıcı tablosunun tanıtıcısı gibi bir bellek segmenti olmayabilecek özel bir sistem nesnesini açıklar. Bit Ataması<3...0>erişim baytı, segment tipine göre belirlenir (Şekil 3.4).

Pirinç. 3.4. Bayt Türü Alan Biçimine Erişim

Kod bölümünde: C (Uygun) alt biti, program bölümleri için koruma sağlayan ek işleme kurallarını tanımlar. C = 1 için bu segment bir alt kod bölümüdür. Bu durumda, kasıtlı olarak ayrıcalık korumasından yoksun bırakılır. Böyle bir araç, örneğin sistemde çalışan tüm görevler için mevcut olması gereken alt rutinleri düzenlemek için uygundur. C = 0 ile bu normal bir kod bölümüdür; R (Okunabilir) okuma biti, segmente yalnızca yürütme için mi yoksa yürütme ve okuma için mi erişilebileceğini ayarlar; örneğin, segment değiştirme önekini kullanarak veri olarak sabitler. R = 0 olduğunda, bunların yürütülmesi için yalnızca komutlar bölümünden bir seçime izin verilir. R = 1 olduğunda, segmentten veri okunmasına da izin verilir.

Kod bölümüne yazmak yasaktır. Herhangi bir yazma girişimi bir yazılım kesintisine neden olur.

Veri segmentinde:

  • ED (Aşağı Genişlet) - genişleme yönü biti. ED = 1 ile bu segment bir yığın segmentidir ve segmentteki ofset segment boyutundan daha büyük olmalıdır. ED = 0 ile, bu gerçek veri segmentidir (ofset, segment boyutundan küçük veya ona eşit olmalıdır);
  • yazma etkinleştirme biti W(Yazılabilir). W = 1 olduğunda, segment değişikliğine izin verilir. W = 0 olduğunda, segmente yazmak yasaktır; segmente yazmaya çalıştığınızda bir yazılım kesintisi meydana gelir.

Bir işlenen talebi durumunda segment ofseti komutta belirtilen işlenen adresleme moduna göre mikroişlemci tarafından oluşturulur. Kod segmentindeki ofset şuradan çıkarılır: kayıt - talimat işaretçisi EIP.

Tanımlayıcıdan alınan segment başlangıç ​​adresi ve segmentte oluşturulan ofset toplamı doğrusal adres(LA).

Mikroişlemcide yalnızca adres alanının segment gösterimi kullanılıyorsa, sonuçta ortaya çıkan doğrusal adres de fizikseldir.

Birinci bölüme ek olarak, belleği düzenlemek için bir sayfalama mekanizması kullanılıyorsa, o zaman doğrusal adres iki alan olarak temsil edilir: en yüksek rakamlar sayıyı içerir sanal sayfa, ve sayfadaki en düşük ofset. Sanal sayfa numarasının fiziksel sayfa numarasına dönüştürülmesi, özel sistem tabloları kullanılarak gerçekleştirilir: sayfa tablosu dizini(KTS) ve sayfa tabloları(TS). Sayfa tablosu dizininin bellekteki konumu, sistem kaydı CR3 tarafından belirlenir. Fiziksel adres, sayfa tablosundan elde edilen fiziksel sayfa adresi ile doğrusal adresten elde edilen sayfa ofsetinin toplamı olarak hesaplanır.

Şimdi mantıksal bir adresi fiziksel bir adrese dönüştürmenin tüm aşamalarını daha ayrıntılı olarak ele alalım.

80386 mikroişlemci, önceki 16-bit 8086/80286 mikroişlemcilerin tam 32-bit versiyonudur ve işlemci mimarisinde 16-bit'ten 32-bit mimariye büyük bir gelişmeyi temsil eder. Bit derinliğindeki artışın yanı sıra, birçok iyileştirme ve Ek özellikler. 80386 mikroişlemci şunları sağlar: görev değiştirme, gelişmiş bellek yönetimi, sayfalamalı veya sayfalamasız sanal bellek yönetimi, yazılım koruması ve yığın depolama yeteneği. Herşey yazılım, eski 8086/8088 ve 80286 mikroişlemciler için yazılmış aşağıdan yukarıya uyumludur ve 80386 mikroişlemci için işlemci tarafından adreslenebilir bellek miktarı 1 MB'den (8086/8088 mikroişlemci için) veya 16 MB'den (80286 için) artırılmıştır. mikroişlemci) korumalı modda 80386 işlemci için 4 GB'a kadar kullanılabilir. 80386 mikroişlemci korumalı moddan gerçek moda geçebilir. sert sıfırlama 80286 işlemcinin kullanılması durumunda zaman alıcı ve gerekli olan mikroişlemci.

80486 mikroişlemci, 80386 mikroişlemcisinin geliştirilmiş bir versiyonudur ve talimatlarının çoğunu tek bir saat döngüsünde yürütür. 80486 mikroişlemci ayrıca dahili 8 KB L1 önbelleğe ve 80387 yardımcı işlemciyle uyumlu yazılım olan tümleşik yüksek performanslı matematik yardımcı işlemciye sahiptir.80486DX4 işlemcinin 16 KB önbelleğe sahip olduğunu unutmayın. 80386 mikroişlemci ile aynı saat hızında çalışan 80486 mikroişlemci %50 daha verimlidir.

Mikroişlemci 80386

80386 mikroişlemcisinin iki versiyonu en yaygın olanıydı: 80386DX işlemci ve dahili olarak 32 bit veri yolu kullanmasına rağmen harici 16 bit veri yoluna sahip basitleştirilmiş 80386SX işlemci.

80386DX işlemci, 132 pinli bir PGA (pin grid array) paketine yerleştirildi. Daha yeni bir versiyon 80386 - 80386EX mikroişlemci şunları içerir: bir AT bus kontrol ünitesi, dinamik bir RAM rejenerasyon kontrol ünitesi, programlanabilir bir kristal seçim ünitesi, bir kesinti kontrolörü, bir DMA kontrolörü, bir zamanlayıcı ünitesi, bir seri veri transfer ünitesi, 26 adres bus pini, 16 veri otobüs pimleri.

32 bit veri yoluna ve 32 bit adres yoluna sahip 80386DX mikroişlemci, 4 GB fiziksel belleğe adresleme yeteneğine sahiptir. 80386SX mikroişlemci, 80286 mikroişlemci gibi, 16 MB belleği adresler ve yalnızca 24 bit adres yoluna ve 16 bit veri yoluna sahiptir. 80386SX mikroişlemci, 80386DX mikroişlemcisinden sonra ihtiyaç duymadan kullanılmak üzere geliştirilmiştir. tam versiyon 32 bit veri yolu. 80386SX mikroişlemci birçok alanda kullanılmıştır. kişisel bilgisayarlar aynısını kim kullandı sistem kartı 80286 mikroişlemci ile aynı.Windows dahil çoğu uygulamanın 16 MB'den daha az belleğe ihtiyaç duyduğu bir zamanda, 80386SX işlemci 80386 mikroişlemcisinin popüler ve daha ucuz bir versiyonuydu. yeni bilgi işlem sistemleri oluşturmak için daha ucuz, zaten 80386 işlemci uzun zamandır birçok uygulama için talep görmeye devam etti. Örneğin 80386EX mikroişlemcisi, kişisel bilgisayarlarda kullanılmasa da gömülü sistemlerde çok popülerdi.

80386 mikroişlemci, Intel mikroişlemci ailesinin önceki sürümleri gibi, çalışmak için yalnızca bir +5.0 V güç kaynağı gerektirir.80386 işlemcinin ortalama akım tüketimi: 20 MHz ve 16 MHz'de çalışan bir işlemci için 450 mA. Ek olarak, işlemcinin saat hızı 33 MHz olan ve 600 mA akım tüketimi olan bir versiyonu vardı. 80386EX mikroişlemcinin akım tüketimi, 33 MHz'de çalışırken 320 mA'dır.

İşlemci, belirli çalışma modları sırasında 1.0A'ya kadar akım çeker.Bu, güç kaynağının ve güç kablolarının bu akım artışlarını kaldırabilmesi gerektiği anlamına gelir. İşlemci çok sayıda V CC ve V SS pinine sahiptir. doğru işlem mikroişlemcinin tümü kaynağa bağlı olmalıdır doğru akım+5.0 V (V CC) ve topraklanmış (V SS). Bazı işlemci pinleri N/C (bağlantı yok) olarak işaretlenmiştir ve herhangi bir yere bağlanmamalıdır. Belirtilenlere ek olarak, 80386SX ve 80386EX mikroişlemcilerinin +3,3 V'luk azaltılmış besleme voltajına sahip birkaç başka versiyonu vardı. Bu işlemciler taşınabilir dizüstü bilgisayarlarda (dizüstü bilgisayarlarda) veya dizüstü bilgisayarlar(dizüstü bilgisayar).

hafıza sistemi

80386DX mikroişlemcinin erişebildiği fiziksel bellek sistemi 4 GB kapasiteye sahiptir. Ek olarak, işlemci desteği vardır sanal bellek MCU ve tanımlayıcılar kullanılarak fiziksel belleğe eşlenen 64 TB'a kadar. Sanal adreslemenin, programı takas yöntemi (takas) varlığında ve büyük bir sabit sürücü kapasitesi ile 4 GB'den fazla kullanmanıza izin verdiğine dikkat edilmelidir. Şek. Şekil 6.4, 80386DX mikroişlemcisinin fiziksel bellek sisteminin organizasyonunu göstermektedir.

Bellek, her biri 1 GB'a kadar kapasiteye sahip dört adet 8 bitlik bellek bankasına bölünmüştür. Bu 32 bitlik bellek organizasyonu, bir bayt, kelime veya çift kelimeye erişime izin verir. 80386DX mikroişlemci bir bellek döngüsünde 32 bit veri aktarabilirken, 8088 mikroişlemci dört döngüye ve 80286 ve 80386SX mikroişlemcileri iki döngüye ihtiyaç duyuyordu. Büyük veri genişliği, özellikle 32 bit alan tek duyarlıklı kayan nokta sayıları için çok önemlidir. Yeterince gelişmiş yazılım, verileri depolamak için kayan noktalı sayıları kullanır, bu nedenle 32-bit bellek konumları, bellek düşünülerek yazılmışsa programın yürütülmesini hızlandırır.

Her bir bellek baytının adresi, aşağıdaki gibi onaltılık gösterimde temsil edilir: önceki sürümler işlemciler Aradaki fark, 80386DX mikroişlemcisinin 00000000H-FFFFFFFFH aralığında adreslenebilir belleğe sahip 32 bitlik bir adres yolu kullanmasıdır.

8086, 80286 ve 80386SX mikroişlemciler üzerine kurulu bir sistemdeki iki bellek bankasına BLE (8086 ve 80286'da A0) ve OUT sinyalleri aracılığıyla erişilir. 80386DX mikroişlemci, dört BE3-BE0 sinyali kullanarak bellek sıralarına erişir. Bu bellek organizasyonu, mikroişlemci bir etkinleştirme sinyalini etkinleştirdiğinde bir bayta erişmenizi sağlar.

İki etkinleştirme sinyali etkinleştirildiğinde, işlemci bir kelimeye yönlendirilir. Çoğu durumda, bir kelimenin adreslenmesi sıra 0 ve 1 veya sıra 2 ve 3'e atıfta bulunur. 80386DX mikroişlemci, dahili olarak bayt etkinleştirme sinyalleri olarak çözüldüğünden, A0 ve A1 adres pinlerine sahip değildir. Benzer şekilde, 16-bit 80386SX mikroişlemci, BLE ve OUT sinyallerine deşifre edildiğinden A0 adres pinine sahip değildir. 80386EX mikroişlemci, BS8 sinyali pasif (mantık yüksek) olduğunda 16 bitlik bir bellek sisteminin iki bankasında bulunan bir veri kelimesini veya bu sinyal etkinleştirildiğinde 8 bitlik bir sistemde bir baytı adresler.

Kontrol kayıtları

80386 mikroişlemci, EFLAGS bayrak kaydına ve EIP talimat işaretçisine ek olarak başka kontrol kayıtlarına sahiptir. Kontrol kaydı CR0 (kontrol kaydı) makine durum kaydı ile aynıdır MSW(makine durum word'ü), ​​16 bitlik bir kayıt değil, 32 bitlik bir kayıt olması dışında, 80286 mikroişlemcisinin. Ek kontrol kayıtları CR1, CR2 ve CR3'tür.

Şek. 6.5. 80386 mikroişlemcisinin kontrol kayıtlarının yapısını gösterir.

CR1 kontrol kaydı 80386 mikroişlemcisinde kullanılmaz, ancak gelecekteki ürünler için ayrılmıştır. Kontrol kaydı CR2, son bellek sayfası hatasının alındığı doğrusal adresi yakalar. Son olarak, kontrol kaydı CR3, sayfa tablosunun temel adresini düzeltir. 32 bitlik kaydın 0 ila 11 arasındaki alt 12 biti sıfır içerir ve 4K sayfa tablosunun başlangıcını belirlemek için kayıt bitlerinin geri kalanıyla birleştirilir.

CR0 kaydı, 80386 mikroişlemcisinde aşağıdaki gibi tanımlanan bir dizi özel kontrol bitine sahiptir:

PG (çağrı etkinleştirme) biti, PG = 1 olduğunda sayfa tablosunun doğrusal adreslerden fiziksel adreslere dönüştürülmesini seçmeye yöneliktir. Bellek sayfalama, herhangi bir fiziksel bellek konumunu doğrusal bir adrese atamanıza olanak tanır.

ET

ET (uzantı tipi) biti, matematik yardımcı işlemci talimatları için desteğin bir göstergesidir. ET 0 ise 80287 yardımcı işlemci, ET = 1 ise 80387 yardımcı işlemci seçilir.Sistemin 80387 yardımcı işlemcisine sahip olduğunu yansıtmak için bu bit eklenmiştir.

TS (görev anahtarı) biti, mikroişlemcinin bir görev anahtarı gerçekleştirdiğini gösterir (korumalı modda TR görev kaydının içeriğini değiştirmek TS bitini ayarlar). TS biti ayarlanmışsa, dijital yardımcı işlemci talimatı tip 7 kesme ile sonuçlanır (yardımcı işlemci mevcut değildir).

YEMEK

EM (yardımcı işlemci öykünmesi) biti, her bir ESC komutunu, yani yardımcı işlemciyle ilgili bir talimatı yürütmek için her girişimde bulunulduğunda bir Tip 7 kesmesini tetikleyecek şekilde ayarlanır. Bu genellikle bir yardımcı işlemcinin yazılım öykünmesi için kullanılır. Öykünme, sistemin maliyetini düşürür, ancak öykünülmüş yardımcı işlemci yönergelerinin yürütülmesi genellikle daha uzun sürer, belki de 100 kat daha uzun sürer.

MP (izleme yardımcı işlemcisi) biti, TS biti ayarlanırken her bekleme komutunda bir Tip 7 kesmesini tetikleyecek şekilde ayarlanmıştır.

TEKRAR

PE (koruma etkinleştirme) biti, 80386 mikroişlemcisini korumalı moda geçirecek şekilde ayarlanmıştır. Ayrıca, gerçek moda geçmek için oldukça uzun bir talimat dizisini başlatmak için sıfırlanabilir. 80286 mikroişlemcisinde bu bit sadece ayarlanabilir. 80286 mikroişlemci, çoğu korumalı mod sistemlerinde kullanımını engelleyen bir donanım sıfırlaması gerçekleştirmeden gerçek moda geri dönemez.

Tanımlayıcılar ve Seçiciler

Sayfalama bloğunu tartışmadan önce, 80386 mikroişlemcisinin tanımlayıcılarına ve seçicilerine bakalım.80386 mikroişlemci, tanımlayıcıları 80286 mikroişlemcisiyle hemen hemen aynı şekilde kullanır. tanımlayıcı her iki mikroişlemcide de bu, bellek bölümü ve konumu hakkında bilgi içeren sekiz baytlık bir dizidir. seçici(segment kaydının içeriği), tanımlayıcı tablosunda belirtilen tanımlayıcıyı tanımlamak için kullanılır. 80286 ve 80386 mikroişlemciler arasındaki temel fark, ikincisinin iki ek seçiciye (FS ve GS) sahip olması ve tanımlayıcının en önemli iki baytının 80386 mikroişlemci için tanımlanmış olmasıdır. Diğer bir fark, 80386 mikroişlemci tanımlayıcılarının, 80286 mikroişlemcisinde bulunan 24 bitlik temel adres ve 16 bitlik segment sınır alanı yerine 32 bitlik segment taban adresi ve 20 bitlik segment sınır alanını kullanmasıdır.

80286 mikroişlemci, 24 bitlik taban adresi ile 16 MB'lık bir bellek alanını adresler ve 16 bitlik sınır alanı ile 64 KB'lık bir segment uzunluğuna sahiptir. 80386 mikroişlemci, 4 GB'lık bir bellek alanını adreslemek için 32 bitlik bir temel adres kullanır ve segment boyutu, iki kişi tarafından kullanılan 20 bitlik bir sınır alanı tarafından belirlenir. Farklı yollar. Tanımlayıcının ayrıntı düzeyi biti G (parçacık düzeyi) veya aksi takdirde kesirli bit, segment boyutu için ölçüm birimini belirler: G = 0 ise boyut bayt olarak ve G = 1 ise 4K sayfalarda belirtilir. Bu nedenle, 20 bitlik limit alanına sahip segment boyutu sırasıyla 1 MB veya 4 GB olabilir.

G tanecikliliği biti, 80386 mikroişlemci ile başlayan tanımlayıcıda göründü.G biti = 0 ise, limit alanında saklanan değer, 1 MB'lik herhangi bir 00000H-FFFFFG segmentine erişime izin vererek, doğrudan bir segment boyutu sınırı olarak kabul edilir. segment. G bit = 1 ise, limit alanında saklanan sayı 00000XXXH-FFFFFFXXXH olarak yorumlanır, burada XXX, 000H ile FFFH arasındaki herhangi bir değerdir. Bu, 4 KB'lik parçalar halinde 0 bayttan 4 GB'a kadar olan segment boyutuna erişim sağlar. 00001H sınır değeri, G biti 1 olduğunda sektör boyutu sınırının 4 KB veya G biti 0 olduğunda 1 bayt olduğunu gösterir. Bir örnek, 10000000H fiziksel adresinden başlayan bir segment olabilir. 00001H sınır değeri ve G bit = 0 için bu segment 10000000H'de başlar ve 10000001H'de biter. Aynı limit değerine (00001H) sahip G bit = 1 ise, segment 100000000H konumunda başlar ve 10001FFFH konumunda biter.

Şek. Şekil 6.6, 80386 mikroişlemcisinin, bir seçici ve bir tanımlayıcı kullanarak korumalı modda bir bellek bölümünü nasıl adreslediğini gösterir. Gösterilen adresleme, 80286 mikroişlemcisinin segmenti adresleme şekliyle aynıdır.Fark, 80386 mikroişlemci için kullanılabilen segmentin boyutudur. Seçicinin üst 13 biti (bit 15-3), tanımlayıcı tablosundan bir tanımlayıcı seçmek için kullanılır. Tablo gösterge biti TI (tablo göstergesi) (seçicinin 2. biti) tanımlayıcı tablonun tipini gösterir: TI biti = 1 ise yerel veya TI biti = 0 ise global. RPL'nin alt iki biti (istenen ayrıcalık seviyesi) ( seçicinin 1-0) bitleri, sektöre erişmek için istenen ayrıcalık seviyesini belirler.

Seçici, tanımlayıcıya erişmek için 13 bitlik bir kod kullandığından, her tablo (yerel veya genel) 8192'den fazla tanımlayıcı içermez. 80386 mikroişlemci için olası segment boyutu 4 GB'a ulaştığından, iki tanımlayıcı tablo kullanılarak aynı anda 16.384 segmente erişilebilir. Tüm bunlar, 80386 mikroişlemcinin 64 TB'a (1 TB = 1024 MB) kadar sanal belleği desteklemesini sağlar. Elbette sadece 4 GB'a kadar kapasiteye sahip bir bellek sistemi fiilen var olabilir. Program herhangi bir zamanda 4 GB'den fazla bellek gerektiriyorsa, gerekli veriler bir disk sürücüsünden veya başka bir büyük depolama aygıtından bellek sistemine pompalanabilir.

80386 mikroişlemci, global ( GDT) ve yerel (LDT) Tanımlayıcılar. Üçüncü tanımlayıcı tablosu, kesme tanımlayıcıları tarafından kullanılır ( VAR) veya vanalar(kapılar). 80386 mikroişlemci tanımlayıcısının ilk altı baytı, 80286 mikroişlemcidekilerle aynıdır ve bu, aşağıdan yukarıya doğru yazılım uyumluluğunu sağlar. 80286 mikroişlemci tanımlayıcısının yüksek iki baytı ayrılmıştı ve 00H değerini içeriyordu. 80286 ve 80386 mikroişlemcileri için tanımlayıcılar, Şek. 6.7.

80386 mikroişlemci tanımlayıcısı, 32 bitlik bir temel adres, 20 bitlik bir segment sınır alanı ve segment sınırı çarpanını (1 veya 4K kez) veya aksi takdirde sınırın hangi birimlerde ayarlanacağını belirleyen ayrıntı düzeyi G biti içerir: bayt (G = 0) veya her biri 4K sayfa (G = 1). 80386 mikroişlemci tanımlayıcı alanlarının amacı aşağıdadır:

Baz (B31-B0)

Temel alanı, 80386 mikroişlemcisinin fiziksel 4 GB adres alanındaki segmentin 32 bitlik taban (başlangıç) adresini belirtir.

Sınır (L19-L0)

Sınır alanı, ayrıntı düzeyi biti varsa segment için bayt cinsinden sınırı belirtir. G = 0 veya G = 1 ise 4K sayfalarda Bu, G bit = 0 ise 1 bayttan 1 MB'a veya G bit = 1 ise 4 KB'den 1 GB'a kadar herhangi bir segment boyutuna izin verir. segment.

Erişim hakları

Erişim hakları alanı, ayrıcalık düzeyini ve segmentle ilgili diğer bilgileri tanımlar. Bu bayt için farklı farklı şekiller tanımlayıcılar ve her biri için belirtilir.

Parçalılık biti G (parçacıklılık), segment sınırı alanı için 1 veya 4K'lık bir çarpan seçer. G bit = 0 ise çarpan 1, G bit = 0 ise çarpan 4K'dır.

D (varsayılan boyut) biti, kullanılan işlenenlerin ve kayıtların varsayılan boyutunu belirler. D = 0 ise, 80286 mikroişlemcide olduğu gibi 16 bit; D = 1 ise, 80386 mikroişlemcide olduğu gibi 32 bit Bu bit, 32 bit veri ve dizin kayıtları için öneklerin gerekli olup olmadığını belirler. D = 0 ise, 32 bit kayıtlara erişmek ve 32 bit işaretçileri kullanmak için bir önek gerekir. D = 1 ise, 16 bitlik kayıtlara ve 16 bitlik işaretçilere erişmek için bir önek gerekir. Assembly dilinde segment yönergesi ile kullanılan use16 ve use32 öznitelikleri, D bitinin ayarını kontrol eder. gerçek mod işlem her zaman kayıtların 16 bit olduğunu varsayar, bu nedenle 32 bitlik bir kayıt veya işaretçi tarafından adreslenen herhangi bir talimat önek olmalıdır.

AVL (mevcut) biti aşağıdakiler için kullanılabilir: işletim sistemi ve gerektiğinde kullanılabilir. İşlemci tarafından uygulanmaz veya ayrıştırılmaz ve uygulama programları tarafından kullanılması amaçlanmıştır.

İki tür tanımlayıcı vardır: bir kod ve veri segment tanımlayıcısı ve bir sistem segment tanımlayıcısı. İlk tanımlayıcı, verileri, yığını ve kod bölümlerini tanımlar. Sistem segmenti tanımlayıcısı, sistem tabloları, görevler ve kapılar hakkında bilgi depolamak için tasarlanmıştır.

Süper bilgisayarlar her zaman özel bir bilgi işlem teknolojisi sınıfı olarak kabul edilmiştir. Bu tür makineler olağandışı sorunları çözmek için üretildiğinden, bütçeler olağandışıdır ve bu da sonsuz olasılıklar hissi verdi: sorunun her zaman sadece parada olduğu ve on veya iki milyon daha harcarsanız, verimlilik sonsuz bir şekilde artırılabilir. Son aylarda ve yıllarda olup bitenler ve gezegendeki en güçlü 500 ısırık sayısının yer aldığı yeni bir listeyle ifade edilen - TOP500.org tarafından bilinen - bununla birlikte, "sonsuzluğun" sona erdiğini iddia etmek için bir neden veriyor. Modern bilgisayarların ilki süper bilgisayarlardır. bilgisayar sistemleri yarı iletken elektroniğin olanaklarının fiziksel sınırına tökezledi - ve onlar için her şeyden önce çıkmazdan bir çıkış yolu bulmak gerekiyor. yeni teknoloji bilgi işlem.

Bu kadar geniş kapsamlı bir ifadenin resmi ipucu, yukarıdaki listenin derleyicileri tarafından fark edilen garip bir kalıptı. İlk 500 yılda iki kez güncellenir ve en iyi pozisyonlar onun En son sürüm, geçen hafta yayınlanan, neredeyse hiç değişiklik olmadı (ilk on listeye yalnızca bir tanesi eklendi) yeni Üye ve beş yüz makinenin tümünün toplam performansı 0,223'ten 0,250 exaflop'a biraz arttı). Ancak niteliksel bir genel değişiklik oldu: listenin “ağırlık merkezi” en üste kaydırıldı veya daha basit bir ifadeyle, ana hesaplama gücü artık nispeten küçük (tarihsel olarak - rekor- kırma) en hızlı makinelerin sayısı. Şuna benziyor: İlk 450'nin toplam gücünün yarısı, listedeki yalnızca ilk 17 bilgisayar tarafından sağlanıyor. Bu eğilim dün ortaya çıkmadı, ancak son altı yılda o kadar çok şekillendi ki, üzerinde düşünülmesi gerekiyor.

Tek bir kesin açıklama yok. En zorlayıcı olanlardan biri finansaldır: son yıllarda süper bilgisayarlar çok daha pahalı hale geldi (örneğin, sıfırın ortasındaki ısırık sayısıyla karşılaştırıldığında yaklaşık dört kat) ve bu nedenle artık yalnızca nispeten az sayıda hükümet tarafından kullanılabilir. ajanslar ve büyük şirketler. Ek olarak, yeni, çok güçlü olmayan makinelerin tasarımcıları ve alıcıları, imajlarını bozmamak için derecelendirmede yer almaya çalışmazlar. Ve böylece ortaya çıktı ki, daha fazla, daha parlak eğilim kendini gösterir: güçlü olanlar daha güçlü hale gelir, zayıf olanlar doğrusal olmayan bir şekilde hızla geride kalır.

Önemli bir sonuç: süper bilgisayarlar ihtiyaç olmaktan çıkmadı, sadece daha az erişilebilir hale geldiler. Peki ya Moore'un ölümsüz yasası? Fiyat artışını daha sıkı paketleme ve dolayısıyla daha yüksek performansla telafi etmesi gerekmez mi? İşte asıl şüphe burada ortaya çıkıyor. Görünüşe göre Moore yasasının hala geçerli olmasına rağmen çoğu oyuncu için kullanmak için zaten çok pahalı olduğu bitiş çizgisine ulaştık.

Bilim adamları sonucu şu şekilde formüle ediyorlar: Bir sıçramada daha önce erişilemeyen bilgi işlem hızı sağlayacak çığır açan teknolojilerin yokluğunda, süper bilgisayar endüstrisi kapsamlı bir yol boyunca ilerlemek zorunda kalıyor - makinelerindeki işlemcilerin sayısını aptalca artırıyor. Ve daha da kötüsü: Bu yol, kullanıcıların iştahını tatmin edemediğinden (ve ısıranların sayısı geleneksel olarak sadece veri işleme için bir araç değil, aynı zamanda kurumsal ve ulusal otorite kurmanın bir yolu), tasarımcılar grafiklere güvendiler. diyelim ki, herhangi bir görevi çözmek için uygun olan hızlandırıcılar. GPU'ları aktif olarak kullanan süper bilgisayarların sayısı son beş yılda büyük bir artış gösterdi!

Ve burada, ilk 500'ün yayınlanmasının en başından (yirmi yıl önce) süper bilgisayar sistemlerinin performansının ana ölçüsü olan ünlü Linpack testinin yakında değiştirilmesini hatırlamak çok kullanışlıdır. Yeni geliştirilen HPCG (High Performance Conjugate Gradient) testi ile değiştirilmesi önerilmektedir. Sebep: 1979'da Fortran'da yazılan Linpack, ölçülen sistemlerin gerçek performansının yetersiz olduğunu ve tutarsızlığın arttığını gösteriyor.

Genel olarak, ortak yazarları Jack Dongarra bile Linpack ve HPCG arasındaki farkı net bir şekilde açıklayamaz. Ancak, büyük ölçüde basitleştirecek olursak, fark şuna indirgenebilir: Linpack temel olarak bir süper bilgisayarın saf hesaplamalar yapma yeteneğini değerlendirirken (GPU hızlandırıcıları bunu iyi yapar), HPCG ayrıca dahili iletişim performansını da hesaba katar; pratik bilimsel ve teknik sorunları çözme (örneğin, sık düzensiz bellek erişimi).

HPCG değiştirilmezse, birkaç yıl "çalıştıktan" sonra Linpack'i tamamlayacaktır (ilgilenenler için kaynak kodları Sandia Labs web sitesinde bir BSD lisansı altında mevcuttur). Ve bu, tüm Top 500 listesinin önemli ölçüde yeniden düzenlenmesine, daha yüksek, daha adil derecelendirmeler almaya başlayacak küçük katılımcıların geri dönmesine ve hatta artık Linpack için optimize edilmediğinde süper bilgisayarların mimarisinde ayarlamalara yol açabilir. Tabii ki, özellikle ikincisi için umut etmemekle birlikte - sonuçta, hala çığır açan bir bilgi işlem teknolojisi yok!

Ve atılımlar olmadan, Numberbiters dünyasında can sıkıntısı hüküm sürdü. Daha güçlü bir makine nasıl yapılır? Daha fazla işlemci koyun - ve bu nedenle bulun daha fazla para. Ancak gerçek şu ki, belirli (ve zaten elde edilmiş) bir seviyenin üzerindeki pratik görevlerin paralelleştirilmesi hız kazanımları sağlamaz ve hatta en güçlü süper bilgisayarlar zaten o kadar pahalıdır ki, yukarıda tartışıldığı gibi, yapımları ve işletimleri birimler tarafından karşılanabilir. Sonuç olarak, süper bilgisayar akışı kurur. Bu, teknolojik bir çağın sonu, son elli yıldır bildiğimiz şekliyle yarı iletkenlerin sonu. Ve bilgisayar performansını yeni bir düzeye çıkarabilecek bir teknoloji bulunana kadar, yıllık yüzde birkaç artışla durgunlaşacağız.

Böyle bir atılımı ne sağlayabilir? Batı basını, Stanford'daki adamların tek boyutlu polar transistörler (CNFET'ler) inşa etmeyi başardıkları nanotüplere bakıyor, garantili işlevsellik ile mikro devrelerin nasıl yapıldığını öğreniyor (asıl sorun: bundan kaçınmak hala zor Büyük bir sayı yanlış yerleştirilmiş nanotüpler) ve hatta geçen hafta ACM / IEEE SC13 süper bilgi işlem konferansında gösterilen MIPS uyumlu bir bilgisayar oluşturun (“Computerra” bu proje hakkında yazdı: bkz. “”). Gelecekte, bu teknoloji yarı iletken çiplere göre güç tüketimi birimi başına performansta 13 kat üstünlük sağlayabilir. Merak ediyorum, burada nanotüplerle ilgilenen var mı?

Birçok meraklı bilgisayar Teknolojisi işlemci frekanslarının megahertz cinsinden ölçüldüğü ve üreticilerin (yani Intel ve AMD) bu göstergede birbirlerinin önüne geçmeye çalıştığı zamanları deneyimle hatırlıyorlar. Daha sonra işlemcilerin güç tüketimi ve ısı dağılımı o kadar arttı ki bu yarışa devam etmek imkansız hale geldi. Son yıllarda işlemci çekirdek sayısını artırmaya başladılar ancak sonuç olarak bu büyüme kârsız hale gelince bir sınıra gelindi. Artık watt başına en fazla gücü elde etmek performansta önemli bir faktör haline geldi.

Tüm bu değişiklikler, geliştiricilerin mevcut işlemcilerin daha da geliştirilmesinin fiziksel sınırlarıyla karşı karşıya kalması nedeniyle olmadı. Bunun yerine, performans, bazı alanlardaki ilerlemenin - özellikle enerji verimliliği - işlevselliğin ve talimat setlerinin genişletilmesi gibi diğer alanlardaki ilerlemeden daha yavaş olması gerçeğiyle sınırlandırılmıştır. Ancak, şimdi işlemcilerin fiziksel sınırı ve bunların işlem gücü zaten yakın? Michigan Üniversitesi'nden Igor Markov, Nature dergisindeki bir makalede bu konuyu ele aldı.

Engelleri göz önünde bulundurarak

Markov, bazı bilim adamlarının tamamen fiziksel sınırlamalara dayanarak Moore Yasasının bir yüz yıl daha süreceğini hesapladığını belirtiyor. Öte yandan, Yarı İletkenler için Uluslararası Teknoloji Yol Haritası (ITRS) grubu, ona birkaç on yıllık ömür veriyor. Ancak ITRS tahminleri sorgulanabilir: Bu grup, Core2 çiplerinin olduğu günlerde 10 GHz frekansa sahip işlemcileri tahmin etmek için kullanılıyordu. Bu tutarsızlığın nedeni, birçok ciddi fiziksel sınırlamanın hiçbir zaman devreye girmemiş olmasıdır.

Örneğin, işlevsel bir birimin boyutundaki en uç sınır, nihai fiziksel sınır olan bir atomdur. Ancak bu sınıra ulaşılmadan çok önce, fizik elektronların akışını doğru bir şekilde kontrol etme yeteneğini sınırlar. Başka bir deyişle, devreler potansiyel olarak bir atom kadar ince olabilir, ancak davranışları çok daha kısa sürede güvenilmez hale gelecektir. Intel'in daha ince üretim süreçlerine (daha küçük transistörler) geçmek için devam eden çalışmalarının çoğu, nasıl yapılandırılacağını bulmaktır. kişisel bileşenler böylece beklendiği gibi çalışmaya devam edebilirler.

Markov'un argümanının özü şu şekilde anlaşılabilir: katı fiziksel sınırlar olmasına rağmen, bunlar genellikle modern yarı iletken ilerlemesini tutan problemlerle ilgisizdir. Bunun yerine, genellikle atlanabilecek daha yumuşak kısıtlamalarla karşı karşıyayız. “İlerlemeyi engelleyen belirli bir sınırlamanın zamanı geldiğinde, onun doğasını anlamak, onu aşmanın anahtarıdır” diye yazıyor. “Bazı sınırlamalar basitçe göz ardı edilebilirken, diğerleri varsayımsal kalır ve yalnızca ampirik kanıtlara dayanır; kurulumları zordur yüksek derece kesinlik."

Sonuç olarak, kalkınmanın önündeki engeller gibi görünen şeyler, genellikle yaratıcı düşünce ve gelişmiş teknolojinin bir kombinasyonu ile aşılır. Markov'un örneği kırınım sınırıdır. Başlangıçta, argon-flor lazerlerinin 65 nanometreden daha ince yapıları aşındırmasını engellemesi gerekiyordu. Ancak alt dalga boyu kırınımı ile şu anda aynı lazeri kullanan 14nm yapılar üzerinde çalışıyoruz.

Modern sınırlar nerede?

Markov, en büyük sınır olarak gördüğü iki konuya dikkat çekiyor: enerji ve iletişim. Enerji tüketimi konusu, modern devrelerin kullandığı enerji miktarının, fiziksel boyutlarındaki azalmayla orantılı olarak azalmamasından kaynaklanmaktadır. Bunun ana sonucu: Çipin parçaları kullanılmadığında bloke edilme çabaları. Ama mevcut gelişme hızıyla bu yaklaşım herhangi bir zamanda, çipin çoğu etkin değildir - bu nedenle "koyu silikon" terimi.

Enerji kullanımı çipin çalışma voltajıyla orantılıdır ve transistörler 200mV'nin altında çalışamazlar. Şimdi voltajları 5 kat daha yüksek, bu yüzden azalma için yer var. Ancak çalışma voltajını düşürmedeki ilerleme yavaşladı, bu nedenle fiziksel olanlardan önce teknolojik sınırlara tekrar ulaşabiliriz.

Enerji kullanımı sorunu iletişim sorunuyla ilgilidir: çipin fiziksel hacminin çoğu ve güç tüketiminin çoğu, farklı blokları veya bilgisayarın geri kalanı arasındaki etkileşime harcanır. Burada gerçekten fiziksel sınırlara ulaşıyoruz. Çipteki sinyaller ışık hızında yol alsa bile, 5 GHz'in üzerindeki bir çip, çipin bir tarafından diğerine bilgi iletemezdi. Günümüz teknolojisi ile yapabileceğimiz en iyi şey, birbirleriyle sıklıkla iletişim kuran blokların fiziksel olarak birbirine yakın olduğu yongalar tasarlamaya çalışmaktır. Denkleme üçüncü bir boyutun (yani üç boyutlu zincirlerin) dahil edilmesi yardımcı olabilir, ancak yalnızca marjinal olarak.

Sıradaki ne?

Markov, gelecek değişiklikler konusunda pek iyimser değil. Yakın vadede, kablolama için karbon nanotüplerin ve iletişim için optik ara bağlantıların fiziksel sınırlardan kaçınmamıza yardımcı olma eğilimini sürdürmesini bekliyor. Ancak, bu teknolojilerin her ikisinin de kendi sınırlamaları olduğunu belirtiyor. Karbon nanotüpler, bir nanometre çapa kadar küçük olabilir, ancak aynı zamanda bir boyut sınırına da sahiptirler. Ve fotonlar, iletişim için kullanılıyorsa, donanım ve enerji.

Birçoğu umutlarını kuantum bilgisayarlara bağlıyor, ancak Markov hayranlarından biri değil. " kuantum bilgisayarlar, hem dijital hem de analog, yalnızca niş uygulamalarda umut vericidir ve sıralama ve diğer belirli görevleri hızlı bir şekilde gerçekleştiremedikleri için genel bilgi işlemde önemli bir performans sunmazlar” diyor. Sorun aynı zamanda bu ekipmanın en iyi mutlak sıfıra yakın sıcaklıklarda çalışması ve oda sıcaklığında performansın son derece düşük olmasıdır.

Bununla birlikte, tüm hesaplamalar bir dereceye kadar kuantum etkilerine dayanır ve Markov, kuantum sistemlerinden öğrenilecek faydalı bir şey olduğuna inanır. "Bireysel kuantum cihazları, anahtarlama için enerji sınırlarına yaklaşırken, kuantum olmayan cihazlar bir büyüklük sırasına göre geride kalıyor." Açıkçası, kuantum sistemlerinden küçük bir verimlilik derecesi elde etmek bile tüm çipte enerji tüketiminde büyük bir başlangıç ​​yapabilir.

Markov'un başka bir fiziksel sınırı: bir parça bilgiyi silmek, kaçınılmaz bir termodinamik maliyete sahiptir - hesaplamalar her zaman enerji tüketir. Bu sınırdan kaçınmak için bir fikir, bileşenlerin geri döndürüldüğü "hesaplamanın tersine çevrilebilir" olmasıdır. ilk durum hesaplamadan sonra. Bu yöntem, en azından teoride, kullanılan enerjinin bir kısmını geri almanıza izin verebilir.

Bu fikir tamamen teorik değildir. Markov, termodinamik sınırın altında tersinir davranış ve enerji dağılımı sağlamak için süper iletken devreler ("oldukça egzotik" olarak adlandırdığı) kullanarak çalışmayı belirtiyor. Tabii ki, burada sadece 4 mikrokelvin kullanılır, bu nedenle devrelerin işlevselliğini kontrol etmek için gerçek çalışmalarından daha fazla enerji harcanır.

Fiziğin Ötesinde

Fizik ve malzeme bilimi donanıma çok fazla sınır koyarken, matematik onlarla yapabileceklerimize sınır koyar. Kesin bir bilim olarak ününe rağmen, matematiksel sınırlamalar fiziksel olanlardan çok daha belirsizdir. Örneğin, yıllarca süren çabaya rağmen, karmaşıklık sınıfları P ve NP'nin eşitliğine hala bir cevap yoktur. Ve bazı algoritmaların genel durumlar için en verimli olduğunu kanıtlayabilmemize rağmen, alternatif hesaplama yaklaşımlarının daha iyi performans gösterdiği bir dizi problem bulmak da kolaydır.

Markov'un burada gördüğü en büyük sorun, koddan daha fazla paralellik çıkarma mücadelesidir. Hatta ucuz akıllı telefonlarşimdi üzerinde çalışıyorlar çok çekirdekli işlemciler, ancak şimdiye kadar kullanımları optimal değil.

Genel olarak, ana sınırlamanın insan zihni olduğu görülmektedir. Markov harika yeni teknolojilerin ortaya çıktığını görmese de, iyimser bir şekilde mevcut engellerin diğer alanlardaki ilerlemelerle ortadan kaldırılacağını veya aşılacağını umuyor.

Editörden. Düzenli okuyucularımız, bilgisayar bilimi alanındaki en ünlü, klasik makalelerin ve eserlerin ara sıra yeniden basımlarının gazetemizde yayınlandığını bilirler. “Bilgi İşlemin Fiziksel Sınırları”nı uzun zamandır basmak istiyorduk… yaklaşık on beş yıl. Ancak bu harika makalenin bir şekilde diğer malzemelerin bileşimi açısından yeri yoktu, “aynen böyle” basılsa bir gazetede çok garip görünürdü. Ve sonra böyle bir şans! Makale, ileri eğitim kursumuzun son dersinde, bu konuyla ilgili Rusça birkaç bilgi kaynağından biri olarak bahsedildi (kesinlikle hak edildi). Tabii ki fırsatı kaçıramazdık. Bu harika popüler materyali keşfetmekten keyif alacağınızı umuyoruz. Ne de olsa, yayınlanmasından bu yana geçen 24 (!) yıl bile onu “eskimiş” kılmadı, ancak elbette teknolojiler parseklerle ilerledi! Ancak temel yasalar teknoloji için bile çok zor!

Hangi fiziksel faktörler hesaplama sürecini sınırlar? Örneğin, bir mantıksal adımı gerçekleştirmek için gereken sınırlayıcı bir minimum enerji var mı? Görünüşe göre, böyle bir minimum mevcut değil, ancak hala açık kalan başka sorular var.

Hesaplama, gerçekleştirilip gerçekleştirilmediğine bakılmaksızın elektronik aletler, sıradan hesaplarda veya beyin gibi biyolojik bir sistemde fiziksel bir süreçtir. Aynı kavramlar, diğer fiziksel süreçler için de geçerlidir. Belirli bir hesaplamayı gerçekleştirmek için ne kadar enerji gereklidir? Ne kadar sürer? Bilgisayar cihazının boyutu ne olmalıdır? Başka bir deyişle, hesaplama sürecindeki fiziksel sınırlar nelerdir?

Elbette bu soruları sormak, cevaplamaktan çok daha kolaydır. İlgilendiğimiz kısıtlamalar, uğraştığımız gerçek kısıtlamalardan bir şekilde çok uzaktır. modern teknoloji. Bu nedenle araştırmamızın bir mühendise veya bir teknoloji uzmanına işinde yardımcı olduğunu iddia edemeyiz. Bu çalışmalar doğada daha teoriktir. Amacımız, bu işlemenin araç ve yöntemlerinden bağımsız olarak her türlü bilgi işlemeyi yöneten genel yasaları belirlemektir. Bulduğumuz herhangi bir sınırlama, şu anda kullanımda olan teknolojilere değil, yalnızca temel fiziksel ilkelere dayanmalıdır.

Bu temel sınırlama arayışının şimdiden emsalleri olmuştur. 1940'larda, o zamanlar Bell Telefon Laboratuvarları'nın bir çalışanı olan K. Shannon, gürültü varlığında bir iletişim kanalı üzerinden iletilebilecek bilgi miktarında kısıtlamalar olduğunu belirledi. Bu kısıtlamalar, mesajın nasıl kodlandığına bakılmaksızın geçerlidir. Shannon'ın çalışması, modern bilgi teorisinin doğuşunu işaret etti. Daha da önce, geçen yüzyılın ortalarında ve sonunda, bir buhar motorunun verimliliği üzerindeki temel sınırlamaları belirlemeye çalışan fizikçiler, "termodinamik" adı verilen bir bilim yarattılar. 1960 civarında, Landauer (bu makalenin yazarlarından biri), J. Swanson ile birlikte IBM'de çalışırken, bu tür bir analizi hesaplama sürecine uygulamaya çalıştı. 1970'lerin ortalarından itibaren, diğer kuruluşlardan daha fazla bilim insanı grubu bu çalışmalara katılmaya başladı.

Hesaplama üzerindeki fiziksel kısıtlamalara ilişkin analizimizde, "bilgi" terimini, bilgi teorisinde tanımlandığı anlamda kullanıyoruz. Bu tanıma göre, önceden farklı iki durum ayırt edilemez hale geldiğinde bilgi kaybolur. AT fiziksel sistemler, sürtünme kuvvetlerinin yokluğu ile karakterize edilen bilgi yok edilemez, çünkü bilgi yok edildiğinde, belirli bir miktarda enerji ısıya geçmelidir. Örnek olarak, kolayca ayırt edilebilen iki fiziksel durumu ele alalım. Bunlardan birinde yerden 1 m yükseklikte, diğerinde 2 m yükseklikte bir lastik top desteklenmektedir, eğer top bırakılırsa düşerek yerden yukarı sekecektir. Sürtünme olmaması ve topun tamamen esnek olması koşuluyla, gözlemci her zaman topun ilk durumunun ne olduğunu (bu durumda, ilk anda hangi yükseklikte olduğunu) söyleyebilecektir. 2 m yükseklikten düşen top, 1 m yükseklikten düştüğünden daha yükseğe sekecektir.

Bununla birlikte, sürtünme kuvvetlerinin varlığında, top zeminden her sektiğinde, bir miktar enerji dağılacak ve sonunda top zıplamayı durduracak ve yerde kalacaktır. O zaman topun ilk durumunun ne olduğunu belirlemek imkansız olacak: 2 m yükseklikten düşen top, 1 m yükseklikten düşen top ile tamamen aynı olacaktır. Enerji dağılımı.

Geleneksel bilgi işlem cihazları, abaküs ve mikroişlemci, çalışma sırasında enerjiyi yayar. Mikroişlemcinin mantık kapıları tarafından enerjinin dağılması, bilginin kaybolmasından kaynaklanmaktadır. Başka nedenler de var: mikroişlemcili elektronik devreler, bilgiyi işlemeden basitçe depolasalar bile enerji tüketirler. Hesaplar, ortadan kaldırılamayan sürtünme kuvvetleri nedeniyle dağılır: statik sürtünmenin yokluğunda, “kemikler” moleküllerin rastgele termal hareketinin etkisi altında pozisyon değiştirir. Statik sürtünme, "kemiklerin" hızına bağlı olmayan belirli bir minimum kuvveti temsil eder ve bu nedenle, ne kadar yavaş çalışırlarsa çalışsınlar, abaküs bir miktar minimum enerji gerektirir.

Bilginin kaybolmasına bir örnek daha verelim. "2 + 2" ifadesi, "= 4" ifadesinden daha fazla bilgi içerir. 4 sayısının sadece iki sayının eklenmesiyle elde edildiğini biliyorsak, hangi sayıların eklendiğini belirleyemeyiz: 1 + 3, 2 + 2, 0 + 4 veya başka bir sayı çifti. Çıktı bilgisi dolaylı olarak girdide zaten bulunduğundan, hiçbir hesaplamanın bilgi üretmediğini varsayabiliriz.

Geleneksel mantık kapıları, gereksiz bilgileri attıkları için enerjiyi dağıtır. Örneğin AND geçidinin çıkışı 0 ise girişlerde ne olduğunu belirleyemeyiz.

Aslında, modern üzerinde yapılan hesaplamalar bilgisayarlar, bilgiyi yok eden birçok operasyon yardımı ile gerçekleştirilir. Vana denilen Ve ”, her biri 1 veya 0'a eşit bir sinyale ayarlanabilen iki giriş hattına ve bir çıkış hattına sahip bir cihazdır - sinyalinin değeri, girişlerin değerleri ile belirlenir. Her iki giriş de 1 ise, çıkış da 1 olacaktır. Girişlerden biri veya her ikisi 0 ise, çıkış 0 olacaktır. Kapının çıkışı 0 olduğunda, hangisini bilmediğimiz için bilgi kaybederiz. üç olası durum, giriş satırlarıydı (0 ve 1; 1 ve 0 veya 0 ve 0). Aslında, çıktılardan daha fazla girdiye sahip herhangi bir mantık geçidi kaçınılmaz olarak bilgi kaybeder çünkü girdilerin durumunu çıktıların durumundan belirleyemiyoruz. Bu nedenle, ne zaman böyle bir "mantıksal olarak geri döndürülemez" valf kullansak, enerjiyi çevre. Bilgisayar belleğindeki bir bit verinin silinmesi, bilgi işlemde sıklıkla kullanılan ve aynı zamanda doğası gereği tüketen bir işlemdir. Bir bit veriyi silerken, bu bitin önceki durumuyla ilgili tüm bilgileri kaybederiz.

Bununla birlikte, soruyu sormak adil olur, geri dönüşü olmayan mantık kapılarının kullanılması ve hesaplamada silme işlemleri kaçınılmaz mıdır? Eğer öyleyse, yaptığımız herhangi bir hesaplama belirli bir minimum enerji miktarını harcamalıdır.

Benne'in (bu makalenin yazarlarından biri) 1973'te gösterdiği gibi, geri dönüşü olmayan mantıksal unsurlar olmadan ve hesaplamadaki bilgileri silmeden yapılabilir. O zamandan beri, bu hükmün geçerliliği çeşitli modellerde kanıtlanmıştır. Modelleri tanımlamanın en kolay yolu, MIT'de Edward Fredkin'in adını taşıyan Fredkin kapısı gibi "tersinir mantık kapıları"na dayanmaktadır. Valfin üç giriş ve üç çıkış hattı vardır. "Kontrol kanalı" olarak adlandırılan bir giriş hattındaki sinyal, kapıdan geçerken değişmez. Kontrol kanalındaki sinyal 0 olarak ayarlanırsa diğer iki hattaki giriş sinyalleri de değişmeden geçer. Ancak kontrol hattı 1 ise, diğer iki çıkış hattı değişir: bir hattın giriş sinyali diğerinin çıkışı olur ve bunun tersi de geçerlidir. Girdilerin durumu her zaman çıktıların durumundan belirlenebildiğinden Fredkin kapısı bilgi kaybetmez.

Fredkin, bir bilgisayarın çalışması için gerekli herhangi bir mantıksal aygıtın, Fredkin kapılarının uygun bir kombinasyonu şeklinde yapılabileceğini gösterdi. Hesaplamayı gerçekleştirmek için bazı kapıların belirli giriş satırları belirli değerlere önceden ayarlanmalıdır (soldaki alt şekle bakın).

Tersinir bir Fredkin mantık kapısı enerjiyi dağıtmayabilir - girişlerindeki durum, çıkışların durumundan belirlenebilir. Valf, durumu valf tarafından değiştirilmeyen bir “kontrol” hattına sahiptir. Kontrol hattı 0 ise diğer iki hattaki sinyal değerleri de değişmez, ancak kontrol hattı 1 ise A hattının girişi S hattının çıkışı olur ve bunun tersi de geçerlidir. Tersine çevrilebilir valfler düzgün bir şekilde bağlandığında, geleneksel bir tersinmez cihaz tarafından gerçekleştirilen herhangi bir işlev gerçekleştirilebilir. AND işlemini (sağda) uygulamak için bir giriş 0'a ayarlanır ve "çöp" olarak adlandırılan iki çıkış biti geçici olarak yoksayılır. Hesaplama tamamlandığında, bu bitler, bilgisayarı orijinal durumuna döndürmek için kapıyı ters yönde çalıştırmak için kullanılır.

Fredkin kapıları, modellediklerinden daha fazla çıktı hattına sahiptir. Bu nedenle, hesaplamalar sırasında “çöp parçalarının” oluştuğu, yani. bir sonuç üretmek için gerekli olmayan bilgi bitleri. Başka bir hesaplamaya başlamadan önce, bilgisayarı bu bitlerden bir şekilde temizlemeniz gerekir. Ama onları silersek, o zaman tam da kaçınmak istediğimiz enerji kaybı gerçekleşecektir.

Aslında, bu bitler çok önemli bir rol oynamaktadır. Hesap sonucunu alıp makineden normal çıkış hatlarından kopyaladıktan sonra işlem ters yönde çalıştırılmalıdır. Yani “junk bit”leri ve hesaplama sırasında bilgisayarın aldığı çıktı bitlerini makinenin “arka tarafından” “girdi” olarak kullanırız. Bu mümkündür çünkü her bilgisayar mantık geçidi tersine çevrilebilir. Ters yönde hesaplama sürecinde bilgi kaybı olmaz ve bu nedenle enerjiyi dağıtmaya gerek yoktur. Sonunda bilgisayar, hesaplama başlamadan önceki durumuna geri dönecektir. Bu nedenle, "hesaplama döngüsünü" tamamlamak - bilgisayarı ileri sürmek ve ardından herhangi bir enerji kaybı olmadan orijinal durumuna geri dönmek mümkündür.

Buraya kadar bu işlemleri gerçekleştiren fiziksel cihazlara dokunmadan soyut mantıksal işlemlerden bahsettik. Ancak Fredkin prensibine göre çalışan fiziksel bir cihaz hayal etmek zor değil. Böyle bir cihazda, bilgi iletmek için kanallar tüpler şeklinde sunulur. Buna karşılık, bir miktar bilgi, tüpün belirli bir bölümünde bir topun varlığı veya yokluğu ile temsil edilir. Bir topun varlığı 1, yokluğu 0 olarak yorumlanır.

Kontrol çizgisi, uzunlamasına yönde ortadan bölünmüş, tüpün dar bir bölümü ile temsil edilir. Top, borunun yarık bölümüne girdiğinde, borunun yan duvarlarını birbirinden ayırır, böylece anahtarlama cihazını harekete geçirir. Bu anahtarlama cihazı, diğer iki tüpte olabilen giriş boncuklarını yönlendirir. Kontrol tüpünde bir top olduğunda, giriş hattından gelen herhangi bir top otomatik olarak başka bir tüpe aktarılır. Kontrol borusunda bir bilye olmadığında anahtarlama cihazının kapatıldığından emin olmak için, ikincisinin bölünmüş yarıları yaylarla birbirine bastırılır. Top kontrol borusuna girdiğinde ve yayları sıkıştırdığında, bunu yapmak için biraz enerji harcaması gerekir. Ancak bu enerji kaybolmaz: kontrol topu yarık borudan ayrıldığında ve yaylar serbest kaldığında geri verilir.

Tüm toplar adeta birbirine bağlı ve tek bir mekanizma ile ileri doğru itilerek senkronize hareket ediyorlar; aksi takdirde çeşitli girdi ve kontrol toplarının aynı anda mantık kapısına gelmesini sağlayamazdık. Bir anlamda hesaplama işlemi, aynı dingil üzerinde rijit bir şekilde oturan iki tekerleğin hareketi gibi bir serbestlik dereceli harekete benzer. Hesaplama tamamlandığında tüm topları ters yönde iterek, yol boyunca yapılan tüm işlemleri eleyip bilgisayarı eski haline döndürüyoruz.

Cihaz ideal bir viskoz akışkana tamamen daldırılırsa, bilyelere etki eden sürtünme kuvvetleri hızlarıyla orantılı olacak ve statik sürtünme olmayacaktır. Bu nedenle, topların yavaş hareketinden memnunsak, sürtünme kuvveti çok küçük olacaktır. Herhangi bir mekanik sistemde, sürtünme kuvvetini yenmek için yapılan iş, sürtünme kuvvetinin ürününe ve vücudun kat ettiği mesafeye eşittir. (Dolayısıyla, bir yüzücü belirli bir mesafeyi ne kadar hızlı yüzerse, yüzücünün hızından bağımsız olarak mesafe aynı kalmasına rağmen o kadar fazla enerji harcar.) Toplar Fredkin valflerinden düşük hızda geçerse, o zaman o zaman daha fazla enerji harcar. Sürtünme kuvveti topun hızı ile doğru orantılı olduğundan hareket sırasında yapılan iş (kuvvet mesafesinin ürünü) çok küçük olacaktır. Aslında, hesaplama sürecindeki buna karşılık gelen yavaşlama nedeniyle keyfi olarak çok az enerji harcayabiliriz. Böylece, herhangi bir hesaplamayı gerçekleştirmek için harcanması gereken minimum enerji miktarının olmadığı sonucuna varıyoruz.

Fredkin valfinin idealleştirilmiş bir fiziksel modeli: borular iletken rolünü oynar ve bir topun varlığı veya yokluğu 1 veya 0 olarak yorumlanır. Borunun dar bölünmüş bölümü kontrol kanalıdır. Bir top çarptığında, borunun duvarları, anahtarlama mekanizmasını harekete geçirerek kenarlara doğru uzaklaşır. İkincisi, gelen herhangi bir topu A hattından B hattına aktarır ve bunun tersi de geçerlidir. İki yay, içinde top olmadığında kontrol kanalını kapalı tutar. Böyle bir valf, işlemleri gerçekleştirmek için statik sürtünme gerektirmez. Viskoz bir sıvıya daldırılabilir ve daha sonra sürtünme kuvvetleri yalnızca bilyelerin hızına bağlı olacaktır. Bu durumda, harcanan enerji keyfi olarak küçük olabilir: harcanan enerji miktarını azaltmak için, yalnızca valften geçen bilyelerin hızını azaltmak gerekir.

Bir hesaplama cihazının dikkate alınan modelinde, bu cihaz yeterince yavaş çalışırsa, sürtünmeye kaybedilen enerji çok küçük olacaktır. Sürtünme olmadan hesaplayabilecek daha da idealize edilmiş bir makine modeli oluşturmak mümkün müdür? Yoksa sürtünme, hesaplama sürecinin gerekli bir özelliği midir? Fredkin, T. Toffoli ve MIT'den diğer uzmanlarla birlikte sürtünmenin gerekli olmadığını gösterdi.

Bunu, sürtünme kuvvetlerinin yokluğunda ideal bilardo toplarını birbirine doğru fırlatarak hesaplamaların yapıldığı bir bilgisayar cihazı modelinde gösterdiler. Bilardo modelinde, ideal olarak yansıtıcı “aynalar” - top hareketinin yönünü değiştiren yüzeyler, topların masa üzerindeki hareketi, mantık kapılarından bilgi parçalarının geçişini simüle edecek şekilde yerleştirilmiştir (şekle bakınız). Daha önce olduğu gibi, “bilgisayarın” belirli bir bölümünde bir topun varlığı 1, yokluğu 0 olarak yorumlanır. İki top aynı anda mantık kapısına ulaşırsa çarpışırlar ve yörüngeleri değişir; yeni yollar, geçidin çıktısını temsil eder. Fredkin, Toffoli ve diğerleri, farklı mantık kapılarına karşılık gelen ayna düzenlemeleri geliştirdiler ve herhangi bir bilardo modelinin inşasının mümkün olduğunu kanıtladılar. mantık öğesi hesaplamalar için gereklidir.

Bilardo bilgisayar modeli: Bilardo toplarının masa yüzeyindeki hareketi, bir mantık kapısından bilgi parçalarının geçişini simüle eder. Bilardo mantık kapılarında (solda), topların yörüngeleri birbirleriyle veya "aynalarla" çarpıştığında değişir. Aynalar, valflerdeki işlevlerine ek olarak, topun yörüngesinin açısını değiştirebilir (a), yana kaydırabilir (b), son yönünü veya hızını değiştirmeden topu geciktirebilir (c) veya yörüngelerin kesişmesine neden olabilir. (d). Aynalar, ortaya çıkan “bilgisayar” herhangi bir mantıksal cihazın işlevlerini yerine getirecek şekilde düzenlenebilir. Örneğin, asal sayıları tanımak için bir bilardo bilgisayarı oluşturabilirsiniz. Böyle bir bilgisayar (sağda) rastgele beş basamaklı bir sayıyı kabul eder. ikili numara(bu durumda 01101 veya 13) ve sabit bir 01 giriş dizisi. Fredkin kapısı gibi, bilardo bilgisayarı da kullanıcının ihtiyaç duyduğundan daha fazla çıkış biti döndürür. Bu durumda, orijinal sayının kendisini ("fazla" çıktıyı temsil eder) ve "cevap"ı döndürür: giriş asal ise 10 dizisi ve bileşik ise 01.

Hesaplama işlemini başlatmak için eğer bir birim girmemiz gerekiyorsa bilgisayarın girişine bilardo topunu ateşliyoruz. Toplar aynı anda makineye girmelidir. Toplar tam elastik olduklarından birbirleriyle çarpıştıklarında enerji kaybetmezler. Arabaya girdikleri aynı miktarda kinetik enerji ile arabadan çıkacaklar.

Çalışma sürecinde, bilardo bilgisayarı, tıpkı Fredkin kapıları üzerine kurulmuş bir bilgisayar gibi, "önemsiz bitler" üretir. Bilgisayar görevi tamamlamayı bitirdikten sonra, bilardo toplarını ters yönde yansıtarak hesaplama işlemini tersine çeviriyoruz. Toplar arabadan tam olarak arabaya attığımız yerden çıkacak ve aynı zamanda aynı hızda hareket edecekler. Böylece topları arabaya fırlatan mekanizma artık kinetik enerjilerini geri alabiliyor. Ve bu durumda bir hesaplama yaparak bilgisayarı enerji harcamadan eski haline döndürebiliriz.

Bilardo bilgisayarının önemli bir dezavantajı vardır: en ufak yanlışlıklara karşı son derece hassastır. Top, doğru yönden hafif bir sapma ile gönderilirse veya ayna hesaplanandan biraz farklı bir açıyla döndürülürse, toplar istenen yörüngeden çıkacaktır. Bir veya daha fazla top hesaplanan yoldan sapacak ve bir süre sonra bu hataların birleşik etkisi tüm hesaplama sürecini bozacaktır. Mükemmel elastik, sürtünmesiz toplar yapılabilse bile, topları oluşturan moleküllerin rastgele termal hareketi, birkaç düzine çarpışmadan sonra hatalara neden olmak için yeterli olabilir.

Elbette, yanlış hareket eden bir topu istenen yörüngeye döndürecek düzeltici ekipman kurmak mümkün olacaktır, ancak bu durumda topun önceki durumları hakkındaki bilgilerin imha edilmesi gerekecektir. Örneğin, aynanın doğru konumdan sapma miktarı ile ilgili bilgilerin imha edilmesi gerekecektir. Ancak bir hatayı düzeltmek için bile bilgiden kurtulmak ancak sürtünme kuvvetlerinin olduğu ve enerji kaybının mümkün olduğu bir sistemde mümkündür. Bu nedenle, düzeltici ekipman belirli bir miktarda enerji yaymalıdır.

Bilardo bilgisayar modelinin kullanılmasında karşılaşılan zorlukların birçoğu, bilardo topları yerine elektronlar gibi mikroskobik altı parçacıklar kullanıldığında önlenebilir veya en azından azaltılabilir. Los Alamos Ulusal Laboratuvarı'ndan W. Zurek'in belirttiği gibi, temel parçacıkların durumuna kısıtlamalar getiren kuantum mekaniği yasaları sayesinde parçacıkların hareketindeki küçük sapmalar olasılığı ortadan kaldırılabilir.

Şimdiye kadar akıl yürütmemiz temel olarak klasik dinamiğe dayanmasına rağmen, birkaç araştırmacı kuantum mekaniği ilkelerine dayanan diğer tersine çevrilebilir bilgisayar modelleri önerdiler. İlk olarak Argonne'daki (Fransa) Ulusal Laboratuvardan P. Benioff tarafından önerilen ve diğerleri tarafından, özellikle de California Institute of Technology'den R. Feynman tarafından geliştirilen bu tür makineler, şimdiye kadar yalnızca en genel terimlerle tanımlanmıştır. Özünde, bu bilgisayar modellerindeki parçacıklar, etkileşimlerini yöneten kuantum mekaniğinin kuralları, tersinir mantık kapılarının çıkışlarındaki sinyallerin değerlerini öngören kurallarla tamamen aynı olacak şekilde düzenlenmelidir. Örneğin, bir parçacığın spininin sadece iki tane olabileceğini varsayalım. olası değerler: yön yukarı (ikili 1'e karşılık gelir) ve aşağı (ikili 0'a karşılık gelir). Parçacıkların dönüş değerleri arasındaki etkileşim, belirli bir parçacığın dönüşünün değeri, yakındaki parçacıkların dönüşüne bağlı olarak değişecek şekilde gerçekleşmelidir. Bu durumda parçacığın dönüşü, mantık kapısının çıkışlarından birine karşılık gelecektir.

Yukarıda, esas olarak bilgi işleme hakkında konuştuk. Ancak bilgisayar yalnızca verileri işlemekle kalmamalı, aynı zamanda depolamalıdır. Bilgi depolama ve işleme arasındaki etkileşim belki de en iyi şekilde “Turing makinesi” adı verilen bir cihazla tanımlanır (1936'da böyle bir makineyi ilk kez öneren Alan M. Turing'den sonra). Bir Turing makinesi, modern bir bilgisayar tarafından gerçekleştirilen herhangi bir hesaplamayı yapabilir. S. Benne (bu makalenin yazarlarından biri) bir Turing makinesi inşa etme olasılığını kanıtladı, yani. bilgi kaybetmeyen ve bu nedenle iş sürecinde önceden belirlenmiş küçük miktarda enerji harcayabilen biri.

Bir Turing makinesi, bir bilgisayarın yapabileceği her türlü hesaplamayı yapabilir. Sonsuz uzunlukta bir bant, her biri 0 veya 1 içeren ayrı bölümlere ayrılır. iç durumlar(burada sadece iki durum vardır: A ve B), bant boyunca hareket eder. Her döngü, kafanın bir bant segmentinden bir bit okumasıyla başlar. Ardından, sabit bir dizi geçiş kuralına göre, teyp segmentine biraz veri yazar, dahili durumunu değiştirir ve bir konum sola veya sağa hareket eder. Bu Turing makinesinin yalnızca iki dahili durumu olduğundan, yetenekleri önemsiz hesaplamalarla sınırlıdır. Çok sayıda duruma sahip daha karmaşık makineler, kendilerinden çok daha karmaşık olanı da dahil olmak üzere herhangi bir bilgisayarın davranışını simüle edebilir. Bu mümkündür, çünkü daha büyük bir makinenin mantıksal durumunun tam bir temsilini sonsuz bir bantta depolarlar ve her bir hesaplama döngüsünü çok sayıda parçaya bölerler. basit adımlar. Burada gösterilen makine mantıksal olarak tersine çevrilebilir: her zaman makinenin önceki durumlarını belirleyebiliriz. Farklı geçiş kurallarına sahip turing makineleri mantıksal olarak tersinir olmayabilir.

Bir Turing makinesi birkaç bileşenden oluşur. Bunlardan biri, her biri giriş verileri olan 0 veya 1'i içeren ayrı bölümlere veya segmentlere bölünmüş bir banttır. "Okuma ve yazma kafası" bant boyunca hareket eder. Kafa birkaç işlevi yerine getirebilir - banttan bir bit veri okumak, banda bir bit yazmak ve bir segmenti sola veya sağa hareket ettirmek. Bir sonraki döngünün bir öncekinde ne yapıldığı hakkında bilgi tutması için, kafa mekanizmasının bir dizi "durum" adı verilir. Her durum, başın iç kısımlarının kendi, biraz farklı konfigürasyonunu temsil eder.

Her döngüde, kafa, içinde bulunduğu bant segmentinden biraz okur. şu an yer alır. Ardından yeni bit değerini teybe yazar, dahili durumunu değiştirir ve bir parçayı sola veya sağa hareket ettirir. Yazdığı bitin değeri, geçiş yaptığı durum ve hareket yönü sabit bir dizi geçiş kuralı tarafından belirlenir. Her kural belirli eylemleri tanımlar. Makinenin şu anda hangi kuralı izlediği, kafanın durumu ve banttan okunan bitin değeri tarafından belirlenir. Örneğin, kural şöyle olabilir: “Eğer kafa A durumundaysa ve 0'ın yazıldığı segmentin karşısında bulunuyorsa, bu bitin değerini 1 olarak değiştirmeli, B durumuna gitmeli ve bir segmenti diğer segmente taşımalıdır. Sağ." Başka bir kurala göre, makine durumunu değiştirmemeli veya teybe yeni bir bit yazmamalı, yoksa durmalıdır. Tüm Turing makineleri tersine çevrilebilir değildir, ancak herhangi bir hesaplama yapabilen tersine çevrilebilir bir Turing makinesi yapmak mümkündür.

Tersinir bir Turing makinesine dayanan modeller, bilardo bilgisayarı gibi sürtünmesiz makinelere göre bir avantaja sahiptir. Bir bilardo bilgisayarında, moleküllerin rastgele termal hareketi kaçınılmaz hatalara yol açar. Tersinir Turing makineleri aslında rastgele termal hareket kullanırlar: makineyi bir durumdan diğerine götüren, zayıf bir itici güç tarafından desteklenen termal hareket olacak şekilde tasarlanmıştır. Hesaplama sürecinin gelişimi, zayıf bir elektrik alanındaki bir çözeltideki bir iyonun (yüklü parçacık) hareketine benzer. Bir iyonun davranışını kısa bir süre için gözlemlerseniz, rastgele görünecektir: bir yönde hareket etme olasılığı neredeyse diğeriyle aynıdır. Bununla birlikte, elektrik alanının hareketinden kaynaklanan itici güç, harekete tercih edilen bir yön verir. İyonun bu yönde hareket etme olasılığı biraz daha fazladır. İlk bakışta, hesaplama sürecinin doğasında bulunan amaçlı işlem dizisinin, herhangi bir anda hareket yönü neredeyse rastgele kabul edilebilecek bir aygıt tarafından gerçekleştirilebilmesi inanılmaz görünebilir. Ancak, bu tür eylemler doğada çok yaygındır. Özellikle kimyasal reaksiyonların mikroskobik dünyasında gözlemlenebilir. Deneme-yanılma Brownian hareketi veya rastgele termal hareket, reaksiyona giren moleküllerin temas etmesi, bu reaksiyonun gerektirdiği şekilde kendilerini birbirlerine göre uygun şekilde düzenlemeleri ve reaksiyon ürünleri olan yeni moleküller oluşturmaları için yeterince etkilidir. Prensipte, tüm kimyasal reaksiyonlar tersinirdir: bir reaksiyonun ileri yönde ilerlemesini sağlayan aynı Brown hareketi bazen reaksiyon ürünlerinin ters bir geçişten geçmesine neden olur. Bir denge durumunda, reaksiyonun ters yönü, doğrudan olan kadar olasıdır. Bir reaksiyonun ileri yönde gitmesini sağlamak için, reaksiyona giren molekülleri sürekli olarak eklemeli ve reaksiyonun ürünü olan molekülleri çıkarmalısınız. Başka bir deyişle, küçük bir itici güç uygulamalıyız. Bu kuvvet çok küçük olduğunda, tepki hem ileri hem de geri gidecek, ancak ortalama olarak ileri yönde gidecektir. Bir itici güç sağlamak için enerji harcamalıyız, ancak Fredkin valf tüp ve top modelinde olduğu gibi, enerji miktarı keyfi olarak küçük olabilir. İşlemlerin çok yavaş yürütülmesinden memnunsak, bu işlemler için harcanması gereken minimum enerji miktarı yoktur. Açıklama, harcanan toplam enerji miktarının, ileri yöndeki adım sayısının ters yöndeki adım sayısına bölünmesine bağlı olmasıdır. (Aslında bu oranın logaritması ile orantılıdır; oranın kendisi arttığında veya azaldığında logaritması aynı yönde değişir.) Reaksiyon ileri yönde ne kadar yavaş giderse oran o kadar küçük olacaktır. (Hızlı ve yavaş yüzücüler ile yapılan benzetme burada da geçerlidir: reaksiyon daha yavaş ilerlerse, ara bozunmaların ve bağlantıların sayısı aynı kalmasına rağmen, harcanan toplam enerji miktarı daha az olacaktır.)

RNA polimeraz, tersinir bir bant kopyalama makinesi olarak işlev gören bir enzimdir. DNA'nın bir kopyası olan RNA'nın sentezi için bir katalizördür. DNA zinciri boyunca hareket eden enzim, çevredeki çözeltiden bir nükleosit trifosfat molekülü seçer (her nükleozid trifosfat, bazı RNA bazından, bir şeker molekülünden ve üç fosfat grubundan oluşur), tabanı şu anda DNA bazına tamamlayıcıdır. kopyalanacak. Yapım aşamasında olan RNA zincirinin ucuna yeni bir baz ekler ve pirofosfat iyonunu serbest bırakır. Reaksiyon tersine çevrilebilir: bazen enzim pirofosfatı son RNA bağlantısına bağlar (sonuçta ortaya çıkan nükleozid trifosfat çözeltiye geri döner) ve DNA zinciri boyunca bir pozisyon geriye doğru hareket eder. Reaksiyon kimyasal dengeye yakın olduğunda, enzim ileri atıldığı kadar geri adım atar ve DNA'nın bir parçasını kopyalamak için gereken toplam enerji çok küçüktür. Enerji kaybı ne kadar küçükse, reaksiyon o kadar yavaş ilerler. Bu nedenle, bir DNA segmentini kopyalamak için gereken minimum enerji yoktur.

Bir Brownian Turing makinesinin bir bandı kopyalamak için bir Brownian makinesi örneğini kullanarak nasıl çalıştığını GÖRELİM. Böyle bir makine doğada zaten var. Bu, RNA polimerazdır - genleri oluşturan DNA'nın bir kopyası olan RNA'nın sentezinde yer alan bir enzimdir. Tek sarmallı DNA, Turing makinesinin bandına çok benzer. Öğelerinin her birinde, yani. zincir boyunca her pozisyonda dört nükleotit veya bazdan biri vardır: adenin, guanin, sitozin veya timin (kısaca A, G, C, T). RNA'nın yapısı DNA'ya çok benzer. Aynı zamanda dört tip bazdan oluşan uzun zincirli bir moleküldür - adenin, guanin, sitozin ve urasil (sırasıyla A, G, C ve U). RNA bazları, tamamlayıcı DNA bazlarına bağlanabilir.

RNA polimeraz, DNA üzerinde tamamlayıcı kopyası olan RNA'nın oluşumunu katalize eder. Genellikle, bir sarmal halinde bükülmüş bir DNA çift ipliği, her biri bir ribonükleotit (RNA bazı), bir şeker ve birbirine bağlı üç fosfat grubundan oluşan çok sayıda ribonükleosit trifosfat molekülü içeren bir çözelti ile çevrilidir. diziler. RNA polimeraz, DNA zincirinden şu anda kopyalanacak olan baza tamamlayıcı olan RNA bazlarından birini solüsyondan seçer ve onu büyüyen RNA zincirinin ucuna bağlayarak çevreleyen solüsyona aşağıdaki formda iki fosfat bırakır. bir pirofosfat iyonu. Enzim daha sonra DNA zinciri boyunca bir pozisyon ilerleyerek bir sonraki bazı RNA zincirine eklemeye hazırlanır. Sonuç olarak, şablona tamamlayıcı olan bir RNA zinciri oluşur - DNA zinciri. RNA polimeraz olmadan, bu reaksiyonlar çok yavaş olacaktır ve ortaya çıkan RNA'nın DNA'ya tam olarak tamamlayıcı olduğunun garantisi olmayacaktır.

Tarif edilen reaksiyonlar tersine çevrilebilir: bazen enzim, büyüyen RNA zincirinin son bazına serbest bir pirofosfat iyonu bağlar ve bir ribonükleosit trifosfat molekülü çevreye salınır ve enzimin kendisi DNA zinciri boyunca bir pozisyon geri döner. Bir denge durumunda, ileri ve geri adımlar aynı sıklıkta meydana gelir, ancak canlı bir hücrede, diğer metabolik süreçler, pirofosfatın çıkarılması ve aşırı ribonükleosit trifosfatların yaratılması nedeniyle dengeyi doğrudan bir reaksiyona kaydırır. Laboratuvar koşulları altında, başlangıç ​​reaktiflerinin konsantrasyonunu değiştirerek RNA polimeraz reaksiyonunun hızını kontrol etmek mümkündür (bu, Berkeley'deki California Üniversitesi'nden J. Levin ve M. Chamberlain tarafından kanıtlanmıştır). Konsantrasyonlar dengeye yaklaştıkça, enzim daha yavaş çalışır ve belirli bir DNA parçasını kopyalamada daha az enerji harcanır, çünkü ileri ve geri adımların sayısı küçülür.

RNA polimeraz, bilgiyi işlemeden basitçe kopyalar, varsayımsal bir Turing kimyasal makinesinin nasıl çalışabileceğini hayal etmek zor değil. Bant, 0 ve 1 bitleri olarak yorumlanan, düzenli aralıklarla iki tür bazın eklendiği uzun bir iskelet molekülüdür. Sıfırlar ve birler zincirindeki konumlardan birine başka bir küçük molekül eklenir. Bu molekülün bağlı olduğu konum, Turing makinesinin kafasının bulunduğu bant parçasından başka bir şey değildir. Birkaç farklı "kafa molekülü" türü vardır. Her tür, makinenin olası dahili durumlarından birini temsil eder.

Makinenin geçiş kuralları enzimlerle temsil edilir. Her enzim, belirli bir reaksiyon için bir katalizördür. Bu enzimlerin nasıl çalıştığını daha iyi anlamak için bir örnek düşünün.

Baş molekülün tipte olduğunu varsayalım. ANCAK (makinenin durumda olduğu anlamına gelir ANCAK ) ve sıfır tabanına bağlı. Ayrıca aşağıdaki geçiş kuralının geçerli olduğunu varsayın: “Baş, durumdayken ANCAK ve 0 okur, 0'ı 1 ile değiştirin, duruma gidin AT ve sağa hareket edin. Bu kuralı temsil eden enzim molekülü, tipte bir baş molekülün bağlanması için uygun bir yere sahiptir. ANCAK taban 1'e bağlanır. Ayrıca taban 0'ı takmaya uygun bir yeri ve kafa tipine uygun bir yeri vardır. AT (resmi görmek).

Gerekli geçişi yapmak için, enzim molekülü önce tip başlığın halihazırda bağlı olduğu tabanın hemen sağındaki bant üzerindeki pozisyona yaklaşır. ANCAK . Daha sonra hem baş molekülü hem de başın bağlı olduğu taban 0'ı banttan ayırır ve taban 1'i yerlerine koyar. AT sadece banda bağlı tekli tabanın sağındaki tabana. Bu geçişi tamamlar. Orijinal bant segmentinde 0, 1 ile değiştirilmiştir, baş molekül artık tiptedir. AT ve tabana bağlı, orijinalin sağında bir konum bulunur.

Varsayımsal bir Turing enzim makinesi, keyfi olarak az miktarda enerji ile bir hesaplama yapabilir. 0 ve 1 bitlerini temsil eden moleküller, omurga molekülüne bağlanır. Turing makinesinin başını temsil eden molekül, zincirdeki (7) konumlardan birine bağlıdır. farklı şekiller kafa molekülleri, makinenin farklı durumlarını temsil eder. Geçiş kuralları enzimlerle temsil edilir. Her döngüde enzim baş ve baş ile ilişkili bit molekülüne (2) bağlanır, onları zincirden ayırır ve istenilen bit molekülünü yerine (3) koyar. Bunu yaparken döner ve uygun baş molekülü yeni değiştirilenin sağındaki veya solundaki bir sonraki bit'e bağlar. Döngü şimdi tamamlandı (4): bitin değeri değişti, kafa durumu değişti ve hareket etti. RNA sentezi gibi reaksiyonlar, keyfi olarak küçük bir enerji miktarını dağıtabilir.

Turing'in Brownian makinesi, birbirine sıkıca oturmayan ve istenen konumda sürtünme ile değil, bir oluk ve diş sistemi ile desteklenen sert, pürüzsüz parçalardan oluşan bir saat mekanizmasıdır. Parçaların serbest bağlantısına rağmen, yalnızca ileri veya geri yönde hesaplama adımına karşılık gelen büyük ölçekli hareketi yapabilirler, yani sadece bir “hesaplama yolu” izleyebilirler. Mekanizma, çok zayıf bir dış kuvvet tarafından hafifçe itilir, bu nedenle ileriye doğru hareket etme olasılığı, geri hareket etme olasılığı ile hemen hemen aynıdır. Ancak ortalama olarak makine ilerleyecek ve sonunda hesaplama tamamlanacaktır. Bir makine, itici güçte karşılık gelen bir azalma ile keyfi olarak küçük miktarda enerji harcayacak şekilde yapılabilir.

Bant segmentleri yivli disklerle temsil edilir ve bitler, diske üst (7) veya alt (0) konumda bağlanan E-şekilli bloklarla temsil edilir. Kafa, karmaşık bir mekanizmayla (çoğu burada gösterilmemiş olan) birbirine bağlı sert parçalardan oluşur. Bir okuma elemanı, bir manipülatör ve bir tornavida şeklinde bir çubuk ondan asılır. Makine, bir fonografta (sol üstte, derin sağda) kayıtları çalmak için kullanılan bir silindire benzer şekilde, yüzeyine yivler uygulanmış bir silindir tarafından kontrol edilir. Farklı oluklar, başın farklı durumlarına karşılık gelir.

Döngünün başlangıcında, kafa disklerden birinin üzerinde bulunur ve "iğne", makine kafasının mevcut durumuna karşılık gelen kontrol silindiri oluğunun "okuma" bölümündedir. Döngünün (7) “okuma” aşaması sırasında, okuyucu “engel okuma” prosedürünü (orta sağ) gerçekleştirerek biti temsil eden bloğun yukarı mı yoksa aşağı mı döndürüleceğini belirler. Okuyucu eleman blok boyunca üst veya alt yol boyunca geçer. Bu yollardan birinde, bloğun sonunda bir çıkıntı şeklinde bir engelle karşılaşması gerekir, böylece sadece bir yol mümkün kalır. Bu "karar"a karşılık gelen kontrol silindiri noktasında, oluklar dallanır ve iğne, bitin (2) değerine karşılık gelen oyuğa yönlendirilir. Kontrol silindiri daha sonra iğne "yazma" segmentine (3) ulaşana kadar döner. Burada her bir oluk, iğne ile mekanizmanın geri kalanı arasında karmaşık bir bağlantı kullanılarak makineye iletilen kendi "talimatlarını" içerir.

Talimat bir bit değerinin değiştirilmesini gerektiriyorsa, manipülatör çalıştırılır ve bloğun pabucuna kancalanır, ardından tornavida blok serbest kalana kadar diski döndürür, manipülatör bloğu yukarı veya aşağı çevirir ve tornavida tekrar döner disk, blok yerinde olacak şekilde. Kontrol silindirinin “yaz” segmentini geçtikten sonra iğne “kaydırma” segmentine (4) girer. Bu segmentteki her oluk, kafayı bir pozisyon sola veya sağa hareket ettirmek için bir talimat içerir. Daha sonra iğne, olukların birleştiği bir "durum değişikliği" segmentine (5) girer, böylece iğne, başın bir sonraki durumunu temsil eden oluğa girer. Döngü şimdi tamamlandı (6). Halihazırda okunmakta olan diske bitişik diskler, kafa tarafından yerinde tutulur. Daha uzaktaki diskler özel bir “kilit” ile kilitlenir. Her diskin kilidi, komşu diskin Q-biti adı verilen özel bir bit ile ilişkilidir. Bu bağlantının düzeni, o anda okunmakta olan diskin serbest bırakılacağı ve hareket ettirilebileceği şekildedir, bundan daha uzaktaki diskler hem sola hem de sağa sabit bir durumda tutulur.

Brownian Turing makinesinin çalışması için, bant, birçok enzim molekülü içeren bir çözeltinin yanı sıra yeterli miktarda "sıfır", "birler" ve "kafalar" gibi bir çözeltiye daldırılmalıdır. ANCAK ve AT . Reaksiyonun ileri yönde ilerlemesi için, enzim moleküllerini banttan ayrılan kafa ve bazlardan arındıracak başka bir reaksiyona ihtiyaç vardır. Enzimlerin moleküllerini saflaştıran maddelerin konsantrasyonları, Turing makinesinin ileri yönde çalışmasını sağlayan itici güçtür. Yine, makine işlemleri yeterince yavaş yaparsa, keyfi olarak az miktarda enerji harcayabiliriz.

Enzim tabanlı bir Turing makinesi hatasız olmayacaktır. Zaman zaman enzimler tarafından katalizlenmeden meydana gelen reaksiyonlar meydana gelebilir. Örneğin baz 0, iskelet molekülünden kendiliğinden ayrılabilir ve baz 1 onun yerini alabilir. Aslında, bu tür hatalar RNA sentezi sırasında meydana gelir.

Prensipte, bir Brownian Turing makinesini katı, kesinlikle pürüzsüz bir saat çalışması temelinde inşa ederek bu hatalardan kurtulabiliriz. Böyle bir Turing makinesi, bir bilardo bilgisayarından daha az idealize edilmiş, ancak bir enzim makinesinden daha idealize edilmiştir. Bir yandan, bilardo topları için gerekli olduğu gibi, parçaları kesinlikle hassas işleme gerektirmez, saat parçaları bazı toleranslara sahip olabilir ve makine önemli termal gürültü varlığında bile çalışabilir. Yine de makine kesinlikle rijit olmalı ve statik sürtünmeden uzak olmalıdır ve hiçbir makroskopik gövde bu niteliklere sahip değildir.

Makinenin parçaları birbirine sıkıca oturmadığından, sürtünme ile değil, bir oluk sistemi - oluklar ve dişler ile yerinde tutulurlar (şekle bakın). Makinenin her bir parçasının, tahta bir yapbozun parçaları gibi az miktarda serbest oynaması olmasına rağmen, mekanizma genel olarak yalnızca bir “hesaplama yolu” izleyebilir. Başka bir deyişle, parçalar, herhangi bir zamanda makinenin yalnızca iki tür büyük ölçekli hareketi gerçekleştirebileceği şekilde birbirine kenetlenir: ileri yönde hesaplama adımına karşılık gelen hareket ve hareket yönündeki hareket. ters yön.

Bilgisayar, zayıf bir dış kuvvetin etkisiyle, yalnızca parçalarının rastgele termal hareketinin bir sonucu olarak bu iki hareket türü arasında geçiş yapar. Son işlemin sonuçlarını ortadan kaldırarak ters yönde hareket etme olasılığı, ileri yönde hareket etme olasılığı ile hemen hemen aynıdır. Dışarıdan uygulanan küçük bir kuvvet, hesaplamaları ileriye doğru iter. Ve yine bu kuvvet keyfi olarak küçültülebilir; ve dolayısıyla Turing makinesini saat esasına göre çalışır durumda tutmak için gereken minimum enerji yoktur.

Bu nedenle, klasik termodinamik nedenleriyle, hesaplamalar için gerekli minimum enerji yoktur. O halde termodinamik analiz kuantum mekaniği ile çelişmiyor mu? Sonuçta, kuantum mekaniksel belirsizlik ilkesine göre, sürecin ne kadar süreceği konusundaki belirsizlik derecesi ile bu süreçte harcanan enerji miktarı hakkındaki belirsizlik derecesi arasında ters bir ilişki olmalıdır. Bu nedenle bazı araştırmacılar, çok kısa bir süre içinde gerçekleşen herhangi bir geçiş sürecinde, bir miktar minimum enerjinin harcanması gerektiğine inanmaktadır.

Aslında, belirsizlik ilkesi, hızlı bir anahtarlama olayı için herhangi bir sonlu enerji minimumu gerektirmez. Belirsizlik ilkesi, yalnızca bir olayın meydana geldiği zamandaki tam anı ölçmeye çalıştığımızda geçerli olacaktır. Kuantum mekaniği yasalarına göre bile, herhangi bir enerji kaybı olmadan son derece hızlı olaylar meydana gelebilir. Kuantum mekaniğinin keyfi olarak az miktarda enerji ile hesaplamalara izin verdiğine olan inancımız, Benioff ve diğerleri tarafından geliştirilen tersine çevrilebilir kuantum mekanik bilgisayar modelleri tarafından doğrulanmaktadır. Bu modeller enerjiyi dağıtmaz ve kuantum mekaniğinin yasalarına uymaz.

Bu nedenle, belirsizlik ilkesinin hesaplama sürecine temel kısıtlamalar getirmediği görülmektedir. Klasik termodinamik de onları dayatmaz. Bu, bilgi işlemin hiçbir fiziksel sınırı olmadığı anlamına mı geliyor? Hayır, bu gerçek olmaktan uzak. Gerçek sınırlamalar, yanıtlaması bu makalede ortaya koyduğumuz ve ele aldığımız sorulardan çok daha zor olan sorularla ilgilidir. Örneğin, ilköğretim yapın mantıksal işlemler bazı minimum bitiş zamanı? Bu tür işlemleri gerçekleştirebilecek bir cihazın minimum boyutları nelerdir? Boyut ve zaman ölçekleri ışığın sonlu hızıyla ilgili olduğundan, bu soruların yanıtlarının bir şekilde birbiriyle bağlantılı olduğu görülüyor. Bununla birlikte, evrensel uzunluk ve zaman ölçeğinde bazı temel ayrıklığın olup olmadığı sorusu çözülmeden, her halükarda bu cevapları bulamayacağız.

Sorunun diğer ucunda, bilgisayar belleğini ne kadar büyük hale getirebileceğimiz sorusu var. Bu amaçlar için evrende kaç tane parçacık toplayabilir ve birleştirebiliriz? Gerçek şu ki, mümkün olan maksimum bilgisayar belleği boyutu, hesaplamaların gerçekleştirilebileceği doğruluk konusunda bir sınır getirir. Örneğin, p'nin hesaplanan değerindeki ondalık basamak sayısı sınırlı olacaktır. Muhtemelen ikincisi ile ilgili bir başka soru, gerçek bilgisayarlarda yaşlandıkça meydana gelen kaçınılmaz bozulma süreçleriyle ilgilidir. Hataların yıkım ve birikim oranını keyfi olarak küçük değerlere düşürmek mümkün müdür, yoksa bu oran hesaplamanın maksimum süresine bir sınırlama getiriyor mu? Başka bir deyişle, bilgisayarın maddi kısmı kullanılamaz hale gelmeden tamamlanamayan herhangi bir hesaplama görevi var mı?

Aslında, bu tür sorular, matematiksel işlemlerin fiziksel olarak yürütülmesine ilişkin kısıtlamalarla ilgilidir. Cevapların nihai olarak dayandırılması gereken fiziksel yasalar, bu tür matematiksel işlemler aracılığıyla ifade edilir. Bu nedenle, kendimize, bu yasalarla tanımlanan evrenin özelliklerinin getirdiği kısıtlamalar altında fiziksel yasaların hangi biçimde uygulanabileceği sorusunu soruyoruz.