CN102819510A - 仲裁电路及其仲裁方法 - Google Patents
仲裁电路及其仲裁方法 Download PDFInfo
- Publication number
- CN102819510A CN102819510A CN2011101552405A CN201110155240A CN102819510A CN 102819510 A CN102819510 A CN 102819510A CN 2011101552405 A CN2011101552405 A CN 2011101552405A CN 201110155240 A CN201110155240 A CN 201110155240A CN 102819510 A CN102819510 A CN 102819510A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- serial data
- data processing
- order
- 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.)
- Pending
Links
Images
Abstract
一种仲裁电路及其仲裁方法,用以仲裁来自多个数据处理装置对于共享资源的请求。该仲裁方法包括:产生一第一数据串,以识别该些数据处理装置目前是否正受到服务、产生一第二数据串,以识别该些数据处理装置对于该共享资源的请求,以及平行地对第一及第二数据串进行多个与运算而产生一第三数据串,以识别该些数据处理装置对该共享资源的请求是否可能被获准。由于平行地处理上述的多个请求,故能缩短进行仲裁所需的时间。
Description
技术领域
本发明涉及一种仲裁电路及其仲裁方法,尤其涉及一种可平行处理多个请求的仲裁电路及其仲裁方法。
背景技术
在现有的计算机系统中,当各种周边装置对计算机系统要求系统资源(如CPU、总线频宽、占用地址、输入输出端口、存储器等)时,须有一仲裁机制(Arbitration)对有限的系统共享资源做有效运用。举例来说,对于共用总线的平台(例如:进阶精简指令集机器(Advanced RISCMachine,ARM)平台)而言,平台上有多个知识产权(Intellectual Property,IP)核心,而每个IP核心需要仲裁电路(arbitrating circuit)来决定由当下由哪一个IP核心使用此共用总线。上述的仲裁电路需要非常公平地处理来自各IP核心的请求,否则会造成系统有不正常结果。
一般而言,仲裁电路会使用轮替(round-robin)的方式决定各IP核心的使用顺序。上述轮替的仲裁方式虽公平,但在实现此轮替方式时,传统的仲裁电路须一一地对每个IP核心轮流地进行判断。这种串列式判断会造成整个判断时间冗长,并导致效能过低。尤其是当IP核心的数目变多时,判断时间冗长的程度会更加地显著。
请参考图1,图1为现有仲裁电路10应用于多个数据处理装置IP0~IP3及共享资源20的功能方框图。如图1所示的示意图,其中有多个数据处理装置(在此以四个为例)IP0、IP1、IP2及IP3,分别向仲裁电路10发出对于共享资源20的请求。仲裁电路10在接收到来自上述数据处理装置IP0~IP3的请求后,会依据数据处理装置IP0~IP3使用共享资源20的优先获准次序,处理来自上述数据处理装置IP0~IP3的请求。而仲裁电路10仲裁各数据处理装置的请求时,则可采用上述的轮替方式。
请参考图2,图2为图1仲裁电路10以轮替的仲裁方式处理各数据处理装置的请求时,最高优先权的轮替顺序。其中,上述各数据处理装置IP0~IP3取得仲裁电路10的最高优先权的轮替顺序为:IP0→IP1→IP2→IP3→IP0...。各数据处理装置IP0~IP3会依据上述的轮替顺序取得最高优先权,而获得最高优先权的数据处理装置其请求会被最优先处理。此外,当某一数据处理装置获得最高优先权时,其他数据处理装置的优先权层级会依序地递减。举例来说,当数据处理装置IP0取得最高优先权时,则仲裁电路10处理各数据处理装置的请求的优先获准次序为IP0→IP1→IP2→IP3;当数据处理装置IP1取得最高优先权时,则仲裁电路10处理各数据处理装置的请求的优先获准次序为IP1→IP2→IP3→IP0,以此类推。
然而,为达成图2所示的轮替顺序,仲裁电路10必须一一地对每个数据处理装置IP0~IP3轮流地作串列式的判断。请参考图3,图3为图1的仲裁电路10于仲裁各数据处理装置IP0~IP3的请求时所执行的虚拟码(pseudo-code)。其中,仲裁电路10会先判断目前正在服务哪一个数据处理装置。接着,仲裁电路10再依据所有数据处理装置IP0~IP3的优先获准次序,逐一地判断是否有来自各数据处理装置IP0~IP3的请求。因上述的判断方式是逐一地判断,会造成判断时间冗长,并导致仲裁电路10的效能过低。
发明内容
本发明提供一种仲裁方法,可平行处理来自多个数据处理装置对于共享资源的请求,以缩短进行仲裁所需的时间。
本发明提供一种仲裁电路,可平行处理来自多个数据处理装置对于共享资源的请求,以加快进行仲裁时的速度。
本发明提出一种仲裁方法,用以仲裁来自多个数据处理装置对于共享资源的请求。上述的仲裁方法包括依据上述数据处理装置目前被服务的状况,产生第一数据串。第一数据串用于识别上述数据处理装置目前是否正受到服务。上述的仲裁方法还包括依据上述数据处理装置对于共享资源的请求,产生第二数据串,第二数据串用以识别上述数据处理装置对于共享资源的请求。上述的仲裁方法还包括平行地对第一数据串及第二数据串的对应位元进行多个与(AND)运算,以平行地产生第三数据串的多个位元,第三数据串用于识别上述数据处理装置对共享资源的请求是否可能被获准。上述的仲裁方法亦包括基于上述数据处理装置的优先获准次序,依据第三数据串产生最终数据串,最终数据串用以识别上述数据处理装置当中何者对于共享资源的请求确定被获准。
本发明提出一种仲裁电路,用以仲裁来自多个数据处理装置对于共享资源的请求。上述的仲裁电路包括第一模组、第二模组以及第三模组。第一模组用以依据上述数据处理装置目前被服务的状况,产生第一数据串。第一数据串用于识别上述数据处理装置目前是否正受到服务。第二模组用以接收第二数据串,而第二数据串用以识别上述数据处理装置对于共享资源的请求。第二模组还用以平行地对第一数据串及第二数据串的对应位元进行多个与运算,以平行地产生第三数据串的多个位元。第三数据串用于识别上述数据处理装置对共享资源的请求是否可能被获准。第三模组用以基于上述数据处理装置的优先获准次序,依据第三数据串产生最终数据串,而最终数据串用以识别上述数据处理装置当中何者对于共享资源的请求确定被获准。
在本发明的一实施例中,上述产生第一数据串的步骤包含:依据上述数据处理装置目前被服务的状况,产生位元数与上述数据处理装置的总数相同的较短数据串;以及将较短数据串扩展成位元数高于上述数据处理装置总数的第一数据串。
在本发明的一实施例中,上述的较短数据串的每一个位元分别与上述数据处理装置中的一个数据处理装置相对应,用以识别对应的数据处理装置目前是否正受到服务。
在本发明的一实施例中,上述的较短数据串为以G[N:0]表示的(N+1)位元数据串,其中N=(上述数据处理装置的总数-1),G[m]=1以表示第m个数据处理装置正被服务,N≥m≥0,且G[N:0]的(N+1)个位元中仅有一个位元等于1。
在本发明的一实施例中,上述的第一数据串的每一个位元分别与上述数据处理装置中的一个数据处理装置相对应,用以识别对应数据处理装置是否被允许作为上述核准候选数据处理装置当中的一者。
在本发明的一实施例中,上述的第一数据串为以A[2N:0]表示的(2N+1)位元数据串,其中N=(上述数据处理装置的总数-1),且当第m个数据处理装置正被服务时,A[2N:0]的(2N+1)个位元中的第m个位元至第(m+N)个位元为1其余位元为0,N≥m≥0。
在本发明的一实施例中,上述的第二数据串的每一个位元分别与上述数据处理装置中的数据处理装置相对应,用以识别对应数据处理装置是否发出对于共享资源的请求。
在本发明的一实施例中,上述的第二数据串为以R[N:0]表示的(N+1)位元数据串,其中N=(上述数据处理装置的总数-1),且当R[x]=1时,表示第x个数据处理装置发出对于共享资源的请求,N≥x≥0。
在本发明的一实施例中,上述的第三数据串的每一个位元分别与上述数据处理装置中的一个数据处理装置相对应,用以识别对应数据处理装置对共享资源的请求是否可能被获准。
在本发明的一实施例中,上述的第三数据串为以B[2N:0]表示的(2N+1)位元数据串,其中N=(上述数据处理装置的总数-1),当B[x]=1时,表示第x个数据处理装置发出对于共享资源的请求可能被获准,N≥x≥0,而当B[y]=1时,表示第(y-(N+1))个数据处理装置发出对于共享资源的请求可能被获准,2N≥y≥N+1。
在本发明的一实施例中,上述的第一数据串为以A[2N:0]表示的(2N+1)位元数据串,第二数据串为以R[N:0]表示的(N+1)位元数据串,以及B[y’]=A[y’]·R[z],2N≥y’≥0,当N≥y’≥0时,z=y’,而当2N≥y’≥(N+1)时,z=(y′-N-1)。
在本发明的一实施例中,上述的最终数据串的每一个位元分别与上述数据处理装置中的一个数据处理装置相对应,用以识别对应数据处理装置对共享资源的请求是否确定被获准。
在本发明的一实施例中,上述的最终数据串为以G’[N:0]表示的(N+1)位元数据串,其中N=(上述数据处理装置的总数-1),G’[m’]=1表示第m’个数据处理装置对共享资源的请求确定被获准,N≥m’≥0,且最终数据串G’[N:0]的(N+1)位元中仅有一个位元等于1。
在本发明的一实施例中,上述的产生最终数据串的步骤包括:依据上述优先获准次序,自第三数据串中排除上述可能被获选的数据处理装置当中的优先获准次序较低者,以产生一第四数据串,第四数据串用于识别上述可能被获选的数据处理装置当中优先顺序最高者;以及依据第四数据串,产生最终数据串。
在本发明的一实施例中,上述的第四数据串的每一个位元分别与上述数据处理装置中的一个数据处理装置相对应,用以识别对应数据处理装置是否具有最高优先顺序。
在本发明的一实施例中,上述的第四数据串为以C[2N:0]表示的(2N+1)位元数据串,其中N=(上述数据处理装置的总数-1),C[x]=1表示第x个数据处理装置具有最高优先顺序,N≥x≥0,当C[y]=1时,第y个数据处理装置具有最高优先顺序,2N≥y≥N+1。
在本发明的一实施例中,上述的第三数据串为以B[2N:0]表示的(2N+1)位元数据串,且当2N≥P≥N+1时,若B[P]=1且B[(P-N):(P-1)]中的每个位元都为0时,则C[P]等于1,否则为0;以及当N≥P≥1时,若B[P]=1且B[0:(P-1)]中的每个位元都为0时,则C[P]等于1,否则为0。
在本发明的一实施例中,上述依据第四数据串以产生最终数据串的步骤包括将位元数高于上述数据处理装置的总数的第四数据串缩减为位元数与上述数据处理装置的总数相同的最终数据串。
在本发明的一实施例中,上述的将第四数据串缩减为最终数据串的步骤包括:对第四数据串当中对应至相同数据处理装置的多个位元平行地进行多个或(OR)运算,以产生最终数据串。
在本发明的一实施例中,上述的第四数据串为以C[2N:0]表示的(2N+1)位元数据串,最终数据串为以G’[N:0]表示的(N+1)位元数据串,其中N=(上述数据处理装置的总数-1),且G’[N]=C[N],而G’[Q]等于C[Q]与C[Q+N+1]进行或(OR)运算的结果,(N-1)≥Q≥0。
在本发明的一实施例中,上述的第一模组依据上述数据处理装置目前被服务的状况,产生位元数与上述数据处理装置的总数相同的一较短数据串,以及将较短数据串扩展成位元数高于上述数据处理装置总数的第一数据串。
在本发明的一实施例中,上述的第二模组包括多个与门(AND gate),上述与门当中每一者用以对第一数据串的一个对应位元以及第二数据串的一个对应位元进行与运算,以输出第三数据串的一个对应位元。
在本发明的一实施例中,上述的第三模组包括第一子模组以及第二子模组。第一子模组用以依据上述优先获准次序,自第三数据串中排除上述可能被获选的数据处理装置当中的优先获准次序较低者,以产生一第四数据串,而第四数据串用于识别上述可能被获选的数据处理装置当中优先顺序最高者。第二子模组用以依据第四数据串产生最终数据串。
在本发明的一实施例中,上述的第一子模组包括多个与门(ANDgate),上述与门当中每一者用以依据由第三数据串所获得的多个位元进行与运算,以产生第四数据串的一个对应位元。
在本发明的一实施例中,上述的多个位元包括第三数据串当中的一个对应位元以及第三数据串当中优先获准次序低于上述对应位元的一个至多个位元的反相位元。
在本发明的一实施例中,上述的第二子模组包括多个或门(ORgate),上述或门当中每一者用以对第四数据串对应至相同数据处理装置的多个位元平行地进行或(OR)运算,以产生最终数据串的一个对应位元。
基于上述,本发明的上述实施例中的仲裁电路因平行地对第一数据串及第二数据串的对应位元进行多个与(AND)运算,以平行地产生第三数据串及最终数据串的多个位元,故仲裁电路的判断时间会缩短,并使其仲裁请求时的效率提升。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1为现有仲裁电路应用于多个数据处理装置及共享资源的功能方框图。
图2为图1仲裁电路以轮替的仲裁方式处理各数据处理装置的请求时,最高优先权的轮替顺序。
图3为图1的仲裁电路于仲裁各数据处理装置的请求时的虚拟码。
图4为本发明一实施例的仲裁电路应用于多个数据处理装置及共享资源的功能方框图。
图5为图4的仲裁电路的功能方框图。
图6为依据本发明一实施例的仲裁方法的流程图。
图7为本发明一实施例的仲裁电路应用于多个数据处理装置及共享资源的功能方框图。
图8为图7仲裁电路以轮替的仲裁方式处理各数据处理装置的请求时,最高优先权的轮替顺序。
图9为图7的仲裁电路的功能方框图。
附图标记:
P0~PN:数据处理装置
10、40、70:仲裁电路
20、41、71:共享资源
42、72:第一模组
43、73:第二模组
44(0)~44(6)、47(1)~47(6)、74(0)~74(2N)、77(1)~77(2N):与门
45、75:第三模组
46、76:第一子模组
48、78:第二子模组
49(0)~49(2)、79(0)~79(N-1):或门
G[3:0]、G[N:0]:较短数据串
A[6:0]、A[2N:0]:第一数据串
R[3:0]、R[N:0]:第二数据串
B[6:0]、B[2N:0]:第三数据串
C[6:0]、C[2N:0]:第四数据串
G’[3:0]、G’[N:0]:最终数据串
A[0]~A[2N]、R[0]~R[N]、B[0]~B[2N]、C[0]~C[2N]、G’[0]~G’[N]:位元
S62~S68:步骤
具体实施方式
请参考图4,图4为本发明一实施例的仲裁电路40应用于多个数据处理装置IP0~IP3及共享资源41的功能方框图。如图4所示,其中有多个数据处理装置(此图以四个为例)IP0、IP1、IP2及IP3,可分别向仲裁电路40发出对于共享资源41的请求,以使用共享资源41。仲裁电路40在接收到来自上述数据处理装置IP0~IP3的请求后,会依据数据处理装置IP0~IP3使用共享资源41的优先获准次序,仲裁数据处理装置IP0~IP3的请求。以下将会详细说明,仲裁电路40的一主要特征在于,其仲裁各数据处理装置的请求的方式为“平行式”的判断方式。
另一方面,关于各数据处理装置IP0~IP3取得仲裁电路10的最高优先权的顺序安排,亦可采用各种传统的轮替顺序。较佳地,可采用如图2所示的轮替方式,亦即为:IP0→IP1→IP2→IP3→IP0...。各数据处理装置IP0~IP3会依据上述的轮替顺序取得最高优先权,而获得最高优先权的数据处理装置其请求会被最优先处理。此外,当某一数据处理装置获得最高优先权时,其他数据处理装置的优先权层级会依序地递减。举例来说,当数据处理装置IP0取得最高优先权时,仲裁电路40处理各数据处理装置的请求的优先获准次序由高至低依序为IP0→IP1→IP2→IP3;当数据处理装置IP1取得最高优先权时,仲裁电路10处理各数据处理装置的请求的优先获准次序由高至低依序为IP1→IP2→IP3→IP0;其余数据处理装置取得最高优先权时的优先获准次序可以此类推。
请参考图5,图5为图4的仲裁电路40的功能方框图。仲裁电路40包括第一模组42、第二模组43以及第三模组45。第一模组42依据上述各数据处理装置IP0~IP3目前被服务的状况,而产生第一数据串A[6:0],并将其提供给第二模组43。第一数据串A[6:0]用于识别上述各数据处理装置IP0~IP3目前是否正受到仲裁电路40的服务,而由仲裁电路40所服务的数据处理装置得以使用共享资源41。
第二模组43则接收第二数据串R[3:0],第二数据串R[3:0]用以识别上述数据处理装置IP0~IP3分别是否发出对于共享资源41的请求。此外,第二模组43还平行地对第一数据串A[6:0]及第二数据串R[3:0]的对应位元进行多个与(AND)运算,以平行地产生第三数据串B[6:0]的多个位元,并将其提供给第三模组45。第三数据串B[6:0]用以识别上述数据处理装置IP0~IP3对共享资源41的请求分别是否可能被获准。
第三模组45则用以基于数据处理装置IP0~IP3的一优先获准次序,依据第三数据串B[6:0]产生最终数据串G’[3:0]。其中,最终数据串G’[3:0]用以识别上述数据处理装置IP0~IP3当中何者对于共享资源41的请求确定被获准。
值得注意的是,由于仲裁电路40平行地对第一数据串A[6:0]及第二数据串R[3:0]的对应位元进行多个与(AND)运算,以平行地产生第三数据串及最终数据串的多个位元,故相较于传统串列式的判断方式,仲裁电路40的判断时间会缩短,而使其效能提升。以下将针对第一至第三模组的个别细部结构与操作以及相关数据串的内容作详细说明。
第一模组42与第一数据串A[6:0]
关于第一数据串A[6:0]的内容,如前所述,第一数据串A[6:0]用于识别上述各数据处理装置IP0~IP3目前是否正受到服务。较佳地,第一数据串A[6:0]为位元数高于上述各数据处理装置IP0~IP3总数的一数据串,譬如为一7位元长度的数据串。其中,位元A[0]和A[4]对应于数据处理装置IP0,位元A[1]和A[5]对应于数据处理装置IP1,位元A[2]和A[6]对应于数据处理装置IP2,位元A[3]对应于数据处理装置IP3。此外,可安排以位元A[0]→A[1]→A[2]→A[3]→A[4]→A[5]→A[6]的顺序来检查哪一个位元为“1”,并安排第一个被检查出为“1”的位元其所对应的数据处理装置即为目前正由仲裁电路40所服务的数据处理装置。举例来说,假设第一数据串A[6:0]的最高有效位元(the Most Significant Bit,MSB)和最低有效位元(the Least Significant Bit,LSB)分别为位元A[6]及A[0],则当第一数据串A[6:0]等于“0111100”时,因依据上述的检查顺序,位元A[2]将会是第一个被检查出为“1”的位元,故位元A[2]所对应的数据处理装置IP2即为目前正被仲裁电路40所服务的数据处理装置。又例如,当第一数据串A[6:0]等于“0001111”时,因位元A[0]是第一个被检查出为“1”的位元,故位元A[0]所对应的数据处理装置IP0即为目前正被仲裁电路40所服务的数据处理装置。
在一特定实施例中,第一模组42首先会依据上述各数据处理装置IP0~IP3目前被服务的状况,产生位元数与上述各数据处理装置IP0~IP3的总数相同的一较短数据串G[3:0],之后再将上述较短数据串G[3:0]扩展成位元数高于上述各数据处理装置IP0~IP3总数的第一数据串A[6:0]。
举例来说,由于本实施例中数据处理装置IP0~IP3的总数为4,因此上述较短数据串G[3:0]的长度会等于4位元。较短数据串G[3:0]的每一个位元可对应一个数据处理装置。较佳地,位元G[0]对应于数据处理装置IP0,位元G[1]对应于数据处理装置IP1,位元G[2]对应于数据处理装置IP2,而位元G[3]对应于数据处理装置IP3。在每一时间点,较短数据串G[3:0]只有一个位元会为“1”,而其他位元会为“0”。较短数据串G[3:0]中其值为“1”的位元所对应的数据处理装置即为正被仲裁电路40所服务的数据处理装置。
举例来说,假设较短数据串G[3:0]的最高有效位元和最低有效位元分别为G[3]及G[0],则当较短数据串G[3:0]等于“0010”时,因位元G[1]为“1”,故位元G[1]所对应的数据处理装置IP1即为正被仲裁电路40所服务的数据处理装置。又例如,当较短数据串G[3:0]等于“1000”时,因位元G[3]为“1”,故位元G[3]所对应的数据处理装置IP3即为正被仲裁电路40所服务的数据处理装置。
接下来,第一模组42就可将上述较短数据串G[3:0]扩展成第一数据串A[6:0]。较佳地,当第m个数据处理装置正被服务时,第一数据串A[6:0]的第m个位元至第(m+N)个位元可安排为1,而其余位元则可安排为0,其中N等于上述多个数据处理装置IP0~IPN的总数减一,且N≥m≥0。举例来说,N在本实施例中等于3,倘若G[1]为“1”,则A[1]=A[2]=A[3]=A[4]=1,而A[0]=A[5]=A[6]=0。如此,第一模组42即可将较短数据串G[3:0]扩展成第一数据串A[6:0]。
第二模组43与第二及第三数据串R[3:0]及B[6:0]
关于第二数据串R[3:0]的内容,如前所述,第二数据串R[3:0]用以识别上述数据处理装置IP0~IP3对于共享资源41的请求。较佳地,第二数据串R[3:0]的每一个位元可分别与上述多个数据处理装置IP0~IP3中的一个数据处理装置相对应,用以识别所对应的数据处理装置是否发出对于共享资源41的请求。详言之,可安排位元R[0]对应于数据处理装置IP0,位元R[1]对应于数据处理装置IP1,位元R[2]对应于数据处理装置IP2,而位元R[3]对应于数据处理装置IP3。当数据处理装置IP0~IP3中的任一数据处理装置发出对于共享资源41的请求时,其在第二数据串R[3:0]对应的位元会为“1”;反之,若第二数据串R[3:0]的任一位元为“0”,则表示其对应的数据处理装置并未发出对于共享资源41的请求。
举例来说,假设第二数据串R[3:0]的最低有效位元及最低有效位元分别为位元R[3]和位元R[0],则当第二数据串R[3:0]等于“1011”时,则表示数据处理装置IP0、IP1及IP3发出对于共享资源41的请求,而数据处理装置IP2则未发出对于共享资源41的请求。又例如,当第二数据串R[3:0]等于“0110”时,则表示数据处理装置IP1及IP2发出对于共享资源41的请求,而数据处理装置IP0及IP3则未发出对于共享资源41的请求。
关于第三数据串B[6:0]的内容,如前所述,第三数据串B[6:0]用以识别上述数据处理装置IP0~IP3对共享资源41的请求分别是否可能被获准。较佳地,第三数据串B[6:0]的每一个位元分别可与上述数据处理装置IP0~IP3中的一数据处理装置相对应,用以识别对应数据处理装置对共享资源41的请求是否可能被获准。在本实施例中,可安排位元B[0]和B[4]对应于数据处理装置IP0,位元B[1]和B[5]对应于数据处理装置IP1,位元B[2]和B[6]对应于数据处理装置IP2,位元B[3]对应于数据处理装置IP3。当第三数据串B[6:0]的任一位元为“1”时,则表示为“1”的该位元所对应的数据处理装置发出对于共享资源41的请求可能被获准。
图5亦显示第二模组43的细部结构的一实施例。如图5所示,第二模组43可包括多个与门(AND gate)44(0)~44(6),每一与门44(0)~44(6)用以对第一数据串A[6:0]的一对应位元以及第二数据串R[3:0]的一对应位元进行与运算,以输出第三数据串B[6:0]的一对应位元。
详言之,与门44(0)对位元A[0]和位元R[0]进行与运算,以输出位元B[0];与门44(1)对位元A[1]和位元R[1]进行与运算,以输出位元B[1];与门44(2)对位元A[2]和位元R[2]进行与运算,以输出位元B[2];与门44(3)对位元A[3]和位元R[3]进行与运算,以输出位元B[3];与门44(4)对位元A[4]和位元R[0]进行与运算,以输出位元B[4];与门44(5)对位元A[5]和位元R[1]进行与运算,以输出位元B[5];与门44(6)对位元A[6]和位元R[2]进行与运算,以输出位元B[6]。因第三数据串B[6:0]的每一位元为第一数据串A[6:0]的一对应位元以及第二数据串R[3:0]的一对应位元进行与运算后的结果,故当第三数据串B[6:0]中有为“1”的位元时,则表示该位元所对应的数据处理装置有发出请求,亦表示该数据处理装置同时也是一个核准候选数据处理装置。
第三模组45与最终数据串G’[3:0]
关于最终数据串G’[3:0]的内容,如前所述,最终数据串G’[3:0]用以识别上述数据处理装置IP0~IP3当中何者对于共享资源41的请求确定被获准。较佳地,最终数据串G’[3:0]的每一个位元分别可与上述数据处理装置IP0~IP3中的一个数据处理装置相对应,用以识别对应的数据处理装置对共享资源41的请求是否确定被获准。详言之,最终数据串G’[3:0]的四个位元G[0]、G[1]、G[2]和G[3]分别对应数据处理装置IP0、IP1、IP2和IP3。最终数据串G’[3:0]的所有位元中仅有一个位元等于“1”,其余位元则为“0”,而最终数据串G’[3:0]中等于“1”的位元所对应的数据处理装置为确定被获准的数据处理装置。举例来说,倘若G’[2]为“1”,则表示仲裁电路40选定数据处理装置IP2为确定被获准的数据处理装置,亦即数据处理装置IP2对共享资源41的请求确定被获准。因仲裁电路40每一时间只会允许一个数据处理装置的请求,故最终数据串G’[3:0]的多个位元中仅有一个位元会等于1。
第三模组45可基于譬如图2所示的优先获准次序,产生最终数据串G’[3:0],而使得最终数据串G’[3:0]的多个位元中仅有一个位元等于1。举例来说,当上述的优先获准次序为IP2→IP3→IP0→IP1,而第三数据串B[6:0]=“0111000”时,依据第三数据串B[6:0]可知数据处理装置IP3、IP0及IP1为核准候选数据处理装置并发出对于共享资源41的请求,故基于IP2→IP3→IP0→IP1的优先获准次序,数据处理装置IP3的请求会被获准。因此,在上述情况下,最终数据串G’[3:0]会等于“1000”,以识别数据处理装置IP3对于共享资源41的请求确定被获准。又例如,举例来说,当上述的优先获准次序为IP0→IP1→IP2→IP3,而第三数据串B[6:0]=“001110”时,依据第三数据串B[6:0]可知数据处理装置IP1、IP2及IP3为核准候选数据处理装置并发出对于共享资源41的请求,故基于IP0→IP1→IP2→IP3的优先获准次序,数据处理装置IP1的请求会被获准,而在上述情况下,最终数据串G’[3:0]会等于“0010”。
图5亦显示第三模组45的细部结构的一实施例。如图5所示,第三模组45包括第一子模组46以及第二子模组48。第一子模组46用以依据上述的优先获准次序,自第三数据串B[6:0]中排除上述可能被获选的数据处理装置当中的优先获准次序较低者,以产生第四数据串C[6:0]。换言之,第四数据串C[6:0]用于识别上述可能被获选的数据处理装置当中优先顺序最高者。第二子模组48再依据第四数据串C[6:0]产生上述的最终数据串G’[3:0]。以下将再针对第一子模组46以及第二子模组48的细部结构与相关数据串作详细说明。
关于第四数据串C[6:0]的内容,如前所述,第四数据串C[6:0]用于识别可能获选的数据处理装置中优先次序最高者。较佳地,第四数据串C[6:0]的每一个位元可皆对应于一个数据处理装置。详言之,位元C[0]和C[4]对应于数据处理装置IP0,位元C[1]和C[5]对应于数据处理装置IP1,位元C[2]和C[6]对应于数据处理装置IP2,而位元C[3]对应于数据处理装置IP3。举例来说,假设第四数据串C[6:0]的最高有效位元和最低有效位元分别为C[6]和C[0],则当第四数据串C[6:0]等于“0000100”时,因位元C[2]等于“1”,故位元C[2]所对应的数据处理装置IP2为可能被获选的数据处理装置当中优先顺序最高者。
此外,第一子模组46会依据譬如图2所示的优先获准次序,自第三数据串B[6:0]中排除上述可能被获选的数据处理装置当中的优先获准次序较低者,以产生第四数据串C[6:0]。举例来说,在优先获准次序设定为IP1→IP2→IP3→IP0的情况下,当第三数据串B[6:0]=“0010110”时,由第三数据串B[6:0]可知可能被获选的数据处理装置包括数据处理装置IP1、IP2及IP0,故基于IP1→IP2→IP3→IP0的优先获准次序,数据处理装置IP1、IP2及IP0当中的其优先顺序为最高者的数据处理装置IP1会被保留,而其余两个可能被获选但优先获准次序较低的数据处理装置IP1和IP0则会被排除。如此,第四数据串C[6:0]会等于“0000100”。
图5亦显示第一子模组46的细部结构的一实施例。如图5所示,第一子模组46可包括多个与门47(1)~47(6)。每一与门47(1)~47(6)用以依据由第三数据串B[6:0]所获得的多个位元进行与运算,以产生第四数据串C[6:0]的一对应位元。上述依据由第三数据串B[6:0]所获得的多个位元包括第三数据串B[6:0]当中的一对应位元以及第三数据串B[6:0]当中优先获准次序低于上述对应位元的一至多个位元的反相位元。
更具体言之,在如图所示的范例中,位元B[0]会先被反相后再通过与门47(1)与位元B[1]进行与运算,以产生位元C[1]。位元B[0]~B[1]会先被反相后再通过与门47(2)与位元B[2]进行与运算,以产生位元C[2]。位元B[0]~B[2]会先被反相后再通过与门47(3)与位元B[3]进行与运算,以产生位元C[3]。位元B[1]~B[3]会先被反相后再通过与门47(4)与位元B[4]进行与运算,以产生位元C[4]。位元B[2]~B[4]会先被反相后再通过与门47(5)与位元B[5]进行与运算,以产生位元C[5]。位元B[3]~B[5]会先被反相后再通过与门47(6)与位元B[6]进行与运算,以产生位元C[6]。此外,位元C[0]会等于位元B[0]。换言之,与门47(1)依据位元B[0]~B[1]产生位元C[1];与门47(2)依据位元B[0]~B[2]产生位元C[2];与门47(3)依据位元B[0]~B[3]产生位元C[3];与门47(4)依据位元B[1]~B[4]产生位元C[4];与门47(5)依据位元B[2]~B[5]产生位元C[5];与门47(6)依据位元B[3]~B[6]产生位元C[6]。
图5亦显示第二子模组48的细部结构的一实施例。如图5所示,第二子模组48可包括多个或门(OR gate)49(0)~49(2),每一或门49(0)~49(2)用以对第四数据串C[6:0]对应至相同数据处理装置的多个位元平行地进行或(OR)运算,以产生最终数据串G’[3:0]的一对应位元。更具体言之,或门49(0)对位元C[0]和C[4]进行或运算,以产生位元G’[0]。或门49(1)对位元C[1]和C[5]进行或运算,以产生位元G’[1]。或门49(2)对位元C[2]和C[6]进行或运算,以产生位元G’[2]。此外。位元G’[3]会等于位元C[3]。
请参考图6并同时参照图4及5,图6为依据本发明一实施例的仲裁方法的流程图。图6所示的仲裁方法用以仲裁来自多个数据处理装置IP0~IP3对于共享资源41的请求。在步骤S62中,第一模组42依据各数据处理装置IP0~IP3目前被服务的状况,产生第一数据串A[6:0],而第一数据串A[6:0]用于识别上述数据处理装置IP0~IP3目前是否正受到服务。在步骤S64中,仲裁电路40依据上述数据处理装置IP0~IP3对于共享资源41的请求,产生第二数据串R[3:0],而第二数据串R[3:0]用以识别上述数据处理装置IP0~IP3对于共享资源41的请求。在步骤S66中,第二模组43平行地对第一数据串A[6:0]及第二数据串R[3:0]的对应位元进行多个与运算,以平行地产生第三数据串B[6:0]的多个位元,而第三数据串B[6:0]用于识别上述数据处理装置IP0~IP3对共享资源41的请求是否可能被获准。在步骤S68中,第三模组45基于上述数据处理装置IP0~IP3的优先获准次序,依据第三数据串B[6:0]产生最终数据串G’[3:0],而最终数据串G’[3:0]用以识别上述数据处理装置IP0~IP3当中何者对于共享资源41的请求确定被获准。
相较于现有技术中的仲裁电路采用串列式的判断,而造成整个判断时间冗长,并导致效能过低。本发明的上述实施例中的仲裁电路40因平行地对第一数据串A[6:0]及第二数据串R[3:0]的对应位元进行多个与(AND)运算,以平行地产生第三数据串B[6:0]及最终数据串G’[3:0]的多个位元,故仲裁电路40的判断时间会缩短,而使其效能提升。
值得注意的是,在上述实施例中,以四个数据处理装置IP0~IP3为例,但本发明并不以此为限。本领域中的普通技术人员应可明白本发明亦适用于仲裁其他数目的数据处理装置的请求。
请参考图7,图7为本发明一实施例的仲裁电路70应用于多个数据处理装置IP0~IPN及共享资源71的功能方框图,其中N为正整数。数据处理装置IP0~IPN可分别向仲裁电路70发出对于共享资源71的请求,以使用共享资源71。仲裁电路70在接收到来自上述数据处理装置IP0~IPN的请求后,会依据数据处理装置IP0~IPN使用共享资源71的优先获准次序,仲裁数据处理装置IP0~IPN的请求。仲裁电路70仲裁各数据处理装置IP0~IPN的请求的方式亦为“平行式”的判断方式。
另一方面,关于各数据处理装置IP0~IPN取得仲裁电路10的最高优先权的顺序安排,亦可采用各种传统的轮替顺序。较佳地,可采用如图8所示的轮替方式,亦即为:IP0→IP1→IP2→IP3→...→IPN→IP0。各数据处理装置IP0~IPN会依据上述的轮替顺序取得最高优先权,而获得最高优先权的数据处理装置其请求会被最优先处理。此外,当某一数据处理装置获得最高优先权时,其他数据处理装置的优先权层级则依序地递减。举例来说,当数据处理装置IP0取得最高优先权时,仲裁电路70处理各数据处理装置的请求的优先获准次序由高至低依序为IP0→IP1→IP2→IP3→...→IPN。又例如,当数据处理装置IP1取得最高优先权时,仲裁电路10处理各数据处理装置的请求的优先获准次序由高至低依序为IP1→IP2→IP3→...→IPN→IP0。其余数据处理装置取得最高优先权时的优先获准次序可以此类推。
请参考图9,图9为图7的仲裁电路70的功能方框图。仲裁电路70包括第一模组72、第二模组73以及第三模组75。第一模组73用以依据上述多个数据处理装置IP0~IPN目前被服务的状况,产生第一数据串A[2N:0]。其中,第一数据串A[2N:0]用于识别上述多个数据处理装置IP0~IPN目前是否正受到仲裁电路70的服务,而由仲裁电路70所服务的数据处理装置得以使用共享资源71。在本实施例中,第一数据串为以A[2N:0]表示的(2N+1)位元数据串,而N等于上述多个数据处理装置IP0~IPN的总数减一。
第二模组73则接收第二数据串R[N:0],第二数据串R[N:0]用以识别上述数据处理装置IP0~IPN分别是否发出对于共享资源71的请求。此外,第二模组73还平行地对第一数据串A[2N:0]及第二数据串R[N:0]的对应位元进行多个与(AND)运算,以平行地产生第三数据串B[2N:0]的多个位元,并将第三数据串B[2N:0]的多个位元提供给第三模组75。第三数据串B[2N:0]用以识别上述数据处理装置IP0~IPN对共享资源71的请求分别是否可能被获准。
第三模组75则用以基于数据处理装置IP0~IPN的一优先获准次序,依据第三数据串B[2N:0]产生最终数据串G’[N:0]。其中,最终数据串G’[N:0]用以识别上述数据处理装置IP0~IPN当中何者对于共享资源71的请求确定被获准。
值得注意的是,由于仲裁电路70平行地对第一数据串A[2N:0]及第二数据串R[N:0]的对应位元进行多个与(AND)运算,以平行地产生第三数据串及最终数据串的多个位元,故相较于传统串列式的判断方式,仲裁电路70的判断时间会缩短,而使其效能提升。以下将针对第一模组72、第二模组73及第三模组75的个别细部结构与操作以及相关数据串的内容作详细说明。
第一模组72与第一数据串A[2N:0]
关于第一数据串A[2N:0]的内容,如前所述,第一数据串A[2N:0]用于识别上述各数据处理装置IP0~IPN目前是否正受到服务。较佳地,第一数据串A[2N:0]为位元数高于上述各数据处理装置IP0~IPN总数的一数据串,譬如为一(2N+1)位元长度的数据串。
此外,在产生第一数据串A[2N:0]的过程中,第一模组72会先依据上述多个数据处理装置IP0~IPN目前被服务的状况,产生位元数与上述多个数据处理装置IP0~IPN的总数相同的较短数据串G[N:0]。其中,上述多个数据处理装置IP0~IPN的总数为(N+1),而上述的较短数据串则是为以G[N:0]表示的(N+1)位元数据串。之后,第一模组72会将上述较短数据串G[N:0]扩展成位元数高于上述多个数据处理装置IP0~IPN的总数的第一数据串A[2N:0]。
在本发明一实施例中,上述较短数据串G[N:0]的每一个位元分别与上述多个数据处理装置IP0~IPN中的一个数据处理装置相对应,用以识别所对应的数据处理装置目前是否正受到服务。举例来说,G[m]=1以表示第m个数据处理装置正被服务,其中N≥m≥0,且G[N:0]的(N+1)个位元中仅有一个位元等于1。换言之,在同一时间,上述多个数据处理装置IP0~IPN中只有一个数据处理装置正被服务。
此外,当第m个数据处理装置正被服务时,第一数据串A[2N:0]的(2N+1)个位元中的第m个位元至第(m+N)个位元为1其余位元为0,而N≥m≥0。举例来说,倘若数据处理装置P2正被服务,则第一数据串A[2N:0]的第2个位元至第(2+N)个位元为1,且其余位元则为0。因此,在第一数据串A[2N:0]中,其值为1的位元的总数会等于上述多个数据处理装置IP0~IPN的总数。此外,第一数据串A[2N:0]的每一其值为1的位元所对应的数据处理装置为一个核准候选数据处理装置,而核准候选数据处理装置所发出的请求有可能会被仲裁电路70获准。更进一步地说,第一数据串A[2N:0]的每一个位元分别与上述多个数据处理装置IP0~IPN中的一个数据处理装置相对应,用以识别其所对应的数据处理装置是否被允许作为上述多个核准候选数据处理装置当中的一者。在本发明一实施例中,位元A[m]和位元A[m+N]对应于同一个数据处理装置。
第二模组73与第二及第三数据串R[N:0]及B[2N:0]
关于第二数据串R[N:0]的内容,如前所述,第二数据串R[N:0]用以识别上述多个数据处理装置IP0~IPN对于共享资源71的请求。较佳地,第二数据串为以R[N:0]表示的(N+1)位元数据串,第二数据串R[N:0]的每一个位元分别与上述多个数据处理装置IP0~IPN中的一数据处理装置相对应,用以识别所对应的数据处理装置是否发出对于共享资源71的请求。较佳地,当R[x]=1时,则表示第x个数据处理装置发出对于共享资源71的请求,其中N≥x≥0。反之,若第二数据串R[x]=0,则表示第x个数据处理装置并未发出对于共享资源71的请求。
关于第三数据串B[2N:0]的内容,如前所述,第三数据串B[2N:0]用于识别上述多个数据处理装置IP0~IPN对共享资源71的请求是否可能被获准。较佳地,第三数据串为以B[2N:0]表示的(2N+1)位元数据串。当B[x]=1时,表示第x个数据处理装置发出对于共享资源71的请求可能被获准,N≥x≥0;而当B[y]=1时,表示第(y-(N+1))个数据处理装置发出对于共享资源71的请求可能被获准,其中2N≥y≥N+1。
如上所述,第二模组73还用以平行地对第一数据串A[2N:0]及第二数据串R[N:0]的对应位元进行多个与(AND)运算,以平行地产生第三数据串B[2N:0]的多个位元。较佳地,B[y’]=A[y’]·R[z],2N≥y’≥0。当N≥y’≥0时,z=y’;而当2N≥y’≥(N+1)时,z=(y′-N-1)。
图9亦显示第二模组73的细部结构的一实施例。如图9所示,第二模组73可包括多个与门74(0)~74(2N),每一与门74(0)~74(2N)用以对第一数据串A[2N:0]的一对应位元以及第二数据串R[N:0]的一对应位元进行与运算,以输出第三数据串B[2N:0]的一对应位元。例如,与门74(2N-2)依据位元A[2N-2]及位元R[N-3]输出位元B[2N-2]。
第三模组75与最终数据串G’[N:0]
关于最终数据串G’[2N:0]的内容,如前所述,最终数据串G’[2N:0]用以识别上述多个数据处理装置IP0~IPN当中何者对于共享资源71的请求确定被获准。较佳地,最终数据串G’[N:0]的每一个位元分别可与上述数据处理装置IP0~IPN中的一数据处理装置相对应,用以识别其所对应的数据处理装置对共享资源71的请求是否确定被获准。最终数据串为以G’[N:0]表示的(N+1)位元数据串。当G’[m’]=1时,表示第m’个数据处理装置对该共享资源71的请求确定被获准,N≥m’≥0。此外,因仲裁电路70同时间只会允许一个数据处理装置对于共享资源71的请求,故最终数据串G’[N:0]的(N+1)位元中仅有一个位元会等于1。
图9亦显示第三模组75的细部结构的一实施例。如图9所示,第三模组75包括第一子模组76以及第二子模组78。第一子模组76可基于譬如图8所示的优先获准次序,自第三数据串B[2N:0]中排除上述可能被获选的数据处理装置当中的优先获准次序较低者,以产生第四数据串C[2N:0]。第四数据串C[2N:0]用于识别上述可能被获选的数据处理装置当中优先顺序最高者。第二子模组78再依据第四数据串C[2N:0],产生最终数据串G’[N:0]。以下将再针对第一子模组76以及第二子模组78的细部结构与相关数据串作详细说明。
关于第四数据串C[2N:0]的内容,如前所述,第四数据串C[2N:0]用于识别可能获选的数据处理装置中优先次序最高者。较佳地,第四数据串C[2N:0]的每一个位元可分别与上述数据处理装置IP0~IPN中的一数据处理装置相对应,用以识别所对应的数据处理装置是否具有最高优先顺序。详言之,第四数据串为以C[2N:0]表示的(2N+1)位元数据串,其中N等于上述多个数据处理装置IP0~IPN的总数减一。当C[x]=1时,表示第x个数据处理装置具有最高优先顺序,其中N≥x≥0。当C[y]=1时,第y个数据处理装置具有最高优先顺序,其中2N≥y≥N+1。
图9亦显示第一子模组76的细部结构的一实施例。如图9所示,第一子模组76可包括多个与门77(1)~77(2N),每一与门77(1)~77(2N)用以依据由第三数据串B[2N:0]所获得的多个位元进行与运算,以产生第四数据串C[2N:0]的一个对应位元。其中,所述的多个位元包括第三数据串B[2N:0]当中的一个对应位元以及第三数据串B[2N:0]当中优先获准次序低于该对应位元的一至多个位元的反相位元。
以与门77(1)为例,与门77(1)的对应位元为位元B[1],而与门77(1)依据位元B[1]以及优先获准次序低于位元B[1]的位元B[0]的反相位元,进行与运算而产生位元C[1]。又以与门77(N)为例,与门77(N)的对应位元为位元B[N],而与门77(N)依据位元B[N]以及优先获准次序低于位元B[N]的多个位元B[0]~B[N-1]的反相位元,进行与运算而产生位元C[N]。
据此,当2N≥P≥N+1时,若B[P]=1且B[(P-N):(P-1)]中的每个位元都为0时,则C[P]等于1,否则为0。此外,当N≥P≥1时,若B[P]=1且B[0:(P-1)]中的每个位元都为0时,则C[P]等于1,否则为0。此外,位元C[0]会等于位元B[0]。再者,位元C[t]与位元C[t+N+1]对应于同一个数据处理装置,其中N≥t≥0。
图9亦显示第二子模组78的细部结构的一实施例。如图9所示,第二子模组78可包括多个或门79(0)~79(N-1),而每一个或门79(0)~79(N-1)用以对第四数据串C[2N:0]对应至相同数据处理装置的多个位元平行地进行或(OR)运算,以产生最终数据串G’[N:0]的一个对应位元。较佳地,位元G’[N]会等于位元C[N],而G’[Q]等于C[Q]与C[Q+N+1]进行或(OR)运算的结果,其中(N-1)≥Q≥0。以或门79(2)为例,或门79(2)对位元C[2]和位元C[N+2]进行或运算,以产生位元G’[2]。
简言之,当第二子模组78依据第四数据串C[2N:0]以产生最终数据串G’[N:0]时,第二子模组78会将第四数据串C[2N:0]缩减为最终数据串G’[N:0]。其中,第四数据串C[2N:0]的位元数高于数据处理装置IP0~IPN的总数,而最终数据串G’[N:0]的位元数与数据处理装置IP0~IPN的总数相同。此外,当第二子模组78将该第四数据串C[2N:0]缩减为该最终数据串G’[N:0]时,第二子模组78会对第四数据串C[2N:0]当中对应至相同数据处理装置的多个位元平行地进行多个或(OR)运算,以产生最终数据串G’[N:0]。
综上所述,本发明的仲裁电路藉由第一数据串识别各数据处理装置目前是否正受到服务,并藉由第二数据串识别各数据处理装置对于共享资源的请求,藉由第三数据串识别各数据处理装置对共享资源的请求是否可能被获准,以及藉由最终数据串识别各数据处理装置当中何者对于共享资源的请求确定被获准。因仲裁电路平行地对第一数据串及第二数据串的对应位元进行多个与(AND)运算,以平行地产生第三数据串及最终数据串的多个位元,故仲裁电路的判断时间会缩短,而使其效能提升。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域的普通技术人员,当可作些许更动与润饰,而不脱离本发明的精神和范围。
Claims (28)
1.一种仲裁方法,用以仲裁来自多个数据处理装置对于一共享资源的请求,该仲裁方法包括:
依据该些数据处理装置目前被服务的状况,产生一第一数据串,该第一数据串用于识别该些数据处理装置目前是否正受到服务;
依据该些数据处理装置对于该共享资源的请求,产生一第二数据串,该第二数据串用以识别该些数据处理装置对于该共享资源的请求;以及
平行地对该第一数据串及该第二数据串的对应位元进行多个与(AND)运算,以平行地产生一第三数据串的多个位元,该第三数据串用于识别该些数据处理装置对该共享资源的请求是否可能被获准;以及
基于该些数据处理装置的一优先获准次序,依据该第三数据串产生一最终数据串,该最终数据串用以识别该些数据处理装置当中何者对于该共享资源的请求确定被获准。
2.根据权利要求1所述的仲裁方法,其中产生该第一数据串的步骤包含:
依据该些数据处理装置目前被服务的状况,产生位元数与该些数据处理装置的总数相同的一较短数据串;以及
将该较短数据串扩展成位元数高于该些数据处理装置总数的该第一数据串。
3.根据权利要求2所述的仲裁方法,其中该较短数据串的每一个位元分别与该些数据处理装置中的一数据处理装置相对应,用以识别对应的数据处理装置目前是否正受到服务。
4.根据权利要求3所述的仲裁方法,其中该较短数据串为以G[N:0]表示的(N+1)位元数据串,其中N=(该些数据处理装置的总数-1),G[m]=1以表示第m个数据处理装置正被服务,N≥m≥0,且G[N:0]的(N+1)个位元中仅有一个位元等于1。
5.根据权利要求4所述的仲裁方法,其中该第一数据串为以A[2N:0]表示的(2N+1)位元数据串,其中N=(该些数据处理装置的总数-1),且当第m个数据处理装置正被服务时,A[2N:0]的(2N+1)个位元中的第m个位元至第(m+N)个位元为1其余位元为0,N≥m≥0。
6.根据权利要求1所述的仲裁方法,其中该第一数据串的每一个位元分别与该些数据处理装置中的一数据处理装置相对应,用以识别对应数据处理装置是否被允许作为一核准候选数据处理装置。
7.根据权利要求1所述的仲裁方法,其中该第二数据串的每一个位元分别与该些数据处理装置中的一数据处理装置相对应,用以识别对应数据处理装置是否发出对于该共享资源的请求。
8.根据权利要求7所述的仲裁方法,其中该第二数据串为以R[N:0]表示的(N+1)位元数据串,其中N=(该些数据处理装置的总数-1),且当R[x]=1时,表示第x个数据处理装置发出对于该共享资源的请求,N≥x≥0。
9.根据权利要求1所述的仲裁方法,其中该第三数据串的每一个位元分别与该些数据处理装置中的一数据处理装置相对应,用以识别对应数据处理装置对该共享资源的请求是否可能被获准。
10.根据权利要求9所述的仲裁方法,其中该第三数据串为以B[2N:0]表示的(2N+1)位元数据串,其中N=(该些数据处理装置的总数-1),当B[x]=1时,表示第x个数据处理装置发出对于该共享资源的请求可能被获准,N≥x≥0,而当B[y]=1时,表示第(y-(N+1))个数据处理装置发出对于该共享资源的请求可能被获准,2N≥y≥N+1。
11.根据权利要求10所述的仲裁方法,其中该第一数据串为以A[2N:0]表示的(2N+1)位元数据串,该第二数据串为以R[N:0]表示的(N+1)位元数据串,以及B[y’]=A[y’]·R[z],2N≥y’≥0,当N≥y’≥0时,z=y’,而当2N≥y’≥(N+1)时,z=(y′-N-1)。
12.根据权利要求1所述的仲裁方法,其中该最终数据串的每一个位元分别与该些数据处理装置中的一数据处理装置相对应,用以识别对应数据处理装置对该共享资源的请求是否确定被获准。
13.根据权利要求12所述的仲裁方法,其中该最终数据串为以G’[N:0]表示的(N+1)位元数据串,其中N=(该些数据处理装置的总数-1),G’[m’]=1表示第m’个数据处理装置对该共享资源的请求确定被获准,N≥m’≥0,且该最终数据串G’[N:0]的(N+1)位元中仅有一个位元等于1。
14.根据权利要求1所述的仲裁方法,其中产生该最终数据串的步骤包括:
依据该优先获准次序,自该第三数据串中排除可能被获选的数据处理装置当中的优先获准次序较低者,以产生一第四数据串,该第四数据串用于识别该些可能被获选的数据处理装置当中优先顺序最高者;以及
依据该第四数据串,产生该最终数据串。
15.根据权利要求14所述的仲裁方法,其中该第四数据串的每一个位元分别与该些数据处理装置中的一数据处理装置相对应,用以识别对应数据处理装置是否具有最高优先顺序。
16.根据权利要求15所述的仲裁方法,其中该第四数据串为以C[2N:0]表示的(2N+1)位元数据串,其中N=(该些数据处理装置的总数-1),C[x]=1表示第x个数据处理装置具有最高优先顺序,N≥x≥0,当C[y]=1时,第y个数据处理装置具有最高优先顺序,2N≥y≥N+1。
17.根据权利要求16所述的仲裁方法,其中该第三数据串为以B[2N:0]表示的(2N+1)位元数据串,且
当2N≥P≥N+1时,若B[P]=1且B[(P-N):(P-1)]中的每个位元都为0时,则C[P]等于1,否则为0;以及
当N≥P≥1时,若B[P]=1且B[0:(P-1)]中的每个位元都为0时,则C[P]等于1,否则为0。
18.根据权利要求14所述的仲裁方法,其中依据该第四数据串以产生该最终数据串的步骤包括将位元数高于该些数据处理装置的总数的该第四数据串缩减为位元数与该些数据处理装置的总数相同的该最终数据串。
19.根据权利要求18所述的仲裁方法,其中将该第四数据串缩减为该最终数据串的步骤包括:
对该第四数据串当中对应至相同数据处理装置的多个位元平行地进行多个或(OR)运算,以产生该最终数据串。
20.根据权利要求14所述的仲裁方法,其中该第四数据串为以C[2N:0]表示的(2N+1)位元数据串,该最终数据串为以G’[N:0]表示的(N+1)位元数据串,其中N=(该些数据处理装置的总数-1),且G’[N]=C[N],而G’[Q]等于C[Q]与C[Q+N+1]进行或(OR)运算的结果,(N-1)≥Q≥0。
21.一种仲裁电路,用以仲裁来自多个数据处理装置对于一共享资源的请求,该仲裁电路包括:
一第一模组,用以依据该些数据处理装置目前被服务的状况,产生一第一数据串,该第一数据串用于识别该些数据处理装置目前是否正受到服务;
一第二模组,用以接收一第二数据串,而该第二数据串用以识别该些数据处理装置对于该共享资源的请求,该第二模组还用以平行地对该第一数据串及该第二数据串的对应位元进行多个与(AND)运算,以平行地产生一第三数据串的多个位元,而该第三数据串用于识别该些数据处理装置对该共享资源的请求是否可能被获准;以及
一第三模组,用以基于该些数据处理装置的一优先获准次序,依据该第三数据串产生一最终数据串,而该最终数据串用以识别该些数据处理装置当中何者对于该共享资源的请求确定被获准。
22.根据权利要求21所述的仲裁电路,其中该第一模组依据该些数据处理装置目前被服务的状况,产生位元数与该些数据处理装置的总数相同的一较短数据串,以及将该较短数据串扩展成位元数高于该些数据处理装置总数的该第一数据串。
23.根据权利要求21所述的仲裁电路,其中该第二模组包括多个与门(AND gate),该些与门当中每一者用以对该第一数据串的一对应位元以及该第二数据串的一对应位元进行与运算,以输出该第三数据串的一对应位元。
24.根据权利要求21所述的仲裁电路,其中该第三模组包括:
一第一子模组,用以依据该优先获准次序,自该第三数据串中排除可能被获选的数据处理装置当中的优先获准次序较低者,以产生一第四数据串,而该第四数据串用于识别该些可能被获选的数据处理装置当中优先顺序最高者;以及
一第二子模组,用以依据该第四数据串产生该最终数据串。
25.根据权利要求24所述的仲裁电路,其中该第一子模组包括多个与门(AND gate),该些与门当中每一者用以依据由该第三数据串所获得的多个位元进行与运算,以产生该第四数据串的一对应位元。
26.根据权利要求25所述的仲裁电路,其中该多个位元包括该第三数据串当中的一对应位元以及该第三数据串当中优先获准次序低于该对应位元的一至多个位元的反相位元。
27.根据权利要求24所述的仲裁电路,其中该第三数据串为以B[2N:0]表示的(2N+1)位元数据串,该第四数据串为以C[2N:0]表示的(2N+1)位元数据串,其中N=(该些数据处理装置的总数-1),而
当2N≥P≥N+1时,若B[P]=1且B[(P-N):(P-1)]中的每个位元都为0时,则C[P]等于1,否则为0;
当N≥P≥1时,若B[P]=1且B[0:(P-1)]中的每个位元都为0时,则C[P]等于1,否则为0。
28.根据权利要求24所述的仲裁电路,其中该第二子模组包括多个或门(OR gate),该些或门当中每一者用以对该第四数据串对应至相同数据处理装置的多个位元平行地进行或(OR)运算,以产生该最终数据串的一对应位元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101552405A CN102819510A (zh) | 2011-06-10 | 2011-06-10 | 仲裁电路及其仲裁方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101552405A CN102819510A (zh) | 2011-06-10 | 2011-06-10 | 仲裁电路及其仲裁方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102819510A true CN102819510A (zh) | 2012-12-12 |
Family
ID=47303628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101552405A Pending CN102819510A (zh) | 2011-06-10 | 2011-06-10 | 仲裁电路及其仲裁方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819510A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4672536A (en) * | 1983-03-29 | 1987-06-09 | International Business Machines Corporation | Arbitration method and device for allocating a shared resource in a data processing system |
CN1052563A (zh) * | 1989-12-15 | 1991-06-26 | 国际商业机器公司 | 调节优先级仲裁的装置 |
US20070101032A1 (en) * | 2005-10-28 | 2007-05-03 | Nec Electronics Corporation | Bus arbitration circuit and bus arbitration method |
-
2011
- 2011-06-10 CN CN2011101552405A patent/CN102819510A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4672536A (en) * | 1983-03-29 | 1987-06-09 | International Business Machines Corporation | Arbitration method and device for allocating a shared resource in a data processing system |
CN1052563A (zh) * | 1989-12-15 | 1991-06-26 | 国际商业机器公司 | 调节优先级仲裁的装置 |
US20070101032A1 (en) * | 2005-10-28 | 2007-05-03 | Nec Electronics Corporation | Bus arbitration circuit and bus arbitration method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230351186A1 (en) | Processing for multiple input data sets | |
US9529590B2 (en) | Processor for large graph algorithm computations and matrix operations | |
US11461631B2 (en) | Scheduling neural network computations based on memory capacity | |
EP3451165A1 (en) | Neural network operation device and method supporting few-bit floating-point number | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
US20200184245A1 (en) | Improper neural network input detection and handling | |
EP3561739A1 (en) | Data accelerated processing system | |
CN111967608A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110569019A (zh) | 数值的随机修约 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN105573843A (zh) | 一种数据处理方法和系统 | |
CN110554854B (zh) | 数据处理器、方法、芯片及电子设备 | |
Jeong et al. | REACT: Scalable and high-performance regular expression pattern matching accelerator for in-storage processing | |
CN101207467A (zh) | 循环冗余校验码的生成和数据序列发送、校验方法及装置 | |
CN102819510A (zh) | 仲裁电路及其仲裁方法 | |
CN107506399A (zh) | 数据单元快速分段的方法、系统、设备及存储介质 | |
WO2023071566A1 (zh) | 数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
WO2019183095A1 (en) | Processing for multiple input data sets | |
CN111258641B (zh) | 运算方法、装置及相关产品 | |
CN115048430A (zh) | 数据核验方法、系统、装置及存储介质 | |
CN112257870B (zh) | 机器学习指令的转换方法及装置、板卡、主板、电子设备 | |
CN107831824B (zh) | 时钟信号传递方法、装置、复用芯片和电子设备 | |
US10997277B1 (en) | Multinomial distribution on an integrated circuit | |
CN112418418A (zh) | 基于神经网络的数据处理方法、装置、存储介质及服务器 | |
US20120311214A1 (en) | Arbitration circuit and arbitration method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121212 |