JP4993892B2 - メモリ・コントローラ - Google Patents

メモリ・コントローラ Download PDF

Info

Publication number
JP4993892B2
JP4993892B2 JP2005284505A JP2005284505A JP4993892B2 JP 4993892 B2 JP4993892 B2 JP 4993892B2 JP 2005284505 A JP2005284505 A JP 2005284505A JP 2005284505 A JP2005284505 A JP 2005284505A JP 4993892 B2 JP4993892 B2 JP 4993892B2
Authority
JP
Japan
Prior art keywords
address
cycle
output
circuit
memory
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
JP2005284505A
Other languages
English (en)
Other versions
JP2007094835A (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 JP2005284505A priority Critical patent/JP4993892B2/ja
Priority to CNA2006101595429A priority patent/CN1940898A/zh
Priority to US11/528,406 priority patent/US7516290B2/en
Publication of JP2007094835A publication Critical patent/JP2007094835A/ja
Application granted granted Critical
Publication of JP4993892B2 publication Critical patent/JP4993892B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Description

本発明は、メモリ・コントローラに関し、CPUからのバスサイクルがシーケンシャルサイクルとノンシーケンシャルサイクルを含むバスに接続されるメモリ・コントローラに関する。
はじめに、メモリ・コントローラの典型的な構成の一例について、図3を参照して説明しておく(なお、図3は、後述される本発明の実施例の説明でも参照される)。図3に示すように、メモリ・コントローラ20は、上位装置であるCPU10(プロセッサ)とは、アドレスバス(ADDR)、データバス(RDATA)、制御信号(例えばバス転送制御信号TRANS、転送単位のサイズを規定する信号SIZE、レディ信号RDY)を介して接続され、メモリ30の選択(チップセレクト信号MCSZ)、メモリ30へのアドレスMADDRの出力、及び、メモリ30のデータMDINの読み出し、CPU10へのデータの書込みの制御を行う。
なお、図3では、CPU10とメモリ・コントローラ20間のライトデータバス(WDATA)、メモリ・コントローラ20からメモリ30へのライトデータMDOUTは省略されており、メモリ・コントローラ20からメモリ30へのライトイネーブル信号、アウトプットイネーブル信号等の制御信号も省略されている。
図4は、図3のメモリ・コントローラの動作の一例を説明するためのタイミング波形図である。なお、図3に示した構成、及び、図4に示したタイミング動作は、例えば非特許文献1の記載に基づいて、本発明者が作成したものである。
図4において、CLKは、CPU10、メモリ・コントローラ20を駆動するクロック信号である。
RDY信号は、メモリ・コントローラ20からCPU10へ出力される制御信号であり、バスサイクル(メモリアクセスサイクル)の完了をCPU10に通知する。図4に示す例では、CPU10は、クロック信号CLKの立ち上りエッジで、RDY信号がハイレベル(活性状態)のとき、バスサイクルは完了したものと判断する。クロック信号CLKの立ち上りエッジでRDYがロウレベル(非活性状態)のとき、バスサイクルは、クロックサイクル単位で延長される。なお、図4では、バスサイクルは、2クロックサイクルで完了しており、各クロックサイクル(1)から(11)において、クロックサイクル単位で延長されたバスサイクルは示されていない。図3、図4のRDY信号は、例えば非特許文献1では、クロックイネーブル信号CLKENに対応している。非特許文献1においては、CPU(コア)では、CLKENの値がクロック信号CLKの立ち上りエッジでサンプルされ、HIGHレベルであればバスサイクルの完了、LOWレベルであればバスサイクル延長の制御がクロックサイクル単位で行われる。
バス転送制御信号TRANS(なお、TRANSは「バス転送ステート信号」、あるいは「メモリ・リクエスト信号」ともいう)は、CPU10からメモリ・コントローラ20へ出力される制御信号(2ビット)であり、
・ノンシーケンシャルサイクル(NonSeq;「非連続アクセス」ともいう)、
・シーケンシャルサイクル(Seq;「連続アクセス」ともいう)、
・インターナルサイクル(internal)等の、バスアクセスのタイプをメモリ・コントローラ20に通知する。特に制限されないが、TRANSは、バスサイクルのはじめに、クロック信号CLKの所定の立ち上りに同期して出力されるものとする。
ノンシーケンシャルサイクル(NonSeq)は、今回のサイクルのアドレスが前のサイクルと全く関係のないアドレスが出力されることを指示する。
シーケンシャルサイクル(Seq)は、今回のサイクルのアドレスが前のサイクルをインクリメントしたアドレス(ハーフワード、フルワード)であることを指示する。シーケンシャルサイクル(Seq)は、例えばDRAMのメモリのバーストアクセス等に用いられる。
インターナルサイクル(internal)は、CPU10が内部動作を行い、バス転送を行わないことを指示する。なお、シーケンシャルサイクル(Seq)において、図4では、簡単のため、CPU10は、前のサイクルのアドレスを1つインクリメントしたアドレスを、メモリ・コントローラ20に出力するものとして記述されている。すなわち、連続アクセスアドレスのインクリメント単位を簡単のため1としている。
ADDRは、CPU10からメモリ・コントローラ20へ供給されるアドレスバス上のアドレス信号である。
MADDRは、メモリ・コントローラ20からメモリ30に供給されるアドレスバス信号である。
MDINは、メモリ30からメモリ・コントローラ20に出力されるデータ(リードデータ)である。
RDATAは、メモリ・コントローラ20からCPU10へのリードデータバス上に出力されるリードデータである。なお、図4において、図3のMCSZ、SIZEは省略されている。
図4からもわかるように、リードアクセスのバスサイクルは、2クロックサイクルを要し、1クロックサイクル分のウエイトが常に挿入される。一のバスサイクルが終わった後の次のバスサイクルにおいて、該一のバスサイクルに対応するアドレスにて、メモリ・コントローラ20からメモリ30へのアクセスが行われる。より詳細には、あるバスサイクルにおいてCPU10よりアドレスが出力された後(クロックサイクル(1)、(3)、(5)、…参照)、2クロックサイクル後に(クロックサイクル(3)、(5)、(7)、…参照)、メモリ・コントローラ20からメモリ30へのアドレスMADDRが出力される。そして、各バスサイクルの2クロック目の立ち上りエッジで、前のバスサイクルのアドレスに対応してメモリから読み出されたデータMDINを、リードデータバスRDATAに出力している(クロックサイクル(2)、(4)、(6)、(8)、…参照)。
各バスサイクルにおいて、メモリ・コントローラ20は、リードバスRDATAへリードデータを出力する2クロック目に、RDY信号をアクティブ(HIGHレベル)としており(クロックサイクル(2)、(4)、(6)、(8)、…参照)、1クロック分のウエイトサイクルが挿入される。
図4に示したタイミング動作について説明を補足しておく。クロックサイクル(1)において、バスサイクルのタイプは、ノンシーケンシャルサイクル(NonSeq)とされ、当該バスサイクルにおいて、CPU10からアドレスAaがCPUからメモリ・コントローラ20に供給され、当該アドレスに対応して、クロックサイクル(3)にて、メモリ・コントローラ20からアドレス出力MADDRとして、Aaがメモリ30に供給され、メモリ30からのデータMDINとしてDaがメモリ・コントローラ20に供給される。なお、メモリ・コントローラ20は、クロックサイクル(2)のクロック信号CLKの立ち上りエッジに同期して、RDY信号を活性状態(HIGHレベル)とし、CPU10は、このRDY信号を受け(図4に示す例では、CPU10はクロックサイクル(2)のクロック信号CLKの立ち下りでRDY信号をサンプルする)、クロックサイクル(3)のクロックの立ち上りエッジに同期して、制御信号TRANS、アドレス信号ADDRを出力する。
クロックサイクル(3)において、バスサイクルのタイプは、シーケンシャルサイクル(Seq)とされ、CPU10は、前バスサイクルのアドレスAaをインクリメントしたアドレスAa+1を生成してメモリ・コントローラ20に出力し、クロックサイクル(5)にて、メモリ・コントローラ20からのメモリアドレス出力MADDRとしてAa+1がメモリ30に供給され、メモリ30からのデータMDINとしてアドレスAa+1に対応するリードデータDa+1がメモリ・コントローラ20に供給される。
クロックサイクル(5)において、バスサイクルのタイプは、ノンシーケンシャルサイクル(NonSeq)とされ、CPU10からアドレスAbがメモリ・コントローラ20に供給され、当該アドレスAbに対応して、クロックサイクル(7)にてメモリ・コントローラ20からのアドレス出力MADDRとしてAbがメモリ30に供給され、MDINとしてアドレスAbに対応するリードデータDbがメモリ30からメモリ・コントローラ20に供給される。以下、クロックサイクル(9)、(11)も、ノンシーケンシャルサイクル(NonSeq)とされる。
なお、特許文献1には、無駄なアドレス状態を削減し、効率的なデータ転送を実現するメモリ・コントローラ(メモリ制御装置)として、図5に示すような構成が提案されている。図5を参照すると、このメモリ・コントローラは、先読みアドレスを生成するアドレスカウンタ52と、アドレスカウンタ52によりカウントアップされたアドレスCTADRとリクエストアドレスRQADRを比較するアドレスコンパレータ53と、アドレスカウンタ52とアドレスコンパレータ53を制御するカウンタメモリ・コントローラ54と、カウントアドレスとリクエストアドレスを選択してメモリへのアドレスB2ADRをバス6に出力するアドレスセレクトドライバ55とを備え、プロセッサが次のリクエストを発行するまでの間に、連続した次のメモリアドレスのデータを先読みして、無駄なアドレス状態を削減し、メモリへのアクセス性能の向上を図っている。なお、図5において、51はバス3からのリクエストB1ADRをバッファリングするリクエストバッファ、56は、バス6からのレスポンスデータB2DATAを受け取るレスポンスバッファ、57はレスポンスデータRSDATAを入力しバス3にレスポンスデータB1DATAを出力するレスポンスドライバである。図6に、特許文献1に記載されているタイミングチャートを示す。
図6に示すように、図5のメモリ・コントローラは、プロセッサからのコマンドB2CMDとして連続モードコマンド(CRD)を検知したのちに、メモリへのアドレス出力B2ADRを、アドレスカウンタ52の出力に切り替えて出力している。
また、メモリから出力されたデータB2DATAを、メモリ・コントローラに取り込む際に、先読みした誤ったデータEEを、レスポンスバッファ(RSBF)56でラッチしないことで、無効化している。
また、バス3のアドレスB1ADRが10C→200へと、連続アクセス(CRD)から非連続アクセス(RD)へ遷移する場合において、バス3のデータB1DATAから、連続アクセス(CRD)の最後の「DD」を出力するのと、次のアドレスをメモリへバス6のアドレスB2ADRから出力するのに、数クロックを要している。
特開平6−161868号公報 ARM社の「ARM7TDMI-S(Rev4) Technical Reference Manual」、第69-86頁、インターネット<ULR:http://www.arm.com/pdfs/DDI0234A_7TDMIS_R4.pdf>
上記したように、図4を参照して説明したメモリ・コントローラの場合、バスサイクルが完了後に、メモリアクセスを開始するため、1クロックサイクル分のウエイトサイクルが挿入され、高速化を困難としている。
また、特許文献1に記載のメモリ制御装置においては、メモリ制御装置が、連続モードを検知した後に、メモリへのアドレス出力を、アドレスカウンタの出力に切り替えて出力しており、かかる構成の場合、さらなる高速化を実現することは困難である。
本願で開示される発明は、上記課題を解決するため、概略以下の構成とされる。
本発明の1つの側面に係るメモリ・コントローラは、CPUとメモリとの間でアドレス、データの授受を行い、バスサイクルのタイプが、前サイクルのアドレスと連続したアドレスのシーケンシャルサイクルであるか、前サイクルのアドレスと無関係なアドレスのノンシーケンシャルサイクルであるかを指示する情報を少なくとも含む第1の制御信号を、前記CPUより入力する、メモリ・コントローラであって、現在のバスサイクルが終了する前に、次のバスサイクルがシーケンシャルサイクルであることを前提として、現在のアドレスに連続した値のアドレスを生成する第1の回路を備えている。
本発明において、前記第1の回路は、前記連続した値のアドレスを生成したクロックサイクルの次のクロックサイクルにおいて、前記第1の制御信号に基づき、前記連続した値のアドレス、又は、前記CPUより前記メモリ・コントローラに出力されたアドレスを、前記メモリに出力するように制御する回路を備えている。
本発明において、バスサイクルの完了を前記CPUに通知するための第2の制御信号を生成する第2の回路を備え、前記第2の回路は、前バスサイクルが終了した次のクロックサイクルで、前記第1の制御信号に基づき、前記CPUに出力される前記第2の制御信号の活性化、非活性化を行う。より詳しくは、前記第2の回路は、前バスサイクルが終了した次のクロックサイクルで、前記第1の制御信号に基づき、前記第2の制御信号の活性化、非活性化を操作することで、前記メモリ・コントローラより前記CPUに転送される、前記メモリからのリードデータの、前記CPUにおける取り込みをの有無を制御する。
本発明において、前記第2の回路は、前記連続した値のアドレスに対応する、前記メモリからのリードデータを、前記CPUへ出力するクロックサイクルにおいて、前記メモリ・コントローラより前記メモリへ出力されるアドレスが、前記CPUよりノンシーケンシャルサイクルとして前記メモリ・コントローラに供給されたアドレスである場合、前記第2の制御信号を非活性化状態とし、バスサイクルを、さらに1クロックサイクル分延長させる構成としてもよい。
本発明において、前記第1の回路は、前のクロックサイクルにおいて前記第2の制御信号が非活性化状態であるか、又は、現在のクロックサイクルにおいて前記第1の制御信号がシーケンシャルサイクルを示す場合には、現在のクロックサイクルにおいて前記メモリに出力しているアドレスに連続した値のアドレスを生成する回路の出力を選択し、それ以外の場合、前記CPUから提供されたアドレスを選択する回路を備えた構成としてもよい。
本発明において、前記第1の回路は、入力されたアドレスに対して、予め定められた所定値分インクリメントした値のアドレスを生成して出力する加算器と、前記加算器の出力と、前記CPUからのアドレスとを入力し、一方を選択して出力するセレクタと、前記セレクタの出力をサンプルするレジスタと、を備え、前記レジスタの出力が、前記加算器に入力される。
本発明において、前記第2の回路が、前記第2の回路から現在出力されている前記第2の制御信号をラッチする第1のラッチ回路と、前記第1の制御信号を構成しシーケンシャルサイクルのとき活性化される信号と、前記第1のラッチ回路の出力信号との所定の論理演算結果を出力する第1の論理回路と、前記第1の論理回路の出力をサンプルする第2のラッチ回路と、前記第2のラッチ回路の出力信号と、前記第2の回路から現在出力されている前記第2の制御信号と、前記第1の制御信号を構成しノンシーケンシャルサイクルのとき活性化される信号との所定の論理演算結果を出力する第2の論理回路と、前記第2の論理回路の出力をラッチする第3のラッチ回路と、を備えた構成としてもよい。
本発明において、前記第1の論理回路が、前記シーケンシャルサイクルのとき活性化される信号と前記第1のラッチ回路の出力の反転信号を入力する論理和回路よりなり、前記第2の論理回路が、前記第2のラッチ回路の出力信号と、前記第2の制御信号と、前記ノンシーケンシャルサイクルのとき活性化される信号と、を入力する否定論理積回路よりなる。
本発明において、前記第1の論理回路出力が前記セレクタの選択制御信号とされる。
本発明に係るメモリ・コントローラは、CPUとメモリとの間でアドレス、データの授受を行い、バスサイクルのタイプが、前サイクルのアドレスと連続したアドレスのシーケンシャルサイクルであるか、前サイクルのアドレスと無関係なアドレスのノンシーケンシャルサイクルであるかを指示する情報を少なくとも含む第1の制御信号を、前記CPUより入力し、バスサイクルの完了を、前記CPUに通知する第2の制御信号を出力する、メモリ・コントローラであって、現在のバスサイクルの終了前に、シーケンシャルサイクルを前提としたアドレスを、現在のアドレスから予め生成しておき、前記シーケンシャルサイクルを前提としたアドレスを生成したクロックサイクルの次のクロックサイクルで、前記シーケンシャルサイクルを前提としたアドレスを前記メモリに出力する手段と、前記シーケンシャルサイクルを前提としたアドレスに対応する前記メモリからのリードデータを前記CPUへ出力し、その際、ノンシーケンシャルサイクルに対応するアドレスのリードデータを供給すべきものである場合、前記第2の制御信号を非活性化とすることで、前記CPUに出力された前記リードデータを無効化する手段と、を備えている。
本発明によれば、シーケンシャルサイクルを前提としたアドレスをバスサイクルの終了前に予め生成しておき、次のサイクルでメモリに出力し、シーケンシャルサイクルを前提としたアドレスのリードデータをCPUへ出力し、その際、ノンシーケンシャルサイクルに対応するアドレスのデータを供給すべきものである場合、バスサイクルの完了をCPUに通知する制御信号を非活性化とすることで、CPUのメモリアクセスの仕様を何等変更することなく、メモリアクセスの効率化、高速化を実現することができる。
上記した本発明についてさらに詳細に説述すべく添付図面を参照して以下に説明する。本発明は、その最良の一形態において、CPU(図3の10)とメモリ(図3の30)との間に配設され、CPUから、バスサイクルのタイプが、前サイクルのアドレスとアドレスが連続するシーケンシャルサイクルであるか、前サイクルのアドレスと無関係のアドレスのノンシーケンシャルサイクルであるかを指示する制御信号(TRANS)を入力し、バスサイクルの完了を前記CPUに通知する制御信号(RDY)を出力する、メモリ・コントローラであって、シーケンシャルサイクルを前提としたアドレスを、バスサイクルの終了前に、現在のアドレスから予め生成しておき、前記シーケンシャルサイクルを前提としたアドレスを次のサイクルで前記メモリに出力し、前記シーケンシャルサイクルを前提としたアドレスに対応する前記メモリからのリードデータをCPUへ出力し、その際、本来、ノンシーケンシャルサイクルに対応するアドレスのデータを供給すべきものである場合(メモリへ出力されるアドレスがノンシーケンシャルサイクルのアドレスである場合)、制御信号(RDY)を非活性化とすることで、CPUにおいて該リードデータを取り込まず、結果的に、該リードデータを無効化する制御を行う。以下実施例に即して説明する。
本発明のメモリ・コントローラと、CPU、メモリとの接続は、図3に示したものと同様とされる。本発明のメモリ・コントローラにおいては、メモリへ出力するアドレスMADDRの制御と、バスサイクルの完了を示すRDY信号の制御が、従来のものと相違している。以下では、本実施例と、図4に示した従来のタイミング動作との相違点を明確とするため、本実施例の動作を説明するタイミング図である図1と、図3を参照して説明する。
図1は、本発明の一実施例の動作を説明するタイミング波形図である。本実施例においては、前バスサイクルが終了する前に、CPU10からのバス転送制御信号TRANSに応じて、メモリ30へのアドレス出力MADDRとして、CPU10からのアドレスと、前のアドレスをインクリメントした値のいずれかを選択し、前バスサイクルが終了した次のクロックサイクルにて、バス転送制御信号TRANSに応じて、CPU10へバスサイクルの完了を通知するRDY信号の活性化、非活性化を制御することで、メモリ30からのリードデータをCPU10に取り込むか否かを制御している(RDY信号が非活性状態の場合、CPU10は該リードデータをサンプルしない)。なお、図1において、MCSZは、メモリ・コントローラ20からメモリ30に供給されるチップセレクト信号(LOWアクティブ)である。
本実施例において、CPU10との間のバス転送(バスサイクル)のタイプとして、ノンシーケンシャルサイクル(NonSeq)と、シーケンシャルサイクル(Seq)と、バス転送が行われない非バス転送サイクル(internal)がある。
図1において、クロックサイクル(1)の前のサイクルは、ノンシーケンシャルサイクル(NonSeq)であるものとする。クロックサイクル(2)のクロックCLKの立ち上りエッジで、RDY信号がHIGHレベルとされている(この場合、クロックサイクル(1)、(2)で1つのバスサイクルを構成する)。本実施例においては、バスサイクルが終わる前に、すなわちバスサイクルの終わりの1クロック前であるクロックサイクル(2)のクロック信号CLKの立ち上りエッジで、アドレスAaをメモリ出力MADDRとしてメモリ30に出力している。このため、本実施例においては、バスサイクルとして、図4に示した従来のメモリ・コントローラ(バスサイクルの終了後、MADDRをメモリに出力している)よりも1クロックサイクル分を削減している。
特に制限されないが、本実施例において、メモリ30は、0ウエイトでアクセス可能であるものとしている。このため、メモリ30にてアドレスAaでリードされたデータDaは、クロックサイクル(3)のクロックの立ち上りエッジで、CPU10にRDATAとして出力される。クロックサイクル(3)において、RDY信号がHIGHレベルであるため、CPU10は、クロックサイクル(3)のクロックCLKの立ち上りエッジでデータDaをサンプルする。
図2は、本実施例のメモリ・コントローラの要部構成を示す図である。図2には、CPU10(図3参照)へのRDY信号を生成する回路と、メモリ30(図3参照)へのアドレス出力MADDRを生成する回路の構成が示されている。これらの回路構成は、本発明の主たる特徴の1部をなしている。
図2を参照すると、本実施例のメモリ・コントローラは、RDY信号の生成回路として、現在出力されているRDY信号をデータ端子に受けクロック信号CLKのエッジでサンプルするD型フリップフロップ(ラッチ回路)22−1と、D型フリップフロップ(ラッチ回路)22−1の出力の反転信号と、CPU10(図3参照)からのバス転送制御信号TRANSのうちバスサイクルがシーケンシャルサイクル(連続アクセス)であることを示す信号Seqとを入力とする2入力OR回路21と、OR回路21の出力信号(inc_addr)をデータ端子に受けクロック信号CLKのエッジでサンプルするD型フリップフロップ(ラッチ回路)22−2と、D型フリップフロップ22−2の出力端子Qからの出力信号(post_inc_addr)と、CPU10(図3参照)からのバス転送制御信号TRANSのうちバスサイクルがノンシーケンシャルサイクル(非連続アクセス)であることを示す信号NonSeqと、現在出力されているRDY信号とを入力とする3入力NAND回路23と、NAND回路23の出力をデータ端子に受けクロックCLKのエッジでサンプルするD型フリップフロップ(ラッチ回路)22−3と、を備え、D型フリップフロップ22−3の出力端子QよりRDY信号がCPU10に出力される。なお、図2において、信号Seq、NonSeqは、CPU10(図3参照)からの信号TRANSを入力とする不図示のデコーダでデコードして得られた信号である。
また、図2を参照すると、本実施例のメモリ・コントローラは、メモリ30(図3参照)へのアドレス出力MADDRの生成回路として、メモリ30へのアドレス出力MADDR(例えば32ビット)に、サイズ(SIZE)を加算する加算器24と、加算器24の出力と、CPU10からのアドレスADDRを入力し、OR回路21の出力inc_addrを選択制御信号として一方を選択するセレクタ25と、セレクタ25からのアドレス出力信号を複数のデータ端子に並列に受けクロック信号CLKのエッジでサンプルしMADDRとして出力するD型レジスタ(ラッチ回路)26と、を備えている。
RDY信号がLOWレベルの場合、NAND回路23の出力はHIGHレベルとなり、次のクロックサイクルのクロック信号CLKの立ち上りエッジで、D型フリップフロップ22−3の出力端子Qから出力されるRDY信号はHIGHレベルとなる。
あるクロックサイクルにおいて、RDY信号がHIGHレベル、NonSeqがHIGHレベル、post_inc_addrがHIGHレベル(1つ前のクロックサイクルで、SeqがHIGHレベルであるか、又は、2つ前のクロックサイクルにおいてRDY信号がLOWレベルの場合、post_inc_addrが当該あるサイクルでHIGHレベルとなる)、NAND回路23の出力はLOWレベルとなり、次のクロックサイクルのクロック信号CLKの立ち上りエッジで、D型フリップフロップ22−2の出力端子Qから出力されるRDY信号はLOWレベルとなる。
あるクロックサイクルでSeq信号がLOWレベルであり(NonSeqはHIGHレベル)、且つ、1つ前のRDY信号がHIGHレベルの場合、OR回路21の出力inc_addrはLOWレベルとなり、次のクロックサイクルのクロック信号の立ち上りエッジで、inc_addrをサンプルするD型フリップフロップ22−2の出力post_inc_addrは、LOWレベルとなり、NAND回路23の出力はHIGHレベルとなり、D型フリップフロップ22−3の出力であるRDY信号はHIGHレベルとなる。あるクロックサイクルでSeq信号がHIGHレベルであるか、又は、前のクロックサイクルでRDY信号がLOWレベルの場合、OR回路21の出力inc_addrはHIGHレベルとなる。
セレクタ25は、inc_addrがLOWレベル(論理0)のときは、CPU10からのADDRを選択する。セレクタ25は、inc_addrがHIGHレベル(論理1)のときは、加算器24の加算結果を選択する。
以下では、図2を参照して説明したメモリ・コントローラの一連の動作について、図1を参照してさらに説明する。
図1のクロックサイクル(1)では、D型フリップフロップ22−1の出力はHIGHレベルとし、バス転送制御信号TRANSがノンシーケンシャルサイクル(NonSeq=HIGHレベル)を示し、SeqはLOWレベルとされ、OR回路21の出力(inc_addr)はLOWレベルであり、セレクタ25は、CPU10(図3参照)からのアドレスADDR(Aa)を選択する。次のクロックサイクル(2)のクロック信号CLKの立ち上りエッジで、D型レジスタ26は、セレクタ25からの出力Aaをサンプルし、メモリ30(図3参照)へのアドレス出力MADDRとして出力する。
クロックサイクル(2)において、メモリ30からの該アドレスAaで読み出されたリードデータDaがMDINに出力される。クロックサイクル(1)におけるLOWレベルのRDYを受けるNAND回路23の出力はHIGHレベルとされ、クロックサイクル(2)のクロック信号CLKの立ち上りエッジでD型フリップフロップ22−3の出力であるRDY信号はHIGHレベルとなる。またクロックサイクル(2)のクロックの立ち上りエッジにおいてD型フリップフロップ22−1の出力はLOWレベルとなり、OR回路21の出力(inc_addr)はHIGHレベルとなる。inc_addrがHIGHレベル(論理1)となると、セレクタ25は、加算器24の出力を選択する。
なお、SIZEは、CPU10から供給され、メモリ・コントローラ20の加算器24におけるインクリメントの単位を指定する信号である。ハーフワード、フルワードの指定に応じて、加算器24における、インクリメント単位は、2、4等、可変に設定される。なお、本実施例では、簡単のため、SIZEは1固定とする。
したがって、クロックサイクル(2)において、加算器24は、メモリへのアドレス出力MADDR(=Aa)と1を加算した結果Aa+1を出力する。セレクタ25は、加算器24の出力Aa+1を選択し、次のクロックサイクル(3)のクロックCLKの立ち上りエッジで、D型レジスタ26は、Aa+1をMADDRとして出力する。
クロックサイクル(3)では、転送制御信号TRANSが、シーケンシャルサイクルSeqを示し(Seq=HIGHレベル)、OR回路21の出力inc_addrはHIGHレベルとされる。そして、前のクロックサイクル(2)において、加算器24でインクリメントしたアドレスAa+1が、D型レジスタ26より、メモリ30へのアドレス出力MADDRとして出力される。またクロックサイクル(3)では、該アドレスAa+1で読み出されたリードデータDa+1がMDINに出力され、次のクロックサイクル(4)にて、リードデータバスRDATAよりデータDa+1がCPU10に供給される。なお、クロックサイクル(2)において、post_inc_addrはLOWレベルであるため、NAND回路23の出力はHIGHレベルとされ、クロックサイクル(3)において、RDY信号はHIGHレベルとされる。また、クロックサイクル(3)では、inc_addrがHIGHレベルであり、セレクタ25は、加算器24の出力を選択する。加算器24は、メモリ30へのアドレス出力MADDRR(=Aa+1)とSIZE(=1)の加算結果Aa+2を出力する。そして、次のクロックサイクル(4)のクロックCLKの立ち上りエッジで、D型レジスタ26は、Aa+2をMADDRとして出力する。
クロックサイクル(4)では、転送制御信号TRANSがノンシーケンシャルサイクルNonSeq(NonSeq=HIGHレベル)を示し、CPU10からのアドレスAbがクロックサイクル(5)のクロック信号CLKの立ち上りエッジでメモリ30へのアドレス出力MADDRとして出力される。
またクロックサイクル(4)において、SeqはLOWレベルであり、クロックサイクル(3)のRDY信号がHIGHレベルであることから、D型フリップフロップ22−1の出力はHIGHレベルとなり、OR回路21の出力inc_addrがLOWレベルとなる。セレクタ25は、inc_addrがLOWレベルであるため、CPU10からのADDR(=Ab)を選択する。次のクロックサイクル(5)のクロックの立ち上りエッジで、D型レジスタ26は、アドレスAbをMADDRとして出力する。
クロックサイクル(4)において、NonSeqはHIGHレベル、RDY信号はHIGHレベル、post_inc_addrはいずれもHIGHレベルであるため、NAND回路23の出力はLOWレベルとなり、クロックサイクル(5)のクロック信号CLKの立ち上りエッジに同期してRDY信号はLowレベルとなる。
なお、クロックサイクル(4)において、メモリ・コントローラ20では、Aa+1をインクリメントした連続アドレスAa+2がMADDRとして出力され、連続アドレスAa+2でメモリから読み出されたリードデータDa+2がMDINに出力される。
クロックサイクル(5)の立ち上りエッジに同期して、メモリ・コントローラ20からCPU10に、リードデータバスRDATAよりデータDa+2が供給される。しかしながら、上記したように、クロックサイクル(5)において、RDY信号は非活性状態(LOWレベル)に設定されており、このため(バスサイクルが完了していないため)、CPU10はリードデータバスRDATA上のデータDa+2を取り込まない。かかる構成により、メモリ・コントローラ20側で予め作成したシーケンシャルサイクルAa+2に対応するリードデータの実質的な無効化が行われる。
また、クロックサイクル(5)では、前のクロックサイクル(4)でCPU10からメモリ・コントローラ20に出力されたアドレスAbがMADDRとしてメモリ30に出力され、アドレスAbに対応してメモリからリードされたデータDbが、メモリ・コントローラに出力される(RDATAにはデータDaが出力されている)。クロックサイクル(5)においてRDY信号は非活性状態とされ、当該バスサイクルは、1クロックサイクル延長される。
クロックサイクル(6)では、転送制御信号TRANSがノンシーケンシャルサイクルNonSeq(NonSeq=HIGHレベル)を示し、アドレスADDRのままである。
なお、クロックサイクル(5)において、RDY信号はLOWレベルであるため、NAND回路23の出力はHIGHレベルとされ、クロックサイクル(6)のクロック信号の立ち上りエッジでD型フリップフロップ22−3の出力であるRDY信号はHIGHレベルとなる。
また、クロックサイクル(6)では、クロックサイクル(5)でCPU10から受け取ったアドレスAcがメモリ30へのアドレス出力MADDRとして出力され、アドレスAcでメモリ30から読み出されたリードデータDcがMDINに出力される。また、前のクロックサイクル(5)において、メモリ30よりメモリ・コントローラ20に供給されたデータDbが、RDATAよりCPU10に出力される。このとき、RDY信号はHIGHレベルであるため、RDATA上のデータDbはCPU10に取り込まれる。
次のクロックサイクル(7)では、転送制御信号TRANSがノンシーケンシャルサイクルNonSeq(NonSeq=HIGHレベル)を示し、CPU10からアドレスAdがメモリ・コントローラ20に出力される。Adは次のクロックサイクル(8)のクロックの立ち上りエッジでメモリ30へのアドレス出力MADDRとして出力される。
クロックサイクル(7)では、前のクロックサイクル(6)のアドレスAcを1つインクリメントしたアドレスAc+1がメモリ30へのアドレス出力MADDRとして出力され、アドレスAc+1でメモリ30から読み出されたリードデータDc+1がMDINに出力される。なお、クロックサイクル(7)では、前のサイクル(6)において、メモリ30よりメモリ・コントローラ20に供給されたデータDcがRDATAよりCPU10に出力される。クロックサイクル(6)において、RDY信号はHIGHレベル、NonSeqはHIGHレベル、post_inc_addrはHIGHレベルであるため、NAND回路23の出力はHIGHレベルとされ、クロックサイクル(7)においても、RDY信号はHIGHレベルとされる。このため、データDcはCPU10に取り込まれる。なお、クロックサイクル(6)でRDY信号はHIGHレベルであり、クロックサイクル(7)でSeqはLOWレベルであるため、クロックサイクル(7)においてinc_addrはLOWレベルとされる。
クロックサイクル(8)では、転送制御信号TRANSがシーケンシャルサイクルSeq(NonSeq=HIGHレベル)を示し、CPU10から前サイクルのアドレスAdをインクリメントしたアドレスAd+1が、メモリ・コントローラ20に出力される。クロックサイクル(8)では、前のクロックサイクル(7)にCPU10から供給されたアドレスAdがアドレス出力MADDRとして出力される。このクロックサイクル(8)では、inc_addrがHIGHレベルであるため、メモリ・コントローラ20のセレクタ25は、加算器24の出力(=Ad+1)を選択する。クロックサイクル(7)において、RDY信号はHIGHレベル、NonSeqはHIGHレベル、post_inc_addrはHIGHレベルであるため、NAND回路23の出力はLOWレベルとなり、クロックサイクル(8)のクロック信号CLKの立ち上りエッジで、D型フリップフロップ22−3の出力であるRDY信号はLOWレベルとなる。
また、クロックサイクル(8)においては、アドレスAc+1でメモリ30から読み出されたデータDc+1がメモリ・コントローラ20からRDATAよりCPU10に供給される。なお、クロックサイクル(8)では、RDY信号はLOWレベルであるため、RDATA上のデータDc+1はCPU10に取り込まれず、無効化される。クロックサイクル(8)ではバスサイクルは完了せず、1クロックサイクル延ばされる。
クロックサイクル(9)は、クロックサイクル(8)のバスサイクルの延長であり、転送制御信号TRANSは、クロックサイクル(8)と同じシーケンシャルサイクルSeqを示し、またアドレスADDRは、クロックサイクル(8)と同じAd+1のままである。メモリ・コントローラ20では、inc_addrがHIGHレベルであるため、セレクタ25は、加算器24の出力(=Ad+2)を選択し、次のクロックサイクル(10)では、Ad+2がメモリ30へのアドレス出力MADDRとして出力される。またクロックサイクル(8)ではRDY信号はLOWレベルであるためNAND回路23の出力はHIGHレベルとなり、クロックサイクル(9)のクロック信号CLKの立ち上りエッジで、D型フリップフロップ22−3の出力であるRDY信号はHIGHレベルとなる。
クロックサイクル(9)では、アドレスAd+1でメモリ30から読み出されたデータDd+1がメモリ・コントローラ20からRDATAよりCPU10に供給される。クロックサイクル(9)では、RDY信号がHIGHレベルであるため、RDATA上のデータDd+1はCPU10に取り込まれる。
クロックサイクル(10)では、転送制御信号TRANSがインターナルサイクルを示し、バスへのアクセスは行われない。
また、クロックサイクル(11)において、チップセレクト信号MCSZが非活性状態とされ、メモリ30は非選択とされ、MDINは例えばHIZ(ハイインピーダンス状態)とされる。
本実施例によれば、データの無効化が行われない場合のバスサイクルを最小単位の1クロックサイクルとし、RDY信号の非活性化の制御によりデータの無効化を行うことで、CPUの仕様は何等変更することなく、メモリアクセスを高速化を実現している。
なお、上記実施例では、上記非特許文献1の仕様に基づく構成に即して説明したが、本発明は、上記実施例の構成にのみに制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
本発明の一実施例の動作の一例を示すタイミング図である。 本発明の一実施例の構成を示す図である。 本発明の一実施例のメモリ・コントローラとCPU、メモリの接続構成の概略を示す図である。 従来の装置の動作の一例を示すタイミング図である。 特許文献1の構成を示す図である。 図4の装置の動作の一例を示すタイミング図である。
符号の説明
3、6 バス
10 CPU
20 メモリ・コントローラ
21 論理回路(2入力OR回路)
22−1、22−2、22−3 D型フリップフロップ
23 論理回路(3入力NAND回路)
24 加算器
25 セレクタ
26 D型レジスタ
30 メモリ
52 アドレスカウンタ
53 アドレスコンパレータ
54 カウンタメモリ・コントローラ
55 アドレスセレクトドライバ
51 リクエストバッファ
56 レスポンスバッファ
57 リスポンスドライバ

Claims (11)

  1. CPUとメモリとの間でアドレス、データの授受を行い、バスサイクルのタイプが、前サイクルのアドレスと連続したアドレスのシーケンシャルサイクルであるか、前サイクルのアドレスと無関係なアドレスのノンシーケンシャルサイクルであるかを指示する情報を少なくとも含む第1の制御信号を、前記CPUより入力する、メモリ・コントローラであって、
    現在のバスサイクルが終了する前に、次のバスサイクルがシーケンシャルサイクルであることを前提として、現在のアドレスに連続した値のアドレスを生成する第1の回路と、
    バスサイクルの完了又は未完了を前記CPUに通知するための第2の制御信号を生成する第2の回路と、
    を備え
    前記第1の回路は、前記次のバスサイクルが前記ノンシーケンシャルサイクルであることを前記第1の制御信号が指示する場合であっても、前記現在のアドレスに連続した値のアドレスを前記次のバスサイクルにおいて前記メモリに出力し、
    前記第2の回路は、前記第1の回路が前記メモリに対して前記現在のアドレスに連続した値の前記アドレスを出力したことに基づいて、バスサイクルの未完了を示す前記第2の制御信号を前記CPUに出力する、ことを特徴とするメモリ・コントローラ。
  2. 前記現在のアドレスは、現在のバスサイクルにおいて、前記CPUより出力されたアドレスを前記メモリ・コントローラが受けて前記メモリに出力しているアドレス、又は、前記メモリ・コントローラに含まれる前記第1の回路が生成し前記メモリに出力しているアドレスである、ことを特徴とする請求項1記載のメモリ・コントローラ。
  3. 前記第1の回路は、前記連続した値のアドレスを生成したクロックサイクルの次のクロックサイクルにおいて、前記第1の制御信号に基づき、前記連続した値のアドレス、又は、前記CPUより前記メモリ・コントローラに出力されたアドレスを、前記メモリに出力するように制御する回路を備えている、ことを特徴とする請求項1記載のメモリ・コントローラ。
  4. 前記第2の回路は、前バスサイクルが終了した次のクロックサイクルで、前記第1の制御信号に基づき、前記CPUに出力される前記第2の制御信号の活性化、非活性化を行う、ことを特徴とする請求項1記載のメモリ・コントローラ。
  5. 前記第2の回路は、前バスサイクルが終了した次のクロックサイクルで、前記第1の制御信号に基づき、前記第2の制御信号の活性化、非活性化を操作することで、前記メモリ・コントローラより前記CPUに転送される、前記メモリからのリードデータの、前記CPUにおける取り込みの有無を制御する、ことを特徴とする請求項4記載のメモリ・コントローラ。
  6. 前記第2の回路は、前記連続した値のアドレスに対応する、前記メモリからのリードデータを、前記CPUへ出力するクロックサイクルにおいて、前記メモリ・コントローラより前記メモリへ出力されるアドレスが、前記CPUよりノンシーケンシャルサイクルとして前記メモリ・コントローラに供給されたアドレスである場合、前記第2の制御信号を非活性化状態とし、バスサイクルを、さらに1クロックサイクル分延長させる、ことを特徴とする請求項4記載のメモリ・コントローラ。
  7. 前記第1の回路は、一のクロックサイクルの1つ前のクロックサイクルにおいて前記第2の制御信号が非活性化状態であるか、又は、前記一のクロックサイクルにおいて前記第1の制御信号がシーケンシャルサイクルを示す場合には、前記一のクロックサイクルにおいて前記メモリに出力しているアドレスに連続した値のアドレスを生成する回路の出力を選択し、それ以外の場合には、前記CPUから提供されたアドレスを選択する回路を備えている、ことを特徴とする請求項4記載のメモリ・コントローラ。
  8. 前記第1の回路が、入力されたアドレスに対して、予め定められた所定値分インクリメントした値のアドレスを生成して出力する加算器と、
    前記加算器の出力と、前記CPUからのアドレスとを入力し、一方を選択して出力するセレクタと、
    前記セレクタの出力をサンプルするレジスタと、
    を備え、前記レジスタの出力が前記加算器に入力される、ことを特徴とする請求項1記載のメモリ・コントローラ。
  9. 前記第2の回路が、前記第2の回路から現在出力されている前記第2の制御信号をラッチする第1のラッチ回路と、
    前記第1の制御信号を構成しシーケンシャルサイクルのとき活性化される信号と、前記第1のラッチ回路の出力信号との所定の論理演算結果を出力する第1の論理回路と、
    前記第1の論理回路の出力信号をサンプルする第2のラッチ回路と、
    前記第2のラッチ回路の出力信号と、前記第2の回路から現在出力されている前記第2の制御信号と、前記第1の制御信号を構成しノンシーケンシャルサイクルのとき活性化される信号との所定の論理演算結果を出力する第2の論理回路と、
    前記第2の論理回路の出力信号をラッチする第3のラッチ回路と、
    を備えている、ことを特徴とする請求項8記載のメモリ・コントローラ。
  10. 前記第1の論理回路が、前記シーケンシャルサイクルのとき活性化される信号と前記第1のラッチ回路の出力の反転信号を入力する論理和回路よりなり、
    前記第2の論理回路が、前記第2のラッチ回路の出力信号と、前記第2の制御信号と、前記ノンシーケンシャルサイクルのとき活性化される信号と、を入力する否定論理積回路よりなる、ことを特徴とする請求項9記載のメモリ・コントローラ。
  11. 前記第1の論理回路の出力信号が、前記セレクタの選択制御信号とされる、ことを特徴とする請求項10記載のメモリ・コントローラ。
JP2005284505A 2005-09-29 2005-09-29 メモリ・コントローラ Expired - Fee Related JP4993892B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005284505A JP4993892B2 (ja) 2005-09-29 2005-09-29 メモリ・コントローラ
CNA2006101595429A CN1940898A (zh) 2005-09-29 2006-09-27 存储控制器
US11/528,406 US7516290B2 (en) 2005-09-29 2006-09-28 Memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005284505A JP4993892B2 (ja) 2005-09-29 2005-09-29 メモリ・コントローラ

Publications (2)

Publication Number Publication Date
JP2007094835A JP2007094835A (ja) 2007-04-12
JP4993892B2 true JP4993892B2 (ja) 2012-08-08

Family

ID=37895562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005284505A Expired - Fee Related JP4993892B2 (ja) 2005-09-29 2005-09-29 メモリ・コントローラ

Country Status (3)

Country Link
US (1) US7516290B2 (ja)
JP (1) JP4993892B2 (ja)
CN (1) CN1940898A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972685B2 (en) * 2012-12-21 2015-03-03 Intel Corporation Method, apparatus and system for exchanging communications via a command/address bus
US9684459B2 (en) 2014-11-17 2017-06-20 Kabushiki Kaisha Toshiba Memory system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5353230A (en) * 1976-10-25 1978-05-15 Nec Corp Memory reading system for computer
JPS61220042A (ja) * 1985-03-26 1986-09-30 Toshiba Corp メモリアクセス制御方式
US5459842A (en) * 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
JPH06161868A (ja) 1992-11-19 1994-06-10 Mitsubishi Electric Corp メモリ制御装置
AU6410994A (en) * 1993-03-30 1994-10-24 Ast Research, Inc. Cache address strobe control logic for simulated bus cycle initiation
JPH08212129A (ja) * 1995-02-03 1996-08-20 Oki Electric Ind Co Ltd メモリ装置
JPH11161542A (ja) * 1997-12-01 1999-06-18 Nec Off Syst Ltd Rom読み出し回路およびrom読み出し方法
US6959374B2 (en) * 2003-01-29 2005-10-25 Sun Microsystems, Inc. System including a memory controller configured to perform pre-fetch operations including dynamic pre-fetch control
US7191295B2 (en) * 2003-06-30 2007-03-13 Intel Corporation Sensing word groups in a memory

Also Published As

Publication number Publication date
US20070073991A1 (en) 2007-03-29
CN1940898A (zh) 2007-04-04
JP2007094835A (ja) 2007-04-12
US7516290B2 (en) 2009-04-07

Similar Documents

Publication Publication Date Title
US7990781B1 (en) Write strobe generation for a memory interface controller
JP4809398B2 (ja) フラッシュメモリ装置
JPH07182870A (ja) シンクロナスランダムアクセスメモリ
TWI534615B (zh) 串列周邊介面控制器、串列周邊介面快閃記憶體及其存取方法和存取控制方法
US7197590B2 (en) Method and apparatus for connecting LPC bus and serial flash memory
JP2762138B2 (ja) メモリコントロールユニット
JP2007048022A (ja) 非同期バスインタフェース及びその処理方法
US5442775A (en) Two clock microprocessor design with stall
JP4993892B2 (ja) メモリ・コントローラ
US6360307B1 (en) Circuit architecture and method of writing data to a memory
KR100377708B1 (ko) 저소비 전력화가 가능한 파이프라인 방식의 반도체 기억장치
US7054222B2 (en) Write address synchronization useful for a DDR prefetch SDRAM
JP2009124532A (ja) 半導体集積回路
JP4892852B2 (ja) シリアルインターフェースの制御方法
JP2006268857A (ja) データ処理装置からレジスタ記憶システムにデータを書き込む方法、データ・レジスタおよびレジスタ・アクセス・システム
US11366774B2 (en) Memory latency reduction in XIP mode
US11704258B2 (en) Latency reduction in SPI flash memory devices
JP4377567B2 (ja) 半導体記憶装置と、記憶装置にバーストモードをセットする装置及び方法
JP4651206B2 (ja) 半導体記憶装置および情報処理装置
US6421280B1 (en) Method and circuit for loading data and reading data
JP2005228142A (ja) メモリ制御回路
KR0182644B1 (ko) 메모리의 읽기 및 쓰기제어장치
KR950001586B1 (ko) 64비트-32비트 데이타버스 인터페이스장치
JP2007328647A (ja) Cpu間のデータ転送方式
JPH09251420A (ja) 画像・音声・通信システムのローカルデバイスlsiのリロケータブル制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111107

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: 20120508

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: 20120508

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

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4993892

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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