Highly efficient inexact computing storage device

US2016350074A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016350074-A1
Application numberUS-201514838351-A
CountryUS
Kind codeA1
Filing dateAug 27, 2015
Priority dateJun 1, 2015
Publication dateDec 1, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A device ( 105 ) can include storage device ( 110 ) to store data. The device ( 105 ) can also include an accuracy requirement detector ( 120 ). Given an iteration of an algorithm ( 130 ) and the results of previous iterations of the algorithm ( 130 ), accuracy requirement detector ( 120 ) can determine the accuracy required for the current iteration of the algorithm ( 130 ). The device ( 105 ) can also include an adaptive mechanism ( 125 ) that can schedule the iteration of the algorithm ( 130 ) on an available arithmetic logic unit (ALU) based on the accuracy required for the iteration of the algorithm ( 130 ).

First claim

Opening claim text (preview).

What is claimed is: 1 . A device ( 105 ), comprising: a storage ( 110 ) to store data ( 135 ); an accuracy requirement detector ( 120 ) to determine a required accuracy ( 205 ) for an iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of an algorithm ( 130 ); and an adaptive mechanism ( 125 ) coupled to the accuracy requirement detector ( 120 ) within the device ( 105 ), the adaptive mechanism ( 125 ) operative to schedule the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ) using the data ( 135 ) across a plurality of available arithmetic logic units (ALUs) ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) based on a required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ). 2 . A device ( 105 ) according to claim 1 , wherein the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) include at least one of a processor ( 115 ) in the device ( 105 ), an ALU ( 730 - 1 , 730 - 2 , 730 - 3 ) on a host computer ( 705 ), an ALU ( 755 - 1 , 755 - 2 , 755 - 3 ) on a network computer ( 740 ), a general-purpose computing on graphics processing unit (GPGPU) ( 735 ) on the host computer ( 705 ), and a GPGPU ( 760 ) on the network computer ( 740 ). 3 . A device ( 105 ) according to claim 2 , wherein the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) further include a configurable ALU ( 140 - 3 ). 4 . A device ( 105 ) according to claim 3 , wherein the configurable ALU ( 140 - 3 ) is operative to receive a number of bits ( 1125 ) to use in executing the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ). 5 . A device ( 105 ) according to claim 3 , wherein the processor ( 115 , 715 , 750 ) includes the configurable ALU ( 140 - 3 ). 6 . A device ( 105 ) according to claim 2 , wherein the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) include at least a first ALU ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) with a first accuracy ( 305 ) and a second ALU ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) with a second accuracy ( 310 ). 7 . A device ( 105 ) according to claim 2 , wherein the adaptive mechanism ( 125 ) is operative to determine the plurality of available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) by querying ( 805 ) a lookup table ( 815 ). 8 . A device ( 105 ) according to claim 1 , wherein the accuracy requirement detector ( 120 ) is operative to calculate the required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ) by calculating ( 1415 ) a delta ( 210 ) between results in previous iterations ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ) and comparing the delta ( 210 ) against a threshold ( 215 ). 9 . A device ( 105 ) according to claim 1 , wherein the adaptive mechanism ( 125 ) is operative to receive the required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ) from the algorithm ( 130 ). 10 . A device ( 105 ) according to claim 1 , wherein: the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ) includes alternative calculations ( 605 - 1 , 605 - 2 , 605 - 3 , 605 - 4 , 605 - 5 ); and the adaptive mechanism ( 125 ) is operative to select a second plurality of ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) from the plurality of available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ), each of the selected second plurality of ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) operative to execute one alternative calculation ( 605 - 1 , 605 - 2 , 605 - 3 , 605 - 4 , 605 - 5 ) from the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ). 11 . A method, comprising: receiving ( 1305 , 1310 ) an algorithm ( 130 ) and data ( 135 ) to process using the algorithm ( 130 ); determining ( 1320 ) available arithmetic logic units (ALUs) ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ); determining ( 1325 ) a required accuracy ( 205 ) for an iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ); selecting ( 1330 ) one or more of the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) based on the required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ); sending ( 1335 ) the algorithm ( 130 ) and the data ( 135 ) to the selected one or more of the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ); and requesting ( 1340 ) the selected one or more of the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) to execute the algorithm ( 130 ) using the data ( 135 ), wherein a system including the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) is self-configuring to optimize execution of the algorithm ( 130 ) using the data ( 135 ). 12 . A method according to claim 11 , wherein selecting ( 1330 ) one or more of the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) includes selecting ( 1620 ) a Storage Processing Unit (SPU) on a smart Solid State Drive (SSD) based on the required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ), wherein the SPU is capable of executing the algorithm ( 130 ) using the data ( 135 ). 13 . A method according to claim 12 , wherein selecting ( 1620 ) an SPU includes selecting ( 1620 ) the SPU on the smart SSD based on the required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ), the SSD storing the data ( 135 ) to process using the algorithm ( 130 ). 14 . A method according to claim 11 , wherein selecting ( 1330 ) one or more of the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) based on the required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ) includes selecting ( 1330 ) one or more of the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) that is at least as accurate as the required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ). 15 . A method according to claim 14 , wherein selecting ( 1330 ) one or more of the available ALUs ( 140 - 1 , 140 - 2 , 140 - 3 , 730 - 1 , 730 - 2 , 730 - 3 , 755 - 1 , 755 - 2 , 755 - 3 ) based on the required accuracy ( 205 ) for the iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algorithm ( 130 ) further includes: determining ( 1410 ) a first result of a first previous iteration ( 505 - 1 , 505 - 2 , 505 - 3 , 505 - 4 ) of the algo

Assignees

Inventors

Classifications

  • G06F9/50Primary

    Allocation of resources, e.g. of the central processing unit [CPU] · CPC title

  • Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title

  • Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations {(G06F7/49, G06F7/491 take precedence)} · CPC title

  • using a plurality of independent parallel functional units · CPC title

  • Large Object storage; Management thereof · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016350074A1 cover?
A device ( 105 ) can include storage device ( 110 ) to store data. The device ( 105 ) can also include an accuracy requirement detector ( 120 ). Given an iteration of an algorithm ( 130 ) and the results of previous iterations of the algorithm ( 130 ), accuracy requirement detector ( 120 ) can determine the accuracy required for the current iteration of the algorithm ( 130 ). The device ( 105 )…
Who is the assignee on this patent?
Samsung Electronics Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/50. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).