In this paper we present CASM, a language based on Abstract State Machines (ASM), and its optimizing compiler. ASM is a well-defined (formal) method based on algebraic concepts. A distinct feature of ASM is its combination of parallel and sequential execution semantics. This makes it an excellent choice to formally specify and verify micro-architectures. We present a compilation scheme and an implementation of a runtime system supporting efficient execution of ASM. After introducing novel analysis techniques we present optimizations allowing us to eliminate many costly operations. Benchmark results show that our baseline compiler is 2-3 magnitudes faster than other ASM implementations. The optimizations further increase the performance of the compiled programs up to 264%. The achieved performance allows our ASM implementation to be used with industry-size applications.
For the exploitation of the available parallelism clustered Very Long Instruction Word (VLIW) processors rely on highly optimizing compilers. Aiming this parallelism, many advanced compiler concepts have been developed and proposed in the past. Many of them concentrate on loops only as most of the execution time is usually spent executing repeating patterns of code. Software pipelining techniques, such as modulo scheduling, try to speed up the execution of loops by simultaneous initiation of multiple iterations, thus additionally exploiting parallelism across loop iteration boundaries. This increases processor utilization at the cost of higher complexity which is especially true for architectures featuring multiple clusters and distributed register files. Additional scheduling constraints need to be considered in order to produce valid schedules. Targeting TI's TMS320C64x+ clustered VLIW architecture, we describe a code generation approach that adapts an iterative modulo scheduling scheme, and also propose two heuristics for cluster assignment, all together implemented within the popular LLVM compiler framework. We cover implementation of developed algorithms, present evaluation results for a selection of benchmarks popular for embedded system development and discuss gained insights on the topics of integrated modulo scheduling and cluster assignment in this paper.
An instruction set simulator is an important tool for system architects and for software developers. However, when implementing a simulator, there are many choices which can be made and that have an effect on the speed and the accuracy of the simulation. They are especially relevant to DSP simulation. This chapter explains the different strategies for implementing a simulator.
Increasing system complexity of SoC (system-on-chip) and SiP (system-in-package) applications leads to the strong demand of platform based solutions. Software programmable embedded cores are required to provide flexibility to these platforms. Compared with dedicated hardware implementations the provided flexibility leads to increased silicon area and power dissipation, which is problematic for high volume products. This paper introduces xDSPcore, a scalable embedded DSP processor which allows to scale major architectural features to application specific requirements. Compatibility issues caused by different core versions are covered by the support of efficient programming in high-level languages like C, which is achieved by an optimizing C-compiler and by a compiler friendly core architecture. A particular core definition is specified by a XML based configuration file.
Optimizing compilers play an important role for the efficient execution of programs written in high level programming languages. Current microprocessors impose the problem that the gap between processor cycle time and memory latency increases. In order to fully exploit the potential of processors, nearly optimal register allocation is of paramount importance. In the predominance of the x86 architecture and in the increased usage of high-level programming languages for embedded systems peculiarities and irregularities in their register sets have to be handled. These irregularities makes the task of register allocation for optimizing compilers more difficult than for regular architectures and register files. In this article we show how optimistic graph coloring register allocation can be extended to handle these irregularities. Additionally we present an exponential algorithm which in most cases can compute an optimal solution for register allocation and copy elimination. These algorithms are evaluated on a virtual processor architecture modeling two and three operand architectures with different register file sizes. The evaluation demonstrates that the heuristic graph coloring register allocator comes close to the optimal solution for large register files, but performs badly on small register files. For small register files the optimal algorithm is fast enough to replace a heuristic algorithm.
Synopsis These polynomials, which are intimately connected with the Legendre, Laguerre and Jacobi polynomials, are orthogonal with respect to Stieltjes weight functions which are absolutely continuous on (− 1, 1), (0, ∞) and (0, 1), respectively, but which have jumps at some of the intervals' ends. Each set satisfies a fourth order differential equation of the form Ly = λ n y , where the coefficients of the operator L depends only upon the independent variable. The polynomials also have other properties, which are usually associated with the classical orthogonal polynomials.
In a virtual machine interpreter, the code for each virtual machine instruction has similarities to code for other instructions. We present an interpreter generator that takes simple virtual machine instruction descriptions as input and generates C code for processing the instructions in several ways: execution, virtual machine code generation, disassembly, tracing, and profiling. The generator is designed to support efficient interpreters: it supports threaded code, aching the top‐of‐stack item in a register, combining simple instructions into superinstructions, and other optimizations. We have used the generator to create interpreters for Forth and Java. Theresulting interpreters are faster than other interpreters for the same languages and they are typically 2–10 times slower than code produced by native‐code compilers. We also present results for the effects of the individual optimizations supported by the generator. Copyright © 2002 John Wiley & Sons, Ltd
Dynamic binary translators compile machine code froma source architecture to a target architecture at run time.Due to the hard time constraints of just-in-time compilationonly highly efficient optimization algorithms can beemployed. Common problems are an insufficient numberof registers on the target architecture and the different handlingof condition codes in source and target architecture.Without optimizations useless stores and computations aregenerated by the dynamic binary translator and cause significantperformance losses. In order to eliminate these use-lessoperations, a very fast liveness analysis is required.We present a dynamic liveness analysis algorithm thattrades precision for fast execution and conducted experimentswith the SpecInt95 benchmark suite using our PowerPCto Alpha translator. The optimizations reduced thenumber of stores by about 50 percent. This resulted in aspeed-up of 10 to 30 percent depending on the target machine.The dynamic liveness analysis results are very closeto the most precise solution.
Let L denote the non-selfadjoint discrete Schrodinger operator generated in l(2)(IN) by the difference expression(ly)(n) = y(n-1) + y(n+1) + b(n)y(n), n is an element of IN = {1,2,...,}and the boundary condition y(0) = 0, where {b(n)}(n=1)(infinity) is a complex sequence. In this paper we investigate Weyl-Titchmarsh (W-T) function of the operator L and obtained the relation between W-T function and the generalized spectral function of L in the sense of MARCHENKO. Moreover we find Cauchy type integral representation of W-T function. Using this representation we derived the spectral expansion of L in terms of the principal vectors, taking into account the spectral singularities.
In this paper we investigate the spectrum of the non-selfadjoint difference operator L generated in l(2) (N) by the difference expression(ly)(n) = a(n)-1y(n-1) + b(n)Y(n) + a(n)y(n+1), n is an element of N = {1, 2,...}and the boundary condition[GRAPHICS]where a(0) = 1, h(0) not equal 0 and {a(n)}(n=1)(infinity), {b(n)}(n=1)(infinity), {h(n)}(n=1)(infinity), are complex sequences and {h(n)}(n=1)(infinity), is an element of l(2)(N). We prove that L has the continuous spectrum, filling the segment [-2, 2], a finite number of eigenvalues and spectral singularities with finite multiplicities if[GRAPHICS]The results about the spectrum of L are applied to the non-selfadjoint Jacobi matrices and discrete Schrodinger operators.
In this paper, using Livšic's theorem, we investigate the problem of completeness of the system of eigenfunctions and associated functions of dissipative operators generated by the Sturm–Liouville differential expression on the semi-axis in Weyl's limit-circle case.
We present a method for optimal whole-procedure instruc- tion scheduling for machines with unlimited resources: The program and its dependences are transformed into a linear programming problem, which can then be solved using an off-the-shelf linear problem solver. This scheduler is an intermediate step towards a more realistic global instruction scheduler, but it has also an immediate use: We use it to evaluate the significance of the restrictions imposed by static schedul- ing and for determining an upper bound for the performance of more realistic global instruction schedulers. We have applied the scheduler to several benchmarks and compared it to a dynamic scheduler with un- limited resources. For some benchmarks, they perform equally well; for others, dynamic scheduling performs much better; on closer inspection it appears that the causes for this performance difference can be reduced by performing well-known transformations before scheduling (in particular, loop transformations).
In this article we investigate the spectrum and the spectral singularities of the Quadratic Pencil of Schrödinger OperatorLgenerated inL2(R+) by the differential expressionℓ(y)=−y″+[q(x)+2λp(x)−λ2]y,x∈R+=[0,∞)and the boundary condition∫∞0K(x)y(x)dx+αy′(0)−βy(0)=0,wherep,q, and K are complex valued functions, p is continuously differentiable onR+,K∈L2(R+), andα,β∈C, with |α|+|β|≠0. Discussing the spectrum, we prove that L has a finite number of eigenvalues and spectral singularities with finite multiplicities, if the conditionslimx→∞p(x)=0,supx∈R+{eεx[|q(x)|+|p′(x)|+|K(x)|]}<∞,ε>0.Later we investigate the properties of the principal functions corresponding to the spectral singularities. Moreover, some results about the spectrum ofLare applied to non-selfadjoint Sturm–Liouville and Klein–Gordons-wave operators.
Traditionally Bessel functions are considered in the spaces L(2)(0, 1; x) and L(2)(0, infinity; x), where the weight function x is the coefficient of lambda in the formally self-adjoint differential equation-(xy')' + (n(2)/x)y = lambda xy,satisfied by the Bessel functions J(n)(root lambda x), J(-n)(root lambda x) and/or Y-n(root lambda x). We examine instead the same equation and its solutions in a Sobolev spaces H-1, generated in part by the left side of the differential equation. The Bessel operators remain self-adjoint and their spectral resolutions remain the same in the new settings.
It is shown that for appropriate functions the Fourier integrals on [0, infinity) and (-infinity, infinity) converge in the sense of the norm \\f\\=(integral[\f'\(2)+k\f\(2)]dx)(1/2), k > 0. These results are special cases of convergence in ''left definite spaces'' associated with second order Sturm-Liouville operators. An extension of the Fourier integral results is made to the more general Sturn-Liouville operators.
This article completes earlier work concerning the Laguerre type differential operator of fourth order, set in a weighted Sobolev space on [0, ∞). It is shown that the operator, which is self-adjoint in L2(0, ∞; e−x) ⊗ R, is also self-adjoint in the new space, whose inner product also involves first and second derivatives. Further, the spectrum remains unchanged, the Laguerre type polynomials are eigenfunctions, and the spectral resolution, associated with the operator, is still an eigenfunction expansion.
Left definite theory of regular self-adjoint operators in a Sobolev space was developed a few years ago when the boundary conditions were separated, the separation being necessary in order to properly define the Sobolev inner product. We show how this may be extended when the boundary conditions are not separated, but when evaluations at both ends are mixed together. There are essentially three cases which arise: First when a coefficient matrix is nonsingular, second when it is singular but not 0, third when it is 0. The middle case does not arise under separated conditions.
The operator theory associated with the Hermite polynomials does not extend to the generalized Hermite polynomials because the even and odd polynomials satisfy different differential equations. We show that this leads to two problems, each of interest on its own. We then weld them together to form a united spectral expansion. In addition, the exponent μ \mu in the weight | x | 2 μ e − x 2 |x{|^{2\mu }}{e^{ - {x^2}}} has traditionally always been greater than − 1 2 - \frac {1}{2} . We show what happens if μ ≤ − 1 2 \mu \leq - \frac {1}{2} . Finally, we examine the differential equations in left-definite spaces.