Allocation of a segmented interconnect to support the execution of instruction sequences by a plurality of engines

Information

  • Patent Grant
  • 10372454
  • Patent Number
    10,372,454
  • Date Filed
    Thursday, November 17, 2016
    7 years ago
  • Date Issued
    Tuesday, August 6, 2019
    4 years ago
Abstract
A method for allocation of a segmented interconnect in an integrate circuit is disclosed. The method comprises receiving a plurality of requests from a plurality of resource consumers of a plurality of engines to access a plurality of resources, wherein the resources are spread across the plurality of engines and contain data for supporting execution of multiple code sequences. The method also comprises contending for the plurality of resources in accordance with requests from the plurality of resource consumers. Finally, the method comprises accessing the plurality of resources via a global interconnect structure, wherein the global interconnect structure has a finite number of buses accessible each clock cycle, and wherein the global interconnect structure comprises a plurality of global segment buses.
Description
FIELD OF THE INVENTION

The present invention is generally related to digital computer systems, more particularly, to a system and method for selecting instructions comprising an instruction sequence.


BACKGROUND OF THE INVENTION

Processors are required to handle multiple tasks that are either dependent or totally independent. The internal state of such processors usually consists of registers that might hold different values at each particular instant of program execution. At each instant of program execution, the internal state image is called the architecture state of the processor.


When code execution is switched to run another function (e.g., another thread, process or program), then the state of the machine/processor has to be saved so that the new function can utilize the internal registers to build its new state. Once the new function is terminated then its state can be discarded and the state of the previous context will be restored and execution resumes. Such a switch process is called a context switch and usually includes 10's or hundreds of cycles especially with modern architectures that employ large number of registers (e.g., 64, 128, 256) and/or out of order execution.


In thread-aware hardware architectures, it is normal for the hardware to support multiple context states for a limited number of hardware-supported threads. In this case, the hardware duplicates all architecture state elements for each supported thread. This eliminates the need for context switch when executing a new thread. However, this still has multiple draw backs, namely the area, power and complexity of duplicating all architecture state elements (i.e., registers) for each additional thread supported in hardware. In addition, if the number of software threads exceeds the number of explicitly supported hardware threads, then the context switch must still be performed.


This becomes common as parallelism is needed on a fine granularity basis requiring a large number of threads. The hardware thread-aware architectures with duplicate context-state hardware storage do not help non-threaded software code and only reduces the number of context switches for software that is threaded. However, those threads are usually constructed for coarse grain parallelism, and result in heavy software overhead for initiating and synchronizing, leaving fine grain parallelism, such as function calls and loops parallel execution, without efficient threading initiations/auto generation. Such described overheads are accompanied with the difficulty of auto parallelization of such codes using sate of the art compiler or user parallelization techniques for non-explicitly/easily parallelized/threaded software codes.


SUMMARY OF THE INVENTION

In one embodiment the present invention is implemented as a global interconnect system. The global interconnect system includes a plurality of resources having data for supporting the execution of multiple code sequences and a plurality of engines for implementing the execution of the multiple code sequences. A plurality of resource consumers are within each of the plurality of engines. A global interconnect structure is coupled to the plurality of resource consumers and coupled to the plurality of resources to enable data access and execution of the multiple code sequences, wherein the resource consumers access the resources through a per cycle utilization of the global interconnect structure.


The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements.



FIG. 1A shows an overview of the manner in which the global front end generates code blocks and inheritance vectors to support the execution of code sequences on their respective engines.



FIG. 1B shows an overview diagram of engines and their components, including segmented scheduler and register files, interconnects and a fragmented memory subsystem for a multicore processor in accordance with one embodiment of the present invention.



FIG. 2 shows an overview diagram depicting additional features of the interconnect described in the discussion of FIGS. 1A and 1B, and a plurality of local interconnects in accordance with one embodiment of the present invention.



FIG. 3 shows components comprising a resource reservation mechanism that implements efficient access to a contested resource in accordance with one embodiment of the present invention.



FIG. 4 shows the interconnect and the ports into the memory fragments in accordance with one embodiment of the present invention.



FIG. 5 shows the interconnect and the ports into the segments in accordance with one embodiment of the present invention.



FIG. 6 shows a diagram depicting a segmented interconnect in accordance with one embodiment of the present invention.



FIG. 7 shows a table that illustrates the manner which requests for segments of the interconnect are contested for and allocated in accordance with one embodiment of the present invention.



FIG. 8 shows a table that illustrates the manner in which requests for a point-to-point bus are handled in accordance with one embodiment of the present invention.



FIG. 9 shows a diagram of an exemplary logic implementation that implements the functionality of the table of FIG. 7 in accordance with one embodiment of the present invention.



FIG. 10 shows a diagram of an exemplary logic implementation that implements the functionality of the manner in which requests for a point-to-point bus are handled in accordance with one embodiment of the present invention.



FIG. 11 shows a diagram of an interconnect in accordance with one embodiment of the present invention.



FIG. 12 shows a table illustrating the manner in which the sender model interconnect structure of FIG. 11 functions in accordance with one embodiment of the present invention.



FIG. 13 shows a diagram of an exemplary logic implementation that implements the functionality of the manner in which requests for shared bus interconnect structure are handled in accordance with one embodiment of the present invention.



FIG. 14 shows a diagram of an exemplary microprocessor pipeline in accordance with one embodiment of the present invention.





DETAILED DESCRIPTION OF THE INVENTION

Although the present invention has been described in connection with one embodiment, the invention is not intended to be limited to the specific forms set forth herein. On the contrary, it is intended to cover such alternatives, modifications, and equivalents as can be reasonably included within the scope of the invention as defined by the appended claims.


In the following detailed description, numerous specific details such as specific method orders, structures, elements, and connections have been set forth. It is to be understood however that these and other specific details need not be utilized to practice embodiments of the present invention. In other circumstances, well-known structures, elements, or connections have been omitted, or have not been described in particular detail in order to avoid unnecessarily obscuring this description.


References within the specification to “one embodiment” or “an embodiment” are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. The appearance of the phrase “in one embodiment” in various places within the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.


Some portions of the detailed descriptions, which follow, are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals of a computer readable storage medium and are capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.


It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “processing” or “accessing” or “writing” or “storing” or “replicating” or the like, refer to the action and processes of a computer system, or similar electronic computing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories and other computer readable media into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.


Embodiments of the present invention utilize a front end scheduler, a plurality of segmented register files or a single register file, and a memory subsystem to implement fragmented address spaces for multiple cores of a multicore processor. In one embodiment, fragmentation enables the scaling of microprocessor performance by allowing additional virtual cores (e.g., soft cores) to cooperatively execute instruction sequences comprising one or more threads. The fragmentation hierarchy is the same across each cache hierarchy (e.g., L1 cache, L2 cache). The fragmentation hierarchy divides the address space into fragments using address bits, where the address bits are used such that the fragments are identified by bits that are above cache line boundaries and below page boundaries. Each fragment is configured to utilize a multiport bank structure for storage. Embodiments of the present invention are further described in the FIGS. 1A and 1B below.



FIG. 1A shows an overview diagram of a processor in accordance with one embodiment of the present invention. As depicted in FIG. 1A, the processor includes a global front end fetch and scheduler 10 and a plurality of partitionable engines 11-14.



FIG. 1A shows an overview of the manner in which the global front end generates code blocks and inheritance vectors to support the execution of code sequences on their respective partitionable engines. Each of the code sequences 20-23 can belong to the same logical core/thread or to different logical cores/threads, depending upon the particular virtual core execution mode. The global front end fetch and scheduler will process the code sequences 20-23 to generate code blocks and inheritance vectors. These code blocks and inheritance vectors are allocated to the particular partitionable engines 11-14 as shown.


The engines implement virtual cores, in accordance with a selected mode. An engine includes a segment, a fragment and a number of execution units. The resources within the engines can be used to implement virtual cores that have multiple modes. As provisioned by the virtual core mode, one soft core, or many soft cores, can be implemented to support one logical core/thread. In the FIG. 1A embodiment, depending on the selected mode, the virtual cores can support one logical core/thread or four logical cores/threads. In an embodiment where the virtual cores support four logical cores/threads, the resources of each virtual core are spread across each of the partitionable engines. In an embodiment where the virtual cores support one logical core/thread, the resources of all the engines are dedicated to that core/thread. The engines are partitioned such that each engine provides a subset of the resources that comprise each virtual core. In other words, a virtual core will comprise a subset of the resources of each of the engines 11-14. Communication between the resources of each of the engines 11-14 is provided by a global interconnection structure 30 in order to facilitate this process. Alternatively, the engines 11-14 can be used to implement a physical mode where the resources of the engines 11-14 are dedicated to support the execution of a dedicated core/thread. In this manner, the soft cores implemented by the engines comprise virtual cores that have resources spread across each of the engines. The virtual core execution modes are further described in the figures below.


It should be noted that in a conventional core implementation, the resources within one core/engine are solely allocated to one logical thread/core. In contrast, in embodiments of the present invention, the resources of any engine/core can be partitioned, collectively with other engine/core partitions, to instantiate a virtual core that is allocated to one logical thread/core. Embodiments of the present invention can also implement multiple virtual execution modes in which those same engines can be partitioned to support many dedicated cores/threads or many dynamically allocated cores/threads, as well as configurations in which where all of the resources of all engines support the execution of a single core/thread. Some representative embodiments are further described below. In other embodiments of the current invention, the techniques of the current invention can be applied directly to a conventional multi-core implementation to enable efficient contestation, reservation and allocation of multi-core shared resources and interconnects. Similarly the current invention can be applied within a single core or compute engine to enable efficient contestation, reservation and allocation of any shared resources or interconnects within the core (i.e., ports, busses, execution units, caches, structures),


For example, the embodiments shown in FIG. 1A, FIG. 1B and FIG. 5 could be replaced by a typical multi-core design that has no global front-end or inheritance vectors, but rather has engines that instantiate multiple cores or multiple threads having access to resources such as caches, shared interconnects (e.g., meshes or grids), or shared multi-directional busses. In such embodiments, the current invention can still be directly applied to allow efficient resource and interconnect contestation, reservation and allocation. Similarly, embodiments of the current invention can be applied to each core or engine in order to contend, reserve and allocate resources or interconnects.



FIG. 1B shows an overview diagram of partitionable engines and their components, including segmented scheduler and register files, global interconnects and a fragmented memory subsystem for a multicore processor in accordance with one embodiment of the present invention. As depicted in FIG. 1, four fragments 101-104 are shown. The fragmentation hierarchy is the same across each cache hierarchy (e.g., L1 cache, L2 cache, and the load store buffer). Data can be exchanged between each of the L1 caches, each of the L2 caches and each of the load store buffers through the memory global interconnect 110a.


The memory global interconnect comprises a routing matrix that allows a plurality of cores (e.g., the address calculation and execution units 121-124) to access data that may be stored at any point in the fragmented cache hierarchy (e.g., L1 cache, load store buffer and L2 cache). FIG. 1 also depicts the manner whereby each of the fragments 101-104 can be accessed by address calculation and execution units 121-124 through the memory global interconnect 110a.


The execution global interconnect 110b similarly comprises a routing matrix allows the plurality of cores (e.g., the address calculation and execution units 121-124) to access data that may be stored at any of the segmented register files. Thus, the cores have access to data stored in any of the fragments and 2 data stored in any of the segments through the memory global interconnect 110a or the execution global interconnect 110b.



FIG. 1B further shows a global front end fetch & scheduler 150 which has a view of the entire machine and which manages the utilization of the register files segments and the fragmented memory subsystem. Address generation comprises the basis for fragment definition. The global front end Fetch & scheduler functions by allocating instruction sequences to each segment's partition scheduler. The common partition scheduler then dispatches those instruction sequences for execution on the address calculation and execution units 121-124.


Additionally, it should be noted that the partitionable engines shown in FIG. 1A can be nested in a hierarchal way. In such an embodiment, a first level partitionable engine would include a local front end fetch and scheduler and multiple secondary partitionable engines connected to it.



FIG. 2 shows an overview diagram depicting additional features of the interconnect 30 described above in the discussion of FIGS. 1A and 1B, and a plurality of local interconnects 40-42 in accordance with one embodiment of the present invention. The FIG. 2 structure illustrates an orchestrating model of an interconnect structure. FIG. 2 shows a plurality of resources connected to a corresponding plurality of consumers. The resources are the data storage resources of each of the partitionable engines (e.g., register files, load store buffers, L1 cache and L2 cache). The consumers are the execution units and address calculation units of each of the partitionable engines. FIG. 2 further shows a plurality of orchestrators 21-23.


As described above, communication between the resources of each of the engines 11-14 is provided by an interconnection structure. By way of example, in the FIG. 2 embodiment, the interconnect structure 30 is a dedicated point-to-point bus. In the FIG. 2 embodiment, there are six buses which span across the resources of each of the engines. Only one consumer/resource pair can utilize one of the six busses per cycle. The consumer/resource pairs contend with each other for use of the six busses through an OR-AND and a threshold detection logic of FIG. 10, However the same orchestration for a shared multi-point busses configuration can be achieved using the reservation adder and threshold limit or process, as further described in the discussion of FIG. 9.


The orchestrators 21-23 comprise controlled entities that direct the routing of a resource to a consumer. For example, in one embodiment, an orchestrator can be a thread scheduler that schedules a resource for transfer through the interconnect to a consumer that is ready for execution. The orchestrator (e.g., thread scheduler) identifies the correct resource, reserves the necessary bus, and causes the transfer of that resource to a selected consumer. In this manner, the orchestrator monitors the readiness of instructions and selects the execution units that will be used to execute the instructions. This information is used to orchestrate the transfer of the resource across the interconnect to the selected execution units (e.g., selected consumer) by contending the requests at the interconnect using the reservation and allocation logic as illustrated by either of FIG. 9 or FIG. 10. In this manner, the execution units of the consumers themselves are treated as resources that need to be contended for by the orchestrators using similar resource reservation and allocation methods as illustrated for the interconnect. Where in the execution units are reserved and allocated by contending the requests that come from all orchestrators using either of the reservation and allocation logic of FIG. 9 or FIG. 10.


The interconnect comprises a routing matrix that allows a plurality of resource consumers, in this case, a plurality of cores (e.g., the address calculation and execution units 121-124), to access a resource, in this case data, that may be stored at any point in the fragmented cache hierarchy (e.g., L1 cache, load store buffer and L2 cache). The cores can similarly access data that may be stored at any of the segmented register files. Thus, the cores have access to data stored in any of the fragments and to data stored in any of the segments through the interconnect structure 30. In one embodiment, the interconnect structure comprises two structures, the memory interconnect 110a and the execution interconnect 110b, as shown and described above in the discussion of FIG. 1B.



FIG. 2 also shows the plurality of local interconnects 40-42. The local interconnects 40-42 comprise a routing matrix that allows resource consumers from adjacent partitionable engines to quickly access resources of immediately adjacent partitionable engines. For example, one core can use a local interconnect 40 to quickly access resources of the adjacent partitionable engine (e.g., register file, load store buffer, etc.).


Thus, the interconnect structure itself comprises a resource that must be shared by each of the cores of each of the partitionable engines. The interconnect structure 30 and the local interconnect structures 40-42 implement an interconnect structure that allows cores from any of the partitionable engines to access resources of any other of the partitionable engines. This interconnect structure comprises transmission lines that span all of the partitionable engines of the integrated circuit device, in the case of the interconnect structure, and span between engines of the integrated circuit device, in the case of the local interconnect structure.


Embodiments of the present invention implement a non-centralized access process for using the interconnects and the local interconnects. The finite number of global buses and local buses comprise resources which must be efficiently shared by the orchestrators. Additionally, a non-centralized access process is used by the orchestrators to efficiently share the finite number of ports that provide read/write access to the resources of each of the partitionable engines. In one embodiment, the non-centralized access process is implemented by the orchestrators reserving a bus (e.g., a local interconnect bus or an interconnect bus) and a port into the desired resource. For example, orchestrator 21 needs to reserve an interconnect and a port in order for consumer 1 to access resource 3, while orchestrator 22 to needs to reserve an interconnect and the port in order for consumer for to access resource 2.



FIG. 3 shows components comprising a resource reservation mechanism that implements efficient access to a contested resource in accordance with one embodiment of the present invention. As shown in FIG. 3, three reservation adders 301-303 are shown coupled to threshold limiters 311-313, which control access to each of the four ports for each of the three resources. Each adder output sum (if not canceled) also serves as the port selector for each of the accesses, such that each request that succeeds can use the port number indicated by the sum at the output of that request adder. It should be noted that as indicated in the FIG. 3 diagram, the sum of each depicted adder is also the assigned port number for the non-cancelled corresponding request.


It should be noted that this port allocation and reservation problem can be illustrated similar to the bus segment allocation table of FIG. 7 and thus its implementation logic can also be similar to FIG. 9 wherein each segment in this case reflects a register file segment instead of a bus segment. With the same analogy in this case, an instruction trying to access multiple register file segments can only succeed if it can reserve all its register segments requests, and will fail if any register segment access for that instruction is canceled, similar to the illustrations of the bus segments in FIG. 7.


Embodiments of the present invention implement a non-centralized access process for using the interconnects and the local interconnects. Requests, accesses and controls can be initiated for shared interconnects, resources or consumers by multiple non-centralized fetchers, senders, orchestrators, or agents. Those non centralized requests, accesses and controls contend at the shared resources using variations of methods and logic implementation as described in this invention depending on the topologies and structures of those shared resources. By way of example, the resources of the engines and their read/write ports need to be efficiently shared by the cores. Additionally, the finite number of global buses and local buses comprise resources that need to be efficiently shared. In the FIG. 3 embodiment, the non-centralized access process is implemented through reservation adders and threshold limiters. In one embodiment, at each contested resource, a reservation adder tree and a threshold limiter control access to that contested resources. As used herein, the term contested resource refers to read write ports of a load store buffer, memory/cache fragment, register file segment or L2 cache, a global buses reservation, or local buses reservation.


A reservation adder and a threshold limiter control access to each contested resource. As described above, to access a resource, a core needs to reserve the necessary bus and reserve the necessary port. During each cycle, orchestrators attempt to reserve the resources necessary to execute their pending instruction. For example, for an orchestrator scheduling an instruction I1 shown in FIG. 3, that orchestrator will set a flag, or a bit, in the reservation adder of its needed resource. In this case a bit is set in register file 1 and in register file 3. Other orchestrators will similarly set bits in the reservation adders of their needed resource. For example, a different orchestrator for instruction I2 sets two bits for register file 2. As the orchestrators request their needed resources the reservation adders sum the requests until they reach the threshold limiter. In the FIG. 4 embodiment, there are four ports for each of the resources. Hence, the reservation adders will accept flags from reservation requests until the four ports are all reserved. No other flags will be accepted.


An orchestrator will not receive confirmation to execute its instruction unless all of its flags necessary to execute the instruction are set. Hence, the orchestrator will receive confirmation to execute the instruction if the flags for the necessary buses are set and the flags for the necessary read write ports are set. If a cancel signal is received for any of the flags, all flags for that orchestrator's request are cleared, and the request is queued until the next cycle.


In this manner, each of the orchestrators contends with each other for the resources on a cycle by cycle basis. Requests that are canceled are queued and given priority in the next cycle. This ensures that one particular core is not locked out of resource access for large number of cycles. It should be noted that the resources in the proposed implementations get assigned automatically to the resources, for example if the request succeed in obtaining a resource (e.g., it is not canceled by the adder and threshold logic) then the adder sum output corresponding to that request represent the resource number assigned to that request, thus completing the resource assignment without requiring any further participation from the orchestrators. This reservation and allocation adder and threshold limiters fairly balance access to contested resources in a decentralized manner (e.g., there is no need for requestors/orchestrators to actively participate in any centralized arbitration). Each remote orchestrator sends its requests to the shared resources, those requests that succeed will be granted resources/buses automatically.



FIG. 4 shows the interconnect and the ports into the memory fragments in accordance with one embodiment of the present invention. As depicted in FIG. 4, each memory fragment is shown with four read write ports that provide read/write access to the load store buffer, the L1 cache, and the L2 cache. The load store buffer includes a plurality of entries and the L1 cache includes a plurality of ways.


As described above, embodiments of the present invention implement a non-centralized access process for using the interconnects and the local interconnects. The finite number of global buses and local buses comprise resources which must be efficiently shared by the cores. Thus, a reservation adder and a threshold limiter control access to each contested resource, in this case, the ports into each fragment. As described above, to access a resource, a core needs to reserve the necessary bus and reserve the necessary port.



FIG. 5 shows the interconnect and the ports into the segments in accordance with one embodiment of the present invention. As depicted in FIG. 5, each segment is shown with 4 read write ports that provide read/write access to the operand/result buffer, threaded register file, and common partition or scheduler. The FIG. 5 embodiment is shown as including a common partition or scheduler in each of the segments. In this embodiment, the common partition scheduler is configured to function in cooperation with the global front end fetch and scheduler shown in FIG. 1B.


The non-centralized access process for using the interconnects and the local interconnects employ the reservation adder and a threshold limiter control access to each contested resource, in this case, the ports into each segment. As described above, to access a resource, a core needs to reserve the necessary bus and reserve the necessary port.



FIG. 6 shows a diagram depicting a segmented interconnect 601 in accordance with one embodiment of the present invention. As shown in FIG. 6, an interconnect 601 is shown connecting resources 1-4 to consumers 1-4. The interconnect 601 is also shown as comprising segments 1, 2, and 3.



FIG. 6 shows an example of a fetch model interconnect structure. In the FIG. 6 embodiment, there are no orchestrators. In this embodiment, the resources are contended for by the consumers, as they attempt to fetch the necessary resources to support consumption (e.g., execution units). The consumers send the necessary fetch requests to the reservation adders and threshold limiters.


The interconnect structure comprises a plurality of global segmented buses. The local interconnect structure comprises a plurality of locally connected engine to engine buses. Accordingly, to balance costs in both performance and fabrication, there are a finite number of global buses and a finite number of local buses. In the FIG. 6 embodiment, four globally segmented buses are shown.


In one embodiment, the global buses can be segmented into 3 portions. The segmentation allows the overall length of the global buses to be adjusted in accordance with the distance of the global access. For example, an access by consumer 1 to resource 4 would span the entire bus, and thus not be segmented. However, an access by consumer 1 to resource 3 would not span the entire bus, and thus the global bus can be segmented between resource 3 and resource 4.


In the FIG. 6 embodiment, the interconnect 601 is shown as having 4 buses. The segmentation can be implemented via, for example, a tri-state buffer. The segmentation results in faster and more power efficient transmission characteristics of the bus. In the FIG. 6 embodiment, the buses each include one directional tri-state buffers (e.g., buffer 602) and bidirectional tri-state buffers (e.g., buffer 603). The bidirectional tri-state buffers are shaded in the FIG. 6 diagram. The buffers enable the interconnect to be segmented to improve its signal transmission characteristics. These segments also comprise resources which must be contested for an allocated for by the resource consumers. This process is illustrated in the FIG. 7 diagram below.



FIG. 7 shows a table that illustrates the manner which requests for segments of the interconnect 601 are contested for and allocated in accordance with one embodiment of the present invention. The left-hand side of the FIG. 7 table shows how requests are ordered as they are received within the cycle. In this case, eight requests are shown. When a request from a resource consumer wants to reserve a segment, that consumer places a one in the requested segment's reservation table. For example, for request 1, consumer 1 wants to reserve segment 1 and segment 2 in order to access resource 3. Thus, consumer 1 sets a flag, or a bit, in the request column for segment 1 and segment 2, while the column for segment 3 remains zero. In this manner, requests are added within the columns. Requests are allocated until they exceed the number of global buses, in this case four. When the requests exceed the number of global buses, they are canceled. This is shown by request number 6 and request number 7 having been canceled because they exceed the limit.



FIG. 8 shows a table that illustrates the manner in which requests for a point-to-point bus are handled in accordance with one embodiment of the present invention. As opposed to the table of FIG. 7, the table of FIG. 8 shows how only one consumer and only one resource can use a point-to-point bus (e.g., the interconnect illustrated in FIG. 2). The requests come from the multiple orchestrators that want to route resources through the point-to-point buses. In this case, the point-to-point bus shows the number of possible consumer resource pairs (e.g., the six columns proceeding from left to right) and a number of requests 1-8 proceeding from top to bottom. Because only one resource consumer pair can use a bus at any given time, the column can only have one request flag before all of the requests are canceled as exceeding the limit. Thus, in each column, the first request is granted while all subsequent requests are canceled as exceeding the limit. Since there are six global point-to-point buses, there are six columns which can accommodate six different requests in each cycle.



FIG. 9 shows a diagram of an exemplary logic implementation that implements the functionality of the table of FIG. 7 in accordance with one embodiment of the present invention. As described above, the table of FIG. 7 illustrates the manner which requests for segments of the interconnect 601 are contested for and allocated in accordance with one embodiment of the present invention. Specifically, FIG. 9 shows the logic for allocating the column associated with bus segment 2 from the table of FIG. 7.


The FIG. 9 embodiment shows a plurality of parallel adders 901-905. Both requests are canceled if the limit is exceeded. As described above, there are 4 buses which can be used to implement segment 2. The first four requests can be processed and granted because even if they are all flagged, by marking request with a logical one, they will not exceed the limit. The remaining requests need to be checked whether they will exceed the limit. This is done by the parallel adders 901-905. Each adder after the first three rows adds itself and all previous rows and checks against the limit. If the adder exceeds the limit, the request is canceled, as shown. The adder sum output also determines which particular bus segment is allocated to each request. In the FIG. 9 embodiment, this is by bus segment number as shown.



FIG. 10 shows a diagram of an exemplary logic implementation that implements the functionality of the manner in which requests for a point-to-point bus are handled in accordance with one embodiment of the present invention. The table of FIG. 8 shows how only one consumer and only one resource can use a point-to-point bus. Specifically, FIG. 10 shows the logic for allocating the column associated with bus column 2-4 from the table of FIG. 8.


The FIG. 10 embodiment shows a plurality of multi-input OR gates coupled to AND gates, as shown. As described above, one consumer and only one resource can use a point-to-point bus. Because only one resource/consumer pair can use a bus at any given time, the column can only have one request flag before all of the subsequent requests are canceled as exceeding the limit. Thus, in each column, the first request is granted while all subsequent requests are canceled as exceeding the limit. In the FIG. 10 embodiment, each row of the column is logically combined through an OR operation with all of the previous rows of the column and then is logically combined through an AND operation with itself. Thus, if any previous row reserves the column, all subsequent requests are canceled, as shown.



FIG. 11 shows a diagram of an interconnect 1101 in accordance with one embodiment of the present invention. The interconnect 1101 comprises five shared interconnect structures that are shared by each of the senders and each of the receivers.


The FIG. 11 embodiment shows an example of a send model interconnect structure. For example, the senders comprise the execution units of the engines. The receivers comprise the memory fragments and the register segments of the engines. In this model, the senders issue the necessary requests to the reservation adders and the threshold limiters to reserve resources to implement their transfers. These resources include ports into the receivers and a plurality of shared buses of the interconnect 1101.



FIG. 12 shows a table illustrating the manner in which the sender model interconnect structure of FIG. 11 functions in accordance with one embodiment of the present invention. The table shows the requests as they are received from all of the senders. The right hand side of the table shows the interconnect allocation. Since the interconnect 1101 comprises five shared buses, the first five requests are granted, and any further requests are canceled as exceeding the limit. Thus, request 1, request 3, request 4, request 5, and request 6 are granted. However, request 7 is canceled as having exceeded the limit.



FIG. 13 shows a diagram of an exemplary logic implementation that implements the functionality of the manner in which requests for shared bus interconnect structure are handled in accordance with one embodiment of the present invention.



FIG. 13 shows how the allocation of the interconnect buses is handled by the adders 901-905. This logic implements the table of FIG. 12. As requests are received, corresponding flags are set. The adders add their respective flag with all prior flags. Flags will be granted along with their bus number by the adder so long as they do not exceed the limit, which is five in this case. As described above, any requests that exceed the limit are canceled.


It should be noted that the sender model and the fetch model of an interconnect can be simultaneously supported using a common interconnect structure and a common contesting mechanism. This is shown by the similarity of the diagram of FIG. 13 to the diagram of FIG. 9.


It should be noted that current presentations in the current invention of different models of communications (Sender, Fetch, Orchestrator, etc.) and different interconnect topologies (point to point busses, multi-bus, and segmented busses, etc.) should not be interpreted as the only communication modes or the only interconnect topologies applicable to the current invention. To the contrary, one skilled in the art can easily mix and match the different contestation, reservation and allocation techniques of the current invention with any communication mode or bus topology.


It should be further noted that the described embodiments of the current invention present interconnects alongside the resources. This should be understood as a generalized illustration meant to show a broader set of possibilities for implementing the current invention, but it should be noted that the meaning of interconnects as used in the current invention is not limited to data interconnects between different cores or compute engines or between register files or memory fragments, but refers also to the control interconnects that carry the requests to the resources and the physical interconnects that carry data from structures (i.e., register file ports, memory ports, array decoder busses, etc.). This broader meaning is illustrated in FIG. 3, for example, which shows the interconnects only as the ports coming out of each register file.



FIG. 14 shows a diagram of an exemplary microprocessor pipeline 1400 in accordance with one embodiment of the present invention. The microprocessor pipeline 1400 includes a fetch module 1401 that implements the functionality of the process for identifying and extracting the instructions comprising an execution, as described above. In the FIG. 14 embodiment, the fetch module is followed by a decode module 1402, an allocation module 1403, a dispatch module 1404, an execution module 1405 and a retirement module 1406. It should be noted that the microprocessor pipeline 1400 is just one example of the pipeline that implements the functionality of embodiments of the present invention described above. One skilled in the art would recognize that other microprocessor pipelines can be implemented that include the functionality of the decode module described above.


For purposes of explanation, the foregoing description refers to specific embodiments that are not intended to be exhaustive or to limit the current invention. Many modifications and variations are possible consistent with the above teachings. Embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, so as to enable others skilled in the art to best utilize the invention and its various embodiments with various modifications as may be suited to their particular uses.

Claims
  • 1. A method for allocation of a segmented interconnect in an integrated circuit, the method comprising: receiving a plurality of requests from a plurality of resource consumers of a plurality of engines to access a plurality of resources, wherein the resources are spread across the plurality of engines and store data for supporting execution of multiple code sequences;contending for the plurality of resources in accordance with the plurality of requests from the plurality of resource consumers; andaccessing the plurality of resources via a global interconnect structure, wherein the global interconnect structure has a finite number of buses accessible each clock cycle, and wherein the global interconnect structure comprises a plurality of global segment buses,wherein the plurality of requests contend for a bus in the plurality of global segment buses using one or more parallel adders, wherein the one or more parallel adders assigns a segment bus to a request in the plurality of global segment buses based on a sum produced by the one or more parallel adders, andwherein each segment bus in the plurality of global segment buses is associated with an identifier and the sum produced by the one or more parallel adders is a sum of the current request and all preceding requests and corresponds to the identifier of the bus in the plurality of global segment buses assigned to the request.
  • 2. The method of claim 1, wherein the resources can be selected from a group consisting of: memory fragments of each of the engines, register file segments of each of the engines, and read/write ports into memory fragments and register file segments of each of the engines.
  • 3. The method of claim 1, wherein the resource consumers comprise at least one of execution units or address calculation units of each of the engines.
  • 4. The method of claim 1, wherein segmentation of the plurality of global segment buses enables a length of each bus to be adjusted in accordance with a distance of access required.
  • 5. The method of claim 4, wherein the segmentation is implemented using tri-state buffers to improve signal transmission characteristics of the plurality of global segment buses.
  • 6. The method of claim 5, wherein the tri-state buffers can be selected from a group consisting of: bi-directional tri-state buffers and one directional tri-state buffers.
  • 7. The method of claim 1, wherein the resources comprise segments of the plurality of global segment buses.
  • 8. The method of claim 7, wherein reserving a requested segment by the plurality of resource consumers comprises: flagging an entry in a reservation table corresponding to the requested segment;allocating requests below a threshold limit for the requested segment; andcanceling requests exceeding the threshold limit.
  • 9. In a microprocessor, a method for allocation of a segmented interconnect in an integrated circuit, the method comprising: receiving a plurality of requests from a plurality of resource consumers of a plurality of engines to access a plurality of resources, wherein the resources store data for supporting execution of multiple code sequences;contending for the plurality of resources in accordance with the plurality of requests from the plurality of resource consumers; andaccessing the plurality of resources via a global interconnect structure, wherein the global interconnect structure has a finite number of buses accessible each clock cycle, and wherein the global interconnect structure comprises a plurality of global segment buses and a plurality of locally connected engine to engine buses,wherein the plurality of requests contend for a bus in the plurality of global segment buses using one or more parallel adders, wherein the one or more parallel adders assigns a segment bus to a request in the plurality of global segment buses based on a sum produced by the one or more parallel adders, andwherein each segment bus in the plurality of global segment buses is associated with an identifier and the sum produced by the one or more parallel adders is a sum of the current request and all preceding requests and corresponds to the identifier of the bus in the plurality of global segment buses assigned to the request.
  • 10. The method of claim 9, wherein the resources can be selected from a group consisting of: memory fragments of each of the engines, register file segments of each of the engines, and read/write ports into memory fragments and register file segments of each of the engines.
  • 11. The method of claim 9, wherein the resource consumers comprise at least one of execution units or address calculation units of each of the engines.
  • 12. The method of claim 9, wherein segmentation of the plurality of global segment buses enables a length of each bus to be adjusted in accordance with a distance of access required.
  • 13. The method of claim 12, wherein the segmentation is implemented using tri-state buffers to improve signal transmission characteristics of the plurality of global segment buses.
  • 14. The method of claim 13, wherein the tri-state buffers can be selected from a group consisting of: bi-directional tri-state buffers and one directional tri-state buffers.
  • 15. A microprocessor, comprising: a plurality of resources storing data for supporting execution of multiple code sequences;a plurality of partitionable engines for implementing the execution of the multiple code sequences;a plurality of resource consumers within each of the plurality of partitionable engines; anda global interconnect structure for coupling the plurality of resource consumers with the plurality of resources to access the data and execute the multiple code sequences, wherein the global interconnect structure has a finite number of buses accessible each clock cycle, and wherein the global interconnect structure comprises a plurality of global segment buses,wherein the plurality of requests contend for a bus in the plurality of global segment buses using one or more parallel adders, wherein the one or more parallel adders assigns a segment bus to a request in the plurality of global segment buses based on a sum produced by the one or more parallel adders, andwherein each segment bus in the plurality of global segment buses is associated with an identifier and the sum produced by the one or more parallel adders is a sum of the current request and all preceding requests and corresponds to the identifier of the bus in the plurality of global segment buses assigned to the request.
  • 16. The microprocessor of claim 15, wherein the resources can be selected from a group consisting of: memory fragments of each of the partitionable engines, register file segments of each of the partitionable engines, and read/write ports into memory fragments and register file segments of each of the partitionable engines.
  • 17. The microprocessor of claim 15, wherein the resource consumers comprise at least one of execution units or address calculation units of each of the engines.
  • 18. The microprocessor of claim 15, wherein segmentation of the plurality of global segment buses enables a length of each bus to be adjusted in accordance with a distance of access required.
  • 19. The microprocessor of claim 18, wherein the segmentation is implemented using tristate buffers to improve signal transmission characteristics of the plurality of global segment buses.
CROSS REFERENCE TO RELATED APPLICATION

The present application is a continuation of U.S. patent application Ser. No. 13/475,708, filed May 18, 2012, entitled “DECENTRALIZED ALLOCATION OF RESOURCES AND INTERCONNECT STRUCTURES TO SUPPORT THE EXECUTION OF INSTRUCTION SEQUENCES BY A PLURALITY OF ENGINES,” naming Mohammad Abdallah as inventor, and which is herein incorporated by reference in its entirety, and which claims the benefit of commonly assigned U.S. Provisional Patent Application Ser. No. 61/488,662, titled “DECENTRALIZED ALLOCATION OF RESOURCES AND INTERCONNECT STRUCTURES TO SUPPORT THE EXECUTION OF INSTRUCTION SEQUENCES BY A PLURALITY OF ENGINES” by Mohammad A. Abdallah, filed on May 20, 2011, and which is incorporated herein in its entirety.

US Referenced Citations (463)
Number Name Date Kind
727487 Swan May 1903 A
4075704 O'Leary Feb 1978 A
4245344 Richter Jan 1981 A
4356550 Katzman et al. Oct 1982 A
4414624 Summer, Jr. et al. Nov 1983 A
4524415 Mills, Jr. et al. Jun 1985 A
4527237 Frieder et al. Jul 1985 A
4577273 Hopper et al. Mar 1986 A
4597061 Cline et al. Jun 1986 A
4600986 Scheuneman et al. Jul 1986 A
4633434 Scheuneman Dec 1986 A
4682281 Woffinden et al. Jul 1987 A
4727487 Masui et al. Feb 1988 A
4816991 Watanabe et al. Mar 1989 A
4835680 Hogg et al. May 1989 A
4920477 Colwell et al. Apr 1990 A
4930066 Yokota May 1990 A
4943909 Huang Jul 1990 A
5197130 Chen et al. Mar 1993 A
5294897 Notani et al. Mar 1994 A
5317705 Gannon et al. May 1994 A
5317754 Blandy et al. May 1994 A
5339398 Shah et al. Aug 1994 A
5404470 Miyake Apr 1995 A
5469376 Abdallah Nov 1995 A
5471593 Branigin Nov 1995 A
5509130 Trauben et al. Apr 1996 A
5517651 Huck et al. May 1996 A
5524090 Iwamura Jun 1996 A
5548742 Wang et al. Aug 1996 A
5559986 Alpert et al. Sep 1996 A
5574878 Onodera et al. Nov 1996 A
5581725 Nakayama Dec 1996 A
5590084 Miyano et al. Dec 1996 A
5634068 Nishtala et al. May 1997 A
5649136 Shen et al. Jul 1997 A
5675759 Shebanow et al. Oct 1997 A
5699537 Sharangpani et al. Dec 1997 A
5710902 Sheaffer et al. Jan 1998 A
5724565 Dubey et al. Mar 1998 A
5751982 Morley May 1998 A
5752260 Liu May 1998 A
5754818 Mohamed May 1998 A
5761476 Martell Jun 1998 A
5787494 Delano et al. Jul 1998 A
5793941 Pencis et al. Aug 1998 A
5802602 Rahman et al. Sep 1998 A
5806085 Berliner Sep 1998 A
5813031 Chou et al. Sep 1998 A
5819088 Reinders Oct 1998 A
5829028 Lynch et al. Oct 1998 A
5835951 McMahan Nov 1998 A
5852738 Bealkowski et al. Dec 1998 A
5860146 Vishin et al. Jan 1999 A
5864657 Stiffler Jan 1999 A
5872985 Kimura Feb 1999 A
5881277 Bondi et al. Mar 1999 A
5901294 Tran et al. May 1999 A
5903750 Yeh et al. May 1999 A
5905509 Jones et al. May 1999 A
5911057 Shiell Jun 1999 A
5918251 Yamada et al. Jun 1999 A
5956753 Glew et al. Sep 1999 A
5974506 Sicola et al. Oct 1999 A
5978906 Tran Nov 1999 A
5983327 Achilles et al. Nov 1999 A
6016533 Tran Jan 2000 A
6016540 Zaidi et al. Jan 2000 A
6021484 Park Feb 2000 A
6065105 Zaidi et al. May 2000 A
6073230 Pickett et al. Jun 2000 A
6075938 Bugnion et al. Jun 2000 A
6085315 Fleck et al. Jul 2000 A
6088780 Yamada et al. Jul 2000 A
6092172 Nishimoto et al. Jul 2000 A
6101577 Tran Aug 2000 A
6108769 Chinnakonda et al. Aug 2000 A
6115809 Mattson, Jr. et al. Sep 2000 A
6134634 Marshall, Jr. et al. Oct 2000 A
6138226 Yoshioka et al. Oct 2000 A
6157998 Rupley, II et al. Dec 2000 A
6167490 Levy et al. Dec 2000 A
6170051 Dowling Jan 2001 B1
6178482 Sollars Jan 2001 B1
6185660 Mulla et al. Feb 2001 B1
6205545 Shah et al. Mar 2001 B1
6209085 Hammond et al. Mar 2001 B1
6212542 Kahle et al. Apr 2001 B1
6212613 Belair Apr 2001 B1
6216215 Palanca et al. Apr 2001 B1
6226732 Pei et al. May 2001 B1
6247097 Sinharoy Jun 2001 B1
6253316 Tran et al. Jun 2001 B1
6256727 McDonald Jul 2001 B1
6256728 Witt et al. Jul 2001 B1
6260131 Kikuta et al. Jul 2001 B1
6260138 Harris Jul 2001 B1
6269439 Hanaki Jul 2001 B1
6272616 Fernando et al. Aug 2001 B1
6272662 Jadav et al. Aug 2001 B1
6275917 Okada Aug 2001 B1
6282583 Pincus et al. Aug 2001 B1
6282638 Dowling Aug 2001 B1
6308323 Douniwa Oct 2001 B1
6321298 Hubis Nov 2001 B1
6327650 Bapst et al. Dec 2001 B1
6332189 Baweja et al. Dec 2001 B1
6339822 Miller Jan 2002 B1
6341324 Caulk, Jr. et al. Jan 2002 B1
6345357 Sato Feb 2002 B1
6360311 Zandveld et al. Mar 2002 B1
6408367 Achilles et al. Jun 2002 B2
6437789 Tidwell et al. Aug 2002 B1
6449671 Patkar et al. Sep 2002 B1
6457120 Sinharoy Sep 2002 B1
6473833 Arimilli et al. Oct 2002 B1
6490673 Heishi et al. Dec 2002 B1
6502187 Miyagawa Dec 2002 B1
6529928 Resnick et al. Mar 2003 B1
6542984 Keller et al. Apr 2003 B1
6557083 Sperber et al. Apr 2003 B1
6557095 Henstrom Apr 2003 B1
6594755 Nuechterlein et al. Jul 2003 B1
6604187 McGrath et al. Aug 2003 B1
6609189 Kuszmaul et al. Aug 2003 B1
6615340 Wilmot, II Sep 2003 B1
6658549 Wilson et al. Dec 2003 B2
6668316 Gorshtein et al. Dec 2003 B1
6681395 Nishi Jan 2004 B1
6704860 Moore Mar 2004 B1
6721874 Le et al. Apr 2004 B1
6728866 Kahle et al. Apr 2004 B1
6775761 Wang et al. Aug 2004 B2
6829698 Arimilli et al. Dec 2004 B2
6850531 Rao et al. Feb 2005 B1
6882177 Reddy Apr 2005 B1
6907600 Neiger et al. Jun 2005 B2
6912644 O'Connor et al. Jun 2005 B1
6920530 Musumeci Jul 2005 B2
6944744 Ahmed et al. Sep 2005 B2
6948172 D'Souza Sep 2005 B1
6950927 Apisdorf et al. Sep 2005 B1
6954846 Leibholz et al. Oct 2005 B2
6985591 Graunke Jan 2006 B2
6988183 Wong Jan 2006 B1
7007108 Emerson et al. Feb 2006 B2
7020879 Nemirovsky et al. Mar 2006 B1
7047322 Bauman et al. May 2006 B1
7111145 Chen et al. Sep 2006 B1
7117347 Col et al. Oct 2006 B2
7139855 Armstrong et al. Nov 2006 B2
7143273 Miller et al. Nov 2006 B2
7149872 Rozas et al. Dec 2006 B2
7150021 Vajjhala et al. Dec 2006 B1
7171535 Naoi Jan 2007 B2
7203824 Bean et al. Apr 2007 B2
7206925 Jacobson et al. Apr 2007 B1
7213106 Koster et al. May 2007 B1
7213248 Arimilli et al. May 2007 B2
7231106 Basavanhally et al. Jun 2007 B2
7257695 Jiang et al. Aug 2007 B2
7278030 Chen et al. Oct 2007 B1
7284092 Nunamaker et al. Oct 2007 B2
7290261 Burky et al. Oct 2007 B2
7313775 Casey et al. Dec 2007 B2
7343476 Floyd et al. Mar 2008 B2
7373637 Dewitt et al. May 2008 B2
7380096 Rozas et al. May 2008 B1
7383427 Yamazaki Jun 2008 B2
7398347 Pechanek et al. Jul 2008 B1
7406581 Southwell et al. Jul 2008 B2
7418579 Guibert et al. Aug 2008 B2
7418582 Iacobovici et al. Aug 2008 B1
7441110 Puzak et al. Oct 2008 B1
7493475 Colavin Feb 2009 B2
7539879 Terechko et al. May 2009 B2
7546420 Shar et al. Jun 2009 B1
7577820 Wentzlaff et al. Aug 2009 B1
7613131 Decasper et al. Nov 2009 B2
7617384 Coon et al. Nov 2009 B1
7634637 Lindholm et al. Dec 2009 B1
7647483 Bates et al. Jan 2010 B2
7680988 Nickolls et al. Mar 2010 B1
7681019 Favor Mar 2010 B1
7707397 Henry et al. Apr 2010 B2
7707578 Zedlewski et al. Apr 2010 B1
7711929 Burky et al. May 2010 B2
7716460 Stempel et al. May 2010 B2
7757065 Jourdan et al. Jul 2010 B1
7770161 Mitran et al. Aug 2010 B2
7783868 Ukai Aug 2010 B2
7783869 Grandou et al. Aug 2010 B2
7809925 Mejdrich et al. Oct 2010 B2
7848129 Deshpande et al. Dec 2010 B1
7856530 Mu Dec 2010 B1
7861060 Nickolls et al. Dec 2010 B1
7877582 Gschwind et al. Jan 2011 B2
7913058 Rozas et al. Mar 2011 B2
7925869 Kelsey et al. Apr 2011 B2
8044951 Brown et al. Oct 2011 B1
8046775 Kang et al. Oct 2011 B2
8082420 Comparan et al. Dec 2011 B2
8108545 Arimilli et al. Jan 2012 B2
8145844 Bruce Mar 2012 B2
8145880 Cismas et al. Mar 2012 B1
8145882 Kishore et al. Mar 2012 B1
8200949 Tarjan et al. Jun 2012 B1
8219996 Morris Jul 2012 B1
8230423 Frigo et al. Jul 2012 B2
8239656 Rozas et al. Aug 2012 B2
8301847 Dantzig et al. Oct 2012 B2
8316435 Varadhan et al. Nov 2012 B1
8327115 Abdallah Dec 2012 B2
8438366 Akizuki et al. May 2013 B2
8522253 Rozas et al. Aug 2013 B1
8539486 Cain, III et al. Sep 2013 B2
8645965 Zimmer et al. Feb 2014 B2
8756329 Reynolds et al. Jun 2014 B2
8868838 Glasco et al. Oct 2014 B1
8930674 Avudaiyappan et al. Jan 2015 B2
9047178 Talagala et al. Jun 2015 B2
9135003 Suh et al. Sep 2015 B2
9811342 Abdallah et al. Nov 2017 B2
9811377 Abdallah et al. Nov 2017 B2
9823930 Abdallah et al. Nov 2017 B2
20010016901 Topham Aug 2001 A1
20010032303 Pechanek et al. Oct 2001 A1
20010049782 Hsu et al. Dec 2001 A1
20020029308 Babaian et al. Mar 2002 A1
20020062435 Nemirovsky et al. May 2002 A1
20020069326 Richardson et al. Jun 2002 A1
20020082824 Neiger et al. Jun 2002 A1
20020083312 Sinharoy Jun 2002 A1
20020099913 Steely et al. Jul 2002 A1
20020126657 Frouin et al. Sep 2002 A1
20020129085 Kubala et al. Sep 2002 A1
20020174321 John Nov 2002 A1
20020188833 Henry et al. Dec 2002 A1
20030035422 Hill Feb 2003 A1
20030065887 Maiyuran et al. Apr 2003 A1
20030088752 Harman May 2003 A1
20030093776 Hilton May 2003 A1
20030101322 Gardner May 2003 A1
20030101444 Wu et al. May 2003 A1
20030126408 Vajapeyam et al. Jul 2003 A1
20030131335 Hamlin Jul 2003 A1
20030149862 Kadambi Aug 2003 A1
20030163642 Borkenhagen et al. Aug 2003 A1
20030169626 Burk et al. Sep 2003 A1
20030200396 Musumeci Oct 2003 A1
20030200412 Peinado et al. Oct 2003 A1
20030202530 Jenkins et al. Oct 2003 A1
20030225938 Glasco et al. Dec 2003 A1
20030226001 Moyer et al. Dec 2003 A1
20030233394 Rudd et al. Dec 2003 A1
20040034762 Kacevas Feb 2004 A1
20040044850 George et al. Mar 2004 A1
20040064668 Kjos et al. Apr 2004 A1
20040073909 Arimilli et al. Apr 2004 A1
20040078538 Dutt et al. Apr 2004 A1
20040093483 Nguyen et al. May 2004 A1
20040098567 Hansen et al. May 2004 A1
20040103251 Alsup May 2004 A1
20040117593 Uhlig et al. Jun 2004 A1
20040117594 Vanderspek Jun 2004 A1
20040122887 Macy Jun 2004 A1
20040138857 Souza et al. Jul 2004 A1
20040139441 Kaburaki et al. Jul 2004 A1
20040143727 McDonald Jul 2004 A1
20040158822 Sandham et al. Aug 2004 A1
20040172523 Merchant et al. Sep 2004 A1
20040187123 Tremblay et al. Sep 2004 A1
20040193857 Miller et al. Sep 2004 A1
20040202158 Takeno et al. Oct 2004 A1
20040205296 Bearden Oct 2004 A1
20040215886 Cargnoni et al. Oct 2004 A1
20040216105 Burky et al. Oct 2004 A1
20040216120 Burky et al. Oct 2004 A1
20040225872 Bonanno et al. Nov 2004 A1
20050005085 Miyanaga Jan 2005 A1
20050027961 Zhang Feb 2005 A1
20050044547 Gipp Feb 2005 A1
20050055504 Hass et al. Mar 2005 A1
20050060457 Olukotun Mar 2005 A1
20050066131 Biles et al. Mar 2005 A1
20050108480 Correale et al. May 2005 A1
20050108715 Kanai et al. May 2005 A1
20050114603 Buti et al. May 2005 A1
20050120191 Akkary et al. Jun 2005 A1
20050120194 Kissell Jun 2005 A1
20050132145 Dybsetter et al. Jun 2005 A1
20050154867 Dewitt et al. Jul 2005 A1
20050204118 Jen et al. Sep 2005 A1
20050216920 Tewari et al. Sep 2005 A1
20050251639 Vishin et al. Nov 2005 A1
20050251649 Yamazaki Nov 2005 A1
20050262270 Latorre et al. Nov 2005 A1
20050289299 Nunamaker et al. Dec 2005 A1
20050289530 Robison Dec 2005 A1
20060004964 Conti et al. Jan 2006 A1
20060026381 Doi et al. Feb 2006 A1
20060026408 Morris et al. Feb 2006 A1
20060036516 Glebe Feb 2006 A1
20060080380 Aizu et al. Apr 2006 A1
20060094446 Duan May 2006 A1
20060095720 Biles et al. May 2006 A1
20060143390 Kottapalli Jun 2006 A1
20060161421 Kissell Jul 2006 A1
20060161921 Kissell Jul 2006 A1
20060179257 Chu et al. Aug 2006 A1
20060179281 Jensen et al. Aug 2006 A1
20060179289 Floyd et al. Aug 2006 A1
20060190707 McIlvaine et al. Aug 2006 A1
20060212687 Chen et al. Sep 2006 A1
20060230243 Cochran et al. Oct 2006 A1
20060230253 Codrescu et al. Oct 2006 A1
20060230409 Frigo et al. Oct 2006 A1
20060236074 Williamson et al. Oct 2006 A1
20060236080 Doing et al. Oct 2006 A1
20060242365 Ali et al. Oct 2006 A1
20060242384 Ahmed et al. Oct 2006 A1
20060256641 Johnstone Nov 2006 A1
20060277365 Pong Dec 2006 A1
20060282839 Hankins et al. Dec 2006 A1
20070006231 Wang et al. Jan 2007 A1
20070074005 Abernathy et al. Mar 2007 A1
20070198665 De et al. Aug 2007 A1
20070214343 Lindholm et al. Sep 2007 A1
20070226722 Chou Sep 2007 A1
20070262270 Huang et al. Nov 2007 A1
20080016507 Thomas et al. Jan 2008 A1
20080040724 Kang et al. Feb 2008 A1
20080046666 Termaine Feb 2008 A1
20080052432 Wilson et al. Feb 2008 A1
20080077813 Keller et al. Mar 2008 A1
20080091880 Vishin Apr 2008 A1
20080104598 Chang May 2008 A1
20080109611 Liu et al. May 2008 A1
20080126643 Higuchi May 2008 A1
20080126771 Chen et al. May 2008 A1
20080148237 Jiang et al. Jun 2008 A1
20080184211 Nickolls et al. Jul 2008 A1
20080195844 Shen et al. Aug 2008 A1
20080215865 Hino et al. Sep 2008 A1
20080225987 Fazzi et al. Sep 2008 A1
20080235500 Davis et al. Sep 2008 A1
20080250227 Linderman et al. Oct 2008 A1
20080250232 Nakashima Oct 2008 A1
20080256278 Thomas et al. Oct 2008 A1
20080256330 Wang et al. Oct 2008 A1
20080270758 Ozer et al. Oct 2008 A1
20080270774 Singh et al. Oct 2008 A1
20080282037 Kusachi et al. Nov 2008 A1
20080320476 Wingard et al. Dec 2008 A1
20090019264 Correale, Jr. et al. Jan 2009 A1
20090031104 Vorbach et al. Jan 2009 A1
20090070554 Wang et al. Mar 2009 A1
20090113170 Abdallah Apr 2009 A1
20090119457 Latorre et al. May 2009 A1
20090138659 Lauterbach May 2009 A1
20090138670 Mutlu et al. May 2009 A1
20090150647 Mejdrich et al. Jun 2009 A1
20090150890 Yourst Jun 2009 A1
20090157980 Bruce Jun 2009 A1
20090158017 Mutlu et al. Jun 2009 A1
20090164733 Kim et al. Jun 2009 A1
20090164766 Suggs et al. Jun 2009 A1
20090165007 Aghajanyan Jun 2009 A1
20090172344 Grochowski et al. Jul 2009 A1
20090240919 Alexander et al. Sep 2009 A1
20090241084 Malley et al. Sep 2009 A1
20090249026 Smelyanskiy et al. Oct 2009 A1
20090251476 Jiao et al. Oct 2009 A1
20090282101 Lim et al. Nov 2009 A1
20090287912 Sendag Nov 2009 A1
20090307450 Lee Dec 2009 A1
20090313462 Emma et al. Dec 2009 A1
20090328053 Dice Dec 2009 A1
20100058033 Abernathy et al. Mar 2010 A1
20100064121 Alexander et al. Mar 2010 A1
20100082912 Lesartre et al. Apr 2010 A1
20100088443 Riocreux et al. Apr 2010 A1
20100100690 Rajamani et al. Apr 2010 A1
20100100704 Hill et al. Apr 2010 A1
20100100707 Mejdrich et al. Apr 2010 A1
20100115167 Tardieux et al. May 2010 A1
20100115244 Jensen et al. May 2010 A1
20100138607 Hughes et al. Jun 2010 A1
20100154042 Miyamoto et al. Jun 2010 A1
20100161948 Abdallah Jun 2010 A1
20100169578 Nychka et al. Jul 2010 A1
20100169611 Chou et al. Jul 2010 A1
20100205603 Merten et al. Aug 2010 A1
20100211746 Tsukishiro Aug 2010 A1
20100280996 Gross, IV et al. Nov 2010 A1
20100286976 Gao et al. Nov 2010 A1
20100299671 Kinsey Nov 2010 A1
20100306503 Henry et al. Dec 2010 A1
20100325394 Golla et al. Dec 2010 A1
20100332805 Blasco et al. Dec 2010 A1
20110010521 Wang et al. Jan 2011 A1
20110055479 West et al. Mar 2011 A1
20110067016 Mizrachi et al. Mar 2011 A1
20110082980 Gschwind et al. Apr 2011 A1
20110082983 Koktan Apr 2011 A1
20110093857 Sydow et al. Apr 2011 A1
20110119660 Tanaka May 2011 A1
20110153955 Herrenschmidt et al. Jun 2011 A1
20110225588 Pollock et al. Sep 2011 A1
20120005462 Hall et al. Jan 2012 A1
20120023318 Xing et al. Jan 2012 A1
20120042105 Maeda et al. Feb 2012 A1
20120042126 Krick et al. Feb 2012 A1
20120066483 Boury et al. Mar 2012 A1
20120089812 Smith Apr 2012 A1
20120096204 Auerbach et al. Apr 2012 A1
20120198209 Abdallah et al. Aug 2012 A1
20120246450 Abdallah Sep 2012 A1
20120246657 Abdallah Sep 2012 A1
20120278593 Clark et al. Nov 2012 A1
20130019047 Podvalny et al. Jan 2013 A1
20130036296 Hickey et al. Feb 2013 A1
20130046934 Nychka et al. Feb 2013 A1
20130086417 Sivaramakrishnan et al. Apr 2013 A1
20130097369 Talagala et al. Apr 2013 A1
20130238874 Avudaiyappan et al. Sep 2013 A1
20130283286 Lee et al. Oct 2013 A1
20130304991 Boettcher et al. Nov 2013 A1
20130311759 Abdallah et al. Nov 2013 A1
20130339671 Williams, III et al. Dec 2013 A1
20130346699 Walker Dec 2013 A1
20140032844 Avudaiyappan et al. Jan 2014 A1
20140032845 Avudaiyappan et al. Jan 2014 A1
20140032856 Avudaiyappan Jan 2014 A1
20140075168 Abdallah Mar 2014 A1
20140108730 Avudaiyappan et al. Apr 2014 A1
20140123145 Barrow-Williams et al. May 2014 A1
20140156947 Avudaiyappan Jun 2014 A1
20140181833 Bird et al. Jun 2014 A1
20140281242 Abdallah et al. Sep 2014 A1
20140281411 Abdallah Sep 2014 A1
20140281412 Abdallah Sep 2014 A1
20140281416 Abdallah Sep 2014 A1
20140281426 Abdallah et al. Sep 2014 A1
20140281427 Abdallah Sep 2014 A1
20140281428 Abdallah et al. Sep 2014 A1
20140281436 Abdallah Sep 2014 A1
20140282592 Abdallah Sep 2014 A1
20140282601 Abdallah Sep 2014 A1
20140317387 Abdallah Oct 2014 A1
20140344554 Abdallah Nov 2014 A1
20140373022 Chan et al. Dec 2014 A1
20150039859 Abdallah Feb 2015 A1
20150046683 Abdallah Feb 2015 A1
20150046686 Abdallah Feb 2015 A1
20150186144 Abdallah Jul 2015 A1
20160041908 Avudaiyappan Feb 2016 A1
20160041913 Avudaiyappan Feb 2016 A1
20160041930 Avudaiyappan Feb 2016 A1
20160154653 Abdallah Jun 2016 A1
20160210145 Abdallah Jul 2016 A1
20160210176 Abdallah Jul 2016 A1
20160371188 Abdallah Dec 2016 A1
Foreign Referenced Citations (59)
Number Date Country
1214666 Apr 1999 CN
1305150 Jul 2001 CN
1451115 Oct 2003 CN
1214666 Aug 2005 CN
1713137 Dec 2005 CN
1774709 May 2006 CN
1841314 Oct 2006 CN
1841332 Oct 2006 CN
1848095 Oct 2006 CN
1881223 Dec 2006 CN
101114218 Jan 2008 CN
101151594 Mar 2008 CN
101241428 Aug 2008 CN
101344840 Jan 2009 CN
101449256 Jun 2009 CN
101582025 Nov 2009 CN
101627365 Jan 2010 CN
101916180 Dec 2010 CN
102105864 Jun 2011 CN
0596636 May 1994 EP
0706133 Apr 1996 EP
2616928 Jul 2013 EP
2343270 May 2000 GB
2000330790 Nov 2000 JP
20010050794 Jun 2001 KR
20010053622 Jun 2001 KR
20100003309 Jan 2010 KR
200707284 Mar 1995 TW
539996 Jul 2003 TW
544626 Aug 2003 TW
200401187 Jan 2004 TW
200405201 Apr 2004 TW
591530 Jun 2004 TW
200422949 Nov 2004 TW
I233545 Jun 2005 TW
I281121 May 2007 TW
200813766 Mar 2008 TW
200844853 Nov 2008 TW
200941339 Oct 2009 TW
I315488 Oct 2009 TW
200949690 Dec 2009 TW
I329437 Aug 2010 TW
I331282 Oct 2010 TW
I352288 Nov 2011 TW
201227520 Jul 2012 TW
201241744 Oct 2012 TW
201305819 Feb 2013 TW
9750031 Dec 1997 WO
9919793 Apr 1999 WO
0125921 Apr 2001 WO
2004114128 Dec 2004 WO
2007027671 Mar 2007 WO
2008021434 Feb 2008 WO
WO2008061154 May 2008 WO
2009012296 Jan 2009 WO
2009101563 Aug 2009 WO
2010049585 May 2010 WO
2012135031 Oct 2012 WO
2012135050 Oct 2012 WO
Non-Patent Literature Citations (385)
Entry
Alimohammad et al., Modeling of FPGA Local/Global Interconnect Resources and Derivation of Minimal Test Configuration, 2002, IEEE, Proceedings of the 17th IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems, DFT'02, pp. 1-9.
Abandonment from U.S. Appl. No. 13/824,013, mailed Mar. 3, 2015, 1 page.
Advisory Action from U.S. Appl. No. 12/296,919, dated Aug. 26, 2011, 3 pages.
Advisory Action from U.S. Appl. No. 14/214,280, dated May 15, 2017, 3 pages.
Barham P., et al., “Xen and the Art of Virtualization,” Proceedings of the ACM Symposium on Operating Systems Principles, XP002298786, Oct. 2003, pp. 164-177.
Communication pursuant to Article 94(3) EPC for European Application No. 070864410, dated Mar. 16, 2012, 4 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 070864410, dated Nov. 14, 2012, 4 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 07811845, dated Apr. 16, 2014, 5 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 07811845, dated Dec. 21, 2015, 3 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 07811845, dated Feb. 3, 2014, 5 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 07811845, dated Feb. 16, 2011, 6 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 07811845, dated Jan. 27, 2012, 7 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 12150513, dated Apr. 16, 2013, 5 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 12150513, dated Dec. 21, 2015, 4 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 12150513, dated May 9, 2014, 8 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 12174228, dated Jun. 11, 2013, 3 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 12764627, dated Oct. 4, 2016, 4 pages.
Communication pursuant to Rules 161(2) and 162 EPC for Application No. 12763717, dated Nov. 22, 2013, 3 pages.
Communication pursuant to Rules 70(2) and 70a(2) EPC for Application No. 12763717, dated Oct. 10, 2014, 1 page.
Communication pursuant to Rules 70(2) and 70a(2) EPC for European Application No. 11876314.3, dated Jul. 1, 2016, 1 page.
Cooperman G.,“Cache Basics,” 2003, pp. 1-3, URL: http://www.ccs.neu.edu/course/com3200/parent/NOTES/cache-basics.html.
Decision to Grant a Patent for European Application No. 07811845, dated Jun. 16, 2016, 2 pages.
Decision to Grant a Patent for European Application No. 12150513, dated Jun. 16, 2016, 2 pages.
Decision to Grant a Patent for European Application No. 12174228, dated Dec. 13, 2013, 5 pages.
Decision to Grant a Patent for Korean Application No. KR1020137027843, dated Apr. 29, 2016, 2 pages.
Decision to Grant a Patent for Korean Patent Application No. 20137027842, dated Mar. 31, 2016, 2 pages.
Decision to grant a patent from foreign counterpart Korean Patent Application No. 10-2014-7016774, dated Jul. 25, 2016, 2 pages.
Decision to Grant a Patent from foreign counterpart Korean Patent Application No. 20137033565, dated Apr. 29, 2016, 2 pages.
Decision to Grant a Patent from foreign counterpart Korean Patent Application No. 20137033566, dated Apr. 29, 2016, 2 pages.
Decision to Grant a Patent from foreign counterpart Korean Patent Application No. KR1020157029107, dated Apr. 25, 2017, 2 pages.
Examination Report for European Application No. 12763717, dated Nov. 28, 2016, 5 pages.
Extended European Search Report for Application No. 07811845.2, dated Nov. 2, 2009, 7 pages.
Extended European Search Report for Application No. 07864410, dated Feb. 19, 2010, 8 pages.
Extended European Search Report for Application No. 11876314.3, dated Jun. 14, 2016, 6 pages.
Extended European Search Report for Application No. 12150513, dated Jun. 19, 2012, 8 pages.
Extended European Search Report for Application No. 12174228, dated Oct. 16, 2012, 4 pages.
Extended European Search Report for Application No. 12174229, dated Jul. 4, 2014, 10 pages.
Extended European Search Report for Application No. 12788989, dated May 12, 2016, 9 pages.
Extended European Search Report for Application 12789667, dated Feb. 26, 2016, 7 pages.
Extended European Search Report for Application No. 14769411.1, dated Apr. 5, 2017, 8 pages.
Extended European Search Report for Application No. 14769450.9, dated Feb. 21, 2017, 16 pages.
Extended European Search Report for Application No. 14770976.0, dated Jul. 3, 2017, 9 pages.
Extended European Search Report for Application No. 16196777.3, dated Mar. 20, 2017, 6 pages.
Extended European Search Report for Application No. EP11826042, dated Jan. 24, 2014, 6 pages.
Extended European Search Report for Application No. EP11876128, dated Jun. 21, 2016, 8 pages.
Extended European Search Report for Application No. EP11876130, dated Jun. 1, 2016, 7 pages.
Extended European Search Report for Application No. EP12763717, dated Sep. 24, 2014, 5 pages.
Extended European Search Report for Application No. EP12764627, dated Jul. 10, 2014, 5 pages.
Extended European Search Report for Application No. EP12764838, dated Jul. 10, 2014, 5 pages.
Final Office Action from U.S. Appl. No. 12/296,919, dated Jun. 14, 2011, 7 pages.
Extended European Search Report for Application No. 12789667, dated Feb. 26, 2016, 7 pages.
Extended European Search Report for Application No. 16196777.3, dated March 20, 2017, 6 pages.
Extended European Search Report for Application No. 12764838, dated Jul. 10, 2014, 5 pages.
Final Office Action from U.S. Appl. No. 12/296,919, dated Oct. 22, 2010, 7 pages.
Final Office Action from U.S. App. No. 12/514,303, dated Jan. 24, 2013, 11 pages.
Final Office Action from U.S. Appl. No. 13/428,438, dated Dec. 24, 2014, 17 pages.
Final Office Action from U.S. Appl. No. 13/428,440, dated Dec. 24, 2014, 19 pages.
Final Office Action from U.S. Appl. No. 13/428,452, dated Dec. 24, 2014, 20 pages.
Final Office Action from U.S. Appl. No. 13/475,708, dated Jun. 9, 2016, 35 pages.
Final Office Action from U.S. Appl. No. 13/475,708, dated May 8, 2015, 23 pages.
Final Office Action from U.S. Appl. No. 13/475,739, dated Feb. 4, 2015, 12 pages.
Final Office Action from U.S. Appl. No. 13/475,739, dated Nov. 23, 2015, 28 pages.
Final Office Action from U.S. Appl. No. 14/194,589, dated Apr. 19, 2016, 7 pages.
Final Office Action from U.S. Appl. No. 14/212,203, dated Dec. 13, 2016, 20 pages.
Final Office Action from U.S. Appl. No. 14/212,533, dated Jan. 4, 2017, 27 pages.
Final Office Action from U.S. Appl. No. 14/213,115, dated Feb. 3, 2015, 11 pages.
Final Office Action from U.S. Appl. No. 14/213,115, dated Mar. 7, 2016, 18 pages.
Final Office Action from U.S. Appl. No. 14/213,135, dated Oct. 26, 2015, 20 pages.
Final Office Action from U.S. Appl. No. 14/213,218, dated Jul 6, 2016, 24 pages.
Final Office Action from U.S. Appl. No. 14/213,218, dated Jul. 22, 2015, 16 pages.
Final Office Action from U.S. Appl. No. 14/213,692, dated Jan. 20, 2016, 18 pages.
Final Office Action from U.S. Appl. No. 14/213,730, dated May 11, 2016, 14 pages.
Final Office Action from U.S. Appl. No. 14/213,854, dated Nov. 9, 2015, 19 pages.
Final Office Action from U.S. Appl. No. 14/214,045, dated Aug. 29, 2016, 14 pages.
Final Office Action from U.S. Appl. No. 14/214,176, dated Aug. 29, 2016, 17 pages.
Final Office Action from U.S. Appl. No. 14/214,280, dated Mar. 6, 2017, 12 pages.
Final Office Action from U.S. Appl. No. 14/214,280, dated Mar. 11, 2016, 18 pages.
Final Office Action from U.S. Appl. No. 14/214,280, dated Oct. 24, 2016, 20 pages.
Final Office Action from U.S. Appl. No. 14/216,493, dated Aug. 30, 2016, 21 pages.
Final Office Action from U.S. Appl. No. 14/216,493, dated May 22, 2017, 17 pages.
Final Office Action from U.S. Appl. No. 14/216,859, dated Jun. 9, 2016, 16 pages.
Final Office Action from U.S. Appl. No. 14/360,282, dated Feb. 16, 2017, 10 pages.
Final Office Action from U.S. Appl. No. 14/360,284, dated Mar. 1, 2017, 10 pages.
First Office Action and Search report from foreign counterpart China Patent Application No. 201180076248.0, dated Mar. 17, 2016, 25 pages.
First Office Action and Search Report from foreign counterpart China Patent Application No. 201480024463.X, dated Apr. 1, 2017, 31 pages. (Translation available only for office action).
First Office Action and Search report from foreign counterpart Chinese Patent Application No. 201180076244.2, dated Mar. 22, 2016, 18 pages (Translation available only for Office Action).
First Office Action from foreign counterpart China Patent Application No. 201180076245.7, dated Mar. 21, 2016, 10 pages.
First Office Action from foreign counterpart China Patent Application No. 201280024012.7, dated May 30, 2016, 21 pages.
First Office Action from foreign counterpart China Patent Application No. CN201280034725, dated Oct. 26, 2015, 26 pages.
First Office Action from foreign counterpart China Patent Application No. CN201280034739, dated Nov. 3, 2015, 39 pages.
First Office Action from foreign counterpart China Patent Application No. CN201310589048, dated Feb. 2, 2016, 8 pages.
First Office Action from foreign counterpart Chinese Patent Application No. 01280024054.0, dated May 30, 2016, 24 pages.
First Office Action from foreign counterpart Chinese patent application No. 201280024095, dated May 26, 2016, 32 pages.
Franklin et al., “The Expandable Split Window Paradigm for Exploiting Fine-Grain Parallelism,” ACM Sigarch Computer Architecture News, ACM Special Interest Group on Computer Architecture, vol. 20 (2), 1992, 10 pages.
Garmany J., “The Power of Indexing,” archieved on Mar. 9, 2009, 7 pages.
Grant of Patent for Korean Application No. 10-2014-7016763, dated Oct. 31, 2016, 2 pages.
Grant of Patent for Korean Application No. 10-2015-7028745, dated Nov. 30, 2016, 2 pages.
Intention to Grant a patent for European Application No. 07811845, dated Mar. 31, 2016, 58 pages.
Intention to Grant a patent for European Application No. 12150513, dated Mar. 15, 2016, 59 pages.
International Preliminary Report on Patentability and for Application No. PCT/US2007/084710, dated May 19, 2009, 4 pages.
International Preliminary Report on Patentability and Written Opinion for Application No. PCT/US20071066536, dated Oct. 14, 2008, 6 pages.
International Preliminary Report on Patentability and Written Opinion for Application No. PCT/US2012/038711, dated Nov. 20, 2013, 5 pages.
International Preliminary Report on Patentability and Written Opinion for Application No. PCT/US20121038713, dated Nov. 20, 2013, 5 pages.
International Preliminary Report on Patentability for Application No. PCT/US2011/051992, dated Mar. 28, 2013, 8 pages.
International Preliminary Report on Patentability for Application No. PCT/US2011/061940, dated Jun. 5, 2014, 6 pages.
International Preliminary Report on Patentability for Application No. PCT/US2011/061953, dated Jun. 5, 2014, 7 pages.
International Preliminary Report on Patentability for Application No. PCT/US2011/061957, dated Jun. 5, 2014, 7 pages.
International Preliminary Report on Patentability for Application No. PCT/US2012/030383, dated Oct. 10, 2013, 6 pages.
International Preliminary Report on Patentability for Application No. PCT/US2012/030409, dated Oct. 10, 2013, 6 pages.
International Preliminary Report on Patentability for Application No. PCT/US2012/30360, dated Oct. 10, 2013, 6 pages.
International Preliminary Report on Patentability for Application No. PCT/US2014/024276, dated Sep. 24, 2015, 6 pages.
International Preliminary Report on Patentability for Application No. PCT/US2014/024608, dated Sep. 24, 2015, 8 pages.
International Preliminary Report on Patentability for Application No. PCT/US2014/024677, dated Sep. 24, 2015, 7 pages.
International Preliminary Report on Patentability for Application No. PCT/US2014/024722, dated Sep. 24, 2015, 6 pages.
International Preliminary Report on Patentability for Application No. PCT/US2014/024775, dated Sep. 24, 2015, 6 pages.
International Preliminary Report on Patentability for Application No. PCT/US2014/024828, dated Sep. 24, 2015, 8 pages.
International Search Report and Written Opinion for Application No. PCT/US2007/084710, dated May 22, 2008, 6 pages.
International Search Report and Written Opinion for Application No. PCT/US2011/051992, dated Mar. 28, 2012, 11 pages.
International Search Report and Written Opinion for Application No. PCT/US2011/061940, dated Jul. 20, 2012, 8 pages.
International Search Report and Written Opinion for Application No. PCT/US2011/061953, dated Jul. 24, 2012, 8 pages.
International Search Report and Written Opinion for Application No. PCT/US2011/061957, dated Jul. 20, 2012, 8 pages.
International Search Report and Written Opinion for Application No. PCT/US2012/030383, dated Oct. 25, 2012, 8 pages.
International Search Report and Written Opinion for Application No. PCT/US2012/030409, dated Oct. 12, 2012, 7 pages.
International Search Report and Written opinion for Application No. PCT/US2012/038711, dated Nov. 28, 2012, 7 pages.
International Search Report and Written Opinion for Application No. PCT/US2012/038713, dated Oct. 29, 2012, 7 pages.
International Search Report and Written Opinion for Application No. PCT/US2012/30360, dated Oct. 29, 2012, 7 pages.
International Search Report and Written Opinion for Application No. PCT/US2014/024276, dated Jul. 31, 2014, 7 pages.
International Search Report and Written Opinion for Application No. PCT/US2014/024608, dated Jul. 31, 2014, 9 pages.
International Search Report and Written Opinion for Application No. PCT/US2014/024677, dated Jun. 30, 2014, 9 pages.
International Search Report and Written Opinion for Application No. PCT/US2014/024722, dated Jun. 27, 2014, 7 pages.
International Search Report and Written Opinion for Application No. PCT/US2014/024775, dated Jun. 2, 2014, 7 pages.
International Search Report and Written Opinion for Application No. PCT/US2014/024828, dated Jul. 28, 2014, 9 pages.
International Search Report for Application No. PCT/US2007/066536, dated Jul. 30, 2008, 2 pages.
Jacobson et al., “Path-based Next Trace Prediction,” IEEE, 1997, pp. 14-23.
Kozyrakis et al., “A New Direction for Computer Architecture Research,” IEEE, Nov. 1, 1998, vol. 31 (11), pp. 24-32.
Mogul J.C., et al., “Potential Benefits of Delta Encoding and Data Compression for HTTP,” Oct. 1, 1997, ACM, SIGCOMM '97, pp. 181-194.
Nagarajan et al., “A Design Space Evaluation of Grid Processor Architectures,” 34th ACM/IEEE International Symposium, Piscataway, NJ, Dec. 1-5, 2001, pp. 40-51.
Nanda A.K., et al., “The Misprediction Recovery Cache,” International Journal of Parallel Programming, Plenum Publishing Corporation, 1998, vol. 26 (4), pp. 383-415.
Non-Final Office Action from U.S. Appl. No. 12/296,919, dated Apr. 7, 2011, 8 pages.
Non-Final Office Action from U.S. Appl. No. 12/296,919, dated Jun. 14, 2010, 7 pages.
Non-Final Office Action from U.S. Appl. No. 12/296,919, dated Mar. 7, 2012, 7 pages.
Non-Final Office Action from U.S. Appl. No. 12/514,303, dated Jun. 27, 2013, 7 pages.
Non-Final Office Action from U.S. Appl. No. 12/514,303, dated May 10, 2012, 9 pages.
Non-Final Office Action from U.S. Appl. No. 13/428,438, dated Apr. 24, 2014, 15 pages.
Non-Final Office Action from U.S. Appl. No. 13/428,438, dated May 1, 2015, 12 pages.
Non-Final Office Action from U.S. Appl. No. 13/428,440, dated Jun. 18, 2014, 16 pages.
Non-Final Office Action from U.S. Appl. No. 13/428,440, dated May 4, 2015, 13 pages.
Non-Final Office Action from U.S. Appl. No. 13/428,452, dated Apr. 23, 2015, 11 pages.
Non-Final Office Action from U.S. Appl. No. 13/428,452, dated Apr. 28, 2014, 21 pages.
Non-Final Office Action from U.S. Appl. No. 13/475,708, dated Feb. 11, 2015, 27 pages.
Non-Final Office Action from U.S. Appl. No. 13/475,708, dated Feb. 12, 2016, 37 pages.
Non-Final Office Action from U.S. Appl. No. 13/475,739, dated May 21, 2015, 14 pages.
Non-Final Office Action from U.S. Appl. No. 13/475,739, dated Sep. 2, 2014, 15 pages.
Notice of Allowance from U.S. Appl. No. 13/428,452, dated Oct. 21, 2015, 9 pages.
Notice of Allowance from U.S. Appl. No 13/475,708, dated Jun. 16, 2017, 51 pages.
Notice of Allowance from U.S. Appl. No. 13/475,708, dated Jun. 30, 2017, 53 pages.
Notice of Allowance from U.S. Appl. No. 13/475,708, dated Mar. 17, 2017, 55 pages.
Notice of Allowance from U.S. Appl. No. 13/475,708, dated Oct. 13, 2016, 17 pages.
Notice of Allowance from U.S. Appl. No. 13/475,739, dated Aug. 3, 2016, 11 pages.
Notice of Allowance from U.S. Appl. No. 13/475,739, dated Mar. 25, 2016, 25 pages.
Notice of Allowance from U.S. Appl. No. 13/691,609, dated Aug. 6, 2014, 11 pages.
Notice of Allowance from U.S. Appl. No. 13/691,609, dated Feb. 23, 2015, 16 pages.
Notice of Allowance from U.S. Appl. No. 14/194,589, dated Jul. 27, 2016, 7 pages.
Notice of Allowance from U.S. Appl. No. 14/213,115, dated Jun. 27, 2016, 9 pages.
Notice of Allowance from U.S. Appl. No. 14/213,115, dated Oct. 3, 2016, 20 pages.
Notice of Allowance from U.S. Appl. No. 14/213,135, dated Oct. 17, 2016, 17 pages.
Notice of Allowance from U.S. Appl. No. 14/213,218, dated Jun. 16, 2017, 89 pages.
Notice of Allowance from U.S. Appl. No. 14/213,692, dated Dec. 23, 2016, 19 pages.
Notice of Allowance from U.S. Appl. No. 14/213,730, dated Oct. 27, 2016, 16 pages.
Notice of Allowance from U.S. Appl. No. 14/213,854, dated Oct. 7, 2016, 19 pages.
Notice of Allowance from U.S. Appl. No. 14/214,045, dated Apr. 18, 2017, 88 pages.
Notice of Allowance from U.S. Appl. No. 14/214,176, dated May 10, 2017, 88 pages.
Notice of Allowance from U.S. Appl. No. 14/214,280, dated Jun. 29, 2017, 86 pages.
Notice of Allowance from U.S. Appl. No. 14/215,633, dated Mar. 23, 2017, 17 pages.
Notice of Allowance from U.S. Appl. No. 14/215,633, dated May 23, 2016, 9 pages.
Notice of Allowance from U.S. Appl. No. 14/215,633, dated Sep. 29, 2016, 13 pages.
Notice of Allowance from U.S. Appl. No. 14/215,633, dated Jun. 30, 2017, 83 pages.
Notice of Allowance from U.S. Appl. No. 14/216,859, dated Jan. 24, 2017, 17 pages.
Notice of Allowance from U.S. Appl. No. 14/360,284, dated Jun. 14, 2017, 100 pages.
Notice of Allowance from U.S. Appl. No. 15/082,867, dated Jul. 7, 2017, 98 pages.
Notice of Final Rejection from foreign counterpart Korean Patent Application No. 10-2015-7029262, dated May 23, 2017, 7 pages.
Notice of Preliminary Rejection from foreign counterpart Korean Patent Application No. 10-2016-7017150, dated Apr. 20, 2017, 5 pages.
Notification of Reason for Refusal from Foreign Counterpart Korean Patent Application No. 10-2013-7027842, dated Sep. 18, 2015, 7 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. 10-2014-7016774, dated Jan. 28, 2016, 4 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. 10-2015-7029262, dated Oct. 17, 2016, 12 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. 10-2017-7002473, dated May 26, 2017, 7 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. 20137027841, dated Sep. 18, 2015, 10 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. 20137033565, dated Sep. 30, 2015, 6 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. 20137033566, dated Sep. 30, 2015, 9 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. KR1020137027843, dated Sep. 30, 2015, 8 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. KR1020157029107, dated Oct. 13, 2016, 11 pages.
Notification of Reason for Refusal from Korean Application No. 10-2014-7016763, dated Apr. 29, 2016, 11 pages.
Notification of Reason for Refusal from Korean Application No. 10-2015-7028745, dated May 23, 2016, 8 pages.
Notification to Grant Patent Right for Invention from foreign counterpart China Patent Application No. 201180076245.7, dated Nov. 2, 2016, 3 pages.
Notification to Grant Patent Right for Invention from foreign counterpart China Patent Application No. CN201280034725, dated Aug. 12, 2016, 3 pages.
Notification to Grant Patent Right for Invention from foreign counterpart China Patent Application No. CN201310589048, dated May 5, 2016, 3 pages.
Nuth et al., “The Named-State Register File: Implementation and Performance,” High-Performance Computer Architecture, First IEEE Symposium, 1995, 10 pages.
Office Action and Search Report from foreign counterpart Taiwan Patent Application No. 101117854, dated Mar. 30, 2017, 7 pages.
Office Action from foreign counterpart Chinese Patent Application No. 200780046679, dated May 21, 2013, 14 pages.
Office Action from foreign counterpart Chinese patent application No. 201280024012, dated Feb. 3, 2017, 20 pages.
Office Action from foreign counterpart Chinese patent application No. 201280024095, dated Feb. 4, 2017, 31 pages.
Office Action from foreign counterpart European Patent Application No. EP12764838, dated Oct. 4, 2016, 4 pages.
Office Action from foreign counterpart Taiwan Patent Application No. 20140109479, dated Nov. 28, 2016, 7 pages.
Partial European Search Report for Application No. 12174229, dated Oct. 10, 2012, 7 pages.
Partial Supplementary European Search Report for Application No. EP14770976.0, dated Mar. 24, 2017, 7 pages.
Partial SupplementaryEuropean Search Report for Application No. 14769450.9, dated Oct. 11, 2016, 8 pages.
Restriction Requirement from U.S. Appl. No. 12/296,919, dated Feb. 8, 2011, 4 pages.
Restriction Requirement from U.S. Appl. No. 12/514,303, dated Oct. 15, 2012, 4 pages.
Restriction Requirement from U.S. Appl. No. 14/360,282, dated Jul. 28, 2016, 4 pages.
Rixner et al., “Register Organization for Media Processing,” IEEE, 2000.
Rotenberg E., et al.,“Trace Cache: a Low Latency Approach to High Bandwidth Instruction Fetching,” Apr. 11, 1996, 48 pages.
Santos et al., “The 2D-VLIW Architecture,” Mar. 2006, 13 pages.
Sassone et al., “Dynamic Strands: Collapsing Speculative Dependence Chains for Reducing Pipeline Communication,” Microarchitecture, IEEE, 37th International Symposium on Portland, USA Dec. 2004, pp. 7-17, Piscataway, NJ, USA.
Search Report for Chinese Application No. CN201280024012, dated May 19, 2016, 2 pages.
Second Office Action from foreign counterpart China Patent Application No. 201180076248.0, dated Oct. 20, 2016, 25 pages.
Second Office Action from foreign counterpart China Patent Application No. CN201280034725, dated Apr. 14, 2016, 8 pages.
Second Office Action from foreign counterpart China Patent Application No. CN201280034739, dated Jun. 23, 2016, 44 pages.
Second Office Action from foreign counterpart Chinese Patent Application No. 201280024054.0, dated Dec. 26, 2016, 11 pages.
Second Office Action with search report from foreign counterpart Chinese Patent Application No. 201180076244, dated Nov. 18, 2016, 21 pages (Translation available only for Office Action).
Shiliang Hu., et al., “An Approach for Implementing Efficient Superscalar CISC Processors,” High Performance Computer Architecture, 2006, Twelfth International Symposium on Austin, Texas Feb. 11-15, 2006, pp. 40-51.
Summons to attend Oral Proceedings for European Application No. 070864410, mailed Apr. 3, 2013, 3 pages.
Third Office Action and Search report from foreign counterpart China Patent Application No. 201180076248.0, dated May 2, 2017, 27 pages.
Third Office Action from foreign counterpart Chinese Patent Application No. 201180076244.2, dated May 2, 2017, 20 pages.
Third Office Action from foreign counterpart Chinese Patent Application No. 201280034739, dated Dec. 27, 2016, 18 pages.
Wallace S., et al.,“Multiple Branch and Block Prediction,” Third International symposium on High-Performance Computer Architecture, IEEE, Feb. 1997, pp. 94-103.
Written Opinion for Application No. PCT/US2007/066536, dated Jul. 30, 2008, 5 pages.
Ye J., et al.,“A New Recovery Mechanism in Superscalar Microprocessors by Recovering Critical Misprediction,” IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2011, vol. E94-A (12), pp. 2639-2648.
Yeh T., et al.,“Increasing the Instruction Fetch Rate Via Multiple Branch Prediction and a Branch Address Cache,” 7th International Conference on Supercomputing, ACM, 1993, pp. 67-76.
Non-Final Office Action from U.S. Appl. No. 13/691,609, dated Jan. 15, 2014, 5 pages.
Non-Final Office Action from U.S. Appl. No. 13/691,609, dated Sep. 5, 2013, 11 pages.
Non-Final Office Action from U.S. Appl. No. 14/194,589, dated Nov. 19, 2015, 12 pages.
Non-Final Office Action from U.S. Appl. No. 14/212,203, dated Mar. 24, 2017, 68 pages.
Non-Final Office Action from U.S. Appl. No. 14/212,203, dated Sep. 8, 2016, 52 pages.
Non-Final Office Action from U.S. Appl. No. 14/212,533, dated Apr. 20, 2017, 116 pages.
Non-Final Office Action from U.S. Appl. No. 14/212,533, dated Sep. 22, 2016, 52 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,115, dated Oct. 19, 2015, 24 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,115, dated Sep. 22, 2014, 19 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,135, dated May 14, 2015, 23 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,135, dated May 31, 2016, 14 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,218, dated Apr. 22, 2015, 22 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,218, dated Feb. 2, 2016, 17 pages.
Non-final Office Action from U.S. Appl. No. 14/213,692, dated Aug. 24, 2015, 30 pages.
Non-final Office Action from U.S. Appl. No. 14/213,692, dated Jun. 13, 2016, 17 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,730, dated Jan. 7, 2016, 27 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,854, dated Apr. 29, 2016, 13 pages.
Non-Final Office Action from U.S. Appl. No. 14/213,854, dated Jun. 19, 2015, 23 pages.
Non-Final Office Action from U.S. Appl. No. 14/214,045, dated Apr. 1, 2016, 61 pages.
Non-Final Office Action from U.S. Appl. No. 14/214,045, dated Dec. 19, 2016, 88 pages.
Non-Final Office Action from U.S. Appl. No. 14/214,176, dated Jan. 6, 2017, 36 pages.
Non-Final Office Action from U.S. Appl. No. 14/214,176, dated Mar. 25, 2016, 25 pages.
Non-Final Office Action from U.S. Appl. No. 14/214,280, dated Jan. 6, 2017, 14 pages.
Non-Final Office Action from U.S. Appl. No. 14/214,280, dated Jun. 16, 2016, 12 pages.
Non-Final Office Action from U.S. Appl. No. 14/214,280, dated Sep. 18, 2015, 18 pages.
Non-Final Office Action from U.S. Appl. No. 14/215,633, dated Oct. 22, 2015, 18 pages.
Non-final Office Action from U.S. Appl. No. 14/216,493, dated Apr. 4, 2016, 26 pages.
Non-Final Office Action from U.S. Appl. No. 14/216,493, dated Mar. 29, 2017, 18 pages.
Non-Final Office Action from U.S. Appl. No. 14/216,859, dated Jan. 28, 2016, 33 pages.
Non-Final Office Action from U.S. Appl. No. 14/360,280, dated Feb. 23, 2017, 34 pages.
Non-Final Office Action from U.S. Appl. No. 14/360,282, dated Jun. 22, 2017, 97 pages.
Non-Final Office Action from U.S. Appl. No. 14/360,282, dated Oct. 21, 2016, 13 pages.
Non-final Office Action from U.S. Appl. No. 14/360,284, dated Oct. 21, 2016, 32 pages.
Non-Final Office Action from U.S. Appl. No. 14/733,827, dated Apr. 28, 2017, 99 pages.
Non-Final Office Action from U.S. Appl. No. 15/219,063, dated May 30, 2017, 102 pages.
Non-Final Office Action from U.S. Appl. No. 15/257,593, dated Apr. 7, 2017, 37 pages.
Notice of Allowance from foreign counterpart Chinese Patent Application No. 200780046679, dated Feb. 6, 2017, 8 pages.
Notice of Allowance from foreign counterpart Korean Patent Application No. 20137027841, dated Mar. 31, 2016, 2 pages.
Notice of Allowance from U.S. Appl. No. 12/296,919, dated Jul. 27, 2012, 6 pages.
Notice of Allowance from U.S. Appl. No. 12/514,303, dated Oct. 25, 2013, 12 pages.
Notice of Allowance from U.S. Appl. No. 13/428,438, dated Apr. 13, 2017, 62 pages.
Notice of Allowance from U.S. Appl. No. 13/428,438, dated Aug. 10, 2016, 9 pages.
Notice of Allowance from U.S. Appl. No. 13/428,438, dated Dec. 29, 2016, 9 pages.
Notice of Allowance from U.S. Appl. No. 13/428,438, dated Mar. 4, 2016, 14 pages.
Notice of Allowance from U.S. Appl. No. 13/428,438, dated Nov. 6, 2015, 9 pages.
Notice of Allowance from U.S. Appl. No. 13/428,440, dated Apr. 20, 2017, 46 pages.
Notice of Allowance from U.S. Appl. No. 13/428,440, dated Feb. 26, 2016, 10 pages.
Notice of Allowance from U.S. Appl. No. 13/428,440, dated Mar. 10, 2017, 52 pages.
Notice of Allowance from U.S. Appl. No. 13/428,440, dated Nov. 16, 2016, 9 pages.
Notice of Allowance from U.S. Appl. No. 13/428,440, dated Nov. 20, 2015, 9 pages.
Non-Final Office Action from U.S. Appl. No. 15/408,323, dated Oct. 9, 2018, 144 pages.
Non-Final Office Action from U.S. Appl. No. 15/853,323, dated Aug. 28, 2018, 115 pages.
Non-Final Office Action from U.S. Appl. No. 15/866,323, dated Oct. 1, 2018, 121 pages.
Notice of Allowance from U.S. Appl. No. 14/213,135, dated Oct. 3, 2018, 34 pages.
Notice of Allowance from U.S. Appl. No. 14/360,284, dated Oct. 12, 2018, 45 pages.
Notice of Allowance from U.S. Appl. No. 15/408,311, dated Aug. 28, 2018, 138 pages.
Notice of Allowance from U.S. Appl. No. 15/712,017, dated Oct. 3, 2018, 16 pages.
Notice of Allowance from U.S. Appl. No. 13/824,013, dated Sep. 19, 2018, 6 pages.
Notice of Allowance from U.S. Appl. No. 15/408,269, dated Sep. 24, 2018, 137 pages.
First Examination Report from foreign counterpart Indian Patent Application No. 51/KOLNP/2012, dated Jul. 30, 2018, 7 pages.
Communication pursuant to Article 94(3) EPC for Application No. 14770976.0, dated Mar. 16, 2018, 4 pages.
Corrected Notice of Allowance from U.S. Appl. No. 15/082,359, dated May 7, 2018, 12 pages.
Non-Final Office Action from U.S. Appl. No. 15/712,017, dated May 7, 2018, 127 pages.
Advisory Action from U.S. Appl. No. 14/360,282, dated Jan. 23, 2018, 2 pages.
Corrected Notice of Allowance from U.S. Appl. No. 13/475,708, dated Feb. 14, 2018, 27 pages.
Corrected Notice of Allowance from U.S. Appl. No. 15/357,943, dated Feb. 13, 2018, 4 pages.
Final Office Action from U.S. Appl. No. 15/082,359, dated Jan. 31, 2018, 22 pages.
Final Office Action from U.S. Appl. No. 15/354,857, dated Nov. 28, 2017, 23 pages.
First Office Action and Search Report from foreign counterpart Chinese Patent Application No. 201480024528.0, dated Jan. 26, 2018, 19 pages.
Fourth Office Action and Search report from foreign counterpart China Patent Application No. 201180076248.0, dated Nov. 9, 2017, 38 pages. (Translation available only for office action).
Non-Final Office Action from U.S. Appl. No. 13/824,013, dated Feb. 7, 2018, 141 pages.
Non-Final Office Action from U.S. Appl. No. 14/360,280, dated Dec. 14, 2017, 25 pages.
Notice of Allowance and Search Report from foreign counterpart Taiwan Patent Application No. 103109479, dated Nov. 30, 2017, 4 pages. (Translation available only for Search report).
Notice of Allowance from foreign counterpart Korean Patent Application No. 10-2017-7002379, dated Dec. 20, 2017, 3 pages.
Notice of Allowance from foreign counterpart Korean Patent Application No. 10-2017-7002473, dated Dec. 20, 2017, 6 pages.
Notice of Allowance from U.S. Appl. No. 13/475,708, dated Nov. 27, 2017, 24 pages.
Notice of Allowance from U.S. Appl. No. 14/216,859, dated Dec. 1, 2017, 113 pages.
Notice of Allowance from U.S. Appl. No. 15/019,920, dated Dec. 6, 2017, 24 pages.
Notice of Allowance from U.S. Appl. No. 15/082,867, dated Dec. 22, 2017, 25 pages.
Notice of Allowance from U.S. Appl. No. 15/357,943, dated Jan. 16, 2018, 16 pages.
Notice on Grant of Patent Right for Invention from foreign counterpart Chinese Patent Application No. 201280024054.0, dated Dec. 1, 2017, 4 pages.
Second Office Action from foreign counterpart China Patent Application No. 201480024463.X, dated Nov. 14, 2017, 34 pages.
Final Office Action from U.S. Appl. No. 14/212,203, dated Sep. 12, 2017, 84 pages.
Final Office Action from U.S. Appl. No. 14/212,533, dated Sep. 8, 2017, 69 pages.
Final Office Action from U.S. Appl. No. 14/360,282, dated Oct. 4, 2017, 22 pages.
Final Office Action from U.S. Appl. No. 15/219,063, dated Nov. 20, 2017, 27 pages.
Non-Final Office Action from U.S. Appl. No. 15/354,857, dated Sep. 12, 2017, 111 pages.
Non-final Office Action from U.S. Appl. No. 15/357,943, dated Aug. 25, 2017, 111 pages.
Notice of Allowance from foreign counterpart Korean Patent Application No. 10-2015-7029262, dated Aug. 31, 2017, 3 pages.
Notice of Allowance from foreign counterpart Korean Patent Application No. 10-2016-7017150, dated Oct. 30, 2017, 3 pages.
Notice of Allowance from U.S. Appl. No. 14/213,692, dated Sep. 28, 2017, 112 pages.
Notice of Allowance from U.S. Appl. No. 14/213,730, dated Aug. 31, 2017, 96 pages.
Notice of Allowance from U.S. Appl. No. 14/214,045, dated Oct. 6, 2017, 137 pages.
Notice of Allowance from U.S. Appl. No. 14/214,176, dated Oct. 19, 2017, 25 pages.
Notice of Allowance from U.S. Appl. No. 14/215,633, dated Oct. 4, 2017, 15 pages.
Notice of Allowance from U.S. Appl. No. 14/733,827, dated Sep. 22, 2017, 30 pages.
Notice of Allowance from U.S. Appl. No. 15/257,593, dated Oct. 11, 2017, 95 pages.
Notice on Grant of Patent Right for Invention from foreign counterpart China Application No. 201180076244.2, dated Aug. 28, 2017, 4 pages.
Notice on Grant of Patent Right for Invention from foreign counterpart Chinese Patent Application No. 201280024095.X, dated Nov. 7, 2017, 6 pages.
Office Action and Search Report from foreign counterpart Taiwan Patent Application No. 100142885, dated Jan. 23, 2017, 12 pages.
Third Office Action from foreign counterpart China Patent Application No. 201280024054.0, dated Jul. 28, 2017, 8 pages.
Third Office Action from foreign counterpart Chinese Patent Application No. 201280024012.7, dated Nov. 6, 2017, 8 pages.
Advisory Action from U.S. Appl. No. 14/212,203, dated Apr. 5, 2018, 8 pages.
Non-Final Office Action from U.S. Appl. No. 15/862,496, dated Apr. 5, 2018, 151 pages.
Notice of Allowance from U.S. Appl. No. 14/216,493, dated Apr. 2, 2018, 22 pages.
Communication pursuant to Article 94(3) EPC for Application No. 11876128.7, dated Feb. 5, 2018, 9 pages.
Communication pursuant to Article 94(3) EPC for Application No. 11876130.3, dated Feb. 5, 2018, 9 pages.
Communication pursuant to Article 94(3) EPC for Application No. 11876314.3, dated Feb. 5, 2018, 8 pages.
Communication pursuant to Article 94(3) EPC for Application No. 12789667.8, dated Feb. 21, 2018, 4 pages.
Corrected Notice of Allowance from U.S. Appl. No. 13/475,708, dated Feb. 26, 2018, 31 pages.
Corrected Notice of Allowance from U.S. Appl. No. 15/357,943, dated Apr. 2, 2018, 4 pages.
First Office Action and Search Report from foreign counterpart Chinese Patent Application No. 201480024832.5, dated Feb. 6, 2018, 15 pages. (Translation available only for office action).
Intention to grant from foreign counterpart European Patent Application No. 12788989.7, dated Feb. 23, 2018, 47 pages.
Notice of Allowance from U.S. Appl. No. 15/082,359, dated Mar. 21, 2018, 9 pages.
Notice of Allowance from U.S. Appl. No. 15/219,063, dated Mar. 19, 2018, 28 pages.
Notice on Grant of Patent Right for Invention from foreign counterpart Chinese Patent Application No. 201180076248.0, dated Feb. 27, 2018, 6 pages.
Notice on Grant of Patent Right for Invention from foreign counterpart Chinese Patent Application No. 201280024012.7, dated Mar. 12, 2018, 4 pages.
Abandonment from U.S. Appl. No. 14/212,203, mailed Jul. 26, 2018, 2 pages.
Abandonment from U.S. Appl. No. 14/212,533, mailed Jun. 19, 2018, 3 pages.
Abandonment from U.S. Appl. No. 14/360,282, mailed May 25, 2018, 2 pages.
Abandonment from U.S. Appl. No. 15/354,857, mailed Jul. 30, 2018, 2 pages.
Corrected Notice of Allowance from U.S. Appl. No. 15/219,063, dated Jun. 28, 2018, 8 pages.
Final Office Action from U.S. Appl. No. 14/360,280, dated Jul. 24, 2018, 24 pages.
Notice of Allowance from U.S. Appl. No. 13/824,013, dated Jul. 23, 2018, 15 pages.
Notice of Allowance from U.S. Appl. No. 14/216,493, dated Aug. 1, 2018, 14 pages.
Notice of Allowance from U.S. Appl. No. 15/408,255, dated Jul. 25, 2018, 136 pages.
Notice of Preliminary Rejection from foreign counterpart Korean Patent Application No. 10-2018-7003058, dated Jun. 4, 2018, 10 pages.
Communication pursuant to Article 94(3) EPC for Application No. 12174229.0, dated Dec. 20, 2018, 5 pages.
Communication pursuant to Article 94(3) EPC for Application No. 14769411.1, dated Dec. 7, 2018, 7 pages.
Communication pursuant to Article 94(3) EPC for Application No. 11876130.3, dated Jan. 15, 2019, 11 pages.
Communication pursuant to Article 94(3) EPC for Application No. 11876130.3, dated Oct. 29, 2018, 7 pages.
Non-Final Office Action from U.S. Appl. No. 15/283,836, dated Dec. 27, 2018, 150 pages.
Notice of Allowance from U.S. Appl. No. 15/853,323, dated Jan. 15, 2019, 15 pages.
Notice of Allowance from foreign counterpart Korean Patent Application No. 10-2018-7003058, dated Dec. 31, 2018, 3 pages.
Notice of Allowance from U.S. Appl. No. 15/706,056, dated Dec. 28, 2018, 138 pages.
Office Action from U.S. Appl. No. 15/408,323, dated Feb. 28, 2019, 18 pages.
Communication pursuant to Article 94(3) EPC for Application No. 11876314.3, dated Oct. 19, 2018, 5 pages.
Communication pursuant to Article 94(3) EPC for Application No. 11876314.3, dated Sep. 24, 2018, 6 pages.
Office Action and Search Report from foreign counterpart Taiwan Patent Application No. 106127331, dated Nov. 23, 2018, 13 pages.
Second Office Action from foreign counterpart Chinese Patent Application No. 201480024528.0, dated Oct. 8, 2018, 7 pages.
Notice of Allowance from U.S. Appl. No. 15/862,496, dated Nov. 2, 2018, 23 pages.
Notice of Allowance from U.S. Appl. No. 13/824,013, dated Nov. 13, 2018, 12 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 12788989.7, dated Jun. 22, 2017, 6 pages.
Final Office Action from U.S. Appl. No. 14/360,280, dated Aug. 10, 2017, 103 pages.
Intel “Programming on Intel® Platform,” The edition team of Intel® Software College course book, Shanghai Jiao Tong University Press, published Jan. 31, 2011, pp. 175-180.
Non-Final Office Action from U.S. Appl. No. 15/082,359, dated Aug. 11, 2017, 108 pages.
Notice of Allowance from U.S. Appl. No. 13/428,438, dated Aug. 7, 2017, 42 pages.
Notice of Allowance from U.S. Appl. No. 14/213,135, dated Aug. 3, 2017, 103 pages.
Notice of Allowance from U.S. Appl. No. 14/216,493, dated Aug. 4, 2017, 95 pages.
Notice of Allowance from U.S. Appl. No. 15/019,920, dated Jul. 14, 2017, 100 pages.
Notification of Reason for Refusal from foreign counterpart Korean Patent Application No. 10-2017-7002379, dated May 26, 2017, 6 pages.
Allowance Decision of Examination from foreign counterpart Taiwan Patent Application No. 106127331, dated Apr. 9, 2019, 3 pages.
Communication pursuant to Article 94(3) EPC for European Application No. 14770976.0, dated Feb. 18, 2019, 4 pages.
Communication Pursuant to Article 94(3) EPC for European Application No. 16196777.3, dated Feb. 28, 2019, 5 pages.
Communication Pursuant to Article 94(3) EPC for European Application No. 12763717.1, dated Mar. 22, 2019, 7 pages.
Notice of Preliminary Rejection from foreign counterpart Korean Patent Application No. 10-2017-7003623, dated Mar. 29, 2019, 5 pages.
Second Office Action from foreign counterpart Chinese Patent Application No. 201480024832.5, dated Apr. 2, 2019, 10 pages.
Related Publications (1)
Number Date Country
20170068534 A1 Mar 2017 US
Provisional Applications (1)
Number Date Country
61488662 May 2011 US
Continuations (1)
Number Date Country
Parent 13475708 May 2012 US
Child 15354742 US