Phase tracking and prediction In Modern processors can execute upwards of 5 billion instructions in a single second, yet most architectural features target program behavior on a time scale of hundreds to thousands of instructions, less than half a µS. While these optimizations can provide large benefits, they are limited in their ability to see the program behavior in a larger context.. Recently there has been a renewed interest in examining the run-time behavior of programs over longer periods of time [10, 11, 19, 20, 3] . It has been shown that programs can have considerably different behavior depending on which portion of execution is examined. More specifically, it has been shown that many programs execute as a series of phases, where each phase may be very different from the others, while still having a fairly homogeneous behavior within a phase. Taking advantage of this time varying behavior can lead to, among other things, improved power management, cache control, and more efficient simulation. The primary goal of this research is the development of a unified run-time phase detection and prediction mechanism that can be used to guide any optimization seeking to exploit large scale program behavior.. A phase of program behavior can be defined in several ways. Past definitions are built around the idea of a phase being an interval of execution during which a measured program metric is relatively stable. We extend this notion of a phase to include all similar sections of execution regardless of temporal adjacency. Simply put, if a phase of execution is correctly identified, there should only be small variations between any two execution intervals identified as being part of the same phase. A key point of this paper is that the phase behavior seen in any program metric is directly a function of the way the code is being executed. If we can accurately capture this behavior at run-time through the computation of a single metric, we can use this to guide many optimization and policy decisions without duplicating phase detection mechanisms for each optimization.. In this paper, we present an efficient run-time phase tracking architecture that is based on detecting changes in the proportions of the code being executed. In addition, we present a novel phase prediction architecture that can predict, not only when a phase change is about to occur, but also the phase to which it is will transition. Since our phase tracking implementation is based upon code execution frequencies, it is independent of any individual architecture metric. This allows our phase tracker to be used as a general profiling technique building up a profile or database of architecture information on a per phase basis to be used later for hardware or software optimization. Independence from architecture metrics allows us to consistently track phase information as the program's behavior changes due to phasebased optimizations.. We demonstrate the effectiveness of our hardware based phase detection and classification architecture at automatically partitioning the behavior of the program into homogeneous phases of execution and to identify phase changes. We show that the changes in many important metrics, such as IPC and energy, correlate very closely with the phase changes found by our metric. We then evaluate the effectiveness of phase tracking and prediction for value profiling, data cache reconfiguration, and re-configuring the width of the processor.. The rest of the paper is laid out as follows. In Section 2, prior work related to phase-based program behavior is discussed. Simulation methodology and benchmark descriptions can be found in Section 3. Section 4 describes our phase tracking architecture. The design and evaluation of the phase predictor are found in Section 5. Section 6 presents several potential applications of our phase tracking architecture. Finally, the results are summarized in Section 7. In this paper we present an efficient run-time phase tracking architecture that is based on detecting changes in the code being executed. This is accomplished by dividing up all instructions seen into a set of buckets based on branch PCs. This way we approximate the effect of taking a random projection of the basic block vector, which was shown in [21] to be an effective method of identifying phases in programs.. Using our phase classification architecture with less than 500 bytes of on-chip memory, we show that for most programs, a significant amount of the program (over 80%) is covered by 20 or less distinct phases. Furthermore, we show that these phases, while being distinct from one another, have fairly uniform behavior within a phase, meaning that most optimizations applied to one phase will work well on all intervals in that phase. In the program gcc, the IPC attained by the processor on average over the full run of execution is 1.32, but has a standard deviation of more than 43%. By dividing it up into different phases, we achieve much more stable behavior, with IPCs ranging between 0.61 and 1.95, but now with standard deviations of less than 2%.. In addition to this, we present a novel phase prediction architecture using a Run Length Encoding Markov predictor that can predict not only when a phase change is about to occur, but to which phase ID it will transition to. In using this design, which also uses less than 500 bytes of storage, we achieve a phase prediction miss rate of 10% for applu and 4% for apsi. In comparison, always predicting that the phase will stay the same results in a miss rate of 40% and 12% respectively.. We also examined using our phase tracking and prediction architecture to enable new phase-directed optimizations. Traditional architecture and software optimizations are targeted at the average or aggregate behavior of a program. In comparison, phase-directed optimizations aim at optimizing a program's performance tailored to the different phases in a program. In this paper, we examined using phase tracking and prediction to increase frequent value profiling coverage, and to provide energy savings through data cache and processor width re-configuration.. We believe our phase tracking and prediction design will open the door for a new class of run-time optimization that targets large scale program behavior. Even though we present a hardware implementation for phase tracking, a similar design can be implemented in software to perform phase classification for run-time optimizers, just-in-time compilation systems, and operating systems. Hardware and software optimizations that can potentially benefit the most from phase classification and prediction are (1) those that need expensive profiling/training before applying an optimization, (2) those where the time or cost it takes to perform the optimization is either slow or expensive, and (3) those that can benefit from specialization where they have the same code/data being used differently in different phases of execution. By using our dynamic phase tracking and prediction design, phase-behavior can be characterized and predicted at the largest of scales, providing a unified mechanism for phase-directed optimization. In this Section we describe work related to phase identification and phase-based optimization.. In [19] , we provided an initial study into the time varying behavior of programs, showing that programs have repeatable phase-based behavior over many hardware metrics -cache behavior, branch prediction, value prediction, address prediction, IPC and RUU occupancy for all the SPEC 95 programs. Looking at these metrics over time, we found that many programs have repeating patterns, and that important metrics tend to change at the same time. These places represent phase boundaries.. In [20] , we proposed that by profiling only the code that was executed over time we could automatically identify periodic and phase behavior in programs. The goal was to automatically find the repeating patterns observed in [19] , and the lengths (periods) of these patterns. We then extended this work in [21] , using techniques from machine learning to break the complete execution of the program into phases (clusters) by only tracking the code executed. We found that intervals of execution grouped into the same phase had similar behavior across all the architecture metrics examined. From this analysis, we created a tool called SimPoint [21] , which automatically identifies a small set of intervals of execution (simulation points) in a program to perform architecture simulations. These simulation points provide an accurate and efficient representation of the complete execution of the program.. The work of Dhodapkar and Smith [10, 9] is the most closely related to ours. They found a relationship between phases and instruction working sets, and that phase changes occur when the working set changes. They propose that by detecting phases and phase changes, multi-configuration units can be re-configured in response to these phase changes. They have used their working set analysis for instruction cache, data cache and branch predictor re-configuration to save energy [10, 9] .. The work we present in this paper identifies phases and phase changes by keeping track of the proportions in which the code was executed during an interval based upon the profiler used in [20] . In comparison, Dhodapkar and Smith [10, 9] track the phase and phase changes solely upon what code was executed (working set), without weighting the code by its frequency of execution. Future research is needed to compare these two approaches.. Additional differences between our work include our examination of architectures for predicting phase changes, and different uses from [10, 9] , such as value profiling and processor width reconfiguration. We provide an architecture that can fairly accurately predict what the next phase will be, along with predicting when there will be a phase change. In comparison, Dhodapkar and Smith do not examine phase-based prediction [10, 9] , but concentrate on detecting when the working set size changes, and then reactively apply optimization.. Merten et al. [15] developed a run-time system for dynamically optimizing frequently executed code. Then in [3] , Barnes et al. extend this idea to perform phase-directed complier optimizations. The main idea is the creation of optimized code "packages" that are targeted towards a given phase, with the goal of execution staying within the package for that phase. Barnes et al. concentrate primarily on the compiler techniques needed to make phase-directed compiler optimizations a reality, and do not examine the mechanics of hardware phase detection and classification. We believe that using the techniques in [3] in conjunction with our phase classification and prediction architecture will provide a powerful run-time execution environment. To perform our study, we collected information for ten SPEC 2000 programs applu, apsi, art, bzip, facerec, galgel, gcc, gzip, mcf, and vpr all with reference inputs. All programs were executed from start to completion using SimpleScalar [5] and Wattch [4] . Because of the lengthy simulation time incurred by executing all of the programs to completion, we chose to focus on only 10 programs. We chose the above 10 programs since their phase based behavior represents a reasonable snapshot of the SPEC 2000 benchmark suite, along with picking some of the programs that showed the most interesting phase-based behavior. Each program was compiled on a DEC Alpha AXP-21164 processor using the DEC C, and FORTRAN compilers. The programs were built under OSF/1 V4.0 operating system using full compiler optimization (-O4 -ifo).. The timing simulator used was derived from the SimpleScalar 3.0 tool set [5] , a suite of functional and timing simulation tools for the Alpha AXP ISA. The baseline microarchitecture model is detailed in Table 1 . In addition to this, we wanted to examine energy usage optimizations, so we used a version of Wattch [4] to capture this information. We modified all of these tools to log and reset the statistics every 10 million instructions, and we use this as a base for evaluation.

O B O O O O O O O O O O O O O O O O O O O O O B 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 B 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 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 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 O O O O O O O O O O B B O O O B 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 B O O O O B O O O B 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 B O O O O O O B B 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 B O O O O O B O O O O O 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 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 B 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 B O O O O B 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 B O O O O B O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O B B O B O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O B O O O O O O B 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 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 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 B 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 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 B 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 B O O B O O O O O O B O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O B 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 B O O O O O O B O O B O O O O O O O O O O O O O O O B B O O O O O O O O O B 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 B 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 B 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 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 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 B O B O O O O O O O O O O O O O O B 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 O O B O O B 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 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 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 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 B 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 B 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 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 B 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 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 B 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 B 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 B 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


An offset algorithm for polyline curves Polyline curves which are composed of line segments and arcs are widely used in engineering applications. In this paper, a novel offset algorithm for polyline curves is proposed. The offset algorithm comprises three steps. Firstly, the offsets of all the segments of polyline curves are calculated. Then all the offsets are trimmed or joined to build polyline curves that are called untrimmed offset curves. Finally, a clipping algorithm is applied to the untrimmed offset curves to yield the final results. The offset algorithm can deal with polyline curves that are self-intersection, overlapping or containing small arcs. The new algorithm has been implemented in a commercial system TiOpenCAD 8.0 and its reliability is verified by a great number of examples. # Offset curves play an important role in many areas. In numerical controls and CAD/CAM applications, offset generation is an important task and is one of the most difficult geometric operations [1] [2] [3] [4] [5] [6] [7] . In the manufacturing mechanical parts, pocket machining is very important. And it is often considered as a difficult and complex process [1] . Because of the importance and complexity, pocket machining is still an active field of research in computer-aided manufacturing (CAM) and computer-aided process planning (CAPP) [1] [2] [3] [4] [5] [6] [7] . There are several pocket strategies such as contour-parallel tool path pattern, zigzag milling, component-offset pattern, outer-contour/island-offset pattern and proportional-blending-offset pattern, etc. [1] . All these strategies may require the offset curves. Therefore, the offset algorithms are fundamental for CNC machining. And the offset results should be correct to avoid the damage of the target part. Besides the traditional application in CNC machining, offset curves can also be used in other applications, such as obstacle avoidance, VLSI [8, 10] . In any branch of CAD where parallel curves and surfaces are used, e.g. pattern design, offset curves are also important entities [18] .. For a planar curve cðtÞ, its offset curves can be written as. where d is the offset distance and nðtÞ is the normal vector at the parameter t. Compared with the original curve cðtÞ, rðtÞ is more complex and cannot be expressed as a rational curve except for some special curves such as line segments and arcs. The details on rational curves with rational offset curves can be found in Refs. [9, 23] . Therefore, in most cases the calculations of offset curves recur to approximation methods [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] . Among the approximation methods, an important way is that the approximation offset curves of complex planar curves are replaced by the offsets of simple curves. For example, the offsets of Bsplines can be approximated by the offsets of line segments or arcs [12] . Lee et al. [13] obtain the offset curves of general planar curves by calculating the offsets of arc segments which approximate the general planar curves. Wang and Sun [15] introduce biarc splines to approach NURBS curves, and then take the offset curves of biarc splines as the approximating offsets of NURBS curves. Generally these works do not give many details on calculating the offsets of approximating curves that comprise line segments or arcs. Polyline curves which are composed of line segments and arcs are widely used in engineering applications [22] . And the www.elsevier.com/locate/compind Computers in Industry 58 (2007) [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] segments of a polyline curve may organize complicatedly. On the one hand, the two neighboring segments of a polyline curve are connected with only G 0 continuity. On the other hand, there may be self-intersection and overlapping among its segments. Although the offset curves of arcs and line segments are arcs and line segments, respectively, there still exist some problems to calculate the offsets of polyline curves. For instance, sometimes only parts of offset curves can be obtained or the offset curves may intersect with the original polyline curves. To address the problems clearly, we take Figs. 1 and 2 as examples. In these examples, the thick curves are original polyline curves and the thin curves are the offset curves on both sides of the original curves. In Fig. 1 , the original curve is a closed polyline curve that contains two small arcs. As shown in Fig. 1(a) , the commercial software AutoCAD 2004 produces two offset curves, and AutoCAD 2002 cannot produce any offset curves ( Fig. 1(b) ). In Fig. 2 , the original polyline curve is more complex than that in Fig. 1 , and it has many self-intersection points. The offset curves from AutoCAD 2004 have some obvious errors since they have intersection points with the original curve ( Fig. 2(a) ). And only parts of the offset curves can be obtained from AutoCAD 2002 (Fig. 2(b) ). A probable reason for this phenomenon may come from the difficulty to deal with complex organization among the segments of a polyline curve. Therefore, a better offset algorithm for polyline curves is needed to solve the above problems.. In CNC machining, many boundaries of the parts are polyline curves or approximated by polyline curves. For example, the internal boundary of the part illustrated in Fig. 3 is a polyline that is composed of three circular arc and five line segments. If the offsets of the boundary are obtained, the tool paths can be generated easily. And we will give two examples to generate tool paths in Section 6. Furthermore, the offset algorithm for polyline curves is not limited to the polyline curves themselves and it can also provide a blue print for the approximation offsets of other complex planar curves. Actually, the methods mentioned in Refs. [12, 13] and [15] have adopted the strategy that the offsets of complex planar curves are replaced by the offsets of polyline curves.. However, to our best knowledge, there are not many research works [20, 21] aiming at the offset algorithm for polyline curves except for the commercial software AutoCAD. Choi and Park [20] give an algorithm for point-sequence curves (PS-curves) obtained by intersecting a sculptured surface with a plane. PScurves including only line segments can be regarded as polyline curves. Li and Ye [21] study the method on non-selfintersection polyline curves which do not involve curves that are self-intersection, overlapping or containing small arcs.. In this paper, an offset algorithm for polyline curves is presented and its target is to obtain all the offset curves. And the offset algorithm can deal with polyline curves that are closed, self-intersection, overlapping or containing small arcs. For example, Figs. 1(c) and 2(c) illustrate the offset results from the algorithm proposed in this paper. These results are much better than those from AutoCAD.. The main idea of this offset algorithm is described briefly as follows. Firstly, the offsets of all the segments of a polyline curve are calculated. Then the offsets are joined into a polyline curve that is called an untrimmed offset curve. The untrimmed offset curve includes all the offsets of the original curve. But it may contain many self-intersecting loops or intersect with the original curve. Finally, the offset results are obtained after the application of a clipping algorithm to the untrimmed offset curve. We also prove that the clipping algorithm does not cut out the untrimmed offset curve overmuch. Thus the offset algorithm is guaranteed theoretically to gain all the offset curves.. The remaining part of the paper is organized as follows. Some basic definitions are given in Section 2. An algorithm to get an untrimmed offset curve is proposed in Section 3, where only the polyline curves that are open and not overlapping are considered. Section 4 presents a clipping algorithm for untrimmed offset curves and Section 5 discusses complex polyline curves that are closed, overlapping or containing small arcs. In Section 6, some illustrative examples are given and the conclusions are drawn in the final section. In the paper, an offset algorithm for polyline curves is proposed. The offset algorithm firstly obtains an untrimmed offset curve of a polyline curve using the trim or joint algorithm for offset curves of its segments. Then the offset results are gained after applying the clipping algorithm to the untrimmed offset curve. From the examples illustrated in Figs. 20-23 , we can conclude the new offset algorithm can deal with polyline curves that are closed, self-intersection, overlapping or containing small arcs. From the algorithm to obtain the untrimmed offset curves, we know the untrimmed offset curves include all the offset curves of polyline curves. And the clipping algorithm in Section 4 does not cut out the untrimmed offset curves overmuch. Therefore, the offset algorithm is guaranteed theoretically to gain all the offset curves of polyline curves. From the examples to generate tool paths for pocket machining, we can conclude offset algorithms are fundamental for CNC machining. And the correctness of offsets can make the tool path generation simpler in CNC machining. At the present time, the offset algorithm has been implemented in a commercial system TiOpenCAD 8.0 and its reliability is verified by a great number of examples. Guo-Qin Zheng is an associate professor in School of Software at Tsinghua University, China. His research interests include computer-aided design and software engineering.. Jia-Guang Sun is a professor in School of Software at Tsinghua University, China. His research interests are computer graphics, computer-aided design, computer-aided manufacturing, product data management and software engineering.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 B I O O O O O O O O O B I 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 O O O O O O O O O O B I O O O B I O O O O O B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O 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 B I 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 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


A novel reordering write buffer to improve write performance of log-structured file systems AbstractThis paper presents a novel reordering write buffer, which improves the performance ofLog-structured File Systems (LFS Disk I/O is a major performance bottleneck in modern computer systems. Log-structured File Systems (LFS) [1, 2, 3] try to improve the I/O performance by combining small write requests into large logs. While LFS can significantly improve the I/O performance for small-write dominated workloads, it suffers from a major drawback, namely garbage collection overhead or cleaning overhead. LFS has to constantly re-organize the data on disk, through a process called garbage collection or cleaning, to make space for new data. Previous studies have shown that garbage collection overhead can considerably reduce the LFS performance under heavy workloads. Seltzer et al. [4] pointed out that the garbage collection overhead reduces the LFS performance by more than 33% when the disk is 50% full. Due to this problem, LFS has found limited success in realworld operating system environments, although it is used internally by several RAID (Redundant Array of Inexpensive Disks) systems [5, 6] . Therefore it is important to reduce the garbage collection overhead in order to improve the performance of LFS and make LFS more successful in the operating system field.. Several schemes have been proposed to speed up the garbage collection process [5, 7] . These algorithms focus on improving the efficiency of garbage collection after data has been written to disk. In this paper, we propose a novel method that tries to reduce the I/O overhead during garbage collection, by reorganizing data in two or more segment buffers, before the data is written to disk. Figure 1 shows the typical writing process of LFS. Data blocks and inode blocks are first assembled in a segment buffer to form a large log. When the segment buffer is full, the entire buffer is written to a disk segment in a single large disk write When some of the files are updated or deleted later, the previous blocks of that file on the disk are invalidated accordingly. These invalidated blocks become holes in the disk segments and have to be reclaimed by the garbage collection process. We have presented a novel reordering write buffer design called WOLF for Log-structured File Systems. WOLF improves the disk layout by reordering write data in segment buffers before writing the data to disk. By utilizing an adaptively heuristic grouping algorithm that separates active data from inactive data, and taking advantage of file temporal and spatial localities, the reordering buffer forces the actively-accessed data blocks into one (hot) segment and the inactive data into another (cold) segment. Most of the blocks in active segments will be quickly invalidated, while most blocks in inactive segments will be left intact. Data on disk therefore forms a bimodal distribution, which significantly reduces garbage collection overhead.. Since WOLF works before the initial write data reaches the disk, it can be integrated with other existing strategies smoothly to improve LFS performance. By reducing garbage collection overhead, WOLF lessens the contention for disk bandwidth. Simulation experiments based on a wide range of real-world and synthetic workloads show that our strategy can reduce the overall write cost by up to 53%, and improve file system performance by up to 26%. The read performance is comparable to that of LFS. WOLF still guarantees fast crash recovery, a key advantage of LFS.. We believe that our method can significantly improve the performance of those I/O systems (such as some RAIDs) that use the LFS technology. It may also increase the chance of LFS being integrated in mainstream operating systems such as Linux. Moreover, since logging is a commonly used technology to improve I/O performance, we believe that our new scheme will have a broad impact on high performance I/O systems as well. We realize that the problem with LFS is that the system does not distinguish the active data (namely short-lived data) from the inactive data (namely long-lived data) in the write buffer. Data is simply grouped into a segment buffer randomly, mostly according to their arrival orders. When the buffer fills up, LFS writes its content to a disk segment. Within the segment, however, some data is active and will be quickly overwritten (therefore invalidated), while the rest is inactive and will remain on the disk for a relatively long period. As a result, the garbage collector has to compact the segment to eliminate the holes in order to reclaim disk space. Ousterhout et al. proposed Log-structured File Systems (LFS) to manage disk storage [1, 2] . LFS writes all updates to disk sequentially in a log-like structure, thereby improving both the file write performance and crash recovery. Seltzer et al. [3, 4] developed an implementation of LFS for BSD Unix. They used an index file to maintain the memory-consuming data structures like the inode map.. Several new garbage collection policies have been presented [5, 7, 10] to overcome the high garbage collection overhead of LFS. In traditional garbage collection policies [2] , including greedy cleaning and cost-age cleaning, live blocks in several partially empty segments are combined to produce a new full segment, freeing the old partially empty segments for reuse. These policies perform well when the disk space utilization is low. Wilkes et al. [5] proposed the hole-plugging policy. In their scheme, partially empty segments are freed by writing their live blocks into the holes found in other segments. Despite the higher per-block cost, at high disk utilization, holeplugging performs better than traditional garbage collection because it avoids processing too many segments. Recently, Matthews et al. [7] showed how adaptive algorithms can be used to enable LFS to provide high performance across a wider range of workloads. Their algorithms automatically select either the benefit-to-cost or the hole-plugging method depending on cost-benefit estimates. They also used cached data to lower garbage collection costs. Blackwell et al. [10] presented a heuristic algorithm that does not interfere with normal file accesses. They found that 97% of garbage collection on the most heavily loaded system was done in the background. Recently, we proposed a scheme [11] that incorporates the knowledge of Zone-Bit-Recording into LFS to improve both the read and write performance. It reorganizes data on the disk during the LFS garbage collection and the system idle periods. By putting active data in the faster zones and inactive data in the slower zones, we can achieve performance improvements for both reads and writes.. The strategy proposed in this paper is distinctively different from the above methods : WOLF works with the initial write data in the reordering write buffers, reducing the garbage collection overhead before the data goes to the disk. As a result, WOLF can be easily combined with other strategies to further improve the LFS performance.

O O O O O O O B I O B I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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


The Basic Feasible Functionals in Computable Analysis We give a correspondence between two notions of complexity for real numbers and functions: poly-time computability according to Ko and a notion that arises naturally when one considers the application of Melhorn's class of the Basic Feasible Functionals to computable analysis. We show that both notions define the same set of real numbers and functions. Below we will give a very natural definition of complexity of real-valued functions using a restriction of the functionals used in the definition of its representation to a subrecursive class of functionals that is commonly used to extend poly-time computability to higher types. We will compare the resulting notion of a BFF-computable real function to Ko's poly-time computablity to prove the following theorem: Theorem 1 (10) Let a, b ∈ Q, a < b. A real function φ : [a, b] → R has a sharp CF-representation in BFF if and only if it is poly-time computable in the sense of Ko.

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 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


Simulation of river streams: Comparison of a new technique with QUAL2E Predictions and quality management issues for environmental protection in river basins rely on water-quality models. These models can be used to simulate conditions in or near the range of the calibrated or verified conditions. In this respect, estimation of parameters, which is still practiced by heuristic approaches (i.e. manually), seems to be the point where the attention needs to be focused. The authors' research group has developed a systematic approach for dynamic simulation and parameter estimation in river water quality models, which has eliminated the cumbersome trial-end-error method. This study reports a user-interactive software named as RSDS (River Stream Dynamics and Simulation) for the implementation of the suggested technique, and provides a comparative investigation of the suggested modelling approach against a well established and worldwide known water quality software, QUAL2E. Experimental data collected in field observations along the Yesilirmak river basin in Turkey were checked against the predictions from both software programs. The results indicated that much better agreement with the experimental data could be obtained from RSDS compared with QUAL2E. Thus, the systematic procedure suggested in the present work provides an effective means for reliable estimation of the model parameters and dynamic simulation for river basins, and therefore, contributes to the efforts toward predicting the extent of the effect of possible pollutant discharges in river basins. Water quality models generally require a relatively large number of parameters to define their functional relationships, and since prior information on parameter values is limited, they are commonly defined by fitting the model to observed data. The model can be used to simulate conditions in or near the range of the calibrated or verified conditions. In this respect, the estimation of parameters, which is still practiced by heuristic approaches (i.e. manually), seems to be the point where the attention needs to be focused.. The state of the art in river water quality modelling was summarized by Rauch et al. [3] , who addressed some issues related to the practical use of river quality models. Upon comparison of 10 important software products, they Fraction of algal nitrogen uptake from ammonia pool F L Algal growth limitation factor for light F N Algal growth limitation factor for nitrogen F P Algal growth limitation factor for phosphorus I Surface light intensity, Cal/m 2 -hr K 1 BOD deoxygeneration rate constant, 1/day K 2 Reaeration rate constant, 1/day K 3 Rate of loss of BOD due to settling, 1/day K 4 Benthic oxygen uptake, mg-O/m 2 -day K 5 Coliform die-off rate, 1/day K 6 Arbitrary non-conservative decay coefficient, 1/day K L Half saturation coefficient for light, Cal/m 2 -hr K N The Michaelis Menten half-saturation constant for nitrogen, mg-N/L K NITRF First order nitrification inhibition coefficient, mg/L K P The Michaelis Menten half-saturation constant for. The effective local concentration of available inorganic nitrogen, mg-N/L O *. The saturation concentration of dissolved oxygen at the local temperature and pressure, mg/L O The concentration of dissolved oxygen, mg/L P 2 The local concentration of dissolved phosphorus, mg-P/L P N Preference factor for ammonia nitrogen P wv Partial pressure of water vapor, atm Q Flow rate, m 3 /s t Time, day T Temperature, K V Volume of water in each divided CSTR, m 3 α 0 Conversion factor; ratio of chlorophyll-A to algal biomass, ug-Chl a/mg-A α 1 Fraction of algal biomass that is nitrogen, mg-N/mg-A α 2 Fraction of algal biomass that is phosphorous, mg-P/mg-A α 3 O 2 production per unit of algal growth, mg-O/mg-A α 4 O 2 uptake per unit of algae respired, mg-O/mg-A α 5 O 2 uptake per unit of NH 3 oxidation, mg-O/mg-N α 6 O 2 uptake per unit of NO 2 oxidation, mg-O/mg-N β 1 Rate constant for the biological oxidation of NH 3 to NO 2 , 1/day β 2 Rate constant for the biological oxidation of NO 2 to NO 3 , 1/day β 3 Rate constant for the hydrolysis of organic N to ammonia, 1/day β 4 Rate constant for the decay of organic-P to dissolved-P, 1/day σ 1 Algal settling rate, m/day σ 2 Benthos source rate for dissolved phosphorus, mg-P/m 2 -day σ 3 Benthos source rate for ammonia nitrogen, mg-O/m 2 -day σ 4 Organic nitrogen settling rate, 1/day σ 5 Organic phosphorus settling rate, 1/day σ 6 Arbitrary non-conservative settling rate, 1/day σ 7 Benthal source rate for arbitrary non-conservative settling rate, mg-ANC/m 2 -day λ Light extinction coefficient, m −1 λ 0 Non-algal portion of the light extinction coefficient,. The local respiration rate of algae, 1/day µ The local specific growth rate of algae, 1/day µ max Maximum specific algal growth rate, 1/day indicated that only two of them offered limited parameter estimation capability. Mulligan and Brown [4] also noted that practitioners often resorted to manual trial-and-error curve fitting for calibration. The generally accepted software product for river water quality modeling worldwide is U.S. EPA's QUAL2E [5] . However, this software does not address a number of practical problems, such as the issue of parameter estimation. In many practical applications of water quality models, parameter values are chosen manually rather than by automated numerical techniques, or heuristic approaches are resorted to [3] . It is known that automated methods are associated with some difficulties depending on the model's structure, optimization method, number of variables and parameters, type of measurements and so on. So far, no automated estimation of parameters for river water quality models has been reported. In a recent work, Sincock et al. [7] reported a detailed study involving the identification of model parameters. However, data were considered relatively scarce, and although temperature was predicted accurately; nitrate, BOD 5 and DO predictions were less so. In a previous study [1] , we have suggested a dynamic simulation and parameter estimation strategy, so that the heavy burden of finding reaction rate coefficients could be overcome. Modelling was based on the fact that the segment of river between sampling stations was assumed to be a completely stirred tank reactor (CSTR). This particular work was later extended to the series called the CSTR approach [2] .. The present study provides an extension to the previous approaches, particularly in terms of automatically generating reliable estimates of water quality model parameters without resorting to trial-and-error simulations. This work extends the previous works in the sense that (a) a MATLAB-based user-interactive software product is developed for easy implementation of the developed technique. The program, named RSDS (River Stream Dynamics and Simulation) and coded in the MATLAB TM 6.5 environment [8] , is reported here, (b) a comparative study is provided to assess the capabilities and effectiveness of the suggested technique in relation to the QUAL2E software. The results of comparisons to extensive field data for a number of water quality constituents revealed that the predictions from the developed RSDS software are considerably better than those from QUAL2E. Besides, the proposed new software, with an interactive graphical user interface, allows the easy determination of simulation parameters, eliminating any need for trial and error runs. Therefore, the systematic procedure suggested here provides an effective means for the reliable estimation of model parameters and dynamic simulation for river basins. It has the potential to be a helpful tool for assessing the consequences of different scenarios for water resources planning.. This work contributes to the efforts toward predicting the extent of the effect of possible pollutant discharges in river basins, and therefore, holds promise for reliable 'environmental impact assessment' studies. Predictions from the RSDS and QUAL2E programs were then compared to the field data for the river reach of 7 km. Figs. 3-12 show the profiles of the ten important pollution variables, Ammonia-N, Nitrite-N, Nitrate-N, Organic-N, Organic-P, Dissolved-P, BOD 5 , Dissolved Oxygen (DO), Coliform and Chloride along a 7 km section of the river after point source input.. For quantitative evaluation and comparison, Absolute Average Deviation (AAD) values were calculated for both software products [6] .. (N : Number of measurements, y exp : experimental value, y cal : calculated value). The results are given in Table 3 for ten pollution variables considered. It can be seen from this table that the absolute average deviation values were much higher for QUAL2E than for RSDS for most of the state variables. The predictions from RSDS indicated a much better agreement with the experimental data compared to QUAL2E. Thus, the dynamic simulation procedure suggested in the present, as well as previous, work of ours provides a valuable model calibration tool for easily and reliably estimating the model parameters for river basins.

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 B I O B 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I I 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 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 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 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 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 O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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


A modified Chebyshev pseudospectral DD algorithm for the GBH equation In this paper, a Chebyshev spectral collocation domain decomposition (DD) semidiscretization by using a grid mapping, derived by Kosloff and Tal-Ezer in space is applied to the numerical solution of the generalized Burger's-Huxley (GBH) equation. To reduce roundoff error in computing derivatives we use the above mentioned grid mapping. In this work, we compose the Chebyshev spectral collocation domain decomposition and Kosloff and Tal-Ezer grid mapping, elaborately. Firstly, the theory of application of the Chebyshev spectral collocation method with grid mapping and DD on the GBH equation is presented. This method yields a system of ordinary differential algebraic equations (DAEs). Secondly, we use a fourth order Runge-Kutta formula for the numerical integration of the system of DAEs. Application of this modified method to the GBH equation show that this method (M-DD) is faster and more accurate than the standard Chebyshev spectral collocation DD (S-DD) method. We consider the GBH equation (see [1, 2] ) of the form:. with the initial condition. and the boundary conditions . The exact solution of the Eq. (1) is the form: where. where α, β, γ and δ are given parameters. When α = 0, δ = 1, Eq. (1) is reduced to Huxley's equation [2] which describes nerve pulse propagation in nerve fibers and wall motion in liquid crystals:. When β = 0, δ = 1, Eq. (1) is reduced to Burger's equation which describes the far field of wave propagation in nonlinear dissipative systems [2] ∂u ∂t. It is known that nonlinear diffusion equations (6) and (7) play important roles in nonlinear physics. They are of special significance for studying nonlinear phenomena. If we take δ = 1 and α ̸ = 0, β ̸ = 0, Eq. (1) becomes the following Burger's-Huxley equation [3] :. When α = 0, it is the Fitzhugh-Nagoma equation [3, 4] .. In order to solve (1) numerically, many researchers have used various numerical methods. Javidi and Golbabai [1] proposed a new domain decomposition algorithm for a generalized Burger's-Huxley equation based on Chebyshev polynomials and preconditioning. Also the same authors [5] proposed a spectral domain decomposition approach for a generalized Burgers-Fisher equation. Ismail et al. [6] developed an Adomian decomposition method for Burger's-Huxley and Burger's-Fisher equation. Wang et al. [2] studied the solitary wave solutions of the generalized Burger's-Huxley equation and Estevez [7] presented non-classical symmetries and the singular modified Burger's and Burger's-Huxley equations. Aditya and Sharma [8] proposed a uniformly convergent numerical method on non-uniform mesh for the singularly perturbed unsteady Burger's-Huxley equation. More recently, Kaushik and Sharma [8] have made an attempt in the direction of an e-uniformly convergent method and gave a parameter uniform convergent finite difference scheme for a singularly perturbed unsteady Burger's-Huxley equation.. In this paper, we present a new Chebyshev spectral collocation domain decomposition semi-discretization by using a grid mapping for the generalized Burger's-Huxley equation. The numerical results are compared with the exact solutions. In this paper, a Chebyshev spectral collocation domain decomposition semi-discretization by using a grid mapping, derived by Kosloff and Tal-Ezer, in space is applied to the numerical solution of a generalized Burger's-Huxley equation. To reduce roundoff error in computing the derivatives we use the above mentioned grid mapping. Application of this modified method to the GBH equation show that the method M-DD is faster and more accurate than the standard Chebyshev spectral collocation DD (S-DD).

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 O O O O 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 B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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


Data Structures in the Design of Interfaces Abstract: Computer science algorithms can be used to improve user interfaces. Using data structures as a source of design ideas, a new interface was constructed for a cellular telephone handset. Once implemented, a user experiment was conducted which showed that predicted improvements in usability were confirmed with real users doing realistic tasks. The cellular telephone handsets we examined permitted only key-based interaction. We are now interested in discovering if our results hold true for other embedded computer systems with different physical characteristics. New handsets have new interaction devices, such as scrolling wheels, which are faster than scrolling by key pressing. We are currently building a design tool that will allow interface designers to specify the physical constraints of the device they wish to model and trade off different design solutions to reduce the cost of interaction to its theoretical minimum. A novel interface for cellular telephone handsets based on data structure research was presented. Our analysis showed that our interface should greatly reduce the number of keystrokes required to access a given function. User experiments confirmed this result and also gave us valuable qualitative information: users expressed strongly in favour of the new user interfaces. The experimental scenarios completed on the new design took, on average, 9.54 key presses to complete, in comparison to the standard design where 16.52 key presses were required. This is a strongly significant result (repeated measures one tailed t test, t=3.4, df=29, p<0.001) with users requiring approximately 7 fewer key presses, on average, to access the functions (Fig. 4) .. We discovered a significant difference in mean times between phone types (repeated measures one tailed t test, t=1.95, df=29, p<0.03) (Fig. 5) . The overall mean time for the hash phone is 33.42 seconds as compared to 42.02 seconds for the normal handset. This means that regular phone use is taking a quarter of the time that hash phones use. This is a considerable improvement for hash phone users. Around 80% of cellular telephone users only use their handsets to receive calls and make calls dialled directly on the keypad [1] -in other words, they do not use any facilities other than those provided on the most basic of land-based telephones. One might speculate that users may not want any more functionality, but the nature of a cellular telephone almost demands that the user investigate configuration options (for example, because the handset will move from noisy to quiet environments, the user will need to adjust the ringing tone to an appropriate level). It is also clear from the calls received by help-lines set up by the cellular service providers that users do want to access features of their handset, but are hindered by the handset's interface.. The work presented in this paper was initiated by a cellular service provider who was concerned not only about how much the help-lines were costing the company, but also about lost earnings because users were not bothering to access premium rate services (e.g. voice mail, traffic reports). Both problems are primarily due to overly complicated configuration options on their handsets. These same concerns are also echoed by [2] , another cellular service provider who has also become concerned about the handsets they are supplying to their customers.. The original aim of the work described in this paper was to design a new interface to cellular handset features which users could access more easily than existing interface designs. The paper reports several design alternatives and the results of user testing the final design.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Semidefinite Programming in Combinatorial Optimization This chapter surveys the use of semide nite programming in combinatorial optimization. It was written as part of DONET, a European network supported by the European Community within the frame of the Training and Mobility of Researchers Programme (contract number ERB TMRX-CT98-0202). It will appear as Chapter 12 of the \Handbook of Semide nite Programming: Theory, Algorithms and Applications", H. Wolkowicz, R. Saigal and L. Vandenberghe, Eds., Kluwer Academic Publishers, 1999.In this section we investigate various ways to derive semide nite relaxations of combinatorial optimization problems. We start out with a generic way to obtain an SDP relaxation for problems in binary variables. The key step is to linearize quadratic functions in the original vector x 2 R n through a new n n matrix X.We also look at some speci c combinatorial optimization problems where the special structure of the problem yields SDP models, di erent from the generic one.To see how SDP relaxations of combinatorial optimization problems can be derived, we start with quadratic problems in ?1; 1 variables. z mc := max x T Lx such that x 2 f?1; 1g n :Here L is a given (symmetric) matrix. This problem can be used to model the Maximum Cut problem de ned as follows: Given a graph G = (V; E) with a weight w e for each edge e 2 E, nd a partition of V into S and V n S such that the edges across the partition, or in the cut (S) = f(i; j) 2 E : jfi; jg \ Sj = 1g, have maximum total weight. This problem can be formulated as a quadratic problem in ?1; 1 variables by letting L be (up to a multiplicative factor of 1=4) the (weighted) Laplacian of the graph, i.e. L ij = ?w ij for (i; j) 2 E, L ii = P j:(i;j)2E w ij , and L ij = 0 otherwise.To obtain a tractable relaxation of this NP-hard problem, we note that x T Lx = L (xx T );

B I 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 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 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 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


Approach to the design of robust networked control systems The paper describes the application of the traffic engineering framework together with application layer procedures as mechanisms for the reduction of network latency lags. These mechanisms allow using standard and inexpensive hardware and software technologies typically applied for office networking as a means of realising networked control systems (NCSs) with high dynamic control plants, where a high dynamic control plant is the one that requires the sampling period several times shorter than communication lags induced by a network. The general discussion is illustrated by experimental results obtained in a laboratory NCS with the magnetic levitation system (MLS), which is an example of a structurally unstable plant of high dynamics. In the last decade we have been observing a growing interest in design and implementation methods for NCSs (Zurawski, 2009) . Typically, in an NCS, a plant is controlled or monitored by a remote computer system connected with the plant via a communication channel performed by a computer network (Hristu-Varsekelis and Levine, 2005) . This architecture of the control system differs significantly from the classical one, where all system components are attached directly to the control plant and exchange data using some wiring system. NCSs gain popularity due to the fact that they can be implemented more cost effectively and can provide extended functionality compared with classical control systems. In particular, NCSs allow designing and implementing systems with gradual degradation, which is necessary in the case of many industrial control plants.. The application of computer networks for data exchange in automated production systems is not a new idea and during the last decades several industrial standards of computer networks have been developed. Industrial networks are typically based on asynchronous links (fieldbus) or technologies developed for specific areas. In this last category we have Profibus (Mitchell, 2004) , ProfiNET (Nutzerorganisation, 2006) , CAN (Pfeifer et al., 2003) , ARINC (ARINC, 1990) , WorldFIP (http://www.worldfip.org, n.d.), and many others.. The most important feature of these industrial networks is that they guarantee bounded transmission delays. However, NCSs based on industrial standards suffer from some disadvantages, like high installation and maintenance costs, excessive weight of physical links, and difficulties with scalability and redundancy. One of the solutions enabling partial avoidance of these problems is the application of standard, inexpensive, easy to purchase and replace devices typically used for office networking. They employ the Ethernet which currently dominates general networking and may become an industrial standard in the near future (Nutzerorganisation, 2006; Decotignie, 2005) .. It is well known that incorrect operation of a control system due to some hardware failure can be dangerous or even catastrophic. Therefore, in order to increase the reliability of computer controlled systems, redundancy realised by the duplication or multiplication of sensors, actuators and selected processing units is applied, especially in the case of systems responsible for controlling critical processes.. In network-based control systems the situation is additionally complicated by the possibility of network failures and stochastically time-varying transmission delays introduced into feedback loops by a network. Hence, the resiliency of communication is crucial for satisfactory operation of these systems. It is obvious that the multiplication of communication links is not sufficient to assure a proper operation of NCSs and should be complemented by suitable traffic engineering and some procedures at the application level. While there is a need to keep network introduced delays below a certain bound, traffic engineering is uncomplicated when using point-to-point links, more complicated when using shared media, and quite complex in the case of wireless links prone to collisions, noise and interferences.. In the paper only an application and network level resiliency are considered. The physical (i.e., modulation and coding) and data link (frames and MAC procedures) layers 1 are defined by the appropriate standards and therefore cannot be easily altered. The significant influence of the link layer on latencies cannot be exploited in practise due to limitations of available hardware, firmware, and drivers. In particular, the implementation of the advanced 802.11e substandards like burst acknowledgements, no acknowledgements and HCF 2 is extremely seldom, and software support for wider deployed WMM 3 extensions is manufacturer dependent.. From the above discussion it follows that, in order to enhance the robustness of an NCS against network induced delays, an appropriate method of controller design should be supplemented by some methods of traffic engineering. The efficiency of this approach has been verified experimentally in our NCS with the MLS, which is an example of a structurally unstable and relatively fast control plant. These properties of the control plant cause that the sampling period used by a discrete-time controller must be several or even tens of times shorter than the delays introduced by the computer network into the feedback loop.. A result of this requirement was our choice of the method used for controller design. Namely, we applied a recently developed approach based on state prediction of the discrete-time linear model of the control plant 2007; Yang et al., 2005) . This approach belongs to the class of methods exploiting a deterministic mathematical model of the plant. In this class we also have the well-known model-based approach developed by Montestruque and Antsaklis (2003; . From our point of view the main difference between these two methods is that the first one is well suited for problems requiring efficient compensation of network introduced delays, while the second one is oriented towards increasing the sampling period and, as a consequence, the reduction in the bandwidth required for stable operation of an NCS. In our application the control plant is unstable and of high dynamics, and thus we have to use a rather short sampling period to obtain satisfactory behaviour of the network ba-1 This assumption includes the case of real-time versions of Ethernet. 2 HCF: Hybrid Coordination Function, a specification that distinguishes normal and prioritised (without contention) access to the medium.. 3 WMM: Wireless MultiMedia Extensions, a specification that allows distinguishing classes of service in wireless transmission. sed closed-loop system with variable delays several times longer than the sampling period. Hence, in our NCS, we implemented a remote controller designed using the first of the two aforementioned methods. The predictive controller implemented in the application layer was complemented by traffic engineering mechanisms developed recently by Morawski (2005; 2006b; 2007a; 2007b) and implemented in the network layer. It is worth adding that our experimental NCS was assembled from standard inexpensive network components typically used for office networking. Summing up, the main goal of our research reported here is to demonstrate that the predictive control approach combined with appropriate traffic engineering mechanisms allows designing a robust NCS with the control plant of high dynamics and that such an NCS can be realised using general purpose network devices.. The organisation of the paper is as follows: in Section 2, delays introduced by the computer network are discussed, Section 3 describes other components of the link cost, in Section 4 the compensation of network introduced delays in the application layer is presented together with experimental results illustrating the properties of the laboratory NCS with the MLS. Section 5 presents an approach to network layer compensation of latencies, and Section 6 contains conclusions. A new approach for robustness enhancement of NCSs against closed-loop latencies has been presented. In our opinion, the novelty of this approach is based on a proper combination of the predictive control method of controller design and recently developed methods of traffic engineering. The efficiency of the proposed approach was verified by a number of experiments performed using our laboratory NCS based on Ethernet and WiFi networks and implemented using standard inexpensive network hardware typically applied for office networking. It is worth emApproach to the design of robust networked control systems phasising that in our NCS as a control plant served the magnetic levitation system, which is an example of a structurally unstable system of high dynamics, and that these properties of the control plant made the design of the robust NCS additionally demanding. Experimental results have confirmed our hypothesis that the robustness of an NCS against network induced latencies cannot be guaranteed by the design of a controller alone and should be supplemented by properly selected methods of traffic engineering.. Although similar results can be obtained using dedicated real-time networks like Profibus, real-time versions of Ethernet, and many others, the proposed combination of methods is in fact independent of link layer technologies and works correctly on top of existing and future link layer implementations including wireless ones. Therefore, such an implementation is very cost effective because it is realised only by software.. One of possible directions of further research is the application of the proposed traffic engineering algorithms within dynamic environments, e.g., a set of vehicles.

O O O O O O B I I 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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 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 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 B I O O O O O O O O O


Analytic real-time analysis and timed automata: a hybrid methodology for the performance analysis of embedded real-time systems Abstract This paper presents a compositional and hybrid approach for the performance analysis of distributed real-time systems. The developed methodology abstracts system components by either flow-oriented and purely analytic descriptions or by state-based models in the form of timed automata. The interaction among the heterogeneous components is modeled by streams of discrete events. In total this yields a hybrid framework for the compositional analysis of embedded systems. It supplements contemporary techniques for the following reasons: (a) state space explosion as intrinsic to formal verification is limited to the level of isolated components; (b) computed performance metrics such as buffer sizes, delays and utilization rates are not overly pessimistic, because coarse-grained analytic models are used only for components that conform to the stateless model of computation. For demonstrating the usefulness of the presented ideas, a corresponding tool-chain has been implemented. It is used to investigate the performance of a two-staged computing system, where one stage exhibits state-dependent behavior that is only coarsely coverable by a purely analytic and stateless component abstraction. Finally, experiments are performed to ascertain the scalability and the accuracy of the proposed approach. In this paper we developed a hybrid analysis methodology that couples analytic (stateless) RTC-and state-based TA analysis. The presented technique is based on the observation that stream abstractions in the form of arrival curves can be obtained by composing individual linear staircase functions by means of minimum and maximum operations. The methodology relies on two different interfaces that were extensively discussed. The input interface converts an arrival curve to a network of TA that triggers a TA component model. The output interface performs the inverse transformation by constructing a tuple of arrival curves for the output of a TA subsystem. In the realization of the input interface each staircase function is guarded by its own TA, where the building of minimum and maximum is implemented by synchronizing groups of TA. In the output interface, the parameters of staircase functions are found by employing observer TA in a binary search based heuristic. For both interfaces correctness is proven, which assures hard performance guarantees.. The proposed methodology limits state space explosion as intrinsic to formal verification to the level of isolated (sub)-components, since loosely coupled TA-based component descriptions can be verified in isolation. For maintaining scalability, we suggest to apply the state-based analysis only to those components, for which an RTC analysis provides overly pessimistic results. As demonstrated by the case study, such cases are found when dealing with components showing state-dependent behavior. Overall, such a strategy will thereby avoid overly conservative performance predictions, but still maintain the scalability of the approach.. As arrival curves represent a more general abstraction for event streams than the widely used PJD (periodic with jitter) event models, the proposed methodology can also directly be applied to couple TA-based timing verification with other analysis tools relying on classical real-time analysis, such as MAST [9] or Symta/S [11] .. Lastly, we name some issues that this work leaves open. The heuristic devised for the output interface does not explore shifted staircase curves or non convex/concave patterns. In more general terms, the present work does not assure tightness for the output interface. It does also not consider cycles in the event flow or dependencies among components that require fixed-point iterations in the analysis process. These matters are left for future work. There are several other approaches known which also tackle the combination of RTC-based analytic and state-based models for system-wide performance analysis. The authors of [20] bridge the gap between a state-based methodology and the RTC-method as discussed in Sect. 3. However, contrary to this paper the work of [20] is based on event count automata (ECA) [7] . With ECA the user must specify the minimum and maximum number of event arrivals taking place while the ECA resides in the respective location. For translating an RTC-based abstract stream representation into an ECA the authors use the principle of a ring buffer. Each counter represents the number of events associated with the respective number of unit intervals. When it comes to the interfacing of ECA with RTC, i.e., one needs to derive abstract stream representations as used in RTC-curves from ECA specifications, the authors of [20] suggest the usage of observer ECA. They use binary search for extracting the maximum and minimum number of events seen in a window size Δ via reachability analysis.. In [19] it is shown how the above approach can be employed within a hybrid framework, allowing to obtain key performance metrics of embedded systems by combining RTC and ECA-based analysis. However, our usage of TA appears to be more beneficial, since contrary to ECA they have an explicit notion of time, whereas ECA advance in a lock-step fashion.. In addition, in our work we solely require one observer automaton for a complete staircase function defined over all time intervals Δ rather than one observer per discrete window size Δ. The authors of [8] present an approach, where a system to be analyzed is mapped to a process network which is analyzed via a compositional response time analysis [11] . The resulting periodic event stream models and the computed response times serve as parameters for pre-defined TA. The high-level descriptions of system properties to be checked are also transformed into TA. Finally, the use of standard model checking procedures allows to check, whether the system model fulfils the desired properties or not. The approach differs from the new results in this paper as the system is not decomposed into components which exhibit substantial state-dependent behavior and those which can be analyzed using analytic approaches. Instead, state-based behavior is not explicitly taken into account.. The authors of [13] also address the combination of RTC-based components and TA. For including the abstract stream representation used in RTC into TA-based system models one operates on an array of clocks. Each clock is associated with the number of events produced so far, as well as with a minimal and maximal number of events to be generated within the respective time interval length. For deriving RTC-based stream representations from the combined model, the authors suggest the usage of observer automata and binary search on the maximal and minimal number of events that appear within any time interval of length Δ, which is in fact similar to the idea of [20] . As one operates on a finite set of time-interval lengths Δ only, it is not clear when to stop with the translation of an abstract event stream representation into a TA and vice versa. The use of observer automata that investigate single time-interval lengths only implies that one either needs one observer automaton with its local clock for each interval length, or one must execute a full state space exploration for each of the interval lengths. Also on the side of the event generating automaton, the number of clocks may be prohibitively large because one basically needs one clock per upper and lower bound for the number of events seen on the stream within the resp. time interval Δ. The approach described in this paper attempts to overcome these limitations by using a compositional leaky bucket representation of event streams.

O O O O B I 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 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 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


Optimal block-type-decodable encoders for constrained systems Abstract-A constrained system is presented by a finite-state labeled graph. For such systems, we focus on block-type-decodable encoders, comprising three classes known as block, block-decodable, and deterministic encoders. Franaszek gives a sufficient condition which guarantees the equality of the optimal rates of block-decodable and deterministic encoders for the same block length. In this paper, we introduce another sufficient condition, called the straight-line condition, which yields the same result. Run-length limited RLL( ) and maximum transition run MTR( ) constraints are shown to satisfy both conditions. In general, block-type-decodable encoders are constructed by choosing a subset of states of the graph to be used as encoder states. Such a subset is known as a set of principal states. For each type of encoder and each block length, a natural problem is to find a set of principal states which maximizes the code rate. We show how to compute the asymptotically optimal sets of principal states for deterministic encoders and how they are related to the case of large but finite block lengths. We give optimal sets of principal states for MTR( )-block-type-decodable encoders for all codeword lengths. Finally we compare the code rate of nonreturn to zero inverted (NRZI) encoders to that of corresponding nonreturn to zero (NRZ) and signed NRZI encoders. In this section, we summarize some necessary background and definitions. For more detail, the reader is referred to [8] and [11] .. A labeled graph [11] consists of a finite set of states , a finite set of edges where each edge has an initial state and a terminal state in , and an edge labeling where is a finite alphabet. We will be concerned mainly with finite sequences, called blocks or codewords; a -block is a block of length . Formally, a constrained system or constraint is the set of finite sequences obtained by reading the edge labels of a labeled graph . Such a graph is called a presentation of the constraint. A presentation is called deterministic if at each state all outgoing edges carry distinct labels. It is well known that every constrained system has a deterministic presentation. A graph is lossless if any two distinct paths with the same initial state and terminal state have different labelings. This is a weaker property than deterministic.. A graph is irreducible if for any given pair , of states there is a path from to and a path from to . A graph is primitive if there exists a positive integer such that for all pairs , of states there are paths from to and to of length . A constraint is said to be irreducible (resp., primitive) if it has an irreducible (resp., primitive) presentation. Most constraints of practical interest, including RLL, MTR, and charge constraints, are irreducible; in fact, except for trivial cases, the RLL and MTR constraints are primitive. Moreover, any constraint can, in some sense, be broken down into irreducible pieces. For these reasons, we will consider only irreducible constraints (in fact, mostly primitive constraints). For an irreducible constraint, there is a unique minimal (in terms of number of states) deterministic presentation, called the Shannon cover [11] .. Let be a labeled graph. The adjacency matrix is the matrix whose entry is the number of edges from state to state in . The th power of , denoted , is the labeled graph with the same set of states as , but one edge for each path of length in , labeled by the -block generated by that path. For a constrained system presented by a labeled graph , the th power of , denoted , is the constrained system presented by . If is the adjacency matrix of , it can be shown that the adjacency matrix of is . It is well known that for any constraint, there exist encoders at any rate that does not exceed the (Shannon) capacity, , of the constraint; this capacity is defined as the asymptotic growth rate of the number of sequences allowed by the constraint, i.e., where is the number of -blocks in the constrained system . It can also be computed as where is the largest eigenvalue (also known as the Perron eigenvalue) of the adjacency matrix of any deterministic (or more generally, lossless) presentation of the constraint.. The encoders and the corresponding decoders can be implemented as finite-state machines that encode/decode using state information; the encoders are called finite-state encoders. More precisely, for a constrained system and a positive integer , an -encoder is a labeled graph such that • each state of has out-degree , • , • is lossless. The labels of the encoder are sometimes called output labels. A tagged -encoder is an -encoder whose outgoing edges from each state are assigned distinct input tags from an alphabet of size . The rate of a tagged encoder is . So, a rate encoder for is a tagged -encoder. This structure is perfectly adequate for encoding. However, it is desirable for the decoder to be implemented as a sliding-block decoder, which makes a decision on a given received codeword on the basis of a local window consisting of the codeword itself, as well as a fixed number of preceding codewords (the memory), and a fixed number of upcoming codewords (the anticipation). In this way, any symbol error at the decoder input should give rise to a limited number of errors at the decoder output. For most constraints of interest, sliding-block decodability can be achieved at any rate up to capacity.

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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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