• ベストアンサー

ハードウェア化すると速い?

最近ハードウェアに関する本を読んでいるんですが、ソフトウェア上で実行するアプリケーションをハードウェア化にすると高速に実行できるって書いてあります。 それはなぜですか?ソフト上では1クロックのCPUで1命令しか実行できないに対して、ハードウェアでは数命令もできるらしいですが、具体的にまだよく理解できないです。 特に最近FPGAとかを使用するとハードウェア化を実現可能ですって。。 でも、1命令でパイプライン処理するとソフト上でも数命令できると思います。 この辺はよくご存じる方がいれば是非教えてください。 よろしくお願いします。

  • utada
  • お礼率4% (5/121)

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

  • ベストアンサー
  • zuntac
  • ベストアンサー率36% (45/124)
回答No.3

ハードウェア化することにより処理をパイプライン処理できます。これにより処理速度を劇的に高速化できます。 例えば、テレビを組み立てる工場でたとえてみます。1台のテレビを組み立てるのに10行程があるとします。最初の行程ではTVの外箱を組み立てる、2番目の行程では電源ユニットを取り付ける、3番目ではブラウン管を取り付ける、等々です。この作業を「CPU処理する」ということは、この10の行程の全てを一人の作業者が行うといういことです。この一人の作業者は行程1から順に作業していき、行程10まで行って、やっと1台のテレビが完成します。1つの行程に10分かかるとすると、1台のテレビを作るには100分かかることになります。これに対して「専用ハードウェア化する」ということは10人の作業者を用意することです。最初の作業者は外箱を組み立てる作業のみを行います。外箱1台を作ったら、それを2番目の作業者に渡して、また外箱の組み立て作業に入ります。その間に2番目の作業者は電源ユニットの取り付けを平行して行います。つまり、流れ作業を行うということです。このように10人の作業者が1つの作業を専門に行いますので、100分の間に10台のテレビを作ることができます。つまり、「専用ハードウェア化する」ことにより「CPUで処理する」ことの10倍の速度が得られたわけです。この説明で理解の手助けとなれば幸いです。

その他の回答 (2)

  • rx-78gp03
  • ベストアンサー率43% (138/314)
回答No.2

No.1の方が言われるように特化したH/Wを導入することで専用の処理を高速化させるのと、この事によりCPUの負荷を下げることが出来るからです。(こう言った場合CPUは別のH/W機器に対して命令を送るだけなので。)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

ハードウェア化というのは、特化するということですね。 その機能専用となるわけです。 だから、無駄な部分がなくなるため、速くなりますね。 また、HDDじゃなくて ROMなどにしたほうがアクセスの時間がかからない分 速くなります。

関連するQ&A

  • 命令パイプラインをつかった問題です。

    命令パイプラインをつかった問題です。 あるプロセッサの命令パイプラインは、命令読み出し、命令解読(デコード)、 オペランド読み出し、演算、オペランド書き込みの5つのステージからなり、 各ステージの処理は1クロックで完了する。 このプロセッサにおける平均CPI(Clock Per Instruction)が5であるとすると、 クロック周波数が 1GHzのとき、このプロセッサの 1秒間辺りの平均命令実行数を MIPSあるいはGIPSを単位として答えなさい。 検索してもcpiについてのことが書いてないので(私が理解できずに見過ごしてるかも・・)、cpiについても軽く説明があると嬉しいです!

  • ハードウェアを冷やすには

    自分の使っているPCは、CPUメモリが256MBしかないにもかかわらず、 かなり重いアプリケーションをつかうため、CPUメモリが80%以上が 結構続き、ハードウェアの温度が53℃くらいまでになってしまい、 ハードウェアの温度を下げたいのですが、やはりファンをいれるしか ないでしょうか? 温度を下げるソフトなんかがあると助かります。特にフリーで。

  • CPUの高速化技法

    CPUの高速化技法のパイプライン制御の動作中に分岐命令があった場合の計算問題です パイプライン制御を行うと高速に命令を実行できる反面、分岐命令を行うと、前もって取り出しておいた命令を破棄して再度命令の取り出しからやり直さなければならない。 もし、分岐命令がないとき1つのステージを処理するのに5ナノ秒かかるとすると、6個の命令を実行するのに( )ナノ秒かかる。 この問題が分かりません。 答えは55ナノ秒となってます。

  • 基本情報処理技術者 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を買い換えましたが、 キーボードが微妙に変わって文字が打ちにくいな~。 意図していない文字まで売ってしまう。

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

    クロック周波数に関する問題を解こうとしているのですが、 公式がどうも覚えづらくて仕方ないのですが・・・ 何か良い解き方はないものでしょうか? 【問題】基本情報処理 平成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)を最終的に求める。  という風に解いてはいるのですが、教科書を見ながらだと解ける状態ですが、いざ時間を空けると公式を忘れてしまって、この手の問題が解けないことがあり、困っています。   何か逆算みたいで、覚えづらいので一度覚えてもすぐに忘れしまうのですが・・・     この問題をとく方法としては、一旦、解き方の流れを把握して、求め方を覚えるしかないでしょうか? 【ふとした疑問】   この問題をしてふと思ったのですが、クロック周波数の計算事態は、実際にどこでどういう場面で使われるものなのでしょうか? 何だか、ただ問題を解いているようで、ちょっとイメージが浮いている感じがしているのです・・・(汗)   

  • アルゴリズムは、たった3つの制御構造の組み合わせで記述することができることのハードウエアとからめた理解。

    すべてのアルゴリズムは、たった3つの制御構造の組み合わせで記述することができる。3つの制御構造とは、図1~3が示すような順次実行、分岐実行、繰り返し実行である http://www.rsch.tuis.ac.jp/~kitakaze/2008/flow.html とありますが、 以前、学生時代、教授がこれについて、ハードウェアとからめて説明していたのを 思い出します。 「ハードウエアを見ても、CPUがどうの、こうのだから、 順次実行、ハードウエアのここで分岐を実行して、 ハードウェアのここで反復実行をしている。だからソフトウエアとしてもこの3つの命令ですべてのアルゴリズムを記述できるわけだ」 というような感じの説明でした。 そのときは、なるほど深く理解しているひとは、アルゴリズムというソフトウエアと 回路、素子などによる構成物であるハードウエアと両方見て、合理的に説明する能力が あるのだなと感心しました。 その具体的なひとことは残念ながら思い出せませんので質問します。 ハードウェアとアルゴリズムが3つの指令(分岐、繰り返し、順次)ですべて記述できること の間の関係をうまく説明できる方はいますか? よろしくお願いします。

  • 計算の仕方を教えて下さいm(__)m

    クロック周波数が2.4GHzで動作するCPUがあり、このCPUは機械語の1命令を平均0.8クロックで実行できる。このCPUの性能は何MIPSか教えて下さいm(__)m

  • 計算機工学のプロセッサについて教えて下い

    あるプロセッサにおいて各命令タイプの命令実行の各ステップにおける所要時間は画像の通りとする。 1 以下の2種類のプロセッサ構成方式を採った場合のクロックサイクル時間(最小値単位はns)、各命令タイプの実行所要時間(単位はns)および実行所要クロックサイクル数を求めよ   ・シングルサイクル・データパス   ・マルチサイクル・データパス   ・命令パイプライン処理 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー といった問題です 自分で解いてみたのですが解答がないため、答えが合っているのかが知りたいです ・シングルサイクル 実行時間: ロード命令   1.1+0.4+0.7+1.1+0.4=3.7ns ストア命令   1.1+0.4+0.7+1.1=3.3ns 演算命   1.1+0.4+0.7+0.4=2.6ns 分岐命令   1.1+0.4+0.8=2.3ns よってクロックサイクル時間=3.7ns ・クロックサイクル数: 実行時間=クロックサイクル数*クロックサイクル時間より ロード命令:3.7/3.7 ストア命令:3.3/3.7 演算命令:2.6/3.7 分岐命令:2.3/3.7 ・マルチサイクル 実行時間: ロード命令   (1.1*4)+(0.4*4)+(0.7*3+0.8)+(1.1*2)+0.4=11.5ns ストア命令   (1.1*4)+(0.4*4)+(0.7*3+0.8)+(1.1*2)=11.1ns 演算命令   (1.1*4)+(0.4*4)+(0.7*3+0.8)+(1.1*2)+0.4=11.5ns 分岐命令   (1.1*4)+(0.4*4)+(0.7*3+0.8)=8.9ns クロックサイクル時間は命令フェッチに合わせた4.4ns クロックサイクル数 ロード命令:5 ストア命令:4 演算命令:4 分岐命令:3 ・パイプライン 実行時間 ロード命令   1.1+0.4+0.4+0.7+1.1+0.4=4.1ns ストア命令   1.1+4.1=5.2ns 演算命令   1.1+5.2=6.3ns 分岐命令   1.1+6.3=7.4ns というのが私の考えです 全体的に自信がありません どなたかお分かりになるのでしたら教えていただけませんか 一応画像のものを手書きしておきます         命令フェッチ  レジスタ読み出し ALU演算 データアクセス レジスタ書き込み ロード命令   1100ps      400ps       700ps    1100ps        400ps ストア命令   1100ps      400ps       700ps    1100ps 演算命令    1100ps      400ps       700ps                 400ps 分岐命令    1100ps      400ps       800ps

  • クロック、クロック周期、CPIについての問題

    クロック、CPIだの本当にわからなくてどうにもなりません。 どなたかご教授下さい。 問題) クロック周波数2GHZのCPUで、一つの命令が2クロックで実行できるとき、1命令の実行に必要な時間は何ナノか? 解説) 1クロックは、1/2,000,000,000秒だから、1命令は2クロックなので、 1/2,000,000,000*2=1ナノ 答え:ナノ とあるのですが、全く理解できません。 1命令2クロックで、1クロックの発生周期(時間)って 2クロック分だと、1/2,000,000,000+1/2,000,000,000=1/4,000,000,000になり、 1/4,000,000,000*2=2ナノになるのでは?? 私の考えるイメージ図を添付します。

  • Athlonをpentiumに換算すると

    AMDのCPUはクロックあたりの命令実行数が高いと聞いたのですがintelのCPUに換算するとどのくらいのクロック周波数なのでしょうか?? Athlon 3800+ (2.4GHz)の場合をお教えください また、○.○倍にすると目安になるなどのお話もお待ちしております

専門家に質問してみよう