Research Overview

Today's information society is supported by advanced technologies at various levels of applications, systems, computers, and VLSI. The Dependable Systems Laboratory conducts research on distributed systems, multi-core computers, VLSI, brain computers, etc., for systems that users can use with confidence at all levels. "Dependable" is a user-oriented concept in which the user can trust and use the system with relief.

 In order to realize a dependable system, there are a wide range of issues to be considered from the designer's point of view, such as ensuring that the system works even if there are some failures, dealing with malicious users, avoiding the shipment of defective products through proper inspection, and avoiding system failures due to age-related deterioration. In this laboratory, we work on research and development of various methods that lead to improvement of system dependability.

 Through research, students learn the ability to think logically, design and analysis of algorithms, programming of autonomous mobile robots and VLSI design flow using hardware description languages (VHDL, Verilog) in addition to regular programming such as C and JAVA.

Distributed Algorithms

We study distributed algorithms, which are algorithms for distributed systems. Distributed systems are systems consisting of multiple computational entities (computers and processes) and means of communication among them. In fact, most systems in the world can be considered distributed systems (Figure 1). For example, the Internet, with approximately one billion computers communicating and operating together, can be considered a large-scale distributed system. Also, the Internet of Things (IoT) is a distributed system in which many things work together. Blockchain is also a distributed system in which many computers cooperate to manage transaction records. Other examples of distributed systems include sensor networks, ad hoc networks, ITS (Intelligent Transport Systems), and P2P networks, to name just a few.

Fig. 1: An example of distributed systems

In large-scale distributed systems, it is impossible to manage all processes in the centralized manner. Hence, we have to design distributed algorithms that specify the behavior of each process that operates autonomously. The aim of distributed algorithms is to make multiple processes cooperate efficiently. In our laboratory, we develop efficient distributed algorithms for many types of distributed systems.

However, designing distributed algorithms is challenging. Each process cannot obtain global information of all processes because the distributed system usually contains huge number of processes. Consequently, each process should operate based on only local information such as states of nearby processes. In addition, processing speeds and communication speeds are different for processes, and even worse they may change depnding on load of processes and communication links. This means processes in distributed systems are asynchronous. Therefore, we must develop distributed algorithms that work correctly based on local information for any execution speed of each process and communication link. To propose such algorithms, we usually consider “What approach solves our problem?” and “What situation is the worst for our developed algorithm?”. Although it is difficult to develop an algorithm and prove its correctness, we can get a great sense of achievement when we solve the problem.

Dependability of Integrated Circuit

Integrated circuits are the core devices of various systems. Increasing scale, higher speed, and lower power consumption of integrated circuits due to the miniaturization of transistors supports the progress of today's information society and AI. On the other hand, testing integrated circuits has become a complex and difficult problem, and there are concerns about security issues such as hardware Trojan circuit insertion due to the complexity of the integrated circuit supply chain. Furthermore, as CMOS transistor miniaturization reaches its physical limits, new devices and new architectures are expected, and ensuring their reliability has become an important issue. Our laboratory is working on various issues related to integrated circuit dependability, such as improving the security of integrated circuits by detecting hardware Trojan circuits, designing highly reliable neuromorphic computers, and improving the quality of integrated circuit testing using machine learning.