Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Andrey Mokhov

dblp:58/3155 · DBLP profile ↗
← Back
36ranked-venue papers
12as first author
0since 2021 · last 2020
0000-0002-2493-3177ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 18 · 4 first-authorSoftware engineering, systems software and programming languages · 14 · 8 first-authorTheory of computation · 8 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
7 papers
Electronic design automation · 60% Integrated circuit design · 26% Interconnection networks and networks-on-chip · 5%
Theoretical computer science
4 papers
Computational complexity · 90% Logic in computer science · 10%

Topics — the 18 heaviest of 21, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Computational complexity
circuit complexity
0.722019
On the Complexity of Hazard-free Circuits · J. ACM 2019
On the complexity of hazard-free circuits · STOC 2018
Integrated circuit design
asynchronous circuit design
0.632018
High-Level Asynchronous Concepts at the Interface Between Analog and Digital Worlds · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2018
Concurrent Multiresource Arbiter: Design and Applications · IEEE Trans. Computers 2013
Conditional Partial Order Graphs: Model, Synthesis, and Application · IEEE Trans. Computers 2010
Electronic design automation
logic synthesis
0.622020
Automating the Design of Asynchronous Logic Control for AMS Electronics · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Mixed Radix Reed-Muller Expansions · IEEE Trans. Computers 2012
Electronic design automation › logic synthesis
asynchronous circuit synthesis
0.412020
Automating the Design of Asynchronous Logic Control for AMS Electronics · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Electronic design automation › hardware verification and test
formal verification
0.412020
Automating the Design of Asynchronous Logic Control for AMS Electronics · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Electronic design automation
hardware verification and test
0.412019
On the Complexity of Hazard-free Circuits · J. ACM 2019
Electronic design automation › hardware verification and test
hazard detection
0.412019
On the Complexity of Hazard-free Circuits · J. ACM 2019
Integrated circuit design › asynchronous circuit design
signal transition graph
0.312018
High-Level Asynchronous Concepts at the Interface Between Analog and Digital Worlds · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2018
Distributed systems
formal specification
0.212014
Synthesis of Processor Instruction Sets from High-Level ISA Specifications · IEEE Trans. Computers 2014
Electronic design automation
high-level synthesis
0.212014
Synthesis of Processor Instruction Sets from High-Level ISA Specifications · IEEE Trans. Computers 2014
Processor architecture and microarchitecture
instruction set architecture
0.212014
Synthesis of Processor Instruction Sets from High-Level ISA Specifications · IEEE Trans. Computers 2014
Interconnection networks and networks-on-chip › arbitration
arbiter design
0.212013
Concurrent Multiresource Arbiter: Design and Applications · IEEE Trans. Computers 2013
Electronic design automation › logic synthesis
multivalued logic synthesis
0.112012
Mixed Radix Reed-Muller Expansions · IEEE Trans. Computers 2012
Electronic design automation › logic synthesis
reed-muller expansion
0.112012
Mixed Radix Reed-Muller Expansions · IEEE Trans. Computers 2012
Integrated circuit design
analog and mixed-signal circuits
0.112020
Automating the Design of Asynchronous Logic Control for AMS Electronics · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Integrated circuit design
digital circuit design
0.012012
Mixed Radix Reed-Muller Expansions · IEEE Trans. Computers 2012
Integrated circuit design
finite field arithmetic
0.012012
Mixed Radix Reed-Muller Expansions · IEEE Trans. Computers 2012
Parallel and multicore computing › concurrent programming
concurrency model
0.012010
Conditional Partial Order Graphs: Model, Synthesis, and Application · IEEE Trans. Computers 2010

Methods — techniques the papers use, named apart from their topics

monotone complexity lower bounds · 1.1random restrictions · 0.8analog-to-asynchronous components · 0.4RTL synthesis · 0.4event-b · 0.4conditional partial order graphs · 0.4workcraft · 0.3circuit lower bounds · 0.3behavioral concepts · 0.3STG translation · 0.3asynchronous circuit design · 0.2petri nets · 0.1finite-state machine · 0.1
YearPublicationVenuePosition
2020 Termination detection for fine-grained message-passing architectures
abstract
Barrier primitives provided by standard parallel programming APIs are the primary means by which applications implement global synchronisation. Typically these primitives are fully-committed to synchronisation in the sense that, once a barrier is entered, synchronisation is the only way out. For message-passing applications, this raises the question of what happens when a message arrives at a thread that already resides in a barrier. Without a satisfactory answer, barriers do not interact with message-passing in any useful way.In this paper, we propose a new refutable barrier primitive that combines with message-passing to form a simple, expressive, efficient, well-defined API. It has a clear semantics based on termination detection, and supports the development of both globally-synchronous and asynchronous parallel applications.To evaluate the new primitive, we implement it in a prototype large-scale message-passing machine with 49,152 RISC-V threads distributed over 48 FPGAs. We show that hardware support for the primitive leads to a highly-efficient implementation, capable of synchronisation rates that are an order-of-magnitude higher than what is achievable in software. Using the primitive, we implement synchronous and asynchronous versions of a range of applications, observing that each version can have significant advantages over the other, depending on the application. Therefore, a barrier primitive supporting both styles can greatly assist the development of parallel programs.
Matthew Naylor 0002, Simon W. Moore, Andrey Mokhov, David B. Thomas, Jonathan Beaumont, Shane T. Fleming, A. Theodore Markettos, Thomas Bytheway, Andrew D. Brown
ASAP3
2020 Build systems à la carte: Theory and practice
abstract
Abstract Build systems are awesome, terrifying – and unloved. They are used by every developer around the world, but are rarely the object of study. In this paper, we offer a systematic, and executable, framework for developing and comparing build systems, viewing them as related points in a landscape rather than as isolated phenomena. By teasing apart existing build systems, we can recombine their components, allowing us to prototype new build systems with desired properties.
Andrey Mokhov, Neil Mitchell, Simon L. Peyton Jones
J. Funct. Program.1
2020 Automating the Design of Asynchronous Logic Control for AMS Electronics
abstract
Analog and mixed signal (AMS) electronics becomes increasingly complex and needs to be digitally enhanced by its own control circuitry. The RTL synthesis flow routinely used for digital logic is, however, optimized for synchronous data processing and produces inefficient control for AMS. In this paper, we demonstrate the evident benefits of asynchronous circuits in the context of AMS systems, and propose an asynchronous design for analog electronics (A4A) flow for their specification, synthesis, and formal verification. A library of specialized analog-to-asynchronous (A2A) components is developed for interfacing analog and asynchronous worlds. A4A flow is automated in the Workcraft framework and evaluated using a multiphase buck converter case study, where A2A components are employed to sanitize analog sensor readings. Timing analysis of asynchronous buck control shows improved response time: 4× reaction to high-load and 7× to under-voltage condition, compared with a 333 MHz clocked controller (to achieve a similar response time, a clocked controller would require ~3 GHz frequency). The simulation results of a 4-phase asynchronous buck demonstrate improved voltage ripple and peak current -16% and 12% reduction, respectively. These benefits lead to the higher efficiency of power conversion, and can be traded off for the cost of analog components, e.g., coils. Moreover, the use of the proposed design flow and tools helps to improve design productivity and overall robustness of AMS circuits.
Danil Sokolov, Victor Khomenko, Andrey Mokhov, Vladimir Dubikhin, Alexandre Yakovlev
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.3
2020 Formal Verification of Spacecraft Control Programs
abstract
Verification of correctness of control programs is an essential task in the development of space electronics; it is difficult and typically outweighs design and programming tasks in terms of development hours. This article presents a verification approach designed to help spacecraft engineers reduce the effort required for formal verification of low-level control programs executed on custom hardware. The verification approach is demonstrated on an industrial case study. We present a REDuced instruction set for Fixed-point and INteger arithmetic (REDFIN), a processing core used in space missions, and its formal semantics expressed using the proposed metalanguage for state transformers, followed by examples of verification of simple control programs.
Georgy Lukyanov, Andrey Mokhov, Jakob Lechner
ACM Trans. Embed. Comput. Syst.2
2020 Design and Implementation of Reconfigurable Asynchronous Pipelines
abstract
Pipelining is a widely used approach to the design of high-throughput computation systems, where the slowest component is decomposed into a set of sequentially connected parts that are executed in parallel on successive items of the incoming dataflow. Such dataflow pipelines are often designed to be dynamically reconfigurable to process data items differently depending on their contents and/or to adjust to the application requirements in runtime. Reconfigurable synchronous pipelines are widely used and well studied, and are supported by industrial EDA tools. On the other hand, reconfigurable asynchronous pipelines received much less attention and their industrial adoption is low due to the lack of mature automation support. In this article, we present a model and tool support for the design and verification of reconfigurable asynchronous pipelines. The tool is open source and is available as a plugin for the WORKCRAFT toolset. We validate the presented approach by designing and fabricating a test chip (TSMC 90 nm) that demonstrates the benefits and costs of dynamic reconfigurability, as well as highlights the resilience of asynchronous pipelines.
Alessandro de Gennaro, Danil Sokolov, Andrey Mokhov
IEEE Trans. Very Large Scale Integr. Syst.3
2019 Complexity of Linear Operators
abstract
Let $A \in \{0,1\}^{n \times n}$ be a matrix with $z$ zeroes and $u$ ones and $x$ be an $n$-dimensional vector of formal variables over a semigroup $(S, \circ)$. How many semigroup operations are required to compute the linear operator $Ax$? As we observe in this paper, this problem contains as a special case the well-known range queries problem and has a rich variety of applications in such areas as graph algorithms, functional programming, circuit complexity, and others. It is easy to compute $Ax$ using $O(u)$ semigroup operations. The main question studied in this paper is: can $Ax$ be computed using $O(z)$ semigroup operations? We prove that in general this is not possible: there exists a matrix $A \in \{0,1\}^{n \times n}$ with exactly two zeroes in every row (hence $z=2n$) whose complexity is $Θ(nα(n))$ where $α(n)$ is the inverse Ackermann function. However, for the case when the semigroup is commutative, we give a constructive proof of an $O(z)$ upper bound. This implies that in commutative settings, complements of sparse matrices can be processed as efficiently as sparse matrices (though the corresponding algorithms are more involved). Note that this covers the cases of Boolean and tropical semirings that have numerous applications, e.g., in graph theory. As a simple application of the presented linear-size construction, we show how to multiply two $n\times n$ matrices over an arbitrary semiring in $O(n^2)$ time if one of these matrices is a 0/1-matrix with $O(n)$ zeroes (i.e., a complement of a sparse matrix).
Alexander S. Kulikov, Ivan Mikhailin, Andrey Mokhov, Vladimir Podolskii 0001
ISAAC3
2019 On the Complexity of Hazard-free Circuits
abstract
The problem of constructing hazard-free Boolean circuits dates back to the 1940s and is an important problem in circuit design. Our main lower-bound result unconditionally shows the existence of functions whose circuit complexity is polynomially bounded while every hazard-free implementation is provably of exponential size. Previous lower bounds on the hazard-free complexity were only valid for depth 2 circuits. The same proof method yields that every subcubic implementation of Boolean matrix multiplication must have hazards. These results follow from a crucial structural insight: Hazard-free complexity is a natural generalization of monotone complexity to all (not necessarily monotone) Boolean functions. Thus, we can apply known monotone complexity lower bounds to find lower bounds on the hazard-free complexity. We also lift these methods from the monotone setting to prove exponential hazard-free complexity lower bounds for non-monotone functions. As our main upper-bound result, we show how to efficiently convert a Boolean circuit into a bounded-bit hazard-free circuit with only a polynomially large blow-up in the number of gates. Previously, the best known method yielded exponentially large circuits in the worst case, so our algorithm gives an exponential improvement. As a side result, we establish the NP-completeness of several hazard detection problems.
Christian Ikenmeyer, Balagopal Komarath, Christoph Lenzen 0001, Vladimir Lysikov, Andrey Mokhov, Karteek Sreenivasaiah
J. ACM5
2019 Selective applicative functors
abstract
Applicative functors and monads have conquered the world of functional programming by providing general and powerful ways of describing effectful computations using pure functions. Applicative functors provide a way to compose independent effects that cannot depend on values produced by earlier computations, and all of which are declared statically. Monads extend the applicative interface by making it possible to compose dependent effects, where the value computed by one effect determines all subsequent effects, dynamically. This paper introduces an intermediate abstraction called selective applicative functors that requires all effects to be declared statically, but provides a way to select which of the effects to execute dynamically. We demonstrate applications of the new abstraction on several examples, including two industrial case studies.
Andrey Mokhov, Georgy Lukyanov, Simon Marlow, Jerémie Dimino
Proc. ACM Program. Lang.1
2018 Reconfigurable asynchronous pipelines: From formal models to silicon
abstract
Dataflow pipelines are widely used in the design of high-throughput computation systems. Real-life applications often require dynamically reconfigurable pipelines to differently process data items or adjust to the current operating mode. Reconfigurable synchronous pipelines are known since 1980s and are well supported by formal models and tools. Reconfigurable asynchronous pipelines on the other hand, have neither a formal behavioural model, nor mature EDA support, making them unattractive to industry. This paper presents a model and an open-source tool for the design and verification of reconfigurable asynchronous pipelines, and validates this approach in silicon.
Danil Sokolov, Alessandro de Gennaro, Andrey Mokhov
DATE3
2018 On the complexity of hazard-free circuits
abstract
The problem of constructing hazard-free Boolean circuits dates back to the 1940s and is an important problem in circuit design. Our main lower-bound result unconditionally shows the existence of functions whose circuit complexity is polynomially bounded while every hazard-free implementation is provably of exponential size. Previous lower bounds on the hazard-free complexity were only valid for depth 2 circuits. The same proof method yields that every subcubic implementation of Boolean matrix multiplication must have hazards. These results follow from a crucial structural insight: Hazard-free complexity is a natural generalization of monotone complexity to all (not necessarily monotone) Boolean functions. Thus, we can apply known monotone complexity lower bounds to find lower bounds on the hazard-free complexity. We also lift these methods from the monotone setting to prove exponential hazard-free complexity lower bounds for non-monotone functions.
Christian Ikenmeyer, Balagopal Komarath, Christoph Lenzen 0001, Vladimir Lysikov, Andrey Mokhov, Karteek Sreenivasaiah
STOC5
2018 Compact and efficiently verifiable models for concurrent systems
Hernán Ponce de León, Andrey Mokhov
Formal Methods Syst. Des.2
2018 Build systems à la carte
abstract
Build systems are awesome, terrifying -- and unloved. They are used by every developer around the world, but are rarely the object of study. In this paper we offer a systematic, and executable, framework for developing and comparing build systems, viewing them as related points in landscape rather than as isolated phenomena. By teasing apart existing build systems, we can recombine their components, allowing us to prototype new build systems with desired properties.
Andrey Mokhov, Neil Mitchell, Simon L. Peyton Jones
Proc. ACM Program. Lang.1
2018 High-Level Asynchronous Concepts at the Interface Between Analog and Digital Worlds
abstract
Asynchronous circuits are becoming increasingly important in system design for Internet of Things, where they orchestrate the interface between big synchronous computation components and the analog environment, which is inherently asynchronous and has high uncertainty with respect to power supply, temperature, and long-term aging effects. However, wide adoption of asynchronous circuits by industrial users is hindered by a steep learning curve for asynchronous control models, such as signal transition graphs (STGs), that are developed by the academic community for specification, verification, and synthesis of asynchronous circuits. In this paper, we introduce a novel high-level description language for asynchronous circuits, which is based on behavioral concepts-high-level descriptions of asynchronous circuit requirements, that can be shared, reused, and extended by users, and can be automatically translated to STGs for further processing by conventional asynchronous and synchronous electronic design automation tools, such as Petrify and Mpsat. Our aim is to simplify the process of capturing system requirements in the form of a formal specification, and to promote behavioral concepts as a means for design reuse. The proposed design flow is fully automated in open-source toolsuite Workcraft, and is applied to the development of an asynchronous power regulator.
Jonathan Beaumont, Andrey Mokhov, Danil Sokolov, Alexandre Yakovlev
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.2
2017 Benefits of asynchronous control for analog electronics: Multiphase buck case study
abstract
Analog and mixed signal (AMS) electronics becomes increasingly complex and needs to be digitally enhanced by its own control circuitry. The RTL synthesis flow routinely used for digital logic is however optimized for synchronous data processing and produces inefficient control for AMS. In this paper we demonstrate the evident benefits of asynchronous circuits in the context of AMS systems, and propose an asynchronous design for analog electronics (A4A) flow for their specification, synthesis, and formal verification. A library of specialized analog-to-asynchronous (A2A) components is developed for interfacing analog signals to asynchronous control. A4A flow is automated in the Workcraft framework and evaluated using a multiphase buck converter case study. The simulation results show improved response time, voltage ripple, and peak current of the buck when controlled asynchronously. These benefits lead to the higher efficiency of power conversion, and can be traded off for the cost of analog components. A4A flow, A2A interfaces, and Workcraft tools are used for development of power converters at Dialog Semiconductor.
Danil Sokolov, Vladimir Dubikhin, Victor Khomenko, Andrey Mokhov, Alexandre Yakovlev
DATE5
2017 Language and hardware acceleration backend for graph processing
abstract
Graphs are important in many applications however their analysis on conventional computer architectures is generally inefficient because it involves highly irregular access to memory when traversing vertices and edges. As an example, when finding a path from a source vertex to a target one the performance is typically limited by the memory bottleneck whereas the actual computation is trivial. This paper presents a methodology for embedding graphs into silicon, where graph vertices become finite state machines communicating via the graph edges. With this approach many common graph analysis tasks can be performed by propagating signals through the physical graph and measuring signal propagation time using the on-chip clock distribution network. This eliminates the memory bottleneck and allows thousands of vertices to be processed in parallel. We present a domain-specific language for graph description and transformation, and demonstrate how it can be used to translate application graphs into an FPGA board, where they can be analysed up to 1000× faster than on a conventional computer.
Andrey Mokhov, Alessandro de Gennaro, Ghaith Tarawneh, Jonny Wray, Georgy Lukyanov, Sergey Mileiko, Joe Scott, Alexandre Yakovlev, Andrew D. Brown
FDL1
2017 Algebraic graphs with class (functional pearl)
abstract
The paper presents a minimalistic and elegant approach to working with graphs in Haskell. It is built on a rigorous mathematical foundation --- an algebra of graphs --- that allows us to apply equational reasoning for proving the correctness of graph transformation algorithms. Algebraic graphs let us avoid partial functions typically caused by `malformed graphs' that contain an edge referring to a non-existent vertex. This helps to liberate APIs of existing graph libraries from partial functions.
Andrey Mokhov
Haskell1
2017 An empirical comparison of formalisms for modelling and analysis of dynamic reconfiguration of dependable systems
abstract
Abstract This paper uses a case study to evaluate empirically three formalisms of different kinds for their suitability for the modelling and analysis of dynamic reconfiguration of dependable systems. The requirements on an ideal formalism for dynamic software reconfiguration are defined. The reconfiguration of an office workflow for order processing is described, and the requirements on the reconfiguration of the workflow are defined. The workflow is modelled using the Vienna Development Method (VDM), conditional partial order graphs (CPOGs), and the basic Calculus of Communicating Systems for dynamic process reconfiguration (basic CCSdp), and verification of the reconfiguration requirements is attempted using the models. The formalisms are evaluated according to their ability to model the reconfiguration of the workflow, to verify the requirements on the workflow’s reconfiguration, and to meet the requirements on an ideal formalism.
Anirban Bhattacharyya, Andrey Mokhov, Ken G. Pierce
Formal Aspects Comput.2
2016 Formal verification of clock domain crossing using gate-level models of metastable flip-flops
Ghaith Tarawneh, Andrey Mokhov, Alexandre Yakovlev
DATE2
2016 Desugaring Haskell's do-notation into applicative operations
abstract
Monads have taken the world by storm, and are supported by do-notation (at least in Haskell). Programmers are increasingly waking up to the usefulness and ubiquity of Applicatives, but they have so far been hampered by the absence of supporting notation. In this paper we show how to re-use the very same do-notation to work for Applicatives as well, providing efficiency benefits for some types that are both Monad and Applicative, and syntactic convenience for those that are merely Applicative. The result is fully implemented as an optional extension in GHC, and is in use at Facebook to make it easy to write highly-parallel queries in a distributed system.
Simon Marlow, Simon L. Peyton Jones, Edward Kmett, Andrey Mokhov
Haskell4
2016 Non-recursive make considered harmful: build systems at scale
abstract
Most build systems start small and simple, but over time grow into hairy monsters that few dare to touch. As we demonstrate in this paper, there are a few issues that cause build systems major scalability challenges, and many pervasively used build systems (e.g. Make) do not scale well.
Andrey Mokhov, Neil Mitchell, Simon L. Peyton Jones, Simon Marlow
Haskell1
2016 MEMS-based power delivery control for bursty applications
abstract
The current trends for greater heterogeneity in future Systems-on-Chip (SoC) do not only concern their functionality but also their timing and power aspects. The increasing diversity of timing and power supply conditions, and associated concurrently operating modes, within an SoC calls for more efficient power delivery networks (PDN) for battery operated devices. This is especially important for systems with mixed duty cycling, where some parts are required to work regularly with low-throughput while other parts are activated spontaneously, i.e. in bursts. To improve their reaction time vs energy efficiency, this paper proposes to incorporate a power-switching network based on MEM relays to switch the SoC power-performance state (PPS) into an active mode while eliminating the leakage current when it is idle. Results show that even with todays large and high pull-in voltages, a MEM-relay-based power switching network (PSN) can achieve a 1000x saving in energy compared to its CMOS counterpart for low duty cycle. Finally, the paper presents, by means of multiphysics simulation results, design guidelines for idle time and energy-saving estimates as a function of MEM relay scaling parameters.
Haider Alrudainy, Andrey Mokhov, Nizar Dahir, Alexandre Yakovlev
ISCAS2
2015 Building Bridges Between Sets of Partial Orders
Hernán Ponce de León, Andrey Mokhov
LATA2
2015 Compositional design of asynchronous circuits from behavioural concepts
abstract
Asynchronous circuits can be useful in many applications, however, they are yet to be widely used in industry. The main reason for this is a steep learning curve for concurrency models, such Signal Transition Graphs, that are developed by the academic community for specification and synthesis of asynchronous circuits. In this paper we introduce a compositional design flow for asynchronous circuits using concepts - a set of formalised descriptions for system requirements. Our aim is to simplify the process of capturing system requirements in the form of a formal specification, and promote the concepts as a means for design reuse. The proposed design flow is applied to the development of an asynchronous buck converter.
Jonathan Beaumont, Andrey Mokhov, Danil Sokolov, Alexandre Yakovlev
MEMOCODE2
2015 Guest Editorial for Special Issue Application of Concurrency to System Design
abstract
No abstract available.
Kamel Barkaoui, Luca Bernardinello, Andrey Mokhov
ACM Trans. Embed. Comput. Syst.3
2014 Design of safety critical systems by refinement
abstract
An increasingly large number of safety-critical embedded systems rely on software to prevent and mitigate hazards occurring due to design errors and unexpected interactions of the system with its users and the environment. Implementing a safety instrumented function in the way advocated by the traditional software methods requires an intimate understanding and thorough validation of a complex ecosystem of programming languages, compilers, operating systems and hardware. We propose to consider an alternative where a system designer, for each individual problem, creates in a correct-by-construction manner both the design of a system and its compilation and execution infrastructure. This permits an uninterrupted chain of a formal correctness argument spanning from formalised requirements all the way to the gate-level characterisation of an execution environment. The past decade of advances in verification technology turned the mechanical verification of large-scale models into a reality while the pressure of certification makes the cost of a formally verified development routine increasingly acceptable. The proposal fits the Grand Challenge for Computer Research posed by Hoare in 2003, namely, development of a Verifying Compiler which not only mechanically translates a given program from one language to another but also verifies its correctness according to a formal specification. This allows meeting the most stringent software certification requirements such as SIL 4. We illustrate the vision with a small case-study developed using the Event-B modelling notation and tools.
Alexei Iliasov, Arseniy Alekseyev, Danil Sokolov, Andrey Mokhov
DATE4
2014 Direct Construction of Complete Merged Processes
abstract
Merged processes (MPs) are a recently proposed condensed representation of a Petri net's behaviour similar to branching processes (unfoldings), which copes well not only with concurrency but also with other sources of state space explosion like sequences of choices. They are by orders of magnitude more compact than traditional unfoldings, and yet can be used for efficient model checking. However, constructing complete MPs is difficult, and the only known algorithm is based on building a (potentially much larger) complete unfolding prefix of a Petri net, whose nodes are then merged. Obviously, this significantly reduces their appeal as a representation that can be used for practical model checking. In this paper, we develop an algorithm that avoids constructing the intermediate unfolding prefix and builds a complete merged process directly from a safe Petri net. In particular, a challenging problem of truncating a merged process is solved.
Victor Khomenko, Andrey Mokhov
Comput. J.2
2014 Synthesis of Processor Instruction Sets from High-Level ISA Specifications
abstract
As processors continue to get exponentially cheaper for end users following Moore’s law, the costs involved in their design keep growing, also at an exponential rate. The reason is ever increasing complexity of processors, which modern EDA tools struggle to keep up with. This paper focuses on the design of Instruction Set Architecture (ISA), a significant part of the whole processor design flow. Optimal design of an instruction set for a particular combination of available hardware resources and software requirements is crucial for building processors with high performance and energy efficiency, and is a challenging task involving a lot of heuristics and high-level design decisions. This paper presents a new compositional approach to formal specification and synthesis of ISAs. The approach is based on a new formalism, called Conditional Partial Order Graphs, capable of capturing common behavioural patterns shared by processor instructions, and therefore providing a very compact and efficient way to represent and manipulate ISAs. The Event-B modelling framework is used as a formal specification and verification back-end to guarantee correctness of ISA specifications. We demonstrate benefits of the presented methodology on several examples, including Intel 8051 microcontroller.
Andrey Mokhov, Alexei Iliasov, Danil Sokolov, Maxim Rykunov, Alexandre Yakovlev, Alexander B. Romanovsky
IEEE Trans. Computers1
2014 Algebra of Parameterised Graphs
abstract
One of the difficulties in designing modern hardware systems is the necessity for comprehending and dealing with a very large number of system configurations, operational modes, and behavioural scenarios. It is often infeasible to consider and specify each individual mode explicitly, and one needs methodologies and tools to exploit similarities between the individual modes and work with groups of modes rather than individual ones. The modes and groups of modes have to be managed in a compositional way: the specification of the system should be composed from specifications of its blocks. This includes both structural and behavioural composition. Furthermore, one should be able to transform and optimise the specifications in a formal way. In this article, we propose a new formalism, called parameterised graphs . It extends the existing conditional partial order graphs (CPOGs) formalism in several ways. First, it deals with general graphs rather than just partial orders. Moreover, it is fully compositional. To achieve this, we introduce an algebra of parameterised graphs by specifying the equivalence relation by a set of axioms, which is proved to be sound, minimal, and complete. This allows one to manipulate the specifications as algebraic expressions using the rules of this algebra. We demonstrate the usefulness of the developed formalism on several case studies coming from the area of microelectronics design.
Andrey Mokhov, Victor Khomenko
ACM Trans. Embed. Comput. Syst.1
2013 Design-for-adaptivity of microarchitectures
abstract
In the last decade we have witnessed a steady trend towards functional diversification of hardware, because an application specific hardware component is a lot easier to design and optimise than a general-purpose one. Therefore, a modern microelectronics system often contains several application specific cores, each targeted for a particular function. As operating conditions issues are becoming more important, we start to see non-functional diversification in terms of performance and energy consumption; it is expected that a system can operate in a wide spectrum of environmental conditions and it should support a hierarchy of energy-saving modes. As a result, "mode-specific" processing cores are gaining popularity. The number of possible combinations of functional and nonfunctional variations of hardware components is becoming unmanageable and is leading to inefficient silicon utilisation. In this paper we explore a novel approach to hardware design which allows building computation systems capable of adjusting to operating conditions through dynamic reconfiguration. We demonstrate the approach by designing an asynchronous microprocessor core that can operate in a wide range of supply voltages and can adjust its functionality towards a specific application and operating mode. Our methodology is based on a novel model of hardware description and on self-timed design techniques.
Maxim Rykunov, Andrey Mokhov, Danil Sokolov, Alexandre Yakovlev, Albert Koelmans
ASAP2
2013 Concurrent Multiresource Arbiter: Design and Applications
abstract
This paper presents a novel type of asynchronous arbiter that allocates M interchangeable resources among N clients. This arbiter enables the concurrent utilization of multiple resources and is a useful device in various load-balancing circuits. Dedicated request signals from the resources and the clients are used in pairs to form each new grant. The 2 × 2 arbiter is examined as an accessible special case of the N × M arbiter. A concurrent implementation is compared to fully sequential design. It is shown that the sequential design can be more practical when the time between a grant and the withdrawal of the initial request is small. The concurrent design provides higher performance in a system with a longer resource utilization time. A scalable tiled structure is developed to extend the arbiter structure beyond 2 × 2 to support N clients and M resources. Models and subsequent implementations of the tiles are presented. The tiles can be repeated without the use of additional connecting logic, enabling the construction of arbiters of larger sizes. Several examples demonstrate the usage of the arbiter.
Stanislavs Golubcovs, Delong Shang, Fei Xia 0001, Andrey Mokhov, Alexandre Yakovlev
IEEE Trans. Computers4
2012 Mixed Radix Reed-Muller Expansions
abstract
The choice of radix is crucial for multivalued logic synthesis. Practical examples, however, reveal that it is not always possible to find the optimal radix when taking into consideration actual physical parameters of multivalued operations. In other words, each radix has its advantages and disadvantages. Our proposal is to synthesize logic in different radices, so it may benefit from their combination. The theory presented in this paper is based on Reed-Muller expansions over Galois field arithmetic. The work aims to first estimate the potential of the new approach and to second analyze its impact on circuit parameters down to the level of physical gates. The presented theory has been applied to real-life examples focusing on cryptographic circuits where Galois Fields find frequent application. The benchmark results show that the approach creates a new dimension for the trade-off between circuit parameters and provides information on how the implemented functions are related to different radices.
Ashur Rafiev, Andrey Mokhov, Frank P. Burns, Julian P. Murphy, Albert Koelmans, Alexandre Yakovlev
IEEE Trans. Computers2
2011 An Algorithm for Direct Construction of Complete Merged Processes
Victor Khomenko, Andrey Mokhov
Petri Nets2
2011 Formal modelling and transformations of processor instruction sets
abstract
Instruction sets of modern processors contain hundreds of instructions defined on a relatively small set of datapath components and distinguished by their codes and the order in which they activate these components. Optimal design of an instruction set for a particular combination of available hardware components and software requirements is crucial for system performance and is a challenging task involving a lot of heuristics and high-level design decisions. The overall design process is significantly complicated by inefficient representation of instructions, which are usually described individually despite the fact that they share a lot of common behavioural patterns. This paper presents a new methodology for compact graph representation of processor instruction sets, which gives the designer a new high-level perspective for reasoning on large sets of instructions without having to look at each of them individually. This opens the way for various transformation and optimisation procedures, which are formally defined and explained on several examples, as well as practically evaluated on an FPGA platform.
Andrey Mokhov, Danil Sokolov, Maxim Rykunov, Alexandre Yakovlev
MEMOCODE1
2011 Flat Arbiters
abstract
A new way of constructing N-way arbiters is proposed. The main idea is to perform arbitrations between all pairs of requests, and then make decision on what grant to issue based on their outcomes. Crucially, all the mutual exclusion elements in such
Andrey Mokhov, Victor Khomenko, Alexandre Yakovlev
Fundam. Informaticae1
2010 Conditional Partial Order Graphs: Model, Synthesis, and Application
abstract
The paper introduces a new formal model for specification and synthesis of control paths in the context of asynchronous system design. The model, called Conditional Partial Order Graph (CPOG), captures concurrency and choice in a system's behavior in a compact and efficient way. It has advantages over widely used interpreted Petri Nets and Finite State Machines for a class of systems which have many behavioral scenarios defined on the same set of actions, e.g., CPU microcontrollers. The CPOG model has potential applications in the area of microcontrol synthesis and brings new methods for modeling concurrency into the application domain of modern and future processor architectures. The paper gives the formal definition of the CPOG model, formulates and solves the problem of CPOG synthesis, and introduces various optimization techniques. The presented ideas can be applied for CPU control synthesis as well as for synthesis of different kinds of event-coordination circuits often used in data coding and communication in digital systems, as demonstrated with several application examples.
Andrey Mokhov, Alexandre Yakovlev
IEEE Trans. Computers1
2008 Conditional Partial Order Graphs and Dynamically Reconfigurable Control Synthesis
abstract
The paper introduces a new formal model for specifying control paths in the context of asynchronous system design. The model, called conditional partial order graph (CPOG), is capable of capturing concurrency and choice in a system's behaviour in a compact and efficient way. A problem of CPOG synthesis is formulated and solved; various CPOG optimisation techniques are presented. The introduced model can be used for the specification of system behaviour and for synthesis of area-efficient dynamically reconfigurable controllers. The synthesis of a controller is based on a novel generic architecture, called transition sequence encoder (TSE). The synthesized controllers are speed independent and thus very robust to parametric variations. The ideas presented in the paper can be applied for CPU control synthesis as well as for synthesis of different kinds of event-coordination circuits often used in data coding and communication in digital systems.
Andrey Mokhov, Alexandre Yakovlev
DATE1