CN114610231A - 大位宽数据总线分段存储的控制方法、系统、设备及介质 - Google Patents
大位宽数据总线分段存储的控制方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN114610231A CN114610231A CN202210117095.XA CN202210117095A CN114610231A CN 114610231 A CN114610231 A CN 114610231A CN 202210117095 A CN202210117095 A CN 202210117095A CN 114610231 A CN114610231 A CN 114610231A
- Authority
- CN
- China
- Prior art keywords
- data
- segment
- address
- memory
- calculating
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Bus Control (AREA)
Abstract
本发明属于数据传输存储技术领域,公开了一种大位宽数据总线分段存储的控制方法、系统、设备及介质,计算每个数据的起始地址和结束地址;计算跨行标志;计算分段存储器的字节使能;计算分段存储器的段使能;计算分段存储器的地址和数据格式。由于本发明排空了存储器中的气泡空间,减少了因小批量数据而需要额外访问存储器的次数,保证每次访问存储器都是100%的带宽,提高了存储器的吞吐率。由于本发明排空了存储器中的气泡空间,因而存储器中不存在内存碎片,每个比特位都能被使用到,存储器空间的利用率得到极大提升。本发明提高了对大位宽总线数据进行存储的吞吐率,保证每次访问存储器是100%的带宽,并提高了存储器存储空间利用率。
Description
技术领域
本发明属于数据传输存储技术领域,尤其涉及一种大位宽数据总线分段存储的控制方法、系统、设备及介质。
背景技术
目前,大位宽数据总线常用于高速总线并行化后,具有位宽大、带宽高等特点;应用于如PCIe、USB、高速以太网等领域。在大位宽数据总线进行数据传输的过程中势必需要对缓冲存储器存入或读出大批量数据,而数据存取的方式会影响存储器带宽,进而影响系统的性能。
当前在大位宽数据总线的数据传输应用中,使用双口RAM或FIFO实现对数据的接收缓冲。但因系统功能的不同,可能需要访存过程遵循地址对界的规则,这样可能会导致在数据总线上的数据帧的第一个数据因访存地址对界而使其仅携带较小的数据量;在数据帧最后一个数据中因剩余数据量较小也携带较小的数据量,使用传统RAM或FIFO缓存时,这两个数据虽然携带数据量较小,但仍然需要占用两个存储空间,后续处理电路读取存储器中的这部分数据时也需要读两次,这样就给系统带宽带来了浪费,需要多耗费时间去读取很小的数据量,并且小数据量会独自占用存储单元,形成内存碎片,浪费了存储资源。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有技术没有充分利用存储器的带宽,面对传输中存在的小批量数据不能发挥最大效率,需要多耗费时间去读取和处理。
(2)现有技术没有充分利用存储器的空间,传输中的小数据量会单独占用存储单元,此存储单元中的其他存储空间不可被使用,形成了内存碎片,使存储器有效空间减少。
解决以上问题及缺陷的难度为:需要为存储器划分存储段,建立普通存储器接口与分段存储器之间的映射关系,让使用分段存储器如同使用普通存储器一样方便。
解决以上问题及缺陷的意义为:本发明提高了对大位宽总线数据进行存储的吞吐率,保证每次访问存储器都是100%的带宽,并提高了存储器存储空间的利用率。
发明内容
针对现有技术存在的问题,本发明提供了一种大位宽数据总线分段存储的控制方法、系统、设备及介质,用于提高存储器吞吐率,增加存储器利用率。
本发明是这样实现的,一种大位宽数据总线分段存储的控制方法,所述大位宽数据总线分段存储的控制方法包括以下步骤:
步骤一,计算每个数据的起始地址和结束地址;
步骤二,计算跨行标志;
步骤三,计算分段存储器的字节使能;
步骤四,计算分段存储器的段使能;
步骤五,计算分段存储器的地址;
步骤六,计算分段存储器的数据格式。
进一步,所述步骤一中的计算每个数据的起始地址和结束地址包括:
存入一帧数据流中非最后一个数据时,以Local-Link写接口输入的地址为起始,每次以字节为单位累加Local-Link数据总线的宽度作为数据的起始地址,起始地址以字节为单位加上数据总线的宽度作为结束地址;存入一帧数据流中最后一个数据时,以前一个数据的起始地址为基准,以字节为单位加上数据总线的宽度作为起始地址,起始地址加上一帧数据流中最后一个数据的有效字节数作为结束地址;存入单数据的数据帧时,起始地址为Local-Link写接口输入的地址,起始地址加上这个数据的有效字节数作为结束地址。
其中,所述Local-Link写接口定义如下:
数据总线,位宽与一个存储段的位宽相同;
地址总线,位宽为分段存储器一段的地址位宽与分段存储器所有段字节使能位宽取以2为底的对数之和;
字节有效,表示一帧中最后一个数据的最后一个有效字节;
起始信号,表示一帧的第一个数据;
结束信号,表示一帧的最后一个数据;
有效信号,表示总线上传输的所有信号是有效的;
准备信号,表示RAM未满。
进一步,所述步骤二中的计算跨行标志包括:
使用逻辑右移将起始地址以字节为单位除以所有存储段的数据位宽,结果为起始地址所在存储器的行号;使用逻辑右移将结束地址以字节为单位除以所有存储段的数据位宽,结果为结束地址所在的存储器行号;将两个结果对比,若一致则本次存储数据未出现跨行现象,否则将对跨行部分的数据进行处理。
进一步,所述步骤三中的计算分段存储器的字节使能包括:
若存储数据未出现跨行现象,将所有bit位为1的序列左移起始地址的低位得到以起始地址为视角的字节使能,将所有bit位为1的序列右移结束地址的低位的补数得到以结束地址为视角的字节使能;将以起始地址为视角的字节使能和以结束地址为视角的字节使能进行按位与,得到本次数据在分段存储器中使用的字节使能;若存储数据出现跨行现象,将以起始地址为视角的字节使能和以结束地址为视角的字节使能进行按位或,得到本次数据在分段存储器中使用的字节使能。
进一步,所述步骤四中的计算分段存储器的段使能包括:
将字节使能按存储段划分,若所属存储段的字节使能全部为0,则该存储段的段使能清零;若所属存储段的字节使能非0,则该存储段的段使能置位;
所述步骤五中的计算分段存储器的地址包括:
若存储数据未出现跨行现象,取起始地址表达存储行号的高位,将其作为分段存储器各段的行地址;若存储数据出现跨行现象,则将段号为0的存储段的行地址在原行地址上加1,其余段的行地址计算方法不变;
所述步骤六中的计算分段存储器的数据格式包括:
将数据复制成段数加1份并拼接成一个数据,取起始地址的低位表示起始地址在一个存储段中的偏移,将拼接后的数据按偏移进行逻辑右移操作,将拼接数据中的其中一个数据段的0bit位与起始地址所在的位置对齐。
进一步,所述用于大位宽数据总线分段存储的控制器的读操作包括:
(1)计算每个数据的读起始地址:
读取一帧数据流中第一个数据时,以Local-Link读接口输入的地址为读起始地址;读取一帧数据流中非第一个数据时,读起始地址为在Local-Link读接口输入的地址的基础上以字节为单位累加单个存储段的位宽;
(2)计算分段存储器的段使能:
分段存储器的段使能与读掩码的值一致;
(3)计算分段存储器的地址:
当掩码中对应段号的bit位为1时,取起始地址表达存储行号的高位,将其作为分段存储器各段的行地址;当掩码中对应段号的bit位为0时,该段行地址不变;
(4)计算输出数据帧的最后一个数据的字节使能:
由Local-Link请求数据量计算按数据总线的位宽对齐后剩余的字节数,通过逻辑右移换算为数据帧的最后一个数据的字节使能;
(5)计算输出数据:
由存储器的段使能将被使能的段中的数据放到Local-Link的输出数据总线。
其中,所述步骤(1)中的Local-Link读请求接口定义如下:
读地址,读存储器的起始地址;
读长度,读存储器数据的长度,单位为字节;
读使能,读地址有效,启动读取;
存储器空标志,表示存储器已经读空。
所述步骤(1)中的Local-Link读响应接口定义如下:
读数据,读出的数据,位宽等于一个存储段的位宽;
读字节使能,读出数据帧的最后一个数据的字节使能;
起始信号,表示输出帧的第一个数据;
结束信号,表示输出帧的最后一个数据;
有效信号,表示输出数据有效;
准备信号,表示读取者准备好接收数据。
所述步骤(2)中的读掩码是将读起始地址中表示不循环段号的高位进行模2运算得到的结果,表示循环的段号,取值范围为[0,段数-1]。
本发明的另一目的在于提供一种实施所述的大位宽数据总线分段存储的控制方法的大位宽数据总线分段存储的控制系统,所述大位宽数据总线分段存储的控制系统包括:
数据地址计算模块,用于计算每个数据的起始地址和结束地址;
跨行标志计算模块,用于计算跨行标志;
字节使能计算模块,用于计算分段存储器的字节使能;
段使能计算模块,用于计算分段存储器的段使能;
地址计算模块,用于计算分段存储器的地址;
数据格式计算模块,用于计算分段存储器的数据格式。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
计算每个数据的起始地址和结束地址;计算跨行标志;计算分段存储器的字节使能;计算分段存储器的段使能;计算分段存储器的地址和数据格式。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
计算每个数据的起始地址和结束地址;计算跨行标志;计算分段存储器的字节使能;计算分段存储器的段使能;计算分段存储器的地址和数据格式。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的大位宽数据总线分段存储的控制系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的大位宽数据总线分段存储的控制方法,由存储器和控制器构成,将一块存储器分为多段管理,控制器的用户侧接口设计为操作方便的Local-Link接口,以此屏蔽了内部的控制逻辑和映射规则,控制器依据Local-Link接口携带的数据流信息自动分配存储段号和段内存储空间,并将数据流中的每个数据以紧密排列的方式存储,排空存储器中的气泡空间;本发明适用于大位宽的数据总线,当数据总线上需要有数据进行存储时,分段存储器能够有效地排空气泡空间,使一帧数据连为一个整体,方便后续处理电路从分段存储器中连续读取此帧数据而不必考虑一帧中的每个小段数据在存储单元的哪个位置,提高了存储器的吞吐率;存储器中没有了气泡空间,可以提高存储器的利用率。
由于本发明排空了存储器中的气泡空间,减少了因小批量数据而需要额外访问存储器的次数,保证每次访问存储器都是100%的带宽,提高了存储器的吞吐率。由于本发明排空了存储器中的气泡空间,因而存储器中不存在内存碎片,每个比特位都能被使用到,存储器空间的利用率得到极大提升。本发明提高了对大位宽总线数据进行存储的吞吐率,保证每次访问存储器都是100%的带宽,并提高了存储器存储空间的利用率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的大位宽数据总线分段存储的控制方法流程图。
图2是本发明实施例提供的大位宽数据总线分段存储的控制系统结构框图;
图3是本发明实施例提供的存储结构图。
图4是本发明实施例提供的分段存储器接口图。
图5是本发明实施例提供的分段存储控制器接口图。
图6是本发明实施例提供的仿真流程示意图。
图7是本发明实施例提供的仿真写操作的数据。
图8是本发明实施例提供的仿真读操作的数据为。
图中:1、数据地址计算模块;2、跨行标志计算模块;3、字节使能计算模块;4、段使能计算模块;5、地址计算模块;6、数据格式计算模块。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种大位宽数据总线分段存储的控制方法、系统、设备及介质,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的大位宽数据总线分段存储的控制方法,包括以下步骤:
S101,计算每个数据的起始地址和结束地址;
S102,计算跨行标志;
S103,计算分段存储器的字节使能;
S104,计算分段存储器的段使能;
S105,计算分段存储器的地址;
S106,计算分段存储器的数据格式。
如图2所示,本发明实施例提供的大位宽数据总线分段存储的控制系统,包括:
数据地址计算模块1,用于计算每个数据的起始地址和结束地址;
跨行标志计算模块2,用于计算跨行标志;
字节使能计算模块3,用于计算分段存储器的字节使能;
段使能计算模块4,用于计算分段存储器的段使能;
地址计算模块5,用于计算分段存储器的地址;
数据格式计算模块6,用于计算分段存储器的数据格式。
下面结合具体实施例对本发明的技术方案作进一步描述。
本发明涉及一种大位宽数据总线分段存储的控制方法,该方法用于将一块存储器分段管理,以排空存储器中的气泡空间,提高存储器吞吐率,提升存储器空间的利用率,其存储结构如图3所示。
参照图3,以将存储器划分为两段为例,存储器的数据总线位宽是输入数据位宽的两倍,每次对存储器进行写操作都依据写入位置和写入数据长度自动分配存储段号和段内存储空间,并将数据流中的每个数据以紧密排列的方式存储,排空存储器中的气泡空间。
如图3中的样例:
第一个数据的有效长度不足一个存储段的位宽,将其存储在第0段第0行的低位。
第二个数据的有效长度大于第0段剩余长度,产生了跨段现象,数据的低位紧靠第一个数据的结束位置存储到第0段的结尾,数据的高位存储在第0段第0行的低位。
第三个数据的有效长度大于第1段剩余长度,且第1段是第0行的最后一个段,产生了跨行现象,数据的低位紧靠第二个数据的结束位置存储到第1段的结尾,数据的高位存储在第0段第1段行的低位。
第四个数据和第二个数据存储方式类似。
第五个数据的有效长度不足第1段第1行剩余空间的长度,数据紧靠第四个数据的结束位置存储。
参照图4,分段存储器的接口定义和功能如下:
(1)写端口:
wr_cmd_data,分段存储器的数据总线,位宽为段数和单个存储段数据位宽之积。
wr_cmd_addr,分段存储器的地址总线,位宽为段数和单个存储段地址位宽之积;从第0位比特算起,每n比特宽度的地址用来索引对应段内的行数,n为单个存储段地址位宽。
wr_cmd_be,分段存储器的字节掩码,位宽为段数和单个存储段字节掩码位宽之积;从第0位比特算起,每n比特宽度的字节掩码用来以字节为单位使能对应段内的数据。
wr_cmd_valid,分段存储器的写有效信号,位宽等于段数,每个位和段号对应,用于使能对应段的写功能。
wr_cmd_ready,分段存储器的写准备信号,位宽等于段数,每个位和段号对应,标识存储器对应段未存满。
wr_done,分段存储器的写完成信号,位宽等于段数,每个位和段号对应,标识对应段的写操作是否成功。
(2)读请求端口:
rd_cmd_addr,分段存储器的读地址总线,位宽为段数和单个存储段地址位宽之积;
rd_cmd_valid,分段存储器的读使能信号,位宽等于段数,每个位和段号对应,用于使能对应段的读操作。
rd_cmd_ready,分段存储器的读准备信号,位宽等于段数,每个位和段号对应,标识存储器对应段非空。
(3)读响应端口:
rd_resp_data,分段存储器的读数据总线,位宽为段数和单个存储段数据位宽之积。
rd_resp_valid,分段存储器的读数据有效信号,位宽等于段数,每个位和段号对应,标识有效数据的来源段号。
rd_resp_ready,读设备的获取数据准备信号,位宽等于段数,每个位和段号对应,标识读设备可以获取从对应段输出的数据。
参照图5,分段存储控制器的接口定义和功能如下:
(1)写端口:
wr_data,Local-Link写数据总线,位宽等于单个存储段数据位宽。
wr_addr,Local-Link写地址总线,每个地址所表示的存储单元大小为1字节。
wr_lst_b,Local-Link字节有效,标识一帧数据中最后一个数据的最后一个有效字节。
wr_sop,Local-Link帧起始信号,标识一帧的第一个数据。
wr_eop,Local-Link帧结束信号,标识一帧的最后一个数据。
wr_valid,Local-Link写有效信号,信号拉高表示写数据有效。
wr_ready,Local-Link写准备信号,信号拉高表示RAM可写。
(2)读请求端口:
rd_addr,Local-Link读地址总线,标识读取数据帧的首地址,地址所表示的存储单元大小为1字节。
rd_len,Local-Link读取的数据帧长度,单位为字节。
rd_en,Local-Link读地址有效,信号拉高表示启动读取过程。
rd_empty,Local-Link读空标志,信号拉高表示RAM读空。
(3)读响应端口:
rd_data,Local-Link读数据总线,位宽等于单个存储段数据位宽。
rd_be,Local-Link字节有效,标识一帧数据中最后一个数据的字节有效情况。
rd_sop,Local-Link帧起始信号,标识一帧的第一个数据。
rd_eop,Local-Link帧结束信号,标识一帧的最后一个数据。
rd_valid,Local-Link读数据有效信号,信号拉高表示读数据总线上的数据有效。
rd_ready,Local-Link读设备准备信号,信号拉高表示读设备准备好接收读数据总线上的数据。
在分段存储控制器的Local-Link接口发起写操作映射到对分段存储器接口的控制过程如下:
(1)计算每个数据的起始地址和结束地址:
存入一帧数据流中非最后一个数据时,以Local-Link写接口输入的地址为起始,每次以字节为单位累加Local-Link数据总线的宽度作为数据的起始地址,起始地址以字节为单位加上数据总线的宽度作为结束地址;存入一帧数据流中最后一个数据时,以前一个数据的起始地址为基准,以字节为单位加上数据总线的宽度作为起始地址,起始地址加上一帧数据流中最后一个数据的有效字节数作为结束地址;存入单数据的数据帧时,起始地址为Local-Link写接口输入的地址,起始地址加上这个数据的有效字节数作为结束地址;
(2)计算跨行标志:
使用逻辑右移将起始地址以字节为单位除以所有存储段的数据位宽,结果为起始地址所在存储器的行号;使用逻辑右移将结束地址以字节为单位除以所有存储段的数据位宽,结果为结束地址所在的存储器行号;将这两个结果做对比,若一致则本次存储数据未出现跨行现象,否则将对跨行部分的数据进行处理;
(3)计算分段存储器的字节使能:
若存储数据未出现跨行现象,将所有bit位为1的序列左移起始地址的低位得到以起始地址为视角的字节使能,将所有bit位为1的序列右移结束地址的低位的补数得到以结束地址为视角的字节使能。将以起始地址为视角的字节使能和以结束地址为视角的字节使能进行按位与,得到本次数据在分段存储器中使用的字节使能;若存储数据出现跨行现象,将以起始地址为视角的字节使能和以结束地址为视角的字节使能进行按位或,得到本次数据在分段存储器中使用的字节使能;
(4)计算分段存储器的段使能:
将字节使能按存储段划分,若所属存储段的字节使能全部为0,则该存储段的段使能清零;若所属存储段的字节使能非0,则该存储段的段使能置位;
(5)计算分段存储器的地址:
若存储数据未出现跨行现象,取起始地址表达存储行号的高位,将其作为分段存储器各段的行地址;若存储数据出现跨行现象,则将段号为0的存储段的行地址在原行地址上加1,其余段的行地址计算方法不变;
(6)计算分段存储器的数据格式:
将数据复制成段数加1份并拼接成一个数据,取起始地址的低位表示起始地址在一个存储段中的偏移,将拼接后的数据按偏移进行逻辑右移操作,将拼接数据中的其中一个数据段的0bit位与起始地址所在的位置对齐;
在分段存储控制器的Local-Link接口发起读请求操作映射到对分段存储器接口的控制过程如下:
(1)计算每个数据的读起始地址:
读取一帧数据流中第一个数据时,以Local-Link读接口输入的地址为读起始地址;读取一帧数据流中非第一个数据时,读起始地址为在Local-Link读接口输入的地址的基础上以字节为单位累加单个存储段的位宽;
(2)计算分段存储器的段使能:
分段存储器的段使能与读掩码的值一致;
(3)计算分段存储器的地址:
当掩码中对应段号的bit位为1时,取起始地址表达存储行号的高位,将其作为分段存储器各段的行地址;当掩码中对应段号的bit位为0时,该段行地址不变;
分段存储器接口的读响应映射到分段存储控制器的Local-Link接口的过程如下:
(1)计算输出数据帧的最后一个数据的字节使能:
由Local-Link请求数据量计算按数据总线的位宽对齐后剩余的字节数,通过逻辑右移换算为数据帧的最后一个数据的字节使能;
(2)计算输出数据:
由存储器的段使能将被使能的段中的数据放到Local-Link的输出数据总线上;
(3)输出数据有效信号的映射:
分段存储器输出数据有效信号rd_resp_valid只要有一个位非零并且读设备准备接收信号rd_ready有效,则Local-Link接口的输出数据有效信号rd_valid拉高;
(4)输出数据帧起始信号的控制:
计数器read_cycle_num_cnt在分段存储器每输出一个有效数据时自增1,当计数器read_cycle_num_cnt的值为1且Local-Link接口的输出数据有效信号rd_valid拉高时代表此时Local-Link接口正在输出此帧的第一个数据,Local-Link接口输出数据帧起始信号rd_sop拉高;
(5)输出数据帧结束信号的控制:
寄存器read_cycle_num保存Local-Link接口的读帧长信号rd_len的数据,当计数器read_cycle_num_cnt的值等于寄存器read_cycle_num中的值时代表此时Local-Link接口正在输出此帧的最后一个数据,Local-Link接口输出数据帧结束信号rd_eop拉高。
下面结合仿真对本发明的技术效果作详细的描述。
如图6所示,本发明的仿真流程包括:
设置分段存储控制器的参数为Local-Link数据总线位宽128bit、Local-Link地址总线位宽13bit;设置分段存储器的分段数为2段。
通过Local-Link接口向分段存储控制器写入数据帧,分段存储控制器将Local-Link数据帧映射为分段存储的格式存入分段存储器中。
通过Local-Link接口从分段存储控制器中读出数据帧,分段存储器中读出的数据帧经分段存储控制器映射为Local-Link后输出。
本发明的仿真结果如下:写数据仿真:
从Local-Link接口wr_data向地址0处写入分段存储控制器的第一帧数据为8字节的十六进制数据0x0000000012153524;经映射后通过分段存储器接口wr_cmd_data存入分段存储器的第0个段,第0行的低64bit中。
从Local-Link接口wr_data向地址8处写入分段存储控制器的第二帧数据由4个数据组成,其中前3个数据每个均为16字节,第4个数据由wr_lst_b标识为低1字节,共写入49字节;经映射后从地址8处无气泡地通过分段存储器接口wr_cmd_data存入分段存储器。
从Local-Link接口wr_data向地址8处写入分段存储控制器的第三帧数据由2个数据组成,其中第1个数据为16字节,第2个数据由wr_lst_b标识为低8字节,共写入24字节;经映射后从地址57处无气泡地通过分段存储器接口wr_cmd_data存入分段存储器。
上述三次写入操作共写入81字节。
读数据仿真:
从Local-Link读请求端给入读取起始地址rd_addr为0、要读取的数据长度rd_len为81字节,启动读取后经映射后从地址0处连续读取6次,其中前5次每次有效数据量均为16字节,第6次有效数据量为1字节,共81字节。
读写结果对比:
如图7所示,本仿真写操作的数据为:
第1个数据为低8字节、第2,3,4个数据均为16字节、第5个数据为低1字节、第6个数据为16字节、第7个数据为低8字节。
如图8所示,本仿真读操作的数据为:
第1,2,3,4,5个数据均为16字节、第6个数据为低1字节。
经图7和图8数据比对可知,Local-Link端写入的存在气泡的数据帧,经分段存储控制器映射后在分段存储器中的存储格式变为无气泡存储,从Local-Link端读出的数据为分段存储器中的排出气泡后的数据。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种大位宽数据总线分段存储的控制方法,其特征在于,所述大位宽数据总线分段存储的控制方法由存储器和控制器构成,将一块存储器分为多段管理,控制器的用户侧接口设计为操作方便的Local-Link接口,以此屏蔽了内部的控制逻辑和映射规则,控制器依据Local-Link接口携带的数据流信息自动分配存储段号和段内存储空间,并将数据流中的每个数据以紧密排列的方式存储,排空存储器中的气泡空间。
2.如权利要求1所述的大位宽数据总线分段存储的控制方法,其特征在于,所述大位宽数据总线分段存储的控制方法包括以下步骤:
步骤一,计算每个数据的起始地址和结束地址;
步骤二,计算跨行标志;
步骤三,计算分段存储器的字节使能;
步骤四,计算分段存储器的段使能;
步骤五,计算分段存储器的地址;
步骤六,计算分段存储器的数据格式。
3.如权利要求2所述的大位宽数据总线分段存储的控制方法,其特征在于,所述步骤一中的计算每个数据的起始地址和结束地址包括:
存入一帧数据流中非最后一个数据时,以Local-Link写接口输入的地址为起始,每次以字节为单位累加Local-Link数据总线的宽度作为数据的起始地址,起始地址以字节为单位加上数据总线的宽度作为结束地址;存入一帧数据流中最后一个数据时,以前一个数据的起始地址为基准,以字节为单位加上数据总线的宽度作为起始地址,起始地址加上一帧数据流中最后一个数据的有效字节数作为结束地址;存入单数据的数据帧时,起始地址为Local-Link写接口输入的地址,起始地址加上这个数据的有效字节数作为结束地址;
其中,所述Local-Link写接口定义如下:
数据总线,位宽与一个存储段的位宽相同;
地址总线,位宽为分段存储器一段的地址位宽与分段存储器所有段字节使能位宽取以2为底的对数之和;
字节有效,表示一帧中最后一个数据的最后一个有效字节;
起始信号,表示一帧的第一个数据;
结束信号,表示一帧的最后一个数据;
有效信号,表示总线上传输的所有信号是有效的;
准备信号,表示RAM未满;
所述步骤二中的计算跨行标志包括:使用逻辑右移将起始地址以字节为单位除以所有存储段的数据位宽,结果为起始地址所在存储器的行号;使用逻辑右移将结束地址以字节为单位除以所有存储段的数据位宽,结果为结束地址所在的存储器行号;将两个结果对比,若一致则本次存储数据未出现跨行现象,否则将对跨行部分的数据进行处理。
4.如权利要求1所述的大位宽数据总线分段存储的控制方法,其特征在于,所述步骤三中的计算分段存储器的字节使能包括:若存储数据未出现跨行现象,将所有bit位为1的序列左移起始地址的低位得到以起始地址为视角的字节使能,将所有bit位为1的序列右移结束地址的低位的补数得到以结束地址为视角的字节使能;将以起始地址为视角的字节使能和以结束地址为视角的字节使能进行按位与,得到本次数据在分段存储器中使用的字节使能;若存储数据出现跨行现象,将以起始地址为视角的字节使能和以结束地址为视角的字节使能进行按位或,得到本次数据在分段存储器中使用的字节使能。
5.如权利要求1所述的大位宽数据总线分段存储的控制方法,其特征在于,所述步骤四中的计算分段存储器的段使能包括:
将字节使能按存储段划分,若所属存储段的字节使能全部为0,则该存储段的段使能清零;若所属存储段的字节使能非0,则该存储段的段使能置位;
所述步骤五中的计算分段存储器的地址包括:
若存储数据未出现跨行现象,取起始地址表达存储行号的高位,将其作为分段存储器各段的行地址;若存储数据出现跨行现象,则将段号为0的存储段的行地址在原行地址上加1,其余段的行地址计算方法不变;
所述步骤六中的计算分段存储器的数据格式包括:将数据复制成段数加1份并拼接成一个数据,取起始地址的低位表示起始地址在一个存储段中的偏移,将拼接后的数据按偏移进行逻辑右移操作,将拼接数据中的其中一个数据段的0bit位与起始地址所在的位置对齐。
6.如权利要求1所述的大位宽数据总线分段存储的控制方法,其特征在于,所述用于大位宽数据总线分段存储的控制器的读操作包括:
(1)计算每个数据的读起始地址:读取一帧数据流中第一个数据时,以Local-Link读接口输入的地址为读起始地址;读取一帧数据流中非第一个数据时,读起始地址为在Local-Link读接口输入的地址的基础上以字节为单位累加单个存储段的位宽;
(2)计算分段存储器的段使能:分段存储器的段使能与读掩码的值一致;
(3)计算分段存储器的地址:当掩码中对应段号的bit位为1时,取起始地址表达存储行号的高位,将其作为分段存储器各段的行地址;当掩码中对应段号的bit位为0时,该段行地址不变;
(4)计算输出数据帧的最后一个数据的字节使能:由Local-Link请求数据量计算按数据总线的位宽对齐后剩余的字节数,通过逻辑右移换算为数据帧的最后一个数据的字节使能;
(5)计算输出数据:由存储器的段使能将被使能的段中的数据放到Local-Link的输出数据总线;
其中,所述步骤(1)中的Local-Link读请求接口定义如下:
读地址,读存储器的起始地址;
读长度,读存储器数据的长度,单位为字节;
读使能,读地址有效,启动读取;
存储器空标志,表示存储器已经读空;
所述步骤(1)中的Local-Link读响应接口定义如下:
读数据,读出的数据,位宽等于一个存储段的位宽;
读字节使能,读出数据帧的最后一个数据的字节使能;
起始信号,表示输出帧的第一个数据;
结束信号,表示输出帧的最后一个数据;
有效信号,表示输出数据有效;
准备信号,表示读取者准备好接收数据;
所述步骤(2)中的读掩码是将读起始地址中表示不循环段号的高位进行模2运算得到的结果,表示循环的段号,取值范围为[0,段数-1]。
7.一种实施权利要求1~6任意一项所述的大位宽数据总线分段存储的控制方法的大位宽数据总线分段存储的控制系统,其特征在于,所述大位宽数据总线分段存储的控制系统包括:
数据地址计算模块,用于计算每个数据的起始地址和结束地址;
跨行标志计算模块,用于计算跨行标志;
字节使能计算模块,用于计算分段存储器的字节使能;
段使能计算模块,用于计算分段存储器的段使能;
地址计算模块,用于计算分段存储器的地址;
数据格式计算模块,用于计算分段存储器的数据格式。
8.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
计算每个数据的起始地址和结束地址;计算跨行标志;计算分段存储器的字节使能;计算分段存储器的段使能;计算分段存储器的地址和数据格式。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
计算每个数据的起始地址和结束地址;计算跨行标志;计算分段存储器的字节使能;计算分段存储器的段使能;计算分段存储器的地址和数据格式。
10.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现如权利要求7所述的大位宽数据总线分段存储的控制系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210117095.XA CN114610231A (zh) | 2022-02-07 | 2022-02-07 | 大位宽数据总线分段存储的控制方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210117095.XA CN114610231A (zh) | 2022-02-07 | 2022-02-07 | 大位宽数据总线分段存储的控制方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610231A true CN114610231A (zh) | 2022-06-10 |
Family
ID=81859554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210117095.XA Pending CN114610231A (zh) | 2022-02-07 | 2022-02-07 | 大位宽数据总线分段存储的控制方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610231A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115390770A (zh) * | 2022-10-31 | 2022-11-25 | 上海亿铸智能科技有限公司 | 一种用于简化sram输出数据多路选择方法及系统 |
-
2022
- 2022-02-07 CN CN202210117095.XA patent/CN114610231A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115390770A (zh) * | 2022-10-31 | 2022-11-25 | 上海亿铸智能科技有限公司 | 一种用于简化sram输出数据多路选择方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271335B (zh) | 一种多通道数据源ddr缓存的fpga实现方法 | |
US20140164696A1 (en) | Storing row-major data with an affinity for columns | |
US7934025B2 (en) | Content terminated DMA | |
KR960012993B1 (ko) | 데이터 전송방법 | |
US11403247B2 (en) | Methods and apparatus for network interface fabric send/receive operations | |
CN110134365B (zh) | 一种多通道并行读出fifo的方法及装置 | |
US11003606B2 (en) | DMA-scatter and gather operations for non-contiguous memory | |
EP2830269A1 (en) | Message processing method and device | |
CN105573711B (zh) | 一种数据缓存方法及装置 | |
US8943240B1 (en) | Direct memory access and relative addressing | |
US11226778B2 (en) | Method, apparatus and computer program product for managing metadata migration | |
CN114610231A (zh) | 大位宽数据总线分段存储的控制方法、系统、设备及介质 | |
CN110941582B (zh) | 一种bmc芯片的usb总线结构及其通信方法 | |
US10817183B2 (en) | Information processing apparatus and information processing system | |
CN116955247B (zh) | 一种缓存描述符管理装置及其方法、介质、芯片 | |
WO2021227789A1 (zh) | 存储空间的分配方法、装置、终端及计算机可读存储介质 | |
WO2024027140A1 (zh) | 一种数据处理方法、装置、设备、系统及可读存储介质 | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
CN102420749A (zh) | 一种网卡发包功能的实现装置和方法 | |
CN116457751A (zh) | 一种写数据通路结构和芯片 | |
US11275683B2 (en) | Method, apparatus, device and computer-readable storage medium for storage management | |
WO2021237513A1 (zh) | 数据压缩存储的系统、方法、处理器及计算机存储介质 | |
CN107085557A (zh) | 直接存储器访问系统以及相关方法 | |
CN111090633A (zh) | 一种分布式文件系统的小文件聚合方法、装置及设备 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 |
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 |