0

C# でフラッシュ メモリ アーキテクチャをシミュレートしたいと考えています。より具体的には、アーキテクチャは次のようになります。

  • フラッシュメモリはブロックの集まり
  • 1 ブロック = 128 セクタ
  • セクタはデータ領域とスペア領域で構成されます
  • データ領域 = 8kB
  • 予備領域 = 16 B

これを構造体またはクラスで表現したかったのですが、問題は、コードで一定量のメモリ空間を表現する方法がわからないことです。そのメモリ空間に何が格納されるかわからないため、intまたはchar配列を使用できません....よくわかりませんが、バイトデータ型を使用して表現できると思います....

4

1 に答える 1

2

はい、バイト配列が必要なようです。例えば:

 public sealed class Block
 {
     private readonly Sector[] sectors = new Sector[128];

     public Sector this[int index] { get { return sectors[index]; } }
 }

 public sealed class Sector
 {
     private readonly byte[] data = new byte[8 * 1024];

     public byte this[int index]
     {
         get { return data[index]; }
         set { data[index] = value; }
     }
 }

(必要に応じて、「スペア」領域もモデル化できます。ただし、本当に必要かどうかは明らかではありません。)

これは、一度に 1 バイトずつのアクセスしか許可していません。一度にデータのチャンクを読み書きするメソッドが必要になる場合がGetDataあります。うまくいけば、これで始めることができます。SetDataBlock

于 2012-04-07T12:17:37.380 に答える