shigobuのアイコン画像
shigobu 2022年02月05日作成 © CC BY 4+
セットアップや使用方法 セットアップや使用方法 閲覧数 1401
shigobu 2022年02月05日作成 © CC BY 4+ セットアップや使用方法 セットアップや使用方法 閲覧数 1401

TD4オーバークロック MHz級

前回のあらすじ

「CPUの創りかた」のTD4を作った
これには、オーバークロックのために、クロックの外部入力端子を搭載した。
とりあえず、100kHzまで動作することを確認した。

そして、MHzのクロック周波数に挑戦するため、オシレータを作成しました。
30MHzまで出せるオシレータの作成

今回は、前回作成したオシレータを使用しオーバークロックを行います。

オーバークロック

早速、オーバークロックを行います。
実験方法は前回と同じで、早押しボタンプログラムを使用します。

また、今回は1MHzから初めて1MHzづつ増やします。

予想

書籍には、「最大動作周波数は3MHz程度」と書いてありましたが、なんとなくもっと早く動くのでは無いかと思います。プリント基板を使用していますし、なんとなくノイズにも強い気がします。なので、10MHzくらいまで動作するのではと思いました。

クロック周波数を上げると、ジャンプ命令が効かなくなり、ROMのLEDがすべて点灯するようになると思います。

結果

ここに動画が表示されます

クロック周波数 結果
1MHz 正常
2MHz 正常
3MHz 正常
4MHz ボタンを押しても反応せず。異常。

3MHzまでは、正常に動作しているようです。すくなくとも、早押しボタンプログラムに関しては。
4MHzは不思議な動きになりました。一番右のボタンは正常っぽいですが、他のボタンは反応しませんでした。

やはり、書籍に書いてあることは正しかったようです。適当なことを言うものではありませんね。
ジャンプ命令が効かなくなる前に、ボタンが反応しないという現象になりました。ボタンが反応しないだけで、ジャンプ命令は効いているみたいです。

考察

ボタンが反応しない理由はおそらく、キャリーフラグがJNC命令に届く前にクロックが来てるのだと思います。
一番右のボタンが正常に動作している理由はわかりません。「1111+0001」と「1111+0010」の計算速度が異なるのでしょうか?

まとめ

実験結果は、とてもおもしろい結果になりました。なぜこうなるのか気になりますが、この結果が面白くて満足もしています。オシロスコープがあれば詳しく調査することもできると思いますが、持っていません。また、速度のボトルネックになっているROM部分を改造すれば、もっと高速に動作させることができそうです。
しかし、他にも作りたい実用的なものも有るので、TD4で遊ぶのはとりあえず一区切りにしようと思います。

shigobuのアイコン画像
arduinoを触ってから、マイコンを使った電子工作に目覚めました。
  • shigobu さんが 2022/02/05 に 編集 をしました。 (メッセージ: 初版)
  • Opening
    uchanのアイコン画像 uchan 2022/02/16

    「1111+0001」と「1111+0010」の計算速度が異なるのでしょうか?

    全然詳しく見てないのですが、ぱっと考えると確かにそうかもしれませんね。
    全加算器は最下位ビットから最上位ビットへと順に繰り上がりが進行していくためです。

    shigobuのアイコン画像 shigobu 2022/02/16

    全加算器は最下位ビットから最上位ビットへと順に繰り上がりが進行していくためです。

    確かに!!
    それが原因で計算速度が異なるのかもしれません。

    1 件の返信が折りたたまれています
ログインしてコメントを投稿する