CN103810111A - 有源存储器件中的地址生成的方法及其处理元件 - Google Patents

有源存储器件中的地址生成的方法及其处理元件 Download PDF

Info

Publication number
CN103810111A
CN103810111A CN201310552079.4A CN201310552079A CN103810111A CN 103810111 A CN103810111 A CN 103810111A CN 201310552079 A CN201310552079 A CN 201310552079A CN 103810111 A CN103810111 A CN 103810111A
Authority
CN
China
Prior art keywords
register file
address
vector
value
address value
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.)
Granted
Application number
CN201310552079.4A
Other languages
English (en)
Other versions
CN103810111B (zh
Inventor
B.M.弗莱舍
T.W.福克斯
H.M.雅各布森
R.奈尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103810111A publication Critical patent/CN103810111A/zh
Application granted granted Critical
Publication of CN103810111B publication Critical patent/CN103810111B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/785Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) with decentralized control, e.g. smart memories
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Abstract

实施例涉及包括存储器和处理元件的有源存储器件中的地址生成。一个方面包括有源存储器件中的地址生成的方法及其处理元件。该方法包括从处理元件的寄存器文件组中读取基地址值和偏移地址值。该处理元件根据基地址值和偏移地址值确定虚拟地址。该处理元件将虚拟地址转换成物理地址并根据物理地址访问存储器中的位置。

Description

有源存储器件中的地址生成的方法及其处理元件
技术领域
本发明一般涉及计算机存储器,尤其涉及有源存储器件中的地址生成。 
背景技术
当计算机上电并可工作时,计算机系统常常需要相当数量的像随机访问存储器(RAM)那样的高速存储器来保持像数据和程序那样的信息。随着计算机系统的性能不断提高和越来越复杂,存储器件需求也持续增长。 
在典型主存储器应用中,主处理器指定地址,并且请求读取存储器的内容或请求将存储位置用主处理器指定的一些其他内容重写。从主处理器到存储器件上的位置的通信可能牵涉到相对长的数据访问时间和延迟。主处理器访问存储器所花费的时间可以是例如几百个周期,包括识别数据不在高速缓存中(用于存储器读取)的时间、从主处理器的处理器核心跨过模块或其他插件(packaging)横穿到I/O的时间、建立到多处理器/共享存储器系统中的存储器的通道的仲裁时间、和让数据进入存储单元中或从存储单元中出来的时间。 
发明内容
各示范性实施例包括在包括存储器和处理元件的有源存储器件中的地址生成的方法。该方法包括从处理元件的寄存器文件组中读取基地址值和偏移地址值。该处理元件根据基地址值和偏移地址值确定虚拟地址。该处理元件将虚拟地址转换成物理地址并根据物理地址访问存储器中的位置。 
另外的示范性实施例包括有源存储器件的处理元件。该处理元件包括:包括一个或多个寄存器文件的寄存器文件组和与该寄存器文件组耦合的地址生成逻辑。该地址生成逻辑被配置成从寄存器文件组中读取基地址值和偏移地址值。该地址生成逻辑被进一步配置成根据基地址值和偏移地址值确定虚拟地址。该地址生成逻辑将虚拟地址转换成物理地址,并输出物理地址以便通过该处理元件访问有源存储器件的存储器中的位置。 
进一步的示范性实施例包括有源存储器件。该有源存储器件包括存储器和处理元件。该处理元件包括寄存器文件组和与该寄存器文件组耦合的地址生成逻辑。该地址生成逻辑被配置成执行包括从寄存器文件组中读取基地址值和偏移地址值的方法。该地址生成逻辑被进一步配置成根据基地址值和偏移地址值确定虚拟地址。该地址生成逻辑将虚拟地址转换成物理地址,并输出物理地址以便访问存储器中的位置。 
另外的特征和优点通过本发明的技术来实现。本发明的其他实施例和方面将在本文中得到详细描述,并被认为是要求保护的发明的一部分。为了更好地理解本发明及其优点和特征,请参照如下描述和附图。 
附图说明
作为本说明书的结论,在权利要求书中具体指出和明确地要求保护被视为本发明看待的主题内容。本发明的前面和其他特征以及优点,可从结合附图所作的如下详细描述中明显,在附图中: 
图1例示了依照一实施例的有源存储器的系统的方块图; 
图2例示了依照一实施例的含有有源存储器的存储系统的方块图; 
图3例示了依照一实施例的含有有源存储器的存储系统的示意图; 
图4例示了依照一实施例的有源存储器件中的处理元件的方块图; 
图5例示了依照一实施例的有源存储器件的处理元件中的地址生成逻辑的例子;以及 
图6例示了依照一实施例的有源存储器件的处理元件中的地址生成的过程的流程图。 
具体实施方式
一实施例针对有源存储器件的处理元件中的地址生成。该有源存储器件可以是任何适当存储器件,其包括与逻辑部分连接的多个存储元件(例如,芯片)和处理元件。在一实施例中,有源存储器件包括形成三维(“3D”)存储器件(例如,存储器立方)的多层存储器,其中芯片的各个列形成与处理元件和逻辑通信的库(vault)。有源存储器件可以包括配置成与芯片和其他处理元件通信的多个处理元件。在一实施例中,处理元件通过互连网络访问库中的所选地址。另外,互连网络提供有源存储器件上的各处理元件之间以及 各处理元件与主处理器之间的通信路径。每个库可以含有也与互连网络耦合的相关存储器控制器和逻辑单元。 
实施例包括可以将有源存储器件内的多个位置(location)(例如,存储在特定地址上的数据)用作操作数进行一组复杂运算。进一步,提供了在有源存储器件内对这些操作数自主执行指令和运算的过程。具体地说,将指令存储在有源存储器件本身中,并且不由主处理器执行。将存储的指令提供给处理元件以便由有源存储器件中的处理元件处理。在一个实施例中,处理元件是可编程引擎,包括指令缓冲器、具有分支能力和指令解码的指令单元、矢量寄存器文件和标量寄存器文件的混合体、用于存储器和寄存器文件之间的数据移动的多个装载/存储单元、和用于各种数据类型的算术和逻辑处理的多个执行单元。此外,包括在有源存储器件中的是将虚拟地址转换成物理地址的地址转换能力、在存储器与处理元件之间顺序数据移动的统一装载/存储队列、和与主处理器通信的处理器通信单元。 
在一个实施例中,有源存储器件被配置成在从像主处理器或另一个处理元件那样的外部请求器接收到命令之后,将配置信息或指令从有源存储器件的一部分装载到处理元件中。另外,处理元件可以进行在执行所装载指令的同时计算的虚拟到物理地址转换。在一个例子中,当执行装载指令时,有源存储器件从存储位置中取出操作数,并将操作数放置在处理元件中的寄存器中。存储位置的虚拟地址通过装载指令生成,并由处理元件转换成物理地址。类似地,当执行存储指令时,有源存储器件用处理元件中的寄存器的内容(例如,操作数)写存储位置。存储位置的虚拟地址通过存储指令生成,并由处理元件转换成物理地址。 
有源存储器件的处理元件中的实施例还具有通过互连网络在有源存储器件的任何部分中读取或写入操作数的能力。具体地说,处理元件可以使用互连网络访问有源存储器件中的其他库。在一个实施例中,处理元件是成池的,经由互连网络与库联合,其中处理元件在物理上未处在库堆栈中。在一个实施例中,互连网络是像纵横开关那样的耦合设备,配置成将任何处理元件与任何存储器库连接,假设处理元件和存储器库与互连网络连接。在一个实施例中,互连网络可以耦合多个有源存储器件,其中互连网络提供分立设备的处理元件和存储器库之间的通信路径。 
在一个实施例中,处理元件与作为堆栈的一部分的存储器控制器一起包 括。另外,处理元件可以对操作数进行复杂算术和逻辑运算,以及读取和将最终结果写回到存储器中的位置中。有源存储器件可以将单个结束值或信号返还给主处理器以指示在有源存储器件中准备好所希望复杂运算的结果,因此在有源存储器件上进行宽带宽处理和在有源存储器件与主处理器之间使用较窄带宽通信。 
有源存储器件内的处理能力可以减小当通过驻留在单独芯片中的处理器访问存储器时将经历的存储延迟和能耗。取代通过较窄带宽通信路径将数据从存储器带到单独处理芯片,对数据进行往往相当简单的计算,然后将处理后数据传回到存储器,主处理器可以配置有源存储器件内的处理元件,然后指示它们执行数据处理任务。这可以通过将一条或多条命令从主处理器发送到有源存储器件来实现。在这种情形下,无论在必须从存储器行进到数据处理位置的距离上,还是在通过存储器分层结构横穿的高速缓存的级数上,都极大地减少了进行数据处理的位置与存储器之间的数据移动。 
图1例示了依照一个实施例在存储器中存储和检索数据的系统的方块图。描绘在图1中的系统100包括计算机处理器(CPU)102、含有存储器件的存储器106、以及存储器控制器104和接收和处理来自计算机处理器102的数据以便存储在存储器106中的处理元件108。 
存储器控制器104可以与计算机处理器102通信,并且不使用处理元件108的功能地从计算机处理器102接收写请求。写请求包含要写到存储器106中的数据和识别存储器106中将写入数据的位置的物理地址。存储器控制器104将数据存储在存储器106内的物理地址上。计算机处理器102可以在存储或检索数据时将虚拟地址映射成存储器106中的物理地址。 
在一个实施例中,处理元件108与计算机处理器102通信,接收来自计算机处理器102的命令。该命令可以对应于存储在存储器106中的指令。该命令还可以包括识别存储器106中将写入数据的位置的虚拟地址。存储器控制器104和/或处理元件108将数据存储在存储器106中的物理地址上。在一个实施例中,处理元件108在存储或检索数据时将虚拟地址映射成存储器106中的物理地址。如下面进一步详细描述,计算机处理器102将命令提供给存储器106,其中处理元件108接收命令并从存储器106中取出相应指令。系统100是可以用于进行本文所述的处理的配置的一个例子。尽管系统100被描绘成只有单个存储器106、存储器控制器104、处理元件108和计算机处理 器102,但应该明白,其他实施例也可以工作在含有两个或更多个存储器106、存储器控制器104、处理元件108或计算机处理器102的其他系统中。在一个实施例中,存储器106、存储器控制器104、处理元件108和计算机处理器102未处在同一计算机内。例如,存储器106、处理元件108和存储器控制器104可以处在一个物理位置上(例如,在存储模块上),而计算机处理器102处在另一个物理位置上(例如,计算机处理器102经由网络访问存储器控制器104和/或处理元件108)。另外,本文所述的处理的一些部分可以分散在存储器106、存储器控制器104、处理元件108和计算机处理器102的一个或多个上。 
图2是实现有源存储器的计算机系统200的一个实施例的示意图。在一个实施例中,计算机系统200包括有源存储器件202、有源存储器件203和有源存储器件204。有源存储器件202包括存储器库206、存储器控制器208和处理元件210。在一个实施例中,处理元件210、存储器库206和存储器控制器208经由互连网络212耦合和通信。具体地说,处理元件210经由互连网络212与存储器库206、存储器控制器208和像有源存储器件203和204那样的其他存储器件通信。互连网络212还通过处理器链路220和222与主处理器224耦合。互连网络212为像处理元件、存储器控制器和存储器那样的器件部分之间的通信提供快速宽带宽路径,以便为有源存储器提供提高的性能和缩小的延迟。 
有源存储器件203包括存储器库226、存储器控制器228和处理元件230。在一个实施例中,处理元件230、存储器库226和存储器控制器228都处在互连网络212的同一侧上,如在单个堆栈内。通过将处理元件230放置在与存储器库226相同的堆栈中,当访问存储器库226中的位置时缩短了延迟,因此进一步提高了性能。在一个实施例中,有源存储器204包括存储器库214和经由互连网络212与处理元件210和处理元件218耦合的存储器控制器216。如所描绘,处理元件218相对于存储器控制器216和存储器库214处在互连网络212的另一侧上。在实施例中,有源存储器件202、203和204包括多层堆栈式可寻址存储元件。进一步,可以将堆栈式存储器划分成存储器库206、226和214,或存储器件共享公用存储器控制器和/或存储元件、和能够相互无关地将存储器访问请求用于它们的存储域的三维分块区域。 
在实施例中,处理元件、存储器库和存储器控制器可以以取决于应用的 适当方式排列。例如,像处理元件218那样的一个或多个处理元件可以放置在互连网络212的一侧上,可以起适合访问与互连网络212耦合的存储系统中的任何存储器的处理元件池的作用。池式处理元件不局限于访问特定存储器库,因此,一旦从主处理器224接收到命令,就可以利用一个或多个元件。于是,处理元件218可以配置成访问每个存储器库206,226和214。在另一个实施例中,像处理元件230那样的一个或多个处理元件处在包括存储器库226和存储器控制器228的堆栈的一部分上。在这样的配置中,处理元件230被配置成不通过互连网络212地访问存储器库226。处理元件230还与互连网络212耦合,并可以访问存储器库206和214。在一个实施例中,像处理元件210那样的一个或多个处理元件相对于存储器库206和存储器控制器208被放置在互连网络212的另一侧上。在该配置中,处理元件210被配置成访问包括存储器库226和214、与互连网络212耦合的任何存储器。 
在一个实施例中,计算机系统可以包括像有源存储器件202、203和204那样的多个有源存储器件。进一步,每个有源存储器件可以包括多个堆栈,每个堆栈包括存储器库、存储器控制器和相关处理元件。在一个例子中,处理元件的数量可以大于存储器库的数量。在另一个实施例中,存储器件可以包括比存储器库少的处理元件。在实施例中,处理元件是成池的,适合访问系统中的任何存储器。例如,存储器器件可以包括16个存储器库和存储器控制器,但只包括8个处理元件。八个处理元件是成池的,用作访问与互连网络耦合的任何存储器库的资源。在另一个例子中,存储器件可以是无源的,其中该器件由与互连网络耦合的有源存储器件的处理元件控制。 
图3是实现有源存储器的示范性计算机系统300的图形。计算机系统300包括电路板302、主处理器304、有源存储器件306和有源存储器件308。有源存储器件306、有源存储器件308和主处理器304被布置在电路板302上。如所描绘,有源存储器件304一些部分被分解成示出计算机系统300安排的细节。有源存储器件306和308分别经由信号路径324和344与主处理器304通信。如所描绘,有源存储器件306多层安排,其中基层311包括多个存储器控制器310和处理元件312。例如,有源存储器件306包括处在基层311的顶部上的存储器层309。其中每个层309含有多个存储元件。如所描绘,基层311还包括互连网络346以便在器件中的存储器、存储器控制器和处理元件之间实现宽带宽通信。 
在一个实施例中,有源存储器件306包括多个存储器库314。其中每个存储器库314包括来自每个层309的存储元件,其中存储器库314被放置成与存储器控制器310和处理元件312相邻。具体地说,示范性有源存储器件306包括16个存储元件的层,其中元件层形成包括堆栈316的堆栈,其中堆栈316包括布置在存储器控制器318和处理元件320上面的存储器库322。宽带宽通信路径326提供处理元件320与存储器库322内的存储位置之间的宽带宽、直接和长度显著缩短(例如,与路径324,344相比)通信路径,因此减小了存储器访问的延迟和功耗。例如,处理元件320可以接收来自主处理器304的命令,根据该命令装载来自有源存储器件306内部的指令,以及作为所装载指令的一部分,访问存储器库314中的位置的数据和在处理元件320中对数据进行复杂运算。进一步,处理元件320在执行了命令之后还可以将像结果那样的数据存储在存储器库314中,并且将值或信号发送给主处理器304。在一个实施例中,处理元件320将来自处理元件320中的寄存器的数据(例如,操作数)存储或写入到存储器库314中。处理元件320还被配置成作为读取或存储操作的一部分将地址从虚拟转换成真实的。因此,处理元件320提供指令装载、地址转换、复杂运算和存储器本地的其他任务,以缩短延迟,节省电力和腾出主处理器304来执行其他任务。 
类似地,有源存储器件308包括布置在基层331上的多个存储器控制器328和处理元件330。在一个实施例中,有源存储器308处在基层331的顶部上的存储器件层329,其中每个层329含有多个存储器件。基层331还包括互连网络346以便在器件中的存储器和处理元件之间实现宽带宽通信。在一个实施例中,有源存储器件306和有源存储器件308的互连网络346被耦合成允许在单独设备上的处理元件和存储器之间通信。 
在一个实施例中,有源存储器件308包括多个存储器库332。其中每个存储器库332包括来自每个层309的存储元件,其中存储器库332被放置成与存储器控制器328和处理元件330相邻。示范性有源存储器件308包括包括堆栈334的16个堆栈,其中堆栈334包括布置在存储器控制器340和处理元件338上面的存储器库326。宽带宽通信路径342提供处理元件330与存储器库336内的存储位置之间的通信。 
图4描绘了与互连网络402耦合的处理元件400的一个例子作为图1-3的处理元件之一的实施例。处理元件400是位于像图1-3的有源存储器件之 一那样的有源存储器件中的可编程矢量处理元件。在图4的例子中,处理元件400包括与互连网络402和指令缓冲器406耦合的装载-存储队列(LSQ)404。指令缓冲器406还与道路控制单元(LCU)408和解码器410耦合。处理器通信单元(PCU)412通过互连网络402提供处理元件40与主处理器或其他处理元件之间的通信接口。LSQ404还与矢量计算寄存器文件(VCR)414和标量计算寄存器文件(SCR)416耦合。VCR414和SCR416通过多个多路复用器与算术逻辑单元(ALU)418和也称为装载-存储单元(LSU)420的存储器访问单元420耦合。ALU418通过多路复用器与自身和与LSU420耦合,并且还与VCR414和SCR416耦合。LSU420也可以与自身,与LSQ401,与用于虚拟到物理地址转换的有关到真实地址转换单元(ERAT)422,与VCR414以及与SCR416耦合(所有连接都未描绘出来)。ERAT422还与LSQ404耦合,应该懂得,在处理元件400中可以包括许多其他连线和元件。例如,为了清楚起见,未描绘出解码器410与其他元件之间的连线。另外,像解码器410与PCU412之间的所描绘连线那样,可以修改或省略图4中所描绘的连线。 
处理元件400支持包括对许多数据类型的大范围算术能力的指令集架构。处理元件400的矢量处理能力为时间下的单指令多数据(SIMD)提供保证,同时也支持空间维度下的SIMD。指令缓冲器406保持须经分支、按次序取出和执行的指令(也称为“道路指令”)。 
在一个实施例中,每条道路指令包含在处理元件400内的各种单元中执行的9条分指令。在道路指令内可以包括迭代计数,使分指令可以重复到预定次数(例如,到32次)。这有助于时间下的SIMD。LCU408可以管理迭代计数和确定前进到下一条指令或重复执行相同指令的时间。在一个实施例中,ALU418的算术管道是64位宽,空间SIMD通过随着多个执行时隙同时地并行执行小于64个位的数据类型的能力来支持。例如,假设道路指令包括9条分指令,分指令的执行可以在用于道路控制的LCU408中以及每一个包括ALU418和LSU420的四个处理位片中。VCR414和SCR416对可以按处理位片实现,可被每对ALU418和LSU420访问。于是,VCR410、SCR416、ALU418、LSU420和相关多路复用器被描绘成四个元件的堆栈以指示图4的例子中的4个处理位片。 
在处理位片级别上,可以在64位矢量元素上以时间SIMD方式以例如 64位粒度,和在可以是32位、16位、或8位宽的较窄矢量分元素上以时间和空间SIMD方式对浮点和定点数据类型进行计算。 
处理元件400内的每个处理位片包括存储器访问管道(装载/存储管道)和算术管道。管理通过作为装载/存储管道的LSU420的流动可以按矢量数据元素或分元素实现一个地址的计算。处理元件400提供进行相关定点有效地址(即,虚拟地址)计算的能力。通过ALU418的算术管道可以包括浮点和定点运算的健壮分类以支持多种工作负载。 
LSU420可以支持,例如,8,4,2和1个字节的装载和存储操作、和压缩数据的4,2和1个字节到寄存器和从寄存器的装载和存储操作。 
ALU418可以支持寄存器文件之间的复制操作、对双精度(64位)的浮点数据类型的算术、四舍五入和转换、比较、和最大和最小操作、和对双字(64位)、单字(32位)、半字(16位)和字节(8位)的定点数据类型的算术、旋转/移位、比较、逻辑、计数前导零、和1填充计数操作。 
在一个实施例中,处理元件400内的处理位片的计算模型是利用VCR414和SCR416的矢量单指令多数据(SIMD)模型。VCR414可以支持多维度的寄存器,而SCR416支持单维度的寄存器。例如,VCR414可以包括具有每一个64位的32个元素的16个矢量项目,而SCR416可以包括具有每一个64位的1个元素的16个寄存器项目。但可以支持许多其他配置。可以使用可变数量的执行时隙,对相等数量的分元素操作,从而在本例中将一起获得的分元素合并成64位的一个寄存器元素(VCR411或SCR416)。执行时隙的数量和矢量分元素的相应数量取决于指令的数据类型。各种格式的数据类型和大小的例子包括:具有双精度(64位)和单精度(32位)的浮点数据类型、和用于双字(64位)、单字(32位)、半字(16位)和字节(8位)的定点数据类型。 
图5例示了依照一个实施例的有源存储器件的处理元件中的地址生成逻辑500的例子。例如,地址生成逻辑500可以代表图4的处理元件400的一部分。在示范性实施例中,地址生成逻辑500与寄存器文件组501耦合。寄存器文件组501可以包括像矢量寄存器文件502和标量寄存器文件504那样的一个或多个寄存器文件。矢量寄存器文件502包括每一个具有多个元素的多个矢量项目。例如,矢量寄存器文件502可以相当于图4的VCR414或它的一部分。标量寄存器文件504包括多个元素,可以相当于图4的SCR416 或它的一部分。 
地址生成逻辑500包括选择到锁存器510和512的输入的多路复用器506和508。在示范性实施例中,多路复用器506接收来自矢量寄存器文件502的多个输入和来自标量寄存器文件504的输入。多路复用器508可以接收来自矢量寄存器文件502和标量寄存器文件504的输入。锁存器510和512的输出端可以与像加法器那样的算术功能514耦合。将算术功能514的输出传递给锁存器516,反馈路径518可以将算术功能514的输出传回到多路复用器506。保持在锁存器510中的值可以被认为是基地址值,而保持在锁存器512中的值可以被认为是偏移地址值。可替代地,保持在锁存器510中的值可以被认为是偏移地址值,而保持在锁存器512中的值可以被认为是基地址值。取决于系统配置,基地址值和偏移地址值最初可以从寄存器文件组501,即,从矢量寄存器文件502或标量寄存器文件504中读取。 
将锁存器516的输出传递给地址转换逻辑520。保持在锁存器516中的值可以被认为是可能需要进一步修改以便变成适合寻址存储器中的位置的物理地址的虚拟地址。地址转换逻辑520可以相当于图4的ERAT422。地址转换逻辑520可以访问转换表524以便根据保持在锁存器516中的虚拟地址进行转换表524的查找。可替代地或另外,地址转换逻辑520可以向保持在锁存器516中的虚拟地址应用像加到进一步的偏移量和移动虚拟地址的位,在输出端522上输出物理地址,以便访问有源存储器件的存储器中的位置那样的算术功能。输出522在到达有源存储器件的存储器件之前可以通过像图4的LSQ40和存储器控制器那样的附加元件。 
可以权衡图4的处理元件400的矢量处理架构和图5的地址生成逻辑500,以便根据利用图4的处理元件400本地,因此在有源存储器件本地执行的单条指令进行多存储器访问。图5的反馈路径518可以使一系列地址根据基地址值和偏移地址值生成。例如,标量寄存器文件504可以包括读取和锁存到锁存器510和512中的基地址值和偏移地址值。图4的处理元件400执行的单条矢量读取(装载)指令可以使基地址值和偏移地址值在算术功能514上顺序相加,形成虚拟地址和相应物理地址,在反馈路径518上反馈作为中间和的虚拟地址供随后使用。该一系列地址生成可以持续预定迭代次数,使对存储器中的多个位置的一系列读取的结果返回到矢量寄存器文件502。在多路复用器508的零输入可以作为偏移地址值的初始值用于第一次访问。 
在表1和2中进一步例示了第一矢量读取例子(例子1)。为了易于说明起见,在本例中假设矢量寄存器文件502具有四个元素的矢量长度。这里,有源存储器件中的处理元件执行的单条读取指令从标量寄存器文件504的索引0中读取基地址值,形成相应虚拟和物理地址以便读取有源存储器件中的存储器位置,以及将结果装载到矢量寄存器文件502的寄存器0的索引0中。读取序列作为执行相同读取指令的一部分自动持续下去,在标量寄存器文件504的索引1上读取偏移地址值,将基地址值和偏移地址值相加以形成相应虚拟和物理地址,以便读取有源存储器件中的存储器位置,以及将结果装载到矢量寄存器文件502的寄存器0的索引1中。反馈路径518可以传回作为中间和的基地址值和偏移地址值的和值以便存储在锁存器510中,同时锁存器512保留偏移地址值。读取序列作为执行相同读取指令的一部分自动持续下去,根据基地址值加偏移地址值的两倍(即,基地址值+偏移地址值+偏移地址值)形成虚拟地址和相应物理地址。读取有源存储器件中的相应存储器位置,将结果装载到矢量寄存器文件502的寄存器0的索引2中。使该过程持续预定迭代次数,在本例中该预定迭代次数是矢量寄存器文件502的矢量长度,以便填充所有四个值。预定迭代次数可替代地可以小于矢量寄存器文件502的矢量长度。可以进行类似的写入操作,其中将矢量寄存器文件502中给定矢量寄存器,例如,表2的寄存器0的值用作写入数据,以及根据有源存储器件中的处理元件执行的单条写入指令,以相似方式从标量寄存器文件504中生成地址值。 
标量寄存器文件索引 标量寄存器文件值
0 [基地址值]
1 [偏移地址值]
2 -
3 -
表1–读取例子1的标量寄存器文件 
Figure BDA0000410511570000111
表2–读取例子1的矢量寄存器文件 
在另一个例子中,在表3,4和5中进一步例示了第二矢量读取例子(例子2)。为了易于说明起见,在本例中假设矢量寄存器文件502具有四个元素的矢量长度。这里,有源存储器件中的处理元件执行的单条读取指令从包括四个分立基地址值元素的矢量寄存器文件502的矢量寄存器0中读取作为矢量的基地址值。从标量寄存器文件504中读取偏移地址值,以便通过递增地相加偏移地址值和矢量寄存器文件502的矢量寄存器0的每个元素的基地址值,以及将一系列虚拟地址转换成相应物理地址达预定迭代次数,形成一系列虚拟地址和相应物理地址。如例2的表5所例示,将从有源存储器件中的相应存储位置中读取的值存储到矢量寄存器文件502的矢量寄存器1的顺序元素位置中。可以针对矢量寄存器文件502和标量寄存器文件504以相似方式进行写入操作,导致基于有源存储器件中的处理元件执行的单条写入指令的多次写入。 
标量寄存器文件索引 标量寄存器文件值
0 [偏移地址值]
1 -
2 -
3 -
表3–读取例子2的标量寄存器文件 
Figure BDA0000410511570000121
表4–读取例子2的矢量寄存器文件 
Figure BDA0000410511570000122
表5–读取例子2的矢量寄存器文件 
在另一个例子中,在表6,7,8和9中进一步例示了第三矢量读取例子 (例子3)作为例子2的可替代实施例。使用例子2的相同表格3和4,例子3例示了与表3的偏移地址值结合使用表4的矢量寄存器文件502的矢量寄存器的元素中的一系列基地址值,创建跨过矢量寄存器文件502的矢量寄存器1,2,3和4的读取序列的地址生成序列。可以针对矢量寄存器文件502和标量寄存器文件504以相似方式进行写入操作,导致多次写入。 
Figure BDA0000410511570000131
表6–读取例子3的矢量寄存器文件 
Figure BDA0000410511570000132
表7–读取例子3的矢量寄存器文件 
Figure BDA0000410511570000133
表8–读取例子3的矢量寄存器文件 
Figure BDA0000410511570000134
表9–读取例子3的矢量寄存器文件 
在另一个例子中,在表10,11和12中进一步例示了第四矢量读取例子(例子4)。为了易于说明起见,在本例中假设矢量寄存器文件502具有四个 元素的矢量长度。这里,有源存储器件中的处理元件执行的单条读取指令从包括四个分立基地址值元素的矢量寄存器文件502的矢量寄存器0中读取作为矢量的基地址值。从包括四个分立偏移地址值元素的矢量寄存器1中读取偏移地址值作为矢量。例子4通过矢量寄存器文件502的第一和第二矢量的每个元素矢量相加基地址值(表10)和偏移地址值(表11)顺序生成一系列虚拟地址和相应物理地址,将该一系列虚拟地址转换成相应物理地址以便访问存储器中的多个位置。如例4的表12所例示,将从有源存储器件中的相应存储位置中读取的值存储到矢量寄存器文件502的矢量寄存器1的顺序元素位置中。可以针对矢量寄存器文件502以相似方式进行写入操作,导致基于有源存储器件中的处理元件执行的单条写入指令的多次写入。 
Figure BDA0000410511570000141
表10–读取例子4的矢量寄存器文件 
Figure BDA0000410511570000142
表11–读取例子4的矢量寄存器文件 
Figure BDA0000410511570000143
表12–读取例子4的矢量寄存器文件 
图6是像图1-3的有源存储器件那样的有源存储器件的处理元件中地址生成的过程600。描述在图6中的方块可以由有源存储器件中的图1-4的处理 元件之一执行。例如,该方块可以由有源存储器件中的处理元件执行,其中该处理元件访问存储器的一些部分(例如,与处理元件共享堆栈的存储器库),并对从存储器中读取的数据进行操作。为了说明起见,参考图4的处理元件400和图5的地址生成逻辑500描述处理元件。 
在方块602中,有源存储器件的处理元件400中的地址生成逻辑500从处理元件400的寄存器文件组501中读取基地址值。基地址值在通过多路复用器506之后可以保持在锁存器510中。在方块604中,地址生成逻辑500从处理元件400的寄存器文件组501中读取偏移地址值。偏移地址值可以从矢量寄存器文件502或标量寄存器文件504中读取。在从寄存器文件组501中读取基地址值和偏移地址值之前,可以从与处理元件400通信的主处理器接收基地址值和偏移地址值,并将它们存储在处理元件400的寄存器文件组501中。基地址值和偏移地址值可以是矢量或标量。 
在方块606中,处理元件400中的地址生成逻辑500根据基地址值和偏移地址值确定虚拟地址。例如,算术功能514可以用于相加基地址值和偏移地址值。在方块608中,处理元件400中的地址生成逻辑500将虚拟地址转换成物理地址。将虚拟地址转换成物理地址可以包括根据虚拟地址进行转换表524的查找。在方块610中,处理元件400输出物理地址,并根据物理地址访问有源存储器件中的存储器中的位置。 
如上所述,寄存器文件组501可以包括矢量寄存器文件502和标量寄存器文件504。基地址值和偏移地址值可以从标量寄存器文件504中读取。通过递增地将偏移地址加到基地址值和随后中间和,以及将一系列虚拟地址转换成物理地址预定迭代次数,可以顺序生成一系列虚拟地址和相应物理地址。预定迭代次数可以基于矢量寄存器文件502的矢量长度。根据处理元件400执行的单条读取指令,可以通过根据一系列虚拟地址和相应物理地址访问存储器中的多个位置,以及将在存储器中的多个位置读取的数据写入矢量寄存器文件502中进行顺序读取操作。类似地,根据处理元件400执行的单条写入指令,可以通过从矢量寄存器文件中顺序读取值,以及根据一系列虚拟地址和相应物理地址将值写入存储器中的多个位置中,进行顺序写入操作。 
可替代地,基地址值可以作为矢量从矢量寄存器文件502中读取,偏移地址值可以从标量寄存器文件504中读取。一系列虚拟地址和相应物理地址可以通过为矢量寄存器文件502的矢量的每个元素相加偏移地址值和基地址 值,以及将一系列虚拟地址转换成相应物理地址达预定迭代次数顺序生成。 
作为进一步的替代例,基地址值可以作为第一矢量从矢量寄存器文件502中读取,偏移地址值可以作为第二矢量从矢量寄存器文件502中读取。一系列虚拟地址和相应物理地址可以通过为矢量寄存器文件502的矢量的每个元素矢量相加偏移地址值和基地址值,以及将一系列虚拟地址转换成相应物理地址顺序生成以便访问存储器中的多个位置。 
本文使用的术语只是为了描述特定实施例的目的,而无意限制本发明。如本文所使用,单数形式“一个”、“一种”和“该”也有意包括复数形式,除非上下文另有明确指出。还应该明白,术语“包含”当用在本说明书中时,规定存在所述的特征、整数、步骤、操作、元件、和/或部件,但不排除存在或附加一个或多个其他特征、整数、步骤、操作、元件、部件、和/或它们的群体。 
所附权利要求书中的所有装置或步骤加功能元件的相应结构、材料、动作以及等价物旨在包括如具体要求保护结合其他所要求保护的元件执行功能的任何结构、材料或动作。呈现本发明的说明是为了示出和描述的目的,但不是穷尽性的或将本发明限制于所公开的形式。许多修改和变化对本领域普通技术人员来说是明显的,不脱离本发明的范围和精神。选择和描述实施例是为了最佳地说明本发明的原理和实际应用,并使本领域普通技术人员能够针对如适于设想的特定用途地作出各种修改的各种实施例理解本发明。 
本文描绘的流程图仅仅是一个例子。可以不偏离本发明的精神地对这个图形或本文所述的步骤(或操作)作许多改变。例如,可以按不同次序执行这些步骤,或可以添加,删除或修改这些步骤。所有这些变化都被认为是所要求保护的发明的一部分。 
虽然已经对本发明的优选实施例作了描述,但应该明白,本领域的普通技术人员无论现在还是将来,都可以作出在所附的权利要求书的范围之内的各种改进和改善。这个权利要求书应该理解为是对首次描述的发明的适当保护。 

Claims (20)

1.一种包括存储器和处理元件的有源存储器件中的地址生成的方法,该方法包含:
从处理元件的寄存器文件组中读取基地址值;
从处理元件的寄存器文件组中读取偏移地址值;
由处理元件根据基地址值和偏移地址值确定虚拟地址;
由处理元件将虚拟地址转换成物理地址;以及
根据物理地址访问存储器中的位置。
2.如权利要求1所述的方法,进一步包含:
从与处理元件通信的主处理器接收基地址值和偏移地址值;以及
将基地址值和偏移地址值存储在处理元件的寄存器文件组中。
3.如权利要求1所述的方法,其中该寄存器文件组包含标量寄存器文件和矢量寄存器文件,以及进一步包含:
从标量寄存器文件中读取基地址值;
从标量寄存器文件中读取偏移地址值;以及
通过递增地将偏移地址值加到基地址值和随后中间和,以及将一系列虚拟地址转换成物理地址预定迭代次数,顺序生成一系列虚拟地址和相应物理地址。
4.如权利要求3所述的方法,其中预定迭代次数基于矢量寄存器文件的矢量长度,以及进一步包含:
根据处理元件执行的单条读取指令,通过根据一系列虚拟地址和相应物理地址访问存储器中的多个位置,进行顺序读取操作,以及将在存储器中的多个位置读取的值写入矢量寄存器文件中;以及
根据处理元件执行的单条写入指令,通过从矢量寄存器文件中顺序读取值,以及根据一系列虚拟地址和相应物理地址将值写入存储器中的多个位置中,进行顺序写入操作。
5.如权利要求1所述的方法,其中该寄存器文件组包含标量寄存器文件和矢量寄存器文件,以及进一步包含:
从矢量寄存器文件中读取作为矢量的基地址值;
从标量寄存器文件中读取偏移地址值;以及
通过为矢量寄存器文件的矢量的每个元素相加偏移地址值和基地址值,以及将一系列虚拟地址转换成相应物理地址预定迭代次数,顺序生成一系列虚拟地址和相应物理地址。
6.如权利要求1所述的方法,其中该寄存器文件组包含矢量寄存器文件,以及进一步包含:
从矢量寄存器文件中读取作为第一矢量的基地址值;
从矢量寄存器文件中读取作为第二矢量的偏移地址值;以及
通过为矢量寄存器文件的第一和第二矢量的每个矢量元素矢量相加偏移地址值和基地址值,以及将一系列虚拟地址转换成相应物理地址以便访问存储器中的多个位置,顺序生成一系列虚拟地址和相应物理地址。
7.如权利要求1所述的方法,其中将虚拟地址转换成物理地址进一步包含根据虚拟地址进行转换表的查找。
8.一种有源存储器件的处理元件,其包含:
包含一个或多个寄存器文件的寄存器文件组;以及
地址生成逻辑,其与该寄存器文件组耦合并配置成执行包含如下步骤的方法:
从寄存器文件组中读取基地址值;
从寄存器文件组中读取偏移地址值;
根据基地址值和偏移地址值确定虚拟地址;
将虚拟地址转换成物理地址;以及
输出物理地址以便通过该处理元件访问有源存储器件的存储器中的位置。
9.如权利要求8所述的处理元件,其中该寄存器文件组包含标量寄存器文件和矢量寄存器文件,以及该地址生成逻辑被进一步配置成执行如下步骤:
从标量寄存器文件中读取基地址值;
从标量寄存器文件中读取偏移地址值;以及
通过递增地将偏移地址加到基地址值和随后中间和,以及将一系列虚拟地址转换成物理地址预定迭代次数,顺序生成一系列虚拟地址和相应物理地址。
10.如权利要求9所述的处理元件,其中预定迭代次数基于矢量寄存器文件的矢量长度,以及该处理元件被进一步配置成执行如下步骤:
根据处理元件执行的单条读取指令,通过根据一系列虚拟地址和相应物理地址访问存储器中的多个位置,进行顺序读取操作,以及将在存储器中的多个位置读取的值写入矢量寄存器文件中;以及
根据处理元件执行的单条写入指令,通过从矢量寄存器文件中顺序读取值,以及根据一系列虚拟地址和相应物理地址将值写入存储器中的多个位置中,进行顺序写入操作。
11.如权利要求8所述的处理元件,其中该寄存器文件组包含标量寄存器文件和矢量寄存器文件,以及该地址生成逻辑被进一步配置成执行如下步骤:
从矢量寄存器文件中读取作为矢量的基地址值;
从标量寄存器文件中读取偏移地址值;以及
通过为矢量寄存器文件的每个矢量元素相加偏移地址值和基地址值,以及将一系列虚拟地址转换成相应物理地址预定迭代次数,顺序生成一系列虚拟地址和相应物理地址。
12.如权利要求8所述的处理元件,其中该寄存器文件组包含矢量寄存器文件,以及该地址生成逻辑被进一步配置成执行:
从矢量寄存器文件中读取作为第一矢量的基地址值;
从矢量寄存器文件中读取作为第二矢量的偏移地址值;以及
通过为矢量寄存器文件的第一和第二矢量的每个元素矢量相加偏移地址值和基地址值,以及将一系列虚拟地址转换成相应物理地址以便访问存储器中的多个位置,顺序生成一系列虚拟地址和相应物理地址。
13.如权利要求8所述的处理元件,进一步包含转换表,其中将虚拟地址转换成物理地址进一步包含根据虚拟地址进行转换表的查找。
14.一种有源存储器件,其包含:
存储器;以及
处理元件,该处理元件包括寄存器文件组和与该寄存器文件组耦合的地址生成逻辑,该地址生成逻辑被配置成执行包括如下步骤的方法:
从寄存器文件组中读取基地址值;
从寄存器文件组中读取偏移地址值;
根据基地址值和偏移地址值确定虚拟地址;
将虚拟地址转换成物理地址;以及
输出物理地址以便访问存储器中的位置。
15.如权利要求14所述的有源存储器件,其中该有源存储器件是三维存储器立方,该存储器被划分成作为存储器库的三维分块区域,以及通过该有源存储器件中的一个或多个存储器控制器进行存储器中的多位置访问。
16.如权利要求14所述的有源存储器件,其中该寄存器文件组包含标量寄存器文件和矢量寄存器文件,以及该地址生成逻辑被进一步配置成执行:
从标量寄存器文件中读取基地址值;
从标量寄存器文件中读取偏移地址值;以及
通过递增地将偏移地址加到基地址值和随后中间和,以及将一系列虚拟地址转换成物理地址预定迭代次数,顺序生成一系列虚拟地址和相应物理地址。
17.如权利要求16所述的有源存储器件,其中预定迭代次数基于矢量寄存器文件的矢量长度,以及该处理元件被进一步配置成执行如下步骤:
根据处理元件执行的单条读取指令,通过根据一系列虚拟地址和相应物理地址访问存储器中的多个位置,以及将在存储器中的多个位置读取的值写入矢量寄存器文件中,进行顺序读取操作;以及
根据处理元件执行的单条写入指令,通过从矢量寄存器文件中顺序读取值,以及根据一系列虚拟地址和相应物理地址将值写入存储器中的多个位置中,进行顺序写入操作。
18.如权利要求14所述的有源存储器件,其中该寄存器文件组包含标量寄存器文件和矢量寄存器文件,以及该地址生成逻辑被进一步配置成执行:
从矢量寄存器文件中读取作为矢量的基地址值;
从标量寄存器文件中读取偏移地址值;以及
通过为矢量寄存器文件的矢量的每个元素相加偏移地址值和基地址值,以及将一系列虚拟地址转换成相应物理地址达预定迭代次数,顺序生成一系列虚拟地址和相应物理地址。
19.如权利要求14所述的有源存储器件,其中该寄存器文件组包含矢量寄存器文件,以及该地址生成逻辑被进一步配置成执行:
从矢量寄存器文件中读取作为第一矢量的基地址值;
从矢量寄存器文件中读取作为第二矢量的偏移地址值;以及
通过为矢量寄存器文件的第一和第二矢量的每个元素矢量相加偏移地址值和基地址值,以及将一系列虚拟地址转换成相应物理地址以便访问存储器中的多个位置,顺序生成一系列虚拟地址和相应物理地址。
20.如权利要求14所述的有源存储器件,进一步包含处理元件中的转换表,其中将虚拟地址转换成物理地址进一步包含根据虚拟地址和基地址值的一种或多种进行转换表的查找。
CN201310552079.4A 2012-11-08 2013-11-08 有源存储器件中的地址生成的方法及其处理元件 Expired - Fee Related CN103810111B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/671,679 US9110778B2 (en) 2012-11-08 2012-11-08 Address generation in an active memory device
US13/671,679 2012-11-08

Publications (2)

Publication Number Publication Date
CN103810111A true CN103810111A (zh) 2014-05-21
CN103810111B CN103810111B (zh) 2017-09-12

Family

ID=50623491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310552079.4A Expired - Fee Related CN103810111B (zh) 2012-11-08 2013-11-08 有源存储器件中的地址生成的方法及其处理元件

Country Status (2)

Country Link
US (1) US9110778B2 (zh)
CN (1) CN103810111B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021131A (zh) * 2015-03-24 2016-10-12 Arm 有限公司 存储器管理
CN107533461A (zh) * 2015-04-24 2018-01-02 优创半导体科技有限公司 具有用于对存储器寻址的不同寄存器的计算机处理器
WO2019011311A1 (zh) * 2017-07-13 2019-01-17 华为技术有限公司 数据访问方法及装置
CN112445729A (zh) * 2020-11-30 2021-03-05 深圳开立生物医疗科技股份有限公司 操作地址确定方法、PCIe系统、电子设备及存储介质
CN112639747A (zh) * 2020-04-26 2021-04-09 深圳市大疆创新科技有限公司 处理器的寻址方法、处理器、可移动平台和电子设备
WO2023056743A1 (zh) * 2021-10-09 2023-04-13 苏州浪潮智能科技有限公司 一种向量读写方法、向量寄存器系统、设备及介质
CN116578343A (zh) * 2023-07-10 2023-08-11 南京砺算科技有限公司 指令编译方法及装置、图形处理单元、存储介质、终端设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281366A1 (en) * 2013-03-15 2014-09-18 Cognitive Electronics, Inc. Address translation in a system using memory striping
US9535851B2 (en) * 2014-02-04 2017-01-03 Netronome Systems, Inc. Transactional memory that performs a programmable address translation if a DAT bit in a transactional memory write command is set
US10049054B2 (en) * 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
US11005809B2 (en) * 2016-03-29 2021-05-11 Motorola Solutions, Inc. Methods, devices, and systems for generating a plurality of network addresses for a plurality of communication devices
US11126549B2 (en) 2016-03-31 2021-09-21 Hewlett Packard Enterprise Development Lp Processing in-memory architectures for performing logical operations
US10474600B2 (en) 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
KR20210092078A (ko) * 2020-01-15 2021-07-23 삼성전자주식회사 병렬 연산 처리를 수행하는 메모리 장치 및 그 동작방법, 그리고 메모리 장치를 제어하는 메모리 컨트롤러의 동작방법
WO2022109917A1 (zh) * 2020-11-26 2022-06-02 深圳市大疆创新科技有限公司 浮点运算装置、浮点运算方法、可移动平台及存储介质
CN117033298B (zh) * 2022-10-21 2024-06-18 北京天数智芯半导体科技有限公司 一种瓦片处理器、soc芯片以及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437043A (en) * 1991-11-20 1995-07-25 Hitachi, Ltd. Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers
US20040093465A1 (en) * 2002-10-28 2004-05-13 Quicksilver Technology, Inc. Cache for instruction set architecture
CN101512499A (zh) * 2006-08-31 2009-08-19 高通股份有限公司 相对地址产生
CN101639810A (zh) * 2009-08-26 2010-02-03 杭州华三通信技术有限公司 一种访问pci存储空间的方法和装置
CN102141905A (zh) * 2010-01-29 2011-08-03 上海芯豪微电子有限公司 一种处理器体系结构

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139877B2 (en) 2003-01-16 2006-11-21 Ip-First, Llc Microprocessor and apparatus for performing speculative load operation from a stack memory cache
WO2008055272A2 (en) 2006-11-04 2008-05-08 Virident Systems, Inc. Integrating data from symmetric and asymmetric memory
WO2009048707A1 (en) 2007-10-12 2009-04-16 Rambus Inc. Managing flash memory in computer systems
JP5085446B2 (ja) * 2008-07-14 2012-11-28 株式会社東芝 三次元メモリデバイス
US8266408B2 (en) 2009-03-17 2012-09-11 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
WO2010142432A2 (en) 2009-06-09 2010-12-16 Martin Vorbach System and method for a cache in a multi-core processor
US8369120B2 (en) 2010-03-19 2013-02-05 Qualcomm Incorporated Methods and apparatus for sum of address compare write recode and compare reduction
US8751771B2 (en) * 2010-09-29 2014-06-10 Nvidia Corporation Efficient implementation of arrays of structures on SIMT and SIMD architectures
US8724390B2 (en) * 2011-01-19 2014-05-13 Macronix International Co., Ltd. Architecture for a 3D memory array
GB2488980B (en) * 2011-03-07 2020-02-19 Advanced Risc Mach Ltd Address generation in a data processing apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437043A (en) * 1991-11-20 1995-07-25 Hitachi, Ltd. Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers
US20040093465A1 (en) * 2002-10-28 2004-05-13 Quicksilver Technology, Inc. Cache for instruction set architecture
CN101512499A (zh) * 2006-08-31 2009-08-19 高通股份有限公司 相对地址产生
CN101639810A (zh) * 2009-08-26 2010-02-03 杭州华三通信技术有限公司 一种访问pci存储空间的方法和装置
CN102141905A (zh) * 2010-01-29 2011-08-03 上海芯豪微电子有限公司 一种处理器体系结构

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021131A (zh) * 2015-03-24 2016-10-12 Arm 有限公司 存储器管理
CN106021131B (zh) * 2015-03-24 2021-06-15 Arm 有限公司 存储器管理
CN107533461A (zh) * 2015-04-24 2018-01-02 优创半导体科技有限公司 具有用于对存储器寻址的不同寄存器的计算机处理器
WO2019011311A1 (zh) * 2017-07-13 2019-01-17 华为技术有限公司 数据访问方法及装置
CN109254930A (zh) * 2017-07-13 2019-01-22 华为技术有限公司 数据访问方法及装置
CN109254930B (zh) * 2017-07-13 2020-06-26 华为技术有限公司 数据访问方法及装置
CN112639747A (zh) * 2020-04-26 2021-04-09 深圳市大疆创新科技有限公司 处理器的寻址方法、处理器、可移动平台和电子设备
WO2021217293A1 (zh) * 2020-04-26 2021-11-04 深圳市大疆创新科技有限公司 处理器的寻址方法、处理器、可移动平台和电子设备
CN112445729A (zh) * 2020-11-30 2021-03-05 深圳开立生物医疗科技股份有限公司 操作地址确定方法、PCIe系统、电子设备及存储介质
CN112445729B (zh) * 2020-11-30 2024-04-16 深圳开立生物医疗科技股份有限公司 操作地址确定方法、PCIe系统、电子设备及存储介质
WO2023056743A1 (zh) * 2021-10-09 2023-04-13 苏州浪潮智能科技有限公司 一种向量读写方法、向量寄存器系统、设备及介质
US11907716B1 (en) 2021-10-09 2024-02-20 Inspur Suzhou Intelligent Technology Co., Ltd. Vector reading and writing method, vector register system, device, and medium
CN116578343A (zh) * 2023-07-10 2023-08-11 南京砺算科技有限公司 指令编译方法及装置、图形处理单元、存储介质、终端设备
CN116578343B (zh) * 2023-07-10 2023-11-21 南京砺算科技有限公司 指令编译方法及装置、图形处理装置、存储介质、终端设备

Also Published As

Publication number Publication date
US20140129799A1 (en) 2014-05-08
US9110778B2 (en) 2015-08-18
CN103810111B (zh) 2017-09-12

Similar Documents

Publication Publication Date Title
CN103810111A (zh) 有源存储器件中的地址生成的方法及其处理元件
CN114391135A (zh) 用于对连续分配数据执行存储器内处理操作的方法及相关存储器装置和系统
Stone A logic-in-memory computer
US9639458B2 (en) Reducing memory accesses for enhanced in-memory parallel operations
US9632778B2 (en) Gather/scatter of multiple data elements with packed loading/storing into /from a register file entry
EP3526665B1 (en) Sorting for data-parallel computing devices
CN103810125A (zh) 有源存储器件聚集、分散和过滤
Lee et al. ComPEND: Computation Pruning through Early Negative Detection for ReLU in a deep neural network accelerator
US20100023728A1 (en) Method and system for in-place multi-dimensional transpose for multi-core processors with software-managed memory hierarchy
Yavits et al. GIRAF: General purpose in-storage resistive associative framework
CN111860807B (zh) 分形计算装置、方法、集成电路及板卡
CN109997109A (zh) 具有提取提前滞后的流引擎
CN109952559A (zh) 具有单独可选元素及成组复制的流式传输引擎
US20230205705A1 (en) Approach for providing indirect addressing in memory modules
CN104049937A (zh) 裸露向量管线之间的链接
Vizitiu et al. Optimized three-dimensional stencil computation on Fermi and Kepler GPUs
Li et al. GraphIA: An in-situ accelerator for large-scale graph processing
CN105393210A (zh) 用于模拟共享存储器结构的存储器单元
TW202230129A (zh) 用於檢測串流相容和廣播相容的資料存取型樣之編譯時邏輯
US9575756B2 (en) Predication in a vector processor
Iskandar et al. Near-memory computing on fpgas with 3d-stacked memories: Applications, architectures, and optimizations
CN103577347A (zh) 用于操作存储器设备的方法和用于存储器操作的系统
Santos et al. Survey on near-data processing: Applications and architectures
US9535694B2 (en) Vector processing in an active memory device
Chen et al. fgSpMSpV: A fine-grained parallel SpMSpV framework on HPC platforms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170912