TW201543213A - 記憶體系統及記憶體控制方法 - Google Patents
記憶體系統及記憶體控制方法 Download PDFInfo
- Publication number
- TW201543213A TW201543213A TW104103609A TW104103609A TW201543213A TW 201543213 A TW201543213 A TW 201543213A TW 104103609 A TW104103609 A TW 104103609A TW 104103609 A TW104103609 A TW 104103609A TW 201543213 A TW201543213 A TW 201543213A
- Authority
- TW
- Taiwan
- Prior art keywords
- executable instructions
- instruction
- memory
- program
- executable
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000000605 extraction Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims 2
- 230000001568 sexual effect Effects 0.000 claims 1
- 238000006467 substitution reaction Methods 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 101100113692 Caenorhabditis elegans clk-2 gene Proteins 0.000 description 1
- 101100003180 Colletotrichum lindemuthianum ATG1 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本發明描述記憶體系統及記憶體控制方法。根據一態樣,一記憶體系統包含:經組態儲存資料之數個記憶體胞;經組態儲存根據第一指令序列而排序之數個第一可執行指令及根據第二指令序列而排序之數個第二可執行指令之程式記憶體;經組態使用置換可執行指令來替換第一可執行指令之一之置換電路;經組態執行第一可執行指令及第二可執行指令以控制記憶體資料讀取及寫入之控制單元,其中控制單元經組態依第一指令序列而執行第一可執行指令,在執行第一可執行指令後執行置換可執行指令,因執行置換可執行指令而根據第二指令序列執行第二可執行指令。
Description
本文所揭示之實施例係關於記憶體系統及記憶體控制方法。
記憶體裝置廣泛用於電子裝置(諸如電腦、數位相機、個人音訊及視訊播放器、電氣設備、車輛等等)中以儲存數位資訊。諸多不同類型之記憶體可供使用以使用不同基本技術來儲存資料。
記憶體之記憶體胞經程式化以具有不同狀態來儲存數位資訊。程式信號可應用於記憶體胞以將記憶體胞從一記憶體狀態改變為另一不同記憶體狀態。記憶體胞之記憶體狀態可隨後經讀取以存取所儲存之數位資訊。
執行程式化之控制器可用於控制關於記憶體之操作。然而,程式化通常作為韌體硬編碼至一記憶體裝置中且硬編碼韌體之變化會涉及一昂貴且耗時之程序。
本文所討論之至少一些實例性實施例係針對記憶體系統及記憶體控制方法,且更具體實例性實施例促進記憶體系統之可執行碼之修改及/或新增,如下文詳細所描述。
10‧‧‧記憶體系統
12‧‧‧主記憶體
14a‧‧‧記憶體胞
14b‧‧‧記憶體胞
16a‧‧‧緩衝器
16b‧‧‧緩衝器
18‧‧‧控制單元
19‧‧‧邏輯電路
20‧‧‧置換電路
22‧‧‧演算法
23‧‧‧程式記憶體
30‧‧‧程式計數器
32‧‧‧指令暫存器
34‧‧‧多工器
36‧‧‧唯讀記憶體(ROM)
38‧‧‧靜態隨機存取記憶體(SRAM)
40‧‧‧匯流排
42‧‧‧匹配控制信號
44‧‧‧匯流排
46‧‧‧輸入端
50‧‧‧線
52‧‧‧線
54‧‧‧線
56‧‧‧線
58‧‧‧線
60‧‧‧線
62‧‧‧線
A10‧‧‧動作
A12‧‧‧動作
A14‧‧‧動作
A16‧‧‧動作
A18‧‧‧動作
A20‧‧‧動作
A22‧‧‧動作
A24‧‧‧動作
圖1係根據一實施例之一記憶體系統之一功能方塊圖。
圖2係繪示根據一實施例之一控制單元及程式記憶體之額外細節的一功能方塊圖。
圖3係根據一實施例之控制單元及程式記憶體之操作之一時序圖。
圖4係繪示根據一實施例之控制單元之提取操作的一流程圖。
參考圖1,圖中展示根據一實施例之一記憶體系統10之一功能方塊圖。記憶體系統10之所繪示實施例包含主記憶體12、複數個緩衝器16a、16b、一控制單元18、置換電路20及一演算法22,演算法22儲存於程式記憶體中(圖2中展示程式記憶體之一實例性實施例)。記憶體系統10之其他實施例可包含更多、更少及/或替代組件或電路。
在一些繪示性實例中,記憶體系統10可實施於諸如下列各者之各種相關聯裝置(圖中未展示)中或關於該等裝置而實施:電腦、相機、媒體播放器及隨身碟。在所描述之實例中,記憶體系統10儲存由相關聯裝置產生或利用之資料。
主記憶體12包含:記憶體胞14a、14b之複數個陣列,其等經組態以儲存資料;導體,其等與記憶體胞14a、14b電連接;及額外電路(例如存取電路(圖中未展示)之電路),其可包含驅動器及感測放大器以實施關於主記憶體12之寫入操作及讀取操作。記憶體胞14a、14b之至少部分能夠在複數個瞬間個別地程式化至複數個不同記憶體狀態。主記憶體12可存取至使用者及/或相關聯裝置以儲存數位資訊。主記憶體12之一更具體實例係反及快閃記憶體,但在其他實施例中,所描述之實例性實施例之設備及方法可與其他記憶體架構一起使用。
在不同實施例中,主記憶體12可實施於不同配置中。例如,主記憶體12可實施於一記憶體裝置(諸如一晶片、晶片之一部分、或其他配置)內。該記憶體裝置亦可包含圖1之其他電路及組件或其部分。
在一實施例中,緩衝器16a、16b包含暫時儲存寫入至主記憶體12或從主記憶體12存取之資料之複數個鎖存器。所繪示之實例性記憶體
系統10包含兩個平面,其等個別地包含記憶體胞14a、14b之陣列之平面及緩衝器16a、16b之一對應平面。
控制單元18控制下列操作:寫入、讀取及重寫主記憶體12之資料;以及與其他組件或電路(諸如待儲存於主記憶體12內之資料之來源)介接。控制單元18可存取及執行可執行指令且在一相關聯裝置之操作期間產生關於主記憶體12之命令。在一實施例中,實例性命令指示產生應用於主記憶體12之程式信號及讀取信號。在一實施例中,該等程式信號用於在程式化操作期間將資料寫入至主記憶體12(即,程式化記憶體),且該等讀取信號用於存取或感測儲存於主記憶體12中之資料之內容。
在一實施例中,控制單元18包括處理電路,其經組態以在至少一實施例中執行儲存於電腦可讀儲存媒體(例如圖2之程式記憶體23)內之程式化(即,演算法22)。例如,控制電路18可實施為一或多個處理器及/或其他結構,其經組態以執行包含(例如)軟體指令及/或韌體指令之可執行指令。
置換電路20經組態以實施關於演算法22之操作,如下文進一步所描述。例如,置換電路20可經組態以在演算法22之執行期間實施測試操作及除錯操作以及實施關於修改及更新演算法22之操作。
演算法22係用於執行關於主記憶體12之讀取操作及寫入操作之一程序序列。在下文詳細所描述之一更具體實施例中,演算法22之一部分硬編碼於非揮發性記憶體(例如唯讀記憶體或ROM)內,且演算法22之另一部分經設置以更新或修改演算法22之該硬編碼部分,且可儲存於揮發性記憶體(例如靜態隨機存取記憶體或SRAM)中。例如,儲存於揮發性記憶體中之演算法22之該更新部分可用於除錯以使演算法22之該硬編碼部分之改正有效,以及用於測試新序列及用於使用者流程以新不存在於演算法22之該硬編碼部分內之改正及先進或新發展特
徵。
參考圖2,圖中描述根據一實施例之與由控制單元18提取及執行演算法22有關之額外細節。
在一實施例中,演算法22儲存於一程式記憶體23中,程式記憶體23包含:一第一儲存空間,其包括唯讀記憶體(ROM)36;及一第二儲存空間,其包括靜態隨機存取記憶體(SRAM)38。在一實施例中,演算法22之一初始部分在記憶體系統10之製造及生產期間硬編碼於ROM 36內。演算法22之另一部分可在記憶體系統10之製造或生產期間或在記憶體系統10之製造或生產之後儲存於SRAM 38中。儲存於SRAM 38中之演算法22之部分可包含在已製造記憶體系統10且可能已將記憶體系統10用於或實施於一相關聯裝置內之後新增之新執行碼。在一些實施例中,SRAM 38之可執行指令可標記有FW標籤以區別SRAM 38之新可執行碼與ROM 36之可執行碼。
在一實施例中,儲存於ROM 36中之演算法22之部分包含根據一第一指令序列而排序、存取及執行之複數個可執行指令(例如運算碼)。在一實施例中,ROM 36之該等可執行指令可指稱第一可執行指令且依序儲存於ROM 36之複數個順序位址中。
類似地,在一實施例中,儲存於SRAM 38中之演算法22之部分包含根據一第二指令序列而排序、存取及執行之複數個可執行指令。SRAM 38之該等可執行指令可指稱第二可執行指令且依序儲存於SRAM 38之複數個順序位址中。在一實例中,ROM 36及SRAM 38之可執行指令儲存於ROM 36及SRAM 38之一連續指令集位址空間中。SRAM 38可被視為ROM 36之一延伸以提供關於演算法22之增強靈活性及替換能力。
在可執行指令之執行期間,提取及執行第一指令序列或第二指令序列之第一可執行指令,接著提取及執行各自第一指令序列或第二
指令序列之第二可執行指令,等等。在一更具體實例中,依序執行儲存於ROM 36中之第一指令序列之可執行指令,直至將執行儲存於SRAM 38中之第二指令序列之可執行指令的一適當時間。在一實例性實施例中,一分支指令用於將執行第一指令序列之可執行指令改變為執行第二指令序列之可執行指令。
控制單元18包含經組態以產生複數個程式計數值之一程式計數器30,該複數個程式計數值可應用於ROM 36及SRAM 38,以根據第一指令序列或第二指令序列而分別依序提取可執行指令。經產生以從ROM 36提取可執行指令之程式計數值可指稱第一程式計數值,且經產生以從SRAM 38提取可執行指令之程式計數值可指稱第二程式計數值。
在一實施例中,在記憶體系統10通電之後,控制單元18提取及執行儲存於ROM 36中之指令。程式計數器30將一第一程式計數值輸出至程式記憶體23以從ROM 36提取第一可執行指令,接著將第二程式計數值輸出至程式記憶體23以從ROM 36提取第一可執行指令,等等,同時依序執行第一指令序列之可執行指令。根據第一指令序列經由一匯流排40而將由該等程式計數值提取之可執行指令應用於控制單元18之一多工器34及一指令暫存器32,在控制單元18中,根據第一指令序列而依序執行可執行指令。
控制電路18可在儲存於ROM 36中之可執行指令之執行期間實施關於主記憶體12之寫入操作及讀取操作。儲存於ROM 36中之演算法22之部分可指稱使用者模式演算法。
如圖2中所展示,在所繪示之實例性實施例中,從程式計數器30輸出之程式計數值亦可應用於包括邏輯電路19之置換電路20。在一實施例中,置換電路20經組態以由於偵測到一預定義事件而由控制單元18控制將執行儲存於ROM 36中之可執行指令切換至執行儲存於
SRAM 38中之可執行指令。在下文所描述之一實例中,該預定義事件係產生一預定義程式計數值以從ROM 36提取可執行指令之一者。
在一實施例中,邏輯電路19係可程式化有一預定義程式計數值之內容可定址記憶體。例如,該預定義程式計數值可經預定義以在期望執行對應於該預定義程式計數值之第一指令序列之可執行指令時起始第二指令序列之可執行指令之執行。
在第一指令序列之可執行指令之執行期間,由於程式計數器30產生對應於預定義程式計數值之一程式計數值,所以置換電路20控制一分支開始執行SRAM 38之第二指令序列之可執行指令。
在所描述之實例性實施例中,邏輯電路19比較所接收之個別程式計數值與預定義程式計數值。若所接收之程式計數值不匹配預定義程式計數值,則從ROM 36提取對應可執行指令且經由多工器34而將該等對應可執行指令應用於指令暫存器32。
在一實例性實施例中,一旦偵測到從控制單元18接收之一程式計數值匹配預定義程式計數值,則邏輯電路19根據第二指令序列而控制來自SRAM 38之可執行指令之執行。
在一具體實施例中,由於一所接收之程式計數值匹配預定義程式計數值,所以邏輯電路19輸出一匹配控制信號42。匹配控制信號42應用於多工器34以控制多工器34選擇經由一匯流排44而接收之一輸入來應用於指令暫存器32,該輸入與經由匯流排40而接收之輸入相反。另外,邏輯電路19輸出經由匯流排44及多工器34而應用於指令暫存器32之一置換可執行指令。在一實施例中,該置換可執行指令係引起控制單元18開始執行第二指令序列之可執行指令的一分支指令(例如跳躍或調用指令)。據此,在一實施例中,置換電路20使用由控制單元18執行之該置換可執行指令來替換儲存於ROM 36中之可執行指令之一者(即,否則已由匹配預定義程式計數值之程式計數值提取之可執
行指令)。
另外,由於一程式計數值匹配預定義程式計數值,所以邏輯電路19亦將匹配控制信號42及一置換程式計數值應用於程式計數器30。若一當前程式計數值不匹配預定義程式計數值,則不確證匹配控制信號42且將由程式計數器30產生之該當前程式計數值應用於程式記憶體23。然而,若該當前程式計數值匹配預定義程式計數值,則確證匹配控制信號42且將該置換程式計數值從邏輯電路19應用至程式計數器30,程式計數器30將該置換程式計數值輸出至程式記憶體23。換言之,置換電路20經組態以控制程式計數器30使用該置換程式計數值來替換用於從ROM 36提取可執行指令之一者之程式計數值之一者。在一實施例中,該置換程式計數值識別SRAM 38之一記憶體位址,該記憶體位址包含待提取及執行之第二指令序列之第一可執行指令。在一實施例中,該置換程式計數值係第二指令序列之第一程式計數值。
將置換可執行指令及置換程式計數值從邏輯電路19應用至控制單元18起始儲存於SRAM 38中之可執行指令之分支操作。在一實施例中,在儲存於SRAM 38中之可執行指令之分支之後,控制單元18之程式計數器30輸出額外順序程式計數值以依SRAM 38之第二指令序列之順序從SRAM 38提取後續可執行指令,直至演算法22之執行經控制以返回至執行ROM 36之可執行指令。
在一實例性配置中,邏輯電路19在置換可執行指令之執行期間解除確證匹配控制信號42。匹配控制信號42之解除確證控制多工器34將經由匯流排40而從SRAM 38接收之可執行指令應用於指令暫存器32以由控制單元18執行。匹配控制信號42之解除確證亦控制程式計數器產生適當程式計數值以依第二指令序列之順序定址SRAM 38。在一實施例中,SRAM 38之可執行指令可包含一適當可執行指令以在執行第二指令序列之可執行指令之後之一適當瞬間使藉由控制單元18之執行
返回至ROM 36之可執行指令。
在一典型配置中,在記憶體系統10之製造期間於工廠中程式化ROM 36。在包含下列實例之不同實施例中,可依不同方式程式化SRAM 38。在一實施例中,SRAM 38在工廠中經程式化且可用作為一除錯結構以(例如)使儲存於ROM 36中之可執行指令之改正有效。另外,邏輯電路19亦可藉由工廠而程式化有從執行ROM 36之指令至執行SRAM 38之指令之分支發生時之預定義程式計數值以及將起始分支操作之置換可執行指令(例如分支指令)。
在其他實施例中,在已製造記憶體系統10且已從工廠運走記憶體系統10之後於記憶體系統10之使用期間程式化SRAM 38及邏輯電路19。例如,可在使用期間之記憶體系統10之通電期間將用於SRAM 38之可執行指令及用於邏輯電路19之程式計數值及置換可執行指令儲存於主記憶體12之一部分內及載入至SRAM 38中。在另一實例中,一使用者可在使用期間經由一輸入端46(例如外部介面)而從記憶體系統10之外部將可執行指令載入至SRAM 38中且載入用於邏輯電路19之程式計數值及置換可執行指令,且將該等可執行指令及該程式計數值及該置換可執行指令傳送至SRAM 38及邏輯電路19。在繪示性實例中,載入至SRAM 38中之可執行指令可替換ROM 36之可執行指令之一部分或可新增至ROM 36之可執行指令。
參考圖3,圖中繪示根據一實施例之一實例性分支操作之時序,其中時間從左至右推進。
圖3之線50對應於clk1,其係程式記憶體23之一時脈;且線56對應於clk2,其係控制單元18之一時脈。線52係IR_SRAM_UNLT,其係來自SRAM之一未鎖存指令;且線54係IR_ROM_UNLT,其係來自ROM之一未鎖存指令。線58對應於指令暫存器之鎖存內容,且線60對應於應用於程式記憶體以提取可執行指令之程式計數值。線62對應
於從邏輯電路應用至控制單元之匹配控制信號。
首先,在圖3中,根據第一指令序列而提取及執行來自ROM之可執行指令,如由線58指示之指令暫存器鎖存之一指令IR ROM UNLT N-1所展示。
在所繪示之實例中,用於從ROM提取一指令之程式計數值PC_ROM N匹配置換電路之預定義程式計數值以導致確證線62上之匹配控制信號。
匹配控制信號之確證導致置換可執行指令(JMP/CALL)置換可執行指令IR ROM UNLT N,如藉由指令暫存器鎖存置換可執行指令所指示。另外,由於確證匹配控制信號,所以程式計數器將置換程式計數值PC_SRAM N輸出至程式記憶體。
將置換程式計數值PC_SRAM N應用於程式記憶體以從SRAM提取指令IR SRAM UNLT N(如由線52所指示),且將指令IR SRAM UNLT N鎖存於指令暫存器中(如由線58所指示)。根據SRAM之指令序列透過使用程式計數值PC_SRAM N+1而繼續執行演算法,程式計數值PC_SRAM N+1提取指令IR SRAM UNLT N+1且鎖存為可執行指令IR SRAM N+1。可在來自SRAM之指令之執行期間產生額外程式計數值且提取及執行可執行指令。
參考圖4,圖中展示根據一實施例之從程式記憶體提取可執行指令之實例性操作。包含更多、更少及/或替代動作之其他方法亦可行。
在一動作A10中,程式計數器輸出一當前程式計數值。
在一動作A12中,判定當前程式計數值是否匹配置換電路之置換程式計數值。
若動作A12之結果係否定的,則程序行進至一動作A14以從ROM存取一可執行指令。
在一動作A16中,使程式計數器遞增且流程返回至動作A10。
若動作A12之結果係肯定的,則程序行進至一動作A18以確證一匹配控制信號以控制與指令暫存器之一輸入耦合之多工器(如圖2中所展示)從置換電路接收一置換可執行指令。
在一動作A20中,將一置換程式計數值從置換電路應用至控制單元之程式計數器以從SRAM提取指令。
在一動作A22中,將在一實施例中包括一分支指令之置換可執行指令從置換電路輸出至指令暫存器以控制控制單元分支至儲存於SRAM中之可執行指令。
在一動作A24中,根據SRAM之指令序列而使程式計數器從置換程式計數值遞增以在所繪示流程圖之後續執行期間從SRAM提取後續可執行指令。
所描述實例性實施例之至少部分能夠依相同時脈速率執行一使用者模式演算法及一除錯演算法且利用相同可執行碼。此能夠依據流程及時序而分析使用者模式演算法之功能。此外,一些配置可用於使用高達SRAM之大小之新使用者模式碼來替換ROM之使用者模式碼之部分,且SRAM提供額外空間來儲存記憶體系統之除錯操作或製造操作中之可執行碼。根據本文所描述之一些實施例,亦可在生產記憶體系統之後更新可執行碼且無編譯成本。另外,在一實施例中,增量編譯將SRAM之可執行指令與ROM之可執行指令整合。在一實施例中,SRAM之可執行指令係ROM之一順暢延伸,例如,該順暢延伸可利用ROM之程式碼之調用程序及跳躍程序。在一些實施例中,可由新程序修改ROM之可執行碼之階層且可分配增量變數。
一些習知系統已利用就地執行(XIP)操作來更新硬編碼韌體。然而,此等系統提供記憶體系統之一平面之一緩衝器內之新指令,該記憶體系統阻止至與該緩衝器耦合之記憶體胞之存取且藉此使該等新指
令之執行僅限於記憶體之一部分。此外,執行速率無法匹配經修改之原始演算法且新指令無法使用記憶體系統之全部資源,如上文所討論。另一習知方法使用一邏輯模組來截取及替換韌體之不正確指令。然而,此方法受限制於單線替換且無法用於測試新演算法流程。
結論
在一些實施例中,一記憶體系統包括:複數個記憶體胞,其等經個別組態以儲存資料;程式記憶體,其經組態以儲存根據一第一指令序列而排序之複數個第一可執行指令及根據一第二指令序列而排序之複數個第二可執行指令;置換電路,其經組態以使用一置換可執行指令來替換該等第一可執行指令之一者;及一控制單元,其經組態以執行該等第一可執行指令以使用該等記憶體胞來實施關於該資料之儲存之至少一操作,其中該控制單元經組態以根據該第一指令序列而執行該等第一可執行指令,在執行該等第一可執行指令之後執行該置換可執行指令,且由於執行該置換可執行指令而根據該第二指令序列執行該等第二可執行指令。
在一些實施例中,一記憶體系統包括:複數個記憶體胞,其等經個別組態以儲存資料;一控制單元,其經組態以控制關於該等記憶體胞之該資料之讀取及寫入;程式記憶體,其經組態以儲存根據一第一指令序列而排序之複數個第一可執行指令且儲存根據一第二指令序列而排序之複數個第二可執行指令;一程式計數器,其經組態以產生複數個第一程式計數值以根據該第一指令序列而提取該等第一可執行指令,且產生複數個第二程式計數值以根據該第二指令序列而提取該等第二可執行指令;置換電路,其經組態以使用該等第二程式計數值之一者來替換該等第一程式計數值之一者以起始該等第二可執行指令之提取,且其中該控制單元經組態以執行該等第一可執行指令以使用該等記憶體胞來實施關於該資料之儲存之至少一操作。
在一些實施例中,一記憶體系統包括:複數個記憶體胞,其等經個別組態以儲存資料;一第一儲存空間,其經組態以儲存一第一指令序列之複數個第一可執行指令;一第二儲存空間,其經組態以儲存一第二指令序列之複數個第二可執行指令;一控制單元,其經組態以執行該等第一可執行指令以使用該等記憶體胞來實施關於該資料之儲存之至少一操作;及邏輯電路,其經組態以在藉由該控制單元之該等第一可執行指令之執行期間偵測一預定義事件且由於該偵測而控制該控制單元執行該等第二可執行指令。
在一些實施例中,一記憶體控制方法包括:首先根據一第一指令序列而執行複數個第一可執行指令以使用一記憶體系統之複數個記憶體胞來實施關於資料之儲存之至少一操作;在該等第一可執行指令之執行期間,使用一置換可執行指令來替換該等第一可執行指令之一者,該置換可執行指令包括經組態以起始複數個第二可執行指令之執行的一分支指令;接著,在該替換之後執行該置換可執行指令;再者,由於執行該置換可執行指令而根據一第二指令序列執行該等第二可執行指令。
在一些實施例中,一記憶體控制方法包括:產生複數個程式計數值;比較該等程式計數值與一預定義程式計數值;若在該比較期間該等程式計數值之一者不匹配該預定義程式計數值,則使用該程式計數值來提取一第一指令序列之複數個第一可執行指令之一者;執行該第一可執行指令以使用一記憶體系統之複數個記憶體胞來實施關於資料之儲存之一操作;若該等程式計數值之另一者匹配該預定義程式計數值,則使用一置換程式計數值來替換該另一程式計數值;使用該置換程式計數值來提取一第二指令序列之複數個第二可執行指令之一者;及執行該第二可執行指令。
依據法規,已通過大致針對結構特徵及方法特徵之語言而描述
本文所揭示之標的。然而,應瞭解,申請專利範圍不受限制於所展示及所描述之特定特徵,此係因為本文所揭示之構件包括實例性實施例。因此,申請專利範圍將被給予字面上所表達之全範疇,且將根據等同原則而適當地加以解譯。
10‧‧‧記憶體系統
12‧‧‧主記憶體
14a‧‧‧記憶體胞
14b‧‧‧記憶體胞
16a‧‧‧緩衝器
16b‧‧‧緩衝器
18‧‧‧控制單元
20‧‧‧置換電路
22‧‧‧演算法
Claims (38)
- 一種記憶體系統,其包括:複數個記憶體胞,其等經個別組態以儲存資料;程式記憶體,其經組態以儲存根據一第一指令序列而排序之複數個第一可執行指令及根據一第二指令序列而排序之複數個第二可執行指令;置換電路,其經組態以使用一置換可執行指令來替換該等第一可執行指令之一者;及一控制單元,其經組態以執行該等第一可執行指令以使用該等記憶體胞來實施關於該資料之儲存之至少一操作,其中該控制單元經組態以根據該第一指令序列而執行該等第一可執行指令,在執行該等第一可執行指令之後執行該置換可執行指令,且由於執行該置換可執行指令而根據該第二指令序列執行該等第二可執行指令。
- 如請求項1之系統,其進一步包括一程式計數器,該程式計數器經組態以產生複數個程式計數值以提取該等第一可執行指令及該等第二可執行指令。
- 如請求項2之系統,其中該置換電路經組態以由於該程式計數器產生該等程式計數值之一預定義者而使用該置換可執行指令來替換該第一可執行指令。
- 如請求項2之系統,其中該置換電路經組態以由於該程式計數器產生該等程式計數值之一預定義者而控制該程式計數器使用一置換程式計數值來替換該等程式計數值之一者。
- 如請求項2之系統,其中該等程式計數值包括複數個第一程式計數值,以根據該第一指令序列而提取該等第一可執行指令,且 其中該置換電路經組態以控制該程式計數器使用複數個第二程式計數值之一者來替換該等第一程式計數值之一者,以起始該等第二可執行指令之提取。
- 如請求項1之系統,其中該置換可執行指令係經組態以控制該控制單元開始執行該等第二可執行指令之一分支指令。
- 如請求項1之系統,其進一步包括一輸入端,該輸入端經組態以從該記憶體系統之外部接收該等第二可執行指令且將該等第二可執行指令傳送至該程式記憶體。
- 如請求項1之系統,其中該等記憶體胞之部分儲存該等第二可執行指令且該程式記憶體從該部分記憶體胞接收該等第二可執行指令。
- 如請求項1之系統,其中該控制單元包括一指令暫存器,且其中該置換電路經組態以控制將該置換可執行指令提供至該指令暫存器以替換該第一可執行指令。
- 如請求項1之系統,其中將該等第一可執行指令儲存於非揮發性記憶體中且將該等第二可執行指令儲存於揮發性記憶體中。
- 如請求項10之系統,其中將該等第一可執行指令及該等第二可執行指令儲存於該非揮發性記憶體及該揮發性記憶體之一連續指令集位址空間內。
- 如請求項1之系統,其中該控制單元經組態以在該等第二可執行指令之執行期間測試該等第一可執行指令之執行。
- 一種記憶體系統,其包括:複數個記憶體胞,其等經個別組態以儲存資料;一控制單元,其經組態以控制關於該等記憶體胞之該資料之讀取及寫入;程式記憶體,其經組態以儲存根據一第一指令序列而排序之 複數個第一可執行指令且儲存根據一第二指令序列而排序之複數個第二可執行指令;一程式計數器,其經組態以:產生複數個第一程式計數值,以根據該第一指令序列而提取該等第一可執行指令;且產生複數個第二程式計數值,以根據該第二指令序列而提取該等第二可執行指令;置換電路,其經組態以使用該等第二程式計數值之一者來替換該等第一程式計數值之一者以起始該等第二可執行指令之提取;且其中該控制單元經組態以執行該等第一可執行指令以使用該等記憶體胞來實施關於該資料之儲存之至少一操作。
- 如請求項13之系統,其中該置換電路經組態以使用一分支指令來替換該等第一可執行指令之一者,該分支指令經組態以控制該控制單元起始該等第二可執行指令之執行。
- 如請求項13之系統,其中該置換電路經組態以由於該程式計數器產生一預定義第一程式計數值而使用該第二程式計數值來替換該第一程式計數值。
- 如請求項13之系統,其中將該等第一可執行指令儲存於非揮發性記憶體中且將該等第二可執行指令儲存於揮發性記憶體中。
- 如請求項16之系統,其中將該等第一可執行指令及該等第二可執行指令儲存於該非揮發性記憶體及該揮發性記憶體之一連續指令集位址空間內。
- 一種記憶體系統,其包括:複數個記憶體胞,其等經個別組態以儲存資料;一第一儲存空間,其經組態以儲存一第一指令序列之複數個第一可執行指令; 一第二儲存空間,其經組態以儲存一第二指令序列之複數個第二可執行指令;一控制單元,其經組態以執行該等第一可執行指令以使用該等記憶體胞來實施關於該資料之儲存之至少一操作;及邏輯電路,其經組態以在藉由該控制單元之該等第一可執行指令之執行期間偵測一預定義事件,且由於該偵測而控制該控制單元執行該等第二可執行指令。
- 如請求項18之系統,其中該第一儲存空間係非揮發性記憶體且該第二儲存空間係揮發性記憶體。
- 如請求項18之系統,其中將該等第一可執行指令及該等第二可執行指令儲存於該第一儲存空間及該第二儲存空間之一連續指令集位址空間內。
- 如請求項18之系統,其中該控制單元包括一程式計數器,該程式計數器經組態以產生複數個程式計數值以提取該等第一可執行指令,且其中該邏輯電路經組態以偵測該預定義事件,該預定義事件包括產生該等程式計數值之一預定義者。
- 如請求項21之系統,其中該邏輯電路經組態以由於該偵測而將一置換程式計數值提供至該程式計數器以起始該等第二可執行指令之提取。
- 如請求項18之系統,其中該邏輯電路經組態以由於該偵測而將一分支指令提供至該控制電路以控制該控制單元起始該等第二可執行指令之執行。
- 一種記憶體控制方法,其包括:首先根據一第一指令序列而執行複數個第一可執行指令以使用一記憶體系統之複數個記憶體胞來實施關於資料之儲存之至少一操作; 在該等第一可執行指令之執行期間,使用一置換可執行指令來替換該等第一可執行指令之一者,該置換可執行指令包括經組態以起始複數個第二可執行指令之執行的一分支指令;接著,在該替換之後執行該置換可執行指令;及再者,由於執行該置換可執行指令而根據一第二指令序列執行該等第二可執行指令。
- 如請求項24之方法,其進一步包括:產生複數個程式計數值;及使用該等程式計數值來提取該等第一可執行指令及該等第二可執行指令。
- 如請求項25之方法,其進一步包括偵測該等程式計數值之一預定義者之產生,且其中該替換包括由於該偵測之替換。
- 如請求項26之方法,其進一步包括:由於該偵測而使用一置換程式計數值來替換該等程式計數值之一者,該置換程式計數值起始該等第二可執行指令之提取。
- 如請求項25之方法,其進一步包括使用一置換程式計數值來替換該等程式計數值之一者,且進一步包括起始使用該置換程式計數值來提取該等第二可執行指令。
- 如請求項24之方法,其進一步包括:從該記憶體系統之外部接收該等第二可執行指令;將該等第二可執行指令儲存於該記憶體系統之程式記憶體內;及從該程式記憶體提取該等第二可執行指令。
- 如請求項24之方法,其進一步包括:將該等第二可執行指令從該等記憶體胞之部分傳送至該記憶體系統之程式記憶體;及從該程式記憶體提取該等第二可執行指令。
- 如請求項24之方法,其進一步包括:將該等第一可執行指令儲存於非揮發性記憶體中;及將該等第二可執行指令儲存於揮發 性記憶體中。
- 如請求項24之方法,其進一步包括:將該等第一可執行指令及該等第二可執行指令儲存於一連續指令集位址空間內。
- 一種記憶體控制方法,其包括:產生複數個程式計數值;比較該等程式計數值與一預定義程式計數值;若在該比較期間,該等程式計數值之一者不匹配該預定義程式計數值,則使用該程式計數值來提取一第一指令序列之複數個第一可執行指令之一者;執行該第一可執行指令以使用一記憶體系統之複數個記憶體胞來實施關於資料之儲存之一操作;若該等程式計數值之另一者匹配該預定義程式計數值,則使用一置換程式計數值來替換該另一程式計數值;使用該置換程式計數值來提取一第二指令序列之複數個第二可執行指令之一者;及執行該第二可執行指令。
- 如請求項33之方法,其進一步包括:由於該另一程式計數值匹配該預定義程式計數值而使用一置換可執行指令來替換該等第一可執行指令之另一者。
- 如請求項34之方法,其中該置換可執行指令包括一分支指令以開始執行該等第二可執行指令。
- 如請求項33之方法,其中該第二可執行指令係在執行該分支指令之後在該第二指令序列內之待執行之第一指令。
- 如請求項33之方法,其進一步包括:將該等第一可執行指令儲存於非揮發性記憶體中;及將該等第二可執行指令儲存於揮發性記憶體中。
- 如請求項33之方法,其進一步包括:將該等第一可執行指令及該等第二可執行指令儲存於一連續指令集位址空間內。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/172,806 US11163572B2 (en) | 2014-02-04 | 2014-02-04 | Memory systems and memory control methods |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201543213A true TW201543213A (zh) | 2015-11-16 |
TWI570556B TWI570556B (zh) | 2017-02-11 |
Family
ID=53754887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104103609A TWI570556B (zh) | 2014-02-04 | 2015-02-03 | 記憶體系統及記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11163572B2 (zh) |
TW (1) | TWI570556B (zh) |
WO (1) | WO2015119793A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI787286B (zh) * | 2017-06-28 | 2022-12-21 | 英商Arm股份有限公司 | 領域執行情境遮罩及保存 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10725699B2 (en) | 2017-12-08 | 2020-07-28 | Sandisk Technologies Llc | Microcontroller instruction memory architecture for non-volatile memory |
CN108762235A (zh) * | 2018-06-12 | 2018-11-06 | 重庆穗通汽车工业发展有限公司 | 整车分析调试方法、整车分析调试系统和电动车辆 |
US10942742B1 (en) * | 2018-12-11 | 2021-03-09 | Amazon Technologies, Inc. | Hardware engine with configurable instructions |
US11720352B2 (en) * | 2019-12-10 | 2023-08-08 | Micron Technology, Inc. | Flexible command pointers to microcode operations |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581776A (en) * | 1995-02-03 | 1996-12-03 | Nokia Mobile Phones Limited | Branch control system for rom-programmed processor |
JPH08272625A (ja) | 1995-03-29 | 1996-10-18 | Toshiba Corp | マルチプログラム実行制御装置及び方法 |
US6078548A (en) * | 1999-03-08 | 2000-06-20 | Winbond Electronics Corporation | CPU capable of modifying built-in program codes thereof and method for the same |
US6275119B1 (en) * | 1999-08-25 | 2001-08-14 | Micron Technology, Inc. | Method to find a value within a range using weighted subranges |
US7127718B1 (en) | 2000-11-15 | 2006-10-24 | National Semiconductor Corporation | Multitasking microcontroller for controlling the physical layer of a network interface card and method of operation |
US6915416B2 (en) * | 2000-12-28 | 2005-07-05 | Texas Instruments Incorporated | Apparatus and method for microcontroller debugging |
US6916745B2 (en) * | 2003-05-20 | 2005-07-12 | Fairchild Semiconductor Corporation | Structure and method for forming a trench MOSFET having self-aligned features |
US6865667B2 (en) * | 2001-03-05 | 2005-03-08 | Freescale Semiconductors, Inc. | Data processing system having redirecting circuitry and method therefor |
US7039841B2 (en) | 2002-05-08 | 2006-05-02 | Credence Systems Corporation | Tester system having multiple instruction memories |
US20040128590A1 (en) * | 2002-12-30 | 2004-07-01 | Michael Derr | Patch mechanism |
JP2004272844A (ja) * | 2003-03-12 | 2004-09-30 | Renesas Technology Corp | 割り込み制御方法 |
US7069377B2 (en) | 2003-05-08 | 2006-06-27 | Micron Technology, Inc. | Scratch control memory array in a flash memory device |
US20050007160A1 (en) * | 2003-07-10 | 2005-01-13 | Neff Robert M. R. | Tunable differential transconductor and adjustment method |
ITRM20030354A1 (it) | 2003-07-17 | 2005-01-18 | Micron Technology Inc | Unita' di controllo per dispositivo di memoria. |
JP2005050208A (ja) | 2003-07-30 | 2005-02-24 | Matsushita Electric Ind Co Ltd | マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置 |
US20050071605A1 (en) * | 2003-09-30 | 2005-03-31 | Yao-Huang Hsieh | Method for enabling a branch-control system in a microcomputer apparatus |
US7395419B1 (en) * | 2004-04-23 | 2008-07-01 | Apple Inc. | Macroscalar processor architecture |
GB0410151D0 (en) * | 2004-05-07 | 2004-06-09 | Zeus Technology Ltd | Load balancing & traffic management |
US7292487B1 (en) | 2006-05-10 | 2007-11-06 | Micron Technology, Inc. | Independent polling for multi-page programming |
JP2008009945A (ja) * | 2006-06-30 | 2008-01-17 | Toshiba Corp | メモリシステム |
US7596781B2 (en) * | 2006-10-16 | 2009-09-29 | International Business Machines Corporation | Register-based instruction optimization for facilitating efficient emulation of an instruction stream |
US7657491B2 (en) * | 2006-10-31 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | Application of fuzzy logic to response and unsolicited information |
US20080263115A1 (en) * | 2007-04-17 | 2008-10-23 | Horizon Semiconductors Ltd. | Very long arithmetic logic unit for security processor |
US8055886B2 (en) * | 2007-07-12 | 2011-11-08 | Texas Instruments Incorporated | Processor micro-architecture for compute, save or restore multiple registers and responsive to first instruction for repeated issue of second instruction |
WO2009098630A1 (en) * | 2008-02-06 | 2009-08-13 | Nxp B.V. | Data processing device and method for executing obfuscated programs |
US9015720B2 (en) | 2008-04-30 | 2015-04-21 | Advanced Micro Devices, Inc. | Efficient state transition among multiple programs on multi-threaded processors by executing cache priming program |
US7845613B2 (en) * | 2008-08-07 | 2010-12-07 | Francisco Membrive Martinez | Ground securing rod |
JP2010152962A (ja) * | 2008-12-24 | 2010-07-08 | Toshiba Corp | 半導体記憶装置 |
CN103299270B (zh) * | 2011-04-29 | 2017-03-08 | 中天安泰(北京)信息技术有限公司 | 运行时指令重组方法及装置 |
-
2014
- 2014-02-04 US US14/172,806 patent/US11163572B2/en active Active
-
2015
- 2015-01-23 WO PCT/US2015/012735 patent/WO2015119793A1/en active Application Filing
- 2015-02-03 TW TW104103609A patent/TWI570556B/zh active
-
2021
- 2021-10-27 US US17/512,082 patent/US20220050685A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI787286B (zh) * | 2017-06-28 | 2022-12-21 | 英商Arm股份有限公司 | 領域執行情境遮罩及保存 |
Also Published As
Publication number | Publication date |
---|---|
WO2015119793A1 (en) | 2015-08-13 |
TWI570556B (zh) | 2017-02-11 |
US11163572B2 (en) | 2021-11-02 |
US20150220344A1 (en) | 2015-08-06 |
US20220050685A1 (en) | 2022-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI570556B (zh) | 記憶體系統及記憶體控制方法 | |
TWI488110B (zh) | 狀態機引擎及其方法 | |
US6772276B2 (en) | Flash memory command abstraction | |
US20190018597A1 (en) | Systems and methods for on-die control of memory command, timing, and/or control signals | |
CN104035843B (zh) | 用于提高锁步核可用性的系统和方法 | |
US9292418B2 (en) | Determining the vulnerability of multi-threaded program code to soft errors | |
TWI431526B (zh) | 硬體流控制監視器 | |
BR112015022683B1 (pt) | Sistema de processamento e método de realização de uma operação de manipulação de dados | |
US20180068734A1 (en) | Methods for read retries and apparatuses using the same | |
US9261932B2 (en) | Minimizing switchover time in a hot swappable program memory | |
US20080016415A1 (en) | Evaluation system and method | |
US20210294590A1 (en) | Storage circuit and operation method | |
US6925522B2 (en) | Device and method capable of changing codes of micro-controller | |
US8621194B2 (en) | Processor NAND flash boot system and method | |
US9081895B2 (en) | Identifying and tagging breakpoint instructions for facilitation of software debug | |
US20170262195A1 (en) | Semiconductor device | |
US10162728B2 (en) | Method and device for monitoring the execution of a program code | |
CN105204896A (zh) | 一种数字存储示波器的BootLoader设计方法 | |
JP2004234720A (ja) | 半導体装置およびその状態遷移チェック方法 | |
CN107924385A (zh) | 具有可选择处理器核心的集成电路装置 | |
US20080300845A1 (en) | Monitoring software simulations of hardware systems | |
JP2006293741A (ja) | プロセッサ | |
US8352714B2 (en) | Executing watchpoint instruction in pipeline stages with temporary registers for storing intermediate values and halting processing before updating permanent registers | |
US11922167B2 (en) | Method performed by a microcontroller for managing a NOP instruction and corresponding microcontroller | |
US20230195517A1 (en) | Multi-Cycle Scheduler with Speculative Picking of Micro-Operations |