DIA: A Complexity-Effective Decoding Architecture Abstract-Fast instruction decoding is a true challenge for the design of CISC microprocessors implementing variable-length instructions. A well-known solution to overcome this problem is caching decoded instructions in a hardware buffer. Fetching already decoded instructions avoids the need for decoding them again, improving processor performance. However, introducing such special-purpose storage in the processor design involves an important increase in the fetch architecture complexity. In this paper, we propose a novel decoding architecture that reduces the fetch engine implementation cost. Instead of using a special-purpose hardware buffer, our proposal stores frequently decoded instructions in the memory hierarchy. The address where the decoded instructions are stored is kept in the branch prediction mechanism, enabling it to guide our decoding architecture. This makes it possible for the processor front end to fetch already decoded instructions from the memory instead of the original nondecoded instructions. Our results show that using our decoding architecture, a state-of-the-art superscalar processor achieves competitive performance improvements, while requiring less chip area and energy consumption in the fetch architecture than a hardware code caching mechanism. S EVERAL current microprocessors like the Intel Pentium family [1] implement CISC instruction set architectures. Processing these CISC instructions requires higher design complexity than processing simple fixed-size RISC instructions. A widespread strategy to deal with CISC instructions is to decode them into simple RISC microoperations, which can be efficiently managed and executed by the processor back end. In this context, fast instruction fetch and decoding becomes critical for feeding the processor back end with enough instructions to keep the execution engine busy and thus achieve high performance.. However, it is not easy to design a fast decoding mechanism for CISC microprocessors. CISC instructions can have variable length, and a complex logic is required to decode instructions that can start at any byte address and can be translated into one or several microoperations. The decoding mechanism of the Intel P6 architecture is a clear example [2] . A complex instruction that produces multiple microoperations can only be decoded when it is the first instruction decoded in a cycle. This means that the decoding logic stalls when it finds a complex instruction that is not in the first decoding slot. The decoding process cannot continue until the next cycle, when the complex instruction reaches the first decoding slot after all the preceding instructions have been decoded. On the average, we have found that 18 percent of dynamic instructions are complex instructions in our benchmark programs. Consequently, this decoding strategy seriously limits the decoding speed. In other words, although the fetch architecture of a CISC processor provides high instruction fetch bandwidth, it could be not enough if decoding the fetched instructions becomes a bottleneck.. A well-known mechanism to overcome this problem is the trace cache [3] , [4] , [5] . The trace cache fetch architecture provides high fetch performance by buffering and reusing dynamic instruction traces. These traces are portions of the dynamic program execution that may contain multiple basic blocks, that is, several branches regardless of them being taken or not. Traces are dynamically built after their instructions have been decoded. Thus, the instructions stored in the trace cache are already decoded, which means that there is no need to decode the instructions fetched from it. As a result, the complexity of decoding instructions is removed from the critical path most of the time, since the instructions should only be decoded when there is a trace cache miss. Fig. 1 shows the performance slowdown caused by the P6 decoding strategy in a processor implementing a trace cache fetch architecture similar to the one described in [6] . These performance results, measured in microoperations per cycle, are obtained using the superscalar processor model described in Section 5. Data are provided for 10 programs from the SPECint2000 benchmark suite, compiled using the x86 instruction set architecture, and for two different processor widths. The baseline processor uses an ideal decoding mechanism able to decode as many instructions per cycle as the processor width.. Assuming that the trace cache stores nondecoded instructions, it is clear that the decoding bottleneck becomes a serious performance limiting factor due to the frequent appearance of instructions that should be decoded to multiple microoperations. A 4-instruction-wide processor suffers from an average of 8 percent performance degradation, which ranges from 3 percent in 175.vpr to 25 percent in 176.gcc. This bottleneck becomes more harmful for a wider processor, since it requires more instructions per cycle to keep its execution engine busy. An 8-instruction-wide processor suffers from an average of 17 percent performance degradation, which ranges from 6 percent in 300.twolf to 59 percent in 253.perlbmk.. However, if the trace cache is able to store already decoded instructions, the average performance slowdown is greatly reduced, being below 2 percent for all benchmarks in both processor setups. This means that the trace cache fetch architecture is an effective way for overcoming the instruction decoding bottleneck, but it is achieved at the cost of increasing the complexity of the fetch architecture. The trace cache needs more chip area and suffers from higher temperature and energy consumption than simpler fetch architectures organized around basic blocks. Fetching instruction traces requires not only a special-purpose storage-the trace cache-but also a secondary fetch mechanism for fetching instructions in case of a trace cache miss. This paper proposes an alternative for exploiting the benefits of fetching already decoded instructions, while avoiding the increase in the fetch engine complexity caused by hardware code caching techniques like the trace cache. Our proposal is to store already decoded instructions in a special memory area allocated by the operating system for the program being executed. This memory area, namely, the Decoded Instruction Area (DIA), is managed using the branch prediction architecture. DIA contains blocks of already decoded instructions that correspond to the fetch blocks used as basic prediction units. When a new block of decoded instructions is introduced in DIA, the branch prediction mechanism is informed about the address where the decoded instructions are stored. Thus, when the branch prediction mechanism provides the address of a fetch block containing already decoded instructions, the fetch engine will be able to fetch decoded instructions from DIA instead of the original nondecoded instructions.. The operating system involvement lets our proposal take advantage from the hardware TLB translation and the operating system paging mechanism, just requiring to modify the operating system loader. In this sense, DIA is not like traditional code caching designs implemented in software. The main difference between DIA and other software code caching techniques such as Dynamo [7] and Code Morphing [8] is that the branch predictor is used to guide the mechanism. Consequently, DIA does not require any software overhead, since any code fragments are created beyond the basic prediction units. Moreover, these code fragments do not require to be rewritten in any way because they are naturally linked at runtime by the branch predictor itself.. Our decoding architecture can be implemented in conjunction with any branch prediction architecture. In this paper, we describe how to combine our proposal with the Fetch Target Buffer (FTB) branch prediction architecture [9] , [10] and the stream fetch engine [11] , [12] . Our results show that both the FTB-DIA and the Stream-DIA combinations are able to provide already decoded instructions most of the time, which allows our decoding architecture to achieve an important performance improvement over a processor implementing the P6 decoding strategy.. On the average, an 8-wide processor achieves 14 percent performance improvement when using either FTB-DIA or Stream-DIA. This improvement is comparable to the improvement achieved by a trace cache, but requiring lower implementation cost and complexity. In particular, Stream-DIA proves to be the most complexity-effective alternative. FTB-DIA requires 18 percent more area and 21 percent more energy consumption than Stream-DIA due to its more complex predictor structure, while the trace cache requires 40 percent more area and 36 percent more energy consumption than Stream-DIA due to its need for a secondary fetch engine to build traces. These results make Stream-DIA an excellent choice to balance cost and performance in frontend design for CISC processors with variable-length instructions. The decoding logic is a performance bottleneck not only for x86-based processors but also for other CISC processors and vector processors. This bottleneck will become more severe due to the current technology trend toward deeper pipelines and higher clock frequencies. Hardware code caching architectures like the trace cache [3] , [4] , [5] overcome this problem by storing and fetching already decoded instructions. This approach removes the decoding logic from the critical path, but it is achieved at the cost of increasing the processor front-end complexity.. In this paper, we propose to store the decoded instructions not in a special-purpose hardware buffer but in a fixed-size memory area allocated by the operating system, reducing the front-end design complexity. Our proposal takes advantage of hardware structures already existing in the processor, extending the branch prediction mechanism with the ability to provide the memory address where a decoded version of the predicted instructions is stored. This strategy enables the fetch engine to provide already decoded instructions from the memory hierarchy, overcoming the decoding bottleneck.. In addition, our proposal can be combined with any branch prediction mechanism. We describe how to combine our decoding architecture with the FTB branch prediction architecture [9] , [10] and with the stream fetch engine [11] , [12] . Both combinations provide an average of 14 percent performance improvement in an 8-wide processor, which is comparable to the improvement achieved by using the more complex trace cache, but requiring less chip area and less energy consumption. On the average, our results show that Stream-DIA is the best trade-off between performance and complexity.. Furthermore, this is only a first step in this research line. Although we focus on storing decoded instructions, our proposal enables a plethora of future possibilities. It is possible to apply dynamic optimizations before storing the instructions in the memory, in a similar way as done by rePLay with frames [34] but without needing a specialpurpose frame cache. It is also possible to apply continuous optimization techniques [36] , [37] out of the critical processor path. More elaborate possibilities can be designed, such as rescheduling instructions to increase the available instruction-level parallelism, remapping instructions to improve the performance of the fetch engine, and even translating instructions into a different instruction set architecture.. These alternatives can be implemented using our architecture in isolation or combining it with existing systems like DAISY [30] , Dynamo [7] , and Code Morphing [8] . Our technique can contribute to the design of such systems with a straightforward way of selecting frequently executed instructions and managing control transfers between them. All these possibilities, along with the relatively low implementation cost required, turn our proposal into a worthwhile complexity-effective front end architecture. professor in the Computer Science and Systems Department at ULPGC. His research interests include complexity-effective fetch and decoding architectures, performance evaluation methodologies, and exploiting program semantic information. He has coauthored 25 international publications and is currently supervising two PhD students. He has served in the organization of several international conferences as an external reviewer, submission webmaster, and a member of the program committee. He is a member of the IEEE. Mateo Valero has been a full professor in the Computer Architecture Department, Universitat Politè cnica de Catalunya (UPC), since 1983. Since May 2004, he has been the director of the Barcelona Supercomputing Center (the National Center of Supercomputing in Spain). His research topics are centered in the area of highperformance computer architectures. He has coauthored more than 400 publications. He has served in the organization of more than 200 international conferences. His research has been recognized with several awards, including two National Awards on Informatics and on Engineering, the Rey Jaime I Award in basic research, and the EckertMauchly Award. He received a Favourite Son Award from his hometown, Alfamé n (Zaragoza), which named their public college after him. He is a fellow of the IEEE and the ACM. He is an academic of the Royal Spanish Academy of Engineering, a correspondant academic of the Royal Spanish Academy of Sciences, an academic of the Royal Academy of Science and Arts, and a doctor honoris causa at Chalmers University.. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib. The trace cache fetch architecture is the result of a twodecade evolution. The fill unit [28] is one of the first attempts to dynamically collect already decoded instructions and store them in a special-purpose cache. A lot of research effort has been devoted to enhance the design of this special-purpose storage, leading to strategies like the decoded instruction cache [2] , the microoperation cache [29] , or the trace cache itself [3] , [4] , [5] . Finally, this evolution has made possible an actual physical implementation in the Intel Pentium 4 processor [1] .. The trace cache does not eliminate the complex instruction decoder from the processor design, but it makes it possible to remove instruction decoding from the critical path, also allowing the decoder to be simplified. Our decoding architecture exploits the same idea: Already decoded instructions are fetched from DIA, allowing to bypass the decoder. Although removing the complex decoding logic from the critical path is not a new approach for the design of CISC microprocessors, we propose an innovative and straightforward implementation. The main advantage of our proposal is its simplicity, since it requires minimal hardware/software support. DIA uses hardware mechanisms already existing in current processor designs, not needing complex additional structures. Our proposal just requires adding some fields to the branch prediction tables, as well as to modify the L2 bus arbiter and include the DIA pointer, whose management logic is simple.. In general, DIA requires less hardware implementation cost than the trace cache. DIA does not need a specialpurpose buffer to store the decoded instructions, since they are sequentially stored in the memory. As a consequence, DIA does not need a secondary fetch engine for fetching instructions in case of a miss in the special-purpose cache. This involves reducing the chip area and energy consumption, also avoiding problems with the chip temperature, since the trace cache is a well-known hot spot.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O B I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A study of the role of user-centered design methods in design team projects Article is made available in accordance with the publisher's policy and may be subject to US copyright law. Please refer to the publisher's site for terms of use.The MIT Faculty has made this article openly available. Please share how this access benefits you. Your story matters. User-centered approaches to design can guide teams toward an understanding of users and aid teams in better posing design problems. This paper investigates the role of user-centered design approaches in design process and outcome within the context of design team projects. The value of interaction with users is examined at several stages throughout the design process. The influence of user-centered design on the performance of design teams is also explored. Results suggest that the quantity of interactions with users and time spent interacting with users alone is not linked with better design outcome, but that iterative evaluation of concepts by users may be of particular value to design prototypes. Suggestions are made based on the reflections from the authors after conducting this study. A well-conceived problem is thought to be one key to the effective development of a successful design concept. When a problem is poorly conceived, efforts to execute and deploy the project may be in vain. Buxton (2007) calls this distinction "getting the right design" versus "getting the design right." For many years, user-centered design has been recognized as an approach that focuses on the needs of end users to guide the design of products, services, and systems (Gould & Lewis, 1985; Norman & Draper, 1986; Griffin & Hauser, 1993) . Designers may think of user-centered design as a strategy primarily for creating design requirements. In reality, designers should consider both the problem definition and solution generation simultaneously as they work on a design problem (Cross, 2007) . The motivation of the teaching methodology in this research is to encourage designers to formulate a more nuanced view of users to ensure that design problems are posed appropriately so that real design needs may be addressed. This view of users focuses on deeply understanding those for whom products are being designed by exploring the underlying motivations of a user, rather than merely "the process of writing the requirements document" (Young, 2008a (Young, , 2008b . For situations where new design opportunities are sought, this approach may help in uncovering new, latent problems.. User-centered design may also offer benefits for overall design team effectiveness. Researchers who study team effectiveness posit that a clear understanding of a team's goals is critical for effective team performance (Katzenbach & Smith, 1993) . By establishing a shared set of team goals, teams "develop direction, momentum, and commitment." Hey et al. (2008) , describes the different paths that design teams can take in developing a shared frame with users. The process of better defining problems and requirements may lead to more thoughtful, shared team goals. In this way, user-centered design approaches may help teams formulate these requirements and goals, thereby helping them perform more effectively.. User-centered design has been incorporated in many university design curricula in product, software, and user interaction design. The focus tends to be on teaching specific usercentered techniques and strategies so that they may be applied to design experiences both in and out of the classroom. The studies conducted in this paper take this approach further by carefully evaluating student use of these techniques to formulate a better understanding of their design process. However, little assessment of user-centered design methods used in design projects exists. This paper examines the role of a usercentered design approach in both design process and outcome in a semester-long, graduate-level course on product design and development, and considers the following questions:. proach to measuring user-centered design is through the quantity of interactions between designer and user. These interactions may take various forms, such as surveys, interviews, or observations. It is hypothesized that teams interact more frequently with the user may increase the likelihood that they understand their needs and therefore have a better chance at creating a good product. 2. Is there a link between the quantity and nature of interactions with users and team effectiveness? It is hypothesized that teams who spend more time with users have a more complete understanding of the problem given to them. Teams with a better sense of their requirements may work more effectively together. 3. What is the nature of the relationship between team effectiveness and design outcome? In general, team effectiveness is not necessarily linked to stronger performance outcomes (Katzenbach & Smith, 1993; Hackman, 1998) . However, specific aspects of team effectiveness might play a role in how well a product is assessed by reviewers in the end.. The terms "designer" and "engineer" can have multiple meanings, some of which overlap. For clarity, throughout this paper, the students in the course will also be referred to as designers even though their backgrounds are diverse. 1. Is there a link between the quantity and nature of interactions with users and reviewer ratings? Results of this study show that more interaction with users does not correlate with better outcome. Sheer quantity of interaction may not be as important as one might think, although quality of interaction might be more important. Findings also suggest that later stage interaction with users may be critical, in particular, getting feedback on specific concepts from the same user(s) over a period of time. By getting feedback from the same users as a design evolves, designers can form a richer understanding of users' needs and validate design directions. In effect, the process can become more of a codesign process in which the user is a more active participant. 2. Is there a link between the quantity and nature of interactions with users and team effectiveness? Interaction with users is linked to flexibility in decision making and commitment to the team only in the middle stages of design. This may be due to the anxiety of selecting a concept and renewed team commitment that occurs after a selection has been made. In this context, user feedback becomes a strategy for validating team decision making. 3. What is the nature of the relationship between team effectiveness and reviewer ratings? Findings suggest that aspects of team effectiveness are linked to the implementation of a concept. This may be because of the way the building of prototypes forces the integration of components and, by extension, the team members who construct those components. The study undertaken in this research was based on a product design and development class of 72 midcareer professionals as part of their graduate program in Systems Design and Management at MIT. Eighteen teams of three to five students each had one semester to identify an unmet, compelling need and develop a demonstrable prototype of a novel product that addressed this need. Teams were given a budget of $800 to spend on materials and manufacturing. Students had backgrounds in engineering and science and had worked in industry for several years in areas such as defense contracting, military, and software. Figure 1 shows the average time students spent in industry, time since last degree, and years of experience in particular aspects of the product development process.. Milestones, or "stages," were set throughout the 3-month semester to simulate deadlines in the real world:. 1. Determine potential market/user groups. 2. Select a market/user group. 3. Assess customer and user needs. 4. Propose three concept ideas. 5. Select a concept. 6. Implement the concept and present a business plan.. Lectures covered pertinent information on the product development process, and in particular, instructed students on the basics of user-focused methods described in Table 1 . Examples of projects included a reusable container for transporting specialty beverages and tools for improving the home woodworking experience. Several teams have continued to seek patents and further commercial development of their projects beyond the course.. Data from surveys on user interactions, team effectiveness, and reviewer rankings were collected through a combination of forms and surveys administered to the teams and reviewers. The data are described in the following sections. The relationships between data sets were assessed using Spearman correlation for nonparametric populations, because most data were non-Gaussian. These were deemed statistically significant at p , 0.05.

O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Functional statistical techniques applied to vine leaf water content determination A statistical analysis of functional data, obtained as reflectance values measured using a hyperspectral sensor, was used to determine water content in vine leaves. Our study was conducted using a sample of 80 vine leaves whose water content was determined by calculating the weight difference between leaves before and after drying in an oven. Two regression models, one linear and the other non-linear, were evaluated and compared: functional linear regression and regression with functional radial basis functions. Compared to traditional methods based on calculating indices that only consider reflectance values in specific wavelengths, the functional approach enables a specific bandwidth or the entire electromagnetic spectrum recorded by the sensor to be taken into account; in other words, the functional approach enables the spectral signature of the leaves to be used. The optimal parameters for each model were determined using a crossvalidation procedure and the validity of the approach was tested on a test set drawn from the initial sample. The results obtained demonstrate that water content can be predicted for vine leaves on the basis of their spectral signature, allowing for a certain margin of error. This error was smaller for the non-linear model compared to the linear model. For a vine to produce grapes that, in turn, result in a good quality wine, the level of humidity in the leaves needs to be controlled [1] . The most reliable and accurate way to determine humidity is by taking the leaves to a laboratory and calculating weight differences between wet and dry leaves. This method is time consuming, however, and also subject to measurement and sampling errors, especially when data are extrapolated to the whole vine or vineyard. Leaf water content is related to the amount of solar energy reflected by the leaf in specific electromagnetic spectral bands. Consequently, an alternative way of determining humidity -much faster although not as precise as the laboratory method -is to use the spectral signature of the leaves to associate solar energy with water content. Reflectance, especially in the NIR and MIR wavelengths [2] [3] [4] , depends on the amount of water stored in leaf cells. For wavelengths sensitive to water absorption (760, 970, 1450, 1940 and 2950 nm), leaf reflectance decreases as water content increases [3, [5] [6] [7] . Recent years have witnessed the development of hyperspectral sensors that are capable of recording reflectance values for very narrow electromagnetic spectral bands. Using such reflectance data, some authors have attempted to measure leaf water content and also other parameters such as water stress and chlorophyll content. Their analyses are generally limited, however, to the construction of indices as algebraic expressions of reflectance values for specific wavelengths [8] [9] [10] . In other words, the analyses fail to use all the information contained in the spectral curve.. In hyperspectral remote sensing, measurements of spectral reflectance are often best thought of as functions. Reflectance is a function of wavelengths and is referred to as the spectral signature. Functional data analysis is therefore a suitable approach to analysing this data [11, 12] . Furthermore, considering data in terms of curves means that we can take into account not only reflectance values but also other important parameters, such as function derivatives [13] .. In this article we evaluate the application of two functional data analysis techniques to the estimation of vine leaf water content, namely functional linear regression [11] and the non-linear functional radial basis functions [14] .. Some of the application fields of the functional data analysis include environmental research [15, 16] , medical research [17, 18] , sensors [19] and industrial methods [20, 21] .. The input was data referring to the energy reflected by the leaves in the region of the electromagnetic spectrum located between 700 and 1300 nm, which is the wavelength interval used by other authors for similar problems. An analysis of variance (ANOVA) study of the sample data confirmed this as the optimal region for study.. The remainder of this article is structured as follows: Section 2 provides a basic description of the techniques used; Section 3 describes the results obtained from the application of the techniques to differently sized test samples and discusses the advantages and limitations of each approach. Finally we draw on the findings to provide some conclusions. Our research examined the feasibility of using functional regression analysis applied to reflectance data captured by a hyperspectral sensor to estimate vine leaf water content per surface unit. The practical interest of our study is that measuring leaf reflectance is faster than measuring water content by analysing weight differences. In addition, the fact that leaves do not have to be collected for analysis in a laboratory means that sampling can be more extensive.. The functional focus of the problem means that -unlike other approaches based on the calculation of indices for specific wavelength values -the entire wavelength spectrum within a given range can be taken into account. Our method enables full advantage to be taken of the capacity of hyperspectral sensors to capture data for bandwidths so narrow that spectral signatures can be represented as curves rather than as vectors of reflectance values.. Our analysis was performed for the central wavelength interval of 700 to 1300 nm -the same interval used by other authors for similar problems. This choice was further reinforced by the fact that an ANOVA study determined this wavelength interval to be the interval to which the data were best adapted.. Of the two models studied, the non-linear model based on functional radial basis functions produces considerably better results than the functional linear regression model. This outcome might indicate the existence of a complex dependency relationship between reflectance and vine leaf water content per surface unit. It might also explain the poor results obtained by some methods based on indices.. The results obtained also indicate that the non-linear model is less influenced by the sample size. Future research will be based on analysing larger data samples and including new functional techniques, such as functional regression models with penalties.

O O O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A functional correspondence between monadic evaluators and abstract machines for languages with computational effects Abstract. We extend our correspondence between evaluators and abstract machines from the pure setting of the λ-calculus to the impure setting of the computational λ-calculus. We show how to derive new abstract machines from monadic evaluators for the computational λ-calculus. Starting from (1) a generic evaluator parameterized by a monad and (2) a monad specifying a computational effect, we inline the components of the monad in the generic evaluator to obtain an evaluator written in a style that is specific to this computational effect. We then derive the corresponding abstract machine by closure-converting, CPS-transforming, and defunctionalizing this specific evaluator. We illustrate the construction with the identity monad, obtaining yet again the CEK machine, and with a lifted state monad, obtaining a variant of the CEK machine with error and state.In addition, we characterize the tail-recursive stack inspection presented by Clements and Felleisen at ESOP 2003 as a lifted state monad. This enables us to combine the stackinspection monad with other monads and to construct abstract machines for languages with properly tail-recursive stack inspection and other computational effects. The construction scales to other monads-including one more properly dedicated to stack inspection than the lifted state monad-and other monadic evaluators. Diehl, Hartel, and Sestoft's overview of abstract machines for programming-language implementation [14] concluded on the need to develop a theory of abstract machines. In previous work [2, 9] , we have attempted to contribute to this theory by identifying a correspondence between interpreters (i.e., evaluation functions in the sense of denotational semantics) and abstract machines (i.e., transition functions in the sense of operational semantics). The correspondence builds on the observation that defunctionalized continuation-passing evaluators are abstract machines. It is therefore constructive: to obtain an abstract machine, we start from a compositional evaluator and. We have verified that the correspondence holds for call-by-need evaluators and lazy abstract machines [4] , logic programming [6] , imperative programming, and object-oriented programming, including Featherweight Java and a subset of Smalltalk. We have also constructed generalizations of Krivine's machine and of the CEK machine by starting from normalization functions [1] . The correctness of the abstract machines (resp. of the evaluators) is a corollary of the correctness of the evaluators (resp. of the abstract machines) and of the correctness of the transformations.. In this article, we take a next step by applying the methodology to evaluators and abstract machines for languages with computational effects [5, 27, 33] . We consider a generic evaluator parameterized by a monad (Sections 2 and 3). We then consider two monads: the identity monad (Section 4) and a lifted state monad (Section 5). We inline the components of these monads in the generic evaluator, obtaining two specific evaluators. We then construct the corresponding abstract machines by closure-converting, CPS-transforming, and defunctionalizing these specific evaluators.. We next turn to the security technique of 'stack inspection' [19] . Clements and Felleisen recently debunked the myth that stack inspection is incompatible with proper tail recursion [7] . To this end, they presented an abstract machine implementing stack inspection in a properly tail-recursive way. We characterize Clements and Felleisen's stack inspection as a lifted state monad (Section 6). We then present a monad that accounts for stack inspection more precisely than the lifted state monad, we review related work, and we conclude.. In a preliminary version of this article [3] , we also considered a state monad, an exception monad, and the two possible monads obtained by combining these two monads. We mechanically constructed the corresponding abstract machines. We have extended our correspondence between evaluators and abstract machines from the pure setting of the λ-calculus to the impure setting of the computational λ-calculus. Throughout, we have advocated that a viable alternative to designing abstract machines for languages with computational effects and then proving their correctness is to start from a monadic evaluator and a computational monad and to derive the corresponding abstract machine. We have illustrated this alternative with standard monads as well as with new monads. The identity monad leads us to the classical CEK machine. The lifted state monad leads us to a variant of the CEK machine with error and state. We have also characterized Clements and Felleisen's properly tail-recursive stack inspection as a lifted state monad which enables us to combine it with other monads and construct new abstract machines with properly tail-recursive stack inspection and other computational effects.. The contributions of this article are therefore as follows:. -a systematic construction of abstract machines for languages with computational effects from a monadic evaluator and a computational monad; -concrete examples of the construction for the identity monad and a lifted state monad; -a characterization of Clements and Felleisen's properly tail-recursive stack inspection as a lifted state monad and a reconstruction of the CM machine; and -a dedicated monad for properly tail-recursive stack inspection and the construction of a corresponding abstract machine.. Constructing abstract machines for languages with effects is known to be a challenge, one that is handled on a case-by-case basis. Our correspondence between evaluators and abstract machines provides a methodology to construct abstract machines for languages with effects. In addition, our characterization of stack inspection as a monad makes it possible to combine stack inspection with computational effects at a monadic level. We are therefore in position to construct, e.g., a variant of Krivine's machine with stack inspection as well as variants of the Categorical Abstract Machine and of the SECD machine with arbitrary computational effects expressed as monads. Stack inspection is used as a fine-grained access control mechanism for Java [21] . It allows code with different levels of trust to safely interact in the same execution environment. Before access to a restricted resource is allowed, the entire call stack is inspected to test that the required permissions are available. Wallach, Appel, and Felten present a semantics for stack inspection based on a belief logic [34] . Their semantics is not tied to inspecting stack frames, and it is thus compatible with tail-call optimization. Their implementation, called security-passing style, allows them to implement stack inspection for Java without changing the JVM. Instead, they perform a global byte-code rewriting before loading. Fournet and Gordon develop a formal semantics and an equational theory for a λ-calculus model of stack inspection [19] . They use this equational theory to formally investigate how stack inspection affects known program transformations such as inlining and tail-call optimization. Clements and Felleisen present a properly tail-call optimized semantics for stack inspection based on Fournet and Gordon's semantics [7] . This tail-call optimized semantics is given in the form of a CESK machine, which was the starting point for our work.. Since Moggi's breakthrough [27] , monads have been widely used to parameterize functional programs with effects [5, 33] . We are not aware, though, of the use of monads in connection with abstract machines for computational effects.. For several decades abstract machines have been an active area of research, ranging from Landin's classical SECD machine [24] to the modern JVM [25] . As observed by Diehl, Hartel, and Sestoft [14] , research on abstract machines has chiefly focused on developing new machines and proving them correct. The thrust of our work is to explore a correspondence between interpreters and abstract machines [2, 4, 6, 9] that takes its roots in Reynolds seminal work on definitional interpreters [30] .. The present work is a next step of our study of this correspondence. Essentially the same correspondence has been put to use by Graunke, Findler, Krishnamurthi, and Felleisen to transform functional programs into abstract machines for programming the web [22] . The only difference is that Graunke, Findler, Krishnamurthi, and Felleisen use lambda-lifting instead of closure conversion. They do not need closure conversion because they do not consider evaluators for higher-order programming languages, and we do not need lambda-lifting because our evaluators are already lambda-lifted [13, 23] .

O O O O O O O B I O O O O B O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B O O O B I O O O O O B I O O O B O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O B I O O O B I I O O O O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B O O O B I O O O B I O O O B O O O O O O O O O O O O O B I O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I O O O B O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O B O O O O O B I O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B O O B B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O B O O O B I O O B O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B O B I O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O


Dynamic perception-production oscillation model in human-machine communication The goal of the present article is to introduce a new concept of a perception-production timing model in human-machine communication. The model implements a low-level cognitive timing and coordination mechanism. The basic element of the model is a dynamic oscillator capable of tracking reoccurring events in time. The organization of the oscillators in a network is being referred to as the Dynamic PerceptionProduction Oscillation Model (DPPOM). The DPPOM is largely based on findings in psychological and phonetic experiments on timing in speech perception and production. It consists of two sub-systems, a perception sub-system and a production sub-system. The perception sub-system accounts for information clustering in an input sequence of events. The production sub-system accounts for speech production rhythmically entrained to the input sequence. We propose a system architecture integrating both sub-systems, providing a flexible mechanism for perception-production timing in dialogues. The model's functionality was evaluated in two experiments. Modern real-time dialogue systems, such as embodied conversational agents (e.g Max [2] ), have to deal with timing Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ICMI'11, November 14-18, 2011, Alicante, Spain. Copyright 2011 ACM 978-1-4503-0641-6/11/11 ...$10.00. and coordination issues. Some of them need only to time turn-taking. Some of them also integrate gestures which have to be timed with their own speech. One way is to explicitly specify the synchronization points of speech and gestures (e.g. [2] ). Difficulties arise when the demand is to create a system which is capable of natural real-time conversation and behavior. Such a system should integrate all possible aspects of timing in dialogues, as the gestures accompanying speech (or vice-versa), but also the adequate and coordinated interaction of the conversational agent with the human speaker. This interaction could be expressed in terms of turn-taking and back channels. Wilson & Wilson [6] proposed an oscillator model for timing phenomena in conversations and showed how their oscillator model can explain various phenomena in speech and dialogues, such as syllable timing and turn-taking.. Turn-taking has also been discussed by Bonaiuto and Thóris-son [1] . They implemented a hybrid model composed of the Ymir Turn-Taking Model (YTTM) and the Augmented Competitive Queuing (ACQ). Using it, they implemented a conversation between two agents. For their experiments they used a restricted set of only few possible non-verbal and speaking actions. However, real natural-language conversation is much more complex. Turn-taking signals have to be filtered from a set of complex acoustic cues and gestures. Another inflexible aspect in their model is that it only achieves successful turn-taking after a training session. In addition, trained neural networks might not be flexible enough to adapt to the high variance of timing in naturalspeech conversations. In the present study we introduced a new model for coordination of motor tasks as a response to rhythmic input (DPPOM). We introduced two sub-systems of the model, the perceptual and the production sub-systems. We evaluated the perceptual sub-system on a rap input. In this evaluation we introduced a simple use of input amplitude. We used it to entrain the oscillators only when an activation threshold was reached. Afterwards we used a complete DPPOM system in order to coordinate gestural response to the rap input in the conversational agent Max. The results showed realistic timed reactions to the rap input.. We also have revealed important lines of future investigation. First, it is important to study a flexible integration of amplitude in the entrainment and maybe in the activation of the oscillators. The amplitude provides an important source of information about the form of the events received. Especially the phonetic source information has to be investigated in order to identify the most effective clues for important events in the input speech. Second, it is important to investigate the relationships between the perceptual and the production layers. It is also important to study the interaction between the global cycle coordination and the coordination of the individual movements in the motor planning. Machine learning techniques could be used to combine both lines of investigation using statistical training approaches. The system was able to create adequate rhythmic response in order to produce feedback signals at special events in a rap input sequence. The head oscillator showed better accuracy than the arm oscillator. However, the actual arm movement takes longer time. So we can define a temporal tolerance range to control the actual movements. So we can adapt movement periods (= the time in which a movement has to be completed), accelerating or decelerating the movement speed, in order to compensate temporal deviations. The information of deviation can be encoded in the activation level. The lower four lines show the RMSE and RMSD (Root Mean Standard Deviation) values for the intrinsic period development for the sequence of original pulses and the system answer, respectively. We see that the head oscillator was able to reproduce the mean period and also the period variance of the input sequence. The arm oscillator reproduced well the mean period, but failed in the variance. Thus the arm oscillator averaged the input.

O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O B O B O O O O O O B O O O B O O B O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Measuring gene similarity by means of the classification distance Abstract Microarray technology provides a simple way for collecting huge amounts of data on the expression level of thousands of genes. Detecting similarities among genes is a fundamental task, both to discover previously unknown gene functions and to focus the analysis on a limited set of genes rather than on thousands of genes. Similarity between genes is usually evaluated by analyzing their expression values. However, when additional information is available (e.g., clinical information), it may be beneficial to exploit it. In this paper, we present a new similarity measure for genes, based on their classification power, i.e., on their capability to separate samples belonging to different classes. Our method exploits a new gene representation that measures the classification power of each gene and defines the classification distance as the distance between gene classification powers. The classification distance measure has been integrated in a hierarchical clustering algorithm, but it may be adopted also by other clustering algorithms. The result of experiments runs on different microarray datasets supports the intuition of the proposed approach. In this paper, we propose a new similarity measure between genes, the classification distance, that exploits additional information which may be available on microarray data (e.g., tumor or patient classification). The discrimination ability of each gene is represented by means of a gene mask, which describes the gene classification power, i.e., its capability to correctly classify samples. The classification distance measures gene similarity by analyzing their masks, i.e., their capability of correctly classifying the same samples. The classification distance measure can be integrated in different clustering approaches. We have integrated it into a hierarchical clustering algorithm, by introducing the notion of cluster mask as representative of a cluster and defining as inter-cluster distance the distance between cluster masks. We validated our method on both binary and multiclass microarray datasets. The experimental results show the ability of the classification distance to group genes with similar classification power and similar biological meaning in the tumor context.. Currently, we are considering to integrate our distance metric in a (supervised) feature selection algorithm. By clustering genes that correctly classify the same samples and then selecting a single gene from each cluster, redundant genes are disregarded and both model coverage and classification accuracy may be improved.. We believe that the classification distance measure may be applied also in other application domains with the same characteristics (e.g., user profiling, hotel ranking, etc.), to improve the clustering results by exploiting additional information available on the data being clustered.. Giulia Bruno received the Master degree in computer engineering and the Ph.D. degree from Politecnico di Torino, Italy. She is a postdoctoral researcher at the Database and Data Mining group of Politecnico di Torino since March 2009. She is currently working in the field of data mining and bioinformatics. Her activity is focused on anomaly detection in temporal and biological databases and on microarray data analysis to select genes relevant for tumor classification. She is also investigating data mining techniques for clinical analysis, particularly the classification of physiological signals to detect unsafe events in patients' monitoring and the extraction of medical pathways from electronic patients' records.. Alessandro Fiori received the Master degree in computer engineering and the European Ph.D. degree from Politecnico di Torino, Italy. He is a postdoctoral researcher at the Database and Data Mining group of Politecnico di Torino since January 2010. His research interests are in the field of data mining, in particular bioinformatics and text mining. His activity is focused on the analysis of microarray gene expression data and on the summarization of scientific documents to extract correlated information. His research activities are also devoted to social network analysis, particularly the extraction of hidden information in the user-generated content.

O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Development of a parallel optimization method based on genetic simulated annealing algorithm Abstract. This paper presents a parallel genetic simulated annealing (PGSA) algorithm that has been developed and applied to optimize continuous problems. In PGSA, the entire population is divided into subpopulations, and in each subpopulation the algorithm uses the local search ability of simulated annealing after crossover and mutation. The best individuals of each subpopulation are migrated to neighboring ones after certain number of epochs. An implementation of the algorithm is discussed and the performance evaluation is made against a standard set of test functions. PGSA shows some remarkable improvement in comparison with the conventional simulated annealing, parallel genetic algorithm. Genetic algorithm (GA) was developed by Holland [1] and is an adaptive global search method that mimics the metaphor of natural biological evolution. GA operates on a population of potential solutions by applying the principle of survival of the fittest to aim for approximations towards an optimal solution. Owing to their ability to achieve the global or near global optimal, this algorithm has been applied to a large number of combinatorial optimization problems.. The successful application of GA depends on the population size or the diversity of individual solutions in the search space. If GA cannot hold its diversity well before the global optimum solution is reached, it may be difficult for GA to find it, and sometimes it even results in the premature convergence to the local optimum solution. Although maintaining diversity is the predominant concern of GA, it also reduces its performance. Many researchers tried to find a trade-off between the diversity and performance (exploration and exploitation) of GA.. An alternative approach is to combine GA with other optimization techniques, such as simulated annealing (SA). SA is a general-purpose stochastic optimization method that has proven to be quite effective in finding the global optima for many different NP-hard combinatorial problems. In this paper, a new hybrid of GA and SA, referred to as genetic simulated annealing (GSA) is developed to avoid the premature convergence of GA by exploiting the local selection strategy of SA. Then, GSA is parallelized to improve its computation performance further. The principal purpose of this paper is to demonstrate parallel GSA is a powerful optimization strategy that overcomes the inherent weaknesses of conventional GA and SA. In this paper, a new GA and SA hybrid (GSA) is firstly presented, which inherits the strengths of GA and SA and overcomes their weaknesses. Then PGSA is described by implementing parallelized GSA. A set of standard test functions is attempted using this algorithm. The numerical results show that PGSA has faster convergence to global optimum solution than PGA and SA, so PGSA is superior to the conventional PGA and SA. In PGSA, the local selection of SA is involved after crossover and mutation in each subpopulation, which can ensure that each subpopulation maintains greater diversity at the initial stage and good candidates still exist in the next generation at the later stage. Therefore by maintaining more diverse subpopulations at the initial stage, the PGSA mitigates the premature convergence of the standard GA.. On the other hand, at the later stage, more and more good candidates exist in the next generation; it can narrow the search space so that the fast convergence can be achieved. Functions F1~F5 are easy to be solved by PGSA. For the more complex functions F6~F8, Griewank's function F8 is one of the most difficult test functions. The number of function evaluation and the final optimal values are given in Table 3 . In all runs, less numbers of function evaluation are needed for PGSA to find the global minimum than that for PGA, and the computation time is also less with PGSA than that using PGA for all cases. In addition, the global minimum has been found to be accurate to at least four digits of accuracy in this study, whereas the global minimum in [15] only has been found to be accurate to at least three digits of accuracy. Therefore PGSA is found to obtain much better solutions with a higher convergence speed than PGA. The fast convergence of PGSA is due to the local selection decisions of SA after crossover and mutation, which can ensure that at the initial stage the subpopulations have great diversity and good candidates still exist in the next generation at the later stage. Thus PGSA can find the global optimum solution with less time.. Corana, Martini and Ridella [16] used the SA for the Rosenbrock functions F9 and F10 in two and four dimensions respectively. F9 and F10 were also tried in this paper using PGSA. The number of function evaluation is given in Table 4 . In comparison with the calculation results of SA by Corana et al. [16] , the number of function evaluation decreases remarkably using PGSA. The functions F6 and F7 of higher dimensions were also tried. Mühlenbein [15] found the global minimum of F6 of dimension 400 and F7 of dimension 150 on a 64 processor computer using PGA. For comparison in this paper, F6 and F7 with the same higher dimension have also been solved using PGSA. And F6 of dimension 500 and F7 of dimension 200 have not been dealt with by Mühlenbein [15] . The testing parameters are listed in Table 5 , and the results are shown in Table 6 . In all runs the global minimum has been found to at least four digits of accuracy.. From Table 6 , it can be seen that it needs less numbers of function evaluation to reach the global minimum for PGSA than that for PGA. In addition, PGSA can still find the global minimum even with increasing complexity in problem dimension. It also means that PGSA has faster convergence than PGA.

O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Complexity Analysis of Pipeline Mapping Problems in Distributed Heterogeneous Networks Largescale scientific applications require using various system resources to execute complex computing pipelines in distributed networks to support collaborative research. System resources are typically shared in the Internet or over dedicated connections based on their location, availability, capability, and capacity. Optimizing the network performance of computing pipelines in such distributed environments is critical to the success of these applications.We consider two types of largescale distributed applications:(i) interactive applications where a single dataset is sequentially processed along a pipeline; and (ii) streaming applications where a series of datasets continuously flow through a pipeline.The computing pipelines of these applications consist of a number of modules executed in a linear order in network environments with heterogeneous resources under different constraints. Our goal is to find an efficient mapping scheme that allocates the modules of a pipeline to network nodes for minimum endtoend delay or maximum frame rate.We formulate the pipeline mappings in distributed environments as optimization problems and categorize them into six classes with different optimization goals and mapping constraints:

O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Evaluating

a

tool

for

improving

accessibility

to

charts

and

graphs

We

discuss

factors

in

the

design

and

evaluation

of

natural

language-driven

assistive

technologies

that

generate

descriptions

of,

and

allow

interaction

with,

graphical

representations

of

numerical

data.

In

particular,

we

provide

data

in

favor

of

screen-reading

technologies

as

a

usable,

useful,

and

cost-effective

means

of

interacting

with

graphs.

The

data

also

show

that

by

carrying

out

evaluation

of

Assistive

Technologies

on

populations

other

than

the

target

communities,

certain

subtleties

of

navigation

and

interaction

may

be

lost

or

distorted.

Categories

and

Subject

DescriptorsGeneral

TermsHuman

FactorsAccessibility

(blind

and

visually-impaired),

natural

language

generation

and

interaction,

statistical

graphs

and

diagramsCharts

and

graphs

(line

graphs,

bar

charts,

stacked-bar

charts

or

any

of

their

combinations)

are

an

extremely

common

means

of

representing

numerical

data

for

exploration

and

mass-consumption.

Although

the

number

of

published

graphs

is

impossible

to

estimate,

for

just

one

publication

("The

Daily"

Statistics

Canada,

for

example,

publishes

on

average

two

graphs

a

day

on

a

wide

variatey

of

topics

(employment,

GDP,

etc.).

This

means

about

graphs

a

Permission

to

make

digital

or

hard

copies

of

all

or

part

of

this

work

for

personal

or

classroom

use

is

granted

without

fee

provided

that

copies

are

not

made

or

distributed

for

profit

or

commercial

advantage

and

that

copies

bear

this

notice

and

the

full

citation

on

the

first

page.

To

copy

otherwise,

to

republish,

to

post

on

servers

or

to

redistribute

to

lists,

requires

prior

specific

permission

and/or

a

fee.

This

is

for

just

one

of

the

tens

of

publications

of

this

agency.

This

figure

is

simply

to

put

into

perspective

the

staggering

number

of

published

graphs

if

we

aggregate

those

appearing

in

newspapers,

business

reports,

and

science

textbooks.This

stands

in

stark

contrast

with

the

fact

that

a

majority

of

the

almost

reported

legally-blind

people

living

in

Canada

in

in

the

US

do

not

yet

have

cost-effective,

straightforward

access

to

visually-encoded

information.

This

means

that

the

blind

community

is

effectively

excluded

from

a

vast

repository

of

useful

information,

and

from

jobs,

and

that

their

chances

at

any

area

of

education

that

deals

with

quantitative

data

is

seriously

restricted.Fortunately,

excellent

research

into

non-visual

interfaces

to

graphs

and

charts

has

been

carried

out

in

the

past

decade

to

help

alleviate

this

problem.

These

non-visual

interfaces

to

graphs

generally

fall

into

four

loosely

defined

categories:

sonification

haptic

interfaces

hybrid

systems

and

NL

interfaces

which

use

sound

(linguistic

and

non-linguistic),

touch

or

both

together

to

communicate

graphical

information

to

the

user.However,

evaluation

of

these

technologies

has

been

relatively

scarce,

but

this

is

particularly

noticeable

in

the

NL

group:

Are

NL

interfaces

to

graphs

useful

and

usable

for

the

target

community?

This

paper

reports

on

a

carefully

designed

user-based

evaluation

of

iGraph-Lite,

a

novel

Assistive

Technology

(AT)

which

has

been

designed

to

help

blind

and

visually-impaired

individuals

interact

with

graphical

representations

of

statistical

data

using

natural

language

through

key

commands

and

a

Text-To-Speech

(TTS)

engine.

The

purpose

of

this

evaluation

is

three-fold.

First,

we

aim

to

determine

whether

the

information

in

line

graphs

is

accessible

to

blind

and

visually-impaired

individuals

through

the

iGraph-Lite

system,

and,

generalizing,

through

language

and

screen-reading

technology.

Second,

we

aim

to

identify

which

parameters

within

the

system

might

aid

or

hinder

interaction

with

graphs

and

to

offer

insight

into

the

navigational

strategies

used

by

blind

people

during

(line)

graph

comprehension.

Finally,

we

believe

that

when

conducting

a

study

in

which

participants

evaluate

novel

NL

ATs,

it

is

important

that

the

participants

are

members

of

the

community

for

whom

the

system

is

designed.

Although

researchers

have

used

seemingly

equivalent

participants

such

as

blindfolded

sighted

people

to

sit

in

as

legally

blind

participants,

it

may

be

the

case

that

there

are

some

subtleties

that

are

Participants..

Ten

legally

blind

congenital,

non-congenital)

and

ten

sighted

people

matched

to

the

extent

possible

in

terms

of

age,

gender,

educational

background

and

utilization

of

graphs

in

their

daily

life,

were

recruited

from

existing

contacts

and

through

Carleton

University's

Paul

Menton

Centre

for

students

with

special

needs.

They

were

tested

in

the

Carleton

University

Human

Oriented

Technology

Lab

(HOTLab),

or

in

a

quiet

place

convenient

to

the

participant,

in

individual

sessions

lasting

approximately

one

hour.

Participants

were

offered

for

their

participation.

Throughout

the

experiment,

key

presses

were

automatically

timestamped

via

iGraph-Lite's

key

logging

component

on

the

experimenter's

computer.

Response

time

was

calculated

as

the

time

difference

between

the

start

of

a

question

and

end

of

the

answer

to

it.

The

number

of

commands

used

was

analyzed

from

the

key

logging

component,

and

performance

was

assessed

by

the

number

of

correct

answers

to

the

experimental

questions.

The

number

of

commands

used

to

answer

each

question

was

also

calculated..

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A Systematic Review of Software Development Cost Estimation Studies Abstract-This paper aims to provide a basis for the improvement of software estimation research through a systematic review of previous work. The review identifies 304 software cost estimation papers in 76 journals and classifies the papers according to research topic, estimation approach, research approach, study context and data set. A Web-based library of these cost estimation papers is provided to ease the identification of relevant estimation research results. The review results combined with other knowledge provide support for recommendations for future software cost estimation research, including 1) increase the breadth of the search for relevant studies, 2) search manually for relevant papers within a carefully selected set of journals when completeness is essential, 3) conduct more studies on estimation methods commonly used by the software industry, and 4) increase the awareness of how properties of the data sets impact the results when evaluating estimation methods. T HIS paper reviews journal articles on software development cost 1 estimation with the goal of supporting and directing future estimation research. Our review differs from previous reviews [1] , [3] , [16] with respect to the following elements:. . Different goal. While the main goal of this review is to direct and support future estimation research, the other reviews principally aim at introducing software practitioners or novice estimation researchers to the variety of formal estimation models. This difference in goal leads to a different focus. For example, our review focuses on research methods and does not include a comprehensive description of the different estimation methods. . More comprehensive and systematic review. We base the analysis on a systematic search of journal papers, which led to the identification of 304 journal papers. The review in [3] is based on about 130, that in [16] on about 65, and that in [1] on about 40 journal and conference papers. None of the previous reviews describe a systematic selection process or state clear criteria for inclusion or exclusion.. . Classification of studies. We classify the software development estimation papers with respect to estimation topics, estimation approach, research approach, study context and data set. We found no classification, other than that with respect to estimation method in the other reviews. Based on what we believed were interesting issues to analyze, we posed the eight research questions described in Table 1 . The underlying motivation for all questions was our goal of improvement of the software cost estimation research. These research questions guided the design of the review process.. The remaining part of this paper is organized as follows: Section 2 describes the review process. Section 3 reports the review results. Section 4 summarizes the main recommendations for future research on software cost estimation. This paper reviews software cost estimation papers published in journals and tries to support other software cost estimation researchers through a library of estimation papers classified according to research topic, estimation approach, research approach, study context, and use of data sets. Based on our, to some extent subjective, interpretation of the review results and other knowledge, we recommend the following changes in estimation research:. . Increase the breadth of the search for relevant studies. Software cost estimation research studies seem, on average, to be based on searches for relevant previous studies that use few sources. If the goal is to find relevant research on software cost estimation, it is not sufficient to conduct searches in digital libraries or to conduct manual searches of the most important software engineering journals. We identified as many as 76 journals with studies on software cost estimation, several software cost estimation papers that would have been hard to find through searches in digital libraries, and many journals from other domains that contained relevant results. . Search manually for relevant papers in a carefully selected set of journals when completeness is essential. There is a lack of standardized use of terms pertaining to software cost estimation. We believe that such a lack makes it is easy to miss important papers when relying on automatic searches in digital libraries. The search term "software cost estimation" OR "software effort estimation," for example, did not identify more than 60 percent of the papers on software cost estimation identified by our manual search. We are aware of the practical limitations related to the use of manual search process, e.g., the required search effort. In cases where completeness is not essential, a combination of manual search of the most relevant journals and use of digital libraries to cover the other journals may be sufficient. . Conduct more studies on estimation methods commonly used by the software industry. In spite of the fact that formal estimation models have existed for many years, the dominant estimation method is based on expert judgment. Further, available evidence does not suggest that the estimation accuracy improves with use of formal estimation models. Despite these factors, current research on, e.g., expert estimation is relatively sparse and we believe that it deserves more research effort. . Increase the awareness of how properties of the data sets impact the results when evaluating estimation methods. Currently, a typical evaluation of an estimation method is based on an arbitrarily chosen data set, where the representativeness and other properties are not analyzed or much discussed. Even worse, quite a few papers are based on data sets that are clearly too old to be representative for more recent or future projects. We recommend that researchers on software cost estimation change their focus from the availability of project data sets to understanding the relationship between project characteristics (data set properties) and estimation methods. The classification of research papers provided a general picture of the characteristics of the software estimation research. This general picture served as a starting point for deeper investigation of findings that seemed, from the authors' perspectives, to suggest important shortcomings in estimation research and possibilities for improvement. 2

O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O B I I O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O B I I O B I I O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A partial reconfigurable architecture for controllers based on Petri nets ABSTRACT Digital machine control system has been widely used where exists a set of binary sensors and actuators that only assume one of the two states. Generally, this control is made by specific application equipment PLC (Programmable Logical Controllers), based on a microprocessor. In most industrial applications, the PLC programmers use one the following languages: LAD (Ladder Diagram), SFC (Sequential Function Chart) or STL (Statement List). These languages present different syntax and facilities to represent the process control flow. Particularly, the SFC language [1] is a Petri net based language, similar to GRAFCET specification [3] .. In this work, a new Reconfigurable Logic Controller (RLC) architecture for applications of discrete machine control is presented. The RLC uses Temporal Petri Net (TPN) [3] [5] as a formal language for functional description of applications. This architecture is based on a Xilinx Virtex-II FPGA (Field Programmable Gate Array) [7] [8] device. The use of Petri nets allows a natural description for functional and temporal capture of the machine control system. It happens because Petri nets can easily specify parallelism, concurrence and asynchronous aspects. Besides, a Petri net specification can also be easily derived from LAD and SFC specifications, already used by commercial PLCs [13] . The advantage of a Petri net description is its powerful set of mathematical analysis mechanism that allows verification of properties and system correctness detection. To synthesize the processes in hardware, the Petri net specification is translated to VHDL and further mapped into a Virtex-II FPGA.. FPGA architectures present advantages such as high parallelism and control processing speed-up and a large amount of general purpose I/O-pins, with different voltage standards and high input/output rates when compared with PLC architectures. Current PLC implementations, based on microprocessors, presents difficulties to explore parallelism and meet severe time constraints for high complex applications. This difficulty is result of PLC sequential interpreted-execution of the system specification [4] in software.. Even for applications that need more resources than that available in a such FPGA, a multi-context approach [6] [2] , based on the Petri net temporal partitioning can be performed without loose of performance in several applications. In this way, this work proposes an architecture in which the main process can be split into small ones and executed in a only FPGA Virtex-II Xilinx device [9] , through a temporal and partial reconfiguration process.. The section 2 presents the control application model in Temporal Petri net (TPN); the section 3 exhibits the TPN translation for a synthetizable VHDL; in the section 4 the architecture proposed and dynamic and partial reconfiguration on Virtex-II are discussed in details; section 5 presents a case study based on an elevator control; finally, the section 6 presents some conclusions and future works.

O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O