cpu-cache

    1

    2答えて

    ダミーコンテンツでCPUキャッシュを強制的に埋め込む簡単な(bashベースの)方法はありますか?私は2つのプログラムのタイミングを比較しており、プログラムの実行後、他のプログラムを実行する前にキャッシュの内容がフラッシュされるようにする必要があります。

    1

    1答えて

    このような64ビットの数字の32要素を持つ配列を持っています。 long int arr [32]; ただし、キャッシュラインのサイズは64バイトです。私の配列がキャッシュシステムにまったく組み込まれない、あるいは要素のいくつかがやることになるのでしょうか? このように配列を2次元に分割すると、キャッシュに合うのに役立ちますか? long int arr [4] [8]; ?

    0

    2答えて

    次はchar x[2048]は、グローバルvarとfunc1ですがthread1によって呼び出され、単純なCのソースコード、ある、func2はthread2によって呼び出される:IntelのCPUでは char x[2048]={0} , y[16]={0}; void func1(){ strcpy(x,y); } void func2(){ printf("(%s

    3

    1答えて

    私は現在、オペレーティングシステムの操作のオーバーヘッドに取り組んでいます。 私は実際にシステムコールを行うためのコストを勉強しており、それを観察するための簡単なC++プログラムを開発しました。 #include <iostream> #include <unistd.h> #include <sys/time.h> uint64_t rdtscp(void) { uint32

    0

    1答えて

    IntelプロセッサでL3キャッシュ情報を取得中に問題が発生しました。 AMDのL3行の長さは次のように簡単です。 mov eax, 0x80000006 cpuid shl edx, 24 shr edx, 24 Intelsでの同じ操作ははるかに複雑です。 私がこのシーケンスを使用して行われるかもしれないということだ: mov eax, 2 cpuid と、このマニュアルでレジ

    0

    1答えて

    さまざまなキャッシュがプロセッサでどのように使用されているかを理解しようとしています。 67バイトの配列の各値をインクリメントしているとします。 32ビットのLinux OSを想定します。 キャッシュラインが64バイトであると仮定します。今、私は次のコードを持っています - add() { unsigned char a[67] = {0}; for(int i=0; i<6

    -1

    1答えて

    キャッシュの1つの行にサイズ2^nBがあるとします。シーケンシャルリードバイトで予想されるヒット率はどれくらいですか? 私の目には(2^n - 1)/ 2^nです。 しかし、私は正しいかどうかはわかりません。どう思いますか ?

    2

    1答えて

    IntelプロセッサD(以前はBroadwellプロセッサと呼ばれていました)は、cache allocation technologyの多くのCOSレジスタをサポートできます。だから、Intel CPUに16個のCOSレジスタを持つコンピュータを購入したいと思っています。 Intel's manualによれば、CPUID.(EAX=10H, ECX=ResID=1)命令の出力としてEDXレジスタ

    1

    1答えて

    L1、L2、L3のアソシエイティビティ設定についての情報はどのように取得できますか?私はサイズを得ることができますが、結合性、任意のアイデアを得ることができますか? は、これまでのところ、私はあなたが任意のOS用のプログラムでそれを実行できるよう

    4

    3答えて

    私の理解では、JSR-133 cookbookは一連のメモリバリアを使用してJavaメモリモデルを実装する方法のよく引用されたガイドです少なくとも可視性の保証)。 また、StoreLoadは、すべてのCPUバッファがキャッシュにフラッシュされることを保証する唯一のものであるため、(店舗転送を避けることによって)新鮮な読み取りを保証し、観測を保証するバリアの種類に基づいて理解しています。キャッシュの