• 締切済み

ステート数とは

これからz80アセンブラの勉強を始めようとしています。 ステート(数)という言葉の定義を教えてください。 1命令にかかるCPU処理時間という認識でいるのですが正しいでしょうか?

みんなの回答

  • notnot
  • ベストアンサー率47% (4856/10272)
回答No.2

>1命令にかかるCPU処理時間という認識でいるのですが正しいでしょうか? 正しいです。#1の方の書いていることも間違いではないですが、質問を読み違えているようです。 もちろん処理時間に直すためには各命令のステート数をCPUクロック周波数で割る必要がありますが。 レジスタだけを扱う1バイト命令だと4ステートでこれが最小ですね。メモリアクセスする命令は同じバイト数の命令でもメモリアクセス方法によってステート数が異なります。

全文を見る
すると、全ての回答が全文表示されます。
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

> 1命令にかかるCPU処理時間という認識でいるのですが正しいでしょうか? 違います。 一命令が複数ステートかかる場合もあります。 詳しくは参考URLで。 でもハード屋さんか、ぎちぎちに最適化するゲームプログラムでもない限り ステートを気にする必要は多分ないんじゃないかなあ。

参考URL:
http://rryu.sakura.ne.jp/compfund/backnumber/compfund019.txt
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マイコンのステート数

    こんばんわ。今、マイコンを勉強しています。 使用しているマイコンはATC-80ZIIです。 マイコンでプログラムを組んで実行した時にかかる時間(実行時間)を計算で求める方法を調べています。実行時間を求める方法はステート数にクロック周期(クロック周波数の逆数)をかけるという事は知っているのですが、各命令に対してかかるステート数がわかりません。例えば00HをAレジスタに転送する場合、(LD A,00H)のステート数は7らしいです。本に載っていると思って調べてみたんですが見つからなかったのでここに質問しました。どこかに表とかに一覧で載っていないでしょうか? よろしくお願いします。

  • CPU、Z80からステート数から命令時間を求める

    マイコンボードACTーZIIを用いて実験を行ったのですがステート数を用いて命令時間の求め方がわかりません。 CPUはZ-80、クロック周期4MHzを用いて以下のプログラムの実行回数とステート数を求めたのですがあっているのでしょうか? だれか、教えてください。 まちがっていた場合、詳しく説明していただけるとうれしいです。 ラベル ニーモニック  ステート数 実行回数 小計(命令時間) LD A, 0FFH 7 1 7 OUT (00H), A 10 1 10 LD B, 0EH 7 1 7 L1: LD C, 0B1H 7 1 7 L2: DEC C       4 3 12 JP NZ, L2 10 3 30 DEC B       4 3 12 JP NZ, L1 10 10 100 LD A, 00H 4 1 4 OUT (00H), A 10 1 10 LD B, 0EH 4 1 4 L3: LD C, 0B1H 4 1 4 L4: DEC C       4 3 12 JP NZ, L4 10 3 30 DEC B       4 3 12 JP NZ, L3 10 10 100 JP 8000H 10 46 460 合計      119 92 821

  • C言語によるウェイト

    C言語による正確な時間を定めたウェイト(例えば100msのウェイト)の挿入方法を探しています。 C言語でのウェイトの挿入方法を調べたところ、for文等で挿入できるのはわかったのですが、時間の求め方までわかりませんでした。 時間の求め方で調べたところ、アセンブラなら命令のステート数とクロック周波数より求める方法を知りました。 ですがアセンブラでの方法ではなく、C言語での時間の計算方法を覚えたいと思います。 些細な事でもかまいませんので、ご回答頂ければと思います。 どうぞ宜しくお願いします。

  • クロック周波数の計算問題について

    クロック周波数に関する問題を解こうとしているのですが、 公式がどうも覚えづらくて仕方ないのですが・・・ 何か良い解き方はないものでしょうか? 【問題】基本情報処理 平成19年 秋  「 1GHzで動作するCPUがある。このCPUは,機械語の1命令を平均0.8クロックで実行できることが分かっている。このCPUは1秒間に約何万命令実行できるか。 」 【公式】   (1) 1クロックの時間 = 1÷クロック周波数   (2) 1命令の実行時間 = 1命令の実行に必要なクロック数×1クロックの時間   (3) 1秒間の命令実行回数 = 1÷1命令の実行時間(命令) --------------------------------------------------------------- 【考え】  公式より、   (3)の答えを出したければ (2)が必要であり   (2)の答えを出したければ (1)が必要である。     であるから、先に(1)を求め (2)を求め (3)を最終的に求める。  という風に解いてはいるのですが、教科書を見ながらだと解ける状態ですが、いざ時間を空けると公式を忘れてしまって、この手の問題が解けないことがあり、困っています。   何か逆算みたいで、覚えづらいので一度覚えてもすぐに忘れしまうのですが・・・     この問題をとく方法としては、一旦、解き方の流れを把握して、求め方を覚えるしかないでしょうか? 【ふとした疑問】   この問題をしてふと思ったのですが、クロック周波数の計算事態は、実際にどこでどういう場面で使われるものなのでしょうか? 何だか、ただ問題を解いているようで、ちょっとイメージが浮いている感じがしているのです・・・(汗)   

  • VHDL ステートにとどまる時間

    FPGAの初心者です。 上級者の皆さんがNET上に掲載されているVHDLの記述例をみながら勉強中です。 Q1. when detect => if(clk_rx = '1') then if(cnt_bitwidth = 7) then cnt_bitwidth <= 0; state <= proc; else cnt_bitwidth <= cnt_bitwidth + 1; state <= state; cnt_bitwidth = 0 でdetectステートに入ります detect ステートになってから clk_rxの1発目でcnt_bitwidthが1となり clk_rxの2発目でcnt_bitwidthが2となり ・・・・(中略) clk_rxの7発目でcnt_bitwidthが7となり clk_rxの8発目でcnt_bitwidthが7になっているので procステートへ入る ・・・と理解しました。 そうすると、 detectステートにとどまる時間はclk_rx の7周期分になります。 しかし動作から考えると detectステートにとどまる時間はclk_rx の8周期分でなければならない ・・・と思われるので前述の私の理解は間違っていると思います。 間違いを教えてください。

  • 「2個のコア、4個のロジカル プロセッサ」の意味

    いつもお世話になります。 CPU,MPUに詳しい方回答をお願いします。 私は、最近の(M)CPUは勉強していませんが、8ビットマイコンの勉強は遠い昔勉強しました。 今更なのですが、Windows8で「msinfo32」を実行すると私のノートPCは 【Core i3-3120M CPU ` 2.5GHz、2個のコア、4個のロジカル プロセッサ】 とあります。 一方、Core i3-3120M CPUのスペックは以下です。 Intel® CoreTM i3-3120M Processor (3M Cache, 2.50 GHz) ↓↓ http://ark.intel.com/ja/products/71465/Intel-Core-i3-3120M-Processor-3M-Cache-2_50-GHz 【質問1】ロジカルプロセッサとはスレッド数のことを言っているのでしょうか? それとも違う意味でしょうか? 【質問2】マルチスレッドの場合、1クロックでそのスレッド数、私のPCの場合、最大で四つの機械語の命令を同時処理(処理に取り掛かっている)している。 という認識でいいのでしょうか? それとも、コアが二つなので二つの機械語命令が処理中で1クロックで二つの命令にしか対応していないのでしょうか?こちらだと思うのですが… 勿論、スレッドなので常にフルで稼働しているとは限らず、別のスレッド待ち時間などあるとは思います。 専門用語などWebで調べがつく範囲は使用した回答で構いません。 ロジカルプロセッサという言葉の検索でWeb上であまりいい処にヒットせず、調べがつきませんでした。 専門的な知識がほしいので、なるべく、専門家の方、あるいはCPUに詳しい方に専門的なご回答をお願いします。

  • 基本情報処理技術者 H20 春 問19

    クロック周波数が1GHz の CPU がある。 この CPU の命令種別が,表に示す二つから成っているとき,処理能力は約何 MIPS か. 命令種別 実行時間(クロック) 実行速度(%) 命令1 10 60 命令2 5 40 答え:125MIPS 解説 この処理装置では、1命令を実行するクロック数は、 10 × 0.6 +5× 0.4=8 となる。 1秒間に実行できる平均命令数は、 10^9 ÷8=125 125×10^6 =125 となる。 とのことですが、 10^9 ÷8=125は一体何を求めいているのでしょうか? この式は、クロック周期数÷命令1、2のクロック数という式ですが・・・ 結局、いつも、1秒間に何回とかいうところを求めるところで、すべて間違ってしまいます。 色々分数にしているのは、わかるのですが・・・・ どなたかご教授願います。 しかし、情報処理の試験後、PCを投げつけぶっ壊してから、PCを買い換えましたが、 キーボードが微妙に変わって文字が打ちにくいな~。 意図していない文字まで売ってしまう。

  • クロック周波数が1GHzの処理装置がある。この処理装置の命令種別が、表

    クロック周波数が1GHzの処理装置がある。この処理装置の命令種別が、表に示す2つからなりたっているとき、処理能力は約何MIPSか。 命令種別 実行時間「クロック」 実行頻度「%」 命令1 10 60 命令2 5 40 解き方はよくわからなく困っております。 助けてくださいm(__)m ちなみに1GHzは数にあらわすといくつかも分かりにくいです。

  • 有理数無理数の定義とはなにか答えられる方いませんか?

    有理数や無理数はどのように厳密に定義されるのですか? 有理数は2つの整数の比である。 循環する無限小数である。 無理数は循環しない無限小数である。 などを耳にしますが、(無限)小数の定義は何?とか思うのですが そのように考えるのはおかしいでしょうか? 自然数や整数を定義する際に用いる言葉で有理数が定義されるべきではないのですか!? 高校生などに教える際の有理数や無理数の定義が知りたいのではなく。 どのような過程を経て、これらの数は矛盾なく定義されるのか"詳しく"知りたいです。 自然数から整数を構成して、そこから有理数→実数(無理数)という流れですよね。 こうゆうのは"群"などの話になるんでしょうか? 知っている方、回答よろしくお願いします! あと、この質問文のような内容が独学で勉強できる本でオススメなものがあれば、ぜひ教えていただきたいです。

  • CPUの処理待ち数の調べ方と目安を教えてください。

    SolarisサーバにおけるCPUの処理待ち数(WindowsでいうところのSystem - Processor Queue Length)を表示するコマンドを教えていただけないでしょうか。 また、処理待ち数の閾値もお願いします。 閾値はCPUの数やサーバの使い方にもよると思いますが、大体の算出方法を教えてください。 SolarisはWEBサーバ用途でCPUは2個つんでいます。 サーバでは1時間おきにバッチ処理が走り、バッチ処理実行中のCPU idleは0%になります。

このQ&Aのポイント
  • MFC-J6983COWのローラークリーニングシートの購入先を知りたい
  • パソコンやスマートフォンのOSや接続方法、関連するソフト・アプリ、電話回線の種類について教えてください
  • ブラザー製品に関する質問です
回答を見る