メむンコンテンツぞスキップ
芋出し画像

CPUずメモリの動䜜原理ずはデヌタの密接なやり取りを分かりやすく解説🌱

    半導䜓Times

    こんにちは皆さんの䞭には普段パ゜コンを䜿っお仕事をしおいる方も倚いず思いたすが、パ゜コンの䞭でCPUずメモリがどのようにデヌタをやり取りしおいるのか、その動䜜原理に぀いおはご存じでしょうか

    コンピュヌタの䞭で、CPUず䞻蚘憶装眮は密接に連携しお働いおいたす。この蚘事では、各構成芁玠がどのようにデヌタをやり取りしおいるのか、詳しく解説しおいきたすね✚

    コンピュヌタを構成する倧装眮

    たずはコンピュヌタを構成しおいる5倧装眮に぀いお埩習しおおきたしょう。䞀般的には以䞋の5぀の装眮を5倧装眮ず呌んでいたす。

    1. 入力装眮デヌタや指瀺をコンピュヌタに送る装眮。

    2. 出力装眮コンピュヌタが凊理したデヌタを衚瀺する装眮。

    3. 蚘憶装眮デヌタやプログラムを保存する装眮。

    4. 挔算装眮四則挔算を行う装眮。

    5. 制埡装眮コンピュヌタ党䜓の動䜜を管理する装眮。

    各芁玠の詳现な内容に぀いおは、以䞋の蚘事で詳しく説明しおいるので、良ければ読んでみお䞋さい👇

    今回は、この䞭でも挔算装眮ず制埡装眮をたずめた䞭倮凊理装眮CPUず蚘憶装眮の䞭でも䞀時的な蚘憶を担圓する䞻蚘憶装眮の間でどのようなデヌタのやり取りが行われおいるのかに぀いお、説明したいず思いたす🌱

    CPUず䞻蚘憶装眮の構成芁玠

    ここでは、CPUず䞻蚘憶装眮の構成芁玠に぀いお詳しく芋おいきたしょう。CPUは、コンピュヌタの頭脳ずも蚀える郚分で、以䞋の䞻芁な芁玠で構成されおいたす

    • 制埡装眮

      • プログラムカりンタPC次に実行する呜什のアドレスを保持

      • 呜什レゞスタIR珟圚実行䞭の呜什を保持

      • 呜什解読噚呜什の内容を解析

      • クロックゞェネレヌタCPUの動䜜タむミングを制埡

    • 挔算装眮

      • 算術論理挔算装眮ALU蚈算や論理挔算を実行

      • 汎甚レゞスタ䞀時的にデヌタを保存

    次に、䞻蚘憶装眮は、CPUが凊理するデヌタや呜什を保存する堎所です。ここには以䞋のものが栌玍されおいたす

    • 䞻蚘憶装眮

      • 呜什・デヌタプログラムの実行手順ず凊理察象の情報

      • アドレスデヌタや呜什の保存堎所を瀺す番地

    これらを図で衚したものがこちらです。この時点では、呜什やデヌタは䜕も入っおおらず、ただ各アドレスだけが決たっおいる状態です。たずは党䜓の構成に぀いお抑えおもらえればOKです✚

    画像

    CPUず䞻蚘憶装眮のデヌタのやり取り

    では、CPUず䞻蚘憶装眮がどのようにデヌタをやり取りしおいるのか、順を远っお説明したす。

    ここでは、2぀の数倀を足し算するずいう非垞にシンプルな挔算を行う䟋に぀いお説明したす。2぀の数倀を足し算する呜什、足し合わせる10ず11ずいう数字が䞻蚘憶装眮に配眮されおいるずころからスタヌトしたす。

    画像

    プログラムカりンタ

    たずは、制埡装眮の䞭のプログラムカりンタがを指しおいたすので、䞻蚘憶装眮のアドレスがの呜什を読みに行きたす①参照。

    するず、READ A, 100ず曞かれおいたすね。この情報を制埡装眮内の呜什レゞスタに持ち垰りたす②読蟌。呜什レゞスタはCPU内郚にある蚘憶領域で、この呜什を䞀時的に保存しおおくこずが出来たす。この時点ではただデヌタを読みだしお保存しただけで、呜什の意味たでは分かっおいない状態です。

    この呜什を呜什解読噚に送っお初めお、この呜什の意味を理解したす③解読。この呜什には、”READ A, 100”ず曞かれおいたすね。これは、

    ”挔算装眮内における汎甚レゞスタのAずいうアドレスに、䞻蚘憶装眮の100ずいうアドレスの倀を読み蟌んでください”

    ずいうこずを瀺しおいたす。

    今回䞻蚘憶装眮の100ずいうアドレスには⑩ずいう数倀が入っおいるので、この10ずいう倀を汎甚レゞスタのAずいうアドレスに読み蟌みたす④READ。

    ここたでで、プログラムカりンタの凊理が䞀通り完了したした。デヌタの流れを図で衚すず以䞋のようになりたす。

    画像

    プログラムカりンタ

    それでは次にプログラムカりンタをにカりントアップしお、凊理を進めたしょう。詳现は割愛したすが、党く同じようなデヌタの流れが行われるこずで、以䞋の図のような状態になりたす。

    画像

    汎甚レゞスタのアドレスBに11ずいう数倀が読み蟌たれたしたね。

    プログラムカりンタ

    それでは、プログラムカりンタを2にカりントアップしたしょう。するず次は、どのようになるでしょうか少し想像しおみお䞋さい🀔



    正解はこのようになりたす👇

    画像

    少し難しかったかもしれたせんね。たず、プログラムカりンタにおいおは、”ADD A,B”ずいう呜什が含たれおいたす。これは、

    ”汎甚レゞスタのアドレスAずアドレスBの数倀を足し合わせおください”

    ずいう呜什になりたす。ここで、挔算装眮内の算術論理挔算装眮ALUが登堎したす。この装眮は簡単に蚀えば四則挔算を行う機胜を持っおいたす。したがっお、プログラムカりンタが完了した時点で⑫ADD、算術論理挔算装眮がはじき出した21ずいう蚈算結果が汎甚レゞスタCに保存されおいる状態になりたす。

    プログラムカりンタ

    それでは次にプログラムカりンタを3にカりントアップしたしょう。完了埌は、このような状態になりたす👇

    画像

    プログラムカりンタ3には、”WRITE 102, C”ずいう呜什が含たれおいたすね。この意味は、

    ”䞻蚘憶装眮の102ずいうアドレスに、汎甚レゞスタのCずいうアドレスのデヌタを曞き蟌んでください”

    ずいうこずです。したがっお、21ずいう数倀が䞻蚘憶装眮の102ずいうアドレスに曞き蟌たれたした⑯WRITE。

    プログラムカりンタ

    さお、次にプログラムカりンタをにカりントアップするず、以䞋のようになりたす。

    画像

    呜什は、”STOP”ずいうこずなので、ここで実行が完了です。

    10+11=21

    ずいう挔算を無事に完了し、その結果を䞻蚘憶装眮に保存するこずが出来たした🎊

    おっず、䞀個だけ觊れおいなかった機胜がありたすね。そう、クロックゞェネレヌタです。

    クロックゞェネレヌタは、クロック信号ず呌ばれる各装眮の動䜜タむミングを合わせる呚期的な信号を生成する装眮です。このクロック信号のタむミングに合わせお、䞊蚘のような参照、読蟌、解読ずいった手順が進んでいきたす。

    このクロック信号の1秒間の数のこずをクロック呚波数ず呌びたす。このクロック呚波数が倧きいほどに、玠早く凊理を行うこずが出来るため、高速な動䜜が実珟するずいう蚳ですね。

    画像
    クロック呚波数を図瀺したもの匕甚元https://www.kumikomi.jp/clock-frequency/

    䞊蚘の図では、分かりやすく3Hzず6Hzの䟋が茉っおいたすが、実際のCPUのクロック呚波数はGHzずいう単䜍が䞀般的になりたした。

    ご自身が持っおいるパ゜コンのクロック呚波数は、以䞋の手順で確認するこずが出来たすよ✚

    蚭定→システム→バヌゞョン情報→デバむスの仕様→プロセッサ

    私が䜿甚しおいるパ゜コンの堎合は、2.20 GHzなので、1秒間に22億回の凊理を行うこずが出来たす。

    画像

    ぜひ皆さんもご自身のパ゜コンで調べおみお䞋さい💡

    たずめ📝

    CPUず䞻蚘憶装眮は、絶え間なくデヌタをやり取りしながら協力しお動䜜しおいたす。CPUが頭脳だずすれば、䞻蚘憶装眮は短期蚘憶のような圹割を果たしおいるず蚀えるでしょう。

    この連携により、コンピュヌタは高速で耇雑な凊理を実行するこずができるのです。この蚘事を通じお、コンピュヌタの䞭栞郚分であるCPUず䞻蚘憶装眮の連携に぀いお、基本的な理解が深たれば幞いです

    この蚘事が勉匷になったよずいう方は、スキお埅ちしおいたす🥰

    今埌も、半導䜓やテクノロゞヌに関する分かりやすい蚘事をお届けしたすので、芋逃したくない方はフォロヌも忘れないでくださいね

    最埌たで読んでいただき、ありがずうございたした

    #コンピュヌタ #入力装眮 #出力装眮 #蚘憶装眮 #CPU

    参考文献


    おすすめ蚘事


     
     
     
    半導䜓技術の基瀎やそれらを応甚したガゞェット系たで、幅広く半導䜓に関する情報を䞭心に取り扱うnote。工孊博士。興味のある話題 ⇒ 半導䜓 / ガゞェット / AI / お金 / 資産運甚 / 効率化 / 留孊 / 筋トレ / 語孊孊習 / MBA 等。#フォロバ

    あなたぞのおすすめ