CN105701065A - 一种协议表可变更协议处理器的实现方法 - Google Patents
一种协议表可变更协议处理器的实现方法 Download PDFInfo
- Publication number
- CN105701065A CN105701065A CN201610027839.3A CN201610027839A CN105701065A CN 105701065 A CN105701065 A CN 105701065A CN 201610027839 A CN201610027839 A CN 201610027839A CN 105701065 A CN105701065 A CN 105701065A
- Authority
- CN
- China
- Prior art keywords
- item
- agreement table
- agreement
- address
- ram
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 235000012364 Peperomia pellucida Nutrition 0.000 claims description 5
- 240000007711 Peperomia pellucida Species 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 4
- 239000012634 fragment Substances 0.000 description 13
- 239000013598 vector Substances 0.000 description 10
- 230000009286 beneficial effect Effects 0.000 description 2
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 1
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 1
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 description 1
- 101150046378 RAM1 gene Proteins 0.000 description 1
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 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/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明特别涉及一种协议表可变更协议处理器的实现方法。该协议表可变更协议处理器的实现方法,所述协议表包括存储协议表输出项的RAM和存储协议表输入项与输出项对应关系的CAM两部分,所述存储协议表输入项与RAM地址的对应关系是多对一,而非一对一的,所述CAM的作用是从数据内容中查找指定数据所在的地址,建立数据内容和数据地址的对应关系,由于协议表的协议内容可通过系统总线写入存储器,因而具有可变性。该协议表可变更协议处理器的实现方法,打破了常用的组合逻辑实现协议表的想法,使得协议表能够在硬件不做改变的情况下进行更新,大大增加了系统的兼容性和容错性,能够实现协议表的在线升级和更新。
Description
技术领域
本发明涉及服务器散热技术领域,特别涉及一种协议表可变更协议处理器的实现方法。
背景技术
协议处理器广泛应用于计算机、通信等领域。其核心是按照协议表对消息进行处理和转发。通常协议表多采用组合逻辑电路实现,硬件设计一旦固化协议表本身也就固定了,无法更改。要实现协议的完善和升级,必须重新设计硬件电路,成本高,周期长。
基于上述问题,本发明设计了一种协议表可变更协议处理器的实现方法。采用两级存储器件替代组合逻辑电路来实现协议表。由于存储器可通过系统总线进行读写访问,故而在不改变硬件电路的前提下使得协议表可变更,大大增加了系统的兼容性和容错性,能够实现协议表的在线升级和更新。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的协议表可变更协议处理器的实现方法。
本发明是通过如下技术方案实现的:
一种协议表可变更协议处理器的实现方法,其特征在于:将协议处理器所依循的协议表用存储器件实现,所述协议表包括存储协议表输出项的RAM和存储协议表输入项与输出项对应关系的CAM两部分,所述存储协议表输入项与RAM地址的对应关系是多对一,而非一对一的,所述CAM的作用是从数据内容中查找指定数据所在的地址,建立数据内容和数据地址的对应关系,由于协议表的协议内容可通过系统总线写入存储器,因而具有可变性。
本发明协议表可变更协议处理器的实现方法,包括以下步骤:
(1)根据协议表确定协议表输入项的位宽M,协议表输出项的位宽N和项数L;
(2)在协议处理器中设置一个用于存储协议表输出项的随机读写存储器,即RAM,所述RAM中存储的内容即为协议表的输出状态,其位宽为N,深度为协议表的状态转换项数L;
(3)在协议处理器中设置一个内容地址存储器,即CAM,所述CAM用于存储协议表输入项对应的RAM地址,建立数据内容和数据地址的对应关系,由于需要存储的输出状态是有限的,由输入项查找CAM得到对应的RAM地址,再读取RAM内容,便能得到输出项。
所述协议表输入项和协议表输出项的内容分别用一串二进制的数字表示,所述协议表输入项的位宽M是确定的,考虑到协议的可扩展性,协议表输入项包含用到的全部信号;所述位宽N即为协议表输出项的位宽,所述项数L为协议表中状态转换项的数目,考虑到协议的可扩展性,所述项数L留出一定余量以便以后增加协议表的状态转换项。
本发明的有益效果是:该协议表可变更协议处理器的实现方法,打破了常用的组合逻辑实现协议表的想法,使得协议表能够在硬件不做改变的情况下进行更新,大大增加了系统的兼容性和容错性,能够实现协议表的在线升级和更新。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该协议表可变更协议处理器的实现方法,将协议处理器所依循的协议表用存储器件实现,所述协议表包括存储协议表输出项的RAM和存储协议表输入项与输出项对应关系的CAM两部分,所述存储协议表输入项与RAM地址的对应关系是多对一,而非一对一的,所述CAM的作用是从数据内容中查找指定数据所在的地址,建立数据内容和数据地址的对应关系,由于协议表的协议内容可通过系统总线写入存储器,因而具有可变性。
本发明协议表可变更协议处理器的实现方法,包括以下步骤:
(1)根据协议表确定协议表输入项的位宽M,协议表输出项的位宽N和项数L;
(2)在协议处理器中设置一个用于存储协议表输出项的随机读写存储器,即RAM,所述RAM中存储的内容即为协议表的输出状态,其位宽为N,深度为协议表的状态转换项数L;
(3)在协议处理器中设置一个内容地址存储器,即CAM,所述CAM用于存储协议表输入项对应的RAM地址,建立数据内容和数据地址的对应关系,由于需要存储的输出状态是有限的,由输入项查找CAM得到对应的RAM地址,再读取RAM内容,便能得到输出项。
所述协议表输入项和协议表输出项的内容分别用一串二进制的数字表示,所述协议表输入项的位宽M是确定的,考虑到协议的可扩展性,协议表输入项包含用到的全部信号;所述位宽N即为协议表输出项的位宽,所述项数L为协议表中状态转换项的数目,考虑到协议的可扩展性,所述项数L留出一定余量以便以后增加协议表的状态转换项。
对于位宽为M的输入,可能的输入组合有2M个,通常远远大于L。这是因为输入中合法状态有限,而不同的合法状态又可能归并到同一条表项中,因而不同的输入项可能对应到同一个RAM地址。可行的一种办法是将CAM用多个RAM实现,该RAM后文简称寻址RAM。每个寻址RAM其地址为输入项的一个片段,存储内容为一个地址记录向量,记录输入项片段和输出RAM地址可能的对应关系。寻址RAM的写端口用来接收系统总线的写入和擦除信息,读端口用来进行地址匹配。当CAM接收到一条输入项后,将输入项拆分成片段作为寻址RAM地址,从各个寻址RAM中读出地址记录向量,找出地址记录向量的交集便可以确定该输入状态对应到输出RAM的地址。
复杂协议表的输入项和输出项较多,通常在几十到上百比特。如果直接将输入项作为地址,输出项作为数据存储在一个随机读写存储器中,需要的存储空间随着输入项位数的增多呈指数增长,占用存储资源过大,甚至根本无法实现。通常协议表的状态转换项数有限,远远小于输入项的所有可能组合。这是因为在系统中并不是所有的状态都是合法的,同时不同的合法状态也可能有相同的输出项。
本发明中存储协议表输入项与RAM地址的对应关系是多对一,而非一对一的。本发明给出了一种该类CAM的实现方法。CAM的作用是从数据内容查找该数据所在的地址,建立数据内容和数据地址的对应关系。反之,如果将数据内容作为RAM地址,将数据地址信息本身作为RAM数据,也能够建立起数据内容和数据地址的对应关系。只是数据内容位宽较宽,而数据地址个数有限,如果直接建立这样的RAM,所占用空间也是随着数据内容位宽增长呈指数增长,无法实现。如果将数据内容做拆分,分为互不包含的几个片段,每个片段都建立起这样的RAM用以存储该数据内容片段和对应地址的关系,那么综合所有片段就能够找出完整数据内容对应的唯一地址。需要注意的是拆分后的数据内容片段和地址并不是一对一的关系,而是一对多的,需要利用一定的数据结构来存储地址信息。比较简单的实现方法是用一个位宽与数据地址相同的向量来记录,向量对应位置位表示该位对应的地址和数据内容片段之间有一个对应关系。
下面用一个简单的协议表做示例。如表1所示,协议表共三个状态转换项,其中的*表示该项不影响输出状态。协议表输入项有两项,输入项A2比特,输入项B1比特,输出项有两项,每项3比特。
表1协议表
首先将不影响输出状态的输入项,即由*表示的位置,按位做出所有可能的扩展。示例中输入项B只有一位,固扩展为1和0两种输入状态,这两种输入状态对应的输出项相同。扩展后的协议表如表2所示。扩展后输入状态中其它未列出的组合都是非法输入。
表2扩展后的协议表
协议表状态转换项共三项,RAM中存储的内容如表3所示。输入项的总位数是3比特,输出总位数是6比特。其中地址00、01、10分别存储三个状态转换项的输出项。为了可能的扩展,RAM扩大到四个地址空间,多余的空间可任意初始化,用X表示,以备将来使用。
表3RAM中的存储信息
地址 | 数据 |
00 | 110 111 |
01 | 010 100 |
10 | 100 111 |
11 | xxx xxx |
为实现CAM,考虑将输入项按输入项A和输入项B拆分为2个片段,两个片段对应的地址信息存储在两个寻址RAM中。经过初始化后两个寻址RAM的内容如表4和表5所示。寻址RAM的地址即输入项片段(这里为A项或B项),RAM数据为地址向量,向量中第n位为1表示该输入项片段可能被映射到输出RAM的地址n。对于表4,输入项A为00或01时非法,当有错误处理机制时,其对应数据为错误处理在输出RAM中的对应项。
表4初始化后寻址RAM1的存储信息
地址 | 数据 |
00 | xxxx |
01 | xxxx |
10 | 0011 |
11 | 0100 |
表5初始化后寻址RAM2的存储信息
地址 | 数据 |
0 | 0101 |
1 | 0110 |
系统工作时,首先按表3表4表5对输出RAM和两个寻址RAM进行初始化。要得到某个输入项对应的输出项,将输入项拆分后分别查找寻址RAM,得到两个地址向量,两地址向量按位相与便可得到对应输出RAM的地址,进而读取输出向量。当要改变协议表内容时,只需对输出RAM和寻址RAM进行写操作即可。
Claims (3)
1.一种协议表可变更协议处理器的实现方法,其特征在于:将协议处理器所依循的协议表用存储器件实现,所述协议表包括存储协议表输出项的RAM和存储协议表输入项与输出项对应关系的CAM两部分,所述存储协议表输入项与RAM地址的对应关系是多对一,而非一对一的,所述CAM的作用是从数据内容中查找指定数据所在的地址,建立数据内容和数据地址的对应关系,由于协议表的协议内容可通过系统总线写入存储器,因而具有可变性。
2.根据权利要求1所述的协议表可变更协议处理器的实现方法,其特征在于包括以下步骤:
(1)根据协议表确定协议表输入项的位宽M,协议表输出项的位宽N和项数L;
(2)在协议处理器中设置一个用于存储协议表输出项的随机读写存储器,即RAM,所述RAM中存储的内容即为协议表的输出状态,其位宽为N,深度为协议表的状态转换项数L;
(3)在协议处理器中设置一个内容地址存储器,即CAM,所述CAM用于存储协议表输入项对应的RAM地址,建立数据内容和数据地址的对应关系,由于需要存储的输出状态是有限的,由输入项查找CAM得到对应的RAM地址,再读取RAM内容,便能得到输出项。
3.根据权利要求2所述的协议表可变更协议处理器的实现方法,其特征在于:所述协议表输入项和协议表输出项的内容分别用一串二进制的数字表示,所述协议表输入项的位宽M是确定的,考虑到协议的可扩展性,协议表输入项包含用到的全部信号;所述位宽N即为协议表输出项的位宽,所述项数L为协议表中状态转换项的数目,考虑到协议的可扩展性,所述项数L留出一定余量以便以后增加协议表的状态转换项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610027839.3A CN105701065A (zh) | 2016-01-15 | 2016-01-15 | 一种协议表可变更协议处理器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610027839.3A CN105701065A (zh) | 2016-01-15 | 2016-01-15 | 一种协议表可变更协议处理器的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105701065A true CN105701065A (zh) | 2016-06-22 |
Family
ID=56227529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610027839.3A Pending CN105701065A (zh) | 2016-01-15 | 2016-01-15 | 一种协议表可变更协议处理器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105701065A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5414704A (en) * | 1992-10-22 | 1995-05-09 | Digital Equipment Corporation | Address lookup in packet data communications link, using hashing and content-addressable memory |
CN1252582A (zh) * | 1998-10-22 | 2000-05-10 | 富士通株式会社 | 用于协议控制的集成电路 |
CN1602485A (zh) * | 2001-12-11 | 2005-03-30 | 国际商业机器公司 | 用于网络处理器和计算机系统的混合搜索存储器 |
CN105187330A (zh) * | 2014-06-19 | 2015-12-23 | 凯为公司 | 使用唯一分组标识符来标识分组的结构的方法及其装置 |
-
2016
- 2016-01-15 CN CN201610027839.3A patent/CN105701065A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5414704A (en) * | 1992-10-22 | 1995-05-09 | Digital Equipment Corporation | Address lookup in packet data communications link, using hashing and content-addressable memory |
CN1252582A (zh) * | 1998-10-22 | 2000-05-10 | 富士通株式会社 | 用于协议控制的集成电路 |
CN1602485A (zh) * | 2001-12-11 | 2005-03-30 | 国际商业机器公司 | 用于网络处理器和计算机系统的混合搜索存储器 |
CN105187330A (zh) * | 2014-06-19 | 2015-12-23 | 凯为公司 | 使用唯一分组标识符来标识分组的结构的方法及其装置 |
Non-Patent Citations (1)
Title |
---|
MARK BALCH: "《完整的数字设计》", 31 May 2006, 北京:清华大学出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7058642B2 (en) | Method and data structure for a low memory overhead database | |
US9032143B2 (en) | Enhanced memory savings in routing memory structures of serial attached SCSI expanders | |
CN103117931B (zh) | 基于哈希表和tcam表的mac地址硬件学习方法及系统 | |
US6772279B1 (en) | Method and apparatus for monitoring the status of CAM comparand registers using a free list and a busy list | |
CN107526542A (zh) | 对象存储装置及其操作方法 | |
US8812765B2 (en) | Data coherence method and apparatus for multi-node computer system | |
US20170068640A1 (en) | Network memory | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
US11886746B1 (en) | Algorithmic TCAM with storage activity-based read | |
CN104484129A (zh) | 一读一写存储器、多读多写存储器及其读写方法 | |
CN117707991B (zh) | 一种数据读写方法、系统、设备及存储介质 | |
US6034965A (en) | Multi-stream associative memory architecture for computer telephony | |
CN106066833A (zh) | 存取多端口存储器模块的方法及相关的存储器控制器 | |
CN101848150B (zh) | 维护多播计数器的计数值的方法及装置 | |
CN104702508A (zh) | 表项动态更新方法及系统 | |
CN105701065A (zh) | 一种协议表可变更协议处理器的实现方法 | |
CN102663051A (zh) | 搜索内容可寻址存储器的方法和系统 | |
US8671262B2 (en) | Single-port memory with addresses having a first portion identifying a first memory block and a second portion identifying a same rank in first, second, third, and fourth memory blocks | |
CN115190102A (zh) | 信息广播方法、装置、电子单元、soc及电子设备 | |
CN104834644A (zh) | 一种自搜索存储装置 | |
CN103577277A (zh) | 一种数据处理的方法及装置 | |
US20160328328A1 (en) | Semiconductor apparatus and operating method thereof | |
US20170220659A1 (en) | System and method of key range deletions | |
US8677078B1 (en) | Systems and methods for accessing wide registers | |
CN107402895B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160622 |
|
RJ01 | Rejection of invention patent application after publication |