CN111045963A - 一种高位宽总线读写的方法及装置 - Google Patents
一种高位宽总线读写的方法及装置 Download PDFInfo
- Publication number
- CN111045963A CN111045963A CN201911287827.4A CN201911287827A CN111045963A CN 111045963 A CN111045963 A CN 111045963A CN 201911287827 A CN201911287827 A CN 201911287827A CN 111045963 A CN111045963 A CN 111045963A
- Authority
- CN
- China
- Prior art keywords
- data
- bit width
- memory
- data bit
- response
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000015654 memory Effects 0.000 claims abstract description 165
- 238000005192 partition Methods 0.000 claims abstract description 62
- 230000005540 biological transmission Effects 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 51
- 230000001133 acceleration Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 7
- 239000002245 particle Substances 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012942 design verification Methods 0.000 description 2
- 239000008187 granular material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明涉及了一种高位宽总线读写的方法及装置,其中该方法包括:根据数据传输通道的数量将内存划分成多个分区;根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽;响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以所述第一数据位宽接收的数据按照第二数据位宽分别写入多个分区;响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出。利用本发明的实施例在大大降低了用户设计和验证内存控制系统的复杂度的前提下,实现了同时读写多块子内存,减小算法在FPGA上实现硬件加速时,内存访问瓶颈。
Description
技术领域
本发明涉及计算机技术领域。本发明进一步涉及一种高位宽总线读写的方法及装置。
背景技术
异构计算是指在一个计算系统中使用不同的计算芯片或者同种芯片采用不同的系统架构形式。传统的计算方式大多采用同构计算系统,例如在一个计算系统中采用CPU(Central Processing Unit,中央处理器)作为单一计算芯片,系统采用集中式的本地计算,就是传统的同构计算系统。当既采用CPU,又采用FPGA(Field Programmable GateArray,现场可编程与门阵列)加速器做计算时,这样的系统就属于异构计算系统。采用FPGA加速卡进行加速计算的异构计算系统,FPGA加速器通常以PCIe(Peripheral ComponentInterface Express,总线和接口标准)外设卡的形式存在,其系统架构如下图所示,FPGA具有天然的并行计算能力,特别适合大位宽的数据流水处理,弥补CPU并行计算的缺点,分担CPU的计算压力,提高整个计算系统的性能,降低系统功耗。
采用FPGA作为异构计算系统的方案中,由于FPGA计算时的高并发数据读写访问内存系统的操作,系统的存储带宽通常是计算的性能瓶颈。DDR内存是一种双倍速率同步动态随机存储器,具有两倍于时钟速率的动态存储器,每片DDR内存具有独立的地址总线、控制总线和数据总线,根据内存不同大小,具有不同的地址位宽,每片内存需要独立的控制总线。由于每个内存颗粒的存储大小有限,当需要很大内存空间时,可以根据控制总线中的片选信号,设计多个DDR内存颗粒组成内存系统,这些内存颗粒共享地址和数据总线,一定程度上减小了多内存系统的信号控制复杂度。
传统增加系统内存带宽的方法是采用多个存储颗粒或者DIMM(Dual In-lineMemory Module,双列直插式存储模块)封装的内存条组成内存系统,将系统中每个颗粒的控制总线、数据总线和地址总线连接到FPGA通用硬件GPIO(General Purpose Input/Output,通用输入输出)上,通过增加FPGA芯片与DDR引脚接口数量来增大容量和带宽。
高带宽存储器(High Bandwidth Memory,HBM)是一种高内存带宽的存储器,采用3D堆叠技术将内存颗粒封装在芯片内部,从而增大系统带宽,降低系统访问内存的延时,减小硬件系统设计复杂度。通常具有HBM的内存系统接口比较复杂,需要设计多路读写通道,达到较大的内存带宽。例如Xilinx VU37P系列FPGA,具有8G容量的HBM,分为两个内存stack,16个内存控制器和32个AXI3-slave内存访问通道(AXI3,高级可扩展接口3,Advanced eXtensible Interfacep 3)。每两个通道公用一个内存控制器(MemoryController,MC),每个控制器可以单独访问正片8G的内存空间,也可以配置为仅能访问256MB的内存空间。用户并行使用HBM内存时,需要同时控制32路AXI3-master控制器,同时读写,如图1所示。
对于第一种采用DDR组成内存系统的方法,硬件上需要设计多DDR颗粒的PCB(Printed Circuit Board,印刷电路板),不仅增加系统硬件材料成本,而且会增加系统PCB设计复杂度。对于FPGA芯片也有较高要求,需要有足够多的引脚支持高带宽DDR内存系统带来的消耗,同时增加系统PCB设计时的布线难度。
第二种采用HBM技术的高带宽内存系统,降低了多内存颗粒在PCB板上设计时的硬件系统复杂度,减小了对FPGA硬件引脚高度占用的依赖,但在FPGA内使用HBM(HighBandwidth Memory,高带宽内存)内存系统的控制器时,用户需要同时控制32路AXI3-master通道才能获取较高带宽的性能,如果仅用1路AXI3-master通道方位整个8G的内存空间,其性能和采用片外多DDR颗粒内存系统差异不大,甚至不如片外多DDR颗粒内存系统。高带宽并行访问内存系统的操作复杂度大大限制了用户的开发使用。
基于上述情况,需要提出一种简便通用的高带宽内存的读写方法,帮助用户回避复杂的高带宽并行访问内存系统的操作,让用户更专注算法加速应用本身,加速用户的设计开发,进一步提高异构计算的效率。
发明内容
一方面,本发明基于上述目的提出了一种高位宽总线读写的方法,其中该方法包括以下步骤:
根据数据传输通道的数量将内存划分成多个分区;
根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽;
响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以所述第一数据位宽接收的数据按照第二数据位宽分别写入多个分区;
响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出。
根据本发明的高位宽总线读写的方法的实施例,其中响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以第一数据位宽接收的数据按照第二数据位宽分别写入多个分区进一步包括:
响应于接收到用户发出的基于高位宽总线协议的写指令,在多个单位时钟周期内连续地以第一数据位宽接收数据,其中,在每个单位时钟周期内,将接收到的数据按照第二数据位宽分割并将分割的数据分别通过数据传输通道写入内存的相应的分区中。
根据本发明的高位宽总线读写的方法的实施例,其中响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出:
响应于接收到用户发出的基于高位宽总线协议的读指令,在多个单位时钟周期内连续地以第二数据位宽从多个分区分别读取相应的数据,其中,在每个单位时钟周期内通过相应的数据传输通道分别传输读取到的数据并将读取到的数据以第一数据位宽整合并输出。
根据本发明的高位宽总线读写的方法的实施例,其中根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽进一步包括:
根据内存大小确定第一数据位宽;
根据内存大小和数据传输通道的数量确定第二数据位宽;
其中,第二数据位宽与数据传输通道的数量的乘积等于第一数据位宽。
根据本发明的高位宽总线读写的方法的实施例,其中高位宽总线协议包括用于写数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号以及用于读数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号。
另一方面,本发明还提出了一种高位宽总线读写的装置,其中该装置包括:
至少一个处理器;和
存储器,该存储器存储有处理器可运行的程序指令,该程序指令在被处理器运行时执行以下步骤:
根据数据传输通道的数量将内存划分成多个分区;
根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽;
响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以所述第一数据位宽接收的数据按照第二数据位宽分别写入多个分区;
响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出。
根据本发明的高位宽总线读写的方法的实施例,其中响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以第一数据位宽接收的数据按照第二数据位宽分别写入多个分区进一步包括:
响应于接收到用户发出的基于高位宽总线协议的写指令,在多个单位时钟周期内连续地以第一数据位宽接收数据,其中,在每个单位时钟周期内,将接收到的数据按照第二数据位宽分割并将分割的数据分别通过数据传输通道写入内存的相应的分区中。
根据本发明的高位宽总线读写的方法的实施例,其中响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出:
响应于接收到用户发出的基于高位宽总线协议的读指令,在多个单位时钟周期内连续地以第二数据位宽从多个分区分别读取相应的数据,其中,在每个单位时钟周期内通过相应的数据传输通道分别传输读取到的数据并将读取到的数据以第一数据位宽整合并输出。
根据本发明的高位宽总线读写的方法的实施例,其中根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽进一步包括:
根据内存大小确定第一数据位宽;
根据内存大小和数据传输通道的数量确定第二数据位宽;
其中,第二数据位宽与数据传输通道的数量的乘积等于第一数据位宽。
根据本发明的高位宽总线读写的方法的实施例,其中高位宽总线协议包括用于写数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号以及用于读数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号。
采用上述技术方案,本发明至少具有如下有益效果:针对传统DDR颗粒组成的内存系统,该方法接口简便,通用性强,占用FPGA芯片硬件管脚少;针对高带宽内存类型的FPGA内存系统,该方法定义的接口数据总线更宽,用户侧总线接口信号少,更容易理解,大大降低了用户设计和验证内存控制系统的复杂度。换句话说,本发明的实施例的主要优点至少包括:1.降低使用FPGA片内高带宽内存时,内存控制系统的设计验证复杂度;2.减少内存控制系统对外接口信号数据量,屏蔽非必要的内部控制信号;3.使用一路总线访问多个stack内存,内部调用多路AXI3-master总线,简化用户使用控制器复杂度,实现同时读写多块子内存,减小算法在FPGA上实现硬件加速时,内存访问瓶颈。
本发明提供了实施例的各方面,不应当用于限制本发明的保护范围。根据在此描述的技术可设想到其它实施方式,这对于本领域普通技术人员来说在研究以下附图和具体实施方式后将是显而易见的,并且这些实施方式意图被包含在本申请的范围内。
下面参考附图更详细地解释和描述了本发明的实施例,但它们不应理解为对于本发明的限制。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对现有技术和实施例描述中所需要使用的附图作简单地介绍,附图中的部件不一定按比例绘制,并且可以省略相关的元件,或者在一些情况下比例可能已经被放大,以便强调和清楚地示出本文描述的新颖特征。另外,如本领域中已知的,结构顺序可以被不同地布置。
图1示出了现有的FPGA内高带宽内存读写控制的框架的示意图;
图2示出了根据本发明的高位宽总线读写的方法的实施例的示意性框图;
图3示出了根据本发明的高位宽总线读写的方法的FPGA内高带宽内存读写控制的框架的实施例的示意图;
图4示出了图3所示的HBM高带宽内存控制器的结构的实施例的示意图;
图5示出了经图4的HBM高带宽内存控制器读写HBM高带宽内存的实施例的示意图。
具体实施方式
虽然本发明可以以各种形式实施,但是在附图中示出并且在下文中将描述一些示例性和非限制性实施例,但应该理解的是,本公开将被认为是本发明的示例并不意图将本发明限制于所说明的具体实施例。
在下文就本发明的实施例的说明中需要注意的是,其中提到的步骤的编号在没有特殊说明的情况下,仅用于便捷明确地指示该步骤,并不限定所述步骤的顺序。
为了解决如图1所示的现有的FPGA内高带宽内存读写控制中存在的用户需要同时控制32路AXI3-master通道才能获取较高带宽的性能,使得高带宽并行访问内存系统的操作复杂度大大限制了用户的开发使用的问题,在本发明的实施例中提出了一种简便通用的高带宽内存的读写方法,帮助用户回避复杂的高带宽并行访问内存系统的操作。
图2示出了根据本发明的高位宽总线读写的方法的实施例的示意性框图。在如图2所示的实施例中,该方法至少包括以下步骤:
S1:根据数据传输通道的数量将内存划分成多个分区;
S2:根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽;
S3:响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以第一数据位宽接收的数据按照第二数据位宽分别写入多个分区;
S4:响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出。
首先,为了规避用户需要同时控制32路AXI3-master通道才能获取较高带宽的性能的问题,如图3示意性地示出了本发明提出的根据本发明的高位宽总线读写的方法的FPGA内高带宽内存读写控制的框架,其中借助于该高带宽内存控制器用户只需基于本发明提出的高位宽总线协议在应用程序层发出简单的写指令或读指令即可,由高带宽内存控制器完成数据传输通道的控制的过程。在上述高带宽内存控制器中,执行以上步骤S1至S4的操作。其中,步骤S1根据数据传输通道的数量将内存划分成多个分区。例如,当使用32路AXI3-master通道时,将HBM划分成32各分区,分别编号为S00至S31。步骤S2根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽。其中,第一数据位宽为用户端位宽,而第二数据位宽为内存端位宽。随后,当接收到用户发出的基于高位宽总线协议的写指令时,步骤S3将单位时钟周期内以第一数据位宽接收的数据按照第二数据位宽分别写入多个分区。也就是说,在每个单位时钟周期内,高带宽内存控制器会将接收到的第一数据位宽大小的数据按照第二数据位宽进行分割,并相应地写入内存的各个分区中。换句话说,可以认为每一个单位时钟周期内写入的数据是连续的,而单一分区中存储的数据则是以第二数据位宽为“单位”以第一数据位宽为“间距”离散的。根据待写入数据的大小的不同,经过多个单位时钟周期后完成数据的写入(输入)。而当接收到用户发出的基于高位宽总线协议的读指令,步骤S4将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出。也就是说,在每个单位时钟周期内,高带宽内存控制器会将以第二数据位宽从多个分区读取的数据进行整合处理,然后以第一数据位宽输出给用户。换句话说,可以认为每一个单位时钟周期内将各个分区中第二数据位宽大小的离散的数据按照写入时的顺序“拼接在一起”,然后以第一数据位宽整体输出。根据待读取数据的大小的不同,经过多个单位时钟周期后完成数据的读取(输出)。图4具体地示出了图3所示的HBM高带宽内存控制器的结构的实施例的示意图。
以前述FPGA为例,参考图3,底层例化HBM内存控制器的单通道控制器,在应用层和底层控制器之间增加一个HBM总内存控制器模块,在该模块内将HBM高带宽模式下32路AXI3-master接口转换成易用的高位宽总线。具体地说,例化具有32路AXI3-slave接口的高带宽HBM控制器,使每一路仅访问8G内存中256M的空间,这样可以减少读写访问延时,提高读写性能。以上述32路数据传输通道、每个通道访问256M空间的配置为例,确定第一数据位宽为8192位(32*256),第二数据位宽为256位,高带宽内存控制器一方面从高位宽数据总线按照8192位宽接受数据或将数据发送给高位宽数据总线,经过读写FIFO(First In FirstOut,先进先出)缓存,另一方面将经过数据分发转换模块处理为32路的第二数据位宽256位的数据发送给标准AXI3总线或从标准AXI3总线接收32路的第二数据位宽256位的数据。当用户在应用程序中发出读/写内存的指令时,高带宽内存控制器根据该指令执行相应的读操作或者写操作。例如,在接收到用户发出的基于高位宽总线协议的写指令时,在每个单位时钟周期内,高带宽内存控制器会将接收到的第一数据位宽大小的数据按照第二数据位宽进行分割,即将8192位的数据每256位分为一份,并相应地写入内存的各个分区中,例如第1份(0~255)位写入S00,第2份(256~511)位写入S01,依此类推,第32份(7935~8191)位写入S31。
需要注意的是,在本文中涉及的8G内存、32路AXI3总线等旨在清楚地解释说明本发明的实施例,而非限定本发明。根据FPGA的实际情况、异构计算的效率需求可以扩大或减小内存的大小、增加或减少数据传输通道的数量。
在本发明的高位宽总线读写的方法的一些实施例中,步骤S3响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以第一数据位宽接收的数据按照第二数据位宽分别写入多个分区进一步包括:
S31:响应于接收到用户发出的基于高位宽总线协议的写指令,在多个单位时钟周期内连续地以第一数据位宽接收数据,其中,
在每个单位时钟周期内,将接收到的数据按照第二数据位宽分割并将分割的数据分别通过数据传输通道写入内存的相应的分区中。
具体地说,当接收到用户发出的基于高位宽总线协议的写指令时,步骤S31高带宽内存控制器会在多个单位时钟周期内连续地以第一数据位宽接收的数据。针对每一个单位时钟周期内,高带宽内存控制器会对数据进一步进行转发处理,包括将接收到的数据按照第二数据位宽分割并将分割的数据分别通过数据传输通道写入内存的相应的分区中。参见图5,以前述示例进一步说明就是第1份(0~255)位通过AXI3总线S00写入内存分区S00,第2份(256~511)位通过AXI3总线S01写入内存分区S01,依此类推,第32份(7935~8191)位通过AXI3总线S31写入内存分区S31。
在本发明的高位宽总线读写的方法的一些实施例中,步骤S4响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出:
S41:响应于接收到用户发出的基于高位宽总线协议的读指令,在多个单位时钟周期内连续地以第二数据位宽从多个分区分别读取相应的数据,其中,在每个单位时钟周期内,通过相应的数据传输通道分别传输读取到的数据并将读取到的数据以第一数据位宽整合并输出。
也就是说,当接收到用户发出的基于高位宽总线协议的读指令时,步骤S41高带宽内存控制器会在多个单位时钟周期内连续地以第二数据位宽从多个分区分别读取相应的数据。针对每一个单位时钟周期内,高带宽内存控制器会对数据进一步进行整合处理,包括通过相应的数据传输通道分别传输读取到的数据并将读取到的数据以第一数据位宽整合并输出。参见图5,以前述示例进一步说明,单位时钟周期内,从内存分区S00读取到的256位的数据通过AXI3总线S00传输到高带宽内存控制器中作为该单位时钟周期的第1份(0~255)位的数据,从内存分区S01读取到的256位的数据通过AXI3总线S01传输到高带宽内存控制器中作为该单位时钟周期的第2份(256~511)位的数据,依此类推,从内存分区S31读取到的256位的数据通过AXI3总线S31传输到高带宽内存控制器中作为该单位时钟周期的第32份(7935~8191)位的数据。然后将上述32份数据按顺序整合为8192位宽的数据并输出。
在本发明的高位宽总线读写的方法的一些实施例中,步骤S2根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽进一步包括:
S21:根据内存大小确定第一数据位宽;
S22:根据内存大小和数据传输通道的数量确定第二数据位宽;
其中,第二数据位宽与数据传输通道的数量的乘积等于第一数据位宽。
优选地,为了充分利用带宽提高传输效率,根据内存大小确定第一数据位宽,例如8G(=8192M)内存则规定第一数据位宽为8192位,提供了32路数据传输通道,则将第一数据位宽的8192位均分给这32路数据传输通道,即规定第二数据位宽为256位,使得每一路数据传输通道传输256位。数据位宽越大,总线读写带宽越大。此外,除了要规定第一、第二数据位宽以外,还应设定地址总线位宽,并且地址总线位宽大小取决于HBM内存大小和每一路数据传输通道(AXI3-master)的总线控制的内存大小。
在本发明的高位宽总线读写的方法的一些实施例中,高位宽总线协议包括用于写数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号以及用于读数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号。也就是说,本发明的方法定义了高位宽总线接口协议,其中采用req、ack、valid、data、data_type、data_index信号形式,输入输出端口如下表所示:
信号类型 | 读信号 | 写信号 |
请求信号 | Req_rd | Req_wr |
响应信号 | Ack_rd | Ack_wr |
有效信号 | Valid_rd | Valid_wr |
数据信号 | Data_rd | Data_wr |
数据类型信号 | Data_type_rd | Data_type_wr |
数据索引信号 | Data_index_rd | Data_index_wr |
在上述高位宽总线协议中,用户不再需要关注如何控制大量的数据传输通道(例如32路AXI3-master通道)才能获取较高带宽的性能,而只需专注与算法加速应用本身,利用单纯的读/写指令执行相应的操作。
另一方面,本发明还提出了一种高位宽总线读写的装置,其中该装置包括:至少一个处理器;和存储器,该存储器存储有处理器可运行的程序指令,该程序指令在被处理器运行时执行以下步骤:
S1:根据数据传输通道的数量将内存划分成多个分区;
S2:根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽;
S3:响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以所述第一数据位宽接收的数据按照第二数据位宽分别写入多个分区;
S4:响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出。
在本发明的高位宽总线读写的装置的一些实施例中,步骤S3响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以第一数据位宽接收的数据按照第二数据位宽分别写入多个分区进一步包括:
S31:响应于接收到用户发出的基于高位宽总线协议的写指令,在多个单位时钟周期内连续地以第一数据位宽接收数据,其中,在在每个单位时钟周期内,将接收到的数据按照第二数据位宽分割并将分割的数据分别通过数据传输通道写入内存的相应的分区中。
在本发明的高位宽总线读写的装置的一些实施例中,步骤S4响应于接收到用户发出的基于高位宽总线协议的读指令,将单位时钟周期内以第二数据位宽从多个分区读取的数据以第一数据位宽输出:
S41:响应于接收到用户发出的基于高位宽总线协议的读指令,在多个单位时钟周期内连续地以第二数据位宽从多个分区分别读取相应的数据,其中,在每个单位时钟周期内,通过相应的数据传输通道分别传输读取到的数据并将读取到的数据以第一数据位宽整合并输出。
在本发明的高位宽总线读写的装置的一些实施例中,步骤S2根据内存大小和数据传输通道的数量确定第一数据位宽和第二数据位宽进一步包括:
S21:根据内存大小确定第一数据位宽;
S22:根据内存大小和数据传输通道的数量确定第二数据位宽;
S23:第二数据位宽与数据传输通道的数量的乘积等于第一数据位宽。
在本发明的高位宽总线读写的装置的一些实施例中,高位宽总线协议包括用于写数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号以及用于读数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号。
本发明实施例公开所述的装置、设备等可为各种电子终端设备,例如手机、个人数字助理(PDA)、平板电脑(PAD)、智能电视等,也可以是大型终端设备,如服务器等,因此本发明实施例公开的保护范围不应限定为某种特定类型的装置、设备。本发明实施例公开所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。
本文所述的计算机可读存储介质(例如存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
采用上述技术方案,本发明至少具有如下有益效果:针对传统DDR颗粒组成的内存系统,该方法接口简便,通用性强,占用FPGA芯片硬件管脚少;针对高带宽内存类型的FPGA内存系统,该方法定义的接口数据总线更宽,用户侧总线接口信号少,更容易理解,大大降低了用户设计和验证内存控制系统的复杂度。换句话说,本发明的实施例的主要优点至少包括:1.降低使用FPGA片内高带宽内存时,内存控制系统的设计验证复杂度;2.减少内存控制系统对外接口信号数据量,屏蔽非必要的内部控制信号;3.使用一路总线访问多个stack内存,内部调用多路AXI3-master总线,简化用户使用控制器复杂度,实现同时读写多块子内存,减小算法在FPGA上实现硬件加速时,内存访问瓶颈。
应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本发明范围内的另外实施例。此外,本文所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤及顺序做出相应修改而不脱离本发明的保护范围。
在本申请中,反意连接词的使用旨在包括连接词。定或不定冠词的使用并不旨在指示基数。具体而言,对“该”对象或“一”和“一个”对象的引用旨在表示多个这样对象中可能的一个。然而,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。此外,可以使用连接词“或”来传达同时存在的特征,而不是互斥方案。换句话说,连接词“或”应理解为包括“和/或”。术语“包括”是包容性的并且具有与“包含”相同的范围。
上述实施例,特别是任何“优选”实施例是实施方式的可能示例,并且仅仅为了清楚理解本发明的原理而提出。在基本上不脱离本文描述的技术的精神和原理的情况下,可以对上述实施例做出许多变化和修改。所有修改旨在被包括在本公开的范围内。
Claims (10)
1.一种高位宽总线读写的方法,其特征在于,所述方法包括以下步骤:
根据数据传输通道的数量将内存划分成多个分区;
根据内存大小和所述数据传输通道的数量确定第一数据位宽和第二数据位宽;
响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以所述第一数据位宽接收的数据按照所述第二数据位宽分别写入所述多个分区;
响应于接收到用户发出的基于高位宽总线协议的读指令,将所述单位时钟周期内以所述第二数据位宽从所述多个分区读取的数据以所述第一数据位宽输出。
2.根据权利要求1所述的方法,其特征在于,所述响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以所述第一数据位宽接收的数据按照所述第二数据位宽分别写入所述多个分区进一步包括:
响应于接收到用户发出的基于高位宽总线协议的写指令,在多个单位时钟周期内连续地以所述第一数据位宽接收数据,其中,在每个单位时钟周期内,将接收到的所述数据按照所述第二数据位宽分割并分别通过所述数据传输通道写入所述内存的相应的分区中。
3.根据权利要求1所述的方法,其特征在于,所述响应于接收到用户发出的基于高位宽总线协议的读指令,将所述单位时钟周期内以所述第二数据位宽从所述多个分区读取的数据以所述第一数据位宽输出:
响应于接收到用户发出的基于高位宽总线协议的读指令,在多个单位时钟周期内连续地以所述第二数据位宽从所述多个分区分别读取相应的数据,其中,在每个单位时钟周期内,通过相应的所述数据传输通道分别传输读取到的数据并将所述读取到的数据以所述第一数据位宽整合并输出。
4.根据权利要求1所述的方法,其特征在于,所述根据内存大小和所述数据传输通道的数量确定第一数据位宽和第二数据位宽进一步包括:
根据所述内存大小确定所述第一数据位宽;
根据所述内存大小和所述数据传输通道的数量确定所述第二数据位宽;
其中,所述第二数据位宽与所述数据传输通道的数量的乘积等于所述第一数据位宽。
5.根据权利要求1所述的方法,其特征在于,所述高位宽总线协议包括用于写数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号以及用于读数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号。
6.一种高位宽总线读写的装置,其特征在于,所述装置包括:
至少一个处理器;和
存储器,所述存储器存储有处理器可运行的程序指令,所述程序指令在被处理器运行时执行以下步骤:
根据数据传输通道的数量将内存划分成多个分区;
根据内存大小和所述数据传输通道的数量确定第一数据位宽和第二数据位宽;
响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以所述第一数据位宽接收的数据按照所述第二数据位宽分别写入所述多个分区;
响应于接收到用户发出的基于高位宽总线协议的读指令,将所述单位时钟周期内以所述第二数据位宽从所述多个分区读取的数据以所述第一数据位宽输出。
7.根据权利要求6所述的装置,其特征在于,所述响应于接收到用户发出的基于高位宽总线协议的写指令,将单位时钟周期内以所述第一数据位宽接收的数据按照所述第二数据位宽分别写入所述多个分区进一步包括:
响应于接收到用户发出的基于高位宽总线协议的写指令,在多个单位时钟周期内连续地以所述第一数据位宽接收数据,其中,在每个单位时钟周期内,将接收到的所述数据按照所述第二数据位宽分割并将所述分割的数据分别通过所述数据传输通道写入所述内存的相应的分区中。
8.根据权利要求6所述的装置,其特征在于,所述响应于接收到用户发出的基于高位宽总线协议的读指令,将所述单位时钟周期内以所述第二数据位宽从所述多个分区读取的数据以所述第一数据位宽输出:
响应于接收到用户发出的基于高位宽总线协议的读指令,在多个单位时钟周期内连续地以所述第二数据位宽从所述多个分区分别读取相应的数据,其中,在每个单位时钟周期内,通过相应的所述数据传输通道分别传输读取到的数据并将所述读取到的数据以所述第一数据位宽整合并输出。
9.根据权利要求6所述的装置,其特征在于,所述根据内存大小和所述数据传输通道的数量确定第一数据位宽和第二数据位宽进一步包括:
根据所述内存大小确定所述第一数据位宽;
根据所述内存大小和所述数据传输通道的数量确定所述第二数据位宽;
其中,所述第二数据位宽与所述数据传输通道的数量的乘积等于所述第一数据位宽。
10.根据权利要求6所述的装置,其特征在于,所述高位宽总线协议包括用于写数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号以及用于读数据的请求信号、响应信号、有效信号、数据信号、数据类型信号和数据索引信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911287827.4A CN111045963A (zh) | 2019-12-15 | 2019-12-15 | 一种高位宽总线读写的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911287827.4A CN111045963A (zh) | 2019-12-15 | 2019-12-15 | 一种高位宽总线读写的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111045963A true CN111045963A (zh) | 2020-04-21 |
Family
ID=70236421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911287827.4A Pending CN111045963A (zh) | 2019-12-15 | 2019-12-15 | 一种高位宽总线读写的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111045963A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708483A (zh) * | 2020-05-13 | 2020-09-25 | 北京无线电计量测试研究所 | 一种信号延时方法和装置 |
CN111949585A (zh) * | 2020-07-15 | 2020-11-17 | 西安万像电子科技有限公司 | 数据转换处理方法及装置 |
WO2022057911A1 (zh) * | 2020-09-18 | 2022-03-24 | 华为技术有限公司 | 一种缓冲器、存储器设备和内存总线信号处理方法 |
WO2022109975A1 (zh) * | 2020-11-27 | 2022-06-02 | 华为技术有限公司 | 存储芯片、存储设备及其访问方法 |
CN116049060A (zh) * | 2022-01-06 | 2023-05-02 | 海光信息技术股份有限公司 | 数据转换桥电路和数据传输系统 |
WO2023202235A1 (zh) * | 2022-04-21 | 2023-10-26 | 华为技术有限公司 | 内存控制器、内存、内存控制方法及相关设备 |
WO2023246132A1 (zh) * | 2022-06-20 | 2023-12-28 | 哲库科技(上海)有限公司 | 通道分路器、存储控制装置、片上系统及终端 |
CN117573044A (zh) * | 2024-01-18 | 2024-02-20 | 西安智多晶微电子有限公司 | 一种拼接实现扩展ddrc位宽的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959661A (zh) * | 2006-11-21 | 2007-05-09 | 北京中星微电子有限公司 | 一种总线接口装置和方法 |
CN102684976A (zh) * | 2011-03-10 | 2012-09-19 | 中兴通讯股份有限公司 | 一种基于ddr sdram进行数据读写的方法、装置及系统 |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、系统及其装置 |
CN106569975A (zh) * | 2016-11-02 | 2017-04-19 | 北京航天长征飞行器研究所 | 一种基于高速串行总线的大容量数据实时存储系统 |
CN110134365A (zh) * | 2019-05-21 | 2019-08-16 | 合肥工业大学 | 一种多通道并行读出fifo的方法及装置 |
-
2019
- 2019-12-15 CN CN201911287827.4A patent/CN111045963A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959661A (zh) * | 2006-11-21 | 2007-05-09 | 北京中星微电子有限公司 | 一种总线接口装置和方法 |
CN102684976A (zh) * | 2011-03-10 | 2012-09-19 | 中兴通讯股份有限公司 | 一种基于ddr sdram进行数据读写的方法、装置及系统 |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、系统及其装置 |
CN106569975A (zh) * | 2016-11-02 | 2017-04-19 | 北京航天长征飞行器研究所 | 一种基于高速串行总线的大容量数据实时存储系统 |
CN110134365A (zh) * | 2019-05-21 | 2019-08-16 | 合肥工业大学 | 一种多通道并行读出fifo的方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708483A (zh) * | 2020-05-13 | 2020-09-25 | 北京无线电计量测试研究所 | 一种信号延时方法和装置 |
CN111708483B (zh) * | 2020-05-13 | 2023-07-25 | 北京无线电计量测试研究所 | 一种信号延时方法和装置 |
CN111949585A (zh) * | 2020-07-15 | 2020-11-17 | 西安万像电子科技有限公司 | 数据转换处理方法及装置 |
WO2022057911A1 (zh) * | 2020-09-18 | 2022-03-24 | 华为技术有限公司 | 一种缓冲器、存储器设备和内存总线信号处理方法 |
WO2022109975A1 (zh) * | 2020-11-27 | 2022-06-02 | 华为技术有限公司 | 存储芯片、存储设备及其访问方法 |
CN116049060A (zh) * | 2022-01-06 | 2023-05-02 | 海光信息技术股份有限公司 | 数据转换桥电路和数据传输系统 |
CN116049060B (zh) * | 2022-01-06 | 2024-05-03 | 海光信息技术股份有限公司 | 数据转换桥电路和数据传输系统 |
WO2023202235A1 (zh) * | 2022-04-21 | 2023-10-26 | 华为技术有限公司 | 内存控制器、内存、内存控制方法及相关设备 |
WO2023246132A1 (zh) * | 2022-06-20 | 2023-12-28 | 哲库科技(上海)有限公司 | 通道分路器、存储控制装置、片上系统及终端 |
CN117573044A (zh) * | 2024-01-18 | 2024-02-20 | 西安智多晶微电子有限公司 | 一种拼接实现扩展ddrc位宽的方法及装置 |
CN117573044B (zh) * | 2024-01-18 | 2024-04-30 | 西安智多晶微电子有限公司 | 一种拼接实现扩展ddrc位宽的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111045963A (zh) | 一种高位宽总线读写的方法及装置 | |
US11216376B2 (en) | Memory circuit and cache circuit configuration | |
KR102387977B1 (ko) | 적어도 두 개의 채널들을 통해 시스템 온 칩과 통신하는 메모리 장치, 이를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법 | |
US10262699B2 (en) | Memory device for performing internal process and operating method thereof | |
CN107924693B (zh) | 多区块系统中的可编程的片上端接定时 | |
US9293170B2 (en) | Configurable bandwidth memory devices and methods | |
US10884958B2 (en) | DIMM for a high bandwidth memory channel | |
US11474950B2 (en) | Memory controller including plurality of address mapping tables, system on chip, and electronic device | |
WO2017123327A1 (en) | Techniques to access or operate a dual in-line memory module via multiple data channels | |
US8006026B2 (en) | Multi-port memory and computer system provided with the same | |
US9696941B1 (en) | Memory system including memory buffer | |
US9390017B2 (en) | Write and read collision avoidance in single port memory devices | |
US9275692B2 (en) | Memory, memory controllers, and methods for dynamically switching a data masking/data bus inversion input | |
KR20210095009A (ko) | 고속 및 저전력으로 데이터를 송수신하는 메모리 장치 | |
US10963404B2 (en) | High bandwidth DIMM | |
US20190042095A1 (en) | Memory module designed to conform to a first memory chip specification having memory chips designed to conform to a second memory chip specification | |
US10978131B2 (en) | Mobile device and operation method thereof | |
Khalifa et al. | Memory controller architectures: A comparative study | |
US11983059B2 (en) | Memory expansion card | |
US20220012173A1 (en) | Flexible configuration of memory module data width | |
US11403035B2 (en) | Memory module including a controller and interfaces for communicating with a host and another memory module | |
US11893240B2 (en) | Reducing latency in pseudo channel based memory systems | |
US11960735B2 (en) | Memory channel controller operation based on data types | |
US20240177745A1 (en) | Sharable Usage-Based Disturbance Circuitry | |
US20240170038A1 (en) | Adaptive Refresh Staggering |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200421 |
|
RJ01 | Rejection of invention patent application after publication |