[Vm-dev] CogVM Execution Flow

Ben Coman btc at openinworld.com
Tue Jun 14 01:49:52 UTC 2016


On Tue, Jun 14, 2016 at 2:41 AM, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>
> Hi Ben,
>
>     the diagram below shows the trees, but the wood is arguably more important.  The diagram below is focussing on the transitions, but doesn't clearly show what is being transitioned between.  I imagine a diagram which shows the structures and has what you have in the yellow boxes as transitions.  So...
>
> The essential structures are six-fold, three execution state structures, and three bodies of code, and in fact there is overlap of one of each.
>
> These are the execution state structures:
>
> 1. the C stack.
> 2. the Smalltalk stack zone.
> 3. the Smalltalk heap (which includes contexts that overflow the Smalltalk stack zone).
>
> These are the bodies of code:
> 4. the run-time, the code comprising the VM interpreter, JIT, garbage collector, and primitives
> 5. the jitted code living in the machine code zone, comprising methods, polymorphic in line caches, and the glue routines (trampolines and enilopmarts) between that machine code and the run-time
> 6. Smalltalk "source" code, the classes and methods in the Smalltalk heap that constitute the "program" under execution
>
> So 3. and 6. overlap; code is data, and 2. overflows into 3., the stack zone is a "cache", keeping the most recent activations in the most efficient form for execution.
> Further, 4. (the run-time) executes solely on 1. (the C stack), and 5. (the jitted code) runs only on 2. (the stack zone), and also, code in 6. executed (interpreted) by the interpreter and primitives in 4. runs on 2. (the stack zone)

I don't have the charting tool where I am atm, so I knocked up the
above in Excel with a few embellishments that need checking. I am a
bit confused by "primitives in 4. runs on 2. "  when "4. (the
run-time) executes solely on 1."  and primitives are part of 4.

Also I'm not clear on what a "linked-send" is?

cheers -ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Cog-structure%code.png
Type: image/png
Size: 20117 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160614/164f86ed/Cog-structurecode-0001.png


More information about the Vm-dev mailing list