JP5332430B2 - 共有メモリシステム - Google Patents
共有メモリシステム Download PDFInfo
- Publication number
- JP5332430B2 JP5332430B2 JP2008233949A JP2008233949A JP5332430B2 JP 5332430 B2 JP5332430 B2 JP 5332430B2 JP 2008233949 A JP2008233949 A JP 2008233949A JP 2008233949 A JP2008233949 A JP 2008233949A JP 5332430 B2 JP5332430 B2 JP 5332430B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- shared memory
- memory
- input
- switch
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3036—Shared queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本実施例では、スイッチ100におけるパケットデータのメモリへの格納を例にとり、共有メモリシステムについて説明する。
[2.スイッチ100]
図1は本実施例に係るスイッチ100の構成図である。スイッチ100は、入力ポート101〜106、入力バッファ107〜112、共有メモリ113、出力バッファ114〜119、出力ポート120〜125、TAGメモリ126、制御部127を有している。また図3はスイッチ100の共有メモリの詳細を示す構成図である。そして図3に示すように共有メモリ113はスイッチングユニット301、302、メモリバンク303〜308を有している。なお図3において制御機構128(TAGメモリ126、制御部127)と入力ポート101〜106、出力ポート120〜125との接続関係は簡略化して記載している。制御機構128と入力ポート101〜106、出力ポート120〜125との接続関係は図1に示す接続関係となっている。
[2.1.制御部127]
まず制御部127は、入力バッファ107〜112を介して、入力ポート101〜106に入力されるパケットデータを共有メモリ113に格納する制御を行う。また制御部127は、出力バッファ114〜119を介して、共有メモリ113からパケットデータを読み出して、出力ポート120〜125から受信側情報処理装置にパケットデータを転送する。制御部127は、メモリバンク303〜308を指定するアドレスと、メモリバンク303〜308内のアドレスを指定して共有メモリ113へパケットデータの書き込み、共有メモリ113からパケットデータの読み出しを行う。本実施例においてスイッチ100が取り扱うパケットデータは可変長である。つまりパケットデータのサイズは、一定の大きさではなく、情報処理装置が送受信するデータ量、データの種類に応じて異なるものである。
ユニットであり、ネットワークのトラフィックを制御するユニットである。フォワーディングは、スイッチ100が入力ポート101〜106で受信したパケットデータを出力ポート120〜125からネットワーク(所望の情報処理装置)へ転送する処理のことである。フィルタリングは、スイッチ100が受信したパケットデータを所定のルールに従って廃棄する処理のことである。制御部127によるフォワーディング、フィルタリングの制御処理により、スイッチ100はネットワークにおけるトラフィックを制御する。
[2.2.入力バッファ107〜112、出力バッファ114〜119]
入力バッファ107〜112は、入力ポート101〜106のパケットデータの転送レート(入力バッファ107〜112への書き込み速度)と入力バッファ107〜112から共有メモリ113への書き込み速度を調整(緩和)するものである。入力バッファ107〜112は、制御部127が入力バッファ107〜112から共有メモリ113へ書き込むデータ単位(後述するブロック201〜206単位)でパケットデータを保持する。
[2.3.共有メモリ113]
次に共有メモリ113について説明する。共有メモリ113は、図3が共有メモリ113の具体的な構成を示した構成図である。本実施例に係る共有メモリ113は、スイッチングユニット301、302、メモリバンク303〜308から構成されている。
めの入力ポートからパケットデータを出力する。上記のとおりスイッチ100の制御部127は、スイッチングユニット301、302を制御してインターリービング方式でパケットデータをメモリバンク303〜308に書き込み、及びメモリバンク303〜308からパケットデータの読み出しを行う。
[2.4.TAGメモリ126]
TAGメモリ126は、ギャップ情報を格納するメモリである。本実施例に係るスイッチ100は、入力ポート101〜106、出力ポート120〜125の入出力スループットよりも共有メモリ113のポート当たりの入出力スループットが大きいスイッチである。そしてスイッチ100は、この入出力スループットの差によって生じるギャップに関する情報(ギャップ情報)をTAGメモリ126に格納する。
[3.データの格納態様]
次にスイッチ100が共有メモリ113にデータを格納する一態様について説明する。図2は本実施例に係るスイッチ100のパケットデータのアクセスに関する概念図である。また図4は本実施例に係るスイッチ100のスイッチスケジューリングを示す概念図である。図5は本実施例に係るスイッチのパケット転送を示す概念図である。図6は本実施例に係るスイッチ100のストリームデータのアクセスに関する概念図である。
[3.1.ギャップ情報の管理]
図2は、入力ポート101〜106、出力ポート120〜125の入出力スループットと共有メモリ113のポート当たりの入出力スループットが一致する場合であって、共有メモリ113内にギャップが生じない場合のパケットデータの格納を示す概念図である。図2は共有メモリ113を構成する6つのメモリバンク303〜308の論理構造を示す図である。なお入力ポート101〜106、出力ポート120〜125の入出力スループットと共有メモリ113のポート当たりの入出力スループットが一致しない場合、つまり共有メモリ113内にギャップが生じる場合については、図6を用いて後述する。
3のワード210に分割データを格納し、順次にブロック203のワード211、212、207、208、209と格納していく(「6」、「7」、・・・「11」と分割データを格納していく)。さらに制御部127はブロック204のワード210、211に分割データを格納し、パケットデータの格納処理を終了する(「12」、「13」と分割データを格納してパケットデータの格納処理を終了する)。
分割データはメモリバンク304に書き込まれ、続いてメモリバンク305、306、・・・、メモリバンク303の順に周期的に書き込まれることを示している。また図4は、出力ポート120から出力される分割データがメモリバンク303から読み出されるタイミングで出力ポート125から出力される分割データもメモリバンク304から読み出され、続いてメモリバンク305、306、・・・、メモリバンク303の順に読み出されることを示している。
度に対する入出力バッファの共有メモリ113への読み出し/書き出し速度の高速化した比率を示すものあり、tp(m)/tp(p)と表せる。tp(m)は、入出力バッファの共有メモリ113への読み出し/書き出し速度である。tp(p)は、入出力ポートの入出力バッファへの読み出し/書き出し速度である。そのためインプットバッファ107への入力はギャップを含んだパケットデータとして扱われなければならない。そのことを模式的にパケット502で示している。共有メモリ113を論理的に構成するブロック単位で入力バッファ107から共有メモリ113に格納し、また該ブロック単位で共有メモリ113から出力バッファ114に書き込む。パケットデータ503は、入力バッファ107、出力バッファ114と共有メモリ113との間において制御部127がギャップを含まないブロック単位のパケットデータを転送することを模式的に示した図である。すなわち、ギャップはブロック間にのみ存在することを表す。そして制御部127が出力バッファよりスループット(8B(バイト)×156.25MHz)のスループットでギャップなしのパケットデータ504を出力する。
れている。そして連続したメモリアドレスが各メモリバンク303〜308をまたいで割り振られている。
[4.ギャップ情報の管理に関するフローチャート]
図7は本実施例に係るパケットデータ格納時におけるギャップ管理に関するフローチャートである。
113への読み出し/書き出し速度である。tp(p)は、入出力ポートの入出力バッファへの読み出し/書き出し速度である。最小格納サイズは、入出力ポートの入出力バッファへの読み出し/書き出し速度と入出力バッファの共有メモリ113への読み出し/書き出し速度との速度差を吸収するためのバッファ蓄積量に相当する格納容量である。そのためスイッチ100は、入力バッファに保持するパケットデータのサイズが最小格納サイズよりも大きい場合には、共有メモリ113内でブロック内にギャップを発生させることなく、1ブロック分のデータを共有メモリ内に書きこむことができる。
なブロックに分割データを格納する(ステップS708)。
ブロック単位で保持することにより、メモリの格納効率を落とすことなくレイテンシを短縮して高速に伝送可能とすることができる。イーサネット(登録商標)により送受信するパケットデータを格納する共有メモリ上で、ギャップ情報を記憶するだけの十分な空き領域を設けるのは容易である。ある実施例では、共有メモリの語長をパケット書き込み時の語長より大きくし、その差分によって生じる記憶領域にギャップ情報を格納する。また、ある実施例では、ブロック内の1語を用いてギャップ情報を格納する。スイッチ100は
その空領域を活用してギャップ情報をパケットデータに付随して管理することができる。
101…入力ポート
102…入力ポート
103…入力ポート
104…入力ポート
105…入力ポート
106…入力ポート
107…入力バッファ
108…入力バッファ
109…入力バッファ
110…入力バッファ
111…入力バッファ
112…入力バッファ
113…共有メモリ
114…出力バッファ
115…出力バッファ
116…出力バッファ
117…出力バッファ
118…出力バッファ
119…出力バッファ
120…出力ポート
121…出力ポート
122…出力ポート
123…出力ポート
124…出力ポート
125…出力ポート
126…TAGメモリ
127…制御部
301…スイッチングユニット
302…スイッチングユニット
303…メモリバンク
304…メモリバンク
305…メモリバンク
306…メモリバンク
307…メモリバンク
308…メモリバンク
Claims (4)
- 複数のデータを並行して共有メモリに格納可能な共有メモリシステムにおいて、
複数のメモリバンクを含む共有メモリと、
該共有メモリを共有し、該複数のデータをそれぞれ受信する複数のポートと、
該複数のポートから転送される複数のデータを保持する複数のバッファと、
該複数のポートのそれぞれから転送される複数のデータを所定サイズの複数ワードに分割して所定ワード数のブロック単位で前記バッファに格納し、前記所定ワード数の前記ブロック内に格納された複数ワードのデータをワード単位で前記複数のメモリバンクに順次割り振って格納する制御部を備え、
前記制御部は、前記複数のポートから入力したデータを前記複数のバッファに格納する際に、該ポートから該バッファへのデータ転送速度と該バッファから該共有メモリへのデータ転送速度の差に相当するワード数を求めてギャップ情報とし、該ポートからのデータを第1のブロックに所定ワード数分格納した後、該ポートからの次のデータの第2のブロックへの格納ワード位置を、前記ギャップ情報が示すワード数分スキップする
ことを特徴とする共有メモリシステム。 - 請求項1に記載の共有メモリシステムはさらに、
該共有メモリから転送される該所定ワード数のブロック単位の複数のデータを保持する複数の他のバッファを有し、
該他のバッファに該共有メモリからデータを転送する際にデータを該所定ワード数のブロック単位で分割し転送を前記ギャップ情報が示すワード数分スキップし、該複数のブロックごとに該他のバッファにデータを転送することを特徴とする共有メモリシステム。 - 請求項2に記載の共有メモリシステムにおいて、
前記ギャップ情報を保持する記憶部をさらに有することを特徴とする共有メモリシステム。 - 請求項2に記載の共有メモリシステムにおいて、
前記ギャップ情報を先行するデータに付随して格納することを特徴とする共有メモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008233949A JP5332430B2 (ja) | 2008-09-11 | 2008-09-11 | 共有メモリシステム |
US12/556,164 US8116306B2 (en) | 2008-09-11 | 2009-09-09 | Shared memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008233949A JP5332430B2 (ja) | 2008-09-11 | 2008-09-11 | 共有メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010067091A JP2010067091A (ja) | 2010-03-25 |
JP5332430B2 true JP5332430B2 (ja) | 2013-11-06 |
Family
ID=41799235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008233949A Active JP5332430B2 (ja) | 2008-09-11 | 2008-09-11 | 共有メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8116306B2 (ja) |
JP (1) | JP5332430B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2980607C (en) | 2004-10-12 | 2020-04-07 | Tq Delta, Llc | Resource sharing in a telecommunications environment |
EP2005674B1 (en) | 2006-04-12 | 2016-09-28 | TQ Delta, LLC | Packet retransmission and memory sharing |
US9063841B1 (en) * | 2011-08-01 | 2015-06-23 | Marvell Israel (M.L.S.L.) Ltd. | External memory management in a network device |
AU2014401914B2 (en) | 2014-08-13 | 2017-05-25 | Huawei Technologies Co., Ltd. | Storage system, method, and apparatus for processing operation request |
US11481158B2 (en) * | 2018-12-05 | 2022-10-25 | International Business Machines Corporation | Enabling compression based on queue occupancy |
US11343207B1 (en) * | 2020-05-11 | 2022-05-24 | Amazon Technologies, Inc. | Configuring of a shared memory buffer in a network device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732041A (en) * | 1993-08-19 | 1998-03-24 | Mmc Networks, Inc. | Memory interface unit, shared memory switch system and associated method |
US6493347B2 (en) * | 1996-12-16 | 2002-12-10 | Juniper Networks, Inc. | Memory organization in a switching device |
US6745277B1 (en) * | 2000-10-04 | 2004-06-01 | Force10 Networks, Inc. | Intelligent interleaving scheme for multibank memory |
US7248596B2 (en) * | 2003-02-07 | 2007-07-24 | Fujitsu Limited | Memory interleaving in a high-speed switching environment |
US7242684B2 (en) * | 2003-02-07 | 2007-07-10 | Fujitsu Limited | Architecture for switching packets in a high-speed switching environment |
DE602004021371D1 (de) * | 2003-04-22 | 2009-07-16 | Agere Systems Inc | Verfahren und vorrichtung für einen gemeinsam benutzten mehrbankspeicher |
US7634622B1 (en) * | 2005-06-14 | 2009-12-15 | Consentry Networks, Inc. | Packet processor that generates packet-start offsets to immediately store incoming streamed packets using parallel, staggered round-robin arbitration to interleaved banks of memory |
-
2008
- 2008-09-11 JP JP2008233949A patent/JP5332430B2/ja active Active
-
2009
- 2009-09-09 US US12/556,164 patent/US8116306B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20100061376A1 (en) | 2010-03-11 |
US8116306B2 (en) | 2012-02-14 |
JP2010067091A (ja) | 2010-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9608940B2 (en) | Ultra low latency network buffer storage | |
US6795886B1 (en) | Interconnect switch method and apparatus | |
US6757791B1 (en) | Method and apparatus for reordering packet data units in storage queues for reading and writing memory | |
JP5332430B2 (ja) | 共有メモリシステム | |
JP6899852B2 (ja) | ストレージ装置 | |
US20060031643A1 (en) | Implementing FIFOs in shared memory using linked lists and interleaved linked lists | |
US11799799B2 (en) | Use of stashing buffers to improve the efficiency of crossbar switches | |
US7904677B2 (en) | Memory control device | |
US7627672B2 (en) | Network packet storage method and network packet transmitting apparatus using the same | |
JP2005287038A (ja) | Ddrsdramを用いた小型パケット交換ノード記憶装置およびメモリへのアクセス方法 | |
US7991926B1 (en) | Scalable memory architecture for high speed crossbars using variable cell or packet length | |
US9838500B1 (en) | Network device and method for packet processing | |
US20170153852A1 (en) | Multi-port memory controller capable of serving multiple access requests by accessing different memory banks of multi-bank packet buffer and associated packet storage design | |
US9063841B1 (en) | External memory management in a network device | |
EP2524295B1 (en) | Memory management using packet segmenting and forwarding | |
KR102524566B1 (ko) | 언더런을 방지하기 위한 패킷 메모리 시스템, 방법, 및 디바이스 | |
CN104486442A (zh) | 分布式存储***的数据传输方法、装置 | |
JP2008541276A (ja) | 同時読み出し応答確認拡張ダイレクト・メモリ・アクセス・ユニット | |
US7756131B2 (en) | Packet forwarding system capable of transferring packets fast through interfaces by reading out information beforehand for packet forwarding and method thereof | |
US8923315B2 (en) | Packet router having a hierarchical buffer structure | |
US6647477B2 (en) | Transporting data transmission units of different sizes using segments of fixed sizes | |
US20080273531A1 (en) | Data switch and a method of switching | |
JP6206497B2 (ja) | データ転送装置およびデータ転送方法 | |
JP5691419B2 (ja) | 要求転送装置及び要求転送方法 | |
JP2005252953A (ja) | クロスバスイッチ及びネットワーク転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110613 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130409 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130607 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130702 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130715 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5332430 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |