《IT初心者脱却講座 上級1》CPUはなぜ計算できるのか?CPUの原理や論理回路について解説

Поделиться
HTML-код
  • Опубликовано: 16 ноя 2024

Комментарии • 35

  • @高田健一-l7l
    @高田健一-l7l Год назад +6

    コンピュータ発展の一番の原因は条件ジャンプができるようになったこと。
    つまり計算結果によってその後に何をするのか変更することができる。
    これによって応用範囲が無限に広がった。

  • @wilhelm7194
    @wilhelm7194 Год назад +4

    素晴らしい! 論理回路については本で読んだことがあるけど、退屈で全然頭に入ってこなかった。36分の比較的長巻き尺の動画だけど、見てよかった。ちょっぴり頭が良くなった気がする。

  • @sivoncest6584
    @sivoncest6584 Год назад

    最高です!ありがとうございます!引き続き、視聴させていただきます。

  • @相模太郎-z8o
    @相模太郎-z8o Год назад +7

    昔 大学でCPUの基礎知識を習ったとき、
    複雑な計算は全て加算回路だけで行っていることに驚きました。
    CPUとメモリ間でプログラムやデータを転送するのは
    Y=Xという演算とカウンタ(アドレスの加減算)で行っている事も。

    • @Socrate2
      @Socrate2 Год назад +1

      データの転送は転送命令がある。演算じゃない。
      演算の形してるのは高級言語のレベルの話であってコンパイルしたら転送命令に置き換えられます。
      もうちょっというと、単純な転送はDMAとかいろんな仕組みがあって、CPU通さないで行われたりします。
      最近はCPUどころかメインメモリーもすっ飛ばしてGPUとSSDの間で勝手に転送してますな。
      高級言語のレベルだと関数で隠蔽されてたりしますが、オブジェクト指向言語なら'='も置き換え可能なので勝手にハードウェアに置き換わってるかもしれません。

    • @相模太郎-z8o
      @相模太郎-z8o Год назад +1

      @@Socrate2 おそらく CPUのハードウェアを完全に理解していないので
      転送命令は演算では無い考えているのでしょう。
      DMAは、ハードウェア的にはCPU内部の機能の内 転送に特化しているだけです。

    • @Socrate2
      @Socrate2 Год назад

      @@相模太郎-z8o うーん、だから何? なんだけど、高級言語の話してるなら筋違いですよと。
      高級言語はイロイロ仕込まれてるんで、それがCPU命令以外のハードウェア使ってないとは限らないんで。

    • @みんな知ってるかもしれない人
      @みんな知ってるかもしれない人 Год назад

      @@Socrate2
      ハードウェアのデータ転送路とレジスタとY=Xの演算のみで加減算を行うってことでしょ
      PICみたいなハーバードアーキテクチャやRISCみたいなロードストアアーキテクチャはアセンブリ言語がこういう処理だよ
      ハーバードアーキテクチャは特性上小規模だから特にこういう処理しかできない

    • @みんな知ってるかもしれない人
      @みんな知ってるかもしれない人 Год назад

      元コメの人は元々高級言語の話なんかしてないのはすぐわかるでしょ

  • @ztsE7NKQ
    @ztsE7NKQ Год назад +1

    なるほど、めちゃくちゃ勉強になりました。このPCの仕組みから面白いやつと面白くないやつの違いがわかった気がします。面白くないやつは意外性のない当たり前の答えしか出しませんが面白いやつは意外性のある返事をすると思います。それは思考に合理的、或いは常識的で平凡な処理から敢えて外した変数を組み込む能力があるということなのだと思いました。それはPCでは許されないある種エラーをわざと入れるという能力なのだとおもいます。複雑多岐な思考の海のどこの変数をどういじるかというのが個性でありセンスなのだなと思いました

  • @Socrate2
    @Socrate2 Год назад +1

    ここまでやるなら、論理回路をちゃんと追いかけたほうがいいと思う。自分の頭で追わないと応用が効かない。

  • @randy2539
    @randy2539 2 года назад +8

    狼が可愛くて内容が入ってこない🤭

  • @koasht.4350
    @koasht.4350 4 года назад +3

    いつも拝見させていただいております。
    よろしければ、SSHキー、Linuxについて動画を作っていただけると嬉しいです!
    ご検討お願いします。

    • @--4113
      @--4113  4 года назад +1

      コメント&リクエスト誠にありがとうございます!LinuxはメインのOSとして使ったことはなく、必要に迫られて使ったという程度なのですが、一度検討させていただきます♪
      ありがとうございました!

  • @403あああああああ
    @403あああああああ 3 года назад +3

    高校生ですが、すんなり理解できました。わかりやすかった

    • @--4113
      @--4113  3 года назад +1

      ありがとうございます!そう言っていただけるととても嬉しいです♪

  • @SangyokuHidariuma
    @SangyokuHidariuma 7 месяцев назад +1

    浮動小数点演算ユニットは、昔コプロセッサーという名称でCPUの補助チップとして出してたんだよなぁ・・・
    NANDやNORはトランジスターの数を減らすなど、あくまでも電子回路的な事情で使用されてる物だから、ソフト上ではほとんど意味がないですね。(電子回路の正論理・負論理より)

  • @gosentry9620
    @gosentry9620 Год назад +2

    コンピュータは本当は計算苦手なの。6.243÷3.56451なんかです。
    1024ビットの素因数分解はスーパーコンピュータで100億年かかるんだよ!

  • @jamesloc9928
    @jamesloc9928 Год назад +2

    いまどきのコンピュータの説明でこの辺の論理回路の説明がどんだけ役に立つというのだろう?

  • @gale_straits2695
    @gale_straits2695 3 года назад +4

    キャリー(桁上がり)出力を備えた加算回路は全加算回路ですよ。半加算回路にはキャリー(桁上がり)出力がなく、論理的に排他的論理和(Ex-OR)そのものです。

    • @--4113
      @--4113  3 года назад +5

      コメントありがとうございます。
      勘違いしてしまったかと思いWikipediaで調べなおしてみましたが、Wikipediaによると半加算器は”2進数の同じ桁どうしの演算をして(通常は最下位の桁)、桁上がりは桁上げ出力(Carry out)によって出力する。”と書かれておりキャリーの出力があります。
      また、図を見ると排他的論理和だけではなく論理積も必要となっております。
      ja.wikipedia.org/wiki/%E5%8A%A0%E7%AE%97%E5%99%A8
      念のためご確認いただければ幸いです。

    • @みんな知ってるかもしれない人
      @みんな知ってるかもしれない人 Год назад

      全加算器に付いてるのはキャリー入力だぞ
      全加算器にも半加算器にもキャリー出力はある

  • @bari-bari-Nezumi
    @bari-bari-Nezumi 3 года назад +5

    CPU云々というよりは加算回路の説明を受けた感じだな……

    • @--4113
      @--4113  3 года назад +2

      確かに・・・ 
      なぜ計算できるかをどう伝えようかと考えた結果、加算回路の説明になってしまったっという感じです・・・
      期待外れだったらごめんなさい 精進します。
      にしても、首相にコメントいただけるなんて光栄です!!

    • @bari-bari-Nezumi
      @bari-bari-Nezumi 3 года назад +1

      @@--4113
      私自身、加算回路についてほとんど何も知らなかったので、動画の内容がまるっきり無駄だったというわけでもありませんが笑

  • @gyopicyan999
    @gyopicyan999 3 года назад +2

    コンピューター、つまりCPUとは同じ仕事を繰り返す装置です。計算する能力はコンピューターの一つの機能です。メモリ内から次の命令を拾ってくるのは計算ではないです。

  • @butter-natsuko
    @butter-natsuko Год назад +1

    単純構造(もちろん工夫してある)なので高速に足し算が出来ることをもっと強調して良いですよ。
    今の世の中クロック周波数3GHzのCPUは普通に使われています。1秒に単純な足し算が30億回出来ます。
    これは1回の足し算を『光が10cm進む時間』で実行出来るということなんです。イメージできますか?ものすごく速いでしょう?

    • @Socrate2
      @Socrate2 Год назад

      ここで紹介されているような単純な加算器だと、キャリーの遅延で速度が出ませんので1クロックで1加算は無理です。64bit演算に64クロック以上かかってしまいます。
      さらに、今のCPUはスーパースケーラーと言って同時に複数命令実行できますので、クロック以上の速度が出ます。
      CPUという意味ではマルチコアが一般的になってますので、さらに数倍の速度が出ます。
      マルチコアで速度出すためには高度なプログラミング技術が必要になります。
      もちろん、色んな所で足引っ張る要素があって、理論どうりに実践的に速度が出せるわけじゃないので、投機実行やキャッシュ含め、色んな工夫がされています。
      なので単純ではありません。
      誰かがパズルを予め解いておいてくれてるので楽して速いだけです。

    • @butter-natsuko
      @butter-natsuko Год назад

      @@Socrate2 コメントありがとうございます。
      足し算は3GHzの1クロック『光が10cm進む時間』で回ってますよ。
      おっしゃる通り、本動画の構成で加算器を構成しても速度は出ません。キャリー入力からキャリー出力が演算器(加算器)の律速パスになります。工夫すれば2^6=64、3^4=81、4^3=64であることから64bit演算は2~4入力論理ゲート高々6段程度で構成出来ます。論理ゲートそれぞれ30psで動作可能なら演算器200ps、読み書きその他含めて300psで回れば3GHz動作可能です。スーパースカラならスカラ演算が1クロックで回っています。あとは実行命令数、コア数で並列化してるだけです。

    • @Socrate2
      @Socrate2 Год назад

      @@butter-natsuko スーパースケーラーやマルチコアは単純じゃないですよ。
      分岐予測もないと速度でないし。
      ICの中で入力4に制限なんてことはないので、ルックアヘッドはもっと速いでしょう。そんなのんびり加算してたら今の性能は出ないかと。
      そもそも演算の前のアドレス計算するのにも加算してるわけで。
      敢えて言うなら、演算を単純化してハードウェアで加速するという手法は、三角形に分割して描画する3DCGや、座標計算に行列を用いる方式的 (ソフト的) な工夫と二人三脚で、CPUはどっちかというと複雑なハードウェアでゴリ押しですな。

  • @にゃんこ-o9z
    @にゃんこ-o9z 3 года назад +1

    デジタル信号は、銅線から光に成るのであろう🌏

    • @--4113
      @--4113  3 года назад

      確かに、そんな未来もありそうですね!

    • @--4113
      @--4113  3 года назад

      wired.jp/2021/03/24/chip-ai-works-using-light-not-electrons/

  • @lan1250
    @lan1250 2 года назад +3

    猫がしゃべる原理を教えてください。

  • @derrodero
    @derrodero Год назад +1

    桁上りの表記位置を頑なに左や上に置かないところが説明動画として不親切だと思う