Mostek 5065

Last updated
Mostek 5065
General information
LaunchedFebruary 1974
Common manufacturer(s)
Performance
Max. CPU clock rate 3 µsec
Data width8 bits
Address width15 bits
Physical specifications
Package(s)

The Mostek MK5065 was an 8-bit microprocessor introduced by Mostek in early 1974. The design was originally developed by Motorola for use in an Olivetti electronic calculator, and was licensed to Mostek for use in non-calculator roles. It featured three sets of processor registers, allowing it to switch to an interrupt handler in a single cycle, and a wait-for-data mode that aided direct memory access.

Contents

In spite of a relatively low cost (for the era) of $58 in quantities of 100, the 5065 appears to have seen little use. The Fairchild F8 was introduced at about the same time, aimed at the same markets. The F8 had a number of advantages over the 5065 due to its more modern design. In June 1975, Mostek licensed the F8 under a second source arrangement. The 5065 disappeared from Mostek's 1975 catalog, which mentions only their F8, the MK3850.

Still convinced that they needed a microprocessor, and learning from their experience on the 5065, Motorola began design of their Motorola 6800 almost immediately after licensing the 5065 to Mostek.

History

The 5065 began as a custom PMOS CPU design by Motorola for a desktop calculator being built by Olivetti. The design effort was led by Rod Orgill and Bill Mensch, producing the 5065. Motorola's existing fabs proved unable to produce the design, and they were forced to license it to Mostek [1] under the condition they did not sell into the calculator market. Mostek launched their version in February 1974. By early 1975 it was in volume production and sold for $58 in lots from 100 to 499. [2]

In September 1974, Fairchild Semiconductor launched the Fairchild F8 with sample shipments starting the next April and full production later that year. The F8 was almost identical to the 5065 in purpose, originally designed as a calculator CPU for Olympia-Werke, a German competitor to Olivetti. The F8 had a number of design features that made it very easy to implement, with typical designs requiring only two chips to provide all the needed ROM, RAM, clock and I/O. It also improved on the 5065 in that it was an NMOS-based chip, allowing it to be fabricated at a smaller feature size which lowered its cost and allowed it to run much faster. [3]

In June 1975, Mostek licensed the F8 design from Fairchild and brought it up on their new NMOS line. Mentions of the 5065 disappear by the time their 1975 catalog, which mentions only their version of the F8, the MK3850. [4] Mostek aggressively lowered the price of their F8 over the next year, reaching $10 in plastic packaging [lower-alpha 1] by 1976. [5]

Description

Basic design

Mostek 5065 registers
15141312111009080706050403020100(bit position)
Level 1
 Accumulator
PCHPCLPC
 LLink
Level 2
 Accumulator
PCHPCLPC
 LLink
Level 3
 Accumulator
PCHPCLPC
 ALAux/Link
Stack Pointer
00000000 Pointer Register

In the early 1970s the idea of a microprocessor being used as the basis for a standalone computer was still not common, and designs of the era generally included features intended to make them easy to use in what today would be known as the microcontroller area, processors that are used to control a device like a cash register or gas pump. These systems have to respond quickly to different inputs, which is normally accomplished via interrupts. As this is a common operation in these settings, many designs focused on ways to improve interrupt performance or implementation. [6] [7]

In the case of the 5065, this was accomplished by providing three separate sets of registers for the accumulator, program counter and the internal "main link" register, along with the carry flag. On the receipt of an interrupt, the processor completed the current instruction and then pointed to the selected set of these registers, or as they called them, "levels". This allowed the system to track three separate sections of code, corresponding to normal operation and two interrupt levels. External devices could raise an interrupt on two pins, INT 1 and INT 2, both of which could be turned on or off in software. So for instance, if INT 2 was enabled and triggered, the processor responded by completing the current instruction, switching to the level 2 registers, and continuing. Normal operation was level 3, which it returned to when a return-from-interrupt instruction was called. [8] This makes interrupt servicing very rapid because the state information is being stored automatically in a single cycle, whereas many designs require this information to be stored out using user-written code that may take multiple cycles to complete. [9]

The same system could also be used for fast subroutine calls instead of having to store out the register contents. [8] As the processor state was saved separately, only the return address had to be explicitly written out in code. In this case, the first 256 locations in memory, the zero page, was used as a call stack. For this to work, this area of memory had to be implemented in some form of writable memory. The page could hold up to 128 16-bit addresses, with the current value indicated by the "pointer register", what would be known as the stack pointer on other designs. [9]

To aid direct memory access (DMA) implementations, the system included a WAIT pin that was raised by an external device that wanted access to memory. When this signal was received, the processor would continue with the current instruction, including any required reading and writing from memory. When the instruction was complete it would raise the DMA pin to indicate it was ready and then went into a paused state. The external device would then perform its DMA operations and then drop WAIT when it was finished. The processor would then drop the DMA pin, unpause, and pick up where it left off. [10]

Instructions and addressing

There were a total of 51 instructions, and 81 opcodes. The instructions come in many formats, but most of them in two-byte opcode-operand pairs. A small number of one-byte instructions were used for things like return-from-subroutine or shift-left, which do not need any additional information. [8]

Those instructions that used memory (as opposed to registers) used a two-byte format with the opcode in the upper 6 bits of the first byte. The lower 2 bits controlled the type of memory access. The first (bit 1) indicated whether the following 8-bit operand was a direct or indirect address. The second (bit 0) controlled whether the 8-bit value was offset from the current memory page defined by the program counter, or in the zero page. The following operand byte contains an 8 bit address. This means that when using direct addressing, the data has to lie within 256 bytes of the current instruction, or within the first 256 bytes of memory. If access to the greater main memory is needed, indirect addressing must be used. [8]

Indirect addresses used a two-step access pattern. First the processor reads lower 8-bits of the instruction and looks at bit 0 to see which offset to use. It then reads the byte at that location and the following byte, producing a 16-bit value held in a special buffer. It would then read or write the data to that 16-bit location. [9] This pattern was commonly seen on minicomputers of the era, as it made certain forms of looping over data easy to implement. [11] [lower-alpha 2]

The most significant bit of every address stored in memory was used to specify whether it was a direct or indirect address, this left 15-bits for the actual address, allowing up to 32 kB of memory. [10] Since the address being pointed to by an indirect address might also have its high bit set, indirect addresses can form chains. [2] This style of chained access was also seen on minicomputer systems like the IBM 1620, HP 2100 and Data General Nova, but was uncommon for microprocessors. [2]

For branches, subroutine calls and jumps, a second format was used where the opcode used the upper 4 bits, and the lower 4 bits along with the 8-bit operand form a 12-bit address. This meant code could only call other code within a 4 kB "block". [8] There were many other instruction formats for special purposes. [12]

Input/output was handled through special instructions and was not memory mapped. The upper 4 bits of the opcode held the I/O instruction (input, output, status, etc.), while the lower 4 bits were a "free field". The program could place any value in these 4 bits and use it as an ad-hoc data field to send instructions to the device. Triggering the instruction resulted in a four-cycle process. In the first cycle the lower 6 bits of the instruction, including the 4 bit free field, were put on the H bus while the value of the accumulator was put on the L bus. The device could then read both to decode its instruction. On the second cycle, if the CPU was to send data to the device for output, the 8-bit value was put on the bus. On the third, any data being sent to the CPU was returned on the bus. The fourth indicated the end of the I/O cycle. [8]

Other details

The main bus was multiplexed, with a total of 16 pins used for both addressing and data. The bus was split into "high" (H) and "low" (L) sides, both 8-bits. During a memory access, the 15-bit address would be placed on the high and low sides, and then the data at that location read or written using the L bus only. This meant that memory accesses required two cycles, making it slower than designs with separate (non-multiplexed) address and data busses. [8]

Built on the PMOS process that was common in the early 1970s, the 5065 required three voltage supply levels, -12V (VGG), +5V(VSS), -5V (VDD) and ground. It was packaged in a 40-pin DIP, as was common for most processors of the era. The use of the multiplexed bus reduced pin use to the point that five pins were left unconnected. [10] As was the case for most PMOS designs, an external clock chip was required, in this case the MK5009. There were also plans to release a peripheral interface adaptor (PIA) in late 1975. [2]

The system was released with an evaluation system, the two-board GEMS-8, short for General Evaluation Microprocessor System. This included the clock driver, 512 bytes of ROM, 1 to 12 kB of RAM, and a UART for use with a computer terminal. The ROM contained the "Program Aid Routine", a small system development tool and debugger utility. The processor board and PAR ROM was $597, the 12k RAM card another $597, or both together were $995. A cross assembler was also available for an unspecified "16-bit minicomputer". [2]

Clock speeds for the 5065 do not appear in any surviving references. Instruction times are listed as 3 to 16 µsec. [2] Although the instruction times are cited as 3 to 16 µsec, a 1 MHz clock can be used. [13]

Notes

  1. Plastic packaging was suitable for low-speed use where heat was not a concern. For higher speeds a ceramic package was available at $20. [5]
  2. The other common solution of the era, not used in the 5065, is dedicated index registers.

Related Research Articles

<span class="mw-page-title-main">Intel 8080</span> 8-bit microprocessor

The Intel 8080 ("eighty-eighty") is the second 8-bit microprocessor designed and manufactured by Intel. It first appeared in April 1974 and is an extended and enhanced variant of the earlier 8008 design, although without binary compatibility. The initial specified clock rate or frequency limit was 2 MHz, with common instructions using 4, 5, 7, 10, or 11 cycles. As a result, the processor is able to execute several hundred thousand instructions per second. Two faster variants, the 8080A-1 and 8080A-2, became available later with clock frequency limits of 3.125 MHz and 2.63 MHz respectively. The 8080 needs two support chips to function in most applications: the i8224 clock generator/driver and the i8228 bus controller. It is implemented in N-type metal–oxide–semiconductor logic (NMOS) using non-saturated enhancement mode transistors as loads thus demanding a +12 V and a −5 V voltage in addition to the main transistor–transistor logic (TTL) compatible +5 V.

<span class="mw-page-title-main">Intel 8086</span> 16-bit microprocessor

The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus, and is notable as the processor used in the original IBM PC design.

<span class="mw-page-title-main">Intel 8088</span> Intel microprocessor model

The Intel 8088 microprocessor is a variant of the Intel 8086. Introduced on June 1, 1979, the 8088 has an eight-bit external data bus instead of the 16-bit bus of the 8086. The 16-bit registers and the one megabyte address range are unchanged, however. In fact, according to the Intel documentation, the 8086 and 8088 have the same execution unit (EU)—only the bus interface unit (BIU) is different. The 8088 was used in the original IBM PC and in IBM PC compatible clones.

<span class="mw-page-title-main">Motorola 68000</span> Microprocessor

The Motorola 68000 is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector.

<span class="mw-page-title-main">MOS Technology 6502</span> 8-bit microprocessor from 1975

The MOS Technology 6502 is an 8-bit microprocessor that was designed by a small team led by Chuck Peddle for MOS Technology. The design team had formerly worked at Motorola on the Motorola 6800 project; the 6502 is essentially a simplified, less expensive and faster version of that design.

<span class="mw-page-title-main">Motorola 6800</span> 8-bit microprocessor

The 6800 is an 8-bit microprocessor designed and first manufactured by Motorola in 1974. The MC6800 microprocessor was part of the M6800 Microcomputer System that also included serial and parallel interface ICs, RAM, ROM and other support chips. A significant design feature was that the M6800 family of ICs required only a single five-volt power supply at a time when most other microprocessors required three voltages. The M6800 Microcomputer System was announced in March 1974 and was in full production by the end of that year.

<span class="mw-page-title-main">Zilog Z80</span> 8-bit microprocessor

The Z80 is an 8-bit microprocessor introduced by Zilog as the startup company's first product. The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his 11 employees starting in early 1975. The first working samples were delivered in March 1976, and it was officially introduced on the market in July 1976. With the revenue from the Z80, the company built its own chip factories and grew to over a thousand employees over the following two years.

The NS32000, sometimes known as the 32k, is a series of microprocessors produced by National Semiconductor. The first member of the family came to market in 1982, briefly known as the 16032 before becoming the 32016. It was the first general-purpose microprocessor on the market that used 32-bit data throughout: the Motorola 68000 used 32-bit data but had a 16-bit ALU and thus took twice as long perform many operations. However, the 32016 contained many bugs and often could not be run at its rated speed. These problems, and the presence of the otherwise similar 68000 which had been available since 1980, led to little use in the market.

<span class="mw-page-title-main">Motorola 68010</span>

The Motorola MC68010 processor is a 16/32-bit microprocessor from Motorola, released in 1982 as the successor to the Motorola 68000. It fixes several small flaws in the 68000, and adds a few features.

<span class="mw-page-title-main">MCS-51</span> Single chip microcontroller series by Intel

The Intel MCS-51 is a single chip microcontroller (MCU) series developed by Intel in 1980 for use in embedded systems. The architect of the Intel MCS-51 instruction set was John H. Wharton. Intel's original versions were popular in the 1980s and early 1990s, and enhanced binary compatible derivatives remain popular today. It is a complex instruction set computer, but also has some of the features of RISC architectures, such as a large register set and register windows, and has separate memory spaces for program instructions and data.

<span class="mw-page-title-main">Intel 8085</span> 8-bit microprocessor by Intel

The Intel 8085 ("eighty-eighty-five") is an 8-bit microprocessor produced by Intel and introduced in March 1976. It is the last 8-bit microprocessor developed by Intel.

The TMS9900 was one of the first commercially available, single-chip 16-bit microprocessors. Introduced in June 1976, it implemented Texas Instruments' TI-990 minicomputer architecture in a single-chip format, and was initially used for low-end models of that lineup.

<span class="mw-page-title-main">Fairchild F8</span> 8-bit microprocessor first shipped in 1975

The Fairchild F8 is an 8-bit microprocessor system from Fairchild Semiconductor, announced in 1974 and shipped in 1975. The original processor family included four main 40-pin integrated circuits (ICs); the 3850 CPU which was the arithmetic logic unit, the 3851 Program Storage Unit (PSU) which contained 1 KB of program ROM and handled instruction decoding, and the optional 3852 Dynamic Memory Interface (DMI) or 3853 Static Memory Interface (SMI) to control additional RAM or ROM holding the user programs or data. The 3854 DMA was another optional system that added direct memory access into the RAM controlled by the 3852.

<span class="mw-page-title-main">Mostek</span> American electronics company

Mostek Corporation was a semiconductor integrated circuit manufacturer, founded in 1969 by L. J. Sevin, Louay E. Sharif, Richard L. Petritz and other ex-employees of Texas Instruments. At its peak in the late 1970s, Mostek held an 85% market share of the dynamic random-access memory (DRAM) memory chip market worldwide, until being eclipsed by lower-priced Japanese DRAM manufacturers who were accused of dumping memory on the market.

<span class="mw-page-title-main">Signetics 2650</span> 8-bit microprocessor

The Signetics 2650 was an 8-bit microprocessor introduced in July 1975. According to Adam Osborne's book An Introduction to Microprocessors Vol 2: Some Real Products, it was "the most minicomputer-like" of the microprocessors available at the time. A combination of missing features and odd memory access limited its appeal, and the system saw little use in the market.

<span class="mw-page-title-main">WDC 65C02</span> CMOS microprocessor in the 6502 family

The Western Design Center (WDC) 65C02 microprocessor is an enhanced CMOS version of the popular nMOS-based 8-bit MOS Technology 6502. It uses less power than the original 6502, fixes several problems, and adds new instructions. The power usage is on the order of 10 to 20 times less than the original 6502 running at the same speed; its reduced power consumption has made it useful in portable computer roles and industrial microcontroller systems. The 65C02 has also been used in some home computers, as well as in embedded applications, including medical-grade implanted devices.

<span class="mw-page-title-main">General Instrument CP1600</span>

The CP1600 is a 16-bit microprocessor created in a partnership between General Instrument and Honeywell, introduced in February 1975. It is one of the first single-chip 16-bit processors. The overall design bears a strong resemblance to the PDP-11.

<span class="mw-page-title-main">National Semiconductor PACE</span>

National Semiconductor's IPC-16A PACE, short for "Processing and Control Element", was the first commercial single-chip 16-bit microprocessor, announced in late 1974. It was a single-chip implementation of their early 1973 five-chip IMP-16 architecture, which in turn had been inspired by the Data General Nova minicomputer. To the basic IMP-16, PACE added a new operational mode, "byte mode", which was useful for working with 8-bit data like ASCII text.

<span class="mw-page-title-main">WDC 65C816</span> 8/16-bit microprocessor

The W65C816S is a 16-bit microprocessor (MPU) developed and sold by the Western Design Center (WDC). Introduced in 1983, the W65C816S is an enhanced version of the WDC 65C02 8-bit MPU, itself a CMOS enhancement of the venerable MOS Technology 6502 NMOS MPU. The 65C816 is the CPU for the Apple IIGS and, in modified form, the Super Nintendo Entertainment System.

The MAC-8, better known today as the BELLMAC-8, is an 8-bit microprocessor designed by Bell Labs. Production began in CMOS form at Western Electric as the WE212 in 1977. The MAC-8 was used only in AT&T products, like the 4ESS. No commercial spec sheets were published, so it is little known as a result. The best-known use, in the public, is the MAC-TUTOR computer trainer, released in 1979.

References

Citations

  1. "Motorola's Pioneering 8-bit 6800 : Origins and Architecture". The Chip Letter. 11 December 2023.
  2. 1 2 3 4 5 6 Digest 1975, p. 2.
  3. Nair 2002, p. 237.
  4. Guide 1975.
  5. 1 2 Digest 1976, p. 13.
  6. Silva 2013.
  7. Renesas.
  8. 1 2 3 4 5 6 7 Guide 1974, p. 80.
  9. 1 2 3 Guide 1974, p. 79.
  10. 1 2 3 Guide 1974, p. 78.
  11. Siemens 2007.
  12. Guide 1974, pp. 80–82.
  13. Franks 2023.

Bibliography