問題タブ [clockrates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
low-level - CPUエミュレーションと特定のクロック速度へのロック
私の他の質問を読んだことがあれば、私が今週末、プログラミング演習として6502CPUエミュレーターを組み立てるのに費やしたことをご存知でしょう。
CPUエミュレーターはほぼ完成しており、限られたテストからはかなり正確に見えますが、非常に高速に実行されているため、マシンの実際のクロック速度まで抑制したいと思います。
私の現在のテストループはこれです:
お分かりのように、各オペコードは完了するまでに特定の時間がかかるため、CPUサイクルクロックをカウントダウンするまで次の命令を実行しません。これにより、オペコード間の適切なタイミングが提供されます。これにより、すべてが高速になります。
目標のCPU速度は1.79mhzですが、複雑さを加えても速度を1.79mhzに維持するために、クロックの問題を解決したいので、調整する必要はありません。
何か案は?
signal-processing - 別のソースからクロックされるストリームから DAC を駆動しますか?
私の DAC は内部で 48khz でクロックされています。これも 48khz ですが、別のソースからクロックされているストリームからフィードする必要があります。
2 つのソースは時間の経過とともに変動し、その間のバッファリングは必然的にオーバーフローまたはアンダーフローします。
残念ながら、ソースで使用できるレート制御メカニズムはありません。
これをどのように処理するのが最善でしょうか?
補うために時折のサンプルを複製したり、投げたりすることは許容されますか? 30ppm の差については、約 7 万サンプルごとに 1 つのサンプルを見積もっています。
low-level - レジスタの増分を使用してクロックレートを決定できますか?
(ループ内の)レジスタの増分を使用して、(実効)クロックレートを決定できますか?当然のことながら可能だと思いましたが、CPUはこの種の計算を役に立たなくするスーパースカラー技術を組み込む可能性があるとコメントされました。また、CPUのレジスタのインクリメントは1クロックサイクル未満で実行できると言われました。
それは本当ですか?
embedded - ARM LPC1768 UART0 構成、ボーレートが正しくありません
私のボーレートは 115200 のはずですが、892.9 です。
cclk が 100MHz で動作していることを確認しました。
UART init コードを、Kunil (uart_interrupt_demo) によるサンプル プロジェクトのコードに置き換えます。
そしてそれはうまくいきます!
私は何が間違っていたのかを調べなければなりません。レジスタ設定の順番がずれていたようです。
operating-system - オペレーティング システムの 1 秒あたりの命令数
私はコンピューター アーキテクチャとデザインの初心者です。私の質問は高レベルのプログラムでした。命令セットは CPU で次々と実行されます。これらの命令を実行するときに、オペレーティング システムの命令がオーバーヘッドとして含まれますか? 例: 2 GHz プロセッサの場合、2*10^9 クロック サイクルで実行できる 2*10^9 命令があります。その場合、オペレーティング システムは常に 1 秒あたり約 1*10^9 命令を実行します。このオーバーヘッドは常に存在し、別の 1*10^9 命令のみが、他のカスタム スケジュール プログラムの実行に自由に使用できますか?
これは、オペレーティング システムが常に実行する命令をできる限り少なくして、実行する他のプログラムをより多く収容できるようにする必要があるということですか?
c++ - WindowsでGPUコアとメモリクロックをプログラムで設定するにはどうすればよいですか?
このためのAPI/ライブラリはありますか?ATI Radeon 9000シリーズグラフィックスカードを持っていて、Windowsの起動時にコア/メモリクロックを下げる必要があります(これのために小さなサービスを作成することを考えましたが、これまでにこれを実行したことはありません)。
私はそれが可能であることを知っていますが(RivaTunerが何らかの形でそれを行うため)、私はその方法を理解していません。
いくつかのリソース/本/例を教えてもらえますか?
ありがとう。
optimization - 組み合わせ論理と行動論理を混合することによる連続割り当ての最適化?
私は、組み合わせ論理と行動論理の組み合わせに頭を悩ませようとしています。4つのLEDと66MHzのクロック入力を備えた小さなFPGAがあります。アイデアは、それらのうちの2つを光らせ(1つは上昇、1つは下降)、もう2つは点滅させることでした。だから私は次のコードを思いついた:
ベンダー固有のDCMを使用したくなかったので、66MHzのクロックを備えた単純なビット加算器が魔法のように機能します。そもそも全体の設計が間違っているかもしれませんが(たとえば、2つのクロック分周器を使用し、2つのレジスタを少し反転させて(ほぼ)同じことを実現できたかもしれません)、この状況に遭遇したので、不思議に思いました。 ..
通常のソフトウェア開発者の観点からは、継続的な割り当てには冗長に見える部分がいくつかあります。たとえば、追加のレジスタを使用できるため、実行される作業が少なくなるように見えます。例えば:
私は上記の2つのアプローチのシンセサイザーレポートの違いを掘り下げてHDL回路図を調べようとしていましたが、私のような経験の浅い人には複雑すぎます。
合成ツールが組み合わせロジックを非常にうまく最適化することは間違いありませんが、右側の式が非常に複雑でワンライナーなどであると仮定すると、このようなことを言う方法はありますか?
それともそうすることは理にかなっていますか?そうでない場合は、動作部分を単純化するために、そのような場合にレジスタを導入することは理にかなっていますか?少なくともいくつかのルールや親指があると確信しています。どんな助けでも大歓迎です。
embedded - 水晶コア MPU クロックレートの違い
起動時に以下のように表示される組み込みシステムがあります。
クロッキングレート (クリスタル/コア/MPU): 12.0/400/1000 MHz
これら 3 つのクロック レートの違いについて説明してくれる人はいますか。プロセッサは ARMv7、OMAP3xxx
assembly - CPUによって処理される命令に関して、クロックレートは何を決定しますか?
CPUの処理命令と水晶振動子の発振周波数との間には、私の理解にギャップがあるようです。CPUの周波数は、プログラムの実行速度にどの程度正確に影響しますか?クロックレートと特定の時間に処理される命令の数との間に関係はありますか?
例:mov R0, #1
。この命令が1クロックサイクルかかったと仮定すると、これは水晶の1回の振動を必要としますか、それともそのようには機能しませんか?