TW202115559A - 計算裝置及其操作方法 - Google Patents
計算裝置及其操作方法 Download PDFInfo
- Publication number
- TW202115559A TW202115559A TW109100518A TW109100518A TW202115559A TW 202115559 A TW202115559 A TW 202115559A TW 109100518 A TW109100518 A TW 109100518A TW 109100518 A TW109100518 A TW 109100518A TW 202115559 A TW202115559 A TW 202115559A
- Authority
- TW
- Taiwan
- Prior art keywords
- look
- memory
- memories
- lookup
- tables
- Prior art date
Links
Images
Landscapes
- Image Analysis (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
- Memory System (AREA)
Abstract
一種計算裝置及其操作方法。計算裝置包括多個記憶體以及一個處理電路。處理電路耦接至這些記憶體。處理電路依據至少一個查找表的特性動態地決定將所述至少一個查找表存放在這些記憶體的哪一個。然後,處理電路可以使用所述至少一個查找表去執行至少一個演算法。
Description
本發明是有關於一種電子裝置,且特別是有關於一種計算裝置及其操作方法。
計算裝置在許多應用中都需要使用一或多個查找表(lookup table)。舉例來說,推薦系統(recommendation system)是一種訊息分析系統,用於預測使用者對於物品或服務的「評分」或「偏好」。常見的推薦系統是由詞性表查找(word embedding table lookup)模塊和神經網路運算(neural network computation)模塊所組成。所述詞性表大多由數個到數十個大小不一的查找表所組成,大的查找表可能占用數十億位元組(gigabyte, GB)的容量,小的查找表可能只需要數位元組(byte)的容量。查表得出的訊息經過神經網路的運算,可以得出推薦系統的結果。
一般的計算裝置具有硬式磁碟機(hard disk drive,HDD)與隨機存取記憶體(random access memory,RAM)。硬式磁碟機的儲存空間大(成本便宜),但是存取速度慢。隨機存取記憶體的速度較快,但是儲存空間小(成本較高)。在系統關機前,處理器會將查找表從隨機存取記憶體搬移到硬式磁碟機。在系統開機後,處理器會將查找表從硬式磁碟機搬移到隨機存取記憶體,以加快存取速度和系統效能。無論如何,礙於隨機存取記憶體的容量有限,有一些查找表(例如查找表A)可能暫時不會被搬移到隨機存取記憶體。在記憶體空間已滿的情況下,當在硬式磁碟機中的查找表A需要被存取的時候,處理器會將在隨機存取記憶體中的查找表B寫回硬式磁碟機中,然後將查找表A從硬式磁碟機搬移到隨機存取記憶體。因此在查表過程中,常需要在不同儲存媒體間大量搬移資料,造成查表所需時間過久。
另外,目前的查找表是被存放在特定記憶體,而不論當時在系統中有無更適合存放這個查找表的其他記憶體。一般的計算裝置具有多種記憶體。例如,計算裝置可能具有速度較快的記憶體與速度較慢的記憶體。目前的查表系統並不會根據查找表的特性而有差異化處理方式,亦即不會動態地決定將查找表存放在多個記憶體的哪一個,因此查表較無效率。舉例來說,某一個頻繁存取的查找表可能默認地被存放在速度較慢的記憶體,造成查表所需時間過久。
須注意的是,「先前技術」段落的內容是用來幫助了解本發明。在「先前技術」段落所揭露的部份內容(或全部內容)可能不是所屬技術領域中具有通常知識者所知道的習知技術。在「先前技術」段落所揭露的內容,不代表該內容在本發明申請前已被所屬技術領域中具有通常知識者所知悉。
本發明提供一種計算裝置及其操作方法,以存取在記憶體中的查找表。
本發明的計算裝置包括多個記憶體以及一個處理電路。處理電路耦接至這些記憶體。處理電路依據至少一個查找表的特性動態地決定將所述至少一個查找表存放在這些記憶體的哪一個。然後,處理電路可以使用所述至少一個查找表去執行至少一個演算法。
本發明的操作方法包括:由處理電路依據至少一個查找表的特性動態地決定將所述至少一個查找表存放在多個記憶體的哪一個;以及由處理電路使用所述至少一個查找表去執行至少一個演算法。
本發明的計算裝置包括至少一個記憶體、一個處理器以及至少一個查表電路。所述至少一記憶體用以存放至少一個查找表。處理器用以發出查表命令以及執行至少一個演算法。所述至少一查表電路耦接至處理器與所述至少一記憶體。當處理器發出查表命令給所述至少一查表電路時,所述至少一查表電路依據處理器的查表命令查找被存放在所述至少一記憶體的所述至少一個查找表,以獲得至少一個對應資料。處理器使用所述至少一查表電路所提供的所述至少一個對應資料去執行所述至少一個演算法。
基於上述,在一些實施例中,所述處理電路可以依據查找表的特性而動態地決定將這個查找表存放在多個記憶體的哪一個。因此,查表效率可以被有效提昇。在一些實施例中,依據處理器所發出的查表命令,查表電路可以查找被存放在記憶體中的查找表,然後將查找結果(對應資料)回傳給處理器。因此,查表電路可以分擔工作而使處理器的效率可以被有效提昇。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。本案說明書全文(包括申請專利範圍)中提及的「第一」、「第二」等用語是用以命名元件(element)的名稱,或區別不同實施例或範圍,而並非用來限制元件數量的上限或下限,亦非用來限制元件的次序。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明的一實施例的一種計算裝置100的電路方塊(circuit block)示意圖。於圖1所示實施例中,計算裝置100包括處理電路110以及多個記憶體(例如記憶體120_1、…、120_n)。處理電路110耦接至記憶體120_1~120_n。記憶體120_1~120_n的數量n可以依照設計需求來決定。記憶體120_1~120_n包含多種類的記憶體。例如,在一些實施例中,記憶體120_1~120_n可以包含靜態隨機存取記憶體(static random access memory,SRAM)、動態隨機存取記憶體(dynamic random access memory,DRAM)、磁性隨機存取記憶體(magnetic random-access memory,MRAM)、磁阻隨機存取記憶體(magnetoresistive random access memory,MRAM)與快閃(Flash)記憶體中的至少二種。一般而言,存取速度較慢的記憶體通常具有較大的儲存空間(因為成本便宜),而速度較快的記憶體通常具有較小的儲存空間(因為成本較高)。
在計算裝置100關機前,處理電路110可以將在記憶體120_1~120_n中的重要資料(例如查找表)搬移(寫回)到計算裝置100的非揮發性儲存裝置(non-volatile storage device)130。依照設計需求,非揮發性儲存裝置130可以包括硬式磁碟機(hard disk drive,HDD)、固態驅動器(solid state drive,SSD)或是其他非揮發性儲存設備。在計算裝置100開機後,處理電路110可以將所述重要資料(例如查找表)從非揮發性儲存裝置130搬移到記憶體120_1~120_n中。須注意的是,圖1繪示了非揮發性儲存裝置130與記憶體120_1~120_n之間的資料流,然而所述資料流不代表非揮發性儲存裝置130的實際耦接關係。例如,在一些實施例中,非揮發性儲存裝置130可能耦接至處理電路110,而由處理電路110傳輸資料於非揮發性儲存裝置130與記憶體120_1~120_n之間。
圖2是依照本發明的一實施例的一種計算裝置100的操作方法的流程示意圖。請參照圖1與圖2。在步驟S210中,處理電路110可以依據查找表的特性而動態地決定將這個查找表存放在記憶體120_1~120_n的哪一個。根據多個查找表的每一個的特性(大小、存取頻率等等),處理電路110可以使用不同種類的記憶體來儲存,以達到兼顧存取速度、存取功耗、儲存成本等最有效率的配置。在步驟S220中,處理電路110可以使用所述查找表去執行至少一個演算法。
舉例來說,推薦系統(recommendation system)可以預測使用者對於物品或服務的「評分」或「偏好」。常見的推薦系統可以執行詞性表查找(word embedding table lookup)、神經網路運算(neural network computation)以及/或是其他演算法。一般而言,所述詞性表包括多個大小不一的查找表。處理電路110可以執行所述推薦系統的各種演算法,而記憶體120_1~120_n可以存放所述推薦系統的大量查找表。在計算裝置100關機前,處理電路110可以將這些查找表從記憶體120_1~120_n搬移到非揮發性儲存裝置130。在計算裝置100開機後,處理電路110可以將這些查找表從非揮發性儲存裝置130搬移到記憶體120_1~120_n,以加快存取速度和系統效能。不同於習知技術之處包括,本實施例的處理電路110可以依據這些查找表的特性而動態地決定將這些查找表存放在記憶體120_1~120_n的位置。因此,在計算裝置100關機前所述推薦系統的這些查找表在記憶體120_1~120_n的位置可能不同於在計算裝置100開機後這些查找表在記憶體120_1~120_n的位置。處理電路110可以對記憶體120_1~120_n進行查表而得出對應資料(查表結果),然後使用所述對應資料去執行所述神經網路運算與/或其他演算法而得出推薦系統的結果。
處理電路110可以依據查找表的特性而動態地決定將這個查找表存放在記憶體120_1~120_n的哪一個。舉例來說,「查找表的特性」包括查找表的資料量以及存取頻率中的至少一個。
在一些實施例中,處理電路110可以依據「多個查找表中的較大存取頻率查找表優先存放在多個記憶體中的較快記憶體」的原則,將這些查找表存放在記憶體120_1~120_n。舉例來說,處理電路110可以依照多個查找表目前的存取頻率,將頻繁存取的查找表存放在記憶體120_1~120_n中速度較快的記憶體,以及將不常存取的查找表存放在記憶體120_1~120_n中速度較慢的記憶體。
在另一些實施例中,處理電路110可以依據「多個查找表中的較小資料量查找表優先存放在多個記憶體中的較小空間記憶體」的原則,將這些查找表存放在記憶體120_1~120_n。舉例來說,處理電路110可以依照多個查找表目前的資料量,將資料量大的查找表存放在記憶體120_1~120_n中儲存空間較大的記憶體,以及將資料量小的查找表存放在記憶體120_1~120_n中儲存空間較小的記憶體。
在又一些實施例中,處理電路110可以依據「多個查找表中的較小資料量查找表優先存放在多個記憶體中的較快記憶體」的原則,將這些查找表存放在記憶體120_1~120_n。舉例來說,處理電路110可以依照多個查找表目前的資料量,將資料量大的查找表存放在記憶體120_1~120_n中速度較慢的記憶體,以及將資料量小的查找表存放在記憶體120_1~120_n中速度較快的記憶體。
基於上述,處理電路110可以依據查找表的特性而動態地決定將這個查找表存放在記憶體120_1~120_n的哪一個。因此,處理電路110處理電路110的查表效率可以被有效提昇。
圖3是依照本發明的一實施例說明圖1所示處理電路110的電路方塊示意圖。於圖3所示實施例中,處理電路110包括處理器(processor)111以及查表電路112。依照設計需求,查表電路112可以是場可程式邏輯閘陣列(Field Programmable Gate Array,FPGA)、特殊應用積體電路(Application-specific integrated circuit,ASIC)或是其他元件/電路。跟通用型的處理器比起來,查表專用的FPGA(或ASIC)具有成本較低、運作功耗較低、查表速度快、效率高等優勢。
處理器111可以執行至少一個演算法。基於演算法的運行,處理器111可以發出查表命令給查表電路112。查表電路112耦接至處理器111,以接收所述查表命令。查表電路112還耦接至記憶體120_1~120_n,以存取一或多個查找表。當處理器111發出查表命令給查表電路112時,查表電路112依據處理器111的查表命令去查找被存放在記憶體120_1~120_n的查找表,以獲得至少一個對應資料(查表結果)。查表電路112將所述對應資料回傳給處理器111。處理器111可以使用查表電路112所提供的對應資料(查表結果)去執行所述演算法。
基於上述,依據處理器111所發出的查表命令,查表電路112可以查找被存放在記憶體120_1~120_n中的查找表,然後將查找結果(對應資料)回傳給處理器。在發出查表命令後,處理器111可更專注於運算,不用因為等待對應資料(查表結果)而閒置。因此,查表電路112可以分擔工作而使處理器111的效率可以被有效提昇。
圖4是依照本發明的另一實施例說明圖1所示處理電路110的電路方塊示意圖。於圖4所示實施例中,處理電路110包括處理器111、查表電路113以及查表電路114。基於演算法的運行,處理器111可以發出查表命令給查表電路113與/或查表電路114。查表電路113以及查表電路114耦接至處理器111,以接收所述查表命令。查表電路113還耦接至記憶體120_1~120_i,以存取一或多個查找表。查表電路114還耦接至記憶體120_i+1~120_n,以存取一或多個查找表。其中,i與n為正整數,且i小於n。圖4所示處理器111可以參照圖3所示處理器111的相關說明,而圖4所示查表電路113以及查表電路114可以參照圖3所示查表電路112的相關說明來類推,故不再贅述。
請參照圖1。計算裝置100運作時,處理電路110會將需要查詢的查找表從非揮發性儲存裝置130讀出。根據各個查找表之特性(所需之儲存空間大小、存取頻率等等),處理電路110可以將多個查找表載入到不同類型的記憶體中,以優化系統整體成本、功耗和運算效能。舉例來說,記憶體120_1~120_n包括速度較快(但是儲存空間小)的第一記憶體(例如SRAM),以及速度較慢(但是儲存空間大)的第二記憶體(例如DRAM)。處理電路110可以將儲存空間需求較大或不常存取的查找表放在DRAM以降低儲存成本,而將儲存空間需求小或常常存取的查找表放在SRAM以降低存取時間以及所需功耗。另外,儲存空間需求大的查找表若是有需常讀取的部份(entry),可將此部份放到SRAM以加快讀取速度。
舉例來說,當處理電路110從非揮發性儲存裝置130讀出某一個查找表(目前查找表)時,處理電路110可以依照查找表的特性為這個目前查找表計算評價,然後處理電路110可以依據「較大評價查找表優先存放在較快記憶體」的原則,將這個目前查找表存放在第一記憶體(較快記憶體,例如SRAM)以及第二記憶體(較慢記憶體,例如DRAM)其中一個。舉例來說,處理電路110可以使用評價公式F = α*v + β*f來計算這個目前查找表的評價,其中F表示這個目前查找表的評價,v表示這個目前查找表的資料量,f表示這個目前查找表的存取頻率,而α與β為依照設計需求來決定的兩個實數。當目前查找表的評價F大於某一個門檻(此門檻可以依照設計需求來決定)時,處理電路110可以將目前查找表存放在第一記憶體(較快記憶體)。當目前查找表的評價F小於所述門檻時,處理電路110可以將目前查找表存放在第二記憶體(較慢記憶體)。
圖5是依照本發明的另一實施例的一種計算裝置100的操作方法的流程示意圖。請參照圖1與圖5。處理電路110會將非揮發性儲存裝置130的查找表進行排序(步驟S510),然後依序從這些查找表中選擇一個查找表(步驟S520)。排序的依據可以依照設計需求來決定。舉例來說,在一些實施例中,處理電路110可以依照查找表的資料量而將非揮發性儲存裝置130的多個查找表進行排序,然後依序從這些查找表中選擇資料量最小的查找表。在另一些實施例中,處理電路110可以依照查找表的存取頻率而將非揮發性儲存裝置130的多個查找表進行排序,然後依序從這些查找表中選擇存取頻率最大的查找表。
當第一記憶體(較快記憶體)的剩餘空間是足夠的(步驟S530的判斷結果為「足夠」),處理電路110可以將步驟S520所選的查找表從非揮發性儲存裝置130搬移至第一記憶體(步驟S540)。當第一記憶體(較快記憶體)的剩餘空間是不夠的(步驟S530的判斷結果為「不夠」),處理電路110可以將步驟S520所選的查找表從非揮發性儲存裝置130搬移至第二記憶體(較慢記憶體)(步驟S550)。
當步驟S540或步驟S550完成時,處理電路110可以進行步驟S560,以判斷非揮發性儲存裝置130有無查找表尚未搬移。當非揮發性儲存裝置130有查找表尚未搬移時(步驟S560的判斷結果為「有」),處理電路110可以回到步驟S520,以依序選擇下一個查找表。
請參照圖1。在一些實施例中,處理電路110可以將非揮發性儲存裝置130的多個查找表的每一個分為多個部份(entry)。處理電路110可以依據「多個部份中的較大存取頻率部份存放在多個記憶體中的較快記憶體」的原則,將一個查找表分散地存放在多個記憶體。
圖6是依照本發明的又一實施例的一種計算裝置100的操作方法的流程示意圖。請參照圖1與圖6。處理電路110可以將非揮發性儲存裝置130的多個查找表的每一個分為多個部份(entry)。處理電路110可以將這些部份進行排序(步驟S610),然後依序從這些部份中選擇一個部份(步驟S620)。排序的依據可以依照設計需求來決定。舉例來說,在一些實施例中,處理電路110可以依照存取頻率而將非揮發性儲存裝置130的這些部份進行排序,然後依序從這些部份中選擇存取頻率最大的部份。
當第一記憶體(較快記憶體)的剩餘空間是足夠的(步驟S630的判斷結果為「足夠」),處理電路110可以將步驟S620所選的部份(entry)從非揮發性儲存裝置130搬移至第一記憶體(步驟S640)。當第一記憶體(較快記憶體)的剩餘空間是不夠的(步驟S630的判斷結果為「不夠」),處理電路110可以將步驟S620所選的部份從非揮發性儲存裝置130搬移至第二記憶體(較慢記憶體)(步驟S650)。
當步驟S640或步驟S650完成時,處理電路110可以進行步驟S660,以判斷非揮發性儲存裝置130有無部份(entry)尚未搬移。當非揮發性儲存裝置130有部份尚未搬移時(步驟S660的判斷結果為「有」),處理電路110可以回到步驟S620,以依序選擇下一個部份。因此,一個查找表可以被分散地存放在不同類型的多個記憶體。
圖7是依照本發明的又一實施例說明圖1所示計算裝置100的電路方塊示意圖。於圖7所示實施例中,計算裝置100包括處理電路110、記憶體120_1、記憶體120_2、記憶體120_3、記憶體120_4以及非揮發性儲存裝置130。圖7所示處理電路110、記憶體120_1~120_4以及非揮發性儲存裝置130可以參照圖1至圖6所示處理電路110、記憶體120_1~120_n以及非揮發性儲存裝置130的相關說明,故不再贅述。
須注意的是,圖7繪示了非揮發性儲存裝置130與記憶體120_1~120_4之間的資料流,以及處理電路110與記憶體120_1~120_4之間的資料流,然而這些資料流實際耦接關係。例如,在一些實施例中,非揮發性儲存裝置130可能耦接至處理電路110,而由處理電路110傳輸資料於非揮發性儲存裝置130與記憶體120_1~120_n之間。在另一些實施例中,非揮發性儲存裝置130與記憶體120_1~120_4可能經由相同(或不同)匯流排(bus)耦接至處理電路110
於圖7所示實施例中,處理電路110包括處理器111以及查表電路112。查表電路112耦接至記憶體120_1~120_4,以存取一或多個查找表。基於演算法的運行,處理器111可以發出查表命令給查表電路112。查表電路112依據處理器111的查表命令去查找被存放在記憶體120_1~120_4的查找表,以獲得至少一個對應資料(查表結果)。圖7所示處理器111以及查表電路112可以參照圖3所示處理器111以及查表電路112的相關說明,故不再贅述。
於圖7所示實施例中,記憶體120_1可以包含容量為16千位元組(Kilobyte,KB)的SRAM,記憶體120_2可以包含容量為256 KB的SRAM,記憶體120_3可以包含容量為16十億位元組(Gigabyte,GB)的DRAM,記憶體120_4可以包含容量為16百萬位元組(Megabyte,MB)的MRAM。一般而言,SRAM的存取速度快於DRAM的存取速度,而MRAM的存取速度則介於SRAM與DRAM之間。
圖7所示計算裝置100可以被應用為推薦系統的硬體運算平台。在計算裝置100開機後,或者當處理器111需要詞性查找表的資料時,推薦系統的多個查找表會從非揮發性儲存裝置130被搬移到記憶體120_1~120_4中。處理電路110可以依據查找表的特性而動態地決定將這個查找表存放在記憶體120_1~120_4的哪一個。推薦系統的查表操作則由查表電路112執行。查表電路112可以將查表結果傳送給處理器111。處理器111可以處理推薦系統的神經網路運算。
一般而言,在查表電路112將查找表由非揮發性儲存裝置130複製(搬移)到記憶體(例如記憶體120_1)的過程中,若選定的記憶體120_1無足夠的空間來存放這個查找表,則記憶體120_1的舊資料會被寫回非揮發性儲存裝置130,然後查表電路112將這個查找表複製(搬移)到記憶體120_1以覆蓋掉這個舊資料。之後處理器111若需要先前被覆蓋掉的這個舊資料,則查表電路112需要再次從非揮發性儲存裝置130複製(搬移)這個舊資料到記憶體120_1。此類資料的重複搬移會造成系統消耗不必要功耗,以及可能造成處理器111無法及時拿到所需資料而造成系統效能降低。
為了避免上述情形頻繁發生,圖7所示查表電路112可以將資料量為2 KB以下而且最頻繁查找的查找表存放在記憶體120_1(即16KB SRAM),將資料量為64 KB以下而且次頻繁查找的查找表存放在記憶體120_2(即256KB SRAM)。此外,若是有些容量大於64KB的查找表,而且這個查找表的部分(entry)的內容有很高的機率被讀取,則這個部分也會被存放在記憶體120_2(這個查找表的其他部分可以被留置在非揮發性儲存裝置130中,或是被複製/搬移到記憶體120_3)。對於非揮發性儲存裝置130中的其餘查找表,查表電路112可以將資料量為1MB以下的查找表存放在記憶體120_4(即16MB MRAM),以及將資料量為1 MB以上的查找表存放在記憶體120_3(即16GB DRAM)。
綜上所述,處理電路110可以將頻繁查找的查找表盡量放在較快記憶體(例如SRAM),以提高查找速度。因為獨立的記憶體120_1(16KB SRAM)被用來存放最頻繁查找的查找表,所以降低記憶體120_1的查找表被其他資料覆蓋的機率。處理電路110可以將資料量為1MB以下的查找表存放在記憶體120_3(即16GB DRAM),以降低資料量為1MB以下的查找表被其他大資料量的查找表所覆蓋的機率。將大資料量的查找表被存放在記憶體120_3(即16GB DRAM),以節省系統記憶體成本。
依照不同的設計需求,上述處理電路110、處理器111以及(或是)查表電路112的方塊的實現方式可以是硬體(hardware)、韌體(firmware)、軟體(software,即程式)或是前述三者中的多者的組合形式。
以硬體形式而言,上述處理電路110、處理器111以及(或是)查表電路112的方塊可以實現於積體電路(integrated circuit)上的邏輯電路。上述處理電路110、處理器111以及(或是)查表電路112的相關功能可以利用硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為硬體。舉例來說,上述處理電路110、處理器111以及(或是)查表電路112的相關功能可以被實現於一或多個控制器、微控制器、微處理器、特殊應用積體電路(ASIC)、數位訊號處理器(digital signal processor, DSP)、場可程式邏輯閘陣列(FPGA)及/或其他處理單元中的各種邏輯區塊、模組和電路。
以軟體形式及/或韌體形式而言,上述處理電路110、處理器111以及(或是)查表電路112的相關功能可以被實現為編程碼(programming codes)。例如,利用一般的編程語言(programming languages,例如C、C++或組合語言)或其他合適的編程語言來實現上述處理電路110、處理器111以及(或是)查表電路112。所述編程碼可以被記錄/存放在記錄媒體中,所述記錄媒體中例如包括唯讀記憶體(Read Only Memory,ROM)、存儲裝置及/或隨機存取記憶體(Random Access Memory,RAM)。電腦、中央處理器(Central Processing Unit,CPU)、控制器、微控制器或微處理器可以從所述記錄媒體中讀取並執行所述編程碼,從而達成相關功能。作為所述記錄媒體,可使用「非臨時的電腦可讀取媒體(non-transitory computer readable medium)」,例如可使用帶(tape)、碟(disk)、卡(card)、半導體記憶體、可程式設計的邏輯電路等。而且,所述程式也可經由任意傳輸媒體(通信網路或廣播電波等)而提供給所述電腦(或CPU)。所述通信網路例如是互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質。
綜上所述,在一些實施例中,所述處理電路110可以依據查找表的特性而動態地決定將這個查找表存放在多個記憶體120_1~120_n的哪一個。因此,查表效率可以被有效提昇。在一些實施例中,依據處理器111所發出的查表命令,查表電路112可以查找被存放在記憶體120_1~120_n中的查找表,然後將查找結果(對應資料)回傳給處理器111。因此,查表電路112可以分擔工作而使處理器111的效率可以被有效提昇。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100:計算裝置
110:處理電路
111:處理器
112、113、114:查表電路
120_1、120_2、120_3、120_4、120_i、120_i+1、120_n:記憶體
130:非揮發性儲存裝置
S210、S220、S510~S560、S610~S660:步驟
圖1是依照本發明的一實施例的一種計算裝置的電路方塊(circuit block)示意圖。
圖2是依照本發明的一實施例的一種計算裝置的操作方法的流程示意圖。
圖3是依照本發明的一實施例說明圖1所示處理電路的電路方塊示意圖。
圖4是依照本發明的另一實施例說明圖1所示處理電路的電路方塊示意圖。
圖5是依照本發明的另一實施例的一種計算裝置的操作方法的流程示意圖。
圖6是依照本發明的又一實施例的一種計算裝置的操作方法的流程示意圖。
圖7是依照本發明的又一實施例說明圖1所示計算裝置的電路方塊示意圖。
S210、S220:步驟
Claims (21)
- 一種計算裝置,包括: 多個記憶體;以及 一處理電路,耦接至該些記憶體,其中該處理電路依據至少一個查找表的特性動態地決定將該至少一個查找表存放在該些記憶體的哪一個,以及該處理電路使用該至少一個查找表去執行至少一個演算法。
- 如申請專利範圍第1項所述的計算裝置,其中該至少一個查找表的該特性包括該至少一個查找表的一資料量以及一存取頻率中的至少一個。
- 如申請專利範圍第1項所述的計算裝置,其中該至少一個查找表的數量為多個,該處理電路依據「該些查找表中的一較小資料量查找表優先存放在該些記憶體中的一較小空間記憶體」的原則將該些查找表存放在該些記憶體。
- 如申請專利範圍第1項所述的計算裝置,其中該至少一個查找表的數量為多個,該處理電路依據「該些查找表中的一較小資料量查找表優先存放在該些記憶體中的一較快記憶體」的原則將該些查找表存放在該些記憶體。
- 如申請專利範圍第1項所述的計算裝置,其中該至少一個查找表的數量為多個,該處理電路依據「該些查找表中的一較大存取頻率查找表優先存放在該些記憶體中的一較快記憶體」的原則將該些查找表存放在該些記憶體。
- 如申請專利範圍第1項所述的計算裝置,其中該至少一個查找表的每一個被分為多個部份,該處理電路依據「該些部份中的一較大存取頻率部份存放在該些記憶體中的一較快記憶體」的原則將該至少一個查找表分散地存放在該些記憶體。
- 如申請專利範圍第1項所述的計算裝置,其中該至少一個查找表的數量為多個,該處理電路依據該些查找表的該特性為該些查找表的每一個計算一評價,該處理電路依據「該些查找表中的一較大評價查找表優先存放在該些記憶體中的一較快記憶體」的原則將該些查找表存放在該些記憶體。
- 如申請專利範圍第7項所述的計算裝置,其中該處理電路使用一評價公式F=α*v+β*f來計算該查找表的該評價,其中F表示該查找表的該評價,v表示該查找表的一資料量,f表示該查找表的一存取頻率,而α與β為兩個實數。
- 如申請專利範圍第7項所述的計算裝置,其中該些記憶體包括一較快記憶體與一較慢記憶體,當該些查找表的一目前查找表的該評價大於一門檻時,該處理電路將該目前查找表存放在該較快記憶體,以及當該目前查找表的該評價小於該門檻時,該處理電路將該目前查找表存放在該較慢記憶體。
- 如申請專利範圍第1項所述的計算裝置,其中該處理電路包括: 一處理器,用以發出一查表命令以及執行該至少一個演算法;以及 至少一查表電路,耦接至該處理器與該些記憶體,其中 當該處理器發出該查表命令給該至少一查表電路時,該至少一查表電路依據該處理器的該查表命令查找被存放在該些記憶體的該至少一個查找表以獲得至少一個對應資料,以及 該處理器使用該至少一查表電路所提供的該至少一個對應資料去執行該至少一個演算法。
- 如申請專利範圍第1項所述的計算裝置,其中該些記憶體包括一靜態隨機存取記憶體、一動態隨機存取記憶體、一磁性隨機存取記憶體、一磁阻隨機存取記憶體與一快閃記憶體中的至少二種。
- 一種計算裝置的操作方法,包括: 由一處理電路依據至少一個查找表的特性動態地決定將該至少一個查找表存放在多個記憶體的哪一個;以及 由該處理電路使用該至少一個查找表去執行至少一個演算法。
- 如申請專利範圍第12項所述的操作方法,其中該至少一個查找表的數量為多個,該操作方法包括: 依據「該些查找表中的一較小資料量查找表優先存放在該些記憶體中的一較小空間記憶體」的原則,將該些查找表存放在該些記憶體。
- 如申請專利範圍第12項所述的操作方法,其中該至少一個查找表的數量為多個,該操作方法包括: 依據「該些查找表中的一較小資料量查找表優先存放在該些記憶體中的一較快記憶體」的原則,將該些查找表存放在該些記憶體。
- 如申請專利範圍第12項所述的操作方法,其中該至少一個查找表的數量為多個,該操作方法包括: 依據「該些查找表中的一較大存取頻率查找表優先存放在該些記憶體中的一較快記憶體」的原則,將該些查找表存放在該些記憶體。
- 如申請專利範圍第12項所述的操作方法,更包括: 將該至少一個查找表的每一個分為多個部份;以及 依據「該些部份中的一較大存取頻率部份存放在該些記憶體中的一較快記憶體」的原則,將該至少一個查找表分散地存放在該些記憶體。
- 如申請專利範圍第12項所述的操作方法,其中該至少一個查找表的數量為多個,該操作方法包括: 依據該些查找表的該特性,為該些查找表的每一個計算一評價;以及 依據「該些查找表中的一較大評價查找表優先存放在該些記憶體中的一較快記憶體」的原則,將該些查找表存放在該些記憶體。
- 如申請專利範圍第17項所述的操作方法,更包括: 使用一評價公式F=α*v+β*f來計算該查找表的該評價,其中F表示該查找表的該評價,v表示該查找表的一資料量,f表示該查找表的一存取頻率,而α與β為兩個實數。
- 如申請專利範圍第17項所述的操作方法,其中該些記憶體包括一較快記憶體與一較慢記憶體,該操作方法包括: 當該些查找表的一目前查找表的該評價大於一門檻時,將該目前查找表存放在該較快記憶體;以及 當該目前查找表的該評價小於該門檻時,該處理電路將該目前查找表存放在該較慢記憶體。
- 如申請專利範圍第12項所述的操作方法,更包括: 當該處理電路的一處理器發出一查表命令給該處理電路的至少一查表電路時,由該至少一查表電路依據該處理器的該查表命令查找被存放在該些記憶體的該至少一個查找表,以獲得至少一個對應資料;以及 由該處理器使用該至少一查表電路所提供的該至少一個對應資料去執行該至少一個演算法。
- 一種計算裝置,包括: 至少一個記憶體,用以存放至少一個查找表; 一處理器,用以發出一查表命令以及執行至少一個演算法;以及 至少一個查表電路,耦接至該處理器與該至少一記憶體,其中 當該處理器發出該查表命令給該至少一個查表電路時,該至少一個查表電路依據該處理器的該查表命令查找被存放在該至少一個記憶體的該至少一個查找表以獲得至少一個對應資料,以及 該處理器使用該至少一查表電路所提供的該至少一個對應資料去執行該至少一個演算法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/794,183 US11210215B2 (en) | 2019-10-01 | 2020-02-18 | Computing device and operation method thereof |
CN202010160120.3A CN112597344A (zh) | 2019-10-01 | 2020-03-10 | 计算装置及其操作方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962908609P | 2019-10-01 | 2019-10-01 | |
US62/908,609 | 2019-10-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202115559A true TW202115559A (zh) | 2021-04-16 |
TWI775034B TWI775034B (zh) | 2022-08-21 |
Family
ID=76604352
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108141621A TWI723634B (zh) | 2019-10-01 | 2019-11-15 | 資料處理系統及其資料處理方法 |
TW109100518A TWI775034B (zh) | 2019-10-01 | 2020-01-08 | 計算裝置及其操作方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108141621A TWI723634B (zh) | 2019-10-01 | 2019-11-15 | 資料處理系統及其資料處理方法 |
Country Status (1)
Country | Link |
---|---|
TW (2) | TWI723634B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013174B2 (en) * | 2015-09-30 | 2018-07-03 | Western Digital Technologies, Inc. | Mapping system selection for data storage device |
TWM528459U (zh) * | 2016-03-11 | 2016-09-11 | 宏碁股份有限公司 | 資料儲存系統以及電子裝置 |
TWI617993B (zh) * | 2017-03-03 | 2018-03-11 | 財團法人資訊工業策進會 | 辨識系統及辨識方法 |
US10222864B2 (en) * | 2017-04-17 | 2019-03-05 | Facebook, Inc. | Machine translation of consonant-vowel pairs and syllabic units to haptic sequences for transmission via haptic device |
KR102637735B1 (ko) * | 2018-01-09 | 2024-02-19 | 삼성전자주식회사 | 근사 곱셈기를 구비하는 뉴럴 네트워크 처리 장치 및 이를 포함하는 시스템온 칩 |
CN110087071B (zh) * | 2018-01-26 | 2021-07-06 | 联发科技股份有限公司 | 基于感知的图像处理装置及相关方法 |
CN108346426B (zh) * | 2018-02-01 | 2020-12-08 | 威盛电子(深圳)有限公司 | 语音识别装置以及语音识别方法 |
-
2019
- 2019-11-15 TW TW108141621A patent/TWI723634B/zh active
-
2020
- 2020-01-08 TW TW109100518A patent/TWI775034B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI775034B (zh) | 2022-08-21 |
TW202115623A (zh) | 2021-04-16 |
TWI723634B (zh) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9021189B2 (en) | System and method for performing efficient processing of data stored in a storage node | |
US9092321B2 (en) | System and method for performing efficient searches and queries in a storage node | |
US11372779B2 (en) | Memory controller and memory page management method | |
US20200225882A1 (en) | System and method for compaction-less key-value store for improving storage capacity, write amplification, and i/o performance | |
US12079139B2 (en) | Hierarchical memory systems | |
US20210349822A1 (en) | Three tiered hierarchical memory systems | |
TWI775034B (zh) | 計算裝置及其操作方法 | |
CN112148638A (zh) | 用于存储器页的粒度分配的页表 | |
CN108717395B (zh) | 一种降低动态块映射信息占用内存的方法及装置 | |
US11650843B2 (en) | Hierarchical memory systems | |
CN115826858A (zh) | 一种嵌入式存储芯片的控制方法及系统 | |
US11210215B2 (en) | Computing device and operation method thereof | |
CN116340203A (zh) | 数据预读取方法、装置、处理器及预取器 | |
WO2020237409A1 (en) | Technologies for memory-efficient key-value lookup | |
US11614894B2 (en) | Hierarchical memory systems | |
US11782843B2 (en) | Hierarchical memory systems | |
US11586556B2 (en) | Hierarchical memory systems | |
US20240061585A1 (en) | Memory command assignment based on command processor workload | |
US20210248083A1 (en) | Hierarchical memory systems | |
CN117743196A (zh) | 内存查找装置及内存查找方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |