【手続補正書】
【提出日】平成29年1月27日(2017.1.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
実行可能命令を記憶するように設計されたm個の異なるスピードを持ったメモリ装置（ここでmは２以上の自然数であり、そしてm個のメモリ装置は少なくとも遅いスピードのメモリと速いスピードのメモリを含む）と、
m個のメモリ装置とカップリングが可能で、１つあるいはそれ以上の実行可能命令を実行するように設計された中央演算装置(CPU)と、
トラック・テーブルに記憶された分岐命令のターゲット命令のトラック・アドレスにもとづいて、遅いスピードのメモリを制御し速いスピードのメモリに命令を提供するように設計された命令制御ユニットと、
を含むことを特徴とする命令処理システムであって、
命令制御ユニットが、テーブルの各行がトラックに対応している、複数の行からなるトラック・テーブルを含み、
テーブルの各行が複数のエントリを持ち、各エントリはトラック・ポイントに対応し、
そしてトラック・ポイントは最も速いメモリに記憶されている分岐命令の、ターゲット命令のターゲット・アドレスを記憶している（ここで分岐命令のターゲット命令は最も速いメモリー以外の、m個の中の１つあるいはそれ以上のメモリ装置に記憶されている）、
命令処理システム。
【請求項２】
最もアクセススピードの遅いメモリに記憶された命令のブロックアドレスと、
そして最もアクセススピードの遅いメモリに記憶された命令が他のm-1個のメモリ装置に記憶されているときの、他のm-1個のメモリ装置のトラック・アドレスと、を記憶するように設定されたアクティブ・リスト
をさらに含むことを特徴とする請求項１に記載のシステム。
【請求項３】
分岐命令のターゲット命令のトラック・アドレスが行番号と列番号を含み、
分岐命令のターゲット命令のブロック・アドレスに対するアクティブ・リストにおけるマッチング操作の後に、トラック・アドレスの行番号が得られ、
命令ブロックにおける分岐命令のターゲット命令のオフセットがトラック・アドレスの列（コラム）番号である、
ことを特徴とする請求項２に記載のシステム。
【請求項４】
命令制御ユニットはさらにトラッカーを含む：
トラック・テーブルに記憶された分岐命令のターゲット命令のトラック・アドレスにもとづいて、トラッカーは先行して移動し、分岐命令の第１層にポイントし、トラック・テーブルから分岐命令の第１層のターゲット命令のトラック・アドレスを読み出す；
トラッカーがターゲット命令のトラック・アドレスが最も速いメモリに該当することを見つけたとき、最も速いメモリがCPUに命令を提供する；
そしてトラッカーがターゲット命令のトラック・アドレスが、最も速いメモリ以外のm-1個のメモリ装置の中の少なくとも１つのメモリに該当することを見つけたとき、m-1個のメモリ装置の中の少なくとも１つのメモリがCPUそして最も速いメモリに対してあらかじめ命令を提供する、
これらのことを特徴とする請求項３に記載のシステム。
【請求項５】
分岐命令の第１層に対応するトラック・アドレスを含むように設計されたレジスタ（このトラック・アドレスはターゲット命令に該当するトラック・アドレスをトラック・テーブルにおけるアドレス指定操作によって読み出すために使われる）；
分岐命令セグメントの第１層の次の分岐命令のトラック・アドレスを得るように設計されたインクリメンタ；
そして分岐命令の第１層のターゲット命令のターゲットアドレスと分岐命令セグメントの第１層の次の分岐命令のトラック・アドレスのうち１つを選択し、選択したトラック・アドレスをレジスタに記憶するように設計されたセレクタ；
これらを含むトラッカーを特徴とする請求項４に記載のシステム。
【請求項６】
命令制御ユニットはさらにプレディクタを含み、プレディクタはトラッカーによってポイントされた分岐命令セグメントの後の分岐命令セグメントを取得するように設計されることを特徴とする請求項４に記載のシステム。
【請求項７】
プレディクタはさらに以下のように設定される：
分岐命令セグメントの第１層の後の分岐命令セグメントのn層目を取得する（nは２以上の自然数）；
そして最も遅いスピードのメモリを制御して、速いスピードのメモリに記憶されていない分岐命令セグメントのn層目を、速いスピードのメモリに供給する、
これらのことを特徴とする請求項６に記載のシステム。
【請求項８】
プレディクタは以下を含む：
分岐命令セグメントのn層目の分岐命令のトラック・アドレスを取得するように設計されたインクリメンタ；
それぞれ分岐命令セグメントのn層目の分岐命令のトラック・アドレスを記憶するように設計された2n個のレジスタ；
そしてトラック・テーブルにて分岐命令のターゲット命令のトラック・アドレスを得るためにアドレス指定操作を行い、分岐命令のトラック・アドレスを選ぶように設計されたセレクタ、
これらのことを特徴とする請求項７に記載のシステム。
【請求項９】
プレディクタは予測深度を調節するために、分岐命令のL層分のトラック・アドレスを記録するためにレジスタの一部を使う（Lはmよりも小さな自然数）；
そしてプレディクタはプレディクタの機能をストップさせるようにはレジスタを使用しない、
これらのことを特徴とする請求項８に記載のシステム。
【請求項１０】
命令制御ユニットはさらに、
分岐命令セグメントの第１層の後の分岐命令セグメントの第n層を取得するように設計され、
遅いスピードのメモリを制御して、速いスピードのメモリに記憶されていない分岐命令のn層目を、速いスピードのメモリに供給するプレディクション・トラッカー（ここでnは２以上の自然数）を含むことを特徴とする請求項２に記載のシステム。
【請求項１１】
プレディクション・トラッカーは以下を含む：
分岐命令セグメントの第n層の分岐命令のトラック・アドレスを取得するように設計されたインクリメンタ；
分岐命令セグメントの第１層から第n層までの分岐命令のトラック・アドレスそれぞれを記憶するように設計された2n+1-2  個のレジスタ；
そして順番に実行されない分岐命令セグメントに対応するトラック・アドレスを、分岐命令の分岐が取られたか否かの情報にもとづいて、クリップするように設計されたn+1層のセレクタ、さらに
トラック・アドレスをクリップした後、出力されたトラック・アドレスは分岐命令の第１層にポイントする；
トラック・アドレスにもとづいて、分岐命令の第１層のターゲット命令のトラック・アドレスをトラック・テーブルから読み出す；
そしてターゲット命令のターゲット・アドレスにもとづいて、最も速いスピードのメモリからの命令がCPUに供給される、
これらのことを特徴とする請求項１０に記載のシステム。
【請求項１２】
メモリから提供される分岐命令のターゲット命令のブロックアドレスを計算し、
該当するトラック・アドレスを得るためのマッチング操作を行なうために、分岐命令のターゲット命令のブロックアドレスをアクティブ・リストに送る、
このように設計されたスキャナを含むことを特徴とする請求項１に記載のシステム。
【請求項１３】
マッチング結果が分岐命令のターゲット命令が速いスピードのメモリに記憶されていないことを示したとき、アクティブ・リストが遅いスピードのメモリを制御して分岐命令のターゲット命令を供給することを特徴とする請求項１２に記載のシステム。
【請求項１４】
命令制御ユニットがさらにトラッカーを含み、トラッカーは以下のように設計される：
リード・ポインタをトラック・アドレスとして使い、トラック・テーブルと最速スピードのメモリにおけるアドレス指定操作を行なう；
トラック・ポイントの中身を読み出しリード・ポインタの値を更新する；
そして同時にCPUで実行するための命令を読み出す、
これらのことを特徴とする請求項１に記載のシステム。
【請求項１５】
命令制御ユニットによってトラック・テーブルのトラック・ポイントから読み出された命令タイプが間接分岐命令であるとき、CPUは命令を実行し分岐ターゲット・アドレスを生成し、そして分岐ターゲット・アドレスはトラック・アドレスに変換される、
これらのことを特徴とする請求項１に記載のシステム。
【請求項１６】
CPUによって生成された間接分岐ターゲット・アドレスがアクティブ・リストによってトラック・アドレスに変換され、対応するトラック・テーブルのトラック・ポイントに記憶される；
そしてトラッカーのリード・ポインタがトラック・ポイントを再びポイントしたとき、アドレスは直接分岐ポイントとして投機的実行を行なうために用いられ、CPUによって現在生成された分岐ターゲット・アドレスはトラック・ポイントのトラック・アドレスに対応する命令アドレスと比較され、
ここで、CPUによって現在生成された分岐ターゲット・アドレスがトラック・ポイントのトラック・アドレスに対応する命令アドレスに等しいとき、投機的実行は正しく、後続するオペレーションが実行される；
そしてCPUによって現在生成された分岐ターゲット・アドレスがトラック・ポイントのトラック・アドレスに対応する命令アドレスに等しくないとき、
投機的実行は正しくなく、CPUによって生成された分岐ターゲット・アドレスはトラック・アドレスに変換され、そして後続するオペレーションが実行される、
これらのことを特徴とする請求項１５に記載のシステム。
【請求項１７】
分岐ターゲット命令とデータが置かれているメモリの異なるレベルに応じて、異なるタイプのトラック・アドレスがトラック・テーブルのトラック・ポイントに記憶される；
異なるタイプのトラック・アドレスは異なるレベルのメモリに対応している；
そしてアクティブ・リストに記憶されている情報にもとづいて、異なるレベルのキャッシュ・メモリのトラック・アドレスが変換される、
これらのことを特徴とする請求項２に記載のシステム。
【請求項１８】
命令制御ユニットによってトラック・テーブルのトラック・ポイントから読み出されたアドレスが、遅いスピードのメモリに対応するトラック・アドレスであったとき、トラック・アドレスはより速いスピードのメモリに対応するトラック・アドレスに変換されるためにアクティブ・リストに送られ、そしてトラック・テーブルのトラック・ポイントに充填され、同時に遅いスピードのメモリからの対応する命令ブロックもしくはデータブロックがより速いスピードのメモリに記憶される、
これらのことを特徴とする請求項１７に記載のシステム。
【請求項１９】
最も遅いスピードのメモリの１つのメモリ・ブロックに対応するアドレスの前のメモリ・ブロックもしくは次のメモリ・ブロックが最も遅いスピードのメモリに記憶されているとき、アクティブ・リストも最も遅いスピードのメモリのメモリ・ブロックに対応するアドレスの前のメモリ・ブロックもしくは次のメモリ・ブロックのメモリ位置情報を記憶する、
これらのことを特徴とする請求項２に記載のシステム。
【請求項２０】
スキャナは分岐ターゲット命令アドレスが境界の外か否かを判断する；
そして判断結果に応じて、異なる場所に置かれている分岐ターゲット命令に対して異なるフォーマットのアドレスが与えられる；
命令処理システムは、データアクセス命令の次データアドレスが境界の外か否かを判断するように設計されたデータエンジンを含む；
そして判断結果に応じて、異なる場所に置かれている次データには異なるフォーマットのアドレスが与えられる、
これらのことを特徴とする請求項１２に記載のシステム。
【請求項２１】
分岐ターゲット命令アドレスが、１つ以上のレベルのメモリにおいて、分岐ソース命令を含む同じメモリ・ブロック内にあるとき、より高レベルのメモリ内の分岐ターゲット命令のトラック・アドレスが分岐ターゲット命令のトラック・アドレスとして用いられる；
分岐ソース命令のトラック・アドレスのブロック番号（BNX)が分岐ターゲット命令のトラック・アドレスのBNXとして用いられる；
そしてそのレベルのメモリに対応する分岐ターゲット命令アドレスのブロック・オフセット番号(BNY)部分が分岐ターゲット命令のトラック・アドレスのBNYとして用いられる；
分岐ターゲット命令アドレスがある１つのレベルのメモリの中の分岐ソース命令を含むメモリ・ブロックの前もしくは次のメモリ・ブロックに置かれているとき、当該レベルのメモリにおける分岐ターゲット命令のトラック・アドレスが分岐ターゲット命令のトラック・アドレスとして用いられる；
分岐ソース命令を含むメモリ・ブロックの前もしくは次のメモリ・ブロックのBNXが分岐ターゲット命令のトラック・アドレスのBNXとして用いられる；
そしてそのレベルのメモリに対応する分岐ターゲット命令アドレスのBNY部分が分岐ターゲット命令のトラック・アドレスのBNYとして用いられる、
これらのことを特徴とする請求項２０に記載のシステム。
【請求項２２】
次データアドレスが、１つ以上のレベルのメモリにおいて、現時点のデータを含む同じメモリ・ブロックの中にあるとき、より高レベルのメモリ内の次データのトラック・アドレスが次データのトラック・アドレスとして用いられる；
現時点のデータのトラック・アドレスのデータ・ブロック番号（DBNX)が次データのトラック・アドレスのDBNXとして用いられる；
そして当該レベルのメモリに対応する次データのデータ・ブロック・オフセット番号(DBNY)が次データのトラック・アドレスのDBNYとして用いられる、
これらのことを特徴とする請求項２０に記載のシステム。
【請求項２３】
各レベルのデータメモリがデータ・トラック・アドレス変換モジュールに対応する；
データ・トラック・アドレス変換モジュールの行とあるレベルのデータメモリのデータ・ブロックとの間には一対一の対応関係がある；
各行はデータ・ブロック番号と、低いレベルのデータメモリにおける対応するサブ・ブロック番号とを記憶し、従ってデータメモリのあるレベルのデータ・トラック・アドレスのブロック番号が、データメモリの低いレベルのデータ・トラック・アドレスのデータ・ブロック番号に変換される；
そしてサブ・ブロック番号とデータ・メモリのそのレベルのデータ・トラック・アドレスのブロック・オフセットが融合されてデータメモリの低いレベルのデータ・トラック・アドレスのデータ・ブロック・オフセットを形成する、
これらのことを特徴とする請求項３に記載のシステム。
【請求項２４】
命令とデータが遅いアクセススピードのメモリを共有する；
そして最も遅いアクセススピードのメモリにおける命令ブロックとデータ・ブロックのブロック・アドレスがアクティブ・リストに記憶される、
これらのことを特徴とする請求項３に記載のシステム。
【請求項２５】
物理アドレスにもとづいて、アクティブ・リストと高レベルのメモリ装置に対応するメモリにおいてアドレス指定操作が行なわれる；
そして仮想ー物理変換モジュールがアクティブ・リスト、スキャナもしくはデータエンジン、そしてCPUとの間のパス上に置かれる；
スキャナもしくはデータエンジンから生成された仮想アドレスが仮想ー物理変換モジュールによって物理アドレスに変換されたあと、物理アドレスはアクティブ・リストへ送られ、トラック・アドレスに変換される；
CPUによって生成された間接分岐命令アドレスもしくはデータアドレスが仮想ー物理変換モジュールによって物理アドレスに変換されたあと、物理アドレスはアクティブ・リストへ送られ、トラック・アドレスに変換される；
そしてトラック・アドレスによってメモリから得られた該当する命令もしくはデータがCPUで使われるために供給され、最高レベルのメモリに充填される、
これらのことを特徴とする請求項２に記載のシステム。
【請求項２６】
物理アドレスにもとづいて、アクティブ・リストと高レベルのメモリ装置に対応するメモリにおいてアドレス指定操作が行なわれる；
アクティブ・リストはアンチエイリアシング・テーブルを含む、
アンチエイリアシング・テーブルの各行は仮想ページ番号と、アクティブ・リスト本体における仮想ページ番号に対応する物理アドレスページ番号のブロック番号を記憶する；
そしてアクティブ・リストにおける命令ブロックもしくはデータブロックの物理アドレスに対応する仮想アドレスの総数が１より多いとき、アクティブ・リスト本体は命令ブロックもしくはデータブロックの物理アドレスと物理アドレスに対応する仮想アドレスを記憶し、他の仮想アドレスの仮想ページと対応するブロック番号はアンチエイリアシング・テーブルに記憶される；
CPUとスキャナもしくはデータエンジンによって出力された仮想アドレスが、アクティブ・リストの本体とアンチエイリアシング・テーブルの仮想アドレスとがマッチングされたとき、仮想アドレスのマッチング結果と仮想ページ番号が出力される；
ここでマッチング結果は以下の結果のうちの１つを示す：
仮想アドレスとマッチする；
仮想アドレスとマッチせず、仮想アドレスページ番号とマッチする；
そして仮想アドレスページ番号とマッチしない；
そしてCPUとスキャナもしくはデータエンジンによって出力された物理アドレスが、アクティブ・リストの本体の中の物理アドレスとマッチングされるとき、物理アドレスのマッチング結果と物理アドレスページ番号が出力される、
ここでマッチング結果は以下の結果のうちの１つを示す：
物理アドレスとマッチする；
物理アドレスとマッチせず、物理アドレスページ番号とマッチする；
そして物理アドレスページ番号とマッチしない、
これらのことを特徴とする請求項２０に記載のシステム。