HOME

TheInfoList



OR:

The Mostek MK5065 was an 8-bit microprocessor introduced by
Mostek Mostek 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 d ...
in early 1974. The design was originally developed by
Motorola Motorola, Inc. () was an American multinational telecommunications company based in Schaumburg, Illinois, United States. After having lost $4.3 billion from 2007 to 2009, the company split into two independent public companies, Motorol ...
for use in an
Olivetti Olivetti S.p.A. is an Italian manufacturer of computers, tablets, smartphones, printers and other such business products as calculators and fax machines. Headquartered in Ivrea, in the Metropolitan City of Turin, the company has been par ...
electronic calculator An electronic calculator is typically a portable electronic device used to perform calculations, ranging from basic arithmetic to complex mathematics. The first solid-state electronic calculator was created in the early 1960s. Pocket-sized ...
, 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 In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted, ...
handler in a single cycle, and a wait-for-data mode that aided
direct memory access Direct memory access (DMA) is a feature of computer systems and allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU). Without DMA, when the CPU is using programmed input/output, it is ...
. 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 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 log ...
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 In the electronics industry, a second source is a company that is licensed to manufacture and sell components originally designed by another company (the first source). It is common for engineers and purchasers to avoid components that are only av ...
arrangement. The 5065 disappeared from Mostek's 1975 catalog, which mentions only their F8, the MK3850.


History

The 5065 began as a custom PMOS CPU design by
Motorola Motorola, Inc. () was an American multinational telecommunications company based in Schaumburg, Illinois, United States. After having lost $4.3 billion from 2007 to 2009, the company split into two independent public companies, Motorol ...
for a
desktop calculator An electronic calculator is typically a portable electronic device used to perform calculations, ranging from basic arithmetic to complex mathematics. The first solid-state electronic calculator was created in the early 1960s. Pocket-siz ...
being built by
Olivetti Olivetti S.p.A. is an Italian manufacturer of computers, tablets, smartphones, printers and other such business products as calculators and fax machines. Headquartered in Ivrea, in the Metropolitan City of Turin, the company has been par ...
. The design effort was led by Rod Orgill and
Bill Mensch William David Mensch, Jr. (born February 9, 1945) is an American electrical engineer born in Quakertown, Pennsylvania. He was a major contributor to the design of the Motorola 6800 8-bit microprocessor and was part of the team led by Chuck Pedd ...
, producing the 5065. Soon after, the two formed the core of the development team for the
Motorola 6800 The 6800 ("''sixty-eight hundred''") is an 8-bit microprocessor designed and first manufactured by Motorola in 1974. The MC6800 microprocessor was part of the M6800 Microcomputer System (latter dubbed ''68xx'') that also included serial and para ...
. Motorola licensed the design to
Mostek Mostek 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 d ...
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. In September 1974, Fairchild Semiconductor launched the
Fairchild F8 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 log ...
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 Olympia-Werke AG was an important German manufacturer of typewriters. Since the plant in near Wilhelmshaven was closed in 1991, only the brand name has survived. Beginnings (1903–1945) As typewriters became increasingly popular in Germany ...
, 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 5056 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. 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. Mostek aggressively lowered the price of their F8 over the next year, reaching $10 in plastic packaging by 1976.


Description


Basic design

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 A cash register, sometimes called a till or automated money handling system, is a mechanical or electronic device for registering and calculating transactions at a point of sale. It is usually attached to a drawer for storing cash and other ...
or
gas pump A gasoline pump is a machine at a filling station that is used to pump gasoline (petrol), diesel, or other types of liquid fuel into vehicles. Gasoline pumps are also known as bowsers or petrol bowsers (in Australia), petrol pumps (in Common ...
. These systems have to respond quickly to different inputs, which is normally accomplished via
interrupt In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted, ...
s. As this is a common operation in these settings, many designs focused on ways to improve interrupt performance or implementation. 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 In computer processors the carry flag (usually indicated as the C flag) is a single bit in a system status register/flag register used to indicate when an arithmetic carry or borrow has been generated out of the most significant arithmetic l ...
. 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, and , both of which could be turned on or off in software. So for instance, if 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. 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. The same system could also be used for fast subroutine calls instead of having to store out the register contents. 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 The zero page or base page is the block of memory at the very beginning of a computer's address space; that is, the page whose starting address is zero. The size of a page depends on the context, and the significance of zero page memory versus h ...
, was used as a
call stack In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This kind of stack is also known as an execution stack, program stack, control stack, run-time stack, or m ...
. 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 In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This kind of stack is also known as an execution stack, program stack, control stack, run-time stack, or mach ...
on other designs. To aid
direct memory access Direct memory access (DMA) is a feature of computer systems and allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU). Without DMA, when the CPU is using programmed input/output, it is ...
(DMA) implementations, the system included a 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 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 when it was finished. The processor would then drop the pin, unpause, and pick up where it left off.


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 In mathematics, an operand is the object of a mathematical operation, i.e., it is the object or quantity that is operated on. Example The following arithmetic expression shows an example of operators and operands: :3 + 6 = 9 In the above exam ...
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. 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 A page, memory page, or virtual page is a fixed-length contiguous block of virtual memory, described by a single entry in the page table. It is the smallest unit of data for memory management in a virtual memory operating system. Similarly, a p ...
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. 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. This pattern was commonly seen on minicomputers of the era, as it made certain forms of looping over data easy to implement. The
most significant bit In computing, bit numbering is the convention used to identify the bit positions in a binary number. Bit significance and indexing In computing, the least significant bit (LSB) is the bit position in a binary integer representing the binar ...
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. Since the address being pointed to by an indirect address might also have its high bit set, indirect addresses can form chains. This style of chained access was also seen on minicomputer systems like the
IBM 1620 The IBM 1620 was announced by IBM on October 21, 1959, and marketed as an inexpensive scientific computer. After a total production of about two thousand machines, it was withdrawn on November 19, 1970. Modified versions of the 1620 were used as ...
,
HP 2100 The HP 2100 is a series of 16-bit minicomputers that were produced by Hewlett-Packard (HP) from the mid-1960s to early 1990s. Tens of thousands of machines in the series were sold over its twenty-five year lifetime, making HP the fourth largest mi ...
and
Data General Nova The Data General Nova is a series of 16-bit minicomputers released by the American company Data General. The Nova family was very popular in the 1970s and ultimately sold tens of thousands of units. The first model, known simply as "Nova", was ...
, but was uncommon for microprocessors. 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". There were many other instruction formats for special purposes.
Input/output In computing, input/output (I/O, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system. Inputs are the signals ...
was handled through special instructions and was not
memory mapped In computer science, a memory map is a structure of data (which usually resides in memory itself) that indicates how memory is laid out. The term "memory map" can have different meanings in different contexts. *It is the fastest and most flexible ...
. 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.


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. 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. 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. 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 A universal asynchronous receiver-transmitter (UART ) is a computer hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least signific ...
for use with a
computer terminal A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. The teletype was an example of an early-day hard-copy terminal and ...
. 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 In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
was also available for an unspecified "16-bit minicomputer". Clock speeds for the 5056 do not appear in any surviving references. Instruction times are listed as 3 to 16 µsec. Although the instruction times are cited as 3 to 16 µsec, a 1 MHz clock can be used.


Notes


References


Citations


Bibliography

* * * * * * * * * * * * {{cite web , title=Programming a Loop with Indirect Addressing , date=29 January 2007 , url=https://support.industry.siemens.com/cs/document/19345564/programming-a-loop-with-indirect-addressing?dti=0&lc=en-CA , website=Siemens , ref=CITEREFSiemens2007 8-bit microprocessors