TW202223667A - 具有預擾頻器之雜湊函數 - Google Patents
具有預擾頻器之雜湊函數 Download PDFInfo
- Publication number
- TW202223667A TW202223667A TW110132676A TW110132676A TW202223667A TW 202223667 A TW202223667 A TW 202223667A TW 110132676 A TW110132676 A TW 110132676A TW 110132676 A TW110132676 A TW 110132676A TW 202223667 A TW202223667 A TW 202223667A
- Authority
- TW
- Taiwan
- Prior art keywords
- hash
- module
- function
- data
- hash module
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
為避免雜湊表衝突,諸如回應於順序位址,提供一種雜湊模組,其包含回應於一控制信號而在兩個或更多個擾頻器之一者上輸出所接收之資料之一第一多工器。該等擾頻器經組態以選擇性接收自該第一多工器輸出之該選定資料且對該選定資料執行一擾頻器操作以產生經擾頻資料。一第二多工器將該經擾頻資料輸出至一第一雜湊模組,該第一雜湊模組經組態以對該經擾頻資料執行一雜湊函數以產生一雜湊值。回應於該第一雜湊模組中發生一衝突,一第二雜湊模組對自該第一雜湊模組接收之該經擾頻資料執行一雜湊函數。一擾頻器之使用減少該等雜湊模組輸出隨時間衝突,且多個擾頻器可用於進一步減少衝突。
Description
本發明係關於雜湊函數,且特定言之,本發明係關於一種用於在儲存記憶體位址時避免衝突之方法及設備。
運算系統係每個人生活中之一常見元件。此等系統通常具有由記憶體位址定址之一記憶體系統。作為記憶體中任何儲存及擷取項之部分,高效及準確地儲存及擷取記憶體位址及相關聯資料係至關重要的。
在諸多實施例中,一表用於儲存對應於記憶體中資料在一實體位址處之位置之實體記憶體位址。將位址分配至記憶體位址表中係很重要的。用於分配記憶體位址表位置之一常用操作係一雜湊函數。一雜湊函數係可用於將任意大小之資料映射至固定大小值之一函數。由一雜湊函數返回之值稱為雜湊值、雜湊碼、匯編或僅雜湊。值用於索引稱為一雜湊表之一固定大小表。雜湊函數及其相關聯雜湊表廣泛用於硬體及軟體應用中。理想地,一雜湊函數滿足兩個基本性質。第一,其應非常快運算以因此避免減慢系統操作。第二,其應最小化輸出值之重複(衝突)。一輸入之輸出之重複(衝突)將導致不同實體位址放置至記憶體位址表之相同位置中。此將導致一損壞之記憶體位址表,且若發生一衝突,則可執行一單獨路由以應對此非想要發生。
模係將一輸入位址映射至一侷限區域(例如一記憶體表)中之一位置之一典型硬體友善雜湊函數。模雜湊經界定為線性映射、回繞及週期性,但具有足夠大且互質除數,兩個輸入位址之衝突率可極低。
例如,使用兩個模雜湊級工作,假定PA (實體位址)係輸入位址,且變數N1及N2係互質除數。在其他實施例中,可實施更多或更少雜湊級。接著,第一級雜湊函數經界定為F1=PA mod N1且第二級函數經界定為F2=PA mod N2。F1及F2係雜湊函數輸出且界定其中將實體位址儲存於記憶體中之位置或槽。
針對在第一級雜湊表中衝突之兩個不同實體位址,此等兩個實體位址之間的位址距離必須為N1之倍數,且針對在第二級雜湊表中發生之一衝突,此等兩個實體位址之間的位址距離必須為N2之倍數。N1通常大於N2。在此實施例中,值N1及N2對應於各自雜湊表之大小。在一個實施例中,N1係具有256,000,000個表項目之一值。N2可為下一最小質數。由於N1及N2互質,所以兩個實體位址之位址距離必須為N1*N2之倍數以在雜湊表之兩個級中發生一衝突。位址距離係兩個位址之間的距離,其可經界定為|PA1-PA2|,其中PA1及PA2係第一實體位址及第二實體位址。在此實施例中,各雜湊模組或級自身具有雜湊表。當N1及N2足夠大時,衝突之可能性將極低。另外,若利用更多模雜湊級,則跨所有雜湊及映射操作衝突之可能性進一步降低。
然而,在諸多運算系統中,實體位址依序到達,其意謂輸入至雜湊函數之一位址群組將在放置於記憶體位址表(雜湊表)中時佔用記憶體位址表中之一連續空間。當此發生時,多級模之優勢會明顯減弱。兩個輸入位址叢集衝突之可能性不再罕見。
在早先實例中,當兩個輸入位址之間隔距離係N1時,第一雜湊函數將產生會使此等兩個位址在第一級雜湊表中佔用相同表位置之一結果,但第二級雜湊表中指派之位置不會重疊或導致一衝突。然而,若輸入位址以順序位址群組之形式到達,則模之線性映射特性可引起兩個位址群組之一大部分亦與第二級雜湊表中之第一位址群組重疊。
資料位址可歸因於其寫入及/或擷取之方式而為依序的。例如,一視訊或音訊檔案之位址或訊框緩衝區係可依序到達雜湊模組之實體位址類型。
圖1係實例記憶體位址表(雜湊表)及相關聯位址映射之一圖式。第一雜湊表104包含眾多槽108。指稱表項目之雜湊位址之一第一群組112呈現給第一雜湊表104。類似地,指稱表項目群組124之雜湊位址之一第二群組120呈現給第一雜湊表104。如所展示,第一群組112與第二群組120重疊。
第二雜湊表130用於在第一群組112中之項目116與第二群組120中之項目124之間發生一衝突時儲存雜湊函數結果。然而,歸因於位址之順序性,若1/3之訊務具有至前兩個群組之一位址距離(其係N1),則其之一大部分亦將落入至重疊中且將與前兩個群組衝突,因此該等重疊位址無法放入至第二雜湊表中,即使第一雜湊表104及第二雜湊表130雜湊表中仍存在大量空位置。
此係先前技術之一缺點,且下文將提供之揭示內容將克服此等缺點且提供額外益處。
為克服先前技術之缺點,揭示一種雜湊模組,其包括一第一多工器,該第一多工器具有至少一個資料輸入、一控制信號輸入及兩個或更多個輸出,使得該第一多工器經組態以回應於一控制信號而在該兩個或更多個輸出之一者上輸出所接收之資料作為選定資料。兩個或更多個擾頻器經組態以選擇性接收自該第一多工器輸出之該選定資料且對該選定資料執行一擾頻器操作以產生經擾頻資料。提供一第二多工器,其具有兩個或更多個輸入、一控制信號輸入及至少一個輸出,使得該第二多工器經組態以回應於一控制信號而在該至少一個輸出上輸出經擾頻資料。一第一雜湊模組經組態以對自該第二多工器接收之該經擾頻資料執行一雜湊函數以產生一雜湊值。回應於該第一雜湊模組中發生一衝突,一第二雜湊模組經組態以對自該第一雜湊模組接收之該經擾頻資料執行一雜湊函數。
在一個實施例中,該雜湊模組經組態以執行一模雜湊函數。該等擾頻器可選自由位元交換函數、LFSR (線性回饋移位暫存器)函數及CASR (格狀自動機移位暫存器)函數組成之群組。在一個實施例中,該雜湊模組之該輸出係一雜湊表之一索引。經考慮,該雜湊模組可進一步包含經組態以產生至該第一多工器及該第二多工器之該等控制信號輸入之一控制器。該控制器可經組態以基於以下之一者來選擇使用哪個擾頻器:時間、所處理之位址或位元之數目、兩者之一組合。
該雜湊模組亦可使用一或多個擾頻器及一或多個雜湊模組實現。該(等)擾頻器經組態以接收記憶體位址資料且對至少一些或所有該記憶體位址資料執行一擾頻器操作以產生經擾頻資料。該一或多個雜湊模組經組態以對自該一或多個擾頻器接收之該經擾頻資料執行一雜湊函數以產生用作一雜湊索引表之一索引之一雜湊值。
在一個實施例中,該模組具有兩個或更多個擾頻器且進一步包括一或多個資料選擇器,該一或多個資料選擇器經組態以選擇性在一第一時段將所接收之記憶體位址資料路由至該兩個或更多個擾頻器之一者且接著在一第二時段將所接收之記憶體位址資料路由至該兩個或更多個擾頻器之另一者。該雜湊模組可進一步包含經組態以產生至該資料選擇器之該等控制信號輸入之一控制器。在一個實施例中,該控制器經組態以基於以下之一或多者來選擇使用哪個擾頻器:時間、所處理之位址或位元之數目、兩者之一組合。經考慮,該雜湊模組可經組態以執行一模雜湊函數。可使用任何類型擾頻器,但在一個組態中,該等擾頻器選自由以下組成之群組:位元交換函數、LFSR (線性回饋移位暫存器)函數及CASR (格狀自動機移位暫存器)函數。該雜湊模組之該輸出可用作一雜湊表之一索引。
亦揭示一種用於在與另一雜湊值衝突之可能性降低之情況下基於一所接收之位址產生一雜湊值之方法。在一個實施例中,該方法包含使該所接收之位址擾頻以產生經擾頻資料及接著將該經擾頻資料提供至一第一雜湊模組。該第一雜湊模組使用該第一雜湊模組對該經擾頻資料執行一雜湊函數以產生一第一雜湊模組雜湊值。接著,此操作方法比較該雜湊值與先前產生之雜湊值。回應於該雜湊值相同於一先前產生之雜湊值,將該經擾頻資料提供至一第二雜湊模組。其後,該第二雜湊模組對該經擾頻資料執行一雜湊函數以產生不同於該第一雜湊模組雜湊值之一第二雜湊模組雜湊值。
在一個實施例中,此方法進一步包括將該所接收之位址提供至一或多個資料選擇器,該一或多個資料選擇器經組態以基於一控制信號選擇性將該所接收之位址路由至該兩個或更多個擾頻器之一者。亦經考慮,該雜湊模組可進一步包括使用一控制器產生提供至該資料選擇器之該控制信號。另外,此方法可進一步包括基於以下之一或多者來選擇使用哪個擾頻器:時間、所處理之位址或位元之數目、兩者之一組合。
為克服先前技術之缺點,揭示一種經改良多級模雜湊函數,其在不損及單輸入之極低衝突率之情況下使用順序位址輸入提供更好效能。本文揭示一種方法及設備,其避免至一雜湊函數之順序輸入佔用或映射至一雜湊表中之連續空間。所揭示之系統及設備修改模雜湊函數之線性映射特性,其繼而改變連續及週期輸入位址模式。在一個實施例中,將一隨機性函數應用於輸入資料。揭示一種兩步驟程序,但在一些實施例中,視情況僅實施一第一步驟。
作為兩步驟方法之部分,第一步驟係在執行模函數之前應用一擾頻函數。可使用提供一對一輸入至輸出映射之任何類型擾頻函數。可能之擾頻函數包含(但不限於)位元交換函數、LFSR (線性回饋移位暫存器)函數、CASR (格狀自動機移位暫存器)函數或任何其他擾頻函數。在一個實施例中,擾頻函數對形成一記憶體位址之位元進行操作。藉由使用一擾頻函數,輸入位址群組將散開且隨機化。此隨機化導致順序輸入不再放置或映射至一雜湊表中之連續位置或槽,因為使實體位址之位元擾頻破壞模雜湊函數之線性性質。
為進一步降低一衝突之可能性,進一步提出實施兩個或更多個擾頻函數且接著在兩個或更多個擾頻函數之使用之間交替。隨時間之一單一擾頻函數可將不同輸入群組分散至一雜湊表中之相同槽中以因此遇到衝突。提出視情況每隔固定距離、位元數目、實體位址數目、在一時段之後或基於一些其他因數來實施一不同擾頻函數,因此連續輸入位址將不再依一週期性模式出現。此將避免不同位址群組將藉由相同擾頻函數指派(隨機化及雜湊)至記憶體表中之相同槽中(引起一衝突)之情境。此可依其他方式發生,因為一擾頻函數將在一組數個輸入之後重複。
圖2繪示根據本發明之一個實施例之一雜湊函數系統之一實例實施例之一方塊圖。此僅為具有擾頻器旋轉之一位址擾頻器之一個可能實施例,且經考慮,可啟用其他實施例。本發明實施例以硬體實現,但經考慮,當前或未來實施例可以軟體或兩者之一組合實現。基於硬體之實施例提供模函數之一更高處理速度位凖,藉此實現高頻寬及產量。進一步揭示,儘管在一記憶體位址雜湊系統之背景下展示及描述,但經考慮,此系統及方法可用於任何環境中或用於可具有將導致非想要衝突之特性之任何類型之資料。
如所展示,提供一輸入204且將傳入位址呈現給一第一多工器206及一計數器及控制器模組210。第一多工器206如本技術中所理解般操作且因而不詳細描述。計數器及控制器模組210監測諸如基於位址或基於位元之傳入資料以在接收各者之一或多者之一特定數目時計數。計數器及控制器模組210亦可基於時間或除位址計數或位元之外的一些其他度量來運作。
第一多工器206之輸出饋送至兩個或更多個擾頻器中。在此實施例中,擾頻器係一第一擾頻器212A、一第二擾頻器212B、直至一第N擾頻器212N,其中N係任何整數。擾頻器212A、212B、212N對輸入執行一擾頻函數。作為第一多工器206之操作之部分,至第一多工器之輸入僅提供至擾頻器212A、212B、212N之一者,使得來自計數器及控制器模組210之一控制信號判定哪個擾頻器接收輸入至第一多工器之位址。
選定擾頻器212A、212B、212N之輸出提供至一第二多工器216,第二多工器216選擇哪個擾頻器輸出傳遞至第二多工器之輸出,如所展示。在一個實施例中,計數器及控制器模組210將一控制信號發送至第一多工器206及第二多工器216以選擇性控制哪個擾頻器自輸入204接收輸入位址。接收輸入位址之擾頻器可指稱主動擾頻器。來自計數器及控制器模組210之控制信號亦控制第二多工器216將來自主動擾頻器之輸出路由至第二多工器216之輸出。多工器206、216可為任何類型開關、解多工器、控制邏輯、資料選擇器或經組態以如本文所描述般運作之任何其他元件。
第二多工器216之輸出提供至一第一雜湊模組220。第一雜湊模組220具有連接至一雜湊表232之一輸出及在第一雜湊表中發生一衝突時將第二多工器216輸出輸出至一第二雜湊模組224之一輸出。第二雜湊模組224具有連接至雜湊表232之一輸出及在第二雜湊模組224在雜湊表中發生一衝突時將第二多工器216輸出提供至一第N雜湊模組228之一輸出。
因此,第一雜湊模組224對第二多工器216之輸出執行一雜湊函數。若雜湊函數之所得輸出指向雜湊表232中未被佔用之一槽,則將位址放置於雜湊表中之該位置處。相反地,若雜湊函數之所得輸出指向雜湊表232中已被佔用之一槽,則發生一衝突且將待雜湊位址路由至第二雜湊表224。此程序重複通過N個雜湊模組。
圖3繪示基於圖2之實施例填充之例示性雜湊表。來自圖1之元件符號用於圖3中。在此實例實施例中,群組1位址116及群組2位址124被接收,但在被雜湊之前被擾頻。此導致具有群組1雜湊結果116之第一雜湊表104歸因於擾頻器輸出之非線性而在雜湊表中不再連續。如可見,在順序實體位址之情況下,雜湊函數結果使雜湊結果展開。類似地,在第一雜湊操作及表映射期間之罕見衝突事件中,雜湊輸出將路由至第二雜湊函數,且如所展示般填充第二雜湊表130。此外,第二雜湊表130中不存在群組1雜湊結果116及群組2雜湊結果124之連續項目。
圖4繪示展示將資料映射至記憶體位置之雜湊模組的一方塊圖。此僅為本文所描述之雜湊函數之一個可能之使用組態及環境。一輸入408將一經擾頻實體位址載送至第一雜湊模組412。第一雜湊模組412對經擾頻實體位址執行一雜湊函數以產生雜湊值。雜湊值用於索引雜湊表。快取位址之指派可基於系統設計來隨系統變動。在第一雜湊模組內識別經佔用記憶體位置之一映射415,使得一經佔用標籤位置表示雜湊表位置是否被佔用。只要一特定雜湊表位置可用,則系統可佔用其且使用其他方法將一快取位址指派給此實體位址。
例如,根據一第一雜湊函數442使一經擾頻實體位址雜湊,且將雜湊結果儲存於雜湊表415中之一位置416處。雜湊表415經更新以指定快取區中之快取位置428被佔用,其允許第一雜湊模組知道快取位置428被佔用。實線映射424繪示自第一雜湊模組412至快取區432之雜湊函數位置指派。
此程序重複將雜湊函數輸出映射至快取區432中之位置及將映射記錄於雜湊表415中。儘管展示為一快取記憶體432,但經考慮,可使用任何類型或功能之記憶體。如上文所討論,經改良雜湊函數可用於任何應用。
第一雜湊模組412中亦包含一衝突偵測模組420,其經組態以偵測一先前雜湊函數輸出與一新產生雜湊函數輸出之間的一衝突。例如,若當一雜湊模組412將一新傳入實體位址映射至相同位置時雜湊表位置416已被佔用,則衝突偵測模組420偵測到衝突或被警告衝突且將實體位址路由至一第二雜湊模組440。由於擾頻,第一雜湊模組412處之衝突很罕見,即使具有順序實體位址區塊。在第二雜湊模組440處,經擾頻實體位址經受第二雜湊函數443且所得雜湊輸出用於將實體位址映射至快取區432中之一位置。第二雜湊函數(單元) 443可執行不同於第一雜湊函數(單元) 442之一類型雜湊函數。一標籤映射於雜湊表436中以指定快取區中之該特定位置被佔用。虛線映射450繪示自第二雜湊模組440至快取區432之雜湊函數位置指派。
若第二雜湊模組440產生指向一經佔用位置之一雜湊輸出,則衝突偵測模組420將偵測到衝突且在路徑444上產生一衝突輸出通知。
圖5A及圖5B繪示一實例操作方法之一操作流程圖。此僅為一個可能操作方法且因而可考慮其他操作方案。在步驟504處,雜湊系統接收一實體位址用於處理。接著,在步驟508處,雜湊系統使用預選實體位址位元來指定一擾頻器函數,且選擇利用哪個擾頻器函數。在其他實施例中,可使用其他方法來判定利用哪個擾頻器函數。例如,一位元計數器或位址計數器可用於在接收或處理預定數目個位元或預定數目個位址之後改變擾頻函數。
在步驟512處,系統將指定擾頻器函數應用於所接收之實體位址之位元以產生一擾頻實體位址。其後,在步驟516處,第一雜湊模組對經擾頻實體位址執行一模雜湊函數以產生一雜湊值。在此實施例中,使用一模函數,但在其他實施例中,可使用(若干)其他雜湊操作。接著,在步驟520處,系統使用所產生之雜湊值索引第一雜湊表位置。索引係一查找或調查第一雜湊表。
在決策步驟524處,判定索引雜湊表位置是否被佔用。若其未被佔用,則操作前進至步驟528且系統將一快取位址分配給所接收之實體位址且將快取位址儲存於雜湊表中之索引位置處。此使快取位址及其在快取區中之位置與雜湊表中之索引位置或槽相關聯。實體位址與快取位址一起儲存於雜湊表中。屬於此實體位址之異動資料(或內文)儲存於快取記憶體中。接著,操作返回至步驟504以繼續處理額外實體位址。
替代地,若在步驟524處,索引雜湊表位置被佔用以指示已發生一衝突,則操作前進至步驟536。在步驟536處,將經擾頻實體位址提供至第二雜湊模組,第二雜湊模組對經擾頻實體位址執行模函數以產生一第二雜湊值。第二雜湊函數將產生不同於第一雜湊函數之一結果。其後,在步驟540處,使用所產生之第二雜湊值將第二雜湊值索引至一第二雜湊表位置中。在此實施例中,各雜湊模組自身具有雜湊表。
轉至圖5B,在決策步驟544處,基於第二雜湊值判定索引雜湊表位置是否被佔用以指示已發生一衝突。若未發生一衝突,則操作前進至步驟548,在此期間,系統將一快取位址分配給所接收之實體位址且快取位址儲存於雜湊表中之索引位置處。其後,操作前進至步驟552且路徑返回至步驟504。
替代地,若在步驟544處,索引雜湊表位置被佔用以指示已遇到一衝突,則操作前進至步驟556且報告一雙重衝突且程序結束。儘管在報告一衝突之前展示兩個可能雜湊常式,但經考慮,可實施多於兩個的雜湊模組。
為擷取或讀取儲存於記憶體中之資料,系統將對應於資料之實體位址輸入至雜湊函數中以產生雜湊表位置且比較儲存於雜湊表位置處之實體位址與輸入位址。若定位儲存實體位址匹配輸入位址,則系統使用儲存於此雜湊表位置中之快取位址來擷取或讀取儲存於記憶體中之資料。在其他實施例中,可利用其他方法自記憶體擷取或讀取資料。
由於本發明,兩個順序輸入位址群組衝突之可能性將顯著降低。為維持資料完整性,較佳地或要求每個利用之擾頻函數具有一對一映射,因此擾頻程序本身不會引入衝突。在一個實施例中,諸如針對CASR,在多個不同實施方案中,僅允許保證一對一映射之實施方案。另外,應瞭解,藉由利用更多擾頻器函數,發生一衝突之可能性將更小。
圖6繪示一雜湊函數模組之一實例實施例。此僅為一基於硬體之雜湊函數模組之一個可能實施例。任何類型雜湊函數可由此實施例啟用,且在其他實施例中,可提供不同元件。亦經考慮,雜湊函數可以軟體或硬體之一組合啟用。如所展示,雜湊函數模組604包含經組態以接收一記憶體位址(諸如一實體記憶體位址)之一輸入608。雜湊函數模組604處理記憶體位址輸入以在一雜湊輸出612上產生一雜湊函數輸出,且可視情況在一記憶體位址輸出616上輸出記憶體位址。
若干處理元件在雜湊函數模組604內部,其包含分散於模組內之加法器620、除法器624、記憶體暫存器632及控制邏輯628。此僅為元件之一種可能配置,且一般技術者將獲得一雜湊函數模組之不同實施例。一個例示性雜湊函數係模函數。在運算中,在一個數除以另一數(稱為運算之模數)之後,模運算回傳一除法之餘數或帶正負號餘數。例如,運算式「5 mod 2」將求得1,因為5除以2具有商數2及餘數1,而「9 mod 3」將求得0,因為9除以3具有商數3及餘數0;在3乘3之後自9減去而得零。模僅為可考慮使用之一個可能雜湊函數。
圖7繪示一資料擾頻器之一實例實施例。此僅為一個可能組態,且一般技術者可考量及獲得其他配置。此實例組態用於一線性回饋移位暫存器,但可使用其他擾頻函數,其包含(但不限於)位元交換函數、CASR (格狀自動機移位暫存器)函數或任何其他擾頻函數。擾頻器704之此實施例包含一時脈輸入708及一輸出712,輸出712提供經擾頻輸入位元作為一輸出。時脈信號輸入連接至兩個或更多個移位暫存器716,其在此實施例中包含八個移位暫存器S0至S7。在其他實施例中,可使用更多或更少移位暫存器。
移位暫存器716自最低有效位元S0至最高有效位元S7配置。各移位暫存器連接至相鄰移位暫存器。在操作期間,在啟動之前,移位暫存器接種待擾頻資料,在本發明中,記憶體位址。在邏輯元件720之間形成至移位暫存器之若干分接頭連接。在此實施例中,分接頭連接於邏輯元件之間且連接至移位暫存器S1、S2及S3之輸出,但此將在不同實施例中變動。邏輯元件之輸出回饋至移位暫存器S0 716。在其他實施例中,可使用邏輯元件之其他配置。
本發明之其他系統、方法、特徵及優點將為附圖及詳細描述或熟習技術者將在檢查附圖及詳細描述之後明白。所有此等額外系統、方法、特徵及優點意欲包含於此描述中,在本發明之範疇內,且受隨附申請專利範圍保護。
儘管已描述本發明之各種實施例,但一般技術者應明白,在本發明之範疇內,更多實施例及實施方案係可行的。另外,本文所描述之各種特徵、元件及實施例可已任何組合或配置主張或組合。
104:第一雜湊表
108:槽
112:第一群組
116:項目/群組1位址
120:第二群組
124:項目/群組2位址
130:第二雜湊表
134:重疊
204:輸入
206:第一多工器
210:計數器及控制器模組
212A:第一擾頻器
212B:第二擾頻器
212N:第N擾頻器
216:第二多工器
220:第一雜湊模組
224:第二雜湊模組
228:第N雜湊模組
232:雜湊表
408:輸入
412:第一雜湊模組
415:映射/雜湊表
416:雜湊表位置
420:衝突偵測模組
424:實線映射
428:快取位置
432:快取區/快取記憶體
436:雜湊表
440:第二雜湊模組
442:第一雜湊函數
443:第二雜湊函數
444:路徑
450:虛線映射
504:步驟
508:步驟
512:步驟
516:步驟
520:步驟
524:決策步驟
528:步驟
532:步驟
536:步驟
540:步驟
544:決策步驟
548:步驟
552:步驟
556:步驟
604:雜湊函數模組
608:輸入
612:雜湊輸出
616:記憶體位址輸出
620:加法器
624:除法器
628:控制邏輯
632:記憶體暫存器
704:擾頻器
708:時脈輸入
712:輸出
716:移位暫存器
720:邏輯元件
S0至S7:移位暫存器
圖中之組件未必按比例繪製,而是將重點放在繪示本發明之原理上。在圖中,相同元件符號指定所有不同視圖中之對應部分。
圖1係一例示性先前技術記憶體位址表(雜湊表)及相關聯位址映射之一圖式。
圖2繪示根據本發明之一個實施例之一雜湊函數系統之一實例實施例之一方塊圖。
圖3係根據本發明之方法之一例示性記憶體位址表(雜湊表)及相關聯位址映射之一圖式。
圖4繪示展示將資料映射至記憶體位置之雜湊模組的一方塊圖。
圖5A及圖5B繪示一實例操作方法之一操作流程圖。
圖6繪示一雜湊函數模組之一實例實施例。
圖7繪示一資料擾頻器之一實例實施例。
204:輸入
206:第一多工器
210:計數器及控制器模組
212A:第一擾頻器
212B:第二擾頻器
212N:第N擾頻器
216:第二多工器
220:第一雜湊模組
224:第二雜湊模組
228:第N雜湊模組
232:雜湊表
Claims (20)
- 一種雜湊模組,其包括: 一第一多工器,其具有至少一個資料輸入、一控制信號輸入及兩個或更多個輸出,使得該第一多工器經組態以回應於一控制信號而在該兩個或更多個輸出之一者上輸出所接收之資料作為選定資料; 兩個或更多個擾頻器,其等經組態以選擇性接收自該第一多工器輸出之該選定資料且對該選定資料執行一擾頻器操作以產生經擾頻資料; 一第二多工器,其具有兩個或更多個輸入、一控制信號輸入及至少一個輸出,使得該第二多工器經組態以回應於一控制信號而在該至少一個輸出上輸出來自該兩個或更多個擾頻器之經擾頻資料; 一第一雜湊模組,其經組態以對自該第二多工器接收之該經擾頻資料執行一雜湊函數以產生一雜湊值; 一第二雜湊模組,其經組態以回應於該第一雜湊模組中發生一衝突而對自該第一雜湊模組接收之該經擾頻資料執行一雜湊函數。
- 如請求項1之雜湊模組,其中該雜湊模組經組態以執行一模雜湊函數。
- 如請求項1之雜湊模組,其中該等擾頻器選自由以下組成之群組:位元交換函數、LFSR (線性回饋移位暫存器)函數及CASR (格狀自動機移位暫存器)函數。
- 如請求項1之雜湊模組,其中該雜湊模組之該輸出係一雜湊表之一索引。
- 如請求項1之雜湊模組,其進一步包括經組態以產生至該第一多工器及該第二多工器之該等控制信號輸入之一控制器。
- 如請求項5之雜湊模組,其中該控制器經組態以基於以下之一者來選擇使用哪個擾頻器:時間、所處理之位址或位元之數目、兩者之一組合。
- 一種雜湊模組,其包括: 一或多個擾頻器,其等經組態以接收記憶體位址資料且對至少一些或所有該記憶體位址資料執行一擾頻器操作以產生經擾頻資料; 一或多個雜湊模組,其等經組態以對自該一或多個擾頻器接收之該經擾頻資料執行一雜湊函數以產生用作一雜湊索引表之一索引之一雜湊值。
- 如請求項7之雜湊模組,其中該模組具有兩個或更多個擾頻器且進一步包括一或多個資料選擇器,該一或多個資料選擇器經組態以選擇性在一第一時段將所接收之記憶體位址資料路由至該兩個或更多個擾頻器之一者且接著在一第二時段將所接收之記憶體位址資料路由至該兩個或更多個擾頻器之另一者。
- 如請求項8之雜湊模組,其進一步包括經組態以產生至該資料選擇器之控制信號輸入之一控制器。
- 如請求項9之雜湊模組,其中該控制器經組態以基於以下之一或多者來選擇使用哪個擾頻器:時間、所處理之位址或位元之數目、兩者之一組合。
- 如請求項7之雜湊模組,其中該雜湊模組經組態以執行一模雜湊函數。
- 如請求項7之雜湊模組,其中該等擾頻器選自由以下組成之群組:位元交換函數、LFSR (線性回饋移位暫存器)函數及CASR (格狀自動機移位暫存器)函數。
- 如請求項7之雜湊模組,其中該雜湊模組之輸出係一雜湊表之一索引。
- 一種用於在與另一雜湊值衝突之可能性降低之情況下基於一所接收之位址產生一雜湊值之方法,其包括: 使該所接收之位址擾頻以產生經擾頻資料; 將該經擾頻資料提供至一第一雜湊模組; 使用該第一雜湊模組對該經擾頻資料執行一雜湊函數以產生一第一雜湊模組雜湊值; 比較該雜湊值與先前產生之雜湊值; 回應於該雜湊值相同於一先前產生之雜湊值,將該經擾頻資料提供至一第二雜湊模組; 使用該第二雜湊模組對該經擾頻資料執行一雜湊函數以產生不同於該第一雜湊模組雜湊值之一第二雜湊模組雜湊值。
- 如請求項14之方法,其進一步包括將該所接收之位址提供至一或多個資料選擇器,該一或多個資料選擇器經組態以基於一控制信號選擇性將該所接收之位址路由至兩個或更多個擾頻器之一者。
- 如請求項15之方法,其進一步包括使用一控制器產生提供至該資料選擇器之該控制信號。
- 如請求項16之方法,其進一步包括基於以下之一或多者來選擇使用哪個擾頻器:時間、所處理之位址或位元之數目、兩者之一組合。
- 如請求項14之方法,其中該雜湊模組執行一模雜湊函數。
- 如請求項14之方法,其中該等擾頻器選自由以下組成之群組:位元交換函數、LFSR (線性回饋移位暫存器)函數及CASR (格狀自動機移位暫存器)函數。
- 如請求項14之方法,其中該雜湊模組之輸出係一雜湊表之一索引。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063074090P | 2020-09-03 | 2020-09-03 | |
US63/074,090 | 2020-09-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202223667A true TW202223667A (zh) | 2022-06-16 |
Family
ID=80358589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110132676A TW202223667A (zh) | 2020-09-03 | 2021-09-02 | 具有預擾頻器之雜湊函數 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11977482B2 (zh) |
CN (1) | CN116547655A (zh) |
TW (1) | TW202223667A (zh) |
WO (1) | WO2022051554A1 (zh) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7106859B2 (en) * | 2001-10-16 | 2006-09-12 | Intel Corporation | Parallel data scrambler |
US8397051B2 (en) * | 2009-02-23 | 2013-03-12 | Autonomy, Inc. | Hybrid hash tables |
US8428045B2 (en) * | 2010-03-16 | 2013-04-23 | Harman International Industries, Incorporated | Media clock recovery |
US8666068B2 (en) * | 2011-10-20 | 2014-03-04 | Sandisk Technologies Inc. | Method for scrambling shaped data |
US8868926B2 (en) * | 2012-04-06 | 2014-10-21 | Exablox Corporation | Cryptographic hash database |
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US9069810B2 (en) * | 2012-07-25 | 2015-06-30 | International Business Machines Corporation | Systems, methods and computer program products for reducing hash table working-set size for improved latency and scalability in a processing system |
CA2939161C (en) * | 2014-02-10 | 2017-05-09 | Geenee Gmbh | Systems and methods for image-feature-based recognition |
KR20170065374A (ko) | 2015-12-03 | 2017-06-13 | 영남대학교 산학협력단 | 버킷 단위의 정렬을 기반으로 하는 해시 충돌 처리 방법 |
KR102544118B1 (ko) | 2016-04-27 | 2023-06-16 | 엘에스일렉트릭(주) | 해시충돌 최소화를 위한 해시 테이블 장치 |
US10073661B2 (en) * | 2016-07-20 | 2018-09-11 | Atmel Corporation | Security extensions for non-volatile memory |
US10740466B1 (en) * | 2016-09-29 | 2020-08-11 | Amazon Technologies, Inc. | Securing interfaces of a compute node |
US20180095985A1 (en) * | 2016-09-30 | 2018-04-05 | Cubistolabs, Inc. | Physical Location Scrambler for Hashed Data De-Duplicating Content-Addressable Redundant Data Storage Clusters |
FR3058813A1 (fr) * | 2016-11-16 | 2018-05-18 | Stmicroelectronics (Rousset) Sas | Stockage dans une memoire non volatile |
US10901917B1 (en) * | 2018-01-26 | 2021-01-26 | Amazon Technologies, Inc. | Address scrambling for storage class memory |
US10990532B2 (en) | 2018-03-29 | 2021-04-27 | Intel Corporation | Object storage system with multi-level hashing function for storage address determination |
US11308059B2 (en) * | 2018-06-12 | 2022-04-19 | Chicago Mercantile Exchange Inc. | Optimized data structure |
-
2021
- 2021-09-02 TW TW110132676A patent/TW202223667A/zh unknown
- 2021-09-02 WO PCT/US2021/048940 patent/WO2022051554A1/en active Application Filing
- 2021-09-02 US US17/465,237 patent/US11977482B2/en active Active
- 2021-09-02 CN CN202180074088.XA patent/CN116547655A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116547655A (zh) | 2023-08-04 |
US20220066929A1 (en) | 2022-03-03 |
WO2022051554A1 (en) | 2022-03-10 |
US11977482B2 (en) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884706B2 (en) | Randomization of data using a plurality of types of pseudorandom number generators | |
US8804950B1 (en) | Methods and apparatus for producing a hash value based on a hash function | |
US5623548A (en) | Transformation pattern generating device and encryption function device | |
EP3557407B1 (en) | Puf-based true random number generation system | |
US8266116B2 (en) | Method and apparatus for dual-hashing tables | |
US4776011A (en) | Recursive key schedule cryptographic system | |
US6434662B1 (en) | System and method for searching an associative memory utilizing first and second hash functions | |
KR20040064259A (ko) | 컴포넌트 실패를 검출 및 보정하고, 컴포넌트 실패 후에단일 비트 에러보정을 제공하는 에러검출/보정 코드 | |
US20200293287A1 (en) | Random number generator | |
JP2007220278A (ja) | 半導体メモリ装置及びこれを有するメモリシステム | |
JP2013242539A (ja) | ハッシュ衝突低減システム、方法及びプログラム | |
US6934388B1 (en) | Method and apparatus for generating random permutations | |
CN109391549A (zh) | 使用一致性哈希进行ecmp路由 | |
Bose | Burst unidirectional error-detecting codes | |
US7305519B1 (en) | Error protection for associative memory entries and lookup operations performed thereon | |
KR100607376B1 (ko) | 의사-랜덤 수 시퀀스 발생기 및 이와 관련된 방법 | |
TW202223667A (zh) | 具有預擾頻器之雜湊函數 | |
JP2019144536A (ja) | 干渉検出リングオシレータ | |
US20210152326A1 (en) | White-box encryption method for prevention of fault injection attack and apparatus therefor | |
CA2371029C (en) | Data storage and retrieval | |
CN113518988A (zh) | 嵌入式中央处理单元上的抗侧通道攻击存储器访问 | |
JPH06338195A (ja) | 電気的消去可能な不揮発性メモリの書き込み回数管理装置 | |
US20160119132A1 (en) | Method and device for generating a hash value | |
US7161950B2 (en) | Systematic memory location selection in Ethernet switches | |
US20070030962A1 (en) | Parallel Random Number Determinations for a Stream Cipher Utilizing a Common S-Box |