| D. M. Ungar. The Design and Evaluation of a High Performance Smalltalk System. ACM Distinguished Dissertations. MIT Press, Cambridge, MA, 1987. |
....8 1.77 Table 4 (a) Number of dispatch tables visited. probes per table. Again, in the majority of cases the first probe is successful, but the average is 3.89 probes per hash table. On average, a message requires 8.48 hash table probes. A conservative estimate of the cost of DTS from [54] is 250 cycles, this is consistent with other measurements ( 55] 16] Although very slow, DTS is space efficient. It is also well suited to the requirements of an interactive environment. For both of these reasons, it is used as a backup strategy in SMALLTALK80 implementations [16] 30] ....
....[54] is 250 cycles, this is consistent with other measurements ( 55] 16] Although very slow, DTS is space efficient. It is also well suited to the requirements of an interactive environment. For both of these reasons, it is used as a backup strategy in SMALLTALK80 implementations [16] 30] [54], 55] and SELF [56] Driesen [26] estimates the memory requirements of DTS to 2MH, where M is the number of methods in the system and H is the hash table overhead estimated to 133 . OBJECTWORKS SMALLTALK has 8,780 methods, and thus hash tables require approximately 93 KB. The code sequence at ....
[Article contains additional citation context not shown here]
Ungar, D.: The Design and Evaluation of a High Performance Smalltalk System. PhD Thesis, The MIT Press, 1987.
....optimisation is justified. pointer to each object in its handle needed to be patched. However, it appears that accessing objects via handles slows down execution of Java applications significantly (this problem was first observed, and the VM without handles implemented, for Smalltalk by Ungar [Ung86] Therefore the next generation Sun s VMs, i.e. EVM and HotSpot, are both handleless . Java objects in these VMs point to other objects directly. Other modern JVMs, e.g. IBM Jalapeno, are also handleless. Handles would simplify runtime evolution in cases when it is required to replace the ....
D. Ungar. The Design and Evaluation of a High Performance Smalltalk System. PhD thesis, University of California, Berkeley, February 1986. http://sunsite.berkeley.edu/Dienst/UI/2.0/Describe/ncstrl.ucb/CSD-86-287?abstract=smalltalk.
....The cost of DTS is a function of the cost of probing the hash table, of the average number of probes per table, and of the average number of tables visited per message send [5] For SMALLTALK 80, a message requires, on average, 8. 48 hash table probes [2] The cost of DTS is estimated as 250 cycles [13], 10] Although very slow, DTS is space efficient. For this reason, it is used as a backup strategy in SMALLTALK 80 [3] LISP [11] and SELF [10] Driesen [6] estimates the memory requirements of DTS to be 2MH, where M is the number of methods in the system and H is the hash table overhead (133 ) ....
....the cache. There are two major approaches to caching: one is to have one global look up cache, and the other is to have small inline caches at each call site. 3.2. 1 Global Look up Caches (LC) This technique uses a global cache of frequently invoked methods to accelerate look up [2] 3] [13]. The cache is a table of triples (selector, class identifier, method address) Hashing a class and a selector returns a slot in the cache. If the class and selector stored in the cache match, control is transferred to the method. Otherwise, a backup dispatching technique is used, usually DTS, and ....
[Article contains additional citation context not shown here]
Ungar, D.: The Design and Evaluation of a High Performance Smalltalk System. PhD Thesis, The MIT Press, 1987.
....[31] Harissa [33] TurboJ [26] Toba [28] NET [8] SuperCede [27] PSC1000 [4] ILP [5] picoJava [3] JEM1 microJava701 Guava [29] Fig. 1. Executing Java byte codes Smalltalk systems such as SOAR and Mushroom provide architectural support for e#cient object addressing and dynamic dispatches [16], 10] Further, various Forth machines that are stack based like the JVM include various features to enhance performance of stack operations [30] The proposed Java architecture is a stack machine executing bytecodes directly on silicon. Sun s microJava, picoJava I [3] and the Patriot Scientific ....
....tag and receiver hit for the HC scheme is illustrated in Figure 14.The entry (R1,M1) in the HC corresponds to the receiver type R1 and the location of method M1 corresponding to the class of receiver R1. The HC scheme is similar to other inline cache schemes proposed for Smalltalk systems [15] [16]. The proposed scheme makes use of the receiver type locality at the call sites like the inline cache mechanisms. However, unlike an inline cache mechanism that inserts the receiver type checking the prologue to each method, type checking is performed in hardware in the proposed processor. The ....
D. Ungar, The Design and Evaluation of a High-Performance Smalltalk System, MIT Press, Cambridge, MA, 1987. 332, 347
....immutable objects can be eliminated. It is very pleasant to exploit this freedom in writing an optimizing compiler. Mutable cells In ML the updateable parts of data structures (ref cells) are identified at compile time. This could be useful to a garbage collector. Generational garbage collectors[24, 42] segregate heap allocated records by age. Because records are initialized (to point to already existing records) when they are created, newer records usually point to older records. The only way that an older record can point to a newer record is by an update to the older record after the newer ....
....to efficiently identify all those cells in an older generation that have been updated to point into a newer generation. There are many ways to keep track of updated cells. A software approach is to have the compiler generate code after each assignment statement to keep a list of all cells updated [42]. It s not necessary to put newly allocated cells on this list, of course. So all the compiler needs to do is distinguish initializing store instructions from updating stores. This is easy to do in ML, as it is in Lisp and any other language where records are initialized as they are allocated. It ....
David M. Ungar. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, Cambridge, MA, 1986.
....a virtual machine with a standard set of low level, machine language like p code instructions that were emulated on different hardware. A Pascal compiler that emitted p code executables could produce a program that could be run under the P System on different platforms. SOAR (Smalltalk On A RISC) [21] modified the RISC II design to support Smalltalk. The SOAR architecture provides support for frequent method invocations, by implementing overlapping of register windows. It also supports inline caching to find the targets of virtual call sites and tag checks for helping generational garbage ....
D. M. Ungar. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, 1987.
....ACST VM for practical use, because most of message passings in the exported language object are executed on the ACST VM. An improvement of the ACST VM can incorporate traditional Smalltalk virtual machine implementation techniques [Deutsch and Schiffmann 84] Caudill and Wirfs Brock 86] Moss 87] Ungar 87] Moreover, the exported language objects can be optimized by using both compilation and translation techniques [Chambers and Ungar 91] Yasumatsu and Doi 94] Both Modular Smalltalk [Wirfs Brock and Wilkerson 88] and ACST are similar in a point that each language allow their program to run on ....
D. M. Ungar. The Design and Evaluation of High Performance Smalltalk System. The MIT Press, 1987.
....2 . Nevertheless, the ideas presented by the SmallTalk interface can form an ideal to aspire to. 1 Opponents of the language would argue that its meta regressive class hierarchy was far from elegant 2 Although work is being done to improve the performance of SmallTalk and similar systems[Ungar] 7.2 The choice of implementation environment 116 While the dynamic behaviour made available by SmallTalk s virtual machine is highly desirable, the associated degradation of performance caused by translating virtual machine instructions into the native machine code of a platform is not. Some ....
David Michael Ungar. The Design and Evaluation of a High Performance Smalltalk system. The MIT Press, 1987.
.... [8] Most recently, microprocessor performance has been evaluated based on the SPEC92 and SPEC95 benchmarks, a mixture of C and FORTRAN programs [9] Over the years architectural trends tailored system design in order to support or directly execute certain programming languages or models [6, 10, 11]. Most current workload driven design has focused on improving the performance of FORTRAN and C programs. More recently, the Object Oriented Programming paradigm (OOP) has steadily grown in popularity, especially through the use of languages such as C and Java. Concepts such as information ....
David M. Ungar. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, 1987.
....2 above. The only way that an older generation can point to a younger one is by an assignment to an already existing record. To detect such assignments, each modification of a heap object must be examined to see whether it violates property 2. This checking can be done by special hardware [25, 35], or by compilers [34] In the latter case, two or more instructions are required. Fortunately, non initializing assignments are rare in Lisp, Smalltalk, and similar languages [25, 35, 30, 3] but the overhead of the instruction sequence for checking (without special hardware) is still on the order ....
....heap object must be examined to see whether it violates property 2. This checking can be done by special hardware [25, 35] or by compilers [34] In the latter case, two or more instructions are required. Fortunately, non initializing assignments are rare in Lisp, Smalltalk, and similar languages [25, 35, 30, 3] but the overhead of the instruction sequence for checking (without special hardware) is still on the order of 5 10 of total execution time. Virtual memory hardware can detect assignments to old objects. If dirty is available, the collector can examine dirtied pages to derive pointers from ....
David M. Ungar. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, Cambridge, Mass., 1986.
....type errors and it makes the semantics of widening more intuitive and simpler. The other important advantage of widening is that it is easy to implement. Widening may be eciently implemented because it does not change the memory layout of an object (see Section 5) This is not true for become: [13] nor change class. The CommonLisp change class, as the widening operator, preserves eq equivalence. If this has no consequence for widening it has a consequence for change class where a kind of double indirection is required to access object slots. If an object stays eq to what it used to be ....
D. Ungar. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, Cambridge, Mass., USA, 1986.
....increase, the cache size to be reduced, or the cache access to 29 CHAPTER 3. SUBWORD CACHES 30 take an extra cycle; any of which would degrade performance. Because of the extra hardware requirements in the cache access path, some experimental architectures (MIPS [HJBG81] MIPS X [Cho86] SOAR [Ung87] MultiTitan [JDBN88] and even some commerical architectures (AMD29K [AMD88] ALPHA [Dig92] have not included subword datatype accesses. Instead, these architectures support subword data references in software. Software support of subword loads and stores can hurt performance because of the ....
....addressing yielded a 7.7 to 14.6 percent performance advantage over byte addressing for their Pascal benchmarks. If the cycle time were equal, that would translate into a 7.3 to 0.4 percent performance disadvantage in cycles for word addressing. This is similar to Ungar s simulations for SOAR [Ung87] which showed that there is a 7 percent penalty in cycles for not directly suppporting load and store byte, and instead using insert and extract. Even though the software penalty for subword access in a word addressed machine may be more than compensated by the access time benefit, directly ....
David Ungar. The Design and Evaluation of a High Performance Smalltalk System. The MIT Press, 1987.
....rarely varies; if a message is sent to an object of type X at a particular call site, it is likely that the next send will also go to an object of type X. For example, several studies have shown that the receiver type at a given call site remains constant 95 of the time in Smalltalk code [35][127][126] This locality of type usage can be exploited by caching the looked up method address at the call site. Because the lookup result is cached in line at every call site (i.e. no separate lookup cache is accessed in the case of a hit) the technique is called inline caching. The previous ....
....19 ratio) it degenerates to the cost of the technique used by the system lookup routine (often, a global lookup cache) plus the extra overhead of the instructions updating the inline cache. Fortunately, hit ratios are usually very good, on the order of 90 99 for typical Smalltalk or SELF code [127], 70] Therefore, many current Smalltalk implementations incorporate inline caches. 3.2.3 Polymorphic inline caching (PIC) Inline caches are effective only if the receiver type (and thus the call target) remains relatively constant at a call site. Although inline caching works very well for the ....
[Article contains additional citation context not shown here]
David Ungar. The Design and Evaluation of a High-Performance Smalltalk System. MIT Press, Cambridge, MA, 1987.
....parametrization which are essential to writing reusable code. 1.2 Historical Perspective Sather is not the first attempt at trying to make object oriented programs efficient. An example of implementing efficient object oriented programming environment is the SOAR (Smalltalk On A RISC) project [6]. SOAR, however, tries to bridge the semantic gap between language and hardware from exactly the opposite side to Sather. More specifically, SOAR tries to gain efficiency of Smalltalk programs using an architectural approach. Starting with a RISC architecture, the aim was to add a certain number ....
....operations directly. SOAR and Sather have different approaches for overcoming this dilemma. We look first at SOAR. Tagged data. SOAR supports tagged data. To reduce the cost of arithmetic and comparison operations, SOAR checks the tags and performs the operation simultaneously. According to [6], over 90 of the operations perform integer addition. Hence, most of the time, the result is available after 1 cycle. If the data types are wrong, SOAR traps to routines that carry out the appropriate computation for general data types. Tagged immediate operands. SOAR s immediate operand ....
[Article contains additional citation context not shown here]
David Michael Ungar. The design and evaluation of a high performance smalltalk system. Technical Report UCB/CSD 86/287, Computer Science Division, University of California, Berkeley, Ca., March 1986.
....object oriented systems, and constructed a prototype implementation of that architecture. Detailed quantitative evaluation of this architecture is the subject of ongoing work 1 . The mushroom architecture follows in the tradition of risc support for object oriented languages pioneered by soar [5]. It possesses classical risc features such as a load store memory interface, delayed branches and register windows, but also includes some features specifically for the support of dynamic object oriented languages, such as tagged memory and parallel tag checking arithmetic and comparison ....
D. M. Ungar. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, 1987.
....NC 27695 Internet: efg ncsu.edu, jmchang ncsu.edu Object oriented systems allocate memory prolifically, frequently generating many allocation requests for each executable line of code. Much research in optimizing memory management has concentrated on innovative garbage collection strategies [Ung 87, UnJa 88, WM 89] We are investigating how hardware support can benefit these strategies. Our approach employs a cache coprocessor. From the viewpoint of software, the only changes needed are to the calls to allocation and deallocation routines. Except for that, current software is fully ....
D. M. Ungar, The Design and Evaluation of a High Performance Smalltalk System, MIT Press, 1987. 6
.... (local Submitted to the ACM Transactions on Programming Languages and Systems 42 Delta Eric Dujardin et al. to a generic function or an invocation) in CLOS, PCL and Sather [Kiczales and Rodriguez 1990; Schmidt and Omohundro 1991] inline caches in Smalltalk and Self [Deutsch and Schifman 1984; Ungar 1986; Ungar and Patterson 1987; Chambers et al. 1989; Holzle et al. 1991] Kiczales and Rodriguez 1990] proposes to extend its cache per generic function scheme to multi method dispatch. Hashing is applied to the types of all the arguments, instead of a single argument, to access a cache entry. The ....
Ungar, D. 1986. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, Cambridge, MA.
....support. For example, the Xerox Dorado, for a long time the fastest Smalltalk implementation available, contained microcode support for large portions of the Smalltalk virtual machine [Deu83] Ungar reported that the SOAR system would have been 26 slower without instructions for tagged arithmetic [Ung87]. Williams and Wolczko argued that software controlled caching improves the performance and locality of object oriented systems [WW90] However, none of the systems previously studied employed compiler optimizations specifically aimed at reducing the overhead of message passing. Thus, the results ....
....Usage When designing an architecture, one of the first tasks is to identify frequent operations and then to optimize their performance. Many previous studies have found the execution characteristics of object oriented languages to be very different from C. For example, Smalltalk studies [Kra83, Ung87] have shown calls to be much more frequent than in other languages. Even for a hybrid language like C (which has C at its core and thus shouldn t behave too differently at runtime) significant differences were found. Table 2 shows data from a study by Calder et al. CGZ94] which measured the ....
[Article contains additional citation context not shown here]
David Ungar. The Design and Evaluation of a High-Performance Smalltalk System. MIT Press, Cambridge, MA, 1987.
....collector. So far, no one has found a perfect solution. Each scheme has its own weakness; for example reference counting fails to reclaim circular structures; Baker s algorithm [Bak77] and its descendents, including [LH83, AEL88] require a potentially costly read barrier; Generation Scavenging [Ung84, Ung86, UJ88] may fill up memory with tenured garbage, opportunistic strategies [Wil89] may fail to receive adequate opportunities, multiple generation stop and copy algorithms [CW86] may experience long waterfall pauses when an old generation requires reclamation. Now, at Berkeley I (Ungar) learned from ....
D. Ungar, The Design and Evaluation of a High Performance Smalltalk System, MIT Press, 1987.
....the reference by scanning backwards to the object s mark word and then converting the mark word s address into an object reference by adding the right tag bits to the address. 6.1. 3 Garbage Collection The SELF implementation reclaims inaccessible objects using a version of Generation Scavenging [Ung84, Ung87] with demographic feedback mediated tenuring [UJ88] augmented with a traditional mark sweep collector to reclaim tenured garbage. The SELF heap is currently configured using a 200KB eden memory space for newly allocated objects, a pair of 200KB survivor memory spaces for objects that have ....
....that are normally the only ones used in traditional languages; the only mispredictions occur in benchmarks translated from Lisp which overload = to compare both integers and cons cells. However, even in large Smalltalk systems, the receiver of a message like is an integer 90 to 95 of the time [Ung87], so type prediction is useful even for programs written in a heavily object oriented style. As reported in section 14.3, type prediction speeds SELF programs by a factor of 3 on average, with object oriented SELF programs benefitting almost as much as more traditional, numeric benchmarks. Type ....
David Michael Ungar. The Design and Evaluation of a High-Performance Smalltalk System. MIT Press, Cambridge, MA, 1987.
No context found.
D. M. Ungar. The Design and Evaluation of a High Performance Smalltalk System. ACM Distinguished Dissertations. MIT Press, Cambridge, MA, 1987.
No context found.
D. Ungar. The Design and Evaluation of a High Performance Smalltalk System. ACM Distinguished Dissertations. MIT Press, Cambridge, MA, 1987. Ph.D. Dissertation, University of California at Berkeley, February 1986.
No context found.
David M Ungar. The Design and Evaluation of a High Performance Smalltalk System. Massachusetts Institute of Technology, 1987.
No context found.
David Ungar. The Design and evaluation of a high-performance Smalltalk System. MIT Press, Cambridge, 1987.
No context found.
D. Ungar. The Design and Evaluation of a High Performance Smalltalk System. MIT Press, 1987.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC