99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

并行程序設(shè)計(jì)中最重要的鎖-RCU鎖

開關(guān)電源芯片 ? 來源:極客重生 ? 作者: Alex碼農(nóng)的藝術(shù) ? 2021-08-27 14:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

hi,大家好,今天給大家分享并行程序設(shè)計(jì)中最重要的鎖-RCU鎖,RCU鎖本質(zhì)是用空間換時(shí)間,是對讀寫鎖的一種優(yōu)化加強(qiáng),但不僅僅是這樣簡單,RCU體現(xiàn)出來的垃圾回收思想,也是值得我們學(xué)習(xí)和借鑒,。

各個(gè)語言C, C++,Java, go等都有RCU鎖實(shí)現(xiàn),同時(shí)內(nèi)核精巧的實(shí)現(xiàn)也是學(xué)習(xí)代碼設(shè)計(jì)好素材,深入理解RCU分為兩個(gè)部分,第一部分主要是講核心原理,理解其核心設(shè)計(jì)思想,對RCU會有個(gè)宏觀的理解;第二部分會分析源碼實(shí)現(xiàn)(本來準(zhǔn)備放在一起,由于實(shí)現(xiàn)相當(dāng)精巧,篇幅會很多,就單獨(dú)成一篇),希望大家喜歡。

并行程序設(shè)計(jì)演進(jìn)如何正確有效的保護(hù)共享數(shù)據(jù)是編寫并行程序必須面臨的一個(gè)難題,通常的手段就是同步。同步可分為阻塞型同步(Blocking Synchronization)和非阻塞型同步( Non-blocking Synchronization)。

阻塞型同步是指當(dāng)一個(gè)線程到達(dá)臨界區(qū)時(shí),因另外一個(gè)線程已經(jīng)持有訪問該共享數(shù)據(jù)的鎖,從而不能獲取鎖資源而阻塞(睡眠),直到另外一個(gè)線程釋放鎖。常見的同步原語有 mutex、semaphore 等。如果同步方案采用不當(dāng),就會造成死鎖(deadlock),活鎖(livelock)和優(yōu)先級反轉(zhuǎn)(priority inversion),以及效率低下等現(xiàn)象。

為了降低風(fēng)險(xiǎn)程度和提高程序運(yùn)行效率,業(yè)界提出了不采用鎖的同步方案,依照這種設(shè)計(jì)思路設(shè)計(jì)的算法稱為非阻塞型同步,其本質(zhì)就是停止一個(gè)線程的執(zhí)行不會阻礙系統(tǒng)中其他執(zhí)行實(shí)體的運(yùn)行。

先有阻塞型同步

互斥鎖(英語:Mutual exclusion,縮寫Mutex)是一種用于多線程編程中,防止兩條線程同時(shí)對同一公共資源進(jìn)行讀寫的機(jī)制。該目的通過將代碼切片成一個(gè)一個(gè)的臨界區(qū)域(critical section)達(dá)成。臨界區(qū)域指的是一塊對公共資源進(jìn)行存取的代碼。

信號量(Semaphore),是在多線程環(huán)境下使用的一種設(shè)施,是可以用來保證兩個(gè)或多個(gè)關(guān)鍵代碼段不被并發(fā)調(diào)用,可以認(rèn)為mutex是0-1信號量;

讀寫鎖是計(jì)算機(jī)程序的并發(fā)控制的一種同步機(jī)制,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進(jìn)行讀訪問,寫者則需要對共享資源進(jìn)行寫操作,讀操作可并發(fā)重入,寫操作是互斥的。

再有非阻塞型同步

當(dāng)今比較流行的非阻塞型同步實(shí)現(xiàn)方案有三種:

Wait-free(無等待)

Wait-free 是指任意線程的任何操作都可以在有限步之內(nèi)結(jié)束,而不用關(guān)心其它線程的執(zhí)行速度。Wait-free 是基于 per-thread 的,可以認(rèn)為是 starvation-free 的。非常遺憾的是實(shí)際情況并非如此,采用 Wait-free 的程序并不能保證 starvation-free,同時(shí)內(nèi)存消耗也隨線程數(shù)量而線性增長。目前只有極少數(shù)的非阻塞算法實(shí)現(xiàn)了這一點(diǎn)。

簡單理解:任意時(shí)刻所有的線程都在干活;

Lock-free(無鎖)

Lock-Free是指能夠確保執(zhí)行它的所有線程中至少有一個(gè)能夠繼續(xù)往下執(zhí)行。由于每個(gè)線程不是 starvation-free 的,即有些線程可能會被任意地延遲,然而在每一步都至少有一個(gè)線程能夠往下執(zhí)行,因此系統(tǒng)作為一個(gè)整體是在持續(xù)執(zhí)行的,可以認(rèn)為是 system-wide 的。所有 Wait-free 的算法都是 Lock-Free 的。

簡單理解:任意時(shí)刻至少一個(gè)線程在干活;

Obstruction-free(無障礙)

Obstruction-free 是指在任何時(shí)間點(diǎn),一個(gè)孤立運(yùn)行線程的每一個(gè)操作可以在有限步之內(nèi)結(jié)束。只要沒有競爭,線程就可以持續(xù)運(yùn)行。一旦共享數(shù)據(jù)被修改,Obstruction-free 要求中止已經(jīng)完成的部分操作,并進(jìn)行回滾。所有 Lock-Free 的算法都是 Obstruction-free 的。

簡單理解:只要數(shù)據(jù)有修改,就會重新獲取,并且把已經(jīng)完成操作回滾重來;

綜上所述,不難得出 Obstruction-free 是 Non-blocking synchronization 中性能最差的,而 Wait-free 性能是最好的,但實(shí)現(xiàn)難度也是最大的,因此 Lock-free 算法開始被重視,并廣泛運(yùn)用于各種程序設(shè)計(jì)中,這里主要介紹Lock_free算法。

lock-free(無鎖)往往可以提供更好的性能和伸縮性保證,但實(shí)際上其優(yōu)點(diǎn)不止于此。早期這些概念首先是在操作系統(tǒng)上應(yīng)用的,因?yàn)橐粋€(gè)不依賴于鎖的算法,可以應(yīng)用于各種場景下,而無需考慮各種錯(cuò)誤,故障,失敗等情形。比如死鎖,中斷,甚至CPU失效。

主流無鎖技術(shù)

Atomic operation(原子操作),在單一、不間斷的步驟中讀取和更改數(shù)據(jù)的操作。需要處理器指令支持原子操作:

● test-and-set (TSR)

● compare-and-swap (CAS)

● load-link/store-conditional (ll/sc)

Spin Lock(自旋鎖)是一種輕量級的同步方法,一種非阻塞鎖。當(dāng) lock 操作被阻塞時(shí),并不是把自己掛到一個(gè)等待隊(duì)列,而是死循環(huán) CPU 空轉(zhuǎn)等待其他線程釋放鎖。

Seqlock (順序鎖) 是Linux 2.6 內(nèi)核中引入一種新型鎖,它與 spin lock 讀寫鎖非常相似,只是它為寫者賦予了較高的優(yōu)先級。也就是說,即使讀者正在讀的時(shí)候也允許寫者繼續(xù)運(yùn)行,讀者會檢查數(shù)據(jù)是否有更新,如果數(shù)據(jù)有更新就會重試,因?yàn)?seqlock 對寫者更有利,只要沒有其他寫者,寫鎖總能獲取成功。

RCU(Read-Copy Update),顧名思義就是讀-拷貝修改,它是基于其原理命名的。對于被RCU保護(hù)的共享數(shù)據(jù)結(jié)構(gòu),讀者不需要獲得任何鎖就可以訪問它,但寫者在訪問它時(shí)首先拷貝一個(gè)副本,然后對副本進(jìn)行修改,最后使用一個(gè)回調(diào)(callback)機(jī)制在適當(dāng)?shù)臅r(shí)機(jī)把指向原來數(shù)據(jù)的指針替換為新的被修改的數(shù)據(jù)。這個(gè)時(shí)機(jī)就是所有引用該數(shù)據(jù)的CPU都退出對共享數(shù)據(jù)的訪問。

本文主要講解RCU的核心原理。

歷史背景高性能并行程序中,數(shù)據(jù)一致性訪問是一個(gè)非常重要的部分,一般都是采用鎖機(jī)制(semaphore、spinlock、rwlock等)進(jìn)行保護(hù)共享數(shù)據(jù),根本的思想就是在訪問臨界資源時(shí),首先訪問一個(gè)全局的變量(鎖),通過全局變量的狀態(tài)來控制線程對臨界資源的訪問。但是,這種思想是需要硬件支持的,硬件需要配合實(shí)現(xiàn)全局變量(鎖)的讀-修改-寫,現(xiàn)代CPU都會提供這樣的原子化指令。

采用鎖機(jī)制實(shí)現(xiàn)數(shù)據(jù)訪問的一致性存在如下兩個(gè)問題:

效率問題。鎖機(jī)制的實(shí)現(xiàn)需要對內(nèi)存的原子化訪問,這種訪問操作會破壞流水線操作,降低了流水線效率,這是影響性能的一個(gè)因素。另外,在采用讀寫鎖機(jī)制的情況下,寫鎖是排他鎖,無法實(shí)現(xiàn)寫鎖與讀鎖的并發(fā)操作,在某些應(yīng)用下會降低性能。

擴(kuò)展性問題。例如,當(dāng)系統(tǒng)中CPU數(shù)量增多的時(shí)候,采用鎖機(jī)制實(shí)現(xiàn)數(shù)據(jù)的同步訪問效率偏低。并且隨著CPU數(shù)量的增多,效率降低,由此可見鎖機(jī)制實(shí)現(xiàn)的數(shù)據(jù)一致性訪問擴(kuò)展性差。

原始的RCU思想

在多線程場景下,經(jīng)常我們需要并發(fā)訪問一個(gè)數(shù)據(jù)結(jié)構(gòu),為了保證線程安全我們會考慮使用互斥設(shè)施來進(jìn)行同步,更進(jìn)一步我們會根據(jù)對這個(gè)數(shù)據(jù)結(jié)構(gòu)的讀寫比例而選用讀寫鎖進(jìn)行優(yōu)化。但是讀寫鎖不是唯一的方式,我們可以借助于COW技術(shù)來做到寫操作不需要加鎖,也就是在讀的時(shí)候正常讀,寫的時(shí)候,先加鎖拷貝一份,然后進(jìn)行寫,寫完就原子的更新回去,使用COW實(shí)現(xiàn)避免了頻繁加讀寫鎖本身的性能開銷。

優(yōu)缺點(diǎn)

由于 RCU 旨在最小化讀取端開銷,因此僅在以更高速率使用同步邏輯進(jìn)行讀取操作時(shí)才使用它。如果更新操作超過10%,性能反而會變差,所以應(yīng)該選擇另一種同步方式而不是RCU。

好處

幾乎沒有讀取端開銷。零等待,零開銷

沒有死鎖問題

沒有優(yōu)先級倒置問題(優(yōu)先級倒置和優(yōu)先級繼承)

無限制延遲沒有問題

無內(nèi)存泄漏風(fēng)險(xiǎn)問題

缺點(diǎn)

使用起來有點(diǎn)復(fù)雜

對于寫操作,它比其他同步技術(shù)稍慢

適用場景

核心原理理論基礎(chǔ)-QSBR算法

(Quiescent State-Based Reclamation)

這個(gè)算法的核心思想就是識別出線程的不活動(dòng)(quiescent)狀態(tài),那么什么時(shí)候才算是不活動(dòng)的狀態(tài)呢?這個(gè)狀態(tài)和臨界區(qū)狀態(tài)是相對的,線程離開臨界區(qū)就是不活動(dòng)的狀態(tài)了。識別出不活動(dòng)狀態(tài)了,還需要把狀態(tài)通知出去,讓其他線程知道,這整個(gè)過程可以用下面的圖來描述:

上面有四個(gè)線程,線程1執(zhí)行完更新操作后添加了釋放內(nèi)存的callback,此時(shí)線程2,3,4都讀取的是之前的內(nèi)容,等他們執(zhí)行完成后分別回去調(diào)用onQuiescentState來表明自己已經(jīng)不不活動(dòng)了,等到最后一個(gè)線程調(diào)用onQuiescentState的時(shí)候就可以去調(diào)用注冊的callback了。

要實(shí)現(xiàn)上面這個(gè)過程其要點(diǎn)就是選擇適合的位置執(zhí)行onQuiescentState,還有就是如何知道誰是最后一個(gè)執(zhí)行onQuiescentState的線程。

批量回收,如果更新的次數(shù)比較多的話,但是每次只回調(diào)一個(gè)callback,釋放一次內(nèi)存就會導(dǎo)致內(nèi)存釋放跟不上回收的速度,為此需要進(jìn)行批量回收,每次更新都會注冊新的callback,當(dāng)?shù)谝淮嗡械木€程都進(jìn)入不活動(dòng)狀態(tài)的時(shí)候就把當(dāng)前的所有callback保存起來,等待下一次所有線程進(jìn)入不活動(dòng)的狀態(tài)的時(shí)候就回調(diào)前一次所有的callback。

基本架構(gòu)

Linux 內(nèi)核RCU 參考QSBR算法設(shè)計(jì)一套無鎖同步機(jī)制。

多個(gè)讀者可以并發(fā)訪問共享數(shù)據(jù),而不需要加鎖;

寫者更新共享數(shù)據(jù)時(shí)候,需要先copy副本,在副本上修改,最終,讀者只訪問原始數(shù)據(jù),因此他們可以安全地訪問數(shù)據(jù),多個(gè)寫者之間是需要用鎖互斥訪問的(比如用自旋鎖);

修改資源后,需要更新共享資源,讓后面讀者可以訪問最新的數(shù)據(jù);

等舊資源上所有的讀者都訪問完畢后,就可以回收舊資源了;

RCU 模型

Removal:在寫端臨界區(qū)部分,讀取(Read()),進(jìn)行復(fù)制(Copy),并執(zhí)行更改(Update)操作;

Grace Period:這是一個(gè)等待期,以確保所有與執(zhí)行刪除的數(shù)據(jù)相關(guān)的reader訪問完畢;

Reclamation:回收舊數(shù)據(jù);

三個(gè)重要概念

靜止?fàn)顟B(tài)QS(Quiescent State): CPU發(fā)生了上下文切換稱為經(jīng)歷一個(gè)quiescent state;

寬限期GP(Grace Period): grace period就是所有CPU都經(jīng)歷一次quiescent state所需要的等待的時(shí)間,也即系統(tǒng)中所有的讀者完成對共享臨界區(qū)的訪問;

讀側(cè)臨界部分RCS(Read-Side Critical Section): 保護(hù)禁止其他CPU修改的代碼區(qū)域,但允許多個(gè)CPU同時(shí)讀;

三個(gè)主要的角色

讀者reader:

安全訪問臨界區(qū)資源;

負(fù)責(zé)標(biāo)識進(jìn)出臨界區(qū);

寫者updater:

復(fù)制一份數(shù)據(jù),然后更新數(shù)據(jù);

用新數(shù)據(jù)覆蓋舊數(shù)據(jù),然后進(jìn)入grace period;

回收者reclaimer:

等待在grace period之前的讀者退出臨界區(qū);

在寬限期結(jié)束后,負(fù)責(zé)回收舊資源;

三個(gè)重要機(jī)制

發(fā)布/訂閱機(jī)制

主要用于更新數(shù)據(jù),即使在數(shù)據(jù)被同時(shí)修改時(shí)線程也能安全瀏覽數(shù)據(jù)。RCU通過發(fā)布-訂閱機(jī)制(Publish-Subscribe Mechanism)實(shí)現(xiàn)這種并發(fā)的插入操作能力;

延遲回收機(jī)制:

實(shí)現(xiàn)檢查舊數(shù)據(jù)上所有RCU讀者完成,用于安全刪除舊數(shù)據(jù);

多版本機(jī)制:

維護(hù)最近更新對象的多個(gè)版本,用于允許讀者容忍并發(fā)的插入和刪除新對象的多個(gè)版本;

最后總結(jié)最后,總結(jié)一下RCU鎖的核心思想:

讀者無鎖訪問數(shù)據(jù),標(biāo)記進(jìn)出臨界區(qū);

寫者讀取,復(fù)制,更新;

舊數(shù)據(jù)延遲回收;

RCU核心思想就三句話,產(chǎn)品經(jīng)理都說簡單,但Linux內(nèi)核實(shí)現(xiàn)卻不是這么簡單。除了要實(shí)現(xiàn)基本功能,需要考慮很多復(fù)雜情況:

內(nèi)核的RCU系統(tǒng)可以說是內(nèi)核最復(fù)雜系統(tǒng)之一,為了高性能和多核擴(kuò)展性,設(shè)計(jì)了非常精巧的數(shù)據(jù)結(jié)構(gòu):

同時(shí)巧妙實(shí)現(xiàn)了很多核心流程:

檢查當(dāng)前CPU是否度過QS;

QS report(匯報(bào)寬限期度過);

寬限期的發(fā)起與完成;

rcu callbacks處理;

其中很多實(shí)現(xiàn)都可以說是非常精巧,結(jié)合了預(yù)處理,批量處理,延后(異步)處理,多核并發(fā),原子操作,異常處理,多場景精細(xì)優(yōu)化等多種技術(shù),性能好,可擴(kuò)展性強(qiáng),穩(wěn)定性強(qiáng),有一定的學(xué)習(xí)和參考價(jià)值,即使你的工作不是內(nèi)核編程,里面體現(xiàn)很多編程思想和代碼設(shè)計(jì)思想,也是值得大家學(xué)習(xí)的。

擴(kuò)展閱讀http://csng.cs.toronto.edu/publication_files/0000/0159/jpdc07.pdf

http://www.rdrop.com/users/paulmck/rclock/RCUdissertation.2004.07.14e1.pdf

https://lwn.net/Articles/262464/

http://www.wowotech.net/kernel_synchronization/461.html

http://concurrencyfreaks.blogspot.com/2013/05/lock-free-and-wait-free-definition-and.html

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11080

    瀏覽量

    217116
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213838
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

    109785
  • CAS
    CAS
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    15409

原文標(biāo)題:深入理解 RCU 核心原理

文章出處:【微信號:gh_3980db2283cd,微信公眾號:開關(guān)電源芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是電磁控制板?24路控板的使用步驟概述

    電磁控制板是一種專用于控制電磁工作狀態(tài)的電子裝置,它可以接收指令并對電磁進(jìn)行通斷電操作,從而實(shí)現(xiàn)對相關(guān)設(shè)備的鎖定和解鎖控制。電磁本身依靠電流產(chǎn)生磁場作用力來吸附或釋放
    的頭像 發(fā)表于 07-14 16:26 ?154次閱讀
    什么是電磁<b class='flag-5'>鎖</b>控制板?24路<b class='flag-5'>鎖</b>控板的使用步驟概述

    聯(lián)世界,智啟萬家,華普微藍(lán)牙智能解決方案

    密碼、指紋、刷卡與多模組合等主流門鎖形態(tài),支持與手機(jī)APP、小程序、智能中控網(wǎng)關(guān)等多終端互聯(lián),助力客戶快速實(shí)現(xiàn)智能門鎖產(chǎn)品的量產(chǎn)落地
    的頭像 發(fā)表于 06-26 15:46 ?139次閱讀
    <b class='flag-5'>鎖</b>聯(lián)世界,智啟萬家,華普微藍(lán)牙智能<b class='flag-5'>鎖</b>解決方案

    Linux系統(tǒng)中最重要的三個(gè)命令

    Linux三劍客是Linux系統(tǒng)中最重要的三個(gè)命令,它們以其強(qiáng)大的功能和廣泛的應(yīng)用場景而聞名。這三個(gè)工具的組合使用幾乎可以完美應(yīng)對Shell中的數(shù)據(jù)分析場景,因此被統(tǒng)稱為Linux三劍客。
    的頭像 發(fā)表于 03-03 10:37 ?437次閱讀

    如何給軟件上密碼?

    在現(xiàn)代數(shù)字生活中,隱私和安全成為了我們不可忽視的重要議題。隨著智能手機(jī)、平板電腦以及各種應(yīng)用程序的普及,保護(hù)個(gè)人信息和數(shù)據(jù)安全顯得尤為重要。給軟件上密碼,是一種簡單而有效的措施,能夠
    的頭像 發(fā)表于 02-27 10:13 ?2049次閱讀

    電路與非自電路的比較

    在電氣控制系統(tǒng)中,電路的設(shè)計(jì)對于系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。自電路和非自電路是兩種基本的控制電路類型,它們在功能和應(yīng)用上有著明顯的區(qū)別。 自電路 定義 自
    的頭像 發(fā)表于 01-18 10:11 ?822次閱讀

    電路模組選擇指南

    1. 自電路模組的基本原理 自電路模組的核心是一個(gè)繼電器,它包含一個(gè)控制線圈和一個(gè)或多個(gè)觸點(diǎn)。當(dāng)控制線圈通電時(shí),繼電器的觸點(diǎn)會閉合,即使控制線圈斷電,觸點(diǎn)也會保持閉合狀態(tài),這就是所謂的自功能
    的頭像 發(fā)表于 01-18 10:08 ?639次閱讀

    電路的類型和特點(diǎn)

    在電子工程領(lǐng)域,自電路是一種常見的設(shè)計(jì),它能夠使電路在沒有持續(xù)的觸發(fā)信號的情況下保持其狀態(tài)。這種電路的設(shè)計(jì)對于實(shí)現(xiàn)自動(dòng)化控制和減少人為干預(yù)至關(guān)重要。 一、自電路的類型 自電路可以
    的頭像 發(fā)表于 01-18 10:03 ?925次閱讀

    電路如何設(shè)計(jì)

    電路的設(shè)計(jì)旨在實(shí)現(xiàn)電路在按下開關(guān)后能自動(dòng)保持持續(xù)通電,直到按下其他開關(guān)使之?dāng)嗦窞橹沟墓δ?。以下是?b class='flag-5'>鎖電路設(shè)計(jì)的基本步驟和要點(diǎn): 一、基本設(shè)計(jì)步驟 接入電源 : 將零線接入電路的指定端子(如十一號
    的頭像 發(fā)表于 01-18 09:56 ?1778次閱讀

    簡述存器的工作時(shí)序

    存器(Latch)是數(shù)字電路中的一種重要組件,其工作時(shí)序?qū)τ诶斫馄涔δ芎驮陔娐分械膽?yīng)用至關(guān)重要存器的工作原理主要基于電平敏感的特性,它能夠在特定輸入脈沖電平作用下改變狀態(tài),將信號
    的頭像 發(fā)表于 08-30 10:42 ?1329次閱讀

    SR存器的功能有哪些?

    SR存器是一種數(shù)字電路中常用的存儲元件,它具有一些重要的功能和特點(diǎn)。以下是對SR存器功能的介紹: 存儲功能 SR存器最基本的功能是存儲信息。它有兩個(gè)穩(wěn)定狀態(tài),分別對應(yīng)于“1”和“
    的頭像 發(fā)表于 08-28 10:55 ?1887次閱讀

    d存器解決了sr存器的什么問題

    D存器(Data Latch)和SR存器(Set-Reset Latch)是數(shù)字電路中常見的兩種存儲元件。它們在數(shù)字系統(tǒng)中扮演著重要的角色,用于存儲和傳遞信息。然而,這兩種存器在
    的頭像 發(fā)表于 08-28 09:16 ?1184次閱讀

    存器的結(jié)構(gòu)組成及工作原理

    存器(latch)是數(shù)字電路中的一種基本存儲單元,用于存儲和保持一個(gè)或多個(gè)位的狀態(tài)。存器在數(shù)字邏輯設(shè)計(jì)中扮演著重要的角色,它們可以用于實(shí)現(xiàn)各種功能,如數(shù)據(jù)存儲、信號同步、狀態(tài)保持等。
    的頭像 發(fā)表于 08-28 09:09 ?1745次閱讀

    rs存器和sr存器有什么區(qū)別嗎

    RS存器和SR存器是數(shù)字電路中兩種常見的存儲單元,它們在功能和應(yīng)用上有一些區(qū)別。 RS存器 RS存器,即Reset-Set存器,是
    的頭像 發(fā)表于 07-23 14:15 ?2344次閱讀

    存器的組成、功能及應(yīng)用

    存器(Latch)是一種具有記憶功能的數(shù)字電路元件,用于存儲和保持?jǐn)?shù)字信號的狀態(tài)。存器在數(shù)字電路設(shè)計(jì)中扮演著重要的角色,廣泛應(yīng)用于各種電子設(shè)備和系統(tǒng)中。本文將介紹存器的組成、功能
    的頭像 發(fā)表于 07-23 11:32 ?4486次閱讀

    存器原態(tài)和新態(tài)的定義

    存器(Latch)是一種存儲單元,用于存儲一位二進(jìn)制信息。在數(shù)字電路中,存器是一種基本的存儲元件,廣泛應(yīng)用于寄存器、計(jì)數(shù)器、觸發(fā)器等電路中。存器的原態(tài)和新態(tài)是描述存器狀態(tài)變化的
    的頭像 發(fā)表于 07-23 10:21 ?1221次閱讀