IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

<>
  • 特許-回路、チップ、および電子デバイス 図1
  • 特許-回路、チップ、および電子デバイス 図2
  • 特許-回路、チップ、および電子デバイス 図3
  • 特許-回路、チップ、および電子デバイス 図4
  • 特許-回路、チップ、および電子デバイス 図5
  • 特許-回路、チップ、および電子デバイス 図6A
  • 特許-回路、チップ、および電子デバイス 図6B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】回路、チップ、および電子デバイス
(51)【国際特許分類】
   G06F 15/173 20060101AFI20240918BHJP
【FI】
G06F15/173 682
【請求項の数】 16
(21)【出願番号】P 2023519636
(86)(22)【出願日】2021-08-31
(65)【公表番号】
(43)【公表日】2023-10-16
(86)【国際出願番号】 CN2021115618
(87)【国際公開番号】W WO2022068503
(87)【国際公開日】2022-04-07
【審査請求日】2023-05-09
(31)【優先権主張番号】202011060780.0
(32)【優先日】2020-09-30
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】202011176149.7
(32)【優先日】2020-10-28
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ティアン、タイシュ
(72)【発明者】
【氏名】ハン、ビン
【審査官】三坂 敏夫
(56)【参考文献】
【文献】中国特許出願公開第107291392(CN,A)
【文献】特開2005-122759(JP,A)
【文献】米国特許出願公開第2019/0140979(US,A1)
【文献】特開2000-267816(JP,A)
【文献】国際公開第2018/188084(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/16-15/177
(57)【特許請求の範囲】
【請求項1】
第1プロセッサおよび前記第1プロセッサに接続された第1処理モジュールを備える回路であって、前記第1処理モジュールは、第1メモリに接続された第2プロセッサを有し、前記第2プロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第1プロセッサが前記第1処理モジュールと通信する場合に生成される伝送レイテンシより小さく、
前記第1処理モジュールは、前記第1メモリに接続された第3プロセッサをさらに有し、前記第3プロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第1プロセッサが前記第1処理モジュールと通信する場合に生成される前記伝送レイテンシより小さい、回路。
【請求項2】
前記第2プロセッサはマルチコアプロセッサであり、前記第2プロセッサが前記第1メモリに対して前記読み出しおよび書き込みオペレーションを実行する場合に生成される前記伝送レイテンシは、前記第2プロセッサが有する前記マルチコアプロセッサのいずれかのコアプロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシである、請求項1に記載の回路。
【請求項3】
第1プロセッサおよび前記第1プロセッサに接続された第1処理モジュールを備える回路であって、前記第1処理モジュールは、第1メモリに接続された第2プロセッサを有し、前記第2プロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第1プロセッサが前記第1処理モジュールと通信する場合に生成される伝送レイテンシより小さく、
前記回路は、第4プロセッサおよび前記第4プロセッサに接続された第3メモリをさらに備える;または、
前記回路は、第4プロセッサおよび前記第4プロセッサに接続された第2処理モジュールをさらに備え;前記第2処理モジュールは、M個のメモリに接続されたN個の第5プロセッサを有し、NおよびMの両方は、1より大きいまたはこれと等しい整数であり;いずれかの第5プロセッサが前記第5プロセッサに接続された前記メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第4プロセッサが前記第2処理モジュールと通信する場合に生成される伝送レイテンシより小さい、回路。
【請求項4】
前記第2プロセッサはマルチコアプロセッサであり、前記第2プロセッサが前記第1メモリに対して前記読み出しおよび書き込みオペレーションを実行する場合に生成される前記伝送レイテンシは、前記第2プロセッサが有する前記マルチコアプロセッサのいずれかのコアプロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシである、請求項3に記載の回路。
【請求項5】
前記第1プロセッサは、第1バスにより前記第1処理モジュールに接続され、前記第2プロセッサは、第2バスにより前記第1メモリに接続され、前記第2バスのバスビット幅は前記第1バスのバスビット幅より大きい、および/または、前記第2バスの長さは前記第1バスの長さより小さい、請求項1から4のいずれか一項に記載の回路。
【請求項6】
前記第1処理モジュールは、第2メモリに接続された第3プロセッサをさらに有し、前記第3プロセッサが前記第2メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第1プロセッサが前記第1処理モジュールと通信する場合に生成される前記伝送レイテンシより小さい、請求項3または4に記載の回路。
【請求項7】
前記第1プロセッサは、第1バスにより前記第1処理モジュールに接続され、前記第2プロセッサは、第2バスにより前記第1メモリに接続され、前記第3プロセッサは、第3バスにより前記第2メモリに接続され、前記第2バスのバスビット幅および前記第3バスのバスビット幅の和は、前記第1バスのバスビット幅より大きい、請求項に記載の回路。
【請求項8】
前記第1処理モジュールは、前記第1メモリに接続された第3プロセッサをさらに有し、前記第3プロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第1プロセッサが前記第1処理モジュールと通信する場合に生成される前記伝送レイテンシより小さい、請求項またはに記載の回路。
【請求項9】
前記第1プロセッサは、第1バスにより前記第1処理モジュールに接続され、前記第2プロセッサは、第2バスにより前記第1メモリに接続され、前記第3プロセッサは、第3バスにより前記第1メモリに接続され、前記第2バスのバスビット幅および前記第3バスのバスビット幅の和は、前記第1バスのバスビット幅より大きい、請求項1または2に記載の回路。
【請求項10】
前記第2プロセッサおよび前記第3プロセッサはパイプラインプロセッサである、請求項に記載の回路。
【請求項11】
前記第2プロセッサは、第4バスにより前記第3プロセッサに接続され、前記第4プロセッサは、第5バスにより前記第1プロセッサに接続され、前記第4バスのバスビット幅は、前記第5バスのバスビット幅より小さい、請求項に記載の回路。
【請求項12】
前記第4プロセッサが有するプロセッサコアの数は、前記第1プロセッサが有するプロセッサコアの数より大きいまたはこれと等しい、請求項3または4に記載の回路。
【請求項13】
前記第4プロセッサおよび前記第1プロセッサはパイプラインプロセッサである、請求項3または4に記載の回路。
【請求項14】
前記第1処理モジュールは前記第1メモリをさらに有する、請求項3または4に記載の回路。
【請求項15】
チップであって、請求項1から4のいずれか一項に記載の回路を備えるチップ。
【請求項16】
請求項15に記載のチップを備える電子デバイスであって、前記電子デバイスは、受信機および送信機をさらに備え、前記受信機は、パケットを受信し、前記パケットを前記チップに送信するように構成され;
前記チップは、前記パケットを処理するように構成され;
前記送信機は、前記チップによって処理されたパケットを取得し、前記処理されたパケットを別の電子デバイスに送信するように構成される、電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2020年9月30日に中国国家知識産権局に出願された、発明の名称を「プロセッサアーキテクチャ、デバイス、および方法」とする中国特許出願第202011060780.0号、および2020年10月28日に中国国家知識産権局に出願された、発明の名称を「回路、チップ、および電子デバイス」とする中国特許出願第202011176149.7号に対する優先権を主張し、これらの全体は参照により本明細書に組み込まれる。
【0002】
本願は、チップ技術分野に関し、より具体的には、回路、チップ、および電子デバイスに関する。
【背景技術】
【0003】
現在の高速ネットワークチップにおけるプロセッサは、一般に、パイプライン方式で配置される。パケットがチップに入った後、パケット転送中にパケットがコンテキスト情報を格納するために、プログラム状態(program state、PS)が生成される。パイプライン上のプロセッサは、パケットを処理し、処理結果をPSに保存し、次に、処理結果を次のプロセッサに送信する。現在、チップにおけるプロセッサおよびPSを格納するメモリの間の設計は、不適切である。結果的に、PSが読み出される場合および書き込まれる場合に、高レイテンシが生成される。
【発明の概要】
【0004】
本願は、伝送レイテンシを低減する回路、チップ、および電子デバイスを提供する。
【0005】
第1態様によれば、本願の実施形態は、回路を提供する。回路は、第1プロセッサおよび第1プロセッサに接続された第1処理モジュールを含む。第1処理モジュールは、第1メモリに接続された第2プロセッサを含む。第2プロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第1プロセッサが第1処理モジュールと通信する場合に生成される伝送レイテンシより小さい。第2プロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第1プロセッサが第1処理モジュールと通信する場合に生成される伝送レイテンシより小さいので、バスにおけるデータの伝送レイテンシのコストを低減することができる。
【0006】
第1態様を参照して、可能な実装において、第2プロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第1プロセッサが第1処理モジュールと通信する場合に生成される伝送レイテンシよりの1/10より小さいまたはこれと等しい。
【0007】
第1態様を参照して、可能な実装において、第2プロセッサはマルチコアプロセッサであり、第2プロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第2プロセッサに含まれるマルチコアプロセッサのいずれかのコアプロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシである。
【0008】
第1態様を参照して、可能な実装において、第1プロセッサは、第1バスにより第1処理モジュールに接続され、第2プロセッサは、第2バスにより第1メモリに接続され、第2バスのバスビット幅は第1バスのバスビット幅より大きい、および/または、第2バスの長さは第1バスの長さより小さい。第2バスの長さは第1バスの長さより小さいので、回路の面積を低減することができる。
【0009】
第1態様を参照して、可能な実装において、第2バスの長さは、第1バスの長さの1/10より小さいまたはこれと等しくてよい。前述の技術的解決手段において、回路の面積は、さらに低減することができる。
【0010】
第1態様を参照して、可能な実装において、第1処理モジュールは、第2メモリに接続された第3プロセッサをさらに含み、第3プロセッサが第2メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第1プロセッサが第1処理モジュールと通信する場合に生成される伝送レイテンシより小さい。
【0011】
第1態様を参照して、可能な実装において、第1プロセッサは、第1バスにより第1処理モジュールに接続され、第2プロセッサは、第2バスにより第1メモリに接続され、第3プロセッサは、第3バスにより第2メモリに接続され、第2バスのバスビット幅および第3バスのバスビット幅の和は、第1バスのバスビット幅より大きい。
【0012】
第1態様を参照して、可能な実装において、第1処理モジュールは、第1メモリに接続された第3プロセッサをさらに含み、第3プロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第1プロセッサが第1処理モジュールと通信する場合に生成される伝送レイテンシより小さい。
【0013】
第1態様を参照して、可能な実装において、第1プロセッサは、第1バスにより第1処理モジュールに接続され、第2プロセッサは、第2バスにより第1メモリに接続され、第3プロセッサは、第3バスにより第1メモリに接続され、第2バスのバスビット幅および第3バスのバスビット幅の和は、第1バスのバスビット幅より大きい。
【0014】
第1態様を参照して、可能な実装において、第2プロセッサおよび第3プロセッサはパイプラインプロセッサである。
【0015】
第1態様を参照して、可能な実装において、回路は、第4プロセッサおよび第4プロセッサに接続された第2処理モジュールをさらに含む。第2処理モジュールは、M個のメモリに接続されたN個の第5プロセッサを含み、NおよびMの両方は、1より大きいまたはこれと等しい整数である。いずれかの第5プロセッサが第5プロセッサに接続されたメモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第4プロセッサが第2処理モジュールと通信する場合に生成される伝送レイテンシより小さい。
【0016】
第1態様を参照して、可能な実装において、第2プロセッサは、第4バスにより第3プロセッサに接続され、第4プロセッサは、第5バスにより第1プロセッサに接続され、第4バスのバスビット幅は、第5バスのバスビット幅より小さい。
【0017】
第1態様を参照して、可能な実装において、第4プロセッサに含まれるプロセッサコアの数は、第1プロセッサに含まれるプロセッサコアの数より大きいまたはこれと等しい。
【0018】
第1態様を参照して、可能な実装において、第4プロセッサおよび第1プロセッサはパイプラインプロセッサである。
【0019】
第1態様を参照して、可能な実装において、第1処理モジュールは、第1メモリをさらに含む。
【0020】
第2態様によれば、本願の実施形態は、チップをさらに提供する。チップは、第1態様または第1態様の可能な実装のいずれか一項に記載の回路を含む。
【0021】
第3態様によれば、本願の実施形態は、電子デバイスをさらに提供する。電子デバイスは、本願の実施形態に係るチップを含み、電子デバイスは、受信機および送信機をさらに含む。受信機は、パケットを受信し、パケットをチップに送信するように構成される。チップは、パケットを処理するように構成される。送信機は、チップによって処理されたパケットを取得し、処理されたパケットを別の電子デバイスに送信するように構成される。電子デバイスは、スイッチ、ルータ、または前述のチップを配置可能な任意の他の電子デバイスであってよい。
【0022】
第4態様によれば、本願の実施形態は、処理方法をさらに提供する。方法は、第1プロセッサが第1パケットを受信する段階、ここで、第1パケットはフロー識別子情報を含む;第1プロセッサが、フロー識別子情報に基づいて第1処理モジュールを決定する段階、ここで、第1処理モジュールはフロー識別子情報に対応する;第1プロセッサが、第1パケットを第1処理モジュールに送信する段階を含む。
【0023】
前述の方法において、第1プロセッサは、パケットに保持されたフロー識別子情報に基づいて、第1処理モジュールに、第1処理モジュールによって処理される必要があるパケットを送信し、第1処理モジュールのプロセッサは、対応する処理を実行する。第1処理モジュールは、第1プロセッサよりメモリに近いので、伝送レイテンシを低減することができる。
【0024】
任意選択的に、方法は、第1プロセッサが第1処理モジュールから第2パケットを受信する段階をさらに含み、ここで、第2パケットは、第1処理モジュールによってフロー識別子情報に基づいて実行される処理により取得されるパケットであり、第2パケットは、フロー識別子情報を含む。
【0025】
任意選択的に、方法は、第1プロセッサが、第2パケットを次のプロセッサに送信する段階をさらに含み、ここで、次のプロセッサは、第1プロセッサが属するパイプライン上の第1プロセッサのネクストホップである。
【0026】
第5態様によれば、本願の実施形態は、処理方法をさらに提供する。方法は、第1処理モジュール内の第2プロセッサが、第1プロセッサから第1パケットを受信する段階、ここで、第1パケットは、フロー識別子情報を含む;第2プロセッサが、フロー識別子情報に基づいて、第2プロセッサに対応するメモリから、第1パケットの処理に用いられるパラメータを取得する段階;第2プロセッサが、パラメータに基づいて、第1パケットを処理し、処理された第1パケットを、第1処理モジュール内の第3プロセッサに送信する段階、ここで、処理された第1パケットは、フロー識別子情報を含む;第1処理モジュール内の第3プロセッサが、フロー識別子情報に基づいて、第3プロセッサに対応するメモリから、処理された第1パケットの処理に用いられるパラメータを取得する段階;および第3プロセッサが、パラメータに基づいて、処理された第1パケットを処理して第2パケットを取得し、第2パケットを第1プロセッサに送信する段階を含む。
【0027】
前述の方法において、第1処理モジュール内のプロセッサは、第1パケット内のフロー識別子に基づいて、メモリ上で読み出しオペレーションを実行し、対応する処理を実行する。第1処理モジュールは、第1プロセッサよりメモリに近いので、伝送レイテンシを低減することができる。
【0028】
任意選択的に、処理は、転送のためのテーブルルックアップを含んでよく、パラメータは、転送エントリのインデックス、ベースアドレス、およびハッシュ値のうち1または複数を含み、パラメータは、フロー識別子に対応する。
【図面の簡単な説明】
【0029】
図1】本願の実施形態に係るチップの概略図である;
【0030】
図2】本願の実施形態に係る別のチップの概略図である;
【0031】
図3】回路の概略図である;
【0032】
図4】別の回路の概略図である;
【0033】
図5図4に示す回路を用いることによってネクストホップポートを決定する概略フローチャートである;
【0034】
図6A図3に示す回路を用いることによってネクストホップポートを決定する概略フローチャートである;
図6B図3に示す回路を用いることによってネクストホップポートを決定する概略フローチャートである。
【発明を実施するための形態】
【0035】
以下では、添付図面を参照して、本願の技術的解決手段を説明する。
【0036】
全ての態様、実施形態、または特徴は、本願において、複数のデバイス、コンポーネント、モジュール等を含んでよいシステムを説明することによって提示される。各システムは、別のデバイス、コンポーネント、モジュール等を含んでよい、および/または、添付図面を参照して説明される全てのデバイス、コンポーネント、モジュール等を含まなくてよいことが明白に理解されよう。これらの解決手段の組み合わせも用いられてよい。
【0037】
さらに、本願の実施形態において、「例」および「例えば」のような用語は、例、図、または説明の提供を表すために用いられる。本願において「例」として説明されたどの実施形態または設計方式も、別の実施形態または設計方式より好ましい、またはより多くの利点を有していると説明されるべきではない。具体的には、用語「例」は、具体的な方式で概念を提示するために用いられる。
【0038】
本願の実施形態において、「対応する(corresponding、relevant)」および「一致する(corresponding)」は、場合によっては交換可能に用いられてよい。用語によって表現される意味は、差が強調されない場合は一貫することに留意されたい。
【0039】
本願の実施形態において、場合によっては、Wのような添え字が、W1のような不正確な形で書き込まれることがある。差が強調されない場合、表現される意味は一貫している。
【0040】
本願の実施形態において説明されるネットワークアーキテクチャおよびサービスシナリオは、本願の実施形態における技術的解決手段をより明確に説明することを意図しており、本願の実施形態に係る技術的解決手段に何ら限定を構成することを意図するものではない。
【0041】
当業者であれば、ネットワークアーキテクチャが進化し、新たなサービスシナリオが出現すれば、本願の実施形態に係る技術的解決手段が同様の技術的問題にも適用可能であることを認識しよう。
【0042】
本明細書において説明される「実施形態」または「いくつかの実施形態」等についての言及は、本願の1または複数の実施形態が、当該実施形態を参照して説明される特定の機能、構造または特徴を含むことを示す。したがって、本明細書の異なる箇所に現れる「実施形態において」、「いくつかの実施形態において」、「いくつかの他の実施形態において」、および「他の実施形態において」のような記述は、必ずしも同じ実施形態への言及を意味しているわけではない。その代わりに、そのような記述は、別の方式で別段特に強調されない限り、「実施形態の1または複数であって、その全てではない」ことを意味している。用語「含む」、「有する」、およびこれらの派生語は全て、別の方式で別段特に強調されない限り、「限定されるものではないが、含む」ことを意味する。
【0043】
本願において、「少なくとも1つ」とは、1または複数を意味し、「複数」とは、2またはそれより多くを意味する。「および/または」という用語は、関連付けられる対象物間の対応関係を説明するものであり、3つの関係が存在し得ることを表す。例えば、Aおよび/またはBは、以下の3つの場合、すなわち、Aのみが存在する、AおよびBの両方が存在する、および、Bのみが存在するという場合を表し得る。AおよびBは各々、単数または複数であり得る。「/」という文字は概して、関連付けられる対象物間の「または」の関係を表す。「以下の項目(個)の少なくとも1つ」またはその同様の表現は、単数の項目(個)または複数の項目(個)の任意の組み合わせを含む、これらの項目の任意の組み合わせを指す。例えば、a、b、またはcの少なくとも1つの項目(要素)は、a、b、cか、aおよびbか、aおよびcか、bおよびcか、またはa、b、およびcを示してよい。ここで、a、b、およびcは単数形または複数形であってよい。
【0044】
図1は、本願の実施形態に係るチップの概略図である。図1に示すように、チップ100は、入力/出力インタフェース101、プロセッサ111、プロセッサ112、プロセッサ113、およびプロセッサ114を含む。チップ100は、処理モジュール121および処理モジュール122をさらに含む。処理モジュール121は、プロセッサ1211、プロセッサ1212、メモリ1221、およびメモリ1222を含む。処理モジュール122は、プロセッサ1213、プロセッサ1214、プロセッサ1215、メモリ1223、メモリ1224、およびメモリ1225を含む。チップ100は、メモリ131およびメモリ132をさらに含む。プロセッサ111は、バス61により入力/出力インタフェース101に接続され、バス41によりプロセッサ112に接続され、バス51によりメモリ131に接続されている。プロセッサ112は、バス42によりプロセッサ113に接続され、バス11により処理モジュール121に接続されている。プロセッサ113は、バス43によりプロセッサ114に接続され、バス52によりメモリ132に接続されている。プロセッサ114は、バス62により入力/出力インタフェース101に接続され、バス12により処理モジュール122に接続されている。プロセッサ1211は、バス31によりメモリ1221に接続され、バス21によりプロセッサ1212に接続されている。プロセッサ1212は、バス32によりメモリ1222に接続されている。プロセッサ1213は、バス33によりメモリ1223に接続され、バス22によりプロセッサ1214に接続されている。プロセッサ1214は、バス34によりメモリ1224に接続され、バス23によりプロセッサ1215に接続されている。プロセッサ1215は、バス35によりメモリ1225に接続されている。
【0045】
チップ100は、パイプライン(pipeline)方式で、受信されたパケットを処理する。図1に示すように、プロセッサ111、プロセッサ112、プロセッサ113、およびプロセッサ114は、同じパイプラインに属し、プロセッサ111、プロセッサ112、プロセッサ113、およびプロセッサ114は、パイプラインプロセッサとも称されてよい。任意選択的に、プロセッサ1211およびプロセッサ1212は、同じパイプラインに属し、プロセッサ1213、プロセッサ1214、およびプロセッサ1215は、同じパイプラインに属する。説明を容易ならしめるために、当該パイプラインは、第1パイプラインと称されてよい。図1に示すように、第1パイプライン内のいくつかのプロセッサが、バスによりメモリに直接アクセスしてよい。例えば、プロセッサ111は、バス11によりメモリ131に直接アクセスしてよく、プロセッサ113は、バス13によりメモリ132に直接アクセスしてよい。説明を容易ならしめるために、メモリに直接アクセス可能な第1パイプライン内のプロセッサは、タイプ1プロセッサと称されてよい。図1に示すように、第1パイプライン内の他のプロセッサは、処理モジュールと通信してよい。例えば、プロセッサ112は、バス51により処理モジュール121と通信し、プロセッサ114は、バス52により処理モジュール122と通信する。説明を容易ならしめるために、処理モジュールを通信可能な第1パイプライン内のプロセッサは、タイプ2プロセッサと称されてよい。各処理モジュールに含まれる複数のプロセッサは、単一のパイプラインに属してもよい。例えば、プロセッサ1211およびプロセッサ1212は、同じパイプラインに属し、プロセッサ1213、プロセッサ1214、およびプロセッサ1215は、同じパイプラインに属する。説明を容易ならしめるために、処理モジュール内のパイプラインは、第2パイプラインと称されてよい。処理モジュール内のプロセッサは、タイプ3プロセッサと称されてよい。具体的には、図1に示すプロセッサ1211、プロセッサ1212、プロセッサ1213、プロセッサ1214、およびプロセッサ1215は全て、タイプ3プロセッサと称されてよい。
【0046】
図1に示すように、任意のタイプ1プロセッサは1つのメモリに対応し、任意のタイプ3プロセッサは1つのメモリに対応する。任意のタイプ1プロセッサまたは任意のタイプ3プロセッサは、バスにより対応するメモリに接続されて、メモリ上で読み出しおよび書き込みオペレーションを実行する。例えば、メモリ131はプロセッサ111に対応し、メモリ1221はプロセッサ1211に対応する。メモリおよびプロセッサの間の1対1対応は、1対多または多対1対応に置き換えられてもよい。例えば、任意のタイプ1プロセッサまたはタイプ3プロセッサは、複数のメモリに対応して、複数のメモリ上で読み出しおよび書き込みオペレーションを実行してよい。代替的に、複数のタイプ1プロセッサは1つのメモリに対応し、複数のタイプ3プロセッサは1つのメモリに対応して、当該メモリ上で読み出しおよび書き込みオペレーションを実行してよい。例えば、図1におけるメモリ131およびメモリ132は、1つのメモリに置き換えられてよく、プロセッサ111およびプロセッサ113は、同じメモリに対応する。図1におけるメモリ131は、代替的に、複数のメモリに置き換えられてよく、プロセッサ111は、複数のメモリに対応する。図1におけるメモリ1221およびメモリ1222は、1つのメモリに置き換えられてよく、プロセッサ1211およびプロセッサ1212は、同じメモリに対応する。
【0047】
異なる接続された対象物に基づいて、チップ100内のバスは、タイプ1バス、タイプ2バス、タイプ3バス、タイプ4バス、タイプ5バス、およびタイプ6バスを含む。タイプ1バスは、タイプ2プロセッサおよびタイプ2プロセッサに対応する処理モジュールを接続するように構成される。例えば、プロセッサ112および処理モジュール121を接続するように構成されるバス11、およびプロセッサ114および処理モジュール122を接続するように構成されるバス12は、両方ともタイプ1バスである。タイプ2バスは、2つのタイプ3プロセッサを接続するように構成される。例えば、プロセッサ1211およびプロセッサ1212を接続するように構成されるバス21、プロセッサ1213およびプロセッサ1214を接続するように構成されるバス22、およびプロセッサ1214およびプロセッサ1215を接続するように構成されるバス23は、全てタイプ2バスである。タイプ3バスは、タイプ3プロセッサおよびタイプ3プロセッサに対応するメモリを接続するように構成される。例えば、プロセッサ1211およびメモリ1221を接続するように構成されるバス31、プロセッサ1213およびメモリ1223を接続するように構成されるバス33等は、全てタイプ3バスである。タイプ4バスは、第1パイプライン内の2つのプロセッサを接続するように構成される。例えば、プロセッサ111およびプロセッサ112を接続するように構成されるバス41、プロセッサ112およびプロセッサ113を接続するように構成されるバス42、およびプロセッサ113およびプロセッサ114を接続するように構成されるバス43は、全てタイプ4バスである。タイプ5バスは、タイプ1プロセッサおよびタイプ1プロセッサに対応するメモリを接続するように構成される。例えば、プロセッサ111およびメモリ131を接続するように構成されるバス51、およびプロセッサ113およびメモリ132を接続するように構成されるバス52は、両方ともタイプ5バスである。タイプ6バスは、入力/出力インタフェース101およびプロセッサを接続するように構成される。例えば、入力/出力インタフェース101およびプロセッサ111を接続するように構成されるバス61、およびプロセッサ114および入力/出力インタフェース101を接続するように構成されるバス62は、両方ともタイプ6バスである。
【0048】
いくつかの実施形態において、第1パイプライン内の各プロセッサは、マルチコアプロセッサである。第1パイプライン内の各プロセッサは、複数のプロセッサコア(コア(cores)とも称されてよい)を含んでよい。いくつかの実施形態において、第1パイプライン内の異なるプロセッサは、同数のプロセッサコアを含んでよい。換言すると、第1パイプライン内のいずれか2つのプロセッサは、同数のプロセッサコアを含む。図1が例としてさらに用いられる。プロセッサ111に含まれるプロセッサコアの数は、プロセッサ112に含まれるプロセッサコアの数と等しく、プロセッサ112に含まれるプロセッサコアの数は、プロセッサ113に含まれるプロセッサコアの数と等しく、プロセッサ113に含まれるプロセッサコアの数は、プロセッサ114に含まれるプロセッサコアの数と等しい。他の実施形態において、第1パイプライン内の異なるプロセッサは、異なる数のプロセッサコアを含んでよい。換言すると、第1パイプライン内のいずれか2つのプロセッサは、異なる数のプロセッサコアを含んでよい。例えば、プロセッサ111に含まれるプロセッサコアの数は、プロセッサ112に含まれるプロセッサコアの数より大きい。プロセッサ113に含まれるプロセッサコアの数は、プロセッサ114に含まれるプロセッサコアの数より大きい。プロセッサ111に含まれるプロセッサコアの数は、プロセッサ113に含まれるプロセッサコアの数より大きく、プロセッサ112に含まれるプロセッサコアの数は、プロセッサ114に含まれるプロセッサコアの数より大きい。
【0049】
他の実施形態において、第1パイプライン内のいくつかのプロセッサは、同数のプロセッサコアを含む。例えば、プロセッサ111に含まれるプロセッサコアの数は、プロセッサ113に含まれるプロセッサコアの数と等しく、プロセッサ112に含まれるプロセッサコアの数は、プロセッサ114に含まれるプロセッサコアの数と等しいが、プロセッサ111に含まれるプロセッサコアの数は、プロセッサ112に含まれるプロセッサコアの数と異なる。上述したように、異なる接続された対象物に基づいて、第1パイプライン内のプロセッサは、タイプ1プロセッサ(例えば、プロセッサ111およびプロセッサ113)およびタイプ2プロセッサ(例えば、プロセッサ112およびプロセッサ114)という2つのタイプに分類されてよい。いくつかの実施形態において、同じタイプのプロセッサは、同数のプロセッサコアを含み、異なるタイプのプロセッサは、異なる数のプロセッサコアを含んでよい。いくつかの実施形態において、タイプ1プロセッサに含まれるプロセッサコアの数は、タイプ2プロセッサ内のプロセッサコアの数より大きくてよい。タイプ2プロセッサは、処理モジュールと通信し、処理モジュールに含まれるプロセッサは、いくつかの処理オペレーションを実行可能である。このように、タイプ2プロセッサは、シングルコアプロセッサ、または少数のコアを有するプロセッサであってよく、これにより、ハードウェアコストをさらに低減することができる。例えば、タイプ2プロセッサに含まれるプロセッサコアの数は、タイプ1プロセッサに含まれるプロセッサコアの数の1/2、1/3、1/5、または1/8であってよい。
【0050】
他の実施形態において、タイプ1プロセッサは、マルチコアプロセッサであってよく、タイプ2プロセッサは、シングルコアプロセッサであってよい。いくつかの実施形態において、タイプ3プロセッサも、マルチコアプロセッサであってよい。換言すると、タイプ3プロセッサも、複数のプロセッサコアを含んでよい。いくつかの実施形態において、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ1プロセッサに含まれるプロセッサコアの数またはタイプ2プロセッサに含まれるプロセッサコアの数より小さい。換言すると、タイプ1プロセッサに含まれるプロセッサコアの数、およびタイプ2プロセッサに含まれるプロセッサコアの数は両方とも、タイプ3プロセッサに含まれるプロセッサコアの数より大きい。例えば、プロセッサ1211に含まれるプロセッサコアの数は、プロセッサ111に含まれるプロセッサコアの数より小さくてよく、プロセッサ1211に含まれるプロセッサコアの数も、プロセッサ112に含まれるプロセッサコアの数より小さくてよい。他の実施形態において、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ1プロセッサに含まれるプロセッサコアの数より小さくてよく、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ2プロセッサに含まれるプロセッサコアの数と等しいまたはこれより大きくてよい。例えば、プロセッサ1213に含まれるプロセッサコアの数は、プロセッサ111に含まれるプロセッサコアの数より小さくてよく、プロセッサ1213に含まれるプロセッサコアの数は、プロセッサ114に含まれるプロセッサコアの数と等しいまたはこれより大きくてよい。例えば、いくつかの実施形態において、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ1プロセッサに含まれるプロセッサコアの数の1/10より小さいまたはこれと等しくてよい。別の例では、他の実施形態において、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ1プロセッサに含まれるプロセッサコアの数の1/2、1/3、1/5、1/8等より小さいまたはこれと等しくてよい。
【0051】
他の実施形態において、タイプ2プロセッサに含まれるプロセッサコアの数およびプロセッサに対応する処理モジュール内の1つのタイプ3プロセッサに含まれるプロセッサコアの数の和は、タイプ1プロセッサに含まれるプロセッサコアの数と等しい。例えば、プロセッサ112に含まれるプロセッサコアの数およびプロセッサ1212に含まれるプロセッサコアの数の和は、プロセッサ111に含まれるプロセッサコアの数と等しい。別の例では、プロセッサ114に含まれるプロセッサコアの数は、プロセッサ1214に含まれるプロセッサコアの数の和は、プロセッサ113に含まれるプロセッサコアの数と等しい。いくつかの実施形態において、異なるタイプ3プロセッサは、同数のプロセッサコアを含んでよい。例えば、プロセッサ1211に含まれるプロセッサコアの数は、プロセッサ1212に含まれるプロセッサコアの数と等しく、プロセッサ1212に含まれるプロセッサコアの数は、プロセッサ1215に含まれるプロセッサコアの数と等しい。
【0052】
他の実施形態において、異なるタイプ3プロセッサは、異なる数のプロセッサコアを含んでよい。
【0053】
他の実施形態において、同じ処理モジュールに属するいずれか2つのプロセッサは、同数のプロセッサコアを含み、異なる処理モジュールに属する2つのプロセッサは、異なる数のプロセッサコアを含む。例えば、プロセッサ1211に含まれるプロセッサコアの数は、プロセッサ1212に含まれるプロセッサコアの数と等しく、プロセッサ1212に含まれるプロセッサコアの数は、プロセッサ1213に含まれるプロセッサコアの数と等しくない。図1に示すチップにおいて、各処理モジュールは、少なくとも2つのプロセッサを含む。他の実施形態において、処理モジュールは、代替的に、1つのマルチコアプロセッサを含む。例えば、処理モジュール121は、プロセッサ1211およびメモリ1221のみを含んでよく、プロセッサ1211はマルチコアプロセッサである。
【0054】
いくつかの実施形態において、タイプ2プロセッサもシングルコアプロセッサであってよい。タイプ2プロセッサがシングルコアプロセッサである場合、プロセッサを含む処理モジュールは、少なくとも2つのプロセッサを含んでよい。換言すると、処理モジュールが複数のプロセッサを含む場合、複数のプロセッサは、少なくとも1つのシングルコアプロセッサを含んでよい。処理モジュール121は、例として用いられる。処理モジュール121内のプロセッサ1211は、シングルコアプロセッサであってよく、プロセッサ1212は、シングルコアプロセッサまたはマルチコアプロセッサであってよい。
【0055】
いくつかの実施形態において、タイプ1バスの長さは、タイプ3バスの長さより大きい。例えば、タイプ3バスの長さは、タイプ1バスの長さの1/5、1/8、1/10等と等しくてよい。別の例では、タイプ3バスの長さは、タイプ1バスの長さの1/10、1/15、1/20等より小さくてよい。いくつかの実施形態において、タイプ1バスの長さおよびタイプ3バスの長さの和は、タイプ5バスの長さと等しい。
【0056】
いくつかの実施形態において、いずれか2つのタイプ1バスは、同じ長さを有してよい。いくつかの実施形態において、いずれか2つのタイプ2バスは、同じ長さを有してよい。いくつかの実施形態において、いずれか2つのタイプ3バスは、同じ長さを有してよい。いくつかの実施形態において、いずれか2つのタイプ4バスは、同じ長さを有してよい。いくつかの実施形態において、いずれか2つのタイプ5バスは、同じ長さを有してよい。製造工程の制限に起因して、完全に同じ長さのバスを取得することは難しい場合がある。したがって、本願の本実施形態において、長さが同じであることは、長さが完全に同じであることとして理解されてよく、または、長さの差が許容誤差範囲内であることとして理解されてよい。例えば、タイプ1バスの長さおよびタイプ3バスの長さの和がタイプ5バスの長さと等しいことは、タイプ1バスの長さおよびタイプ3バスの長さの和、およびタイプ5バスの長さの間の差が0である、または予め設定された許容誤差値より小さいまたはこれと等しいこととして理解されてよい。別の例では、バス51の長さおよびバス52の長さ(すなわち、2つのタイプ5バスの長さ)の間の差は0である、または予め設定された許容誤差値より小さいまたはこれと等しい。
【0057】
いくつかの実施形態において、同じ処理モジュール内の全ての第3バスの幅の和は、1つの第1バスの幅より大きい。例えば、バス31の幅およびバス32の幅の和は、バス11の幅より大きい。別の例では、バス33の幅、バス34の幅、およびバス35の幅の和は、バス12の幅より大きい。バスにより同時送信可能なバイナリデータのビット数は、幅(width)と称され(ビット幅とも称されてよい)、幅はビット単位で測定される。バス幅がより大きいことは、伝送性能がより良く、同じ期間内に送信可能なデータ量がより大きいことを示す。バス帯域幅(単位時間当たりに送信可能な合計データ量)を計算するための式は、以下の通りである:バス帯域幅=周波数×幅(bytes/sec)。
【0058】
いくつかの実施形態において、タイプ2バスの幅は、タイプ4バスの幅より小さくてよい。図2は、本願の実施形態に係る別のチップの概略図である。図2に示すように、チップ200は、入力/出力インタフェース201、プロセッサ211、プロセッサ212、プロセッサ213、およびプロセッサ214を含む。チップ200は、処理モジュール221および処理モジュール222をさらに含む。処理モジュール221は、プロセッサ2211およびプロセッサ2212を含む。処理モジュール222は、プロセッサ2213、プロセッサ2214、およびプロセッサ2215を含む。
【0059】
プロセッサ211は、バス2461により入力/出力インタフェース201に接続される。プロセッサ211は、バス2441によりプロセッサ212に接続される。プロセッサ212は、バス2411により処理モジュール221に接続される。プロセッサ212は、バス2442によりプロセッサ213に接続される。プロセッサ213は、バス2462により入力/出力インタフェース201に接続される。プロセッサ213は、バス2443によりプロセッサ214に接続される。プロセッサ214は、バス2412により処理モジュール222に接続される。処理モジュール221は、バス2431により入力/出力インタフェース201に接続される。処理モジュール222は、バス2433により入力/出力インタフェース201に接続される。プロセッサ2221は、バス2421によりプロセッサ2212に接続される。プロセッサ2213は、バス2422によりプロセッサ2214に接続される。プロセッサ2214は、バス2423によりプロセッサ2215に接続される。メモリ231からメモリ237は、チップ200外に位置するメモリである。チップ200は、入力/出力インタフェース201および対応するバスにより、メモリ231からメモリ237にアクセスしてよい。具体的には、メモリ231は、バス2471によりチップ200に接続され、メモリ232は、バス2472によりチップ200に接続され、メモリ233は、バス2473によりチップ200に接続され、メモリ234は、バス2474によりチップ200に接続され、メモリ235は、バス2475によりチップ200に接続され、メモリ236は、バス2476によりチップ200に接続され、メモリ237は、バス2477によりチップ200に接続される。
【0060】
チップ200は、パイプライン(pipeline)方式で、受信されたパケットを処理する。図2に示すように、チップ200内のプロセッサ211、プロセッサ212、プロセッサ213、およびプロセッサ214は、単一のパイプラインに属し、パイプラインは、第1パイプラインと称されてよい。図2に示すように、第1パイプライン内のいくつかプロセッサは、バスにより入力/出力インタフェースと直接通信可能であり、第1パイプライン内の他のプロセッサは、バスにより処理モジュールに接続される。説明を容易ならしめるために、入力/出力インタフェースと直接通信可能なプロセッサ(すなわち、処理モジュールに接続されないプロセッサ)は、タイプ1プロセッサと称されてよく、処理モジュールに接続されるプロセッサは、タイプ2プロセッサと称されてよい。例えば、図2において、タイプ1プロセッサは、プロセッサ211およびプロセッサ213を含んでよく、タイプ2プロセッサは、プロセッサ212およびプロセッサ214を含んでよい。
【0061】
各処理モジュールに含まれる複数のプロセッサは、単一のパイプラインに属してもよい。例えば、プロセッサ2211およびプロセッサ2212は、同じパイプラインに属し、プロセッサ2213、プロセッサ2214、およびプロセッサ2215は、同じパイプラインに属する。説明を容易ならしめるために、処理モジュール内のパイプラインは、第2パイプラインと称されてよい。処理モジュール内のプロセッサは、タイプ3プロセッサと称されてよい。具体的には、図2に示すプロセッサ2211、プロセッサ2212、プロセッサ2213、プロセッサ2214、およびプロセッサ2215は全て、タイプ3プロセッサと称されてよい。
【0062】
各タイプ1プロセッサおよび各プロセッサは、1つの対応するメモリを有する。プロセッサは、対応するメモリに格納されたデータを読み出してよい。プロセッサは、対応するメモリにデータを書き込んでもよい。図2において、プロセッサ211に対応するメモリはメモリ231であり、プロセッサ2211に対応するメモリはメモリ232であり、プロセッサ2212に対応するメモリはメモリ233であり、プロセッサ213に対応するメモリはメモリ234であり、プロセッサ2213に対応するメモリはメモリ235であり、プロセッサ2214に対応するメモリはメモリ236であり、プロセッサ2215に対応するメモリはメモリ237である。例えば、プロセッサ211は、メモリ231に格納されたデータを読み出し、および/または、メモリ231にデータを書き込んでよい。別の例では、プロセッサ2213は、メモリ235に格納されたデータを読み出し、および/または、メモリ235にデータを書き込んでよい。
【0063】
バスによりプロセッサに接続される処理モジュールは、プロセッサに対応する処理モジュールと称されてよい。例えば、処理モジュール121は、プロセッサ112に対応する処理モジュールである。
【0064】
異なる接続された対象物に基づいて、チップ200内のバスは、タイプ1バス、タイプ2バス、タイプ3バス、タイプ4バス、タイプ5バス、およびタイプ6バスを含んでよい。タイプ1バスは、タイプ2プロセッサおよびタイプ2プロセッサに対応する処理モジュールを接続するように構成される。例えば、プロセッサ212および処理モジュール221を接続するように構成されるバス2411、およびプロセッサ214および処理モジュール222を接続するように構成されるバス2412は、両方ともタイプ1バスである。タイプ2バスは、2つのタイプ3プロセッサを接続するように構成される。例えば、プロセッサ2221およびプロセッサ2212を接続するように構成されるバス2421、プロセッサ2213およびプロセッサ2214を接続するように構成されるバス2422、およびプロセッサ2214およびプロセッサ2215を接続するように構成されるバス2423は全て、タイプ2バスである。タイプ3バスは、処理モジュール内のプロセッサおよび入力/出力インタフェースを接続するように構成される。例えば、バス2431、バス2432、バス2433、バス2434、およびバス2435は全て、タイプ3バスである。バス2431は、プロセッサ2211および入力/出力インタフェース201を接続するように構成されるタイプ3バスである。バス2432は、プロセッサ2212および入力/出力インタフェース201を接続するように構成されるタイプ3バスである。バス2433は、プロセッサ2213および入力/出力インタフェース201を接続するように構成されるタイプ3バスである。バス2434は、プロセッサ2214および入力/出力インタフェース201を接続するように構成されるタイプ3バスである。バス2435は、プロセッサ2215および入力/出力インタフェース201を接続するように構成されるタイプ3バスである。タイプ4バスは、第1パイプライン内の2つのプロセッサを接続するように構成される。例えば、プロセッサ211およびプロセッサ212を接続するように構成されるバス2441、プロセッサ212およびプロセッサ213を接続するように構成されるバス2442、およびプロセッサ213およびプロセッサ214を接続するように構成されるバス2443は全て、タイプ4バスである。タイプ6バスは、タイプ1プロセッサおよび入力/出力インタフェースを接続するように構成される。例えば、バス2461およびバス2462は、両方ともタイプ6バスである。
【0065】
チップ200内のバスに加えて、チップ200は、バスによりメモリにさらに接続される。バス2471からバス2477は、チップ200およびメモリを接続するように構成されるバスであり、当該バスは、タイプ7バスと称されてよい。タイプ1プロセッサは、対応するバスおよび入力/出力インタフェースにより、対応するメモリにアクセスしてよい。例えば、プロセッサ211は、バス2461、入力/出力インタフェース201、およびバス2471により、メモリ231にアクセスしてよい。別の例では、プロセッサ213は、バス2462、入力/出力インタフェース201、およびバス2474により、メモリ234にアクセスしてよい。タイプ3プロセッサは、対応するバスおよび入力/出力インタフェースにより、対応するメモリにアクセスしてよい。例えば、プロセッサ2211は、バス2431、入力/出力インタフェース201、およびバス2472により、メモリ232にアクセスしてよい。別の例では、プロセッサ2215は、バス2435、入力/出力インタフェース201、およびバス2477により、メモリ237にアクセスしてよい。
【0066】
図1に示すチップと同様に、いくつかの実施形態において、図2に示すプロセッサは全て、マルチコアプロセッサであってよい。他の実施形態において、タイプ1プロセッサおよびタイプ2プロセッサは、マルチコアプロセッサであってよく、タイプ3プロセッサは、シングルコアプロセッサであってよい。タイプ3プロセッサの構造は、タイプ1プロセッサの構造より単純であってよい。例えば、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ1プロセッサに含まれるプロセッサコアの数より小さくてよい。別の例では、タイプ3プロセッサに含まれるトランジスタの数は、タイプ1プロセッサに含まれるトランジスタの数より小さくてよい。タイプ1プロセッサ、タイプ2プロセッサ、およびタイプ3プロセッサの具体的な事例については、図1に示すチップ100の説明を参照されたい。簡潔にするために、本明細書においては、詳細について改めて説明しない。
【0067】
いくつかの実施形態において、タイプ1バスの長さは、タイプ3バスの長さより大きい。例えば、タイプ1バスの長さは、タイプ3バスの長さの1/5、1/8、1/10等と等しくてよい。別の例では、タイプ3バスの長さは、タイプ1バスの長さの1/10、1/15、1/20等より小さくてよい。いくつかの実施形態において、タイプ1バスの長さおよびタイプ3バスの長さの和は、タイプ6バスの長さと等しい。いくつかの実施形態において、いずれか2つのタイプ1バスは、同じ長さを有してよい。いくつかの実施形態において、いずれか2つのタイプ2バスは、同じ長さを有してよい。いくつかの実施形態において、いずれか2つのタイプ3バスは、同じ長さを有してよい。いくつかの実施形態において、いずれか2つのタイプ4バスは、同じ長さを有してよい。いくつかの実施形態において、いずれか2つのタイプ6バスは、同じ長さを有してよい。
【0068】
いくつかの実施形態において、入力/出力インタフェースおよび同じ処理モジュールに対応するプロセッサの間のバスの幅和は、1つの第1バスの幅より大きい。例えば、バス2431の幅およびバス2432の幅の和であり、バス2411の幅より大きい。別の例では、バス2433の幅の和、バス2434の幅、およびバス2435の幅は、バス2412の幅より大きい。いくつかの実施形態において、タイプ2バスの幅は、タイプ4バスの幅より小さくてよい。図1に示す実施形態において、対応するメモリを有する各プロセッサ(タイプ3プロセッサおよびタイプ1プロセッサ)および当該対応するメモリは、チップ内に位置する。
【0069】
図2に示す実施形態において、プロセッサに対応するメモリは、チップ外に位置する。他の実施形態において、プロセッサに対応するメモリの一部は、チップ内に位置してよく、プロセッサに対応するメモリの他の一部は、チップ外に位置してよい。本実施形態は、図1に示す実施形態および図2に示す実施形態の組み合わせとみなされてよい。図1または図2に示すチップは、図3に示す2つの構造を含むことが認識できる。図3は、ハイブリッドプロセッサ回路の概略図である。図3に示すように、プロセッサ301は、バス331により処理モジュール310に接続される。処理モジュール310は、3つのプロセッサを含み、これらはそれぞれ、プロセッサ311、プロセッサ312、およびプロセッサ313である。処理モジュール310内のプロセッサは、バス332により接続される。プロセッサ301は、タイプ1プロセッサであり、プロセッサ311、プロセッサ312、およびプロセッサ313は、タイプ3プロセッサである。より具体的には、プロセッサ311は、タイプ2プロセッサである。処理モジュール310内の各プロセッサは、1つの対応するメモリを有する。プロセッサ311に対応するメモリはメモリ321であり、プロセッサ312に対応するメモリはメモリ322であり、プロセッサ313に対応するメモリはメモリ323である。処理モジュール310内の各プロセッサは、バスにより対応するメモリに接続される。プロセッサ311は、バス333によりメモリ321に接続され、プロセッサ312は、バス334によりメモリ322に接続され、プロセッサ313は、バス335によりメモリ323に接続される。プロセッサ301、プロセッサ311、プロセッサ312、およびプロセッサ313は、同じチップ内に位置する。処理モジュール310内の各プロセッサの対応するメモリは、処理モジュール310と同じチップ内に位置してよい、または、処理モジュール310が位置するチップの外に位置してよい。メモリが、処理モジュール310が位置するチップの外に位置する場合、処理モジュール内のプロセッサおよび対応するメモリを接続するように構成されるバスは、プロセッサからチップの入力/出力インタフェースへのバス、およびチップから対応するメモリへのバスを含んでよい。例えば、バス333は、プロセッサ311からチップの入力/出力インタフェースへのバス、およびチップの入力/出力インタフェースからメモリ321へのバスを含んでよい。
【0070】
説明を容易ならしめるために、図3に示す構造は、ハイブリッドプロセッサ回路またはハイブリッドプロセッサ構造と称されてよい。図3に示すハイブリッドプロセッサ構造内の処理モジュールは、3つのプロセッサを含む。他の実施形態において、処理モジュール内のプロセッサの数は、1より大きいまたはこれと等しい正の整数であってよい。例えば、当該数は、1、2、4、5等であってよい。上述したように、処理モジュールが1つのプロセッサを含む場合、プロセッサは、マルチコアプロセッサであってよい。処理モジュールが少なくとも2つのプロセッサを含む場合、少なくとも2つのプロセッサは、1または複数のシングルコアプロセッサを含んでよい。
【0071】
説明を容易ならしめるために、バス333の長さ、バス334の長さ、およびバス335の長さは同じであると仮定する。文字Lは、バス333の長さを表すために用いられ、文字Rは、バス331の長さを表すために用いられる。前述の実施形態で説明したように、いくつかの実施形態において、LはRより小さい。他の実施形態において、LはRよりはるかに小さくてよい。例えば、Lは、Rの10分の1と等しくてよい、または、Lは、Rの10分の1より小さい。文字Aは、バス333の幅を表すために用いられ、文字Bは、バス334の幅を表すために用いられ、文字Cは、バス335の幅を表すために用いられ、文字Dは、バス331の幅を表すために用いられると仮定する。この場合、A、B、C、およびDは、以下の関係:D<A+B+Cを満たす。このように、図3に示すハイブリッドプロセッサ構造のデータ転送コストを、式3.1に示してよい。
Cost_TX=L×(A+B+C)+R×D(式3.1)
【0072】
Cost_TXは、データ転送コストを表し、Lは、バス333の長さ(バス333の長さ、バス334の長さ、およびバス335の長さは等しい)を表し、Rは、バス331の長さを表し、Aは、バス333の幅を表し、Bは、バス334の幅を表し、Cは、バス335の幅を表し、Dは、バス331の幅を表す。
【0073】
パケットを受信した後、パイプライン構造を用いるチップ(例えば、図1に示すチップ100または図2に示すチップ200)は、パケットのためのプログラム状態(program state、PS)を生成してよい。PSは、パケット転送中に、コンテキスト情報を格納するために用いられる。PSは、第1パイプライン内の各プロセッサを通過し、第1パイプライン内のプロセッサは、処理を担う。説明を容易ならしめるために、第1パイプライン内のプロセッサによって処理されるPSは、第1PSと称されてよい。PS_Full_Sizeは、第1PSのサイズを表すと仮定する。処理モジュール310も、パケットを処理するプロセスにおいて、PSを生成する。PSは、第2パイプライン内の各プロセッサを順に通過し、第2パイプライン内のプロセッサは、処理を担う。説明を容易ならしめるために、第2パイプライン内のプロセッサによって処理されるPSは、第2PSと称されてよい。PS_Little_Sizeは、第2PSのサイズを表すと仮定する。第1PSは、パケット転送中に、コンテキスト情報を格納する。第2PSは、第2パイプラインにおいて処理される情報のみを格納する。したがって、第1PSのサイズは、第2PSのサイズより大きい(すなわち、PS_Full_Size>PS_Little_Size)。いくつかの実施形態において、第2PSのサイズは、第1PSのサイズの1/5、1/8、1/10、1/15、1/20等と等しいまたはこれより小さくてよい。
【0074】
第2PSのサイズは第1PSのサイズより小さいので、より単純なプロセッサが、第2PSを処理するために用いられてよい。したがって、処理モジュール内のプロセッサ(すなわちタイプ3プロセッサ)の構造は、第1パイプライン内のプロセッサの構造より単純であってよい。具体的には、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ1プロセッサに含まれるプロセッサコアの数および/または、タイプ2プロセッサに含まれるプロセッサコアの数より小さくてよい、および/または、タイプ3プロセッサに含まれるトランジスタの数は、タイプ1プロセッサに含まれるトランジスタの数および/またはタイプ2プロセッサに含まれるトランジスタの数より小さくてよい。第1PSのサイズおよび第2PSのサイズの間のより大きい差は、タイプ3プロセッサのより単純な構造を示す。
【0075】
いくつかの実施形態において、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ1プロセッサに含まれるプロセッサコアの数より小さくてよい、および/または、タイプ3プロセッサに含まれるトランジスタの数は、タイプ1プロセッサに含まれるトランジスタの数より小さくてよい。他の実施形態において、タイプ3プロセッサに含まれるプロセッサコアの数は、タイプ2プロセッサに含まれるプロセッサコアの数より小さくてよい、および/または、タイプ3プロセッサに含まれるトランジスタの数は、タイプ2プロセッサに含まれるトランジスタの数より小さくてよい。
【0076】
プロセッサコアの数が、例として用いられる。N_Littleは、タイプ3プロセッサに含まれるプロセッサコアの数を表すために用いられてよく、N_Big2は、タイプ2プロセッサに含まれるプロセッサコアの数を表すために用いられてよく、N_Big1は、タイプ1プロセッサに含まれるプロセッサコアの数を表すために用いられてよい。
【0077】
このように、図3に示すハイブリッドプロセッサ構造のプロセッサコストを、式3.2に示してよい。
Cost_Proc=PS_Little_Size×N_Little+PS_Full_Size×N_Big2(式3.2)
【0078】
Cost_Procは、プロセッサコストを表し、PS_Little_Size、N_Little、PS_Full_Size、およびN_Big2の意味は、上述されている。簡潔にするために、本明細書においては、詳細について改めて説明しない。
【0079】
いくつかの実施形態において、N_Little、N_Big2、およびN_Big1は、以下の関係を満たす:N_Big1=N_Little+N_Big2。
【0080】
Latency_Lが、長さLのバスの入力/出力(Input/Output、I/O)レイテンシを表すために用いられ、Latency_Rが、長さRのバスのI/Oレイテンシを表すために用いられる場合、図3に示すハイブリッドプロセッサ構造を用いる場合に生成されるレイテンシコストを、式3.3に示してよい。
Cost_LAT=Latency_L×3+Latency_R×1(式3.3)
【0081】
Cost_LATは、レイテンシコストを表し、Latency_Lは、長さLのバスのI/Oレイテンシを表し、Latency_Rは、長さRのバスのI/Oレイテンシを表す。
【0082】
1つのパイプライン内のプロセッサが、図3に示すハイブリッド処理構造によって実装される機能を実装する場合、図4に示す構造が必要とされる。
【0083】
図4は、プロセッサを含む別の回路の概略図である。図4に示す回路は、プロセッサ401、プロセッサ402、およびプロセッサ403という3つのプロセッサを含む。さらに、プロセッサ401、プロセッサ402、およびプロセッサ403は、タイプ1プロセッサである。(プロセッサ401からプロセッサ403は全て、同じパイプライン内のプロセッサであり、プロセッサ401からプロセッサ403は、バスにより、処理モジュールではなくメモリに接続される。)3つのプロセッサの各々は、対応するメモリを有する。プロセッサ401に対応するメモリはメモリ411であり、プロセッサ402に対応するメモリはメモリ412であり、プロセッサ403に対応するメモリはメモリ413である。プロセッサ401は、バス421によりメモリ411に接続され、プロセッサ402は、バス422によりメモリ412に接続され、プロセッサ403は、バス423によりメモリ413に接続される。プロセッサ401は、バス424によりプロセッサ402に接続され、プロセッサ402は、バス424によりプロセッサ403に接続される。
【0084】
バス421、バス422、およびバス423は、同じ長さを有する。バス421の長さは、L+R、すなわち、図3に示すバス333の長さおよびバス331の長さの和と等しくてよい。バス421の幅は、バス333の幅と等しくてよく、バス422の幅は、バス334の幅と等しくてよく、バス423の幅は、バス335の幅と等しくてよい。この場合、図4に示す構造を用いる場合に生成されるデータ転送コストを、式4.1に示してよい。
Cost_TX=(L+R)×(A+B+C)(式4.1)
【0085】
Cost_TXは、データ転送コストを表し、L+Rは、バス421の長さ(バス422の長さはバス421の長さと等しく、バス423の長さはバス421の長さと等しい)であり、Aは、バス421の幅を表し、Bは、バス422の幅を表し、Cは、バス423の幅を表す。
【0086】
式4.1および式3.1の間の比較により、LがRより小さく、DがA+B+Cより小さい場合には、図3に示す構造を用いる場合に生成されるデータ転送コストが、図4に示す構造を用いる場合に生成されるデータ転送コストより小さいことを見出すことができる。
【0087】
いくつかの実施形態において、RおよびLの間のより大きい差は、図3に示す構造のより低いデータ転送コストを示す。
【0088】
上述したように、プロセッサ401からプロセッサ403は全てタイプ1プロセッサなので、プロセッサ401からプロセッサ403を通過するPSは、PS_Fullである。これに対応して、PS_Fullのサイズは、PS_Full_Sizeであり、タイプ1プロセッサに含まれるプロセッサコアの数は、N_Big1である。この場合、図4に示す構造を用いる場合に生成されるプロセッサコストを、式4.2に示してよい。
Cost_Proc=PS_Full_Size×N_Big1(式4.2)
【0089】
Cost_Procは、プロセッサコストを表し、PS_Full_Sizeは、プロセッサ401を通過するPSのサイズであり、N_Big1は、プロセッサ401に含まれるプロセッサコアの数である。
【0090】
N_Big1=N_Little+N_Big2の場合、図4に示す構造と比較すると、図3に示す構造を用いる場合に生成されるプロセッサコストは、(PS_Full_Size-PS_Little_Size)×N_Littleだけ低減されてよい。PS_Full_SizeおよびPS_Little_Sizeの間のより大きい差は、より低減されたプロセッサコスト(すなわち、より低いプロセッサコスト)を示す。N_Big1およびN_Little1の間のより大きい差は、より低減されたプロセッサコスト(すなわち、より低いプロセッサコスト)を示す。
【0091】
Latency_Lが、長さLのバスのI/Oレイテンシを表すために用いられ、Latency_Rが、長さRのバスのI/Oレイテンシを表すために用いられる場合、図4に示す構造を用いる場合に生成されるレイテンシコストを、式4.3に示してよい。
Cost_LAT=(Latency_L+Latency_R)×3(式4.3)
【0092】
Cost_LATは、レイテンシコストを表し、Latency_Lは、長さLのバスのI/Oレイテンシを表し、Latency_Rは、長さRのバスのI/Oレイテンシを表す。
【0093】
図4に示す構造と比較して、図3に示す構造は、Latency_R×2のI/Oレイテンシを低減可能であることを認識することができる。RおよびLの間のより大きい差は、より低減されたI/Oレイテンシを示す。
【0094】
結果として、本願の実施形態に係る技術的解決手段において、対応する機能が、より低いコスト(より低いデータ転送コスト、より低いプロセッサコスト、およびより低いレイテンシコスト)を用いて実装可能である。さらに、処理モジュール内で必要とされるバスの長さは短く、タイプ2プロセッサおよび処理モジュールの間のバスの幅は小さいので、同じ機能を実装するチップと比較して、本願の技術的解決手段を用いるチップの面積は小さい。
【0095】
以下、等コストマルチパス(equal-cost multi-path routing、ECMP)を例として用いることによって、図3および図4における2つの構造を説明する。
【0096】
ECMPによってネクストホップポートを決定する基本的なプロセスは、以下の通りである:パケットのフロー識別子情報(例えば、クインタプルまたはフローラベル(flow label))に基づいて、ハッシュ値が決定され、次に、ECMPルーティングテーブルおよびハッシュ値に基づいて、エントリが決定され、エントリに含まれるポートは、パケットを送信するためのネクストホップポートである。
【0097】
いくつかの場合、ECMPルーティングテーブルに格納されるエントリを低減し、ルックアップ効率を改善するために、ECMPルーティングテーブルは、複数のテーブルに分割されてよく、例えば、3つのテーブルに分割されてよく、これらはそれぞれ、ルーティングエントリテーブル1、ルーティングエントリテーブル2、およびルーティングエントリテーブル3と称される。最初に、パケットのフロー識別子情報に基づいて、フロー識別子情報に対応するエントリがルーティングエントリテーブル1から決定され、エントリは、1つのベースアドレスおよび1つのルーティングエントリテーブルのインデックスを含む。次に、ルーティングエントリテーブル2が、ルーティングエントリテーブルのインデックスに基づいて決定され、ベースアドレスおよびパケットのフロー識別子情報に基づいて決定されたハッシュ値に対応するエントリがルーティングエントリテーブル2から問い合わせされ、エントリは、1つのポートインデックスおよび1つのルーティングエントリテーブルのインデックスを含む。最後に、ルーティングエントリテーブル3が、ルーティングエントリテーブルのインデックスに基づいて決定され、ポートインデックスに対応するエントリがルーティングエントリテーブル3から問い合わせされ、エントリは、パケットのネクストホップポートを含む。
【0098】
図5は、図4に示す回路を用いることによってネクストホップポートを決定する概略フローチャートである。
【0099】
501:プロセッサ401は、受信されたPSから、1つのルーティングエントリテーブルのインデックス(以下、ルーティングテーブルインデックス1と称される)を取得する。
【0100】
502:プロセッサ401は、ルーティングテーブルインデックス1をメモリ411に送信する。
【0101】
503:プロセッサ401は、メモリ411から、ルーティングテーブルインデックス1に対応するルーティングエントリテーブル1を受信する。
【0102】
504:プロセッサ401は、ルーティングエントリテーブル1から、パケットのフロー識別子情報に対応するエントリを決定する。エントリは、1つのルーティングエントリテーブルのインデックス(以下、ルーティングテーブルインデックス2と称される)および1つのベースアドレスを含み、ルーティングテーブルインデックス2およびベースアドレスは、PSに書き込まれる。
【0103】
505:プロセッサ401は、PS(すなわち、ルーティングテーブルインデックス2およびベースアドレスが書き込まれたPS)をプロセッサ402に送信する。
【0104】
506:プロセッサ402は、ルーティングテーブルインデックス2、ベースアドレス、および1つのハッシュ値を、受信されたPSから取得する。ハッシュ値は、パケットのフロー識別子情報に基づいて決定される。ハッシュ値は、プロセッサ401の上流ノードによって決定され、PSに書き込まれてよい。
【0105】
507:プロセッサ402は、ルーティングテーブルインデックス2をメモリ412に送信する。
【0106】
508:プロセッサ402は、メモリ412から、ルーティングテーブルインデックス2に対応するルーティングエントリテーブル2を受信する。
【0107】
509:プロセッサ402は、ルーティングエントリテーブル2から、ベースアドレスおよびハッシュ値に対応するエントリを問い合わせ、エントリは、1つのポートインデックスおよび1つのルーティングエントリテーブルのインデックス(以下、ルーティングテーブルインデックス3と称される)を含む。プロセッサ402は、ポートインデックスおよびルーティングテーブルインデックス3をPSに書き込む。
【0108】
510:プロセッサ402は、PS(すなわち、ポートインデックスおよびルーティングテーブルインデックス3が書き込まれたPS)をプロセッサ403に送信する。
【0109】
511:プロセッサ403は、ルーティングテーブルインデックス3およびポートインデックスを、受信されたPSから取得する。
【0110】
512:プロセッサ403は、ルーティングテーブルインデックス3をメモリ413に送信する。
【0111】
513:プロセッサ403は、メモリ412から、ルーティングテーブルインデックス3に対応するルーティングエントリテーブル3を受信する。
【0112】
514:プロセッサ403は、ルーティングエントリテーブル3から、ポートインデックスに対応するエントリを問い合わせ、エントリに含まれる内容は、パケットのネクストホップポートである。
【0113】
515:プロセッサ403は、パケットのネクストホップポートをPSに書き込み、PSをパイプライン内のネクストノードに送信し、これにより、ネクストノードは、パケットを処理し続ける。
【0114】
図6Aおよび図6Bは、図3に示す回路用いることによって、ネクストホップポートを決定する概略フローチャートである。
【0115】
601:プロセッサ301は、受信されたPSから、1つのルーティングエントリテーブルのインデックス(以下、ルーティングテーブルインデックス1と称される)、パケットのフロー識別子情報、およびパケットのフロー識別子情報に基づいて決定されたハッシュ値を取得する。
【0116】
602:プロセッサ301は、プロセッサ311に、ルーティングテーブルインデックス1、パケットのフロー識別子情報、およびパケットのフロー識別子情報に基づいて決定されたハッシュ値を送信する。
【0117】
603:プロセッサ311は、ルーティングテーブルインデックス1をメモリ321に送信する。
【0118】
604:プロセッサ311は、メモリ321から、ルーティングテーブルインデックス1に対応するルーティングエントリテーブル1を受信する。
【0119】
605:プロセッサ311は、ルーティングエントリテーブル1から、パケットのフロー識別子情報に対応するエントリを決定する。エントリは、1つのルーティングエントリテーブルのインデックス(以下、ルーティングテーブルインデックス2と称される)および1つのベースアドレスを含み、ルーティングテーブルインデックス2およびベースアドレスは、PSに書き込まれる。PSは、パケットのフロー識別子情報に基づいて決定されたハッシュ値をさらに含んでよい。
【0120】
606:プロセッサ311は、PS(すなわち、ルーティングテーブルインデックス2およびベースアドレスが書き込まれたPS)をプロセッサ312に送信する。
【0121】
607:プロセッサ312は、ルーティングテーブルインデックス2、ベースアドレス、およびハッシュ値を、受信されたPSから取得する。
【0122】
608:プロセッサ312は、ルーティングテーブルインデックス2をメモリ322に送信する。
【0123】
609:プロセッサ312は、メモリ322から、ルーティングテーブルインデックス2に対応するルーティングエントリテーブル2を受信する。
【0124】
610:プロセッサ312は、ルーティングエントリテーブル2から、ベースアドレスおよびハッシュ値に対応するエントリを問い合わせ、エントリは、1つのポートインデックスおよび1つのルーティングエントリテーブルのインデックス(以下、ルーティングテーブルインデックス3と称される)を含む。プロセッサ312は、ポートインデックスおよびルーティングテーブルインデックス3をPSに書き込む。
【0125】
611:プロセッサ312は、PS(すなわち、ポートインデックスおよびルーティングテーブルインデックス3が書き込まれたPS)をプロセッサ313に送信する。
【0126】
612:プロセッサ313は、ルーティングテーブルインデックス3およびポートインデックスを、受信されたPSから取得する。
【0127】
613:プロセッサ313は、ルーティングテーブルインデックス3をメモリ323に送信する。
【0128】
614:プロセッサ313は、メモリ323から、ルーティングテーブルインデックス3に対応するルーティングエントリテーブル3を受信する。
【0129】
615:プロセッサ313は、ルーティングエントリテーブル3から、ポートインデックスに対応するエントリを問い合わせ、エントリに含まれる内容は、パケットのネクストホップポートである。
【0130】
616:プロセッサ313は、パケットのネクストホップポートをプロセッサ301に送信する。
【0131】
617:プロセッサ301は、パケットのネクストホップポートをPSに書き込み、PSをパイプライン内のネクストノードに送信し、これにより、ネクストノードは、パケットを処理し続ける。
【0132】
図5に示す手順において、プロセッサ401からプロセッサ403およびチップ内の他のプロセッサは全て、同じパイプラインに属する。パイプライン内のプロセッサによって処理されたPSは、パケット転送中に、コンテキスト情報を格納するために用いられる。したがって、プロセッサ401によってプロセッサ402に送信されるPSおよびプロセッサ402によってプロセッサ403に送信されるPSは、ネクストホップポートを問い合わせるために必要とされる情報に加えて、後続のノードによって必要とされる情報を含む必要がある。したがって、PSのサイズは大きい。例えば、PSのサイズは、512バイトであってよい。これに対応して、プロセッサ間のバスの幅も大きい。
【0133】
しかしながら、図6Aおよび図6Bに示す手順では、プロセッサ311からプロセッサ313は、ルーティング機能のみをケアし、転送されたPSは、ルーティングに必要とされる情報を含むことのみを必要とする。したがって、小さいサイズのPSを設定することは、プロセッサ311からプロセッサ313の要件を満たしてよい。例えば、64バイトのPSは、ルーティング要件を満たしてよい。これに対応して、小さい幅のバスが、プロセッサ間に設定されてよい。さらに、プロセッサ312によって必要とされる情報およびプロセッサ313によって必要とされる情報は、両方とも前のノードからのものであり、情報をプロセッサ301から取得する必要はない。さらに、プロセッサ301では、プロセッサ301は、決定されたネクストホップポートのみをケアし、プロセッサ301は、ネクストホップポートを決定するためにルーティングエントリテーブル3を取得する必要はなくてよく、プロセッサ301は、ネクストホップポートの決定に無関係な情報を、処理モジュール310に送信する必要はない。したがって、小さい幅のバスが、プロセッサ301および処理モジュール310の間に設定されてよい。例えば、バス331の幅は、128ビット(bits)であってよい。比較すると、大量の情報(例えば、ルーティングエントリテーブル)は、バスにより、プロセッサおよびメモリの間で送信される必要があるので、大きい幅が必要とされる。例えば、バス333からバス335の幅は256ビットであってよく、バス421からバス423の幅は、256ビットであってよい。
【0134】
本願の実施形態は、回路をさらに提供する。回路は、第1プロセッサおよび第1プロセッサに接続された第1処理モジュールを含む。第1処理モジュールは、第1メモリに接続された第2プロセッサを含む。第2プロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第1プロセッサが第1処理モジュールと通信する場合に生成される伝送レイテンシより小さい。
【0135】
例えば、図1に示すプロセッサモジュール121が、プロセッサ1211およびメモリ1221のみを含むと仮定する。この場合、第1プロセッサは、プロセッサ112と等価であってよく、第1処理モジュールは、処理モジュール121と等価であってよく、第2プロセッサは、プロセッサ1211と等価であってよく、第1メモリは、メモリ1221と等価であってよい。プロセッサ1211がメモリ1221上で読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、プロセッサ112が処理モジュール121と通信する場合に生成される伝送レイテンシより小さい。
【0136】
別の例では、図2に示す処理モジュール221が、プロセッサ2211のみを含むと仮定する。この場合、第1プロセッサは、プロセッサ212と等価であってよく、第1処理モジュールは、処理モジュール221と等価であってよく、第2プロセッサは、プロセッサ2211と等価であってよく、第1メモリは、メモリ232と等価であってよい。
【0137】
任意選択的に、いくつかの実施形態において、第2プロセッサはマルチコアプロセッサであり、第2プロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第2プロセッサに含まれるマルチコアプロセッサのいずれかのコアプロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシである。
【0138】
任意選択的に、いくつかの実施形態において、第1プロセッサは、第1バスにより第1処理モジュールに接続され、第2プロセッサは、第2バスにより第1メモリに接続され、第2バスのバスビット幅は第1バスのバスビット幅より大きい、および/または、第2バスの長さは第1バスの長さより小さい。
【0139】
例えば、図1に示す処理モジュール121が、プロセッサ1211およびメモリ1221のみを含むとさらに仮定する。第1バスは、プロセッサ112および処理モジュール121を接続するように構成されるバス11と等価であり、第2バスは、プロセッサ1211およびメモリ1221を接続するように構成されるバス31と等価である。
【0140】
別の例では、図2に示す処理モジュール221が、プロセッサ2211のみを含むとさらに仮定する。第1バスは、プロセッサ212および処理モジュール221を接続するように構成されるバス2411と等価であり、第2バスは、プロセッサ2211およびメモリ232を接続するように構成されるバスと等価であってよく、バス2431およびバス2472を含む。第2バスは、プロセッサ2211および入力/出力インタフェース201を接続するように構成されるバス2431とも等価であってよい。
【0141】
任意選択的に、いくつかの実施形態において、第1処理モジュールは、第2メモリに接続された第3プロセッサをさらに含み、第3プロセッサが第2メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第1プロセッサが第1処理モジュールと通信する場合に生成される伝送レイテンシより小さい。
【0142】
図1が例として使用される。第1プロセッサは、プロセッサ112と等価であってよく、第1処理モジュールは、処理モジュール121と等価であってよく、第2プロセッサは、プロセッサ1211と等価であってよく、第3プロセッサは、プロセッサ1212と等価であってよく、第1メモリは、メモリ1221と等価であってよく、第2メモリは、メモリ1222と等価であってよい。プロセッサ1211がメモリ1221上で読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、プロセッサ112が処理モジュール121と通信する場合に生成される伝送レイテンシより小さく、プロセッサ1212がメモリ1222上で読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、プロセッサ112が処理モジュール121と通信する場合に生成される伝送レイテンシより小さい。
【0143】
図2は、例として用いられる。第1プロセッサは、プロセッサ212と等価であってよく、第1処理モジュールは、処理モジュール221と等価であってよく、第2プロセッサは、プロセッサ2211と等価であってよく、第3プロセッサは、プロセッサ2212と等価であってよく、第1メモリは、メモリ232と等価であってよく、第2メモリは、メモリ233と等価であってよい。
【0144】
任意選択的に、いくつかの実施形態において、第1プロセッサは、第1バスにより第1処理モジュールに接続され、第2プロセッサは、第2バスにより第1メモリに接続され、第3プロセッサは、第3バスにより第2メモリに接続され、第2バスのバスビット幅および第3バスのバスビット幅の和は、第1バスのバスビット幅より大きい。
【0145】
図1が例としてさらに用いられる。第1バスは、バス11と等価であってよく、第2バスは、バス31と等価であってよく、第3バスは、バス32と等価であってよい。
【0146】
図2が例としてさらに用いられる。第1バスは、バス2411と等価であってよく、第2バスは、バス2431およびバス2472と等価であってよく、第3バスは、バス2432およびバス2473と等価であってよい。第2バスは、バス2431とも等価であってよく、第3バスは、バス2432とも等価であってよい。
【0147】
任意選択的に、いくつかの実施形態において、第1処理モジュールは、第1メモリに接続された第3プロセッサをさらに含み、第3プロセッサが第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第1プロセッサが第1処理モジュールと通信する場合に生成される伝送レイテンシより小さい。
【0148】
任意選択的に、いくつかの実施形態において、第1プロセッサは、第1バスにより第1処理モジュールに接続され、第2プロセッサは、第2バスにより第1メモリに接続され、第3プロセッサは、第3バスにより第1メモリに接続され、第2バスのバスビット幅および第3バスのバスビット幅の和は、第1バスのバスビット幅より大きい。
【0149】
任意選択的に、いくつかの実施形態において、第2プロセッサおよび第3プロセッサはパイプラインプロセッサである。
【0150】
任意選択的に、いくつかの実施形態において、回路は、第4プロセッサおよび第4プロセッサに接続された第3メモリをさらに含む。
【0151】
図1が例としてさらに用いられる。プロセッサ111は、第4プロセッサと等価であってよく、メモリ131は、第3メモリと等価であってよい。
【0152】
図2が例としてさらに用いられる。プロセッサ211は、第4プロセッサと等価であってよく、メモリ231は、第3メモリと等価であってよい。
【0153】
任意選択的に、いくつかの実施形態において、回路は、第4プロセッサおよび第4プロセッサに接続された第2処理モジュールをさらに含む。第2処理モジュールは、M個のメモリに接続されたN個の第5プロセッサを含み、NおよびMの両方は、1より大きいまたはこれと等しい整数である。いずれかの第5プロセッサが第5プロセッサに接続されたメモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、第4プロセッサが第2処理モジュールと通信する場合に生成される伝送レイテンシより小さい。
【0154】
図1が例としてさらに用いられる。プロセッサ114は、第4プロセッサと等価であってよく、処理モジュール122は、第2処理モジュールと等価であってよい。
【0155】
図2が例としてさらに用いられる。プロセッサ214は、第4プロセッサと等価であってよく、処理モジュール222は、第2処理モジュールと等価であってよい。
【0156】
任意選択的に、いくつかの実施形態において、第2プロセッサは、第4バスにより第3プロセッサに接続され、第4プロセッサは、第5バスにより第1プロセッサに接続され、第4バスのバスビット幅は、第5バスのバスビット幅より小さい。
【0157】
図1が例としてさらに用いられる。バス21は、第4バスと等価であってよく、バス41は、第5バスと等価であってよい。
【0158】
図2が例としてさらに用いられる。バス2421は、第4バスと等価であってよく、バス2441は、第5バスと等価であってよい。
【0159】
任意選択的に、いくつかの実施形態において、第4プロセッサに含まれるプロセッサコアの数は、第1プロセッサに含まれるプロセッサコアの数より大きいまたはこれと等しい。
【0160】
任意選択的に、いくつかの実施形態において、第4プロセッサおよび第1プロセッサはパイプラインプロセッサである。
【0161】
任意選択的に、いくつかの実施形態において、第1処理モジュールは、第1メモリをさらに含む。
【0162】
本願の実施形態は、電子デバイスをさらに提供する。電子デバイスは、本願の実施形態に係るチップを含み、電子デバイスは、受信機および送信機をさらに含む。受信機は、パケットを受信し、パケットをチップに送信するように構成される。チップは、パケットを処理するように構成される。送信機は、チップによって処理されたパケットを取得し、処理されたパケットを別の電子デバイスに送信するように構成される。電子デバイスは、スイッチ、ルータ、または前述のチップを配置可能な任意の他の電子デバイスであってよい。
【0163】
本願の実施形態におけるチップは、システムオンチップ(system on chip、SoC)、ネットワークプロセッサ(network processor、NP)等であってよい。
【0164】
本願の実施形態におけるメモリは、揮発性メモリまたは不揮発性メモリであってよい、または、揮発性メモリおよび不揮発性メモリの両方を含んでよい。不揮発性メモリは、リードオンリメモリ(read-only memory、ROM)、プログラマブルリードオンリメモリ(Programmable ROM、PROM)、消去可能プログラマブルリードオンリメモリ(Erasable PROM、EPROM)、電気的消去可能プログラマブルリードオンリメモリ(Electrically EPROM、EEPROM)、またはフラッシュメモリであってよい。揮発性メモリは、外部キャッシュとして用いられるランダムアクセスメモリ(random access memory、RAM)であってよい。限定ではない例示により、RAMの多くの形式、例えば、スタティックランダムアクセスメモリ(static RAM、SRAM)、ダイナミックランダムアクセスメモリ(dynamic RAM、DRAM)、シンクロナスダイナミックランダムアクセスメモリ(synchronous DRAM、SDRAM)、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ(double data rate SDRAM、DDR SDRAM)、エンハンスドシンクロナスダイナミックランダムアクセスメモリ(enhanced SDRAM、ESDRAM)、シンクリンクダイナミックランダムアクセスメモリ(synchlink DRAM、SLDRAM)、およびダイレクトランバスダイナミックランダムアクセスメモリ(direct rambus RAM、DR RAM)が用いられてよい。本明細書で説明されたシステムおよび方法のメモリは、これらに限定されるものではないが、別の適切なタイプの任意のメモリを含むことに留意されたい。
【0165】
本願の実施形態におけるプロセッサは、集積回路チップであってよく、信号処理能力を有することに留意されたい。実装プロセスにおいて、前述した方法の実施形態の各段階は、プロセッサにおけるハードウェア統合論理回路を用いることによって、またはソフトウェアの形式の命令を用いることによって、実装されてよい。プロセッサは、マイクロプロセッサであってよい、または、プロセッサは、任意の従来のプロセッサ等であってよい。
【0166】
実装プロセスにおいて、前述の方法の各段階は、プロセッサのハードウェア統合論理回路を用いることによって、またはソフトウェアの形式の命令を用いることによって実装されてよい。本願の実施形態を参照して開示された方法の各段階は、ハードウェアプロセッサによって直接的実行されてよい、または、プロセッサのハードウェアおよびソフトウェアモジュールの組み合わせを用いることによって実行されてよい。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、リードオンリメモリ、プログラマブルリードオンリメモリ、電気的消去可能プログラマブルメモリ、またはレジスタのような、当技術分野において成熟した記憶媒体に位置し得る。記憶媒体はメモリ内に位置し、プロセッサがメモリ内の情報を読み出して、プロセッサのハードウェアと組み合わせて、前述の方法の各段階を遂行する。繰り返しを避けるために、詳細は再度本明細書において説明しない。
【0167】
当業者であれば、本明細書において開示された実施形態の中で説明された例との組み合わせにおいて、ユニットおよびアルゴリズム段階が、電子ハードウェアまたはコンピュータソフトウェアおよび電子ハードウェアの組み合わせを用いることによって実装され得ることを認識しよう。機能がハードウェアを用いて実行されるか、またはソフトウェアを用いることによって実行されるかは、技術的解決手段の具体的な用途および設計上の制約条件に依存する。当業者は、具体的な用途毎に説明された機能を実装すべく異なる方法を用い得るが、当該実装が本願の範囲を超えるとみなされるべきではない。
【0168】
簡便かつ簡単な説明を目的として、前述のシステム、装置およびユニットの詳細な動作プロセスについては、前述した方法の実施形態における対応するプロセスを参照することが、当業者には明確に理解され得る。詳細は本明細書において再度説明しない。
【0169】
本願に係るいくつかの実施形態において、開示されたシステム、装置、および方法は、他の方式で実装されてよいことを理解されたい。例えば、説明される装置の実施形態は単に例である。例えば、ユニットへの分割は、単に論理的な機能の分割であり、実際の実装中に他の分割が存在してよい。例えば、複数のユニットまたはコンポーネントが、組み合わせられ、または別のシステムに統合されてよく、または、いくつかの機能が無視され、または実行されなくてよい。さらに、表示または説明されている相互連結または直接連結または通信接続は、いくつかのインタフェースを用いることによって実装され得る。装置間またはユニット間の間接的連結または通信接続は、電子的、機械的、または他の形式で実装されてよい。
【0170】
別個の部品として説明されるユニットは、物理的に別個であってよく、またはそうでなくてよく、ユニットとして表示される部品は、物理的なユニットであってよく、またはそうでなくてよく、1つの位置に位置していてよく、または複数のネットワークユニットに分散していてよい。これらのユニットの一部または全部は、実施形態の解決手段の目的を実現するために、実際の要件に従って選択されてよい。
【0171】
さらに、本願の実施形態における機能ユニットは、1つの処理ユニットに統合され得る、ユニットの各々が物理的に単独で存在し得る、または、2またはそれより多くのユニットが1つのユニットに統合され得る。
【0172】
これらの機能がソフトウェア機能ユニットの形式で実装され、且つ、独立した製品として販売または用いられる場合は、当該機能がコンピュータ可読記憶媒体に格納されてよい。そのような理解に基づいて、本願の技術的解決手段は本質的に、または従来技術に寄与する部分が、またはこれらの技術的解決手段のうちのいくつかが、ソフトウェア製品の形式で実装され得る。コンピュータソフトウェア製品は、記憶媒体に格納され、コンピュータデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスであってよい)に、本願の実施形態において説明する方法の段階の全てまたはいくつかを実行するように命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリメモリ(read-only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、磁気ディスク、または光ディスクのような、プログラムコードを格納できる任意の媒体を含む。
【0173】
前述の説明は、本願の具体的な実装例に過ぎず、本願の保護範囲を限定することを意図するものではない。本願で開示された技術的範囲内で当業者が容易に想到する任意の変形または置換は、本願の保護範囲に含まれるものとする。したがって、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
他の可能な項目
1. 第1プロセッサおよび前記第1プロセッサに接続された第1処理モジュールを備える回路であって、前記第1処理モジュールは、第1メモリに接続された第2プロセッサを有し、前記第2プロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第1プロセッサが前記第1処理モジュールと通信する場合に生成される伝送レイテンシより小さい、回路。
2. 前記第2プロセッサはマルチコアプロセッサであり、前記第2プロセッサが前記第1メモリに対して前記読み出しおよび書き込みオペレーションを実行する場合に生成される前記伝送レイテンシは、前記第2プロセッサが有する前記マルチコアプロセッサのいずれかのコアプロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシである、項目1に記載の回路。
3. 前記第1プロセッサは、第1バスにより前記第1処理モジュールに接続され、前記第2プロセッサは、第2バスにより前記第1メモリに接続され、前記第2バスのバスビット幅は前記第1バスのバスビット幅より大きい、および/または、前記第2バスの長さは前記第1バスの長さより小さい、項目1または2に記載の回路。
4. 前記第1処理モジュールは、第2メモリに接続された第3プロセッサをさらに有し、前記第3プロセッサが前記第2メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第1プロセッサが前記第1処理モジュールと通信する場合に生成される前記伝送レイテンシより小さい、項目1または2に記載の回路。
5. 前記第1プロセッサは、第1バスにより前記第1処理モジュールに接続され、前記第2プロセッサは、第2バスにより前記第1メモリに接続され、前記第3プロセッサは、第3バスにより前記第2メモリに接続され、前記第2バスのバスビット幅および前記第3バスのバスビット幅の和は、前記第1バスのバスビット幅より大きい、項目4に記載の回路。
6. 前記第1処理モジュールは、前記第1メモリに接続された第3プロセッサをさらに有し、前記第3プロセッサが前記第1メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第1プロセッサが前記第1処理モジュールと通信する場合に生成される前記伝送レイテンシより小さい、項目1または2に記載の回路。
7. 前記第1プロセッサは、第1バスにより前記第1処理モジュールに接続され、前記第2プロセッサは、第2バスにより前記第1メモリに接続され、前記第3プロセッサは、第3バスにより前記第1メモリに接続され、前記第2バスのバスビット幅および前記第3バスのバスビット幅の和は、前記第1バスのバスビット幅より大きい、項目6に記載の回路。
8. 前記第2プロセッサおよび前記第3プロセッサはパイプラインプロセッサである、項目4から7のいずれか一項に記載の回路。
9. 前記回路は、第4プロセッサおよび前記第4プロセッサに接続された第3メモリをさらに備える;または、
前記回路は、第4プロセッサおよび前記第4プロセッサに接続された第2処理モジュールをさらに備え;前記第2処理モジュールは、M個のメモリに接続されたN個の第5プロセッサを有し、NおよびMの両方は、1より大きいまたはこれと等しい整数であり;いずれかの第5プロセッサが前記第5プロセッサに接続された前記メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第4プロセッサが前記第2処理モジュールと通信する場合に生成される伝送レイテンシより小さい、項目1から3のいずれか一項に記載の回路。
10. 前記回路は、第4プロセッサおよび前記第4プロセッサに接続された第3メモリをさらに備える;または、
前記回路は、第4プロセッサおよび前記第4プロセッサに接続された第2処理モジュールをさらに備え;前記第2処理モジュールは、M個のメモリに接続されたN個の第5プロセッサを有し、NおよびMの両方は、1より大きいまたはこれと等しい整数であり;いずれかの第5プロセッサが前記第5プロセッサに接続された前記メモリに対して読み出しおよび書き込みオペレーションを実行する場合に生成される伝送レイテンシは、前記第4プロセッサが前記第2処理モジュールと通信する場合に生成される伝送レイテンシより小さい、項目4から8のいずれか一項に記載の回路。
11. 前記第2プロセッサは、第4バスにより前記第3プロセッサに接続され、前記第4プロセッサは、第5バスにより前記第1プロセッサに接続され、前記第4バスのバスビット幅は、前記第5バスのバスビット幅より小さい、項目10に記載の回路。
12. 前記第4プロセッサが有するプロセッサコアの数は、前記第1プロセッサが有するプロセッサコアの数より大きいまたはこれと等しい、項目9から11のいずれか一項に記載の回路。
13. 前記第4プロセッサおよび前記第1プロセッサはパイプラインプロセッサである、項目9から12のいずれか一項に記載の回路。
14. 前記第1処理モジュールは前記第1メモリをさらに有する、項目1から13のいずれか一項に記載の回路。
15.チップであって、項目1から14のいずれか一項に記載の回路を備えるチップ。
16. 項目15に記載のチップを備える電子デバイスであって、前記電子デバイスは、受信機および送信機をさらに備え、前記受信機は、パケットを受信し、前記パケットを前記チップに送信するように構成され;
前記チップは、前記パケットを処理するように構成され;
前記送信機は、前記チップによって処理されたパケットを取得し、前記処理されたパケットを別の電子デバイスに送信するように構成される、電子デバイス。
図1
図2
図3
図4
図5
図6A
図6B