Tdb: A Source-level Debugger for Dynamically Translated Programs

Size: px
Start display at page:

Download "Tdb: A Source-level Debugger for Dynamically Translated Programs"

Transcription

1 Tdb: A Sorce-level Debgger for Dynamically Translated Programs Naveen Kmar, Brce R. Childers, and Mary Lo Soffa Department of Compter Science University of Pittsbrgh Pittsbrgh, Pennsylvania {naveen, childers@cs.pitt.ed Department of Compter Science University of Virginia Charlottesville, Virginia soffa@cs.virginia.ed Abstract Debgging techniqes have evolved over the years in response to changes in programming langages, implementation techniqes, and ser needs. A new type of implementation vehicle for software has emerged that, once again, reqires new debgging techniqes. Software dynamic translation (SDT) has received mch attention de to compelling applications of the technology, inclding software secrity checking, binary translation, and dynamic optimization. Using SDT, program code changes dynamically, and ths, debgging techniqes developed for statically generated code cannot be sed to debg these applications. In this paper, we describe a new debg architectre for applications execting with SDT systems. The architectre provides featres that create the illsion that the sorce program is being debgged, while allowing the SDT system to modify the execting code. We incorporated this architectre in a new tool, called tdb, that integrates a SDT system, Strata, with a widely sed debgger, gdb. We evalated tdb in the context of a code secrity checker. The reslts show that a dynamically program can be debgged at the sorce level and that the approach does not overly increase the rn-time performance or memory demands of the debgger. Categories and Sbject Descriptors D.2.5. [Software Engineering]: Testing and Debgging Debgging aids; D.3.3. [Programming Langages]: Langage Constrcts and Featres Program instrmentation, rn-time environments General Terms Langages, Performance, Algorithms Keywords Debgging, Dynamic Binary Translation, Dynamic Instrmentation 1 Introdction Althogh the importance of debgging techniqes to assist sers in finding software bgs has long been recognized, new debgging techniqes contine to be needed as programming langages, ser demands, and implementation strategies change. The goal of a debgger is to accrately respond to ser qeries and commands Permission to make digital or hard copies of all or part of this work for personal or classroom se is granted withot fee provided that copies are not made or distribted for profit or commercial advantage and that copies bear this notice and the fll citation on the first page. To copy otherwise, or repblish, to post on servers or to redistribte to lists, reqires prior specific permission and/or a fee. AADEBUG 05, September 19 21, 2005, Monterey, California, USA. Copyright 2005 ACM /05/0009$5.00. from the viewpoint of the sorce program. Debgging activities inclde reqesting variable vales, single stepping throgh program exection, watching for particlar conditions and reqests to add and remove breakpoints. In order to respond, the debgger has to map the vales and statements that the ser expects sing the sorce program viewpoint, to the actal vales and locations of the statements as fond in the exectable program. As programming langages have evolved, new debgging techniqes have been developed. For example, checkpointing and time stamping techniqes have been developed for langages with concrrent constrcts [6,19,30]. The pervasive se of code optimizations to improve performance has necessitated techniqes that can respond to qeries even thogh the optimization may have changed the nmber of statement instances and the order of exection [15,25,29]. Crrently, a new implementation vehicle, software dynamic translation (SDT), is being increasingly sed for important applications, inclding software secrity [17,22], dynamic code optimization [1,2,4], binary translation of one instrction set to another [10,11,12,23], host machine virtalization [28], and compter architectre simlation [8,28]. A SDT system translates (generates) target code fragments/traces dynamically and stores the generated code in a fragment cache from which it exectes. Trampoline code is pt in the code to switch between the fragment cache and the dynamic translator for code generation. A SDT system may also insert instrmentation code into a program to gather rn-time information and monitor program behavior. The motivation to debg dynamically programs arises from two sorces. First, some environments may have a dynamic translator tightly integrated with the host machine sch that all applications mst be before exection. Therefore, a developer may not have the lxry of debgging the application withot dynamic translation. Secrity systems enforcing secrity policies by checking an application s binary code fall in this category [5]. Secondly, SDT systems may reslt in code transformations that expose bgs that are not manifested in the absence of the transformation. An example in this category is a dynamic optimizer [1,2,4]. SDT creates problems in debgging that cannot be solved by crrent techniqes. In particlar, debggers targeted for statically generated code prodce debg information at compile-time. The debg information consists of mappings that can be sed to relate sorce code and data to the exectable. Since the target code is generated dynamically, this static debg information for relating the code statements and data vales to the execting code, is insfficient. Another problem is that a statement can be modified dring exection, or a statement may be several times sch that the nmber of statement instances can change throghot exection. Yet another problem that crrent techniqes cannot handle is a ser may pt a breakpoint, sing the sorce program, in code that has not been yet. Solving 123

2 these problems reqires techniqes that can relate the sorce code to the execting code, as the code is dynamically generated and modified. In SDT systems, the trampoline code, as well as instrmentation code, is exected as part of the application code. However, this code shold be transparent to the ser debgging the application. Similarly, the translation actions shold also be hidden from debg sers. Therefore, debgging techniqes need to be developed that hide exection of everything that is nrelated to sorce code. Finally, de to both the growing importance of SDT and the difficlty of developing SDT systems, several frameworks, inclding Strata [21], Dynamo/RIO [4], and Walkabot [7], have attempted to enable dynamic translator reconfigrability and retargetability to ease the brden of SDT development. As a reslt, the SDT system can easily be targeted to a different SDT application or machine platform. Hence, there is a strong need to decople the debgger as mch from the SDT system as possible, so that debgging capabilities can be qickly realized for a new SDT system. In this paper, we present a new debg architectre for SDT systems that achieves transparency while spporting the sal sorcelevel debg qeries inclding step, watch, and set and remove breakpoints. The debg architectre also provides necessary decopling between the SDT system and the debgger. This paper provides a reference implementation of the debg architectre. The dynamic code changes that we consider reslt from basic translations, overhead redction transformations, and dynamic instrmentation. The basic dynamic translations inclde generating a new instrction, inserting mltiple instrctions for a single program statement dring translation, ignoring and not generating instrctions for a program statement, deletion (flshing) of previosly instrctions, and the dplication of program instrctions in the code. We also consider several overhead redction transformations, inclding instrction trace formation, conditional branch linking, indirect branch translation caching, partial inlining of nconditional branches and calls, and fast retrn handling [21]. Finally, we consider the effect of insertion and removal of instrmentation in the code. To demonstrate the effectiveness of or techniqes, we developed a new debgger, tdb, based on or debg architectre. Tdb extends the GNU gdb debgger and spports all of gdb s sorcelevel commands and qeries. We integrated the SDT framework Strata [21] into the debg architectre and evalated the debgging capabilities in the context of a software secrity checker. This paper makes a nmber of contribtions, inclding: A debg architectre that enables sorce-level debgging for dynamically programs and an implementation of this architectre in a new tool, tdb; An interface that enables SDT debgging tools to be easily written withot regard to machine specific details and SDT system specific details; An interface that enables existing debggers to be easily extended to spport dynamically programs; Debg techniqes that provide sorce-level transparency even thogh instrmentation and trampoline code are exected as part of the application code; Debg techniqes that handle the dynamic transformations that are sed to redce translation overhead by avoiding context switches; and, A verification and experimental evalation that shows or approach works well and has minimal overhead. In the next section, we describe backgrond and the challenges of debgging dynamically programs. Section 3 describes an overview of or debg architectre. Section 4 describes the components and interfaces in the debg architectre, inclding techniqes for generating and sing debg information, for a basic SDT system. Section 5 describes the generation of debg information for a more complex SDT system. Validation and experimental Context Captre New PC Context Switch Application Binary Dynamic Translator Cached? Finished? OS CPU New Fragment Fetch Decode Translate Next PC Figre 1: A software dynamic translator reslts of tdb are presented in Section 6. Finally, Section 7 describes related work and Section 8 smmarizes and concldes with ftre work. 2 Backgrond Debggers se breakpoints to enable a ser to nderstand and control a program, inclding pasing and stepping throgh exection and inspecting and modifying data vales. To answer sorce-level qeries, a debgger maps a program s sorce code to its binary exectable instrctions and data locations sing information provided by the compiler. A debgger s job is difficlt when programs are modified dynamically becase information provided by the compiler can become inconsistent with the code modifications. A SDT is an exection environment that changes code dynamically. A basic SDT system, shown in Figre 1, is a software layer between the application and the nderlying operating system. Ths, given an application s sorce program, a compiler first generates some type of code, inclding binary or a higher level representation sch as byte code. This code, which we call code, is then by the SDT to a binary exectable. Translated instrctions are held in a software cache, called the fragment cache. The cache holds code fragments (or instrction traces), which are instrction seqences that execte seqentially, ending with a conditional or indirect control transfer. The working of a SDT system is shown in Figre 1. A SDT system first captres the context of an application (e.g., PC, registers and condition codes) and saves it. Following context captre, the SDT system processes the sbseqent application code to be exected.the SDT system checks to see whether the code to be exected has been previosly and cached. If yes, a context switch restores the application context and begins execting application instrctions on the host CPU. If the code is not cached, the instrctions are fetched and one-by-one. When an instrction is, it is placed in a fragment within the fragment cache. Instrctions are ntil an end of fragment condition is encontered (e.g., a branch or an indirect jmp). A control transfer that terminates a fragment retrns control to the SDT layer throgh a trampoline becase the code at the control transfer s target may not have been yet. When translation of a fragment is complete, the SDT layer performs a context switch to the code cache for exection. Ths, the dynamic translator gets control after each fragment exectes to translate sbseqent fragments. Becase the SDT layer exectes different code than the code, the sorce-to-binary debg mappings maintained with static information are insfficient by themselves for debgging code. As an example, consider a simple translation that copies a binary instrction from the code to exactly one location in the fragment cache. We assme that the mappings from sorce to code are available from the compiler. Dring a debg session, when a ser places a break- 124

3 point at a sorce program instrction, the debgger cannot locate the instrction where the breakpoint shold actally be placed becase of the translation. One complexity of debgging an application exected with SDT involves the translation of a branch. A branch is handled with a trampoline that is sed to re-invoke the dynamic translator to translate the branch s actal target fragment(s). In a debg session, the location of the sorce branch is mapped to the branch; however, the exectable branch instrction has changed which can affect the reportability of debg qeries. When debgging a dynamically modified program with a traditional debgger, the ser has to be aware of the trampoline code and the sbseqent entry into the translator. Ths, if a ser isses a next command, he/she has to be aware that the stopping point may be the trampoline code. Another problem occrs when the translator deletes a instrction, reorders instrctions, or introdces more instances of an instrction than were in the code. Also, the nmber of instrction instances may change dring exection. In these cases, the debgger has to detect the correct instrction instance being exected. Another case happens when the dynamic translator flshes the fragment cache to free space. The debgger needs to recognize that the debg information for the flshed instrctions are no longer in effect. Even more challenging is when the translator applies overhead redction transformations. Most dynamic translators se several overhead redction transformations to avoid context switches between the dynamic translator and the code cache, inclding fragment linking, indirect branch translation caching and chaining, instrction trace formation, fast retrn handling, and partial inlining of target blocks for nconditional control transfers [2,4,11,21]. Fragment linking rewrites conditional branches to avoid invoking the dynamic translator when the code at the actal target of a branch is already. Linking two fragments reqires rewriting the existing branch to directly transfer control to the target (ths, by-passing trampoline code). If the debgger is naware of this code transformation, then it may report incorrect information abot the branch or the trampoline code. Similarly, instrctions are emitted to minimize the contextswitches into the SDT system from fragments with indirect branches [2,21]. Another overhead redction techniqe forms instrction traces, chains of code fragments, to improve cache locality and simplify branch handling. An instrction trace can be, for example, a seqence of instrctions on a hot path. Instrction traces present a challenge for a debgger becase the traces change at rn-time and incr code dplication, code flshes from the fragment cache, branch inversions and fragment linking. The debgger mst pdate its knowledge of dplication, flshes, and dynamic linking and keep these modifications transparent from the ser. The other overhead redction techniqes and dynamic instrmentation also perform code modifications that need to be tracked by the debgger. 3 Overview of the SDT Debg Architectre In this section, we describe a debg architectre that can be sed for sorce-level debgging of dynamically programs. The strctre of this architectre is shown in Figre 2. The debg architectre has three components: a SDT system, a native debgger and a debg engine. The arrows in the figre represent the invocation of one component (or an action in a repository) by another component. For example, the arrow between the native debgger and the mapper denotes initiation of operations in the mapper. The debg engine is the key component of the debg architectre, which comptes debg information at rn-time. This information is sed to hide code generation and modification in the SDT system from the native debgger. Mapping Repository Mapping Generator translation operations mapaddress writevale Dynamic Translator Native Debgger Mapper inser/delete breakpoint exceptioncallback Breakpoint Manager read/write exception Fragment Cache Breakpoint Repository DEBUG ENGINE Figre 2: SDT Debg Architectre The native debgger is similar to a conventional debgger, except that it performs debg actions by targeting the debg engine, rather than the execting program. For example, if a ser sets a breakpoint at a sorce location, the native debgger comptes the corresponding location (binary or bytecode) and notifies the debg engine to set a breakpoint at that location. This is in contrast to the traditional scenario in which the debgger wold itself set the breakpoint. The SDT system is minimally altered to commnicate the translation operations to the debg engine. The architectre does not impose restrictions on the SDT system, sch as transformations that shold not be performed in a debg session. The application being debgged needs to be compiled with the static debg flag trned on, as is traditionally done to debg at sorce level. The debg architectre does not reqire any other changes to theprogram. Debg Engine. The debg engine consists of three components: a mapping generator, a mapper, and a breakpoint manager, and two repositories, the mapping repository and the breakpoint repository. The components and repositories are shown in Figre 2. The mapping generator comptes debg information, consisting of dynamic debg mappings, to relate sorce program locations to program locations and the vice-versa. It ses information provided by the SDT system for generating and pdating mappings. The mappings are stored in the mapping repository. The mapper ses the debg information from the generator to map and code. The otpt of the mappings can be sed by either the native debgger or the SDT system. The mapper also interacts with the breakpoint manager to determine if a breakpoint needs to be placed in freshly code. The breakpoint manager keeps track of all active breakpoints (and watchpoints) for the execting program in the breakpoint repository. The native debgger commnicates information abot the breakpoints to the breakpoint manager. The breakpoint manager is responsible for inserting breakpoints in code. When breakpoints are hit in the code, the breakpoint manager is notified. To nderstand the flow of information throgh the debg engine, consider a typical debg session when a ser tries to insert a breakpoint at a sorce location. The native debgger comptes the corresponding program location and invokes the breakpoint manager. The breakpoint manager conslts the mapper to determine the corresponding locations and inserts breakpoints at each of these locations. The breakpoint manager also saves the breakpoint information in the breakpoint repository. When a breakpoint is hit in code, an exception is raised which is handled by the breakpoint manager. This handler 125

4 overrides the exception handler in the native debgger. The breakpoint manager invokes the mapper, which then ses the mapping repository to determine corresponding location. The location is passed to the native debgger with the information that a breakpoint has jst been hit at that location. 4 The Debg Engine This section describes how the debg engine orchestrates information flow between the native debgger and the SDT system. We first discss how mappings are generated. Then, we discss how the mapper and the breakpoint manager se the mappings to enable debg qeries and actions. 4.1 Generating Debg Mappings The mapping generator ses information received from the SDT system to compte debg mappings. It stores the mappings in the mapping repository. The debg architectre does not specify how the mappings are stored in the repository. The commnication from the SDT system to the mapping generator is performed throgh a set of API s, shown in Table 1. SDT systems may perform a nmber of different transformations on the generated code. For example, a dynamic optimizer may reorder statements [2]. The nmber of transformation operations performed dring dynamic translation is diverse and depends on the prpose of translation, sch as optimization, secrity checks, or binary translation, among others. While describing the API s for all of these operations is ot of scope for this paper, we discss the API s for operations performed by a basic SDT system. A basic SDT system generates code, one fragment at a time (as shown in Figre 1). There are five basic translation operations that are done in a SDT system. Other operations can be handled similarly or sing a combination of these operations. A reglar operation corresponds to the translation of one instrction to another. An API, as shown in the first row of Table 1, is sed to describe this operation. In this API, is the location, t is the location, the operation type is reglar, and the transformation is applied on code, as opposed to data. operation reglar delete many flsh trampoline API reglar(loc, Loc t, Trans code) delete(loc, Loc t, Trans code) many(loc, Loc t, Trans code) flsh(loc t, Trans code) trampoline(loc, Loc t 1, Loc t 2, Trans code) Table 1: API s for different translation operations A delete operation happens when an instrction does not reslt in any code (i.e., the instrction is deleted becase it is eliminated in the fragment cache). The second row in Table 1 shows an API that describes this operation. In this API,, represents location, t represents the location for the next instrction to be (e.g., statement location +1), the operation is delete, and the transformation is applied to code. A many operation involves an instrction that is into mltiple new instrctions. An API for this operation is shown in the third row of Table 1, which describes the case when translation of a statement leads to generation of two statements. In this example, represents the location and t is the location for the additional statement. A flsh operation evicts instrctions from the fragment cache. The API shown in the forth row of Table 1 can be sed to describe a flsh operation, in which t is a location containing the statement being flshed. Finally, a trampoline operation handles control transfers that reslt in trampoline code that transfers control from one location to another. The last row of Table 1 shows an API for a trampoline operation, in which is the branch location and t 1 and t 2 are the not-taken and taken trampoline locations. Operations that affect the location of data-vales, sch as those reslting from statement reordering in a dynamic optimizer, can be described in a similar way. Sch operations are not shown in this paper, althogh the debg architectre described above can be sed to generate debg information for these operations Dynamic Debg Mappings Before we describe the generation and pdate of mappings, we discss the different categories of mappings that are sed for debgging applications by a basic SDT system. For brevity, we do not make a distinction between an instrction and its location and se the term instrction to refer to its instrction location in the following discssion. There are for types of debg mappings: Un-to- code mapping (U-T): This mapping relates code to code. It is bidirectional; i.e., given an instrction, a corresponding instrction can be fond, and given a instrction, a corresponding instrction can be fond. A U-T mapping is notationally shown as D, where is the statement location and D is a set of locations. Translated-to- code mapping (T-T): This type relates instrctions to instrctions. It is sed when a dynamic code modification reslts in several new instrctions for one instrction. A T-T mapping is nidirectional and shown as t 1 {t 2, where t 1 and t 2 are instrctions. Translated-to- code mapping (T-U): This type relates a instrction to an instrction in the code. It is sed to map instrctions in the fragment cache that do not have a direct relationship to instrctions (e.g., as in trampoline code). This mapping is nidirectional and shown as t {, where t is a location and is a location in the code. Initially, before an statement,, is, it has the defalt U-T mapping,. Dring translation, an instrction s U-T mappings are pdated and T-T and T-U mappings are generated/pdated. An pdate modifies the destinations of a mapping. The dynamic debg mappings are generated/pdated differently based on how the code is dynamically transformed. For example, a translation of an instrction into another instrction reslts in pdate of a single U-T mapping, while the translation of an instrction to two instrctions cases the pdate of a U-T mapping and the generation of a new T-T mapping. Side effects that reslt from translation, sch as a fragment cache flsh also generate and pdate mappings Basic Translation Operations The mapping algorithms for the five basic translation operations, shown in Table 1, are described below. For each operation, an algorithm is sed to pdate and generate the dynamic mappings. In the algorithms, a mapping for a program or instrction is represented as <s>, where <s>=s R (or <s>= s R), s is an instrction and R is a set of destination instrction(s). For notational convenience, * is the set of destinations for a mapping (e.g., if <s>=s R in a U-T mapping, then *=R). The symbol is an instrction location and the symbol t is a location in the fragment cache. The normal set operators, sch as nion and difference, can be applied to the mappings. 126

5 Reglar. For this operation, the mapping generator pdates a U-T mapping for a program instrction as shown in Figre 3(a). Consider an location that is to a new location t. In this case, the U-T mapping <> is pdated to inclde the new destination t in s set of destinations (*). Figre 3(b) shows this mapping between the program instrction and location t 1. reglar(loc, Loc t, Trans code) { <> = * {t (a) Algorithm New mappings (solid lines) U-T: {t Note: is program instr. and t is the instr. (b) Example Figre 3: Reglar Operation Delete. The delete operation is shown in Figre 4(a). In this case, the U-T mapping <> for a deleted program instrction is pdated to map it to the next location t. The translation of the next logical program instrction will also be mapped to t. Hence, when a program instrction is deleted, the mapping generator maps it to the location of the following program instrction as shown in Figre 4(b). Here, is deleted and is mapped to the instrction, t, for +1. delete(loc, Loc t, Trans code) { // t is the next location and // is different than t in reglar oper. <> = * {t (a) Algorithm New mappings (solid lines) U-T: {t Note: is deleted program instr. +1 and t is the instr. for instr. +1. (b) Example Figre 4: Delete Operation Many. A translation that prodces more than one instrction ses the many operation in Figre 5(a). A T-T mapping is generated for each instrction in the seqence that does not have a corresponding location in the code. For example, if an instrction at location is into instrctions at locations t 1, t 2, and t 3, then a T-T mapping is generated for t 2 and t 3 with many(, t 2 ) and many(, t 3 ). A T-T mapping is not generated for t 1 becase the operation reglar(, t 1 ) is sed to pdate s mapping to have location t 1 as a destination. In effect, many maps the additional instrctions t 2 and t 3 to the location of the next program instrction. If the next instrction is +1, then t 2 and t 3 have mappings t 2 {(+1) and t 3 {(+1), where () gives the location of an program address. Figre 5(b) shows this case where t 2 and t 3 have been mapped to instrction, t 4, for the next logical program instrction, In the figres, a solid line shows the new mappings that reslt from the mapping algorithms. t t many(loc, Loc t, Trans code) { // t is an additional instrction; e.g., // t2 or t3 in the example (b) if (instrction() is not a branch) <t> = t {(+1) else <t> = t {Targets() New mappings (solid lines) T-T: t 2 {t 4, t 3 {t 4 (a) Algorithm (b) Example Figre 5: Many Operation Becase may be a branch, the instrctions may have two possible next logical program instrctions (i.e., the taken and not taken targets of the branch at ). Hence, when is a branch with taken and not-taken targets, +1 and +2, then t 2 and t 3 have mappings t 2 {(+1),(+2) and t 3 {(+1),(+2). In the algorithm, the many operation ses Targets() to get the set with the taken and not taken locations. The algorithm can be easily extended to the case when the branch targets are not yet : they can be handled by pdating the mappings when a target block is actally (in a way similar to backpatching, except the mappings are patched). The many operation can also be implemented sing T-U mappings, however it is more efficient to se the T-T mappings. Flsh. When a instrction is removed from the fragment cache (de to cache overflow, self-modifying code, or dynamically linked libraries), the flsh operation in Figre 6 is sed. When an instrction at location t is deleted, all mappings with t as a sorce or destination are modified. If t is in the set of destinations for a U-T or T-T mapping, then the destination sets are pdated by removing t. For mappings with t as a sorce, the destination set is set to, effectively deleting the mapping <t>. flsh(loc t, Trans code) { <> t = destination(<>) <> = * - {t <t 1 > t = destination(<t 1 >) <t 1 > = t 1 * - {t <t> = t Ø Figre 6: Flsh Operation Trampoline. The trampoline operation in Figre 7(a) is sed to generate T-U mappings for each instrction in a trampoline. For a location t in the trampoline, a mapping is generated from t to the trampoline s target (i.e., the code). In the algorithm, t 1 is a not-taken trampoline location and t 2 is a taken trampoline location. If the branch is nconditional, then only one trampoline will be generated and only one mapping will be formed. An example for the not-taken and taken trampolines is shown in Figre 7(b). Here, instrction is the branch and t is the branch at the end of the fragment. When the branch is not taken, control falls throgh to the not-taken trampoline at t 1. Hence, there is a mapping from t 1 to +1, which is the fallthrogh location in the program. Similarly, when the branch at is taken, control is transferred to t 2, which is mapped to +n (the taken target of ). If the trampoline consists of several instrctions, mappings will be generated for all of them sing the trampoline operator. +1 t 1 t 2 t 3 t 4 127

6 trampoline(loc, Loc t 1, Loc t 2, Trans code){ <t 1 > = t 1 {nottaken() <t 2 > = t 2 {taken() (a) Algorithm New mappings (solid lines) T-U: t 1 {+1, t 2 {+n 4.2 Using Mappings for Debg Qeries The native debgger commnicates debg qeries and actions to the debg engine. The API s are shown in Table 2. The debg engine ses mappings from the mapping repository to implement these qeries and actions on the code. A write operation is sed by the native debgger to write a vale into the program. All writes in the native debgger are overloaded in or debg architectre to instead call the write API. The API is shown in the first row of Table 2. In this API, represents the location to be written to; v represents the vale to be written; and s represents the size of data. Note that the location may be a memory location as well as a register. The mapaddress operation is sed by the native debgger to reqest a location for an location. Any debg action sing locations in the native debgger are overloaded in or debg architectre to call the API shown in the second row of Table 2. The address in the API call is the location. The insertbreakpoint and removebreakpoint operations are sed to insert and remove breakpoints in the code. The API s for inserting and removing breakpoints are shown in the last two rows of Table 2. In the API s, represents an location and t represents the type of breakpoint (e.g., breakpoint or watchpoint). operation (b) Example Figre 7: Trampoline Operation API write write(address, Vale v, Size s) mapaddress mapaddress(address ) insertbreakpoint insertbreakpoint(address, Type t) removebreakpoint removebreakpoint(address, Type t) Table 2: API s for different debg operations +1 +n t t 1 t 2 For each of the operations described above, the debg engine ses mappings in the mapping repository to determine code associations and implement debg actions. We now describe how debg qeries and actions can be implemented with or debg architectre. Set Breakpoint. A ser can place a breakpoint at a particlar sorce statement or a fnction call. To find where the breakpoint shold be placed, a traditional debgger ses the program s static symbol information and maps the sorce statement to the generated () code. When the breakpoint is hit at rn-time, control is transferred to the debgger, which sspends the program s exection. The ser can then set/delete breakpoints, modify program state, single step, or contine exection. For dynamically code, the native debgger maps sorce statements to code, sing the U-T mappings, and passes this information to the breakpoint manager. The breakpoint manager stores the breakpoint information in the breakpoint repository and invokes the mapper to determine corresponding locations. The breakpoint manager then inserts breakpoints at each of the locations. When new code is by the SDT system, mappings are generated and stored in the mapping repository. The mapper passes the information abot newly generated code to the breakpoint manager. The breakpoint manager looks p the breakpoint repository to determine if breakpoints need to be placed in freshly code. If so, the breakpoint manager inserts reqisite breakpoints. When a breakpoint is hit and an exception is raised in the code, it is handled by the breakpoint manager. The breakpoint manager ses the mapper to determine the corresponding location for the breakpoint location. This location is then passed to the native debgger for frther debg actions. Remove Breakpoint. This command removes a breakpoint. The native debgger calls the breakpoint manager. The breakpoint manager conslts the mapper to determine if corresponding locations exist for the breakpoint. If so, the breakpoints are removed from all these locations. The breakpoint manager also pdates the breakpoint repository. Contine. A contine command resmes exection after a breakpoint is hit. On a contine command, the debgger pts the statement in the breakpoint location. It then exectes the statement, re-inserts the breakpoint and contines normal exection. With dynamic translation, the same set of actions is taken, except the instrction is sed by the mapper when the debgger is stopped at a location. Next and Step. A next or step command cases exection to contine ntil the next sorce statement is encontered. With hardware-assisted single-step, both commands contine exection from the crrent breakpoint ntil a location is reached that corresponds to a different sorce statement. When the next command is sed in dynamically code, the debgger can contine exection ntil a code location is reached that can be mapped to a different sorce statement, sing the U-T mappings. If dring the single step command, a code location is reached that has a T-T or T-U mapping, then the mapper looks p dynamic mappings and instrcts the breakpoint manager to insert a ser-invisible breakpoint at the destinations of the mapping. Userinvisible breakpoints are sed by debggers to silently step throgh code (i.e., withot notifying the ser that a breakpoint has been hit). Exection contines and when the ser-invisible breakpoint is hit, the mapper checks to see if the next sorce statement has been encontered. Hence, the ser is naware that additional code for a many or trampoline has been exected. Withot hardware-assisted single-step, next or step set a breakpoint at the next sorce statement or all targets of a branch instrction. In this case, next and step are break commands and can be handled similarly to break. Watchpoint. A watchpoint monitors a change in a program vale. If there is hardware assistance for a watchpoint, an exception is raised when the vale in the watched location changes. This exception is caght by the debgger and the ser is notified. In or architectre, this exception is caght by the breakpoint manager. With a dynamic translator, the exception may be raised dring the exection of the translator itself or in additional code inserted by the translator (trampoline code, overhead redction code, or dynamically instrmented code). If a vale changes in sch a sitation, then the mappings are sed to determine whether exection shold be stopped. In this case, the mapper can resme exection invisibly to the ser (and the native debgger) to avoid reporting a change that shold be transparent. Withot hardware assistance, the debgger single steps ntil the vale at the watched location changes. The mappings can be sed to avoid the translator code and the additional code. 128

7 Other commands. Other commands sch as, disassembly, examining contents of a memory address or a register, setting a vale in memory or register, next instrction, step instrction, disable, post-mortem crash analysis, etc. can be implemented sing a combination of the techniqes above. 5 Overhead Redction Transformations and Dynamic Instrmentation Or reference implementation of the debg architectre targets a SDT system that performs basic translation, applies overhead redction transformations, and performs dynamic instrmentation. In this section, we describe how the overhead redction transformations and dynamic insertion/removal of instrmentation can be handled. We focs on the generation of mappings by the mapping generator. 5.1 Overhead Redction Transformations Dynamic code translations can be more complex than described in the last section, particlarly for overhead redction transformations. For example, an indirect branch may be into a series of instrctions to perform a lookp in an indirect branch translation cache (IBTC) sing the target address. When an IBTC is sed, T-T mappings are needed for the IBTC in addition to the U-T mapping for the indirect branch in the code. A more complex transformation, sch as instrction trace formation, involves a nmber of translations that affect the mappings. It ses the reglar, many, flsh and trampoline operations to generate its mappings. We describe the mapping algorithms for these two overhead redction transformations next. Mappings for other overhead redction techniqes can be generated similarly. IBTC(Loc,Loc t){ delete(, t) r (tramp()) do trampoline(, Ø, <r>) Figre 8: IBTC Translation IBTC. When an IBTC is sed, an indirect branch is eliminated and additional code is generated for a lookp into the IBTC. The algorithm that generates the mappings for the IBTC is shown in Figre 8. A U-T mapping is generated from the location of the indirect branch to the next location t sing the delete operation. The IBTC lookp code is essentially an indirect branch trampoline and T-T mappings <r> are generated with the trampoline operation with target being a register location. When the mappings are sed by the debgger, the target of the mapping can be inferred by inspecting the correct register. let head be frag starting a trace let entry be the fragment at the trace entry retranslate to create the trace insert a branch in head to jmp to entry pdate mappings to reflect the trace: <r> mappings(head) do flsh(<r>) t = branch in head fragment to entry e = first instrction in trace entry <t> = t {e Figre 9: Instrction Trace Instrction Trace. Figre 9 shows a simplified algorithm for generating the mappings for an instrction trace. When a trace is created, the instrctions in fragments that form the trace are re. Dring retranslation, mappings are generated normally for each instrction. After the trace is formed, the fragment that started the trace (the head fragment ) is changed to have a branch at the top of the fragment that jmps to the trace (the trace entry ), which in effect trns the head into a trampoline to the trace (for any existing fragments that are linked to the head). Becase the code in the head is dead after the trace is formed, all mappings associated with it are flshed. A T-T mapping is created for the branch from the head to the trace entry. 5.2 Dynamically Instrmented Code SDT systems typically monitor and gather information abot the execting program, and instrmentation code is injected in the code for sch monitoring and profiling. When debgging a dynamically program, the debgger has to ensre that instrmentation code (not part of the program) is transparent to the ser. In a way similar to the basic translation operations and the overhead redction techniqes, the debg mappings can be sed to hide the instrmentation. Instrmentation is typically injected with a probe. A probe is the code that intercepts program exection to transfer control to a monitor or profiler. Becase instrmentation can be both inserted and removed on-the-fly, fast breakpoints have been sed for probes [16]. A fast breakpoint replaces a instrction by a jmp to a breakpoint handler that does the instrmentation. Dynamic instrmentation systems, sch as Dyninst [18] se this techniqe. Note that a fast breakpoint is not related to debg breakpoints a fast breakpoint is inserted and removed for monitoring and profiling, rather than debgging; that is, it is transparent to the ser. When a new probe is inserted, the debg mappings need to be pdated to reflect the presence of the probe. Figre 10(a) shows how the mappings are affected. The insertprobe() algorithm takes the location that is instrmented,, as an inpt. A many operation is done for each instrction, r, in the probe (probe() retrns all locations in the probe at ). That is, a T-U mapping is generated from each instrction in the probe to the next location after (i.e., +1). The U-T mapping from the to its location t is kept to map the fast breakpoint at t to. insertprobe(loc, Trans code) { <r> probe() do many(<>,<r>) removeprobe(loc, Trans code) { <r> probe() do flsh(<r>) (a) Algorithms for Probe Insertion and Removal +1 t t 1 Before Probe Insertion probe (b) Example Figre 10: Probe Insertion and Removal Figre 10(b) show an example before and after a probe is inserted. In the before case, there is a mapping from program instrction to instrction t and a mapping from the program instrction +1 (the next logical instrction after ) to t 1. When a probe is inserted at t, a fast breakpoint is inserted to transfer control to the instrmentation code (indicated by j probe). Each instrction, t n t n+k, in the instrmentation code is mapped +1 j probe t 1 t n t n+k After Probe Insertion at New mappings (solid lines) after probe insertion T-T: t n t 1, t n+k {t 1 129

8 to the next instrction, +1, after. The case when a probe is inlined directly in the code can be handled similarly by the algorithm in Figre 10(a). Figre 10(b) shows only a probe that has been inserted with a fast breakpoint. Becase probes may be removed dring exection (e.g., when a conter reaches some threshold), the debg mappings shold be pdated. In this case, all the mappings associated with the instrmentation probe are flshed with the removeprobe() algorithm, as shown in Figre 10(a). Dynamic instrmentation may not always be performed with fast breakpoints. Indeed, the instrmented code can be inlined in the code. Or debg techniqes can handle sch programs, and the algorithms in Figre 10(a) still hold. 6 Evalation We developed a debgger, called tdb, for dynamically programs as a reference implementation of the debg architectre. Tdb ses the GNU debgger gdb (version 5.3) as the native debgger [24] and spports all sorce-level commands and qeries in gdb. The SDT system sed to dynamically translate applications was Strata [21]. The translation operations performed by Strata were the five basic translation operations as described in Section 4.1, overhead redction techniqes of fragment linking, IBTC, partial fnction inlining and instrction traces, and dynamic insertion of probes. The changes made to gdb involved modifying the fnctions that read/write program addresses and insert/delete breakpoints to instead target the API s shown in Table 2. The changes made to Strata were also small. The changes inclded modifying the translation loop of Strata, overhead redction techniqes, and dynamic instrmentation. We sed shared memory as a mechanism for commnication between different components of the debg engine. To validate and evalate tdb, we sed the debgger in a scenario involving a code secrity checker. A SDT code secrity checker instrments instrctions in the program binary and performs a secrity check before execting that instrction. This techniqe is sed in program secrity applications of SDT sch as Dynamo-RIO [17] and Strata [22,21]. Or code secrity checker is implemented with Strata and can enforce policies on the se of operating system calls, sing dynamic instrmentation at system call instrctions. For example, the se of file open may be restricted to not open certain files (e.g., the password file). We validated tdb to ensre that sorce-level information can be correctly reported. Tdb s performance and memory overheads for generating and sing the mappings were also evalated. 6.1 Methodology Several SPEC2000 benchmarks were sed to compare the reslts and overhead of gdb and tdb. All experiments were rn on a 500 MHz Sn Blade 100 with 256 MB RAM and Solaris 9. Strata s defalt fragment cache size of 2 MB was sed and all overhead redction transformations were enabled. In the secrity application, all system calls are instrmented. The instrmentation is done with fast breakpoints and enforces the restrictions on operating system services. We inserted ser breakpoints in the benchmarks with gdb and tdb. To find appropriate breakpoint locations that wold likely be hit, the fnctions that acconted for 90% of the exection time in each benchmark were selected to have breakpoints. Within these hot fnctions, breakpoint locations were selected at assignment, conditional, and switch statements. Breakpoints were also inserted at fnction calls, retrns, and instrmented system calls. The nmber of breakpoints varied from , with 6 13 fnctions selected per benchmark. All benchmarks were rn ntil at least 10,000 breakpoints were hit. The actal nmber of hits varied depending on the nmber of system calls that were exected. The breakpoints that were hit covered all dynamic code translations, overhead redction techniqes, and instrmentation points. 6.2 Verification To validate the operation of tdb, we ensred that it correctly mapped breakpoint locations to appropriate sorce statements. The validation compared the information reported by gdb withot dynamic translation to the information reported by tdb with dynamic translation. The validation was atomatically done by scripts that inserted breakpoints, controlled the program exection, and generated otpt at each breakpoint. The otpt from each benchmark rn for tdb and gdb was also atomatically compared. Table 3 shows the distribtion of the breakpoints that were hit for the benchmarks. The table shows the nmber of niqe breakpoints that were hit for the different types of translations. In the table, Reglar are reglarly instrctions, Cond are conditional branches, Calls are fnction calls, Indirect are register-indirect branches, and Instr is instrmented system calls. For example, in mcf, 14 niqe breakpoints on assignment statements were hit a total of 1,569 times. We checked whether gdb and tdb hit the same breakpoints, in the same order and the same nmber of times. In all cases, the same breakpoints were hit by both debggers. We also verified that the breakpoint commands in both cases reported the same information (e.g., which sorce line nmber was hit). Finally, we ensred that the programs ran sccessflly to completion when all breakpoints were disabled. 6.3 Performance and Memory To evalate performance and memory overhead, we compared the rn-times of both debggers and measred the memory reqirements of tdb. Table 4 shows the rn-times for the benchmarks nder gdb and tdb when breakpoints are inserted and hit, according to the methodology in Section 6.1. The first two table colmns report rn-time in seconds for hitting at least 10,000 ser breakpoints. As the table shows, gdb has rn-times that range from 135 to 244 seconds and tdb has rn-times from 192 to 379 seconds. Tdb incrs an additional overhead of 42% (bzip) to 110% (vortex), with an average of 63%, over gdb. This extra overhead is de to generating and sing mappings and inserting additional breakpoints in the code. We measred where tdb spends its time and fond that the overhead de to generating and sing the mappings is negligible and acconts for less than 1% of the overhead. The cost of translation and instrmentation was also negligible. The main cost is the insertion of additional breakpoints. As Table 4 shows in the third and forth colmns ( Total Breakpoints ), tdb inserts many more breakpoints than gdb. The nmber of additional breakpoints inserted is increased by 111% (bzip) to 220% (vortex), with an average increase of 141%. More breakpoints are inserted by tdb de to code dplication from fragment overlap (fragments may share code), partial inlining, and instrction traces. Tdb inserts breakpoints in the code and the code, which frther increases the nmber of breakpoints. As the table demonstrates, the amont of extra overhead incrred by a benchmark directly tracks the nmber of additional breakpoints inserted. The nmber of breakpoints is high for both debggers de to an implementation artifact. When a breakpoint is hit at rn-time, gdb and tdb remove all active breakpoints and re-insert them when exection resmes. Both implementations can be improved to remove and insert necessary breakpoints on-demand only as determined by the debg commands issed by the ser. Frthermore, in an actal sage scenario, very few breakpoints are active at once, and it has been or experience that the overhead de to breakpoint insertion is not perceivable. From these performance reslts, the rn-time overhead incrred by tdb over gdb is reasonable, given the large nmber of breakpoints inserted. 130

TDT4255 Friday the 21st of October. Real world examples of pipelining? How does pipelining influence instruction

TDT4255 Friday the 21st of October. Real world examples of pipelining? How does pipelining influence instruction Review Friday the 2st of October Real world eamples of pipelining? How does pipelining pp inflence instrction latency? How does pipelining inflence instrction throghpt? What are the three types of hazard

More information

Isilon InsightIQ. Version 2.5. User Guide

Isilon InsightIQ. Version 2.5. User Guide Isilon InsightIQ Version 2.5 User Gide Pblished March, 2014 Copyright 2010-2014 EMC Corporation. All rights reserved. EMC believes the information in this pblication is accrate as of its pblication date.

More information

Exceptions and interrupts

Exceptions and interrupts Eceptions and interrpts An eception or interrpt is an nepected event that reqires the CPU to pase or stop the crrent program. Eception handling is the hardware analog of error handling in software. Classes

More information

Pavlin and Daniel D. Corkill. Department of Computer and Information Science University of Massachusetts Amherst, Massachusetts 01003

Pavlin and Daniel D. Corkill. Department of Computer and Information Science University of Massachusetts Amherst, Massachusetts 01003 From: AAAI-84 Proceedings. Copyright 1984, AAAI (www.aaai.org). All rights reserved. SELECTIVE ABSTRACTION OF AI SYSTEM ACTIVITY Jasmina Pavlin and Daniel D. Corkill Department of Compter and Information

More information

Illumina LIMS. Software Guide. For Research Use Only. Not for use in diagnostic procedures. Document # June 2017 ILLUMINA PROPRIETARY

Illumina LIMS. Software Guide. For Research Use Only. Not for use in diagnostic procedures. Document # June 2017 ILLUMINA PROPRIETARY Illmina LIMS Software Gide Jne 2017 ILLUMINA PROPRIETARY This docment and its contents are proprietary to Illmina, Inc. and its affiliates ("Illmina"), and are intended solely for the contractal se of

More information

4.13 Advanced Topic: An Introduction to Digital Design Using a Hardware Design Language 345.e1

4.13 Advanced Topic: An Introduction to Digital Design Using a Hardware Design Language 345.e1 .3 Advanced Topic: An Introdction to Digital Design Using a Hardware Design Langage 35.e.3 Advanced Topic: An Introdction to Digital Design Using a Hardware Design Langage to Describe and odel a Pipeline

More information

On the Computational Complexity and Effectiveness of N-hub Shortest-Path Routing

On the Computational Complexity and Effectiveness of N-hub Shortest-Path Routing 1 On the Comptational Complexity and Effectiveness of N-hb Shortest-Path Roting Reven Cohen Gabi Nakibli Dept. of Compter Sciences Technion Israel Abstract In this paper we stdy the comptational complexity

More information

Evaluating Influence Diagrams

Evaluating Influence Diagrams Evalating Inflence Diagrams Where we ve been and where we re going Mark Crowley Department of Compter Science University of British Colmbia crowley@cs.bc.ca Agst 31, 2004 Abstract In this paper we will

More information

CS 153 Design of Operating Systems

CS 153 Design of Operating Systems CS 153 Design of Operating Systems Spring 18 Lectre 3: OS model and Architectral Spport Instrctor: Chengy Song Slide contribtions from Nael Ab-Ghazaleh, Harsha Madhyvasta and Zhiyn Qian Last time/today

More information

EMC ViPR. User Guide. Version

EMC ViPR. User Guide. Version EMC ViPR Version 1.1.0 User Gide 302-000-481 01 Copyright 2013-2014 EMC Corporation. All rights reserved. Pblished in USA. Pblished Febrary, 2014 EMC believes the information in this pblication is accrate

More information

Networks An introduction to microcomputer networking concepts

Networks An introduction to microcomputer networking concepts Behavior Research Methods& Instrmentation 1978, Vol 10 (4),522-526 Networks An introdction to microcompter networking concepts RALPH WALLACE and RICHARD N. JOHNSON GA TX, Chicago, Illinois60648 and JAMES

More information

Real-time mean-shift based tracker for thermal vision systems

Real-time mean-shift based tracker for thermal vision systems 9 th International Conference on Qantitative InfraRed Thermography Jly -5, 008, Krakow - Poland Real-time mean-shift based tracker for thermal vision systems G. Bieszczad* T. Sosnowski** * Military University

More information

Local Run Manager. Software Reference Guide for MiSeqDx

Local Run Manager. Software Reference Guide for MiSeqDx Local Rn Manager Software Reference Gide for MiSeqDx Local Rn Manager Overview 3 Dashboard Overview 4 Administrative Settings and Tasks 7 Workflow Overview 12 Technical Assistance 17 Docment # 1000000011880

More information

Computer User s Guide 4.0

Computer User s Guide 4.0 Compter User s Gide 4.0 2001 Glenn A. Miller, All rights reserved 2 The SASSI Compter User s Gide 4.0 Table of Contents Chapter 1 Introdction...3 Chapter 2 Installation and Start Up...5 System Reqirements

More information

What s New in AppSense Management Suite Version 7.0?

What s New in AppSense Management Suite Version 7.0? What s New in AMS V7.0 What s New in AppSense Management Site Version 7.0? AppSense Management Site Version 7.0 is the latest version of the AppSense prodct range and comprises three prodct components,

More information

EMC VNX Series. Problem Resolution Roadmap for VNX with ESRS for VNX and Connect Home. Version VNX1, VNX2 P/N REV. 03

EMC VNX Series. Problem Resolution Roadmap for VNX with ESRS for VNX and Connect Home. Version VNX1, VNX2 P/N REV. 03 EMC VNX Series Version VNX1, VNX2 Problem Resoltion Roadmap for VNX with ESRS for VNX and Connect Home P/N 300-014-335 REV. 03 Copyright 2012-2014 EMC Corporation. All rights reserved. Pblished in USA.

More information

Constructing and Comparing User Mobility Profiles for Location-based Services

Constructing and Comparing User Mobility Profiles for Location-based Services Constrcting and Comparing User Mobility Profiles for Location-based Services Xihi Chen Interdisciplinary Centre for Secrity, Reliability and Trst, University of Lxemborg Jn Pang Compter Science and Commnications,

More information

(2, 4) Tree Example (2, 4) Tree: Insertion

(2, 4) Tree Example (2, 4) Tree: Insertion Presentation for se with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 B-Trees and External Memory (2, 4) Trees Each internal node has 2 to 4 children:

More information

Prof. Kozyrakis. 1. (10 points) Consider the following fragment of Java code:

Prof. Kozyrakis. 1. (10 points) Consider the following fragment of Java code: EE8 Winter 25 Homework #2 Soltions De Thrsday, Feb 2, 5 P. ( points) Consider the following fragment of Java code: for (i=; i

More information

1048: Computer Organization

1048: Computer Organization 48: Compter Organization Lectre 5 Datapath and Control Lectre5B - mlticycle implementation (cwli@twins.ee.nct.ed.tw) 5B- Recap: A Single-Cycle Processor PCSrc 4 Add Shift left 2 Add ALU reslt PC address

More information

CS 153 Design of Operating Systems Spring 18

CS 153 Design of Operating Systems Spring 18 CS 153 Design of Operating Systems Spring 18 Lectre 15: Virtal Address Space Instrctor: Chengy Song Slide contribtions from Nael Ab-Ghazaleh, Harsha Madhyvasta and Zhiyn Qian OS Abstractions Applications

More information

The Disciplined Flood Protocol in Sensor Networks

The Disciplined Flood Protocol in Sensor Networks The Disciplined Flood Protocol in Sensor Networks Yong-ri Choi and Mohamed G. Goda Department of Compter Sciences The University of Texas at Astin, U.S.A. fyrchoi, godag@cs.texas.ed Hssein M. Abdel-Wahab

More information

The single-cycle design from last time

The single-cycle design from last time lticycle path Last time we saw a single-cycle path and control nit for or simple IPS-based instrction set. A mlticycle processor fies some shortcomings in the single-cycle CPU. Faster instrctions are not

More information

History Slicing: Assisting Code-Evolution Tasks

History Slicing: Assisting Code-Evolution Tasks History Slicing: Assisting Code-Evoltion Tasks Francisco Servant Department of Informatics University of California, Irvine Irvine, CA, U.S.A. 92697-3440 fservant@ics.ci.ed James A. Jones Department of

More information

EXAMINATIONS 2010 END OF YEAR NWEN 242 COMPUTER ORGANIZATION

EXAMINATIONS 2010 END OF YEAR NWEN 242 COMPUTER ORGANIZATION EXAINATIONS 2010 END OF YEAR COPUTER ORGANIZATION Time Allowed: 3 Hors (180 mintes) Instrctions: Answer all qestions. ake sre yor answers are clear and to the point. Calclators and paper foreign langage

More information

The extra single-cycle adders

The extra single-cycle adders lticycle Datapath As an added bons, we can eliminate some of the etra hardware from the single-cycle path. We will restrict orselves to sing each fnctional nit once per cycle, jst like before. Bt since

More information

CS 153 Design of Operating Systems Spring 18

CS 153 Design of Operating Systems Spring 18 CS 153 Design of Operating Systems Spring 18 Lectre 11: Semaphores Instrctor: Chengy Song Slide contribtions from Nael Ab-Ghazaleh, Harsha Madhyvasta and Zhiyn Qian Last time Worked throgh software implementation

More information

dss-ip Manual digitalstrom Server-IP Operation & Settings

dss-ip Manual digitalstrom Server-IP Operation & Settings dss-ip digitalstrom Server-IP Manal Operation & Settings Table of Contents digitalstrom Table of Contents 1 Fnction and Intended Use... 3 1.1 Setting p, Calling p and Operating... 3 1.2 Reqirements...

More information

The Impact of Avatar Mobility on Distributed Server Assignment for Delivering Mobile Immersive Communication Environment

The Impact of Avatar Mobility on Distributed Server Assignment for Delivering Mobile Immersive Communication Environment This fll text paper was peer reviewed at the direction of IEEE Commnications Society sbject matter experts for pblication in the ICC 27 proceedings. The Impact of Avatar Mobility on Distribted Server Assignment

More information

Multi-lingual Multi-media Information Retrieval System

Multi-lingual Multi-media Information Retrieval System Mlti-lingal Mlti-media Information Retrieval System Shoji Mizobchi, Sankon Lee, Fmihiko Kawano, Tsyoshi Kobayashi, Takahiro Komats Gradate School of Engineering, University of Tokshima 2-1 Minamijosanjima,

More information

An Adaptive Strategy for Maximizing Throughput in MAC layer Wireless Multicast

An Adaptive Strategy for Maximizing Throughput in MAC layer Wireless Multicast University of Pennsylvania ScholarlyCommons Departmental Papers (ESE) Department of Electrical & Systems Engineering May 24 An Adaptive Strategy for Maximizing Throghpt in MAC layer Wireless Mlticast Prasanna

More information

The final datapath. M u x. Add. 4 Add. Shift left 2. PCSrc. RegWrite. MemToR. MemWrite. Read data 1 I [25-21] Instruction. Read. register 1 Read.

The final datapath. M u x. Add. 4 Add. Shift left 2. PCSrc. RegWrite. MemToR. MemWrite. Read data 1 I [25-21] Instruction. Read. register 1 Read. The final path PC 4 Add Reg Shift left 2 Add PCSrc Instrction [3-] Instrction I [25-2] I [2-6] I [5 - ] register register 2 register 2 Registers ALU Zero Reslt ALUOp em Data emtor RegDst ALUSrc em I [5

More information

VirtuOS: an operating system with kernel virtualization

VirtuOS: an operating system with kernel virtualization VirtOS: an operating system with kernel virtalization Rslan Nikolaev, Godmar Back SOSP '13 Proceedings of the Twenty-Forth ACM Symposim on Oper ating Systems Principles 이영석, 신현호, 박재완 Index Motivation Design

More information

Topic Continuity for Web Document Categorization and Ranking

Topic Continuity for Web Document Categorization and Ranking Topic Continity for Web ocment Categorization and Ranking B. L. Narayan, C. A. Mrthy and Sankar. Pal Machine Intelligence Unit, Indian Statistical Institte, 03, B. T. Road, olkata - 70008, India. E-mail:

More information

CAPL Scripting Quickstart

CAPL Scripting Quickstart CAPL Scripting Qickstart CAPL (Commnication Access Programming Langage) For CANalyzer and CANoe V1.01 2015-12-03 Agenda Important information before getting started 3 Visal Seqencer (GUI based programming

More information

CS 153 Design of Operating Systems Spring 18

CS 153 Design of Operating Systems Spring 18 CS 153 Design of Operating Systems Spring 18 Lectre 9: Synchronization (1) Instrctor: Chengy Song Slide contribtions from Nael Ab-Ghazaleh, Harsha Madhyvasta and Zhiyn Qian Cooperation between Threads

More information

Resolving Linkage Anomalies in Extracted Software System Models

Resolving Linkage Anomalies in Extracted Software System Models Resolving Linkage Anomalies in Extracted Software System Models Jingwei W and Richard C. Holt School of Compter Science University of Waterloo Waterloo, Canada j25w, holt @plg.waterloo.ca Abstract Program

More information

Requirements Engineering. Objectives. System requirements. Types of requirements. FAQS about requirements. Requirements problems

Requirements Engineering. Objectives. System requirements. Types of requirements. FAQS about requirements. Requirements problems Reqirements Engineering Objectives An introdction to reqirements Gerald Kotonya and Ian Sommerville To introdce the notion of system reqirements and the reqirements process. To explain how reqirements

More information

REPLICATION IN BANDWIDTH-SYMMETRIC BITTORRENT NETWORKS. M. Meulpolder, D.H.J. Epema, H.J. Sips

REPLICATION IN BANDWIDTH-SYMMETRIC BITTORRENT NETWORKS. M. Meulpolder, D.H.J. Epema, H.J. Sips REPLICATION IN BANDWIDTH-SYMMETRIC BITTORRENT NETWORKS M. Melpolder, D.H.J. Epema, H.J. Sips Parallel and Distribted Systems Grop Department of Compter Science, Delft University of Technology, the Netherlands

More information

Local Run Manager Generate FASTQ Analysis Module

Local Run Manager Generate FASTQ Analysis Module Local Rn Manager Generate FASTQ Analysis Modle Workflow Gide For Research Use Only. Not for se in diagnostic procedres. Overview 3 Set Parameters 3 Analysis Methods 5 View Analysis Reslts 5 Analysis Report

More information

EEC 483 Computer Organization. Branch (Control) Hazards

EEC 483 Computer Organization. Branch (Control) Hazards EEC 483 Compter Organization Section 4.8 Branch Hazards Section 4.9 Exceptions Chans Y Branch (Control) Hazards While execting a previos branch, next instrction address might not yet be known. s n i o

More information

CS 153 Design of Operating Systems Spring 18

CS 153 Design of Operating Systems Spring 18 CS 53 Design of Operating Systems Spring 8 Lectre 2: Virtal Memory Instrctor: Chengy Song Slide contribtions from Nael Ab-Ghazaleh, Harsha Madhyvasta and Zhiyn Qian Recap: cache Well-written programs exhibit

More information

Content Content Introduction

Content Content Introduction Content Content Introdction...................................................................... 3 Roles in the provisioning process............................................................... 4 Server

More information

EMC AppSync. User Guide. Version REV 01

EMC AppSync. User Guide. Version REV 01 EMC AppSync Version 1.5.0 User Gide 300-999-948 REV 01 Copyright 2012-2013 EMC Corporation. All rights reserved. Pblished in USA. EMC believes the information in this pblication is accrate as of its pblication

More information

Review Multicycle: What is Happening. Controlling The Multicycle Design

Review Multicycle: What is Happening. Controlling The Multicycle Design Review lticycle: What is Happening Reslt Zero Op SrcA SrcB Registers Reg Address emory em Data Sign etend Shift left Sorce A B Ot [-6] [5-] [-6] [5-] [5-] Instrction emory IR RegDst emtoreg IorD em em

More information

Blended Deformable Models

Blended Deformable Models Blended Deformable Models (In IEEE Trans. Pattern Analysis and Machine Intelligence, April 996, 8:4, pp. 443-448) Doglas DeCarlo and Dimitri Metaxas Department of Compter & Information Science University

More information

EEC 483 Computer Organization

EEC 483 Computer Organization EEC 483 Compter Organization Chapter 4.4 A Simple Implementation Scheme Chans Y The Big Pictre The Five Classic Components of a Compter Processor Control emory Inpt path Otpt path & Control 2 path and

More information

Content Safety Precaution... 4 Getting started... 7 Input method... 9 Using the Menus Use of USB Maintenance & Safety...

Content Safety Precaution... 4 Getting started... 7 Input method... 9 Using the Menus Use of USB Maintenance & Safety... STAR -1- Content 1. Safety Precation... 4 2. Getting started... 7 Installing the cards and the Battery... 7 Charging the Battery... 8 3. Inpt method... 9 To Shift Entry Methods... 9 Nmeric and English

More information

CS 153 Design of Operating Systems Spring 18

CS 153 Design of Operating Systems Spring 18 CS 153 Design of Operating Systems Spring 18 Lectre 8: Threads Instrctor: Chengy Song Slide contribtions from Nael Ab-Ghazaleh, Harsha Madhyvasta and Zhiyn Qian Processes P1 P2 Recall that Bt OS A process

More information

A choice relation framework for supporting category-partition test case generation

A choice relation framework for supporting category-partition test case generation Title A choice relation framework for spporting category-partition test case generation Athor(s) Chen, TY; Poon, PL; Tse, TH Citation Ieee Transactions On Software Engineering, 2003, v. 29 n. 7, p. 577-593

More information

Efficient and Accurate Delaunay Triangulation Protocols under Churn

Efficient and Accurate Delaunay Triangulation Protocols under Churn Efficient and Accrate Delanay Trianglation Protocols nder Chrn Dong-Yong Lee and Simon S. Lam Department of Compter Sciences The University of Texas at Astin {dylee, lam}@cs.texas.ed November 9, 2007 Technical

More information

Unit Testing with VectorCAST and AUTOSAR

Unit Testing with VectorCAST and AUTOSAR Unit Testing with VectorCAST and AUTOSAR Vector TechDay Software Testing with VectorCAST V1.0 2018-11-15 Agenda Introdction Unit Testing Demo Working with AUTOSAR Generated Code Unit Testing AUTOSAR SWCs

More information

Review. A single-cycle MIPS processor

Review. A single-cycle MIPS processor Review If three instrctions have opcodes, 7 and 5 are they all of the same type? If we were to add an instrction to IPS of the form OD $t, $t2, $t3, which performs $t = $t2 OD $t3, what wold be its opcode?

More information

5 Performance Evaluation

5 Performance Evaluation 5 Performance Evalation his chapter evalates the performance of the compared to the MIP, and FMIP individal performances. We stdy the packet loss and the latency to restore the downstream and pstream of

More information

Review: Computer Organization

Review: Computer Organization Review: Compter Organization Pipelining Chans Y Landry Eample Landry Eample Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold Washer takes 3 mintes A B C D Dryer takes 3 mintes

More information

IMPLEMENTATION OF OBJECT ORIENTED APPROACH TO MODIFIED ANT ALGORITHM FOR TASK SCHEDULING IN GRID COMPUTING

IMPLEMENTATION OF OBJECT ORIENTED APPROACH TO MODIFIED ANT ALGORITHM FOR TASK SCHEDULING IN GRID COMPUTING International Jornal of Modern Engineering Research (IJMER) www.imer.com Vol.1, Isse1, pp-134-139 ISSN: 2249-6645 IMPLEMENTATION OF OBJECT ORIENTED APPROACH TO MODIFIED ANT ALGORITHM FOR TASK SCHEDULING

More information

EMC M&R (Watch4net ) Installation and Configuration Guide. Version 6.4 P/N REV 02

EMC M&R (Watch4net ) Installation and Configuration Guide. Version 6.4 P/N REV 02 EMC M&R (Watch4net ) Version 6.4 Installation and Configration Gide P/N 302-001-045 REV 02 Copyright 2012-2014 EMC Corporation. All rights reserved. Pblished in USA. Pblished September, 2014 EMC believes

More information

Master for Co-Simulation Using FMI

Master for Co-Simulation Using FMI Master for Co-Simlation Using FMI Jens Bastian Christoph Claß Ssann Wolf Peter Schneider Franhofer Institte for Integrated Circits IIS / Design Atomation Division EAS Zenerstraße 38, 69 Dresden, Germany

More information

Today s Lecture. Software Architecture. Lecture 27: Introduction to Software Architecture. Introduction and Background of

Today s Lecture. Software Architecture. Lecture 27: Introduction to Software Architecture. Introduction and Background of Today s Lectre Lectre 27: Introdction to Software Architectre Kenneth M. Anderson Fondations of Software Engineering CSCI 5828 - Spring Semester, 1999 Introdction and Backgrond of Software Architectre

More information

CS 251, Winter 2019, Assignment % of course mark

CS 251, Winter 2019, Assignment % of course mark CS 25, Winter 29, Assignment.. 3% of corse mark De Wednesday, arch 3th, 5:3P Lates accepted ntil Thrsday arch th, pm with a 5% penalty. (7 points) In the diagram below, the mlticycle compter from the corse

More information

An Extensive Study of Static Regression Test Selection in Modern Software Evolution

An Extensive Study of Static Regression Test Selection in Modern Software Evolution An Extensive Stdy of Static Regression Test Selection in Modern Software Evoltion Owolabi Legnsen 1, Farah Hariri 1, Agst Shi 1, Yafeng L 2, Lingming Zhang 2, and Darko Marinov 1 1 Department of Compter

More information

An Introduction to GPU Computing. Aaron Coutino MFCF

An Introduction to GPU Computing. Aaron Coutino MFCF An Introdction to GPU Compting Aaron Cotino acotino@waterloo.ca MFCF What is a GPU? A GPU (Graphical Processing Unit) is a special type of processor that was designed to render and maniplate textres. They

More information

Hardware-Accelerated Free-Form Deformation

Hardware-Accelerated Free-Form Deformation Hardware-Accelerated Free-Form Deformation Clint Cha and Ulrich Nemann Compter Science Department Integrated Media Systems Center University of Sothern California Abstract Hardware-acceleration for geometric

More information

Enhanced Performance with Pipelining

Enhanced Performance with Pipelining Chapter 6 Enhanced Performance with Pipelining Note: The slides being presented represent a mi. Some are created by ark Franklin, Washington University in St. Lois, Dept. of CSE. any are taken from the

More information

IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, VOL. 6, NO. 5, MAY On the Analysis of the Bluetooth Time Division Duplex Mechanism

IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, VOL. 6, NO. 5, MAY On the Analysis of the Bluetooth Time Division Duplex Mechanism IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, VOL. 6, NO. 5, MAY 2007 1 On the Analysis of the Bletooth Time Division Dplex Mechanism Gil Zssman Member, IEEE, Adrian Segall Fellow, IEEE, and Uri Yechiali

More information

TAKING THE PULSE OF ICT IN HEALTHCARE

TAKING THE PULSE OF ICT IN HEALTHCARE ICT TODAY THE OFFICIAL TRADE JOURNAL OF BICSI Janary/Febrary 2016 Volme 37, Nmber 1 TAKING THE PULSE OF ICT IN HEALTHCARE + PLUS + High-Power PoE + Using HDBaseT in AV Design for Schools + Focs on Wireless

More information

What do we have so far? Multi-Cycle Datapath

What do we have so far? Multi-Cycle Datapath What do we have so far? lti-cycle Datapath CPI: R-Type = 4, Load = 5, Store 4, Branch = 3 Only one instrction being processed in datapath How to lower CPI frther? #1 Lec # 8 Spring2 4-11-2 Pipelining pipelining

More information

Membership Library in DPDK Sameh Gobriel & Charlie Tai - Intel DPDK US Summit - San Jose

Membership Library in DPDK Sameh Gobriel & Charlie Tai - Intel DPDK US Summit - San Jose Membership Library in DPDK 17.11 Sameh Gobriel & Charlie Tai - Intel DPDK US Smmit - San Jose - 2017 Contribtors Yipeng Wang yipeng1.wang@intel.com Ren Wang ren.wang@intel.com John Mcnamara john.mcnamara@intel.com

More information

Lecture 13: Exceptions and Interrupts

Lecture 13: Exceptions and Interrupts 18 447 Lectre 13: Eceptions and Interrpts S 10 L13 1 James C. Hoe Dept of ECE, CU arch 1, 2010 Annoncements: Handots: Spring break is almost here Check grades on Blackboard idterm 1 graded Handot #9: Lab

More information

Chapter 6 Enhancing Performance with. Pipelining. Pipelining. Pipelined vs. Single-Cycle Instruction Execution: the Plan. Pipelining: Keep in Mind

Chapter 6 Enhancing Performance with. Pipelining. Pipelining. Pipelined vs. Single-Cycle Instruction Execution: the Plan. Pipelining: Keep in Mind Pipelining hink of sing machines in landry services Chapter 6 nhancing Performance with Pipelining 6 P 7 8 9 A ime ask A B C ot pipelined Assme 3 min. each task wash, dry, fold, store and that separate

More information

A sufficient condition for spiral cone beam long object imaging via backprojection

A sufficient condition for spiral cone beam long object imaging via backprojection A sfficient condition for spiral cone beam long object imaging via backprojection K. C. Tam Siemens Corporate Research, Inc., Princeton, NJ, USA Abstract The response of a point object in cone beam spiral

More information

Pipelined van Emde Boas Tree: Algorithms, Analysis, and Applications

Pipelined van Emde Boas Tree: Algorithms, Analysis, and Applications This fll text paper was peer reviewed at the direction of IEEE Commnications Society sbject matter experts for pblication in the IEEE INFOCOM 007 proceedings Pipelined van Emde Boas Tree: Algorithms, Analysis,

More information

Computer Architecture Chapter 5. Fall 2005 Department of Computer Science Kent State University

Computer Architecture Chapter 5. Fall 2005 Department of Computer Science Kent State University Compter Architectre Chapter 5 Fall 25 Department of Compter Science Kent State University The Processor: Datapath & Control Or implementation of the MIPS is simplified memory-reference instrctions: lw,

More information

Picking and Curves Week 6

Picking and Curves Week 6 CS 48/68 INTERACTIVE COMPUTER GRAPHICS Picking and Crves Week 6 David Breen Department of Compter Science Drexel University Based on material from Ed Angel, University of New Mexico Objectives Picking

More information

The Volcano Optimizer Generator: Extensibility and Efficient Search

The Volcano Optimizer Generator: Extensibility and Efficient Search The Volcano Optimizer Generator: Extensibility and Efficient Search - Prithvi Lakshminarayanan - 301313262 Athors Goetz Graefe, Portland State University Won the Most Inflential Paper award in 1993 Worked

More information

CS 153 Design of Operating Systems

CS 153 Design of Operating Systems CS 53 Design of Operating Systems Spring 8 Lectre 6: Paging Instrctor: Chengy Song Slide contribtions from Nael Ab-Ghazaleh, Harsha Madhyvasta and Zhiyn Qian Some slides modified from originals by Dave

More information

Hardware Design Tips. Outline

Hardware Design Tips. Outline Hardware Design Tips EE 36 University of Hawaii EE 36 Fall 23 University of Hawaii Otline Verilog: some sbleties Simlators Test Benching Implementing the IPS Actally a simplified 6 bit version EE 36 Fall

More information

Doctor Web. All rights reserved

Doctor Web. All rights reserved Enterprise Site 2004-2009 Doctor Web. All rights reserved This docment is the property of Doctor Web. No part of this docment may be reprodced, pblished or transmitted in any form or by any means for any

More information

Abstract 1 Introduction

Abstract 1 Introduction Combining Relevance Information in a Synchronos Collaborative Information Retrieval Environment Colm Foley, Alan F. Smeaton and Gareth J. F. Jones Centre for Digital Video Processing and Adaptive Information

More information

Data/Metadata Data and Data Transformations

Data/Metadata Data and Data Transformations A Framework for Classifying Scientic Metadata Helena Galhardas, Eric Simon and Anthony Tomasic INRIA Domaine de Volcea - Rocqencort 7853 Le Chesnay France email: First-Name.Last-Name@inria.fr Abstract

More information

Functions of Combinational Logic

Functions of Combinational Logic CHPTER 6 Fnctions of Combinational Logic CHPTER OUTLINE 6 6 6 6 6 5 6 6 6 7 6 8 6 9 6 6 Half and Fll dders Parallel inary dders Ripple Carry and Look-head Carry dders Comparators Decoders Encoders Code

More information

PART I: Adding Instructions to the Datapath. (2 nd Edition):

PART I: Adding Instructions to the Datapath. (2 nd Edition): EE57 Instrctor: G. Pvvada ===================================================================== Homework #5b De: check on the blackboard =====================================================================

More information

CS 153 Design of Operating Systems Spring 18

CS 153 Design of Operating Systems Spring 18 CS 153 Design of Operating Systems Spring 18 Lectre 12: Deadlock Instrctor: Chengy Song Slide contribtions from Nael Ab-Ghazaleh, Harsha Madhyvasta and Zhiyn Qian Deadlock the deadly embrace! Synchronization

More information

Addressing in Future Internet: Problems, Issues, and Approaches

Addressing in Future Internet: Problems, Issues, and Approaches Addressing in Ftre Internet: Problems, Isses, and Approaches Mltimedia and Mobile commnications Laboratory Seol National University Jaeyong Choi, Chlhyn Park, Hakyng Jng, Taekyong Kwon, Yanghee Choi 19

More information

GETTING STARTED WITH THE MINIMED 640G INSULIN PUMP

GETTING STARTED WITH THE MINIMED 640G INSULIN PUMP GETTING STARTED WITH THE MINIMED 640G INSULIN PUMP TABLE OF CONTENTS Section 1: Getting Started...3 Getting Started with the MiniMed 640G Inslin Pmp... 3 1.1 Pmp Mechanics and the Delivery of Inslin...

More information

IP Multicast Fault Recovery in PIM over OSPF

IP Multicast Fault Recovery in PIM over OSPF 1 IP Mlticast Falt Recovery in PIM over OSPF Abstract Relatively little attention has been given to nderstanding the falt recovery characteristics and performance tning of native IP mlticast networks.

More information

Submodule construction for systems of I/O automata*

Submodule construction for systems of I/O automata* Sbmodle constrction for systems of I/O atomata* J. Drissi 1, G. v. Bochmann 2 1 Dept. d'iro, Université de Montréal, CP. 6128, Scc. Centre-Ville, Montréal, H3C 3J7, Canada, Phone: (514) 343-6161, Fax:

More information

Comparison of memory write policies for NoC based Multicore Cache Coherent Systems

Comparison of memory write policies for NoC based Multicore Cache Coherent Systems Comparison of memory write policies for NoC based Mlticore Cache Coherent Systems Pierre Gironnet de Massas, Frederic Petrot System-Level Synthesis Grop TIMA Laboratory 46, Av Felix Viallet, 38031 Grenoble,

More information

Pipelining. Chapter 4

Pipelining. Chapter 4 Pipelining Chapter 4 ake processor rns faster Pipelining is an implementation techniqe in which mltiple instrctions are overlapped in eection Key of making processor fast Pipelining Single cycle path we

More information

Chapter 3 & Appendix C Pipelining Part A: Basic and Intermediate Concepts

Chapter 3 & Appendix C Pipelining Part A: Basic and Intermediate Concepts CS359: Compter Architectre Chapter 3 & Appendi C Pipelining Part A: Basic and Intermediate Concepts Yanyan Shen Department of Compter Science and Engineering Shanghai Jiao Tong University 1 Otline Introdction

More information

The multicycle datapath. Lecture 10 (Wed 10/15/2008) Finite-state machine for the control unit. Implementing the FSM

The multicycle datapath. Lecture 10 (Wed 10/15/2008) Finite-state machine for the control unit. Implementing the FSM Lectre (Wed /5/28) Lab # Hardware De Fri Oct 7 HW #2 IPS programming, de Wed Oct 22 idterm Fri Oct 2 IorD The mlticycle path SrcA Today s objectives: icroprogramming Etending the mlti-cycle path lti-cycle

More information

NETWORK PRESERVATION THROUGH A TOPOLOGY CONTROL ALGORITHM FOR WIRELESS MESH NETWORKS

NETWORK PRESERVATION THROUGH A TOPOLOGY CONTROL ALGORITHM FOR WIRELESS MESH NETWORKS ETWORK PRESERVATIO THROUGH A TOPOLOGY COTROL ALGORITHM FOR WIRELESS MESH ETWORKS F. O. Aron, T. O. Olwal, A. Krien, Y. Hamam Tshwane University of Technology, Pretoria, Soth Africa. Dept of the French

More information

Chapter 6: Pipelining

Chapter 6: Pipelining CSE 322 COPUTER ARCHITECTURE II Chapter 6: Pipelining Chapter 6: Pipelining Febrary 10, 2000 1 Clothes Washing CSE 322 COPUTER ARCHITECTURE II The Assembly Line Accmlate dirty clothes in hamper Place in

More information

CSE 141 Computer Architecture Summer Session I, Lectures 10 Advanced Topics, Memory Hierarchy and Cache. Pramod V. Argade

CSE 141 Computer Architecture Summer Session I, Lectures 10 Advanced Topics, Memory Hierarchy and Cache. Pramod V. Argade CSE 141 Compter Architectre Smmer Session I, 2004 Lectres 10 Advanced Topics, emory Hierarchy and Cache Pramod V. Argade CSE141: Introdction to Compter Architectre Instrctor: TA: Pramod V. Argade (p2argade@cs.csd.ed)

More information

POWER-OF-2 BOUNDARIES

POWER-OF-2 BOUNDARIES Warren.3.fm Page 5 Monday, Jne 17, 5:6 PM CHAPTER 3 POWER-OF- BOUNDARIES 3 1 Ronding Up/Down to a Mltiple of a Known Power of Ronding an nsigned integer down to, for eample, the net smaller mltiple of

More information

Inteligencia Artificial. Revista Iberoamericana de Inteligencia Artificial ISSN:

Inteligencia Artificial. Revista Iberoamericana de Inteligencia Artificial ISSN: Inteligencia Artificial. Revista Iberoamericana de Inteligencia Artificial ISSN: 1137-3601 revista@aepia.org Asociación Española para la Inteligencia Artificial España Zaballos, Lis J.; Henning, Gabriela

More information

Lecture 7. Building A Simple Processor

Lecture 7. Building A Simple Processor Lectre 7 Bilding A Simple Processor Christos Kozyrakis Stanford University http://eeclass.stanford.ed/ee8b C. Kozyrakis EE8b Lectre 7 Annoncements Upcoming deadlines Lab is de today Demo by 5pm, report

More information

COMPOSITION OF STABLE SET POLYHEDRA

COMPOSITION OF STABLE SET POLYHEDRA COMPOSITION OF STABLE SET POLYHEDRA Benjamin McClosky and Illya V. Hicks Department of Comptational and Applied Mathematics Rice University November 30, 2007 Abstract Barahona and Mahjob fond a defining

More information

PlenoPatch: Patch-based Plenoptic Image Manipulation

PlenoPatch: Patch-based Plenoptic Image Manipulation 1 PlenoPatch: Patch-based Plenoptic Image Maniplation Fang-Le Zhang, Member, IEEE, Je Wang, Senior Member, IEEE, Eli Shechtman, Member, IEEE, Zi-Ye Zho, Jia-Xin Shi, and Shi-Min H, Member, IEEE Abstract

More information

Faster Random Walks By Rewiring Online Social Networks On-The-Fly

Faster Random Walks By Rewiring Online Social Networks On-The-Fly 1 Faster Random Walks By Rewiring Online ocial Networks On-The-Fly Zhojie Zho 1, Nan Zhang 2, Zhigo Gong 3, Gatam Das 4 1,2 Compter cience Department, George Washington Uniersity 1 rexzho@gw.ed 2 nzhang10@gw.ed

More information