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...

Full description

Bibliographic Details
Main Author: Fairhurst, Michael
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