本發(fā)明涉及根據(jù)獨立權利要求1所述的用于將位流轉換為浮點數(shù)的計算機實現(xiàn)的方法和根據(jù)獨立權利要求15所述的適于將位流轉換為浮點數(shù)的計算系統(tǒng)。
背景技術:
1、現(xiàn)有技術
2、為了表示十進制數(shù),計算機通常利用定點或浮點格式。
3、例如,浮點數(shù)f可以被表示為
4、f=(-1)s·m·be,
5、其中(-1)s指定符號,m指定有效數(shù)字,b指定底數(shù),并且e指定浮點數(shù)的指數(shù)。由于當今大多數(shù)計算機都是二進制機器,因此它們使用二進制表示處理浮點數(shù),其中浮點數(shù)的底數(shù)由b=2給出。
6、由計算機用于表示浮點數(shù)的最常見標準是ieee-754標準。該標準指定浮點數(shù)包括單個符號位,并且,根據(jù)浮點數(shù)的精度,包括特定數(shù)目的位來表示指數(shù)和特定數(shù)目的位來表示有效數(shù)字。例如,單精度浮點數(shù)的精度為32位,其中符號位包括單個位,指數(shù)包括8位,并且有效數(shù)字包括23位。
7、在某些情況下,計算機必須將二進制數(shù)字流轉換為具有特定精度的浮點數(shù)序列。例如,這可以是當計算機從物理隨機位生成器獲得均勻分布的隨機二進制數(shù)字流并且具有將位流轉換為均勻分布的浮點數(shù)序列的任務時的情況。例如,使用ieee-754標準中的表示,計算機通過在位流上以浮點數(shù)的大小為步長移位具有與要生成的浮點數(shù)相同的大小的窗口并將位于窗口內部的固定數(shù)目的位轉換為浮點數(shù)來執(zhí)行此任務。因此,可以從位流生成的浮點數(shù)的數(shù)目由要生成的浮點數(shù)的精度以及特別是用于浮點數(shù)的格式定義,因為這定義了滑動窗口的大小。
技術實現(xiàn)思路
1、技術問題
2、相對于現(xiàn)有技術,本發(fā)明解決的技術問題是提供一種用于將位流轉換為一個或多個浮點數(shù)的方法,其中該方法允許從位流中平均獲得大量具有特定精度的浮點數(shù)。
3、解決方案
4、該問題由根據(jù)獨立權利要求1所述的計算機實現(xiàn)的方法和根據(jù)獨立權利要求15所述的計算機系統(tǒng)解決。在從屬權利要求中提供優(yōu)選實施例。
5、根據(jù)本發(fā)明的計算機實現(xiàn)的方法包括獲得位流并將該位流轉換為浮點數(shù),其中浮點數(shù)包括指數(shù)和有效數(shù)字,該轉換包括基于對在位流的指定位置處獲得位值1所需要的按位移位數(shù)目進行計數(shù)來確定浮點數(shù)的指數(shù),該轉換還包括基于與用于確定指數(shù)的位不同的特定數(shù)目的位來確定浮點數(shù)的有效數(shù)字。
6、有效數(shù)字也可以被稱為尾數(shù)。一般來說,這兩個術語可互換使用。
7、對于通過計算機實現(xiàn)的方法獲得的位流,指的是二進制數(shù)字流,每個數(shù)字具有0或1的值。優(yōu)選地,位流包括(均勻分布的)隨機二進制數(shù)字流。這種(均勻分布的)隨機二進制數(shù)字流可以例如從獨立且等同地分布的隨機位生成器獲得,該隨機位生成器諸如為包括垂直腔表面發(fā)射激光器或包括量子相位擴散方案的物理隨機位生成器,作為示例。隨機二進制數(shù)字也可以通過使用兩個激光器來生成,其中一個激光器以恒定模式運行,而另一個激光器以脈沖模式運行。當以脈沖模式的激光器被交替地驅動到其激光閾值以下和以上時,其激光脈沖與恒定地驅動的激光器之間的相對相位關系是隨機的,并且促進生成(均勻分布的)隨機二進制數(shù)字。然而,該方法不限于(均勻分布的)隨機二進制數(shù)字流。其還可以用于將例如非隨機二進制數(shù)字流、偽隨機二進制數(shù)字流或包括隨機、偽隨機和/或非隨機二進制數(shù)字的任意組合的流轉換為一個或多個浮點數(shù)。
8、指定位置可以是位流的位的任意位置。其可以是位流(從左側或右側)的第一位或其中間的任何其他位。具體而言,如果要從位流中獲得多于一個浮點數(shù),則要確定的第一個浮點數(shù)的指定位可以是位流(從左側或右側)的第一位,而要確定的后續(xù)浮點數(shù)的指定位置可以是(緊接)在用于獲得緊接在前的浮點數(shù)的最后一位的右側或左側的位。
9、按位移位可以包括左移位或右移位,并且可以優(yōu)選地包括每次按位移位的單個一位移位,盡管每次移位的移位多于一位也由本公開所包含。在一個實施例中,由該方法為了在位流的指定位置處獲得位值1而實施的按位移位是相同類型的。這意味著,例如,當由該方法實施的第一次按位移位是右移位時,為了在位流的指定位置處獲得位值1而實施的所有隨后的按位移位也都是右移位。備選地,當位流的第一次按位移位是左移位時,為了在位流的指定位置處獲得位值1而實施的所有隨后的按位移位也都是左移位。
10、可選地,該方法可以包括位流的重新排列,這可以在獲得位流之后和確定指數(shù)之前進行。位流的這種重新排列可以包括隨機重新排列、偽隨機重新排列或非隨機重新排列,如例如散列操作。通過以上述方式重新排列位流,可以在該方法中實現(xiàn)附加的安全性方面,因為用于確定指數(shù)和有效數(shù)字的位流與由該方法最初獲得的位流不同。例如,當位流是均勻分布的隨機位流并且例如用于生成隨機密碼時,這可能具有相關性。
11、代替使用位流的固定數(shù)量的位來確定浮點數(shù)的指數(shù),根據(jù)本發(fā)明的方法通過實施位流的按位移位直到在位流的指定位置處獲得值為1的位,來動態(tài)地確定指定浮點數(shù)的指數(shù)所需要的位流的位數(shù)。由于至少對于均勻分布的隨機位流,具有值1的位的幾率為50%,因此從指定位置開始所需要的移位數(shù)目通常將為0(在指定位置處的位已經(jīng)為1的情況下),在大多數(shù)情況(87.5%)下為1或2。例如,使用此位作為用于確定32位浮點數(shù)的指數(shù)的最高有效位,因此在大多數(shù)情況下平均將指數(shù)所需要的位數(shù)減少至少5。從而,與現(xiàn)有技術相比,用于獲得例如32位浮點數(shù)的位數(shù)被顯著減少,從而允許從給定長度的位流中獲得更多浮點數(shù),同時這些浮點數(shù)的精度不被降低。
12、有利地,該方法還降低了能量消耗,因為生成特定數(shù)目的浮點數(shù)平均需要從位源獲得更小的位數(shù),該位源可以例如是物理隨機位生成器。需要生成的位越少,由物理隨機位生成器需要消耗的能量就越少,并且因此生成浮點數(shù)所需要的能量就越少。
13、作為位流的指定位置,可以指定位流的任何位位置。位流的指定位置可以例如是位流的最高有效位置(或最左邊的位)或位流的最低有效位置(或最右邊的位)。然而,位于位流的最高有效位置與最低有效位置之間的任何其他位位置也可以被選擇為位流的指定位置。
14、在一個實施例中,特定數(shù)目的位包括在位流的指定位置處的位之前的位,或者特定數(shù)目的位包括在從位流的指定位置開始的值為1的第一位之后的位。這確保了用于確定有效數(shù)字的特定數(shù)目的位與用于確定指數(shù)的位不同。因此,在浮點數(shù)的指數(shù)與有效數(shù)字之間沒有相關性,這例如在均勻分布的隨機二進制數(shù)字流應被轉換為均勻分布的浮點數(shù)流時是相關的。在指定位置處的位之前的特定數(shù)目的位可以是連續(xù)位的序列;然而,非連續(xù)位的序列也是可設想到的。這對于從位流的指定位置開始的值為1的第一位之后的特定數(shù)目的位同樣成立。
15、在另一實施例中,按位移位可以是左移位,并且特定數(shù)目的位包括緊接在位流的指定位置處的位之前的位,或者特定數(shù)目的位包括緊接在從位流的指定位置開始的值為1的第一位之后的位。例如,當位流的指定位置被指出為位流的最高有效位置時,這是可設想到的。按位移位也可以是右移位,并且特定數(shù)目的位包括緊接在位流的指定位置處的位之后的位,或者特定數(shù)目的位包括緊接在從位流的指定位置開始的值為1的第一位之前的位。例如,這可以是當位流的指定位置被選擇為位流的最低有效位置時的情況。
16、在備選實施例中,特定數(shù)目的位包括在位流的指定位置處的位之前的第一特定數(shù)目的位和在從位流的指定位置開始的值為1的第一位之后的第二特定數(shù)目的位。例如,這允許對于其中指定位置接近位流的最高有效位置的情況也能夠高效地使用位流的位,并且在位流的指定位置處的位之前的位,或者在位流的指定位置處的位之后的值為1的第一位之后的位將不足以指出浮點數(shù)的有效數(shù)字。這在隨機選擇指定位置的實施例中可以是有利的。
17、在另一實施例中,在按位移位數(shù)目等于閾值的情況下,指數(shù)的值是給定的固定值。這樣,確保即使在位流的指定位置處獲得位值1所需要的按位移位數(shù)目例如太大而無法用為指數(shù)保留的浮點數(shù)的位數(shù)表示的情況下,或者在位流將僅包括值為0的位的情況下,也可以由該方法生成指數(shù)。閾值可以例如等于給定浮點數(shù)格式中用于指數(shù)的位數(shù)。例如,閾值可以是8。給定的固定值可以被任意地選擇,并且可以默認為1或0。備選地,如果達到閾值,則給定的固定值可以是獨立于位流本身確定的隨機確定的值,并且因此在本公開內也被視為給定的固定值。備選地,在達到閾值的情況下,指數(shù)的值可以默認固定為其最低可能值,這促進生成次正規(guī)浮點數(shù)。
18、在另一實施例中,浮點數(shù)包括符號。包括符號使可以從位流生成的可能浮點數(shù)的范圍加倍,并且還允許生成負浮點數(shù),這對于該方法的某些實施例可以是有利的,例如,當后續(xù)過程需要范圍[-1;1]或包括正數(shù)和負數(shù)的任何其他范圍內的隨機數(shù)時。
19、在另一實施例中,轉換包括基于在位流的指定位置處的位之前或在從位流的指定位置開始的值為1的第一位之后的符號位的值來確定浮點數(shù)的符號。這確保用于確定浮點數(shù)的符號的位與用于確定浮點數(shù)的指數(shù)的位不同。然而,其沒有確定用于確定浮點數(shù)的符號的位是否已經(jīng)用于確定有效數(shù)字。對于某些實施例,符號位還與用于確定有效數(shù)字的位不同可以是優(yōu)選的。例如,這可以是當均勻分布的二進制數(shù)字的位流應被轉換為均勻分布的浮點數(shù)的序列時的情況,因為在這種特殊情況下,在浮點數(shù)的符號與有效數(shù)字之間不應存在相關性。
20、在另一實施例中,在符號位的值為0的情況下,浮點數(shù)的符號為正,并且在符號位的值為1的情況下,浮點數(shù)的符號為負,或者,其中在符號位的值為1的情況下,浮點數(shù)的符號為正,并且在符號位的值為0的情況下,浮點數(shù)的符號為負。因此,與ieee-754標準相比,該方法還提供了符號位的第二種替代表示。
21、在另一實施例中,確定指數(shù)還包括確定按位移位數(shù)目與偏差值之間的差。這允許根據(jù)位流確定正指數(shù)值和負指數(shù)值兩者,其進而允許生成具有正指數(shù)或負指數(shù)的浮點數(shù)。因此,例如,可以將位流轉換為具有小于或大于十進制表示法中的1的值的正浮點數(shù)或負浮點數(shù)。
22、在另一實施例中,確定指數(shù)還包括將所需要的按位左移位數(shù)目增加一。
23、在另一實施例中,偏差值的位數(shù)可以取決于浮點數(shù)的格式。在另一實施例中,用于確定有效數(shù)字的特定數(shù)目的位可以取決于浮點數(shù)的格式。浮點數(shù)的格式意指浮點數(shù)的標準化規(guī)范,其提供了關于浮點數(shù)的不同信息,諸如為其指數(shù)或有效數(shù)字保留的位數(shù)。
24、在另一實施例中,浮點數(shù)的大小是半倍、單倍、雙倍、四倍或八倍。半倍指精度為16位的浮點數(shù),單倍的精度為32位,雙倍的精度為64位,四倍的精度為128位,并且八倍的精度為256位。因此,計算機實現(xiàn)的方法適于生成通常已知大小的浮點數(shù)。然而,其不限于具有上述指定大小之一的浮點數(shù),因為其可以將位流轉換為任何大小的浮點數(shù)。
25、在另一實施例中,浮點數(shù)的格式是minifloat或bfloat。因此,該方法還適于將位流轉換為不太常見格式的浮點數(shù)。然而,其不限于生成上述格式的浮點數(shù),并且還可以將位流轉換為具有這里尚未明確列出的格式的浮點數(shù)。
26、根據(jù)本發(fā)明的計算系統(tǒng)適于根據(jù)上述實施例中的任一實施例執(zhí)行計算機實現(xiàn)的方法。計算系統(tǒng)可以例如包括中央處理單元、存儲器和圖形處理單元。備選地,計算系統(tǒng)可以包括現(xiàn)場可編程門陣列(fpga)、專用芯片硬件實現(xiàn)方式或任何其他適合于或專門適用于執(zhí)行根據(jù)上述實施例中的任一實施例的方法的硬件/軟件。
27、計算系統(tǒng)適于實施根據(jù)上述實施例中的任一實施例的方法。在計算系統(tǒng)上運行根據(jù)前述實施例中的任一實施例的方法允許獲得該方法的優(yōu)點,其包括例如節(jié)省計算成本和/或能量消耗。