• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:タイミングを合わせるとはどういうことなのか?)

コンピュータのタイミングとは?

このQ&Aのポイント
  • コンピュータのタイミングを合わせるためのピンとは?
  • Z80CPUとZ80PIOにおけるタイミングとは何を指すのか?
  • コンピュータのタイミングについて簡単に教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

>つまり、「フェッチサイクル」とは「マシンサイクル(3つのサイクル)」の内のひとつ(M1サイクル)という解釈でよろしいのでしょうか? 1つの命令を実行する際、複数のマシンサイクルが順に実行されますが、そのうち、最初のマシンサイクル(M1サイクル)を、フェッチサイクルと呼びます。 なお、1つの命令を実行する際のサイクル数は3とは限りません。 NOP命令は1サイクルしかありません(M1サイクルしかない) INC (IX+d)命令は6サイクルもあります(M1~M6サイクルがある) フェッチサイクルは、命令コードをフェッチするサイクルで、英語の「fetch」とは「何かを取ってくる(何かを取り出す)」と言う意味の動詞です。 命令コードをメモリから「取ってくる」サイクルなので「フェッチサイクル」と呼ばれます。 フェッチサイクルは、各サイクルにM1、M2、M3…M6と数字を振った場合の最初のサイクル、つまり「M1サイクル」で、CPUの「M1ピン」は、その名前の通り「M1サイクルを実行中にのみアクティブになるピン」です。

taritarianime
質問者

補足

すいません。つまり、 「M1ピンの役割」とはCPUの「フェッチサイクル」処理が終わったことをI/O等に出力する(いわばCPUの処理状態を知らせる)役割を持つピンであり、その情報を元に、I/Oが「CPU」に対して、データを流すという解釈でよろしいのでしょうか? 例えると、交通整理する際に無線などで、最後に通過した車の特徴を相手に伝える。情報を伝えられた誘導員は、その特徴に一致する車が通過したのを確認したら、停車させていた車を流す。という感じでいいのでしょうか?

その他の回答 (3)

回答No.3

>この「フェッチサイクル」というよりは「マシンサイクル」のほうが正しいと思いますが、どうなんでしょうか? 「フェッチサイクル」で正しいです。 例えば「LD (HL),A7H」を実行しようとすると、Z80は以下のような動作をします。 M1サイクル(フェッチサイクル):4クロック使用 PCレジスタの示すアドレスのメモリから、命令コード「36H」を取り出し、コードの解釈を行ない、PCをインクリメントする M2サイクル(メモリリードサイクル):3クロック使用 PCレジスタの示すアドレスのメモリから、イミディエート値「A7H」を取り出し、PCをインクリメントする M3サイクル(メモリライトサイクル):3クロック使用 HLレジスタの示すアドレスのメモリに、M2サイクルで取り出した「A7H」を書き込む 「マシンサイクル」とは、上記の3つのサイクル(M1、M2、M3)の事を言います。 「フェッチサイクル」とは、上記のマシンサイクルのうち、一番最初のサイクルである「M1サイクル」だけを言います。 そして「M1ピン」は、名前の通り「M1サイクル(フェッチサイクル)の時だけ」アクティブになります。M2サイクルやM3サイクルではアクティブになりません。 「マシンサイクル」は、前述の「M1、M2、M3サイクルを全部含めたサイクル」を意味するので間違いです。

taritarianime
質問者

補足

つまり、「フェッチサイクル」とは「マシンサイクル(3つのサイクル)」の内のひとつ(M1サイクル)という解釈でよろしいのでしょうか?

回答No.2

>>M1ピンは、タイミングを合わせるためのピンで、 >↑ということですが、「タイミングを合わせる」とはどういうことなんでしょうか? Z80のM1ピンは「CPUがフェッチサイクルになっている時にアクティブになるピン」です。 フェッチサイクルとは「命令コードをメモリから取り出すサイクル」で、M1ピンはCPUがどういう状態になっているかを外部から知る、重要な信号ピンです。 フェッチサイクルが終了し、CPUが「命令の解析」を始めると、アドレスバスやデータバスは「CPUが使ってない、他の周辺チップで使える状態」になります。 「アドレスバスやデータバスを、他の周辺チップで使える状態」だと言うのをPIOに入力すれば、PIOは「使われてないタイミング」で、アドレスバスやデータバスを使用する事が出来ます。 この「空いてるタイミングを周辺チップに知らせる」のがM1ピンの役割で、CPUと周辺チップ同士で「タイミングを取る」のに欠かせません。

taritarianime
質問者

補足

すいません。 >「CPUがフェッチサイクルになっている時にアクティブになるピン」と書かれていますが この「フェッチサイクル」というよりは「マシンサイクル」のほうが正しいと思いますが、どうなんでしょうか?

回答No.1

その書籍は持っていませんが。 しかしま~古い言葉がいっぱいですね。 INTピンの意味を考えてもらえればわかるかと これ、「インターラプト」の略です。 PIOがデータを受け取ったりして、CPUに流そうと 思っていた時、CPUが例えば別の処理をしていてスルーしたら? 取りこぼしますよね? なので、他のIO機器に状態の変化などがあり、それらを 教えたい!って時に、使っているものと思います。 Z80 SIOには、少しだけバッファがあった気がするので、 この場合はポーリングが使えるのですが、PIO=パラレルIO の場合は、INTで呼び出し 「送るよ~」~「受け取るよ~」っていう「タイミング」を あわせるという・・・ を意味している部分ではないかと。 でも、8255チップなんて、もう売ってるのかな~

関連するQ&A