Inverse pointer unboxing
Virtual machines (VM) for dynamic programming languages store a combination of 64-bit data types in each 64-bit register. A motivation to store multiple variables in a single register is speed, since access to variables within a register is much faster than access to variables stored within RAM. Cur...
Main Author: | |
---|---|
Format: | Text |
Language: | unknown |
Published: |
Technical Disclosure Commons
2017
|
Subjects: | |
Online Access: | https://www.tdcommons.org/dpubs_series/527 https://www.tdcommons.org/context/dpubs_series/article/1584/viewcontent/Inverse_pointer_unboxing.pdf |
id |
fttdc:oai:www.tdcommons.org:dpubs_series-1584 |
---|---|
record_format |
openpolar |
spelling |
fttdc:oai:www.tdcommons.org:dpubs_series-1584 2023-06-11T04:17:19+02:00 Inverse pointer unboxing Fairhurst, Michael 2017-05-22T13:24:12Z application/pdf https://www.tdcommons.org/dpubs_series/527 https://www.tdcommons.org/context/dpubs_series/article/1584/viewcontent/Inverse_pointer_unboxing.pdf unknown Technical Disclosure Commons https://www.tdcommons.org/dpubs_series/527 https://www.tdcommons.org/context/dpubs_series/article/1584/viewcontent/Inverse_pointer_unboxing.pdf http://creativecommons.org/licenses/by/4.0/ Defensive Publications Series text 2017 fttdc 2023-05-07T17:26:55Z Virtual machines (VM) for dynamic programming languages store a combination of 64-bit data types in each 64-bit register. A motivation to store multiple variables in a single register is speed, since access to variables within a register is much faster than access to variables stored within RAM. Current approaches of storing multiple 64-bit values in a single 64-bit register result in undesirable effects such as higher register pressure, increased garbage collection burden, excessive boxing/unboxing steps, etc. Most current approaches cannot distinguish a sufficient number of values in 64 bits, as much is hidden behind 64-bit pointers to RAM. This in turn affects performance of the VM. This disclosure makes use of the floating-point specification to store variables of type double, integer, boolean, etc. in non-canonical pointer space, alongside the pointers themselves. In this manner, more variables are packed in a single register, thereby improving performance of virtual machines. Text The Pointers Technical Disclosure Common Boxing ENVELOPE(-61.691,-61.691,-64.586,-64.586) |
institution |
Open Polar |
collection |
Technical Disclosure Common |
op_collection_id |
fttdc |
language |
unknown |
description |
Virtual machines (VM) for dynamic programming languages store a combination of 64-bit data types in each 64-bit register. A motivation to store multiple variables in a single register is speed, since access to variables within a register is much faster than access to variables stored within RAM. Current approaches of storing multiple 64-bit values in a single 64-bit register result in undesirable effects such as higher register pressure, increased garbage collection burden, excessive boxing/unboxing steps, etc. Most current approaches cannot distinguish a sufficient number of values in 64 bits, as much is hidden behind 64-bit pointers to RAM. This in turn affects performance of the VM. This disclosure makes use of the floating-point specification to store variables of type double, integer, boolean, etc. in non-canonical pointer space, alongside the pointers themselves. In this manner, more variables are packed in a single register, thereby improving performance of virtual machines. |
format |
Text |
author |
Fairhurst, Michael |
spellingShingle |
Fairhurst, Michael Inverse pointer unboxing |
author_facet |
Fairhurst, Michael |
author_sort |
Fairhurst, Michael |
title |
Inverse pointer unboxing |
title_short |
Inverse pointer unboxing |
title_full |
Inverse pointer unboxing |
title_fullStr |
Inverse pointer unboxing |
title_full_unstemmed |
Inverse pointer unboxing |
title_sort |
inverse pointer unboxing |
publisher |
Technical Disclosure Commons |
publishDate |
2017 |
url |
https://www.tdcommons.org/dpubs_series/527 https://www.tdcommons.org/context/dpubs_series/article/1584/viewcontent/Inverse_pointer_unboxing.pdf |
long_lat |
ENVELOPE(-61.691,-61.691,-64.586,-64.586) |
geographic |
Boxing |
geographic_facet |
Boxing |
genre |
The Pointers |
genre_facet |
The Pointers |
op_source |
Defensive Publications Series |
op_relation |
https://www.tdcommons.org/dpubs_series/527 https://www.tdcommons.org/context/dpubs_series/article/1584/viewcontent/Inverse_pointer_unboxing.pdf |
op_rights |
http://creativecommons.org/licenses/by/4.0/ |
_version_ |
1768376377497616384 |