fbpx
Wikipedia

Motorola 68000 series

The Motorola 68000 series (also known as 680x0, m68000, m68k, or 68k) is a family of 32-bit complex instruction set computer (CISC) microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and were the primary competitors of Intel's x86 microprocessors. They were best known as the processors used in the early Apple Macintosh, the Sharp X68000, the Commodore Amiga, the Sinclair QL, the Atari ST, the Sega Genesis (Mega Drive), the Capcom System I (Arcade), the AT&T UNIX PC, the Tandy Model 16/16B/6000, the Sun Microsystems Sun-1, Sun-2 and Sun-3, the NeXT Computer, NeXTcube, NeXTstation, and NeXTcube Turbo, the Texas Instruments TI-89/TI-92 calculators, the Palm Pilot (all models running Palm OS 4.x or earlier) and the Space Shuttle. Although no modern desktop computers are based on processors in the 680x0 series, derivative processors are still widely used in embedded systems.

Motorola 68000 series
DesignerMotorola
Bits32-bit
Introduced1979; 44 years ago (1979)
DesignCISC
BranchingCondition code
EndiannessBig
Registers
  • 8 × 32-bit data registers
  • 7 × 32-bit address registers
  • stack pointer (address register 7)
  • 8 × 80-bit floating-point registers if FP present

Motorola ceased development of the 680x0 series architecture in 1994, replacing it with the PowerPC RISC architecture, which was developed in conjunction with IBM and Apple Computer as part of the AIM alliance.

Family members

Improvement history

68010:

  • Virtual memory support (restartable instructions)
  • 'Loop mode' for faster string and memory library primitives
  • Multiply instruction uses 14 clock ticks less

68020:

  • 32-bit address & arithmetic logic unit (ALU)
  • Three stage pipeline
  • Instruction cache of 256 bytes
  • Unrestricted word and longword data access (see alignment)
  • multiprocessing ability
  • Larger multiply (32×32 -> 64 bits) and divide (64÷32 -> 32 bits quotient and 32 bits remainder) instructions, and bit field manipulations
  • Addressing modes added scaled indexing and another level of indirection
  • Low cost, EC = 24-bit address

68030:

68040:

  • Instruction and data caches of 4 KB each
  • Six stage pipeline
  • On-chip floating-point unit (FPU)
  • FPU lacks IEEE transcendental function ability
  • FPU emulation works with 2E71M and later chip revisions
  • Low cost LC = No FPU
  • Low cost EC = No FPU or MMU

68060:

  • Instruction and data caches of 8 KB each
  • 10 stage pipeline
  • Two cycle integer multiplication unit
  • Branch prediction
  • Dual instruction pipeline
  • Instructions in the address generation unit (AGU) and thereby supply the result two cycles before the ALU
  • Low cost LC = No FPU
  • Low cost EC = No FPU or MMU

Feature map

Year CPU Package Frequency (max) [in MHz] Address bus bits MMU FPU
1979 68000 64-pin dual in-line package (DIP), 68-pin LCC, 68-pin pin grid array (PGA)[1] 8–20 24 - -
1982 68010 64-pin DIP, 68-pin PLCC, 68-pin PGA[2] 8–16.67 24 68451 -
1984 68020 114-pin PGA[3] 12.5–33.33 32 68851 68881
- 68EC020 100-pin Quad Flat Package (QFP)[4] 16.7–25 24 - -
1987 68030 132-pin QFP (max 33 MHz), 128-pin PGA[5] 16–50 32 MMU 68881
68EC030 132-pin QFP, 128-pin PGA 25 32 - 68881
1991 68040 179-pin PGA,[6] 184-pin QFP[7] 20–40 32 MMU FPU
68LC040 PGA,[7] 184-pin QFP[7] 20–33 32 MMU -
68EC040 20–33[7] 32 - -
1994 68060 206-pin PGA[8][9] 50–75 32 MMU FPU
68LC060 206-pin PGA,[8][9] 208-pin QFP[10] 50–75 32 MMU -
68EC060 206-pin PGA[8][9] 50–75 32 - -

Main uses

 
The Sega Genesis used a 68000 clocked at 7.67 MHz as its main CPU.

The 680x0 line of processors has been used in a variety of systems, from modern high-end Texas Instruments calculators (the TI-89, TI-92, and Voyage 200 lines) to all of the members of the Palm Pilot series that run Palm OS 1.x to 4.x (OS 5.x is ARM-based), and even radiation-hardened versions in the critical control systems of the Space Shuttle.

However, the 680x0 CPU family became most well known as the processors powering advanced desktop computers and video game consoles such as the Apple Macintosh, the Commodore Amiga, the Sinclair QL, the Atari ST, the SNK NG AES/Neo Geo CD, Atari Jaguar, Commodore CDTV, and several others. The 680x0 were also the processors of choice in the 1980s for Unix workstations and servers such as AT&T's UNIX PC, Tandy's Model 16/16B/6000, Sun Microsystems' Sun-1, Sun-2, Sun-3, NeXT Computer, Silicon Graphics (SGI), and numerous others. There was a 68000 version of CP/M called CP/M-68K, which was initially proposed to be the Atari ST operating system, but Atari chose Atari TOS instead. Many system specific ports of CP/M-68K were available, for example, TriSoft offered a port of the CP/M-68K for the Tandy Model 16/16B/6000.

Also, and perhaps most significantly, the first several versions of Adobe's PostScript interpreters were 68000-based. The 68000 in the Apple LaserWriter and LaserWriter Plus was clocked faster than the version used then in Macintosh computers. A fast 68030 in later PostScript interpreters, including the standard resolution LaserWriter IIntx, IIf and IIg (also 300 dpi), the higher resolution LaserWriter Pro 600 series (usually 600 dpi, but limited to 300 dpi with minimum RAM installed) and the very high resolution Linotronic imagesetters, the 200PS (1500+ dpi) and 300PS (2500+ dpi). Thereafter, Adobe generally preferred a RISC for its processor, as its competitors, with their PostScript clones, had already gone with RISCs, often an AMD 29000-series. The early 68000-based Adobe PostScript interpreters and their hardware were named for Cold War-era U.S. rockets and missiles: Atlas, Redstone, etc.

Today, these systems are either end-of-line (in the case of the Atari), or are using different processors (in the case of Macintosh, Amiga, Sun, and SGI). Since these platforms had their peak market share in the 1980s, their original manufacturers either no longer support an operating system for this hardware or are out of business. However, the Linux, NetBSD and OpenBSD operating systems still include support for 68000 processors.

The 68000 processors were also used in the Sega Genesis (Mega Drive) and SNK Neo Geo consoles as the main CPU. Other consoles such as the Sega Saturn used the 68000 for audio processing and other I/O tasks, while the Atari Jaguar included a 68000 which was intended for basic system control and input processing, but due to the Jaguar's unusual assortment of heterogeneous processors was also frequently used for running game logic. Many arcade boards also used 68000 processors including boards from Capcom, SNK, and Sega.

Microcontrollers derived from the 68000 family have been used in a huge variety of applications. For example, CPU32 and ColdFire microcontrollers have been manufactured in the millions as automotive engine controllers.

Many proprietary video editing systems used 68000 processors, such as the MacroSystem Casablanca, which was a black box with an easy to use graphic interface (1997). It was intended for the amateur and hobby videographer market. It is also worth noting its earlier, bigger and more professional counterpart, the "DraCo" (1995). The groundbreaking Quantel Paintbox series of early based 24-bit paint and effects system was originally released in 1981 and during its lifetime it used nearly the entire range of 68000 family processors, with the sole exception of the 68060, which was never implemented in its design. Another contender in the video arena, the Abekas 8150 DVE system, used the 680EC30, and the Trinity Play, later renamed Globecaster, uses several 68030s. The Bosch FGS-4000/4500 Video Graphics System manufactured by Robert Bosch Corporation, later BTS (1983), used a 68000 as its main processor; it drove several others to perform 3D animation in a computer that could easily apply Gouraud and Phong shading. It ran a modified Motorola VERSAdos operating system.

Architecture

Motorola 68000 series registers
31 ... 23 ... 15 ... 07 ... 00 (bit position)
Data registers
D0 Data 0
D1 Data 1
D2 Data 2
D3 Data 3
D4 Data 4
D5 Data 5
D6 Data 6
D7 Data 7
Address registers
A0 Address 0
A1 Address 1
A2 Address 2
A3 Address 3
A4 Address 4
A5 Address 5
A6 Address 6
Stack pointers
A7 / USP Stack Pointer (user)
A7' / SSP Stack Pointer (supervisor)
Program counter
PC Program Counter
Status Register
  15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (bit position)
  T S M 0 I 0 0 0 X N Z V C SR

People who are familiar with the PDP-11 or VAX usually feel comfortable with the 68000 series. With the exception of the split of general-purpose registers into specialized data and address registers, the 68000 architecture is in many ways a 32-bit PDP-11.

It had a more orthogonal instruction set than those of many processors that came before (e.g., 8080) and after (e.g., x86). That is, it was typically possible to combine operations freely with operands, rather than being restricted to using certain addressing modes with certain instructions. This property made programming relatively easy for humans, and also made it easier to write code generators for compilers.

The 68000 series has eight 32-bit general-purpose data registers (D0-D7), and eight address registers (A0-A7). The last address register is the stack pointer, and assemblers accept the label SP as equivalent to A7.

In addition, it has a 16-bit status register. The upper 8 bits is the system byte, and modification of it is privileged. The lower 8 bits is the user byte, also known as the condition code register (CCR), and modification of it is not privileged. The 68000 comparison, arithmetic, and logic operations modify condition codes to record their results for use by later conditional jumps. The condition code bits are "zero" (Z), "carry" (C), "overflow" (V), "extend" (X), and "negative" (N). The "extend" (X) flag deserves special mention, because it is separate from the carry flag. This permits the extra bit from arithmetic, logic, and shift operations to be separated from the carry for flow-of-control and linkage.

While the 68000 had a 'supervisor mode', it did not meet the Popek and Goldberg virtualization requirements due to the single instruction 'MOVE from SR', which copies the status register to another register, being unprivileged but sensitive. In the Motorola 68010 and later, this was made privileged, to better support virtualization software.

The 68000 series instruction set can be divided into the following broad categories:

The Motorola 68020 added some new instructions that include some minor improvements and extensions to the supervisor state, several instructions for software management of a multiprocessing system (which were removed in the 68060), some support for high-level languages which did not get used much (and was removed from future 680x0 processors), bigger multiply (32×32→64 bits) and divide (64÷32→32 bits quotient and 32 bits remainder) instructions, and bit field manipulations.

The standard addressing modes are:

  • Register direct
    • Data register, e.g. "D0"
    • Address register, e.g. "A0"
  • Register indirect
    • Simple address, e.g. (A0)
    • Address with post-increment, e.g. (A0)+
    • Address with pre-decrement, e.g. −(A0)
    • Address with a 16-bit signed offset, e.g. 16(A0)
    • Register indirect with index register & 8-bit signed offset e.g. 8(A0,D0) or 8(A0,A1)
    Note that for (A0)+ and −(A0), the actual increment or decrement value is dependent on the operand size: a byte access adjusts the address register by 1, a word by 2, and a long by 4.
  • PC (program counter) relative with displacement
    • Relative 16-bit signed offset, e.g. 16(PC). This mode was very useful for position-independent code.
    • Relative with 8-bit signed offset with index, e.g. 8(PC,D2)
  • Absolute memory location
    • Either a number, e.g. "$4000", or a symbolic name translated by the assembler
    • Most assemblers used the "$" symbol for hexadecimal, instead of "0x" or a trailing H.
    • There were 16 and 32-bit versions of this addressing mode
  • Immediate mode
    • Data stored in the instruction, e.g. "#400"
  • Quick immediate mode
    • 3-bit unsigned (or 8-bit signed with moveq) with value stored in opcode
    • In addq and subq, 0 is the equivalent to 8
    • e.g. moveq #0,d0 was quicker than clr.l d0 (though both made D0 equal to 0)

Plus: access to the status register, and, in later models, other special registers.

The Motorola 68020 added a scaled indexing address mode, and added another level of indirection to many of the pre-existing modes.

Most instructions have dot-letter suffixes, permitting operations to occur on 8-bit bytes (".b"), 16-bit words (".w"), and 32-bit longs (".l").

Most instructions are dyadic, that is, the operation has a source, and a destination, and the destination is changed. Notable instructions were:

  • Arithmetic: ADD, SUB, MULU (unsigned multiply), MULS (signed multiply), DIVU, DIVS, NEG (additive negation), and CMP (a sort of comparison done by subtracting the arguments and setting the status bits, but did not store the result)
  • Binary-coded decimal arithmetic: ABCD, NBCD, and SBCD
  • Logic: EOR (exclusive or), AND, NOT (logical not), OR (inclusive or)
  • Shifting: (logical, i.e. right shifts put zero in the most-significant bit) LSL, LSR, (arithmetic shifts, i.e. sign-extend the most-significant bit) ASR, ASL, (rotates through eXtend and not) ROXL, ROXR, ROL, ROR
  • Bit test and manipulation in memory or data register: BSET (set to 1), BCLR (clear to 0), BCHG (invert) and BTST (no change). All of these instructions first test the destination bit and set (clear) the CCR Z bit if the destination bit is 0 (1), respectively.
  • Multiprocessing control: TAS, test-and-set, performed an indivisible bus operation, permitting semaphores to be used to synchronize several processors sharing a single memory
  • Flow of control: JMP (jump), JSR (jump to subroutine), BSR (relative address jump to subroutine), RTS (return from subroutine), RTE (return from exception, i.e. an interrupt), TRAP (trigger a software exception similar to software interrupt), CHK (a conditional software exception)
  • Branch: Bcc (where the "cc" specified one of 14 tests of the condition codes in the status register: equal, greater than, less-than, carry, and most combinations and logical inversions, available from the status register). Of the remaining two possible conditions, always true and always false, BRA (branch always) has a separate mnemonic, and BSR (branch to subroutine) takes the encoding that would otherwise have been 'branch never'.
  • Decrement-and-branch: DBcc (where "cc" was as for the branch instructions), which, provided the condition was false, decremented the low word of a D-register and, if the result was not -1 ($FFFF), branched to a destination. This use of −1 instead of 0 as the terminating value allowed the easy coding of loops that had to do nothing if the count was 0 to start with, with no need for another check before entering the loop. This also facilitated nesting of DBcc.

68050 and 68070

Motorola mainly used even numbers for major revisions to the CPU core such as 68000, 68020, 68040 and 68060. The 68010 was a revised version of the 68000 with minor modifications to the core, and likewise the 68030 was a revised 68020 with some more powerful features, none of them significant enough to classify as a major upgrade to the core.

There was no 68050, though at one point it was a project within Motorola. Odd-numbered releases had always been reactions to issues raised within the prior even numbered part; hence, it was generally expected that the 68050 would have reduced the 68040's power consumption (and thus heat dissipation), improved exception handling in the FPU, used a smaller feature size and optimized the microcode in line with program use of instructions. Many of these optimizations were included with the 68060 and were part of its design goals. For any number of reasons, likely that the 68060 was in development, that the Intel 80486 was not progressing as quickly as Motorola assumed it would, and that 68060 was a demanding project, the 68050 was cancelled early in development.

There is also no revision of the 68060, as Motorola was in the process of shifting away from the 68000 and 88k processor lines into its new PowerPC business, so the 68070 was never developed. Had it been, it would have been a revised 68060, likely with a superior FPU (pipelining was widely speculated upon on Usenet).

There was a CPU with the 68070 designation, which was a licensed and somewhat slower version of the 16/32-bit 68000 with a basic DMA controller, I²C host and an on-chip serial port. This 68070 was used as the main CPU in the Philips CD-i. This CPU was, however, produced by Philips and not officially part of Motorola's 680x0 lineup.

Last generation

The 4th-generation 68060 provided equivalent functionality (though not instruction-set-architecture compatibility) to most of the features of the Intel P5 microarchitecture.

Other variants

The Personal Computers XT/370 and AT/370 PC-based IBM-compatible mainframes each included two modified Motorola 68000 processors with custom microcode to emulate S/370 mainframe instructions.[11][12]

An Arizona-based company, Edge Computer Corp, reportedly founded by former Honeywell designers, produced processors compatible with the 68000 series, these being claimed as having "a three to five times performance – and 18 to 24 months’ time – advantage" over Motorola's own products.[13] In 1987, the company introduced the Edge 1000 range of "32-bit superminicomputers implementing the Motorola instruction set in the Edge mainframe architecture", employing two independent pipelines - an instruction fetch pipeline (IFP) and operand executive pipeline (OEP) - relying on a branch prediction unit featuring a 4096-entry branch cache, retrieving instructions and operands over multiple buses.[14] An agreement between Edge Computer and Olivetti subsequently led to the latter introducing products in its own "Linea Duo" range based on Edge Computer's machines.[15] The company was subsequently renamed to Edgcore Technology Inc.[16]: 12  (also reported as Edgecore Technology Inc.[17]). Edgcore's deal with Olivetti in 1987 to supply the company's E1000 processor was followed in 1989 by another deal with Philips Telecommunications Data Systems to supply the E2000 processor, this supporting the 68030 instruction set and reportedly offering a performance rating of 16 VAX MIPS.[18] Similar deals with Nixdorf Computer and Hitachi were also signed in 1989.[19][20]

Edge Computer reportedly had an agreement with Motorola.[17] Despite increasing competition from RISC products, Edgcore sought to distinguish its products in the market by emphasising its "alliance" with Motorola, employing a marketing campaign drawing from Aesop's fables with "the fox (Edgecore) who climbs on the back of the stallion (Motorola) to pluck fruit off the higher branches of the tree".[21] Other folktale advertising themes such as Little Red Riding Hood were evidently employed.[22] With the company's investors having declined to finance the company further, and with a number of companies having been involved in discussions with other parties, Arix Corp. announced the acquisition of Edgcore in July 1989.[20] Arix was reportedly able to renew its deal with Hitachi in 1990, whereas the future of previous deals with Olivetti and Philips remained in some doubt after the acquisition of Edgcore.[23]

In 1992, a company called International Meta Systems (IMS) announced a RISC-based CPU, the IMS 3250, that could reportedly emulate the "Intel 486 or Motorola 68040 at full native speeds and at a fraction of their cost". Clocked at 100 MHz, emulations had supposedly been developed of a 25 MHz 486 and 30 MHz 68040, including floating-point unit support, with the product aiming for mid-1993 production at a per-unit cost of $50 to 60.[24] Amidst the apparent proliferation of emulation support in processors such as the PowerPC 615, in 1994, IMS had reportedly filed a patent on its emulation technology but had not found any licensees.[25] Repeated delays to the introduction of this product, blamed on one occasion on "a need to improve the chip's speech-processing capabilities",[26] apparently led to the company seeking to introduce another chip, the Meta6000, aiming to compete with Intel's P6 products.[27] Ultimately, IMS entered bankruptcy having sold patents to a litigator, TechSearch, who in 1998 attempted to sue Intel for infringement of an IMS patent.[28] TechSearch reportedly lost their case but sought to appeal, also seeking to sue Intel for "libel and slander" on the basis of comments made by an Intel representative who had characterised TechSearch's business model unfavourably in remarks to the press.[29]

After the mainline 68000 processors' demise, the 68000 family has been used to some extent in microcontroller and embedded microprocessor versions. These chips include the ones listed under "other" above, i.e. the CPU32 (aka 68330), the ColdFire, the QUICC and the DragonBall.

With the advent of FPGA technology an international team of hardware developers have re-created the 68000 with many enhancements as an FPGA core. Their core is known as the 68080 and is used in Vampire-branded Amiga accelerators.[30]

Magnetic Scrolls used a subset of the 68000's instructions as a base for the virtual machine in their text adventures.

Competitors

Desktop

During the 1980s and early 1990s, when the 68000 was widely used in desktop computers, it mainly competed against Intel's x86 architecture used in IBM PC compatibles. Generation 1 68000 CPUs competed against mainly the 16-bit 8086, 8088, and 80286. Generation 2 competed against the 80386 (the first 32-bit x86 processor), and generation 3 against the 80486. The fourth generation competed with the P5 Pentium line, but it was not nearly as widely used as its predecessors, since much of the old 68000 marketplace was either defunct or nearly so (as was the case with Atari and NeXT), or converting to newer architectures (PowerPC for the Macintosh and Amiga, SPARC for Sun, and MIPS for Silicon Graphics (SGI)).

Embedded

There are dozens of processor architectures that are successful in embedded systems. Some are microcontrollers which are much simpler, smaller, and cheaper than the 68000, while others are relatively sophisticated and can run complex software. Embedded versions of the 68000 often compete with processor architectures based on PowerPC, ARM, MIPS, SuperH, and others.

See also

References

  1. ^ cpu-world.com - Motorola 68000 microprocessor family 2012-11-17
  2. ^ cpu-world.com - Motorola 68010 (MC68010) family 2012-11-17
  3. ^ cpu-world.com - Motorola 68020 (MC68020) microprocessor family 2012-12-12
  4. ^ cpu-world.com - Motorola MC68EC020FG16 2012-11-17
  5. ^ cpu-world.com - Motorola 68030 (MC68030) microprocessor family, 2012-11-17
  6. ^ cpu-world.com - Motorola 68040 (MC68040) microprocessor family, 2012-11-17
  7. ^ a b c d (PDF). freescale.com. Archived from the original (PDF) on 17 April 2016. Retrieved 2007-05-08.
  8. ^ a b c cpu-world.com - Motorola 68060 processor family, 2012-11-22
  9. ^ a b c (PDF). freescale.com. Archived from the original (PDF) on 23 August 2016. Retrieved 2010-07-28.
  10. ^ Archive.org - Amiga Format review of 68LC060-based accelerator board[dead link]
  11. ^ "Implementation of IBM System 370 Via Co-Microprocessors/The Co-Processor... - IPCOM000059679D - IP.com". Priorartdatabase.com. Retrieved 2020-07-23.
  12. ^ Mueller, Scott (1992). Upgrading and Repairing PCs, Second Edition. Que Books. pp. 73–75, 94. ISBN 0-88022-856-3.
  13. ^ "Olivetti "to Launch 68020-Compatible Mini from Edge in November"". Tech Monitor. 27 August 1987. Retrieved 3 June 2022.
  14. ^ "Edge supermini delivers RISC performance with CISC instruction set". Computer. September 1987. p. 107. Retrieved 18 June 2022.
  15. ^ "Olivetti to Launch Models of the Edge Computer Machines as Linea Duo". Tech Monitor. 15 November 1987. Retrieved 3 June 2022.
  16. ^ "Currents". UNIX Review. December 1988. pp. 8, 10, 12–13. Retrieved 5 June 2022.
  17. ^ a b "Edge Computer Corp, Read Edgecore Technology Inc". Tech Monitor. 26 September 1988. Retrieved 3 June 2022.
  18. ^ "Edgcore Wins $20M Philips Contract, Four-Year Agreement for E2000 CPUs". Electronic News. 13 March 1989. p. 14. Retrieved 5 June 2022.
  19. ^ "Data Topics". Electronic News. 27 March 1989. p. 12. Retrieved 5 June 2022.
  20. ^ a b "Arix May Buy Edgcore". Electronic News. 17 July 1989. p. 20. Retrieved 5 June 2022.
  21. ^ Waller, Larry (April 1989). "High-Tech Marketing: A Balancing Act Between Style and Substance". Electronics. pp. 100–102. Retrieved 5 June 2022.
  22. ^ Edge Computer (28 April 1988). "Thinking of getting into bed with RISC?". pp. 70–71. Retrieved 18 October 2022. {{cite magazine}}: Cite magazine requires |magazine= (help)
  23. ^ "Hitachi Discloses Price, Specs for Latest DASD". Electronic News. 1 October 1990. p. 18. Retrieved 5 June 2022.
  24. ^ Halfhill, Tom R. (November 1992). "New RISC Chip to Emulate 486 and 68040". Byte. p. 36. Retrieved 12 June 2022.
  25. ^ Ryan, Bob (September 1994). "IMS Takes On 80x86 Emulation". Byte. p. 38. Retrieved 12 June 2022.
  26. ^ Lazzaro, Joseph J. (January 1995). "On-Line-Access Services Inconsistent for the Blind". Byte. p. 36. Retrieved 12 June 2022.
  27. ^ "IMS Rides Again With The Meta6000". Byte. November 1996. p. 90. Retrieved 12 June 2022.
  28. ^ Brown, Peter (10 August 1998). "Chip Law Firms Kept Busy". Electronic News. p. 24. Retrieved 12 June 2022.
  29. ^ Perelman, Michael (April 2002). Steal This Idea: Intellectual Property Rights and the Corporate Confiscation of Creativity (1 ed.). Palgrave. pp. 62–63. ISBN 0-312-29408-5. Retrieved 12 June 2022.
  30. ^ Boehn, Gunnar von. "APOLLO 68080 - High Performance Processor". www.apollo-core.com. Retrieved 2017-09-29.

Bibliography

  • Howe, Dennis, ed. (1983). Free On-Line Dictionary of Computing. Imperial College, London. http://foldoc.org. Retrieved September 4, 2007.

External links

  • BYTE Magazine, September 1986: The 68000 Family

motorola, 68000, series, this, article, about, family, microprocessors, first, such, microprocessor, that, family, motorola, 68000, also, known, 680x0, m68000, m68k, family, complex, instruction, computer, cisc, microprocessors, during, 1980s, early, 1990s, th. This article is about the family of microprocessors For the first such microprocessor in that family see Motorola 68000 The Motorola 68000 series also known as 680x0 m68000 m68k or 68k is a family of 32 bit complex instruction set computer CISC microprocessors During the 1980s and early 1990s they were popular in personal computers and workstations and were the primary competitors of Intel s x86 microprocessors They were best known as the processors used in the early Apple Macintosh the Sharp X68000 the Commodore Amiga the Sinclair QL the Atari ST the Sega Genesis Mega Drive the Capcom System I Arcade the AT amp T UNIX PC the Tandy Model 16 16B 6000 the Sun Microsystems Sun 1 Sun 2 and Sun 3 the NeXT Computer NeXTcube NeXTstation and NeXTcube Turbo the Texas Instruments TI 89 TI 92 calculators the Palm Pilot all models running Palm OS 4 x or earlier and the Space Shuttle Although no modern desktop computers are based on processors in the 680x0 series derivative processors are still widely used in embedded systems Motorola 68000 seriesDesignerMotorolaBits32 bitIntroduced1979 44 years ago 1979 DesignCISCBranchingCondition codeEndiannessBigRegisters8 32 bit data registers7 32 bit address registersstack pointer address register 7 8 80 bit floating point registers if FP presentMotorola ceased development of the 680x0 series architecture in 1994 replacing it with the PowerPC RISC architecture which was developed in conjunction with IBM and Apple Computer as part of the AIM alliance Contents 1 Family members 2 Improvement history 3 Feature map 4 Main uses 5 Architecture 6 68050 and 68070 7 Last generation 8 Other variants 9 Competitors 9 1 Desktop 9 2 Embedded 10 See also 11 References 12 Bibliography 13 External linksFamily members EditGeneration one internally 16 32 bit and produced with 8 16 and 32 bit interfaces Motorola 68000 Motorola 68EC000 Motorola 68SEC000 Motorola 68HC000 Motorola 68008 Motorola 68010 Motorola 68012 Generation two internally fully 32 bit Motorola 68020 Motorola 68EC020 Motorola 68030 Motorola 68EC030 Generation three pipelined Motorola 68040 Motorola 68EC040 Motorola 68LC040 Generation four superscalar Motorola 68060 Motorola 68EC060 Motorola 68LC060 Others Freescale 683XX CPU32 aka 68330 68360 aka QUICC Freescale ColdFire Freescale DragonBall Philips 68070Improvement history Edit68010 Virtual memory support restartable instructions Loop mode for faster string and memory library primitives Multiply instruction uses 14 clock ticks less68020 32 bit address amp arithmetic logic unit ALU Three stage pipeline Instruction cache of 256 bytes Unrestricted word and longword data access see alignment 8 multiprocessing ability Larger multiply 32 32 gt 64 bits and divide 64 32 gt 32 bits quotient and 32 bits remainder instructions and bit field manipulations Addressing modes added scaled indexing and another level of indirection Low cost EC 24 bit address68030 Split instruction and data cache of 256 bytes each On chip memory management unit MMU 68851 Low cost EC No MMU Burst Memory Interface68040 Instruction and data caches of 4 KB each Six stage pipeline On chip floating point unit FPU FPU lacks IEEE transcendental function ability FPU emulation works with 2E71M and later chip revisions Low cost LC No FPU Low cost EC No FPU or MMU68060 Instruction and data caches of 8 KB each 10 stage pipeline Two cycle integer multiplication unit Branch prediction Dual instruction pipeline Instructions in the address generation unit AGU and thereby supply the result two cycles before the ALU Low cost LC No FPU Low cost EC No FPU or MMUFeature map EditYear CPU Package Frequency max in MHz Address bus bits MMU FPU1979 68000 64 pin dual in line package DIP 68 pin LCC 68 pin pin grid array PGA 1 8 20 24 1982 68010 64 pin DIP 68 pin PLCC 68 pin PGA 2 8 16 67 24 68451 1984 68020 114 pin PGA 3 12 5 33 33 32 68851 68881 68EC020 100 pin Quad Flat Package QFP 4 16 7 25 24 1987 68030 132 pin QFP max 33 MHz 128 pin PGA 5 16 50 32 MMU 6888168EC030 132 pin QFP 128 pin PGA 25 32 688811991 68040 179 pin PGA 6 184 pin QFP 7 20 40 32 MMU FPU68LC040 PGA 7 184 pin QFP 7 20 33 32 MMU 68EC040 20 33 7 32 1994 68060 206 pin PGA 8 9 50 75 32 MMU FPU68LC060 206 pin PGA 8 9 208 pin QFP 10 50 75 32 MMU 68EC060 206 pin PGA 8 9 50 75 32 Main uses Edit The Sega Genesis used a 68000 clocked at 7 67 MHz as its main CPU The 680x0 line of processors has been used in a variety of systems from modern high end Texas Instruments calculators the TI 89 TI 92 and Voyage 200 lines to all of the members of the Palm Pilot series that run Palm OS 1 x to 4 x OS 5 x is ARM based and even radiation hardened versions in the critical control systems of the Space Shuttle However the 680x0 CPU family became most well known as the processors powering advanced desktop computers and video game consoles such as the Apple Macintosh the Commodore Amiga the Sinclair QL the Atari ST the SNK NG AES Neo Geo CD Atari Jaguar Commodore CDTV and several others The 680x0 were also the processors of choice in the 1980s for Unix workstations and servers such as AT amp T s UNIX PC Tandy s Model 16 16B 6000 Sun Microsystems Sun 1 Sun 2 Sun 3 NeXT Computer Silicon Graphics SGI and numerous others There was a 68000 version of CP M called CP M 68K which was initially proposed to be the Atari ST operating system but Atari chose Atari TOS instead Many system specific ports of CP M 68K were available for example TriSoft offered a port of the CP M 68K for the Tandy Model 16 16B 6000 Also and perhaps most significantly the first several versions of Adobe s PostScript interpreters were 68000 based The 68000 in the Apple LaserWriter and LaserWriter Plus was clocked faster than the version used then in Macintosh computers A fast 68030 in later PostScript interpreters including the standard resolution LaserWriter IIntx IIf and IIg also 300 dpi the higher resolution LaserWriter Pro 600 series usually 600 dpi but limited to 300 dpi with minimum RAM installed and the very high resolution Linotronic imagesetters the 200PS 1500 dpi and 300PS 2500 dpi Thereafter Adobe generally preferred a RISC for its processor as its competitors with their PostScript clones had already gone with RISCs often an AMD 29000 series The early 68000 based Adobe PostScript interpreters and their hardware were named for Cold War era U S rockets and missiles Atlas Redstone etc Today these systems are either end of line in the case of the Atari or are using different processors in the case of Macintosh Amiga Sun and SGI Since these platforms had their peak market share in the 1980s their original manufacturers either no longer support an operating system for this hardware or are out of business However the Linux NetBSD and OpenBSD operating systems still include support for 68000 processors The 68000 processors were also used in the Sega Genesis Mega Drive and SNK Neo Geo consoles as the main CPU Other consoles such as the Sega Saturn used the 68000 for audio processing and other I O tasks while the Atari Jaguar included a 68000 which was intended for basic system control and input processing but due to the Jaguar s unusual assortment of heterogeneous processors was also frequently used for running game logic Many arcade boards also used 68000 processors including boards from Capcom SNK and Sega Microcontrollers derived from the 68000 family have been used in a huge variety of applications For example CPU32 and ColdFire microcontrollers have been manufactured in the millions as automotive engine controllers Many proprietary video editing systems used 68000 processors such as the MacroSystem Casablanca which was a black box with an easy to use graphic interface 1997 It was intended for the amateur and hobby videographer market It is also worth noting its earlier bigger and more professional counterpart the DraCo 1995 The groundbreaking Quantel Paintbox series of early based 24 bit paint and effects system was originally released in 1981 and during its lifetime it used nearly the entire range of 68000 family processors with the sole exception of the 68060 which was never implemented in its design Another contender in the video arena the Abekas 8150 DVE system used the 680EC30 and the Trinity Play later renamed Globecaster uses several 68030s The Bosch FGS 4000 4500 Video Graphics System manufactured by Robert Bosch Corporation later BTS 1983 used a 68000 as its main processor it drove several others to perform 3D animation in a computer that could easily apply Gouraud and Phong shading It ran a modified Motorola VERSAdos operating system Architecture EditMotorola 68000 series registers 31 23 15 07 00 bit position Data registersD0 Data 0D1 Data 1D2 Data 2D3 Data 3D4 Data 4D5 Data 5D6 Data 6D7 Data 7Address registersA0 Address 0A1 Address 1A2 Address 2A3 Address 3A4 Address 4A5 Address 5A6 Address 6Stack pointersA7 USP Stack Pointer user A7 SSP Stack Pointer supervisor Program counterPC Program CounterStatus Register 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 bit position T S M 0 I 0 0 0 X N Z V C SRPeople who are familiar with the PDP 11 or VAX usually feel comfortable with the 68000 series With the exception of the split of general purpose registers into specialized data and address registers the 68000 architecture is in many ways a 32 bit PDP 11 It had a more orthogonal instruction set than those of many processors that came before e g 8080 and after e g x86 That is it was typically possible to combine operations freely with operands rather than being restricted to using certain addressing modes with certain instructions This property made programming relatively easy for humans and also made it easier to write code generators for compilers The 68000 series has eight 32 bit general purpose data registers D0 D7 and eight address registers A0 A7 The last address register is the stack pointer and assemblers accept the label SP as equivalent to A7 In addition it has a 16 bit status register The upper 8 bits is the system byte and modification of it is privileged The lower 8 bits is the user byte also known as the condition code register CCR and modification of it is not privileged The 68000 comparison arithmetic and logic operations modify condition codes to record their results for use by later conditional jumps The condition code bits are zero Z carry C overflow V extend X and negative N The extend X flag deserves special mention because it is separate from the carry flag This permits the extra bit from arithmetic logic and shift operations to be separated from the carry for flow of control and linkage While the 68000 had a supervisor mode it did not meet the Popek and Goldberg virtualization requirements due to the single instruction MOVE from SR which copies the status register to another register being unprivileged but sensitive In the Motorola 68010 and later this was made privileged to better support virtualization software The 68000 series instruction set can be divided into the following broad categories Load and store MOVE Arithmetic ADD SUB MULS MULU DIVS DIVU Bit shifting ASL ASR LSL LSR Bit rotation ROR ROL ROXL ROXR Logic operations AND OR NOT EOR Type conversion byte to word and vice versa Conditional and unconditional branches BRA Bcc BEQ BNE BHI BLO BMI BPL etc Subroutine invocation and return BSR RTS Stack management LINK UNLK PEA Causing and responding to interrupts Exception handling There is no equivalent to the x86 CPUID instruction to determine what CPU or MMU or FPU is present The Motorola 68020 added some new instructions that include some minor improvements and extensions to the supervisor state several instructions for software management of a multiprocessing system which were removed in the 68060 some support for high level languages which did not get used much and was removed from future 680x0 processors bigger multiply 32 32 64 bits and divide 64 32 32 bits quotient and 32 bits remainder instructions and bit field manipulations The standard addressing modes are Register direct Data register e g D0 Address register e g A0 Register indirect Simple address e g A0 Address with post increment e g A0 Address with pre decrement e g A0 Address with a 16 bit signed offset e g 16 A0 Register indirect with index register amp 8 bit signed offset e g 8 A0 D0 or 8 A0 A1 Note that for A0 and A0 the actual increment or decrement value is dependent on the operand size a byte access adjusts the address register by 1 a word by 2 and a long by 4 PC program counter relative with displacement Relative 16 bit signed offset e g 16 PC This mode was very useful for position independent code Relative with 8 bit signed offset with index e g 8 PC D2 Absolute memory location Either a number e g 4000 or a symbolic name translated by the assembler Most assemblers used the symbol for hexadecimal instead of 0x or a trailing H There were 16 and 32 bit versions of this addressing mode Immediate mode Data stored in the instruction e g 400 Quick immediate mode 3 bit unsigned or 8 bit signed with moveq with value stored in opcode In addq and subq 0 is the equivalent to 8 e g moveq 0 d0 was quicker than clr l d0 though both made D0 equal to 0 Plus access to the status register and in later models other special registers The Motorola 68020 added a scaled indexing address mode and added another level of indirection to many of the pre existing modes Most instructions have dot letter suffixes permitting operations to occur on 8 bit bytes b 16 bit words w and 32 bit longs l Most instructions are dyadic that is the operation has a source and a destination and the destination is changed Notable instructions were Arithmetic ADD SUB MULU unsigned multiply MULS signed multiply DIVU DIVS NEG additive negation and CMP a sort of comparison done by subtracting the arguments and setting the status bits but did not store the result Binary coded decimal arithmetic ABCD NBCD and SBCD Logic EOR exclusive or AND NOT logical not OR inclusive or Shifting logical i e right shifts put zero in the most significant bit LSL LSR arithmetic shifts i e sign extend the most significant bit ASR ASL rotates through eXtend and not ROXL ROXR ROL ROR Bit test and manipulation in memory or data register BSET set to 1 BCLR clear to 0 BCHG invert and BTST no change All of these instructions first test the destination bit and set clear the CCR Z bit if the destination bit is 0 1 respectively Multiprocessing control TAS test and set performed an indivisible bus operation permitting semaphores to be used to synchronize several processors sharing a single memory Flow of control JMP jump JSR jump to subroutine BSR relative address jump to subroutine RTS return from subroutine RTE return from exception i e an interrupt TRAP trigger a software exception similar to software interrupt CHK a conditional software exception Branch Bcc where the cc specified one of 14 tests of the condition codes in the status register equal greater than less than carry and most combinations and logical inversions available from the status register Of the remaining two possible conditions always true and always false BRA branch always has a separate mnemonic and BSR branch to subroutine takes the encoding that would otherwise have been branch never Decrement and branch DBcc where cc was as for the branch instructions which provided the condition was false decremented the low word of a D register and if the result was not 1 FFFF branched to a destination This use of 1 instead of 0 as the terminating value allowed the easy coding of loops that had to do nothing if the count was 0 to start with with no need for another check before entering the loop This also facilitated nesting of DBcc 68050 and 68070 EditThis section does not cite any sources Please help improve this section by adding citations to reliable sources Unsourced material may be challenged and removed October 2013 Learn how and when to remove this template message Motorola mainly used even numbers for major revisions to the CPU core such as 68000 68020 68040 and 68060 The 68010 was a revised version of the 68000 with minor modifications to the core and likewise the 68030 was a revised 68020 with some more powerful features none of them significant enough to classify as a major upgrade to the core There was no 68050 though at one point it was a project within Motorola Odd numbered releases had always been reactions to issues raised within the prior even numbered part hence it was generally expected that the 68050 would have reduced the 68040 s power consumption and thus heat dissipation improved exception handling in the FPU used a smaller feature size and optimized the microcode in line with program use of instructions Many of these optimizations were included with the 68060 and were part of its design goals For any number of reasons likely that the 68060 was in development that the Intel 80486 was not progressing as quickly as Motorola assumed it would and that 68060 was a demanding project the 68050 was cancelled early in development There is also no revision of the 68060 as Motorola was in the process of shifting away from the 68000 and 88k processor lines into its new PowerPC business so the 68070 was never developed Had it been it would have been a revised 68060 likely with a superior FPU pipelining was widely speculated upon on Usenet There was a CPU with the 68070 designation which was a licensed and somewhat slower version of the 16 32 bit 68000 with a basic DMA controller I C host and an on chip serial port This 68070 was used as the main CPU in the Philips CD i This CPU was however produced by Philips and not officially part of Motorola s 680x0 lineup Last generation EditThe 4th generation 68060 provided equivalent functionality though not instruction set architecture compatibility to most of the features of the Intel P5 microarchitecture Other variants EditThe Personal Computers XT 370 and AT 370 PC based IBM compatible mainframes each included two modified Motorola 68000 processors with custom microcode to emulate S 370 mainframe instructions 11 12 An Arizona based company Edge Computer Corp reportedly founded by former Honeywell designers produced processors compatible with the 68000 series these being claimed as having a three to five times performance and 18 to 24 months time advantage over Motorola s own products 13 In 1987 the company introduced the Edge 1000 range of 32 bit superminicomputers implementing the Motorola instruction set in the Edge mainframe architecture employing two independent pipelines an instruction fetch pipeline IFP and operand executive pipeline OEP relying on a branch prediction unit featuring a 4096 entry branch cache retrieving instructions and operands over multiple buses 14 An agreement between Edge Computer and Olivetti subsequently led to the latter introducing products in its own Linea Duo range based on Edge Computer s machines 15 The company was subsequently renamed to Edgcore Technology Inc 16 12 also reported as Edgecore Technology Inc 17 Edgcore s deal with Olivetti in 1987 to supply the company s E1000 processor was followed in 1989 by another deal with Philips Telecommunications Data Systems to supply the E2000 processor this supporting the 68030 instruction set and reportedly offering a performance rating of 16 VAX MIPS 18 Similar deals with Nixdorf Computer and Hitachi were also signed in 1989 19 20 Edge Computer reportedly had an agreement with Motorola 17 Despite increasing competition from RISC products Edgcore sought to distinguish its products in the market by emphasising its alliance with Motorola employing a marketing campaign drawing from Aesop s fables with the fox Edgecore who climbs on the back of the stallion Motorola to pluck fruit off the higher branches of the tree 21 Other folktale advertising themes such as Little Red Riding Hood were evidently employed 22 With the company s investors having declined to finance the company further and with a number of companies having been involved in discussions with other parties Arix Corp announced the acquisition of Edgcore in July 1989 20 Arix was reportedly able to renew its deal with Hitachi in 1990 whereas the future of previous deals with Olivetti and Philips remained in some doubt after the acquisition of Edgcore 23 In 1992 a company called International Meta Systems IMS announced a RISC based CPU the IMS 3250 that could reportedly emulate the Intel 486 or Motorola 68040 at full native speeds and at a fraction of their cost Clocked at 100 MHz emulations had supposedly been developed of a 25 MHz 486 and 30 MHz 68040 including floating point unit support with the product aiming for mid 1993 production at a per unit cost of 50 to 60 24 Amidst the apparent proliferation of emulation support in processors such as the PowerPC 615 in 1994 IMS had reportedly filed a patent on its emulation technology but had not found any licensees 25 Repeated delays to the introduction of this product blamed on one occasion on a need to improve the chip s speech processing capabilities 26 apparently led to the company seeking to introduce another chip the Meta6000 aiming to compete with Intel s P6 products 27 Ultimately IMS entered bankruptcy having sold patents to a litigator TechSearch who in 1998 attempted to sue Intel for infringement of an IMS patent 28 TechSearch reportedly lost their case but sought to appeal also seeking to sue Intel for libel and slander on the basis of comments made by an Intel representative who had characterised TechSearch s business model unfavourably in remarks to the press 29 After the mainline 68000 processors demise the 68000 family has been used to some extent in microcontroller and embedded microprocessor versions These chips include the ones listed under other above i e the CPU32 aka 68330 the ColdFire the QUICC and the DragonBall With the advent of FPGA technology an international team of hardware developers have re created the 68000 with many enhancements as an FPGA core Their core is known as the 68080 and is used in Vampire branded Amiga accelerators 30 Magnetic Scrolls used a subset of the 68000 s instructions as a base for the virtual machine in their text adventures Competitors EditDesktop Edit During the 1980s and early 1990s when the 68000 was widely used in desktop computers it mainly competed against Intel s x86 architecture used in IBM PC compatibles Generation 1 68000 CPUs competed against mainly the 16 bit 8086 8088 and 80286 Generation 2 competed against the 80386 the first 32 bit x86 processor and generation 3 against the 80486 The fourth generation competed with the P5 Pentium line but it was not nearly as widely used as its predecessors since much of the old 68000 marketplace was either defunct or nearly so as was the case with Atari and NeXT or converting to newer architectures PowerPC for the Macintosh and Amiga SPARC for Sun and MIPS for Silicon Graphics SGI Embedded Edit Main article Microcontroller Types There are dozens of processor architectures that are successful in embedded systems Some are microcontrollers which are much simpler smaller and cheaper than the 68000 while others are relatively sophisticated and can run complex software Embedded versions of the 68000 often compete with processor architectures based on PowerPC ARM MIPS SuperH and others See also EditVMEbus an external computer bus standard designed for the 68000 seriesReferences Edit cpu world com Motorola 68000 microprocessor family 2012 11 17 cpu world com Motorola 68010 MC68010 family 2012 11 17 cpu world com Motorola 68020 MC68020 microprocessor family 2012 12 12 cpu world com Motorola MC68EC020FG16 2012 11 17 cpu world com Motorola 68030 MC68030 microprocessor family 2012 11 17 cpu world com Motorola 68040 MC68040 microprocessor family 2012 11 17 a b c d M68040 User s Manual PDF freescale com Archived from the original PDF on 17 April 2016 Retrieved 2007 05 08 a b c cpu world com Motorola 68060 processor family 2012 11 22 a b c M68060 User s Manual PDF freescale com Archived from the original PDF on 23 August 2016 Retrieved 2010 07 28 Archive org Amiga Format review of 68LC060 based accelerator board dead link Implementation of IBM System 370 Via Co Microprocessors The Co Processor IPCOM000059679D IP com Priorartdatabase com Retrieved 2020 07 23 Mueller Scott 1992 Upgrading and Repairing PCs Second Edition Que Books pp 73 75 94 ISBN 0 88022 856 3 Olivetti to Launch 68020 Compatible Mini from Edge in November Tech Monitor 27 August 1987 Retrieved 3 June 2022 Edge supermini delivers RISC performance with CISC instruction set Computer September 1987 p 107 Retrieved 18 June 2022 Olivetti to Launch Models of the Edge Computer Machines as Linea Duo Tech Monitor 15 November 1987 Retrieved 3 June 2022 Currents UNIX Review December 1988 pp 8 10 12 13 Retrieved 5 June 2022 a b Edge Computer Corp Read Edgecore Technology Inc Tech Monitor 26 September 1988 Retrieved 3 June 2022 Edgcore Wins 20M Philips Contract Four Year Agreement for E2000 CPUs Electronic News 13 March 1989 p 14 Retrieved 5 June 2022 Data Topics Electronic News 27 March 1989 p 12 Retrieved 5 June 2022 a b Arix May Buy Edgcore Electronic News 17 July 1989 p 20 Retrieved 5 June 2022 Waller Larry April 1989 High Tech Marketing A Balancing Act Between Style and Substance Electronics pp 100 102 Retrieved 5 June 2022 Edge Computer 28 April 1988 Thinking of getting into bed with RISC pp 70 71 Retrieved 18 October 2022 a href Template Cite magazine html title Template Cite magazine cite magazine a Cite magazine requires magazine help Hitachi Discloses Price Specs for Latest DASD Electronic News 1 October 1990 p 18 Retrieved 5 June 2022 Halfhill Tom R November 1992 New RISC Chip to Emulate 486 and 68040 Byte p 36 Retrieved 12 June 2022 Ryan Bob September 1994 IMS Takes On 80x86 Emulation Byte p 38 Retrieved 12 June 2022 Lazzaro Joseph J January 1995 On Line Access Services Inconsistent for the Blind Byte p 36 Retrieved 12 June 2022 IMS Rides Again With The Meta6000 Byte November 1996 p 90 Retrieved 12 June 2022 Brown Peter 10 August 1998 Chip Law Firms Kept Busy Electronic News p 24 Retrieved 12 June 2022 Perelman Michael April 2002 Steal This Idea Intellectual Property Rights and the Corporate Confiscation of Creativity 1 ed Palgrave pp 62 63 ISBN 0 312 29408 5 Retrieved 12 June 2022 Boehn Gunnar von APOLLO 68080 High Performance Processor www apollo core com Retrieved 2017 09 29 Bibliography EditHowe Dennis ed 1983 Free On Line Dictionary of Computing Imperial College London http foldoc org Retrieved September 4 2007 External links Edit Wikibooks has a book on the topic of 68000 Assembly BYTE Magazine September 1986 The 68000 Family Retrieved from https en wikipedia org w index php title Motorola 68000 series amp oldid 1123845993, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.