Ferranti F100-L

Last updated

The Ferranti F100-L was a 16-bit microprocessor family announced by Ferranti in 1976 which entered production in 1977. It was among the first 16-bit single-chip CPUs, and the first 16-bit design to be designed in Europe. It was designed with military use in mind, able to work in a very wide temperature range and radiation hardened. To deliver these capabilities, the F100 was implemented using bipolar junction transistors, as opposed to the metal oxide semiconductor (MOS) process used by most other processors of the era. The family included a variety of support chips including a multiply/divide unit, various memory support chips, timers and serial bus controllers.

Contents

The F100 was priced at £39 in 1978 in 100-off quantities. Three models were offered at the same price; the commercial spec was rated at 8 MHz, industrial at 6.5 MHz at an extended temperature range, and military spec at 3.5 or 5 MHz with a temperature range from -55 C to +125 C. It was very cost competitive in the industrial and military markets, but less so in the commercial market where processors like the MOS 6502 were about $11 in the same 100 unit quantity.

The line was updated with the F200-L in 1984. This was software compatible with the F100, but included the maths processor on the same die, expanded addressing to 128 kB, and allowed up to 1 MB of memory when paired with the new F220 memory management unit. Shortly after the F200 came to market, in 1987 Ferranti purchased International Signal and Control, a company soon discovered to be committing large amounts of fraud; this drove Ferranti into bankruptcy.

The chip division was purchased by Plessey who continued producing some of the F100 family support chips as late as 1995. Owing to it being used almost entirely in the military realm, the F100 is little known in the wider retrocomputing field and few examples remain.

History

Previous computers

Ferranti was among the first companies to introduce a commercial computer, the Ferranti Mark 1 of 1951. They followed this with several other commercial designs, most notably the Ferranti Atlas of 1962, for a time the fastest computer in the world. In 1963 they used the Ferranti-Packard 6000, developed independently at their Canadian division, as the "golden brick" in the sale of their entire commercial computing line to International Computers and Tabulators (ICT). ICT used the FP6000 as the basis for their 1900 line, which sold for years. Prior to the sale, Ferranti sold about 24% of all computing hardware in the UK. [1]

As part of the deal with ICT, Ferranti were barred from sales into the commercial computer market. This left them with two existing architectures that had been developed for military uses, the small Ferranti Argus that had already become a success in the industrial controller market, and the FM 1600, a larger machine used for realtime data handling, weapons control and simulation. [2] Both were built of individual transistors and small scale integration integrated circuits using Ferranti's MicroNOR bipolar transistor process. These were both very successful in the market, generating hundreds of millions of pounds of sales through the late 1960s. [1]

CDI

A significant problem with the MicroNor process was that a logic gate implemented using bipolar layout was significantly larger than one using the contemporary MOSFET process, about six times. [a] In typical designs, the bipolar layout also required three or four extra masking steps, each of which was time-consuming and increased the possibility of the chip being damaged during processing. Experience with MicroNor suggested that a maximum of about 100 gates was the limit for a single chip, in contrast to MOS, which was being used for designs with thousands of gates. However, the MOS system was more sensitive to impurities in the semiconductor feedstock, which led to electrical noise that reduced performance and also limited its operating conditions. Neither was acceptable in the military market. [4]

In 1971, Ferranti licensed the new collector-diffusion-isolation (CDI) process from Fairchild Semiconductor. This process, originally developed at Bell Labs, produced a dramatically simplified bipolar gate which required fewer masking steps and was only slightly larger than the equivalent MOS. This was of little interest to either Bell or Fairchild, who were happy with their MOS processes, and neither had developed the system beyond experimental production runs. [4]

Ferranti invested heavily in the CDI process, working to raise the operating voltage from 3 to 5V for compatibility with their existing transistor-transistor logic (TTL) devices that were already widely used in military applications. [3] This led to a series of medium scale integration parts using the process. Most well known among these was a series of uncommitted logic arrays (ULA, or gate array), chips with no pre-set logic design that could be programmed by the developer to produce any required circuit. These became very popular, and by 1986 the company held about 20% of the worldwide market for ULAs. [3]

F100-L

The introduction of the first microprocessors in the early 1970s cut into Ferranti's military computing business. While these early designs were not competitive in performance terms, their price/performance ratio was orders of magnitude better than Ferranti's discrete designs, despite several rounds of cost-reduction in the MicroNor line in the late 1960s. Convinced that the microprocessor represented a strategic change in military applications, in 1974 the UK Ministry of Defence agreed to sponsor an effort by Ferranti to produce a military-grade microprocessor design using the CDI process, whose high power-handling allowed them to operate in electrically noisy environments. [1]

An internal survey within the company suggested that an 8-bit part would not have the capability needed by the various divisions, and the decision was made to produce a 16-bit part. [4] Based on studies of the economics of chip fabrication, Ferranti concluded that they had a budget of about 1,000 gates before the design would be too expensive. To produce a 16-bit design with this limited gate count, the arithmetic logic unit (ALU) used a bit-serial architecture. This slows the performance of mathematical operations, so that the minimum time needed to complete an instruction is 36 clock cycles. This performance hit is offset somewhat by the 8 MHz clock speed, roughly double that of the fastest MOS-based CPUs of the era. [5]

With 16-bit data and 15-bit addresses, normally 31 pins would be required to interface the design to the computer as a whole. Desiring a low-cost solution, it had to fit into a conventional 40-pin dual in-line package (DIP). To accomplish this, the data and address lines share pins, and thus require multiple cycles to complete the reading of a single instruction. [3] For comparison, the Texas Instruments TMS9900, another 16-bit design introduced the same year, had double the gate count and was packaged in an expensive custom 64-pin DIP. [5]

Ultimately the F100 failed to meet its 1,000 gate limitation and was built with about 1,500 gates on a 5.8 mm square surface. This was larger than their existing mask-production system and required them to develop a new version with a larger optical reduction ratio. The timing of the design effort also produced one advantage; the F100 was beginning to be readied for production just as the Micralign system was coming to market, and Ferranti adopted this projection alignment system for production, thereby greatly improving yields. [6]

As was common at the time, the F100 was introduced along with a family of support chips, including memory bus interfaces, interrupt controller, a direct memory access controller and a basic serial bus controller. Most of these were built using their ULA chips. [7] Perhaps most interesting among these was the F101-L, released shortly after the CPU, which performed hardware multiplication and division. This became so common that the CPU was soon offered with the F101 on the same die, as the FBH5092. [7]

While the F100 was being developed, Ferranti produced a multi-card rackmount version of the CPU, the F100-M. This was used as a development platform and saw some civilian use as well. Programming tools were initially written in FORTRAN, but most projects were written in CORAL once a compiler for that language became available. [8]

When it was first announced in 1977, 100-unit lots were priced at £57, but that was soon reduced to £39 by 1978. [3] A set containing an F100 along with the F111-L control interface and two F112-L DMA controllers was available for an additional £18. [6] While this made it uncompetitive with MOS-based commercial processors like the $25 Zilog Z80 or $11 MOS 6502 in the same 100-unit lots, it was very competitive with other military-spec designs like the Z80's military-rated unit at $165. [9]

The F100 quickly found use in UK defense projects. Among the more well-known successes was the guidance unit for the Sea Eagle missile. Other examples include the gunnery computer for the Falcon self-propelled anti-aircraft gun, a variety of ballistics computers used in various tanks, the CPU for the UoSAT-1 satellite, and a number of naval computer applications. [8] It was also used in the civilian field in engine management systems from Ultra Electronic Controls, a propeller speed limiter from Dowty Group, and even control of nuclear test equipment using the CAMAC protocol. [9]

F200-L

The F100 line was updated in 1984 with the introduction of the F200-L, which was software and pin-compatible with the F100. The primary changes were to include the math processor, formerly the F101, as part of the base CPU. Improvements in fabrication also allowed the F200-L to run up to 20 MHz. The F200 also supported the 16th bit in addresses, expanding the memory to 64 kW (128 kB). The new F220-L memory management unit, launched at the same time, provided address lookup within a 1 MW (2 MB) memory space. [7]

Plessey purchase

During the 1980s, Ferranti was very successful and cash-flush. Desiring to make more sales into the United States, the company began looking for an established US military supplier they could buy and use as the basis for their own division in the country. This process eventually led them to purchase International Signal and Control (ISC) in 1987, and along with it, changing the name of the company to Ferranti International. [10]

Unfortunately, ISC's major business, unknown to Ferranti at the time, was illegal arms sales. This source of income evaporated with the purchase, leaving them with practically no ongoing business. A lengthy court process ensued, and the debt load of the purchase along with the cost of the litigation drove Ferranti into bankruptcy in December 1993. [10]

As part of the bankruptcy proceedings, the company was broken up, and the semiconductor division was purchased by Plessey. This was subsequently part of the Siemens Plessey unit after Siemens purchased the company in 1989. The line continued to be produced through this period, with the F100/200 itself being produced until at least 1992, [9] and some of the other members until 1995. [11]

Today

Used primarily in military systems, few F100 systems remain today. Among the few are a display F100-L chip at the Museum of Science and Industry in Manchester, also there are two types of display F100-L chips and a DATA book at The ICL Computer Museum, and a small number of cards from a F100 microcomputer at the Centre for Computing History. [9]

Description

Registers

Ferranti F100-L registers
15141312111009080706050403020100(bit position)
Main registers
ACCAccumulator
OROperand Register
Program counter
 PC Program Counter
Condition register
 FM C N V Z I

Most microprocessors of the 1970s used internal 8-bit wide processor registers, an 8-bit data bus and a 16-bit address bus. The F100 used 16-bit registers but only 15-bits in the address bus, but these addresses represented 16-bit words so the total addressable memory was 64 kB, as was the case with most 8-bit processors with 16-bit addressing. [6] At the time the F100 was designed, memory was extremely expensive and typical machines of the era generally featured only 4 kB of SRAM, so the missing 16th bit in the address was not an important consideration. [9]

There are three main user registers. The 16-bit ACC (accumulator) and OR (operand register) are used to hold values being manipulated by the arithmetic logic unit (ALU) during calculations and comparisons. The results of these operations set bits in the 7-bit CR (condition register). Two additional registers are used internally; the 15-bit PC (program counter) holds the address of the currently executing instruction and has an auto-increment feature, while the 16-bit IR (instruction register) is used to hold the actual instruction itself. If the instruction operates on a memory address, the value in the IR is moved to internal latches and the IR is then loaded with the address value. [9]

The CR contained a set of seven bits: [9]

BitMnemonicNameFunction
0IInterrupt Disabledisables interrupts when set
1ZZerotrue if the last comparison resulted in zero
2VoVerflowtrue if the last operation overflowed the ACC
3NNegativetrue if the last operation resulted in a negative
4CCarrytrue if the last math or shift requires a carry
5MMulti-Lengthwhen true, the C bit will be added to math operations and shifts
6FFailtrue if the last external operation timed out

Addressing modes

The F100 had a total of four addressing modes; direct, immediate, pointer and immediate indirect. [7]

Direct mode encoded a constant value directly into the instruction. To do this, only the upper five bits were available for the opcode, allowing a total of 32 possible direct instructions, while the remaining lower 11 bits stored the numeric value. [7] In the standard assembler mnemonics, this was indicated by placing the value directly after the instruction. For instance, AND 0x444 would perform a bitwise AND operation between the current value in the ACC and the 16-bit constant 0x444. Immediate mode was similar to direct, but the value to be accessed is placed in the 16-bits following the instruction in order to allow larger constants. This was indicated with a comma, for instance, AND ,0x4444. [9]

As was common at the time, the F100 featured a form of zero page addressing they referred to as Pointer Indirect Addressing, or simply pointer. Address zero, a 16-bit word, was used as the stack pointer, which lacked its own register. This had to be set to an odd number. Locations 1 through 255 were available for the user. Pointer addressing used the lower 8 bits of the instruction to indicate one of the zero page addresses, whose value would be read as an address, and then the value at that address would be loaded. [7] Pointer addressing was indicated with a slash, for instance, AND /0x44. [9]

Additionally, the F100 had alternate forms of the pointer addressing instructions that performed a pre-increment or post-decrement of the value in the pointer in the zero page. These make it easy to perform loops over blocks of data in main memory without needing a separate increment operation to be read and performed. [7] These were indicated using the + or - at the end of the pointer value, for instance, AND /0x44+ or AND /0x44-. [9]

Finally, indirect addressing was similar to pointer addressing but allows any value in memory to hold the pointer, rather than just the zero page. [7] This is more flexible, but as the address is stored in the 16 bits following the instruction, using this method is slower than zero page because two memory addresses have to be read instead of one. This mode was specified with a dot, for instance, AND .0x4444. [9]

Some of the indirect addressing mode instructions also took a third value, indicating another location in memory. This was used for bitwise comparisons; the instructions included which bit to be tested as the first operand, the location in memory as the second, and the address to jump to as the third. [7] For instance, JBS 0x2 0x4444 0x5555 would test the second bit of the value in location 0x4444 and then jump to location 0x5555 if it was set, or continue on if it was not. [9]

Because the addressing format in the instructions varied in length, memory was naturally broken into segments. The first was the stack pointer in location zero, next was the remaining 255 locations of the zero page, then the maximum 2048 locations of the direct mode (which included the zero page), and finally the remaining memory which could be accessed by the 15-bit addresses. [9]

Instructions

The F100 had a total of 29 instructions, which combined using the various addressing modes results in 153 opcodes. The instructions generally fall into six main categories; math and logical, double-length (32-bit) math and logical, bit tests and conditional branches, interrupt handling, and external functions. The later allows unused bits of the instruction to be passed to external chips for processing. [6]

The instructions were relatively common but had some variations. For instance, ADD and SUB had alternate versions, ADS and SBS, which performed the operation and then stored the result back into the operand address. JMP performed an unconditional jump, while CAL called a subroutine, what most assemblers would call a JSR, and RTN performed a return. Conditional branches allowed test-and-jump. [7]

The instruction format used various fields to encode instructions classes. The four most significant bits, 15 through 12, selected the actual instruction, for instance, 1001 was ADD. The rest of the bits varied depending on the addressing mode. For instance, if direct addressing was being used, bit 11 was set to 0, 10 and 9 to 1, and the remaining 11 bits encoded the address of the operand. If the 11 bits were all set to zero, it instead read the operand from the next 16 bits in memory. [9]

Start up

On startup or reset, the processor examines the AdSel pin (address select). If the pin voltage represents a zero, it jumps to location 0x4000, or 16384 decimal, while if the pin is 1, it jumps to 0x0800, 2048. By placing startup code in ROM at those locations, the boot process can be automated. [9]

Notes

  1. See diagrams, Evans p. 21. [3]

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. Although earlier microprocessors were commonly used in mass-produced devices such as calculators, cash registers, computer terminals, industrial robots, and other applications, the 8080 saw greater success in a wider set of applications, and is largely credited with starting the microcomputer industry.

<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">Zilog Z80</span> 8-bit microprocessor

The Zilog Z80 is an 8-bit microprocessor designed by Zilog that played an important role in the evolution of early computing. Launched in 1976 and software-compatible with the Intel 8080, it offered a compelling alternative due to its better integration and increased performance. As well as the 8080's seven registers and flags register, the Z80 had an alternate register set that duplicated them, two 16-bit index registers and additional instructions including bit manipulation and block copy/search.

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

The Intel 8008 is an early 8-bit microprocessor capable of addressing 16 KB of memory, introduced in April 1972. The 8008 architecture was designed by Computer Terminal Corporation (CTC) and was implemented and manufactured by Intel. While the 8008 was originally designed for use in CTC's Datapoint 2200 programmable terminal, an agreement between CTC and Intel permitted Intel to market the chip to other customers after Seiko expressed an interest in using it for a calculator.

<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.

<span class="mw-page-title-main">RCA 1802</span> Early microprocessor

The COSMAC is an 8-bit microprocessor family introduced by RCA. It is historically notable as the first CMOS microprocessor. The first production model was the two-chip CDP1801R and CDP1801U, which were later combined into the single-chip CDP1802. The 1802 represented the majority of COSMAC production, and today the entire line is known simply as the RCA 1802.

Addressing modes are an aspect of the instruction set architecture in most central processing unit (CPU) designs. The various addressing modes that are defined in a given instruction set architecture define how the machine language instructions in that architecture identify the operand(s) of each instruction. An addressing mode specifies how to calculate the effective memory address of an operand by using information held in registers and/or constants contained within a machine instruction or elsewhere.

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 higher addressed memory is highly dependent on machine architecture. For example, the Motorola 6800 and MOS Technology 6502 processor families treat the first 256 bytes of memory specially, whereas many other processors do not.

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 includes four main 40-pin integrated circuits (ICs); the 3850 CPU which is the arithmetic logic unit, the 3851 Program Storage Unit (PSU) which contains 1 KB of program ROM and handles 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 is another optional system that adds direct memory access into the RAM controlled by the 3852.

<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 implanted medical devices.

The CSG 65CE02 is an 8/16-bit microprocessor developed by Commodore Semiconductor Group in 1988. It is a member of the MOS Technology 6502 family, developed from the CMOS WDC 65C02 released by the Western Design Center in 1983.

TLCS is a prefix applied to microcontrollers made by Toshiba. The product line includes multiple families of CISC and RISC architectures. Individual components generally have a part number beginning with "TMP". E.g. the TMP8048AP is a member of the TLCS-48 family.

<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.

In computer architecture, 16-bit integers, memory addresses, or other data units are those that are 16 bits wide. Also, 16-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers, address buses, or data buses of that size. 16-bit microcomputers are microcomputers that use 16-bit microprocessors.

<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 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.

References

Citations

  1. 1 2 3 Evans & Spittles 2019, p. 20.
  2. "A history of automated AIO's" (PDF). Royal Navy. Archived from the original (PDF) on 18 October 2012.
  3. 1 2 3 4 5 Evans & Spittles 2019, p. 21.
  4. 1 2 3 Push 1977, p. 448.
  5. 1 2 Evans & Spittles 2019, pp. 21–22.
  6. 1 2 3 4 Push 1977, p. 449.
  7. 1 2 3 4 5 6 7 8 9 10 Evans & Spittles 2019, p. 22.
  8. 1 2 Evans & Spittles 2019, p. 23.
  9. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Evans 2016.
  10. 1 2 "The ISC / Ferranti Scandal". Archived from the original on 17 December 2017. Retrieved 13 December 2008.
  11. Evans & Spittles 2019, p. 25.

Bibliography