A Guide to Design MIMO Controllers for Architectures

Adapting hardware components to achieve multiple design objectives is a challenging task because of many reasons. First, there are multiple objectives that could present opposing tradeoffs. These objectives or outputs could be of varying importance – some are more important than others. There are multiple reconfigurable parameters or inputs with different degrees of influence on the objectives, and different overheads of change. All these considerations are further complicated by the many ways in which applications use and respond to hardware changes. Owing to these challenges, there has not been a clear methodology that can help architects to design adaptation controllers for the general case. As a result, most adaptation controllers either use multiple decoupled controllers that ignore interaction across objectives and hardware parameters, or resort to ad hoc solutions based on the specific nature of the adaptation scenario. Obviously, this approach can not be extended to the general case nor there is assurance that the piece-meal controllers work well with each other. Therefore, these controllers that are designed and tuned by focusing on a limited set of scenarios or hardware interactions can often result in major bugs or sub-optimal actions when they encounter a situation different from what they are trained on. An alternative approach is to use control theory that combines the designer intuition with rigorous methodologies to generate reliable and optimal adaptation controllers. Specifically, we need what is called as Multiple Input Multiple Output (MIMO) control. In this method, the designer specifies the information he/she has about the design such as the priorities of the output or the overheads of changing inputs. The underlying algorithms generate a controller that meets multiple objectives by actuating on multiple inputs simultaneously. The interactions between the inputs and outputs are represented in a structured manner and the final controller is able to take better decisions, being aware of all these interactions. Unfortunately, there has not been prior work that interfaces MIMO control theory with computer architecture. In [1], we address this issue by describing MIMO controller design and the architectural insights into this process. This would help the architect to use this powerful tool to create efficient adaptation controllers. The purpose of [1] was to shed light on the MIMO controller design process from the architecture side. It does not describe in detail the specific design methods and analysis one has to perform to design a MIMO controller for architecture. This manual addresses this gap. In this manual, we describe how the methods and analysis from MIMO Control Theory, System Identification and Robust Control Design are applied to design architectural controllers. We focus on a specific type of MIMO controller called the Linear Quadratic Gaussian (LQG) controller for architecture adaptation, similar to [1]. We present the different choices that the designer has in this process and some recommendations based on our experience. We also list the commands from MATLAB and Simulink that we use to design the example MIMO controller in [1]. We hope that by the end of the manual, the reader would be aware of the details of all the steps required to design a MIMO controller for architecture and can successfully design such a controller for the system of his/her choice.

[1]  Lennart Ljung,et al.  System Identification: Theory for the User , 1987 .

[2]  Lennart Ljung,et al.  Model Validation and Model Error Modeling , 1999 .

[3]  Yucai Zhu,et al.  Multivariable System Identification For Process Control , 2001 .

[4]  Margaret Martonosi,et al.  Live, Runtime Phase Monitoring and Prediction on Real Systems with Application to Dynamic Power Management , 2006, 2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06).

[5]  Massoud Pedram,et al.  Stochastic modeling of a thermally-managed multi-core system , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[6]  Sanjay Ranka,et al.  Dynamic cache reconfiguration and partitioning for energy optimization in real-time multi-core systems , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[7]  Alex Simpkins,et al.  System Identification: Theory for the User, 2nd Edition (Ljung, L.; 1999) [On the Shelf] , 2012, IEEE Robotics & Automation Magazine.

[8]  Pradip Bose,et al.  Crank it up or dial it down: Coordinated multiprocessor frequency and folding control , 2013, 2013 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[9]  Amin Ansari,et al.  Using Multiple Input, Multiple Output Formal Control to Maximize Resource Efficiency in Architectures , 2016, 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA).

[10]  Henry Hoffmann,et al.  Maximizing Performance Under a Power Cap: A Comparison of Hardware, Software, and Hybrid Techniques , 2016, ASPLOS.