发明内容
本发明的目的在于克服上述现有技术的不足,提出了一种结构相对简单的同时可以提供较高带宽,并且具有良好的并行性、可扩展性以及公平性的互联结构及其方法。
本发明的多核网络处理器的片上互联结构,快速互联模块与处理单元(1)、处理单元(2)、SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元之间用读数据标识总线、写标识总线、写数据总线、命令总线连接;慢速互联模块与处理单元(1)、处理单元(2)、DRAM控制单元(1)、DRAM控制单元(2)用读数据标识总线、写标识总线、写数据总线、命令总线连接。
处理单元(1)和处理单元(2),用于发送命令信息、写数据信息,接收读数据标识信息、写标识信息。
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元,用于快速地接收命令信息、写数据信息,发送读数据标识信息、写标识信息。
DRAM控制单元(1)、DRAM控制单元(2),用于慢速地接收命令信息、写数据信息,发送读数据标识信息、写标识信息。
快速互联模块,用于将处理单元(1)、处理单元(2)的命令信息、写数据信息发送到SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元,将SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元的读数据标识信息、写标识信息发送到处理单元(1)、处理单元(2)。
慢速互联模块,用于将处理单元(1)、处理单元(2)的命令信息、写数据信息发送到DRAM控制单元(1)、DRAM控制单元(2),将DRAM控制单元(1)、DRAM控制单元(2)的读数据标识信息、写标识信息发送到处理单元(1)、处理单元(2)。
本发明多核网络处理器的片上互联方法,包括如下步骤:
(1)发送命令
处理单元(1)与处理单元(2)发出数据请求命令。
(2)选择命令
2a)命令单元(1)与命令单元(2)中的仲裁器对命令总线上的命令信息进行译码,使能FIFO写总线,将命令信息写入先入先出队列FIFO。
2b)仲裁器监测FIFO空状态总线,对不为空的先入先出队列FIFO进行优先级仲裁,使能当前最高优先级先入先出队列FIFO对应的FIFO读总线,将命令信息读出先入先出队列FIFO。
2c)多路选择器依据仲裁器发出的选择信号,选择相应的通路。
(3)接收命令
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)通过对命令总线上的命令信息进行译码后,分别接收发往本单元的命令。
(4)判断命令是否为读命令
4a)SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)对接收的命令进行译码,获得处理单元发送的命令类型。
4b)判断处理单元发送的命令类型是否为读命令,如果是,则执行步骤(5);如果否,则执行步骤(8)。
(5)发送读数据标识信息
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)发送读数据标识信息。
(6)选择读数据标识信息
6a)读数据标识单元(1)、读数据标识单元(2)中的仲裁器对读数据标识总线中的读数据标识信息进行译码,使能FIFO写总线,将读数据标识信息写入先入先出队列FIFO。
6b)仲裁器监测FIFO空状态总线,对不为空的先入先出队列FIFO进行优先级仲裁,使能当前最高优先级先入先出队列FIFO对应的FIFO读总线,将读数据标识信息读出先入先出队列FIFO。
6c)多路选择器依据仲裁器发出的选择信号选择相应的通路。
(7)接收读数据标识信息
处理单元(1)、处理单元(2)通过对读数据标识总线上的读数据标识信息进行译码后,分别接收发往本单元的读数据标识信息。
(8)发送写标识信息
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)发送读数据标识信息。
(9)选择写标识信息
9a)写标识单元(1)、写标识单元(2)中的仲裁器对写标识总线中的写标识信息进行译码,使能FIFO写总线,将写标识信息写入先入先出队列FIFO。
9b)仲裁器监测FIFO空状态总线,对不为空的先入先出队列FIFO进行优先级仲裁,使能当前最高优先级先入先出队列FIFO对应的FIFO读总线,将写标识信息读出先入先出队列FIFO。
9c)多路选择器依据仲裁器发出的选择信号,选择相应的通路。
(10)接收写标识信息
处理单元(1)、处理单元(2)通过对写标识总线上的写标识信息进行译码后,分别接收发往本单元的写标识信息。
(11)发送写数据信息
处理单元(1)、处理单元(2)分别通过对接收的写标识信息进行译码后,发送写数据信息。
(12)选择写数据信息
写数据单元(1)、写数据单元(2)、写数据单元(3)中的译码器依据写标识单元(1)、写标识单元(2)、写标识(3)中仲裁器发出的数据选择信号,选择相应通路。
(13)接收写数据信息
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)通过对写数据总线上的写数据信息进行译码后,分别接收发往本单元的写数据信息。
本发明与现有技术相比有以下特点:
第一,由于本发明的***中每个共享资源都有一组命令总线、读数据标识总线、写标识总线、写数据总线,克服了现有技术共享总线结构所带来扩展性差的缺点,使得本发明共享资源的数量可以根据需要进行扩展。
第二,由于本发明的***采用的互联结构使得各处理单元可以并行工作,克服了现有技术通信带宽比较低的缺点,从而使得本发明通信带宽比较高。
第三,由于本发明的***将片上互联结构分为快速互联结构和慢速互联结构,克服了现有技术处理单元和共享资源之间点对点连接带来的结构复杂、面积大、成本高的缺点,使得本发明片上互联结构相对简单,面积和成本控制比较理想。
第四,由于本发明的方法保证了命令选择和数据选择的公平性,使得本发明处理单元和共享资源可以充分发挥性能。
具体实施方式
下面结合附图对本发明的结构做进一步的描述。
参照附图1,本发明的结构包括处理单元(1)、处理单元(2)、SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)。由于SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元和DRAM控制单元(1)、DRAM控制单元(2)在接收数据和发送数据速度的快慢上存在差异,所以将片上互联分为快速互联模块和慢速互联模块。同时为了使片上互联结构具备良好的扩展性,处理单元(1)、处理单元(2)、SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)分别拥有一组读数据标识总线、写标识总线、写数据总线、命令总线。快速互联模块与处理单元(1)、处理单元(2)、SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元之间用读数据标识总线、写标识总线、写数据总线、命令总线连接;慢速互联模块与处理单元(1)、处理单元(2)、DRAM控制单元(1)、DRAM控制单元(2)用读数据标识总线、写标识总线、写数据总线、命令总线连接;处理单元(1)和处理单元(2),用于发送命令信息、写数据信息,接收读数据标识信息、写标识信息;SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元,用于快速地接收命令信息、写数据信息,发送读数据标识信息、写标识信息;DRAM控制单元(1)、DRAM控制单元(2),用于慢速地接收命令信息、写数据信息,发送读数据标识信息、写标识信息;快速互联模块,用于将处理单元(1)、处理单元(2)的命令信息、写数据信息发送到SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元,将SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元的读数据标识信息、写标识信息发送到处理单元(1)、处理单元(2);慢速互联模块,用于将处理单元(1)、处理单元(2)的命令信息、写数据信息发送到DRAM控制单元(1)、DRAM控制单元(2),将DRAM控制单元(1)、DRAM控制单元(2)的读数据标识信息、写标识信息发送到处理单元(1)、处理单元(2)。
参照附图2,本发明结构中的快速互联模块包括读数据标识单元(1)、读数据标识单元(2)、写标识单元(1)、写标识单元(2)、写数据单元(1)、写数据单元(1)、命令单元(1)。这样每个处理单元分别与一组读数据标识单元、写标识单元、写数据单元相对应,可以使SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元可以快速、并行地发送和接收数据信息。由于一个命令可以请求多组数据,SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元接收命令的次数远小于发送和接收数据的次数,所以快速互联模块中在处理单元(1)、处理单元(2)与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元之间只设置了一个命令单元(1)。在快速互联模块中的读数据标识单元(1)包括一个仲裁器、四个FIFO、一个多路选择器;仲裁器的输入端通过读数据标识总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接;仲裁器的输出端通过FIFO写总线、FIFO读总线与四个FIFO连接;四个FIFO的输入端通过读数据标识总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接;四个FIFO的输出端通过FIFO空状态总线与仲裁器连接;多路选择器的输入端通过FIFO总线与四个FIFO连接;多路选择器的输入端通过选择总线与仲裁器连接;所述的多路选择器的输出端通过读数据标识总线与处理单元(1)连接。
快速互联模块中的读数据标识单元(2)包括一个仲裁器、四个FIFO、一个多路选择器;仲裁器的输入端通过读数据标识总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接;仲裁器的输出端通过FIFO写总线、FIFO读总线与四个FIFO连接;四个FIFO的输入端通过读数据标识总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接;四个FIFO的输出端通过FIFO空状态总线与仲裁器连接;多路选择器的输入端通过FIFO总线与四个FIFO连接;多路选择器的输入端通过选择总线与仲裁器连接;多路选择器的输出端通过读数据标识总线与处理单元(2)连接。
快速互联模块中的写标识单元(1)包括一个仲裁器、四个FIFO、一个多路选择器;仲裁器的输入端通过写标识总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接;仲裁器的输出端通过FIFO写总线、FIFO读总线与四个FIFO连接;四个FIFO的输入端通过写标识总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接;四个FIFO的输出端通过FIFO空状态总线与仲裁器连接;多路选择器的输入端通过FIFO总线与四个FIFO连接;多路选择器的输入端通过选择总线与仲裁器连接;多路选择器的输出端通过写标识总线与处理单元(1)连接。
快速互联模块中的写标识单元(2)包括一个仲裁器、四个FIFO、一个多路选择器;仲裁器的输入端通过写标识总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接;仲裁器的输出端通过FIFO写总线、FIFO读总线与四个FIFO连接;四个FIFO的输入端通过写标识总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接;四个FIFO的输出端通过FIFO空状态总线与仲裁器连接;多路选择器的输入端通过FIFO总线与四个FIFO连接;多路选择器的输入端通过选择总线与仲裁器连接;多路选择器的输出端通过写标识总线与处理单元(2)连接。
快速互联模块中的写数据单元(1)包括一个译码器,译码器的输入端通过写数据总线与处理单元(1)连接;译码器的输入端通过数据选择总线与写标识单元(1)中的仲裁器连接;译码器的输出端通过写数据总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接。
快速互联模块中的写数据单元(2)包括一个译码器,译码器的输入端通过写数据总线与处理单元(2)连接;译码器的输入端通过数据选择总线与写标识单元(2)中的仲裁器连接;译码器的输出端通过写数据总线与SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元连接。
快速互联模块中的命令单元(1)包括一个仲裁器、两个FIFO、一个多路选择器,仲裁器的输入端通过命令总线与处理单元(1)、处理单元(2)连接;仲裁器的输出端通过FIFO写总线、FIFO读总线与两个FIFO连接;两个FIFO的输入端通过命令总线与处理单元(1)、处理单元(2)连接;两个FIFO的输出端通过FIFO空状态总线与仲裁器连接;多路选择器的输入端通过FIFO总线与两个FIFO连接;多路选择器的输入端通过选择总线与仲裁器连接;多路选择器的输出端通过命令总线与DRAM控制单元(1)、DRAM控制单元(2)连接。
仲裁器,用于监测输入的总线、FIFO空状态总线,控制先入先出队列FIFO的写入和读出,发出选择信号选通多路选择器;先入先出队列FIFO,用于缓存对应的信息;多路选择器,用于选通相应的数据通路;译码器,用于选通相应的数据通路。
参照附图3,慢速互联模块中包括读数据标识单元(3)、写标识单元(3)、写数据单元(3)、命令单元(2)。由于DRAM控制单元(1)、DRAM控制单元(2)接收和发送数据速度比较慢,所以处理单元(1)、处理单元(2)与DRAM控制单元(1)、DRAM控制单元(2)之间只有一组读数据标识单元、写标识单元、写数据单元。一个命令可以请求多个数据,所以也同样只设置了一个命令单元。慢速互联模块中的读数据标识单元(3)包括一个仲裁器、两个FIFO、一个多路选择器;仲裁器的输入端通过读数据标识总线与DRAM控制单元(1)、DRAM控制单元(2)连接;仲裁器的输出端通过FIFO写总线、FIFO读总线与两个FIFO连接;两个FIFO的输入端通过读数据标识总线与DRAM控制单元(I)、DRAM控制单元(2)连接;两个FIFO的输出端通过FIFO空状态总线与仲裁器连接;所述多路选择器的输入端通过FIFO总线与两个FIFO连接;多路选择器的输入端通过选择总线与仲裁器连接;多路选择器的输出端通过写标识总线与处理单元(1)、处理单元(2)连接;
慢速互联模块中的写标识单元(3)包括一个仲裁器、两个FIFO、一个多路选择器;仲裁器的输入端通过写标识总线与DRAM控制单元(1)、DRAM控制单元(2)连接;仲裁器的输出端通过FIFO写总线、FIFO读总线与两个FIFO连接;两个FIFO的输入端通过写标识总线与DRAM控制单元(1)、DRAM控制单元(2)连接;两个FIFO的输出端通过FIFO空状态总线与仲裁器连接;多路选择器的输入端通过FIFO总线与两个FIFO连接;多路选择器的输入端通过选择总线与仲裁器连接;多路选择器的输出端通过写标识总线与处理单元(1)、处理单元(2)连接;
慢速互联模块的写数据单元(3)包括一个多路选择器、一个译码器;多路选择器的输入端通过写数据总线与处理单元(1)、处理单元(2)连接;多路选择器的输入端通过选择总线与写标识单元(3)中的仲裁器连接;多路选择器的输出端通过输出总线与译码器连接;译码器的输入端通过选择总线与写标识单元(3)中的仲裁器连接;译码器的输出端通过写数据总线与DRAM控制单元(1)、DRAM控制单元(2)连接;
仲裁器,用于监测输入的总线、FIFO空状态总线,控制FIFO的写入和读出,发出选择信号选通多路选择器;先入先出队列FIFO,用于缓存对应的信息;多路选择器,用于选通相应的数据通路;译码器,用于选通相应的数据通路。
参照附图4,对本发明方法的具体步骤描述如下。
步骤1.发送命令
处理单元(1)与处理单元(2)并行地发出数据请求命令,命令中包含目标单元、命令类型、数据地址等信息,可以在后面的操作中通过对命令信息的译码得到正确的操作。
步骤2.选择命令
由于每个先入先出FIFO都有相对应的处理单元,同时快速互联模块和慢速互联模块中都有命令单元,所以需要仲裁器对命令总线上的命令信息进行译码,控制命令信息的写入。仲裁器的优先级算法需要保证命令选择的公平性,优先级不断轮询。
2a)命令单元(1)与命令单元(2)中的仲裁器对命令总线上的命令信息进行译码,使能FIFO写总线,将命令信息写入先入先出队列FIFO。
2b)仲裁器监测FIFO空状态总线,对不为空的先入先出队列FIFO进行优先级仲裁,使能当前最高优先级先入先出队列FIFO对应的FIFO读总线,将命令信息读出先入先出队列FIFO。
2c)多路选择器依据仲裁器发出的选择信号,选择相应的通路。
步骤3.接收命令
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)通过对命令总线上的命令信息进行译码后,分别接收发往本单元的命令。
步骤4.判断命令是否为读命令
处理单元发来的命令有两种,一种是读命令,一种是写命令。SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)对于读命令和写命令的处理方式不同,所以需要判断命令的类型。
4a)SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)对接收的命令进行译码,获得处理单元发送的命令类型。
4b)判断处理单元发送的命令类型是否为读命令,如果是,则执行步骤(5);如果否,则执行步骤(8)。
步骤5.发送读数据标识信息
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)根据命令中的信息,发送读数据标识信息,读数据标识信息中包含数据和标识信息。
步骤6.选择读数据标识信息
由于每个先入先出FIFO都有相对应的单元,同时快速互联模块和慢速互联模块中都有读数据标识单元,所以需要仲裁器对读数据标识总线上的读数据标识信息进行译码,控制读数据标识信息的写入。仲裁器的优先级算法需要保证读数据标识信息选择的公平性,优先级不断轮询。
6a)读数据标识单元(1)、读数据标识单元(2)、读数据标识单元(3)中的仲裁器对读数据标识总线中的读数据标识信息进行译码,使能FIFO写总线,将读数据标识信息写入先入先出队列FIFO。
6b)仲裁器监测FIFO空状态总线,对不为空的先入先出队列FIFO进行优先级仲裁,使能当前最高优先级先入先出队列FIFO对应的FIFO读总线,将读数据标识信息读出先入先出队列FIFO。
6c)多路选择器依据仲裁器发出的选择信号选择相应的通路。
步骤7.接收读数据标识信息
处理单元(1)、处理单元(2)通过对读数据标识总线上的读数据标识信息进行译码后,分别接收发往本单元的读数据标识信息。
步骤8.发送写标识信息
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)发送写标识信息。
步骤9.选择写标识信息
由于每个先入先出FIFO都有相对应的单元,同时快速互联模块和慢速互联模块中都有读数据标识单元,所以需要仲裁器对命令总线上的命令信息进行译码,控制写标识信息的写入。仲裁器的优先级算法需要保证命令选择的公平性,优先级不断轮询。
第一步,写标识单元(1)、写标识单元(2)、写标识单元(3)中的仲裁器对写标识总线中的写标识信息进行译码,使能FIFO写总线,将写标识信息写入先入先出队列FIFO。
第二步,仲裁器监测FIFO空状态总线,对不为空的先入先出队列FIFO进行优先级仲裁,使能当前最高优先级先入先出队列FIFO对应的FIFO读总线,将写标识信息读出先入先出队列FIFO。
第三步,多路选择器依据仲裁器发出的选择信号,选择相应的通路。
步骤10.接收写标识信息
处理单元(1)、处理单元(2)通过对写标识总线上的写标识信息进行译码后,确定写标识信息的目标单元,接收发往本单元的写标识信息。
步骤11.发送写数据信息
处理单元(1)、处理单元(2)分别通过对接收的写标识信息进行译码后,得到写数据信息,发送写数据信息。
步骤12.选择写数据信息
写数据信息的选通应该同写标识信息的选通相对应。
写数据单元(1)、写数据单元(2)、写数据单元(3)中的译码器依据写标识单元(1)、写标识单元(2)、写标识(3)中仲裁器发出的数据选择信号,选择相应通路。
步骤13.接收写数据信息
SRAM控制单元(1)、SRAM控制单元(2)、网络包I/O接口单元、加解密单元、DRAM控制单元(1)、DRAM控制单元(2)通过对写数据总线上的写数据信息进行译码后,分别接收发往本单元的写数据信息。