CN1318941C - 一种端口轮询选择方法 - Google Patents

一种端口轮询选择方法 Download PDF

Info

Publication number
CN1318941C
CN1318941C CNB031497640A CN03149764A CN1318941C CN 1318941 C CN1318941 C CN 1318941C CN B031497640 A CNB031497640 A CN B031497640A CN 03149764 A CN03149764 A CN 03149764A CN 1318941 C CN1318941 C CN 1318941C
Authority
CN
China
Prior art keywords
port
priority
order
code translator
selection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB031497640A
Other languages
English (en)
Other versions
CN1581695A (zh
Inventor
李腾跃
雷春
谢建湘
周伟宁
涂君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB031497640A priority Critical patent/CN1318941C/zh
Publication of CN1581695A publication Critical patent/CN1581695A/zh
Application granted granted Critical
Publication of CN1318941C publication Critical patent/CN1318941C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种端口轮询选择的方法,包括:为需要查询的每个端口分别设置一种包括所有端口的优先级排列顺序,且该端口的优先级在其对应的优先级排列顺序中不是最高;每次同时查询所有端口的状态,根据上一次选择的端口对应的优先级排列顺序,从查询到的有效端口中选择出优先级最高的端口,作为本次选择的端口。本发明的端口轮询选择方法通过设置多个不同的优先级排列顺序,并将优先级排列顺序与每个端口对应,轮询时对所有端口同时进行查询,从而实现了对每个端口公平快速的查询选择。

Description

一种端口轮询选择方法
技术领域
本发明涉及逻辑或特定用途集成电路(ASIC)中的端口轮询技术,特别是指一种公平快速的端口轮询选择方法。
背景技术
在逻辑或ASIC设计中,常常需要对多个端口的状态标识进行查询,以便选出一个符合要求的端口进行处理。
目前采用的端口轮询选择方法有公平轮询法和优先级选择法。
公平轮询法的实现原理是按照一定的轮询顺序逐个循环查询各个端口的状态,每个时钟周期查询一个端口,如果该端口状态为无效,则继续在下个时钟周期查询下一个端口;如果该端口状态有效,则该端口被选中,时钟周期等待被选中的端口处理完毕后,再按顺序继续查询下一个端口。公平轮询法的优点是选择过程中所有端口的地位都是平等的,不会存在有的端口得不到服务的问题,但由于该方法每个时钟周期只能查询一个端口,因此轮询效率低。
优先级选择法则是在每个周期同时查询所有端口,这样有可能多个端口同时有效,因此再通过组合逻辑选出优先级最高的端口。该方法的优点是效率高,但不是一种公平的轮询选择方法,当优先级较高的端口业务流量较大时,可能导致优先级低的端口长时间得不到服务。可以看出现有的轮询选择方法很难兼顾公平和快速。
发明内容
有鉴于此,本发明的主要目的在于提供一种公平快速的轮询选择方法,既能够快速的查询每个端口状态,又能够兼顾端口被公平选择的机会。
本发明的一种轮询选择方法,包括以下步骤:
a)为需要查询的每个端口分别设置一种包括所有端口的优先级排列顺序,且每个端口的优先级在其对应的优先级排列顺序中不是最高;
b)每次同时查询所有端口的状态,根据上一次选择的端口对应的优先级排列顺序,从查询到的有效端口中选择出优先级最高的端口,作为本次选择的端口。
该方法较佳的实施例为所述每个端口在其所对应的包括所有端口的优先级排列顺序中为最低。
该方法如果所述需要查询的端口数为n个,对于其中的第m个端口所对应的优先级排列顺序为m+1,m+2,…,n,1,2,…,m-1,m,m、n为正整数。
该方法如果所述需要查询的端口数为n个,对于其中的第m个端口所对应的优先级排列顺序为m-1,m-2,…,1,n,n-1,…,m+1,m,m、n为正整数。
该方法所述步骤b)在第一次查询时选择任意一个端口对应的优先级排列顺序来选择出优先级最高的有效端口。
该方法步骤a)中进一步包括:为每个端口设置一个译码器,用于根据端口对应的优先级排列顺序选择出优先级最高有效端口;则所述步骤b)中每次将查询到的所有端口的状态输入上一次选择端口对应的译码器,该译码器按照自身设置的优先级排列顺序输出的有效端口地址确定为本次选择的端口。
从上述方案可以看出,本发明的轮询选择方法通过设置多个不同的优先级排列顺序,并且巧妙的将优先级排列顺序与每个端口对应,查询时对所有端口同时进行,从而实现了对每个端口公平快速的查询选择。
具体实施方式
下面结合具体实施例对本发明再作进一步详细的说明。
本发明方案为所有需要查询的n个端口设置n种优先级排列顺序,每种优先级排列顺序对应一个端口,并使每个端口在其所对应的优先级排列顺序中,该端口的优先级均不是最高。轮询选择时,每个时钟周期同时查询所有端口,并根据上一次选择的端口所对应的优先级排列顺序,选择出优先级最高的有效端口。这样,当一个端口被选中并服务完成后,在下一个周期的查询时,由于采用该端口所对应的优先级排列顺序,该端口的优先级相对较低,则该端口再次被选中的几率相对减少,从而实现了端口轮询选择的公平快速。
本发明较佳的实施方案描述如下:
假设需要轮询的端口为n个,则对应n个端口设计n种优先级排列顺序,在本实施例中所有端口的优先级顺序按端口号成降序排列,并且每个端口在其所对应的优先级排列顺序中的优先级均为最低。对于端口1,其所对应的优先级排列顺序为2,3,…,n,1。
对于端口2,其所对应的优先级排列顺序为3,4,…,n,1,2。
对于端口m(m小于n),其所对应的优先级排列顺序为m+1,m+2,…,n,1,2,…,m。
对于端口n,其所对应的优先级排列顺序为1,2,…,n。
其中,m、n为正整数。
本实施例中采用译码器来实现对端口的选择功能,按照n种不同的优先级排列顺序设置n个译码器,每个译码器对应一个端口,本实施例中称之为优先级译码器。优先级译码器的输入为查询到的所有端口的状态,输出为根据该译码器对应的优先级排列顺序选出的有效端口的地址。
在每个时钟周期同时查询n个端口,由于可能有多个端口同时有效,则需通过优先级译码器选择其中一个优先级最高的端口。如果为第一次查询,则可以人为指定或随机任意选择一个优先级译码器。将所有端口的状态输入优先级译码器,优先级译码器根据优先级排列顺序所建立的组合逻辑,选出一个优先级最高的有效端口进行服务,当被选中的端口服务完成后,开始进行下一次查询,然后通过和上次被选中端口相对应的优先级译码器选择有效端口。其中,如果所述端口尚处在服务状态,也可在端口的服务完成前先进行查询,待该端口服务完成后再通过优先级译码器选择下一次服务的端口。
以对三个端口轮询,即n=3的情况为例:
各端口连接的优先级译码器真值表,参见表1-3所示。
表1-3中优先级译码器输入3 BIT分别表示3个端口的状态,1表示有效,0为无效,X表示0或1任意。输出2BIT表示选中的端口地址,00代表端口1的地址,01代表端口2的地址,10代表端口3的地址,11为三个端口均无效的地址。
端口1的优先级译码器,参见表1所示:
                                   输入        输出
    1     0     0     00
    X     1     X     01
    X     0     1     10
    0     0     0     11
表1
从表1中可以看出,端口1的优先级译码器输出端的优先级顺序为01、10、00,即分别代表端口2、3、1。
端口2的优先级译码器,参见表2所示:
                           输入       输出
    1     X     0     00
    0     1     0     01
    X     X     1     10
    0     0     0     11
表2
从表2中可以看出,端口2的优先级译码器输出端的优先级顺序为10、00、01,即分别代表端口3、1、2。
端口3的优先级译码器,参见表3所示:
                                    输入        输出
    1     X     X     00
    0     1     X     01
    0     0     1     10
    0     0     0     11
表3
从表3中可以看出,端口3的优先级译码器输出端的优先级顺序为00、01、10,即分别代表端口1、2、3。
在一个时钟周期内同时查询三个端口的状态,假如查询结果为端口1、3有效,端口2无效,将查询结果的端口状态,即101输入优先级译码器,对于第一次可任选一个优先级译码器输入,例如:选择端口2的优先级译码器,则根据表2,该优先级译码器的输出结果将是10,即代表端口3,则将选择端口3进行数据的输入输出服务。下一次查询时,假如查询的结果为端口2、3有效,端口1无效,,并将结果011输入上一次选中端口,即端口3的优先级译码器,由表3可知,端口3的优先级译码器输出结果将为01,即端口2被选中,这是因为端口3的优先级译码器中端口3的优先级最低。
由此可见,端口3没有被连续选中。说明本实施例的方案对每个端口来说都很公平,并且轮询效率很高。
同样,也可以将各端口的优先级按相反的顺序排列,即
对于端口1,其所对应的优先级排列顺序为n,n-1,…,2,1。
对于端口2,其所对应的优先级排列顺序为1,n,…,3,2。
对于端口m(m小于n),其所对应的优先级排列顺序为m-1,m-2,…,1,n,n-1,…,m。
对于端口n,其所对应的优先级排列顺序为n-1,n-2,…,n。
其中,m、n为正整数。其效果不变。
另外,根据本发明思路,端口的优先级还可以采取其它的排列顺序,如果对公平性要求不高,也可以不把端口优先级排在其对应译码器的优先级最低位置,只要端口的优先级在其对应的优先级译码器中不是最高即可实现本发明的公平目的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1、一种端口轮询选择方法,其特征在于,包括以下步骤:
a)为需要查询的每个端口分别设置一种包括所有端口的优先级排列顺序,且每个端口的优先级在其对应的优先级排列顺序中不是最高;
b)每次同时查询所有端口的状态,根据上一次选择的端口对应的优先级排列顺序,从查询到的有效端口中选择出优先级最高的端口,作为本次选择的端口。
2、根据权利要求1所述方法,其特征在于,所述每个端口在其所对应的包括所有端口的优先级排列顺序中为最低。
3、根据权利要求1或2所述方法,其特征在于,如果所述需要查询的端口数为n个,对于其中的第m个端口所对应的优先级排列顺序为m+1,m+2,...,n,1,2,...,m-1,m,m、n为正整数。
4、根据权利要求1或2所述方法,其特征在于,如果所述需要查询的端口数为n个,对于其中的第m个端口所对应的优先级排列顺序为m-1,m-2,...,1,n,n-1,...,m+1,m,m、n为正整数。
5、根据权利要求1所述方法,其特征在于,所述步骤b)在第一次查询时选择任意一个端口对应的优先级排列顺序来选择出优先级最高的有效端口。
6、根据权利要求1所述方法,其特征在于,该方法步骤a)中进一步包括:为每个端口设置一个译码器,用于根据端口对应的优先级排列顺序选择出优先级最高有效端口;
则所述步骤b)中每次将查询到的所有端口的状态输入上一次选择端口对应的译码器,该译码器按照自身设置的优先级排列顺序输出的有效端口地址确定为本次选择的端口。
CNB031497640A 2003-08-05 2003-08-05 一种端口轮询选择方法 Expired - Fee Related CN1318941C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031497640A CN1318941C (zh) 2003-08-05 2003-08-05 一种端口轮询选择方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031497640A CN1318941C (zh) 2003-08-05 2003-08-05 一种端口轮询选择方法

Publications (2)

Publication Number Publication Date
CN1581695A CN1581695A (zh) 2005-02-16
CN1318941C true CN1318941C (zh) 2007-05-30

Family

ID=34579659

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031497640A Expired - Fee Related CN1318941C (zh) 2003-08-05 2003-08-05 一种端口轮询选择方法

Country Status (1)

Country Link
CN (1) CN1318941C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753246A (zh) * 2008-11-28 2010-06-23 华为技术有限公司 轮询的方法和装置
CN103888370B (zh) * 2014-04-02 2017-09-15 新华三技术有限公司 一种选择选中端口的方法和设备
CN107452323B (zh) * 2016-05-31 2020-07-17 无锡华润矽科微电子有限公司 实现任意通道连续扫描的电路及方法
CN110650008B (zh) * 2019-08-30 2023-05-19 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 多端口fc加密方法及装置
CN111930677A (zh) * 2020-08-14 2020-11-13 山东云海国创云计算装备产业创新中心有限公司 一种数据传输方法、装置及电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3959775A (en) * 1974-08-05 1976-05-25 Gte Automatic Electric Laboratories Incorporated Multiprocessing system implemented with microprocessors
US4073005A (en) * 1974-01-21 1978-02-07 Control Data Corporation Multi-processor computer system
US4130864A (en) * 1976-10-29 1978-12-19 Westinghouse Electric Corp. Priority selection circuit for multiported central functional unit with automatic priority reduction on excessive port request
US4313161A (en) * 1979-11-13 1982-01-26 International Business Machines Corporation Shared storage for multiple processor systems
US4449183A (en) * 1979-07-09 1984-05-15 Digital Equipment Corporation Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
US4780812A (en) * 1982-06-05 1988-10-25 British Aerospace Public Limited Company Common memory system for a plurality of computers
CN1373874A (zh) * 1999-09-13 2002-10-09 国际商业机器公司 在多主机计算环境中用于共享存储卷的主机卷映射系统和方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4073005A (en) * 1974-01-21 1978-02-07 Control Data Corporation Multi-processor computer system
US3959775A (en) * 1974-08-05 1976-05-25 Gte Automatic Electric Laboratories Incorporated Multiprocessing system implemented with microprocessors
US4130864A (en) * 1976-10-29 1978-12-19 Westinghouse Electric Corp. Priority selection circuit for multiported central functional unit with automatic priority reduction on excessive port request
US4449183A (en) * 1979-07-09 1984-05-15 Digital Equipment Corporation Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
US4313161A (en) * 1979-11-13 1982-01-26 International Business Machines Corporation Shared storage for multiple processor systems
US4780812A (en) * 1982-06-05 1988-10-25 British Aerospace Public Limited Company Common memory system for a plurality of computers
CN1373874A (zh) * 1999-09-13 2002-10-09 国际商业机器公司 在多主机计算环境中用于共享存储卷的主机卷映射系统和方法

Also Published As

Publication number Publication date
CN1581695A (zh) 2005-02-16

Similar Documents

Publication Publication Date Title
Biryukov et al. Equihash: Asymmetric proof-of-work based on the generalized birthday problem
Jia et al. An efficient anti-collision protocol for RFID tag identification
US5832278A (en) Cascaded round robin request selection method and apparatus
CN108875064B (zh) 基于FPGA的OpenFlow多维数据匹配查找方法
CN100578469C (zh) 存储、查询方法及存储控制器和查询系统
JP2004537921A (ja) 高速パケット転送のための方法及びシステム
CN101655821B (zh) 一种解决地址空间映射哈希地址冲突的方法及装置
CN103475584B (zh) 三态内容寻址存储器(tcam)查询方法和装置
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
CN105515997A (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
CN1318941C (zh) 一种端口轮询选择方法
WO2020114469A1 (zh) 排序方法、装置、电子设备及介质
CN106227673A (zh) 一种基于dma的序列波形合成方法
CN101741722A (zh) 数据交互方法及装置
KR102384685B1 (ko) 비균일 트래픽을 고려한 중앙 집중형 스케줄링 장치 및 방법
JP2002543642A (ja) データ記憶および検索
CN101237417B (zh) 队列索引方法及装置和流量整形的方法及装置
CN108549751A (zh) 寄存器矩阵的布局方法
CN104777786A (zh) 热插拔识别方法及系统
CN109039608A (zh) 一种基于双S核的8-bitAES电路
CN102147720A (zh) 用查找表实现多输入逻辑项之间的运算的装置及方法
EP1290831B1 (en) Communication packet processor with a look-up engine to retrieve context information for a core processor
CN105634999A (zh) 一种介质访问控制地址的老化方法及装置
CN1529458B (zh) 一种程控交换网中大容量无阻碍交换的方法
US20120096238A1 (en) Circuit and method for parallel perforation in speed rate matching

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070530

Termination date: 20170805

CF01 Termination of patent right due to non-payment of annual fee