Submit Search
Upload
昔の外付けキャッシュ & コヒーレント・キャッシュ
•
0 likes
•
1,082 views
たけおか しょうぞう
Follow
Cache and Snooping. Address bus is used for communication of CPU Cores
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 10
Download now
Download to read offline
Recommended
Lispマシン・シミュレータの紹介
Lispマシン・シミュレータの紹介
たけおか しょうぞう
Ichigojam ossc-170819
Ichigojam ossc-170819
たけおか しょうぞう
Lisp_chibi_machine 190427
Lisp_chibi_machine 190427
たけおか しょうぞう
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
たけおか しょうぞう
お化け
お化け
たけおか しょうぞう
Common Lisp ユーザへのScheme紹介
Common Lisp ユーザへのScheme紹介
たけおか しょうぞう
Openhard150114
Openhard150114
たけおか しょうぞう
Recommended
Lispマシン・シミュレータの紹介
Lispマシン・シミュレータの紹介
たけおか しょうぞう
Ichigojam ossc-170819
Ichigojam ossc-170819
たけおか しょうぞう
Lisp_chibi_machine 190427
Lisp_chibi_machine 190427
たけおか しょうぞう
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
たけおか しょうぞう
お化け
お化け
たけおか しょうぞう
Common Lisp ユーザへのScheme紹介
Common Lisp ユーザへのScheme紹介
たけおか しょうぞう
Openhard150114
Openhard150114
たけおか しょうぞう
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
たけおか しょうぞう
ロボット用Open Source Software
ロボット用Open Source Software
たけおか しょうぞう
Os真髄
Os真髄
magoroku Yamamoto
xv6 + mist32 + mruby
xv6 + mist32 + mruby
Hirotaka Kawata
RISC-Vの可能性
RISC-Vの可能性
たけおか しょうぞう
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
Ryuichi Ueda
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda
意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド
Takuma Nakajima
What's Operating System?
What's Operating System?
Naruhiko Ogasawara
DEC_6600,DEC_TITAN Implementation of NetBSD(仮)
DEC_6600,DEC_TITAN Implementation of NetBSD(仮)
nullnilaki
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Keigo Nishida
OSC2017Hokkaido
OSC2017Hokkaido
slankdev
M5StickVで詰まった話
M5StickVで詰まった話
shts1
Unix32 v 20100508
Unix32 v 20100508
xylnao
UNIX/32V
UNIX/32V
xylnao
Fuji sakuraでmbedを!
Fuji sakuraでmbedを!
Tetsuya Noguchi
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
monochrojazz
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda
Axeai 170421
Axeai 170421
たけおか しょうぞう
無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレ
たけおか しょうぞう
RISC-V User level ISA
RISC-V User level ISA
たけおか しょうぞう
More Related Content
What's hot
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
たけおか しょうぞう
ロボット用Open Source Software
ロボット用Open Source Software
たけおか しょうぞう
Os真髄
Os真髄
magoroku Yamamoto
xv6 + mist32 + mruby
xv6 + mist32 + mruby
Hirotaka Kawata
RISC-Vの可能性
RISC-Vの可能性
たけおか しょうぞう
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
Ryuichi Ueda
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
Ryuichi Ueda
意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド
Takuma Nakajima
What's Operating System?
What's Operating System?
Naruhiko Ogasawara
DEC_6600,DEC_TITAN Implementation of NetBSD(仮)
DEC_6600,DEC_TITAN Implementation of NetBSD(仮)
nullnilaki
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Keigo Nishida
OSC2017Hokkaido
OSC2017Hokkaido
slankdev
M5StickVで詰まった話
M5StickVで詰まった話
shts1
Unix32 v 20100508
Unix32 v 20100508
xylnao
UNIX/32V
UNIX/32V
xylnao
Fuji sakuraでmbedを!
Fuji sakuraでmbedを!
Tetsuya Noguchi
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
monochrojazz
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Ryuichi Ueda
Axeai 170421
Axeai 170421
たけおか しょうぞう
What's hot
(20)
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
フラグ色々&その遅延評価-仮想機械インタープリタ書きのための-
ロボット用Open Source Software
ロボット用Open Source Software
Os真髄
Os真髄
xv6 + mist32 + mruby
xv6 + mist32 + mruby
RISC-Vの可能性
RISC-Vの可能性
ロボットシステム学2015年第7回
ロボットシステム学2015年第7回
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
意外に作れる!?はじめての研究室内プライベートクラウド
意外に作れる!?はじめての研究室内プライベートクラウド
What's Operating System?
What's Operating System?
DEC_6600,DEC_TITAN Implementation of NetBSD(仮)
DEC_6600,DEC_TITAN Implementation of NetBSD(仮)
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
Chipyardによるベイズニューラルネットワーク向け学習アクセラレータ開発 @ RISC-V Day Tokyo 2020 Virtual Booths
OSC2017Hokkaido
OSC2017Hokkaido
M5StickVで詰まった話
M5StickVで詰まった話
Unix32 v 20100508
Unix32 v 20100508
UNIX/32V
UNIX/32V
Fuji sakuraでmbedを!
Fuji sakuraでmbedを!
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
ロボットシステム学2015年第11回
ロボットシステム学2015年第11回
Axeai 170421
Axeai 170421
Similar to 昔の外付けキャッシュ & コヒーレント・キャッシュ
無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレ
たけおか しょうぞう
RISC-V User level ISA
RISC-V User level ISA
たけおか しょうぞう
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
Akihiro Suda
Dataflow140711-a@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1
たけおか しょうぞう
Dataflow140711@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1
たけおか しょうぞう
高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット
Akihiro Suda
最小セット
最小セット
Kiyoshi Ogawa
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
Windows Subsystem for Linux 2
Windows Subsystem for Linux 2
Tomokazu Kizawa
そういえばRとはなんだったか
そういえばRとはなんだったか
Nobukuni Kino
OpenStack Updates
OpenStack Updates
Masanori Itoh
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PC Cluster Consortium
2017年に「伽藍とバザール」を読み返す
2017年に「伽藍とバザール」を読み返す
Yasuharu Seki
公開講座
公開講座
Chitose Institute of Science and Technology.
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
Takumi Kurosawa
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
IGDA Japan
CSAJ MeeGo 20100423
CSAJ MeeGo 20100423
Mitz Amano
オブジェクト指向モデリング
オブジェクト指向モデリング
takepu
Introduction of FPGA
Introduction of FPGA
Imaoka Micihihiro
Unixの歴史
Unixの歴史
Nekokichi
Similar to 昔の外付けキャッシュ & コヒーレント・キャッシュ
(20)
無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレ
RISC-V User level ISA
RISC-V User level ISA
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
Dataflow140711-a@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1
高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット
最小セット
最小セット
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Windows Subsystem for Linux 2
Windows Subsystem for Linux 2
そういえばRとはなんだったか
そういえばRとはなんだったか
OpenStack Updates
OpenStack Updates
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
2017年に「伽藍とバザール」を読み返す
2017年に「伽藍とバザール」を読み返す
公開講座
公開講座
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
CSAJ MeeGo 20100423
CSAJ MeeGo 20100423
オブジェクト指向モデリング
オブジェクト指向モデリング
Introduction of FPGA
Introduction of FPGA
Unixの歴史
Unixの歴史
More from たけおか しょうぞう
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
たけおか しょうぞう
SOAR:Smalltalk on RISC
SOAR:Smalltalk on RISC
たけおか しょうぞう
俺ASICと俺CPU“松竹V(しょうちくぶい)”
俺ASICと俺CPU“松竹V(しょうちくぶい)”
たけおか しょうぞう
あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)
たけおか しょうぞう
RISC-Vの可能性
RISC-Vの可能性
たけおか しょうぞう
どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?
たけおか しょうぞう
Riscv+fpga200606
Riscv+fpga200606
たけおか しょうぞう
Takep lpc1114-190614
Takep lpc1114-190614
たけおか しょうぞう
Takep lpc1114-190613
Takep lpc1114-190613
たけおか しょうぞう
初歩的な部品の知識
初歩的な部品の知識
たけおか しょうぞう
Takepino LPC1114
Takepino LPC1114
たけおか しょうぞう
大昔のMMU
大昔のMMU
たけおか しょうぞう
Robot Language and a Tail Recursive Interpreter
Robot Language and a Tail Recursive Interpreter
たけおか しょうぞう
Dataflow140711
Dataflow140711
たけおか しょうぞう
More from たけおか しょうぞう
(14)
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
いにしえ的ななにか、カニか? RISC-V picoRV32, e203 改造 オレオレ命令追加した
SOAR:Smalltalk on RISC
SOAR:Smalltalk on RISC
俺ASICと俺CPU“松竹V(しょうちくぶい)”
俺ASICと俺CPU“松竹V(しょうちくぶい)”
あるRISC-V CPUの 浮動小数点数(異常なし)
あるRISC-V CPUの 浮動小数点数(異常なし)
RISC-Vの可能性
RISC-Vの可能性
どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?
Riscv+fpga200606
Riscv+fpga200606
Takep lpc1114-190614
Takep lpc1114-190614
Takep lpc1114-190613
Takep lpc1114-190613
初歩的な部品の知識
初歩的な部品の知識
Takepino LPC1114
Takepino LPC1114
大昔のMMU
大昔のMMU
Robot Language and a Tail Recursive Interpreter
Robot Language and a Tail Recursive Interpreter
Dataflow140711
Dataflow140711
昔の外付けキャッシュ & コヒーレント・キャッシュ
1.
昔の外付けキャッシュ & コヒーレント・キャッシュ 2017/SEP/23 たけおか@AXE @takeoka
2.
2 竹岡って誰? 1977年(高校2年生): MITのJames Slagleの書いたAIの教科書(日本語版)を読んで、 「○×」を打つプログラムを8bitマイコンTK-80(8080,RAM
512Bytes)の機械語で書く 1980年代:UNIXのサーバクライアント方式の仮名漢字変換システムWnn、国産シンクライアント(X Window端末”XMiNT”)などの設計開発に携わる。TCP/IPスタックの独自実装。Temporal Prolog実装 1990年代初頭: 1024PE規模の超並列計算機”SM-1”(豊橋技科大 湯淺研,住友金属)のLSIハード ウェア、ソフトウェアの設計開発に携わる。Common Lispで開発ツール書いた。 1992年:(株)アックスを興し、マイクロカーネルXTALを設計。XTALはオリンパス社製デジタルカメラ、 シャープ ザウルスなどに使用された。アックスは、人工知能を開発&販売中 2015年: Tier IVの社長を拝命 (アックス社長と兼任) OSSコンソーシアム副会長, JASA技術本部長/理事,PCクラスタコンソーシアム理事,DEOS協会事務局長 超並列計算機SM-1 (1992年) シンクライアント XMiNT (1988年) オリンパス デジカメ (2000年) カラーザウルス(1996年)
3.
昔 ● CPUチップの外に キャッシュ –
キャッシュはCPU(コア)チップの外 – 高速RAM(SRAM)キャッシュ・コントローラLSIに内蔵だったり、外付 けだったり – DRAM (遅い) – 昔(1990年代前半)も、コヒーレンシを保つキャッシュ・コントローラ LSIはあった(はず。データシートが見つからない) CPU コア メイン・ メモリ (DRAM) SRAM データ データ データ アドレス アドレス アドレス ※キャッシュ制御のための詳細は省略 ※アドレスの一部は、直にSRAMにい くものもある キャッシュ コントローラ キャッシュしている アドレスの表 キャッシュ
4.
キャッシュ制御部とは ● キャッシュ・コントローラは、キャッシュされているデータのアドレスを記憶している – キャッシュしているデータの、素のアドレス – SRAM上のアドレス ●
CPUからのアドレスが、キャッシュ内にあれば、 そのデータの入ってるSRAM上のアドレスを、SRAMに与える ● キャッシュ内になければ、DRAMから取ってくる ● DRAMへの書き戻しは、まぁ分かるよな… CPU コア メイン・ メモリ (DRAM) SRAM データ データ データ アドレス アドレス アドレス ※キャッシュ制御のための詳細は省略 ※アドレスの一部は、直にSRAMにいく ものもある キャッシュ コントローラ キャッシュしている アドレスの表 キャッシュ
5.
マルチCPU/マルチ・コア ● キャッシュ制御部 同士は、アドレス線がつながっているよ! CPUコア#0 メイン・ メモリ (DRAM) キャッシュ 制御 高速 RAM キャッシュ アドレス データ キャッシュ 制御 高速 RAM キャッシュ アドレス データ キャッシュ 制御 高速 RAM キャッシュ アドレス データ CPUコア#1 CPUコア#2
6.
コヒーレント・キャッシュ ● バラバラに存在するキャッシュの一貫性が、自動的に保たれる ● 今ではフツー – 組込み貧乏マルチ・コア・システムには、入っていないこともフツー ● 昔は、「スヌープ・キャッシュ」(覗き見キャッシュ)と呼ばれた CPUコア#0 メイン・ メモリ キャッシュ CPUコア#1
キャッシュ CPUコア#2 キャッシュ
7.
スヌープ(コヒーレント)・キャッシュ ● キャッシュ制御部 同士は、アドレス線がつながっているよ! ●
みんな、アドレス・バスを覗き見(スヌープ)している ● 書き換わったキャッシュから、情報をブロードキャスト – 「インバリッド情報」は、アドレスのみでいい ● キャッシュ同士が、主にアドレス情報を交換 ● アドレス・バスに少しだけ制御線を増やすなどして、インバリッド情報を通信できるようした – 「キャッシュ・プロトコル」などという CPUコア#0 メイン・ メモリ (DRAM) キャッシュ 制御 高速 RAM キャッシュ アドレス データ キャッシュ 制御 高速 RAM キャッシュ アドレス データ CPUコア#1
8.
8 スヌープ・キャッシュはXeroxから ● Xerox Dシリーズ ● DシリーズはAIマシン ● Smalltalk, Interlisp-D,
Mesa ● Alto ● 世界で初めて(?)マウスが付いた機械 ● ウインドウ・システム ● コヒーレント・キャッシュが最初に開発されたのは、 Xerox Dragon (1987年ごろ) ● http://dl.acm.org/citation.cfm?id=36185 ● DEC Firefly ● Dragonの後継 https://en.wikipedia.org/wiki/DEC_Firefly ● CRAY CS6400 ● Dragonの後継 ● https://en.wikipedia.org/wiki/Cray_CS6400 DEC Firefly (Dragonの後継) Alto Star (Dandelion)
9.
LL/SCもキャッシュの仕事 ● LL(load-link)/SC(store-conditional) – MIPSで有名な、排他制御プリミティブ ● LLとSCの、情報をブロードキャスト – アドレスのみでいい CPUコア#0 DRAM キャッシュ 制御 高速 RAM キャッシュ アドレス データ キャッシュ 制御 高速 RAM キャッシュ アドレス データ CPUコア#1 ● LL:
メモリ・アドレスにリンクを張る ● LLしたアドレス情報をブロードキャスト ● 自キャッシュ内 当該エントリに LL したフラグを立てる ● SC: ストアを実行、失敗することもある ● SCしたら、SCアドレス情報をブロードキャスト ● 受け取った人は、自キャッシュ内のアドレスをチェックし て、LL していたら、失敗フラグを立てる ● 失敗: 自分がLLをしたアドレスに、 誰かがLLした or 誰かがすでにストアした → 権利取得失敗 ● 先にLLした方が、勝つ方式もあり得る ● 成功: 自分が書き込めた → 権利取得できた ● MIPSでOSポーティングしてる人:「親分、LL/SCが動作しないんですけど…」 ↑ キャッシュがイネーブルになっていない or キャッシュが効かない領域を指定 ● TEST&SET のようなプリミティブは、資源(主にバスなど)を専有する時間が長い – システムのメイン・バスを長時間 専有されると、システム全体の性能が ガタ落ちになる
10.
参考 ● Bus snooping
(バス・スヌーピング) https://en.wikipedia.org/wiki/Bus_snooping ● Cache coherence(キャッシュ一貫性) https://en.wikipedia.org/wiki/Cache_coherence ● Directory-based cache coherence(ディレクトリ・ベースのキャッシュ一貫性) https://en.wikipedia.org/wiki/Directory-based_cache_coherence ● LL/SC https://en.wikipedia.org/wiki/Load-link/store-conditional ● Xerox Dragon (Cray CS6400 へリダイレクトされる) https://en.wikipedia.org/wiki/Cray_CS6400 ● Dragon Protocol https://en.wikipedia.org/wiki/Dragon_protocol ● Firefly https://en.wikipedia.org/wiki/Firefly_(cache_coherence_protocol)
Download now