For faster navigation, this Iframe is preloading the Wikiwand page for Motorola 68000 processzorcsalád.

Motorola 68000 processzorcsalád

A Motorola 680x0/m68000/68000 ill. m68k egy 32 bites CISC processzorcsalád. Ezek a processzorok igen népszerűek voltak az 1980-as években és az 1990-es évek elején a személyi számítógépek és a munkaállomások körében, a sorozat egy ideig az Intel x86 processzorcsaládjának legerősebb konkurense volt. Korai személyi számítógépekben, Unix munkaállomásokban, videójáték-konzolokban használták, származtatott változataikat PDA-kban, beágyazott rendszerekben és vezérlőegységekben továbbra is használják (ld. Felhasználás).

A család tagjai

[szerkesztés]

A fejlesztés állomásai

[szerkesztés]

1979-ben jelent meg, az m68k sorozat első tagja. Eredetileg HMOS technológiával készült. „16/32 bitesként” emlegetik: belsőleg 32 bites, külső adatbusza 16 bites, címbusza 24 bites, 1979-től 1982-ig 4, 6, 8, 10, 12,5 és 16,67 MHz órajelű változatai készültek. Jellemzői:

  • 8 32 bites adatregiszter, 9 32 bites címregiszter, 32 bites programszámláló, 16 bites állapotregiszter.
  • 2 privilegizációs szint (felhasználói és szupervizor mód)
  • 7 szintű megszakítási rendszer
  • 256 megszakítási vektor, kivételkezelés, csapda (trap) utasítások
  • I/O portok: nincsenek

1982-ben jelent meg; az eredeti 68000-es változata, azzal teljesen tárgykód-kompatibilis, de lábkiosztása más (nem pin-kompatibilis). 32 bites processzor, 8 bites külső adatbusszal, címbusza 20 vagy 22 bites az egyes változatokban.[1] Mivel az adatbusz fele olyan széles, mint a 68000-ben, az utasításlehívás több ciklust igényelt, ezért ez a processzor azonos órajelen lassabb volt, mint a 68000. A 8 bites Sinclair QL mikrogépben használták.

  • max. órajel: 16,67 MHz
  • max. memória: 4 MiB RAM
  • I/O portok: nincsenek

1982-ben jelent meg,[2] 32 bites CPU, 16 bites adatbusszal. A 68000 javított változata, azzal lábkompatibilis. A magot és a mikrokódot optimalizálták, azonos órajelen 10-20%-kal gyorsabb a 68000-nál. Felkészítették a virtuális memória kezelésére is, a "MOVE from SR" utasítás privilegizált lett, új utasításokat is kapott, így nem 100%-ban tárgykód-kompatibilis az eredeti 68000-rel.[3]

  • Max. órajel: 16 MHz
  • Virtuális memória támogatás (újraindítható utasítások).
  • 'ciklikus mód' (loop mode) a gyorsabb string és memória könyvtári primitíveknek.
  • Új Vector Base Register (VBR): a megszakítási vektor táblázat bárhol lehet a memóriában.
  • Új blokk-adatmozgató utasítás: MOVES + SFC, DFC regiszterek.

A Motorola 68012 (MC68012) egy 68010-kompatibilis processzor, 31 bitesre kiterjesztett címbusszal, virtuálismemória- és multiprocesszoros támogatással. 1982 és 1984 között jelent meg.[4] A 68010 és a 68020 között áll.

  • 31 bites címbusz, közvetlenül címezhető memóriaterület: 2 GiB
  • RMC buszvezérlő vezérlő kimenet a virtuális memória és multiprocesszoros működés támogatásához
  • Órajel: 8 - 12,5 MHz között.

1984-ben jelent meg,[5] a processzorcsalád második generációjának első tagja. Kompatibilis a család korábbi tagjaival. Címbuszát 32 bitesre bővítették, így 4 GiB memóriát címezhetett. Az adatbusza is 32 bites, de képes 8 és 16 bites adatbuszt használó módban is működni. Új utasításokkal és címzési módokkal bővítették. Megjelent benne a Motorola 68881 és 68882 matematikai koprocesszorok és a MC68851 PMMU (lapozó memóriakezelő) hardveres támogatása, a multiprocesszoros támogatás, a magba futószalag és utasítás-cache került. Multiprocesszoros konfigurációban összesen 8 db egység csatlakozhat a buszra, ezek közül bármelyik lehet FPU vagy CPU, de csak egyetlen MMU lehet; a processzorok a rendszerben aszinkron módon működnek.

  • 32 bites címbusz és ALU.
  • 3 fokozatú futószalag.
  • 256 byte-os utasítás-gyorsítótár.
  • Korlátozás nélküli szó és hosszúszó adathozzáférés (nem kell adatstruktúra-igazítás).
  • 8-szoros multiprocesszálás lehetőség.
  • Szélesebb szorzó (32×32 → 64 bit) és osztó (64÷32 → 32 bites hányados és 32 bites maradék) és bitmezőkezelő utasítások
  • Új címzési módok: skálázott indexelt, újabb indirekt memóriacímzés, nagyobb eltolások.
  • Az olcsóbb 'EC' jelű (pl. MC68EC020) chipek 24 bites címbusszal rendelkeztek.[6]

1987-ben jelent meg, a második generációs 68020 felújított változata. Újítások: belső 256 bájtos utasítás-cache és 256 bájtos adat-cache; chipre integrált MMU; 68881 és a gyorsabb 68882 használható külső matematikai koprocesszorként.

  • Elválasztott utasítás- és adat-cache, mindkettő 256 byte-os.
  • Chipre integrált MMU (68851).
  • Az olcsóbb 'EC' jelű chipekben nincs MMU.

1989-ben jelent meg a Motorola 68040, a harmadik generáció indító tagja. Chipre integrált MMU-t és beépített FPU-t is tartalmazott. Az adat- és az utasításcache méretét 4 KiB-ra növelték, 6 fokozatú futószalag került bele. A beépített FPU nem teljes értékű, bizonyos utasítások hiányoznak belőle, ezeket szoftveresen emulálják (operációs rendszerbe integrált integrált FPSP csomag). A 68040 ugyan jelentősen gyorsabb volt riválisánál, az Intel 486-nál, azonban melegedési problémákkal küzdött, ezért órajelét 40 MHz-en maximálták.

  • Az adat- és az utasításcache mérete egyaránt 4 KiB.
  • 6 fokozatú futószalag (pipeline).
  • Az FPU-ból hiányoznak az IEEE transzcendens függvények lehetőségei.
  • Az FPU emuláció a 2E71M és későbbi chip-revíziókban működik.
  • Olcsó LC jelű chipek (68LC040): nincs beépített FPU.
  • Olcsó EC jelű chipek (68EC040): nincs beépített FPU és MMU.

1994-ben jelent meg a Motorola 68060 (MC68060) processzor, amit a 68040 utódjaként mutattak be. Ez volt a m68k család utolsó tagja. Sok hasonlóságot mutat az Intel Pentium / P5 mikroarchitektúrával: mindkettő sorrendi (in-order) végrehajtású szuperskalár, kettős futószalagot tartalmazó konfiguráció, utasítás-dekóderrel (ami az utasításokat egyszerűbb részutasításokra konvertálja a végrehajtás előtt). A 68060-ban az utasítás- és adatcache méretét 8 KiB-ra növelték, fejlett elágazás-előrejelző (branch prediction) egységgel látták el, belső utasítás-végrehajtó egysége RISC típusú.[7] A 68060 FPU nem futószalagos, részleges, a hiányzó utasításokat emulációval pótolják: ezek miatt a lebegőpontos végrehajtás 3-szoros időigényű a Pentiuméhoz képest, más téren azonban gyorsabb, optimalizált utasításainak köszönhetően. 50-től 75 MHz-ig terjedő órajelű változatai készültek.

  • Adat- és az utasításcache mérete: egyaránt 8 KiB
  • Órajel: 50, 60, 66, 75 MHz
  • Kettős 4 fokozatú futószalag
  • Kétciklusos integer szorzóegység
  • Elágazás-előrejelzés (branch prediction)
  • Kettős utasítás-futószalag
  • Utasítások a címszámító egységben (address generation unit, AGU), az ALU előtt két ciklussal szolgáltatják az eredményt.
  • Olcsó LC jelű chipek: nincs beépített FPU.
  • Olcsó EC jelű chipek: nincs beépített FPU és MMU.

68050 és 68070

[szerkesztés]

Nem létezett 68050 számú változat, bár volt ilyen projekt a Motorolánál. A 680x0 sorozatban a páratlan-x számú verziók mindig az előző páros-x verziókban jelentkezett hibák javítására jöttek létre, tehát várható volt, hogy a 68050-ben csökken a 68040-eshez képest az áramfelvétel és hőtermelés, javul a kivételkezelés az FPU-ban, csökken a csíkszélesség, és az utasítások mikrokódja jobb optimalizálást kap. A várakozások közül sok javítás belekerült a 68060-as processzorba, ezek a tervezési célok között szerepeltek. A 68050 tervezését megszakították, olyan okok miatt, mint pl. már tervezés alatt volt a 68060-as processzor; az Intel 80486 nem haladt olyan ütemben, ahogy azt a Motorola elképzelte; vagy akár az, hogy a 68060-as többet ígérő tervezet volt.

A fentiekhez hasonlóan nem volt a 68060-at követő revízió sem, mivel ekkor a Motorola már feladni készült a 68k és 88k processzorsorozatait az újabb PowerPC üzletág érdekében, így 68070-es sohasem készült.

A Motorola páros tízeseket használt a CPU magok főbb kiadásaihoz, így a 68000, 68020, 68040 és 68060 verziókhoz. A 68010 az előző 68000 egy javított változata volt, kisebb változtatásokkal a magban, és hasonlóan a 68030 is egy felújított 68020 volt néhány javított tulajdonsággal; egyik sem hozott jelentős változást a magban.

Létezett ugyan egy 68070 jelű processzor, a 16/32 bites 68000 egy licencelt változata; valamivel lassúbb volt, egyszerű DMA vezérlőt, I²C hostot és chipre integrált soros portot tartalmazott. A Philips CD-i fő processzoraként alkalmazták. Ezt a processzort a Philips gyártotta és nem tartozott a Motorola 680x0 sorozatába.

Az utolsó generáció

[szerkesztés]

A negyedik generációs 68060 magán viseli az Intel Pentium P5 architektúra több jellemzőjét. A továbbfejlesztés valószínűleg egy Intel P6 mikroarchitektúrára hasonlító processzort eredményezett volna.

Egyéb változatok

[szerkesztés]

A 68000-es processzorsorozat letűnése után a processzorcsaládot bizonyos fokig tovább használták mikrovezérlőkben és beágyazott mikroprocesszor-verziókban. Ezek a felsorolásban az „egyebek” alatt szereplő processzorok: a CPU32, azaz a 68330, a ColdFire, a QUICC és a DragonBall. További felhasználási mód volt a mind a Motorolától, mind a Commodore-tól független gyártó által készített ún. "Amiga gyorsító" (accelerator) kártyákban történő felhasználás is, melyhez újabban a Apollo 68080 processzorokat használják előszeretettel.[8]

A Freescale 683xx (ill. korábban Motorola 683xx) egy kompatibilis mikrokontroller család, amely a Freescale 68000-alapú magra épül. A családban két magot használnak, az egyik a 68EC000, a másik a CPU32.

A CPU32 utasításkészlete hasonlít a 68020 utasításkészletére, de hiányoznak belőle a "bit field" (BFxxx) utasítások, a CALLM, RTM, CAS, CAS2, cpxxx (koprocesszor-) és PACK, UNPK BCD utasítások; ezek helyett a processzor trap utasításokat hajt végre, lehetővé téve az emulációt.[9] Speciális kiegészítő utasításokat is tartalmaz. A mag teljesen statikus, azaz képes változó órajelen működni, a teljes leállástól a maximális órajelig (25 vagy 33 MHz); tervezési szempontja a minimális tranzisztorszám melletti maximális teljesítmény volt. A mag mellett egyéb kiegészítő egységeket is tartalmazhat, akár hálózati interfész-processzort v. Ethernet-vezérlőt, az egylapkás rendszerekhez (SoC) hasonlóan.

Motorola DragonBall EZ processzor

Az 1995-ben megjelent Motorola/Freescale Semiconductor DragonBall avagy MC68328 egy 68000-alapú 32 bites mikrovezérlő, ill. minden szükséges elemet tartalmazó egychipes számítógép. Adat- és címbusza 32 bites, bár a címbuszt egyes modellekben 24 bitesre korlátozták. Kis fogyasztású beágyazott rendszerekbe és PDA-kba szánták, pl. a korai Palm PDA-k ilyen chipekre épültek, míg a Palm OS 5-től kezdve kiszorította azokat az ARM-alapú Texas és Intel processzorok támogatása. Nem támogatja a 68020+ utasítások többségét. FPU-t nem, és csak minimális képességű MMU-t tartalmaz. Korai változataiban nem volt cache, a későbbi modellekbe kisméretű utasítás- és adatcache-t is integráltak.

Az 1994-ben indult Freescale ColdFire processzorcsalád alapjait szintén a Motorola 68000 processzorcsalád ill. architektúra képezi. A ColdFire chipek beágyazott rendszerekhez készülő mikrovezérlők, tárgykód szinten nem kompatibilisek a 68000 processzorral, a gyártó szerint a ColdFire utasításkészlet „assembly forrás” szintjén kompatibilis azzal. Az eredeti m68k utasításkészlettel összehasonlítva hiányzik belőle pl. a BCD támogatás, több ritkábban használt utasítás és sok utasítás kevesebb címzési módot támogat. A lebegőpontos adatformátum 64 bites, nem pedig 80, mint a 68881/68882 koprocesszoroknál. Az utasítások 16, 32, vagy 48 bitesek lehetnek. A ColdFire architektúrája erős RISC vonásokat mutat, amit a Motorola „változó hosszúságú RISC”-nek (variable-length RISC) nevezett. A processzorok eleinte kis teljesítményűek voltak: az MCF5102 16,67 – 33 MHz órajelű processzor 20 MHz-en 22 MIPS teljesítményt produkált,[10] ez azonban mára megváltozott, a chipek több száz MHz-es órajeleken működnek és belső szerkezetük is sokkal nagyobb teljesítményt biztosít (pl. a 4. generációtól kezdve szuperskalár felépítéssel rendelkeznek). Kiegészítők változatos készletével kaphatók, az architektúrához változatos fejlesztőeszközök érhetők el.

Apollo 68080

[szerkesztés]

Az Apollo által gyártott 68080-as processzor utasításkészlete 100%-ban kompatibilis a Motorola 68000-as processzorcsalád tagjaival, ugyanakkor számos tervezésbeli hiba, hiányosság javításra került és az évek során megjelent újításokat, fejlesztéseket is tartalmazza. A processzor FPGA tokozást kapott, így ennek az architektúrának minden előnyével rendelkezik.[11] A Motorola által gyártott utolsó 68060-as processzor alkalmazásai is gond nélkül futnak rajta. Felhasználása főként a szintén az Apollo által kifejlesztett Vampire gyorsító kártyákban történik, melyek Amiga 500/600/2000/1200 típusokhoz készülnek és pl. egy Amiga 500 esetén a meglévő 68000 processzor eltávolítása után, annak foglalatába csatlakoztathatók.[8] Az Apollo 68080 néhány alapvető jellemzője: Utasítás-futószalag, szuperskalár, elágazásbecslés, optimalizált gyorsítótár felhasználás, beépített FPU, 64bit támogatás.[12]

Architektúra

[szerkesztés]

A 68000-es család felépítése nagymértékben hasonlít a PDP-11 és VAX architektúrákhoz, hasonlóságok pl. az utasításkészlet ortogonalitása és a címzési módok hasonló volta. Egy jelentős eltérés az általános célú regiszterek adat- és címregiszterekre való bontása a 68000-nél.

Az utasításkészlet ortogonalitása lehetővé teszi az utasítások és az operandusok tetszőleges kombinációját, ellentétben pl. az Intel korabeli (8080) és későbbi (x86 család) processzorainál. Ez a tulajdonság megkönnyíti az emberi programozást és egyszerűbbé teszi a kódgenerátorok írását a fordítóprogramokhoz.

A 68000-es utasításkészlet nagy általánosságban a következő csoportokra osztható:

  • Adatmozgató utasítás: MOVE – univerzális adatmozgatás, minden adattípus szinte minden címzési móddal
  • Veremkezelés: ezt az adatmozgató utasítások végzik (nincs pl. "push", "pop"), pl: MOVE.L D0,-(A7) / kivéve a PEA utasítást (push effective address)
  • Aritmetikai utasítások: ADD, SUB, CMP, ADDX, SUBX, MULS, MULU, DIVS, DIVU, NEG, NEGX, EXT, CLR, TST
  • Bitmozgató/léptető utasítások: logikai, aritmetikai léptetések, körkörös léptetés (rotáció, ROR, ROL, ROXL, ROXR), jobbra v. balra
  • Logikai műveletek: AND, OR, NOT, EOR
  • Típuskonverziós utasítások: byteword oda-vissza konverzió
  • Feltétlen és feltételes elágazások: BRA, BCS, BEQ, BNE, BHI, BLO, BMI, BPL stb.
  • Szubrutinhívás és visszatérés: BSR, RTS
  • Megszakításkezelő utasítások
  • Kivételkezelés
  • Nincs az x86 architektúráéhoz hasonló CPUID utasítás, amely a CPU / MMU / FPU jelenlétét és típusát mutatja.

A 68000 processzor architektúráját részletesebben tárgyalja a cikk.

A versenytársak

[szerkesztés]

Desktop piac

[szerkesztés]

Az 1980-as években és az 1990-es évek elején a 68000-est széles körben használták asztali gépekben, ekkor főleg az Intel x86-os architektúrával versengett, amely mára néhány kisebb kivételtől eltekintve (mint a Transmeta VLIW processzorai) szinte egyeduralkodóvá vált az asztali PC piacon. Az első generációs 68000 CPU-k a 16 bites 8086/8088 és 80286 processzorokkal versenyeztek. A második generáció versenytársa a 80386, az első 32 bites x86 processzor volt, a harmadik generációnak a 80486.

A negyedik generáció a Pentium sorozat P5 felépítésével versenyzett, de a negyedik generációs (68060-as) chipeket már messze nem használták olyan széles körben, mint elődeiket, mivel a korábbi 68k piac ekkorra szinte teljesen megszűnt, ahogy az Atari vagy a Next; vagy éppen újabb felépítésre váltott, ahogy a Macintosh és Amiga PowerPC platformra, a Sun SPARC, az SGI pedig MIPS platformra.

Beágyazott rendszerek

[szerkesztés]

Jelenleg több tucat sikeres processzor-architektúra létezik a beágyazott rendszerek piacán. Néhány ezek közül a 68000-nél egyszerűbb, kisebb és olcsóbb mikrovezérlő, azonban bonyolultabbak is akadnak, amelyek összetett programok futtatására képesek. A beágyazott 68k alapú kontrollerek kihívói többek között a PowerPC, ARM, MIPS és SuperH architektúrákon alapuló processzorok.

Felhasználás

[szerkesztés]

A 68000 processzorcsaládot eszközök sokaságában használták, a csúcsteljesítményű Texas Instruments számológépektől (mint pl. a TI-89, TI-92, Voyage 200 típusok) kezdve a Palm Pilot sorozat Palm OS 1.x-től 4.x verziót használó gépeiig, vagy a Space Shuttle sugárzásvédett kritikus vezérlőrendszereiig bezárólag. Jelen voltak az asztali számítógépes felhasználás terén is, pl. Apple Macintosh, Commodore Amiga, Sinclair QL, Atari ST és egyéb gépekben. A 68000-es volt 1980-ban a Sun Microsystems, a NeXT és a Silicon Graphics Unix munkaállomásainak és szervereinek processzora. Létezett CP/M verzió is a 68000-hez, a CP/M-68K, ám ez szinte észrevétlen maradt.

Felhasználásra került lézernyomtatókban, mivel az Adobe PostScript-értelmezőjének első verziói 68000 alapúak voltak; használták az Apple LaserWriter nyomtatók különböző verzióiban és Linotronic fényszedőgépekben. Később az Adobe inkább a RISC processzorokat kezdte preferálni.

Napjainkban az m68k processzorokat használó gépek elértek életciklusuk végére (mint pl. az Atari), vagy más processzorokat használnak (ilyenek pl. a Macintosh, Amiga, Sun és SGI). Ezek a gépek a legnagyobb piaci részesedésüket az 1980-as években érték el, így az operációs rendszerek gyártói nem támogatják ezt a processzortípust. A Linux, NetBSD és OpenBSD rendszerek azonban továbbra is tartalmazzák a 68000 processzortámogatást.

A m68k processzorok videójáték-konzolokban is megtalálhatók, pl. a Sega Mega Drive/Sega Genesis és SNK Neo Geo konzolok CPU-jaként, vagy Sega Saturn konzolokban audio- és I/O-processzor szerepében, vagy az Atari Jaguar konzolban vegyes szerepkörben. Játéktermi játékgép-alaplapok is gyakran 68000-alapúak, pl. a Capcom, SNK és Sega gyártott ilyeneket.

A 68000-ből származtatott mikrovezérlőket használnak az autóiparban, pl. CPU32 és ColdFire mikrovezérlők milliói találhatók autókban motorvezérlőként beépítve.

Összegzés

[szerkesztés]

Az m68k család sokáig tervezési etalont képviselt a processzorok között, és az IBM kompatibilis PC-ken kívül gyakorlatilag mindenféle számítógépben és eszközben, a merevlemez-elektronikától az Unix-munkaállomásokig megtalálhatók voltak. Könnyű programozhatósága, rugalmas felépítése kedveltté tette a tervezők között. Bár a fejlesztés élvonalát ma már más processzorok képviselik, asztali felhasználásban pedig felváltották őket a PowerPC-k, az m68k család öröksége ma is él, többek között a ColdFire processzorokban, és azokban az alternatív gépekben, amelyeket egy-egy m68k alapú rendszer eleganciája, tiszta, átlátható felépítése ihletett.

Jegyzetek

[szerkesztés]
  1. Motorola 68008 microprocessor family (angol nyelven). cpu-world.com, 2003-2010. (Hozzáférés: 2012)
  2. CPU World
  3. Motorola 68010 (MC68010) family (angol nyelven). cpu-world.com, 2003-2010. (Hozzáférés: 2012)
  4. a 68010 1982-es és a 68020 1984-es megjelenése között
  5. Motorola 68020 (angol nyelven). cpu-collection.de, 2003. (Hozzáférés: 2012)
  6. http://www.freescale.com/files/32bit/doc/ref_manual/MC68020UM.pdf Archiválva 2011. augusztus 6-i dátummal a Wayback Machine-ben MC68020 MC68EC020 MICROPROCESSORS USER’S MANUAL, Freescale Semiconductor, Inc., pdf
  7. http://www.physics.ucdavis.edu/Classes/Physics116/68060d.pdf Archiválva 2012. december 7-i dátummal a Wayback Machine-ben, pg. 2.; "Fixed format instructions are dispatched to dual four-stage pipelined RISC operand execution engines ..."
  8. a b Commodore Amiga 500 with 68080 is More than meets the Eye (angol nyelven). amitopia.com , 2018. március 3. [2019. január 21-i dátummal az eredetiből archiválva]. (Hozzáférés: 2019. december 1.)
  9. MOTOROLA, INC., 1990, 1996: CPU32 Reference Manual (angol nyelven) (pdf) pp. 1-4. Freescale, 1997. február 4. [2015. szeptember 24-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012)
  10. Archivált másolat. [2016. március 10-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. augusztus 25.)
  11. Apollo 68080 overview (angol nyelven). apollo-core.com . (Hozzáférés: 2019. december 1.)
  12. Apollo 68080 features (angol nyelven). apollo-core.com . (Hozzáférés: 2019. december 1.)

Fordítás

[szerkesztés]
  • Ez a szócikk részben vagy egészben a Motorola 68000 family című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Források

[szerkesztés]
  • Howe, Dennis, ed. (1983). Free On-Line Dictionary of Computing. Imperial College, London. http://foldoc.org. Hozzáférés ideje: September 4, 2007.

További információk

[szerkesztés]
{{bottomLinkPreText}} {{bottomLinkText}}
Motorola 68000 processzorcsalád
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?