ノート:MC68000

ページのコンテンツが他言語でサポートされていません。

ページ名について[編集]

一般に68000と呼ばれていますが、モトローラではmc68000ですよね(6809もmc6809が正式名称)。いまのうちにすべての68000をmc68000にして、68000には「mc68000」にリンクを張っておいた方がいいと思うのですがいかがでしょうか?--Oga 07:31 2003年2月21日 (UTC)


大賛成です。68K FamilyにはPC用途以外の方が多いですし。同様に、インテルのものもIntel386 Processerが「名称」80386などは「型番」のようです。数字のみではパテントがとれなかったからでしょうか。--suisui 16:04 2003年2月21日 (UTC)


英語版の方ではen:motorola 68000になっているようですね。そして、68000とmc68000からリダイレクトされているようですので、日本語版もこの方式に倣った方がいいかと思いますが、いかがでしょうか?日本語版ならさしずめ「モトローラ68000」辺りが適切かもしれませんね--Oga 02:55 2003年2月22日 (UTC)


「後継の68020からは外部データバス、アドレスバス共に32ビットの、名実共に32ビットのCPUとなり、ユーザーモードで使用するぶんにはソフトウェア的にはほぼ上位互換であった。互換性のない部分は、存在しない命令を実行しようとしたときに割り込みでトラップすることで、ソフト的に吸収することができた。」

この記述は完全ではありません。命令を実行するとき、オペランドを先に評価してコード実行ユニットに送るのですが、コードを実行する前にバスエラー・アドレスエラーが発生します。これはソフト的に吸収する事ができません。--Konoa 20:32 2003年2月21日 (JST)


「MC68010 - 仮想記憶および仮想マシン機構を追加した68000MPU。サン・マイクロシステムズの初代UnixワークステーションであるSun-1に搭載された。」

Sun-1に採用されたのは68000でSUN-2が68010です。後に、SUN-1をCPUボード交換で68010にアップグレードするサービスが提供され、現存するSUN-1は68010搭載のものばかりですが。それらは俗に「SUN1.5」と呼ばれました。 「Sun-1の後期モデルに搭載された。」が、正確。


「内部レジスタ」の末尾に近いところで、 噂では、このようにすることによって、アドレスレジスタ用の別の実行ユニットを用意して内部の並列性を高めたと言われている。という記述があります。Wikipediaはうわさ話を書くところではありませんし、架空のものや主観によって解釈が異なる事象ではなく、広く(小口の消費家や個人まで)市販された工業製品なので、噂ではない真実をつかむことができるはずです。特に68000の優秀なアーキテクチャに言及している部分であり、ここで不確かな記述がなされると記事全体の質が台無しになります。

一旦コメントアウトしておきます。事実をご存じの方による支援をお願いします。--pixan 2006年1月26日 (木) 12:59 (UTC)[返信]


2005年5月10日 (火) 06:17の加筆は、以下の箇所でこの外部サイトの一部を改変しただけの転載が疑われます。

  • 「MC68000は命令と命令の間に~元のコンテキストに復帰することができないというのが問題」
  • 「ページフォールトの際には~それ以外のオペレーティングシステム機能は(一切)不要」までの間

もし削除依頼に出すとしたら、2006年2月23日 (木) 19:52の版までは削除の対象と思われますが、現在の版は大丈夫なのでしょうか? 現在の版まで全部削除してしまうのは惜しいと思いますし、私には加筆できるだけの知識がないので。 --221.170.118.160 2006年7月30日 (日) 09:29 (UTC)[返信]


仮想記憶サポートにおける割り込み機能の問題に関してですが、RERUN を仮想記憶の実装に利用した実例があるのは理解していますが、RERUN 機能そのものが、そのために用意されたというのはかなり無理がある解釈かと思います。バグかどうかはともかく、実際登場した MMU が MC68000 用として登場していながら実際には使えなかった点を見ても、「仕様上の問題」として解釈すべきかと思いますが、いかがでしょうか?--Gerbera 2007年2月23日 (金) 18:58 (UTC)[返信]


プレフィックスに就いて。

68000ファミリの正式な名称はM68000ファミリです。たしか「マイクロプロセッサ68000のファミリだからM68000ファミリ」みたいなことがユーザズマニュアルの序に記載されていたはずです。
また正式なデバイスにはMC68000のようにMC を冠し、開発評価用のデバイスにはXC68000のようにXC を関します。

その他

HD68HCxxxの改良・高速版はHD63HCxxxという話は無いのでしょうか。
--61.125.222.70 2008年5月13日 (火) 06:05 (UTC)[返信]

開発が進むと同時に、製品名の選定が行われた。"68000" という名称は 6800 との連続性を想起させるよう選択されたが、これらの間に設計上の類似点はあまりない。集積されたトランジスタ数が 68,000 だったからとも言われているが、実際には 70,000 に近かった。

にテンプレート要出典を張りました。マニュアルには「68000トランジスタ、10万ゲート」と公表されているとおもいますが、「実際には 70,000 に近かった。」というのは何処から出てきた話なのかよく分からない。また68000と命名した理由云々ですとモトローラしか知り得ないような内容ですので、モトローラへの取材を元にした文献などが参照できる必要があります。--61.114.205.240 2008年6月7日 (土) 08:25 (UTC)[返信]

その他[編集]

富士通のFM-Gに68060搭載機がありませんでしたっけ?詳しい方、お願いします。--123.230.91.59 2009年4月6日 (月) 16:31 (UTC)[返信]

ハーバードアーキテクチャ[編集]

68000はFC0~2ピンの出力で現在のメモリアクセスがデータアクセスか命令フェッチかを区別することが出来るだけで、データバスと命令バスを別に持っているわけではありません。wikipediaのハーバードアーキテクチャの記述に照らして考えても、68000はハーバードアーキテクチャと呼ぶべきではないと考えます。 http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%83%90%E3%83%BC%E3%83%89%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3

フリースケール・セミコンダクタの資料を見ても、 68040は「内部ハーバードアーキテクチャ」と謳っていますが http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC68040 68000のデータシートには「harvard」という言葉は出てきません。 http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC68000

多くの実装では・・・・ほとんどだった。は重複表現。

訂正案: M68000シリーズではプログラムアドレス空間とデータアドレス空間を分離するアーキテクチャを採用していた(FC1ピンで区別)。しかし、アドレス空間の分離におけるメモリ管理の複雑化、またI/D分離アーキテクチャを採用したオペレーティングシステム(OS)があまり供給されなかったことから、多くの実装ではプログラムアドレス空間とデータアドレス空間を分離しない設計が採用された。

コメントハーバードアーキテクチャぽっくするには、メモリーに対してファンクションコード(FCピン)をデコードして完全に空間分離する必要があるだろうし、4つに分断されたアドレス空間をどのように相互アクセスするかという問題もある(阿刀田央一・五十嵐智・鵜沢繁行)。高価なメモリーを4重に付ける予算が取れるような時代ではないとか、またハードウェア実装とOSは蜜月な部分もあるので時代の要求が何であるかなど、ハーバードアーキテクチャになれない理由が沢山あったのだろうと推測できるのかな?と思います。--61.114.204.174 2014年11月21日 (金) 16:56 (UTC)[返信]

ウィキペディアはユーザズマニュアルも読んで理解できない人の推測を書く場所ではありません。--114.181.43.133 2015年1月29日 (木) 08:28 (UTC)[返信]

I/Oポート[編集]

もうひとつ 「ライバルである86系プロセッサでは別途用意されていたI/Oポートが搭載されておらず、」とありますが、8086にもI/Oポートは搭載されていません。 それをいうなら「ライバルである80系プロセッサでは用意されていた入出力命令は持たず」が適切では? また、メモリマップドI/O vs ポートマップドI/Oの退避は8ビットCPU(8080vs6800)時代から続いている差異点なので「86系」でなく『80系」としてみました。 --A-saitoh 2009年10月12日 (月) 06:40 (UTC)[返信]

少なくとも8086/8088には65536個のI/Oポートが用意されているはずです。実際、8086/8088にはOUT/IN命令がありますし、小生自身もCP/M-86上のASM-86用にコードを書いていた際にI/O操作を行っていましたので。--HATARA KEI 2009年10月12日 (月) 08:25 (UTC)[返信]

MC68451[編集]

本文のMC68000#周辺LSIに「MC68451 - MMU (Memory Managiment Unit)」とありますが、モトローラのマニュアルには「SMMU (Segment Memory Managiment Unit)」とされているはずです。(前に「SMMU (Segment Memory Managiment Unit)」と修正した気もするのですけど、)2010年9月28日 (火) 23:30 (UTC)ごろに読んだところ「MC68451 - MMU (Memory Managiment Unit)」とされているようです。編集方針として、何か理由があるのでしょうか?--202.213.150.108 2010年9月28日 (火) 23:44 (UTC)[返信]

FCピンのデコード[編集]

FCピンのデコードに関して加筆致しました(oldid=34185631)。FCピンのデコードに関しては「阿刀田央一・五十嵐智・鵜沢繁行『68000ハードウェア設計』初版第2刷(第1回修正)昭和62年 、昭晃堂 ISBN 978-4-7856-3062-1。NCID BN01471063。」に詳しくかかれています。--202.213.150.108 2010年9月28日 (火) 23:44 (UTC)[返信]

スタック[編集]

スタックがOS用とアプリケーション用に二つあり、特権モード(スーパバイザモード)と、ユーザモードの2つの特権レベルを持つなど、当初よりUNIXに代表される高度なメモリ管理機能やマルチタスク機能を備えたOSを搭載することを前提に設計されている。

なんて書いてあると、スタックレジスタが物理的に2本あるように読めてしまうので御幣があります。フリースケールのサイトにあるユーザーズマニュアルM68000UMの冒頭においては、特権モード(スーパバイザモード)と、ユーザモードのいずれの場合でもA7をスタックポインターに使うように説明されているはずです。--61.114.204.174 2014年11月21日 (金) 17:20 (UTC)[返信]

A7で参照されるレジスタは特権モード用とユーザーモード用の2本あります。物理的に2本なければ、それぞれのモードで別の値を保持することはできません。--rs1421会話2014年11月24日 (月) 15:43 (UTC)[返信]
そのへんを暗黙の了解ではなく主語主文の明快な日本語で分かりやすく概説するということです。「1本のレジスタのモードを変えて、2つのスタックを管理する」ということがうまく説明できれば良いわけですよね。--61.114.204.174 2014年11月25日 (火) 09:27 (UTC)[返信]
たとえば

スタックレジスタ(A7)には特権モード(スーパバイザモード)とユーザモードの2つのモードを持っており、特権レベルでOS用とアプリケーション用にある2つのスタックを管理できるなど、当初よりUNIXに代表される高度なメモリ管理機能やマルチタスク機能を備えたOSを搭載することを前提に設計されている。

という感じにしたほうかよいかな?と思います。(手直し歓迎)--61.114.204.174 2014年11月25日 (火) 09:27 (UTC)[返信]

正確性と疑問点[編集]

信じられない議論をしてますね。M68000 8-/16-/32-Bit Microprocessors User's Manual, Ninth Edition の 2-2 ページに

The M68000 MPUs contain identical supervisor mode register resources, which are shown in Figure 2-2

とあるでしょう。

A7は2つ、物理的に別々にあり、ステータスレジスタのうちの13バイト目、すなわち SUPERVISOR TATE により、スーパーバイザモードなら SSP (SUPERVISOR STACK POINTER) がA7' に、ユーザーモードで動いていれば USP (USER STACK POINTER) は A7 に割り当てられる。

User's Manual を読んで理解する事もせずに、自分は納得いかないからと独自研究タグを貼るとはいかがなものか。

当初よりUNIXに代表される高度なメモリ管理機能やマルチタスク機能を備えたOSを搭載することを前提に設計されている。という感じにしたほうかよいかな?と思います。(手直し歓迎)

手直しでどうにかなるレベルじゃないですね。User's Manual の 5-23 ページ

5.4. BUS ERROR AND HALT OPERATION


In a virtual memory system, the bus error signal can be used to indicate either a page fault or a bus timeout. An external memory management unit asserts bus error when the page that contains the required data is not resident in memory. The processor suspends execution of the current instruction while the page is loaded into memory. The MC68010 pushes enough information on the stack to be able to resume execution of the instruction following return from the bus error exception handler.

とあって、68000は仮想メモリに対応できない。

「UNIXに代表される高度なメモリ管理機能」というのも、全く意味を成さない。UNIX#1980年代に書かれているような基礎知識は無さそうですね。頑張って勉強してから編集していただけませんか。

この記事にはスタック以外にも怪しい記述が多数、見受けられますが、もう歴史的な MPU なので資料も詳しい人も散逸していますね。 -- 114.181.43.133 2015年1月29日 (木) 08:28 (UTC)[返信]