CN113900818A - Ddr存储器数据读写调度方法和装置 - Google Patents

Ddr存储器数据读写调度方法和装置 Download PDF

Info

Publication number
CN113900818A
CN113900818A CN202111214642.8A CN202111214642A CN113900818A CN 113900818 A CN113900818 A CN 113900818A CN 202111214642 A CN202111214642 A CN 202111214642A CN 113900818 A CN113900818 A CN 113900818A
Authority
CN
China
Prior art keywords
read
write
ddr memory
data
data read
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
CN202111214642.8A
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.)
Lusheng Technology Co ltd
Original Assignee
Lusheng Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lusheng Technology Co ltd filed Critical Lusheng Technology Co ltd
Priority to CN202111214642.8A priority Critical patent/CN113900818A/zh
Publication of CN113900818A publication Critical patent/CN113900818A/zh
Priority to PCT/CN2022/102774 priority patent/WO2023065717A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes

Landscapes

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

Abstract

本发明提供一种DDR存储器数据读写调度方法和装置,所述方法包括以下步骤:接收多个主接口的读写请求指令;获取每个所述主接口的多条所述读写请求指令对应的请求数据在所述DDR存储器上的存储地址分布方式;根据所述请求数据在所述DDR存储器上的存储地址分布方式,仲裁得到对所述多个主接口的读写请求指令的第一优先级响应方式;基于所述第一优先级响应方式进行第一数据读写操作。本发明能够提高DDR存储器的数据处理效率。

Description

DDR存储器数据读写调度方法和装置
技术领域
本发明主要涉及信息技术领域,尤其涉及一种DDR存储器数据读写调度方法和装置。
背景技术
双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access Memory,简称DDR SDRAM)为具有双倍数据传输率的存储器,即DDR存储器的数据传输速度为系统时钟频率的两倍,由于速度增加,其传输性能优于传统的SDRAM。DDR存储器在系统时钟的上升沿和下降沿都可以进行数据传输。
在应用DDR存储器时,为提高DDR存储器的数据读写效率,需要对DDR存储器的读写操作进行调度,以提高信息系统(例如SoC系统)的运行效率,此为需要应对的课题。
发明内容
本发明要解决的技术问题是提供一种DDR存储器数据读写调度方法和装置,实现提高DDR存储器的数据读写效率。
为解决上述技术问题,本发明提供了一种DDR存储器数据读写调度方法,包括以下步骤:接收多个主接口的读写请求指令;获取每个所述主接口的多条所述读写请求指令对应的请求数据在所述DDR存储器上的存储地址分布方式;根据所述请求数据在所述DDR存储器上的存储地址分布方式,仲裁得到对所述多个主接口的读写请求指令的第一优先级响应方式;基于所述第一优先级响应方式进行第一数据读写操作。
在本发明的一实施例中,DDR存储器数据读写调度方法还包括:基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断,确定是否需重新所述仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式;基于所述第二优先级响应方式进行第二数据读写操作。
在本发明的一实施例中,所述请求数据在所述DDR存储器上的存储地址分布方式包括,位于DDR存储器上的同一存储块上的同一行、位于DDR存储器上的不同存储块上的同一行或不同行和位于DDR存储器上的同一存储块上的不同行。
在本发明的一实施例中,根据所述请求数据在所述DDR存储器上的存储地址分布方式,仲裁得到对所述多个主接口的读写请求指令的第一优先级响应方式包括:
所述请求数据位于DDR存储器上的同一存储块上的同一行被仲裁为所述第一优先级响应方式中的第一等级优先级;所述请求数据位于DDR存储器上的不同存储块上的同一行或不同行被仲裁为所述第一优先级响应方式中的第二等级优先级;所述请求数据位于DDR存储器上的同一存储块上的不同行被仲裁为所述第一优先级响应方式中的第三等级优先级。
在本发明的一实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口在所述第一优先级响应方式中的被连续仲裁为第一等级的次数是否超过第一阈值。
在本发明的一实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令的时间间隔是否超过第二阈值。
在本发明的一实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令的响应时长是否超过第三阈值。
在本发明的一实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口进行第一数据读写操作时是否存在其他主接口的即时响应优先级读写请求。
在本发明的一实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令中未返回请求数据的指令的数量是否超过第四阈值。
在本发明的一实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令对应的请求数据的大小是否超过所述主接口的缓存空间。
在本发明的一实施例中,所述次数中的每一次以Y个时钟周期为单位,Y为正整数。
本发明还提供一种DDR存储器数据读写调度装置,包括:指令接收模块,用于接收多个主接口的读写请求指令;优先级仲裁模块,被配置为:获取每个所述主接口的多条所述读写请求指令对应的请求数据在所述DDR存储器上的存储地址分布方式;根据所述请求数据在所述DDR存储器上的存储地址分布方式确定对所述多个主接口的读写请求指令的第一优先级响应方式;数据读写模块,用于基于所述第一优先级响应方式进行第一数据读写操作。
在本发明的一实施例中,DDR存储器数据读写调度装置还包括:所述优先级仲裁模块还被配置为:基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断,确定对所述多个主接口的读写请求指令的第二优先级响应方式;所述数据读写模块还基于所述第二优先级响应方式进行第二数据读写操作。
与现有技术相比,本发明具有以下优点:本申请的DDR存储器数据读写调度方法,基于主接口的读写请求对应的请求数据的分布方式的不同,确定对主接口的读写请求的响应优先级,从而实现尽可能减小PRECHARGE(预充电)操作在数据读写操作中占用的时间,提高数据处理效率。
附图说明
包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本申请原理的作用。附图中:
图1是本申请一实施例的DDR存储器数据读写调度方法的流程图。
图2是本申请另一实施例的DDR存储器数据读写调度方法的流程图。
图3是本申请一实施例的DDR存储器的结构示意图。
图4是本申请一实施例的DDR存储器的存储块读写操作示意图。
图5是本申请一实施例的DDR存储器的存储块读写操作状态机示意图。
图6是本申请一实施例的DDR存储器数据读写调度装置的示意图。
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。
此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件或术语,仅仅是为了便于对相应零部件或术语进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本申请保护范围的限制。此外,尽管本申请中所使用的术语是从公知公用的术语中选择的,但是本申请说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本文的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本申请。
应当理解,当一个部件被称为“在另一个部件上”、“连接到另一个部件”、“耦合于另一个部件”或“接触另一个部件”时,它可以直接在该另一个部件之上、连接于或耦合于、或接触该另一个部件,或者可以存在插入部件。相比之下,当一个部件被称为“直接在另一个部件上”、“直接连接于”、“直接耦合于”或“直接接触”另一个部件时,不存在插入部件。同样的,当第一个部件被称为“电接触”或“电耦合于”第二个部件,在该第一部件和该第二部件之间存在允许电流流动的电路径。该电路径可以包括电容器、耦合的电感器和/或允许电流流动的其它部件,甚至在导电部件之间没有直接接触。
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本申请的实施例描述一种DDR存储器数据读写调度方法和装置。
图1是本申请一实施例的DDR存储器数据读写调度方法的流程图。图2是本申请另一实施例的DDR存储器数据读写调度方法的流程图。
如图1所例示,DDR存储器数据读写调度方法包括,步骤101,接收多个主接口的读写请求指令;步骤102,获取每个所述主接口的多条所述读写请求指令对应的请求数据在所述DDR存储器上的存储地址分布方式;步骤103,根据所述请求数据在所述DDR存储器上的存储地址分布方式,仲裁得到对所述多个主接口的读写请求指令的第一优先级响应方式;步骤104,基于所述第一优先级响应方式进行第一数据读写操作。
图3是本申请一实施例的DDR存储器的结构示意图。
如图3所例示,DDR存储器301包括多个存储块(Bank)组成。图3中示出的也可理解为DDR存储器301的一面(Rank)或一侧(Side),一面是相对于包括正面和反面的两面而言,一侧则是相对于DDR存储器的两侧而言。图3标示了第1面(Rank 1)或第1侧(Side 1)。
图3的例示中,DDR存储器301的一侧可包括多个存储芯片(存储IC)。图3中标示出存储芯片311、312、318等。每一存储芯片可包括多个存储块(Bank)。例如存储芯片311(对应的放大图示结构为321)包括Bank1(块1)、Bank2(块2)、……、Bank8(块8)等8个存储块。
在一实施例中,存储芯片311包含的多个存储块中的一个存储块(用块n指代)的放大结构如图3中的331所例示。继续参考图3,存储块331包括行解码器(Row Decoder)341、列解码器(Column Decoder)342、传感放大器(Sense Amplifier)345和内存矩阵(MemoryMatrix)346。
内存阵列由行列组成,每个行列交叉的单元,表示N bit,通常是8bit或者16位,其中每一位都是由一个晶体管和一个电容组成,例如在GDDR5(第五版图形用DDR)和HBM(高带宽显存)内存中,通常为32Byte,表示一个字节或者一个word(字)。
存储芯片311(对应的放大图示结构为321)还可包括数据输入/输出缓存(DataInput/Output Buffers)351。数据输入/输出缓存351可对数据进行输入/输出,以便对数据进行读写操作。352例如指来自其他存储块的数据输入,353例如指输出至存储器总线。
图4是本申请一实施例的DDR存储器的存储块读写操作示意图。
参考图3和图4,存储块(Bank)中的每一行组成一个page(页),每一行又包括很多列(这里列是指单个交叉单元)。
DDR内存读写的最小单位就是这些交叉单元,通常只有这些单元被放入传感放大器的时候,才能够被读写,如图4所示,传感放大器与数据管脚(DATA PINS)408之间进行数据交互,所以通常要不断在行和传感放大器之间移动数据。图4中还示出了N BITS(N位),指多个行列交叉单元。
把一行放入传感放大器称作“ACTIVATE”(激活),因为这个操作会激活Bank。把传感放大器(图4中标示为SENSE AMPS)406的内容放入行,称作“PRECHARGE”(预充电)。有时。READ(读操作)或者WRITE(写操作)的时候会隐含着PRECHARGE的操作,称作AP-READ或者AP-WRITE,AP指auto precharge。
图4中的箭头①表示激活(ACTIVATE)操作,箭头②表示读操作或写操作。箭头③表示预充电(PRECHARGE)操作。
图5是本申请一实施例的DDR存储器的存储块读写操作状态机示意图。
如果图5所例示,存储块,例如SDRAM型的存储块的读写可以用一个的状态机来描述,它的状态包括空闲状态(IDLE)511,激活操作状态(Activating)512,块激活状态(BankActive)513,预充电操作状态(Precharging)518,刷新操作状态(Refreshing)519,读状态(Reading)515,写状态(Writing)514,读及自动充电操作状态(Read with Auto-Precharge)517,写及自动充电状态(Write with Auto-Precharge)516。图5所例示的状态机,从一个状态转换到另一个状态,并在新的状态开始数据操作,都需要一些最小等待时间,这些时延会影响SDRAM型存储块读写数据的性能,从而影响整个计算系统的性能。
SDARM Bank(SDRAM型的存储块)中的内存单元行列交叉(通常称作cell)点,用来存储数据,它通常都是一些电容和放大器组成,
由于电容的特性,它的电量会随着时间衰减,比如温度等因素都会影响它的衰减速度,所以需要周期性进行加电刷新操作,维持其中的数据。
刷新频率通常依赖于内存die的工艺以及cell本身的设计。对内存cell的读写和内存刷新有相同的效果,但是在电容电量衰减到必须刷新之前,并不是所有的内存cell都有读写操作,所以定时刷新仍是需要的。
通常刷新操作是按行(row)或者说按page进行的,刷新之后,该行cell的电容就会被充电。通常的刷新操作周期是几百个clocks(时钟)到几千个clocks。在刷新命令之前,每个Bank必须要先precharged,然后处于IDLE状态,这需要消耗一个tRP时延。
Precharge(或记作PRECHARGE)一个打开的bank所消耗的时间称作the RowAccess Strobe(RAS)Precharge Delay,通过写作tRP。
在一个刷新命令完成后,所有的bank处于precharge(IDLE)状态,在刷新命令和下一个activate命令(ACT)之间cycles(时钟周期)数目必须大于等于tRFC(the Row RefreshCycle Time)。
SDRAM在响应读写命令之前,bank必须处于激活状态,内存控制器通过发送activate命令,指定被访问的rank,bank以及page(或row)。
Bank激活之后,传感放大器中有完整page内容,这个时候,可以发送读写命令,指定从某列开始读写数据。
从某个激活的page(放在传感放大器中)中读取一个byte数据消耗的时间,包括在读写接口发送读写命令,program控制逻辑,把传感放大器的内容传输入到输入输出缓冲,并把数据的第一个word放在内存总线上总共消耗的时间。
一个Bank每次只能打开一个page(这里的打开即是指把page内容放入到传感放大器),对于处于打开状态的page,可对其进行读写操作,如果不需要再对该page进行读写操作,可以关闭该page,把该page内容从传感放大器中写入Bank的行列单元对应的page中,以便对其它page进行读写操作。这个关闭操作通过一个PRECHARGE命令实现,PRECHARGE命令可以关闭某一个Bank,也可以关闭Rank中所有打开的Bank。PRECHARGE命令把传感放大器中的数据写入bank中对应的page中,然后可准备下一个数据访问。图5中,501表示初始化时序(Initialization Sequence)。图5中还包括图例,其中图例①表示指令时序(CommandSequence),图例②表示自动时序(Automatic Sequence)。
图5中的箭头③表示连续的写操作,箭头④表示连续的读操作。
为尽可能减小PRECHARGE操作在数据读写操作中占用的时间,提高数据处理效率,本申请的DDR存储器数据读写调度方法的步骤前述的步骤101至步骤104所例示。
具体地,在步骤101,接收多个主接口(Master)的读写请求指令。主接口的类型可根据系统的总线类型和协议类型的不同而有所差异,例如包括ARM系统中的AMBA类型总线,采用AXI协议类型的主接口(AXI Master)。多个主接口例如包括Master0、Master1、Master2、…、Master N-1,N为正整数。多个主接口中的每一主接口可发送多条读写请求指令。
在步骤102,获取每个所述主接口的多条所述读写请求指令对应的请求数据在所述DDR存储器上的存储地址分布方式。
在一些实施例中,所述请求数据在所述DDR存储器上的存储地址分布方式包括,位于DDR存储器上的同一存储块上的同一行、位于DDR存储器上的不同存储块上的同一行或不同行和位于DDR存储器上的同一存储块上的不同行。同一存储块(Bank)上的同一行(Row)、不同存储块上的同一行或不同行以及同一存储块上的不同行的分布方式可参考图3和图4进行理解。
其中,所述请求数据位于DDR存储器上的同一存储块(Bank)上的同一行(Row)可称为页命中(PageHit)。
在步骤103,根据所述请求数据在所述DDR存储器上的存储地址分布方式,仲裁得到对所述多个主接口的读写请求指令的第一优先级响应方式。
在一些实施例中,根据所述请求数据在所述DDR存储器上的存储地址分布方式,仲裁得到对所述多个主接口的读写请求指令的第一优先级响应方式包括:所述请求数据位于DDR存储器上的同一存储块上的同一行被仲裁为所述第一优先级响应方式中的第一等级优先级;所述请求数据位于DDR存储器上的不同存储块上的同一行或不同行被仲裁为所述第一优先级响应方式中的第二等级优先级;所述请求数据位于DDR存储器上的同一存储块上的不同行被仲裁为所述第一优先级响应方式中的第三等级优先级。
在步骤104,基于所述第一优先级响应方式进行第一数据读写操作。对基于第一优先级响应方式确定进行响应的主接口,进行第一数据读写操作。
本申请的DDR存储器数据读写调度方法,基于主接口的读写请求对应的请求数据的分布方式的不同,确定对主接口的读写请求的响应优先级,从而实现尽可能减小PRECHARGE(预充电)操作在数据读写操作中占用的时间,提高数据处理效率。
参考图2,在本申请一些实施例中,除了与步骤101至步骤104相似的步骤201至步骤204以外,还包括,步骤205,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断,确定是否需重新所述仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式;步骤206,基于所述第二优先级响应方式进行第二数据读写操作。
在一些实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口在所述第一优先级响应方式中的被连续仲裁为第一等级优先级的次数是否超过第一阈值。
如前述,所述请求数据位于DDR存储器上的同一存储块(Bank)上的同一行(Row)可称为页命中(PageHit)。此时,对应的主接口的读写请求指令被仲裁为所述第一优先级响应方式中的第一等级优先级,进入页命中锁定(PageHitLock)状态。
但如果判断一个所述主接口在所述第一优先级响应方式中的被连续仲裁为第一等级优先级的次数超过第一阈值,为避免一个主接口长时间占用DDR存储器的数据读写通道,影响系统的调度操作,则将对应的主接口转为锁定释放(PageHitLock Release)状态,并进行重新仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式。
在一些实施例中,重新进行所述仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式,可参考步骤103的方式进行。
在一些实施例中,所述次数中的每一次以Y个时钟周期(cycle)为单位,Y为正整数。
在一些实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令的时间间隔是否超过第二阈值。如果判断一个所述主接口的读写请求指令的时间间隔超过第二阈值,也可称为主接口的读写请求不连续,则将对应的主接口从响应状态转为响应释放(Release)状态。特别地,如果所述主接口处于页命中锁定(PageHitLock)状态,则将对应的主接口转为锁定释放(PageHitLockRelease)状态。而后,进行重新仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式。
在一些实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令的响应时长是否超过第三阈值,也可称为主接口的读写请求出现Timeout。如果判断一个所述主接口的读写请求指令的响应时长超过第三阈值,则将对应的主接口从响应状态转为响应释放(Release)状态。特别地,如果所述主接口处于页命中锁定(PageHitLock)状态,则将对应的主接口转为锁定释放(PageHitLock Release)状态。
而后,进行重新仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式。再基于所述第二优先级响应方式进行第二数据读写操作。
在一些实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口进行第一数据读写操作时是否存在其他主接口的即时响应优先级读写请求。即时响应优先级读写请求例如包括为满足系统的延时规则的读写请求,需要被以超高优先级响应,以保持系统的正常运行,并实现读写操作的有效进行。如果判断存在其他主接口的即时响应优先级读写请求,则将当前响应的主接口从响应状态转为响应释放(Release)状态,进行重新仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式,此时具体为对发出即时响应优先级读写请求的主接口进行相应。再基于所述第二优先级响应方式进行第二数据读写操作。
在一些实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令中未返回请求数据的指令的数量是否超过第四阈值,在一些类型的SoC系统中,也可称为主接口的outstanding参数达到设定的门限值。
如果判断一个所述主接口的读写请求指令中未返回请求数据的指令的数量超过第四阈值,则将当前响应的主接口从响应状态转为响应释放(Release)状态,进行重新仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式。重新进行所述仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式,可参考步骤103的方式进行。
在一些实施例中,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令对应的请求数据的大小是否超过所述主接口的缓存空间。如果判断一个所述主接口的读写请求指令对应的请求数据的大小超过所述主接口的缓存空间,为保证该主接口的读写操作的正常和有效进行,则将当前响应的主接口从响应状态转为响应释放(Release)状态,进行重新仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式。
在一些实施例中,对于在第一优先级响应方式中被判定为较高优先级,例如第一等优先级或第二等优先级的主接口,在进行重新仲裁,得到第二优先级相应方式时,将先前在第一优先级响应方式被相应的主接口的优先级调为最低。经过设定的时间间隔后,再让其重新参与仲裁。
本申请的DDR存储器数据读写调度方法,在实现尽可能减小PRECHARGE操作在数据读写操作中占用的时间的基础上,还能够实现对多个主接口的读写请求的高效调度,提高数据读写操作的效率。
本申请还提供一种DDR存储器数据读写调度装置。
图6是本申请一实施例的DDR存储器数据读写调度装置的示意图。
如图6所示,DDR存储器数据读写调度装置600包括指令接收模块602、优先级仲裁模块604和数据读写模块606。
在一些实施例中,指令接收模块602被用于接收多个主接口的读写请求指令。优先级仲裁模块604被配置为,先获取每个所述主接口的多条所述读写请求指令对应的请求数据在所述DDR存储器上的存储地址分布方式;再根据所述请求数据在所述DDR存储器上的存储地址分布方式确定对所述多个主接口的读写请求指令的第一优先级响应方式。
数据读写模块606则用于基于所述第一优先级响应方式进行第一数据读写操作。
在一些实施例中,优先级仲裁模块604还被配置为,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断,确定对所述多个主接口的读写请求指令的第二优先级响应方式。数据读写模块606还基于所述第二优先级响应方式进行第二数据读写操作。
本申请的DDR存储器数据读写调度装置,能够实现尽可能减小PRECHARGE操作在数据读写操作中占用的时间,还能够实现对多个主接口的读写请求的高效调度,提高数据读写操作的效率。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可作出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。

Claims (13)

1.一种DDR存储器数据读写调度方法,包括以下步骤:
接收多个主接口的读写请求指令;
获取每个所述主接口的多条所述读写请求指令对应的请求数据在所述DDR存储器上的存储地址分布方式;
根据所述请求数据在所述DDR存储器上的存储地址分布方式,仲裁得到对所述多个主接口的读写请求指令的第一优先级响应方式;
基于所述第一优先级响应方式进行第一数据读写操作。
2.根据权利要求1所述的DDR存储器数据读写调度方法,其特征在于,还包括:
基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断,确定是否需重新所述仲裁,得到对所述多个主接口的读写请求指令的第二优先级响应方式;
基于所述第二优先级响应方式进行第二数据读写操作。
3.根据权利要求1所述的DDR存储器数据读写调度方法,其特征在于,所述请求数据在所述DDR存储器上的存储地址分布方式包括,位于DDR存储器上的同一存储块上的同一行、位于DDR存储器上的不同存储块上的同一行或不同行和位于DDR存储器上的同一存储块上的不同行。
4.根据权利要求3所述的DDR存储器数据读写调度方法,其特征在于,根据所述请求数据在所述DDR存储器上的存储地址分布方式,仲裁得到对所述多个主接口的读写请求指令的第一优先级响应方式包括:
所述请求数据位于DDR存储器上的同一存储块上的同一行被仲裁为所述第一优先级响应方式中的第一等级优先级;所述请求数据位于DDR存储器上的不同存储块上的同一行或不同行被仲裁为所述第一优先级响应方式中的第二等级优先级;所述请求数据位于DDR存储器上的同一存储块上的不同行被仲裁为所述第一优先级响应方式中的第三等级优先级。
5.根据权利要求2所述的DDR存储器数据读写调度方法,其特征在于,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口在所述第一优先级响应方式中的被连续仲裁为第一等级的次数是否超过第一阈值。
6.根据权利要求2所述的DDR存储器数据读写调度方法,其特征在于,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令的时间间隔是否超过第二阈值。
7.根据权利要求2所述的DDR存储器数据读写调度方法,其特征在于,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令的响应时长是否超过第三阈值。
8.根据权利要求2所述的DDR存储器数据读写调度方法,其特征在于,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口进行第一数据读写操作时是否存在其他主接口的即时响应优先级读写请求。
9.根据权利要求2所述的DDR存储器数据读写调度方法,其特征在于,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令中未返回请求数据的指令的数量是否超过第四阈值。
10.根据权利要求2所述的DDR存储器数据读写调度方法,其特征在于,基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断包括,一个所述主接口的读写请求指令对应的请求数据的大小是否超过所述主接口的缓存空间。
11.根据权利要求5所述的DDR存储器数据读写调度方法,其特征在于,所述次数中的每一次以Y个时钟周期为单位,Y为正整数。
12.一种DDR存储器数据读写调度装置,包括:
指令接收模块,用于接收多个主接口的读写请求指令;
优先级仲裁模块,被配置为:
获取每个所述主接口的多条所述读写请求指令对应的请求数据在所述DDR存储器上的存储地址分布方式;
根据所述请求数据在所述DDR存储器上的存储地址分布方式确定对所述多个主接口的读写请求指令的第一优先级响应方式;
数据读写模块,用于基于所述第一优先级响应方式进行第一数据读写操作。
13.根据权利要求12所述的DDR存储器数据读写调度装置,其特征在于,还包括:
所述优先级仲裁模块还被配置为:
基于所述读写请求指令的响应调度规则对所述第一数据读写操作进行判断,确定对所述多个主接口的读写请求指令的第二优先级响应方式;
所述数据读写模块还基于所述第二优先级响应方式进行第二数据读写操作。
CN202111214642.8A 2021-10-19 2021-10-19 Ddr存储器数据读写调度方法和装置 Pending CN113900818A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111214642.8A CN113900818A (zh) 2021-10-19 2021-10-19 Ddr存储器数据读写调度方法和装置
PCT/CN2022/102774 WO2023065717A1 (zh) 2021-10-19 2022-06-30 Ddr存储器数据读写调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111214642.8A CN113900818A (zh) 2021-10-19 2021-10-19 Ddr存储器数据读写调度方法和装置

Publications (1)

Publication Number Publication Date
CN113900818A true CN113900818A (zh) 2022-01-07

Family

ID=79192798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111214642.8A Pending CN113900818A (zh) 2021-10-19 2021-10-19 Ddr存储器数据读写调度方法和装置

Country Status (2)

Country Link
CN (1) CN113900818A (zh)
WO (1) WO2023065717A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115101104A (zh) * 2022-07-18 2022-09-23 山东浪潮科学研究院有限公司 一种基于fpga改进ddr读写效率的方法
WO2023065717A1 (zh) * 2021-10-19 2023-04-27 瓴盛科技有限公司 Ddr存储器数据读写调度方法和装置
CN117009088A (zh) * 2023-09-25 2023-11-07 上海芯高峰微电子有限公司 内存管理方法、装置、芯片、电子设备及可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099199A (ja) * 2004-09-28 2006-04-13 Seiko Epson Corp メモリアクセス要求の調停
CN100517505C (zh) * 2007-08-20 2009-07-22 中兴通讯股份有限公司 同步动态存储器的读写方法和读写装置
CN102193865B (zh) * 2010-03-16 2015-03-25 联想(北京)有限公司 存储系统、存储方法和使用其的终端
CN102103548B (zh) * 2011-02-22 2015-06-10 中兴通讯股份有限公司 提高双倍数据速率同步随机存储器读写速率的方法及装置
CN112052205B (zh) * 2020-08-31 2022-07-08 浙江双成电气有限公司 基于fpga的ddr3多端口读写存储管理方法
CN112948293A (zh) * 2021-02-26 2021-06-11 浪潮电子信息产业股份有限公司 一种多用户接口的ddr仲裁器及ddr控制器芯片
CN113900818A (zh) * 2021-10-19 2022-01-07 瓴盛科技有限公司 Ddr存储器数据读写调度方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023065717A1 (zh) * 2021-10-19 2023-04-27 瓴盛科技有限公司 Ddr存储器数据读写调度方法和装置
CN115101104A (zh) * 2022-07-18 2022-09-23 山东浪潮科学研究院有限公司 一种基于fpga改进ddr读写效率的方法
CN117009088A (zh) * 2023-09-25 2023-11-07 上海芯高峰微电子有限公司 内存管理方法、装置、芯片、电子设备及可读存储介质

Also Published As

Publication number Publication date
WO2023065717A1 (zh) 2023-04-27

Similar Documents

Publication Publication Date Title
US5889714A (en) Adaptive precharge management for synchronous DRAM
US8045416B2 (en) Method and memory device providing reduced quantity of interconnections
US9293188B2 (en) Memory and memory controller for high reliability operation and method
US4937791A (en) High performance dynamic ram interface
US9343127B1 (en) Memory device having an adaptable number of open rows
JP4226686B2 (ja) 半導体メモリシステム及び半導体メモリのアクセス制御方法及び半導体メモリ
CN113900818A (zh) Ddr存储器数据读写调度方法和装置
JP4846182B2 (ja) コマンドごとのポスト式書込みを有するメモリデバイス
JP2008532140A (ja) 複数内部データバス及びメモリバンクインターリービングを有するメモリデバイス及び方法
US20040039883A1 (en) Modified persistent auto precharge command protocol system and method for memory devices
CN108139994B (zh) 内存访问方法及内存控制器
CN109801659B (zh) Dram内存库激活管理
US20040088472A1 (en) Multi-mode memory controller
US20180137050A1 (en) Low power memory sub-system using variable length column command
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
US6829195B2 (en) Semiconductor memory device and information processing system
US6002632A (en) Circuits, systems, and methods with a memory interface for augmenting precharge control
US6785190B1 (en) Method for opening pages of memory with a single command
US6532523B1 (en) Apparatus for processing memory access requests
US20040236921A1 (en) Method to improve bandwidth on a cache data bus
CN113946435A (zh) 内存管理技术及计算机系统
US12001682B2 (en) PIM computing system and memory controller thereof
US11907141B1 (en) Flexible dual ranks memory system to boost performance
US20230152977A1 (en) Memory Management Technology and Computer System
US20230266893A1 (en) Memory system including memory device and memory controller, and operating method thereof

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