IP Library Granted Patent US 12,438,829
Granted Patent B2
US 12,438,829 · App. 17/953,350 · Granted Oct 7, 2025

System and method for deadlock detection in network-on-chip (NoC) having external dependencies

Inventors: Benoit de Lescure (Campbell, CA); Moez Cherif (Santa Cruz, CA)
Assignee: ARTERIS, INC.
H04L49/55H04L49/109H04L49/25
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,438,829
App. No.
17/953,350
Granted
Oct 7, 2025
Kind
B2
Abstract

Design of a network-on-chip (NoC) includes searching for a potential deadlock in a topology of the NoC, where the potential deadlock is caused by an external dependency in which input of data into the NoC is dependent on output of data from the NoC. The NoC design further includes modifying the NoC topology to resolve the potential deadlock.

Claims (48)

1. A method of designing a network-on-chip (NoC), the method comprising:

searching for a potential deadlock in a topology of the NoC, the potential deadlock caused by an external dependency in which input of data into the NoC is dependent on output of data from the NoC;

modifying the NoC topology to resolve the potential deadlock;

searching for at least one additional potential deadlock in the topology and modifying the NoC topology to resolve each additional deadlock,

wherein the NoC includes a plurality of network interface units configured to interface with initiators (initiator NIUs) and a plurality of network interface units configured to interface with targets (target NIUs),

wherein the NoC includes a plurality of network interface units configured to interface with initiators (initiator NIUs) and a plurality of network interface units configured to interface with targets (target NIUs) and wherein searching for a potential deadlock includes examining the topology for segments that form loops with respect to an initiator NIU and a target NIU having an external dependency, a potential deadlock detected if a loop is detected,

wherein searching for a potential deadlock includes examining the topology for segments that form loops with respect to an initiator NIU and a target NIU having an external dependency, a potential deadlock detected if a loop is detected,

wherein for each target NIU, a chain of dependent segments is traversed to determine whether the chain forms a loops,

wherein examining the topology for segments that form loops includes:

creating a first list of segments in the NoC topology, where each segment is a directed connection between two components in the NoC topology;

adding to the first list segments between target NIUs having external dependencies to initiator NIUs;

for each segment in the first list, creating a second list of downstream dependent segments, where each dependent segment depends on forward progress of packets from an upstream segment, whereby a set of second lists is created; and

for each initiator NIU in the topology, traversing the set of second lists of dependent segments until reaching a target NIU with no external dependencies or until finding at least one loop.

2. The method of claim 1 , further comprising generating a register transfer level (RTL) description of the NoC from the modified NoC topology.

3. The method of claim 2 , wherein the NoC is implemented in a system-on-chip (SoC) and the method further comprises:

generating a topology description of the NoC,

wherein a description of external dependencies is received from an architect of the SoC, and

wherein the NoC topology description and the external dependency description are used to search for a potential deadlock; and

delivering the RTL description of the NoC to the architect.

4. A method of designing a network-on-chip (NoC), the method comprising:

searching for a potential deadlock in a topology of the NoC, the potential deadlock caused by an external dependency in which input of data into the NoC is dependent on output of data from the NoC;

modifying the NoC topology to resolve the potential deadlock;

searching for at least one additional potential deadlock in the topology and modifying the NoC topology to resolve each additional deadlock,

wherein the NoC includes a plurality of network interface units configured to interface with initiators (initiator NIUs) and a plurality of network interface units configured to interface with targets (target NIUs),

wherein the NoC includes a plurality of network interface units configured to interface with initiators (initiator NIUs) and a plurality of network interface units configured to interface with targets (target NIUs) and wherein searching for a potential deadlock includes examining the topology for segments that form loops with respect to an initiator NIU and a target NIU having an external dependency, a potential deadlock detected if a loop is detected,

wherein searching for a potential deadlock includes examining the topology for segments that form loops with respect to an initiator NIU and a target NIU having an external dependency, a potential deadlock detected if a loop is detected,

wherein examining the topology for segments that form loops includes:

creating all possible lists that originate from an initiator NIU and that contain segments S( 0 ), S( 1 ) . . . S(N), where a segment S(i) in one such list is followed immediately by a segment S(i+1), if and only if S(i+1) is a downstream dependent segment of S(i); and

for each initiator NIU in the topology, traversing the lists until reaching a target NIU with no external dependencies or until finding at least one loop of segments.

5. A method of designing a network-on-chip (NoC), the method comprising:

searching for a potential deadlock in a topology of the NoC, the potential deadlock caused by an external dependency in which input of data into the NoC is dependent on output of data from the NoC;

modifying the NoC topology to resolve the potential deadlock;

searching for at least one additional potential deadlock in the topology and modifying the NoC topology to resolve each additional deadlock,

wherein the NoC includes a plurality of network interface units configured to interface with initiators (initiator NIUs) and a plurality of network interface units configured to interface with targets (target NIUs),

wherein the NoC includes a plurality of network interface units configured to interface with initiators (initiator NIUs) and a plurality of network interface units configured to interface with targets (target NIUs) and wherein searching for a potential deadlock includes examining the topology for segments that form loops with respect to an initiator NIU and a target NIU having an external dependency, a potential deadlock detected if a loop is detected,

wherein searching for a potential deadlock includes examining the topology for segments that form loops with respect to an initiator NIU and a target NIU having an external dependency, a potential deadlock detected if a loop is detected,

wherein loop detection with respect to a selected initiator NIU includes:

creating an empty set of lists;

populating the set with a first search list having a segment originating from the selected initiator NIU;

making, if the list is not empty, a list current and making current a segment at end of the current list;

indicating, if the current segment appears twice in the current list, that a loop has been detected;

removing, if the current segment terminates at a target NIU and has no dependent downstream segments, the current list from the set;

creating a new list for each dependent downstream segment of the current segment;

adding each new list to the set;

removing the current list from the set; and

making the list current and making current the segment at the end of the list made current.

6. The method of claim 5 , wherein the loop detection further includes indicating, if the set is empty, that a loop is not detected for the selected NIU.

7. The method of claim 5 , wherein creating a new list includes cloning the current list and appending a downstream dependent segment of the current segment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2022
From: CHERIF, MOEZ; DE LESCURE, BENOIT
To: ARTERIS, INC.
Reel/Frame 061221/0049 →
Continuity (2)
Provisional Application 63250111 · Sep 29, 2021
Related Publication 20230096061A1 · Mar 30, 2023
References Cited (164)
US 5485396A · Brasen et al. · 1996 [cited by applicant]
US 5541849A · Rostoker et al. · 1996 [cited by applicant]
US 5623420A · Yee et al. · 1997 [cited by applicant]
US 5638288A · Deeley · 1997 [cited by applicant]
US 5761078A · Fuller et al. · 1998 [cited by applicant]
US 5887670A · Tabata et al. · 1999 [cited by applicant]
US 5903886A · Heimlich et al. · 1999 [cited by applicant]
US 5983277A · Heile et al. · 1999 [cited by applicant]
US 6002857A · Ramachandran · 1999 [cited by applicant]
US 6134705A · Pedersen et al. · 2000 [cited by applicant]
US 6145117A · Eng · 2000 [cited by applicant]
US 6249902B1 · Igusa et al. · 2001 [cited by applicant]
US 6321363B1 · Huang et al. · 2001 [cited by applicant]
US 6360356B1 · Eng · 2002 [cited by applicant]
US 6378121B2 · Hiraga · 2002 [cited by applicant]
US 6421321B1 · Sakagawa et al. · 2002 [cited by applicant]
US 6437804B1 · Ibe et al. · 2002 [cited by applicant]
US 6449761B1 · Greidinger et al. · 2002 [cited by applicant]
US 6622225B1 · Kessler et al. · 2003 [cited by applicant]
US 6883455B2 · Maeda et al. · 2005 [cited by applicant]
US 6907591B1 · Teig et al. · 2005 [cited by applicant]
US 7096436B2 · Bednar et al. · 2006 [cited by applicant]
US 7398497B2 · Sato et al. · 2008 [cited by applicant]
US 7587687B2 · Watanabe et al. · 2009 [cited by applicant]
US 7788625B1 · Donlin et al. · 2010 [cited by applicant]
US 8042087B2 · Murali et al. · 2011 [cited by applicant]
US 8302041B1 · Chan et al. · 2012 [cited by applicant]
US 8819611B2 · Philip et al. · 2014 [cited by applicant]
US 9184998B2 · Xue · 2015 [cited by applicant]
US 9262359B1 · Noice et al. · 2016 [cited by applicant]
US 9444702B1 · Raponi et al. · 2016 [cited by applicant]
US 9569574B1 · Khan et al. · 2017 [cited by applicant]
US 9792397B1 · Nagaraja · 2017 [cited by applicant]
US 9825779B2 · Ruymbeke et al. · 2017 [cited by applicant]
US 9940423B2 · Lescure · 2018 [cited by applicant]
US 10068047B1 · Finn · 2018 [cited by applicant]
US 10282502B1 · BShara et al. · 2019 [cited by applicant]
US 10348563B2 · Rao et al. · 2019 [cited by applicant]
US 10460062B2 · Feld et al. · 2019 [cited by applicant]
US 10565346B1 · Suthar · 2020 [cited by examiner]
US 10733350B1 · Prasad et al. · 2020 [cited by applicant]
US 10853545B1 · Nardi et al. · 2020 [cited by applicant]
US 10922471B2 · Baeckler et al. · 2021 [cited by applicant]
US 10990724B1 · Cherif et al. · 2021 [cited by applicant]
US 11121933B2 · Cherif et al. · 2021 [cited by applicant]
US 11281827B1 · Labib et al. · 2022 [cited by applicant]
US 11449655B2 · Cherif et al. · 2022 [cited by applicant]
US 20030093765A1 · Lam et al. · 2003 [cited by applicant]
US 20040040007A1 · Harn · 2004 [cited by applicant]
US 20040230919A1 · Balasubramanian et al. · 2004 [cited by applicant]
US 20050073316A1 · Graham · 2005 [cited by applicant]
US 20050268258A1 · Decker · 2005 [cited by applicant]
US 20070156378A1 · McNamara · 2007 [cited by applicant]
US 20070157131A1 · Watanabe et al. · 2007 [cited by applicant]
US 20070174795A1 · Lavagno et al. · 2007 [cited by applicant]
US 20070186018A1 · Radulescu et al. · 2007 [cited by applicant]
US 20080046854A1 · Tang · 2008 [cited by applicant]
US 20080049753A1 · Heinze et al. · 2008 [cited by applicant]
US 20080279183A1 · Wiley et al. · 2008 [cited by applicant]
US 20080291826A1 · Licardie et al. · 2008 [cited by applicant]
US 20090031277A1 · Mcelvain et al. · 2009 [cited by applicant]
US 20090313592A1 · Murali et al. · 2009 [cited by applicant]
US 20100061352A1 · Fasolo et al. · 2010 [cited by applicant]
US 20100162189A1 · Lavagno et al. · 2010 [cited by applicant]
US 20100218146A1 · Platzker et al. · 2010 [cited by applicant]
US 20100274785A1 · Procopiuc et al. · 2010 [cited by applicant]
US 20110170406A1 · Krishnaswamy · 2011 [cited by applicant]
US 20120013509A1 · Wisherd et al. · 2012 [cited by applicant]
US 20120311512A1 · Michel · 2012 [cited by examiner]
US 20130174113A1 · Ecler et al. · 2013 [cited by applicant]
US 20130208598A1 · Nakaya et al. · 2013 [cited by applicant]
US 20130258847A1 · Zhang et al. · 2013 [cited by applicant]
US 20130283226A1 · Ho et al. · 2013 [cited by applicant]
US 20140115218A1 · Philip et al. · 2014 [cited by applicant]
US 20140126572A1 · Hutton et al. · 2014 [cited by applicant]
US 20140153575A1 · Munoz · 2014 [cited by applicant]
US 20140156826A1 · Chang et al. · 2014 [cited by applicant]
US 20140160939A1 · Arad et al. · 2014 [cited by applicant]
US 20140169173A1 · Naouri et al. · 2014 [cited by applicant]
US 20140204735A1 · Kumar et al. · 2014 [cited by applicant]
US 20140211622A1 · Kumar et al. · 2014 [cited by applicant]
US 20140298281A1 · Varadarajan et al. · 2014 [cited by applicant]
US 20140321839A1 · Armstrong · 2014 [cited by applicant]
US 20150036536A1 · Kumar et al. · 2015 [cited by applicant]
US 20150106778A1 · Mangano et al. · 2015 [cited by applicant]
US 20150121319A1 · Hutton et al. · 2015 [cited by applicant]
US 20150178435A1 · Kumar · 2015 [cited by applicant]
US 20150254325A1 · Stringham · 2015 [cited by applicant]
US 20150341224A1 · Van et al. · 2015 [cited by applicant]
US 20150347641A1 · Gristede et al. · 2015 [cited by applicant]
US 20160103943A1 · Xia et al. · 2016 [cited by applicant]
US 20160275213A1 · Tomita · 2016 [cited by applicant]
US 20160321390A1 · Bozman et al. · 2016 [cited by applicant]
US 20170060204A1 · Gangwar et al. · 2017 [cited by applicant]
US 20170063734A1 · Kumar · 2017 [cited by applicant]
US 20170132350A1 · Janac · 2017 [cited by applicant]
US 20170177778A1 · Lescure · 2017 [cited by applicant]
US 20170193136A1 · Prasad et al. · 2017 [cited by applicant]
US 20180115487A1 · Thubert et al. · 2018 [cited by applicant]
US 20180144071A1 · Yu et al. · 2018 [cited by applicant]
US 20180218105A1 · de Lescure · 2018 [cited by examiner]
US 20180227180A1 · Rao et al. · 2018 [cited by applicant]
US 20190012909A1 · Mintz · 2019 [cited by applicant]
US 20190073440A1 · Farbiz et al. · 2019 [cited by applicant]
US 20190205493A1 · Garibay et al. · 2019 [cited by applicant]
US 20190246989A1 · Genov et al. · 2019 [cited by applicant]
US 20190251227A1 · Fink · 2019 [cited by applicant]
US 20190260504A1 · Philip et al. · 2019 [cited by applicant]
US 20190363789A1 · Lee et al. · 2019 [cited by applicant]
US 20200092230A1 · Schultz et al. · 2020 [cited by applicant]
US 20200162335A1 · Chen et al. · 2020 [cited by applicant]
US 20200234582A1 · Mintz · 2020 [cited by applicant]
US 20200366607A1 · Kommula et al. · 2020 [cited by applicant]
US 20210203557A1 · Cherif et al. · 2021 [cited by applicant]
US 20210226887A1 · Mereddy · 2021 [cited by applicant]
US 20210320869A1 · Bourai et al. · 2021 [cited by applicant]
US 20210409284A1 · Cherif et al. · 2021 [cited by applicant]
US 20220121951A1 · Cassidy · 2022 [cited by examiner]
US 20220294704A1 · Lescure et al. · 2022 [cited by applicant]
CN 105187313B · 2018 [cited by applicant]
CN 109587081A · 2019 [cited by applicant]
CN 113051215A · 2021 [cited by applicant]
CN 113055219A · 2021 [cited by applicant]
DE 102015014851A1 · 2016 [cited by applicant]
EP 3842987A1 · 2021 [cited by applicant]
EP 4024262A1 · 2022 [cited by applicant]
EP 4057179A1 · 2022 [cited by applicant]
Anonymous: “Network on a chip—Wikipedia”, Jun. 15, 2021, https://en.wikipedia.org/w/index. php?title-Network_on_a_chip&oldid=1028654828. [cited by applicant]
Haytham Elmiligi et al: “Networks-on-chip topology optimization subject to power, delay, and reliability constraints”, IEEE International Symposium on Circuits and Systems, May 30, 2010, pp. 2354-2357 DOI: 10.1109/ISCAS… [cited by applicant]
Jain R. et al: “Predicting system-level area and delay for pipelined and nonpipelined designs”, IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, vol. 11, No. 8, Jan. 1, 1992, pp. 955-965, D… [cited by applicant]
Jingye Xu et al: “Latch Based Interconnect Pipelining For High Speed Integrated Circuits”, Proceedings of the International Conference on Electro/Information Technology, May 1, 2006, pp. 295-300 DOI: 10.1109/EIT.2006.25… [cited by applicant]
Jun Minje et al: “Exploiting Implementation Diversity and Partial Connection of Routers in Application-Specific Network-on-Chip Topology Synthesis”, IEEE Transactions on Computers, IEEE, USA, vol. 63, No. 6, Jun. 1, 201… [cited by applicant]
Saponara S et al: “Design and coverage-driven verification of a novel network-interface IP macrocell for network-on-chip interconnects”, Microprocessors and Microsystems, vol. 35, No. 6 , pp. 579-592, XP028255708 ISSN: … [cited by applicant]
Saponara Sergio et al: “Configurable network-on-chip router macrocells”, Microprocessors and Microsystems, IPC Business Press Ltd. London, GB, vol. 45, Apr. 29, 2016 (Apr. 29, 2016), pp. 141-150 XP029678799, ISSN: 0141-… [cited by applicant]
Song Z et al: “A NoC-Based High Performance Deadlock Avoidance Routing Algorithm”, Computer and Computational Sciences, 2008. IMSCCS '08, International Multisymposiums on, IEEE Piscataway, NJ, USA, Oct. 18, 2008, pp. 14… [cited by applicant]
Chaari Moomen Moomen Chaari@Infineon Com et al: “A model-based and simulation-assisted FMEDA approach for safety-relevant E/E systems”, Proceedings of the 34th ACM SIGMOD-SIGACT-SIGAI Symposium on Principles of Database… [cited by applicant]
Mariani R et al: “Fault-Robust Microcontrollers for Automotive Applications”, On-Line Testing Symposium, 2006. IOLTS 2006. 12th IEEE International COMO, Italy Jul. 10-12, 2006, Piscataway, NJ, USA,IEEE, Jul. 10, 2006 (J… [cited by applicant]
U.S. Appl. No. 17/134,384, filed Dec. 26, 2020, Federico Angiolini. [cited by applicant]
U.S. Appl. No. 17/665,578, filed Feb. 6, 2022, K. Charles Janac. [cited by applicant]
“a distributed interleaving scheme for efficient access to widelO dram memory”, Seiculescu Ciprian, Benini Luca, De Micheli Giovanni, CODES+ISSS'12 (Year: 2012). [cited by applicant]
“Thread-Fair Memory Request Reordering”; Kun Fang, Nick Iliev, Ehsan Noohi, Suyu Zhang, and Zhichun Zhu; Dept. of ECE, Univeristy of Illinois at Chicago; JWAC-3 Jun. 9, 2012. [cited by applicant]
19th Asia and South Pacific Design Automation Conterence Alberto Ghiribaldi, Herve Tatenguem Fankem, Federico Angiolini, Mikkel Stensgaard, Tobias Bjerregaard, Davide Bertozzi A Vertically Integrated and Interoperable M… [cited by applicant]
ACM ICCAD '06 Srinivasan Murali, Paolo Meloni, Federico Angiolini, David Atienza, Salvatore Carta, Luca Benini, Giovanni De Micheli, Luigi Raffo Designing Application-Specific Networks on Chips with Floorplan Informatio… [cited by applicant]
Alessandro Pinto et al, “System level design paradigms”, ACM Transactions on Design Automation of Electronic Systems, ACM, New York, NY, US, (Jun. 7, 2004), vol. 11, No. 3, doi: 10.1145/1142980.1142982, ISSN 1084-4309, … [cited by applicant]
Annual IEEE International SoC Conference Proceedings Mohammad reza Kakoee, Federico Angiolin, Srinivasan Murali, Antonio Pullini, Ciprian Seiculescu, and Luca Benini A Floorplan-aware Interactive Tool Flow for NoC Desig… [cited by applicant]
Bo Huang et al, “Application-Specific Network-on-Chip synthesis with topology-aware floorplanning”, Integrated Circuits and Systems Design (SBCCI), 2012 25th Symposium on, IEEE, (Aug. 30, 2012), doi:10.1109/SBCCI.2012.6… [cited by applicant]
David Atienza et al, Network-on-Chip Design and Synthesis Outlook, Science Direct, Integration the VLSI, journal 41 (2008) 340-359. [cited by applicant]
Dumitriu Vet Al: “Throughput-Oriented Noc Topology Generation and Analysis for High Performance SoCs”, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, IEEE Service Center, Piscataway, NJ, USA, vol. 17,… [cited by applicant]
Fangfa Fu et al: “A Noc performance evaluation platform supporting designs at multiple levels of abstraction”, Industrial Electronics and Applications, 2009. ICIEA 2009. 4th IEEE Conference on, IEEE, Piscataway, NJ, USA… [cited by applicant]
Francesco Robino: “A model-based design approach for heterogeneous NoC-based MPSoCs on FPGA”, Jul. 1, 2014 (Jul. 1, 2014), XP002806918, Retrieved from the Internet: URL: http://www.divaportal.org/smash/get/diva2:718518/… [cited by applicant]
Jean-Jacques Lecler et al: Application driven network-on-chip architecture exploration & refinement for a complex SoC, Design Automation for Embedded Systems, vol. 15 no. 2, Apr. 7, 2011, DOI: 10.1007/S10617-011-9075-5. [cited by applicant]
K. R. Manik et al., “Methodology for Design of Optimum NOC Based on I PG,” 2017 Int'l Conference on Algorithms, Methodology, Model and Applications in Emerging Technologies (ICAMMAET), Chennai, India, IEEE, 6 pages. (Ye… [cited by applicant]
Luca Benini: “Application specific Noc design”, Design, Automation and Test in Europe, 2006, Date '06 : Mar. 6-10, 2006, [Munich, Germany; Proceedings] / [Sponsored by the European Design and Automation Association], IE… [cited by applicant]
Murali et al: “Synthesis of Predictable Networks-on-Chip-Based Interconnect Architectures for Chip Multiprocessors”, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, IEEE Service Center, Piscataway, NJ,… [cited by applicant]
Partha et al., Design, Synthesis, and Test of Networks on Chips, IEEE (Year: 2005). [cited by applicant]
Picornell Tomas [email protected] et al: “DCFNoC A Delayed Conflict-Free Time Division Multiplexing Network on Chip”, Designing Interactive Systems Conference, ACM, 2 Penn Plaza, Suite 701 New York NY10121-0701 USA, Jun… [cited by applicant]
Srinivasan K et al, “Linear programming based techniques for synthesis of network-on-chip architectures”, Computer Design: VLSI in Computers and Processors, 2004. ICCD 2004. Proceedings. IEEE International Conference on… [cited by applicant]
Srinivasan Murali et al: “Mapping and physical planning of networks-on-chip architectures with quality- of-service guarantees”, Proceedings of The 2005 Asia and South Pacific Design Automation Conference, Jan. 18, 2005,… [cited by applicant]
Tobias Bjerregaard et al: “ A Router Architecture for Connection-Oriented Service Guarantees in the MANGO Clockless Network-on-Chip”, Proceedings of the IEEE Conference and Exhibition on Design, Automation, and Test in … [cited by applicant]
Wei Zhong et al: “Floorplanning and Topology Synthesis for Application-Specific Network-on-Chips”, IEICE Transactions on Fundamentals of Electronics< Communications and Computer Sciences, Jun. 1, 2013, DOI: 10.1587/TRAN… [cited by applicant]
Zhou Rongrong et al: A Network Components Insertion Method for 3D Application-Specific Network-on-Chip, Proceedings of the 11th IEEE International Conference on ASIC, Nov. 3, 2015, pp. 1-4, DOI: 10.1109/ASICON.2015.7516… [cited by applicant]
Anonymous: “Intel Hyperflex Architecture HighPerformance Design Handbook”, Oct. 4, 2021 (Oct. 4, 2021), pp. 1-147, XP093063924, Retrieved from the Internet: URL:https://cdrdv2.intel.com/vl/dl/getContent/667078?fileName=… [cited by applicant]
James C. Tiernan. 1970. An efficient search algorithm to find the elementary circuits of a graph. Commun. ACM 13, 12 (Dec. 1970), 722-726. https://doi.org/10.1145/362814.362819. [cited by applicant]
Ken Eguro et al: “Simultaneous Retiming and Placement for Pipelined Net lists”, Proceedings of the 16th International Symposium on Field-Programmable Custom Computing Machines, Apr. 14, 2008 (Apr. 14, 2008), pp. 139-148… [cited by applicant]