Exploring Processor and Memory Architectures for Multimedia

Abstract: Popular Abstract in English Consumption of multimedia content is one of the main tasks we perform in our day-to- day lives, such as listening to music on an iPod or watching the news from an online steaming service. As technology has evolved and enabled easier access to different content (basically access anything anywhere), our consumption has grown. In only the last decades we have evolved from being fed with preselected multimedia content, to self-fed consumers, to what can only be described as being constantly connected to a parallel world that feeds its subscribers as much as they feed it. Some questions that directly arise from this include: How has this been technically possible? What are technical consequences of this evolution? What are the technical challenges that lay ahead? If we start breaking down what this involves, we soon see that constant connection results in a need for a device that provides mobility, to stay connected wirelessly, and at same time has performance and durability to handle increased demand of multimedia content. As this is a huge area, we will focus more specific on how multimedia content is handled, with focus on processing and memory for handheld battery powered device. The goal is to be efficient in terms of power as well as performance with as flexible an architecture as is possible. This is a classical computer architecture trade-off problem where the task is to find the right balance between power and flexibility, when taking all the different factors into consideration. Multimedia content can be defined in different ways, such as audio, video, images, animations, graphics and even texts. This also includes the combinations of all above- mentioned content forms. One important aspect when characterizing different multimedia content forms is if they are streaming content or not. In this thesis, we focus on streaming multimedia applications where the major functionality is audio and video. They are often the driving force of any multimedia application. There are many similarities between audio and video in terms of how they run and work. Thus, providing a good and efficient solution is essential for a great end- user experience, such as a rich user interface (UI), crisp video recording and viewing and of course long battery life. There are many challenges for delivering a great end-user experience, as this involves many different sets of optimizations and technology enhancements. Everything from application software optimization to hardware architecture optimizations needs to be taken in to account. The technology enhancements range from getting a faster CPU to getting a better battery that lasts longer on a single charge. When combining it all together, the result is a set of different trade-offs that are often contradictory. In order to get the best end-user experience out of this complex system one needs to take a methodological approach. This is the main contribution of this thesis, where we propose a methodology on how to in an automated way combine a set of different design choices in order to find the best possible solution for a given set of architectures and a given set of multimedia applications. There are many different approaches for finding the best solution, including integer linear programming (ILP), heuristic based genetic algorithms (GA), or constraint programming (CP) which is the approach that we have chosen. In CP the object is to use constraint specific reasoning methods to formalize a problem and to create a model of it. . This is then used as input to a solver that can find one or many solutions (depending on the type of problem) for the specified problem. The problem we are solving here can be broken down to a combinatorial optimizations knapsack problem. The main benefit when using CP compared to other methods is that we can state the problem in a flexible way and obtain the best solution for a specific architecture. Our results show that by using our method we can simplify the design choices of complex multimedia systems and make the right trade-offs early in order to get the best end-user experience.