(57)【要約】【課題】本発明はメモリコントローラ及びこれを含むメモリシステムに関する。【解決手段】本技術は、データを保存するメモリシステムに含まれ、メモリシステムとホストシステムの間でデータを保存及び伝送するメモリコントローラにおいて、上記データを保存する複数のブロックを含み、第１データ幅を有する第１バスまたは第２データ幅を有する第２バスを介して上記データを入出力するバッファと、上記第１及び第２データ幅に応じて上記ブロックをマッピングするデータ幅コントローラと、を含むメモリコントローラ及びこれを含むメモリシステムを含む。【選択図】図３
2020135851.tif 000002
【特許請求の範囲】
【請求項１】
データを保存するメモリシステムに含まれ、メモリシステムとホストシステムの間でデータを保存及び伝送するメモリコントローラにおいて、
前記データを保存する複数のブロックを含み、第１データ幅を有する第１バスまたは第２データ幅を有する第２バスを介して前記データを入出力するバッファと、
前記第１及び第２データ幅に応じて前記ブロックをマッピングするデータ幅コントローラと、を含むことを特徴とするメモリシステム。
【請求項２】
前記バッファは、
前記第１バスを介して入力された前記データを前記ブロックに保存し、
前記データが保存されたブロックが前記データ幅コントローラによってマッピングされると、マッピングされた前記ブロックに保存された前記データを前記第２バスを介して出力することを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記データ幅コントローラは、
前記第１及び第２データ幅の情報を保存するレジスタと、
前記第１及び第２データ幅を互いに比較し、比較結果に応じて前記ブロックをマッピングするためのメインバッファ制御信号を出力するデータ伝送順序コントローラと、を含むことを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記第１バスはメモリコントローラの内部バスとして使用され、
前記第２バスはホストシステムと接続される外部バスとして使用されることを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記データ伝送順序コントローラは、
前記第１及び第２データ幅が同じであれば、前記データ伝送順序コントローラに予め設定されたデフォルト（ｄｅｆａｕｌｔ）方式に従って前記メインバッファ制御信号を出力し、
前記第１及び第２データ幅が異なると、前記第１及び第２データ幅に応じて前記ブロックをマッピングするように前記メインバッファ制御信号を出力することを特徴とする請求項３に記載のメモリシステム。
【請求項６】
前記デフォルト方式が選択されると、
前記データ伝送順序コントローラは前記ブロックをマッピングせず、
前記第１バスを介して入力されたデータをマッピングせずに前記第２バスを介して出力することを特徴とする請求項５に記載のメモリシステム。
【請求項７】
前記ブロックがマッピングされる場合、
前記データ伝送順序コントローラは、前記第１データ幅が前記第２データ幅より小さい場合と大きい場合のそれぞれに対して異なる方法で前記ブロックをマッピングすることを特徴とする請求項５に記載のメモリシステム。
【請求項８】
前記第１データ幅が前記第２データ幅より小さい場合、
前記データ伝送順序コントローラは、前記バッファに含まれたブロックのうち前記データが保存されたブロックを前記第２データ幅に応じて互いにマッピングし、マッピングされた異なる前記ブロックに保存されたデータが前記第２バスを介して同時に出力されるように前記メインバッファ制御信号を出力することを特徴とする請求項７に記載のメモリシステム。
【請求項９】
前記第１データ幅が前記第２データ幅より大きい場合、
前記データ伝送順序コントローラは、前記バッファに含まれたブロックのうち前記データが保存されたブロックを前記第２データ幅に応じて分割されるようにマッピングし、分割マッピングされた前記ブロックのデータが前記第２バスに順に出力されるように前記メインバッファ制御信号を出力することを特徴とする請求項７に記載のメモリシステム。
【請求項１０】
データを保存する共有メモリシステムと、
ホストシステムから受信した要請に応じて前記共有メモリシステムを制御し、プログラムデータまたはリードデータを一時的に保存するプロセッサと、
第１バスを介して前記共有メモリシステム及び前記プロセッサとデータを送受信するＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）コントローラと、を含み、
前記プロセッサは、
第２バスを介して前記ホストシステムと接続され、
前記第１及び第２バスのデータ幅に応じて前記プログラムデータまたは前記リードデータの伝送方法を変更することを特徴とするメモリシステム。
【請求項１１】
前記プロセッサは、
メイン動作制御信号に応答して、前記要請に対応する動作を行うための制御信号を出力する動作コントローラと、
メインデータ伝送制御信号に応答して、前記ホストシステムまたは前記ＡＸＩコントローラとデータを送受信するデータ伝送部と、
メインバッファ制御信号に応答して、前記データ伝送部からデータの入力を受け、入力された前記データを前記データ伝送部に介して前記ホストシステムまたは前記ＡＸＩコントローラに伝送するバッファと、
前記要請に応じて前記メイン動作制御信号、前記メインデータ伝送制御信号及びメインバッファ制御信号を出力するメインコントローラと、を含むことを特徴とする請求項１０に記載のメモリシステム。
【請求項１２】
前記メインコントローラは、
前記第１及び第２バスのデータ幅に応じて前記バッファに含まれたブロックをマッピングし、マッピングした前記ブロックに保存された前記プログラムデータまたは前記リードデータの出力順序を変更するデータ幅コントローラを含むことを特徴とする請求項１１に記載のメモリシステム。
【請求項１３】
前記データ幅コントローラは、
前記第１データ幅と前記第２データ幅の情報をそれぞれ保存するレジスタと、
前記第１及び第２バスのデータ幅を比較して、比較結果に応じて前記プログラムデータまたは前記リードデータの出力順序を変更するデータ伝送順序コントローラと、を含むことを特徴とする請求項１２に記載のメモリシステム。
【請求項１４】
前記データ伝送順序コントローラは、
前記第１及び第２バスのデータ幅が同じであれば、前記データ伝送順序コントローラに予め設定されたデフォルト方式に従って前記プログラムデータまたは前記リードデータの前記伝送方式を決め、
前記第１及び第２バスのデータ幅が異なると、前記第１及び第２バスのデータ幅に応じて前記プログラムデータまたは前記リードデータがグループ化されたり分けられて出力されるように前記伝送方式を決めることを特徴とする請求項１３に記載のメモリシステム。
【請求項１５】
前記バッファは、
前記プログラムデータまたは前記リードデータをデータ幅に応じて保存する複数のブロックを含むことを特徴とする請求項１１に記載のメモリシステム。
【請求項１６】
前記ブロックのそれぞれは、前記第１及び第２バスの少なくとも何れか１つのバスのデータ幅と同じデータ幅を有することを特徴とする請求項１５に記載のメモリシステム。
【請求項１７】
前記第１バスはメモリシステムの内部バスとして使用され、
前記第２バスは前記ホストシステムと接続される外部バスとして使用されることを特徴とする請求項１６に記載のメモリシステム。
【請求項１８】
前記第１バスを介して入力されたデータが前記第２バスを介して出力される場合、
前記第１バスのデータ幅が前記第２バスのデータ幅より小さいと、前記ブロックのうちデータが保存されたブロックがマッピングされ、マッピングされた前記ブロックに保存されたデータが前記第２バスを介して同時に出力され、
前記第１バスのデータ幅が前記第２バスのデータ幅より大きいと、前記ブロックに保存されたデータが分割されて前記第２バスを介して出力されることを特徴とする請求項１７に記載のメモリシステム。
【請求項１９】
前記第１バスがメモリシステムの内部バスとして使用され、前記第２バスが前記ホストシステムに接続された外部バスとして使用される場合、
前記第１バスのデータ幅の情報は前記プロセッサに予め保存され、
前記第２バスのデータ幅の情報は前記ホストシステムとメモリシステムが接続されるとき、前記ホストシステムから受信することを特徴とする請求項１０に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリコントローラ及びこれを含むメモリシステムに関し、より具体的には、バス（ｂｕｓ）の様々なデータ幅（ｄａｔａ  ｗｉｄｔｈ）に応じてデータをマッピング（ｍａｐｐｉｎｇ）及び伝送することができるメモリコントローラ及びこれを含むメモリシステムに関する。
【背景技術】
【０００２】
メモリ装置の高容量化及び低電力化の要求に応じて不揮発性であるとともにリフレッシュが不要な次世代メモリ装置に対する研究が行われている。当該次世代メモリ装置は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の高い集積性、フラッシュメモリの不揮発性、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）の高速性などを備えることが求められる。次世代メモリ装置としては、ＰＣＲＡＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  ＲＡＭ）、ＮＦＧＭ（Ｎａｎｏ  Ｆｌｏａｔｉｎｇ  Ｇａｔｅ  Ｍｅｍｏｒｙ）、ＰｏＲＡＭ（Ｐｏｌｙｍｅｒ  ＲＡＭ）、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  ＲＡＭ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）、ＲＲＡＭ（登録商標）（Ｒｅｓｉｓｔｉｖｅ  ＲＡＭ）などが上述した要件に合う次世代メモリ装置として挙げられている。
【０００３】
最近では、メモリ装置の種類と用途が多様化し、メモリ装置を含むメモリシステム内で使用されるデータ幅も多様化している。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施例は、様々なデータ幅に応じてデータを効率的に伝送することができるメモリコントローラ及びこれを含むメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
本発明の実施例によるメモリシステムは、データを保存するメモリシステムに含まれ、メモリシステムとホストシステムの間でデータを保存及び伝送するメモリコントローラにおいて、上記データを保存する複数のブロックを含み、第１データ幅を有する第１バスまたは第２データ幅を有する第２バスを介して上記データを入出力するバッファと、上記第１及び第２データ幅に応じて上記ブロックをマッピングするデータ幅コントローラと、を含む。
【０００６】
本発明の実施例による他のメモリシステムは、データを保存する共有メモリシステムと、ホストシステムから受信した要請に応じて上記共有メモリシステムを制御し、プログラムデータまたはリードデータを一時的に保存するプロセッサと、第１バスを介して上記共有メモリシステム及び上記プロセッサとデータを送受信するＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）コントローラと、を含み、上記プロセッサは第２バスを介して上記ホストシステムと接続され、上記第１及び第２バスのデータ幅に応じて上記プログラムデータまたは上記リードデータの伝送方法を変更する。
【発明の効果】
【０００７】
本技術は、データ幅に応じてデータが保存されたブロックをマッピングし、マッピングしたブロックをデータ幅に合わせて伝送することにより、メモリシステム内で様々なデータ幅を有するバスを使用することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施例によるメモリシステムを説明するためのものである。
【図２】図１に示された共有メモリシステム（ｓｈａｒｉｎｇ  ｍｅｍｏｒｙ  ｓｙｓｔｅｍ）を説明するためのものである。
【図３】図１に示されたプロセッサ（ｐｒｏｃｅｓｓｏｒ）を説明するためのものである。
【図４】図３に示された動作コントローラ（ｏｐｅｒａｔｉｏｎ  ｃｏｎｔｒｏｌｌｅｒ）を説明するためのものである。
【図５】図３に示されたデータ幅コントローラ（ＤＡＴＡ  Ｗｉｄｔｈ  ｃｏｎｔｒｏｌｌｅｒ）を説明するためのものである。
【図６】図５に示されたデータ伝送順序コントローラ（ＤＡＴＡ  ｔｒａｎｓｍｉｓｓｉｏｎ  ｏｒｄｅｒ  ｃｏｎｔｒｏｌｌｅｒ）の動作方法を説明するためのものである。
【図７】図３に示されたバッファ（ｂｕｆｆｅｒ）を説明するためのものである。
【図８】図３に示されたデータ伝送部（ＤＡＴＡ  ｃｏｍｐｏｎｅｎｔ）を説明するためのものである。
【図９】本発明の実施例によるデータ伝送順序を説明するためのものである。
【図１０】本発明の第１実施例によるデータ伝送方法を説明するためのものである。
【図１１】本発明の第１実施例によるデータ伝送方法を説明するためのものである。
【図１２】本発明の第１実施例によるデータマッピング及び伝送方法をバッファとホストシステム（ｈｏｓｔ  ｓｙｓｔｅｍ）を用いて説明するためのものである。
【図１３】本発明の第１実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【図１４】本発明の第１実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【図１５】本発明の第２実施例によるデータ伝送方法を説明するためのものである。
【図１６】本発明の第２実施例によるデータ伝送方法を説明するためのものである。
【図１７】本発明の第２実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【図１８】本発明の第２実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【図１９】本発明の第２実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【図２０】本発明の第３実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【図２１】本発明の第４実施例によるデータ伝送方法を説明するためのものである。
【図２２】本発明の第４実施例によるデータ伝送方法を説明するためのものである。
【図２３】本発明の第４実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【図２４】本発明の第４実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【図２５】本発明の第４実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【発明を実施するための形態】
【０００９】
本発明の利点及び特徴、そしてこれを達成する方法は添付の図面とともに詳細に後述する実施例により説明する。しかし、本発明はここに説明する実施例に限定されず、他の形態で具体化されてもよい。但し、本実施例は本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施できる程度に詳細に説明するために提供されるものである。
【００１０】
明細書の全体において、ある部分が他の部分と「接続」されているというときは、「直接的に接続」されている場合だけではなく、その間に他の素子を介して「間接的に接続」されている場合も含む。明細書の全体において、ある部分がある構成要素を「含む」というときは、特に反対の記載がない限り、他の構成要素を除くのではなく、他の構成要素をさらに含むことができることを意味する。
【００１１】
図１は、本発明の実施例によるメモリシステムを説明するためのものである。
【００１２】
図１を参照すると、メモリシステム（Ｍｅｍｏｒｙ  Ｓｙｓｔｅｍ）１０００は、ホストシステム２０００から受信したデータを保存したり、保存されたデータをホストシステム２０００に出力することができる。
【００１３】
メモリシステム１０００は、データが保存される共有メモリシステム１１００と、共有メモリシステム１１００を制御するプロセッサ１２００と、ＡＸＩコントローラ１３００と、を含んでもよい。
【００１４】
共有メモリシステム１１００は、プロセッサ１２００の制御信号（ｃｏｎｔｒｏｌ  ｓｉｇｎａｌ）ＣＳＧに応答して動作し、ＡＸＩコントローラ１３００を介してデータを受信したり、出力することができる。共有メモリシステム１１００は、データが保存される揮発性（Ｖｏｌａｔｉｌｅ）または不揮発性（Ｎｏｎ−ｖｏｌａｔｉｌｅ）メモリセルを含んでもよい。揮発性メモリセルに保存されたデータは電源供給が中断されると消失されることがあり、不揮発性メモリセルに保存されたデータは電源供給が中断されても保持されることができる。但し、揮発性メモリセルと不揮発性メモリセルは、動作速度、保存容量などにそれぞれ長所と短所があるため、メモリシステム１０００の用途に応じて選択的に使用することができる。
【００１５】
以下の実施例では、揮発性メモリセルが含まれたメモリシステム１０００を実施例として説明するが、本発明は揮発性メモリセルだけが含まれたシステムに限定されない。
【００１６】
プロセッサ１２００は、ホストシステム２０００から受信した要請（ｒｅｑｕｅｓｔ）ＲＱに応じて制御信号ＣＳＧを生成し、生成された制御信号ＣＳＧを共有メモリシステム１１００に伝送することができる。例えば、プロセッサ１２００は、プログラムの要請（ｐｒｏｇｒａｍ  ｒｅｑｕｅｓｔ）とともにデータを受信すると、データが共有メモリシステム１１００に保存されるようにＡＸＩコントローラ１３００と共有メモリシステム１１００を制御することができる。プロセッサ１２００は、ホストシステム２０００からリード要請（ｒｅａｄ  ｒｅｑｕｅｓｔ）を受信すると、共有メモリシステム１１００からリードしたデータがホストシステム２０００に出力されるようにＡＸＩコントローラ１３００と共有メモリシステム１１００を制御することができる。
【００１７】
また、プロセッサ１２００は、リードまたはプログラム動作時、バスＢ１またはＢ２を介して受信したデータを一時的に保存し、メモリシステム１０００とホストシステム２０００のそれぞれのデータ幅に応じてデータを分配して伝送することができる。例えば、メモリシステム１０００の第１バスＢ１のデータ幅を第１データ幅１ＤＷと仮定すると、第１データ幅１ＤＷの情報はプロセッサ１２００に予め保存されることができる。ホストシステム２０００と接続された第２バスＢ２のデータ幅を第２データ幅２ＤＷと仮定すると、第２データ幅２ＤＷの情報はメモリシステム１０００とホストシステム２０００が互いに接続されるとき、ホストシステム２０００から受信することができる。即ち、第１バスＢ１はメモリコントローラ１０００の内部バス（ｉｎｔｅｒｎａｌ  ｂｕｓ）として使用され、第２バスＢ２はホストシステム２０００に接続される外部バス（ｅｘｔｅｒｎａｌ  ｂｕｓ）として使用されることができる。
【００１８】
第１及び第２データ幅１ＤＷ、２ＤＷは互いに同一または異なってもよいため、プロセッサ１２００は第１及び第２データ幅１ＤＷ、２ＤＷに応じてデータをマッピングすることにより、それぞれのデータ幅に合わせてデータを分配することができ、マッピングされたデータを第１または第２バスＢ１またはＢ２に合わせて伝送することができる。
【００１９】
ＡＸＩコントローラ１３００は、プロセッサ１２００の制御に応じて共有メモリシステム１１００とホストシステム２０００の間でデータを伝送することができる。ＡＸＩコントローラ１３００は、第１バスＢ１を介して共有メモリシステム１１００とプロセッサ１２００にそれぞれ接続されてもよい。
【００２０】
ホストシステム２０００は、第２バスＢ２（Ｈ２）を介してメモリシステム１０００とデータを伝送または受信することができる。
【００２１】
図２は、図１に示された共有メモリシステムを説明するためのものである。
【００２２】
図２を参照すると、共有メモリシステム１１００は、共有メモリ（Ｓｈａｒｉｎｇ  Ｍｅｍｏｒｙ）１１０と、メモリコントローラ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）１２０と、コア（Ｃｏｒｅ）１３０と、を含んでもよい。
【００２３】
共有メモリ１１０はデータが保存される複数のバンク（ＢＡＮＫｓ；不図示）を含んでもよく、バンク（ＢＡＮＫｎ）は複数の揮発性メモリセルを含んでもよい。
【００２４】
メモリコントローラ１２０は、プロセッサ１２００から受信した制御信号ＣＳＧに応答して動作信号ＯＰＳＩＧを出力することができる。例えば、メモリコントローラ１２０は、プログラム動作に対する制御信号ＣＳＧを受信すると、プログラムアルゴリズムに従ってプログラム動作が行われるように動作信号ＯＰＳＩＧを出力することができ、リード動作に対する制御信号ＣＳＧを受信すると、リードアルゴリズムに従ってリード動作が行われるように動作信号ＯＰＳＩＧを出力することができる。
【００２５】
コア１３０は、プログラム動作に対する動作信号ＯＰＳＩＧに応答してＡＸＩコントローラ１３００から受信した第１データＤＡＴＡ１を共有メモリ１１０に保存するためのプログラム動作を行うことができ、リード動作に対する動作信号ＯＰＳＩＧに応答して共有メモリ１１０をリードし、リードした第１データＤＡＴＡ１を第１バスＢ１を介してＡＸＩコントローラ１３００に伝送することができる。
【００２６】
図３は、図１に示されたプロセッサを説明するためのものである。
【００２７】
図３を参照すると、プロセッサ１２００は、メインコントローラ（Ｍａｉｎ  Ｃｏｎｔｒｏｌｌｅｒ）２１０と、動作コントローラ（ＯＰ  Ｃｏｎｔｒｏｌｌｅｒ）２２０と、バッファ２３０と、データ伝送部（ＤＡＴＡ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｍｐｏｎｅｎｔ）２４０と、を含んでもよい。
【００２８】
メインコントローラ２１０は、ホストシステム２０００から受信した要請ＲＱに応じてメイン動作制御信号ＭＯＰＣＳ、メインバッファ制御信号ＭＢＣＳ及びメインデータ伝送制御信号ＭＤＴＣＳを出力することができる。例えば、メイン動作制御信号ＭＯＰＣＳは動作コントローラ２２０を制御するための信号で、メインバッファ制御信号ＭＢＣＳはバッファ２３０を制御するための信号で、メインデータ伝送制御信号ＭＤＴＣＳはデータ伝送部２４０を制御するための信号であってもよい。
【００２９】
特に、メインコントローラ２１０は、メモリシステム１０００とホストシステム２０００のデータ幅に応じてデータを分配するデータ幅コントローラ２０１を含んでもよい。
【００３０】
データ幅コントローラ２０１は、メモリシステム１０００とホストシステム２０００のデータ幅に応じてメインバッファ制御信号ＭＢＣＳを出力することができる。例えば、データ幅コントローラ２０１は、メモリシステム１０００とホストシステム２０００のデータ幅に対する情報をそれぞれ保存し、保存されたデータ幅に応じてバッファ２３０に保存されたデータをマッピングし、マッピングした順序に従ってデータを出力するためのメインバッファ制御信号ＭＢＣＳを出力することができる。
【００３１】
動作コントローラ２２０は、メイン動作制御信号ＭＯＰＣＳに応答して制御信号ＣＳＧを出力することができる。例えば、動作コントローラ２２０は、プログラム動作に対するメイン動作制御信号ＭＯＰＣＳを受信すると、プログラム動作のための制御信号ＣＳＧを出力し、リード動作に対するメイン動作制御信号ＭＯＰＣＳを受信すると、リード動作のための制御信号ＣＳＧを出力することができる。
【００３２】
バッファ２３０は、メインバッファ制御信号ＭＢＣＳに応答してデータ伝送部２４０からデータを受信し、受信したデータをマッピングした後、マッピングしたデータを順序に応じてデータ伝送部２４０に出力することができる。また、バッファ２３０は、プログラム動作時、プログラムされるデータがバッファ２３０に保存されると、動作コントローラ２２０にデータ受信信号ＤＲＳを出力することができる。また、バッファ２３０は、リード動作時、動作コントローラ２２０からデータ伝送信号ＤＴＳを受信すると、メインバッファ制御信号ＭＢＣＳに応答してリードしたデータを受信し、マッピングしたデータを順序に応じて出力することができる。
【００３３】
データ伝送部２４０は、メインデータ伝送制御信号ＭＤＴＣＳに応答してＡＸＩコントローラ１３００から受信した第１データＤＡＴＡ１をバッファ２３０に伝送するか、バッファ２３０から受信したデータをＡＸＩコントローラ１３００またはホストシステム２０００に伝送することができる。例えば、データ伝送部２４０は、第１バスＢ１を介して第１データＤＡＴＡ１をＡＸＩコントローラ１３００と送受信することができ、第２バスＢ２を介してホストシステム２０００と第２データＤＡＴＡ２を送受信することができる。例えば、第１データＤＡＴＡ１はデータ幅コントローラ２０１によってマッピングされる前のデータで、第２データはマッピングされた後のデータであってもよい。
【００３４】
図４は、図３に示された動作コントローラを説明するためのものである。
【００３５】
図４を参照すると、動作コントローラ２２０は、マスターインターフェイス（Ｍａｓｔｅｒ  Ｉｎｔｅｒｆａｃｅ）２２１と、書き込みコントローラ（Ｗｒｉｔｅ  Ｃｏｎｔｒｏｌｌｅｒ）２２２と、リードコントローラ（Ｒｅａｄ  Ｃｏｎｔｒｏｌｌｅｒ）２２３と、を含んでもよい。
【００３６】
プログラム動作時、マスターインターフェイス２２１は、メイン動作制御信号ＭＯＰＣＳ及び書き込み信号ＷＳに応答してプログラム動作を行うための制御信号ＣＳＧを出力することができる。書き込み信号ＷＳは書き込みコントローラ２２２から受信することができる。
【００３７】
リード動作時、マスターインターフェイス２２１は、メイン動作制御信号ＭＯＰＣＳに応答してデータを受信するためのリード信号ＲＳを出力することができる。リード信号ＲＳはリードコントローラ２２３に出力されることができる。
【００３８】
書き込みコントローラ２２２はプログラム動作時に活性化され、バッファ２３０にデータが受信されたというデータ受信信号ＤＲＳを受信すると、書き込み信号ＷＳを生成し、生成した書き込み信号ＷＳをマスターインターフェイス２２１に出力することができる。
【００３９】
リードコントローラ２２３はリード動作時に活性化され、リード信号ＲＳを受信すると、バッファ２３０に保存されたリードデータを出力することができるようにデータ伝送信号ＤＴＳをバッファ２３０に出力することができる。
【００４０】
図５は、図３に示されたデータ幅コントローラを説明するためのものである。
【００４１】
図５を参照すると、データ幅コントローラ２０１は、レジスタ（ｒｅｇｉｓｔｅｒ）３１と、データ伝送順序コントローラ３２と、を含んでもよい。
【００４２】
レジスタ３１は、第１データ幅１ＤＷ及び第２データ幅２ＤＷの情報を保存することができる。第１データ幅１ＤＷはメモリシステム１０００の製造段階で保存され、第２データ幅２ＤＷはメモリシステム１０００とホストシステム２０００が接続されるとき、ホストシステム２０００から受信することができる。
【００４３】
即ち、ホストシステム２０００は、メモリシステム１０００と接続されると、ホストシステム２０００の第２データ幅２ＤＷの情報をメモリシステム１０００に伝送することができ、メモリシステム１０００は、受信した第２データ幅２ＤＷをデータ幅コントローラ２０１のレジスタ３１に保存することができる。
【００４４】
データ伝送順序コントローラ３２は、レジスタ３１から第１及び第２データ幅１ＤＷ、２ＤＷの情報を受信し、受信したデータ幅に応じてデータ分配方式を設定してメインバッファ制御信号ＭＢＣＳを出力することができる。例えば、データ伝送順序コントローラ３２は、第１及び第２データ幅１ＤＷ、２ＤＷを互いに比較し、比較結果に基づいてデータ分配方式を設定することができる。バッファ２３０にデータが受信され、受信したデータの順序通りにデータを出力する方式がデータ伝送順序コントローラ３２にデフォルト（ｄｅｆａｕｌｔ）で設定されてもよい。第１及び第２データ幅１ＤＷ、２ＤＷが互いに同じである場合、データ伝送順序コントローラ３２はデフォルトの方法に応じてメインバッファ制御信号ＭＢＣＳを出力することができる。
【００４５】
例えば、基本的な順序はデータ伝送順序コントローラに予め設定されてもよい。ここで、予め設定されるとは、プロセスまたはアルゴリズムで使用されるパラメータに対して予め決定された値を意味する。例えば、パラメータに対する値はプロセスまたはアルゴリズムが開始される前に決定されてもよい。また、パラメータに対する値はプロセスまたはアルゴリズムでパラメータが使用される前のプロセスまたはアルゴリズムで決定されてもよい。
【００４６】
第１及び第２データ幅１ＤＷ、２ＤＷが互いに同じでない場合、データ伝送順序コントローラ３２はバッファ２３０に保存されたデータをマッピングし、マッピングしたデータを出力する順序を新たに設定してメインバッファ制御信号ＭＢＣＳを出力することができる。
【００４７】
上述したデータ伝送順序コントローラ３２の動作方法をより具体的に説明すると、以下の通りである。
【００４８】
図６は、図５に示されたデータ伝送順序コントローラの動作方法を説明するためのものである。
【００４９】
図６を参照すると、データ伝送順序コントローラ３２は、レジスタ３１に保存された第１バスＢ１の第１データ幅１ＤＷと第２バスＢ２の第２データ幅２ＤＷとを比較する（Ｓ６１）。
【００５０】
比較の結果、第１データ幅１ＤＷと第２データ幅２ＤＷが同じであればＹｅｓ、データ伝送順序コントローラ３２はデータ伝送方式をデフォルトで設定する（Ｓ６２）。デフォルト方式はデータ伝送順序コントローラ３２に予め保存される基本的な方式であり、バッファ２３０にデータを順に入力した後、入力された順序通りにバッファ２３０からデータを順に出力する方式であることができる。
【００５１】
Ｓ６１段階において、第１データ幅１ＤＷと第２データ幅２ＤＷが同じでない場合Ｎｏ、データ伝送順序コントローラ３２はデータ伝送方式を第１及び第２データ幅１ＤＷ、２ＤＷに応じて再設定する（Ｓ６３）。
【００５２】
Ｓ６２またはＳ６３段階において、データ伝送方式が決まると、データ伝送順序コントローラ３２は決まったデータ伝送方式に応じてメインバッファ制御信号ＭＢＣＳを出力する（Ｓ６４）。
【００５３】
図７は、図３に示されたバッファを説明するためのものである。
【００５４】
図７を参照すると、バッファ２３０はデータＤＡＴＡを一時的に保存することができる複数のブロックＡ００〜Ａｍｎ（ｍ、ｎは正の整数）を含んでもよい。ブロックＡ００〜Ａｍｎは、第１または第２バスＢ１またはＢ２を介してデータ伝送部２４０とデータＤＡＴＡを送受信することができる。ブロックＡ００〜Ａｍｎそれぞれのデータ幅は、第１及び第２バスＢ１、Ｂ２のうち少なくとも何れか１つのバスのデータ幅と同じであってもよい。
【００５５】
バッファ２３０は、プログラム動作時、データ伝送部２４０を介してホストシステム２０００から受信したプログラムデータを一時的に保存した後、一時的に保存したデータをデータ伝送部２４０を介してＡＸＩコントローラ１３００に伝送することができる。また、バッファ２３０は、リード動作時、データ伝送部２４０を介してＡＸＩコントローラ１３００から受信したリードデータを一時的に保存した後、一時的に保存したデータをデータ伝送部２４０を介してホストシステム２０００に出力することができる。
【００５６】
リード動作を例に挙げると、共有メモリシステム１１００からリードしたリードデータは、ＡＸＩコントローラ１３００及びデータ伝送部２４０を介してバッファ２３０に順に入力されることができる。より具体的に説明すると、バッファ２３０に入力されるデータはブロックＡ００〜Ａｍｎに順に入力されることができる。このとき、全てのブロックＡ００〜Ａｍｎにデータが入力されるのではなく、データ幅に応じてブロックＡ００〜Ａｍｎの一部にデータが入力されてもよい。ブロックＡ００〜Ａｍｎのうちデータが入力されたブロックは、データ伝送順序コントローラ（図５の３２）から出力されるメインバッファ制御信号ＭＢＣＳに応答してマッピングされてもよく、互いにマッピングされたブロックのデータはデータ伝送部２４０に同時に出力されてもよい。
【００５７】
データ伝送部２４０の構成をより具体的に説明すると、以下の通りである。
【００５８】
図８は、図３に示されたデータ伝送部を説明するためのものである。
【００５９】
図８を参照すると、データ伝送部２４０は複数の伝送ブロックを含んでもよい。複数の伝送ブロックは、バッファ２３０とＡＸＩコントローラ１３００またはホストシステム２０００の間でデータを伝送することができる。例えば、複数の伝送ブロックのそれぞれは、第１バスＢ１を介してＡＸＩコントローラ１３００に接続され、第２バスＢ２を介してホストシステム２０００と接続されてもよい。また、複数の伝送ブロックのそれぞれは第１及び第２バスＢ１、Ｂ２を介してバッファ２３０に接続されてもよい。
【００６０】
例えば、ＡＸＩコントローラ１３００から第１データＤＡＴＡ１を受信すると、データ伝送部２４０の複数の伝送ブロックは、バッファ２３０のブロックＡｍ０〜Ａｍｎに第１データＤＡＴＡ１をそれぞれ伝送することができる。即ち、データ伝送部２４０に含まれた複数の伝送ブロックのそれぞれは、バッファ２３０に含まれたブロックＡｍ０〜Ａｍｎにそれぞれ接続されてもよく、バッファ２３０に含まれたブロックＡｍ０〜Ａｍｎのうち互いにマッピングされたブロックもデータ伝送部２４０の伝送ブロックにそれぞれデータを伝送することができる。データ伝送部２４０の伝送ブロックは、バッファ２３０から受信した第２データＤＡＴＡ２を第２バスＢ２を介してホストシステム２０００に伝送することができる。
【００６１】
ホストシステム２０００は、メモリシステム１０００とデータを送受信するために、第２バスＢ２に接続されたコンピューティングエンジングループ（Ｃｏｍｐｕｔｉｎｇ  Ｅｎｇｉｎｅ  Ｇｒｏｕｐｓ）ＣＧ０〜ＣＧｎ（ｎは正の整数）を含んでもよい。コンピューティングエンジングループＣＧ０〜ＣＧｎのそれぞれはバッファからなってもよく、第２バスＢ２の第２データ幅２ＤＷと同じデータ幅を有してもよい。
【００６２】
上述したバッファ２３０、データ伝送部２４０及びホストシステム２０００間の接続構成及びデータ伝送順序をより具体的に説明すると、以下の通りである。
【００６３】
図９は、本発明の実施例によるデータ伝送順序を説明するためのものである。
【００６４】
図９を参照すると、バッファ２３０は第１及び第２バスＢ１、Ｂ２を介してデータ伝送部２４０に接続されてもよい。データ伝送部２４０は第１バスＢ１を介してＡＸＩコントローラ１３００に接続され、第２バスＢ２を介してホストシステム２０００に接続されてもよい。第１バスＢ１は第１データ幅１ＤＷを有し、第２バスＢ２は第２データ幅２ＤＷを有すると仮定する。
【００６５】
リード動作を例に挙げると、ＡＸＩコントローラ１３００から出力されたデータは、第１バスＢ１を介してデータ伝送部２４０に伝送されることができる（丸囲み１）。従って、データ伝送部２４０の伝送ブロックＡｍ０〜Ａｍ３、．．．のそれぞれには第１データ幅１ＤＷを有するデータが入力されることができる。データ伝送部２４０に入力されたデータは、第１バスＢ１を介してバッファ２３０に伝送されることができる（丸囲み２）。上述したように、バッファ２３０には複数のブロックが含まれ、データが入力されたブロックは第１及び第２データ幅１ＤＷ、２ＤＷに応じてマッピングされることができる。マッピングされたブロックのデータは第２バスＢ２を介してデータ伝送部２４０に伝送され（丸囲み３）、データ伝送部２４０は第２バスＢ２を介してデータをホストシステム２０００のコンピューティングエンジングループＣＧ０〜ＣＧ３、．．．に出力することができる（丸囲み４）。
【００６６】
上述したデータ伝送方式をより容易に理解できるように、バッファ２３０とホストシステム２０００を用いて説明すると、以下の通りである。
【００６７】
図１０及び図１１は本発明の第１実施例によるデータ伝送方法を説明するためのものであり、第１バスＢ１と第２バスＢ２のデータ幅が同じである場合の実施例を説明する。上述したように、第１バスＢ１と第２バスＢ２のデータ幅が同じである場合、データ伝送順序コントローラ（図５の３２）はデータ伝送方式をデフォルトで保持することができる。
【００６８】
図１０はバッファ２３０に入力されるデータを示しており、図１１はバッファ２３０から出力されてホストシステム２０００に入力されるデータを示す。第１及び第２バスＢ１、Ｂ２のデータ幅が３２ビット（ｂｉｔ）である場合を例に挙げて説明すると、以下の通りである。
【００６９】
図１０を参照すると、共有メモリシステムからリードしたデータＤＡＴＡ；０、１、．．．、３１は、ＡＸＩコントローラ及びデータ伝送部を介してバッファ２３０に入力されることができる。第１バスＢ１のデータ幅が３２ビットである場合、１つのクロックＣＬＫ毎に３２ビットのデータがバッファ２３０のブロックに同時に入力されることができる。例えば、データ０ＤＡＴＡ０、データ１ＤＡＴＡ１、データ３１ＤＡＴＡ３１がそれぞれ３２ビットのデータで構成された場合、クロックの最初の立ち上がりエッジ（ｅｄｇｅ）に応答して３２ビットのデータ０ＤＡＴＡ０がバッファ２３０のブロックに入力され、クロックの二番目の立ち上がりエッジに応答して３２ビットのデータ１ＤＡＴＡ１がバッファ２３０の他のブロックに入力されることができる。このような方式で、３２ビットのデータ３１ＤＡＴＡ３１がクロックの立ち上がりエッジに応答してバッファ２３０のブロックに入力されることができる。このように、複数のクロックＣＬＫに応答して第１バスＢ１を介して伝送されることができる最大容量のデータがバッファ２３０に入力される段階を１つのサイクル（ｃｙｃｌｅ）という。
【００７０】
即ち、第１サイクル１ｃｙｃｌｅの間、第１バスＢ１を介してバッファ２３０に入力されるデータの容量は制限され、当該制限は第１バスＢ１の第１データ幅１ＤＷの応じて増加または減少することができる。
【００７１】
図１１を参照すると、第２サイクル２ｃｙｃｌｅでは、バッファ２３０に入力されたデータが第２バスＢ２を介してホストシステム２０００に出力されることができる。図１１では、第２バスＢ２のデータ幅が３２ビットであるため、データはバッファ２３０に入力された順序通りにクロックＣＬＫに従ってホストシステム２０００に出力されることができる。
【００７２】
図１２〜図１４は、本発明の第１実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【００７３】
図１２を参照すると、第１サイクル１ｃｙｃｌｅの間、バッファ２３０のブロックのそれぞれには３２ビットのデータが入力されることができる。例えば、第１ブロックＢ１０１のデータ幅が３２ビットである場合、第１バスＢ１を介して３２ビットのデータ「０」が第１ブロックＢ１０１に入力されることができる。
【００７４】
第１サイクル１ｃｙｃｌｅはバッファ２３０にデータが入力される区間であるため、ホストシステム２０００にはデータが入力されない。
【００７５】
図１３を参照すると、第２サイクル２ｃｙｃｌｅでは、第１サイクルでバッファ２３０に入力されたデータ０〜３１はホストシステム２０００に出力され、新たなデータ３２〜６３が入力されることができる。
【００７６】
第１実施例では、バッファ２３０のブロックＢ１０１とホストシステム２０００のコンピューティングエンジングループＣＧ０が３２ビットと同じであるため、バッファ２３０に入力されたデータ０〜３１がそのままホストシステム２０００に出力されることができる。即ち、バッファ２３０で１つのブロックに入力された３２ビットのデータは、３２ビットのコンピューティングエンジングループの１つにそのまま伝送されることができる。
【００７７】
図１４を参照すると、第３サイクル３ｃｙｃｌｅでは、第２サイクルでバッファ２３０に入力されたデータ３２〜６３はホストシステム２０００に出力され、バッファ２３０には新たなデータ６４〜９５が入力されることができる。
【００７８】
次いで、第１バスＢ１と第２バスＢ２のデータ幅が異なる場合の実施例を説明する。
【００７９】
図１５及び図１６は本発明の第２実施例によるデータ伝送方法を説明するためのものであり、第２バスＢ２のデータ幅が第１バスＢ１のデータ幅より大きい場合の実施例を説明する。第２実施例では、リードデータが入力される第１バスＢ１のデータ幅よりデータが出力される第２バスＢ２のデータ幅が大きいため、データ伝送順序コントローラ（図５の３２）はバッファ２３０でデータが入力されたブロックを第２バスＢ２の幅に応じてマッピングすることができる。このとき、同じグループにマッピングされるブロックは互いに連続するか、関連するデータが入力されたブロックであってもよい。
【００８０】
図１５はバッファ２３０に入力されるデータを示しており、図１６はバッファ２３０から出力されてホストシステム２０００に入力されるデータを示す。第１バスＢ１のデータ幅は３２ビットであり、第２バスＢ２のデータ幅は６４ビットである場合を例に挙げて説明すると、以下の通りである。
【００８１】
図１５を参照すると、共有メモリシステムからリードしたデータＤＡＴＡ；０、１、．．．、３１は、ＡＸＩコントローラ及びデータ伝送部を介してバッファ２３０に入力されることができる。第１バスＢ１のデータ幅が３２ビットである場合、１つのクロックＣＬＫ毎に３２ビットのデータがバッファ２３０のブロックに同時に入力されることができる。例えば、データ０ＤＡＴＡ０、データ１ＤＡＴＡ１、データ３１ＤＡＴＡ３１がそれぞれ３２ビットのデータで構成された場合、クロックの最初の立ち上がりエッジに応答して３２ビットのデータ０ＤＡＴＡ０がバッファ２３０のブロックに入力され、クロックの二番目の立ち上がりエッジに応答して３２ビットのデータ１ＤＡＴＡ１がバッファ２３０の他のブロックに入力されることができる。このような方式で、３２ビットのデータ３１ＤＡＴＡ３１がクロックの立ち上がりエッジに応答してバッファ２３０のブロックに入力されることができる。即ち、第１サイクル１ｃｙｃｌｅの間、バッファ２３０のブロックにデータ０〜３１が入力されることができる。
【００８２】
入力されたデータのデータ幅より出力されるデータのデータ幅が大きいため、データ伝送順序コントローラ（図５の３２）は、バッファ２３０でデータが入力されたブロックを第２バスＢ２のデータ幅に合わせてマッピングすることができる。例えば、第２バスＢ２のデータ幅が６４ビットであるため、データ伝送順序コントローラ３２はバッファ２３０でデータが入力されたブロックを２つずつマッピングし、マッピングしたブロックに入力されたデータを第２サイクルから同時に出力することができる。
【００８３】
図１６を参照すると、第２サイクル２ｃｙｃｌｅでは、バッファ２３０でマッピングされたブロックのデータが第２バスＢ２を介してホストシステム２０００に同時に出力されることができる。図１５で上述したように、バッファ２３０で２つのブロックが互いにマッピングされたため、マッピングされたブロックは６４ビットのデータ幅を有するようになる。例えば、データ０とデータ１６が入力されたブロックが１つのグループにマッピングされることができる。バッファ２３０で１つのブロックに入力されたデータ０は３２ビットで、他の１つのブロックに入力されたデータ１６も３２ビットであるため、データ０とデータ１６が入力されたブロックの総データは６４ビットとなる。このような方式で、データ１とデータ１７が入力されたブロックが１つのグループにマッピングされ、データ１５とデータ３１が入力されたブロックが１つのグループにマッピングされることができる。
【００８４】
バッファ２３０は、上述したように、マッピングされたブロックの６４ビットのデータを第２バスＢ２を介して順に出力し、ホストシステム２０００は６４ビットのデータを１つのコンピューティングエンジングループに保存することができる。
【００８５】
例えば、第２サイクルの間、ホストシステム２０００にはデータ０とデータ１６が１つのクロックＣＬＫに応答して同時に入力されることができ、次のクロックＣＬＫではデータ１とデータ１７が同時に入力されることができる。第１サイクルの間、バッファ２３０に入力されたデータ０〜３１が第２サイクルの間全てホストシステム２０００に出力されるとき、バッファ２３０にはデータ３２〜６３が入力されることができる。第２サイクルの間、バッファ２３０に入力されたデータ３２〜６３も６４ビットに合わせて第３サイクルの間ホストシステム２０００に出力されることができる。
【００８６】
図１７〜図１９は、本発明の第２実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【００８７】
図１７を参照すると、第１サイクル１ｃｙｃｌｅの間、バッファ２３０のブロックのそれぞれには３２ビットのデータが入力されることができる。例えば、第１ブロックＢ１０１のデータ幅が３２ビットである場合、第１バスＢ１を介して３２ビットのデータ「０」が第１ブロックＢ１０１に入力されることができる。
【００８８】
第１サイクル１ｃｙｃｌｅはバッファ２３０にデータが入力される区間であるため、第１サイクル１ｃｙｃｌｅの間、ホストシステム２０００にはデータが入力されない。
【００８９】
バッファ２３０に入力されたデータ０〜３１はそれぞれ３２ビットずつブロックに保存される。即ち、バッファ２３０に含まれたブロックはそれぞれ３２ビットのデータを保存するため、データ伝送順序コントローラ３２は６４ビットになるようにデータが入力されたブロックをマッピングすることができる。例えば、データ０が入力されたブロックＢ１０１とデータ１６が入力されたブロックＢ１０２を互いにマッピングして１つのバッファグループＢＧ０が構成されることができる。
【００９０】
図１８を参照すると、第２サイクル２ｃｙｃｌｅでは、第１サイクルでバッファ２３０に入力されたデータ０〜３１がホストシステム２０００に出力され、新たなデータ３２〜６３がバッファ２３０に入力されることができる。
【００９１】
バッファグループＢＧ０とホストシステム２０００のコンピューティングエンジングループＣＧ０が全て６４ビットと互いに同じであるため、バッファ２３０でマッピングされたブロックのそれぞれのデータはホストシステム２０００に同時に出力されることができる。
【００９２】
即ち、バッファ２３０でブロックがマッピングされる前には３２ビットブロックのデータが６４ビットのコンピューティングエンジングループＣＧ０に伝送されなければならないため、使用されないバスのチャネルが増加してバスが浪費されることがあるが、第２実施例のように、バッファ２３０のブロックをコンピューティングエンジングループＣＧ０のデータ幅に合わせてマッピングし、マッピングしたブロックのデータを同時に出力することで、バスの浪費を防止し、動作速度を改善することができる。
【００９３】
第２サイクルにおいて、バッファ２３０のデータ０〜３１のデータがホストシステム２０００に伝送される間、バッファ２３０には次のデータ３２〜６３が新たに入力されることができる。データ３２〜６３が入力されたブロックも６４ビットに合わせて２つずつマッピングされることができる。
【００９４】
図１９を参照すると、第３サイクル３ｃｙｃｌｅでは、第２サイクルでバッファ２３０に入力されたデータ３２〜６３がホストシステム２０００に出力され、バッファ２３０には新たなデータ６４〜９５が入力され、データ６４〜９５が入力されたブロックは２つずつ互いにマッピングされることができる。例えば、バッファ２３０でデータ３２、４８が入力された２つのブロックが互いにマッピングされた場合、データ３２、４８は１つのコンピューティングエンジングループＣＧ０に伝送されることができる。ここで、コンピューティングエンジングループＣＧ０は、ホストシステム２０００に含まれたバッファ用ブロックの１つに該当する。即ち、バッファ２３０で２つのブロックに保存されたデータは、ホストシステム２０００に含まれた１つのコンピューティングエンジングループに出力されることができる。
【００９５】
図２０は、本発明の第３実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【００９６】
図２０を参照すると、第３実施例では、バッファ２３０に含まれたブロックのそれぞれは３２ビットのデータ幅でリードデータを受信し、ホストシステム２０００に含まれたコンピューティングエンジングループのそれぞれは１２８ビットのデータ幅でリードデータを受信すると仮定する。
【００９７】
データ伝送順序コントローラ３２は、バッファ２３０に含まれたブロックのデータ幅を１２８ビットに合わせるために、３２ビットブロックの４つを互いにマッピングすることができる。バッファグループＢＧ１〜ＢＧ４のそれぞれは、異なるサイクルでホストシステム２０００に出力されることができる。
【００９８】
例えば、第ＡサイクルＡｃｙｃｌｅの間、第１バッファグループＢＧ１に入力されたデータは１２８ビットずつホストシステム２０００のコンピューティングエンジングループに出力され、第２バッファグループＢＧ２のブロックに次のデータが入力されることができる。
【００９９】
第Ａ＋１サイクルＡ＋１ｃｙｃｌｅの間、第２バッファグループＢＧ２のブロックに入力されたデータは１２８ビットずつホストシステム２０００のコンピューティングエンジングループに出力され、第３バッファグループＢＧ３のブロックには次のデータが入力されることができる。
【０１００】
このような方式で、第Ａ＋２及び第Ａ＋３サイクルＡ＋２、Ａ＋３ｃｙｃｌｅの間、バッファ２３０にはデータが入出力され、ホストシステム２０００にはデータが入力されることができる。
【０１０１】
図２１及び図２２は、本発明の第４実施例によるデータ伝送方法を説明するためのものである。
【０１０２】
図２１及び図２２を参照すると、バッファ２３０のデータ幅よりホストシステム２０００のデータ幅が小さい場合が第４実施例として示されている。
【０１０３】
例えば、バッファ２３０に含まれたブロックのそれぞれは６４ビットのデータ幅を有し、ホストシステム２０００のコンピューティングエンジングループのそれぞれは３２ビットのデータ幅を有すると仮定する。
【０１０４】
第１サイクル１ｃｙｃｌｅの間、バッファ２３０には６４ビットのデータグループがクロックＣＬＫに応答して順に入力されることができる。例えば、最初のクロックＣＬＫでデータ０、１６が１つのブロックに入力され、二番目のクロックＣＬＫではデータ１、１７が他の１つのブロックに入力されることができる。但し、データ０とデータ１６はそれぞれ３２ビットのデータであり、ホストシステム２０００に３２ビットずつ分けて出力されることを説明するためにデータ０とデータ１６に区分しており、このような区分なしに６４ビットのデータ０と記載することもできる。６４ビットのデータ０で表現する場合、データ０は３２ビットからなる２つのデータグループに区分されてもよく、それぞれのデータグループは次のサイクルからホストシステム２０００に順に出力されることもできる。発明の理解を助けるために、図２１及び図２２では、１つのクロックＣＬＫに応答してバッファ２３０に同時に入力されるデータを２つのグループで表記する。
【０１０５】
第１サイクル１ｃｙｃｌｅの間、データ０〜３１がバッファ２３０に入力されると、第２サイクル２ｃｙｃｌｅの間にはデータ３２〜６３がクロックＣＬＫに応答してバッファ２３０に入力されることができる。第２サイクル２ｃｙｃｌｅでも、データ３２、４８は１つのクロックＣＬＫに応答して１つのブロックに入力され、データ３３、４９は次のクロックＣＬＫに応答して他の１つのブロックが入力されることができる。
【０１０６】
図２２を参照すると、第２サイクル２ｃｙｃｌｅの間、バッファ２３０のそれぞれのブロックに入力されたデータの１／２に該当するデータ０、１、．．．、１５がクロックＣＬＫに応答して順に出力されることができる。バッファ２３０から出力されるデータ０、１、．．．、１５は、ホストシステム２０００のコンピューティングエンジングループのそれぞれに入力されることができる。コンピューティングエンジングループのそれぞれは３２ビットのデータ幅を有すると仮定したため、データ０は３２ビットのデータ幅を有し、データ１も３２ビットのデータ幅を有する。
【０１０７】
第３サイクル３ｃｙｃｌｅでは、バッファ２３０に入力されたデータ１６〜４７がクロックＣＬＫが応答して出力されるが、データ１６とデータ３２は同じクロックＣＬＫに応答して同時に出力され、異なるコンピューティングエンジングループに入力されることができる。このように、データ１６とデータ３２が同時に出力できる理由は、データ１６とデータ３２がバッファ２３０で異なるブロックに入力されるからである。このような原理で、次のクロックＣＬＫではデータ１７とデータ３３が同時に出力され、異なるコンピューティングエンジングループに入力されることができる。
【０１０８】
図２３〜図２５は、本発明の第４実施例によるデータマッピング及び伝送方法をバッファとホストシステムを用いて説明するためのものである。
【０１０９】
図２３を参照すると、第１サイクル１ｃｙｃｌｅの間、バッファ２３０に６４ビットのデータが順に入力されることができる。例えば、データ０、１６のデータ総容量は６４ビットであり、６４ビットのデータ０、１６は１つのブロックに同時に入力されることができる。即ち、データ１、１７は同じブロックに同時に入力されるデータで、データ２、１８も同じブロックに同時に入力されるデータである。ここで、データ１、１７が入力されるブロックとデータ２、１８が入力されるブロックは異なる。
【０１１０】
図２４を参照すると、第２サイクル２ｃｙｃｌｅの間、バッファ２３０に入力されたデータの１／２がホストシステム２０００に出力されることができる。例えば、第１サイクル１ｃｙｃｌｅの間バッファ２３０に入力されたデータ０〜３１のうちデータ０〜１５がホストシステム２０００に出力されることができる。但し、データ０〜１５はバッファ２３０で異なるブロックに入力されたデータであり、ホストシステム２０００でも異なるコンピューティングエンジングループに入力されることができる。例えば、３２ビットのデータ０はコンピューティングエンジングループＣＧ０に入力されることができる。
【０１１１】
また、データ０〜１５がホストシステム２０００に出力されるとき、バッファ２３０にはデータ３２〜６３が入力されることができる。データ３２〜６３は、バッファ２３０でデータ０〜３１が入力されたブロックと異なるブロックに入力されることができる。データ３２〜６３も６４ビットずつ対を成して入力されることができる。例えば、データ３２、４８が６４ビットをなし、同じブロックに同時に入力されることができる。データ３３、４９も６４ビットをなし、同じブロックに同時に入力されることができる。データ３２、４８が入力されたブロックとデータ３３、４９が入力されたブロックは異なる。
【０１１２】
図２５を参照すると、第３サイクル３ｃｙｃｌｅでは、第１サイクル１ｃｙｃｌｅで入力されたデータのうちバッファ２３０に残留するデータ１６〜３１と、第２サイクル２ｃｙｃｌｅの間バッファ２３０に入力されたデータの１／２に該当するデータ３２〜４７がホストシステム２０００に出力されることができる。
【０１１３】
例えば、データ１６〜３１のそれぞれは３２ビットのデータで、データ３２〜４７もそれぞれ３２ビットのデータで構成されることができる。即ち、データ１６〜４７のそれぞれは３２ビットのデータで構成され、ホストシステム２０００の異なるコンピューティングエンジングループに入力されることができる。従って、データ０とデータ１６は、バッファ２３０では同じブロックに保存されるが、ホストシステム２０００では異なるコンピューティングエンジングループＣＧ０、ＣＧ１６にそれぞれ保存されることができる。
【０１１４】
上述したように、データ幅に応じてデータが保存されたブロックをマッピングし、マッピングしたブロックをデータ幅に合わせて伝送することにより、メモリシステム内の様々なデータ幅を有するバスを使用することができ、データ幅が異なるホストシステム２０００にメモリシステム１０００が接続されても、バスを効率的に使用することができる。
【０１１５】
本発明の詳細な説明では具体的な実施例について説明したが、本発明の範囲と技術的思想から外れない範囲内で様々な変更が可能である。従って、本発明の範囲は、上述した実施例に限定されてはならず、添付の特許請求の範囲だけでなく、この発明の特許請求の範囲と均等なものによって定められるべきである。
【符号の説明】
【０１１６】
１０００  メモリシステム
１１００  共有メモリシステム
１２００  プロセッサ
１３００  ＡＸＩコントローラ
１１０  共有メモリ
１２０  メモリコントローラ
１３０  コア
２１０  メインコントローラ
２０１  データ幅コントローラ
２２０  動作コントローラ
２３０  バッファ
２４０  データ伝送部
３１  レジスタ
３２  データ伝送順序コントローラ
Ｂ１  第１バス
Ｂ２  第２バス
１ＤＷ  第１データ幅
２ＤＷ  第２データ幅
【図１】
2020135851.tif 000003
【図２】
2020135851.tif 000004
【図３】
2020135851.tif 000005
【図４】
2020135851.tif 000006
【図５】
2020135851.tif 000007
【図６】
2020135851.tif 000008
【図７】
2020135851.tif 000009
【図８】
2020135851.tif 000010
【図９】
2020135851.tif 000011
【図１０】
2020135851.tif 000012
【図１１】
2020135851.tif 000013
【図１２】
2020135851.tif 000014
【図１３】
2020135851.tif 000015
【図１４】
2020135851.tif 000016
【図１５】
2020135851.tif 000017
【図１６】
2020135851.tif 000018
【図１７】
2020135851.tif 000019
【図１８】
2020135851.tif 000020
【図１９】
2020135851.tif 000021
【図２０】
2020135851.tif 000022
【図２１】
2020135851.tif 000023
【図２２】
2020135851.tif 000024
【図２３】
2020135851.tif 000025
【図２４】
2020135851.tif 000026
【図２５】
2020135851.tif 000027