CN100367218C - 多核并行先进先出队列处理系统及方法 - Google Patents

多核并行先进先出队列处理系统及方法 Download PDF

Info

Publication number
CN100367218C
CN100367218C CNB2006100215244A CN200610021524A CN100367218C CN 100367218 C CN100367218 C CN 100367218C CN B2006100215244 A CNB2006100215244 A CN B2006100215244A CN 200610021524 A CN200610021524 A CN 200610021524A CN 100367218 C CN100367218 C CN 100367218C
Authority
CN
China
Prior art keywords
sequence number
team
address
joining
formation
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
Application number
CNB2006100215244A
Other languages
English (en)
Other versions
CN1889046A (zh
Inventor
梁晖
李建国
刘学明
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.)
Maipu Communication Technology Co Ltd
Original Assignee
MAIPU (SICHUAN) COMMUNICATION TECHNOLOGY Co Ltd
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 MAIPU (SICHUAN) COMMUNICATION TECHNOLOGY Co Ltd filed Critical MAIPU (SICHUAN) COMMUNICATION TECHNOLOGY Co Ltd
Priority to CNB2006100215244A priority Critical patent/CN100367218C/zh
Publication of CN1889046A publication Critical patent/CN1889046A/zh
Application granted granted Critical
Publication of CN100367218C publication Critical patent/CN100367218C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

多核并行先进先出队列处理系统及方法,涉及一种多核处理器系统对共享资源的访问技术。克服现有技术中软件加锁来实现多核处理器操作队列性能较低的缺点,提高多核处理器并行操作队列时的效率。通过自动排号装置多个核实现对同一队列的入队、出队操作,每个核读取自动排号装置中入队序号寄存器中的值确定数组位置,判断当前入队序号与出队序号的相关性,若符合相关性对队列数组实现入队操作,同时自动排号装置实现将当前入队序号寄存器中的值加1个计数单位;若不符合相关性,则返回告警信号给当前核。由于实现了多个核对同一队列的入队、出队操作完全不需要互斥,因此对多核处理系统性能有较大提升。对硬件要求较低,结构简单,对硬件资源占用少。

Description

多核并行先进先出队列处理系统及方法
技术领域
本发明涉及一种多核处理器系统对共享资源的访问技术,尤其涉及先进先出队列多核并行处理技术。
背景技术
随着网络通信技术的迅猛发展,网络客户对网络要求越来越高,传统的单处理器在处理性能上越来越不能适应需要,因此多核处理器得到了越来越多网络设备提供商的青睐。在多核处理器系统中,对共享临界资源的互斥操作是影响其性能的关键因素之一。目前通常的做法是通过对共享资源加锁来实现互斥操作,队列是共享资源的主要组织形式之一。
为了保证多核处理器的多个核之间对队列操作的互斥,每个核在操作队列时加锁,此时其它核在对队列进行操作时会失败,在取得锁的核操作完毕并且解锁以后其它核对队列的访问才能够成功,因此在CPU的核数目非常多时这种操作会导致CPU的效率急剧下降。
发明内容
本发明所要解决的技术问题是:克服现有技术中,软件加锁来实现多核处理器操作队列性能较低的缺点,提供一种队列处理技术,以提高多核处理器并行操作队列时的效率。
本发明为解决上述技术问题所采用的技术方案是:所述提供一种多核并行先进先出队列处理系统:多个核通过CPU接口总线与自动排号装置相连;自动排号装置包括:读地址产生模块、写地址产生模块、队列序号存储器、读回数据产生模块、加1模块;CPU接口总线通过读地址产生模块与队列序号存储器的读地址相连,CPU接口总线通过写地址产生模块与队列序号存储器的读地址相连,读回数据产生模块分别与队列序号存储器、CPU接口总线、加1模块相连,加1模块还与队列序号存储器相连;
读地址产生模块,用于每个核读队列序号存储器时,根据该核送出的地址,产生入队序号寄存器地址和出队序号寄存器地址,送到队列序号存储器的读地址;
写地址产生模块,用于将每个核送出的地址锁存给队列序号存储器的写地址;
队列序号存储器能分别从入队序号寄存器地址、出队序号寄存器地址中读出入队序号、出队序号;队列序号存储器读出读地址中入队序号和出队序号送到读回数据产生模块锁存;将写地址中的入队序号和出队序号送到读回数据产生模块锁存;队列序号存储器包括入队序号寄存器、出队序号寄存器,入队序号寄存器、出队序号寄存器分别存储当前队列的入队序号、出队序号;
读回数据产生模块,用于对队列序号存储器送出的入队序号和出队序号进行锁存;并判断入队序号与出队序号的相关性,若符合相关性,从队列序号存储器的写地址中选择需要输出的序号送加1模块,读回数据产生模块返回要输出的序号;若不符合相关性,读回数据产生模块返回告警信号到CPU接口总线;
加1模块,连接于读回数据产生模块和队列序号存储器之间,用于接收读回数据产生模块发送的序号,并加上1个地址计数单位后送到队列序号存储器。
上述的序号为自然数,所述1个地址计数单位为1。
优选的,为了使每次的读取操作少做一次地址偏移动作,设上述的序号为操作队列的地址值,所述1个地址计数单位为当前队列的1个操作单元地址的字节数。
本发明还提供了一种多核处理器中多核并行先进先出队列操作方法,包括以下步骤:
a、始化队列数组,并预设自动排号装置中入队序号寄存器和出队序号寄存器的初始值;
b、每个核读取自动排号装置中入队序号寄存器中的值确定数组位置,判断当前入队序号与出队序号的相关性,若符合相关性对队列数组实现入队操作,同时自动排号装置实现将当前入队序号寄存器中的值加1个计数单位;若不符合相关性,则返回告警信号给当前核。
c、每个核读取出自动排号装置中出队序号寄存器中的值确定数组位置,判断当前入队序号与出队序号的相关性,若符合相关性对队列数组实现出队操作,同时自动排号装置中实现将当前出队序号寄存器中的值加1个计数单位;若不符合相关性,则返回告警信号给当前核。
上述,入队序号与出队序号的相关性为:当入队时入队序号加1个地址计数单位后不等于出队序号;当出队时出队序号不等于入队序号。
本发明的有益效果是:本发明由于实现了多个核对同一队列的入队、出队操作完全不需要互斥,因此对多核处理系统性能有较大提升。并且出入队的效率同核的个数完全独立,也就是增加新的核对队列的操作几乎没有性能上的影响。对硬件要求较低,结构简单,对硬件资源占用少。
以下结合附图与实施例对本发明做进一步说明。
附图说明
图1为本发明的系统结构图;
图2为实施例自动排号装置的结构图。
具体实施方式
假如有10个任务需要3个核进行处理,任务0在入队时从自动排号机中取得一个序号0,于是将任务0放入数组第0个单元中,任务1在入队时从自动排号机中取得下一个序号1,于是将任务1放入数组第1个单元中…那么这10个任务通过一个自动排号装置分别领到0一9的号码,按照这个号码分别编入到队列数组中。这一部分是任务的入队操作。
下面核空闲时通过另外一个自动排号装置领到需要处理的号码:核0首先取得序号0,于是处理数组第0个单元对应的任务0,同时核1再从自动排号装置中取下一个序号1,于是处理数组1对应的任务1。每个核每处理完一个任务再从自动排号装置中取得下一个号码。这样三个核会保证将队列中所有的任务都顺序处理完毕而不会产生冲突。
在这个模型中,自动排号装置需要完成加1然后写的原子操作。如果用软件来实现又需要涉及到加锁,因此使用硬件来实现:如图1所示的多核并行先进先出队列处理系统:多个核通过CPU接口总线与自动排号装置相连;自动排号装置包括:读地址产生模块、写地址产生模块、队列序号存储器、读回数据产生模块、加1模块;CPU接口总线通过读地址产生模块与队列序号存储器的读地址相连;CPU接口总线通过写地址产生模块与队列序号存储器的写地址相连;读回数据产生模块分别与连接队列序号存储器、CPU接口总线、加1模块相连;加1模块连接于读回数据产生模块和队列序号存储器之间。
具体可通过FPGA来实现这个自动排号装置,采用一种可以预设初值的FPGA,保证队列先进先出的加1然后写的原子操作,产生每次读操作递加的序号,并且能够保证入队出队两个序号的相关性,自动排号装置以此为基础维护一个多核的无竞争多输入多输出的队列。对于队列长度为n的队列,初始化一个大小为n的数组。数组中放置所需要处理的任务指针。
自动排号装置每个队列地址应该可以设置初始序号,队列长度。每个队列的序号等于队列长度以后自动从0开始。对于一个队列至少应该实现两个队列地址,即入队地址、出队地址,可以分别从这两个地址读出入队序号和出队序号。入队序号与出队序号有相关性:出队地址不应该等于入队地址,入队地址在绕回以后加1不能等于出队地址,即当入队时入队地址加1不能等于出队地址以及出队时出队地址不能等于入队地址。
在FPGA中的初始值设置为数组的首地址,每次读操作FPGA自动增加1个地址计数单位,该1个地址计数单位为当前队列的1个操作单元地址的字节数,即4。则能够保证每次从FPGA中读取的值即为下一个序号对应数组指针。相比设置1个地址计数单位为自然数,可以使软件少做一次从首地址偏移的动作。FPGA有一个先读后写的寄存器操作,为实现成百上千个这样的寄存器,可使用内嵌双口RAM。
FPGA与每个核接口方法有:核的通用I/O脚;核的扩展总线;PCI总线的slave设备;HT总线的端点设备;PCI-Express总线的端点设备;仿真DDR DDR2内存接口等。
如图2所示的自动排号装置,包括地址译码器、2选1逻辑模块、写信号产生模块、读地址产生模块、写地址产生模块、队列序号存储器、读回数据产生模块、加1模块。
多个核通过地址线分别与地址译码器、写信号产生模块、读地址产生模块、写地址产生模块相连后,再与队列序号存储器相连;每个核读写信号通过写信号产生模块与队列序号存储器相连;每个核写数据通过2选1逻辑模块与队列序号存储器相连;队列序号存储器通过读回数据产生模块输出数据,读回数据产生模块通过加1模块将读回数据加1输回到队列序号存储器。
队列序号存储器采用FPGA的内嵌双口RAM,包括有入队序号寄存器、出队序号寄存器。每一个队列只需要硬件存储当前入队地址和出队地址,每个地址占用4字节地址,因此只需要硬件辅助提供4字节存贮空间。系统可实现对多个队列的入队、出队操作,即队列序号存储器分别为每个队列提供2个4字节的存贮空间,2个存贮空间分别记录该队列当前的入队地址和出队地址。设置加1操作为每次读入队和出队地址序号递加值为4,即一个指针长度。
初始化操作时,2选1逻辑模块检测到来自CPU接口总线的写地址操作信号,接通CPU接口总线与双口RAM,每个核通过对一个写地址操作来初始化入队、出队序号寄存器的值,同时将入队地址和出队地址设置为两个相邻的地址。
正常工作后,每当核读入队地址时,读地址产生模块根据CPU给出的地址自动产生入队地址和出队地址,送给队列序号存储器的读地址,队列序号存储器在读地址中读出要操作的当前队列的入队地址和出队地址对应的序号,送到读回数据产生模块锁存;另一方面,入队地址通过写地址产生模块被锁存给队列序号存储器的写地址。核的读脉冲经写信号产生模块处理后变成双口RAM的写脉冲,读回数据产生模块从队列序号存储器的写地址中选择需要输出的序号加1后写回双口RAM的入队序号寄存器中,2选1逻辑模块检测到来自加1模块的写操作,接通加1模块与双口RAM,从而实现入队序号寄存器读后加1的功能,设置入队地址的指针为任务指针;另外,读回数据产生模块如果发现入队序号加1后等于出队序号,即队列将满,读回数据产生模块将控制回写的信号不被加1,同时设置核读回数据为“满”的告警信号,以通知核,入队操作失败。
每当核读出队地址时,读地址产生模块也会连续产生入队地址和出队地址送给队列序号存储器的读地址,入队序号和出队序号从队列序号存储器送到读回数据产生模块锁存,出队序号寄存器的序号通过读回数据产生模块送出;另一方面,出队地址被锁存给队列序号存储器写地址,核读脉冲经写信号产生模块处理后变成双口RAM的写脉冲将CPU读回数据加1后的数据写回双口RAM的出队序号寄存器中,2选1逻辑模块检测到来自加1模块的写操作,接通加1模块与双口RAM,从而实现出队序号寄存器读后加1的功能,设置出队地址的指针为任务指针;另外,读回数据产生模块如果发现出队序号寄存器读出来后等于入队序号寄存器的值,即队列将空,读回数据产生模块将控制回写的信号不被加1,同时设置核读回数据为“空”的告警信号,以通知核,出队操作失败。

Claims (8)

1.多核并行先进先出队列处理系统,其特征在于,多核处理器中多个核通过CPU接口总线与自动排号装置相连;所述自动排号装置包括:读地址产生模块、写地址产生模块、队列序号存储器、读回数据产生模块、加1模块;CPU接口总线通过读地址产生模块与队列序号存储器的读地址相连,CPU接口总线通过写地址产生模块与队列序号存储器的写地址相连,读回数据产生模块分别与队列序号存储器、CPU接口总线、加1模块相连,加1模块还与队列序号存储器连接;
读地址产生模块,用于多核处理器中每个核读队列序号存储器时,根据该核送出的地址,产生入队序号寄存器地址和出队序号寄存器地址,送到队列序号存储器的读地址;
写地址产生模块,用于将每个核送出的地址锁存给队列序号存储器的写地址;
队列序号存储器,包括有入队序号寄存器、出队序号寄存器,所述队列序号存储器用于读出读地址中要操作的当前队列的入队序号和出队序号送到读回数据产生模块锁存;将写地址中的入队序号和出队序号送到读回数据产生模块锁存;入队序号寄存器、出队序号寄存器分别存储当前队列的入队序号、出队序号;
读回数据产生模块,用于对队列序号存储器送出的入队序号和出队序号进行锁存;并判断入队序号与出队序号的相关性,若符合相关性,从队列序号存储器的写地址中选择需要输出的序号送加1模块,读回数据产生模块返回要输出的序号;若不符合相关性,读回数据产生模块返回告警信号到CPU接口总线;
加1模块,连接于读回数据产生模块和队列序号存储器之间,用于接收读回数据产生模块发送的序号,并加上1个地址计数单位后送到队列序号存储器;
所述入队序号与出队序号的相关性为:当入队时入队地址加1后不等于出队地址;当出队时出队地址不等于入队地址。
2.如权利要求1所述的多核并行先进先出队列处理系统,其特征在于,所述入队序号、出队序号为自然数,所述1个地址计数单位为1。
3.如权利要求1所述的多核并行先进先出队列处理系统,其特征在于,所述入队序号、出队序号为操作队列的地址值,所述1个地址计数单位为当前队列的1个操作单元地址的字节数。
4.如权利要求1所述的多核并行先进先出队列处理系统,其特征在于,所述队列序号存储器包含有多个队列的入队序号寄存器、出队序号寄存器。
5.如权利要求1、2、3或4所述的多核并行先进先出队列处理系统,其特征在于,所述队列序号存储器中同一队列的入队序号寄存器和出队序号寄存器的地址为两个相邻地址。
6.如权利要求5所述的多核并行先进先出队列处理系统,其特征在于,所述队列序号存储器对同一队列的入队序号寄存器、出队序号寄存器分别分配4字节的存贮空间。
7.如权利要求6所述的多核并行先进先出队列处理系统,其特征在于,所述自动排号装置采用FPGA实现。
8.多核处理器中多核并行先进先出队列操作方法,包括以下步骤:
a、初始化队列数组,并预设自动排号装置中入队序号寄存器和出队序号寄存器的初始值;
b、多核处理器中每个核读取自动排号装置中入队序号寄存器中的值确定数组位置,判断当前入队序号与出队序号的相关性,若符合相关性对队列数组实现入队操作,同时自动排号装置实现将当前入队序号寄存器中的值加1个计数单位;若不符合相关性,则返回告警信号给当前核;
c、每个核读取出自动排号装置中出队序号寄存器中的值确定数组位置,判断当前入队序号与出队序号的相关性,若符合相关性对队列数组实现出队操作,同时自动排号装置中实现将当前出队序号寄存器中的值加1个计数单位;若不符合相关性,则返回告警信号给当前核;
所述入队序号与出队序号的相关性为:当入队时入队序号加1个地址计数单位后不等于出队序号;当出队时出队序号不等于入队序号。
CNB2006100215244A 2006-08-03 2006-08-03 多核并行先进先出队列处理系统及方法 Expired - Fee Related CN100367218C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100215244A CN100367218C (zh) 2006-08-03 2006-08-03 多核并行先进先出队列处理系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100215244A CN100367218C (zh) 2006-08-03 2006-08-03 多核并行先进先出队列处理系统及方法

Publications (2)

Publication Number Publication Date
CN1889046A CN1889046A (zh) 2007-01-03
CN100367218C true CN100367218C (zh) 2008-02-06

Family

ID=37578324

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100215244A Expired - Fee Related CN100367218C (zh) 2006-08-03 2006-08-03 多核并行先进先出队列处理系统及方法

Country Status (1)

Country Link
CN (1) CN100367218C (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552241B2 (en) * 2007-05-18 2009-06-23 Tilera Corporation Method and system for managing a plurality of I/O interfaces with an array of multicore processor resources in a semiconductor chip
JP4088335B1 (ja) * 2007-08-10 2008-05-21 ネットクリアスシステムズ株式会社 仮想キュー処理回路およびタスク処理装置
CN101276294B (zh) * 2008-05-16 2010-10-13 杭州华三通信技术有限公司 异态性数据的并行处理方法和处理装置
CN101771670B (zh) * 2008-12-30 2013-09-18 北京天融信网络安全技术有限公司 多核下子连接并发识别与处理的方法
CN102103527B (zh) * 2009-12-21 2012-12-12 上海贝尔股份有限公司 具有错误处理装置的多内核dsp电路和错误处理方法
CN102323900B (zh) * 2011-08-31 2014-03-26 国家计算机网络与信息安全管理中心 一种众核环境下基于动态感知的系统容错机制
US9354945B2 (en) 2012-10-12 2016-05-31 International Business Machines Corporation Managing a lock to a resource shared among a plurality of processors
CN105045761B (zh) * 2015-08-26 2018-08-28 福建恒天晨光节能服务有限公司 一种数据中心的高速并行处理架构
WO2017072827A1 (ja) * 2015-10-26 2017-05-04 株式会社日立製作所 計算機システム、及び、アクセス制御方法
CN106130930B (zh) * 2016-06-24 2019-04-19 西安电子科技大学 一种数据帧预入队处理的装置及方法
CN110231983B (zh) * 2019-05-13 2022-01-28 北京百度网讯科技有限公司 数据并发处理方法、装置及系统、计算机设备及可读介质
CN116149573B (zh) * 2023-04-19 2023-07-14 苏州浪潮智能科技有限公司 Raid卡集群对队列的处理方法、系统、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991845A (en) * 1996-10-21 1999-11-23 Lucent Technologies Inc. Recoverable spin lock system
US20040006633A1 (en) * 2002-07-03 2004-01-08 Intel Corporation High-speed multi-processor, multi-thread queue implementation
CN1713151A (zh) * 2004-06-22 2005-12-28 国际商业机器公司 便利共享存储器环境中的通信的方法和系统
CN1758229A (zh) * 2005-10-28 2006-04-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991845A (en) * 1996-10-21 1999-11-23 Lucent Technologies Inc. Recoverable spin lock system
US20040006633A1 (en) * 2002-07-03 2004-01-08 Intel Corporation High-speed multi-processor, multi-thread queue implementation
CN1713151A (zh) * 2004-06-22 2005-12-28 国际商业机器公司 便利共享存储器环境中的通信的方法和系统
CN1758229A (zh) * 2005-10-28 2006-04-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法

Also Published As

Publication number Publication date
CN1889046A (zh) 2007-01-03

Similar Documents

Publication Publication Date Title
CN100367218C (zh) 多核并行先进先出队列处理系统及方法
US7546393B2 (en) System for asynchronous DMA command completion notification wherein the DMA command comprising a tag belongs to a plurality of tag groups
US7925826B2 (en) System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency
US4789925A (en) Vector data logical usage conflict detection
CN106293843B (zh) 一种数据加载系统
CN102834815B (zh) 高利用率多分区串行存储器
CN103744644B (zh) 采用四核结构搭建的四核处理器系统及数据交换方法
US20090193203A1 (en) System to Reduce Latency by Running a Memory Channel Frequency Fully Asynchronous from a Memory Device Frequency
EP0351955B1 (en) Multiprocessor systems with cross-interrogated store-in-caches
CN108334463A (zh) 事务性缓冲式存储器中的提早识别
CN103246625B (zh) 一种数据与地址共用引脚自适应调整访存粒度的方法
US20090193200A1 (en) System to Support a Full Asynchronous Interface within a Memory Hub Device
CN102622192B (zh) 一种弱相关多端口并行存储控制器
CN107438838A (zh) 打包的写完成
Leidel et al. Hmc-sim-2.0: A simulation platform for exploring custom memory cube operations
CN101999115A (zh) 多核处理系统
CN101410823A (zh) 异步计算机通信
CN104933009A (zh) 一种用于多核dsp间的片上通信方法及数据通信装置
CN101008924A (zh) 进行循环和锁存高速缓冲存储器替换方案的方法和设备
JPH10187534A (ja) コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム
US9092284B2 (en) Entropy storage ring having stages with feedback inputs
EP3287900B1 (en) Write request processing method and memory controller
CN100559359C (zh) 矩阵状总线连接系统
KR101847976B1 (ko) 반도체 시스템
JP2011164948A (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
C56 Change in the name or address of the patentee

Owner name: MAIPU COMMUNICATION TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: MAIPU (SICHUAN) COMMUNICATION TECHNOLOGY CO., LTD.

CP03 Change of name, title or address

Address after: Sichuan city of Chengdu province high tech Zone nine Hing Road No. 16 building, Maipu

Patentee after: Maipu Communication Technologies Co., Ltd.

Address before: Sichuan city of Chengdu province high tech Zone nine Hing Road No. 16 building, Maipu

Patentee before: Maipu (Sichuan) Communication Technology Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080206

Termination date: 20150803

EXPY Termination of patent right or utility model