Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4989899B2 - 半導体演算処理装置 - Google Patents
[go: Go Back, main page]

JP4989899B2 - 半導体演算処理装置 - Google Patents

半導体演算処理装置 Download PDF

Info

Publication number
JP4989899B2
JP4989899B2 JP2006018762A JP2006018762A JP4989899B2 JP 4989899 B2 JP4989899 B2 JP 4989899B2 JP 2006018762 A JP2006018762 A JP 2006018762A JP 2006018762 A JP2006018762 A JP 2006018762A JP 4989899 B2 JP4989899 B2 JP 4989899B2
Authority
JP
Japan
Prior art keywords
data
transfer
entry
entries
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.)
Expired - Fee Related
Application number
JP2006018762A
Other languages
English (en)
Other versions
JP2007200090A (ja
Inventor
英行 野田
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 Electronics Corp
Original Assignee
Renesas Electronics 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 Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006018762A priority Critical patent/JP4989899B2/ja
Publication of JP2007200090A publication Critical patent/JP2007200090A/ja
Application granted granted Critical
Publication of JP4989899B2 publication Critical patent/JP4989899B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Static Random-Access Memory (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)

Description

この発明は、半導体演算処理装置に関し、特に、複数のエントリに分割される半導体メモリと、各エントリに対応して設けられる演算器とを有する半導体演算処理装置に関する。より特定的には、この発明は、半導体演算処理装置内において演算器間のデータ転送を小占有面積で高速に行なうための構成に関する。
近年の携帯端末機器の普及に伴い、音声および画像のような大量のデータを高速に処理するデジタル信号処理の重要性が高くなってきている。このデジタル信号処理には、一般に、専用の半導体装置としてDSP(デジタル・シグナル・プロセッサ)が用いられることが多い。フィルタ演算などのデータ処理においては、積和演算を繰返す演算処理が多い。したがって、一般に、DSPの構成においては、乗算回路、加算回路および累算用のレジスタが設けられる。このような専用のDSPを用いると、積和演算を1マシンサイクルで実行することが可能となり、高速演算処理が可能となる。
また、このような大量のデータに対し同じ演算を実行する画像処理などの用途において、SIMD(シングル・インストラクション・ストリーム・マルチプル・データ・ストリーム:Single Instruction Stream Multiple Data Stream)型プロセッサが用いられることも多い。このSIMD型プロセッサにおいては、複数のプロセッサエレメントが設けられ、これらの複数のプロセッサエレメントにおいて、同一の演算処理をそれぞれ異なるデータに対して実行する。したがって複数のプロセッサエレメントが並行して演算処理を実行するため、大量のデータを高速で処理することが可能である。
このようなSIMD型プロセッサにおいて、各プロセッサエレメントに対して、異なるデータを高速で格納することを図る構成が、特許文献1(特開2002−207707号公報に示されている。この特許文献1においては、グローバルプロセッサから、複数のデータバスを各プロセッサエレメントに対して配置する。各プロセッサエレメントは、これらの複数のデータバスのうちのどれかのデータバスを選択する信号を、プロセッサエレメント番号に従って形成し、対応のデータバスのデータを選択して、プロセッサエレメント内のAレジスタに格納する。特許文献1においては、画像処理におけるディザ処理において、各画素列に対応するしきい値を各列ごとにプロセッサエレメント内に格納して、ディザ処理におけるしきい値との比較動作を高速化することを図る。
また、特許文献2(特開2001−84229号公報)においては、異なるデータビット幅に柔軟に対応してデータ処理を実行することを目的とするSIMD型プロセッサが開示されている。この特許文献2に示される構成においては、プロセッサエレメントをアドレス指定可能とし、このアドレス指定されたプロセッサエレメントの内部レジスタとデータ転送バスとの間でデータを転送する。また、このプロセッサエレメントは、レジスタファイルのレジスタと、演算器アレイの演算器とを有し、このレジスタファイル内のレジスタの数を、処理データビット幅に応じて調整することにより、処理データのビット幅変更に対応することを図る。
また、特許文献3(特開2002−207706号公報)は、少ない回路規模で、総和値演算およびピーク検出を行なうことを目的とするSIMD型プロセッサを開示する。この特許文献3に示される構成においては、プロセッサエレメントの演算器それぞれに対応して、マルチプレクサを設け、このマルチプレクサにより、レジスタファイルの対応のレジスタおよび対応のレジスタの7隣接列のいずれかを選択する。このマルチプレクサによ
り、演算データおよび演算結果データをプロセッサエレメント間で転送する。
この特許文献3においては、また、演算器と、共通データバスとを設け、この共通のデータバスを、所定数単位で分割し、各分割されたグループ内のプロセッサエレメントにおいて分割共通データバスを介してデータを転送して、総和値算出およびピーク値算出などの演算を高速に実行することを図る。
また、特許文献4(特開2001−202351号公報)は、画像データ処理を、高速に実行することを目的とする構成を開示する。この特許文献4に示される構成においては、プロセッサエレメントをアドレス指定可能とし、グローバルプロセッサからアドレス信号に従ってプロセッサエレメントをアドレス指定してこのプロセッサエレメント内の演算レジスタにデータを格納する。必要なプロセッサエレメントに対してのみデータ転送を行うことによりデータ転送時間を短縮することを図る。
また、特許文献5(特開2003−186854号公報)は、プロセッサエレメントの内部データを外部からモニタすることを目的とするSIMD型プロセッサを開示する。この特許文献5に示される構成においては、各プロセッサエレメントにおいて演算レジスタの内容を複写して格納するミラーレジスタを設け、プロセッサエレメントをアドレス指定することにより、このミラーレジスタに対し外部からアクセス可能とする。
特開2002−207707号公報 特開2001−84229号公報 特開2002−207706号公報 特開2001−202351号公報 特開2003−186854号公報
処理対象のデータ量が非常に多い場合には、専用のDSPを用いても、性能を飛躍的に向上させることは困難である。例えば、演算対象のデータが1万組ある場合、1つ1つのデータの組に対する演算を1マシンサイクルで実行することが出来たとしても、最低でも1万マシンサイクル必要となる。また、DSPを利用する場合、処理性能は動作周波数に大きく依存するため、高速処理を優先する場合、消費電力が増大する。
特許文献1に示されるSIMD型プロセッサにおいては、グローバルプロセッサから延びる複数のデータバスを設け、各プロセッサエレメント内において、そのプロセッサエレメント番号に応じてデータバスを選択して、選択データバスのデータをレジスタに格納する。これにより、画素アレイの画素位置に応じたしきい値データを対応のプロセッサエレメントに格納して、所定サイズの画素マトリクスに対してフィルタ処理を行う。グローバルプロセッサからのデータを、並行してプロセッサエレメントに転送して格納して、データ転送サイクル数を低減することを図る。
この特許文献1において、さらに、演算処理時において、プロセッサエレメントの演算データを、異なるプロセッサエレメント間で転送する場合、マルチプレクサを用いて、所定の範囲のプロセッサエレメント(±3隣接プロセッサエレメント)の間でデータ転送を行なう構成が示されている。このマルチプレクサにより、各プロセッサエレメントにおいて、異なる列のプロセッサエレメントのレジスタのデータを選択して演算処理を行なう。データ転送時各マルチプレクサにおいて選択経路を同じとするために、各プロセッサエレメントのレジスタファイルのレジスタの出力線が結合される共通データバス線が異なる(1つの列のレジスタを、7隣接演算器で択一的に使用するために、隣接列のレジスタが異なるバス線に接続される)。このレジスタファイルの出力信号線と共通データバスの接続
に応じて、各マルチプレクサと共通データバスのバス線との接続が変更される。このため、各プロセッサエレメント内においてマルチプレクサに対する配線が複雑となり、配線が錯綜するという問題が生じる。また、ある列のレジスタのデータを転送することの出来る範囲は、固定されており、任意のプロセッサエレメント間でのデータ転送を行う構成は示されていない。
特許文献2においては、データ転送を高速に行なうために、各プロセッサエレメントに選択信号を与え、選択されたプロセッサエレメントに対してデータの書込/読出を行なう。この特許文献2においても、レジスタファイル内のレジスタに対するデータの書込/読出を行なう構成に加えて、異なる列のプロセッサエレメント間のデータ転送時には、特許文献1と同様にマルチプレクサが用いられる。従って、内部の配線が錯綜するという問題が生じ、また、任意のプロセッサエレメント間でデータを転送することは困難である。
特許文献3に示される構成においては、プロセッサエレメントに共通に設けられるデータバスを複数のセグメントに分割し、各分割データバスを介して演算器間でデータを転送する。しかしながら、この場合、1つのプロセッサエレメントから別のプロセッサエレメントに対するデータ転送が、各分割データバスにおいて実行されて、順次加算などの処理が行なわれており、各プロセッサエレメントが、有効な演算処理を各サイクルにおいて行なわれてはいない。従って、総和値演算またはピーク値演算などの処理においては適用することができるものの、通常のコピー操作などのデータ転送を行なって演算処理を行なう構成に対しては適用することは、困難である。また、この特許文献3においても、分割データバスのデータ線の選択は、マルチプレクサを用いて行なわれており、特許文献1および2と同様に、内部配線が錯綜するという問題が生じる。
また、特許文献4に示される構成においては、プロセッサエレメントをアドレス指定して、グローバルプロセッサのレジスタのデータを、選択されたプロセッサエレメント内のレジスタに転送している。しかしながら、この特許文献4においても、プロセッサエレメント間のデータ転送はマルチプレクサを用いて行なわれており、特許文献1から3と同良いうに内部配線が錯綜し、またデータの転送範囲が制限される。
特許文献5に示される構成においては、単に、レジスタファイル内にミラーレジスタを設けて、外部からこのミラーレジスタのデータを、演算処理時においてもモニタすることを図っている。プロセッサエレメント間のデータ転送は、先の特許文献1から4と同様、マルチプレクサを用いて実行されているだけであり、内部配線が錯綜し、また、データ転送範囲が制限される。
一般に、演算器が複数個設けられている並列演算器において、任意の演算器間でデータ転送を行なう場合、転送距離に応じて、各プロセッサエレメントの演算器にデータ転送配線を複数配置する必要があり、配線面積が増大する。この結果、上述の特許文献1から5に示されるように、レジスタファイルと演算器アレイとの間の配線占有面積が大きくなり、また配線レイアウトが錯綜するという問題が生じる。
それゆえ、この発明の目的は、任意の演算器間でデータを高速に転送することのできる小占有面積の転送回路を備える半導体演算処理装置を提供することである。
この発明の特定的な目的は、メモリアレイが複数のエントリに分割され、各エントリに対応して演算器が設けられる半導体演算処理装置において、この演算器間またはエントリ間でのデータ転送を配線面積の増大を伴うことなく高速で行なうことの出来る転送回路を実現することである。
この発明に係る半導体演算処理装置は、各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイと、これらのエントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器と、複数のエントリ間でデータを転送する転送回路を含む。この転送回路は、エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備える。各転送配線経路は、対応のエントリのデータを受けて出力するデータ出力部と、異なる複数の別のエントリに結合される複数のデータ送出部とを有する。転送データが、各転送配線経路においてデータ出力部からデータ送出部に向かって転送される。
エントリ間でのデータ転送に、転送経路用いる。この転送経路は、各々が、対応のエントリのデータと複数の別のエントリへのデータを転送するデータ送出部とを有する。したがって、データ送出部を各転送経路において選択することにより、複数のエントリ間において並行してデータ転送を行なうことができ、高速データ転送を実現することができる。
また、各転送経路においてデータ出力部とデータ送出部とを個々別々に設けることにより、マルチプレクサを用いてデータ転送経路を設定する構成に比べて配線レイアウトが簡略化される。
また、この転送経路を介してエントリ間で順次データを転送することにより、任意の距離はなれたエントリ間でのデータ転送を実現することが出来る。
[全体の構成]
図1は、この発明に従う半導体演算処理装置が適用される処理システムの全体構成を概略的に示す図である。図1において、信号処理システム1は、各種処理を実行する演算機能を実現するシステムLSI2と、システムLSI2と外部システムバス3を介して接続される外部メモリとを含む。この外部メモリは、大容量メモリ4と、高速メモリ5と、システム立上げ時の命令などの固定情報を格納する読出専用メモリ(リード・オンリー・メモリ:ROM)6を含む。大容量メモリ4は、たとえばクロック同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)で構成され、高速メモリ5は、たとえばスタティック・ランダム・アクセス・メモリ(SRAM)で構成される。
システムLSI2は、内部システムバス7に並列に結合される基本演算ブロックFB1−FBhと、これらの基本演算ブロックFB1−FBhの処理動作を制御するホストCPU8と、信号処理システム1の外部からの入力信号INを内部処理用データに変換する入力ポート9と、内部システムバス7から与えられた内部出力データを受けて、システム外部への出力データOUTを生成する出力ポート10を含む。これらの入力ポート9および出力ポート10は、たとえばライブラリ化されたIP(インテレクチャル・プロパティ)ブロックで構成され、データ/信号の入出力に必要な機能を実現する。
システムLSI2は、さらに、基本演算ブロックFB1−FBhからの割込要求を受付け、ホストCPU8に対して割込を通知する割込コントローラ11と、ホストCPU8の各処理に必要な制御動作を行なうCPU周辺12と、基本演算ブロックFB1−FBhからの転送要求に従って外部メモリに対するデータ転送を行なうDMA(ダイレクト・メモリ・アクセス)コントローラ13と、ホストCPU8またはDMAコントローラ13からの指示に従って、外部システムバス3に接続されるメモリ4−6に対するアクセス制御を行なう外部バスコントローラ14と、ホストCPU8のデータ処理を補助する専用ロジック15とを含む。
CPU周辺12は、タイマおよびシリアルIO(入出力)などのホストCPU8におけるプログラムおよびデバッグの用途に必要な機能を備える。専用ロジック15は、たとえばIPブロックで構成され、既存の機能ブロックを用いて必要な処理機能を実現する。これらの機能ブロック9−15は、内部システムバス7に接続される。また、DMAコントローラ13には、基本演算ブロックFB1−FBhからのDMA要求信号が与えられる。
基本演算ブロックFB1−FBhは、同一構成を有するため、図1においては、基本演算ブロックFB1の構成を代表的に示す。
基本演算ブロックFB1は、実際のデータの演算処理を行なう主演算回路20と、この主演算回路20における演算処理を指定するマイクロ命令を格納するマイクロ命令メモリ21と、マイクロ命令メモリ21からのマイクロ命令に従って主演算回路20の演算処理を制御するコントローラ22と、コントローラ22の中間処理データまたは作業データを格納するワークデータメモリ23と、基本演算ブロックFB1の内部と内部システムバス7との間でデータ/信号の転送を行なうシステムバスインターフェイス(I/F)24とを含む。
主演算回路20は、複数のメモリセルが行列状に配列されかつ複数のエントリに分割されるメモリセルマット30と、メモリセルマット30のエントリに対応して配置され、指定された演算処理を行なう演算器(ALU)31と、演算器31間のデータ転送経路を設定するALU間相互接続用スイッチ回路32を含む。
基本的に、1エントリに多ビットデータの各ビットが格納される。演算器(ALU)31は、対応のエントリからのデータビットをシリアルに受けて演算処理を行ない、その処理結果をメモリセルマット30の指定されたエントリ(たとえば対応のエントリ)にシリアルに格納する。
ALU間相互接続用スイッチ回路32により、演算器31の接続経路が切換えられ、異なったエントリのデータの演算が可能となる。各エントリに異なるデータを格納し、演算器31により並列演算処理を行なうことにより、高速にデータ処理を行なうことができる。
コントローラ22は、マイクロ命令メモリ21に格納されるマイクロ命令に従って、マイクロプログラム方式に従った動作を行なう。このマイクロプログラム動作に必要なワークデータが、ワークデータメモリ23に格納される。
システムバスI/F24により、ホストCPU8またはDMAコントローラ13が、メモリセルマット30、コントローラ22内の制御レジスタ、マイクロ命令メモリ21およびワークデータメモリ23へアクセスすることが可能となる。
基本演算ブロックFB1−FBhには、異なるアドレス領域(CPUアドレス領域)が割付けられる。同様、基本演算ブロックFB1−FBh内のメモリセルマット30、コントローラ22内の制御レジスタ、マイクロ命令メモリ21、およびワークデータメモリ23についても、それぞれ異なるアドレス(CPUアドレス)が割付けられる。したがって、これらの基本演算ブロックFB1−FBhそれぞれにおいて、異なる内容のマイクロ命令を格納することにより、異なる演算処理を並行して実行することができる。また、基本演算ブロックFB1−FBhにおいて、異なるアドレス領域のデータについて同一の演算処理が行なわれるように、マイクロ命令メモリ21に同一の演算内容のマイクロ命令が格納されてもよい。また、マイクロ命令メモリ21においては、マイクロ命令が格納される
ものの、マクロ命令が格納されていても良い。
各割付けられたアドレスに従って、ホストCPU8およびDMAコントローラ13が、アクセス対象の基本演算ブロックFBi(FB1−FBhのいずれか)を識別し、該アクセス対象の基本演算ブロックに対するアクセスを実行する。
図2は、図1に示す基本演算ブロックFB1−FBhそれぞれに含まれる主演算回路20の要部の構成を概略的に示す図である。図2において、メモリセルマット30において、メモリセルMCが行列状に配列される。このメモリセルマットは、m個のエントリERYに分割される。エントリERYがnビットのビット幅を有する。このメモリセルマット30においては、m個のエントリERYに共通にワード線が配設され、各エントリ個々に、ビット線が配設される。基本的に、1つのエントリERYは、この1列(ビット線延在方向)に整列するメモリセルMCで構成される。したがって、エントリERYの数は、メモリセルマットのビット線の数で決定される。
エントリERYそれぞれに対応して、演算器(ALU)31が、演算処理ユニット35において配置される。この演算器31は、加算、論理積、一致検出(EXOR)、および反転(NOT)などの演算を実行することができる。
エントリERYと対応の演算器31との間でのデータのロード(メモリセルマット30から演算処理ユニット35へのデータの転送)およびストア(演算処理ユニット35からメモリセルマット30へのデータの転送および格納)を行なって演算処理を実行する。エントリERYには、多ビットデータの各ビットが格納される。
演算器ユニット35に対してALU相互接続用スイッチ回路32が配置される。このALU相互接続用スイッチ回路32により演算器31間のデータ転送を実現する。
演算器31は、ビットシリアルな態様(多ビットデータワードをビット単位で逐次処理する態様)で演算処理を実行する。演算処理ユニット35においては、データワードについてビットシリアル態様でかつ複数のエントリERYのデータが並行して処理されるエントリパラレルな態様でデータの演算処理が実行される。
このエントリERYのビット幅を変更することにより、データワードの語構成が異なる場合においても、演算サイクル数(アドレスポインタの範囲)を変更するだけで、データ処理を実行することができる。また、エントリ数mを多くすることにより、大量のデータを一括して演算処理することができる。
メモリセルMCは、たとえばCMOS(相補金属‐絶縁膜‐半導体)構成のSRAMセルで構成され、高速でデータの書込/読出を行なう。また、メモリセルMCとして、SRAMセルを利用することにより、メモリセルマット30において記憶データのリフレッシュを行なう必要がなく、動作制御が容易となり、演算処理を高速で実行することができる。
主演算回路20において演算を行なう場合には、基本的に、先ず、エントリERY各々に演算対象のデータを格納する。次いで、格納されたデータのある桁のビットをすべてのエントリERYについて並列に読出して、対応の演算器31へ転送(ロード)する。二項演算の場合には、各エントリERYにおいて、別のデータワードのビットに対しても同様の転送を行なった後、各演算器31において2入力演算を行なう。この演算処理結果は、演算器31から対応のエントリERY内の所定の領域に再書込(ストア)される。
図3は、図2に示す主演算回路20における演算操作の一例を模式的に示す図である。図3において、2ビット幅のデータワードaおよびbの加算を行なって、データワードcを生成する。エントリERYには、演算対象の組をなすデータワードaおよびbがともに格納される。
図3において、第1行目のエントリERYに対する演算器31においては、10B+01Bの加算が行なわれ、2行目のエントリERYに対する演算器31においては、00B+11Bの演算が行なわれる。ここで、末尾の“B”は、2進数を示す。3行目のエントリERYに対する演算器31においては、11B+10Bの演算が行なわれる。同様に、エントリERY各々に格納されたデータワードaおよびbの加算が実行される。
演算は、下位側ビットから順にビットシリアル態様で行なわれる。また、エントリERYにおいてデータワードaの下位ビットa[0]を対応の演算器31へ転送する。次いで、データワードbの下位ビットb[0]を対応の演算器31へ転送する。演算器31においては、これらの与えられた2ビットデータを用いて加算演算を行なう。この加算演算結果a[0]+b[0]は、データワードcの下位ビットc[0]の位置に書込まれる(ストアされる)。すなわち、1行目のエントリERYにおいて、“1”が、ビットc[0]の位置に書込まれる。
この加算処理は、次いで、上位ビットa[1]およびb[1]に対しても行ない、その演算結果a[1]+b[1]がビットc[1]の位置に書込まれる。
加算演算においては、桁上がりが生じる可能性がある。この桁上がり(キャリー)の値が、ビットc[2]の位置に書込まれる。これにより、データワードaおよびbの加算が、すべてのエントリERYにおいて完了し、その結果が、データcとして各エントリERYにおいて格納される。エントリとして、たとえば1024エントリを準備した場合、1024組のデータの加算を並列に実行することができる。
図4は、この加算演算処理時における内部タイミングを模式的に示す図である。以下、図4を参照して、加算演算の内部タイミングについて説明する。この加算演算処理においては、演算器31に含まれる2ビット加算器(ADD)が利用される。
図4において、“Read”は、メモリセルマット30から演算対象のデータビットを読出して対応の演算器に転送する動作(ロード)または動作命令を示し、“Write”は、演算器31の演算結果データを対応のエントリERYの対応のビット位置に書込む動作(ストア)または動作命令を示す。
マシンサイクルkにおいて、データビットa[i]がメモリセルマット30から読出され、次のマシンサイクル(k+1)で、次の演算対象のデータビットb[i]が読出され(Read)、演算器31の加算器(ADD)にそれぞれ与えられる。
マシンサイクル(k+2)において、演算器31の加算器(ADD)において、読出されたデータビットa[i]およびb[i]の加算処理が行なわれる。マシンサイクル(k+3)において、この加算結果c[i]が、対応のエントリの対応のビット位置に書込まれる。
次のマシンサイクル(k+4)および(k+5)において、次の演算対象のデータビットa[i+1]およびb[i+1]が読出され、演算器31の加算器(ADD)へ転送される。マシンサイクル(k+6)において、演算器31により加算処理が行なわれ、マシンサイクル(k+7)において、加算結果がビット位置c[i+1]へ格納される。
メモリセルマット30と演算器31の間のデータビットの転送に、それぞれ1マシンサイクルが必要とされ、演算器31において1マシンサイクルの演算サイクルが必要とされる。したがって、1ビットデータの加算および加算結果の格納を行なうために、4マシンサイクルが必要となる。メモリセルマット30を、複数のエントリERYに分割し、各エントリに演算対象データの組をそれぞれ格納し、対応の演算器31においてビットシリアル態様で演算処理を行なう方式の特徴は、1つ1つのデータ演算には、比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより高速データ処理を実現することができるということである。
たとえば、演算対象のデータワードのビット幅がNの場合、各エントリの演算には、4・Nマシンサイクルが必要となる。演算対象のデータワードのビット幅は、8ビットから64ビット程度である。エントリ数mを、たとえば1024と大きくすることにより、並列演算処理時に、たとえば8ビットデータの場合、32マシンサイクルで1024個の演算結果を得ることができ、1024組のデータをシーケンシャルに処理する場合に比べて大幅に処理時間を短縮することができる。
また、ビットシリアル態様で演算処理を行なっており、処理されるデータのビット幅は固定されないため、種々のデータ構成を有する種々のアプリケーションに容易に適用することができる。
図5は、図1に示すコントローラ22の制御態様を概略的に示す図である。このコントローラ22に対応して、レジスタ群40が設けられる。このレジスタ群40においては、ポインタレジスタr0−r3が設けられる。演算対象のデータのメモリセルマット30内のアドレスが、これらのポインタレジスタr0−r3に格納される。コントローラ22は、このポインタレジスタr0−r3に格納されるポインタに従って、主演算回路におけるエントリまたはエントリ内位置を指定するアドレスを生成して、メモリセルマット(30)と演算処理ユニット(35)の間のデータ転送(ロード/ストア)を制御する。また、このコントローラ22は、ポインタレジスタr0−r3のポインタに従って、マイクロ命令メモリ21から転送命令が与えられたとき、この演算処理ユニット(35)における演算器(ALU)31間の接続指定情報を設定する。
[演算器の構成1]
図6は、図1に示す演算器(31)の構成および1つの演算器に関連する部分の構成を概略的に示す図である。図6において、演算器(ALU)31は、指定された演算処理を行なう算術演算論理回路50と、対応のエントリから読出されたデータまたは算術演算論理回路50の演算処理結果データまたは対応のエントリへ転送するデータを一時的に格納するXレジスタ54と、加演算処理時のキャリーまたはボローを格納するCレジスタ56と、この算術演算論理回路50の演算処理の禁止を指定するマスクデータを格納するMレジスタ58を含む。
エントリと演算器の間には、センスアンプ62およびライトドライバ60が設けられる。これらのセンスアンプ62およびライトドライバ60は、対応のエントリのビット線対BLPに結合される。センスアンプ62は、対応のエントリのメモリセルから読出されるデータを増幅し、その増幅データを内部データ転送線200を介してXレジスタ54へ転送する。ライトドライバ60は、Xレジスタ54に格納されたデータをバッファ処理して、対応のエントリのメモリセルへ対応のビット線対BLPを介して書込む。
この算術演算論理回路50は、加算(ADD)、論理積(AND)、論理和(OR)、排他的論理和(EXOR)、反転(NOT)等の演算を実行することができ、その演算内
容が、先の図5に示すコントローラ22からの制御信号(ALU制御)により設定される。Mレジスタ58に格納されるマスクデータにより、この演算器31における演算処理動作を選択的にイネーブル/ディスエーブルする。この演算マスク機能を利用することにより、仮に全エントリが利用されない場合においても、有効エントリに対してのみ演算を実行して、正確な処理を行なうことができる。また、不必要な演算を停止させることにより、消費電流を低減することができる。
Xレジスタ50は、また、ALU間相互接続スイッチ回路32に含まれるALU間接続回路65を介して他の演算器(ALU)に接続される。このALU間接続回路65の構成については、後に詳細に説明する。このALU間接続回路65の転送機能により、メモリマット内のさまざまな物理位置に格納されているデータに対する演算を実現することができ、演算の自由度を高くすることができる。
図7は、ALU命令のうち、エントリ間のデータ移動(Move)を行なう命令を一覧にして示す図である。
命令“ecm.mv.n♯n”は、データ移動命令(Move)における移動量を数値♯nで規定する。したがってこの命令で、Xレジスタ間のデータ転送において、エントリj+nのXレジスタの格納値が、エントリjのXレジスタに格納される。一例として、エントリ移動量nは、0から128の範囲の整数値を取り、最大128ビット離れた位置のエントリ間でデータ移動を行なうことができる。
命令“ecm.mv.r rx”は、ポインタレジスタrxに格納された値だけエントリ間をデータ移動させる命令である。この命令が実行されると、エントリj+rxのXレジスタの格納値が、エントリjのXレジスタに転送される。
このALU命令に従って、ALU間接続回路65における接続経路が設定され、各エントリ対応に設けられる演算器において、Xレジスタを用いて並列に、データ転送が実行される。
[演算の構成2]
図8は、この発明において利用される演算器31の別の構成を概略的に示す図である。この図8に示す演算器31の構成に対しては、メモリセルマットにおいて1つのエントリERYが、偶数アドレスのデータビットA[2i]を格納する偶数エントリERYeと、奇数アドレスのデータTビットA[2i+1]を格納する奇数エントリERYoとで構成される。偶数エントリERYeおよび奇数エントリERYoの同じアドレスのデータビットに対し、並列に演算処理を実行することにより、処理の高速化を図る。
演算器(ALU)31においては、演算処理を行なうための縦続される全加算器210および211が、演算処理部として設けられる。全加算器210および211は、それぞれ入力AおよびBに与えられたデータビットを加算し、サム出力Sおよびキャリー出力Coに演算結果を出力する。また、全加算器210は、Cレジスタ56に格納されるデータをキャリー入力CInに受ける。1ビット動作時には、このCレジスタ56のキャリーが、または全加算器211のキャリー入力Cinに与えられる。2ビット並列に処理する2ビット動作時においては、全加算器210のキャリー出力Coが、全加算器211のキャリー入力Cinに伝達される。この全加算器210および211の接続を切り替えることにより、2ビット並列演算および1ビット逐次処理を実行することが出来る。
この演算器31は、対応のエントリのメモリセルからのロードデータの一時保存を行ないかつ演算途中の結果の一時保存を行なうXレジスタ54が設けられる。二項演算処理時
においては、Xレジスタ54に第1の演算データビットが格納されたとき、次の(別の)演算データビットが、この演算器31に直接対応のメモリセルマットのエントリから与えられて演算処理が実行される。このXレジスタ50は、ALU間接続用スイッチ回路を介して他の演算器(ALU)と接続され、異なる演算器間でデータ転送を行なうことができる。
演算器(ALU)31は、さらに、2ビットデータを並列に格納するためのXHレジスタ220およびXLレジスタ221と、Dレジスタ222の格納値に従って、レジスタ54、220および221のデータの組の一方の2ビットを選択するセレクタ(SEL)227と、Fレジスタ205の格納ビットに従ってセレクタ227の選択した2ビットに対する反転/非反転操作を行なう選択反転回路217と、Nレジスタ207とVレジスタ208の格納データに従って、全加算器210および211の出力Sからのデータビットを選択的に出力するゲート223および224を含む。
選択反転回路217の2ビット出力は、全加算器210および211の入力Aへそれぞれ与えられる。XHレジスタ220およびXLレジスタ221は、それぞれ内部データ線226および228を介して奇数エントリERYoの奇数アドレスビットおよび偶数エントリERYeの偶数アドレスビットの転送を行なう。Xレジスタ54は、2ビット/1ビット動作に従って、スイッチ回路SWaおよびSWbにより、内部データ線226および228の一方に選択的に接続される。
Nレジスタ207は、定数値を格納する。Vレジスタ208は、ゲート223および224の転送経路の遮断/接続を制御するマスクビットを格納する。
全加算器210の入力Bは、内部データ線226に結合され、全加算器210のサム出力Sを受けるゲート223の出力が、また内部データ線226に接続される。全加算器211の入力Bは、スイッチ回路SWcおよびSWdにより、内部データ線226および228の一方に選択的に接続される。全加算器211のサム出力Sからのデータビットゲート224に与えられる。ゲート224の出力は、スイッチ回路SWeおよびSWfに従って、内部データ線226および228の一方に選択的に接続される。これらのスイッチ回路SWa−SWfにより、2ビット並列除算処理を行なう場合の1ビット単位のビットシリアル処理を実行する。
ゲート223および224は、Vレジスタ208およびNレジスタ207の格納値がともに“1”のときに、指定された演算処理を実行し(データ転送動作を行ない)、それ以外においては、ハイインピーダンスを出力する(出力ハイインピーダンス状態となる)。
全加算器211のキャリー入力Cinおよび全加算器210のキャリー出力Coに対して設けられるスイッチ225は、1ビット単位での演算処理を行なう場合に、全加算器210のキャリー出力Coを切離し、全加算器211のキャリー入力CinをCレジスタ56に接続する。
この演算器31においては、Xレジスタ54、XHレジスタ220およびXLレジスタ221が、他のエントリの対応のレジスタとデータ転送を行なう機能を有する。
この変更例2の構成を利用する場合、1つの演算器が2つのエントリに対応して配置される。したがって、1ビット逐次処理に加えて、2ビット並列演算を行なって高速処理を実行することができ、また演算処理ユニットにおいて、余裕を持って演算器31を配置することができる。
図9は、この図8に示す演算器(31)の2ビット演算時におけるALU31の内部の接続を概略的に示す図である。この2ビット演算時、特に2次のブースアルゴリズムに従って乗算を行なう場合、Xレジスタ54は、スイッチ回路SWaを介して内部データ線226に結合される。スイッチ回路SWbは、XLレジスタ54と内部データ線228を切離す状態に設定される。
スイッチ回路SWbが、全加算器211の入力Bと内部データ線226とを切離す。スイッチ225は、全加算器210のキャリー出力Coと全加算器210のキャリー入力Cinとを分離する。Cレジスタ56が、スイッチ225を介して全加算器210のキャリー入力Cinに結合される。ゲート回路224の出力はスイッチ回路SWfにより内部データ線228に結合される。
2ビット演算時においては、全加算器210および211が並列に動作し、選択反転回路217から与えられるデータビットをそれぞれ内部転送線226および228から転送されるデータビットと加算し、それぞれの加算結果をゲート223および224を介して内部データ線226および228へ出力する。したがって、加算結果は、ビットAj[px]およびAj[px+1]について並列に算出する。ここで、pxおよびpx+1は、ポインタレジスタのポインタ値であり、2ビット並列動作時には、メモリセルマット内において同一のワード線アドレスビットである。
メモリセルマットにおいては、偶数エントリERYeおよび奇数エントリERYoにそれぞれ、偶数アドレスA[2i]および奇数アドレスA[2i+1]のデータビットが格納される。ポインタレジスタrxのポインタにより、これらの偶数エントリERYeおよび奇数エントリERYoの同一ビット位置のメモリセルが指定される。したがって、プログラム実行時においてポインタレジスタrxのカウント値が2増分されることにより、奇数エントリERYoおよび偶数エントリERYeにおいて1ビットそのビット位置が上位方向にシフトされる。このポインタレジスタrxのポインタに基づいてメモリセルマットのワード線を選択するアドレスが生成される場合、ワード線の切換により、ポインタレジスタrxのポインタを2増分する構成が実現される。
演算器31において2つの全加算器210および211を設けて2ビット加算を行なうことにより、たとえばブースアルゴリズムに従う乗算操作時、2ビット単位での部分積生成および前の部分積との加算を行なうことができる。また、加算および減算も、2ビット単位で実行することができ、また1ビット単位で演算を実行することもできる。除算は、被除数のビット位置を1ずつ右シフトして減算を行なう必要があり、1ビット単位で演算を実行する。この1ビット演算を実現するために、スイッチ225が設けられる。
図10は、1ビット演算操作時における演算器31の内部接続の一例を概略的に示す図である。1ビット演算の接続時においては、Xレジスタ54が、内部データ線226および228にスイッチ回路SWaおよびSWbを介してそれぞれ接続される。Xレジスタ54の出力が、セレクタ227によりDレジスタ220の格納データに従って選択される。スイッチ回路SWaおよびSWbの接続は、ポインタpx(ポインタレジスタrxのポインタ)により決定される。
Fレジスタ205の格納ビット値に従って、選択反転回路217により、加算/減算が実現される。この選択反転器217の出力は、全加算器211の入力Aに与えられる。全加算器210の入力Bは、内部データ線226に接続される。全加算器210のキャリー出力Coが、スイッチ回路225により全加算器210のキャリー入力Cinと分離される。全加算器210のサム出力Sが、ゲート223を介して内部データ線226に結合される。全加算器210は、加算演算には用いられない。全加算器211のキャリー入力C
inが、Cレジスタ56にスイッチ回路225を介して結合される。全加算器の入力Bは、ポインタpxによりスイッチ回路SWcおよびSWdを介して内部データ線226または228に選択的に結合される。また、全加算器211のサム出力Sが、ゲート224およびスイッチ回路SWeおよびSWfを介して選択的に内部データ線226および228に接続される。
減算演算を、2の補数の加算演算により行なう場合には、Cレジスタ56に、初期値として“1”が格納され、Xレジスタ54からのビット値が選択反転回路217により反転される。加算演算を行なう場合には、Cレジスタ56は、初期状態として“0”にクリアされる。
メモリセルマット内のエントリにおいて、内部データ線226および227に接続される領域には、連続アドレスのデータビットA[2i]およびA[2i+1]が格納され、内部データ線226および228を介してXレジスタ54に2ビットデータを並列に転送する。ポインタpx[0]の値を逐次切換えることにより、アドレスA[2i]のエントリおよびアドレスA[2i+1]のエントリのデータビットについて、ビットシリアル態様で、加算を行なうことができる。
図11は、1ビット動作時のエントリ間データ移動(move)を行なう命令を一覧にして示す図である。このエントリ間(ALU間)データ移動時には、ポインタレジスタrnが用いられる。エントリ間データ移動用ポインタレジスタrnの候補レジスタとして、前述のポインタレジスタr0−r3が設けられる。
命令“ecm.mv.n♯n”は、定数n離れたエントリa+nのXレジスタの格納値を、エントリjのXレジスタに転送することを示す命令である。
命令“ecm.mv.r rn”は、レジスタrnの格納値分離れたエントリj+rnのXレジスタの値が、エントリjのXレジスタに転送される操作を示す命令である。
命令“ecm.swp”は、隣接エントリj+1およびjのXレジスタの格納値を交換する操作を指令する命令である。
図12は、2ビット動作時の、演算器におけるエントリ間データ移動(move)の操作を指令する命令を一覧にして示す図である。この2ビット操作時においては、命令記述子“ecm2”が、命令記述子“ecm”に代えて用いられる。この命令記述子“ecm2”が指定されると、2ビット単位での演算処理が指定され、XHレジスタおよびXLレジスタ間での並列のデータ転送が行なわれる。各レジスタ間の転送内容の指定には、先の1ビット動作時と同じ命令記述子“mv.n♯n”、“mv.r rn”、および“swp”が用いられる。
[実施の形態1]
図13は、この発明の実施の形態1に従うALU間相互接続スイッチ回路の配線レイアウトを概略的に示す図である。図13において、データの移動量として、±1、±2、および±4の移動量の組を備えるエントリ間通信配線の配線レイアウトを示す。
図13において、エントリn+13からエントリn−13を示す。このデータ転送配線300は、それぞれが対応のエントリからのデータを受けて出力する出力部305と、転送先のエントリへのデータの送出部XP1、XP2およびXP4、XN1、XN2およびXN4を含む。送出部XP1、XP2およびXP4は、それぞれ、+1、+2および+4離れたエントリに対するデータを転送する送出部であり、送出部XN1、XN2およびXN4は、それぞれ−1、−2および−4離れたエントリへデータを転送する送出部である
。従って、1つのデータ転送配線300は、9エントリにわたって延在して配置される。
このデータ転送配線300は、エントリと交差する方向(第2の方向)において1列に整列して配置され、かつエントリの延在方向(第1の方向)においては、データ出力部305が1エントリずれるようにアレイ状に配置される。このデータ転送配線300は、最遠のデータ送出部が、±4エントリ離れたエントリに対応する位置であり、自身を含んで9エントリごとに、データ転送配線300が、第2の方向に整列して配置される。
この各エントリからのデータを受けて出力するデータ出力部および転送先のエントリにデータを与えるデータ送出部を別々に設けることにより、1つのデータ転送配線300において複数のデータ送出部を設けることにより、1つの配線で複数種類のエントリ間で他通信を実現することが出来る。また、各エントリからのデータの出力部を各転送配線300により、1エントリ、第1の方向においてずらせて配置することにより、効率的に、データ転送路を配線することができる。すなわち、図13に示すように、9エントリにわたって傾斜を有する対辺を有する菱形状の平行四辺形320を第2の方向に順次繰返し配置することにより、配線レイアウトを低減して効率的に、エントリ間通信配線を配置配線することができる。
上述のように、データの転送量に応じて配線を個々に配置するのではなく、1つのデータ転送配線300において、複数のデータ移動量の組を実現し、各エントリ対応の演算器において、選択的に送出部からの信号を取込むことにより、エントリそれぞれにおいて、並列にデータの転送を行なうことができ、また、配線レイアウト面積を低減することができる。また、このエントリ間データ移動量の組を複数個設けることにより、任意のエントリ間移動を、比較的少ないサイクル数で実現することができる。
たとえば、データにおいて、±4エントリ間の移動を、1サイクルで実現する場合には、この送出部XP4およびXN4を選択的に利用する。この場合、図14に示すようなサイクリックなデータ移動が実現される。ただし、図14においては、2048エントリがメモリセルマットにおいて設けられるとしている。
例えばエントリ0のデータを+4エントリ移動させると、エントリ2044に大使て設けられるXレジスタに転送される。ここで、+移動は、エントリ番号の小さいエントリにデータを転送する方向に設定している。また、エントリ2047のデータを‐4エントリ移動させると、エントリ3のXレジスタに転送される。
したがって、1隣接エントリ間のデータ転送と同様に、データ転送配線300を用いて、4エントリ離れたエントリへのデータ転送を1マシンサイクルで実現することができる。したがって、たとえば3エントリ離れた位置へのデータ転送時には、2エントリ移動および1エントリ移動を、シフトレジスタを利用して順次データを転送する場合と同様にして、行なうことにより、2サイクルで、データ転送を実現することができる。また、8エントリ離れたエントリへのデータ転送時には、4エントリ移動を2回繰返すことにより、8エントリ間移動が実現される。このシフトレジスタ態様のデータ転送を繰返すことにより、任意の距離(エントリ数)離れたエントリ間でのデータ通信が実現される。
配線レイアウト面積の余裕に応じて、1本のデータ転送配線300の実現するデータ移動量の組をより多く設けることにより、任意のエントリ間データ移動を比較的少ないサイクル数で実現することができる。
図15は、このメモリセルマット端部のエントリ0−5および2044−2047に対するデータ転送配線300の配線レイアウトを概略的に示す図である。このエントリ0−
3においては、そのデータ出力端部305から、+1、+2および+4のデータシフト転送を行なう場合、エントリ2045‐2047方向へ、データをシフトする必要がある。したがって、この場合、プラスシフト用配線330pを用いて、各データ転送配線300の転送経路を、エントリ端部から他方端へ配線する。これにより、エントリ0ないし3のデータ出力部305に対し、それぞれ、プラス方向のシフト用送出部XP1、XP2およびXP4をそれぞれ配置することができる。
一方、メモリセルマットの他方端のエントリ2045−2047に対して設けられるデータ転送配線300においては、マイナス方向のデータ転送時、最初のエントリ0に戻って、データを転送する必要がある。このため、マイナスシフト用の配線330nをメモリセルマットの他方端から一方端に配設し、各データ転送配線300のマイナス方向のデータシフトを実現する。これにより、エントリ2045−2047に対して設けられるデータ出力部305に対し、各マイナス方向のシフト用送出XN1、XN2およびXN4を、それぞれ配置することができ、各データ転送配線300において、±1、±2、および±4のデータ転送シフトを実現することができる。
なお、このデータシフト用の配線330pおよび330nは、転送経路300を構成する配線と別の配線層の配線で形成されてもよい。また、このシフト用配線330nおよび330pにより接続される送出部XP1、XP2、およびXP4およびXN1、XN2およびXN4は、それぞれ、データ転送配線300の平行四辺形領域の底部の空き領域(三角形状の領域)に配設されてもよい。
いずれの場合においても、このエントリ0ないし2047において、リング状にデータを移動させることができ、任意の方向に向かって、任意のデータエントリ間データ移動を実現することができる。
図16は、図6に示すALU間接続回路65の構成を概略的に示す図である。ALU間接続回路65において、演算器31のXレジスタ54、XHレジスタ220およびXLレジスタ221が、それぞれ、nビット幅の転送配線束340a、340hおよび340lにそれぞれ結合される。このnビット幅の転送配線束340a、340hおよび340lは、それぞれ、他のエントリのからのデータ転送配線300の束である。これらの転送配線束340a、340hおよび340lは、それぞれ、接続部350a、350hおよび350lを介してXレジスタ54、XHレジスタ220およびXLレジスタ221に結合される。
一方、Xレジスタ54、XHレジスタ220およびXLレジスタ221が、それぞれ、出力ノード305a、305hおよび305lを介してデータ転送配線300a、300hおよび300lに結合される。これらの転送配線300a、300hおよび300lは、それぞれ、最大データ移動量のエントリ部まで延在し、その経路の途中で、他のエントリにもデータを転送する。他のエントリにおいて、この接続部350a、350hおよび350lにより、データ移動量の配線が選択される。
演算器31の構成は、先の図8に示す演算器の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
これらの接続部350a、350hおよび350lにおいて、データ移動量に応じて対応のエントリを選択する必要がある。この対応の他のエントリを選択するために、接続部350a、350hおよび350lそれぞれにおいて、スイッチ回路が設けられる。
図17は、このALU間接続回路65におけるスイッチ回路および関連の部分の構成の
一例を示す図である。1ビットデータ転送時においては、Xレジスタ54を利用する。2ビットデータ転送時にXHレジスタおよびXLレジスタが利用される。他のエントリの演算器のXレジスタ、XHレジスタおよびXLレジスタそれぞれに対して、この図17に示す構成が設けられる。しかしながら、図17においては、図面を簡略化するために、Xレジスタ54に対応する部分の構成のみを代表的に示す。
図17において、ALU間接続回路65は、他のエントリの選択信号ECM_EM_k(k=1、…256)に従って、対応のデータ出力配線ECM_IN_k上の信号に応じた信号を生成するスイッチ回路360と、転送イネーブル信号ECM_ENに従って、このスイッチ回路360の出力信号と対応のエントリから転送されたデータの一方を選択するセレクタ362と、転送イネーブル信号ECM_ENに従って、Xレジスタ54の保持データに従って出力データECM_OUTを生成するトライステートバッファ364を含む。このトライステートバッファ364により、データ転送配線の出力段305(305a,305h,305l)が駆動される。
スイッチ回路360は、他のエントリそれぞれに対応して設けられる選択スイッチゲートPSQ256…PSQ1、NSQ1、…NSQ256を含む。これらの選択スイッチゲートPSQ256−PSQ1,NSQ1−NSQ256が、それぞれ、エントリ選択信号ECM_EN_kに従って対応のデータ転送配線上の出力信号ECM_IN_kを選択して、この対応のデータ転送配線上の入力信号に従って内部ノードNDを駆動する。
これらの選択スイッチングゲートPSQ256−PSQ1、NSQ1−NSQ256は、それぞれ、内部ノードNDと接地ノードの間に直列に接続されるNチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)NQ1およびNQ2を含む。MOSトランジスタNQ1のゲートが、対応の他のエントリからの転送入力信号ECM_IN_kを受け、MOSトランジスタNQ2のゲートに、エントリ選択信号ECM_EN_kを受ける。
したがって、図17に示すスイッチ回路360の構成では、データ転送配線は、最大±256エントリ離れた位置のエントリ間のデータ転送を行なう。このデータ転送配線の途中に設けられる中間の転送量(データ移動量)は、2のべき乗の値で順次設定されてもよい。
スイッチ回路360は、さらに、プリチャージ指示信号/ECM_PRCに従って内部ノードNDを電源電圧レベルにプリチャージするPチャネルMOSトランジスタPQ1と、内部ノードND上の信号を反転するインバータIV1と、インバータIV1の出力信号に従って選択的に導通して、内部ノードNDを電源電圧レベルに駆動するPチャネルMOSトランジスタPQ2と、インバータIV1の出力信号を反転して、このスイッチ回路360の出力信号を生成するインバータIV2を含む。
MOSトランジスタPQ2およびインバータIV1により、いわゆる「ハーフラッチ」が形成される。内部ノードNDは、プリチャージ時、電源電圧レベルにプリチャージされる。選択スイッチゲートPSQkまたはNSQk(k=1−256)は、選択されたときに、内部ノードNDを接地電圧レベルに駆動する。選択スイッチゲートPSQ256−PSQ1、NSQ1−NSQ256を用いて内部ノードNDをいわゆるオープンドレイン方式で駆動する。内部ノードNDがプリチャージ電圧レベルから接地電圧レベル方向へ駆動されるだけであり、データ転送時、高速でデータ転送を行なうことができる。また、各選択スイッチゲートは、2個のトランジスタで構成され、回路のレイアウト面積を低減することができる。
Xレジスタ54は、クロック信号CLKX(内部の演算処理サイクルを決定するクロック)の立上がりに応答してラッチ状態となる。ここで、図18においては、+1シフト動作時の波形を示す。すなわち、エントリ番号iのエントリに対し、エントリ番号(i+1)のエントリのデータが転送され、隣接エントリ間でのデータ転送が行われる。
図18は、図17に示すALU間接続回路の動作を示すタイミング図である。以下、図18を参照して、図17に示すALU間接続回路65の動作について説明する。
クロックサイクル♯1においては、転送動作は行なわれず、転送イネーブル信号ECM_ENはLレベルである。この状態においては、セレクタ362は、対応のエントリからのデータを選択する状態に設定され、また、トライステートバッファ364は、出力ハイインピーダンス状態にある。Xレジスタ54には、データD[i]が格納されている。
クロックサイクル♯2において、転送イネーブル信号ECM_ENが活性状態のHレベルに設定される。応じて、セレクタ362が、スイッチ回路360の出力信号を選択する状態に設定され、また、トライステートバッファ364が、活性化される。これにより、Xレジスタ54に保持されているデータD[i]に従って、転送出力信号ECM_OUTがデータD[i]に対応する状態に設定される。
この転送出力信号ECM_OUTが確定すると、対応のデータ転送配線において出力部からデータが転送され、応じて、各エントリにおいて、個々の転送データ送出部のデータECM_IN_iのデータが確定状態となる。
この転送出力信号の送信時においては、プリチャージ指示信号/ECM_PRCは、Lレベルであり、スイッチ回路360はプリチャージ状態にある(エントリ選択信号ECM_EN_+1は、非活性状態にある)。
クロックサイクル♯2において、クロック信号CLKXの立下がりに従って、プリチャージ指示信号/ECM_PRCがHレベルの非活性状態となり、また、これと並行して、エントリ選択信号ECM_EN_+1が活性化される。このエントリ選択信号ECM_EN_+1の活性化時には、既に、隣接エントリ(i+1)からトライステートバッファ364を介してデータ転送配線に転送された出力データECM_IN_+1が確定状態にある。従って、スイッチ回路360からの出力データが、転送データECM_IN_+1に対応する状態となる。
すなわち、隣接エントリ(i+1)からの転送データECM_IN_+1がHレベルのとき、選択スイッチゲートPSQ1において、MOSトランジスタNQ1およびNQ2がともに導通状態となり、ノードNDが接地電圧レベルに駆動される。この状態においては、インバータIV1の出力信号は、Hレベルであり、MOSトランジスタPQ2はオフ状態にあり、ノードNDはLレベルに維持される。一方、隣接エントリ(i+1)からの転送データECM_IN_+1がLレベルのときには、選択スイッチゲートPSQ1は非導通状態であり、ノードNDは、プリチャージ状態の電圧レベルを維持する。ノードNDがHレベルのときには、インバータIV1の出力信号がLレベルとなり、応じて、MOSトランジスタPQ2がオン状態となり、ノードNDは、電源電圧レベルに維持される。
したがって、クロックサイクル♯2のクロック信号CLKXが立下がる後半サイクルにおいて、スイッチ回路360において、隣接エントリ(i+1)からデータ転送配線ECM_IN_+1を介して転送されるデータD[i+1]に応じたデータを生成して、セレクタ362を介してXレジスタ54へ伝達する。
Xレジスタ54は、次のクロックサイクル♯3において、クロック信号CLKXが立上がるとラッチ状態となり、その保持データが、転送データD[i+1]に応じた状態に設定される。このクロックサイクル♯3において、プリチャージ指示信号/ECM_PRCが再びLレベルの活性状態とされ、スイッチ回路360のインバータIV2からの出力信号が再びHレベルとなる。また、転送イネーブル信号ECM_ENが非活性状態のLレベルとなり、トライステートバッファ364が出力ハイインピーダンス状態となり、また、セレクタ362が対応のエントリからのデータをXレジスタ54へ転送する状態に設定される。
Xレジスタ54は、通常のラッチ回路またはフリップフロップで構成され、クロック信号CLKXが立ち上がると、内部のデータをラッチする状態に設定されれば良い。クロック信号CLKXの立ち上がり時において、スイッチ回路360が、プリチャージ状態とされ、その出力信号が初期化されても、Xレジスタ54には、このスイッチ回路360からの初期化信号の影響を受けることなく、確実に、転送データがラッチされる。
この図18に示すように、転送サイクル♯2において、エントリiからのデータD[i]を対応のデータ出力部から送信データECM_Outとしてデータ転送配線を介して転送し、次のクロックサイクル♯3において、隣接エントリから転送されたデータD[i+1]をXレジスタ54に保持することができる。
なお、このエントリ間のデータ移動量は、隣接エントリ間のデータ移動に限定されず、1回の転送動作により、最大256のエントリ間のデータ移動を行なうことができる。
エントリ間のデータ転送移動量が、データ転送配線において設定されたデータ移動量(たとえば±1、±2および±4…±256)と異なる値の場合、この転送サイクルを繰返す(シフトレジスタ態様でデータ転送を行う)ことにより、任意の距離離れたエントリ間のデータ転送(たとえばエントリ+257等の奇数エントリ分離れたエントリとの間での通信)を、実現することができる。これにより、少ないサイクル数で、任意のエントリ間のデータ転送を実現することができる。
また、このエントリ間のデータ転送において、各エントリが並列にデータ転送を行なってデータの取込みを行なっており、効率的なデータ転送を実現することができる。
また、スイッチ回路360においては、オープンドレイン方式でプリチャージされた内部ノードをドライブしており、スイッチ回路360のトランジスタ数を低減することができ、また、高速でデータ転送を行うことが出来る。また、1本のデータ転送配線は、複数のエントリ間データ移動に対応しており、配線領域を低減することができる。
[実施の形態2]
図19は、この発明の実施の形態2に従うALU間相互接続スイッチ回路の構成を示す図である。図19においても、1つのエントリに対応して配置されるALU間接続回路の構成を示す。この図19に示すALU間接続回路65は、図17に示すALU間接続回路65と以下の点でその構成が異なる。すなわち、Xレジスタ54とトライステートバッファ364との間に、対応のエントリから読出されたデータとXレジスタ54の保持データとを受けるセレクタ370が設けられる。このセレクタ370は、転送ロードイネーブル信号ECM_LD_ENが活性化されると、対応のエントリから読出したデータを選択してトライステートバッファ364へ与える。この転送ロードイネーブル信号ECM_LD_ENの非活性化時、セレクタ370は、Xレジスタ54の出力するデータを選択してトライステートバッファ364へ与える。
図19に示すALU間接続回路65の他の構成は、図17に示すALU間接続回路65の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
図20は、図19に示すALU間相互接続回路のデータ転送動作を示すタイミング図である。この図20においても、隣接エントリ(i+1)からエントリiへのデータ転送時のタイミング図を示す。以下、図20を参照して、図19に示すALU間相互接続回路のデータ転送動作について説明する。
クロックサイクル♯1においては、プリチャージ指示信号/ECM_PRCがLレベルの活性状態であり、一方、転送イネーブル信号ECM_ENおよび転送ロードイネーブル信号ECM_LD_ENは、Lレベルの非活性状態である。セレクタ360は、対応のエントリからのデータを選択する状態に設定され、また、セレクタ370は、Xレジスタ54の保持出力データを選択する状態に設定される。スイッチ回路360は、プリチャージ状態にあり、ノードNDは電源電圧レベルである。
クロックサイクル♯2において、対応のエントリからのデータの読出が実施される。この読出時においては、先の図4において説明したビットシリアル演算時と同様にして実行される。すなわち、メモリセルマットにおいてアドレスポインタに従ってワード線が選択され、ついで、センスアンプが活性化され、選択メモリセルのデータが、演算器に向かって転送される(ロード命令が実行される)。
このクロックサイクル♯2において、また、データ読出と並行して、クロック信号CLKXの立上がりと同期して、転送イネーブル信号ECM_ENおよび転送ロードイネーブル信号ECM_LD_ENが活性状態に設定される。プリチャージ指示信号/EMC_PRCは、活性状態にある。応じて、対応のエントリから読出されたデータが、セレクタ370において選択され、トライステートバッファ364により増幅されて、転送出力データECM_OUTとして、対応のエントリから読出データD[i]に対応するデータが出力される。
次いで、このクロックサイクル♯2において、クロック信号CLKXの立下がりに同期して、プリチャージ指示信号/ECM_PRCを非活性状態に設定し、またエントリ選択信号ECM_EN_+1を活性状態に設定する。応じて、スイッチ回路360がイネーブルされ、この隣接エントリ(i+1)からデータ転送配線を介して入力部ECM_IN_+1上に伝達されたデータD[i+1]が選択される。このとき、セレクタ362は、転送イネーブル信号ECM_ENに従って、スイッチ回路360の出力信号を選択する状態に設定されており、セレクタ362を介してスイッチ回路360からのデータD[i+1]に応じたデータが、Xレジスタ54へ転送される。
このクロックサイクル♯2においてクロック信号CLKXがLレベルに立下がると、Xレジスタ54は、スルー状態となり、与えられたデータを取り込む。クロックサイクル♯3において、クロック信号CLKXがHレベルに立上がると、Xレジスタ54が、取り込んだデータをラッチし、その保持データが、データD[i+1]に確定する。
したがって、この場合、クロックサイクル♯2において、メモリセルマットからのデータ読出と、エントリ間通信を行なったことになる。これにより、Xレジスタ54に、一旦転送データを保持させる動作が不要となり、エントリ間通信に要するクロックサイクル数を低減することができる。
以上のように、Xレジスタ54をバイパスして、対応のエントリからのデータに従って、転送データを生成して、データ転送配線経路のデータ出力部へ転送することにより、X
レジスタに転送データを格納するサイクルが不要となり、高速のエントリ間通信を実現することができる。
なお、このエントリ指定信号ECM_EN_kおよびエントリ転送指示信号ECM_ENおよびプリチャージ指示信号/ECM_PRCは、先の図1に示すコントローラ22からプログラム命令(マイクロ命令メモリ)21に格納された命令に従って生成される。
また、演算器の構成としては、Xレジスタ、XHレジスタおよびXLレジスタを含む図8に示す構成の場合、およびXレジスタのみがデータ転送用に設けられる図6に示す構成のいずれが用いられても良い。演算器内のデータ転送用のレジスタに対して図17または図19に示す構成を設ける。
この実施の形態2に従うALU間接続回路の構成においても、1本のデータ転送配線の通信可能エントリ以外のエントリとの間でデータ転送を行う場合、データ転送動作を繰返し実行する。すなわち、転送エントリ選択信号ECM_EN_±jを順次jを設定してデータ転送サイクル(サイクル♯2の動作)を行うことにより、転送データを順次シフトして転送して目標エントリに転送することができ、任意のエントリ間でのデータ通信を実現することができる。
以上のように、このエントリ間の通信機能を利用することにより、メモリセルマットに格納されたデータを、たとえばバルブシフタを用いた場合と同様に、エントリ間をシフトさせることができ、シフトレジスタを用いたデータ転送と同様のデータ転送動作を実現することができる。このデータ転送機能を利用することにより、データのコピー操作、画像データ処理において画素マトリクスを利用するフィルタ処理等での隣接画素データを利用する演算等を高速で実行することが可能となる。
この発明は、メモリセルマットが複数のエントリに分割され、エントリに対応して演算器が配置される半導体演算処理装置に適用することにより、小配線レイアウト面積で高速にデータを転送して演算処理を行なう、多機能の高速演算処理装置を実現することができる。
この半導体演算処理装置は、画像データまたは音声データなどの大量のデータの処理用途に適用することにより、フィルタ処理などの、エントリ間のデータを用いて処理を行なう場合に、高速演算処理を実現することができる。
この発明に従うエントリ間転送回路が適用される半導体演算処理装置の全体の構成を概略的に示す図である。 図1に示す主演算回路の構成を概略的に示す図である。 図2に示す主演算回路における演算シーケンスを模式的に示す図である。 図2に示す主演算回路における演算処理シーケンスの内部タイミングを示す図である。 図1に示すコントローラの制御態様を概略的に示す図である。 図1に示す演算器の構成の一例を示す図である。 図6に示す演算器を用いる際のエントリ間データ移動を行なう命令を一覧にして示す図である。 図1に示す演算器の他の構成を概略的に示す図である。 図8に示す演算器の2ビット演算時の接続を示す図である。 図8に示す演算器の1ビット演算時の内部接続を示す図である。 図8に示す主演算器を用いるエントリ間データ移動を指定する命令を一覧して示す図である。 図8に示す演算器の2ビット動作時のエントリ間データ移動の命令を一覧して示す図である。 この発明の実施の形態1に従うALU間相互接続スイッチ回路の配線を概略的に示す図である。 図13に示す配線レイアウトにおけるXレジスタのデータ転送時のレジスタ値を一覧にして示す図である。 図13に示す配線レイアウトのメモリセルマット両端部のエントリ間のデータ転送経路を概略的に示す図である。 この発明の実施の形態1に従うALU間相互接続スイッチ回路と演算器との配線接続の構成を概略的に示す図である。 図16に示すALU間相互接続回路65の構成を概略的に示す図である。 図17に示すALU間相互接続回路の動作を示すタイミング図である。 この発明の実施の形態2に従うALU間接続回路(エントリ間転送回路)の構成を概略的に示す図である。 図19に示すALU間相互接続回路の動作を示すタイミング図である。
符号の説明
1 演算処理システム、2 システムLSI、FB1−FBh 基本演算ブロック、20 主演算回路、30 メモリセルマット、31 演算器(ALU)、32 ALU間相互接続用スイッチ回路、22 コントローラ、54 Xレジスタ、65 ALU間接続回路、300 データ転送配線、XP1,XP2,XP4,XN1,XN2,XN4 転送データ送出部、320 単位配線領域、330p,330n メモリセルエントリ端部間シフト動作用配線、305a,305h,305l 転送データ出力部、340a,340h,340l 転送配線束、350a,350h,350l 転送データ入力部、360 スイッチ回路、362 セレクタ、364 トライステートバッファ、PSQ256,PSQ1,NSQ1,NSQ256 選択スイッチゲート、370 セレクタ。

Claims (5)

  1. 各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイ、
    前記エントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器、および
    前記複数のエントリ間でデータを転送する転送回路を備え、
    前記転送回路は、
    前記エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備え、各前記転送配線経路は、前記対応のエントリのデータを受けるデータ出力部と、前記異なる複数の別のエントリそれぞれに結合される複数のデータ送出部とを有し、転送データが前記データ出力部から前記データ送出部に向かって転送され、
    前記複数の転送配線経路は、第2の方向において整列しかつ第1の方向においては1エントリ分前記データ出力部がずれるように前記第2の方向において複数列に配置される、半導体演算処理装置。
  2. 各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイ、
    前記エントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器、および
    前記複数のエントリ間でデータを転送する転送回路を備え、
    前記転送回路は、
    前記エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備え、各前記転送配線経路は、前記対応のエントリのデータを受けるデータ出力部と、前記異なる複数の別のエントリそれぞれに結合される複数のデータ送出部とを有し、転送データが前記データ出力部から前記データ送出部に向かって転送され、
    前記転送回路において、1つのエントリに対応して複数の転送配線経路の送出部が配置され、
    各前記演算器は、レジスタ回路を含み、
    前記転送回路は、さらに、
    各前記エントリに対応して配置され、対応の複数の転送配線経路の送出部に結合され、選択信号に従って1つの送出部を選択し、該選択された送出部の転送配線経路上を伝達された信号に対応する信号を生成するスイッチ回路と、
    対応のエントリからのデータと前記スイッチ回路の出力データとを受け、転送指示に従って前記スイッチ回路の出力データを前記レジスタ回路へ転送し、かつ転送不指示に従って前記対応のエントリからのデータを前記レジスタ回路へ転送する選択回路と、
    前記転送指示に従って前記レジスタ回路からの保持データを対応の転送経路の出力部に伝達する伝達回路とを備える、半導体演算処理装置。
  3. 各々が複数のメモリセルを有する複数のエントリに分割されるメモリアレイ、
    前記エントリに対応して配置され、各々が与えられたデータに対して演算処理を行なう複数の演算器、および
    前記複数のエントリ間でデータを転送する転送回路を備え、
    前記転送回路は、
    前記エントリに対応して配置され、各々が対応のエントリのデータを異なる複数の別のエントリのいずれかに転送する複数の転送配線経路を備え、各前記転送配線経路は、前記対応のエントリのデータを受けるデータ出力部と、前記異なる複数の別のエントリそれぞれに結合される複数のデータ送出部とを有し、転送データが前記データ出力部から前記データ送出部に向かって転送され、
    前記転送回路において、1つのエントリに対応して複数の転送配線経路の送出部が配置され、
    各前記演算器は、レジスタ回路を含み、
    前記転送回路は、さらに、
    エントリに対応して配置され、対応の複数の転送配線経路の送出部に結合され、選択信号に従って1つの送出部を選択し、該選択された送出部の伝達信号に対応する信号を生成するスイッチ回路と、
    前記対応のエントリからのデータと前記スイッチ回路の出力データとを受け、転送指示に従って前記スイッチ回路の出力データを前記レジスタ回路へ転送しかつ転送不指示に従って前記対応のエントリからのデータを前記レジスタ回路へ転送する第1の選択回路と、
    前記レジスタ回路の保持データと前記対応のエントリからのデータとを受け、選択転送指示信号の活性化に従って対応のエントリからのデータを転送する第2の選択回路と、
    前記転送指示に従って前記第2の選択回路から与えられたデータを対応の転送経路の出力部に伝達する伝達回路とを備える、半導体演算処理装置。
  4. 前記スイッチ回路は、
    プリチャージ指示信号の活性化に従って内部ノードを所定のプリチャージ電圧にプリチャージするプリチャージ素子と、
    前記複数の送出部それぞれに対応して設けられ、エントリ選択信号と対応の送出部の信号に従って前記内部ノードを選択的に前記プリチャージ電圧と異なる電圧レベルに駆動する複数の選択スイッチゲートとを備える、請求項またはに記載の半導体演算処理装置。
  5. 各前記選択スイッチゲートは、前記内部ノードと基準電位を与えるノードとの間に直列に接続され、それぞれのゲートに前記エントリ選択信号および前記対応の送出部の信号を受ける第1および第2のトランジスタ素子を備える、請求項記載の半導体演算処理装置。
JP2006018762A 2006-01-27 2006-01-27 半導体演算処理装置 Expired - Fee Related JP4989899B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006018762A JP4989899B2 (ja) 2006-01-27 2006-01-27 半導体演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006018762A JP4989899B2 (ja) 2006-01-27 2006-01-27 半導体演算処理装置

Publications (2)

Publication Number Publication Date
JP2007200090A JP2007200090A (ja) 2007-08-09
JP4989899B2 true JP4989899B2 (ja) 2012-08-01

Family

ID=38454638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006018762A Expired - Fee Related JP4989899B2 (ja) 2006-01-27 2006-01-27 半導体演算処理装置

Country Status (1)

Country Link
JP (1) JP4989899B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210018952A1 (en) * 2017-06-02 2021-01-21 Ultramemory Inc. Semiconductor module
KR102778192B1 (ko) * 2018-12-03 2025-03-10 삼성전자주식회사 Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04295953A (ja) * 1991-03-25 1992-10-20 Nippon Telegr & Teleph Corp <Ntt> 要素プロセッサの2次元アレイを内蔵する並列データ処理装置および要素プロセッサのサブアレイユニット
JPH0936328A (ja) * 1995-07-14 1997-02-07 Hitachi Ltd ダイナミック型ram
JP3627953B2 (ja) * 1997-08-22 2005-03-09 日本電信電話株式会社 Peアレイ装置および連想メモリブロック
US6032248A (en) * 1998-04-29 2000-02-29 Atmel Corporation Microcontroller including a single memory module having a data memory sector and a code memory sector and supporting simultaneous read/write access to both sectors
JP3971535B2 (ja) * 1999-09-10 2007-09-05 株式会社リコー Simd型プロセッサ
JP3971543B2 (ja) * 2000-01-19 2007-09-05 株式会社リコー Simd型プロセッサ
JP2001273788A (ja) * 2000-03-29 2001-10-05 Hitachi Ltd 半導体記憶装置
JP2001306395A (ja) * 2000-04-25 2001-11-02 Seiko Epson Corp キャッシュ装置、半導体装置、マイクロコンピュータ及び電子機器
GB2370381B (en) * 2000-12-19 2003-12-24 Picochip Designs Ltd Processor architecture
JP2002207706A (ja) * 2001-01-09 2002-07-26 Ricoh Co Ltd プロセッサエレメント間での総和値計算及びピーク検出を行なうsimd型マイクロプロセッサ
JP3837293B2 (ja) * 2001-01-11 2006-10-25 株式会社リコー 定数選択機能を有するsimd型マイクロプロセッサ
JP2003186854A (ja) * 2001-12-20 2003-07-04 Ricoh Co Ltd Simd型プロセッサ及びその検証装置
JP2004030438A (ja) * 2002-06-27 2004-01-29 Renesas Technology Corp マイクロコンピュータ
US7079148B2 (en) * 2003-07-23 2006-07-18 Hewlett-Packard Development Company, L.P. Non-volatile memory parallel processor

Also Published As

Publication number Publication date
JP2007200090A (ja) 2007-08-09

Similar Documents

Publication Publication Date Title
KR102947612B1 (ko) 암호화 연산을 위한 코프로세서
US11775296B2 (en) Mask patterns generated in memory from seed vectors
US8089819B2 (en) Semiconductor device and semiconductor signal processing apparatus
US11526355B2 (en) Smallest or largest value element determination
CN109871236B (zh) 具有低功率并行矩阵乘法流水线的流处理器
JP4989900B2 (ja) 並列演算処理装置
US9990967B2 (en) Apparatuses and methods for performing corner turn operations using sensing circuitry
US10878856B2 (en) Data transfer between subarrays in memory
CN114341802B (zh) 用于执行存储器内处理操作的方法及相关存储器装置和系统
US20060143428A1 (en) Semiconductor signal processing device
CN112379930A (zh) 产生并执行控制流
US10388333B2 (en) Apparatuses and methods to selectively perform logical operations
JP7264897B2 (ja) メモリ装置及びそれを制御するための方法
US20110072170A1 (en) Systems and Methods for Transferring Data to Maintain Preferred Slot Positions in a Bi-endian Processor
US20060101231A1 (en) Semiconductor signal processing device
US10622034B2 (en) Element value comparison in memory
JP4989899B2 (ja) 半導体演算処理装置
CN116382888B (zh) 跨平面的冗余计算
JP2007004542A (ja) 半導体信号処理装置
JPS62156742A (ja) デ−タ書込み制御方式
US10043570B1 (en) Signed element compare in memory
JP2011192305A (ja) 半導体信号処理装置
JP2006350907A (ja) Simd型マイクロプロセッサ、データ転送装置、及びデータ変換装置
JPH0869407A (ja) データメモリを有するプロセッサ
JP2006260381A (ja) 演算処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081111

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120424

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120501

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees