An integrated circuit that includes an improved architecture that reduces the interface between different blocks by minimizing the wire connections between the two blocks. Specifically, the two blocks are structured to transfer data between the two blocks using only the data bus and a common clock, thus eliminating the need for an address bus. Each block contains data registers used for storing data. The data registers in one block correspond to the registers in the second block, with each block being aware of the memory structure of the other block. When one block needs data from the data registers of the other block, it requests the data and the sending block places the contents of its data registers on the bus sequentially. The requesting block reads the data from the data bus at the appropriate time by counting the number of clock cycles from the time that the data was requested.
|
1. An integrated circuit comprising:
a plurality of blocks for transferring one or more data packets between the plurality of blocks; a bus connecting the plurality of blocks in parallel; and a carousel register within at least one of the plurality of blocks for sequentially placing on the bus the one or more data packets in response to a request from another at least one of the plurality of blocks.
13. A method of transferring information between a plurality of blocks comprising the steps of:
sending a request from a second block of the plurality of blocks to a first block of the plurality of blocks; in response to the request, placing on a bus that connects the plurality of blocks in parallel individual data contained in at lest a portion of a plurality of registers stored in the first block of the plurality of blocks; retrieving the data from the bus; and storing the data in the second block of the plurality of blocks.
7. An apparatus comprising a first circuit system adapted for connecting to a bus, the first circuit system including:
(a) a plurality of data registers, wherein the plurality of data registers hold data; (b) a multiplexor, wherein the Multiplexor has a plurality of inputs connected to the plurality of data registers and an output connected to the bus (c) an input line adapted to receive requests from a second circuit system; (d) a selection unit connected to the multiplexor and input line, wherein the selection unit controls the multiplexor and wherein in response to the input line receiving a request, the selection unit selects each of the plurality of data registers for output onto the bus.
18. An apparatus comprising:
a first circuit system and a second circuit system wherein both the first circuit system and the second circuit system are connected to a bus; a first plurality of data registers within the first circuit system, wherein each of the first plurality of data registers hold data; a second plurality of data registers within the second circuit system, wherein each of the second plurality of data registers hold data; a multiplexor, wherein the multiplexor has a plurality of inputs connected to the first plurality of data registers and an output connected to the bus; a first selection unit connected to the multiplexor, wherein the first selection unit controls the multiplexor and selects each of the first plurality of data registers for output onto the bus; a demultiplexor, wherein the demultiplexor has an input connected to the bus and a plurality of outputs connected to the second plurality of data registers; and a second selection unit connected to the demultiplexor, wherein the second selection unit controls the demultiplexor and selects each of the plurality of data registers to store data received from the bus.
2. The integrated circuit of
3. The integrated circuit of
4. The integrated circuit of
5. The integrated circuit of
a multiplexor for sequentially placing on the bus the one or more data packets contained within each of a plurality of registers wherein a plurality of input lines, each of the plurality of input lines corresponding to one of the plurality of registers, are connected to a plurality of input terminals on the multiplexor; a counter connected to a select input of the multiplexor for sequentially selecting one of the plurality of registers; and an output from the multiplexor connected to the bus.
6. The integrated circuit of
(a) a demultiplexor for reading the one or more data packets from the bus and placing the one or more data packets into one of a second plurality of registers wherein a plurality of output lines from the demultiplexor are each connected to one of the second plurality of registers; (b) a second counter connected to the select input of the demultiplexor for sequentially selecting one of the second plurality of registers wherein a clock input of the second counter is connected to a common clock that is connected to a clock input of the first counter; and (c) an input to the demultiplexor connected to the bus.
8. The apparatus of
(a) a demultiplexor; (b) a plurality of data registers connected to the demultiplexor; and (c) a selection unit, wherein the selection unit selects each of the plurality of data registers to store data received from the bus.
9. The apparatus of
10. The apparatus of
11. The apparatus of
12. The apparatus of
14. The method of
selecting the data contained in at least a portion of a plurality of registers located in a first block of the plurality of blocks using a selector contained within the first block of the plurality of blocks; placing the selected data on the bus for the duration of a clock cycle; and repeating the steps of selecting the data contained in at least a portion of a plurality of registers stored in a first block of the plurality of blocks and placing the selected data on the bus for the duration of a clock cycle until the data to be retrieved from the bus has been placed on the bus.
15. The method of
16. The method of
17. The method of
determining one of the plurality of registers in the first block of the plurality of blocks from which data is desired; counting clock cycles starting with a cycle in which data from a first register of the plurality of registers is placed on the bus; and placing the data from the bus into one of a second plurality of registers corresponding to the one of the plurality of registers from which the data was placed on the bus as determined by the number of clock cycles counted.
19. The apparatus of
20. The apparatus of
21. The apparatus of
|
1. Technical Field
The present invention relates generally to digital integrated circuits. More particularly, the present invention relates to a method and apparatus for data transfer within an integrated circuit. Even more particularly the present invention relates to a method an apparatus for transferring data between two blocks within an integrated circuit using only a data bus and a common clock signal.
2. Description of the Related Art
Rapid advances in silicon chip technology have resulted from progress made in both the "front end" of the chip manufacturing line, where circuit elements are fabricated, and the "back-end-of-line", where the elements are wired into integrated circuits. The relentless drive toward increased circuit count and device speed has necessitated changes in back-end-of-line manufacturing technology. To accommodate decreasing transistor size, wiring pitch must be reduced, and to reap the benefit of increasing transistor speed, RC wiring delays must be contained. As a result, the fabrication of on-chip interconnections or "interconnects" has become difficult and costly with designers constantly striving to improve the performance of on-chip interconnections.
The speed of integrated circuits has increased so much that the propagation delay in the wires or interconnects is larger than the delay caused by a single gate. Consequently, there is a need for implementations that improve or minimize the interface between the various blocks of the integrated circuit in order to take advantage of the faster designs.
Data transfer between two blocks in an integrated circuit has typically been accomplished by sending an address from the block that needs the data to the block that contains the data. This address specifies the location of the data and is sent over an address bus that is separate from the data bus. The data is then sent by the block containing the data to the requesting block over the data bus. To indicate that the data has been sent, either a handshake signal is sent or the data is kept on the bus for a specified length of time. Obviously the address line introduces a considerable amount of wire delay into the integrated circuit. A delay is also caused by the validation of the data either through the sending of a handshake signal or holding the data on the bus for a specified length of time.
A need exists for a faster method of transferring data between two blocks in an integrated circuit. The improved method should minimize the number of interconnects or improve the performance of the interconnections in the integrated circuit so that the advantage of faster circuit elements may be realized. In addition, the improved method should minimize or eliminate the data validation that takes place using the current methods.
The present invention fulfills the need for faster data transfers by allowing for the transfer of data in an integrated circuit without the use of an address bus or the requirement of validating the data transfer using a handshake signal. A carousel register saves interface connections between blocks without impacting the number of gates and power consumption significantly. The carousel register allows two synchronous blocks using the same clock to share information without using an address bus. The block requesting data sends an enable signal to the carousel register in the block where the data is located. The enable signal serves the purposes of synchronizing the two blocks and activating the carousel register in the block where the data is contained. Data is rolled onto the bus through the use of a selector that is controlled by a counter connected to the enable signal. The requesting block then reads the appropriate data by using a counter to count the number of clocks from the time the carousel register is enabled. Upon reaching the appropriate clock cycle, the requesting block reads the data contained on the bus.
This method is obviously most useful when both of the blocks are aware of the stored order of the data and the data is not in a critical path. As an example, chips using the Open Host Controller Interface (OHCI) standard would benefit from the present invention. The OHCI specification is an industry standard whereby the operating system environment can communicate through a universal software driver instead of implementing an individualized driver for each particular piece of 1394 host silicon. Several descriptors are saved on the chip and the order is defined by the OHCI specification. Because these descriptors may be used by most blocks at any time, the descriptors are not timing critical and thus the chips are good prospects for the method of the present invention.
In an alternate embodiment, the carousel register may be implemented without the use of an enable signal by allowing the carousel register and the counter to operate at all times. Rather than use the enable signal to synchronize the two blocks, the counters in the two blocks can be synchronized with the carousel register by performing a reset in both blocks.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
It is important to note that while the present invention is described in the context of an 8×1 Multiplexor and Demultiplexor, those of ordinary skill in the art will appreciate that the methods and systems of the present invention are capable of being implemented in various contexts other than a Multiplexor and Demultiplexor and that the present invention applies equally regardless of the particular device actually used to implement the invention.
Referring now to
Referring now to
Referring now to
Referring now to
TABLE 1 | ||||
Add0 | Add1 | Add2 | Active Data Line | |
S0 | 0 | 0 | 0 | Dt0 |
S1 | 0 | 0 | 1 | Dt1 |
S2 | 0 | 1 | 0 | Dt2 |
S3 | 0 | 1 | 1 | Dt3 |
S4 | 1 | 0 | 0 | Dt4 |
S5 | 1 | 0 | 1 | Dt5 |
S6 | 1 | 1 | 0 | Dt6 |
S7 | 1 | 1 | 1 | Dt7 |
A timing diagram for an embodiment of the claimed circuit is shown in FIG. 5. The first line represents common clock signal 106. The second line represents enable line 112. The third line represents the data placed on data bus 104. The fourth line represents the value of either Counter 202 or Counter 310 and the fifth line represents the value of the control lines 204a-204c, 304a-304c, which corresponds to an address for the respective data registers 206a-h, 306a-h. Note that that all of the lines except common clock signal 106 remain at the same value (S0) until enable line 112 goes active high. For purposes of this example, the data placed on the data lines 208a-208h, 308a-308h is defined for each data line and is shown in FIG. 5. Once enable line 112 is activated, the lines change at the leading edge of the next clock cycle to the values corresponding to the S1 state. Because the value on the Dt1 line is "11111111" this is the data that is placed on data bus 104 for the rest of the clock cycle. The value placed on data bus 104 for each state is shown on the data line of the timing diagram. Whenever enable line 112 goes low, the lines revert back to the S0 state. Note that Counters 202 and 320 are not required to count up to "111" but if "111" is reached and enable line 112 is still active, then the process is repeated starting with the S0 state. Sometimes it may not be necessary to count to "111." For example, if Block2102 only needs the data from Dt3 in Block1100, then after Counters 202 and 310 reach 011, enable line 112 is goes low and the lines revert to the S0 state as shown in FIG. 5.
The description of the present invention has been presented for purposes of illustration and description, but is not limited to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention in a practical application to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.
Patent | Priority | Assignee | Title |
7106103, | Dec 10 2003 | Hewlett-Packard Development Company, L.P. | Selectable integrated circuit interface |
7500034, | Dec 10 2003 | Hewlett-Packard Development Company, L.P.; Hewlett-Packard Development Company, LP | Multiple integrated circuit control |
7779289, | Dec 15 2006 | STMICROELECTRONICS FRANCE | Methods and data processing systems for sharing a clock between non-secured and secured tasks |
Patent | Priority | Assignee | Title |
3713096, | |||
4193121, | Jul 16 1976 | Post Office | Information handling apparatus having multiple ports distributed around shifting register rings |
4334305, | Feb 15 1979 | CSELT - Centro Studi e Laboratori Telecomunicazioni S.p.A. | Data-handling system with operatively interconnected processors |
4641276, | Oct 22 1984 | RCA LICENSING CORPORATION, A DE CORP | Serial-parallel data transfer system for VLSI data paths |
4644535, | Apr 26 1984 | SHARED TECHNOLOGIES FAIRCHILD TELECOM, INC | PCM channel multiplexer/demultiplexer |
4926416, | Dec 18 1987 | Alcatel N.V. | Method and facilities for hybrid packet switching |
5261056, | Jun 01 1992 | The United States of America as represented by the Secretary of the Air; United States Air Force | N-port wide bandwidth cross-link register |
5398209, | Jun 18 1993 | Oki Electric Industry Co., Ltd. | Serial access memory with column address counter and pointers |
5440754, | Aug 31 1990 | TRANSPACIFIC DIGITAL SYSTEMS, LLC | Work station and method for transferring data between an external bus and a memory unit |
5524107, | Aug 21 1992 | GENERAL DATACOMM, INC | Multiport multidrop digital system |
5535366, | Mar 12 1990 | Alcatel N. V. | Method of and circuit arrangement for freeing communications resources, particularly for use by a switching element |
5644609, | Jul 31 1996 | Hewlett Packard Enterprise Development LP | Apparatus and method for reading and writing remote registers on an integrated circuit chip using a minimum of interconnects |
5680600, | Oct 13 1989 | Texas Instruments Incorporated | Electronic circuit for reducing controller memory requirements |
5781918, | Aug 16 1991 | DOT ASSETS NO 8 LLC | Memory system and method for selecting a different number of data channels depending on bus size |
6223277, | Nov 21 1997 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 27 1998 | GHODRAT, FATANEH F | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009429 | /0781 | |
Aug 28 1998 | LSI Logic Corporation | (assignment on the face of the patent) | / | |||
Apr 06 2007 | LSI Logic Corporation | LSI Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033102 | /0270 | |
May 06 2014 | LSI Corporation | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
May 06 2014 | Agere Systems LLC | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
Aug 14 2014 | LSI Corporation | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035390 | /0388 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | LSI Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | Agere Systems LLC | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 |
Date | Maintenance Fee Events |
Sep 11 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 21 2008 | ASPN: Payor Number Assigned. |
Sep 10 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Oct 24 2014 | REM: Maintenance Fee Reminder Mailed. |
Mar 18 2015 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 18 2006 | 4 years fee payment window open |
Sep 18 2006 | 6 months grace period start (w surcharge) |
Mar 18 2007 | patent expiry (for year 4) |
Mar 18 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 18 2010 | 8 years fee payment window open |
Sep 18 2010 | 6 months grace period start (w surcharge) |
Mar 18 2011 | patent expiry (for year 8) |
Mar 18 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 18 2014 | 12 years fee payment window open |
Sep 18 2014 | 6 months grace period start (w surcharge) |
Mar 18 2015 | patent expiry (for year 12) |
Mar 18 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |