CN1585923A - P和v信号操作 - Google Patents

P和v信号操作 Download PDF

Info

Publication number
CN1585923A
CN1585923A CN02822387.XA CN02822387A CN1585923A CN 1585923 A CN1585923 A CN 1585923A CN 02822387 A CN02822387 A CN 02822387A CN 1585923 A CN1585923 A CN 1585923A
Authority
CN
China
Prior art keywords
buffer memory
fifo buffer
count value
dec
event counter
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
Application number
CN02822387.XA
Other languages
English (en)
Other versions
CN100375007C (zh
Inventor
J·胡格布鲁格
P·斯特拉维斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1585923A publication Critical patent/CN1585923A/zh
Application granted granted Critical
Publication of CN100375007C publication Critical patent/CN100375007C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

一个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缓存中。

Description

P和V信号操作
技术领域
本发明叙述了控制访问共享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缓存的计算机系统,包括了一个减少信号计数器的P信号操作单元,从共享FIFO缓存中读取大量数据单元的设备,和/或向共享FIFO缓存写入大量数据单元的设备。
最后,本发明还进一步解决了一个计算机程序产品,包括计算机程序代码方法,使得在计算机上运行该计算机程序时,计算机执行上述读/写方法的步骤和/或P信号操作。
附图说明
现在将通过参考附图来更详细的解释本发明,其中:
图1显示了根据第一实施方案,P信号操作单元10的方框图;
图2显示了根据第一实施方案,从共享FIFO缓存中读取大量数据单元的设备100的方框图;
图3显示了根据第二实施方案,V信号操作单位20的方框图;以及
图4显示了根据第二实施方案,向共享FIFO缓存中写入大量数据单元的设备200的方框图;
具体实施方式
第一实施方案中,在根据并发处理的计算机系统中利用P信号操作执行从/向由至少两个进程如一个读进程和一个写进程共享的FIFO缓存进行读/写。
图1显示了用作减少信号计数器13(也在图1中所示)的P信号操作单元10的方框图,信号计数器13用作控制访问共享FIFO缓存(没有示出)。信号计数器13可基于该FIFO缓存中的可用数据单元,即一个信号(数据),或者基于在所述FIFO缓存中的可用存储空间,即一个信号(空间)。P信号操作单元10包括第一接收装置11,第一阻塞装置12,第一比较装置14和第一输出装置15。所述第一接收装置11和所述第一阻塞装置12相连,其接收所述信号计数器13的状态作为输入信号。所述第一阻塞装置12还和所述第一比较装置14相连,所述第一比较装置14接着和所述信号计数器13相连。所述信号计数器13输出其状态到第一阻塞装置12以及第一比较装置14,并接收第一比较装置14的输出作为输入信号。最后第一比较装置14和所述第一输出装置15相连。
所述第一接收装置11接收消费者任务的请求对所述信号计数器13的计数值n减去m次。从所述信号计数器13的计数n减去m次的该请求表明对来自所述FIFO缓存1的m个数据单元的一个P请求,即所述信号计数器13是基于信号(数据)。所述第一接收装置11转发减少m的请求到所述第一阻塞装置12,其在所述信号计数器13的计数值n等于零时阻塞该减少m的请求。所述信号计数器13的计数值n大于0时,所述第一阻塞装置12转发该减少m的请求到所述第一比较装置14,其比较转发的减少m的请求和所述信号计数器13的计数值n以确定这两个值中的最小值。所述信号计数器13的计数值n减去在所述第一比较装置14中确定的最小值。在所述第一比较装置14中确定的该最小值被转发到所述输出装置15,以便作为可用的减少量dec输出。该可用的减少量dec表明从所述FIFO缓存1中实际有多少数据单元可以被输出。
另外,从生产者任务中的所述信号计数器13的计数值n减去m的请求表明对在所述FIFO缓存1中的m个数据单元的m个存储空间的一个P请求,即所述信号计数器13是基于信号(空间)的。在这种情况下,所述可用的减少量dec指明实际有多少数据单元能被输入到所述FIFO缓存1中,因为有对于m个数据单元的m个存储空间可用。
图2显示了用作从外部共享的FIFO缓存1中读取大量数据单元的设备100,以及用作向外部共享的FIFO缓存1写入大量数据单元的设备的方框图。
该读设备和该写设备100都包括第一允许请求装置111,第二接收装置101,第二阻塞装置102,第一计数器103,读/写装置110和第一信号装置115。所述第一允许请求装置111和一个外部的P请求操作单元10连接。该P请求操作单元10的输出和所述第二接收装置101的输入连接。所述第二接收装置101又和所述第二阻塞装置102连接,所述第二阻塞装置102接着和所述读/写装置110以及所述第一计数器103连接。所述第一计数器103的输出和所述第二阻塞装置102连接。所述读/写装置110和共享FIFO缓存1以及所述第一信号装置115连接。
关于读操作,一个消费者任务输入一个允许从所述FIFO缓存1中读m个数据单元的请求到所述第一允许请求装置111。所述第一允许请求装置111为所述P信号操作单元10初始化一个请求,来准许从所述FIFO缓存1中读m个数据单元。所述P信号操作单元10接收到对该m个数据单元的请求,并参考图1用上述的信号(数据)为基础来处理这个请求,并输出可用的减少量dec。所述第二接收装置101接收可用的减少量dec以作为从所述P信号操作单元10的输出,并转发可用的减少量dec到所述第二阻塞装置102。如果所述第一计数器103的计数值m等于0,所述第二阻塞装置102阻塞对dec个数据单元的请求。但是,如果所述第一计数器103的计数值m大于0,可用的减少量dec由所述第二阻塞装置102转发到所述读/写装置110。所述读/写装置110从所述FIFO缓存1中读取dec个数据单元并将这dec个数据单元输出。所述读/写装置110把所述dec个数据单元输出后,所述读/写装置110通知所述第一信号装置115有dec个数据单元已经从所述FIFO缓存1输出。之后,所述第一信号装置115执行一个信号操作,以表明在所述FIFO缓存1中有对于dec个数据单元的dec个存储空间是可用的。所述信号操作表示一个V操作,其表示现在在FIFO缓存1中有dec个可用的存储空间。然后第一计数器的计数值m减去dec。
另外,在写操作中,一个生产者任务输入一个允许向所述FIFO缓存中写m个数据单元的请求到所述第一允许请求装置111。进一步的处理和上述读操作一致。所述P信号操作单元10接收到对于m个数据单元的m个存储空间的请求,并且参考图1用上述的信号(空间)为基础来处理这个请求。可用的减少量dec由所述第二阻塞装置102转发到所述读/写装置110。之后,所述读/写装置110把dec个数据单元写入到所述FIFO缓存中。在所述读/写装置110输入dec个数据单元之后,所述读/写装置110通知所述第一信号装置115有dec个数据单元已经被输入到所述FIFO缓存1中。之后,所述第一信号装置115执行信号操作,表明在所述FIFO缓存1中有dec个数据单元可用。这样,该信号操作表示对一个信号(数据)的V操作,以表明要从FIFO缓存1中读取的dec个数据单元是可用的。然后第一计数器的计数值m减去dec。
这样,根据第一实施方案,通过对信号(数据)执行对至少一个数据单元的一个P操作,即请求从FIFO缓存中读取数据单元来完成读操作,并在读操作结束时,通过对信号(空间)执行对至少一个存储空间的一个V操作,表明现在在FIFO缓存中有可用的存储空间。另一方面,通过对信号(空间)执行对在所述FIFO缓存中的至少一个存储空间的一个P操作,即为数据单元请求FIFO缓存中的存储空间来完成写操作,并在写操作结束时,通过对信号(数据)执行对至少一个数据单元的一个V操作,表明要从FIFO中读出的数据单元现在是可用的。读和写之间的不同在于对不同的信号即对信号(数据)和信号(空间)执行信号操作,并且数据单元以相对方向拷贝的,即拷贝到FIFO,和从FIFO拷贝。
在第二实施方案中,在基于并发处理的计算机系统中,通过使用V信号操作来完成从/向由至少两个进程如一个读进程和一个写进程共享的FIFO缓存的读/写。
图3显示了用作增加信号计数器23(也在图1中所示)的V信号操作单元20的方框图,信号计数器23用作控制访问外部的共享FIFO缓存1(没有示出)。V信号操作单元20包括第三接收装置21,第三阻塞装置22,第二比较装置24,第二输出装置29,第一减法装置28,第一限制L内存27和和第三比较装置26。
第三接收装置21和第三阻塞装置22连接,第三阻塞装置22接着和第二比较装置24以及第三比较装置26连接。第三比较装置26和第一限制L内存27以及所述信号计数器23连接。第一限制L内存27又和第一减法装置28连接。第一减法装置28接收所述信号计数器23的状态和内存27即所述第一限制L的状态作为输入信号,并将减法结果输出到第二比较装置24。第二比较装置24的输出是可用的增加量inc,其也是输出装置29的输出。所述信号计数器23将可用的增加量inc作为输入。
所述第一接收装置21接收生产者任务的请求,以对所述信号计数器23的计数值n增加m次。对所述信号计数器23的计数值n增加m次的该请求表明一个V释放m个数据单元到所述FIFO缓存中的请求。所述第一接收装置21转发该增加m的请求到所述第三阻塞装置22。如果所述信号计数器23的计数值n超过存储在所述第一限制L内存27中的第一限制L,所述第三阻塞装置22将阻塞增加m的请求。所述第三比较装置26接收第一限制L和所述信号计数器23的计数值n作为输入信号,并比较这两个输入信号,以确定所述信号计数器23的计数值n是否超过第一限制L。所述第三比较装置26输出这一比较操作的结果到所述第三阻塞装置22。如果所述信号计数器23的计数值n没超过所述第一限制L,如由所述第三比较装置26确定的那样,所述第三阻塞装置22转发增加m的请求到所述第二比较装置24。
所述第一减法装置28接收第一限制L和所述信号计数器23的计数值n作为输入信号,并对两个值求差来确定它们的差值。所述第一减法装置28输出减法结果到所述第二比较装置24,其将该减法结果和增加m的请求做比较,并决定所述这些值中的最小值。所述第二比较装置24输出确定的最小值到所述输出装置29。所述输出装置29接收该最小值作为输入信号,并输出该最小值作为可用的增加量inc,以表明有对于inc个数据单元的inc个存储空间是可用的。
图4显示用作写大量数据单元到共享FIFO缓存1中的设备200的方框图。所述设备200包括第二允许请求装置211,第四接收装置201,第四阻塞装置202,第二计数器203,写装置210,第二信号装置215,第一限制L的第二内存207和第二减法装置212。
所述允许请求装置211和一个V信号操作单元20的输入连接,且所述第四接收装置201和该V信号操作单元20的输出连接。所述第四接收装置201又和所述第四阻塞装置202连接,所述第四阻塞装置202又和所述写装置210、所述第二计数器203以及所述第二减法装置212连接。所述第二减法装置212和所述第二计数器203、在它的输入侧的所述第一限制L的内存207,以及在它的输出侧的所述第四阻塞装置202连接。所述写装置210和所述外部的共享FIFO缓存1以及所述第二信号装置215连接。
一个生产者任务输入一个允许向所述FIFO缓存中写m个数据单元的请求到所述第二允许请求装置211。所述第二允许请求装置211为所述V信号操作单元20初始化一个请求,以准许向所述FIFO缓存1写m个数据单元。所述V信号操作单元20接收该写m个数据单元的请求,参考图3如上所述处理这个请求,并输出可用的增加量inc。所述第四接收装置201接收可用的增加量inc以作为所述V信号操作单元20的输出,并转发可用的增加量inc到所述第四阻塞装置202。
所述第四阻塞装置202在所述第二计数器203的计数值超过所述第一限制L时阻塞写m个数据单元的请求。所述第二减法装置212接收第二计数器203的计数值m和第一限制L作为输入信号,并对它们求差以确定第二计数器203的计数值m是否超过第一限制L。当第二计数器203的计数值m没有超过所述第一限制L时,所述第四阻塞装置202转发可用的增加量inc到所述写装置210。根据接收到该可用的增加量inc,所述写装置210将inc个数据单元写到所述FIFO缓存1中。所述写装置210进一步转发可用的增加量inc到所述第二信号装置215。所述第二信号装置215执行一个信号操作,以表明在FIFO缓存1中有inc个可用的数据单元用于进一步处理,即对输入到所述FIFO缓存1中的inc个数据单元执行一个V操作,以表明有inc个数据单元可以从FIFO中读出。
然后,在inc个数据单元被写到所述FIFO缓存1中后,可用的增加量inc被加到所述第二计数器203的计数值m上。只要第二计数器的计数值m没有超过第一限制L,重复执行以上提到的步骤。
一个读操作也可以在V操作的基础上执行。这样的读操作和上述写处理过程对称执行。参考图4。
一个V操作和上面的P操作十分的相似。在执行该V操作时要避免信号计数器超过预定限制L。V操作不允许输入到FIFO缓存中的数据单元多于该FIFO缓存中可用的存储空间,也不允许对超过FIFO缓存中最大可用存储空间执行V操作。该FIFO缓存中,最大可用存储空间和所述预定限制L对应。
可总结为,一个P信号操作试图减少信号计数器m次,并返回实际减少量,其值大于零,但不大于要求的调节值(government)。一个V信号操作增加信号计数器m次,并返回实际增加量,其值大于零,但不大于所述信号计数器的第一限制L。
从FIFO缓存的读取和向FIFO缓存的写入是对称的。在从FIFO缓存中读取的情况下,读进程担当消耗或处理数据的消费者进程,同时还担当在FIFO缓存中生产空闲存储空间的生产者进程,因为数据单元已经从FIFO缓存中输出。在向FIFO缓存中写入的情况下,写进程担当消耗或占用存储空间的消费者进程,同时还担当在FIFO缓存中产生数据单元的生产者进程,因为数据单元已经被输入到FIFO缓存中。
变量1和/或m可以被设置为预定值,或根据当前处理状态计算它们,以此来优化整个处理性能。

Claims (10)

1.用于控制访问共享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)的计数值n减去m的所述请求表明一个对来自所述FIFO缓存(1)中的m个数据单元的P请求,或一个对在所述FIFO缓存中的对于m个数据单元的m个存储空间的P请求;
第一阻塞装置(12),用于在所述信号计数器(13)的计数值n等于0时阻塞P请求操作;
第一比较装置(14),用于比较所述信号计数器(13)的计数值n和请求减少量m的值,以选择这两个值中的最小值;和
第一输出装置(15),用于输出所述第一比较装置(14)中选择的该最小值,作为可用的减少量dec。
7.利用用于减少控制访问共享FIFO缓存(1)的信号计数器(13)的P信号操作单元(10)和利用信号计数器(13),从共享FIFO缓存(1)中读取大量数据单元的设备(100),包括:
允许请求装置(111),用于请求所述P信号操作单元(10)的允许,从所述FIFO缓存(1)中读m个数据单元;
所述P信号操作单元(10),包括:
第一接收装置(11),用于接收消费者任务的一个请求,对所述信号计数器(13)的计数值n减去m,对所述信号计数器(13)的计数值n减去m的所述请求表明一个对来自所述FIFO缓存(1)中的m个数据单元的P请求;
第一阻塞装置(12),用于在所述信号计数器(13)的计数值n等于0时阻塞P请求操作;
第一比较装置(14),用于比较所述信号计数器(13)的计数值n和请求减少量m的值,以选择这两个值中的最小值;和
第一输出装置(15),用于输出所述第一比较装置(14)中选择的该最小值,作为可用的减少量dec;
第二接收装置(101),用于从P信号操作单元(10)接收一个可用的减少量dec,以表明FIFO缓存(1)有dec个数据单元可读;
读装置(110),用于从FIFO缓存(1)中读取dec个数据单元,其中从所述第一计数器(103)的计数值m中减去可用的减少量dec;和
第二阻塞装置(102),用于在第一计数器(103)的计数值m等于0时阻塞读操作。
8.利用用于减少控制访问共享FIFO缓存(1)的信号计数器(13)的P信号操作单元(10)和利用信号计数器(13),向共享FIFO缓存写入大量数据单元的设备(100),包括:
允许请求装置(111),用于请求所述P信号操作单元(10)的允许,向所述FIFO缓存(1)中写m个数据单元;
所述P信号操作单元(10),包括:
第一接收装置(11),用于接收消费者任务的请求,对所述信号计数器(13)的计数值n减去m,对所述信号计数器(13)的计数值n减去m的所述请求表明一个对在所述FIFO缓存(1)中的对于m个数据单元的m个存储空间的P请求;
第一阻塞装置(12),用于在所述信号计数器(13)的计数值n等于0时阻塞P请求操作;
第一比较装置(14),用于比较所述信号计数器(13)的计数值n和请求减少量m的值,选择这两个值中的最小值;和
第一输出装置(15),用于输出在所述第一比较装置(14)中选择的该最小值,作为可用的减少量dec;
第二接收装置(101),用于从P信号操作单元(10)接收一个可用的减少量dec,以表明FIFO缓存(1)中有为dec个数据单元可用的dec个存储空间;
写设备(110),用于向FIFO缓存(1)中写入dec个数据单元,其中从所述第一计数器(103)的计数值m中减去可用减少量dec和
第二阻塞装置(102),用于在第一计数器(103)的计数值m等于0时阻塞写操作。
9.用于并发处理能被读任务和写任务访问的共享FIFO缓存的计算机系统,包括:
根据权利要求6,用于减少信号计数器的P信号操作单元(10);
根据权利要求7,从共享FIFO缓存中读取大量数据单元的设备;和/或
根据权利要求8,向共享FIFO缓存中写入大量数据单元的设备。
10.计算机程序产品,包括计算机程序代码方法,用以在计算机上运行该计算机程序产品时,使计算机执行权利要求2、3、4、5中方法的步骤,和/或执行根据权利要求1的P信号操作。
CNB02822387XA 2001-11-13 2002-10-25 从共享缓存读取或者向其写入数据单元的方法和装置 Expired - Fee Related CN100375007C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01204331.1 2001-11-13
EP01204331 2001-11-13

Publications (2)

Publication Number Publication Date
CN1585923A true CN1585923A (zh) 2005-02-23
CN100375007C CN100375007C (zh) 2008-03-12

Family

ID=8181225

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB02822387XA Expired - Fee Related CN100375007C (zh) 2001-11-13 2002-10-25 从共享缓存读取或者向其写入数据单元的方法和装置

Country Status (5)

Country Link
US (1) US20040260890A1 (zh)
EP (1) EP1449060A1 (zh)
JP (1) JP2005509942A (zh)
CN (1) CN100375007C (zh)
WO (1) WO2003042810A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546275B (zh) * 2008-03-26 2012-08-22 中国科学院微电子研究所 一种获取多处理器硬件信号量的方法
CN108920298A (zh) * 2018-07-16 2018-11-30 北京中科网威信息技术有限公司 一种基于申威架构的监控信号量的处理方法及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099538B2 (en) * 2006-03-29 2012-01-17 Intel Corporation Increasing functionality of a reader-writer lock
US8726063B2 (en) * 2011-07-26 2014-05-13 Raytheon Company Systems and methods providing output sample frequency determinism by calculating a delay with a wall clock and using a timer to compensate for the delay
US10528525B2 (en) * 2015-03-19 2020-01-07 International Business Machines Corporation Establishing connections in a multi-tenant environment
US11144368B2 (en) * 2019-06-18 2021-10-12 Qualcomm Incorproated Providing self-resetting multi-producer multi-consumer semaphores in distributed processor-based systems
FR3107130B1 (fr) * 2020-02-06 2022-05-06 Vitesco Technologies Procédé de gestion de données échantillonnées partagées entre plusieurs unités de traitement

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725946A (en) * 1985-06-27 1988-02-16 Honeywell Information Systems Inc. P and V instructions for semaphore architecture in a multiprogramming/multiprocessing environment
US4928222A (en) * 1988-10-31 1990-05-22 International Business Machines Corporation Enhanced semaphore architecture
JPH02300939A (ja) * 1989-05-16 1990-12-13 Toshiba Corp セマフォオペレーション方式
JPH04271453A (ja) * 1991-02-27 1992-09-28 Toshiba Corp 複合電子計算機
US5365485A (en) * 1993-11-22 1994-11-15 Texas Instruments Incorporated Fifo with fast retransmit mode
US5872980A (en) * 1996-01-25 1999-02-16 International Business Machines Corporation Semaphore access control buffer and method for accelerated semaphore operations
JPH1049381A (ja) * 1996-07-04 1998-02-20 Internatl Business Mach Corp <Ibm> 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム
EP1033654A1 (en) * 1999-03-01 2000-09-06 Sony International (Europe) GmbH Buffered communication between entities operating at different data rates
US20020146023A1 (en) * 2001-01-09 2002-10-10 Regan Myers Transport stream multiplexer utilizing smart FIFO-meters

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546275B (zh) * 2008-03-26 2012-08-22 中国科学院微电子研究所 一种获取多处理器硬件信号量的方法
CN108920298A (zh) * 2018-07-16 2018-11-30 北京中科网威信息技术有限公司 一种基于申威架构的监控信号量的处理方法及装置
CN108920298B (zh) * 2018-07-16 2021-07-13 北京中科网威信息技术有限公司 一种基于申威架构的监控信号量的处理方法及装置

Also Published As

Publication number Publication date
WO2003042810A1 (en) 2003-05-22
US20040260890A1 (en) 2004-12-23
JP2005509942A (ja) 2005-04-14
EP1449060A1 (en) 2004-08-25
CN100375007C (zh) 2008-03-12

Similar Documents

Publication Publication Date Title
Valois Lock-free linked lists using compare-and-swap
US5155854A (en) System for arbitrating communication requests using multi-pass control unit based on availability of system resources
CN100557570C (zh) 多处理器系统
CN1047677C (zh) 多执行单元的指令相关调度技术
Pyarali et al. Techniques for enhancing real-time CORBA quality of service
Beynon et al. Design of a framework for data-intensive wide-area applications
CN112015713A (zh) 数据库任务的处理方法、装置、电子设备及可读介质
CN111124641B (zh) 一种利用多线程的数据处理方法及系统
Freudenthal et al. Process coordination with fetch-and-increment
Brzezinski et al. Deadlock models and a general algorithm for distributed deadlock detection
US20090073981A1 (en) Methods and Apparatus for Network Packet Filtering
Feldman et al. Effective use of non-blocking data structures in a deduplication application
CN1585923A (zh) P和v信号操作
CN114399035A (zh) 搬运数据的方法、直接存储器访问装置以及计算机系统
Helmi et al. The space complexity of long-lived and one-shot timestamp implementations
Peng et al. FA-Stack: A fast array-based stack with wait-free progress guarantee
CN110955461B (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
Constantin et al. Parallelization of the Hoshen-Kopelman algorithm using a finite state machine
CN110537174B (zh) 一种基于交替行锁和列锁的数据锁定方法
Li et al. POSTER: RadiK: Scalable Radix Top-K Selection on GPUs
KR20220085031A (ko) 데이터베이스 임시 테이블 프로세싱을 가속화하기 위한 스토리지 장치 어댑터
Yi et al. A scalable lock on NUMA multicore
Livny et al. Distributed computation via active messages
Hutchinson et al. Duality between prefetching and queued writing with parallel disks
Briggs et al. A Shared-Resource Multiple Microprocessor System for Pattern Recognition and Image Processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20071109

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20071109

Address after: Holland Ian Deho Finn

Patentee after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Patentee before: Koninklijke Philips Electronics N.V.

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: 20080312

Termination date: 20101025