(Translated by https://www.hiragana.jp/)
MC68000 - Wikipedia コンテンツにスキップ

MC68000

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
68000から転送てんそう
MC68000
MC68000P10
生産せいさん時期じき 1980ねんから1996ねんまで
生産せいさんしゃ モトローラ
CPU周波数しゅうはすう 4 MHz から 20 MHz
命令めいれいセット M68000(32ビット
パッケージ 64ピンDIP
テンプレートを表示ひょうじ

MC68000(エムシーろくまんはっせん)、68000はべいモトローラフリースケール・セミコンダクタ経由けいゆして、げんNXPセミコンダクターズ)が開発かいはつしたMPU(MPUはマイクロプロセッサすのにモトローラが使つかったかたりでマイクロプロセッシングユニットのりゃく)である。りゃくして68K(ろくはちケー)などとも。後継こうけいMPUもふくめたどういちアーキテクチャのシリーズを総称そうしょうするときは、680x0呼称こしょうされる。モトローラ自体じたい周辺しゅうへんLSIふくめてM68000ファミリと呼称こしょうした。MC型番かたばん量産りょうさんロットで、量産りょうさん先行せんこうひんはXC型番かたばんとなる。M68000ファミリは、Apple MacintoshApollo/DomainNeXTcubeHP 9000Sun-3ソニーNEWSNEC EWS4800シャープX68000、DCL Uステーション[1][2]など様々さまざまなパソコンやワークステーションに採用さいようされた。オペレーティング・システムとしては、Mac OSDomain/OSNeXTSTEPHP-UXSunOSCP/M-68KOS-9/68000NetBSDなどがある。

歴史れきし[編集へんしゅう]

68000 は1976ねん開始かいしされた MACSS (Motorola Advanced Computer System on Silicon) プロジェクトからてきたものである。従来じゅうらい製品せいひんとの互換ごかんせい考慮こうりょするような妥協だきょうしたアーキテクチャにはしないということが開発かいはつ初期しょき決定けっていされていた。これは、利用りようしゃがそのしんシステムをいちからあらたにまな必要ひつようがあることを意味いみしており、一種いっしゅけだった。最終さいしゅうてきに、6800けい周辺しゅうへんデバイスとのインタフェース互換ごかんせいだけはつこととなったが、6800のコードは実行じっこうできないものとなった。しかし、その拡張かくちょうにおける互換ごかんせいには最大限さいだいげん注意ちゅういはらわれ、68000にえさえすれば今後こんご保証ほしょうされるようにした。たとえば、CPUレジスタ32ビットはばとされたが、外部がいぶバスはよりちいさく設計せっけいされ、アドレスバスは24ビットはばであり、データバスは16ビットはばとなっている。ちなみに、アドレスバスとデータバスはマルチプレクスされておらず分離ぶんりされている[3]。MACSSチームはPDP-11VAXシステムのようなミニコンピュータプロセッサ影響えいきょうけた。命令めいれいセットハードウェア制限せいげんよりもソフトウェア開発かいはつ観点かんてん設計せっけいされた。そこにはミニコンピュータでの開発かいはつになれた技術ぎじゅつしゃがプログラミングしやすいものにしようとのかんがえがあった。

"68000" という名称めいしょうは6800との連続れんぞくせい想起そうきさせるよう選択せんたくされたが、これらのあいだ設計せっけいじょう類似るいじてんはあまりない。集積しゅうせきされたトランジスタかずが68,000だったからともわれているが、実際じっさいには70,000にちかかった。

当時とうじ8ビットから16ビットへの移行いこう熾烈しれつ競争きょうそうひろげられていた。ナショナル セミコンダクター1973ねんから1975ねんにかけてIMP-16とPACEというプロセッサでいちさきんじたが、使用しようしたプロセス技術ぎじゅつ原因げんいんで、性能せいのう問題もんだいかかえていた。つぎテキサス・インスツルメンツTMS9900をリリースしたが、ひろ使つかわれるにはいたらなかった。そして1977ねんインテル8086をリリースした。しかし、モトローラのマーケティング部門ぶもんは68000をより完全かんぜんな16ビット設計せっけいにすることが重要じゅうようかんがえた。このため、68000はハードウェアとしては複雑ふくざつなものとなった。複雑ふくざつさの指標しひょうとしてトランジスタすうると、8086は29000であり、68000は前述ぜんじゅつのように70000ちかい。

68000の単純たんじゅん命令めいれいは4クロックサイクルで実行じっこうできたが、複雑ふくざつ命令めいれい実行じっこうにはもっと時間じかんがかかった。8MHzの68000で、平均へいきん性能せいのうやく1MIPSじゃくだった。

典型てんけいてきプログラム平均へいきんをとると、68000のコードはインテルのプロセッサよりもいち命令めいれいあたりにできることがおおく、コードのサイズがちいさくてんだ。また、8086が、8080との互換ごかんせい重視じゅうしした結果けっか汎用はんようレジスタ不足ふそく実行じっこう速度そくど低下ていかくるしんだことたいして、十分じゅうぶんかずのレジスタと、当時とうじとしては先進せんしんてき内部ないぶ設計せっけいのため、実行じっこう速度そくどめんでは8086にたいして優位ゆういっていた。さらに68000は24ビットリニアアドレッシングによって最大さいだい16MB連続れんぞくするメモリ空間くうかんをサポートし、この空間くうかんない任意にんいのアドレスへのダイレクトアクセスを可能かのうとしている。これは開発かいはつ当時とうじとしては非常ひじょう広大こうだいなメモリ空間くうかんだった。これにたいし8086は従来じゅうらいの8080とのあいだでソフトウェアのアセンブリ言語げんごレベル(ちゅう: バイナリレベルではない)での互換ごかんせいのため、従来じゅうらいおなじ16ビットのアドレッシングを「オフセット」とし、「セグメント」としょうする(詳細しょうさいセグメント方式ほうしき#x86参照さんしょう)16ビットレジスタのを4ビットシフトしてベースアドレスとする、20ビット空間くうかんのノンリニアアドレッシングだった。そのため、64Kバイトをえるデータやコードをあつかうにはセグメントレジスタの適宜てきぎ変更へんこうする必要ひつようがあり、面倒めんどうであった。32ビットアドレッシングは、x86では1986ねん80386はじめて可能かのうになった。

このような事情じじょうから68000は8086と比較ひかくして学習がくしゅう容易ようい使つかいやすく、開発かいはつしゃこのまれた。

オリジナルのMC68000は、3.5μみゅーmルールのHMOSプロセスで製造せいぞうされた。技術ぎじゅつサンプルは1979ねんすえ出荷しゅっかされた。量産りょうさんチップは1980ねん出荷しゅっかされ、当初とうしょのクロック周波数しゅうはすうは4, 6, 8MHzだった。10MHzばん1981ねん、12.5MHzばん1982ねん登場とうじょうしている。HMOSでは最高さいこうそくの16.67MHzばん (12F) は1980年代ねんだい終盤しゅうばんまで生産せいさんされなかった。

メモリりょうすくないシステムけのてい価格かかくばんとして1982ねんMC68008登場とうじょうした。これは MC68000 の8ビットデータバスばんであり、アドレスバスも当初とうしょは24ビットよりも縮小しゅくしょうされ、48ピンDIPばんは20ビット。の52ピンPLCCパッケージばんでは22ビットである。MC68012 はのちに31ビットアドレスバスで登場とうじょうした。

68HC000はモトローラと日立製作所ひたちせいさくしょ1985ねんにリリースしたオリジナルとピン配置はいち互換ごかんのHCMOSばんである。モトローラのものは MC68HC000、日立ひたちのものはHD68HC000とばれた。68HC000では8MHzから20MHzまでのクロック周波数しゅうはすう可能かのうとなった。またCMOSされただけでオリジナルと機能きのうまったわらず、かつ電力でんりょく消費しょうひ低減ていげんされている。オリジナルばんは25環境かんきょうやく1.35ワット消費しょうひした(クロック周波数しゅうはすう依存いぞんしない)。一方いっぽう、MC68HC000は8MHzで0.13ワット、20MHzで0.38ワットしか消費しょうひしない。なお、CMOSとはことなり、HMOS回路かいろ電力でんりょく消費しょうひはスイッチングなにもしていないときも一定いっていである。したがって、クロック周波数しゅうはすうちがっても電力でんりょく消費しょうひはほとんど変化へんかしない。ただし、周囲しゅうい気温きおんには影響えいきょうされる。

モトローラは1990ねん、MC68HC001をリリースした[4]。このチップは68HC000と仕様しようがほぼ共通きょうつうであるが、データバスに16ビットはばと8ビットはばの2つのモードが用意よういされており、リセットのピンへの入力にゅうりょくでモード選択せんたくおこなえるようになっていた。したがって、このチップは68008の代替だいたいとして 8ビットメモリを使つかった安価あんかなシステムで利用りようできた。

HD68000P8

HMOSばんの68000はいくつかのセカンドソース企業きぎょう製造せいぞうされた。日立ひたち (HD68000)、Mostek (MK68000)、ロックウェル (R68000)、シグネティックス (SCN68000)、Thomson/SGS-Thomson (EF68000, TS68000)、東芝とうしば (1988ねん発売はつばい。TMP68000をふくめたTLCS-68000ファミリー) などである。東芝とうしばはCMOSばんの68HC000のセカンドソースでもあった (TMP68HC000)。また、のちにシグネティックスがアーキテクチャ互換ごかんのSCC68070を製造せいぞうした。 SCC68070は現在げんざいフィリップス版権はんけんつ。

68000は数々かずかずマイクロコントローラようプロセッサのベースにもなった。1989ねん、モトローラはMC68302通信つうしんプロセッサをリリースした。これが68000CPUコアを使用しようした最初さいしょのマイクロコントローラだった。このコアはCMOSばんの68HC000をベースとしているが、8ビットの6800周辺しゅうへんチップとのインタフェース機能きのう省略しょうりゃくされている。1991ねん、モトローラはここからプロセッサ部分ぶぶんだけをしたMC68EC000をリリースした[5]

モトローラは68EC000コアを使つかったいくつかのマイクロコントローラを開発かいはつした。MC68306とMC68307は汎用はんようマイクロコントローラ、MC68322 "Bandit" はプリンターコントローラ、MC68356はモデムもちいMC68328 DragonBall携帯けいたい機器ききけだった。のマイクロコントローラとして683XXファミリーは、より強力きょうりょくなCPU32プロセッサコアを使つかっていた。

68EC000ベースの683XXマイクロコントローラの一部いちぶにはスタティックばんの68EC000コアが使つかわれた。この場合ばあいクロックをおそくしたり停止ていしさせたりして電力でんりょく消費しょうひおさえることができる。1996ねん、モトローラはこのスタティックコアをプロセッサとして独立どくりつさせ、MC68SEC000としてリリースした[6]

モトローラは1996ねん、HMOSばんMC68000とMC68008の製造せいぞう終了しゅうりょうした[7]生産せいさん終了しゅうりょう予告よこく1994ねんすえごろなされた。モトローラの通常つうじょう手順てじゅんからいけば、1995ねんまで注文ちゅうもんけ、最後さいご出荷しゅっかは1996ねんになったということになる。そのスピンオフしたフリースケール・セミコンダクタ現在げんざいもMC68HC000、MC68HC001、MC68EC000、MC68SEC000を製造せいぞう販売はんばいつづけている。また、MC68302やMC68306マイクロコントローラやそののDragonBallファミリーも生産せいさんつづけている。68000のアーキテクチャをいだ680x0、CPU32ColdFire生産せいさんされている。

後継こうけいMC68020からは外部がいぶデータバス、アドレスバスどもに32ビットの、名実めいじつどもに32ビットのCPUとなり、コプロセッサがサポートされた。ソフトウェアまとには、アドレッシングモードが拡張かくちょうされたほか、ユーザーモードではほぼMC68000の上位じょうい互換ごかんだった。一部いちぶ互換ごかんせいのない部分ぶぶんは、存在そんざいしない命令めいれい実行じっこうしようとしたときにみでトラップ処理しょりすることで、ソフトてき吸収きゅうしゅうすることができた。このMC68020や、後継こうけいのMC68030はすうおおくのワークステーション採用さいようされた。

なおRISCであるPowerPCシリーズとの互換ごかんせいはなく、どうプロセッサを搭載とうさいしたMacintoshではMC68LC040をエミュレーションしている。

RISC技術ぎじゅつ採用さいようしたColdFireシリーズは、68000から使用しよう頻度ひんどひく命令めいれいおおくを削除さくじょした下位かい互換ごかんようプロセッサである。

利用りようれい[編集へんしゅう]

Block-IIがたスペースシャトルメインエンジンのコントローラーに使用しようされている68000。

68000は1980年代ねんだい前半ぜんはんには比較的ひかくてき高価こうかなシステムに使つかわれた。

UNIXシステムではプロセッサのメモリアドレッシングの上限じょうげんやMMUの制限せいげんなどにより、68000そのものはなが使つかわれることはなかったが、その後継こうけい品種ひんしゅは1980年代ねんだいとおして UNIX市場いちばひろ使つかわれた。そのアーキテクチャがDECPDP-11VAXによくていて、C言語げんごのコードを動作どうささせるのに最適さいてきなコンピュータだったからである。

1983ねんから68000はパーソナルコンピュータ (PC)、とくホビーパソコン使つかわれるようになった。まず、Apple ComputerLisaMacintosh使つかわれ、そのコモドール Amigaアタリ Atari STシャープ X68000、それにソニー PalmTopなどで1990年代ねんだい中盤ちゅうばんまで使つかわれた。一方いっぽう68008が使つかわれたホビーパソコンとしてはシンクレアQLぐらいしかない。(ちなみに日立製作所ひたちせいさくしょせいMB-S1には、オプションとして68008ボードが存在そんざいした)

68000はコントローラようとしてもっと成功せいこうした。1981ねん、ImagenしゃのImprint-10などのレーザープリンターは68000をCPUとする外部がいぶコントローラで制御せいぎょされていた。最初さいしょのHP LaserJetは8MHzの68000を使つかったコントローラを内蔵ないぞうしていた(1984ねん)。同様どうように68000を使つかったコントローラがおおくのレーザープリンターで使つかわれている。たとえばAppleLaserWriterなどである。68000は1980年代ねんだいとおしてレーザープリンターで使用しようされ、1990年代ねんだいはいってもローエンドのプリンターに使つかわれつづけた。

また、68000は工業こうぎょう制御せいぎょシステムの分野ぶんやでも成功せいこうおさめた。このたねのシステムでは、68000やその派生はせいCPUを中心ちゅうしんとしたプログラマブルロジックコントローラ (PLC) を利用りようする。このようなシステムは一般いっぱん市場いちば比較ひかくして製品せいひん寿命じゅみょうながく、20ねんまえのものでもそのまま使つかつづけることがおおい。そのため、21世紀せいきになっても68000ベースのコントローラが数多かずおお使つかわれつづけている。

コンピュータゲームメーカーはアーケードゲーム家庭かていようゲームなどに68000を使つかった。アーケードゲームでは1983ねんにアタリが「Food Fight」で68000を使つかったのが最初さいしょである。日本にっぽんでのはつ使用しよう同年どうねんのナムコ(バンダイナムコアミューズメント)の「 リブルラブル」である。1980年代ねんだい後半こうはんから1990年代ねんだいはじめごろまでアーケードゲーム基板きばんではメインCPUとして68000がよく使つかわれた。たとえば、セガのセガ・システム16カプコンCPS-1CPS-2SNKネオジオなどである。アーケードゲームでは68000を2使つかったり、場合ばあいによっては3使つか場合ばあいもあった[8]。1990年代ねんだい、アーケードゲームのメインCPUはもっと高性能こうせいのうなプロセッサが使つかわれるようになっていったが、68000はサウンドコントローラなどとして使つかわれつづけた。

家庭かていようゲームで68000がメインCPUとして使つかわれたれいとしては、メガドライブメガCD[8]家庭かていようネオジオがある。そののゲームでも、セガサターンは68EC000をサウンドコントローラとして使用しようし、Atari Jaguarでもグラフィックスやサウンドチップの制御せいぎょ使つかわれた。

また、クリエイティブテクノロジーのWave BLASTERやENSONIQしゃのENSONIQ SoundScape DBをはじめとするPCけサウンドカードようMIDIシンセサイザー・ドーターボードへ、制御せいぎょようとして68000が搭載とうさいされるケースが1990年代ねんだい中盤ちゅうばんには多数たすうられた。

技術ぎじゅつ進歩しんぽによって68000がスタンドアローンのコンピュータ市場いちばでは使つかわれなくなると、一般いっぱん消費しょうひしゃけの各種かくしゅ機器きき用途ようと使つかわれるようになった。テキサス・インスツルメンツは68000をハイエンドのグラフ表示ひょうじ電卓でんたくTI-89TI-92などで使つかっている。これらの初期しょきのバージョンではスタティックばん68EC000コアを使つかった特殊とくしゅなマイクロコントローラだった。のバージョンでは標準ひょうじゅんのMC68SEC000プロセッサが使つかわれている。

CPU32ColdFireプロセッサは自動車じどうしゃエンジン制御せいぎょすうひゃくまん単位たんい使つかわれた。 また、てい価格かかく信頼しんらいせいたかいことから医療いりょう機器きき分野ぶんやでもおお使用しようされた。 てい電圧でんあつばんDragonBallは、Palm PilotシリーズやHandspring VisorなどのPDA使つかわれた。のちにこの市場いちばARMプロセッサコアにうばわれた。高速こうそくシリアルポート内蔵ないぞうした派生はせいひん(68302と68360)は、シスコシステムズ3Com、Ascend、Marconiなどが通信つうしん機器きき使用しようした。

アーキテクチャ[編集へんしゅう]

M68000ファミリ
開発かいはつしゃ モトローラ
ビットすう 32ビット
デザイン CISC
エンコード 可変かへん多倍たばいちょう
エンディアン Big
拡張かくちょう F系列けいれつ命令めいれい
オープン プロプライエタリ
レジスタ
汎用はんよう D0-D7=32、D0-D8[よう出典しゅってん]=32
汎用はんよう(データ8ほん
アドレス8ほん)、
ステータスレジスタ

概要がいよう[編集へんしゅう]

32ビットのデータレジスタを8ほん、また、32ビットのアドレスレジスタを8ほんつ、CISCアーキテクチャのマイクロプロセッサである。8ビットのMC6800シリーズとはアセンブラソースレベルでもバイナリレベルでも互換ごかんせいたない。

MC68000は、DECVAX参考さんこうにしたとわれる、直交ちょっこうせいたか命令めいれい体系たいけいをもつ。

外部がいぶバスはばはアドレスバス24ビット、データバス16ビットで、発表はっぴょう当初とうしょクロック周波数しゅうはすうは4 - 16MHz。やく68,000トランジスタからなるN-MOS集積しゅうせき回路かいろであり、当初とうしょ巨大きょだいな64ピンDIPパッケージのちPGAパッケージでも供給きょうきゅうされた。

データーバスはダイナミックバスサイジングを採用さいようしており8ビットまたは16ビットのバスにアクセス可能かのうである。これはM68000ファミリ周辺しゅうへんチップだけではなく、M6800ファミリなど廉価れんかな8ビット周辺しゅうへんチップとの接続せつぞく考慮こうりょしたものである。

MC68000自体じたいは16ビットCPUとしてあつかわれたが、内部ないぶアーキテクチャは32ビットプロセッサとして設計せっけいされており、レジスタとアドレスのデータちょうひとしく32ビットとなっている。

32ビットのアドレス空間くうかんは4GB相当そうとうするが、当時とうじ技術ぎじゅつでは、4GBぶんのアドレス空間くうかんをフルに使つか可能かのうせいいとされ、外部がいぶのアドレスバスとのデータ入出力にゅうしゅつりょくでは上位じょうい8ビットをマスクして下位かい24ビットを使用しようし、最大さいだい16MBぶんのメモリ領域りょういき管理かんりする実装じっそうとされていた。

このように最初さいしょ理想りそうとする32ビットアーキテクチャをめておき、その時々ときどき利用りようできる技術ぎじゅつ実現じつげん可能かのう機能きのうからじゅん実装じっそうするという方式ほうしきをとっていたため、無理むりなく上位じょうい互換ごかんせい確保かくほできた。

また、ライバルであるx86けいプロセッサではメモリ空間くうかんとはべつにI/O空間くうかんもうけられ、専用せんようのI/O命令めいれい用意よういされていたが、MC68000シリーズではメモリ空間くうかんないにI/Oよう領域りょういきてるメモリマップドI/O方式ほうしき採用さいようしているのも特徴とくちょうひとつである。

ファンクションコード[編集へんしゅう]

ファンクションコードと参照さんしょう分類ぶんるい[9]
FC2 FC1 FC0 参照さんしょう分類ぶんるい
0 0 0 定義ていぎ
0 0 1 ユーザ・データ
0 1 0 ユーザ・プログラム
0 1 1 定義ていぎ
1 0 0 定義ていぎ
1 0 1 スーパーバイザ・データ
1 1 0 スーパーバイザ・プログラム
1 1 1 応答おうとう

MC68000ユーザズマニュアル[9]によると、MC68000シリーズのアドレス空間くうかんはFC0 - FC2ピンのデコードによって、スーパーバイザ・プログラムアドレス空間くうかん、ユーザ・プログラムアドレス空間くうかん、スーパーバイザ・データアドレス空間くうかん、ユーザ・データアドレス空間くうかん分離ぶんりされた4つの32bitアドレス空間くうかんがある。しかし実際じっさいのところ、それぞれのアドレス空間くうかん通信つうしんする機能きのう不十分ふじゅうぶんであったため、ユーザはハードウェア実装じっそうにおいてはFCピンのデコードをおこなわずに1つの32ビットアドレス空間くうかんとするほかはなかった[10]

MC68000シリーズではプログラムアドレス空間くうかんとデータアドレス空間くうかん分離ぶんりするハーバード・アーキテクチャ採用さいようしていた[よう出典しゅってん]。しかし、アドレス空間くうかん分離ぶんりにおけるメモリ管理かんり複雑ふくざつ、またハーバード・アーキテクチャを採用さいようしたオペレーティングシステム (OS) があまり供給きょうきゅうされなかったことから、おおくの実装じっそうではプログラムアドレス空間くうかんとデータアドレス空間くうかん分離ぶんりしない設計せっけい採用さいようされる場合ばあいほとんどだった。

スタック[編集へんしゅう]

スタックがOSようアプリケーションようふたつあり[11]特権とっけんモード(スーパバイザモード)と、ユーザモードの2つの特権とっけんレベルつなど、当初とうしょよりUNIXに代表だいひょうされる高度こうどなメモリ管理かんり機能きのうやマルチタスク機能きのうそなえたOSを搭載とうさいすることを前提ぜんてい設計せっけいされている。

ユーザーモードで動作どうさするプログラムの互換ごかんせいはMC68000からMC68060までバイナリレベルでほぼ完全かんぜんたもたれているが、スーパバイザモードでの動作どうさについてはこのモードで動作どうさするOSが差異さい吸収きゅうしゅうすることを前提ぜんていとして、世代せだいごとに改良かいりょう変更へんこうくわえられている。

このためとくスタックポインタ実装じっそうとその挙動きょどうには世代せだいあいだでの相違そういおおく、アプリケーションがハードウェアリソースへ直接ちょくせつアクセスするためにスーパーバイザモードをアプリケーションに解放かいほうした原始げんしてき実装じっそうのOSではMC68000ようかれたこのたね動作どうさおこなうアプリケーションプログラムが後継こうけいかくプロセッサで正常せいじょう動作どうさしないケースが存在そんざいする。

メモリアドレッシング[編集へんしゅう]

MC68000は16ビットのALU一方いっぽうで、アドレスはつねに32ビットであつかわれ、フラットな32ビットアドレス空間くうかんつ。その実効じっこうアドレスの演算えんざんために、専用せんようの16ビットはばのALUを2つ。

8086は20ビットのアドレス空間くうかんつが、リニアにアクセスできるのはセグメントとしょうされた(セグメント方式ほうしき#x86)16ビットの空間くうかんだけであった。これはとくにグラフィックのあつかいなどを面倒めんどうにした。[ちゅう 1]

MC68000では実効じっこうアドレス演算えんざんため専用せんようの2つの16ビットのALUを接続せつぞくしてもちい、3つめのALUが16ビットの演算えんざんおこなった。

たとえば、32ビットのアドレスレジスタのポストインクリメント(そのアドレスにアクセスしたのち、アドレスレジスタの内容ないようインクリメント増加ぞうか)するアドレッシングモード)「ADD.W (An)+,Dn」はポストインクリメントをしない場合ばあいくらべても速度そくど低下ていかすることがない。

したがって、16ビットCPUとしてはじまってはいるが、68000の命令めいれいセットは32ビットアーキテクチャになっている。後継こうけいMC68020は32ビットのALUと32ビットのデータバスをっていたが、68000ようのソフトウェアをほぼ変更へんこうすることなしに、データバスはばを32ビットに拡張かくちょうすることで速度そくど向上こうじょうたした。

しかし、ソフトウェアの互換ごかんせい完全かんぜんたもてたわけではない。68000では(同様どうようのテクニックはおなじく32ビットマシンだがアドレスが24ビットだったSystem/360おこなわれていたが)使つかわれない(無視むしされる)上位じょうい8ビットになんらかの情報じょうほうたせる、というテクニックが一部いちぶのシステムプログラムなどで使つかわれた。たとえば、LISPなどでポインタすオブジェクトの種類しゅるい区別くべつする情報じょうほうをそこに格納かくのうしたり、ガベージコレクションようのフラグを格納かくのうした。そのようなコードを、後継こうけいのよりひろいアドレスバスをつマシンで実行じっこうするとバスエラー発生はっせいした(やはりSystem/360の後継こうけいでも同様どうよう問題もんだいきており、System/370-XAではMSBを互換ごかんモードのためにのこした31ビットという苦肉くにくさくがとられている)[12]

Macintoshでは8MB以上いじょうのRAMを搭載とうさいするさいにソフトウェアのアップグレードが必要ひつようだった。

おおくのアプリケーションは将来しょうらい見越みこしてかれており、問題もんだい発生はっせいしなかった。

内部ないぶレジスタ[編集へんしゅう]

内部ないぶレジスタのビット構成こうせい

8ほん汎用はんようデータレジスタ (D0 - D7)と8ほんのアドレスレジスタ (A0 - A7) をつ。 アドレスレジスタ (A7) はスタックポインタ (SP) であり、スタック上位じょういのオブジェクトをアクセスすること容易よういとなった。

68000ファミリでのバイトデータのメモリじょうでの配置はいちビッグ・エンディアンである。

ステータスレジスタ[編集へんしゅう]

68000の比較ひかく命令めいれい算術さんじゅつ演算えんざん命令めいれい論理ろんり演算えんざん命令めいれい実行じっこう結果けっかをステータスレジスタに反映はんえいさせ、あと条件じょうけんジャンプ命令めいれいでそれを使つかえるようになっている。 ステータスレジスタのビットには、"Z"ero(ゼロ)、"C"arry(キャリー)、o"V"erflow(オーバーフロー)、eXtend、そして"N"egative(ネガティブ)がある。 eXtendビットはCarryビットと分離ぶんりされている。 eXtendとCarryは、シフト/算術さんじゅつ演算えんざん/論理ろんり演算えんざん命令めいれいけたがり結果けっか保持ほじするが、eXtendビットはよりバイトの演算えんざん実現じつげんするために使つかい、Carryビットは処理しょりながれを制御せいぎょするのにもちいる。

命令めいれいセット[編集へんしゅう]

68000の設計せっけいしゃはアセンブリ言語げんご直交ちょっこうせいつよう注意ちゅういはらった。つまり、命令めいれい操作そうさアドレッシングモードけられ、おおくの場合ばあい任意にんい操作そうさ任意にんいのアドレッシングモードを使つかえるようになっている。

ビットレベルでると、命令めいれいオペコードかならずしも現状げんじょうとおりである必然ひつぜんせいはない。このことは、ある意味いみでよい妥協だきょうてんだった。しん直交ちょっこうせいのあるマシンと同等どうとう利便りべんせいると同時どうじにCPU設計せっけいしゃはオペコードひょう自由じゆうめることができた。

最小さいしょう命令めいれいサイズは当時とうじとしてはおおきい16ビットである。さらにおおくの命令めいれいやアドレッシングモードは追加ついかのワードでアドレスやアドレスモードビットとう表現ひょうげんする。

おおくの設計せっけいしゃはMC68000アーキテクチャはコストに見合みあうコンパクトなコードを実現じつげんしているとしんじている(とくコンパイラがコードを生成せいせいした場合ばあい)。おおくの制御せいぎょシステムの設計せっけいしゃはメモリのコストに敏感びんかんであり、コードがコンパクトであるという信念しんねんがMC68000ならびに後継こうけいCPUを採用さいようする動機どうきつながり、アーキテクチャの寿命じゅみょうばした。そして同様どうようにコンパクトなARMアーキテクチャThumb命令めいれいセット登場とうじょうするまで、おおくの68000命令めいれいセット(のCPU)の採用さいようをもたらしつづけた。

特権とっけんレベル[編集へんしゅう]

このCPUとぜんファミリは段階だんかい特権とっけんレベルを実装じっそうしている。ユーザモードではみレベル制御せいぎょ以外いがいはアクセス可能かのうである。 スーパバイザ特権とっけんではすべてにアクセスできる。みが発生はっせいするとスーパバイザモードに移行いこうする。 スーパバイザビットはステータスレジスタに格納かくのうされ、ユーザプログラムからもえる。

[編集へんしゅう]

68000は8つのレベルをつ。レベル0から7まで厳密げんみつ優先ゆうせん順位じゅんいまっている。 番号ばんごうおおきいみが番号ばんごうちいさいみにたいしてむことが出来できる。ステータスレジスタには現在げんざいみレベルを特権とっけん命令めいれいでセットすることができ、これによりひくいレベルのみをブロックする。レベル7はマスクすることができないため、NMI(えい: Non-Maskable Interrupt)とも[13]。レベル0はすべてのレベルがむことができる。レベル0は要求ようきゅうがないことをしめ[14]。レベルはステータスレジスタに格納かくのうされ、ユーザレベルプログラムからもることが出来できる。

ハードウェアみは3ほん信号しんごうせんによってCPUにつたえられ、この3ほんがペンディングちゅうもっとたかみレベルにエンコードされる。別途べっとみをエンコードするためのみコントローラが必要ひつようである。ただし、発生はっせいげんみっ以下いかのシステムでは、かくみをさんほん信号しんごうせんにそれぞれつなぐことでみコントローラを省略しょうりゃくできる。ただし、みレベルとみの対応たいおう単純たんじゅんではないためソフトウェアでの処理しょり複雑ふくざつになる。みコントローラは汎用はんようロジックIC74148のような単純たんじゅんなエンコーダでもよいし、VLSIの周辺しゅうへんチップでもよい。たとえばMC68901は、制御せいぎょだけでなくUART(シリアル)、タイマー、パラレルI/Oをそなえている。

例外れいがいテーブル(みベクターテーブル)はアドレス0番地ばんちから1023番地ばんちまで固定こていかれ、256の32ビットアドレスをあらわす。最初さいしょのベクターは初期しょきスタックアドレスであり、番目ばんめのベクターは初期しょきコードアドレスである。3ばんから15ばんのベクターは各種かくしゅエラー処理しょりルーチンのアドレスである。エラーの種類しゅるいとしてはバスエラー、アドレスエラー、不正ふせい命令めいれいゼロによるざん、CHK/CHK2命令めいれいベクター、特権とっけん違反いはん、そして予約よやくされたベクター(のちにline 1010エミュレータ、line 1111エミュレータ、ハードウェアブレークポイントにてられた)がある。ベクター24から実際じっさいみに対応たいおうする。ハードウェアに対応たいおうしない擬似ぎじみ、レベル1から7のベクター、15のTRAPベクター、いくつかの予約よやくされたベクター、ユーザ定義ていぎベクターの順番じゅんばんならんでいる。

リセットされたとき、すくなくともスタートコードアドレスのベクターにはただしいアドレスがはいっている必要ひつようがある。おおくのシステムは不揮発ふきはつメモリ(つまりROM)をっていて、0番地ばんち配置はいちし、そのROMにベクターテーブルとブートストラップコードがはいっている。しかし、汎用はんようシステムでは動作どうさちゅうにベクターをえられるのがのぞましい。これを実現じつげんするため、ROMじょうのベクターがRAMうえのジャンプテーブルをすようにするか、バンクえで動作どうさちゅうに0番地ばんち付近ふきん配置はいちをROMからRAM変更へんこうする。

68000はPopekとGoldbergの仮想かそう要件ようけんえい: virtualization requirements for full processor virtualization)をたしていない。というのは、"MOVE from SR" 命令めいれい特権とっけん命令めいれいでないため、ユーザモードから特権とっけんステータスがえてしまうからである。この問題もんだい後述こうじゅつする仮想かそう記憶きおくサポートの問題もんだいとともにのちMC68010改善かいぜんされた。"MOVE from SR" 命令めいれい特権とっけん命令めいれいとなり、ユーザモードのソフトウェアように "MOVE from CCR" 命令めいれい追加ついかした。ユーザモードで "MOVE from SR" 命令めいれい使つかった場合ばあい、トラップが発生はっせいしてOSがわでエミュレートすることも可能かのうである。

MC68000 でのデマンドページングの実現じつげん[編集へんしゅう]

680x0けい最初さいしょのプロセッサであるMC68000の仕様しようは、外部がいぶ支援しえんなしにはデマンドページング実現じつげん困難こんなんなものであった。

デマンドページングでは、実行じっこうちゅう命令めいれいのメモリアクセスがページフォールトこしたら、(それが正常せいじょうなアクセスであれば)その実行じっこうちゅう命令めいれい実行じっこう一旦いったんフリーズし、外部がいぶ記憶きおくしゅ記憶きおくあいだスワッピングをおこなってから、実行じっこうちゅうだった命令めいれい実行じっこうから再開さいかいする、という処理しょり必要ひつようである。

しかし、MC68000がページフォールトのさい保存ほぞんする内部ないぶ情報じょうほうは、「実行じっこうちゅうだった命令めいれい実行じっこうからの再開さいかい」ができないものであった。このため、MC68000の通常つうじょう処理しょりしたがってしまうと、デマンドページングは実現じつげんできない。これを、たんにそもそもサポートするつもりがかったものとみるむきもあれば、「仕様しようのバグ」とみるむきもあれば、後述こうじゅつのようにして実現じつげん可能かのうであるし、MMUも計画けいかくちゅうぎなかったのだから「将来しょうらい仮想かそう記憶きおくをシリコンじょう実装じっそうすることを正当せいとうする需要じゅよう発生はっせいするまでの暫定ざんていてき実装じっそう仕様しよう」だったとかんがえるほうが自然しぜんである、とみるむきもある。

そのようなMC68000で仮想かそう記憶きおく実装じっそうするためには、MC68000にはつぎのような機能きのうがあった。バスアクセスちゅうにあるピンをアサートすることにより、命令めいれい実行じっこうをそこで一旦いったんフリーズし、スリーステートバスをハイインピーダンスにして解放かいほうさせたままいつまででもめておいて、そののち、もと命令めいれい中断ちゅうだんしたバスアクセスからさい実行じっこうre-run)する機能きのうである。これによるバスサイクルをリランサイクル(rerun cycle)という。

これを利用りようして、メインのCPUであるMC68000をめた状態じょうたいで、べつのプロセッサでページ処理しょりをおこなうようにして、デマンドページングを実装じっそうできる。必然ひつぜんせいはないが、おなじバスに接続せつぞくする容易よういせいから、この補助ほじょプロセッサにもMC68000が使つかわれることがおおい。

以上いじょうのようなMC68000のデュアル・プロセッサによる仮想かそう記憶きおく実現じつげんしたコンピュータとしてはアポロコンピュータのDomainが有名ゆうめいである。同社どうしゃ実装じっそうではページスワップをになうスレーブ・プロセッサは、通常つうじょうはグラフィックス・プロセッサとして動作どうさし、必要ひつようおうじてマスターのページ・スワップ要求ようきゅうおうじた。

この問題もんだいのMC68010で解決かいけつされた。MC68010では、バスエラーとアドレスエラーが発生はっせいした場合ばあい、エラーを発生はっせいさせたもと命令めいれいすプログラムカウンタのアドレスをスーパバイザスタックに保存ほぞんすることにより、もと処理しょり復帰ふっきできるようになった。

命令めいれいセットの詳細しょうさい[編集へんしゅう]

基本きほんてきなアドレッシングモードは以下いかとおりである。

  • レジスタ直接ちょくせつ
    • データレジスタ、れい "D0"
    • アドレスレジスタ、れい "A6"
  • レジスタ間接かんせつ
    • 単純たんじゅんアドレス、れい (A0)
    • ポストインクリメントづけアドレス、れい (A0)+
    • プレデクリメントづけアドレス -(A0)
    • 16ビット符号ふごうづけオフセット、れい 16(A0)
    • 実際じっさいのインクリメントやデクリメントのサイズはオペランドの指定していによってわる。バイトリード命令めいれいではインクリメントすると、アドレスに1を加算かさんし、ワード(16ビット)では2を、ロング(32ビット)では4を加算かさんする。
  • インデックスづけレジスタ間接かんせつ
    • 8ビット符号ふごうづけオフセット、れい 8(A0, D0) または 8(A0, A1)
  • プログラムカウンタ相対そうたい
    • 16ビット符号ふごうづけオフセット、れい 16(PC). このモードは非常ひじょう便利べんり
    • インデックスづけ8ビット符号ふごうづけオフセット、れい 8(PC, D2)
  • 絶対ぜったいアドレス指定してい
    • "$4000"のような数値すうちや、アセンブラが翻訳ほんやくするシンボリックな名前なまえ
    • 68000のアセンブリ言語げんごでは16進数しんすうあらわすのに "0x" ではなく "$" を使つかうものがおおい。
  • イミディエート
    • 命令めいれいないみ、れい "#400".

追加ついか:ステータスレジスタへのアクセス。のモデルでは特殊とくしゅレジスタも同様どうよう

おおくの命令めいれいにはドットにつづくサフィックスがき、処理しょり単位たんいを8ビット (".b")、 16ビット (".w")、32ビット (".l") で指定していする。

おおくの命令めいれい入力にゅうりょく(ソース)と出力しゅつりょく(デスティネーション)をち、デスティネーションに変更へんこうくわえる。おも命令めいれい以下いかとおりである。

  • 算術さんじゅつ演算えんざんADD, SUB, MULU符号ふごうなしざん), MULS符号ふごうありざん), DIVU, DIVS, NEG否定ひてい加算かさん), CMP減算げんざん一種いっしゅだが、ステータスビットにのみ結果けっか反映はんえいし、実際じっさい減算げんざん結果けっか格納かくのうしない)
  • 進化しんかじゅうしん演算えんざんABCD, SBCD
  • 論理ろんり演算えんざんEOR排他はいたてき論理ろんり), AND, NOT論理ろんり否定ひてい
  • シフト演算えんざん
    • 論理ろんりシフト、つまりみぎシフトでさい上位じょういビットをゼロにする: LSL, LSR
    • 算術さんじゅつシフト、つまりさい上位じょういビットを符号ふごう拡張かくちょうする: ASR, ASL
    • ローテート、eXtendを使つか命令めいれい使つかわない命令めいれいROXL, ROXR, ROL, ROR
  • メモリないのビット操作そうさ:BSET(1にする), BCLR(0にする), and BTST(SRのZeroビットをセット)
  • マルチプロセッサ制御せいぎょTAS(テストアンドセット、1命令めいれいでビットテストのためのリードとその結果けっかのライトの2つのメモリアクセスをみなどで中断ちゅうだんされない不可分ふかぶんなバスサイクルおこなうことによりメモリ共有きょうゆうがたマルチプロセッサでのセマフォ実現じつげん
  • フロー制御せいぎょJMP(ジャンプ), JSRサブルーチンコール), BSR相対そうたいアドレスでのサブルーチンコール), RTS(サブルーチンからの復帰ふっき), RTE例外れいがいみからの復帰ふっき), TRAP(ソフトウェアみにたソフトウェア例外れいがい発生はっせい), CHK条件じょうけんきソフトウェアみ)
  • 分岐ぶんきBcc("cc"は分岐ぶんき条件じょうけんとして16種類しゅるいのステータスレジスタのチェック方法ほうほう記述きじゅつ:equal(ひとしい), greater than(おおきい), less-than(ちいさい), carry, これらのわせや論理ろんり否定ひてい
  • デクリメント分岐ぶんきDBcc("cc"は分岐ぶんき命令めいれいおな意味いみ指定していしたデータレジスタをデクリメントしたのち指定していされた条件じょうけんしんで、デクリメント結果けっかが-1でないなら分岐ぶんきする。0ではなく-1でチェックするのは、ループを記述きじゅつする場合ばあいにコードを単純たんじゅんするためである。ループカウンタとして最初さいしょから0が指定していされた場合ばあい、デクリメントされて-1になるので分岐ぶんきしない。したがって0かどうかをループにはいまえにチェックする必要ひつようがない。

M68000ファミリ[編集へんしゅう]

メインプロセッサ[編集へんしゅう]

MC68020RC12E
MC68030RC50C
  • MC68000 - サン・マイクロシステムズ初代しょだいUNIXワークステーションであるSun-1や、初期しょきMacintoshなどに採用さいようされた。日本にっぽんではシャープ X68000シリーズ、SEGA メガドライブ、SNK ネオジオなどに採用さいようされた。
    • MC68EC000 - 8ビットデータバスとして使用しようできるローコストばん各種かくしゅ機器きき制御せいぎょようみMPUとして使用しようされたほか、セガサターンではサウンド制御せいぎょようMPUとして搭載とうさいされた。
  • MC68008 - データバスを8ビット、アドレスバスを20ビットに縮小しゅくしょう安価あんかな48ピンパッケージにおさめた縮小しゅくしょうばんの68000MPUである。
  • MC68010 - MC68000に仮想かそう記憶きおくおよび仮想かそう機械きかい実現じつげんするための機構きこう追加ついかした。3ワードぶんのキャッシュをち、MC68000にくらべ、DBcc命令めいれいとう高速こうそく実行じっこう可能かのうだった。サン・マイクロシステムズのUNIXワークステーションであるSun-2日立ひたち 2050(初代しょだい)に搭載とうさいされた。
  • MC68012 - 外部がいぶアドレスバス31ビット。
  • MC68020 - 外部がいぶアドレスバス32ビット、データバス32ビットと、名実めいじつともに32ビット命令めいれいキャッシュ256バイトを追加ついかコプロセッサ接続せつぞく可能かのうになった。 Sun-3、Macintosh II、Amiga 1200、日立ひたち 2050/32などに搭載とうさい
  • MC68030 - MC68851相当そうとうMMU内蔵ないぞう命令めいれいキャッシュのほかにデータキャッシュ256バイトを追加ついか。Sun3/80、ソニー NEWS、Next Cube(初代しょだい)、Macintosh IIx以降いこう、Amiga 3000、日立ひたち 2050/32Eなどに搭載とうさい
  • MC68040 - MMU、MC68882相当そうとうFPU内蔵ないぞう一部いちぶ命令めいれいはソフトウェアエミュレート)、かくキャッシュを4Kバイトに増加ぞうか命令めいれい高速こうそく、マルチプロセッサのサポート。NeXTcubeMacintosh Quadra・Centris、Amiga 4000などに搭載とうさい。なお、68040はXC68040(ソフトでベータばん)チップがそのまま量産りょうさんされており、いわゆるエラッタ解消かいしょうしたMC68040はほとんど流通りゅうつうしていない。
    • MC68LC040 - FPUし。Macintosh LC475・575とう、Appleの廉価れんかモデルなどに搭載とうさい
    • MC68EC040 - FPUし。MMUし。
    • MC68040V - てい電圧でんあつ動作どうさ (3.3V) ばん
  • MC68060 - 68040とピン互換ごかん内部ないぶ2逓倍、ワイヤードロジックともない、一部いちぶ命令めいれい削除さくじょされた。しかしサン・マイクロシステムズはSPARC、MacintoshはPowerPC、MIPSなどに移行いこうしたためワークステーション・PCではほとんど採用さいようされず。AmigaやX680x0ではアクセラレータとして使つかわれた。
    • MC68EC060
    • MC68LC060
  • SCC68070英語えいごばん - シグネティックス英語えいごばんが、CD-iのために製造せいぞうしたよう互換ごかんMPU。
MC68MH360FE33E
  • MC68MH360FE - MC68360(CPU32+ベース)+SCC (Serial Communications controllers)

周辺しゅうへんLSI[編集へんしゅう]

HD68450Y8
  • MC68120 - IPC (Intelligent Peripheral Controller with mask ROM)
  • MC68121 - IPC (Intelligent Peripheral Controller w/o mask ROM)
  • MC68122 - CTC(クラスタ ターミナル コントローラ)[3]
  • MC68150 - DBS (Dynamic Bus Sizer)
  • MC68153 - Bus Interrupter
  • MC68160 - EEST (Ethernet Driver)
  • MC68184 - BIC (Broadband Interface Controller)
  • MC68185 - Twisted Pair Modem
  • MC68194 - Carrier band Modem for IEEE 802.4
  • MC68195 - Local Talk Adapter
  • MC68230 - PI/T (Parallel Interface & Timer) パラレルインターフェイス&タイマ
  • MC68338 - MAC (Media Access Controller)
  • MC68339 - FSI (FDDI System Interface)
  • MC68341 - 浮動ふどう小数点しょうすうてんROM[3]
  • MC68356 - SPCE (Signal Processing Communication Engine)
  • MC68360 - QUICC ( Quad Integrated Communication Controller)
  • SCC68430 - DMAC (1ch Direct Memory Access Controller)
  • MC68440 - DMAC (2ch Direct Memory Access Controller)
  • HD68450 - DMAC (4ch Direct Memory Access Controller)
  • MC68451 - MMU (Memory Management Unit)[3]
  • MC68452 - Bus Arbiter
  • MC68453 - Bubble Memory Controller バブルメモリコントローラ[3]
  • HD63463 - HDC (Hard Disk Controller) ハードディスクコントローラ
  • HD63484 - ACRTC (Advanced Cathode Ray Tube Controller)
  • MC68488 - GPIBA (GP-IB Adapter)
  • R68C552 - DACIA (Dual Asynchronous Communication Interface Adapter)
  • R68560 - MPCC ( Multi Protocol Communication Controller)
  • HD68562 - DUSCC (Dual Universal Serial Communication Controller)
  • MK68564 - UART
  • MC68605 - X.25 Protocol Controller
  • MC68606 - X.25 Multi-Link LAPD Protocol
  • SCN68652 - MPCC (Multi-protocol Communication Controller)
  • MC68661 - UART
  • MC68681 - DUART (Dual Universal Asynchronous Receiver/Transmitter)
  • SCC68692 - 68681 Compatible CMOS
  • R68802 - LNET (Local Network Controller)
  • MC68824 - TBC (Token Bus Controller)
  • MC68834 - Stream Cipher Chip
  • MC68836 - FCG (FDDI Clock Generator)
  • MC68837 - ELM (Elasticity Buffer and Link management)
  • MC68838 - MAC (Media Access Controller)
  • MC68839 - FSI (FDDI System Interface)
  • MC68840 - Integrated FDDI
  • MC68847 - quad ELM
  • MC68848 - CAMEL
  • MC68851 - PMMU (32bit Page Memeoy Management Unit)
  • MC68881 - FPU (Floating-Point Unit) 浮動ふどう小数点しょうすうてん演算えんざんユニット
  • MC68882 - FPU (Floating-Point Unit) 浮動ふどう小数点しょうすうてん演算えんざんユニット(改良かいりょうばん
  • MC68901 - MFP (Multi Function Peripheral) 機能きのう周辺しゅうへんコントローラ

後継こうけい製品せいひん[編集へんしゅう]

  • CPU16
    • TMP68301 - 68HC000 + UART etc(東芝とうしばせい
    • TMP68303 - 68HC000 + UART + PI/T(東芝とうしばせい
    • MC68302 - 68EC000 + SCC(高機能こうきのう通信つうしんコントローラ)、DMA、Timer。ISDNとう通信つうしん機器きき使つかわれた。
    • MC68306 - 68EC000 + DUART
    • MC68307 - 68EC000 + UART
    • MC68322 (BANDIT) - 68EC000 +
    • MC68328 (DragonBall) - 68EC000 + LCDコントローラ、UART、SPI、PWM、Timer、RTCPalm (PDA) に使つかわれた。
  • CPU32 MCU
    • MC68330 - CPU32
    • MC68331 - CPU32 + GPT (Timer),QSM(キューづけシリアルモジュール)
    • MC68332 - CPU32 + TPU(高機能こうきのうなタイマ/カウンタ),QSM,SIM(システム統合とうごうモジュール)
    • MC68334 - モジュラプロセッサ - CPU32 + TPU,SIM, 8/10ビットADコンバータ(変換へんかん速度そくどは8ビット8ms、10ビット9ms[15]), 132ピンPQFPパッケージ, 最高さいこう動作どうさ周波数しゅうはすう16.78MHz(システムクロックを停止ていしすることも可能かのう)[15]
    • MC68340 - CPU32 + DMA,DUART,Timer
    • MC68341 - CPU32 + タイマ,2チャネルDMA,2チャネルSIO(シリアルIO),SIM41(システム統合とうごうモジュール)、CD-Iエンジンけプロセッサ、データバス16ビット、アドレスバス32ビット
    • MC68356 - MC68302のスーパーセット(統合とうごうマルチプロトコル・プロセッサ) - 68EC000 + RISCプロセッサ(CP:通信つうしんプロセッサとして利用りよう) + DSP56002, SIB(システム統合とうごうブロック), PCMCIAサポート, 16550UARTエミュレーション
    • MC68360 (QUICC) - CPU32+(CPU32上位じょうい互換ごかん) + CPM(高機能こうきのう通信つうしんコントローラ),DMA,Timer
  • ColdFire - M68Kシリーズから派生はせいしたRISCプロセッサ。命令めいれいセットは68000から一部いちぶ削除さくじょされソースコードレベルでサブセットとなっている。
    • MCF52xx - ColdFire V2
    • MCF53xx - ColdFire V3
    • MCF54xx - ColdFire V4/V4e

エミュレータ[編集へんしゅう]

  • BUFFEE Accelerator - MC68000と差替さしかえて使つかえるよう、AM335x ARM Cortex-A8搭載とうさいしMC68040 400MHz相当そうとうのアクセラレータとして、2021ねん3がつ現在げんざい開発かいはつ途上とじょう[16]

参考さんこう文献ぶんけん[編集へんしゅう]

  • Motlora, Inc.『M68000マイクロプロセッサユーザーズ・マニュアル』(4th editionだい9はん)CQ出版しゅっぱん、1990ねん5がつ10日とおかISBN 978-4-7898-4091-0。M68000UMJ/AD4。 
  • 日立ひたちマイクロコンピュータエンジニアリング ちょ関根せきね慶太郎けいたろう へん図解ずかい16ビットマイコン68000とファミリの活用かつようDMAC・ACRTC・HDC』東京電機大学とうきょうでんきだいがく出版しゅっぱんきょく、1987ねんISBN 978-4-501-51240-8NCID BN02581340 
  • おもねかたなでんひさしいち『68000ハードウェア設計せっけい五十嵐いがらしさとし鵜沢うざわ繁行しげゆき初版しょはんだい2さつだい1かい修正しゅうせい))、あきらあきらどう、1987ねんISBN 978-4-7856-3062-1NCID BN01471063 
  • 日本にっぽんモトローラ株式会社かぶしきがいしゃ半導体はんどうたい事業じぎょう『MC68030ユーザーズ・マニュアル』CQ出版しゅっぱん1990ねん日本にっぽんモトローラ。べい: MC 68030 enhanced 32-bit microprocessor user's manualNCID BN06695647
  • 「ASCII 1983ねん5がつごうだい7かんだい5ごう株式会社かぶしきがいしゃアスキー出版しゅっぱん、1983ねん5がつ1にち 

脚注きゃくちゅう[編集へんしゅう]

  1. ^ ASCII 1983ねん5がつごう, p. 88.
  2. ^ DCL、東京とうきょう多摩たましん工場こうじょう建設けんせつ――ワークステーション増産ぞうさん、カスタムLSIも。”. 2023ねん10がつ18にち閲覧えつらん
  3. ^ a b c d e 禿かぶろぶし喜田きた祐三ゆうぞう田邊たなべ皓正てるまさ藤岡ふじおかあさひ『16ビットマイクロプロセッサ』丸善まるぜん株式会社かぶしきがいしゃ、1981ねん6がつ30にち、158-161ぺーじ 
  4. ^ "68HC001 obsoletes 68008."[リンク], Microprocessor Report, 1990ねん6がつ20日はつか; available from HighBeam Research (subscription).
  5. ^ "Motorola streamlines 68000 family; "EC" versions of 68000, '020, '030, and '040, plus low-end 68300 chip."[リンク], Microprocessor Report, 1991ねん4がつ17にち; available from HighBeam Research (subscription).
  6. ^ "Motorola reveals MC68SEC000 processor for low power embedded applications", Motorola press release, 1996ねん11月18にち; archived by Internet Archive on 1997ねん3月28にち.
  7. ^ comp.sys.m68k Usenet posting, 1995ねん5月16にち; どうスレッドないほかのポストも参照さんしょうされたい。
  8. ^ a b 連載れんさい】セガハードストーリー だい3かい時代じだいもとめた16ビット” 『メガドライブ』セガハードだい百科ひゃっか 2017ねん10がつ27にち
  9. ^ a b Motlora, Inc.『M68000マイクロプロセッサユーザーズ・マニュアル』(4th editionだい9はん)CQ出版しゅっぱん、1990ねん5がつ10日とおかISBN 978-4-7898-4091-0。M68000UMJ/AD4。 
  10. ^ おもねかたなでんひさしいち 1987.
  11. ^ MOTOROLA 1994, p. 2-2.
  12. ^ このような、アドレスのきビットの「活用かつよう」をふせぐような実装じっそうも、x64初期しょきリリースでは64ビットのアドレス空間くうかんのうち48ビットだけを利用りようのこりのビットは47ビットのコピーでないとエラー)などでおこなわれている。
  13. ^ 16-bit_microprocessors 1983, p. 202.
  14. ^ 16-bit_microprocessors 1983, p. 163.
  15. ^ a b インターフェース 1995ねん1がつごう, p. 233.
  16. ^ 株式会社かぶしきがいしゃインプレス (2021ねん2がつ8にち). “68000とえて使つかえるCPUアクセラレータ「Buffy Acellerator」”. PC Watch. 2021ねん3がつ25にち閲覧えつらん

注記ちゅうき[編集へんしゅう]

  1. ^ 640×400ドット程度ていど解像度かいぞうどでRGBかくプレーンについてそれぞれ32KB程度ていどVRAM必要ひつようとする多色たしょくビットマップグラフィック環境かんきょうにおいては、じつメモリ空間くうかん最大さいだい1MBの8086ではプログラムエリアを圧迫あっぱくしないためにVRAMかくプレーンをバンクするなどの回避かいひさくこうじる必要ひつようがあった。このため、CPUから直接ちょくせつVRAMにアクセスするのにセグメント操作そうさやバンクえを併用へいようする必要ひつようのある8086は、基本きほんてきにはVRAMをリニアにメモリ空間くうかんじょう配置はいちでき、しかもメモリ操作そうさ命令めいれい直接ちょくせつ必要ひつようなアドレスを指定していできる68000と比較ひかくしてプログラミングがどうしても煩雑はんざつになった。