Parallel programming models for a multi-processor SoC platform applied to high-speed traffic management In this paper, we describe the MultiFlex multi-processor SoC programming environment, with focus on two programming models: a distributed system object component (DSOC) message passing model, and a symmetrical multi-processing (SMP) model using shared memory. The MultiFlex tools map these models onto the StepNP multi-processor SoC platform, while making use of harware accelerators for message passing and task scheduling. We present the results of mapping an Internet traffic management application, running at 2.5Gb/s. The continued increase in the non-recurring expenses for the manufacturing and design of systems-on-chip (SoC) is leading to the need for significant changes to the design of SoC platforms. These factors are the drivers behind the emergence of domainspecific flexible SoC platforms [1] . The key requirement is for the effective use of platforms via high-level programming models to abstract platform details, as discussed by J. M. Paul [2] . We have described the MultiFlex MP-SoC programming environment, which supports two parallel programming models: an object-oriented message passing model, and a symmetrical multi-processing model using shared memory. The MultiFlex tools map these models onto the StepNP multi-processor SoC platform. We presented the results of mapping an Internet traffic management application, running at 2.5Gb/s. The combined use of the MultiFlex MP compilation and allocation tools, supported by high-speed hardware-assisted messaging and dynamic task allocation, supports the rapid exploration of algorithms written using interoperable DSOC and SMP programming models, automatically mapped to a range of parallel architectures. Processor utilizations of 85% to 91% have been demonstrated.

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


Effects of chemical reaction and space porosity on MHD mixed convective flow in a vertical asymmetric channel with peristalsis This work is aimed at describing MHD mixed convective heat and mass transfer peristaltic flow through a vertical porous space in the presence of a chemical reaction. The flow is examined in a wave frame of reference moving with the velocity of the wave. The channel asymmetry is produced by choosing the peristaltic wave train on the walls to have different amplitude and phase. The momentum, energy and concentration equation have been linearized under long-wavelength approximation. Expressions for dimensionless stream function, temperature and concentration field are constructed. The features of the fluid flow, heat and mass transfer characteristics are analyzed by plotting graphs and discussed in detail. Peristaltic flows are generated by the propagation of waves along the flexible walls of the channel or tube. These occur widely in many biological and biomedical systems. In physiology, this plays an indispensable role in various situations such as urine transport from kidneys to bladder through the ureter, chyme movement in the gastrointestinal tract, transport of spermatozoa in the ductus efferents of the male reproductive tracts, movements of ovum in the female fallopian tube and circulation of blood in the small blood vessels. The mechanism of peristaltic transport has been exploited for industrial applications like sanitary fluid transport, blood pumps in heart lung machine and transport of corrosive fluids where the contact of the fluid with the machinery parts is prohibited. Peristaltic transport of a toxic liquid is used in nuclear industry to avoid contamination of the outside environment. Such flows are extensively studied in various geometries by using different assumptions of large wave length, small amplitude ratio, small wave number, creeping flow, etc. At present a wealth of literature on this topic dealing with the peristalsis in viscous and non-Newtonian fluid is available (see Refs. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] and several references therein).. Heat transfer in biological tissues involves complicated processes such as heat conduction in tissues, heat convection due to blood flow through the pores of tissues, as well as radiation heat transfer between surface and its environment and there is also mass transfer in organisms. Research interest in flow as well as heat transfer phenomena in a channel/tube has increased substantially in recent years due to developments in the electronic industry, microfabrication technologies, biomedical engineering, etc. The interaction between peristalsis and heat transfer has been investigated recently, where the thermodynamic aspects of blood become significant in processes like oxygenation and hemodialysis [13] [14] [15] . Some recent interesting contributions pertaining to heat transfer aspects of peristaltic transport are cited in Refs. [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] .. Very few investigations have been made to study the combined effects of heat and mass transfer in peristaltic literature [26] [27] [28] [29] [30] . Srinivas and Kothandapani [26] have analyzed the influence of heat and mass transfer on MHD peristaltic flow through a porous space with compliant walls. Nadeem et al. [27] have presented a mathematical model to understand

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


Informing automatic generation of remote control interfaces with human designs Embedded processors are making it possible for common appliances, such as cable boxes, microwaves and fax machines, to provide even more functionality. Unfortunately, as these appliances become more complex, their interfaces are also becoming harder to use. At the same time, more people are carrying hand-held computerized devices that can communicate. We envision a future in which people will use their handhelds to communicate with and control common appliances in their environment. This work describes the design of a specification language and the construction of an automatic interface generator, using lessons learned from analyzing manually created interfaces. We are exploring how handheld devices can be used to improve the interfaces for common home and office appliances using an approach we call the personal universal controller (PUC). The PUC is similar in concept to the universal remote controls that are available today, with two major differences: 1) it communicates with appliances using a two-way protocol and 2) it is self-programming. The PUC communicates with the appliance that the user would like to control, downloads information about the appliance's functions, and automatically generates an interface.. Two things are needed to create this vision of an automatically generated remote control interface: 1) a specification language that can enumerate the functions of the appliance, and 2) an interface generator that can parse the specification language and construct a usable interface from it. We are taking a multi-step approach to realizing these two goals. First, we manually constructed several interfaces by hand and evaluated them for usability [5] . Next, we analyzed these interfaces in order to understand what information about the appliance was needed to build them. Here, we describe what our analysis uncovered and discuss how this was used in the creation of our specification language and interface generator. Work remains to be done on our interface generator. Specifically, we have not yet handled situations where there are too many controls to fit on a screen. We are also working on the aesthetic issues of interface design by exploring algorithms that can iteratively refine designs according to aesthetic properties. Simulated annealing or other iterative hill-climbing methods may be a part of our approach. The screen shown when the power is on and the radio is being used. c) The screen shown when the power is on and the CD player is being used.

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


Modeling the Dynamics of Network Technology Adoption and the Role of Converters Abstract-New network technologies constantly seek to displace incumbents. Their success depends on technological superiority, the size of the incumbent's installed base, users' adoption behaviors, and various other factors. The goal of this paper is to develop an understanding of competition between network technologies and identify the extent to which different factors, in particular converters (a.k.a. gateways), affect the outcome. Converters can help entrants overcome the influence of the incumbent's installed base by enabling cross-technology interoperability. However, they have development, deployment, and operations costs and can introduce performance degradations and functionality limitations, so that if, when, why, and how they help is often unclear. To this end, the paper proposes and solves a model for adoption of competing network technologies by individual users. The model incorporates a simple utility function that captures key aspects of users' adoption decisions. Its solution reveals a number of interesting and at times unexpected behaviors, including the possibility for converters to reduce overall market penetration of the technologies and to prevent convergence to a stable state, something that never arises in their absence. The findings were tested for robustness, e.g., different utility functions and adoption models, and found to remain valid across a broad range of scenarios. A DVANCES in technology often see newer and better solutions replacing older ones. Networking is no exception. For example, the Internet competed against alternative packet data technologies before finally displacing the phone network as the de facto communication infrastructure. Recently, there have been calls for new architectures to succeed it, and these will face a formidable incumbent in the Internet. Their eventual success in replacing it will likely depend not just on technical superiority, but also on economic factors and on their ability to win over the Internet's installed base.. A large installed base can give an incumbent an edge even if a new (entrant) technology is technically superior. The traditional networking approach to this problem has been converters (a.k.a. gateways) to ease migration from one technology to another. This is not unique to networks, but converters are particularly important in network settings where "communication" is the primary function, and its benefits grow with the number of users that can be reached, e.g., as in Metcalfe's Law. Since converters allow users of one technology to connect with users of another, they are an important tool in the adoption of network technologies. However, developing, deploying, and operating converters comes at a cost, one that often grows as a function of the converter's quality. Furthermore, converters can play a directionally ambiguous role. On one hand, a converter can help the entrant overcome the advantage of the incumbent's large installed base by allowing connectivity to it. On the other hand, the converter also helps the incumbent technology by mitigating the impact of its users migrating to the newer technology. Understanding the impact of converters on network technology adoption is, therefore, a topic that deserves further scrutiny.. In this paper, we develop a modeling framework to study adoption dynamics of entrant and incumbent technologies in the presence of network externalities. Specifically, we introduce a model for the utility derived by an individual user from a communication network and use it to build an aggregate model for technology adoption that is consistent with individual rational decision-making. We apply the model to study the role that converters can play in the adoption of network technologies. Our main findings are the following.. • The adoption process can exhibit multiple steady-state outcomes (equilibria), each associated with a specific region of initial adoption levels for the two technologies. For example, an entrant technology may succeed only if the incumbent is not already well entrenched.. • Converters can help a technology improve its own standing, i.e., market share, and even ensure its dominance while it would have entirely disappeared in the absence of converters. For example, a low-quality but low-cost technology may thwart the success of a better but more expensive competitor by preserving the ability of its users to access adopters of the pricier technology, whose usage would then be limited to a few "techno-buffs." • Improving converters' efficiency can at times be harmful.. They can result in lower market shares for an individual technology or for both. For instance, high market penetration may depend on the combination of a cheap but low-end technology with a high-end but more expensive one to adequately serve the full spectrum of user preferences. A situ-ation where converters allow the better technology to gain market share at the expense of the lesser technology may result in low-end users of that technology dropping out altogether, thereby contributing to a lower overall market penetration.. • While technology adoption always converges to a stable steady-state equilibrium in the absence of converters, this need not be so when converters are present. Boom-andbust cycles in which users switch back and forth between technologies can arise when technologies are asymmetric in the externality benefits they offer. The rest of this paper is organized as follows. Section II introduces our model and problem formulation. Section III characterizes technology adoption trajectories and equilibrium adoption levels. Section IV explores the role of converters in influencing adoption outcomes. Section V reviews prior work and positions the paper in the literature. We discuss the limitations of this study and conclude the paper with remarks on future work in Section VI. The proofs of all propositions can be found in [15] . Modeling the diffusion of new products and technologies has a long tradition in marketing. Fourt and Woodlock [8] first proposed a product diffusion model in which a fixed fraction of consumers who have not yet bought the product do so at every period; this is known as the constant hazard rate model. Bass [1] proposed an extension that additionally incorporates word-ofmouth communication between current adopters and potential adopters. A large body of work has since built on these earlier models (see [12] for an overview of this literature). Although most of the literature deals with single-product settings, Norton and Bass [14] study the joint diffusion of successive generations of technologies. Their model belongs to a class of substitution models that assume that the newer generation eventually replaces the earlier generation, and thus their interest is only in the time it takes for this to occur. Significantly, both single-product and multiple-generation diffusion models focus on aggregate adoption dynamics without explicitly modeling individual decision-making processes. The advantage of such an approach is that it results in relatively simple diffusion models that can, in turn, be used to study dynamic policies (e.g., dynamic pricing). Unfortunately, these aggregate models do not shed sufficient light on the decision processes that lead to the emergent system dynamics or the exact mechanism through which various decision variables (pricing, quality, advertising, etc.) impact adoption decisions.. A few models have focused on individual-level adoption (e.g., [10] ). These models provide far greater insight into the mechanism through which rational individual decision making results in aggregate system dynamics. Given the complexity of these models, much of the progress to date has been in settings with a single technology. In contrast, the adoption of new network technologies is often influenced by incumbents. Moreover, all of the above models and indeed much of the literature refers to generic durables, e.g., washing machines. Such models do not account for the unique features of network technologies, including network externalities and the role of converters.. A recent stream of work in economics has studied the role of network externalities on equilibrium adoption of standards and technologies. Cabral [2] develops a model of individual decision making in the presence of network externalities and characterizes the aggregate adoption dynamics. He shows that network externalities are potential drivers of S-shaped diffusion curves. We build on Cabral's model, but differ in our focus by considering a two-technology setting. Put another way, we are interested in the diffusion of a new network technology in the presence of an incumbent. A related paper by Farrell and Saloner [6] evaluates the impact of an installed base on the transition to a new standard. They show that the installed base can cause "excess inertia," which prevents the transition to the new standard.. At the same time, the adoption of the new standard by a few users can create "excess momentum" as well. In their model, users are homogeneous except for the time of their arrival into the system. As a result, they observe a bandwagon effect in which the adoption of a standard by one set of users makes the same choice more attractive to all other users. Thus, one standard always wins, and coexistence is not feasible. Choi [3] extends the model by Farrell and Saloner [6] to include converters and shows that converters can, in some instances, blockade the transition by weakening the threat of being stranded for users of the incumbent technology. In a more recent study, Joseph et al. [11] also show that increase in efficiency of a converter can hinder the adoption of a new network architecture.. An important distinction of our work relative to these papers is that we incorporate heterogeneity in user preferences. We show that this gives rise to equilibria in which the technologies may coexist, i.e., neither network technology fully captures the market. Furthermore, very little attention is paid to the adoption path in these papers because all users make the same decision. In contrast, we show that the heterogeneity across users can result in interesting adoption dynamics including nonmonotonic evolution of the market shares of the technologies. Additionally, these papers focus on environments in which users make the decisions to adopt the converters. This is meaningful in environments in which the converter functionality and its deployment reside with individual users, e.g., converters for two incompatible software applications that a user decides to download. In contrast, our interest is in environments in which converters are usually deployed by the technology providers upon incurring high fixed costs and, in the process, made available to all its users.

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


A memory-optimal buffering protocol for preservation of synchronous semantics under preemptive scheduling Recently, we have proposed a set of buffering schemes to preserve the semantics of a synchronous program when the latter is implemented as a set of multiple tasks running under preemptive scheduling. These schemes, however, are not optimal in terms of memory (buffer usage). In this paper we propose a new protocol which generalizes the previous schemes. The new protocol is not only semantics-preserving but also memory-optimal in two senses: first, in terms of the number of buffers required to preserve semantics in the worst case (i.e., for the "worst" possible arrival/execution pattern of the tasks); second, in terms of the number of buffers required to preserve semantics for any arrival/execution pattern and at any time, assuming no knowledge of future arrivals. The model-based design paradigm advocates the use of models with formal or semi-formal semantics through-out the entire development cycle, from design to implementation. One or more models of the system are built using one or more modeling languages of choice (different models may be necessary to capture different parts or "views" of the system). These models are subjected to simulation or even exhaustive verification. This allows to find and correct bugs early enough, which is a crucial cost-savings factor. "What-if" analysis can also be performed at the model level, exploring different design choices.. At some point the implementation phase begins, during which the system is actually built. By "system" we mean hardware, software or both. In the hardware industry the implementation phase is closely coupled with the modeling and analysis phase. Powerful EDA tools, stemming from a rich body of research on logic synthesis and similar topics, are used for gate synthesis, circuit layout, routing, etc. Such tools are largely responsible for the proliferation of electronics and their constant increase in performance.. In the software industry the situation is not as clear. On one hand, high-level models are not as widespread. After all, the software itself is a model and simulation can be done by executing the software. Testing and debugging are commonplace (in fact, very time-consuming) but they are done at the implementation level, that is, on the target software. Implementation is automated using the most classical tools in computer science: compilers. The situation is changing, however: languages such as Matlab/Simulink 1 , UML 2 and others, as well as corresponding software-synthesis facilities are used more and more. Currently, software synthesis is mostly restricted to separate code generation of parts of the system. The integration of the different pieces of code is usually done "manually" and is source of many problems, since the implementation often exhibits unexpected behavior: deadlocks, missed data values, etc. These problems arise because the implementation method (in this case, code generation followed by manual integration) does not guarantee that the original behavior (high-level semantics) is preserved.. In this context, our work aims at developing implementation methods that guarantee semantical preservation. We focus on embedded software, and in particular embedded control software, used extensively in domains such as automotive, avionics and others. Wide-spread high-level design languages for embedded control applications are Simulink and synchronous languages [3] . Both Simulink and synchronous languages are based on a synchronous or zero-time semantics, which means that the system is fast enough to cope with changes in the environment. This semantics allows the designer to abstract from implementation details and focus on the design logic. It also ensures platformindependence which is crucial for portability.. Naturally, the zero-time assumption breaks down upon implementation. This often results in implementations which do not preserve the synchronous semantics. In turn, the results obtained by analyzing the model (e.g., model satisfies a given property) may not hold at the implementation level. Then, in order not to have to repeat the simulation and verification effort at the implementation level, the following issue needs to be addressed: how can the semantics of the high-level model be preserved while relaxing the ideal semantical assumptions?. This question admits different answers depending on what type of implementations are considered. By "implementation" we mean the entire executing system, including computing hardware, network, operating system(s), middleware and application software. "Classic" implementations of synchronous languages are single-processor, single-task implementations [9] . Such implementations consist of a single program of the form: initialize state; while (true) do { await trigger; read inputs; compute outputs and next state; write outputs and update state; }. The trigger in the pseudo-code above can be the "tick" of a periodic clock, an interrupt of some external device, etc. In any case, in order to guarantee preservation of the synchronous semantics it suffices to ensure that the worstcase execution time (WCET) of body of the above loop is smaller than the minimum inter-arrival time (MIT) of the trigger.. In this paper we are interested in single-processor, multitask implementations, where the tasks are scheduled using a real-time operating system (RTOS) that employs a preemptive scheduling policy. Such implementations are useful in the case of multi-rate synchronous programs, where different parts of the program are executed at different rates. In such a case, the single-task implementation method above forces the generation of code which is triggered at the fastest rate: this might result in an impossibility to meet the WCET < MIT condition above. For example, consider a synchronous program consisting of two blocks, A and B, such that A must be executed every 10 ms and B every 50 ms. Suppose the WCETs of A and B are 2 ms and 10 ms, respectively. The MIT of trigger is 10 ms (the rate of A) while the WCET of the loop is 12 ms, thus, the single-task implementation method cannot be applied in this case.. On the other hand, a multi-task implementation could, in-principle, be used: notice that the processor utilization in the above example is low ( = 40%), thus, schedulability under a preemptive scheduling policy such as ratemonotonic is guaranteed [13] . There is, however, an issue of semantical preservation: this is because a multi-task implementation requires inter-task communication (data exchanged between tasks) and it is not obvious how this should be implemented. As shown in [16, 19] , "naive" inter-process communication schemes do not preserve the synchronous semantics (see also Section 3.2 for an example). In particular, such schemes are not deterministic: depending on the execution time of the tasks, the data sent from a task to another might be different.. One might say that strict preservation of the synchronous semantics is not really necessary. After all, in control applications controllers are usually designed to be robust to various types of data variability, including data loss, jitter, sensor inaccuracies, etc. Two answers can be given to this claim. First, controllers contain more and more "discrete logic", which is not robust (a single bit-flip may change the course of an if-then-else statement). Second, echos from the industry indicate that determinism is an important requirement. For instance, recent versions of the Simulink codegenerator Real Time Workshop provide options to "ensure deterministic data transfer" (see the "Related work" section for references). Our contacts with Esterel Technologies 3 reveal similar concerns.. In [16, 19] we proposed a set of buffering schemes that permit the preservation of the synchronous, zero-time semantics of a set of tasks running under preemptive scheduling. These schemes were developed for a single writer/reader pair of tasks. Although they can also be applied to any number of tasks by considering each writer/reader pair independently, this generally results in a non-optimal usage of buffers. According to Esterel Technologies, this is a big concern. In this paper, we address this problem. We propose a buffering protocol which generalizes those schemes to any number of readers. This protocol is called dynamic buffering protocol, or DBP. We prove that DBP is optimal in terms of buffer usage, in two senses.. • We provide a set of lower bounds on the number of buffers required in order for the semantics to be preserved. We show that DBP never uses more buffers than what is specified by these lower bounds. This means that DBP is optimal in the worst-case, that is, for the "worst" possible scenario.. • We also show that DBP satisfies a stronger optimality property, namely, that for every task graph, for every arrival/execution pattern of the tasks, and at any time t, the values stored by DBP at time t are precisely those values necessary in order to preserve the semantics, assuming a non-clairvoyant buffering protocol, that is, a protocol that is not aware of the future arrival pattern of tasks.. DBP consists of a set of buffers shared by the writer and reader tasks, a set of pointers pointing to these buffers and the protocol to manipulate buffers and pointers. The essential idea behind the protocol is that the pointers must be manipulated not during the execution of the tasks, but upon the arrival of the events triggering these tasks. In that way, the order of arrivals can be "memorized" and the original semantics can be preserved. DBP is dynamic in the sense 3 http://www.esterel-technologies.com/ that it allocates buffers only when they are needed, upon task arrivals. It thus tries to reuse those buffers that store values that are no longer needed.. DBP can be applied when the tasks are scheduled using one of the following two preemptive scheduling policies: static-priority (SP) or earliest-deadline first (EDF). For simplicity, we only consider the SP case in the rest of the paper. The extension to EDF can be done easily using the same idea as in [19] . It should be emphasized that the protocol works no matter what the arrival pattern of tasks is. In particular, it works for both time-triggered (e.g., multi-periodic) and event-triggered applications. The Simulink documentation claims that the Real Time Workshop code generator is able to provide implementations that reproduce the deterministic behavior of the model, provided tasks are periodic and periods are multiples of each other. 4 The documentation does not describe how this is achieved, however, evidence can be found in some restrictions imposed on multi-rate Simulink diagrams. For instance, Simulink requires that a unit-delay block be inserted between a "slow" (typically low-priority) writer and a "fast" (typically high-priority) reader. Typically, the "slow" writer will also have a lower priority than the reader, according to the rate monotonic priority scheme [13] . In this case, the above restriction avoids the problem where the reader preempts the writer before the latter has time to write. Simulink also requires that a zero-order-hold block be inserted between a "fast" writer and a "slow" reader. This avoids the problem where the higher-priority writer preempts the reader before the latter has time to read.. An approach similar to ours is followed in the independent work by Baleani et al. [2] . We extensively comment on this paper since, to our knowledge, it is the closest to our work. There are several differences between [2] and our work. Regarding the setting:. • We work with a known scheduling policy (staticpriority or EDF). In [2] , no assumption is made about the scheduling policy.. • DBP requires no knowledge of the minimum interarrival time (MIT) or deadline of tasks. However, we do require schedulability, namely, that each time a new instance of a task arrives, its previous instance has finished execution. It is beyond the scope of our work to ensure schedulability: the user of our framework must guarantee this, using methods from real-time scheduling theory (e.g., see [13, 10, 1, 18] ), more recent methods based on timed automata model-checking (e.g., see [8] ), etc. In [2] , it is assumed that the MIT and deadline of each task is known. Schedulability is also assumed, in the sense that the deadline of each task is respected. The deadline of a task can be greater than its MIT, which means that the schedulability assumption in [2] is weaker than ours.. • We assume that all tasks run on a single processor.. In [2] , no a-priori assumption is made about the execution platform.. The main focus of [2] is to provide upper bounds on the memory required so that the semantics are preserved. Less emphasis is given on the development of communication schemes that achieve these memory bounds. Regarding the memory requirements:. • DBP uses buffers optimally.. • The bounds provided in [2] are generally not tight. For example, in a SP setting with one writer and N = 2 readers, where both readers have lower priority than the writer, where the periods are Tw = 2, T1 = 3, T2 = 5, and the deadlines are equal to the periods, we require 3 buffers whereas the upper bound calculated by the formulas provided in [2] is 4.. Finally, regarding the communication schemes:. • DBP is lock-free, meaning that tasks do not block on reads or writes: the only thing that can suspend execution of a task is preemption by another, higher-priority task. DBP requires atomic manipulations of global pointers upon task releases. These can be handled by the operating system or by some special interrupthandling routine with the highest priority.. • [2] considers single-processor, "multi-processor" (many processors with centralized pointer manipulations) or "distributed" (many processors with decentralized pointer manipulations) implementations. For singleprocessor implementations, both lock-free and locking methods are considered. In the lock-free methods, the assumption is that scheduling ensures that the producer has always higher priority than the consumer. This implies that there can be no cycles in the graph of producers/consumers and that this graph is topologically ordered in order to assign the priorities. The main impact of this assumption is that a consumer task which comes after a long chain of producers will have a very low priority, thus, it cannot handle "urgent" events. In contrast, in our work we make no assumption on the relative priorities of producer and consumer, provided that a unit delay is present when the producer has lower priority than the consumer.. In summary, one can say that the setting of [2] is more general than ours, however, it also requires more knowledge (minimum inter-arrival times, deadlines). Our protocol has optimal memory requirements while the upper bounds provided in [2] are not tight (this is to be expected given that their setting is more general). Our implementation is for a single processor with SP scheduling and any assignment of priorities. The single-processor implementation of [2] assumes that producers have higher priority than consumers.. [2] considers also multi-processor implementations.. Related to our work is [12] , which considers the synchronous dataflow model (SDF) and provides methods for static scheduling and code generation on single-processor or multi-processor architectures. This work has been extended in a number of directions, including buffer optimizations (e.g., see [5, 14] ). SDF can be viewed as a subclass of the model we consider in this paper, in the sense that only multi-periodic designs can be described in SDF. On the other hand, SDF descriptions are more high-level and must generally be unfolded into a more basic model such as ours.. A major difference with our work, however, is that [12, 5, 14] aim for static, cyclic schedules, whereas we aim for multitask applications that use dynamic, preemptive scheduling.. Another related paper is [15] . This paper considers the problem of minimizing the cost of adding unit-delay or zeroorder-hold blocks in Simulink diagrams. The main difference with our work is that the focus of [15] is cost minimization and not preservation of semantics. Indeed, by adding or removing blocks as the above, the semantics generally change. In contrast, we start from a fixed set of such blocks and do not attempt a modification. We only perform optimizations at the implementation level and not at the design level.. Our work is also related to a set of papers that propose lock-free inter-task communication schemes, for instance [7, 11] . Although DBP is a lock-free protocol (only manipulations of pointers are atomic, writes and reads need not be), it is different from the protocols proposed in the above works. The latter preserve the integrity and often also the "freshness" of data, meaning that the reader consumes the latest complete value produced by the writer. This value does not always correspond to the value defined by the zero-time semantics. Another difference is that DBP is based on pointer manipulations that happen upon task release, and not task execution, as is the case of the above protocols.. We should also note that our work has different objectives from the research done in the context of real-time scheduling theory (e.g., see [13, 10, 1, 18] ). Real-time scheduling theory is concerned with checking schedulability of a set of tasks in various settings. Our concern is not schedulability, but preservation of semantics. We assume that the system is schedulable (something that can be checked using existing scheduling techniques such as those in the works cited above) and we develop preservation schemes that rely on this assumption.

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


INTRINSIC CURVATURE: A MARKER OF MILLIMETER-SCALE TANGENTIAL CORTICO-CORTICAL CONNECTIVITY? In this paper, we draw a link between cortical intrinsic curvature and the distributions of tangential connection lengths. We suggest that differential rates of surface expansion not only lead to intrinsic curvature of the cortical sheet, but also to differential inter-neuronal spacing. We propose that there follows a consequential change in the profile of neuronal connections: specifically an enhancement of the tendency towards proportionately more short connections. Thus, the degree of cortical intrinsic curvature may have implications for short-range connectivity. In comparison to shrews, humans have a sixfold increase in cortical thickness, but a 1,700-fold increase in cortical surface area.. 1 This expansion is driven by an increase in the number of functional units, rather than an increase in the complexity of those units, 2 and results in an increase in the degree of folding of the cortex (gyrification) to accommodate a large surface area within the volume of the cranium. At a cellular level, expansion is commensurate with a decrease in neuronal density and an increase in inter-cellular spacing. 3, 4 In this paper we consider the implications of this observation in terms of how differential rates of cortical expansion lead to altered neuronal spacing and connectivity. Given that such differential expansion inevitably leads to intrinsic curvature of the cortical surface, we suggest that, in view of this relationship, measurements of intrinsic curvature may offer insights to small-scale connectivity.. To start, it is worth considering certain principles of cortical connectivity. In diverse systems from C. Elegans, 5 to macaque visual cortex, 6 a distancedependent distribution of connection lengths has been demonstrated: namely a large peak of short connections and a flatter tail representing longer connections. This is essentially the characteristic of small-world architecture, 5,7 which has been repeatedly shown in humans using a range of functional and morphological brain data (fMRI, EEG, cortical thickness, DTI, tract-tracing) at many levels, from brain-wide networks, [8] [9] [10] through to the wiring at a neuronal level. 11 Small-world networks are characterized by densely clustered local connections, in combination with relatively sparse longerrange projections. 5, 7 This type of arrangement is highly efficient, supporting both local specialization, as well as system-wide integration. The distribution of neurons in the cortex is not perfectly crystalline, however if this non-uniform spatial distribution is further augmented in some way, it will lead to an additional increase in the proportion of short-term connections beyond the default preponderance described above, i.e. the distribution of connection lengths is additionally skewed due to the increase in the unevenness of the spatial distribution of neurons. A non-uniform distribution of neurons might arise either as a result of non-uniform neuronal proliferation, or differential surface expansion.. That differential expansion may result in an increase in the proportion of short connections may be explained by considering a simple case of points on a line. As the points undergo first uniform, then differential expansion, we can intuit how the histogram of distances between the points changes. In the case of the former, under uniform expansion, the distance between points remains constant. For example, if the points on the line are evenly spaced, the initial histogram of distances between points will consist of a single bin representing all points. Under uniform expansion the position of the bin will increase along the length-scale, however all points will remain in the same bin. Alternatively if we had the starting case where 50% of points were twice as close together as the rest, the initial histogram of distances would consist of two bins of equal sizes. Under uniform expansion, the position of the bins would change in a consistent way, but their proportions would not be altered.. Now consider the case of non-uniform, or differential expansion. This means that some points expand faster then others, i.e. expansion introduces a variance in to the distance between points. Importantly this variance increases as expansion increases, such that points that expand the fastest will increase the distance between them at a greater rate than points that expand the slowest. For the histogram this means that at the upper-end of the length-scale, there will be fewer and fewer points covering these longer distances. Hence even if we start with a uniform distribution of points, under differential expansion, the histogram of distances between points will become ever-more skewed to shorter distances.. We note that these are general principles of differential expansion. Although we have considered here the straightforward case of expansion of points on a line, the principle may be equally applied to points on a surface. In the next section we consider how differential expansion impacts on cortical morphology with the aim of showing how measures of morphology have implications for underlying connection length distributions.. Differential expansion of a surface may give rise to intrinsic curvature. Intrinsic curvature may be visualized thus: as the surface grows, its tangential expansion may develop in three ways: if a surface patch grows at a uniform rate, the resultant surface will be flat; if the patch has a differential growth component such that its edges develop more slowly than the center, then the resultant surface will be spherical (either concave or convex), otherwise referred to as positively curved; if the edges develop faster than the center, the resultant surface will be saddle-shaped, otherwise referred to as negatively curved 12,13 (see Fig. 1 ). The more extreme the differential growth gradient, the greater the resultant intrinsic curvature. Intrinsic curvature is, as its name suggests, an intrinsic property of the surface itself and cannot be removed from it without tearing or deforming the surface -(think of trying to flatten a football, the intrinsic curvature of its surface means that it cannot be mapped to a surface with a different intrinsic curvature, e.g. a flat plane which has no intrinsic curvature). The cerebral cortex is both intrinsically and extrinsically curved.. 14 Extrinsic curvature (or mean curvature), is curvature that arises from the mechanical folding of the surface, and as such is not a property of the surface itself, but rather of how it is embedded in three-dimensional space. For example, a crumpled piece of paper has many curves in it, but these curves can be removed to restore the paper to its original flat appearance. Thus we can say that the folded paper has extrinsic, but not intrinsic curvature.. The degree of intrinsic curvature is proportional to the degree of differential expansion; bigger differences in expansion across the surface give rise to greater degrees of intrinsic curvature. Differential expansion, if present, increases as expansion increases, i.e. as the magnitude surface area increases. This is analogous to changes in cortical gyrification, which also increase as surface area increases. Importantly, differential (non-uniform) rates of surface expansion, as we have noted above, may give rise to uneven distributions of neurons and an increase in the proportion of short connections. Since it also gives rise to intrinsic curvature, it follows that measures of intrinsic curvature contain information about length distributions of tangential cortical connections. This is the essence of our hypothesis.. Although a mathematical concept, 12 the connection between differential development and intrinsic curvature has previously been established in biological studies. It has been demonstrated that the differential growth of leaves produces intrinsic curvature, 13 while a similar effect was noted in plant roots. 15 However, measurements of cortical intrinsic curvature have not commonly been assessed in structural studies of the brain. This is likely due, in no small part to its subtle nature compared to the rather more striking, and easily measurable, patterns of gyrification and cortical thickness.. One of the first studies to investigate cortical intrinsic curvature was based on a cortical reconstruction of the Talairach atlas, and implicitly confirmed the prevalence of intrinsic curvature by demonstrating that the mean geodesic (smallest path length between two points on a surface, a function of intrinsic curvature) was less than its total surface area would predict.. 2 Other studies explicitly measured the intrinsic curvature of the cortex at a millimeter-scale and showed that it has both negative and positive curvature. 16 More recently, the intrinsic curvature of the cortical surface, again measured at a millimeter-scale, was explicitly rendered, 17 and a qualitative examination of the surface revealed it to be predominantly negatively curved. The average magnitude of intrinsic curvature measure at this scale is about 0.06 mm −2 . This experiment examines the prediction that the human brain should show a greater degree of intrinsic curvature than that of the chimpanzee independent of surface area. This prediction is based on the proposed relationship between intrinsic curvature and tangential cortical connection length distributions, a link based on the premise that differential surface expansion has an impact on each. The approach described unites two separate observations: on the one hand differential rates of tangential surface development introduce intrinsic curvature, with greater rates of differential expansion resulting in higher degrees of curvature. Commensurate with this, differential expansion results in greater disparity of inter-neuronal distances, skewing the length distribution to favor proportionately more short-range cortico-cortical connections. Thus, because differential development affects both the distribution of curvature values and the distribution of tangential connection lengths, we suggest that it is possible to adopt measures of the former as markers of the latter.. More specifically, in the absence of differential development, there will be a certain distribution of connection lengths. As the influence of differential development increases, the original length distribution will be skewed to proportionately more short connections. Here, we compare this imposed skew across species, and make inferences about the relative proportions of short-to-long connections. We highlight that, just as in conventional network analysis, the current method does not quantify absolute connection lengths, but rather the relative difference in the proportions of short connection lengths between humans and chimpanzees. The a priori prediction was that the two species would have distinct connection length distributions, over and above the disparity of magnitude in surface area. We propose that this reflects a difference in cortical architecture, with the larger brains of humans characterized by a more uneven spatial distribution and hence a preponderance of short connections, as well as increased intrinsic curvature. The results of our analysis demonstrate agreement with this prediction.. The interpretation of intrinsic curvature, and its impact on the cortical surface is dependent on the scale at which it is measured. For example, at a gross scale, the shape of the whole brain is quasi-spherical, suggesting a large-scale positive intrinsic curvature, complementing the shape of the cranium. At lower scales, such as the centimeter-scale employed in Ref. 2, or the millimeter-scale in Ref. 17 , the majority of the cortex appears to be negatively curved. We propose that measures of cortical intrinsic curvature at a millimeter-scale may be related to the differential tangential development of cortical connections at that scale. Crucially, when we refer to cortico-cortical connections we mean intrinsic (horizontal) axonal processes that are confined to the cortical grey matter, which can extend up to several millimeters. 38 We do not mean extrinsic (white matter) connections such as U-fibers, or intra and inter hemispheric connections. In other words, the connectivity we refer to is at a mesoscopic scale of a few millimeters and is tangential to the cortical surface. The hypothesis proposed here raises several testable predictions, namely that smaller brains will have less intrinsic curvature than larger brains, and that cortices with higher neuronal density will have less differential growth and hence less intrinsic curvature. This may prove useful in clinical studies where higher neuronal density and decreased neuropil have been linked to diseases such as schizophrenia. 41, 42 Further empirical observations of the extent of horizontal connectivity between species, or indeed in different regions of the brain, would be useful to correlate with our predictions for the morphology of the cortex. For example perceptual effects such as the simultaneous tilt illusion, 43 hypothesized to be a function of horizontal connectivity, should provide an alternative method for generating strong, directional predictions for cortical curvature. The method proposed here, while suitable for whole brain characterization, may also be adapted to a region-of-interest approach. In particular this may be of interest in studies of disrupted connectivity, which is thought to play a role in diseases such as epilepsy, 44 or possibly in neurodevelopmental disorders, where deviant brain growth trajectories have been linked to abnormalities in cortico-cortical connectivity. To summarize, in this study we draw a theoretical link between two prior observations: that differential development of the cortical sheet will have an impact on the lengths of tangential cortical connections, and that this differential development will simultaneously affect local cortical morphology and result in intrinsic curvature. We hypothesized that if cortical intrinsic curvature and the length of tangential cortical connections were in fact related, then measures of the former should be able to distinguish between species in a predictable way, based on the theory that larger brains have proportionately more short connections. We demonstrate that, in keeping with predictions, the human brain in comparison to that of the chimpanzee shows a pattern of intrinsic curvature that is commensurate with a greater preponderance of short-range connections. We believe that this novel approach for the characterization, in vivo, of connectivity in the cortical sheet will be complementary to studies evaluating longer range connections, and may prove useful in identifying and understanding functional abnormalities in patient groups.

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


Load-dependent service queues with application to congestion control in broadband networks We analyze D/G/l and M/G/l queues where the service time for an arrival depends on the amount of work in the system upon arrival. The models are motivated by the bit dropping methods (e.g., [12] ) as a congestion control in broadband networks. The idea there is to reduce packet (cell) transmission time in case of congestion, while maintaining satisfactory quality of service.To study the load-dependent-service queues, we first derive a functional equation that characterizes the response time for an arbitrary arrival. Then, we employ and extend a technique based on Laguerre functions in [8] to solve the equation. A new recursion is developed in this paper, which significantly simplifies and enhances the applicability of the technique, and makes it easy to program on computers. Numerical examples for packetized voice in a broadband network are included. The enhanced technique is also applicable to other communication and computer systems that can be characterized by similar functional equations. In this paper, we analyze a D/G/1 and an M/G/l queue with load-dependent service time. Specifically, the service time for an arrival can be selected from a fixed number of probability distribution functions (PDFs) and the choice of PDF for an arrival depends on the amount of unfinished work in the system upon arrival. For example, when the system has a large amount of work backloged, new arrivals are forced to receive low-grade service (i.e., short service time). To our knowledge, the queueing models with such load-dependent service have not been analyzed previously. Let these models be referred to as the D/G/1 and M/G/1 queue in the following.. These models are motivated by bit dropping methods (e.g., [6] , [ll] , [12] ) used as a congestion control for continuousbit-rate (CBR) traffic in broadband networks. For CBR services such as packetized voice, voice samples of a conversation are taken periodically and transmitted over the communication channel. In case of congestion, the idea of the bit dropping methods is to discard certain portion of the traffic such as the least significant bits of voice samples as a way to "reduce" the transmission time, while maintaining satisfactory quality of service as perceived by end users. An alternative congestion control is to discard certain cells entirely; see e.g., [14] , [3] and [2] . Cell discard is to drop all bits of a cell, and thus can be viewed as a special case of the bit dropping methods.. Bit dropping methods can be classified as input bit dropping (IBD) and output bit dropping (OBD), respectively.. In the IBD, bits may be dropped when the packets are placed in the queue waiting for transmission. In contrast, bits are possibly discarded in the OBD only from a packet being transmitted over the channel. Depending on actual implementation of the bit dropping algorithm, the IBD may be more efficient than the OBD or vice versa. Jn terms of performance analysis, it is natural to use an M / G A / K model with state-dependent service time to study the queue-length distribution and other performance measures for the OBD (e.g., [ll] ). This is so because possible bit dropping occurs only on the packet being transmitted. On the other hand, the same model is not appropriate for analyzing the IBD since the queue length of packets with bits possibly dropped does not adequately represent the actual amount of workload for the communication channel. The models under study in this paper can be used to address such shortcoming.. As multimedia traffic including voice, data and video shares common resources in broadband networks, providing low-grade service by discarding less critical portion of traffic as a congestion-control strategy is increasingly useful. The models studied in this paper will help us understand the performance characteristics of such control strategies.. Queueing models with periodical arrivals are applicable to many communications and computer systems [4] . However, except for well-structured service time distributions, previous analysis techniques for the standard D/G/1 queue often resorted to approximations; see e.g., [13] ( t ) , f , ( t ) and U * ( s ) denote the PDF, the probability density function (pdf) and its Laplace transform (L.T.) of the response time U for an arbitrary arrival. Thus, dropping the subscript n at steady state and taking the L.T. on the left and right-hand sides of (2) yield. By dividing the range of integration in (3) according to (1) for the selection of service-time distribution, we obtain We have analyzed the D/&l and M/c/l queues where the service time for an arrival can be chosen from a number of distribution functions, depending on the amount of work in the system upon arrival. The models are motivated by the bit dropping methods used as a congestion control algorithm for packetized voice in broadband networks. Functional equations for the queueing models are derived. To solve the equations, we employ and enhance a Laguerre-function technique in [8] to compute the performance measures of interest such as response-time distribution, average response time and probability of different grades of service. In particular, a new recursion for the integrations involving Laguerre functions has been derived, which helps us avoid tedious algebraic manipulation required in the original approach, thus significantly simplifying computer implementation of the technique. Numerical examples h y e been presented to demonstrate the potential use of the D/G/1 model to study the average packet delay and the probability of bit dropping for packetized voice service in a broadband network. (Certainly, the same approach can also be applied to study effects of bit dropping for video traffic.). With the new recursion for integrations involving Laguerre functions, the enhanced approach is much ampable to c_omputer programming. Thus, in addition to the D/G/land M/G/l models, we expect that the technique can be applied to analyze other communication and computer systems that can be characterized by functional equations similar to those derived in this paper. For example, we are exploring to use the technique to analyze the superposition of multiple deterministic arrivals for packetized voice [ 101. Furthermore, it is also possible to extend the technique for bursty arrival processes such as the Markov modulated Poisson process (MMPP), which has been commonly used to study traffic and performance issues for B-ISDN. In this case, one distribution function as approximated by a weighted sum of Laguerre functions may be needed for each state of the MMPP. As a step further, since jitter delay for CBR traffic in ATM networks is often studied by a D+MMPP/D/l queue, the Laguerre approach may also be applicable to provide exact characterization of the jitter.

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


The dissemination of knowledge management Our study on a community of knowledge management (KM) practitioners in the aerospace industry reveals challenges in the dissemination of KM concepts and tools. In this paper, we identify four reasons: (1) disparity of the community's stated purpose and the actual motives of its members; (2) multidisciplinary nature of KM; (3) unique characteristics of the aerospace industry and its engineering culture and (4) adoption of preferred or recommended solutions provided by chosen reference groups rather than a grounded approach. In particular, we address the issues in promoting recommended ideas and tools by chosen reference groups in work organizations without fully understanding work practices. For the past three years, we have studied a community of knowledge management (KM) practitioners in the aerospace industry [33, 37] . They physically meet at their quarterly forum, the KM Exchange, to discuss their KM practices with others in the field. Our ethnographic investigation reveals numerous challenges these practitioners encountered in their respective work organizations while promoting KM. The ultimate goal of the practitioner is to spread KM in their work organizations until it is embedded in the organization. One senior practitioner expressed his wish of what KM should become: "My ultimate goal is … when you walk into our company, you cannot find the word KM because it's all embedded" [33] . Moreover, we learned that practitioners genuinely believed KM was crucial for the success of their organizations. We pose the following question: why do practitioners face difficulties in disseminating KM despite their wishes and beliefs? Our aim in this paper is to expand on our past work and focus on the reasons for the practitioners' continuous hardships in disseminating KM.. Our first study [33] on the KM practitioners' discourse revealed that despite the motivation to cultivate a community of practice for learning KM techniques, this forum instead became primarily a hub for legitimizing the KM discipline itself. Practitioners sought out a place for affirmation, validation and legitimization of their KM practices and for sharing their pain. For example, informants often noted that KM was relegated to a small team in a large company that had to face uphill battles against the prevailing aerospace engineering culture. One strategy they utilized was to promote their KM tools and practices as being "progressive.". Thus, a community can be far different from Lave & Wenger's [16] communities of practice (CoP) model. The CoP model stresses that learning occurs among members through "legitimate peripheral participation." Moreover, our analysis [33] of the practitioners' discourse identified three central and recurrent themes: (1) KM makes effective use of knowledge by capturing and reusing it (knowledge is objectified); (2) practitioners and their tools and practices are more progressive compared to other fields and (3) KM is misunderstood within their work organizations or people simply do not understand what KM is.. Alluding to the notion of social worlds explicated by Strauss [30] , our second study [37] explored the power relationships among the KM Exchange members and, in particular, the role of the senior members. We argued that power relationships existing in one's respective workplaces can be transferred and mirrored in a new community and consequently impact the boundaries of the community, its knowledge sharing practices among the members and its institutionalized beliefs within the community. We surmise that this community, despite its stated purpose of equally sharing knowledge is in fact influenced by the activities of the members in their respective work organizations.. Building upon our previous studies, in this paper we examine the four reasons practitioners must deal with challenges in disseminating KM in the aerospace engineering settings (when we state "dissemination of KM," we imply dissemination of KM concepts, such as knowledge reuse and knowledge sharing, and KM tools). These reasons are (1) disparity of the community's stated purpose and the actual motives of the members for attending the community meetings; (2) multidisciplinary nature of KM; (3) unique characteristics of the aerospace industry and its engineering culture and (4) preferred or recommended solutions provided by chosen reference groups.. Our paper is structured as follows: in section two, we present the field sites and research methods; in sections three to six, we provide the background and analysis on our four reasons; in section seven, drawing on Orr's [24] ethnographic fieldwork of the community of copier technicians, we address the importance of understanding the work practice of users (i.e. aerospace engineers) rather than relying on solutions advocated by reference groups. Although we acknowledge that our ethnographic inquiry on the community of aerospace KM practitioners is somewhat limited in scope, we believe our study will have broader implications on the dissemination of concepts and tools in workplaces. We learned that a community can be considerably more complex than Lave and Wenger's ideal CoP model. First, a community can exist for purposes other than learning through participation. The KM Exchange partially existed for affirmation, validation and legitimization of KM in their respective work organizations [33] . The members learned not only KM techniques, but also how to legitimize KM at their workplaces. Second, a community is not a static entity, completely independent from others. It transforms through interactions with other groups [37] , including their reference groups, and actions within the community itself.. We identified four factors that impacted the dissemination of KM at workplaces: (1) the disparity of the KM Exchange's stated purpose and the members' actual motives for attending meetings; (2) the multidisciplinary nature of KM; (3) the aerospace industry and its engineering culture and (4) the use of recommended solutions by chosen reference groups rather than a grounded approach.. Throughout our field study, we learned about the challenges the practitioners experienced while promoting KM at their work organizations in the aerospace industry. We argue that technology promoters need to understand the work practice of their usersnamely, how they create, transfer and reuse knowledge. Ultimately, any technology promoter who attempts to disseminate their ideas and tools outside of their group into a large enterprise, such as aerospace organizations, may experience similar problems. We hope that our fieldwork on this community of KM practitioners in the aerospace industry will shed light on the role of a community, their reference groups and their impact on the dissemination of their tools and ideas in research and practice. In the previous sections, we examined the reasons why the practitioners experienced difficulties in disseminating KM within the aerospace industry. The field data had us question how this community helped the members spread KM in their workplaces. It surprised us that, despite the majority of the members' beliefs that KM is crucial for their organizations, practical solutions to their KM problems were not frequently brought to the forefront at their meetings. This was even more puzzling as practitioners mentioned in our interviews that they were continuously challenged while promoting KM in their workplaces.. At the quarterly meetings, we observed that the members rarely provided practical solutions for these KM obstacles. Rather, the discussions at the meetings were sometimes reduced to simplistic analyses and solutions. The community developed prevailing uniform beliefs on KM which newcomers often accepted without questioning. Some of the beliefs institutionalized through senior members [37] included the potential knowledge drainage due to the large retiring workforce and the importance of a sharing culture to disseminate KM. Yet, some beliefs were built without sufficient supporting evidence. For instance, when the members discussed the retiring workforce issue, they did not usually distinguish any critical groups among retiring engineers. Apparently, certain groups of engineers have more established methods to codify their knowledge and, in certain engineering fields, the rate of technology advancement is greater; therefore, the loss of knowledge from retiring engineers is not considered so critical to the organization. Rather, their argument was that the workforce in the aerospace industry was aging; hence, the industry would face a serious knowledge drainage problem.. It appeared to us that some of the practitioners hastily grabbed preferred or recommended solutions chosen by the reference groups, such as the APQC, without fully understanding the complexities of the problems in the aerospace industry or the work practices of aerospace engineers. For instance, some practitioners were ready to promote cutting-edge tools that were recommended by their reference groups without thorough investigation of whether these tools would fit well in their work settings. It appeared they were sometimes caught up in the novel characteristics of the tools. For instance one practitioner told us that his project for developing a "knowledge repository system" for specifications, manuals and briefings and lessons learned was scrapped when they realized during the midst of development that the size of his company is too large for such a system to handle.. In this paper, we noted these KM practitioners promote KM to aerospace engineers, scientists and other employees in the aerospace organization. Yet, work practices of aerospace engineers are not well known. Compared to the study of scientists and their communities, there have been few studies regarding engineers and their communities [14] . The views widely held by the public are that engineering is fundamentally the application of scientific principles [4] . Another prevailing public view on engineering is that technical knowledge is precise, objective and rule-following [34] . However, engineering work cannot be simply characterized as "solid" or "cold and unemotional" as some practitioners remarked. Aerospace engineers work in unique work environments. As their job titles vary (e.g. real time software engineer, flight engineer, materials engineer), their work practices and knowledge seeking behaviors vary. It is crucial to recognize the difference among different types of engineers when we attempt to understand knowledge production, use and transfer behaviors [14] . The lack of attention to diversities in engineering types and activities has contributed to the lack of an effective aerospace knowledge diffusion system [14] .. The knowledge seeking behaviors of aerospace engineers have not been well studied. The knowledge usage of engineers and scientists are significantly different. While scientists use knowledge to produce new knowledge, engineers use knowledge to help make decisions to solve a particular problem [14] . Engineers are "inward" people who work for their employers whereas scientists are "outward" people who are expected to share their knowledge among the members of an "invisible university." While aerospace engineers work in the bureaucratic work organizations, they also form informal engineering communities as they become involved in the design and development of particular aerospace products. These informal communities are crucial for knowledge creation and transfer [35] .. There is a profusion of success stories that demonstrate time and money saved using KM in KM practitioner books. One such success story is Xerox's Eureka project. The Eureka database was designed based on the ethnographic fieldwork of a community of copier technicians [24] . "War stories" told by expert technicians at breakfast gatherings and next to troublesome copy machines were codified in the Eureka database so other copier technicians outside of the region might benefit. It is questionable whether the Eureka project was actually as successful as the KM literature raves about [3, 25] . Nevertheless, Orr's ethnographic study using a "thick description" of Xerox technicians' work brought a valuable lesson. Work practice is different from work described by management. Also, a large body of CSCW work during the same period, drawing from ethnomethodology's [e.g., 7,9] study of the mundane, confirmed that in the daily work of various occupations, people work differently from what is expected.. As Orr [24] argues convincingly, we relate "work" to "being employed" rather than "work practice." Work practices are not generally well understood by people outside of the occupation and profession. While work practices have remained in the "black box," technology promoters in various fields often offer advice and encourage new concepts or tools to users whose work practice are unfamiliar to the promoters. They guard their tools and concepts with recommendations by their chosen reference groups. We argue that technology promoters need to better understand work practices of their users in order to disseminate tools and concepts.

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