日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Rocket - tilelink - FIFOFixer

發(fā)布時(shí)間:2025/3/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Rocket - tilelink - FIFOFixer 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

https://mp.weixin.qq.com/s/JS4Pguwa6LXjPsMq6nW8HA

? 簡(jiǎn)單介紹FIFOFixer的實(shí)現(xiàn)。 ? ?? ? 1. 基本介紹 ? 按照一定的策略把某一部分manager的fifoId攤平轉(zhuǎn)換為一個(gè)fifoId,并為這個(gè)fifoId實(shí)現(xiàn)同步功能。這樣上游節(jié)點(diǎn)看到的fifoId就減少了,所需要實(shí)現(xiàn)的同步功能就少了,減輕了其負(fù)擔(dān)。 ? 2. TLFIFOFixer.Policy ? 用于篩選Manager的策略: ?? ? 定義了如下三種: ?? ? 3. fifoMap ? 用于根據(jù)策略重新映射各個(gè)manager的fifoId: ?? ? 1) 按策略分成兩組: ? ?? 符合策略的叫flatManagers,不符合的叫keepManagers。 ? 2) 取得兩組manager的fifoId: ? ?? 如果某fifoId在兩個(gè)組中都有,那么把它當(dāng)做符合策略的使用。 ? 根據(jù)注釋: a. 所謂flat,就是攤平,所有的fifoId都變成0; b. 所謂keep,就是保持,compacted的意思是壓縮,即保持每一個(gè)都不一樣,但是壓縮成為連續(xù)的自然數(shù); ? 3) 構(gòu)建兩組老fifoId到新fifoId的映射: ? ?? a. 攤平的那一組,所有fifoId映射后的值都是0; b. 保持的那一組,所有fifoId映射為從1開始的連續(xù)的自然數(shù)值; ? 4) 把兩組映射合在一起: ? ?? ? 5) fixMap ? 為每一個(gè)manager分配的fifoId: ?? A. 符合策略的manager的新fifoId為0; B. 不符合策略的manager有兩種情況: a. 若原fifoId = None,新fifoId=None; b. 若原fifoId != None,新fifoId為按順序壓縮后的新fifoId; ? 6) splatMap ? 重新映射,把符合策略的fifoId壓縮為從0開始的自然數(shù): ?? a. 不符合策略的manager的新fifoId為None; b. 原fifoId=None的manager,新fifoId不變,也是None; c. 符合策略的manager的新fifoId為按順序壓縮后的從0開始的自然數(shù); ? 7) 對(duì)比 ? ?? ? 4. diplomacy node ? 需要調(diào)整下游節(jié)點(diǎn)傳過來的fifoId,進(jìn)行fix,也就是使用fixMap生成的新fifoId: ?? ? 5. lazy module ? 用于實(shí)現(xiàn)內(nèi)部邏輯: a. 因?yàn)榉喜呗缘膍anager的fifoId被攤平了,所以需要為他們做同步功能; b. 不符合策略的manager各自具有不同的fifoId,其同步由client實(shí)現(xiàn); ? 1) 成對(duì)出現(xiàn)的輸入邊和輸出邊 ? ?? ? 2) 處理下游的managers的fifoId ? ?? ? 3) 是否屬于符合策略的fifo的請(qǐng)求: ? ?? 其中: a. edgeIn表明使用的是轉(zhuǎn)換之后的fifoId,根據(jù)diplomacy node中的用法,即fixMap中的fifoId; b. _.fifoId==Some(0)表明address所屬的manager符合策略; c. 因?yàn)樯嫌蝐lient看到符合策略的manager的fifoId都為0,而與之對(duì)應(yīng)的下游manager的fifoId不一定為0,所以需要我們?yōu)檫@些請(qǐng)求做同步處理; d. _.fifoId!=Some(0)表明address所屬的manager不符合策略; ? 4) 找出符合策略的manager:compacted ? ?? a. f==Some(0):表明對(duì)應(yīng)的manager符合策略; b. 不符合策略的manager對(duì)應(yīng)的None被flatMap過濾掉,不會(huì)存在于compacted中; c. 符合策略的manager中,原fifoId為None的,被fifoId=s還原為None; d. 符合策略的manager中,原fifoId不為None的,被fifoId=s重新編排為從0開始的自然數(shù); e. edgeOut表明使用的是下游manager; ? 5) a_id ? 把攤平的fifoId再提起來: ?? 根據(jù)請(qǐng)求訪問的地址,把請(qǐng)求分配到不同的fifo;原來fifo相同的還分配到同一個(gè)fifo。 ? a_noDomain表示manager屬于符合策略的manager中原fifoId為None的那一部分。 ? 6) 記錄某source的請(qǐng)求是否需要做同步: ? ?? 響應(yīng)消息到來時(shí),就不再需要做同步了。 ? 7) 是否需要掛住停止發(fā)送請(qǐng)求: ? ?? a. 不需要Fifo的client不作處理:c.requestFifo; b. 該client是否包含當(dāng)前source; c. 該client下屬所有的source中是否有請(qǐng)求排斥其他請(qǐng)求:flight.slice(c.sourceId.start, c.sourceId.end).reduce(_ || _) ? 該client若要求掛住,需滿足如下條件: a. 當(dāng)前請(qǐng)求源自該client; b. 請(qǐng)求的第一個(gè)beat; c. 該client下屬的source中已經(jīng)存在發(fā)出但仍未響應(yīng)的請(qǐng)求; d. a_noDomain || id =/= a_id ? 這里分析一下d: a. a_noDomain ? 若a_noDomain為真,則表明兩個(gè)請(qǐng)求的fifoId至少有一個(gè)為0。請(qǐng)求的fifoId=0表明對(duì)應(yīng)的下游manager的fifoId=None,意為接收到的請(qǐng)求不一定會(huì)被按順序響應(yīng)。 ? 若只有一個(gè)請(qǐng)求的fifoId=0,那么這兩個(gè)請(qǐng)求對(duì)應(yīng)著兩個(gè)下游manager,無法保證響應(yīng)順序; 若兩個(gè)請(qǐng)求的fifoId=0,因?yàn)?span id="ozvdkddzhkzd" class="author-p-1966608 font-size:12pt">可能存在兩個(gè)以上下游manager的fifoId為None。所以雖然兩個(gè)請(qǐng)求的fifoId都為0,但無法保證針對(duì)的是同一個(gè)下游manager。即便是同一個(gè)下游manager,也無法保證順序。 ? b. id =/= a_id ? 意為這一次請(qǐng)求的a_id與上一次記錄的id不同。 同時(shí)發(fā)出兩個(gè)相同fifoId的請(qǐng)求,由下游manager保證這兩個(gè)請(qǐng)求的響應(yīng)消息安裝先后順序返回; 同時(shí)發(fā)出兩個(gè)不同fifoId的請(qǐng)求,其響應(yīng)順序則無從保證。 ? 8) 是否存在client要求同步: ? ?? ? 9) 根據(jù)是否需要同步連接輸入邊和輸出邊的channel a/d: ? ?? ? 10) channel b/c/e不做處理: ? ?? ? 6. a_notFIFO重定義 ? 是否需要為請(qǐng)求做序列化: ?? ? 可以看到這個(gè)名字有兩個(gè)問題: a. 詞不達(dá)意; b. 名稱中含有反轉(zhuǎn),理解時(shí)需要拐一個(gè)彎; ? 可以看到,后面使用時(shí)也多用其反轉(zhuǎn)義項(xiàng): ?? ? 所以這里最好重新定義,反轉(zhuǎn)一下意義: ?? ? 修改后用處如下: ?? ? ?

轉(zhuǎn)載于:https://www.cnblogs.com/wjcdx/p/11343246.html

總結(jié)

以上是生活随笔為你收集整理的Rocket - tilelink - FIFOFixer的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。