久しぶりに大学の研究に時間を使った。キーンのサンダルスニーカー受け取りまで作業部屋で趣味の方の作業をして9時過ぎにカフェへ行くと席待ちの列。待ち人数を見ると二桁いっているけど実際並んでいるのは一桁なので待ち疲れた人が結構いたんだろうな。モニターのないワークスペースで作業。午後7時過ぎまで大学研究を中心に作業した。
プロセッサのコア部分はフレームが完成していてそのコアと外部メモリの間に在るインターフェース回路の開発で止まっていた。ログを見ると8月第3週が最後の更新だったので2週間大学研究してなかった。中々手をつけられなかった原因の一つはそのインターフェース回路がコアの部分と比較して複雑なことをしているので全体の仕組みは出来てるけど、個々のモジュールの機能やタイミングの確認が面倒というのがあった。
主要なモジュールについて入出力ポートの役割を確認してサブモジュール間の接続を確認。タイミングも確認して間違いを修正、不要な論理演算を削除。ポインターキャッシュ周りが記憶が薄くなっていて思い出しながらになった。結構間違いがあった。レジスタ相当のタイミングは問題なかったけど、条件式が冗長だったり。それとタグタグと書き込みポートは分かるけどアドレスポート、もしくはそのアドレスの役割何に対応しているか忘れてしまっていてそこの振り返りに時間がかかった。
思い出して修正。インターフェイス回路とコアの間の回路にバッファを設けたいと思ってそのままだったので実装した。バッファサイズは即値で書いたので後でパッケージ内にパラメータ定義しておく。インターフェイスフェイス回路のトップモジュール、リネーマー、マッピング、コミット以外は修正して出来たと思う。明日はリネーマー、マッピング、コミットモジュールをタイミングも含め確認して修正が必要であれば修正する。最低限ここまでやる。
集中が切れて大学研究終了。ブランチを切ってパブリッシュしておいた。その後は趣味の方の作業。ChatGPT4のCode Interpretertでコーディング支援してもらいながらプログラムを書いている。前も書いたように9月の更新で長期記憶がかなり短くなっているので、今まで使っていたチャットをやめて新規にチャットを開始。開始にあたって、これから何をするのか、現状のディレクトリ構成と各ディレクトリのファイル名とその概要を入力。
これを「初期化」と定義して後で何度でも参照できるようにするため強く記憶するように指示したら、「強く記憶する」との返答。「強く記憶する」でアテンション効果がある模様。次に各ファイル(関数)のコードを入力するから後で何度でも参照できるように強く記憶するように指示。了解の返答があったので逐次入力。コードだけだとたまに英語でか返答があるので念のために後で繰り返し参照できるように強く記憶することを指示して了承を確認してから次の関数を入力。
入力文字数制限以上のコードはファイルの上から下への順番で複数回に渡ってこれから入力する事、入力間の関係が分かるように数行冗長にしている事を伝えて了承を確認後入力。その後で過去大変だった(時間がかかった)関数を指摘して、GPTが気になると指摘している部分の説明、各ファイルについての進捗の説明をした。で現在バグ取りしている部分の検証前に、引数の説明、問題の関数の内部動作の説明、をしておいてその上でバグの発生する条件を入力したところで今日の作業は終了。
「強い記憶」がどれだけ機能するのか確認していないが取り敢えず今まで使っていたチャットはカオスになっていたのでGPTが理解できなくなっていただろうし、作業環境(チャット)を一度リセットする目的で作業前の事前準備をして終わった。GPTは事前準備を丁寧にした分だけ理解が早く推定も精度が良いので強くお勧め。