CN114518841A - 存储器中处理器和使用存储器中处理器输出指令的方法 - Google Patents

存储器中处理器和使用存储器中处理器输出指令的方法 Download PDF

Info

Publication number
CN114518841A
CN114518841A CN202110755759.0A CN202110755759A CN114518841A CN 114518841 A CN114518841 A CN 114518841A CN 202110755759 A CN202110755759 A CN 202110755759A CN 114518841 A CN114518841 A CN 114518841A
Authority
CN
China
Prior art keywords
instruction
memory
processor
instructions
information
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
CN202110755759.0A
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN114518841A publication Critical patent/CN114518841A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

公开了一种存储器中处理器和使用存储器中处理器输出指令的方法。存储器中处理器包括内部处理器、存储器和被配置为存储指令元信息的寄存器。存储器被配置为:存储通过预测未来指令而生成的查找表。外部处理器被配置为:响应于包括指令元信息的存储器中处理(PIM)应用编程接口(API)调用指令,从查找表检索与指令元信息对应的指令。基于检索结果输出与指令元信息对应的指令。

Description

存储器中处理器和使用存储器中处理器输出指令的方法
本申请要求于2020年11月18日在韩国知识产权局提交的第10-2020-0154790号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
以下描述涉及存储器中处理(processing-in-memory,PIM),更具体地,涉及用于从PIM输出指令的技术。
背景技术
在被称为冯诺依曼架构的标准模型中,数据被存储在存储器中。存储器与处理器分离,并且数据在它们之间移动。在这种结构中,由于频繁的数据移动而发生不可避免的延迟。尽管随着处理器速度的增加,存储器已经被改进,但是所述改进不是在传输速率方面,而主要是在更小空间中存储更多数据的能力方面。当将数据从存储器获取到处理器所需的等待时间增加时,处理器的速度可能限于瓶颈处的传输速率。因此,在标准计算机架构中可能发生吞吐量由于等待时间而受到限制的冯诺依曼瓶颈(von Neumann bottleneck)。为了解决这个瓶颈,存储器中处理提出了一种用于在单芯片存储器中执行操作的结构。
发明内容
提供本发明内容以便以简化的形式介绍将在下面的具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种存储器中处理(PIM)包括:内部处理器、存储器和被配置为存储指令元信息的寄存器,其中,存储器被配置为存储通过预测未来指令而生成的查找表,响应于包括指令元信息的PIM应用编程接口(API)调用指令,与指令元信息对应的指令由外部处理器从查找表检索,基于检索结果,与指令元信息对应的指令由外部处理器输出,并且内部处理器被配置为:使用输出的指令。
查找表可由内部处理器或外部处理器通过基于过去指令的日志来预测未来指令而生成。
在与指令元信息对应的指令被检索到的情况下,检索到的指令可由外部处理器输出。
在与指令元信息对应的指令没有被检索到的情况下,与指令元信息对应的指令可由外部处理器生成并输出。
在与指令元信息对应的指令没有被检索到的情况下,与指令元信息对应的指令可由外部处理器存储在查找表中。
在另一总体方面,PIM包括内部处理器、存储器和被配置为存储指令元信息的寄存器,其中,响应于包括指令元信息的PIM API调用指令,与指令元信息对应的指令由外部处理器生成,生成的指令由外部处理器存储在查找表中,生成的指令由外部处理器输出,并且内部处理器被配置为:使用输出的指令。
响应于下一PIM API调用指令,与下一PIM API调用指令对应的指令可由外部处理器从查找表检索,并且基于检索结果,与下一PIM API调用指令对应的指令可由外部处理器输出。
在又一总体方面,一种从包括内部处理器、存储器和寄存器的PIM输出指令的方法包括:通过预测未来指令来生成查找表,并将查找表存储在存储器中;将指令元信息存储在寄存器中;响应于包括指令元信息的PIM应用编程接口(API)调用指令,从查找表检索与指令元信息对应的指令;基于检索结果输出与指令元信息对应的指令;以及由内部处理器使用输出的指令。
生成查找表的步骤可包括:由内部处理器或外部处理器通过基于过去指令的日志预测未来指令来生成查找表。
输出指令的步骤可包括:在检索到与指令元信息对应的指令的情况下,输出检索到的指令。
输出指令的步骤可包括:在没有检索到与指令元信息对应的指令的情况下,生成与指令元信息对应的指令,并输出生成的指令。
输出指令的步骤可包括:在没有检索到与指令元信息对应的指令的情况下,将与指令元信息对应的指令存储在查找表中。
在进一步的总体方面,一种从包括内部处理器、存储器和寄存器的PIM输出指令的方法包括:将指令元信息存储在寄存器中;响应于包括指令元信息的PIM API调用指令,生成与指令元信息对应的指令;将生成的指令存储在查找表中;输出生成的指令;以及由内部处理器使用输出的指令。
所述方法还可包括:响应于下一PIM API调用指令,从查找表检索与下一PIM API调用指令对应的指令,并且基于检索结果输出与下一PIM API调用指令的指令。
生成查找表的步骤可由内部处理器或外部处理器执行。
所述生成的步骤、存储的步骤、检索的步骤和输出的步骤可由外部处理器执行。
在又一总体方面,一种非暂时性计算机可读存储介质可存储指令,所述指令在由处理器执行时,使处理器执行所述方法。
从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
图1示出通过存储器中处理(PIM)访问存储器的示例。
图2示出PIM的整体配置的示例。
图3示出指令输出方法的整体操作的示例。
图4示出指令输出方法的示例。
图5示出指令输出方法的示例。
图6示出指令输出方法的整体操作的示例。
图7示出指令输出方法的示例。
贯穿附图和具体实施方式,除非另有描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
在下文中,将参照附图详细描述示例。然而,可对示例进行各种改变和修改。这里,示例不被解释为限于公开。示例应被理解为包括在本公开的构思和技术范围内的所有改变、等同物和替换。
在此使用的术语仅用于描述特定示例的目的,而不应是对示例的限制。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,术语“包含”和/或“包含/包含”当在此被使用时,说明存在陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与示例所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则术语(诸如在通用词典中定义的那些术语)应当被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不以理想化或过于形式化的含义进行解释。
当参照附图描述示例时,相同的参考标号表示相同的组成元件,并且与其相关的重复描述将被省略。在示例的描述中,当认为公知的相关结构或功能的详细描述将导致对本公开的模糊解释时,将省略这样的描述。
此外,在组件的描述中,当描述本公开的组件时,可此使用诸如第一、第二、A、B、(a)、(b)等的术语。这些术语仅用于将一个组成元件与另一组成元件区分开,并且组成元件的性质、次序或顺序不受这些术语的限制。当一个组成元件被描述为“连接”、“结合”或“附接”到另一组成元件时,应当理解,所述一个组成元件可直接连接或附接到所述另一组成元件,并且中间组成元件也可“连接”、“结合”或“附接”到组成元件。
可使用相同的名称来描述包括在上述示例中的元件和具有共同功能的元件。除非另有说明,否则对示例的描述可适用于以下示例,因此,为了简明起见,将省略重复的描述。
图1示出通过存储器中处理(processing-in-memory,PIM)访问存储器的示例。
PIM表示处理器和存储器集成在单个芯片上的半导体。存储器可包括随机存取存储器(RAM)。PIM可被称为存储器中处理器(processor-in-memory)、存储器内处理(in-memory processing)、存储器内处理器(in-memory processor)、存储器中计算(computing-in-memory)、存储器内计算机(in-memory computer)等。
需要对PIM唯一的指令来执行PIM中的操作。这样的指令可被称为PIM指令、PIM启用指令或存储器命令。
在PIM中使用的PIM指令可通过外部主机被访问。为了访问指令,可改变外部主机,或者可改变主机与存储器之间的接口。然而,当使用现有的存储器命令时,产生将高级指令转换为存储器命令的开销。在迭代地执行操作的***中,每次执行操作时都需要生成PIM指令。例如,为了用PIM指令替换深度神经网络的长短期记忆(LSTM)操作,需要生成一定数量的相同的PIM指令,其中,该数量等于(层数×步骤数)。
PIM可预先生成指令。PIM可基于操作的大小、操作的类型和硬件信息预先生成期望的指令,并将生成的指令高速缓存在查找表中。此后,PIM可响应于应用编程接口(API)调用指令而从查找表检索指令。
参照图1,用户应用112可接收用户输入111。用户应用112可调用PIM软件栈113。在操作119中,PIM软件栈113可生成与用户输入111对应的指令以执行PIM中的存储器操作。当用户应用112调用PIM支持的操作时,PIM软件栈113可生成对应的PIM指令。此后,在操作116中,可通过操作***114和硬件架构115来执行期望的操作。
PIM软件栈113可执行存储器内操作。PIM可基于指令元信息预先生成与指令元信息对应的指令,并将生成的指令存储在查找表中,指令元信息指示关于操作的信息。指令元信息可包括操作的类型、操作的大小和硬件信息。
在操作117中,PIM可获得指令元信息。在操作118中,PIM可参考存储有指令的查找表。在操作119中,PIM可搜索查找表并输出与指令元信息对应的指令,或者可生成不在查找表中的指令。当相同的操作被调用时,PIM可在查找表中搜索指令,如果存在则使用该指令,如果不存在则生成新指令。由此,可减少每次调用操作时生成指令的开销。
如果可以从用户应用112获得指令的统计信息,则可在运行时之前预先生成查找表,由此可减少运行时引起的开销。PIM可统计地分析指令的日志信息。PIM可基于分析结果预测未来指令,并预先将预测的指令存储在查找表中。此后,PIM可响应于API调用指令而从查找表检索指令。
每次调用新指令时,PIM可使用该指令更新查找表。例如,PIM可将所有新指令存储在查找表中。作为另一示例,PIM可基于调用的次数添加或删除新指令。
PIM可应用于使用PIM的***的编译器或算法。PIM可用于神经网络中的处理。PIM可用于各种应用领域(诸如,自然语言处理(NLP)、图像识别、语音识别和使用深度神经网络的时间序列预测)。
图2示出PIM的整体配置的示例。
参照图2,PIM 200可通过在运行时的执行之前预先分析指令,来生成查找表。PIM200可基于操作的大小、操作的类型和硬件信息预先生成期望的指令,并将生成的指令高速缓存在查找表中。为此,PIM 200包括存储器210、内部处理器220和寄存器230。寄存器230可存储指令元信息。存储器210可存储通过预测未来指令而生成的查找表211。
主机240(例如,外部处理器)可响应于调用指令而从查找表检索指令。主机240响应于包括指令元信息的PIM API调用指令,从查找表检索与指令元信息对应的指令。主机240基于检索结果输出与指令元信息对应的指令。内部处理器220可使用输出的指令。
可由内部处理器220或主机240通过基于过去指令的日志预测未来指令,而生成查找表211。对过去指令的日志进行统计分析,并且可基于分析结果以指令的高调用频率的顺序生成查找表211。查找表211可包括基于用户应用中设置的规范而预先确定的指令。
当从查找表211检索到与指令元信息对应的指令时,主机240可输出检索到的指令。内部处理器220可使用输出的指令。由于仅执行搜索和访问查找表211的操作,因此可省略基于指令的元信息计算对应指令的访问地址的处理,并且可减少每次执行计算的开销。
当从查找表211没有检索到与指令元信息对应的指令时,主机240可生成与指令元信息对应的指令并输出生成的指令。内部处理器220可使用输出的指令。
当没有检索到与指令元信息对应的指令时,主机240可生成与指令元信息对应的指令,并将生成的指令存储在查找表211中。主机240可生成没有被检索到的指令,并且使用生成的指令来更新查找表211。此后,当相同的指令被调用时,可通过搜索查找表211来减少开销。
在另一示例中,PIM 200可将在运行时执行期间生成的指令存储在查找表211中,而不是预先准备查找表211。为此,PIM 200包括存储器210、内部处理器220和寄存器230。寄存器230可存储指令元信息。
主机240(例如,外部处理器)响应于包括指令元信息的PIM API调用指令而生成与指令元信息对应的指令。主机240生成查找表211以存储生成的指令。主机240输出生成的指令。
主机240将生成的指令存储在查找表211中。主机240可响应于下一PIM API调用指令而从查找表211检索与下一PIM API调用指令对应的指令。主机240可基于检索结果输出与下一PIM API调用指令对应的指令。当相同的指令被调用时,可通过搜索查找表211来减少开销。内部处理器220可使用输出的指令。
图3示出指令输出方法的整体操作的示例。
参照图3,在操作301中,外部处理器通过预测未来指令来生成查找表,并将查找表存储在存储器中。内部处理器或外部处理器可通过基于过去指令的日志预测未来指令来生成查找表。查找表可存储基于用户应用中设置的规范而预先确定的指令。
在操作303中,将指令元信息存储在寄存器中。指令元信息可包括操作的类型、操作的大小和硬件信息。指令元信息可预先存储在寄存器中或者从外部接收。
在操作305中,外部处理器响应于包括指令元信息的PIM API调用指令,从查找表检索与指令元信息对应的指令。
在操作307中,外部处理器基于检索结果输出与指令元信息对应的指令。当检索到与指令元信息对应的指令时,外部处理器可输出检索到的指令。当没有检索到与指令元信息对应的指令时,外部处理器可生成与指令元信息对应的指令并输出生成的指令。内部处理器可在操作309中使用输出的指令。
当没有检索到与指令元信息对应的指令时,外部处理器可将与指令元信息对应的指令存储在查找表中。此后,每当相同的操作被调用时,可减少生成指令的开销。
图4示出指令输出方法的示例。
在操作401中,PIM可预测未来将使用的指令。可由内部处理器或外部处理器基于过去指令的日志来预测未来指令。
在操作402中,PIM可基于预测结果生成查找表。PIM可基于操作的大小、操作的类型和硬件信息预先生成期望的指令,并将生成的指令高速缓存在查找表中。
在操作403中,用户应用可调用PIM API。当用户应用调用PIM支持的操作时,PIM输出相应的指令。为此,PIM首先搜索查找表并仅在必要时基于指令元信息计算指令的访问信息。
在操作404中,PIM可从查找表检索指令。PIM可检索与指令元信息对应的指令,并输出存储有指令的存储器地址。是否执行操作405可取决于检索结果。
如果没有检索到指令,则PIM可在操作405中生成指令。PIM可基于指令元信息计算存储有指令的存储器地址。
在操作406中,PIM可输出指令。当从查找表检索到指令时,PIM可输出检索到的指令。当从查找表没有检索到指令时,PIM可通过由其自身根据指令元信息计算的指令访问信息来输出指令。
图5示出指令输出方法的示例。
在操作501中,PIM可预测未来将使用的指令。可由内部处理器或外部处理器基于过去指令的日志来预测未来指令。
在操作502中,PIM可基于预测结果生成查找表。PIM可基于操作的大小、操作的类型和硬件信息预先生成期望的指令,并将生成的指令高速缓存在查找表中。
在操作503中,用户应用可调用PIM API。当用户应用调用PIM支持的操作时,PIM输出相应的指令。为此,PIM首先搜索查找表并仅在必要时基于指令元信息计算指令的访问信息。
在操作504中,PIM可从查找表检索指令。PIM可检索与指令元信息对应的指令,并输出存储有指令的存储器地址。是否执行操作505可取决于检索结果。
如果没有检索到指令,则PIM可在操作505中生成指令。PIM可基于指令元信息计算存储有指令的存储器地址。
在操作506中,PIM可输出指令。当从查找表检索到指令时,PIM可输出检索到的指令。当从查找表没有检索到指令时,PIM可通过由其自身根据从指令元信息计算的指令访问信息来输出指令。
在操作507中,PIM可基于新生成的指令更新查找表。此后,当相同的指令被调用时,可通过搜索查找表来减少开销。
图6示出指令输出方法的整体操作的示例。
PIM可将在运行时执行期间生成的指令存储在查找表中,而不是预先准备查找表。
在操作601中,PIM可将指令元信息存储在寄存器中。指令元信息可包括操作的类型、操作的大小和硬件信息。指令元信息可预先存储在寄存器中或者从外部接收。
在操作603中,PIM可响应于包括指令元信息的PIM API调用指令而生成与指令元信息对应的指令。PIM可基于指令元信息计算指令的访问信息。
在操作605中,PIM可将生成的指令存储于在存储器中存储的查找表中。PIM可基于新生成的指令更新查找表。
在操作607中,PIM可输出生成的指令。
在操作609中,PIM可使用生成的指令。
此后,当相同的指令被调用时,PIM可搜索查找表,从而减少开销。PIM可响应于下一PIM API调用指令而从查找表检索与下一PIM API调用指令对应的指令。PIM可基于检索结果输出于下一PIM API调用指令对应的指令。
图7示出指令输出方法的示例。
在操作703中,用户应用可调用PIM API。当用户应用调用PIM支持的操作时,PIM输出相应的指令。为此,PIM首先搜索查找表并仅在必要时基于指令元信息计算指令的访问信息。
在操作704中,PIM可从查找表检索指令。PIM可检索与指令元信息对应的指令,并输出存储有指令的存储器地址。是否执行操作705可取决于检索结果。
如果没有检索到指令,则PIM可在操作705中生成指令。PIM可基于指令元信息计算存储有指令的存储器地址。
在操作707中,PIM可基于新生成的指令更新查找表。PIM可将生成的指令存储在查找表中。
在操作706中,PIM可输出指令。当从查找表检索到指令时,PIM可输出检索到的指令。当从查找表没有检索到指令时,PIM可通过由其自身根据指令元信息计算的指令访问信息来输出指令。
根据上述示例的方法可被记录在非暂时性计算机可读介质中,该非暂时性计算机可读介质包括用于实现上述示例的各种操作的程序指令。介质还可单独地或与程序指令组合地包括数据文件、数据结构等。记录在介质上的程序指令可以是为了示例的目的而专门设计和构造的程序指令,或者它们可以是计算机软件领域的技术人员公知和可用的类型。非暂时性计算机可读介质的示例包括:磁介质(诸如,硬盘、软盘和磁带);光学介质(诸如,CD-ROM盘、DVD和/或蓝光盘);磁光介质(诸如,光盘);以及专门被配置为存储并执行程序指令的硬件装置(诸如,只读存储器(ROM)、随机存取存储器(RAM)、闪存(例如,USB闪存驱动器、存储器卡、记忆棒等))。程序指令的示例包括诸如由编译器生成的机器代码和包含可由计算机使用解释器执行的高级代码两者的文件。上述装置可被配置为用作一个或多个软件模块,以便执行上述示例的操作,反之亦然。
软件可包括计算机程序、一段代码、指令或它们的一些组合,以独立地或统一地指示或配置处理装置如所期望的进行操作。软件和数据可永久地或临时地实现在任何类型的机器、组件、物理设备或虚拟设备、计算机存储介质或装置中,或者实现在能够向处理装置提供指令或数据或由处理装置解释的传播信号波中。软件还可分布在联网的计算机***上,使得软件以分布式方式存储和执行。软件和数据可由一个或多个非暂时性计算机可读记录介质存储。
上面已经描述了多个示例。然而,应当理解,可对这些示例进行各种修改。例如,如果描述的技术以不同的顺序执行和/或如果描述的***、架构、装置或电路中的组件以不同的方式组合和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。
因此,其他实施方式在所附权利要求的范围内。

Claims (16)

1.一种存储器中处理器,包括:
内部处理器;
存储器;以及
寄存器,被配置为存储指令元信息,
其中,存储器被配置为:存储通过预测未来指令而生成的查找表,
响应于包括指令元信息的存储器中处理应用编程接口调用指令,与指令元信息对应的指令由外部处理器从查找表检索,
基于检索结果,与指令元信息对应的指令由外部处理器输出,并且
内部处理器被配置为:使用输出的指令。
2.根据权利要求1所述的存储器中处理器,其中,查找表由内部处理器或外部处理器通过基于过去指令的日志来预测未来指令而生成。
3.根据权利要求1所述的存储器中处理器,其中,在与指令元信息对应的指令被检索到的情况下,检索到的指令由外部处理器输出。
4.根据权利要求1所述的存储器中处理器,其中,在与指令元信息对应的指令没有被检索到的情况下,与指令元信息对应的指令由外部处理器生成并输出。
5.根据权利要求1至权利要求4中任意一项所述的存储器中处理器,其中,在与指令元信息对应的指令没有被检索到的情况下,与指令元信息对应的指令由外部处理器生成,并由外部处理器存储在查找表中。
6.一种存储器中处理器,包括:
内部处理器;
存储器;以及
寄存器,被配置为存储指令元信息,
其中,响应于包括指令元信息的存储器中处理应用编程接口调用指令,与指令元信息对应的指令由外部处理器生成,
生成的指令由外部处理器存储在查找表中,并且生成的指令由外部处理器输出,并且
内部处理器被配置为:使用输出的指令。
7.根据权利要求6所述的存储器中处理器,其中,
响应于下一存储器中处理应用编程接口调用指令,与下一存储器中处理应用编程接口调用指令对应的指令由外部处理器从查找表检索,并且
基于检索结果,与下一存储器中处理应用编程接口调用指令对应的指令由外部处理器输出。
8.一种使用存储器中处理器输出指令的方法,所述存储器中处理器包括内部处理器、存储器和寄存器,所述方法包括:
通过预测未来指令来生成查找表并将查找表存储在存储器中;
将指令元信息存储在寄存器中;
响应于包括指令元信息的存储器中处理应用编程接口调用指令,从查找表检索与指令元信息对应的指令;
基于检索结果输出与指令元信息对应的指令;以及
由内部处理器使用输出的指令。
9.根据权利要求8所述的方法,其中,生成查找表的步骤包括:通过基于过去指令的日志预测未来指令来生成查找表。
10.根据权利要求9所述的方法,其中,生成查找表的步骤由内部处理器执行。
11.根据权利要求9所述的方法,其中,生成查找表的步骤由外部处理器执行。
12.根据权利要求8至权利要求11中任意一项所述的方法,其中,输出指令的步骤包括:在检索到与指令元信息对应的指令的情况下,输出检索到的指令。
13.根据权利要求8至权利要求11中任意一项所述的方法,其中,输出指令的步骤包括:在没有检索到与指令元信息对应的指令的情况下,生成与指令元信息对应的指令,并且输出生成的指令。
14.根据权利要求8至权利要求11中任意一项所述的方法,其中,输出指令的步骤包括:在没有检索到与指令元信息对应的指令的情况下,生成与指令元信息对应的指令,并将与指令元信息对应的指令存储在查找表中。
15.根据权利要求8所述的方法,其中,所述生成的步骤、存储的步骤、检索的步骤和输出的步骤由外部处理器执行。
16.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,使处理器执行根据权利要求8至权利要求15中的任意一项所述的方法。
CN202110755759.0A 2020-11-18 2021-07-05 存储器中处理器和使用存储器中处理器输出指令的方法 Pending CN114518841A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0154790 2020-11-18
KR1020200154790A KR20220067961A (ko) 2020-11-18 2020-11-18 프로세싱-인-메모리 및 프로세싱-인-메모리를 이용한 인스트럭션 출력 방법

Publications (1)

Publication Number Publication Date
CN114518841A true CN114518841A (zh) 2022-05-20

Family

ID=81587674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110755759.0A Pending CN114518841A (zh) 2020-11-18 2021-07-05 存储器中处理器和使用存储器中处理器输出指令的方法

Country Status (3)

Country Link
US (1) US20220156081A1 (zh)
KR (1) KR20220067961A (zh)
CN (1) CN114518841A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11921634B2 (en) * 2021-12-28 2024-03-05 Advanced Micro Devices, Inc. Leveraging processing-in-memory (PIM) resources to expedite non-PIM instructions executed on a host

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223254B1 (en) * 1998-12-04 2001-04-24 Stmicroelectronics, Inc. Parcel cache
US8805672B2 (en) * 2011-06-30 2014-08-12 International Business Machines Corporation Translation cache prediction
US9836277B2 (en) * 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
US10346092B2 (en) * 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10908820B2 (en) * 2017-09-14 2021-02-02 Samsung Electronics Co., Ltd. Host-based and client-based command scheduling in large bandwidth memory systems
US10628354B2 (en) * 2017-12-11 2020-04-21 Micron Technology, Inc. Translation system for finer grain memory architectures
KR20200129843A (ko) * 2019-05-10 2020-11-18 에스케이하이닉스 주식회사 연산 회로를 포함하는 메모리 장치, 이를 제어하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11237907B2 (en) * 2020-05-29 2022-02-01 Taiwan Semiconductor Manufacturing Company, Ltd. Processing-in-memory instruction set with homomorphic error correction

Also Published As

Publication number Publication date
KR20220067961A (ko) 2022-05-25
US20220156081A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
CN109308192B (zh) 用于执行存储器压缩的***和方法
US11163828B2 (en) Building and querying hash tables on processors
KR101648235B1 (ko) 정합-데이터 보고 모듈을 갖는 패턴 인식 프로세서
US10114908B2 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
CN107608750B (zh) 用于型式辨识的装置
CN107038206B (zh) Lsm树的建立方法、lsm树的数据读取方法和服务器
US10826980B2 (en) Command process load balancing system
KR100875836B1 (ko) 병렬 처리 vliw 컴퓨터를 위한 인스트럭션 명령어 압축장치 및 그 방법
US10169239B2 (en) Managing a prefetch queue based on priority indications of prefetch requests
US10678481B2 (en) Adaptive caching and dynamic delay scheduling for in-memory data analytics
CN108431831A (zh) 循环代码处理器优化
US9946512B2 (en) Adaptive radix external in-place radix sort
CN114518841A (zh) 存储器中处理器和使用存储器中处理器输出指令的方法
KR101945117B1 (ko) 스마트 디바이스 및 그 메모리 관리 방법
US10380111B2 (en) System and method for searching data
US20100199067A1 (en) Split Vector Loads and Stores with Stride Separated Words
JPH0820951B2 (ja) プロセッサの動作速度を速める方法
US20120017070A1 (en) Compile system, compile method, and storage medium storing compile program
US20190286718A1 (en) Data structure with rotating bloom filters
CN112328630B (zh) 数据查询方法、装置、设备及存储介质
US8701119B1 (en) Parsing XML in software on CPU with multiple execution units
JP2023503034A (ja) パターンベースのキャッシュブロック圧縮
KR20230015993A (ko) 병합된 분기 타겟 버퍼 엔트리
CN110489425A (zh) 一种数据访问方法、装置、设备及存储介质
US10740098B2 (en) Aligning most significant bits of different sized elements in comparison result vectors

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