CN106339329B - 控制多请求源访问存储器的方法、控制器和视频处理装置 - Google Patents
控制多请求源访问存储器的方法、控制器和视频处理装置 Download PDFInfo
- Publication number
- CN106339329B CN106339329B CN201510887753.3A CN201510887753A CN106339329B CN 106339329 B CN106339329 B CN 106339329B CN 201510887753 A CN201510887753 A CN 201510887753A CN 106339329 B CN106339329 B CN 106339329B
- Authority
- CN
- China
- Prior art keywords
- data
- fifo buffer
- state
- request
- priority
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明适用于视频处理领域,提供了一种控制多请求源访问存储器的方法、控制器和视频处理装置。所述方法包括:接收多个请求源对同一存储器的数据访问请求;根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级;根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求。本发明采用动态的优先级,因此可以保证每个FIFO数据缓存器不出错,可以提高读写数据总线的效率,使每一次数据访问操作的时间尽量的长,可以对多个请求源进行合理的调度和控制。
Description
技术领域
本发明属于视频处理领域,尤其涉及一种控制多请求源访问存储器的方法、控制器和视频处理装置。
背景技术
随着视频处理技术的发展,显示的内容日益复杂,在同一幅画面中包含了好几层的图像数据,不同层不同尺寸大小的图像数据都存储在同一存储器里。当显示一幅画面时,多路通道会根据缓存数据的情况不定时的请求访问存储器,需要合理的仲裁保证各层图像数据都能及时输出,画面才不会出错。有时候多个数据访问请求源是同时发出请求的,由于它们不能同时访问存储器,每次只能处理一种读写。在这种情况下,为了保证写缓存数据不溢出和读缓存数据不空,存储控制器需要频繁的切换响应不同的请求源,效率比较低。
发明内容
本发明的目的在于提供一种控制多请求源访问存储器的方法、控制器和视频处理装置,旨在解决现有技术对于多请求源,存储控制器需要频繁的切换响应不同的请求源,效率比较低的问题。
第一方面,本发明提供了一种控制多请求源访问存储器的方法,所述方法包括:
接收多个请求源对同一存储器的数据访问请求;
根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级;
根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求。
第二方面,本发明提供了一种控制器,所述控制器包括:
接收模块,用于接收多个请求源对同一存储器的数据访问请求;
确定模块,用于根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级;
控制执行模块,用于根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求。
第三方面,本发明提供了一种视频处理装置,所述视频处理装置包括所述的控制器。
在本发明中,由于对于多个请求源对同一存储器的数据访问请求时,根据每个请求源的数据访问请求对应的FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级,即优先级是动态的优先级;根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求。由于请求源任务从读FIFO数据缓存器取出数据是不定时的,如果给各个读FIFO数据缓存器分配固定优先级,低优先级的读FIFO数据缓存器可能一直得不到响应,而读FIFO数据缓存器中的有效数据被请求源任务取空或者低优先级的写FIFO数据缓存器数据溢出而导致出错。而本发明采用动态的优先级,因此可以保证每个FIFO数据缓存器不出错,可以提高读写数据总线的效率,使每一次数据访问操作的时间尽量的长,可以对多个请求源进行合理的调度和控制。
附图说明
图1是本发明实施例一提供的控制多请求源访问存储器的方法的流程图。
图2是本发明实施例一中,对于FIFO数据缓存器设置的阈值是三个时,读FIFO数据缓存器状态示意图。
图3是本发明实施例一中,对于FIFO数据缓存器设置的阈值是三个时,写FIFO数据缓存器状态示意图。
图4是本发明实施例一中,对于FIFO数据缓存器设置的阈值是两个时,读FIFO数据缓存器状态示意图。
图5是本发明实施例一中,对于FIFO数据缓存器设置的阈值是两个时,写FIFO数据缓存器状态示意图。
图6是多个请求源的任务转换状态图。
图7是多个请求源对应的FIFO数据缓存器访问存储器时序示意图。
图8是本发明实施例二提供的控制器的功能模块框图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
请参阅图1,本发明实施例一提供的控制多请求源访问存储器的方法包括以下步骤:
S101、接收多个请求源对同一存储器的数据访问请求。
在本发明实施例一中,S101具体可以为:在预定的时间段内接收至少三个请求源对同一存储器的数据访问请求。
S102、根据每个请求源的数据访问请求对应的FIFO(First Input First Output,先进先出队列)数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级。
在本发明实施例一中,FIFO数据缓存器包括读FIFO数据缓存器和/或写FIFO数据缓存器。
根据请求源对存储器的操作不同,请求源的数据访问请求对应的数据缓存器也不同,读数据请求对应的是读FIFO数据缓存器,即图2中的OUT FIFO,写数据请求对应的是写FIFO数据缓存器,即图3中的IN FIFO。
在本发明实施例一中,在S102之前,所述方法还包括以下步骤:
确定每个请求源的数据访问请求对应的FIFO数据缓存器的实时状态。具体可以为:
根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态。其中,至少两个阈值是由每个FIFO数据缓存器单独设置或统一设置的阈值。
下面以三个阈值(即第一阈值、第二阈值、第三阈值)为例,来描述根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态。
图2中的读FIFO数据缓存器状态示意图表明了根据读FIFO数据缓存器中有效数据的个数与第一阈值、第二阈值和/或第三阈值的关系,确定读FIFO数据缓存器所处的状态。
请参阅图2,当OUT FIFO的有效数据的个数等于FIFO的深度,即FIFO填满了,确定该FIFO处于第一状态。
当OUT FIFO的有效数据的个数大于第三阈值,确定该FIFO处于第二状态,这有可能是该FIFO的有效数据被读出显示图像,有效数据减少使该FIFO从第一状态到第二状态,也有可能是控制器正在从存储器读数据写入该FIFO,有效数据增加使该FIFO从第三状态到第二状态。
当OUT FIFO的有效数据的个数大于第二阈值小于第三阈值,确定该FIFO处于第三状态,这有可能是该FIFO的有效数据减少使该FIFO从第二状态到第三状态,也有可能是有效数据增加使该FIFO从第四状态到第三状态。
当OUT FIFO的有效数据的个数大于第一阈值小于第二阈值,确定该FIFO处于第四状态。
当OUT FIFO的有效数据的个数小于第一阈值,确定该FIFO处于第五状态。
当OUT FIFO没有有效数据,即该FIFO为空,确定该FIFO处于第六状态。如果这时有图像显示需要输出数据,就会出错。
在本发明实施例一中,对于读FIFO数据缓存器,S102具体可以包括:
当请求源的数据访问请求对应的读FIFO数据缓存器的实时状态是第四状态时,如果是该FIFO的有效数据减少使该FIFO从第三状态到第四状态,则确定读FIFO数据缓存器的优先级为二级请求优先级,紧急度为FIFO深度减去有效数据的个数;
当请求源的数据访问请求对应的读FIFO数据缓存器的实时状态是第五状态时,如果是该FIFO的有效数据减少使该FIFO从第四状态到第五状态,确定读FIFO数据缓存器的优先级为一级请求优先级。
其中,读FIFO数据缓存器的优先级包括一级请求优先级和二级请求优先级,一级请求优先级高于二级请求优先级,同一级优先级中紧急度较高者优先级较高。
图3中的写FIFO数据缓存器状态示意图表明了根据写FIFO数据缓存器中有效数据的个数与第一阈值、第二阈值和/或第三阈值的关系,确定写FIFO数据缓存器所处的状态。
请参阅图3,当IN FIFO没有有效数据,即该FIFO为空,确定该FIFO处于第一状态。
当IN FIFO的有效数据的个数小于第一阈值,确定该FIFO处于第二状态,这有可能是该FIFO的有效数据被写入存储器,有效数据减少使该FIFO从第三状态到第二状态,也有可能是对应的请求源将有效数据写入该FIFO,有效数据增加使该FIFO从第一状态到第二状态。
当IN FIFO的有效数据的个数大于第一阈值小于第二阈值,确定该FIFO处于第三状态,这有可能是该FIFO的有效数据减少使该FIFO从第四状态到第三状态,也有可能是有效数据增加使该FIFO从第二状态到第三状态。
当IN FIFO的有效数据的个数大于第二阈值小于第三阈值,确定该FIFO处于第四状态。
当IN FIFO的有效数据的个数大于第三阈值,确定该FIFO处于第五状态。
当IN FIFO的有效数据的个数等于FIFO的深度,即FIFO填满了,确定该FIFO处于第六状态。
在本发明实施例一中,对于写FIFO数据缓存器,S102具体也可以包括:
当请求源的数据访问请求对应的写FIFO数据缓存器的实时状态是第四状态时,如果是该FIFO的有效数据增加使该FIFO从第三状态到第四状态,则确定写FIFO数据缓存器的优先级为二级请求优先级,紧急度为有效数据的个数;
当请求源的数据访问请求对应的写FIFO数据缓存器的实时状态是第五状态时,如果是该FIFO的有效数据增加使该FIFO从第四状态到第五状态,确定写FIFO数据缓存器的优先级为一级请求优先级。
其中,写FIFO数据缓存器的优先级包括一级请求优先级和二级请求优先级,一级请求优先级高于二级请求优先级,同一级优先级中紧急度较高者优先级较高。
下面以两个阈值(即第一阈值、第二阈值)为例,来描述根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态。
图4中的FIFO数据缓存器状态示意图表明了根据FIFO数据缓存器中有效数据的个数与第一阈值和/或第二阈值的关系,确定FIFO数据缓存器所处的状态。
请参阅图4,当OUT FIFO的有效数据的个数等于FIFO的深度,即FIFO填满了,确定该FIFO处于第一状态。
当OUT FIFO的有效数据的个数大于第二阈值,确定该FIFO处于第二状态,这有可能是该FIFO的有效数据被读出显示图像,有效数据减少使该FIFO从第一状态到第二状态,也有可能是控制器正在从存储器读数据写入该FIFO,有效数据增加使该FIFO从第三状态到第二状态。
当OUT FIFO的有效数据的个数大于第一阈值小于第二阈值,确定该FIFO处于第三状态,这有可能是该FIFO的有效数据减少使该FIFO从第二状态到第三状态,也有可能是有效数据增加使该FIFO从第四状态到第三状态。
当OUT FIFO的有效数据的个数小于第一阈值,确定该FIFO处于第四状态。
当OUT FIFO没有有效数据,即该FIFO为空,确定该FIFO处于第五状态。如果这时有图像显示需要输出数据,就会出错。
在本发明实施例一中,对于读FIFO数据缓存器,S102具体可以包括:
当请求源的读数据请求对应的读FIFO数据缓存器的实时状态是第三状态时,如果是该FIFO的有效数据减少使该FIFO从第二状态到第三状态,则确定读FIFO数据缓存器的优先级为二级请求优先级,紧急度为FIFO深度减去有效数据的个数;
当请求源的读数据请求对应的读FIFO数据缓存器的实时状态是第四状态时,如果是该FIFO的有效数据减少使该FIFO从第三状态到第四状态,则确定读FIFO数据缓存器的优先级为一级请求优先级。
其中,读FIFO数据缓存器的优先级包括一级请求优先级和二级请求优先级,一级请求优先级高于二级请求优先级,同一级优先级中紧急度较高者优先级较高。
图5中的写FIFO数据缓存器状态示意图表明了根据写FIFO数据缓存器中有效数据的个数与第一阈值和/或第二阈值的关系,确定写FIFO数据缓存器所处的状态。
请参阅图5,当IN FIFO没有有效数据,即该FIFO为空,确定该FIFO处于第一状态。
当IN FIFO的有效数据的个数小于第一阈值,确定该FIFO处于第二状态,这有可能是该FIFO的有效数据被写入存储器,有效数据减少使该FIFO从第三状态到第二状态,也有可能是对应的请求源将有效数据写入该FIFO,有效数据增加使该FIFO从第一状态到第二状态。
当IN FIFO的有效数据的个数大于第一阈值小于第二阈值,确定该FIFO处于第三状态,这有可能是该FIFO的有效数据减少使该FIFO从第四状态到第三状态,也有可能是有效数据增加使该FIFO从第二状态到第三状态。
当IN FIFO的有效数据的个数大于第二阈值,确定该FIFO处于第四状态。
当IN FIFO的有效数据的个数等于FIFO的深度,即FIFO填满了,确定该FIFO处于第五状态。
在本发明实施例一中,对于写FIFO数据缓存器,S102具体也可以包括:
当请求源的写数据请求对应的写FIFO数据缓存器的实时状态是第三状态时,如果是该FIFO的有效数据增加使该FIFO从第二状态到第三状态,则确定写FIFO数据缓存器的优先级为二级请求优先级,紧急度为有效数据的个数;
当请求源的写数据请求对应的写FIFO数据缓存器的实时状态是第四状态时,如果是该FIFO的有效数据增加使该FIFO从第三状态到第四状态,则确定写FIFO数据缓存器的优先级为一级请求优先级。
其中,写FIFO数据缓存器的优先级包括一级请求优先级和二级请求优先级,一级请求优先级高于二级请求优先级,同一级优先级中紧急度较高者优先级较高。
S103、根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求。
如图6所示,当至少两个阈值包括第一阈值、第二阈值和第三阈值时,S103具体可以包括以下步骤:
当控制器在响应一个请求源的数据访问请求的时候,任务已经完成或者对应的FIFO数据缓存器的实时状态处于第一状态,该FIFO数据缓存器释放控制权,控制器转到空闲状态,可以响应其它的数据访问请求,进行任务切换和地址切换;如果该任务没有完成,控制器响应该FIFO数据缓存器对应的请求源的数据访问请求的时候,使该FIFO数据缓存器从第六状态、第五状态或第四状态变化到第三状态,从第六状态或第五状态变化到第四状态的过程不响应其它数据访问请求;当该FIFO数据缓存器到达第三状态时,如果只有一个二级请求优先级的数据访问请求,控制器继续响应所述FIFO数据缓存器对应的请求源的数据访问请求,不响应这个二级请求优先级的数据访问请求;如果有两个二级请求优先级的数据访问请求,控制器就把当前的任务挂起,响应两个二级请求优先级的数据访问请求中紧急度较高者,控制器切换任务和地址;如果有一个一级请求优先级的数据访问请求,控制器把当前的任务挂起,响应这个一级请求优先级的数据访问请求,控制器切换任务和地址;当该FIFO数据缓存器从第三状态到达第二状态时,如果只有一个数据访问请求,不论一级请求优先级的数据访问请求还是二级请求优先级的数据访问请求,控制器把当前的任务挂起,响应这个请求,控制器切换任务和地址;如果有两个数据访问请求,控制器就把当前的任务挂起,响应两个数据访问请求中优先级较高者,控制器切换任务和地址。这样重复操作,直至所有的任务都完成,控制器回到空闲状态。
当至少两个阈值包括第一阈值和第二阈值时,S103具体可以包括以下步骤:
当控制器在响应一个请求源的数据访问请求的时候,任务已经完成或者对应的FIFO数据缓存器的实时状态处于第一状态,该FIFO数据缓存器释放控制权,控制器转到空闲状态,可以响应其它的数据访问请求,进行任务切换和地址切换;如果该任务没有完成,控制器响应该FIFO数据缓存器对应的请求源的数据访问请求的时候,使该FIFO数据缓存器从第五状态或第四状态或第三状态变化到第二状态,从第五状态或第四状态到第三状态的过程不响应其它数据访问请求;当该FIFO数据缓存器到达第二状态时,如果只有一个二级请求优先级的数据访问请求,控制器继续响应所述FIFO数据缓存器对应的请求源的数据访问请求,不响应这个二级请求优先级的数据访问请求;如果有两个二级请求优先级的数据访问请求,控制器就把当前的任务挂起,响应两个二级请求优先级的数据访问请求中紧急度较高者,控制器切换任务和地址;如果有一个一级请求优先级的数据访问请求,控制器把当前的任务挂起,响应这个一级请求优先级的数据访问请求,控制器切换任务和地址。这样重复操作,直至所有的任务都完成,控制器回到空闲状态。
在本发明实施例一中,当至少两个阈值包括第一阈值、第二阈值和第三阈值时,对于读FIFO数据缓存器对应的请求源的数据访问请求,S103具体包括:
当OUT FIFO处于第一状态时,控制对应的请求源的数据访问请求挂起;
当OUT FIFO处于第二状态时,当有一个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应二级请求优先级的数据访问请求;
当OUT FIFO处于第三状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当OUT FIFO处于第四状态时,如果是该FIFO的有效数据减少使该FIFO从第三状态到第四状态,则产生一个二级请求优先级的数据访问请求,紧急度为FIFO深度减去有效数据的个数;如果是控制器正在响应该OUT FIFO对应的请求源的数据访问请求,从存储器读数据写入该FIFO,有效数据增加使该FIFO从第五状态到第四状态,则该FIFO不会发出请求;
当OUT FIFO处于第五状态时,如果是有效数据减少使该FIFO从第四状态到第五状态,则控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
在本发明实施例一中,当至少两个阈值包括第一阈值、第二阈值和第三阈值时,对于写FIFO数据缓存器对应的请求源的数据访问请求,S103具体包括:
当IN FIFO处于第一状态时,控制对应的请求源的数据访问请求挂起;
当IN FIFO处于第二状态时,当有一个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应二级请求优先级的数据访问请求;
当IN FIFO处于第三状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当IN FIFO处于第四状态时,如果是该FIFO的有效数据增加使该FIFO从第三状态到第四状态,则产生一个二级请求优先级的数据访问请求,紧急度为有效数据的个数;如果是控制器正在响应该IN FIFO对应的请求源的数据访问请求,将该FIFO中的有效数据写入存储器,有效数据减少使该FIFO从第五状态到第四状态,则该FIFO不会发出请求;
当IN FIFO处于第五状态时,如果是有效数据增加使该FIFO从第四状态到第五状态,则控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
在本发明实施例一中,当至少两个阈值包括第一阈值和第二阈值时,对于读FIFO数据缓存器对应的请求源的数据访问请求,S103具体包括:
当OUT FIFO处于第一状态时,控制对应的请求源的数据访问请求挂起;
当OUT FIFO处于第二状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当OUT FIFO处于第三状态时,产生一个二级请求优先级的数据访问请求;
当OUT FIFO处于第四状态时,则控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
在本发明实施例一中,当至少两个阈值包括第一阈值和第二阈值时,对于写FIFO数据缓存器对应的请求源的数据访问请求,S103具体包括:
当IN FIFO处于第一状态时,控制对应的请求源的数据访问请求挂起;
当IN FIFO处于第二状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当IN FIFO处于第三状态时,产生一个二级请求优先级的数据访问请求;
当IN FIFO处于第四状态时,控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
请参阅图7,为了方便描述,假设三个FIFO数据缓存器都是OUT FIFO数据缓存器。在T1时刻之前,控制器正在响应FIFO1,FIFO1从第四状态到达第三状态,FIFO2和FIFO3由于有效数据被读出显示图像,有效数据减少使得FIFO2从第二状态到第三状态,FIFO3从第三状态到第四状态。在T1时刻,FIFO1处于第三状态并且检测到FIFO3发出的二级请求优先级的数据访问请求,但是控制器并不响应这个请求,继续响应FIFO1。FIFO2和FIFO3的有效数据继续减少,FIFO3从第四状态到第五状态,升级为一级请求优先级。在T2时刻,FIFO1仍然处于第三状态,检测到FIFO3发出的一级请求优先级的数据访问请求,控制器就将FIFO1的任务暂停,响应FIFO3的数据访问请求,切换到FIFO3的任务,仲裁结果也从FIFO1切换到FIFO3。在T2时刻之后,FIFO1由于有效数据被读出显示图像,有效数据减少使得FIFO1从第三状态到第四状态,产生一个二级请求优先级的数据访问请求。FIFO3在T2时刻得到控制器响应后,从存储器读出数据填入FIFO3中,有效数据增加使FIFO3从第五状态到第四状态,在这个过程,控制器并不响应任何数据访问请求。到T3时刻,FIFO3处于第三状态,但是只有FIFO1的一个二级请求优先级的数据访问请求,控制器不响应这个二级请求优先级的数据访问请求,继续从存储器读出数据填入FIFO3中,直到T4时刻,检测到同时有两个二级请求优先级的数据访问请求,控制器就将FIFO3的任务暂停,响应优先级较高的FIFO1的数据访问请求,切换到FIFO1的数据访问请求,仲裁结果也从FIFO3切换到FIFO1。T4时刻后,FIFO1得到控制器响应,有效数据增加从第四状态到第三状态,这期间只有FIFO2的一个二级请求优先级的数据访问请求,控制器继续响应FIFO1。到T5时刻,FIFO1已经处在第二状态,这时控制器就将FIFO1的数据访问请求暂停,响应FIFO2的二级请求优先级的数据访问请求,切换到FIFO2的数据访问请求,仲裁结果也从FIFO1切换到FIFO2。在T1时刻不立即切换数据访问请求,而是等到T2时刻才切换,可以增加控制器读写存储器数据的有效时间,减少切换频率,提高效率。同理,在T3时刻不立即切换数据访问请求,而是等到T4时刻才切换数据访问请求。在T5时刻立即切换数据访问请求,是为了平衡各个FIFO的数据状态。
在本发明实施例一中,由于对于多个请求源对同一存储器的数据访问请求时,根据每个请求源的数据访问请求对应的FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级,即优先级是动态的优先级;根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求。由于请求源任务从读FIFO数据缓存器取出数据是不定时的,如果给各个读FIFO数据缓存器分配固定优先级,低优先级的读FIFO数据缓存器可能一直得不到响应,而读FIFO数据缓存器中的有效数据被请求源任务取空或者低优先级的写FIFO数据缓存器数据溢出而导致出错。而本发明实施例一采用动态的优先级,因此可以保证每个FIFO数据缓存器不出错,可以提高读写数据总线的效率,使每一次数据访问操作的时间尽量的长,可以对多个请求源进行合理的调度和控制。
实施例二:
本发明实施例二提供了一种控制器,所述控制器包括:
接收模块11,用于接收多个请求源对同一存储器的数据访问请求;
确定模块12,用于根据每个请求源的数据访问请求对应的FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级;
控制执行模块13,用于根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求。
在本发明实施例二中,所述控制器还包括:
第一确定模块,用于确定每个请求源的数据访问请求对应的FIFO数据缓存器的实时状态,具体为:根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态。
在本发明实施例二中,当至少两个阈值包括第一阈值、第二阈值和第三阈值时,所述第一确定模块具体用于:
当读FIFO数据缓存器的有效数据的个数等于读FIFO数据缓存器的深度,确定所述读FIFO数据缓存器处于第一状态;
当读FIFO数据缓存器的有效数据的个数大于第三阈值,确定所述读FIFO数据缓存器处于第二状态;
当读FIFO数据缓存器的有效数据的个数大于第二阈值小于第三阈值,确定所述读FIFO数据缓存器处于第三状态;
当读FIFO数据缓存器的有效数据的个数大于第一阈值小于第二阈值,确定所述读FIFO数据缓存器处于第四状态;
当读FIFO数据缓存器的有效数据的个数小于第一阈值,确定所述读FIFO数据缓存器处于第五状态;
当读FIFO数据缓存器没有有效数据,确定所述读FIFO数据缓存器处于第六状态;
当写FIFO数据缓存器没有有效数据,确定所述写FIFO数据缓存器处于第一状态;
当写FIFO数据缓存器的有效数据的个数小于第一阈值,确定所述写FIFO数据缓存器处于第二状态;
当写FIFO数据缓存器的有效数据的个数大于第一阈值小于第二阈值,确定所述写FIFO数据缓存器处于第三状态;
当写FIFO数据缓存器的有效数据的个数大于第二阈值小于第三阈值,确定所述写FIFO数据缓存器处于第四状态;
当写FIFO数据缓存器的有效数据的个数大于第三阈值,确定所述写FIFO数据缓存器处于第五状态;
当写FIFO数据缓存器的有效数据的个数等于写FIFO数据缓存器的深度,确定所述写FIFO数据缓存器处于第六状态。
在本发明实施例二中,当至少两个阈值包括第一阈值、第二阈值和第三阈值时,对于读FIFO数据缓存器,所述确定模块12具体用于:
当请求源的数据访问请求对应的读FIFO数据缓存器的实时状态是第四状态时,如果是读FIFO数据缓存器的有效数据减少使读FIFO数据缓存器从第三状态到第四状态,则确定读FIFO数据缓存器的优先级为二级请求优先级,紧急度为FIFO深度减去有效数据的个数;
当请求源的数据访问请求对应的读FIFO数据缓存器的实时状态是第五状态时,如果是读FIFO数据缓存器的有效数据减少使读FIFO数据缓存器从第四状态到第五状态,则确定读FIFO数据缓存器的优先级为一级请求优先级;
对于写FIFO数据缓存器,所述确定模块12具体用于:
当请求源的数据访问请求对应的写FIFO数据缓存器的实时状态是第四状态时,如果是写FIFO数据缓存器的有效数据增加使写FIFO数据缓存器从第三状态到第四状态,则确定写FIFO数据缓存器的优先级为二级请求优先级,紧急度为有效数据的个数;
当请求源的数据访问请求对应的写FIFO数据缓存器的实时状态是第五状态时,如果是写FIFO数据缓存器的有效数据增加使写FIFO数据缓存器从第四状态到第五状态,则确定写FIFO数据缓存器的优先级为一级请求优先级。
在本发明实施例二中,当至少两个阈值包括第一阈值和第二阈值时,所述第一确定模块具体用于:
当读FIFO数据缓存器的有效数据的个数等于读FIFO数据缓存器的深度,确定所述读FIFO数据缓存器处于第一状态;
当读FIFO数据缓存器的有效数据的个数大于第二阈值,确定所述读FIFO数据缓存器处于第二状态;
当读FIFO数据缓存器的有效数据的个数大于第一阈值小于第二阈值,确定所述读FIFO数据缓存器处于第三状态;
当读FIFO数据缓存器的有效数据的个数小于第一阈值,确定所述读FIFO数据缓存器处于第四状态;
当读FIFO数据缓存器没有有效数据,确定所述读FIFO数据缓存器处于第五状态;
当写FIFO数据缓存器没有有效数据,确定所述写FIFO数据缓存器处于第一状态;
当写FIFO数据缓存器的有效数据的个数小于第一阈值,确定所述写FIFO数据缓存器处于第二状态;
当写FIFO数据缓存器的有效数据的个数大于第一阈值小于第二阈值,确定所述写FIFO数据缓存器处于第三状态;
当写FIFO数据缓存器的有效数据的个数大于第二阈值,确定所述写FIFO数据缓存器处于第四状态;
当写FIFO数据缓存器的有效数据的个数等于写FIFO数据缓存器的深度,确定所述写FIFO数据缓存器处于第五状态。
在本发明实施例二中,当至少两个阈值包括第一阈值和第二阈值时,对于读FIFO数据缓存器,所述确定模块12具体用于:
当请求源的读数据请求对应的读FIFO数据缓存器的实时状态是第三状态时,如果是读FIFO数据缓存器的有效数据减少使读FIFO数据缓存器从第二状态到第三状态,则确定读FIFO数据缓存器的优先级为二级请求优先级,紧急度为FIFO深度减去有效数据的个数;
当请求源的读数据请求对应的读FIFO数据缓存器的实时状态是第四状态时,如果是读FIFO数据缓存器的有效数据减少使读FIFO数据缓存器从第三状态到第四状态,则确定读FIFO数据缓存器的优先级为一级请求优先级;
对于写FIFO数据缓存器,所述确定模块12具体用于:
当请求源的写数据请求对应的写FIFO数据缓存器的实时状态是第三状态时,如果是写FIFO数据缓存器的有效数据增加使写FIFO数据缓存器从第二状态到第三状态,则确定写FIFO数据缓存器的优先级为二级请求优先级,紧急度为有效数据的个数;
当请求源的写数据请求对应的写FIFO数据缓存器的实时状态是第四状态时,如果是写FIFO数据缓存器的有效数据增加使写FIFO数据缓存器从第三状态到第四状态,则确定写FIFO数据缓存器的优先级为一级请求优先级。
在本发明实施例二中,当至少两个阈值包括第一阈值、第二阈值和第三阈值时,所述控制执行模块13具体用于:
当控制器在响应一个请求源的数据访问请求的时候,任务已经完成或者对应的FIFO数据缓存器的实时状态处于第一状态,所述FIFO数据缓存器释放控制权,控制器转到空闲状态,控制器响应其它的数据访问请求,进行任务切换和地址切换;
如果任务没有完成,控制器响应所述FIFO数据缓存器对应的请求源的数据访问请求的时候,使所述FIFO数据缓存器从第六状态、第五状态或第四状态变化到第三状态,从第六状态或第五状态变化到第四状态的过程不响应其它数据访问请求;当所述FIFO数据缓存器到达第三状态时,如果只有一个二级请求优先级的数据访问请求,控制器继续响应所述FIFO数据缓存器对应的请求源的数据访问请求;如果有两个二级请求优先级的数据访问请求,控制器把当前的任务挂起,响应两个二级请求优先级的数据访问请求中紧急度较高者,控制器切换任务和地址;如果有一个一级请求优先级的数据访问请求,控制器把当前的任务挂起,响应所述一级请求优先级的数据访问请求,控制器切换任务和地址;当所述FIFO数据缓存器从第三状态到达第二状态时,如果只有一个数据访问请求,控制器把当前的任务挂起,响应所述数据访问请求,控制器切换任务和地址;如果有两个数据访问请求,控制器就把当前的任务挂起,响应两个数据访问请求中优先级较高者,控制器切换任务和地址;重复操作,直至所有的任务都完成,控制器回到空闲状态。
当至少两个阈值包括第一阈值和第二阈值时,所述控制执行模块13具体用于:
当控制器在响应一个请求源的数据访问请求的时候,任务已经完成或者对应的FIFO数据缓存器的实时状态处于第一状态,所述FIFO数据缓存器释放控制权,控制器转到空闲状态,控制器响应其它的数据访问请求,进行任务切换和地址切换;
如果任务没有完成,控制器响应所述FIFO数据缓存器对应的请求源的数据访问请求的时候,使所述FIFO数据缓存器从第五状态或第四状态或第三状态变化到第二状态,从第五状态或第四状态到第三状态的过程不响应其它数据访问请求;当所述FIFO数据缓存器到达第二状态时,如果只有一个二级请求优先级的数据访问请求,控制器继续响应所述FIFO数据缓存器对应的请求源的数据访问请求;如果有两个二级请求优先级的数据访问请求,控制器把当前的任务挂起,响应两个二级请求优先级的数据访问请求中紧急度较高者,控制器切换任务和地址;如果有一个一级请求优先级的数据访问请求,控制器把当前的任务挂起,响应所述一级请求优先级的数据访问请求,控制器切换任务和地址;重复操作,直至所有的任务都完成,控制器回到空闲状态。
在本发明实施例二中,当至少两个阈值包括第一阈值、第二阈值和第三阈值时,对于读FIFO数据缓存器对应的请求源的数据访问请求,所述控制执行模块13具体用于:
当读FIFO数据缓存器处于第一状态时,控制对应的请求源的数据访问请求挂起;
当读FIFO数据缓存器处于第二状态时,当有一个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应二级请求优先级的数据访问请求;
当读FIFO数据缓存器处于第三状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当读FIFO数据缓存器处于第四状态时,如果是该读FIFO数据缓存器的有效数据减少使该FIFO从第三状态到第四状态,则产生一个二级请求优先级的数据访问请求,紧急度为FIFO深度减去有效数据的个数;如果是控制器正在响应该读FIFO数据缓存器对应的请求源的数据访问请求,从存储器读数据写入该FIFO,有效数据增加使该FIFO从第五状态到第四状态,则该FIFO不会发出请求;
当读FIFO数据缓存器处于第五状态时,如果是有效数据减少使该FIFO从第四状态到第五状态,则控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求;
对于写FIFO数据缓存器对应的请求源的数据访问请求,所述控制执行模块13具体用于:
当写FIFO数据缓存器处于第一状态时,控制对应的请求源的数据访问请求挂起;
当写FIFO数据缓存器处于第二状态时,当有一个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应二级请求优先级的数据访问请求;
当写FIFO数据缓存器处于第三状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当写FIFO数据缓存器处于第四状态时,如果是该写FIFO数据缓存器的有效数据增加使该FIFO从第三状态到第四状态,则产生一个二级请求优先级的数据访问请求,紧急度为有效数据的个数;如果是控制器正在响应该写FIFO数据缓存器对应的请求源的数据访问请求,将该FIFO中的有效数据写入存储器,有效数据减少使该FIFO从第五状态到第四状态,则该FIFO不会发出请求;
当写FIFO数据缓存器处于第五状态时,如果是有效数据增加使该FIFO从第四状态到第五状态,则控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
在本发明实施例二中,当至少两个阈值包括第一阈值和第二阈值时,对于读FIFO数据缓存器对应的请求源的数据访问请求,所述控制执行模块13具体用于:
当OUT FIFO处于第一状态时,控制对应的请求源的数据访问请求挂起;
当OUT FIFO处于第二状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当OUT FIFO处于第三状态时,产生一个二级请求优先级的数据访问请求;
当OUT FIFO处于第四状态时,则控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
在本发明实施例二中,当至少两个阈值包括第一阈值和第二阈值时,对于写FIFO数据缓存器对应的请求源的数据访问请求,所述控制执行模块13具体用于:
当IN FIFO处于第一状态时,控制对应的请求源的数据访问请求挂起;
当IN FIFO处于第二状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当IN FIFO处于第三状态时,产生一个二级请求优先级的数据访问请求;
当IN FIFO处于第四状态时,控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
本发明实施例还提供了一种视频处理装置,所述视频处理装置包括本发明实施例二提供的控制器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种控制多请求源访问存储器的方法,其特征在于,所述方法包括:
接收多个请求源对同一存储器的数据访问请求;
根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级;
根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求;在所述根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级之前,所述方法还包括:
确定每个请求源的数据访问请求对应的FIFO数据缓存器的实时状态,具体为:
根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态;
当至少两个阈值包括第一阈值、第二阈值和第三阈值时,所述根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态具体为:
当读FIFO数据缓存器的有效数据的个数等于读FIFO数据缓存器的深度,确定所述读FIFO数据缓存器处于第一状态;
当读FIFO数据缓存器的有效数据的个数大于第三阈值,确定所述读FIFO数据缓存器处于第二状态;
当读FIFO数据缓存器的有效数据的个数大于第二阈值小于第三阈值,确定所述读FIFO数据缓存器处于第三状态;
当读FIFO数据缓存器的有效数据的个数大于第一阈值小于第二阈值,确定所述读FIFO数据缓存器处于第四状态;
当读FIFO数据缓存器的有效数据的个数小于第一阈值,确定所述读FIFO数据缓存器处于第五状态;
当读FIFO数据缓存器没有有效数据,确定所述读FIFO数据缓存器处于第六状态;
对于读FIFO数据缓存器,所述根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级具体包括:
当请求源的数据访问请求对应的读FIFO数据缓存器的实时状态是第四状态时,如果是读FIFO数据缓存器的有效数据减少使读FIFO数据缓存器从第三状态到第四状态,则确定读FIFO数据缓存器的优先级为二级请求优先级,紧急度为FIFO深度减去有效数据的个数;
当请求源的数据访问请求对应的读FIFO数据缓存器的实时状态是第五状态时,如果是该读FIFO数据缓存器的有效数据减少使该读FIFO数据缓存器从第四状态到第五状态,确定读FIFO数据缓存器的优先级为一级请求优先级;
当至少两个阈值包括第一阈值和第二阈值时,所述根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态具体为:
当读FIFO数据缓存器的有效数据的个数等于读FIFO数据缓存器的深度,确定所述读FIFO数据缓存器处于第一状态;
当读FIFO数据缓存器的有效数据的个数大于第二阈值,确定所述读FIFO数据缓存器处于第二状态;
当读FIFO数据缓存器的有效数据的个数大于第一阈值小于第二阈值,确定所述读FIFO数据缓存器处于第三状态;
当读FIFO数据缓存器的有效数据的个数小于第一阈值,确定所述读FIFO数据缓存器处于第四状态;
当读FIFO数据缓存器没有有效数据,确定所述读FIFO数据缓存器处于第五状态;
对于读FIFO数据缓存器,所述根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级具体包括:
当请求源的读数据请求对应的读FIFO数据缓存器的实时状态是第三状态时,如果是读FIFO数据缓存器的有效数据减少使读FIFO数据缓存器从第二状态到第三状态,则确定读FIFO数据缓存器的优先级为二级请求优先级,紧急度为FIFO深度减去有效数据的个数;
当请求源的读数据请求对应的读FIFO数据缓存器的实时状态是第四状态时,如果是该读FIFO数据缓存器的有效数据减少使该读FIFO数据缓存器从第三状态到第四状态,确定读FIFO数据缓存器的优先级为一级请求优先级。
2.如权利要求1所述的方法,其特征在于,当至少两个阈值包括第一阈值、第二阈值和第三阈值时,所述根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态具体为:
当写FIFO数据缓存器没有有效数据,确定所述写FIFO数据缓存器处于第一状态;
当写FIFO数据缓存器的有效数据的个数小于第一阈值,确定所述写FIFO数据缓存器处于第二状态;
当写FIFO数据缓存器的有效数据的个数大于第一阈值小于第二阈值,确定所述写FIFO数据缓存器处于第三状态;
当写FIFO数据缓存器的有效数据的个数大于第二阈值小于第三阈值,确定所述写FIFO数据缓存器处于第四状态;
当写FIFO数据缓存器的有效数据的个数大于第三阈值,确定所述写FIFO数据缓存器处于第五状态;
当写FIFO数据缓存器的有效数据的个数等于写FIFO数据缓存器的深度,确定所述写FIFO数据缓存器处于第六状态;
对于写FIFO数据缓存器,所述根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级具体包括:
当请求源的数据访问请求对应的写FIFO数据缓存器的实时状态是第四状态时,如果是写FIFO数据缓存器的有效数据增加使写FIFO数据缓存器从第三状态到第四状态,则确定写FIFO数据缓存器的优先级为二级请求优先级,紧急度为有效数据的个数;
当请求源的数据访问请求对应的写FIFO数据缓存器的实时状态是第五状态时,如果是该写FIFO数据缓存器的有效数据增加使该写FIFO数据缓存器从第四状态到第五状态,确定写FIFO数据缓存器的优先级为一级请求优先级。
3.如权利要求1所述的方法,其特征在于,当至少两个阈值包括第一阈值和第二阈值时,所述根据每个请求源的数据访问请求对应的FIFO数据缓存器中有效数据的个数与至少两个阈值的关系确定FIFO数据缓存器所处的状态具体为:
当写FIFO数据缓存器没有有效数据,确定所述写FIFO数据缓存器处于第一状态;
当写FIFO数据缓存器的有效数据的个数小于第一阈值,确定所述写FIFO数据缓存器处于第二状态;
当写FIFO数据缓存器的有效数据的个数大于第一阈值小于第二阈值,确定所述写FIFO数据缓存器处于第三状态;
当写FIFO数据缓存器的有效数据的个数大于第二阈值,确定所述写FIFO数据缓存器处于第四状态;
当写FIFO数据缓存器的有效数据的个数等于写FIFO数据缓存器的深度,确定所述写FIFO数据缓存器处于第五状态;
对于写FIFO数据缓存器,所述根据每个请求源的数据访问请求对应的先进先出队列FIFO数据缓存器的实时状态来动态地确定每个FIFO数据缓存器的优先级具体包括:
当请求源的写数据请求对应的写FIFO数据缓存器的实时状态是第三状态时,如果是写FIFO数据缓存器的有效数据增加使写FIFO数据缓存器从第二状态到第三状态,则确定写FIFO数据缓存器的优先级为二级请求优先级,紧急度为有效数据的个数;
当请求源的写数据请求对应的写FIFO数据缓存器的实时状态是第四状态时,如果是该写FIFO数据缓存器的有效数据增加使该写FIFO数据缓存器从第三状态到第四状态,确定写FIFO数据缓存器的优先级为一级请求优先级。
4.如权利要求1所述的方法,其特征在于,所述根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求具体包括:
当控制器在响应一个请求源的数据访问请求的时候,任务已经完成或者对应的FIFO数据缓存器的实时状态处于第一状态,所述FIFO数据缓存器释放控制权,控制器转到空闲状态,控制器响应其它的数据访问请求,进行任务切换和地址切换;
如果任务没有完成,控制器响应所述FIFO数据缓存器对应的请求源的数据访问请求的时候,使所述FIFO数据缓存器从第六状态、第五状态或第四状态变化到第三状态,从第六状态或第五状态变化到第四状态的过程不响应其它数据访问请求;当所述FIFO数据缓存器到达第三状态时,如果只有一个二级请求优先级的数据访问请求,控制器继续响应所述FIFO数据缓存器对应的请求源的数据访问请求;如果有两个二级请求优先级的数据访问请求,控制器把当前的任务挂起,响应两个二级请求优先级的数据访问请求中紧急度较高者,控制器切换任务和地址;如果有一个一级请求优先级的数据访问请求,控制器把当前的任务挂起,响应所述一级请求优先级的数据访问请求,控制器切换任务和地址;当所述FIFO数据缓存器从第三状态到达第二状态时,如果只有一个数据访问请求,控制器把当前的任务挂起,响应所述数据访问请求,控制器切换任务和地址;如果有两个数据访问请求,控制器就把当前的任务挂起,响应两个数据访问请求中优先级较高者,控制器切换任务和地址;重复操作,直至所有的任务都完成,控制器回到空闲状态。
5.如权利要求1所述的方法,其特征在于,对于读FIFO数据缓存器对应的请求源的数据访问请求,所述根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求具体包括:
当读FIFO数据缓存器处于第一状态时,控制对应的请求源的数据访问请求挂起;
当读FIFO数据缓存器处于第二状态时,当有一个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应二级请求优先级的数据访问请求;
当读FIFO数据缓存器处于第三状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当读FIFO数据缓存器处于第四状态时,如果是该读FIFO数据缓存器的有效数据减少使该FIFO从第三状态到第四状态,则产生一个二级请求优先级的数据访问请求,紧急度为FIFO深度减去有效数据的个数;如果是控制器正在响应该读FIFO数据缓存器对应的请求源的数据访问请求,从存储器读数据写入该FIFO,有效数据增加使该FIFO从第五状态到第四状态,则该FIFO不会发出请求;
当读FIFO数据缓存器处于第五状态时,如果是有效数据减少使该FIFO从第四状态到第五状态,则控制该FIFO发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
6.如权利要求2所述的方法,其特征在于,对于写FIFO数据缓存器对应的请求源的数据访问请求,所述根据每个FIFO数据缓存器的优先级来控制执行每个FIFO数据缓存器对应的请求源的数据访问请求具体包括:
当写FIFO数据缓存器处于第一状态时,控制对应的请求源的数据访问请求挂起;
当写FIFO数据缓存器处于第二状态时,当有一个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应二级请求优先级的数据访问请求;
当写FIFO数据缓存器处于第三状态时,当有一个一级请求优先级的数据访问请求,或者两个二级请求优先级的数据访问请求,则控制对应的请求源的数据访问请求挂起,响应一级请求优先级的数据访问请求或者两个二级请求优先级的数据访问请求中紧度较高的数据访问请求;
当写FIFO数据缓存器处于第四状态时,如果是该写FIFO数据缓存器的有效数据增加使该写FIFO数据缓存器从第三状态到第四状态,则产生一个二级请求优先级的数据访问请求,紧急度为写FIFO数据缓存器的有效数据的个数;如果是控制器正在响应该写FIFO数据缓存器对应的请求源的数据访问请求,将该写FIFO数据缓存器中的有效数据写入存储器,有效数据减少使该写FIFO数据缓存器从第五状态到第四状态,则该写FIFO数据缓存器不会发出请求;
当写FIFO数据缓存器处于第五状态时,如果是有效数据增加使该写FIFO数据缓存器从第四状态到第五状态,则控制该写FIFO数据缓存器发出的二级请求优先级的数据访问请求升级为一级请求优先级的数据访问请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510887753.3A CN106339329B (zh) | 2015-12-04 | 2015-12-04 | 控制多请求源访问存储器的方法、控制器和视频处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510887753.3A CN106339329B (zh) | 2015-12-04 | 2015-12-04 | 控制多请求源访问存储器的方法、控制器和视频处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106339329A CN106339329A (zh) | 2017-01-18 |
CN106339329B true CN106339329B (zh) | 2019-09-13 |
Family
ID=57826614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510887753.3A Active CN106339329B (zh) | 2015-12-04 | 2015-12-04 | 控制多请求源访问存储器的方法、控制器和视频处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106339329B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113253933B (zh) | 2017-04-17 | 2024-02-09 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656658A (zh) * | 2008-08-21 | 2010-02-24 | 中兴通讯股份有限公司 | 一种提高队列管理中出队效率的方法和装置 |
CN101669096B (zh) * | 2007-04-26 | 2013-03-27 | 日本电气株式会社 | 存储器访问控制装置 |
CN103543954A (zh) * | 2012-07-16 | 2014-01-29 | 中兴通讯股份有限公司 | 一种数据存储管理方法和装置 |
CN103914412A (zh) * | 2013-01-09 | 2014-07-09 | 国际商业机器公司 | 用于存储设备中的流量优先化的方法,存储设备以及存储系统 |
CN104737144A (zh) * | 2012-10-25 | 2015-06-24 | 德州仪器公司 | 存储器存取的动态优先级管理 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032156B2 (en) * | 2011-07-06 | 2015-05-12 | Advanced Micro Devices, Inc. | Memory access monitor |
US9286206B2 (en) * | 2013-07-30 | 2016-03-15 | Kabushiki Kaisha Toshiba | Memory system |
-
2015
- 2015-12-04 CN CN201510887753.3A patent/CN106339329B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101669096B (zh) * | 2007-04-26 | 2013-03-27 | 日本电气株式会社 | 存储器访问控制装置 |
CN101656658A (zh) * | 2008-08-21 | 2010-02-24 | 中兴通讯股份有限公司 | 一种提高队列管理中出队效率的方法和装置 |
CN103543954A (zh) * | 2012-07-16 | 2014-01-29 | 中兴通讯股份有限公司 | 一种数据存储管理方法和装置 |
CN104737144A (zh) * | 2012-10-25 | 2015-06-24 | 德州仪器公司 | 存储器存取的动态优先级管理 |
CN103914412A (zh) * | 2013-01-09 | 2014-07-09 | 国际商业机器公司 | 用于存储设备中的流量优先化的方法,存储设备以及存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106339329A (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3132355B1 (en) | Fine-grained bandwidth provisioning in a memory controller | |
KR100668002B1 (ko) | 그래픽 문맥 관리자를 구비하는 그래픽스-렌더링 엔진을갖는 장치, 방법, 및 시스템 | |
US8060679B2 (en) | Information processing apparatus and access control method capable of high-speed data access | |
JP4416694B2 (ja) | データ転送調停装置およびデータ転送調停方法 | |
CN109446125A (zh) | Ddr读写仲裁器及方法 | |
CN101794263B (zh) | 存储器的访问方法和访问控制器 | |
US7617344B2 (en) | Methods and apparatus for controlling access to resources in an information processing system | |
WO2022121866A1 (zh) | 一种基于加速卡的服务运行方法、装置、电子设备及计算机可读存储介质 | |
CN112948293A (zh) | 一种多用户接口的ddr仲裁器及ddr控制器芯片 | |
CN107077376B (zh) | 帧缓存实现方法、装置、电子设备和计算机程序产品 | |
KR20220027964A (ko) | 성능 보장 전력 관리를 갖는 실시간 gpu 렌더링 | |
CN107250980A (zh) | 具有图形和系统存储器冲突检查的计算方法和设备 | |
JP6974510B2 (ja) | データを処理するための方法、装置、デバイス及び媒体 | |
CN106339329B (zh) | 控制多请求源访问存储器的方法、控制器和视频处理装置 | |
CN112801856B (zh) | 数据处理方法和装置 | |
US20220300421A1 (en) | Memory Sharing | |
EP1647887A2 (en) | Apparatus for efficient image processing | |
JP2007280253A (ja) | 情報処理装置及び情報処理方法 | |
KR102334473B1 (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
JP2006092217A (ja) | メモリ制御方法、グラフィックプロセッサおよび情報処理装置 | |
JP4318664B2 (ja) | 情報処理装置およびタスク実行方法 | |
CN115328564B (zh) | 一种异步输入输出线程处理器资源分配方法及装置 | |
CN114816766B (zh) | 一种计算资源分配方法及其相关组件 | |
JP2016048502A (ja) | 情報処理装置及びメモリアクセス処理方法 | |
CN107728939A (zh) | 基于Linux的IO调度方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518000 Guangdong, Nanshan District high tech Zone, Shenzhen Software Park Phase 1, building 4, room, building 4, 406-421 Applicant after: Shenzhen Shenyang electronic Limited by Share Ltd Address before: 518000 Guangdong, Nanshan District high tech Zone, Shenzhen Software Park Phase 1, building 4, room, building 4, 406-421 Applicant before: Aike Chuangxin Microelectronic Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |