Misplaced Pages

PCI configuration space

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

PCI configuration space is the underlying way that the Conventional PCI , PCI-X and PCI Express perform auto configuration of the cards inserted into their bus.

#487512

125-498: PCI devices have a set of registers referred to as configuration space and PCI Express introduces extended configuration space for devices. Configuration space registers are mapped to memory locations. Device drivers and diagnostic software must have access to the configuration space, and operating systems typically use APIs to allow access to device configuration space. When the operating system does not have access methods defined or APIs for memory mapped configuration space requests,

250-544: A procedural language such as Lua could consist primarily of basic routines to execute code, manipulate data or handle errors while an API for an object-oriented language , such as Java, would provide a specification of classes and its class methods . Hyrum's law states that "With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody." Meanwhile, several studies show that most applications that use an API tend to use

375-420: A software framework : a framework can be based on several libraries implementing several APIs, but unlike the normal use of an API, the access to the behavior built into the framework is mediated by extending its content with new classes plugged into the framework itself. Moreover, the overall program flow of control can be out of the control of the caller and in the framework's hands by inversion of control or

500-496: A user interface , an API is typically not visible to users. It is an "under the hood" portion of a software system, used for machine-to-machine communication. A well-designed API exposes only objects or actions needed by software or software developers. It hides details that have no use. This abstraction simplifies programming. Building software using APIs has been compared to using building-block toys, such as Lego bricks. Software services or software libraries are analogous to

625-565: A 32-bit word. Configuration reads and writes can be initiated from the CPU in two ways: one legacy method via I/O addresses 0xCF8 and 0xCFC , and another called memory-mapped configuration. The legacy method was present in the original PCI, and it is called Configuration Access Mechanism (CAM). It allows for 256 bytes of a device's address space to be reached indirectly via two 32-bit registers called PCI CONFIG_ADDRESS and PCI CONFIG_DATA. These registers are at addresses 0xCF8 and 0xCFC in

750-449: A broad term describing much of the communication on the internet. When used in this way, the term API has overlap in meaning with the term communication protocol . The interface to a software library is one type of API. The API describes and prescribes the "expected behavior" (a specification) while the library is an "actual implementation" of this set of rules. A single API can have multiple implementations (or none, being abstract) in

875-517: A business ecosystem. The main policies for releasing an API are: An important factor when an API becomes public is its "interface stability". Changes to the API—for example adding new parameters to a function call—could break compatibility with the clients that depend on that API. When parts of a publicly presented API are subject to change and thus not stable, such parts of a particular API should be documented explicitly as "unstable". For example, in

1000-460: A client would need to know for practical purposes. Documentation is crucial for the development and maintenance of applications using the API. API documentation is traditionally found in documentation files but can also be found in social media such as blogs, forums, and Q&A websites. Traditional documentation files are often presented via a documentation system, such as Javadoc or Pydoc, that has

1125-435: A consistent appearance and structure. However, the types of content included in the documentation differs from API to API. In the interest of clarity, API documentation may include a description of classes and methods in the API as well as "typical usage scenarios, code snippets, design rationales, performance discussions, and contracts", but implementation details of the API services themselves are usually omitted. It can take

1250-473: A device and must implement at least function number zero. The first 64 bytes of configuration space are standardized; the remainder are available for vendor-defined purposes. Some high-end computers support more than one PCI domain (or PCI segment); each PCI segment supports up to 256 buses. A PCI segment may be referred to a PCI root bridge . In order to allow more parts of configuration space to be standardized without conflicting with existing uses, there can be

1375-534: A given API, it is possible to infer the typical usages, as well the required contracts and directives. Then, templates can be used to generate natural language from the mined data. In 2010, Oracle Corporation sued Google for having distributed a new implementation of Java embedded in the Android operating system. Google had not acquired any permission to reproduce the Java API, although permission had been given to

SECTION 10

#1732771909488

1500-579: A given device in the PCI Express fabric. During system initialization, BIOS determines the base address for this "stolen" address region and communicates it to the root complex and to the operating system. Each device has its own 4 KB space and each device's info is accessible through a simple array dev[bus][device][function] so that 256 MB of physical contiguous space is "stolen" for this use (256 buses × 32 devices × 8 functions × 4 KB = 256 MB). The base physical address of this array

1625-437: A limited group of private investors (equivalent to $ 21 million in 2022), convertible at $ 5 per share. Just 2 years later, Intel became a public company via an initial public offering (IPO), raising $ 6.8 million ($ 23.50 per share). Intel was one of the very first companies to be listed on the then-newly established National Association of Securities Dealers Automated Quotations ( NASDAQ ) stock exchange. Intel's third employee

1750-464: A list of capabilities defined within the remaining 192 bytes of PCI configuration space. Each capability has one byte that describes which capability it is, and one byte to point to the next capability. The number of additional bytes depends on the capability ID. If capabilities are being used, a bit in the Status register is set, and a pointer to the first in a linked list of capabilities is provided in

1875-572: A major retrenchment for most of the major semiconductor manufacturers, except for Qualcomm, which continued to see healthy purchases from its largest customer, Apple. As of July 2013, five companies were using Intel's fabs via the Intel Custom Foundry division: Achronix , Tabula , Netronome , Microsemi , and Panasonic  – most are field-programmable gate array (FPGA) makers, but Netronome designs network processors. Only Achronix began shipping chips made by Intel using

2000-441: A modular software library in the 1940s for EDSAC , an early computer. The subroutines in this library were stored on punched paper tape organized in a filing cabinet . This cabinet also contained what Wilkes and Wheeler called a "library catalog" of notes about each subroutine and how to incorporate it into a program. Today, such a catalog would be called an API (or an API specification or API documentation) because it instructs

2125-632: A new microprocessor manufacturing facility in Chandler, Arizona , completed in 2013 at a cost of $ 5 billion. The building is now the 10 nm-certified Fab 42 and is connected to the other Fabs (12, 22, 32) on Ocotillo Campus via an enclosed bridge known as the Link. The company produces three-quarters of its products in the United States, although three-quarters of its revenue come from overseas. The Alliance for Affordable Internet (A4AI)

2250-470: A number of forms, including instructional documents, tutorials, and reference works. It'll also include a variety of information types, including guides and functionalities. Restrictions and limitations on how the API can be used are also covered by the documentation. For instance, documentation for an API function could note that its parameters cannot be null, that the function itself is not thread safe . Because API documentation tends to be comprehensive, it

2375-529: A person (the end user ) other than a computer programmer who is incorporating it into software. An API is often made up of different parts which act as tools or services that are available to the programmer. A program or a programmer that uses one of these parts is said to call that portion of the API. The calls that make up the API are also known as subroutines , methods, requests, or endpoints . An API specification defines these calls, meaning that it explains how to use or implement them. One purpose of APIs

2500-696: A processor for tablets and smartphones – to the market in 2012, as an effort to compete with Arm. As a 32-nanometer processor, Medfield is designed to be energy-efficient, which is one of the core features in Arm's chips. At the Intel Developers Forum (IDF) 2011 in San Francisco, Intel's partnership with Google was announced. In January 2012, Google announced Android 2.3, supporting Intel's Atom microprocessor. In 2013, Intel's Kirk Skaugen said that Intel's exclusive focus on Microsoft platforms

2625-440: A programmer on how to use (or "call") each subroutine that the programmer needs. Wilkes and Wheeler's book The Preparation of Programs for an Electronic Digital Computer contains the first published API specification. Joshua Bloch considers that Wilkes and Wheeler "latently invented" the API, because it is more of a concept that is discovered than invented. The term "application program interface" (without an -ing suffix)

SECTION 20

#1732771909488

2750-499: A read to a specified B/D/F combination for the vendor ID register succeeds, the system firmware or operating system knows that it exists; it writes all ones to its BARs and reads back the device's requested memory size in an encoded form. The design implies that all address space sizes are a power of two and are naturally aligned. At this point, the BIOS or operating system will program the memory-mapped addresses and I/O port addresses into

2875-723: A reduction in Intel's dominance and market share in the PC market. Nevertheless, with a 68.4% market share as of 2023, Intel still leads the x86 market by a wide margin. In addition, Intel's ability to design and manufacture its own chips is considered a rarity in the semiconductor industry , as most chip designers do not have their own production facilities and instead rely on contract manufacturers (e.g. AMD and Nvidia ). In 2023, Dell accounted for about 19% of Intel's total revenues, Lenovo accounted for 11% of total revenues, and HP Inc. accounted for 10% of total revenues. As of May 2024,

3000-643: A shipping company API that can be added to an eCommerce-focused website to facilitate ordering shipping services and automatically include current shipping rates, without the site developer having to enter the shipper's rate table into a web database. While "web API" historically has been virtually synonymous with web service , the recent trend (so-called Web 2.0 ) has been moving away from Simple Object Access Protocol ( SOAP ) based web services and service-oriented architecture (SOA) towards more direct representational state transfer (REST) style web resources and resource-oriented architecture (ROA). Part of this trend

3125-404: A similar mechanism. An API can specify the interface between an application and the operating system . POSIX , for example, specifies a set of common APIs that aim to enable an application written for a POSIX conformant operating system to be compiled for another POSIX conformant operating system. Linux and Berkeley Software Distribution are examples of operating systems that implement

3250-441: A small part of the API. Language bindings are also APIs. By mapping the features and capabilities of one language to an interface implemented in another language, a language binding allows a library or service written in one language to be used when developing in another language. Tools such as SWIG and F2PY, a Fortran -to- Python interface generator, facilitate the creation of such interfaces. An API can also be related to

3375-579: A standalone business unit. Unlike Intel Custom Foundry, IFS will offer a combination of packaging and process technology, and Intel's IP portfolio including x86 cores. Other plans for the company include a partnership with IBM and a new event for developers and engineers, called "Intel ON". Gelsinger also confirmed that Intel's 7 nm process is on track, and that the first products using their 7 nm process (also known as Intel 4) are Ponte Vecchio and Meteor Lake . In January 2022, Intel reportedly selected New Albany, Ohio , near Columbus, Ohio , as

3500-636: A stroke regained much of its leadership of the field. In 2008, Intel had another "tick" when it introduced the Penryn microarchitecture, fabricated using the 45 nm process node. Later that year, Intel released a processor with the Nehalem architecture to positive reception. On June 27, 2006, the sale of Intel's XScale assets was announced. Intel agreed to sell the XScale processor business to Marvell Technology Group for an estimated $ 600 million and

3625-555: A system of commands and thereby bar all others from writing its different versions to carry out all or part of the same commands. Intel Corp Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California , and incorporated in Delaware . Intel designs, manufactures, and sells computer components and related products for business and consumer markets. It

3750-456: Is RISC-V , which is an open source CPU instruction set. The major Chinese phone and telecommunications manufacturer Huawei has released chips based on the RISC-V instruction set due to US sanctions against China . Intel has been involved in several disputes regarding the violation of antitrust laws , which are noted below. Intel reported total CO 2 e emissions (direct + indirect) for

3875-454: Is a challenge for writers to keep the documentation updated and for users to read it carefully, potentially yielding bugs. API documentation can be enriched with metadata information like Java annotations . This metadata can be used by the compiler, tools, and by the run-time environment to implement custom behaviors or custom handling. It is possible to generate API documentation in a data-driven manner. By observing many programs that use

PCI configuration space - Misplaced Pages Continue

4000-511: Is allocated by the PCI-SIG . The 16-bit device ID is then assigned by the vendor. There is an inactive project to collect all known Vendor and Device IDs. (See the external links below.) The Status register is used to report which features are supported and whether certain kinds of errors have occurred. The Command register contains a bitmask of features that can be individually enabled and disabled. The Header Type register values determine

4125-430: Is an API response . A weather forecasting app might integrate with a number of weather sensor APIs, gathering weather data from throughout a geographical area. An API is often compared to a contract . It represents an agreement between parties: a service provider who offers the API and the software developers who rely upon it. If the API remains stable, or if it changes only in predictable ways, developers' confidence in

4250-512: Is an architectural approach that revolves around providing a program interface to a set of services to different applications serving different types of consumers. When used in the context of web development , an API is typically defined as a set of specifications, such as Hypertext Transfer Protocol (HTTP) request messages, along with a definition of the structure of response messages, usually in an Extensible Markup Language ( XML ) or JavaScript Object Notation ( JSON ) format. An example might be

4375-460: Is associated with the executive leadership and vision of Andrew Grove . The company was a key component of the rise of Silicon Valley as a high-tech center, as well as being an early developer of SRAM and DRAM memory chips, which represented the majority of its business until 1981. Although Intel created the world's first commercial microprocessor chip—the Intel 4004 —in 1971, it was not until

4500-407: Is called an API specification . A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation. In contrast to a user interface , which connects a computer to a person, an application programming interface connects computers or pieces of software to each other. It is not intended to be used directly by

4625-522: Is considered one of the world's largest semiconductor chip manufacturers by revenue and ranked in the Fortune 500 list of the largest United States corporations by revenue for nearly a decade, from 2007 to 2016 fiscal years, until it was removed from the ranking in 2018. In 2020, it was reinstated and ranked 45th, being the 7th-largest technology company in the ranking . Intel supplies microprocessors for most manufacturers of computer systems, and

4750-522: Is created in one place dynamically can be posted and updated to multiple locations on the web. For example, Twitter's REST API allows developers to access core Twitter data and the Search API provides methods for developers to interact with Twitter Search and trends data. The design of an API has significant impact on its usage. The principle of information hiding describes the role of programming interfaces as enabling modular programming by hiding

4875-438: Is expected to affect Intel minimally; however, it might prompt other PC manufacturers to reevaluate their reliance on Intel and the x86 architecture. On March 23, 2021, CEO Pat Gelsinger laid out new plans for the company. These include a new strategy, called IDM 2.0, that includes investments in manufacturing facilities, use of both internal and external foundries, and a new foundry business called Intel Foundry Services (IFS),

5000-399: Is first recorded in a paper called Data structures and techniques for remote computer graphics presented at an AFIPS conference in 1968. The authors of this paper use the term to describe the interaction of an application—a graphics program in this case—with the rest of the computer system. A consistent application interface (consisting of Fortran subroutine calls) was intended to free

5125-419: Is merely a device's sequential number on that bus. Moreover, after a new bridge is detected, a new bus number is defined, and device enumeration restarts at device number zero. If no response is received from the device's function #0, the bus master performs an abort and returns an all-bits-on value ( FFFFFFFF in hexadecimal), which is an invalid VID/DID value, thus the BIOS or operating system can tell that

PCI configuration space - Misplaced Pages Continue

5250-456: Is not specified. For example, on modern x86 systems the ACPI tables contain the necessary information. API An application programming interface ( API ) is a connection between computers or between computer programs . It is a type of software interface , offering a service to other pieces of software . A document or standard that describes how to build such a connection or interface

5375-453: Is now the most common meaning of the term API. The Semantic Web proposed by Tim Berners-Lee in 2001 included "semantic APIs" that recast the API as an open , distributed data interface rather than a software behavior interface. Proprietary interfaces and agents became more widespread than open ones, but the idea of the API as a data interface took hold. Because web APIs are widely used to exchange data of all kinds online, API has become

5500-484: Is one of the developers of the x86 series of instruction sets found in most personal computers (PCs). It also manufactures chipsets , network interface controllers , flash memory , graphics processing units (GPUs), field-programmable gate arrays (FPGAs), and other devices related to communications and computing. Intel has a strong presence in the high-performance general-purpose and gaming PC market with its Intel Core line of CPUs, whose high-end models are among

5625-471: Is planned for 2027. Including subcontractors, this would create 10,000 new jobs. In August 2022, Intel signed a $ 30   billion partnership with Brookfield Asset Management to fund its recent factory expansions. As part of the deal, Intel would have a controlling stake by funding 51% of the cost of building new chip-making facilities in Chandler, with Brookfield owning the remaining 49% stake, allowing

5750-475: Is related to the Semantic Web movement toward Resource Description Framework (RDF), a concept to promote web-based ontology engineering technologies. Web APIs allow the combination of multiple APIs into new applications known as mashups . In the social media space, web APIs have allowed web communities to facilitate sharing content and data between communities and applications. In this way, content that

5875-427: Is required to decode only the lowest order 11 bits of the address space (AD[10] to AD[0]) address/data signals, and can ignore decoding the 21 high order A/D signals (AD[31] to AD[11]) because a Configuration Space access implementation has each slot's IDSEL pin connected to a different high order address/data line AD[11] through AD[31]. The IDSEL signal is a different pin for each PCI device/adapter/slot. To configure

6000-684: Is system dependent. This register does not apply to PCI Express. The Subsystem ID (SSID) and the Subsystem Vendor ID (SVID) differentiate specific model (such as an add-in card). While the Vendor ID is that of the chipset manufacturer, the Subsystem Vendor ID is that of the card manufacturer. The Subsystem ID is assigned by the subsystem vendor, the Device ID is assigned by the chipset manufacturer. As an example, in

6125-451: Is the following: As explained previously, addressing a device via Bus, Device, and Function (BDF) is also referred to as "addressing a device geographically." See arch/x86/pci/early.c in the Linux kernel code for an example of code that uses geographical addressing. When extended configuration space is used on some AMD CPUs, the extra bits 11:8 of the offset are written to bits 27:24 of

6250-440: Is to hide the internal details of how a system works, exposing only those parts a programmer will find useful and keeping them consistent even if the internal details later change. An API may be custom-built for a particular pair of systems, or it may be a shared standard allowing interoperability among many systems. The term API is often used to refer to web APIs , which allow communication between computers that are joined by

6375-533: The Cap. pointer register defined in the Standardized Registers. PCI-X 2.0 and PCI Express introduced an extended configuration space, up to 4096 bytes. The only standardized part of extended configuration space is the first four bytes at 0x100 which are the start of an extended capability list. Extended capabilities are very much like normal capabilities except that they can refer to any byte in

SECTION 50

#1732771909488

6500-549: The Google Guava library, the parts that are considered unstable, and that might change soon, are marked with the Java annotation @Beta . A public API can sometimes declare parts of itself as deprecated or rescinded. This usually means that part of the API should be considered a candidate for being removed, or modified in a backward incompatible way. Therefore, these changes allow developers to transition away from parts of

6625-686: The Java language in particular. In the 1990s, with the spread of the internet , standards like CORBA , COM , and DCOM competed to become the most common way to expose API services. Roy Fielding 's dissertation Architectural Styles and the Design of Network-based Software Architectures at UC Irvine in 2000 outlined Representational state transfer (REST) and described the idea of a "network-based Application Programming Interface" that Fielding contrasted with traditional "library-based" APIs. XML and JSON web APIs saw widespread commercial adoption beginning in 2000 and continuing as of 2021. The web API

6750-512: The Java remote method invocation API uses the Java Remote Method Protocol to allow invocation of functions that operate remotely, but appear local to the developer. Therefore, remote APIs are useful in maintaining the object abstraction in object-oriented programming ; a method call , executed locally on a proxy object, invokes the corresponding method on the remote object, using the remoting protocol, and acquires

6875-556: The Linux Standard Base provides an ABI. Remote APIs allow developers to manipulate remote resources through protocols , specific standards for communication that allow different technologies to work together, regardless of language or platform. For example, the Java Database Connectivity API allows developers to query many different types of databases with the same set of functions, while

7000-515: The PowerPC architecture developed by the AIM alliance . This was seen as a win for Intel; an analyst called the move "risky" and "foolish", as Intel's current offerings at the time were considered to be behind those of AMD and IBM. In 2006, Intel unveiled its Core microarchitecture to widespread critical acclaim; the product range was perceived as an exceptional leap in processor performance that at

7125-614: The Semiconductor Chip Protection Act of 1984 , a law sought by Intel and the Semiconductor Industry Association (SIA). During the late 1980s and 1990s (after this law was passed), Intel also sued companies that tried to develop competitor chips to the 80386 CPU . The lawsuits were noted to significantly burden the competition with legal bills, even if Intel lost the suits. Antitrust allegations had been simmering since

7250-488: The U.S. Department of Defense is another large customer for Intel. In September 2024, Intel reportedly qualified for as much as $ 3.5 billion in federal grants to make semiconductors for the Defense Department. According to IDC , while Intel enjoyed the biggest market share in both the overall worldwide PC microprocessor market (73.3%) and the mobile PC microprocessor (80.4%) in the second quarter of 2011,

7375-492: The Zen microarchitecture and a new chiplet -based design to critical acclaim. Since its introduction, AMD, once unable to compete with Intel in the high-end CPU market, has undergone a resurgence, and Intel's dominance and market share have considerably decreased. In addition, Apple began to transition away from the x86 architecture and Intel processors to their own Apple silicon for their Macintosh computers in 2020. The transition

7500-406: The dominant supplier of PC microprocessors, with a market share of 90%, and was known for aggressive and anti-competitive tactics in defense of its market position, particularly against AMD , as well as a struggle with Microsoft for control over the direction of the PC industry. Since the 2000s and especially since the late 2010s, Intel has faced increasing competition, which has led to

7625-479: The internet . There are also APIs for programming languages , software libraries , computer operating systems , and computer hardware . APIs originated in the 1940s, though the term did not emerge until the 1960s and 70s. An API opens a software system to interactions from the outside. It allows two software systems to communicate across a boundary — an interface — using mutually agreed-upon signals. In other words, an API connects software entities together. Unlike

SECTION 60

#1732771909488

7750-471: The motherboard ) through the PCI controller using the per slot or per device IDSEL (Initialization Device Select) signals. When the computer is powered on, the PCI bus(es) and device(s) must be enumerated by BIOS or operating system. Bus enumeration is performed by attempting to access the PCI configuration space registers for each buses, devices and functions. Note that device number, different from VID and DID,

7875-535: The semiconductor memory market, widely predicted to replace magnetic-core memory . Its first product, a quick entry into the small, high-speed memory market in 1969, was the 3101 Schottky TTL bipolar 64-bit static random-access memory (SRAM), which was nearly twice as fast as earlier Schottky diode implementations by Fairchild and the Electrotechnical Laboratory in Tsukuba, Japan . In

8000-457: The x86 processor market is AMD, with which Intel has had full cross-licensing agreements since 1976: each partner can use the other's patented technological innovations without charge after a certain time. However, the cross-licensing agreement is canceled in the event of an AMD bankruptcy or takeover. Some smaller competitors, such as VIA Technologies, produce low-power x86 processors for small factor computers and portable equipment. However,

8125-428: The "Above 4G" option in system firmware, 64 bit BARs can be used. Resizable BAR (also known as Re-Size BAR , AMD Smart Access Memory (SAM), or ASRock Clever Access Memory (CAM)) is a capability which a PCIe device can use to negotiate a larger BAR size. Classically, BARs were limited to a size of 256MB, but modern graphics cards have framebuffers much larger than that. This mismatch led to inefficiencies when

8250-464: The 22 nm Tri-Gate process. Several other customers also exist but were not announced at the time. The foundry business was closed in 2018 due to Intel's issues with its manufacturing. Intel continued its tick-tock model of a microarchitecture change followed by a die shrink until the 6th-generation Core family based on the Skylake microarchitecture. This model was deprecated in 2016, with

8375-461: The API that will be removed or not supported in the future. Client code may contain innovative or opportunistic usages that were not intended by the API designers. In other words, for a library with a significant user base, when an element becomes part of the public API, it may be used in diverse ways. On February 19, 2020, Akamai published their annual “State of the Internet” report, showcasing

8500-489: The API will increase. This may increase their use of the API. The term API initially described an interface only for end-user-facing programs, known as application programs . This origin is still reflected in the name "application programming interface." Today, the term is broader, including also utility software and even hardware interfaces . The idea of the API is much older than the term itself. British computer scientists Maurice Wilkes and David Wheeler worked on

8625-463: The CONFIG_ADDRESS register: The second method was created for PCI Express. It is called Enhanced Configuration Access Mechanism (ECAM). It extends device's configuration space to 4 KB, with the bottom 256 bytes overlapping the original (legacy) configuration space in PCI. The section of the addressable space is "stolen" so that the accesses from the CPU don't go to memory but rather reach

8750-538: The CPU accessed the framebuffer. Resizable BAR lets a CPU access the whole framebuffer at once, thus improving performance. A PCI device may also have an option ROM . When performing a Configuration Space access, a PCI device does not decode the address to determine if it should respond, but instead looks at the Initialization Device Select signal (IDSEL). There is a system-wide unique activation method for each IDSEL signal. The PCI device

8875-626: The IDSEL signal to reach a valid level. The scanning on the bus is performed on the Intel platform by accessing two defined standardized ports. These ports are the Configuration Space Address ( 0xCF8 ) I/O port and Configuration Space Data ( 0xCFC ) I/O port. The value written to the Configuration Space Address I/O port is created by combining B/D/F values and the registers address value into

9000-459: The PCI controller. Because all PCI devices are in an inactive state upon system reset, they will have no addresses assigned to them by which the operating system or device drivers can communicate with them. Either the BIOS or the operating system geographically addresses the PCI devices (for example, the first PCI slot, the second PCI slot, the third PCI slot, or the integrated PCI devices, etc., on

9125-502: The POSIX APIs. Microsoft has shown a strong commitment to a backward-compatible API, particularly within its Windows API (Win32) library, so older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode". An API differs from an application binary interface (ABI) in that an API is source code based while an ABI is binary based. For instance, POSIX provides APIs while

9250-611: The UN Broadband Commission's worldwide target of 5% of monthly income. In April 2011, Intel began a pilot project with ZTE Corporation to produce smartphones using the Intel Atom processor for China's domestic market. In December 2011, Intel announced that it reorganized several of its business units into a new mobile and communications group that would be responsible for the company's smartphone, tablet, and wireless efforts. Intel planned to introduce Medfield –

9375-689: The United States. Intel was incorporated in Mountain View, California , on July 18, 1968, by Gordon E. Moore (known for " Moore's law "), a chemist ; Robert Noyce , a physicist and co-inventor of the integrated circuit ; and Arthur Rock , an investor and venture capitalist . Moore and Noyce had left Fairchild Semiconductor , where they were part of the " traitorous eight " who founded it. There were originally 500,000 shares outstanding of which Dr. Noyce bought 245,000 shares, Dr. Moore 245,000 shares, and Mr. Rock 10,000 shares; all at $ 1 per share. Rock offered $ 2,500,000 of convertible debentures to

9500-587: The advent of such mobile computing devices, in particular, smartphones , has led to a decline in PC sales . Since over 95% of the world's smartphones currently use processors cores designed by Arm , using the Arm instruction set , Arm has become a major competitor for Intel's processor market. Arm is also planning to make attempts at setting foot into the PC and server market, with Ampere and IBM each individually designing CPUs for servers and supercomputers . The only other major competitor in processor instruction sets

9625-401: The application programming interface separately from other interfaces, such as the query interface. Database professionals in the 1970s observed these different interfaces could be combined; a sufficiently rich application interface could support the other interfaces as well. This observation led to APIs that supported all types of programming, not just application programming. By 1990, the API

9750-402: The assumption of unspecified liabilities. The move was intended to permit Intel to focus its resources on its core x86 and server businesses, and the acquisition completed on November 9, 2006. In 2008, Intel spun off key assets of a solar startup business effort to form an independent company, SpectraWatt Inc. In 2011, SpectraWatt filed for bankruptcy. In February 2011, Intel began to build

9875-413: The bricks; they may be joined together via their APIs, composing a new software product. The process of joining is called integration . As an example, consider a weather sensor that offers an API. When a certain message is transmitted to the sensor, it will detect the current weather conditions and reply with a weather report. The message that activates the sensor is an API call , and the weather report

10000-422: The card in slot n , the PCI bus bridge performs a configuration-space access cycle with the PCI device's register to be addressed on lines AD[7:2] (AD[1:0] are always zero since registers are double words (32-bits)), and the PCI function number specified on bits AD[10:8], with all higher-order bits zeros except for AD[ n +11] being used as the IDSEL signal on a given slot/device. To reduce electrically loading down

10125-539: The card, which is the kind of information the driver may use to apply a minor card-specific change in its operation. To address a PCI device, it must be enabled by being mapped into the system's I/O port address space or memory-mapped address space . The system's firmware (e.g. BIOS ) or the operating system program the Base Address Registers (commonly called BARs) to inform the device of its resources configuration by writing configuration commands to

10250-515: The case of wireless network cards , the chip manufacturer might be Intel or Broadcom or Atheros , and the card manufacturer might be Netgear or Hewlett-Packard . Generally, the Vendor ID–;Device ID combination designates which driver the host should load in order to handle the device, as all cards with the same VID:DID combination can be handled by the same driver. The Subsystem Vendor ID–Subsystem ID combination identifies

10375-420: The companies to split the revenue from those facilities. On January 31, 2023, as part of $ 3 billion in cost reductions, Intel announced pay cuts affecting employees above midlevel, ranging from 5% upwards. It also suspended bonuses and merit pay increases, while reducing retirement plan matching. These cost reductions followed layoffs announced in the fall of 2022. In October 2023, Intel confirmed it would be

10500-456: The company as NM Electronics on July 18, 1968, but by the end of the month had changed the name to Intel , which stood for Int egrated El ectronics. Since "Intel" was already trademarked by the hotel chain Intelco, they had to buy the rights for the name. At its founding, Intel was distinguished by its ability to make logic circuits using semiconductor devices . The founders' goal was

10625-425: The company's focus to microprocessors and to change fundamental aspects of that business model. Moore's decision to sole-source Intel's 386 chip played into the company's continuing success. By the end of the 1980s, buoyed by its fortuitous position as microprocessor supplier to IBM and IBM's competitors within the rapidly growing personal computer market , Intel embarked on a 10-year period of unprecedented growth as

10750-412: The device's BAR configuration registers. These addresses stay valid as long as the system remains turned on. Upon power-off, these settings are lost and the procedure is repeated next time the system is powered back on. The BIOS or operating system will also program some other registers of the PCI configuration space for each PCI device, e.g. interrupt request . Since this entire process is fully automated,

10875-459: The different layouts of remaining 48 bytes (64-16) of the header, depending on the function of the device. That is, Type 1 headers for Root Complex, switches, and bridges. Then Type 0 for endpoints. The Cache Line Size register must be programmed before the device is told it can use the memory-write-and-invalidate transaction. This should normally match the CPU's cache line size, but the correct setting

11000-459: The discovery continues recursively until all possible domain/bus/device combinations are scanned. Each non-bridge PCI device function can implement up to 6 BARs, each of which can respond to different addresses in I/O port and memory-mapped address space. Each BAR describes a region that is between 16 bytes and 2 gigabytes in size, located below the 4 gigabyte address space limit. If a platform supports

11125-501: The driver or diagnostic software has the burden to access the configuration space in a manner that is compatible with the operating system's underlying access rules. In all systems, device drivers are encouraged to use APIs provided by the operating system to access the configuration space of the device. One of the major improvements the PCI Local Bus had over other I/O architectures was its configuration mechanism. In addition to

11250-567: The early 1980s, and manufacturing and development centers in China, India, and Costa Rica in the 1990s. By the early 1980s, its business was dominated by DRAM chips. However, increased competition from Japanese semiconductor manufacturers had, by 1983, dramatically reduced the profitability of this market. The growing success of the IBM personal computer, based on an Intel microprocessor, was among factors that convinced Gordon Moore (CEO since 1975) to shift

11375-506: The early 1990s and had been the cause of one lawsuit against Intel in 1991. In 2004 and 2005, AMD brought further claims against Intel related to unfair competition . In 2005, CEO Paul Otellini reorganized the company to refocus its core processor and chipset business on platforms (enterprise, digital home, digital health, and mobility). On June 6, 2005, Steve Jobs , then CEO of Apple , announced that Apple would be using Intel's x86 processors for its Macintosh computers, switching from

11500-461: The extended configuration space (by using 12 bits instead of eight), have a four-bit version number and a 16-bit capability ID. Extended capability IDs overlap with normal capability IDs, but there is no chance of confusion as they are in separate lists. The Device ID (DID) and Vendor ID (VID) registers identify the device (such as an IC ), and are commonly called the PCI ID . The 16-bit vendor ID

11625-418: The fastest consumer CPUs, as well as its Intel Arc series of GPUs. The Open Source Technology Center at Intel hosts PowerTOP and LatencyTOP , and supports other open source projects such as Wayland , Mesa , Threading Building Blocks (TBB), and Xen . Intel was founded on July 18, 1968, by semiconductor pioneers Gordon Moore (of Moore's law ) and Robert Noyce , along with investor Arthur Rock , and

11750-653: The first commercial user of high-NA EUV lithography tool, as part of its plan to regain process leadership from TSMC . In August 2024, following a below-expectations Q2 earnings announcement, Intel announced "significant actions to reduce our costs. We plan to deliver $ 10 billion in cost savings in 2025, and this includes reducing our head count by roughly 15,000 roles, or 15% of our workforce." In December 2023, Intel unveiled Gaudi3, an artificial intelligence (AI) chip for generative AI software which will launch in 2024 and compete with rival chips from Nvidia and AMD. On 4 June 2024, Intel announced AI chips for data centers,

11875-445: The first commercially available dynamic random-access memory (DRAM), the 1103 released in 1970, solved these issues. The 1103 was the bestselling semiconductor memory chip in the world by 1972, as it replaced core memory in many applications. Intel's business grew during the 1970s as it expanded and improved its manufacturing processes and produced a wider range of products , still dominated by various memory devices. Intel created

12000-409: The first commercially available microprocessor, the Intel 4004 , in 1971. The microprocessor represented a notable advance in the technology of integrated circuitry, as it miniaturized the central processing unit of a computer, which then made it possible for small machines to perform calculations that in the past only very large machines could do. Considerable technological innovation was needed before

12125-420: The form of different libraries that share the same programming interface. The separation of the API from its implementation can allow programs written in one language to use a library written in another. For example, because Scala and Java compile to compatible bytecode , Scala developers can take advantage of any Java API. API use can vary depending on the type of programming language involved. An API for

12250-476: The growing trend of cybercriminals targeting public API platforms at financial services worldwide. From December 2017 through November 2019, Akamai witnessed 85.42 billion credential violation attacks. About 20%, or 16.55 billion, were against hostnames defined as API endpoints. Of these, 473.5 million have targeted financial services sector organizations. API documentation describes what services an API offers and how to use those services, aiming to cover everything

12375-490: The implementation details of the modules so that users of modules need not understand the complexities inside the modules. Thus, the design of an API attempts to provide only the tools a user would expect. The design of programming interfaces represents an important part of software architecture , the organization of a complex piece of software. APIs are one of the more common ways technology companies integrate. Those that provide and use APIs are considered as being members of

12500-536: The microprocessor could actually become the basis of what was first known as a "mini computer" and then known as a "personal computer". Intel also created one of the first microcomputers in 1973. Intel opened its first international manufacturing facility in 1972, in Malaysia , which would host multiple Intel operations, before opening assembly facilities and semiconductor plants in Singapore and Jerusalem in

12625-610: The node. The first microprocessor under that node, Cannon Lake (marketed as 8th-generation Core), was released in small quantities in 2018. The company first delayed the mass production of their 10 nm products to 2017. They later delayed mass production to 2018, and then to 2019. Despite rumors of the process being cancelled, Intel finally introduced mass-produced 10 nm 10th-generation Intel Core mobile processors (codenamed " Ice Lake ") in September 2019. Intel later acknowledged that their strategy to shrink to 10 nm

12750-514: The normal memory-mapped and I/O port spaces, each device function on the bus has a configuration space , which is 256 bytes long, addressable by knowing the eight-bit PCI bus , five-bit device, and three-bit function numbers for the device (commonly referred to as the BDF or B/D/F , as abbreviated from bus/device/function ). This allows up to 256 buses, each with up to 32 devices, each supporting eight functions. A single PCI expansion card can respond as

12875-491: The numbers decreased by 1.5% and 1.9% compared to the first quarter of 2011. Intel's market share decreased significantly in the enthusiast market as of 2019, and they have faced delays for their 10 nm products. According to former Intel CEO Bob Swan, the delay was caused by the company's overly aggressive strategy for moving to its next node. In the 1980s, Intel was among the world's top ten sellers of semiconductors (10th in 1987 ). Along with Microsoft Windows , it

13000-670: The primary and most profitable hardware supplier to the PC industry, part of the winning 'Wintel' combination. Moore handed over his position as CEO to Andy Grove in 1987. By launching its Intel Inside marketing campaign in 1991, Intel was able to associate brand loyalty with consumer selection, so that by the end of the 1990s, its line of Pentium processors had become a household name. After 2000, growth in demand for high-end microprocessors slowed. Competitors, most notably AMD (Intel's largest competitor in its primary x86 architecture market), garnered significant market share, initially in low-end and mid-range processors but ultimately across

13125-514: The product range, and Intel's dominant position in its core market was greatly reduced, mostly due to controversial NetBurst microarchitecture. In the early 2000s then-CEO, Craig Barrett attempted to diversify the company's business beyond semiconductors, but few of these activities were ultimately successful. Bob had also for a number of years been embroiled in litigation. U.S. law did not initially recognize intellectual property rights related to microprocessor topology (circuit layouts), until

13250-614: The programmer from dealing with idiosyncrasies of the graphics display device, and to provide hardware independence if the computer or the display were replaced. The term was introduced to the field of databases by C. J. Date in a 1974 paper called The Relational and Network Approaches: Comparison of the Application Programming Interface . An API became a part of the ANSI/SPARC framework for database management systems . This framework treated

13375-536: The release of the 7th-generation Core family (codenamed Kaby Lake ), ushering in the process–architecture–optimization model . As Intel struggled to shrink their process node from 14 nm to 10 nm , processor development slowed down and the company continued to use the Skylake microarchitecture until 2020, albeit with optimizations. While Intel originally planned to introduce 10 nm products in 2016, it later became apparent that there were manufacturing issues with

13500-442: The result to be used locally as a return value. A modification of the proxy object will also result in a corresponding modification of the remote object. Web APIs are the defined interfaces through which interactions happen between an enterprise and applications that use its assets, which also is a Service Level Agreement (SLA) to specify the functional provider and expose the service path or URL for its API users. An API approach

13625-405: The same year, Intel also produced the 3301 Schottky bipolar 1024-bit read-only memory (ROM) and the first commercial metal–oxide–semiconductor field-effect transistor (MOSFET) silicon gate SRAM chip, the 256-bit 1101. While the 1101 was a significant advance, its complex static cell structure made it too slow and costly for mainframe memories. The three- transistor cell implemented in

13750-452: The similar OpenJDK project. Judge William Alsup ruled in the Oracle v. Google case that APIs cannot be copyrighted in the U.S. and that a victory for Oracle would have widely expanded copyright protection to a "functional set of symbols" and allowed the copyrighting of simple software commands: To accept Oracle's claim would be to allow anyone to copyright one version of code to carry out

13875-514: The site for a major new manufacturing facility. The facility will cost at least $ 20 billion. The company expects the facility to begin producing chips by 2025. The same year Intel also choose Magdeburg , Germany , as a site for two new chip mega factories for €17 billion (topping Tesla 's investment in Brandenburg ). The start of the construction was initially planned for 2023, but this has been postponed to late 2024, while production start

14000-503: The smartphone market. Finding itself with excess fab capacity after the failure of the Ultrabook to gain market traction and with PC sales declining, in 2013 Intel reached a foundry agreement to produce chips for Altera using a 14 nm process. General Manager of Intel's custom foundry division Sunit Rikhi indicated that Intel would pursue further such deals in the future. This was after poor sales of Windows 8 hardware caused

14125-432: The specified combination bus/device_number/function (B/D/F) is not present. So, when a read to a function ID of zero for a given bus/device causes the master (initiator) to abort, it must then be presumed that no working device exists on that bus because devices are required to implement function number zero. In this case, reads to the remaining functions numbers (1–7) are not necessary as they also will not exist. When

14250-449: The success of the PC in the early 1990s that this became its primary business. During the 1990s, the partnership between Microsoft Windows and Intel, known as " Wintel ", became instrumental in shaping the PC landscape and solidified Intel's position on the market. As a result, Intel invested heavily in new microprocessor designs in the mid to late 1990s, fostering the rapid growth of the computer industry . During this period, it became

14375-508: The timing critical (and thus electrically loading sensitive) AD[] bus, the IDSEL signal on the PCI slot connector is usually connected to its assigned AD[ n +11] pin through a resistor. This causes the PCI's IDSEL signal to reach its active condition more slowly than other PCI bus signals (due to the RC time constant of both the resistor and the IDSEL pin's input capacitance). Thus Configuration Space accesses are performed more slowly to allow time for

14500-400: The twelve months ending December 31, 2020, at 2,882 Kt (+94/+3.4% y-o-y). Intel plans to reduce carbon emissions 10% by 2030 from a 2020 base year. Intel has self-reported that they have Wafer fabrication plants in the United States, Ireland , and Israel. They have also self-reported that they have assembly and testing sites mostly in China, Costa Rica, Malaysia, and Vietnam, and one site in

14625-441: The user is spared the task of configuring any newly added hardware manually by changing DIP switches on the cards themselves. This automatic device discovery and address space assignment is how plug and play is implemented. If a PCI-to-PCI bridge is found, the system must assign the secondary PCI bus beyond the bridge a bus number other than zero, and then enumerate the devices on that secondary bus. If more PCI bridges are found,

14750-460: The x86 I/O address space. For example, a software driver (firmware, OS kernel or kernel driver) can use these registers to configure a PCI device by writing the address of the device's register into CONFIG_ADDRESS, and by putting the data that is supposed to be written to the device into CONFIG_DATA. Since this process requires a write to a register in order to write the device's register, it is referred to as "indirection". The format of CONFIG_ADDRESS

14875-408: Was Andy Grove , a chemical engineer , who later ran the company through much of the 1980s and the high-growth 1990s. In deciding on a name, Moore and Noyce quickly rejected "Moore Noyce", near homophone for "more noise" – an ill-suited name for an electronics company, since noise in electronics is usually undesirable and typically associated with bad interference . Instead, they founded

15000-559: Was a thing of the past and that they would now support all "tier-one operating systems" such as Linux, Android, iOS, and Chrome. In 2014, Intel cut thousands of employees in response to "evolving market trends", and offered to subsidize manufacturers for the extra costs involved in using Intel chips in their tablets. In April 2016, Intel cancelled the SoFIA platform and the Broxton Atom SoC for smartphones, effectively leaving

15125-455: Was defined simply as "a set of services available to a programmer for performing certain tasks" by technologist Carl Malamud . The idea of the API was expanded again with the dawn of remote procedure calls and web APIs . As computer networks became common in the 1970s and 80s, programmers wanted to call libraries located not only on their local computers, but on computers located elsewhere. These remote procedure calls were well supported by

15250-514: Was launched in October 2013 and Intel is part of the coalition of public and private organizations that also includes Facebook , Google , and Microsoft . Led by Sir Tim Berners-Lee , the A4AI seeks to make Internet access more affordable so that access is broadened in the developing world, where only 31% of people are online. Google will help to decrease Internet access prices so that they fall below

15375-955: Was part of the " Wintel " personal computer domination in the 1990s and early 2000s. In 1992, Intel became the biggest semiconductor chip maker by revenue and held the position until 2018 when Samsung Electronics surpassed it, but Intel returned to its former position the year after. Other major semiconductor companies include TSMC , GlobalFoundries , Texas Instruments , ASML , STMicroelectronics , United Microelectronics Corporation (UMC), Micron , SK Hynix , Kioxia , and SMIC . Intel's competitors in PC chipsets included AMD , VIA Technologies , Silicon Integrated Systems , and Nvidia . Intel's competitors in networking include NXP Semiconductors , Infineon , Broadcom Limited , Marvell Technology Group and Applied Micro Circuits Corporation , and competitors in flash memory included Spansion , Samsung Electronics, Qimonda , Kioxia, STMicroelectronics, Micron , and SK Hynix . The only major competitor in

15500-401: Was reported that all Intel processors made since 1995 (besides Intel Itanium and pre-2013 Intel Atom ) had been subject to two security flaws dubbed Meltdown and Spectre. Due to Intel's issues with its 10 nm process node and the company's slow processor development, the company now found itself in a market with intense competition. The company's main competitor, AMD, introduced

15625-428: Was too aggressive. While other foundries used up to four steps in 10 nm or 7 nm processes, the company's 10 nm process required up to five or six multi-pattern steps. In addition, Intel's 10 nm process is denser than its counterpart processes from other foundries. Since Intel's microarchitecture and process node development were coupled, processor development stagnated. In early January 2018, it

#487512