---
# System prepended metadata

title: Untitled

---

### ポインタとデータ構造

C言語のポインタ　密接な関係　メモリアドレス
（例）
```
char*cptr; //サイズ:1バイト
char ++; //charは次のバイトを指す->アドレス値は1バイト分増える
int *iptr; //サイズ:1ワード(4バイトとする)
iptr++; //iptrは次のワードを指す->アドレス値は4バイト分増える
```

### ポインタとメモリアドレスとの関係
<span style="color: red; ">バイト</span>アドレッシングの連結リスト


```
struct node{
    int count;//1ワード（ここでは4バイト）
    struct node *next; 
}
```


### 連結リストのメモリダンプ
<span style="color: red; ">バイト</span>アドレッシングの連結リスト

<span style="color: red; ">メモリダンプ，ヘッド</span>
![](https://i.imgur.com/pcY0UIV.jpg)




### 複数メモリの利用
基本:単一メモリ　単一コントローラ
実際:複数メモリ　複数コントローラ


![](https://i.imgur.com/OwMg9w7.png)

メモリシステムの利便性・性能向上
プログラマはメモリの分割を意識しなくて良い

### メモリバンク
メモリ+メモリコントローラ:メモリの論理的な構成単位
メモリ:メモリチップ群で構成される
異なる種類のメモリ(バンク)も接続可能
組込システムではメモリの種類・役割を意識して高速化可能

### インタリーブ
プログラマはメモリの分割を意識しなくて良い
連続したデータを分けて格納し，同時に読み書きする
->メモリシステムの高速化
![](https://i.imgur.com/p6TeWyz.png)


### <span style="color: red; ">連想メモリ(CAM:Content Addressable Memory)</span>
<span style="color: red; ">スロット</span>と呼ばれる単位でメモリを分割し，各スロットに専用の検索ハードウェアを持つ
検索キーとのマッチング(完全一致)を，各検索ハードウェアが並列に実行する

![](https://i.imgur.com/T7QFGSO.png)


### <span style="color: red; ">3値CAM(T-CAM:Ternary CAM)</span>
CAMの検索を<span style="color: red; ">部分一致可能</span>に拡張したもの
各スロットに0,1,Don't Careの3つの付加情報値をセット
付加情報値に従って，一部のみを検索可能

### <span style="color: red; ">仮想メモリ(VM:Virtural Memory)</span>とは
より便利なメモリ環境を提供するために物理メモリの詳細を隠すための機構
仮想メモリ技術としてバイトアドレッシング(-><span style="color: red; ">仮想アドレス</span>も一例
アドレッシング・管理を行う高機能なメモリコントローラ
-><span style="color: red; ">MMU(Memory Management Unit)</span>

### 物理メモリを多重化する仕組み
MMUで異なるメモリを統合

![](https://i.imgur.com/EzvfruK.jpg)
