Locked read/write on separate address/data bus using write...

Electrical computers and digital data processing systems: input/ – Intrasystem connection – Bus access regulation

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S108000, C711S151000

Reexamination Certificate

active

06490642

ABSTRACT:

FIELD OF THE INVENTION
This invention relates in general to the field of computer system bus architecture, and more particularly to is an apparatus that allows atomic read-modify-write operations to be executed over a pipelined, split-transaction on-chip data bus.
DESCRIPTION OF THE RELATED ART
Computer systems have historically consisted of a number of distinct components such as a central processing unit (CPU), a memory, and input/output (I/O) logic. The CPU performs all of the computational functions, the memory stores program instructions and data that direct the CPU to perform specific functions, and the I/O logic provides an interface to devices such as video monitors, keyboards, and storage devices. The CPU must constantly transfer data to/from the memory to retrieve program instructions and to store results of computations. The CPU must also communicate with the I/O logic to retrieve commands and to display results. In many systems today, the I/O logic directly retrieves large blocks of data from the memory to allow video monitors to be refreshed without burdening the CPU.
To standardize interface signals, interface logic, and the communication protocol between devices in a computer system, it is standard practice to interconnect all devices via a bused architecture rather than providing point-to-point connections between devices. In a bused architecture, a common set of communication signals-a system bus consisting of address signals and data signals are connected in parallel to all devices. The address signals on the system bus identify a device that is the target of a data transfer. The data signals on the system bus are used to transfer the data itself to the target device.
And because devices in the system configuration are connected in parallel to the system bus, it follows that only one instance of a data transfer can occur at any given point in time. If two devices execute a data transfer at the same time, then signals on the bus are corrupted, thus precluding any transfer of data at all. As a result, system designers provide logic elements in a system configuration whose purpose is to arbitrate access to the bus so that contention is avoided and devices are provided fair and timely access to the bus.
In early years, computer system buses were simple: eight bits in width, the CPU was the only device that was capable of initiating a data transfer, and the number of other devices connected to the bus consisted primarily of memory and I/O logic. Accordingly, access to the bus was easily managed. If the CPU required a byte of data from the memory, it grabbed the bus, issued the address of the data byte to the memory, and the memory supplied the byte of data to the CPU. Operation of the bus was efficient because the bus was always available for use by the CPU.
But in more recent years, a host of associated technological advances have completely changed the bus architecture. Because a digital computer can be used to control a wide range of automated processes, whole industries have migrated toward the incorporation of computers into their products. Today we see computer systems in telecommunication devices, televisions, home appliances, automobiles, industrial process controllers, musical instruments, games, and vending machines, not to mention aircraft, spacecraft, weapons systems, and data network servers. It could be said that it is the demand for faster, more precise, more application-specific, more robust computer systems that is driving the computer industry toward further advances instead of advances in the industry identifying opportunities for application of computer devices. We are experiencing an era where demands are pulling enabling technologies along.
Today, there are literally thousands of different devices that can be connected to a computer bus. Today's data buses are no longer 8 bits wide; 64-bit buses are more commonly found with new devices coming to the field having 128-bit buses, or wider. And today's systems no longer have only one device that is capable of initiating a transaction over the data bus. A high-end performance computer may have a CPU that is dedicated to performing general purpose computations, a graphics processor that performs video-intensive computations, and a digital signal processor (DSP) that performs intensive audio signal manipulations. The high-end system may also have a communications processor that is dedicated to interacting with other computers over a network. All of these processors must communicate over a system bus to memory, to I/O logic, to each other, and to innumerable other kinds of special-purpose devices. In fact, it is not uncommon today to find four or more CPUs in a system configuration, each of which is capable of initiating data transfer operations over the system bus. Because of these advances in the art, system designers have been forced to provide more sophisticated techniques and algorithms that enable a system bus to be used more efficiently.
One such technique is known as transaction pipelining. Simply put, rather than executing a first address transaction over the address signals and a first data transaction over the data signals to accomplish a first data transfer operation, then following this with a second address transaction over the address signals and a second data transaction over the data signals to accomplish a second data transfer operation, pipelining allows transactions over both sets of signals to occur simultaneously, very much like an assembly line process. In the case stated above, pipelining allows the second address transaction to occur over the address signals concurrent with execution of the first data transaction. Obviously, rather than arbitrating access to the bus at a system level, devices that support pipelined bus arbitrate access at the address and data signal level distinctly. A device can be granted access to the address signals while a different device is granted access to the data signals.
A second technique that has been developed to improve the efficiency of data transfers over a system bus is transaction splitting. A transaction is typically defined as a read or a write, to or from, memory or I/O. The transaction begins with an address phase that defines the type of transaction, and the address of the data, and concludes with a data phase where the data associated with the address is presented to/from the requester. In a split transaction system, the address and data phases of a transaction are split. That is, the address phase of a transaction is decoupled from the data phase of a transaction. This allows the address bus to be utilized for subsequent transactions, even though the data bus is still completing an initial transaction.
Furthermore, a split-transaction bus allows data transactions to occur out-of-order. What this means is that devices that are capable of providing data more rapidly can access the data bus-which would otherwise be idle-ahead of slower devices, even though address transactions to the slower devices preceded address transactions to the faster devices (presuming some form of transaction tracking is provided). The addition of transaction splitting to a pipelined architecture significantly improves the usage efficiency of a system bus.
Both pipelining and transaction splitting are essential features of a present day system bus where the demand for access is heavy and the amount of data transferred is large. Yet in spite of the necessity of these features, there is one class of data transfer operations that cannot be efficiently executed in a pipelined, split-transaction environment: read-modify-write operations.
A read-modify-write operation, generally speaking, is a series of two dependent data transfers to the same location: a first data transfer wherein the contents of the location are read by a requesting device and a second data transfer wherein the requesting device writes new data to the location. Read-modify-writes are commonly employed in a system configuration that provides shared resources to multiple CPUs. Most often

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Locked read/write on separate address/data bus using write... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Locked read/write on separate address/data bus using write..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Locked read/write on separate address/data bus using write... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2986957

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.