USPatent applicationPatented

Closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC

Granted 3 Sep 2013 · 2 office actions

Current assignee: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED · originally Broadcom

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Srinivasa Rao Kothamasu · Examiner: Paul R Myers · AU 2111 · TC 2100

Life of the application

20 dated events
⤢ drag to zoom20102012201420162018202020222024202620282030ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC is disclosed. In one embodiment, a system on chip (SoC) includes multiple masters, multiple slaves, multiple buses, and an interconnect module coupled to multiple masters and multiple slaves via multiple buses. The interconnect module includes an arbiter. The SoC also includes an inner characteristic bus coupled to the plurality of masters, the plurality of slaves and the interconnect module. The interconnect module receives on-chip bus transactions substantially simultaneously from the multiple masters to be processed on one or more of the multiple slaves via the multiple buses. The interconnect module also receives inner characteristic information of the on-chip bus transactions via the inner characteristic bus. Further, the interconnect module allocates the received on-chip bus transactions from the multiple masters to associated one or more of multiple slaves based on the received inner characteristic information.

Description

7 parts
›FIELD OF TECHNOLOGY

Embodiments of the present subject matter relate to the field of system on chip (SoC). More particularly, embodiments of the present subject matter relate to a bus allocation method and architecture in a multilayer SoC.

›BACKGROUND

In a typical SoC, different interfaces, for example, master interfaces and slave interfaces are interacted through buses. The buses may be point-to-point buses or shared buses. The point-to-point bus is a direct connection between two interfaces and offers highest possible performance. However, it is always not viable to accommodate all the point-to-point buses with the given product requirements.

In shared buses, bus bandwidth is shared among multiple interfaces. These are more commonly used buses compared to point-to-point buses. Allocation of the bus bandwidth to the different interfaces varies based on application requirements. Often, this is done through priority based algorithms like fixed priority, round-robin, and the like. These algorithms do bandwidth allocation at a transaction level by considering outer characteristics of the interfaces like data width, transfer size, and the like. Since, for the interfaces, the outer characteristics are not completely linked to inner characteristics, bus bandwidth allocation through priority based algorithms may not be efficient and well-organized.

›SUMMARY

A closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC is disclosed. According to one aspect of the present subject matter, a method includes allocating on-chip bus transactions between multiple masters and one or more of multiple slaves in a system on chip (SoC) using inner characteristic information of the on-chip bus transactions based on the multiple masters and the multiple slaves. The method also includes sending a feedback associated with the allocation based on the inner characteristic information to the multiple masters in the SoC.

According to another aspect of the present subject matter, a non-transitory computer-readable storage medium for allocating on-chip bus transactions between multiple masters and multiple slaves in an SoC, has instructions that, when executed by a computing device causes the computing device to perform the method described above.

According to yet another aspect of the present subject matter, an SoC includes multiple masters, multiple slaves, multiple buses, an interconnect module coupled to the multiple masters and the multiple slaves via the multiple buses, and an inner characteristic bus coupled to the multiple masters, the multiple slaves and the interconnect module. The interconnect module receives on-chip bus transactions substantially simultaneously from the multiple masters to be processed on one or more of the multiple slaves via the multiple buses.

The interconnect module also receives inner characteristic information of the on-chip bus transactions based on the multiple masters and the one or more of the multiple slaves via the inner characteristic bus. Further, the interconnect module allocates the received on-chip bus transactions from the multiple masters to associated one or more of the multiple slaves based on the received inner characteristic information of the on-chip bus transactions.

The methods, and systems disclosed herein may be implemented in any means for achieving various aspects, and other features will be apparent from the accompanying drawings and from the detailed description that follow.

›BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments are described herein with reference to the drawings, wherein:

FIG. 1 illustrates a multi layer system on chip (SoC) interconnect, in the context of the invention;

FIG. 2 illustrates a bus allocation process through traditional round robin arbitration, in the context of the invention;

FIG. 3 illustrates a method for allocating on-chip bus transactions in an SoC, according to one embodiment;

FIG. 4 illustrates a closed loop dynamic interconnect architecture of the SoC, according to one embodiment;

FIG. 5 illustrates the on-chip bus transactions allocation using the closed loop dynamic interconnect architecture of the SoC shown in FIG. 4 , according to one embodiment; and

FIG. 6 illustrates an example of a suitable computing system environment for implementing embodiments of the present subject matter.

The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.

›DETAILED DESCRIPTION · 1 of 3

A closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC is disclosed. In the following detailed description of the embodiments of the present subject matter, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the present subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present subject matter, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present subject matter. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present subject matter is defined by the appended claims.

The terms ‘master’ and ‘master interface’ are used interchangeably throughout the document. Similarly, the terms ‘slave’ and ‘slave interface’ are used interchangeably throughout the document.

FIG. 1 illustrates a multi layer system on chip (SoC) interconnect module 102 , in the context of the invention. As shown, FIG. 1 includes the SoC interconnect module 102 with three master interfaces 104 A-C and two slave interfaces 106 A-B connected via multiple buses 108 A-E. Each of the master interfaces 104 A-C has a pipeline depth of two internally. Similarly, each of the slave interfaces 106 A-B support buffering of up to two pending transactions. The SoC interconnect module 102 operates on 64 bit data width and supports transaction flow to both the slave interfaces 106 A-B in parallel.

FIG. 2 illustrates a bus allocation process through traditional round robin arbitration, in the context of the invention. FIG. 2 shows four sections. Section 1 shows round robin arbitration where there is one granted master interface for each slave interface in a given cycle. The round robin arbitration supports accessing of two slave interfaces in parallel. In FIG. 2 , M xy represents a master interface M x (e.g., any one of the master interfaces 104 A-C) performing a transaction y, where y is 0, 1, 2 . . . n. Section 2 shows a preferred master where there is a default master interface to allocate a bus for each of the slave interfaces 106 A-B. Default master interface allocation changes to a next master interface (e.g., master interface 104 A—master interface 104 B—master interface 104 C—master interface 104 A) on each active arbitration cycle.

Section 3 shows inner characteristic information from the three master interfaces 104 A-C. In each of the master interfaces 104 A-C, stage 1 (STG 1 ) pipe interacts to outer part of the master interface and STG 0 pipe is closely attached to an inner logic. Transaction in STG 1 is used for requesting a bus. Here, transaction Sx_y_z represents transaction to a slave interface S x , with y data width and z burst size. Section 4 describes pending transaction status in each of the slave interfaces 106 A-B. Each of the slave interfaces 106 A-B accepts up to two pending transactions. This status may be incremented when a transaction issued in previous cycle is not absorbed immediately.

In cycle 0 (CY 0 ), the master interface 104 A and the master interface 104 B are competing for the slave interface 106 A. Since, the master interface 104 A is the preferred master, it is allocated the bus to access the slave interface 106 A. For the slave interface 106 B, though the preferred master is the master interface 104 A, since there is no request from the master interface 104 A, the master interface 104 C is allocated the bus as per round robin order. Both the slave interfaces 106 A-B absorbed transactions in CY 0 immediately, and hence, pending transaction status in CY 1 for both the slave interfaces 106 A-B stand at 0.

In CY 1 and CY 2 , the master interface 104 B and the master interface 104 C are allocated for accessing the slave interface 106 A as per round robin order. Similarly, the master interface 104 A is allocated for accessing the slave interface 106 A. The master interface 104 A uses 2 cycles (CY 1 and CY 2 ) to complete its two 32-bit word burst transfer.

In CY 3 , there are no transactions to the slave interface 106 A. For the slave interface 106 B, the master interface 104 B is granted since there is no request from a default master interface (e.g., the master interface 104 C). Pending transaction status against the slave interface 106 B is incremented as transactions issued in CY 2 are not absorbed immediately. Similarly, pending transaction status is incremented in CY 4 to 2, because transaction issued in CY 3 is also not absorbed immediately due to already pending transaction. Since there is no request from default master in CY 3 to CY 6 , preferred master logic for the slave interface 106 A increments the default master to next one in CY 4 to CY 7 .

In CY 4 , there are no requests from the master interfaces 104 A-C and the bus 108 is idle. However, there is a fresh transaction entered in the master interface 104 A pipe STG 0 for the slave interface 106 B. In CY 5 , the master interface 104 A is granted to access to the slave interface 106 B. Since the slave interface 106 B already has two pending transactions, bus is blocked for one cycle in CY 5 and transaction is completed in CY 6 as pending status is reduced to 1. In CY 7 , the master interface 104 A is allocated to access the slave interface 106 A as there is no request from the default master interface 104 B.

As described above, since inner characteristic information is not considered, there is no efficient bus allocation. Here in CY 0 , if arbitration process considers the master interface 104 C pipe STG 0 32 bit transaction, it would have interleaved the master interface 104 A and the master interface 104 C transactions data in CY 1 by allocating bus to the master interface 104 B in CY 0 . This saves bandwidth usage by one 64 bit word (two un-used 32 bit words in CY 0 and CY 2 ). Here if arbitration process does a feedback to the master interface 104 A in CY 0 , to combine two 32-bit word burst transfer to single 64 bit word transfer, one cycle (64 bit word) bus bandwidth would have been saved. In CY 4 , if arbitration process informs S 1 's zero transaction acceptability status to the master interface 104 A, the master interface 104 A could have reconsidered sending S 0 transaction prior to S 1 . This would save 1 cycle bandwidth (64-bit word) in CY 5 .

›DETAILED DESCRIPTION · 2 of 3

FIG. 3 illustrates a method 300 for allocating on-chip bus transactions in an SoC, according to one embodiment. The SoC includes multiple masters, multiple slaves and an interconnect module (e.g., the interconnect module 402 of FIG. 4 ). The multiple masters and the multiple slaves are connected to the interconnect module via multiple buses. Further, the multiple masters, the multiple slaves and the interconnect module are coupled via an inner characteristic bus (e.g., the inner characteristic bus 414 of FIG. 4 ).

At step 310 , on-chip bus transactions are received substantially simultaneously from the multiple masters to be processed on one or more of the multiple slaves by an interconnect module via the multiple buses. At step 320 , inner characteristic information of the on-chip bus transactions based on the multiple masters and the one or more of the multiple slaves is received via the inner characteristic bus by the interconnect module. For example, the inner characteristic information includes transaction information associated with a current clock, transaction information associated with one or more subsequent clocks based on the current clock, and transaction information such as transfer size, data width, protection information, first in first out (FIFO) fill or empty level.

At step 330 , the received on-chip bus transactions from the multiple masters are allocated to associated one or more of the multiple slaves based on the inner characteristic information of the on-chip bus transactions by the interconnect module. At step 340 , a feedback associated with the allocation based on the inner characteristic information is sent to the multiple masters in the SoC. The feedback includes but not limited to information such as transaction optimization associated with the multiple masters, slave transaction acceptance, and so on.

FIG. 4 illustrates a closed loop dynamic interconnect architecture 400 of an SoC, according to one embodiment. As shown, FIG. 4 includes an interconnect module 402 with three master interfaces 404 A-C and two slave interfaces 406 A-B. The master interfaces 404 A-C and the slave interfaces 406 A-B interact with each other using multiple buses 412 A-E, as shown in the figure. Each of the master interfaces 404 A-C has a pipeline depth of two internally. Similarly, each of the slave interfaces 406 A-B support buffering of up to two pending transactions. The interconnect module 402 operates on 64 bit data width and supports transaction flow to both the slave interfaces 406 A-B in parallel.

As illustrated, the master interfaces 404 A-C, the slave interfaces 406 A-B and the interconnect module 402 are connected to an inner characteristic bus 414 for obtaining the inner characteristic information of the master interfaces 404 A-C and the slave interfaces 406 A-B. The inner characteristic information is used for allocating bus bandwidth between the master interfaces 404 A-C and the slave interfaces 406 A-B. For example, an inner characteristic module 410 in an arbiter 408 of the interconnect module 402 receives the inner characteristic information from the inner characteristic bus 414 . Based on the received inner characteristic information, the multiple masters 404 A-C are allocated to one or more of the multiple slaves 406 A-B in the SoC.

FIG. 5 illustrates the on-chip bus transactions allocation 500 using the closed loop dynamic interconnect architecture 400 of the SoC shown in FIG. 4 , according to one embodiment. In particular, FIG. 5 shows bus allocation with feedback control to master and slave interfaces by considering their inner characteristic information. For example, arbitration performs bus allocation by considering interface inner characteristic information along with transaction requests. According to an embodiment of the present subject matter, the inner characteristic information module 410 receives the inner characteristic information of the on-chip bus transactions based on the multiple masters 404 A-C and the multiple slaves 406 A-B via the inner characteristic bus 414 .

In CY 0 , a master interface 404 A and a master interface 404 B are competing for access to a slave interface 406 A. The master interface 404 A is requesting for a 32 bit transaction and the master interface 404 B is requesting for a 64 bit transaction. Since master interface 404 C pipe STG 0 has ‘32 bit transaction to slave interface 406 A’, and this may be interleaved with transaction of the master interface 404 A, the master interface 404 B is allocated to access the slave interface 406 A. The master interface 404 C is the only master requesting for the slave interface 406 B and it is allocated.

In CY 1 , the master interface 404 A and the master interface 404 C are both requesting for 32 bit access. Both transactions data are interleaved and passed on to the slave interface 406 A for 64 bit access. The master interface 404 B is allocated to perform 64 bit access to the slave interface 406 B. In CY 1 , the master interface 404 A pipe STG 0 includes a two 32 bit word burst transaction to the slave interface 406 B. Since, the slave interface 406 B supports 64 word data, the master interface 404 A is informed to combine two 32 bit word burst transaction to one 64 word single transaction. The transaction is converted from 32 bit burst transaction to 64 bit single transaction when the master interface 404 A STG 0 transaction in CY 1 is moved in pipeline to STG 1 in CY 2 . In CY 2 , a 64 bit transaction is transferred from the master interface 404 A to the slave interface 406 B. Transactions issued in CY 1 and CY 2 to S 1 are not absorbed immediately, hence, pending transaction status is incremented to 1 and 2 in CY 2 and CY 3 .

In CY 3 and CY 4 , bus is idle because of no requests from the master interfaces 404 A-C. In CY 4 , a fresh transaction to the slave interface 406 B is entered in the master interface 404 A pipe STG 0 . In the same cycle, arbitration process informs the master interface 404 A about zero transaction acceptability status of the slave interface 406 B. Because of this, in CY 5 , the master interface 404 A continues to keep transaction of the slave interface 406 B at pipe STG 0 , and bypasses subsequent transaction of the slave interface 406 A to pipe STG 1 .

›DETAILED DESCRIPTION · 3 of 3

In CY 5 , the master interface 404 A is allocated to access the slave interface 406 A. Since no more transactions are pending on the master interface 404 A apart from transaction of the slave interface 406 B, it is pushed to pipe STG 1 in CY 6 . In the same cycle CY 6 , transaction pending status in the slave interface 406 B is reduced from 2 to 1 and is ready to accept new transactions. Hence, transaction of the master interface 404 A is successfully serviced in CY 6 . The bus bandwidth is allocated by reducing redundancy (e.g., 3×64 words) compared to traditional one.

FIG. 6 shows an example of a suitable computing system environment 600 for implementing embodiments of the present subject matter. FIG. 6 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which certain embodiments of the inventive concepts contained herein may be implemented.

A general computing system 602 , in the form of a personal computer or a mobile device may include a processor 604 , memory 606 , a removable storage 618 , and a non-removable storage 620 . The computing system 602 additionally includes a bus 614 and a network interface 616 . The computing system 602 may include or have access to the computing system environment 600 that includes one or more user input devices 622 , one or more output devices 624 , and one or more communication connections 626 such as a network interface card or a universal serial bus connection.

The one or more user input devices 622 may be a digitizer screen and a stylus, trackball, keyboard, keypad, mouse, and the like. The one or more output devices 624 may be a display device of the personal computer or the mobile device. The communication connections 626 may include a local area network, a wide area network, and/or other networks.

The memory 606 may include volatile memory 608 and non-volatile memory 610 . A variety of computer-readable storage media may be stored in and accessed from the memory elements of the computing device 602 , such as the volatile memory 608 and the non-volatile memory 610 , the removable storage 618 and the non-removable storage 620 . Computer memory elements may include any suitable memory device(s) for storing data and machine-readable instructions, such as read only memory, random access memory, erasable programmable read only memory, electrically erasable programmable read only memory, hard drive, removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, Memory Sticks™, and the like.

The processor 604 , as used herein, means any type of computational circuit, such as, but not limited to, a microprocessor, a microcontroller, a complex instruction set computing microprocessor, a reduced instruction set computing microprocessor, a very long instruction word microprocessor, an explicitly parallel instruction computing microprocessor, a graphics processor, a digital signal processor, or any other type of processing circuit. The processor 604 may also include embedded controllers, such as generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, smart cards, and the like.

Embodiments of the present subject matter may be implemented in conjunction with program modules, including functions, procedures, data structures, and application programs, for performing tasks, or defining abstract data types or low-level hardware contexts. Machine-readable instructions stored on any of the above-mentioned storage media may be executable by the processor 604 of the computing system 602 . For example, a computer program 612 may include machine-readable instructions capable of allocating on-chip bus transactions between multiple masters and multiple slaves in an SoC using inner characteristic information, according to the teachings and herein described embodiments of the present subject matter. In one embodiment, the computer program 612 may be included on a compact disk-read only memory (CD-ROM) and loaded from the CD-ROM to a hard drive in the non-volatile memory 610 . The machine-readable instructions may cause the computing system 602 to encode according to the various embodiments of the present subject matter.

As shown, the computer program 612 includes the inner characteristic information module 410 . For example, the inner characteristic information module 410 may be in the form of instructions stored on a non-transitory computer-readable storage medium. The non-transitory computer-readable storage medium having the instructions that, when executed by the computing system 602 , may cause the computing system 602 to perform the one or more methods described in FIGS. 1 through 6 .

In various embodiments, the systems and methods described in FIGS. 1 through 6 improves utilization of interconnect bandwidth, reduces system frequency for given bandwidth requirements, and reduces dynamic power consumption due to reduced frequency.

Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. Furthermore, the various devices, modules, and the like described herein may be enabled and operated using hardware circuitry, for example, complementary metal oxide semiconductor based logic circuitry, firmware, software and/or any combination of hardware, firmware, and/or software embodied in a machine readable medium. For example, the various electrical structure and methods may be embodied using transistors, logic gates, and electrical circuits, such as application specific integrated circuit.

Claims as granted

16 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

5 codes
IPC · International Patent Classification
Section G — Physics
  • G06F12/00
  • G06F13/00
USPC · US Patent Classification
710/110710/244710/107

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJan 2011Jul 2011Jan 2012Jul 2012Jan 2013Jul 2013USPTOApplicantNon-final rejectionResponse after non-finalFinal rejectionNotice of allowance
USPTOApplicanthover for detail · click to open
Pendency
2.8 y
1,026 days filing → grant
Office actions
2
non-final + final
Responses
2
no RCE
Interviews
1
examiner interview summaries
Examiner
Paul R Myers
art unit 2111 · TC 2100
Citations: 15 back · 0 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20102012201420162018202020222024202620282030Owner 1Owner 2Owner 4liens, releases & corrections
TitleLienReleasehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock