ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
今までぼんやりとしか分かっていなかった事が、わかるようになったけど、どんどんわからないことが増えていく...詳しい説明ありがとうございます。今後も楽しみにしています。
素人から見ると引き算が無かったりスタックが無かったりプログラムを組む上で色々制限ありそうな気がするけど問題にはならないんでしょうね、次回も楽しみにしています。
減算は2の補数を加算する事で行います。
@@tukinami なるほど、はじめから加減算の用意されたCPUを使っていたから、その考えは無かったです、コメントありがとうございました。
結構分かりやすくて有難い
圧倒的それな感
待ってましたー!!!
待ってましたー
マイクロコードのような記述ということでしょうか?
マイクロコード=マシン語=機械語です。例えばAと言うアキュームレーター(メインのレジスター)に対してBと言うレジスターにコピーしたい。ニーモニック(人間がプログラムする為の解りやすくした言語)が、AにBをコピーします。となります。例えばmov a,b マイクロコードなら例えば 08 01 ←16進数、2進数なら0001000 00000001になり始めてCPUに命令を伝えられる様になります。ニーモニックからマイクロコードに変換するのに、大昔は自分で表を見ながらキーボードにマイクロコード(16進数)を入力してプログラムを動かして一喜一憂しました(笑)ただ、その後ニーモニックからマイクロコードに変換するコンパイラーと言うパソコンで動作するアプリが出て、簡単に変換出来るようになったのは革新技術でした(笑)だって、AにBをコピーするのに 08 01ですって、解りずらいでしょう(笑)
@gga00463 さん、はい(笑) 所謂ハンドアセンブルと言われますね。ハードウェアに対して伝えるのにステップ(クロックに対してのデータバスのラッチ)と言う手法を取らざろう得ません。4bitで8bitを表現するには2倍のステップ(クロック)を弄しますね。命令1+伝送先のアドレスが8bitなら+2の計3ステップが必要ですしね。しかし、4bitROMとRAMはどうやって実現するのだろうか・・まさかトランジスターだけでフリップフロップで構成するとなると途方もくれる💦8BitROMとRAMはICで簡単に実現できるが・・・・。
@gga00463 さん、そうなりそうですね、4bit+4bit+αで。メモリー容量が分からないから断言できませんが・・・I/Oは8bitを想定している様なので3ステート以上でしょうね。あまり詮索するとZEXさんに迷惑かけそうなので後は自重します💦
必ずしもマイクロコード=機械語ではありません。機械語1命令が一個または二個以上のマイクロコードで実現されます。
@@TOHOKU2008 さん広義としてはマイクロコードってCPUの中で色々集約された(処理)を機械語で表現しますから、完全ではないとしても、イコールではないでしょうか。私は、マイクロコードの言葉のイメージとしてはファームウェアです、OSが無いCPUで決まっているROMアドレスに飛んで、CPUの初期設定をして、ペリフェラルを初期化して、割り込みアドレスの指定、ウォッチドックがあれば設定し、メインルーチンに飛ばしてプログラムどうりに処理させる。手法かもしれません、OSがあるプログラミングはマイクロコードとは言えないと思います。 必ず、指定のプログラミング言語が用意されていますから。
大学の授業を思い出しながら何とかついていけるレベル あと6:30の所テロップが2の12乗の誤字
もう付いていけません(TT)でも、凄いことをやっている事はわかります。今の時代原理原則を知らないでコンピュータを使う人が多いですね、特にスマホ。インプットからアウトプットまでの間が大切だと思います。皆さんのコメを見るにつけ理解できてる人がいるのも凄いですね。私にとって嬉しい限りです。もはや余計な事は言いますまい。グッドマークを押すに止めましょう。
割と簡単な理論ですよ、基本です、そりゃ今のアプリは簡単にソフトウェアの記述で簡単にブログラミング出来てしまうからいい時代です。 MicrosoftのVisual CとかBASICとか小規模なら無料でマイクロソフトからダウンロードして開発環境が整ってしまうのだから(笑)、今はネット系のプログラミングになるのでC言語系を習得すれば(オブジェクトやクラスとか色々の概念)趣味でも楽しめます。自分が設計した思いどおりの動きをしたアプリって言うのも感慨深いものでしょう。ハードウェアが絡むから混乱するでしょうが、プログラムの根底にはハードウェアが付きまとう、だってハードウェアの仕様からプログラムの仕様が決まる!ゆるりと、自己の興味に従って知る楽しみも一興でしょう(笑)そう、コンピューターの基本は入力に対しての結果とスピードです! 正解です!粋狂じゃないですか、この時代に4bitCPUをトランジスターで作るなんて素晴らしい。ゆっくりと内容を理解しても良いんじゃないですか?だって、私はこの様な事を小5~高2位で理解した・・7年ですか(笑)大人ならクグルと1年以内に解決できるかもしれない(笑)ああ、子供ん頃クグれれば良かったのにな~(笑)このプロジェクトは素晴らしいですよ。 誰に出来るものでもないが基本を知れば想像はできる・・・しかし半田ゴテの作業も特筆もの(笑)
@@gorohzaizen3368 さんレスありがとうございます。私もマックを買う前にC +Cだったか?機械言語の本を読んだことがあります。理解できたのは最初の数ページの説明だけ。後はさっぱり理解できませんでした。機械言語を理解するには柔軟な頭脳が必要なようですね。でもZEXブラックさんの動画は注目しています。
@@今安規夫 さん、現実の事象を素直に評価すれば解るはずです(笑) 難しく無い、雑念だけ捨てれば可!んで、狛犬2は昔使っていました(笑) 動かなくなってしまって数年経ったので、Windows xp用のマザボ入れてLCD化して遊んでました(笑) 現在。カラクラの筐体だけ残ってて・・そろそろ高画像LCDつけてCore i7でも乗っけようかと、カラクラⅡさんのアイコンに触発されそう(笑)
@@gorohzaizen3368 さんカラークラシック2って狛犬2って言うんですか?初めて聞きました。まだ持ってるんですよ。ソフトのフロッピーは壊れてますけど起動だけは出来るんです。ウエルカムマッキントッシュ って出てきます。良き相棒でした。浮動少数点ボードを入れれば3Dソフト シェードも動きましたしねぇ。墓場まで持っていくつもりです。(^^)
@@今安規夫 さん、カラクラとカラクラ2は愛称として狛犬って呼ばれていましたよ(笑)懐かしいですね。 カラクラの外見はとてもかわいい(笑)
情報処理技術者試験のCOMETを思い出しますなぁ。
SPやFPを固定番地のメモリに退避させればレジスタ4つでアドレス3byteのスタックマシン作れる…のか?
地道な作業の繰り返しなんだな。Z80ニーモニック程度の知識しかないけど、言語の意味を持たせたり、データとして扱ったり、なかなか興味深い。
こういう細かいレジスタの利用をわかりやすくするためにいわゆるCISCプロセッサではマイクロプログラムで例えばREG_A+REG_B→REG_Dみたいな操作をALUレジスタを表に出さずに一度にできるようにしてるってことですかね。RISCプロセッサはそのへんのわかりやすさを捨ててこのようなレジスタ操作が表に出てきている感じかな。8080等で命令によって消費するクロック数が異なるのはこの辺が理由でしょうか。あたってるかな。あたってるといいなw
Risk系のプロセッサと言えども、ソフトウェアの命令系統には何の変わりはありません。Ciscを踏襲してCPU内部で効率化を図っているにすぎません。ただ、このプロジェクトにRiskを求めると・・・途方すぎて溜息が漏れます(笑)トランジスターなら・・規模にも寄るけどウン×10万個が必要になるかも。命令に消費するクロックは、命令事体の長さ(バイト数)になるので設計レベルの話です。例えば00h(hとは16進数)が2バイト消費命令、01hなら3バイト消費命令など、違うCPUなら8バイト固定で命令を解釈する無駄な設計など、ただこのCPUは処理速度は断然速い。これはCPUの設計次第ですね。当たってますよ!!
あけましておめでとうございますとうとう年越してしまいましたね
すべては理解できないがざっくりとわかった。
情報系の学校行く予定なのに理解できない……つらみ…
わかってないからか、説明聞いてても(動作、流れ?が)理解できないので動きにそった絵(上位ビットに注目してとか、このときはてきな)、トレースでつたわるかなぁいろいろ書いたけど、すごいことしてる、作成頑張って下さい
このCPUは4bitなので、上位ビットは4bitこれが命令になり下位4bitをROMから次の4bitを取り込んで命令に対しての「何をするのか」を読み込んでいる感じでしょう。CPUを設計するなら、ある程度自由に設計できるのをご教授頂いたので、既存のCPUの概念に当てはめずに考えると、ZEXさんの設計が見えてきます(笑)既存の概念は捨てると、理解も深まるのかもしれません。私は、ああCPUも設計次第でこんなに自由に出来るんだ! と、感動してます(笑)
明けましておめでとうございます。簡単なOSも作らなければ???仮装コンピュタの仮装端末を実機で作り完成間近・・・この時間が一番充実してるんだよね。無線機やパソコンに繋げれば更に楽しさがまします。羨ましいな///.
4bitで8bitをするから、マシン語の命令が16個しか実現出来ないんでしたね。8bitなら256個の命令が実現できるから、インデックスレジスタ―とか必要になります、と言うのも使わない命令が余っちゃってもったいない。 でも、ある特定動作のCPUなら違う趣旨の命令も追加したり・・例えば浮動小数点数計算に特化するレジスターを追加するなど(笑) 8bitならですが。ニーモニックが特殊な記述なのが理解できました。脚注:ニーモニックとはマシン語じゃ解り辛いから例えば「転送 A,b」とか人間に分かりやすい記述にする事で、Z80 CPUなら「LD A,B」、intel8086なら「mov A,B」とかになり、これは大抵コンパイラー(言語変換でマシン語に変換するアプリ)で.HEXファイルや.MOTファイルに変換して、それをROMライターに転送してUV-ROMに書き込んで実装して動かします。 当時1990年あたりはROMをエミュレートするICE(In Circuit Emulator)と言う高価な機器を使ってデバッグ(プログラムの評価、検査)したりしました。ZEXさんはご存じでしょうが・・💦 これを見ている仲間の方々が、解るように概要を述べましたm(__)mしかし、壮観ですね。 ユニバーサル基板のタワー!!
まだ、ついていけてる
アセンブリ言語意味不明だった子供の頃の自分に教えてあげたい(`;ω;´)
PUSH、POP、が無いんですね。関数をどう実装するのかが楽しみです。
スタック無さそうなので、push popは無さそう。なんせ命令が16個まででしょうからね・・・。どこまで、やるのか楽しみです。すごいトランジスターを既に実装してるし、これ以上やると電気信号の伝送へのノイズ対策やら例えばLANのケーブルの様にヨリ線したり、異常が起きた時の原因究明に骨が折れるかも💦私も楽しみです!
今までぼんやりとしか分かっていなかった事が、わかるようになったけど、どんどんわからないことが増えていく...
詳しい説明ありがとうございます。
今後も楽しみにしています。
素人から見ると引き算が無かったりスタックが無かったり
プログラムを組む上で色々制限ありそうな気がするけど
問題にはならないんでしょうね、次回も楽しみにしています。
減算は2の補数を加算する事で行います。
@@tukinami
なるほど、はじめから加減算の用意されたCPUを使っていたから、その考えは無かったです、コメントありがとうございました。
結構分かりやすくて有難い
圧倒的それな感
待ってましたー!!!
待ってましたー
マイクロコードのような記述ということでしょうか?
マイクロコード=マシン語=機械語です。
例えばAと言うアキュームレーター(メインのレジスター)に対してBと言うレジスターにコピーしたい。
ニーモニック(人間がプログラムする為の解りやすくした言語)が、AにBをコピーします。となります。
例えばmov a,b マイクロコードなら例えば 08 01 ←16進数、2進数なら0001000 00000001になり
始めてCPUに命令を伝えられる様になります。
ニーモニックからマイクロコードに変換するのに、大昔は自分で表を見ながらキーボードに
マイクロコード(16進数)を入力してプログラムを動かして一喜一憂しました(笑)
ただ、その後ニーモニックからマイクロコードに変換するコンパイラーと言う
パソコンで動作するアプリが出て、簡単に変換出来るようになったのは革新技術でした(笑)
だって、AにBをコピーするのに 08 01ですって、解りずらいでしょう(笑)
@gga00463 さん、はい(笑) 所謂ハンドアセンブルと言われますね。
ハードウェアに対して伝えるのにステップ(クロックに対してのデータバスのラッチ)と
言う手法を取らざろう得ません。
4bitで8bitを表現するには2倍のステップ(クロック)を弄しますね。
命令1+伝送先のアドレスが8bitなら+2の計3ステップが必要ですしね。
しかし、4bitROMとRAMはどうやって実現するのだろうか・・まさかトランジスターだけで
フリップフロップで構成するとなると途方もくれる💦
8BitROMとRAMはICで簡単に実現できるが・・・・。
@gga00463 さん、そうなりそうですね、4bit+4bit+αで。メモリー容量が分からないから断言できませんが・・・I/Oは8bitを想定している様なので3ステート以上でしょうね。
あまり詮索するとZEXさんに迷惑かけそうなので後は自重します💦
必ずしもマイクロコード=機械語ではありません。機械語1命令が一個または二個以上のマイクロコードで実現されます。
@@TOHOKU2008 さん
広義としてはマイクロコードってCPUの中で色々集約された(処理)を機械語で表現しますから、
完全ではないとしても、イコールではないでしょうか。
私は、マイクロコードの言葉のイメージとしてはファームウェアです、
OSが無いCPUで決まっているROMアドレスに飛んで、CPUの初期設定をして、ペリフェラルを
初期化して、割り込みアドレスの指定、ウォッチドックがあれば設定し、
メインルーチンに飛ばしてプログラムどうりに処理させる。
手法かもしれません、OSがあるプログラミングはマイクロコードとは言えないと
思います。 必ず、指定のプログラミング言語が用意されていますから。
大学の授業を思い出しながら何とかついていけるレベル あと6:30の所テロップが2の12乗の誤字
もう付いていけません(TT)でも、凄いことをやっている事はわかります。今の時代原理原則を知らないでコンピュータを使う人が多いですね、特にスマホ。インプットからアウトプットまでの間が大切だと思います。
皆さんのコメを見るにつけ理解できてる人がいるのも凄いですね。私にとって嬉しい限りです。
もはや余計な事は言いますまい。グッドマークを押すに止めましょう。
割と簡単な理論ですよ、基本です、そりゃ今のアプリは簡単にソフトウェアの記述で簡単にブログラミング
出来てしまうからいい時代です。 MicrosoftのVisual CとかBASICとか小規模なら無料で
マイクロソフトからダウンロードして開発環境が整ってしまうのだから(笑)、今はネット系のプログラミングになるので
C言語系を習得すれば(オブジェクトやクラスとか色々の概念)趣味でも楽しめます。
自分が設計した思いどおりの動きをしたアプリって言うのも感慨深いものでしょう。
ハードウェアが絡むから混乱するでしょうが、プログラムの根底にはハードウェアが付きまとう、
だってハードウェアの仕様からプログラムの仕様が決まる!
ゆるりと、自己の興味に従って知る楽しみも一興でしょう(笑)
そう、コンピューターの基本は入力に対しての結果とスピードです! 正解です!
粋狂じゃないですか、この時代に4bitCPUをトランジスターで作るなんて素晴らしい。
ゆっくりと内容を理解しても良いんじゃないですか?
だって、私はこの様な事を小5~高2位で理解した・・7年ですか(笑)
大人ならクグルと1年以内に解決できるかもしれない(笑)
ああ、子供ん頃クグれれば良かったのにな~(笑)
このプロジェクトは素晴らしいですよ。 誰に出来るものでもないが
基本を知れば想像はできる・・・しかし半田ゴテの作業も特筆もの(笑)
@@gorohzaizen3368 さん
レスありがとうございます。私もマックを買う前にC +Cだったか?機械言語の本を読んだことがあります。理解できたのは最初の数ページの説明だけ。後はさっぱり理解できませんでした。
機械言語を理解するには柔軟な頭脳が必要なようですね。でもZEXブラックさんの動画は注目しています。
@@今安規夫 さん、現実の事象を素直に評価すれば解るはずです(笑) 難しく無い、雑念だけ捨てれば可!
んで、狛犬2は昔使っていました(笑) 動かなくなってしまって数年経ったので、Windows xp用のマザボ入れて
LCD化して遊んでました(笑) 現在。カラクラの筐体だけ残ってて・・そろそろ高画像LCDつけて
Core i7でも乗っけようかと、カラクラⅡさんのアイコンに触発されそう(笑)
@@gorohzaizen3368 さん
カラークラシック2って狛犬2って言うんですか?初めて聞きました。
まだ持ってるんですよ。ソフトのフロッピーは壊れてますけど起動だけは出来るんです。
ウエルカムマッキントッシュ って出てきます。良き相棒でした。浮動少数点ボードを入れれば
3Dソフト シェードも動きましたしねぇ。墓場まで持っていくつもりです。(^^)
@@今安規夫 さん、カラクラとカラクラ2は愛称として狛犬って呼ばれていましたよ(笑)
懐かしいですね。 カラクラの外見はとてもかわいい(笑)
情報処理技術者試験の
COMETを思い出しますなぁ。
SPやFPを固定番地のメモリに退避させればレジスタ4つでアドレス3byteのスタックマシン作れる…のか?
地道な作業の繰り返しなんだな。Z80ニーモニック程度の知識しかないけど、言語の意味を持たせたり、データとして扱ったり、なかなか興味深い。
こういう細かいレジスタの利用をわかりやすくするためにいわゆるCISCプロセッサではマイクロプログラムで例えばREG_A+REG_B→REG_Dみたいな操作をALUレジスタを表に出さずに一度にできるようにしてるってことですかね。RISCプロセッサはそのへんのわかりやすさを捨ててこのようなレジスタ操作が表に出てきている感じかな。8080等で命令によって消費するクロック数が異なるのはこの辺が理由でしょうか。あたってるかな。あたってるといいなw
Risk系のプロセッサと言えども、ソフトウェアの命令系統には何の変わりはありません。
Ciscを踏襲してCPU内部で効率化を図っているにすぎません。
ただ、このプロジェクトにRiskを求めると・・・途方すぎて溜息が漏れます(笑)
トランジスターなら・・規模にも寄るけどウン×10万個が必要になるかも。
命令に消費するクロックは、命令事体の長さ(バイト数)になるので設計レベルの話です。
例えば00h(hとは16進数)が2バイト消費命令、01hなら3バイト消費命令など、
違うCPUなら8バイト固定で命令を解釈する無駄な設計など、ただこのCPUは処理速度は断然速い。
これはCPUの設計次第ですね。
当たってますよ!!
あけましておめでとうございます
とうとう年越してしまいましたね
すべては理解できないがざっくりとわかった。
情報系の学校行く予定なのに理解できない……つらみ…
わかってないからか、説明聞いてても(動作、流れ?が)理解できないので
動きにそった絵(上位ビットに注目してとか、このときはてきな)、
トレースでつたわるかなぁ
いろいろ書いたけど、すごいことしてる、
作成頑張って下さい
このCPUは4bitなので、上位ビットは4bitこれが命令になり下位4bitをROMから次の4bitを取り込んで
命令に対しての「何をするのか」を読み込んでいる感じでしょう。
CPUを設計するなら、ある程度自由に設計できるのをご教授頂いたので、既存のCPUの概念に当てはめずに
考えると、ZEXさんの設計が見えてきます(笑)
既存の概念は捨てると、理解も深まるのかもしれません。
私は、ああCPUも設計次第でこんなに自由に出来るんだ! と、感動してます(笑)
明けましておめでとうございます。簡単なOSも作らなければ???
仮装コンピュタの仮装端末を実機で作り完成間近・・・この時間が
一番充実してるんだよね。無線機やパソコンに繋げれば更に楽しさが
まします。羨ましいな///.
4bitで8bitをするから、マシン語の命令が16個しか実現出来ないんでしたね。
8bitなら256個の命令が実現できるから、インデックスレジスタ―とか必要になります、
と言うのも使わない命令が余っちゃってもったいない。 でも、ある特定動作のCPUなら違う趣旨の命令も
追加したり・・例えば浮動小数点数計算に特化するレジスターを追加するなど(笑) 8bitならですが。
ニーモニックが特殊な記述なのが理解できました。
脚注:ニーモニックとはマシン語じゃ解り辛いから例えば「転送 A,b」とか人間に分かりやすい
記述にする事で、Z80 CPUなら「LD A,B」、intel8086なら「mov A,B」とかになり、
これは大抵コンパイラー(言語変換でマシン語に変換するアプリ)で.HEXファイルや
.MOTファイルに変換して、それをROMライターに転送してUV-ROMに書き込んで
実装して動かします。 当時1990年あたりはROMをエミュレートするICE(In Circuit Emulator)と言う高価な機器を使って
デバッグ(プログラムの評価、検査)したりしました。
ZEXさんはご存じでしょうが・・💦 これを見ている仲間の方々が、解るように概要を述べましたm(__)m
しかし、壮観ですね。 ユニバーサル基板のタワー!!
まだ、ついていけてる
アセンブリ言語意味不明だった子供の頃の自分に教えてあげたい(`;ω;´)
PUSH、POP、が無いんですね。
関数をどう実装するのかが楽しみです。
スタック無さそうなので、push popは無さそう。
なんせ命令が16個まででしょうからね・・・。
どこまで、やるのか楽しみです。
すごいトランジスターを既に実装してるし、これ以上やると電気信号の伝送へのノイズ対策やら
例えばLANのケーブルの様にヨリ線したり、異常が起きた時の原因究明に骨が折れるかも💦
私も楽しみです!