【手続補正書】
【提出日】平成30年12月14日(2018.12.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アドレス変換の方法であって、
第１のアドレスドメインにおけるメモリアクセスの第１のアドレスを受け取ることと、
前記第１のアドレスに線形に続く複数の予測される順次メモリアクセスの指示を受け取ることと、
複数のアドレス変換エントリをメモリ管理ユニットにストアすることであって、各アドレス変換エントリが、前記第１のアドレスドメインの第１の所定の数の最上位アドレスビットと、対応するアドレスページに対する第２のアドレスドメインの第２の所定の数の最上位アドレスビットとを含む、前記メモリ管理ユニットにストアすることと、
前記メモリ管理ユニットにストアされた前記アドレス変換エントリのサブセットをマイクロ変換ルックアサイドバッファにストアすることと、
前記第１のアドレスに対応する第１のアドレス変換エントリについて前記マイクロ変換ルックアサイドバッファを探すことと、
前記第１のアドレス変換エントリが前記マイクロ変換ルックアサイドバッファにストアされていない場合に、前記メモリ管理ユニットから前記第１のアドレス変換エントリを呼び出し、前記呼び出された第１のアドレス変換エントリを前記マイクロ変換ルックアサイドバッファにストアすることと、
前記第２のアドレスドメインの前記第２の所定の最上位アドレスビットを前記第１のアドレス変換エントリの前記第１のアドレスドメインの前記第１の所定の最上位アドレスビットで置換することにより、前記第１のアドレス変換エントリに従って前記第１のアドレスを前記第２のアドレスドメインにおける第２のアドレスに変換することと、
前記第１のアドレスと前記第１のアドレスに線形に続く前記複数の予測される順次メモリアクセスの前記指示とから、前記複数の予測される順次メモリアクセスの最後の予測される順次メモリアクセスが、前記第１のアドレス変換エントリに続く次のアドレス変換エントリに対応するかを判定することと、
前記複数の予測される順次メモリアクセスの前記最後の予測される順次メモリアクセスが、前記第１のアドレス変換エントリに続く次のアドレス変換エントリに対応する場合に、前記次のアドレス変換エントリについて前記マイクロ変換ルックアサイドバッファを探すことと、
前記次のアドレス変換エントリが前記マイクロ変換ルックアサイドバッファにストアされていない場合に、前記メモリ管理ユニットから前記次のアドレス変換エントリを呼び出し、前記呼び出された次のアドレス変換エントリを前記マイクロ変換ルックアサイドバッファにストアすることと、
を含む、方法。
【請求項２】
請求項１に記載のアドレス変換の方法であって、
前記第１のアドレスドメインにおける前記メモリアクセスが命令フェッチであり、
前記方法が、
条件付き分岐命令が分岐を採るか、分岐を採らないかを予測することと、
前記第１のアドレスと、採られると予測される次の順次条件付き分岐命令との間のアドレスロケーションの数に応じて、前記第１のアドレスに線形に続く前記複数の予測される順次メモリアクセスの前記指示を判定することと、
を含む、方法。
【請求項３】
請求項１に記載のアドレス変換の方法であって、
前記第１のアドレスドメインにおける前記メモリアクセスが連続する命令のフェッチパケットの命令フェッチであり、
前記第１のアドレスに線形に続く前記複数の予測される順次メモリアクセスの前記指示がフェッチパケットの数である、方法。
【請求項４】
請求項３に記載のアドレス変換の方法であって、
前記複数の予測される順次メモリアクセスの最後の予測される順次メモリアクセスが前記次のアドレス変換エントリに対応するかを判定することが、
前記フェッチパケットの数に前記フェッチパケットのサイズを乗算して積を形成することと、
前記積を前記第１のアドレスに加算してアドレスの和を形成することと、
前記アドレスの和が前記次のアドレス変換エントリに対応するかを判定することと、
を含む、方法。
【請求項５】
請求項４に記載のアドレス変換の方法であって、
前記アドレスの和が前記次のアドレス変換エントリに対応するかを判定することが、前記第１のアドレス変換エントリの現在のページサイズの指示を受け取ることを含む、方法。
【請求項６】
請求項１に記載のアドレス変換の方法であって、
メモリアドレスのサブセットに対するデータをキャッシュに一時的にストアすることと、
前記第１のアドレスに対応するデータに対するメモリアクセスの各々受信される第１のアドレスについて前記キャッシュを探すことと、
前記キャッシュが前記第１のアドレスに対応するデータをストアしている場合に、前記キャッシュから前記第１のアドレスに対してメモリアクセスを行うことと、
前記キャッシュが前記第１のアドレスに対応するデータをストアしていない場合に、
前記第１のアドレス変換エントリに従って前記第１のアドレスを前記第２のドメインにおける第２のアドレスに変換することを含んで、前記第１のアドレスに対応する前記データを前記メモリから呼び出し、
前記第１のアドレスに対応する前記呼び出されたデータを前記キャッシュにストアし、
その後、前記キャッシュから前記第１のアドレスに対して前記メモリアクセスを行うことと、
を更に含み、
前記第１のアドレス変換エントリを前記メモリ管理ユニットから呼び出すことと、前記第１のアドレス変換エントリが前記マイクロ変換ルックアサイドバッファにストアされていない場合に前記呼び出された第１のアドレス変換エントリを前記マイクロ変換ルックアサイドバッファにストアすることとが、前記キャッシュが前記第１のアドレスに対応するデータをストアしていない場合にのみ実行される、方法。
【請求項７】
請求項６に記載のアドレス変換の方法であって、
前記第１のアドレスドメインにおける前記メモリアクセスが命令フェッチであり、前記第１のアドレスドメインにおける前記メモリアクセスが連続する命令のフェッチパケットの命令フェッチであり、前記第１のアドレスに線形に続く前記複数の予測される順次メモリアクセスの前記指示がフェッチパケットの数であり、
前記方法が、
前記第１のアドレスにフェッチパケットを加算することによって第１の次のパケットアドレスを生成することと、
前の次のパケットアドレスにフェッチパケットサイズを順次加算することによって次のフェッチアドレスのシーケンスを生成することと、
各次のパケットアドレスにおいて命令をプリフェッチすることと、
を更に含む、方法。
【請求項８】
請求項７に記載のアドレス変換の方法であって、
各次のパケットアドレスにおいて命令をプリフェッチすることが、
前記次のパケットアドレスに対応する命令に対する各次のパケットアドレスについて前記キャッシュを探すことと、
前記キャッシュが前記次のパケットアドレスに対応する命令をストアしていない場合に、
前記第１のアドレス変換エントリに従って前記次のパケットアドレスを前記第２のアドレスドメインにおける第３のアドレスに変換することを含んで、前記次のパケットアドレスに対応する前記データをメモリから呼び出し、
各次のパケットアドレスに対応する前記呼び出された命令を前記キャッシュにストアすることと、
を含む、方法。
【請求項９】
請求項１に記載のアドレス変換の方法であって、
前記次のアドレス変換エントリを前記メモリ管理ユニットから呼び出すことが、
前記第１のアドレスを前記メモリ管理ユニットに供給することと、
前記第１のアドレスに対応するアドレス変換エントリを前記メモリ管理ユニットから呼び出すことと、
前記メモリ管理ユニットからの前記呼び出されたアドレス変換エントリを前記マイクロ変換ルックアサイドバッファに前記第１のアドレスに対応する指示とともに戻すことであって、それにより、前記マイクロ変換ルックアサイドバッファが順序付けられていない呼び出されたアドレス変換エントリを適切にストアし得る、前記戻すことと、
を含む、方法。
【請求項１０】
アドレス変換を用いるデータ処理装置であって、
命令制御下でデータに対してデータ処理演算を実施する中央処理装置であって、第１のアドレスドメインにおける対応する第１のアドレスでのメモリアクセスと、各メモリアクセスについて前記第１のアドレスに線形に続く複数の予測される順次メモリアクセスの指示とを生成する、前記中央処理装置と、
複数のアドレス変換エントリをストアするメモリ管理ユニットであって、各アドレス変換エントリが、前記第１のアドレスドメインの第１の所定数の最上位アドレスビットと、対応するアドレスページについて第２のアドレスドメインの対応する第２の所定数の最上位アドレスビットとを含む、前記メモリ管理ユニットと、
前記中央処理装置と前記メモリ管理ユニットとに接続されるアドレス変換ユニットと、
を含み、
前記アドレス変換ユニットが、前記複数のアドレス変換エントリのサブセットをストアするマイクロ変換ルックアサイドバッファを含み、
前記アドレス変換ユニットが、
現在の第１のアドレスに対応する第１のアドレス変換エントリについて前記マイクロ変換ルックアサイドバッファを探すことと、
前記第１のアドレス変換エントリが前記マイクロ変換ルックアサイドバッファにストアされていない場合に、前記メモリ管理ユニットから前記第１のアドレス変換エントリを呼び出し、前記呼び出された第１のアドレス変換エントリを前記マイクロ変換ルックアサイドバッファにストアし、前記アドレス変換エントリの前記第１のアドレスドメインの前記第１の所定の最上位ビットの代わりに前記第２のアドレスドメインにおける前記第２の所定の最上位ビットで置換することによって前記第１のアドレス変換エントリに従って前記第１のアドレスを第２のアドレスドメインにおける第２のアドレスに変換することと、
によって、前記中央処理装置からのメモリアクセスを前記第１のアドレスドメインから第２のアドレスドメインに変換するように動作可能であり、
前記アドレス変換ユニットが、
前記複数の予測される順次メモリアクセスの最後の予測される順次メモリアクセスが前記第１のアドレス変換エントリに続く次のアドレス変換エントリに対応するか否かを前記第１のアドレスと前記複数の予測される順次メモリアクセスの前記指示とから判定し、
前記複数の予測される順次メモリアクセスの前記最後の予測される順次メモリアクセスが次のアドレス変換エントリに対応する場合に、前記次のアドレス変換エントリについて前記マイクロ変換ルックアサイドバッファを探し、
前記次のアドレス変換エントリが前記マイクロ変換ルックアサイドバッファにストアされていない場合に、前記メモリ管理ユニットから前記次のアドレス変換エントリを呼び出し、前記呼び出された次のアドレス変換エントリを前記マイクロ変換ルックアサイドバッファにストアする、
ように動作可能である、装置。
【請求項１１】
請求項１０に記載のアドレス変換を用いるデータ処理装置であって、
前記第１のアドレスドメインにおける前記メモリアクセスが命令フェッチであり、
前記中央処理装置が分岐予測ユニットを含み、
前記分岐予測ユニットが、
条件付き分岐命令が分岐を採るか、分岐を採らないかの予測をストアし、
前記第１のアドレスと、採られるように予測される次の順次条件付き分岐命令との間のアドレスロケーションの数に応じて、前記第１のアドレスに線形に続く前記複数の予測される順次メモリアクセスの前記指示を計算する、
ように動作可能である、装置。
【請求項１２】
請求項１０に記載のアドレス変換を用いるデータ処理装置であって、
前記中央処理装置が、複数の機能ユニットを含む超長命令語中央処理装置であり、
前記第１のアドレスドメインにおける前記メモリアクセスが、連続する命令のフェッチパケットの命令フェッチであり、
前記第１のアドレスに線形に続く前記複数の予測される順次メモリアクセスの前記指示が、フェッチパケットの数である、装置。
【請求項１３】
請求項１２に記載のアドレス変換を用いるデータ処理装置であって、
前記アドレス変換ユニットが、
前記フェッチパケットの数を受け取る第１の入力と、前記フェッチパケットのサイズを受け取る第２の入力と、積を形成する出力とを有する乗算器と、
前記乗算器の前記出力に接続される第１の入力と、前記第１のアドレスを受け取る第２の入力と、アドレスの和を形成する出力とを有する加算器と、
前記加算器の前記出力に接続される第１の入力を有し、前記アドレスの和が前記次のアドレス変換エントリに対応するか否かを判定する、ページ境界検出ユニットと、
を更に含む、装置。
【請求項１４】
請求項１３に記載のアドレス変換を用いるデータ処理装置であって、
前記ページ境界検出ユニットが、前記第１のアドレス変換エントリの現在のページのサイズの指示を受け取る第２の入力を更に有する、装置。
【請求項１５】
請求項１０に記載のアドレス変換を用いるデータ処理装置であって、
メモリアドレスのサブセットについてのデータを一時的にストアするキャッシュを更に含み、
前記キャッシュが、
前記第１のアドレスに対応するデータに対するメモリアドレスの各々受信される第１のアドレスについて探し、
前記キャッシュが前記第１のアドレスに対応するデータをストアしている場合に、前記キャッシュから前記第１のアドレスに対して前記メモリアクセスを行い、
前記キャッシュが前記第１のアドレスに対応するデータをストアしていない場合に、前記アドレス変換ユニットが前記第１のアドレス変換エントリに従って前記第１のアドレスを前記第２のアドレスドメインにおける前記第２のアドレスに変換することを含んで、メモリから前記第１のアドレスに対応する前記データを呼び出し、前記第１のアドレス変換エントリに対応する前記呼び出されたデータをストアし、その後、前記キャッシュから前記第１のアドレスに対して前記メモリアクセスを行う、
ように動作可能であり、
前記アドレス変換ユニットが、前記第１のアドレス変換エントリを前記メモリ管理ユニットから呼び出し、前記キャッシュが前記第１のアドレスに対応するデータをストアしていない場合にのみ、前記呼び出された第１のアドレス変換エントリを前記マイクロ変換ルックアサイドバッファにストアする、ように動作可能である、装置。
【請求項１６】
請求項１５に記載のアドレス変換を用いるデータ処理装置であって、
前記中央処理装置が、連続する命令のフェッチパケットの命令フェッチを前記メモリアクセスとして生成し、前記第１のアドレスに線形に続く前記複数の予測される順次メモリアクセスの前記指示としてフェッチパケットの数を生成し、
前記アドレス変換ユニットが、
前記フェッチパケット数が初期的にロードされ、メモリサイクル毎に減分される、フェッチパケットカウントレジスタと、
前記中央処理装置に接続されて前記第１のアドレスを受け取る第１の入力と、第２の入力と、出力と、ゼロカウントユニットに接続されてゼロカウント指示を受け取る制御入力とを有するマルチプレクサと、
前記フェッチパケットカウントレジスタに接続され、前記フェッチパケットカウントレジスタのカウントがゼロかどうかのゼロカウント指示を生成するゼロカウントユニットであって、前記ゼロカウント指示が、前記マルチプレクサの前記制御入力に接続され、ゼロの指示の際に前記マルチプレクサの前記第１の入力を選択し、非ゼロの指示の際に前記マルチプレクサの前記第２の入力を選択する、前記ゼロカウントユニットと、
フェッチパケットサイズの指示を受け取る第１の入力と、前記マルチプレクサの前記出力に接続される第２の入力と、アドレスの和を生成する出力とを有する加算器であって、前記出力が前記マルチプレクサの前記第２の入力に接続され、前記アドレスの和がキャッシュプリフェッチ要求を生成する、前記加算器と、
を更に含む、装置。
【請求項１７】
請求項１６に記載のアドレス変換を用いるデータ処理装置であって、
前記キャッシュが、
前記キャッシュプリフェッチアドレスに対応するデータに対する各々受信されるキャッシュプリフェッチアドレスについて探し、
前記キャッシュが前記キャッシュプリフェッチアドレスに対応するデータをストアしていない場合に、前記アドレス変換ユニットが前記第１のアドレス変換エントリに従って前記キャッシュプリフェッチアドレスを前記第２のアドレスドメインにおける第３のアドレスに変換することを含んで、前記メモリから前記キャッシュプリフェッチアドレスに対応する前記データを呼び出し、
前記キャッシュプリフェッチアドレスに対応する前記呼び出されたデータをストアする、
ように更に動作可能である、装置。
【請求項１８】
請求項１０に記載のアドレス変換を用いるデータ処理装置であって、
前記メモリ管理ユニットが、前記呼び出された第１のアドレス変換エントリを前記マイクロ変換ルックアサイドバッファに前記第１のアドレスに対応する指示とともに戻すように更に動作可能であり、
前記マイクロ変換ルックアサイドバッファが、前記呼び出された第１のアドレス変換エントリを前記第１のアドレスに対応するロケーションにストアし、そのため、前記マイクロ変換ルックアサイドバッファが、順序付けられていない呼び出されたアドレス変換エントリを適切にストアし得る、装置。