• 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

fifo先進(jìn)先出原理

2021/02/23
1055
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

硬件型號(hào):戴爾 Latitude 5320 

系統(tǒng)版本:Windows10.0系統(tǒng)

fifo先進(jìn)先出原理

計(jì)算機(jī)中,先入先出隊(duì)列是一種傳統(tǒng)的按序執(zhí)行方法,先進(jìn)入的指令先完成并引退,跟著才執(zhí)行第二條指令(指令就是計(jì)算機(jī)在響應(yīng)用戶操作的程序代碼,對用戶而言是透明的)。如圖1所示,當(dāng)CPU在某一時(shí)段來不及響應(yīng)所有的指令時(shí),指令就會(huì)被安排在FIFO隊(duì)列中,比如0號(hào)指令先進(jìn)入隊(duì)列,接著是1號(hào)指令、2號(hào)指令……當(dāng)CPU完成當(dāng)前指令以后就會(huì)從隊(duì)列中取出0號(hào)指令先行執(zhí)行,此時(shí)1號(hào)指令就會(huì)接替0號(hào)指令的位置,同樣,2號(hào)指令、3號(hào)指令……都會(huì)向前挪一個(gè)位置。

圖1 先進(jìn)先出隊(duì)列

 

FIFO是隊(duì)列機(jī)制中最簡單的,每個(gè)接口上都存在FIFO隊(duì)列,表面上看FIFO隊(duì)列并沒有提供什么QoS(Quality of Service,服務(wù)質(zhì)量)保證,甚至很多人認(rèn)為FIFO嚴(yán)格意義上不算做一種隊(duì)列技術(shù),實(shí)則不然,F(xiàn)IFO是其它隊(duì)列的基礎(chǔ),F(xiàn)IFO也會(huì)影響到衡量QoS的關(guān)鍵指標(biāo):報(bào)文的丟棄、延時(shí)、抖動(dòng)。既然只有一個(gè)隊(duì)列,自然不需要考慮如何對報(bào)文進(jìn)行復(fù)雜的流量分類,也不用考慮下一個(gè)報(bào)文怎么拿、拿多少的問題,而且因?yàn)榘错樞蛉?bào)文,F(xiàn)IFO無需對報(bào)文重新排序。簡化了這些實(shí)現(xiàn)其實(shí)也就提高了對報(bào)文時(shí)延的保證。FIFO關(guān)心的就是隊(duì)列長度問題,隊(duì)列長度會(huì)影響到時(shí)延、抖動(dòng)、丟包率。因?yàn)殛?duì)列長度是有限的,有可能被填滿,這就涉及到該機(jī)制的丟棄原則。常見的一個(gè)丟棄原則叫做Tail Drop機(jī)制。簡單地說就是該隊(duì)列如果已經(jīng)滿了,那么后續(xù)進(jìn)入的報(bào)文被丟棄,而沒有什么機(jī)制來保證后續(xù)的報(bào)文可以擠掉已經(jīng)在隊(duì)列內(nèi)的報(bào)文。在這種機(jī)制中,如果定義了較長的隊(duì)列長度,那么隊(duì)列不容易填滿,被丟棄的報(bào)文也就少了,但是隊(duì)列長度太長了會(huì)出現(xiàn)時(shí)延的問題,一般情況下時(shí)延的增加會(huì)導(dǎo)致抖動(dòng)也增加。如果定義了較短的隊(duì)列,時(shí)延的問題可以得到解決,但是發(fā)生Tail Drop的報(bào)文就變多了。


相關(guān)推薦

電子產(chǎn)業(yè)圖譜