Misplaced Pages

R3000

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The R3000 is a 32-bit RISC microprocessor chipset developed by MIPS Computer Systems that implemented the MIPS I instruction set architecture (ISA). Introduced in June 1988, it was the second MIPS implementation, succeeding the R2000 as the flagship MIPS microprocessor. It operated at 20, 25 and 33.33 MHz.

#666333

97-412: The MIPS 1 instruction set is small compared to those of the contemporary 80x86 and 680x0 architectures, encoding only more commonly used operations and supporting few addressing modes . Combined with its fixed instruction length and only three different types of instruction formats, this simplified instruction decoding and processing. It employed a 5-stage instruction pipeline , enabling execution at

194-618: A 64 KB (one segment) stack in memory supported by computer hardware . Only words (two bytes) can be pushed to the stack. The stack grows toward numerically lower addresses, with SS:SP pointing to the most recently pushed item. There are 256 interrupts , which can be invoked by both hardware and software. The interrupts can cascade, using the stack to store the return address . The original Intel 8086 and 8088 have fourteen 16- bit registers. Four of them (AX, BX, CX, DX) are general-purpose registers (GPRs), although each may have an additional purpose; for example, only CX can be used as

291-579: A backward compatible version of this functionality on the same microprocessor as the main processor. In addition to this, modern x86 designs also contain a SIMD -unit (see SSE below) where instructions can work in parallel on (one or two) 128-bit words, each containing two or four floating-point numbers (each 64 or 32 bits wide respectively), or alternatively, 2, 4, 8 or 16 integers (each 64, 32, 16 or 8 bits wide respectively). The presence of wide SIMD registers means that existing x86 processors can load or store up to 128 bits of memory data in

388-468: A computer through retail channels rather than directly to customers. Because IBM did not have retail experience, they partnered with the retail chains ComputerLand and Sears , who provided important knowledge of the marketplace and became the main outlets for the PC. More than 190 ComputerLand stores already existed, while Sears was in the process of creating a handful of in-store computer centers for sale of

485-539: A counter with the loop instruction. Each can be accessed as two separate bytes (thus BX's high byte can be accessed as BH and low byte as BL). Two pointer registers have special roles: SP (stack pointer) points to the "top" of the stack , and BP (base pointer) is often used to point at some other place in the stack, typically above the local variables (see frame pointer ). The registers SI, DI, BX and BP are address registers , and may also be used for array indexing. One of four possible 'segment registers' (CS, DS, SS and ES)

582-442: A dedicated power supply and included a hard drive. Although official hard drive support did not exist, the third party market did provide early hard drives that connected to the floppy disk controller , but required a patched version of PC DOS to support the larger disk sizes. The only option for human interface provided in the base PC was the built-in keyboard port, meant to connect to the included Model F keyboard. The Model F

679-445: A design could be delivered within a year and a prototype within 30 days. The prototype worked poorly but was presented with a detailed business plan which proposed that the new computer have an open architecture , use non-proprietary components and software, and be sold through retail stores, all contrary to IBM practice. It also estimated sales of 220,000 computers over three years, more than IBM's entire installed base . This swayed

776-583: A hard drive, the motherboard did not support BIOS expansion ROMs which was needed to support a hard drive controller, and both PC DOS and the BIOS had no support for hard disks. After the XT was released, IBM altered the design of the 5150 to add most of these capabilities, except for the upgraded power supply. At this point adding a hard drive was possible, but required the purchase of the IBM 5161 Expansion Unit, which contained

873-424: A kind of system-level prefix. An 8086 system, including coprocessors such as 8087 and 8089 , and simpler Intel-specific system chips, was thereby described as an iAPX 86 system. There were also terms iRMX (for operating systems), iSBC (for single-board computers), and iSBX (for multimodule boards based on the 8086-architecture), all together under the heading Microsystem 80 . However, this naming scheme

970-567: A library of common functions that all software can use for many purposes, such as video output, keyboard input, disk access, interrupt handling, testing memory, and other functions. IBM shipped three versions of the BIOS throughout the PC's lifespan. While most home computers had built-in video output hardware, IBM took the unusual approach of offering two different graphics options, the MDA and CGA cards. The former provided high-resolution monochrome text, but could not display anything except text, while

1067-418: A lowest common denominator for many modern operating systems and also probably because the term became common after the introduction of the 80386 in 1985. A few years after the introduction of the 8086 and 8088, Intel added some complexity to its naming scheme and terminology as the "iAPX" of the ambitious but ill-fated Intel iAPX 432 processor was tried on the more successful 8086 family of chips, applied as

SECTION 10

#1732786951667

1164-476: A major change to the architecture referred to as X86S (formerly known as X86-S). The S in X86S stands for "simplification", which aims to remove support for legacy execution modes and instructions. A processor implementing this proposal would start execution directly in long mode and would only support 64-bit operating systems. 32-bit code would only be supported for user applications running in ring 3, and would use

1261-401: A maximum of 64 KB onboard, and the more common 64 KB revision to a maximum of 256 KB on the motherboard. RAM cards could upgrade either variant further, for a total of 640 KB conventional memory , and possibly several megabytes of expanded memory beyond that, though on PC/XT-class machines, the latter was a very expensive third-party hardware option only available later in

1358-547: A memory location. However, this memory operand may also be the destination (or a combined source and destination), while the other operand, the source, can be either register or immediate. Among other factors, this contributes to a code size that rivals eight-bit machines and enables efficient use of instruction cache memory. The relatively small number of general registers (also inherited from its 8-bit ancestors) has made register-relative addressing (using small immediate offsets) an important method of accessing operands, especially on

1455-560: A more complex micro-op which fits the execution model better and thus can be executed faster or with fewer machine resources involved. Another way to try to improve performance is to cache the decoded micro-operations, so the processor can directly access the decoded micro-operations from a special cache, instead of decoding them again. Intel followed this approach with the Execution Trace Cache feature in their NetBurst microarchitecture (for Pentium 4 processors) and later in

1552-657: A mouse.) Connectivity to other computers and peripherals was initially provided through serial and parallel ports. IBM provided a serial card based on an 8250 UART . The BIOS supports up to two serial ports. IBM provided two different options for connecting Centronics-compatible parallel printers. One was the IBM Printer Adapter, and the other was integrated into the MDA as the IBM Monochrome Display and Printer Adapter. The expansion capability of

1649-505: A policy of strict secrecy, with all other IBM divisions kept in the dark about the project. Several CPUs were considered, including the Texas Instruments TMS9900 , Motorola 68000 and Intel 8088 . The 68000 was considered the best choice, but was not production-ready like the others. The IBM 801 RISC processor was also considered, since it was considerably more powerful than the other options, but rejected due to

1746-796: A rate approaching one instruction per cycle, unusual for its time. This MIPS generation supports up to four co-processors. In addition to the CPU core, the R3000 microprocessor includes a Control Processor (CP), which contains a Translation Lookaside Buffer and a Memory Management Unit . The CP works as a coprocessor . Besides the CP, the R3000 can also support an external R3010 numeric coprocessor, along with two other external coprocessors. The R3000 CPU does not include level 1 cache . Instead, its on-chip cache controller operates external data and instruction caches of up to 256 KB each. It can access both caches during

1843-595: A separate monochrome monitor for text menus. Third parties went on to provide an enormous variety of aftermarket graphics adapters, such as the Hercules Graphics Card . The software and hardware of the PC, at release, was designed around a single 8-bit adaptation of the ASCII character set, now known as code page 437 . The two bays in the front of the machine could be populated with one or two 5.25″ floppy disk drives, storing 160 KB per disk side for

1940-670: A single instruction and also perform bitwise operations (although not integer arithmetic ) on full 128-bits quantities in parallel. Intel's Sandy Bridge processors added the Advanced Vector Extensions (AVX) instructions, widening the SIMD registers to 256 bits. The Intel Initial Many Core Instructions implemented by the Knights Corner Xeon Phi processors, and the AVX-512 instructions implemented by

2037-459: A total of 320 KB of storage on one disk. The floppy drives require a controller card inserted in an expansion slot, and connect with a single ribbon cable with two edge connectors. The IBM floppy controller card provides an external 37-pin D-sub connector for attachment of an external disk drive, although IBM did not offer one for purchase until 1986. As was common for home computers of the era,

SECTION 20

#1732786951667

2134-424: A well publicized quote from an industry analyst was, "IBM bringing out a personal computer would be like teaching an elephant to tap dance." IBM had previously produced microcomputers, such as 1975's IBM 5100 , but targeted them towards businesses; the 5100 had a price tag as high as $ 20,000. Their entry into the home computer market needed to be competitively priced. In 1980, IBM president John Opel, recognizing

2231-403: A year. By 1984, IBM's revenue from the PC market was $ 4 billion, more than twice that of Apple. A 1983 study of corporate customers found that two thirds of large customers standardizing on one computer chose the PC, while only 9% chose Apple. A 1985 Fortune survey found that 56% of American companies with personal computers used PCs while 16% used Apple. Almost as soon as the PC reached

2328-470: Is allowed for almost all instructions. The largest native size for integer arithmetic and memory addresses (or offsets ) is 16, 32 or 64 bits depending on architecture generation (newer processors include direct support for smaller integers as well). Multiple scalar values can be handled simultaneously via the SIMD unit present in later generations, as described below. Immediate addressing offsets and immediate data may be expressed as 8-bit quantities for

2425-411: Is housed in a wide, short steel chassis intended to support the weight of a CRT monitor. The front panel is made of plastic, with an opening where one or two disk drives can be installed. The back panel houses a power inlet and switch, a keyboard connector, a cassette connector and a series of tall vertical slots with blank metal panels which can be removed in order to install expansion cards. Internally,

2522-571: Is not synonymous with IBM PC compatibility , as this implies a multitude of other computer hardware . Embedded systems and general-purpose computers used x86 chips before the PC-compatible market started , some of them before the IBM PC (1981) debut. As of June 2022 , most desktop and laptop computers sold are based on the x86 architecture family, while mobile categories such as smartphones or tablets are dominated by ARM . At

2619-463: Is one of the two modes only available in long mode . The addressing modes were not dramatically changed from 32-bit mode, except that addressing was extended to 64 bits, virtual addresses are now sign extended to 64 bits (in order to disallow mode bits in virtual addresses), and other selector details were dramatically reduced. In addition, an addressing mode was added to allow memory references relative to RIP (the instruction pointer ), to ease

2716-1001: Is underlining x86 as an example of how continuous refinement of established industry standards can resist the competition from completely new architectures. The table below lists processor models and model series implementing various architectures in the x86 family, in chronological order. Each line item is characterized by significantly improved or commercially successful processor microarchitecture designs. At various times, companies such as IBM , VIA , NEC , AMD , TI , STM , Fujitsu , OKI , Siemens , Cyrix , Intersil , C&T , NexGen , UMC , and DM&P started to design or manufacture x86 processors (CPUs) intended for personal computers and embedded systems. Other companies that designed or manufactured x86 or x87 processors include ITT Corporation , National Semiconductor , ULSI System Technology, and Weitek . Such x86 implementations were seldom simple copies but often employed different internal microarchitectures and different solutions at

2813-491: Is used to form a memory address. In the original 8086 / 8088 / 80186 / 80188 every address was built from a segment register and one of the general purpose registers. For example ds:si is the notation for an address formed as [16 * ds + si] to allow 20-bit addressing rather than 16 bits, although this changed in later processors. At that time only certain combinations were supported. The FLAGS register contains flags such as carry flag , overflow flag and zero flag . Finally,

2910-458: The fstsw instruction, and it is common to simply use some of its bits for branching by copying it into the normal FLAGS. In the Intel 80286 , to support protected mode , three special registers hold descriptor table addresses (GDTR, LDTR, IDTR ), and a fourth task register (TR) is used for task switching. The 80287 is the floating-point coprocessor for the 80286 and has the same registers as

3007-525: The 6x86 was significantly faster than the Pentium on integer code. AMD later managed to grow into a serious contender with the K6 set of processors, which gave way to the very successful Athlon and Opteron . There were also other contenders, such as Centaur Technology (formerly IDT ), Rise Technology , and Transmeta . VIA Technologies ' energy efficient C3 and C7 processors, which were designed by

R3000 - Misplaced Pages Continue

3104-496: The 80486 and all subsequent x86 models, the floating-point processing unit (FPU) is integrated on-chip. The Pentium MMX added eight 64-bit MMX integer vector registers (MM0 to MM7, which share lower bits with the 80-bit-wide FPU stack). With the Pentium III , Intel added a 32-bit Streaming SIMD Extensions (SSE) control/status register (MXCSR) and eight 128-bit SSE floating-point registers (XMM0 to XMM7). Starting with

3201-466: The 8088 . The 8086 was introduced in 1978 as a fully 16-bit extension of 8-bit Intel's 8080 microprocessor, with memory segmentation as a solution for addressing more memory than can be covered by a plain 16-bit address. The term "x86" came into being because the names of several successors to Intel's 8086 processor end in "86", including the 80186 , 80286 , 80386 and 80486 . Colloquially, their names were "186", "286", "386" and "486". The term

3298-573: The AMD Opteron processor, the x86 architecture extended the 32-bit registers into 64-bit registers in a way similar to how the 16 to 32-bit extension took place. An R -prefix (for "register") identifies the 64-bit registers (RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP, RFLAGS, RIP), and eight additional 64-bit general registers (R8–R15) were also introduced in the creation of x86-64 . Also, eight more SSE vector registers (XMM8–XMM15) were added. However, these extensions are only usable in 64-bit mode, which

3395-653: The Centaur company, were sold for many years following their release in 2005. Centaur's 2008 design, the VIA Nano , was their first processor with superscalar and speculative execution . It was introduced at about the same time (in 2008) as Intel introduced the Intel Atom , its first "in-order" processor after the P5 Pentium . Many additions and extensions have been added to the original x86 instruction set over

3492-640: The IBM System/23 Datamaster . The 62-pin expansion bus slots were also designed to be similar to the Datamaster slots, and its keyboard design and layout became the Model F keyboard shipped with the PC, but otherwise the PC design differed in many ways. The 8088 motherboard was designed in 40 days, with a working prototype created in four months, demonstrated in January 1981. The design

3589-607: The IBM System/370 , and Matsushita acknowledged publicly that it had discussed with IBM the possibility of manufacturing a personal computer in partnership, although this project was abandoned. The public responded to these rumors with skepticism, owing to IBM's tendency towards slow-moving, bureaucratic business practices tailored towards the production of large, sophisticated and expensive business systems. As with other large computer companies, its new products typically required about four to five years for development, and

3686-514: The Intel 8800 ), the Intel 960 , Intel 860 and the Intel/Hewlett-Packard Itanium architecture. However, the continuous refinement of x86 microarchitectures , circuitry and semiconductor manufacturing would make it hard to replace x86 in many segments. AMD's 64-bit extension of x86 (which Intel eventually responded to with a compatible design) and the scalability of x86 chips in the form of modern multi-core CPUs,

3783-532: The TOP500 list. A large amount of software , including a large list of x86 operating systems are using x86-based hardware. Modern x86 is relatively uncommon in embedded systems , however, and small low power applications (using tiny batteries), and low-cost microprocessor markets, such as home appliances and toys, lack significant x86 presence. Simple 8- and 16-bit based architectures are common here, as well as simpler RISC architectures like RISC-V , although

3880-461: The machine code format was expanded. To provide backward compatibility, segments with executable code can be marked as containing either 16-bit or 32-bit instructions. Special prefixes allow inclusion of 32-bit instructions in a 16-bit segment or vice versa. The 80386 had an optional floating-point coprocessor, the 80387 ; it had eight 80-bit wide registers: st(0) to st(7), like the 8087 and 80287. The 80386 could also use an 80287 coprocessor. With

3977-407: The 1980s opened, their market share in the growing minicomputer market failed to keep up with competitors, while other manufacturers were beginning to see impressive profits in the microcomputer space. The market for personal computers was dominated at the time by Tandy , Commodore , and Apple , whose machines sold for several hundred dollars each and had become very popular. The microcomputer market

R3000 - Misplaced Pages Continue

4074-415: The 1980s was from Apple 's Macintosh product line, as well as consumer-grade platforms created by companies like Commodore and Atari . Most present-day personal computers share architectural features in common with the original IBM PC, including the Intel -based Mac computers manufactured from 2006 to 2022 . Prior to the 1980s, IBM had largely been known as a provider of business computer systems. As

4171-471: The 8087 with the same data formats. With the advent of the 32-bit 80386 processor, the 16-bit general-purpose registers, base registers, index registers, instruction pointer, and FLAGS register , but not the segment registers, were expanded to 32 bits. The nomenclature represented this by prefixing an " E " (for "extended") to the register names in x86 assembly language . Thus, the AX register corresponds to

4268-491: The Corporate Management Committee, which converted the group into a business unit named "Project Chess", and provided the necessary funding and authority to do whatever was needed to develop the computer in the given timeframe. The team received permission to expand to 150 people by the end of 1980, and in one day more than 500 IBM employees called in asking to join. The design process was kept under

4365-585: The Decoded Stream Buffer (for Core-branded processors since Sandy Bridge). Transmeta used a completely different method in their Crusoe x86 compatible CPUs. They used just-in-time translation to convert x86 instructions to the CPU's native VLIW instruction set. Transmeta argued that their approach allows for more power efficient designs since the CPU can forgo the complicated decode step of more traditional x86 implementations. Addressing modes for 16-bit processor modes can be summarized by

4462-563: The IBM 5150's lifecycle and only usable with dedicated software support (i.e. only accessible via a RAM window in the Upper Memory Area ); this was relatively rarely equipped and utilized on the original IBM PC, much less fully so, thus the machine's maximum RAM configuration as commonly understood was 640 KB. The BIOS is the firmware of the IBM PC, occupying one 8 KB chip on the motherboard. It provides bootstrap code and

4559-435: The IBM PC offered a port for connecting a cassette data recorder . Unlike the typical home computer however, this was never a major avenue for software distribution, probably because very few PCs were sold without floppy drives. The port was removed on the very next PC model, the XT. At release, IBM did not offer any hard disk drive option and adding one was difficult - the PC's stock power supply had inadequate power to run

4656-399: The IBM PC was very significant to its success in the market. Some publications highlighted IBM's uncharacteristic decision to publish complete, thorough specifications of the system bus and memory map immediately on release, with the intention of fostering a market of compatible third-party hardware and software. The motherboard includes five 62-pin card edge connectors which are connected to

4753-877: The Knights Landing Xeon Phi processors and by Skylake-X processors, use 512-bit wide SIMD registers. During execution , current x86 processors employ a few extra decoding steps to split most instructions into smaller pieces called micro-operations. These are then handed to a control unit that buffers and schedules them in compliance with x86-semantics so that they can be executed, partly in parallel, by one of several (more or less specialized) execution units . These modern x86 designs are thus pipelined , superscalar , and also capable of out of order and speculative execution (via branch prediction , register renaming , and memory dependence prediction ), which means they may execute multiple (partial or complete) x86 instructions simultaneously, and not necessarily in

4850-462: The PC, covering such features as the bytecoding for color monitors, DMA access operation, and the keyboard interface. They were never enforced. Many of the designers were computer hobbyists who owned their own computers, including many Apple II owners, which influenced the decisions to design the computer with an open architecture and publish technical information so others could create compatible software and expansion slot peripherals. During

4947-445: The R3000 specifically for embedded systems . Derivatives of the R3000 for non-embedded applications include: Derivatives of the R3000 for embedded applications include: 80x86 x86 (also known as 80x86 or the 8086 family ) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the 8086 microprocessor and its 8-bit-external-bus variant,

SECTION 50

#1732786951667

5044-583: The R3000 was fabricated by MIPS partners including Integrated Device Technology (IDT), LSI Logic , NEC Corporation , Performance Semiconductor , and others. It was fabricated in a 1.2 μm complementary metal–oxide–semiconductor (CMOS) process with two levels of aluminium interconnect . The R3000 was also used as an embedded microprocessor. When advances in technology rendered it obsolete for high-performance systems, it found continued use in lower-cost designs. Companies such as LSI Logic and Integrated Device Technology developed derivatives of

5141-434: The advanced but delayed 5k86 ( K5 ), which, internally, was closely based on AMD's earlier 29K RISC design; similar to NexGen 's Nx586 , it used a strategy such that dedicated pipeline stages decode x86 instructions into uniform and easily handled micro-operations , a method that has remained the basis for most x86 designs to this day. Some early versions of these microprocessors had heat dissipation problems. The 6x86

5238-415: The art, had been planned for 2021; as of March 2022 the release had not taken place, however. The instruction set architecture has twice been extended to a larger word size. In 1985, Intel released the 32-bit 80386 (later known as i386) which gradually replaced the earlier 16-bit chips in computers (although typically not in embedded systems ) during the following years; this extended programming model

5335-520: The chassis is dominated by a motherboard which houses the CPU, built-in RAM, expansion RAM sockets, and slots for expansion cards. The IBM PC was highly expandable and upgradeable, but the base factory configuration included: The PC is built around a single large circuit board called a motherboard which carries the processor, built-in RAM, expansion slots, keyboard and cassette ports, and the various peripheral integrated circuits that connected and controlled

5432-567: The components of the machine. The peripheral chips included an Intel 8259 PIC , an Intel 8237 DMA controller, and an Intel 8253 PIT . The PIT provides 18.2 Hz clock "ticks" and dynamic memory refresh timing. The CPU is an Intel 8088 , a cost-reduced form of the Intel 8086 which largely retains the 8086's internal 16-bit logic, but exposes only an 8-bit bus. The CPU is clocked at 4.77 MHz, which would eventually become an issue when clones and later PC models offered higher CPU speeds that broke compatibility with software developed for

5529-579: The corresponding YMM register. IBM PC The IBM Personal Computer (model 5150, commonly known as the IBM PC ) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard . Released on August 12, 1981, it was created by a team of engineers and designers at International Business Machines (IBM), directed by William C. Lowe and Philip Don Estridge in Boca Raton, Florida . Powered by an x86 -architecture Intel 8088 processor,

5626-469: The design constraint to use off-the-shelf parts . The TMS9900 was rejected as it was inferior to the Intel 8088. IBM chose the 8088 over the similar but superior 8086 because Intel offered a better price for the former and could provide more units, and the 8088's 8-bit bus reduced the cost of the rest of the computer. The 8088 had the advantage that IBM already had familiarity with the 8085 from designing

5723-534: The design process IBM avoided vertical integration as much as possible, for example choosing to license Microsoft BASIC rather than utilizing the in-house version of BASIC used for mainframes due to the better existing public familiarity with the Microsoft version. The IBM PC debuted on August 12, 1981, after a twelve-month development. Pricing started at $ 1,565 for a configuration with 16 KB RAM, Color Graphics Adapter , keyboard, and no disk drives. The price

5820-569: The electronic and physical levels. Quite naturally, early compatible microprocessors were 16-bit, while 32-bit designs were developed much later. For the personal computer market, real quantities started to appear around 1990 with i386 and i486 compatible processors, often named similarly to Intel's original chips. After the fully pipelined i486 , in 1993 Intel introduced the Pentium brand name (which, unlike numbers, could be trademarked ) for their new set of superscalar x86 designs. With

5917-401: The execution units with the decode steps opens up possibilities for more analysis of the (buffered) code stream, and therefore permits detection of operations that can be performed in parallel, simultaneously feeding more than one execution unit. The latest processors also do the opposite when appropriate; they combine certain x86 sequences (such as a compare followed by a conditional jump) into

SECTION 60

#1732786951667

6014-549: The first two actively produce modern 64-bit designs, leading to what has been called a "duopoly" of Intel and AMD in x86 processors. However, in 2014 the Shanghai-based Chinese company Zhaoxin , a joint venture between a Chinese company and VIA Technologies, began designing VIA based x86 processors for desktops and laptops. The release of its newest "7" family of x86 processors (e.g. KX-7000), which are not quite as fast as AMD or Intel chips but are still state of

6111-528: The formula: Addressing modes for 32-bit x86 processor modes can be summarized by the formula: Addressing modes for the 64-bit processor mode can be summarized by the formula: Instruction relative addressing in 64-bit code (RIP + displacement, where RIP is the instruction pointer register ) simplifies the implementation of position-independent code (as used in shared libraries in some operating systems). The 8086 had 64 KB of eight-bit (or alternatively 32 K-word of 16-bit ) I/O space, and

6208-399: The frequently occurring cases or contexts where a −128..127 range is enough. Typical instructions are therefore 2 or 3 bytes in length (although some are much longer, and some are single-byte). To further conserve encoding space, most registers are expressed in opcodes using three or four bits, the latter via an opcode prefix in 64-bit mode, while at most one operand to an instruction can be

6305-435: The high end, x86 continues to dominate computation-intensive workstation and cloud computing segments. In the 1980s and early 1990s, when the 8088 and 80286 were still in common use, the term x86 usually represented any 8086-compatible CPU. Today, however, x86 usually implies binary compatibility with the 32-bit instruction set of the 80386 . This is due to the fact that this instruction set has become something of

6402-501: The implementation of position-independent code , used in shared libraries in some operating systems. SIMD registers XMM0–XMM15 (XMM0–XMM31 when AVX-512 is supported). SIMD registers YMM0–YMM15 (YMM0–YMM31 when AVX-512 is supported). Lower half of each of the YMM registers maps onto the corresponding XMM register. SIMD registers ZMM0–ZMM31. Lower half of each of the ZMM registers maps onto

6499-408: The instruction pointer (IP) points to the next instruction that will be fetched from memory and then executed; this register cannot be directly accessed (read or written) by a program. The Intel 80186 and 80188 are essentially an upgraded 8086 or 8088 CPU, respectively, with on-chip peripherals added, and they have the same CPU registers as the 8086 and 8088 (in addition to interface registers for

6596-450: The keyboard was extremely positive, with some sources describing it as a major selling point of the PC and even as "the best keyboard available on any microcomputer." At release, IBM provided a Game Control Adapter which offered a 15-pin port intended for the connection of up to two joysticks, each having two analog axes and two buttons. (The early PCs predated the advent of the " Windows, Icons, Mouse, Pointer" concept and so did not have

6693-411: The latter provided medium- and low-resolution color graphics and text. CGA used the same scan rate as NTSC television , allowing it to provide a composite video output which could be used with any compatible television or composite monitor , as well as a direct-drive TTL output suitable for use with any RGBI monitor using an NTSC scan rate. IBM also sold the 5153 color monitor for this purpose, but it

6790-447: The lower 16 bits of the new 32-bit EAX register, SI corresponds to the lower 16 bits of ESI, and so on. The general-purpose registers, base registers, and index registers can all be used as the base in addressing modes, and all of those registers except for the stack pointer can be used as the index in addressing modes. Two new segment registers (FS and GS) were added. With a greater number of registers, instructions and operands,

6887-407: The machine was based on open architecture and third-party peripherals. Over time, expansion cards and software technology increased to support it. The PC had a substantial influence on the personal computer market ; the specifications of the IBM PC became one of the most popular computer design standards in the world. The only significant competition it faced from a non-compatible platform throughout

6984-554: The market, rumors of clones began, and the first legal PC-compatible clone—the MPC 1600 by Columbia Data Products —was released in June 1982, less than a year after the PC's debut. Eventually, IBM sold its PC business to Lenovo in 2004 . For low cost and a quick design turnaround time, the hardware design of the IBM PC used entirely "off-the-shelf" parts from third party manufacturers, rather than unique hardware designed by IBM. The PC

7081-515: The market, sold only 69,000. Software support from the industry grew rapidly, with the IBM nearly instantly becoming the primary target for most microcomputer software development. One publication counted 753 software packages available a year after the PC's release, four times as many as were available for the Macintosh a year after its launch. Hardware support also grew rapidly, with 30–40 companies competing to sell memory expansion cards within

7178-567: The most obvious use was the addition of an Intel 8087 math coprocessor, which improved floating-point math performance. PC mainboards were manufactured with the first memory bank of initially Mostek 4116-compatible, or later 4164-compatible DIP DRAMs soldered to the board, for a minimum configuration of first just 16 KB, or later 64 KB of RAM. Memory upgrades were provided by IBM and third parties both for socketed installation in three further onboard banks, and as ISA expansion cards. The early 16 KB mainboards could be upgraded to

7275-473: The name EM64T and finally using Intel 64. Microsoft and Sun Microsystems / Oracle also use term "x64", while many Linux distributions , and the BSDs also use the "amd64" term. Microsoft Windows, for example, designates its 32-bit versions as "x86" and 64-bit versions as "x64", while installation files of 64-bit Windows versions are required to be placed into a directory called "AMD64". In 2023, Intel proposed

7372-415: The new product. Reception was overwhelmingly positive, with analysts estimating sales volume in the billions of dollars in the first few years after release. After release, IBM's PC immediately became the talk of the entire computing industry. Dealers were overwhelmed with orders, including customers offering pre-payment for machines with no guaranteed delivery date. By the time the machine began shipping,

7469-503: The original PC. The single base clock frequency for the system was 14.31818 MHz, which when divided by 3, yielded the 4.77 MHz for the CPU (which was considered close enough to the then 5 MHz limit of the 8088), and when divided by 4, yielded the required 3.579545 MHz for the NTSC color carrier frequency. The PC motherboard included a second, empty socket, described by IBM simply as an "auxiliary processor socket", although

7566-454: The peripherals). The 8086, 8088, 80186, and 80188 can use an optional floating-point coprocessor, the 8087 . The 8087 appears to the programmer as part of the CPU and adds eight 80-bit wide registers, st(0) to st(7), each of which can hold numeric data in one of seven formats: 32-, 64-, or 80-bit floating point, 16-, 32-, or 64-bit (binary) integer, and 80-bit packed decimal integer. It also has its own 16-bit status register accessible through

7663-447: The reason for the decision to use third-party components. Atari proposed to IBM in 1980 that it act as original equipment manufacturer for an IBM microcomputer, a potential solution to IBM's known inability to move quickly to meet a rapidly changing market. The idea of acquiring Atari was considered but rejected in favor of a proposal by Lowe that by forming an independent internal working group and abandoning all traditional IBM methods,

7760-473: The same clock cycle. The R3000 found much success and was used by many companies in their workstations and servers. Users included: The R3000 was a further development of the R2000 with minor improvements including larger TLB and a faster bus to the external caches. The R3000 die contained 115,000 transistors and measured about 75,000 square mils (48 mm). MIPS was a fabless semiconductor company, so

7857-418: The same order as given in the instruction stream. Some Intel CPUs ( Xeon Foster MP , some Pentium 4 , and some Nehalem and later Intel Core processors) and AMD CPUs (starting from Zen ) are also capable of simultaneous multithreading with two threads per core ( Xeon Phi has four threads per core). Some Intel CPUs support transactional memory ( TSX ). When introduced, in the mid-1990s, this method

7954-443: The same simplified segmentation as long mode. The x86 architecture is a variable instruction length, primarily " CISC " design with emphasis on backward compatibility . The instruction set is not typical CISC, however, but basically an extended version of the simple eight-bit 8008 and 8080 architectures. Byte-addressing is enabled and words are stored in memory with little-endian byte order. Memory access to unaligned addresses

8051-454: The stack. Much work has therefore been invested in making such accesses as fast as register accesses—i.e., a one cycle instruction throughput, in most circumstances where the accessed data is available in the top-level cache. A dedicated floating-point processor with 80-bit internal registers, the 8087 , was developed for the original 8086 . This microprocessor subsequently developed into the extended 80387 , and later processors incorporated

8148-407: The term "PC" was becoming a household name. Sales exceeded IBM's expectations by as much as 800% (9x), with the company at one point shipping as many as 40,000 PCs per month. IBM estimated that home users made up 50 to 70% of purchases from retail stores. In 1983, IBM sold more than 750,000 machines, while Digital Equipment Corporation , one of the companies whose success had spurred IBM to enter

8245-567: The value of entering this growing market, assigned William C. Lowe and Philip Don Estridge as heads of the new Entry Level Systems unit in Boca Raton, Florida. Market research found that computer dealers were very interested in selling an IBM product, but they insisted the company use a design based on standard parts, not IBM-designed ones so that stores could perform their own repairs rather than requiring customers to send machines back to IBM for service. Another source cites time pressure as

8342-490: The x86 naming scheme now legally cleared, other x86 vendors had to choose different names for their x86-compatible products, and initially some chose to continue with variations of the numbering scheme: IBM partnered with Cyrix to produce the 5x86 and then the very efficient 6x86 (M1) and 6x86 MX ( MII ) lines of Cyrix designs, which were the first x86 microprocessors implementing register renaming to enable speculative execution . AMD meanwhile designed and manufactured

8439-432: The x86-compatible VIA C7 , VIA Nano , AMD 's Geode , Athlon Neo and Intel Atom are examples of 32- and 64-bit designs used in some relatively low-power and low-cost segments. There have been several attempts, including by Intel, to end the market dominance of the "inelegant" x86 architecture designed directly from the first simple 8-bit microprocessors. Examples of this are the iAPX 432 (a project originally named

8536-484: The years, almost consistently with full backward compatibility . The architecture family has been implemented in processors from Intel, Cyrix , AMD , VIA Technologies and many other companies; there are also open implementations, such as the Zet SoC platform (currently inactive). Nevertheless, of those, only Intel, AMD, VIA Technologies, and DM&P Electronics hold x86 architectural licenses, and from these, only

8633-537: Was also affected by a few minor compatibility problems, the Nx586 lacked a floating-point unit (FPU) and (the then crucial) pin-compatibility, while the K5 had somewhat disappointing performance when it was (eventually) introduced. Customer ignorance of alternatives to the Pentium series further contributed to these designs being comparatively unsuccessful, despite the fact that the K5 had very good Pentium compatibility and

8730-402: Was designed to compete with comparable machines in the market. For comparison, the Datamaster, announced two weeks earlier as IBM's least expensive computer, cost $ 10,000. IBM's marketing campaign licensed the likeness of Charlie Chaplin 's character " The Little Tramp " for a series of advertisements based on Chaplin's movies, played by Billy Scudder. The PC was IBM's first attempt to sell

8827-406: Was essentially complete by April 1981, when it was handed off to the manufacturing team. PCs were assembled in an IBM plant in Boca Raton, with components made at various IBM and third party factories. The monitor was an existing design from IBM Japan ; the printer was manufactured by Epson . Because none of the functional components were designed by IBM, they obtained only a handful of patents on

8924-540: Was initially developed for the IBM Datamaster , and was substantially better than the keyboards provided with virtually all home computers on the market at that time in many regards - number of keys, reliability and ergonomics. While some home computers of the time utilized chiclet keyboards or inexpensive mechanical designs, the IBM keyboard provided good ergonomics, reliable and positive tactile key mechanisms and flip-up feet to adjust its angle. Public reception of

9021-423: Was large enough for IBM's attention, with $ 15 billion in sales by 1979 and projected annual growth of more than 40% during the early 1980s. Other large technology companies had entered it, such as Hewlett-Packard , Texas Instruments and Data General , and some large IBM customers were buying Apples. As early as 1980 there were rumors of IBM developing a personal computer, possibly a miniaturized version of

9118-453: Was not available at release and was not released until March 1983. MDA scanned at a higher frequency and required a proprietary monitor, the IBM 5151 . The card also included a built-in printer port. Both cards could also be installed simultaneously for mixed graphics and text applications. For instance, AutoCAD , Lotus 1-2-3 and other software allowed use of a CGA Monitor for graphics and

9215-403: Was originally referred to as the i386 architecture (like its first implementation) but Intel later dubbed it IA-32 when introducing its (unrelated) IA-64 architecture. In 1999–2003, AMD extended this 32-bit architecture to 64 bits and referred to it as x86-64 in early documents and later as AMD64 . Intel soon adopted AMD's architectural extensions under the name IA-32e, later using

9312-497: Was quite temporary, lasting for a few years during the early 1980s. Although the 8086 was primarily developed for embedded systems and small multi-user or single-user computers, largely as a response to the successful 8080-compatible Zilog Z80 , the x86 line soon grew in features and processing power. Today, x86 is ubiquitous in both stationary and portable personal computers, and is also used in midrange computers , workstations , servers, and most new supercomputer clusters of

9409-436: Was sometimes referred to as a "RISC core" or as "RISC translation", partly for marketing reasons, but also because these micro-operations share some properties with certain types of RISC instructions. However, traditional microcode (used since the 1950s) also inherently shares many of the same properties; the new method differs mainly in that the translation to micro-operations now occurs asynchronously. Not having to synchronize

#666333