CN1841350A - 仲裁器和控制仲裁器的方法以及信息处理装置 - Google Patents
仲裁器和控制仲裁器的方法以及信息处理装置 Download PDFInfo
- Publication number
- CN1841350A CN1841350A CNA2006100665585A CN200610066558A CN1841350A CN 1841350 A CN1841350 A CN 1841350A CN A2006100665585 A CNA2006100665585 A CN A2006100665585A CN 200610066558 A CN200610066558 A CN 200610066558A CN 1841350 A CN1841350 A CN 1841350A
- Authority
- CN
- China
- Prior art keywords
- bus
- request
- moderator
- modules
- bus access
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
一种仲裁器和控制仲裁器的方法以及信息处理装置。在包括多个模块和仲裁该多个模块的总线访问请求的第一仲裁器的信息处理装置中,该多个模块中的至少一个包括多个子模块和第二仲裁器,该第二仲裁器仲裁该多个子模块的总线访问请求,并将该多个子模块的总线访问请求中的至少一个发送到第一仲裁器。第一仲裁器将优先权赋予发送很多总线访问请求的模块或进行先前总线访问的模块,并限制同一模块的连续访问的数量,以控制该多个模块访问总线的优先权。第二仲裁器根据每个子模块的缓冲器的空闲状态或访问类型来控制该多个子模块访问总线的优先权,由此可以仲裁该多个模块的总线访问请求,从而增加总线使用效率。
Description
技术领域
本发明涉及一种用来仲裁由多个模块进行的总线访问的装置和用于控制该装置的方法。
背景技术
当访问连接到动态随机存取存储器(DRAM)的存储器总线的多个总线主控器(bus master)每个都发送总线使用请求时,用来仲裁总线访问的仲裁器将该存储器总线使用权赋予该总线主控器中的一个,以控制(仲裁)总线使用权。在过去,从硬件的观点将总线使用权的优先权赋予总线主控器。因此,当同时从多个总线主控器发送总线使用请求时,总线仲裁器将总线使用允许信号发送到总线主控器中预定的一个,其通常是具有高优先权的总线主控器。随后,将总线使用权赋予该具有高优先权的总线主控器。例如,日本特开平09-062579号公报公开了上述技术。
因此,如果从具有高优先权的总线主控器频繁地发送总线使用请求,那么具有高优先权的总线主控器获得总线使用权的比率增加。在这种情况下,具有低优先权的总线主控器难以获得总线使用权。
因此,通过限制下一个总线使用请求的接收,直到将总线使用权赋予每一个接收到的总线使用请求,具有低优先权的总线主控器就可以获得总线使用权。然而,当大量总线主控器发送总线使用请求时,具有高优先权的总线主控器进行的访问数几乎与具有低优先权的总线主控器进行的访问数相同。
此外,如果当使用能成组传送(burst-transfer-capable)的总线和/或连接到DRAM等的存储器总线时,频繁地将总线使用权从一个总线主控器转移到另一个总线主控器,则增加了地址设置的开销,并降低了总线使用效率。
此外,当通过单个仲裁器专门执行总线使用权的仲裁时,由于总线主控器数量的增加,仲裁处理变得复杂,电路尺寸增加,并且总线的高速操作性降低。
发明内容
本发明允许总线使用权的动态控制,以提高总线的使用效率。
此外,本发明允许以分布方式仲裁总线使用权,防止由于总线主控器的数量的增加而引起的仲裁器电路尺寸的增加,以及维持总线的高速操作性。
根据本发明的一个方面,提供一种仲裁器,用来仲裁多个模块对总线的访问,该仲裁器包括:检测单元,用来检测设置在该多个模块的每个中的缓冲器的空闲空间状态以存储数据;以及控制单元,用来根据所述每个缓冲器的空闲空间状态来控制该多个模块访问总线的优先权。
根据本发明的另一方面,提供一种仲裁器,用来仲裁多个模块对总线的访问,该仲裁器包括:请求队列,用来堆叠从该多个模块中的每一个发送的至少一个总线访问请求;检测单元,用来检测堆叠在该请求队列上的所述至少一个总线访问请求的数量;以及控制单元,用来根据该多个模块中的每一个的总线访问请求的数量,来控制访问总线的优先权。
根据本发明的另一方面,提供一种信息处理装置,包括:多个模块;以及第一仲裁单元,用来仲裁从该多个模块发送的总线访问请求;其中,至少一个模块包括:多个子模块;以及第二仲裁单元,用来仲裁从该多个子模块发送的总线访问请求,并将从该多个子模块发送的总线访问请求中的至少一个发送到该第一仲裁单元。
根据本发明的另一方面,提供控制仲裁器的方法,该仲裁器用来仲裁多个模块对总线的访问,该方法包括以下步骤:检测设置在该多个模块的每一个中的缓冲器的空闲空间状态以存储数据;以及根据所述每个缓冲器的空闲空间状态来控制访问总线的优先权。
根据本发明的另一方面,提供一种控制仲裁器的方法,该仲裁器用来仲裁多个模块对总线的访问,该方法包括以下步骤:检测从该多个模块中的每一个发送的至少一个总线访问请求的数量,该总线访问请求被堆叠在堆叠从该多个模块的每一个发送的总线访问请求的请求队列上;以及根据该多个模块中的每一个的总线访问请求数量来控制对总线访问的优先权。
根据本发明的另一方面,提供一种存储在计算机可读存储介质上的计算机可执行的处理步骤,该计算机可执行的处理步骤执行上述方法。
通过以下(参考附图)对典型实施例的说明,本发明的其它特征将变得很明显。
附图说明
图1是示出根据本发明第一实施例的图像处理装置的结构的例子的框图;
图2是详细示出图像处理模块的结构的例子的框图;
图3是示出在子模块之间执行数据传送的时序图;
图4是示出图像处理模块中的仲裁器的操作算法的流程图;
图5是示出图像处理装置中的仲裁器的操作算法的流程图;
图6是示出用于限制连续总线访问的算法的流程图;
图7是示出根据本发明第二实施例的图像处理模块的结构的例子的框图;
图8是示出根据本发明第二实施例的仲裁器的操作算法的流程图。
具体实施方式
以下,参考附图对本发明的典型实施例进行详细说明。
第一实施例
图像处理装置的结构
首先,对用来执行各种类型图像处理过程并向外发送图像信号的图像处理装置的例子进行说明。图1是示出根据本发明第一实施例的图像处理装置的示例结构的框图。
图1中,中央处理单元(CPU)1根据存储在只读存储器(ROM)2中的程序,通过使用动态随机存取存储器(DRAM)7作为工作存储器,控制整个图像处理装置。此外,CPU 1通过CPU总线1a与ROM 2、总线桥3、以及输入/输出(I/O)端口9连接。
仲裁器5仲裁CPU 1通过总线桥3对DRAM 7进行的访问以及n个图像处理模块4(其中,保持表达式n≥1且n为整数)对DRAM7进行的访问。此外,DRAM 7具有DRAM接口(I/F)6。
此外,图像处理模块4中的一个,例如,图1中所示的图像处理模块4n,通过头接口(I/F)8连接到喷墨打印机的打印头。
图1中,CPU 1和图像处理模块4共享DRAM 7。然而,可以将CPU 1专用的随机存取存储器(RAM)(未示出)连接到CPU总线1a,以维持并增加图像处理装置的性能。
处理操作
CPU 1接收从I/O端口9发送来的用于根据存储在ROM 2中的程序进行处理的图像数据,并通过总线桥3、仲裁器5、和DRAM I/F6将该图像数据存储在DRAM 7中。接着,CPU 1设置图像处理模块4a的配置寄存器,使得图像处理模块4a工作。
图像处理模块4a执行预定处理。在读取或写入设置在配置寄存器中的用于处理的数据后,图像处理模块4a产生中断并将其发送到CPU 1,以通知CPU 1该处理被完成。
一旦接收到该中断,CPU 1就分析该中断产生的原因。当完成了由图像处理模块4a执行的读取处理时,CPU 1设置下一个用于处理的数据,并使图像处理模块4a继续执行处理。此外,当完成了由图像处理模块4a执行的写入处理时,CPU 1设置存储下一个用于处理的数据的位置,使图像处理模块4a继续执行处理,为下一个图像处理模块4b设置配置寄存器,并使图像处理模块4b工作。
图像处理模块4b执行预定处理。在读取或写入设置在配置寄存器中的用于处理的数据后,图像处理模块4b产生中断并将其发送到CPU 1,以通知CPU 1该处理结束。
一旦接收到该中断,CPU 1就分析该中断产生的原因。当完成了由图像处理模块4b执行的读取处理时,CPU 1设置下一个用于处理的数据,并使图像处理模块4b继续执行处理。此外,当完成了由图像处理模块4b执行的写入处理时,CPU 1设置存储下一个用于处理的数据的位置,使图像处理模块4b继续执行处理,为下一个图像处理模块4c设置配置寄存器,并使图像处理模块4c工作。
这样,在完成了由预定图像处理模块执行的前面的处理后,立即起动下一个图像处理模块,并将用于处理的数据发送到该下一个图像处理模块。通过重复执行上述操作,可以形成以图像处理模块为单位的流水线。
当图像处理模块4m完成了执行上述处理时,产生预定量或以上的位图数据。随后,CPU 1启动打印机引擎(未示出),使图像处理模块4n与从打印机引擎发送的同步信号同步开始执行处理,并将该位图数据通过头I/F 8发送到打印机引擎,使得打印机引擎打印该位图数据的图像。
图像处理模块的结构
图2是详细示出图像处理模块4的示例结构的框图。图像处理模块4包括读缓冲器10、m个子模块11(其中,保持表达式m≥1且m为整数)、写缓冲器12、仲裁器13、读地址发生器14、中断控制器15以及写地址发生器16。
根据图像处理模块4的配置寄存器上的设置,CPU 1对读地址发生器14设置关于读起始地址和/或读结束地址的信息、以及读使能(enable)信号Ren。此外,CPU 1对写地址发生器16设置关于写起始地址和/或写结束地址的信息、以及写使能信号Wen。
仲裁器13检测读缓冲器10的空闲空间Rp和读地址发生器14的使能信号Ren。如果读地址有效(Ren=′1′),并且可将数据存储在读缓冲器10中(Rp≥Rn),则发出读请求(PREQ=′1′、PNRW=′0′、PNUM=Rn、和PADD=Rad),并将其发送到仲裁器5。
如果写缓冲器12的数据累积数Wp的值大于等于预定字数(Wp≥Wn),则仲裁器13检测写地址发生器16的使能信号Wen。如果写地址有效(Wen=′1′),则仲裁器13发出写请求(PREQ=′1′、PNRW=′1′、PNUM=Wn、和PADD=Wad),并将其发送到仲裁器5。
一旦接收到从图像处理模块4发送的请求信号PREQ,仲裁器5就根据由PNRW代表的信息判断请求信号PREQ是表示读请求还是写请求,并根据由PNUM代表的信息检测字数,以及根据由PADD代表的信息检测读和/或写地址。如果此时从CPU 1和任一其它图像处理模块4都没有发送请求,则仲裁器5通过DRAM I/F 6开始访问DRAM 7的地址。如果通过DRAM I/F 6接收到请求,则仲裁器5将接收信号PACK返回到作为请求源的图像处理模块4。另一方面,当从CPU 1和任一其它图像处理模块4发送请求时,仲裁器5按照优先权的降序接收该请求。
在接收信号PACK被发送且该请求为读请求的情况下,仲裁器13将接收信号Rack发送到作为请求源的读地址发生器14。当接收信号PACK被发送且该请求为写请求时,仲裁器13将接收信号Wack发送到作为请求源的写地址发生器16。
一旦接收到接收信号Rack,读地址发生器14就产生下一个地址。如果所发出的请求所针对的地址是读结束地址,则读地址发生器14复位读使能信号Ren,并将读结束信号Rend发送到中断控制器15。一旦接收到接收信号Wack,写地址发生器16就产生下一个地址。如果所发出的请求所针对的地址是写结束地址,则写地址发生器16复位写使能信号Wen,并将写结束信号Wend发送到中断控制器15。
中断控制器15可以通过使用配置寄存器设置读结束中断屏蔽和写结束中断屏蔽。如果每个中断屏蔽上的设置代表允许中断,则中断控制器15根据读结束信号Rend和/或写结束信号Wend产生中断信号INT,并将该中断信号INT发送到CPU 1。
一旦接收到中断信号INT,CPU 1就读取关于中断控制器15的状态信息。如果因为完成了读处理而产生该中断信号,则CPU 1复位读结束中断屏蔽,并取消该中断信号INT。如果需要继续该处理,则CPU 1再次设置读起始地址和读结束地址,设置读使能信号Ren,并设置读结束中断屏蔽。此外,如果因为完成了写处理而产生该中断信号,则CPU 1复位写结束中断屏蔽,并取消该中断信号INT。如果需要继续该处理,则CPU 1再次设置写起始地址和写结束地址,设置写使能信号Wen,并设置写结束中断屏蔽。
接着,当从DRAM 7读取数据时,仲裁器5将DRAM数据有效信号PVALID发送到作为请求源的图像处理模块4。图像处理模块4的仲裁器13将数据有效信号Rvalid发送到读缓冲器10。读缓冲器10在数据有效信号Rvalid被设置期间的时间段存储DRAM数据输出信号PDIN上的数据。从而,将DRAM 7上的数据存储在读缓冲器10中。
另一方面,当将数据写入DRAM 7时,仲裁器5将DRAM数据有效信号PVALID发送到图像处理模块4,该图像处理模块4是在将该数据写入DRAM 7时的请求源。作为请求源的图像处理模块4的仲裁器13将数据有效信号Wvalid发送到写缓冲器12。写缓冲器12发送待写入DRAM 7的数据,作为在数据有效信号Wvalid被设置期间的时间段的DRAM数据输入信号PDOUT。从而,将写缓冲器12上的数据存储在DRAM 7中。
当准备由子模块11a执行的处理所需的每一数据项时,读缓冲器10设置有效信号valid_0。否则,读缓冲器10使有效信号valid_0复位。
当没有设置从子模块11a发送的存储请求信号stall_0时,读缓冲器10与时钟信号同步地向外发送存储在其中的数据。然而,当设置了存储请求信号stall_0时,读缓冲器10不更新存储在其中的数据。
子模块11a仅接收设置有有效信号valid_0的数据。如果子模块11a难以接收此数据,则子模块11a设置存储请求信号stall_0,并保持从读缓冲器10发送的信号。如果不需要重新排列输入数据项,则可以将读缓冲器10形成为先进先出(FIFO)存储器。同样地,如果不需要重新排列输出数据项,则可以将写缓冲器12形成为FIFO存储器。
图像处理模块4包括至少一个用来执行图像处理的子模块11。如果具有两个子模块11,则在子模块11之间执行与上述相同的操作(即,通过使用有效信号valid_x和存储请求信号stall_x的信号交换(hand shaking)),使得在子模块11之间发送和/或接收数据data_x。
在子模块之间执行的数据传送
图3是示出在子模块11之间执行的数据传送的时序图。当可以发送数据时,数据发送侧的子模块11与时钟信号clk的上升沿同步地设置数据信号d1和有效信号valid(T1)。如果接收侧的子模块11没有与下一个信号的上升沿同步地设置存储请求信号stall,则判断为接收到数据信号d1。然后,如果可以发送下一数据,则数据发送侧的子模块11设置数据信号d2和有效信号valid(T2)。如果难以发送下一数据,则数据发送侧的子模块11复位有效信号valid(T3)。
当接收侧的子模块11在下一个时钟信号的上升沿设置存储请求信号stall时,则判断为该数据信号未被接收并保持数据信号d5和有效信号valid(T7)。此外,如果没有设置有效信号valid,即使通过接收侧的子模块11设置了存储请求信号stall(T8),数据信号d5也是无效的。在这种情况下,接收侧的子模块11发送作为下一个有效数据的数据信号d6,并设置有效信号valid,而无需保持数据信号d5和有效信号valid(T9)。也就是说,当没有设置有效信号valid时,忽略存储请求信号stall。
当数据接收侧的子模块11可以接收数据时,子模块11与时钟信号clk的上升沿同步地接收对其设置了有效信号valid的数据信号(T1、T2、T4和T5)。如果数据接收侧的子模块11难以接收数据,则上述子模块11设置存储请求信号stall,并使发送侧的子模块11保持数据信号d5和有效信号valid(T6)。然后,当数据接收侧的子模块11能够接收数据时,其复位存储请求信号stall并接收发送到其的数据信号d5(T7)。
如果写缓冲器12具有空闲空间,则其存储当子模块11设置有效信号valid_n时所获得的数据信号data_n。如果写缓冲器12没有空闲空间,则其设置存储请求信号stall_n,并使子模块11保持输出信号。
图像处理模块中的仲裁器13的操作算法
图4是示出仲裁器13的操作算法的流程图。以下,将请求队列上所累积的请求的数量确定为Pp,将执行请求队列上所累积的请求时写缓冲器12上所累积的数据项的数量(评估值)确定为Pw,而将执行请求队列上所累积的请求时读缓冲器10的空闲空间(评估值)确定为Pr。当仲裁器5接收到请求(PACK=′1′)时,Pp的值递减1。以下,假定读请求产生的频率大于写请求产生的频率。此外,按照对总线访问的请求的产生频率的升序,对每个模块检测后面将进行说明的关于缓冲器的空闲空间的状态的信息。
当写缓冲器12上所累积的数据项的数量的评估值Pw大于等于预定的字数Wn(Pw≥Wn),且写地址为有效(Wen=′1′)时,可以由表达式Wreq=′1′代表写请求Wreq。此外,当读缓冲器10的空闲空间的评估值Pr大于等于预定的字数Rn(Pr≥Rn),且读地址Ren为有效(Ren=′1′)时,可以由表达式Rreq=′1′代表读请求Rreq。
首先,在步骤S201,判断是否由表达式Wreq=′1′代表写请求Wreq,且由表达式Pw≥Wth代表评估值Pw和预定值Wth间的关系或者请求队列上所累积的上一请求是由表达式ID1=IDw代表的写请求。如果是,则流程进入步骤S205,在该步骤,在请求队列上累积该写请求。
如果未满足上述条件,则流程进入步骤S202,在该步骤,判断是否由表达式Rreq=′1′代表读请求,且由表达式Pr≥Rth代表评估值Pr和预定值Rth之间的关系或者请求队列上所累积的上一请求是由表达式ID1=IDr代表的读请求。如果是,则流程进入步骤S206,在该步骤,在请求队列上累积该读请求。
在步骤S203,如果未满足上述两个条件,且由表达式Rreq=′1′代表读请求Rreq,则流程进入步骤S206,在该步骤,在请求队列上累积该读请求Rreq。如果不是由表达式Rreq=′1′代表读请求Rreq,则流程进入步骤S204。在步骤S204,如果由表达式Wreq=′1′代表写请求Wreq,则在步骤S205,在请求队列上累积该写请求Wreq。
在步骤S205,当在请求队列上累积写请求Wreq时,将当前的请求识别码ID存储在紧前一个请求识别码寄存器ID1中,并将当前的请求识别码ID更新为写请求识别码IDw。同时,从评估值Pw减去写数据数Wn,从而更新评估值。此外,表示在请求队列上累积的请求的数量的请求数Pp的值被递增1。
此外,在步骤S206,当在请求队列上累积读请求Rreq时,将当前的请求识别码ID存储在紧前一个请求识别码寄存器ID1中,并将当前的请求识别码ID更新为读请求识别码IDr。同时,从评估值Pr中减去读数据数Rn,从而更新评估值Pr。此外,表示在请求队列上累积的请求的数量的请求数Pp的值被递增1。
在完成上述处理过程后,处理返回到步骤S201,以便再次执行上述处理过程。不需要设置表示请求队列上所累积的请求的数量的请求数Pp的上限,这是因为每一缓冲器的容量和仲裁器5的序列等对请求数Pp施加有限制。然而,如果根据系统配置需要设置请求数Pp的上限,则可以对请求数Pp设置最大值,使得当请求数Pp的值达到最大值时,表达式Rreq=Wreq=0成立。
图像处理装置的仲裁器5的操作算法
图5是示出仲裁器5的操作算法的流程图。在下面的说明中,三个图像处理模块M1、M2和M3、引擎处理模块M4以及总线桥B0与仲裁器5相连接。将最高优先权赋予引擎处理模块M4,以执行实时控制。将第二高优先权赋予总线桥B0。三个图像处理模块M1、M2和M3的优先权彼此相同。因此,可以用下面的表达式表示上述模块的优先权:
M4>B0>M1、M2和M3。
首先,在步骤S211,仲裁器5判断具有最高优先权的引擎处理模块M4是否发送对总线使用权的请求req4,其由表达式req4=′1′示出。如果表达式req4=′1′成立,则在步骤S216,仲裁器5接收请求req4,将当前的请求识别码ID存储在紧前一个请求识别码寄存器ID1中,并将当前的请求识别码ID更新为引擎处理模块M4的请求识别码ID_4。然后,仲裁器5将接收信号PACK发送到引擎处理模块M4,处理返回到步骤S211。
在步骤S211,如果引擎处理模块M4没有发送请求req4,那么在步骤S212,仲裁器5判断总线桥B0是否发送请求req0,其由表达式req0=′1′示出。如果表达式req0=′1′成立,则流程进入步骤S217,在该步骤,仲裁器5接收请求req0,将当前的请求识别码ID存储在紧前一个请求识别码寄存器ID1中,并将当前的请求识别码ID更新为总线桥B0的请求识别码ID_0。然后,仲裁器5将接收信号PACK发送到总线桥B0,处理返回到步骤S211。
在步骤S212,如果总线桥B0没有发送请求req0,那么在步骤S213,仲裁器5判断图像处理模块M1是否发送请求req1,其由表达式req1=′1′示出。如果表达式req1=′1′成立,则仲裁器5判断图像处理模块M1的请求数P1的值是否是三个图像处理模块M1、M2和M3的请求数的值中最大的,其中,该请求数P1表示在请求队列上累积的请求的数量。也就是说,仲裁器5判断表达式P1=Pmax是否成立。此外,仲裁器5判断发送到其的紧前一个请求是否是从图像处理模块M1发送的请求,其由表达式ID1=ID_1示出。如果由表达式req1=′1′示出判断结果,并且表达式P1=Pmax或表达式ID1=ID_1成立,则仲裁器5接收请求req1。然后,在步骤S218,仲裁器将当前的请求识别码ID存储在紧前一个请求识别码寄存器ID1中,并将当前的请求识别码ID更新为图像处理模块M1的请求识别码ID_1。然后,仲裁器5将接收信号PACK发送到图像处理模块M1,处理返回到步骤S211。
此外,如果表达式req1=′0′和/或表达式P1≠Pmax成立且表达式ID1≠ID_1成立,则流程进入步骤S214,在该步骤,仲裁器5对图像处理模块M2执行如对图像处理模块M1所执行的相同的处理。也就是说,仲裁器5判断请求req2是否被发送,其由表达式req2=′1′示出,和请求数P2是否是图像处理模块M1、M2和M3的请求数中最大的,其由表达式P2=Pmax示出,或者紧前一个请求是否是从图像处理模块M2发送的,其由表达式ID1=ID_2示出。如果判断结果示出为表达式req2=′1′,且表达式P2=Pmax或者表达式ID1=ID_2成立,则仲裁器5接收请求req2。然后,在步骤S219,仲裁器5将当前的请求识别码ID存储在紧前一个请求识别码寄存器ID1中,并将当前的请求识别码ID更新为图像处理模块M2的请求识别码ID_2。然后,仲裁器5将接收信号PACK发送到图像处理模块M2,处理返回到步骤S211。
如果表达式req2=′0′和/或表达式P2≠Pmax成立且表达式ID1≠ID_2成立,则在步骤S215和S220,仲裁器5对图像处理模块M3执行如对图像处理模块M1和M2所执行的相同的处理,然后处理返回到步骤S211。
对于三个图像处理模块M1、M2和M3的优先权,可以将最高优先权赋予其请求数P1的值为最高的图像处理模块,或者赋予与发送紧前一个请求的图像处理模块相同的图像处理模块。
根据上述算法,部分地固定优先权顺序。因此,如果具有高优先权的总线主控器例如引擎处理模块M4和总线桥B0频繁地发送总线使用权的请求,则该总线主控器可以独占使用该总线。特别地,根据上述配置,引擎处理模块M4的优先权高于总线桥B0的优先权。随后,在预定定时对CPU 1的请求的应答性恶化。此外,在图像处理模块M1、M2和M3的情况下,将最高优先权赋予发送紧前一个请求的图像处理模块。因此,图像处理模块中的预定的一个可以独占使用该总线。在这种情况下,设置连续访问数的上限,从而不让预定的总线主控器独占使用总线。
图6是示出用于限制对总线的连续访问数的算法的流程图。
首先,在步骤S221,检测表示当前发送请求的模块的数量的模块数Nr。接着,在步骤S222,对当前请求识别码ID的值与紧前一个请求识别码寄存器ID1的值进行比较。如果表达式Nr≤1或表达式ID1≠ID成立,那么在步骤S223,将计数器C的值复位为0。
如果表达式Nr>1和表达式ID1=ID成立,那么在步骤S224,进行是否接收信号PACK=1(即,将接收信号PACK发送到作为目标的模块)的判断。如果PACK=1,则流程进入步骤S225,在该步骤,每次将接收信号PACK发送到作为目标的模块,递增计数器C。
通过重复上述图6中所示的处理过程,通过计数器C计数由同一模块进行的连续总线访问的数量(以下称之为连续总线访问数)。在步骤S226,进行计数器C是否已经达到预定的值Cth的判断。当计数器C的值达到该预定值时,流程进入步骤S227,在该步骤,仲裁器5屏蔽从由紧前一个请求识别码寄存器ID1表示的模块发送的请求。在计数器C的值小于该预定的值时,在步骤S228,取消该请求的屏蔽。
根据上述配置,可以接收从不同于上述模块的模块发送的请求,从而限制连续总线访问数。此外,一旦将总线使用权转移到不同的模块,通过在步骤S221到S223中执行的处理过程复位计数器C的值。
在图6中,全部上述模块共享对连续总线访问数进行计数的计数器C。然而,可以在每一个模块中都提供计数器C,使得可以由每个模块限制连续总线访问数。例如,如果将总线桥B0的限制值调整到CPU 1的高速缓存的行大小,则可以有效地更新高速缓存的值。
此外,当上述模块访问DRAM 7不同的存储体(bank)时,可以不考虑总线访问的连续性。从而,可以不进行当前使用的请求识别码ID和紧前一个请求识别码寄存器ID1之间的比较。
这样,通过根据缓冲器的空闲空间的状态、紧前一个访问、和连续访问的数量来动态地改变(控制)总线访问优先权,可以在增加总线访问连续性的同时,根据每个总线主控器的总线使用频率来仲裁总线访问。
此外,由于不仅通过整个图像处理装置的仲裁器5,而且还通过每个模块所具有的仲裁器13执行仲裁(分布的仲裁),因而可以执行适合每个模块的仲裁。例如,如果总线主控器的请求产生频率彼此不同,则按照请求产生频率的升序执行指针(pointer)评价和连续访问数评价。通过将较高的优先权赋予具有低请求产生频率的总线主控器,增加具有低请求产生频率的总线主控器获得总线使用权的比率,并实现处理均衡化。如果总线主控器的请求产生频率几乎彼此相同,则根据由此进行的写入访问,将较高的优先权赋予该总线主控器。这是因为执行写入处理所需的等待时间(latency)短于执行读取处理所需的等待时间,并且直到打开存储器总线为止的时间段较短。
第二实施例
以下,将对根据本发明的第二实施例执行的图像处理进行说明。在第二实施例中,用相同的附图标记表示与第一实施例相同的要素,并省略对其说明。
图7是示出根据第二实施例的图像处理模块的示例结构的框图。图7中所示的图像处理模块与图2中所示的图像处理模块的不同之处在于:在图7中设置有两个读缓冲器10a和10b、两个写缓冲器12a和12b、两个读地址发生器14a和14b、以及两个写地址发生器16a和16b。
仲裁器13检测关于表示读缓冲器10a的空闲空间的缓冲器空间R0p的信息和读地址发生器14a的使能信号R0en。如果读地址为有效(R0en=′1′),且读缓冲器10a可以存储数据(R0p≥R0n),则仲裁器13将读请求(PREQ=′1′、PNRW=′0′、PNUM=R0n和PADD=R0ad)发送到仲裁器5。同样地,仲裁器13检测关于表示读缓冲器10b的空闲空间的缓冲器空间R1p的信息和读地址发生器14b的使能信号R1en。如果读地址为有效(R1en=′1′),且读缓冲器10b可以存储数据(R1p≥R1n),则仲裁器13将读请求(PREQ=′1′、PNRW=′0′、PNUM=R1n和PADD=R1ad)发送到仲裁器5。
如果表示在写缓冲器12a上累积的数据项的数量的累积数据数W0p大于等于预定的字数(W0p≥W0n),则仲裁器13检测从写地址发生器16b发送的使能信号W0en。当写地址为有效(W0en=′1′)时,仲裁器13将写请求(PREQ=′1′、PNRW=′1′、PNUM=W0n和PADD=W0ad)发送到仲裁器5。同样地,如果表示在写缓冲器12b上累积的数据项的数量的累积数据数W1p大于等于预定的字数(W1p≥W1n),则仲裁器13检测从写地址发生器16b发送的使能信号W1en。当写地址为有效(W1en=′1′)时,仲裁器13将所示的写请求(PREQ=′1′、PNRW=′1′、PNUM=W1n和PADD=W1ad)发送到仲裁器5。
图8是示出第二实施例的仲裁器13的操作算法的流程图。与第一实施例的情况一样,当执行请求队列上累积的请求时,将写缓冲器12a上累积的数据项的数量(评估值)确定为Pw0,将写缓冲器12b上累积的数据项的数量(评估值)确定为Pw1,将当执行请求队列上累积的请求时的读缓冲器10a的空闲空间(评估值)确定为Pr0,以及将读缓冲器10b的空闲空间(评估值)确定为Pr1。当仲裁器5接收请求(PACK=′1′)时,Pp的值递减1。以下,假定表达式(读缓冲器10a的请求产生频率)>(读缓冲器10b的请求产生频率)=(写缓冲器12b的请求产生频率)>(写缓冲器12a的请求产生频率)成立。此外,按照总线访问请求产生频率的升序,检测每个模块的缓冲器空闲空间状态的信息。
当写缓冲器12a上累积的数据项数量的评估值Pw0大于等于预定的字数W0n(Pw0≥W0n),且写地址为有效(W0en=′1′)时,可以由表达式W0req=′1′代表写缓冲器12a的写请求W0req。此外,当表示写缓冲器12b上累积的数据项数量的评估值Pw1大于等于预定的字数W1n(Pw1≥W1n),且写地址W1en为有效(W1en=′1′)时,可以由表达式W1req=′1′代表写缓冲器12b的写请求W1req。
当表示读缓冲器10a的空闲空间的评估值Pr0大于等于预定的字数R0n(Pr0≥R0n),且读地址为有效(R0en=′1′)时,可以由表达式R0req=′1′代表读缓冲器10a的读请求R0req。此外,当表示读缓冲器10b的空闲空间的评估值Pr1大于等于预定的字数R1n(Pr1≥R1n),且读地址为有效(R1en=′1′)时,可以由表达式R1req=′1′代表读缓冲器10b的读请求R1req。
首先,在步骤S231,判断是由表达式W0req=′1′代表写请求W0req,并且评估值Pw0是否大于等于预定值W0th或请求队列上累积的紧前一个请求是否是写缓冲器12a的写请求(ID1=IDw0)。如果是,则在步骤S239,在请求队列上累积写缓冲器12a的写请求。
如果未满足上述条件,则流程进入步骤S232,在该步骤,判断是否由表达式W1req=1代表写请求W1req,并且表示写缓冲器12b上累积的数据项数量的评估值P1w是否大于等于预定值W1th或者请求队列上累积的紧前一个请求是否是写缓冲器12b的写请求IDw1(ID1=IDw1)。如果是,则在步骤S240,在请求队列上累积写缓冲器12b的写请求。
如果未满足上述两个条件,则在步骤S233,判断是否由表达式Rreq=′1′代表读请求Rreq,并且表示读缓冲器10b的空闲空间的评估值Pr1是否等于或高于预定值R1th或者请求队列上累积的紧前一个请求是否是读缓冲器10b的读请求(ID1=IDr1)。如果是,则流程进入步骤S242,在该步骤,在请求队列上累积读缓冲器10b的读请求。
如果未满足上述三个条件,则在步骤S234判断是否由表达式R0req=′1′代表读请求R0req,并且表示读缓冲器10a的空闲空间的评估值Pr0是否等于或高于预定值R0th或者请求队列上累积的紧前一个请求是否是读缓冲器10a的读请求(ID1=IDr0)。如果是,则在步骤S241,在请求队列上累积读缓冲器10a的读请求。
如果未满足上述四个条件,则根据每个请求执行以下处理。在步骤S235,如果读请求R0req=′1′,则在步骤S241,在请求队列上累积读缓冲器10a的读请求。在步骤S236,如果读请求R1req=′1′,则在步骤S242,在请求队列上累积读缓冲器10b的读请求。在步骤S237,如果写请求W1req=′1′,则在步骤S240,在请求队列上累积写缓冲器12b的写请求。在步骤S238,如果写请求W0req=′1′,则在步骤S239,在请求队列上累积写缓冲器12a的写请求。
在步骤S239,当在请求队列上累积写缓冲器12a的写请求时,将当前的请求识别码ID存储在紧前一个请求识别码寄存器ID1中,并将当前的请求识别码ID更新为写请求识别码IDw0。同时,从表示写缓冲器12a上累积的数据项数量的评估值Pw0中减去写数据数W0n,从而更新评估值Pw0,并且表示请求队列上累积的数据项数量的请求数Pp递增。
当在步骤S240在请求队列上累积写缓冲器12b的写请求,以及在步骤S241和/或步骤S242在请求队列上累积读缓冲器10a和/或读缓冲器10b的读请求时,执行与上述处理相同的处理。也就是说,将当前的请求识别码ID存储在紧前一个请求识别码寄存器ID1中,并更新当前的请求识别码ID。同时,从缓冲器的评估值中减去数据数,从而更新评估值,并且表示请求队列上累积的数据项的数量的请求数Pp递增。
在完成上述处理后,处理返回到步骤S231,以便再次执行上述处理。
每个上述模块都包括两个数据路径。例如,在DRAM 7上设置有模块的误差扩散电路的误差缓冲器的情况下,设置用于图像数据的数据路径和用于误差缓冲器的数据路径。从而,总线主控器的数量从两个增加到4个,这使得难以将总线主控器连接到存储器总线。在这种情况下,在每个模块中执行上述仲裁,并将模块连接到存储器总线。因而,可以在不改变上层电路结构的情况下将所述模块连接到存储器总线。
此外,如上所述,不仅通过仲裁器5,而且还通过设置在每个模块中的仲裁器13执行仲裁(仲裁分布),这允许针对每个模块执行适合的仲裁。例如,如果总线主控器的请求产生频率彼此不同,则按照请求产生频率的升序,执行指针评价和连续访问数评价。通过将较高的优先权赋予具有低请求产生频率的总线主控器,增加了具有低请求产生频率的总线主控器获得总线使用权的比率,并实现了处理均衡化。如果总线主控器的请求产生频率几乎相同,则将较高的优先权赋予进行写入访问的总线主控器。这是因为执行写入处理所需的等待时间和直到打开存储器总线的时间段,短于执行读取处理所需要的。
此外,如图6中所示,通过使用对连续访问数进行计数的计数器C可以限制连续访问数。计数器C的使用允许在不考虑上述产生频率的情况下,实现处理均衡化。
此外,可以设置与上述评估值Pw0、Pw1、Pr0和Pr1相比较的阈值W0th、W1th、R0th和R1th,以便执行更高级的仲裁。在这种情况下,可以按照阈值的降序设置优先权,并且当将评估值与最大阈值比较时,可以判断连续访问数。因而,可以对每个模块执行优化,使得容易地增加存储器总线的使用效率。
在上述实施例中,执行对存储器总线的访问的仲裁。然而,本发明可用于对各种类型的总线的使用权进行仲裁,而不限于存储器总线。
根据上述实施例,通过动态控制总线使用权,可以增加总线使用效率。此外,通过以分布方式执行总线使用权仲裁,可以防止由于总线主控器数量的增加而引起的电路尺寸的增加,并维持总线的高速操作性。
其它实施例
本发明可以用于包括多个装置的系统,该装置包括主计算机、接口、读取器和打印机等;或可以用于作为一个单元而形成的装置,该装置包括复印机、传真机等。
应该理解,本发明的目的还可以通过装置或系统的计算机(CPU、MPU等)来实现:提供该计算机,使得从存储用于实现上述实施例的功能的软件的程序代码的存储介质中,读取该程序代码,并执行该程序代码。在这种情况下,从存储介质读取的程序代码自身实现了上述实施例的功能,因而存储该程序代码的存储介质构成了本发明。此外,不仅可以通过计算机读取并执行该程序代码,还可以通过计算机基于该程序代码的指令利用运行在计算机上的操作系统(OS)等执行部分或全部处理来实现上述实施例的功能。后者也是本发明的一个实施例。
在本发明的另一实施例中,可以将从存储介质读取的程序代码写入到插入计算机中的功能扩展卡或与计算机连接的功能扩展单元的存储器中。可以基于该程序代码的指令,通过该功能扩展卡或功能扩展单元的CPU等执行全部或部分实际处理,以实现上述实施例的功能。
当本发明用于上述存储介质时,该存储介质存储与上述流程图相对应的程序代码。
尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不局限于所公开的典型实施例。所附权利要求的范围符合最宽的解释,以包含全部修改、等同结构和功能。
Claims (19)
1.一种仲裁器,用来仲裁多个模块对总线的访问,该仲裁器包括:
检测单元,用来检测设置在该多个模块的每个中的缓冲器的空闲空间状态以存储数据;以及
控制单元,用来根据所述每个缓冲器的空闲空间状态来控制该多个模块访问总线的优先权。
2.根据权利要求1所述的仲裁器,其特征在于,所述控制单元将优先权赋予该多个模块中缓冲器包含预定量或更大的空闲空间的模块。
3.根据权利要求1所述的仲裁器,其特征在于,所述控制单元根据缓冲器的空闲空间状态、当前正在进行的每个总线访问的类型、以及先前进行的总线访问的类型,来控制访问总线的优先权。
4.根据权利要求3所述的仲裁器,其特征在于,所述控制单元将优先权赋予与先前进行的总线访问的类型相同的总线访问。
5.一种仲裁器,用来仲裁多个模块对总线的访问,该仲裁器包括:
请求队列,用来堆叠从该多个模块中的每一个发送的至少一个总线访问请求;
检测单元,用来检测堆叠在该请求队列上的所述至少一个总线访问请求的数量;以及
控制单元,用来根据该多个模块中的每一个的总线访问请求的数量,来控制访问总线的优先权。
6.根据权利要求5所述的仲裁器,其特征在于,该仲裁器还包括识别单元,该识别单元用来从该多个模块中识别进行紧前一个总线访问的模块,其中,所述控制单元根据该多个模块中的每一个的总线访问请求的数量和该识别结果来控制优先权。
7.根据权利要求6所述的仲裁器,其特征在于,该控制单元将优先权赋予该进行紧前一个总线访问的模块。
8.根据权利要求5所述的仲裁器,其特征在于,该仲裁器还包括计数单元,该计数单元用来对模块连续访问总线的数量进行计数,其中,在该连续访问的数量达到预定数量的情况下,所述控制单元禁止该模块发送总线访问请求。
9.根据权利要求8所述的仲裁器,其特征在于,在允许与进行了紧前一个访问的第二总线主控器不同的第一总线主控器进行访问的情况下,或者在一个或更少的总线主控器发送总线访问请求的情况下,该计数单元将该连续访问的数量复位为0。
10.根据权利要求5所述的仲裁器,其特征在于,所述控制单元将优先权赋予比其它模块发送更多总线访问请求的模块的总线访问。
11.根据权利要求10所述的仲裁器,其特征在于,当从该多个模块中的一个发送的至少一个总线访问请求的数量与从该多个模块中的另一个发送的至少一个总线访问请求的数量相同时,所述控制单元将优先权赋予以低频率产生所述至少一个总线访问请求的模块进行的总线访问。
12.根据权利要求11所述的仲裁器,其特征在于,当该多个模块中的一个的该至少一个总线访问请求的数量和该至少一个总线访问请求的频率与该多个模块中的另一个的相同时,所述控制单元将优先权赋予以短的等待时间发送总线访问请求的模块。
13.一种信息处理装置,包括:
多个模块;以及
第一仲裁单元,用来仲裁从该多个模块发送的总线访问请求;
其中,至少一个模块包括:
多个子模块;以及
第二仲裁单元,用来仲裁从该多个子模块发送的总线访问请求,并将从该多个子模块发送的总线访问请求中的至少一个发送到该第一仲裁单元。
14.根据权利要求13所述的信息处理装置,其特征在于,所述第一仲裁单元包括:
检测单元,用来检测该多个模块中的每一个的总线访问请求数量;以及
控制单元,用来根据该多个模块中的每一个的总线访问请求数量来控制该多个模块访问总线的优先权。
15.根据权利要求13所述的信息处理装置,其特征在于,所述第二仲裁单元包括:
检测单元,用来检测设置在该多个子模块的每一个中的缓冲器的空闲空间状态以存储数据;以及
控制单元,用来根据所述每个缓冲器的空闲空间状态,来控制该多个子模块访问总线的优先权。
16.一种控制仲裁器的方法,该仲裁器用来仲裁多个模块对总线的访问,该方法包括以下步骤:
检测设置在该多个模块的每一个中的缓冲器的空闲空间状态以存储数据;以及
根据所述每个缓冲器的空闲空间状态来控制访问总线的优先权。
17.一种存储在计算机可读存储介质上的计算机可执行的处理步骤,该计算机可执行的处理步骤执行根据权利要求16所述的方法。
18.一种控制仲裁器的方法,该仲裁器用来仲裁多个模块对总线的访问,该方法包括以下步骤:
检测从该多个模块中的每一个发送的至少一个总线访问请求的数量,该总线访问请求被堆叠在堆叠从该多个模块的每一个发送的总线访问请求的请求队列上;以及
根据该多个模块中的每一个的总线访问请求数量来控制对总线访问的优先权。
19.一种存储在计算机可读存储介质上的计算机可执行的处理步骤,该计算机可执行的处理步骤执行根据权利要求18所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005099420 | 2005-03-30 | ||
JP2005099420A JP4847036B2 (ja) | 2005-03-30 | 2005-03-30 | バスアクセスを調停する制御装置およびデータ処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1841350A true CN1841350A (zh) | 2006-10-04 |
CN100504825C CN100504825C (zh) | 2009-06-24 |
Family
ID=37030387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100665585A Expired - Fee Related CN100504825C (zh) | 2005-03-30 | 2006-03-30 | 仲裁器和控制仲裁器的方法以及信息处理装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8086776B2 (zh) |
JP (1) | JP4847036B2 (zh) |
CN (1) | CN100504825C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850788A (zh) * | 2014-02-18 | 2015-08-19 | 瑞萨电子株式会社 | 多处理器系统 |
CN106528467A (zh) * | 2015-09-14 | 2017-03-22 | 通用汽车环球科技运作有限责任公司 | 用于控制器安全消息处理的构架和设备 |
CN107844442A (zh) * | 2016-09-19 | 2018-03-27 | 深圳市中兴微电子技术有限公司 | 请求源响应的仲裁方法及装置 |
CN108667740A (zh) * | 2017-03-29 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 流量控制的方法、装置及系统 |
CN111033476A (zh) * | 2017-08-30 | 2020-04-17 | 奥林巴斯株式会社 | 存储器访问装置、图像处理装置和摄像装置 |
CN114185823A (zh) * | 2022-02-17 | 2022-03-15 | 深圳比特微电子科技有限公司 | 仲裁器、仲裁方法、控制器和芯片 |
CN114490457A (zh) * | 2015-10-01 | 2022-05-13 | 瑞萨电子株式会社 | 半导体装置 |
CN114911727A (zh) * | 2022-05-26 | 2022-08-16 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4847036B2 (ja) * | 2005-03-30 | 2011-12-28 | キヤノン株式会社 | バスアクセスを調停する制御装置およびデータ処理装置の制御方法 |
JP2009266152A (ja) * | 2008-04-30 | 2009-11-12 | Toshiba Corp | コントローラ、ハードディスクドライブおよびコントロール方法 |
WO2010016169A1 (ja) * | 2008-08-07 | 2010-02-11 | 日本電気株式会社 | マルチプロセッサシステム及びその制御方法 |
JP5125890B2 (ja) * | 2008-08-28 | 2013-01-23 | 富士通セミコンダクター株式会社 | 調停装置及び電子機器 |
WO2011016280A1 (ja) * | 2009-08-03 | 2011-02-10 | 本田技研工業株式会社 | ロボットおよび制御システム |
JP5413098B2 (ja) * | 2009-09-29 | 2014-02-12 | 日本電気株式会社 | 調停優位性の切り替え方法、調停装置、及びプロセッサ |
JP5418193B2 (ja) * | 2009-12-14 | 2014-02-19 | 富士ゼロックス株式会社 | 調停装置、画像処理装置、及び画像形成システム |
JP5707911B2 (ja) * | 2010-01-27 | 2015-04-30 | 富士通セミコンダクター株式会社 | データ転送制御装置 |
JP5509151B2 (ja) * | 2011-05-26 | 2014-06-04 | 京セラドキュメントソリューションズ株式会社 | Dma制御装置及びこれを含む画像形成装置 |
WO2013094031A1 (ja) * | 2011-12-21 | 2013-06-27 | キヤノン株式会社 | 情報処理装置、その装置を用いた記録装置 |
JP6056363B2 (ja) * | 2012-10-12 | 2017-01-11 | 株式会社ソシオネクスト | 処理装置及び処理装置の制御方法 |
US8995455B1 (en) * | 2012-11-15 | 2015-03-31 | Qlogic, Corporation | Memory devices for network devices and associated methods |
US8959266B1 (en) * | 2013-08-02 | 2015-02-17 | Intel Corporation | Dynamic priority control based on latency tolerance |
CN106469126B (zh) * | 2015-08-12 | 2020-07-07 | 北京忆恒创源科技有限公司 | 处理io请求的方法及其存储控制器 |
US10372642B2 (en) * | 2016-09-29 | 2019-08-06 | Intel Corporation | System, apparatus and method for performing distributed arbitration |
CN107918620B (zh) * | 2016-10-10 | 2022-04-19 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
EP3625334A1 (en) | 2017-05-15 | 2020-03-25 | c-LEcta GmbH | Enzyme products |
US11262942B2 (en) * | 2018-07-16 | 2022-03-01 | ScaleFlux, Inc. | Integrating host-side storage device management with host-side non-volatile memory |
KR20200141338A (ko) * | 2019-06-10 | 2020-12-18 | 삼성전자주식회사 | 이미지 신호 프로세서, 상기 이미지 신호 프로세서의 동작 방법 및 상기 이미지 신호 프로세서를 포함하는 이미지 처리 시스템 |
CN115080468B (zh) * | 2022-05-12 | 2024-06-14 | 珠海全志科技股份有限公司 | 一种非阻塞的信息传输方法和装置 |
Family Cites Families (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4161779A (en) * | 1977-11-30 | 1979-07-17 | Burroughs Corporation | Dynamic priority system for controlling the access of stations to a shared device |
US4191997A (en) * | 1978-04-10 | 1980-03-04 | International Business Machines Corporation | Circuits and methods for multiple control in data processing systems |
US4761807A (en) * | 1982-09-29 | 1988-08-02 | Vmx, Inc. | Electronic audio communications system with voice authentication features |
US4751671A (en) * | 1983-02-14 | 1988-06-14 | Prime Computer, Inc. | Size configurable data storage system |
US4922244A (en) * | 1984-12-03 | 1990-05-01 | The University Of Western Australia | Queueing protocol |
US4682284A (en) * | 1984-12-06 | 1987-07-21 | American Telephone & Telegraph Co., At&T Bell Lab. | Queue administration method and apparatus |
EP0206743A3 (en) * | 1985-06-20 | 1990-04-25 | Texas Instruments Incorporated | Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution |
US4805128A (en) * | 1985-11-22 | 1989-02-14 | Geophysical Service Inc. | Format conversion system |
US5025370A (en) * | 1986-09-02 | 1991-06-18 | Koegel Robert J | Circuit for preventing lock-out of high priority requests to a system controller |
US5068782A (en) * | 1987-02-02 | 1991-11-26 | Unisys Corp. | Accessing control with predetermined priority based on a feedback arrangement |
JPS63251854A (ja) * | 1987-04-09 | 1988-10-19 | Mitsubishi Electric Corp | マルチポ−トメモリコントロ−ラ |
JPS6482248A (en) * | 1987-09-25 | 1989-03-28 | Nec Corp | Priority level deciding circuit |
JPH01320555A (ja) * | 1988-06-22 | 1989-12-26 | Hitachi Ltd | バッファ記憶装置 |
US4924380A (en) * | 1988-06-20 | 1990-05-08 | Modular Computer Systems, Inc. (Florida Corporation) | Dual rotating priority arbitration method for a multiprocessor memory bus |
JPH0210459A (ja) | 1988-06-29 | 1990-01-16 | Oki Electric Ind Co Ltd | バス使用権決定方式 |
US5155810A (en) * | 1989-01-10 | 1992-10-13 | Bull Hn Information Systems Inc. | Dual FIFO peripheral with combinatorial logic circuitry |
JP2772823B2 (ja) * | 1989-06-06 | 1998-07-09 | 日立マクセル株式会社 | 半導体記憶装置のアクセス調停回路 |
US5179662A (en) * | 1989-08-31 | 1993-01-12 | International Business Machines Corporation | Optimized i/o buffers having the ability to increase or decrease in size to meet system requirements |
JP3227575B2 (ja) * | 1990-03-08 | 2001-11-12 | 株式会社日立製作所 | 共有資源アクセス制御装置 |
JPH04114389A (ja) * | 1990-09-05 | 1992-04-15 | Matsushita Electric Ind Co Ltd | 先入先出バッファ回路 |
US5210829A (en) * | 1990-12-12 | 1993-05-11 | Digital Equipment Corporation | Adjustable threshold for buffer management |
JPH04322353A (ja) | 1991-04-23 | 1992-11-12 | Nec Corp | バス・システム |
JP3027445B2 (ja) * | 1991-07-31 | 2000-04-04 | 株式会社高取育英会 | メモリーコントロールデバイス |
JPH0594409A (ja) | 1991-10-02 | 1993-04-16 | Nec Eng Ltd | バス調停システム |
US5440691A (en) * | 1992-02-27 | 1995-08-08 | Digital Equipment Corporation, Pat. Law Group | System for minimizing underflowing transmit buffer and overflowing receive buffer by giving highest priority for storage device access |
JP2806678B2 (ja) * | 1992-03-09 | 1998-09-30 | 日本電気株式会社 | バス制御装置 |
US5444855A (en) * | 1992-04-17 | 1995-08-22 | International Business Machines Corporation | System for guaranteed CPU bus access by I/O devices monitoring separately predetermined distinct maximum non CPU bus activity and inhibiting I/O devices thereof |
JPH06131307A (ja) * | 1992-10-20 | 1994-05-13 | Fujitsu Ltd | マルチcpuシステムにおける負荷分散方式 |
GB2277816B (en) * | 1993-05-04 | 1997-09-03 | Motorola Inc | Data communication system |
US5537128A (en) * | 1993-08-04 | 1996-07-16 | Cirrus Logic, Inc. | Shared memory for split-panel LCD display systems |
US5513376A (en) * | 1993-11-02 | 1996-04-30 | National Semiconductor Corporation | Method of operating an extension FIFO in another device when it is full by periodically re-initiating a write operation until data can be transferred |
JP2806771B2 (ja) * | 1993-12-24 | 1998-09-30 | 甲府日本電気株式会社 | バス調停回路 |
TW400483B (en) * | 1994-03-01 | 2000-08-01 | Intel Corp | High performance symmetric arbitration protocol with support for I/O requirements |
US5561823A (en) * | 1994-03-14 | 1996-10-01 | Conner Peripherals, Inc. | Monitor system for determining the available capacity of a READ buffer and a WRITE buffer in a disk drive system |
JPH07319630A (ja) * | 1994-05-27 | 1995-12-08 | Nec Corp | バッファ容量決定方式 |
US5687316A (en) * | 1994-07-29 | 1997-11-11 | International Business Machines Corporation | Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data |
US6154826A (en) * | 1994-11-16 | 2000-11-28 | University Of Virginia Patent Foundation | Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order |
US6178475B1 (en) * | 1994-12-19 | 2001-01-23 | Advanced Micro Devices Inc. | Multimedia system employing timers to properly allocate bus access |
US5649157A (en) * | 1995-03-30 | 1997-07-15 | Hewlett-Packard Co. | Memory controller with priority queues |
US5666494A (en) * | 1995-03-31 | 1997-09-09 | Samsung Electronics Co., Ltd. | Queue management mechanism which allows entries to be processed in any order |
EP0752666A3 (en) * | 1995-07-06 | 2004-04-28 | Sun Microsystems, Inc. | Method and apparatus for fast-forwarding slave requests in a packet-switched computer system |
US5860110A (en) | 1995-08-22 | 1999-01-12 | Canon Kabushiki Kaisha | Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition |
JPH0962579A (ja) | 1995-08-22 | 1997-03-07 | Canon Inc | 情報処理装置及び情報処理システム |
US6418148B1 (en) * | 1995-10-05 | 2002-07-09 | Lucent Technologies Inc. | Burst-level resource allocation in cellular systems |
US5781927A (en) * | 1996-01-30 | 1998-07-14 | United Microelectronics Corporation | Main memory arbitration with priority scheduling capability including multiple priorty signal connections |
GB2312058B (en) * | 1996-04-12 | 2000-08-09 | Sony Uk Ltd | Data buffer |
US5761445A (en) * | 1996-04-26 | 1998-06-02 | Unisys Corporation | Dual domain data processing network with cross-linking data queues and selective priority arbitration logic |
US5845097A (en) * | 1996-06-03 | 1998-12-01 | Samsung Electronics Co., Ltd. | Bus recovery apparatus and method of recovery in a multi-master bus system |
JPH1011337A (ja) * | 1996-06-24 | 1998-01-16 | Hitachi Ltd | 記憶装置におけるデータ制御方法 |
JPH10187601A (ja) * | 1996-12-26 | 1998-07-21 | Kobe Nippon Denki Software Kk | 優先順位決定回路 |
US5933413A (en) * | 1997-01-13 | 1999-08-03 | Advanced Micro Devices, Inc. | Adaptive priority determination for servicing transmit and receive in network controllers |
US5950229A (en) * | 1997-03-12 | 1999-09-07 | Micron Electronics, Inc. | System for accelerating memory bandwidth |
US6141715A (en) * | 1997-04-03 | 2000-10-31 | Micron Technology, Inc. | Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction |
US5987621A (en) * | 1997-04-25 | 1999-11-16 | Emc Corporation | Hardware and software failover services for a file server |
US6094696A (en) * | 1997-05-07 | 2000-07-25 | Advanced Micro Devices, Inc. | Virtual serial data transfer mechanism |
US5996037A (en) * | 1997-06-03 | 1999-11-30 | Lsi Logic Corporation | System and method for arbitrating multi-function access to a system bus |
US6230219B1 (en) * | 1997-11-10 | 2001-05-08 | International Business Machines Corporation | High performance multichannel DMA controller for a PCI host bridge with a built-in cache |
US6208703B1 (en) * | 1998-05-15 | 2001-03-27 | Hewlett Packard Company | First-in-first-out synchronizer |
JPH11338820A (ja) * | 1998-05-29 | 1999-12-10 | Matsushita Electric Ind Co Ltd | バス・アービタ |
JP3581601B2 (ja) * | 1998-12-18 | 2004-10-27 | 松下電器産業株式会社 | データ転送装置、データ転送システムおよび記録媒体 |
JP2000201161A (ja) * | 1999-01-08 | 2000-07-18 | Nec Eng Ltd | ア―ビトレ―ション制御回路 |
US6189061B1 (en) * | 1999-02-01 | 2001-02-13 | Motorola, Inc. | Multi-master bus system performing atomic transactions and method of operating same |
US6385671B1 (en) * | 1999-03-29 | 2002-05-07 | Intel Corporation | Method/apparatus for flushing DMA transmit packet in FIFO when self-ID code generated by counter after bus reset is different than FIFO message self-ID field |
US6629220B1 (en) * | 1999-08-20 | 2003-09-30 | Intel Corporation | Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type |
US6246256B1 (en) * | 1999-11-29 | 2001-06-12 | Broadcom Corporation | Quantized queue length arbiter |
KR100321784B1 (ko) * | 2000-03-20 | 2002-02-01 | 오길록 | 중재 지연 내성의 분산형 입력 버퍼 스위치 시스템 및그를 이용한 입력 데이터 처리 방법 |
US6715011B1 (en) * | 2000-05-31 | 2004-03-30 | International Business Machines Corporation | PCI/PCI-X bus bridge with performance monitor |
TW515960B (en) * | 2000-08-11 | 2003-01-01 | Via Tech Inc | Architecture and method of extended bus and bridge thereof |
US6810470B1 (en) * | 2000-08-14 | 2004-10-26 | Ati Technologies, Inc. | Memory request interlock |
JP3615478B2 (ja) * | 2000-10-25 | 2005-02-02 | 京セラミタ株式会社 | メモリアクセス調停方法 |
US6804736B2 (en) * | 2000-11-30 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Bus access arbitration based on workload |
US20020146023A1 (en) * | 2001-01-09 | 2002-10-10 | Regan Myers | Transport stream multiplexer utilizing smart FIFO-meters |
US20020176430A1 (en) * | 2001-01-25 | 2002-11-28 | Sangha Onkar S. | Buffer management for communication systems |
US7110359B1 (en) * | 2001-03-05 | 2006-09-19 | Advanced Micro Devices, Inc. | System and method for dynamically updating weights of weighted round robin in output queues |
US6907479B2 (en) * | 2001-07-18 | 2005-06-14 | Integrated Device Technology, Inc. | Integrated circuit FIFO memory devices that are divisible into independent FIFO queues, and systems and methods for controlling same |
US6832280B2 (en) * | 2001-08-10 | 2004-12-14 | Freescale Semiconductor, Inc. | Data processing system having an adaptive priority controller |
US7107374B1 (en) * | 2001-09-05 | 2006-09-12 | Xilinx, Inc. | Method for bus mastering for devices resident in configurable system logic |
US6938133B2 (en) * | 2001-09-28 | 2005-08-30 | Hewlett-Packard Development Company, L.P. | Memory latency and bandwidth optimizations |
US6839784B1 (en) * | 2001-10-15 | 2005-01-04 | Advanced Micro Devices, Inc. | Control unit of an I/O node for a computer system including a plurality of scheduler units each including a plurality of buffers each corresponding to a respective virtual channel |
US6754772B2 (en) * | 2001-11-15 | 2004-06-22 | Micron Technology, Inc. | Distributed cache |
JP2003228512A (ja) * | 2002-02-05 | 2003-08-15 | Fujitsu Ltd | データ転送装置 |
US7080177B2 (en) * | 2002-03-01 | 2006-07-18 | Broadcom Corporation | System and method for arbitrating clients in a hierarchical real-time DRAM system |
US7206857B1 (en) * | 2002-05-10 | 2007-04-17 | Altera Corporation | Method and apparatus for a network processor having an architecture that supports burst writes and/or reads |
GB2388929B (en) * | 2002-05-23 | 2005-05-18 | Advanced Risc Mach Ltd | Handling of a multi-access instruction in a data processing apparatus |
US20040003164A1 (en) * | 2002-06-27 | 2004-01-01 | Patrick Boily | PCI bridge and data transfer methods |
US7099972B2 (en) * | 2002-07-03 | 2006-08-29 | Sun Microsystems, Inc. | Preemptive round robin arbiter |
KR100480605B1 (ko) * | 2002-07-25 | 2005-04-06 | 삼성전자주식회사 | 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기 |
CN1200344C (zh) * | 2002-10-18 | 2005-05-04 | 威盛电子股份有限公司 | 具有并行仲裁机制的多重允许控制器及其方法 |
SE524201C2 (sv) * | 2002-12-17 | 2004-07-06 | Lars-Berno Fredriksson | Anordning vid distribuerat styr- och övervakningssystem |
US7266083B2 (en) * | 2003-02-26 | 2007-09-04 | International Business Machines Corporation | Method and apparatus for implementing queue pair connection protection over infiniband |
WO2004095201A2 (en) * | 2003-04-09 | 2004-11-04 | Intervideo Inc. | Systems and methods for caching multimedia data |
DE60307798T2 (de) * | 2003-05-30 | 2006-12-14 | Agilent Technologies, Inc., Palo Alto | Arbitrierung von gemeinsamen Speicher |
US7836447B2 (en) * | 2003-07-15 | 2010-11-16 | Intel Corporation | Method of efficient performance monitoring for symmetric multi-threading systems |
JP4276094B2 (ja) * | 2004-01-26 | 2009-06-10 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | パケットの優先制御を行う通信装置及び優先制御方法 |
US7188219B2 (en) * | 2004-01-30 | 2007-03-06 | Micron Technology, Inc. | Buffer control system and method for a memory system having outstanding read and write request buffers |
JP2005258576A (ja) * | 2004-03-09 | 2005-09-22 | Mitsubishi Electric Corp | 二重系cpu切替システム |
US7418540B2 (en) * | 2004-04-28 | 2008-08-26 | Intel Corporation | Memory controller with command queue look-ahead |
US7606269B1 (en) * | 2004-07-27 | 2009-10-20 | Intel Corporation | Method and apparatus for detecting and managing loss of alignment in a virtually concatenated group |
US8219745B2 (en) * | 2004-12-02 | 2012-07-10 | International Business Machines Corporation | Memory controller to utilize DRAM write buffers |
JP4847036B2 (ja) * | 2005-03-30 | 2011-12-28 | キヤノン株式会社 | バスアクセスを調停する制御装置およびデータ処理装置の制御方法 |
JP2006295819A (ja) * | 2005-04-14 | 2006-10-26 | Sony Corp | データ送信装置、データ送信方法及びデータ送信プログラム |
US8082396B2 (en) * | 2005-04-28 | 2011-12-20 | International Business Machines Corporation | Selecting a command to send to memory |
KR20080022140A (ko) * | 2005-05-30 | 2008-03-10 | 엔엑스피 비 브이 | 데이터 파이프라인 관리 시스템, 데이터 파이프라인 관리시스템을 이용하기 위한 방법, 컴퓨터 프로그램, 컴퓨터장치 및 컴퓨터 판독가능 매체 |
EP2132630A1 (en) * | 2007-03-28 | 2009-12-16 | Nxp B.V. | Multiprocessing system and method |
-
2005
- 2005-03-30 JP JP2005099420A patent/JP4847036B2/ja not_active Expired - Fee Related
-
2006
- 2006-03-17 US US11/378,005 patent/US8086776B2/en not_active Expired - Fee Related
- 2006-03-30 CN CNB2006100665585A patent/CN100504825C/zh not_active Expired - Fee Related
-
2011
- 2011-11-23 US US13/304,115 patent/US8706939B2/en not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850788A (zh) * | 2014-02-18 | 2015-08-19 | 瑞萨电子株式会社 | 多处理器系统 |
CN106528467A (zh) * | 2015-09-14 | 2017-03-22 | 通用汽车环球科技运作有限责任公司 | 用于控制器安全消息处理的构架和设备 |
CN106528467B (zh) * | 2015-09-14 | 2020-03-13 | 通用汽车环球科技运作有限责任公司 | 用于控制器安全消息处理的构架和设备 |
CN114490457A (zh) * | 2015-10-01 | 2022-05-13 | 瑞萨电子株式会社 | 半导体装置 |
CN107844442A (zh) * | 2016-09-19 | 2018-03-27 | 深圳市中兴微电子技术有限公司 | 请求源响应的仲裁方法及装置 |
CN108667740A (zh) * | 2017-03-29 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 流量控制的方法、装置及系统 |
CN108667740B (zh) * | 2017-03-29 | 2022-02-15 | 腾讯科技(深圳)有限公司 | 流量控制的方法、装置及系统 |
CN111033476A (zh) * | 2017-08-30 | 2020-04-17 | 奥林巴斯株式会社 | 存储器访问装置、图像处理装置和摄像装置 |
CN111033476B (zh) * | 2017-08-30 | 2023-08-01 | 奥林巴斯株式会社 | 存储器访问装置、图像处理装置和摄像装置 |
CN114185823A (zh) * | 2022-02-17 | 2022-03-15 | 深圳比特微电子科技有限公司 | 仲裁器、仲裁方法、控制器和芯片 |
CN114185823B (zh) * | 2022-02-17 | 2022-05-24 | 深圳比特微电子科技有限公司 | 仲裁器、仲裁方法、控制器和芯片 |
CN114911727A (zh) * | 2022-05-26 | 2022-08-16 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
Also Published As
Publication number | Publication date |
---|---|
US20120110230A1 (en) | 2012-05-03 |
JP2006277620A (ja) | 2006-10-12 |
US8086776B2 (en) | 2011-12-27 |
US20060224807A1 (en) | 2006-10-05 |
JP4847036B2 (ja) | 2011-12-28 |
CN100504825C (zh) | 2009-06-24 |
US8706939B2 (en) | 2014-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1841350A (zh) | 仲裁器和控制仲裁器的方法以及信息处理装置 | |
US7523324B2 (en) | Method and apparatus for improving bus master performance | |
CN1191531C (zh) | 总线系统 | |
CN1991810A (zh) | 可支持多个内部通道软件请求的直接存储器存取控制器 | |
CN101038532A (zh) | 数据存储装置及其方法 | |
EP0426413A2 (en) | Multiprocessor arbitration in single processor arbitration schemes | |
US20110191528A1 (en) | Semiconductor storage device and control method thereof | |
CN1797380A (zh) | 接收装置、收发装置、接收方法和收发方法 | |
US9600426B2 (en) | Bus control device, image processing apparatus, and bus control method | |
CN1864145A (zh) | 用于处理输入/输出命令的方法、系统和程序 | |
CN1251445A (zh) | 控制存储器时钟信号的计算机系统及其控制方法 | |
CN101030182A (zh) | 执行dma数据传输的设备和方法 | |
CN1955920A (zh) | 在多处理器计算机系统中进行基于资源的线程分配的方法和装置 | |
US9170963B2 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
CN1825473A (zh) | 存储器控制装置、改变存储器地址的方法以及存储系统 | |
CN1155891C (zh) | 用于处理直接存取存储设备的存取请求的方法 | |
CN1127022C (zh) | 具有地址变换的数据处理方法及设备 | |
CN1145893C (zh) | 带有具用于一个共用存储器的接口的多个处理器的装置 | |
JP4847614B2 (ja) | バスアクセスを調停する制御装置 | |
CN1231844C (zh) | 控制对sdram的连续访问的电路 | |
JP4847615B2 (ja) | バスアクセスを調停する制御装置およびその方法 | |
CN1194311C (zh) | 总线系统延缓交易方法与应用此方法的装置 | |
KR100845527B1 (ko) | 메모리 장치 및 메모리 컨트롤러의 클럭 싸이클 제어방법 | |
JP2005004563A (ja) | Dma転送制御装置 | |
CN111444025B (zh) | 一种提升计算子系统能效的资源分配方法、系统及介质 |
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: 20090624 Termination date: 20190330 |
|
CF01 | Termination of patent right due to non-payment of annual fee |