一種可配置多優(yōu)先級(jí)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)硬件技術(shù),涉及一種可配置多優(yōu)先級(jí)調(diào)度方法及電路。
【背景技術(shù)】
[0002]在網(wǎng)絡(luò)通信中經(jīng)常涉及可配置優(yōu)先級(jí)的多個(gè)隊(duì)列的調(diào)度,傳統(tǒng)調(diào)度方法限定于固定優(yōu)先級(jí)與隊(duì)列,或者優(yōu)先級(jí)等級(jí)限定為高低兩個(gè)等級(jí),低優(yōu)先級(jí)共享1個(gè)高優(yōu)先級(jí)調(diào)度窗口,對(duì)于復(fù)雜可變的,多優(yōu)先級(jí)等級(jí)的調(diào)度,主要通過軟件實(shí)現(xiàn),無法在電路設(shè)計(jì)中進(jìn)行集成。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種可配置多優(yōu)先級(jí)調(diào)度方法及電路,通過采用配置優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí),有效解決可配置、多優(yōu)先級(jí)隊(duì)列的調(diào)度電路的設(shè)計(jì)。
[0004]本發(fā)明的技術(shù)解決方案是:
[0005]—種可配置多優(yōu)先級(jí)調(diào)度方法,包括以下步驟:
[0006]1)構(gòu)建混合優(yōu)先級(jí)變量
[0007]1.1)采用二進(jìn)制編碼,給所有參與調(diào)度的隊(duì)列分別配置一個(gè)獨(dú)立的配置優(yōu)先級(jí)變量;采用二進(jìn)制編碼,給所有參與調(diào)度的隊(duì)列分別分配一個(gè)默認(rèn)的初始循環(huán)優(yōu)先級(jí)變量;所述循環(huán)優(yōu)先級(jí)變量的編碼從0依次遞增,每個(gè)隊(duì)列的初始循環(huán)優(yōu)先級(jí)不相等;
[0008]1.2)將每一個(gè)隊(duì)列的配置優(yōu)先級(jí)變量和循環(huán)優(yōu)先級(jí)變量接連,合并成該隊(duì)列參與調(diào)度的混合優(yōu)先級(jí)變量;如果某個(gè)隊(duì)列不參與調(diào)度,則該隊(duì)列混合優(yōu)先級(jí)變量輸出為全0 ;
[0009]2)將所有隊(duì)列的混合優(yōu)先級(jí)變量按二級(jí)制逐位進(jìn)行或運(yùn)算,構(gòu)成Μ位線或優(yōu)先級(jí)變量;所述Μ為混合優(yōu)先級(jí)變量的二級(jí)制編碼的位數(shù);所述線或優(yōu)先級(jí)變量為
[0010]PRI_ffOR[M-l],PRI_W0R[M_2],PRI_W0R[M-3],......,PRI_W0R[0];
[0011]3)構(gòu)建仲裁優(yōu)先級(jí)變量并賦值
[0012]3.1)構(gòu)建Μ位仲裁優(yōu)先級(jí)變量,其初始值全為0 ;
[0013]3.2)如果線或優(yōu)先級(jí)變量的[Μ-1]位為1,則將仲裁優(yōu)先級(jí)變量的[Μ-1]位賦值為1,其余位保持不變;
[0014]3.3)將每個(gè)隊(duì)列的混合優(yōu)先級(jí)變量與仲裁優(yōu)先級(jí)變量進(jìn)行比較:若混合優(yōu)先級(jí)變量大于等于仲裁優(yōu)先級(jí)變量,則該隊(duì)列的混合優(yōu)先級(jí)變量不變;若混合優(yōu)先級(jí)變量小于仲裁優(yōu)先級(jí)變量,則該隊(duì)列的混合優(yōu)先級(jí)變量輸出為0 ;
[0015]3.4)按照步驟3.2至3.3的方法,依次判斷[M_l]位,[Μ-2]位,[Μ-3]位,直至
[0]位,則仲裁優(yōu)先級(jí)變量賦值完畢;該仲裁優(yōu)先級(jí)變量所對(duì)應(yīng)的隊(duì)列即為優(yōu)先級(jí)最高;
[0016]3.5)對(duì)該隊(duì)列調(diào)度處理;
[0017]4)更新優(yōu)先級(jí)變量:
[0018]4.1)設(shè)已被服務(wù)的隊(duì)列的循環(huán)優(yōu)先級(jí)變量為Ν,則比Ν大的隊(duì)列的循環(huán)優(yōu)先級(jí)變量不變,已被服務(wù)的隊(duì)列的循環(huán)優(yōu)先級(jí)變量更新為0,比Ν大的隊(duì)列的循環(huán)優(yōu)先級(jí)變量均加1;
[0019]4.2)將仲裁優(yōu)先級(jí)變量更新為全0 ;
[0020]5)重復(fù)步驟3和步驟4,進(jìn)行下一次調(diào)度。
[0021]其中,步驟1.1中不同隊(duì)列的配置優(yōu)先級(jí)變量可以相同。
[0022]步驟3.4)中,若賦值過程中,剩余隊(duì)列的混合優(yōu)先級(jí)變量均已為0,則仲裁優(yōu)先級(jí)變量賦值完畢。
[0023]本發(fā)明的有益效果:
[0024]1、本發(fā)明調(diào)度的目標(biāo)就是在所有參與調(diào)度的隊(duì)列中找出優(yōu)先級(jí)唯一的、最高的混合優(yōu)先級(jí)編號(hào),也就是仲裁優(yōu)先級(jí)編號(hào)ARB_PRI以及對(duì)應(yīng)的隊(duì)列。
[0025]2、本發(fā)明通過采用可配置優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí),既實(shí)現(xiàn)了優(yōu)先級(jí)可配置,按配置優(yōu)先級(jí)進(jìn)行調(diào)度,又解決了當(dāng)多個(gè)隊(duì)列優(yōu)先級(jí)相等時(shí)公平輪詢調(diào)度的問題,調(diào)度方法簡(jiǎn)單,易于拓展,電路實(shí)現(xiàn)靈活,可應(yīng)用在網(wǎng)絡(luò)通信等應(yīng)用中。
【具體實(shí)施方式】
[0026]本發(fā)明可配置多優(yōu)先級(jí)調(diào)度方法及電路,包括以下步驟:
[0027]步驟1,優(yōu)先級(jí)配置采用二進(jìn)制編碼進(jìn)行配置,每一個(gè)隊(duì)列有自己獨(dú)立的配置優(yōu)先級(jí)變量;
[0028]步驟2、根據(jù)參與調(diào)度的隊(duì)列的數(shù)目,每一個(gè)隊(duì)列有自己獨(dú)立的循環(huán)優(yōu)先級(jí)變量,也采用二進(jìn)制編碼,根據(jù)系統(tǒng)應(yīng)用背景,每一個(gè)隊(duì)列分配一個(gè)默認(rèn)的初始循環(huán)優(yōu)先級(jí),循環(huán)優(yōu)先級(jí)編碼從0依次遞增,每個(gè)隊(duì)列的初始循環(huán)優(yōu)先級(jí)不相等;
[0029]步驟3、每一個(gè)隊(duì)列的配置優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí)接連,合并成該隊(duì)列參與調(diào)度混合優(yōu)先級(jí),其中配置優(yōu)先級(jí)由軟件配置,循環(huán)優(yōu)先級(jí)根據(jù)上一次調(diào)度結(jié)果更新,已被服務(wù)的循環(huán)優(yōu)先級(jí)為N,循環(huán)優(yōu)先級(jí)比N小的加1,優(yōu)先級(jí)等于N的,即被服務(wù)的隊(duì)列優(yōu)先級(jí)為0,循環(huán)優(yōu)先級(jí)比N大的不變;
[0030]步驟4、每個(gè)隊(duì)列混合優(yōu)先級(jí)如果由Μ位二進(jìn)制編碼構(gòu)成,那么調(diào)度需要Μ個(gè)周期完成;
[0031]步驟4.1、所有隊(duì)列混合優(yōu)先級(jí)按位進(jìn)行或運(yùn)算,構(gòu)成Μ個(gè)線或信號(hào)PRI_TOR[M-l],PRI_W0R[M-2],PRI_W0R[M-2],......,PRI_W0R[0];
[0032]步驟4.2、如果某個(gè)隊(duì)列不參與調(diào)度,則該隊(duì)列混合優(yōu)先級(jí)輸出為全0,調(diào)度的目標(biāo)就是在所有參與調(diào)度的隊(duì)列中找出優(yōu)先級(jí)唯一的、最高的混合優(yōu)先級(jí)編號(hào),也就是仲裁優(yōu)先級(jí)編號(hào)ARB_PRI,以及對(duì)應(yīng)的隊(duì)列,仲裁優(yōu)先級(jí)開始調(diào)度時(shí)值為全0 ;
[0033]步驟4.3、首先判斷仲裁優(yōu)先級(jí)ARB_PRI [M_l],如果PRI_TOR[M_1]為1,則ARB_PRI [Μ-1]為1,其余位保持不變,也就是0 ;
[0034]步驟4.4、每個(gè)隊(duì)列混合優(yōu)先級(jí)與仲裁優(yōu)先級(jí)進(jìn)行比較,如果大于等于,混合優(yōu)先級(jí)不變,如果小于混合優(yōu)先級(jí)為全0,不參與調(diào)度的混合優(yōu)先級(jí)為全0 ;
[0035]步驟4.5、繼續(xù)判斷仲裁優(yōu)先級(jí)ARB_PRI [M_2],如果PRI_W0R[M_2]為1,則ARB_PRI [M-2]為1,否則為0,其余位保持不變;
[0036]步驟4.6、每個(gè)隊(duì)列混合優(yōu)先級(jí)與仲裁優(yōu)先級(jí)進(jìn)行比較,如果大于等于,混合優(yōu)先級(jí)不變,如果小于混合優(yōu)先級(jí)為全0,如此反復(fù),直到ARB_PRI最后一位也最終確定下來,則仲裁優(yōu)先級(jí)ARB_PRI為參與調(diào)度隊(duì)列中優(yōu)先級(jí)最高,該隊(duì)列被調(diào)度處;
[0037]步驟4.7、調(diào)度完成后將根據(jù)仲裁優(yōu)先級(jí)中對(duì)應(yīng)循環(huán)優(yōu)先級(jí)的值進(jìn)行循環(huán)優(yōu)先級(jí)更新,已被服務(wù)的循環(huán)優(yōu)先級(jí)為N,循環(huán)優(yōu)先級(jí)比N小的加1,優(yōu)先級(jí)等于N的,即被服務(wù)的隊(duì)列優(yōu)先級(jí)為0,循環(huán)優(yōu)先級(jí)比N大的不變。
【主權(quán)項(xiàng)】
1.一種可配置多優(yōu)先級(jí)調(diào)度方法,其特征在于:包括以下步驟: 1)構(gòu)建混合優(yōu)先級(jí)變量 1.1)采用二進(jìn)制編碼,給所有參與調(diào)度的隊(duì)列分別配置一個(gè)獨(dú)立的配置優(yōu)先級(jí)變量;采用二進(jìn)制編碼,給所有參與調(diào)度的隊(duì)列分別分配一個(gè)默認(rèn)的初始循環(huán)優(yōu)先級(jí)變量;所述循環(huán)優(yōu)先級(jí)變量的編碼從0依次遞增,每個(gè)隊(duì)列的初始循環(huán)優(yōu)先級(jí)不相等; 1.2)將每一個(gè)隊(duì)列的配置優(yōu)先級(jí)變量和循環(huán)優(yōu)先級(jí)變量接連,合并成該隊(duì)列參與調(diào)度的混合優(yōu)先級(jí)變量;如果某個(gè)隊(duì)列不參與調(diào)度,則該隊(duì)列混合優(yōu)先級(jí)變量輸出為全0 ; 2)將所有隊(duì)列的混合優(yōu)先級(jí)變量按二級(jí)制逐位進(jìn)行或運(yùn)算,構(gòu)成Μ位線或優(yōu)先級(jí)變量;所述Μ為混合優(yōu)先級(jí)變量的二級(jí)制編碼的位數(shù);所述線或優(yōu)先級(jí)變量為 PRI_ffOR[M-l],PRI_ffOR[M-2],PRI_ffOR[M-3],......,PRI_W0R[0]; 3)構(gòu)建仲裁優(yōu)先級(jí)變量并賦值 3.1)構(gòu)建Μ位仲裁優(yōu)先級(jí)變量,其初始值全為0 ; 3.2)如果線或優(yōu)先級(jí)變量的[Μ-l]位為1,則將仲裁優(yōu)先級(jí)變量的[Μ-l]位賦值為1,其余位保持不變; 3.3)將每個(gè)隊(duì)列的混合優(yōu)先級(jí)變量與仲裁優(yōu)先級(jí)變量進(jìn)行比較:若混合優(yōu)先級(jí)變量大于等于仲裁優(yōu)先級(jí)變量,則該隊(duì)列的混合優(yōu)先級(jí)變量不變;若混合優(yōu)先級(jí)變量小于仲裁優(yōu)先級(jí)變量,則該隊(duì)列的混合優(yōu)先級(jí)變量輸出為0 ; 3.4)按照步驟3.2至3.3的方法,依次判斷[Μ-l]位,[Μ-2]位,[Μ-3]位,直至[0]位,則仲裁優(yōu)先級(jí)變量賦值完畢;該仲裁優(yōu)先級(jí)變量所對(duì)應(yīng)的隊(duì)列即為優(yōu)先級(jí)最高; 3.5)對(duì)該隊(duì)列調(diào)度處理; 4)更新優(yōu)先級(jí)變量: 4.1)設(shè)已被服務(wù)的隊(duì)列的循環(huán)優(yōu)先級(jí)變量為Ν,則比Ν大的隊(duì)列的循環(huán)優(yōu)先級(jí)變量不變,已被服務(wù)的隊(duì)列的循環(huán)優(yōu)先級(jí)變量更新為0,比Ν大的隊(duì)列的循環(huán)優(yōu)先級(jí)變量均加1 ; 4.2)將仲裁優(yōu)先級(jí)變量更新為全0 ; 5)重復(fù)步驟3和步驟4,進(jìn)行下一次調(diào)度。2.根據(jù)權(quán)利要求1所述的可配置多優(yōu)先級(jí)調(diào)度方法,其特征在于:所述不同隊(duì)列的配置優(yōu)先級(jí)變量可以相同。3.根據(jù)權(quán)利要求1所述的可配置多優(yōu)先級(jí)調(diào)度方法,其特征在于:所述步驟3.4)中,若賦值過程中,剩余隊(duì)列的混合優(yōu)先級(jí)變量均已為0,則仲裁優(yōu)先級(jí)變量賦值完畢。
【專利摘要】本發(fā)明涉及一種可配置多優(yōu)先級(jí)調(diào)度方法,本發(fā)明通過采用可配置優(yōu)先級(jí)和循環(huán)優(yōu)先級(jí),既實(shí)現(xiàn)了優(yōu)先級(jí)可配置,按配置優(yōu)先級(jí)進(jìn)行調(diào)度,又解決了當(dāng)多個(gè)隊(duì)列優(yōu)先級(jí)相等時(shí)公平輪詢調(diào)度的問題,調(diào)度方法簡(jiǎn)單,易于拓展,電路實(shí)現(xiàn)靈活,可應(yīng)用在網(wǎng)絡(luò)通信等應(yīng)用中。
【IPC分類】H04L12/865
【公開號(hào)】CN105376177
【申請(qǐng)?zhí)枴緾N201510930459
【發(fā)明人】田澤, 張榮華, 郭亮, 劉浩, 張亮
【申請(qǐng)人】中國航空工業(yè)集團(tuán)公司西安航空計(jì)算技術(shù)研究所
【公開日】2016年3月2日
【申請(qǐng)日】2015年12月12日