Below we have summarized some of the projects we are currently working on. These include dataflow and multithreaded system, memory systems, and agent-oriented software engineering.
Dataflow and Multi-threaded Computer Architecture
We have been investigating hybrid dataflow—von Neumann architectures for multithreaded systems. We have investigated the use of instruction, data, and I-structure cache memories with ETS dataflow.
We are currently developing a new dataflow known as Scheduled Dataflow (SDF) that executes instructions synchronously.
We are working on various compile-time optimizations with the SDF, including operand memory reuse, inplace updates for I-structure memories, split phase and non-split phase I-structure accesses, speculative pre-loading of thread contexts, predicated instructions. Each PE in our SDF contains at least one unit for processing memory accesses (called SPs) and at least one unit for executing operations (called EPs). Our SPs and EPs are very simple, in order execution pipelines.
We are also exploring how our SDF can be configured into scalable, clusters, with each cluster containing a small number of SPs and EPs.
Most recently we are exploring Thread Level Speculation within the context of our SDF.
We have developed a formal model based on dataflow graphs that can be used for the specification and analysis of concurrent processing systems.
Uninterpreted dataflow graphs and stochastic dataflow graphs are isomorphic to Petri nets. We have developed the necessary formalisms to prove the isomorphism and also developed analysis techniques for directly analyzing stochastic dataflow graphs. We have developed approximation techniques for analysis using graph reductions and "nearly" completely decomposable Markov processes. We have also developed formal theory based on first-order logic for the purpose of verifying logical specification of systems using our dataflow graphs.
Learn more about SDF on our Scheduled Dataflow page.