Anatoly Koyfman

dblp:05/2306 · DBLP profile ↗
← Back
7ranked-venue papers
0as first author
0since 2021 · last 2016
—ORCID · none

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

Systems, architecture and hardware · 5Artificial intelligence and machine learning · 1Software engineering, systems software and programming languages · 1Theory of computation · 1

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
4 papers
Electronic design automation · 77% Parallel and multicore computing · 12% Performance modeling and evaluation · 9%

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

TopicWeightPapersLastEvidence papers
Electronic design automation
hardware verification and test
0.532014
Verification of Transactional Memory in POWER8 · DAC 2014
Checking architectural outputs instruction-by-instruction on acceleration platforms · DAC 2012
Simulation-Based Verification of Floating-Point Division · IEEE Trans. Computers 2011
Electronic design automation › hardware verification and test › functional verification
simulation-based verification
0.322012
Checking architectural outputs instruction-by-instruction on acceleration platforms · DAC 2012
Simulation-Based Verification of Floating-Point Division · IEEE Trans. Computers 2011
Electronic design automation › hardware verification and test
processor verification
0.212014
Verification of Transactional Memory in POWER8 · DAC 2014
Parallel and multicore computing
transactional memory
0.212014
Verification of Transactional Memory in POWER8 · DAC 2014
Performance modeling and evaluation › simulation › architectural simulation
simulation acceleration
0.112012
Checking architectural outputs instruction-by-instruction on acceleration platforms · DAC 2012
Electronic design automation › hardware verification and test › test generation › functional test generation
constrained-random test generation
0.112011
Simulation-Based Verification of Floating-Point Division · IEEE Trans. Computers 2011
Electronic design automation › hardware verification and test
test generation
0.112011
Simulation-Based Verification of Floating-Point Division · IEEE Trans. Computers 2011
Processor architecture and microarchitecture
instruction set architecture
0.011999
Developing an Architecture Validation Suite: Applicaiton to the PowerPC Architecture · DAC 1999
Electronic design automation › hardware verification and test
hardware verification
0.011999
Developing an Architecture Validation Suite: Applicaiton to the PowerPC Architecture · DAC 1999

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

pre-silicon simulation · 0.2post-silicon validation · 0.2acceleration · 0.2lockstep checking · 0.1golden model comparison · 0.1divide-and-conquer · 0.1constraint solving · 0.1coverage models · 0.0
YearPublicationVenuePosition
2016 Using Graph-Based CSP to Solve the Address Translation Problem
Merav Aharoni, Yael Ben-Haim, Shai Doron, Anatoly Koyfman, Elena Tsanko, Michael Veksler
CP4
2016 Unveiling difficult bugs in address translation caching arrays for effective post-silicon validation
abstract
Post-silicon validation is one of the most important parts of the microprocessor prototype chip lifecycle. It is the last chance for debug engineers to detect defects and bugs that escaped pre-silicon verification, before the chip is released to the market. Effective solutions are required to harness the peak performance of the hardware prototype and evaluate whether the microprocessor chip is fully compliant with the instruction set and other specifications. We perform a comprehensive experimental study on a state-of-the-art microarchitecture to assess and identify the most difficult bugs in address translation caching arrays (multi-level TLBs and MMU Caches), and explain why these bugs persist across generations. We also categorize them into distinct bug scenarios. We then propose a novel methodology for generating random self-checking stimuli programs, which expose and detect such bug scenarios. Our experimental results show that the proposed method can detect difficult bugs that are likely to be missed by traditional post-silicon validation techniques.
George Papadimitriou 0001, Dimitris Gizopoulos, Athanasios Chatzidimitriou, Tom Kolan, Anatoly Koyfman, Ronny Morad, Vitali Sokhin
ICCD5
2014 Verification of Transactional Memory in POWER8
abstract
Transactional memory is a promising mechanism for synchronizing concurrent programs that eliminates locks at the expense of hardware complexity. Transactional memory is a hard feature to verify. First, transactions comprise several instructions that must be observed as a single global atomic operation. In addition, there are many reasons a transaction can fail. This results in a high level of non-determinism which must be tamed by the verification methodology. This paper describes the innovation that was applied to tools and methodology in pre-silicon simulation, acceleration and post-silicon in order to verify transactional memory in the IBM POWER8 processor core.
Allon Adir, Dave Goodman, Daniel Hershcovich, Oz Hershkovitz, Bryan G. Hickerson, Karen Holtz, Wisam Kadry, Anatoly Koyfman, John M. Ludden, Charles Meissner, Amir Nahir, Randall R. Pratt, Mike Schiffli, Brett St. Onge, Brian W. Thompto, Elena Tsanko, Avi Ziv
DAC8
2012 Checking architectural outputs instruction-by-instruction on acceleration platforms
abstract
Simulation-based verification is an integral part of a modern microprocessor's design effort. Commonly, several checking techniques are deployed alongside the simulator to detect and localize each functional bug manifestation. Among these, a widespread technique entails comparing a microprocessor design's outputs with a golden model at the architectural granularity, instruction-by-instruction. However, due to exponential growth in design complexity, the performance of software-based simulation falls far short of achieving an acceptable level of coverage, which typically requires billions of simulation cycles. Hence, verification engineers rely on simulation acceleration platforms. Unfortunately, the intrinsic characteristics of these platforms make the adoption of the checking solutions mentioned above a challenging goal: for instance, the lockstep execution of a software checker together with the design's simulation is no longer feasible.
Debapriya Chatterjee, Anatoly Koyfman, Ronny Morad, Avi Ziv, Valeria Bertacco
DAC2
2011 Simulation-Based Verification of Floating-Point Division
abstract
Floating-point division is known to exhibit an exceptionally wide array of corner cases, making its verification a difficult challenge. Despite the remarkable advances in formal methods, the intricacies of this operation and its implementation often render these inapplicable. Simulation-based methods remain the primary means for verification of division. FPgen is a test generation framework targeted at the floating point datapath. It has been successfully used in the simulation-based verification of a variety of hardware designs. FPgen comprises a comprehensive test plan and a powerful test generator. A proper response to the difficulties posed by division constitutes a major part of FPgen's capabilities. We present an overview of the relevant verification tasks supplied with FPgen and the underlying algorithms used to target them.
Elena Guralnik, Merav Aharoni, Ariel J. Birnbaum, Anatoly Koyfman
IEEE Trans. Computers4
2009 Implementation Specific Verification of Divide and Square Root Instructions
abstract
Floating point operations such as divide and square root are typically implemented in microcode rather than dedicated logic. Bugs in these operations missed by generic black-box verification tools, were analyzed. This led to the conclusion that the corner cases, in addition to being implementation dependent, could not be characterized in terms of special input or output values in a straightforward manner. However, many of those cases can be easily generalized for many known implementations. The typical implementation uses a known iterative approximation algorithm, such as the Newton-Raphson method, to calculate the desired result; thus, it is sufficient to produce the corner cases associated with the specific algorithm. We investigated the following problem: given an iterative algorithm to compute a binary floating point operation, the iteration number, and an interval, find random inputs for the operation that, after the requested iteration, yield a relative error within the specified interval. This paper describes a method to solve this problem. This method was implemented in a floating-point test generator and is currently being used to verify the floating-point units of several processors.
Elena Guralnik, Ariel J. Birnbaum, Anatoly Koyfman, Avi Kaplan
IEEE Symposium on Computer Arithmetic3
1999 Developing an Architecture Validation Suite: Applicaiton to the PowerPC Architecture
abstract
This paper describes the efforts made and the results of creating an Architecture Validation Suite for the PowerPC architecture.Although many functional test suites are available for multiple architectures, little has been published on how these suites are developed and how their quality should be measured.This work provides some insights for approaching the difficult problem of building a high quality functional test suite for a given architecture.By defining a set of generic coverage models that combine program-based, specification-based, and sequential bug-driven models, it establishes the groundwork for the development of architecture validation suites for any architecture.
Laurent Fournier, Anatoly Koyfman, Moshe Levinger
DAC2