(57)【要約】  メモリハブは、個々のデータバスに接続するための第１および第２のリンクインタフェース、第１および第２のリンクインタフェースに接続され、第１および第２のリンクインタフェースの間に転送されるデータが通るデータパスを含み、またデータパスに接続され、書込データをデータパスに接続し、かつ書込データを一時的に格納し書込データが一時的に格納されている間に読出データがデータパスを通り転送されることを可能とする、書込バイパス回路をさらに含む。メモリシステム中の読出データにアクセスすること、メモリシステムに書込データを提供すること、および一時的格納のためにレジスタに書込データを接続することを含む、メモリシステムのメモリ域にデータを書き込む方法が提供される。読出データが提供された後に、その書込データは、メモリバスに再接続され、メモリ域に書き込まれる。
2007520826.tif 000002
【特許請求の範囲】
【請求項１】
個々のデータバスに接続するための第１および第２のリンクインタフェース、
該第１および第２のリンクインタフェースに接続されたデータパスであって、該データパスを通じてデータが該第１および第２のリンクインタフェース間で転送されるデータパス、並びに、
該データパスに接続された書込バイパス回路であって、書込データを該データパス上に接続し、および、該書込データを一時的に格納して該書込データを一時的に格納している間は読出データが該データパスを通して転送されることを可能とする書込バイパス回路
を備えることを特徴とするハブベースのメモリモジュールのためのメモリハブ。
【請求項２】
前記書込バイパス回路が、
前記データパスに接続された第１の入力を有し、かつ第２の入力、出力、および選択端子を有しており、該出力を該端子に印加される選択信号に従って前記第１または第２の入力に接続するマルチプレクサ、
前記データパスに接続された入力を有し、かつ該マルチプレクサの前記第２の入力に接続された出力を有する先入れ先出し（ＦＩＦＯ）レジスタ、
該マルチプレクサの前記出力に接続されたバッファ入力を有し、かつバッファ出力およびアクティベート端子を有しており、該端子に印加されるアクティベート信号に従って該バッファ入力を該バッファ出力に接続する出力バッファ、並びに、
該マルチプレクサに接続された選択回路であって、アクティベートされて該マルチプレクサの前記第２の入力を該マルチプレクサの前記出力に接続するときに、前記選択信号および前記アクティベート信号を発生する選択回路
を備えることを特徴とする請求項１に記載のメモリハブ。
【請求項３】
前記書込バイパス回路が、前記データパスに接続された入力並びに前記マルチプレクサおよび前記ＦＩＦＯレジスタの各入力に接続された出力を有する入力バッファをさらに備えることを特徴とする請求項２に記載のメモリハブ。
【請求項４】
前記データパスに接続されたメモリデバイスインタフェースであって、該メモリデバイスインタフェースが接続される少なくとも１つのメモリデバイスにデータを接続するためのメモリデバイスインタフェースをさらに備えることを特徴とする請求項１に記載のメモリハブ。
【請求項５】
第１のデータバスに接続して該データバスにデータを供給しおよび該データバスからデータを受け取るための第１のリンクインタフェース、
第２のデータバスに接続して該データバスにデータを供給しおよび該データバスからデータを受け取るための第２のリンクインタフェース、
該第１および第２のリンクインタフェースに接続され、該第１および第２のリンクインタフェースの間でデータを接続するスイッチ回路、並びに、
該スイッチ回路に接続されるデータバイパス回路であって、該第１または第２のリンクインタフェースのいずれかで受け取った第１のデータの集合を格納し、第２のデータの集合が該第１のデータの集合に干渉されずに該第１および第２のリンクインタフェースの間に接続されることを可能とするデータバイパス回路
を備えることを特徴とするハブベースのメモリモジュールのためのメモリハブ。
【請求項６】
前記データバイパス回路が、
前記スイッチ回路に接続された第１の入力を有し、かつ第２の入力、出力、および選択端子を有しており、該出力を該端子に印加される選択信号に従って前記第１または第２の入力に接続するマルチプレクサ、
前記スイッチ回路に接続された入力を有し、かつ該マルチプレクサの前記第２の入力に接続された出力を有する先入れ先出し（ＦＩＦＯ）レジスタ、
該マルチプレクサの前記出力に接続されたバッファ入力を有し、かつバッファ出力およびアクティベート端子を有しており、該端子に印加されるアクティベート信号に従って該バッファ入力を該バッファ出力に接続する出力バッファ、並びに、
該マルチプレクサに接続された選択回路であって、アクティベートされて該マルチプレクサの前記第２の入力を該マルチプレクサの前記出力に接続するときに、前記選択信号および前記アクティベート信号を発生する選択回路
を備えることを特徴とする請求項５に記載のメモリハブ。
【請求項７】
前記データバイパス回路が、前記スイッチ回路に接続された入力並びに前記マルチプレクサおよび前記ＦＩＦＯレジスタの各入力に接続された出力を有する入力バッファをさらに備えることを特徴とする請求項６に記載のメモリハブ。
【請求項８】
前記スイッチ回路に接続されたメモリデバイスインタフェースであって、該メモリデバイスインタフェースが接続される少なくとも１つのメモリデバイスにデータを接続するためのメモリデバイスインタフェースをさらに備えることを特徴とする請求項５に記載のメモリハブ。
【請求項９】
前記メモリデバイスインタフェースが、
メモリコントローラバスを通して前記データパスに接続され、かつメモリデバイスを接続可能なメモリデバイス端子を有するメモリコントローラ、
該コントローラに接続され、メモリ要求を格納するための書込バッファ、および、
該コントローラに接続され、データを格納するためのキャッシュ
を備えることを特徴とする請求項８に記載のメモリハブ。
【請求項１０】
前記第１のデータの集合は書込データであり、前記第２のデータの集合は読出データであることを特徴とする請求項５に記載のメモリハブ。
【請求項１１】
複数のメモリデバイスおよび該複数のメモリデバイスに接続されたメモリハブを備えたメモリモジュールであって、
該メモリハブが、
個々のデータバスに接続するための第１および第２のリンクインタフェース、
該第１および第２のリンクインタフェースに接続されたデータパスであって、該データパスを通じてデータが該第１および第２のリンクインタフェース間で転送されるデータパス、並びに、
該データパスに接続された書込バイパス回路であって、書込データを該データパス上に接続し、および、該書込データを一時的に格納して該書込データを一時的に格納している間は読出データが該データパスを通して転送されることを可能とする書込バイパス回路
を備えることを特徴とするメモリモジュール。
【請求項１２】
前記書込バイパス回路が、
前記データパスに接続された第１の入力を有し、かつ第２の入力、出力、および選択端子を有しており、該出力を該端子に印加される選択信号に従って前記第１または第２の入力に接続するマルチプレクサ、
前記データパスに接続された入力を有し、かつ該マルチプレクサの前記第２の入力に接続された出力を有する先入れ先出し（ＦＩＦＯ）レジスタ、
該マルチプレクサの前記出力に接続されたバッファ入力を有し、かつバッファ出力およびアクティベート端子を有しており、該端子に印加されるアクティベート信号に従って該バッファ入力を該バッファ出力に接続する出力バッファ、並びに、
該マルチプレクサに接続された選択回路であって、アクティベートされて該マルチプレクサの前記第２の入力を該マルチプレクサの前記出力に接続するときに、前記選択信号および前記アクティベート信号を発生する選択回路
を備えることを特徴とする請求項１１に記載のメモリモジュール。
【請求項１３】
前記書込バイパス回路が、前記データパスに接続された入力並びに前記マルチプレクサおよび前記ＦＩＦＯレジスタの各入力に接続された出力を有する入力バッファをさらに備えることを特徴とする請求項１２に記載のメモリモジュール。
【請求項１４】
前記メモリハブは、前記データパスおよび前記複数のメモリデバイスの少なくとも１つのメモリデバイスに接続されたメモリデバイスインタフェースであって、データを該メモリデバイスに接続するためのメモリデバイスインタフェースをさらに備えることを特徴とする請求項１１に記載のメモリモジュール。
【請求項１５】
前記メモリデバイスインタフェースが、
メモリコントローラバスを通して前記データパスに接続され、メモリデバイスバスを通して前記複数のメモリデバイスの少なくとも１つのメモリデバイスに接続されたメモリコントローラ、
該コントローラに接続され、該コントローラに接続された該メモリデバイスに向けられたメモリ要求を格納するための書込バッファ、および、
該コントローラに接続され、該メモリデバイスに供給されるまたは該メモリデバイスから取得されるデータを格納するためのキャッシュ
を備えることを特徴とする請求項１４に記載のメモリモジュール。
【請求項１６】
複数のメモリデバイスおよび該複数のメモリデバイスの少なくとも１つに接続されたメモリハブを備えたメモリモジュールであって、
該メモリハブが、
第１のデータバスに接続して該データバスにデータを供給しおよび該データバスからデータを受け取るための第１のリンクインタフェース、
第２のデータバスに接続して該データバスにデータを供給しおよび該データバスからデータを受け取るための第２のリンクインタフェース、
該第１および第２のリンクインタフェースに接続され、該第１および第２のリンクインタフェースの間でデータを接続するスイッチ回路、並びに、
該スイッチ回路に接続されるデータバイパス回路であって、該第１または第２のリンクインタフェースのいずれかで受け取った第１のデータの集合を格納し、第２のデータの集合が該第１のデータの集合に干渉されずに該第１および第２のリンクインタフェースの間に接続されることを可能とするデータバイパス回路
を備えることを特徴とするメモリモジュール。
【請求項１７】
前記データバイパス回路が、
前記スイッチ回路に接続された第１の入力を有し、かつ第２の入力、出力、および選択端子を有しており、該出力を該端子に印加される選択信号に従って前記第１または第２の入力に接続するマルチプレクサ、
前記スイッチ回路に接続された入力を有し、かつ該マルチプレクサの前記第２の入力に接続された出力を有する先入れ先出し（ＦＩＦＯ）レジスタ、
該マルチプレクサの前記出力に接続されたバッファ入力を有し、かつバッファ出力およびアクティベート端子を有しており、該端子に印加されるアクティベート信号に従って該バッファ入力を該バッファ出力に接続する出力バッファ、並びに、
該マルチプレクサに接続された選択回路であって、アクティベートされて該マルチプレクサの前記第２の入力を該マルチプレクサの前記出力に接続するときに、前記選択信号および前記アクティベート信号を発生する選択回路
を備えることを特徴とする請求項１６に記載のメモリモジュール。
【請求項１８】
前記データバイパス回路が、前記スイッチ回路に接続された入力並びに前記マルチプレクサおよび前記ＦＩＦＯレジスタの各入力に接続された出力を有する入力バッファをさらに備えることを特徴とする請求項１７に記載のメモリモジュール。
【請求項１９】
前記メモリハブは、前記データパスおよび前記複数のメモリデバイスの少なくとも１つのメモリデバイスに接続されたメモリデバイスインタフェースであって、データを該メモリデバイスに接続するためのメモリデバイスインタフェースをさらに備えることを特徴とする請求項１６に記載のメモリモジュール。
【請求項２０】
前記第１のデータの集合は書込データであり、前記第２のデータの集合は読出データであることを特徴とする請求項１６に記載のメモリモジュール。
【請求項２１】
プロセッサバスを有するプロセッサ、該バスに接続され、システムメモリポートおよび周辺デバイスポートを有するシステムコントローラ、該周辺デバイスポートに接続された少なくとも１つの入力デバイス、該周辺デバイスポートに接続された少なくとも１つの出力デバイス、該周辺デバイスポートに接続された少なくとも１つのデータストレージデバイス、並びに、前記システムメモリポートに接続されたメモリモジュールを備えた、プロセッサベースのシステムであって、
該メモリモジュールが、複数のメモリデバイスおよび該複数のメモリデバイスに接続されたメモリハブを備え、
該メモリハブが、
個々のデータバスに接続するための第１および第２のリンクインタフェース、
該第１および第２のリンクインタフェースに接続されたデータパスであって、該データパスを通じてデータが該第１および第２のリンクインタフェース間で転送されるデータパス、並びに、
該データパスに接続された書込バイパス回路であって、書込データを該データパス上に接続し、および、該書込データを一時的に格納して該書込データを一時的に格納している間は読出データが該データパスを通して転送されることを可能とする書込バイパス回路
を備える
ことを特徴とするシステム。
【請求項２２】
前記書込バイパス回路が、
前記データパスに接続された第１の入力を有し、かつ第２の入力、出力、および選択端子を有しており、該出力を該端子に印加される選択信号に従って前記第１または第２の入力に接続するマルチプレクサ、
前記データパスに接続された入力を有し、かつ該マルチプレクサの前記第２の入力に接続された出力を有する先入れ先出し（ＦＩＦＯ）レジスタ、
該マルチプレクサの前記出力に接続されたバッファ入力を有し、かつバッファ出力およびアクティベート端子を有しており、該端子に印加されるアクティベート信号に従って該バッファ入力を該バッファ出力に接続する出力バッファ、並びに、
該マルチプレクサに接続された選択回路であって、アクティベートされて該マルチプレクサの前記第２の入力を該マルチプレクサの前記出力に接続するときに、前記選択信号および前記アクティベート信号を発生する選択回路
を備えることを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記書込バイパス回路が、前記データパスに接続された入力並びに前記マルチプレクサおよび前記ＦＩＦＯレジスタの各入力に接続された出力を有する入力バッファをさらに備えることを特徴とする請求項２２に記載のシステム。
【請求項２４】
前記メモリハブは、前記データパスおよび前記複数のメモリデバイスの少なくとも１つのメモリデバイスに接続されたメモリデバイスインタフェースであって、データを該メモリデバイスに接続するためのメモリデバイスインタフェースをさらに備えることを特徴とする請求項２１に記載のシステム。
【請求項２５】
前記メモリデバイスインタフェースが、
メモリコントローラバスを通して前記データパスに接続され、メモリデバイスバスを通して前記複数のメモリデバイスの少なくとも１つのメモリデバイスに接続されたメモリコントローラ、
該コントローラに接続され、該コントローラに接続された該メモリデバイスに向けられたメモリ要求を格納するための書込バッファ、および、
該コントローラに接続され、該メモリデバイスに供給されるまたは該メモリデバイスから取得されるデータを格納するためのキャッシュ
を備えることを特徴とする請求項２４に記載のシステム。
【請求項２６】
プロセッサバスを有するプロセッサ、該プロセッサバスに接続され、システムメモリポートおよび周辺デバイスポートを有するシステムコントローラ、該周辺デバイスポートに接続された少なくとも１つの入力デバイス、該周辺デバイスポートに接続された少なくとも１つの出力デバイス、該周辺デバイスポートに接続された少なくとも１つのデータストレージデバイス、並びに、前記システムメモリポートに接続されたメモリモジュールを備えた、プロセッサベースのシステムであって、
該メモリモジュールが、複数のメモリデバイスおよび該複数のメモリデバイスの少なくとも１つに接続されたメモリハブを備え、
該メモリハブが、
第１のデータバスに接続して該データバスにデータを供給しおよび該データバスからデータを受け取るための第１のリンクインタフェース、
第２のデータバスに接続して該データバスにデータを供給しおよび該データバスからデータを受け取るための第２のリンクインタフェース、
該第１および第２のリンクインタフェースに接続され、該第１および第２のリンクインタフェースの間でデータを接続するスイッチ回路、並びに、
該スイッチ回路に接続されるデータバイパス回路であって、該第１または第２のリンクインタフェースのいずれかで受け取った第１のデータの集合を格納し、第２のデータの集合が該第１のデータの集合に干渉されずに該第１および第２のリンクインタフェースの間に接続されることを可能とするデータバイパス回路を備える
ことを特徴とするシステム。
【請求項２７】
前記デーバイパス回路が、
前記スイッチ回路に接続された第１の入力を有し、かつ第２の入力、出力、および選択端子を有しており、該出力を該端子に印加される選択信号に従って前記第１または第２の入力に接続するマルチプレクサ、
前記スイッチ回路に接続された入力を有し、かつ該マルチプレクサの前記第２の入力に接続された出力を有する先入れ先出し（ＦＩＦＯ）レジスタ、
該マルチプレクサの前記出力に接続されたバッファ入力を有し、かつバッファ出力およびアクティベート端子を有しており、該端子に印加されるアクティベート信号に従って該バッファ入力を該バッファ出力に接続する出力バッファ、並びに、
該マルチプレクサに接続された選択回路であって、アクティベートされて該マルチプレクサの前記第２の入力を該マルチプレクサの前記出力に接続するときに、前記選択信号および前記アクティベート信号を発生する選択回路
を備えることを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記データバイパス回路が、前記スイッチ回路に接続された入力並びに前記マルチプレクサおよび前記ＦＩＦＯレジスタの各入力に接続された出力を有する入力バッファをさらに備えることを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記メモリハブは、前記データパスおよび前記複数のメモリデバイスの少なくとも１つのメモリデバイスに接続されたメモリデバイスインタフェースであって、データを該メモリデバイスに接続するためのメモリデバイスインタフェースをさらに備えることを特徴とする請求項２６に記載のシステム。
【請求項３０】
前記メモリデバイスインタフェースが、
メモリコントローラバスを通して前記データパスに接続され、かつメモリデバイスバスを通して前記複数のメモリデバイスの少なくとも１つに接続されたメモリコントローラ、
該コントローラに接続され、該コントローラに接続された該メモリデバイスに向けられたメモリ要求を格納するための書込バッファ、および、
該コントローラに接続され、該メモリデバイスに供給されるまたは該メモリデバイスから取得されるデータを格納するためのキャッシュ
を備えることを特徴とする請求項２９に記載のシステム。
【請求項３１】
前記第１のデータの集合は書込データであり、前記第２のデータの集合は読出データであることを特徴とする請求項２６に記載のシステム。
【請求項３２】
メモリバスに接続されたメモリシステムのメモリ域にデータを書込む方法であって、
該メモリシステム中の読出データにアクセスすること、
前記メモリバスに、該メモリシステムへの書込データを供給すること、
該メモリシステム中のレジスタに、該書込データを該書込データの一時的格納のために接続すること、
前記読出データを前記メモリバスに接続しおよび該読出データを読み出しのために供給すること、
前記レジスタに格納された前記書込データを前記メモリバスに接続すること、並びに、
前記書込データを前記メモリ域に書込むこと
を含むことを特徴とする方法。
【請求項３３】
前記メモリシステムにライトコマンドを発行する前に前記メモリシステムにリードコマンドを発行することをさらに含むことを特徴とする請求項３２に記載の方法。
【請求項３４】
前記書込データを供給することが、前記レジスタに前記書込データを接続する前に前記メモリシステムの少なくとも１つのメモリモジュールを通して前記書込データを供給することを含むことを特徴とする請求項３２に記載の方法。
【請求項３５】
前記メモリシステムは前記メモリバスに直列に接続された複数のメモリモジュールを備え、および、前記書込データを前記メモリ域に書き込むことは、前記読出データがアクセスされたメモリモジュールより川下に位置するメモリモジュール中に位置するメモリ域に前記書込データを書き込むことを含むことを特徴とする請求項３２に記載の方法。
【請求項３６】
メモリバスを有するメモリシステムにおいてメモリコマンドを実行する方法であって、
該メモリシステムに対してリードコマンドを発行すること、
該メモリシステム中のメモリ域にライトコマンドを発行すること、および該メモリシステムの前記メモリバスに書込データを供給すること、
該メモリシステム中の読出データにアクセスすること、
該メモリシステムにおいて、前記書込データを前記メモリバスから分離すること、
該メモリシステムから、前記読出データを前記メモリバス上で受け取ること、
前記書込データを前記メモリバスに再接続すること、および、
前記ライトコマンドを前記メモリ域に対し回復すること
を含むことを特徴とする方法。
【請求項３７】
前記リードコマンドを発行することが、前記ライトコマンドを発行することに先行することを特徴とする請求項３６に記載の方法。
【請求項３８】
前記読出データを受け取る間、前記書込データをバイパスバッファに一時的に格納することをさらに含むことを特徴とする請求項３６に記載の方法。
【請求項３９】
前記書込データを供給することは、前記書込データを前記メモリバスから分離する前に、前記メモリシステムの少なくとも１つのメモリモジュールを通して前記書込データを供給することを含むことを特徴とする請求項３６に記載の方法。
【請求項４０】
メモリバスを有するメモリシステムにおいて読出およびライトコマンドを実行する方法であって、
リードコマンドを発行し、該メモリシステム中の第１のメモリ域にアクセスすること、
該リードコマンドの完了前に、該メモリシステム中の第２のメモリ域に書込データを書き込むためのライトコマンドをスケジュールをすること、
読出データを前記第１のメモリ域から取得すること、
書込データを前記メモリシステムの前記メモリバスに供給すること、
前記メモリシステムにおいて、前記メモリバスに前記読出データをバイパスさせること、
前記メモリシステムから、前記読出データを前記メモリバス上で受け取ること、および、
前記書込データを前記メモリバスに供給すること
を含むことを特徴とする方法。
【請求項４１】
前記読出データをバイパスさせることは、ある時間の間、前記書込データを前記メモリバスから分離して前記メモリバス上でのデータの衝突を回避することを含むことを特徴とする請求項４０に記載の方法。
【請求項４２】
前記読出データを受け取る間、前記書込データをバイパスバッファに一時的に格納することをさらに含むことを特徴とする請求項４１に記載の方法。
【請求項４３】
前記書込データを供給することは、前記書込データを前記メモリバスから分離する前に、前記メモリシステムの少なくとも１つのメモリモジュールを通して前記書込データを供給することを含むことを特徴とする請求項４１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
(関連出願の相互参照)
本願は、２００４年２月５日に出願された、名称「APPARATUS AND METHOD FOR DATA BYPASS FOR A BI-DIRECTIONAL DATA BUS IN A HUB-BASED MEMORY SUB-SYSTEM」の米国特許出願番号１０／７７３，５８３号の利益を主張するものであり、参照によりその開示内容を本明細書に組み込む。
【０００２】
本発明はメモリシステムに関し、より詳細には、双方向データバス上でのデータ衝突を防止するためのデータバイパス（data bypass）を有するメモリモジュールに関する。
【背景技術】
【０００３】
コンピュータシステムは、プロセッサによりアクセスされるデータを格納するために、ダイナミックＲＡＭ（Dynamic Random Access Memory：ＤＲＡＭ）デバイスなどのメモリデバイスを使用する。コンピュータシステムにおいては通常、これらのメモリデバイスはシステムメモリとして使用される。典型的なコンピュータシステムにおいて、プロセッサはプロセッサバスおよびメモリコントローラによりシステムメモリと通信する。システムメモリのメモリデバイスは通常、複数のメモリデバイスを有するメモリモジュールとして配列され、メモリバスを通してメモリコントローラに接続される。プロセッサはメモリ要求を発行し、この中にリードコマンドなどのメモリコマンド、およびデータまたは命令が読み出される位置を指定するアドレスが含まれる。メモリコントローラはコマンドおよびアドレスを使用し、適切なコマンド信号、並びにローおよびカラムアドレスを発生させ、これがメモリバスを通してシステムメモリに印加される。このコマンドおよびアドレスに応答して、データがシステムメモリおよびプロセッサの間で転送される。メモリコントローラは多くの場合にシステムコントローラの一部であり、システムコントローラはまた、プロセッサバスをＰＣＩバスなどの拡張バスに接続するバスブリッジ回路を含む。
【０００４】
メモリシステムにおいては、データ処理能力が高いことが望ましい。メモリコントローラは、システムメモリへの、およびシステムメモリからのデータをメモリデバイスが可能な早さと同等な早さで順序付けるため、処理能力限界は一般にメモリコントローラには関係しない。処理能力を増加させるために取られてきた１つのアプローチは、メモリデバイスとメモリコントローラを接続するメモリデータバスの速度を増加させることである。このようにして、同じ情報量をより少ない時間で、メモリデータバスの上で移動させることが可能となる。しかしながら、メモリデータバス速度の増加にもかかわらず、処理能力においてそれに見合う増加は結果として生じない。データバス速度および処理能力の間が非線形な関係となる理由の１つはメモリデバイス自体におけるハードウェア限界である。すなわち、メモリコントローラはメモリデバイスへのすべてのメモリコマンドを、ハードウェア限界を受け容れるようにスケジュールせねばならない。これらのハードウェア限界は、メモリデバイスの設計によりある程度抑えることが可能であるが、ハードウェア限界を抑えることは通常は、メモリデバイスに対する費用、電力、および／またはサイズを増加させることになり、それらすべてが代替手段として望ましくないため、妥協がなされねばならない。このように、これらの制約を考慮すると、例えばメモリデバイスの同一ページで連続するトラフィックのような、「品行方正（well-behaved）」なトラフィックをメモリデバイスがより増加した速度で移動させることは簡単であるが、メモリデバイスの異なるページまたはバンクの間でバウンスする(bounce)ような、「行儀の悪い（badly-behaved）トラフィック」をメモリデバイスが処理することは、はるかに難しい。結果として、メモリデータバスにおける処理能力の増加は情報処理能力においてそれに見合う増加をもたらさない。
【０００５】
プロセッサおよびメモリデバイスの間の限定された処理能力に加えて、コンピュータシステムの性能はまた、システムメモリデバイスからデータを読むために必要な時間を増加させる、待ち時間の問題によっても制限される。より詳しく述べると、メモリデバイスのリードコマンドが、同期ＤＲＡＭ（Synchronous ＤＲＡＭ：ＳＤＲＡＭ）デバイスなどの、システムメモリデバイスに接続されたとき、読出データは数クロックの期間の遅延の後にしかＳＤＲＡＭデバイスから出力されない。したがって、ＳＤＲＡＭデバイスが高いデータ速度でバーストデータを同期して出力することが可能であっても、最初にデータを提供する際の遅延により、そのようなＳＤＲＡＭデバイスを使用するコンピュータシステムの動作速度をかなり低下させる可能性がある。この待ち時間問題を緩和させるために役立つように、メモリデータバス速度を増加させることが使用可能である。しかしながら処理能力と同様に、本質的には上述したことと同じ理由により、メモリデータバス速度を増加しても、待ち時間の直線的な減少はもたらされない。
【０００６】
メモリデータバス速度を増加することにより、処理能力の増加および待ち時間の減少にある程度成功するが、このアプローチでは他の問題が提起される。例えば、メモリコントローラ、およびメモリモジュールが挿入されるメモリスロットの間には、従来は単にワイヤがあるのみであったため、信号の完全性（integrity）を維持するためには、メモリデータバスの速度が上がるに従って、メモリバス上の負荷を減少させる必要がある。メモリデータバス速度の増加に対応するためにいくつかのアプローチが取られてきた。例えば、メモリスロットの数を減少させること、メモリモジュールのメモリデバイスへの制御信号の十分なファンアウトを提供するためにメモリモジュール上にバッファ回路を追加すること、および１つのメモリデバイスインタフェースには余りにも少数のメモリモジュールコネクタしかないため、メモリモジュール上に複数のメモリデバイスインタフェースを提供すること、である。しかしながら、これらの従来のアプローチの有効性は限定されている。過去においてこれらの技法が使用された理由は、そうすることが費用対効果に優れていたからである。しかしながら、インタフェースあたり１つのメモリモジュールのみが挿入可能であるとき、それぞれの必要なメモリスロットに別のメモリインタフェースを加えることは大変高価になる。言い換えればそのようにすることは、費用を大幅に増大させて、システムコントローラのパッケージをありふれたものの範囲外へ、そして特化したものの範囲内へと押し出すことになる。
【０００７】
費用効率がよい方法でメモリデータバスの速度増加を可能とする最近の１つのアプローチは、プロセッサに接続された複数のメモリデバイスをメモリハブを通して使用することである。メモリハブ構造、すなわちハブベースのメモリサブシステムにおいては、システムコントローラまたはメモリコントローラが高速の双方向または単方向のメモリコントローラ／ハブインタフェースによりいくつかのメモリモジュールに接続される。メモリモジュールは通常、メモリモジュールが１つ１つ直列に接続されるように、ポイントツーポイントすなわちデイジーチェーン（daisy chain）構造で接続される。このようにして、メモリコントローラが第１のメモリモジュールに接続され、第１のメモリモジュールが第２のメモリモジュールに接続され、第２のメモリモジュールが第３のメモリモジュールに接続され、そして以下同様にデイジーチェーン形式で接続される。
【０００８】
それぞれのメモリモジュールはメモリコントローラ／ハブインタフェースおよびモジュール上の多くのメモリデバイスに接続されるメモリハブを含み、メモリハブがコントローラおよびメモリデバイスの間でメモリコントローラ／ハブインタフェースによりメモリ要求および応答を効率的にルーチングする。この構造を採用するコンピュータシステムは、メモリデータバス上での信号完全性の維持が可能であるため、高速メモリデータバスの使用が可能である。そのうえ、この構造はまた、より多くのメモリモジュールが追加されるに際し、従来のメモリバス構造において生起するような、信号品質の劣化を懸念することなく、システムメモリの簡単な拡張を提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
メモリハブを使用するコンピュータシステムは優れた性能を提供できるが、多くの場合に様々な理由により最適な効率で動作できないことがある。そのような理由の１つは、メモリハブを通してメモリコントローラとの間で往き来するデータ間でのデータ衝突管理の問題である。従来のメモリコントローラにおいてデータ衝突を避けるために取られた１つのアプローチは、１つのメモリコマンドの完了まで別のメモリコマンドの実行を遅らせることである。例えば、従来のメモリコントローラでは、リードコマンドの後に発行されたライトコマンドは、メモリバス上で読み出された（すなわち、上りの）データは書込（すなわち、下りの）データと衝突することを回避するために、リードコマンドがほとんど完了するまで開始することを許されない。しかしながら、ライトコマンドが待機することを強要することは、実際上処理能力（bandwidth）を低下させることとなり、このことはメモリシステムにおいて通常望まれていることと一致しない。
【課題を解決するための手段】
【００１０】
本発明の１つの態様は、データバイパス回路を有するメモリハブに関連する。本メモリハブは、個々のデータバスに接続するための第１および第２のリンクインタフェース、第１および第２のリンクインタフェースに接続され、第１および第２のリンクインタフェースの間のデータを転送するデータパスを含む。本メモリハブはさらに、データパス上に書込データを接続し、書込データをデータパス上に接続し、および、書込データを一時的に格納して書込データを一時的に格納している間は読出データがデータパスを通して転送されることを可能とする書込バイパス回路を含む。本発明のもう一つの態様においては、メモリバスに接続されたメモリシステムのメモリ域（memory location）にデータを書き込むための方法を提供する。本方法は、メモリシステム中の読出データにアクセスすること、メモリバスに、メモリシステムへの書込データを供給すること、および、レジスタに、書込データを書込データの一時的格納のために接続することを含む。データが一時的に格納されている間、読出データはメモリバスに接続され、読み出すために供給される。書込データはメモリバスと再接続され、メモリ域に書き込まれる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態は、ハブベースのメモリサブシステムにおいて双方向データバスに対してデータバイパスを提供するバイパス回路を有するメモリハブに向けられる。一定の詳細内容は、本発明の様々な実施形態の十分な理解を提供するために、以下に詳しく説明される。しかしながら、これらの特定の詳細なしで本発明を実施することができることが当業者には明らかであろう。本発明を不必要に分かり難くすることを避けるために、周知の回路、制御信号、およびタイミングプロトコルについては、詳細に示されない場合がある。
【００１２】
図１は、本発明の一実施形態によるコンピュータシステム１００を示す。コンピュータシステム１００は、特定の計算またはタスクを行う特定のソフトウェアを実行することなどの、様々なコンピューティング機能を実行するためのプロセッサ１０４を含む。プロセッサ１０４は、通常、アドレスバス、コントロールバス、およびデータバスを含むプロセッサバス１０６を含む。プロセッサバス１０６は通常、キャッシュメモリ１０８に接続される。キャッシュメモリ１０８は通常、スタティックＲＡＭ（Static Random Access Memory：ＳＲＡＭ）により提供される。プロセッサバス１０６はまた、バスブリッジとも呼ばれる場合のある、システムコントローラ１１０に接続される。
【００１３】
システムコントローラ１１０は、他の様々な構成要素に対してはプロセッサ１０４との通信経路の役割をする。例えば図１に示されるように、システムコントローラ１１０は通常グラフィックコントローラ１１２に接続されたグラフィックポートを含む。グラフィックコントローラは通常、ビデオディスプレイなどのビデオ端末１１４に接続される。システムコントローラ１１０はまた、キーボードまたはマウスなどの、１つまたは複数の入力デバイス１１８に接続され、オペレータがコンピュータシステム１００とインターフェイスすることを可能とする。コンピュータシステム１００はまた通常、システムコントローラ１１０を通してプロセッサ１０４に接続された、プリンタなどの１つまたは複数の出力デバイス１２０を含む。１つまたは複数のデータストレージデバイス１２４はまた通常、システムコントローラ１１０を通してプロセッサ１０４に接続され、プロセッサ１０４が内部または外部ストレージメディア（図示せず）との間でデータを格納し、またはデータを取得することを可能とする。典型的なストレージデバイス１２４の例としては、ハードディスクおよびフロッピー（登録商標）ディスク、カセットテープ、およびコンパクトディスク読み出し専用メモリ（Compact Disk Read-Only Memorｙ：ＣＤ−ＲＯＭ）が含まれる。
【００１４】
システムコントローラ１１０には、いくつかのメモリモジュール１３０ａ、１３０ｂ、１３０ｃ、…１３０ｎのメモリハブ１４０に接続されたメモリハブコントローラ１２８が含まれる。メモリモジュール１３０は、コンピュータシステム１００に対するシステムメモリとして機能し、望ましくは高速双方向のメモリコントローラ／ハブインタフェース１３４を通してメモリハブコントローラ１２８に接続される。メモリモジュール１３０は、ポイントツーポイント配置でメモリハブコントローラ１２８に接続されるように示され、メモリコントローラ／ハブインタフェース１３４が、メモリモジュール１３０のメモリハブ１４０を通して接続される。すなわちメモリコントローラ／ハブインタフェース１３４は、メモリハブ１４０を直列に接続する双方向バスである。したがって、メモリコントローラ／ハブインタフェース１３４の情報は、「川下（downstream）」の宛先に到達するには「上流（upstream）」のメモリモジュール１３０のメモリハブ１４０を通って移動せねばならない。例えば、特に図１を参照すると、メモリハブコントローラ１２８からメモリモジュール１３０ｃのメモリハブ１４０まで送られる情報は、メモリモジュール１３０ａおよび１３０ｂのメモリハブ１４０を通過するであろう。
【００１５】
しかしながら、図１のポイントツーポイント配置以外の接続形態もまた、使用できることが理解されるであろう。例えば、メモリハブコントローラ１２８にそれぞれのメモリモジュール１３０を接続するために別々の高速リンク（図示せず）が使用される接続配置を使用することができる。また、メモリハブコントローラ１２８がスイッチ（図示せず）によりそれぞれのメモリモジュール１３０に選択的に接続される切り換え接続形態を使用することができる。使用することができる他の接続形態は当業者にとって明らかであろう。加えて、メモリモジュールをメモリハブコントローラに接続するメモリコントローラ／ハブインタフェース１３４は、電気的または光学的な通信路であることができる。しかしながら、メモリコントローラ／ハブインタフェース１３４として他の型の通信路をもまた、使用することができる。メモリコントローラ／ハブインタフェース１３４が光通信路として実施された場合には、その光通信路は１つまたは複数の光ファイバの形態を取る場合がある。そのような場合にはメモリハブコントローラ１２８およびメモリモジュールは、当技術分野でよく知られているように、光学的入／出力ポートまたは光通信路に接続された別個の入力および出力ポートを含むであろう。
【００１６】
メモリハブ１４０は、個々のメモリモジュール１３０のメモリデバイス１４８へのアクセスを制御する。図１では、メモリデバイスは同期型ＤＲＡＭ（Synchronous Dynamic Random Access Memory：ＳＤＲＡＭ）デバイスとして示される。しかしながら、ＳＤＲＡＭデバイス以外のメモリデバイスをもまた、使用することができる。また、図１に示されるように、メモリハブは個々のメモリバス１５０により４組のメモリデバイス１４８に接続される。それぞれの組は４つのメモリデバイス１４８で、それぞれのメモリモジュール１３０あたり合計２０個のメモリデバイス１４８を含む。当技術分野で知られているように、メモリバス１５０は通常、コントロールバス、アドレスバス、およびデータバスを含む。しかしながら、共有コマンド／アドレスバスを使用するバスシステムなどの、他のバスシステムもまた、本発明の範囲から逸脱することなく使用することができることは、当業者により理解されるであろう。さらに、メモリデバイス１４８の配置、およびメモリデバイス１４８の数が本発明の範囲から逸脱することなく変更可能であることも理解されるであろう。
【００１７】
図２は、本発明の実施形態によるメモリハブ１４０の一部を示す。メモリハブ１４０は、メモリコントローラ／ハブインタフェース１３４（図１）に接続されたローカルハブ回路２１４を含む。ローカルハブ回路２１４は、メモリバス１５０を通してさらにメモリデバイス１４８に接続される。ローカルハブ回路２１４は、メモリコントローラ１２８から発行されたメモリ命令を処理するための、およびメモリバス１５０上でメモリデバイス１４８にアクセスするためのコントロールロジックを含み、メモリコマンドが個々のメモリモジュール１３０に向けられたとき、対応するデータを供給する。そのようなコントロールロジックの設計および動作は、当業者によりよく知られているため、簡略にするため、ここでのより詳細な記述は省略されている。メモリハブ１４０は、さらにローカルハブ回路２１４に接続されたデータバイパス回路２８６を含む。以下でさらに詳細に記述されるようにデータバイパス回路２８６は、離れているメモリハブに行くデータを一時的にキャプチャするために使用され、キャプチャされたデータがその離れているメモリハブに届く前に別の離れているメモリハブから戻るデータがメモリハブ１４０を通過することを可能とする。このようにデータバイパス回路２８６は、メモリハブ１４０が接続される双方向メモリのコントローラ／ハブインタフェース１３４上でのデータ衝突を避けるために使用することが可能なデータバイパス機構を提供する。
【００１８】
上述したように、データ衝突を避けるために従来のメモリサブシステムで取られた１つのアプローチは、１つのメモリコマンドが完了するまで別のメモリコマンドの実行を遅らせることである。例えば典型的なシステムにおいては、リードコマンド（read command）の後で発行されたライトコマンド（write command）は、メモリコントローラ／ハブインタフェース１３４上で読み出された（すなわち、上りの）データが書込（すなわち、下りの）データと衝突することを回避するために、そのリードコマンドがほぼ完了するまでは開始することを許されなかったであろう。それにひきかえ、データバイパス回路２８６を有するメモリハブ１４０を採用することにより、リードコマンドの後に発行されたライトコマンドは、従来のメモリシステムと比べて、より早く順序付けることができ、その結果、先にスケジュールされたそのライトコマンドの後にスケジュールされたメモリコマンドをもまた、より速やかに実行することが可能である。
【００１９】
図３は本発明の実施形態によるデータバイパス回路３００を示す。データバイパス回路３００は、データバイパス回路２８６（図２）に代わることが可能であり、当業者によく知られている従来の設計および回路を使用して実施可能である。データバイパス回路３００は、入力書込データＷＲ＿ＤＡＴＡ＿ＩＮを受け取り、かつそれをバイパスレジスタ／ＦＩＦＯ（First-In-First-Out：先入れ先出し回路）３０４およびマルチプレクサ３０６の第１の入力に供給する入力バッファ３０２を含む。バイパスレジスタ／ＦＩＦＯ３０４の出力は、マルチプレクサ３０６の第２の入力に接続される。マルチプレクサ３０６の出力に２つの入力のどちらを接続すべきかについては、バイパス選択ロジック３０８により発生されたイネーブル信号ＥＮにより選択される。ＥＮ信号はまた、入／出力バッファ３１０をアクティベート、または非アクティベートする出力イネーブル信号として、入／出力バッファ３１０にも供給される。バイパス選択ロジック３０８は、メモリハブコントローラ１２８（図１）により提供されたアクティベート信号ＢＹＰＡＳＳ＿ＥＮに応答して適切なＥＮ信号を発生させる。あるいはまた、同じメモリシステムの一部である他のメモリハブ（図示せず）からＢＹＰＡＳＳ＿ＥＮ信号が提供される場合がある。データバイパス回路の回路構成は従来型であり、かつデータバイパス回路３００の回路が当技術分野でよく知られている従来型の設計および回路を使用して実施可能であることが理解されるであろう。
【００２０】
動作としては、データバイパス回路３００により受け取られたＷＲ＿ＤＡＴＡ＿ＩＮが入力バッファ３０２により駆動され、マルチプレクサ３０６の第１の入力に供給される。ＷＲ＿ＤＡＴＡ＿ＩＮはまた、バイパスレジスタ／ＦＩＦＯ３０４で保存される。アクティブでないＢＹＰＡＳＳ＿ＥＮ信号に応答して、アクティブなＥＮ信号がバイパス選択ロジック３０８により発生される。アクティブなＥＮ信号は、入／出力バッファ３１０による出力をイネーブルし、かつマルチプレクサ３０６により入力バッファ３０２の出力を入／出力バッファ３１０の入力に接続する。その結果、ＷＲ＿ＤＡＴＡ＿ＩＮは入／出力バッファ３１０の入力に直接供給され、ＷＲ＿ＤＡＴＡ＿ＩＮがバイパスすることなく、データバイパス回路３００を通して供給される。しかしながら、アクティブなＢＹＰＡＳＳ＿ＥＮ信号に応答して、バイパス選択ロジック３０８はアクティブでないＥＮ信号を発生させ、入／出力バッファ３１０の出力機能をディスエーブルし、その出力をハイインピーダンス状態に設定する。加えて不活発なＥＮ信号は、入／出力バッファ３１０の入力をバイパスレジスタ／ＦＩＦＯ３０４の出力に接続する。この様にＷＲ＿ＤＡＴＡ＿ＩＮは、データバイパス回路３００によって受け取られ、バイパスレジスタ／ＦＩＦＯ３０４により格納され、そして入／出力バッファ３１０の入力に印加される。しかしながらＥＮ信号がアクティブでない状態であるため、ＷＲ＿ＤＡＴＡ＿ＩＮは入／出力バッファ３１０によって出力データＷＲ＿ＤＡＴＡ＿ＯＵＴとして供給はされない。結果として、ＢＹＰＡＳＳ＿ＥＮ信号がアクティブになり、そのときにＥＮ信号が再びアクティブになって、入／出力バッファ３１０をイネーブルしＷＲ＿ＤＡＴＡ＿ＩＮをＷＲ＿ＤＡＴＡ＿ＯＵＴデータとして供給するまで、ＷＲ＿ＤＡＴＡ＿ＩＮはバイパス状態で保持される。マルチプレクサ３０６はまた、元の状態に切り換えられ、入力バッファ３０２の出力を入／出力バッファ３１０の入力に直接接続し、ＷＲ＿ＤＡＴＡ＿ＩＮが制約を受けずにデータバイパス回路を通過することを可能とする。
【００２１】
データバイパス回路２８６の動作は、図４を参照して記述されるであろう。図４が簡素化されていることを除いて、図４は図１と同様である。特に、図１の機能ブロックの多くが省略されており、メモリモジュールは１３０ａ〜１３０ｃのみが示され、メモリハブは１４０ａ〜１４０ｃによって代表されている。１つのメモリデバイス１４８ａ〜１４８ｃのみが、個々のメモリバス１５０ａ〜１５０ｃを通して個々のメモリハブ１４０ａ〜１４０ｃに接続されるように示される。図１のようにメモリハブ１４０ａ〜１４０ｃは、高速双方向のメモリコントローラ／ハブインタフェース１３４によりメモリハブコントローラ１２８に接続される。
【００２２】
図４においては、リードコマンドがライトコマンドの前に順序付けられた状態で、メモリハブコントローラ１２８が読出およびライトコマンドをまさに発行したところを想定している。リードコマンドはメモリモジュール１３０ｂに向けられ、かつライトコマンドはメモリモジュール１３Ｏｃに向けられる。すなわち、データが書き込まれるメモリモジュールはデータが読み出されるメモリモジュールよりもさらに下流である。図４において「（１）」により表されるように、リードコマンドに応答して、メモリハブ１４０ｂはメモリデバイス１４８ｂから読出データ（ＲＤ）を取得し始める。リードコマンドが発行された状態で次に、ライトコマンドが開始され、そして書込データ（ＷＤ）がメモリコントローラ／ハブインタフェース１３４に供給される。しかしながら、メモリハブコントローラ１２８は、ＲＤがメモリモジュール１３０ｂから返送されることを予期しているため、データバイパス回路２８６ａがＷＤをキャプチャするようメモリハブ１４０ａに指示する。その結果、図４において「（２）」により表されるように、メモリハブ２８６ａはＷＤをキャプチャし、ＲＤをメモリハブコントローラ１２８に返送するためにメモリコントローラ／ハブインタフェース１３４をクリアする。メモリハブ１４０ｂがメモリデバイス１４８ｂからＲＤを取得すると次に、図４において「（３）」により表されるように、メモリコントローラ／ハブインタフェース１３４を通してメモリハブコントローラ１２８にＲＤが供給され、読出要求を完了する。ＲＤがメモリハブコントローラ１２８への途中でメモリハブ１４０ａを通過すると、メモリハブ１４０ａはＷＤをデータバイパス回路２８６ａから解放し、メモリハブ１４０ｃへのＷＤの進行を続けさせる。メモリハブ１４０ａおよび１４０ｃの間で今やクリアになっている、高速リンクを通して、メモリハブ１４０ｃにＷＤが供給される。図４において「（４）」により表されるように、ＷＤはメモリハブ１４０ｃに到達すると、メモリデバイス１４８ｃに書き込まれる。本発明の一実施形態においては、メモリコントローラ／ハブインタフェース１３４上の、およびデータバイパス回路２８６を通しての、ＲＤおよびＷＤのデータフローの調整はメモリハブコントローラ１２８の制御下にある。例えば前の例においては、メモリハブコントローラは、メモリモジュール１３０ｂからＲＤを取得するときにはＲＤとは逆の方向に流れるいずれのＷＤも邪魔にならないことを確実にする。しかしながら代替の実施形態においては、メモリコントローラ／ハブインタフェース１３４およびデータバイパス回路２８６を通るデータフローについて、メモリハブコントローラ１２８がデータフローの調整をメモリハブ１４０と共有するように、別様な管理が可能であることが理解されるであろう。
【００２３】
前の例においては、従来のメモリシステムのように、メモリハブコントローラ１２８にＲＤが返送される。すなわち、メモリデバイス１４８により送信されたＲＤが何らの重大な遅延なしでメモリコントローラに供給される。しかしながら以前に記述されたデータバイパスメカニズムを採用することにより、従来のメモリシステムを用いる場合より迅速にライトコマンドをスケジュールすることが可能である。典型的なメモリシステムにおいては、リードコマンドの後に発行されたライトコマンドは、リードコマンドがほぼ完了するまで、開始することが許容されることはなかったであろう。対照的に本発明の実施形態では、引き続き発行されるライトコマンドがより迅速にスケジュールされることが可能となり、その結果、読出およびライトコマンドの間の時間差を減少させる。結果として、先にスケジュールされたライトコマンドの後にスケジュールされたコマンドが、総合的に減少した待ち時間を有することになる。
【００２４】
上記から、例示の目的のために本発明の特定の実施形態がここに記述されたが、本発明の精神および範囲から逸脱することなく、様々な修正を行うことができることが理解されるであろう。従って、付随する請求範囲以外では、本発明は限定されることはない。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態を実施可能であるメモリハブ構造におけるメモリモジュールを有するコンピュータシステムのブロック図である。
【図２】図１のメモリモジュールと共に使用するための、本発明の実施形態によるメモリハブの部分的なブロック図である。
【図３】本発明の実施形態による図２のメモリハブに対するデータバイパス回路のブロック図である。
【図４】図１のメモリハブ構造および図２のメモリハブを有するコンピュータシステムに対する図３のデータバイパス回路の動作を示すブロック図である。
【図１】
2007520826.tif 000003
【図２】
2007520826.tif 000004
【図３】
2007520826.tif 000005
【図４】
2007520826.tif 000006
【国際調査報告】
2007520826.tif 000007