改善された SDRAM コントローラ (AD10)

Altium Designer Release 10 では、3つのWishbone メモリコントローラ ペリフェラル WB_MEM_CTRL, WB_SHARED_MEM_CTRL_NB2DSK01, WB_SHARED_MEM_CTRL_NB3000 を通して利用できる SDRAM コントローラ インターフェースを改善しました。SDRAM コントローラはオプションである内部のキャッシングで設定できます。そして、ランダムなメモリアクセススピードを向上し SRAM インターフェースへアクセスできます。また、接続した SDRAM デバイスが Standard または Automotive グレードかどうかによりリフレッシュレートを指定できます。 

新しい SDRAM コントローラコアは Altium Designer の以前のバージョンで用意されている古い SDRAM コントローラコアと同等です。

内部のキャッシング

SDRAM コントローラインターフェースのためのメモリコントローラ ペリフェラルを構成している時、内部のキャッシングは Include Cache オプションを使用して有効、無効に設定できます。 


SDRAM インターフェース(WB_SHARED_MEM_CTRL_NB3000 で示された)と共に構成された独立した SDRAM コントローラ(WB_MEM_CTRL)や共有したメモリコントローラ用の内部のキャッシングを含むオプション。

内部のキャッシングは見えず直接、マップされたキャッシュとして実行されます。SDRAM メモリのアクセス機能を利用して、一度に8つの言語を先読みしキャッシュに保存できます。これは、CPU Wishbone バスで示されたようにアクセス周期を隠すことができます。 

内部的にキャッシュは2つのBlock RAM メモリとして構成されます:

  • Data Memory – 8つのメモリIC言語である各ラインと共にライン(キャッシュライン)を保存するために使用。接続した SDRAM デバイスのためのデータポート幅によってキャッシュラインのバイト数は変わります。32ビットメモリについて、キャッシュラインに合計32バイトとなる8つの32ビットキャッシュ言語があります。同様に、16ビットメモリについてはキャッシュラインに16バイト、8ビットメモリについては8バイトあります。 
  • Tag Memory – TAG を保存するために使用。キャッシュライン(Data メモリに保存された)ごとに1つの TAG(Tag メモリに保存された)があります。キャッシュを読み書きしている時、キャッシュ内のデータがそのアドレスのために有効、または無効で、SDRAM メモリ内の特定のアドレスと一致するかどうか確認するために使用する生成された指標(TAG + Data メモリアドレス)の TAG です。

キャッシュサイズ

キャッシュサイズは、2048 32ビット言語で固定です。それは、接続している物理的な SDRAM メモリのサイズに関係無くこのサイズのままです。SDRAM サイズによって、キャッシュライン用の TAG に使用したビット数は変わります。Tag メモリ用に使用した Block RAM の幅は、このビット数によって自動で調整されます。以下の表は、メモリコントローラによってサポートされた SDRAM の様々なサイズと、それに相当するTAGに使用したビット数をリスト表示したものです。 

SDRAM サイズ

アドレスバス サイズ (ADR_I)

TAG ビット数

8MB

23

10

16MB

24

11

32MB

25

12

64MB

26

13

128MB

27

14

また、Tag メモリのサイズは、Data メモリ(キャッシュラインごとに1つの TAG であることを思い出してください。)内のキャッシュライン数に等しい多くの TAG を保存するために自動で調整されます。例えば、16ビット SDRAM メモリは必要に応じてサイズを倍にする Tag メモリを使用して32ビットメモリのキャッシュライン数を倍にします。

Tag メモリサイズや幅は全て見えない状態で扱われます。 

オプションの概要

キャッシュと応答するには最小2クロック周期かかります。最初の周期で、データは特定のキャッシュライン('Data cache address' とも呼ばれます)のための 'タグ アドレス' を生成するために結合した Data メモリや Tag メモリの両方から計測されます。生成されたタグ アドレスは以下のフォーマットを使用します:

TAG + キャッシュライン + キャッシュ言語 + 言語内のバイト

Wishbone バス(プロセッサから)でリードメモリ リクエストがある時はいつでも、生成されたタグアドレスの TAG がそれに相当する Wishbone アドレスの上位ビットと比較されます。例えば、64MB SDRAM デバイスは TAG 用に13ビット使用します。そして、これらの13ビットはプロセッサ(例えば、ADR_I[25..13])から ADR_I ラインの上位13ビットと比較されます。もし、2つの値が一致する場合、キャッシュ内のデータは有効で、SDRAM メモリ内の特定のアドレスと一致します。キャッシュの Data メモリからのデータは、Wishbone データバス上でプロセッサに戻されます。 

同様にライトメモリ リクエストについて、もし、Wishbone アドレスの TAG がキャッシュ用に生成されたタグアドレスの TAG と一致する場合、データはキャッシュの Data メモリへコミットされます。  

Read、または Write を実行しているかどうかに関係無く、'hit' するキャッシュがある(データがそこにあり有効である)時、Wishbone の移行を完了するために2周期かかります。

もし、TAG がプロセッサによって扱われ一致しない場合、これは 'キャッシュミス' として解釈されます(キャッシュラインはメモリのその他の領域からデータを取得します)。この場合に、ラインの置き換えが始まります。これは、現在のラインを SDRAM メモリへ書き込み、ターゲットメモリの場所から新しいデータとそれを置き換えることを含みます。キャッシュラインの置き換え方法は latency のために最適化されます。現在、プロセッサによってリクエストされたデータは最初に引き出され、Wishbone インターフェースはこのプロセッサが完了するとすぐにリリースされます。キャッシュラインの残りはバックグランドに置き換えられます。 

32ビットメモリでキャッシュを使用 

以下の表は、32ビット SDRAM メモリを使用している時の生成されたタグアドレスを示します。64MB SDRAM デバイスは、26ビット Wishbone アドレスバスを使用します。

タグアドレス生成 (ADR_I[25..0]):

Bit

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Adr

T12

T11

T10

T9

T8

T7

T6

T5

T4

T3

T2

T1

T0

L7

L6

L5

L4

L3

L2

L1

L0

W2

W1

W0

SEL1

SEL0

Wishbone アドレスバス上でプロセッサから送られた Tag アドレスは以下からなります:

ADR_I[25..13] – 分割したキャッシュの Tag メモリに保存されたTAG。 

ADR_I[12..2] – そのキャッシュの Data メモリ内のアドレス。ビット 12..5 はキャッシュラインを選択し、ビット 4..2 はそのキャッシュラインから言語を選択します。 

ADR_I[1..0] – キャッシュ言語内で特定のバイトを選択するために使用。 

以下の図は、32ビット SDRAM メモリを使用している時のキャッシュ内の Data Memory 構成を示します。 


キャッシュデータメモリ構造(32ビットメモリ)。

16ビットメモリでキャッシュを使用

以下の表は、16ビット SDRAM メモリを使用している時の生成されたタグアドレスを示します。64MB SDRAM デバイスは、26ビット Wishbone アドレスバスを使用します。

タグアドレス生成 (ADR_I[25..0]):

Bit

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Adr

T12

T11

T10

T9

T8

T7

T6

T5

T4

T3

T2

T1

T0

L8

L7

L6

L5

L4

L3

L2

L1

L0

W1

W0

SEL1

SEL0

Wishbone アドレスバス上でプロセッサから送られた Tag アドレスは以下からなります:

ADR_I[25..13] – 分割したキャッシュの Tag メモリに保存された TAG。 

ADR_I[12..2] – そのキャッシュの Data メモリ内のアドレス。ビット 12..4 はキャッシュラインを選択し、ビット 3..2 はそのキャッシュラインから言語を選択します。  

ADR_I[1..0] – キャッシュ言語内で特定のバイトを選択するために使用。 

以下の図は、16ビット SDRAM メモリを使用している時のキャッシュ内の Data Memory 構造を示します。


キャッシュデータメモリ構造(16ビットメモリ)。

8ビットメモリでキャッシュを使用

以下の表は、8ビット SDRAM メモリを使用している時の生成されたタグアドレスを示します。64MB SDRAM デバイスは、26ビット Wishbone アドレスバスを使用します。

タグアドレス生成 (ADR_I[25..0]):

Bit

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Adr

T12

T11

T10

T9

T8

T7

T6

T5

T4

T3

T2

T1

T0

L9

L8

L7

L6

L5

L4

L3

L2

L1

L0

W0

SEL1

SEL0

Wishbone アドレスバス上でプロセッサから送られた Tag アドレスは以下からなります:

ADR_I[25..13] – 分割したキャッシュの Tag メモリに保存された TAG。

ADR_I[12..2] – そのキャッシュの Data メモリ内のアドレス。ビット 12..3 はキャッシュラインを選択し、ビット 2 はそのキャッシュラインから言語を選択します。

ADR_I[1..0] – キャッシュ言語内で特定のバイトを選択するために使用。

以下の図は、8ビット SDRAM メモリを使用している時のキャッシュ内の Data Memory 構造を示します。


キャッシュデータメモリ構造(8ビットメモリ)。

リフレッシュ レート

SDRAM コントローラ インターフェースとしてメモリコントローラ ペリフェラルを構成している時、Refresh Rate オプションを使用してリフレッシュレートを指定できます。 


SDRAM インターフェース(WB_SHARED_MEM_CTRL_NB3000 で示された)で構成した独立した SDRAM コントローラ(WB_MEM_CTRL)や共有したメモリコントローラのリフレッシュレートを指定するオプション。

接続している物理的な SDRAM メモリデバイスのタイプに従って、必要に応じてリフレッシュレートを選択:

  • Standard – standard デバイスは7.81us 間隔でリフレッシュされます。 
  • Automotive – automotive グレードのデバイスは1.95us 間隔でリフレッシュされます。
You are reporting an issue with the following selected text and/or image within the active document: