US8688619B1 - Systems, methods and apparatus for distributed decision processing - Google Patents
Systems, methods and apparatus for distributed decision processing Download PDFInfo
- Publication number
- US8688619B1 US8688619B1 US12/719,750 US71975010A US8688619B1 US 8688619 B1 US8688619 B1 US 8688619B1 US 71975010 A US71975010 A US 71975010A US 8688619 B1 US8688619 B1 US 8688619B1
- Authority
- US
- United States
- Prior art keywords
- binary
- configuration
- tactic
- computing apparatus
- clause
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Definitions
- the present invention generally concerns data processing. More particularly, the invention concerns a system, methods, and apparatus for distributed decision processing.
- SAT problems arise in a number of arenas, but one of importance is in the field of integrated circuit design and verification. As the demand for more functional consumer electronics has increased, so has the complexity of the integrated circuits powering the consumer electronics. With the increase in the complexity of the circuit there have been significant increases in the challenges within the design and verification of these more complex circuits.
- Model checking is typically implemented with a Binary Decision Diagram (BDD).
- BDD Binary Decision Diagram
- SAT solvers they are proving to be a reasonable alternative to BDD's in digital circuit verification.
- a given Boolean formula is considered satisfiable if all the variables in the formula can take on such values to make the formula evaluate to true. Alternatively, and potentially more important, if no combination of values can be found that forces the function to evaluate to true, then the formula is unsatisfiable.
- SAT solvers typically require the function to be expressed in Conjunctive Normal Form (CNF) which is a conjunction of clauses, where a clause is a disjunction of literals.
- CNF Conjunctive Normal Form
- a literal is either a variable name or its negation.
- a satisfying assignment returned by the SAT solver corresponds to a counterexample of length k. If the problem is unsatisfiable at length k, the SAT returns a proof that there are no counterexamples of length less than or equal to k.
- the DPLL (Davis-Putnam-Logemann-Loveland algorithm) is a complete, backtracking-based algorithm for deciding the satisfiability of propositional logic formulae in conjunctive normal form, i.e., for solving the CNF-SAT problem.
- the basic backtracking algorithm runs by choosing a branching literal, assigning a truth value to it, simplifying the formula, and then recursively checking if the simplified formula is satisfiable. If this is the case, the original formula is satisfiable; otherwise, the same recursive check is done assuming the opposite truth value.
- This is known as the splitting rule, as it splits the problem into two simpler sub-problems.
- the simplification step essentially removes all clauses which become true under the assignment from the formula, and all literals that become false from the remaining clauses.
- Restarts have been previously introduced in the literature as a way to break a sequence of bad decision by starting over at certain points in the resolution and resetting the heuristic that chooses the branching literals.
- Number of learned clauses per conflict each conflict can be summarized by multiple learned clauses that avoid reaching this conflict again. Traditional algorithms have been using one of such clause per conflict.
- Conflict clause minimization has been introduced in the literature and is a technique to make the learned conflict clauses as small as possible.
- Decision replay has been introduced in the literature to replay decisions that were not proven bad. The intuition is to avoid discarding useful choices when a backtracking goes too far to undo the root decision problem.
- Database compaction the number of clauses can grow to unmanageable sizes; database compaction discards learned clauses.
- the present invention provides a system, apparatus, and methods for distributed decision processing.
- Various embodiments of the present invention provide a method, apparatus, and computer software product for generating solutions to logical decision problems through the use of multi-processing element computing apparatus.
- a method is provided that receives a formula in a memory; the method then generates multiple replications of the formula.
- the number of replications of the formula is related to the number of processing elements available on the computing apparatus.
- the provided method then assigns one replication to a first processing element and another to a second processing element.
- Each of the processing elements is then configured to solve the formula using, in some embodiments, different solution tactics.
- the method further allows each of these processing elements to communicate with each other over a message-passing interface. In some embodiments, information passed across the message-passing interface is used by the receiving processing element in its solution of the formula.
- the parametric space of options available to each of a plurality of processing elements is defined.
- this space is related to decision procedures available to the processing elements.
- a choice of instantiation of one or more of the procedures is additionally distributed to the processing elements.
- Each of the processing elements may then separately instantiate a subset of options in the space based on its choice of instantiation.
- This custom computing apparatus contains a number of processing elements and a memory. Contained within the memory are a set of processor executable instructions that, when executed by at least one of the processors, configures the custom computing apparatus to generate a solution to a logical decision problem.
- a formula is received in a memory; the configuration then generates multiple replications of the formula.
- the number of replications of the formula is related to the number of processing elements available on the computing apparatus.
- the configuration then assigns one replication to a first processing element and another to a second processing element.
- Each of the processing elements is then configured to solve the formula using, in some embodiments, different solution tactics.
- the configuration further allows each of these processing elements to communicate with each other over a message-passing interface. In some embodiments, information passed across the message passing interface is used by the receiving processing element in its solution of the formula.
- a further embodiment of a custom computing apparatus is additionally provided.
- the computing apparatus also contains multiple processing elements and at least one memory that is in communication with these elements. Contained within the memory is a set of processor executable instructions that, when executed by at least one of the processing elements, configure the computing apparatus to define the parametric space of options available to each of a plurality of processing elements. In some embodiments, this space is related to decision procedures available to the processing elements. In this configuration, a choice of instantiation of one or more of the procedures is additionally distributed to the processing elements. Each of the processing elements may then separately instantiate a subset of options in the space based on its choice of instantiation.
- a computer software product includes a non-transitory medium with a set of processor executable instructions. These instructions are such that when executed by a processing element contained with a multiple processing element computing apparatus, they configure the apparatus to generate a solution to a logical decision problem.
- a formula is received in a memory; the configuration then generates multiple replications of the formula.
- the number of replications of the formula is related to the number of processing elements available on the computing apparatus.
- the configuration then assigns one replication to a first processing element and another to a second processing element.
- Each of the processing elements is then configured to solve the formula using, in some embodiments, different solution tactics.
- the configuration further allows each of these processing elements to communicate with each other over a message passing interface. In some embodiments, information passed across the message passing interface is used by the receiving processing element in its solution of the formula.
- a further provided embodiment of a computer software product additionally includes a non-transitory medium with a set of processor executable instructions on it.
- the instructions are sufficient that when executed by at least one processing element of a multiple processing element computing apparatus, they configure the apparatus to define the parametric space of options available to each of a plurality of processing elements.
- this space is related to decision procedures available to the processing elements.
- a choice of instantiation of one or more of the procedures is additionally distributed to the processing elements.
- Each of the processing elements may then separately instantiate a subset of options in the space based on its choice of instantiation.
- FIG. 1 illustrates a computer network and a custom computing apparatus consistent with provided embodiments
- FIG. 2 illustrates processors with multi-stage execution units
- FIG. 3 illustrates an embodiment of a provided method
- FIG. 4 illustrates an embodiment of a provided method
- FIGS. 5 a and 5 b illustrate an embodiment of a provided method
- FIG. 6 illustrates an embodiment of a provided method
- FIG. 7 illustrates an embodiment of a provided method.
- a component can be, but is not limited to being, a process running on a processor, an integrated circuit, an object, an executable, a thread of execution, a program, and/or a computer.
- an application running on a computing device and the computing device can be a component.
- One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers.
- these components can execute from various computer-readable media having various data structures stored thereon.
- the components can communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal).
- a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal).
- Computer-readable media is non-transitory in nature and includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
- a storage media can be any available media that can be accessed by a computer.
- such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM, or other optical disk storage, magnetic disk storage, or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
- any physical connection is properly termed a computer-readable medium.
- the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave
- the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium.
- Disk and disc includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc (BD), where disks usually reproduce data magnetically and discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
- exemplary is used to mean serving as an example, instance, or illustration. Any embodiment or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, use of the word exemplary is intended to present concepts in a concrete manner.
- Embodiments of the present invention provide a custom computing apparatus, illustrated in FIG. 1 , that is configured to optimize computer source code for operation on a second computing apparatus.
- first custom computing apparatus 10 ( a ) is configured to communicate with second computing apparatus 10 ( b ) across network 20 .
- a further illustration of computing apparatus 10 is provided in FIG. 1 .
- custom computing apparatus 10 ( a ) contains at least one processor 30 ( a - n ), a communication port 40 communicating with the at least one processor 30 ( a - n ).
- Custom computing apparatus 10 ( a ) additionally includes memory 50 , which in some embodiments includes dependence analysis module 220 .
- external storage medium 80 is a CD, in others a DVD.
- drive 70 is configured to accept the appropriate external storage medium 80 . While CD and DVD are specifically enumerated in these embodiments, there are many external storage media that can be used to practice various aspects of the invention; therefore, some embodiments are not limited to the particular drive 70 configuration or external media 80 .
- Custom computing apparatus 1 ( a ) additionally includes storage medium 60 .
- Storage medium 60 in some embodiments is a hard-disk drive, and in others is a solid state drive.
- storage medium 60 contains a set of processor executable instructions that when executed by the at least one processor 30 ( a - n ), they configure custom computing apparatus 10 ( a ) to optimize computer code for execution on computing apparatus 10 ( b ). While custom computing apparatus 10 ( a ) and computing apparatus 10 ( b ) are illustrated in FIG. 1 communicating over network 20 , various embodiments of the invention do not require this inter-computer communication.
- processing element can be a processor or an execution unit on a processor. Additionally, each processor may contain multiple execution units.
- FIG. 2 illustrates exemplary multi-stage execution units 90 .
- the stages may include instruction fetch, instruction decode, operand address generation, operand fetch, instruction execute, and result store.
- the stages include instruction fetch, instruction fetch & register decode, execute, memory access, and register write-back.
- one instruction in one stage of the pipeline may attempt to read from a memory location while another instruction is writing to that location.
- This problem is confounded in the instance of multiple processing cores.
- multiple processor and/or multiple core architectures the locality of data to the execution unit attempting access can create significant delays in processing.
- some provided embodiments include the use of multiple processing elements. In some embodiments, these processing elements are threads in a multi-threaded processor; in others they are individual processors. In still further embodiments, they are processing cores or execution units.
- SAT Boolean satisfiability problem
- CNF conjunctive normal form
- DPLL Dynamic-Putnam-Logemann-Loveland
- the DPLL algorithm is a backtracking-based algorithm for deciding the satisfiability of propositional logic formulae in conjunctive normal form, i.e., for solving the CNF-SAT problem.
- the basic backtracking algorithm runs by choosing a branching literal, assigning a truth value to it, simplifying the formula, and then recursively checking if the simplified formula is satisfiable; if this is the case, the original formula is satisfiable. Otherwise, the same recursive check is done assuming the opposite truth value.
- This is known as the splitting rule, as it splits the problem into two simpler sub-problems.
- the simplification step essentially removes all clauses which become true under the assignment from the formula, and all literals that become false from the remaining clauses.
- conflict clauses are derived from logical implications of the original formula clauses that encapsulate learned information about mutually unsatisfiable assignments.
- the discovery of a conflict clause initiates a backtrack within the current candidate set of assignments to a point that resolves the conflict. For an instance running on a single processor, the conflict clause generation and backtrack routines are tightly coupled.
- the problem being solved is to abstract these operations in such a way that conflict clauses can be received from external processes while initiating the proper backtrack.
- the requirement is that the conflict clause received is a properly formatted conflict, derived from the initial replicated clause set, independent of the specific tactics employed in deriving it.
- Embodiments of the present invention include systems, methods, and apparatus to manage previously known solution tactics in a novel manner and additionally introduce new tactics.
- the following pseudo code illustrates a binary back-propagation solution tactic.
- the input parameters are as follows: stack (the assignment stack), reasons (a structure that maps the assigned literals to the clauses that forced the assignment), and conflict (a list of literals forming conflict).
- the pseudo code function returns the parameter result, which is the list of literals forming the resulting conflict.
- FIG. 3 An exemplary embodiment of a provided method 100 is illustrated in FIG. 3 .
- a formula for a logical decision problem is received in memory in block 110 .
- a first solution tactic is configured for a first processing element
- a second solution tactic is configured for a second processing element.
- a replication of the formula is generated and assigned to each of the processing element.
- Flow continues to blocks 190 ( a ) and 190 ( b ) where the processing elements begin to solve the formula by the assigned solution tactic.
- the solution tactics employed by the processing elements include selection and assignment of literals in the formula. In some instances, these assignments result in conflicts.
- flow continues to blocks 200 ( a ) and 200 ( b ) where the process identifies the existence of new conflict clauses. If new conflicts exist, flow continues to blocks 180 ( a ) and 180 ( b ) where the process backtracks to the previous state assignments and the new information related to conflict is learned. The process then continues to 170 a and 170 b where this new learned information is aggregated and the periodicity of communicating the learned information is controlled. At the appropriate time, flow continues to block 160 where the learned information is communicated to other processing elements across the message-passing interface. Additionally, when the process backtracks to a previous state, flow continues back to blocks 190 ( a ) and 190 ( b ).
- the formula that is replicated and solved contains a propositional logic component.
- the solution tactics comprises a search, and decisions made in the course of the search can be saved in the event of a backtrack.
- the solution tactics include a function for replaying decisions made from the backtrack.
- the backtracking function is induced by learned information received on the message-passing interface.
- the learned information is shared with other processing elements across the message-passing interface. This learned information can include a subset of conflict clauses derived by the execution of the assigned solution tactic. In other embodiments, this learned information can include a subset of must-implications derived by the execution of the assigned solution tactic.
- the solution tactics used may include a restarts enabled tactic, a number of learned clauses per conflict tactic, a conflict clause minimization enabled tactic, a decision replay enabled tactic, a binary back-propagation enabled tactic, a database compaction enabled tactic, and a binary-centric Boolean Constraint Propagation enabled tactic.
- Boolean Constraint Propagation is a function known in the art for propagating the implications of a logical assignment. After a variable is selected and assigned with a candidate assignment, those clauses that depend on the assignment are examined. In the case where a clause exists such that all but exactly one of the variables present in the clause have been assigned and the clause has not been satisfied by any of those assignments, the assignment to the final variable is forced and the assignment is made.
- the BCP function maintains of a worklist of assignments to process, each assignment potentially leading to new assignments that are added back to the worklist. The process continues until either the worklist is empty (no more implications) or a case is discovered in which a variable must simultaneously be set true and false (a logical conflict). A logical conflict initiates a backtrack.
- a backtrack is a function known in the art for recovering from a conflict derived from BCP.
- assignments are undone, beginning with the most recent and proceeding in order, until a point is reached at which the remaining assignments, and their logical implications, no longer violate the conflict clause derived from the conflict.
- method 220 is a subset of the functions and operations of blocks 190 ( a ) and 190 ( b ).
- two copies of the replicated formula are assigned to the processing element in blocks 120 ( a )( 1 ) and 120 ( a )( 2 ).
- Flow continues to blocks 190 ( a )( 1 ) and 190 ( a )( 2 ) where the processing element attempts to solve the replications of the formula by the assigned solution tactic.
- Flow then continues to decision blocks 230 ( a ) and 230 ( b ) where it is determined if any additional variables exist in the formula.
- a must-implication is a logical implication that exists when a particular clause takes on a logical state regardless of the assertion of TRUE or FALSE.
- the solution tactics include deriving logical implications from the message-passing interface and using these implications in the process of deriving a solution.
- the logical implication is a conflict clause; in others, it is a must-implication.
- the process illustrated in method 220 is a partitioned process operating on different portions of the same formula. In these embodiments, the selection of a particular partition may be made based on a score assigned to a variable in another process. In other embodiments, the partitioning is accomplished based on the number of times a function has been called. In other embodiments, one of the solution tactics includes Boolean Constraint Propagation with backtracking and the deriving logical implications is performed when the number of backtracks exceeds a threshold.
- FIGS. 5 a and 5 b Another provided embodiment of a method 280 is illustrated in FIGS. 5 a and 5 b .
- flow begins at block 290 where a processing element configuration is read from a file.
- block 300 receives parameters such as processor index, the number of processors present, and various communication-related parameters.
- a number of decision blocks 320 , 340 , 370 , 410 , 440 , 470 , and 490 are performed.
- the decisions include whether restarts are enabled 320 , whether multiple conflict clauses are enabled 340 , whether conflict clause minimization is enabled 370 , whether binary propagation is enabled 410 , whether binary centric BCP is enabled 440 , whether database compaction is enabled 470 , and whether replays are enabled 490 .
- flow continues to disable blocks 310 , 350 , 380 , 420 , 430 , 480 , and 500 where the particular feature is disabled. If the feature is to be enabled, flow continues to enable blocks 330 , 360 , 390 , 400 , 450 , 460 , and 510 where the particular feature is enabled. Flow then continues to block 120 for replication of the formula on the particular processing element.
- Some embodiments of the present invention provide methods that allow processes using different solution tactics to communicate learned information with each other and to benefit from this information.
- the following pseudo code illustrates the communications between processes, and the activation and inactivation of the solution tactics.
- these options are related to a decision procedure such as a solution tactic for a Satisfiability problem.
- the process of evaluating if a particular option is to be enabled includes assigning that option a key and associating that key to an expression of zero or more variables that can be evaluated by a processing element.
- this expression is an arithmetic expression that supports the modulus operation. In others, it supports if-then and if-then-else conditionals.
- these expressions are evaluated separately by each processing element involved in solving the formula. In other embodiments, this expression is in postfix notation.
- these variables are specific to the process being instantiated.
- variables include a unique index of the process being instantiated, a value related to the number of processes being instantiated, and a value related to the capabilities of the platform on which the process is being instantiated.
- these variables are stored to a file accessible to other processing elements.
- conflict clause minimization is a known in the art as an optimization technique for reducing the number of literals contained in a conflict clause.
- Binary back-propagation is a technique for optimizing a conflict clause using implications derived from binary clauses (original or conflict).
- Binary-centric BCP is a method for separating in the BCP process the handling of binary and non-binary clauses.
- Database compaction is known in the art as a technique by which the set of clauses being considered is reduced by removing clauses satisfied by must-implications or conflict clauses that are no longer active.
- the enabling of replays is a technique wherein decisions that have been backtracked over as a result of finding a conflict but that may be unrelated to the conflict, are retested after the backtrack.
- the parametric space contains a parameter such as a seed to a random number generator, a parameter related to a choice of tactics used by the decision procedure, a parameter related to options affecting the behavior of the decision procedure within a tactic, and a parameter related to options affecting the frequency of functions called within a tactic.
- the choice of instantiation includes distributing all possible combinations of choices of instantiation to the plurality of processing elements.
- the parametric space of options can be explored dynamically by at least one processing element during execution.
- FIG. 6 Another provided embodiment of a method 520 is illustrated in FIG. 6 .
- the formula is replicated and assigned to a particular processing element in block 120 .
- Flow continues to decision block 530 where it is determined if additional unassigned literals exist in the formula. If so, one is chosen and an assignment made.
- Flow continues to block 540 where all variables are propagated using binary clauses only.
- decision block 550 it is determined if a conflict exists, if no conflict exists flow continues to block 570 where one variable is propagated using non-binary clauses only.
- decision block 580 it is again determined if a conflict exists. If no conflict exists, flow continues back to decision block 530 and the process iterates.
- decision block 560 if a conflict is found, flow continues to decision block 560 . Additionally, if a conflict is found in decision block 580 flow continues to decision block 560 . At block 560 it is determined if the conflict is a binary clause. If the conflict is a binary clause, flow continues to block 610 where it is added to the binary clause database and in block 630 put on the head of the binary watch list. Flow then continues back to decision block 530 . If in decision block 560 it is determined that the clause is not binary, flow continues to block 600 where it is added to the non-binary database and put on the head of the non-binary watch list in block 620 . Flow then continues back to decision block 530 and the process iterates until decision block 530 determines that there are no unassigned literals. Flow then continues to block 640 where all searches are terminated.
- a data structure is used that maintains separation between the binary and non-binary clauses in the formula.
- the data structure includes different insertion points for binary and non-binary clauses.
- new assignments are deduced from the watch lists.
- the concept of watch lists is of common knowledge to the engineer knowledgeable in the art of SAT solving. The intuition is to constantly monitor 2 unassigned literals from every clause. When a clause that is not yet satisfied has only 1 unassigned literal left, this literal must be satisfied.
- Watch lists are a structure to efficiently track for each literal, the list of clauses that can influence the literals assignment.
- Binary Constraint Propagation is performed on all binary clauses before the non-binary clauses.
- a test for a must-implication is additionally performed and a determination made about the binary nature of a clause based on the must-implication.
- a data structure includes a field that is used to indicate whether a clause is binary or non-binary.
- FIG. 7 Another embodiment of a provided method 650 is illustrated in FIG. 7 .
- the formula is replicated and assigned to a particular processing element in block 120 .
- Flow then continues to block 190 where the particular solution tactic for this processing element is accomplished.
- Flow continues to block decision 550 , where it is determined if a conflict exists. If no conflicts exist, flow continues to block 640 where all searches are terminated. As with other embodiments, the termination and other information can, be communicated over a network 20 , or other message passing interface, to other processing elements. If a conflict is found in decision block 550 flow proceeds to decision block 660 where it is determined an unexamined literal exists in the conflict clause. If not flow continues to block 700 where backtracking is performed and the new clause added to learned clauses.
- flow proceeds to decision block 670 where it is determined if the literal was derived from a binary clause. If not, flow returns to block 660 . If it is determined that the literal is derived from a binary clause, flow continues to block 680 where it is determined if another literal has a previous assignment. If so, flow continues to block 690 where the second literal is substituted into the conflict clause and flow continues back to 660 . If the second literal was not previously assigned, flow continues back to 660 .
- the first clause is a binary clause in others it is not. Additional embodiments include embodiments where the second clause is binary and included the negated literal under consideration in the first clause. Additional embodiments include embodiments where one-to-one substitution is performed on all literals identified within a particular conflict clause. Since this provided method is independent from routine conflict clause minimization it can be performed in conjunction with this minimization occurring either before or after the minimization.
- aspects described herein can be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof.
- systems and/or methods are implemented in software, firmware, middleware or microcode, program code or code segments, they can be stored in a machine-readable medium, such as a storage component.
- a code segment can represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
- a code segment can be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. can be passed, forwarded, or transmitted using any suitable means including memory sharing, message passing, token passing, network transmission, etc.
- the techniques described herein can be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein.
- the software codes can be stored in memory units and executed by processors.
- the memory unit can be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means as is known in the art.
Abstract
Description
binary_backpropagation(stack, reasons, conflict): |
WHILE not done |
changed := FALSE |
FORALL literal in conflict |
reason_clause := reason_for_assignment(reasons, literal) |
IF length(reason_clause) equals 2 THEN { |
other_literal := get_other_literal(reason_clause, literal) |
IF level_in_stack(other_literal) < level_in_stack(literal) THEN { |
sign := 1 |
IF literal * other_literal less than 0 THEN sign := −1 END IF |
replace_literal_in_conflict(conflict, literal, other_literal * sign) |
changed := TRUE |
} END IF |
} END IF |
END FORALL |
END WHILE |
result := remove_duplicated_literals(conflict) |
RETURN result |
processor_1( ) |
assignments := empty |
reasons := empty |
stack := empty |
replay_stack := empty |
configure_processor_1( ) |
WHILE remains_unassigned_variables(assignments) |
IF replay_stack is not empty THEN find_next_assignment(assignments, |
replay_stack) |
ELSE find_next_assignment(assignments, stack) // common knowledge |
END IF |
IF use_restarts and number_of_assignments reaches threshold1 THEN { |
increment threshold1 |
replay_stack := empty |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common knowledge |
GOTO WHILE LOOP |
} ELSE { |
conflict := empty |
IF use_binary_centric_bcp THEN conflict := binary_centric_bcp( ) |
ELSE conflict := regular_bcp( ) // common knowledge |
END IF |
IF conflict is not empty THEN { |
replay_stack := empty |
IF use_binary_backpropagation |
THEN conflict := binary_backpropagation(stack, reasons, conflict) |
END IF |
IF use_conflict_minimization |
THEN conflict := minimize_conflict(conflict) // common |
knowledge |
END IF |
IF use_binary_backpropagation |
THEN conflict := binary_backpropagation(stack, reasons, conflict) |
END IF |
} END IF |
IF number_of_conflicts reaches threshold2 THEN { |
increment threshold2 |
IF use_replay saved_stack := copy(stack) END IF |
// modulate amount of communication and exchange with |
neighbors |
// (possibly all processes |
exchange_information_with_neighbors( ) |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common knowledge |
} END IF |
IF number_of_conflicts reaches threshold3 THEN { |
increment threshold3 |
IF use_recursive_learning THEN { |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common |
knowledge |
perform_recursive_learning( ) // common knowledge |
// modulate amount of communication and exchange with |
neighbors |
// (possibly all processes) |
exchange_information_with_neighbors( ) |
} END IF |
} END IF |
} END IF |
END WHILE |
terminate_all_processes( ) |
IF all_clauses_satisfied THEN RETURN assignments |
ELSE RETURN empty |
END IF |
processor_N( ) |
assignments := empty |
reasons := empty |
stack := empty |
replay_stack := empty |
configure_processor_N( ) |
WHILE remains_unassigned_variables(assignments) |
IF replay_stack is not empty THEN find_next_assignment(assignments, |
replay_stack) |
ELSE find_next_assignment(assignments, stack) // common knowledge |
END IF |
IF use_restarts and number_of_assignments reaches threshold1 THEN { |
increment threshold1 |
replay_stack := empty |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common knowledge |
GOTO WHILE LOOP |
} ELSE { |
conflict := empty |
IF use_binary_centric_bcp THEN conflict := binary_centric_bcp( ) |
ELSE conflict := regular_bcp( ) // common knowledge |
END IF |
IF conflict is not empty THEN { |
replay_stack := empty |
IF use_binary_backpropagation |
THEN conflict := binary_backpropagation(stack, reasons, conflict) |
END IF |
IF use_conflict_minimization |
THEN conflict := minimize_conflict(conflict) // common |
knowledge |
END IF |
IF use_binary_backpropagation |
THEN conflict := binary_backpropagation(stack, reasons, conflict) |
END IF |
} END IF |
IF number_of_conflicts reaches threshold2 THEN { |
increment threshold2 |
IF use_replay saved_stack := copy(stack) END IF |
// modulate amount of communication and exchange with |
neighbors |
// (possibly all processes) |
exchange_information_with_neighbors( ) |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common knowledge |
} END IF |
IF number_of_conflicts reaches threshold3 THEN { |
increment threshold3 |
IF use_recursive_learning THEN { |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common |
knowledge |
perform_recursive_learning( ) // common knowledge |
// modulate amount of communication and exchange with |
neighbors |
// (possibly all processes |
exchange_information_with_neighbors( ) |
} END IF |
} END IF |
} END IF |
END WHILE |
terminate_all_processes( ) |
IF all_clauses_satisfied THEN RETURN assignments |
ELSE RETURN empty |
END IF |
// Input parameters: |
// - stack: the assignment stack |
// - reasons: a structure that maps assigned literals to the clause that |
// forced the assignment |
// - b_wls the watchlists for binary clauses, indexed by letarals |
// - nb_wls the watchlists for non-binary clauses, indexed by literals |
// - assignment: the current decision literal |
// Output: |
// - a conflict if a conflict is found or NULL if the assignments are all |
consistent |
binary_centric_BCP(stack, reasons, b_wls, nb_wls, assignment): |
FORALL clause in b_wls[not(assignment)] |
other_literal = get_other_literal(clause, assignment) |
IF is_unassigned(other_literal) THEN { |
assign(other_literal) |
return binary_centric_BCP(stack, reasons, b_wls, nb_wls, |
other_literal) |
} ELSE IF is_already_assigned(other_literal) THEN { |
IF is_correctly_assigned(other_literal) THEN { |
CONTINUE FORALL |
} ELSE { |
conflict = generate_binary_conflict(clause, other_literal) |
RETURN conflict |
} END IF |
} END IF |
} END FORALL |
RETURN regular_BCP(stack, reasons, b_wls, nb_wls, assignment) // |
common knowledge |
The high-level solver function inserts binary and non-binary conflicts in the proper watch lists.
processor( ) |
assignments := empty |
reasons :=empty |
stack := empty |
replay_stack := empty |
configure_processor( ) |
WHILE remains_unassigned_variables(assignments) |
IF replay_stack is not empty THEN find_next_assignment(assignments, |
replay_stack) |
ELSE find_next_assignment(assignments, stack) // common knowledge |
END IF |
IF use_restarts and number_of_assignments reaches threshold1 THEN { |
increment threshold1 |
replay_stack := empty |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common knowledge |
GOTO WHILE LOOP |
} ELSE { |
conflict := empty |
IF use_binary_centric_bcp THEN { |
conflict := binary_centric_bcp( ) |
IF is_binary(conflict) THEN { |
insert_at_head_of_binary_watchlist(conflict) |
} ELSE { |
insert_at_head_of_non_binary_watchlist(conflict) |
} END IF |
} ELSE conflict := regular_bcp( ) // common knowledge |
END IF |
IF conflict is not empty THEN { |
replay_stack := empty |
IF use_binary_backpropagation |
THEN conflict := binary_backpropagation(stack, reasons, conflict) |
END IF |
IF use_conflict_minimization |
THEN conflict := minimize_conflict(conflict) // common |
knowledge |
END IF |
IF use_binary_backpropagation |
THEN conflict := binary_backpropagation(stack, reasons, conflict) |
END IF |
} END IF |
IF number_of_conflicts reaches threshold2 THEN { |
increment threshold2 |
IF use_replay saved_stack := copy(stack) END IF |
// modulate amount of communication and exchange with |
neighbors |
// (possibly all processes) |
exchange_information_with_neighbors( ) |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common knowledge |
} END IF |
IF number_of_conflicts reaches threshold3 THEN { |
increment threshold3 |
IF use_recursive_learning THEN { |
// forget current assignments and stack |
backtrack_to_beginning(assignments, stack) // common |
knowledge |
perform_recursive_learning( ) // common knowledge |
// modulate amount of communication and exchange with |
neighbors |
// (possibly all processes |
exchange_information_with_neighbors( ) |
} END IF |
} END IF |
} END IF |
END WHILE |
terminate_all_processes( ) |
IF all_clauses_satisfied THEN RETURN assignments |
ELSE RETURN empty |
// Input parameters: |
// - stack: the assignment stack |
// - reasons: a structure that maps assigned literals to the clause that |
// forced the assignment |
// - conflict: a list of literals forming a |
// Output parameter: |
// - result: the list of literals forming the resulting conflict |
binary_backpropagation(stack, reasons, conflict): |
WHILE not done |
changed := FALSE |
FORALL literal in conflict |
reason_clause := reason_for_assignment(reasons, literal) |
IF length(reason_clause) equals 2 THEN { |
other_literal := get_other_literal(reason_clause, literal) |
IF level_in_stack(other_literal) < level_in_stack(literal) THEN { |
sign := 1 |
IF literal * other_literal less than 0 THEN sign := −1 END IF |
replace_literal_in_conflict(conflict, literal, other_literal * sign) |
changed := TRUE |
} END IF |
} END IF |
END FORALL |
END WHILE |
result := remove_duplicated_literals(conflict) |
RETURN result |
Claims (129)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/719,750 US8688619B1 (en) | 2009-03-09 | 2010-03-08 | Systems, methods and apparatus for distributed decision processing |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15866509P | 2009-03-09 | 2009-03-09 | |
US12/719,750 US8688619B1 (en) | 2009-03-09 | 2010-03-08 | Systems, methods and apparatus for distributed decision processing |
Publications (1)
Publication Number | Publication Date |
---|---|
US8688619B1 true US8688619B1 (en) | 2014-04-01 |
Family
ID=50348966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/719,750 Active 2032-07-08 US8688619B1 (en) | 2009-03-09 | 2010-03-08 | Systems, methods and apparatus for distributed decision processing |
Country Status (1)
Country | Link |
---|---|
US (1) | US8688619B1 (en) |
Cited By (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140047217A1 (en) * | 2012-08-09 | 2014-02-13 | Fujitsu Limited | Satisfiability checking |
US20150256460A1 (en) * | 2014-03-10 | 2015-09-10 | Palo Alto Research Center Incorporated | System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network |
US9276840B2 (en) | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
US9276751B2 (en) | 2014-05-28 | 2016-03-01 | Palo Alto Research Center Incorporated | System and method for circular link resolution with computable hash-based names in content-centric networks |
US9280546B2 (en) | 2012-10-31 | 2016-03-08 | Palo Alto Research Center Incorporated | System and method for accessing digital content using a location-independent name |
US9311377B2 (en) | 2013-11-13 | 2016-04-12 | Palo Alto Research Center Incorporated | Method and apparatus for performing server handoff in a name-based content distribution system |
US9363086B2 (en) | 2014-03-31 | 2016-06-07 | Palo Alto Research Center Incorporated | Aggregate signing of data in content centric networking |
US9363179B2 (en) | 2014-03-26 | 2016-06-07 | Palo Alto Research Center Incorporated | Multi-publisher routing protocol for named data networks |
US9374304B2 (en) | 2014-01-24 | 2016-06-21 | Palo Alto Research Center Incorporated | End-to end route tracing over a named-data network |
US9379979B2 (en) | 2014-01-14 | 2016-06-28 | Palo Alto Research Center Incorporated | Method and apparatus for establishing a virtual interface for a set of mutual-listener devices |
US9390289B2 (en) | 2014-04-07 | 2016-07-12 | Palo Alto Research Center Incorporated | Secure collection synchronization using matched network names |
US9391777B2 (en) | 2014-08-15 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for performing key resolution over a content centric network |
US9401864B2 (en) | 2013-10-31 | 2016-07-26 | Palo Alto Research Center Incorporated | Express header for packets with hierarchically structured variable-length identifiers |
US9400800B2 (en) | 2012-11-19 | 2016-07-26 | Palo Alto Research Center Incorporated | Data transport by named content synchronization |
US9407432B2 (en) | 2014-03-19 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for efficient and secure distribution of digital content |
US9407549B2 (en) | 2013-10-29 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers |
US9426113B2 (en) | 2014-06-30 | 2016-08-23 | Palo Alto Research Center Incorporated | System and method for managing devices over a content centric network |
US9444722B2 (en) | 2013-08-01 | 2016-09-13 | Palo Alto Research Center Incorporated | Method and apparatus for configuring routing paths in a custodian-based routing architecture |
US9451032B2 (en) | 2014-04-10 | 2016-09-20 | Palo Alto Research Center Incorporated | System and method for simple service discovery in content-centric networks |
US9455835B2 (en) | 2014-05-23 | 2016-09-27 | Palo Alto Research Center Incorporated | System and method for circular link resolution with hash-based names in content-centric networks |
US9456054B2 (en) | 2008-05-16 | 2016-09-27 | Palo Alto Research Center Incorporated | Controlling the spread of interests and content in a content centric network |
US9462006B2 (en) | 2015-01-21 | 2016-10-04 | Palo Alto Research Center Incorporated | Network-layer application-specific trust model |
US9467492B2 (en) | 2014-08-19 | 2016-10-11 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content stream |
US9473405B2 (en) | 2014-03-10 | 2016-10-18 | Palo Alto Research Center Incorporated | Concurrent hashes and sub-hashes on data streams |
US9473475B2 (en) | 2014-12-22 | 2016-10-18 | Palo Alto Research Center Incorporated | Low-cost authenticated signing delegation in content centric networking |
US9473576B2 (en) | 2014-04-07 | 2016-10-18 | Palo Alto Research Center Incorporated | Service discovery using collection synchronization with exact names |
US9497282B2 (en) | 2014-08-27 | 2016-11-15 | Palo Alto Research Center Incorporated | Network coding for content-centric network |
US9503365B2 (en) | 2014-08-11 | 2016-11-22 | Palo Alto Research Center Incorporated | Reputation-based instruction processing over an information centric network |
US9503358B2 (en) | 2013-12-05 | 2016-11-22 | Palo Alto Research Center Incorporated | Distance-based routing in an information-centric network |
US9516144B2 (en) | 2014-06-19 | 2016-12-06 | Palo Alto Research Center Incorporated | Cut-through forwarding of CCNx message fragments with IP encapsulation |
US9535968B2 (en) | 2014-07-21 | 2017-01-03 | Palo Alto Research Center Incorporated | System for distributing nameless objects using self-certifying names |
US9536059B2 (en) | 2014-12-15 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and system for verifying renamed content using manifests in a content centric network |
US9537719B2 (en) | 2014-06-19 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and apparatus for deploying a minimal-cost CCN topology |
US9553812B2 (en) | 2014-09-09 | 2017-01-24 | Palo Alto Research Center Incorporated | Interest keep alives at intermediate routers in a CCN |
US9552493B2 (en) | 2015-02-03 | 2017-01-24 | Palo Alto Research Center Incorporated | Access control framework for information centric networking |
US9590887B2 (en) | 2014-07-18 | 2017-03-07 | Cisco Systems, Inc. | Method and system for keeping interest alive in a content centric network |
US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
US9591022B2 (en) | 2014-12-17 | 2017-03-07 | The Boeing Company | Computer defenses and counterattacks |
US9602596B2 (en) | 2015-01-12 | 2017-03-21 | Cisco Systems, Inc. | Peer-to-peer sharing in a content centric network |
US9609014B2 (en) | 2014-05-22 | 2017-03-28 | Cisco Systems, Inc. | Method and apparatus for preventing insertion of malicious content at a named data network router |
US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
US9626413B2 (en) | 2014-03-10 | 2017-04-18 | Cisco Systems, Inc. | System and method for ranking content popularity in a content-centric network |
US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US9678998B2 (en) | 2014-02-28 | 2017-06-13 | Cisco Technology, Inc. | Content name resolution for information centric networking |
US9686194B2 (en) | 2009-10-21 | 2017-06-20 | Cisco Technology, Inc. | Adaptive multi-interface use for content networking |
US9699198B2 (en) | 2014-07-07 | 2017-07-04 | Cisco Technology, Inc. | System and method for parallel secure content bootstrapping in content-centric networks |
US9716622B2 (en) | 2014-04-01 | 2017-07-25 | Cisco Technology, Inc. | System and method for dynamic name configuration in content-centric networks |
US9729662B2 (en) | 2014-08-11 | 2017-08-08 | Cisco Technology, Inc. | Probabilistic lazy-forwarding technique without validation in a content centric network |
US9729616B2 (en) | 2014-07-18 | 2017-08-08 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over a content centric network |
US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US9800637B2 (en) | 2014-08-19 | 2017-10-24 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
US9832291B2 (en) | 2015-01-12 | 2017-11-28 | Cisco Technology, Inc. | Auto-configurable transport stack |
US9832123B2 (en) | 2015-09-11 | 2017-11-28 | Cisco Technology, Inc. | Network named fragments in a content centric network |
US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
US9836540B2 (en) | 2014-03-04 | 2017-12-05 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
US9846881B2 (en) | 2014-12-19 | 2017-12-19 | Palo Alto Research Center Incorporated | Frugal user engagement help systems |
US9882964B2 (en) | 2014-08-08 | 2018-01-30 | Cisco Technology, Inc. | Explicit strategy feedback in name-based forwarding |
US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
US9916601B2 (en) | 2014-03-21 | 2018-03-13 | Cisco Technology, Inc. | Marketplace for presenting advertisements in a scalable data broadcasting system |
US9916457B2 (en) | 2015-01-12 | 2018-03-13 | Cisco Technology, Inc. | Decoupled name security binding for CCN objects |
US9930146B2 (en) | 2016-04-04 | 2018-03-27 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
US9935791B2 (en) | 2013-05-20 | 2018-04-03 | Cisco Technology, Inc. | Method and system for name resolution across heterogeneous architectures |
US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests in a content centric network |
US9949301B2 (en) | 2016-01-20 | 2018-04-17 | Palo Alto Research Center Incorporated | Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks |
US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
US9959156B2 (en) | 2014-07-17 | 2018-05-01 | Cisco Technology, Inc. | Interest return control message |
US9978025B2 (en) | 2013-03-20 | 2018-05-22 | Cisco Technology, Inc. | Ordered-element naming for name-based packet forwarding |
US9977809B2 (en) | 2015-09-24 | 2018-05-22 | Cisco Technology, Inc. | Information and data framework in a content centric network |
US9986034B2 (en) | 2015-08-03 | 2018-05-29 | Cisco Technology, Inc. | Transferring state in content centric network stacks |
US9992281B2 (en) | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
US9992097B2 (en) | 2016-07-11 | 2018-06-05 | Cisco Technology, Inc. | System and method for piggybacking routing information in interests in a content centric network |
US10003507B2 (en) | 2016-03-04 | 2018-06-19 | Cisco Technology, Inc. | Transport session state protocol |
US10003520B2 (en) | 2014-12-22 | 2018-06-19 | Cisco Technology, Inc. | System and method for efficient name-based content routing using link-state information in information-centric networks |
US10009446B2 (en) | 2015-11-02 | 2018-06-26 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary learning |
US10009266B2 (en) | 2016-07-05 | 2018-06-26 | Cisco Technology, Inc. | Method and system for reference counted pending interest tables in a content centric network |
US10021222B2 (en) | 2015-11-04 | 2018-07-10 | Cisco Technology, Inc. | Bit-aligned header compression for CCN messages using dictionary |
US10027578B2 (en) | 2016-04-11 | 2018-07-17 | Cisco Technology, Inc. | Method and system for routable prefix queries in a content centric network |
US10033642B2 (en) | 2016-09-19 | 2018-07-24 | Cisco Technology, Inc. | System and method for making optimal routing decisions based on device-specific parameters in a content centric network |
US10033639B2 (en) | 2016-03-25 | 2018-07-24 | Cisco Technology, Inc. | System and method for routing packets in a content centric network using anonymous datagrams |
US10038633B2 (en) | 2016-03-04 | 2018-07-31 | Cisco Technology, Inc. | Protocol to query for historical network information in a content centric network |
US10043016B2 (en) | 2016-02-29 | 2018-08-07 | Cisco Technology, Inc. | Method and system for name encryption agreement in a content centric network |
US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
US10063414B2 (en) | 2016-05-13 | 2018-08-28 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US10069729B2 (en) | 2016-08-08 | 2018-09-04 | Cisco Technology, Inc. | System and method for throttling traffic based on a forwarding information base in a content centric network |
US10067948B2 (en) | 2016-03-18 | 2018-09-04 | Cisco Technology, Inc. | Data deduping in content centric networking manifests |
US10075402B2 (en) | 2015-06-24 | 2018-09-11 | Cisco Technology, Inc. | Flexible command and control in content centric networks |
US10075401B2 (en) | 2015-03-18 | 2018-09-11 | Cisco Technology, Inc. | Pending interest table behavior |
US10075521B2 (en) | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
US10078062B2 (en) | 2015-12-15 | 2018-09-18 | Palo Alto Research Center Incorporated | Device health estimation by combining contextual information with sensor data |
US10084764B2 (en) | 2016-05-13 | 2018-09-25 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
US10089651B2 (en) | 2014-03-03 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for streaming advertisements in a scalable data broadcasting system |
US10091330B2 (en) | 2016-03-23 | 2018-10-02 | Cisco Technology, Inc. | Interest scheduling by an information and data framework in a content centric network |
US10089655B2 (en) | 2013-11-27 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for scalable data broadcasting |
US10097346B2 (en) | 2015-12-09 | 2018-10-09 | Cisco Technology, Inc. | Key catalogs in a content centric network |
US10097521B2 (en) | 2015-11-20 | 2018-10-09 | Cisco Technology, Inc. | Transparent encryption in a content centric network |
US10098051B2 (en) | 2014-01-22 | 2018-10-09 | Cisco Technology, Inc. | Gateways and routing in software-defined manets |
US10103989B2 (en) | 2016-06-13 | 2018-10-16 | Cisco Technology, Inc. | Content object return messages in a content centric network |
US10101801B2 (en) | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
US10116605B2 (en) | 2015-06-22 | 2018-10-30 | Cisco Technology, Inc. | Transport stack name scheme and identity management |
US10122624B2 (en) | 2016-07-25 | 2018-11-06 | Cisco Technology, Inc. | System and method for ephemeral entries in a forwarding information base in a content centric network |
US10129365B2 (en) | 2013-11-13 | 2018-11-13 | Cisco Technology, Inc. | Method and apparatus for pre-fetching remote content based on static and dynamic recommendations |
US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
US10148572B2 (en) | 2016-06-27 | 2018-12-04 | Cisco Technology, Inc. | Method and system for interest groups in a content centric network |
US10172068B2 (en) | 2014-01-22 | 2019-01-01 | Cisco Technology, Inc. | Service-oriented routing in software-defined MANETs |
US10204013B2 (en) | 2014-09-03 | 2019-02-12 | Cisco Technology, Inc. | System and method for maintaining a distributed and fault-tolerant state over an information centric network |
US10212196B2 (en) | 2016-03-16 | 2019-02-19 | Cisco Technology, Inc. | Interface discovery and authentication in a name-based network |
US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
US10243851B2 (en) | 2016-11-21 | 2019-03-26 | Cisco Technology, Inc. | System and method for forwarder connection information in a content centric network |
US10257271B2 (en) | 2016-01-11 | 2019-04-09 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
US10263965B2 (en) | 2015-10-16 | 2019-04-16 | Cisco Technology, Inc. | Encrypted CCNx |
US10305865B2 (en) | 2016-06-21 | 2019-05-28 | Cisco Technology, Inc. | Permutation-based content encryption with manifests in a content centric network |
US10305864B2 (en) | 2016-01-25 | 2019-05-28 | Cisco Technology, Inc. | Method and system for interest encryption in a content centric network |
US10313227B2 (en) | 2015-09-24 | 2019-06-04 | Cisco Technology, Inc. | System and method for eliminating undetected interest looping in information-centric networks |
US10320675B2 (en) | 2016-05-04 | 2019-06-11 | Cisco Technology, Inc. | System and method for routing packets in a stateless content centric network |
US10320760B2 (en) | 2016-04-01 | 2019-06-11 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
US10333840B2 (en) | 2015-02-06 | 2019-06-25 | Cisco Technology, Inc. | System and method for on-demand content exchange with adaptive naming in information-centric networks |
US10355999B2 (en) | 2015-09-23 | 2019-07-16 | Cisco Technology, Inc. | Flow control with network named fragments |
US10404450B2 (en) | 2016-05-02 | 2019-09-03 | Cisco Technology, Inc. | Schematized access control in a content centric network |
US10425503B2 (en) | 2016-04-07 | 2019-09-24 | Cisco Technology, Inc. | Shared pending interest table in a content centric network |
US10430839B2 (en) | 2012-12-12 | 2019-10-01 | Cisco Technology, Inc. | Distributed advertisement insertion in content-centric networks |
US10447805B2 (en) | 2016-10-10 | 2019-10-15 | Cisco Technology, Inc. | Distributed consensus in a content centric network |
US10454820B2 (en) | 2015-09-29 | 2019-10-22 | Cisco Technology, Inc. | System and method for stateless information-centric networking |
US10547589B2 (en) | 2016-05-09 | 2020-01-28 | Cisco Technology, Inc. | System for implementing a small computer systems interface protocol over a content centric network |
US10610144B2 (en) | 2015-08-19 | 2020-04-07 | Palo Alto Research Center Incorporated | Interactive remote patient monitoring and condition management intervention system |
US10701038B2 (en) | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation in a content centric network |
US10742596B2 (en) | 2016-03-04 | 2020-08-11 | Cisco Technology, Inc. | Method and system for reducing a collision probability of hash-based names using a publisher identifier |
US10956412B2 (en) | 2016-08-09 | 2021-03-23 | Cisco Technology, Inc. | Method and system for conjunctive normal form attribute matching in a content centric network |
US11436656B2 (en) | 2016-03-18 | 2022-09-06 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
Citations (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5442699A (en) | 1994-11-21 | 1995-08-15 | International Business Machines Corporation | Searching for patterns in encrypted data |
US5742814A (en) | 1995-11-01 | 1998-04-21 | Imec Vzw | Background memory allocation for multi-dimensional signal processing |
US5920854A (en) | 1996-08-14 | 1999-07-06 | Infoseek Corporation | Real-time document collection search engine with phrase indexing |
US5953531A (en) | 1997-07-25 | 1999-09-14 | International Business Machines Corporation | Method of, system for, and computer program product for minimizing loop execution time by optimizing block/tile sizes |
US6018735A (en) | 1997-08-22 | 2000-01-25 | Canon Kabushiki Kaisha | Non-literal textual search using fuzzy finite-state linear non-deterministic automata |
US6038398A (en) | 1997-05-29 | 2000-03-14 | Hewlett-Packard Co. | Method and apparatus for improving performance of a program using a loop interchange, loop distribution, loop interchange sequence |
US6131092A (en) | 1992-08-07 | 2000-10-10 | Masand; Brij | System and method for identifying matches of query patterns to document text in a document textbase |
US6279113B1 (en) | 1998-03-16 | 2001-08-21 | Internet Tools, Inc. | Dynamic signature inspection-based network intrusion detection |
US6327699B1 (en) | 1999-04-30 | 2001-12-04 | Microsoft Corporation | Whole program path profiling |
US6338057B1 (en) | 1997-11-24 | 2002-01-08 | British Telecommunications Public Limited Company | Information management and retrieval |
US20020021838A1 (en) | 1999-04-19 | 2002-02-21 | Liaison Technology, Inc. | Adaptively weighted, partitioned context edit distance string matching |
US20040068501A1 (en) | 2002-10-03 | 2004-04-08 | Mcgoveran David O. | Adaptive transaction manager for complex transactions and business process |
US6754650B2 (en) | 2001-05-08 | 2004-06-22 | International Business Machines Corporation | System and method for regular expression matching using index |
US6772415B1 (en) | 2000-01-31 | 2004-08-03 | Interuniversitair Microelektronica Centrum (Imec) Vzw | Loop optimization with mapping code on an architecture |
US6785677B1 (en) | 2001-05-02 | 2004-08-31 | Unisys Corporation | Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector |
US6792546B1 (en) | 1999-01-15 | 2004-09-14 | Cisco Technology, Inc. | Intrusion detection signature analysis using regular expressions and logical operators |
US6880087B1 (en) | 1999-10-08 | 2005-04-12 | Cisco Technology, Inc. | Binary state machine system and method for REGEX processing of a data stream in an intrusion detection system |
US20050114700A1 (en) | 2003-08-13 | 2005-05-26 | Sensory Networks, Inc. | Integrated circuit apparatus and method for high throughput signature based network applications |
US6912526B2 (en) | 2002-04-16 | 2005-06-28 | Fujitsu Limited | Search apparatus and method using order pattern including repeating pattern |
US6952821B2 (en) | 2002-08-19 | 2005-10-04 | Hewlett-Packard Development Company, L.P. | Method and system for memory management optimization |
US6952694B2 (en) | 2002-06-13 | 2005-10-04 | Intel Corporation | Full regular expression search of network traffic |
US20060085858A1 (en) | 2004-10-19 | 2006-04-20 | Noel Steven E | Minimum-cost network hardening |
US20070074195A1 (en) | 2005-09-23 | 2007-03-29 | Shih-Wei Liao | Data transformations for streaming applications on multiprocessors |
US7225188B1 (en) | 2002-02-13 | 2007-05-29 | Cisco Technology, Inc. | System and method for performing regular expression matching with high parallelism |
US20070192861A1 (en) | 2006-02-03 | 2007-08-16 | George Varghese | Methods and systems to detect an evasion attack |
US7260558B1 (en) | 2004-10-25 | 2007-08-21 | Hi/Fn, Inc. | Simultaneously searching for a plurality of patterns definable by complex expressions, and efficiently generating data for such searching |
US20080010680A1 (en) | 2006-03-24 | 2008-01-10 | Shenyang Neusoft Co., Ltd. | Event detection method |
US20090037889A1 (en) | 2005-12-10 | 2009-02-05 | Long Li | Speculative code motion for memory latency hiding |
US20090083724A1 (en) | 2007-09-26 | 2009-03-26 | Eichenberger Alexandre E | System and Method for Advanced Polyhedral Loop Transformations of Source Code in a Compiler |
US7594260B2 (en) | 1998-11-09 | 2009-09-22 | Sri International | Network surveillance using long-term and short-term statistical profiles to determine suspicious network activity |
US20090259997A1 (en) | 2008-04-09 | 2009-10-15 | Vinod Grover | Variance analysis for translating cuda code for execution by a general purpose processor |
US20090307673A1 (en) | 2007-09-26 | 2009-12-10 | Eichenberger Alexandre E | System and Method for Domain Stretching for an Advanced Dual-Representation Polyhedral Loop Transformation Framework |
US20100050164A1 (en) | 2006-12-11 | 2010-02-25 | Nxp, B.V. | Pipelined processor and compiler/scheduler for variable number branch delay slots |
US20100162225A1 (en) | 2008-12-19 | 2010-06-24 | International Business Machines Corporation | Cross-product refactoring apparatus and method |
-
2010
- 2010-03-08 US US12/719,750 patent/US8688619B1/en active Active
Patent Citations (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131092A (en) | 1992-08-07 | 2000-10-10 | Masand; Brij | System and method for identifying matches of query patterns to document text in a document textbase |
US5442699A (en) | 1994-11-21 | 1995-08-15 | International Business Machines Corporation | Searching for patterns in encrypted data |
US5742814A (en) | 1995-11-01 | 1998-04-21 | Imec Vzw | Background memory allocation for multi-dimensional signal processing |
US5920854A (en) | 1996-08-14 | 1999-07-06 | Infoseek Corporation | Real-time document collection search engine with phrase indexing |
US6038398A (en) | 1997-05-29 | 2000-03-14 | Hewlett-Packard Co. | Method and apparatus for improving performance of a program using a loop interchange, loop distribution, loop interchange sequence |
US5953531A (en) | 1997-07-25 | 1999-09-14 | International Business Machines Corporation | Method of, system for, and computer program product for minimizing loop execution time by optimizing block/tile sizes |
US6018735A (en) | 1997-08-22 | 2000-01-25 | Canon Kabushiki Kaisha | Non-literal textual search using fuzzy finite-state linear non-deterministic automata |
US6338057B1 (en) | 1997-11-24 | 2002-01-08 | British Telecommunications Public Limited Company | Information management and retrieval |
US6279113B1 (en) | 1998-03-16 | 2001-08-21 | Internet Tools, Inc. | Dynamic signature inspection-based network intrusion detection |
US7594260B2 (en) | 1998-11-09 | 2009-09-22 | Sri International | Network surveillance using long-term and short-term statistical profiles to determine suspicious network activity |
US6792546B1 (en) | 1999-01-15 | 2004-09-14 | Cisco Technology, Inc. | Intrusion detection signature analysis using regular expressions and logical operators |
US20020021838A1 (en) | 1999-04-19 | 2002-02-21 | Liaison Technology, Inc. | Adaptively weighted, partitioned context edit distance string matching |
US6327699B1 (en) | 1999-04-30 | 2001-12-04 | Microsoft Corporation | Whole program path profiling |
US6880087B1 (en) | 1999-10-08 | 2005-04-12 | Cisco Technology, Inc. | Binary state machine system and method for REGEX processing of a data stream in an intrusion detection system |
US6772415B1 (en) | 2000-01-31 | 2004-08-03 | Interuniversitair Microelektronica Centrum (Imec) Vzw | Loop optimization with mapping code on an architecture |
US6785677B1 (en) | 2001-05-02 | 2004-08-31 | Unisys Corporation | Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector |
US6754650B2 (en) | 2001-05-08 | 2004-06-22 | International Business Machines Corporation | System and method for regular expression matching using index |
US7225188B1 (en) | 2002-02-13 | 2007-05-29 | Cisco Technology, Inc. | System and method for performing regular expression matching with high parallelism |
US6912526B2 (en) | 2002-04-16 | 2005-06-28 | Fujitsu Limited | Search apparatus and method using order pattern including repeating pattern |
US6952694B2 (en) | 2002-06-13 | 2005-10-04 | Intel Corporation | Full regular expression search of network traffic |
US6952821B2 (en) | 2002-08-19 | 2005-10-04 | Hewlett-Packard Development Company, L.P. | Method and system for memory management optimization |
US20040068501A1 (en) | 2002-10-03 | 2004-04-08 | Mcgoveran David O. | Adaptive transaction manager for complex transactions and business process |
US20050114700A1 (en) | 2003-08-13 | 2005-05-26 | Sensory Networks, Inc. | Integrated circuit apparatus and method for high throughput signature based network applications |
US20060085858A1 (en) | 2004-10-19 | 2006-04-20 | Noel Steven E | Minimum-cost network hardening |
US7260558B1 (en) | 2004-10-25 | 2007-08-21 | Hi/Fn, Inc. | Simultaneously searching for a plurality of patterns definable by complex expressions, and efficiently generating data for such searching |
US20070074195A1 (en) | 2005-09-23 | 2007-03-29 | Shih-Wei Liao | Data transformations for streaming applications on multiprocessors |
US20090037889A1 (en) | 2005-12-10 | 2009-02-05 | Long Li | Speculative code motion for memory latency hiding |
US20070192861A1 (en) | 2006-02-03 | 2007-08-16 | George Varghese | Methods and systems to detect an evasion attack |
US20080010680A1 (en) | 2006-03-24 | 2008-01-10 | Shenyang Neusoft Co., Ltd. | Event detection method |
US20100050164A1 (en) | 2006-12-11 | 2010-02-25 | Nxp, B.V. | Pipelined processor and compiler/scheduler for variable number branch delay slots |
US20090083724A1 (en) | 2007-09-26 | 2009-03-26 | Eichenberger Alexandre E | System and Method for Advanced Polyhedral Loop Transformations of Source Code in a Compiler |
US20090307673A1 (en) | 2007-09-26 | 2009-12-10 | Eichenberger Alexandre E | System and Method for Domain Stretching for an Advanced Dual-Representation Polyhedral Loop Transformation Framework |
US20090259997A1 (en) | 2008-04-09 | 2009-10-15 | Vinod Grover | Variance analysis for translating cuda code for execution by a general purpose processor |
US20100162225A1 (en) | 2008-12-19 | 2010-06-24 | International Business Machines Corporation | Cross-product refactoring apparatus and method |
Non-Patent Citations (166)
Title |
---|
Ahmed et al, Synthesizing Transformations for Locality Enhancement of Imperfectly-nested Loops Nests, ACM ICS 2000, pp. 141-152. |
Ahmed et al, Tiling Imperfectly-nested Loop Nests, IEEE 2000,14 pgs. |
Aho et al, Compilers, Principles, Techniques, and Tools, Addison-Wesley Publishing Company, pp. 173-186, Reading, MA 1985. |
Aho et al, Efficient String Matching: An Aid to Bibliographic Search, Communications of the ACM, vol. 18, No. 6, Jun. 1975, pp. 333-340. |
Aigner et al, An Overview of the SUIF2 Compiler Infrastructure, Computer Systems Laboratory, Standford University, 1999, pp. 1-14. |
Aldwairi et al, Configurable String Matching Hardware for Speeding Up Intrusion Detection, ACM SIGARCH Computer Architecture News, Vo. 33, No. 1, Mar. 2005, pp. 99-107. |
Allen et al, Conversion of Control Dependence to Data Dependence, ACM 1983, pp. 177-189. |
Ancourt et al, Scanning Polyhedra with DO Loops, Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming, Apr. 21-24, 12 pgs. 1991. |
Appel, A.W., Deobfuscation is in NP, Princeton University, Aug. 21, 2002, 2 pgs. |
Ayers et al, Aggressive Inlining, PLDI '92 Las Vegas, NV, USA. |
Ball et al, Branch Prediction for Free, Technical Report #1137, University of Wisconsin, 1993, 29 pgs. |
Barak et al, On the (Im)possibility of Obfuscating Programs, Advances in Cryptology, CRYPTO 2001, vol. 2139, pp. 1-18. |
Barthou et al, Maximal Static Expansion, International Journal of Parallel Programming, vol. 28, No. 3, 2000, 20 pgs. |
Bastoul et al, Putting Polyhedral Loop Transformations to Work, INRIA, No. 4902, Jul. 2003. |
Bastoul, C., Generating Loops for Scanning Polyhedra: CLooG User's Guide, First Version, Rev. 1.6, Apr. 8, 2004, pp. 1-30. |
Bastoul, Code Generation in the Polyhedral Model Is Easier Than You Think, Proceedings of the 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. |
Bastoul, Efficient Code Generation for Automatic Parallelization and Optimization, Proceedings of the Second International Symposium on Parallel and Distributed Computing, 2003. |
Bednara et al, Synthesis for FPGA Implementations From Loop Algorithms, In Proceedings ofthe Int. Conf. on Engineering of Reconfigurable Systems and Algorithms (ERSA), Jun. 2001. |
Berkelaar et al, The IpSolve Package, Sep. 21, 2007, pp. 1-9. |
Bik et al, Implementation of Fourier-Motzkin Elimination, Technical Report 94-42, Department. of Computer Science, Leiden University, 1994. |
Bondhugula et al, A Practical Automatic Polyhedral Parallelizer and Locality Optimizer, PDLI '08, Jun. 7-13, 2008. |
Bondhugula et al, Affine Transformations for Communication Minimal Parallelization and Locality Optimization of Arbitrarily Nested Loop Sequences, OSU CSE Technical Report, OSU-CISRC-5/07/TR43, pp. 1-30. |
Bondhugula et al, Automatic Mapping of Nested Loops to FPGAs, OSU, Mar. 19, 2007. |
Bondhugula et al,A Practical and Fully Automatic Polyhedral Program Optimization System,OSU OSU-CISRC-10/07-TR70. |
Bondhugula et al. Toward Effective Automatic Parallelization for Multi\par core Systems. In proceeding of 22nd IEEE International Symposium on Parallel and Distributed Processing, (IPDP 2008) Miami, Florida USA, Apr. 14, 2008. |
Boulet et al, (Pen)-ultimate tiling?, Laboratoire de l'Informatique du Parallelisme, Research Report No. 93-96, Nov. 1993, pp. 1-17. |
Boulet et al, Scanning polyhedra without Do-loops, Parallel Architectures and Compilation Techniques, 1998, Proceedings 1998 International Conference on Oct. 12-18, 1998, pp. 4-11. |
Briggs et al, Effective Partial Redundancy Elimination, Sigplan PLDI, Jun. 1994, pp. 1-12. |
Brumley et al, Towards Automatic Generation of Vulnerability-Based Signatures, Proceedings of the 2006 IEEE Symposium on Security and Privacy, pp. 1-15. |
Burger et al, Scaling to the End of the Silicon with EDGE Architectures, Computer, Jul. 2004, pp. 44-55. |
Burke et al, Flow-Insensitive Interprocedural Alias Analysis in the Presence of Pointers, Lecture Notes in Computer Science, Proceedings from the 7th International Workshop on Languages and Compilers for Parallel Computing, vol. 892, 1995, 18 pgs. |
Cifuentes, C., A Structuring Algorithm for Decompilation, XIX Conferencia Latinoamericana de Inforamatica, Buenos Aires, Argentina, Aug. 2-6, 1993, pp. 267-276. |
Cifuentes,Structuring Decompiled Graphs, Department of Computer Science, University of Tasmania, 1994, 15 pgs. |
Clauss et al, Automatic Memory Layout Transformations to Optimize Spatial Locality in Parameterized Loop Nests, ACM SIGARCH Computer Architecture News, vol. 28, No. 1, 2000, pp. 1-9. |
Clauss et al, Deriving Formulae to Count Solutions to Parameterized Linear Systems using Ehrhart Polynomials: Applications to the Analysis of Nested-Loop Programs, Apr. 10, 1997. |
ClearSpeed Introductory Programming Manual-The ClearSpeed Software Development Kit, ClearSpeed Technology Inc. 2007. |
ClearSpeed Programming Model: Case Study, ClearSpeed Technology Inc., 2007. |
ClearSpeed Technical Training: Software Development, ClearSpeed Technology Inc., 2007. |
ClearSpeed-Accelerator Technology Primer, ClearSpeed Technology Primer, ClearSpeed Technology, Inc., 2006. |
ClearSpeed-ClearSpeed Programming Model: An introduction, ClearSpeed Technology Inc. 2007. |
ClearSpeed-ClearSpeed Programming Model: Card-side Libraries, ClearSpeed Technology Inc. 2007. |
ClearSpeed-ClearSpeed Programming Model: Optimizing Performance, ClearSpeed Technology Inc. 2007. |
ClearSpeed-CSX Processor Architecture Whitepaper, ClearSpeed Technology Plc., 2006. |
ClearSpeed-Introduction to ClearSpeed Acceleration, ClearSpeed Technology Inc., 2007, 27 pages. |
ClearSpeed-Introduction to ClearSpeed Acceleration, Powerpoint presentation, ClearSpeed Technology Plc, 2007, 133 pgs. |
ClearSpeed-Overview of Architecture: System Level (host) Architecture and ClearSpeed Architecture, ClearSpeed Technology Inc., 2007. |
Click et al, A Simple Graph-Based Intermediate Representation, ACM IR'95, 1995, pp. 35-49. |
Click, C., Global Code Motion Global Value Numbering, ACM SIGPLAN' 95, pp. 246-257, 1995. |
Collard et al, Automatic Generation of Data Parallel Code, Proceedings of the Fourth International Workshop on Compilers for Parallel Computers, Dec. 1993. |
Collard et al, Fuzzy Array Dataflow Analysis, ACM Principles and Practice of Parallel Programming, PPOpp'95, Jul. 1995, 10 pgs. |
Collberg et al, A Taxonomy of Obfuscating Transformations, Technical Report 148, Department of Computer Science, University of Auckland, Jul. 1997. http://www.cs.auckland.ac.nz/-Ccollberg/Research/Publications/CollbergThomborsonLow97a. |
Collberg et al, Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs, POPL 98, San Diego, CA 1998. |
Cooper et al, Operator Strength Reduction, ACM Transactions on Programming Languages and Systems, vol. 23, No. 5, pp. 603-625, Sep. 2001. |
Cooper et al, SCC-Based Value Numbering, CRPC-TR95636-S, Oct. 1995, pp. 1-12. |
Cousot et al, Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints, Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Jan. 17-19, 1977, 16 pgs. |
Cytron et al, Efficiently Computing Static Single Assignment Form and The Control Dependence Graph, Mar. 7, 1991, pp. 1-52. |
Darte et al, Automatic parallelization based on multi-dimensional scheduling, Research Report No. 94-24, Laboratoire de l'Informatique de Parallelisme, 1994, pp. 1-34. |
Darte et al, Lattice-Based Memory Allocation, ACM CASES'03, pp. 298-308, 2003. |
Darte et al, Lattice-Based Memory Allocation, IEEE Transactions on Computers, vol. 54, No. 10, Oct. 2005, pp. 1242-1257. |
Darte et al, Lattice-Based Memory Allocation, Research Report No. 2004-23, Apr. 2004, 1-43. |
Darte et al, Revisiting the decomposition of Karp, Miller and Winograd, Parallel Processing Letters, 1995. |
Darte et al, Scheduling and Automatic Parallelization, Chapter 5: Parallelelism Detection in Nested Loops, Birkhauser Boston, 2000, pp. 193-226. |
Ezick et al, ALEF: A SAT Solver for MPI-Connected Clusters, Technical Report, Aug. 13, 2008, 21 pgs. |
Featurier, Some efficient solutions to the affine scheduling problem Part I One-dimensional Time, Laboratoire MASI, Institute Blaise Pascal, Universite de Versailles St-Quentin, Apr. 23, 1993. |
Feautrier et al, Solving Systems of Affine (In)Equalities: PIP's User's Guide, 4th Version, rev. 1.4, Oct. 18, 2003, pp. 1-25. |
Feautrier, P., Array Expansion, Universite de Versailles St-Quentin, Jul. 1988, pp. 1-20. |
Feautrier, P., Dataflow Analysis of Array and Scalar References, Int. J. of Parallel Programming, vol. 20, No. 1, 1991, pp. 1-37. |
Feautrier, P., Parametric Integer Programming, RAIRO Operationnelle, vol. 22, Sep. 1988, pp. 1-25. |
Feautrier, P., Some efficient solutions to the affine scheduling problem, Part II, Multidimensional Time, IBP/MASI, No. 92.78, 1992, pp. 1-28. |
Ferrante et al, The Program Dependence Graph and Its Use in Optimization, ACM Transactions on Programming Languages and Systems, vol. 9, No. 3, Jul. 1987, pp. 319-349. |
Franke et al, Compiler Transformation of Pointers to Explicit Array Accesses in DSP Applications, Institute for Computing Systems Architecture (ICSA), University of Edinburgh, 2001. |
Gautam et al, The Z-Polyhedral Model, SIGPLAN Symp. on Principles and Practice of Parallel Programming, pp. 237-248, New York, NY, USA, 2007. |
George et al, Iterated Register Coalescing, ACM Transactions on Programming Languages and Systems, vol. 18, No. 3, May 1996, pp. 300-324. |
Ghosh et al, Cache Miss Equations: A Compiler Framework for Analyzing and Tuning Memory Behavior, ACM Transactions on Programming Languages and Systems, vol. 21, No. 4, Jul. 1999, pp. 702-745. |
Griebl et al, Code Generation in the Polytope Model, pact, pp. 106, Seventh International Conference on Parallel Architectures and Compilation Techniques (PACT'98), 1998. |
Griebl et al, Forward Communication Only Placements and their Use for Parallel Program Construction, University of Passau, 2002. |
Griebl et al, Space-Time Mapping and Tiling: A Helpful Combination, Concurrency and Comput.: Pract. Exper. 2004, 16:221-246. |
Griebl, Automatic Parallelization of Loop Programs for Distributed Memory Architectures, Fakultat fur Mathematik und Informatik, Jun. 2, 2004. |
Griebl, On the Mechanical Tiling of Space—Time Mapped Loop Nests, Technical Report MIP-0009, Fakultät für Mathematik and Informatik, Universität Passau, Germany, 2000. |
Gu et al, Symbolic Array Dataflow Analysis for Array Privatization and Program Parallelization, Proceedings of Supercomputing '95, pp. 1-19, 1995. |
Gustafson et al, ClearSpeed-Whitepaper: Accelerating the Intel® Math Kernel Library, ClearSpeed Technology Inc., 2006. |
Heintze et al, Ultra-fast Aliasing Analysis Using CLA: A Million Lines of C Code in a Second, ACM SIGPLAN Notices, vol. 36, No. 5, 2001, 10 pgs. |
Intel® QuickAssist Technology Accelerator Abstraction Layer (AAL), White Paper, Intel® Corporation, 2007, 8 pgs. |
International Preliminary Report on Patentability dated Jan. 6, 2009 for PCT Application No. PCT/US2007/72260. |
International Preliminary Report on Patentability dated Nov. 1, 2011 for PCT Application No. PCT/US2010/033049. |
International Preliminary Report on Patentability dated Oct. 27, 2011 for PCT Application No. PCT/US2010/031524. |
International Report on Patentability dated Mar. 31, 2011 for PCT Application No. PCT/US2009/057194. |
International Search Report and the Written Opinion dated Mar. 18, 2010 for PCT Application No. PCT/US2009/057194. |
International Search Report and the Written Opinion dated Nov. 26, 2010 for PCT Application No. PCT/US2010/031524. |
International Search Report and the Written Opinion of the International Searching Authority dated Jan. 17, 2008 for PCT Application No. PCT/US2007/72260. |
International Search Report and Written Opinion dated Dec. 1, 2010 for PCT/US2010/033049. |
Irigoin et al, Supernode Partitioning, Proceedings of the 15th Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, San Diego, CA, Jan. 1988. |
JGAP Frequently Asked Questions, Sourceforge.net, Accessed 2007, pp. 1-61. |
Jimenez et al, Register Tiling in Nonrectangular Iteration Spaces, ACM Transactions on Programming Languages and Systems, vol. 24, No. 4, pp. 409-453, Jul. 2002. |
Jonsson et al., "Verifying Safety Properties of a Class of Infinite-State Distributed Algorithms", Lecture Notes in Computer Science, 1995, vol. 939, pp. 42-53. * |
Kandemir et al, Optimizing Spatial Locality in Loop Nests using Linear Algebra, Proc. 7th International Workshop on Compliers for Parallel Computers, Sweden Jun. 1998. |
Kelly et al, Code Generation for Multiple Mappings, frontiers, Fifth Symposium on the Frontiers of Massively Parallel Computation (Frontiers '95), 1995, pp. 1-11. |
Kelly, W. A., Ph.D. Dissertation, Optimization within a Unified Transformation Framework, Dec. 8, 1996, pp. 1-89. |
Kildall, G.A., A Unified Approach to Global Program Optimization, Annual Symposium on Principles of Programming Languages, Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pp. 194-206, 1973. |
Knoop et al, Partial Dead Code Elimination, Conference on Programming Language Design and Implementation, Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, pp. 147-158, 1994. |
Kodukula et al, An Experimental Evaluation of Tiling and Shacking for Memory Hierarchy Management, ACM ICS'99, 1999, pp. 482-491. |
Lam, M., Software Pipeline: An Effective Scheduling Technique for VLIW Machines, Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, Jun. 22-24, 1988, pp. 318-328. |
Landi, W. Undecidability of Static Analysis, From ACM Letters on Programming Languages and Systems, vol. 1, No. 4, 1992, pp. 1-17. |
Le Verge, H., A Note on Chernikova's Algorithm, Research Report, Jul. 27, 1994, pp. 1-25. |
Lengauer et al, A Fast Algorithm for Finding Dominators in a Flowgraph, ACM Transaction on Programming Languages and Systems, vol. 1, No. 1, Jul. 1979, pp. 121-141. |
Lethin et al, Mapping Loops for the ClearSpeed Processor Using the R-Stream Compiler, Feb. 4, 2008. |
Lethin et al, R-Stream: A Parametric High Level Compiler, Reservoir Labs, Inc., 2006, 2 pgs. |
Lethin et al, The R-Stream 3.0 Compiler, Dec. 18, 2007. |
Lethin et al, The R-Stream 3.0 Compiler, Feb. 4, 2008. |
Lethin et al, The R-Stream 3.0: Polyheadral Mapper, XPCA Review, Feb. 6, 2007. |
Lethin, Software Tools to Optimize BMD Radar Algorithms to COTS Hardware—Final Report, Sep. 12, 2007. |
Lim et al, Blocking and Array Contraction Across Arbitrarily Nested Loops Using Affine Partitioning, ACM PPOPP'01, 2001, pp. 1-10. |
Lim et al, Maximizing Parallelism and Minimizing Synchronization with Affine Transforms, 24th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Paris, France, Jan. 1997. |
Loechner et al, Precise Data Locality Optimization of Nested Loops, The Journal of Supercomputing, 21, pp. 37-76, 2002. |
Mahajan et al., "Zchaff2004: An Efficient SAT Solver", LNCS, 2005, 360-375. * |
Maydan et al, Array Data-Flow Analysis and its Use in Array Privatization, ACM-20th PoPL-1, 1993, pp. 2-15. |
McWhirter et al, Normalised Givens Rotations for Recursive Least Squares Processing, VLSI Signal Processing, VIII, 1995. IEEE Signal Processing Society [Workshop on], 1995, pp. 323-332. |
Megiddo et al, Optimal Weighted Loop Fusion for Parallel Programs, ACM Symposium on Parallel Algorithms and Architectures archive Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures, pp. 282-291, 1997. |
Meister et al, Optimizing and Mapping Tool Chain for FPGA Programming—Final Report Phase 1 SBIR Project, Sep. 28, 2007. |
Meister et al., Static Software Tools to Optimize BMD Radar Algorithms to COTS Hardware, Quarterly Report #1, 2008, pp. 1-22. |
Meister, B. Stating and Manipulating Periodicity in the Polytope Model. Applications to Program Analysis and Optimization, Universite Louis Pasteur Strasbourg, 2004, pp. 1-138. |
Nookala et al, A Library for Z-Polyhedral Operations, Publication Interne No. 1330, IRISA, Publication No. 1330, May 2000, pp. 1-29. |
Pop et al, Fast Recognition of Scalar Evolutions on Three-Address SSA Code, CRI/ENSMP Research Report, A/354/CRI, Apr. 1, 2004. |
Pop et al, Induction Variable Analysis with Delayed Abstractions, ACM Transactions on Architecture and Code Optimization, vol. V, No. N, pp. 1-30, Aug. 2005. |
Pugh, W. The Omega Test: a fast and practical integer programming algorithm for dependence analysis, ACM, Aug. 1992, pp. 1-19. |
Quillere et al, Generation of Efficient Nested Loops from Polyhedra, 2000 Kluwer Academic Publishers, 2000. |
Quillere et al, on Code-Generation in the Polyhedral Model, 2001, 10 pgs. |
Quinton et al, On Manipulating Z-polyhedra, IRISA, Publication Interne No. 1016, Jul. 1996. |
Quinton et al, The Mapping of Linear Recurrence Equations on Regular Arrays, Journal of VLSI Signal Processing, vol. 1, 35 pgs. (1989). |
Rabinkin et al, Adaptive Array Beamforming with Fixed-Point Arithmetic Matrix Inversion using Givens Rotations, Proc. SPIE vol. 4474, 2001, pp. 294-305. |
Rau, B. R., Iterative Modulo scheduling: An Algorithm for Software Pipelining Loops, ACM MIRCRO, 1994, pp. 63-74. |
Reconfigurable Application-Specific Computing User's Guide, 2007, pp. 1-257. |
Renganarayana, et al, A Geometric Programming Framework for Optimal Multi-Level Tiling, Conference on High Performance Networking and Computing, Proceedings of the 2004 ACM/IEEE conference on Supercomputing, 2004, 14 pgs. |
Reservoir Labs, Inc., Optimizing and Mapping Tool Chain for FPGA Programming, Phase II Proposal, Proposal No. D2-0627, Dec. 2007, 40 pgs. |
Reservoir Labs, Software Tools to Optimize BMD Radar Algorithms to COTS Hardware: Phase II Proposal, Topic No. MDA06-031, Proposal No. B2-1415. |
Ros-Giralt et al, Generation of High-Performance Protocol-Aware Analyzers with Applications in Intrusion Detection Systems, Proc. SPIE 7709, Cyber Security, Situation Management, and Impact Assessment II; and Visual Analytics for Homeland Defense and Security II, 770909 (Apr. 28, 2010), 8 pgs. |
Ros-Girolt et al, Compilation and Optimization of Protocol Analyzers for High-Speed Network Intrusion Prevention, High Performance Networks / High-Speed Network Security Systems, Topic No. 41b, Reservoir Labs, Inc. 2009, pp. 1-54. |
Sankaralingam et al, Distributed Microarchitectural Protocols in the TRIPS Prototype Processor, International Symposium on Microacritecture, Proceedings of the 39th Annual IEEE/ACM International symposium on Microarchitecture, 2006, 12 pgs. |
Schreiber et al, Near-Optimal Allocation of Local Memory Arrays, HP Laboratories Palo Alto, HPL-2004-24, Feb. 17, 2004. |
Schwartz et al, VSIPL 1.1 API, 2002, pp. 1-739. |
Seghir et al, Counting Points in Integer Affine Transformation of Parametric Z-polytopes, Research report, Universite Louis Pasteur, LSITT (UMR CNRS 7005), Mar. 2007, pp. 1-24. |
Seghir et al, Memory Optimization by Counting Points in Integer Transformation of Parametric Polytopes, ACM CASES'06, 2006, pp. 74-82. |
Simpson, L. T., Thesis, Value-Driven Redundancy Elimination, Rice University, 1996, pp. 1-150. |
Song et al, A Compiler Framework for Tiling Imperfectly-Nested Loops, Languages and Compilers for Parallel Computing, vol. 1863, 2000, pp. 1-17. |
Springer et al, An Architecture for Software Obfuscation, PowerPoint presentation, 2007. |
Springer et al, An Architecture for Software Obfuscation—Final Technical Report for Phase 1 SBIR, Jul. 30, 2007. |
The Cell Roadmap, Published on PPCNUX at http://www.ppcnux.com/?q=print/6666, Accessed 2006. |
The Polylib Team, Polylib User's Manual, Apr. 24, 2002, pp. 1-44. |
Touati et a, Early Control of Register Pressure for Software Pipelined Loops, In Proceedings of the International Conference on Compiler Construction (CC), Warsaw, Poland, Apr. 2003. Springer-Verlag, 15 pgs. |
Tu et al, Automatic Array Privatization, Lecture Notes in Computer Science, vol. 1808, 2001, 22 pgs. |
Tu, P., Thesis, Automatic Array Privatization and Demand-Driven Symoblic Analysis, University of Illinois, 1995, pp. 1-144. |
Udupa et al, Deobfuscation—Reverse Engineering Obfuscated Code, Proceedings of the 12th Working Conference on Reverse Engineering (WCRE'05), 10 pgs. 2005. |
Vangal et al, An 80-Tile 1.28TFLOPS Network-on-Chip in 65Nm CMOS, ISSCC 2007, Session 5, Microprocessors/5.2, 3 pgs. |
Vasilache et al, Alef: A SAT Solver for MPI-Connected Clusters, Reservoir Labs, Mar. 2009, 6 pgs. |
Vasilache et al, Polyhedral Code Generation in the Real World, Compiler Construction, vol. 3923, 2006, 15 pgs. |
Vasilache, Scalable Program Optimization Techniques in the Polyhedral Model, Thesis, Universite de Paris-SUD, UFR Scientifique d'orsay Inria Futures, Sep. 28, 2007. |
Verdoolaege et al, Counting Integer Points in Parametric Polytopes using Barvinkok's Rational Functions, Algorithmica, 2007, pp. 1-33. |
Wang, C., Dissertation—A Security Architecture for Survivability Mechanisms, University of Virginia, 2000, pp. 1-209. |
Wegman et al, Constant Propagation with Conditional Branches, ACM Transactions on Programming Languages and Systems, vol. 13, No. 2, Apr. 1991, pp. 181-210. |
Weise et al, Value Dependence Graphs: Representation Without Taxation, Annual Symposium on Principles of Programming Languages, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, 1994, 14 pgs. |
Whaley et al, An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages, Lecture Notes in Computer Science, vol. 2477, 2002, 16 pgs. |
Wilde, D. K., A Library for Doing Polyhedral Operations, IRISA, Publication No. 785, 1993, pp. 1-48. |
Wolf et al, A Data Locality Optimizing Algorithm, Proceedings of the ACM SiGPLAN '91 Conference on Programming Language Design and Implementation, Jun. 26-28, 1991, pp. 30-44. |
Wu et al, Static Branch Frequency and Program Profile Analysis, 27th IEEE/ACM International Symposium on Microarchitecture (MICRO-27), 1994, 11 pgs. |
Xue et al, Enabling Loop Fusion and Tiling for Cache Performance by Fixing Fusion-Preventing Data Dependences, Proceedings of the 2005 International Conference on Parallel Processing (ICPP'05), 2005, pp. 1-9. |
Xue, On Tiling as a Loop Transformation, Department of Mathematics, Statistics and Computing Science, University of New England, Australia, 1997, 15 pgs. |
Cited By (161)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9456054B2 (en) | 2008-05-16 | 2016-09-27 | Palo Alto Research Center Incorporated | Controlling the spread of interests and content in a content centric network |
US10104041B2 (en) | 2008-05-16 | 2018-10-16 | Cisco Technology, Inc. | Controlling the spread of interests and content in a content centric network |
US9686194B2 (en) | 2009-10-21 | 2017-06-20 | Cisco Technology, Inc. | Adaptive multi-interface use for content networking |
US20140047217A1 (en) * | 2012-08-09 | 2014-02-13 | Fujitsu Limited | Satisfiability checking |
US9501331B2 (en) * | 2012-08-09 | 2016-11-22 | Fujitsu Limited | Satisfiability checking |
US9280546B2 (en) | 2012-10-31 | 2016-03-08 | Palo Alto Research Center Incorporated | System and method for accessing digital content using a location-independent name |
US9400800B2 (en) | 2012-11-19 | 2016-07-26 | Palo Alto Research Center Incorporated | Data transport by named content synchronization |
US10430839B2 (en) | 2012-12-12 | 2019-10-01 | Cisco Technology, Inc. | Distributed advertisement insertion in content-centric networks |
US9978025B2 (en) | 2013-03-20 | 2018-05-22 | Cisco Technology, Inc. | Ordered-element naming for name-based packet forwarding |
US9935791B2 (en) | 2013-05-20 | 2018-04-03 | Cisco Technology, Inc. | Method and system for name resolution across heterogeneous architectures |
US9444722B2 (en) | 2013-08-01 | 2016-09-13 | Palo Alto Research Center Incorporated | Method and apparatus for configuring routing paths in a custodian-based routing architecture |
US9407549B2 (en) | 2013-10-29 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers |
US9276840B2 (en) | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
US9401864B2 (en) | 2013-10-31 | 2016-07-26 | Palo Alto Research Center Incorporated | Express header for packets with hierarchically structured variable-length identifiers |
US10101801B2 (en) | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
US10129365B2 (en) | 2013-11-13 | 2018-11-13 | Cisco Technology, Inc. | Method and apparatus for pre-fetching remote content based on static and dynamic recommendations |
US9311377B2 (en) | 2013-11-13 | 2016-04-12 | Palo Alto Research Center Incorporated | Method and apparatus for performing server handoff in a name-based content distribution system |
US10089655B2 (en) | 2013-11-27 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for scalable data broadcasting |
US9503358B2 (en) | 2013-12-05 | 2016-11-22 | Palo Alto Research Center Incorporated | Distance-based routing in an information-centric network |
US9379979B2 (en) | 2014-01-14 | 2016-06-28 | Palo Alto Research Center Incorporated | Method and apparatus for establishing a virtual interface for a set of mutual-listener devices |
US10098051B2 (en) | 2014-01-22 | 2018-10-09 | Cisco Technology, Inc. | Gateways and routing in software-defined manets |
US10172068B2 (en) | 2014-01-22 | 2019-01-01 | Cisco Technology, Inc. | Service-oriented routing in software-defined MANETs |
US9374304B2 (en) | 2014-01-24 | 2016-06-21 | Palo Alto Research Center Incorporated | End-to end route tracing over a named-data network |
US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
US9678998B2 (en) | 2014-02-28 | 2017-06-13 | Cisco Technology, Inc. | Content name resolution for information centric networking |
US10706029B2 (en) | 2014-02-28 | 2020-07-07 | Cisco Technology, Inc. | Content name resolution for information centric networking |
US10089651B2 (en) | 2014-03-03 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for streaming advertisements in a scalable data broadcasting system |
US10445380B2 (en) | 2014-03-04 | 2019-10-15 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
US9836540B2 (en) | 2014-03-04 | 2017-12-05 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
US9391896B2 (en) * | 2014-03-10 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network |
CN104917681B (en) * | 2014-03-10 | 2020-01-07 | 思科技术公司 | System and method for packet forwarding in content-centric networks |
US9473405B2 (en) | 2014-03-10 | 2016-10-18 | Palo Alto Research Center Incorporated | Concurrent hashes and sub-hashes on data streams |
US20150256460A1 (en) * | 2014-03-10 | 2015-09-10 | Palo Alto Research Center Incorporated | System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network |
CN104917681A (en) * | 2014-03-10 | 2015-09-16 | 帕洛阿尔托研究中心公司 | System and method for packet forwarding using a conjunctive normal from strategy in a content-centric network |
US9626413B2 (en) | 2014-03-10 | 2017-04-18 | Cisco Systems, Inc. | System and method for ranking content popularity in a content-centric network |
US9407432B2 (en) | 2014-03-19 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for efficient and secure distribution of digital content |
US9916601B2 (en) | 2014-03-21 | 2018-03-13 | Cisco Technology, Inc. | Marketplace for presenting advertisements in a scalable data broadcasting system |
US9363179B2 (en) | 2014-03-26 | 2016-06-07 | Palo Alto Research Center Incorporated | Multi-publisher routing protocol for named data networks |
US9363086B2 (en) | 2014-03-31 | 2016-06-07 | Palo Alto Research Center Incorporated | Aggregate signing of data in content centric networking |
US9716622B2 (en) | 2014-04-01 | 2017-07-25 | Cisco Technology, Inc. | System and method for dynamic name configuration in content-centric networks |
US9390289B2 (en) | 2014-04-07 | 2016-07-12 | Palo Alto Research Center Incorporated | Secure collection synchronization using matched network names |
US9473576B2 (en) | 2014-04-07 | 2016-10-18 | Palo Alto Research Center Incorporated | Service discovery using collection synchronization with exact names |
US10075521B2 (en) | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
US9451032B2 (en) | 2014-04-10 | 2016-09-20 | Palo Alto Research Center Incorporated | System and method for simple service discovery in content-centric networks |
US9992281B2 (en) | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
US9609014B2 (en) | 2014-05-22 | 2017-03-28 | Cisco Systems, Inc. | Method and apparatus for preventing insertion of malicious content at a named data network router |
US10158656B2 (en) | 2014-05-22 | 2018-12-18 | Cisco Technology, Inc. | Method and apparatus for preventing insertion of malicious content at a named data network router |
US9455835B2 (en) | 2014-05-23 | 2016-09-27 | Palo Alto Research Center Incorporated | System and method for circular link resolution with hash-based names in content-centric networks |
US9276751B2 (en) | 2014-05-28 | 2016-03-01 | Palo Alto Research Center Incorporated | System and method for circular link resolution with computable hash-based names in content-centric networks |
US9537719B2 (en) | 2014-06-19 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and apparatus for deploying a minimal-cost CCN topology |
US9516144B2 (en) | 2014-06-19 | 2016-12-06 | Palo Alto Research Center Incorporated | Cut-through forwarding of CCNx message fragments with IP encapsulation |
US9426113B2 (en) | 2014-06-30 | 2016-08-23 | Palo Alto Research Center Incorporated | System and method for managing devices over a content centric network |
US9699198B2 (en) | 2014-07-07 | 2017-07-04 | Cisco Technology, Inc. | System and method for parallel secure content bootstrapping in content-centric networks |
US10237075B2 (en) | 2014-07-17 | 2019-03-19 | Cisco Technology, Inc. | Reconstructable content objects |
US9959156B2 (en) | 2014-07-17 | 2018-05-01 | Cisco Technology, Inc. | Interest return control message |
US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
US9729616B2 (en) | 2014-07-18 | 2017-08-08 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over a content centric network |
US10305968B2 (en) | 2014-07-18 | 2019-05-28 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over a content centric network |
US9590887B2 (en) | 2014-07-18 | 2017-03-07 | Cisco Systems, Inc. | Method and system for keeping interest alive in a content centric network |
US9929935B2 (en) | 2014-07-18 | 2018-03-27 | Cisco Technology, Inc. | Method and system for keeping interest alive in a content centric network |
US9535968B2 (en) | 2014-07-21 | 2017-01-03 | Palo Alto Research Center Incorporated | System for distributing nameless objects using self-certifying names |
US9882964B2 (en) | 2014-08-08 | 2018-01-30 | Cisco Technology, Inc. | Explicit strategy feedback in name-based forwarding |
US9729662B2 (en) | 2014-08-11 | 2017-08-08 | Cisco Technology, Inc. | Probabilistic lazy-forwarding technique without validation in a content centric network |
US9503365B2 (en) | 2014-08-11 | 2016-11-22 | Palo Alto Research Center Incorporated | Reputation-based instruction processing over an information centric network |
US9391777B2 (en) | 2014-08-15 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for performing key resolution over a content centric network |
US10367871B2 (en) | 2014-08-19 | 2019-07-30 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
US9800637B2 (en) | 2014-08-19 | 2017-10-24 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
US9467492B2 (en) | 2014-08-19 | 2016-10-11 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content stream |
US9497282B2 (en) | 2014-08-27 | 2016-11-15 | Palo Alto Research Center Incorporated | Network coding for content-centric network |
US10204013B2 (en) | 2014-09-03 | 2019-02-12 | Cisco Technology, Inc. | System and method for maintaining a distributed and fault-tolerant state over an information centric network |
US11314597B2 (en) | 2014-09-03 | 2022-04-26 | Cisco Technology, Inc. | System and method for maintaining a distributed and fault-tolerant state over an information centric network |
US9553812B2 (en) | 2014-09-09 | 2017-01-24 | Palo Alto Research Center Incorporated | Interest keep alives at intermediate routers in a CCN |
US10715634B2 (en) | 2014-10-23 | 2020-07-14 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US9536059B2 (en) | 2014-12-15 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and system for verifying renamed content using manifests in a content centric network |
US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
US9591022B2 (en) | 2014-12-17 | 2017-03-07 | The Boeing Company | Computer defenses and counterattacks |
US9846881B2 (en) | 2014-12-19 | 2017-12-19 | Palo Alto Research Center Incorporated | Frugal user engagement help systems |
US10003520B2 (en) | 2014-12-22 | 2018-06-19 | Cisco Technology, Inc. | System and method for efficient name-based content routing using link-state information in information-centric networks |
US9473475B2 (en) | 2014-12-22 | 2016-10-18 | Palo Alto Research Center Incorporated | Low-cost authenticated signing delegation in content centric networking |
US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US10091012B2 (en) | 2014-12-24 | 2018-10-02 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US10440161B2 (en) | 2015-01-12 | 2019-10-08 | Cisco Technology, Inc. | Auto-configurable transport stack |
US9602596B2 (en) | 2015-01-12 | 2017-03-21 | Cisco Systems, Inc. | Peer-to-peer sharing in a content centric network |
US9832291B2 (en) | 2015-01-12 | 2017-11-28 | Cisco Technology, Inc. | Auto-configurable transport stack |
US9916457B2 (en) | 2015-01-12 | 2018-03-13 | Cisco Technology, Inc. | Decoupled name security binding for CCN objects |
US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests in a content centric network |
US9462006B2 (en) | 2015-01-21 | 2016-10-04 | Palo Alto Research Center Incorporated | Network-layer application-specific trust model |
US9552493B2 (en) | 2015-02-03 | 2017-01-24 | Palo Alto Research Center Incorporated | Access control framework for information centric networking |
US10333840B2 (en) | 2015-02-06 | 2019-06-25 | Cisco Technology, Inc. | System and method for on-demand content exchange with adaptive naming in information-centric networks |
US10075401B2 (en) | 2015-03-18 | 2018-09-11 | Cisco Technology, Inc. | Pending interest table behavior |
US10116605B2 (en) | 2015-06-22 | 2018-10-30 | Cisco Technology, Inc. | Transport stack name scheme and identity management |
US10075402B2 (en) | 2015-06-24 | 2018-09-11 | Cisco Technology, Inc. | Flexible command and control in content centric networks |
US10701038B2 (en) | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation in a content centric network |
US9986034B2 (en) | 2015-08-03 | 2018-05-29 | Cisco Technology, Inc. | Transferring state in content centric network stacks |
US10610144B2 (en) | 2015-08-19 | 2020-04-07 | Palo Alto Research Center Incorporated | Interactive remote patient monitoring and condition management intervention system |
US10419345B2 (en) | 2015-09-11 | 2019-09-17 | Cisco Technology, Inc. | Network named fragments in a content centric network |
US9832123B2 (en) | 2015-09-11 | 2017-11-28 | Cisco Technology, Inc. | Network named fragments in a content centric network |
US10355999B2 (en) | 2015-09-23 | 2019-07-16 | Cisco Technology, Inc. | Flow control with network named fragments |
US9977809B2 (en) | 2015-09-24 | 2018-05-22 | Cisco Technology, Inc. | Information and data framework in a content centric network |
US10313227B2 (en) | 2015-09-24 | 2019-06-04 | Cisco Technology, Inc. | System and method for eliminating undetected interest looping in information-centric networks |
US10454820B2 (en) | 2015-09-29 | 2019-10-22 | Cisco Technology, Inc. | System and method for stateless information-centric networking |
US10263965B2 (en) | 2015-10-16 | 2019-04-16 | Cisco Technology, Inc. | Encrypted CCNx |
US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US10129230B2 (en) | 2015-10-29 | 2018-11-13 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
US10009446B2 (en) | 2015-11-02 | 2018-06-26 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary learning |
US10021222B2 (en) | 2015-11-04 | 2018-07-10 | Cisco Technology, Inc. | Bit-aligned header compression for CCN messages using dictionary |
US10097521B2 (en) | 2015-11-20 | 2018-10-09 | Cisco Technology, Inc. | Transparent encryption in a content centric network |
US10681018B2 (en) | 2015-11-20 | 2020-06-09 | Cisco Technology, Inc. | Transparent encryption in a content centric network |
US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
US10097346B2 (en) | 2015-12-09 | 2018-10-09 | Cisco Technology, Inc. | Key catalogs in a content centric network |
US10078062B2 (en) | 2015-12-15 | 2018-09-18 | Palo Alto Research Center Incorporated | Device health estimation by combining contextual information with sensor data |
US10257271B2 (en) | 2016-01-11 | 2019-04-09 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
US10581967B2 (en) | 2016-01-11 | 2020-03-03 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
US9949301B2 (en) | 2016-01-20 | 2018-04-17 | Palo Alto Research Center Incorporated | Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks |
US10305864B2 (en) | 2016-01-25 | 2019-05-28 | Cisco Technology, Inc. | Method and system for interest encryption in a content centric network |
US10043016B2 (en) | 2016-02-29 | 2018-08-07 | Cisco Technology, Inc. | Method and system for name encryption agreement in a content centric network |
US10469378B2 (en) | 2016-03-04 | 2019-11-05 | Cisco Technology, Inc. | Protocol to query for historical network information in a content centric network |
US10038633B2 (en) | 2016-03-04 | 2018-07-31 | Cisco Technology, Inc. | Protocol to query for historical network information in a content centric network |
US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
US10742596B2 (en) | 2016-03-04 | 2020-08-11 | Cisco Technology, Inc. | Method and system for reducing a collision probability of hash-based names using a publisher identifier |
US10003507B2 (en) | 2016-03-04 | 2018-06-19 | Cisco Technology, Inc. | Transport session state protocol |
US10129368B2 (en) | 2016-03-14 | 2018-11-13 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
US10212196B2 (en) | 2016-03-16 | 2019-02-19 | Cisco Technology, Inc. | Interface discovery and authentication in a name-based network |
US11436656B2 (en) | 2016-03-18 | 2022-09-06 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
US10067948B2 (en) | 2016-03-18 | 2018-09-04 | Cisco Technology, Inc. | Data deduping in content centric networking manifests |
US10091330B2 (en) | 2016-03-23 | 2018-10-02 | Cisco Technology, Inc. | Interest scheduling by an information and data framework in a content centric network |
US10033639B2 (en) | 2016-03-25 | 2018-07-24 | Cisco Technology, Inc. | System and method for routing packets in a content centric network using anonymous datagrams |
US10320760B2 (en) | 2016-04-01 | 2019-06-11 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
US10348865B2 (en) | 2016-04-04 | 2019-07-09 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
US9930146B2 (en) | 2016-04-04 | 2018-03-27 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
US10425503B2 (en) | 2016-04-07 | 2019-09-24 | Cisco Technology, Inc. | Shared pending interest table in a content centric network |
US10027578B2 (en) | 2016-04-11 | 2018-07-17 | Cisco Technology, Inc. | Method and system for routable prefix queries in a content centric network |
US10841212B2 (en) | 2016-04-11 | 2020-11-17 | Cisco Technology, Inc. | Method and system for routable prefix queries in a content centric network |
US10404450B2 (en) | 2016-05-02 | 2019-09-03 | Cisco Technology, Inc. | Schematized access control in a content centric network |
US10320675B2 (en) | 2016-05-04 | 2019-06-11 | Cisco Technology, Inc. | System and method for routing packets in a stateless content centric network |
US10547589B2 (en) | 2016-05-09 | 2020-01-28 | Cisco Technology, Inc. | System for implementing a small computer systems interface protocol over a content centric network |
US10063414B2 (en) | 2016-05-13 | 2018-08-28 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
US10404537B2 (en) | 2016-05-13 | 2019-09-03 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
US10693852B2 (en) | 2016-05-13 | 2020-06-23 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
US10084764B2 (en) | 2016-05-13 | 2018-09-25 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
US10103989B2 (en) | 2016-06-13 | 2018-10-16 | Cisco Technology, Inc. | Content object return messages in a content centric network |
US10305865B2 (en) | 2016-06-21 | 2019-05-28 | Cisco Technology, Inc. | Permutation-based content encryption with manifests in a content centric network |
US10581741B2 (en) | 2016-06-27 | 2020-03-03 | Cisco Technology, Inc. | Method and system for interest groups in a content centric network |
US10148572B2 (en) | 2016-06-27 | 2018-12-04 | Cisco Technology, Inc. | Method and system for interest groups in a content centric network |
US10009266B2 (en) | 2016-07-05 | 2018-06-26 | Cisco Technology, Inc. | Method and system for reference counted pending interest tables in a content centric network |
US9992097B2 (en) | 2016-07-11 | 2018-06-05 | Cisco Technology, Inc. | System and method for piggybacking routing information in interests in a content centric network |
US10122624B2 (en) | 2016-07-25 | 2018-11-06 | Cisco Technology, Inc. | System and method for ephemeral entries in a forwarding information base in a content centric network |
US10069729B2 (en) | 2016-08-08 | 2018-09-04 | Cisco Technology, Inc. | System and method for throttling traffic based on a forwarding information base in a content centric network |
US10956412B2 (en) | 2016-08-09 | 2021-03-23 | Cisco Technology, Inc. | Method and system for conjunctive normal form attribute matching in a content centric network |
US10033642B2 (en) | 2016-09-19 | 2018-07-24 | Cisco Technology, Inc. | System and method for making optimal routing decisions based on device-specific parameters in a content centric network |
US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
US10897518B2 (en) | 2016-10-03 | 2021-01-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
US10447805B2 (en) | 2016-10-10 | 2019-10-15 | Cisco Technology, Inc. | Distributed consensus in a content centric network |
US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
US10721332B2 (en) | 2016-10-31 | 2020-07-21 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
US10243851B2 (en) | 2016-11-21 | 2019-03-26 | Cisco Technology, Inc. | System and method for forwarder connection information in a content centric network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8688619B1 (en) | Systems, methods and apparatus for distributed decision processing | |
Fränzle et al. | HySAT: An efficient proof engine for bounded model checking of hybrid systems | |
US8112379B2 (en) | Policy processor for configuration management | |
Beyersdorff et al. | Size, cost, and capacity: A semantic technique for hard random QBFs | |
US9146829B1 (en) | Analysis and verification of distributed applications | |
KR20110057070A (en) | Event processing networks | |
Lin et al. | Liveness of randomised parameterised systems under arbitrary schedulers | |
Bos et al. | Formal specification and analysis of industrial systems | |
Chatterjee et al. | Stochastic games with lexicographic reachability-safety objectives | |
US20080127106A1 (en) | Verification of a program partitioned according to the control flow information of the program | |
Zavatteri et al. | Last man standing: Static, decremental and dynamic resiliency via controller synthesis | |
Chatterjee et al. | Symbolic algorithms for qualitative analysis of Markov decision processes with Büchi objectives | |
Bollig et al. | The complexity of flat freeze LTL | |
Hadarean | An efficient and trustworthy theory solver for bit-vectors in satisfiability modulo theories | |
Zimmermann | Parameterized linear temporal logics meet costs: Still not costlier than LTL | |
Almagor et al. | Latticed-LTL synthesis in the presence of noisy inputs | |
Leidinger et al. | SCL (EQ): SCL for first-order logic with equality | |
US5414853A (en) | Apparatus and method for checking microcode with a generated restriction checker | |
US8122403B2 (en) | Trace containment detection of combinational designs via constraint-based uncorrelated equivalence checking | |
CN114297063B (en) | Method and system for automated formal modeling and verification of source code | |
Chatterjee et al. | Controller synthesis with budget constraints | |
Friedmann et al. | Satisfiability games for branching-time logics | |
Chatterjee et al. | Stochastic games with lexicographic objectives | |
US20230394292A1 (en) | Method and apparatus for synchronizing neuromorphic processing units | |
Bloem et al. | Satisfiability-Based Methods for Reactive Synthesis from Safety Specifications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: RESERVOIR LABS, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:EZICK, JAMES;LETHIN, RICHARD;VASILACHE, NICHOLAS;SIGNING DATES FROM 20090721 TO 20090828;REEL/FRAME:025239/0794 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: LETHIN, RICHARD, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RESERVOIR LABS, INC.;REEL/FRAME:037870/0888 Effective date: 20151230 |
|
AS | Assignment |
Owner name: SIGNIFICS AND ELEMENTS, LLC, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LETHIN, RICHARD;REEL/FRAME:037883/0704 Effective date: 20151231 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551) Year of fee payment: 4 |
|
AS | Assignment |
Owner name: SIGNIFICS AND ELEMENTS, LLC, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RESERVOIR LABS, INC.;REEL/FRAME:057364/0569 Effective date: 20210825 |
|
AS | Assignment |
Owner name: QUALCOMM TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SIGNIFICS AND ELEMENTS, LLC;REEL/FRAME:058896/0638 Effective date: 20211110 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: 7.5 YR SURCHARGE - LATE PMT W/IN 6 MO, LARGE ENTITY (ORIGINAL EVENT CODE: M1555); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: QUALCOMM INCORPORATED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QUALCOMM TECHNOLOGIES, INC.;REEL/FRAME:064686/0055 Effective date: 20230818 |