RAMとCPUはどのように連携しますか?


8

アセンブリ言語の本を読んでいます。この本の問題は、RAMがCPUでどのように機能するかを説明しようとすることですが、詳細には説明していません。

データの保存または取得時に、メモリセル、アドレスライン、およびデータピンがどのように機能するか知りたいのですが。

回答:


9

すべてのメモリセルには、0またはのいずれかのレベルがあります1。CPUは、バイナリ値が必要なセルをメモリデバイスに通知し、このアドレスをメモリデバイスに提供します。メモリデバイス内では、アドレスが行と列のアドレスでデコードされ、マトリックス内のその位置にあるセルは、データバス、つまりデータピンにデータを取得できます。

8ビットのアドレスがあるとします01100101。これは、行アドレス0110(高次ニブル)と列アドレス0101(低次ニブル)に分割されます。行アドレスは行#06を選択するため、この行に接続されているすべてのセルのデータが準備されます。列アドレスはこの行の列#05のセルを選択するため、最終的に1つのセルのみがそのデータを出力ピンに配置できます。

データの保存は同じパターンに従います。1つの行のみが選択され、その行の指定された列のセルは、保存されているピンに存在するデータを取得します。

これは1ビット用です。操作はデータワード幅全体で同時に行われるため、バイト幅のメモリがある場合は、8ビットが取得され、その値が8つのデータバスピンに配置されます。

編集
この画像は、物事をよりよく見るのに役立ちます:

メモリアレイ

これは、データがコンデンサー電荷に格納されるDRAMアレイを表しています。各コンデンサーは1ビットです。アドレスの行部分(ここではA1..A0)は行を選択します。つまり、それらはその行のすべてのFETをアクティブにし、その行のコンデンサのレベルが対応する列で使用できるようになります。次に、アドレスの他の部分A3..A2によって制御される列アドレス選択ブロックが、データを取得する1ビットを選択します。

DRAMは簡単に構築できますが、厄介な欠点があります。データを読み取るとコンデンサが放電するため、データが失われます。このDRAMに対抗するために、現在のメモリセルの状態を検出し、読み取り時にそれをリフレッシュするセンスアンプがあります。さらに、メモリが読み取られなくてもコンデンサの電荷がリークするため、この更新は定期的に実行する必要があります。リフレッシュ回路の必要性は、DRAMのセルのコンパクトさのおかげで簡単に埋め合わせることができます。

SRAMは2つのトランジスタを使用してデータを保存しますが、DRAMのように揮発性ではありません(ただし、電源をオフにしてもデータは失われます)。EEPROMフラッシュデータは、FETの(絶縁)フローティングゲートに格納され、電源がオフされたときので、そのデータを失うことはありません。


参考資料フラッシュメモリのデータ保持に関する
この回答


//私はあなたの答えに本当に感謝しています。新しい質問をしてもいいですか。どこで学びましたか?まだ完全に理解できていません...視覚化できないからかもしれません。私が参照できる画像や本はありますか?

@Moon-ずっと前に大学で学びました。私のコースには写真があったと思いますが、そのコースはもうありません(すべてが紙に書かれた時でした!)。良い写真が見つかるかどうかを確認し、見つけたら回答に追加します。
stevenvh 2011

1
大学は必ずしもそれを理解する必要はありませんが、抵抗器、キャップ、およびネットワークの基本と、さまざまな種類のトランジットがどのように機能するかについての機能的な理解を理解する必要があります。Petzoldの本CODEがこの主題をカバーしているかどうか、またどのようにして、図書館や書店で試してみる価値があるのか​​と思います。
old_timer

1
コンピューティングの内部を理解したい場合は、「nandからtetrisへ」に進むことを強くお勧めします。本の半分を読み終える頃には、動作するCPUとRAMを構築していることでしょう。必要な知識を既に持っている場合は簡単に読むことができますが、そうでない場合でも一歩踏み出すことはできません。
James M. Lay 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.