从共享缓存读取或者向其写入数据单元的方法和装置制造方法及图纸

技术编号:2865654 阅读:244 留言:0更新日期:2012-04-11 18:40
一个V操作不因为FIFO中的每一个数据单元或存储空间变为可用而自动执行,或者一个P操作不因为对FIFO中每个数据单元或存储空间的每一个请求而自动执行,而是一个V操作在m个数据单元或m个存储空间在FIFO中已经变为可用后执行,或者一个P操作在对m个数据单元请求或对m个存储空间请求已经被接收之后执行。通过使用这些P操作,即突发地而不是自动地执行所述请求操作,就会出现所述FIFO缓冲中可用的数据单元或存储空间比消费者进程,如读或写进程需要的或要求的要少的情况。P操作在请求m个数据单元或请求对于m个数据单元的m个存储空间时执行。P操作只有当FIFO缓存中没有可用数据单元或存储空间时,即信号计数器为零时被完全阻塞。但是,当FIFO缓存中有可用数据单元或存储空间时,即信号计数器大于零时,可用数据单元的值或数据单元的存储空间的值即信号计数器的计数值,和P请求操作的m值作比较,选择其中的最小值。如果所述FIFO缓存中可用数据单元或存储空间比所述P操作请求的多,所请求的数据单元的值m或数据单元的存储空间的值被选为所说信号计数器实际可用的减少量。但是,如果所述FIFO缓存中可用数据单元或存储空间比所述P操作请求的少,可用数据单元的值或者数据单元的存储空间的值被选为实际可用的减少量dec。所说信号计数器的实际减少量dec最终会被输出。根据这个实际减少量dec,dec个数据单元可以从所述FIFO缓存中输出,或dec个存储空间对于dec个数据单元是可用的,这样dec个数据单元可以被输入到FIFO缓存中。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术叙述了控制访问共享FIFO缓存的信号计数器的P信号;从/向共享FIFO缓存读取/写入大量数据单元的一种读取方法和一种写入方法;一个减少控制访问共享FIFO缓存的信号计数器的P信号操作单元;一种从共享FIFO缓存读取大量数据单元的设备,以及向共享FIFO缓存写入大量数据单元的设备;一个可以并发处理被一个读任务和一个写任务访问的共享FIFO缓存计算机系统和对应的计算机程序产品。
技术介绍
在计算机系统中,处理器的协调是一个重要的问题。在一个集中式系统中,信号通常被用作解决多进程协调的问题,比如互斥和管理可重用,以及可消耗资源。在并行处理中互斥问题是一个重要的问题。多进程通常在一个或多个处理器中并发地执行。处理器通常共享诸如存储设备、输入/输出设备和内存这些资源。当两个或多个进程需要操作同一数据和内存时,需要提供一种机制以强制互斥访问资源。这一机制要求允许在每一次访问资源时只有一个进程。通常,所谓生产者-消费者问题出现在并发处理中。生产者-消费者问题的基础是数据的生产者必须有存储所述数据直到消费者准备好的装置,并且消费者不必去尝试消耗不在那里的数据。生产者仅在消费者准备要消费时才产生数据显然是不切实际的。如果任何一个进程早到达,那么需要等待。但是,如果程序执行期间消费者或生产者的数据率变化,或者消费者或生产者的数据率不同,数据需要被缓存。缓存是生产者和消费者都要访问的一段内存。如果缓存足够大以能够处理数据产生的峰值,生产者和消费者就都能维持一个稳定的高平均数据传输速率,而不用担心因偶然峰值所产生的故障。当并发进程被链接成生产者-消费者对,并且可以共享各部分都可以被每个进程访问的有限缓存时,缓慢的消费者可能在很大程度上延缓整个系统。在某些情况下,一个消费者被阻塞,相关生产者产生的消息侵入整个缓存,从而阻塞整个系统。为了避免这种行为,通常为每个生产者-消费者对能正常工作保留足够数量的份额,并将剩余的缓存用于吸收不同生产者-消费者对的生产峰值。一般信号被用作协调访问共享资源的同步机制。信号有一个相关值,通常这个值被设为信号管理的资源数。信号被进程获得一次,信号值减去1。当信号值达到0之后,新的获取该信号的尝试将被阻塞,直到该信号被一个进程释放,并对信号值加1。信号是一个只允许P和V操作使用的非负整数变量。一个V操作用于生产者进程,以指明它已经生产了为消费者进程所使用的信息。一个P操作用于消费者进程需要生产者进程产生信息的时候。使用P操作进入互斥而使用V操作退出互斥。信号对应于一个计数器,其中V操作增加该计数器,而P操作减少该计数器,但在该计数器为0时阻塞并且一直阻塞到该计数器变为大于0。信号以及P和V操作的图形化解释可以在US 4,928,222中找到。
技术实现思路
本专利技术的一个目的就是要提供一种机制来控制访问共享FIFO缓存,以提高并发处理环境中的操作。本专利技术的目的要解决根据权利要求1,控制访问共享FIFO缓存的信号计数器的P信号操作;根据权利要求2,从该共享FIFO缓存读取大量数据单元的一种方法,根据权利要求4,向该共享FIFO缓存写入大量数据单元的一种方法;根据权利要求6,一个递减信号计数器的P信号操作单元;根据权利要求7,从共享FIFO缓存读取大量数据单元的一种设备;根据权利要求8,向该共享FIFO缓存写入大量数据单元的一种设备;根据权利要求9,并发处理能被读任务和写任务访问的共享FIFO缓存的计算机系统;根据权利要求10,计算机程序产品。本专利技术基于的基本思想是,不为FIFO中成为可用的数据单元或存储空间自动执行V操作,或不为FIFO中每个数据单元或存储空间的请求自动执行P操作,而是在m个数据单元或m个存储空间在FIFO中已经成为可用之后执行一个V操作,或在m个数据单元请求或m个存储空间请求已经被接收之后执行一个P操作。通过利用这些P操作,即突发地而不是自动地执行所述请求操作,会出现所述FIFO中可用的数据单元或存储空间比消费者进程如读或写进程需要的或要求的要少的情况。P操作在请求m个数据单元或为m个数据单元请求m个存储空间时执行。P操作一递减信号计数器-只有在FIFO缓存中没有可用数据单元或存储空间时,即信号计数器为零时被完全阻塞。但是,当FIFO缓存中有可用数据单元或存储空间时,即信号计数器大于零时,可用的数据单元的值或数据单元的存储空间的值,即信号计数器的计数值和P请求操作的m值作比较,选择所述两值中的最小值。如果所述FIFO缓存中可用数据单元或存储空间比所述P操作要求的多,所要求的数据单元或数据单元的存储空间的m值被选为所说信号计数器实际可用的减少量。但是,如果所述FIFO缓存中可用数据单元或存储空间比所述P操作要求的少,可用的数据单元或数据单元的存储空间的值被选为实际可用的减少量dec。所说信号计数器的实际减少量dec最终会被输出。根据这个实际减少量dec,dec个数据单元可以从所述FIFO缓存中输出,或dec个存储空间为dec个数据单元可用,这样dec个数据单元可以被输入到FIFO缓存中。本专利技术中执行P和V操作的优点在于多个P和V操作能被合并为一个操作,以减少高速缓存中相关性业务量,同时保证这些V和P操作不会被不必要的阻塞。本专利技术还解决了减少控制访问共享FIFO缓存的信号计数器的对应的P信号操作单元,利用该P信号操作单元实现上述的P信号操作。本专利技术更进一步解决了利用对控制访问所述共享FIFO缓存的信号计数器的P信号操作,从共享FIFO缓存读出大量数据单元的方法。当一个消费者任务要求获得P信号操作的允许,以从所述共享FIFO缓存中读取m个数据单元时,P信号操作按上面描述的执行,并输出一个可用的减少量dec。该可用的减少量dec表明dec个数据单元从所述FIFO缓存中读取。之后,dec个数据单元从该FIFO缓存中读出。当dec个数据单元从所述FIFO缓存中读取时,从第二计数器的计数值中减去可用的减少量dec。只要第二计数器的计数值m大于0,上述步骤就会一致重复下去。根据优选实施方案,在从所述FIFO缓存中读取dec个数据单元之后执行信号通知dec个数据单元的dec个存储空间是可用的。也就是说,表明FIFO中dec个存储空间可以被dec个数据单元使用的一个V操作被执行。本专利技术还更进一步解决了利用控制访问所述共享FIFO缓存的信号计数器的P信号操作,向共享FIFO缓存写入大量数据单元的方法。当一个生产者任务要求获得P信号操作的允许,以向所述共享FIFO缓存写入m个数据单元时,P信号操作按上面描述的执行,并输出一个可用的减少量dec。该可用的减少量dec表明所述FIFO缓存中有dec个数据单元的dec个存储空间可用。之后,dec个数据单元依照dec个存储空间写入FIFO缓存中。当dec个数据单元写入到所述FIFO缓存中时,从第二计数器的计数值中减去可用的减少量dec。只要第二计数器的计数值m大于0,上述步骤就会一致重复下去。根据优选的实施方案,在向所述FIFO缓存中写入dec个数据单元之后执行信号通知dec个数据单元是可用的。也就是说,表明该FIFO中dec个数据单元能够被读取的一个V操作被执行。本专利技术解决了对应的读和写设备,这些设备适合分别实现上述的读和写方法。本专利技术还解决了能并本文档来自技高网
...

【技术保护点】
用于控制访问共享FIFO缓存(1)的信号计数器(13)的P信号操作,包括的步骤有:b)接收消费者任务的一个对所述信号计数器(13)的计数值n减少m的请求,对所述信号计数器(13)的计数值n减少m的所述请求表明对来自所述FIFO缓存( 1)的m个数据单元的一个P请求,或对在所述FIFO缓存(1)中的对于m个数据单元的m个存储空间的一个P请求;c)如果所述信号计数器(13)的计数值n等于0,阻塞P请求操作;d)从所述信号计数器(13)的计数值n或请求减少量m 的值中减去所述信号计数器(13)的计数值n,这依赖于两个值中的最小值;并且e)输出在步骤d)中确定的所述最小值,作为可用的减少量dec。

【技术特征摘要】
EP 2001-11-13 01204331.11.用于控制访问共享FIFO缓存(1)的信号计数器(13)的p信号操作,包括的步骤有b)接收消费者任务的一个对所述信号计数器(13)的计数值n减少m的请求,对所述信号计数器(13)的计数值n减少m的所述请求表明对来自所述FIFO缓存(1)的m个数据单元的一个P请求,或对在所述FIFO缓存(1)中的对于m个数据单元的m个存储空间的一个P请求;c)如果所述信号计数器(13)的计数值n等于0,阻塞P请求操作;d)从所述信号计数器(13)的计数值n或请求减少量m的值中减去所述信号计数器(13)的计数值n,这依赖于两个值中的最小值;并且e)输出在步骤d)中确定的所述最小值,作为可用的减少量dec。2.通过使用用于控制访问共享FIFO缓存(1)的信号计数器(13)的P信号操作,和通过使用第一计数器(103),从共享FIFO缓存(1)中读取大量数据单元的方法,包括的步骤有a)一个消费者任务请求从所述P信号操作得到允许,以从所述FIFO缓存(1)中读取m个数据单元;该P信号操作包括的步骤有b)接收所述消费者任务的一个请求,以对所述信号计数器(13)的计数值n减少m,对所述信号计数器(13)的计数值n减少m的所述请求表明对来自所述FIFO缓存(1)的m个数据单元的一个P请求;c)如果所述信号计数器(13)的计数值n等于0,阻塞P请求操作;d)从所述信号计数器(13)的计数值n或请求减少量m的值中减去所述信号计数器(13)的计数值n,这依赖于两个值中的最小值;并且e)输出在步骤d)中确定的所述最小值,作为可用的减少量dec;f)从所述P信号操作接收一个可用的减少量dec,表明可以从所述FIFO缓存(1)中读取dec个数据单元;g)从FIFO缓存(1)中读取dec个数据单元;并且i)从所述第一计数器(103)的计数值m中减去可用的减少量dec;j)只要第一计数器(103)的计数值m大于0,重复步骤a)到i)。3.根据权利要求2的方法,进一步包括的步骤有h)信号通知FIFO缓存(1)中有为dec个数据单元可用的存储空间。4.通过使用用于控制访问共享FIFO缓存(1)的信号计数器(13)的P信号操作,和通过使用第一计数器(103),向共享FIFO缓存(1)写入大量数据单元的方法,包括的步骤有a)一个消费者任务请求从所述P信号操作得到允许,以向所述FIFO缓存(1)中写入m个数据单元;该P信号操作包括的步骤有b)接收所述消费者任务的一个请求,以对所述信号计数器(13)的计数值n减少m,对所述信号计数器(13)的计数值n减少m的所述请求表明对在所述FIFO缓存(1)中对于m个数据单元的m个存储空间的一个P请求。c)如果所述信号计数器(13)的计数值n等于0,阻塞P请求操作;d)从所述信号计数器(13)的计数值n或请求减少量m的值中减去所述信号计数器(13)的计数值n,这依赖于两个值中的最小值;并且e)输出在步骤d)中确定的最小值,以作为可用的减少量dec;f)从所述P信号操作接收一个可用的减少量dec,表明在所述FIFO缓存(1)中有为dec个数据单元可用的dec个存储空间;g)向FIFO缓存(1)中可用的dec个存储空间写入dec个数据单元;并且i)从所述第一计数器(103)的计数值m中减去可用的减少量dec;j)只要第一计数器(103)的计数值m大于0,重复步骤a)到i)。5.根据权利要求4的方法,进一步包括的步骤有h)信号通知在FIFO缓存(1)中有dec个数据单元可以读取。6.用于减少控制访问共享FIFO缓存(1)的信号计数器(13)的P信号操作单元(10),包括第一接收装置(11),用于接收消费者任务的一个请求,对所述信号计数器(13)的计数值n减去m,对所述信号计数器(13)的...

【专利技术属性】
技术研发人员:J胡格布鲁格P斯特拉维斯
申请(专利权)人:NXP股份有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利