JP2007004338A - Data processor - Google Patents

Data processor Download PDF

Info

Publication number
JP2007004338A
JP2007004338A JP2005181663A JP2005181663A JP2007004338A JP 2007004338 A JP2007004338 A JP 2007004338A JP 2005181663 A JP2005181663 A JP 2005181663A JP 2005181663 A JP2005181663 A JP 2005181663A JP 2007004338 A JP2007004338 A JP 2007004338A
Authority
JP
Japan
Prior art keywords
memory
access
access request
data
control circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005181663A
Other languages
Japanese (ja)
Inventor
Bryan Atwood
アトウッド ブライアン
Masanobu Tsunoda
賢伸 津野田
Masashi Takada
雅士 高田
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005181663A priority Critical patent/JP2007004338A/en
Priority to US11/271,961 priority patent/US7765250B2/en
Publication of JP2007004338A publication Critical patent/JP2007004338A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To improve accessibility to a data memory. <P>SOLUTION: A computing part 20 is provided with a plurality of computing cells 26 performing operation, and their logic functions are defined based on configuration information. A data memory 21 having a plurality of access ports performing parallel operation holds computing data. In a memory control circuit 22 controlling access by a corresponding data memory, a control form is defined according to the configuration information. An external interface part 23 is connected to the memory control circuit. A crossbar switch part 24 connects the computing part and the memory control circuit together, and the connection form is defined according to the configuration information. The memory control circuit receives a first access request from the external interface part to the data memory and a second access request from the computing cell to the data memory, and an access response control procedure for answering to the first and second access requests is varied according to the configuration information. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、データ処理装置に関し、特に、複数配置された演算セルの論理機能やデータメモリとの接続をプログラマブルに切り換え可能にされたデータ処理装置に関し、例えばフレキシブルプロセッサに適用して有効な技術に関する。   The present invention relates to a data processing device, and more particularly, to a data processing device in which the logic function of a plurality of operation cells and the connection to a data memory can be switched in a programmable manner, for example, a technique effective when applied to a flexible processor. .

画像、音声などのマルチメディア処理機能や、有線および無線通信機能を内蔵した携帯情報機器が広く一般的に利用されるようになり、これらの機器を小型かつ安価に提供するため、データ処理装置の高性能化、高機能化および低消費電力化が求められている。一方において、技術開発の進歩とともに策定された多様な規格や標準に速やかに対応することが製品価値を大きく左右するため、機器製造後にソフトウェアにより容易に機能を変更または追加可能とすることにより、製品開発期間を短縮するだけでなく、製品寿命を延長することが必要とされる。   Mobile information devices with built-in multimedia processing functions such as images and audio, and wired and wireless communication functions have come to be widely used, and in order to provide these devices in a small and inexpensive manner, There is a demand for higher performance, higher functionality, and lower power consumption. On the other hand, the rapid response to various standards and standards established along with the advancement of technology development greatly affects the product value. Therefore, it is possible to easily change or add functions by software after device manufacture. In addition to shortening the development period, it is necessary to extend the product life.

上記のデータ処理装置を実現する第1の手段として、複数の動作モードのようにあらかじめ準備された限定的な機能変更のみ可能となる専用の論理回路を設計し、それらを組み合わせた専用LSIを搭載する方法がある。この専用LSIは、高性能化、低消費電力化の達成という観点では一般的にもっとも優れた実現手段と考えられるが、専用LSIの再設計を行わない限り機能の変更・追加ができないだけでなく、設計に要する開発期間が長いことなどから、実現手段としては選択し難い。   As a first means to realize the above data processing device, a dedicated logic circuit capable of only limited function changes prepared in advance such as a plurality of operation modes is designed, and a dedicated LSI combining them is mounted. There is a way to do it. This dedicated LSI is generally considered to be the best implementation method in terms of achieving high performance and low power consumption, but not only can the functions be changed and added without redesign of the dedicated LSI. Because of the long development period required for design, it is difficult to select it as an implementation means.

第2の手段としては、汎用のマイクロプロセッサを搭載し、プロセッサ上で実行される一連の命令列からなるソフトウェアにより各種処理を実現する方法がある。この場合、ソフトウェアを修正または追加することにより、データ処理装置のハードウェアを変更することなく高機能化、機能の変更および追加を実現できる。しかしながら、最先端のマイクロプロセッサにおいても同時に実行可能な命令はたかだか数命令であり、命令の逐次処理を基本とするデータ処理装置で高スループットの処理を実現するには、極めて高いクロック周波数で動作するプロセッサを搭載しなければならず、消費電力が増大する。さらに、プロセッサの処理性能を引き出すため、分岐予測など演算以外の制御論理を必要とし、演算器本体の論理規模が相対的に低下することから、ハードウェア規模に対する処理効率が低下するという欠点が挙げられる。   As a second means, there is a method in which a general-purpose microprocessor is mounted and various processes are realized by software comprising a series of instruction sequences executed on the processor. In this case, by modifying or adding software, it is possible to realize high functionality and change and add functions without changing the hardware of the data processing device. However, even a state-of-the-art microprocessor can execute at most several instructions at the same time, and a data processing device based on sequential processing of instructions operates at an extremely high clock frequency. A processor must be installed, and power consumption increases. Furthermore, in order to extract the processing performance of the processor, control logic other than computation such as branch prediction is required, and the logic scale of the arithmetic unit main body is relatively reduced, so that the processing efficiency with respect to the hardware scale is reduced. It is done.

これらの2つの手段の中間に相当しより実際的な実現手段として、近年Field Programmable Gate Array(FPGA)と呼ばれる再構成可能なLSIが注目され、徐々に適用範囲を広げつつある。FPGAは、多数のLookup Table(LUT)が経路変更可能なバスにより接続された内部構成をもち、LUTの動作内容やLUT間の接続を定義する構成情報をLSIに外付けされたメモリから読み込むことにより、LSI内に任意の機能を実現できるという特長がある。基本的に、LUTの動作内容およびLUT間の接続は1ビット単位で設定可能であるため、所定の機能をLSI上に実現する際の柔軟性が高い反面、画像・音声処理など多ビットの演算を主体とする応用分野では面積オーバヘッドが大きいという問題がある。   In recent years, a reconfigurable LSI called Field Programmable Gate Array (FPGA) has attracted attention as a practical means equivalent to the middle of these two means, and its application range is gradually expanding. The FPGA has an internal configuration in which a number of Lookup Tables (LUTs) are connected by a bus that can be rerouted, and reads configuration information that defines the operation contents of the LUT and the connection between the LUTs from a memory externally attached to the LSI. As a result, an arbitrary function can be realized in the LSI. Basically, the operation contents of LUTs and the connection between LUTs can be set in 1-bit units, so it is highly flexible when implementing predetermined functions on LSIs, but multi-bit operations such as image / sound processing There is a problem that the area overhead is large in the application field mainly composed of.

このような技術的背景に鑑み、8〜32ビット幅程度の粗粒度の演算を単位とする演算器を備え、演算性能と柔軟性を高次元でバランスさせることを目的としたフレキシブルプロセッサ技術が公知であり、例えば以下の特許文献1、2に記載されている。上述のFPGAはNANDやNOR回路等の論理ゲートをアレイ状に配置し、その接続配線を切り換えるのに対し、このフレキシブルプロセッサ技術は、論理ゲートでなく演算ユニットをアレイ状に配置し、コンフィグレーション情報により演算ユニットの機能及び各演算ユニット間の配線を切り換える技術とされる。   In view of such a technical background, a flexible processor technology that includes an arithmetic unit having a coarse-grained arithmetic unit of about 8 to 32 bits in width and aims at balancing arithmetic performance and flexibility at a high level is known. For example, it is described in the following Patent Documents 1 and 2. The above-mentioned FPGA arranges logic gates such as NAND and NOR circuits in an array and switches the connection wiring. On the other hand, this flexible processor technology arranges arithmetic units instead of logic gates in an array. Therefore, the function of the arithmetic unit and the wiring between the arithmetic units are switched.

特開2001−312481号公報JP 2001-314881 A 特開2004−40188号公報JP 2004-40188 A

本発明者は、フレキシブルプロセッサを利用したデータ処理性能について検討した。これによれば、複数の演算ユニットを並列的に動作させていくには一度に必要なオペランドの数も多くなり、複数の演算器はデータメモリとの間でロード・ストア処理を頻繁に行わなければならない。同時に、外部から演算対象データをデータメモリにストアする転送処理や、演算結果データをデータメモリから外部に転送する処理も頻繁に行わなければならない。このような要求に対してマルチポートのデータメモリを複数個用いることが効果的である。しかしながら、データメモリのチップ占有面積は並列アクセス可能なポートの数に比例して倍増する。このため、マルチポートのデータメモリのポート数は自ずと制限されることになる。   The inventor examined data processing performance using a flexible processor. According to this, in order to operate a plurality of arithmetic units in parallel, the number of operands required at one time increases, and the plurality of arithmetic units must frequently perform load / store processing with the data memory. I must. At the same time, it is necessary to frequently perform a transfer process for storing calculation target data from the outside in the data memory and a process for transferring calculation result data from the data memory to the outside. It is effective to use a plurality of multi-port data memories for such a request. However, the chip area occupied by the data memory doubles in proportion to the number of ports that can be accessed in parallel. For this reason, the number of ports of the multi-port data memory is naturally limited.

本発明の目的は、マルチポートを有するデータメモリに対するポート数の制限がデータ処理性能に与える影響を緩和することができるデータ処理装置を提供することにある。   An object of the present invention is to provide a data processing apparatus that can alleviate the influence of the limitation on the number of ports for a data memory having multiple ports on the data processing performance.

本発明の別の目的は、マルチポートを有するデータメモリを備えていて面積対処理性能の指標が高いデータ処理用の半導体装置を提供することにある。   Another object of the present invention is to provide a data processing semiconductor device having a data memory having a multiport and having a high index of area versus processing performance.

本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。   The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。   The following is a brief description of an outline of typical inventions disclosed in the present application.

〔1〕本発明に係るデータ処理装置(11)は、演算部(20)、複数のデータメモリ(21)、複数のメモリ制御回路(22)、外部インタフェース部(23)、クロスバスイッチ部(24)、及び制御部(25)を有する。演算部は演算を実行する複数の演算セル(26)を備えそれらの論理機能が構成情報に基づいて定義される。データメモリは並列動作可能な複数のアクセスポート(RAMPRT0,RAMPRT1)を有し演算データを保持する。メモリ制御回路は対応する前記データメモリのアクセスを制御し、その制御形態が構成情報に基づいて定義される。外部インタフェース部は前記メモリ制御回路に接続する。クロスバスイッチ部は前記演算部と前記メモリ制御回路とを接続し、その接続形態が構成情報(FECFG)に基づいて定義される。制御部は前記演算セル、前記メモリ制御回路及び前記クロスバスイッチ部に前記構成情報を転送する制御を行うと共にそれらの状態遷移を制御する。前記メモリ制御回路は前記外部インタフェース部から前記データメモリへの第1のアクセス要求及び前記演算セルから前記データメモリへの第2のアクセス要求を受け付け可能であり、前記第1のアクセス要求と第2のアクセス要求に応答するアクセス応答制御手順は前記構成情報に基づいて可変可能とされる。   [1] A data processing device (11) according to the present invention includes an arithmetic unit (20), a plurality of data memories (21), a plurality of memory control circuits (22), an external interface unit (23), and a crossbar switch unit (24 ) And a control unit (25). The calculation unit includes a plurality of calculation cells (26) for executing calculations, and their logical functions are defined based on the configuration information. The data memory has a plurality of access ports (RAMPRT0, RAMPRT1) that can operate in parallel, and holds operation data. The memory control circuit controls access to the corresponding data memory, and the control form is defined based on the configuration information. The external interface unit is connected to the memory control circuit. The crossbar switch unit connects the arithmetic unit and the memory control circuit, and the connection form is defined based on configuration information (FECFG). The control unit performs control to transfer the configuration information to the arithmetic cell, the memory control circuit, and the crossbar switch unit, and controls the state transition thereof. The memory control circuit is capable of accepting a first access request from the external interface unit to the data memory and a second access request from the operation cell to the data memory. The access response control procedure for responding to the access request can be changed based on the configuration information.

演算部は構成情報によって論理機能が動的に再構成可能にされる。再構成された論理機能による演算処理の前後で必要なデータ転送を行う場合、メモリ制御回路はデータメモリに外部からの演算データを格納し、演算データを演算部に供給し、演算部による演算結果をデータメモリに格納し、格納された演算結果を外部に出力する。これにより、フレキシブルプロセッサのようなデータ処理装置において柔軟性の高いデータ転送が実現される。   The arithmetic unit can reconfigure the logic function dynamically according to the configuration information. When performing necessary data transfer before and after the arithmetic processing by the reconfigured logic function, the memory control circuit stores the arithmetic data from the outside in the data memory, supplies the arithmetic data to the arithmetic unit, and the arithmetic result by the arithmetic unit Is stored in the data memory, and the stored calculation result is output to the outside. Thereby, highly flexible data transfer is realized in a data processing device such as a flexible processor.

上記より、マルチポートを有する複数のデータメモリはメモリ制御回路を通して外部インタフェース部又は演算セルからアクセス可能にされる。データメモリを外部インタフェース部に接続するのに専用ポートを割り当てることを要しない。データメモリのマルチポートを外部インタフェース部からの第1のアクセスと演算セルからの第2のアクセスに対して兼用することができる。これにより、演算器とデータメモリとの間でのロード・ストア処理における空きポートを、外部とデータメモリとの間の転送に振り分けが可能になる。同様に、外部から演算対象データをデータメモリにストアする転送処理や演算結果データをデータメモリから外部に転送する処理における空きポートを、演算器とデータメモリとの間の転送に振り分けることが可能になる。したがって、データメモリのポート数を増やすことなく、演算器とデータメモリと外部インタフェース部との間のデータ転送性能を向上させることができる。   As described above, a plurality of data memories having multi-ports can be accessed from the external interface unit or the arithmetic cell through the memory control circuit. It is not necessary to assign a dedicated port to connect the data memory to the external interface unit. The multiport of the data memory can be used for both the first access from the external interface unit and the second access from the operation cell. Thereby, it is possible to allocate an empty port in the load / store processing between the arithmetic unit and the data memory to transfer between the outside and the data memory. Similarly, it is possible to allocate free ports in the transfer process for storing operation target data to the data memory from the outside and the process for transferring operation result data from the data memory to the outside for the transfer between the arithmetic unit and the data memory. Become. Therefore, it is possible to improve the data transfer performance between the arithmetic unit, the data memory, and the external interface unit without increasing the number of data memory ports.

更に、前記第1のアクセス要求と第2のアクセス要求に応答するアクセス応答制御手順を前記構成情報に基づいてダイナミックに変更することができるから、演算部における演算処理内容や演算処理状況に応じて、データメモリとの間のデータ転送レートが最大となるように、更には、特定の処理にデータメモリのアクセスを優先させたりする自由度が増し、これによって演算部におけるデータ処理性能も向上させることが可能になる。   Furthermore, since the access response control procedure for responding to the first access request and the second access request can be dynamically changed based on the configuration information, depending on the calculation processing contents and calculation processing status in the calculation unit In order to maximize the data transfer rate to and from the data memory, the degree of freedom to prioritize the access of the data memory to specific processing is further increased, thereby improving the data processing performance in the arithmetic unit. Is possible.

本発明の一つの具体的形態として、前記メモリ制御回路は可変可能な前記アクセス応答制御手順として第1乃至第4の制御が可能である。第1の制御は、第1のアクセス要求を受け付けてデータメモリの一つのアクセスポートを利用する制御である。第2の制御は、第2のアクセス要求を受け付けてデータメモリの一つのアクセスポートを利用する制御である。第3の制御は、並列的に異なる第2のアクセス要求を受け付けて夫々に異なるアクセスポートを利用する制御である。第4の制御は、第1のアクセス要求を受け付けてデータメモリの一つのアクセスポートを利用し且つ第2のアクセス要求を受け付けてデータメモリの他のアクセスポートを利用する制御である。   As one specific form of the present invention, the memory control circuit can perform first to fourth control as the variable access response control procedure. The first control is control that accepts a first access request and uses one access port of the data memory. The second control is a control that accepts a second access request and uses one access port of the data memory. The third control is a control that accepts different second access requests in parallel and uses different access ports. The fourth control is a control that accepts the first access request and uses one access port of the data memory, and accepts the second access request and uses the other access port of the data memory.

本発明の更に具体的な形態として、前記メモリ制御回路は上記に加え、以下の制御を採用してよい。   As a more specific form of the present invention, the memory control circuit may employ the following control in addition to the above.

第1として、前記メモリ制御回路は対応するデータメモリに対する可変可能な前記アクセス応答制御手順として、前記第2のアクセス要求に応答して全てのアクセスポートが使用されているとき、前記第1のアクセス要求に応答して外部インタフェース部にビジー状態を返す制御が可能である。ビジー状態を返すことにより、その受け側は第1のアクセス要求が拒絶されたことを認識する。これによって当該ビジー状態の受け側ではウェイトの挿入や処理スケジューリングの変更によって即座に対応可能になる。   First, the memory control circuit may use the first access when all access ports are used in response to the second access request as the variable access response control procedure for the corresponding data memory. It is possible to control to return a busy state to the external interface unit in response to the request. By returning a busy state, the recipient recognizes that the first access request has been rejected. As a result, the receiving side in the busy state can respond immediately by inserting a wait or changing processing scheduling.

第2として、前記メモリ制御回路は対応するデータメモリに対する可変可能な前記アクセス応答制御手順として、前記第2のアクセス要求に応答して全てのアクセスポートが使用されているとき、前記第1のアクセス要求に応答して一つの第2のアクセス要求の要求元にビジー状態を返す制御が可能である。ビジー状態を返すことにより、その受け側である演算セルは第2のアクセス要求が拒絶されたことを認識する。これによって当該ビジー状態の受け側ではウェイトの挿入や処理スケジューリングの変更によって対応可能になる。   Second, the memory control circuit may use the first access when all access ports are used in response to the second access request as the variable access response control procedure for the corresponding data memory. It is possible to control to return a busy state to the request source of one second access request in response to the request. By returning the busy state, the computation cell which is the receiving side recognizes that the second access request has been rejected. As a result, the busy side can respond by inserting waits or changing processing scheduling.

このとき、前記メモリ制御回路は、ビジー状態を返す一つの第2のアクセス要求の要求元を選択するのにアクセスポートの優先度に従い、優先度の低いアクセスポートに接続するアクセス要求元にビジー状態を返す制御を行ってよい。これにより、優先度の高いデータ処理には優先度の高いアクセスポートを利用するように前記構成情報を規定することができるから、優先度の高いデータ処理が第1のアクセス要求によって邪魔されるのを抑制することができる。   At this time, the memory control circuit selects a second access request source that returns a busy state according to the priority of the access port, and is busy with an access request source connected to an access port with a lower priority. You may control to return. As a result, the configuration information can be defined to use an access port with a high priority for data processing with a high priority, so that the data processing with a high priority is obstructed by the first access request. Can be suppressed.

さらにこのとき、前記メモリ制御回路において前記アクセスポートの優先度は前記構成情報に従って可変にされてよい。制御の自由度が増す。   Further, at this time, the priority of the access port in the memory control circuit may be made variable according to the configuration information. The degree of freedom of control increases.

第3として、前記メモリ制御回路は、第1のアクセス要求と第2のアクセス要求が競合したとき、優先度が高く設定されている方のアクセス要求を優先的に受け付ける制御を行う。演算セルによるデータ処理の内容や演算の進捗状況に応じて、第1のアクセス要求を優先させる方が好都合な場合もあれば、逆に第2のアクセス要求を優先させる方が良い場合もあり、これを考慮すれば、その優先度の設定次第でデータ処理性能の向上に寄与することができる。   Thirdly, when the first access request and the second access request compete, the memory control circuit performs control to preferentially accept the access request having a higher priority. Depending on the content of the data processing by the computation cell and the progress of the computation, it may be more convenient to prioritize the first access request, or vice versa. Considering this, it is possible to contribute to the improvement of the data processing performance depending on the setting of the priority.

このとき、前記メモリ制御回路においてアクセスポート毎に別々に第1のアクセス要求と第2のアクセス要求との優先度が設定可能にされてよい。更にきめ細かい優先制御を行うことが可能になる。   At this time, the priority of the first access request and the second access request may be set separately for each access port in the memory control circuit. Furthermore, finer priority control can be performed.

更にこのとき、前記メモリ制御回路において前記第1のアクセス要求と第2のアクセス要求との優先度は前記構成情報に従って可変にされるのがよい。   Further, at this time, the priority of the first access request and the second access request in the memory control circuit may be made variable according to the configuration information.

〔2〕本発明に係るデータプロセッサ(2)は、内部バス(10)に接続されたフレキシブルプロセッサ(11)、CPU(12)及びRAM(13)を有する。前記フレキシブルプロセッサは演算部、複数のデータメモリ、複数のメモリ制御回路、外部インタフェース部、クロスバスイッチ部、及び制御部を有する。演算部は演算を実行する複数の演算セルを備えそれらの論理機能が構成情報に基づいて定義される。データメモリは並列動作可能な複数のアクセスポートを有し演算データを保持する。メモリ制御回路は対応する前記データメモリのアクセスを制御し、その制御形態が構成情報に基づいて定義される。外部インタフェース部は前記メモリ制御回路に接続する。クロスバスイッチ部は前記演算部と前記メモリ制御回路とを接続し、その接続形態が構成情報に基づいて定義される。前記制御部は前記演算セル、前記メモリ制御回路及び前記クロスバスイッチ部に前記構成情報を転送する制御を行うと共にそれらの状態遷移を制御する。前記メモリ制御回路は前記外部インタフェース部から前記データメモリへの第1のアクセス要求及び前記演算セルから前記データメモリへの第2のアクセス要求を受け付け可能であり、前記第1のアクセス要求と第2のアクセス要求に応答するアクセス応答制御手順は前記構成情報に基づいて可変可能とされる。前記外部インタフェース部は前記内部バスに接続される。前記CPUは前記RAMにストアされたプログラムを実行し、RAMが保有するデータを前記外部インタフェース部から前記データメモリに転送可能である。前記CPUは、前記データメモリが保有するフレキシブルプロセッサによる演算結果データを外部インタフェース部から前記RAMに転送可能である。   [2] The data processor (2) according to the present invention includes a flexible processor (11), a CPU (12), and a RAM (13) connected to the internal bus (10). The flexible processor includes an arithmetic unit, a plurality of data memories, a plurality of memory control circuits, an external interface unit, a crossbar switch unit, and a control unit. The calculation unit includes a plurality of calculation cells for executing calculations, and their logical functions are defined based on the configuration information. The data memory has a plurality of access ports capable of operating in parallel and holds operation data. The memory control circuit controls access to the corresponding data memory, and the control form is defined based on the configuration information. The external interface unit is connected to the memory control circuit. The crossbar switch unit connects the arithmetic unit and the memory control circuit, and the connection form is defined based on the configuration information. The control unit controls to transfer the configuration information to the arithmetic cell, the memory control circuit, and the crossbar switch unit, and controls the state transition thereof. The memory control circuit is capable of accepting a first access request from the external interface unit to the data memory and a second access request from the operation cell to the data memory. The access response control procedure for responding to the access request can be changed based on the configuration information. The external interface unit is connected to the internal bus. The CPU can execute a program stored in the RAM and transfer data held in the RAM from the external interface unit to the data memory. The CPU can transfer operation result data by the flexible processor held in the data memory from the external interface unit to the RAM.

以下、本発明の好適な実施の形態について、添付図面を参照しながら説明する。特に制限されないが、実施の一つの形態として示されるフレキシブルデータプロセッサを構成する回路素子は、公知のCMOS(相補型MOSトランジスタ)やバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。   DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments of the invention will be described with reference to the accompanying drawings. Although not particularly limited, a circuit element constituting a flexible data processor shown as one embodiment is a single element such as single crystal silicon by a known semiconductor integrated circuit technology such as a CMOS (complementary MOS transistor) or a bipolar transistor. It is formed on a single semiconductor substrate.

図2にはデータ処理システムの一例を示す。データ処理システムは、システムバス1に接続されたフレキシブルデータプロセッサ(FDP)2、ホストプロセッサ(HCPU)3、メインメモリ(MMRY)4及びメインROM(MROM)5を有する。フレキシブルデータプロセッサ(FDP)2にはローカルROM(LROM)6が接続される。   FIG. 2 shows an example of a data processing system. The data processing system includes a flexible data processor (FDP) 2, a host processor (HCPU) 3, a main memory (MMRY) 4, and a main ROM (MROM) 5 connected to the system bus 1. A local ROM (LROM) 6 is connected to the flexible data processor (FDP) 2.

フレキシブルデータプロセッサ(FDP)2は、内部バス10に共通接続されたフレキシブルプロセッサカーネル(FPK)11、サブCPU(SCPU)12、内部RAM(IRAM)13、及び共有バッファ(SBUF)14を有する。前記フレキシブルデータプロセッサ2はホストプロセッサ3に対してアクセラレータとして位置付けられる。フレキシブルプロセッサ2はその構成情報(FECFG)によって、音声処理、画像処理、プロトコル処理等の特定処理に特化した論理機能がプログラマブルに設定される。設定された論理機能に対する処理順序等はシーケンス情報(FESQC)によって制御される。前記構成情報(FECFG)及びシーケンス情報(FESQC)はローカルROM6が保有する。ローカルROM6に対するアクセス制御はサブCPU12が行う。サブCPU12は内部RAM13にロードされた制御プログラムに従って、前記構成情報(FECFG)及びシーケンス情報(FESQC)をローカルROM6から取得し、取得した情報を所定のタイミングに従ってフレキシブルプロセッサカーネル11に与える。これによってフレキシブルプロセッサカーネル11は、前記構成情報(FECFG)によって特定される論理機能によるデータ処理を行なう。データ処理に必要な演算データはサブCPU12が内部RAM13又は共有バッファ14からフレキシブルプロセッサカーネル11に内部転送する。フレキシブルプロセッサカーネル11はその演算データを用いたデータ処理を行なう。サブCPU12は所定のタイミングでそのデータ処理結果をフレキシブルプロセッサカーネル11から取り出して内部RAM13又は共有バッファ14に転送する。尚、フレキシブルプロセッサカーネル11は外部入出力回路(EXTIO)を介して演算データの入出力を行なうことも可能にされる。また、サブCPU12はシステムバス1とポート等を介して直接インタフェースすることも可能である。   The flexible data processor (FDP) 2 includes a flexible processor kernel (FPK) 11, a sub CPU (SCPU) 12, an internal RAM (IRAM) 13, and a shared buffer (SBUF) 14 that are commonly connected to the internal bus 10. The flexible data processor 2 is positioned as an accelerator with respect to the host processor 3. In the flexible processor 2, logical functions specialized for specific processing such as sound processing, image processing, protocol processing, and the like are set programmably by the configuration information (FECFG). The processing order for the set logical functions is controlled by sequence information (FESQC). The configuration information (FECFG) and sequence information (FESQC) are held in the local ROM 6. Access control to the local ROM 6 is performed by the sub CPU 12. The sub CPU 12 acquires the configuration information (FECFG) and sequence information (FESQC) from the local ROM 6 according to the control program loaded in the internal RAM 13, and supplies the acquired information to the flexible processor kernel 11 according to a predetermined timing. As a result, the flexible processor kernel 11 performs data processing based on the logical function specified by the configuration information (FECFG). Arithmetic data necessary for data processing is internally transferred from the internal RAM 13 or the shared buffer 14 to the flexible processor kernel 11 by the sub CPU 12. The flexible processor kernel 11 performs data processing using the calculation data. The sub CPU 12 extracts the data processing result from the flexible processor kernel 11 at a predetermined timing and transfers it to the internal RAM 13 or the shared buffer 14. The flexible processor kernel 11 can also input / output operation data via an external input / output circuit (EXTIO). The sub CPU 12 can directly interface with the system bus 1 via a port or the like.

フレキシブルデータプロセッサ(FDP)2はシステムバス1とのインタフェースをデュアルポートを有する共有バッファ14を介して行なう。共有バッファ14はサブCPU12とホストプロセッサ3が共有し、サブCPU12とホストプロセッサ3は共有バッファ14を介してデータやプログラム等の受け渡しを行なう。   A flexible data processor (FDP) 2 interfaces with the system bus 1 via a shared buffer 14 having dual ports. The shared buffer 14 is shared by the sub CPU 12 and the host processor 3, and the sub CPU 12 and the host processor 3 exchange data, programs, and the like via the shared buffer 14.

ホストプロセッサ3はメインROM5のホストプログラムに従ってメインメモリ4から共有バッファ14にサブCPU12の動作プログラムをイニシャルロードする。特に制限されないが、サブCPU12はイニシャルロードされた制御プログラムを例えば直接共有バッファ14の特定アドレスからフェッチして実行することによりその制御動作を起動することができる。これによって、サブCPU12は必要なその他のプログラムを共有バッファ14から内部RAM13のプログラム領域に内部転送する。サブCPU12はメインプロセッサ3によって共有バッファ14に転送された演算データをフレキシブルプロセッサカーネル11に内部転送し、フレキシブルデータプロセッサ(FDP)2の演算に供する。サブCPU12はフレキシブルデータプロセッサ(FDP)2による演算結果データを共有バッファ14に内部転送し、転送された演算データをホストCPU3が共有バッファ14から取り出して更に別の処理に供することができる。   The host processor 3 initially loads the operation program of the sub CPU 12 from the main memory 4 to the shared buffer 14 according to the host program of the main ROM 5. Although not particularly limited, the sub CPU 12 can start the control operation by fetching and executing the initially loaded control program directly from a specific address of the shared buffer 14, for example. As a result, the sub CPU 12 internally transfers other necessary programs from the shared buffer 14 to the program area of the internal RAM 13. The sub CPU 12 internally transfers the operation data transferred to the shared buffer 14 by the main processor 3 to the flexible processor kernel 11 and supplies it to the operation of the flexible data processor (FDP) 2. The sub CPU 12 can internally transfer the operation result data from the flexible data processor (FDP) 2 to the shared buffer 14, and the host CPU 3 can extract the transferred operation data from the shared buffer 14 for further processing.

図1にはフレキシブルプロセッサカーネル2の一例が示される。フレキシブルプロセッサカーネル2は、演算部(PEARY)20、複数のデータメモリ(DTRAM)21、複数のメモリ制御回路(LS)22、外部インタフェース部としてのバスインタフェース部(BI)23、クロスバスイッチ部(XB)24、及び制御部(AM)25を有する。演算部20は演算を実行する複数の演算セル(PE)26を備え、それらの論理機能が構成情報(FECFG)に基づいて定義される。データメモリ21は並列動作可能な複数のアクセスポート、例えばデュアルポートを有し演算データを保持する。複数個のデータメモリ21には個別のメモリアドレスが割り当てられる。メモリ制御回路22は対応するデータメモリ21に割り当てられたメモリアドレスを認識して当該データメモリ21へのアクセスを制御し、その制御形態が構成情報(FECFG)に基づいて定義される。バスインタフェース部23はカーネルバス(KBUS)30を介して夫々のメモリ制御回路22に共通接続する。クロスバスイッチ部24は前記演算部20と前記メモリ制御回路22とを接続し、その接続形態が構成情報(FECFG)に基づいて定義される。制御部25は前記演算セル26、前記メモリ制御回路22及び前記クロスバスイッチ部24に前記構成情報(FECFG)を転送するすると共に、それらにシーケンス情報(FESQC)を順次所定のタイミングに従って供給し、これによって、前記演算セル26、前記メモリ制御回路22及び前記クロスバスイッチ部24の状態遷移を制御して、その動作を制御する。27は演算セル26に構成情報(FECFG)及びシーケンス情報(FESQC)を転送する転送バスを示す。28はクロスバスイッチ部24に構成情報(FECFG)及びシーケンス情報(FESQC)を転送する転送バスを示す。29はメモリ制御部22に構成情報(FECFG)及びシーケンス情報(FESQC)を転送する転送バスを示す。制御部25は、特に制限されないが、転送バス27,28,29に対して構成情報(FECFG)及びシーケンス情報(FESQC)を動作順に従って直列的に転送制御する。   FIG. 1 shows an example of the flexible processor kernel 2. The flexible processor kernel 2 includes an arithmetic unit (PEARY) 20, a plurality of data memories (DTRAM) 21, a plurality of memory control circuits (LS) 22, a bus interface unit (BI) 23 as an external interface unit, and a crossbar switch unit (XB). ) 24 and a control unit (AM) 25. The arithmetic unit 20 includes a plurality of arithmetic cells (PE) 26 that execute arithmetic operations, and their logical functions are defined based on configuration information (FECFG). The data memory 21 has a plurality of access ports that can operate in parallel, for example, dual ports, and holds operation data. Individual memory addresses are assigned to the plurality of data memories 21. The memory control circuit 22 recognizes the memory address assigned to the corresponding data memory 21 and controls access to the data memory 21, and the control form is defined based on the configuration information (FECFG). The bus interface unit 23 is commonly connected to each memory control circuit 22 via a kernel bus (KBUS) 30. The crossbar switch unit 24 connects the calculation unit 20 and the memory control circuit 22, and the connection form is defined based on configuration information (FECFG). The control unit 25 transfers the configuration information (FECFG) to the arithmetic cell 26, the memory control circuit 22, and the crossbar switch unit 24, and sequentially supplies sequence information (FECQC) thereto according to a predetermined timing. Thus, the state transition of the arithmetic cell 26, the memory control circuit 22 and the crossbar switch unit 24 is controlled to control the operation thereof. Reference numeral 27 denotes a transfer bus for transferring configuration information (FECFG) and sequence information (FESQC) to the arithmetic cell 26. Reference numeral 28 denotes a transfer bus for transferring configuration information (FECFG) and sequence information (FESQC) to the crossbar switch unit 24. Reference numeral 29 denotes a transfer bus that transfers configuration information (FECFG) and sequence information (FESQC) to the memory control unit 22. Although not particularly limited, the control unit 25 performs serial transfer control of the configuration information (FECFG) and the sequence information (FESQC) in accordance with the operation order with respect to the transfer buses 27, 28, and 29.

前記メモリ制御回路22は前記バスインタフェース部23から前記データメモリ21への第1のアクセス要求及び前記演算部20から前記データメモリ21への第2のアクセス要求を受け付け可能とされる。要するに、デュアルポートを有する複数のデータメモリ21はメモリ制御回路22を通してバスインタフェース部23又は演算部20からアクセス可能にされる。データメモリ21をバスインタフェース部23に接続するのにデータメモリ21に専用ポートを確保することを要しない。したがって、データメモリ21のデュアルポートをバスインタフェース部23からのアクセスと演算部20からのアクセスとに対して兼用することができる。これにより、演算部20とデータメモリ21との間におけるロード・ストア処理における空きポートを、バスインタフェース部23とデータメモリ21との間の転送に振り分けが可能になる。同様に、バスインタフェース部23を介して演算対象データをデータメモリ21にストアする転送処理や演算結果データをデータメモリ21からバスインタフェース23を介して転送する処理における空きポートを、演算部20とデータメモリ21との間の転送に振り分けることが可能になる。このように、データメモリ21とクロスバスイッチ部24との間に配置されたメモリ制御回路21にバスインタフェース部23を接続しているから、データメモリ21のポート数を増やすことなく、バスインタフェース部23とデータメモリ21と演算部20との間のデータ転送性能を向上させることができる。更に前記メモリ制御回路22は前記第1のアクセス要求と第2のアクセス要求に応答するアクセス応答制御手順を前記構成情報に基づいて可変可能とされる。前記第1のアクセス要求と第2のアクセス要求に応答するアクセス応答制御手順を前記構成情報に基づいてダイナミックに変更することができるから、演算部20における演算処理内容や演算処理状況に応じて、データメモリ21との間のデータ転送レートが最大となるように、更には、特定の処理にデータメモリ21のアクセスを優先させたりする自由度が増し、これによって演算部20におけるデータ処理性能も向上させることが可能になる。   The memory control circuit 22 can accept a first access request from the bus interface unit 23 to the data memory 21 and a second access request from the arithmetic unit 20 to the data memory 21. In short, a plurality of data memories 21 having dual ports can be accessed from the bus interface unit 23 or the arithmetic unit 20 through the memory control circuit 22. It is not necessary to secure a dedicated port in the data memory 21 in order to connect the data memory 21 to the bus interface unit 23. Therefore, the dual port of the data memory 21 can be used for both access from the bus interface unit 23 and access from the arithmetic unit 20. As a result, it is possible to allocate the free port in the load / store process between the arithmetic unit 20 and the data memory 21 to the transfer between the bus interface unit 23 and the data memory 21. Similarly, an empty port in a transfer process for storing operation target data in the data memory 21 via the bus interface unit 23 and a process for transferring operation result data from the data memory 21 via the bus interface 23 is used as an empty port and data. It is possible to distribute the transfer to and from the memory 21. As described above, the bus interface unit 23 is connected to the memory control circuit 21 arranged between the data memory 21 and the crossbar switch unit 24. Therefore, the bus interface unit 23 is not increased without increasing the number of ports of the data memory 21. The data transfer performance between the data memory 21 and the arithmetic unit 20 can be improved. Further, the memory control circuit 22 can change an access response control procedure for responding to the first access request and the second access request based on the configuration information. Since the access response control procedure for responding to the first access request and the second access request can be dynamically changed based on the configuration information, according to the arithmetic processing content and arithmetic processing status in the arithmetic unit 20, In order to maximize the data transfer rate to and from the data memory 21, the degree of freedom of giving priority to access of the data memory 21 to specific processing is increased, thereby improving the data processing performance in the arithmetic unit 20. It becomes possible to make it.

前記演算セル26は、一般的なプロセッサにおける算術論理演算ユニットと同程度の演算性能を備え、特に制限されないが、それぞれ上下左右の4方向に隣接する4セルとの間でのみ相互接続することにより、隣接セル間に限定された高い動作周波数でのデータ転送が可能とされる。ここで、各演算セルの入出力インタフェースのみ統一されていれば機能は単一である必要はなく、実行すべきタスクの備える演算特性に応じ、例えば加減算のみ実行可能な演算セルと累積演算のみ実行可能な演算セルを最適なパターンで配置すればよい。これにより、全ての演算を実行可能な単一種の演算セルを配置する場合と比較し、半導体チップ上の面積を削減することができ、面積当たりの演算性能が高い演算アレイを実現できる。さらに、上下及び左右方向の演算セル数は、要求されるコストおよび演算性能により任意に設定できることは言うまでもない。   The arithmetic cell 26 has the same level of arithmetic performance as an arithmetic logic unit in a general processor, and is not particularly limited. However, the arithmetic cell 26 is interconnected only with four cells adjacent in four directions, up, down, left, and right. Data transfer at a high operating frequency limited between adjacent cells is possible. Here, if only the input / output interface of each calculation cell is unified, the function does not need to be a single function. For example, according to the calculation characteristics of the task to be executed, for example, calculation cells that can only perform addition and subtraction and only cumulative calculation are executed. What is necessary is just to arrange the possible calculation cells in an optimal pattern. This makes it possible to reduce the area on the semiconductor chip and realize an arithmetic array with high arithmetic performance per area, compared to the case where a single type of arithmetic cell capable of executing all arithmetic operations is arranged. Furthermore, it goes without saying that the number of calculation cells in the vertical and horizontal directions can be arbitrarily set depending on the required cost and calculation performance.

図3にはクロスバスイッチ部24の一例が示される。ここでは、クロスバススイッチ部24は1個のメモリ制御回路22に対応して2個のポートXBPRT0,XBPRT1を有する。各ポートXBPRT0,XBPRT1には入力信号線XIND0と出力信号線XOUTD0が横方向に敷設される。縦方向には夫々の入力信号縁XIND0と出力信号線XOUTD0に交差するように縦方向に信号線が敷設される。縦方向の信号線にはクロスバスイッチ部24に隣接する演算セル26に接続される。縦方向の一部の信号線はEXTIOに接続する信号線とされる。縦方向の信号線と横方向の信号線との交差位置には対応する縦と横の信号線を選択的に導通/非導通とする選択スイッチ24Aが配置されている。どの選択スイッチ24Aを導通にするか非導通にするかは構成情報(FECFG)によって決定される。   FIG. 3 shows an example of the crossbar switch unit 24. Here, the cross bus switch unit 24 has two ports XBPRT0 and XBPRT1 corresponding to one memory control circuit 22. An input signal line XIND0 and an output signal line XOUTD0 are laid in the horizontal direction at the ports XBPRT0 and XBPRT1. In the vertical direction, signal lines are laid in the vertical direction so as to intersect the respective input signal edges XIND0 and output signal lines XOUTD0. The vertical signal line is connected to the arithmetic cell 26 adjacent to the crossbar switch unit 24. Some signal lines in the vertical direction are signal lines connected to EXTIO. A selection switch 24A that selectively turns on / off the corresponding vertical and horizontal signal lines is disposed at the intersection of the vertical signal line and the horizontal signal line. Which selection switch 24A is turned on or off is determined by the configuration information (FECFG).

前記入力信号線XIND0、XIND1には演算セル(PE)26から所定の要求フォーマットで命令やデータが供給される。例えばデータメモリ21に対するストア要求フォーマットには所定の命令コード、ストアメモリアドレス及びストアデータを含む。ロード要求には所定の命令コード及びロードデータを含む。前記出力信号線XOUTD0、XOUTD1には要求フォーマットに対する応答フォーマットによる応答ヘッダ及びロードデータがメモリ制御回路22から返される。   Commands and data are supplied to the input signal lines XIND0 and XIND1 from the operation cell (PE) 26 in a predetermined request format. For example, the store request format for the data memory 21 includes a predetermined instruction code, a store memory address, and store data. The load request includes a predetermined instruction code and load data. A response header and load data in a response format to the request format are returned from the memory control circuit 22 to the output signal lines XOUTD0 and XOUTD1.

図4にはメモリ制御回路22の一例が示される。メモリ制御回路22はデータメモリ21のアクセスポートRAMPRT0、RAMPRT1に対応して設けられた2個のメモリポートインタフェース回路(MIF0,MIF1)33、34と、前記カーネルバス(KBUS)30に接続するカーネルバスインタフェース回路(KBIF)35とを有する。   FIG. 4 shows an example of the memory control circuit 22. The memory control circuit 22 includes two memory port interface circuits (MIF0, MIF1) 33 and 34 provided corresponding to the access ports RAMPRT0 and RAMPRT1 of the data memory 21 and a kernel bus connected to the kernel bus (KBUS) 30. And an interface circuit (KBIF) 35.

前記データメモリ21のアクセスポートRAMPRT0は、メモリアドレスMAD0、16ビットのライトデータMWD0、ライトイネーブル信号MWE0及びリードイネーブル信号MRE0という各出力信号と16ビットのリードデータMRD0という入力信号とのインタフェース端子を有する。同様にデータメモリ21の他方のアクセスポートRAMPRT1は、メモリアドレスMAD1、16ビットのライトデータMWD1、ライトイネーブル信号MWE1及びリードイネーブル信号MRE1という各出力信号と16ビットのリードデータMRD1という入力信号とのインタフェース端子を有する。カーネルバス(KBUS)30はメモリアドレスBAD、16ビットのライトデータBWD、ライトイネーブル信号BWE及びリードイネーブル信号BREという各入力信号と16ビットのリードデータBRD及びアクノリッジ信号ACKという各出力信号とのバス信号線を有する。リードデータとライトデータの並列ビット数は上記に限定されず適宜変更可能である。図1からも明らかなように複数個のメモリ制御回路22はカーネルバス30に共通接続されている。アクノリッジ信号ACKは、データメモリ21に対するアクセス要求が受け付けられている状態でアサートされ、アクセス要求が受け付けられていない状態ではネゲート状態に維持される。   The access port RAMPRT0 of the data memory 21 has an interface terminal for an output signal of a memory address MAD0, 16-bit write data MWD0, a write enable signal MWE0 and a read enable signal MRE0, and an input signal of 16-bit read data MRD0. . Similarly, the other access port RAMPRT1 of the data memory 21 is an interface between the memory address MAD1, output signals of 16-bit write data MWD1, write enable signal MWE1, and read enable signal MRE1, and input signals of 16-bit read data MRD1. It has a terminal. The kernel bus (KBUS) 30 is a bus signal including memory signal BAD, 16-bit write data BWD, write enable signal BWE, and read enable signal BRE as input signals, and 16-bit read data BRD and acknowledge signal ACK as output signals. With lines. The number of parallel bits of the read data and the write data is not limited to the above and can be changed as appropriate. As is clear from FIG. 1, the plurality of memory control circuits 22 are commonly connected to the kernel bus 30. The acknowledge signal ACK is asserted when an access request for the data memory 21 is accepted, and is maintained in a negated state when an access request is not accepted.

カーネルバスインタフェース回路35はカーネルバス30からデータメモリ21に対するアクセス要求の有無を検出する。その検出には例えばメモリアドレスBADのデコード結果を用いる。デコード結果が対応するデータメモリ21のマッピングアドレスであればアクセス要求ありと判定する。カーネルバスインタフェース回路35はカーネルバス30からのアクセス要求を検出すると、構成情報(FECFG)による指示に従ってカーネルバス30からのアクセス要求を一方のメモリポートインタフェース回路(MIF0)33又は他方のメモリポートインタフェース回路(MIF1)34に伝達し、或いは双方に対する伝達を拒絶する。   The kernel bus interface circuit 35 detects the presence / absence of an access request from the kernel bus 30 to the data memory 21. For the detection, for example, the decoding result of the memory address BAD is used. If the decoding result is the mapping address of the corresponding data memory 21, it is determined that there is an access request. When the kernel bus interface circuit 35 detects an access request from the kernel bus 30, the memory bus interface circuit (MIF0) 33 or the other memory port interface circuit sends an access request from the kernel bus 30 in accordance with an instruction by the configuration information (FECFG). (MIF1) 34 is transmitted, or transmission to both is rejected.

メモリポートインタフェース回路33は、データメモリ21の一方のアクセスポートRAMPRT0とクロスバスイッチ部24の一つのポートXBPRT0とカーネルバスインタフェース回路35とに接続される。メモリポートインタフェース回路33は、アクセスポートRAMPRT0に対するカーネルバス30からのアクセス要求の有無と、クロスバスイッチ部24の一つのポートXBPRT0からのアクセス要求の有無を検出する。前者に対する検出はカーネルバスインタフェース回路35から伝達されるリードイネーブル信号REまたライトイネーブル信号WEが活性化されるか否かによって行う。後者に対する検出には例えば入力信号線XIND0から供給される所定の要求フォーマットの命令に対する解析結果を用いる。メモリポートインタフェース回路33はアクセス要求を検出すると、構成情報(FECFG)によって決定される所定の手順に従ってインタフェース制御を行う。そのインタフェース制御に従って、カーネルバス(KBUS)30、又は対応するポートXBPRT0をデータメモリ21の対応ポートRAMPRT0に接続し、或いはそのアクセス要求を拒絶する。メモリポートインタフェース回路33は、カーネルバス30からのアクセス要求に応答してカーネルバスをデータメモリ21の対応ポートRAMPRT0に接続してデータメモリ21のアクセスを許容したとき、アクノレッジ信号ACKをアサートしてカーネルバスに返す。カーネルバス30からのアクセス要求に応答しないときアクノレッジ信号ACKはネゲート状態に維持される。メモリポートインタフェース回路33は、ポートXBPRT0からのアクセス要求に応答してポートRAMPRT0からデータメモリ21をアクセスする場合、リードアクセスではリードデータの応答フォーマット、ライトアクセスではライト完了の応答フォーマットをXOUT0から演算セル26に返す。尚、ポートXBPRT0とポートRAMPRT0との間のインタフェースでは双方のバス制御プロトコルが相違するので、プロトコル変換が行われる。   The memory port interface circuit 33 is connected to one access port RAMPRT 0 of the data memory 21, one port XBPRT 0 of the crossbar switch unit 24, and the kernel bus interface circuit 35. The memory port interface circuit 33 detects the presence / absence of an access request from the kernel bus 30 to the access port RAMPRT0 and the presence / absence of an access request from one port XBPRT0 of the crossbar switch unit 24. Detection of the former is performed depending on whether the read enable signal RE or the write enable signal WE transmitted from the kernel bus interface circuit 35 is activated. For the detection of the latter, for example, an analysis result for an instruction of a predetermined request format supplied from the input signal line XIND0 is used. When detecting an access request, the memory port interface circuit 33 performs interface control according to a predetermined procedure determined by the configuration information (FECFG). According to the interface control, the kernel bus (KBUS) 30 or the corresponding port XBPRT0 is connected to the corresponding port RAMPRT0 of the data memory 21, or the access request is rejected. When the memory port interface circuit 33 connects the kernel bus to the corresponding port RAMPRT0 of the data memory 21 in response to an access request from the kernel bus 30 and permits access to the data memory 21, the memory port interface circuit 33 asserts the acknowledge signal ACK and asserts the kernel. Return to the bus. When not responding to the access request from the kernel bus 30, the acknowledge signal ACK is maintained in a negated state. When the memory port interface circuit 33 accesses the data memory 21 from the port RAMPRT0 in response to an access request from the port XBPRT0, the read cell response format is used for read access, and the write completion response format is used for operation from XOUT0. Return to 26. Note that, since the bus control protocol is different between the ports XBPRT0 and RAMPRT0, protocol conversion is performed.

メモリポートインタフェース回路34は、データメモリ21の他方のアクセスポートRAMPRT1とクロスバスイッチ部24の別のポートXBPRT1とカーネルバスインタフェース回路35とに接続される。メモリポートインタフェース回路33は、アクセスポートRAMPRT1に対するカーネルバス30からのアクセス要求の有無と、クロスバスイッチ部24のポートXBPRT1からのアクセス要求の有無を検出する。その検出には上記同様に、前者に対してはカーネルバスインタフェース回路35から伝達されるリードイネーブル信号REまたライトイネーブル信号WEが活性化されるか否かによって検出する。後者に対しては入力信号線XIND1から供給される所定の要求フォーマットの命令に対する解析結果を用いて検出する。メモリポートインタフェース回路34はアクセス要求を検出すると、構成情報(FECFG)によって決定される所定の手順に従ってインタフェース制御を行う。そのインタフェース制御に従って、カーネルバス(KBUS)30、又は対応するポートXBPRT1をデータメモリ21の対応ポートRAMPRT1に接続し、或いはそのアクセス要求を拒絶する。メモリポートインタフェース回路34は、カーネルバス30からのアクセス要求に応答してカーネルバスをデータメモリ21の対応ポートRAMPRT1に接続してデータメモリ21のアクセスを許容したとき、アクノレッジ信号ACKをアサートしてカーネルバスに返す。メモリポートインタフェース回路34は、カーネルバス30からのアクセス要求に応答しないときアクノレッジ信号ACKはネゲート状態に維持される。ポートXBPRT1からのアクセス要求に応答してポートRAMPRT1からデータメモリ21をアクセスするとき、リードアクセスではリードデータの応答フォーマット、ライトアクセスではライト完了の応答フォーマットをXOUT1から演算セル26に返す。尚、プロトコル変換を行なう点は上記と同じである。   The memory port interface circuit 34 is connected to the other access port RAMPRT 1 of the data memory 21, another port XBPRT 1 of the crossbar switch unit 24, and the kernel bus interface circuit 35. The memory port interface circuit 33 detects the presence / absence of an access request from the kernel bus 30 to the access port RAMPRT1 and the presence / absence of an access request from the port XBPRT1 of the crossbar switch unit 24. In the same manner as described above, the former is detected depending on whether the read enable signal RE or the write enable signal WE transmitted from the kernel bus interface circuit 35 is activated. The latter is detected by using an analysis result for an instruction of a predetermined request format supplied from the input signal line XIND1. When the memory port interface circuit 34 detects an access request, it performs interface control according to a predetermined procedure determined by the configuration information (FECFG). According to the interface control, the kernel bus (KBUS) 30 or the corresponding port XBPRT1 is connected to the corresponding port RAMPRT1 of the data memory 21, or the access request is rejected. When the memory port interface circuit 34 connects the kernel bus to the corresponding port RAMPRT1 of the data memory 21 in response to an access request from the kernel bus 30 and permits the data memory 21 to be accessed, the memory port interface circuit 34 asserts an acknowledge signal ACK to Return to the bus. When the memory port interface circuit 34 does not respond to the access request from the kernel bus 30, the acknowledge signal ACK is maintained in the negated state. When accessing the data memory 21 from the port RAMPRT1 in response to an access request from the port XBPRT1, the read data response format is returned to the arithmetic cell 26 from XOUT1 in read access and the write completion response format in write access. Note that the protocol conversion is the same as described above.

インタフェースシーケンス制御回路(SC)38は前記メモリポートインタフェース回路33、34及びカーネルバスインタフェース回路35に対するインタフェース制御形態を決定するための制御信号CSを出力する。インタフェースシーケンス制御回路(SC)38のインタフェース制御シーケンスは制御部25からシーケンス制御バス(SCB)40に供給されるシーケンス制御情報(FESQC)によって制御される。インタフェース制御に必要な構成情報(FECFG)は構成情報レジスタ(CR)37から取り込む。構成制御回路(CC)36は制御部25から構成制御バス(CCB)41に供給される構成情報(FECFG)を構成情報レジスタ37にプリフェッチする制御を行う。インタフェースシーケンス制御回路(SC)38は制御状態を遷移させるとき、そのタイミングに同期して、プリフェッチされている構成情報(FECFG)を構成情報レジスタ37から取り込む。尚、シーケンス制御バス(SCB)40及び構成制御バス(CCB)41は図1の信号バス29に対応され、メモリ制御回路22に共通接続される。   The interface sequence control circuit (SC) 38 outputs a control signal CS for determining an interface control mode for the memory port interface circuits 33 and 34 and the kernel bus interface circuit 35. The interface control sequence of the interface sequence control circuit (SC) 38 is controlled by sequence control information (FESQC) supplied from the control unit 25 to the sequence control bus (SCB) 40. Configuration information (FECFG) necessary for interface control is fetched from the configuration information register (CR) 37. The configuration control circuit (CC) 36 performs control to prefetch the configuration information (FECFG) supplied from the control unit 25 to the configuration control bus (CCB) 41 to the configuration information register 37. When the interface sequence control circuit (SC) 38 changes the control state, it fetches prefetched configuration information (FECFG) from the configuration information register 37 in synchronization with the timing. Note that the sequence control bus (SCB) 40 and the configuration control bus (CCB) 41 correspond to the signal bus 29 in FIG. 1 and are commonly connected to the memory control circuit 22.

前記メモリポートインタフェース回路33、34及びカーネルバスインタフェース回路35に対するインタフェース制御形態には、第1乃至第4の制御形態を含む。第1の制御形態は、第1のアクセス要求としてのカーネルバス30からのアクセス要求を受け付けてデータメモリ21の一つのアクセスポートを利用可能にする制御形態である。第2の制御形態は、第2のアクセス要求としてのポートXBPRT0又はポートXBPRT1からのアクセス要求を受け付けてデータメモリ21の一つのアクセスポートを利用可能にする制御形態である。第3の制御形態は、ポートXBPRT0からのアクセス要求とポートXBPRT1からのアクセス要求を受け付けて夫々にデータメモリ21の異なるアクセスポートを利用可能にする制御形態である。第4の制御形態は、第1のアクセス要求を受け付けてデータメモリ21の一つのアクセスポートを利用可能にし、且つ第2のアクセス要求を受け付けてデータメモリ21の他のアクセスポートを利用可能にする制御形態である。   The interface control modes for the memory port interface circuits 33 and 34 and the kernel bus interface circuit 35 include first to fourth control modes. The first control mode is a control mode for accepting an access request from the kernel bus 30 as a first access request and making one access port of the data memory 21 available. The second control mode is a control mode for accepting an access request from the port XBPRT0 or the port XBPRT1 as a second access request and making one access port of the data memory 21 available. The third control mode is a control mode in which an access request from the port XBPRT0 and an access request from the port XBPRT1 are received and different access ports of the data memory 21 can be used. In the fourth control mode, the first access request is accepted and one access port of the data memory 21 is made available, and the second access request is accepted and another access port of the data memory 21 is made available. It is a control form.

上記第1乃至第4の制御形態において、カーネルバス30からのアクセス要求とクロスバスイッチ部24のポートXBPRT0,XBPRT1からのアクセス要求とを調停するための調停に対しても幾つかの制御形態を選択可能であり、この調停制御形態について説明する。   In the first to fourth control modes described above, several control modes are selected for arbitration for arbitrating access requests from the kernel bus 30 and access requests from the ports XBPRT0 and XBPRT1 of the crossbar switch unit 24. This mode of arbitration control will be described.

第1の調停制御形態は、前記第2のアクセス要求に応答してデータメモリ21の全てのアクセスポートが使用されているとき、前記第1のアクセス要求に応答してバスインタフェース部23にビジー状態を返す制御である。ビジー状態は、前記第1のアクセス要求に対してアクノレッジ信号ACKがネゲート状態に維持されることによって通知される。即ち、この第1の調停制御形態では、カーネルバスインタフェース回路35がカーネルバス30からのアクセス要求をメモリポートインタフェース回路33又は34に伝達したときは、夫々ポートXBPRT0、XBPRT1からのアクセス要求に応答しているメモリポートインタフェース回路33又は34はそのアクセス要求を拒絶してアクノレッジ信号ACKをネゲート状態に維持する。或いはカーネルバスインタフェース回路35がカーネルバス30からのアクセス要求をメモリポートインタフェース回路33又は34の何れにも伝達することなくそのアクセス要求を拒絶し、結果としてアクノレッジ信号ACKがネゲート状態に維持される。ビジー状態を返すことにより、その受け側は第1のアクセス要求が拒絶されたことを認識する。これによって当該ビジー状態の受け側ではウェイトの挿入や処理スケジューリングの変更によって即座に対応可能になる。   In the first arbitration control mode, when all the access ports of the data memory 21 are used in response to the second access request, the bus interface unit 23 is busy in response to the first access request. Is a control that returns. The busy state is notified by maintaining an acknowledge signal ACK in a negated state with respect to the first access request. That is, in the first arbitration control mode, when the kernel bus interface circuit 35 transmits an access request from the kernel bus 30 to the memory port interface circuit 33 or 34, it responds to the access requests from the ports XBPRT0 and XBPRT1, respectively. The memory port interface circuit 33 or 34 that is being held rejects the access request and maintains the acknowledge signal ACK in the negated state. Alternatively, the kernel bus interface circuit 35 rejects the access request without transmitting the access request from the kernel bus 30 to any of the memory port interface circuits 33 or 34, and as a result, the acknowledge signal ACK is maintained in the negated state. By returning a busy state, the recipient recognizes that the first access request has been rejected. As a result, the receiving side in the busy state can respond immediately by inserting a wait or changing processing scheduling.

第2の調停制御形態は、前記第2のアクセス要求に応答して全てのアクセスポートが使用されているとき、前記第1のアクセス要求に応答して一つの第2のアクセス要求の要求元にビジー状態を返す制御である。ビジー状態は、例えばポートXBPRT0又はXBPRT1からアクセス中止を知らせる所定の応答フォーマットを出力することによって通知される。即ち、この第2の調停制御形態では、カーネルバスインタフェース回路35がカーネルバス30からのアクセス要求をメモリポートインタフェース回路33又は34に伝達したとき、そのアクセス要求を受けたメモリポートインタフェース回路33又は34は、現にポートXBPRT0又はXBPRT1からのアクセス要求に応答するデータメモリ21の新たなアクセスサイクルの起動を中止し、当該ポートXBPRT0又はXBPRT1からアクセス中止を知らせる所定の応答フォーマットを出力する。この応答フォーマットには書込み中止の対象になった書き込みデータを付随させてもよい。ビジー状態を返すことにより、その受け側である演算セル26は第2のアクセス要求が拒絶されたことを認識する。これによって当該ビジー状態の受け側ではウェイトの挿入や処理スケジューリングの変更によって対応可能になる。   In the second arbitration control mode, when all access ports are used in response to the second access request, a request source of one second access request responds to the first access request. This control returns the busy state. The busy state is notified, for example, by outputting a predetermined response format notifying access stop from the port XBPRT0 or XBPRT1. That is, in the second arbitration control mode, when the kernel bus interface circuit 35 transmits an access request from the kernel bus 30 to the memory port interface circuit 33 or 34, the memory port interface circuit 33 or 34 that has received the access request. Actually cancels the activation of a new access cycle of the data memory 21 in response to an access request from the port XBPRT0 or XBPRT1, and outputs a predetermined response format for notifying the access stop from the port XBPRT0 or XBPRT1. This response format may be accompanied by write data that is the target of write stop. By returning the busy state, the computation cell 26 which is the receiving side recognizes that the second access request has been rejected. As a result, the busy side can respond by inserting waits or changing processing scheduling.

上記第2の調停制御形態においては、カーネルバスインタフェース回路35はメモリポートRAMPRT0,RAMPRT1の優先度に従い、優先度の低い方のメモリポートRAMPRT0又はRAMPRT1に接続するアクセス要求元に前記ビジー状態を返す制御を行う。これにより、優先度の高いデータ処理には優先度の高いメモリポートRAMPRT0又はRAMPRT1を利用するように前記構成情報(FECFG)を規定することができるから、優先度の高いデータ処理が第1のアクセス要求によって邪魔されるのを抑制することができる。   In the second arbitration control mode, the kernel bus interface circuit 35 returns the busy state to the access request source connected to the lower priority memory port RAMPRT0 or RAMPRT1 according to the priority of the memory ports RAMPRT0 and RAMPRT1. I do. As a result, the configuration information (FECFG) can be defined so that the memory port RAMPRT0 or RAMPRT1 having a high priority is used for data processing having a high priority. It is possible to suppress being disturbed by requests.

さらにカーネルバスインタフェース回路35が認識する上記メモリポートRAMPRT0,RAMPRT1の優先度は前記構成情報(FECFG)に従って可変にされてよい。制御の自由度が増す。   Furthermore, the priority of the memory ports RAMPRT0 and RAMPRT1 recognized by the kernel bus interface circuit 35 may be made variable according to the configuration information (FECFG). The degree of freedom of control increases.

第3の調停制御形態は、第1のアクセス要求と第2のアクセス要求が競合したとき、優先度が高く設定されている方のアクセス要求を優先的に受け付ける制御である。即ち、メモリインタフェース回路33,34は、カーネルバス30からの第1のアクセス要求と演算セル26からの第2のアクセス要求との優先度の相違を認識している。これに従って、メモリインタフェース回路33,34は、第1のアクセス要求と第2のアクセス要求が競合したとき、優先度が高く設定されている方のアクセス要求を優先的に受け付ける。これにより、演算セル26によるデータ処理の内容や演算の進捗状況に応じて、第1のアクセス要求を優先させる方が好都合な場合もあれば、逆に第2のアクセス要求を優先させる方が良い場合もある。その優先度の設定次第でデータ処理性能の向上に寄与することができる。   In the third arbitration control mode, when the first access request and the second access request compete, the access request with the higher priority is preferentially received. That is, the memory interface circuits 33 and 34 recognize the difference in priority between the first access request from the kernel bus 30 and the second access request from the operation cell 26. Accordingly, when the first access request and the second access request compete with each other, the memory interface circuits 33 and 34 preferentially accept the access request having the higher priority. Thereby, it may be more convenient to prioritize the first access request according to the contents of the data processing by the computation cell 26 or the progress of the computation, and it is better to prioritize the second access request. In some cases. Depending on the setting of the priority, it can contribute to the improvement of the data processing performance.

前記第3の調停制御形態において、メモリポートRAMPRT0,RAMPRT1毎に別々に第1のアクセス要求と第2のアクセス要求との優先度を設定するのがよい。更にきめ細かい優先制御を行うことが可能になる。前記第1のアクセス要求と第2のアクセス要求との優先度は前記構成情報(FECFG)に従って可変にされるのが好都合である。   In the third arbitration control mode, it is preferable to set priorities of the first access request and the second access request separately for each of the memory ports RAMPRT0 and RAMPRT1. Furthermore, finer priority control can be performed. Conveniently, the priorities of the first access request and the second access request are made variable according to the configuration information (FECFG).

図5には前記メモリポートインタフェース回路33の一例が示される。メモリポートインタフェース回路33は、アクセスコントローラ(AC)45、アドレスジェネレータ(AG)46、ストアデータジェネレータ(SDG)47及びロードデータジェネレータ(LDG)48を有する。アクセスコントローラ45は、カーネルバス3からのアクセス要求をリードイネーブル信号RE又はライトイネーブル信号WEによって検出する。アクセスコントローラ45は、ポートXBPRT0からのアクセス要求を要求フォーマットのコードから検出する。アクセスコントローラ45はカーネルバスからのアクセス要求を受け付けたときアクノレッジ信号ACKをアサートして返し、受け付けないときはアクノレッジ信号ACKをネゲート状態に維持する。アクセスコントローラ45はポートXBPRT0からのアクセス要求を受け付けたとき、ライトアクセスでは受け付けの応答フォーマットを返し、リードアクセスではリードデータの応答フォーマットを返す。アクセスコントローラ45はポートXBPRT0からのアクセス要求を受け付けないときは、受け付け拒絶の応答フォーマットを返す。RDVは応答フォーマットに付加するコードである。   FIG. 5 shows an example of the memory port interface circuit 33. The memory port interface circuit 33 includes an access controller (AC) 45, an address generator (AG) 46, a store data generator (SDG) 47, and a load data generator (LDG) 48. The access controller 45 detects an access request from the kernel bus 3 by the read enable signal RE or the write enable signal WE. The access controller 45 detects the access request from the port XBPRT0 from the request format code. The access controller 45 asserts and returns an acknowledge signal ACK when accepting an access request from the kernel bus, and maintains the acknowledge signal ACK in a negated state when not accepted. When the access controller 45 accepts an access request from the port XBPRT0, the access controller 45 returns a response format of acceptance for write access and returns a response format of read data for read access. When the access controller 45 does not accept an access request from the port XBPRT0, it returns an acceptance rejection response format. RDV is a code added to the response format.

アクセスコントローラ45は前記調停のための制御を行う。アクセスコントローラ45は制御信号SCによって、カーネルバス30からの第1のアクセス要求と演算セル26からの第2のアクセス要求との優先度の相違を認識している。第1のアクセス要求と第2のアクセス要求が競合したとき、優先度が高く設定されている方のアクセス要求を優先的に受け付ける。その場合に、優先度の低いアクセス要求が先に受け付けられている場合に、当該優先度の低いアクセス要求に応答するアクセスサイクルの終了を待つか否かは制御信号SCによって決定される。待たない場合にはアクセスコントローラ45は前記第1の調停制御形態又は第2の調停制御形態で説明した制御動作を行う。制御信号ACFRは受け付けたアクセス要求元をメモリポートRAMPRT0に接続するためのアクセス要求元の接続選択制御信号である。   The access controller 45 performs control for the arbitration. The access controller 45 recognizes the difference in priority between the first access request from the kernel bus 30 and the second access request from the arithmetic cell 26 by the control signal SC. When the first access request and the second access request conflict, the access request with the higher priority is preferentially accepted. In this case, when an access request with a low priority is received first, whether or not to wait for the end of an access cycle responding to the access request with a low priority is determined by the control signal SC. When not waiting, the access controller 45 performs the control operation described in the first arbitration control mode or the second arbitration control mode. The control signal ACFR is a connection selection control signal of the access request source for connecting the accepted access request source to the memory port RAMPRT0.

アドレスジェネレータ46はBAD又はXIN0から供給されたアドレスがプリセットされ、これをMAD0に、或いはそれを初期値としてインクリメントされたアドレスをMAD0に出力する。制御信号INはインクリメント指示信号である。   The address generator 46 presets the address supplied from BAD or XIN0, and outputs this to MAD0, or outputs the incremented address to MAD0 as an initial value. The control signal IN is an increment instruction signal.

ストアデータジェネレータ(SDG)47はXIN0からのデータ又はデータBWDの切換えを行い、必要に応じて、メモリライトデータのバス幅に合わせたデータアライメント等を行う。   The store data generator (SDG) 47 switches data from XIN0 or data BWD, and performs data alignment in accordance with the bus width of the memory write data as necessary.

ロードデータジェネレータ(LDG)48はメモリリードデータMRD0をXOUT0又はバスBRDへの切換えを行い、必要に応じて出力データのデータアライメント等を行う。   A load data generator (LDG) 48 switches the memory read data MRD0 to XOUT0 or the bus BRD, and performs data alignment of output data as necessary.

尚、図示はしないがメモリポートインタフェース回路34も図5と同様に構成される。   Although not shown, the memory port interface circuit 34 is configured in the same manner as in FIG.

以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。例えばメモリ制御回路によるカーネルバスからのメモリアクセスの認識はアクセスアドレス、リードイネーブル信号、ライトイネーブル信号に基づく手法に限定されない。また、アクセス要求に対する応答としてアクノリッジ信号を用いる構成に限定されず、バリッド信号を用いたり、或いはその他の応答コードを用いても良い。演算セルとのインタフェースも応答フォーマットを用いる構成に限定されない。応答フォーマットは所定フォーマットが規定されたパケットと把握することも可能である。データメモリはデュアルポートに限定されない。トリプルポートのようなマルチポートであってもよい。また、カーネルバスにはアドレス、データ及び制御信号をマルチプレクスして転送するバスプロトコルを採用しても良い。フレキシブルプロセッサカーネルはそれ単独で一つの半導体集積回路として実現することも可能であることは言うまでもない。   Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof. For example, recognition of memory access from the kernel bus by the memory control circuit is not limited to a method based on an access address, a read enable signal, and a write enable signal. Further, the present invention is not limited to the configuration using the acknowledge signal as a response to the access request, and a valid signal may be used or another response code may be used. The interface with the calculation cell is not limited to the configuration using the response format. The response format can be understood as a packet in which a predetermined format is defined. Data memory is not limited to dual ports. A multi-port such as a triple port may be used. The kernel bus may employ a bus protocol that multiplexes and transfers addresses, data, and control signals. It goes without saying that the flexible processor kernel can be realized as a single semiconductor integrated circuit by itself.

フレキシブルプロセッサカーネルの一例を示すブロック図である。It is a block diagram which shows an example of a flexible processor kernel. データ処理システムの一例を示すブロック図である。It is a block diagram which shows an example of a data processing system. クロスバスイッチ部の一例を示すブロック図である。It is a block diagram which shows an example of a crossbar switch part. メモリ制御回路の一例を示すブロック図である。It is a block diagram which shows an example of a memory control circuit. メモリポートインタフェース回路の一例を示すブロック図である。It is a block diagram which shows an example of a memory port interface circuit.

符号の説明Explanation of symbols

1 システムバス
2 フレキシブルデータプロセッサ
3 ホストプロセッサ(HCPU)
4 メインメモリ(MMRY)
5 メインROM(MROM)
6 ローカルROM(LROM)
10 内部バス
11 フレキシブルプロセッサカーネル(FPK)
12 サブCPU(SCPU)
13 内部RAM(IRAM)
14 共有バッファ(SBUF)
20 演算部(PEARY)
21 複数のデータメモリ(DTRAM)
22 メモリ制御回路(LS)
23 バスインタフェース部(BI)
24 クロスバスイッチ部(XB)
25 制御部(AM)
26 演算セル(PE)
30 カーネルバス(KBUS)
FECFG 構成情報
FESQC シーケンス情報
33、34 リポートインタフェース回路(MIF0,MIF1)
35 カーネルバスインタフェース回路(KBIF)
1 system bus 2 flexible data processor 3 host processor (HCPU)
4 Main memory (MMRY)
5 Main ROM (MROM)
6 Local ROM (LROM)
10 Internal bus 11 Flexible processor kernel (FPK)
12 Sub CPU (SCPU)
13 Internal RAM (IRAM)
14 Shared buffer (SBUF)
20 Arithmetic unit (PEARY)
21 Multiple data memories (DTRAM)
22 Memory control circuit (LS)
23 Bus Interface (BI)
24 Crossbar switch (XB)
25 Control unit (AM)
26 Computing cell (PE)
30 Kernel Bus (KBUS)
FECFG configuration information FESQC sequence information 33, 34 Report interface circuit (MIF0, MIF1)
35 Kernel Bus Interface Circuit (KBIF)

Claims (10)

演算を実行する複数の演算セルを備えそれらの論理機能が構成情報に基づいて定義される演算部と、
並列動作可能な複数のアクセスポートを有し演算データを保持する複数のデータメモリと、
対応する前記データメモリのアクセスを制御し、その制御形態が構成情報に基づいて定義される複数のメモリ制御回路と、
前記メモリ制御回路に接続する外部インタフェース部と、
前記演算部と前記メモリ制御回路とを接続し、その接続形態が構成情報に基づいて定義されるクロスバスイッチ部と、
前記演算セル、前記メモリ制御回路及び前記クロスバスイッチ部に前記構成情報を転送する制御を行うと共にそれらの状態遷移を制御する制御部と、を有し、
前記メモリ制御回路は前記外部インタフェース部から前記データメモリへの第1のアクセス要求及び前記演算セルから前記データメモリへの第2のアクセス要求を受け付け可能であり、前記第1のアクセス要求と第2のアクセス要求に応答するアクセス応答制御手順は前記構成情報に基づいて可変可能とされるデータ処理装置。
An arithmetic unit that includes a plurality of arithmetic cells that perform arithmetic operations and whose logical functions are defined based on configuration information;
A plurality of data memories having a plurality of access ports operable in parallel and holding operation data;
A plurality of memory control circuits that control access to the corresponding data memory and whose control form is defined based on configuration information;
An external interface connected to the memory control circuit;
A crossbar switch unit that connects the arithmetic unit and the memory control circuit, the connection form of which is defined based on configuration information;
A control unit that performs control to transfer the configuration information to the arithmetic cell, the memory control circuit, and the crossbar switch unit and controls state transition thereof, and
The memory control circuit is capable of accepting a first access request from the external interface unit to the data memory and a second access request from the operation cell to the data memory. An access response control procedure for responding to an access request is a data processing device that can be varied based on the configuration information.
前記メモリ制御回路は可変可能な前記アクセス応答制御手順として、第1のアクセス要求を受け付けてデータメモリの一つのアクセスポートを利用する制御と、第2のアクセス要求を受け付けてデータメモリの一つのアクセスポートを利用する制御と、並列的に異なる第2のアクセス要求を受け付けて夫々に異なるアクセスポートを利用する制御と、第1のアクセス要求を受け付けてデータメモリの一つのアクセスポートを利用し且つ第2のアクセス要求を受け付けてデータメモリの他のアクセスポートを利用する制御と、が可能である請求項1記載のデータ処理装置。   As the variable access response control procedure, the memory control circuit accepts a first access request and uses one access port of the data memory, and accepts a second access request and accesses one data memory. Control using a port, control using a different second access request in parallel and using a different access port, and receiving a first access request and using one access port of the data memory and 2. The data processing apparatus according to claim 1, wherein control for accepting two access requests and using another access port of the data memory is possible. 前記メモリ制御回路は対応するデータメモリに対する可変可能な前記アクセス応答制御手順として、前記第2のアクセス要求に応答して全てのアクセスポートが使用されているとき、前記第1のアクセス要求に応答して外部インタフェース部にビジー状態を返す制御が可能である請求項2記載のデータ処理装置。   The memory control circuit responds to the first access request when all access ports are used in response to the second access request as the variable access response control procedure for the corresponding data memory. The data processing apparatus according to claim 2, wherein control for returning a busy state to the external interface unit is possible. 前記メモリ制御回路は対応するデータメモリに対する可変可能な前記アクセス応答制御手順として、前記第2のアクセス要求に応答して全てのアクセスポートが使用されているとき、前記第1のアクセス要求に応答して一つの第2のアクセス要求の要求元にビジー状態を返す制御が可能である請求項2又は3記載のデータ処理装置。   The memory control circuit responds to the first access request when all access ports are used in response to the second access request as the variable access response control procedure for the corresponding data memory. 4. The data processing apparatus according to claim 2, wherein control for returning a busy state to a request source of one second access request is possible. 前記メモリ制御回路は、前記ビジー状態を返す一つの第2のアクセス要求の要求元を選択するのにアクセスポートの優先度に従い、優先度の低いアクセスポートに接続するアクセス要求元にビジー状態を返す請求項4記載のデータ処理装置。   The memory control circuit returns a busy state to an access request source connected to an access port having a low priority according to the priority of the access port in order to select a request source of one second access request that returns the busy state. The data processing apparatus according to claim 4. 前記メモリ制御回路において前記アクセスポートの優先度は前記構成情報に従って可変にされる請求項5記載のデータ処理装置。   6. The data processing apparatus according to claim 5, wherein the priority of the access port is made variable in the memory control circuit according to the configuration information. 前記メモリ制御回路は、第1のアクセス要求と第2のアクセス要求が競合したとき、優先度が高く設定されている方のアクセス要求を優先的に受け付ける請求項2記載のデータ処理装置。   3. The data processing apparatus according to claim 2, wherein when the first access request and the second access request compete with each other, the memory control circuit preferentially receives an access request having a higher priority. 前記メモリ制御回路においてアクセスポート毎に別々に第1のアクセス要求と第2のアクセス要求との優先度が設定可能にされる請求項7記載のデータ処理装置。   8. The data processing apparatus according to claim 7, wherein priorities of the first access request and the second access request can be set separately for each access port in the memory control circuit. 前記メモリ制御回路において前記第1のアクセス要求と第2のアクセス要求との優先度は前記構成情報に従って可変にされる請求項8記載のデータ処理装置。   9. The data processing apparatus according to claim 8, wherein the priority of the first access request and the second access request is made variable according to the configuration information in the memory control circuit. 内部バスにフレキシブルプロセッサ、CPU及びRAMを接続したデータプロセッサであって、
前記フレキシブルプロセッサは、演算を実行する複数の演算セルを備えそれらの論理機能が構成情報に基づいて定義される演算部と、
並列動作可能な複数のアクセスポートを有し演算データを保持する複数のデータメモリと、
対応する前記データメモリのアクセスを制御し、その制御形態が構成情報に基づいて定義される複数のメモリ制御回路と、
前記メモリ制御回路に接続する外部インタフェース部と、
前記演算部と前記メモリ制御回路とを接続し、その接続形態が構成情報に基づいて定義されるクロスバスイッチ部と、
前記演算セル、前記メモリ制御回路及び前記クロスバスイッチ部に前記構成情報を転送する制御を行うと共にそれらの状態遷移を制御する制御部とを有し、
前記メモリ制御回路は前記外部インタフェース部から前記データメモリへの第1のアクセス要求及び前記演算セルから前記データメモリへの第2のアクセス要求を受け付け可能であり、前記第1のアクセス要求と第2のアクセス要求に応答するアクセス応答制御手順は前記構成情報に基づいて可変可能とされ、
前記外部インタフェース部は前記内部バスに接続され、
前記CPUは前記RAMにストアされたプログラムを実行し、RAMが保有するデータを前記外部インタフェース部から前記データメモリに転送可能であり、
前記CPUは、前記データメモリが保有するフレキシブルプロセッサによる演算結果データを外部インタフェース部から前記RAMに転送可能である、データプロセッサ。
A data processor having a flexible processor, CPU and RAM connected to an internal bus,
The flexible processor includes a plurality of calculation cells that perform calculations, and a calculation unit whose logical functions are defined based on configuration information;
A plurality of data memories having a plurality of access ports operable in parallel and holding operation data;
A plurality of memory control circuits that control access to the corresponding data memory and whose control form is defined based on configuration information;
An external interface connected to the memory control circuit;
A crossbar switch unit that connects the arithmetic unit and the memory control circuit, the connection form of which is defined based on configuration information;
A control unit that performs control to transfer the configuration information to the arithmetic cell, the memory control circuit, and the crossbar switch unit, and controls state transition thereof, and
The memory control circuit is capable of accepting a first access request from the external interface unit to the data memory and a second access request from the operation cell to the data memory. The access response control procedure for responding to the access request is made variable based on the configuration information,
The external interface unit is connected to the internal bus,
The CPU executes a program stored in the RAM, and can transfer data held in the RAM from the external interface unit to the data memory;
The CPU is a data processor capable of transferring operation result data by a flexible processor held in the data memory from an external interface unit to the RAM.
JP2005181663A 2004-11-15 2005-06-22 Data processor Pending JP2007004338A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005181663A JP2007004338A (en) 2005-06-22 2005-06-22 Data processor
US11/271,961 US7765250B2 (en) 2004-11-15 2005-11-14 Data processor with internal memory structure for processing stream data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005181663A JP2007004338A (en) 2005-06-22 2005-06-22 Data processor

Publications (1)

Publication Number Publication Date
JP2007004338A true JP2007004338A (en) 2007-01-11

Family

ID=37689925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005181663A Pending JP2007004338A (en) 2004-11-15 2005-06-22 Data processor

Country Status (1)

Country Link
JP (1) JP2007004338A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244238A (en) * 2009-04-03 2010-10-28 Fujitsu Semiconductor Ltd Reconfigurable circuit and system of the same
JP2011523132A (en) * 2008-05-27 2011-08-04 スティルウォーター スーパーコンピューティング インコーポレイテッド Execution engine
US9501448B2 (en) 2008-05-27 2016-11-22 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies
CN109902492A (en) * 2017-12-11 2019-06-18 意法半导体(格勒诺布尔2)公司 The method and integrated circuit of encryption information set are write in integrated circuit external memory

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553902A (en) * 1991-08-27 1993-03-05 Shiyuule Syst:Kk Memory control circuit
JPH10256383A (en) * 1997-03-12 1998-09-25 Toshiba Corp Semiconductor device and circuit constitution method thereof
JPH11110215A (en) * 1997-10-03 1999-04-23 Keisuke Shindo Information processor using multi thread program
JP2000057775A (en) * 1998-08-10 2000-02-25 Hitachi Ltd Multiport memory, data processor and data processing system
JP2001236496A (en) * 1999-10-04 2001-08-31 Texas Instr Inc <Ti> Reconstructible simd co-processor structure for summing and symmetrical filtration of absolute difference
JP2002182975A (en) * 2000-12-18 2002-06-28 Seiko Epson Corp Multi-processor system
JP2004326808A (en) * 2003-04-28 2004-11-18 Internatl Business Mach Corp <Ibm> Non-intervening dynamic hot plug of server node in smp, and hot removal
JP2004334361A (en) * 2003-05-01 2004-11-25 Toshiba Corp Multiport memory
JP2005276854A (en) * 2004-03-22 2005-10-06 Sanyo Electric Co Ltd Processing equipment

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553902A (en) * 1991-08-27 1993-03-05 Shiyuule Syst:Kk Memory control circuit
JPH10256383A (en) * 1997-03-12 1998-09-25 Toshiba Corp Semiconductor device and circuit constitution method thereof
JPH11110215A (en) * 1997-10-03 1999-04-23 Keisuke Shindo Information processor using multi thread program
JP2000057775A (en) * 1998-08-10 2000-02-25 Hitachi Ltd Multiport memory, data processor and data processing system
JP2001236496A (en) * 1999-10-04 2001-08-31 Texas Instr Inc <Ti> Reconstructible simd co-processor structure for summing and symmetrical filtration of absolute difference
JP2002182975A (en) * 2000-12-18 2002-06-28 Seiko Epson Corp Multi-processor system
JP2004326808A (en) * 2003-04-28 2004-11-18 Internatl Business Mach Corp <Ibm> Non-intervening dynamic hot plug of server node in smp, and hot removal
JP2004334361A (en) * 2003-05-01 2004-11-25 Toshiba Corp Multiport memory
JP2005276854A (en) * 2004-03-22 2005-10-06 Sanyo Electric Co Ltd Processing equipment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011523132A (en) * 2008-05-27 2011-08-04 スティルウォーター スーパーコンピューティング インコーポレイテッド Execution engine
US9501448B2 (en) 2008-05-27 2016-11-22 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies
US9767071B2 (en) 2008-05-27 2017-09-19 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies
US10289606B2 (en) 2008-05-27 2019-05-14 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies
JP2010244238A (en) * 2009-04-03 2010-10-28 Fujitsu Semiconductor Ltd Reconfigurable circuit and system of the same
CN109902492A (en) * 2017-12-11 2019-06-18 意法半导体(格勒诺布尔2)公司 The method and integrated circuit of encryption information set are write in integrated circuit external memory

Similar Documents

Publication Publication Date Title
US7231484B2 (en) Method and memory controller for scalable multi-channel memory access
US6954821B2 (en) Crossbar switch that supports a multi-port slave device and method of operation
CN101923523B (en) Memory system and memory access method
US7313641B2 (en) Inter-processor communication system for communication between processors
EP1239374A1 (en) Shared program memory for use in multicore DSP devices
US20020186042A1 (en) Heterogeneous integrated circuit with reconfigurable logic cores
US8661207B2 (en) Method and apparatus for assigning a memory to multi-processing unit
EP1535169B1 (en) Improved inter-processor communication system for communication between processors
US7007111B2 (en) DMA port sharing bandwidth balancing logic
US7765250B2 (en) Data processor with internal memory structure for processing stream data
JPH11509950A (en) Microcontroller having an N-bit data bus width with less than N I / O pins and method therefor
EP2132645B1 (en) A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
WO2004099995A2 (en) Hierarchical memory access via pipelining
US20080244131A1 (en) Architecture for configurable bus arbitration in multibus systems with customizable master and slave circuits
JP2007004338A (en) Data processor
EP1083487A2 (en) Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor
GB2447690A (en) A data processing apparatus and method for performing multi-cycle arbitration
US7162591B1 (en) Processor memory having a dedicated port
JP2002140284A (en) Micro-controller
US20060248247A1 (en) Apparatus and method for controlling access to a memory
JP5058116B2 (en) DMAC issue mechanism by streaming ID method
US7636817B1 (en) Methods and apparatus for allowing simultaneous memory accesses in a programmable chip system
EP1403772A1 (en) Method and memory controller for scalable multi-channel memory access
JP2005346513A (en) Semiconductor device
US8819378B2 (en) Data processing apparatus and method for performing memory transactions within such a data processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080404

A977 Report on retrieval

Effective date: 20091106

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20091201

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Effective date: 20100324

Free format text: JAPANESE INTERMEDIATE CODE: A02