Submit Search
Upload
大昔のMMU
•
3 likes
•
2,105 views
たけおか しょうぞう
Follow
Ancestral MMU of micro computers
Read less
Read more
Technology
Report
Share
Report
Share
1 of 23
Download now
Download to read offline
Recommended
OSvの概要と実装
OSvの概要と実装
Takuya ASADA
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
Rakuten Group, Inc.
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
Takashi Kajinami
Ceph アーキテクチャ概説
Ceph アーキテクチャ概説
Emma Haruka Iwao
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
Toru Makabe
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報
Emma Haruka Iwao
Recommended
OSvの概要と実装
OSvの概要と実装
Takuya ASADA
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
実用段階に入ったOpenStack ~ もうすぐ絶滅するというPrivate Cloudの多様性について ~
Rakuten Group, Inc.
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
Takashi Kajinami
Ceph アーキテクチャ概説
Ceph アーキテクチャ概説
Emma Haruka Iwao
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
Kentaro Ebisawa
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
Toru Makabe
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報
Emma Haruka Iwao
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
VirtualTech Japan Inc.
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
Dockerを支える技術
Dockerを支える技術
Etsuji Nakai
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築
ichikaway
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
ファイルシステム比較
ファイルシステム比較
NaoyaFukuda
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
ロードバランスへの長い道
ロードバランスへの長い道
Jun Kato
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
NTT DATA Technology & Innovation
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Takeshi HASEGAWA
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
プロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システム
Toshiharu Harada, Ph.D
オラクルの運用管理ソリューションご紹介(2021/02 版)
オラクルの運用管理ソリューションご紹介(2021/02 版)
オラクルエンジニア通信
More Related Content
What's hot
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
VirtualTech Japan Inc.
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
Dockerを支える技術
Dockerを支える技術
Etsuji Nakai
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築
ichikaway
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
ファイルシステム比較
ファイルシステム比較
NaoyaFukuda
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
ロードバランスへの長い道
ロードバランスへの長い道
Jun Kato
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
NTT DATA Technology & Innovation
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Takeshi HASEGAWA
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
What's hot
(20)
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Dockerを支える技術
Dockerを支える技術
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
20分でわかるgVisor入門
20分でわかるgVisor入門
Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
ファイルシステム比較
ファイルシステム比較
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
ロードバランスへの長い道
ロードバランスへの長い道
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Similar to 大昔のMMU
プロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システム
Toshiharu Harada, Ph.D
オラクルの運用管理ソリューションご紹介(2021/02 版)
オラクルの運用管理ソリューションご紹介(2021/02 版)
オラクルエンジニア通信
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Masahito Zembutsu
Oxygen Cloud at cloudian seminar 2012
Oxygen Cloud at cloudian seminar 2012
CLOUDIAN KK
FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法
fisuda
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
DNA Data Bank of Japan center
Novawise technical presentation jp
Novawise technical presentation jp
NewGen Technology, Inc
オープンソースプロジェクト E2D3のご紹介
オープンソースプロジェクト E2D3のご紹介
Hideyuki Takeuchi
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
Takahiro Iwase
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
Insight Technology, Inc.
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Insight Technology, Inc.
ブロックチェーンを利用した非集中型学習支援システムの検証
ブロックチェーンを利用した非集中型学習支援システムの検証
Hori Masumi
ShowNet 2021 みどころ解説_ShowNet2021 seminar
ShowNet 2021 みどころ解説_ShowNet2021 seminar
Interop Tokyo ShowNet NOC Team
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
オラクルエンジニア通信
第45回スクエアfreeセミナー aegif
第45回スクエアfreeセミナー aegif
Akinori Ishii
Oracle Big Data Cloud Serviceのご紹介
Oracle Big Data Cloud Serviceのご紹介
オラクルエンジニア通信
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
Toshiharu Harada, Ph.D
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
Keisuke Nishitani
TensorFlowで音声認識
TensorFlowで音声認識
祐太 上岡
Similar to 大昔のMMU
(20)
プロセス実行履歴に基づくアクセスポリシー自動生成システム
プロセス実行履歴に基づくアクセスポリシー自動生成システム
オラクルの運用管理ソリューションご紹介(2021/02 版)
オラクルの運用管理ソリューションご紹介(2021/02 版)
コンテナ導入概要資料2018
コンテナ導入概要資料2018
Oxygen Cloud at cloudian seminar 2012
Oxygen Cloud at cloudian seminar 2012
FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
[DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
Novawise technical presentation jp
Novawise technical presentation jp
オープンソースプロジェクト E2D3のご紹介
オープンソースプロジェクト E2D3のご紹介
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
[data analytics showcase] B11: ビッグデータを高速に検索・分析する「Elasticsearch」~新プラグイン「Graph」...
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
Database as code in Devops - DBを10分間で1000個構築するDB仮想化テクノロジーとは?(Ishikawa)
ブロックチェーンを利用した非集中型学習支援システムの検証
ブロックチェーンを利用した非集中型学習支援システムの検証
ShowNet 2021 みどころ解説_ShowNet2021 seminar
ShowNet 2021 みどころ解説_ShowNet2021 seminar
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
第45回スクエアfreeセミナー aegif
第45回スクエアfreeセミナー aegif
Oracle Big Data Cloud Serviceのご紹介
Oracle Big Data Cloud Serviceのご紹介
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
TensorFlowで音声認識
TensorFlowで音声認識
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の可能性
たけおか しょうぞう
RISC-Vの可能性
RISC-Vの可能性
たけおか しょうぞう
どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?
たけおか しょうぞう
Riscv+fpga200606
Riscv+fpga200606
たけおか しょうぞう
Takep lpc1114-190614
Takep lpc1114-190614
たけおか しょうぞう
Takep lpc1114-190613
Takep lpc1114-190613
たけおか しょうぞう
初歩的な部品の知識
初歩的な部品の知識
たけおか しょうぞう
Takepino LPC1114
Takepino LPC1114
たけおか しょうぞう
Lisp_chibi_machine 190427
Lisp_chibi_machine 190427
たけおか しょうぞう
無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレ
たけおか しょうぞう
Common Lisp ユーザへのScheme紹介
Common Lisp ユーザへのScheme紹介
たけおか しょうぞう
RISC-V User level ISA
RISC-V User level ISA
たけおか しょうぞう
Lispマシン・シミュレータの紹介
Lispマシン・シミュレータの紹介
たけおか しょうぞう
昔の外付けキャッシュ & コヒーレント・キャッシュ
昔の外付けキャッシュ & コヒーレント・キャッシュ
たけおか しょうぞう
Ichigojam ossc-170819
Ichigojam ossc-170819
たけおか しょうぞう
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
More from たけおか しょうぞう
(20)
いにしえ的ななにか、カニか? 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の可能性
RISC-Vの可能性
RISC-Vの可能性
どうして昔の人は八進数でしゃべるのか?
どうして昔の人は八進数でしゃべるのか?
Riscv+fpga200606
Riscv+fpga200606
Takep lpc1114-190614
Takep lpc1114-190614
Takep lpc1114-190613
Takep lpc1114-190613
初歩的な部品の知識
初歩的な部品の知識
Takepino LPC1114
Takepino LPC1114
Lisp_chibi_machine 190427
Lisp_chibi_machine 190427
無脳スマートスピーカを 越えレレレのレ
無脳スマートスピーカを 越えレレレのレ
Common Lisp ユーザへのScheme紹介
Common Lisp ユーザへのScheme紹介
RISC-V User level ISA
RISC-V User level ISA
Lispマシン・シミュレータの紹介
Lispマシン・シミュレータの紹介
昔の外付けキャッシュ & コヒーレント・キャッシュ
昔の外付けキャッシュ & コヒーレント・キャッシュ
Ichigojam ossc-170819
Ichigojam ossc-170819
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
大昔のMMU
1.
大昔の MMU (Memory Management Unit) 2017.JUL.22 たけおか@AXE/たけおかラボ @takeoka
2.
1.「リレーショナルデータベースを内在するカーネルプログ ラム、方法及び装置」 ● かなり広範囲に適用される… ● データベースをカーネル空間内で動作させる ● 特許番号【特許第5711840号】 ● 登録日 【2015年3月13日】 ● 株式会社ネクスティエレクトロニクスと、 たけおかラボ株式会社との共同特許 ● 2.「アプリケーションに依存することなくファイルにアクセスする OSプログラム及び方法」 ● データファイルに、データへのアクセス手続きを、くっつけておく ● OS API経由で、データファイル内のアクセス手続きを呼び出す ● どんな形式のファイルでも、データの読み書きができる ● 特許番号【特許第6143038号】 ● 登録日 【2017年5月19日】 ● 株式会社ネクスティエレクトロニクスと、 たけおかラボ株式会社との共同特許 ※たけおかラボ(株)は、(株)アックスの子会社 取得済み特許:今後の基本ソフトウェアの重要な部分
3.
8bit時代 MP/M 8080
(1979年) ● MP/M (CP/Mのマルチユーザ版) – 8080 CPU ● Z80の先祖。Z80は、8080のバイナリ上位互換 ● クロック:2MHz – マルチユーザ/マルチタスク ● 最小 32KB メモリで動作 – バンク切り替えが通常の時代 ● 「バンク切り替え」一般人には、PC9801(8086,V30)で1MBを超えるときに、有名になる ● MP/Mは、メモリの下位32KB〜48KBを、切り替えて使用 – 上位に、OSが居た – MMUがあれば、使用できた ● マッピング(アドレス変換) – アクセス管理、不在ページ管理など無い ● バンク切り替え/ページ・テーブル操作部分は、抽象化、分離されていた – XIOS部分を、ハードウェアに合わせて、コーディング – 1MBぐらいの実メモリを扱える ● 8080,Z80の論理空間は64KB
4.
4 OS常駐 使えない 使えない バンク切り替え・メモリ模式図 ● 物理メモリの上位アドレスは、バンク・レジスタで与える ● (主に80系の場合)上位アドレスには、OSが常駐する ● 物理メモリの一部は、使えないことが多い –
OS常駐部と重なる部分が、無駄になるハードウェアが一般的 論理空間 バンク#0 0番地 上位アドレス バンク#1 バンク#2 OS常駐 バンク・ レジスタ
5.
5 バンク切り替え・メモリ模式図 バンク#0 0番地 上位アドレス OS常駐 バンク・ レジスタ OS常駐 使えない バンク#1 使えない バンク#2
6.
6 昔のハードウェア バンク切り替え(1) ● TLBなんか無い ● 物理アドレス上位は、バンク・レジスタで拡張 ● 64KB 論理空間の上位8〜16KBぐらいは、バンク切り替えが効かないようにする –
論理空間の最上位アドレスには、OS(CP/Mとか)が常駐 – リセット時には、ROMが出てくるようにも、しなければならない バンク・ レジスタ CPU メイン・ メモリ バンク設定 Z80系は、 I/O命令 下位アドレス 13bit 変換テーブルが一つの場合 データ・バス 物理メモリ 上位アドレス 上位アドレス 3bit 最上位8KB検出 (3bitのAND==1 Then bank=0)
7.
7 マッパ・メモリ管理模式図 ● プロセスは論理アドレス空間で動作 ● 実メモリと、プロセス空間のメモリ・アドレスは異なる ● メモリ保護がある ● 基本的に、他のプロセスのメモリは、触れない ● プロセス空間に、物理ページを貼り付けてアクセス可能にすることを、「マップする」という プロセス B 機械の実メモリマップ プロセスの仮想空間 プロセス
A プロセスの仮想空間 実メモリがマップされる ページ単位で 通常はOSが暗黙に行う 実メモリがマップされる ページ単位で 通常はOSが暗黙に行う
8.
8 昔のハードウェア mapper(1) ● TLBなんか無い(TLBミスのペナルティは無い \(^^)/) ● 全アドレスを、テーブルで持つ ● 高速SRAMにテーブルを入れる ● テーブルをセットするのは、ちょっとした工夫が要る –
セットしたいテーブルのアドレスを、上位アドレスに出し、データ線から書き込み 高速 SRAM CPU メイン・ メモリ アドレス 読み出しデータ 上位アドレス 4bit(PDP-11, Z80, 6809) 12bit(680x0) 下位アドレス 12bit (4KB/ページ) 変換テーブルが一つの場合 データ・バス 書き込みデータ 上位アドレス 本数、多め。 8bitで、1MB 物理メモリ
9.
9 TLBインコヒーレンシ、なにそれ?! ● TLBなんか無い ● 昔は良かった – 2CPUぐらいなら、あり得た – CPU内キャッシュが無い時代だった。メイン・メモリも超遅かった 高速 SRAM CPU メイン・ メモリ DRAM アドレス 読み出しデータ 上位アドレス 4bit(PDP-11, Z80,
6809) 12bit(680x0) 変換テーブルが一つの場合 上位アドレス 本数、多め。 8bitで、1MB 物理メモリ CPU CPU
10.
10 昔のハードウェア mapper (2) ● 全アドレスを、テーブルで持つ ● 高速SRAMにテーブルを入れる ● コンテキスト(プロセス)を、複数持てる ● コンテキストが複数
無いと、プロセス・スイッチの度に、全テーブルの入れ替えが 発生 高速 SRAM CPU メイン・ メモリ アドレス 読み出しデータ 上位アドレス 4bit(PDP-11, Z80, 6809) 12bit(680x0) 下位アドレス 12bit (4KB/ページ) 複数コンテキストの、変換テーブルがある場合 データ・バス 書き込みデータ 上位アドレス 本数、多め。 8bitで、1MB 物理メモリ コンテキスト・ レジスタ
11.
6829MMU 8bit時代 (1980年ごろ) ●
6829(67476)は、6809専用MMU – アドレス変換のマッパ。64KB論理空間を、2MBの物理メモリにマップ ● 16bit アドレス→21bit アドレス – 2KB/ページ(下位11bit) – コンテキスト(“TASK”)は、4つ ● 6829を増設すると、増やせる – システム/ユーザの管理(プロテクション)はある – DMAは、Task#1 を使用 ● システム・モード/ユーザ・モードがある – 6809CPUには、そういう概念は無い。 MMUがサポート – システム・モードでは、MMU操作ができる ● ユーザ・モードは、MMUに触れない – 見えないページは、絶対に見れない ● CPUが外部割り込みを受けるか、ソフトウェア割り込み(SWI, (INT))を実行すると 6829は、システム・モードになる – CPUが出力しているステータス信号を、見ていると,割り込み応答 実行が判る ● システム・モードから、ユーザ・モードへの移行 – CPUが、6829のヒューズ・レジスタに値を書き込む ● 何クロック後に、ユーザ・モードになるか ● プロセス再開の定石ルーチンの実行クロック数は、決まっている – キャッシュとか無いので、いつも同じクロック数 – その後、ぴったりのクロック後に、ユーザ・プロセスの再開を行う @houmei さんのつぶやきより
12.
6829MMU 8bit時代 (1980年ごろ) ● システム・モードから、ユーザ・モードへの移行 –
CPUが、6829のヒューズ・レジスタに値を書き込む ● 何クロック後に、ユーザ・モードになるか ● プロセス再開の定石ルーチンの実行クロック数は、決まっている – キャッシュとか無いので、いつも同じクロック数 – その後、ぴったりのクロック後に、ユーザ・プロセスの再開を行う 1サイクル FUSEレジスタに セット ユーザ空間の スタックから、 情報をレジスタに 復帰 Return from Interrupt ユーザ空間に切り替わる Motorola MC6829 advanced informationより http://matthieu.benoit.free.fr/cross/data_sheets/mc6829.pdf
13.
8bit時代 OS/9 6809
(1982年ごろ) ● OS/9 6809 Level 1 – MMU無し版, 64KB で動作 – マルチタスクOS ● プログラム・ローダを手抜きしていたので、PIC(位置独立コード)しか許されな かった – すべての変数は、indexレジスタ相対 – 6809は、ポインタ・レジスタが4本もあった(8bit機としては、すごく多い) – プログラム中の定数は、PC(プログラム・カウンタ)相対で参照 ● 実行バイナリを、外部記憶から読むことを嫌がり メモリをスキャンして、 ヘッダを見つけたら、終わりまでのCRCを計算し、 CRCが合致したら、そのバイナリが正常であるとして、実行を開始した (^^; – ROMも、スキャン対象。ROM組込みのコマンド・バイナリも発見された ● OS/9 68000 は、フツーになってしまい、特に面白くはない(残念)
14.
8bit時代 OS/9 6809
(1980年ごろ) ● OS/9 6809 Level2 – MMUあり版 – 2MBまでの物理メモリをサポート – Gimix というハードウェアが、OS/9 6809 Level2のリファレンス・ ハードウェア ● 割と手抜き ● 当時は、高速SRAMで、アドレス変換機構を作っても、十分、高速に動作した – 日立のBASIC Master S-1が、また、 独自のマッパ ● このマッパは、まっとう ● モトローラ純正MMU 6829 – Gimixとは、まったく異なる
15.
PDP/11のMMU(1) ● PDP/11 のMMUは、マッパ –
アドレス変換 – 不在ページ/書き込み禁止の検出はできる ● だが、フォールトからの回復&再開はできない – 例えば、write命令は、フォールトを起こしても、終了してしまう ● 64KBの論理空間を、8つのセグメントに分割 ● 各セグメントの論理アドレスは、物理メモリ・アドレスにマップ ● 各セグメント長は、0〜8KBytesまで可変 (64Bytes単位で) ● セグメントは、ベース・アドレスから、Up/Down方向に伸ばせる – Downは、スタックの伸長に ● PDP-11/40, PDP-11/45 などは、248 KB物理メモリ(12 bit長)に変換 ● PDP-11/70, PDP-11/44, PDP-11/23などは、4MB物理メモリ(16 bit 長)に変換 – 64Byte(6bit長)が単位 http://gunkies.org/wiki/PDP-11_Memory_Management
16.
PDP/11のMMU(2) ● UNIX Ver.7は、マッパを使用 –
デマンド・ページングとかやらない ● RSX/11M (PDP/11 のネイティブOS) – オーバレイによるプログラム・コードの入れ替え ● プログラムを、複数のセグメントで構成 ● リンク時に、セグメントを指定 ● サブルーチン・コール時に、適切なセグメントを入れ替え – 不適切なセグメントの依存関係は、リンクがエラーになる
17.
8bit時代 (1983年) ● CP/M
3 – シングル・ユーザ、シングル・タスク – メモリマッパなどがあれば使えた – HD64180 (日立のニセZ80、後のZ180) のメモリマッパが、 CP/M 3用
18.
18 64180・メモリ管理模式図 ● 論理空間が、3領域に分割 & アドレス変換 –
低位メモリ – コモン・エリア(最上位=OS常駐部) – バンク・エリア(中央部) ● CP/M Plusに最適 バンク・ エリア コモン・エリア 論理アドレス 物理メモリ 低位メモリ OS常駐部 バンク#1 バンクの 低位リミット レジスタ コモン・エリアの 低位リミット レジスタ コモン・ベース・ レジスタ バンク・ベース・ レジスタ 低位メモリ バンク#2
19.
19 64180・メモリ管理機構 ● コンパレータ(比較器),adder(加算器)がある。 ● 日立が好きな感じ(私の主観的 感想) Hitachi HD6180
Family より http://www.farnell.com/datasheets/99468.pdf
20.
16bit時代 Z8001用 MMU
(1982年ごろ) ● Z8010:Z8001用MMU ● マッパであった – セグメント単位のアドレス変換 – セグメントは、物理的に連続した領域 – セグメントのサイズ・チェックは行う ● アクセス管理はあった ● ユーザ/システム ● Z8001は、フォールトからの回復はできなかった – Z8003で可能に MMU CPU メイン・ メモリ アドレス/コマンド 実アドレス 最上位アドレス (セグメント番号) 7bit アドレス・データ・バス下位8bit アドレス・データ・バス上位8bit 上位アド レス 16bit
21.
SUN2(1983年),SUN3(1985年) ● 68010, 68020
に、外付け – 高速SRAMで、変換テーブル – コンテキストは、4つ (SUN3/160?) – SUN2もコンテキストは複数 ● MMUへのコマンドはアドレスに載せた – マッパ中のテーブルへのアドレス設定コマンドなど – 変なアドレスからの読み込みが、テーブルへのセット・コマンドだったり 高速 SRAM CPU メイン・ メモリ アドレス 読み出しデータ 上位アドレス 12bit 下位アドレス 12bit (4KB/ページ) 複数コンテキストの、変換テーブルがある場合 データ・バス 書き込みデータ 上位アドレス 本数、多め。 だが、実メモリ 16MBのモデ ルは希少 コンテキスト・ レジスタ ?繋がっていないと思われ… 2bit程度〜
22.
SONY News (1987年) ●
68020 に、外付け – 高速SRAMで、変換テーブル – Newsの最初のデスクトップ・モデルの コンテキストは、1つ (だったはず OS用コンテキストがあったかも) – プロセス・スイッチのたびに、MMUテーブル入れ替えが発生 ● SUN3の同じクロック周波数のモデルと比べて、もっさり動作した
23.
68030(1987年) ● オンチップMMU内蔵 ● TLB方式 –
CPUコア内のマイクロコードによる、ハード・ウォーク – 初代Sparc(1987), PowerPC601(1992)は、ハード・ウォーク ● PPC603は、ソフト・ウォーク 〜現在に至る… ● X86, ARMは、伝統のハード・ウォーク ● 他のアーキテクチャは、ソフトウェアによるページ・テーブル・ ウォークが多い
Download now