- ベストアンサー
コンピュータのタイミングとは?
- コンピュータのタイミングを合わせるためのピンとは?
- Z80CPUとZ80PIOにおけるタイミングとは何を指すのか?
- コンピュータのタイミングについて簡単に教えてください。
- みんなの回答 (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サイクルを実行中にのみアクティブになるピン」です。
その他の回答 (3)
- chie65536(@chie65535)
- ベストアンサー率44% (8802/19961)
>この「フェッチサイクル」というよりは「マシンサイクル」のほうが正しいと思いますが、どうなんでしょうか? 「フェッチサイクル」で正しいです。 例えば「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サイクルを全部含めたサイクル」を意味するので間違いです。
補足
つまり、「フェッチサイクル」とは「マシンサイクル(3つのサイクル)」の内のひとつ(M1サイクル)という解釈でよろしいのでしょうか?
- chie65536(@chie65535)
- ベストアンサー率44% (8802/19961)
>>M1ピンは、タイミングを合わせるためのピンで、 >↑ということですが、「タイミングを合わせる」とはどういうことなんでしょうか? Z80のM1ピンは「CPUがフェッチサイクルになっている時にアクティブになるピン」です。 フェッチサイクルとは「命令コードをメモリから取り出すサイクル」で、M1ピンはCPUがどういう状態になっているかを外部から知る、重要な信号ピンです。 フェッチサイクルが終了し、CPUが「命令の解析」を始めると、アドレスバスやデータバスは「CPUが使ってない、他の周辺チップで使える状態」になります。 「アドレスバスやデータバスを、他の周辺チップで使える状態」だと言うのをPIOに入力すれば、PIOは「使われてないタイミング」で、アドレスバスやデータバスを使用する事が出来ます。 この「空いてるタイミングを周辺チップに知らせる」のがM1ピンの役割で、CPUと周辺チップ同士で「タイミングを取る」のに欠かせません。
補足
すいません。 >「CPUがフェッチサイクルになっている時にアクティブになるピン」と書かれていますが この「フェッチサイクル」というよりは「マシンサイクル」のほうが正しいと思いますが、どうなんでしょうか?
- AsarKingChang
- ベストアンサー率46% (3467/7474)
その書籍は持っていませんが。 しかしま~古い言葉がいっぱいですね。 INTピンの意味を考えてもらえればわかるかと これ、「インターラプト」の略です。 PIOがデータを受け取ったりして、CPUに流そうと 思っていた時、CPUが例えば別の処理をしていてスルーしたら? 取りこぼしますよね? なので、他のIO機器に状態の変化などがあり、それらを 教えたい!って時に、使っているものと思います。 Z80 SIOには、少しだけバッファがあった気がするので、 この場合はポーリングが使えるのですが、PIO=パラレルIO の場合は、INTで呼び出し 「送るよ~」~「受け取るよ~」っていう「タイミング」を あわせるという・・・ を意味している部分ではないかと。 でも、8255チップなんて、もう売ってるのかな~
補足
すいません。つまり、 「M1ピンの役割」とはCPUの「フェッチサイクル」処理が終わったことをI/O等に出力する(いわばCPUの処理状態を知らせる)役割を持つピンであり、その情報を元に、I/Oが「CPU」に対して、データを流すという解釈でよろしいのでしょうか? 例えると、交通整理する際に無線などで、最後に通過した車の特徴を相手に伝える。情報を伝えられた誘導員は、その特徴に一致する車が通過したのを確認したら、停車させていた車を流す。という感じでいいのでしょうか?