NOCA — A Notification-Oriented Computer Architecture: Prototype and Simulator

The Notification Oriented Paradigm (NOP) introduced a new organization of software and hardware logic based on notifications among computational entities. This NOP new organization avoids processing redundancy and allows processing unit decoupling, therefore permitting proper processing performance and processing parallelism/distribution. Thus, the NOP provides means to make efficient use of the parallel execution capabilities of modern computing systems. However, as expected, the execution dynamics of NOP, based on notifications, is not efficiently performed by the hardware of most current computing systems. This paper presents a new solution called Notification-Oriented Computer Architecture (NOCA), which is suitable for the execution of software developed according to the NOP computing model. The NOCA was designed according to principles of generality and scalability, which allow it to execute NOP software of any size by fetching the application from memory. The proposed architecture is organized as a fine-grained multiprocessor that hierarchically executes instructions through sets of specialized processing cores. Preliminary experiments performed on prototypal FPGA implementation of the NOCA showed the expected behavior of executing NOP applications according to its theoretical computing model. This paper also presents experiments performed on a NOCA simulator extending the scale of parallelization of applications. Results show improvements in maximizing the speedups at higher scales of parallelization, as well as minimizing the effects of processor-to-memory communication bottlenecks by reducing the number of required memory accesses during execution.

[1]  João Alberto Fabro,et al.  Notification-Oriented Programming Language and Compiler , 2017, 2017 VII Brazilian Symposium on Computing Systems Engineering (SBESC).

[2]  Fernando Schütz,et al.  Proposal of a declarative and parallelizable artificial neural network using the notification-oriented paradigm , 2018, Neural Computing and Applications.

[3]  Paulo Cézar Stadzisz,et al.  Inference Based on Notifications: A Holonic Metamodel Applied to Control Issues , 2009, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

[4]  David A. Patterson,et al.  Computer Organization And Design: The Hardware/Software Interface , 1993 .

[5]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[6]  Charles L. Forgy,et al.  Rete: a fast algorithm for the many pattern/many object pattern match problem , 1991 .

[7]  Tobias Bjerregaard,et al.  A survey of research and practices of Network-on-chip , 2006, CSUR.

[8]  Theo Ungerer,et al.  A survey of processors with explicit multithreading , 2003, CSUR.

[9]  Krishna M. Kavi,et al.  Scheduled Dataflow: Execution Paradigm, Architecture, and Performance Evaluation , 2001, IEEE Trans. Computers.

[10]  Robson Ribeiro Linhares,et al.  Notification-Oriented and Rete Network Inference: A Comparative Study , 2015, 2015 IEEE International Conference on Systems, Man, and Cybernetics.

[11]  Chris R. Jesshope,et al.  Supporting Microthread Scheduling and Synchronisation in CMPs , 2006, International Journal of Parallel Programming.

[12]  Seong-Won Lee,et al.  Adaptive dynamic thread scheduling for simultaneous multithreaded architectures with a detector thread , 2006, J. Parallel Distributed Comput..

[13]  Robson Ribeiro Linhares,et al.  NOCA ‑ A Notification-Oriented Computer Architecture , 2015, IEEE Latin America Transactions.

[14]  Antonia Zhai,et al.  Triggered instructions: a control paradigm for spatially-programmed architectures , 2013, ISCA.

[15]  Mohamed Abid,et al.  Scalable mpNoC for massively parallel systems - Design and implementation on FPGA , 2010, J. Syst. Archit..

[16]  Percy Nohama,et al.  Notification Oriented Paradigm Applied to Ambient Assisted Living Tool , 2018, IEEE Latin America Transactions.

[17]  Robson Ribeiro Linhares,et al.  Notification-Oriented Paradigm to Implement Digital Hardware , 2017, J. Circuits Syst. Comput..

[18]  장훈,et al.  [서평]「Computer Organization and Design, The Hardware/Software Interface」 , 1997 .

[19]  D. L. Belmonte,et al.  A new Method for Dynamic Balancing of Workload and Scalability in Multicore Systems , 2016, IEEE Latin America Transactions.

[20]  Kunle Olukotun,et al.  The Future of Microprocessors , 2005, ACM Queue.

[21]  Jean Marcelo Simão,et al.  Notification Oriented Paradigm for Distributed Systems , 2018 .

[22]  Theo Ungerer,et al.  Asynchrony in Parallel Computing: From Dataflow to Multithreading , 2001, Scalable Comput. Pract. Exp..

[23]  Keshav Pingali,et al.  I-structures: data structures for parallel computing , 1986, Graph Reduction.

[24]  Juha Plosila,et al.  Mapping multiple applications with unbounded and bounded number of cores on many-core networks-on-chip , 2013, Microprocess. Microsystems.

[25]  Ricardo P. Jasinski,et al.  A new hardware coprocessor for accelerating Notification-Oriented applications , 2012, 2012 International Conference on Field-Programmable Technology.

[26]  Bernd Klauer,et al.  SDAARC: An Extended Cache-Only Memory Architecture , 2002, IEEE Micro.

[27]  Toshitsugu Yuba,et al.  An Architecture Of A Dataflow Single Chip Processor , 1989, The 16th Annual International Symposium on Computer Architecture.

[28]  Jean-Luc Gaudiot,et al.  Importance of Coherence Protocols with Network Applications on Multicore Processors , 2013, IEEE Transactions on Computers.

[29]  Gurindar S. Sohi,et al.  Dataflow execution of sequential imperative programs on multicore architectures , 2011, 2011 44th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[30]  Cesar Augusto Tacla,et al.  Notification Oriented Paradigm (NOP) and Imperative Paradigm: A Comparative Study , 2012 .

[31]  Sally A. McKee,et al.  Reflections on the memory wall , 2004, CF '04.

[32]  Ricardo Bianchini,et al.  Evaluating the Performance of Multithreading and Prefetching in Multiprocessors , 1996, J. Parallel Distributed Comput..

[33]  Jack B. Dennis,et al.  A preliminary architecture for a basic data-flow processor , 1974, ISCA '75.

[34]  G. Brookshier,et al.  Computer science: an overview , 1985 .

[35]  Karthikeyan Sankaralingam,et al.  Efficient execution of memory access phases using dataflow specialization , 2015, 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA).