
MC68000 (エムシーろくまんはっせん)は米・モトローラ (現フリースケール・セミコンダクタ )が開発したCPU (モトローラでの呼称は「MPU」)である。 MC68000 (I bear Hassen MC Ro) is Motorola, the U.S. (Semiconductor, now Freescale) developed by the CPU (referred to by Motorola "MPU") is. 通称「 68000 」、 68K (ろくはちケー)。 Known as "68000", 68K (Chi Kee is good). 後継MPUも含めた同一アーキテクチャのシリーズを総称するときは、 680x0と呼称される事が多い。 When the generic successor series MPU architecture, including the same, 680x0 many things that are referred to. MC型番は量産ロットで、量産先行品はXC型番。 MC model is a batch production, mass production leading XC model.
目次 Contents
|
68000 は1976年に開始されたMACSS (Motorola Advanced Computer System on Silicon)プロジェクトから出てきたものである。 68000 is the 1976 year started MACSS (Motorola Advanced Computer System on Silicon) is what came out of the project. 従来製品との互換性を考慮するような妥協したアーキテクチャにはしないということが開発の初期に決定されていた。 The architecture of compromise to consider compatibility with conventional products had been developed in the early decision that it does not. これは、利用者がその新システムを一から新たに学ぶ必要があることを意味しており、一種の賭けだった。 This has meant that there is a need to learn a new system from scratch that the user was a gamble of sorts. 最終的に、 6800系の周辺デバイスとのインタフェースの互換性だけは持つこととなったが、6800のコードは実行できないものとなった。 Finally, the 6800 only interface compatibility with peripheral devices that may have been a series, and 6800 was unable to run code. しかし、その後の拡張における互換性には最大限の注意が払われ、68000 に乗り換えさえすれば今後が保証されるようにした。 However, it is compatible with the subsequent extension of the maximum attention, the 68000 will be guaranteed as long as they transfer to. 例えば、CPUのレジスタは32ビットとされたが、 外部バスはアドレスもデータもそれより小さく設定された。 For example, CPU registers of 32 and was bit external bus was also set lower than that also address data. 対照的に8086 / 8088は内部も16ビット幅だった。 In contrast to 8086 / 8088 the interior was a 16-bit wide. MACSSチームは、 PDP-11やVAXシステムのようなミニコンピュータのプロセッサに影響を受けた。 MACSS team, PDP-11 and VAX affected processor minicomputer systems such. 命令セットはハードウェアの制限よりもソフトウェア開発の観点で設計された。 Instruction set was designed from the perspective of software development than hardware limitations. そこには、ミニコンピュータでの開発になれた技術者がプログラミングしやすいものにしようとの考えがあった。 There is a notion that was trying to help people become a programming engineer in the development of minicomputers.
開発が進むと同時に、製品名の選定が行われた。 Development proceeds at the same time, made the selection of the product name. "68000" という名称は 6800 との連続性を想起させるよう選択されたが、これらの間に設計上の類似点はあまりない。 "68000" The name was selected in 6800 to evoke the continuity and similarities between these design is not much. 集積されたトランジスタ数が 68,000 だったからとも言われているが、実際には 70,000 に近かった。 The number of transistors that are integrated to 68,000 were said to be from, actually closer to 70,000.
当時、 8ビットから16ビットへの移行で熾烈な競争が繰り広げられていた。 At that time, 8-bit to 16 were engaged in fierce competition with the move to bits. ナショナル セミコンダクターは1973年から1975年にかけて IMP-16 と PACE というプロセッサで一歩先んじたが、使用したプロセス技術が原因で、性能に問題を抱えていた。 National Semiconductor in 1973 from the year 1975 was between PACE and the IMP-16 processor is a proactive step, due process of using technology, the performance was a problem. 次にテキサス・インスツルメンツがTMS9900をリリースしたが、広く使われるには至らなかった。 The Texas Instruments and then TMS9900 is released, but failed to be widely used. そして、1977年/78年にインテルがIntel 8086/8088 をリリースした。 And in 1977 / 78 Intel released the Intel 8086/8088 year. しかし、モトローラのマーケティング部門は 68000 をより完全な16ビット設計にすることが重要と考えた。 However, Motorola's 68000 marketing department more fully considered important to 16-bit design. このため、68000 はハードウェアとしては複雑なものとなった。 Therefore, as 68000 was more complex hardware. 当時、 マイクロプロセッサの能力を表す指標としてトランジスタ数が使われていたが、8086 は 29,000 個であり、68000はその倍以上のトランジスタ数だった。 At that time, the number had been used as an indicator of the ability of transistor microprocessor, the 8086 total is 29,000, the 68000 was more than twice that number of transistors.
68000 の単純な命令は4クロックサイクルで実行できたが、複雑な命令の実行にはもっと時間がかかった。 68000 is a simple instruction could be executed in four clock cycles to execute complex instructions took more time. 8MHz の 68000 で、平均性能は約 1 MIPSだった。 And 8MHz 68000 with the average performance of about 1 MIPS said.
典型的なプログラムで平均をとると、68000 のコードはインテルのプロセッサよりも一命令あたりにできることが多く、コードのサイズが小さくて済み、かつ性能がよい。 Taking the average of a typical program, code 68000 will be able to more than one instruction per processor, Intel already has a small code size, and good performance. さらに68000は平坦な24ビットアドレスによって16MBのメモリをサポートしている。 68000 also has a flat 24-by-bit address that supports 16MB of memory. これは当時としては非常に巨大なメモリ空間だった。 It was won by a very large memory space. インテルのチップはセグメント方式を採用していたため、プログラムも複雑化した。 Intel's chips to his method uses a segment, complicated programs. 1986年に登場した80386で初めて平坦なアドレッシングが可能となった。 1986 the year appeared in 80386 and was available addressing the first time in the flat. 68000の命令セットは学習が容易で使いやすく、開発者に好まれた。 68000 set of instructions are easy to learn and easy to use, the preferred developer.
オリジナルのMC68000は、3.5 μmルールのHMOSプロセスで製造された。 MC68000 is original, 3.5 μm of the rule HMOS the manufacturing process. 技術サンプルは1979年末に出荷された。 Technology samples 1979 were shipped to the end. 量産チップは1980年に出荷され、当初のクロック周波数は 4, 6, 8 MHzだった。 Chip production is 1980 which was shipped, the original clock frequency is 4, 6, 8 MHz was. 10MHz版は1981年 、12.5MHz版が1982年に登場している。 10MHz version in 1981, 12.5MHz version of 1982 that began to appear in years. HMOS では最高速の 16.67MHz版(12F)は1980年代終盤まで生産されなかった。 16.67MHz in the fastest version of HMOS (12F) in 1980's were not produced until the end.
メモリ量の少ないシステム向けの低価格版として1982年にMC68008が登場した。 A low-cost version with less system memory for the 1982 year appeared MC68008. これは MC68000 の8ビットデータバス版であり、アドレスバスも20ビットに縮小されている。 This version of the 8-bit data bus of the MC68000, the address bus is reduced to 20 bits. MC68012 は後に31ビットアドレスバスで登場した。 The MC68012 has emerged after a 31-bit address bus.
68HC000 はモトローラと日立製作所が1985年にリリースしたオリジナルとピン配置互換のHCMOS版である。 Although 68HC000 Hitachi and Motorola pin-compatible with the original 1985 release was a version of HCMOS. モトローラのものは MC68HC000、日立のものは HD68HC000 と呼ばれた。 Motorola is intended MC68HC000, which was called the Hitachi HD68HC000. 68HC000 では8MHzから20MHzまでのクロック周波数が可能となった。 68HC000 offers from 8MHz to 20MHz clock frequency to become available. またCMOS化されただけでオリジナルと全く変わらず、かつ電力消費が低減されている。 The CMOS flat-ized only completely original and has been reduced and power consumption. オリジナル版は 25 ℃の環境で約1.35 ワットを消費した(クロック周波数に依存しない)。 Original version is 25 ° C about 1.35 in the environment of watts consumed (independent of clock frequency). 一方、MC68HC000 は 8MHz で 0.13ワット、20MHz で 0.38ワットしか消費しない。 Meanwhile, MC68HC000 is 8MHz at 0.13 watts, 20MHz in draws only 0.38 watts. なお、CMOSとは異なり、HMOS回路の電力消費はスイッチング時も何もしていないときも一定である。 However, CMOS is different, HMOS power consumption remains constant even when the circuit is not nothing when switching. 従って、クロック周波数が違っても電力消費はほとんど変化しない。 Therefore, even if consumption does not change very much different clock frequencies. ただし、周囲の気温には影響される。 However, the temperature of the environment will be affected.
モトローラは1990年 、MC68HC001 をリリースした[1] 。 Motorola 1990, MC68HC001 released [1]. このチップは 68HC000 とほとんど似ているが、データバスが16ビット幅と8ビット幅のモードを持っており、リセット時のピンへの入力で選択できるようになっていた。 The 68HC000 chip is almost similar, with 16-bit wide data bus has an 8-bit wide mode was supposed to be able to select the input pin during reset. 従って、68008 の代替として 8ビットメモリを使った安価なシステムで利用できた。 Therefore, 68008 was used as an alternative to 8-bit memory system using inexpensive.
HMOS版の68000はいくつかのセカンドソース企業で製造された。 68000 HMOS version was produced in the source company several second. 日立(HD68000)、 Mostek (MK68000)、 ロックウェル (R68000)、シグネティックス(SCN68000)、Thomson/ SGS-Thomson (EF68000, TS68000)、 東芝 (TMP68000)などである。 Hitachi (Hd68000), Mostek (Mk68000), Rockwell (R68000), Shigunetikkusu (Scn68000), Thomson / SGS-Thomson (Ef68000, Ts68000), Toshiba (TMP68000) and so on. 東芝はCMOS版の 68HC000 のセカンドソースでもあった(TMP68HC000)。 Toshiba 68HC000 CMOS version was also the second source (TMP68HC000). また、後にシグネティックス社がアーキテクチャ互換のSCC68070を製造した。 The architecture-compliant companies Shigunetikkusu made after the SCC68070. SCC68070は、現在フィリップス社が版権を持つ。 SCC68070 will have the rights to the Philips today.
68000 は数々のマイクロコントローラや組み込み用プロセッサのベースにもなった。 68000 is the number of people were also based on the processor for embedded microcontroller and. 1989年、モトローラは MC68302 通信プロセッサをリリースした。 In 1989, Motorola MC68302 communications processor released. これが 68000 CPUコアを使用した最初のマイクロコントローラだった。 This was the 68000 CPU cores using the first microcontroller. このコアは CMOS 版の 68HC000 をベースとしているが、8ビットの 6800 周辺チップサポートを除いてある。 68HC000 is a CMOS version of this core is based on that, except for 8-bit 6800 chip peripheral support. 1991年 、モトローラはここからプロセッサ部分だけを抜き出した MC68EC000 をリリースした[2] 。 1991, Motorola has just lifted a portion of the processor MC68EC000 released here [2].
モトローラは 68EC000 コアを使ったいくつかのマイクロコントローラを開発した。 Motorola has developed a 68EC000 microcontroller core with several. MC68306 と MC68307 は汎用マイクロコントローラ、MC68322 "Bandit" はプリンターコントローラ、MC68356 はモデム用、 MC68328 DragonBallは携帯機器向けだった。 MC68307 and MC68306 general purpose microcontroller, MC68322 "Bandit" is a printer controller, MC68356 for the modem, DragonBall Mc68328 was for mobile devices. 他のマイクロコントローラとして683XXファミリは、より強力な CPU32 プロセッサコアを使っていた。 As other microcontrollers 683XX family was using a more powerful CPU32 processor core.
68EC000ベースの 683XX マイクロコントローラの一部にはスタティック版の 68EC000 コアが使われた。 683XX based 68EC000 part of the static version of the microcontroller core 68EC000 used. この場合クロックを遅くしたり停止させたりして電力消費を抑えることができる。 Can reduce power consumption to be stopped or slow down the clock or in this case. 1996年、モトローラはこのスタティックコアをプロセッサとして独立させ、MC68SEC000 としてリリースした[3] 。 In 1996, Motorola has made an independent processor cores in this static, MC68SEC000 was released as [3].
モトローラは1996年 、HMOS版 MC68000 と MC68008 の製造を終了した[4] 。 Motorola 1996, HMOS MC68008 and MC68000 completed the production version of [4]. 生産終了の予告は1994年末ごろなされた。 Notice of the end of production 1994 was made around the end. モトローラの通常の手順からいけば、1995年まで注文を受け付け、最後の出荷は1996年になったということになる。 The normal procedure goes from Motorola, the year 1995, taking orders, shipments last year were that 1996 would. その後スピンオフしたフリースケール・セミコンダクタは現在も MC68HC000、MC68HC001、MC68EC000、MC68SEC000 を製造販売し続けている。 Semiconductor scale-free spin-off then is still MC68HC000, MC68HC001, MC68EC000, MC68SEC000 has been manufacturing and selling. また、MC68302 や MC68306 マイクロコントローラやその後の DragonBall ファミリも生産し続けている。 Also, MC68302 and MC68306 microcontroller and subsequent DragonBall family have also been produced. 68000 のアーキテクチャを受け継いだ 680x0、 CPU32 、 Coldfireも生産されている。 680x0 architecture inherited 68000, 683XX, Coldfire has also been produced.
後継のMC68020からは外部データバス、アドレスバス共に32ビットの、名実共に32ビットのCPUとなり、コプロセッサがサポートされた。 Successor MC68020 from the external data bus, both 32-bit address bus, a 32-bit CPU undisputable Nearby was supported by the coprocessor. ソフトウェア的には、アドレッシングモードが拡張されたほか、ユーザーモードではほぼ MC68000 の上位互換だった。 In software, in addition to the extended addressing mode, user mode is almost MC68000 was compatible top. 一部互換性のない部分は、存在しない命令を実行しようとしたときに割り込みでトラップすることで、ソフト的に吸収することができた。 Some parts are not compatible, in that trap when you try to interrupt instruction is executed does not exist, could be absorbed by software. この MC68020 や、後継の MC68030 は数多くのワークステーションで採用された。 This and the MC68020, the MC68030 has been adopted by the successor of a number of workstations.
なおRISCであるPowerPCシリーズとの互換性はなく、同プロセッサを搭載したMacintoshではMC68LC040をエミュレーションしている。 The RISC is a PowerPC and not compatible with the series, with the same processor Macintosh that does MC68LC040 emulation to.
RISC技術を採用したColdFireシリーズは、68000から命令の多くを削除した下位互換のプロセッサである。 RISC technology adopted ColdFire series is backward compatible with 68000 processor is removed from many of the instructions.
68000 は1980年代前半には比較的高価なシステムに使われた。 68000 is used in the early 1980s was a relatively expensive system.
UNIXシステムではプロセッサの制限により、68000 そのものは長く使われることはなかったが、その後継品種は1980年代を通して UNIX 市場で広く使われた。 A UNIX system is limited by the processor, the 68000 can be used very long, but there is a successor varieties throughout the 1980s were widely used in the UNIX market. そのアーキテクチャがDEC社のPDP-11やVAXによく似ていて、 C言語のコードを動作させるのに最適なコンピュータだったからである。 Its architecture is DEC's PDP-11 and VAX often quite similar, C is the best from the computer was to run the code language.
1980年代中盤、68000 はパーソナルコンピュータやホビーパソコンで使われるようになった。 Mid 1980s, the 68000 came to be used on a PC or personal computer hobby. まず、 アップルコンピュータのLisaとMacintoshで使われ、その後コモドール Amiga 、 アタリ Atari ST 、 シャープ X68000などで使われた。 First, the Apple Lisa and Macintosh are used in the Commodore then Amiga, Atari Atari ST, Sharp X68000 was used as. 一方 68008 が使われたホビーパソコンとしてはSinclair QLぐらいしかない。 The 68008 was used as a home computer is a Sinclair QL mere.
68000 はコントローラ用として最も成功した。 68000 is the most successful for the controller. 1981年、Imagen 社の Imprint-10 などのレーザープリンタは 68000 をCPUとする外部コントローラで制御されていた。 1981, Imagen Imprint-10 printer's laser and the 68000 was controlled by the CPU and an external controller. 最初の HP LaserJet は 8MHz の 68000 を使ったコントローラを内蔵していた(1984年)。 The first is HP LaserJet and 8MHz 68000 was built using the controller (1984). 同様な 68000 を使ったコントローラが多くのレーザープリンタで使われている。 68000 similar to that used in many laser printers with the controller. 例えばアップルのLaserWriterなどである。 For example, Apple LaserWriter and so on. 68000 は1980年代を通してレーザープリンタで使用され、 1990年代に入ってもローエンドのプリンタに使われ続けた。 68000 1980 laser printer is used through the ages, been used in 1990 continued well into the printer's low-end.
また、68000 は工業制御システムの分野でも成功を収めた。 Also, 68000 is also successful in the field of industrial control systems. この種のシステムでは、68000 やその派生CPUを中心としたプログラマブルロジックコントローラ (PLC)を利用する。 This type of system, CPU 68000 or its derivatives with a focus on programmable logic controllers (PLC) to use. このようなシステムは一般市場に比較して製品寿命が長く、20年前のものでもそのまま使い続けることが多い。 Such systems have a longer product life compared to the general market, tend to stick with just 20 in the previous year. そのため、21世紀になっても68000ベースのコントローラが数多く使われ続けている。 Therefore, the 21st century, it has been used many 68000-based controller.
CPU32とColdfireプロセッサは自動車のエンジン制御に数百万個単位で使われた。 CPU32, and Coldfire processors are used in units of thousands to hundreds of automotive engine control. また、低価格で信頼性が高いことから医療機器分野でも多く使用された。 In addition, many were used in the field of medical equipment from the high reliability at low prices. 低電圧版のDragonBallは、 Palm PilotシリーズやHandspring VisorなどのPDAで使われた。 Low-voltage version of DragonBall is, and the Palm Pilot series Handspring Visor and PDA were used. 後にこの市場はARMプロセッサコアに奪われた。 Later this market ARM processor cores lost. 高速シリアルポートを内蔵した派生品(68302と68360)は、 シスコシステムズ 、 3Com 、Ascend、Marconiなどが通信機器に使用した。 Derivative with an integrated high-speed serial ports (68360 and 68,302) is Cisco Systems, 3Com, Ascend, and communications equipment used in Marconi.
技術の進歩によって 68000 がスタンドアロンのコンピュータ市場では使われなくなると、一般消費者向けの各種機器の組み込み用途に使われるようになった。 68000 by technological advances in the computer market is no longer used stand-alone, came to be used in a variety of embedded applications for consumer devices. コンピュータゲームメーカーはアーケードゲームや家庭用ゲーム機などに 68000 を使った。 Game makers computers and game consoles and home game arcade with 68000. アタリが 1983年 Food Fight というアーケードゲームで 68000 を使ったのが最初である。 Food Fight at the Atari 1983 is the first arcade game that used a 68000. 1980年代後半から1990年代初めごろまでアーケードゲーム基板ではメインCPUとして 68000 がよく使われた。 Board Games 1990 in the late 1980s until the early arcade's main CPU 68000 was used as well. 例えば、 セガのセガ・システム16 、 カプコンのCPS-1とCPS-2 、 SNKのネオジオなどである。 For example, System 16 Sega Sega, the Capcom CPS-1 and CPS-2, SNK is and NeoGeo's. アーケードゲームでは68000を2個使ったり、場合によっては3個使う場合もあった。 68000 arcade game with two pieces or, in some cases even if you had to use three pieces. 1990年代、アーケードゲームのメインCPUはもっと高性能なプロセッサが使われるようになっていったが、68000 はサウンドコントローラなどとして使われ続けた。 In the 1990s, the main CPU is an arcade game that became more powerful processor is used, such as 68000 is used as a sound controller continued.
家庭用ゲーム機で 68000 がメインCPUとして使われた例としては、 メガドライブ 、 メガCD 、家庭用のネオジオがある。 In the main game consoles CPU 68000 was used as an example, the drive mega, mega CD, there is a Neo Geo for the home. その後のゲーム機でも、 セガサターンは 68000 をサウンドコントローラとして使用し、 Atari Jaguarでもグラフィックスやサウンドチップの制御に使われた。 Later in the game, Sega Saturn controller is used as a sound 68000, Atari Jaguar was used to control the graphics and sound chips well.
テキサス・インスツルメンツは 68000 をハイエンドのグラフ表示電卓 、 TI-89 、 TI-92などで使っている。 Texas Instruments Graphing Calculator is 68000 end to, TI-89, TI-92 and use that. これらの初期のバージョンでは スタティック版 68EC000 コアを使った特殊なマイクロコントローラだった。 These early versions were 68EC000 static version using a special micro-controller core. 後のバージョンでは標準の MC68SEC000 プロセッサが使われている。 Later versions of the standard being used MC68SEC000 processor.
32ビットのデータレジスタを8個、また、32ビットのアドレスレジスタを8個持つ、 CISCアーキテクチャのマイクロプロセッサである。 Eight-bit data register 32, and 32-bit address registers with eight pieces, CISC microprocessor architecture. 8ビットのMC6800シリーズとは互換性を持たない。 8-bit and MC6800 series is not compatible.
MC68000は、 DECのVAXを参考にしたと言われる、 直交性 (対称性)の高いきれいな命令体系をもつ。 The MC68000, DEC's VAX is said to have a reference, with orthogonal (of symmetry) with systematic instruction pretty high.
外部バス幅はアドレスバス24ビット、データバス16ビットで、発表当初のクロック周波数は4~16MHz。 Bus Width 24-bit external address bus, 16-bit data bus frequency of its original clock is 4 ~ 16MHz. 約68,000個のトランジスタからなるN-MOS 集積回路であり、当初は巨大な64ピンDIPパッケージ 、後にPGAパッケージでも供給された。 Consisting of approximately 68,000 transistors in each N-MOS circuit is integrated, originally a huge 64-pin DIP package, after the PGA was also supplied in the package.
MC68000自体は16ビットCPUだが、68000シリーズはもともと32ビットプロセッサとして設計されており、 レジスタとアドレスのデータ長は等しく32ビットだった。 MC68000 is a 16-bit CPU itself, but the original 68000 series has been designed as a 32-bit processors, data length and the address was a 32-bit registers are equal. 32ビットのアドレス空間は4Gバイトだが、当時の技術では、4Gバイトのアドレス空間は使う可能性が無いとされ、下位24ビットの16Mバイトの記憶空間を管理する事が出来た。 32-bit address space is 4G bytes, but, at the time technology, 4G bytes of address space is not possible to use the lower 24 bits of things that made 16M bytes of storage space to manage. 最初に理想とする32ビットアーキテクチャを決めておき、その時々で利用できる技術で実現可能な機能から順に実装するという方式をとっていたため、無理なく上位互換性が確保できた。 Ideal first and decided to keep 32-bit architecture, because at that time we were taking the scheme in order to implement features that can be achieved by available technology, we ensure compatibility reasonably high.
プログラムアドレス空間とデータアドレス空間を分離しているハーバード・アーキテクチャを採用していた。 Harvard architecture has had a space to separate data address space and address program. しかし、 アドレス空間の分離におけるメモリ管理の複雑化、またハーバード・アーキテクチャを採用したオペレーティングシステム (OS)があまり供給されなかった事から、多くの実装ではプログラムアドレス空間とデータアドレス空間を分離しない設計が採用される場合が殆どだった。 But of administrative complexity in the memory space separate address, operating system employing a Harvard architecture and Harbor (OS) from the very things that were not provided, the implementation of the design is not much separating the program address space and data address space If that were the most used.
スタックがOS用とアプリケーション用に二つあり、特権モード(スーパバイザモード)と、ユーザモードの2つの特権レベルを持つなど、当初からOSを搭載することを前提に設計されている。 OS stack is available for the two applications and one for the privileged mode (supervisor) and user mode and with two levels of the two privileges from the original OS that is designed with that premise.
もっとも、ユーザーモードで動作するプログラムの互換性は68000から68060までほぼ完全に保たれているが、スーパバイザモードでの動作についてはこのモードで動作するOSが差異を吸収することを前提として、世代ごとに改良や変更が加えられており、特にスタックポインタの実装とその挙動には世代間での相違が多い。 However, programs that run in compatibility mode the user is kept 68000-68060 almost entirely up to the behavior of the supervisor is assumed to operate in this mode as the OS that you absorb the difference, and each generation Improvements and changes have been made to implement the behavior and stack pointer are many differences, especially between generations. このため、アプリケーションソフトがスーパバイザモードへ移行することを容認する原始的な実装のOSの場合、このスーパバイザモードへの移行後の動作非互換が原因で、この種の動作を行うプログラムが正常動作しないケースが存在する。 Therefore, the implementation of the primitive to allow a supervisor to migrate application software OS, because of the incompatibility of work after the transition to this supervisor, a program that does not work properly in this kind of work case exists.
68000は16ビットのALUを持っているのに対して、アドレスは常に32ビットで扱われ、フラットな32ビットアドレス空間を扱えた。 68000 is a 16-bit ALU to have to address is always treated in 32-bit flat扱Eta 32-bit address space. このことは非常に重要な点である。 This is a very important point. 比較すると、 8086は20ビットのアドレス空間を持っていたが、16ビット(64キロバイト)をひとつの単位として扱い、セグメントレジスタの操作を必要とした。 In comparison, 8086 had a 20-bit address space, 16-bit (64 KB) treated as a single unit, which requires the operation of the segment register. 68000ではこれを16ビットのALUで実現していた。 In this 16-bit 68000 ALU has been achieved. 通常の操作では、ふたつの16ビットALUを接続してアドレスを処理して、3つめのALUが16ビットの演算を行った。 In normal operation, two 16-bit ALU and address of the connection process, and a third operator made the 16-bit ALU. 例えば、32ビットのアドレスレジスタのポストインクリメント(そのアドレスにアクセスした後、アドレスをインクリメント (増加)する命令)「ADD.W (An)+,Dn」は速度低下なしに実現されている。 For example, post-increment of 32-bit address register (address after accessing it, increment the address (increase) in order to) "ADD.W (An) +, Dn" has been achieved without slowing down.
したがって、16ビットCPUとして始まってはいるが、68000の命令セットは32ビットアーキテクチャになっている。 Therefore, starting as a 16-bit CPU is the 68000 instruction set is a 32-bit architecture. アドレッシングの問題はハードウェアの問題ではなく、常にアーキテクチャの問題である(命令セットの問題、つまり互換性の問題)。 Addressing issues rather than hardware problem, always a matter of architecture (instruction set issues, compatibility issues that is). 後継の68020は32ビットのALUと32ビットのデータバスを持っていたが、68000用のソフトウェアをほぼ変更することなく32ビットの速度で実行できた。 68020 is the successor to 32-bit ALU and 32-bit data bus that had, almost without having to change 68000 for software could run at speeds of 32 bits.
しかし、ソフトウェアの非互換は全くなかったわけではない。 However, non-compatible software is not at all did not. プログラマはアドレスビットの使われていない部分(24~31)にデータを格納することがあった。 Programmers unused portion of the address bits (24-31) were data to be stored. 例えば、 LISPなどでポインタの指すオブジェクトの種類をその部分で表したり、 ガベージコレクション用のフラグにしたりした。 For example, LISP or represented by that part of the object pointed by the pointer type, such as the flag of or for garbage collection. そのようなコードをより広いアドレスバスを持つマシンで実行するとバスエラーが発生した。 Bus error occurs when you run on machines with a wider address bus code like that. Macintoshでは8Mバイト以上のRAMを搭載する際にソフトウェアのアップグレードが必要だった。 Over 8M bytes of RAM on Macintosh software upgrade was needed when equipped. もちろん、多くのアプリケーションは将来を見越して書かれており、問題は発生しなかった。 Of course, many applications are written in anticipation of the future, the problem did not occur.
市場の広がりをカバーするため、ふたつのバリエーションが設計された。 To cover the breadth of the market was designed two variations. MC68000は24ビットアドレスバスと16ビットデータバスを持つ。 MC68000 is a 16-bit address bus and 24-bit data bus. MC68008は20ビットアドレスバス(DIP/48ピン版では20ビット。後のPLCC/52ピン版では22ビット)と8ビットデータバスを持つ。 MC68008 20-bit address bus (DIP/48 pin 20-bit version. PLCC/52 after pin 22-bit version) and a 8-bit data bus. シンクレア QLで使用された。 Sinclair QL was used.
8本の汎用データレジスタ (D0-D7)と8本のアドレスレジスタ(A0-A7)を持つ。 Data register eight general-purpose (D0-D7) and 8 of the book address register (A0-A7) with. 最後のアドレスレジスタ(A7)は通常のスタックポインタ (SP)として使われる。 Last address register (A7) is a stack pointer in the normal (SP) is used as. これは色々な意味でちょうどよいレジスタ本数である。 Quantity various registers which are just good sense. 68000が割り込みにすばやく応答するためには十分少ない本数であり(15〜16本をセーブすればよい)、高速な計算をするためには十分多い本数でもある。 68000 in order to respond quickly to interrupts Quantity is low enough (15-16 How do I save the book), in order to speed calculation is also sufficiently large Quantity.
レジスタが二種類存在することは悩ましいことだが、実際には使いづらいというほどではない。 That there are two registers that are annoying but, in practice it's rather hard to use is not enough. このようにすることによって、アドレスレジスタ用の別の実行ユニットを用意して内部の並列性を高めたと言われている。 By this way, which is said to enhance the parallelism of the internal execution units provide another address register for.
68000ファミリでの整数の表現はビッグ・エンディアンである。 68000 integer representation of the family is endian big.
68000の比較命令、算術演算命令、 論理演算命令は実行結果をステータスレジスタに反映させ、後で条件ジャンプ命令でそれを使えるようになっている。 Comparison of 68000 instructions, arithmetic instructions, arithmetic instructions will be logical status register reflects the results of running, it is to use a conditional jump instruction later. ステータスレジスタのビットには、"Z"ero(ゼロ)、"C"arry(キャリー)、o"V"erflow(オーバーフロー)、eXtend、そして"N"egative(ネガティブ)がある。 The status register bit, "Z" ero (zero), "C" arry (Carrie), o "V" erflow (overflow), eXtend, and "N" egative (negative) there. eXtendビットはCarryビットと分離されている。 eXtend bit Carry bit and have separated. eXtendとCarryは、シフト/算術演算/論理演算命令の桁上がり結果を保持するが、eXtendビットはより多バイトの演算を実現するために使い、Carryビットは処理の流れを制御するのに用いる。 eXtend and Carry, the shift / arithmetic / digits raised to hold the result of a logical instruction, eXtend bit is used to achieve a more multi-byte arithmetic, Carry bit is used to control the flow of the process.
68000の設計者はアセンブリ言語が直交性を持つよう注意を払った。 68000 designers of attention paid to have the orthogonal assembly language. つまり、命令は操作とアドレッシングモードに分けられ、ほとんど全てのアドレッシングモードがほとんど全ての命令で使えるようになっている。 In other words, the instruction is divided mode addressing operation and has been able to use almost all the orders of almost any addressing mode. 多くのプログラマは " ほぼ " 直交性があるのを嫌い、他の人々はその試みを喜んだ。 Many programmers are "almost" there is dislike of orthogonality, others were delighted to try it.
ビットレベルで見ると、命令のオペコードの値は必ずしも現状の通りである必然性はない。 Looking at the bit level, the value of the instruction opcode as necessity is not always present. このことは、ある意味でよい妥協点だった。 This was a good compromise in a sense. 真の直交性のあるマシンと同等の利便性を得ると同時にCPU設計者はオペコード表を自由に埋めることができた。 At the same time get the same machine with the convenience of a true orthogonal CPU designers were able to freely fill the opcode table.
最小命令サイズは当時としては大きい16ビットである。 At that time, no minimum order size is large as 16 bits. さらに多くの命令やアドレッシングモードは追加のワードでアドレスやアドレスモードビット等を表現する。 More instructions and addressing modes to address and express the words and additional Adoresumodobitto.
多くの設計者はMC68000アーキテクチャはコストに見合うコンパクトなコードを実現していると信じている(特にコンパイラがコードを生成した場合)。 Many designers believe that the MC68000 architecture to achieve compact code worth the cost (especially if the compiler generated code). このコンパクトなコードについての信念がアーキテクチャの長命と多くの採用をもたらした。 Led to the adoption of long-lived and many of the beliefs about the architecture of this compact code.
多くの組み込み制御システムの設計者はメモリのコストに敏感である。 Many designers of embedded control system is sensitive to the cost of memory.
この信念または特長は、同様にコンパクトなARMアーキテクチャのThumb命令セットが登場するまで、多くの68000命令セット(のCPU)の採用をもたらし続けた。 This belief or features, such as compact architecture ARM Thumb instruction set until the advent of many of the 68000 instruction set (CPU) continued to bring the adoption.
このCPUと他の全ファミリは二段階の特権レベルを実装している。 All this CPU and other family has implemented phase two privilege levels. ユーザモードでは割り込みレベル制御以外はアクセス可能である。 User mode will not be accessible at interrupt level control. スーパバイザ特権では全てにアクセスできる。 The supervisor has access to all privileges. 割り込みが発生するとスーパバイザモードに移行する。 Supervisor to move to an interrupt occurs. スーパバイザビットはステータスレジスタに格納され、ユーザプログラムからも見える。 Supervisor bit is stored in the status register is also visible from the user program.
このシステムでの真の利点は、スーパバイザレベル用に分離したスタックポインタを用意している点である。 True benefits of this system is the fact that we are prepared for separate stack pointer supervisor level. これによりマルチタスクのシステムでタスク毎のスタックを小さくすることができる。 Which can reduce the stack of each task in the system by which a multi-tasking. なぜなら、割り込みの際のレジスタやステータスをセーブするフレームを考慮してスタック領域を用意する必要がないからである。 Because, it is not necessary to provide a frame of stack space to consider when you save the status register and interrupts.
ただし、UNIXの実装方法ではカーネルモード(つまりスーパバイザモード)で使用するスタックは実行中のユーザプロセス毎に用意するようになっているため、スタック領域を小さくできるというのは褒めすぎである。 However, UNIX is the implementation of the kernel-mode (ie supervisor) stack is used in order to prepare for each user process is running, that can stack space is too small a compliment.
68000は8つの割り込みレベルを持つ。 68000 8 with a single interrupt level. レベル0から7まで厳密に優先順位が決まっている。 Level 0-7 is fixed closely to the priorities. 番号が大きい割り込みが番号の小さい割り込みに対して割り込むことが出来る。 Interrupt can be interrupted for a number of small-large interrupt numbers. ステータスレジスタには現在の割り込みレベルを特権命令でセットすることができ、これにより低いレベルの割り込みをブロックする。 The status register can be set in order to interrupt the current level of privilege to block the low-level interrupt it. レベル7はマスクすることができないため、NMI(Non-Maskable Interrupt)とも言う。 Level 7 can not be masked, NMI (Non-Maskable Interrupt) also says. レベル0は他の全てのレベルが割り込むことができる。 Level 0 can interrupt all other levels. レベルはステータスレジスタに格納され、ユーザレベルプログラムからも見ることが出来る。 Level is stored in the status register, can be seen from the user-level.
ハードウェア割り込みは3本の信号によってCPUに伝えられ、この3本の値がペンディング中の最も高い割り込みレベルにエンコードされる。 This hardware interrupt signal by the CPU 3 is reported to be encoded in the three highest pending interrupt level of the book value. 別途割り込みをエンコードするための割り込みコントローラが必要である。 Interrupt controller is required to encode a separate interrupts. ただし、割り込み発生源が三つ以下のシステムでは、各割り込みを三本の信号線にそれぞれつなぐことで割り込みコントローラを省略できる。 However, the following three sources of system interrupt, the interrupt controller can be omitted by connecting each of the three signal lines for each interrupt. ただし、割り込みレベルと割り込みの対応が単純ではないためソフトウェアでの処理が複雑になる。 However, the software becomes more complex because it is not a simple process in the interrupt level and interrupt response. 割り込みコントローラは74LS148のような単純なエンコーダでもよいし、VLSIの周辺チップでもよい。 74LS148 interrupt controller and may be as simple as the encoder, VLSI chip may be around. 例えばMC68901は、割り込み制御だけでなくUART (シリアル)、タイマー、パラレルI/Oを備えている。 MC68901 example, as well as interrupt control UART (serial), timers, parallel I / O is equipped with.
例外テーブル(割り込みベクターテーブル)はアドレス0番地から1023番地まで固定で置かれ、256個の32ビットアドレスを表す。 Table exceptions (Bekutateburu interrupt) is located at address 0 to address 1023 to a fixed address, 256 represents a 32-bit address. 最初のベクターは初期スタックアドレスであり、二番目のベクターは初期コードアドレスである。 The first vector is the initial stack address, the second vector is the address of the initial code. 3番から15番のベクターは各種エラー処理ルーチンのアドレスである。 No. 3 from No. 15 is the address of vector of various error-handling routine. エラーの種類としてはバスエラー、アドレスエラー、不正命令、 ゼロによる割り算 、CHK/CHK2命令ベクター、特権違反、そして予約されたベクター(後にline 1010エミュレータ、line 1111エミュレータ、ハードウェアブレークポイントに割り当てられた)がある。 Error as the type of bus error address error, illegal instruction, division by zero, CHK/CHK2 vector instruction, privilege violation, and the vector of the reservation (after line 1010 emulator, line 1111 emulator, assigned to the hardware breakpoints ) there. ベクター24から実際の割り込みに対応する。 Interrupt vector corresponding to the actual 24. ハードウェアに対応しない擬似割り込み、レベル1から7のベクター、15個のTRAPベクター、いくつかの予約されたベクター、ユーザ定義ベクターの順番で並んでいる。 Pseudo-interrupt hardware does not correspond to the level of 1-7 Vector, of 15 TRAP vectors, some vectors reserved, are now in the order of user-defined vector.
リセットされたとき、少なくともスタートコードアドレスのベクターには正しいアドレスが入っている必要があるので、多くのシステムは不揮発メモリ(つまりROM )を持っていて、0番地に配置している。 When the reset vector address because you need at least the start code that contains the correct addresses, many systems are non-volatile memory (ie ROM) that they have a place that address 0. そのROMにはベクターテーブルとブートストラップコードが入っている。 ROM that is included in the bootstrap and Bekutateburu. しかし、汎用システムでは動作中にベクターを書き換えられるのが望ましい。 However, general-purpose system it is desirable to be rewritten in a vector operation. これを実現するため、ROM上のベクターがRAM上のジャンプテーブルを指すようにするか、バンク切り替えで動作中に0番地付近の配置をROMからRAM変更する。 To achieve this, ROM on a vector of RAM or to point to jump on the table, while working at a place near the bank switch address 0 to change from ROM to RAM.
68000はPopekとGoldbergの仮想化要件 (virtualization requirements for full processor virtualization)を満たしていない。 68000 is the Popek and Goldberg virtualization requirements (virtualization requirements for full processor virtualization) is not satisfied. というのは、"MOVE from SR" 命令が特権命令でないため、ユーザモードから特権ステータスが見えてしまうからである。 That is, "MOVE from SR" non-privileged instruction to the instruction, because they see the user mode from privileged status. この問題は後述する仮想記憶サポートの問題とともに後のMC68010で改善された。 This issue after issue with virtual memory support improved later in the MC68010. "MOVE from SR" 命令は特権命令となり、ユーザモードのソフトウェア用に"MOVE from CCR"命令を追加した。 "MOVE from SR" became a privileged instruction instruction, the user-mode software for the "MOVE from CCR" added the statement. ユーザモードで "MOVE from SR" 命令を使った場合、トラップが発生してOS側でエミュレートすることも可能である。 User mode "MOVE from SR" if you use the instruction trap occurs and it is also possible to emulate the OS side.
MC68000 は仕様上、 仮想記憶および仮想機械を考慮していなかった。 MC68000 is the specification did not take into account the virtual storage and virtual machine.
仮想記憶を実現するには、命令実行中のメモリ・アクセスを中断し、他の処理を行ってから、中断したメモリ・アクセスを再開する必要がある。 To implement virtual memory, memory access and interrupt the running order from the other in the process, it is necessary to resume the interrupted memory access. このような処理はページフォールトが発生したときにおきる。 Such treatment caused a page fault when you get up. MC68000は割り込みに際して命令の再実行に必要な情報を待避せず、このような場合のための命令中断・再実行機能を実装しなかったため、仮想記憶を MC68000 単独で実現できなかった。 MC68000 will not escape the information they need to re-run when the interrupt instruction to implement the functionality did not run for re-suspended if such instructions, the MC68000 virtual memory could not be achieved alone.
しかし、バス・アクセスのリラン(Re-Run)機能を搭載していた。 However, bus access Riran (Re-Run) had features. これは、バス・アクセスを中断し、バスをスリーステートにして開放した後、後に中断したアクセスを再実行する機能である。 This is access to the bus stop, after opening the three-state bus is the ability to access re-run after the break.
MC68000で仮想記憶を実現するために、リラン時にページスワップを行うための68000を積んだデュアルプロセッサのコンピュータも存在した。 MC68000 to achieve a virtual memory, page swapping to do when there are 68000 Riran loaded with dual-processor computer. 仮想記憶の実装は以下のとおりである。 Virtual memory is implemented as follows. メモリ管理ハードウェアによってページフォールトを検出する。 To detect the fault page by hardware memory management. すると、ハードウェアによってメインのCPUがバスからいったん切り離される。 Then, the main CPU by hardware once it is detached from the bus. この操作は信号線を2本操作することで行われる。 This operation is done by two signal lines to this operation. このメインのCPUが切り離された状態で、もうひとつのCPUでハードディスクやメモリやメモリ管理情報にアクセスして、適切なページの入れ替え作業を実行する。 This cut off the main CPU, and another CPU to access the hard disk and memory and memory management information, to perform the replacement work of the appropriate page. その後で、メインのCPUにバスサイクルの再実行を行なわせれば、正しいデータをメモリから読み出すことができる。 Then, the main CPU cycles if you ask the bus made a re-run, you can retrieve the correct data from memory.
メインのCPUは、ページの入れ替え作業の間は何もせずにただ停止しているだけなので、コンテキストを保存したり復帰したりする必要は無い。 The main CPU is swapped between the pages of the work that we have only just stopped without any need to return or to save the context or not. またページの入れ替えを行なうCPUは原理的には何でもかまわない。 You do the replacement of the CPU is in principle and will do. しかし、MC68000をメインのCPUとしたコンピュータのバスに接続しやすいのはMC68000なので、補助のCPUにもMC68000を採用すればハードウェアが簡単になることから、MC68000を2個搭載する装置がよく見られた。 However, MC68000 from the main CPU of the computer easier to connect to the bus and so MC68000, MC68000 auxiliary CPU to the hardware that would make it easier to adopt, MC68000 device is equipped with two common pieces was.
補助のCPUはページフォールトが発生するまでは停止させられていて、メインのCPUがバスから切り離されてから活動状態になる。 Auxiliary CPU page fault occurs until they are forced to stop, the main CPU becomes active after being disconnected from the bus. 補助CPUがページを入れ替え終わって、再び停止状態になってから、メインのCPUのバスサイクル再実行を起動するので、メモリ・スワップに関する限り二つのCPUが同時に動作することは無い。 You have finished replacing the CPU auxiliary, is suspended again from the main CPU bus cycle so you start running again, and the two can work as far as memory and CPU swap is not at the same time.
以上のようなMC68000のデュアル・プロセッサによる仮想記憶を実現したコンピュータとしてはアポロコンピュータのDomainが有名である。 Such as the MC68000 or more computers with dual processors provide virtual memory of the computer are famous Apollo Domain. 同社の実装ではページスワップを担うスレーブ・プロセッサは、通常時はグラフィックス・プロセッサとして動作し、必要に応じてマスターのページ・スワップ要求に応じた。 The company is responsible for the implementation of the slave processor swap page, usually when running a graphics processor, according to the requirements of the master page if necessary swap.
この問題は後のMC68010で解決された。 This problem was resolved after the MC68010. バスエラーとアドレスエラーが発生した場合、大量の内部状態をスーパバイザスタックに格納することにより、元の処理に復帰できるようになった。 If a bus error and address error occurs, the supervisor stack to store large amounts of internal state, can now return to the original processing.
基本的なアドレッシングモードは以下の通りである。 The basic addressing modes are as follows.
追加:ステータスレジスタへのアクセス。 Added: access to the status register. 後のモデルでは他の特殊レジスタも同様。 Later models are also other special registers.
多くの命令にはドットに続くサフィックスが付き、処理単位を8ビット (".b")、 16ビット (".w")、32ビット (".l")で指定する。 Many orders with a dot followed by a suffix, the 8-bit processing unit ( ". B"), 16-bit ( ". W"), 32-bit ( ". L") to specify.
多くの命令は入力(ソース)と出力(デスティネーション)を持ち、デスティネーションに変更を加える。 Many instruction input (source) and output (destination) have to make changes to the destination. 主な命令は以下の通りである。 The main statement is as follows.
