RISC-V勉強会@Tokyo 2019 01/24

イベントのハッシュタグを集めました https://risc-v.connpass.com/event/161383/
0
はろ @hidenorly

#riscvjp kernelはsuper visor modeで動作している。タイマー割り込みなどはmachine modeで動作する。machine modeではMMUが無効化されているので実割り込み処理はせず、contextを保存して、super visor上で動作するkernelにソフトウェア割り込みで遷移して、super visor上で実際の処理を行う

2020-01-24 19:31:33
はろ @hidenorly

#riscvjp 通常のアプリなどはuser modeで動作する。user modeからsuper visor modeへのsystem call呼び出し (内部ではsretが呼び出されている)

2020-01-24 19:31:57
はろ @hidenorly

#riscvjp タイマー割り込みは人の心をつかむ

2020-01-24 19:33:05
はろ @hidenorly

#riscvjp アドレス空間を制限することで、shadow spaceができる。(cache適用と非適用とか?)

2020-01-24 19:37:36
nekomatu @nekomatu

#riscvjp ページテーブルをたどるのをウオークと表現するらしい。 ちょっと前はOSが設計してソフト的に辿ってたけど性能の都合、今はハードウェアで引けるようになっているそう。

2020-01-24 19:42:00
nekomatu @nekomatu

#riscvjp ページテーブルエントリー。アクセス/ダーティビットの仕様がちょっと面白い。よくあるのはCPUが勝手にやってくれるものだが、RISC-VはOSでやってもいいよとなっている。

2020-01-24 19:50:00
Kei Nakazawa @muo_jp

ページテーブルエントリ(PTE)において、保護属性のR/W/Xを全て0にセットしたものはページテーブル参照とみなす。 逆に、1段目/2段目で保護属性bitをどれか立てると1GiB/2MiBのラージページ指定をできる #riscvjp

2020-01-24 19:52:25
nekomatu @nekomatu

#riscvjp 仮想記憶の基本についておさらい。

2020-01-24 19:52:45
nekomatu @nekomatu

#riscvjp ワーキングセットのおさらい。 とある実行区間に対しては局所性をもってるよね というやつ(なんか書いてて自分が曖昧にしか理解していないことが露呈する)

2020-01-24 19:59:13
nekomatu @nekomatu

#riscvjp 皆さん、そろそろなんで仮想記憶やワーキングセットの話をしているか忘れていると思いますが、 アクセス/ダーティビットの設定をOSで設定できるように仕様が許容されてるのはなぜだろうか?という考察です。

2020-01-24 20:04:47
nekomatu @nekomatu

#riscvjp いろいろな条件があるとOSでセットしたほうがいいこともある。ということが分かったのだけど、TLBの操作もセットで必要になっていく話になるそう。 (むっずううう

2020-01-24 20:11:02
はろ @hidenorly

#riscvjp HIGHエリアにkernelとmemory mapped I/Oを配置。下位メモリにUserspace appを配置し、各アプリで同じアドレス空間を多重に割り当てる (process毎に)

2020-01-24 20:15:31
nekomatu @nekomatu

#riscvjp 全部のプロセスをストレートマップしておくと何が嬉しいか?切り替えが発生した時も単純にアクセス可能な領域かどうかを変更するだけでいい。

2020-01-24 20:20:29
nekomatu @nekomatu

#riscvjp 与太話の昔Windowsでアプリケーションが2GBまでの領域しか使えなかった理由が面白かったw

2020-01-24 20:21:28
はろ @hidenorly

#riscvjp 2M pageで物理メモリ4GB分をmapした。VPN1 tableを構成する

2020-01-24 20:24:44
nekomatu @nekomatu

#riscvjp MMC初期化処理の解説。ただ初期化するだけじゃなくて別アーキテクチャも考慮した話とかされてて、この辺のナレッジが圧倒的すぎる。かっこいい。

2020-01-24 20:26:20
Kenta IDA @ciniml

aarch64のMMU初期化処理、最近たまたまみてたけど、ほとんど同じなんやなー。 #riscvjp

2020-01-24 20:27:07
はろ @hidenorly

#riscvjp 時間は案内記載の通りが良いなぁ・・・

2020-01-24 20:28:12
FJT @fjt7tdmi

64bit レジスタが32本あればスタック使わなくても SHA1 が計算できますからね #riscvjp

2020-01-24 20:28:19
はろ @hidenorly

#riscvjp 32bit->64bitの遷移などでMMUの設定に注意が必要 (自分の実行すべきコードがアドレス空間に見えるように設定をしておく)

2020-01-24 20:30:31
nikonikoten @nikonikoten

#riscvjp 面白いけど、情報量ありすぎ、ボーッとしているとあっという間に置いてかれる。ビデオ録画ありそうなので、もう一度聞かないといけない。

2020-01-24 20:31:14
はろ @hidenorly

#riscvjp 次回はCLINTの話から (Core Local Interrupt)

2020-01-24 20:32:53
nekomatu @nekomatu

#riscvjp MMU付きのハードはお高い。

2020-01-24 20:34:20