TW202411847A - 記憶體查找裝置及方法 - Google Patents
記憶體查找裝置及方法 Download PDFInfo
- Publication number
- TW202411847A TW202411847A TW111134570A TW111134570A TW202411847A TW 202411847 A TW202411847 A TW 202411847A TW 111134570 A TW111134570 A TW 111134570A TW 111134570 A TW111134570 A TW 111134570A TW 202411847 A TW202411847 A TW 202411847A
- Authority
- TW
- Taiwan
- Prior art keywords
- search
- memory
- commands
- string
- processing circuit
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 113
- 238000013507 mapping Methods 0.000 claims abstract description 34
- 230000003068 static effect Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 6
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 4
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Image Input (AREA)
Abstract
本發明提供一種記憶體查找裝置及方法。記憶體查找裝置包括記憶體、查找命令處理電路以及查找結果處理電路。查找命令處理電路基於記憶體的存取特性將在原始查找命令串中多個查找命令的原始順序重排序為新順序,並提供經重排序查找命令串給記憶體。查找結果處理電路耦接記憶體以接收查找結果串,以及耦接查找命令處理電路以接收原始順序與新順序之間的映射資訊,其中查找結果串包括經重排序查找命令串的多個查找命令所對應的多個查找結果。查找結果處理電路基於映射資訊將查找結果的順序還原為原始順序。
Description
本發明是有關於一種電子裝置,且特別是有關於一種記憶體查找裝置及記憶體查找方法。
記憶體查找常用於各種人工智慧應用,例如應用在推薦系統(Recommendation Systems)、自然語言處理(Nature Language Processing, NLP)演算法或是其他應用中。各種人工智慧應用廣泛使用內嵌(Embeddings)技術。內嵌技術的原理是將數個查找表(Look-Up Table, LUT)儲存於記憶體中,再根據輸入值(查找命令)查找記憶體的查找表以得到運算結果(查找結果)。
不同的記憶體裝置具有不同的存取特性,存取方式是否符合裝置的特性會嚴重影響運算效能。一般技術會按照輸入值的原始順序依序查找記憶體,然而原始順序不符合裝置特性時,可能會產生重複以及不必要的查找過程,造成存取記憶體時額外的成本,進而導致不良的使用者體驗以及裝置的過渡耗能。
以存取動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)為例,DRAM的儲存空間由列(row)和欄(column)組成,其中列的容量也被稱作頁尺寸(page size)。DRAM內部有一個列緩衝器(row buffer),其大小等於頁尺寸。當DRAM控制器收到一個查找命令時,DRAM會將此查找命令的目標資料所屬的一整個列的資料讀出並存放至列緩衝器,然後DRAM基於查找命令的存取位址對列緩衝器進行讀寫。當下一個查找命令的目標資料不在列緩衝器時,DRAM將列緩衝器的內容存回至對應列,然後將所述下一個查找命令的目標資料所屬的另一整列的資料讀出並存放至列緩衝器。如上所述,如果連續的兩次存取位址在不同的列,DRAM內部就需要額外的時間來存取列緩衝器(亦即關閉某一列然後開啟另一列),導致存取效率降低。
須注意的是,「先前技術」段落的內容是用來幫助了解本發明。在「先前技術」段落所揭露的部份內容(或全部內容)可能不是所屬技術領域中具有通常知識者所知道的習知技術。在「先前技術」段落所揭露的內容,不代表該內容在本發明申請前已被所屬技術領域中具有通常知識者所知悉。
本發明提供一種記憶體查找裝置及記憶體查找方法,以提升對記憶體的查找效能。
本發明的一種記憶體查找裝置包括記憶體、查找命令處理電路以及查找結果處理電路。查找命令處理電路耦接至記憶體。查找命令處理電路接收原始讀命令串,其中原始查找命令串包括用以查找記憶體的多個查找命令。查找命令處理電路基於記憶體的存取特性將這些查找命令在原始查找命令串中的原始順序調整為這些查找命令在經重排序查找命令串中的新順序。查找命令處理電路將經重排序查找命令串提供給記憶體。查找結果處理電路耦接至記憶體,以接收經重排序查找命令串所對應的查找結果串,其中查找結果串包括這些查找命令所對應的多個查找結果。查找結果處理電路耦接至查找命令處理電路,以接收相關於原始順序與新順序之間的映射資訊。查找結果處理電路基於映射資訊將這些查找結果在查找結果串中的所述新順序還原為所述原始順序。
本發明的一種記憶體查找方法包括:接收原始查找命令串,其中原始查找命令串包括用以查找記憶體的多個查找命令;基於記憶體的存取特性,將這些查找命令在原始查找命令串中的原始順序調整為這些查找命令在經重排序查找命令串中的新順序;提供經重排序查找命令串給記憶體;從記憶體接收經重排序查找命令串所對應的查找結果串,其中查找結果串包括這些查找命令所對應的多個查找結果;以及基於相關於原始順序與新順序的映射資訊,將這些查找結果在查找結果串中的所述新順序還原為所述原始順序。
基於上述,本發明諸實施例所述記憶體查找裝置及記憶體查找方法可以針對記憶體特性去重新排序這些查找命令。舉例來說,在所述記憶體為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)的情況下,基於DRAM的頁尺寸(page size),DRAM的定址空間可以被分為多個存取位址區間。基此,查找命令處理電路可以將這些查找命令中屬於同一個存取位址區間的多個查找命令群聚於所述經重排序查找命令串(新順序)中,進而減少在DRAM中「關閉列與開啟列」的次數。因此,所述記憶體查找裝置可以提高對記憶體的查找效能。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。本案說明書全文(包括申請專利範圍)中提及的「第一」、「第二」等用語是用以命名元件(element)的名稱,或區別不同實施例或範圍,而並非用來限制元件數量的上限或下限,亦非用來限制元件的次序。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明的一實施例的一種記憶體查找裝置100的電路方塊(circuit block)示意圖。於圖1所示實施例中,記憶體查找裝置100包括記憶體130、查找命令處理電路120以及查找結果處理電路140。查找命令處理電路120耦接至記憶體130。基於實際應用,記憶體130可以為任意種類的記憶體。例如,在一些實施例中,記憶體130可以包括靜態隨機存取記憶體(static random access memory,SRAM)、動態隨機存取記憶體(dynamic random access memory,DRAM)、磁性隨機存取記憶體(magnetic random-access memory,MRAM)、磁阻隨機存取記憶體(magnetoresistive random access memory,MRAM)、快閃(Flash)記憶體或是其他種類的記憶體。一般而言,存取速度較慢的記憶體通常具有較大的儲存空間(因為成本便宜),而速度較快的記憶體通常具有較小的儲存空間(因為成本較高)。
請參閱圖1,查找命令處理電路120可以接收原始查找命令串110,然後基於原始查找命令串110去查找記憶體130,以使記憶體130輸出查找結果串LRS給查找結果處理電路140。原始查找命令串110包含用於查找記憶體120的多個查找命令。查找命令處理電路120接收原始查找命令串110後,對原始查找命令串110進行處理。在一實施例中,查找命令處理電路120可以基於記憶體130的存取特性,將在原始查找命令串110中的這些查找命令的順序(原始順序)_進行重新排序,以得到這些查找命令的新順序。記憶體130的存取特性將在後續段落描述。亦即,查找命令處理電路120可以基於記憶體130的存取特性將這些查找命令在原始查找命令串110中的原始順序調整為這些查找命令在經重排序查找命令串RLCS中的新順序。查找命令處理電路120可以將此經重排序查找命令串RLCS提供給記憶體130。基於查找命令處理電路120所提供的這些查找命令的新順序(經重排序查找命令串RLCS),記憶體130可以提供相對應於經重排序查找命令串RLCS的查找結果串LRS至查找結果處理電路140。
查找結果處理電路140耦接至記憶體130,以接收經重排序查找命令串RLCS所對應的查找結果串LRS。查找結果串LRS包括在經重排序查找命令串RLCS中的這些查找命令所對應的多個查找結果。查找結果處理電路140還耦接至查找命令處理電路120,以接收相關於原始查找命令串110的原始順序與經重排序查找命令串RLCS的新順序的映射資訊INF。查找結果處理電路140可以基於映射資訊INF將這些查找結果在查找結果串LRS中的所述新順序還原為所述原始順序,以產生查找結果串150。詳而言之,查找結果處理電路140可以將在上述查找結果串LRS中這些查找結果的順序(亦即多個查找命令在經重排序查找命令串RLCS中的所述新順序)根據映射資訊INF還原成這些查找結果在查找結果串150中順序(亦即多個查找命令在原始查找命令串110中的所述原始順序)。
以下將以多個實施例說明,查找命令處理電路120如何基於記憶體130的存取特性將這些查找命令在原始查找命令串110中的原始順序調整為這些查找命令在經重排序查找命令串RLCS中的新順序。需注意的是,以下多個實施例可以做為本發明的範例性說明,但不應以此限制本發明的具體實施方式。
在一實施例中,查找命令處理電路120可以檢查在原始查找命令串110中的所有查找命令,以從這些查找命令中找出具有相同存取位址的多個目標查找命令。查找命令處理電路120以這些目標查找命令其中一個代表查找命令取代在經重排序查找命令串RLCS的這些查找命令中的所述目標查找命令。查找命令處理電路120可以將這些目標查找命令與所述代表查找命令之間的關係記錄於映射資訊INF。查找結果處理電路120可以基於映射資訊INF將在查找結果串LRS中所述代表查找命令所對應的一個查找結果還原為這些目標查找命令所對應的多個查找結果,然後將經還原的這些查找結果加入查找結果串150。
舉例來說,查找命令處理電路120可以從原始查找命令串110中找出多組具有相同查找位址的查找命令(目標查找命令),並將具有相同查找位址的這些查找命令中的第一個查找命令(代表查找命令)保留於經重排序查找命令串RLCS,而其餘目標查找命令則予以丟棄。查找命令處理電路120可以將這些被丟棄的目標查找命令與被保留的代表查找命令在原始查找命令串110中的位置記錄於映射資訊INF。經過上述處理後,查找命令處理電路120可以產出一個「不重複查找相同位址的查找命令串」(經重排序查找命令串RLCS)給記憶體130。記憶體130基於經重排序查找命令串RLCS產出不重複查找結果(查找結果串LRS)至查找結果處理電路140。查找結果處理電路140可以根據映射資訊INF(被丟棄的目標查找命令與被保留的代表查找命令在原始查找命令串110中的位置),將在查找結果串LRS中所述代表查找命令所對應的查找結果還原/複製成在查找結果串150中這些目標查找命令所對應的查找結果。
舉例來說,假設原始查找命令串110具有10個查找命令,且這些查找命令的存取位址依序為100、200、9766、5、20、9113、9311、100、199、200。查找命令處理電路120可以將上述原始查找命令串110進行相同地址的指令提取,以產生經重排序查找命令串RLCS。在經重排序查找命令串RLCS中,查找命令的存取位址依序為100、200、9766、5、20、9113、9311、199。查找命令處理電路120可以將這些被丟棄的目標查找命令與被保留的代表查找命令在原始查找命令串110中的位置記錄於映射資訊INF,詳如下述表1。
表1:映射資訊INF的一個範例內容
新順序 | 原始順序 | 存取位址 |
1 | 1 | 100 |
8 | 100 | |
2 | 2 | 200 |
10 | 200 | |
3 | 3 | 9766 |
4 | 4 | 5 |
5 | 5 | 20 |
6 | 6 | 9113 |
7 | 7 | 9311 |
8 | 9 | 199 |
若以表1所示原始順序對記憶體130進行查找,則查找操作須進行10次。經由查找命令處理電路120重新排序後,記憶體130可以用表1所示新順序被查找,因此查找操作次數從10次降低為8次。記憶體130基於具有表1所示新順序的經重排序查找命令串RLCS而提供存取位址「100、200、9766、5、20、9113、9311、199」所對應的8筆查找結果(查找結果串LRS)給查找結果處理電路140。查找結果處理電路140可以根據表1所示映射資訊INF將在查找結果串LRS中具有表1所示新順序的查找結果還原/複製成在查找結果串150中具有表1所示原始順序的查找結果。查找結果串150的內容依序為存取位址「100、200、9766、5、20、9113、9311、100、199、200」所對應的10筆查找結果。
在另一實施例中,記憶體130的存取特性包括「當記憶體130的目標位址被存取時,記憶體130打開包含有目標位址的存取位址區間」。依據記憶體130的上述存取特性,查找命令處理電路120將原始查找命令串110的所有查找命令中屬於同一個存取位址區間的查找命令群聚於新順序(經重排序查找命令串RLCS)中。
舉例來說,假設記憶體130包括動態隨機存取記憶體(DRAM)。基於DRAM的頁尺寸(page size)的存取特性,DRAM的定址空間可以被劃分為多個存取位址區間。基此,查找命令處理電路120可以將原始查找命令串110的這些查找命令中屬於同一個存取位址區間的至少一個查找命令群聚於新順序(經重排序查找命令串RLCS)中,進而減少在DRAM中「關閉列與開啟列」的次數。因此,記憶體查找裝置100可以提高對記憶體130的查找效能。
圖2是依照本發明的一實施例所繪示,記憶體130的定址空間示意圖。在圖2所示實施例中,記憶體130被假設是動態隨機存取記憶體(DRAM)。在此假設記憶體130的列緩衝器(row buffer)的大小(頁尺寸)是8192個位元組(byte)。無論如何,記憶體130的頁尺寸可以依照實際設計來決定。基於記憶體130的頁尺寸的存取特性,記憶體130的定址空間可以被劃分為多個存取位址區間,例如圖2所示存取位址區間210、220和230。每一個存取位址區間的頁尺寸是8192個位元組,亦即存取位址區間210是從位址0至位址8191,存取位址區間220是從位址8192至位址16383,存取位址區間230是從位址16384至位址24575。
為方便說明,在此假設原始查找命令串110具有10個查找命令,且這些查找命令的存取位址依序為「100、200、9766、5、20、9113、9311、100、199、200」。假設查找命令處理電路120沒有對此原始查找命令串110進行重新排序。記憶體130的第一列(位址0至8191的存取位址區間210)會被開啟以便執行帶有存取位址100、200的兩個查找命令。因為接下來的查找命令的存取位址9766不在存取位址區間210中,記憶體130的第一列會被關閉以及開啟第二列(位址8192至16383的存取位址區間220)以便執行帶有存取位址9766的查找命令。以此類推,在存取位址9766與5之間、在存取位址20與9113之間以及在存取位址9311與100之間分別發生一次「關閉列與開啟列」事件。在完全不做重新排序的情形下,記憶體130出現四次「關閉列與開啟列」事件。每一次的「關閉列與開啟列」會額外耗能。
查找命令處理電路120可以對上述原始查找命令串110的所有查找命令依據存取位址進行重新排序,例如將原始查找命令串110的這些查找命令中屬於同一個存取位址區間的多個查找命令群聚於新順序(經重排序查找命令串RLCS)中。在經重排序查找命令串RLCS中,查找命令的存取位址依序為:100、200、5、20、100、199、200、9766、9113、9311。查找命令處理電路120可以將原始查找命令串110的原始順序與經重排序查找命令串RLCS的新順序之間的對應關係記錄於映射資訊INF,詳如下述表2。
表2:映射資訊INF的另一個範例內容
新順序 | 原始順序 | 存取位址 |
1 | 1 | 100 |
2 | 2 | 200 |
3 | 4 | 5 |
4 | 5 | 20 |
5 | 8 | 100 |
6 | 9 | 199 |
7 | 10 | 200 |
8 | 3 | 9766 |
9 | 6 | 9113 |
10 | 7 | 9311 |
若以表2所示原始順序對記憶體130進行查找,則記憶體130出現4次「關閉列與開啟列」事件。經由查找命令處理電路120重新排序後,記憶體130可以用表2所示新順序被查找,因此「關閉列與開啟列」的次數從4次降低為1次。因此,記憶體查找裝置100可以提高對記憶體130的查找效能。
記憶體130基於具有表2所示新順序的經重排序查找命令串RLCS而提供存取位址「100、200、5、20、100、199、200、9766、9113、9311」所對應的10筆查找結果(查找結果串LRS)給查找結果處理電路140。根據表2所示映射資訊INF,查找結果處理電路140可以將在查找結果串LRS中具有表2所示新順序的查找結果還原成在查找結果串150中具有表2所示原始順序的查找結果。查找結果串150的內容依序為存取位址「100、200、9766、5、20、9113、9311、100、199、200」所對應的10筆查找結果。
此外,在又一實施例中,查找命令處理電路120除了將原始順序「100、200、9766、5、20、9113、9311、100、199、200」重新排序為「100、200、5、20、100、199、200、9766、9113、9311」外,查找命令處理電路120還可以進一步對上述經重排序的「100、200、5、20、100、199、200、9766、9113、9311」進行相同地址的指令提取,以產生經重排序查找命令串RLCS。本實施例所述「進行相同地址的指令提取」的細節可以參照前述表1的相關說明並且加以類推,不再贅述。在經重排序查找命令串RLCS中,查找命令的存取位址依序為:100、200、5、20、199、9766、9113、9311。查找命令處理電路120可以將這些被丟棄的目標查找命令與被保留的代表查找命令在原始查找命令串110中的位置記錄於映射資訊INF,詳如下述表3。
表3:映射資訊INF的再一個範例內容
新順序 | 原始順序 | 存取位址 |
1 | 1 | 100 |
8 | 100 | |
2 | 2 | 200 |
10 | 200 | |
3 | 4 | 5 |
4 | 5 | 20 |
5 | 9 | 199 |
6 | 3 | 9766 |
7 | 6 | 9113 |
8 | 7 | 9311 |
若以表3所示原始順序對記憶體130進行查找,則查找操作須進行10次。經由查找命令處理電路120重新排序後,記憶體130可以用表3所示新順序被查找,因此查找操作次數從10次降低為8次。此外,相較於表3所示原始順序,記憶體130的「關閉列與開啟列」的次數從4次降低為1次。
記憶體130基於具有表3所示新順序的經重排序查找命令串RLCS而提供存取位址「100、200、5、20、199、9766、9113、9311」所對應的8筆查找結果(查找結果串LRS)給查找結果處理電路140。查找結果處理電路140可以根據表3所示映射資訊INF將在查找結果串LRS中具有表3所示新順序的查找結果還原/複製成在查找結果串150中具有表3所示原始順序的查找結果。查找結果串150的內容依序為存取位址「100、200、9766、5、20、9113、9311、100、199、200」所對應的10筆查找結果。
在更一實施例中,記憶體130的存取特性包括「獨立存取的多片記憶體」。依據記憶體130的上述存取特性,查找命令處理電路120將原始查找命令串110中屬於不同片記憶體的多個查找命令群聚於新順序中的同一個存取批次。
在一實施例中,記憶體130包含多片靜態隨機存取記憶體(SRAM)。查找命令處理電路120將原始查找命令串110的多個查找命令中屬於不同片SRAM的多個查找命令群聚於新順序(經重排序查找命令串RLCS)中的同一個存取批次。
舉例來說,假設記憶體130包括多個靜態隨機存取記憶體(SRAM)。SRAM的數量可以依照實際設計來決定。為了方便說明,在此假設記憶體130包括三片單埠(Single-Port)的SRAM,而這三片SRAM各自可以獨立存取。單埠意指此SRAM只有一個讀寫埠,也就是一片SRAM同一時間只能對一個位址進行讀取或寫入。作為範例,在此假設每一片SRAM具有8個記憶體位址,而每一個位址的儲存空間為64位元組(byte)。
基於前段對記憶體130的設定,在本實施例中,原始查找命令串110的每一個查找命令的存取位址包含兩個資訊:哪一片靜態隨機存取記憶體(SRAM)以及SRAM內的位址。若將查找命令的存取位址記為[X, Y],基於前段對記憶體130的設定,則X的值域範圍為0~2(表示要查找三片SRAM之中的哪一片),而Y的值域範圍為0~7(表示欲查找的SRAM位址)。
舉例來說,假設原始查找命令串110具有9個查找命令,且這些查找命令的存取位址依序為「[2, 6]、[2, 1]、[2, 4]、[2, 0]、[1, 3]、[1, 1]、[0, 7]、[0, 5]、[1, 4]」。在沒有對原始查找命令串110進行重新排序的情況下,記憶體130進行9次讀取操作。查找命令處理電路120可以對上述原始查找命令串110中的存取位址「[2, 6]、[2, 1]、[2, 4]、[2, 0]、[1, 3]、[1, 1]、[0, 7]、[0, 5]、[1, 4]」進行群聚操作(重排序),以將屬於不同片靜態隨機存取記憶體(SRAM)的多個查找命令聚集為同一個存取批次。具體來說,上述原始查找命令串110的原始順序將被轉換為經重排序查找命令串RLCS的新順序,亦即「[2, 6]、[1, 3]、[0, 7]、[2, 1]、[1, 1]、[0, 5]、[2, 4]、[1, 4]、[2, 0]」,其中「[2, 6]、[1, 3]、[0, 7]」為第一個存取批次,「[2, 1]、[1, 1]、[0, 5]」為第二個存取批次,「[2, 4]、[1, 4]」為第三個存取批次,「[2, 0]」為第四個存取批次。由於每一片SRAM具有被獨立存取的特性,因此多片SRAM可以在每一個存取批次中被同時存取。在查找命令處理電路120對原始查找命令串110進行重新排序的情況下,記憶體130進行4次讀取操作。
查找命令處理電路120可以將原始查找命令串110的原始順序與經重排序查找命令串RLCS的新順序之間的對應關係記錄於映射資訊INF,詳如下述表4。
表4:映射資訊INF的更一個範例內容
新順序 | 原始順序 | 存取位址 |
1 | 1 | [2, 6] |
5 | [1, 3] | |
7 | [0, 7] | |
2 | 2 | [2, 1] |
6 | [1, 1] | |
8 | [0, 5] | |
3 | 3 | [2, 4] |
9 | [1, 4] | |
4 | 4 | [2, 0] |
若以表4所示原始順序對記憶體130進行查找,則記憶體130進行9次讀取操作。經由查找命令處理電路120重新排序後,記憶體130可以用表4所示新順序被查找,因此記憶體130的讀取操作次數(存取批次的數量)從9次降低為4次。因此,記憶體查找裝置100可以提高對記憶體130的查找效能。
上述任一實施例中,查找命令處理電路120對原始查找命令串110進行轉換後,同時產生對應的還原資訊(映射資訊INF)給查找結果處理器140。查找結果處理器140可以根據還原資訊將記憶體130所輸出的查找結果串LRS還原成查找結果串150。
圖3是依照本發明的一實施例的一種記憶體查找方法的步驟流程示意圖。請參照圖1與圖3。在步驟S301中,查找命令處理電路120接收包括多個查找命令的原始查找命令串110。在步驟S302中,查找命令處理電路120基於記憶體130的存取特性,將這些查找命令在原始查找命令串110中的原始順序調整為多個查找命令在經重排序查找命令串RLCS中的新順序。在步驟S303中,查找命令處理電路120提供經重排序查找命令串RLCS給記憶體130。在步驟S304中,查找結果處理器140從記憶體接收經重排序查找命令串RLCS所對應的查找結果串LRS。在步驟S305中,查找結果處理器140基於相關於原始順序與新順序的映射資訊INF,將多個查找結果在查找結果串LRS中的所述新順序還原為查找結果在查找結果串150中的所述原始順序。
依照不同的設計需求,在一些實施例中,上述查找命令處理電路120以及(或是)查找結果處理電路140的實現方式可以是硬體(hardware)電路。在另一些實施例中,查找命令處理電路120以及(或是)查找結果處理電路140的實現方式可以是韌體(firmware)、軟體(software,即程式)或是前述二者的組合形式。在又一些實施例中,查找命令處理電路120以及(或是)查找結果處理電路140的實現方式可以是硬體、韌體、軟體中的多者的組合形式。
以硬體形式而言,上述查找命令處理電路120以及(或是)查找結果處理電路140可以實現於積體電路(integrated circuit)上的邏輯電路。舉例來說,查找命令處理電路120以及(或是)查找結果處理電路140的相關功能可以被實現於一或多個控制器、微控制器(Microcontroller)、微處理器(Microprocessor)、特殊應用積體電路(Application-specific integrated circuit,ASIC)、數位訊號處理器(digital signal processor,DSP)、場可程式邏輯閘陣列(Field Programmable Gate Array,FPGA)及/或其他處理單元中的各種邏輯區塊、模組和電路。查找命令處理電路120以及(或是)查找結果處理電路140的相關功能可以利用硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為硬體電路,例如積體電路中的各種邏輯區塊、模組和電路。
以軟體形式及/或韌體形式而言,上述查找命令處理電路120以及(或是)查找結果處理電路140的相關功能可以被實現為編程碼(programming codes)。例如,利用一般的編程語言(programming languages,例如C、C++或組合語言)或其他合適的編程語言來實現查找命令處理電路120以及(或是)查找結果處理電路140。所述編程碼可以被記錄/存放在「非臨時的電腦可讀取媒體(non-transitory computer readable medium)」中。在一些實施例中,所述非臨時的電腦可讀取媒體例如包括半導體記憶體以及(或是)儲存裝置。所述半導體記憶體包括記憶卡、唯讀記憶體(Read Only Memory,ROM)、快閃記憶體(FLASH memory)、可程式設計的邏輯電路或是其他半導體記憶體。所述儲存裝置包括帶(tape)、碟(disk)、硬碟(hard disk drive,HDD)、固態硬碟(Solid-state drive,SSD)或是其他儲存裝置。電子設備(例如中央處理器(Central Processing Unit,CPU)、控制器、微控制器或微處理器)可以從所述非臨時的電腦可讀取媒體中讀取並執行所述編程碼,從而實現查找命令處理電路120以及(或是)查找結果處理電路140的相關功能。或者,所述編程碼可以經由任意傳輸媒體(例如通信網路或廣播電波等)而提供給所述電子設備。所述通信網路例如是網際網路(Internet)、有線通信(wired communication)網路、無線通信(wireless communication)網路或其它通信介質。
綜上所述,上述諸實施例所述記憶體查找裝置100及記憶體查找方法可以針對記憶體130的特性去重新排序原始查找命令串110的所有查找命令。舉例來說,在記憶體130為動態隨機存取記憶體(DRAM)的情況下,基於DRAM的頁尺寸(page size),DRAM的定址空間可以被分為多個存取位址區間。基此,查找命令處理電路120可以將這些查找命令中屬於同一個存取位址區間的多個查找命令群聚於經重排序查找命令串RLCS(新順序)中,進而減少在DRAM中「關閉列與開啟列」的次數。在記憶體130為多片靜態隨機存取記憶體(SRAM)的情況下,基於SRAM各自可以獨立存取,查找命令處理電路120可以將原始查找命令串110的多個查找命令中屬於不同片SRAM的多個查找命令群聚於新順序(經重排序查找命令串RLCS)中的同一個存取批次,進而減少對記憶體130的讀取操作次數。因此,所述記憶體查找裝置可以提高對記憶體的查找效能以及減少耗能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:記憶體查找裝置
110:原始查找命令串
120:查找命令處理電路
130:記憶體
140:查找結果處理電路
150、LRS:查找結果串
210、220、230:存取位址區間
INF:映射資訊
RLCS:經重排序查找命令串
S301、S302、S303、S304、S305:步驟
圖1是依照本發明的一實施例的一種記憶體查找裝置的電路方塊(circuit block)示意圖。
圖2是依照本發明的一實施例所繪示,一種記憶體的定址空間示意圖。
圖3是依照本發明的一實施例的一種記憶體查找方法的步驟流程示意圖。
100:記憶體查找裝置
110:原始查找命令串
120:查找命令處理電路
130:記憶體
140:查找結果處理電路
150、LRS:查找結果串
INF:映射資訊
RLCS:經重排序查找命令串
Claims (12)
- 一種記憶體查找裝置,包括: 一記憶體; 一查找命令處理電路,耦接至該記憶體,其中該查找命令處理電路接收一原始查找命令串,該原始查找命令串包括用以查找該記憶體的多個查找命令,該查找命令處理電路基於該記憶體的一存取特性將該些查找命令在該原始查找命令串中的一原始順序調整為該些查找命令在一經重排序查找命令串中的一新順序,以及該查找命令處理電路將該經重排序查找命令串提供給該記憶體;以及 一查找結果處理電路,耦接至該記憶體以接收該經重排序查找命令串所對應的一查找結果串,以及耦接至該查找命令處理電路以接收相關於該原始順序與該新順序的一映射資訊,其中該查找結果串包括該些查找命令所對應的多個查找結果,以及該查找結果處理電路基於該映射資訊將該些查找結果在該查找結果串中的該新順序還原為該原始順序。
- 如請求項1所述的記憶體查找裝置,其中該查找命令處理電路檢查該原始查找命令串中的該些查找命令以從該些查找命令中找出具有一相同存取位址的多個目標查找命令,該查找命令處理電路以該些目標查找命令其中一個代表查找命令取代在該經重排序查找命令串的該些查找命令中的該些目標查找命令,該查找命令處理電路將該些目標查找命令與該代表查找命令之間的一關係記錄於該映射資訊,以及該查找結果處理電路基於該映射資訊將在該查找結果串中該代表查找命令所對應的一查找結果還原為該些目標查找命令所對應的多個查找結果。
- 如請求項1所述的記憶體查找裝置,其中該存取特性包括「當該記憶體的一目標位址被存取時該記憶體打開包含有該目標位址的一存取位址區間」,以及該查找命令處理電路將該些查找命令中屬於同一個存取位址區間的至少一查找命令群聚於該新順序中。
- 如請求項1所述的記憶體查找裝置,其中該記憶體包括一動態隨機存取記憶體,基於該動態隨機存取記憶體的一頁尺寸該動態隨機存取記憶體的一定址空間被分為多個存取位址區間,以及該查找命令處理電路將該些查找命令中屬於同一個存取位址區間的至少一查找命令群聚於該新順序中。
- 如請求項1所述的記憶體查找裝置,其中該存取特性包括「獨立存取的多片記憶體」,以及該查找命令處理電路將該些查找命令中屬於不同片記憶體的多個查找命令群聚於該新順序中的同一個存取批次。
- 如請求項1所述的記憶體查找裝置,其中該記憶體包括多片靜態隨機存取記憶體,以及該查找命令處理電路將該些查找命令中屬於不同片靜態隨機存取記憶體的多個查找命令群聚於該新順序中的同一個存取批次。
- 一種記憶體查找方法,包括: 接收一原始查找命令串,其中該原始查找命令串包括用以查找一記憶體的多個查找命令; 基於該記憶體的一存取特性,將該些查找命令在該原始查找命令串中的一原始順序調整為該些查找命令在一經重排序查找命令串中的一新順序; 提供該經重排序查找命令串給該記憶體; 從該記憶體接收該經重排序查找命令串所對應的一查找結果串,其中該查找結果串包括該些查找命令所對應的多個查找結果;以及 基於相關於該原始順序與該新順序的一映射資訊,將該些查找結果在該查找結果串中的該新順序還原為該原始順序。
- 如請求項7所述的記憶體查找方法,更包括: 檢查該原始查找命令串中的該些查找命令,以從該些查找命令中找出具有一相同存取位址的多個目標查找命令; 以該些目標查找命令其中一個代表查找命令取代在該經重排序查找命令串的該些查找命令中的該些目標查找命令; 將該些目標查找命令與該代表查找命令之間的一關係記錄於該映射資訊;以及 基於該映射資訊,將在該查找結果串中該代表查找命令所對應的一查找結果還原為該些目標查找命令所對應的多個查找結果。
- 如請求項7所述的記憶體查找方法,其中該存取特性包括「當該記憶體的一目標位址被存取時該記憶體打開包含有該目標位址的一存取位址區間」,以及所述記憶體查找方法更包括: 將該些查找命令中屬於同一個存取位址區間的至少一查找命令群聚於該新順序中。
- 如請求項7所述的記憶體查找方法,其中該記憶體包括一動態隨機存取記憶體,以及所述記憶體查找方法更包括: 基於該動態隨機存取記憶體的一頁尺寸,將該動態隨機存取記憶體的一定址空間分為多個存取位址區間;以及 將該些查找命令中屬於同一個存取位址區間的至少一查找命令群聚於該新順序中。
- 如請求項7所述的記憶體查找方法,其中該存取特性包括「獨立存取的多片記憶體」,以及所述記憶體查找方法更包括: 將該些查找命令中屬於不同片記憶體的多個查找命令群聚於該新順序中的同一個存取批次。
- 如請求項7所述的記憶體查找方法,其中該記憶體包括多片靜態隨機存取記憶體,以及所述記憶體查找方法更包括: 將該些查找命令中屬於不同片靜態隨機存取記憶體的多個查找命令群聚於該新順序中的同一個存取批次。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111134570A TW202411847A (zh) | 2022-09-13 | 2022-09-13 | 記憶體查找裝置及方法 |
CN202211275202.8A CN117743196A (zh) | 2022-09-13 | 2022-10-18 | 内存查找装置及内存查找方法 |
US17/970,545 US20240086312A1 (en) | 2022-09-13 | 2022-10-20 | Memory searching device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111134570A TW202411847A (zh) | 2022-09-13 | 2022-09-13 | 記憶體查找裝置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202411847A true TW202411847A (zh) | 2024-03-16 |
Family
ID=90142276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111134570A TW202411847A (zh) | 2022-09-13 | 2022-09-13 | 記憶體查找裝置及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240086312A1 (zh) |
CN (1) | CN117743196A (zh) |
TW (1) | TW202411847A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI366094B (en) * | 2007-12-28 | 2012-06-11 | Asmedia Technology Inc | Method and system of integrating data assessing commands and data accessing device thereof |
US20120297131A1 (en) * | 2011-05-20 | 2012-11-22 | Jaewoong Chung | Scheduling-Policy-Aware DRAM Page Management Mechanism |
TWI447646B (zh) * | 2011-11-18 | 2014-08-01 | Asmedia Technology Inc | 資料傳輸裝置及多個指令的整合方法 |
US9135192B2 (en) * | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
US10579303B1 (en) * | 2016-08-26 | 2020-03-03 | Candace Design Systems, Inc. | Memory controller having command queue with entries merging |
US11422707B2 (en) * | 2017-12-21 | 2022-08-23 | Advanced Micro Devices, Inc. | Scheduling memory requests for a ganged memory device |
CN111209232B (zh) * | 2018-11-21 | 2022-04-22 | 昆仑芯(北京)科技有限公司 | 访问静态随机存取存储器的方法、装置、设备和存储介质 |
-
2022
- 2022-09-13 TW TW111134570A patent/TW202411847A/zh unknown
- 2022-10-18 CN CN202211275202.8A patent/CN117743196A/zh active Pending
- 2022-10-20 US US17/970,545 patent/US20240086312A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240086312A1 (en) | 2024-03-14 |
CN117743196A (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194707B2 (en) | Systems and methods for rapid processing and storage of data | |
US10678768B2 (en) | Logical band-based key-value storage structure | |
JP6880149B2 (ja) | スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体 | |
JP2006323739A5 (zh) | ||
US20150149490A1 (en) | Data storage device having internal hardware filter, data storage method and data storage system | |
EP3506121A1 (en) | Method and apparatus to efficiently perform filtering operations in an in-memory relational database | |
US11449270B2 (en) | Address translation method and system for KV storage device | |
KR20210125433A (ko) | 데이터베이스 관리 방법 및 그 방법으로 관리되는 비-일시적 컴퓨터 판독가능 매체 | |
US11113159B2 (en) | Log structure with compressed keys | |
TW202411847A (zh) | 記憶體查找裝置及方法 | |
EP4018326A1 (en) | Three tiered hierarchical memory systems | |
EP4018327A1 (en) | Hierarchical memory systems | |
US10545696B2 (en) | Data deduplication using KVSSD | |
US20210318904A1 (en) | Hierarchical memory systems | |
TW591407B (en) | Method for a display controller to access data stored in a system memory of a computer device | |
US11210215B2 (en) | Computing device and operation method thereof | |
TWI847003B (zh) | 儲存裝置及對邏輯區塊位址中的重疊進行檢查的方法 | |
US20230130969A1 (en) | Providing Data from Portions of a Memory to Processors in Memory (PIMs) in an Electronic Device | |
US11036434B2 (en) | Hierarchical memory systems | |
TWI836239B (zh) | 用於二分搜尋的方法和系統 | |
TWI775034B (zh) | 計算裝置及其操作方法 | |
WO2021034599A1 (en) | Hierarchical memory systems | |
TW202207041A (zh) | 儲存裝置及對邏輯區塊位址中的重疊進行檢查的方法 | |
VEGESNA et al. | Realization of CAM Architecture for Compression and Decompression Applications | |
TW201401051A (zh) | 改善快閃記憶儲存裝置輸入的方法 |