せっかく東京に行くので午前は高島屋で靴のメンテしてもらって、昼飯は会場が飲食可能かわからなかったので会場のビル(東京日本橋タワー)の広場にいってみたらしっかり飲食禁止って書いてあった。

P_20240602_115238

どこか公園がないかなと探したけど座って食べられるような公園らしいところはなさそうで、結局東京駅前のTOKYO TORCHの工事現場となりの広場で食べた。

P_20240602_120858P_20240602_121121P_20240602_122405P_20240602_122437P_20240602_122557

時間になったので会場入りしたが、エントランスがやたらでかいな。さすが高層ビル。

P_20240602_125039P_20240602_125154P_20240602_125309P_20240602_125333P_20240602_125409P_20240602_125428P_20240602_125550P_20240602_125604P_20240602_125612P_20240602_125731P_20240602_125742P_20240602_125748P_20240602_130351P_20240602_131426

けっこう若者率たかいな。

Brainfuckが動くCPUを作りたい! / @chizu_potato

13:16

  • fpgaでbrainfuckつくったひとは会場ひ一人
  • 8つの命令
  • C言語の授業でポインタは紙に書くとわかりやすい→brainfuckのほうがわかりやすい、でもりあがる
  • 内部バスは2本
  • [で]をさがすのはNOPで対応
  • [はスタックにプッシュ
  • ネストの深さも管理しないといけない
  • シミュレータ上では動いた
  • マルシプレクサをトライステートバッファに変えた
  • RAMはハイインピーダンスになって挙動がおかしくなったり。
  • 焼けたRAMをさわってやけどした(労災)
  • 再現せず。電源ノイズもあるかも。
  • 74HCシリーズは生産が終わりつつある
  • 1clkでread+alu+writeをするようになってたがタイミングチャートの管理がたいへんになった。
  • マイクロコードにするとよかったかも。
  • 寮は電熱器がつかえない→ハンダゴテもつかえない

13:32

  • Q: SRAMのシミュレータは?
  • A: 非同期型IN/OUTが瞬時にきりかわる理想的な素子をつかった。実物で考慮すべきものがわからなかった。
  • Q: DIP
  • A: 基盤をつくるかんけいから。(変換基盤をつかうのもあり)
  • Q: プログラムは文字コード?
  • A: 3bit
  • Q: μOPにしたらどうなる?
  • A: 1clkごとにread,alu,writeにわけるとよかったかなと。
  • Q: 74HC,74HCTどちら?
  • A: 74HC (パラレルのRAMはTTL想定なので74HCTをつかわないと入出力マージンがたりなさそう)
  • Q: SRAMは若松通称にいっぱいある。

13:42

P_20240602_133712

3進CPUを自作する!!! / @rikeden_net

13:43

  • trit: 一桁
  • FPGAは高レイヤ
  • 平衡3進数: 0,1,2ではなくて-1,0,+1をつかう -1は1バーがおおいがここでは#とかく。
  • 10進数は符号つき絶対値
  • 平衡3進数ならマイナスは各桁の符号をいれかえるだけ。
  • 最上位の値で符号がわかる。
  • 切り捨てるだけで丸めになる。
  • 3進NAND
  • ANDはmin、ORはmax、とかんがえらえる
  • 2進数NANDに抵抗をついかするだけで実現できるが、出力抵抗が大きい・静的な消費電力がある。
  • half addr 16Tr
  • 1tritのFFはflip-flap-flop FFF
  • 2つのラッチをつなぐかたち binaryとおなじ
  • 試作すると値が壊れる誤動作→出力インピーダンスがたかいのがもんだいか?
  • アナログ的なことを考えないといけないのは大変
  • 抵抗をつかわないバッファ回路をつかうように
  • 1trit CPU
    • 1trit reg *2
    • ALU: nand nor add
    • MUX

14:08

  • Q: 3進数で計算できることにきづいたのはいつ?
  • A: 昔から2進数の必然性はないなとおもっていた
  • Q: 先行研究は?
  • A: 昔にソ連がつくっていた。18桁くらい。3進数用のトランジスタをつかってるものもあったり(offにしても弱く出力するような)
  • Q: 3進数のRAM/ROMはどうする?
  • A: 妥協するつもり(市販品でエミュレート)。5tritが8bit相当なのでそこをめざしている。
  • Q: NANDの出力抵抗を減らす構成は考えているか?
  • A: Trが少ない方を優先している。fan-outがおおきくなったときは考えないといけないかも。

14:15

休憩

P_20240602_142115P_20240602_142044

(産業の)米づくり環境ご紹介 / @taichi600730

14:30

  • RICE概要
    • RV31IM
    • 4stage pipeline fetch decode execute writeback
    • systemveriog
  • デコーダ: 煩雑なので自動生成するように
  • CSR: control and satte registersP_20240602_145306
    • 簡単だけど注意力が必要→自動生成が吉
  • 検証環境 KonataP_20240602_144454
    • 東大塩谷先生のパイプライン可視化ツール
    • ログをくわせると表示してくれる
    • 傾きがゆるくなるとパイプラインストール
    • はぬけになると分岐でflush
    • 原因命令がすぐわかる
  • 検証環境 ISS
    • instruction set simulator
    • SPIKE
    • Whisper (こちらを採用)
      • systemverilogとのブリッジ環境が用意されている
  • 検証環境 riscv-tests
    • ユニットテスト
      • 致命的なエラーは発見できる
    • ベンチマークテスト
      • dhrystone で分岐予測の効果をみたり
    • プログラムの完走は特定のメモリに書き込みで判定している

14:51

  • Q: CSRの記述がRubyとは?
  • A: CSRをRubyのプログラムとして記述している。
  • Q: systemverilogのシミュレータはなにをつかった?
  • A: VCSをつかった。オープンソースのおすすめはつかったことがないのでない。

14:56

TW4

14:57

  • CPUに特権命令・割り込みをどうのっけるか
  • tokken warikomi 4bitl
  • モード2bit アドレス4bit = 物理アドレス6bit
  • 割り込みでレジスタ退避は?
  • ARMを参考にしてモードごとに独立した汎用レジスタがある
  • ALUはデコードも担当している
  • SWAP命令でモード間でレジスタswap
  • 例外処理中の例外はダブルフォールトで停止する
  • 複数のIRQのあつかい
    • デイジーチェーン
    • IRQはORになっている
    • 割り込み許可信号がつたわっていく

15:15

  • Q: ユーザーモードから特権モードにジャンプできてセキュリティ上問題がないか?
  • A: ジャンプできるアドレスが制限されている
  • Q: どの割り込みかどうやって判別するか?
  • A: IN命令でスイッチの状態をみることで対応
  • Q: 特権命令はユーザーモードで実行できないようになっている?
  • A: 回路規模的にはDIP部品でできるのではないかとおもっている。

15:21

交流会

P_20240602_152523

展示をみてまわる。

  • 3進CPUでクロックは2進なのは3進のメリットがおもいつかないのと+1,0,-1で0をGNDにすると扱いにくいからとのこと。
  • リレーコンピュータはいまのところ耐久性の問題はでてないが、時計にしてるやつはそろそろ1年たって寿命くるかも、とのこと。
  • リレーは論理素子としてはXORが基本になる。(端子の両端の電圧が異なるときだけON)

LT

Veryl

P_20240602_160429P_20240602_160707P_20240602_161048P_20240602_161113P_20240602_161428

Chisel6

P_20240602_161543P_20240602_161822

RISC-V CPUデバッグ手法

P_20240602_162140P_20240602_162452P_20240602_162703

Next Micon IDE

P_20240602_162827

汎用ロジックICで自作計算機

P_20240602_163337P_20240602_163425