JP2003244190A - Processor for data flow control switch and data flow control switch - Google Patents

Processor for data flow control switch and data flow control switch

Info

Publication number
JP2003244190A
JP2003244190A JP2002042226A JP2002042226A JP2003244190A JP 2003244190 A JP2003244190 A JP 2003244190A JP 2002042226 A JP2002042226 A JP 2002042226A JP 2002042226 A JP2002042226 A JP 2002042226A JP 2003244190 A JP2003244190 A JP 2003244190A
Authority
JP
Japan
Prior art keywords
dimensional
processor
data flow
address
dimensional array
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.)
Withdrawn
Application number
JP2002042226A
Other languages
Japanese (ja)
Inventor
Yuji Kiba
優治 木庭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002042226A priority Critical patent/JP2003244190A/en
Publication of JP2003244190A publication Critical patent/JP2003244190A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a processor for a data flow control switch and a data flow control switch having a flexibility of changing control contents and high switching ability. <P>SOLUTION: A head address A of a two-dimensional array is inputted as a numerical input A, and the number of two-dimensional elements Y of the two-dimensional array is inputted as a numerical input Y. A one-dimensional element No.x and a two-dimensional element No.y to be respectively accessed of the two-dimensional array are inputted as numerical inputs x and y, xY is calculated by a multiplier 104, and an address =A+xY+y of a memory 3 is calculated by an adder 106. <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、ネットワークにお
けるデータのフローを制御するスケジューラに使用され
るプロセッサと、そのプロセッサを利用したスイッチに
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a processor used in a scheduler for controlling the flow of data in a network and a switch using the processor.

【0002】[0002]

【従来の技術】ネットワークにおけるデータのフローを
制御する4ポート構成の従来の入力バッファ方式クロス
バー型スイッチを図7に示し、図7のスイッチ702を
図8に詳しく示す。以下、スイッチの構成及び動作につ
いて説明する。入力バッファ方式とは、スイッチに入力
されたデータをまず入力ポート毎のバッファに蓄積し
て、出力ポートへの転送経路が使用できるまで待つ方式
である。データ入力700から入力されたデータはキュ
ー701において蓄積される。キュー701は蓄積量に
応じてスケジューラ704にスイッチ702の接続要求
705を出し、スケジューラ704は各キュー701か
らの接続要求705を受け取り、スイッチ702の接続
を制御する信号706を生成する。スイッチ702は図
8に示すように、各入力の線と各出力の線とが交差し、
その各交点の接続を自由に制御できるマトリクス状に並
んだスイッチ群からなる2次元のクロスバー・スイッチ
であり、図7のスケジューラ704は、図8のマトリク
ス状の、どのスイッチを接続するかを決定する。
2. Description of the Related Art A conventional input buffer type crossbar switch having a 4-port structure for controlling the flow of data in a network is shown in FIG. 7, and a switch 702 of FIG. 7 is shown in detail in FIG. The configuration and operation of the switch will be described below. The input buffer method is a method in which the data input to the switch is first accumulated in the buffer for each input port and then waits until the transfer route to the output port is available. The data input from the data input 700 is accumulated in the queue 701. The queue 701 issues a connection request 705 for the switch 702 to the scheduler 704 according to the accumulated amount, and the scheduler 704 receives the connection request 705 from each queue 701 and generates a signal 706 for controlling the connection of the switch 702. In the switch 702, as shown in FIG. 8, each input line and each output line intersect,
It is a two-dimensional crossbar switch composed of a group of switches arranged in a matrix in which the connection at each intersection can be freely controlled. The scheduler 704 in FIG. 7 shows which switch in the matrix in FIG. 8 is connected. decide.

【0003】スケジューリングの処理時間は、スイッチ
の性能を決定する大きな要素であり、そのためスケジュ
ーラ704はスイッチの要求処理性能を実現するため、
ハードウェアで構成されることがほとんどである。とこ
ろで、特開2000−341301号公報では、提案し
たスケジューリングのアルゴリズムについて、その実施
例の中でハードウェア化しており、プロセッサでの実現
については考えられていない。
Scheduling processing time is a major factor in determining switch performance, and therefore scheduler 704 realizes the required processing performance of the switch.
Mostly composed of hardware. By the way, in Japanese Patent Laid-Open No. 2000-341301, the proposed scheduling algorithm is implemented as hardware in the embodiment, and implementation in a processor is not considered.

【0004】図9はクロスバー型スイッチのスケジュー
リングアルゴリズムの一つである2次元ラウンドロビン
(R.O.LaMaire, "Two-Dimensional Round-Robin Schedu
lersfor Packet Switches with Multiple Input Queue
s," IEEE/ACM Trans. Networking, vol.2, no.5, pp.47
1-482, 1994.を参照)のアルゴリズムを示している。2
次元ラウンドロビンでは、パターン・マトリクス(P
M)と呼ばれる配列901と、PM901から生成され
るスケジューリング・マトリクス(SM)と呼ばれる配
列900とから、クロスバー・スイッチの各点に対する
割当の優先順を決定する。
FIG. 9 shows a two-dimensional round-robin scheduling (ROLaMaire, "Two-Dimensional Round-Robin Schedu" which is one of scheduling algorithms for a crossbar type switch.
lersfor Packet Switches with Multiple Input Queue
s, "IEEE / ACM Trans. Networking, vol.2, no.5, pp.47
1-482, 1994.). Two
In the three-dimensional round robin, the pattern matrix (P
An array 901 called M) and an array 900 called a scheduling matrix (SM) generated from the PM 901 determine the priority order of allocation to each point of the crossbar switch.

【0005】このアルゴリズムをプロセッサによりソフ
トウェアで実行しようとすると、2次元又は3次元配列
へのアクセスが多く現れる(図9の900〜903)。
プロセッサにおいて多次元配列のアクセスを行う場合、
多次元配列は1次元のアドレス付けをされたメモリに展
開されて格納されるため、アクセスする要素の実際のメ
モリアドレスを計算する必要がある。
When the processor tries to execute this algorithm by software, many accesses to the two-dimensional or three-dimensional array appear (900 to 903 in FIG. 9).
When accessing a multidimensional array in the processor,
Since a multi-dimensional array is expanded and stored in a one-dimensionally addressed memory, it is necessary to calculate the actual memory address of the accessed element.

【0006】図10のように、例えば2次元配列A[x]
[y]へのアクセスを行う場合、2次元配列A[x][y]の
先頭アドレスA[0][0]をA、2次元配列の各次元の要
素数をそれぞれx, yとすると、2次元配列の要素A
[1][0](図の符号1000)のアドレスは A+Y、 要素A[x][0] (図の符号1001)のアドレスは A+xY となり、要素A[x][y](図の符号1002)のアドレ
スは A+xY+y となる。
As shown in FIG. 10, for example, a two-dimensional array A [x]
When accessing [y], if the head address A [0] [0] of the two-dimensional array A [x] [y] is A and the number of elements in each dimension of the two-dimensional array is x, y, respectively, Element A of the two-dimensional array
The address of [1] [0] (reference numeral 1000 in the figure) is A + Y, the address of element A [x] [0] (reference numeral 1001 in the figure) is A + xY, and the element A [x] [y] (reference numeral 1002 in the figure). ) Address is A + xY + y.

【0007】また、3次元配列A[x][y][z]へのアク
セスを行う場合、3次元配列A[x][y][z]の先頭アド
レスをA、3次元配列の各次元の要素数をそれぞれX,
Y,Zとすると、アドレスは A+(xY+Y)Z+z となる。
When accessing the three-dimensional array A [x] [y] [z], the start address of the three-dimensional array A [x] [y] [z] is A, and each dimension of the three-dimensional array is A. The number of elements in X,
Assuming Y and Z, the address is A + (xY + Y) Z + z.

【0008】さらに、N次元配列A[x1][x2]・・・
[xN]へのアクセスを行う場合、配列A[x1][x2]・・
・[xN]の先頭アドレスをA、配列の各次元の要素数を
それぞれx1, x2, ・・・, xNとすると、N次元配列
中の要素A[x1][x2]・・・[x N]のアドレスANは AN=A+[・・・{(x12+x2)X3+x3}X4+・・・
+xN] となる。これを数列の漸化式で表すと、 An=A+A’n, A’n+1=A’nn+1+xn+1 A’1=x1 n=1,2,・・・N−1 となる。
Further, an N-dimensional array A [x1] [x2] ...
[xNArray A [x1] [x2] ...
・ [XN] Is the start address of A and the number of elements in each dimension of the array
Each x1, x2, ..., xNThen, N-dimensional array
Element A [x1] [x2] ・ ・ ・ [X N] Address ANIs AN= A + [... {(x1X2+ X2) X3+ X3} XFour+ ...
+ XN] Becomes If this is expressed by a recurrence formula of a sequence, An= A + A 'n, A ’n+ 1 = A 'nXn + 1+ Xn + 1 A ’1= X1 n = 1, 2, ... N-1 Becomes

【0009】これらの計算を汎用のプロセッサで行う場
合、例えば3次元配列では少なくとも加算を3回、乗算
を2回で計5命令、レジスタ間の転送などを含めると実
際はそれ以上の命令数を実行しなければならない。N次
元配列ならば、乗算をN−1回、加算をN回で、最低2
N−1命令を実行しなければならない。一方、これをハ
ードウェアで実現すれば1クロックサイクルでも処理可
能である。
When these calculations are carried out by a general-purpose processor, for example, in the case of a three-dimensional array, at least three additions and two multiplications make a total of five instructions. Must. If it is an N-dimensional array, multiplication is N-1 times, addition is N times, and at least 2
N-1 instructions must be executed. On the other hand, if this is realized by hardware, it can be processed in one clock cycle.

【0010】また、図9の部分905は、クロスバー・
スイッチの各点について接続要求の有無を示す要求配列
RM(Request Matrix)902の値と、クロスバー同行
及び同列ですでに割り当てられた点の有無を示す割当排
他フラグAR, ACの値906、907を参照し、ある
点について接続要求が有り(RMが1)、かつその点の
同行又は同列でまだ接続された点がない(AR、ACが
1でない)ならば、クロスバーの接続状態を決定する割
当配列AM(Allocation Matrix)903の該当する点
の値を“接続”に設定し、割当排他フラグAR、ACの
値を1に設定する処理908を行う部分である。この部
分はクロスバー・スイッチを備えるスケジューラでは共
通に現れる部分と考えられる。この処理は、2次元配列
へのアクセスが2回、1次元配列へのアクセスが2〜4
回行われ、さらに条件分岐があるため、汎用プロセッサ
で実行する場合、十〜数十命令を要する処理である。一
方、この処理をハードウェアで実現すれば、1クロック
サイクルでも処理可能である。
Further, a portion 905 in FIG. 9 is a crossbar
The value of a request array RM (Request Matrix) 902 indicating the presence / absence of a connection request for each point of the switch, and the values 906 and 907 of allocation exclusive flags AR and AC indicating the presence / absence of points already allocated in the same row and the same column of the crossbar. If there is a connection request for a certain point (RM is 1) and there is no point connected in the same row or column of that point (AR and AC are not 1), the connection state of the crossbar is determined. This is a part for performing processing 908 of setting the value of the corresponding point of the allocation array AM (Allocation Matrix) 903 to “connect” and setting the values of the allocation exclusive flags AR and AC to 1. This part is considered to appear commonly in schedulers equipped with crossbar switches. In this process, the two-dimensional array is accessed twice, and the one-dimensional array is accessed 2 to 4 times.
This is a process that requires ten to several tens of instructions when it is executed by a general-purpose processor because it is performed once and there is a conditional branch. On the other hand, if this processing is realized by hardware, it can be processed in one clock cycle.

【0011】[0011]

【発明が解決しようとする課題】以上のように、スケジ
ューラをプロセッサで構成した場合には、プロセッサで
のソフトウェア処理はハードウェアによる処理にくらべ
て時間を要し、スイッチとして十分な性能を出すことが
できないという問題がある。しかし、スイッチは帯域保
証や優先制御などの機能は、システムの要求仕様によっ
て異なる。スケジューラをハードウェアで構成した場合
には、様々な要求仕様に柔軟に対応することが困難であ
る。
As described above, when the scheduler is composed of a processor, software processing in the processor requires more time than processing by hardware, and sufficient performance as a switch is required. There is a problem that you can not. However, the functions of the switch such as bandwidth guarantee and priority control differ depending on the required specifications of the system. When the scheduler is configured by hardware, it is difficult to flexibly meet various required specifications.

【0012】本発明は、このような問題を解決するため
になされたもので、制御内容を変更できる柔軟性を持ち
ながら高いスイッチング能力をもつデータフロー制御ス
イッチ用プロセッサ及びデータフロー制御スイッチを提
供することを目的とする。
The present invention has been made in order to solve such a problem, and provides a processor for a data flow control switch and a data flow control switch, which have flexibility to change control contents and have high switching ability. The purpose is to

【0013】[0013]

【課題を解決するための手段】本発明のデータフロー制
御スイッチ用プロセッサは上記目的を達成するために、
ネットワークにおけるデータのフローを制御する多次元
配列のスイッチの接続・非接続の状態を記憶するメモリ
にアクセスするアドレスを計算するデータフロー制御ス
イッチ用プロセッサにおいて、前記スイッチの多次元配
列の各次元の要素数と、アクセスする要素番号を積和演
算して前記スイッチの多次元配列のアドレスを計算する
乗算回路及び加算回路とを有する命令実行部を備えるこ
とを特徴とする。この構成により、ソフトウェアによる
スケジューリング処理において頻繁に行われる多次元配
列中の要素の記憶装置上でのアドレスの計算処理を高速
化することができ、多次元配列へのアクセスを高速化
し、スケジューリング処理全体が高速化される。
In order to achieve the above object, a processor for a data flow control switch according to the present invention has the following features.
In a processor for a data flow control switch, which calculates an address for accessing a memory that stores a connection / disconnection state of a switch of a multidimensional array that controls a flow of data in a network, an element of each dimension of the multidimensional array of switches It is characterized by comprising an instruction execution unit having a multiplication circuit and an addition circuit for multiplying and multiplying the number and the element number to be accessed to calculate the address of the multidimensional array of the switches. With this configuration, it is possible to speed up the address calculation process on the storage device of the elements in the multidimensional array that is frequently performed in the scheduling process by software, speed up the access to the multidimensional array, and perform the entire scheduling process. Will be faster.

【0014】本発明はまた、請求項1に記載のデータフ
ロー制御スイッチ用プロセッサにおける前記命令実行部
が、前記スイッチの2次元配列の先頭アドレスAと、2
次元配列の第2次元の要素数Yと、2次元配列のアクセ
スする第1次元の要素番号x、第2次元の要素番号yを
入力として、 アドレス=A+xY+y を演算することを特徴とする。この構成により、ソフト
ウェアによるスケジューリング処理において頻繁に行わ
れる2次元配列中の要素の記憶装置上でのアドレスの計
算処理を一度に行うことができ、2次元配列へのアクセ
スを高速化し、スケジューリング処理全体が高速化され
る。
According to the present invention, the instruction execution unit in the processor for data flow control switches according to claim 1 has a start address A of a two-dimensional array of the switches and 2
The present invention is characterized in that the address = A + xY + y is calculated by inputting the second-dimensional element number Y of the two-dimensional array, the first-dimensional element number x and the second-dimensional element number y of the two-dimensional array to be accessed. With this configuration, it is possible to perform the address calculation processing on the storage device of the elements in the two-dimensional array, which is frequently performed in the scheduling processing by software, to speed up the access to the two-dimensional array and to perform the entire scheduling processing. Will be faster.

【0015】本発明はまた、請求項1に記載のデータフ
ロー制御スイッチ用プロセッサにおける前記命令実行部
が、前記スイッチの3次元配列の先頭アドレスAと、3
次元配列の第2次元の要素数Y、第3次元の要素数Z
と、3次元配列のアクセスする第1次元の要素数x、第
2次元の要素数y、第3次元の要素数zを入力として、 アドレス=A+(xY+y)Z+z を演算することを特徴とする。この構成により、ソフト
ウェアによるスケジューリング処理において頻繁に行わ
れる3次元配列中の要素の記憶装置上でのアドレスの計
算処理を一度に行うことができ、3次元配列へのアクセ
スを高速化し、スケジューリング処理全体が高速化され
る。
According to the present invention, the instruction execution unit in the processor for a data flow control switch according to claim 1 has a start address A of a three-dimensional array of the switches and 3
Second-dimensional element number Y and third-dimensional element number Z of the three-dimensional array
And inputting the number of first-dimensional elements x, the number of second-dimensional elements y, and the number of third-dimensional elements z of the three-dimensional array to be accessed, address = A + (xY + y) Z + z is calculated. . With this configuration, it is possible to perform the address calculation processing on the storage device of the elements in the three-dimensional array that is frequently performed in the scheduling processing by software at one time, speed up the access to the three-dimensional array, and perform the entire scheduling processing. Will be faster.

【0016】本発明はまた、請求項1に記載のデータフ
ロー制御スイッチ用プロセッサにおける前記命令実行部
が、前記スイッチの2次以上の任意のN次元配列の第n
+1次元の要素数Xn+1と、N次元配列のアドレス計算
の漸化式An+1=A’nn+1+xn+1における第n次元ま
での計算結果A’nとN次元配列のアクセスする要素の
第n+1次元の要素番号xn+1とを入力として、 漸化式An+1=A’nn+1+xn+1 を演算することを特徴とする。この構成により、ソフト
ウェアによるスケジューリング処理において頻繁に行わ
れる多次元配列中の要素の記憶装置上でのアドレスの計
算処理を高速化することができ、多次元配列へのアクセ
スを高速化し、スケジューリング処理全体が高速化され
る。
According to the present invention, the instruction execution unit in the processor for a data flow control switch according to claim 1 further comprises an n-th array of an arbitrary N-dimensional array of secondary or higher order of the switch.
The number of + 1-dimensional elements X n + 1 and the calculation results A ′ n and N up to the n-th dimension in the recurrence formula A n + 1 = A ′ n X n + 1 + x n + 1 of the N-dimensional array address calculation. It is characterized in that the recurrence formula A n + 1 = A ′ n X n + 1 + x n + 1 is calculated by inputting the n + 1-dimensional element number x n + 1 of the element to be accessed of the dimensional array. With this configuration, it is possible to speed up the address calculation process on the storage device of the elements in the multidimensional array that is frequently performed in the scheduling process by software, speed up the access to the multidimensional array, and perform the entire scheduling process. Will be faster.

【0017】本発明はまた、請求項1から4のいずれか
1つに記載のデータフロー制御スイッチ用プロセッサに
おいて、前記乗算回路の代わりにシフト回路を用いて積
演算を行うことを特徴とする。この構成により、演算部
のハードウェアを小さくすることができ、また、演算処
理時間を短くし、スケジューリング処理をさらに高速化
することができる。
The present invention is also characterized in that, in the processor for data flow control switches according to any one of claims 1 to 4, a shift circuit is used instead of the multiplication circuit to perform the product operation. With this configuration, the hardware of the arithmetic unit can be reduced, the arithmetic processing time can be shortened, and the scheduling processing can be further speeded up.

【0018】本発明はまた、請求項1から5のいずれか
1つに記載のデータフロー制御スイッチ用プロセッサに
おいて前記命令実行部により演算されたアドレスを前記
メモリに直接入力することを特徴とする。この構成によ
り、多次元配列のアドレス計算処理に加えて、多次元配
列のアクセスする要素の値の読み出し又は書き込みの処
理までを一度に行うことができ、多次元配列へのアクセ
スを高速化し、スケジューリング処理全体が高速化され
る。
The present invention is also characterized in that in the processor for a data flow control switch according to any one of claims 1 to 5, the address calculated by the instruction executing section is directly input to the memory. With this configuration, in addition to the address calculation process of the multidimensional array, the process of reading or writing the value of the element to be accessed of the multidimensional array can be performed at one time, speeding up the access to the multidimensional array, and scheduling. The whole process is speeded up.

【0019】本発明のデータフロー制御スイッチは、請
求項1から5のいずれか1つに記載のデータフロー制御
スイッチ用プロセッサをスケジューラとして有すること
を特徴とする。この構成により、スケジューリング処理
の内容を変更できる柔軟性を持ちながら、高いスイッチ
ング能力をもつスイッチを構成することができる。
The data flow control switch of the present invention is characterized by having the data flow control switch processor according to any one of claims 1 to 5 as a scheduler. With this configuration, it is possible to configure a switch having high switching capability while having the flexibility of changing the content of the scheduling process.

【0020】[0020]

【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。 <第1の実施の形態>図1は本発明に係る第1の実施の
形態のデータフロー制御用プロセッサのブロック図を示
す。図1において、このプロセッサは図8に示すスケジ
ューラ704として用いられ、通常の汎用プロセッサが
備えるレジスタ1と、汎用の演算を行う汎用演算器2と
メモリ3とを備え、さらに多次元配列の要素のメモリア
ドレス計算を高速に実行する多次元配列アドレス計算命
令実行部4を設けている。メモリ3は図8に示す多次元
配列のスイッチ702の接続・非接続の状態を記憶し、
このプロセッサはメモリ3にアクセスするアドレスを求
める。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings. <First Embodiment> FIG. 1 is a block diagram of a data flow control processor according to the first embodiment of the present invention. In FIG. 1, this processor is used as a scheduler 704 shown in FIG. 8, and includes a register 1 included in a general purpose processor, a general purpose arithmetic unit 2 for performing general purpose operations, and a memory 3, and further includes elements of a multidimensional array. A multi-dimensional array address calculation instruction execution unit 4 that executes memory address calculation at high speed is provided. The memory 3 stores the connection / disconnection state of the switch 702 in the multidimensional array shown in FIG.
This processor determines the address to access the memory 3.

【0021】図2はこの多次元配列アドレス計算命令実
行部4の構成の第1の実施の形態として、2次元配列中
の要素のメモリアドレスを計算する命令実行部のブロッ
ク図であり、レジスタ1からの数値入力xと数値入力Y
とを乗算して乗算結果xYを出力する乗算器104と、
レジスタ1からの数値入力A及び数値入力yと乗算器1
04の出力xYとを加算して加算結果A+xY+yを出
力する加算器106とを備える。
FIG. 2 is a block diagram of the instruction execution unit for calculating the memory address of the element in the two-dimensional array as the first embodiment of the configuration of the multidimensional array address calculation instruction execution unit 4. Numerical input x and numerical input Y from
A multiplier 104 that multiplies and and outputs a multiplication result xY,
Numerical input A and numerical input y from register 1 and multiplier 1
And the output xY of 04, and outputs the addition result A + xY + y.

【0022】次に、このアドレス計算を行うハードウェ
アの動作を示す。数値入力Aとして2次元配列の先頭ア
ドレスAを入力し、また、数値入力Yとして2次元配列
の第2次元の要素数Yを入力し、数値入力x、yとして
それぞれ2次元配列のアクセスする第1次元の要素番号
x、第2次元の要素番号yを入力する。これにより、乗
算器104によりxYが算出され、加算器106により
メモリ3のアドレス=A+xY+yが算出される。以上
の構成により、従来のプロセッサでは数命令要していた
2次元配列中の要素のアドレス計算の処理を1命令で完
了することができ、スケジューリング処理の高速化に寄
与することができる。
Next, the operation of the hardware for calculating this address will be described. Input the start address A of the two-dimensional array as the numerical input A, the number of second-dimensional elements Y of the two-dimensional array as the numerical input Y, and access the two-dimensional array as the numerical inputs x and y. The one-dimensional element number x and the second-dimensional element number y are input. As a result, the multiplier 104 calculates xY, and the adder 106 calculates the address of the memory 3 = A + xY + y. With the above configuration, it is possible to complete the address calculation processing of the elements in the two-dimensional array, which requires a few instructions in the conventional processor, with one instruction, which can contribute to the speedup of the scheduling processing.

【0023】<第2の実施の形態>図3は多次元配列ア
ドレス計算命令実行部4の構成の第2の実施の形態とし
て、3次元配列の要素のメモリアドレスを計算する命令
実行部のブロック図であり、レジスタ1からの数値入力
x、Y、Zを乗算して乗算結果xYZを出力する乗算器
206と、レジスタ1からの数値入力y、Zを乗算して
乗算結果yZを出力する乗算器207と、レジスタ1か
らの数値入力A、zと、乗算器206の出力xYZと乗
算器207の出力yZとを加算して計算結果=A+(x
Y+y)Z+zを出力する加算器210を備える。
<Second Embodiment> FIG. 3 is a block diagram of an instruction execution unit for calculating memory addresses of elements of a three-dimensional array as a second embodiment of the configuration of the multidimensional array address calculation instruction execution unit 4. It is a figure, and the multiplier 206 which multiplies the numerical input x, Y, Z from the register 1 and outputs the multiplication result xYZ, and the multiplication which multiplies the numerical input y and Z from the register 1 and outputs the multiplication result yZ. 207, the numerical inputs A and z from the register 1, the output xYZ of the multiplier 206 and the output yZ of the multiplier 207 are added, and the calculation result = A + (x
An adder 210 that outputs Y + y) Z + z is provided.

【0024】次に、この命令実行部の動作を示す。数値
入力Aとして3次元配列の先頭アドレスAを入力し、ま
た、数値入力Y、Zとしてそれぞれ3次元配列の第2次
元の要素数Y、第3次元の要素数Zを入力し、また、数
値入力x、y、zとしてそれぞれ3次元配列のアクセス
する第1次元の要素数x、第2次元の要素数y、第3次
元の要素数zを入力する。これにより、アドレス=A+
(xY+y)Z+zが算出される。以上の構成により、
従来のプロセッサでは数命令要していた3次元配列中の
要素のアドレス計算の処理を1命令で完了することがで
き、スケジューリング処理の高速化に寄与することがで
きる。
Next, the operation of this instruction execution unit will be described. Input the start address A of the three-dimensional array as the numerical value input A, and input the number of second-dimensional elements Y and the number of third-dimensional elements Z of the three-dimensional array as numerical value inputs Y and Z, respectively. As inputs x, y, and z, the number of first-dimensional elements x, the number of second-dimensional elements y, and the number of third-dimensional elements z to be accessed by the three-dimensional array are input, respectively. As a result, address = A +
(XY + y) Z + z is calculated. With the above configuration,
It is possible to complete the address calculation processing of the elements in the three-dimensional array, which required several instructions in the conventional processor, with one instruction, which can contribute to the speedup of the scheduling processing.

【0025】<第3の実施の形態>図4は多次元配列ア
ドレス計算命令実行部4の第3の実施の形態として、2
次以上の任意のN次元配列の要素のメモリアドレスを計
算する命令実行部のブロック図であり、レジスタ1から
の数値入力A’n、Xn+1とを乗算して乗算結果A’ n
n+1を出力する乗算器303と、レジスタ1からの数値
入力xn+1と乗算器303の乗算結果A’nn+1を加算
して計算結果=A’nn+1+xn+1を出力する加算器3
05を備える。
<Third Embodiment> FIG. 4 shows a multidimensional array array.
As the third embodiment of the dress calculation instruction execution unit 4, 2
Calculate the memory addresses of the elements of any N-dimensional array above and below
It is a block diagram of the instruction execution unit to calculate, from the register 1
Numerical value input A ’n, Xn + 1And the result of multiplication is A ′ nX
n + 1Numeric value from register 303 and multiplier 303 that outputs
Input xn + 1And the multiplication result A ′ of the multiplier 303nXn + 1Add
And calculation result = A 'nXn + 1+ Xn + 1Adder 3 that outputs
It is equipped with 05.

【0026】次に、この命令実行部の動作を示す。数値
入力Xn+1としてN次元配列の第n+1次元の要素数X
n+1を入力し、また、数値入力A’n、xn+1としてそれ
ぞれN次元配列のアドレス計算の漸化式An+1=A’n
n+1+xn+1における第n次元までの計算結果A’n、N
次元配列のアクセスする要素の第n+1次元の要素番号
n+1とを入力する。
Next, the operation of this instruction execution unit will be described. As the numerical input X n + 1 , the number of elements in the n + 1th dimension of the N-dimensional array X
n + 1 is input, and the recurrence formulas A n + 1 = A ′ n X of the address calculation of the N-dimensional array are input as numerical inputs A ′ n and x n + 1.
Calculation results up to the nth dimension at n + 1 + x n + 1 A'n , N
Input the n + 1-th dimension element number x n + 1 of the element to be accessed in the dimension array.

【0027】以上の構成により、N次元配列中の要素の
アドレス計算における漸化式An+1=A’nn+1+xn+1
の計算を1命令で実行でき、メモリアドレス計算全体は
前記漸化式をnが1からN−1までN−1回実行してN
−1命令、最後にAN=A+A’Nを実行して計N命令で
実行可能となる。したがって従来のプロセッサでは2N
−1命令を要していたN次元配列のアドレス計算の処理
がN命令で完了することができることになり、スケジュ
ーリング処理の高速化に寄与することができる。
With the above configuration, the recurrence formula A n + 1 = A ′ n X n + 1 + x n + 1 in the address calculation of the elements in the N-dimensional array.
Can be executed by one instruction, and the whole memory address calculation can be performed by executing the recurrence formula n times from 1 to N-1 N-1 times to obtain N
-1 instruction and finally A N = A + A ′ N are executed, and a total of N instructions can be executed. Therefore, in the conventional processor, 2N
The process of calculating the address of the N-dimensional array, which required -1 instruction, can be completed by N instructions, which can contribute to speeding up of the scheduling process.

【0028】なお、以上の説明では命令実行部4に乗算
器104、206、207、303を使用したが、乗算
器104、206、207、303をシフト演算器に置
き換えてもよい。これにより、回路規模の削減と処理時
間の低減を図ることができる。
In the above description, the multipliers 104, 206, 207, 303 are used in the instruction execution unit 4, but the multipliers 104, 206, 207, 303 may be replaced with shift arithmetic units. This makes it possible to reduce the circuit scale and the processing time.

【0029】<第4の実施の形態>また、多次元配列の
先頭アドレスAと各次元の配列要素数は専用のレジスタ
を設け、命令実行時には自動的にこの専用レジスタから
値を読み出すようにしてもよい。好ましくは、複数の多
次元配列を扱えるように、この専用レジスタは複数組用
意するとよい。図5はこの構成による3次元配列のアド
レス計算命令実行部のブロック図である。3次元配列の
先頭アドレスAの値と第2次元及び第3次元の配列要素
数Y、Zの値とを複数組格納する専用レジスタ400を
備え、専用レジスタ400上に複数組存在するA、Y、
Zの値のうち、どの組の値を使用するかをインデックス
入力iにより選択的に読み出す。専用レジスタ400に
は初期設定時に値A、Y、Zを設定する。これにより、
アドレス計算命令の命令コード中のオペランド部では、
レジスタ1に格納された3次元配列の第1、第2、第3
次元の要素番号x、y、zと、専用レジスタ400の、
どの組の値A、Y、Zを用いるかを指定すればよく、命
令実行時のオペランド数を削減できる。
<Fourth Embodiment> Further, a dedicated register is provided for the head address A of the multidimensional array and the number of array elements in each dimension, and a value is automatically read from this dedicated register when an instruction is executed. Good. It is preferable to prepare a plurality of sets of this dedicated register so that a plurality of multidimensional arrays can be handled. FIG. 5 is a block diagram of a three-dimensional array address calculation instruction execution unit having this configuration. A dedicated register 400 for storing a plurality of sets of the value of the start address A of the three-dimensional array and the values of the second and third-dimensional array element numbers Y and Z is provided, and a plurality of sets A and Y exist on the dedicated register 400. ,
Of the Z values, which set of values is used is selectively read by the index input i. Values A, Y, and Z are set in the dedicated register 400 at the time of initial setting. This allows
In the operand part of the instruction code of the address calculation instruction,
The first, second, and third of the three-dimensional array stored in the register 1
Of the element numbers x, y, z of the dimension and the dedicated register 400,
It suffices to specify which set of values A, Y, Z is used, and the number of operands during instruction execution can be reduced.

【0030】<第5の実施の形態>また、アドレス計算
を行うハードウェアである命令実行部4の出力アドレス
を、図1に示すようにマルチプレクサ5、レジスタ1、
汎用演算器2を経由してメモリ3に入力する構成の代わ
りに、メモリ3に直接に入力できる構成をとってもよ
い。この場合、プロセッサの構成は図6のようになり、
命令実行部4の出力からメモリ3のアドレス入力に接続
される経路500と、メモリ3のアドレス入力に入力す
る値の選択を行うマルチプレクサ501が追加される。
この構成により、アドレスを計算した後に、配列の値を
読み出す又は配列に値を書き込む処理までを1命令で実
行でき、さらなる高速化が可能となる。
<Fifth Embodiment> In addition, as shown in FIG. 1, the output address of the instruction execution unit 4 which is the hardware for calculating the address is the multiplexer 5, register 1,
Instead of inputting the data to the memory 3 via the general-purpose arithmetic unit 2, it may be possible to input the data directly to the memory 3. In this case, the processor configuration is as shown in FIG.
A path 500 connected from the output of the instruction execution unit 4 to the address input of the memory 3 and a multiplexer 501 for selecting a value to be input to the address input of the memory 3 are added.
With this configuration, after the address is calculated, the process of reading the value of the array or writing the value in the array can be executed with one instruction, and the speed can be further increased.

【0031】なお、アドレス計算を行うハードウェア4
は、必ずしも上記の形である必要はなく、同様の計算が
できる回路であればよい。また、以上の説明では、2次
元配列及び3次元配列の場合を示したが、4次以上の多
次元配列のアドレス計算を行う回路にしてもよい。ま
た、以上の説明ではクロスバー型スイッチの場合を例に
説明したが、その他の種類のスイッチ用に使用してもよ
い。
Hardware 4 for calculating the address
Is not necessarily in the above-mentioned form, and may be any circuit capable of performing similar calculation. Further, in the above description, the case of a two-dimensional array and a three-dimensional array is shown, but a circuit for performing address calculation of a multidimensional array of quaternary or higher order may be used. Further, in the above description, the case of the crossbar type switch has been described as an example, but it may be used for other types of switches.

【0032】[0032]

【発明の効果】以上説明したように、本発明のプロセッ
サは、多次元配列へのアクセスを高速化し、データ制御
スイッチのスケジューリング処理を高速化することがで
きる。それによって、ハードウェアで構成したスケジュ
ーラを用いたスイッチよりも処理変更に対する柔軟性を
持ち、汎用プロセッサで構成したスケジューラを用いた
スイッチよりも高速なスイッチングを行うスイッチを構
成することができる。また、スケジューラのハードウェ
アを開発する必要がなくなるため、開発期間・費用の削
減に寄与することができる。
As described above, the processor of the present invention can speed up access to a multidimensional array and speed up the scheduling process of the data control switch. As a result, it is possible to configure a switch that is more flexible than a switch that uses a scheduler configured by hardware with respect to processing changes and that performs faster switching than a switch that uses a scheduler configured by a general-purpose processor. Further, since it is not necessary to develop the hardware of the scheduler, it is possible to contribute to the reduction of the development period / cost.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の第1の実施の形態におけるプロセッサ
のブロック図
FIG. 1 is a block diagram of a processor according to a first embodiment of the present invention.

【図2】図1の多次元配列アドレス計算命令実行部のハ
ードウェア構成を示すブロック図
FIG. 2 is a block diagram showing a hardware configuration of a multidimensional array address calculation instruction execution unit in FIG.

【図3】本発明の第2の実施の形態として3次元配列の
要素アドレス計算命令実行部のハードウェア構成を示す
ブロック図
FIG. 3 is a block diagram showing a hardware configuration of an element address calculation instruction execution unit of a three-dimensional array as a second embodiment of the present invention.

【図4】本発明の第3の実施の形態として任意のN次元
配列の要素アドレス計算命令実行部のハードウェア構成
を示すブロック図
FIG. 4 is a block diagram showing a hardware configuration of an element address calculation instruction execution unit of an arbitrary N-dimensional array as a third embodiment of the present invention.

【図5】本発明の第4の実施の形態として3次元配列の
要素アドレス計算命令実行部及び専用レジスタのハード
ウェア構成を示すブロック図
FIG. 5 is a block diagram showing a hardware configuration of an element address calculation instruction execution unit of a three-dimensional array and a dedicated register as a fourth embodiment of the present invention.

【図6】本発明の第5の実施の形態におけるプロセッサ
のブロック図
FIG. 6 is a block diagram of a processor according to a fifth embodiment of the present invention.

【図7】従来の入力キュー型スイッチのブロック図FIG. 7 is a block diagram of a conventional input queue type switch.

【図8】図7のクロスバー・スイッチの説明図8 is an explanatory diagram of the crossbar switch of FIG. 7.

【図9】従来、公知の2次元ラウンドロビン・スケジュ
ーラのアルゴリズムを示すフローチャート
FIG. 9 is a flowchart showing an algorithm of a conventionally known two-dimensional round robin scheduler.

【図10】従来技術によりアクセスする2次元配列のア
ドレスの説明図
FIG. 10 is an explanatory diagram of addresses of a two-dimensional array to be accessed by conventional technology.

【符号の説明】[Explanation of symbols]

1 レジスタ 2 汎用演算器 3 メモリ 4 多次元配列アドレス計算命令実行部 5、501 マルチプレクサ 104、 206、 207、 303 乗算器 106、 210、 305 加算器 400 専用レジスタ 1 register 2 General-purpose arithmetic unit 3 memory 4 Multidimensional array address calculation instruction execution unit 5,501 multiplexer 104, 206, 207, 303 Multiplier 106, 210, 305 adder 400 dedicated register

───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5K030 GA01 GA04 HA08 HB13 HB19 HD09 KA01 KX09 KX18 LB07 MA12 5K069 AA15 BA01 CB01 DA02 DB02 DB14 DB15 EA11 EA16 FA03 FC02    ─────────────────────────────────────────────────── ─── Continued front page    F-term (reference) 5K030 GA01 GA04 HA08 HB13 HB19                       HD09 KA01 KX09 KX18 LB07                       MA12                 5K069 AA15 BA01 CB01 DA02 DB02                       DB14 DB15 EA11 EA16 FA03                       FC02

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 ネットワークにおけるデータのフローを
制御する多次元配列のスイッチの接続・非接続の状態を
記憶するメモリにアクセスするアドレスを計算するデー
タフロー制御スイッチ用プロセッサにおいて、 前記スイッチの多次元配列の各次元の要素数と、アクセ
スする要素番号を積和演算して前記スイッチの多次元配
列のアドレスを計算する乗算回路及び加算回路とを有す
る命令実行部を備えることを特徴とするデータフロー制
御スイッチ用プロセッサ。
1. A processor for a data flow control switch for calculating an address for accessing a memory for storing a connection / disconnection state of a switch of a multidimensional array for controlling a flow of data in a network, wherein the multidimensional array of switches is provided. Data flow control, comprising: an instruction execution unit having a multiplication circuit and an addition circuit for multiplying and summing the number of elements in each dimension and the element number to be accessed to calculate the address of the multidimensional array of switches. Switch processor.
【請求項2】 前記命令実行部は、前記スイッチの2次
元配列の先頭アドレスAと、2次元配列の第2次元の要
素数Yと、2次元配列のアクセスする第1次元の要素番
号x、第2次元の要素番号yを入力として、 アドレス=A+xY+y を演算することを特徴とする請求項1に記載のデータフ
ロー制御スイッチ用プロセッサ。
2. The instruction execution unit, the start address A of the two-dimensional array of the switch, the number of second-dimensional elements Y of the two-dimensional array, the element number x of the first dimension to access the two-dimensional array, The processor for data flow control switch according to claim 1, wherein address = A + xY + y is calculated by using the second-dimensional element number y as an input.
【請求項3】 前記命令実行部は、前記スイッチの3次
元配列の先頭アドレスAと、3次元配列の第2次元の要
素数Y、第3次元の要素数Zと、3次元配列のアクセス
する第1次元の要素数x、第2次元の要素数y、第3次
元の要素数zを入力として、 アドレス=A+(xY+y)Z+z を演算することを特徴とする請求項1に記載のデータフ
ロー制御スイッチ用プロセッサ。
3. The instruction executing unit accesses the start address A of the three-dimensional array of the switches, the number of second-dimensional elements Y, the number of third-dimensional elements Z of the three-dimensional array, and the three-dimensional array. The data flow according to claim 1, wherein address = A + (xY + y) Z + z is calculated by inputting the number of first-dimensional elements x, the number of second-dimensional elements y, and the number of third-dimensional elements z. Processor for control switch.
【請求項4】 前記命令実行部は、前記スイッチの2次
以上の任意のN次元配列の第n+1次元の要素数Xn+1
と、N次元配列のアドレス計算の漸化式An+1=A’n
n+1+xn+1における第n次元までの計算結果A’nとN
次元配列のアクセスする要素の 第n+1次元の要素番
号xn+1とを入力として、 漸化式An+1=A’nn+1+xn+1 を演算することを特徴とする請求項1に記載のデータフ
ロー制御スイッチ用プロセッサ。
4. The instruction execution unit is the number of n + 1-dimensional elements X n + 1 of an arbitrary N-dimensional array of the second or higher order of the switch.
And the recurrence formula for calculating the address of the N-dimensional array A n + 1 = A ′ n X
Calculation results A'n and N up to the nth dimension at n + 1 + x n + 1
The recurrence formula A n + 1 = A ′ n X n + 1 + x n + 1 is calculated by inputting the n + 1-th element number x n + 1 of the element to be accessed of the dimensional array. A processor for a data flow control switch according to item 1.
【請求項5】 前記乗算回路の代わりにシフト回路を用
いて積演算を行うことを特徴とする請求項1から4のい
ずれか1つに記載のデータフロー制御スイッチ用プロセ
ッサ。
5. The processor for a data flow control switch according to claim 1, wherein a product operation is performed using a shift circuit instead of the multiplication circuit.
【請求項6】 前記命令実行部により演算されたアドレ
スを前記メモリに直接入力することを特徴とする請求項
1から5のいずれか1つに記載のデータフロー制御スイ
ッチ用プロセッサ。
6. The data flow control switch processor according to claim 1, wherein the address calculated by the instruction executing unit is directly input to the memory.
【請求項7】 請求項1から6のいずれか1つに記載の
データフロー制御スイッチ用プロセッサをスケジューラ
として有するデータフロー制御スイッチ。
7. A data flow control switch having the processor for data flow control switch according to claim 1 as a scheduler.
JP2002042226A 2002-02-19 2002-02-19 Processor for data flow control switch and data flow control switch Withdrawn JP2003244190A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002042226A JP2003244190A (en) 2002-02-19 2002-02-19 Processor for data flow control switch and data flow control switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002042226A JP2003244190A (en) 2002-02-19 2002-02-19 Processor for data flow control switch and data flow control switch

Publications (1)

Publication Number Publication Date
JP2003244190A true JP2003244190A (en) 2003-08-29

Family

ID=27782409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002042226A Withdrawn JP2003244190A (en) 2002-02-19 2002-02-19 Processor for data flow control switch and data flow control switch

Country Status (1)

Country Link
JP (1) JP2003244190A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014030234A (en) * 2011-11-25 2014-02-13 Panasonic Corp Image encoding and decoding apparatus
JP2017138964A (en) * 2016-02-03 2017-08-10 グーグル インコーポレイテッド Apparatus, systems and computer-implemented methods for processing instruction for accessing n-dimensional tensor
JP2021184276A (en) * 2016-10-27 2021-12-02 グーグル エルエルシーGoogle LLC Neural network instruction set architecture
US11816480B2 (en) 2016-10-27 2023-11-14 Google Llc Neural network compute tile
US11816045B2 (en) 2016-10-27 2023-11-14 Google Llc Exploiting input data sparsity in neural network compute units

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014030234A (en) * 2011-11-25 2014-02-13 Panasonic Corp Image encoding and decoding apparatus
JP2017138964A (en) * 2016-02-03 2017-08-10 グーグル インコーポレイテッド Apparatus, systems and computer-implemented methods for processing instruction for accessing n-dimensional tensor
JP2021184276A (en) * 2016-10-27 2021-12-02 グーグル エルエルシーGoogle LLC Neural network instruction set architecture
JP7158543B2 (en) 2016-10-27 2022-10-21 グーグル エルエルシー neural network instruction set architecture
US11816480B2 (en) 2016-10-27 2023-11-14 Google Llc Neural network compute tile
US11816045B2 (en) 2016-10-27 2023-11-14 Google Llc Exploiting input data sparsity in neural network compute units

Similar Documents

Publication Publication Date Title
JP6977239B2 (en) Matrix multiplier
CN104899182B (en) A kind of Matrix Multiplication accelerated method for supporting variable partitioned blocks
CN107315574B (en) Apparatus and method for performing matrix multiplication operation
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
JP2020074099A (en) Processing apparatus and processing method
US5081573A (en) Parallel processing system
US8296764B2 (en) Internal synchronization control for adaptive integrated circuitry
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
JPH03138759A (en) Signal processor
CN111381880B (en) Processor, medium, and operation method of processor
JPH10187438A (en) Method for reducing transition to input of multiplier
GB2474901A (en) Multiply-accumulate instruction which adds or subtracts based on a predicate value
JPH02300983A (en) Fast arithmetic processing for central processing unit
US11481472B2 (en) Integer matrix multiplication engine using pipelining
JPS6125188B2 (en)
JP7387017B2 (en) Address generation method and unit, deep learning processor, chip, electronic equipment and computer program
JP2021108104A (en) Partially readable/writable reconfigurable systolic array system and method
JP2518293B2 (en) Data Flow Processor
JP2003244190A (en) Processor for data flow control switch and data flow control switch
US7870177B2 (en) Method and system for multi-processor FFT/IFFT with minimum inter-processor data communication
Vassiliadis et al. Block based compression storage expected performance
JPS6165336A (en) High-speed arithmetic system
JPH0766372B2 (en) Floating point processor
JP7078129B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP2654451B2 (en) Data output method

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050510