Mikrodenetleyicilerin neden bir Saat'e ihtiyacı var?


31

Talimatların neden ayarlanan zaman aralıklarında (örneğin bir saat kullanımıyla) işlenmesi gerekiyor? Sıralı olarak yürütülemiyorlar mı - önceki talimat tamamlandıktan hemen sonra mı?

Mikrodenetleyicilerde saatlerin gerekliliği için bir benzetme özellikle yararlı olacaktır.


6
Asenkron işlemciler var.
Leon Heller,

6
"Önceki talimat tamamlandığında" nasıl belirlenir? Düşünürseniz, "Önceki talimatı tamamladı mı?" hesaplama tamamlandı ve "önceki talimat tamamlandı mı?"
user253751

4
Mantık kapıları ne zaman yapıldıklarını söylemezler. Sinyal, sabit bir değere yerleşmeden önce bir süre için belirsizdir. Temelde saat, tasarımın mantığın ne zaman doğru bir değere oturduğunu bilmesini sağlar. Mikroyapılar gibi gelişmiş stratejiler, makine talimatlarını daha küçük parçalara bölerek yardımcı olur, böylece bir ADD 4 saat tıklatması alabilirken, hafıza erişimi yüzlerce onay alabilir.

Yanıtlar:


31

Açıklayıcı bir örnek veya iki burada yardımcı olabilir. Aşağıdaki varsayım devresine bir göz atın:

şematik

bu devreyi simüle et - CircuitLab kullanılarak oluşturulan şematik

Hem A hem de B'nin yüksek olduğunu varsayalım (1). Bu nedenle, AND çıktısı 1'dir ve XOR'a her iki giriş de 1 olduğundan, çıkış 0'dır.

Mantıksal öğeler durumlarını anında değiştirmez - girdideki değişiklik işlenirken küçük ancak önemli bir yayılma gecikmesi vardır. B'nin azaldığını varsayalım (0). XOR, yeni durumunu ikinci girişinde anında görüyor, ancak ilk giriş hala VE geçidinden 'eski' olan 1'i görüyor. Sonuç olarak, çıkış kısa bir süre artar - ancak sinyal AND geçidi boyunca yayılana kadar, her iki girişi de XOR'a düşük hale getirir ve çıkışın tekrar düşük olmasına neden olur.

Bu aksaklık, devrenin çalışmasının istenen bir parçası değildir, fakat bunun gibi aksaklıklar, mantığın miktarından, hatta kabloların sadece uzunluğundan dolayı devrenin farklı bölümlerinde yayılma hızında bir fark olduğu zaman meydana gelecektir. .

Bunu yapmanın gerçekten kolay bir yolu, kombinatoryal mantığınızın çıkışına kenardan tetiklenen bir flipflop koymaktır, şöyle:

şematik

bu devreyi simüle et

Şimdi, meydana gelen herhangi bir aksaklık, sadece saat 0'dan 1'e giderken durumunu güncelleyen flipflop tarafından devrenin geri kalanından gizlenir. Yükselen saat kenarları arasındaki aralık sinyallerin tümüyle yayılması için yeterince uzun olduğu sürece kombinasyonel mantık zincirleri boyunca, sonuçlar güvenilir bir şekilde deterministik ve hatasız olacaktır.


6
Hemen hemen hemen yayılma gecikmesinden bahsettiğiniz için teşekkür ederiz, bu muhtemelen cevabın% 99'udur.

1
Bunun çalışan bir örneği Microchip (ve diğer) mikrodenetleyicilerin dijital G / Ç çevre birimlerinde gözlemlenebilir. Ardışık Okuma-Değiştirme-Yazma talimatlarını kullanarak çıkışları (LATCH yerine) güncellemek için PORT kayıtlarını kullanırsanız, durum değişirken pimin durumunu okumak mümkündür. Daha fazla ayrıntı için dsPIC33E / 24E belgelerinin 10.2.2 bölümüne bakın .
Evil Dog Pie

Sıralı devrelerin kritik olarak sadece aksaklıklar alacağı için değil aynı zamanda bu aksaklık nedeniyle bazı parmak arası terliklerin yanlış değeri depolamasıyla sonuçlanabileceği için zamanlamaya ihtiyacı olduğunu doğru muyum?
lakesare

20

Bu cevapların çoğunun asıl soruya tam olarak vuramadığını hissediyorum. Mikro denetleyicinin, bir ardışık mantığı yürüttüğü (ve sürdüğü) bir saati vardır .

Dijital devre teorisinde, sıralı mantık, çıktısı yalnızca giriş sinyallerinin bugünkü değerine değil, geçmiş girişlerin sırasına, giriş geçmişine bağlı olan bir mantık devresi türüdür. Bu, çıktısı yalnızca mevcut girdinin bir işlevi olan birleşimsel mantığın aksinedir. Diğer bir deyişle, sıralı mantık birleşimsel mantık olmasa da bir hal (belleğe) sahiptir. Veya başka bir deyişle, sıralı mantık, hafıza ile birleşik mantıktır.

Ayrıca:

Senkron mantığın en büyük avantajı sadeliğidir. Veri üzerinde işlem yapan mantık geçitleri, girdilerindeki değişikliklere cevap vermek için sınırlı bir süre gerektirir. Buna yayılma gecikmesi denir. Saat darbeleri arasındaki aralık, tüm mantık kapılarının değişikliklere cevap vermek için zamana sahip olması ve çıkışlarının, bir sonraki saat darbesi gerçekleşmeden önce, kararlı mantık değerlerine "yerleşmesi" için yeterince uzun olmalıdır. Bu koşul gerçekleştiği sürece (bazı diğer ayrıntıları göz ardı ederek) devrenin kararlı ve güvenilir olması garanti edilir. Bu, senkron bir devrenin maksimum çalışma hızını belirler.


15

Kısa cevap: yöneticiler, bir tasarıma milyonlarca (veya daha fazla) dolar vermeden önce basit, test edilebilir bir fonksiyon PROOF'u isterler. Mevcut araçlar, asenkron tasarımları sadece bu cevapları vermemektedir.

Mikrobilgisayarlar ve mikrodenetleyiciler tipik olarak zamanlama kontrolünü güvence altına almak için bir saat düzenini kullanır. Tüm işlem köşeleri, sinyal yayılma hızları üzerindeki tüm voltaj, sıcaklık, işlem vb. Etkiler boyunca zamanlamayı korumak zorundadır. Orada hiçbir geçerli mantık kapıları anında değişir: Her kapı sunulmadan gerilime bağlı anahtarları, bu alır mesafede bulunan tesis, sürücüleri yük ve kullanılan cihazların boyutu, bunu yapmak (ve tabii ki süreç düğümün (cihaz boyutu) yapılır ve BU işlemin ne kadar hızlı gerçekleştiği --- BU fab içinden geçer). "Anlık" anahtarlamaya geçmek için, kuantum mantığını kullanmanız gerekir ve bu kuantum cihazlarının anında değişebileceğini varsayar; (Emin değilim).

Saatli mantık, işlemcinin tamamındaki zamanlamanın beklenen voltaj, sıcaklık ve işlem değişkenleri boyunca çalıştığını kanıtlar. Bu zamanlamayı ölçmeye yardımcı olan birçok yazılım aracı vardır ve net süreç "zamanlama kapatması" olarak adlandırılır. Teneke Clocking (ve benim deneyim, yok ) bir mikroişlemci kullanılan gücün 1/2 1/3 arasında bir yerde alır.

Öyleyse neden asenkron tasarım değil? Bu tasarım stilini desteklemek için, varsa, zamanlama kapatma araçları çok azdır. Varsa, büyük bir asenkron tasarımla başa çıkabilen ve yönetebilen otomatik bir yer ve rota aracı vardır. Başka bir şey değilse, yöneticiler basit, bilgisayar tarafından üretilen, işlevselliği PROOF'u olmayan hiçbir şeyi onaylamaz.

Asenkron tasarımın, "çok daha fazla transistör" gerektiren "ton" senkronizasyon sinyalleri gerektirdiği yorumu, global bir saati yönlendirme ve senkronize etme maliyetlerini ve saat sisteminin ihtiyaç duyduğu tüm flip-flopların maliyetini göz ardı eder. Eşzamansız tasarımlar, saatlerine göre benzerlerinden daha küçük ve daha hızlıdır. (Biri basitçe ONE en yavaş sinyal yolunu kullanır ve bunu önceki hazırlığa "hazır" bir sinyal geri beslemek için kullanır).

Eşzamansız mantık daha hızlıdır, çünkü başka bir yerde başka bir blok için uzatılması gereken bir saati beklemek zorunda kalmaz. Bu özellikle kayıt-mantık-kayıt fonksiyonlarında doğrudur. Eşzamansız mantık, birden fazla "kurulum" ve "tutma" sorununa sahip değildir, çünkü yalnızca bitişik lavabo yapılarının (yazmaçların), mantık yayılımını geciktirmek için gecikme alanlarına serpiştirilmiş serpiştirmeler ile serpiştirilmiş pipetli bir mantık setinin aksine bu sorunları vardır. sınırları.

Yapılabilir mi? Kesinlikle, bir milyar transistör tasarımında bile. Daha mı zor? Evet, ancak bunun yalnızca bütün bir çipte (veya hatta sistemde) çalıştığını kanıtladığından çok daha fazla ilgili. Kağıt üzerinde zamanlamayı almak , herhangi bir blok veya alt sistem için oldukça doğrudandır. Bu zamanlamayı otomatik bir yer ve rota sisteminde kontrol ettirmek çok daha zordur, çünkü takımlama çok daha büyük potansiyel zamanlama kısıtlamaları setini işlemek için ayarlanmamış.

Mikrodenetleyiciler ayrıca , bir mikroişlemcinin tüm karmaşıklığına eklenen (nispeten) yavaş harici sinyallere arayüz oluşturan potansiyel olarak büyük bir başka blok kümesine sahiptir . Bu zamanlamayı biraz daha fazla dahil eder, ancak fazla yapmaz.

Bir "ilk gelene" "kilitleme" sinyal mekanizmasının elde edilmesi bir devre tasarımı sorunudur ve bununla baş etmenin bilinen yolları vardır. Yarış koşulları 1 bir işaretidir). zayıf tasarım uygulaması; veya 2). harici sinyaller işlemciye geliyor. Clocking aslında "kurulum" ve "bekletme" ihlalleriyle ilgili bir saat-saati yarış koşulunu ortaya koyuyor.

Ben şahsen, eşzamansız bir tasarımın nasıl durduğunu ya da herhangi bir yarış koşuluna nasıl girebileceğini anlamıyorum . O kadar da iyi olabilir benim sınırlama, ancak işlemcinin içine giren verilere inmezse beri, o zaman bile iyi tasarlanmış bir mantık sisteminde mümkün ve ASLA olabilir sinyaller girerken başa tasarımı gibi olur.

(Umarım bu yardımcı olur).

Bütün bunlar, eğer paran varsa ...


Elbette, inşa ettiğiniz yongaya bağlı - örneğin sinirsel ağ donanımları asenkron olma eğilimindedir, çünkü bu aslında en kolay şey - taklit ettikleri şey asenkron . Çoğunlukla eşzamanlı ardışık donanım üretiyoruz, çünkü yazılım / ürün yazılımı da çoğunlukla eşzamanlı ve diziseldir (özellikle "sıralı" kısımda - eşzamansız kod daha sık kullanılır). Aslında, başınızı sıralı, senkronize bir sistemin etrafına sarmak, özellikle çoğu programlama sıralı kodu teşvik eden dillerde yapıldığında çok daha kolaydır.
Luaan

Gerçek dünyadaki olaylar tahmin edilemez zamanlarda olur. Bir aygıtın bir düğmesi varsa ve "yeterince yakında" basılırsa bir kod yolunu yürütmesi ve daha sonra kuantum-mekanik sınırlamaların olmaması durumunda, düğmeye basarken bir dakika arasında başka bir kod yolu yürütmesi gerekiyorsa bir düğmeye basmanın alternatif kod yolunu tetikleyecek kadar yakında gerçekleşeceği ve bir düğmeye basmanın "çok geç" olacağı bir an, bir düğmeye basmanın ikisi arasında "davranışa" neden olacağı kesin bir an olacaktır (örneğin, program sayacının bazı parçalarının değişmesine neden oluyor ...
supercat

... ama diğerleri değil). Kuantum-mekanik sınırlamaların yokluğunda, itmenin dallanmaya neden olduğu son an ile bir itmenin temiz bir şekilde yapamadığı ilk an arasındaki süre keyfi olarak küçük yapılabilir ancak sıfıra indirgenemez. Kuantum-mekanik sınırlamalar, herhangi bir düğmeye basmanın kayıt için yeterince erken veya temiz bir şekilde başarısızlığa uğramak için yeterince geç olabileceğini, ancak ölümcül ara zamanda bir düğmeye basılmasını sağlayacak bir kuantum durumunun olmayacağını kanıtlayabilir. olurlu.
Supercat,

Eşzamanlı mantığın kullanılması, yarış koşullarının genel cihazın çok küçük bir kısmından kaçma olasılığının çok düşük olmasını sağlayacak şekilde, sistemin gerçekten eşzamansız bir olaya cevap vermesi gereken durumların analizini büyük ölçüde basitleştirir. Yarış koşullarının kaçma ihtimalini kaybetmediğinden emin olmak için cihazın küçük bir kısmının analiz edilmesi, yarış koşullarının hemen hemen her yerde gerçekleşmesine izin vermek ve etkilerini kabul edilemeyecekleri bir sorun yaratmayacaklarını kanıtlamak için etkilerini analiz etmeye çalışmaktan çok daha fazla izlenebilir bir sorun olabilir.
Supercat,

10

Mikrodenetleyicilerin bir saat kullanmaları gerekir, çünkü kontrolörlerin kendileri tarafından üretilen diğer harici olaylarla veya olaylarla neredeyse aynı anda olmak üzere herhangi bir zamanda meydana gelebilecek olaylara cevap verebilmeleri gerekir ve genellikle kontrol edip etmeyeceklerini bilmeleri gereken birden fazla devreye sahip olacaklardır. bir olay X, bir başka olay Y'den önce gelir. Bu tür tüm devrelerin X'in Y'den önce geldiğine karar vermesi önemli değildir veya tüm bu tür devreler, X'in Y'den önce gelmediğine karar verir, ancak genellikle devrelerin herhangi birinin X'in önceliğine karar vermesi kritik öneme sahiptir. Y, o zaman herkes böyle yapmalı. Maalesef, devrelerin sınırlı bir süre içinde X'in Y'den önce gelip gelmediği konusunda güvence altına alınmış bir fikir birliğine ulaşmasını veya hatta bir fikir birliğine ulaşıp ulaşmadıklarına dair bir fikir birliğine ulaşmasını sağlamak zordur. Senkron mantık buna çok yardımcı olabilir.

Devreye bir saat eklemek, sisteme bir girişin saate göre çok küçük bir pencerede değişmediği sürece bir alt sistemin herhangi bir yarış koşuluna maruz kalmayacağını garanti etmeyi ve bir cihazın çıktısının bir diğerine beslenip beslenmeyeceğini garanti etmeyi mümkün kılar. ilk cihaza gelen girdi daha küçük bir kritik pencere içinde değişmedikçe, birinci cihazın çıkışı ikinci cihazın kritik penceresinde değişmeyecektir. Bu ilk cihaza önce başka bir cihaza eklenmesi, cihaza gelen cihaza yapılan girişin o küçük pencerede değişmemesini sağlayacaktır. Uygulamalı bir bakış açısına göre, kasten bir fikir birliği başarısızlığına neden olmaya çalışmadığı sürece,

"Mümkün olduğu kadar çabuk" çalışan tam eşzamanlı olmayan sistemleri tasarlamak kesinlikle mümkündür, ancak bir sistem son derece basit olmadıkça, bir tasarımın yarış koşuluyla tetiklenmesini önlemek zor olacaktır. Saat gerektirmeden yarış koşullarını çözmenin yolları olsa da, yarış koşulları genellikle onlar olmadan olduğu gibi saatler kullanılarak çok daha hızlı ve kolay bir şekilde çözülebilir. Asenkron mantık genellikle saat hızına mantığı daha hızlı çözülmesine yarış koşullarına mümkün olsa da, o kadar büyük bir sorun oluşturacağını yok edemez durumlar, özellikle de bir sistem ulaşmak konsensüs bölümlerini sahip zorluğunu verilen olsun ya da olmasın ulaştığı uzlaşmaya. Kesit başına bir milyon talimatı sürekli olarak çalıştırabilecek bir sistem genellikle saniyede dört milyon talimat çalıştırabilecek olandan daha faydalı olacaktır, ancak yarış koşulları nedeniyle bir anda (veya daha uzun süre) milleconds (veya daha uzun) sürebilir.


Karar verilen devletlerin aynı içsel de olabileceğine dikkat çekmek önemlidir - bir aritmetik işlemin sonucu gibi. Hat uzunluğundan kaynaklanan gecikmeler, MCU’nun bir kısmının sonucu görmesine neden olabilir - ve saat olmadan, diğer parçalardan önce.
Nick Johnson,

@NickJohnson: İşlemlerin gerçekleştirildiği sıra, henüz hesaplanmamış işlemlere asla bağlı değilse, ALU gibi her bölümün "geçerli" girişleri ve "geçerli" bir çıktısı varsa ve işler geçerliyse, bu sorunlar sorunsuz bir şekilde çözülebilir deterministik bir sırada gerçekleşecek şekilde düzenlenebilir. Tekerleğin düştüğü yerde işlemlerin gerçekleştiği sıra zamanlamaya bağlı olmalıdır (örneğin, eğer bir paylaşımlı hafıza veri yolu kullanması gereken bir dizi paralel işlem varsa ve bunlardan ikisi eşzamanlı olarak yakın talepler yayınlarsa) önce gitmeli ...
supercat

... ve hangisinin beklemesi gerektiği anlaşılmaz olabilir. Biri hangisinin önce gideceğine karar verirse, bu tür problemlerden kaçınılabilir, ancak ilk önce belirlenen ünitenin diğerinden çok uzun zamana kadar hazır olmadığı ortaya çıkarsa, performans ciddi şekilde zarar görebilir. .
supercat

Bu yüzden uzaya gitmek çok zor, olasılıklar olumsuz yönde değişiyor.
Magic Smoke

6

MCU'lar senkron sıralı mantık devresinin sadece çok karmaşık bir örneğidir. En basit şekli muhtemelen saatli D-flip-flop'tur (D-FF), yani senkron bir 1 bit bellek elemanıdır.

Eşzamansız bellek elemanları, örneğin, D-FF'nin eşzamansız eşdeğeri olan D-mandalı vardır. Bir MCU, tonlarca mantık kapısına yapıştırılmış milyonlarca temel bellek öğesinden (D-FF) daha fazla bir şey değildir (aşırı basitleştiriyorum).

Şimdi şu noktaya gelelim: MCU'lar neden D-mandalları yerine D-FF'leri dahili olarak bellek elemanları olarak kullanıyorlar? Temel olarak güvenilirlik ve tasarım kolaylığı için: D-mandallar, girişleri değiştikçe tepki verir ve çıkışları olabildiğince hızlı bir şekilde güncellenir. Bu, bir mantık devresinin farklı bölümleri arasında istenmeyen istenmeyen etkileşimler sağlar (istenmeyen geri besleme döngüleri ve yarışlar). Eşzamansız yapı taşlarını kullanarak karmaşık bir sıralı devre tasarlamak, doğası gereği daha zordur ve hataya açıktır. Senkron devreler, saat kenarları tespit edildiğinde yapı taşlarının çalışmasını zaman izleyicileri ile sınırlandırarak bu tuzaklardan kaçınır. Kenar bir senkron mantık devresi geldiğinde verileri girişlerinden alır, ancak henüz çıkışlarını güncellemez. Girişler elde edilir edilmez çıkışlar güncellenir. Bu, bir çıkış sinyalinin tamamen alınmamış bir girişe geri beslenmesi ve işleri karıştırması riskini önler (sadece söylenir).

Çıktıların güncellenmesinden girdi verilerinin “ayrıştırılması” stratejisi, verilen tasarım çabası için daha karmaşık sistemlerde çeviri yapan daha basit tasarım tekniklerine izin verir.


5

Tanımladığınız şeye senkronize olmayan mantık denir . İşe yarayabilir ve bunu yaptığında genellikle daha hızlıdır ve senkronize (saatli) mantığa göre daha az güç kullanır. Ne yazık ki, zaman uyumsuz mantığın yaygın olarak kullanılmasını önleyen bazı sorunları vardır. Gördüğüm en temel şey, bir ton bağımsız senkronizasyon sinyaline ihtiyaç duyduğunuzdan uygulanması daha çok transistör gerektirmesidir. (Mikrodenetleyiciler, CPU'larda olduğu gibi paralel olarak çok fazla iş yaparlar.) Bu, maliyeti artıracaktır. İyi tasarım araçlarının eksikliği büyük bir ön engeldir.

Mikrodenetleyiciler muhtemelen çevre birimlerinin genellikle zamanı ölçmesi gereken saatlere ihtiyaç duyacaklardır. Zamanlayıcılar ve PWM'ler sabit zaman aralıklarında çalışır, ADC örnekleme hızları bant genişliğini etkiler ve CAN ve USB gibi asenkron iletişim protokolleri saat kurtarma için referans saatlere ihtiyaç duyar. Genellikle CPU'ların olabildiğince hızlı çalışmasını istiyoruz, ancak bu her zaman diğer dijital sistemler için geçerli değildir.


3

Aslında Tam bir birim olarak MCU gören, ancak gerçek şu ki kendisi saat sinyali ayrı ayrı farklı kapıları ve TTL ve RTL lojik en sıklıkla FF dizinin tüm ihtiyaç yapılmış olmasıdır

Daha spesifik olmak gerekirse yaklaşık basit bir adrese erişime düşünüyorum bellekten, bu basit görevin kendisi, BUS'u veri hatları ve adres hatları için kullanılabilir kılmak gibi çoklu işlemleri içerebilir.
Söylemenin en iyi yolu, komutun kendilerinin saat devri gerektiren küçük işlem birimlerinde gerçekleşmesidir, bunlar makine devirleri için bir araya getirilir , bunlar hız (çeşitli MCU'larda FLOPS **), boru astarı vb

. OP'nin yorumu

Çok net olmak gerekirse, size ALE adında bir çip olduğuna bir örnek vereceğim(Adres mandalı etkin) genellikle hem adresin hem de verilerin aynı pimler üzerinde iletilmesi için alt adres veri yolunun çoğullanması amacıyla, adres ve ardından verilerin alınması için bir osilatör (intel 8051 saat olarak 11.059MHz yerel osilatör kullanır) kullanırız.

MCU'nun temel parçalarının CPU, ALU ve dahili kayıt defteri ve benzeri olduğunu bildiğiniz gibi, CPU (s / g kontrolü) 8051 durumunda tüm adres pinlerine (16) adres gönderir, bu durum anlık T1 ve sonrasında adres, karşılık gelen kapasitör depolama matrisidir (bir sinyal olarak şarj) ( * hafıza eşleme * ) etkinleştirilir ve seçilir.

Seçimden sonra ALE sinyali aktive olur, yani bir sonraki saatte ALE pimi yüksek yapılır, T2 ( genellikle bir Yüksek sinyal ancak işlem birimi tasarımına göre değişir ), bundan sonra alt adres veri yolları veri hatları gibi davranır ve veriler yazılır veya okunur. (MCU’nun RD / WR pinindeki çıkışa bağlı olarak).
Tüm olayların zamanında sıralandığını açıkça görebilirsiniz.

Saat kullanmayacaksak ne olur Sonra ASQC asenkron saat yöntemini kullanmak zorunda kalacağız, bu daha sonra her geçidi diğerine bağımlı hale getirecek ve donanım arızalarına neden olabilir. Görevi tamamlama zamanı.
Yani istenmeyen bir şey


Bu tür mantıklı. Fakat neden MCU’nun bu çeşitli bölümlerinin çalışması için saat sinyaline ihtiyaç duyuyor? Bir saat kullanmasaydı teorik olarak ne olurdu?
MR,

1
@ Martin, mantık geçitleri girişleri değiştiğinde durumu hemen değiştirir. Saatli, sıralı mantık sadece bir saat olayı sırasındaki girişlerini değerlendirir. Dijital bellek devrelerini yönlendiren temel prensip budur. Mutlak kontrole sahip verileri seçerek bir yerden diğerine seçerek taşıma kabiliyeti veriyor, bu da softaware yoluyla programlanabilen genel amaçlı bir donanımın oluşturulmasına izin veriyor - her şey için.
Sean Boddy

3
@SeanBoddy: Lojik kapılar hemen durum tesadüf değil, bir osiloskop üzerinde görülebilir kısa bir gecikme var. Bir saat kullanmazsak, bileşenler arasındaki bu zamanlamalardaki farklılıklar yarış koşullarına yanlış sonuçlar doğurabilir.
BlueRaja - Danny Pflughoeft

@BlueRaja - peki iyi golly gumdrops, buna ne dersin. Belki bir şeyi nerede özlediğimi bulmak için 4 yıl elektrik elektronik notlarına ve 8 yıl donanma eğitimine geri döneceğim.
Sean Boddy

2

Bir saatin çözdüğü temel sorun, transistörlerin gerçekten dijital aygıtlar olmamasıdır: çıkışı belirlemek için girdilerde analog voltaj seviyeleri kullanırlar ve durumu değiştirmek için sınırlı bir süre alırlar. Başka bir cevapta belirtilmediği sürece, kuantum cihazlarına girersiniz, girişin bir durumdan diğerine geçtiği bir süre olacaktır. Bu süre, bir cihazdan diğerine farklı olacak kapasitif yükleme işleminden etkilenir. Bu, her bir mantık geçidini oluşturan farklı tranizatörlerin biraz farklı zamanlarda tepki vereceği anlamına gelir. Saat, bileşen cihazların çıkışlarını tamamen sabitlendikten sonra “kilitlemek” için kullanılır.

Bir analoji olarak, SPI (Seri Periferik Arabirim) iletişim taşıma katmanını göz önünde bulundurun. Bunun tipik bir uygulaması üç satır kullanacaktır: Veri Girişi, Veri Çıkışı ve Saat. Bu taşıma katmanının üzerine bir bayt göndermek için master, Data Out satırını ayarlayacaktır ve Data Out satırının geçerli bir değeri olduğunu belirtmek için Saat satırını belirtecektir. Slave cihazı Data's Line'ı yalnızca Saat sinyaliyle yapılması istendiğinde veri hattını örnekleyecektir. Saat sinyali olmasaydı, köle Data In satırını ne zaman örnekleyeceğini nasıl bilebilirdi? Hat, master tarafından ayarlanmadan önce veya durumlar arasındaki geçiş sırasında örnekleyebilir. CAN, RS485, RS422, RS232 vb. Gibi zaman uyumsuz protokoller bunu önceden tanımlanmış bir örnekleme süresi, sabit bit hızı ve (baş üstü) çerçeveleme bitleri kullanarak çözer.

Başka bir deyişle, bir grup kapıdaki tüm transistörlerin nihai durumlarına ne zaman ulaştığını ve talimatların tamamlandığını belirlemek için gereken bir tür Ortak Bilgi vardır . Yukarıdaki bağlantıda belirtilen (100 mavi gözlü) yapbozda ve Matematik Yığın Borsası'nda bu soruda biraz ayrıntılı olarak açıklanan 'oracle' adadaki insanlar için bir saat görevi görür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.