カテゴリ:PCとか( 122 )

バックアップ用 HDD 購入

現在、バックアップは2重に取っています(バックアップにしかないデータもあるので厳密ではないですが…)。2TB の HDD がデスクトップの外付けに1個と、Wifi ルータの簡易ファイルサーバに1個です。が、何をそんなに持っているのか、残りが1割を切って棒グラフが赤い。まだ100GB以上あるので余裕ですが、気になるので 4TB の HDD を購入しました。Wifi ルータは 2個の HDD を繋げるはずなので、(2+2) を Wifi ルータに、4 を デスクトップの外付けにする予定。データコピーにむっちゃ時間かかる…
[PR]
by tom01h | 2017-03-28 21:20 | PCとか | Trackback | Comments(0)

Insider Preview 15063

Slow Ring にも降ってきました。15058 は何度も再起動をしつつ、ちょっとずつダウンロードをして、何日かかけてインストールできました。15063 はダウンロード 94% で止まっています。何やら CPU をずっと使っている模様…
で、最近はめっきり V-Scale をいじっていないので、OS をアップしても使うことがないんですよね。他の作業は他の PC でやっているし。そろそろ V-Scale いじるの復活しなきゃいけないと思っているんだけど…
[追記 今回は結構すんなり出来ました]

[PR]
by tom01h | 2017-03-27 21:43 | PCとか | Trackback | Comments(0)

Insider Preview 15058

あたらない。ダウンロード中にハングアップする。これやってもダメ。強制再起動すれば、ちょっとずつは進むが… FastRingは63だというのに…
[PR]
by tom01h | 2017-03-22 14:01 | PCとか | Trackback | Comments(0)
IEEE754 を読み直してみたら、”指数は限界なしで仮数を丸めた結果が最小値より小さい”みたいな感じなので、SoftFloatが合っているのかな? Subnormal に丸めるための丸め位置と、Tininess 検出のための丸め位置は違うってこと? Subnormal を生成するための丸めは 2段階丸めじゃなくて良いんだよね? 不安になってくるなぁ。とりあえず、手を入れていない TestFloat が Pass したから良い事にするか。

[PR]
by tom01h | 2017-02-16 22:49 | PCとか | Trackback | Comments(0)
V-scale chip シミュレータを更新しました。
  • 命令トレース出力機能を追加
  • 端末機能のローカルエコーをなくす
昨日は、XMODEM 追加だけで手いっぱいだったので…

[PR]
by tom01h | 2017-02-09 00:20 | PCとか | Trackback | Comments(0)
結構放置気味だった、V-scale chip シミュレータに XMODEM 機能を追加しました。
だらだらとしたテストベンチになっちゃいましたが、動けば良いんです。CAN には対応していませんが、CAN なんて来るわけ無いんで良いんです。
kzload は XMODEM の実装で待ち時間を作るために空のループをすごくたくさん回しています。こんなのが有るとシミュレーションがとても終わりません。うまく解決する方法が思いつかないので、#if 使ってループ回数切り替えてます。とっても格好悪いです。Makefile もかなり格好悪いです。もう、動けば何でもいいや状態です。
とりあえず検証環境が完成したので、V-scale と AHB X-bar の役割分担をちゃんと直して、無駄な命令フェッチのストールも無くしたいと思います。
こんな感じで動くのですが、エコーバックが1文字ずつにならないのが謎です。
[追記 getc は改行があるまでバッファするようです。ここに書いてました。ここには解決法も書いてあって、ローカルエコーも改行待ちも無しにするおまじないがありました。真似しました。]
~/RISC-V/vscale-chip/src/main/c/bootload$ make
[省略]
~/RISC-V/vscale-chip/src/main/c/os$ make
[省略]
~/RISC-V/vscale-chip$
make verilator-sim
[省略]
~/RISC-V/vscale-chip$ make verilator-board-test
cp src/main/c/bootload/kzload.ihex loadmem.ihex
cp src/main/c/os/kozos xmodem.dat
touch ram.data3 ram.data2 ram.data1 ram.data0
sim/Vvscale_verilator_top +max-cycles=180000 --vcdfile=tmp.vcd
Running ...
kzload (kozos boot loader) started.
kzload> load

XMODEM receive succeeded.
kzload> run
starting from entry point: 1900
Hello World!
> echo aaa
aaa
> q
rm ram.data3 ram.data2 ram.data1 ram.data0

[PR]
by tom01h | 2017-02-08 01:29 | PCとか | Trackback | Comments(0)
Insider Preview (もしくは creators update 以降) に限った話ですが、Bash on Windows から Windows のバッチファイルを動かす方法をみつけた。cmd.exe に渡せばいいみたい。
$ cmd.exe /C hoge.bat
cmd.exe 以降は windows の規則で書く(ディレクトリの区切りは\\)必要があります。同じ理屈で、なぜか見えない USB メモリも見えます。関連付けも行けます。パイプも行けるみたいです。
$ cmd.exe /C dir d:\\
$ cmd.exe /C d:\\hoge.mp4
$ cmd.exe /C type d:\\vscale.tar.gz | tar tvzf -

[PR]
by tom01h | 2017-02-02 22:10 | PCとか | Trackback | Comments(0)

トレースログ

う~~ん。spike にはいつからか命令トレースを出力するオプションが付いていたみたい。そんな訳で、開発環境の話を修正しておきました。ついでに、V-scale のシミュレータにも命令トレース出力を追加しました。さらなるついでに、FPU 転送命令のバイパスも追加しました。トレース出ると、バイパス無いの気になっちゃいますので…

[PR]
by tom01h | 2017-02-01 00:29 | PCとか | Trackback | Comments(0)
FMADD の動作モデルも作ってみます。アラインは乗算結果の時は幅を広げて、加数の時はシフト量を増やします。ノーマライズは幅を広げる必要はないですが、シフト量は増やします。ここまで出来ると、大雑把に必要な資源の見積もりができます。まぁ、最初に予想していたのとそれほど違いなく出来そうです。また、残りの命令はチョイ変で済みそうなので、これで回路を意識した記述に手を付けられます。
testfloat だと、mulAdd の検証はかなりたくさんのパタンを必要とするようで、-level 2 を指定するといつ終わるんだろう?って感じです。Verilator は結構速いみたいで testfloat で入力データと期待値生成しながら走らせているのですが、CPU 使用率の比較はこんな感じになっています。
f0054075_13082097.png

[PR]
by tom01h | 2017-01-30 00:19 | PCとか | Trackback | Comments(0)
FPU の Verilog モデルを作成中ですが、自作ランダム検証ではなく、Berkeley TestFloat を使った検証を試してみます。これを使うと丸めモードを変更したり、フラグの期待値生成も簡単に出来るし、Intel CPU だと問題のある FMADD の期待値生成のことも考えずに済みます。
testfloat_gen を使って入力と期待値が生成できるようなので、そのフォーマットに合わせてテストベンチを作り直しました。入力データが特殊な時の処理とか、フラグ生成とかいろいろ追加が必要でしたが、これで品質が大きく向上するはずです。実際、FADD でバグ見つかりましたし…
こんな感じで流せます。結構時間かかります。
~/RISC-V/FunctionalUnit$ ../testfloat/berkeley-testfloat-3/build/Linux-x86_64-GCC/testfloat_gen -level 2 -f32_add | ./sim/Vfadd > log
~/RISC-V/FunctionalUnit$ ../testfloat/berkeley-testfloat-3/build/Linux-x86_64-GCC/testfloat_gen -level 2 -f32_mul | ./sim/Vfmul > log
仕様書をちゃんと確認してみると、tininess 検出は丸め後だったみたいです。で、試してみたんだけど、これって softfloat のほうが間違っているよね?結果が最小値なのにアンダーフローしてるし。サブノーマルの仮数が長すぎるまま判定しようと思って間違っているのだと思いますtininess の検出は結果を見て判断することにして、検証を続けようと思います。 [追記 僕の理解が間違っていたみたいなので、SoftFloat を元に戻してモデル記述を修正しました。]
~/RISC-V/testfloat/berkeley-testfloat-3/build/Linux-x86_64-GCC$ ./testfloat_gen -f32_mul|grep "[80]0800000 03$"
00800000 3F7FFFFF 00800000 03
00800000 BF7FFFFF 80800000 03
00FFFFFF 3F000000 00800000 03
00FFFFFF BF000000 80800000 03
3F000000 00FFFFFF 00800000 03
3F000000 80FFFFFF 80800000 03
3F7FFFFF 00800000 00800000 03
3F7FFFFF 80800000 80800000 03
80800000 3F7FFFFF 80800000 03
80800000 BF7FFFFF 00800000 03
80FFFFFF 3F000000 80800000 03
80FFFFFF BF000000 00800000 03
BF000000 00FFFFFF 80800000 03
BF000000 80FFFFFF 00800000 03
BF7FFFFF 00800000 80800000 03
BF7FFFFF 80800000 00800000 03

[PR]
by tom01h | 2017-01-29 00:07 | PCとか | Trackback | Comments(0)