-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
キャッシュエミュレーションの実装 #1
Comments
#2 を実装することを考えるとキャッシュミス時に
|
16760a5 でn-way キャッシュの動作エミュレーションはできた。あとは、サイクル数をエミュレートする |
8dfecc1 にてキャッシュをmapperから分離できた。
をプロトタイプとして組み込んでみた。実際に使うとなるとこれではダメなきがするから拡張する可能性あり。 |
やること
|
stallなしでjpegした場合の結果
|
やること再確認 メモリアクセスのインターフェース
前提
|
キャッシュミスを考慮した結果
所用サイクル数が1.36倍になった。 |
ちなみにGeyser RTLシミュレーションでは
1 cycle = 50nsなので4,734,514サイクル シミュレーションにかかる時間は150倍くらい |
ひとまずできたが遅い
|
アービタの話題は #7 へ |
3d22720: すべてのカウントをデクリメントするのではなく、最初のリクエスト時でのサイクル数を保持し、現在のサイクル数との差からreadyを算出するように仕様変更 以下は b14edc7 を手元のMacBook Pro(Early 2015)で実行した時のシミュレーション時間
速くなった。 |
オリジナルの実装ではキャッシュらしきものはあるがdirect mapでしかも、ブロックサイズ=1のキャッシュと呼んで良いのかわからない代物。加えてライトスルー方式。
キャッシュミスペナルティも考慮したn-way associative cache化したい。
順番としては
という手順で進めていく。
ただし、キャッシュミス時のstallを実装するには少なくとも以下を考慮する必要がある。
あとMIPS R3000ってデータハザードでパイプラインの停止とかインターロックって実装されてたのか忘れたから調べる
The text was updated successfully, but these errors were encountered: