JP5607118B2 - Memory system - Google Patents

Memory system Download PDF

Info

Publication number
JP5607118B2
JP5607118B2 JP2012168189A JP2012168189A JP5607118B2 JP 5607118 B2 JP5607118 B2 JP 5607118B2 JP 2012168189 A JP2012168189 A JP 2012168189A JP 2012168189 A JP2012168189 A JP 2012168189A JP 5607118 B2 JP5607118 B2 JP 5607118B2
Authority
JP
Japan
Prior art keywords
data
transfer
write
buffer
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
JP2012168189A
Other languages
Japanese (ja)
Other versions
JP2012208961A (en
Inventor
茂雅 塩田
啓之 後藤
洋文 澁谷
郁夫 原
靖宏 中村
Original Assignee
ソリッド ステート ストレージ ソリューションズ インク
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 ソリッド ステート ストレージ ソリューションズ インク filed Critical ソリッド ステート ストレージ ソリューションズ インク
Priority to JP2012168189A priority Critical patent/JP5607118B2/en
Publication of JP2012208961A publication Critical patent/JP2012208961A/en
Application granted granted Critical
Publication of JP5607118B2 publication Critical patent/JP5607118B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、外部からのアクセス要求に応答して外部インタフェースと不揮発性メモリのアクセス制御とを行うメモリシステムにおけるアクセスデータのバッファリング技術に関し、例えばフラッシュメモリカードに適用して有効な技術に関する。   The present invention relates to a buffering technique for access data in a memory system that performs external interface and non-volatile memory access control in response to an external access request, and relates to a technique that is effective when applied to, for example, a flash memory card.

フラッシュメモリカードはフラッシュメモリとコントローラを備え、フラッシュメモリカードに接続するホスト装置の動作速度に比べてフラッシュメモリの動作速度、特に書き込み若しくは書き換え動作速度が遅いため、その動作速度の違いを吸収するためにコントローラはバッファメモリを備える。前記コントローラは外部からの書き込み要求に応答して、外部からの書き込みデータをバッファメモリに入力し、入力したデータをフラッシュメモリに書き込み制御する。また、コントローラは外部からの読み出し要求に応答して、フラッシュメモリから読み出したデータをバッファメモリに一時的に蓄積し、蓄積したデータを外部に出力する。従来のバッファメモリには比較的小容量のSRAM(Static Random Access Memory)若しくはスタティックラッチ等を採用するものが多い。   The flash memory card has a flash memory and a controller, and the flash memory operating speed, especially the writing or rewriting operating speed, is slower than the operating speed of the host device connected to the flash memory card, so as to absorb the difference in operating speed. The controller includes a buffer memory. In response to an external write request, the controller inputs external write data to the buffer memory and controls the input data to be written to the flash memory. In response to a read request from the outside, the controller temporarily accumulates data read from the flash memory in the buffer memory and outputs the accumulated data to the outside. Many conventional buffer memories employ a relatively small capacity SRAM (Static Random Access Memory) or a static latch.

しかしながら、小容量のSRAMを採用したのでは、外部からバッファメモリに入力したデータをフラッシュメモリに書き込みが完了するまでホスト装置からメモリカードへのデータ転送を待たせなければならない。また、フラッシュメモリからバッファメモリに蓄積した読み出しデータを外部に出力するまでフラッシュメモリの新たな読み出し動作を待たせなければならない。特に、フラッシュメモリへの書き込みを失敗した場合、例えば当初の書き込み動作を行ったセクタの不良により代替セクタへの再書き込みを行わなければならないとき、ホスト装置から次の書き込みデータをバッファメモリに受取ることができない。すなわち、フラッシュメモリとコントローラとの間の問題によりホスト装置とコントローラ間のデータ転送を待たせなければならない。これによって、ホスト装置の負担及び処理時間が増えて、データ処理効率が低下するとい問題を生ずる。   However, if a small-capacity SRAM is adopted, it is necessary to wait for data transfer from the host device to the memory card until data input from the outside to the buffer memory is completely written to the flash memory. Further, it is necessary to wait for a new read operation of the flash memory until the read data stored in the buffer memory from the flash memory is output to the outside. In particular, when writing to the flash memory fails, the next write data is received from the host device to the buffer memory, for example, when rewriting to the alternative sector has to be performed due to a defect in the sector in which the initial writing operation was performed. I can't. That is, due to a problem between the flash memory and the controller, it is necessary to wait for data transfer between the host device and the controller. This causes a problem that the burden on the host device and the processing time increase and the data processing efficiency decreases.

本発明者は上記問題点を検討する過程において、公知ではないが、本出願人による特許出願の存在を確認した。特願2001−174978、特願2001−177924、特願2001−213639、特願2001−213640である。これらの出願は揮発性メモリとしてのSDRAMの記憶情報をバックアップするのに不揮発性メモリとしてのフラッシュメモリを用いる技術を提供する。SDRAMはバッファメモリとして位置付けられていない。   In the course of studying the above problems, the present inventor has confirmed the existence of a patent application by the present applicant, although it is not publicly known. They are Japanese Patent Application 2001-174978, Japanese Patent Application 2001-177924, Japanese Patent Application 2001-213639, and Japanese Patent Application 2001-213640. These applications provide a technique that uses a flash memory as a non-volatile memory to back up information stored in an SDRAM as a volatile memory. SDRAM is not positioned as a buffer memory.

本発明の目的は、メモリアクセスを伴うデータ処理即率の向上に寄与するメモリシステムを提供することにある。   An object of the present invention is to provide a memory system that contributes to an improvement in data processing immediate rate with memory access.

本発明の別の目的は、外部からのアクセス要求に応答して外部インタフェースと不揮発性メモリのアクセス制御とを行うメモリシステムにおいて、ホスト装置との間のデータ転送に関するホスト装置の待ち時間短縮、処理負担低減、処理時間低減に寄与することができるメモリシステムを提供することにある。   Another object of the present invention is to reduce waiting time and processing of a host device related to data transfer with a host device in a memory system that performs access control of an external interface and a nonvolatile memory in response to an access request from the outside. An object of the present invention is to provide a memory system that can contribute to reducing the burden and the processing time.

本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。   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]メモリシステムは、書き換え可能な不揮発性メモリと、バッファメモリと、コントローラとを有する。前記コントローラは、外部装置からのアクセス要求に応答して、前記コントローラと前記外部装置との間の第1データ転送、前記コントローラと前記不揮発性メモリとの間の第2データ転送、及び前記コントローラと前記バッファメモリとの間の第3データ転送を制御し、前記第3データ転送における前記コントローラから前記バッファメモリへの転送と前記バッファメモリから前記コントローラへの転送とを時分割で制御し、この時分割による転送に並行して前記第1データ転送又は前記第2データ転送を可能にする。   [1] The memory system includes a rewritable nonvolatile memory, a buffer memory, and a controller. In response to an access request from an external device, the controller transmits a first data transfer between the controller and the external device, a second data transfer between the controller and the nonvolatile memory, and the controller. The third data transfer to and from the buffer memory is controlled, and the transfer from the controller to the buffer memory and the transfer from the buffer memory to the controller in the third data transfer are controlled in a time-sharing manner. The first data transfer or the second data transfer is made possible in parallel with the transfer by division.

上記より、外部からのライトアクセス要求に応答するときコントローラは、バッファメモリへの書込みデータの蓄積とバッファメモリに蓄積した書込みデータの出力とを時分割で行ない、その書き込みデータ蓄積処理に並行して第2データ転送による不揮発性メモリへの書込みデータの転送を行なうことができ、また、その書き込みデータ出力処理に並行して第1データ転送による外部装置からの次の書き込みデータの入力を行なうことができる。外部からのリードアクセス要求に応答するときコントローラは、バッファメモリへの読み出しデータの蓄積とバッファメモリに蓄積した読み出しデータの出力とを時分割で行ない、その読み出しデータ蓄積処理に並行して第1データ転送による外部装置への読み出しデータの転送を行なうことができ、また、その読み出しデータ出力処理に並行して第2データ転送による不揮発性メモリからの次の読み出しデータの入力を行なうことができる。   From the above, when responding to a write access request from the outside, the controller performs time-sharing of write data accumulation in the buffer memory and output of the write data accumulated in the buffer memory, and in parallel with the write data accumulation processing The write data can be transferred to the nonvolatile memory by the second data transfer, and the next write data can be input from the external device by the first data transfer in parallel with the write data output processing. it can. When responding to a read access request from the outside, the controller accumulates read data in the buffer memory and outputs the read data accumulated in the buffer memory in a time-sharing manner, and executes the first data in parallel with the read data accumulation processing. The read data can be transferred to the external device by the transfer, and the next read data from the nonvolatile memory can be input by the second data transfer in parallel with the read data output processing.

上記バッファメモリのバッファリング機能により、外部装置例えばホスト装置による複数の書込みデータの供給タイミングに多くの待ち時間を必要とせず、また、ホスト装置による複数の読み出しデータの取得タイミングに多くの待ち時間を必要としない。したがって、ホスト装置とコントローラとの間のデータ転送に関するホスト装置の待ち時間短縮、処理負担低減、処理時間低減に寄与することができる。これは、メモリアクセスを伴うデータ処理即率の向上に寄与する。   Due to the buffering function of the buffer memory, a large waiting time is not required for the supply timing of a plurality of write data by an external device such as a host device, and a long waiting time is required for the acquisition timing of a plurality of read data by the host device. do not need. Therefore, it is possible to contribute to shortening the waiting time of the host device regarding the data transfer between the host device and the controller, reducing the processing load, and reducing the processing time. This contributes to an improvement in data processing immediate rate with memory access.

本発明の望ましい一つの態様として、上記バッファリング機能を最大限発揮させるには前記第3データ転送の動作速度を、前記第1データ転送速度の大凡2倍よりも速くすることが望ましい。理論上ホスト装置の待ち時間がなくなる。   As one desirable mode of the present invention, it is desirable that the operation speed of the third data transfer is higher than about twice the first data transfer speed in order to maximize the buffering function. Theoretically there is no waiting time for the host device.

本発明の望ましい一つの態様として、前記バッファメモリをシングルポートのクロック同期型の揮発性メモリとし、FIFO動作させるのがよい。バッファメモリの高速化とアクセス制御の容易を実現できる。不揮発性メモリは例えばフラッシュメモリである。   As a desirable mode of the present invention, it is preferable that the buffer memory is a single-port clock synchronous volatile memory and performs a FIFO operation. It is possible to increase the speed of the buffer memory and facilitate access control. The nonvolatile memory is, for example, a flash memory.

第1転送と第3転送との間のバッファリング、第2転送と第3転送との間のバッファリングを実現する一つの態様として、前記コントローラは、前記外部装置とバッファメモリとの間に配置されるデュアルポートのデータバッファと、前記バッファメモリと前記不揮発性メモリとの間に配置されるデュアルポートのデータバッファとを有するのが望ましい。第1データ転送と第3データ転送の並列化、第2データ転送と第3データ転送の並列化のための制御が更に容易になる。   As one aspect for realizing buffering between the first transfer and the third transfer and buffering between the second transfer and the third transfer, the controller is arranged between the external device and the buffer memory. Preferably, the dual-port data buffer and a dual-port data buffer disposed between the buffer memory and the nonvolatile memory are provided. Control for parallelization of the first data transfer and the third data transfer and parallelization of the second data transfer and the third data transfer are further facilitated.

[2]本発明の別の観点によるメモリシステムは、書き換え可能な不揮発性メモリと、バッファメモリと、コントローラとを有する。前記コントローラは、外部装置に接続される第1データ転送制御部と、前記不揮発性メモリに接続される第2データ転送制御部と、前記バッファメモリに接続され前記第1データ転送制御部からの転送要求及び第2データ転送制御部からの転送要求に応答してバッファメモリとの間のデータ転送を制御する転送調停部とを有する。前記第1データ転送制御部は、デュアルポートのデータバッファを介して外部装置と転送調停部に接続され、転送調停部に転送要求を出力する。前記第2データ転送制御部は、デュアルポートのデータバッファを介して不揮発性メモリと転送調停部に接続され、転送調停部に転送要求を出力する。転送調停部は、第1データ転送制御部からの転送要求と第2データ転送制御部からの転送要求に対し、前記バッファメモリに対する書き込み方向の転送と前記バッファメモリに対する読み出し方向の転送とを時分割で制御する。   [2] A memory system according to another aspect of the present invention includes a rewritable nonvolatile memory, a buffer memory, and a controller. The controller includes a first data transfer control unit connected to an external device, a second data transfer control unit connected to the nonvolatile memory, and a transfer from the first data transfer control unit connected to the buffer memory. And a transfer arbitration unit that controls data transfer to and from the buffer memory in response to the request and a transfer request from the second data transfer control unit. The first data transfer control unit is connected to an external device and a transfer arbitration unit via a dual port data buffer, and outputs a transfer request to the transfer arbitration unit. The second data transfer control unit is connected to the nonvolatile memory and the transfer arbitration unit via a dual-port data buffer, and outputs a transfer request to the transfer arbitration unit. The transfer arbitration unit time-divides transfer in the write direction with respect to the buffer memory and transfer in the read direction with respect to the buffer memory in response to the transfer request from the first data transfer control unit and the transfer request from the second data transfer control unit. To control.

上記より、外部装置とコントローラとの間のデータ転送は第1データ転送制御部におけるデータバッファでバッファリングされ、不揮発性メモリとコントローラとの間のデータ転送は第2データ転送制御部におけるデータバッファでバッファリングされ、双方のデータバッファとバッファメモリとの間のデータ転送を時分割で行なうことができる。よって、外部からのライトアクセス要求に応答するときコントローラは、バッファメモリへの書込みデータの蓄積とバッファメモリに蓄積した書込みデータの出力とを時分割で行ない、その書き込みデータ蓄積処理に並行して第2転送制御部のデータバッファから不揮発性メモリに書込みデータの転送を行なうことができ、また、その書き込みデータ出力処理に並行して第1転送制御部のデータバッファに外部装置からの次の書き込みデータを取り込むことができる。外部装置からのリードアクセス要求に応答するときコントローラは、バッファメモリへの読み出しデータの蓄積とバッファメモリに蓄積した読み出しデータの出力とを時分割で行ない、その読み出しデータ蓄積処理に並行して第1転送制御部のデータバッファから外部装置へ読み出しデータの転送を行なうことができ、また、その読み出しデータ出力処理に並行して第2転送制御部にデータバッファに不揮発性メモリからの次の読み出しデータの取込みを行なうことができる。   As described above, data transfer between the external device and the controller is buffered by the data buffer in the first data transfer control unit, and data transfer between the nonvolatile memory and the controller is performed by the data buffer in the second data transfer control unit. Buffered, data transfer between both data buffers and buffer memory can be performed in a time-sharing manner. Therefore, when responding to a write access request from the outside, the controller performs time-sharing of the accumulation of write data to the buffer memory and the output of the write data accumulated in the buffer memory, and in parallel with the write data accumulation process. 2 Write data can be transferred from the data buffer of the transfer controller to the nonvolatile memory, and the next write data from the external device is transferred to the data buffer of the first transfer controller in parallel with the write data output processing. Can be imported. When responding to a read access request from an external device, the controller performs time-division for storing read data in the buffer memory and outputting read data stored in the buffer memory, and in parallel with the read data storage processing, The read data can be transferred from the data buffer of the transfer control unit to the external device, and in parallel with the read data output process, the second transfer control unit can store the next read data from the nonvolatile memory in the data buffer. Uptake can be performed.

上記バッファリング機能により、外部装置例えばホスト装置による複数の書込みデータの供給タイミングに多くの待ち時間を必要とせず、また、ホスト装置による複数の読み出しデータの取得タイミングに多くの待ち時間を必要としない。したがって、ホスト装置とコントローラ間のデータ転送に関するホスト装置の待ち時間短縮、処理負担低減、処理時間低減に寄与することができる。これは、メモリアクセスを伴うデータ処理即率の向上に寄与する。   The above buffering function does not require a lot of waiting time for the supply timing of a plurality of write data by an external device such as a host device, and does not require a lot of waiting time for the acquisition timing of a plurality of read data by the host device. . Therefore, it is possible to contribute to shortening the waiting time, reducing the processing load, and reducing the processing time of the host device regarding data transfer between the host device and the controller. This contributes to an improvement in data processing immediate rate with memory access.

本発明の具体的な態様として、外部からのライトアクセス要求に応答するとき、前記第1データ転送制御部は外部装置からデータバッファに所定量のデータが蓄積されたとき転送調停部にバッファメモリに対する書き込みのための転送要求を出力し、前記第2データ転送制御部はデータバッファに所定量のデータがないとき転送調停部にバッファメモリからデータバッファに対する読み出しのための転送要求を出力する。また、外部からのリードアクセス要求に応答するとき、前記第2データ転送制御部はバッファメモリからデータバッファに所定量のデータが蓄積されたとき転送調停部にバッファメモリに対する書き込みのための転送要求を出力し、前記第1データ転送制御部はデータバッファに所定量のデータがないとき転送調停部にバッファメモリに対する読み出しのための転送要求を出力する。   As a specific aspect of the present invention, when responding to a write access request from the outside, the first data transfer control unit stores a predetermined amount of data in the data buffer from the external device, and transfers the buffer arbitration unit to the buffer memory. A transfer request for writing is output, and the second data transfer control unit outputs a transfer request for reading from the buffer memory to the data buffer when there is no predetermined amount of data in the data buffer. In response to an external read access request, the second data transfer control unit sends a transfer request for writing to the buffer memory to the transfer arbitration unit when a predetermined amount of data is stored in the data buffer from the buffer memory. The first data transfer control unit outputs a transfer request for reading to the buffer memory to the transfer arbitration unit when there is no predetermined amount of data in the data buffer.

本発明の望ましい一つの態様として、上記バッファリング機能を最大限発揮させるには、前記調停部によるバッファメモリとの間のデータ転送の動作速度を、前記第1転送制御部による外部との間のデータ転送の動作速度に対して大凡2倍よりも速くすることが望ましい。理論上ホスト装置の待ち時間がなくなる。   As a desirable aspect of the present invention, in order to maximize the buffering function, the operation speed of data transfer between the arbitration unit and the buffer memory is set to the outside by the first transfer control unit. It is desirable to make it faster than about twice the operation speed of data transfer. Theoretically there is no waiting time for the host device.

本発明の望ましい一つの態様として、前記バッファメモリをシングルポートのクロック同期型の揮発性メモリで構成し、FIFO動作させるのがよい。バッファメモリの高速化とアクセス制御が容易である。不揮発性メモリは例えばフラッシュメモリである。   As a desirable mode of the present invention, it is preferable that the buffer memory is composed of a single-port clock-synchronous volatile memory and performs a FIFO operation. Faster buffer memory and easier access control. The nonvolatile memory is, for example, a flash memory.

本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。   The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.

すなわち、外部からのライトアクセス要求に応答するときコントローラは、バッファメモリへの書込みデータの蓄積とバッファメモリに蓄積した書込みデータの出力とを時分割で行なうことができる。データバッファをデュアルポート化すれば、その書き込みデータ蓄積処理に並行して第2データ転送による不揮発性メモリへの書込みデータの転送を行なうことができ、また、その書き込みデータ出力処理に並行して第1データ転送による外部装置からの次の書き込みデータの入力を行なうことができる。   That is, when responding to a write access request from the outside, the controller can perform time-division of accumulation of write data in the buffer memory and output of the write data accumulated in the buffer memory. If the data buffer is dual ported, the write data can be transferred to the nonvolatile memory by the second data transfer in parallel with the write data accumulation process, and the second data transfer in parallel with the write data output process. The next write data can be input from the external device by one data transfer.

外部からのリードアクセス要求に応答するときコントローラは、バッファメモリへの読み出しデータの蓄積とバッファメモリに蓄積した読み出しデータの出力とを時分割で行なう。データバッファのデュアルポート化により、その読み出しデータ蓄積処理に並行して第1データ転送による外部装置への読み出しデータの転送を行なうことができ、また、その読み出しデータ出力処理に並行して第2データ転送による不揮発性メモリからの次の読み出しデータの入力を行なうことができる。   When responding to a read access request from the outside, the controller performs time division of accumulation of read data in the buffer memory and output of the read data accumulated in the buffer memory. Due to the dual port of the data buffer, the read data can be transferred to the external device by the first data transfer in parallel with the read data accumulation process, and the second data in parallel with the read data output process. The next read data can be input from the nonvolatile memory by the transfer.

これにより、外部装置例えばホスト装置による複数の書込みデータの供給タイミングに多くの待ち時間を必要とさせず、また、ホスト装置による複数の読み出しデータの取得タイミングに多くの待ち時間を必要とさせない。したがって、ホスト装置とコントローラ間のデータ転送に関するホスト装置の待ち時間短縮、処理負担低減、処理時間低減に寄与することができる。メモリアクセスを伴うデータ処理効率を向上させることができる。   Thus, a large waiting time is not required for the supply timing of a plurality of write data by an external device such as a host device, and a long waiting time is not required for the acquisition timing of a plurality of read data by the host device. Therefore, it is possible to contribute to shortening the waiting time, reducing the processing load, and reducing the processing time of the host device regarding data transfer between the host device and the controller. Data processing efficiency with memory access can be improved.

本発明に係るメモリシステムの一例であるフラッシュメモリカードのブロック図である。1 is a block diagram of a flash memory card which is an example of a memory system according to the present invention. ファイルメモリとして機能されるフラッシュメモリのローカルなメモリアドレスマッピング図である。It is a local memory address mapping figure of the flash memory functioning as a file memory. コントローラのホストインタフェース部分のアドレスマッピングを全体的に示す説明図である。It is explanatory drawing which shows generally the address mapping of the host interface part of a controller. SDRAMのFIFO形式を例示する説明図である。It is explanatory drawing which illustrates the FIFO format of SDRAM. 転送調停部による制御動作を例示するフローチャートである。It is a flowchart which illustrates the control operation by a transfer arbitration part. ライト転送要求時におけるCPUの制御動作を例示するフローチャートである。It is a flowchart which illustrates control operation of CPU at the time of a write transfer request. リードアクセス要求時におけるCPUの制御動作を例示するフローチャートである。6 is a flowchart illustrating a control operation of a CPU when a read access request is made. ライトアクセス要求があったときのホスト装置、SDRAM及びフラッシュメモリのデータ転送動作を相関的に示すタイミングチャートである。6 is a timing chart correlating data transfer operations of the host device, SDRAM, and flash memory when a write access request is made. リードアクセス要求があったときのホスト装置、SDRAM及びフラッシュメモリのデータ転送動作を相関的に示すタイミングチャートである。5 is a timing chart showing the data transfer operations of the host device, SDRAM, and flash memory in correlation with each other when a read access request is made. SDRAMの書き込みサイクルTdwの一例を示すタイミングチャートである。4 is a timing chart showing an example of a write cycle Tdw of the SDRAM. SDRAMの読み出しサイクルTdrの一例を示すタイミングチャートである。4 is a timing chart showing an example of a read cycle Tdr of the SDRAM. フラッシュメモリに対する書き込みサイクルTfwの一例を示すタイミングチャートである。4 is a timing chart showing an example of a write cycle Tfw for a flash memory. フラッシュメモリに対する読み出しサイクルTfrの一例を示すタイミングチャートである。It is a timing chart which shows an example of the read cycle Tfr with respect to flash memory. ライトアクセス要求に応答するデータ転送処理フローとしてフラッシュメモリに対する書き込みエラーがない場合を示したフローチャートである。10 is a flowchart showing a case where there is no write error to the flash memory as a data transfer processing flow in response to a write access request. ライトアクセス要求に応答する別のデータ転送処理フローとしてフラッシュメモリに対する書き込みエラーがある場合を示したフローチャートである。12 is a flowchart showing a case where there is a write error to the flash memory as another data transfer processing flow in response to a write access request. リードアクセス要求に応答するデータ転送処理フローを例示するフローチャートである。6 is a flowchart illustrating a data transfer processing flow in response to a read access request.

図1には本発明に係るメモリシステムの一例であるフラッシュメモリカードが例示される。同図に示されるフラッシュメモリカード1は、所定のセクタアドレス(物理アドレス)単位にデータ記憶領域とその管理領域とを有するフラッシュメモリ(不揮発性メモリ)2と、メモリシステムの外部に接続される外部情報処理装置例えばホスト装置3からの要求に応答して前記フラッシュメモリ2に対するアクセス制御を行うコントローラ4、前記コントローラ4に接続されたバッファメモリ5とを有する。   FIG. 1 illustrates a flash memory card which is an example of a memory system according to the present invention. The flash memory card 1 shown in FIG. 1 includes a flash memory (nonvolatile memory) 2 having a data storage area and a management area in a predetermined sector address (physical address) unit, and an external connected to the outside of the memory system. An information processing apparatus, for example, a controller 4 that controls access to the flash memory 2 in response to a request from the host apparatus 3, and a buffer memory 5 connected to the controller 4.

前記フラッシュメモリ2は、特に図示はしないが、電気的に消去及び書き込み可能なフラッシュッメモリセルをマトリクス配置したメモリセルアレイを有する。フラッシュッメモリセルは、特に制限されないが、チャンネル領域の上に絶縁膜で分離されたフローティングゲートとコントロールゲートを有し、例えば、電子をフローティングゲートにホットエレクトロン注入することでメモリセルの閾値電圧を上げ(例えば書き込みと称する)、また、フローティングゲートに注入されている電子をゲート絶縁膜を介してトンネル電流で放出させることによりメモリセルの閾値電圧を低くする(消去と称する)。フラッシュメモリセルのドレインはビット線に、ソースはソース線に、コントロールゲートはワード線に接続される。例えば、ワード線に割り当てられたアドレスが前記セクタアドレスである。セクタドレス信号によるワード線選択はワード線選択回路で行われる。セクタアドレスで指定された複数のフラッシュメモリセルの一部に対する選択はカラムアドレスを起点にカラムアドレスカウンタで生成されるカラムアドレス信号に基づいて行われる。尚、フラッシュメモリとして例えば特開2001−23383公報に記載の構成を採用することができる。   Although not shown in particular, the flash memory 2 has a memory cell array in which flash memory cells that can be electrically erased and written are arranged in a matrix. Although the flash memory cell is not particularly limited, it has a floating gate and a control gate separated by an insulating film on the channel region. For example, the threshold voltage of the memory cell is increased by injecting electrons into the floating gate. The threshold voltage of the memory cell is lowered (referred to as erasing) by raising (for example, referred to as writing) and discharging electrons injected into the floating gate with a tunnel current through the gate insulating film. The flash memory cell has a drain connected to the bit line, a source connected to the source line, and a control gate connected to the word line. For example, an address assigned to a word line is the sector address. The word line selection by the sector address signal is performed by a word line selection circuit. Selection of a part of the plurality of flash memory cells designated by the sector address is performed based on a column address signal generated by a column address counter starting from the column address. For example, a configuration described in Japanese Patent Laid-Open No. 2001-23383 can be adopted as the flash memory.

前記フラッシュメモリ2は例えばファイルメモリとして機能され、ローカルなメモリアドレスマッピングは図2に例示されるように、セクタアドレス1〜nの各アドレスに管理領域とユーザデータ記憶領域が割当てられ、管理領域には各セクタの良否(有効性)更には代替先の有無などの情報が記憶される。   The flash memory 2 functions as, for example, a file memory, and local memory address mapping is performed by assigning a management area and a user data storage area to each address of the sector addresses 1 to n as illustrated in FIG. Stores information such as pass / fail (effectiveness) of each sector and the presence / absence of an alternative destination.

前記バッファメモリ5は例えばクロック同期型の揮発性メモリであるシングルポートのSDRAM(Synchronous Dynamic Random Access Memory)によって構成される。以下バッファメモリ5を単にSDRAM5とも記す。前記SDRAM5は例えばダイナミック型メモリセルをマトリクス配置したメモリセルアレイを有し、クロック同期でコマンド及びアドレス等を入力し、コマンドで指定されるライトアクセス又はリードアクセスなどをクロック信号に同期して高速に行なうことができる。例えばホスト装置3とコントローラ4との間のバスを介するデータ転送(第1データ転送)の速度を100MB(メガ・バイト)/s(秒)とすると、SDRAM5とコントローラ4との間のバスを介するデータ転送(第3データ転送)の速度はその2倍以上である266MB/sとされる。フラッシュメモリ2とコントローラ4との間のバスを介するデータ転送(第2データ転送)の速度はフラッシュッメモリ2自体のアクセス速度が遅いのでそれに合わせて20MB/s程度である。   The buffer memory 5 is composed of, for example, a single-port SDRAM (Synchronous Dynamic Random Access Memory) which is a clock synchronous volatile memory. Hereinafter, the buffer memory 5 is also simply referred to as SDRAM 5. The SDRAM 5 has, for example, a memory cell array in which dynamic memory cells are arranged in a matrix. A command and an address are input in synchronization with the clock, and write access or read access specified by the command is performed at high speed in synchronization with the clock signal. be able to. For example, if the speed of data transfer (first data transfer) between the host device 3 and the controller 4 is 100 MB (megabytes) / s (seconds), the bus between the SDRAM 5 and the controller 4 is transferred. The speed of data transfer (third data transfer) is 266 MB / s, which is more than twice that speed. The speed of data transfer (second data transfer) via the bus between the flash memory 2 and the controller 4 is about 20 MB / s in accordance with the low access speed of the flash memory 2 itself.

前記コントローラ4は、ホストデータ転送制御部(第1データ転送制御部)11、フラッシュデータ転送制御部(第2データ転送制御部)12、転送調停部13、CPU14、及び制御レジスタ15から成る。   The controller 4 includes a host data transfer control unit (first data transfer control unit) 11, a flash data transfer control unit (second data transfer control unit) 12, a transfer arbitration unit 13, a CPU 14, and a control register 15.

前記制御レジスタ15はコマンドレジスタ(15C)、アドレスレジスタ(15A)及びステータスレジスタ(15S)を有する。ホスト装置3はフラッシュメモリカード1をアクセスするときコマンドレジスタ15Cにリード又はライトなどのコマンドをセットし、アクセスアドレスをアドレスレジスタ15Aにセットする。ホスト装置3とフラッシュメモリカード1との状態はステータスレジスタ15Sを介して相互に認識可能にされる。   The control register 15 includes a command register (15C), an address register (15A), and a status register (15S). When accessing the flash memory card 1, the host device 3 sets a command such as read or write in the command register 15C, and sets an access address in the address register 15A. The states of the host device 3 and the flash memory card 1 can be mutually recognized via the status register 15S.

CPU14はフラッシュメモリカード1を全体的に制御する。コマンドレジスタ15Cにコマンドがセットされると、CPU14はそのコマンドを解釈し、フラッシュメモリ2に対するメモリインタフェース制御と、ホスト装置3との間のデータインタフェース制御、そして、インタフェース制御されるデータに対するバッファ制御等を行なうことによって、アドレスレジスタ15Aにセットされたアドレスに対応するフラッシュメモリ2のセクタに対するアクセスを完了する。   The CPU 14 controls the flash memory card 1 as a whole. When a command is set in the command register 15C, the CPU 14 interprets the command, controls the memory interface for the flash memory 2, the data interface control with the host device 3, and the buffer control for the interface-controlled data. Thus, the access to the sector of the flash memory 2 corresponding to the address set in the address register 15A is completed.

前記ホストデータ転送制御部11はデュアルポートのデータバッファ20を介してホスト装置3と転送調停部13を接続する。転送要求回路21は転送調停部13に対して信号HDRQで転送要求を出し、信号HDACKでアクノリッジを受けることにより転送調停部13との間でデータバッファ20がデータの入力又は出力動作される。この入力又は出力は、ホストデータ転送制御部11が、信号HDIRを使って転送調停部13に指示する。このHDIR信号は、CPU14が転送動作開始前に、ホストデータ転送制御部11に設定する。ホストデータ転送制御部11は信号HDACKによるアクノリッジに応答して開始したデータバッファ20の転送調停部13に対する入力又は出力動作量が規定量に達したとき信号HEND_IRQをCPUにアサートして転送動作を終了する。これによってCPU14は転送調停部13に新たな転送要求を受付可能にする。ホストデータ転送制御部11はホスト装置3にウェイト信号HWAITを出力し、それをアサートすることによってホスト装置3に動作の休止を指示することができる。   The host data transfer control unit 11 connects the host device 3 and the transfer arbitration unit 13 via a dual port data buffer 20. The transfer request circuit 21 issues a transfer request to the transfer arbitration unit 13 with the signal HDRQ and receives an acknowledge with the signal HDACK, whereby the data buffer 20 is operated to input or output data with the transfer arbitration unit 13. For this input or output, the host data transfer control unit 11 instructs the transfer arbitration unit 13 using the signal HDIR. The HDIR signal is set in the host data transfer control unit 11 before the CPU 14 starts the transfer operation. The host data transfer control unit 11 asserts the signal HEND_IRQ to the CPU and terminates the transfer operation when the input or output operation amount to the transfer arbitration unit 13 of the data buffer 20 started in response to the acknowledge by the signal HDACK reaches a specified amount. To do. As a result, the CPU 14 enables the transfer arbitration unit 13 to accept a new transfer request. The host data transfer control unit 11 can output a wait signal HWAIT to the host apparatus 3 and instruct the host apparatus 3 to pause the operation by asserting it.

尚、図示はしないが、データバッファ20とホスト装置3側との間の転送動作の可否についてはステータスレジスタ15Sを介するステータスの交換により判断する。ホスト装置3から見るとデータバッファ21はそのアドレス空間にマッピングされている。コントローラ4のホストインタフェース部分のアドレスマッピングを全体的に示すと図3のようになる。   Although not shown, whether or not the transfer operation between the data buffer 20 and the host apparatus 3 is possible is determined by exchanging the status via the status register 15S. When viewed from the host device 3, the data buffer 21 is mapped to the address space. FIG. 3 shows the address mapping of the host interface portion of the controller 4 as a whole.

前記フラッシュデータ転送制御部12はデュアルポートのデータバッファ22を介してフラッシュメモリ2と転送調停部13を接続する。データバッファ22はデュアルポートのFIFOバッファにより構成される。転送要求回路23は転送調停部13に対して信号FDRQで転送要求を出し、信号FDACKでアクノリッジを受けることにより転送調停部13との間でデータバッファ22がデータの入力又は出力動作される。この入力又は出力は、フラッシュデータ転送制御部13が、信号FDIRを使って転送調停部13に指示する。この信号FDIRは、CPU14が転送動作開始前に、フラッシュデータ転送制御部12に設定する。フラッシュデータ転送制御部12は信号FDACKによるアクノリッジに応答して開始したデータバッファ22の転送調停部13に対する入力又は出力動作量が規定量に達したとき信号FEND_IRQをCPUにアサートして転送動作を終了する。これによってCPU14は転送調停部13に新たな転送要求を受付可能にする。尚、図示はしないが、データバッファ22とフラッシュメモリ2側との間の転送動作の可否についてはフラッシュデータ転送制御部12がフラッシュッメモリ2のステータスレジスタを介するステータスの交換により判断する。   The flash data transfer control unit 12 connects the flash memory 2 and the transfer arbitration unit 13 via a dual port data buffer 22. The data buffer 22 is composed of a dual port FIFO buffer. The transfer request circuit 23 issues a transfer request with the signal FDRQ to the transfer arbitration unit 13 and receives an acknowledge with the signal FDACK, whereby the data buffer 22 is operated to input or output data with the transfer arbitration unit 13. For this input or output, the flash data transfer control unit 13 instructs the transfer arbitration unit 13 using the signal FDIR. This signal FDIR is set in the flash data transfer control unit 12 before the CPU 14 starts the transfer operation. The flash data transfer control unit 12 asserts the signal FEND_IRQ to the CPU when the input or output operation amount to the transfer arbitration unit 13 of the data buffer 22 started in response to the acknowledge by the signal FDACK reaches the CPU, and ends the transfer operation. To do. As a result, the CPU 14 enables the transfer arbitration unit 13 to accept a new transfer request. Although not shown, whether or not the transfer operation between the data buffer 22 and the flash memory 2 is possible is determined by the flash data transfer control unit 12 by exchanging the status via the status register of the flash memory 2.

転送調停部13は、転送許可回路30、ホスト転送用アドレスカウンタ31及びフラッシュ転送用アドレスカウンタ32から成る。前記ホスト転送用アドレスカウンタ31はデータバッファ20とバッファメモリ5との間のデータ転送におけるSDRAM5のアクセスアドレスを生成する。前記フラッシュ転送用アドレスカウンタ32はデータバッファ22とフラッシュメモリ2との間のデータ転送におけるSDRAM5のアクセスアドレスを生成する。前記アドレスカウンタ31,32に対するアドレスプリセットはホスト装置3からのアクセス要求毎にCPU14が行なう。ここでは、SDRAM5は図4に例示されるようにFIFO形式でアクセス制御される。前記ホスト転送用アドレスカウンタ31はデータバッファ20からSDRAM5への書き込みにおいてはライトアドレスポインタとして機能され、SDRAM5からデータバッファ20への読み出しにおいてはリードアドレスポインタとして機能される。前記フラッシュ転送用アドレスカウンタ32はデータバッファ22からSDRAM5への書き込みにおいてはライトアドレスポインタとして機能され、SDRAM5からデータバッファ22への読み出しにおいてはリードアドレスポインタとして機能される。転送許可回路30は転送要求信号HDRQとFDRQとの競合を調停し、調停結果を信号HDACK、FDACKにより転送要求回路21,23に返す。   The transfer arbitration unit 13 includes a transfer permission circuit 30, a host transfer address counter 31, and a flash transfer address counter 32. The host transfer address counter 31 generates an access address of the SDRAM 5 in data transfer between the data buffer 20 and the buffer memory 5. The flash transfer address counter 32 generates an access address of the SDRAM 5 in data transfer between the data buffer 22 and the flash memory 2. Address presetting for the address counters 31 and 32 is performed by the CPU 14 for each access request from the host device 3. Here, the SDRAM 5 is access controlled in a FIFO format as illustrated in FIG. The host transfer address counter 31 functions as a write address pointer when writing from the data buffer 20 to the SDRAM 5, and functions as a read address pointer when reading from the SDRAM 5 to the data buffer 20. The flash transfer address counter 32 functions as a write address pointer when writing from the data buffer 22 to the SDRAM 5, and functions as a read address pointer when reading from the SDRAM 5 to the data buffer 22. The transfer permission circuit 30 arbitrates the conflict between the transfer request signals HDRQ and FDRQ, and returns the arbitration result to the transfer request circuits 21 and 23 by signals HDACK and FDACK.

図5には転送調停部13による制御動作が例示される。転送調停部13は信号HDRQによってホスト転送要求があるか(S1)、信号FDRQによってフラッシュ転送要求があるか(S2)、リフレッシュする必要があるか(S3)を順次サイクリックに判定している。信号HDRQによりホスト転送要求がある場合、ホスト装置3からのライトアクセス要求に応答する処理ではアドレスカウンタ31が示すSDRAM5のアドレスへの書き込みを行ない、ホスト装置3からのリードアクセス要求に応答する処理ではアドレスカウンタ31が示すSDRAM5のアドレスに対する読み出しを行なって(S1A)、アドレスカウンタ31をインクリメントする(S1B)。信号FDRQによりフラッシュ転送要求がある場合、ホスト装置3からのライトアクセス要求に応答する処理ではアドレスカウンタ32が示すSDRAM5のアドレスに対する読み出し、ホスト装置3からのリードアクセス要求に応答する処理ではアドレスカウンタ32が示すSDRAM5のアドレス対する書き込みを行なって、アドレスカウンタ32をインクリメントする。リフレッシュを要すると判断されればSDRAM5に対する記憶情報のリフレッシュを行なう。リフレッシュアドレスは転送調停部13が保有する図示しないリフレッシュアドレスカウンタを用いて生成される。   FIG. 5 illustrates a control operation by the transfer arbitration unit 13. The transfer arbitration unit 13 sequentially cyclically determines whether there is a host transfer request based on the signal HDRQ (S1), whether there is a flash transfer request based on the signal FDRQ (S2), or whether refresh is necessary (S3). When there is a host transfer request by the signal HDRQ, in the process of responding to the write access request from the host apparatus 3, writing to the address of the SDRAM 5 indicated by the address counter 31 is performed, and in the process of responding to the read access request from the host apparatus 3 The address of the SDRAM 5 indicated by the address counter 31 is read (S1A), and the address counter 31 is incremented (S1B). When there is a flash transfer request by the signal FDRQ, the process of responding to the write access request from the host apparatus 3 reads the address of the SDRAM 5 indicated by the address counter 32, and the process of responding to the read access request from the host apparatus 3 is the address counter 32. Is written to the address of the SDRAM 5, and the address counter 32 is incremented. If it is determined that refresh is required, the stored information in SDRAM 5 is refreshed. The refresh address is generated using a refresh address counter (not shown) held by the transfer arbitration unit 13.

図5より明らかなように、ホスト装置3からのライトアクセス要求に応答する処理では、アドレスカウンタ31が示すSDRAM5のアドレスへの書き込みと、アドレスカウンタ32が示すSDRAM5のアドレスに対する読み出しを、8バイト単位などで時分割即ち交互に行なうことができる。ホスト装置3からのリードアクセス要求に応答する処理ではアドレスカウンタ31が示すSDRAM5のアドレスに対する読み出しと、アドレスカウンタ32が示すSDRAMのアドレス対する書き込みを、8バイト単位などで時分割即ち交互に行なうことができる。   As is apparent from FIG. 5, in the process in response to the write access request from the host device 3, writing to the address of the SDRAM 5 indicated by the address counter 31 and reading to the address of the SDRAM 5 indicated by the address counter 32 are performed in units of 8 bytes. For example, time division, that is, alternately can be performed. In the process in response to the read access request from the host device 3, the read to the address of the SDRAM 5 indicated by the address counter 31 and the write to the address of the SDRAM indicated by the address counter 32 are time-divisionally divided, that is, alternately in units of 8 bytes. it can.

図6にはライト転送要求時におけるCPUの制御動作が例示される。CPU14は、ホスト装置3からのライトアクセス要求を検出すると(S10)、ホスト転送用アドレスカウンタ31のセット、即ち、初期化若しくは初期値のプリセットを行なう(S11)。更にCPU14はホストデータ転送制御部11にホスト装置3からデータバッファ20に入力されるデータを転送調停部13に転送制御する指示を与える(S12)。この後、CPU14はステータスレジスタ15Sに転送可能ステータスをセットしてホスト装置3に書き込みデータのデータバッファ20への転送開始を通知する(S13)。これによって転送調停部13は図5で説明した前記ホスト転送要求(S1)があった時の処理を行うことにより、ホスト装置3からデータバッファ20に8バイトのデータが入力される度にそのデータをアドレスカウンタ31で指定されるSDRAM5に格納可能にされる。更にCPU14は、アドレスレジスタ15Aに入力されたアクセスアドレスからフラッシュメモリ2の物理アドレス即ちセクタアドレスを算出し(S14)、算出したセクタアドレスへのライトコマンドをフラッシュデータ転送制御部4を介してフラッシュメモリ2に設定する(S15)。この後、CPU14はフラッシュ転送用アドレスカウンタ32のセット、即ち、初期化若しくは初期値のプリセットを行なう(S16)。そしてCPU14はフラッシュデータ転送制御部12にSDRAM5からデータバッファ22に8バイトのデータが入力される度にそのデータをフラッシュメモリ2に転送可能とする指示を与える(S17)。この間に転送調停部13は図5で説明した前記フラッシュ転送要求(S2)があった時の処理を行うことにより、データバッファ22の保持データが8バイトになるように、SDRAM5の記憶データをアドレスカウンタ32の値に従ってデータバッファ22の転送する。   FIG. 6 illustrates the control operation of the CPU when a write transfer request is made. When detecting a write access request from the host device 3 (S10), the CPU 14 sets the host transfer address counter 31, that is, initializes or presets an initial value (S11). Further, the CPU 14 instructs the host data transfer control unit 11 to transfer control data transferred from the host device 3 to the data buffer 20 to the transfer arbitration unit 13 (S12). Thereafter, the CPU 14 sets a transferable status in the status register 15S and notifies the host device 3 of the start of transfer of write data to the data buffer 20 (S13). As a result, the transfer arbitration unit 13 performs the processing when the host transfer request (S1) described with reference to FIG. 5 is received, so that each time 8-byte data is input from the host device 3 to the data buffer 20, the data is transferred. Can be stored in the SDRAM 5 specified by the address counter 31. Further, the CPU 14 calculates a physical address, that is, a sector address of the flash memory 2 from the access address input to the address register 15A (S14), and sends a write command to the calculated sector address via the flash data transfer control unit 4 to the flash memory. 2 is set (S15). Thereafter, the CPU 14 sets the flash transfer address counter 32, that is, initializes or presets an initial value (S16). Then, every time 8-byte data is input from the SDRAM 5 to the data buffer 22, the CPU 14 gives an instruction to transfer the data to the flash memory 2 to the flash data transfer control unit 12 (S 17). During this time, the transfer arbitration unit 13 performs processing when the flash transfer request (S2) described with reference to FIG. 5 is performed, so that the data stored in the SDRAM 5 is addressed so that the data held in the data buffer 22 becomes 8 bytes. The data buffer 22 is transferred according to the value of the counter 32.

CPU14は図5のホスト転送要求に応ずる処理とフラッシュ転送要求に応ずる処理が時分割で繰り返されていくいとき、前記信号HEND_IRQ及びFEND_IRQが共にアクティブになる状態を検出して(S18)、ライトアクセス要求待ち状態に入る(S10)。即ち、ホスト装置3から指示されたライトアクセス要求に応答して実行すべきライトデータ数に応ずるデータがSDRAM5に格納されたときHEND_IRQがアクティブにされ、前記実行すべきライトデータ数に応ずるデータがSDRAM5から読み出されたとき信号FEND_IRQがアクティブにされる。   When the process corresponding to the host transfer request and the process corresponding to the flash transfer request in FIG. 5 are repeated in a time-sharing manner, the CPU 14 detects a state where both the signals HEND_IRQ and FEND_IRQ are active (S18), and a write access request. A wait state is entered (S10). That is, HEND_IRQ is activated when data corresponding to the number of write data to be executed in response to a write access request instructed from the host device 3 is stored in the SDRAM 5, and data corresponding to the number of write data to be executed is SDRAM 5. When read from, the signal FEND_IRQ is activated.

図7にはリードアクセス要求時におけるCPUの制御動作が例示される。CPU14は、ホスト装置3からのリードアクセス要求を検出すると(S20)、アドレスレジスタ15Aに入力されたアクセスアドレスからフラッシュメモリ2の物理アドレス即ちセクタアドレスを算出し(S21)、算出したセクタアドレスへのリードコマンドをフラッシュデータ転送制御部4を介してフラッシュメモリ2に設定する(S22)。そしてCPU14はフラッシュ転送用アドレスカウンタ32のセット、即ち、初期化若しくは初期値のプリセットを行なう(S23)。更にCPU14はフラッシュデータ転送制御部12に、フラッシュメモリ2からデータバッファ22に入力されるデータを転送調停部13に転送制御する指示を与える(S24)。これによって転送調停部13は図5で説明した前記フラッシュ転送要求(S2)があった時の処理を行うことにより、フラッシュメモリ2からデータバッファ22に例えば8バイトのデータが入力される度に、そのデータをアドレスカウンタ32で指定されるSDRAM5に格納可能にする。この後、CPU14はホスト転送用アドレスカウンタ31のセット、即ち、初期化若しくは初期値のプリセットを行なう(S25)。そしてCPU14はホストデータ転送制御部11にSDRAM5からデータを読み出してデータバッファ20に供給する指示を与える(S26)。CPU14はステータスレジスタ15に転送可能ステータスをセットしてホスト装置3に読み出しデータの取込みが可能であることを通知し(S13)、転送調停部13は図5で説明した前記ホスト転送要求(S1)があった時の処理を行なって、データバッファ20の保持データが8バイトになるようにSDRAM5の記憶データをアドレスカウンタ31の値に従ってデータバッファ20の転送する。   FIG. 7 illustrates a CPU control operation at the time of a read access request. When the CPU 14 detects a read access request from the host device 3 (S20), the CPU 14 calculates the physical address, that is, the sector address of the flash memory 2 from the access address input to the address register 15A (S21), and transfers it to the calculated sector address. A read command is set in the flash memory 2 via the flash data transfer control unit 4 (S22). The CPU 14 sets the flash transfer address counter 32, that is, initializes or presets an initial value (S23). Further, the CPU 14 gives an instruction to the flash data transfer control unit 12 to control transfer of data input from the flash memory 2 to the data buffer 22 to the transfer arbitration unit 13 (S24). As a result, the transfer arbitration unit 13 performs the processing when the flash transfer request (S2) described with reference to FIG. 5 is performed, so that, for example, each time 8 bytes of data is input from the flash memory 2 to the data buffer 22, The data can be stored in the SDRAM 5 specified by the address counter 32. Thereafter, the CPU 14 sets the host transfer address counter 31, that is, initializes or presets an initial value (S25). Then, the CPU 14 instructs the host data transfer control unit 11 to read data from the SDRAM 5 and supply it to the data buffer 20 (S26). The CPU 14 sets a transferable status in the status register 15 and notifies the host device 3 that the read data can be taken in (S13), and the transfer arbitration unit 13 sends the host transfer request (S1) described in FIG. The data stored in the SDRAM 5 is transferred to the data buffer 20 in accordance with the value of the address counter 31 so that the data held in the data buffer 20 becomes 8 bytes.

CPU14は図5のホスト転送要求に応ずる処理とフラッシュ転送要求に応ずる処理が時分割で繰り返されていくいとき、前記信号HEND_IRQ及びFEND_IRQが共にアクティブになる状態を検出して(S28)、リードアクセス要求待ち状態に入る(S20)。即ち、ホスト装置3から指示されたリードアクセス要求に応答して実行すべきリードデータ数に応ずるデータがSDRAM5に格納されたときFEND_IRQがアクティブにされ、前記実行すべきリードデータ数に応ずるデータがSDRAM5から読み出されたとき信号HEND_IRQがアクティブにされる。   When the processing corresponding to the host transfer request and the processing corresponding to the flash transfer request in FIG. 5 are repeated in a time-sharing manner, the CPU 14 detects a state in which both the signals HEND_IRQ and FEND_IRQ are active (S28), and a read access request A waiting state is entered (S20). That is, when data corresponding to the number of read data to be executed in response to the read access request instructed from the host device 3 is stored in the SDRAM 5, FEND_IRQ is activated, and data corresponding to the number of read data to be executed is SDRAM 5 When read from, signal HEND_IRQ is activated.

図8にはライトアクセス要求があったときのホスト装置3、SDRAM5及びフラッシュメモリ2のデータ転送動作を相関的に示す。(A)はホスト装置3の動作状態、(B)はSDRAM5の動作状態、(C)はフラッシュメモリ2の動作状態を示す。H_ADRはホスト装置3からコントローラ4に接続するアドレスバス、H_DATはホスト装置3とコントローラ4を接続するデータバス、H_WEはホスト装置3が出力するライトイネーブル信号、H_OEはホスト装置3が出力するアウトプットイネーブル信号である。D_CLKはSDRAM5に供給される同期クロック信号、D_WEはコントローラ4からSDRAM5に供給されるライトイネーブル信号、D_DATはコントローラ4とSDRAM5を接続するデータバスである。F_OEはコントローラ4がフラッシュメモリ2に出力するアウトプットイネーブル信号、F_WEはコントローラ4からフラッシュメモリ2に供給されるライトイネーブル信号、F_CSはコントローラ4からフラッシュメモリ2に出力されるシリアルクロック信号、F_DATはコントローラ4とフラッシュメモリ2を接続するデータバスである。   FIG. 8 correlates the data transfer operations of the host device 3, SDRAM 5 and flash memory 2 when there is a write access request. (A) shows the operating state of the host device 3, (B) shows the operating state of the SDRAM 5, and (C) shows the operating state of the flash memory 2. H_ADR is an address bus connected from the host device 3 to the controller 4, H_DAT is a data bus connecting the host device 3 and the controller 4, H_WE is a write enable signal output by the host device 3, and H_OE is an output output by the host device 3. This is an enable signal. D_CLK is a synchronous clock signal supplied to the SDRAM 5, D_WE is a write enable signal supplied from the controller 4 to the SDRAM 5, and D_DAT is a data bus connecting the controller 4 and the SDRAM 5. F_OE is an output enable signal output from the controller 4 to the flash memory 2, F_WE is a write enable signal supplied from the controller 4 to the flash memory 2, F_CS is a serial clock signal output from the controller 4 to the flash memory 2, and F_DAT is A data bus for connecting the controller 4 and the flash memory 2.

ホスト装置3はコントローラ4に向けて、アドレスレジスタ15Aにアドレス値、コマンドレジスタ15Cにライト転送コマンドを出力し、コントローラ4のステータスレジスタ15Sを読み込む。転送可能を示すステータスを読み込んだ後、データバッファ20のデータレジスタにデータを転送していく。データ転送はブロック単位であり、各ブロック例えば8バイトである。コントローラ4はフラッシュメモリ2に書き込みのセクタアドレス値、ライト転送コマンドを与えておく。コントローラ4はデータブロック1のデータを入力すると、そのデータをSDRAM5に書き込む。このときの書き込みサイクルはTdwで示される。これによって書き込まれたデータブロック1のデータは今度はSDRAM5からコントローラ4に読み出される。このときの読み出しサイクルはTdrで示される。コントローラ4に読み出されたデータブロック1のデータはフラッシュメモリ2に転送される。SDRAM5がデータブロック1のデータに対して書き込みサイクルTdwと読み出しサイクルを行っている最中に、ホスト装置3は、次のデータブロック2のデータをコントローラ4のバッファ20に向けて出力している。フラッシュメモリ2にデータブロック1のデータを転送しているときSDRAM5にはデータブロック2のデータに対するライトサイクルとリードサイクルが時分割で行われる。データブロック4までのデータに対して上記と同様の処理が行なわれる。   The host device 3 outputs an address value to the address register 15A and a write transfer command to the command register 15C toward the controller 4, and reads the status register 15S of the controller 4. After reading the status indicating that transfer is possible, the data is transferred to the data register of the data buffer 20. Data transfer is in units of blocks, and each block is, for example, 8 bytes. The controller 4 gives a write sector address value and a write transfer command to the flash memory 2. When the controller 4 inputs the data of the data block 1, the controller 4 writes the data into the SDRAM 5. The write cycle at this time is indicated by Tdw. The data of the data block 1 thus written is read from the SDRAM 5 to the controller 4 this time. The read cycle at this time is indicated by Tdr. The data of the data block 1 read by the controller 4 is transferred to the flash memory 2. While the SDRAM 5 is performing the write cycle Tdw and the read cycle for the data of the data block 1, the host device 3 outputs the data of the next data block 2 toward the buffer 20 of the controller 4. When the data of the data block 1 is transferred to the flash memory 2, the SDRAM 5 performs a write cycle and a read cycle for the data of the data block 2 in a time division manner. The same processing as described above is performed on the data up to data block 4.

この例に従えば、コントローラ4が例えばデータバッファ20の転送調停部13側ポートからデータブロック3のデータを読み出してSDRAM5に格納し(Ti〜Tj)、これに続けてSDRAM5に格納したデータをデータバッファ22にその転送調停部13側ポートから格納しているとき(Tj〜Tk)、データバッファ20のホスト装置3側ポートから次のデータブロック4のデータがデータバッファ20に入力されると共に、データバッファ22のフラッシュメモリ2側ポートからその前のデータブロック2のデータがフラッシュメモリ2に転送される。要するに、ホスト装置3からのライトアクセス要求に応答するときコントローラ4は、SDRAM5への書込みデータの蓄積とSDRAM5に蓄積した書込みデータの出力とを時分割で行ない、前記SDRAM5への書き込みデータ蓄積処理に並行してフラッシュメモリ2への書込みデータの転送を行なうことができ、また、SDRAM5からの前記書き込みデータ出力処理に並行してホスト装置3からの次の書き込みデータの入力を行なうことができる。   According to this example, the controller 4 reads the data of the data block 3 from, for example, the transfer arbitration unit 13 side port of the data buffer 20, stores it in the SDRAM 5 (Ti to Tj), and subsequently stores the data stored in the SDRAM 5 as data. When data is stored in the buffer 22 from the transfer arbitration unit 13 side port (Tj to Tk), data of the next data block 4 is input to the data buffer 20 from the host device 3 side port of the data buffer 20 and data The data of the previous data block 2 is transferred to the flash memory 2 from the flash memory 2 side port of the buffer 22. In short, when responding to a write access request from the host device 3, the controller 4 accumulates the write data in the SDRAM 5 and outputs the write data accumulated in the SDRAM 5 in a time-sharing manner for the write data accumulation processing in the SDRAM 5. Write data can be transferred to the flash memory 2 in parallel, and next write data can be input from the host device 3 in parallel with the write data output processing from the SDRAM 5.

図8の例では、フラッシュメモリ2に対するライトコマンド列は、アドレス値(セクタドレス値)、ライト転送コマンド、書き込みデータ(データブロック1〜データブロック4)、及びライトスタートコマンドとされ、フラッシュメモリ2はライトスタートコマンドが入力されること条件に、その直前までに入力された情報を一かたまりのコマンド列と解釈し、その結果にしたがってフラッシュメモリ2の内部で書き込み動作を開始する。図8においてアドレス値入力からライトスタートコマンド入力までのコマンド列供給サイクルはTfwとして図示される。   In the example of FIG. 8, the write command sequence for the flash memory 2 is an address value (sector address value), a write transfer command, write data (data block 1 to data block 4), and a write start command. Under the condition that the write start command is input, the information input immediately before is interpreted as a set of command strings, and the write operation is started in the flash memory 2 according to the result. In FIG. 8, the command string supply cycle from address value input to write start command input is shown as Tfw.

図9にはリードアクセス要求があったときのホスト装置、SDRAM及びフラッシュメモリのデータ転送動作を相関的に示す。(A)はホスト装置3の動作状態、(B)はSDRAM5の動作状態、(C)はフラッシュメモリ2の動作状態を示す。   FIG. 9 correlates the data transfer operations of the host device, SDRAM, and flash memory when there is a read access request. (A) shows the operating state of the host device 3, (B) shows the operating state of the SDRAM 5, and (C) shows the operating state of the flash memory 2.

ホスト装置3はコントローラ4に向けて、アドレスレジスタ15Aにアドレス値、コマンドレジスタ15Cにリード転送コマンドを出力する。コントローラ4はそのアドレス値とフラッシュリード転送コマンドをフラッシュメモリ2に与える。これによって、フラッシュメモリ2はクロック信号F_CSに同期してデータブロック1〜データブロック4のデータを順次読み出す。図9においてその読み出しサイクルはTfrとして図示される。最初に読み出されたデータブロック1のデータはデータバッファ22を介してSDRAM5に書き込まれる。この書き込みサイクルはTdwとして図示される。更に書き込まれたデータブロック1のデータはSDRAM5から読み出されてデータバッファ20に供給される。この読み出しサイクルはTdrとして図示される。データバッファ20にデータブロック1のデータが揃ったところで、ステータスレジスタ15Sが転送可能とされる。ホスト装置3はそのステータスを認識することによりデータブロック1のデータを取りこむ。データブロック2〜データブロック4についても上記同様の処理が行なわれる。   The host device 3 outputs an address value to the address register 15A and a read transfer command to the command register 15C toward the controller 4. The controller 4 gives the address value and the flash read transfer command to the flash memory 2. As a result, the flash memory 2 sequentially reads data from the data block 1 to the data block 4 in synchronization with the clock signal F_CS. In FIG. 9, the read cycle is illustrated as Tfr. The data of the data block 1 read first is written into the SDRAM 5 via the data buffer 22. This write cycle is illustrated as Tdw. Further, the written data of the data block 1 is read from the SDRAM 5 and supplied to the data buffer 20. This read cycle is illustrated as Tdr. When the data of the data block 1 is ready in the data buffer 20, the status register 15S can be transferred. The host device 3 takes in the data of the data block 1 by recognizing the status. The same processing as described above is performed for data blocks 2 to 4.

この例に従えば、コントローラ4が例えばデータバッファ22の転送調停部13側ポートからデータブロック3のデータを読み出してSDRAM5に格納し(Tp〜Tq)、これに続けてSDRAM5に格納したデータをデータバッファ20に格納しているとき(Tq〜Tr)、データバッファ22のフラッシュメモリ2側ポートから次のデータブロック4のデータがデータバッファ22に入力されると共に、データバッファ20のホスト装置3側ポートからその前のデータブロック2のデータがホスト装置3に取り込まれる。要するに、ホスト装置3からのリードアクセス要求に応答するときコントローラ4は、SDRAM5に対する読み出しデータの蓄積とSDRAM5に蓄積した読み出しデータの出力とを時分割で行ない、前記SDRAM5に対する読み出しデータ蓄積処理に並行してホスト装置3がバッファメモリ20から読み出しデータを取り込むことができ、また、SDRAM5から前記読み出しデータを出力する処理に並行してフラッシュメモリ2からの次の読み出しデータをバッファメモリ22に入力する処理を行なうことができる。   According to this example, the controller 4 reads the data of the data block 3 from the transfer arbitration unit 13 side port of the data buffer 22 and stores it in the SDRAM 5 (Tp to Tq), and subsequently stores the data stored in the SDRAM 5 as data. When the data is stored in the buffer 20 (Tq to Tr), the data of the next data block 4 is input to the data buffer 22 from the flash memory 2 side port of the data buffer 22 and the host device 3 side port of the data buffer 20 Data of the previous data block 2 is taken into the host device 3. In short, when responding to a read access request from the host device 3, the controller 4 accumulates read data in the SDRAM 5 and outputs read data accumulated in the SDRAM 5 in a time-sharing manner, and in parallel with the read data accumulation processing in the SDRAM 5. Thus, the host device 3 can fetch the read data from the buffer memory 20, and in parallel with the process of outputting the read data from the SDRAM 5, the process of inputting the next read data from the flash memory 2 to the buffer memory 22. Can be done.

図10には前記SDRAMの書き込みサイクルTdwの一例が示される。CLKは前記D_CLKに対応するクロック信号、CKEはクロックイネーブル信号、CS_Nはチップ選択信号、RAS_Nはロウアドレスストローブ信号、CAS_Nは絡むアドレスストローブ信号、WE_Nは前記D_WEに対応するライトイネーブル信号、A14〜A0はアドレス信号、D15〜D0はデータである。   FIG. 10 shows an example of the write cycle Tdw of the SDRAM. CLK is a clock signal corresponding to the D_CLK, CKE is a clock enable signal, CS_N is a chip selection signal, RAS_N is a row address strobe signal, CAS_N is an address strobe signal, WE_N is a write enable signal corresponding to the D_WE, and A14 to A0 Is an address signal, and D15 to D0 are data.

図11には前記SDRAMの読み出しサイクルTdrの一例が示される。   FIG. 11 shows an example of the read cycle Tdr of the SDRAM.

図12にはフラッシュメモリ2に対する書き込みサイクルTfwの一例が示される。1FHはライト転送コマンド、SA8(1)、SA(2)はアドレス値、40Hはライトスタートコマンドを意味する。書込みデータ(Din)はシリアルクロックSCに同期して入力される。   FIG. 12 shows an example of a write cycle Tfw for the flash memory 2. 1FH is a write transfer command, SA8 (1) and SA (2) are address values, and 40H is a write start command. Write data (Din) is input in synchronization with the serial clock SC.

図13にはフラッシュメモリ2に対する読み出しサイクルTfrの一例が示される。00H/F0Hはリードト転送コマンド、SA8(1)、SA(2)はアドレス値を意味する。読み出しデータ(Dout)はシリアルクロックSCに同期して出力される。   FIG. 13 shows an example of a read cycle Tfr for the flash memory 2. 00H / F0H means a read transfer command, and SA8 (1) and SA (2) mean an address value. Read data (Dout) is output in synchronization with the serial clock SC.

図14にはライトアクセス要求に応答するデータ転送処理フローが例示される。同図の処理フローはフラッシュメモリ2に対する書き込みエラーがない場合を想定する。ホスト装置3からライトアクセス要求が発行されると、コントローラ4はホスト装置3にライト転送準備可能を通知し、フラッシュメモリ2にライト転送要求を出す。これを受けてホスト装置3はコントローラ4に書込みデータのライト転送を行い、コントローラ4はフラッシュメモリ2に書込みデータをライト転送する。フラッシュメモリ2はライト動作を行ない、ここでは、コントローラ4に正常終了を返す。データバッファ20に新たなブロックの書込みデータを蓄積する余裕がないような場合にコントローラ4は信号HWAITをアサートしてライト転送一時中断要求をホスト装置3に出す。コントローラ4は新たなブロックの書込みデータを蓄積可能になると、信号HWAITをネゲートしてライト転送再開をホスト装置3に与える。これによって、ホスト装置3はコントローラ4にライト転送を再開し、コントローラ4はフラッシュメモリ2に書き込みデータの転送を再開する。ライトアクセス要求に応答する全ての処理を終えるとコントローラ4はホスト装置3にライト転送終了通知を与える。   FIG. 14 illustrates a data transfer processing flow in response to a write access request. The processing flow in the figure assumes a case where there is no write error to the flash memory 2. When a write access request is issued from the host device 3, the controller 4 notifies the host device 3 that write transfer preparation is possible and issues a write transfer request to the flash memory 2. In response to this, the host device 3 performs write transfer of write data to the controller 4, and the controller 4 writes and transfers write data to the flash memory 2. The flash memory 2 performs a write operation, and returns a normal end to the controller 4 here. When there is no room to store the write data of the new block in the data buffer 20, the controller 4 asserts the signal HWAIT and issues a write transfer temporary suspension request to the host device 3. When the controller 4 can accumulate write data of a new block, the controller 4 negates the signal HWAIT and gives the host device 3 resumption of write transfer. As a result, the host apparatus 3 resumes write transfer to the controller 4, and the controller 4 resumes transfer of write data to the flash memory 2. When all processing in response to the write access request is completed, the controller 4 gives a write transfer end notification to the host device 3.

図15にはライトアクセス要求に応答する別のデータ転送処理フローが例示される。同図の処理フローはフラッシュメモリ2に対する書き込みエラーがある場合を想定する。ホスト装置3からライトアクセス要求が発行されると、コントローラ4はホスト装置3にライト転送準備可能を通知し、フラッシュメモリ2にライト転送要求を出す。これを受けてホスト装置3はコントローラ4に書込みデータのライト転送を行い、コントローラ4はフラッシュメモリ2に書込みデータをライト転送する。フラッシュメモリ2はライト動作を行ない、ここでは、書き込みエラーを生じ、コントローラ4に書き込み失敗終了を通知する。これを受けてコントローラ4は信号HWAITをアサートしてライト転送一時中断要求をホスト装置3に出す。その後、コントローラ4は、信号bHWAITをネゲートしてホスト装置3にライト転送再開を通知し、フラッシュメモリ2に代替ブロックライト転送要求を出す。そして、ホスト装置3が書込みデータをコントローラ4にライト転送し、コントローラ4はそのライトデータをフラッシュメモリ2にライト転送する。ここではフラッシュメモリ2は更に書き込み失敗し、書き込み失敗終了をコントローラ4に通知する。その後もコントローラ4は失敗に係る書き込み処理をフラッシュメモリ2に要求する。この間に、ホスト装置3は後続のライトデータをコントローラ4に予め転送しておくことができる。最後にライトアクセス要求に応答する全ての処理を終えるとコントローラ4はホスト装置3にライト転送終了通知を与える。   FIG. 15 illustrates another data transfer processing flow in response to a write access request. The processing flow in the figure assumes a case where there is a write error to the flash memory 2. When a write access request is issued from the host device 3, the controller 4 notifies the host device 3 that write transfer preparation is possible and issues a write transfer request to the flash memory 2. In response to this, the host device 3 performs write transfer of write data to the controller 4, and the controller 4 writes and transfers write data to the flash memory 2. The flash memory 2 performs a write operation. Here, a write error occurs, and the controller 4 is notified of the end of the write failure. In response to this, the controller 4 asserts the signal HWAIT and issues a write transfer temporary interruption request to the host device 3. Thereafter, the controller 4 negates the signal bHWAIT to notify the host device 3 of resumption of write transfer, and issues a substitute block write transfer request to the flash memory 2. Then, the host device 3 writes and transfers the write data to the controller 4, and the controller 4 writes and transfers the write data to the flash memory 2. Here, the flash memory 2 further fails in writing, and notifies the controller 4 of the end of writing failure. Thereafter, the controller 4 requests the flash memory 2 to perform a writing process related to the failure. During this time, the host device 3 can transfer subsequent write data to the controller 4 in advance. Finally, when all the processes responding to the write access request are completed, the controller 4 gives a write transfer end notification to the host device 3.

図16にはリードアクセス要求に応答するデータ転送処理フローが例示される。ホスト装置3からリードアクセス要求が発行されると、コントローラ4はホスト装置3にリード転送準備可能を通知し、フラッシュメモリ2にリード転送要求を出す。これを受けてフラッシュメモリ2は読み出しデータをコントローラ4にリード転送し、コントローラ4はそのリードデータをホスト装置3にリード転送する。ここでは、フラッシュメモリ2はコントローラ4に正常終了を返す。データバッファ20に新たなブロックの読み出しデータを蓄積する余裕がないような場合にコントローラ4は信号HWAITをアサートしてリード転送一時中断要求をホスト装置3に出す。コントローラ4は新たなブロックの読み出しデータを蓄積可能になると、信号HWAITをネゲートしてリード転送再開をホスト装置3に要求し、フラッシュメモリ2にリード転送要求を出す。これにより、上記同様に、フラッシュメモリ2は読み出しデータをコントローラ4にリード転送し、コントローラ4はそのリードデータをホスト装置3にリード転送する。リードアクセス要求に応答する全ての処理を終えるとコントローラ4はホスト装置3にリード転送終了通知を与える。   FIG. 16 illustrates a data transfer processing flow in response to a read access request. When a read access request is issued from the host device 3, the controller 4 notifies the host device 3 that read transfer preparation is possible and issues a read transfer request to the flash memory 2. In response to this, the flash memory 2 reads and transfers the read data to the controller 4, and the controller 4 reads and transfers the read data to the host device 3. Here, the flash memory 2 returns a normal end to the controller 4. When there is no room to store the read data of the new block in the data buffer 20, the controller 4 asserts the signal HWAIT and issues a read transfer temporary suspension request to the host device 3. When the controller 4 can store the read data of the new block, the controller 4 negates the signal HWAIT to request the host device 3 to resume the read transfer, and issues a read transfer request to the flash memory 2. As a result, as described above, the flash memory 2 performs read transfer of the read data to the controller 4, and the controller 4 performs read transfer of the read data to the host device 3. When all processing in response to the read access request is completed, the controller 4 gives a read transfer end notification to the host device 3.

コントローラ4によるSDRAM5を用いた上記バッファリング機能により、ホスト装置3による複数の書込みデータの供給タイミングに多くの待ち時間を必要とせず、また、ホスト装置3による複数の読み出しデータの取得タイミングに多くの待ち時間を必要としない。したがって、ホスト装置3とコントローラ4間のデータ転送に関するホスト装置3の待ち時間短縮、処理負担低減、処理時間低減に寄与することができる。これは、フラッシュメモリカード1に対するアクセスを伴うデータ処理効率を向上させることができる。   The buffering function using the SDRAM 5 by the controller 4 does not require much waiting time for the supply timing of the plurality of write data by the host device 3, and many timings for acquiring the plurality of read data by the host device 3. No waiting time is required. Therefore, it is possible to contribute to shortening the waiting time of the host device 3 regarding the data transfer between the host device 3 and the controller 4, reducing the processing load, and reducing the processing time. This can improve the data processing efficiency that accompanies access to the flash memory card 1.

以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。   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.

例えば、不揮発性メモリはフラッシュメモリに限定されず、高誘電体メモリ等その他の記憶形式を採用する書換え可能な不揮発性メモリであってよい。また、1個のメモリセルに対する情報記憶ビット数も1ビットに限定されず、2ビット以上であってもよい。また、メモリシステムはPCカードのようなフラッシュメモリカードに限定されず、データプロセッサを実装したプロセッサボード上において構成することも可能である。また、コントローラにおいてホストインタフェース部分のデータバッファ、不揮発性メモリインタフェース部分のデータバッファはデュアルポートに限定されず、シングルポートのメモリ、若しくはレジスタ或はラッチ回路であってもよい。要するに、バッファメモリに対する前記時分割によるデータ転送に並行してホストインタフェース又はフラッシュインタフェース部分でデータ入出力が可能であればよい。   For example, the non-volatile memory is not limited to a flash memory, and may be a rewritable non-volatile memory that employs another storage format such as a high dielectric memory. Also, the number of information storage bits for one memory cell is not limited to 1 bit, and may be 2 bits or more. Further, the memory system is not limited to a flash memory card such as a PC card, but can be configured on a processor board on which a data processor is mounted. In the controller, the data buffer of the host interface part and the data buffer of the nonvolatile memory interface part are not limited to the dual port, but may be a single port memory, a register, or a latch circuit. In short, it suffices if data can be input / output at the host interface or the flash interface in parallel with the data transfer by the time division to the buffer memory.

以下に、本発明の実施態様を列挙する。   The embodiments of the present invention are listed below.

1.書き換え可能な不揮発性メモリと、バッファメモリと、コントローラとを有し、
前記コントローラは、外部装置に接続される第1データ転送制御部と、前記不揮発性メモリに接続される第2データ転送制御部と、前記バッファメモリに接続され前記第1データ転送制御部からの転送要求及び第2データ転送制御部からの転送要求に応答してバッファメモリとの間のデータ転送を制御する転送調停部とを有し、
前記第1データ転送制御部は、データバッファを介して外部装置と転送調停部に接続され、転送調停部に転送要求を出力し、
前記第2データ転送制御部は、データバッファを介して不揮発性メモリと転送調停部に接続され、転送調停部に転送要求を出力し、
転送調停部は、第1データ転送制御部からの転送要求と第2データ転送制御部からの転送要求に対し、前記バッファメモリに対する書き込み方向の転送と前記バッファメモリに対する読み出し方向の転送とを時分割で制御し、
外部からのライトアクセス要求に応答するとき、前記第1データ転送制御部は外部装置からデータバッファに所定量のデータが蓄積されたとき転送調停部にバッファメモリに対する書き込みのための転送要求を出力し、前記第2データ転送制御部はデータバッファに所定量のデータがないとき転送調停部にバッファメモリからデータバッファに対する読み出しのための転送要求を出力することを特徴とするメモリシステム。
1. A rewritable nonvolatile memory, a buffer memory, and a controller;
The controller includes a first data transfer control unit connected to an external device, a second data transfer control unit connected to the nonvolatile memory, and a transfer from the first data transfer control unit connected to the buffer memory. A transfer arbitration unit that controls data transfer to and from the buffer memory in response to the request and a transfer request from the second data transfer control unit;
The first data transfer control unit is connected to an external device and a transfer arbitration unit via a data buffer, and outputs a transfer request to the transfer arbitration unit,
The second data transfer control unit is connected to the nonvolatile memory and the transfer arbitration unit via a data buffer, and outputs a transfer request to the transfer arbitration unit,
The transfer arbitration unit time-divides transfer in the write direction with respect to the buffer memory and transfer in the read direction with respect to the buffer memory in response to the transfer request from the first data transfer control unit and the transfer request from the second data transfer control unit. Control with
When responding to an external write access request, the first data transfer control unit outputs a transfer request for writing to the buffer memory to the transfer arbitration unit when a predetermined amount of data is accumulated in the data buffer from the external device. The second data transfer control unit outputs a transfer request for reading from the buffer memory to the data buffer to the transfer arbitration unit when there is no predetermined amount of data in the data buffer.

2.外部からのリードアクセス要求に応答するとき、前記第2データ転送制御部はバッファメモリからデータバッファに所定量のデータが蓄積されたとき転送調停部にバッファメモリに対する書き込みのための転送要求を出力し、前記第1データ転送制御部はデータバッファに所定量のデータがないとき転送調停部にバッファメモリに対する読み出しのための転送要求を出力することを特徴とする前項1に記載のメモリシステム。 2. When responding to an external read access request, the second data transfer control unit outputs a transfer request for writing to the buffer memory to the transfer arbitration unit when a predetermined amount of data is accumulated in the data buffer from the buffer memory. 2. The memory system according to item 1, wherein the first data transfer control unit outputs a transfer request for reading to the buffer memory to the transfer arbitration unit when there is no predetermined amount of data in the data buffer.

1 ・・・ フラッシュメモリカード
2 ・・・ フラッシュメモリ
3 ・・・ ホスト装置
4 ・・・ コントローラ
5 ・・・ バッファメモリ(SDRAM)
11 ・・・ ホストデータ転送制御部
12 ・・・ フラッシュデータ転送制御部
13 ・・・ 転送調停部
14 ・・・ CPU
15 ・・・ 制御レジスタ(コマンドレジスタ、アドレスレジスタ、ステータスレジスタ)
20 ・・・ データバッファ
21 ・・・ 転送要求回路
22 ・・・ データバッファ
23 ・・・ 転送要求回路
31 ・・・ ホスト転送アドレスカウンタ
32 ・・・ フラッシュ転送アドレスカウンタ
33 ・・・ 転送許可回路
DESCRIPTION OF SYMBOLS 1 ... Flash memory card 2 ... Flash memory 3 ... Host apparatus 4 ... Controller 5 ... Buffer memory (SDRAM)
11: Host data transfer control unit 12: Flash data transfer control unit 13: Transfer arbitration unit 14: CPU
15 ... Control register (command register, address register, status register)
20 ... Data buffer 21 ... Transfer request circuit 22 ... Data buffer 23 ... Transfer request circuit 31 ... Host transfer address counter 32 ... Flash transfer address counter 33 ... Transfer permission circuit

Claims (4)

き換え可能な不揮発性メモリと、バッファメモリと、コントローラとを備えるメモリシステムであって、
前記コントローラは、第1のデータバッファを有する第1のデータ転送制御部と、第2のデータバッファを有する第2のデータ転送制御部とを有し、
前記バッファメモリは、前記第1のデータバッファを介して外部装置に接続され、及び、前記第2のデータバッファを介して前記不揮発性メモリに接続され、
前記コントローラは、前記外部装置からのライトアクセス要求に応答して、前記第1のデータバッファから前記バッファメモリへのデータブロックの書き込み処理と、続く前記バッファメモリから前記第2のデータバッファへの該データブロックの読み出し処理とを実施し、さらに、該書き込み処理と該読み出し処理とに並行して、該書き込み処理と該読み出し処理とが実施される前記データブロックの次のデータブロックが前記外部装置から前記第1のデータバッファに転送されることとなるように、かつ、該書き込み処理と該読み出し処理とが実施される前記データブロックの1つ前のデータブロックが前記第2のデータバッファから前記不揮発性メモリに転送されることとなるように時分割方式で制御を行い、
前記時分割方式による制御が繰り返されて、前記第2のデータバッファから前記不揮発性メモリに2以上の所定数の一連のデータブロックが転送された後に、前記不揮発性メモリは、前記コントローラからのコマンドに応答して、該不揮発性メモリへの該一連のデータブロックの書き込み動作を開始し、
前記書き込み動作において書き込みを正常に終了した場合は、前記不揮発性メモリは書き込みの正常終了を前記コントローラに通知し、
前記書き込み動作において書き込みエラーを生じた場合は、前記不揮発性メモリは書き込み失敗を前記コントローラに通知し、
前記コントローラは、前記書き込み失敗が通知されると、前記不揮発性メモリに失敗に係る書き込み処理を要求すると共に、前記外部装置からの後続の書き込みデータの転送を受けることからなる、メモリシステム。
A nonvolatile memory capable rewritten, a memory system comprising a buffer memory, and a controller,
The controller includes a first data transfer control unit having a first data buffer and a second data transfer control unit having a second data buffer,
The buffer memory is connected to an external device via the first data buffer, and is connected to the nonvolatile memory via the second data buffer;
In response to the write access request from the external device, the controller writes the data block from the first data buffer to the buffer memory, and then continues from the buffer memory to the second data buffer. A data block read process, and in parallel with the write process and the read process, a data block next to the data block on which the write process and the read process are executed is received from the external device. The data block immediately before the data block to be transferred to the first data buffer and subjected to the writing process and the reading process is transferred from the second data buffer to the nonvolatile memory. Control in a time-sharing manner to be transferred to the memory,
After the control by the time division method is repeated and a predetermined number of two or more series of data blocks are transferred from the second data buffer to the nonvolatile memory, the nonvolatile memory receives a command from the controller. In response to the write operation of the series of data blocks to the nonvolatile memory,
When the writing is normally terminated in the writing operation, the nonvolatile memory notifies the controller of the normal termination of the writing,
When a write error occurs in the write operation, the nonvolatile memory notifies the controller of a write failure,
When the controller is notified of the write failure, the controller requests the nonvolatile memory to perform a write process related to the failure and receives transfer of subsequent write data from the external device .
前記コントローラは、前記外部装置からのリードアクセス要求に応答して、前記第2のデータバッファから前記バッファメモリへのデータブロックの書き込み処理と、続く前記バッファメモリから前記第1のデータバッファへの該データブロックの読み出し処理とを実施し、さらに、該書き込み処理と該読み出し処理とに並行して、該書き込み処理と該読み出し処理とが実施される前記データブロックの次のデータブロックが前記不揮発性メモリから前記第2のデータバッファに転送されることとなるように、かつ、該書き込み処理と該読み出し処理とが実施される前記データブロックの1つ前のデータブロックが前記第1のデータバッファから前記外部装置に転送されることとなるように時分割方式で制御を行うことからなる、請求項1に記載のメモリシステム。  In response to the read access request from the external device, the controller writes the data block from the second data buffer to the buffer memory, and then continues the processing from the buffer memory to the first data buffer. A data block read process, and in parallel with the write process and the read process, a data block next to the data block on which the write process and the read process are performed is the nonvolatile memory From the first data buffer to the second data buffer, and the data block immediately before the data block on which the writing process and the reading process are performed is transferred from the first data buffer to the second data buffer. The method according to claim 1, wherein the control is performed in a time-sharing manner so as to be transferred to an external device. Placing the memory system. 前記コントローラは、前記外部装置からのライトアクセス要求に対する全ての処理を終了すると、前記外部装置にライト転送終了通知を与える、請求項1または2に記載のメモリシステム。  3. The memory system according to claim 1, wherein the controller gives a write transfer end notification to the external device when all processing for the write access request from the external device is completed. 前記コントローラは、前記外部装置からのリードアクセス要求に対する全ての処理を終了すると、前記外部装置にリード転送終了通知を与える、請求項2に記載のメモリシステム。  The memory system according to claim 2, wherein the controller gives a read transfer end notification to the external device when all processing for the read access request from the external device is completed.
JP2012168189A 2012-07-30 2012-07-30 Memory system Expired - Fee Related JP5607118B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012168189A JP5607118B2 (en) 2012-07-30 2012-07-30 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012168189A JP5607118B2 (en) 2012-07-30 2012-07-30 Memory system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009043637A Division JP5095649B2 (en) 2009-02-26 2009-02-26 Memory system

Publications (2)

Publication Number Publication Date
JP2012208961A JP2012208961A (en) 2012-10-25
JP5607118B2 true JP5607118B2 (en) 2014-10-15

Family

ID=47188564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012168189A Expired - Fee Related JP5607118B2 (en) 2012-07-30 2012-07-30 Memory system

Country Status (1)

Country Link
JP (1) JP5607118B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7413108B2 (en) 2020-03-23 2024-01-15 キオクシア株式会社 semiconductor equipment

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2703668B2 (en) * 1991-03-18 1998-01-26 株式会社日立製作所 Data transfer control device and magnetic disk control device
JPH05265939A (en) * 1992-03-23 1993-10-15 Toshiba Corp Data transfer equipment
JPH06103026A (en) * 1992-09-18 1994-04-15 Tokyo Electron Ltd Memory system
JP3550293B2 (en) * 1997-12-26 2004-08-04 株式会社ルネサステクノロジ High-speed rewritable storage device using nonvolatile memory and data rewriting method of the storage device
WO2001044957A1 (en) * 1999-12-17 2001-06-21 Sony Corporation Device and method for processing information and recorded medium
JP3871184B2 (en) * 2000-06-12 2007-01-24 シャープ株式会社 Semiconductor memory device
JP2002024081A (en) * 2000-07-10 2002-01-25 Hitachi Ltd Semiconductor integrated circuit device
JP4082913B2 (en) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ Memory system

Also Published As

Publication number Publication date
JP2012208961A (en) 2012-10-25

Similar Documents

Publication Publication Date Title
JP4082913B2 (en) Memory system
JP5032027B2 (en) Semiconductor disk control device
KR101120305B1 (en) A method, apparatus, and system for partial memory refresh
US20130279283A1 (en) Memory devices and memory controllers
US5822251A (en) Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers
US8667368B2 (en) Method and apparatus for reading NAND flash memory
US7441070B2 (en) Method for accessing a non-volatile memory via a volatile memory interface
JP4643729B2 (en) Interleave control device, interleave control method, and memory system
TWI506424B (en) Methods and memory devices where a host is used to configure the memory devices to perform an automatic background operation
TW201743220A (en) Memory and method for operating a memory with interruptible command sequence
KR20180022016A (en) Semiconductor device
JP4447636B2 (en) Memory system
US6622222B2 (en) Sequencing data on a shared data bus via a memory buffer to prevent data overlap during multiple memory read operations
JP5095649B2 (en) Memory system
JP5607118B2 (en) Memory system
JP4598025B2 (en) Memory system
KR20210012818A (en) Memory device and operating method thereof
US11972135B2 (en) Status polling based on die-generated pulsed signal
US11734184B2 (en) Effective avoidance of line cache misses
KR20120069953A (en) Non-volitile memory device and method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140324

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140327

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140424

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140430

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140526

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140709

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140827

R150 Certificate of patent or registration of utility model

Ref document number: 5607118

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees