US2011035722A1PendingUtilityA1

Method for Specifying Stateful, Transaction-Oriented Systems for Flexible Mapping to Structurally Configurable In-Memory Processing Semiconductor Device

Assignee: MUKUND SHRIDHARPriority: Jun 27, 2005Filed: Oct 18, 2010Published: Feb 10, 2011
Est. expiryJun 27, 2025(expired)· nominal 20-yr term from priority
G06F 30/30G06F 30/327G06F 15/7867G06F 15/7821G06F 30/39G06F 30/3323Y02D10/00G06F 30/347
38
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method for specifying stateful, transaction-oriented systems is provided. The method initiates with designating a plurality of primitive FlowModules. The method includes defining at least one FlowGate within each of the plurality of FlowModules, wherein each FlowGate includes a non-interruptible sequence of procedure code, a single point of entry and is invoked by a named concurrent call. An Arc is designated from a calling FlowGate to a called FlowGate and a Signal is generated for each named invocation of the called FlowGate. A Channel is defined for carrying the Signal. Methods for synthesizing a semiconductor device and routing signals in the semiconductor device are provided.

Claims

exact text as granted — not AI-modified
1 . A method for synthesizing a stateful, transaction-oriented system for flexible mapping to a structurally field-configurable semiconductor device having a multi-level array of storage elements, for in-memory processing, comprising method operations of:
 mapping FlowLogic to a network of FlowVirtualMachines(FVM);   mapping a FlowModule into a corresponding FlowVirtualMachine (FVM);   integrating one or more FVMs into an AggregateFVM (AFVM);   composing one or more AFVMs into a FlowTile, and   routing Signals between FlowModules.   
     
     
         2 . The method of  claim 1 , wherein the FVM is an array of similar memory unit resources configured into partitions, the partitions accessible via a plurality of independent access paths. 
     
     
         3 . The method of  claim 1  wherein the partitions define a FlowGateIndex, a StackMemory space, a CodeMemory space, a StateMemory space, an OutputBuffer space and a ChannelMemory space. 
     
     
         4 . The method of  claim 2 , further comprising:
 relocating the partitions; and   repeating the method operations of mapping FlowLogic to a network of FlowVirtualMachines(FVM);
 mapping a FlowModule into a corresponding FlowVirtualMachine (FVM); 
 integrating one or more FVMs into an AggregateFVM (AFVM); 
 composing one or more AFVMs into a FlowTile, and 
 routing Signals between FlowModules. 
   
     
     
         5 . The method of  claim 1  wherein the AFVM is derived from a composition of FVMs by one of linearly aggregating, merging or sharing memory unit resources of the composition of FVMs. 
     
     
         6 . The method of  claim 1 , wherein the FlowTile is derived from a composition of AFVMs by one of linearly aggregating, merging or sharing of the memory unit resources of the composition of AFVMs. 
     
     
         7 . The method of  claim 1 , wherein the Flowtile provides scheduling functionality through run-time flow control, reception of Signals and invoking of appropriate FlowGates. 
     
     
         8 . The method of  claim 3 , wherein the FlowTile enables signals to be commuted out of the OutputBuffer space and into the ChannelMemory space. 
     
     
         9 . The method of  claim 2 , wherein the FVM is without memory or caching hierarchies, and wherein all elements in the partitions are accessible in a same access time, the method further comprising:
 allocating and defining initial contents for all memories at compile time.   
     
     
         10 . The method of  claim 1 , further comprising:
 designating SystemFlowGates that are application independent, built-in and available on power-on boot;   providing access to the storage elements for read, write and configuration operations; and   providing booting application specific FVMs.   
     
     
         11 . The method of  claim 1 , further comprising:
 splitting the Signals into two portions, a first portion defining header information and a second portion defining a payload, the first portion residing in a different part of the memory from the second portion.   
     
     
         12 . A method for routing FlowLogic Signals over a structurally configurable in-memory processing array, the method comprising:
 configuring a pool of memory resource units into corresponding OutputBuffers, CommuteBuffers and ChannelMemories, the pool of memory units shared with a FlowLogicMachine;   configuring a producer-consumer relationship between the corresponding OutputBuffers and CommuteBuffers,   configuring a producer-consumer relationship between the CommuteBuffers and VirtualChannels residing in the ChannelMemories;   configuring producer-consumer relationships between the OutputBuffers and VirtualChannels residing in said ChannelMemories;   configuring producer-consumer relationships between the CommuteBuffers and neighbouring CommuteBuffers.   
     
     
         13 . The method of  claim 12  wherein configuring a producer-consumer relationship between the corresponding OutputBuffers and CommuteBuffers includes,
 enabling simultaneous access of the memory resource units through independent ports, asynchronous clocks and physical addressing; and 
 segmenting signals into small fixed size entities (Flits). 
 
     
     
         14 . The method of  claim 12  wherein configuring producer-consumer relationship between the CommuteBuffers and VirtualChannels residing in the ChannelMemories includes,
 enabling simultaneous access of the memory resource units through independent ports, asynchronous clocks and physical addressing; 
 reassembling the small fixed size entities in the VirtualChannels; 
 segregating small fixed size entities arriving simultaneously for different signals from different sources prior to the reassembling. 
 
     
     
         15 . The method of  claim 14 , wherein physically addressed writes into corresponding memory units achieve the reassembling and the segregating. 
     
     
         16 . The method of  claim 12  wherein configuring a producer-consumer relationship between the OutputBuffers and VirtualChannels includes,
 enabling simultaneous access of the memory resource units through independent ports, asynchronous clocks and physical addressing; 
 reassembling Flits into Signals in the VirtualChannels; and 
 segregating Flits arriving simultaneously for different Signals from different sources prior to reassembly, wherein the reassembling and the segregating are achieved through physically addressed writes into corresponding memory units. 
 
     
     
         17 . The method of  claim 12 , wherein the method operation of configuring producer-consumer relationships between the CommuteBuffers and neighbouring CommuteBuffers includes,
 enabling simultaneous access of the memory resource units through independent ports, asynchronous clocks and physical addressing; and   switching an input Flit from a neighbor to a corresponding CommuteBuffer.   
     
     
         18 . The method of  claim 12 , wherein the pool of memory resource units are single ported memories with time division access. 
     
     
         19 . The method of  claim 12 , wherein the pool of memory resource units are enabled for synchronous access using a global clock. 
     
     
         20 . A method for debugging a stateful, transaction-oriented runtime system having a multi-level array of storage elements, comprising method operations of:
 instructing the stateful transaction oriented system to pause;   instructing the stateful transaction oriented system to single step until a given point;   tracking information for selected FlowGate invocations; and   querying contents of a portion within the multi-level array of storage elements.   
     
     
         21 . The method of  claim 20 , wherein the method operation of instructing the stateful transaction oriented system to pause includes,
 transmitting a signal to a host system indicating that the system has paused; and   controlling the debugging process through the host system by sending further instructions encapsulated in signals.   
     
     
         22 . The method of  claim 20 , wherein the method operation of tracking information for selected FlowGate invocations includes,
 tracing of firings of FlowGates, including FlowGate input signals, and FlowGate output signals.   
     
     
         23 . The method of  claim 20 , wherein the method operation of querying contents of the portion within the multi-level array of storage elements includes,
 communicating information to a host system, the information including current position of context pointers, contents of a portion of the multi-level array of storage elements or utilization of VirtualChannels.   
     
     
         24 . The method of  claim 20 , further comprising;
 sending executable FlowGate code from a host to the runtime system of a given tile;   loading the FlowGate code into the multi-level storage array; and   executing the FlowGate code.

Join the waitlist — get patent alerts

Track US2011035722A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.