タグ

CPUに関するatm_09_tdのブックマーク (38)

  • CPUの珍命令 - Qiita

    EDIT: はてなブックマークのエントリ だと ABCD (BCD加算) や DJNZ (ループ命令) が人気なようだ(Wikipediaしばりなもんで...) 。6502によくある JSR / RET が対応しないコーディングや、Z80で PUSH を目的外利用するような例は入れても良かったのかも。 DOOMの例を追加。 Wikipediaに個別ページができちゃうくらい有名な命令のメモ。 きっかけ このソースコードは現在の倫理上一般的でない表現が使われている箇所については当時の内容を尊重して掲載しています — ほうめい マイコンで遊んでばっかりで (@houmei) July 14, 2020 を受けて、 6809の命令のことですね。わかります >RT — Miura Hideki (@miura1729) July 14, 2020 1つのCPU命令が独立したWikipediaのページ

    CPUの珍命令 - Qiita
  • CPUの作り方 - 富士通

    シリコン(ケイ素)の大きな単結晶(純度99.999999999%)を、ダイヤモンドブレードでスライスして、薄いシリコンウェーハを作ります。

  • 6日目: [CPU] bit拡張と数値演算 - しかくいさんかく

    bit拡張と数値演算 この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の6日目の記事です。 昨日は変数(レジスタ)の数を4個に増やして、mov命令が実行できるCPUを設計した。 しかしmov命令だけでは大したことができない。 そこで今日は(浮動小数点を含む)四則演算ができるように回路を拡張する。 bit拡張 昨日はレジスタの種類を増やしたが、各レジスタの桁数は1bitのままだった。 2進数1桁の変数では計算もへったくれもない1ので、まずはbitを拡張しよう。 拡張方法は極めて簡単。 例えばmov a, bを考えると、aの1の位はbの1の位で上書きされ、10の位は10の位で上書きされる。 つまりmov命令は各桁毎に独立に実行される。 これを実現するには、昨日の回路と全く同じものを並べればいい。 当然だが、マルチプレクサに入る線Sx, Syは各

    6日目: [CPU] bit拡張と数値演算 - しかくいさんかく
  • LinuxのCPU使用率の%stealについて - Qiita

    はじめに Linux で採取できるCPU使用量(率)の情報として、%user や %sys 等に加えて %steal という量がある。これが追加されたのは、仮想化が広く使われはじめた10年くらい前だろうか。筆者は Xen を調べていて気づいたのだが、もっと前にs390のために追加されたのかもしれない。当時、ESXの場合も含めて調べていたのだが、最近、KVMの場合にどういう実装になっているのか、ふと気になって軽く調べてみたのでメモ。 CPU使用率の計算 まず最初に、sar や vmstat や mpstat 等、さまざまなツールでCPU使用率を取得することができるわけだが、どのような情報を元に、どのような計算を行って算出しているのか? まず、kernel内ではboot以後の各種実行モードのCPU時間を分類して積算値として保持している。user モード、特権モード、割り込み処理に使った時間..

    LinuxのCPU使用率の%stealについて - Qiita
  • なぜCPUにはL1・L2・L3というように複数のキャッシュレベルがあるのか?

    CPUのキャッシュは、L1が32KB、L2が256KB、L3が2MBという風に多層に分かれているが、なぜ、32KB+256KB+2MBのL1キャッシュではダメなのか?」という素朴な疑問に対して、ファビアン・ギーセン氏(ryg)が「1960年代の古いオフィスでの働き方」を例に挙げて明解に回答しています。 Why do CPUs have multiple cache levels? | The ryg blog https://fgiesen.wordpress.com/2016/08/07/why-do-cpus-have-multiple-cache-levels/ 前述の質問に対するショートバージョンの答えは、「それぞれのキャッシュには役割があるから」。大前提として、キャッシュは容量が大きいほどデータ転送速度が遅く、記憶密度が高く、省電力という性質を持つため、必要性に応じて異なる種類

    なぜCPUにはL1・L2・L3というように複数のキャッシュレベルがあるのか?
  • x86でbus errorを起こす - Qiita

    はじめに x86システムでは、あまりbus errorは見かけない。どういう場合にbus error (SIGBUS)が発生するか調べた。タイトルにはx86と書いたが、一応SPARCも調べた。 Bus errorについて Bus error (SIGBUS)は、その名の通りバスで発生したエラー。CPUが物理メモリにアクセス要求を出した時にエラーが起きると発生する(ということになっている)。普通、ユーザプログラムから見えているのは論理アドレスであり、物理アドレスを直接触ることは無いことから、ユーザプログラムからBus errorを起こすことは難しい。また、アラインメントエラーなどでも起きることが知られているが、x86ではアライメントのチェックが通常はオフになっているため、これは起きない。とりあえず調べた限りにおいては、「SIGBUSを発生させるシステムコールを呼ぶ」「アラインメントチェックを

    x86でbus errorを起こす - Qiita
  • プロセスのランキュー待ち時間とI/O待ち時間を調べる - ablog

    cat file|awk では実行時間 < CPU時間となっていますが、cat が I/O wait していないとは限りません。実行時間は単純に終了時間 - 開始時間で算出しますが、CPU時間はプロセスのCPU時間を getrusage システムコールで取得します。catのプロセスと awk のプロセスが並列実行されている期間があるため、実行時間 < CPU時間となっています。例えば、CPUバウンドな2プロセスがほぼ完全に並列実行されると、実行時間 * 2 ≒ CPU時間 となったりします。 (中略) 大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog と書きましたが、プロセスの ランキュー待ち時間は /proc//sched の2列目(sched_info.run_delay) I/O待ち時間は /proc//schedstat の se.stati

    プロセスのランキュー待ち時間とI/O待ち時間を調べる - ablog
  • Linuxサーバに搭載されているCPUコア数の確認 - 元RX-7乗りの適当な日々

    この前、若手に聞かれたので、ここにも書いておく。 好みでは有るが、可能な限り数字のみで標準出力に出せるようにしておくと、スクリプトの中などで並列実行数を動的に定義しやすい。 ちなみに下記の前提は、CentOS 6.6 & 56コア(!)のサーバで確認している。 nproc # nproc 56一番簡単なやつ。 getconf # getconf _NPROCESSORS_ONLN 56getconfでも拾える。 /proc/cpuinfo # cat /proc/cpuinfo | grep -c "processor" 56皆さん、ご存知の通り、 /proc/cpuinfo は多くのCPU情報を取得することが出来る。 余談だけど、 /proc/cpuinfo に含まれる"physical id"はどの物理ソケットか、とか、"core id"を見ると物理コア(HT関連などで論理コアの紐付き

    Linuxサーバに搭載されているCPUコア数の確認 - 元RX-7乗りの適当な日々
  • Understanding Linux CPU stats | Scout APM Blog

    Updated version of an article first published on February 24th, 2015. Your Linux server is running slow, so you follow standard procedure and run top. You see the CPU metrics: But what do all of those 2-letter abbreviations mean? The 3 CPU states Let's take a step back. There are 3 general states your CPU can be in: Idle, which means it has nothing to do. Running a user space program, like a comma

    Understanding Linux CPU stats | Scout APM Blog
  • ゼロから始める自作 CPU 入門

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    ゼロから始める自作 CPU 入門
  • ps で表示されるCPU使用率 = CPU時間 / 実行時間 - ablog

    LinuxCPU使用率の高いプロセスを探す時、ps で表示されるCPU使用率は累計値になるので、top を使うけど、ps で表示されるCPU使用率の算出式が気になったので、調べてみた。 算出式 CPU使用率 = ( プロセスが使用したCPU時間 / プロセスの実行時間 ) * 100 man より $ ps -V procps version 3.2.8 $ man ps %cpu %CPU cpu utilization of the process in "##.#" format. Currently, it is the CPU time used divided by the time the process has been running (cputime/realtime ratio), expressed as a percentage. It will not ad

    ps で表示されるCPU使用率 = CPU時間 / 実行時間 - ablog
  • iostat はどのように %util を算出しているか(3) - ablog

    iostat はどのように %util を算出しているか - ablog http://d.hatena.ne.jp/yohei-a/20130925/1380070554 と続いた iostat から Linux Kernel のブロックレイヤーへの旅は Etsukata blog: iostat -x の出力を Linux Kernel ソースコードから理解する のおかげでほぼ終わりを迎えました。 part_round_stats() では、その延長で、全てのリクエストがキューにいた時間の積算値を表すtime_in_queue と、デバイスがIOリクエストを発行していた時間を表す io_ticks を更新しています。io_ticksには前回のリクエスト完了から、今回のリクエスト完了までを加算し、time_in_queueにはそれに実行中のリクエスト数を掛けたものを加算しているのがわかり

    iostat はどのように %util を算出しているか(3) - ablog
  • Cpu pipeline basics

    5. 入力と出力 装置には必ず「入力」、「出 力」があり、「入力」から 「出力」が得られるまでに 「時間」が必要となります。 CPUも「命令」を入力と し、「データ」を出力しま す。 お金装置ジュース CPU 命令 データ データ 6. 処理時間 入力してから出力が得られる までの時間を処理時間と定義 します。! CPUの場合、メモリから命 令を読み出し、結果を書き 込むまでの時間をクロック 数で表現します。! これをCPI(Clock Per Instruction)と呼びます。 CPU メモリ t[clocks]

    Cpu pipeline basics
  • コマンド、プログラムを実行するCPUコアを任意に割り当てる『taskset』コマンド | 俺的備忘録 〜なんかいろいろ〜

    近年のCPUは、大体がマルチコアとなっているが、コマンドやプログラムを特定のコアで実行したい場合に使えるのが『taskset』コマンドだ。 よく使われるCentOSやUbuntuのようなディストリビューションであればデフォルトで用意されているコマンドになる。 まずはヘルプの内容から。 $ taskset --help Usage: taskset [options] [mask | cpu-list] [pid|cmd [args...]] Options: -a, --all-tasks operate on all the tasks (threads) for a given pid -p, --pid operate on existing given pid -c, --cpu-list display and specify cpus in list format -h, --

  • プロセスのCPU使用率を制限する方法 - Qiita

    CPU負荷制限 cpulimit というツールがあり、%指定でそのプロセス(子プロセス含む)のCPUの利用率を制限することができます。例えば infinity という単にシングルスレッドで無限ループするプログラムがあったとして、CPU使用率10%で制限するには以下のようにします。 この10%というのは1論理コアの割合です。100と指定すると論理コア1個分(100%)まで許可することになります。例えば4論理コアの環境ではこの値は0~400まで設定できます。なのでシングルスレッド・シングルプロセスのプログラムであれば100以上指定しても意味はありません。 infinityを2論理コア上で50%で制限すると、以下のようになります。 (↓では論理コア全部を100%として表示してます) 既に走っているプロセスに制限をかけることもできます。

    プロセスのCPU使用率を制限する方法 - Qiita
  • 最近のCPUでは乱数生成がはやい話

    Ivy Bridge以降のCPUではCPU内に乱数生成器が含まれています。それに対応した最近のrngdをつかうとそれなりに乱数生成が速くてしあわせになれます。 linuxでは乱数を取得するために /dev/random と /dev/urandom の2種類のデバイスがあります。それぞれの説明は man 4 random にみっちり書いてありますが、かいつまんで言うと: random: カーネルがあつめてきたノイズを元に品質の高い疑似乱数を生成します。ノイズが不足するとblockします。 urandom: カーネルがあつめてきたノイズを元にそこそこの品質の疑似乱数を生成します。品質はそこそこですがblockしないので速いです。 ためしにcat /dev/random とかすると1kとか4kくらい乱数が出力されて止まってしまう。これでは割と足りないので選択肢が2種類。1) 品質をあきらめてu

  • sysのCPU使用率が高い場合にその内訳を調べる方法 - ablog

    OSレベルで sys のCPU使用率が高い場合に perf*1 を使って、何の処理の割合が高いか調べる方法です。 perf は 特定のプロセスだけでなくOS全体の統計を見れる カーネル(sys)とユーザー(user)の両方を見れる ところが非常に便利だと思う*2。 準備 ひたすら write システムコールを発行し続けるプログラムを作成する $ cat write_loop.c #include <unistd.h> int main(void) { while(1) { write(1, "foo\n", 4); } } コンパイルする $ gcc write_loop.c -o write_loop 実行権限を付与する $ chmod u+x write_loop 検証 ひたすらwriteシステムコールを発行するプログラムを実行する $ ./write_loop > /dev/null

    sysのCPU使用率が高い場合にその内訳を調べる方法 - ablog
  • スムーズなアニメーションを実装するコツと仕組みを説明するよ。CPUとGPUを理解しハードウェアアクセラレーションを駆使するのだ!(Frontrend Advent Calendar 2013 – 06日目) | Ginpen.com

    (追記: 2018年10月)何年か経ってから見ても内容大丈夫そうでした。 この記事はFrontrend Advent Calendar 2013の6日目の記事です。昨日は谷さんでWeb Components/Polymerを軽く触ってみるでした。(これ今後数年で大流行りしそうに思うので、未読なら是非!) さて、最近はHTML5だCSS 3だFlashやめてJS制御でアニメーションだーってんで盛り上がってるわけですが(周回遅れ)、いざアニメーションを実装してみても、なかなかスムーズに動いてくれなかったりしますね。 どうやったらスムーズに動くかってのを解説したいと思います。 なおこの辺りの情報は、概ね斎藤さんを中心としたFrontrend絡みの方々に教えて頂きました。感謝感謝。 先に結論 概念的なの GPU合成レイヤーを適切に使うと早い いわゆるハードウェアアクセラレーション 何がCPUで、何

    スムーズなアニメーションを実装するコツと仕組みを説明するよ。CPUとGPUを理解しハードウェアアクセラレーションを駆使するのだ!(Frontrend Advent Calendar 2013 – 06日目) | Ginpen.com
  • DMM inside

    アニメ初の快挙!海外アニメ賞を受賞した『スキップとローファー海外ライセンス部長&プロデューサーが語る、奮闘の舞台裏

    DMM inside
  • Mac OSXのCPU温度を表示·osx-cpu-temp MOONGIFT

    osx-cpu-tempMac OSX用GPLのオープンソース・ソフトウェアです。 暑いオフィスやカフェで仕事をしているとラップトップが突然調子を悪くするかも知れません。そこで試して欲しいのがosx-cpu-tempです。CPUの温度を手軽に取得できます。 makeも簡単。 実行すると温度が出ます。71度! CPUやラップトップ全体の情報を表示してくれる類のユーティリティではCPU温度を出してくれるものもありますが、osx-cpu-tempはよりシンプルに温度だけを取得できます。定期的に実行して記録しておいても面白いかも知れませんね。 MOONGIFTはこう見る 小さなツールは機能が限られるので利用目的も分かりやすいです。また、コマンドラインで使うものはそのまま出力を別なソフトウェアに渡せるので連携させる面白さもあります。今流行のハードウェア(Ardiunoなど)に渡しても面白そうです。

    Mac OSXのCPU温度を表示·osx-cpu-temp MOONGIFT