前述のように、学会などでの公表という観点では、トレースキャッシュはJ.Smith教授のグループとY.Patt教授のグループがほぼ同じ時期に考案したのであるが、その後、IntelがTakenの条件分岐を含む実行命令列を続けてキャッシュに格納するというアイデアを、両大学の発表よりも3年も前の1994年3月に特許出願し、1995年1月にUSP 5、381、533として成立していたことが判明した。

この特許の「望ましい実施例」に記載されている構造は、通常の命令キャッシュは持たず、プロセサはメモリから読まれたデータを保持する命令バッファから命令を読んで実行し、実行が終わった命令列をトレースとしてキャッシュに書き込んでいく。そして、先頭のベーシックブロックの命令アドレスでトレースキャッシュをアクセスする点は同じであるが、分岐予測情報はヒット判定には使わず、キャッシュライン内に分岐予測情報を含み、トレースの作成時とは異なるベーシックブロックに分岐するという予測であると、その時点でトレースキャッシュをアクセスして分岐先のベーシックブロックを探すという動作を行う。

このように細部においては異なる点があるが、特許の請求範囲としては、アドレスが不連続な複数のベーシックブロックを1つのキャッシュラインに入れて一度にアクセスできるようにする構造となっているので、Rotenberg氏の提案のトレースキャッシュは、完全にIntelの533特許に引っかかる。

そして、IntelはPentium 4プロセサにこのトレースキャッシュを採用した。Pentium 4はx86命令をRISC風のμOPに変換してアウトオブオーダ実行するプロセサであるが、1次命令キャッシュとして12KμOPの容量のトレースキャッシュを装備している。Intelが2001年にIntel Technology Journalに発表したPentium 4の論文によると、トレースキャッシュのラインサイズは6μOP命令と短く、Takenの分岐命令を乗り越えることによる性能向上効果は限定的である。筆者としては、Pentium 4のトレースキャッシュは、x86 CISCとして必要となるμOPへの最初の変換をキャッシュして再利用することによる性能改善効果が第一の目的であるように思うが、CISCのスーパスカラ実行で必要となるRISC風命令への変換の再利用とTaken分岐を乗り越えることによる性能改善を組み合わせたうまい方法である。

しかし、キャッシュの利用効率に関しては、Intel Technology Journalの論文では、12KμOPのトレースキャッシュのヒット率は8~16KBの命令キャッシュと同程度のヒット率と述べられている。x86のCISC命令の長さは平均的には2~3バイトであり、通常の命令キャッシュであれば4K命令程度の命令キャッシュと、12KμOPのトレースキャッシュが同じ程度のヒット率である。したがって、通常のキャッシュと比較して、トレースキャッシュは3倍以上のSRAMを必要としており、前述のメモリ利用効率の悪さを実証している。

シングルスレッドの実行性能は改善したいが、消費電力の低減の方が優先順位が高いという最近の状況では、性能は上げられるものの消費電力やチップサイズのオーバヘッドを考えると、トレースキャッシュは必ずしも得ではないという判断と、Intel特許のライセンスを受ける必要があるという点が、他社がトレースキャッシュを採用しないことに影響していると思われる。

また、IntelもCore 2プロセサでは、μOPをバッファしてループを検出し、ループの中では変換済みのμOPを再利用するという構造を採用してはいるが、Pentium 4以降は、複数のベーシックブロックを1つのキャッシュラインに詰め込むトレースキャッシュは使用していない。その結果、商用マイクロプロセサでのトレースキャッシュの採用は、Pentium 4だけに留まっている。