CN117743196A - 内存查找装置及内存查找方法 - Google Patents

内存查找装置及内存查找方法 Download PDF

Info

Publication number
CN117743196A
CN117743196A CN202211275202.8A CN202211275202A CN117743196A CN 117743196 A CN117743196 A CN 117743196A CN 202211275202 A CN202211275202 A CN 202211275202A CN 117743196 A CN117743196 A CN 117743196A
Authority
CN
China
Prior art keywords
lookup
memory
search
commands
string
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202211275202.8A
Other languages
English (en)
Inventor
郭皇志
林永隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chuangxin Wisdom Co ltd
Original Assignee
Chuangxin Wisdom Co ltd
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
Priority claimed from TW111134570A external-priority patent/TW202411847A/zh
Application filed by Chuangxin Wisdom Co ltd filed Critical Chuangxin Wisdom Co ltd
Publication of CN117743196A publication Critical patent/CN117743196A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix

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)

Abstract

本发明提供一种内存查找装置及方法。内存查找装置包括内存、查找命令处理电路以及查找结果处理电路。查找命令处理电路基于内存的访问特性将在原始查找命令串中多个查找命令的原始顺序重排序为新顺序,并提供经重排序查找命令串给内存。查找结果处理电路耦接内存以接收查找结果串,以及耦接查找命令处理电路以接收原始顺序与新顺序之间的映射信息,其中查找结果串包括经重排序查找命令串的多个查找命令所对应的多个查找结果。查找结果处理电路基于映射信息将查找结果的顺序还原为原始顺序。

Description

内存查找装置及内存查找方法
技术领域
本发明涉及一种电子装置,且特别涉及一种内存查找装置及内存查找方法。
背景技术
内存查找常用于各种人工智能应用,例如应用在推荐系统(RecommendationSystems)、自然语言处理(Nature Language Processing,NLP)算法或是其他应用中。各种人工智能应用广泛使用内嵌(Embeddings)技术。内嵌技术的原理是将数个查找表(Look-UpTable,LUT)储存于内存中,再根据输入值(查找命令)查找内存的查找表以得到运算结果(查找结果)。
不同的内存装置具有不同的存取特性,访问方式是否符合装置的特性会严重影响运算效能。一般技术会按照输入值的原始顺序依序查找内存,然而原始顺序不符合设备特性时,可能会产生重复以及不必要的查找过程,造成存取内存时额外的成本,进而导致不良的用户体验以及设备的过渡耗能。
以访问动态随机存取内存(Dynamic Random Access Memory,DRAM)为例,DRAM的储存空间由行(row)和列(column)组成,其中行的容量也被称作页尺寸(page size)。DRAM内部有一个行缓冲器(row buffer),其大小等于页尺寸。当DRAM控制器收到一个查找命令时,DRAM会将此查找命令的目标资料所属的一整个行的资料读出并存放至行缓冲器,然后DRAM基于查找命令的存取地址对行缓冲器进行读写。当下一个查找命令的目标数据不在行缓冲器时,DRAM将行缓冲器的内容存回至对应行,然后将所述下一个查找命令的目标资料所属的另一整行的数据读出并存放至行缓冲器。如上所述,如果连续的两次访问地址在不同的行,DRAM内部就需要额外的时间来访问行缓冲器(亦即关闭某一行然后开启另一行),导致存取效率降低。
须注意的是,“背景技术”段落的内容是用来帮助了解本发明。在“背景技术”段落所揭露的部分内容(或全部内容)可能不是所属技术领域的技术人员所知道的公知技术。在“背景技术”段落所揭露的内容,不代表所述内容在本发明申请前已被所属技术领域的技术人员所知悉。
发明内容
本发明提供一种内存查找装置及内存查找方法,以提升对内存的查找效能。
在根据本发明的实施例中,上述的内存查找装置包括内存、查找命令处理电路以及查找结果处理电路。查找命令处理电路耦接至存储器。查找命令处理电路接收原始读命令串,其中原始查找命令串包括用以查找内存的多个查找命令。查找命令处理电路基于内存的访问特性将这些查找命令在原始查找命令串中的原始顺序调整为这些查找命令在经重排序查找命令串中的新顺序。查找命令处理电路将经重排序查找命令串提供给存储器。查找结果处理电路耦接至内存,以接收经重排序查找命令串所对应的查找结果串,其中查找结果串包括这些查找命令所对应的多个查找结果。查找结果处理电路耦接至查找命令处理电路,以接收相关于原始顺序与新顺序之间的映射信息。查找结果处理电路基于映射信息将这些查找结果在查找结果串中的所述新顺序还原为所述原始顺序。
在根据本发明的实施例中,上述的内存查找方法包括:接收原始查找命令串,其中原始查找命令串包括用以查找内存的多个查找命令;基于内存的存取特性,将这些查找命令在原始查找命令串中的原始顺序调整为这些查找命令在经重排序查找命令串中的新顺序;提供经重排序查找命令串给存储器;从内存接收经重排序查找命令串所对应的查找结果串,其中查找结果串包括这些查找命令所对应的多个查找结果;以及基于相关于原始顺序与新顺序的映射信息,将这些查找结果在查找结果串中的所述新顺序还原为所述原始顺序。
基于上述,本发明诸实施例所述内存查找装置及内存查找方法可以针对内存特性去重新排序这些查找命令。举例来说,在所述存储器为动态随机存取记忆体(DynamicRandom Access Memory,DRAM)的情况下,基于DRAM的页尺寸(page size),DRAM的寻址空间可以被分为多个存取地址区间。基此,查找命令处理电路可以将这些查找命令中属于同一个存取地址区间的多个查找命令群聚于所述经重排序查找命令串(新顺序)中,进而减少在DRAM中“关闭行与开启行”的次数。因此,所述内存查找装置可以提高对内存的查找效能。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1是依照本发明的一实施例的一种内存查找装置的电路方块(circuit block)示意图。
图2是依照本发明的一实施例所绘示,一种内存的寻址空间示意图。
图3是依照本发明的一实施例的一种内存查找方法的步骤流程示意图。
附图标记说明
100:内存查找装置
110:原始查找命令串
120:查找命令处理电路
130:内存
140:查找结果处理电路
150、LRS:查找结果串
210、220、230:存取地址区间
INF:映射信息
RLCS:经重排序查找命令串
S301、S302、S303、S304、S305:步骤
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在图式和描述中用来表示相同或相似部分。
在本案说明书全文(包括申请专利范围)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成所述第一装置可以直接连接于所述第二装置,或者所述第一装置可以通过其他设备或某种连接手段而间接地连接至所述第二装置。本案说明书全文(包括权利要求)中提及的“第一”、“第二”等用语是用以命名组件(element)的名称,或区别不同实施例或范围,而并非用来限制组件数量的上限或下限,亦非用来限制组件的次序。另外,凡可能之处,在图式及实施方式中使用相同标号的组件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的组件/构件/步骤可以相互参照相关说明。
图1是依照本发明的一实施例的一种内存查找装置100的电路方块(circuitblock)示意图。于图1所示实施例中,内存查找装置100包括内存130、查找命令处理电路120以及查找结果处理电路140。查找命令处理电路120耦接至内存130。基于实际应用,内存130可以为任意种类的内存。例如,在一些实施例中,内存130可以包括静态随机存取内存(static random access memory,SRAM)、动态随机存取存储器(dynamic random accessmemory,DRAM)、磁性随机存取内存(magnetic random-access memory,MRAM)、磁阻随机存取内存(magnetoresistive random access memory,MRAM)、闪存(Flash memory)或是其他种类的内存。一般而言,访问速度较慢的内存通常具有较大的存储空间(因为成本便宜),而速度较快的内存通常具有较小的存储空间(因为成本较高)。
请参阅图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所示原始顺序对内存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的行缓冲器(rowbuffer)的大小(页尺寸)是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的再一个范例内容
若以表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的更一个范例内容
若以表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 diskdrive,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的读取操作次数。因此,所述内存查找装置可以提高对内存的查找效能以及减少耗能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种内存查找装置,其特征在于,所述内存查找装置包括:
内存;
查找命令处理电路,耦接至所述内存,其中所述查找命令处理电路接收原始查找命令串,所述原始查找命令串包括用以查找所述内存的多个查找命令,所述查找命令处理电路基于所述内存的存取特性将所述多个查找命令在所述原始查找命令串中的原始顺序调整为所述多个查找命令在经重排序查找命令串中的新顺序,以及所述查找命令处理电路将所述经重排序查找命令串提供给所述内存;以及
查找结果处理电路,耦接至所述内存以接收所述经重排序查找命令串所对应的查找结果串,以及耦接至所述查找命令处理电路以接收相关于所述原始顺序与所述新顺序的映射信息,其中所述查找结果串包括所述多个查找命令所对应的多个查找结果,以及所述查找结果处理电路基于所述映射信息将所述多个查找结果在所述查找结果串中的所述新顺序还原为所述原始顺序。
2.根据权利要求1所述的内存查找装置,其特征在于,所述查找命令处理电路检查所述原始查找命令串中的所述多个查找命令以从所述多个查找命令中找出具有相同访问地址的多个目标查找命令,所述查找命令处理电路以所述多个目标查找命令其中一个代表查找命令取代在所述经重排序查找命令串的所述多个查找命令中的所述多个目标查找命令,所述查找命令处理电路将所述多个目标查找命令与所述代表查找命令之间的关系记录于所述映射信息,以及所述查找结果处理电路基于所述映射信息将在所述查找结果串中所述代表查找命令所对应的查找结果还原为所述多个目标查找命令所对应的多个查找结果。
3.根据权利要求1所述的内存查找装置,其特征在于,所述存取特性包括“当所述内存的目标地址被存取时所述内存打开包含有所述目标地址的存取地址区间”,以及所述查找命令处理电路将所述多个查找命令中属于同一个存取地址区间的至少一个查找命令群聚于所述新顺序中。
4.根据权利要求1所述的内存查找装置,其特征在于,所述内存包括动态随机存取内存,基于所述动态随机存取内存的页尺寸所述动态随机存取内存的寻址空间被分为多个存取地址区间,以及所述查找命令处理电路将所述多个查找命令中属于同一个存取地址区间的至少一个查找命令群聚于所述新顺序中。
5.根据权利要求1所述的内存查找装置,其特征在于,所述存取特性包括“独立存取的多片内存”,以及所述查找命令处理电路将所述多个查找命令中属于不同片内存的多个查找命令群聚于所述新顺序中的同一个存取批次。
6.根据权利要求1所述的内存查找装置,其特征在于,所述内存包括多片静态随机存取内存,以及所述查找命令处理电路将所述多个查找命令中属于不同片静态随机存取内存的多个查找命令群聚于所述新顺序中的同一个存取批次。
7.一种内存查找方法,其特征在于,所述内存查找方法包括:
接收原始查找命令串,其中所述原始查找命令串包括用以查找内存的多个查找命令;
基于所述内存的存取特性,将所述多个查找命令在所述原始查找命令串中的原始顺序调整为所述多个查找命令在经重排序查找命令串中的新顺序;
提供所述经重排序查找命令串给所述内存;
从所述内存接收所述经重排序查找命令串所对应的查找结果串,其中所述查找结果串包括所述多个查找命令所对应的多个查找结果;以及
基于相关于所述原始顺序与所述新顺序的映射信息,将所述多个查找结果在所述查找结果串中的所述新顺序还原为所述原始顺序。
8.根据权利要求7所述的内存查找方法,还包括:
检查所述原始查找命令串中的所述多个查找命令,以从所述多个查找命令中找出具有相同访问地址的多个目标查找命令;
以所述多个目标查找命令其中一个代表查找命令取代在所述经重排序查找命令串的所述多个查找命令中的所述多个目标查找命令;
将所述多个目标查找命令与所述代表查找命令之间的关系记录于所述映射信息;以及
基于所述映射信息,将在所述查找结果串中所述代表查找命令所对应的查找结果还原为所述多个目标查找命令所对应的多个查找结果。
9.根据权利要求7所述的内存查找方法,其特征在于,所述存取特性包括“当所述内存的目标地址被存取时所述内存打开包含有所述目标地址的存取地址区间”,以及所述内存查找方法还包括:
将所述多个查找命令中属于同一个访问地址区间的至少一个查找命令群聚于所述新顺序中。
10.根据权利要求7所述的内存查找方法,其特征在于,所述内存包括动态随机存取内存,以及所述内存查找方法还包括:
基于所述动态随机存取内存的页尺寸,将所述动态随机存取内存的寻址空间分为多个存取地址区间;以及
将所述多个查找命令中属于同一个访问地址区间的至少一个查找命令群聚于所述新顺序中。
11.根据权利要求7所述的内存查找方法,其特征在于,所述存取特性包括“独立存取的多片内存”,以及所述内存查找方法还包括:
将所述多个查找命令中属于不同片内存的多个查找命令群聚于所述新顺序中的同一个存取批次。
12.根据权利要求7所述的内存查找方法,其特征在于,所述内存包括多片静态随机存取内存,以及所述内存查找方法还包括:
将所述多个查找命令中属于不同片静态随机存取内存的多个查找命令群聚于所述新顺序中的同一个存取批次。
CN202211275202.8A 2022-09-13 2022-10-18 内存查找装置及内存查找方法 Pending CN117743196A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW111134570 2022-09-13
TW111134570A TW202411847A (zh) 2022-09-13 記憶體查找裝置及方法

Publications (1)

Publication Number Publication Date
CN117743196A true CN117743196A (zh) 2024-03-22

Family

ID=90142276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211275202.8A Pending CN117743196A (zh) 2022-09-13 2022-10-18 内存查找装置及内存查找方法

Country Status (2)

Country Link
US (1) US20240086312A1 (zh)
CN (1) CN117743196A (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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 昆仑芯(北京)科技有限公司 访问静态随机存取存储器的方法、装置、设备和存储介质

Also Published As

Publication number Publication date
US20240086312A1 (en) 2024-03-14

Similar Documents

Publication Publication Date Title
US11307769B2 (en) Data storage method, apparatus and storage medium
US20150089166A1 (en) Reducing memory accesses for enhanced in-memory parallel operations
EP3133505A1 (en) Clustering storage method and device
JP6880149B2 (ja) スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体
US20060117129A1 (en) High speed DRAM cache architecture
US6954822B2 (en) Techniques to map cache data to memory arrays
KR102319248B1 (ko) 비동기 순방향 캐싱 메모리 시스템 및 방법
US20190361631A1 (en) Storage device, chip and method for controlling storage device
US6754771B2 (en) System for selectively transferring application data between storage devices in a computer system utilizing dynamic memory allocation
WO2018063614A1 (en) Using compression to increase capacity of a memory-side cache with large block size
US11763899B2 (en) Balanced three-level read disturb management in a memory device
CN117743196A (zh) 内存查找装置及内存查找方法
CN115408311A (zh) 微处理器中的控制器及其进行的方法
TW202411847A (zh) 記憶體查找裝置及方法
US11362672B2 (en) Inline decompression
US11210215B2 (en) Computing device and operation method thereof
US7657725B2 (en) Integrated circuit with memory-less page table
US20230026824A1 (en) Memory system for accelerating graph neural network processing
CN111880726B (zh) 一种提升cnfet缓存性能的方法
TWI775034B (zh) 計算裝置及其操作方法
US11086852B2 (en) Hardware-assisted multi-table database with shared memory footprint
WO2020237409A1 (en) Technologies for memory-efficient key-value lookup
TW202305616A (zh) 用於二進制搜尋的方法和系統
CN117786293A (zh) 矩阵装置及其操作方法
CN116257465A (zh) 寻址方法、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination