CN102385558B - 请求控制装置、请求控制方法及相关的处理器 - Google Patents
请求控制装置、请求控制方法及相关的处理器 Download PDFInfo
- Publication number
- CN102385558B CN102385558B CN201010271150.8A CN201010271150A CN102385558B CN 102385558 B CN102385558 B CN 102385558B CN 201010271150 A CN201010271150 A CN 201010271150A CN 102385558 B CN102385558 B CN 102385558B
- Authority
- CN
- China
- Prior art keywords
- unit
- memory block
- queue unit
- queue
- message
- 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
- 238000000034 method Methods 0.000 title claims description 35
- 238000003860 storage Methods 0.000 claims abstract description 85
- 238000004321 preservation Methods 0.000 claims abstract description 68
- 230000005055 memory storage Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 4
- 238000007906 compression Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了请求控制装置以及相关的处理器。所述请求控制装置连接到由首要请求存储区和辅助请求存储区构成的请求存储单元,包括:队列单元保存标识符记录区,配置为记录与所述请求存储单元中的队列单元对应的保存标识符;比较装置,配置为判断到来的第一队列单元是否与已经在请求存储单元中的队列单元对应于相同消息;和置标装置,配置为在所述第一队列单元与所述已经在请求存储单元中的队列单元对应于相同消息的情况下,将所述队列单元保存标识符记录区中与所述已经在请求存储单元中的队列单元对应的保存标识符设置为指示不保存与该消息相关的状态。根据本发明的技术方案,可以减少不必要的外部存储器访问,从而提高处理器的处理速度。
Description
技术领域
本发明涉及数据处理领域,更具体地说,涉及请求控制装置、请求控制方法及相关的处理器。
背景技术
一种常见的多处理器协作架构是,所述多个处理器具有不同的类型。例如,一个通用处理器作为主处理器,加上多个与该通用处理器对应的专用处理器作为协处理器。所述专用处理器针对某些特殊应用进行了特别的优化,从而在处理所述特殊应用时具有比通用处理器更高的性能。所述应用可以是,例如,加密/解密、压缩/解压缩、编码/解码、模式匹配或XML解析等。图1给出了这种架构的示意图。通用处理器将需要进行处理的数据通过请求存储单元发送给专用处理器,专用处理器将处理得到的结果通过结果存储单元发送给通用处理器。
一般来说,请求存储单元或结果存储单元设置在专用处理器的芯片内部,由于芯片面积的限制,请求存储单元或结果存储单元的容量通常都比较小,例如典型的请求存储单元只能容纳8个或16个请求。为了解决这一问题,可以在外部存储器开辟存储区,从而对芯片内部的请求存储单元或结果存储单元进行扩展。以下为了描述的方便,将请求存储单元位于芯片内部的部分称为首要请求存储区,将请求存储单元位于外部存储器中的扩展部分称为辅助请求存储区。首要请求存储区和辅助请求存储区都是请求存储单元的一部分。类似地,将结果存储单元位于芯片内部的部分称为首要结果存储区,将结果存储单元位于外部存储器中的扩展部分称为辅助结果存储区。首要结果存储区和辅助结果存储区都是结果存储单元的一部分。下面示例性地说明辅助请求存储区的工作原理,本领域技术人员可以容易地推知辅助结果存储区的工作方式。此外,本领域技术人员也可以理解,这里所谓的外部存储器指的是除了芯片内部的存储单元以外的其他存储器,例如高速缓存(cache),内存、硬盘等。本领域技术人员可以设计出很多方法来决定在何种外部存储器中开辟所述辅助请求存储区。
辅助请求存储区是外部存储器中的一块存储区,芯片内部的请求存储单元存取装置可以记录该辅助请求存储区的首地址。所述请求存储单元存取装置可以是芯片内部的请求控制装置的一部分。在芯片内部的首要请求存储区处于填满状态的情况下,如果接收到新的请求,请求存储单元存取装置会将该新的请求送入外部存储器中的辅助请求存储区,并且记录该新的请求在辅助请求存储区中的位置,即相对于辅助请求存储区首地址的偏移量。当然,请求存储单元存取装置也可以以其他方式记录该请求在外部存储器中的位置,而不仅限于此处所描述的用辅助请求存储区的首地址加上该请求相对于辅助请求存储区首地址的偏移量的方式。在所述首要请求存储区不再处于填满状态时,请求存储单元存取装置可以将辅助请求存储区中的请求读出并放入首要请求存储区中。
上述方法解决了芯片内部的请求存储单元或结果存储单元容量小的问题。但是仍然存在需要进一步改进请求存储单元存取装置和辅助结果存储区管理装置以便适应实际应用中的复杂情况的需要。
发明内容
本发明提供了请求控制装置、请求控制方法以及相关的处理器。
所述请求控制设备,连接到由首要请求存储区和辅助请求存储区构成的请求存储单元,包括:队列单元保存标识符记录区,配置为记录与所述请求存储单元中的队列单元对应的保存标识符;比较装置,配置为判断到来的第一队列单元是否与已经在请求存储单元中的队列单元对应于相同消息;和置标装置,配置为在所述第一队列单元与所述已经在请求存储单元中的队列单元对应于相同消息的情况下,将所述队列单元保存标识符记录区中与所述已经在请求存储单元中的队列单元对应的保存标识符设置为指示不保存与该消息相关的状态。
连接到上述请求存储单元的处理器还包括读标装置,配置为根据所述队列单元保存标识符记录区中记录的与队列单元对应的保存标识符确定在处理完该队列单元后是否保存与队列单元相关的消息状态。
根据本发明实施例的用于控制由首要请求存储区和辅助请求存储区构成的请求存储单元的请求控制方法包括:在队列单元保存标识符记录区中记录与所述请求存储单元中的队列单元对应的保存标识符;判断到来的第一队列单元是否与已经在请求存储单元中的队列单元对应于相同消息;和在所述第一队列单元与所述已经在请求存储单元中的队列单元对应于相同消息的情况下,将所述队列单元保存标识符记录区中与所述已经在请求存储单元中的队列单元对应的保存标识符设置为指示不保存与该队列单元相关的消息状态。
根据本发明的技术方案,可以减少由于不必要的保存/加载状态引起的外部存储器访问,还可以减少设置队列单元的保存标识符时所需的外部存储器访问,从而提高处理器的处理速度。进一步,根据本发明的某些实施例,还可以减少比较两个队列单元是否对应于相同消息时所需的外部存储器访问。
附图说明
图1示出了典型的多处理器协作架构。
图2示出了结合预处理的消息发送-接收流程。
图3是专用处理器的请求存储单元和相应的消息状态切换的示意。
图4A示出了根据本发明一个实施例的多处理器协作架构。
图4B示出了图4A的实施例所对应的专用处理器的请求存储单元和相应的消息状态切换的示意。
图5示出了根据本发明另一个实施例的多处理器协作架构。
图6A示出了根据本发明又一个实施例的多处理器协作架构。
图6B示出了图6A的实施例所对应的专用处理器的请求存储单元和相应的消息状态切换的示意。
图7示出了根据本发明再一个实施例的多处理器协作架构。
具体实施方式
以下参照附图说明本发明提供的处理器和调度处理器的方法的具体实施方式。在下面的说明中,阐述了许多具体细节以便更全面地了解本发明。但是,本技术领域技术人员容易理解,本发明的实现可不具有这些具体细节中的一些,并且本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和要素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所附权利要求的要素或限定,除非权利要求中明确提出。还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。此外,除非刻意地使用“直接”或者“间接”加以限定,否则本申请文件中的连接既包括直接连接,也包括间接地连接。
在网络环境下,原始消息在发送端被包装成多个数据包,每个数据包包括一个原始消息段;这些数据包然后通过网络发送到接收端,由接收端将这些数据包包括的原始消息段组合起来从而恢复原始消息。图2示出了一种常见的结合预处理的消息发送-接收流程。图2所示的流程针对需要发送端和接收端进行对称处理的情况。如图2所示,发送端的通用处理器可以利用发送端的专用处理器对原始消息进行预处理,例如压缩或者加密,形成变形消息,然后再将所述变形消息分成多个变形消息段包装到多个数据包。在这里,原始消息和变形消息是相同消息的两种形式。由于网络环境的不稳定性,虽然发送端连续地发送所述多个数据包,但是接收端可能并不能连续地收到所述多个数据包。根据一种称为无状态处理的方案,接收端的通用处理器可以在收到并解包对应于一个消息的所有数据包后,得到完整的变形消息,再利用接收端的专用处理器对所述变形消息进行逆处理,从而恢复原始消息。根据一种称为有状态处理的方案,接收端的通用处理器也可以每收到并解包一个数据包,就将该数据包所包括的变形消息段发送给接收端的专用处理器,得到原始消息段;然后在收到、解包、逆处理对应于一个消息的所有数据包后,将各个原始消息段组合起来,从而恢复原始消息。
在接收端,对应于不同消息的数据包可能彼此交织地到达接收端。在有状态处理的情况下,接收端的通用处理器解包每个消息包,将所得到的变形消息段按照一定格式封装成队列单元后放入专用处理器的首要请求存储区。首要请求存储区是请求存储单元的一部分。专用处理器在处理队列单元时需要频繁地保存和加载消息状态。图3给出了专用处理器的首要请求存储区和相应的消息状态切换的示例。如图3左侧所示,每一行表示一个队列单元,其至少包括两部分的内容,一部分是消息ID,另一部分是需要处理的数据或指向该数据的指针。在该首要请求存储区中的各队列单元封装了对应于三个消息的变形消息段,即消息A的变形消息段、消息B的变形消息段和消息C的变形消息段。如图3右侧所示,在处理完封装了消息C变形消息段C1的队列单元后,需要保存与消息C相关的消息状态;在准备处理封装了消息C的变形消息段C2的队列单元时,又需要加载与消息C相关的消息状态。更糟的是,专用处理器并不知道前后两个队列单元是否对应于相同消息,因此如图3所示,每次处理完一个队列单元都需要保存对应于该队列单元的消息状态,并且每次准备处理一个队列单元时都需要加载所述消息状态,除非之前没有保存过所述消息状态。这样,频繁地保存和加载所述消息状态就会引起频繁的外部存储器访问,从而大大增加处理延时。
作为替代地,可以判断到来的第一队列单元是否与已经在请求存储单元中的队列单元对应于相同消息;如果到来的第一队列单元与已经位于请求存储单元中的队列单元对应于相同消息,则将所述已经位于请求存储单元中的队列单元的保存标识符设置为指示不保存与该队列单元对应的消息状态。这样,处理器在处理究所述已经位于请求存储单元中的所述队列单元后,就可以不用保存消息状态,从而减少对外部存储器的访问。在以下的描述中,判断甲队列单元是否与乙队列单元对应于相同消息可以是直接判断甲队列单元对应的消息与乙队列单元对应的消息是否相同;如果已经判断出丙队列单元与乙队列单元对应于相同的消息,那么判断甲队列单元是否与乙队列单元对应于相同消息也可以是判断甲队列单元对应的消息与丙队列单元对应的消息是否相同。
图4A示出了根据本发明一个实施例的多处理器协作架构。如前面参照图3所进行的描述,专用处理器并不知道前后两个队列单元是否对应于相同消息,因此导致每次处理完一个队列单元都需要保存对应于该队列单元的消息状态,并且每次准备处理一个队列单元时都需要加载所述消息状态,除非之前没有保存过所述消息状态。根据图4A所示的架构,可以通知专用处理器前后两个队列单元是否对应于相同消息。
如图4A所示,通用处理器和专用处理器之间通过请求存储单元和结果存储单元通信。已经说明,请求存储单元包括位于芯片内部的首要请求存储区和位于外部存储器中的辅助请求存储区;结果存储单元包括位于芯片内部的首要结果存储区和位于外部存储器中的辅助结果存储区。如果通用处理器和专用处理器位于不同的芯片上,首要请求存储区或首要结果存储区可以与通用处理器设置在相同芯片上,也可以与专用处理器设置在相同芯片上。在通用处理器和专用处理器是相同芯片的不同单元的情况下,所述首要请求存储区或首要结果存储区就是芯片上的特定单元。比较装置和置标装置是请求控制装置的一部分,其优选地和首要请求存储区设置在相同位置。请求控制装置还包括请求存储单元存取装置(未示出),其用于将队列单元写入到请求存储单元,以及从请求存储单元读取之前写入的队列单元。
辅助请求存储区的队列单元的数据结构可以与首要请求存储区的队列单元的数据结构相同也可以不同。为了简单起见,以下的描述主要针对辅助请求存储区的队列单元的数据结构与首要请求存储区的队列单元的数据结构相同的情况。
图4A所示的比较装置用于判断当前到来的第一队列单元是否与前一个进入请求存储单元的第二队列单元对应于相同的消息。本领域技术人员可以理解,前一个进入请求存储单元的第二队列单元位于请求存储单元的队列尾。如果判断出所述第一队列单元与所述第二队列单元对应于相同的消息,那么置标装置根据该判断结果设置所述第二队列单元数据结构中的保存标识符。这样,专用处理器在处理所述第二队列单元时,通过读标装置读取所述保存标识符,就知道接下来要处理的所述第一队列单元对应于相同消息,因此不必进行消息状态的保存。
根据本实施例的队列单元的数据结构包括消息ID,用于表示该队列单元对应于哪个消息。比较装置通过比较两个队列单元中的消息ID,就可以确定这两个队列单元是否对应于相同消息。队列单元的数据结构还包括所述保存标识符,用于指示专用处理器在处理完当前队列单元后是否需要保存消息状态。可以将所述保存标识符的默认值设置为指示需要保存消息状态,这样,只有在比较装置判断出第一队列单元和第二队列单元对应于相同的消息时,置标装置才将所述保存标识符的值设置为指示不需要保存消息状态。队列单元的数据结构中所包括的其他内容是本领域的公知常识,在此不再赘述。
所述判断操作和置标操作可以与第一队列单元进入首要请求存储区或辅助请求存储区的操作并行地进行,如何将新的队列单元放入芯片内部首要请求存储区或外部存储器中的辅助请求存储区的中是本领域的公知常识,在此也不再赘述。
比较装置和置标装置可以通过简单的组合电路实现,从而不仅提高了处理速度,还降低了处理的复杂度。例如,比较装置可以通过异或电路实现,在两个消息ID相同的情况下输出1,不同的情况下输出0,假设所述保存标识符的默认值是0,指示需要保存相关的消息状态,那么置标装置只要将比较装置的输出写入到第二队列单元的保存标识符即可。
图4B示出了图4A的实施例所对应的专用处理器的首要请求存储区和相应的消息状态切换的示意。本领域技术人员可以理解,图4B所示的情况是处理器在处理队列单元时的情况,而不是队列单元到来时的情况。在图4B左侧,同样每一行表示一个队列单元,每个队列单元至少包括三部分,第一部分是消息ID,第二部分是需要处理的数据或指向该数据的指针,第三部分是所述保存标识符。注意虚线所环绕的部分。封装了消息C变形消息段C4的队列单元在进入请求存储单元时,根据上面的描述,置标装置将封装了消息C变形消息段C3的队列单元的保存标识符设置为指示不保存消息状态。虽然在图4B中,封装了消息C变形消息段C3的队列单元和封装了消息C变形消息段C4的队列单元位于队列中部而不是队列尾,但是本领域技术人员可以理解,在封装了消息C变形消息段C4的队列单元到来的时候,封装了消息C变形消息段C3的队列单元是位于队列尾的。专用处理器处理完封装了消息C变形消息段C3的队列单元后,就不用为了保存消息状态进行外部存储器的访问;同样,专用处理器在封装了处理消息C变形消息段C4的队列单元时,也不用为了加载消息状态而进行外部存储器的访问。
如果所述第二队列单元位于设置在外部存储器中的辅助请求存储区中,虽然按照上述方法可以减少保存消息状态所需的外部存储器访问,但是却会增加在判断第一队列单元和第二队列单元是否对应于相同的消息时的外部存储器访问,以及增加修改第二队列单元的保存标识符时的外部存储器访问。具体而言,当第一队列单元到来的时候,请求存储单元存取装置需要从外部存储器中的辅助请求存储区读取位于队列尾的第二队列单元,以便比较装置比较第二队列单元与第一队列单元是否对应于相同消息。在将所述第二队列单元的保存标识符设置为指示不保存消息状态后,请求存储单元存取装置还需要将所述第二队列单元写回到外部存储器中的辅助请求存储区,进一步增加了外部存储器访问的次数。
图5示出了根据本发明另外一个实施例的多处理器协作架构。
在图5所示的架构中,相对于图4A所示的架构,在请求控制装置中包括队列单元保存标识符记录区,并且可选地进一步包括了队列单元消息ID记录区,以便减少外部存储器访问的次数。其中,所述队列单元消息ID记录区记录所述请求存储单元中队列尾的所述第二队列单元对应的消息ID,所述队列单元保存标识符记录区针对已经在请求存储单元中的队列单元记录:在处理完该队列单元以后,是否需要保存与该队列单元对应的消息状态。
如前所述,在如图4A所示的架构中,如果所述位于请求存储单元队列尾的第二队列单元位于辅助请求存储区中,增加的外部存储器访问主要来自两个方面:从外部存储器读取第二队列单元,和在第二队列单元和第一队列单元对应于同一消息的情况下将具有修改后的保存标识符的第二队列单元写回到外部存储器中。
针对第一个方面,在图5所示的结构中,由于存在队列单元消息ID记录区,因此比较装置只需要比较第一队列单元的消息ID与队列单元消息ID记录区中记录的消息ID是否相同,就可以判断出第一队列单元与位于请求存储单元队列尾的第二队列单元是否对应于相同的消息,而不用再从外部存储器中读取所述第二队列单元。具体而言,比较装置在第一队列单元到来的时候,将该队列单元的消息ID与保存在队列单元消息ID记录区中的消息ID进行比较。此时所述队列单元消息ID记录区中记录的是第二队列单元的消息ID。比较结束后,比较装置将比较结果输出到置标装置,并且将到来的第一队列单元的消息ID写入队列单元消息ID记录区中。比较图4A中的比较装置和图5中的比较装置的连接关系可以看出:在图4A中,比较装置需要对请求存储单元进行访问;而在图5中,比较装置不需要对请求存储单元进行访问,而只需要对队列单元消息ID记录区进行访问。本领域技术人员可以理解,这里所谓的对请求存储单元进行访问是通过请求存储单元存取装置进行的。
针对第二个方面,在图5所示的结构中,存在队列单元保存标识符记录区。相应地,所述队列单元的数据结构可以省略保存标识符这一数据域。比较图4A中的置标装置和图5中的置标装置的连接关系可以看出:在图4A中,置标装置要对请求存储单元进行访问;而在图5中,置标装置不需要对请求存储单元进行访问,而只需要对队列单元保存标识符记录区进行访问。相应地,专用处理器中的读标装置可以从所述队列单元保存标识符记录区读取与某队列单元对应的保存标识符,从而确定是否需要在处理完该队列单元后保存与该队列单元对应的消息的相关消息状态。
本领域技术人员可以理解,队列单元消息ID记录区的比特数通常可以和队列单元消息ID的比特数一致。
如前所述,每个队列单元的保存标识符实际上只需要一个比特来实现,因此队列单元保存标识符记录区的比特数通常可以和辅助请求存储区中所能容纳的队列单元的数目一致。这对应于队列单元保存标识符记录区仅针对辅助请求存储区中所能容纳的队列单元进行记录的情况。在这种情况下,首要请求存储区中的队列单元的数据结构需要进一步包括保存标识符。
队列单元保存标识符记录区也可以针对首要请求存储区和辅助请求存储区中所能容纳的队列单元均进行记录。在这种情况下,首要请求存储区中的队列单元和辅助请求存储区中的队列单元均不包含保存标识符。在这种情况下,队列单元保存标识符记录区的比特数通常可以和辅助请求存储区中所能容纳的队列单元的数目与首要请求存储区中所能容纳的队列单元的数目之和相一致。
以下的描述中,为了简单起见,假设首要请求存储区中的队列单元和辅助请求存储区中的队列单元的数据结构中均不包含保存标识符,即队列单元保存标识符记录区可以针对首要请求存储区和辅助请求存储区中所能容纳的队列单元均进行记录。
此外,在芯片内部资源受限制的情况下,即使只设置队列单元消息ID记录区和队列单元保存标识符记录区中的一个,也可以减少外部存储器访问的次数。
图6A示出了根据本发明又一个实施例的多处理器协作架构。
根据本实施例,可以设置辅助请求存储区组,其包括两个以上的辅助请求存储区。在本实施例中,辅助请求存储区的数目等于首要请求存储区所能同时容纳的队列单元的总数,即等于首要请求存储区的单位硬件存储单元的总数。这样,为首要请求存储区中的每个队列单元设置相应的辅助请求存储区,可以在处理完首要请求存储区中的某个队列单元后,连续处理多个与该队列单元对应于同一消息的位于辅助请求存储区中的队列单元,从而进一步减少为了保存消息状态而进行的外部存储器访问。本领域技术人员可以理解,辅助请求存储区的数目也可以小于首要请求存储区的单位硬件存储单元的总数,即只为某几个单位硬件存储单元设置辅助请求存储单元。在这种情况下,下述讨论中的单位硬件存储单元只针对设置了辅助请求存储单元的单位硬件存储单元。
在图6A示出的实施例中,为首要请求存储区中的每一个单位硬件存储单元设置专用的辅助请求存储区。一个辅助请求存储区对应于或者专用于首要请求存储区中的一个单位硬件存储单元,表示该辅助请求存储区中专用于存储与首要请求存储区中的该单位硬件存储单元中存储的队列单元对应于相同消息的队列单元。在下面的描述中,提到一个队列单元设置有辅助请求存储区或者对应于辅助请求存储区,指的是该队列单元所在的单位硬件存储单元设置有辅助请求存储区或者对应于辅助请求存储区。
比较装置判断到来的第一队列单元是否与已经在首要请求存储区中的队列单元对应于相同的消息。如果比较装置判断到来的第一队列单元与已经在首要请求存储区中的队列单元,称为第三队列单元,对应于相同的消息,则合并装置将第一队列单元放入与第三队列单元对应的辅助请求存储区中。为了比较第一队列单元是否与第三队列单元对应于相同的消息,可以直接将第一队列单元数据结构中的消息ID与第三队列单元数据结构中的消息ID进行比较。容易理解,由于第三队列单元位于芯片内部的首要请求存储区中,因此只需要与首要请求存储区中的队列单元进行比较,并不需要访问外部存储器。相应地,在图6A所示的结构中,相对于图5所示的结构省去了队列单元消息ID记录区。
如果第一队列单元是进入与第三队列单元对应的辅助请求存储区中的第一个队列单元,即在第一队列单元到来时与第三队列单元对应的辅助请求存储区为空,则置标装置设置与所述第三队列单元对应的保存标识符。由于之前已经假设首要请求存储区中的队列单元和辅助请求存储区中的队列单元的数据结构中均不包含保存标识符,即队列单元保存标识符记录区针对首要请求存储区和辅助请求存储区中所能容纳的队列单元均进行记录,因此置标装置设置与所述第三队列单元对应的保存标识符实际上是设置队列单元保存标识符记录区中与第三队列单元对应的保存标识符。
本领域技术人员可以理解,由于第三队列单元位于首要请求存储区中,即使所述保存标识符设置在第三队列单元的数据结构中,也不会增加外部存储器访问的次数。因此置标装置设置与所述第三队列单元对应的保存标识符可以是设置包含在第三队列单元的数据结构中的保存标识符。
如果第一队列单元不是进入与第三队列单元对应的辅助请求存储区中的第一个队列单元,即在第一队列单元到来时辅助请求存储区不为空,那么置标装置设置在第一队列单元之前进入与第三队列单元对应的辅助请求存储区的队列单元的保存标识符。此后称在第一队列单元之前进入与第三队列单元对应的辅助请求存储区的队列单元为第四队列单元。由于第四队列单元位于外部存储器中,因此置标装置优选地设置队列单元保存标识符记录区中与所述第四队列单元对应的保存标识符。
图6B示出了在针对首要请求存储区中每一个队列单元设置一个辅助请求存储区的情况下,专用处理器的首要请求存储区、辅助请求存储区和相应的消息状态切换。其中虚线表示所连接的两个队列单元在物理位置上是相邻的,但是从处理时间上来说却是隔开的。本领域技术人员可以理解,图6B所示的情况是处理器在处理队列单元时的情况,而不是队列单元到来时的情况。为了简单起见,图6B将辅助请求存储区的队列单元示出为与首要请求存储区的队列单元具有相同的数据结构。
需要说明的是,在图6B中,为了清楚地示出在处理完各队列单元后是否保存消息状态,将各队列单元的保存标识符显示为与队列单元的数据结构并排。如前所述,队列单元保存标识符记录区针对首要请求存储区和辅助请求存储区中所能容纳的队列单元均进行记录。因此,对于第一辅助请求存储区、第二辅助请求存储区、第三辅助请求存储区和首要请求存储区中的队列单元而言,所述保存标识符实际上均由队列单元保存标识符记录区记录。
图6B所示的首要请求存储区和辅助请求存储区是如下这样形成的。通用处理器发出队列单元的顺序和图3、图4B以及图5一样,因此,封装了消息C变形消息段C1的队列单元、封装了消息A变形消息段A1的队列单元、封装了消息B变形消息段B1的队列单元依次进入队列单元。封装了消息C变形消息段C2的队列单元到来时,按照本发明的实施例,合并装置将其放入了第一辅助请求存储区,即对应于封装了消息C变形消息段C1的队列单元的辅助请求存储区,并且置标装置将封装了消息C变形消息段C1的队列单元的保存标识符设置为指示不进行消息状态保存。封装了消息A变形消息段A2的队列单元到来时,按照本发明的实施例,合并装置将其放入第二辅助请求存储区,即对应于封装了消息A变形消息段A1的队列单元的辅助请求存储区,并且置标装置将封装了消息A变形消息段A1的队列单元的保存标识符设置为指示不进行消息状态保存。封装了消息C变形消息段C3的队列单元、封装了消息C变形消息段C4的队列单元依次到来,根据本发明的实施例,合并装置将其放入第一辅助请求存储区并相应地设置相关的保存标识符。封装了消息B变形消息段B2的队列单元到来时,按照本发明的实施例,合并装置将其放入第三辅助请求存储区,即对应于封装了消息B变形消息段B1的队列单元的辅助请求存储区。
比较图6B和图4B,可以看出保存/加载消息状态的数目被进一步减少了。同时,由于到来的第一队列单元只需要与首要请求存储区中的队列单元进行比较,所以在比较两个队列单元是否对应于相同消息时并不增加额外的外部存储器访问。又由于设置了芯片内部的队列单元保存标识符记录区来记录在处理完各队列单元后是否需要进行消息状态保存,因此在修改队列单元的保存标示符时也不会增加额外的外部存储器访问。
图7示出了根据本发明又一个实施例的多处理器协作架构。
在图6A所示的架构中,队列单元保存标识符记录区是采用与各队列单元一一对应的比特来实现的。在图7所示的架构中,用计数器来实现所述队列单元保存标识符记录区。
所述计数器与辅助请求存储区对应地设置,用于指示各辅助请求存储区中队列单元的数目。具体而言,当针对第三队列单元设置的辅助请求存储区为空时,与所述第三队列单元对应的计数器的值为0;每有一个队列单元进入针对第三队列单元设置的辅助请求存储区,与所述第三队列单元对应的计数器的值加1;每处理完与第三队列单元对应的辅助请求存储区中的一个队列单元,与所述第三队列单元对应的计数器的值减1。本领域技术人员还可以容易地规定其他方式来设置所述计数器的值。
所述与所述第三队列单元对应的计数器可以将第一队列单元与第三队列单元相同时置标装置输出的信号作为自加1的信号。如果到来的第一队列单元与第三队列单元对应与相同的消息,如前所述,第一队列单元进入与第三队列单元对应的辅助请求存储区。相应地,置标装置向与第三队列单元对应的计数器发送加1的信号。专用处理器在处理完第三队列单元后,通过读标装置判断所述计数器的值是否为0。如何判断计数器的值是否为0有很多方法,例如可以判断计数器的各个位的“或”运算结果是否为零。如果不为0,说明在与第三队列对应的辅助请求存储区中存在队列单元,从而专用处理器不保存消息状态,继续处理与第三队列单元对应的辅助请求存储区中的第一个队列单元,以后称为第五队列单元。专用处理器处理完第五队列单元后,向与所述第三队列单元对应的计数器发送减1的信号。然后再次通过读标装置判断所述计数器的值是否为0。如果不为0,说明在与第三队列对应的辅助请求存储区中还存在队列单元,从而专用处理器仍然不保存消息状态,继续处理与第三队列单元对应的辅助请求存储区中的第二个队列单元。如此类推,直到处理完与第三队列单元对应的辅助请求存储区中的所有队列单元。
采用计数器实现所述队列单元保存标识符记录区可以减少指示辅助请求存储区中的队列单元是否需要保存消息状态所需的比特数。例如,对于一个能够容纳16个队列单元的辅助请求存储区,如果用与队列单元一一对应的比特来实现所述队列单元保存标识符记录区,则需要16个比特;如果用计数器来实现所述队列单元保存标识符记录区,则需要4个比特。
对于图6A和图7所示的实施例,参照图6B中的首要请求存储区和辅助队列示意,如果对应于消息C的请求单元不停地进入图6B中的第一辅助请求存储区,那么对应于消息A和消息B的请求单元就总是得不到处理。为了克服这一问题,可以在请求控制装置中设置门限装置,检查在一个辅助请求存储区中连续放入对应于相同消息的队列单元的个数是否超过第一阈值。如果超过该第一阈值,则即使比较装置发现到来的第一队列单元与已经在首要请求存储区或辅助请求存储区中的某队列单元对应于相同消息,合并装置也仍然将该第一队列单元放在首要请求存储区的队列尾。假定设该第一阈值为3,那么在图6B中,即使再来一个对应于消息C的队列单元,合并装置也不会将其放入第一辅助请求存储区,而置标装置也不进行相应的置标操作。
第一队列单元到来的时候,有可能首要请求存储区并没有被填满,并且与第一队列单元对应于同一消息的第三队列单元位于首要请求存储区的队列尾。在这种情况下,可以将第一队列单元放入与所述第三队列单元所在的单位硬件存储单元对应的辅助请求存储区,也可以将第一队列单元放入首要请求存储区。将第一队列单元放入首要请求存储区可以避免将第一队列单元放入辅助请求存储区时和专用处理器在处理第一队列单元时对外部存储器的访问。
除了与首要请求存储区中的单位硬件存储单元对应地设置辅助请求存储区之外,还可以设置额外辅助请求存储区。这样如果到来的第一队列单元不与首要请求存储区中设置有辅助请求存储区的任何一个队列单元对应于相同的消息,并且首要请求存储区已经处于填满状态,就可以将到来的队列单元放入所述额外辅助请求存储区中。可以设置两个以上的额外辅助请求存储区,一个额外辅助请求存储区中存放对应于一个消息的队列单元。
当然,所述额外辅助请求存储区也可以动态地设置,从而所述请求控制装置进一步包括额外辅助请求存储区设置装置。如果到来的第一队列单元不与首要请求存储区中设置有辅助请求存储区的任何一个队列单元对应于相同的消息,并且首要请求存储区已经处于填满状态,则进一步比较第一队列单元是否与某个已经设置的额外辅助请求存储区中的队列单元对应于同一消息。如果第一队列单元与某个已经设置的额外辅助请求存储区中的队列单元对应于同一消息,则将第一队列单元放入该已经设置的额外辅助请求存储区,并且将与在第一队列单元之前进入该已经设置的额外辅助请求存储区中的队列单元对应的保存标识符设置为指示不保存消息状态。如果第一队列单元不仅不与首要请求存储区中设置有辅助请求存储区的任何一个队列单元对应于相同的消息,也不与任何一个已经设置的额外辅助请求存储区中的队列单元对应于同一消息,则新设置一个额外辅助请求存储区,以第一队列单元作为该新设置的额外辅助请求存储区的第一个队列单元。
如前所述,额外辅助请求存储区位于外部存储器中,因此为了避免在比较第一队列单元与额外辅助请求存储区中的队列单元是否对应于同一消息时进行外部存储器访问,在请求控制装置内部进一步针对各额外辅助请求存储区设置队列单元消息ID记录区。同样,为了避免在修改与队列单元对应的保存标识符时进行外部存储器访问,所述保存标识符由设置在请求控制装置内部的队列单元保存标识符记录区记录。由于额外辅助请求存储区是动态地设置地,其所能容纳的队列单元数目也可以因此优选地所述队列单元保存标识符记录区由计数器实现,而不是由与各队列单元对应的比特来实现。
根据本发明实施例的用于控制由首要请求存储区和辅助请求存储区构成的请求存储单元的请求控制方法包括:在队列单元保存标识符记录区中记录与所述请求存储单元中的队列单元对应的保存标识符;判断到来的第一队列单元是否与已经在请求存储单元中的队列单元对应于相同消息;和在所述第一队列单元与所述已经在请求存储单元中的队列单元对应于相同消息的情况下,将所述队列单元保存标识符记录区中与所述已经在请求存储单元中的队列单元对应的保存标识符设置为指示不保存与该队列单元相关的消息状态。
以上参照通用处理器和专用处理器的架构描述了本发明的优选实施方式。在这种架构中,专用处理器作为协处理器,在作为主处理器的通用处理器的请求下完成一定数据处理,并且将处理结果发送给通用处理器。本领域技术人员可以理解,本发明可以应用于其他架构。例如,架构中的至少两个处理器可以均为通用处理器,其中至少一个处理器为主处理器,另外至少一个为协处理器。在这种架构中,主处理器和协处理器是相对的,甚至是可以互相转换的。因此,所述请求存储单元应该理解为需要保存状态的一方用来接收数据的单元。本领域技术人员还可以理解,所述主处理器和协处理器可以是不同的处理器芯片,也可以是相同芯片中的不同单元。
本领域的普通技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本实施例的用于控制移动设备能耗的系统及其组件可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
虽然已经图示和描述了本发明的若干示例性实施例,不过本领域技术人员可以理解的是,在不偏离本发明原则和精神的前提下,可以对这些实施例进行改变,本发明的范围由权利要求书及其等价变换所限定。
Claims (10)
1.一种请求控制装置,连接到由首要请求存储区和辅助请求存储区构成的请求存储单元,所述请求控制装置包括:
队列单元保存标识符记录区,配置为记录与所述请求存储单元中的队列单元对应的保存标识符;
比较装置,配置为判断到来的第一队列单元是否与已经在请求存储单元中的队列单元对应于相同消息;和
置标装置,配置为在所述第一队列单元与所述已经在请求存储单元中的队列单元对应于相同消息的情况下,将所述队列单元保存标识符记录区中与所述已经在请求存储单元中的队列单元对应的保存标识符设置为指示不保存与该队列单元相关的消息状态。
2.如权利要求1所述的请求控制装置,其中所述比较装置判断所述第一队列单元是否与所述请求存储单元的队列尾处的第二队列单元对应于相同消息。
3.如权利要求1所述的请求控制装置,其中所述辅助请求存储区与所述首要请求存储区的至少一个单位硬件存储单元对应地设置。
4.如权利要求1所述的请求控制装置,进一步包括:
额外辅助请求存储区设置装置,配置为在所述第一队列单元与已经在请求存储单元中的队列单元均对应于不同消息,并且首要请求存储区已经处于填满状态的情况下,新设置一个额外辅助请求存储区,并且以所述第一队列单元作为该新设置的额外辅助请求存储区的第一个队列单元。
5.如权利要求3或4所述的请求控制装置,进一步包括:
合并装置,配置为在所述第一队列单元与已经在请求存储单元中的队列单元对应于相同消息的情况下,将所述第一队列单元放入与所述已经在请求存储单元中的队列单元对应的辅助请求存储区中。
6.如权利要求1到4中任意一项所述的请求控制装置,进一步包括:
队列单元消息ID记录区,用于记录最后进入辅助请求存储区的队列单元的消息ID。
7.如权利要求1到4中任意一项所述的请求控制装置,其中所述队列单元保存标识符记录区由与队列单元对应的比特实现。
8.如权利要求3或4所述的请求控制装置,其中所述队列单元保存标识符记录区由与各辅助请求存储区对应的计数器实现,其中所述计数器的值表示所述辅助请求存储区中队列单元的数目。
9.如权利要求5所述的请求控制装置,进一步包括:
门限装置,配置为检查在一个辅助请求存储区中连续放入对应于相同消息的队列单元的数目是否超过了第一阈值;
所述置标装置在所述数目不超过所述第一阈值的情况下才将所述已经在请求存储单元中的队列单元的保存标识符设置为指示不保存与该队列单元相关的消息状态;
所述合并装置在所述数目不超过所述第一阈值的情况下才将第一队列单元放入所述辅助请求存储区中。
10.一种请求控制方法,用于控制由首要请求存储区和辅助请求存储区构成的请求存储单元,所述请求控制方法包括:
在队列单元保存标识符记录区中记录与所述请求存储单元中的队列单元对应的保存标识符;
判断到来的第一队列单元是否与已经在请求存储单元中的队列单元对应于相同消息;和
在所述第一队列单元与所述已经在请求存储单元中的队列单元对应于相同消息的情况下,将所述队列单元保存标识符记录区中与所述已经在请求存储单元中的队列单元对应的保存标识符设置为指示不保存与该队列单元相关的消息状态。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010271150.8A CN102385558B (zh) | 2010-08-31 | 2010-08-31 | 请求控制装置、请求控制方法及相关的处理器 |
US13/217,398 US8856461B2 (en) | 2010-08-31 | 2011-08-25 | Request controlling |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010271150.8A CN102385558B (zh) | 2010-08-31 | 2010-08-31 | 请求控制装置、请求控制方法及相关的处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102385558A CN102385558A (zh) | 2012-03-21 |
CN102385558B true CN102385558B (zh) | 2015-08-19 |
Family
ID=45698684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010271150.8A Expired - Fee Related CN102385558B (zh) | 2010-08-31 | 2010-08-31 | 请求控制装置、请求控制方法及相关的处理器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8856461B2 (zh) |
CN (1) | CN102385558B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811403B1 (en) * | 2016-06-22 | 2017-11-07 | Intel Corporation | Method, apparatus and system for performing matching operations in a computing system |
CN116521606B (zh) * | 2023-06-27 | 2023-09-05 | 太初(无锡)电子科技有限公司 | 一种任务处理方法、装置、计算设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627273A (zh) * | 2003-12-10 | 2005-06-15 | 国际商业机器公司 | 数据处理系统的存储器子系统内的存储器推测方法和系统 |
CN1829964A (zh) * | 2003-08-02 | 2006-09-06 | 国际商业机器公司 | 用于处理消息队列的方法、设备和计算机程序 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949251A (en) * | 1988-07-18 | 1990-08-14 | Digital Equipment Corporation | Exactly-once semantics in a TP queuing system |
US7058064B2 (en) * | 2000-02-08 | 2006-06-06 | Mips Technologies, Inc. | Queueing system for processors in packet routing operations |
US7155516B2 (en) | 2000-02-08 | 2006-12-26 | Mips Technologies, Inc. | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory |
US7502829B2 (en) * | 2001-06-21 | 2009-03-10 | Cybersoft, Inc. | Apparatus, methods and articles of manufacture for intercepting, examining and controlling code, data and files and their transfer |
US6820170B1 (en) | 2002-06-24 | 2004-11-16 | Applied Micro Circuits Corporation | Context based cache indexing |
US7895328B2 (en) * | 2002-12-13 | 2011-02-22 | International Business Machines Corporation | System and method for context-based serialization of messages in a parallel execution environment |
US8619790B2 (en) | 2005-06-07 | 2013-12-31 | Broadcom Corporation | Adaptive cache for caching context and for adapting to collisions in a session lookup table |
US8244718B2 (en) | 2006-08-25 | 2012-08-14 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries |
US7925798B2 (en) | 2007-01-26 | 2011-04-12 | Lantiq Deutschland Gmbh | Data packet processing device |
US8862625B2 (en) | 2008-04-07 | 2014-10-14 | Teradata Us, Inc. | Accessing data in a column store database based on hardware compatible indexing and replicated reordered columns |
US7692561B2 (en) | 2008-07-17 | 2010-04-06 | International Business Machines Corporation | Method and apparatus for data decompression in the presence of memory hierarchies |
US8244911B2 (en) | 2008-07-22 | 2012-08-14 | International Business Machines Corporation | Method and apparatus for concurrent and stateful decompression of multiple compressed data streams |
CN102004702B (zh) * | 2009-08-31 | 2015-09-09 | 国际商业机器公司 | 请求控制设备、请求控制方法及相关的处理器 |
-
2010
- 2010-08-31 CN CN201010271150.8A patent/CN102385558B/zh not_active Expired - Fee Related
-
2011
- 2011-08-25 US US13/217,398 patent/US8856461B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829964A (zh) * | 2003-08-02 | 2006-09-06 | 国际商业机器公司 | 用于处理消息队列的方法、设备和计算机程序 |
CN1627273A (zh) * | 2003-12-10 | 2005-06-15 | 国际商业机器公司 | 数据处理系统的存储器子系统内的存储器推测方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102385558A (zh) | 2012-03-21 |
US20120054451A1 (en) | 2012-03-01 |
US8856461B2 (en) | 2014-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101853237B (zh) | 片上系统及axi总线下的传输方法 | |
US8769034B2 (en) | Query performance data on parallel computer system having compute nodes | |
CN109408257B (zh) | 用于片上网络noc的数据传输方法、装置及电子设备 | |
KR100939398B1 (ko) | 광대역 네트워크들을 위한 컴퓨터 아키텍쳐에서의 외부데이터 인터페이스 | |
CN101841471B (zh) | 具有连接成多维矩阵的节点的系统及其控制方法以及设备 | |
US20090161685A1 (en) | Method, system and node for backpressure in multistage switching network | |
US11611518B2 (en) | System-in-package network processors | |
CN114388040B (zh) | 通知进程或可编程原子操作捕获的方法 | |
CN114095427A (zh) | 一种处理数据报文的方法和网卡 | |
CN102385558B (zh) | 请求控制装置、请求控制方法及相关的处理器 | |
CN114385236A (zh) | 传递可编程原子操作符到存储器控制器 | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
CN102004702B (zh) | 请求控制设备、请求控制方法及相关的处理器 | |
CN110620734A (zh) | Tcp链路数据处理方法及装置 | |
US11698791B2 (en) | On-demand programmable atomic kernel loading | |
CN102646058A (zh) | 多节点计算系统下选择共享内存所在节点的方法和装置 | |
CN114039894B (zh) | 一种基于矢量包的网络性能优化方法、系统、设备、介质 | |
CN113722110B (zh) | 计算机系统、内存访问方法及设备 | |
CN113742079B (zh) | K8s七层负载均衡策略实现的方法及应用 | |
EP4075743A1 (en) | Secure computing control method, data packet processing method and device and system thereof | |
CN110166373B (zh) | 源物理机向目的物理机发数据的方法、装置、介质和系统 | |
US10268529B2 (en) | Parallel processing apparatus and inter-node communication method | |
CN113364676A (zh) | 一种数据流处理的方法及装置 | |
CN111245809A (zh) | 跨层数据处理方法及系统 | |
CN116938635A (zh) | 依赖多信道环网的死锁避免方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150819 Termination date: 20200831 |
|
CF01 | Termination of patent right due to non-payment of annual fee |