skip to main content
research-article

L2C: Combining Lossy and Lossless Compression on Memory and I/O

Published:14 January 2022Publication History
Skip Editorial Notes Section

Editorial Notes

The authors have requested minor, non-substantive changes to the VoR and, in accordance with ACM policies, a Corrected Version of Record was published on March 28, 2022. For reference purposes, the VoR may still be accessed via the Supplemental Material section on this citation page.

Skip Abstract Section

Abstract

In this article, we introduce L2C, a hybrid lossy/lossless compression scheme applicable both to the memory subsystem and I/O traffic of a processor chip. L2C employs general-purpose lossless compression and combines it with state-of-the-art lossy compression to achieve compression ratios up to 16:1 and to improve the utilization of chip’s bandwidth resources. Compressing memory traffic yields lower memory access time, improving system performance, and energy efficiency. Compressing I/O traffic offers several benefits for resource-constrained systems, including more efficient storage and networking. We evaluate L2C as a memory compressor in simulation with a set of approximation-tolerant applications. L2C improves baseline execution time by an average of 50% and total system energy consumption by 16%. Compared to the lossy and lossless current state-of-the-art memory compression approaches, L2C improves execution time by 9% and 26%, respectively, and reduces system energy costs by 3% and 5%, respectively. I/O compression efficacy is evaluated using a set of real-life datasets. L2C achieves compression ratios of up to 10.4:1 for a single dataset and on average about 4:1, while introducing no more than 0.4% error.

Skip Supplemental Material Section

Supplemental Material

REFERENCES

  1. [1] Gantz J. and Reinsel D.. 2012. The digital universe in 2020: Big data, bigger digital shadows, and biggest growth in the far east. IDC iView: IDC Analyze the Future 2007, 2012 (2012), 116.Google ScholarGoogle Scholar
  2. [2] Ahn J. et al. 2015. Pim-enabled instructions: a low-overhead, locality-aware processing-in-memory architecture. In ISCA. ACM/IEEE, 336–348. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. [3] Ahn Junwhan, Hong S., Yoo S., Mutlu O., and Choi K.. 2016. A scalable processing-in-memory accelerator for parallel graph processing. In ISCA. ACM/IEEE, 105–117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. [4] Pavlovic Milan, Etsion Y., and Ramirez A.. 2011. On the memory system requirements of future scientific applications: Four case-studies. In Proceedings of the IEEE International Symposium on Workload Characterization (IISWC’11). 159170. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. [5] Rogers Brian M., Krishna A., Bell G. B., Vu K., Jiang X., and Solihin Y.. 2009. Scaling the bandwidth wall: Challenges in and Avenues for CMP Scaling. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA’09).371382.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. [6] NVIDIA. 2015. Nvidia tegra x1: Nvidia’s New Mobile Superchip. Whitepaper.Google ScholarGoogle Scholar
  7. [7] Doggett M.. 2012. Texture caches. MICRO 32, 3 (2012), 136141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. [8] Kim Jungrae, Sullivan M., Choukse E., and Erez M.. 2016. Bit-plane compression: Transforming data for better compression in many-core architectures. In Proceedings of the ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA’16). ACM/IEEE, 329340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. [9] Eldstål-Damlin Albin, Trancoso P., and Sourdis I.. 2019. AVR: Reducing memory traffic with approximate value reconstruction. In Proceedings of the 48th International Conference on Parallel Processing. 110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. [10] Eldstål-Ahrens Albin and Sourdis I.. 2020. MemSZ: Squeezing Memory Traffic with Lossy Compression. ACM Trans. Archit. Code Optim. 17, 4 (2020), 40:1–40:25.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. [11] Alameldeen A. and Woo D.. 2004. Frequent pattern compression: A significance-based compression scheme for L2 caches. University of Wisconsin-Madison Department of Computer Sciences, Tech. Rep.Google ScholarGoogle Scholar
  12. [12] Chen X., Yang L., Dick R. P., Shang L., and Lekatsas H.. 2010. C-pack: A. High-performance microprocessor cache compression algorithm. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 18, 8 (2010) 11961208. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. [13] Pekhimenko Gennady, Seshadri V., Mutlu O., Gibbons P. B., Kozuch M. A., and Mowry T. C.. 2012. Base-delta-immediate compression. In Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques (PACT’12). 377388. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [14] Arelakis Angelos and Stenstrom P.. 2014. SC2: a statistical compression cache scheme. SIGARCH Comput. Archit. News 42, 3 (2014), 145156. DOI: https://doi.org/10.1145/2678373.2665696 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. [15] Arelakis Angelos, Dahlgren F., and Stenstrom P.. 2015. HyComp: A hybrid cache compression method for selection of data-type-specific compression methods. In MICRO. IEEE, 3849. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. [16] Chippa Vinay K., Chakradhar S., Roy T. K., and Raghunathan A.. 2013. Analysis and characterization of inherent application resilience for approximate computing. In Proceedings of the 50th Annual Design Automation Conference (DAC’13). 19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. [17] Goldschneider J. R.. 1997. Lossy Compression of Scientific Data via Wavelets and Vector Quantization. Ph.D. Dissertation, University of Washington, 1997.Google ScholarGoogle Scholar
  18. [18] Deepu Chacko J., Heng C.-H., and Lian Y.. 2017. A hybrid data compression scheme for power reduction in wireless sensors for IoT. IEEE Trans. Biomed. Circ. Syst. 11, 2 (2017), 245254.Google ScholarGoogle ScholarCross RefCross Ref
  19. [19] Abali Bulentet al. 2020. Data compression accelerator on IBM POWER9 and z15 processors : Industrial product. In Proceedings of the ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA’20). IEEE, 114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. [20] Di Sheng and Cappello F.. 2016. Fast error-bounded lossy HPC data compression with SZ. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium (IPDPS’16). IEEE, 730739.Google ScholarGoogle ScholarCross RefCross Ref
  21. [21] Benini L., Bruni D., Ricco B., Macii A., and Macii E.. 2002. An adaptive data compression scheme for memory traffic minimization in processor-based systems. In ISCAS, vol. 4. IEEE, IV–IV.Google ScholarGoogle Scholar
  22. [22] Dusser Julien and Seznec A.. 2011. Decoupled zero-compressed memory. Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers (HiPEAC’11). ACM, 7786. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. [23] Kim Seikwon, Lee S., Kim T., and Huh J.. 2017. Transparent dual memory compression architecture. In Proceedings of the 26th International Conference on Parallel Architectures and Compilation Techniques (PACT’17). 206218.Google ScholarGoogle ScholarCross RefCross Ref
  24. [24] Malek Alirad, Vasilakis E., Papaefstathiou V., Trancoso P., and Sourdis I.. 2017. Odd-ecc: on-demand dram error correcting codes. In Proceedings of the International Symposium on Memory Systems. 96111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. [25] Pekhimenko Gennady, Seshadri Vivek, Kim Yoongu, Xin Hongyi, Mutlu Onur, Gibbons Phillip B., Kozuch Michael A., and Mowry Todd C.. 2013. Linearly compressed pages: a low-complexity, low-latency main memory compression framework. In MICRO. IEEE, 172184.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] Shafiee Ali, Taassori M., Balasubramonian R., and Davis A.. 2014. Memzip: Exploring unconventional benefits from memory compression. In Proceedings of the IEEE 20th International Symposium on High Performance Computer Architecture (HPCA’14). IEEE, 638649.Google ScholarGoogle ScholarCross RefCross Ref
  27. [27] Kanakagiri Raghavendra, Panda B., and Mutyam M.. 2017. Mbzip. ACM Trans. Archit. Code Optim. 14, 4 (2017), 129. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. [28] Hong Seokin, Nair P. J., Abali B., Buyuktosunoglu A., Kim K.-H., and Healy M.. 2018. Attaché: Towards ideal memory compression by mitigating metadata bandwidth overheads. In Proceedings of the 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’18). IEEE, 326338. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. [29] Choukse Esha, Erez M., and Alameldeen A. R.. 2018. Compresso: Pragmatic main memory compression. In Proceedings of the 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 546558. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. [30] Vecchio Massimo, Giaffreda R., and Marcelloni F.. 2014. Adaptive lossless entropy compressors for tiny iot devices. IEEE Trans. Wireless Commun. 13, 2 (2014), 10881100.Google ScholarGoogle ScholarCross RefCross Ref
  31. [31] Campobello G.. 2018. An efficient lossless compression algorithm for electrocardiogram signals. In Proceedings of the 26th European Signal Processing Conference (EUSIPCO’18). 777781.Google ScholarGoogle ScholarCross RefCross Ref
  32. [32] Vestergaard Rasmus, Zhang Q., and Lucani D. E.. 2019. Generalized deduplication: Lossless compression for large amounts of small iot data. In European Wireless 2019; 25th European Wireless Conference. 15.Google ScholarGoogle Scholar
  33. [33] Blalock Davis, Madden S., and Guttag J.. 2018. Sprintz: Time series compression for the internet of things. Proc. ACM Interact. Mob. Wearable Ubiquitous Technol. 2, 3 (Sep. 2018). [Online]. Available: https://doi.org/10.1145/3264903 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. [34] Stojkoska Biljana R. and Nikolovski Z.. 2017. Data compression for energy efficient iot solutions. In Proceedings of the 25th Telecommunication Forum (TELFOR’17). 14.Google ScholarGoogle ScholarCross RefCross Ref
  35. [35] Adedeji K. B.. 2020. Performance evaluation of data compression algorithms for iot-based smart water network management applications. Journal of Applied Science & Process Engineering. 7, 2 (2020), 554563.Google ScholarGoogle ScholarCross RefCross Ref
  36. [36] Moon A.. 2017. Lossy compression on iot big data by exploiting spatiotemporal correlation. In Proceedings of the IEEE High Performance Extreme Computing Conference. 17.Google ScholarGoogle ScholarCross RefCross Ref
  37. [37] Khelifati Abdelouahab, Khayati M., and Cudre-Mauroux P.. 2019. CORAD: Correlation-aware compression of massive time series using sparse dictionary coding. In Proceedings of the IEEE International Conference on Big Data (Big Data’19). 22892298.Google ScholarGoogle ScholarCross RefCross Ref
  38. [38] Pal A. Ukil, S. Bandyopadhyay, A. Sinha, and A.. 2015. Adaptive sensor data compression in iot systems: Sensor data analytics based approach. In Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing. 55155519.Google ScholarGoogle Scholar
  39. [39] Ukil Arijit, Bandyopadhyay S., and Pal A.. 2015. IoT data compression: Sensor-agnostic approach. In Proceedings of the Data Compression Conference. IEEE, 303312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. [40] Esmaeilzadeh Hadi, Sampson A., Ceze L., and Burger D.. 2013. Neural acceleration for general-purpose approximate programs. In Micro. IEEE, 449460. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. [41] Alvarez C., Corbal J., and Valero M.. 2005. Fuzzy memoization for floating-point multimedia applications. IEEE Trans. Comput. 54, 7 (2005), 922927. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. [42] Kruijf Marc D., Nomura S., and Sankaralingam K.. 2010. Relax: An architectural framework for software recovery of hardware faults. In ISCA. ACM/IEEE, 497–508. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. [43] Jevdjic Djordje, Strauss K., Ceze L., and Malvar H. S.. 2017. Approximate storage of compressed and encrypted videos. In ASPLOS. 361–373. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. [44] Sampson Adrian, Nelson J., Strauss K., and Ceze L.. 2014. Approximate storage in solid-state memories. ACM Trans. Comput. Syst. 32, 3 (2014), 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. [45] Miguel Joshua S., Badr M., and Jerger N. E.. 2014. Load value approximation. In Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture. IEEE, 127139. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. [46] Thwaites Bradleyet al. 2014. Rollback-free value prediction with approximate loads. In Proceedings of the 23rd International Conference on Parallel Architectures and Compilation. 493494. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. [47] Yazdanbakhsh Amir, Pekhimenko G., Thwaites B., Esmaeilzadeh H., Mutlu O., and Mowry T. C.. 2016. RFVP: Rollback-free value prediction with safe-to-approximate loads. ACM Trans. Archit. Code Optim. 12, 4 (2016), 62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. [48] Jain A.. 2016. Concise loads and stores: The case for an asymmetric compute-memory architecture for approximation. In Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture. IEEE, 1–13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. [49] Sathish Vijay, Schulte M. J., and Kim N. S.. 2012. Lossless and lossy memory I/O link compression for improving performance of GPGPU workloads. In Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques (PACT’12). 325334. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. [50] Angerd Alexandra, Sintorn E., and Stenström P.. 2017. A framework for automated and controlled floating-point accuracy reduction in graphics applications on gpus. ACM Trans. Archit. Code Optim. 14, 4 (2017), 125. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. [51] Angerd Alexandra, Sintorn E., and Stenstrom P.. 2020. A GPU register file using static data compression. In Proceedings of the 49th International Conference on Parallel Processing (ICPP’20). ACM.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. [52] Judd Patrick, Albericio J., Hetherington T., Aamodt T. M., Jerger N. E., and Moshovos A.. 2016. Proteus: Exploiting numerical precision variability in deep neural networks. In Proceedings of the 2016 International Conference on Supercomputing. ACM, 112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. [53] Ranjan Ashish, Raha A., Raghunathan V., and Raghunathan A.. 2020. Approximate memory compression. IEEE Trans. VLSI Syst. 28, 4 (2020), 980991.Google ScholarGoogle ScholarCross RefCross Ref
  54. [54] Lal Sohan, Lucas J., and Juurlink B.. 2019. SLC: Memory access granularity aware selective lossy compression for GPUs. In Proceedings of the Design, Automation & Test in Europe Conference & Exhibition (DATE’19). IEEE, 11841189.Google ScholarGoogle ScholarCross RefCross Ref
  55. [55] Miguel J. S.. 2015. Doppelganger: A cache for approximate computing. In Proceedings of the Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 5061. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. [56] Sampson Adrian, Dietl W., Fortuna E., Gnanapragasam D., Ceze L., and Grossman D.. 2011. EnerJ: Approximate data types for safe and general low-power computation. ACM SIGPLAN Notices 46, 6 (2011), 164174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. [57] Ekman Magnus and Stenstrom P.. 2005. A robust main-memory compression scheme. SIGARCH Comput. Archit. News 33 (2005), 7485. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. [58] Seznec A.. 1994. Decoupled sectored caches: Conciliating low tag implementation cost and low miss ratio. In Proceedings of 21 International Symposium on Computer Architecture. ACM/IEEE, 384393. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. [59] Luk Chi-Keunget al. 2005. Pin: building customized program analysis tools with dynamic instrumentation. In ACM SIGPLAN Notices, vol. 40. 190200. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. [60] Genbrugge Davy, Eyerman S., and Eeckhout L.. 2010. Interval simulation: Raising the level of abstraction in architectural simulation. The Sixteenth International Symposium on High-performance Computer Architecture (HPCA’10). 112.Google ScholarGoogle Scholar
  61. [61] Rosenfeld P., Cooper-Balis E., and Jacob B.. 2011. Dramsim2: A cycle accurate memory system simulator. IEEE Comput. Archit. Lett. 10, 1 (2011), 1619. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. [62] Li Sheng, Ahn J. H., Strong R. D., Brockman J. B., Tullsen D. M., and Jouppi N. P.. 2009. McPAT: An integrated power, area, and timing modeling framework for multicore and manycore architectures. Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-42). IEEE, 469480.Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. [63] Muralimanohar N., Balasubramonian R., and Jouppi N. P.. 2008. Cacti 6.0: A tool to model large caches. HP lab., vol. 27. 22–31.Google ScholarGoogle Scholar
  64. [64] Quinn M. J.. 2004. Parallel Programming in C with MPI and OpenMP. McGraw-Hill Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. [65] Ansumali S., Karlin I. V., and Öttinger H. C.. 2003. Minimal entropic kinetic models for hydrodynamics. Europhys. Lett. 63, 6 (2003), 798804.Google ScholarGoogle ScholarCross RefCross Ref
  66. [66] Henning J. L.. 2006. SPEC CPU2006 benchmark descriptions. SIGARCH Comput. Archit. News 34, 4 (2006), 117. 10.1145/1186736.1186737 Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. [67] Center University of Chicago ASCF. 2018. Flash4 user’s guide. [Online]. Available http://flash.uchicago.edu/site/flashcode/user_support/flash4_ug_4p6.pdf.Google ScholarGoogle Scholar
  68. [68] Eldstål-Ahrens A.. 2018. 1D K-Means, Open Source. [Online]. Available https://github.com/eldstal/kmeans.Google ScholarGoogle Scholar
  69. [69] Lantmäteriet. 2016. Swedish topological survey hdb 50+ västra götaland, zone 63_3. [Online]. Available: https://www.lantmateriet.se/.Google ScholarGoogle Scholar
  70. [70] NASA/Jpl. 2019. JPL SMAP Level 3 CAP Sea Surface Salinity Standard Mapped Image 8-Day Running Mean v4.3 Validated Dataset. Available https://doi.org/10.5067/smp43-3tpcs.Google ScholarGoogle Scholar
  71. [71] Mcglynn T., Scollick K., and White N.. 1998. Skyview: The multi-wavelength sky on the Internet. In Proceedings of the Symposium of the International Astronomical Union, Vol. 179. 465466. DOI: https://doi.org/10.1017/s0074180900129316Google ScholarGoogle ScholarCross RefCross Ref
  72. [72] Institute Swedish Meteorological and Hydrological. 2020. STRÅNG - a mesoscale model for solar radiation. [Online]. Available http://strang.smhi.se/.Google ScholarGoogle Scholar
  73. [73] Lobov Sergey, Krilova N., Kastalskiy I., Kazantsev V., and Makarov V.. 2018. Latent factors limiting the performance of semg-interfaces. Sensors 18, 4 (2018), 1122.Google ScholarGoogle ScholarCross RefCross Ref
  74. [74] Goldberger Ary L.et al. 2000. PhysioBank, PhysioToolkit, and PhysioNet: Components of a new research resource for complex physiologic signals. Circulation 101, 23 (2000), e215–e220.Google ScholarGoogle ScholarCross RefCross Ref
  75. [75] Makonin Stephen, Ellert B., Bajić I. V., and Popowich F.. 2016. Electricity, water, and natural gas consumption of a residential house in canada from 2012 to 2014. Sci. Data 3, 160037 (2016), 112.Google ScholarGoogle Scholar
  76. [76] Vito S. D.. 2008. On field calibration of an electronic nose for benzene estimation in an urban pollution monitoring scenario. Sens. Actuat. B 129, 2 (2008), 750757.Google ScholarGoogle ScholarCross RefCross Ref
  77. [77] Fonollosa Jordi, Sheik S., Huerta R., and Marco S.. 2015. Reservoir computing compensates slow response of chemosensor arrays exposed to fast varying gas concentrations in continuous monitoring. Sens. Actuat. B 215 (2015), 618629.Google ScholarGoogle ScholarCross RefCross Ref
  78. [78] Helwig Nikolai, Pignanelli E., and Schutze A.. 2015. Condition monitoring of a complex hydraulic system using multivariate statistics. In Proceedings of the IEEE International Instrumentation and Measurement Technology Conference (I2MTC’15). IEEE, 210215.Google ScholarGoogle ScholarCross RefCross Ref
  79. [79] Yazdanbakhsh Amir, Mahajan D., Esmaeilzadeh H., and Lotfi-Kamran P.. 2017. Axbench: A multiplatform benchmark suite for approximate computing. IEEE Des. Test 34, 2 (2017), 6068. DOI: https://doi.org/10.1109/mdat.2016.2630270Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. L2C: Combining Lossy and Lossless Compression on Memory and I/O

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Embedded Computing Systems
        ACM Transactions on Embedded Computing Systems  Volume 21, Issue 1
        January 2022
        288 pages
        ISSN:1539-9087
        EISSN:1558-3465
        DOI:10.1145/3505211
        Issue’s Table of Contents

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 14 January 2022
        • Revised: 1 August 2021
        • Accepted: 1 August 2021
        • Received: 1 February 2021
        Published in tecs Volume 21, Issue 1

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Full Text

      View this article in Full Text.

      View Full Text

      HTML Format

      View this article in HTML Format .

      View HTML Format
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!