水平埋伏智歯 抜歯 その後

https://w0.hatenablog.com/entry/2021/01/07/191719 (前回)

特に何もなく抜糸も終わって順調にもとどおりになってきている。

抜く時の痛さがピークで、そこから痛みは右肩下がりに下がって順調に回復した。抜糸はまあちょっと痛かったけど想定内ぐらいかな。ちょっとチクチクするぐらい。麻酔よりは痛くなかった。

まあ抜く時は大変だったけど、人生の心配事がひとつ減ったと考えれば、痛い思いをした甲斐はあったと思う。


抜糸のときに「反対側抜くのも今予約入れれば次回紹介状必要ないからおトクだしラクだよ!」と言われるままに、反対側抜糸の予約も入れました。病院の事情で少し遅れて10月に抜きます…
まあ次はドライソケットになってももう最後だから大丈夫やろ…

水平埋伏智歯 抜歯 感想

https://w0.hatenablog.com/entry/20150306/1425587806

あれから6年…ついに抜きました。

たまに少し痛くなることがあって、「あー抜くべき〜」と思いつつ、結局抜いてなかったけど、去年の9月にいよいよ寝られないくらい痛くなったのでもう限界だと思って昨日抜いた。

予約しはじめたのが9月なんだけど、予約が混んでいて昨日になった。


抜くときはクソ痛くて涙がこぼれたわ…


  1. 麻酔痛いという感想をネットで見るけど、これは耐えられた。まあ痛いけど、一般的な歯の治療するときと変わらん
  2. 歯肉を切り開く瞬間は、説明見るとグロいけど、これはほとんどわからなかった。「何か当たってるな」ぐらいしかわからなくて、いつ切れたかもわからんかった。
  3. なんかでゴリゴリやられる。これは、そんなに苦痛ではなかったな。
  4. 次に引っぱられる感覚が、顎の奥のほうにクるので、「これ大丈夫なやつか…?顎の神経ごと引っぱり出されないか…?」みたいな心配をしてしまう。痛くはないけど、結構モゾモゾする
  5. メキメキ割られる。これも痛くはないが、本能的にヤバい感覚がある。まあ歯を割ってるからヤバいことをやってるんだけど…
  6. 最後気合いで引き抜くみたいになった。これが麻酔を貫通してクソ痛だった。なんか抜くんじゃなくて、押されるんだよね。歯根の先が顎に刺さってない?これ大丈夫?みたいな感じあるし、クソ痛いし、ヤバい感じあるし、早く終わってくれという気持ちで一杯だった


なんか大変だったっぽくて麻酔含めて1時間くらい口の中をゴリゴリやられてた。


もうやりたくないわ…

(これは特別大変だったんやろなぁ…)と思って、お医者さんに「これ反対側抜くのも同じくらい大変なんですか?(そんなわけないよね?)」と聞いたら、「同じぐらい大変だと思います。歯が骨と癒着してたので似たようになると思います」と言われた。もう一回同じことをやらないといけないっぽい。


年をとると歯が骨と癒着するので若い人は若いうちに抜きましょう。(ただし、予防的に抜く場合は保険が効かない場合があります)


今は痛み止めが効いていて、安静にしてれば痛くない。口開けるのがしんどいのであんま食べられない。頬は漫画みたいに膨れておる。


ドライソケットにならなければ、明日(2日目)がピークで徐々に収まっていくっぽいな。


ドライソケットになったら…泣く

やったゲーム

SEKIRO

買ったの去年だけど、定期的に意地になってやってしまった…

まではやった

あとは苦難鐘死闘踏破やな…(多分やらない)

マジでいいゲームだよマジ…

人生でやったアクションゲームの中で一番よいゲームだと思うわ。難しいけど理不尽ではない。

苦難に慣れてからノーマルでやると、理不尽にならないようにめっちゃ気を使って作ってあるのがわかる。

Baba Is You

まじ神ゲー

システムもよく考えてあるけど、全マップ本当によく考えられてあるのがすごいと思うわ。

とか言いながらヒント見ながらやってるけど…

多分あと二個ぐらい残っていて、ヒント見てやるのも負けた気がするし、自力でできる気もしないので詰んでいる

Return of the Obra Dinn

これもエモくてよかった。

3D空間で探索アドベンチャーをやるのがよいよな。

雑感

最近やるゲーム良いやつ多くて、「これもう残りの人生ゲームやってるだけでよくない?」みたいに感じることがある。


なんか、本当によくできてるんだよな。


Baba Is You も Return of the Obra Dinn も、システムが尖ってるけど、完成度高い。


昔のいいゲームって、完成度めちゃくちゃ高いか、システムが尖ってるかで、相反する何かがあったような気がするけど、最近のいいゲームって、なんか両立してるのが多くて新鮮なシステムを楽しむ気持ちと、安定した完成度の心地良さみたいなの両方感じられて満足感すごい。

2020まとめ

一応書いておくか

結婚した (2/20)

マジ?

twitterにしか書いてなかったけど結婚した。

鹿児島へ行った

そのあと鹿児島へ行った。
あんまり考えないで決めたけど、このあと旅行行くのも難しくなってしまったので行っておいてよかったと思う。

桜島を自転車で一周した。しんどかった…

3日いたけど噴火はしなかった。

トイレットペーパーがなくなった

これ以来家のトイレットペーパーの残弾が無くなってきたら、

「お前はあのときの悲劇を忘れたのか」

と心に刻んで買いにいくようにしている。備蓄は大事

3月の終わりに積雪した

エモくてよかった

緊急事態宣言

もう忘れてるが3/14に出ている

4月

なんもしてない。

家に閉じこもっているのが苦痛すぎて晩御飯の写真を毎日撮っていた記録が残っている。

この頃、色々考えたことを書いておくべきと思ったけど、結局書いてない。もう当時の気持ちは忘れてしまって、なんか日常になってしまったな。

家に閉じこもっているのも苦痛ではなくなってしまった。

5月

起きている時間全部仕事していた。

適度に重いタスクがあると生きている実感があっていいよな。ハゲる夢を3回くらい見た記憶がある。

6月

Green500が1位だった。まあ頑張ったと思う。

7月

8088で遊んでいた。

https://twitter.com/tanakmura/status/1289578933168435201

最終的にはPONG的なものを動かすまでやっている。

権利的なものに配慮して、これは何も見ないで記憶だけで作ったけど、実物見るともっと玉のスピードがはやい。

https://w0.hatenablog.com/entry/2020/07/10/003159

ここには書いてないが、ボードファイルの更新が反映されてないので、githubからソース取ってきても動かないです。

これはXilinxのボードファイルのディレクトリ構成がカスすぎて使いづらいのが悪い。(といってもスクリプト一回書けば終わる作業だけど)

8月

なんか色々

9月

子供が生まれました。

なんか色々あったけど、僕の個人情報ではないので、子供が大きくなったら本人に聞いてください

10月

特に記録が残ってない。

多分このあたりから引きこもり生活に慣れてきている。

というか引きこもりメンタルだった頃の本来の自分を取り戻してきている(いいのか?)

11月

親しらずを抜こうと決意したのが9月で病院混んでいたのでやっと話しに行けたのが11月。

抜くのは1/6です。がんばってね。

12月

世間は大変やな…

所感

なんか色々あったなぁ

まあよかったと思う。

FPGA で 8088 (D8088-2) を動かして自作PCをやる

これまでのあらすじ : https://twitter.com/tanakmura/status/1280152564898557952

FPGAHello World以上のものが書きたいという気持ちは前からあったので、この機会に少し実用的はHDLを書くことにした。

なにをやっているかの解説を書いておこう。

ソースは、 https://github.com/tanakamura/jisaku_pc_8088 ここにある(上のツイートでは、タイミング問題があってLED点灯しないことがあると書いてるが、これは多分改善してあるはず。)

こういう昔のCPUは、CPU側の命令実行とバスが直結していて、ポインタ0x80 を読むと、CPUの足に、そのまま0x80が出てくる。それを正しくハンドリングして、有効な命令バイト列を返せば、8088を動かすことが可能だ。

この実装では、この足から出てくる信号をデコードして、うまくなんとかやる回路をFPGAに実装して、8088を動かしている。

実装しているペリフェラルは以下

アドレスが18bitしかないのはアドレス線18本しかひっぱってきてないからです…(昔のCPUはアドレス線繋がなくても動くんだなぁ…)

信号の解釈は、ぐぐって出てきたPDF(色々クリアなものかは知らない…)を参考に実装している。


まず、いきなり実機でやるとしんどそうなので、tv80 をFPGAで実装して、シミュレーションとかFPGA単体で動かしたりして、8bit バス ←→ AXIバスの変換が正しく動いているかを確認した。

ただ、Z80 と 8088 はバスの信号が変わってるので、完全に同じではない、そのへんはしかたないので実機で確認した。

https://github.com/tanakamura/jisaku_pc_8088/blob/master/top_hdl/i8088_top.sv#L249 (ALE)

https://github.com/tanakamura/jisaku_pc_8088/blob/master/modules_hdl/i8088_cpu.sv#L214 (WR,RD,IO)


クロックは、DDR使ってみたかったので(結局使ってないが)、 https://reference.digilentinc.com/learn/programmable-logic/tutorials/arty-getting-started-with-microblaze-servers/start これを参考にして、83.333 MHz を AXI のバスクロックにして、それを1/15にして、5.555MHz を作ってそれを8088に入れている。D8088-2 なので、2MHz - 8MHz の間で動くはず。

AXI と CPU クロックが違うので、クロック変わるところはAXI側クロックで2回サンプリングして一致してたらAXIバスクロック側にコピーするようにしている。(これでいいかは知らない。真面目にやるなら非同期キューというものを作るらしい)

これで出たアドレスを https://github.com/tanakamura/jisaku_pc_8088/blob/master/modules_hdl/addr_converter.sv AXIアドレスにあうように変換している。


物理回路のほうは、全く初心者だったので、結構手探りだった。特に一番謎だったのは、現代のFPGAと昔のCPUの信号線を直結していいのか?という点だった。電圧違うとかだと、壊れる気がしたので、それなりに真面目に調べた。

中でも http://www.cepstrum.co.jp/hobby/5v33v/5v33v.html この「そんなに真面目に変換しないでいい」という説は採用していいのかかなり悩んだが、結局8088はクロックだけは確実に5Vを入れる必要があるということがわかって、これは採用しないことにした。あとADの8本は方向変わるので、これもどうしたらいいかよくわからなかったので。

結局よくわからんので全ての信号線に http://akizukidenshi.com/catalog/g/gM-08250/ これを入れることにした。あとから考えたら、今のFPGAの出力では昔の8088のバスを動かすだけの電流流せない可能性があったので、ちゃんとバッファありの電圧変換にしたのは余計な問題踏む確率が減るという点で正解だったと思う。


で Fritzing で超汚い回路図を書いて、ブレッドボードにして、それを奥さんに実装してもらった。Fritzingは、ブレッドボード図と回路図で整合性取れてるか調べられて、汚い回路図でもまあショートしてないかぐらいは確認できたので、まあよかったかな。
f:id:w_o:20200710002938p:plain
(あ、なおすの忘れてたけど、一番右上の2DIRはGNDに接続するのが正しいです。あと今はSSOはA17につなげてます)

(なお、これはICの幅をまちがって書いていて、実際はもう2列占有する)

ADの8本はZになる可能性があるので、10kのプルアップを入れてる。(プルアップが必要な理由も今回はじめて知りました)


最後に、spi flash へ 8088 のプログラムを書き込む時に、vivado なしでも書けるようにして、完成。
https://github.com/tanakamura/jisaku_pc_8088/blob/master/flash/flash.tcl

OpenOCD があれば、raspberry pi からでも8088 のプログラムが更新できるようになっている。(flashの0x0080_0000にプログラムを置くと、CPU の 0x10000 にマップされる)
これは将来本格的にプログラムを書くことになったときにTAT短縮のために必須の機能だと思ったので。


最初動いて、ILAで8088からの信号が届いたのが見れたときは感動しましたね。何十年も故障しないで生きててえらい!


まあ少し大きめのHDL書けたので満足かな。SystemVerilog は Verilog HDL(略してVHDL(大嘘)) より色々便利になってたのでよいと思った(まあASICで採用するのは難しいかもしれんが)

追記 : Digilent の Arty のボードファイルは、SPIのSSとIOAがいれかわっているので、そのままでは使えないです。(https://github.com/Digilent/vivado-boards/commit/9c664934db09612f4d1f4aff7b3d6a58251d9577) 手元で入れかえて使ってください。

Preferred Networksの深層学習用スーパーコンピュータMN-3がスーパーコンピュータ省電力性能ランキングGreen500で世界1位を獲得

https://preferred.jp/ja/news/pr20200623/

特に書いてなかったけど、10月に転職したものの、ディ〜プラ〜ニングもよくわからんのでこれをやっていた。HW詳細は公開されてないのであまり面白い話題は書けないけど、嬉しいので記録しておく。

(twitterにしか書いてなかったけど)転職前は https://www.pezy.co.jp/news/news20171213/ これをやっていて似たようなことばっかやってますね…

https://twitter.com/tanakmura/status/923517981610729473


PEZYの実装は今はどうなっているか知らないけど、大きく変わってなければ、今も僕が最後10%チューニングしたプログラムが残ってるはずで、ランク1位のプログラムとランク3位のプログラム両方僕の手が入ってる可能性がある。

https://www.top500.org/lists/green500/2020/06/

まあ書ける範囲で書くと今回はRoCEに触れる機会があったのでよかったかな…ちなみに、RoCEはソフトウェア的に見たらIBとほぼ同じだった。




今回もdgemmは人が書いたやつ使ったのでまたdgemmは書けなかった…

https://twitter.com/higucheese_/status/1275079017465442305

私もdgemmツメツメしたかった…(けど、ひぐち〜ずさんの実装は僕の目標性能より大分良かったので、僕がやらなくて正解だった)



去年の10月はマジでもう二度と仕事なんかしないぐらいの気持ちだったのだけど、まあHPLを書くことで元気が出て楽しく作業できた。

PIC

https://tanakamura.github.io/pllp/docs/pic_pie.html

PIC の説明を書いた。

うやむやにしたけど、32bit でもラベルとの相対位置をオペランドにいれてPCと加算すればGOT参照しなくてもアドレス取れる気がするんだけど、そうなってない理由はよくわからん。(メモリ参照が一回減らせる)