カテゴリー
学術

マイコンAIの数学02

 少しブール代数について調べます。ブール代数とは何かはここでは扱わずその応用を勉強します。

ブール代数 ブール代数での方程式 山田 欽一 1964

ブール微分・偏微分 DAS S R ,  SRIMANI P K ,  DATTA C R ,  MANDAL K, Conf Rec Asilomar Conf Circuits Syst Comput 1976

ブール積分 TUCKER J H,  TAPIA M A,  BENNETT A W, Applied Mathematics and Computation 1988

ネットワーク ブーリアンネットワークの固定点数の期待値の定理 森 史,望月 敦史 2017

 難しそうなタイトルが並んでいます。でも論理演算だけで言い換えればTTLだけで演算がどこまでできるか確認しておくことも8ビットマイコンでAIを作る上で必要なことと考えます。結果どれも使えなくてもきっと血となり肉となるでしょう。

カテゴリー
学術

2値演算しかできないデジタル半導体

に多量の実数計算をさせる今のAIシステムに未来があるとは思えません。

カテゴリー
学術

ブール代数内での数学を広げて欲しい

 数学の様々な分野をブール代数を条件とした時にどうなるか調べないといけない。


2023.06.08

ブール多次元論理というのがあったのでChatGPTに聞いてみた。

User
ブール多次元論理とは何か解りますか。

ChatGPT
はい、ブール多次元論理についてお答えします。

ブール多次元論理(Boolean Multivalue Logic)は、通常のブール論理(二値論理)を拡張したものです。通常のブール論理では、論理値は真(1)または偽(0)の2つの値を取りますが、ブール多次元論理では、論理値がより多くの値を取ることができます。

ブール多次元論理では、各論理変数が複数の値を取ることができます。具体的には、各変数がn個の値を持つことができます。これはn進数の各桁を表現することと同じです。例えば、2進数では各桁が0または1の2つの値を持ちますが、3進数では各桁が0、1、または2の3つの値を持ちます。

ブール多次元論理は、情報表現や回路設計などの分野で使用されます。特に、量子コンピュータや多値論理回路の設計において重要です。ブール多次元論理では、通常のブール演算(AND、OR、NOTなど)を拡張し、多次元の論理演算を定義することができます。

例えば、2進数のブール多次元論理では、各変数が0または1の値を取りますが、3進数の場合は0、1、または2の値を取ります。そのため、通常のブール演算に加えて、例えば3進数の加算演算子を定義することができます。

以上がブール多次元論理の概要です。ブール多次元論理は、論理の拡張性を提供し、特定の応用分野で有用なツールとなります。

カテゴリー
学術

マイコンAIの数学01

 8ビットマイコンを使ったAIを作る上で必要な数学を調べます。知らないところで基礎を固めていてくれている数学ですが、まだ実用化できていないAIを作る時に直接役に立つ数学の分野が新たに見つかるかもしれません。

数値計算

誤差 実数を使ったり無限に繰り返す計算を途中で打ち切ったりすると誤差が出ます。コンピュータは有限の2値の演算しかできないので誤差を正しく管理しないと誤った結果を導いてしまいます。

関数の近似 有限個のデータから近い値を出力する関数を作る考え方は使えそうです。データから特徴を抽出しその特徴さえ覚えていればデータを覚えていなくても再現できるというのは自分の頭にもありそうな気がします。

高精度計算 一つの変数では表現できる値の範囲は少ないですが一つの値を複数の変数を使って表現できれば値の範囲を拡げることができます。

代数方程式 4次方程式までは解法を使い5次方程式以降は近似解を求めるようにします。

数値積分 2値演算を前提にした場合、補間しないか単純な補間であれば使えそうです。

非線形方程式 解析的に扱えないので数値計算に向かないですが世界は非線形満ちています。どのように扱ったらよいかより詳細に調べる必要があります。

連立一次方程式 方程式を解くような仕組みが人工知能に有用かどうか考えると複数の条件から結論(解)を導き出す時に類似しているかもしれません。

常微分方程式 脳の動作を模写するならば必ず必要になるでしょう。

偏微分方程式 脳を模写した時はきっと偏微分だらけのプログラムになると思います。でも8ビットCPUでどう扱ったらよいのでしょうか。ブール代数における偏微分方程式という分野はあるのでしょうか。

行列計算 多次元の計算を行うには配列を作ってその配列に対して計算を実行します。

カテゴリー
学術

波形測定器7

 ここで波形測定器をまとめます。普通はオシロスコープやロジックアナライザなどで波形を確認しながらハードウェアやソフトウェアのデバッグすると思いますが、手作りの装置でできることを考ます。

発振器

NE555可変発振器

測定器側の状態をや被測定回路の特性を測る時に必要です。

増幅器

ステレオ差動増幅器出力電圧右

被測定回路と測定回路を分離するのに必要です。

表示器

16ビットバイナリカウンタ

バー状にLEDを配置しているのでデジタル情報を表示していても点灯しているLEDの長さを視覚的に捉えられるのでアナログ表示のように見えます。

8ビットディスプレイ1

7-Segment LEDであれば直接バイナリデータを読めます。

リレー式AND回路

リレーで作った論理回路

数Hzの信号しか扱えませんがリレー式の論理回路を作りました。配線をちょっと変えればORでもNANDにでも変えられます。活躍する機会はあるのでしょうか。

テスター

MT-4095

いつもありがとう
マザーツール。

Tester-TC1

重宝してます。

電源

電池ボックス

電池ボックスは色々な直流をすぐに取り出せてとても便利です。余計な回路もないので他に影響が出ません。

大袈裟な代物になりましたが5Vの両電源、+12Vが二つ取り出せます。アナログなDCーDCコンバータです。

ソフトウェア

Audacityはフリーソフトです。可聴範囲ですが入力信号を絵にしてくれます。いつでも忠実に絵を描いてはくれませんが、データが保存できるところが優れものです。

カテゴリー
学術

16ビットバイナリカウンタと8ビットディスプレイ

 LEDを16個並べて点灯しているところを1としそれを頭の中で瞬時に16進数に換算するのが大変なので、7-Segment LEDを追加しました。SN74LS249Nでバイナリデータをカソードコモンの7-Segment用に変換しています。NE555の発振周波数が低いと桁の下の方がカウントアップし周波数が高くなるにつれ桁の上の数字がカウントアップします。予想通りの動きでした。

16ビットバイナリカウンタと8ビットディスプレイ
16ビットバイナリカウンタと8ビットディスプレイ
NE555可変発振器
NE555可変発振器

 NE555に可変抵抗器とレンジ選択用のコンデンサを繋ぎ数Hzから数百kHzまで矩形波を発振できます。

16ビットバイナリカウンタ
16ビットバイナリカウンタ

 SN74LS193Nを4個並べ一つにつきLEDを4個接続して計16個で16ビットのバイナリを表示できます。

8ビットディスプレイ1
8ビットディスプレイ1

 最初ネットで7-Segment LEDを表示する方法を調べていたのですが74LS47や48、あるいは247とかが見つかりました。回路図も結構あったのですがアノードコモンばかりでこのカソードコモン用の249をどうしたら良いかわかりませんでした。

 実験をしたりデータシート読んだりして解ったのですがプラス側電源ー抵抗ーSegment LEDーGNDとし抵抗とSegment LEDの間に249のOUTを接続したら思い通りに動作しました。

 多分ですが249の出力は点灯したいSegment LEDをONする信号を出すのではなく、何もしないと全部点灯している状態に対してOFFにしたいSegment LEDをGNDに落として消灯する信号を出すロジックICだと思います。

8ビットディスプレイ2
8ビットディスプレイ2

 16ビットなので同じものをもう一つ作りました。

 簡単な表示しかできませんがデジタル信号を表示するツールが揃いました。

カテゴリー
学術

2SK161GR

2SK161GR
2SK161GR
2SK161GR
2SK161GR

ChatGPTに聞いてみた。

User
2SK161GRは何ですか。

ChatGPT
2SK161GRは、低ノイズMOSFET(金属酸化物半導体素子)の1つで、主にオーディオ用途に使用されます。このMOSFETは、電源回路、アンプ回路、プリアンプ回路など、さまざまなアプリケーションに適しています。

2SK161GRは、グリーンパッケージで提供されており、オン抵抗が約10Ω、最大ドレインソース電圧が40V、最大連続ドレイン電流が10mA、最大パルスドレイン電流が50mAとなっています。また、高いゲート抵抗と低い入力容量を持ち、低ノイズで高利得のアンプ回路に適しています。

なお、2SK161GRは、欠品や絶版になっている可能性があり、代替品や類似品を探す必要があるかもしれません。

カテゴリー
学術

2SK364GR

2SK364GR
2SK364GR
2SK364GR
2SK364GR

ChatGPTに聞いてみた。

User
2SK364GRは何ですか。

ChatGPT
2SK364GRは、低雑音MOSFET(金属酸化物半導体素子)の1つで、IDSSが2.5mA〜7.5mAの範囲で調整可能なタイプです。このMOSFETは、音響機器や電源回路、アンプ回路など、さまざまな電子回路で使用されます。

2SK364GRは、グリーンパッケージで提供されており、オン抵抗が約10Ω、最大ドレインソース電圧が25V、最大連続ドレイン電流が50mA、最大パルスドレイン電流が200mAとなっています。また、高いゲート抵抗と低い入力容量を持ち、低ノイズで高利得のアンプ回路に適しています。

なお、2SK364GRは、欠品や絶版になっている可能性があり、代替品や類似品を探す必要があるかもしれません。

カテゴリー
学術

SN74LS249N

SN74LS249N
SN74LS249N

ChatGPTに聞いてみた。

User
SN74LS249Nは何ですか。

ChatGPT
SN74LS249Nは、8ビットのマルチプレクサ(MUX)/ デマルチプレクサ(DEMUX)IC(集積回路)です。Muxとは、複数の入力から1つの出力を選択する機能を持った回路のことであり、Demuxとは逆に1つの入力から複数の出力を選択する機能を持った回路のことです。

このICは、3つの制御端子を介して8つの入力を選択し、1つの出力にマルチプレックスすることができます。制御端子には、3つのビットで表される2進数の信号が入力されます。これにより、8つの入力信号のうちどれを選択するかが決定されます。

また、このICは、1つの入力信号を8つの出力信号にデマルチプレクスすることもできます。制御端子の状態に応じて、1つの入力信号が8つの出力信号のうちどれか1つに選択されます。

SN74LS249Nは、LSシリーズのTTLテクノロジを採用しており、高速で信頼性が高く、広く使用されているICの1つです。このICは、コンピュータや通信機器、計測器、音声機器など、さまざまなアプリケーションに使用されます。例えば、複数のデータ信号を処理するために使用されることがあります。

カテゴリー
学術

デジタル回路の基礎

デジタル回路の基礎
デジタル回路の基礎

 前半は主に論理演算の基本が解説されています。後半になると論理回路を組み合わせCPUを構成している基本的な回路であるカウンタ、レジスタ、演算、エンコーダ、デコーダ、マルチプレクサ、デマルチプレクサを説明しています。論理回路からCPUまでをつなぐ流れを勉強できました。

カテゴリー
学術

波形測定器6

 測定器を製作する過程で発振器が必要になりNE555で周波数可変発振器を作りました。せっかく発振器を作ったのだからカウンタも整備しました。LEDを16個並べ74LS193を4個使った16ビットバイナリカウンタです。

16ビットバイナリカウンタ
16ビットバイナリカウンタ
発振器とカウント部
発振器とカウント部
カウント表示部
カウント表示部

 テスターで周波数を見ながらカウントの様子を観察すると高い周波数になるに従い右側の明滅が目視でき、低い周波数になるに従い左側の明滅が目視できるようになります。数十Hzを超えるとLEDの明滅は目視できなくなります。横に並べたLEDの左から右に一つ進む度に周期が1/2になるので16ビットもあると数百kHzであっても目視できるようになります。

 カウンタは周波数を測定する目的ではないので余談でしたが原始的な16ビットディスプレができました。構造が単純なのでそこかしこで活躍してくれるでしょう。

カテゴリー
学術

コンピュータの仕組み05

変圧器
変圧器

 ドーナツのように穴の空いた鉄に銅線を2箇所巻き付けます。片方は巻き数を多くし、もう片方はそれより少なくします。巻き数の多い方に発電した電気を流します。発電所は交流の電気を作っていますので鉄の部分は極性が交互に変わる電磁石になります。すると同じ鉄に巻いたもう片方の電線に磁力が交互に加わるので発電が起きて電気が出てきます。出す方の電線の巻き数を少なくしておけば電圧が低くなります。

 電圧を変えるところには必ずこのような変圧器が使われています。省電力であれば半導体に置き換えることができるようになってきましたが大電力の変圧はまだこの変圧器が活躍しています。

 ここでも電気を送るときのように損が出ます。高電圧をコイルにかけて鉄を電磁石にしもう一つのコイルでその電磁石からまた発電する。また発電しなければならないため損失が出てしまいます。

カテゴリー
学術

コンピュータの仕組み04

送電
送電

 発電所で電気をたくさん作りあちらこちら利用する所へ送るにはただ電線で繋げばよいわけではないです。効率を良くするために発電所では大きな電力の電気を作っていますが利用する側ではそんなに大きい電気は必要ないからです。

 最初から小さい電気を作って送る方法もありますが電線を流れていく過程で発熱して使ってもいないのに減ってしまいます。大きな電気、言い換えると高電圧の電気を発電所から出して利用するところで電圧を下げて使うと効率が良くなります。

 電線に電流が流れると発熱して損してしまいます。なるべく電流を流さないようにするためには圧だけかけて使う所だけ電流が流れるようにします。

 国土の広い国では発電所から出る電気の電圧をすごく高くしています。日本では数万ボルトから数千ボルトです。家の近くの変電所で数百ボルトまで落とし更に電柱で100から200ボルトにしています。電流を流さない、これが電気を無駄にしない大事な方法です。が、電流が流れないと電気製品が動きません。この矛盾に折り合いをつけて電気を利用しています。

カテゴリー
学術

コンピュータの仕組み03

お湯を沸かす
お湯を沸かす

 コイルの近くで磁石を回転させると電気ができますが、その磁石を回転するためには色々な方法があります。人力以外で昔から回転するものといえば風車、水車でしょうか。

 水車は水の流れる処に羽の付いた軸を入れれば軸が回転するのでそれに磁石を付けて近くにコイルを置けば電気が生まれます。これを水力発電と言います。ダムを作って水の流れを調整すれば回転を制御できるので安定した電気を作ることができます。

 風車は風の流れる処に羽の付いた軸を入れれば軸が回転するのでそれに磁石を付けて近くにコイルを置けば電気が生まれます。風は水と違い溜めることができません。強めたり弱めたりすることもできません。風力発電は安定して電気を作ることができないのです。

 そこで考えたのがお湯を沸かす方法です。口の狭い容器でお湯を沸かせば口から湯気が出ます。火を強めれば湯気の勢いが増し、火を弱めれば勢いが弱くなります。湯気が出るところに羽根のついた軸を置けば回転するので電気が生まれます。丁度いい電気の量になるように火を強めたり弱めたりすれば安定した電気を得ることができます。

 石炭や石油、ガスを燃やしてお湯を沸かせば火力発電、ウランの反応でお湯を沸かせば原子力発電となります。

カテゴリー
学術

コンピュータの仕組み02

発電
発電

 銅線をグルグル巻いてコイルを作り、その近くで磁石をグルグル回します。回転している磁石は、コイルから見るとSがドンドン近ついてきてそれから離れていきます。そうしたら今度はNがドンドン近づいてそれから離れていきます。それを繰り返すとコイルの両端に電気ができます。

 磁石をグルグル回転させると電気ができる、その電気を使って電気製品が動く訳です。太陽光発電は全く違う原理ですが私たちが普段使っている電気のほとんどは磁石をグルグル回して作っています。

カテゴリー
学術

コンピュータの仕組み01

コンピュータは電気で動く
コンピュータは電気で動く

 デジタル回路の基礎の本を読んでいてなぜコンピュータが動くのかをまとめてみようと思いました。どのようにして動いているかが解れば今後の改良を思いつくかもしれません。

 どこから紐解くかを考えるとスタートを極端に前の段階から始めたいと思います。電力の問題がコンピュータの世界でも重要になってきました。なのでコンピュータを動かすために必要な電気を作るところから始めます。

カテゴリー
学術

デジタル電子回路

デジタル電子回路
デジタル電子回路

 アナログからデジタルへ移行していく様子がわかります。よくありそうなトランジスタの回路が実はアナログ回路ではなくデジタル処理を目的とした回路なのだと。ダイオードやトランジスタを使った回路図と電流、電圧の数式や解説、そして論理演算までがつながっています。この本に書いてあることこそがハードウェアとソフトウェアの真の境界です。

標準形TTL回路図
標準形TTL回路図

 アナログ回路の知識のある方はこの回路を見てどう思いますか。この本に載っているこの回路図がソフトとハードの境界です。

カテゴリー
学術

マイコン人工知能

マイコン人工知能
マイコン人工知能

 マイコンで人工知能を作れるなんて凄いと思います。ただこの「マイコン」ですが microprocessor でもなければ microcontroller でもありません。 my computer で basic を使って当時のAIにあたるようなプログラムを実験しています。マイコンの定義が揺れているので紛らわしいです。

 古い時代なので規模の小さいプログラムが紹介されています。今の「マイコン」であれば十分に動作させることができるでしょう。マイコン一つを一つのセルとし大規模に並列化したときに参考になるかもしれません。

カテゴリー
学術

人間の思考を人間が定義できない

 まるで不完全性定理のようですがAIを作るために人間の思考を人間が定義しようとしてもそれは永遠にできない気がします。AI開発のアプローチは別にあると思う。

 

カテゴリー
学術

AIを作ってみよう11

電圧測定
電圧測定

 いくら安価な部品で構築できたとしても運用に費用がかかっては意味がありません。実際の事業として考えると人件費や何やらと運用費はかかりますが、ここでは消費電力について考えます。一般にCPUの消費電力は、


P = fptCV 2 


で表されます。f は動作周波数,、pt はスイッチング確率, C は負荷容量、V は電源電圧です。

 動作周波数を下げる 計算量を減らすことにつながるので動作周波数を下げないで考えます。

 スイッチング確率を減らす 目的の計算以外をさせないようなハードウェア、ソフトウェア設計が可能です。

 負荷容量を減らす いつか1チップ内に集積できれば容量を減らせるでしょう。

 電源電圧を下げる 当面5Vでいつか1〜3.3Vで制御できます。

 動作周波数、スイッチング確率、負荷容量、電圧(FSCVと命名します)に注意を払い設計を進めれば低電力のAIが作れるでしょう。