2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

カテゴリー

ブログパーツ

無料ブログはココログ

« 2015年4月 | トップページ | 2015年7月 »

2015年5月

2015年5月24日 (日)

【昔語り7】コアメモリのメモリイ

アキバ昔語り

60年代の電子計算機と言えば、主記憶装置には「コアメモリ」を使うのが一般的でした。仕組みについては詳しくは説明しませんが、フェライトコアの磁気ヒステリシス特性をうまく使ったもので、高速に読み書きができるため、電子計算機の高速化に大きく貢献した装置です。

70年代に入ってもコアメモリは一線で活躍、アマチュアとしても興味があるものでした。もっとも数千個のコアを駆動するための回路は膨大で、また、高速パルス技術を使うため、調整には最低でも20MHzくらいのオシロスコープなんかが必要で、アマチュア向きではありませんでした。

秋葉原では時々、コアメモリのジャンクが出るときがありました。大げさなモノでは、恒温槽に入った小型冷蔵庫みたいなメモリユニットを見たことがあります。トランジスタやらパルストランスやらがごっそりついていて、買ったとしても手の付けようがなさそうでした。もう少しお手頃のコアだけがついたメモリプレーン一枚というのもあり、1974年くらいに1024ビットのメモリプレーンを買ったことがあります。1000円くらいだったと思います。なんとか使えないかなと色々考えましたが、結局どうにもなりませんでした。

これは最近ヤフオクで手に入れたとてもシンプルなコアメモリプレーンです。

Dscn3046_2

二系統に分かれていて、都合288bitが記憶できるようになっています。構成から考えて、初期の電卓のレジスタに使われていたのではないかと思われます。コアの大きさは2mmくらいでしょうか。コアを拡大するとこんな風になっています。

Core

コアに縦横に通っている赤い線がXY軸の駆動ラインで、ナナメに通っている金色の線がセンス線です。1を書き込むには、XY各1本の駆動線に磁気コアが磁化される電流の半分の電流パルスを送ります。マトリックスの交点のコアだけが二つのパルスが重なって、磁化されるだけの磁界を創り出すという訳です。読み出すには同じXY駆動線に逆方向の電流パルスを送れば、反対の極性に磁化されるので、コアに大きな磁界の変化が起り、センス線に電流が発生するという訳です。もちろん、このとき記憶は破壊されますので、読み出し後、すぐに再書き込みする必要があります。

今回はこれを試してみることにしました。実験回路はこんなものです。

Photo

XY駆動線のうち一本だけを使い、押しボタンで方向の異なる電流をながせるようにします。マトリックスで選択するのではなく、一本だけにコアを磁化するのに適当な電流を流す訳です。電流は制限抵抗で調整します。電源は簡単に3Vを乾電池で用意しました。金色のセンス線は10Kくらいの抵抗でターミネートした上で、オシロに入れ、波形を観測します。ただし、この場合はその軸に通っている十数個のコアが同じように反応することになります。従ってセンス電圧はコア1個よりずっと大きくなることが考えられますが、まあ今回は実験なのでこれでよしとします。

回路はブレットボードで簡単に用意しました。

Dscn3034

電流はどれくらい流せばいいのかわかりません。最初は100Ωを入れてみました。電流は30mAくらいです。ボタンを押すたびに100nsくらいの極めて短いパルスが観測されますが、1→0を書き込んでも1→1を書き込んでも、短いパルスの大きさはランダムに変化するだけです。そこで制限抵抗を徐々に小さくしていきました。5Ωにしたときに波形に変化がでました。電流で言うと600mAくらいです。1を書き込んで置いて、0を書き込んだ(コアを読み出した)波形です。

Dscn3043

パルス幅3us、ピーク50mVくらいのはっきりしたパルスが観測されています。コア十数個が反転した電圧なので、コア1個ならもっと小さな電圧になると思います。下は0を書き込んでおいて、0を書き込んだ(コアを読み出した)時の波形ですから、波形が明らかに違うのがわかるでしょう。短いパルスはインダクタで簡単にブロックできるし、読み出し信号のパルス幅がわかっているので、読み出しアンプは現在なら比較的簡単に作れます。

Dscn3040

教科書通りに動作することが確認できて、満足です。でも、これを使ったメモリシステムを作る気にはなりません。288bitのコアをドライブするには、最低でも68個ものトランジスタが必要です。実験だけにとどめて置こうと思います。

2015年5月 5日 (火)

ShakeyのプログラムをCoIDEに持ち込む

管理人のページ:

前回サーボのタイミングがずれていたShakeyの制御プログラムが、ようやくまともに動くようになりました。結果的にsystem_stm32f4xx.cでのPLLの設定を下記に変更しました。

#define PLL_M      25
#define PLL_N      336

もともとのプログラムはTrueSTUDIOで作成したもので、これだとこうなっているようです。TrueSTUDIOから乗り換えてタイマー周りの動作がおかしい場合は、これをチェックしてみるとよさそうです。外付けクリスタルが8MHzなのにPLL_Mの設定値がなんとなく変ですが、これで動くようにしてしまっているので、このままにします。

それから、プロジェクトファイルが消える件ですが、安定版としては最新の1.7.8をインストールしたところ、それ以来起こってません。念のため.coprojeの拡張子がつくファイルのコピーはまめに作ってはいますが、いまのところ出番は無いようです。

【後日追加】残念ながらプロジェクトファイルはやっぱり消えます。コピーを作っておくのが無難です。

« 2015年4月 | トップページ | 2015年7月 »