CN1332319C - 存储***控制方法 - Google Patents
存储***控制方法 Download PDFInfo
- Publication number
- CN1332319C CN1332319C CNB2004100971312A CN200410097131A CN1332319C CN 1332319 C CN1332319 C CN 1332319C CN B2004100971312 A CNB2004100971312 A CN B2004100971312A CN 200410097131 A CN200410097131 A CN 200410097131A CN 1332319 C CN1332319 C CN 1332319C
- Authority
- CN
- China
- Prior art keywords
- data
- primary memory
- dma
- memory
- described primary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种存储***控制方法,是在包括中央处理单元、高速缓冲存储器和主存储器、并且对主存储器具有DMA传送功能的***中的控制方法,其中当传送到所述主存储器的数据量达到预定阈值时,对所述高速缓冲存储器中与通过DMA传送写入到所述主存储器中数据的地址相对应的数据执行清除。
Description
技术领域
本发明涉及具有DMA控制器和主存储器的处理器***中的存储器地址控制,其中DMA控制器用于对高速缓冲存储器和主存储器执行DMA控制。
背景技术
通常,作为实现处理器速度改进的方法,为了从主存储器读取数据程序等,一般使用高速缓冲存储器***,其中一个具有小存储容量并能高速访问主存储器的存储器(高速缓冲存储器)被布置于处理器附近,以便在高速缓冲存储器中存储主存储器的部分数据程序等,从而高速访问数据程序。
在这种高速缓冲存储器***中,主存储器中的部分数据被读入高速缓冲存储器,以便对读入高速缓冲存储器的主存储器存储的部分数据的地址进行控制,从而当处理器读取所希望的数据时,如果它们存在于高速缓冲存储器中,则可以从高速缓冲存储器获得所希望的数据。图10表示出了主存储器中的数据和高速缓冲存储器中的数据之间的关系。主存储器(a)中的部分数据存储在高速缓冲存储器(b)中,并且处理器单元或专用的地址控制装置管理与高速缓冲存储器(b)中数据相对应的主存储器中的地址。与从主存储器读取数据的情况相比较,采用这种***可以实现高速数据访问。存储在高速缓冲存储器中的数据包括处理器频繁获取的数据,例如频繁运行的程序数据等。
此外,作为高速缓冲存储器,还存在一种***,该***设有第一高速缓冲存储器以及与第一高速缓冲存储器相比具有更大的存储容量和更低访问速度的第二高速缓冲存储器,并且该***在使用时,在第一高速缓冲存储器中存储访问频率最高的数据、在第二高速缓冲存储器中存储访问频率较高的数据。另外还存在一种***,该***既设有第一高速缓冲存储器和第二高速缓冲存储器,又进一步设有第三高速缓冲存储器等。
此外,通常还使用一种直接存储访问(下面也称为DMA)控制,直接将来自于外部接口的数据传送到主存储器而不通过处理器。通过设有执行该控制的DMA控制器可以减小处理器的负载,并且通过允许与外部装置高速传送数据来增强外部接口的性能。
在日本特许公开专利申请公开号5-307518的专利文献等中描述了设有这种DMA传送控制器的高速缓冲存储器***,下文将描述该***的结构图和***运行。
图8为设有常规DMA控制器的高速缓冲存储器***的示意图。在图8中,参考数字101表示该***的CPU(中央处理单元,下面也称为CPU),并且CPU 101通过总线直接连接到高速缓冲存储器102和总线接口缓冲器103。CPU 101可以高速访问上述装置。此外,主存储器104和连接到***外部资源的I/O 105通过总线接口缓冲器103进行连接。而且,DMA控制器106控制传输数据,上述数据通过I/O 105传送到主存储器104中。
当执行数据写操作时,CPU 101将写命令传送给高速缓冲存储器102和总线接口缓冲器103,且在高速缓冲存储器102中高速执行数据写操作。另一方面,用于锁存写指令和写数据的写缓冲器集成在总线接口缓冲器103中,并根据对主存储器104的访问时间,在主存储器104中写入写数据,以便CPU 101无需对主存储器104的访问速度进行调整操作,从而可以实现高速操作。
当执行数据读操作时,CPU 101将读命令传送到总线接口缓冲器103,该命令被总线接口缓冲器103中集成的读缓冲器锁存。根据对主存储器104的访问时间,读命令被传输到主存储器104中,并且执行从主存储器104读取数据的操作。从主存储器104读取的数据通过总线接口缓冲器103中的读缓冲器传送到CPU 101中。
此外,当执行从I/O 105到主存储器104的DMA传送时,为了使诸如CPU 101和总线接口缓冲器103的总线主控器保持操作,DMA控制器106向总线主控器发出一个保持信号。作为对该保持信号的响应,CPU 101和总线接口缓冲器103将保持确认信号返回到DMA控制器106,以便DMA控制器106开始DMA传送。
当执行DMA传送时,主存储器104的数据被重写,且主存储器104中的数据和高速缓冲存储器102中与主存储器104中数据相对应的数据之间将产生不一致性。因此,CPU 101不能访问到正确的数据。为了解决该问题,该***包括地址控制装置107,用于控制主存储器104的地址,其中主存储器104中写入了通过DMA传送方式传输来的数据;该***还包括清除装置108,用于清除高速缓冲存储器102中与主存储器104中地址相对应的数据,上述主存储器104中的地址是由地址控制装置107规定的,该地址控制装置107中的数据已进行了重写。因此,可以防止主存储器104中的重写数据与存储于高速缓冲存储器102中的主存储器104的预重写数据之间的不一致性。
在提供有上述DMA传送功能的高速缓冲存储器***中,可以防止DMA传送方式在主存储器中重写的数据和高速缓冲存储器中存储的主存储器中的预重写数据之间的不一致性;由此使CPU正确地执行数据读操作成为可能。但是,在这种常规方法中,即使没有来自于CPU的数据读请求,在每次DMA传送时,位于某恒定单元中的高速缓冲存储器的数据仍然会被清除,上述数据与DMA传送在主存储器中重写的数据相对应。例如,如果一个DMA传送数据单元是一个字节(8位)、半个字(16位)、以及一个字(32位),那么只要传送了一个字节、半个字以及一个字,都将分别执行清除进程。
图9所示为在具有图8中DMA传送功能的高速缓冲存储器***内,当DMA传送数据单元为一个字节时的DMA传送开始至其结束的处理流程。当产生DMA传送请求时,DMA控制器106保持CPU 101和总线接口缓冲器103的操作,且开始如上所述的DMA传送控制(S901)。DMA控制器对I/O 105和主存储器104进行控制,从而通过I/O 105将传送的数据存储在主存储器104(S902)中。在DMA传送单位是一个字节的情况下,当传送到主存储器104的数据达到一个字节时(S905),通过地址控制装置107和清除装置108对高速缓冲存储器102中的数据进行清除(S906),该数据与通过DMA传送在主存储器104中重写的数据相对应。当在进程S905至S902之间,所有数据通过DMA传送被完全传送到主存储器104时(S903),DMA传送进程完成(S907)。此外,当在DMA传送进程期间由CPU 101产生读命令时(S904),DMA控制器106中断DMA传送操作(S907)。另一方面,当通过DMA传送进行的数据传输没有完成,并且没有来自CPU101的读请求时,则从I/O 105至主存储器104的DMA传送继续进行,并执行进程S902至S906。
在如上所述的常规方法中,由于每当DMA传送数据单元的数据写入到主存储器中时,均执行高速缓冲存储器的清除,使得DMA控制器的进程效率降低,因此可能产生处理工时或处理时间增加的问题。
发明内容
鉴于上述问题,本发明的目的是进一步提高具有DMA传送功能的高速缓冲存储器***的处理效率,以便由此减小处理工时和处理时间。在本发明中,每当DMA传送数据单元中的数据被传送到主存储器时,不执行高速缓冲存储器中相应数据的清除进程;但是当通过DMA传送方式传送、并写入到主存储器中的数据量达到预定阈值时,或当通过DMA传送方式传送的数据达到主存储器的可写容量时,执行高速缓冲存储器中相应数据的清除进程。
相应地,本发明提供了一种方法,根据通过DMA传送方式传送到主存储器的数据量决定是否对高速缓冲存储器中的数据进行清除,并且CPU使用高速缓冲存储器对通过DMA传送方式传送的数据执行数据访问,或者不清除高速缓冲存储器中的数据,CPU仅对主存储器执行数据访问以便得到通过DMA传送方式传送的数据,而不使用高速缓冲存储器。如果通过DMA传送方式传送的数据不超过某一数据量,那么即使仅对主存储器执行数据访问而不使用高速缓冲存储器,也不会使***的处理效率降低,因此可以减少高速缓冲存储器的清除进程,并由此可以提高***的处理效率。
附图说明
图1是本发明的具有DMA传送功能的高速缓冲存储器***结构图;
图2是本发明控制方法的流程图1;
图3是与本发明相关的控制方法的流程图2;
图4是本发明的控制方法的流程图3;
图5是主存储器中的地址状态图1;
图6是主存储器中的地址状态图2;
图7是主存储器中的地址状态图3;
图8是具有常规DMA传送功能的高速缓冲存储器***的结构图;
图9是常规存储器控制方法的流程图;
图10是主存储器中数据和高速缓冲存储器中数据之间的关系示意图;
图11是数字广播接收器的结构示意图。
具体实施方式
本发明的特点在于还包括能够切换时间等的清除控制装置,通过进一步控制作为现有技术的图8所示的高速缓冲存储器***中的清除装置,实现高速缓冲存储器中数据的清除,上述数据对应于由DMA传送在主存储器中重写的数据。图1示出了具有清除控制装置的高速缓冲存储器***。在图1中,与图8相同的参考数字表示该元件具有类似的功能。在该高速缓冲存储器***中,清除控制装置基于地址控制装置的地址信息对清除装置进行控制。通过DMA传送重写在主存储器中的数据的地址从DMA控制器发送到地址控制装置,地址控制装置执行主存储器中数据的地址控制。下面将描述图1所示的高速缓冲存储器***控制的每个实施例,包括清除控制装置执行的控制方法。
(第一实施例)
图2示出了本发明第一实施例的控制方法的大体轮廓,并且还是从DMA传送开始至DMA传送完成这一进程的流程图。下面,将描述其操作。
首先,当DMA传送请求开始时,DMA控制器106将用于保持操作的保持信号发送至诸如CPU 101和总线接口缓冲器103的总线主控器。作为对该保持信号的响应,CPU 101和总线接口缓冲器103向DMA控制器106返回保持确认信号,以便DMA控制器106开始DMA传送(S201)。DMA控制器106通过I/O 105将要传送的数据传送到主存储器,以便在主存储器中写入数据(S202)。在此期间,当通过DMA传送的所有数据已被完全传送后(S203),DMA控制器控制清除装置,以便对高速缓冲存储器102中没有被清除的数据执行清除,该数据对应于主存储器104中通过DMA传送重写的数据。然后DMA控制器106完成DMA传送,并通知CPU 101和总线接口缓冲器103DMA传送完成(S205)。顺便提及,在该阶段可能不执行S204中的高速缓冲存储器102中数据的清除进程;并且当S205中的DMA传送完成之后,来自CPU 101的数据访问产生时,也可以清除高速缓冲存储器102中的数据。
当DMA传送继续进行(S203)、并且在此期间产生了来自CPU 101的数据访问命令时(S206),CPU 101向DMA控制器106发送保持信号,DMA控制器106根据保持信号中断DMA传送。顺便提及,对于该CPU 101的中断,DMA控制器106可能会在不中断DMA传送的情况下不批准CPU101的中断。根据CPU 101的读进程和DMA传送进程之间的优先级,具有较高优先级的进程将被执行。当DMA传送被中断时,与设定于清除控制装置109中的阈值进行比较(S208),且如果重写数据量不大于阈值,那么CPU 101将不使用高速缓冲存储器102执行数据访问,而是仅对主存储器104执行数据访问(S209)。如果重写数据量不小于阈值,那么高速缓冲存储器102中没有被清除的数据将被清除,上述被清除的数据与主存储器104中通过DMA传送重写的数据相对应(S210)。顺便提及,S210的清除进程可以仅清除与CPU101的主存储器中数据地址相对应的高速缓冲存储器102中的数据。当执行高速缓冲存储器102中的数据清除时,CPU 101使用高速缓冲存储器102对主存储器104执行数据访问(S211)。根据该设定阈值和DMA传送写入主存储器104的数据量之间的比较结果,CPU 101决定是否使用高速缓冲存储器102进行访问,从而可以减小***的进程数目。换言之,如果DMA传送方式传送的数据量不是很大,则通过仅对主存储器104执行数据访问、而不特意执行高速缓冲存储器102中的数据清除来提高处理速度。根据使用了该高速缓冲存储器102的***的应用、主存储器104的容量、DMA传送方式所传送的数据量以及CPU 101的数据访问频率等,该阈值可以自动地或被用户调整为最佳值,或在设计阶段就确定下来。当在S310或S311中CPU 101完成数据访问时,CPU向DMA控制器106发送保持释放信号,DMA控制器106再次开始DMA传送控制(S212)。
当DMA传送继续进行时(S203),地址控制装置107继续更新通过DMA传送写入主存储器104中数据的地址,清除控制装置109对该主存储器中写入的数据量设置一个任意阈值。每当DMA传送在主存储器104中写入的数据不小于该任意阈值时(S208),清除控制装置109就会清除与主存储器104中重写数据相对应的高速缓冲存储器102中的数据(S210)。该阈值可根据使用了该高速缓冲存储器102的***的应用、主存储器104的容量,DMA传送过程所传送的数据量以及CPU 101的数据访问频率等,以自动地或被用户调整为最佳值,或在设计阶段就确定下来。此外,该阈值可以被设为主存储器104中剩余可记录区域的总容量,从而最大程度的减小此情况下高速缓冲存储器102中的清除进程的数目。此外,由于当对CPU 101进行读操作等时,主存储器104的可记录区会发生改变,因此每当对CPU 101进行读操作时,都可以再次改变主存储器104的可记录区。
顺便提及,关于高速缓冲存储器102中的数据清除进程,如果在高速缓冲存储器102中不存在与通过DMA传送重写入主存储器104中数据相对应的数据,那么也可以通过清除控制装置109执行切换控制,以便可以不执行清除进程。
此外,即使在产生本实施例所述的来自CPU 101的数据访问命令时,通过DMA控制器106控制的DMA传送进程和通过CPU 101控制的访问进程不一定相排斥,而是可以存在于同一***中,该***能够同时执行从I/O105到主存储器104的DMA传送以及从CPU 101到主存储器104的数据访问。然而DMA控制器106会继续DMA传送而非中断该进程,并且CPU 101能够对主存储器104执行数据访问。
此外,对于已通过DMA传送方式传送到主存储器104、但是已由CPU101访问过的数据,它们可以通过DMA传送进行重写,并且对于写入了不必要数据的地址,也可以通过DMA传送在该地址中重写数据。
现有技术中为每个DMA传送数据单元都执行高速缓冲存储器中的数据清除进程,但是根据本实施例,只有当DMA传送到主存储器的数据达到设定的阈值时,才执行高速缓冲存储器中的数据清除进程,从而减小清除进程的进程数目。例如,在DMA传送数据单元为一个字节的***中,现有技术中为每一个字节都执行高速缓冲存储器中的数据清除,但是如果本发明中清除控制装置设置的阈值是十个字符,那么清除进程可以减小到1/10。此外,阈值被设为主存储器中的可记录容量,则还可以有效地利用大部分主存储器,并且减小高速缓冲存储器中的清除进程。
而且,即使当通过DMA传送在主存储器中重写的数据未达到阈值,也会在CPU访问数据之前执行高速缓冲存储器中数据的清除进程,从而可以彻底地执行清除。
(第二实施例)
接下来将描述本发明的第二实施例。图3是根据本实施例从DMA传送开始至DMA传送完成的大体轮廓的流程图。下面,将描述其操作。
首先,当DMA传送开始时,DMA控制器106将用于保持操作的保持信号发送至诸如CPU 101和总线接口缓冲器103的总线主控器。作为对该信号的响应,CPU 101和总线接口缓冲器103向DMA控制器106返回保持确认信号,以便DMA控制器106开始DMA传送(S301)。DMA控制器106通过I/O 105将要传送的数据传送到主存储器104,以便在主存储器104中写入数据(S302)。在此期间,当所有通过DMA传送的数据已被完全传送时(S303),或当通过DMA传送方式传送到主存储器104的数据量达到主存储器104的可写容量时(S304),清除控制装置109控制清除装置108,以对高速缓冲存储器102中没有被清除的数据执行清除,上述数据与通过DMA传送重写到主存储器104中的数据相对应。然后DMA控制器106完成DMA传送,并通知CPU 101和总线接口缓冲器103DMA传送完成(S306)。顺便提及,在该阶段可以不执行S305中对高速缓冲存储器102的数据清除进程;并且当在S306中的DMA传送完成之后,来自CPU 101的数据访问产生时,也可以清除高速缓冲存储器102中的数据。此外,当通过DMA传送方式传送到主存储器的数据量达到S304中主存储器的可写容量时,该进程转移到S306中的DMA传送完成,且也可以在CPU 101对主存储器104执行数据访问之后执行控制,以便立即重新开始DMA传送。
当DMA传送继续(S303,S304)及在此期间产生了来自CPU 101的数据访问命令(S307)时,CPU 101向DMA控制器106发送保持信号,并且DMA控制器106根据该保持信号中断DMA传送。顺便提及,对于该CPU 101的中断,DMA控制器106可能会在不中断DMA传送的条件下不批准CPU101的中断。根据CPU 101的读取进程和DMA传送进程之间的优先级,具有较高优先级的进程将被执行。当DMA传送被中断时,对通过DMA传送在主存储器104中重写的数据量和设定于清除控制装置109中的阈值进行比较(S309),且如果重写数据量不大于阈值,那么CPU 101将不会使用高速缓冲存储器102执行数据访问,而是仅对主存储器104执行数据访问(S310)。如果重写数据量不小于阈值,那么CPU101清除高速缓冲存储器102中没有被清除的数据(S311),上述数据与通过DMA传送重写到主存储器104中的数据相对应。顺便提及,S311的清除进程可以是一个仅清除高速缓冲存储器102中数据的进程,该数据与CPU101访问的主存储器中的数据的地址相对应。当执行高速缓冲存储器102中的数据清除时,CPU 101使用高速缓冲存储器102对主存储器104进行数据访问(S312)。根据该设定阈值和DMA传送写入主存储器104中的数据量之间的比较结果,CPU 101决定是否使用高速缓冲存储器102进行访问,从而可以减小***的进程数目。换言之,如果通过DMA传送的数据量不大,则通过仅对主存储器104执行数据访问、而不执行高速缓冲存储器102中的数据清除来提高处理速度。根据使用了该高速缓冲存储器102的***的应用、主存储器104的容量、DMA传送方式所传送的数据量以及CPU 101的数据访问频率等,该阈值可以自动地或被用户调整成最佳值,或在设计阶段就确定下来。当在S310或S311中CPU 101完成数据访问时,CPU向DMA控制器106发送保持释放信号,DMA控制器106再次开始DMA传送控制(S313)。
顺便提及,关于高速缓冲存储器102中的数据清除进程,如果在高速缓冲存储器102中不存在与DMA传送重写到主存储器104中数据相对应的数据,那么也可以通过清除控制装置109执行切换控制,以便可以不执行清除进程。
此外,即使在产生本实施例所述来自CPU 101的数据访问命令时,通过DMA控制器106控制的DMA传送进程和通过CPU 101控制的访问进程不一定相排斥,而是可以存在于统一***中,该***能够同时执行从I/O 105到主存储器104的DMA传送以及从CPU 101到主存储器104的数据访问。然而DMA控制器106会继续DMA传送而非中断该进程,并且CPU 101能够对主存储器104执行数据访问。
此外,对于已通过DMA传送方式传送到主存储器104、但是已由CPU101访问的数据,它们可以通过DMA传送进行重写,并且对于写入了不必要数据的地址,也可以通过DMA传送在该地址中重写数据。
现有技术为每个DMA传送数据单元都执行高速缓冲存储器中的数据清除进程,但是本实施例中,高速缓冲存储器中的数据清除进程是根据CPU产生的读请求来执行的,从而可以减小清除进程的进程数目。例如,在DMA传送数据单元是一个字节的***中,虽然现有技术中为每一个字节都执行高速缓冲存储器中的数据清除,但是如果从CPU产生数据访问的频率是DMA传送数据量大约为十个字节一次,并且根据本发明的方法执行DMA传送,那么清除进程可以减小到1/10。
(第三实施例)
接下来,将描述本发明的第三实施例。在该实施例中,采用环形缓冲器的先进先出(FIFO)存储器作为第一实施例中高速缓冲存储器***的主存储器。在下文中,图1中的主存储器101则被当做环形缓冲器的FIFO存储器。图5是表示主存储器104中地址状态的示意图。此外,本实施例的控制方法与第一实施例相类似,本实施例采用图2、图1以及图5所示的流程图来进行描述。
首先,DMA传送开始,DMA控制器106将用于保持操作的保持信号发送至诸如CPU 101和总线接口缓冲器103的总线主控器。作为对该保持信号的响应,CPU 101和总线接口缓冲器103向DMA控制器106返回保持确认信号,以便DMA控制器106开始DMA传送(S201)。而且,DMA控制器106通过I/O 105将要传送的数据传送到主存储器104,以便在主存储器104中写入数据(S302)。
对于图5,将描述主存储器中的数据写入状态,这里的主存储器是FIFO存储器。A1表示通过DMA传送方式传送的数据首先写入到主存储器104中的地址。如果在主存储器104中未记录数据,那么可以将主存储器104的起始地址规定为地址A1,并从主存储器104的起始地址写入数据。通过DMA传送方式传送的数据从地址A1开始顺序写入主存储器104中,A2是表示顺序写入的数据在任意时间处的数据写入位置。在FIFO存储器中,地址A2接近于DMA传送数据写入FIFO存储器的最后地址,且当地址A2达到该最后地址时,从FIFO存储器的起始地址开始执行数据写入。顺便提及,写入数据的区域必须是可写区,且由于最初记录的数据被读出等原因,该可写区可以增加。因此,如随后所述,当在DMA传送过程中CPU 101执行数据读取的中断时,或同时执行CPU 101的数据读操作时,数据可写区增加。这些地址A1和A2由地址控制装置控制。
尽管在主存储器104中连续地写入数据,但是当通过DMA传送的所有数据已被传送完时(S203),清除控制装置109控制清除装置108,以便对高速缓冲存储器102中没有被清除的数据执行清除,该数据对应于主存储器104中通过DMA传送重写的数据(S204)。然后,DMA控制器106完成DMA传送,并通知CPU 101和总线接口缓冲器103 DMA传送已经完成(S205)。顺便提及,在该阶段可能不执行S204中的高速缓冲存储器102中的数据清除进程;并且当S505中的DMA传送完成之后,来自CPU 101的数据访问产生时,也可以清除高速缓冲存储器102中的数据。
当DMA传送继续进行(S203)、并且在此期间产生了来自CPU 101的数据访问命令时(S206),CPU 101向DMA控制器106发送保持信号,DMA控制器106根据保持信号中断DMA传送。顺便提及,对于该CPU 101的中断,DMA控制器106可能会在不中断DMA传送的情况下不批准CPU101的中断。根据CPU 101的读进程和DMA传送进程之间的优先级,具有较高优先级的进程将被执行。当DMA传送被中断时,与设定于清除控制装置109的阈值进行比较(S208),且如果重写数据量不大于阈值,那么CPU101不会使用高速缓冲存储器102执行数据访问,而是仅对主存储器104执行数据访问(S209)。如果重写数据量不小于该阈值,那么高速缓冲存储器102中没有被清除的数据将被CPU 101清除,上述被清除的数据与主存储器104中通过DMA传送重写的数据相对应(S210)。顺便提及,S210的清除进程可以仅清除与CPU 101的主存储器中数据地址相对应的高速缓冲存储器102中的数据。当执行高速缓冲存储器102中的数据清除时,CPU 101使用高速缓冲存储器102对主存储器104执行数据访问(S211)。根据该设定阈值和DMA传送写入主存储器104中的数据量之间的比较结果,CPU 101决定是否使用高速缓冲存储器102进行访问,从而可以减小***的进程数目。换言之,如果DMA传送的数据量不大,则通过仅对主存储器104执行数据访问、而不执行高速缓冲存储器102中的数据清除来提高处理速度。根据使用了该高速缓冲存储器102的***的应用、主存储器104的容量、通过DMA传送方式传送的数据量以及CPU 101的数据访问频率等,该阈值可以自动地或被用户调整为最佳值,或在设计阶段就确定下来。当在S310或S311中CPU 101完成数据访问时,CPU向DMA控制器106发送保持释放信号,DMA控制器106再次开始DMA传送控制(S212)。
当DMA传送继续进行时(S203),地址控制装置107连续地更新由DMA传送写入主存储器104中数据的地址,并且清除控制装置109为写入该主存储器104的数据量设置一个任意阈值。每当DMA传送在主存储器104中写入的数据达到该任意阈值时(S213),清除控制装置109就会清除与主存储器104中重写数据相对应的高速缓冲存储器102中的数据(S214)。
下面通过图5详细地描述该阈值的设置情况。A3是为清除控制装置109设置的阈值的地址。当表示任意时间写入位置的地址A2达到地址A3时,可以肯定的是,DMA传送在主存储器104中写入的数据达到了阈值。下面将进一步描述怎样设置地址A3。
首先,将描述DMA传送开始时地址A3的设置情况。首先,(1)地址A3可以定义为地址A1和主存储器104的最后地址之间的任意地址,其中地址A1是DMA传送向主存储器104写数据的开始位置。在此情况下,当代表当前写位置的地址A2达到地址A3时,可以肯定的是,DMA传送在主存储器中写入的数据达到了阈值。换言之,它是由地址A2≥地址A3而给定的一个时间。其次,(2)地址A3可以定义为主存储器104的最后地址,主存储器104是FIFO存储器。在此情况下,当地址A2达到主存储器104的最后地址时,可以肯定的是,DMA传送在主存储器中写入的数据已经达到了阈值。换言之,当地址A2=最后地址、或地址A2达到最后地址且从主存储器的起始地址写入数据时,它是由起始地址≤地址A2≤地址A1给定的一个时间。再次,(3)地址A3可以定义为主存储器104的开始地址和地址A1之间的任意地址,主存储器104是FIFO存储器。换言之,当地址A2达到FIFO存储器的最后地址时,从FIFO存储器的起始地址写入DMA传送数据,且除此之外,数据写入的地址A2达到地址A3,即地址A2达到FIFO存储器的最后地址之后,当变为地址A2≥地址A3时,可以肯定的是,通过DMA传送在主存储器104中写入的数据已达到了阈值。然后,(4)地址A3可以定义为地址A1,地址A1是DMA传送进行写操作的开始位置。换言之,当地址A2达到FIFO存储器的最后地址时,从FIFO存储器的起始地址写入DMA传送数据,且除此之外,写入数据的地址A2达到地址A1,即在地址A2达到FIFO存储器的最后地址之后,当地址A2≥地址A1时,可以肯定的是通过DMA传送在主存储器104中写入的数据已达到了阈值。
顺便提及,如上所述的地址A3的每种设置模式都具有局限性,以至地址A3不能设置在还没有执行数据读操作的区域。为阈值设置而决定的地址A3可以基于存储器当时的可利用性而发生改变。此外,如果存储器被最为有效地使用,那么最好如此设置地址A3,以便规定整个数据可记录区。在图5中,A4表示还没有被读取的数据的起始地址,并且在此情况下还没有被读取的数据存在于从地址A4到地址A1的区域中。因此从地址A1至主存储器的最后地址的区域,以及从主存储器104的起始地址至地址A4的区域处于可以被写入数据的状态。换言之,地址A3可以设置于这些区域中,以便最有效地使用存储器,如果设置为地址A3=地址A4,则可以减小高速缓冲存储器102中的数据清除进程。此外,当通过CPU 101对主存储器104进行数据访问时,被访问的数据使主存储器104中的可写区增加,并且更新地址A4,则此时也优选重设地址A3。
顺便提及,地址A3不必与上所述的地址A4相同,而是根据使用了该高速缓冲存储器102的***的应用、主存储器104的容量、DMA传送方式传送的数据量以及CPU 101的数据访问频率等,地址A3可以自动地或被用户调整为最佳值,或在设计阶段就确定下来。
顺便提及,清除控制装置109基于地址控制装置107控制的主存储器104中的地址执行上述每种设置,并根据需要使清除装置108执行高速缓冲存储器102中的数据清除进程。
顺便提及,关于高速缓冲存储器102中的数据清除进程,如果在高速缓冲存储器102中不存在与DMA传送重写到主存储器104中数据相对应的数据,那么也可以通过清除控制装置109执行切换控制,以便可以不执行清除进程。
此外,即使在产生本实施例所述来自CPU 101的数据访问命令时,通过DMA控制器106控制的DMA传送进程和通过CPU 101控制的访问进程不一定相排斥,而是在可以可以存在于统一***中,该***能够同时执行从I/O 105到主存储器104的DMA传送以及从CPU 101到主存储器104的数据访问。然而DMA控制器106会继续DMA传送而非中断该进程,并且CPU101能够对主存储器104执行数据访问。
尽管现有技术为每个DMA传送数据单元都执行高速缓冲存储器中的数据的清除进程,但是在本实施例中,每当DMA传送到主存储器的数据达到设定的阈值,才执行高速缓冲存储器中的数据的清除进程,从而可以减小清除进程的进程数目。例如,在DMA传送数据单元是一个字符的***中,尽管现有技术中每一个字符都执行高速缓冲存储器中的数据清除,但是如果本发明中的清除控制装置设置的阈值是十个字符,那么清除进程的数量可以减小到1/10。此外,通过利用FIFO存储器的大部分性能,可以较为容易地控制写入数据的区域,并且根据存储器中的数据可写区,也可以较为容易地进行阈值设置,从而也可以简化阈值设置的过程。
此外,即使当通过DMA传送至主存储器中的重写数据未达到阈值,也会在访问CPU的数据之前执行高速缓冲存储器中的数据清除进程,从而可以彻底地执行清除。
(第四实施例)
接下来,将描述本发明的第四实施例。在该实施例中,采用环形缓冲器的FIFO存储器作为第二实施例中高速缓冲存储器***的主存储器。在下文中,图1中的主存储器则被当作环形缓冲器的FIFO存储器。图5表示出了代表主存储器的FIFO存储器。而且,本实施例的控制方法与第二实施例的控制方法相类似,本实施例采用图3、图1以及图5所示的流程图来进行描述。
首先,DMA传送开始,DMA控制器106将用于保持操作的保持信号发送至诸如CPU 101和总线接口缓冲器103的总线主控器。作为对该保持信号的响应,CPU 101和总线接口缓冲器103向DMA控制器106返回保持确认信号,以便DMA控制器106开始DMA传送(S301)。而且,DMA控制器106通过I/O105将要传送的数据传送到主存储器104,以便在主存储器104中写入数据(S302)。
这里,主存储器104中的数据写入状态类似于第三实施例中描述的写入状态,该主存储器104是FIFO存储器,且在图5中表示出了该写入状态。通过DMA传送方式传送数据的写操作从主存储器104中的地址A1开始,地址A2表示当数据写入操作继续时、在主存储器104的最后地址附近改变的写位置,并且当作为写入位置的地址A2达到最后地址时,从主存储器104中的起始地址写入数据。随着数据写入的继续进行,地址A2接近于开始数据写入的地址A1。顺便提及,如第三实施例中所描述的,当没有被读取的数据仍存在于主存储器104中时,在记录了数据的区域中可以不必执行写操作,以便直到读操作后才执行写操作。例如,在DMA传送开始时,如图5所示在地址A1和地址A4之间的区域中写入数据时,通过DMA传送写入数据的区域是从地址A1至主存储器104的最后地址的区域,并且该区域还是从主存储器104的起始地址至地址A4的区域。顺便提及,如随后所述,当从CPU 101读取数据被中断时,或在DMA传送过程中同时执行从CPU101读取数据的操作,地址A4被更新。
尽管通过DMA传送方式传送的所有数据被连续地写入主存储器104,当所有通过DMA传送方式传送的数据被完全传送时(S303),或当通过DMA传送方式传送到主存储器104的数据量达到主存储器104的可写容量时(S304),清除控制装置109通过控制清除装置108,对高速缓冲存储器102中没有被清除的数据执行清除,上述数据与通过DMA传送重写到主存储器104中的数据相对应(S305)。然后DMA控制器106完成DMA传送,并通知CPU 101和总线接口缓冲器103DMA传送完成(S306)。顺便提及,在该阶段可以不执行S305中高速缓冲存储器102的数据清除进程;并且当在S306中的DMA传送完成之后,来自CPU 101数据访问产生时,也可以清除高速缓冲存储器102中的数据。此外,当在S304中通过DMA传送方式传送到主存储器的数据量达到主存储器的可写容量时,该进程移到S306中的DMA传送完成,且在CPU 101执行对主存储器104的数据访问之后也可以执行控制,以便立即重新开始DMA传送。
下面将描述在S304中对传送到主存储器104的数据量达到主存储器104的可写容量进行判断的进程。该进程是一种根据通过DMA传送方式传送的所有数据已写入主存储器104的可记录区域,而决定不能执行主存储器104中写入数据操作的进程。下面将详细描述用于检测不能再次执行在主存储器104中写入数据的决定装置。
下面参考图10,描述DMA传送通过不能将数据写入主存储器104的进程把数据写入主存储器104的过程。首先,主存储器104是FIFO存储器,在从主存储器104的地址A4到地址A1的区域中不存在被读取的数据的状态下,DMA传送开始,且从主存储器104中的地址A1开始数据写入。当该数据被写入时,表示主存储器104中数据写入位置的地址A2达到主存储器104的最后地址。地址A2达到主存储器104的最后地址意味着通过DMA传送方式传送的数据已通过主存储器104中的最后地址写入地址A1的区域,以便从主存储器104中的起始地址开始进行通过DMA传送方式传送的数据的写操作。换言之,当达到主存储器104的最后地址时,地址A2移到主存储器104的起始地址,并接近于地址A4。当DMA传送继续进行且地址A2达到地址A4时,可以肯定的是传送到主存储器104的数据量达到主存储器104的可写容量。为了控制DMA传送,通过DMA控制器106通知这些地址A1、A2以及A4,且由地址控制装置107控制。而且,为了检测地址A2达到地址A4,可通过清除控制装置109检测地址A2=地址A4,或检测DMA传送在主存储器中写入数据的地址A1和地址A2之间的差异与DMA传送开始之前当前写入主存储器104中的数据量一致。顺便提及,当CPU 101请求访问主存储器和读取主存储器104中的数据时,地址A4改变,下面将对该点进行描述。
当DMA传送继续(S303,S304)并且在此期间产生来自CPU 101的数据访问命令(S307)时,CPU 101向DMA控制器106发送保持信号,并且DMA控制器106根据该保持信号中断DMA传送。顺便提及,对于该CPU 101的中断,DMA控制器106可能会在不中断DMA传送的情况下不批准CPU101的中断。根据CPU 101的读进程和DMA传送进程之间的优先级,具有较高优先级的进程将被执行。当DMA传送被中断时,对通过DMA传送在主存储器104中重写的数据量和设定于清除控制装置109的阈值进行比较(S309),且如果重写数据量不超过阈值,那么CPU 101将不会使用高速缓冲存储器102执行数据访问,而是仅对主存储器104执行数据访问(S310)。如果重写数据量不小于该阈值,那么CPU 101清除高速缓冲存储器102中没有清除的数据,上述数据与通过DMA传送重写到主存储器104中的数据相对应(S311)。顺便提及,S210中的清除进程可以是仅清除与CPU 101读取的主存储器中数据地址相对应的高速缓冲存储器102中的数据的进程。当执行高速缓冲存储器102中的数据清除时,CPU 101使用高速缓冲存储器102对主存储器104执行数据访问(S312)。根据该设定阈值和DMA传送写入主存储器104中的数据量之间的比较结果,CPU 101决定是否使用高速缓冲存储器102进行访问,从而可以减小***的进程数目。换言之,如果通过DMA传送的数据量不大,则仅对主存储器104执行的数据访问、而不执行高速缓冲存储器102中的数据清除来提高处理速度。根据使用了该高速缓冲存储器102的***的应用、主存储器104的容量、DMA传送方式传送的数据量以及CPU 101的数据访问频率等,该阈值可以自动地或被用户调整成最佳值,或在设计阶段就确定下来。当在S310或S311中CPU 101完成数据访问时,CPU 101向DMA控制器106发送保持释放信号,DMA控制器106再次开始DMA传送控制(S313)。
顺便提及,当根据来自CPU 101的数据访问从主存储器104读取数据时,主存储器中写入数据的区域发生改变,以至图5中主存储器104中的地址A4改变。此外,当DMA传送重新开始且在主存储器104重新开始写入数据时,作为写开始位置的地址A1也会发生改变。地址控制装置107经过用于控制DMA传送的DMA控制器106的通知,对这些改变的地址A1和A4进行控制。
顺便提及,关于高速缓冲存储器102中的数据清除进程,如果在高速缓冲存储器102中不存在与通过DMA传送重写到主存储器104中数据相对应的数据,那么也可以通过清除控制装置109执行切换控制,以便可以不执行清除进程。
此外,即使在产生本实施例所述来自CPU 101的数据访问命令时,通过DMA控制器106控制的DMA传送进程和通过CPU 101控制的访问进程不一定相排斥,而是可以存在于同一***中,该***能够同时执行从I/O 105到主存储器104的DMA传送以及从CPU 101到主存储器104的数据访问。然而DMA控制器106会继续DMA传送而非中断该进程,并且CPU 101能够对主存储器104执行数据访问。
此外,对于已通过DMA传送进程传送到主存储器104、但是已由CPU101访问的数据,它们可以通过DMA传送进行重写,并且对于写入了不必要数据的地址,也可以通过DMA传送在该地址中重写数据。换言之,S304中主存储器104的容量表示除了不能重写的数据占据的容量之外的部分。
现有技术为每个DMA传送数据单元执行高速缓冲存储器中数据的清除进程,但是在本实施例中,高速缓冲存储器中的数据清除进程是根据CPU产生的读请求来执行的,从而可以减小清除进程的进程数目。例如,在DMA传送数据单元是一个字符的***中,虽然通常为每一个字符都执行高速缓冲存储器中的数据清除,但是在本发明执行DMA传送的同时,如果从CPU产生的数据访问的频率是DMA传送数据量大约为十个字节一次,那么清除进程可以减小到1/10。
(第五实施例)
接下来,将描述本发明的第五实施例。第一至第四实施例描述的高速缓冲存储器***可以用于各种装置。例如,本发明的高速缓冲存储器***可以被引入数字TV中的数字广播接收器。下面,将描述作为第五实施例的数字广播接收器中本发明的控制方法。
在数字广播中,数据广播需要的数据、电子程序指南(EPG)等是基于诸如MPEG2***传送流的传送流数据段(section)数据结构进行传送的。从接收的传送流中提取数据段并将该数据段存储到缓冲器的过程是在数字广播接收器中执行的。
图11简要地示出了数字广播接收器结构的框图。双箭头表示数据流。参考数字111表示CPU;参考数字113表示高速缓冲存储器;参考数字112表示可访问CPU的主存储器;参考数字114表示调谐器,该调谐器进行频率选择,以发现接收电波当中的目标载体且进一步执行解调和纠错。该调协器从提供的载体中选择一个TS。参考数字115表示传送流分离器,它包括同步装置1101、PID滤波器1102、反扰频器1103、数据段滤波器1104以及DMA 1105。同步装置1101负责检测来自于提供的TS的开始数据,并进行数据提取及提供TSP。PID滤波器1102从同步装置1101提供的TSP中的PID中提取需要的TSP,并抛弃不需要的TSP。如果PID滤波器1102提供的TSP已被扰频,那么反扰频器1103对数据释放扰频(去扰频),然后提供与TS 1102相同的TS。当数据没有被扰频时,它提供的TS与原有的TS 1102相同。数据段滤波器1104从提供的TSP当中提取数据段,对数据段的头部进行滤波,仅仅将需要的数据段作为TS1103并且抛弃不需要的数据段。参考数字1105表示DMA,缓冲存储器112中的数据段数据。
参考数字116表示AV解码器,对传送流分离器115提供的视频和音频执行PES复杂处理,以输出视频。参考数字117表示数据广播显示器,使用存储器112中缓冲的数据段数据提供数据广播。参考数字117是EPG显示器,使用存储器112中缓冲的数据段数据提供EPG。
在本实施例中,参考第一至第四实施例,将描述对分成不同长度的一组数据进行DMA传送的情况,例如该数据段的缓冲过程。
例如,在第一和第三实施例的控制方法中,当在图2所示控制流图的S202中通过DMA传送在主存储器104中写入数据时,形成数据段的数据被写入主存储器104中。此外,在每个数据段都执行S209中CPU 101的数据访问。此外,清除控制装置109为主存储器中写入数据量设置的任意阈值可以被设为一个数据段。换言之,任意阈值被设置作为一个数据段,以便每当在S211中通过DMA传送在主存储器104中写入的数据达到一个数据段时,对应于主存储器104中一个数据段数据的高速缓冲存储器102中的数据可以被清除。此外,该阈值不仅可以被设为一个数据段的大小而且还可以被设为几个任意数据段大小。在那种情况下,可以一并清除高速缓冲存储器102中与DMA在主存储器104中写入的多个数据段相对应的数据,由此进一步减少清除进程。此外,在图2中的S208中,对通过DMA传送在主存储器104中写入的数据段尺寸和设定阈值之间进行比较。此外,当一个数据段已被传送到主存储器104时,也可以控制图2的S206中CPU 101产生的数据访问命令。在该情况下,一个数据段的数据量在S208中与所设置的任意阈值进行比较,并且如果不大于阈值,或不小于阈值,那么可以分别继续进行S209或S210。此外,在图2的S211中,当阈值被设置作为主存储器的最后地址时,可能存在主存储器中写入的数据段达到主存储器的最后地址、然后从主存储器的起始地址写入的情况。在此情况下,高速缓冲存储器中与从起始地址写入的数据部分相对应的数据也会被清除。
此外,例如在第二和第四实施例的控制方法中,当在图3所示控制流程图的S302中通过DMA传送在主存储器104中写入数据时,形成数据段的数据被写入主存储器中。此外,在S304中判断通过DMA传送方式传送到主存储器104的数据量是否达到主存储器104的可写容量的过程中,如表示主存储器104地址状态的图7所示,尽管当地址C1被设置为可记录区的边界时,但是由于地址A8不超过地址C1,则数据可以被写入到数据段1处,因此当数据段2被写入主存储器104时,地址A9表示写操作超过阈值地址C1之后的数据位置,以便数据不能被写入其中。鉴于这种情况,DMA控制器106控制通过DMA传送方式传送的数据段数据量;当通过DMA传送在主存储器104中写入超过主存储器104可写容量的数据段2时,预先断定主存储器104中的写数据量将超过主存储器104的可写容量;并且决定在S305中执行高速缓冲存储器102中与通过DMA传送在主存储器104中写入数据相对应的数据清除进程,或者在S306中执行DMA传送完成进程,而不执行S305中的清除进程,数据读请求至CPU 101等。
根据具有上述特征的本发明,在数据段缓冲时需要的清除进程的方法可根据情况进行切换,从而可以减小以前需要的清除时间。因此,数据段缓冲的处理时间可以减少,以便能够配置可以显示EPG和以高速广播数据的数字广播接收***。
顺便提及,在该实施例中,尽管采取MPEG2***传送流作为例子描述了每个数据段的数据处理,但是该实施例的控制方法的应用不局限于此,当管理诸如数据段的数据组时也是可行的。
顺便提及,在如上所述的第一至第五实施例中,将描述使用图6所示的主存储器中的地址状态对每个被称作为高速缓冲数据块的预定数据块都执行由CPU 101对主存储器104中写入的数据进行访问的情况。
通常,当CPU 101访问主存储器104中的数据时,在具有预定宽度的被称作为高速缓冲数据块的每个数据块中都执行访问操作,且在高速缓冲存储器102中存储被访问的高速缓冲数据块。例如,在图6中,当访问当前记录于地址A5至地址6中的整个数据1时,将访问四个高速缓冲数据块B1至B2、B2至B3、B3至B4以及B4至B5。此时,在高速缓冲存储器中存储高速缓冲块B1至B2、B2至B3、B3至B4以及B4至B5的数据。此外,例如当访问数据1的地址B4和地址A6之间的部分数据时,访问高速缓冲数据块B4至B5。此外,高速缓冲数据块B4至B5的数据存储于高速缓冲存储器102中。下面,使用图4中的流程图,以及图6中的主存储器104,描述当由CPU 101对主存储器104中数据1的地址B4至地址A5区域的数据部分产生访问请求时的操作;以及此后数据2被进一步写入与数据1邻近的地址A6至地址A7中时的操作,此后CPU对包括于高速缓冲数据块B4至B5中的数据2的地址A6至B5的区域的数据部分产生访问请求。
首先,通过DMA传送在主存储器中的地址A5至地址A6中写入数据1(S401)。接下来,由CPU 101产生到数据1中地址B1至地址A6的访问请求(S402)。然后CPU 101从主存储器104读取高速缓冲存储器数据块B1至B5的数据,且高速缓冲存储器数据块B1至B5的数据被存储在高速缓冲存储器102中(S403)。接下来,通过DMA传送在主存储器中的A6至A7中写入数据2(S404)。在主存储器104中写入数据2之后,CPU 101对数据2中地址A6至B5的数据部分产生访问请求(S405)。因此,在S403的进程中在高速缓冲存储器102中存储的主存储器104中地址A6至B5的数据和在S404的进程重写的主存储器104中地址A6至B5的数据之间产生不一致性,为了防止该不一致性,清除高速缓冲存储器102中与主存储器104的高速缓冲块B4至B5相对应的数据(S406)。然后CPU 101从主存储器104中读取高速缓冲存储器数据块B4至B5的数据,且在高速缓冲存储器102中重新存储高速缓冲块B4至B5的数据(S407)。顺便提及,在通过DMA传送在高速缓冲存储器102中写入数据1之前,在主存储器104的地址B4至A6中写入的数据被存储在高速缓冲存储器102中的情况下,CPU 101在S403中读取高速缓冲数据块B4至B5、以及将高速缓冲数据块B4至B5的数据存储在高速缓冲存储器102中之前,当在S402中由CPU 101对主存储器104中地址B4至A6的数据产生数据访问请求时,清除高速缓冲存储器102中与主存储器104的高速缓冲块B4至B5相对应的数据。此外,即使在数据1和数据2互不相邻的情况下,如果数据1和数据2具有包括在一个高速缓冲数据块中的数据部分,那么上述进程也是有效的。
根据上述进程,当作为从CPU读取目标的数据部分与已被读取的数据共享高速缓冲数据块时,对高速缓冲存储器中与共享高速缓冲块相对应的数据执行清除进程,以便当CPU读取每个高速缓冲数据块的数据时,也可以防止主存储器中的数据和对应于主存储器数据地址的高速缓冲存储器中的数据之间的不一致性。
顺便提及,不仅当数据1和数据2互相邻近时,而且当数据1和数据2的部分共享高速缓冲存储器时,上述进程也有效。换言之,当主存储器是诸如环形缓冲器的FIFO存储器时,如图6所示邻近地写入数据1和数据2,以使图4中流程图所示的控制有效;并且即使当主存储器是除了环形缓冲器的FIFO存储器时,或当数据1和数据2被邻近地写入时,或当数据1和数据2互不相邻、但是它们的一部分共享高速缓冲数据块时,图4中流程图所示的控制有效。
此外,在上述第一至第五实施例的论述中,尽管描述了通过CPU和DMA控制器的DMA传送控制独立地执行数据访问的例子,但是它们也可以相互控制。具体地,通过DMA传送在主存储器中存储数据的过程中,也可以通过命令DMA控制器传送CPU需要的数据,以便通过DMA传送方式传送的数据量可不超过主存储器的可写容量。另外,当DMA传送在主存储器中写入的数据达到主存储器的可写容量时执行CPU的读取控制也是可以的。通过采用这些控制方法,可以除去表示第二和第三实施例控制流程图的图3中诸如S304的步骤,并且可使S307的步骤转变为一个时间选择,以便本发明的高速缓冲存储器***可以用更少的步骤进行高速操作。
此外,本发明在上述第一至第五实施例中所使用的高速缓冲存储器的结构不必限于图1所示的结构,清除装置、地址控制装置/清除控制装置等也可以集成为一个控制器,且这些装置也可以包括DMA控制器或CPU的部分功能。此外,尽管对DMA传送通过I/O将外部信源传送的数据传送到主存储器进行了描述,但是该数据还可以不通过I/O而来自于其他存储器等。
Claims (27)
1、一种存储***控制方法,所述***包括中央处理单元、高速缓冲存储器和主存储器,并且对所述主存储器具有DMA传送功能,其特征在于,
当传送到所述主存储器的数据量达到预定阈值时,对所述高速缓冲存储器中与通过DMA传送写入所述主存储器中的数据的地址相对应的数据执行清除。
2、根据权利要求1所述的控制方法,其中存储***控制方法的特征在于:
在传送到所述主存储器的数据量达到预定阈值之前,当所述中央处理单元对通过DMA传送在所述主存储器中写入的数据产生访问请求时,对所述高速缓冲存储器中与通过所述DMA传送写入到所述主存储器中数据的地址相对应的数据执行清除。
3、根据权利要求1所述的控制方法,其中存储***控制方法的特征在于:
在传送到所述主存储器的数据量达到预定阈值之前,当通过所述DMA传送在所述主存储器中写入了所有的数据时,对所述高速缓冲存储器中与通过DMA传送写入到所述主存储器中数据的地址相对应的所有数据执行清除。
4、根据权利要求2的控制方法,其中存储***控制方法的特征在于:
在传送到所述主存储器的数据量达到预定阈值之前、并且在所述中央处理单元对通过DMA传送在所述主存储器中写入的数据产生访问请求之前,当应该通过DMA传送在所述主存储器中写入的所有数据已完成传送时,对所述高速缓冲存储器中与通过DMA传送写入到所述主存储器中数据的地址相对应的所有数据执行清除。
5、根据权利要求1所述的控制方法,进一步包括:
当传送到所述主存储器的数据量达到主存储器的可用记录容量时,停止DMA传送。
6、根据权利要求5所述的存储***控制方法,其特征在于,
所述主存储器是环形缓冲器的FIFO存储器,并且通过DMA传送方式传送到所述主存储器的数据量达到所述主存储器的可用记录容量的情况是传送到所述主存储器的数据达到所述主存储器中当前写入数据的起始地址的情况。
7、根据权利要求1所述的存储***控制方法,其特征在于,所述主存储器是环形缓冲器的FIFO存储器。
8、根据权利要求1所述的存储***控制方法,其特征在于,
所述主存储器是环形缓冲器的FIFO存储器,并且通过DMA传送方式传送到所述主存储器的数据量达到所述预定阈值的情况是所述主存储器的数据写位置达到所述主存储器最后地址的情况。
9、根据权利要求1所述的存储***控制方法,其特征在于,
所述主存储器是环形缓冲器的FIFO存储器,并且通过DMA传送方式传送到所述主存储器的数据量达到所述预定阈值的情况是所述主存储器的数据写位置从所述主存储器的最后地址移到所述主存储器的起始地址的情况。
10、根据权利要求1所述的存储***控制方法,其特征在于,
所述主存储器是环形缓冲器的FIFO存储器,并且通过DMA传送方式传送到所述主存储器的数据量达到所述预定阈值的情况是所述主存储器的数据写位置达到所述主存储器中记录的数据开始地址且不从该数据开始地址读取的情况。
11、根据权利要求1所述的存储***控制方法,其特征在于,
所述主存储器是环形缓冲器的FIFO存储器,并且通过DMA传送方式传送到所述主存储器的数据量达到所述预定阈值的情况是所述主存储器的数据写位置达到通过DMA传送在所述主存储器中写入数据的起始地址的情况。
12、根据权利要求1所述的存储***控制方法,其特征在于,
通过DMA传送方式传送到所述主存储器的数据由一个数据组或多个数据组构成。
13、根据权利要求1所述的存储***控制方法,其特征在于,
通过DMA传送方式传送到所述主存储器的数据由一个数据组或多个数据组构成,并且所述预定阈值是所述数据组的数据量。
14、根据权利要求1所述的存储***控制方法,其特征在于,
通过DMA传送方式传送到所述主存储器的数据由一个数据组或多个数据组构成,并且所述预定阈值是任意个所述数据组的数据量。
15、根据权利要求1所述的存储***控制方法,其特征在于,
通过DMA传送方式传送到所述主存储器的数据具有数据段格式。
16、根据权利要求1所述的存储***控制方法,其特征在于,
通过DMA传送方式传送到所述主存储器的数据具有数据段格式,并且所述预定阈值是一个数据段的数据量。
17、根据权利要求1所述的存储***控制方法,其特征在于,
通过DMA传送方式传送到所述主存储器的数据具有数据段格式,并且所述预定阈值是任意个数据段的数据量。
18、根据权利要求2所述的存储***控制方法,其特征在于,
所述中央处理单元读取具有预定地址宽度的一个或多个数据块,该数据块包括作为访问请求目的的所述主存储器中的数据,并且在所述中央处理单元读取所述一个或多个数据块之前,对高速缓冲存储器中与所述一个或多个数据块区域相对应的数据执行清除。
19、根据权利要求18所述的存储***控制方法,其中所述的数据块是高速缓冲存储数据块。
20、一种存储***控制方法,所述***包括中央处理单元、高速缓冲存储器和主存储器、并且对主存储器具有DMA传送功能,其特征在于,该方法为:
当所述中央处理单元对通过DMA传送写入到所述主存储器中的数据产生访问请求时,对所述高速缓冲存储器中与通过所述DMA传送写入到所述主存储器中数据的地址相对应的数据执行清除。
21、根据权利要求20所述的控制方法,其中存储***控制方法的特征在于:
当所述中央处理单元对通过DMA传送已写入到所述主存储器中的数据产生访问请求时,如果通过DMA传送在所述主存储器中写入的数据量不超过预定阈值,那么所述高速缓冲存储器中的数据不被清除,并且所述中央处理单元在不使用所述高速缓冲存储器的情况下,读取通过DMA传送在所述主存储器中写入的数据。
22、一种存储***控制方法,所述***包括中央处理单元、高速缓冲存储器和主存储器、并且对主存储器具有DMA传送功能,其特征在于,该方法为:
当所述中央处理单元对通过DMA传送写入到所述主存储器中的数据产生访问请求时,对所述高速缓冲存储器中与所述中央处理单元产生访问请求的主存储器中数据的地址所对应的数据执行清除。
23、一种存储***控制方法,所述***包括中央处理单元、高速缓冲存储器和主存储器、并且对主存储器具有DMA传送功能,其特征在于,该方法为:
当DMA传送方式传送到所述主存储器的数据量达到所述主存储器的可用的记录容量时,对所述高速缓冲存储器中与通过DMA传送写入到所述主存储器中数据的地址相对应的数据执行清除。
24、根据权利要求23所述的控制方法,其中存储***控制方法的特征在于:
对所述高速缓冲存储器中与通过DMA传送写入到所述主存储器中数据的地址相对应的数据执行清除,并且所述中央处理单元读取通过DMA传送写入到所述主存储器中的数据。
25、根据权利要求24所述的存储***控制方法,其中存储***控制方法的特征在于:
如果通过DMA传送写入到所述主存储器中的数据量不超过预定阈值,那么所述高速缓冲存储器中的数据不被清除,并且所述中央处理单元在不使用所述高速缓冲存储器的情况下,读取通过DMA传送写入到所述主存储器中的数据。
26、一种存储***控制方法,所述***包括中央处理单元、高速缓冲存储器和主存储器、并且对主存储器具有DMA传送功能,其中所述中央处理单元对所述主存储器执行每个预定数据块的数据读取,其特征在于包括以下步骤:
所述中央处理单元对通过DMA传送写入到所述主存储器中的数据产生访问请求,
清除所述高速缓冲存储器中与所述预定数据块区域相对应的所有数据,所述预定数据块包括所述主存储器中由所述中央处理单元产生的访问请求对应的数据,以及
所述中央处理单元执行读取,用于读取所述预定数据块的所有数据,该预定数据块包括所述主存储器中的所述中央处理单元产生了访问请求的数据。
27、一种存储***控制方法,所述***包括中央处理单元、高速缓冲存储器和主存储器、并且对主存储器具有DMA传送功能,其中所述中央处理单元对所述主存储器按照每个预定数据块进行数据读取,其特征在于包括以下步骤:
第一读取,用于所述中央处理单元读取一个或多个数据块中的数据,该数据块包括当前记录于所述主存储器中的第一数据,
存储,用于在所述高速缓冲存储器中存储所述第一数据,
写入,用于在所述存储步骤之后通过DMA传送在所述主存储器中写入第二数据,以及第二读取,用于所述中央处理单元从一个或多个数据块中读取所述第二数据,
其中当存在一个数据块,该数据块包括所述第二读取中所述一个或多个数据块中的部分或所有所述第一数据时,对所述高速缓冲存储器中与所述第二读取步骤中已被读取的所述主存储器中的数据块相对应的所有地址执行清除。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003424152 | 2003-12-22 | ||
JP2003424152 | 2003-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1637723A CN1637723A (zh) | 2005-07-13 |
CN1332319C true CN1332319C (zh) | 2007-08-15 |
Family
ID=34675386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100971312A Expired - Fee Related CN1332319C (zh) | 2003-12-22 | 2004-12-07 | 存储***控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050138232A1 (zh) |
CN (1) | CN1332319C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107250995A (zh) * | 2014-11-25 | 2017-10-13 | 领特投资两合有限公司 | 存储器管理设备 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7886093B1 (en) * | 2003-07-31 | 2011-02-08 | Hewlett-Packard Development Company, L.P. | Electronic device network supporting compression and decompression in electronic devices |
US7904895B1 (en) | 2004-04-21 | 2011-03-08 | Hewlett-Packard Develpment Company, L.P. | Firmware update in electronic devices employing update agent in a flash memory card |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
EP2025095A2 (en) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Device management in a network |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE |
US9390010B2 (en) * | 2012-12-14 | 2016-07-12 | Intel Corporation | Cache management |
JP6119533B2 (ja) * | 2013-09-27 | 2017-04-26 | 富士通株式会社 | ストレージ装置,ステージング制御方法及びステージング制御プログラム |
US9904626B2 (en) | 2014-08-29 | 2018-02-27 | Samsung Electronics Co., Ltd. | Semiconductor device, semiconductor system and system on chip |
CN105929851B (zh) * | 2016-04-07 | 2019-08-09 | 广州盈可视电子科技有限公司 | 一种采用摇杆设备控制云台方法和装置 |
KR102540765B1 (ko) * | 2016-09-07 | 2023-06-08 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR102411290B1 (ko) | 2017-10-24 | 2022-06-22 | 삼성전자주식회사 | 선택적으로 퍼지 동작을 수행하도록 구성되는 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템 |
US11288001B1 (en) * | 2020-12-04 | 2022-03-29 | International Business Machines Corporation | Self-clearing data move assist (DMA) engine |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555398A (en) * | 1994-04-15 | 1996-09-10 | Intel Corporation | Write back cache coherency module for systems with a write through cache supporting bus |
US5768557A (en) * | 1993-09-30 | 1998-06-16 | Intel Corporation | Low cost writethrough cache coherency apparatus and method for computer systems without a cache suppporting bus |
US5893153A (en) * | 1996-08-02 | 1999-04-06 | Sun Microsystems, Inc. | Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control |
US6345320B1 (en) * | 1998-03-20 | 2002-02-05 | Fujitsu Limited | DMA address buffer and cache-memory control system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4504902A (en) * | 1982-03-25 | 1985-03-12 | At&T Bell Laboratories | Cache arrangement for direct memory access block transfer |
JPH0348951A (ja) * | 1989-07-18 | 1991-03-01 | Fujitsu Ltd | アドレスモニタ装置 |
US5749092A (en) * | 1993-03-18 | 1998-05-05 | Intel Corporation | Method and apparatus for using a direct memory access unit and a data cache unit in a microprocessor |
US5506967A (en) * | 1993-06-15 | 1996-04-09 | Unisys Corporation | Storage queue with adjustable level thresholds for cache invalidation systems in cache oriented computer architectures |
US5623633A (en) * | 1993-07-27 | 1997-04-22 | Dell Usa, L.P. | Cache-based computer system employing a snoop control circuit with write-back suppression |
US5581704A (en) * | 1993-12-06 | 1996-12-03 | Panasonic Technologies, Inc. | System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client |
US6734867B1 (en) * | 2000-06-28 | 2004-05-11 | Micron Technology, Inc. | Cache invalidation method and apparatus for a graphics processing system |
GB2371641B (en) * | 2001-01-27 | 2004-10-06 | Mitel Semiconductor Ltd | Direct memory access controller for circular buffers |
-
2004
- 2004-12-07 CN CNB2004100971312A patent/CN1332319C/zh not_active Expired - Fee Related
- 2004-12-17 US US11/013,887 patent/US20050138232A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768557A (en) * | 1993-09-30 | 1998-06-16 | Intel Corporation | Low cost writethrough cache coherency apparatus and method for computer systems without a cache suppporting bus |
US5555398A (en) * | 1994-04-15 | 1996-09-10 | Intel Corporation | Write back cache coherency module for systems with a write through cache supporting bus |
US5893153A (en) * | 1996-08-02 | 1999-04-06 | Sun Microsystems, Inc. | Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control |
US6345320B1 (en) * | 1998-03-20 | 2002-02-05 | Fujitsu Limited | DMA address buffer and cache-memory control system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107250995A (zh) * | 2014-11-25 | 2017-10-13 | 领特投资两合有限公司 | 存储器管理设备 |
CN107250995B (zh) * | 2014-11-25 | 2021-11-16 | 领特投资两合有限公司 | 存储器管理设备 |
Also Published As
Publication number | Publication date |
---|---|
CN1637723A (zh) | 2005-07-13 |
US20050138232A1 (en) | 2005-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1332319C (zh) | 存储***控制方法 | |
US6384832B1 (en) | Image processing apparatus and image processing system using the apparatus | |
WO2010134300A1 (ja) | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム | |
JP5769093B2 (ja) | ダイレクトメモリアクセスコントローラ、その方法およびコンピュータプログラム | |
US20060129708A1 (en) | Information processing apparatus and method and recording medium | |
US8554962B2 (en) | Data transfer control device and data transfer control method | |
KR101459200B1 (ko) | 전송 제어장치, 메모리 제어장치, 및 상기 전송 제어장치를 구비한 plc | |
US6457106B1 (en) | Shared memory control system and shared memory control method | |
JP2005071234A (ja) | 電子機器、及び、かかる電子機器におけるシステムの起動方法 | |
JP2005501329A (ja) | シーケンシャルおよび非シーケンシャルブロックアクセスを有するバッファ・システム | |
JP4536189B2 (ja) | Dma転送装置及びdma転送システム | |
US11314645B1 (en) | Cache stash relay | |
JP2005209163A (ja) | メモリシステム制御方法 | |
JP5623150B2 (ja) | 電子機器及びその制御方法 | |
US8929723B2 (en) | Recording apparatus, imaging and recording apparatus, recording method, and program | |
KR100950356B1 (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 | |
JP4335327B2 (ja) | 調停装置および方法 | |
CN110990308A (zh) | 直接存储器存取 | |
CN101460932A (zh) | 用于嵌入式设备远程解碎片化的设备 | |
CN100587676C (zh) | 探测标记的控制装置 | |
JP2005157717A (ja) | データ転送方法及びその装置 | |
CN106507182A (zh) | 基于网络电视的数据缓冲方法及网络电视 | |
JP2006048227A (ja) | メモリ装置、メモリ装置の制御方法およびデータ処理システム | |
US6381657B2 (en) | Sharing list for multi-node DMA write operations | |
JP2005078255A (ja) | データ処理装置、データ処理方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070815 Termination date: 20111207 |