質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.46%

  • CPU

    54questions

「Z80CPU」及び「PIO」における、「M1ピン」の役割及びマシンサイクルについて

受付中

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 879

mr0237

score 144

「Z80CPU」及び「Z80PIO」に関する質問なんですが、

Z80CPU及びZ80PIOに付いている「M1ピン」についてですが、この「M1ピン」は何の役割があるのでしょうか?

「コンピュータはなぜ動くのか 知っておきたいハードウエア&ソフトウエアの基礎知識」書籍内の
「第2章:コンピュータを作ってみよう。」内の「他の制御ピンをつなぐ」(P42)には

M1ピンは、タイミングを合わせるためのピンで、INTピンは、Z80 PIOからZ80 CPUに割り込みを要求するためのピンです。

と記載されていますが、これはCPU内において

1. CPU側:マシンサイクル内において最初の工程(フェッチサイクル=命令取出し)処理が終了

フェッチサイクル=命令取出し)処理が終了

2. CPU側:M1ピンを通じてI/Oに処理終了を出力する(いわばフェッチサイクル終了を知らせる)

3. I/O側:CPUからデータを送信する。

4.CPU側:「RETI命令」で処理の優先順位を変更する

MIピンにて終了及びRETI命令の実行

という工程だと思いますが、M1ピンの役割は「フェッチサイクル終了を知らせる(タイミングを合わせる)」役割であると、解釈してよろしいのでしょうか?

又、Z80CPUには「ディージーチェインの優先度を変更する」ということなんですが」、これはどういうことなんでしょうか?

つまり、「CPU」以外に繋がっている「メモリ」&「PIO」の接続を電子回路上にて、「直接接続」or「直接切断」するということ何でしょうか?

回路上にて接続・切断?


さらに、この「マシンサイクル」についても質問がこざいますが、

「マシンサイクル」「命令サイクル」とも呼ばれるらしいのですが、これは基本的には同じものを指すのでしょうか?

「マシンサイクル」日本語に直訳すると「機械繰り返し(?)」と訳されると思いますが、この「マシンサイクル」という名前の由来は何なんでしょうか?

③マシンサイクルにて基本的に構成されている要素は

1. 命令取出し(フェッチ)
2. 読み込み(メモリリード)
3. 書き込み(メモリライト)

基本的にこの3つで構成されているのでしょうか?

回答のほうお願いします


(9月3日 追記)
すいません。M1ピンの役割日常的に例えたもののほうがわかりやすいです。

お願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

1. CPU側:マシンサイクル内において最初の工程(フェッチサイクル=命令取出し)処理が終了

M1というのは、命令のフェッチサイクルである、ことを示す信号です

①「マシンサイクル」は「命令サイクル」とも呼ばれるらしいのですが、これは基本的には同じものを指すのでしょうか? 

同じものでしょうね

で、RETIによる優先順位変更については、IEI、IEOの信号をまず理解することが必要です。
Z80のハードウエアマニュアルをよく読んで理解しましょう

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/09 23:22

    M1というのは、命令フェッチサイクルであることを示す信号です。
    そのメモリアクセスが命令フェッチサイクルか、オペランドアクセスかの区別のためにあります
    で、そのM1信号を使っているのが、まさに、Z80PIOや、Z80SIOなどの周辺デバイスです、
    M1信号がないと、周辺デバイスが割り込みペンディング状態を取得できなくなって、正常な割り込み処理ができなくなります

    しかし、こんなところで駄々こねるより、ハードウエアマニュアルを読みましょうよ。その信号がどんな意味を持ってるか書いてあります

    キャンセル

  • 2018/09/09 23:26

    ああ、ハードウエアマニュアルというのは、Z80CPUはもちろんのこと、Z80PIOのものも読みましょうねっ

    キャンセル

  • 2018/09/11 01:23

    >しかし、こんなところで駄々こねるより、ハードウエアマニュアルを読みましょうよ。その信号がどんな意味を持ってるか書いてあります

    すいません。「Z80CPU」と「Z80PIO」のハードウエアマニュアルとかの技術書をよく読んでみたのですが、それでもわからなくて質問しているんですが。例えば

    >M1信号がないと、正常な割り込み処理ができなくなる

    このように書いてありますが、もしこの「正常な割込み処理」ができなくなるとどうなるのでしょうか?

    分かりやすく言うと、「処理の効率が落ちてしまう(=処理が重くなる)」ということなのでしょうか?

    キャンセル

  • 2018/09/11 07:00

    割り込み処理ができなくなります
    Z80のシリーズでは、デイジーチェインという仕組みと、周辺デバイス自身が割り込み終了を示すRETI命令を解釈する、ということで割り込みの優先度シーケンスを構築しています
    そのためにM1信号が使用されてますねー

    まあ、これを理解するにはそもそも割り込み処理とは何か、これを実現するためにはなにをしなければならないか、などを理解する必要がありますね

    キャンセル

  • 2018/09/13 18:53

    すいません。

    >割り込み処理ができない

    これをもっと詳細に(電気回路的に)いうと「誤動作に繋がってしまう」ということでしょうか?

    それとも本当に原理的にできないのでしょうか?

    何度もすいません。

    キャンセル

  • 2018/09/13 19:30 編集

    Z80の周辺デバイス(Z80PIO)は独自に、いま実行する命令、をデコードしてます。
    その命令フェッチサイクルを判定するのにM1を使ってます
    それができないと、そもそもZ80のデイジーチェーンシステムは成り立ちません。
    #まあ、割り込みアクノリッジにもM1は使ってますが、これはべつのおはなし

    キャンセル

  • 2018/09/15 08:43

    何度もすいません。「コンピューターはなぜ動くのか?」の書籍内に

    >M1ピンはタイミングを合わせるためのピンで

    と記載されておりますが、
    これは上記のコメント内容を参考に解釈すると

    「M1ピンは命令フェッチサイクルを示す信号を出力することによって、割り込みのタイミングを合わせるためのピン」

    という解釈でいいのでしょうか?

    キャンセル

  • 2018/09/15 08:51

    割り込みのタイミングを合わせるため、ではないです。
    ぶっちゃけ、あなたの質問、言ってることはすべて的外れです

    あなたのやりたいことはなんですか?
    M1の信号の意味を知りたいと言うなら、すでに何度も言ってます
    Z80の割り込みのシーケンスを知りたいと言うなら、まずZ80のマニュアルを読んで理解しようとしてください。
    そこらへんの基本的な知識がないままやり取りしても不毛なだけです
    いろんな信号でいろんなやり取りをして割り込みのシステムが成り立ってます。それをM1だけとってきてどーこーするのはするのは無意味です

    キャンセル

  • 2018/09/18 07:40

    じゃあ。すいません。「コンピューターはなぜ動くのか?」の書籍内に

    >M1ピンはタイミングを合わせるためのピンで

    と記載されておりますが、これはどう解釈したら良いのですか?教えてください。

    キャンセル

  • 2018/09/18 08:13

    その書籍を読んだことはないし、著者がなにを考えてそう書いてるのかも知りません。
    その文章が果たして割り込みに関して書かれたものか、前後もないので判断できません。
    それを書いた人に聞きましょう

    キャンセル

  • 2018/09/19 10:18

    じゃあすいません。

    >ぶっちゃけ、あなたの質問、言ってることはすべて的外れです

    と書かれておりますが、

    このサイトにある

    https://okwave.jp/qa/q9522297.html

    上記の回答内容にて、(全体から見て)共通して書かれていることとして

    ・「M1ピンは(CPUの処理が)空いてるタイミングを周辺チップに知らせる為の役割」

    ・「CPUの状態の変化などがあり、それらを教えたい時に使っている」

    等と書かれておりますが、私自身の傾向から見て要約すると、

    「M1ピンは命令フェッチサイクルを示す信号を出力する為のピン。」

    「CPU等の割り込みのタイミングを合わせる為に「M1ピンの出力信号」を利用する。」

    と(私自身)解釈されますが、私自身の解釈はどの部分が間違っているのでしょうか?

    詳しく、わかりやすい例えで教えてください。

    よろしくお願いいたします。

    キャンセル

  • 2018/09/19 10:41

    繰り返しになりますが、ハードウエアマニュアルを読みましょうよ。
    この世の中で唯一、Z80に関して、本当のことしか書いてない文書です。

    あなたが屁をこいたとしましょう
    あるひとは、臭いなー、とおもいます
    あるひとは、ああ、うんこの前触れなんだな、と思います
    あるひとは、こんな時間に屁とはなんだ!これは我々に対する侮辱である、とおもいます。
    これらの人の解釈はどこが間違ってるでしょうか。
    で、あなたの言う本当のこと、とはどういうことでしょうか。

    キャンセル

  • 2018/09/20 07:46

    >繰り返しになりますが、ハードウエアマニュアルを読みましょうよ。

    上記のコメントにも書いてありますが、ハードウエアマニュアルとかの技術書をよく読んでみたのですが、それでもわからなくて質問しているんですが。

    >あなたの言う本当のこと、とはどういうことでしょうか。

    上記のコメント内容とこれと関係あるんですか?

    それで、念の為確認なんですが、私自身が書いたM1ピンの役割及びタイミングに関してコメントの内容は正しいのでしょうか?それとも間違っているのでしょうか?

    間違っていたら、どこが間違っているんですか?詳しくわかりやすく教えてください。

    よろしくお願いいたします。

    キャンセル

  • 2018/09/21 00:00

    間違っています。
    「CPU等の割り込みのタイミングを合わせる為に「M1ピンの出力信号」を利用する。」
    周辺デバイスの割り込み出力は、M1信号に関わりなく出力されます。
    それだけのはなしです。

    キャンセル

  • 2018/10/04 07:43

    何度も失礼します。

    Z80のハードウエアマニュアル
    にて、「Z80 CPU」についている「M1ピン」は「出力専用」で、「Z80PIO」についている「M1ピン」は「入力専用」となっていますが、これはつまり、M1ピンは、「命令フェッチサイクルであることを示す」のみしかできないということなんでしょうか?

    何度もすいません。

    キャンセル

  • 2018/10/04 08:37

    http://www.zilog.com/appnotes_download.php?FromPage=DirectLink&dn=UM0080&ft=User%20Manual&f=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTk2T0RBdlZVMHdNRGd3TG5Ca1pnPT0=

    Z80CPUのマニュアルです。
    M1信号は、命令フェッチサイクル、のほかに、割り込みアクノリッジサイクルでもアクティブとなります
    # Figure 9. Interrupt Request/Acknowledge Cycle

    さて、この割り込みアクノリッジサイクルのM1信号のこのふるまいはなにを意味しているのか、ということを調べてみましょう。
    これは、割り込みを生成する側、Z80PIOのハードウエアマニュアルを調べる必要があります。

    キャンセル

  • 2018/10/05 11:52

    何度も失礼します。
    Z80PIOのハードウエアマニュアルはどこで入手できますか?
    ネットで調べても出てこないんですが、どこにあるんでしょうか?

    キャンセル

  • 2018/10/05 12:05

    「z80pio datasheet」でぐぐるとふつーにでてきますね

    http://www.z80.info/zip/z80piomn.pdf

    こことかどうぞ

    キャンセル

  • 2018/10/08 00:15

    何度も失礼します。
    z80pio datasheetのマニュアルにて「M1信号の役割」はどこに載ってあるんですか?
    そもそも「割り込みアクノリッジサイクル」についてどこに記載しているんですか?

    キャンセル

  • 2018/10/08 06:02 編集

    上に示したマニュアルでは、
    CHAPTER 6 INTERRUPT SERVICING
    にそこらへんの説明があります
    Figure 6-1. Interrupt Acknowledge Timing
    で、割り込みアクノリッジサイクルのタイミング図があります
    また、
    Figure 6-2. Return From Interrupt Cycle
    で、RETI命令実行時のタイミング図ですね。

    さて、ここに来てようやく、私の回答に追いついてきました
    > で、RETIによる優先順位変更については、IEI、IEOの信号をまず理解することが必要です。
    > Z80のハードウエアマニュアルをよく読んで理解しましょう

    # M1信号の解説については、Z80CPUのマニュアルの6ページあたりに書いてますね

    キャンセル

  • 2018/10/08 06:11

    さて、Z80(とその周辺デバイス)がなんでこんなややこしいことをしているか、というと、
    ・同時に複数のデバイスが割り込みを出したとき
    ・割り込み処理の実行中に、他のデバイスが割り込みを出したとき
    に、動作が破綻しないようにするためなのです

    キャンセル

  • 2018/10/14 10:24

    すいません

    >CHAPTER 6 INTERRUPT SERVICINGにそこらへんの説明があります

    「CHAPTER 6 INTERRUPT SERVICING」のところを読んでみたのですが

    これはつまり、「M1ピン」の役割は、「命令フェッチサイクルであることを示す」だけしか(M1ピンは)できないということなんでしょうか? 

    言ってみれば、

    「Z80 CPU」についている「M1ピン」→「出力専用」

    「Z80 PIO」についている「M1ピン」→「入力専用」

    マニュアルにはそのように書いてありますが、そのような解釈で良いのでしょうか?

    キャンセル

  • 2018/10/14 21:40

    それはそういうことですな
    Z80CPUのM1ピンは入力にはなりません
    #HiZにはなるけど

    キャンセル

+1

M1ピンは、メモリアクセスが命令の1バイト目であることを示す信号です。
例えばLD A,(0100H)は3バイト命令ですが、1バイト目のアクセス時だけM1がアクティブになって、2-3バイト目のアクセス時にはアクティブになりません。また、この命令によって行われる0100H番地からの読み込みの時もアクティブになりません。
なので、質問文中に書かれていることは全部間違いです。

なお、Z80だとプリフィックス付きの命令があり得ますが、この際のM1については、プリフィックスと本来の命令の1バイト目両方でオンになったのかどうかは、覚えていません。

Z80CPUには「ディージーチェインの優先度を変更する」ということなんですが」

これについては、そもそものZ80の割り込み処理についての理解が要ります。

①「マシンサイクル」は「命令サイクル」とも呼ばれるらしいのですが、これは基本的には同じものを指すのでしょうか?

マシンサイクルは、普通は、マシンクロック(2MHzとか)の1回の繰り返しのことです。命令サイクルという言葉は一般的では無いと思いますので、意味はわかりません。『「マシンサイクル」は「命令サイクル」とも呼ばれる』と書かれていたのであれば、書いた人は同じ意味で使っているのでしょう。他人には分かりません。

②「マシンサイクル」は日本語に直訳すると「機械繰り返し(?)」と訳されると思いますが、この「マシンサイクル」という名前の由来は何なんでしょうか?

マシン動作の繰り返しの基本単位だからでしょう。

③マシンサイクルにて基本的に構成されている要素は
基本的にこの3つで構成されているのでしょうか? 

これは日本語の問題ですね。厳密な意味がちょっと読み取れないので、なんとも。
「CPUのある瞬間の動作は基本的にこの3種類だけでしょうか?」
という質問であれば、命令取り出しもメモリリードの一種なので、そのあたりどういうつもりで書いたのかに依ります。あと、Z80だとDRAMリフレッシュというのもありますね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/02 12:16

    すいません。質問文中に書かれていることは全部間違いだということなんですが、上記の書籍に掲載されていた「タイミングを合わせる」とはどういうことなんでしょうか?
    そもそも「Z80CPU」及び「Z80PIO」にて、「タイミング」とは、なんのことを指しているのでしょうか?

    キャンセル

  • 2018/09/02 15:54 編集

    CPUの信号出力ピンは、アドレス・データ用を除いて、基本的に「タイミングを合わせる」ための物です。メモリやPIO/SIOに動作を指示します。
    (つまり「M1ピンは、タイミングを合わせるためのピン」という表現は情報量ゼロです)

    例えば、WRはその信号がアクティブになったタイミングで出力データが確定するので、WRをトリガにしてメモリやIOに書き込みます。
    M1は、IOからの割り込みベクターの出力に使うんだったような気がします。IOREQかつRDかつM1で、PIO/SIOは割り込みベクターを送出する。単純なメモリ読み書きには、M1信号は多分不要。

    キャンセル

  • 2018/09/02 19:50

    すいません。じゃあM1ピンの役割とは、「空いてるタイミングを周辺チップに知らせる」と聞いたのですが全く違うということなんでしょうか?ここに掲載されていたのですがこれとは別物なんでしょうか?

    「タイミングを合わせるとはどういうことなのか?」https://okwave.jp/qa/q9522297.html

    キャンセル

  • 2018/09/02 19:52

    すいません。さっきの件なんですが、これはつまり、「M1ピン」の役割とは「フェッチサイクル終了時にCPUに割り込んでも良いタイミングを知らせる(出力)するためのピンのこと」だということなんでしょうか?

    キャンセル

  • 2018/09/02 20:55

    > じゃあM1ピンの役割とは、「空いてるタイミングを周辺チップに知らせる」と聞いたのですが全く違うということなんでしょうか?

    違います。M1がインアクティブでも、CPUはバスを使っています。命令の1バイト目以外のメモリアクセスは、M1がインアクティブです。と、回答の最初に書いたのですが?
    周辺装置がバスを使いたいときは、CPUに対して、BUSRQを出して、CPUからBUSAKをもらって、ようやく使えるようになります。
    BUSRQ自体は任意のタイミングで出せるはずです。

    キャンセル

  • 2018/09/04 01:01

    すいません。何か気がかりな点がありますが
    https://okwave.jp/qa/q9522297.html
    上記の回答内容にて、(全体から見て)共通して書かれていることとして

    ・「CPUの「M1ピン」は、M1サイクル(フェッチサイクル)を実行中にのみアクティブになるピン」
    ・「M1ピンは(CPUの処理が)空いてるタイミングを周辺チップに知らせる為の役割」
    ・「CPUの状態の変化などがあり、それらを教えたい時に使っている」

    等と書かれておりますが、なぜそのように書かれているのでしょうか?

    もし「M1ピンは、メモリアクセスが命令の1バイト目であることを示す信号」だとしたら、
    リンク先である回答内容には「命令コードの1バイト目であることを示す信号である」等と共通してそのように書いてあるはずなのですが、なぜ「空いているタイミングを知らせる」等そんな風に書かれていたのでしょうか?

    あえて初心者に分かりやすいように、そのように書いたのでしょうか?

    キャンセル

  • 2018/09/04 10:28

    ・「CPUの「M1ピン」は、M1サイクル(フェッチサイクル)を実行中にのみアクティブになるピン」
    は、私が書いているのと同じですね。
    ・「M1ピンは(CPUの処理が)空いてるタイミングを周辺チップに知らせる為の役割」
    を書いているのは1名だけですね。
    ・「CPUの状態の変化などがあり、それらを教えたい時に使っている」
    は具体性がないので、何とも。私の書いた、
    > CPUの信号出力ピンは、アドレス・データ用を除いて、基本的に「タイミングを合わせる」ための物です。
    と同じとも取れる。

    キャンセル

  • 2018/09/04 10:33

    > もし「M1ピンは、メモリアクセスが命令の1バイト目であることを示す信号」だとしたら、

    なお、回答に書いた通り、憶えてませんが、プリフィックス付きの命令( ED xx、CB xx、 DD xx、FD xx )については、2バイト目以降でもオペコードフェッチの間はM1がアクティブになったかも知れません。

    キャンセル

  • 2018/09/05 19:39

    何度も失礼します。そもそもここでいう「アクティブ」とはどういう意味なんでしょうか?
    「アクティブ」について自分なりの考えで失礼しますが、「なんかの動作中に「入力等」を受け付ける」という解釈で正しいのでしょうか?

    間違っていたら誠にすいませんが、(なるべくわかりやすく)教えてください。 本当にすいません。

    キャンセル

  • 2018/09/05 19:44 編集

    アクティブ、とは、有効状態、ということです
    Lowアクティブの信号線では、アクティブでLowになります。
    M1もLowアクティブの信号線ですね。
    繰り返しますが、M1は命令のフェッチサイクルにアクティブとなる信号線です。

    って、それより、Z80の割り込みシーケンスを理解したいなら、デイジーチェインをまず理解しないとだめです。IEI、IEOというのはどんな信号か調べてみてはどうでしょうか。

    キャンセル

  • 2018/09/05 19:59

    アクティブの意味を分かっていなかったとは。
    アクティブとは、有効と言うことです。M1がアクティブな時は、M1サイクルであることを示し、RDがアクティブなときは、メモリやIOからのリード状態であることを示します。他も同様。

    アクティブかどうかは、その信号線の出力電圧で判断します。
    M1という信号名の上に上線が付いていると思いますが、M1(上に線)は、負論理(電圧が低いときにアクティブ、電圧が高いときにインアクティブ)です。上に線の無い信号名は、正論路(電圧が高いときにアクティブ、低いときにインアクティブ)です。
    Z80のピンの制御信号は全部上に線が書いてあり、全部負論理です。
    ピンの残り、アドレス信号・データ信号は、正論理(電圧が高いと1、低いと0)です。

    キャンセル

  • 2018/09/09 23:10 編集

    何度も失礼します。

    >M1ピンは、メモリアクセスが命令の1バイト目であることを示す信号です。

    >M1は、IOからの割り込みベクターの出力に使うんだったような気がします。IOREQかつRDかつM1で、PIO/SIOは割り込みベクターを送出する。単純なメモリ読み書きには、M1信号は多分不要。

    ということですが、そもそも「M1ピン」は何の為にあるのでしょうか?
    M1ピンが「ある」のと「ない」のとでは、どんなメリットやデメリットがあるのか、どう役に立つのかよくわかりません。

    M1ピンは何の為にあって、M1ピンが「ある」のと「ない」のとでは、どう違うのでしょうか?

    (なるべくわかりやすく)教えてください。 何度もすいません。

    キャンセル

  • 2018/09/09 23:23

    普通のメモリアクセス回路には不要だと思います。
    IOからの割り込みについては上記の通り必要です。

    キャンセル

  • 2018/09/10 07:29

    昔、Z80系は使った事がありますが、記憶に無いという事は必ずしも使う必要が無いという事ではないでしょうか? まあ、ハード専門で無いので見落としていた可能性はありますが、、。(当然、端子の始末くらいはしてた筈)

    キャンセル

  • 2018/09/11 01:22

    すいません。何度も失礼します。この

    >IOからの割り込みについては上記の通り必要です。

    とこのように書いてありますが、もし「IOからの割り込み」に「M1信号(M1ピン)」がないとどうなるのでしょうか?

    分かりやすく言うと「処理の効率が落ちてしまう(=処理が遅くなる)」ということなのでしょうか?
    何度もすいません。

    キャンセル

  • 2018/09/11 01:27

    割り込み命令や割り込みベクターをCPUにいつ送っていいのかわかりません。
    前に書いたのですが。2018/09/02 15:54 のコメント。

    キャンセル

0

何が質問の主旨かよく分からないですが、、、

まず、Z80 と Z80PIOは別物ですね。 Z80PIOは、パラレルI/F用チップ。
M1ピンは知らなかったですが、8ビット CPU Z80タイミング によると、オペコードフェッチ中を示すようですね。(この間は、リフレッシュするな? という意味か。
で、ここによると、Mサイクルは、マシンサイクル。M1は、命令フェッチで、その後に、M2, M3, ... と続くようです。(ま、当然?) 単純な命令は、メモリ読出し、メモリ書出しで終わるで、M1, M2, M3 で終わると。複雑な場合は、それ以降も必要になるということでしょう。 (演算もあるし、ループもあったと思う)

デージーチェーンの優先度変更は、割込み優先度変更という事でしょうか? これもZ80だと別チップだったか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.46%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる