(57)【要約】  態様は、読み取りトランザクションまたは書き込みトランザクションのためにメモリモジュールのメモリデバイスのすべてより少ないメモリデバイスに通電するように、メモリ内のデータの記憶を再編成するためのコンピューティングデバイス、システム、および方法を含む。メモリデバイスは、再配列論理回路が、再配列されたメモリマップに従ってトランザクションのために通電するためのメモリデバイスを決定し得るように、個別の選択線に接続され得る。プロセッサがそのメモリアドレス方式を変更する必要なく再配列されたメモリマップに従って、トランザクションのためにプロセッサによって供給されたメモリアドレスが再配列されたメモリアドレスに変換されるように、再配列論理回路がメモリアドレスを再配列し得る。再配列されたメモリマップは、低減された、メモリデバイスによるエネルギー消費、またはレイテンシ耐性プロセスのためのエネルギー消費と性能速度とのバランスを提供し得る。
2017504889.tif 000002
【特許請求の範囲】
【請求項１】
メモリモジュールの複数のメモリデバイスを使用するための方法であって、
前記複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップと、
前記メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するステップと、
前記再配列されたメモリマップに従って前記少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するステップと、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップとを含み、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスが、前記再配列されたメモリマップに従って前記少なくとも1つの再配列されたメモリアドレスと関連付けられる、方法。
【請求項２】
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化するステップを含む、請求項1に記載の方法。
【請求項３】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのうちの1つを使用するように前記再配列されたメモリマップをもたらすステップを含み、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのうちの1つを活性化するステップを含む、請求項1に記載の方法。
【請求項４】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記メモリモジュールの前記複数のメモリデバイスのうちの少なくとも1つを複数回使用するように前記再配列されたメモリマップをもたらすステップを含む、請求項1に記載の方法。
【請求項５】
前記複数のメモリデバイスに書き込むための前記データバーストおよび前記少なくとも1つのメモリアドレスを含む書き込みトランザクションのための前記メモリトランザクション命令を受信するステップであって、前記データバーストがパラレルの書き込みデータを含む、受信するステップと、
前記再配列されたメモリアドレスに書き込むために前記データバーストの少なくとも一部をシリアル書き込みデータに変換するステップと、
前記変換された書き込みデータを、前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つに出力するステップとをさらに含む、請求項1に記載の方法。
【請求項６】
前記複数のメモリデバイスから読み取るための前記少なくとも1つのメモリアドレスを含む読み取りトランザクションのための前記メモリトランザクション命令を受信するステップと、
前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つから前記データバーストを受信するステップであって、前記データバーストの少なくとも一部がシリアル読み取りデータを含む、受信するステップと、
前記メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの前記読み取りデータが順序付けられるように前記データバーストをパラレルフォーマットの読み取りデータに変換するステップと、
パラレルフォーマットの前記読み取りデータをプロセッサに出力するステップとをさらに含む、請求項1に記載の方法。
【請求項７】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、異なる再配列パターンを使用して前記複数のメモリデバイスの前記メモリマップの複数の部分を再配列するステップを含み、前記メモリマップの少なくとも一部が、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される、請求項1に記載の方法。
【請求項８】
メモリモジュールの複数のメモリデバイスを使用するためのメモリコントローラを備え、前記メモリコントローラが、
前記複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップと、
前記メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するステップと、
前記再配列されたメモリマップに従って前記少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するステップと、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップとを含む動作を実行するように構成され、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスが、前記再配列されたメモリマップに従って前記少なくとも1つの再配列されたメモリアドレスと関連付けられる、装置。
【請求項９】
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化するステップを含むような動作を実行するように、前記メモリコントローラが構成される、請求項8に記載の装置。
【請求項１０】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのうちの1つを使用するように前記再配列されたメモリマップをもたらすステップを含み、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのうちの1つを活性化するステップを含むような動作を実行するように、前記メモリコントローラが構成される、請求項8に記載の装置。
【請求項１１】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記メモリモジュールの前記複数のメモリデバイスのうちの少なくとも1つを複数回使用するように前記再配列されたメモリマップをもたらすステップを含むような動作を実行するように、前記メモリコントローラが構成される、請求項8に記載の装置。
【請求項１２】
前記メモリコントローラが、
前記複数のメモリデバイスに書き込むための前記データバーストおよび前記少なくとも1つのメモリアドレスを含む書き込みトランザクションのための前記メモリトランザクション命令を受信するステップであって、前記データバーストがパラレルの書き込みデータを含む、受信するステップと、
前記再配列されたメモリアドレスに書き込むために前記データバーストの少なくとも一部をシリアル書き込みデータに変換するステップと、
前記変換された書き込みデータを、前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つに出力するステップとを含む動作を実行するようにさらに構成される、請求項8に記載の装置。
【請求項１３】
前記メモリコントローラが、
前記複数のメモリデバイスから読み取るための前記少なくとも1つのメモリアドレスを含む読み取りトランザクションのための前記メモリトランザクション命令を受信するステップと、
前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つから前記データバーストを受信するステップであって、前記データバーストの少なくとも一部がシリアル読み取りデータを含む、受信するステップと、
前記メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの前記読み取りデータが順序付けられるように前記データバーストをパラレルフォーマットの読み取りデータに変換するステップと、
パラレルフォーマットの前記読み取りデータをプロセッサに出力するステップとを含む動作を実行するようにさらに構成される、請求項8に記載の装置。
【請求項１４】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、異なる再配列パターンを使用して前記複数のメモリデバイスの前記メモリマップの複数の部分を再配列するステップを含むような動作を実行するように、前記メモリコントローラが構成され、前記メモリマップの少なくとも一部が、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される、請求項8に記載の装置。
【請求項１５】
メモリモジュールの複数のメモリデバイスを使用するための装置であって、
前記複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすための手段と、
前記メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するための手段と、
前記再配列されたメモリマップに従って前記少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するための手段と、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するための手段とを含み、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスが、前記再配列されたメモリマップに従って前記少なくとも1つの再配列されたメモリアドレスと関連付けられる、装置。
【請求項１６】
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するための手段が、前記複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化するための手段を含む、請求項15に記載の装置。
【請求項１７】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすための手段が、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのうちの1つを使用するように前記再配列されたメモリマップをもたらすための手段を含み、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するための手段が、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのうちの1つを活性化するための手段を含む、請求項15に記載の装置。
【請求項１８】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすための手段が、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記メモリモジュールの前記複数のメモリデバイスのうちの少なくとも1つを複数回使用するように前記再配列されたメモリマップをもたらすための手段を含む、請求項15に記載の装置。
【請求項１９】
前記複数のメモリデバイスに書き込むための前記データバーストおよび前記少なくとも1つのメモリアドレスを含む書き込みトランザクションのための前記メモリトランザクション命令を受信するための手段であって、前記データバーストがパラレルの書き込みデータを含む、受信するための手段と、
前記再配列されたメモリアドレスに書き込むために前記データバーストの少なくとも一部をシリアル書き込みデータに変換するための手段と、
前記変換された書き込みデータを、前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つに出力するための手段とをさらに含む、請求項15に記載の装置。
【請求項２０】
前記複数のメモリデバイスから読み取るための前記少なくとも1つのメモリアドレスを含む読み取りトランザクションのための前記メモリトランザクション命令を受信するための手段と、
前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つから前記データバーストを受信するための手段であって、前記データバーストの少なくとも一部がシリアル読み取りデータを含む、受信するための手段と、
前記メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの前記読み取りデータが順序付けられるように前記データバーストをパラレルフォーマットの読み取りデータに変換するための手段と、
パラレルフォーマットの前記読み取りデータをプロセッサに出力するための手段とをさらに含む、請求項15に記載の装置。
【請求項２１】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすための手段が、異なる再配列パターンを使用して前記複数のメモリデバイスの前記メモリマップの複数の部分を再配列するための手段を含み、前記メモリマップの少なくとも一部が、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される、請求項15に記載の装置。
【請求項２２】
プロセッサ実行可能命令を記憶した非一時的プロセッサ可読記憶媒体であって、前記プロセッサ実行可能命令が、
メモリモジュールの複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップと、
前記メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するステップと、
前記再配列されたメモリマップに従って前記少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するステップと、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップとを含む動作をメモリコントローラに実行させるように構成され、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスが、前記再配列されたメモリマップに従って前記少なくとも1つの再配列されたメモリアドレスと関連付けられる、非一時的プロセッサ可読記憶媒体。
【請求項２３】
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化するステップを含むような動作を前記メモリコントローラに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２４】
前記記憶されたプロセッサ実行可能命令が、
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのうちの1つを使用するように前記再配列されたメモリマップをもたらすステップを含み、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのうちの1つを活性化するステップを含むような動作を前記メモリコントローラに実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２５】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記メモリモジュールの前記複数のメモリデバイスのうちの少なくとも1つを複数回使用するように前記再配列されたメモリマップをもたらすステップを含むような動作を前記メモリコントローラに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令が、
前記複数のメモリデバイスに書き込むための前記データバーストおよび前記少なくとも1つのメモリアドレスを含む書き込みトランザクションのための前記メモリトランザクション命令を受信するステップであって、前記データバーストがパラレルの書き込みデータを含む、受信するステップと、
前記再配列されたメモリアドレスに書き込むために前記データバーストの少なくとも一部をシリアル書き込みデータに変換するステップと、
前記変換された書き込みデータを、前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つに出力するステップとをさらに含む動作を前記メモリコントローラに実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令が、
前記複数のメモリデバイスから読み取るための前記少なくとも1つのメモリアドレスを含む読み取りトランザクションのための前記メモリトランザクション命令を受信するステップと、
前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つから前記データバーストを受信するステップであって、前記データバーストの少なくとも一部がシリアル読み取りデータを含む、受信するステップと、
前記メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの前記読み取りデータが順序付けられるように前記データバーストをパラレルフォーマットの読み取りデータに変換するステップと、
パラレルフォーマットの前記読み取りデータをプロセッサに出力するステップとをさらに含む動作を前記メモリコントローラに実行させるように構成される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【請求項２８】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、異なる再配列パターンを使用して前記複数のメモリデバイスの前記メモリマップの複数の部分を再配列するステップを含むような動作を前記メモリコントローラに実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、前記メモリマップの少なくとも一部が、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される、請求項22に記載の非一時的プロセッサ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
デバイス内のメモリフットプリント(密度)は急速に増加している。ダブルデータレートダイナミックランダムアクセスメモリ(DDR DRAM)のコストは減少している。オペレーティングシステムおよびアプリケーションは、より大きく、より複雑になりつつあり、より多くのメモリを使用している。ユーザは、依然として良好な性能と応答性とを期待しながら、プログラムを一斉にロードし実行する。高性能を達成するために、システムは、同時に動作する並列された複数のメモリ構成要素の高速で広範なメモリバスを必要とする。そのようなシステムでは、あらゆるパラレルメモリデバイスは、CPUからのメモリトランザクションの間、通電されている。これは、高い電力消費を代償として、高性能をもたらす。デバイスがモバイルコンピュータ、スマートフォン、タブレット、デスクトップ、または別のタイプのモバイルデバイスである場合、DDR DRAM動作は、デバイスの全電力消費の15%を超えることがある。多くの状況(たとえば、オーディオプレイバック)のもとで、DDR DRAMは、ユーザに対する十分な性能を提供するのに必要な電力以上の電力を使用する。
【発明の概要】
【課題を解決するための手段】
【０００２】
様々な態様の方法および装置は、複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップと、メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するステップと、再配列されたメモリマップに従って少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するステップと、データバーストのためのメモリトランザクション命令を実行するために複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップとを含み得、複数のメモリデバイスのすべてより少ない活性化されたメモリデバイスが再配列されたメモリマップに従って少なくとも1つの再配列されたメモリアドレスと関連付けられる、メモリモジュールの複数のメモリデバイスを使用するための回路および方法を提供する。
【０００３】
一態様方法では、データバーストのためのメモリトランザクション命令を実行するために複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップは、複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化するステップを含み得る。
【０００４】
一態様方法では、複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップは、複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが複数のメモリデバイスのうちの1つを使用するように再配列されたメモリマップをもたらすステップを含み得、データバーストのためのメモリトランザクション命令を実行するために複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップは、データバーストのためのメモリトランザクション命令を実行するために複数のメモリデバイスのうちの1つを活性化するステップを含み得る。
【０００５】
一態様方法では、複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップは、複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストがメモリモジュールの複数のメモリデバイスのうちの少なくとも1つを複数回使用するように再配列されたメモリマップをもたらすステップを含み得る。
【０００６】
一態様方法は、複数のメモリデバイスに書き込むためのデータバーストおよび少なくとも1つのメモリアドレスを含む書き込みトランザクションのためのメモリトランザクション命令を受信するステップであって、データバーストがパラレルの書き込みデータを含み得る、受信するステップと、再配列されたメモリアドレスに書き込むためにデータバーストの少なくとも一部をシリアル書き込みデータに変換するステップと、変換された書き込みデータを、再配列されたメモリアドレスと関連付けられた、複数のメモリデバイスのすべてより少ない活性化されたメモリデバイスのうちの少なくとも1つに出力するステップとをさらに含み得る。
【０００７】
一態様方法は、複数のメモリデバイスから読み取るためのメモリアドレスを含む読み取りトランザクションのためのメモリトランザクション命令を受信するステップと、再配列されたメモリアドレスと関連付けられた、複数のメモリデバイスのすべてより少ない活性化されたメモリデバイスのうちの少なくとも1つからデータバーストを受信するステップであって、データバーストの少なくとも一部がシリアル読み取りデータを含み得る、受信ステップと、メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの読み取りデータが順序付けられるようにデータバーストをパラレルフォーマットの読み取りデータに変換するステップと、パラレルフォーマットの読み取りデータをプロセッサに出力するステップとをさらに含み得る。
【０００８】
一態様方法では、複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップは、異なる再配列パターンを使用して複数のメモリデバイスのメモリマップの複数の部分を再配列するステップを含み得、メモリマップの少なくとも一部は、メモリトランザクション命令のためのデータバーストが複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される。
【０００９】
一態様は、メモリモジュールの複数のメモリデバイスを使用するためのメモリコントローラを含む装置を含み、メモリコントローラは、上記で説明した態様のうちの1つまたは複数を含み得る動作を実行するように構成される。
【００１０】
一態様は、上記で説明した態様方法のうちの1つまたは複数の機能を実行するための手段を含むメモリモジュールの複数のメモリデバイスを使用するための装置を含む。
【００１１】
一態様は、上記で説明した態様方法のうちの1つまたは複数の動作をメモリコントローラに実行させるように構成されたプロセッサ実行可能命令を記憶している、非一時的プロセッサ可読媒体を含む。
【００１２】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１３】
【図１】一態様による、単一チャネル内のDRAM空間合体のために各々が1つのチャネルと関連付けられた、複数のメモリコントローラに接続された複数のメモリモジュール上の複数のメモリデバイスを有するコンピューティングデバイスを示す構成要素ブロック図である。
【図２】一態様による、単一チャネル内のDRAM空間合体のために各々が1つのチャネルと関連付けられた、1つのメモリコントローラに接続された1つのメモリモジュール上の複数のメモリデバイスを有するコンピューティングデバイスを示す構成要素ブロック図である。
【図３】一態様による、パラレルフォーマットのデータをシリアルデータに変換し、シリアルデータを複数のメモリデバイスのうちの1つまたは複数に書き込むように構成されたコンピューティングデバイスを示す構成要素ブロック図である。
【図４】一態様による、複数のメモリデバイスのうちの1つまたは複数からシリアルデータを読み取り、シリアルデータをパラレルフォーマットのデータに変換するように構成されたコンピューティングデバイスを示す構成要素ブロック図である。
【図５】一態様による、最小電力消費のための複数のメモリデバイスに対する例示的な再配列されたメモリマップを示す概略図である。
【図６】一態様による、レイテンシ耐性プロセスのための複数のメモリデバイスに対する例示的な再配列されたメモリマップを示す概略図である。
【図７】一態様による、単一チャネル内のDRAM空間合体のために複数のメモリデバイスへの複数のメモリマップの例示的な適用を示す概略図である。
【図８】単一チャネル内のDRAM空間合体のためのメモリマップ再配列のための一態様方法を示すプロセスフロー図である。
【図９】複数のメモリデバイスのうちの1つまたは複数に書き込むためにパラレルフォーマットのデータをシリアルデータに変換するための態様方法を示すプロセスフロー図である。
【図１０】複数のメモリデバイスのうちの1つまたは複数から読み取るためにシリアルデータをパラレルフォーマットのデータに変換するための一態様方法を示すプロセスフロー図である。
【図１１】複数のメモリデバイスのうちの1つまたは複数に書き込むためにパラレルフォーマットのデータをシリアルデータに変換するための一態様方法を示すプロセスフロー図である。
【図１２】複数のメモリデバイスのうちの1つまたは複数から読み取るためにシリアルデータをパラレルフォーマットのデータに変換するための一態様方法を示すプロセスフロー図である。
【図１３】様々な態様とともに使用するのに適した例示的なモバイルデバイスを示す構成要素ブロック図である。
【図１４】様々な態様とともに使用するのに適した例示的なモバイルデバイスを示す構成要素ブロック図である。
【発明を実施するための形態】
【００１４】
様々な態様を、添付図面を参照して詳細に説明する。可能な限り、同じ参照番号は、同じまたは同様の部分を指すために図面全体を通して使用されることになる。特定の例および実装形態へと行われる言及は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００１５】
「コンピューティングデバイス」および「モバイルデバイス」という用語は、本明細書において、携帯電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤー、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、スマートブック、ウルトラブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、ワイヤレスゲームコントローラ、ならびに、メモリおよびプログラム可能プロセッサを含む同様のパーソナル電子デバイスのうちの、任意の1つまたはすべてを指すために互換的に使用される。様々な態様は、限定されたリソースを有するスマートフォンなどのモバイルコンピューティングデバイスに特に有用であるが、本態様は、一般に、複数のメモリデバイスと、メモリデバイスの電力消費を低減することがモバイルコンピューティングデバイスの寿命を延ばし得る限定された電力予算を実施する任意の電子デバイスにおいて有用である。
【００１６】
「システムオンチップ」(SoC)という用語は、本明細書では、一般的に、限定はしないがハードウェアコア、メモリ、および通信インターフェースを含む相互接続された電子回路のセットを指すために使用される。ハードウェアコアは、汎用プロセッサ、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、加速処理ユニット(APU)、補助プロセッサ、シングルコアプロセッサ、およびマルチコアプロセッサなど、様々な異なるタイプのプロセッサを含み得る。ハードウェアコアは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、他のプログラマブル論理デバイス、ディスクリートゲート論理回路、トランジスタ論理回路、性能モニタリングハードウェア、ウォッチドッグハードウェア、および時間基準など、他のハードウェアおよびハードウェアの組合せをさらに統合し得る。集積回路は、集積回路の構成要素が単品のシリコンなどの半導体材料上にあるように構成され得る。
【００１７】
「チャネル」および「メモリバス」という用語は、本明細書では、メモリコントローラとメモリモジュールとの間でデータを送信するように構成されたデータ路を指すために互換的に使用される。各メモリモジュールは、メモリモジュールに対する専用チャネルに接続され得る。たとえば、「x」個のメモリモジュールを有するデバイスは「x」個のチャネルを有し得、各チャネルは1つのメモリモジュールに対応する。チャネルはサイズが変わる場合があるが、参照しやすいように、本明細書で説明する例は、64ビットまでのパラレルデータを送信可能な64ビットチャネルを参照する。本態様は異なるサイズのチャネルにおいて実施され得るので、これらの例は限定を意味するものではない。「サブチャネル」および「メモリデバイスバス」という用語は、本明細書では、サブチャネルのメモリデバイスが個別に活性化または通電されるときに、メモリモジュールのメモリデバイスに接続されたチャネルの部分を指すために互換的に使用される。
【００１８】
「トランザクション」という用語は、要求されたサイズのデータの完全な転送を指す。「データバースト」という用語は、転送を完了するために複数の連続するサイクルを使用するインターフェースを介するデータの転送を指す。トランザクションは、単一のサイクル内で完了してよく、または複数のサイクルのバースト内で完了してもよい。
【００１９】
参照しやすいように、本明細書で説明する例は、8個のメモリデバイスまたはメモリチップを有するメモリモジュールを仮定する。本明細書で説明する例では、メモリデバイスはサイズが変わる場合があり、メモリデバイスの部分は1バイトまたは8ビットに分割される場合がある。これらの例は、いかなる形でも限定されることは意図されず、本明細書における開示は、変化するサイズおよび構成のメモリモジュールおよびメモリデバイスに適用され得る。さらに、プロセッサ、メモリコントローラ、データバッファ、デバイスバッファ、先入れ先出し(FIFO)バッファ、マルチプレクサ、デマルチプレクサ、再配列論理回路、および複数のバスおよび線の各々など、本明細書で説明する他の構成要素は、メモリモジュールおよびメモリデバイスの変化するサイズおよび構成をサポートするように代替的に構成され得る。
【００２０】
従来のメモリ読み取りまたは書き込みトランザクションの間に、1つのメモリモジュールの上などのメモリデバイスの1つのグループが、コンピューティングデバイスのプロセッサとのトランザクションのために通電され得る。たとえば、従来のメモリデバイスでは、メインメモリが、メモリデバイスの各々が1バイトごとの複数のセグメントに区分される8個のメモリデバイスを有する少なくとも1つのメモリモジュールを含むとき、各メモリデバイスの1バイトのセグメントにアクセスするために、64ビットの読み取りトランザクションまたは書き込みトランザクションは、8個すべてのメモリデバイスに通電することになる。従来のメモリデバイスでは、各メモリデバイスは別のメモリデバイスと同時にデータを受信し得るので、データは、メモリデバイスのグループにパラレルに書き込まれ、それによって、大量のデータへの高速アクセスが可能になる。メモリにアクセスするこの従来の方式は、トランザクションの64ビットのデータがパラレルに、メモリデバイスに書き込まれるか、またはそこから読み取られ得るので、高性能または高速のために構成されたメモリマップを使用して実装される。メモリにアクセスするこの方法はまた、トランザクションのためにメモリデバイスのすべてに通電するので、大量のエネルギーを使用する。しかしながら、本例では64ビットである最大サイズのデータバーストがパラレルに読み取りまたは書き込みをされ得るときに、そのような性能レベルでメモリ読み取りまたは書き込みトランザクションを実行することは不必要である場合がある。同じく、そのように実行した結果が、限定された電力予算を有するデバイスに対して過剰なエネルギー使用をもたらすときには、そのような性能レベルにおいてメモリ読み取りまたは書き込みトランザクションを実行することは望ましくない場合がある。
【００２１】
様々な実施形態は、数バイトのデータが、いくつかのメモリデバイスにわたってパラレルに記憶されるのではなく、単一のメモリデバイス内に記憶されるように、1トランザクション内の数バイトに対してメモリロケーションをリマッピングすることによって、従来の方法より良好な電力効率となる方式でコンピューティングデバイスのメモリ内にデータを記憶するための方法を提供する。この方式でデータバーストをリマッピングすることは、データを書き込むまたは読み取るために単一のメモリデバイスだけが通電される結果をもたらし、それによって、さもなければ従来のパラレルメモリアクセス動作のためにすべてのメモリデバイスに通電することを必要とする電力が節約される。参照しやすいように、「データバースト」および「データのバースト」という用語は、単一のクロックサイクル内で、記憶のためにプロセッサから出力されるかまたはメモリから要求されるデータ量を指すために互換的に使用される。たとえば、64ビットプロセッサは、単一のプロセッサクロックサイクル内に、64ビットのデータを記憶のためのメモリに送信するかまたは64ビットのデータをメモリから要求する場合があり、したがって、そのようなプロセッサに対するデータバーストは8バイトのデータであり得る。様々な実施形態では、64ビットプロセッサを出入りするデータバースト内の8バイトのデータは、8個のメモリデバイスの各々の中に1バイトをパラレルにセーブするのではなく、単一のメモリデバイス内にシリアルにセーブされるように、メモリマップ内で再配列される。
【００２２】
再配列されたメモリマップを使用してデータバーストのためにメモリアドレスを再配列するプロセスは、SoC、メモリデバイス、または別個の集積回路の構成要素であり得るメモリアクセスコントローラ(本明細書において「メモリコントローラ」とも呼ばれる)内で達成され得る。一態様のメモリアクセスコントローラは、様々な態様のメモリマッピングを実行するように構成された再配列論理回路を含み得る。同じくまたは代替的に、態様方法は、メモリアクセスコントローラとは別個の構成要素である再配列論理回路内で実行され得る。このようにして、データバースト内の数バイトを再配列するプロセスは、プロセッサに要件を課することなく達成され得る。言い換えれば、プロセッサは、従来のメモリアドレス技法を使用してメモリにデータを出力し、メモリからのデータにアクセスすることができる一方で、メモリアクセスコントローラは、エネルギー効率の良い方式で数バイトがメモリ内に記憶され得るように、データバースト内の数バイトを再配列する動作を実行する。実際には、メモリ内のパラレル記憶のためにプロセッサによって出力されたデータは、データバースト内の数バイトが単一のメモリデバイス内でシリアルに記憶されるようにメモリアクセスコントローラによってシリアルメモリアドレスに変換される一方で、シリアルフォーマットで単一のデバイス内に記憶されている、メモリから読み取られたデータのバーストは、要求されたメモリロケーションに従ってプロセッサによって予期されるパラレルフォーマットに変換される。
【００２３】
読み取りおよび書き込み動作では、プロセッサは、パラレルデータに対するメモリロケーションのためのトランザクションを要求する場合がある。メモリアクセスコントローラは、特定のメモリデバイス内の要求されたデータの再配列されたメモリロケーションを決定するために、プロセッサによって指定されたメモリアドレスと再配列されたメモリマップとを比較し得る。メモリアクセスコントローラは、メモリデバイスがシリアルデータを取り扱い、プロセッサがパラレルデータを取り扱い得るように、シリアルフォーマットとパラレルフォーマットとの間でデータを変換し得る。
【００２４】
一態様では、メモリアクセスコントローラは、1バーストのデータを取り扱うために、2つ以上であるがすべてよりは少ないメモリデバイスを割り当てることによって性能とエネルギー節約とのバランスを取る、レイテンシ耐性の再配列されたメモリマップを使用してデータアドレスを再配列する場合がある。この態様では、メモリデバイスのすべてをパラレルに使用することによってメモリアクセス性能を最大化するのではなく、上記で説明したようにデータバーストを取り扱うために1つのメモリデバイスを使用することによって電力消費を最小化するために、レイテンシ耐性の再配列されたメモリマップは、データバーストを取り扱うためにいくつかの、しかしすべてではないメモリデバイスを使用し得る。このようにして、再配列されたメモリマップは、データバーストを読み取るかまたは書き込むために通電されるメモリデバイスの数を制限する。本態様は、従来のメモリアクセス技法の高性能だが高電力需要と上記で説明した態様によって提供される低電力だがより遅いメモリアクセスとの間の妥協を提示する。
【００２５】
一態様では、メモリアクセスコントローラによって使用される再配列されたメモリマップはまた、メモリマップの組合せであり得る。メモリデバイスの再配列されたメモリマップは、異なるメモリマップから得られた異なる目的で使用されるメモリデバイスの異なるセクションを分割し得る。たとえば、メモリアクセスコントローラは、各メモリデバイスの第1の部分がエネルギー消費を最小化するシリアルフォーマットのデータを記憶するために使用され、各メモリデバイスの第2の部分がレイテンシ耐性のために構成されたデータを記憶するために使用され、メモリデバイスの第3の部分が最大性能のために構成されたデータを記憶するために使用され得るように構成され得る。メモリアクセスコントローラは、メモリマップを使用してメモリロケーションのそのような配分を達成し得、適切なメモリ部分に対するそのマップデータは、データに対するデータ構造、レイテンシ耐性、またはソースアプリケーションに依存する。メモリアクセスコントローラは、メモリデバイス内のメモリアドレスが、様々な異なる方法で配分され、様々な異なる再配列されたメモリマップに関連するように構成されてよく、本明細書で提供する例は限定を意図されていない。
【００２６】
一態様では、プロセッサによって要求されるトランザクションは、異なる再配列されたメモリマップに関連して、メモリデバイスの異なる部分に割り当てられる場合がある。メモリアクセスコントローラ(またはメモリアクセスコントローラとともに働くプロセッサ)は、プロセッサによって実行されるプロセスの中にあるかまたはそれに関連する命令に基づいて、異なる再配列されたメモリマップに最も適するデータトランザクションを決定し得る。そのような決定は、データのソースもしくはユーザであるソフトウェアアプリケーション内で、またはソフトウェアアプリケーションの解析を通して提供される表示(たとえば、フラグ、データタグ、など)を使用してなされ得る。
【００２７】
図1は、一態様による、各々が1つのチャネルと関連付けられた、複数のメモリコントローラに接続された複数のメモリモジュール上の複数のメモリデバイスを有する例示的なコンピューティングデバイスを示す。コンピューティングデバイス100は、プロセッサ104と、スタティックランダムアクセスメモリ(SRAM)106と、読取り専用メモリ(ROM)108と、メモリコントローラ110と、ストレージコントローラ112とを有し、各々が少なくともプロセッサ104に接続される、SoC102を含み得る。SoC102は、ストレージコントローラ112を介してストレージデバイス114に接続され得る。SoC102は、メモリコントローラ110を介してメモリモジュール116に接続され得る。メモリモジュール116は、メモリデバイス118を含み得る。SoC102に接続された各メモリモジュール116は、メモリモジュール116とSoC102との間でデータを転送するためのチャネルと関連付けられ得る。メモリモジュール116の各メモリデバイス118もまた、メモリモジュールのチャネルと関連付けられ得る。SoC102に接続された各メモリモジュール116は、専用のメモリコントローラ110を介して接続され得、それによって、メモリモジュール116とメモリコントローラ110の各ペアは、同じチャネルと関連付けられる。図1の例は、2つのメモリモジュール116(メモリモジュール-チャネル0、メモリモジュール-チャネル1)に接続されたSoC102を有し、各メモリモジュール116は8つのメモリデバイス118(メモリデバイス0-7)を含み、各メモリモジュール116はその専用のメモリコントローラ110(メモリコントローラ-チャネル0、メモリコントローラ-チャネル1)に接続される、一態様のコンピューティングデバイス100を示す。本例において、SoC102、メモリモジュール116、メモリデバイス118、およびメモリコントローラ110、ならびにしたがってチャネルの数は、いかなる形でも限定されることを意図されず、コンピューティングデバイス100の構成要素の構成は変化する場合がある。
【００２８】
コンピューティングデバイス100において、プロセッサ104は、様々なメモリデバイス118の特定のメモリロケーションからデータを読み取るかまたはそこにデータを書き込むためのトランザクション要求を作成し得る。要求されたトランザクションに対するメモリロケーションと関連付けられたメモリコントローラ110は、データトランザクション要求を受信し、トランザクション要求のデータがメモリデバイス118から読み取られるかまたはそこに書き込まれる方法を制御することができる。以下でさらに詳細に説明するように、メモリコントローラ110は、メモリデバイス118に対するメモリマップを再配列し、データのフローおよびフォーマットを制御し、通電されるメモリデバイス118およびトランザクションに使用されるメモリロケーションを制御することができる。
【００２９】
図2は、メモリコントローラ110に接続され、各々が1つのチャネルと関連付けられる、メモリモジュール116上の複数のメモリデバイスを有するコンピューティングデバイスを示す。メモリコントローラ110およびメモリモジュール116は、「n」個のチャネルと関連付けられた、任意の「n」個のメモリコントローラ110およびメモリモジュール116であり得る。メモリコントローラ110は、データバッファ200および再配列論理回路202を含み得る。コンピューティングデバイスプロセッサ104は、データ、メモリロケーションまたはアドレス、およびプロセッサ104とメモリコントローラ110との間のトランザクション信号を転送するように構成され得るトランザクションバス204によってメモリコントローラ110に接続され得る。プロセッサデータバス206は、トランザクションバス204とデータバッファ200との間でデータを転送し得る。プロセッサアドレスバス208は、トランザクションのためにプロセッサ104によって指定されたメモリロケーションと、要求されたトランザクションが読み取りトランザクションであるかまたは書き込みトランザクションであるかを指定するトランザクション信号とを転送し得る。データバッファ制御バス210は、パラレルフォーマットのデータとシリアルデータとの間でデータを変換し、プロセッサ104またはメモリデバイス118からデータを受信するための信号を含み得る再配列論理回路202からデータバッファ200に制御信号を転送し得る。
【００３０】
データバッファ200はまた、メモリデータバス212によってメモリデバイス118に接続することができる。メモリデバイス118の各々は、同じメモリデータバス212および同じデータバッファ200にパラレルに接続することができる。したがって、64ビットメモリデータバスの例では、メモリデバイス118の各々は、64ビットメモリデータバスのすべてに接続され得る。一態様では、メモリデバイス118の各々は、メモリデータバス212の部分によって同じデータバッファ200に接続することができる。64ビットメモリデータバスの別の例では、メモリデバイス118の各々は、64ビットメモリデータバスの一部に接続され得、それによって、各メモリデバイス118は、その接続された部分におけるデータだけを受信または送信することができる。たとえば、64ビットメモリデータバスは、8つのメモリデバイス118に接続され得、各々は、64ビットメモリデータバスの8ビット部分に接続される。同様の例は、メモリデータバス212の不均一なサイズの部分に接続されたメモリデバイス118を含み得る。これらの構成は、メモリデータバス212が、メモリデバイス118とデータバッファ200との間で、パラレルにおよびシリアルにデータを転送することを可能にする。
【００３１】
再配列論理回路202は、メモリアドレスおよび制御バス214とメモリデバイス選択バス216とによってメモリデバイス118に接続することができる。メモリアドレスおよび制御バス214は、メモリデバイス118が特定のメモリロケーションにデータを記憶するかまたはそこからデータを開放するように、再配列論理回路202からメモリデバイス118に信号を送信し得る。メモリデバイス選択バス216は、メモリデバイス118に通電するように、再配列論理回路202からメモリデバイス118に信号を転送し得る。メモリデバイス選択バス216は、接続されたメモリデバイス118の各々に対する専用線を含み得、再配列論理回路202は、再配列論理回路202が通電するために選択する特定のメモリデバイス118に接続された専用線を選択し得る。個別のメモリデバイス118に通電することで、メモリデータバス212上にサブチャネルが生成され得る。
【００３２】
再配列論理回路202はまた、メモリデバイス118に対するメモリマップを再配列するように構成され得る。上記で説明したように、メモリマップは、性能速度を最大化するため、および/または電力消費と性能速度とのバランスを取るために、メモリデバイス118による電力消費を最小化するように再配列され得る。再配列されたメモリマップは、トランザクション要求の一部としてプロセッサ提供のメモリロケーションと、再配列されたメモリマップのゴールを達成するメモリデバイス118の再配列されたメモリロケーションとを関係づけるために使用され得る。このようにして、プロセッサ104は、指定されたメモリロケーションにおけるデータに対するトランザクションを要求し得、メモリコントローラ110は、プロセッサ104がトランザクションのデータと関係づけるメモリロケーションをプロセッサ104が変えることなく、再配列されたメモリマップのゴールに従って、データがメモリデバイス118に書き込まれるかまたはそこから読み取られる場所を制御し得る。メモリを再配列するためのプロセスおよび再配列されたメモリマップが使用される方法について、以下でさらに説明する。
【００３３】
図3は、パラレルフォーマットのデータをシリアルデータに変換し、シリアルデータを複数のメモリデバイスのうちの1つまたは複数に書き込むように構成されたコンピューティングデバイスを示す。データバッファ200は、先入れ先出し(FIFO)バッファ302およびマルチプレクサ304を含み得るメモリデバイスバッファ300を含み得る。データバッファ200は、複数のメモリデバイスバッファ300(メモリデバイスバッファ0、メモリデバイスバッファ1からメモリデバイスバッファnまで)を含み得る。たとえば、データバッファ200は、データバッファ200に接続されたメモリデバイス118(メモリデバイス0、メモリデバイス1からメモリデバイスnまで)が存在するのと同じ数のメモリデバイスバッファ300を含み得る。
【００３４】
メモリデバイスバッファ300の各々は、メモリデータバス212によってメモリデバイス118に接続され得る。一態様では、メモリデバイスバッファ300の各々は、データバッファ200にパラレルに接続されたメモリデバイス118のすべてに接続され得る。別の態様では、メモリデバイスバッファ300の各々は、メモリデータバス212の一部によってまたは別個のメモリデータバス212によってデータバッファ200に接続された1つまたは複数の専用のメモリデバイス118に接続され得る。
【００３５】
プロセッサ104は、上記で説明したようにデータバッファ200に接続され、さらに、トランザクションバス204およびプロセッサデータバス206によってメモリデバイスバッファ300の各々にパラレルに接続され得る。メモリデバイスバッファ300への接続において、プロセッサ104はまた、メモリデバイスバッファ300の各々のFIFOバッファ302と接続することができる。
【００３６】
再配列論理回路202は、上記で説明したように、メモリアドレスおよび制御バス214とメモリデバイス選択バス216とによってメモリデバイス118に、およびデータバッファ制御バス210によってデータバッファ200に接続することができる。再配列論理回路は、さらに、FIFO制御バス310によってメモリデバイスバッファ300の各々のFIFOバッファ302に、およびマルチプレクサ選択バス308によってメモリデバイスバッファ300の各々のマルチプレクサ304に接続することができる。
【００３７】
動作中、データトランザクションを実行するための一態様方法は、以下のように進むことができる。プロセッサ104は、書き込みトランザクションを要求し得、メモリコントローラは、トランザクションバス204上でプロセッサ104から書き込みトランザクション要求を受信し得る。メモリコントローラは、トランザクション信号(この例では書き込み信号)およびプロセッサ提供のメモリロケーションを、プロセッサアドレスバス208上の再配列論理回路202にルーティングし得る。再配列論理回路202は、プロセッサ提供のメモリロケーションを受信し得る。再配列論理回路202は、プロセッサ提供のメモリロケーションと関連付けられたメモリデバイス118の再配列されたメモリロケーションを決定するために、プロセッサ提供のメモリロケーションと再配列されたメモリマップとを比較し得る。再配列論理回路202は、トランザクションのために識別された再配列されたメモリロケーションと関連付けられたメモリデバイス118に接続されたメモリデバイスバッファ300を決定し得る。再配列論理回路202はまた、トランザクション信号を受信し、トランザクション信号を書き込み要求として認識することができる。トランザクション信号に応答して、再配列論理回路202は、プロセッサ104から到来するデータを記憶することを可能にするように、FIFO制御バス310によって識別されたメモリデバイスバッファ300のFIFOバッファ302にシグナリングし得る。メモリコントローラは、書き込みトランザクション要求のデータをプロセッサデータバス206上のメモリデバイスバッファ300にルーティングし、イネーブルされたFIFOバッファ302は、データを記憶することができる。FIFOバッファ302は、パラレルデータを受信し得、したがって、データが受信された時間的順序は存在しない。しかしながら、FIFOバッファ302の入力は、それぞれ、プロセッサデータバス206の特定の部分、または線に接続することができる。データがプロセッサデータバス206上でどのように構成されるかは、FIFOバッファ302がどのようにデータを記憶するかを決定し得る。FIFOバッファ302上の第1のロケーションと関連付けられたFIFOバッファ302の入力に接続されたプロセッサデータバス206の部分の上のデータの1ビットは、データ中の第1のものであると見なされてよい。FIFOバッファ302上の次のロケーションと関連付けられたFIFOバッファ302の次の入力に接続されたプロセッサデータバス206の次の部分の上のデータのビットは、データ中の次のものであると見なされてよく、FIFOバッファ302の各入力に対して、順次、同様に繰り返す。
【００３８】
再配列論理回路202はまた、マルチプレクサ304がFIFOバッファ302から受信するデータをパラレルデータフォーマットからシリアルデータに変換するように、識別されたメモリデバイスバッファ300のマルチプレクサ304にシグナリングし得る。一態様では、マルチプレクサ304は、たとえば、64-8マルチプレクサであり得る。それは、マルチプレクサ304は、64入力および8出力を含み、入出力の各々は一度に1ビットのデータを取り扱うことができることを意味する。代替として、マルチプレクサ304は、8入力および1出力を有し、各々が一度に1バイトのデータを取り扱い得る8-1マルチプレクサとして識別され得る。マルチプレクサ選択バス308によって再配列論理回路202からマルチプレクサ304によって受信された選択信号は、出力用に選択されたマルチプレクサ入力を制御し得る。再配列論理回路202は、マルチプレクサ304によって出力されたマルチプレクサ304の第1の入力が、FIFOバッファ302上の第1のロケーションと関連付けられたFIFOバッファ302の出力に接続され得るような順序で、マルチプレクサ304に選択信号を送信し得る。一態様では、選択信号は、マルチプレクサ304によって出力されたマルチプレクサ304の第1の入力が、FIFOバッファ302上の第1の8つのロケーションと関連付けられたFIFOバッファ302の出力に接続され得ることを、マルチプレクサ304に示し得る。再配列論理回路202によって送信された次の選択信号は、FIFOバッファ302上のデータの次のビットまたはバイトを出力するように、マルチプレクサ304にシグナリングし得、マルチプレクサ304がFIFOバッファ302上に記憶されているデータのすべてを出力し終わるまで、連続して同様に繰り返す。
【００３９】
メモリデータバス212は、マルチプレクサ304によって出力されたシリアルデータをメモリデバイス118に転送し得る。上記で説明したように、マルチプレクサ304を有するメモリデバイスバッファ300は、1つまたは複数の専用メモリデバイス118に接続するか、またはデータバッファ200にパラレルに接続されたメモリデバイス118のすべてに接続することができる。マルチプレクサ304を有するメモリデバイスバッファ300が1つまたは複数のメモリデバイス118に、どのように接続するかにかかわらず、再配列論理回路202は、シリアルデータを受信するために適切なメモリデバイス118を選択し得る。再配列論理回路による、再配列されたメモリマップに対するプロセッサ提供のメモリロケーションの間の比較に基づいて、再配列論理回路202は、どの再配列されたメモリロケーションが、プロセッサ提供のメモリロケーションと関連付けられるかを決定し得る。再配列論理回路202は、どのメモリデバイス118が、再配列されたメモリロケーションと関連付けられるかを識別し得る。再配列論理回路202は、メモリデバイス選択バス216を使用して適切なメモリデバイス118を選択し、活性化することができる。再配列論理回路202は、関係するメモリデバイス118をスタンバイから起動させる(awaken)ために、選択されたメモリデバイス118に接続されるメモリデバイス選択バス216を選択してイネーブルすることができる。関係するメモリデバイス118を活性化することで、メモリコントローラとメモリデバイス118との間にサブチャネルが生成され得る。再配列論理回路202はまた、メモリアドレスおよび制御バス214上の選択されたメモリデバイス118に信号を送信し得、メモリデバイス118に、その信号は、シリアルデータとシリアルデータを記憶する再配列されたメモリロケーションとを記憶するためのものであることを示す。
【００４０】
一態様では、再配列論理回路202は、書き込みデータを部分的にシリアル化するように、データバッファ200にシグナリングし得る。再配列論理回路202は、プロセッサ提供のメモリロケーションが、レイテンシ耐性プロセスのために再配列されたメモリマップと、または再配列されたメモリマップの一部と関連付けられているものと決定し得る。レイテンシ耐性プロセスのために再配列されたメモリマップの構成に応じて、「n」より小さい変化する数のメモリデバイス118が、書き込みトランザクションのために使用され得る。「n」より小さい数のメモリデバイス118を書き込みトランザクションのために使用することで、メモリデバイス118のうちの少なくとも1つの2つ以上のメモリロケーションを使用することが必要となり得る。レイテンシ耐性プロセスのための再配列されたメモリマップの構成は、パラレルに書き込まれるメモリデバイス118の数を制限する場合がある。このため、再配列論理回路202は、「n」より小さい数のメモリデバイス118と関連付けられたメモリデバイスバッファ300のFIFOバッファ302をイネーブルすることができる。イネーブルされたFIFOバッファ302は、上記で説明したように、プロセッサ104からデータをパラレルに受信し、データを記憶することができる。再配列論理回路は、FIFOバッファ302内に記憶されているデータの異なる部分を出力するように、イネーブルされたFIFOバッファ302に接続されたマルチプレクサ304にシグナリングし得る。たとえば、FIFOバッファ302のすべてが、同じ方法で記憶され、分割された同じデータを有し得る場合、再配列論理回路202は、その接続されたFIFOバッファ上に記憶されているデータの第1の部分を出力するように、第1のマルチプレクサにシグナリングし得る。再配列論理回路は、その接続されたFIFOバッファ上に記憶されているデータの第2の部分を出力するように、第2のマルチプレクサにシグナリングし得、再配列されたメモリマップによって設定されたメモリデバイス118の限界に到達するまで、同様に繰り返す。FIFOバッファ302がメモリデバイス118に書き込むべきデータをまだ有しているとき、再配列論理回路はデータをシリアル化し、それによって再配列論理回路は、マルチプレクサ304のいずれかによってまだ出力されていないデータの次の部分を出力するように、第1のマルチプレクサにシグナリングし得る。このプロセスは、トランザクションのためにFIFOバッファ302上に記憶されているデータのすべてが適切なメモリデバイス118に書き込まれるまで、この方式を継続し得る。
【００４１】
図4は、複数のメモリデバイスのうちの1つまたは複数からシリアルデータを読み取り、シリアルデータをパラレルデータに変換するように構成されたコンピューティングデバイスを示す。図3で説明する構成要素に加えて、メモリデバイスバッファ300の各々は、同じまたは別のFIFOバッファ302に接続されたデマルチプレクサ400を含み得る。デマルチプレクサ400は、上記で説明したマルチプレクサ304と同じ方式で、メモリデータバス212によってメモリデバイス118に接続し得る。デマルチプレクサ400はまた、デマルチプレクサ選択バス402およびデータバッファ制御バス210によって再配列論理回路に接続し得る。
【００４２】
一態様では、プロセッサ104は、読み取りトランザクションを要求し得る。メモリコントローラは、トランザクションバス204上でプロセッサ104から読み取りトランザクション要求を受信し得る。メモリコントローラは、トランザクション信号(この例では読み取り信号)およびプロセッサ提供のメモリロケーションを、プロセッサアドレスバス208上の再配列論理回路202にルーティングし得る。再配列論理回路202は、プロセッサ提供のメモリロケーションと再配列されたメモリマップとを比較して、メモリデバイス118のどの再配列されたメモリロケーションが、プロセッサ提供のメモリロケーションと関連付けられているかを決定することができる。再配列論理回路による、再配列されたメモリマップに対するプロセッサ提供のメモリロケーションの間の比較に基づいて、再配列論理回路202は、再配列されたメモリロケーションと関連付けられたメモリデバイス118を識別し得る。再配列論理回路202は、メモリデバイス選択バス216を使用して適切なメモリデバイス118を選択し、活性化し得る。再配列論理回路202は、関係するメモリデバイス118をスタンバイから起動させるために、選択されたメモリデバイス118に接続されたメモリデバイス選択バス216の線を選択してイネーブルすることができる。再配列論理回路202はまた、要求されたデータがメモリデバイス118上に記憶されている再配列されたメモリロケーションと、指定された再配列されたメモリロケーションに記憶されているシリアルデータを適切なデータバッファ300に開放することとをメモリデバイス118に示す信号を、メモリアドレスおよび制御バス214上で選択されたメモリデバイス118に送信することができる。
【００４３】
メモリデータバス212は、シリアルデータをメモリデバイス118からデータバッファ300に転送し得る。上記で説明したように、デマルチプレクサ400を有するメモリデバイスバッファ300は、1つまたは複数の専用メモリデバイス118に接続されるか、またはデータバッファ200にパラレルに接続されたメモリデバイス118のすべてに接続され得る。デマルチプレクサ400を有するメモリデバイスバッファ300が1つまたは複数のメモリデバイス118に、どのように接続されるかにかかわらず、再配列論理回路202は、シリアルデータを受信するために適切なメモリデバイスバッファ300を選択し得る。再配列論理回路による、再配列されたメモリマップに対するプロセッサ提供のメモリロケーションの間の比較に基づいて、再配列論理回路202は、再配列されたメモリロケーションと関連付けられたメモリデバイス300とメモリデバイス118とを識別し得る。一態様では、トランザクションに関連するデータの量は、FIFOバッファ302のうちの1つが取り扱い得るデータの量以下であり得る。そのような環境では、メモリデバイスバッファ300は、プロセッサ104にパラレルに接続し得るので、特定のメモリデバイスバッファ300を選択する必要はない。別の態様では、トランザクションに関連するデータの量は、FIFOバッファ302のうちの1つが取り扱い得るデータの量より大きい場合があり、メモリコントローラは、プロセッサ104にデータを配信するために、複数のバーストを必要とするデータのストリームを再構成しなければならない。そのような環境では、データをプロセッサ104に予期される順序で配信するために、適切なメモリデバイスバッファ300を選択することが必要である場合があり、または必要でない場合がある。
【００４４】
再配列論理回路202はまた、デマルチプレクサ400がメモリデバイス118から受信するデータをシリアルデータからパラレルデータに変換するように、識別されたメモリデバイスバッファ300のデマルチプレクサ400にシグナリングし得る。一態様では、デマルチプレクサ400は、たとえば、8-64デマルチプレクサであり得る。それは、デマルチプレクサ400は、8入力および64出力を含み、入出力の各々は一度に1ビットのデータを取り扱うことができることを意味する。代替として、デマルチプレクサ400は、1入力および8出力を有し、各々が一度に1バイトのデータを取り扱い得る1-8デマルチプレクサとして識別され得る。デマルチプレクサ選択バス402によって再配列論理回路202からデマルチプレクサ400によって受信された選択信号は、出力用に選択されたデマルチプレクサ入力を制御し得る。再配列論理回路202はまた、デマルチプレクサ400から受信されたデータを記憶するように、FIFO制御バス310によってFIFOバッファ302にシグナリングし得る。デマルチプレクサ400のデータ出力は、FIFOバッファ302によって受信され、デマルチプレクサ400の各出力は、FIFOバッファ302上のロケーションと関連付けられたFIFOバッファ302の入力に接続され得る。FIFOバッファ302上の第1のロケーションと関連付けられたFIFOバッファ入力上で受信されたデマルチプレクサ出力は、データ中の第1のものと見なされ得る。FIFOバッファ302上の次のロケーションと関連付けられたFIFOバッファ302の次の入力上で受信された次のデマルチプレクサ出力は、データ中の次のものであると見なされてよく、FIFOバッファ302の各入力に対して、順次、同様に繰り返す。デマルチプレクサ400が、FIFOバッファ302にシリアルデータを出力するとき、デマルチプレクサ400は、デマルチプレクサ400によって受信されたデータの量に対して順次、FIFOバッファ302の各入力に出力し得る。再配列論理回路202は、デマルチプレクサ400によって受信されたシリアルデータが、それが受信された順序でデマルチプレクサ400によって出力されるような順序で、デマルチプレクサ400に選択信号を送信し得る。
【００４５】
FIFOバッファ302がデータをプロセッサ104に出力するときに、シリアルデータが、プロセッサ104によって要求された順序でパラレルデータフォーマットに変換される方式でデータがFIFOバッファ302によって受信されるように、再配列論理回路202が、デマルチプレクサ400によって受信されたシリアルデータの出力を制御し得る。FIFOバッファ302が、デマルチプレクサ400からシリアルデータのすべてを受信したときに、メモリコントローラは、FIFOバッファ302内にパラレルに記憶されているデータを、トランザクションバス204によってプロセッサ104に開放し得る。
【００４６】
一態様では、デマルチプレクサ400によって受信されたデータは、部分的にのみパラレルであり、部分的にシリアル化されている場合がある。上記で説明したように、書き込みデータは、部分的にシリアル化され、レイテンシ耐性プロセスのために再配列されたメモリマップに対するメモリデバイス118に書き込まれ得る。レイテンシ耐性プロセスのために再配列されたメモリマップのメモリロケーションに対する読み取りトランザクションにおいて、再配列論理回路202は、部分的にパラレルで部分的にシリアル化されたデータをパラレルデータに変換するために、デマルチプレクサ400およびFIFOバッファ302を制御し得る。再配列論理回路202は、プロセッサ提供のメモリロケーションを受信し、それらを、要求されたデータに対する再配列されたメモリロケーションおよびメモリデバイス118を識別するために使用することができる。再配列論理回路202はまた、関連付けられたメモリデバイスバッファ300を識別し得る。再配列論理回路202は、再配列されたメモリロケーションからデータを開放するように、メモリデバイス118にシグナリングし得、データは、関連付けられたメモリデバイスバッファ300のデマルチプレクサ400によって受信され得る。再配列論理回路202は、データが、プロセッサ104がデータを予期するプロセッサデータバス206の部分にFIFOバッファ302によって出力されるようにその接続されたFIFOバッファ302の適切な入力にデータを出力するように、データの一部をパラレルフォーマットで受信する各デマルチプレクサ402にシグナリングし得る。再配列論理回路202はまた、同様の方式に従ってその接続されたFIFOバッファ302の適切な入力にデータを再び出力するように、データの部分的にシリアル化された部分を受信する各デマルチプレクサ402にシグナリングし得る。このようにして、データはパラレルデータフォーマットにフォーマットされ、プロセッサデータバス206の各部分の上のデータは、プロセッサ提供のメモリロケーションに従ってプロセッサ104によって予期された通りになる。
【００４７】
一般的なメモリモジュールに対して、コンピューティングデバイスは、最大性能速度用に構成されたメモリマップを実施し得る。一般的なメモリモジュールは、Nバイトの長さのデータバーストに対するトランザクションを取り扱うように構成され得、データは1バイトのチャンクに分割され、1バイトのチャンクの各々は、一般的なメモリモジュールのN個のメモリデバイスの各々の1つのメモリロケーションに書き込まれるかまたはそこから読み取られ得る。この一般的なメモリモジュールの例では、N個のメモリモジュールの各々は、1バイトのチャンクのデータを記憶または出力するために通電されなければならない。たとえば、8バイトトランザクションは、1バイトのチャンクを8つのメモリデバイスに一度に送信し得る。
【００４８】
図5は、最小電力消費のための複数のメモリデバイスに対する例示的な再配列されたメモリマップを示す。一態様では、最小電力消費のための再配列されたメモリマップ500は、各メモリデバイスが個別に通電され得るように各メモリデバイスに接続されたメモリデバイス選択バスを有するメモリモジュールによってサポートされ得る。最小電力消費のための再配列されたメモリマップ500は、Nバイトの長さの1つの全データバーストが、メモリデバイスのうちの1つのN個のメモリロケーションに書き込まれ得るかまたはそこから読み取られ得るように、N個のメモリデバイスのメモリロケーションを割り当てることができる。この態様では、1つのメモリデバイスだけが、1バイトのチャンクのデータのすべてを記憶または出力するために通電され得る。
【００４９】
同様に、Nバイトの長さの複数のデータバーストのトランザクションが発生した場合、最小電力消費のための再配列されたメモリマップ500は、後続するデータバーストの各々が、順次、次のメモリデバイスに書き込まれ得るかまたはそこから読み取られ得るように、N個のメモリデバイスのメモリロケーションを割り当てることができる。データバーストの数がメモリデバイスの数を超えるとき、最小電力消費のための再配列されたメモリマップ500は、後続のデータバーストが、第1のN個のデータバーストと同じ順序でメモリデバイスのN個のメモリロケーションの次のセットに書き込まれ得るかまたはそこから読み取られ得るように、メモリロケーションを割り当てることができる。複数のデータバーストトランザクションを有する状況では、最小電力消費のための再配列されたメモリマップ500に従って必要な数のメモリデバイスだけが通電され得る。
【００５０】
図5に示すように、一態様の最小電力消費のための再配列されたメモリマップ500は、複数の列を有する表として表されており、各列は、メモリモジュールのメモリデバイス(メモリデバイス0〜7)を表し得る。表の各セルは、それぞれのメモリデバイス内のロケーションを表し得、数字は、最小電力消費のための再配列されたメモリマップ500が使用のためにメモリロケーションを割り当て得る順序を表し得る。この態様の最小電力消費のための再配列されたメモリマップ500は、プロセッサが8バイトのデータバーストにおいてトランザクションを行うことを仮定しているが、最小電力消費のための再配列されたメモリマップ500は、多様なデータバーストの長さを取り扱うように構成され得る。
【００５１】
再配列論理回路は、最小電力消費のための再配列されたメモリマップ500を生成するために、既存のメモリマップ、たとえば上記で説明した最大性能速度を達成するように構成されたメモリマップを再配列することができる。図示のように、各メモリデバイスは、8個の1バイトグループ、または64ビットの中で使用の順序を割り当てられ得る。たとえば、最小電力消費のための再配列されたメモリマップ500は、メモリデバイス1に、第1の8個割り当てられた1バイトの使用のためのメモリロケーション(メモリロケーション0〜7)を割り当て得る。最小電力消費のための再配列されたメモリマップ500は、メモリデバイス2に、第2の8個の1バイトの使用のためのメモリロケーション(メモリロケーション8〜15)を割り当て得、メモリデバイス7まで同様に繰り返す。メモリロケーションのすべてが割り当てられるまで、後続の8バイトのチャンクのメモリをメモリデバイスにわたって割り当てるという同じパターンが反復し、それによって、最小電力消費のための再配列されたメモリマップ500は、メモリデバイスのメモリロケーションのすべてに適用され得る。一態様では、最小電力消費のための再配列されたメモリマップ500は、メモリデバイスのメモリロケーションのすべてではなくメモリデバイスの一部のメモリロケーションに適用され得る。
【００５２】
図6は、レイテンシ耐性プロセスのための複数のメモリデバイスに対する例示的な再配列されたメモリマップを示す。一態様では、レイテンシ耐性プロセスのための再配列されたメモリマップ600は、各メモリデバイスが個別に通電され得るように各メモリデバイスに接続されたメモリデバイス選択バスを有するメモリモジュールによってサポートされ得る。レイテンシ耐性プロセスのための再配列されたメモリマップ600は、Nバイトの長さのデータバーストが、N個より少ないモリデバイスの1つまたは複数のメモリロケーションに書き込まれ得るかまたはそこから読み取られ得るように、N個のメモリデバイスのメモリロケーションを割り当てることができる。言い換えれば、全データバーストより少ないデータバーストの第1の部分は、データバーストの部分に対するバイト数に等しいメモリデバイスの数に対する第1のメモリロケーションに割り当てられ得る。さらに、データバーストの残部は、全データバーストが割り当てられるまで同じメモリデバイスの第2のメモリロケーションに割り当てられ得る。データバーストの部分が小さすぎて同じメモリデバイスのより多くのメモリロケーションが必要になることがあり得る。この態様では、データバーストの部分内のバイト数に等しい数のメモリデバイスだけが、データバーストのすべてを記憶または出力するために通電され得る。
【００５３】
同様に、Nバイトの長さの複数のデータバーストのトランザクションが発生した場合、レイテンシ耐性プロセスのための再配列されたメモリマップ600は、後続するデータバーストの各々が、順次、Nより少ない数のメモリデバイスの次のメモリロケーションに書き込まれ得るかまたはそこから読み取られ得るように、N個のメモリデバイスのメモリロケーションを割り当てることができる。データバーストが、Nより少ない数のメモリデバイスにわたるメモリロケーションの第1のグループ、たとえばNより少ない数のメモリデバイスにわたる少なくとも8つのメモリロケーション、の能力を超えるとき、レイテンシ耐性プロセスのための再配列されたメモリマップ600は、後続するデータバーストが、Nより少ない数のメモリデバイスの次のグループにわたる次のグループのメモリロケーションに書き込まれ得るかまたはそこから読み取られ得るように、メモリロケーションを割り当てることができる。複数のデータバーストトランザクションを有する状況では、レイテンシ耐性プロセスのための再配列されたメモリマップ600に従って必要な数のメモリデバイスだけが通電され得る。
【００５４】
図6に示すように、レイテンシ耐性プロセスのための再配列されたメモリマップ600は、図5の表と同様の表として表され得る。この態様のレイテンシ耐性プロセスのための再配列されたメモリマップ600は、プロセッサが8バイトのデータバーストでトランザクションを行うことを仮定しているが、レイテンシ耐性プロセスのための再配列されたメモリマップ600は、多様なデータバーストの長さを取り扱うように構成され得る。
【００５５】
再配列論理回路は、レイテンシ耐性プロセスのための再配列されたメモリマップ600を生成するために、既存のメモリマップ、たとえば上記で説明した最大性能速度を達成するように構成されたメモリマップを再配列することができる。図示のように、4つのメモリデバイスのグループは、8個の1バイトグループ、または64ビットの中で使用の順序を割り当てられ得る。たとえば、レイテンシ耐性プロセスのための再配列されたメモリマップ600は、メモリデバイス1に、第1の割り当てられた1バイトの使用のためのメモリロケーション(メモリロケーション0)を割り当て得、メモリデバイス2に第2の1バイトの使用のためのメモリロケーション(メモリロケーション1)を割り当て得、メモリデバイス3まで同様に繰り返す。レイテンシ耐性プロセスのための再配列されたメモリマップ600は、メモリロケーション31まで同じ方式で同じメモリデバイス(メモリデバイス0〜3)に割り当て得る。レイテンシ耐性プロセスのための再配列されたメモリマップ600は、同じ方式でメモリデバイス4〜7にメモリロケーション32〜63を割り当てることを継続し得る。メモリロケーションのすべてが割り当てられるまで、後続の32バイトのメモリをメモリデバイスにわたって割り当てるという同じパターンが反復し、それによって、レイテンシ耐性プロセスのための再配列されたメモリマップ600は、メモリデバイスのメモリロケーションのすべてに適用され得る。一態様では、レイテンシ耐性プロセスのための再配列されたメモリマップ600は、メモリデバイスのメモリロケーションのすべてではなく、メモリデバイスのメモリロケーションの一部に適用され得る。
【００５６】
図7は、複数のメモリマップの複数のメモリデバイスへの例示的な適用を示す。一態様では、コンピューティングデバイスは、複数のメモリデバイス118にわたって複数のメモリマップを適用し得る。メモリマップの各々は、各メモリデバイス118のメモリロケーションのある範囲に適用され得る。一態様では、メモリマップは、それぞれのメモリマップに対するメモリデバイス118の各々にわたってメモリロケーションの相当する範囲に適用される。たとえば、最小電力消費のための再配列されたメモリマップ500は、各メモリデバイス118内の上部の物理アドレスに対応するメモリデバイス118の各々のメモリロケーションの上側部分にわたって適用され得る。レイテンシ耐性プロセスのための再配列されたメモリマップ600は、各メモリデバイス118内の上部と下部の物理アドレスの間の各メモリデバイス118内の物理アドレスの範囲に対応する、メモリデバイス118の各々のメモリロケーションの中間の範囲にわたって適用され得る。最大性能速度のための再配列されたメモリマップ700は、各メモリデバイス118内の下部の物理アドレスに対応するメモリデバイス118の各々のメモリロケーションの下側範囲にわたって適用され得る。様々な態様では、異なる組合せの再配列されたメモリマップ500、600、700は、メモリデバイス118の各々の異なる範囲のメモリロケーションにわたって適用され得る。同様の再配列されたメモリマップがメモリデバイス118の各々の異なる範囲のメモリロケーションにわたって適用されることがあり得る。たとえば、最小電力消費のための再配列されたメモリマップ500および/または最大性能速度のための再配列されたメモリマップ700は、メモリデバイス118の各々の複数の範囲のメモリロケーションにわたって適用され得る。同じく、同じおよび/または異なるバージョンのレイテンシ耐性プロセスのための再配列されたメモリマップ600が、メモリデバイス118の各々の複数の範囲のメモリロケーションにわたって適用され得る。
【００５７】
図8は、単一チャネル内のDRAM空間合体のためのメモリマップ再配列のための一態様方法800を示す。方法800は、メモリコントローラもしくは同様の構成要素内、またはプロセッサを含むコンピューティングデバイスの様々な構成要素内で実装され得、メモリコントローラは本明細書で説明するその構成要素(たとえば、再配列論理回路)を含み、メモリモジュールは本明細書で説明するその構成要素を含む。参照しやすいように、方法800内の動作は、プロセッサとともにメモリコントローラによって実行されるように説明される。メモリコントローラへの参照はまた、個別のメモリデバイスの各々に接続され得るメモリコントローラのうちの1つまたは複数の組合せを包含し、それは、その態様方法を実行するために個別にまたは組合せで機能し得る。メモリコントローラへの参照は、その態様方法の実行に関連する任意のおよびすべての構成要素を包含することを意図していることを理解されたい。
【００５８】
ブロック802において、メモリコントローラおよび/またはプロセッサは、再配列のためのメモリマップロケーションを決定し得る。この決定を行うことにおいて、メモリコントローラおよび/またはプロセッサは、いくつかのファクタを使用し得る。たとえば、プロセッサは、コンピューティングデバイスの電力、温度、または活性状態を解析し、その状態としきいレベルとを比較することができる。コンピューティングデバイスの状態が、それらのそれぞれのしきい値に対して好ましくない電力、温度、または活性レベルを示すとき、プロセッサは、コンピューティングデバイスの電力消費および性能速度を低減するために、1つまたは複数のメモリデバイスの一部または全部のメモリマップを実施することを決定し得る。プロセッサが望ましいと決定した電力消費および性能速度の低減量に応じて、プロセッサおよび/またはメモリコントローラは、再配列のためにメモリロケーションの1つまたは複数の変化範囲を選択し得る。
【００５９】
再配列のためにメモリロケーションを決定するためのファクタの別の例として、プロセッサは、そのレイテンシ耐性(すなわち、アプリケーションによって許容され得るデータ書き込みおよび読み取り動作におけるレイテンシの量)に対してプロセッサ上で実行するソフトウェアを解析し得る。プロセッサ上で実行される1つまたは複数のソフトウェアプログラムがレイテンシ耐性である(すなわち、ソフトウェアがメモリアクセストランザクションにおける遅延を許容できる)と決定される状況では、プロセッサは、現在の性能レベルを必要としないプロセスに対して性能速度を代償として電力消費を低減する再配列されたメモリマップロケーションを使用することを決定し得る。一態様では、ソフトウェアアプリケーションは、ソフトウェアがレイテンシ耐性であるかどうかを(たとえば、フラグ、API呼び出し、データタグ、などの形態で)プロセッサに示すように構成されてよく、プロセッサは、そのような表示を、性能速度を代償として電力消費を低減するためにメモリロケーションを再配列するようにメモリコントローラを構成するために使用し得る。
【００６０】
一態様では、コンピューティングデバイスが好ましい電力、温度、または活性レベルを示しており、プロセッサ上で実行するソフトウェアがより良い性能速度を要求しているものとプロセッサが決定することに応答して、プロセッサは、より高い電力消費を代償としてコンピューティングデバイスの性能速度を増加させるために、1つまたは複数のメモリデバイスの一部または全部のメモリマップを使用するように、メモリコントローラを構成し得る。プロセッサが望ましいと決定した性能速度の増加量に応じて、プロセッサおよび/またはメモリコントローラは、メモリアドレスを再配列するためにメモリロケーションの1つまたは複数の変化範囲を選択し得る。
【００６１】
選択されたメモリロケーションに対するメモリマップを再配列するために、メモリロケーションはアイドル(すなわち、現在データを記憶していない)でなければならない。メモリロケーションがアイドルでない場合、コンピューティングデバイスは、それらのメモリロケーションに記憶されているデータのトラックを失い、要求されたときにそのデータを取り出すことができなくなって、ソフトウェアを実行中にプログラムエラーを生じる場合がある。決定ブロック804において、メモリコントローラおよび/またはプロセッサは、選択されたメモリロケーションがアイドルであるかどうかを決定し得る。この決定を行うために、メモリコントローラおよび/またはプロセッサは、選択されたメモリロケーションと関連付けられたメモリデバイスをチェックし得る。メモリデバイスが通電されているとき、メモリコントローラおよび/またはプロセッサは、そのメモリロケーションがアクティブであることを決定し得る。一態様では、メモリコントローラおよび/またはプロセッサはまた、メモリロケーションがデータを記憶しているか否かを示し得るルックアップテーブルをチェックし得る。メモリロケーションがデータを記憶していると決定されるとき、メモリコントローラおよび/またはプロセッサは、メモリロケーションがアクティブであることを決定し得る。メモリロケーションがアクティブであることをこれらの状況のいずれもが示さないとき、メモリコントローラおよび/またはプロセッサは、メモリロケーションがアイドルであることを決定し得る。一態様では、メモリロケーションがアクティブであるとき、メモリコントローラおよび/またはプロセッサは、意図的かつ一時的に新しいトランザクションを休止させ、前のトランザクションを完了させてメモリロケーションをアイドルにならしめるために、所定の時間期間待機する場合がある。メモリロケーションがアクティブであるものとメモリコントローラおよび/またはプロセッサが決定する(すなわち、決定ブロック804=「No」)とき、メモリコントローラおよび/またはプロセッサは、ブロック802における動作に戻ることができる。
【００６２】
メモリロケーションがアイドルであるものとメモリコントローラおよび/またはプロセッサが決定する(すなわち、決定ブロック802=「Yes」)とき、ブロック806において、メモリコントローラおよび/またはプロセッサは、データトランザクションに使用されるべきメモリマップ再配列パターンを決定し得る。メモリマップ再配列パターンは、上記で説明したように、最小電力消費のための再配列されたメモリマップ、レイテンシ耐性プロセスのための様々な再配列されたメモリマップ、または最大性能速度のための再配列されたメモリマップから選択され得る。メモリコントローラおよび/またはプロセッサは、コンピューティングデバイスの電力消費を低減するためまたは性能速度を増加させるために、メモリマップ再配列パターンを選択し得る。
【００６３】
ブロック808において、メモリコントローラは、選択されたメモリマップ再配列パターンに従ってメモリマップを再配列し得る。メモリマップを再配列することにおいて、メモリコントローラは、必要な場合、元のメモリマップに戻すことができるように、メモリデバイスの元のメモリマップをセーブしてよく、またはすでにセーブしている場合がある。メモリコントローラは、ルックアップテーブルまたはいくつかの他の知られているデータ構造を生成し得、それを介して、メモリコントローラは、メモリアドレスをメモリデバイスのメモリロケーションに割り当て得る。ルックアップテーブルはまた、再配列されたメモリマップを元のメモリマップと関連付け得る。再配列されたメモリマップと元のメモリマップとのこの関係を介して、メモリコントローラは、元のメモリマップ内のプロセッサ提供のメモリアドレスを発見し、再配列されたメモリマップの関連するメモリアドレスを決定することができる。一態様では、1つのアルゴリズムが、変化するメモリマップ再配列パターンと関連付けられ得る。そのアルゴリズムは、プロセッサ提供のメモリアドレスからメモリアドレスを計算するために使用され得、対応する再配列されたメモリアドレスがもたらされる。
【００６４】
ブロック810において、メモリコントローラは、プロセッサから、プロセッサ提供のメモリロケーションを含むトランザクション命令を受信し得る。上記で説明したように、トランザクションのタイプおよびプロセッサ提供のメモリアドレスは、コンピューティングデバイスの適切な構成要素にルーティングされ得る。書き込みトランザクションに対して、パラレルフォーマットのデータもまた、適切にルーティングされ得る。ブロック812において、メモリコントローラは、どの再配列されたメモリロケーションが、プロセッサ提供のメモリロケーションに適用されるかを決定し得る。上記で説明したように、この決定は、プロセッサによって予期される元のメモリアドレスを有する1つまたは複数のデータ構造内のデータと、再配列されたメモリマップの対応する再配列されたメモリアドレスとの比較によって達成され得る。同じく、上記で説明した一態様では、メモリコントローラは、プロセッサ提供のメモリアドレスに対応する再配列されたメモリアドレスを決定するために、再配列されたメモリマップと関連付けられたアルゴリズムを適用し得る。
【００６５】
ブロック814において、メモリコントローラは、実施されたメモリマップ再配列パターンに従って、プロセッサ提供のメモリアドレスを、対応する再配列されたメモリアドレスとして識別された再配列されたメモリアドレスに変換し得る。ブロック816において、メモリコントローラは、再配列されたメモリマップに従って、決定された再配列されたメモリアドレスと関連付けられた個別のメモリデバイスを活性化または通電することができる。再配列されたメモリマップに対するデータ構造は、再配列されたメモリアドレスおよびそれらの対応する元のメモリアドレスを識別するばかりでなく、それらはまた、特定の再配列されたメモリアドレスおよび/または元のメモリアドレスに対応するメモリデバイス、もしくはこれらのメモリアドレスの範囲を識別し得る。
【００６６】
上記で説明したように、態様方法は、専用デバイスまたはチップ選択線によって個別のメモリデバイスの各々に接続されたメモリコントローラの各々または組合せによって実行され得る。これらの専用接続は、メモリモジュールおよびそのメモリデバイスのすべてへの一般的チャネル内にサブチャネルを生成し得る。一般的チャネルは、そのメモリデバイスのすべてとともに、メモリモジュールの活性化および通電を可能にする場合がある。サブチャネルは、メモリモジュールの個別のメモリデバイスの個別の活性化または通電を可能にする場合がある。メモリコントローラは、1つの特定のメモリデバイスに接続された専用メモリデバイスまたはチップ選択線に電力を加えて、その1つの特定のメモリデバイスだけを活性化または通電することができる。メモリコントローラは、各々が1つの特定のメモリデバイスに接続された1つまたは複数のデバイスまたはチップ選択線に電力を加えて、1つまたは複数の特定のメモリデバイスを活性化または通電することができる。メモリコントローラは、要望または必要に応じて、個別のメモリデバイスを活性化もしくは通電するか、または不活性化もしくは非通電にするために、各サブチャネルにわたる制御を維持する。メモリデバイスを個別に制御することによって、コンピューティングデバイスは、メモリモジュールのメモリデバイスのうちのすべてより少ないメモリデバイスを使用し得、それによって、メモリデバイスのすべてが活性化または通電されるときより少ないエネルギーが使用される。
【００６７】
決定ブロック818において、メモリコントローラは、トランザクション命令が書き込みトランザクションに対するものであるかどうかを決定し得る。トランザクション命令が書き込みトランザクションであるものとメモリコントローラが決定する(すなわち、決定ブロック818=「Yes」)とき、以下で説明するように、図9のブロック902において、メモリコントローラは、メモリデバイスに対する書き込みトランザクションの実施を継続し得る。トランザクション命令が書き込みトランザクションでないものとメモリコントローラが決定する(すなわち、決定ブロック818=「No」)とき、以下で説明するように、図10のブロック1002において、メモリコントローラは、メモリデバイスからの読み取りトランザクションの実施を継続し得る。一態様では、メモリコントローラは、トランザクション命令が読み取りトランザクションに対するものであるかどうかを決定し得、適宜ブロック902または1002に続く。
【００６８】
図9は、複数のメモリデバイスのうちの1つまたは複数に書き込むためにパラレルフォーマットのデータをシリアルデータに変換するための態様方法900を示す。上記で説明した方法800と同様に、この方法900は、メモリコントローラ、および/またはメモリコントローラとともに働くプロセッサによって実施され得る。コンピューティングデバイスのプロセッサがデータトランザクション命令または要求を出すとき、メモリコントローラは、トランザクション命令が、実際に、コンピューティングデバイスのメモリに書き込むための書き込みトランザクション命令であるかどうかを決定し得る。図8を参照しながら上記で説明した決定ブロック818におけるように、トランザクション命令が書き込みトランザクションに対するものであるものとメモリコントローラが決定すると、ブロック902において、メモリコントローラは、トランザクションのために再配列されたメモリアドレスと関連付けられたメモリデバイスに接続されたメモリデバイスバッファに、書き込みトランザクション命令をシグナリングし得る。トランザクションが書き込みトランザクションであることをメモリデバイスバッファにシグナリングすることによって、書き込みトランザクションの一部としてプロセッサによって供給されるパラレルデータを記憶するように、メモリデバイスバッファのFIFOバッファが指示され得る。データ量が、1つのメモリデバイスが取り扱うには大きすぎるとき、2つ以上のメモリデバイスバッファがそのパラレルデータを受信するようにシグナリングされ得る。
【００６９】
上記で説明したように、メモリデバイスバッファは、メモリコントローラとメモリモジュールとを接続するメモリデータバスの一部を介して特定のメモリデバイスに接続され得る。再配列されたメモリマップに対するデータ構造はまた、元のメモリアドレスおよび再配列されたメモリアドレスと関連付けられたメモリデバイスに接続されたメモリデバイスバッファを含み得る。
【００７０】
ブロック904において、メモリコントローラは、パラレルフォーマットのデータをシリアルデータに変換し、シリアルデータをメモリデバイスに出力するように、活性化されたメモリデバイスに接続されたメモリデバイスバッファにシグナリングし得る。上記で説明したように、メモリコントローラは、メモリデバイスバッファのFIFOバッファからデータを選択的に受信して、そのデータをメモリデバイスに出力するように、再配列されたメモリロケーションと関連付けられたメモリデバイスバッファのマルチプレクサにシグナリングし得る。メモリコントローラは、マルチプレクサの選択された入力においてFIFOバッファから所定の順序でデータを受信するように、マルチプレクサにシグナリングし得る。マルチプレクサが、選択された入力においてデータを受信するとき、マルチプレクサはまた、そのデータをメモリデバイスに出力し得る。FIFOバッファからのデータのすべてをパラレルに受信し、そのデータのすべてを同時に、またはパラレルに出力するのではなく、データを選択的に受信することで、マルチプレクサが、データを所定のサイズのパケットに分割し、一度に1つのパケットを出力することが可能になる。パケットは、それぞれ、1ビットほどに小さくなり得る。所定の順序におけるデータの受信およびデータの送信によって、FIFOバッファによってパラレルに受信されたデータが、マルチプレクサによってシリアルに出力されるデータに変換され得る。したがって、マルチプレクサへの入力を制御するために使用される選択信号を介して、コンピューティングデバイスは、パラレルフォーマットのデータのシリアルデータへの変換を制御し得る。
【００７１】
ブロック906において、メモリコントローラは、活性化されたメモリデバイス上の再配列されたメモリアドレスにおいてシリアル書き込みデータを記憶するように、メモリモジュールまたは個別に活性化されたメモリデバイスにシグナリングし得る。上記で説明したように、メモリコントローラは、この例では書き込みトランザクションタイプであるトランザクションタイプと、再配列されたメモリアドレスとを、メモリデバイスにシグナリングし得る。トランザクションタイプの信号は、メモリデバイスがシリアルデータを記憶することになるか、または開放することになるかを制御し得る。書き込みトランザクション信号の場合、メモリデバイスは、シリアルデータを記憶し得る。再配列されたメモリアドレスは、シリアルデータの特定の部分を記憶するために、メモリデバイスのどのメモリロケーションが指示され得るかをメモリデバイスに指定し得る。
【００７２】
決定ブロック908において、メモリコントローラは、書き込みトランザクションが完了しているかどうかを決定し得る。書き込みトランザクションは、トランザクションのデータのすべてがメモリデバイス上の再配列されたメモリアドレスに書き込まれたときに完了し得る。書き込みトランザクションが完了しているものとメモリコントローラが決定する(すなわち、決定ブロック908=「Yes」)とき、メモリコントローラは、方法900を終了し得る。書き込みトランザクションが完了していないものとメモリコントローラが決定する(すなわち、決定ブロック908=「No」)とき、ブロック902において、メモリコントローラは、パラレルフォーマットのデータをシリアルデータに変換し、シリアルデータを再配列されたメモリアドレスに書き込むことを継続し得る。これは、たとえば、書き込みトランザクションが、単一のメモリデバイスバッファが取り扱い得るより大きいデータ量に対するものであるときに発生し得る。複数のメモリデバイスバッファが書き込みトランザクションに対してパラレルデータを受信するとき、メモリコントローラは、各メモリデバイスバッファに対して、また、いくつかの場合には、書き込みトランザクションのデータ量が、メモリデバイスバッファのすべてが取り扱い得る量より大きい場合に同じメモリデバイスバッファに対して2回以上、方法900を実施し得る。
【００７３】
一態様では、メモリマップ再配列パターンがレイテンシ耐性プロセスに対するものであるとき、方法900は、複数のメモリデバイスバッファに対してパラレルに実行され得る。
【００７４】
図10は、複数のメモリデバイスのうちの1つまたは複数から読み取るためにシリアルデータをパラレルフォーマットのデータに変換するためにメモリコントローラ内で実施され得る態様方法1000を示す。コンピューティングデバイスのプロセッサがトランザクション命令または要求を出すとき、メモリコントローラは、トランザクション命令が、実際に、コンピューティングデバイスのメモリに書き込む(またはそれから読み取る)ための書き込み(または読み取り)トランザクション命令であるかどうかを決定し得る。上記の図8の決定ブロック818におけるように、トランザクション命令が書き込みトランザクションに対するものでない(または読み取りトランザクションに対するものである)とメモリコントローラが決定すると、ブロック1002において、メモリコントローラは、トランザクションのために再配列されたメモリアドレスと関連付けられたメモリデバイスに接続されたメモリデバイスバッファに、読み取りトランザクション命令をシグナリングし得る。トランザクションが読み取りトランザクションであることをメモリデバイスバッファにシグナリングすることによって、読み取りトランザクションの一部としてデマルチプレクサによって変換されたときに、メモリデバイスによって供給されたシリアルデータをパラレルに記憶するように、メモリデバイスバッファのFIFOバッファが指示され得る。データが複数のメモリデバイス上に記憶されるとき、シリアルデータのすべてがメモリデバイスと関連付けられたメモリデバイスバッファによって受信されるように、2つ以上のメモリデバイスバッファがシグナリングされ得る。
【００７５】
ブロック1004において、メモリコントローラは、活性化されたメモリデバイス上の再配列されたメモリアドレスからシリアル読み取りデータを開放するように、メモリモジュールまたは個別に活性化されたメモリデバイスにシグナリングし得る。上記で説明したように、メモリコントローラは、この例では読み取りトランザクションタイプであるトランザクションタイプと再配列されたメモリアドレスとを、メモリデバイスにシグナリングし得る。トランザクションタイプの信号は、メモリデバイスがシリアルデータを記憶することになるか、または開放することになるかを制御し得る。読み取りトランザクション信号の場合、メモリデバイスは、シリアルデータを開放し得る。再配列されたメモリアドレスは、シリアルデータの特定の部分を記憶するときに、メモリデバイスのどのメモリロケーションが指示され得るかをメモリデバイスに指定し得る。
【００７６】
ブロック1006において、メモリコントローラは、メモリデバイスから受信されたシリアルデータをパラレルフォーマットのデータに変換し、パラレルフォーマットのデータをプロセッサに出力するように、活性化されたメモリデバイスに接続されたメモリデバイスバッファにシグナリングし得る。上記で説明したように、メモリコントローラは、デマルチプレクサから受信されたデータを記憶するように、FIFOバッファにシグナリングし得る。再配列されたメモリロケーションと関連付けられたメモリデバイスバッファのデマルチプレクサに接続されたメモリデバイスは、再配列されたメモリロケーションからデータを開放するように、コンピューティングデバイスによってシグナリングされ得る。メモリコントローラはまた、メモリデバイスバッファのFIFOバッファに所定のシーケンスでデータを選択的に出力するように、デマルチプレクサにシグナリングし得る。メモリコントローラは、シリアルデータをデマルチプレクサに開放するようにメモリデバイスにシグナリングし得、そのシリアルデータは、デマルチプレクサの入力において受信され得る。
【００７７】
デマルチプレクサが入力においてシリアルデータを受信するとき、デマルチプレクサはまた、データをFIFOバッファに選択的に出力するように、メモリコントローラによってシグナリングされ得る。データのすべてをFIFOバッファにシリアルに出力するのではなく、データを所定のシーケンスで選択的に出力することによって、デマルチプレクサが、FIFOバッファの各入力に一度に1入力ずつデータを出力することによってFIFOバッファ内のデータを順序付けることが可能になる。データの受信および出力は、デマルチプレクサによって受信されたシリアルデータをFIFOバッファ上に記憶されるパラレルフォーマットのデータに変換し得る。データのグループがFIFOバッファ上に記憶され終わると、メモリコントローラは、FIFOバッファからのデータをパラレルでプロセッサに出力し得る。したがって、デマルチプレクサからの出力を制御するために使用される選択信号を介して、メモリコントローラは、シリアルデータのパラレルデータへの変換を制御する。
【００７８】
決定ブロック1008において、メモリコントローラは、読み取りトランザクションが完了しているかどうかを決定し得る。読み取りトランザクションは、トランザクションのために要求されたデータのすべてがメモリデバイス上の再配列されたメモリアドレスから読み取られたときに完了し得る。読み取りトランザクションが完了しているものとメモリコントローラが決定する(すなわち、決定ブロック1008=「Yes」)とき、メモリコントローラは、方法1000を終了し得る。読み取りトランザクションが完了していないものとメモリコントローラが決定する(すなわち、決定ブロック1008=「No」)とき、ブロック1002において、メモリコントローラは、再配列されたメモリアドレスからシリアルデータを読み取り、シリアルデータをパラレルデータに変換することを継続し得る。これは、たとえば、読み取りトランザクションが、単一のメモリデバイスバッファが取り扱い得るより大きいデータ量に対するものであるときに発生し得る。複数のメモリデバイスバッファが読み取りトランザクションに対してシリアルデータを受信するとき、メモリコントローラは、各メモリデバイスバッファに対して、また、いくつかの場合には、読み取りトランザクションのデータ量が、メモリデバイスバッファのすべてが取り扱い得る量より大きい場合に同じメモリデバイスバッファに対して2回以上、方法1000を実施し得る。
【００７９】
一態様では、メモリマップ再配列パターンがレイテンシ耐性プロセスに対するものであるとき、方法1000は、複数のメモリデバイスバッファに対してパラレルに実行され得る。
【００８０】
図11は、複数のメモリデバイスのうちの1つまたは複数に書き込むためにパラレルフォーマットのデータをシリアルデータに変換するためにメモリコントローラまたは他の構成要素の中で実施され得る一態様方法1100を示す。コンピューティングデバイスのプロセッサが書き込みトランザクション命令または要求を出すとき、ブロック1102において、メモリコントローラのデータバッファは、再配列論理回路から書き込みトランザクション信号を受信し得る。上記で説明したように、書き込みトランザクション信号は、プロセッサによって供給されたパラレルフォーマットの書き込みデータを記憶するように、データバッファに、より具体的には書き込みトランザクションの再配列されたメモリアドレスと関連付けられたメモリデバイスバッファの1つまたは複数のFIFOバッファに、シグナリングし得る。
【００８１】
ブロック1104では、データバッファは、プロセッサからパラレルフォーマットの書き込みトランザクションデータを受信し得る。上記で説明したように、プロセッサは、プロセッサデータバスによってデータバッファと個別のメモリデバイスバッファとに接続され得る。メモリデバイスバッファの各々は、プロセッサにパラレルに接続され得る。そのようにして、プロセッサによって1つのバーストで出力されるデータのすべては、プロセッサデータバスに、および効率的にメモリデバイスバッファのすべてに出力される。しかしながら、書き込みトランザクション信号を受信したメモリデバイスバッファだけが、プロセッサからのパラレルフォーマットの書き込みデータを記憶するように指示される。一態様では、プロセッサからのパラレルフォーマットの書き込みデータの各バーストに対して、プロセッサデータバスの最大サイズまで、再配列論理回路は、メモリデバイスバッファのうちの1つだけに、パラレルフォーマットの書き込みデータのバーストをそのFIFOバッファに記憶するようにシグナリングし得る。
【００８２】
ブロック1106において、データバッファは、FIFOバッファからマルチプレクサへのシリアル入力のための選択信号を、再配列論理回路から受信し得る。ブロック1108では、データバッファは、パラレルフォーマットのデータをシリアルデータに変換し得る。上記で説明したように、データバッファのマルチプレクサは、同じデータバッファのFIFOバッファに接続され得る。FIFOバッファの出力は、マルチプレクサの入力に接続され得る。マルチプレクサは、マルチプレクサ選択バスを介して選択信号を受信し得る。マルチプレクサによって受信された選択信号は、その入力のうちのどれを出力するかをマルチプレクサに示し得る。選択信号は、マルチプレクサがFIFOバッファの出力から受信したデータをある順序で出力するように、マルチプレクサに指示し得る。マルチプレクサがFIFOバッファから受信したデータを出力するために選択信号がマルチプレクサに指示する順序によって、データがプロセッサから送信されてFIFOバッファ上に記憶されるときのパラレルフォーマットのデータが、マルチプレクサによって出力されるシリアルデータに変換され得る。
【００８３】
ブロック1110において、データバッファは、マルチプレクサによって変換されたシリアルデータをデータバッファと関連付けられたメモリデバイスにメモリデータバスを介して出力し得る。決定ブロック1112において、メモリコントローラは、書き込みトランザクションが完了しているかどうかを決定し得る。ブロック1110において、書き込みトランザクション信号と関連付けられたデータのすべてがシリアルデータとしてメモリデバイスに出力されると、決定ブロック1112の目的に対して、書き込みトランザクションは終了し得る。一態様では、トランザクションは複数のデータバーストを含み、メモリデバイスバッファのうちの1つまたは複数に対して、より多くの書き込みデータが、データバッファによって受信され得る。書き込みトランザクションが完了しているものとメモリコントローラが決定する(すなわち、決定ブロック1112=「Yes」)とき、メモリコントローラは、方法1100を終了し得る。書き込みトランザクションが完了していないものとメモリコントローラが決定する(すなわち、決定ブロック1112=「No」)とき、ブロック1104において、メモリコントローラは、残留する書き込みデータを受信することを継続し得る。
【００８４】
図12は、複数のメモリデバイスのうちの1つまたは複数から読み取るためにシリアルデータをパラレルフォーマットのデータに変換するための一態様方法1200を示す。プロセッサと、本明細書で説明するその構成要素を含むメモリコントローラと、本明細書で説明するその構成要素を含むメモリモジュールとを含むコンピューティングデバイスは、この方法1200を実施し得る。コンピューティングデバイスのプロセッサが読み取りトランザクション命令または要求を出すとき、ブロック1202において、メモリコントローラのデータバッファは、再配列論理回路から読み取りトランザクション信号を受信し得る。上記で説明したように、読み取りトランザクション信号は、メモリデバイスによってシリアルデータとして供給され、デマルチプレクサによってパラレルフォーマットのデータに変換されたパラレルフォーマットの読み取りデータを記憶するように、データバッファに、より具体的には読み取りトランザクションの再配列されたメモリアドレスと関連付けられたメモリデバイスバッファの1つまたは複数のFIFOバッファに、シグナリングし得る。
【００８５】
ブロック1204において、データバッファは、メモリデバイスからシリアル読み取りトランザクションデータを受信し得る。上記で説明したように、メモリデバイスは、メモリデータバスによってデータバッファと個別のメモリデバイスバッファとに接続され得る。メモリデバイスバッファの各々は、関連する1つまたは複数のメモリデバイスに接続され得る。そのようにして、メモリデバイスによって出力されるシリアルデータのすべては、メモリデータバスに、および直接、関連付けられたメモリデバイスバッファに出力される。一態様では、メモリデバイスは、複数のメモリデバイスバッファにパラレルに接続され得る。再配列論理回路は、メモリデバイスバッファのうちのどれが、読み取りトランザクション信号と、メモリデバイスからのシリアル読み取りデータをパラレルに記憶するように、メモリデバイスバッファに指示するデマルチプレクサ選択信号とを受信するかを制御し得る。一態様では、メモリデバイスからのシリアル読み取りデータの各バーストに対して、プロセッサデータバスの最大サイズまで、再配列論理回路は、メモリデバイスバッファのうちの1つだけに、シリアル読み取りデータのバーストをパラレルフォーマットでそのFIFOバッファに記憶するようにシグナリングし得る。
【００８６】
ブロック1206において、データバッファは、デマルチプレクサからFIFOバッファへのパラレルの出力のために再配列論理回路から選択信号を受信し得る。ブロック1208において、データバッファは、シリアルデータをパラレルデータに変換し得る。上記で説明したように、データバッファのデマルチプレクサは、同じデータバッファのFIFOバッファに接続され得る。デマルチプレクサの出力は、FIFOバッファの入力に接続され得る。デマルチプレクサは、デマルチプレクサ選択バスを介して選択信号を受信し得る。デマルチプレクサによって受信された選択信号は、メモリデバイスから受信された入力をどの出力に出力するかをデマルチプレクサに示す。選択信号は、デマルチプレクサが受信したデータをFIFOバッファの入力にある順序で出力するように、デマルチプレクサに指示し得る。デマルチプレクサがメモリデバイスから受信したデータを出力するために選択信号がデマルチプレクサに指示する順序によって、データがメモリデバイスから送信されたときのシリアルデータが、FIFOバッファによってセーブされてプロセッサに出力されるパラレルフォーマットのデータに変換され得る。
【００８７】
ブロック1210において、データバッファは、デマルチプレクサによって変換されたパラレルの読み取りデータをプロセッサデータバスを介してプロセッサに出力し得る。決定ブロック1212において、メモリコントローラは、読み取りトランザクションが完了しているかどうかを決定し得る。ブロック1210において、読み取りトランザクション信号と関連付けられたデータのすべてがパラレルフォーマットのデータとしてプロセッサに出力されると、決定ブロック1212の目的に対して、読み取りトランザクションは終了し得る。一態様では、トランザクションは複数のデータバーストを含み、メモリデバイスバッファのうちの1つまたは複数に対して、より多くの読み取りデータが、データバッファによって受信され得る。読み取りトランザクションが完了しているものとメモリコントローラが決定する(すなわち、決定ブロック1212=「Yes」)とき、メモリコントローラは、方法1200を終了し得る。読み取りトランザクションが完了していないものとメモリコントローラが決定する(すなわち、決定ブロック1212=「No」)とき、ブロック1204において、メモリコントローラは、残留する読み取りデータを受信することを継続し得る。
【００８８】
図13は、様々な態様とともに使用するのに適した、例示的なモバイルデバイスを示す。モバイルデバイス1300は、タッチスクリーンコントローラ1304および内部メモリ1306に結合されたプロセッサ1302を含む場合がある。プロセッサ1302は、汎用または特定の処理タスクに指定された1つまたは複数のマルチコア集積回路であり得る。内部メモリ1306は、揮発性メモリまたは不揮発性メモリであり得るし、セキュアなメモリおよび/もしくは暗号化されたメモリ、またはセキュアでないメモリおよび/もしくは暗号化されていないメモリ、またはそれらの任意の組合せでもあり得る。利用され得るメモリタイプの例には、限定はしないが、DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM、および埋め込みDRAMが含まれる。タッチスクリーンコントローラ1304およびプロセッサ1302は、抵抗感知タッチスクリーン、容量感知タッチスクリーン、赤外線感知タッチスクリーンなどの、タッチスクリーンパネル1312に結合される場合もある。加えて、コンピューティングデバイス1300のディスプレイは、タッチスクリーン機能を有する必要はない。
【００８９】
モバイルデバイス1300は、互いに結合され、かつ/またはプロセッサ1302に結合された、通信を送信および受信するための1つまたは複数の無線信号トランシーバ1308(たとえば、Peanut、Bluetooth（登録商標）、Zigbee、Wi-Fi、RF無線など)と、アンテナ1310とを有する場合がある。トランシーバ1308およびアンテナ1310は、様々なワイヤレス送信のプロトコルスタックおよびインターフェースを実装するために、上述の回路とともに使用される場合がある。モバイルデバイス1300は、セルラーネットワークを介した通信を可能にし、プロセッサに結合されたセルラーネットワークワイヤレスモデムチップ1316を含み得る。
【００９０】
モバイルデバイス1300は、プロセッサ1302に結合された周辺デバイス接続インターフェース1318を含む場合がある。周辺デバイス接続インターフェース1318は、1つのタイプの接続を受け入れるように単独で構成される場合があるか、または、USB、FireWire、Thunderbolt、もしくはPCIeなどの様々なタイプの物理接続および通信接続を共通もしくはプロプライエタリに受け入れるように、構成される場合がある。周辺デバイス接続インターフェース1318は、単独で構成された周辺デバイス接続ポート(図示せず)に結合される場合もある。
【００９１】
また、モバイルデバイス1300は、音声出力を提供するためのスピーカー1314を含むことも可能である。また、モバイルデバイス1300は、プラスチック、金属もしくは材料の組合せで構築された、本明細書で説明した構成要素のすべて、またはいくつかを収容するためのハウジング1320を含むことも可能である。モバイルデバイス1300は、使い捨てまたは充電可能なバッテリーなどの、プロセッサ1302に結合された電源1322を含む場合もある。充電可能なバッテリーは、モバイルデバイス1300の外部にある電源から充電電流を受けるために、周辺デバイス接続ポートに結合される場合もある。モバイルデバイス1300は、ユーザ入力を受け取るための物理ボタン1324を含む場合もある。モバイルデバイス1300はまた、モバイルデバイス1300をオンオフするための電源ボタン1326を含み得る。
【００９２】
上述された様々な態様はまた、図14に示されたラップトップコンピュータ1400などの様々なモバイルデバイス内に実装される場合がある。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面1417を含み、したがって、タッチスクリーンディスプレイを装備した上述のコンピューティングデバイス上で実装されるものと同様のドラッグジェスチャ、スクロールジェスチャ、およびフリックジェスチャを受信することができる。ラップトップコンピュータ1400は通常、揮発性メモリ1412、およびフラッシュメモリのディスクドライブ1413などの大容量不揮発性メモリに結合されたプロセッサ1411を含む。加えて、コンピュータ1400は、プロセッサ1411に結合されたワイヤレスデータリンクおよび/または携帯電話トランシーバ1416に接続され得る、電磁放射を送受信するための1つまたは複数のアンテナ1408を有する場合がある。コンピュータ1400は、プロセッサ1411に結合されたフロッピーディスクドライブ1414およびコンパクトディスク(CD)ドライブ1415を含む場合もある。ノートブック構成では、コンピュータの筐体は、すべてがプロセッサ1411に結合された、タッチパッド1417、キーボード1418、およびディスプレイ1419を含む。コンピューティングデバイスの他の構成には、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールが含まれ得るし、それらは様々な態様と連携して使用される場合もある。
【００９３】
様々な態様の動作を遂行するためにプログラマブルプロセッサ上で実行されるコンピュータプログラムコードすなわち「プログラムコード」は、C、C++、C#、Smalltalk、Java（登録商標）、JavaScript（登録商標）、Visual Basic、Structured Query Language(たとえば、Transact-SQL)、Perlなどの高水準プログラミング言語で、または様々な他のプログラミング言語で書かれ得る。本出願で使用される場合、コンピュータ可読記憶媒体に記憶されるプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である(オブジェクトコードのような)機械語コードを指し得る。
【００９４】
多くのコンピューティングデバイスのオペレーティングシステムのカーネルは、(非特権コードが動作する場合)ユーザ空間へと編成され、(特権コードが動作する場合)カーネル空間へと編成される。この分離は、カーネル空間の一部であるコードがGPL認可される必要がある一方で、ユーザ空間内で動作するコードがGPL認可されなくてもよい、Androidおよび他の一般公有使用許諾(GPL)環境において特に重要である。本明細書で説明された様々なソフトウェア構成要素/モジュールは、明示的に別段の記述がない限り、カーネル空間またはユーザ空間のいずれかに実装され得ることを理解されたい。
【００９５】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な態様の動作が提示された順番で実施されなければならないことを要求または暗示するものではない。当業者には理解されるように、上記の態様における操作の順序は、任意の順序でも実施することができる。「その後」、「次いで」、「次に」、等々などの語は、動作の順序を限定するものではなく、これらの語は単に、本方法の説明を通して読者を導くために使用される。さらに、単数表現における特許請求要素のあらゆる参照は、その要素を単数に限定するものとして解釈してはならない。
【００９６】
様々な態様に関連して説明されている様々な実例論理ブロック、モジュール、回路およびアルゴリズム操作は、電子ハードウェア、コンピュータソフトウェアまたは両方の組合せとして実現することができる。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路および動作は、上では概ねそれらの機能の点で説明されている。そのような機能がハードウェアとして実現されるか、あるいはソフトウェアとして実現されるかどうかは、総合システムに課される特定の適用例および設計制約で決まる。当業者は、説明された機能性を特定の適用例ごとに様々なやり方で実施することができるが、そのような実施判断が、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００９７】
本明細書で開示される態様に関連して説明される様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、本明細書で説明される機能を実施するように設計された汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタロジック、個別のハードウェアコンポーネント、またはそれらの任意の組合せとともに実装または実行され得る。汎用プロセッサはマイクロプロセッサでよいが、別の方法として、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラまたはステートマシンでよい。プロセッサは、たとえばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連結した1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成など、コンピューティングデバイスの組合せとして実現することもできる。代替として、いくつかの動作または方法は、所与の機能に固有の回路によって実施され得る。
【００９８】
1つまたは複数の態様では、記載の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読媒体上または非一時的プロセッサ可読媒体上の1つまたは複数の命令またはコードとして記憶されてもよい。本明細書で開示された方法またはアルゴリズムの動作は、非一時的コンピュータ可読またはプロセッサ可読記憶媒体上に常駐することができるプロセッサ実行可能ソフトウェアモジュールにおいて具体化され得る。非一時的コンピュータ可読またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であり得る。例として、そのような非一時的コンピュータ可読またはプロセッサ可読媒体は、これらに限定はしないが、RAM、ROM、EEPROM、フラッシュメモリ、CD-ROMもしくは他の光ディスク(disc)記憶装置、磁気ディスク(disk)記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含むことができる。ディスク(disk)およびディスク(disc)は、本明細書において使用されるとき、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せはまた、非一時的コンピュータ可読およびプロセッサ可読媒体の範囲内に含まれる。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る非一時的プロセッサ可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せもしくはセットとして常駐することができる。
【００９９】
開示される態様の前述の説明は、当業者が本発明を作成または使用することを可能にするために提供されている。これらの態様に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義された一般的な定義は、本発明の要旨または範囲から逸脱することなく、他の態様に適用され得る。したがって、本発明は、本明細書に示される態様に限定されることは意図されず、以下の特許請求の範囲、ならびに、本明細書で開示されている原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【０１００】
100  コンピューティングデバイス
102  システムオンチップ(SoC)
104  プロセッサ
106  スタティックランダムアクセスメモリ(SRAM)
108  読取り専用メモリ(ROM)
110  メモリコントローラ
112  ストレージコントローラ
114  ストレージデバイス
116  メモリモジュール
118  メモリデバイス
200  データバッファ
202  再配列論理回路
204  トランザクションバス
206  プロセッサデータバス
208  プロセッサアドレスバス
210  データバッファ制御バス
212  メモリデータバス
214  メモリアドレスおよび制御バス
216  メモリデバイス選択バス
300  メモリデバイスバッファ
302  先入れ先出し(FIFO)バッファ
304  マルチプレクサ
308  マルチプレクサ選択バス
310  FIFO制御バス
400  デマルチプレクサ
402  デマルチプレクサ選択バス
500  最小電力消費のための再配列されたメモリマップ
600  レイテンシ耐性プロセスのための再配列されたメモリマップ
700  最大性能速度のための再配列されたメモリマップ
1300  モバイルデバイス
1302  プロセッサ
1304  タッチスクリーンコントローラ
1306  内部メモリ
1308  トランシーバ
1310  アンテナ
1312  タッチスクリーンパネル
1314  スピーカー
1316  セルラーネットワークワイヤレスモデムチップ
1318  周辺デバイス接続インターフェース
1320  ハウジング
1322  電源
1324  物理ボタン
1326  電源ボタン
1400  ラップトップコンピュータ
1408  アンテナ
1411  プロセッサ
1412  揮発性メモリ
1413  ディスクドライブ
1414  フロッピーディスクドライブ
1415  コンパクトディスク(CD)ドライブ
1416  ワイヤレスデータリンクおよび/または携帯電話トランシーバ
1417  タッチパッド
1418  キーボード
1419  ディスプレイ
【図１】
2017504889.tif 000003
【図２】
2017504889.tif 000004
【図３】
2017504889.tif 000005
【図４】
2017504889.tif 000006
【図５】
2017504889.tif 000007
【図６】
2017504889.tif 000008
【図７】
2017504889.tif 000009
【図８】
2017504889.tif 000010
【図９】
2017504889.tif 000011
【図１０】
2017504889.tif 000012
【図１１】
2017504889.tif 000013
【図１２】
2017504889.tif 000014
【図１３】
2017504889.tif 000015
【図１４】
2017504889.tif 000016
【手続補正書】
【提出日】平成28年10月12日(2016.10.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリモジュールの複数のメモリデバイスを使用するための方法であって、
前記複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップと、
前記メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するステップと、
前記再配列されたメモリマップに従って前記少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するステップと、
前記複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化することによって、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップであって、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスが、前記再配列されたメモリマップに従って前記少なくとも1つの再配列されたメモリアドレスと関連付けられる、ステップと、
を含む、方法。
【請求項２】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのうちの1つを使用するように前記再配列されたメモリマップをもたらすステップを含み、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのうちの1つを活性化するステップを含む、請求項1に記載の方法。
【請求項３】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記メモリモジュールの前記複数のメモリデバイスのうちの少なくとも1つを複数回使用するように前記再配列されたメモリマップをもたらすステップを含む、請求項1に記載の方法。
【請求項４】
前記複数のメモリデバイスに書き込むための前記データバーストおよび前記少なくとも1つのメモリアドレスを含む書き込みトランザクションのための前記メモリトランザクション命令を受信するステップであって、前記データバーストがパラレルの書き込みデータを含む、受信するステップと、
前記再配列されたメモリアドレスに書き込むために前記データバーストの少なくとも一部をシリアル書き込みデータに変換するステップと、
前記変換された書き込みデータを、前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つに出力するステップとをさらに含む、請求項1に記載の方法。
【請求項５】
前記複数のメモリデバイスから読み取るための前記少なくとも1つのメモリアドレスを含む読み取りトランザクションのための前記メモリトランザクション命令を受信するステップと、
前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つから前記データバーストを受信するステップであって、前記データバーストの少なくとも一部がシリアル読み取りデータを含む、受信するステップと、
前記メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの前記読み取りデータが順序付けられるように前記データバーストをパラレルフォーマットの読み取りデータに変換するステップと、
パラレルフォーマットの前記読み取りデータをプロセッサに出力するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、異なる再配列パターンを使用して前記複数のメモリデバイスの前記メモリマップの複数の部分を再配列するステップを含み、前記メモリマップの少なくとも一部が、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される、請求項1に記載の方法。
【請求項７】
メモリモジュールの複数のメモリデバイスを使用するためのメモリコントローラを備え、前記メモリコントローラが、
前記複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップと、
前記メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するステップと、
前記再配列されたメモリマップに従って前記少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するステップと、
前記複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化することによって、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップとを含む動作を実行するように構成され、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスが、前記再配列されたメモリマップに従って前記少なくとも1つの再配列されたメモリアドレスと関連付けられる、装置。
【請求項８】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのうちの1つを使用するように前記再配列されたメモリマップをもたらすステップを含み、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのうちの1つを活性化するステップを含むような動作を実行するように、前記メモリコントローラが構成される、請求項7に記載の装置。
【請求項９】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記メモリモジュールの前記複数のメモリデバイスのうちの少なくとも1つを複数回使用するように前記再配列されたメモリマップをもたらすステップを含むような動作を実行するように、前記メモリコントローラが構成される、請求項7に記載の装置。
【請求項１０】
前記メモリコントローラが、
前記複数のメモリデバイスに書き込むための前記データバーストおよび前記少なくとも1つのメモリアドレスを含む書き込みトランザクションのための前記メモリトランザクション命令を受信するステップであって、前記データバーストがパラレルの書き込みデータを含む、受信するステップと、
前記再配列されたメモリアドレスに書き込むために前記データバーストの少なくとも一部をシリアル書き込みデータに変換するステップと、
前記変換された書き込みデータを、前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つに出力するステップとを含む動作を実行するようにさらに構成される、請求項7に記載の装置。
【請求項１１】
前記メモリコントローラが、
前記複数のメモリデバイスから読み取るための前記少なくとも1つのメモリアドレスを含む読み取りトランザクションのための前記メモリトランザクション命令を受信するステップと、
前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つから前記データバーストを受信するステップであって、前記データバーストの少なくとも一部がシリアル読み取りデータを含む、受信するステップと、
前記メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの前記読み取りデータが順序付けられるように前記データバーストをパラレルフォーマットの読み取りデータに変換するステップと、
パラレルフォーマットの前記読み取りデータをプロセッサに出力するステップとを含む動作を実行するようにさらに構成される、請求項7に記載の装置。
【請求項１２】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、異なる再配列パターンを使用して前記複数のメモリデバイスの前記メモリマップの複数の部分を再配列するステップを含むような動作を実行するように、前記メモリコントローラが構成され、前記メモリマップの少なくとも一部が、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される、請求項7に記載の装置。
【請求項１３】
メモリモジュールの複数のメモリデバイスを使用するための装置であって、
前記複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすための手段と、
前記メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するための手段と、
前記再配列されたメモリマップに従って前記少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するための手段と、
前記複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化することによって、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するための手段とを含み、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスが、前記再配列されたメモリマップに従って前記少なくとも1つの再配列されたメモリアドレスと関連付けられる、装置。
【請求項１４】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすための手段が、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのうちの1つを使用するように前記再配列されたメモリマップをもたらすための手段を含み、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するための手段が、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのうちの1つを活性化するための手段を含む、請求項13に記載の装置。
【請求項１５】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすための手段が、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記メモリモジュールの前記複数のメモリデバイスのうちの少なくとも1つを複数回使用するように前記再配列されたメモリマップをもたらすための手段を含む、請求項13に記載の装置。
【請求項１６】
前記複数のメモリデバイスに書き込むための前記データバーストおよび前記少なくとも1つのメモリアドレスを含む書き込みトランザクションのための前記メモリトランザクション命令を受信するための手段であって、前記データバーストがパラレルの書き込みデータを含む、受信するための手段と、
前記再配列されたメモリアドレスに書き込むために前記データバーストの少なくとも一部をシリアル書き込みデータに変換するための手段と、
前記変換された書き込みデータを、前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つに出力するための手段とをさらに含む、請求項13に記載の装置。
【請求項１７】
前記複数のメモリデバイスから読み取るための前記少なくとも1つのメモリアドレスを含む読み取りトランザクションのための前記メモリトランザクション命令を受信するための手段と、
前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つから前記データバーストを受信するための手段であって、前記データバーストの少なくとも一部がシリアル読み取りデータを含む、受信するための手段と、
前記メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの前記読み取りデータが順序付けられるように前記データバーストをパラレルフォーマットの読み取りデータに変換するための手段と、
パラレルフォーマットの前記読み取りデータをプロセッサに出力するための手段とをさらに含む、請求項13に記載の装置。
【請求項１８】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすための手段が、異なる再配列パターンを使用して前記複数のメモリデバイスの前記メモリマップの複数の部分を再配列するための手段を含み、前記メモリマップの少なくとも一部が、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される、請求項13に記載の装置。
【請求項１９】
プロセッサ実行可能命令を記憶した非一時的プロセッサ可読記憶媒体であって、前記プロセッサ実行可能命令が、
メモリモジュールの複数のメモリデバイスのメモリマップを再配列して、メモリトランザクション命令のためのデータバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列されたメモリマップをもたらすステップと、
前記メモリトランザクション命令と関連付けられた少なくとも1つのメモリアドレスを受信するステップと、
前記再配列されたメモリマップに従って前記少なくとも1つのメモリアドレスを少なくとも1つの再配列されたメモリアドレスに変換するステップと、
前記複数のメモリデバイスのすべてより少ないメモリデバイスの各々を個別に活性化することによって、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップとを含む動作をメモリコントローラに実行させるように構成され、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスが、前記再配列されたメモリマップに従って前記少なくとも1つの再配列されたメモリアドレスと関連付けられる、非一時的プロセッサ可読記憶媒体。
【請求項２０】
前記記憶されたプロセッサ実行可能命令が、
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのうちの1つを使用するように前記再配列されたメモリマップをもたらすステップを含み、
前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのすべてより少ないメモリデバイスを活性化するステップが、前記データバーストのための前記メモリトランザクション命令を実行するために前記複数のメモリデバイスのうちの1つを活性化するステップを含むような動作を前記メモリコントローラに実行させるように構成される、請求項19に記載の非一時的プロセッサ可読記憶媒体。
【請求項２１】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記メモリモジュールの前記複数のメモリデバイスのうちの少なくとも1つを複数回使用するように前記再配列されたメモリマップをもたらすステップを含むような動作を前記メモリコントローラに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項19に記載の非一時的プロセッサ可読記憶媒体。
【請求項２２】
前記記憶されたプロセッサ実行可能命令が、
前記複数のメモリデバイスに書き込むための前記データバーストおよび前記少なくとも1つのメモリアドレスを含む書き込みトランザクションのための前記メモリトランザクション命令を受信するステップであって、前記データバーストがパラレルの書き込みデータを含む、受信するステップと、
前記再配列されたメモリアドレスに書き込むために前記データバーストの少なくとも一部をシリアル書き込みデータに変換するステップと、
前記変換された書き込みデータを、前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つに出力するステップとをさらに含む動作を前記メモリコントローラに実行させるように構成される、請求項19に記載の非一時的プロセッサ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能命令が、
前記複数のメモリデバイスから読み取るための前記少なくとも1つのメモリアドレスを含む読み取りトランザクションのための前記メモリトランザクション命令を受信するステップと、
前記再配列されたメモリアドレスと関連付けられた、前記複数のメモリデバイスのすべてより少ない前記活性化されたメモリデバイスのうちの少なくとも1つから前記データバーストを受信するステップであって、前記データバーストの少なくとも一部がシリアル読み取りデータを含む、受信するステップと、
前記メモリトランザクション命令のメモリアドレスと一致するようにパラレルフォーマットの前記読み取りデータが順序付けられるように前記データバーストをパラレルフォーマットの読み取りデータに変換するステップと、
パラレルフォーマットの前記読み取りデータをプロセッサに出力するステップとをさらに含む動作を前記メモリコントローラに実行させるように構成される、請求項19に記載の非一時的プロセッサ可読記憶媒体。
【請求項２４】
前記複数のメモリデバイスの前記メモリマップを再配列して、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように前記再配列されたメモリマップをもたらすステップが、異なる再配列パターンを使用して前記複数のメモリデバイスの前記メモリマップの複数の部分を再配列するステップを含むような動作を前記メモリコントローラに実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、前記メモリマップの少なくとも一部が、前記メモリトランザクション命令のための前記データバーストが前記複数のメモリデバイスのすべてより少ないメモリデバイスを使用するように再配列される、請求項19に記載の非一時的プロセッサ可読記憶媒体。
【国際調査報告】
2017504889.tif 000017
2017504889.tif 000018