(57)【特許請求の範囲】
【請求項１】
複数のフラッシュメモリと、
前記各フラッシュメモリ毎に独立して接続されて、前記各フラッシュメモリ毎に入出力データを転送するための複数のデータバスと、
前記入出力データを格納するバッファメモリと、
前記複数のデータバスと接続し、かつ前記バッファメモリと１本のバッファ用データバスを介して接続し、前記各フラッシュメモリと前記バッファメモリとの間での入出力データの転送を制御するコントローラとを具備し、
前記コントローラは、
前記各データバス毎に設けられて、データ転送用アドレス、データ転送方向、及びデータ転送状態のそれぞれを示す情報を格納するための第１のレジスタ群と、
前記各データバス毎に設けられて、前記各データバスでのデータ転送に従って前記バッファ用データバスによるデータの時分割転送を行なうための第２のレジスタ群とを含むことを特徴とするデータ記憶システム。
【請求項２】
前記第２のレジスタ群は、前記各データバス毎に第１と第２のレジスタを組とするバス用レジスタを有し、
前記コントローラは、前記バッファメモリから出力されるデータを転送する前記データバスに対応する第１と第２のレジスタを交互に使用して、前記バッファ用データバスによるデータの時分割転送を制御するように構成されていることを特徴とする請求項１に記載のデータ記憶システム。
【請求項３】
第１及び第２のフラッシュメモリと、前記第１及び第２のフラッシュメモリ毎に独立して接続されて、入出力データを転送するための第１及び第２のデータバスと、前記入出力データを格納するバッファメモリと、
前記第１及び第２のデータバスと接続し、かつ前記バッファメモリと１本のバッファ用データバスを介して接続し、前記第１及び第２のフラッシュメモリと前記バッファメモリとの間での入出力データの転送を制御するコントローラとを有するデータ記憶システムに適用するデータ転送方法であって、
前記コントローラは、
前記第１及び第２の各データバス毎に第１と第２のレジスタを組とするバス用レジスタを有し、
前記バッファ用データバスの使用可能時に、前記第１または第２のデータバスでのデータ転送要求に応じて、前記バッファメモリから出力されるデータを当該データ転送要求に該当する前記第１または第２のデータバスに対応する前記第１のレジスタに格納するステップと、
前記第１または第２のデータバスの前記データ転送要求が連続的に発生したときに、前記バッファメモリから出力されるデータを該当する前記第２のレジスタに格納するステップと、
前記第１または前記第２のレジスタから前記データ転送要求に該当する前記第１または第２のデータバスに、前記第１のレジスタに格納したデータと前記第２のレジスタに格納したデータを交互に転送するステップと
を有する手順を実行することを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムに適用し、フラッシュＥＥＰＲＯＭから構成される半導体ディスク装置を使用したデータ記憶システムに関する。
【０００２】
【従来の技術】
従来、コンピュータシステムでは、メインメモリとは異なり、電源遮断時にデータの保存を維持し、かつ大容量のデータ保存機能を有する外部記憶装置が必要不可欠な構成要素になっている。この外部記憶装置として、磁気ディスク装置や光ディスク装置等と比較して、高速アクセスの可能なフラッシュＥＥＰＲＯＭ  （フラッシュメモリ）から構成される半導体ディスク装置が注目されている。
【０００３】
半導体ディスク装置は、概略的には複数のフラッシュＥＥＰＲＯＭのメモリチップと、コントローラと、バッファＲＡＭとからなる。コントローラは、ホストシステムと各フラッシュＥＥＰＲＯＭとのインターフェースであり、ホストシステムのアクセス要求に応じて各フラッシュＥＥＰＲＯＭのリード／ライト制御を実行する。バッファＲＡＭは、ホストシステムとコントローラとのデータ転送を行なうためのバッファメモリであり、ホストシステムから転送されたライトデータを格納し、また各フラッシュＥＥＰＲＯＭから読出されたリードデータを格納する。
【０００４】
【発明が解決しようとする課題】
前述したように、半導体ディスク装置では、コントローラがホストシステムと各フラッシュＥＥＰＲＯＭとのインターフェースを構成し、入出力データ（リード／ライトデータ）の転送を制御する方式である。ところで、コントローラと各フラッシュＥＥＰＲＯＭとの間のデータ転送は、通常では１本のデータバスにより行なわれている。
【０００５】
フラッシュＥＥＰＲＯＭは、データの読出し動作に対して書込み動作（消去動作も含む）が低速である。このため、特にデータの書込み動作時に、１本のデータバスによるデータ転送では、各フラッシュＥＥＰＲＯＭを連続的にアクセスする際の処理効率が著しく低下する。
【０００６】
そこで、本発明の目的は、半導体ディスク装置を使用したシステムにおいて、各フラッシュＥＥＰＲＯＭ毎または複数のフラッシュＥＥＰＲＯＭからなるグループ毎にデータバスを設けて、各フラッシュＥＥＰＲＯＭ毎のデータ転送を可能にして、特にデータ書込み動作時のアクセス処理の効率を向上させることにある。
【０００７】
【課題を解決するための手段】
本発明は、フラッシュＥＥＰＲＯＭから構成される半導体ディスク装置を使用したデータ記憶システムにおいて、例えば１グループが複数のフラッシュＥＥＰＲＯＭからなる場合に、各グループ毎に設けられた複数のデータバスと、この各データバスに接続されて各フラッシュＥＥＰＲＯＭ毎に入出力データの転送を制御するためのコントローラとを備えたシステムである。このような構成により、コントローラは各フラッシュＥＥＰＲＯＭ毎に独立して、入出力データの転送を行なうことができるため、特にデータ書込み動作におけるアクセス効率を向上させることができる。
【０００８】
さらに、本発明は、コントローラとバッファメモリ（バッファＲＡＭ）とは１本のバスにより接続された構成を想定している。バッファメモリは、ホストシステムから転送されたデータ（ライトデータ）およびコントローラから転送された各フラッシュＥＥＰＲＯＭから読出されたデータ（リードデータ）を格納する。コントローラは、データ書込み動作時に、各フラッシュＥＥＰＲＯＭ毎のデータバスに独立にデータ転送を実行するが、バッファメモリからは１本のバスによるデータ転送を制御する必要がある。
【０００９】
そこで、本発明のコントローラは、各データバス毎に第１と第２のレジスタを組みとするバス用レジスタを有し、各データバス手段毎のデータ転送要求に応じてバッファメモリに接続された１本のバスを時分割転送によるバスアービトレーションを実行する手段を有する。このとき、各データバス毎に設けられた第１と第２のレジスタを交互に使用して、データバスに対するデータ転送制御を実行する。これにより、データ書込み動作時に、各フラッシュＥＥＰＲＯＭに対する独立したデータ転送と共に、バッファメモリからは時分割転送制御によるデータ転送を実現して、データ転送効率を向上させて結果的にデータ書込み動作時のアクセス処理の効率を高めることが可能となる。
【００１０】
【発明の実施の形態】
以下図面を参照して本発明の実施の形態を説明する。
図１は本発明の実施形態に関係する半導体ディスク装置の要部を示すブロック図である。
（システム構成）
本実施形態の半導体ディスク装置１は大別して、図１に示すように、フラッシュＥＥＰＲＯＭ（以下フラッシュメモリと称する）２Ａ，２Ｂと、コントローラ（ディスクコントローラ）４と、バッファＲＡＭ（バッファメモリ）８とを有する。ここで、各フラッシュメモリ２Ａ，２Ｂはそれぞれ、１グループが複数のフラッシュＥＥＰＲＯＭからなる場合にグループ単位のメモリチップからなる。
【００１１】
各フラッシュメモリ２Ａ，２ＢはＥＥＰＲＯＭのメモリセル以外に、データレジスタ１２Ａ，１２Ｂを有し、このデータレジスタ１２Ａ，１２Ｂをバッファとして入出力データ（Ｉ／Ｏ）の転送を行なう。各フラッシュメモリ２Ａ，２Ｂは、リードアクセスまたはライトアクセスに応じてデータのリード／ライト時にはビジィ（ＢＵＳＹ）信号を出力し、またリード／ライトが可能であればレディ（ＲＥＡＤＹ）信号を出力する（Ｒ／Ｂ信号）。さらに、本発明では、入出力データを転送するためのデータバス３として、各フラッシュメモリ２Ａ，２Ｂ毎のデータバスＡ，Ｂが設けられている。
【００１２】
コントローラ４は大別して、データ転送ブロック５と、マイクロプロセッサ（ＭＰＵ）ブロック６と、ホストシステムとのインターフェース７とから構成されている。データ転送ブロック５は、ＭＰＵブロック（以下単にＭＰＵと称する）６からの制御により、バッファＲＡＭ８と各フラッシュメモリ２Ａ，２Ｂとのデータ転送を実行する。このデータ転送動作に必要な制御信号（Ｒ／Ｂ信号やチップセレクト信号ＣＥなど）を各フラッシュメモリ２Ａ，２Ｂとの間で交換する。さらに、データ転送ブロック５は、前記のように、各フラッシュメモリ２Ａ，２Ｂとはそれぞれ専用のデータバスＡ，Ｂを介して、入出力データ（リード／ライトデータ）の転送（シリアルデータ転送）を行なう。また、データ転送ブロック５は、後述するように、１本のバス９を介してバッファＲＡＭ８とのデータ転送を行なう。
【００１３】
ＭＰＵ６は半導体ディスク装置１のメイン制御装置であり、図示しないＲＯＭに格納されたプログラムを実行することにより、ホストシステムのリード／ライトコマンド処理などの各種の制御動作を実行する（プログラムと共にファームウェアとも呼ばれる）。具体的には、ＭＰＵ６はホストシステムからのアクセス要求に応じて、データ転送ブロック５、インターフェース７、バッファＲＡＭ８を制御して、ホストシステムとのデータ転送を制御する。インターフェース７は、ホストシステムから転送されたデータをバッファＲＡＭ８に転送し、またデータ転送ブロック５によりバッファＲＡＭ８に格納されたデータをホストシステムに転送する。
【００１４】
ホストシステムは、外部バスを介して半導体ディスク装置１などの周辺デバイスと接続されるコンピュータ本体であり、ここでは半導体ディスク装置１を外部記憶装置の周辺デバイスとして使用する場合を想定している。
（本実施形態のデータ転送動作）
前述のようなシステム構成において、コントローラ４では、データ転送ブロック５がＭＰＵ６の指示に従って、バッファＲＡＭ８と各フラッシュメモリ２Ａ，２Ｂとの間のデータ転送を実行する。ここで、フラッシュメモリ２Ａ，２Ｂは便宜的に２個のメモリチップであると想定する。
【００１５】
本実施形態では、コントローラ４は、専用のデータバスＡ，Ｂを介して、フラッシュメモリ２Ａ，２Ｂとはそれぞれ独立してデータ転送を実行する。ここで、データ転送ブロック５は、図２に示すように、データ転送動作に必要なレジスタ群を有する。レジスタ群は、データバスＡ，Ｂ毎に設けられており、それぞれバッファＲＡＭ８側のデータ開始アドレス用レジスタ２０Ａ，２０Ｂ、フラッシュメモリ側のデータ開始アドレス用レジスタ２１Ａ，２１Ｂ、データ転送方向の指示用レジスタ２２Ａ，２２Ｂ、データ転送監視用レジスタ２３Ａ，２３Ｂが含まれている。データ転送監視用レジスタ２３Ａ，２３Ｂは、データ転送状態（動作中または終了）を認識するためのフラグ情報を保持するレジスタである。
【００１６】
ＭＰＵ６は、これらのレジスタ群にアドレス、方向の指示、データ転送状態のフラグの各制御情報をセットし、かつセットした各制御情報を参照することによりデータ転送制御を実行する。即ち、データ転送ブロック５は、データバスＡ，Ｂ毎に設けられたレジスタ群を介したＭＰＵ６の制御により、データバスＡ，Ｂに対して相互に干渉することなく、それぞれ独立してデータ転送を行なう。
【００１７】
ここで、フラッシュメモリ２Ａ，２Ｂの各データバスＡ，Ｂは通常では８ビットのバスであるのに対して、バッファＲＡＭ８のバス９は２倍の１６ビットのバスである。従って、各データバスＡ，Ｂはそれぞれ、バッファＲＡＭ８のバス９に対して同じサイクルで動作すれば２倍の転送速度差となる。また、前述したように、フラッシュメモリ２Ａ，２Ｂに対するデータ書込み動作時のデータ転送速度は低速であるため、前記速度差はデータ書込み動作時のデータ転送平均速度差はさらに大きくなる。
【００１８】
そこで、本実施形態は、フラッシュメモリ２Ａ，２Ｂ毎に専用に設けられたデータバスＡ，Ｂにより、それぞれ独立したデータ転送動作を実行する。これにより、従来のように１本のデータバスの場合と比較して、フラッシュメモリ２Ａ，２Ｂのデータ転送速度を高速化することができる。特に、フラッシュメモリ２Ａ，２Ｂに対するデータ書込み動作時（ライトアクセス時）では、従来ではバッファＲＡＭ８のバス９の転送速度に対するデータ転送平均速度差をかなり縮小することが可能である。
（バッファＲＡＭのバスアービトレーション）
前述したように、本実施形態によればフラッシュメモリ２Ａ，２Ｂ毎に専用に設けられたデータバスＡ，Ｂにより、それぞれ独立したデータ転送が可能であるため、特にデータ書込み動作時にデータ転送ブロック５とフラッシュメモリ２Ａ，２Ｂとのデータ転送速度を高速化することができる。
【００１９】
ところで、データ書込み動作時には、データ転送ブロック５は、バッファＲＡＭ８からライトデータを転送して、フラッシュメモリ２Ａ，２Ｂに転送する。バッファＲＡＭ８は、通常では１本のバス９によりデータ転送ブロック５に接続されている。従って、ＭＰＵ６は、データバスＡ，Ｂに独立してデータを転送する場合に、それらのデータを同一のバス９によりバッファＲＡＭ８から転送するため、バス９上の干渉を回避するためのバスアービトレーション（バス調停機能）を行なう必要がある。
【００２０】
以下、図３の概念図、図４のタイミングチャート、および図５のフローチャートを参照して、本実施形態のバッファＲＡＭ８側のバス９のデータ転送方式を説明する。
【００２１】
まず、本実施形態は、図３に示すように、データ転送ブロック５は、データバスＡ，Ｂのそれぞれ専用の第１と第２のレジスタを有する。データバスＡに対応する第１と第２のレジスタをそれぞれバスＡ０レジスタとバスＡ１レジスタとする。同様に、データバスＢに対応する第１と第２のレジスタをそれぞれバスＢ０レジスタとバスＢ１レジスタとする。各レジスタはいずれも例えば１６ワードである。
【００２２】
データ転送ブロック５は、仮にデータバスＡの転送要求が発生すると、バス９の転送が可能であれば、バッファＲＡＭ９からバスＡ０レジスタにデータの転送を実行する（ステップＳ１〜Ｓ３）。次に、データバスＡの転送要求に応じてバス９の転送が可能であれば、バッファＲＡＭ９からバスＡ１レジスタにデータの転送を実行する（ステップＳ４〜Ｓ６）。このとき、データ転送ブロック５は、バスＡ０レジスタに保持されているデータをデータバスＡに転送する（ステップＳ７）。このような処理は、データバスＢの転送要求がなければ、繰り返すことになる。即ち、バスＡ０レジスタとバスＡ１レジスタとを交互に使用して、バッファＲＡＭ９から転送されたデータをデータバスＡに転送する。
【００２３】
一方、データバスＢの転送要求が発生すると、バス９の転送が可能であれば、バッファＲＡＭ９からバスＢ０レジスタにデータの転送を実行する（ステップＳ８〜Ｓ１０）。ここで、図４に示すように、バス９の転送可能時間を時分割で２等分にして、転送可能時間（ｙｅｓで示す時間）に転送要求があれば、データ転送が実行される。従って、次のデータバスＢの転送要求が発生したときに、バスＢよう転送可能時間でない時間（ｎｏで示す時間）であれば、バッファＲＡＭ９からバスＢ１レジスタへのデータ転送は実行されないことになる（ステップＳ１１，Ｓ１２のＮＯ）。
【００２４】
要するに、図４のタイミングチャートに示すように、２等分に時分割された転送可能時間（ｙｅｓの時間）に、各データバスＡ，Ｂの転送要求が発生すれば、バッファＲＡＭ９からバスＡ０レジスタ、バスＡ１レジスタ、バスＢ０レジスタ、バスＢ１レジスタのいずかに転送されることになる。そして、データバスＢも同様に、バスＢ１レジスタにデータの転送が実行されたときに、データ転送ブロック５は、バスＢ０レジスタに保持されているデータをデータバスＢに転送する（ステップＳ１３，Ｓ１４）。従って、バスＢ０レジスタとバスＢ１レジスタとを交互に使用して、バッファＲＡＭ９から転送されたデータをデータバスＢに転送する。
【００２５】
以上のように本実施形態によれば、フラッシュメモリ２Ａ，２Ｂ毎に専用に設けられたデータバスＡ，Ｂにより、それぞれ独立したデータ転送動作を実行することができる。従って、特にデータ書込み動作時において、フラッシュメモリ２Ａ，２Ｂに対する平均転送速度を高速化することができる。これにより、フラッシュメモリ２Ａ，２Ｂに対するアクセス効率を向上することができる。
【００２６】
ここで、バッファＲＡＭ８とのデータ転送を１本のバス９に対して、各データバスＡ，Ｂ毎の時分割転送によるバスアービトレーションを実行することにより、各データバスＡ，Ｂから独立して転送要求が発生した場合でも、バス９で干渉するような事態を防止し、各データバスＡ，ＢにバッファＲＡＭ８からのデータを確実に転送することができる。
【００２７】
【発明の効果】
以上詳述したように本発明によれば、半導体ディスク装置を使用したシステムにおいて、各フラッシュＥＥＰＲＯＭ毎にデータバスを設けて、各フラッシュＥＥＰＲＯＭ毎に独立したデータ転送を実現できる。従って、特にデータ書込み動作時に、各フラッシュＥＥＰＲＯＭに対する平均転送速度を高速化して、アクセス処理の効率を向上させることができる。
【図面の簡単な説明】
【図１】本発明の実施形態に関係する半導体ディスク装置の要部を示すブロック図。
【図２】同実施形態に関係するコントローラの内部構成を示す概念図。
【図３】同実施形態に関係するコントローラの内部構成を示す概念図。
【図４】同実施形態に関係する動作を説明するためのタイミングチャート。
【図５】同実施形態に関係する動作を説明するためのフローチャート。
【符号の説明】
１…半導体ディスク装置
２Ａ，２Ｂ…フラッシュＥＥＰＲＯＭ（フラッシュメモリ）
３…データバス（データバスＡ，Ｂ）
４…コントローラ
５…データ転送ブロック
６…ＭＰＵブロック
７…インターフェース
８…バッファＲＡＭ
９…バス（バッファＲＡＭ側バス）
２０Ａ，２０Ｂ…データ開始アドレス用レジスタ（バッファＲＡＭ側）
２１Ａ，２１Ｂ…データ開始アドレス用レジスタ（フラッシュメモリ側）
２２Ａ，２２Ｂ…データ転送方向の指示用レジスタ
２３Ａ，２３Ｂ…データ転送監視用レジスタ
【図１】
0003688835.tif 000002
【図２】
0003688835.tif 000003
【図３】
0003688835.tif 000004
【図４】
0003688835.tif 000005
【図５】
0003688835.tif 000006