IBM PC compatible

IBM PC compatible computers are similar to the original IBM PC, XT, and AT that are able to use the same software and expansion cards. Such computers were referred to as PC clones, or IBM clones. The term "IBM PC compatible" is now a historical description only, since IBM no longer sells personal computers. The industry jargon "PC" sometimes doesn't mean "personal computer" generally, but rather an x86 computer capable of running Microsoft's Windows operating system, IBM's OS/2, or Linux, in contrast to Apple's macOS, which usually gives the computer the designation of "Mac".
These "clones" duplicate almost exactly all the significant features of the IBM PC architecture. This was facilitated by IBM's choice of commodity hardware components and by various manufacturers' ability to reverse engineer the BIOS firmware using a "clean room design" technique. Columbia Data Products built the first clone of the IBM personal computer by a clean room implementation of its BIOS.
Early IBM PC compatibles used the same computer bus as the original PC and AT models. The IBM AT compatible bus was later named the Industry Standard Architecture (ISA) bus by manufacturers of compatible computers.
Descendants of the IBM PC compatibles comprise the majority of desktop computers on the market presently, with the dominant operating system being Microsoft Windows, although interoperability with the bus structure and peripherals of the original PC architecture may be limited or non-existent. Some of these computers ran MS-DOS but had enough hardware differences that IBM compatible software could not be used; examples include slight differences in the memory map, serial ports or hardware.
Only the Macintosh kept significant market share without having compatibility with the IBM PC.
Origins.
IBM decided in 1980 to market a low-cost single-user computer as quickly as possible. On 12 August 1981, the first IBM PC went on sale. There were three operating systems (OS) available for it. The least expensive and most popular was PC DOS made by Microsoft. In a crucial concession, IBM's agreement allowed Microsoft to sell its own version, MS-DOS, for non-IBM computers. The only component of the original PC architecture exclusive to IBM was the BIOS (Basic Input/Output System).
IBM at first asked developers to avoid writing software that addressed the computer's hardware directly, and to instead make standard calls to BIOS functions that carried out hardware-dependent operations. This software would run on any machine using MS-DOS or PC DOS. Software that directly addressed the hardware instead of making standard calls was faster, however; this was particularly relevant to games. Software addressing IBM PC hardware in this way would not run on MS-DOS machines with different hardware. The IBM PC was sold in high enough volumes to justify writing software specifically for it, and this encouraged other manufacturers to produce machines which could use the same programs, expansion cards, and peripherals as the PC. The 808x computer marketplace rapidly excluded all machines which were not hardware- and software-compatible with the PC. The 640 KB barrier on "conventional" system memory available to MS-DOS is a legacy of that period; other non-clone machines, while subject to a limit, could exceed 640 kB.
Rumors of "lookalike", compatible computers, created without IBM's approval, began almost immediately after the IBM PC's release. "InfoWorld" wrote on the first anniversary of the IBM PC that
By June 1983 "PC Magazine" defined "PC 'clone'" as "a computer [that can] accommodate the user who takes a disk home from an IBM PC, walks across the room, and plugs it into the 'foreign' machine". Because of a shortage of IBM PCs that year, many customers purchased clones instead. Columbia Data Products produced the first computer more or less compatible with the IBM PC standard during June 1982, soon followed by Eagle Computer. Compaq announced its first IBM PC compatible in November 1982, the Compaq Portable. The Compaq was the first sewing machine-sized portable computer that was essentially 100% PC-compatible. The court decision in "Apple v. Franklin", was that BIOS code was protected by copyright law, but it could reverse-engineer the IBM BIOS and then write its own BIOS using clean room design. Note this was over a year after Compaq released the Portable. The money and research put into reverse-engineering the BIOS was a calculated risk.
Compatibility issues.
Non-compatible MS-DOS computers.
At the same time, many manufacturers such as Tandy/RadioShack, Xerox, Hewlett-Packard, Digital Equipment Corporation, Sanyo, Texas Instruments, Tulip, Wang and Olivetti introduced personal computers that supported MS-DOS, but were not completely software- or hardware-compatible with the IBM PC.
Tandy described the Tandy 2000, for example, as having a "'next generation' true 16-bit CPU", and with "More speed. More disk storage. More expansion" than the IBM PC or "other MS-DOS computers". While admitting in 1984 that many MS-DOS programs did not support the computer, the company stated that "the most popular, sophisticated software on the market" was available, either immediately or "over the next six months".
Like IBM, Microsoft's intention was that application writers would write to the application programming interfaces in MS-DOS or the firmware BIOS, and that this would form what would now be termed a hardware abstraction layer. Each computer would have its own Original Equipment Manufacturer (OEM) version of MS-DOS, customized to its hardware. Any software written for MS-DOS would operate on any MS-DOS computer, despite variations in hardware design.
This expectation seemed reasonable in the computer marketplace of the time. Until then Microsoft was based primarily on computer languages such as BASIC. The established small system operating software was CP/M from Digital Research which was in use both at the hobbyist level and by the more professional of those using microcomputers. To achieve such widespread use, and thus make the product viable economically, the OS had to operate across a range of machines from different vendors that had widely varying hardware. Those customers who needed other applications than the starter programs could reasonably expect publishers to offer their products for a variety of computers, on suitable media for each.
Microsoft's competing OS was intended initially to operate on a similar varied spectrum of hardware, although all based on the 8086 processor. Thus, MS-DOS was for several years sold only as an OEM product. There was no Microsoft-branded MS-DOS: MS-DOS could not be purchased directly from Microsoft, and each OEM release was packaged with the trade dress of the given PC vendor. Malfunctions were to be reported to the OEM, not to Microsoft. However, as machines that were compatible with IBM hardware—thus supporting direct calls to the hardware—became widespread, it soon became clear that the OEM versions of MS-DOS were virtually identical, except perhaps for the provision of a few utility programs.
MS-DOS provided adequate functionality for character-oriented applications such as those that could have been implemented on a text-only terminal. Had the bulk of commercially important software been of this nature, low-level hardware compatibility might not have mattered. However, in order to provide maximum performance and leverage hardware features (or work around hardware bugs), PC applications quickly developed beyond the simple terminal applications that MS-DOS supported directly. Spreadsheets, WYSIWYG word processors, presentation software and remote communication software established new markets that exploited the PC's strengths, but required capabilities beyond what MS-DOS provided. Thus, from very early in the development of the MS-DOS software environment, many significant commercial software products were written directly to the hardware, for a variety of reasons:
"Operationally Compatible".
In May 1983, Future Computing defined four levels of compatibility:
During development, Compaq engineers found that "Microsoft Flight Simulator" would not run because of what subLOGIC's Bruce Artwick described as "a bug in one of Intel's chips", forcing them to make their new computer bug compatible with the IBM PC. At first, few clones other than Compaq's offered truly full compatibility. Jerry Pournelle purchased an IBM PC in mid-1983, "rotten keyboard and all", because he had "four cubic feet of unevaluated software, much of which won't run on anything but an IBM PC. Although a lot of machines claim to be 100 percent IBM PC compatible, I've yet to have one arrive ... Alas, a lot of stuff doesn't run with Eagle, Z-100, Compupro, or anything else we have around here". Columbia University reported in January 1984 that Kermit ran without modification on Compaq and Columbia Data Products clones, but not on those from Eagle or Seequa. Other MS-DOS computers also required custom code.
Future Computing said in February 1984 that some computers were "press-release compatible", exaggerating their actual compatibility with the IBM PC. Many companies were reluctant to have their products' PC compatibility tested. When "PC Magazine" requested samples from computer manufacturers that claimed to produce compatibles for an April 1984 review, 14 of 31 declined. Corona Data Systems specified that "Our systems run all software that conforms to IBM PC programming standards. And the most popular software does." When a "BYTE" journalist asked to test Peachtext at the Spring 1983 COMDEX, Corona representatives "hemmed and hawed a bit, but they finally led me ... off in the corner where no one would see it should it fail". The magazine reported that "Their hesitancy was unnecessary. The disk booted up without a problem". Zenith Data Systems was bolder, bragging that its Z-150 ran all applications people brought to test with at the 1984 West Coast Computer Faire.
"Creative Computing" in 1985 stated, "we reiterate our standard line regarding the IBM PC compatibles: try the package you want to use before you buy the computer." Companies modified their computers' BIOS to work with newly discovered incompatible applications, and reviewers and users developed stress tests to measure compatibility; by 1984 the ability to operate Lotus 1-2-3 and "Flight Simulator" became the standard, with compatibles specifically designed to run them.
IBM believed that some companies such as Eagle, Corona, and Handwell infringed on its copyright, and after "Apple Computer, Inc. v. Franklin Computer Corp." successfully forced the clone makers to stop using the BIOS. The Phoenix BIOS in 1984, however, and similar products such as AMI BIOS, permitted computer makers to legally build essentially 100%-compatible clones without having to reverse-engineer the PC BIOS themselves. A September 1985 "InfoWorld" chart listed seven compatibles with 256 KB RAM, two disk drives, and monochrome monitors for $1,495 to $2,320, while the equivalent IBM PC cost $2,820. The inexpensive Leading Edge Model D is even compatible with IBM proprietary diagnostic software, unlike the Compaq Portable. By 1986 "Compute!" stated that "clones are generally reliable and about 99 percent compatible", and a 1987 survey in the magazine of the clone industry did not mention software compatibility, stating that "PC by now has come to stand for a computer capable of running programs that are managed by MS-DOS".
The decreasing influence of IBM.
In February 1984 "Byte" wrote that "IBM's burgeoning influence in the PC community is stifling innovation because so many other companies are mimicking Big Blue", but "The Economist" stated in November 1983, "The main reason why an IBM standard is not worrying is that it can help competition to flourish".
By 1983, IBM had about 25% of sales of personal computers between $1,000 and $10,000, and computers with some PC compatibility were another 25%. As the market and competition grew IBM's influence diminished. In November 1985 "PC Magazine" stated "Now that it has created the [PC] market, the market doesn't necessarily need IBM for the machines. It may depend on IBM to set standards and to develop higher-performance machines, but IBM had better conform to existing standards so as to not hurt users". In January 1987, Bruce Webster wrote in "Byte" of rumors that IBM would introduce proprietary personal computers with a proprietary operating system: "Who cares? If IBM does it, they will most likely just isolate themselves from the largest marketplace, in which they really can't compete anymore anyway". The magazine predicted that in 1987 the market "will complete its transition from an IBM standard to an Intel/MS-DOS/expansion bus standard ... Folks aren't so much concerned about IBM compatibility as they are about Lotus 1-2-3 compatibility". By 1992 "Macworld" stated that because of clones, "IBM lost control of its own market and became a minor player with its own technology".
"The Economist" predicted in 1983 that "IBM will soon be as much a prisoner of its standards as its competitors are", because "Once enough IBM machines have been bought, IBM cannot make sudden changes in their basic design; what might be useful for shedding competitors would shake off even more customers". After IBM announced the OS/2-oriented PS/2 line in early 1987, sales of existing DOS-compatible PC compatibles rose, in part because the proprietary operating system was not available. In 1988 Gartner Group estimated that the public purchased 1.5 clones for every IBM PC. By 1989 Compaq was so influential that industry executives spoke of "Compaq compatible", with observers stating that customers saw the company as IBM's equal or superior.
After 1987, IBM PC compatibles dominated both the home and business markets of commodity computers, with other notable alternative architectures being used in niche markets, like the Macintosh computers offered by Apple Inc. and used mainly for desktop publishing at the time, the aging 8-bit Commodore 64 which was selling for $150 by this time and became the world's best-selling computer, the 32-bit Commodore Amiga line used for television and video production and the 32-bit Atari ST used by the music industry. However, IBM itself lost the main role in the market for IBM PC compatibles by 1990. A few events in retrospect are important:
Despite popularity of its ThinkPad set of laptop PC's, IBM finally relinquished its role as a consumer PC manufacturer during April 2005, when it sold its laptop and desktop PC divisions to Lenovo for US$1.75 billion.
As of October 2007, Hewlett-Packard and Dell had the largest shares of the PC market in North America. They were also successful overseas, with Acer, Lenovo, and Toshiba also notable. Worldwide, a huge number of PCs are "white box" systems assembled by myriad local systems builders. Despite advances of computer technology, the IBM PC compatibles remained very much compatible with the original IBM PC computers, although most of the components implement the compatibility in special backward compatibility modes used only during a system boot. It was often more practical to run old software on a modern system using an emulator rather than relying on these features.
In 2014 Lenovo acquired IBM's x86-based server business for US$2.1 billion.
Expandability.
One of the strengths of the PC compatible design is its modular hardware design. End-users could readily upgrade peripherals and, to some degree, processor and memory without modifying the computer's motherboard or replacing the whole computer, as was the case with many of the microcomputers of the time. However, as processor speed and memory width increased, the limits of the original XT/AT bus design were soon reached, particularly when driving graphics video cards. IBM did introduce an upgraded bus in the IBM PS/2 computer that overcame many of the technical limits of the XT/AT bus, but this was rarely used as the basis for IBM compatible computers since it required licence payments to IBM both for the PS/2 bus and any prior AT-bus designs produced by the company seeking a license. This was unpopular with hardware manufacturers and several competing bus standards were developed by consortiums, with more agreeable license terms. Various attempts to standardize the interfaces were made, but in practice, many of these attempts were either flawed or ignored. Even so, there were many expansion options, and despite the confusion of its users, the PC compatible design advanced much faster than other competing designs of the time, even if only because of its market dominance.
"IBM PC compatible" becomes "Wintel".
During the 1990s, IBM's influence on PC architecture started to decline. "IBM PC compatible" becomes "Standard PC" in 1990s, and later "ACPI PC" in 2000s. An IBM-brand PC became the exception rather than the rule. Instead of placing importance on compatibility with the IBM PC, vendors began to emphasize compatibility with Windows. In 1993, a version of Windows NT was released that could operate on processors other than the x86 set. While it required that applications be recompiled, which most developers did not do, its hardware independence was used for Silicon Graphics (SGI) x86 workstations–thanks to NT's Hardware abstraction layer (HAL), they could operate NT (and its vast application library).
No mass-market personal computer hardware vendor dared to be incompatible with the latest version of Windows, and Microsoft's annual WinHEC conferences provided a setting in which Microsoft could lobby for—and in some cases dictate—the pace and direction of the hardware of the PC industry. Microsoft and Intel had become so important to the ongoing development of PC hardware that industry writers began using the word Wintel to refer to the combined hardware-software system.
This terminology itself is becoming a misnomer, as Intel has lost absolute control over the direction of x86 hardware development with AMD's AMD64. Also, non-Windows operating systems like macOS and Linux have established a presence on the x86 architecture.
Design limitations and more compatibility issues.
Although the IBM PC was designed for expandability, the designers could not anticipate the hardware developments of the 1980s, nor the size of the industry they would engender. To make things worse, IBM's choice of the Intel 8088 for the CPU introduced several limitations for developing software for the PC compatible platform. For example, the 8088 processor only had a 20-bit memory addressing space. To expand "PC"s beyond one megabyte, Lotus, Intel, and Microsoft jointly created expanded memory (EMS), a bank-switching scheme to allow more memory provided by add-in hardware, and accessed by a set of four 16-Kilobyte "windows" inside the 20-bit addressing. Later, Intel CPUs had larger address spaces and could directly address 16- megabytes (MiBs) (80286) or more, causing Microsoft to develop extended memory (XMS) which did not require additional hardware.
"Expanded" and "extended" memory have incompatible interfaces, so anyone writing software that used more than one megabyte had to provide for both systems for the greatest compatibility until MS-DOS began including EMM386, which simulated EMS memory using XMS memory. A protected mode OS can also be written for the 80286, but DOS application compatibility was more difficult than expected, not only because most DOS applications accessed the hardware directly, bypassing BIOS routines intended to ensure compatibility, but also that most BIOS requests were made by the first 32 interrupt vectors, which were marked as "reserved" for protected mode processor exceptions by Intel.
Video cards suffered from their own incompatibilities. There was no standard interface for using higher-resolution SVGA graphics modes supported by later video cards. Each manufacturer developed their own methods of accessing the screen memory, including different mode numberings and different bank switching arrangements. The latter were used to address large images within a single 64kB segment of memory. Previously, the VGA standard had used planar video memory arrangements to the same effect, but this did not easily extend to the greater colour depths and higher resolutions offered by SVGA adapters. An attempt at creating a standard named VESA BIOS Extensions (VBE) was made, but not all manufacturers used it.
When the 386 was introduced, again a protected mode OS could be written for it. This time, DOS compatibility was much easier because of virtual 8086 mode. Unfortunately programs could not switch directly between them, so eventually, some new memory-model APIs were developed, VCPI and DPMI, the latter becoming the most popular.
Because of the great number of third-party adapters and no standard for them, programming the PC could be difficult. Professional developers would operate a large test-suite of various known-to-be-popular hardware combinations.
Meanwhile, consumers were overwhelmed by the competing, incompatible standards and many different combinations of hardware on offer. To give them some idea of what sort of PC they would need to operate their software, the Multimedia PC (MPC) standard was set during 1990. A PC that met the minimum MPC standard could be marketed with the MPC logo, giving consumers an easy-to-understand specification to look for. Software that could operate on the most minimally MPC-compliant PC would be guaranteed to operate on any MPC. The MPC level 2 and MPC level 3 standards were set later, but the term "MPC compliant" never became popular. After MPC level 3 during 1996, no further MPC standards were established.
Challenges to Wintel domination.
By the late 1990s, the success of Microsoft Windows had driven rival commercial operating systems into near-extinction, and had ensured that the "IBM PC compatible" computer was the dominant computing platform. This meant that if a developer made their software only for the Wintel platform, they would still be able to reach the vast majority of computer users. The only major competitor to Windows with more than a few percentage points of market share was Apple Inc.'s Macintosh. The Mac started out billed as "the computer for the rest of us", but high prices and closed architecture drove the Macintosh into an education and desktop publishing niche, from which it only emerged in the mid-2000s. By the mid-1990s the Mac's market share had dwindled to around 5% and introducing a new rival operating system had become too risky a commercial venture. Experience had shown that even if an operating system was technically superior to Windows, it would be a failure in the market (BeOS and OS/2 for example). In 1989 Steve Jobs said of his new NeXT system, "It will either be the last new hardware platform to succeed, or the first to fail." Four years later in 1993 NeXT announced it was ending production of the NeXTcube and porting NeXTSTEP to Intel processors.
Very early on in PC history, some companies introduced their own XT-compatible chipsets. For example, Chips and Technologies introduced their 82C100 XT Controller which integrated and replaced six of the original XT circuits: one 8237 DMA controller, one 8253 interrupt timer, one 8255 parallel interface controller, one 8259 interrupt controller, one 8284 clock generator, and one 8288 bus controller. Similar non-Intel chipsets appeared for the AT-compatibles, for example OPTi's 82C206 or 82C495XLC which were found in many 486 and early Pentium systems. The x86 chipset market was very volatile though. In 1993, VLSI Technology had become the dominant market player only to be virtually wiped out by Intel a year later. Intel has been the uncontested leader ever since. As the "Wintel" platform gained dominance Intel gradually abandoned the practice of licensing its technologies to other chipset makers; in 2010 Intel was involved in litigation related to their refusal to license their processor bus and related technologies to other companies like Nvidia.
Companies such as AMD and Cyrix developed alternative x86 CPUs that were functionally compatible with Intel's. Towards the end of the 1990s, AMD was taking an increasing share of the CPU market for PCs. AMD even ended up playing a significant role in directing the development of the x86 platform when its Athlon line of processors continued to develop the classic x86 architecture as Intel deviated with its Netburst architecture for the Pentium 4 CPUs and the IA-64 architecture for the Itanium set of server CPUs. AMD developed AMD64, the first major extension not created by Intel, which Intel later adopted as x86-64. During 2006 Intel began abandoning Netburst with the release of their set of "Core" processors that represented a development of the earlier Pentium III.
A major alternative to Wintel domination is the rise of alternative operating systems since the early 2000s, which has been marked as the start of a post-PC era.
The IBM PC compatible today.
The term "IBM PC compatible" is not commonly used presently because all current mainstream desktop and laptop computers are based on the PC architecture, and IBM no longer makes PCs. The competing hardware architectures have either been discontinued or, like the Amiga, have been relegated to niche, enthusiast markets. In the past, the most successful exception was Apple's Macintosh platform, which used non-Intel processors from its inception. Although Macintosh was initially based on the Motorola 68000 family, then transitioned to the PowerPC architecture, Macintosh computers transitioned to Intel processors beginning in 2006. Today's Macintosh computers share the same system architecture as their Wintel counterparts and can boot Microsoft Windows without a DOS Compatibility Card. However, with the announcement of the internally developed ARM-based M1 CPU, they are again the exception to IBM compatibility.
The processor speed and memory capacity of modern PCs are many orders of magnitude greater than they were for the original IBM PC and yet backwards compatibility has been largely maintained a 32-bit operating system can still operate many of the simpler programs written for the OS of the early 1980s without needing an emulator, though an emulator like DOSBox now has near-native functionality at full speed (and is necessary for certain games which may run too fast on modern processors). Additionally, many modern PCs can still run DOS directly, although special options such as USB legacy mode and SATA-to-PATA emulation may need to be set in the BIOS setup utility. Computers using the UEFI might need to be set at legacy BIOS mode to be able to boot DOS. However, the BIOS/UEFI options in most mass-produced consumer-grade computers are very limited and cannot be configured to truly handle OSes such as the original variants of DOS.
The spread of the x86-64 architecture has further distanced current computers' and operating systems' internal similarity with the original IBM PC by introducing yet another processor mode with an instruction set modified for 64-bit addressing, but x86-64 capable processors also retain standard x86 compatibility.


Streaming SIMD Extensions

In computing, Streaming SIMD Extensions (SSE) is a single instruction, multiple data (SIMD) instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series of Central processing units (CPUs) shortly after the appearance of Advanced Micro Devices (AMD's) 3DNow!. SSE contains 70 new instructions, most of which work on single precision floating-point data. SIMD instructions can greatly increase performance when exactly the same operations are to be performed on multiple data objects. Typical applications are digital signal processing and graphics processing.
Intel's first IA-32 SIMD effort was the MMX instruction set. MMX had two main problems: it re-used existing x87 floating-point registers making the CPUs unable to work on both floating-point and SIMD data at the same time, and it only worked on integers. SSE floating-point instructions operate on a new independent register set, the XMM registers, and adds a few integer instructions that work on MMX registers.
SSE was subsequently expanded by Intel to SSE2, SSE3, SSSE3, and SSE4. Because it supports floating-point math, it had wider applications than MMX and became more popular. The addition of integer support in SSE2 made MMX largely redundant, though further performance increases can be attained in some situations by using MMX in parallel with SSE operations.
SSE was originally called Katmai New Instructions (KNI), Katmai being the code name for the first Pentium III core revision. During the Katmai project Intel sought to distinguish it from their earlier product line, particularly their flagship Pentium II. It was later renamed Internet Streaming SIMD Extensions (ISSE), then SSE. AMD eventually added support for SSE instructions, starting with its Athlon XP and Duron (Morgan core) processors.
Registers.
SSE originally added eight new 128-bit registers known as codice_1 through codice_2. The AMD64 extensions from AMD (originally called "x86-64") added a further eight registers codice_3 through codice_4, and this extension is duplicated in the Intel 64 architecture. There is also a new 32-bit control/status register, codice_5. The registers codice_3 through codice_4 are accessible only in 64-bit operating mode.
SSE used only a single data type for XMM registers:
SSE2 would later expand the usage of the XMM registers to include:
Because these 128-bit registers are additional machine states that the operating system must preserve across task switches, they are disabled by default until the operating system explicitly enables them. This means that the OS must know how to use the codice_8 and codice_9 instructions, which is the extended pair of instructions that can save all x86 and SSE register states at once. This support was quickly added to all major IA-32 operating systems.
The first CPU to support SSE, the Pentium III, shared execution resources between SSE and the floating-point unit (FPU). While a compiled application can interleave FPU and SSE instructions side-by-side, the Pentium III will not issue an FPU and an SSE instruction in the same clock cycle. This limitation reduces the effectiveness of pipelining, but the separate XMM registers do allow SIMD and scalar floating-point operations to be mixed without the performance hit from explicit MMX/floating-point mode switching.
SSE instructions.
SSE introduced both scalar and packed floating-point instructions.
Example.
The following simple example demonstrates the advantage of using SSE. Consider an operation like vector addition, which is used very often in computer graphics applications. To add two single precision, four-component vectors together using x86 requires four floating-point addition instructions.
 vec_res.x = v1.x + v2.x;
 vec_res.y = v1.y + v2.y;
 vec_res.z = v1.z + v2.z;
 vec_res.w = v1.w + v2.w;
This corresponds to four x86 FADD instructions in the object code. On the other hand, as the following pseudo-code shows, a single 128-bit 'packed-add' instruction can replace the four scalar addition instructions.
 movaps xmm0, [v1] ;xmm0 = v1.w | v1.z | v1.y | v1.x
 addps xmm0, [v2] ;xmm0 = v1.w+v2.w | v1.z+v2.z | v1.y+v2.y | v1.x+v2.x
 movaps [vec_res], xmm0 ;xmm0
Software and hardware issues.
With all x86 instruction set extensions, it is up to the BIOS, operating system and application programmer to test and detect their existence and proper operation.
User application uptake of the x86 extensions has been slow with even bare minimum baseline MMX and SSE support (in some cases) being non-existent by applications some 10 years after these extensions became commonly available. Distributed computing has accelerated the use of these extensions in the scientific community—and many scientific applications refuse to run unless the CPU supports SSE2 or SSE3.
The use of multiple revisions of an application to cope with the many different sets of extensions available is the simplest way around the x86 extension optimization problem. Software libraries and some applications have begun to support multiple extension types hinting that full use of available x86 instructions may finally become common some 5 to 15 years after the instructions were initially introduced.
Identifying.
The following programs can be used to determine which, if any, versions of SSE are supported on a system


System G (supercomputer)

System G is a cluster supercomputer at Virginia Tech consisting of 324 Apple Mac Pro computers with a total of 2592 processing cores. It was finished in November 2008 and ranked 279 in that month's edition of TOP500, running at 16.78 teraflops and peaking at 22.94 teraflops. It now runs at a "sustained (Linpack) performance of 22.8 TFlops". It transmits data between nodes over Gigabit Ethernet and 40Gbit/s Infiniband.
Mac Pro Nodes.
Each of the 324 Mac Pro machines contains two quad-core 2.8 GHz Xeon processors and 8 gigabytes of RAM.
Namesake.
System G's name stems from its homage to System X and to its focus on green computing—the cluster has thousands of power and thermal sensors to test high performance computing at low power requirements and is the largest power-aware research system in the world.


Nintendo 64 controller

The Nintendo 64 controller (commonly abbreviated as N64 controller; model number: NUS-005) is the standard game controller for the Nintendo 64 home video game console. Manufactured and released by Nintendo on June 23, 1996 in Japan, in late 1996 in North America, and 1997 in Europe. It is the successor to the Super Nintendo controller and is designed in an "M" shape and features 10 buttons, one analog "Control Stick" and a directional pad.
Design.
The controller was designed by Nintendo R&D3, who were directed to try out new ideas that would break from the standard mold of gaming controllers. With original visual designs having been mocked up in clay form, and extensive test group studies being performed before and during the design phase, the Nintendo 64's controller design was eventually solidified in tandem with that of Miyamoto's gameplay mechanics in "Super Mario 64".
Nintendo of America's head designer, Lance Barr, said that the design studies revealed that "most games use a few buttons for most of the main controls, such as jumping and shooting, or accelerating and braking. That's why the A and B Buttons are placed for easiest access on the new controller and why they are larger than the other buttons. They're the buttons that get high traffic."
The controller was designed to be held in three different positions. First, it can be held by the two outer grips, allowing use of the D-pad, right-hand face buttons and the "L" and "R" shoulder buttons (but not the Z trigger or analog stick). This style was intended to optimize play in 2D games by emulating the setup on the Super NES controller. It can be also held by the center and right-hand grip, allowing the use of the single control stick, the right hand-buttons, the "R" shoulder button, and the Z trigger on the rear (but not the "L" shoulder button or D-pad). This style was intended for 3D games. Finally, the controller can be held by the center and left-hand grip, allowing for a combination of the D-pad, L shoulder, analog stick, and Z trigger, as was implemented in "GoldenEye 007". Additionally, though the controller was not designed with this setup in mind, one controller can be held in each hand with a thumb on each analog stick and index fingers on the Z trigger. This setup allows dual-analog control on some first-person shooters such as "Perfect Dark". In some games such as "Mortal Kombat Trilogy", the control stick and directional pad are interchangeable. Very few games use the directional pad exclusively; two examples are the 3D puzzle game "Tetrisphere" and the side-scrolling platformer "".
This design is controversial, as by its nature it generally prevents the use of all of its features with the player's hands in any one position; the D-pad, L-shoulder, analog stick and Z-trigger cannot, generally, all be used at the same time as it typically requires the player to switch hand positions, taking the hands off of the key directional controls. Some, though, realized they can hold the controller with the outer grips and use their index fingers for the R and L triggers, middle fingers for the Z-trigger, right thumb for the right-hand buttons, and left thumb for the D-pad and (stretching) analog stick, without changing hand positions. When Sony released its Dual Analog and DualShock controllers for the competing PlayStation, it retained the original controllers' two-handled ergonomics, placing the analog sticks below and inside the primary D-pad and face buttons, allowing the player to quickly switch from the D-pad and face buttons to the analog sticks without letting go of the controller. This layout would become dominant in gamepad design, and several third-party manufacturers would produce aftermarket N64 controllers with more conventional layouts, such as the MakoPad and Hori Mini. Nintendo itself would largely follow suit with the stock controller for its GameCube console, but swapped the positions of the analog stick and D-pad, as by that time the left analog stick had become universally accepted as the primary movement control on 3D games across all consoles.
The controller also includes four "C buttons" on the top, which were originally intended to control the camera in the N64's three-dimensional environments. However, since the pad only contains three other face buttons, the C-buttons often became assigned to ulterior functions. An example of this is "", where three of the C-buttons can be assigned to secondary items and the upper C-button is used to call Navi for assistance, while the Z-trigger is used to lock focus onto enemies and center the camera behind the player.
One game, "Robotron 64", allows one player to use two controllers to control an avatar. This way, the game plays like its predecessor, "Robotron 2084". "Star Wars Episode 1: Racer", "GoldenEye 007" and "Perfect Dark" also use this set up for slightly different gameplay experiences (in terms of control, at least) compared to the standard single controller option.
The controller initially came in six colors (grey, black, red, green, yellow and blue) but other colors were released later, many of them coinciding with the release of a similarly colored or designed system. Some of these others include smoke black, watermelon red, jungle green, fire orange, ice blue, grape purple, and special edition colors like gold, atomic purple, extreme green, "Donkey Kong 64" banana bunch yellow, "Pokémon" blue and yellow, and "Millennium 2000" platinum. Players would often take apart Nintendo 64 controllers to mix-and-match the tops and bottoms of the shell, creating bi-color controllers.
When the Nintendo 64 is switched on, the joystick on each controller is automatically calibrated by recording the current position as the center position. That works assuming the hands are off the joystick when the Nintendo 64 is powered on. The joystick can also be recalibrated while the Nintendo 64 is on, by pressing L+R+START to indicate that the current position of the joystick is the center position.
Analog stick.
The Nintendo 64 controller was one of the first game controllers to incorporate analog stick technology as a main feature, intended to provide the user with a wider range of functions such as mobility and camera control. The stick is designed to detect 360 independent directions, compared to the 8 independent directions detected by a D-pad, allowing the potential for Nintendo 64 games to more accurately emulate 360° of motion.
Analog joysticks prior to the Nintendo 64 include those used by the Atari 5200, Sega's arcade systems, the Neo Geo CD analog stick (1994), Sega's analog Mission Stick for the Saturn (1995), and Sony's PlayStation Analog Joystick (1996). The Nintendo 64 controller distinguished itself from these precursors by using an analog thumbstick, which was predated only by the Mega Drive's XE-1 AP, designed by third-party manufacturer Dempa in 1989. The Nintendo 64 controller was released contemporaneously with Sega's 3D Pad for their Saturn system, and was followed during the fifth generation of video game consoles by Sony's Dual Analog and DualShock controllers for the PlayStation console.
The N64 analog stick uses a pair of optical encoding disks to determine its position, similar to how ball mice work. Since optical encoding disks only give the system relative changes in the position of the analog stick, the system assumes that the stick is centered during power-on and tracks relative movements from there. If things get out of sync, or if the control stick was not centered during power-on, the center position can be reset by pressing the left and right shoulder buttons (L and R) at the same time as the Start button. While the optical encoding disks are mostly digital and provide very accurate relative movements, third party controllers and joysticks often use cheaper potentiometers instead. These allow the controller to track the absolute position of the joystick, but since the signal is analog, it's very noisy and can fluctuate even if the joystick isn't moved.
Controller Pak.
The Controller Pak is Nintendo's external memory card, similar to those used on the PlayStation and other CD-ROM consoles. While the N64's cartridge-based games can store battery-backed memory much like its predecessors, in supported games the Controller Pak allows save game data to be stored separately from the cartridge; for instance allowing save data to be used with a different copy of the game, or to store data that will not fit on a cartridge's battery-backed memory (such as "Mario Kart 64"s ghost data). Whereas other console developers opted to plug the memory card directly into a console, Nintendo opted to have the card be plugged into the controller and thus transported as one unit, envisioning scenarios in which players would want to bring their own controller and memory card to play with other Nintendo 64 owners. In such scenarios having the cartridge port on the controller would allow individual players to each use their own distinct game settings and controller configurations while playing simultaneously on the same system.
Rumble Pak.
The original Rumble Pak, designed for the Nintendo 64 controller, was released in April 1997 to coincide with the release of "Star Fox 64" and requires two AAA batteries. It provides haptic feedback during gameplay, intending to make the gaming experience more engaging. It was designed to be inserted into the controller's memory cartridge slot, which prevents the use of the Controller Pak. The insertion of a Controller Pak is prompted at every point of save in case one was not already in place.
LodgeNet variant.
In 1999, LodgeNet and Nintendo released a controller and game playing service for various hotels in the United States. It is a slightly modified Nintendo 64 controller featuring an improved GameCube-style analog control stick, and LodgeNet TV control buttons. It attaches to the hotel television, and is not compatible with a Nintendo 64 console. It functions as a secondary remote control for the television, with up and down on the D-pad able to change channels, and as a controller for available Nintendo 64 games on the LodgeNet service. Customers could choose from a large library of Nintendo 64 games, including most first-party Nintendo 64 games, and play at a rate of $6.95 for every 60 minutes.
Reception.
Nintendo's own magazine, "Nintendo Power", reviewed the controller. The magazine said that it is "a little wider than the Super NES controller, but it felt very comfortable and the control elements were exceptionally well-placed. Large and small hands alike found it easy to manipulate." In their overview of the controller, "Electronic Gaming Monthly" commented, "All in all, Nintendo has made the most advanced and easy-to-use controller we have ever seen. It is extremely versatile and has enough buttons to take care of every possible contingency, now or in the future." "GamePro"s overview stated, "The N64's tri-handled controller may look weird, but it feels great." Third party developers were reportedly enthusiastic about the controller as well. Dave Perry called it "the big special move that [Nintendo] have gone for", while Jez San said that "The joystick is unusual looking but I like the controls. The thumb control feels nice and strong and also sensitive."
Stocks of extra Nintendo 64 controllers were sold out on the Japanese launch of the Nintendo 64, despite the fact that all three launch games are single-player only. Similar results followed in North America; retailers reported extremely high sales of the controllers despite only a handful of multiplayer games being available.
Intense rotating of the analog stick reportedly resulted in friction injuries to the hands of some players of 1999's "Mario Party". As a result of a settlement with the New York Attorney General, Nintendo offered protective gloves to prevent injuries. In Q1 2000, Nintendo reported that out of more than 1 million copies sold in the year since the game's release, the company had received about 90 complaints, none serious. Tim Weaver, editor of the UK's "N64 Magazine", said his staff experienced no problems with the controller, adding that the entire investigation was "ludicrous" and "could only happen in America".


Control-X

In computing, is the key combination of the control key and a key usually labeled "x" (lower-case letter ex), typically used to cut selected text and save it to the clipboard ready to paste elsewhere. Conventionally, the key combination is produced by holding down and simultaneously. To avoid having to press multiple keys simultaneously, the key combination is, on some systems, entered by first pushing the control key and then the X key.
Text editing.
In many software applications on Windows and the X Window System can be used to cut highlighted mutable text to the clipboard. On Mac OS X has an analogous function. The key combination was one of a handful of keyboard sequences chosen by the program designers at Xerox PARC to control text editing.
For historical reasons, the control character CAN may be referred to as .
Interaction style.
In computer science, this style of interaction is referred to as indirect manipulation, a human–computer interaction style opposed to direct manipulation. Direct manipulation is a term introduced by Ben Shneiderman in 1982 within the context of office applications and the desktop metaphor.
Indirect manipulation has a higher level of abstraction compared to direct manipulation as you first have to select the item (such as character, word, paragraph or icon) that you want to edit and then give the command, in this case the cut command by key combination


Richard Green (technologist)

Rich Green (Richard Green) is an American software engineer and business executive.
Rich began his career as a graphics and spatial analytics developer. He joined Sun Microsystems in 1989 where he held a variety of roles, serving as Executive Vice President of Software where he was responsible for Sun's product, service and support businesses and led the acquisition of MySQL. His tenure also included roles as VP/GM of Solaris and Java, during which he led the invention, marketing and licensing of the enterprise and mobile versions of Java and was responsible for publishing Java as open source technology. Rich served as CTO of Nokia Corporation and as Executive Vice President of the Mobile and Enterprise business unit at Nuance Communications. Rich recently led technology strategy, product development and cloud services at a young IoT company focused on commercial energy management and is currently the EVP/Chief Product Officer and CTO for SugarCRM.
Rich serves as a board member of startup companies and non-profit organizations and was a member of the Foundation Board of the State University of New York at Albany.
Rich was born in Brooklyn, New York and lived in the Boston, Massachusetts area before relocating to California's Silicon Valley. Rich also resided in Helsinki, Finland when he was the CTO of Nokia. He holds Bachelors and master's degrees with a specialization in Geographic Information Systems (GIS) and spatial analytics.


Parity flag

In computer processors the parity flag indicates if the numbers of set bits is odd or even in the binary representation of the result of the last operation. It is normally a single bit in a processor status register.
For example, assume a machine where a set parity flag indicates even parity. If the result of the last operation were 26 (11010 in binary), the parity flag would be 0 since the number of set bits is odd. Similarly, if the result were 10 (1010 in binary) then the parity flag would be 1.
x86 processors.
In x86 processors, the parity flag reflects the parity only of the "least significant byte" of the result, and is set if the number of set bits of ones is even (put another way, the parity bit is set if the sum of the bits is even). According to 80386 Intel manual, the parity flag is changed in the x86 processor family by the following instructions:
In conditional jumps, parity flag is used, where e.g. the JP instruction jumps to the given target when the parity flag is set and the JNP instruction jumps if it is not set. The flag may be also read directly with instructions such as PUSHF, which pushes the flags register on the stack.
One common reason to test the parity flag is to check an unrelated FPU flag. The FPU has four condition flags (C0 to C3), but they can not be tested directly, and must instead be first copied to the flags register. When this happens, C0 is placed in the carry flag, C2 in the parity flag and C3 in the zero flag. The C2 flag is set when e.g. incomparable floating point values (NaN or unsupported format) are compared with the FUCOM instructions.


System V Interface Definition

The System V Interface Definition (SVID) is a standard that describes the AT&T UNIX System V behavior, including that of system calls, C libraries, available programs and devices. While it was not the first attempt at a standardizations document (the industry trade association /usr/group published a standard in 1984 based on System III with a few system call additions from BSD), it was an important effort of early standardization of UNIX in a period when UNIX variants were multiplying rapidly and portability was problematic at best. By 1986, AT&T required conformance with SVID issue 2 if vendors were to actually brand their products "System V R3". By the 1990s, however, its importance was largely eclipsed by POSIX and the Single UNIX Specification, which were based in part upon the SVID. Part of the reason for this was undoubtedly their vendor-independent approach (see Unix wars).


Cloudy with a Chance of Meatballs (video game)

Cloudy with a Chance of Meatballs is a video game tie-in based on the film of the same name which is also based upon the 1978 children's book of the same name. The game allows the player to control Flint Lockwood, the film's hero as he must save his town and the world from the rain of food, fighting highly mutated food enemies and using his gadgets to help him on the way.
Gameplay.
While controlling Flint through Swallow Falls (Chewandswallow) you must use six different gadgets to help him proceed through levels. The game has five acts. In the first act each level only allows Flint to use one gadget. Act two allows Flint to switch between two, and act three and up allows Flint to use three in a level. In each level there are 30 Hydronic Foodpods. These have to be disposed with using certain gadgets.
Reception.
The game was met with average to very mixed reception. GameRankings and Metacritic gave it a score of 69.75% and 68 out of 100 for the Wii version; 66.14% and 66 out of 100 for the PlayStation 3 version; 64.18% and 62 out of 100 for the Xbox 360 version; 60% and 60 out of 100 for the PSP version; 53% and 62 out of 100 for the PC version; and 50% and 50 out of 100 for the DS version.


DEBUG.COM


DESCRIPT.ION


John Gage

John Burdette Gage (born October 9, 1942) was the 21st employee of Sun Microsystems, where he is credited with creating the phrase: "The network is the computer." He served as vice president and chief researcher and director of the Science Office for Sun Microsystems, until leaving on June 9, 2008, to join Kleiner Perkins Caufield & Byers as a partner to work on green technologies for global warming; he departed KPCB in 2010 to apply what he had learned "to broader issues in other parts of the world".
In 2006, he joined the board of the Tegla Loroupe Peace Foundation, to build a school and orphanage in Kapenguria, in remote north-west Kenya.
In 2012, he helped build the Kibera Town Centre, a major water and community education center in the middle of Kibera, Kenya, the largest slum in Africa.
He is known as one of the co-founders of NetDay in 1995, a crowd-sourced effort to bring the Internet to every school in the world. NetDay was the first large-scale crowd-sourced mass movement on the Internet. He joined the Human Needs Project in 2012 to build a networked water source and water treatment plant in the Kibera slum in Nairobi, Kenya.
For twelve years he hosted the annual JavaOne conference, bringing 20,000 Java programmers to San Francisco and establishing the Java language in over 95% of mobile devices, and as the basis of the Android operating system.
Background.
Gage received his bachelor's degree in 1975 from the College of Natural Resources at the University of California, Berkeley. He also attended the Harvard Kennedy School of Government, and the Harvard Business School. Gage worked at Berkeley with Bill Joy, the person largely responsible for the authorship of Berkeley UNIX, also known as BSD, from which spring many modern forms of UNIX, including Solaris, FreeBSD, NetBSD, and OpenBSD. Gage helped found Sun Microsystems in 1982 with Bill Joy and others.
Gage is one of the central figures in the film Berkeley in the Sixties by Mark Kitchell, recounting the University of California, Berkeley Free Speech Movement. He appears in "American Stories: the American Dream: A Future Reborn 1918–1945", a five-part Discovery Channel documentary produced by Atlantic Productions.
In June 2008, Gage retired from Sun Microsystems and joined Kleiner Perkins as a venture capitalist along with Al Gore. He left Kleiner Perkins in 2010.
Gage has served on scientific advisory panels for the US National Research Council, the US National Academy of Sciences, the United Nations, the World Bank, and the World Economic Forum.
He was appointed by President Bill Clinton to the Web Based Education Commission in 2000.
He served on the US National Academy of Sciences Committee on Scientific Communication and National Security and on the Markle Foundation Task Force on National Security, whose reports aided in reorganizing US intelligence agencies after the September 11 attacks. He has served on the boards of the US National Library of Medicine, of FermiLab, the Berkeley Mathematical Sciences Research Institute, and other scientific and educational groups.
Currently he serves on the Malaysian International Advisory Panel, the Malaysian Global Science Advisory Panel and on the advisory boards of the University of California, Berkeley, Goldman School of Public Policy, the Oxford Martin School for the Twenty-first Century, the Center for Information Technology in the Interest of Society (CITRIS) at the University of California Berkeley, and of Liquid Robotics, who build unmanned ocean surface robots. He is on the boards of the Tegla Loroupe Peace Foundation in Nairobi, the Human Needs Project, and Relief International, an international humanitarian disaster relief organization.
Early life.
Gage was born on October 9, 1942 in Long Beach, California. His father was James Robert Gage, born in Woodville, East Texas, and president of the UCLA Class of 1935, captain in the United States Navy, and senior manager for Douglas Aircraft in Long Beach, then for McDonnell Douglas Aerospace in Seal Beach. His mother was Harriet Doris Burdette, born in Hollywood, California, whose grandfather crossed the Panama Isthmus to arrive in California in 1848. She taught in the Los Angeles school district. He has two siblings, James Collier Gage of Honolulu, Hawaii, and Laurie Gage, chief veterinarian for the Marine Mammal Center in Marin County, and US Department of Agriculture big cat and marine mammal expert.
Education.
Gage was educated at Gardner Street Elementary School and LeConte Junior High School in Hollywood, California. In 1956, the family moved to Newport Beach, California. Gage attended Ensign Middle School and Newport Harbor High School, where he was student body president, All-American swimmer, and National Merit Scholar. He received the Harvard Book Award, and graduated in 1960.
Gage entered the University of California, Berkeley, in the fall of 1960, in Honors Mathematics. In 1961, he entered the Alliance Française in Paris, then studied at the Université de Paris. Returning to Berkeley, he became deeply involved in the Free Speech Movement, as documented in Berkeley in the Sixties. He created the first Community Projects Office for the Associated Students of the University of California, placing over 2,000 students in volunteer roles in schools and community organizations in Oakland and Berkeley.
He was a three-time All-American swimmer and Pacific Coast champion in the 100-yard breaststroke. He played on the Pacific Coast champion water polo team. He was a member of the Order of the Golden Bear and the Big C Society.
In 1968, he joined six other students from California on the delegation assembled by Speaker of the California Assembly, Jesse Unruh, as a Robert F. Kennedy delegate to the Chicago Democratic Convention.
In the fall of 1968, after the Democratic Convention in Chicago, he entered the Harvard Business School. After one year, he transferred to the Harvard Kennedy School. He took leave to work on the George McGovern presidential campaign. After the McGovern campaign, he returned to the University of California, Berkeley, where he completed his bachelor's degree in 1975, and entered the Ph.D program in Mathematical Economics at the University of California, Berkeley. He left the Ph.D program in 1982 to help found Sun Microsystems along with a few others.
Political activity.
Following the Free Speech Movement, Gage became active in opposing the war in Vietnam. He worked on the Robert Scheer for Congress campaign in 1966, almost defeating a Democratic congressman who supported the war. He co-chaired the Robert F. Kennedy for President campaign in 1968 in Alameda County, and was a Robert Kennedy delegate to the 1968 Chicago Convention, representing Berkeley and Oakland.
At Harvard, he helped form the Vietnam Moratorium Committee with Sam Brown, David Hawk, Marge Sklenkar, and David Mixner, and co-chaired the New England division. He organized the 125,000 person Boston Common Vietnam Moratorium demonstration in October. and coordinated the 400,000 person Vietnam Moratorium demonstration on the Washington Monument grounds in Washington, D.C. Nationwide, the Vietnam Moratorium was the largest mass demonstration in US history, with over two million people involved.
He organized a number of major antiwar demonstrations in Boston, in New York, in Washington, D.C., and in Philadelphia. In 1972, he was named by White House attorney John Dean to Nixon's Enemies List.
He was the first field organizer for students for the McGovern Presidential campaign in California, then joined the national campaign as assistant press secretary and trip director, working for Frank Mankiewicz. In that role, he coordinated the day-to-day movement of the press and staff from event to event nationwide with John Podesta and others. In the 1976 Jimmy Carter campaign, he helped train staff, and organized the final rallies in California. In the 1980 Ted Kennedy campaign, he was assistant national press secretary and trip director, and member of the traveling party.
In 2008, Gage spent several weeks in Ankeny, Iowa, organizing for the 2008 Barack Obama campaign.
Concert activity.
In 1969, Gage was asked by Bill Hanley, the owner of Hanley Sound, the staging and sound system used at Woodstock, and the system Gage used in Washington, D.C. for the Vietnam Moratorium, to come to Palm Beach, Florida, to take over producing the International Palm Beach Music and Art Festival. B.B. King, Janis Joplin, the Rolling Stones, Sly and the Family Stone, Jefferson Airplane, the Byrds, Sha-Na-Na, Country Joe and the Fish, Steppenwolf, Johnny Winter, Sweetwater and twenty other groups performed; there had been strong opposition from the Governor of Florida, local law enforcement, and some local churches. Heavy rain and unusual cold did not stop some career-best performances, and crowds up to 100,000 people. This Rolling Stone concert just preceded Altamont, six days later.
Subsequently, Gage was called to rescue the Louisiana Celebration of Life Festival after two people had drowned; produced the New York Shea Stadium Festival for Peace Concert with Peter Yarrow, Janis Joplin, Creedence Clearwater Revival, Herbie Hancock, Miles Davis, Dionne Warwick, Paul Simon, Sha-Na-Na, Johnny Winter, and fifteen more, the Philadelphia Peace Concert, and several other events involving over 100,000 people.
Computer career.
In 1980, Gage was part of the Homebrew Computer Club, with Steve Jobs, Steve Wozniak, Lee Felsenstein and others.
In 1982, Gage joined Bill Joy, Andy Bechtolsheim, Vinod Khosla, Scott McNealy and others to found Sun Microsystems. He was responsible for all exterior relations, including marketing, sales, and technical support to customers. As Sun Microsystems grew, Gage became the Vice President and Director of the Science Office, with responsibility for scientific computing, networking, and relationships with universities, scientific laboratories, international scientific bodies, national intelligence agencies, and multilateral agencies including the World Bank and the United Nations.
Gage testified often to the US Congress, to United Nations ECOSOC meetings, and was part of numerous United Nations special commissions.
In 1994, with Professor Jianping Wu of Tsinghua University, Gage helped build the Network Research Center in the Tsinghua Main Administration Center, that became CERNET, linking over 1,000 Chinese universities.
In 1995, at the Technology, Entertainment, and Design Conference (TED6) in Monterey, California, Gage and James Gosling announced and Gage demonstrated for the first time the Java programming language, creating the first interactive interface for the World Wide Web.
In 2002, Gage joined the UN Information Technology Taskforce, to bring networking to all nations. In 2006, Gage joined the UN Digital Health Taskforce. For the World Economic Forum, he helped organize the Jordan Network Initiative with John Chambers of Cisco and Eric Schmidt of Google.
In 2002, Sun Microsystems reached $25 billion (2015 USD) in revenues.
In 2010, Oracle purchased Sun Microsystems.
Academic career.
In 2000, Gage spent a year at the Harvard Kennedy School of Public Policy as a Shorenstein Fellow. He taught a class of 90 students entitled "Technology, Journalism and Politics", for which he won the "Most Influential Course" award, awarded by Dean Joseph Nye.
NetDay.
Gage founded NetDay in 1995 with Michael Kaufman and several others. NetDay was the first crowd sourcing event organized using the Internet.
Gage created zoomable maps of the 140,000 schools in the United States, placing a meter-accurate dot for each school, color-coded for whether or not the school was connected to the Internet. He created a web-based sign-up page for each school, and "called on high-tech companies to commit resources to schools, libraries, and clinics worldwide so that they could connect to the Internet."
At some schools, hundreds of volunteers signed up, promising to come to the school on Saturday, March 9, 1996, to install Ethernet cables to five classrooms and the library. On the first NetDay in California, over 100,000 engineers wired 4,000 schools. President Clinton and Vice-President Gore pulled cables throughout Ygnacio Valley High School. Over the next year, over 70,000 schools across the United States held NetDays to wire their schools, and NetDay spread to Korea, Great Britain, France, and other countries.
In the first state, California, over 100,000 volunteers wired 4,000 schools in one day: March 9, 1996. NetDay was endorsed by President Bill Clinton and Vice President Al Gore, active participants in NetDay '96. Over the next two years, over 70,000 US K-12 schools held NetDays, and Korea, Great Britain, France and other countries held national NetDays.
In 1998, Gage was awarded the ACM Presidential Award by Chuck House, the President of the ACM for his work on NetDay.
Human Needs Project.
Gage joined Connie Nielsen and David Warner in 2012 to build a large community center in Kibera, Nairobi, Kenya. The Kibera Town Centre is a research platform and learning center, applying new and innovative technologies to provide clean water and waste water treatment in a huge urban slum. The Kibera Town Centre borehole can provide over 400 cubic meters of pure water a day to the 1,000 square-meter facility, which serves over 1,000+ people a day with a combination of educational and career services, showers, toilets, laundry, cafe, and financial services, and provides educational materials to the 4,000 students of neighboring Olympic Primary School, Kenya's largest primary school.
The facility is connected to high-speed fiber optic cable, and has built a half-gigabit wireless network for Kibera.
Family.
Gage is married to Linda Schacht Gage, a lecturer in Journalism at the University of California, Berkeley, and has two children: Peter Gage, formerly with the US Department of Energy, now with Renewable Finance, and Kate Gage, who helped create the USAID Global Development Laboratory, and is now Senior Policy Advisor, International Science and Technology, in the Office of Science and Technology, White House.
Sunergy Television broadcasts.
Gage did more than fifty satellite television programs on technology that were broadcast worldwide from Moscow, Rio, Mexico City, Beijing, Zurich, Mauna Kea, Berlin, Santiago, Kuala Lumpur, Cape Town, San Francisco, Paris, London, and other cities.
"Moscow and Red Square": 1995
Sunergy 7: September 8, 1993 "Cyberjockying in the 21st Century": Dr. Whitfield Diffie, Carl Malamud, Brewster Kahle, Larry Irving
Sunergy 8: "Internet" Dr. Eric Schmidt, Dr. Vinton Cerf, Geoffrey Baehr
Sunergy 12: January 24, 1995 "Information Highway Access: With Liberty and Justice for All?" Dr. Robert Kahn, Mike Nelson, Eric Schmidt, Deborah Kaplan, Marshall Rose, Wendell Bailey
"The Changing Fabric Of Telecommunications" (Sunergy 33), "Next Generation Networking" (Sunergy 25), and "Network Devices Brought to Life" (Sunergy 32)


IBM PS/2 portable computers

The IBM PS/2 portables was a Micro Channel architecture based, portable PS/2 computers released by IBM in 1989.
PS/2 P70.
The P70 model was released in Japan as PS/55 5545-T with the same specs, but with different keyboard layout.
PS/2 P75.
The P75 was a released in 1990 upgraded version of P70 model, and is noted as being the first portable computer using a 486 CPU to be available for sale in the United States. It had a briefcase-shaped design and ran off A/C power only, as was common with high performance portable computers at the time. It featured an Intel 80486 DX-33 CPU, and an internal 10 inch flat gas plasma display at 640x480 resolution with 16 shades of grey. The computer had relatively high performance specifications at the time it was released and could be used as a portable server. The cost reflected this performance; the IBM P75 retailed at US$15,990 for the base configuration, to over $18,500 or more depending on options.
Two versions of the P75 were sold, with the only difference between the two being hard drive capacity:
Design.
The IBM P75 in its travelling configuration resembles a briefcase with a carrying handle - all components such as the screen, floppy disk drive and keyboard are stowed away behind the keyboard during transport. To use the computer, one places the computer on a desk and opens the latches at either side of the front of the computer to release the keyboard, which swings down. The keyboard can then be fully released from the main unit and height adjusted for comfort. The screen viewing angle can also be adjusted by pulling on tabs on either side of the screen. To access the floppy drive, one pushes on a raised square on the floppy drive disk cover to release it.
Hardware.
The IBM P75 has similar specifications to an IBM model 90, but has been made into a portable. It features an Intel i486-DX 33 CPU that is housed on a processor complex card separate from the motherboard. The computer uses IBM's Micro Channel architecture (MCA) bus and has 4 internal bus slots: one 32-bit AVE, one 32-bit MME, and two 16-bit short slots.
The internal gas plasma display of the IBM P75 is XGA/VGA, EGA, MCGA, CGA compatible, and operates at a maximum 640×480 in 16 shades of grey in VGA mode. The IBM P75 can drive its internal monitor and an external monitor simultaneously. When driving the external monitor only, it can operate at 800x600 resolution in 16-bit (high-colour) in Windows 95 using third party drivers.
The keyboard is a 101 key, full size and full travel IBM keyboard and serves as both the keyboard of the unit and the cover of the unit when being transported. It is attached to the computer through a 14-inch rolled-coil cable.
Hard disk configurations were available in 2 varieties, a 160 MB SCSI hard disk drive (model 8573-161) or a 400 MB SCSI (model 8573-401), with the onboard SCSI controller being capable of handling drives up to 1GB.
The IBM P75 supports up to 16 megabytes of Random-access memory through 4 SIMM slots on the motherboard, each of which can accept a 2 MB or 4 MB 70 nanosecond SIMM. The SIMM must be manufactured by IBM for the computer to accept them – non IBM SIMMs or generic SIMMs that do not utilise the "presence detect" feature cannot be used unless modified. The stock configuration of RAM on IBM P75 is 8 MB.
The IBM P75 featured numerous ports, including an external SCSI connector, a parallel port, a serial port, a PS/2 mouse port, an external 5.25 floppy disk port, and a VGA port. The ports are housed behind a door on the rear of the unit which allows for them to be hidden when not in use. The recess behind the door can also be used to store a power cable during transit. Power is supplied to the IBM P75 through an IEC C14 socket, the PSU accepts 100-240v 3.0A
Software.
The IBM P75, like other contemporary PS/2 computers of the period, utilises reference diskettes to make any changes to system settings such as the installed memory size, the assignment of the built-in connectors, and installed options with their location and assignments. System settings are stored in CMOS and data integrity is maintained through an internal non-rechargeable 6V battery. Should the internal 6V battery run low, the computer may not POST successfully as the internal CMOS contents are corrupted. The reference diskette also includes basic diagnostic software. If the computer is booted without an operating system and/or hard disk, the P75 will boot into IBM Cassette BASIC.
IBM did not ship with any additional operating system, but is fully compatible with OS/2, MS-DOS, IBM PC DOS and Microsoft Windows.


Upper memory area

In DOS memory management, the upper memory area (UMA) refers to memory between the addresses of 640 KB and 1024 KB (0xA0000–0xFFFFF) in an IBM PC or compatible. IBM reserved the uppermost 384 KB of the 8088 CPU's 1024 KB address space for BIOS ROM, Video BIOS, Option ROMs, video RAM, RAM on peripherals, memory-mapped I/O, and obsoleted ROM BASIC.
However, even with video RAM, the ROM BIOS, the Video BIOS, the Option ROMs, and I/O ports for peripherals, much of this 384 KB of address space was unused. As the 640 KB memory restriction became ever more of an obstacle, techniques were found to fill the empty areas with RAM. These areas were referred to as upper memory blocks (UMBs).
Usage.
The next stage in the evolution of DOS was for the operating system to use upper memory blocks (UMBs) and the high memory area (HMA). This occurred with the release of DR DOS 5.0 in 1990. DR DOS' built-in memory manager, EMM386.EXE, could perform most of the basic functionality of QEMM and comparable programs.
The advantage of DR DOS 5.0 over the combination of an older DOS plus QEMM was that the DR DOS kernel itself and almost all of its data structures could be loaded into high memory. This left virtually "all" the base memory free, allowing configurations with up to 620 KB out of 640 KB free.
Configuration was not automatic - free UMBs had to be identified by hand, manually included in the line that loaded EMM386 from CONFIG.SYS, and then drivers and so on had to be manually loaded into UMBs from CONFIG.SYS and AUTOEXEC.BAT. This configuration was not a trivial process. As it was largely automated by the installation program of QEMM, this program survived on the market; indeed, it worked well with DR DOS' own HMA and UMB support and went on to be one of the best-selling utilities for the PC.
This functionality was copied by Microsoft with the release of MS-DOS 5.0 in June 1991. Eventually, even more DOS data structures were moved out of conventional memory, allowing up to 631 KB out of 640 KB to be left free. Starting from version 6.0 of MS-DOS, Microsoft even included a program called MEMMAKER which was used to automatically optimize conventional memory by moving TSR programs to the upper memory.
For a period in the early 1990s, manual optimization of the DOS memory map became a highly prized skill, allowing for the largest applications to run on even the most complex PC configurations. The technique was to first create as many UMBs as possible, including remapping allocated but unused blocks of memory, such as the monochrome display area on colour machines. Then, DOS' many subcomponents had to be loaded into these UMBs in the correct sequence to use the blocks of memory as efficiently as possible. Some TSR programs required additional memory while loading, which was freed up again once loading was complete. Fortunately, there were few dependencies amongst these modules, so it was possible to load them in almost any sequence. Exceptions were that to successfully cache CD-ROMs, most disk caches had to be loaded after any CD-ROM drivers, and that the modules of most network stacks had to be loaded in a certain sequence, essentially working progressively up through the layers of the OSI model.
A basic yet effective method used to optimize conventional memory was to load HIMEM.SYS as a device, thereafter loading EMM386.EXE as a device with the "RAM AUTO" option which allows access into the UMA by loading device drivers as devicehigh. This method effectively loads the fundamental memory managers into conventional memory, and thereafter everything else into the UMA. Conventional memory glutton programs such as MSCDEX could also be loaded into the UMA in a similar fashion, hence freeing up a large amount of conventional memory.
Windows.
The increasing popularity of Windows 3.0 made the necessity of the upper memory area less relevant, as Windows applications were not directly affected by DOS' base memory limits, but DOS programs running under Windows (with Windows itself acting as a multitasking manager) were still thus constrained. With the release of Windows 95, it became less relevant still, as this version of Windows provides much of the functionality of the DOS device drivers to DOS applications running under Windows, such as CD, network and sound support; the memory map of Windows 95 DOS boxes was automatically optimised. However, not all DOS programs could execute in this environment. Specifically, programs that tried to directly switch from real mode to protected mode would not work as this was not allowed in the virtual 8086 mode it was running in. This point is now being addressed by x86 virtualization technologies such as Intel VT-x (Vanderpool) and AMD-V (Pacifica). Also, programs that tried making the switch using the Virtual Control Program Interface (VCPI) API (which was introduced to allow DOS programs that needed protected mode to enter it from the virtual 8086 mode set up by a memory manager, as described above) didn't work in Windows 95. Only the DOS Protected Mode Interface (DPMI) API for switching to protected mode was supported.
Implementation.
Virtual 8086 Mode.
Upper memory blocks can be created by mapping extended memory into the upper memory area when running in virtual 8086 mode. This is similar to how expanded memory can be emulated using extended memory so this method of providing upper memory blocks is usually provided by the expanded memory manager (for example EMM386). The application programming interface for managing the upper memory blocks is specified in the "eXtended Memory Specification".
Shadow RAM.
On many systems including modern ones it is possible to use memory reserved for shadowing expansion card ROM as upper memory. Many chipsets reserve up to 384 KB RAM for this purpose and since this RAM is generally unused it may be used as real mode upper memory with a custom device driver, such as UMBPCI.
IBM XT.
On IBM XT computers, it was possible to add more memory to the motherboard and use a custom address decoder PROM to make it appear in the upper memory area. As with the 386-based upper memory described above, the extra RAM could be used to load TSR files, or as a RAM disk.
The AllCard, an add-on memory management unit for XT-class computers, allowed normal memory to be mapped into the 0xA0000-EFFFF address range, giving up to 952 KB for DOS programs. Programs such as Lotus 1-2-3, which accessed video memory directly, needed to be patched to handle this memory layout. Therefore, the 640 KB barrier was removed at the cost of software compatibility. This usage of the upper memory area is different from using upper memory blocks, which was used to free conventional memory by moving device drivers and TSRs into the upper 384 KB of the 1 MB address space, but left the amount of addressable memory (640 KB) intact.


Agent Armstrong

Agent Armstrong is a platform game for PlayStation and Microsoft Windows developed by King of the Jungle and published by Virgin Interactive.
Plot.
In the 1935, the British Secret Service's most respected asset, Agent Armstrong, must put a stop to a mysterious, evil organisation known as the Syndicate. He has escaped from the Syndicate with their plans that reveal their weakness. Armed with this information, he chases the Syndicate and their leader Spats Falconetti around the globe as they are gradually taking over the world.
Gameplay.
The game is a side-scrolling 3D platform game. Along with left to right movement, the character can also move back (away from the screen) and forwards (towards the screen). It is broken down into 30 levels taking place in various different locations such as Chicago and the Amazon. The player, armed with a gun and grenades must fight their way through various enemies and large mid-level and end-level bosses. In addition to simply killing enemies the game also contains mission based tasks or objectives that must be completed such as destroying Syndicate supply crates in the level.
The tone of the game humorous with funny cutscenes and FMV sequences.
A secret option that allowed for the game to be played in black in white with Pathé News style commentary was removed from the German release of the game.
Development.
The game runs at 60 frames per second due to specially created set construction software.
Jolyon Myers, one of the lead developers stated in an interview with Retro Gamer magazine that parts of "Agent Armstrong" were inspired by the game ThunderJaws. He also states on his portfolio website that he created the backgrounds for the game in Deluxe Paint and the cover art and other renders using 3D studio.
Reception.
Computer and Video Games magazine gave the game 2 out of 5 stating that "the action is repetitive with the same old thing to do all the way through the game.
Jeuxvideo.com gave the game 14 out of 20 in a retrospective review in 2012.


Netlink

The Netlink socket family is a Linux kernel interface used for inter-process communication (IPC) between both the kernel and userspace processes, and between different userspace processes, in a way similar to the Unix domain sockets. Similarly to the Unix domain sockets, and unlike INET sockets, Netlink communication cannot traverse host boundaries. However, while the Unix domain sockets use the file system namespace, Netlink processes are usually addressed by process identifiers (PIDs).
Netlink is designed and used for transferring miscellaneous networking information between the kernel space and userspace processes. Networking utilities, such as the iproute2 family and the utilities used for configuring mac80211-based wireless drivers, use Netlink to communicate with the Linux kernel from userspace. Netlink provides a standard socket-based interface for userspace processes, and a kernel-side API for internal use by kernel modules. Originally, Netlink used the socket family.
Netlink is designed to be a more flexible successor to ioctl; RFC 3549 describes the protocol in detail.
History.
Netlink was created by Alexey Kuznetsov as a more flexible alternative to the sophisticated but awkward communication method used for setting and getting external socket options. The Linux kernel continues to support for backward compatibility.
Netlink was first provided in the 2.0 series of the Linux kernel, implemented as a character device. By 2013, this interface is obsolete, but still forms an ioctl communication method; compare the use of . The Netlink socket interface appeared in 2.2 series of the Linux kernel.
Packet structure.
Unlike BSD sockets using Internet protocols such as TCP, where the message headers are autogenerated, the Netlink message header (available as ) must be prepared by the caller. The Netlink socket generally works in a -like mode, even if was used to create it.
The data portion then contains a subsystem-specific message that may be further nested.
Netlink socket families.
The family offers multiple protocol subsets. Each interfaces to a different kernel component and has a different messaging subset. The subset is referenced by the protocol field in the socket call:
 int socket(AF_NETLINK, SOCK_DGRAM "or" SOCK_RAW, "protocol")
Lacking a standard, and are not guaranteed to be implemented in a given Linux (or other OS) release. Some sources state that both options are legitimate, and the reference below from Red Hat states that is always the parameter. However, iproute2 uses both interchangeably.
Netlink protocols.
A non-exhaustive list of the supported "protocol" entries follows:
 provides routing and link information. This information is used primarily for user-space routing daemons. Linux implements a large subset of messages:
 provides an interface for a user-space app to receive packets from the firewall.
 provides an interface used to communicate between Netfilter and iptables.
 provides an interface to manage the ARP table from user-space.
 provides an interface to the audit subsystem found in Linux kernel versions 2.6.6 and later.
 provides an interface to transport packets from netfilter to user-space.
 provides an interface to manage the IPsec security association and security policy databases - mostly used by key-manager daemons using the Internet Key Exchange protocol.
 provides the interface in which the kernel broadcasts uevents, typically consumed by udev.
One of the drawbacks of the Netlink protocol is that the number of protocol families is limited to 32 ().This is one of the main reasons that the generic Netlink family was created—to provide support for adding a higher number of families. It acts as a Netlink multiplexer and works with a single Netlink family . The generic Netlink protocol is based on the Netlink protocol and uses its API.
User-defined Netlink protocol.
Users can add a Netlink handler in their own kernel routines. This allows the development of additional Netlink protocols to address new kernel modules.


Intel X79

The Intel X79 (codenamed "Patsburg") is a Platform Controller Hub (PCH) designed and manufactured by Intel for their LGA 2011 (Socket R) and LGA 2011-1 (Socket R2).
Socket and chipset support CPUs targeted at the high-end desktop (HEDT) and enthusiast segments of the Intel product lineup: Core i7-branded and Xeon-branded processors from the Sandy Bridge and Ivy Bridge CPU architectures.
The supported CPUs feature quad channel memory controllers, and a certain number of PCIe lanes, the chipset features additional PCIe lanes; it is designed to connect an Intel processor through a DMI 2.0 interface to peripheral devices.
Features.
The first product was announced on November 14, 2011, for "Extreme" CPUs using the LGA 2011 socket.
Features include:
The X79 chipset is made to work with the Intel LGA 2011 (Socket R) which features 2011 copper pins. The added pins allow for more PCI Express lanes and interconnects for server class processors.
Newer Core and Xeon processors address 40 PCI Express 3.0 lanes directly through Sandy Bridge-E architecture (Xeon) and Ivy Bridge architecture (Core processors).
Partial support for Windows XP.
The X79 chipset does not support installing Windows XP in AHCI mode for Intel's Serial ATA controllers as Intel won't release AHCI drivers for 32-bit Windows XP. Windows XP can be installed in IDE mode but without SATA features enabled. For users that dual boot Windows XP with another operating system installed in AHCI mode, this means changing to IDE mode every time to boot into Windows XP and changing back to SATA to boot the other OS, or installing the other OS which supports AHCI also in IDE mode to prevent switching the setting in the BIOS each time. This restriction applies only to 32-bit Windows XP; 64-bit Windows XP is supported by Intel drivers.
For motherboards with X79 chipset but with third party SATA disk controllers, 32-bit Windows XP AHCI drivers may still be supported by the disk controller vendor (non-Intel).


High color

High color graphics is a method of storing image information in a computer's memory such that each pixel is represented by two bytes. Usually the color is represented by all 16 bits, but some devices also support 15-bit high color.
More recently, the term "high color" has been used by Microsoft to identify display systems that can make use of more than 8-bits per color channel (10:10:10:2 or 16:16:16:16 rendering formats) from traditional 8-bit per color channel formats. This is a different and distinct usage from the 15-bit (5:5:5) or 16-bit (5:6:5) formats traditionally associated with the phrase "high color".
15-bit high color.
In 15-bit high color, one of the bits of the two bytes is ignored or set aside for an alpha channel, and the remaining 15 bits are split between the red, green, and blue components of the final color, like this:
Each of the RGB components has 5 bits associated, giving 2⁵ = 32 intensities of each component. This allows 32768 possible colors for each pixel.
The popular Cirrus Logic graphics chips of the early 1990s made use of the spare high-order bit for their so-called "mixed" video modes: with bit 15 clear, bits 0 through 14 would be treated as an RGB value as described above, while with bit 15 set, bit 0 through 7 would be interpreted as an 8-bit index into a 256-color palette (with bits 8 through 14 remaining unused.) This would have enabled display of (comparatively) high-quality color images side by side with palette-animated screen elements, but in practice, this feature was hardly used by any software.
16-bit high color.
When all 16 bits are used, one of the components (usually green, see below) gets an extra bit, allowing 64 levels of intensity for that component, and a total of 65536 available colors.
This can lead to small discrepancies in encoding, e.g. when one wishes to encode the 24-bit colour RGB (40, 40, 40) with 16 bits (a problem common to subsampling). Forty in binary is 00101000. The red and blue channels will take the five most significant bits, and will have a value of 00101, or 5 on a scale from 0 to 31 (16.1%). The green channel, with six bits of precision, will have a binary value of 001010, or 10 on a scale from 0 to 63 (15.9%). Because of this, the colour RGB (40, 40, 40) will have a slight purplish ("magenta") tinge when displayed in 16 bits. Note that 40 on a scale from 0 to 255 is 15.7%. Other 24-bit colours would incur a "green" tinge when subsampled: for instance, the 24-bit RGB representation of 14.1% grey, i.e. (36, 36, 36), would be encoded as 4/31 (12.9%) on the red and blue channels, but 9/63 (14.3%) on the green channel, because 36 is represented as 00100100 in binary.
Green is usually chosen for the extra bit in 16 bits because the human eye has its highest sensitivity for green shades. For a demonstration, look closely at the following picture (note: this will work only on monitors displaying true color, i.e., 24 or 32 bits) where dark shades of red, green and blue are shown using 128 levels of intensities for each component (7 bits).
Readers with normal vision should see the individual shades of green relatively easily, while the shades of red should be difficult to see, and the shades of blue are likely indistinguishable. More rarely, some systems support having the extra bit of colour depth on the red or blue channel, usually in applications where that colour is more prevalent (photographing of skin tones or skies, for example).
Other notes.
There is generally no need for a color look up table (CLUT, or palette) when in high color mode, because there are enough available colors per pixel to represent graphics and photos reasonably satisfactorily. However, the lack of precision decreases image fidelity; as a result, some image formats (e.g., TIFF) can save paletted 16-bit images with an embedded CLUT.


Apple A9X

The Apple A9X is a 64-bit ARM architecture-based system on a chip (SoC) designed by Apple Inc. It first appeared in the iPad Pro, which was announced on September 9, 2015 and was released on November 11, 2015. The A9X has the M9 motion coprocessor embedded in it, something not seen in previous chip generations. It is a variant of the A9 and Apple claims that it has 80% more CPU performance and twice the GPU performance of its predecessor, the A8X.
Design.
The A9X features an Apple-designed 64-bit ARMv8-A dual-core CPU called "Twister". It offers double the memory bandwidth and double the storage performance of the Apple A8X.
Unlike the A9, the A9X does not contain an L3 cache due to its significant DRAM bandwidth. The A9X is paired with 4 GB of LPDDR4 memory in the 12.9" iPad Pro and 2 GB of LPDDR4 memory in the 9.7" iPad Pro with a total bandwidth of 51.2 GB/s. This high bandwidth is necessary to feed the SoC's custom 12-core PowerVR Series7XT GPU. The RAM is not included in the A9X package unlike its sibling, the A9.
The A9X uses the same NAND interface as the A9, which uses an Apple-designed NVMe-based controller that communicates over a PCIe connection. The iPad Pro's NAND design is more akin to a PC-class SSD than embedded flash memory common on mobile devices. This gives the iPad Pro a significant storage performance advantage over competitors which often use mSATA or eMMC to connect to their storage systems.


Tom Rawson


SSE5

The SSE5 (short for Streaming SIMD Extensions version 5) was a SIMD instruction set extension proposed by AMD on August 30, 2007 as a supplement to the 128-bit SSE core instructions in the AMD64 architecture.
AMD chose not to implement SSE5 as originally proposed. In May 2009, AMD replaced SSE5 with three smaller instruction set extensions named as XOP, FMA4, and F16C, which retain the proposed functionality of SSE5, but encode the instructions differently for better compatibility with Intel's proposed AVX instruction set.
The three SSE5-derived instruction sets were introduced in the Bulldozer processor core, released in October 2011 on a 32 nm process.
Compatibility.
AMD's SSE5 extension bundle does not include the full set of Intel's SSE4 instructions, making it a competitor to SSE4 rather than a successor.
This complicates software development. It is recommended practice for a program to test for the presence of instruction set extensions by means of the CPUID instruction before entering a code path which depends upon those instructions to function correctly. For maximum portability, an optimized application will require three code paths: a base code path for compatibility with older processors (from either vendor), a separately optimized Intel code path exploiting SSE4 or AVX, and a separately optimized AMD code path exploiting SSE5.
Due to this proliferation, benchmarks between Intel and AMD processors increasingly reflect the cleverness or implementation quality of the divergent code paths rather than the strength of the underlying platform.
SSE5 enhancements.
The proposed SSE5 instruction set consisted of 170 instructions (including 46 base instructions), many of which are designed to improve single-threaded performance. Some SSE5 instructions are 3-operand instructions, the use of which will increase the average number of instructions per cycle achievable by x86 code. Selected new instructions include:
AMD claims SSE5 will provide dramatic performance improvements, particularly in high-performance computing (HPC), multimedia, and computer security applications, including a 5x performance gain for Advanced Encryption Standard (AES) encryption and a 30% performance gain for discrete cosine transform (DCT) used to process video streams.
For more detailed information, consult the instruction sets as subsequently divided.
2009 revision.
The SSE5 specification included a proposed extension to the general coding scheme of x86 instructions in order to allow instructions to have more than two operands. In 2008, Intel announced their planned AVX instruction set which proposed a different way of coding instructions with more than two operands. The two proposed coding schemes, SSE5 and AVX, are mutually incompatible, although the AVX scheme has certain advantages over the SSE5 scheme: most importantly, AVX has plenty of space for future extensions, including larger vector sizes.
In May 2009, AMD published a revised specification for the planned future instructions. This revision changes the coding scheme to make it compatible with the AVX scheme, but with a differing prefix byte in order to avoid overlap between instructions introduced by AMD and instructions introduced by Intel.
The revised instruction set no longer carries the name SSE5, which has been criticized for being misleading, but most of the instructions in the new revision are functionally identical to the original SSE5 specification—only the way the instructions are coded differs. The planned additions to the AMD instruction set consists of three subsets:
These new instruction sets include support for future extensions for the vector size from 128 bits to 256 bits. It is unclear from these preliminary specifications whether the Bulldozer processor will support 256-bit vector registers (YMM registers).


List of AMD Sempron microprocessors

The Sempron is a name used for AMD's low-end CPUs, replacing the Duron processor. The name was introduced in 2004, and processors with this name continued to be available for the FM2/FM2+ socket in 2015.