タグ付けされた質問 「memory-access」


8
コンピューターはバイトのデータ型をどのように判断しますか?
たとえば、コンピューターが10111100RAMの特定の1バイトに保存されている場合、コンピューターはこのバイトを整数、ASCII文字、または他の何かとして解釈する方法をどのように知るのでしょうか?型データは隣接するバイトに保存されますか?(1バイトに2倍のスペースを使用する結果となるため、これは事実ではないと思います。) おそらくコンピューターはデータの種類さえ知らず、それを使用するプログラムだけが知っているのではないかと思います。私の推測では、RAMはR AMであり、したがって順次読み取られないため、特定のプログラムは特定のアドレスから情報をフェッチするようにCPUに指示し、プログラムはそれを処理する方法を定義します。これは、型キャストの必要性などのプログラミングに適しているようです。 私は正しい軌道に乗っていますか?

1
仮想アドレス空間が物理アドレス空間よりも大きい場合、アドレスマッピングはどのようにメモリに保存されますか?
40の物理アドレスビットを持つシステムで作業しているとしましょう。合計物理アドレス空間(バイトアドレス可能なメモリを想定)はバイト、または1 TiBです。また、仮想アドレスの長さが48ビットの場合、物理メモリ内の場所よりも多くのアドレスが仮想メモリで使用できることを意味します。2402402^{40} 「過剰な」アドレスはハードディスクの場所も参照する可能性があるため、これは理にかなっています。しかし、私が理解していないのは、仮想アドレスと物理アドレス間の変換がどのように行われるかです。VASの場所を物理的な場所にリンクするマッピングがどこかに格納されていると思います。物理的な場所よりも多くの仮想アドレスの場所がある場合、これらすべてのマッピングをメモリに保存するにはどうすればよいですか?少なくとも、各仮想アドレスを格納するために48ビットが必要であり、次に、マップ先の物理的な場所を格納するためにさらに40ビットが必要です。すべての場所をマッピングすると、物理メモリ自体よりも多くのメモリが必要になるため、明らかに、各仮想アドレスの対応する物理アドレスへの1:1マッピングを保存することはできません。 ここで正確に何が欠けていますか?

1
忘却型RAMとは何ですか?
誰かが私に正確に気付かないRAMとは何かを私に説明できますか? 次のような説明がわかりましたが、技術的な側面を理解したいと思います。 暗号化は、プライバシーを確​​保するのに必ずしも十分ではありません。攻撃者が暗号化されたストレージへのアクセスパターンを観察できる場合でも、アプリケーションの動作に関する機密情報を知ることができます。Oblivious RAMは、アクセスされているメモリを継続的にシャッフルすることでこの問題を解決します。これにより、アクセスされているデータ、または以前にアクセスされたデータを完全に隠すことができます。

4
ワードまたはバイトでアドレス指定できますか?正しい用語
どうやら、バイトはそれ自体が8ビットであると確立しました(それは正しいですか?)。RAMとNORフラッシュは通常、かなり細かいレベルでアクセスできますが、アドレス可能な最小単位が8ビット、16ビット、またはその他の2ビットの累乗であるかどうかを判断するのはシステムアーキテクチャ次第です。正しい用語は、これをワードアドレス指定可能と呼ぶことでしょうか?または別の言い方をすれば、単語はアドレス可能な最小単位のサイズですか?または、これを説明する他の用語はありますか? mabye nibble、byte、word、double wordはすべてビット長が可変で、アーキテクチャーによってのみ定義されますか?したがって、1バイトが常に8ビットであるのは単なる偶然でしょうか。たとえば、誰かがいくつかの新しいCPUとメモリタイプを設計し、彼女のバイトを16ビットに定義できますか? 主な質問:最小のアドレス可能なメモリブロックの正確な用語は何ですか? 副問:私が探しているこの単語の反意語は何ですか(たとえば、NANDフラッシュで使用されます)?ページアドレス可能、ブロックアドレス可能?どちらも正しいですか、それとも不正確ですか?

2
カーネルモードからユーザーモード(またはその逆)への変更
Galvinによるオペレーティングシステムの本を読んでいます。Galvinは、カーネルモードとユーザーモードとは何か、両方のモードに与えられる命令特権、およびモードビットについても説明しています。しかし、モードがどのように変化するか知りたいです。基本的に私は次の質問を解決したいと思います: CPUには、特権モードと非特権モードの2つのモードがあります。モードを事前から非事前に変更するため a)ハードウェア割り込みが必要 b)ソフトウェア割り込みが必要です。 c)特権命令が必要です。 d)非特権命令が必要です。 私が理解していることから、 ユーザーモードからカーネルモードへ-ハードウェア割り込みが必要です(ディスクI / Oのように)。ユーザープログラムが許容範囲を超えるメモリにアクセスするのに疲れた場合、トラップが発生します。トラップは基本的にOSによって処理されるソフトウェア割り込みです。これで、ユーザーモードでは特権命令を実行できなくなりました。したがって、I / O要求などの非特権命令は、ユーザーをカーネルモードに変更できます。だから私は、変えるために 非特権(ユーザー)から特権(カーネル)へ-H / W割り込み、S / W割り込み、非特権命令が実行します。 カーネルがユーザーモードになりました。OSはカーネルをユーザーモードに変更できます。そのため、カーネルからユーザーモードに変更する特権命令を実行します。H / wまたはS / w割り込みを生成する必要はありません。だから私は結論を変える previledgedからnon-previledgedへ-特権付きの命令で実行されます 私は正しいですか? また、カーネルモードで実行すると、すべての割り込みが無効になりますよね?したがって、答えは(a)または(b)にはできません。また、OSは基本的にはソフトウェアであるため、ハードウェア割り込みを発生させることはできません。 また、OS自体が割り込みを処理するため、カーネルからユーザーモードに変更するために割り込みを生成(およびサービス)する必要がある理由は私にはわかりません。 私がどこか間違っている場合はお知らせください。これに関するどんな助けでもありがたいです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.