具有并行仲裁机制的多重允许控制器及其方法

文档序号:6596551阅读:243来源:国知局
专利名称:具有并行仲裁机制的多重允许控制器及其方法
技术领域
本发明是提供一种在一控制器中仲裁各电路方块对一易失性存储器存取优先权的装置及相关方法,尤指一种将各电路方块分类于不同群组,以分别于不同群组中同时进行优先权仲裁而能缩短仲裁时程、精简电路配置的仲裁装置及方法。
背景技术
控制器是现代信息建设中最重要的基础之一;控制器能进行繁复的数据运算及资料管理,已被广泛运用于各种自动化装置及计算机系统中。随着科技的发展,能集成至同一控制器中的电路也越多,使得控制器的功能越趋强大,也更为多样。
一般来说,控制器中会设有功能不同的电路构筑方块,各电路构筑方块有不同的功能;集成协调各电路构筑方块的功能,就能完成控制器的整体功能。而控制器中也会设有能为各电路构筑方块共用的易失性存储器;举例来说,控制器中会设有存储器(较佳地为静态随机存取存储器,SRAM),用来暂存各电路构筑方块运作所需的资料;各电路构筑方块利用并存取存储器所提供的记忆资源,就能顺利达成各方块的功能。不过,为了有效管理控制器中系统资源的分配,在同一时间内,只能有一定数量的电路构筑方块能存取同一易失性存储器;而控制器中也会设有仲裁器,以控制控制器的各个电路构筑方块对同一易失性存储器的存取。请参考图1。图1为一典型控制器10功能方块的示意图,举例来说,控制器10可以是一个使用于网路交换器(switch)中的交换控制晶片(switch controller),用来处理网路各终端机间的资料交换。在图1的示意例中,控制器10中的应用电路CP1、CP2等等至CP55、CP56是控制器10中的电路构筑方块,分别用来进行各种必要的功能,以组织出控制器10的整体功能。应用电路CP1至CP56会共用控制器10的易失性存储器12;为了要管理各应用电路CP1至CP56对易失性存储器12的存取,控制器10中通常设有一仲裁器14。当各应用电路要存取易失性存储器12时,各应用电路可分别发出一请求信号至仲裁器14。然而,因为易失性存储器12在同一时间内只能服务(service)一预设数目个应用电路,若在同一时间内发出请求信号的应用电路过多(多于所述预设数目),仲裁器14就要在这些应用电路中选择出预设数目个应用电路,让选出的应用电路能够存取易失性存储器12;其他未被选择的应用电路就暂时无法存取易失性存储器12。在实际实施时,控制器10中的仲裁器14(及各应用电路)都由一周期为T的时脉CLK统一触发动作;仲裁器14会在某一时脉周期(像是图1中标出的时段T0)中接收来自各应用电路的请求信号,并在次一时脉周期(像是时段T1)中让适当个数的应用电路得以依其要求存取易失性存储器12。换句话说,仲裁器14在一个时脉周期中(也就是时段T0中)就要在各个提出要求的应用电路中决定出有哪些应用电路能够实际存取易失性存储器12。
为了要使仲裁器14能在多个发出请求信号的应用电路中决定有哪些应用电路能实际存取易失性存储器,可对各个应用电路设定一资源存取的优先权。这样一来,在多个发出请求信号的应用电路中,仲裁器14就能依据这些应用电路的优先权,优先选出优先权较高的应用电路,使优先权较高的应用电路得以实际存取易失性存储器12。以图1的示意例来说明,以下将假设控制器10中设有56个会分享易失性存储器12的应用电路CP1至CP56,而易失性存储器12在同一时段(也就是同一时脉周期中)内只能让四个应用电路存取;而当仲裁器14仲裁各应用电路对易失性存储器12的存取时,其所依据的优先权则以应用电路CP1的优先权最高,并依序由应用电路CP2、CP3的顺序递减,应用电路CP56的优先权最低。换句话说,应用电路CP1的优先权高于应用电路CP2,应用电路CP2的优先权高于应用电路CP3,依此类推。若在时段T0中共有应用电路CP2、CP3、CP27、CP29、CP53、CP54及CP56发出请求信号,由于易失性存储器12一次仅能支应四个应用电路的存取,故仲裁器14会优先选取优先权最高的四个应用电路CP2、CP3、CP27及CP29,让这四个应用电路得以实际存取易失性存储器12。
请参考图2。图2为仲裁器14以现有技术的方法实现的功能方块图。延续上述的例子,控制器10中有56个应用电路,仲裁器14要在多个发出请求信号的应用电路中选出四个优先权最高的应用电路,故在仲裁器14中,设有四个“56选1”的仲裁模块21至24,各仲裁模块分别用来选出一个优先权最高的应用电路。实际实施时,各应用电路是耦接于仲裁器14;当应用电路要发出请求信号时,可在对应要求迹线上发送一高电位的信号;不需发送请求信号时,则可将对应迹线的电压维持于低电位。在图2中,迹线RP1、RP2等等至RP55、RP56就分别是应用电路CP1、CP2等等至CP55、CP56用来将请求信号传输至仲裁器14的迹线。这56条迹线等效上可看做是仲裁器14的输入总线REQ0;而输入REQ0会被传输至各个仲裁模块21至24。仲裁模块21接受输入REQ0后,会在发出请求信号的应用电路中,选出一个优先权最高的应用电路,并形成对应的输出GR1。在实际实施时,仲裁模块21可以用另外的56条迹线来形成输出GR1,各迹线就分别对应于一应用电路;被仲裁模块21选出的应用电路,仲裁模块就可在所述输出电路对应的迹线上输出一高电位的信号(即准许其要求),其他未被选中的应用电路对应的55条迹线,则都维持于低电位。接下来,仲裁模块22则要在各个发出请求信号的应用电路中选出另一个优先权次高的应用电路,所以仲裁模块22不但要由输入REQ0中得知有哪些应用电路发出请求信号,也要由仲裁模块21的输出GR1得知仲裁模块21所选择的应用电路;而仲裁模块22也以56条迹线形成输出GR2。同理,仲裁模块23要在仲裁模块21、22后选出优先权第三高的应用电路,故需接收输入REQ0及仲裁模块21、22的输出GR1、GR2,并选出优先权第三高的应用电路,产生对应的输出GR3。最后,仲裁模块24接收输入REQ0及仲裁模块21至23的输出GR1至GR3,以选出优先权第四高的应用电路,形成对应的输出GR4。集合仲裁模块21至24总共选出的四个应用电路,就可形成仲裁器14的输出总线GRN0;输出GRN0也可以由56条分别对应于各应用电路的迹线形成;对应仲裁模块21至24选出的四个应用电路,仲裁器14就能将四条迹线的电压升高至高电位,代表准许这四个应用电路存取易失性存储器12。其他因为优先权较低而未被选择的应用电路(以及其他未发出请求信号的应用电路),其对应迹线的电压就维持于低电位,代表这些应用电路未被准许存取易失性存储器12。图2中形成输出GRN0的迹线GP1、GP2至GP55、GP56,就分别用来对应于应用电路CP1、CP2至CP55、CP56。
再以实际的例子来说明图2中现有技术的仲裁器14的运作情形。假设在时段T0中(请参考图1)有应用电路CP2、CP3、CP27、CP29、CP53、CP54及CP56等七个应用电路发出(assert)请求信号,故图2中仲裁器14输入REQ0的迹线RP2、RP3、RP27、RP29及RP53、RP54及RP56为高电位(图2中标示以“H”)。仲裁模块21在上述七个应用电路中选出优先权最高的应用电路CP2,并在其输出GR1中将对应应用电路CP2的迹线拉至高电位(图2中以括号标出CP2)。仲裁模块22依据输入REQ0及输出GR1,在上述七个应用电路中选出优先权次高的应用电路CP3;也要其输出GP2中拉高应用电路CP3对应迹线的电位。在实际实施时,仲裁模块22至24的基本构造与仲裁模块21相同,而仲裁模块22可进一步依据仲裁模块21的输出GP1来遮罩(mask)仲裁模块21所选出的应用电路CP2,使得仲裁模块22本身是由应用电路CP3、CP27、CP29、CP53、CP54及CP56等六个应用电路中选出优先权最高的应用电路CP3。同理,接下来的仲裁模块23会依据仲裁模块21、22的输出GR1、GP2遮罩应用电路CP2、CP3的请求信号,使得仲裁模块23会在应用电路CP27、CP29、CP53、CP54及CP56中选出应用电路CP27,并将输出GR3中对应的迹线拉至高电位。最后仲裁模块24在遮罩应用电路CP2、CP3及CP27后,会在应用电路CP29、CP53、CP54及CP56中选出应用电路CP29。总合仲裁模块21至24所选出来的四个应用电路CP2、Cp3、CP27及CP29,仲裁器14的输出GRN0中对应的四条迹线GP2、CP3、CP27及CP29就会被拉至高电位,在时段T0时的时段T1(请参考图1),控制器10就能依据仲裁器14的输出GRN0来使应用电路CP2、CP3、CP27及CP29得以实际存取易失性存储器12。当然,若时段T0内仅有应用电路CP2、CP54发出请求信号,则仲裁模块21、22就会分别选出应用电路CP2、CP54;其他的仲裁模块23、24也就不会将输出GR3、GR4中任何迹线的电压拉高;换句话说,在此情况下,仲裁模块23、24就不会下允许给任何应用电路了。
以上现有技术的仲裁器14的缺点,可讨论如下。首先,由于仲裁器14中的各仲裁模块21至24都要处理控制器10中所有应用电路所形成的输入REQ0,故各仲裁模块都要以较多的逻辑门才能构成。在前例中,控制器10中共有56个应用电路可能同时要求存取易失性存储器12,故仲裁模块21至24都是“56选1”的仲裁模块;由于各仲裁模块21至24的输入、输出皆有56条迹线,相当于要处理56*56种输出输入间的关系,使得仲裁模块21至24中要以大量的逻辑门来具体实现其功能。一旦现有技术的仲裁器14所需的逻辑门门数(gate count)增加,现有技术的仲裁器14所需占用的面积与消耗的能量也会增加。更严重的是,各仲裁模块21至24的延迟时间也会因逻辑门门数较多而增加。由前述讨论可知,仲裁模块21至24要依序先后运作才能完整选出四个优先权最高的应用电路。因为仲裁模块22要根据仲裁模块21的输出GR1才能选出优先权次高的应用电路,仲裁模块23要依据仲裁模块21、22的输出才能选出优先权第三高的应用电路;最后仲裁模块24则要在仲裁模块21、22及23都完成运作后才能选出优先权第四高的应用电路,所以仲裁器14必须要循环跑完各仲裁模块21至24才能完成优先权的仲裁,所需要的时间则是仲裁模块21至24所有延迟时间累加后的结果。如前所述,由于控制器10运作的要求,仲裁器14必需要在一个时脉周期内就完成优先权的仲裁;若仲裁器14因运作延迟时间过长而无法在一个时脉周期中完成优先权的仲裁,那么控制器10就无法正常运作;或是控制器10必需以较慢的时脉运作。由此观之,在现代控制器高时脉高运作效率的要求下,现有技术的仲裁器14显然已经有运用上的困难。

发明内容
因此,本发明的主要目的在于提供一种在控制器中能快速运作、门数较少且布局精简的仲裁器,以克服现有技术的缺点。
在现有技术中,仲裁优先权的仲裁器是以串接的仲裁模块循序于所有应用电路中筛选出已发出请求信号并具有高优先权的应用电路,使这些应用电路得以存取系统资源。由于各仲裁模块皆须仲裁所有应用电路可能的请求信号,故各仲裁模块的门数较多,运作的延迟较长,仲裁运作的总时间也无法缩短。
在本发明中,会将控制器中分享同一系统资源的多个应用电路分成不同的群组,各群组分别由一仲裁模块来筛选出已发出请求信号且在各群组中具有最高优先权的应用电路,再以一总仲裁模块来根据各群组选出的应用电路选出实际得以存取系统资源的应用电路。由于每一仲裁模块仅负责一群组应用电路的优先权仲裁,故每一仲裁模块所需的门数及延迟时间均得以减少;且各群组应用电路的优先权仲裁能同时进行,使得本发明仲裁器能大幅减少优先权仲裁所需的时间,提高仲裁运作的效率。
按照本发明的一个方面,提供了一种具有并行仲裁机制的多重允许控制器,其包含有一易失性存储器;多个应用电路,当各应用电路要存取所述易失性存储器时,每一应用电路可发出一对应的请求信号,其具有一对应的优先权,以代表不同的应用电路具有不同的存取优先权;以及一并行仲裁器,其中当所述应用电路中有第一多个应用电路在一时段内主张请求信号时,所述仲裁器可根据所述第一多个应用电路对应的优先权选择出不超过一预设数目个优先权较高的应用电路,以允许所述预设数目个应用电路得以存取所述易失性存储器;所述并行仲裁器包含有多个子仲裁模块,用以接收所述请求信号;各子仲裁模块只接收所述请求信号中一部分的请求信号,且各所述子仲裁模块并行地根据所述部分的请求信号而输出一子仲裁结果;以及一总仲裁模块,耦接于所述子仲裁模块,用以接收所述子仲裁结果,所述总仲裁模块根据所述子仲裁结果允许不超过所述预设数目个的优先权较高的应用电路的存取请求。
按照本发明的另一个方面,提供了一种并行仲裁的多重允许方法,用以多重允许一控制器中多个应用电路对一易失性存储器的存取;其中当所述控制器中的各应用电路要存取所述易失性存储器时,每一应用电路可发出一对应的请求信号,其具有一对应的优先权,以代表不同的应用电路具有不同的存取优先权,所述方法包含有下列步骤所述应用电路中有第一多个应用电路在一时脉周期内主张其请求信号;将所有请求信号区分成多个群组的请求信号;并行地选择所述群组中优先权较高的主张的请求信号,以回应于所述区分的群组的请求信号,而各群组所选择出的请求信号是不超过一预设数目;以及仲裁以允许不超过所述预设数目个其中优先权较高的主张的请求信号,以回应于所选择出的所述群组的请求信号。


图1为一典型控制器功能方块的示意图。
图2为图1中仲裁器以现有技术实施时的功能方块图。
图3为本发明中控制器功能方块的示意图。
图4为图3中并行仲裁器一实施例的功能方块示意图。
图5A至5D为图4中各仲裁模块一实施例的功能方块示意图。
图5E为图4中总仲裁模块一实施例的功能方块示意图。
图6为本发明的实施例方块图。
附图中的各个附图标记说明如下10、30 控制器 12、32 易失性存储器14、34、100 仲裁器 21-24、90 仲裁模块41-44 仲裁模块 45、102 总仲裁模块51-54、61-64、71-74、81-84 仲裁单元99 或门 92 选择器REQ0、REQa-REQd 输入CP1-CP56、P1-P56 应用电路 CLK 时脉GR1-GR4、GRN0-GRN1、opA-opD 输出RP1-RP56、R1-R56、RA1-RA4、RB1-RB4、RC1-RC4RD1-RD4、迹线具体实施方式
请参考图3。本发明的技术可普遍运用于图3所示的典型控制器30中。在控制器30中,共有多个应用电路P1、P2至P55、P56,分别用来执行控制器30各种相关的运作,以达成控制器30的整体功能。而控制器30中也设有一易失性存储器32以支援各应用电路的运作;为了管理各应用电路对易失性存储器32的存取,控制器30中同样设有仲裁各应用电路存取优先权的并行仲裁器34。为了以具体实施例揭露本发明实施的情形,并与前述的现有技术做一比较,以下也假设控制器30中共有56个应用电路会存取易失性存储器32;由应用电路P1、P2依序至P56,分别设有最高、次高等等递降到最低的优先权,作为并行仲裁器34仲裁优先权的依据。而易失性存储器32在同一时间内可让四个应用电路存取其资源。与图1中典型的控制器10相似,控制器30也是以一时脉CLK来协调各应用电路及并行仲裁器34的运作;在时脉CLK一时脉周期T的时间中(像是图3中的时段T0),需要存取易失性存储器32的应用电路就会发出主张(assert)请求信号至并行仲裁器34,而并行仲裁器34也就要在时段T0的一个时脉周期中,完成存取优先权的仲裁,决定由哪些应用电路能实际存取易失性存储器32;在接下来的时段T1,这些被并行仲裁器34选出来的应用电路就能进行对易失性存储器的存取了。
请继续参考图4。图4为本发明中并行仲裁器34一实施例的功能方块示意图。在本发明中,是将各应用电路分为数个群组,每个群组由一仲裁模块来仲裁所述群组的各个应用电路对易失性存储器32存取的优先权,最后再由总仲裁模块根据各群组仲裁模块的仲裁结果,来决定是由哪些应用电路能实际存取易失性存储器32。在图4的实施例中,应用电路P1至P56即被分为四个群组,第一群组对应优先权最高的14个应用电路P1至P14;第二群组对应优先权次高的14个应用电路P15至P28;第三群组、第四群组则分别是优先权第三高的14个应用电路P29至P42,以及优先权最低的14个应用电路P43至P56。配合群组为四、每一群组有14个的应用电路,并行仲裁器34也对应地设有四个“14选4”仲裁模块41至44作为子仲裁模块,并以一“16选4”仲裁模块45做为一总仲裁模块。各应用电路P1至P56分别以对应的迹线R1至R56将请求信号传输至对应的仲裁模块,像是迹线R1至R14分别将应用电路P1至P14的请求信号传输至仲裁模块41;而迹线R43至R56分别将应用电路P43至P56的请求信号传输至仲裁模块44,以此类推。各仲裁模块41至44仲裁对应群组后的结果会以分别以输出opA至opD输出至总仲裁模块45,由总仲裁模块45产生并行仲裁器34最终的输出GRN1,以指示实际能存取易失性存储器32的应用电路。
请参考图5A至5E。图5A至5E分别是仲裁模块41至44以及总仲裁模块45的功能方块图。仲裁模块41至44的基本构造相同,以图5A中的仲裁模块41为例,仲裁模块41设有四个“14选1”仲裁单元51至54,各仲裁单元用来在14个应用电路中选出一个发出请求信号且优先权较高的应用电路。仲裁模块41接受由应用电路P1至P14分别经由迹线R1至R14传来的请求信号作为输入REQa,并分别输入至仲裁单元51至54。在应用电路P1至P14中,仲裁单元51会针对发出请求信号的应用电路选出优先权最高的应用电路,并产生对应的输出A1。输出A1可以由14条分别对应于应用电路P1至P14的迹线代表;而仲裁单元51可将某条迹线的电压拉高,代表所述迹线对应的应用电路已经被选出。同理,仲裁单元52接受输入REQa及输入A1后,可以发出要求的应用电路中选出优先权次高的应用电路,并产生对应的输出A2。仲裁单元53接收输入REQa以及仲裁单元51、52的输出A1、A2,以选出优先权第三高的应用电路并产生输出A3,而仲裁单元54则根据输出A1、A2及A3及输入REQa选出优先权第四高的应用电路。结合仲裁单元51至54各自选出的一个应用电路,仲裁模块41就能在应用电路P1至P14中选出四个优先权最高(且在同一时段内发出请求信号)的应用电路。另外,仲裁模块41中的四个或门99则分别用来将输入A1、A2、A3及A4中各迹线的信号做或运算,并分别在状态迹线RA1至RA4输出或运算的结果。举例来说,当应用电路P1至P14中有两个应用电路P2、P3在同一时段(譬如说是图3中的时段T0)内发出请求信号,则仲裁单元51、52会分别选出优先权最高及次高的应用电路P2及P3,输入A1、A2中分别有对应于应用电路P1、P3的迹线会被拉至高电位;仲裁单元53、54则不会选择应用电路,输入A3、A4中各迹线都维持于低电位。因此,输入A1中各迹线上信号或运算的结果反应为状态迹线RA1为高电位,输入A2对应或运算的结果则是状态迹线RA2为高电位;输入A3、A4对应或运算的结果则分别是状态迹线RA3、RA4为低电位。换句话说,状态迹线RA1至RA4分别用来标示仲裁单元51至54是否选择了应用电路。若应用电路P1至P14中在同一时段内发出请求信号的应用电路大于或等于四个,那么状态迹线RA1至RA4全都会变为高电位,因为仲裁单元51至54都必需选出一个应用电路。若像上例一样,在同一时段发出请求信号的应用电路少于四个,那么状态迹线RA1至RA4会依循状态迹线RA1至RA4的顺序反应发出请求信号的应用电路的个数。举例来说,若应用电路P1至P14中有三个应用电路在同一时段内发出请求信号,则状态迹线RA1至RA3的三条迹线会升为高电位。若在时段T0中没有应用电路发出请求信号,则状态迹线RA1至RA4均不会升至高电位。综合各仲裁单元51至54的输出A1至A4,以及状态迹线RA1至RA4的输出,就形成仲裁模块41的输出opA(请见图3)。
在实际实施时,仲裁单元51至54的电路基本结构可以是相同的,而仲裁单元52可利用仲裁单元51的输出A1遮罩(mask)输入REQa中已经被仲裁单元51选出的应用单元,让仲裁单元52在输入REQa中剩下的应用单元选出优先权最高的应用单元。举例来说,若应用电路P1至P14中有应用电路P2、P5、P10、P14在同一时段内发出请求信号,则仲裁单元51在这三个应用电路中选出优先权最高的应用电路P2;仲裁单元52利用输出A1遮罩仲裁单元51选出的应用电路P2的要求,而在应用电路P5、P10、P14中选出优先权最高的应用电路P5(也就是应用电路P2、P5、P10、P14中优先权次高的应用电路)。同理,仲裁单元53在利用输出A1、A2遮罩应用电路P2、P5后,会在应用电路P10、P14中选出优先权最高的应用电路P10,以此类推;从另一方面来说,仲裁单元51至54可视为依序串接(sequentiallycascade),以提供串接于其后的仲裁单元遮罩之用。
应注意到,上述仲裁单元运作的方式虽和现有技术于图2中的各仲裁模块运作的方式类似,但仲裁单元51至54都仅是“14选1”的仲裁装置,仅需处理14*14个输出输入关系,相较于现有技术中“56选1”的仲裁装置,本发明中实现各仲裁单元所需的门数相对较少,各仲裁单元运作的延迟时间也能大幅减少。
同理于仲裁模块41中的仲裁单元51至54,图5B中负责仲裁应用电路P15至P28的仲裁模块42也设有仲裁单元61至64,分别以迹线R15至R28为输入REQb以接收应用电路P15至P28的请求信号,分别产生仲裁结果B1至B4,并将其分别或运算的结果RB1至RB4一起形成仲裁模块42的输出opB(见图3)。图5C中的仲裁模块43以迹线R29至R42为输入REQc接受应用电路P29至P42的请求信号,以仲裁单元71至74产生14选1的仲裁结果C1至C4,并与其分别或运算的结果RC1至RC4形成输出opC。图5D中,仲裁模块44以迹线R43至R56接收应用电路P43至P56的请求信号为输入REQd,以仲裁单元81至84产生14选1的仲裁结果D1至D4,而仲裁结果D1至D4分别进行或运算而产生RD1至RD4,并与仲裁结果D1至D4形成输出opD。仲裁模块42至44的工作原理及实施均与仲裁模块41相同,在此不再赘述。
在图5E中,总仲裁模块45设有一“16选4”仲裁模块90,及一选择器92。在仲裁模块41至44的输出opA至opD中,仲裁模块90接受各状态迹线RA1至RA4、RB1至RB4、RC1至RC4及RD1至RD4为其仲裁的对象,并将仲裁的结果输出至选择器92。选择器92会根据仲裁模块90的仲裁结果,以及各仲裁模块中各仲裁单元的输出A1至A4、B1至B4、C1至C4以及D1至D4来决最后是由哪些应用电路得以实际存取易失性存储器32。总仲裁模块45的运作原理可描述如下。在仲裁模块41中,其优先权仲裁的对象是优先权最高的14个应用电路P1至P14,当这些应用电路中的数个应用电路在同一时段内发出请求信号时,仲裁单元51又用来在这些发出请求信号的应用电路中选出优先权最高的应用电路,故若仲裁单元51选择了某一应用电路,对控制器30所有在同一时段内发出请求信号的应用电路来说,所述应用电路的优先权一定是最高的。同理,若仲裁单元52选择了某一应用电路,所述应用电路一定是在所有发出请求信号的应用电路中,优先权次高的,以此类推。在此实施例中,由于易失性存储器32在同一时间内能应付四个应用电路的存取,若仲裁模块41的四个仲裁单元51至54分别都选择了某个应用电路,这四个被选出来的应用电路一定是所有发出请求信号的应用电路中,优先权最高的四个;而其他仲裁模块42至44即使选出了其他的应用电路,优先权也一定不及仲裁模块41选出的四个应用电路,而易失性存储器32会优先支援仲裁模块41选出来的四个应用电路。换句话说,因为仲裁模块41对应的是优先权最高的四个应用电路,仲裁模块41中各仲裁单元51至54的仲裁结果也是最重要的;而仲裁单元51仲裁结果的优先性必高于仲裁单元52仲裁结果。另一方面,若仲裁模块41仅有两个仲裁单元选出应用电路,代表应用电路P1至P14一定只有两个应用电路发出请求信号。此时易失性存储器32还可支援另外两个应用电路,就可另外观察仲裁模块42的各个仲裁单元51至54是否有选出其他的应用电路。由于仲裁模块42对应于优先权次高的14个应用电路P15至P28,若仲裁模块42中有三个仲裁单元61至63分别选出了应用电路,其中仲裁单元61、62选出的应用单元一定比仲裁单元63选出的应用单元优先权高,而易失性存储器32应所述支援仲裁单元61、62选出的两个应用单元。
由以上讨论可知,各仲裁模块中各个仲裁单元的仲裁结果均有不同的重要性,仲裁模块41的仲裁单元51的仲裁结果最重要;相较之下,仲裁模块44的仲裁单元84的仲裁结果最不重要。针对各仲裁单元仲裁结果的重要性,等效上可视为各仲裁单元皆具有不同的单元优先权;仲裁结果最重要的仲裁单元51具有最高的单元优先权,仲裁单元52具有次高的单元优先权;以此类推,仲裁单元61具有第五高的单元优先权,而仲裁单元84的单元优先权排名第十六。而各仲裁单元传输或运算结果的状态迹线RA1至RA4、RB1至RB4、RC1至RC4及RD1至RD4则分别代表了仲裁单元51至54、61至64、71至74以及81至84是否选择了应用电路,也就是代表各仲裁单元的仲裁结果。所以在本发明的总仲裁模块45中,连接于迹线状态迹线RA1至RA4、RB4至RB4、RC1至RC4及RD1至RD4的仲裁模块90,就是要依据各仲裁单元单元优先权的高低,选出单元优先权最高的四个仲裁单元。这四个单元优先权最高的仲裁单元的仲裁结果所选出来的应用电路,也就是最终能实际存取易失性存储器32的四个应用电路。由仲裁模块90选出四个单元优先权最高的仲裁单元后,选择器92则能更进一步根据各仲裁单元的输出A1至A4、B1至B4、C1至C4以及D1至D4(请分别参考图5A至5D)找出这四个仲裁单元所选出的应用电路,并产生总仲裁模块45的输出GRN1。由于状态迹线RA1至RA4等等仅能反映对应仲裁单元是否选择了某个应用电路,而选择器92则能由仲裁模块90所选出来的仲裁单元中,进一步根据这些仲裁单元的输出找出所述等仲裁单元实际选出的应用电路。
以下以一实例来进一步说明本发明并行仲裁器34的运作情形。请参考图4(并一并参考图3)。假设在控制器30中,有应用电路P2、P3、P27、P29以及P53、54、56等七个应用电路在时段T0(请见图3)发出请求信号;故图4中对应这些应用电路的迹线R2、R3、R27、R29、R54、R54及R56也分别被对应应用电路拉至高电位(图4中以“H”代表)。因为应用电路P2、P3属于优先权最高的14个应用电路,发出的请求信号由仲裁模块41接收;应用电路P27属于优先权次高的14个应用电路,其请求信号经迹线R27传输至仲裁模块42;应用电路P29分组于优先权第三高的14个应用电路,由仲裁模块43处理其请求信号;而三个应用电路P53、P54及P56属于优先权最低的14个应用电路,由仲裁模块44处理其请求信号。如图5A所示,仲裁单元51、52会分别选择应用电路P2、P3并分别反映于输出A1、A2中;在输出A1中,对应于应用电路P2的迹线会被拉至高电压,在输出A2中,对应于应用电路P3的迹线也会被拉至高电压。由于应用电路P1至P14中仅有两个应用电路在时段T0中发出请求信号,故仲裁单元53、54就不会选出任何应用电路。对应于仲裁单元51、52,或门99分别对输出A1、A2或运算的结果,会使状态迹线RA1、RA2被拉至高电位(图5A中标示为“H”),代表仲裁单元51、52分别选择了某个应用电路;相对地,对应于未选择应用电路的仲裁单元53、54,状态迹线RA3、RA4则会维持低电位。同理,如图5B、5C所示,在应用电路P15至P28、P29至P42中,分别仅有一个应用电路P27、P29在此一时段内发出请求信号,故仲裁模块42、43中的仲裁单元61、71会分别选择应用电路P27、P29,对应的迹线RB1、RC1会分别呈现高电位,代表应用电路P27、P29分别都已选出某个应用电路。在图5D的仲裁模块44中,因为应用电路P43至P56中有应用电路P53、P54及P56在时段T0中发出了请求信号,故仲裁单元81、82及83依这些应用电路的优先权分别选出了应用电路P53、P54及P56;而迹线RD1、RD2及RD3也分别被拉至高电位,代表这三个仲裁单元各自选出了某个应用电路。综合各仲裁模块41至44中状态迹线RA1至RA4、RB1至RB4、RC1至RC4以及RD1至RD4的电位高低,在图5E中,仲裁模块90会在高电位的状态迹线RA1、RA2、RB1、RC1及RD1、RD2、RD3中依据对应仲裁单元的单元优先权,选出四个单元优先权最高的仲裁单元,也就是状态迹线RA1、RA2、RB1及RD1分别对应的仲裁单元51、52、61及71。仲裁模块90将选择的结果传至选择器92时,选择器92就可根据仲裁单元51、52、61、71的输出A1、A2及B1、C1找出这些仲裁单元分别选择的是应用电路P2、P3、P27及P29,也就是时段T0内发出请求信号的各应用电路中,优先权最高的四个应用电路。类似于现有仲裁器中的输出,选择器92也可以用56条迹线来分别代表应用电路P1至P56,并将对应于应用电路P2、P3、P27及P29的迹线电压拉高,所以并行仲裁器34可输出GRN1以允许优先权最高的四个应用电路。这样一来,整个仲裁过程也就完成了。
请参考图6。图6为本发明的精神在一般化之后实施情形的示意图。假设一控制器中共有M个应用电路会存取同一易失性存储器,而所述易失性存储器同一时间内可供应N个应用电路的存取;仲裁器100即用来仲裁各应用电路对易失性存储器的存取。应用本发明后,可将M个应用电路分别为K个群组,各个群组分别有优先权递减的M(1)、M(2)等至M(k)等等到M(K)个应用电路,使得M(1)+M(2)+...+(M(k)+...M(K)=M。对应于各群组,仲裁器100分别设有M(1)选N(1)、M(2)选N(2)等等至M(k)选N(k)、M(K)选N(K)的仲裁模块作为子仲裁模块;其中N(1)、N(2)等等至N(k)、N(K)皆大于或等于N。总仲裁模块102则可由各仲裁模块的总共Nt个仲裁结果中(Nt=N(1)+N(2)+...N(k)+...N(K)),选出N个应用电路,以便在发出请求信号的应用电路中选出优先权最高的N个应用电路。在本发明中,除了以图5A至E的方法来实施外,图4中的并行仲裁器34也可用编码的方式来产生最终的输出GRN1;其中各仲裁模块41至44可分别将仲裁的结果编码后传输至总仲裁模块45中,再由总仲裁模块45进一步选出最终得以实际存取易失性存储器的四个应用电路。换句话说,本发明最重要的精神之一,就是将控制器中各应用电路划归于不同的群组,各个群组可同时以对应的仲裁模块进行仲裁,以减少仲裁过程的时间。由于各仲裁模块仅需仲裁对应群组中较少的应用电路,实际实现各仲裁模块的门数也可大幅缩小。
由以上的揭示,技艺人士亦可明了到,前述实施例亦可将非易失性存储器置于控制器之外。此外,技艺人士当可明了,本发明亦非常适合于微处理器,或者是目前逐渐流行的系统晶片(system on chip,SOC)的应用,系统晶片上较佳地集成有静态随机存取存储器,并同时集成有多个应用模块,所述应用模块皆有可能存取所述静态随机存取存储器,故本发明的并行仲裁架构便可应用于系统晶片之中,使得系统晶片在多重允许(multiple grants)的高速晶片设计中,较易控制时脉的关键期(critical period),并可以节省总门数。
以图2及图4中具体的实施例来比较现有技术与本发明,两者皆需仲裁56个应用电路在同时间内可能的资源存取请求,以选出四个能实际存取易失性存储器的应用电路。在现有技术中,必需以四个56选1的仲裁模块串联依序来进行优先权仲裁,由于每个仲裁模块要处理56个输入及56个输出间的关系,其逻辑门的门数较多,运作延迟也较长;而仲裁所需的总时间,也会是这四个56选1仲裁模块延迟时间的总和。相较之下,本发明在图4中的实施例,由于56个应用电路被分组为四个群组,各群组可分别以对应的仲裁模块41至44同时进行仲裁,最后再由总仲裁模块45进行进一步的仲裁。由于各仲裁模块及总仲裁模块仲裁的对象远少于现有技术中的56个,故各仲裁模块及总仲裁模块实现所需的门数能大幅减少,运作的延迟时间也能缩短。由于各仲裁模块能并行同时运作,故本发明中仲裁所需的时间仅为一仲裁模块及总仲裁模块两者延迟时间的总和,故能够以较短的时间完成仲裁。在实际将本发明运用于一网路交换器(switch)的晶片时,可发现本发明实现所需的门数仅为现有技术的60%,能减少布局占用的面积及所需的功率,更能减少仲裁所需的时间,增加控制器运作的效能。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明专利的涵盖范围。
权利要求
1.一种具有并行仲裁机制的多重允许控制器,其包含有一易失性存储器;多个应用电路,当各应用电路要存取所述易失性存储器时,每一应用电路可发出一对应的请求信号,其具有一对应的优先权,以代表不同的应用电路具有不同的存取优先权;以及一并行仲裁器,其中当所述应用电路中有第一多个应用电路在一时段内主张请求信号时,所述仲裁器可根据所述第一多个应用电路对应的优先权选择出不超过一预设数目个优先权较高的应用电路,以允许所述预设数目个应用电路得以存取所述易失性存储器;所述并行仲裁器包含有多个子仲裁模块,用以接收所述请求信号;各子仲裁模块只接收所述请求信号中一部分的请求信号,且各所述子仲裁模块并行地根据所述部分的请求信号而输出一子仲裁结果;以及一总仲裁模块,耦接于所述子仲裁模块,用以接收所述子仲裁结果,所述总仲裁模块根据所述子仲裁结果允许不超过所述预设数目个的优先权较高的应用电路的存取请求。
2.如权利要求1的多重允许控制器,其中各所述子仲裁模块所接收的部分请求信号彼此不同。
3.如权利要求1的多重允许控制器,其中所述多重允许控制器是一微处理器。
4.如权利要求1的多重允许控制器,其中所述多重允许控制器是一系统晶片。
5.如权利要求1的多重允许控制器,其中所述易失性存储器是一静态随机存取存储器。
6.如权利要求1的多重允许控制器,其中各子仲裁模块分别从其所接收的所述部分请求信号,选择出不超过所述预设数目个优先权较高的应用电路。
7.如权利要求1的多重允许控制器,其中各子仲裁模块包含有多个仲裁单元,各仲裁单元具有一单元优先权;所述仲裁单元可根据其所接收的所述部分请求信号,依序仲裁选择出一优先权较高的相关应用电路所主张的请求信号。
8.如权利要求7的多重允许控制器,其中各子仲裁模块的所述仲裁单元依序串接,而各仲裁单元所选择出的优先权较高的相关应用电路所主张的请求信号,提供串接于其后的仲裁单元,以为其后串接的仲裁单元遮罩所接收的所述部分请求信号。
9.一种并行仲裁的多重允许方法,用以多重允许一控制器中多个应用电路对一易失性存储器的存取;其中当所述控制器中的各应用电路要存取所述易失性存储器时,每一应用电路可发出一对应的请求信号,其具有一对应的优先权,以代表不同的应用电路具有不同的存取优先权,所述方法包含有下列步骤所述应用电路中有第一多个应用电路在一时脉周期内主张其请求信号;将所有请求信号区分成多个群组的请求信号;并行地选择所述群组中优先权较高的主张的请求信号,以回应于所述区分的群组的请求信号,而各群组所选择出的请求信号是不超过一预设数目;以及仲裁以允许不超过所述预设数目个其中优先权较高的主张的请求信号,以回应于所选择出的所述群组的请求信号。
10.如权利要求9的方法,其中所述控制器是一微处理器。
全文摘要
本发明提供一种在控制器上分配系统资源的相关装置及方法。所述控制器上设有一易失性存储器、多个应用电路及一仲裁器;各应用电路可发出一请求信号以要求对所述存储器的存取,各应用电路并分别设定有存取所述易失性存储器的优先权。当有多个应用电路在同一时段内发出请求信号时,所述仲裁器会由这些应用电路选出优先权较高的应用电路以使这些应用电路得以存取所述易失性存储器。所述仲裁器中包含有多个仲裁模块及一总仲裁模块,各仲裁模块各自对应于不同的多个应用电路,使各种仲裁模块能同时由对应的多个应用电路中先选出优先权较高的应用电路;而总仲裁模块则会由各仲裁模块选出的应用电路中进一步选出得以存取所述易失性存储器的应用电路。
文档编号G06F13/18GK1403913SQ0214688
公开日2003年3月19日 申请日期2002年10月18日 优先权日2002年10月18日
发明者曾千书, 陈任凯 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1