CN112559397A - 一种装置和方法 - Google Patents

一种装置和方法 Download PDF

Info

Publication number
CN112559397A
CN112559397A CN201910916506.XA CN201910916506A CN112559397A CN 112559397 A CN112559397 A CN 112559397A CN 201910916506 A CN201910916506 A CN 201910916506A CN 112559397 A CN112559397 A CN 112559397A
Authority
CN
China
Prior art keywords
bus
data
write
source operands
address
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
CN201910916506.XA
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910916506.XA priority Critical patent/CN112559397A/zh
Priority to PCT/US2020/050144 priority patent/WO2021061413A1/en
Priority to US17/017,252 priority patent/US11487680B2/en
Publication of CN112559397A publication Critical patent/CN112559397A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

公开一种装置和方法。在该装置中,内存管理单元包括:第一缓存单元,用于存储多个第一源操作数和一个第一写地址;第二缓存单元,用于存储至少一对第二源操作数和第二目的地址;写缓存模块,用于对多条存储指令的目的地址进行判断,以将其中与连续的目的地址对应的多个源操作数存储到第一缓存单元,并将不连续的目的地址以及与不连续的目的地址对应的源操作数存储到第二缓存单元,第一写地址为连续的目的地址的首地址;总线传输模块,用于在写突发传输模式下将第一缓存单元内的多个第一源操作数和第一写地址经由总线传输给存储器。本发明实施例在处理器和总线之间建立突发传输模式,能够减少总线地址带宽的占用,同时加速存储器的写效率。

Description

一种装置和方法
技术领域
本发明涉及处理器制造领域,更具体而言,涉及一种装置和方法。
背景技术
处理器设计中,数据存储在存储器中,在处理器中,指令对应的数 据(操作码)的数据宽度通常为8/16/32bit,高性能的处理器还包括了 64bit的数据,处理器通过载入指令(load指令)搬运指令数据搬运到 处理器中,经过运算之后,通过存储指令(store指令)将结果存储到 外部存储中。一些典型的应用还需要连续对存储器的一片连续地址进行 写操作,比如内存搬运、连续地址的数据生成等。这些写操作都是通过 连续的存储指令写到总线上,并最终写到存储器内。这些写操作使用存 储指令实现,每一条存储指令一次最多存储32或64bit(处理器的最大 数据宽度)的数据。
对于高性能处理器来说,外部总线的数据位宽都在64/128bit以上, 而上述对连续地址的写操作,每次只会占用一半甚至更小的总线数据宽 度。通常来说,总线包含了握手协议等传输的延时,连续的单次写传输 对于连续的写操作来说,效率不高。
发明内容
有鉴于此,本方案针对提出了一种装置和方法,以解决上述问题。
为了达到这个目的,根据本发明的第一方面,本发明实施例提供一 种装置,所述装置包括经由总线与存储器耦接的内存管理单元,所述内 存管理单元包括:
第一缓存单元,用于存储多个第一源操作数和一个第一写地址;
第二缓存单元,用于存储至少一对第二源操作数和第二目的地址;
写缓存模块,用于对多条存储指令的目的地址进行判断,以将其中 与连续的目的地址对应的多个源操作数存储到所述第一缓存单元,并将 其中不连续的目的地址以及与所述不连续的目的地址对应的源操作数存 储到所述第二缓存单元,所述第一写地址为所述连续目的地址的首地址;
总线传输模块,用于在写突发传输模式下将所述第一缓存单元内的 多个第一源操作数和所述第一写地址经由所述总线传输给所述存储器, 在其他传输模式下,逐次地将所述第二缓存内的每对所述第二源操作数 和所述第二目的地址经由所述总线传输给所述存储器。
在一些实施例中,所述第一缓存单元还存储有指示数据和标识数据, 所述指示数据用于表示所述多个第一源操作数是否有效,所述标识数据 用于表示与所述多个第一源操作数对应的目的地址的连续方式。
在一些实施例中,所述总线传输模块包括:
突发判断单元,用于根据所述指示数据和所述标识数据判断是否可 以开始写突发传输模式传输模式,并确定与所述多个第一源操作数对应 的目的地址为递增连续地址还是递减连续地址;
突发传输单元,用于当与所述多个第一源操作数对应的目的地址为 递增连续地址,则在写突发传输模式下,将所述第一写地址和所述多个 第一源操作数传输给所述总线;如果当与所述多个第一源操作数对应的 目的地址为递减连续地址,则在写突发传输模式下,将所述第一写地址 和表示所述递减连续地址的标识以及多个第一源操作数发送给所述总线。
在一些实施例中,所述总线直接转发给所述存储器,所述存储器根 据所述递增连续地址或递减连续地址,进行不同的写操作。
在一些实施例中,所述总线将所述多个第一源操作数从递减连续地 址调整为递增连续地址,并将调整后的所述多个第一源操作数和所述第 一写地址发送给所述存储器。
在一些实施例中,将所述多个第一源操作数合并成多个写数据,每 个写数据的数据长度相同,并以写数据为单位进行写突发传输模式下的 数据传输。
在一些实施例中,所述写数据的数据长度等于所述总线的数据位宽。
在一些实施例中,所述写突发传输单元还包括:当所述写数据的数 据长度小于所述总线的数据位宽时,通过截止标识指示传输到所述总线 上的有效数据。
在一些实施例中,所述总线传输模块以地址和数据分开的方式进行 写突发传输模式下的数据传输。
在一些实施例中,还包括:根据与所述首地址对应的存储指令的时 间要求,判断当前是否启动所述总线传输模块。
在一些实施例中,所述写缓存模块还包括:从指令流水线结构的LSU 部件内部的缓存中获取所述多条存储指令的源操作数和目标地址。
在一些实施例中,所述装置为处理器核或处理器,所述总线和存储 器位于所述装置的内部。
在一些实施例中,所述装置为处理器核或处理器,所述总线和存储 器位于所述装置的外部。
第二方面,本发明实施例提供一种方法,包括:
循环获取多个存储指令的源操作数和目的地址;
将其中与连续的目的地址对应的多个第一源操作数以及所述连续目 的地址的首地址存储到第一缓存单元中;
在写突发传输模式下,将所述第一缓存单元内的多个第一源操作数 和所述首地址经由总线传输给存储器。
在一些实施例中,所述第一缓存单元还存储指示数据和标识数据, 所述指示数据用于表示所述多个第一源操作数是否有效,所述标识数据 用于表示与所述多个第一源操作数对应的目的地址的连续方式。
在一些实施例中,所述在写突发传输模式下,将所述第一缓存单元 内的多个第一源操作数和所述第一写地址经由总线传输给存储器还包括:
根据所述指示数据和所述标识数据判断是否可以开始写突发传输模 式传输模式,并确定与所述多个第一源操作数对应的目的地址为递增连 续地址还是递减连续地址;
当与所述多个第一源操作数对应的目的地址为递增连续地址时,在 写突发传输模式下,将所述首地址和所述多个第一源操作数传输给所述 总线;
当与所述多个第一源操作数对应的目的地址为递减连续地址,在写 突发传输模式下,将所述首地址和表示所述递减连续地址的标识以及所 述多个第一源操作数发送给所述总线。
在一些实施例中,所述总线直接转发给存储器,所述存储器根据所 述递增连续地址或递减连续地址,进行不同的写操作。
在一些实施例中,所述总线将所述多个第一源操作数从递减连续地 址调整为递增连续地址,并将调整后的所述多个第一源操作数和首地址 发送给所述存储器。
在一些实施例中,将所述多个第一源操作数合并成多个写数据,每 个写数据的数据长度相同,并以写数据为单位进行写突发传输模式下的 数据传输。
在一些实施例中,所述写数据的数据长度等于所述总线的数据位宽。
在一些实施例中,还包括:当所述写数据的数据长度小于所述总线 的数据位宽时,通过截止标识指示传输到所述总线上的有效数据。
在一些实施例中,还包括:根据与所述首地址对应的存储指令的时 间要求,判断当前是否启动数据传输。
第三方面,本发明实施例提供一种计算机***,包括上述任一项所 述的装置。
第四方面,本发明实施例提供一种片上***,包括上述任一项所述 的装置。
本发明实施例和现有技术相比,优势在于,对于多条存储指令的源 操作数,存储其中与连续的目的地址对应的多个第一源操作数,并将连 续的目的地址的首地址作为第一写地址,在突发传输模式下,以第一写 地址传输多个第一源操作数,从而能够减少总线地址带宽的占用,同时 加速存储器的写效率。
附图说明
通过参考以下附图对本发明实施例的描述,本发明的上述以及其它 目的、特征和优点将更为清楚,在附图中:
图1是用于实施本发明实施例的计算机***的结构示意图;
图2是用于实施本发明实施例的片上***的结构示意图;
图3是用于实施本发明一实施例的处理器的结构图;
图4是用于实施本发明另一实施例的处理器的结构图;
图5a是一个示例性的突发写传输的示意图;
图5b是另一个示例性的突发写传输的示意图;
图6是本发明实施例提供的方法的流程图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些 实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部 分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本 发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细 叙述。另外附图不一定是按比例绘制的。
在本文中使用以下术语。
处理器支持的位宽:位宽是指处理器一次执行指令的数据带宽。目 前处理器的最小位宽为8比特,最大位宽包括16/32/64比特。
总线的数据位宽:指外部总线一次能够传输的最大数据带宽。
指令流水线,指令流水线是为提高处理器执行指令的效率,把一条 指令的操作分成多个细小的步骤,每个步骤由专门的电路完成的方式。 目前主流的指令流水线的技术有三级、四级、五级、七级和超级指令流 水线,等等。例如教课书示例的五级指令流水线包括取指级、译码级、 执行级、访存级和写回级。在本文中,将取指级、译码级、执行级、访 存级和写回级又称为取指单元、译码单元、执行单元、访存单元和写回 单元。
流水线结构,将实现指令流水线的软件硬件组合称为流水线结构。
写突发传输,即write burst,总线协议中的连续传输协议。通常 总线中,突发传输协议包含了一个地址信息和多个数据信息,表示将多 个数据信息存储到从该地址开始的连续地址上,或连续且对齐的地址上。 比如,OCP协议中的连续传输协议,写地址通道发送一个write burst 传输,该传输指定了数据的宽度为128bit,burst类型为wrap,传输的长度为4,即表示发送一个4个128bit数据的写传输,地址则为4*128bit 对齐的地址上,则在写数据通道上,总线将会接收4个128bit数据。在 本文中,有时也将写突发传输称为写突发传输模式。
写数据,一次写突发传输中指定一个地址信息和多个数据信息,在 本文中,将一次突发传输中的一个数据信息称为写数据。
源操作数,指存储指令需要写入的数据。
目的地址,指存储指令需要写入的存储位置,目的地址可以是物理 地址,或者虚拟地址。
图1是用于实施本发明的处理***的结构示意图,所述处理***例 如为一个计算机***。参考图1,***100是“中心”***架构的示例。 ***100可基于目前市场上各种型号的处理器构建,并由WINDOWSTM操作 ***版本、UNIX操作***、Linux操作***等操作***驱动。此外,系 统100一般在PC机、台式机、笔记本、服务器中实施。
如图1所示,***100包括处理器102。处理器102具有本领域所 公知的数据处理能力。它可以是复杂指令集(CISC)架构、精简指令集 (RISC)架构、超长指令宇(VLIW)架构的处理器、或者是实现上述指令 集组合的处理器、或者是任何为了专用目标构建的电子设备。
处理器102耦接到***总线101,***总线101可以在处理器102和 其它部件之间传输数据信号。处理器102还可以包括内部存储器1022 和根据本发明实施例提供的技术方案改进的处理器核1021,具体细节将 在下文提供。
***100还包括存储器104和显卡105。存储器104可以是动态随 机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪速 存储器设备或其它存储器设备。存储器104可以存储由数据信号表示的 指令信息和/或数据信息。显卡105包括显示驱动器,用于控制显示信 号在显示屏上的正确显示。
经由存储器控制器中心103,显卡105和存储器104被耦接到*** 总线101上。处理器102可以经由***总线101与存储器控制器中心103 通信。存储器控制器中心103向存储器104提供高带宽存储器访问路径 421,用于指令信息和数据信息的存储和读取。同时,存储器控制器中心 103和显卡105基于显卡信号输入输出接口420进行显示信号的传输。 显卡信号输入输出接口420例如为DVI、HDMI等接口类型。
存储器控制器中心103不仅在处理器102、存储器103和显卡105 之间传输数字信号,而且,实现了在***总线101和存储器104以及输 入/输出控制中心106桥接数字信号。
***100还包括输入/输出控制中心106,通过专用集线器接口总线 422耦接到存储器控制器中心103,并经由局部I/0总线将一些I/0设备 到输入/输出控制中心106上。局部I/0总线用于将***设备耦接到输入 /输出控制中心106,进而耦接到存储器控制器中心103和***总线101 上。***设备包括但不限于以下设备:硬盘107、光盘驱动器108、声卡109、串行扩展端口110、音频控制器111、键盘112、鼠标113、GPIO 接口114、闪存115和网卡116。
当然,不同的计算机***根据主板,操作***和指令集架构的不同, 其结构图也有所变化。例如目前很多计算机***将存储器控制器中心 103集成到处理器102的内部,这样输入/输出控制中心106会成为和处 理器103耦接的控制中心。
图2是用于实施本发明的片上***200的结构示意图。其中,*** 200作为片上***,既可以作为一个独立器件生产和销售,也可以和其 他组件结合,形成新的器件进行生产和销售。
***200可以使用目前市场上多种型号的处理器制造,并可由 WINDOWSTM、UNIX、Linux和Android、RTOS等操作***进行驱动。*** 200可以在计算机设备、手持设备和嵌入式产品中实现。手持设备的一 些示例包括蜂窝电话、互联网协议设备、数字摄像机、个人数字助理(PDA) 和手持PC。嵌入式产品可以包括网络计算机(NetPC)、机顶盒、网络 集线器、广域网(WAN)交换机、或可以执行一个或多个指令的任何其它 ***。
参考图2所示,***200包括经由***总线201耦接的处理器202、 静态随机存取存储器205、LCD控制器204和闪存206以及总线桥207。
处理器202可以为复杂指令集(CISC)微处理器、精简指令集(RISC) 微处理器、超长指令宇(VLIW)微处理器、实现上述指令集组合的微处 理器、或任何其它处理器设备中的一种。处理器202还包括内部存储器 2022和根据本发明实施例提供的技术方案改进的处理器核2021,其具体 细节将在下文提供。
静态随机存取存储器205和闪存206用于存储由数字信号表示的指 令信息和/或数据信息。例如,静态随机存取存储器205可以作为各种 应用程序的运行空间,为各种应用程序创建堆、栈、存储中间数据等, 闪存206可以存储各种应用程序的可执行代码和操作***的可执行代码。
***总线201用于在***200的高性能模块之间传输数字信号,例 如在处理器202和静态随机存取存储器205、处理器202和LCD控制器 204、处理器202和闪存206、处理器202和总线桥207之间传输数字信 号。
总线桥207用于在***总线和***总线之间进行数据传输的桥接, 通过锁存来自***总线的地址、数据和控制信号,并提供二级译码以产 生***设备的选择信号,从而实现***总线协议到***总线协议的转换。
***200还可以包括与***总线耦接的各种接口。各种接口包括但 不限于通过以下接口类型:高容量SD存储卡(SDHC,Secure Digital High Capacity)、I2C总线、串行外设接口(SPI,Serial Peripheral Interface)、通用异步收发传输器(UART,UniversalAsynchronous Receiver/Transmitter)、通用串行总线(USB,Universal Serial Bus)、 通用型之输入输出(GPIO,General-purpose input/output)和蓝牙UART。 与接口耦接的***设备例如为USB设备、存储卡、报文收发传输器、蓝 牙设备等。
应该指出的是,随着SoC设计复杂性的增加以及处理器处理能力的 不断提升,片上总线技术也在不断地发展演化。目前片上总线有两种实 现方案,一是选用国际上公开通用的总线结构,例如OCP(Open Core Protocol)总线协议;二是根据特定领域自主开发片上总线。因此,虽然 图上示出了包括***总线、总线桥和***总线的总线结构,但是在实际的***级芯片的制造工艺中,受到经济效益和技术路线的制约,总线结 构的选择具有多样性,进而会影响到片上总线的结构。
综上,还应该指出,图1和图2所示的***仅用于示例本发明实施 例的一些应用场景,但不作为对本发明实施例的限制。本发明实现的是 对现有的处理器或者处理器核的改进,因此理论上可以适用于具有任意 处理器架构和指令集架构的***。
图3是根据本发明实施例的处理器300的结构示意图。在图上,箭 头表示两个或者以上的单元之间的耦合关系以及两者之间的数据传输方 向。
参考图3所示,处理器300包括耦合的指令流水线310和内存管理 单元320,其中,指令流水线310和内存管理单元320可以包含在处理 器核内。在本例中,指令流水线结构310可以是任意级的指令流水线结 构,例如,可以采用包括取指单元、译码单元、调度单元和执行单元的 四级指令流水线,也可以采用采用教科书示例的标准五级流水线结构实 现本实施例,本发明对此不做限制。
对于访存指令(store指令和load指令),指令流水线结构采用其 内的LSU部件(Load/Store Unit)对其进行处理,并将地址和数据存储 到LSU部件内部的缓存中,当访存指令从指令流水线结构中引退时,需 要将数据存储到处理器核内部或者外部的缓存或存储器中。因此对于存 储指令,内存管理单元320可以从LSU部件内部的缓存中读取每条存储指令的源操作数和目的地址,也可以从其他位置读取每条存储指令的源 操作数和目的地址。
内存管理单元320可以包括第一缓存单元323,第一缓存单元323 用于存储指令的、与连续的目的地址对应的多个源操作数以及连续的目 的地址的首地址。第一缓存单元323可以采用内部的存储器(cache、 memory)或寄存器实现。如图上所示,第一缓存单元323还存储指示数 据。指示数据用于指示与连续的目的地址对应的多个源操作数是否有效。目前处理器支持的最小位宽为8比特,因此任意一个源操作数的数据位 宽为8比特的倍数。指示数据和标识数据可以包含多个指示位,每个指 示位为一个比特,每个指示位对应于8比特的数据位宽。以示例说明。 如果一个源操作数的数据位宽为32比特,则指示数据中有4比特的指示 位表示该第一源操作数是否有效,如果有效,则该4比特的指示位均置 为1,如果无效,则为0,以此类推。外部总线的数据位宽一般为处理器 支持的最小位宽的整数倍,例如外部总线的数据位宽为64或者128bits。
内存管理单元320还可以包括第二缓存单元(未示出),第二缓存 单元用于存储至少一对第二源操作数和第二目的地址。第二缓存单元也 可以采用内部的存储器(cache、memory)或寄存器实现。
本实施例中,内存管理单元320可以为第一缓存单元和/或第二缓存 单元一次性申请存储空间,也可以每获得一条存储指令,才为源操作数 和目的地址申请新的存储空间。
内存管理单元320还包括用于实现多条存储指令的目的地址进行判 断以及根据判断结果进行总线传输的逻辑单元(包括软件和/或硬件实现 的逻辑)。该逻辑单元可以按照功能划分为写缓存模块321和总线传输 模块322。写缓存模块321用于从指令流水线结构310获取需要写入到 总线上的多个存储指令的源操作数和目的地址,例如可以从LSU部件311内部的缓存中获取该多个存储指令的源操作数和目的地址。该多条 存储指令可以来自同一个指令流水线,也可以来自多个指令流水线。可 以将最早的存储指令的目的地址作为首地址存储到第一缓存单元323中。 写缓存模块321对多条存储指令的目的地址进行判断,以将其中与连续 的目的地址对应的多个源操作数存储到第一缓存单元323中,并将不连续的目的地址以及与不连续的目的地址对应的源操作数存储到第二缓存 单元。具体地,写缓存模块321每接收到一条存储指令的源操作数和目 的地址时,判断该目的地址是否落在地址范围内(通过首地址+多个数据 单元的大小计算地址范围),如果命中,则将该存储指令的源操作数存放 到第一缓存单元的相应位置,并设置标识数据中的标识位。
总线传输模块322检查指示数据,如果指示数据的所有比特位都为 1,则可以按照总线传输协议分一次或者多次发送第一缓存单元323内的 源操作数。以示例说明。假设第一缓存单元的大小为128bits,则指示 数据包括16(128/8)个指示位,并将16个的指示数据初始化 为’0000000000000000’,假设首地址为10000,则第一缓存单元的地 址范围应该为[10000,10015],那么当地址为10004的32比特的写操作 发送过来时,写缓存模块321发现地址落在[10004,10007]地址范围处, 则将该写操作的数据存储到该位置处,并将16位的指示数据修改 为’0000000011110000’,其中值为1的表示该地址的数据是有效数据。 当总线传输模块322检查所有的指示位均为1,则向外部总线324发送 第一缓存单元323内的多个源操作数。外部总线324可以为图1中的总 线101,也可以是图2中的总线201。应理解,对应于不同的总线类型, 需要按照相应总线协议规范指定相关参数的数值并发送数据。
在一些实施例中,第一缓存单元323还存储标识数据。标识数据用 于指示连续的目的地址的连续方式,包括递增连续和递减连续。例如, 标识数据可以采用其中的2bits的标识位对应于一个源操作数,当标识 位为‘01’时,表示地址是递增连续,当标识位为‘11’时,表示地址 是递减连续。在写缓存模块321中,当获取到一条存储指令的目的地址 时,需要对其进行双向连续检查,如果为递增连续,则标记为‘01’, 否则标记为’11’。
在一些实施例中,总线传输模块322可以进一步划分为突发判断单 元3221、普通传输单元3222和突发传输单元3223。突发判断单元3221 在最早的存储指令的源操作数需要写到外部总线的时候,通过检查第一 缓存单元内的标识数据和指示数据,判断是否可以发起写突发传输,如 果可以,则使用突发传输单元3223将多个源操作数在突发传输模式下发 送到外部总线324上。判断的机制为,首先,指示数据必须全部置为‘1’, 即表示相应数据均为有效数据;再则,标识数据是否统一,即标识位全 部为‘01’或者全部为‘11’。只有两个条件都满足之后,才可以采用 突发传输单元3223进行写突发传输。以示例说明。如果第一缓存单元内 有64比特的源操作数,以32bit为写数据进行写突发传输,则突发传输 的长度为2,总线的写数据通道上,将会依次传输2个64比特的数据。 此时,总线的数据宽度是128比特,相当于总线数据带宽并没有占满, 则需要使用截止标识指定哪些数据是有效数据。当然,在这个示例中, 也可以采用普通传输单元3222以128比特的写数据写到总线上。应理 解,突发传输模式在不同的总线协议下的规范不同,因此各种应用需要 根据实际情况调整。普通传输单元3222采用除了写突发传输模式之外的 传输模式发送第二缓存单元内的源操作数和目的地址。普通传输单元 3223对于第二缓存单元中的一对或者多对源操作数和目的地址,可以无 需等待突发判断单元3221的判断结果,即发起数据传输。
在本实施例中,在处理器和总线之间建立突发传输模式,能够减少 总线地址带宽的占用,同时加速存储器的写效率。
作为一个优选实施例,为了充分利用外部总线的数据位宽,还可以 源操作数以外部总线的数据位宽为写数据进行合并,然后采用写突发传 输模式写数据。以示例说明。外部总线的数据位宽为128比特,则以128 比特作为一个写数据,如果有4个这样的写数据,则突发传输的长度为 4,即表示发送一个4个128比特的写突发数据传输,则在写数据通道上,总线将会依次接收到4个128比特。突发传输模式下的写数据的个数和 突发传输类型均可以自由设定。由此,该实施方式不仅能够利用突发传 输模式的优点,而且能够充分利用外部总线的总线传输带宽数据位宽, 并且使得总线传输突破了处理器支持的最大位宽的限制。
图4是用于实施本发明另一实施例的处理器的结构图。图4中的处 理器400除了包括耦合的指令流水线310和内存管理单元320之外,还 包括内部总线410和经由内部总线410耦接到处理器400上的内部存储 器(未示出)。可选地,指令流水线310、内存管理单元320、内部总线 410和内部存储器可以均位于处理器核内,或者指令流水线310、内存管 理单元320位于处理器核内,而内部总线410和内部存储器则位于处理 器内。由于在本发明中,写突发传输模式需要区分递增连续或递减连续 的写操作,因此可以在总线的数据规范上指出当前的写突发传输为递增 连续还是递减连续。
图5a是一个示例性的突发写传输的示意图。如图5a所示,突发传 输单元3223和外部总线324之间采用不同的传输通道传输控制信号503、 写数据502和返回信息501。控制信号503包括写地址5031、写长度(本 例中为4)5032以及其他控制信号。写数据502包括四个写数据,通过 数据通道发送给外部总线324(也可以是图4中的内部总线410)。在突 发写传输过程中,外部总线324(或者内部总线410)的相应端口被控制, 只能够依次接收突发传输单元3223的写数据和控制信号,直到4个长度 的写数据被接收完毕,外部总线324将返回信息501返回给突发传输单 元3223。
图5b是另一个示例性的突发写传输的示意图。和图5b不同之处在 于,图5a默认写数据502的各个写数据的地址是递增连续,但是在本例 中,数据单元3223在控制信号503中指定写数据502的各个写数据的地 址是递减连续,即图上采用标志位‘2’表示递减连续。如果是递增连续, 外部总线324(或者内部总线410)可以直接将各个写数据和写地址5031 发送给存储器,存储器根据内部的寻址逻辑将各个写数据写到写地址 5031以及之后的一片连续空间上,如果是递减连续,外部总线324(或 者内部总线410)还需要将写地址5031转换为一片递增连续空间的首地 址,然后将各个写数据和该递增连续空间的首地址发送给存储器,由存 储器根据内部的寻址逻辑将各个写数据写到该递增连续空间。如果是递 减连续,外部总线324(或者内部总线410)还可以将递减连续的标识发 给存储器,由存储器将写地址5031转换为一片递增连续空间的首地址, 然后将各个写数据写入到片递增连续空间。
图6是本发明实施例提供的方法的流程图。图6所示的方法可以由 任意包括上述实施例的处理核或处理器的电子设备执行。所述电子设备 例如为计算机、笔记本、蜂窝电话、互联网协议设备、数字摄像机、个 人数字助理(PDA)和手持PC。嵌入式产品可以包括网络计算机(NetPC)、 机顶盒、网络集线器、广域网(WAN)交换机等装置。所述方法包括以下步骤。
在步骤S601中,获取存储指令的源操作数和目的地址。
在步骤S602中,建立第一缓存单元。缓存单元的大小可以预先确定, 缓存单元对应的存储空间可以分多次设置,例如,每次需要时添加一个 源操作数和/或目的地址的存储空间。且缓存单元可以不是一片连续的存 储空间。当然,还可以同时建立第二缓存单元,以用于缓存不连续的目 的地址和源操作数。
在步骤S603中,将第一条存储指令的目的地址作为首地址。
在步骤S604中,判断每条存储指令的目的地址是否落在地址范围之 内。计算已有缓存单元的地址范围,如果一条存储指令的目的地址和已 有的缓存单元相邻,则执行步骤S605。
在步骤S605中,将每条存储指令的源操作数存储到第一缓存单元中, 并据此设置相应的指示数据和标识数据。
在步骤S606中,判断第一条存储指令的源操作数是否需要写到总线 上。在一些实施例中,根据第一条存储指令的时间要求,判断当前是否 将第一条存储指令的源操作数是否已经需要写到总线上,如果不是,则 跳转到步骤S601处执行,否则执行S607。
在步骤S607中,判断是否可以发起写突发传输模式。即根据指示数 据和标识数据判断若干个源操作数是否有效、是否连续。如果两个条件 都满足,则执行步骤S608。
在步骤S608中,发起写突发传输模式,以传输数据。
本实施例在突发传输模式下,多个源操作数被当作一个数据块来传 送,可以减少地址上的握手延时,从而提高写传输效率。
进一步地,将多个源操作数合并成数据长度等于总线的数据位宽的 写数据,通过突发传输模式将多个写数据当作一个数据块传送,以进一 步提高传输效率。
对于本发明,可以在硬件或专用电路、软件、逻辑或其任何组合中 实现上述处理单元、处理***和电子设备。举例来说,可以在硬件中实 现一些方面,而可以在可由控制器、微处理器或其它计算设备执行的固 件或软件中实现其它方面,尽管本发明并不限于此。虽然可以将本发明 的各个方面说明和描述为框图、流程图或使用一些其它的图形表示来说 明和描述本发明的各个方面,但是很好理解的是,作为非限制性例子, 可以以硬件、软件、回件、专用电路或逻辑、通用硬件或控制器或其它 计算设备,或者其某种组合来实现文中所描述的这些块、装置、***、 技术或方法。如果涉及的话,可以在诸如集成电路模块的各种组件中实 施本发明的电路设计。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本 领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神 和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。

Claims (24)

1.一种装置,所述装置包括经由总线与存储器耦接的内存管理单元,所述内存管理单元包括:
第一缓存单元,用于存储多个第一源操作数和一个第一写地址;
第二缓存单元,用于存储至少一对第二源操作数和第二目的地址;
写缓存模块,用于对多条存储指令的目的地址进行判断,以将其中与连续的目的地址对应的多个源操作数存储到所述第一缓存单元,并将不连续的目的地址以及与所述不连续的目的地址对应的源操作数存储到所述第二缓存单元,所述第一写地址为所述连续的目的地址的首地址;
总线传输模块,用于在写突发传输模式下将所述第一缓存单元内的多个第一源操作数和所述第一写地址经由所述总线传输给所述存储器,在其他传输模式下,逐次地将所述第二缓存内的每对所述第二源操作数和所述第二目的地址经由所述总线传输给所述存储器。
2.根据权利要求1所述的装置,所述第一缓存单元还存储有指示数据和标识数据,所述指示数据用于表示所述多个第一源操作数是否有效,所述标识数据用于表示与所述多个第一源操作数对应的目的地址的连续方式。
3.根据权利要求2所述的装置,所述总线传输模块包括:
突发判断单元,用于根据所述指示数据和所述标识数据判断是否可以开始写突发传输模式传输模式,并确定与所述多个第一源操作数对应的目的地址为递增连续地址还是递减连续地址;
突发传输单元,用于当与所述多个第一源操作数对应的目的地址为递增连续地址,则在写突发传输模式下,将所述第一写地址和所述多个第一源操作数传输给所述总线;如果当与所述多个第一源操作数对应的目的地址为递减连续地址,则在写突发传输模式下,将所述第一写地址和表示所述递减连续地址的标识以及多个第一源操作数发送给所述总线。
4.根据权利要求3所述的装置,所述总线直接转发给所述存储器,所述存储器根据递增连续地址或递减连续地址,进行不同的写操作。
5.根据权利要求3所述的装置,所述总线将所述多个第一源操作数从递减连续地址调整为递增连续地址,并将调整后的所述多个第一源操作数和所述第一写地址发送给所述存储器。
6.根据权利要求1所述的装置,将所述多个第一源操作数合并成多个写数据,每个写数据的数据长度相同,并以写数据为单位进行写突发传输模式下的数据传输。
7.根据权利要求6所述的装置,所述写数据的数据长度等于所述总线的数据位宽。
8.根据权利要求6所述的装置,所述写突发传输单元还包括:当所述写数据的数据长度小于所述总线的数据位宽时,通过截止标识指示传输到所述总线上的有效数据。
9.根据权利要求1所述的装置,所述总线传输模块以地址和数据分开的方式进行写突发传输模式下的数据传输。
10.根据权利要求1所述的装置,还包括:根据与所述首地址对应的存储指令的时间要求,判断当前是否启动所述总线传输模块。
11.根据权利要求1所述的装置,所述写缓存模块还包括:从指令流水线结构的LSU部件的缓存中获取所述多条存储指令的源操作数和目标地址。
12.根据权利要求1至11任一项所述的装置,所述装置为处理器核或处理器,所述总线和存储器位于所述装置的内部。
13.根据权利要求1至11任一项所述的装置,所述装置为处理器核或处理器,所述总线和存储器位于所述装置的外部。
14.一种方法,包括:
循环获取多个存储指令的源操作数和目的地址;
将其中与连续的目的地址对应的多个第一源操作数以及所述连续目的地址的首地址存储到第一缓存单元中;
在写突发传输模式下,将所述第一缓存单元内的多个第一源操作数和所述首地址经由总线传输给存储器。
15.根据权利要求14所述的方法,所述第一缓存单元还存储指示数据和标识数据,所述指示数据用于表示所述多个第一源操作数是否有效,所述标识数据用于表示与所述多个第一源操作数对应的目的地址的连续方式。
16.根据权利要求15所述的方法,所述在写突发传输模式下,将所述第一缓存单元内的多个第一源操作数和所述首地址经由总线传输给存储器还包括:
根据所述指示数据和所述标识数据判断是否可以开始写突发传输模式传输模式,并确定与所述多个第一源操作数对应的目的地址为递增连续地址还是递减连续地址;
当与所述多个第一源操作数对应的目的地址为递增连续地址时,在写突发传输模式下,将所述首地址和所述多个第一源操作数传输给所述总线;
当与所述多个第一源操作数对应的目的地址为递减连续地址,在写突发传输模式下,将所述首地址和表示所述递减连续地址的标识以及所述多个第一源操作数发送给所述总线。
17.根据权利要求16所述的方法,所述总线直接转发给存储器,所述存储器根据递增连续地址或递减连续地址,进行不同的写操作。
18.根据权利要求17所述的方法,所述总线将所述多个第一源操作数从递减连续地址调整为递增连续地址,并将调整后的所述多个第一源操作数和首地址发送给所述存储器。
19.根据权利要求14所述的方法,将所述多个第一源操作数合并成多个写数据,每个写数据的数据长度相同,并以写数据为单位进行写突发传输模式下的数据传输。
20.根据权利要求19所述的方法,所述写数据的数据长度等于所述总线的数据位宽。
21.根据权利要求19所述的方法,还包括:当所述写数据的数据长度小于所述总线的数据位宽时,通过截止标识指示传输到所述总线上的有效数据。
22.根据权利要求14所述的方法,还包括:根据与所述首地址对应的存储指令的时间要求,判断当前是否启动数据传输。
23.一种计算机***,包括如权利要求1-13任一项所述的装置。
24.一种片上***,包括如权利要求1-13任一项所述的装置。
CN201910916506.XA 2019-09-26 2019-09-26 一种装置和方法 Pending CN112559397A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910916506.XA CN112559397A (zh) 2019-09-26 2019-09-26 一种装置和方法
PCT/US2020/050144 WO2021061413A1 (en) 2019-09-26 2020-09-10 Apparatus and method for burst mode data storage
US17/017,252 US11487680B2 (en) 2019-09-26 2020-09-10 Apparatus and method for burst mode data storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910916506.XA CN112559397A (zh) 2019-09-26 2019-09-26 一种装置和方法

Publications (1)

Publication Number Publication Date
CN112559397A true CN112559397A (zh) 2021-03-26

Family

ID=75029710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910916506.XA Pending CN112559397A (zh) 2019-09-26 2019-09-26 一种装置和方法

Country Status (3)

Country Link
US (1) US11487680B2 (zh)
CN (1) CN112559397A (zh)
WO (1) WO2021061413A1 (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384540A (en) * 1991-11-12 1995-01-24 Molex Incorporated Wire presence and identification system
US5499384A (en) * 1992-12-31 1996-03-12 Seiko Epson Corporation Input output control unit having dedicated paths for controlling the input and output of data between host processor and external device
US5897667A (en) * 1993-11-16 1999-04-27 Intel Corporation Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner
US6195674B1 (en) * 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
US6728813B1 (en) * 1998-02-17 2004-04-27 Renesas Technology Corp. Method and apparatus for converting non-burst write cycles to burst write cycles across a bus bridge
CN102045258A (zh) * 2010-12-22 2011-05-04 北京星网锐捷网络技术有限公司 数据缓存管理方法及装置
CN102207916A (zh) * 2011-05-30 2011-10-05 西安电子科技大学 一种基于指令预取的多核共享存储器控制设备
CN103139093A (zh) * 2013-02-22 2013-06-05 桂林电子科技大学 基于fpga的高速网络数据流负载均衡调度方法
US20160321071A1 (en) * 1998-08-24 2016-11-03 Microunity Systems Engineering, Inc. Processor and method for executing wide operand multiply matrix operations
CN108228498A (zh) * 2017-12-21 2018-06-29 深圳开阳电子股份有限公司 一种dma控制装置和图像处理器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2285524B (en) * 1994-01-11 1998-02-04 Advanced Risc Mach Ltd Data memory and processor bus
US5557734A (en) * 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
US6138214A (en) * 1997-12-19 2000-10-24 Siemens Aktiengesellschaft Synchronous dynamic random access memory architecture for sequential burst mode

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384540A (en) * 1991-11-12 1995-01-24 Molex Incorporated Wire presence and identification system
US5499384A (en) * 1992-12-31 1996-03-12 Seiko Epson Corporation Input output control unit having dedicated paths for controlling the input and output of data between host processor and external device
US5897667A (en) * 1993-11-16 1999-04-27 Intel Corporation Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner
US6195674B1 (en) * 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
US6728813B1 (en) * 1998-02-17 2004-04-27 Renesas Technology Corp. Method and apparatus for converting non-burst write cycles to burst write cycles across a bus bridge
US20160321071A1 (en) * 1998-08-24 2016-11-03 Microunity Systems Engineering, Inc. Processor and method for executing wide operand multiply matrix operations
CN102045258A (zh) * 2010-12-22 2011-05-04 北京星网锐捷网络技术有限公司 数据缓存管理方法及装置
CN102207916A (zh) * 2011-05-30 2011-10-05 西安电子科技大学 一种基于指令预取的多核共享存储器控制设备
CN103139093A (zh) * 2013-02-22 2013-06-05 桂林电子科技大学 基于fpga的高速网络数据流负载均衡调度方法
CN108228498A (zh) * 2017-12-21 2018-06-29 深圳开阳电子股份有限公司 一种dma控制装置和图像处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曹一江;马宁;***;: "MPMC高速存储器接口IP核设计", 哈尔滨理工大学学报, no. 06, 15 December 2012 (2012-12-15) *

Also Published As

Publication number Publication date
US20210097009A1 (en) 2021-04-01
US11487680B2 (en) 2022-11-01
WO2021061413A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
US8139575B2 (en) Device, system and method of modification of PCI express packet digest
US10002085B2 (en) Peripheral component interconnect (PCI) device and system including the PCI
US7702827B2 (en) System and method for a credit based flow device that utilizes PCI express packets having modified headers wherein ID fields includes non-ID data
US7844752B2 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
US7921274B2 (en) Computer memory addressing mode employing memory segmenting and masking
US20090003335A1 (en) Device, System and Method of Fragmentation of PCI Express Packets
US7895376B2 (en) Hardware configuration information system, method, and computer program product
US11640300B2 (en) Byte comparison method for string processing and instruction processing apparatus
US6233632B1 (en) Optimizing peripheral component interconnect transactions in a mixed 32/64-bit environment by eliminating unnecessary data transfers
US20070079015A1 (en) Methods and arrangements to interface a data storage device
US20060112184A1 (en) Adapter card for on-demand formatting of data transfers between network devices
US9384154B2 (en) Method to emulate message signaled interrupts with multiple interrupt vectors
CN112540797A (zh) 指令处理装置和指令处理方法
US11429391B2 (en) Speculative execution of correlated memory access instruction methods, apparatuses and systems
US9389906B2 (en) Latency agnostic transaction buffer for request-grant protocols
KR100453071B1 (ko) 프로세서 버스 연결 장치 및 방법
CN112559397A (zh) 一种装置和方法
US11550587B2 (en) System, device, and method for obtaining instructions from a variable-length instruction set
CN108268280B (zh) 半导体装置的处理器及其操作方法
US6865638B1 (en) Apparatus and method for transferring multi-byte words in a fly-by DMA operation
WO2020174310A1 (en) Compression measurement for computer servers
US9621334B2 (en) Data transmission method and system
CN112306558A (zh) 处理单元、处理器、处理***、电子设备和处理方法
KR20070081981A (ko) 중앙처리 장치가 없는 시스템에서의 인터페이스 방법 및장치
JP4485064B2 (ja) コンピュータシステムバスのアーキテクチャと関連方法

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