Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メモリと遊んでみた Pert2
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
akira345
June 11, 2016
Technology
90
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
メモリと遊んでみた Pert2
LT駆動開発 26 - Extended 報告会 後朝祭
にて、SRAMをArduinoで制御してみたので報告しました。
akira345
June 11, 2016
More Decks by akira345
See All by akira345
回路設計のバイブコーディング
akira345
0
56
ビジネス要件から逆算するマイクロサービスアーキテクチャ選定の「思考プロセス」
akira345
0
82
インシデント対応
akira345
0
520
えれくら!〜電気電子工作系制作・交流会〜#29
akira345
0
53
脱・同期処理!マイクロサービスにおける負荷分散の勘所
akira345
0
160
AWSデプロイツール紹介
akira345
0
89
40歳でやったこと
akira345
0
69
回路を読むために必要なこと
akira345
0
56
おれのAWSがこんなに辛い訳がない!!
akira345
0
59
Other Decks in Technology
See All in Technology
キャリアの中で本を作る / Making a Book During Your Career
ak1210
0
140
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
310
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
3.1k
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
0
110
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
170
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
1
110
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
2
760
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
2.9k
Empower GenAI with Agile - あなたのアジャイルが生成AIのバフになる仕組み
hageyahhoo
1
180
はじめてのWDM
miyukichi_ospf
1
140
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2.3k
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
330
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
190
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
The Curse of the Amulet
leimatthew05
2
13k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
Side Projects
sachag
455
43k
The SEO Collaboration Effect
kristinabergwall1
1
500
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Transcript
メモリと遊んでみた LT駆動開発 26 - EXTENDED 報告会 後朝祭 AKIRA345
概要 • 去年の8月、OSC島根に遠征に行ったついでに、島根にあるパーツ屋さん でSRAMを入手。 • 近所の大学の為に電子部品を店頭にむき出しで展示していました。 • 展示されている部品に直感的にSRAMだと踏んで、交渉の末Getしました。 • 以前実験したDRAMより扱いやすいです。
メモリの種類 今回はこれ。
SRAM? • コンピュータなどに使用される半導体メモリの1種である。 ダイナミックRAM (DRAM) とは異なり、定期的なリフレッシュ(記憶保持動 作)が不要であるため「スタティック」と呼ばれる。
特徴 • DRAMのリフレッシュ動作などが不要で、制御が簡単 • データの格納されているアドレスを指定して読み書き • 書き換え回数の制限がない • バッテリで記憶を保持できる •
DRAMに比べ構成するトランジスタの量が多いので高価 • 高速に動作ができる • 容量が大きくなると、それだけ格納するビット数が増えるので、ピン数が増 える。
用途 • サターンやファミコンのバックアップメモリ • CPUの一時キャッシュ • BIOSの記録保持 • マイコンのメモリや液晶のVRAM •
プリンタやCDドライブのキャッシュメモリ • ゲーム機のRAMとして
まずは使い方を調査 • かなり古いSRAMだが、ネットでググればデータシートが出てくる。
データ出力ON! アドレス指定 8bitでデータ出力 書き込みは禁止にしておく。 チップセレクトON 制御が単純!
ここでARDUINOの登場 • とりあえず、アドレスを指定して、チップをセレクト、書き込み禁止にして 出力有効にするとデータが出る。というのは分かったので、さくっと実装。 • 例によってArduinoの動作が遅い為に動作しないという罠 • アドレス指定に十進数を用いて、SRAMのアドレス(ビット指定)にするのに 真面目に10進->2進変換ロジックを組むも遅いので動作せず(汗 •
いくつか高速化のロジックを参考にするもビット演算分かんねー • 実はArduinoのポートに10進数投げつけても、問題なかった。
少し説明 0 1 2 3 4 5 6 7 PortZ
• PortZ(仮称)という変数(正確にはレジスタ)が、マイコンの物 理的なPINに対応。 • 例では PortZ = “B0110101” のように2進数を代入するように書かれている。 • この変数に値を渡すときは2進数じゃないとダメ? • 実際はPortZ = 10 と渡しても、内部ではB00001010になるので、直接渡して問 題ないのでした。 10年以上C言語なんて触ってなかったから 忘れてたよ!!
なんだかんだと3日ばかし費やす・・・ • SRAMに読み書きすることに成功!! https://github.com/akira345/arduino_sram_test/
分かったこと • 予想通り、制御はDRAMに比べ圧倒的に楽。 • DRAMと違いデータが8bitパラレルで出てくれるのも楽。 • ちゃんとバッテリで保持できた。 • 数十年はむき出しで放置されていたと思われるけど、意外に壊れないもん だ。
• 古いSRAMなので、5Vだし動作も遅く、現代ではあまり使われないけど、 Arduinoなどで遊ぶには、80年代の古いものが扱いやすい。 • 最近のは3Vだったり高速だったり制御が複雑だったり・・ • DRAMに比べアドレスバス、データバスとPIN数が多いので配線が酷い
まとめ • 興味関心を持ったことを調べるのは楽しい。 • 頭で理解した内容が合っているのか?の検証は割と苦労する。 • 苦労した分動くとやっぱり楽しい!! • 圧倒的に基礎知識が不足している。今回ロジックではなく一番苦労したの はC言語の扱い。
• メモリ単品で扱うことは少ないのか、当たり前すぎるのか、具体的にどうや ればいいのか?という突っ込んだ説明は例によって見当たらず・・・
時間が有ればデモ