[go: up one dir, main page]

TW201818235A - 以sram為基底的真實隨機數字產生器 - Google Patents

以sram為基底的真實隨機數字產生器 Download PDF

Info

Publication number
TW201818235A
TW201818235A TW106113155A TW106113155A TW201818235A TW 201818235 A TW201818235 A TW 201818235A TW 106113155 A TW106113155 A TW 106113155A TW 106113155 A TW106113155 A TW 106113155A TW 201818235 A TW201818235 A TW 201818235A
Authority
TW
Taiwan
Prior art keywords
bit
bits
logic state
signal
column
Prior art date
Application number
TW106113155A
Other languages
English (en)
Inventor
呂士濂
Original Assignee
台灣積體電路製造股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 台灣積體電路製造股份有限公司 filed Critical 台灣積體電路製造股份有限公司
Publication of TW201818235A publication Critical patent/TW201818235A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Logic Circuits (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本發明實施例揭露一種隨機數字產生器(RNG)。該RNG包括:一記憶體位元陣列,其具有複數個位元,其中每一位元經組態以在該記憶體位元陣列被通電時呈現一初始邏輯狀態;及一第一摺疊電路,其耦合至該記憶體位元陣列,其中該第一摺疊電路經組態以:讀取該記憶體位元陣列之一第一位元及一第二位元之初始邏輯狀態、對該第一位元之該初始邏輯狀態執行一第一邏輯函數且對該第二位元之該初始邏輯狀態執行一第二邏輯函數以污染該第二位元之該初始邏輯狀態以提供該第二位元之一經更改初始邏輯狀態。

Description

以SRAM為基底的真實隨機數字產生器
本揭露係關於一種以SRAM為基底的真實隨機數字產生器。
已廣泛地認可隨機數字產生器在電腦時代係至關重要的。隨機數字產生器可劃分為兩種類型:真實隨機數字產生器,其自一非確定性源產生數字;及偽隨機數字產生器,其自一確定性演算法產生數字。用以產生真實隨機數字之一高品質隨機數字產生器對於密碼應用係令人滿意的。舉例而言,真實隨機數字用作用於對資訊及訊息進行加密之一加密密鑰。 雖然偽隨機數字產生器對於一電腦而言適當較快,但偽隨機數字產生器無法產生一真實隨機數字,此乃因隨機數字係藉由確定性之演算法而產生,亦即,隨機數字係所使用之演算法之可預測給定知識。另一方面,代替依賴於一確定性演算法,真實隨機數字產生器通常使用多種物理現象(例如,一熱雜訊、一雪崩雜訊、一光學雜訊等)中之至少一者作為用以產生隨機數字之一隨機數字源。舉例而言,一真實數字產生器可使用由一電阻器產生之一熱雜訊且進一步放大該熱雜訊作為一隨機電壓源。 由於被用作一隨機數字源之物理現象通常呈一非數位形式(例如,一類比信號、一時域信號等),因此現有真實隨機數字產生器需要使用額外電路來將來自隨機數字源之資訊自一非數位形式進一步處理為一數位形式。此類進一步處理可不利地影響現有真實隨機數字產生器之一效能,舉例而言,所產生隨機數字之一隨機性位準。因此,現有隨機數字產生器並非每項態樣皆令人滿意。
在一實施例中,揭露一種隨機數字產生器(RNG)。該RNG包括:一記憶體位元陣列,其具有複數個位元,其中每一位元經組態以在該記憶體位元陣列被通電時呈現一初始邏輯狀態;及一第一摺疊電路,其耦合至該記憶體位元陣列,其中該第一摺疊電路經組態以:讀取該記憶體位元陣列之一第一位元及一第二位元之初始邏輯狀態、對該第一位元之該初始邏輯狀態執行一第一邏輯函數且對該第二位元之該初始邏輯狀態執行一第二邏輯函數以污染該第二位元之該初始邏輯狀態以提供該第二位元之一經更改初始邏輯狀態。 在另一實施例中,一種隨機數字產生器(RNG)包括:一記憶體位元陣列,其具有複數個位元,其中每一位元經組態以在該記憶體位元陣列被通電時呈現一初始邏輯狀態;及一第一摺疊電路,其耦合至該記憶體位元陣列,其中該第一摺疊電路經組態以:讀取放置於該記憶體位元陣列之一第一列上之一第一位元之初始邏輯狀態、讀取放置於該記憶體位元陣列之一第二列上之一第二位元之初始邏輯狀態、對該第一位元之該初始邏輯狀態執行一第一邏輯函數且對該第二位元之該初始邏輯狀態執行一第二邏輯函數以污染該第二位元之該初始邏輯狀態以提供該第二位元之一經更改初始邏輯狀態。 在又一實施例中,一種隨機數字產生器(RNG)包括:一記憶體位元陣列,其具有複數個位元,其中每一位元經組態以在該記憶體位元陣列被通電時呈現一初始邏輯狀態;一第一摺疊電路,其耦合至該記憶體位元陣列,其中該第一摺疊電路經組態以:讀取該記憶體位元陣列之一第一位元及一第二位元之初始邏輯狀態、對該第一位元之該初始邏輯狀態執行一第一邏輯函數且對該第二位元之該初始邏輯狀態執行一第二邏輯函數以污染該第二位元之該初始邏輯狀態以提供該第二位元之一經更改初始邏輯狀態;及一第二摺疊電路,其耦合至該記憶體位元陣列,其中該第二摺疊電路經組態以:讀取該記憶體位元陣列之一第三位元及一第四位元之初始邏輯狀態、對該第三位元之該初始邏輯狀態執行該第一邏輯函數且對該第四位元之該初始邏輯狀態執行該第二邏輯函數以污染該第四位元之該初始邏輯狀態以提供該第四位元之一經更改初始邏輯狀態,其中該等第一、第二、第三及第四位元分別放置於該記憶體位元陣列之不同列上。
以下揭露內容闡述用於實施標的物之不同構件之各種例示性實施例。為簡化本揭露,下文闡述組件及配置之特定實例。當然,此等特定實例僅為實例且並非意欲為限制性的。舉例而言,以下說明中之在一第二構件上方或在一第二構件上形成一第一構件可包含其中第一構件與第二構件以直接接觸方式形成之實施例,且亦可包含其中可在第一構件與第二構件之間形成額外構件使得第一構件與第二構件可不直接接觸之實施例。 此外,為便於說明,本文中可使用空間相對術語(諸如,「下面」、「下方」、「下部」、「上方」、「上部」及諸如此類)來闡述一個元件或構件與另一(其他)元件或構件之關係,如各圖中所圖解說明。除各圖中所繪示之定向之外,該等空間相對術語亦意欲囊括裝置在使用或操作中之不同定向。設備可以其他方式定向(旋轉90°或處於其他定向),且同樣可據此解釋本文中所使用之空間相對描述符。另外,將理解,當將一元件稱為「連接至」或「耦合至」另一元件時,該元件可直接連接至或耦合至另一元件或可存在一或多個介入元件。 如上文所闡述,現有確定性RNG依賴於一確定性演算法,而真實RNG使用額外電路來處理一隨機物理熵源。在本揭露之各種實施例中,一真實隨機數字產生器(tRNG)使用一靜態隨機存取記憶體(SRAM)裝置之通電狀態來產生至少一個隨機數字向量。另外,本文中亦揭露根據某些實施例之用以操作tRNG之一方法。在某些實施例中,即使一SRAM裝置包含對稱位元格(或位元),製造可變性仍可致使SRAM裝置之每一位元每當SRAM裝置被通電時往往處於一高狀態(亦即,一邏輯「1」)或處於一低狀態(亦即,一邏輯「0」)。此一通電狀態在下文中稱為位元之一「初始邏輯狀態」。 此外,在某些實施例中,一SRAM裝置之位元通常由一定量之穩定位元及一補充量之不穩定位元構成。每當SRAM裝置被通電時,一不穩定位元通常呈現一不同初始邏輯狀態。舉例而言,不穩定位元在SRAM裝置最初被通電時呈現一邏輯0,且在SRAM裝置被斷電且隨後再次被通電時可呈現一邏輯1。值之不穩定性由雜訊(諸如,熱雜訊)所致。一般而言,不穩定位元之初始邏輯狀態係不可預測的。另一方面,即使SRAM裝置被多次通電及斷電,穩定位元仍可呈現一一致性初始邏輯狀態。亦即,穩定位元之初始邏輯狀態係可預測的。通常,穩定位元及不穩定位元跨越整個SRAM裝置隨機地分佈,此可產生一可變性,根據某些實施例,所揭露tRNG可藉由使用不穩定位元之不可預測性而使用該可變性來產生隨機數字。由於SRAM裝置中之不穩定位元之存在可導致某些故障發生,因此減少SRAM裝置中之不穩定位元之數目通常係設計/製造SRAM裝置之一目標。在不危及此一目標(亦即,使不穩定位元之數目保持為低)之情況下,所揭露tRNG包含一摺疊電路,該摺疊電路經組態以「事實上污染」穩定位元(其通常構成SRAM裝置之多數位元)以致使穩定位元變為一不穩定位元。因此,可事實上增加不穩定位元之數目。使用不穩定位元之不可預測性,不穩定位元之所增加數目又可提供用於產生隨機數字(或位元)之一「可靠」非確定性源。因此,藉由使用所揭露tRNG而產生之隨機數字(或一隨機數字向量/序列)可有利地具有一較高「隨機性」位準。 圖1圖解說明根據各種實施例之一真實隨機數字產生器(tRNG) 102之一例示性方塊圖。在圖1之所圖解說明實施例中,tRNG 102包含一SRAM區塊104、一摺疊電路106、一隨機位元控制器(RBC) 108及一起動電路110,在某些實施例中,tRNG 102之組件(亦即,SRAM區塊104、摺疊電路106、RBC 108及起動電路110)中之每一者彼此耦合。此外,一隨機健康監測器(RHM) 112耦合至tRNG 102,如圖1中所圖解說明。儘管RHM 112圖解說明為與tRNG 102分開之一組件,但在某些實施例中,RHM 112可整合至tRNG 102中,同時保持處於本揭露之範疇內。 如圖1中所圖解說明,在某些實施例中,SRAM區塊104包含具有複數個位元之一位元陣列105,其中該等位元中之每一者經組態以儲存一邏輯狀態(一邏輯1或一邏輯0)。如上文所闡述,每當SRAM區塊104被通電時,每一位元處存在一初始邏輯狀態。在某些實施例中,SRAM區塊104藉由起動電路110而被通電及斷電。在某些特定實施例中,起動電路110可反覆地使SRAM區塊104通電及斷電。下文關於圖4A及圖4B將進一步詳細闡述起動電路110之操作。耦合至SRAM區塊104之摺疊電路106經組態以讀取一第一組位元之初始邏輯狀態,隨後讀取一第二組位元之初始邏輯狀態,且對第一及第二組位元之初始邏輯狀態執行一邏輯函數,以基於第一組位元之初始邏輯狀態而提供第二組位元中之至少一者之一經更改初始邏輯狀態。在某些實施例中,tRNG 102可提供第二組位元之經更改初始邏輯狀態作為一隨機數字向量107。關於圖2將進一步闡述摺疊電路106之細節。 仍參考圖1,在某些其他實施例中,可執行一檢查程序以藉由使用RHM 112而判定隨機數字向量107之一隨機性位準。在某些實施例中,tRNG 102可提供隨機數字向量107作為至RHM 112之一輸入信號。然後,RHM 112基於美國國家標準技術研究所(NIST) (例如,參見http://csrc.nist,gov/groups/ST/toolkit/rng/)所提供之一測試而判定所產生隨機數字向量107之隨機性位準,且進一步將一回饋信號113提供至tRNG 102之RBC 108。另一選擇係或另外,RHM 112可由tRNG 102之一使用者存取以判定隨機數字向量107是否具有充分數目個隨機位元(此可由使用者規定)以將回饋信號113提供至tRNG 102之RBC 108。然後,使用回饋信號113來告知RBC 108隨機數字向量107之一不充分隨機性位準或不充分數目個隨機位元。因此,RBC 108可透過一控制信號115致使摺疊電路106反覆地讀取及更改位元陣列105之其他一或多組(例如,第三、第四、第五組等)位元之初始邏輯狀態以提供一或多個經更新隨機數字向量107,直至RHM 112判定經更新隨機數字向量107之隨機性位準高於一預定義臨限值或使用者判定隨機數字向量107具有充分數目個隨機位元為止。因此,RHM 112所提供之回饋信號113可指示經更新隨機數字向量107之一充分隨機性位準或充分數目個隨機位元,使得RBC 108透過控制信號115可致使摺疊電路106終止讀取及更改位元陣列105之下一組位元之初始邏輯狀態。在某些實施例中,可使此一迭代117 (亦即,自107至113至115,如圖1中所展示)重複任何所要次數或直至獲得一充分隨機性位準及/或充分數目個隨機位元為止,下文將進一步詳細論述此。 圖2圖解說明根據各種實施例之圖1之摺疊電路106之SRAM區塊104之一例示性示意圖。如圖2之所圖解說明實施例中所展示,除位元陣列105之外,SRAM區塊104亦包含一解碼器,關於圖3A至圖3E將進一步詳細闡述該解碼器之操作。SRAM區塊104之位元陣列105包含25個位元:105-1、105-2、105-3、105-4、105-5、105-6、105-7、105-8、105-9、105-10、105-11、105-12、105-13、105-14、105-15、105-16、105-17、105-18、105-19、105-20、105-21、105-22、105-23、105-24及105-25。儘管圖2之所圖解說明實施例中僅展示25個位元,但位元陣列105之實施例中可包含任何所要數目個位元,同時保持處於本揭露之範疇內。 更特定而言,位元陣列105之位元可經配置呈一行-列組態。位元105-1及105-21以及放置於其之間的任何其他位元(例如,105-6、105-11、105-16)配置成行「A」。類似地,位元105-2及105-22以及放置於其之間的任何其他位元(例如,105-7、105-12、105-17)配置成行「B」;位元105-3及105-23以及放置於其之間的任何其他位元(例如,105-8、105-13、105-18)配置成行「C」;位元105-4及105-24以及放置於其之間的任何其他位元(例如,105-9、105-14、105-19)配置成行「D」;位元105-5及105-25以及放置於其之間的任何其他位元(例如,105-10、105-15、105-20)配置成行「E」。儘管圖2中僅圖解說明5個行,但位元陣列105中可包含任何所要數目個行,同時保持處於本揭露之範疇內。 仍更特定而言,在圖2之位元陣列105中,每一行中之位元各自放置於一各別列中,且每一列可包含各自屬於一各別且不同之行之複數個位元。在圖2之所圖解說明實施例中,分別屬於行A、B、C、D及E之位元105-1、105-2、105-3、105-4及105-5放置於一相同列中,下文中稱為列「a」。類似地,分別屬於行A、B、C、D及E之位元105-6、105-7、105-8、105-9及105-10放置於一相同列中,下文中稱為列「b」;分別屬於行A、B、C、D及E之位元105-11、105-12、105-13、105-14及105-15放置於一相同列中,下文中稱為列「c」;分別屬於行A、B、C、D及E之位元105-16、105-17、105-18、105-19及105-20放置於一相同列中,下文中稱為列「d」;分別屬於行A、B、C、D及E之位元105-21、105-22、105-23、105-24及105-25放置於一相同列中,下文中稱為列「e」。儘管僅圖解說明5個列,但位元陣列105中可包含任何所要數目個列,同時保持處於本揭露之範疇內。 仍參考圖2,摺疊電路106包含複數個(電子)邏輯閘150、152、154、156及158以及耦合至複數個電子邏輯閘150至158之一累加暫存器160。更特定而言,累加暫存器160包含複數個鎖存器單元160-1、160-2、160-3、160-4、160-5,其中鎖存器單元中之每一者耦合至一對應邏輯閘。舉例而言,鎖存器單元160-1耦合至邏輯單元150;鎖存器單元160-2耦合至邏輯閘152;鎖存器單元160-3耦合至邏輯閘154;鎖存器單元160-4耦合至邏輯閘156;鎖存器單元160-5耦合至邏輯閘158。 更特定而言,在圖2之所圖解說明實施例中,邏輯閘中之每一者及其對應(所耦合)鎖存器單元耦合至位元陣列105之行中之一者。舉例而言,邏輯閘150及鎖存器單元160-1耦合至位元陣列105之行A;邏輯閘152及鎖存器單元160-2耦合至位元陣列105之行B;邏輯閘154及鎖存器單元160-3耦合至位元陣列105之行C;邏輯閘156及鎖存器單元160-4耦合至位元陣列105之行D;邏輯閘158及鎖存器單元160-5耦合至位元陣列105之行E。在某些實施例中,位元陣列105之行中之每一者(例如,行A)具有一位元線(BL)及/或一反位元線(BBL),且沿著彼行之位元(例如,位元105-1、105-6、105-11、105-16及105-21)中之每一者耦合至彼行之BL及/或BBL。此外,每一邏輯閘可透過對應行之BL及/或BBL耦合至位元陣列105之對應行。在圖2中,摺疊電路106包含各自分別對應於位元陣列105之5個行之5個邏輯閘及5個對應鎖存器,如上文所闡述。然而,在其中位元陣列105包含少於或多於5個行之某些其他實施例中,可調整摺疊電路之邏輯閘及鎖存器單元之數目以對應於位元陣列105之行之數目。 根據各種實施例,通常,摺疊電路106之複數個邏輯閘中之每一者具有兩個輸入埠及一個輸出埠。此外,摺疊電路106之每一邏輯閘經組態以對兩個輸入埠處所接收之信號(下文中稱為「第一輸入信號」及「第二輸入信號」)執行一「互斥或(XOR)」邏輯函數或一「互補互斥或(XNOR)」函數以在輸出埠處產生一信號(下文中稱為「經XOR運算信號」)。因此,在某些實施例中,邏輯閘(例如,150、152、154、156及158)中之每一者可係一XOR邏輯閘(亦即,以執行一XOR函數)或一XNOR邏輯閘(亦即,以執行一XNOR函數)。另一選擇係,在各種實施例中,可使用多種不同類型之邏輯閘中之任一者。關於累加暫存器160之鎖存器單元,每一鎖存器單元具有一輸入埠及一輸出埠。更特定而言,每一鎖存器單元之輸入埠耦合至鎖存器單元之對應邏輯閘之輸出埠,且鎖存器單元之輸出埠耦合至對應邏輯閘之兩個輸入埠中之一者。在某些實施例中,鎖存器單元經組態以將對應邏輯閘之輸出埠處之信號(亦即,經XOR運算信號)鎖存至鎖存器單元之輸出埠。換言之,鎖存器單元經組態以暫時地儲存鎖存器單元之輸出埠處之經XOR運算信號。鎖存器單元之輸出埠經組態以提供所鎖存(所儲存)經XOR運算信號作為一輸出信號(例如,隨機數字向量107之一部分)且亦作為鎖存器單元之對應邏輯閘之第二輸入信號。在某些實施例中,累加暫存器160 (更特定而言,鎖存器單元160-1至160-5)所提供之輸出信號可構成隨機數字向量107。鎖存器單元之對應邏輯閘之另一輸入埠經組態以耦合至位元陣列105之一對應行,使得對應邏輯閘之另一輸入埠經組態以接收沿著位元陣列105之所耦合行之一位元之一位元資料(例如,一初始邏輯狀態)作為對應邏輯閘之第一輸入信號,下文將進一步詳細論述此。 舉例而言,邏輯閘150自位元陣列105之行A接收其第一輸入信號151-1且自所耦合鎖存器單元160-1接收第二輸入信號151-2,且對信號151-1及151-2進行XOR運算以給所耦合鎖存器單元160-1提供經XOR運算信號151-3。在某些實施例中,第一輸入信號151-1可包含沿著行A之位元(亦即,位元105-1、105-6、105-11、105-16及105-21)中之至少一者之一初始邏輯狀態。然後,鎖存器單元160-1將經XOR運算信號151-3鎖存為邏輯閘150之一輸出信號以及第二輸入信號151-2。類似地,邏輯閘152自位元陣列105之行B接收其第一輸入信號153-1且自所耦合鎖存器單元160-2接收第二輸入信號153-2,且對信號153-1及153-2進行XOR運算以給所耦合鎖存器單元160-2提供經XOR運算信號153-3。在某些實施例中,第一輸入信號153-1可包含沿著行B之位元(亦即,位元105-2、105-7、105-12、105-17及105-22)中之至少一者之一初始邏輯狀態。然後,鎖存器單元160-2將經XOR運算信號153-3鎖存為邏輯閘152之一輸出信號以及第二輸入信號153-2。仍類似地,邏輯閘154自位元陣列105之行C接收其第一輸入信號155-1且自所耦合鎖存器單元160-3接收第二輸入信號155-2,且對信號155-1及155-2進行XOR運算以給所耦合鎖存器單元160-3提供經XOR運算信號155-3。在某些實施例中,第一輸入信號155-1可包含沿著行C之位元(亦即,位元105-3、105-8、105-13、105-18及105-23)中之至少一者之一初始邏輯狀態。然後,鎖存器單元160-3將經XOR運算信號155-3鎖存為邏輯閘154之一輸出信號以及第二輸入信號155-2。依據以上類似說明,邏輯閘156自沿著位元陣列105之行D之位元中之一者接收其第一輸入信號157-1且自耦合至邏輯閘156之鎖存器單元160-4接收第二輸入信號157-2。而且,邏輯閘156對第一輸入信號157-1及第二輸入信號157-2進行XOR運算以給鎖存器單元160-4提供經XOR運算信號157-3。然後,鎖存器單元160-4將經XOR運算信號157-3鎖存為邏輯閘156之一輸出信號以及第二輸入信號157-2。關於邏輯閘158,邏輯閘158自沿著位元陣列105之行E之位元中之一者接收其第一輸入信號159-1且自耦合至邏輯閘158之鎖存器單元160-5接收第二輸入信號159-2。而且,邏輯閘158對第一輸入信號159-1及第二輸入信號及159-2進行XOR運算以給鎖存器單元160-5提供經XOR運算信號159-3。然後,鎖存器單元160-5將經XOR運算信號159-3鎖存為邏輯閘158之一輸出信號以及第二輸入信號159-2。 在某些實施例中,累加暫存器160之鎖存器單元(例如,160-1、160-2、160-3、160-4及160-5)中之每一者可包含一D正反器,同時可使用多種鎖存器單元(或正反器)中之任一者。在其中鎖存器單元中之每一者實施為一D正反器之實施例中,D正反器可進一步包含經組態以接收一時脈信號(例如,如圖2中所展示之160-c)之一輸入埠。在某些實施例中,時脈信號160-c用於同步累加暫存器160之複數個鎖存器單元。 仍連同圖1一起參考圖2,將分別關於圖3A、圖3B、圖3C、圖3D及圖3E以不同階段論述用以產生隨機數字向量107之tRNG 102之操作。圖3A至圖3E各自圖解說明位元陣列105之每一位元處呈現之邏輯狀態(包含下文將闡述之初始邏輯狀態及經更改初始邏輯狀態)之一實例。為清晰起見,圖3A至圖3E中未展示每一位元之編號(例如,105-1、105-2、105-3、…、105-25)。在以下論述中,每一位元由其對應行及列指代。舉例而言,位元105-1稱為「位元Aa」;位元105-2稱為「位元Ba」;位元105-3稱為「位元Ca」;位元105-4稱為「位元Da」;位元105-5稱為「位元Ea」;位元105-6稱為「位元Ab」;位元105-7稱為「位元Bb」;位元105-8稱為「位元Cb」;位元105-9稱為「位元Db」;位元105-10稱為「位元Eb」;位元105-5稱為「位元Ea」;位元105-6稱為「位元Ab」;位元105-7稱為「位元Bb」;位元105-8稱為「位元Cb」;位元105-9稱為「位元Db」;位元105-10稱為「位元Eb」;位元105-11稱為「位元Ac」;位元105-12稱為「位元Bc」;位元105-13稱為「位元Cc」;位元105-14稱為「位元Dc」;位元105-15稱為「位元Ec」;位元105-16稱為「位元Ad」;位元105-17稱為「位元Bd」;位元105-18稱為「位元Cd」;位元105-19稱為「位元Dd」;位元105-20稱為「位元Ed」;位元105-21稱為「位元Ae」;位元105-22稱為「位元Be」;位元105-23稱為「位元Ce」;位元105-24稱為「位元De」;及位元105-25稱為「位元Ee」。 如上文所闡述,隨機數字向量107之產生係基於透過對位元之初始邏輯狀態進行XOR (或XNOR)運算而對位元陣列105之位元之初始邏輯狀態進行之一或多個更改(污染)程序。就此而言,根據某些實施例,SRAM區塊104 (更特定而言,位元陣列105)藉由起動電路110而被通電。一旦位元陣列105被通電,位元陣列105之每一位元便呈現一初始邏輯狀態,亦即,一邏輯1或0。參考圖3A,舉例而言,列「a」上之位元Aa、Ba、Ca、Da及Ea可分別呈現如下初始邏輯狀態:1、0、0、1及X,其中「X」之一邏輯狀態係指一不穩定位元。 在圖3A之所圖解說明實施例及以下論述(圖3B至圖3E)中,當一位元呈現一1或一0 (例如,位元Aa、Ba、Ca、Da)時,該位元稱為一穩定位元;當一位元呈現一X (例如,位元Ea)時,該位元稱為一不穩定位元。如上文所闡述,此一不穩定位元(例如,位元Ea)之初始邏輯狀態係不可預測的,使得(舉例而言)位元Ea之初始邏輯狀態可有時為一1或有時為一0。如圖3A中進一步所展示,沿著列b之位元Ab、Bb、Cb、Db及Eb可分別呈現如下初始邏輯狀態:X、X、0、0、1;沿著列c之位元Ac、Bc、Cc、Dc及Ec可分別呈現如下初始邏輯狀態:1、1、0、0、1;沿著列d之位元Ad、Bd、Cd、Dd及Ed可分別呈現如下初始邏輯狀態:0、1、X、1、0;沿著列e之位元Ae、Be、Ce、De及Ee可分別呈現如下初始邏輯狀態:0、0、1、X、1。 繼續論述根據各種實施例之tRNG 102之操作,摺疊電路106首先讀取一第一組位元之初始邏輯狀態,且隨後,摺疊電路106讀取一第二組位元之初始邏輯狀態。更特定而言,在某些實施例中,摺疊電路106之邏輯閘可執行此等讀取操作。在某些實施例中,在以下論述中,第一組位元可包含沿著一第一列之位元,且可由SRAM區塊104之解碼器120 (圖2)而判定及執行第二組位元可包含沿著一第二列之位元。第一列之選擇及第二列之後續選擇。在某些實施例中,解碼器120可包含一行解碼器及/或一列解碼器。更特定而言,在解碼器120係一列解碼器之一實例中,列解碼器120可藉由使用一控制信號來確證與彼列相關聯之一信號線(例如,一字線)而選擇一列。 繼續上文所論述之實例,列解碼器120可首先選擇列a。因此,沿著列a之位元中之每一者之初始邏輯狀態分別由摺疊電路106之所耦合邏輯閘讀取。如上文所闡述及圖2之實施例中所圖解說明,位元陣列105之每一行(A、B、C、D及E)耦合至摺疊電路106之一邏輯閘,且更特定而言,沿著彼行之位元中之每一者之初始邏輯狀態可用作至所耦合邏輯閘之第一輸入信號。因此,沿著列a之位元之初始邏輯狀態可分別由邏輯閘150、152、154、156及158讀取/接收(作為第一輸入信號)。舉例而言,第一輸入信號151-1、153-1、155-1、157-1及159-1可呈現為1、0、0、1、X,1、0、0、1、X亦分別係位元Aa、Ba、Ca、Da及Ea之初始邏輯狀態。 在讀取第二組(例如,第二列)位元之初始邏輯狀態之前,在某些實施例中,摺疊電路106之邏輯閘中之每一者可對每一各別邏輯閘之第一及第二輸入信號執行XOR函數(或XNOR函數)。在以上實例中,對於每一邏輯閘,僅第一輸入信號呈現一邏輯狀態,使得在某些實施例中,第二信號151-2、153-2、155-2、157-2及159-2最初可各自具有一NULL狀態(例如,一0)。在某些實施例中,兩個經XOR運算輸入將根據以下表1中所展示之真值表而提供一輸出。 表1 在邏輯閘中之每一者產生經XOR運算信號之後,對應鎖存器單元將此一經XOR運算信號鎖存為輸出信號(以構成隨機數字向量107)且亦提供經鎖存信號作為至對應邏輯閘之第二輸入信號,如上文所闡述。因此,在以上實例中,鎖存器單元160-1、160-2、160-3、160-4及160-5之輸出信號151-2、153-2、155-2、157-2及159-2以及邏輯閘150、152、154、156及158之第二輸入信號151-2、153-2、155-2、157-2及159-2可分別呈現為:1、0、0、1及X,如圖3A中所圖解說明。 在某些實施例中,在邏輯閘之第二輸入信號轉變(例如,自NULL狀態轉變為以上實例中之1、0、0、1及X)之後或在所分別耦合鎖存器單元提供邏輯閘之第二輸入信號後,然後列解碼器120可選擇將要讀取的位元陣列之第二列。繼續上文所提供之相同實例,列解碼器120選擇列b。因此,仍參考圖3A,沿著列b (亦即,位元Ab、Bb、Cb、Db及Eb)之位元之初始邏輯狀態由摺疊電路106之邏輯閘讀取。因此,邏輯閘150、152、154、156及158之第一輸入信號151-1、153-1、155-1、157-1及159-1分別呈現為:X、X、0、0、1。 依據上文所論述之操作,邏輯閘中之每一者對其第一及第二輸入信號執行XOR函數(使用表1之真值表)以提供一經XOR運算信號。使用相同實例,邏輯閘150藉由對第一輸入信號151-1 (亦即,位元Ab之初始邏輯狀態:X)及第二輸入信號151-2 (亦即,來自先前XOR操作之經鎖存輸出:1)執行XOR函數而將經XOR運算信號151-3提供為一X。類似地,邏輯閘152藉由對第一輸入信號153-1 (亦即,位元Bb之初始邏輯狀態:X)及第二輸入信號153-2 (亦即,來自先前XOR操作之經鎖存輸出:0)執行XOR函數而將經XOR運算信號153-3提供為一X;邏輯閘154藉由對第一輸入信號155-1 (亦即,位元Cb之初始邏輯狀態:0)及第二輸入信號155-2 (亦即,來自先前XOR操作之經鎖存輸出:0)執行XOR函數而將經XOR運算信號155-3提供為一0;邏輯閘156藉由對第一輸入信號157-1 (亦即,位元Db之初始邏輯狀態:0)及第二輸入信號157-2 (亦即,來自先前XOR操作之經鎖存輸出:1)執行XOR函數而將經XOR運算信號157-3提供為一1;邏輯閘158藉由對第一輸入信號159-1 (亦即,位元Eb之初始邏輯狀態:1)及第二輸入信號159-2 (亦即,來自先前XOR操作之經鎖存輸出:X)執行XOR函數而將經XOR運算信號151-3提供為一X。構成經更改初始邏輯狀態之所得經XOR運算信號151-3、153-3、155-3、157-3及159-3然後由各別鎖存器單元160-1、160-2、160-3、160-4、160-5鎖存且提供為輸出信號151-2、153-2、155-2、157-2及159-2。輸出信號151-2、153-2、155-2、157-2及159-2亦提供為至各別邏輯閘之第二輸入信號以對一後續列(例如,列c、d、e等)執行進一步XOR函數。如圖3B中所展示,提供為輸出信號151-2、153-2、155-2、157-2及159-2之所得經XOR運算信號(經更改初始邏輯狀態)分別為X、X、0、1、X。注意,沿著列b之位元之初始邏輯狀態仍為X、X、0、0、1 (圖3A及圖3B),但沿著列b之位元之經更改初始邏輯狀態(經XOR運算信號)為X、X、0、1、X (圖3B)。更特定而言,位元Eb之穩定性事實上改變(亦即,事實上變為一不穩定位元)。在某些實施例中,一位元之穩定性之此一更改稱為位元之一「污染」程序。如下進一步詳細闡述該污染程序之原理。 如上文所闡述,X稱為不穩定位元之初始邏輯狀態。X可有時為一0且有時為一1,亦即,一不可預測初始邏輯狀態。另一方面,穩定位元之初始邏輯狀態始終為一1或一0,亦即,一可預測初始邏輯狀態。因此,當對一不可預測初始邏輯狀態與一可預測初始邏輯狀態進行XOR運算時,經XOR運算結果亦變為不可預測的。舉例而言,基於如表1中所展示之XOR函數之真值表,與一可預測0進行XOR運算之一不可預測X (有時為一1,有時為一0)可有時輸出一1 (當X為一1時),且有時輸出一0 (當X為一0時)。 依據上文所闡述原理,當一邏輯閘對一穩定位元(其具有一可預測初始邏輯狀態)及一不穩定位元(其具有一不可預測初始邏輯狀態)之初始邏輯狀態執行XOR函數時,結果(亦即,經XOR運算輸出)係一不穩定位元,此乃因所得初始邏輯狀態現在變為不可預測的。因此,當摺疊電路106對一穩定位元與一不穩定位元進行XOR運算時,穩定位元可被不穩定位元「污染」且變為一不穩定位元。 再次連同圖2一起參考圖3B,摺疊電路106藉由對沿著列b之位元之初始邏輯狀態與沿著列a之位元之初始邏輯狀態進行XOR運算事實上污染沿著列b之位元之穩定性。更特定而言,摺疊電路106藉由對列a上之位元Ea之不可預測初始邏輯狀態與列b上之位元Eb之可預測初始邏輯狀態進行XOR運算事實上污染列b上之位元Eb之穩定性。如圖3B中所展示,因對列b之位元進行XOR運算而產生之輸出信號151-2、153-2、155-2、157-2及159-2為:X、X、0、1、X。因此,摺疊電路106已執行一個污染程序。在以下論述中,使用列a對列b進行之污染程序稱為「第一污染程序」。 在某些實施例中,返回參考圖1及圖2,摺疊電路106可提供輸出信號151-2、153-2、155-2、157-2及159-2作為隨機數字向量107而無需透過RHM 112及RBC 108進行進一步迭代(例如,117)。換言之,在此一實施例中,由摺疊電路106執行一個污染程序(例如,使用列a對列b進行之第一污染程序)。在某些其他實施例中,摺疊電路106可繼續反覆地執行一或多個污染程序直至達成(或超過)隨機數字向量107中之隨機位元之一所要數目或藉由NIST測試而認可/接受隨機數字向量107之隨機性位準為止。在某些實施例中,當摺疊電路106在第一污染程序之後提供輸出信號151-2、153-2、155-2、157-2及159-2 (亦即,X、X、0、1、X)作為隨機數字向量107時,此隨機數字向量107中之隨機位元之數目為3 (亦即,3個不穩定位元分別被視為隨機位元)。若隨機位元之所要數目為2 (舉例而言,由tRNG 102之一使用者規定),則此隨機數字向量107中之隨機位元之數目(亦即,3)超過隨機位元之所要數目(亦即,2)。因此,使用者可使用隨機數字向量107且終止執行任何其他污染程序。另一方面,若隨機數字向量107中之隨機位元之數目未達到或超過所要數目,則使用者可遵循迭代117 (圖1)以致使摺疊電路106執行一或多個污染程序。在某些實施例中,使用者可利用RHM 112來執行上文所闡述操作(例如,迭代117)。在某些實施例中,RHM 112可使用由NIST (如上文所闡述)所提供之測試來判定隨機數字向量107是否通過測試。若隨機數字向量107通過NIST隨機性測試,則RHM 112可致使摺疊電路106終止污染更多位元。若未通過測試,則RHM 112亦可遵循迭代117以致使摺疊電路106污染更多位元。 圖3C、圖3D及圖3E分別圖解說明第二、第三及第四污染程序之後的輸出信號151-2、153-2、155-2、157-2及159-2。更特定而言,如圖3C中所圖解說明,第二污染程序包含使用沿著列b之位元之經更改邏輯初始狀態(亦即,輸出信號151-2、153-2、155-2、157-2及159-2:X、X、0、1、X,如圖3B中所展示)對沿著列c之位元之初始邏輯狀態進行XOR運算。類似地,如圖3D中所圖解說明,第三污染程序包含使用沿著列c之位元之經更改邏輯初始狀態(亦即,輸出信號151-2、153-2、155-2、157-2及159-2:X、X、0、1、X,如圖3C中所展示)對沿著列d之位元之初始邏輯狀態進行XOR運算;如圖3E中所圖解說明,第四污染程序包含使用沿著列d之位元之經更改邏輯初始狀態(亦即,輸出信號151-2、153-2、155-2、157-2及159-2:X、X、X、0、X,如圖3D中所展示)對沿著列e之位元之初始邏輯狀態進行XOR運算。下文將分別詳細提供圖3C、圖3D及圖3E之污染程序之細節。 現在參考圖3C,在第一污染程序之後,輸出信號151-2、153-2、155-2、157-2及159-2 (以及邏輯閘150、152、154、156及158分別之第二輸入信號)係沿著列b之位元之經更改初始邏輯狀態。此等第二輸入信號在第二污染程序中將由各別邏輯閘150、152、154、156及158用於對沿著列c之位元之初始邏輯狀態執行XOR函數。出於圖解目的,在圖3C中,除展示沿著列b之位元之初始邏輯狀態(在斜線上方)之外,列b上亦展示來自第一污染程序之輸出信號151-2、153-2、155-2、157-2及159-2 (亦即,邏輯閘150、152、154、156及158分別之第二輸入信號) (在斜線下方)。在某些實施例中,列解碼器120 (圖2)接下來選擇列c來被摺疊電路106讀取。因此,遵循上文所闡述之操作,摺疊電路106之邏輯閘150、152、154、156及158之第一輸入信號係沿著列c之位元之初始邏輯狀態,該等初始邏輯狀態為1、1、0、0及1,如圖3A至圖3C中所展示。透過藉由邏輯閘150、152、154、156及158對各別第一及第二輸入信號進行XOR運算,邏輯閘150、152、154、156及158之經XOR運算信號151-3、153-3、155-3、157-3及159-3呈現為X、X、0、1及X。如上文所闡述,經XOR運算信號151-3、153-3、155-3、157-3及159-3然後分別由鎖存器單元160-1、160-2、160-3、160-4及160-5鎖存為輸出信號151-2、153-2、155-2、157-2及159-2,亦即,X、X、0、1及X,如圖3C中所展示,且若需要,則亦分別提供為邏輯閘150、152、154、156及158之第二輸入信號以用於一第三污染程序。 現在參考圖3D,在第二污染程序之後,輸出信號151-2、153-2、155-2、157-2及159-2 (以及邏輯閘150、152、154、156及158分別之第二輸入信號)係沿著列c之位元之經更改初始邏輯狀態(在斜線下方)。此等第二輸入信號在第三污染程序中將由各別邏輯閘150、152、154、156及158用於對沿著列d之位元之初始邏輯狀態執行XOR函數。出於圖解目的,在圖3D中,除展示沿著列c之位元之初始邏輯狀態(在斜線上方)之外,列c上亦展示來自第二污染程序之輸出信號151-2、153-2、155-2、157-2及159-2 (亦即,邏輯閘150、152、154、156及158分別之第二輸入信號) (在斜線下方)。在某些實施例中,列解碼器120 (圖2)然後選擇列d來被摺疊電路106讀取。因此,遵循上文所闡述之類似操作,摺疊電路106之邏輯閘150、152、154、156及158之第一輸入信號係沿著列d之位元之初始邏輯狀態,該等初始邏輯狀態為0、1、X、1及0,如圖3A至圖3D中所展示。透過藉由邏輯閘150、152、154、156及158對各別第一及第二輸入信號進行XOR運算,邏輯閘150、152、154、156及158之經XOR運算信號151-3、153-3、155-3、157-3及159-3呈現為X、X、X、0及X。如上文所闡述,經XOR運算信號151-3、153-3、155-3、157-3及159-3然後分別由鎖存器單元160-1、160-2、160-3、160-4及160-5鎖存為輸出信號151-2、153-2、155-2、157-2及159-2,亦即,X、X、X、0及X,如圖3D中所展示,且若需要,則亦分別提供為邏輯閘150、152、154、156及158之第二輸入信號以用於一第四污染程序。 現在參考圖3E,在第三污染程序之後,輸出信號151-2、153-2、155-2、157-2及159-2 (以及邏輯閘150、152、154、156及158分別之第二輸入信號)係沿著列d之位元之經更改初始邏輯狀態(在斜線下方)。此等第二輸入信號在第四污染程序中將由各別邏輯閘150、152、154、156及158用於對沿著列e之位元之初始邏輯狀態執行XOR函數。出於圖解目的,在圖3E中,除展示沿著列d之位元之初始邏輯狀態(在斜線上方)之外,列d上亦展示來自第三污染程序之輸出信號151-2、153-2、155-2、157-2及159-2 (亦即,邏輯閘150、152、154、156及158分別之第二輸入信號) (在斜線下方)。返回參考圖2,在某些實施例中,列解碼器120繼續選擇列e來被摺疊電路106讀取。因此,遵循上文所闡述之類似操作,摺疊電路106之邏輯閘150、152、154、156及158之第一輸入信號係沿著列e之位元之初始邏輯狀態,該等初始邏輯狀態為0、0、1、X及1,如圖3A至圖3E中所展示。透過藉由邏輯閘150、152、154、156及158對各別第一及第二輸入信號進行XOR運算,邏輯閘150、152、154、156及158之經XOR運算信號151-3、153-3、155-3、157-3及159-3呈現為X、X、X、X及X。如上文所闡述,經XOR運算信號151-3、153-3、155-3、157-3及159-3然後分別由鎖存器單元160-1、160-2、160-3、160-4及160-5鎖存為輸出信號151-2、153-2、155-2、157-2及159-2,亦即,X、X、X、X及X,如圖3E中所展示。在某些實施例中,tNRG 102提供輸出信號151-2、153-2、155-2、157-2及159-2作為隨機數字向量107。 在以上實例中,隨機數字向量107可包含X、X、X、X、X之(經更改)初始邏輯狀態(亦即,5個不穩定位元)。如上文所闡述,一不穩定位元之初始邏輯狀態係不可預測的,因此每一不穩定位元可用作一隨機位元源。因此,在摺疊電路106執行四個污染程序之後,tRNG 102可提供5個隨機位元(在隨機數字向量107中),如上文所闡述。在以上實例中,組合一初始XOR程序與四個後續污染程序,一總共五個XOR運算程序產生5個隨機(亦即,不穩定)位元。根據本揭露之各種實施例,上文所闡述XOR運算程序在本文中稱為一「摺疊循環」。 如上文所闡述,若tRNG 102所提供之隨機數字向量107中之隨機位元之數目超過或達到由tRNG 102之使用者規定之隨機位元之所要數目,則所提供隨機數字向量107可被使用者接受且可不執行進一步摺疊循環。在以上實例中,若由(tRNG 102之)一使用者規定之隨機位元之數目為5或小於5,則具有5個隨機位元(在5個摺疊循環之後)之隨機數字向量107可被使用者接受。然而,在某些實施例中,一或多個摺疊循環可需要達到或超過由tRNG 102之一使用者規定之隨機位元之一所要數目。首先參考上文所提供實例,如圖3A中所圖解說明,位元陣列105中之一總共25個位元中存在5個不穩定位元(在任何污染程序之前),亦即,位元陣列105中存在20%不穩定位元。在另一實例中,若位元陣列105包含按20列及5行配置之100個位元,且100個位元(在被污染之前)中存在5%不穩定位元,則摺疊電路106可使用5個以上摺疊循環來達成5個隨機位元,舉例而言,20個或更多個摺疊循環。 如上文所闡述,在某些實施例中,每當一組初始邏輯狀態(例如,圖2之沿著列a、b、c、d、e之位元之初始邏輯狀態)將要被摺疊電路106讀取時,起動電路110可反覆地使SRAM區塊104通電及斷電(下文中稱為「電力循環」)。透過此等反覆電力循環,可有利地增加tRNG 102所提供之隨機數字向量107之隨機性位準(或隨機位元之數目)。為改良tRNG 102之一操作速度(亦即,減小電力循環之間的延時),起動電路110可規定後續電力循環之間的一時間間隔。然而,當起動電路110在SRAM區塊104被完全放電之前(在一個電力循環之一斷電階段期間)使SRAM區塊104通電時,可出現多種問題,舉例而言,諸如所提供隨機數字向量107之隨機性位準。為解決此等問題,本揭露中之tRNG 102提供起動電路110的在不危及隨機數字向量107之隨機性位準之情況下可提供一經改良延時之某些實施例。 現在參考圖4A及圖4B,圖4A係根據各種實施例之圖解說明SRAM區塊104 (圖1)之一部分及起動電路110 (圖1)之一部分之一例示性示意圖。由於圖4A係出於圖解目的而提供,因此圖4A中僅圖解說明SRAM區塊104之一部分(1行及2列)及起動電路110之一部分(對應於部分地所展示之SRAM區塊104)。圖4B圖解說明根據各種實施例之用以操作圖4A之SRAM區塊104及起動電路110之信號之例示性波形。 在圖4A之所圖解說明實施例中,SRAM區塊104包含一預充電電路402、一第一位元(或位元格) 404及一第二位元(或位元格) 406。在某些實施例中,第一位元404及第二位元406係位元陣列105之一部分。仍在某些實施例中,圖4A中之SRAM區塊104之實施例實質上類似於關於圖2之實施例。亦即,位元經配置呈一行-列組態;每一行具有耦合至配置於彼行中之位元之一位元線(BL)及/或一反位元線(BBL);每一列具有耦合至配置於彼列中之位元之一字線(WL)。如上文所闡述,圖4A中僅展示兩列及一行,且因此僅展示兩個位元404及406。圖4A之SRAM區塊104可包含任何所要數目個行及列,且每一行/列可包含仍保持處於本揭露之範疇內之任何所要數目個位元。更特定而言,在圖4A之實施例中,第一位元404及第二位元406配置於一相同行「A」處;行A包含分別耦合至位元404及406之BL 403及BBL 405;位元404及406分別配置於列「a」及「b」處,且列a及b包含分別耦合至位元404及406之WL 407及409。此外,在圖4A之此特定實施例中,預充電電路402亦放置於行A處。預充電電路402透過BL 403及BBL 405耦合至位元404及406。預充電電路402經組態以接收預充電控制信號425以在自位元讀出一邏輯狀態(例如,一初始邏輯狀態)之前將BL 403及BBL 405預充電至所供應電壓401 (例如,Vdd)之一電壓位準,下文將進一步詳細論述此。在某些替代實施例中,預充電電路402可實施為一「放電」電路,該「放電」電路經組態以在自位元讀出一邏輯狀態(例如,一初始邏輯狀態)之前將BL 403及BBL 405放電至接地。 仍參考圖4A,起動電路110包含一第一電晶體420、一第二電晶體422、一第一邏輯閘424、一第二邏輯閘426及一第三邏輯閘428。在某些實施例中,第一邏輯閘424經組態以控制預充電電路402;第二邏輯閘426經組態以控制位元404;第三邏輯閘428經組態以控制位元406,且因此,相應地,圖4A中僅展示三個邏輯閘。遵循其中SRAM區塊104包含較多行/列(亦即,2列及1行)之實施例,起動電路110可包含任何對應數目個邏輯閘,同時保持處於本揭露之範疇內。在某些實施例中,第一電晶體420係一p型金屬氧化物半導體(PMOS)電晶體,第二電晶體422係一n型金屬氧化物半導體(NMOS)電晶體,且第一、第二及第三邏輯閘係OR閘。在某些其他實施例中,第一電晶體420及第二電晶體422可分別係適於執行一切換功能(如下文將闡述)之多種電晶體中之任一者,舉例而言,一雙極接面電晶體(BJT)、一高電子移動性電晶體(HEMT)、一絕緣體上覆矽(SOI)電晶體等。 在圖4A中所圖解說明之實施例中,第一電晶體420之源極耦合至所供應電壓401,第一電晶體420之閘極耦合至經組態以接收一電力信號421之一電力信號線,第一電晶體420之汲極在一共同節點441處耦合至第二電晶體422之汲極,第二電晶體422之閘極亦耦合至經組態以接收電力信號421之電力信號線,且第二電晶體422之源極耦合至接地。共同節點441耦合至至少兩個虛擬供應電壓(VSV)線443及445。VSV線443及445分別耦合至位元404及406。在某些實施例中,OR邏輯閘424、426及428中之每一者經組態以接收兩個輸入信號,且對各別兩個輸入信號執行一OR函數(如表2中所展示)以提供一輸出信號。 表2 在圖4A之所圖解說明實施例中,OR邏輯閘424經組態以對一預充電信號423及電力信號421進行OR運算(亦即,執行OR函數)以給預充電電路402提供預充電控制信號425 (亦即,一經OR運算信號);OR邏輯閘426經組態以對一WL信號427及電力信號421進行OR運算以給位元404提供一WL確證信號429 (亦即,一經OR運算信號);OR邏輯閘428經組態以對一WL信號431及電力信號421進行OR運算以給位元406提供一WL確證信號433 (亦即,一經OR運算信號)。 現在參考圖4B,根據各種實施例分別圖解說明電力信號421、預充電信號423、預充電控制信號425、WL信號427及WL確證信號429之波形。在圖4B之所圖解說明實施例中,波形(信號)中之每一者隨時間(沿著圖4B中之X軸)在一邏輯高狀態(下文中稱為「高」)與一邏輯低狀態(下文中稱為「低」) (沿著圖4B中之Y軸)之間變化。 自「t0」開始,電力信號421處於低;WL信號427及431處於低;預充電信號423處於高。因此,使用表2之OR函數之真值表,預充電控制信號425 (亦即,OR運算信號421及423)處於高;WL確證信號429及433 (亦即,分別為OR運算信號421及427以及OR運算信號421及431)處於低。當電力信號421處於低時,第一電晶體420接通且第二電晶體422關斷。因此,第一電晶體420將所供應電壓401 (Vdd)耦合至VSV線443及445以給位元404及406提供Vdd (亦即,電力)。亦即,位元404及406被通電。當預充電控制信號425處於高時,在此特定實施例中,預充電電路402被去啟動。因此,預充電電路402不將所供應電壓(Vdd)耦合(預充電)至BL 403及BBL 405。亦即,不對BL 403及BBL 405進行預充電。當WL確證信號429處於低時,不確證WL 407,此意指不選擇位元404 (儘管被通電)。類似地,當WL確證信號433處於低時,不確證WL 409,此意指不選擇位元406 (儘管被通電)。 因此,在t0處,位元404與406接通(圖4A中未展示之其他位元亦接通)。如上文所闡述,當(一SRAM區塊之)一位元被通電時,位元可呈現一邏輯狀態,該邏輯狀態係初始邏輯狀態。在某些實施例中,位元404及406可分別呈現一初始邏輯狀態。 繼續進行至時間「t1」,電力信號421保持處於低;預充電信號423自高轉變為低;WL信號427自低轉變為高。因此,使用表2中之OR函數之真值表,預充電控制信號425 (亦即,OR運算信號421及423)自高轉變為低;WL確證信號429 (亦即,OR運算信號421及427)自低轉變為高;WL確證信號433 (亦即,OR運算信號421及431)保持處於低。當預充電控制信號425自高轉變為低時,預充電電路402被啟動。因此,預充電電路402經組態以將BL 403及BBL 405預充電至Vdd (亦即,所供應電壓401)。當WL確證信號429自低轉變為高時,WL 407處於高,此意指選擇列a及因此沿著列a之位元(亦即,位元404)。 因此,在t1處,位元404之初始邏輯狀態可由摺疊電路106讀取。更特定而言,位元404之初始邏輯狀態由耦合至圖4A之行A之(摺疊電路之)一邏輯閘讀取,且位元404之此所讀取初始邏輯狀態可被進一步處理(例如,被邏輯閘進行OR運算、被一對應鎖存器單元鎖存、被鎖存器單元提供為一隨機數字向量107之一個位元),如上文所闡述。 繼續進行至時間「t2」,電力信號421保持處於低;預充電信號423自低轉變為高;WL信號427自高轉變為低;WL信號431保持處於低。因此,使用表2中之OR函數之真值表,預充電控制信號425 (亦即,OR運算信號421及423)自低轉變為高;WL確證信號429 (亦即,OR運算信號421及427)自高轉變為低;WL確證信號433 (亦即,OR運算信號421及431)保持處於低。當預充電控制信號425自低轉變為高時,預充電電路402再次被去啟動。因此,預充電電路402經組態以將BL 403及BBL 405與Vdd解耦。當WL確證信號429自高轉變為低時,WL 407再次轉變為低,此意指不選擇列a及因此沿著列a之位元(亦即,位元404)。因此,位元404之初始邏輯狀態無法被摺疊電路106讀取。 繼續進行至時間「t3」,電力信號421自低轉變為高;預充電信號423保持處於高;WL信號427及431保持處於低。因此,使用表2中之OR函數之真值表,預充電控制信號425 (亦即,OR運算信號421及423)保持處於低;WL確證信號429 (亦即,OR運算信號421及427)自低轉變為高;WL確證信號433 (亦即,OR運算信號421及431)自低轉變為高。當電力信號421自低轉變為高時,第一電晶體420被關斷且第二電晶體422被接通。因此,VSV線443及445與Vdd (亦即,電力)解耦且耦合至接地。亦即,位元404及406被斷電。而且,如上文所闡述,當WL確證信號429及433處於高時,分別確證WL 407及409。 如上文所闡述,反覆地對tRNG 102之SRAM區塊104執行電力循環可有利地增加tRNG 102之所產生隨機數字向量107之隨機性位準。然而,由於SRAM區塊104中存在一或多個寄生電容,因此SRAM區塊104之一位元在該位元被完全放電(斷電)之前可再次被通電,此可不利地影響上文所提及隨機性位準。更特定而言,當一或多個寄生電容未被完全放電時,寄生電容內存在之電荷在SRAM區塊104再次被通電時可不利地往回流至SRAM區塊104之位元。經解耦VSV線443及445、經去啟動預充電電路402以及經確證WL 407及409 (在t3處)可確保一或多個寄生電容在一斷電階段(自t3至t4)期間被完全放電,因此所揭露tRNG 102不經受上文所識別問題。當VSV線443及445與Vdd解耦且耦合至接地時,不僅位元404及406被關斷,而且SRAM區塊104中之一或多個寄生電容被放電。當預充電電路402被去啟動時,SRAM區塊104中之一或多個寄生電容與Vdd之間的一導電路徑(一漏電路徑)亦被斷開連接。當確證(啟動) WL 407及409時,經啟動WL可充當將要被放電之寄生電容內存在之電荷之一放電路徑。 繼續進行至時間「t4」,電力信號421自高轉變為低;預充電信號423保持處於高;WL信號427及431保持處於低。因此,使用表2中之OR函數之真值表,預充電控制信號425 (亦即,OR運算信號421及423)保持處於高;WL確證信號429 (亦即,OR運算信號421及427)自高轉變為低;WL確證信號433 (亦即,OR運算信號421及431)自高轉變為低。因此,位元404及406再次被通電,而預充電電路402、WL 407及409被去啟動,如類似於t2。 在某些實施例中,在t5處,WL信號431自低轉變為高,且預充電信號423自高轉變為低,而電力信號421保持處於低且WL信號427保持處於低。因此,WL確證信號433自低轉變為高且預充電控制信號425自高轉變為低,此可致使預充電電路402對BL 403及BBL 405進行預充電且致使WL 409被確證,藉此使得摺疊電路106能夠讀取位元406 (及圖4A中未展示的沿著列b之其他位元)處呈現之初始邏輯狀態。 圖5圖解說明根據各種實施例之用以藉由使用所揭露tRNG 102來產生一隨機數字向量之一方法500之一流程圖。在各種實施例中,由圖1至圖2中所圖解說明之各別組件執行方法500之操作。出於論述目的,連同圖1至圖2一起將闡述方法500之以下實施例。方法500之所圖解說明實施例僅係一實例。因此,應理解,多種操作中之任一者可被省略、被重新排序及/或被新增,同時保持處於本揭露之範疇內。 方法500在操作502處開始,其中藉由起動電路110而使SRAM區塊104通電。根據各種實施例,當SRAM區塊104被通電時,SRAM區塊104之每一位元(105-1、105-2、105-3、105-4、105-5、105-6、105-7、105-8、105-9、105-10、105-11、105-12、105-13、105-14、105-15、105-16、105-17、105-18、105-19、105-20、105-21、105-22、105-23、105-24及105-25)呈現一初始邏輯狀態(一1或一0)。此外,該等位元中之某些位元呈現一可預測1;該等位元中之某些位元呈現一可預測0。此類型之位元稱為「穩定位元」。該等位元中之某些位元呈現一不可預測初始邏輯狀態,亦即,有時呈現一1且有時呈現一0。此類型之位元稱為「不穩定位元」。 方法500繼續進行至操作504,其中摺疊電路106之邏輯閘讀取沿著位元陣列105之一第一列之位元之初始邏輯狀態。更特定而言,摺疊電路106之每一邏輯閘(150、152、154、156及158)讀取沿著第一列的邏輯閘之對應(所耦合)位元之初始邏輯狀態。使用圖2之SRAM區塊104及摺疊電路106作為一實例,沿著列a之位元105-1、105-2、105-3、105-4及105-5之初始邏輯狀態分別由摺疊電路106之邏輯閘150、152、154、156及158讀取。 方法500繼續進行至操作506,其中摺疊電路106之累加暫存器160將沿著第一列之位元之所讀取初始邏輯狀態鎖存為至摺疊電路106之邏輯閘之回饋信號。更特定而言,累加暫存器160之每一鎖存器單元將由鎖存器單元之對應邏輯閘讀取之初始邏輯狀態鎖存為至鎖存器單元之對應邏輯閘之一回饋信號。繼續以上實例,鎖存器單元160-1、160-2、160-3、160-4及160-5將沿著列a之位元之初始邏輯狀態分別作為回饋信號151-2、153-2、155-2、157-2及159-2鎖存至邏輯閘150、152、154、156及158。 方法500繼續進行至操作508,其中摺疊電路106之邏輯閘讀取沿著位元陣列105之一第二列之位元之初始邏輯狀態。繼續以上實例,沿著列b之位元105-6、105-7、105-8、105-9及105-10之初始邏輯狀態分別由邏輯閘150、152、154、156及158讀取。 方法500繼續進行至操作510,其中摺疊電路106之邏輯閘使用XOR函數分別將沿著列b之位元之初始邏輯狀態與沿著列a之位元之初始邏輯狀態摺疊在一起。更特定而言,摺疊電路106之每一邏輯閘利用在操作506處接收到之回饋信號(亦即,列a上之位元之初始邏輯狀態)對列b上的邏輯閘之對應位元之初始邏輯狀態進行XOR運算且提供列b上的邏輯閘之對應位元之一經XOR運算初始邏輯狀態。 方法500繼續進行至操作512,其中累加暫存器160之鎖存器單元分別將沿著列b之位元之經XOR運算初始邏輯狀態鎖存至對應邏輯閘。在某些實施例中,方法500繼續進行至操作514,其中累加暫存器160之鎖存器單元160-1、160-2、160-3、160-4及160-5提供沿著列b之位元之經XOR運算初始邏輯狀態作為隨機數字向量107。如上文所闡述,具有較多隨機位元之隨機數字向量107可藉由處理沿著一或多個列之位元之初始邏輯狀態而產生。因此,方法500可反覆地按路線返回至操作508 (用以讀取沿著下一列之位元之初始邏輯狀態)、進行至操作510 (用以對沿著下一列之位元之初始邏輯狀態與沿著第二列之位元之經XOR運算初始邏輯狀態進行XOR運算)及512 (用以分別將沿著下一列之位元之經XOR運算初始邏輯狀態鎖存至邏輯閘以用於更下一列),直至隨機數字向量107中達成所要數目個隨機位元為止。 圖6圖解說明根據各種實施例之可同時提供兩個或兩個以上隨機數字向量之另一真實隨機數字產生器(tRNG) 602之一例示性方塊圖。tRNG 602實質上類似於tRNG 102,惟tRNG 602包含額外摺疊電路206及306。摺疊電路206及306實質上類似於摺疊電路106。摺疊電路106、206及306中之每一者耦合至SRAM區塊104以讀取並處理位元陣列105之位元之初始邏輯狀態,如上文所闡述。在此特定實施例中,摺疊電路106、206及306中之每一者經組態以讀取並處理跨越位元陣列105之一組各別位元之初始邏輯狀態,且基於該組各別位元之初始邏輯狀態而提供一各別隨機數字向量107、207及307。在其中位元陣列105具有24列及5行之一實例中,摺疊電路106可讀取並處理沿著列1至10之位元之初始邏輯狀態以提供隨機數字向量107;摺疊電路206可讀取並處理沿著列11至20之位元之初始邏輯狀態以提供隨機數字向量207;摺疊電路306可讀取並處理沿著列21至24之位元之初始邏輯狀態以提供隨機數字向量307。在某些實施例中,隨機數字向量107、207及307可藉由tRNG 602而同時或依序產生。儘管圖6之所圖解說明實施例中僅展示額外兩個摺疊電路(206及306),但tRNG 602中可包含任何所要數目個額外摺疊電路,同時保持處於本揭露之範疇內。 在一實施例中,揭露一種隨機數字產生器(RNG)。該RNG包括:一記憶體位元陣列,其具有複數個位元,其中每一位元經組態以在該記憶體位元陣列被通電時呈現一初始邏輯狀態;及一第一摺疊電路,其耦合至該記憶體位元陣列,其中該第一摺疊電路經組態以:讀取該記憶體位元陣列之一第一位元及一第二位元之初始邏輯狀態、對該第一位元之該初始邏輯狀態執行一第一邏輯函數且對該第二位元之該初始邏輯狀態執行一第二邏輯函數以污染該第二位元之該初始邏輯狀態以提供該第二位元之一經更改初始邏輯狀態。 在另一實施例中,一種隨機數字產生器(RNG)包括:一記憶體位元陣列,其具有複數個位元,其中每一位元經組態以在該記憶體位元陣列被通電時呈現一初始邏輯狀態;及一第一摺疊電路,其耦合至該記憶體位元陣列,其中該第一摺疊電路經組態以:讀取放置於該記憶體位元陣列之一第一列上之一第一位元之初始邏輯狀態、讀取放置於該記憶體位元陣列之一第二列上之一第二位元之初始邏輯狀態、對該第一位元之該初始邏輯狀態執行一第一邏輯函數且對該第二位元之該初始邏輯狀態執行一第二邏輯函數以污染該第二位元之該初始邏輯狀態以提供該第二位元之一經更改初始邏輯狀態。 在又一實施例中,一種隨機數字產生器(RNG)包括:一記憶體位元陣列,其具有複數個位元,其中每一位元經組態以在該記憶體位元陣列被通電時呈現一初始邏輯狀態;一第一摺疊電路,其耦合至該記憶體位元陣列,其中該第一摺疊電路經組態以:讀取該記憶體位元陣列之一第一位元及一第二位元之初始邏輯狀態、對該第一位元之該初始邏輯狀態執行一第一邏輯函數且對該第二位元之該初始邏輯狀態執行一第二邏輯函數以污染該第二位元之該初始邏輯狀態以提供該第二位元之一經更改初始邏輯狀態;及一第二摺疊電路,其耦合至該記憶體位元陣列,其中該第二摺疊電路經組態以:讀取該記憶體位元陣列之一第三位元及一第四位元之初始邏輯狀態、對該第三位元之該初始邏輯狀態執行該第一邏輯函數且對該第四位元之該初始邏輯狀態執行該第二邏輯函數以污染該第四位元之該初始邏輯狀態以提供該第四位元之一經更改初始邏輯狀態,其中該等第一、第二、第三及第四位元分別放置於該記憶體位元陣列之不同列上。 前述內容概述了數項實施例之構件,使得熟習此項技術者可較佳地理解本揭露之態樣。熟習此項技術者應瞭解,熟習此項技術者可容易地使用本揭露作為用於設計或修改用於實施本文中所介紹之實施例之相同目的及/或達成本文中所介紹之實施例之相同優點之其他製程及結構之基礎。熟習此項技術者亦應認識到,此等等效構造並不背離本揭露之精神及範疇,且在不背離本揭露之精神及範疇之情況下,此等等效構造在本文中可做出各種改變、替代及變更。
102‧‧‧真實隨機數字產生器/所揭露真實隨機數字產生器
104‧‧‧靜態隨機存取記憶體區塊
105‧‧‧位元陣列
105-1‧‧‧位元
105-2‧‧‧位元
105-3‧‧‧位元
105-4‧‧‧位元
105-5‧‧‧位元
105-6‧‧‧位元
105-7‧‧‧位元
105-8‧‧‧位元
105-9‧‧‧位元
105-10‧‧‧位元
105-11‧‧‧位元
105-12‧‧‧位元
105-13‧‧‧位元
105-14‧‧‧位元
105-15‧‧‧位元
105-16‧‧‧位元
105-17‧‧‧位元
105-18‧‧‧位元
105-19‧‧‧位元
105-20‧‧‧位元
105-21‧‧‧位元
105-22‧‧‧位元
105-23‧‧‧位元
105-24‧‧‧位元
105-25‧‧‧位元
106‧‧‧摺疊電路
107‧‧‧隨機數字向量/所產生隨機數字向量/經更新隨機數字向量/所提供隨機數字向量
108‧‧‧隨機位元控制器
110‧‧‧起動電路
112‧‧‧隨機健康監測器
113‧‧‧回饋信號
115‧‧‧控制信號
117‧‧‧迭代
120‧‧‧解碼器/列解碼器
150‧‧‧(電子)邏輯閘/電子邏輯閘/邏輯單元/邏輯閘
151-1‧‧‧第一輸入信號/信號
151-2‧‧‧第二輸入信號/信號/第二信號/輸出信號/回饋信號
151-3‧‧‧經XOR運算信號/所得經XOR運算信號
152‧‧‧(電子)邏輯閘/電子邏輯閘/邏輯閘
153-1‧‧‧第一輸入信號/信號
153-2‧‧‧第二輸入信號/信號/第二信號/輸出信號/回饋信號
153-3‧‧‧經XOR運算信號/所得經XOR運算信號
154‧‧‧(電子)邏輯閘/電子邏輯閘/邏輯閘
155-1‧‧‧第一輸入信號/信號
155-2‧‧‧第二輸入信號/信號/第二信號/輸出信號/回饋信號
155-3‧‧‧經XOR運算信號/所得經XOR運算信號
156‧‧‧(電子)邏輯閘/電子邏輯閘/邏輯閘
157-1‧‧‧第一輸入信號
157-2‧‧‧第二輸入信號/第二信號/輸出信號/回饋信號
157-3‧‧‧經XOR運算信號/所得經XOR運算信號
158‧‧‧(電子)邏輯閘/電子邏輯閘/邏輯閘
159-1‧‧‧第一輸入信號
159-2‧‧‧第二輸入信號/第二信號/輸出信號/回饋信號
159-3‧‧‧經XOR運算信號/所得經XOR運算信號
160‧‧‧累加暫存器
160-1‧‧‧鎖存器單元/所耦合鎖存器單元
160-2‧‧‧鎖存器單元/所耦合鎖存器單元
160-3‧‧‧鎖存器單元/所耦合鎖存器單元
160-4‧‧‧鎖存器單元
160-5‧‧‧鎖存器單元
160-c‧‧‧時脈信號
206‧‧‧摺疊電路
207‧‧‧隨機數字向量
306‧‧‧摺疊電路
307‧‧‧隨機數字向量
401‧‧‧所供應電壓
402‧‧‧預充電電路/經去啟動預充電電路
403‧‧‧位元線
404‧‧‧第一位元(或位元格)/位元
405‧‧‧反位元線
406‧‧‧第二位元(或位元格)/位元
407‧‧‧字線/經確證字線
409‧‧‧字線/經確證字線
420‧‧‧第一電晶體
421‧‧‧電力信號/OR運算信號
422‧‧‧第二電晶體
423‧‧‧預充電信號/OR運算信號
424‧‧‧第一邏輯閘/OR邏輯閘
425‧‧‧預充電控制信號
426‧‧‧第二邏輯閘/OR邏輯閘
427‧‧‧字線信號/OR運算信號
428‧‧‧第三邏輯閘/OR邏輯閘
429‧‧‧字線確證信號
431‧‧‧字線信號/OR運算信號
433‧‧‧字線確證信號
441‧‧‧共同節點
443‧‧‧虛擬供應電壓線/經解耦虛擬供應電壓線
445‧‧‧虛擬供應電壓線/經解耦虛擬供應電壓線
602‧‧‧真實隨機數字產生器
a‧‧‧列
A‧‧‧行
b‧‧‧列
B‧‧‧行
c‧‧‧列
C‧‧‧行
d‧‧‧列
D‧‧‧行
e‧‧‧列
E‧‧‧行
t0‧‧‧時間
t1‧‧‧時間
t2‧‧‧時間
t3‧‧‧時間
t4‧‧‧時間
t5‧‧‧時間
當連同附圖一起閱讀時,自以下詳細說明最佳地理解本揭露之態樣。應注意,各種構件未按比例繪製。實際上,為論述之清晰起見,可任意地增加或減小各種構件之尺寸。 圖1圖解說明根據各種實施例之一真實隨機數字產生器(tRNG)之一例示性方塊圖。 圖2圖解說明根據各種實施例之圖1之tRNG之一SRAM區塊及一摺疊電路之一例示性示意圖。 圖3A、圖3B、圖3C、圖3D及圖3E各自圖解說明根據某些實施例之圖2之SRAM區塊之每一位元處呈現之邏輯狀態之一實例。 圖4A圖解說明根據各種實施例之圖解說明圖1之tRNG之一SRAM區塊之一部分及一起動電路之一部分之一例示性示意圖。 圖4B圖解說明根據某些實施例之用以操作圖4A之起動電路之信號之例示性波形。 圖5圖解說明根據某些實施例之用以使用圖1之tRNG來產生一隨機數字向量之一方法之一流程圖。 圖6圖解說明根據某些實施例之可同時提供兩個或兩個以上隨機數字向量之另一真實隨機數字產生器(tRNG)之一例示性方塊圖。

Claims (1)

  1. 一種隨機數字產生器(RNG),其包括: 一記憶體位元陣列,其具有複數個位元,其中每一位元經組態以在該記憶體位元陣列被通電時呈現一初始邏輯狀態;及 一第一摺疊電路,其耦合至該記憶體位元陣列,其中該第一摺疊電路經組態以: 讀取該記憶體位元陣列之一第一位元及一第二位元之初始邏輯狀態, 對該第一位元之該初始邏輯狀態執行一第一邏輯函數,及 對該第二位元之該初始邏輯狀態執行一第二邏輯函數以污染該第二位元之該初始邏輯狀態以提供該第二位元之一經更改初始邏輯狀態。
TW106113155A 2016-08-11 2017-04-19 以sram為基底的真實隨機數字產生器 TW201818235A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/234,842 2016-08-11
US15/234,842 US10019236B2 (en) 2016-08-11 2016-08-11 SRAM-based true random number generator

Publications (1)

Publication Number Publication Date
TW201818235A true TW201818235A (zh) 2018-05-16

Family

ID=61159006

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106113155A TW201818235A (zh) 2016-08-11 2017-04-19 以sram為基底的真實隨機數字產生器

Country Status (3)

Country Link
US (2) US10019236B2 (zh)
CN (1) CN107729773A (zh)
TW (1) TW201818235A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113176872A (zh) * 2020-05-08 2021-07-27 台湾积体电路制造股份有限公司 存储器器件、随机数发生器及其操作方法
TWI749515B (zh) * 2019-04-11 2021-12-11 力旺電子股份有限公司 具浮動閘電晶體型態記憶胞的隨機碼產生器

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10333710B2 (en) * 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
CN109670343B (zh) * 2017-10-17 2023-01-03 华邦电子股份有限公司 随机数产生系统及其随机数产生方法
US10491390B2 (en) 2018-01-19 2019-11-26 Qed-It Systems Ltd. Proof chaining and decomposition
US10880101B2 (en) 2018-04-11 2020-12-29 Taiwan Semiconductor Manufacturing Co., Ltd. Method and circuit for de-biasing PUF bits
KR102859476B1 (ko) * 2019-03-05 2025-09-15 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
CN110414677B (zh) * 2019-07-11 2021-09-03 东南大学 一种适用于全连接二值化神经网络的存内计算电路
US20220197599A1 (en) * 2020-12-22 2022-06-23 Arizona Board Of Regents On Behalf Of Northern Arizona University True random number generation from pre-formed reram arrays
US11977856B2 (en) 2021-01-25 2024-05-07 International Business Machines Corporation Random number generation from SRAM cells
KR102573621B1 (ko) * 2021-08-06 2023-08-31 고려대학교 산학협력단 난수 생성 방법
US12046324B2 (en) * 2021-08-11 2024-07-23 Stmicroelectronics International N.V. Modular memory architecture with gated sub-array operation dependent on stored data content
US12340099B2 (en) 2021-08-11 2025-06-24 Stmicroelectronics International N.V. Static random access memory supporting a single clock cycle read-modify-write operation with a modulated word line assertion
US12040013B2 (en) 2021-08-11 2024-07-16 Stmicroelectronics International N.V. Static random access memory supporting a single clock cycle read-modify-write operation
US12210754B2 (en) 2021-10-28 2025-01-28 Stmicroelectronics International N.V. Modular memory architecture with more significant bit sub-array word line activation in single-cycle read-modify-write operation dependent on less significant bit sub-array data content

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676531B2 (en) * 2005-12-22 2010-03-09 Sony Computer Entertainment Inc. Methods and apparatus for random number generation
WO2009142645A1 (en) * 2008-05-23 2009-11-26 Agere Systems Inc. Secure random number generator
US8687437B2 (en) 2010-11-30 2014-04-01 Taiwan Semiconductor Manufacturing Company, Ltd. Write assist circuitry
EP2695052B1 (en) * 2011-04-05 2014-11-26 Intrinsic ID B.V. Random number generating system based on memory start-up noise
US8630132B2 (en) 2011-05-31 2014-01-14 Taiwan Semiconductor Manufacturing Company, Ltd. SRAM read and write assist apparatus
US8693235B2 (en) 2011-12-06 2014-04-08 Taiwan Semiconductor Manufacturing Company, Ltd. Methods and apparatus for finFET SRAM arrays in integrated circuits
US8605523B2 (en) 2012-02-17 2013-12-10 Taiwan Semiconductor Manufacturing Company, Ltd. Tracking capacitive loads
US8964492B2 (en) 2012-07-27 2015-02-24 Taiwan Semiconductor Manufacturing Company, Ltd. Tracking mechanism for writing to a memory cell
US8760948B2 (en) 2012-09-26 2014-06-24 Taiwan Semiconductor Manufacturing Company, Ltd. Multiple bitcells tracking scheme semiconductor memory array
US8982643B2 (en) 2012-12-20 2015-03-17 Taiwan Semiconductor Manufacturing Company, Ltd. Shared tracking circuit
US9324413B2 (en) 2013-02-15 2016-04-26 Taiwan Semiconductor Manufacturing Company, Ltd. Write assist circuit, memory device and method
US8929160B2 (en) 2013-02-28 2015-01-06 Taiwan Semiconductor Manufacturing Company, Ltd. Tracking circuit
US9117510B2 (en) 2013-03-14 2015-08-25 Taiwan Semiconductor Manufacturing Company, Ltd. Circuit for memory write data operation
US9129707B2 (en) 2013-10-02 2015-09-08 Taiwan Semiconductor Manufacturing Co., Ltd. Dual port SRAM with dummy read recovery
EP2950201A1 (en) * 2014-05-28 2015-12-02 Continental Automotive GmbH Generation of random numbers from an unitialised memory unit
US10431295B2 (en) 2014-05-30 2019-10-01 Taiwan Semiconductor Manufacturing Company, Ltd. Static random access memory and method of controlling the same
US10216484B2 (en) * 2014-06-10 2019-02-26 Texas Instruments Incorporated Random number generation with ferroelectric random access memory
US9281056B2 (en) 2014-06-18 2016-03-08 Taiwan Semiconductor Manufacturing Company, Ltd. Static random access memory and method of using the same
US9218872B1 (en) 2014-06-20 2015-12-22 Taiwan Semiconductor Manufactruing Company, Ltd. Memory chip and layout design for manufacturing same
US9455025B2 (en) 2014-06-27 2016-09-27 Taiwan Semiconductor Manufacturing Company, Ltd. Static random access memory and method of controlling the same
US9564211B2 (en) 2014-06-27 2017-02-07 Taiwan Semiconductor Manufacturing Company, Ltd. Memory chip and layout design for manufacturing same
US9851914B2 (en) * 2016-03-24 2017-12-26 Texas Instruments Incorporated Random number generation in ferroelectric random access memory (FRAM)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI749515B (zh) * 2019-04-11 2021-12-11 力旺電子股份有限公司 具浮動閘電晶體型態記憶胞的隨機碼產生器
CN113176872A (zh) * 2020-05-08 2021-07-27 台湾积体电路制造股份有限公司 存储器器件、随机数发生器及其操作方法
TWI758845B (zh) * 2020-05-08 2022-03-21 台灣積體電路製造股份有限公司 記憶體裝置、隨機數產生器及操作其的方法
US11626157B2 (en) 2020-05-08 2023-04-11 Taiwan Semiconductor Manufacturing Company, Ltd. SRAM power-up random number generator
CN113176872B (zh) * 2020-05-08 2024-03-26 台湾积体电路制造股份有限公司 存储器器件、随机数发生器及其操作方法
US12190945B2 (en) 2020-05-08 2025-01-07 Taiwan Semiconductor Manufacturing Company, Ltd. SRAM power-up random number generator

Also Published As

Publication number Publication date
US10019236B2 (en) 2018-07-10
US20180321914A1 (en) 2018-11-08
US20180046436A1 (en) 2018-02-15
CN107729773A (zh) 2018-02-23
US10157043B2 (en) 2018-12-18

Similar Documents

Publication Publication Date Title
TW201818235A (zh) 以sram為基底的真實隨機數字產生器
CN108694335B (zh) 基于sram的物理不可克隆函数及产生puf响应的方法
US11495300B2 (en) Method and apparatus for PUF generator characterization
US9590626B1 (en) Physically unclonable functions with enhanced margin testing
CN104852727B (zh) 稳定性增强的物理不可克隆功能电路系统
US11190365B2 (en) Method and apparatus for PUF generator characterization
Bhargava et al. Reliability enhancement of bi-stable PUFs in 65nm bulk CMOS
US10880103B2 (en) SRAM-based authentication circuit
US10511451B2 (en) Physically unclonable function (PUF) device and method of extending challenge/response pairs in a PUF device
US11005669B2 (en) PUF generators based on SRAM bit cells
US10574469B1 (en) Physically unclonable function and method for generating a digital code
US20190165956A1 (en) Physical unclonable function (puf) security key generation
US11056161B2 (en) Data processing system and method for generating a digital code with a physically unclonable function
TW201814696A (zh) 基於靜態隨機存取記憶體的認證電路
Zhao et al. A 108 F 2/Bit fully reconfigurable RRAM PUF based on truly random dynamic entropy of jitter noise
US11012246B2 (en) SRAM-based authentication circuit
Lee et al. A 354F 2 leakage-based physically unclonable function with lossless stabilization through remapping for low-cost IoT security
TW201944279A (zh) 用於去偏的物理不可複製函數位元的方法與電路
JP2022119136A (ja) チップ固有乱数発生装置
Li et al. A highly reliable dual-mode RRAM PUF with key concealment scheme
Mamat et al. Systematic Review of Physically Unclonable Functions on SRAMs for Secured Authentication
Hunt-Schroeder et al. Tamper Resistant Reconfigurable Preamplifier Physical Unclonable Function With Self-Destruct
Okumura et al. A 128-bit chip identification generating scheme exploiting load transistors' variation in SRAM bitcells
Biswas DESIGN AND IMPLEMENTATION OF SRAM ARCHITECTURE FOR MULTISTAGE RING OSCILLATOR PUF AND READ-CURRENT DISCHARGE-BASED PUF
Japa et al. A Reconfigurable Arbiter PUF Based on VGSOT MTJ