BogoMipsの計算とは? わかりやすく解説

BogoMIPSの計算

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 08:53 UTC 版)

BogoMips」の記事における「BogoMIPSの計算」の解説

Linuxカーネル (2.6.x) での BogoMips は /usr/src/linux/init/calibrate.c というソースファイル実装されている。Linuxカーネル使用するタイミングパラメータ loops_per_jiffy (Jiffy についてはジフィ参照)を計算求めている。まず、ソースコードコメントを示す。 /* * A simple loop like * while ( jiffies < start_jiffies+1) * start = read_current_timer(); * will not do. As we don't really know whether jiffy switch * happened first or timer_value was read first. And some asynchronous * event can happen between these two events introducing errors in lpj. * * So, we do * 1. pre_start <- When we are sure that jiffy switch hasn't happened * 2. check jiffy switch * 3. start <- timer value before or after jiffy switch * 4. post_start <- When we are sure that jiffy switch has happened * * Note, we don't know anything about order of 2 and 3. * Now, by looking at post_start and pre_start difference, we can * check whether any asynchronous event happened or not */ loops_per_jiffy はudelay関数(μ秒単位の遅延)とndelay関数(ナノ秒単位の遅延)の実装で使われている。これらの関数は一部のドライバがハードウェアを待つのに必要としている。これらはビジーウェイトを採用しているので、使用するとカーネルは実質的にブロックされる。i386アーキテクチャの場合 /usr/src/linux/arch/i386/lib/delay.c にて delay_loop が次のように実装されている。 /* simple loop based delay: */static void delay_loop(unsigned long loops){ int d0; __asm__ __volatile__( "\tjmp 1f\n" ".align 16\n" "1:\tjmp 2f\n" ".align 16\n" "2:\tdecl %0\n\tjns 2b" :"=&a" (d0) :"0" (loops));} これをCの擬似コードで書き直すと、次のようになる。 static void delay_loop(long loops){ long d0 = loops; do { --d0; } while (d0 >= 0);} BogoMipsさらなる詳細と(ほとんどが古いが)数百BogoMips値が BogoMips mini-Howto にある。

※この「BogoMIPSの計算」の解説は、「BogoMips」の解説の一部です。
「BogoMIPSの計算」を含む「BogoMips」の記事については、「BogoMips」の概要を参照ください。

ウィキペディア小見出し辞書の「BogoMipsの計算」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「BogoMipsの計算」の関連用語

BogoMipsの計算のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



BogoMipsの計算のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのBogoMips (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS