SlideShare a Scribd company logo
1 of 26
Download to read offline
東北大学 工学部 機械知能・航空工学科
2015年度 5セメスター・クラスD
計算機工学
大学院情報科学研究科
鏡 慎吾
http://www.ic.is.tohoku.ac.jp/~swk/lecture/
13. メモリシステム
(教科書8章)
2鏡 慎吾 (東北大学): 計算機工学 2015 (13)
(復習) MIPSの構造
メモリ
32ビットALU
32x32ビット
レジスタファイル
PC
命令デコーダ
アドレス(32ビット)
データ(8, 16, 32ビット)
次PC計算
制御回路
mux
mux
演算選択
レ
ジ
ス
タ
選
択
3鏡 慎吾 (東北大学): 計算機工学 2015 (13)
(復習) レジスタファイル (32×32ビット,1入力2出力)
en
en
en
32-bit レジスタ × 32個
en
mux
書き込みデータ
読み出し
レジスタ
番号(1)
読み出し
レジスタ
番号(2)
読み出し
データ(1)
読み出し
データ(2)
書き込み
イネーブル
mux
…
2進デコーダ
書き込みレジスタ番号
32
5
5 5
en
この構造のまま,単純に容量を拡大するのは困難
(デコーダ・マルチプレクサが肥大化するため)
4鏡 慎吾 (東北大学): 計算機工学 2015 (13)
メモリの構造
• セル(記憶素子)を2次
元マトリックス状に配
置して,アクセスを縦・
横に分解
• 読み出し・書き込み回
路を共通化
0 1 2 3 255
256 257 258 259 511
65535
行
ア
ド
レ
ス
デ
コ
ー
ダ
addr0
addr1
addr7
addr8
addr9
addr15
列
ア
ド
レ
ス
デ
コ
ー
ダ
data
ワード線
(行選択線)
ビ
ッ
ト
線
(
列
信
号
線
)
5鏡 慎吾 (東北大学): 計算機工学 2015 (13)
addr15
addr16
addr17
addr0
addr1
addr2
…
…
addr
data data data data
addr addr addren en en en
… … …
0x000000
~0x00ffff
0x010000
~0x01ffff
0x100000
~0x10ffff
0x110000
~0x11ffff
データバス
アドレスバス
6鏡 慎吾 (東北大学): 計算機工学 2015 (13)
メモリセルの構造
W
B B
W
B
Static Random Access Memory
(SRAM)
Dynamic Random Access Memory
(DRAM)
• 原理的にはフリップフロップと同じ
• NOTゲートが能動的に電流を供
給してビット線を駆動する
• 1ビットあたりトランジスタ 6 個
• キャパシタが充電されていれば 1,
放電されていれば 0
• ビット線の電位は,キャパシタから
のわずかな電荷で微小に変化する
• 時間とともに電荷が漏れる
• 1ビットあたりトランジスタ 1 個
7鏡 慎吾 (東北大学): 計算機工学 2015 (13)
メモリの動作 (DRAMの場合)
http://www.sugilab.net/jk/joho-kiki/
(1400 処理装置 → 1404 メモリのしくみ)
8鏡 慎吾 (東北大学): 計算機工学 2015 (13)
構造
9鏡 慎吾 (東北大学): 計算機工学 2015 (13)
書き込み
10鏡 慎吾 (東北大学): 計算機工学 2015 (13)
読み出し
11鏡 慎吾 (東北大学): 計算機工学 2015 (13)
SRAM
W
B B
行
ア
ド
レ
ス
デ
コ
ー
ダ
addr0
addr1
addr7
addr8
addr9
addr15
+–
列
ア
ド
レ
ス
デ
コ
ー
ダ
data
アンプ
• 読み出し時には,ビット
対線の電位差を増幅し
て値を得る
• 書き込み時には,セル
のNOTゲートよりも強
くビット線を駆動して記
憶内容を上書きする
12鏡 慎吾 (東北大学): 計算機工学 2015 (13)
DRAM
W
B
行
ア
ド
レ
ス
デ
コ
ー
ダ
列
ア
ド
レ
ス
デ
コ
ー
ダ
センスアンプ
(微小な信号変化の検出・
保持・書き戻し)
data
• 読み出し時は,セルか
ら流れ込む電荷による
ビット線の電位の微小
変化をセンスアンプが
検知して増幅・保持す
る.選択列の値が読み
出される.
• 書き込み時は,読み出
し時と同じ動作の後,選
択列のビット線のみ入
力電圧で上書きする.
addr0
addr1
addr7
addr8
addr9
addr15
13鏡 慎吾 (東北大学): 計算機工学 2015 (13)
SRAM vs DRAM
SRAM DRAM
• 1セルの回路が大きい
• 制御が比較的簡単
• 記憶内容は,電源が入ってい
る限り安定
• よって,速いが小容量
• 1セルの回路が小さい
• 制御が比較的複雑
• 時間が経つと記憶が消える
(リフレッシュと呼ばれる再書
き込み動作を数ミリ秒に1回
行う必要がある)
• よって,遅いが大容量
14鏡 慎吾 (東北大学): 計算機工学 2015 (13)
記憶階層
• 記憶装置は小容量だと速く,大容量だと遅い.
• アクセス開始には時間がかかり,連続データのアクセスは速い.
レイテンシ(遅延時間) 容量
ネットワーク上の記憶 ~ ∞ ~ ∞
ハードディスクドライブ ~ 10 ms ~ Tbytes
DRAM ~ 100 ns ~ Gbytes
SRAM ~ 10 ns (1 ~ 10クロック) K ~ Mbytes
レジスタ ~ 1 ns (1 クロック) 32 ~ 128 bytes
よく使うものは速い記憶装置に置きたい.しかしサイズは限られている.
一般論として
15鏡 慎吾 (東北大学): 計算機工学 2015 (13)
デスクワークからの類推
机
ファイル
キャビネット
資料室
• 机のサイズは限られているので,適宜,室内の
ファイルキャビネットや,社内の資料室に書類を取
りにいかなくてはならない
• 新しい書類が必要になったら,当面不要なものを
キャビネットまたは資料室に仕舞わなくてはならな
い.
• さてどうするか?
自然な戦略:
• 一度使った資料はまたすぐ使う可能性が高
いので,すぐにしまわずに机に置いておく(あ
るいは資料室まで戻さずにキャビネットに置
いておく)
• 関連する資料がすぐ必要になる可能性が高
いので,ある資料が必要なときには,それを
綴じてあるファイルブックごと机に持ってくる
16鏡 慎吾 (東北大学): 計算機工学 2015 (13)
キャッシュメモリ
メインメモリ
(DRAM)
ALU
レジスタ
ファイル
プロセッサ
load
store
キャッシュメモリの制御は,以下の経験則を利用して自動的に行われる
• 時間的局所性
あるデータがアクセスされる場合,近いうちにその同じデータが再度アク
セスされる可能性が高い
• 空間的局所性
あるデータがアクセスされた場合,その周囲の値もアクセスされる可能
性が高い
キャッシュメモリ
(SRAM)
メモリシステム
17鏡 慎吾 (東北大学): 計算機工学 2015 (13)
キャッシュメモリの動作例
あるアドレスへのload命令
そのアドレスの値が
キャッシュ内にある? その値を返して完了
メインメモリから,そのアドレス
を含む一定サイズの連続する
ブロックをまとめて読み出し,
キャッシュに格納
要求されていたアドレス
の値を返して完了
(もしキャッシュ内の格納
すべき場所に先客がいた
ら,先にメインメモリに書
き戻しておく)
Yes (キャッシュヒット)
No (キャッシュミス)
極めて高速 (e.g. 1クロック)
一般に,単なるDRAM読み出しよりも
時間がかかる
平均メモリアクセス時間
= ヒット時間 + キャッシュミス率 × ミスペナルティ時間
ミスペナルティ時間
(a)
(b)
(c)
(b')
18鏡 慎吾 (東北大学): 計算機工学 2015 (13)
63 62 61 60  3 2 1 0

0x80c0
0x8080
0x8040
0x8000

主記憶
(DRAM)
キャッシュメモリ
(SRAM)
メモリシステム
(a)
(b)
(c)
63 62 61 60  3 2 1 0
リクエストされた
アドレス
0x0000 8082
19鏡 慎吾 (東北大学): 計算機工学 2015 (13)
メモリの分類
ランダムアクセスメモリ vs シーケンシャルアクセスメモリ
• 任意の順序で読み書きできるものを RAM (Random Access
Memory) と呼ぶ
• 最近の「メモリ」はほぼ例外なくランダムアクセス可能
揮発性メモリ vs 不揮発性メモリ
• 電源を切るとデータが消えるのが揮発性メモリ
• 不揮発性メモリのうち,主に読み出しに用いるものを ROM
(Read Only Memory) と呼ぶ
• マスクROM (半導体製造時に内容を決めてしまう)
• PROM (Programmable ROM): 書き込み可能
• EPROM (Erasable PROM): 消去も可能
• UV-EPROM: 紫外線で消去
• EEPROM: 電気的に消去(e.g. フラッシュメモリ)
※ RAM と ROM は対義語ではない(ほとんどの ROM はランダムアクセス可能)
※ 「メモリ」という名前でも実は「補助記憶装置」の場合がある (e.g. USBメモリ)
20鏡 慎吾 (東北大学): 計算機工学 2015 (13)
http://ja.wikipedia.org/wiki/Intel_Core_i7
http://www.atmarkit.co.jp/fsys/zun
ouhoudan/102zunou/corei7.html
http://www.sugilab.net/jk/joho-kiki/
DRAMモジュール
SRAM (キャッシュ
メモリ) 内蔵プロ
セッサ
21鏡 慎吾 (東北大学): 計算機工学 2015 (13)
http://blog.livedoor.jp/game_retro/archives/1403347.html
http://ja.wikipedia.org/wiki/
ファイル:Famicom_ROM_cassette.jpg
ファミリーコンピュータ用ROMカートリッジ(ロムカセット)
22鏡 慎吾 (東北大学): 計算機工学 2015 (13)
例題(おまけ, あまり本題と関係ない)
任天堂のゲーム機 ファミリーコンピュータ (1983年発売) では,ソフトウェアは
ROMカートリッジの形で提供されていた.基本的にはマスク ROM を本体に直
結する構造であるが,「森田将棋」(セタ, 1987年) 以降,カートリッジ内に
SRAM と電池も内蔵し,ゲームの進行状況を記録できる機能(バッテリーバッ
クアップ)を持つものがしばしば発売された.
それらのゲームでは,ゲーム終了時に本体のリセットボタンを押しながら電源
スイッチを切るように指示されることが多かった.その理由として正しいと思われ
るものを選び,理由とともに答えよ.(次ページの回路図を参考にせよ)
1. SRAM を保護する機能がリセットボタンに割り当てられていたから.
2. リセットボタンを押している間はカートリッジへの電源供給が遮断される
構造になっていたので,電源スイッチからのノイズが SRAM に伝わるの
を防ぐことができたため.
3. リセットボタンを押している間はプロセッサが初期状態に固定されるので,
SRAM へのアクセスが発生しなくなるため.
23鏡 慎吾 (東北大学): 計算機工学 2015 (13)
http://nesdev.icequake.net/
http://nesdev.icequake.net/Ntd_8bit.jpg
25鏡 慎吾 (東北大学): 計算機工学 2015 (13)
解答例
1983年のゲーム機本体発売当時にバッテリーバックアップの仕
組みが考慮されていたと考えるのは合理的ではないため,1 は
除外できる.
回路図を参照すると,リセットボタンに電源供給を遮断する機能
は無いことがわかる.したがって 2 も除外できる.(この説はウェ
ブ上でまことしやかに流れているものだが,デマであると結論で
きる)
回路図によると,リセットボタンを押している間はプロセッサの
RST 信号が 0 になる.その間,有限状態機械が初期状態に留
まり続け,メモリアクセスが発生しないようにしていると考えるの
が妥当である.
26鏡 慎吾 (東北大学): 計算機工学 2015 (13)
練習問題
1. ヒット時間が 1 ns,ミスペナルティ時間が 20 ns のメモリシス
テムを考える.キャッシュミス率が 5 % のときの平均メモリア
クセス時間を求めよ.
2. 1のシステムにおいて,平均メモリアクセス時間を 1.5 [ns] に
するために必要なキャッシュミス率を求めよ.
3. 一般にキャッシュメモリのサイズを大きくするとキャッシュミス
率は下がるが,ヒット時間は増大する傾向にある.ある計算
機の設計において,キャッシュサイズを 2 倍にすることによっ
てキャッシュミス率が 0.5 % から 0.3 % に改善することがわ
かった.これによって平均メモリアクセス時間を短縮できるた
めには,ヒット時間の増大はどの程度に抑えられている必要
があるか述べよ.ただしミスペナルティ時間は変更前のヒット
時間の 20 倍で,キャッシュサイズに依存しないとする.
27鏡 慎吾 (東北大学): 計算機工学 2015 (13)
解答例
平均メモリアクセス時間 = ヒット時間 + キャッシュミス率 × ミスペナルティ時間
1. 1 + 5×10-2 × 20 = 2 [ns]
2. 1 + p×10-2 × 20 = 1.5 を p について解いて,p = 2.5 [%]
3. 変更前,変更後の平均メモリアクセス時間を tma1,tma2,同じく
ヒット時間を thit1,thit2 と書くと,
tma1 = thit1 + 0.510-2  20thit1
tma2 = thit2 + 0.310-2  20thit1
tma2 – tma1 = thit2 – thit1 – 0.210-2  20thit1
= thit2 – thit1  1.04
よって 1.04 倍までの増大は許容できる.(逆に言うと,ヒット時間
が 4 % 増大してしまうなら,ミス率改善の努力は無駄になる)

More Related Content

Viewers also liked

kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9swkagami
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14swkagami
 
kagami_comput2016_12
kagami_comput2016_12kagami_comput2016_12
kagami_comput2016_12swkagami
 
kagami_comput2016_13
kagami_comput2016_13kagami_comput2016_13
kagami_comput2016_13swkagami
 
kagami_comput2016_06
kagami_comput2016_06kagami_comput2016_06
kagami_comput2016_06swkagami
 
kagami_comput2016_09
kagami_comput2016_09kagami_comput2016_09
kagami_comput2016_09swkagami
 
kagami_comput2016_08
kagami_comput2016_08kagami_comput2016_08
kagami_comput2016_08swkagami
 
kagami_comput2016_05
kagami_comput2016_05kagami_comput2016_05
kagami_comput2016_05swkagami
 
kagami_comput2016_07
kagami_comput2016_07kagami_comput2016_07
kagami_comput2016_07swkagami
 
HTML5クイズ!
HTML5クイズ!HTML5クイズ!
HTML5クイズ!yoshikawa_t
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4Shingo Inoue
 
kagami_comput2015_4
kagami_comput2015_4kagami_comput2015_4
kagami_comput2015_4swkagami
 
JavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめJavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめYossy Taka
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013Ryo Sakamoto
 
kagami_comput2015_8
kagami_comput2015_8kagami_comput2015_8
kagami_comput2015_8swkagami
 
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...Sonia Fernandes Bogo
 
kagami_comput2015_7
kagami_comput2015_7kagami_comput2015_7
kagami_comput2015_7swkagami
 
Spanish_AdSenseOnlineOverview_121103_ps
Spanish_AdSenseOnlineOverview_121103_psSpanish_AdSenseOnlineOverview_121103_ps
Spanish_AdSenseOnlineOverview_121103_psNatura
 

Viewers also liked (20)

kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
 
kagami_comput2016_12
kagami_comput2016_12kagami_comput2016_12
kagami_comput2016_12
 
kagami_comput2016_13
kagami_comput2016_13kagami_comput2016_13
kagami_comput2016_13
 
kagami_comput2016_06
kagami_comput2016_06kagami_comput2016_06
kagami_comput2016_06
 
kagami_comput2016_09
kagami_comput2016_09kagami_comput2016_09
kagami_comput2016_09
 
kagami_comput2016_08
kagami_comput2016_08kagami_comput2016_08
kagami_comput2016_08
 
kagami_comput2016_05
kagami_comput2016_05kagami_comput2016_05
kagami_comput2016_05
 
kagami_comput2016_07
kagami_comput2016_07kagami_comput2016_07
kagami_comput2016_07
 
HTML5クイズ!
HTML5クイズ!HTML5クイズ!
HTML5クイズ!
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
 
kagami_comput2015_4
kagami_comput2015_4kagami_comput2015_4
kagami_comput2015_4
 
JavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめJavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめ
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
kagami_comput2015_8
kagami_comput2015_8kagami_comput2015_8
kagami_comput2015_8
 
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
 
kagami_comput2015_7
kagami_comput2015_7kagami_comput2015_7
kagami_comput2015_7
 
CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎
 
Spanish_AdSenseOnlineOverview_121103_ps
Spanish_AdSenseOnlineOverview_121103_psSpanish_AdSenseOnlineOverview_121103_ps
Spanish_AdSenseOnlineOverview_121103_ps
 
La vida
La vidaLa vida
La vida
 

Similar to kagami_comput2015_13

kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813swkagami
 
kagamicomput201713
kagamicomput201713kagamicomput201713
kagamicomput201713swkagami
 
2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen直久 住川
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムShinya Takamaeda-Y
 
kagami_comput2015_6
kagami_comput2015_6kagami_comput2015_6
kagami_comput2015_6swkagami
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何かRyousei Takano
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)Shinya Takamaeda-Y
 
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発Shinya Takamaeda-Y
 
OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料Shin-ya Koga
 
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805swkagami
 
DTrace for biginners part(1)
DTrace for biginners part(1)DTrace for biginners part(1)
DTrace for biginners part(1)Shoji Haraguchi
 
kagami_comput2015_5
kagami_comput2015_5kagami_comput2015_5
kagami_comput2015_5swkagami
 
kagamicomput201705
kagamicomput201705kagamicomput201705
kagamicomput201705swkagami
 
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知るMasahiro Hidaka
 
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent MemoryASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent MemoryAtsushi Koshiba
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくばHirotaka Kawata
 
1次ベーシック講座情報第1回 修正版
1次ベーシック講座情報第1回 修正版1次ベーシック講座情報第1回 修正版
1次ベーシック講座情報第1回 修正版Nashiro Daisuke
 

Similar to kagami_comput2015_13 (17)

kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813
 
kagamicomput201713
kagamicomput201713kagamicomput201713
kagamicomput201713
 
2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen2021 03-09-ac ri-nngen
2021 03-09-ac ri-nngen
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
 
kagami_comput2015_6
kagami_comput2015_6kagami_comput2015_6
kagami_comput2015_6
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
 
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
 
OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料
 
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805
 
DTrace for biginners part(1)
DTrace for biginners part(1)DTrace for biginners part(1)
DTrace for biginners part(1)
 
kagami_comput2015_5
kagami_comput2015_5kagami_comput2015_5
kagami_comput2015_5
 
kagamicomput201705
kagamicomput201705kagamicomput201705
kagamicomput201705
 
新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る新版 OutOfMemoryErrorを知る
新版 OutOfMemoryErrorを知る
 
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent MemoryASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
 
1次ベーシック講座情報第1回 修正版
1次ベーシック講座情報第1回 修正版1次ベーシック講座情報第1回 修正版
1次ベーシック講座情報第1回 修正版
 

More from swkagami

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814swkagami
 
kagamicomput201812
kagamicomput201812kagamicomput201812
kagamicomput201812swkagami
 
kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811swkagami
 
kagamicomput201810
kagamicomput201810kagamicomput201810
kagamicomput201810swkagami
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809swkagami
 
kagamicomput201808
kagamicomput201808kagamicomput201808
kagamicomput201808swkagami
 
kagamicomput201807
kagamicomput201807kagamicomput201807
kagamicomput201807swkagami
 
kagamicomput201806
kagamicomput201806kagamicomput201806
kagamicomput201806swkagami
 
kagamicomput201804
kagamicomput201804kagamicomput201804
kagamicomput201804swkagami
 
kagamicomput201803
kagamicomput201803kagamicomput201803
kagamicomput201803swkagami
 
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802swkagami
 
kagamicomput201801
kagamicomput201801kagamicomput201801
kagamicomput201801swkagami
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714swkagami
 
kagamicomput201712
kagamicomput201712kagamicomput201712
kagamicomput201712swkagami
 
kagamicomput201711
kagamicomput201711kagamicomput201711
kagamicomput201711swkagami
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710swkagami
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709swkagami
 
kagamicomput201708
kagamicomput201708kagamicomput201708
kagamicomput201708swkagami
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707swkagami
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706swkagami
 

More from swkagami (20)

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814
 
kagamicomput201812
kagamicomput201812kagamicomput201812
kagamicomput201812
 
kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811
 
kagamicomput201810
kagamicomput201810kagamicomput201810
kagamicomput201810
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809
 
kagamicomput201808
kagamicomput201808kagamicomput201808
kagamicomput201808
 
kagamicomput201807
kagamicomput201807kagamicomput201807
kagamicomput201807
 
kagamicomput201806
kagamicomput201806kagamicomput201806
kagamicomput201806
 
kagamicomput201804
kagamicomput201804kagamicomput201804
kagamicomput201804
 
kagamicomput201803
kagamicomput201803kagamicomput201803
kagamicomput201803
 
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802
 
kagamicomput201801
kagamicomput201801kagamicomput201801
kagamicomput201801
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
 
kagamicomput201712
kagamicomput201712kagamicomput201712
kagamicomput201712
 
kagamicomput201711
kagamicomput201711kagamicomput201711
kagamicomput201711
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709
 
kagamicomput201708
kagamicomput201708kagamicomput201708
kagamicomput201708
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706
 

kagami_comput2015_13

  • 1. 東北大学 工学部 機械知能・航空工学科 2015年度 5セメスター・クラスD 計算機工学 大学院情報科学研究科 鏡 慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 13. メモリシステム (教科書8章)
  • 2. 2鏡 慎吾 (東北大学): 計算機工学 2015 (13) (復習) MIPSの構造 メモリ 32ビットALU 32x32ビット レジスタファイル PC 命令デコーダ アドレス(32ビット) データ(8, 16, 32ビット) 次PC計算 制御回路 mux mux 演算選択 レ ジ ス タ 選 択
  • 3. 3鏡 慎吾 (東北大学): 計算機工学 2015 (13) (復習) レジスタファイル (32×32ビット,1入力2出力) en en en 32-bit レジスタ × 32個 en mux 書き込みデータ 読み出し レジスタ 番号(1) 読み出し レジスタ 番号(2) 読み出し データ(1) 読み出し データ(2) 書き込み イネーブル mux … 2進デコーダ 書き込みレジスタ番号 32 5 5 5 en この構造のまま,単純に容量を拡大するのは困難 (デコーダ・マルチプレクサが肥大化するため)
  • 4. 4鏡 慎吾 (東北大学): 計算機工学 2015 (13) メモリの構造 • セル(記憶素子)を2次 元マトリックス状に配 置して,アクセスを縦・ 横に分解 • 読み出し・書き込み回 路を共通化 0 1 2 3 255 256 257 258 259 511 65535 行 ア ド レ ス デ コ ー ダ addr0 addr1 addr7 addr8 addr9 addr15 列 ア ド レ ス デ コ ー ダ data ワード線 (行選択線) ビ ッ ト 線 ( 列 信 号 線 )
  • 5. 5鏡 慎吾 (東北大学): 計算機工学 2015 (13) addr15 addr16 addr17 addr0 addr1 addr2 … … addr data data data data addr addr addren en en en … … … 0x000000 ~0x00ffff 0x010000 ~0x01ffff 0x100000 ~0x10ffff 0x110000 ~0x11ffff データバス アドレスバス
  • 6. 6鏡 慎吾 (東北大学): 計算機工学 2015 (13) メモリセルの構造 W B B W B Static Random Access Memory (SRAM) Dynamic Random Access Memory (DRAM) • 原理的にはフリップフロップと同じ • NOTゲートが能動的に電流を供 給してビット線を駆動する • 1ビットあたりトランジスタ 6 個 • キャパシタが充電されていれば 1, 放電されていれば 0 • ビット線の電位は,キャパシタから のわずかな電荷で微小に変化する • 時間とともに電荷が漏れる • 1ビットあたりトランジスタ 1 個
  • 7. 7鏡 慎吾 (東北大学): 計算機工学 2015 (13) メモリの動作 (DRAMの場合) http://www.sugilab.net/jk/joho-kiki/ (1400 処理装置 → 1404 メモリのしくみ)
  • 8. 8鏡 慎吾 (東北大学): 計算機工学 2015 (13) 構造
  • 9. 9鏡 慎吾 (東北大学): 計算機工学 2015 (13) 書き込み
  • 10. 10鏡 慎吾 (東北大学): 計算機工学 2015 (13) 読み出し
  • 11. 11鏡 慎吾 (東北大学): 計算機工学 2015 (13) SRAM W B B 行 ア ド レ ス デ コ ー ダ addr0 addr1 addr7 addr8 addr9 addr15 +– 列 ア ド レ ス デ コ ー ダ data アンプ • 読み出し時には,ビット 対線の電位差を増幅し て値を得る • 書き込み時には,セル のNOTゲートよりも強 くビット線を駆動して記 憶内容を上書きする
  • 12. 12鏡 慎吾 (東北大学): 計算機工学 2015 (13) DRAM W B 行 ア ド レ ス デ コ ー ダ 列 ア ド レ ス デ コ ー ダ センスアンプ (微小な信号変化の検出・ 保持・書き戻し) data • 読み出し時は,セルか ら流れ込む電荷による ビット線の電位の微小 変化をセンスアンプが 検知して増幅・保持す る.選択列の値が読み 出される. • 書き込み時は,読み出 し時と同じ動作の後,選 択列のビット線のみ入 力電圧で上書きする. addr0 addr1 addr7 addr8 addr9 addr15
  • 13. 13鏡 慎吾 (東北大学): 計算機工学 2015 (13) SRAM vs DRAM SRAM DRAM • 1セルの回路が大きい • 制御が比較的簡単 • 記憶内容は,電源が入ってい る限り安定 • よって,速いが小容量 • 1セルの回路が小さい • 制御が比較的複雑 • 時間が経つと記憶が消える (リフレッシュと呼ばれる再書 き込み動作を数ミリ秒に1回 行う必要がある) • よって,遅いが大容量
  • 14. 14鏡 慎吾 (東北大学): 計算機工学 2015 (13) 記憶階層 • 記憶装置は小容量だと速く,大容量だと遅い. • アクセス開始には時間がかかり,連続データのアクセスは速い. レイテンシ(遅延時間) 容量 ネットワーク上の記憶 ~ ∞ ~ ∞ ハードディスクドライブ ~ 10 ms ~ Tbytes DRAM ~ 100 ns ~ Gbytes SRAM ~ 10 ns (1 ~ 10クロック) K ~ Mbytes レジスタ ~ 1 ns (1 クロック) 32 ~ 128 bytes よく使うものは速い記憶装置に置きたい.しかしサイズは限られている. 一般論として
  • 15. 15鏡 慎吾 (東北大学): 計算機工学 2015 (13) デスクワークからの類推 机 ファイル キャビネット 資料室 • 机のサイズは限られているので,適宜,室内の ファイルキャビネットや,社内の資料室に書類を取 りにいかなくてはならない • 新しい書類が必要になったら,当面不要なものを キャビネットまたは資料室に仕舞わなくてはならな い. • さてどうするか? 自然な戦略: • 一度使った資料はまたすぐ使う可能性が高 いので,すぐにしまわずに机に置いておく(あ るいは資料室まで戻さずにキャビネットに置 いておく) • 関連する資料がすぐ必要になる可能性が高 いので,ある資料が必要なときには,それを 綴じてあるファイルブックごと机に持ってくる
  • 16. 16鏡 慎吾 (東北大学): 計算機工学 2015 (13) キャッシュメモリ メインメモリ (DRAM) ALU レジスタ ファイル プロセッサ load store キャッシュメモリの制御は,以下の経験則を利用して自動的に行われる • 時間的局所性 あるデータがアクセスされる場合,近いうちにその同じデータが再度アク セスされる可能性が高い • 空間的局所性 あるデータがアクセスされた場合,その周囲の値もアクセスされる可能 性が高い キャッシュメモリ (SRAM) メモリシステム
  • 17. 17鏡 慎吾 (東北大学): 計算機工学 2015 (13) キャッシュメモリの動作例 あるアドレスへのload命令 そのアドレスの値が キャッシュ内にある? その値を返して完了 メインメモリから,そのアドレス を含む一定サイズの連続する ブロックをまとめて読み出し, キャッシュに格納 要求されていたアドレス の値を返して完了 (もしキャッシュ内の格納 すべき場所に先客がいた ら,先にメインメモリに書 き戻しておく) Yes (キャッシュヒット) No (キャッシュミス) 極めて高速 (e.g. 1クロック) 一般に,単なるDRAM読み出しよりも 時間がかかる 平均メモリアクセス時間 = ヒット時間 + キャッシュミス率 × ミスペナルティ時間 ミスペナルティ時間 (a) (b) (c) (b')
  • 18. 18鏡 慎吾 (東北大学): 計算機工学 2015 (13) 63 62 61 60  3 2 1 0  0x80c0 0x8080 0x8040 0x8000  主記憶 (DRAM) キャッシュメモリ (SRAM) メモリシステム (a) (b) (c) 63 62 61 60  3 2 1 0 リクエストされた アドレス 0x0000 8082
  • 19. 19鏡 慎吾 (東北大学): 計算機工学 2015 (13) メモリの分類 ランダムアクセスメモリ vs シーケンシャルアクセスメモリ • 任意の順序で読み書きできるものを RAM (Random Access Memory) と呼ぶ • 最近の「メモリ」はほぼ例外なくランダムアクセス可能 揮発性メモリ vs 不揮発性メモリ • 電源を切るとデータが消えるのが揮発性メモリ • 不揮発性メモリのうち,主に読み出しに用いるものを ROM (Read Only Memory) と呼ぶ • マスクROM (半導体製造時に内容を決めてしまう) • PROM (Programmable ROM): 書き込み可能 • EPROM (Erasable PROM): 消去も可能 • UV-EPROM: 紫外線で消去 • EEPROM: 電気的に消去(e.g. フラッシュメモリ) ※ RAM と ROM は対義語ではない(ほとんどの ROM はランダムアクセス可能) ※ 「メモリ」という名前でも実は「補助記憶装置」の場合がある (e.g. USBメモリ)
  • 20. 20鏡 慎吾 (東北大学): 計算機工学 2015 (13) http://ja.wikipedia.org/wiki/Intel_Core_i7 http://www.atmarkit.co.jp/fsys/zun ouhoudan/102zunou/corei7.html http://www.sugilab.net/jk/joho-kiki/ DRAMモジュール SRAM (キャッシュ メモリ) 内蔵プロ セッサ
  • 21. 21鏡 慎吾 (東北大学): 計算機工学 2015 (13) http://blog.livedoor.jp/game_retro/archives/1403347.html http://ja.wikipedia.org/wiki/ ファイル:Famicom_ROM_cassette.jpg ファミリーコンピュータ用ROMカートリッジ(ロムカセット)
  • 22. 22鏡 慎吾 (東北大学): 計算機工学 2015 (13) 例題(おまけ, あまり本題と関係ない) 任天堂のゲーム機 ファミリーコンピュータ (1983年発売) では,ソフトウェアは ROMカートリッジの形で提供されていた.基本的にはマスク ROM を本体に直 結する構造であるが,「森田将棋」(セタ, 1987年) 以降,カートリッジ内に SRAM と電池も内蔵し,ゲームの進行状況を記録できる機能(バッテリーバッ クアップ)を持つものがしばしば発売された. それらのゲームでは,ゲーム終了時に本体のリセットボタンを押しながら電源 スイッチを切るように指示されることが多かった.その理由として正しいと思われ るものを選び,理由とともに答えよ.(次ページの回路図を参考にせよ) 1. SRAM を保護する機能がリセットボタンに割り当てられていたから. 2. リセットボタンを押している間はカートリッジへの電源供給が遮断される 構造になっていたので,電源スイッチからのノイズが SRAM に伝わるの を防ぐことができたため. 3. リセットボタンを押している間はプロセッサが初期状態に固定されるので, SRAM へのアクセスが発生しなくなるため.
  • 23. 23鏡 慎吾 (東北大学): 計算機工学 2015 (13) http://nesdev.icequake.net/ http://nesdev.icequake.net/Ntd_8bit.jpg
  • 24. 25鏡 慎吾 (東北大学): 計算機工学 2015 (13) 解答例 1983年のゲーム機本体発売当時にバッテリーバックアップの仕 組みが考慮されていたと考えるのは合理的ではないため,1 は 除外できる. 回路図を参照すると,リセットボタンに電源供給を遮断する機能 は無いことがわかる.したがって 2 も除外できる.(この説はウェ ブ上でまことしやかに流れているものだが,デマであると結論で きる) 回路図によると,リセットボタンを押している間はプロセッサの RST 信号が 0 になる.その間,有限状態機械が初期状態に留 まり続け,メモリアクセスが発生しないようにしていると考えるの が妥当である.
  • 25. 26鏡 慎吾 (東北大学): 計算機工学 2015 (13) 練習問題 1. ヒット時間が 1 ns,ミスペナルティ時間が 20 ns のメモリシス テムを考える.キャッシュミス率が 5 % のときの平均メモリア クセス時間を求めよ. 2. 1のシステムにおいて,平均メモリアクセス時間を 1.5 [ns] に するために必要なキャッシュミス率を求めよ. 3. 一般にキャッシュメモリのサイズを大きくするとキャッシュミス 率は下がるが,ヒット時間は増大する傾向にある.ある計算 機の設計において,キャッシュサイズを 2 倍にすることによっ てキャッシュミス率が 0.5 % から 0.3 % に改善することがわ かった.これによって平均メモリアクセス時間を短縮できるた めには,ヒット時間の増大はどの程度に抑えられている必要 があるか述べよ.ただしミスペナルティ時間は変更前のヒット 時間の 20 倍で,キャッシュサイズに依存しないとする.
  • 26. 27鏡 慎吾 (東北大学): 計算機工学 2015 (13) 解答例 平均メモリアクセス時間 = ヒット時間 + キャッシュミス率 × ミスペナルティ時間 1. 1 + 5×10-2 × 20 = 2 [ns] 2. 1 + p×10-2 × 20 = 1.5 を p について解いて,p = 2.5 [%] 3. 変更前,変更後の平均メモリアクセス時間を tma1,tma2,同じく ヒット時間を thit1,thit2 と書くと, tma1 = thit1 + 0.510-2  20thit1 tma2 = thit2 + 0.310-2  20thit1 tma2 – tma1 = thit2 – thit1 – 0.210-2  20thit1 = thit2 – thit1  1.04 よって 1.04 倍までの増大は許容できる.(逆に言うと,ヒット時間 が 4 % 増大してしまうなら,ミス率改善の努力は無駄になる)