IT、機械、設計など投稿者の個人技の紹介・相談スレ。
自分のものでは無いニュースや発表資料を貼るのはNG。
ただし、検索しても容易に見つからない級の専門的な解説は個人技と判断しOK。
イベントの体験や行く予定のイベントの紹介などもOK。
とりあえず私は作りかけの自作コンパイラそして自作CPUのレポートをゆっくりやっていきますね♪
※姉妹スレ
【カメラ・写真スレ】http://kaikai.ch/board/10565/
【身近な文化を愛するスレ】http://kaikai.ch/board/10879/
【イラスト・アート投稿スレ】http://kaikai.ch/board/11495/>>1
こんばんわ。
私向けのスレッドです。
懐かしいです。
高校時代に大変お世話になりました。
もう失効してしまいましたが、電験の資格、あとは情報処理関連の国家資格を幾つか取得をいたしました。
証書もありますが、押し入れの奥です。wあとは、ファームウェア系の話とか、金属加工系の話とか、金融や、医療、その他の裏話は結構知っています。
いまは、ツイッターでの広報で忙しいので、後ほど訪問をさせていただきます。^^世界一のハンドツールは スナップオンだと思ってます
80年代の 丸文字を 地域で 一番所有してますよ>>1
しかし、最近の機械はコンパクトになりましたね。
私の時代には、持ち歩くのに一苦労でした^^。
自作のCPUボードの話に期待をします。
24時を回りました、2日おきに実行をしている、カイカイchの、統計を取る作業をします。(`・ω・´)シャキーン
今日は、このまま睡眠(酔いつぶれ)をしてしまうかもしれません。
がんばってください。応援しています。私の趣味の工作のモチベーション維持の為も思いスレを立てました。
皆さんも何か作った物があったり作り始める時には投稿してやってください。
ツイッターでタイムラインに流れてきた投稿にCPUを作っている人が居て、
あぁ。昔途中まで図面かいたっけ今なら描き切れるし実際に作れるよと思ったのと、
ASMのソースを吐き出すBASICコンパイラを遊びで作った事があったので、
一気にコンパイラとCPUをセットで作ってしまおうと思いました。
あと、自作VMで動くCサブセットの様なコンパイラも作った事が有ります。
さて、CPUとコンパイラ。鶏が先か卵が先か? もちろんコンパイラが先です。
マイクロプロセッサ黎明期とは違いますよね。
自作CPUの命令セットをかなり絞らないと完成しない巨大さになるので、
コードジェネレーターは回路を思い浮かべながら回路が最小になるようにとなります。
その先の考えもあるのですが、とりあえずこれを動かさなな。>>10
開発している会社で、「あっアレが足りない」って走って買いにく需要があるだろうから、
そこから何らかの店頭買いの店は存在するんじゃないかなぁ?
企業向けパーツ屋の直営店みたいなんとか。
ソウルにしか無さそうだけど。>>7
電気工学系だけど。文系とあんま変わらないと思いますよ。
韓国の電気系の講義。
これは、定電圧レギュレーター回路でしょうか?
さすがサムスンの国。応用的な回路の授業も充実してそうですね。
YouTubehttps://www.youtube.com/watch?v=orZCDktJHxs>>12
ですね。
最初のはツェナーの電圧とR1、R2で分圧した電圧が揃う電圧が出力される回路ですね。
2時間の動画なので適当にパパッと1,2分で静止画だけ見たのですが教える速度がめちゃ速いように思います。AndroidStudioで色々作ってます
モバイルなのが面白いですね>>7
ラ製の影さんを思い浮かべたbadmanに目をつけられてる割には順調にスレを増やしていってるな
自作のCPUとは、がんばりますね。
昔、パタ・ヘネ本読んだ時にMIPSサブセットで自作してみたい衝動に駆られたことがありましたw>>9
整備士として 顧客から 工賃を頂く以上
最高級な工具と最新の設備を揃えるのは 当然のことです個人でのCPUの開発はVHDLやVerilogで組むのが普通ですが、
74系のランダムロジックで組みたいと思っています。
74系は現代も通用するものはまだまだ残っていますがそうでないものの多くは既に絶滅しています。
PDP-11にも使われたと言われる181はレア物として手に入る事もあるようですが、真似できないようなレアなものは使いたくないなぁと言う所です。
さて、問題の181ですが最小の複雑さで作ろうとしたときに機能を削って極限的には何処まで小さくできるかとなります。
チューリング完全でミニマムの一つされるプログラミング言語Brainfuck。
これには++しかありません。それだけ必要させる演算子はシンプルに出来ると言うわけです。
しかし、i=10000で++を10000回やるのは現実ではないので現実問題を解決できる範囲での最小を考えました。
そこでNANDです。AND=*,OR=+,NOT=~,NAND=@として、
~A=A@A
A+B=(~A)@(~B)
A*B=~(A@B)
と論理演算はOK。全加算器は論理演算で出来ていてNOTと加算で減算が出来る。
これらを組み合わせれば乗算・除算が出来ます。(雑な話ですが。)
そこまでストイックに行くか?あと、左シフトと加算(チップとして容易に入手)くらいを入れると現実問題が処理できる性能の演算器になると思います。
※演算でこれだけ削るのに割り込みは入れたいと思ってるw>>20
凄い詳しいですね。
脱帽しました私はファームウェアの仕事も色々やりましたが、回路設計の知識は専門ではないので、もっぱら、設計担当者に色々教えていただいて、組み込み系のワンチップの制御PGなどの仕事を過去にやっておりました。
さすがに、CPU自体の開発の経験は有りません。
興味深く読ませていただいています。>>20
Brainfuck言語をしらなかったので検索しました。
1993年に登場とのこと、結構新しい言語ですね。
以下、Wikiを引用。
---
開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。 実際、Müllerが開発したコンパイラのサイズはわずか123バイト、インタプリタは98バイトであった。
Brainfuckプログラムは非常に可読性・記述性が低いため実用性は期待できないが、チューリング完全である。その簡潔さから多くの派生言語を生み出すこととなった。>>8
昔の話ですが、作成したものもあって、書籍にも掲載されましたが・・・実名公開です。
ちょっと書けませんw
PDA関連だと、だけ記載しますTTLでZ80互換CPUを作る人とは別なんですかね?
>>27
モーターのマウントは緑だけど市販の鉄系プレス品です。^^昨日はCPUの大まかな構造を決めて図をUPする予定だったのですが、やはりコンパイラ側が仕上がらないとまとまりませんね。VMまで要るなぁ。
◆◆ CPU ◆◆◆◆◆◆◆◆◆◆◆◆◆◆
現代のメモリーは容量が巨大で74系より遥かに速い。バグを減らすためにランダムロジック削減。論理的にシンプルで有れば回路規模は大きくなっていい。
と言う考えを元におぼろげな仕様はこんな感じです。
アドレス16bit、データー16bitの主メモリー空間。
追加で全体バンク切り替え式でアドレス空間を4bit拡張。
ALU無し。ただし、レジスターにカウンターを使う。
レジスタの本数とアドレッシングはコンパイラでの検証次第。
◆◆ コンパイラ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆
現在、字句解析をコーディング中。ソースより単語や記号、数字を切り取り種別をマーキングする処理です。凄いねー。
俺はソフトは作れるがハードから根本的にCPUまでやっちゃおうってのは真似できない。
1970年代にはデパートの上の階に「エレメカ」と言って、汎用CPUを使わないゲーム機器があったようだが、これも配線等で設計しているんだろうね。>>30
昔は電卓もランダムロジックだったそうなので80年代を境にそれ以前の電気で少し複雑に動くものはランダムロジックなんでしょうね。
電卓のランダムロジックがあまりにも凄いんで、日本のビジコンの嶋正利さんがインテルに相談して開発する事になったのが世界初のマクロプロセッサi4004でした。i4004の回路設計は嶋正利さんがしています。여기 계시는 분들은 정말 엄청난 걸 하고 계시는 분들이군요.
경의를 표합니다.>>32
おお!ハードウエアエンジニアですか!^^ /"
やはり電子部品の商店街が有るのですね。
産業にエレクトロニクスが有れば必要な街ですよね。
日本では、東京の秋葉原(ヲタクに侵食されている。)、大阪の日本橋(ヲタクに侵食されている。)が有ります。
名古屋の大須にも有るらしいです。
楽しんでいってください。^^>>29
コンパイラ作ってるってことは、命令セットアーキテクチャは決まったんですね。
それと、完全74系のみの縛りで設計するとなると、レジスタやカウンタ等のデータパスは良いにしても
全体制御のステートマシンが大変になりそうですね。特に次ステートを生成する組み合わせ論理回路が
かなり大変そう。パタ・ヘネ本の次ステート関数という奴ですが、ここは素直にROMでも使ったほうが
良いですね(10年ぶりぐらいにパタ・ヘネ本を引っ張り出してしまった(笑))。
コンパイラが吐いたマシン語の主メモリへの書き込みは、もしかして太古の昔の自作マイコンやミニコンの
ようにトグルスイッチとLEDをずらっと並べて手動DMAでやるのかな?
さすがにこれは太古の昔を偲んで趣があるとは思いますが大変疲れるので、最近のマイコンの、外部バスが
出てる奴か、PIOを使って、PCからUSBで転送して主メモリに展開する方策を考えるといいかもですね。勝手に妄想が広がるw失礼!>>35
コンパイラを作るのは命令セットと回路を決める為です。
過去にASMソースを吐くコンパイラを作った知見より、ターゲットのCPUの命令がどうであるかは最後の少しみたいな感じでコンパイラの開発方針にさほど影響を受けないことが分かっています。オプティマイズに凝れば違ってきますが。
そこで、開発のハードルとしてはASMソースを吐くコンパイラは猫パンチ程度だけどCPUの開発は未知で先人もランダムロジックで作る人はいくらか躓いているので危険と感じています。
それと、過去のコンパイラ開発での知見のもう一つとして普通に作ると思ったより使う命令が少ないと言う事です。
想像で組んだ命令セットにコンパイラを合わせるのではなく、コンパイラ側をCPUに歩み寄らせてCPU開発の難度を下げる為にコンパイラ開発を先行させる必要があるのです。
コンパイラが走る最小命令を回路が楽になるように調整したものを探す感じですね。>>35
流石ですね!そうです。
キモはステート毎に各所に指示を出すランダムロジック。
ここの部分が心臓であり最もややこしく、各CPUのデザインの違いの出るオリジナリティの中核ですね。
ここは面白い解決策がありまして、TTLでCPUを作られている「がたろう」さんが、
そこだけを「ダイオードマトリクス」で組む方法を編み出されています。
ロジックが74系じゃないんですが、PALではなく逆に下に下がるのが面白いですね。^^
例えば、横軸ステートとしてステート1、ステート2、・・と最終まで。
縦軸に各デバイスへの指示を置きます。アキュームレーター出力・・等々を。
そのクロスした電線をダイオードで繋ぐかどうかでそのステートで何がアクティブになるかを直感的に組むことが出来るのです。
これは、回路として非常に単純かつやりたいことと目の前の配線の形が一致している素晴らしいやりかたです。
出来れば全て74系で作りたいですがダイオードマトリクスは間違いが少ないと思われるのでこれで行く可能性もあります。>>35
CPUのメモリーの書き込みにはトグルスイッチは使わず、PC⇒USB⇒USBマイコン⇒自作CPUボードと繋いで転送します。
バスリクエストでバスを乗っ取り必要な書き込みを済ませます。
>>29 でALU無しとしているのは、演算は全てメモリー上に表として置いたものを引く形で実行するためです。
四則演算も論理演算も全て8bitで処理します。(←ここ >>29 より訂正)
アドレスバス、データーバス、レジスタ全て16bitですが演算は8bit。
例えばAレジスタの下位8bitとBレジスタの下位8bitと繋げて16bitにして、
演算の種類であるメモリーバンクに切り替えてそれをアドレスに出し、
データーバスに戻ってきたメモリーの内容(16bit)が演算結果とするシステムです。
この為、トグルスイッチでなんかやってられねーーーーーw です。^^;;Androidスマホのcustom romの製作がしたいです.
難しい仕事ですか?>>39
前に調べた時は四国の方にもHCタイプとかが残ってました。
digikeyにも少し有ったよなと思って今検索したらどのタイプも在庫0になってました。
ALUだけでなく、プログラムカウンターに使えてトライステート出力も出来るからチップ数が減らせれる569など便利なチップも同様な感じです。
先人の作ったTTL-CPUはレアパーツの集合体になりがちなので誰かが作りたいと思ったら気楽に作れるCPUにしたいです。^^
作る作らないに限らず作ろうと思った人や、レアものだからで買われたりしていきますしね。
>>40
メモリーマップドALU(今作った単語w)だと、ロード命令の亜流としてレジスター間の演算(演算はこのタイプのみ)が出来るのです。SRAMステートだと書き込み回路でトータルで回路が増えそうで辞めました。
そしてROMで置くならもうそれはGALだろwって事にw
>>41
お探しのPIOはコレですか?^^>>42
Androidスマホはカスタマイズ出来ないように出来ていますが、root化するソフトウエアを使う事で自由にカスタマイズ出来る常態にする事が出来ます。
適当なキーワードで検索すればそのソフトウエアを見つける事が出来るでしょう。
ただし、ここから先はAndroidスマホがソフトウエア的に壊れて元に戻せないとかメーカーの修理拒否などのデメリットが有ります。
自由の身になったAndroidスマホをどうするかは、貴方自身が何をしたいかによりますね。
マニアックな雑誌、書籍、サイトで何が出来るか、そのメリットとデメリットなど細かい固有の情報があるのでそれで遊んでください。
Androidスマホがゴミになる危険と隣り合わせのスリルの世界です。
個別にどうなるかは私も知りません。私の技術系活動の投稿先として本スレから撤退します。
http://kaikai.ch/board/12388/171- 46名無し2017/03/21(Tue) 12:26:10(1/1)
このレスは削除されています
Open Source/ Github 활동하는 개발자 있나요? 저랑 같이 토이프로젝트하면서 놀아요!
IT、機械、設計など理系な技術スレ。
48
ツイートLINEお気に入り
432