CN117667777A - 存储器访问控制电路及存储器访问控制方法 - Google Patents

存储器访问控制电路及存储器访问控制方法 Download PDF

Info

Publication number
CN117667777A
CN117667777A CN202211058361.2A CN202211058361A CN117667777A CN 117667777 A CN117667777 A CN 117667777A CN 202211058361 A CN202211058361 A CN 202211058361A CN 117667777 A CN117667777 A CN 117667777A
Authority
CN
China
Prior art keywords
data
circuit
memory
parallel
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
CN202211058361.2A
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.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips 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 Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN202211058361.2A priority Critical patent/CN117667777A/zh
Priority to PCT/CN2023/103733 priority patent/WO2024045848A1/zh
Publication of CN117667777A publication Critical patent/CN117667777A/zh
Pending legal-status Critical Current

Links

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
    • 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/38Information transfer, e.g. on bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3852Converter between protocols
    • 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)
  • Static Random-Access Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供了一种存储器访问控制电路及存储器访问控制方法。该电路包括:存储器侧缓存电路,用于根据读指令对存储器进行并行访问,并将读出的并行数据缓存至第一缓存单元;数据并串转换译码电路,输入端与所述存储器侧缓存电路的输出端连接,用于将所述存储器侧缓存电路输出的所述并行数据进行并串转换后输出至接口侧缓存电路。通过本发明,由于将从存储器中读出的并行数据线存储到缓存单元,再通过数据并串转换译码电路将并行数据转换为串行数据,可以即保证读数据效率又保证芯片的工作频率,因此,可以解决相关技术中存储器访问方法中芯片的工作频率低且功耗高的问题,达到提高芯片的工作频率以及降低芯片的功耗的效果。

Description

存储器访问控制电路及存储器访问控制方法
技术领域
本发明实施例涉及高性能数字芯片设计领域,具体而言,涉及一种存储器访问控制电路及存储器访问控制方法。
背景技术
芯片的工作频率是衡量性能的一个重要指标,提高工作频率是提高系统性能的重要手段。降低功耗的低功耗设计是提高芯片工作可靠性、降低能耗以及提高芯片续航的重要手段。在终端芯片、通讯芯片或车载芯片中,片上互联的片上系统(System On Chip,SOC)架构占据了芯片领域的半壁江山,片上互联SOC架构会涉及多个设备对存储器的访问,存储器的访问控制电路是SOC系统设计的重要组成部分,而用于提高工作频率且降低功耗的存储器访问方法和装置是目前急需解决的问题。
发明内容
本发明实施例提供了一种存储器访问控制电路及存储器访问控制方法,以至少解决相关技术中存储器访问方法中芯片的工作频率低且功耗高的问题。
根据本发明的一个实施例,提供了一种存储器访问控制电路,包括:存储器侧缓存电路,用于根据读指令对存储器进行并行访问,并将读出的并行数据缓存至第一缓存单元;数据并串转换译码电路,输入端与所述存储器侧缓存电路的输出端连接,用于将所述存储器侧缓存电路输出的所述并行数据进行并串转换后输出至接口侧缓存电路。
在一个示例性实施例中,所述数据并串转换译码电路包括:译码逻辑单元,用于对访问索引进行译码生成对多个第一数据选择器的选择控制信号并输出,其中,所述访问索引为根据读指令中的读地址和读长度确定的多个比特位;所述多个第一数据选择器,所述多个第一数据选择器依次级联,前一级第一数据选择器的输出端连接至后一级第一数据选择器的一个输入端,所述多个第一数据选择器的其他输入端并行连接至所述存储器侧缓存电路的输出端,所述多个第一数据选择器的控制端分别连接至所述译码逻辑单元的对应的选择控制信号输出端。
在一个示例性实施例中,其中,至少一对相邻的第一数据选择器之间设置有一级或多级寄存器,在设置有寄存器的第一数据选择器之后的其他第一数据选择器的控制端均设置有一级或多级寄存器。
在一个示例性实施例中,所述存储器侧缓存电路包括:多个第二数据选择器,所述多个第二数据选择器的各输入端分别连接一个存储器单元的输出端,用于在所述多个存储器单元之间选一个所述存储器单元的数据进行输出;多个第一缓存单元,所述多个第一缓存单元的输入端连接所述多个第二级数据选择器的输出端,用于缓存从所述第二数据选择器输出的数据;多个第三数据选择器,所述多个第三数据选择器的各输入端分别连接一个所述第一缓存单元的输出端,用于在多个所述第一缓存单元之间选择一个所述第一缓存单元的数据进行输出。
在一个示例性实施例中,所述电路还包括:读写时钟门控电路,与所述存储器侧缓存电路连接,用于向所述存储器侧缓存电路传输第一工作时钟、写使能控制信号以及读使能控制信号。
在一个示例性实施例中,所述读写时钟门控电路,包括:第一寄存器,所述第一寄存器的两个输入端分别连接第二工作时钟和所述写使能控制信号;第二寄存器,所述第二寄存器的两个输入端分别连接第二工作时钟和所述读使能控制信号;或门逻辑单元,所述或门逻辑单元的输入端分别连接所述第一寄存器的输出端、所述第二寄存器的输出端、所述写使能控制信号以及所述读使能控制信号;二分频器,所述二分频器的输入端分别连接所述或门逻辑单元的输出端和第二工作时钟,所述二分频器的输出端连接所述存储器侧缓存电路。
在一个示例性实施例中,所述电路还包括:接口侧缓存输出电路,用于缓存从所述数据并串转换译码电路中读出的串行数据,并将所述串行数据输出至外部总线。
在一个示例性实施例中,所述接口侧缓存输出电路包括:缓存电路和与所述缓存电路的输出端相连的先进先出存储器。
根据本发明的另一个实施例,提供了一种存储器访问控制方法,基于上述实施例中的存储器访问控制电路,包括:存储器侧缓存电路根据读指令对存储器进行并行访问,并将读出的并行数据缓存至第一缓存单元;数据并串转换译码电路将所述存储器侧缓存电路输出的所述并行数据进行并串转换后输出至接口侧缓存电路。
在一个示例性实施例中,所述方法还包括:接口侧缓存输出电路将从所述数据并串转换译码电路中输出的串行数据进行缓存,再将所述串行数据输出至外部总线。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,由于将从存储器中读出的并行数据线存储到缓存单元,再通过数据并串转换译码电路将并行数据转换为串行数据,可以即保证读数据效率又保证芯片的工作频率,因此,可以解决相关技术中存储器访问方法中芯片的工作频率低且功耗高的问题,达到提高芯片的工作频率以及降低芯片的功耗的效果。
附图说明
图1是根据本发明实施例的存储器访问控制电路的结构框图;
图2是根据本发明实施例的存储器访问控制方法的流程图;
图3是根据本发明实施例的存储器控制逻辑单元后端布局的示意图;
图4是根据本发明实施例的memory侧buffer缓存输出模块的示意图;
图5是根据本发明实施例的数据并串转换译码电路的示意图;
图6是根据本发明另一实施例的数据并串转换译码电路的示意图;
图7是根据本发明实施例的接口侧buffer缓存输出模块的示意图;
图8是根据本发明实施例的memory读写时钟门控电路的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
针对SOC片上系统中多个设备通过高级可扩展接口(Advanced ExtensibleInterface,AXI)总线对存储器进行读写访问时的提高读写频率和降低芯片功耗的需求,本发明实施例提供了一种存储器访问控制电路,图1是根据本发明实施例的存储器访问控制电路的结构框图,如图1所示,该存储器访问控制电路100包括:存储器侧缓存电路10和数据并串转换译码电路20。
存储器侧缓存电路10,用于根据读指令对存储器进行并行访问,并将读出的并行数据缓存至第一缓存单元;
数据并串转换译码电路20,输入端与所述存储器侧缓存电路10的输出端连接,用于将所述存储器侧缓存电路10输出的所述并行数据进行并串转换后输出至接口侧缓存电路。
通过本发明的上述实施例,由于将从存储器中读出的并行数据线存储到缓存单元,再通过数据并串转换译码电路将并行数据转换为串行数据,可以即保证读数据效率又保证芯片的工作频率。
在一个示例性实施例中,所述数据并串转换译码电路20包括:译码逻辑单元,用于对访问索引进行译码生成对多个第一数据选择器的选择控制信号并输出,其中,所述访问索引为根据读指令中的读地址和读长度确定的多个比特位;所述多个第一数据选择器,所述多个第一数据选择器依次级联,前一级第一数据选择器的输出端连接至后一级第一数据选择器的一个输入端,所述多个第一数据选择器的其他输入端并行连接至所述存储器侧缓存电路10的输出端,所述多个第一数据选择器的控制端分别连接至所述译码逻辑单元的对应的选择控制信号输出端。
在一个示例性实施例中,该存储器访问控制电路100还包括:至少一对相邻的第一数据选择器之间设置有一级或多级寄存器,在设置有寄存器的第一数据选择器之后的其他第一数据选择器的控制端均设置有一级或多级寄存器。在本实施中,在至少一对相邻的第一数据选择器之间设置有一级或多级寄存器,可提高电路工作频率,且逻辑结构更精巧。
在一个示例性实施例中,所述存储器侧缓存电路10包括:多个第二数据选择器,所述多个第二数据选择器的各输入端分别连接一个存储器单元的输出端,用于在所述多个存储器单元之间选一个所述存储器单元的数据进行输出;多个第一缓存单元,所述多个第一缓存单元的输入端连接所述多个第二级数据选择器的输出端,用于缓存从所述第二数据选择器输出的数据;多个第三数据选择器,所述多个第三数据选择器的各输入端分别连接一个所述第一缓存单元的输出端,用于在多个所述第一缓存单元之间选择一个所述第一缓存单元的数据进行输出。
在一个示例性实施例中,所述电路还包括:读写时钟门控电路,与所述存储器侧缓存电路10连接,用于向所述存储器侧缓存电路10传输第一工作时钟、写使能控制信号以及读使能控制信号。
在一个示例性实施例中,所述读写时钟门控电路,包括:第一寄存器,所述第一寄存器的两个输入端分别连接第二工作时钟和所述写使能控制信号;第二寄存器,所述第二寄存器的两个输入端分别连接第二工作时钟和所述读使能控制信号;或门逻辑单元,所述或门逻辑单元的输入端分别连接所述第一寄存器的输出端、所述第二寄存器的输出端、所述写使能控制信号以及所述读使能控制信号;二分频器,所述二分频器的输入端分别连接所述或门逻辑单元的输出端和第二工作时钟,所述二分频器的输出端连接所述存储器侧缓存电路10。在本实施例中,第一工作时钟是在读使能控制信号和/或写使能信号有效的情况下产生的,且频率是第二工作时钟的二分之一,因此,可有效减少存储器读写时钟的无效翻转,降低了芯片的功耗。
在一个示例性实施例中,所述电路还包括:接口侧缓存输出电路,用于缓存从所述数据并串转换译码电路20中读出的串行数据,并将所述串行数据输出至外部总线。
在一个示例性实施例中,所述接口侧缓存输出电路包括:缓存电路和与所述缓存电路的输出端相连的先进先出存储器。
本发明实施例还提供一种存储器访问控制方法,该方法基于上述实施例中的存储器访问控制电路,图2是根据本发明实施例的存储器访问控制方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,存储器侧缓存电路根据读指令对存储器进行并行访问,并将读出的并行数据缓存至第一缓存单元;
步骤S204,数据并串转换译码电路将所述存储器侧缓存电路输出的所述并行数据进行并串转换后输出至接口侧缓存电路。
在一个示例性实施例中,该存储器访问控制方法还包括:接口侧缓存输出电路将从所述数据并串转换译码电路中输出的串行数据进行缓存,再将所述串行数据输出至外部总线。
通过本发明,由于将从存储器中读出的并行数据线存储到缓存单元,再通过数据并串转换译码电路将并行数据转换为串行数据,可以即保证读数据效率又保证芯片的工作频率,因此,可以解决相关技术中存储器访问方法中芯片的工作频率低且功耗高的问题,提高了芯片的工作频率以及降低了芯片的功耗。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器(Read-Only Memory/Random Access Memory,ROM/RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
为便于对本发明所提供的技术方案的理解,下面将结合具体场景的实施例进行详细的阐述。
本发明实施例公开了一种高芯片主频、低功耗的存储器访问方法及电路。所要解决的是在数字芯片设计领域,SOC片上系统中,多个设备通过AXI总线对存储器进行读写访问时的提高读写频率和降低芯片功耗的需求。尤其要解决还有芯片后端布局,例如,物理布局(Floorplan)受限情况,即狭长Floorplan情况下提高芯片主频且降低芯片功耗的场景。图3是根据本发明实施例的存储器控制逻辑单元后端布局的示意图,图3中编号80为本发明实施例所述存储器控制电路在实际芯片后端布局中的应用;编号81Block0及其它Block1、Block2、Block3、Block4,为实际芯片中其他电路逻辑物理布局。在本发明实施例中,编号80存储器控制电路为一个狭长的物理布局结构,且存储器RAM较多,本发明实施例所提供的存储器访问控制电路,能有效解决芯片后端布局,Floorplan受限情况下,提高芯片主频,降低芯片功耗的场景。在狭长Floorplan结构下,使用本申请实施例所述的存储器访问控制电路,尤其是其中的并串转换译码电路,可以在任意译码点之间插入寄存器,使得RAM中的数据可以分层读出,使用在狭长Floorplan结构中,易于后端实现,可以显著提高芯片工作频率。
具体地,本发明实施例的电路根据AXI读写指令对多个物理存储器实体,进行并行访问,将访问数据存储在所述缓存结构中,再经过本发明实施例所提供的并串转换译码电路,根据访问索引,将数据串行输出。在本发明的一些实施例中,并串转换译码电路可以在任意一级的译码点插入寄存器,从随机存取存储器(Random Access Memory,RAM)中分层读取数据,尤其适用于狭长Floorplan存储器结构下,用于提高芯片工作频率。同时,本发明的一些实施例还提出一种高效的存储器读写时钟门控的电路,该电路能有效的降低存储器端口上时钟的无效翻转,降低芯片功耗。
下面结合附图和具体实施方式对本发明所述装置和方法作进一步的说明。
本发明提供一种高芯片主频,低功耗的存储器访问电路,该电路包括四部分:存储器(memory)侧缓存(buffer)输出模块、提高芯片工作频率的数据并串转换译码电路、接口侧buffer缓存输出模块以及降低芯片功耗的memory读写时钟门控电路。
图4是根据本发明实施例的memory侧buffer缓存输出模块的示意图,具体地,基于该memory侧buffer缓存输出模块,在本实施例中进行如下步骤:
第一步,根据AXI总线的读指令产生memory物理实体的读使能信号编号2re,根据读指令的读地址产生编号1block_sel信号,读使能信号re会作用于所有memory的物理block、物理bank,将所有memory物理实体(即物理block或物理bank)中的数据根据读使能信号re并行一次读出。
第二步,根据编号1block_sel信号,对各个block进行选择(mux),mux结构为编号4,编号4为二选一mux逻辑单元。mux逻辑单元和block个数有关系,如果有多个block,例如4个block,则mux结构要使用四选一mux。
第三步,根据编号5buf_a_en写入使能信号或编号6buf_b_en写入使能信号,将编号4mux选择之后的数据缓存到编号7buf_a或编号8buf_b缓存单元中。
第四步,根据编号10buf_sel信号控制编号9二选一mux逻辑,选择buf_a或buf_b中缓存的数据,缓存输出数据为编号11bank0_rdata。
第五步,根据AXI读指令中的读地址和读长度产生编号12index信号,index信号对多个buf输出的并行数据bank0_rdata,bank1_rdata,bank2_rdata.....进行并串转换,数据并串转换逻辑为编号14,经过编号14数据并串转换逻辑输出编号13rdata到后续逻辑模块。
需要说明的是,上述步骤主要叙述了bank0_block0,bank0_block1的mux选择路径数据传输。实际存储器会划分为多个block、多个bank。对应的编号4mux逻辑单元也会有调整,例如,如果有多个block,则编号4mux逻辑单元就需要从2选一变为block个数选一逻辑单元。另外,数据并串转换逻辑单元的多组输入bankn_rdata和实际存储器的bank个数划分有关系,对应的数据并串转换逻辑单元的输入数据需要包含bank0_rdata到bankn_rdata。此外,关于memory侧buffer缓存输出模块中使用两个buffer(即buf_a,buf_b)的原因,是为了保持memory侧缓存的数据结构和后述接口侧buffer缓存的数据结构保持一致,即memory侧选择使用两个buffer的原因是因为接口侧缓存buffer使用了两个buffer。而接口侧使用了两个buffer的原因是为了提高AXI总线读数据的效率,即使用两个buffer权衡了芯片面积及逻辑复杂度,使得有些AXI读指令,可以直接从接口缓存buffer中输出读数据,而不需要从memory中取数,减小了读数据的路径延迟,提高了读数据的性能。
图5是根据本发明实施例的数据并串转换译码电路的示意图,本实施的数据并串转换译码电路可提高芯片工作频率,具体地,基于提高芯片工作频率的数据并串转换译码电路在本实施例中进行如下步骤:
第一步,数据并串转换译码电路根据AXI总线读指令中的读地址araddr和读长度arlen计算出对应到memory各个bank读出数据并串转换译码的编号21index,图5中编号21index为3bit,即index[2],index[1],index[0]。index经过编号22 3_7_decode译码逻辑,译码为7bit数据编号23,即{c[0],c[1],c[2],c[3],c[4],c[5],c[6]},具体的译码关系如表1所示:例如index=3’b010,译码以后对应的c[1]=1,c[2]=0,c[3]=0,c[4]=0,c[5]=0,c[6]=0。因此,编号25的mux逻辑单元选择输出数据为bank2_rdata,因此,最终的译码输出数据编号31rdata=bank2_rdata。
表1
第二步,图5中的编号23译码以后的7bit数据作为7个二选一mux逻辑单元的使能控制信号,7个二选一mux的编号分别为24,25,26,27,28,29,30。7个mux逻辑单元的数据输入分别为从memory侧buffer缓存并行输出的数据,图5中的编号20,bank0_rdata,bank1_rdata,...bank7_rdata作为并行数据输入到7个二选一mux逻辑单元,二选一mux逻辑单元根据编号21index译码结果将并行数据变成串行数据一次输出,输出数据为编号31rdata。
第三步,根据本实施例的该数据并串转换译码电路,可以在两个二选一mux逻辑单元之间插入任意级数的寄存器,用于提高电路的工作频率,利于芯片的物理实现。如图6所示,在编号25和编号26mux逻辑单元之间插入一级寄存器,在编号28和编号29mux逻辑单元之间插入一级寄存器。特别说明,如果在两个mux逻辑单元之间插入一级寄存器,则从该mux逻辑单元开始之后的所有mux逻辑单元的选择控制信号c[*]都要插入一级寄存器。如图6所示,由于在编号25和编号26mux逻辑单元之间插入了一级寄存器,则c[2],c[3],c[4],c[5],c[6]控制信号都要插入一级寄存器,如编号33,编号32所示。由于在编号28和编号29mux逻辑单元之间又插入了一级寄存器,则c[5],c[6]控制信号又插入一级寄存器,因此c[5],c[6]控制信号插入了两级寄存器,如编号32所示。相应的,如果在两个mux逻辑单元之间插入n级寄存器,则从该mux逻辑单元开始之后的所有mux逻辑单元的选择控制信号c[*]都要插入n级寄存器。
需要说明的是,图5和图6描述的是一个示例,即index为3bit,对应的并行输入数据有8个。如果memory实体bank数增加,并行输入数据有16个时,对应的index则为4bit。此时译码模块就要通过4bit index译码产生16个mux逻辑单元控制信号。依次类推,输入并行数据不一定为2的幂次,可以为任意个数。例如,输入并行数据为5个,即bank0_rdata,bank1_rdata,bank2_rdata,bank3_rdata,bank4_rdata,此时需要的index依然为3bits,译码以后的mux逻辑单元控制信号c[4],c[5],c[6]恒为0,即编号28,编号29,编号30所示的mux逻辑单元相当于一个buffer,由于此时c[4],c[5],c[6]恒为0,所以bank5_rdata,bank6_rdata,bank7_rdata可以为任意值。
综上所述,本发明实施例的提高芯片工作频率的数据并串转换译码电路,可以支持任意多个memory读出并行数据的译码输出,可以支持任意两个mux逻辑单元之间插入任意个数的寄存器。通过插入寄存器可以有效提高芯片的工作频率,且易于后端物理实现。
图7是根据本发明实施例的接口侧buffer缓存输出模块的示意图,具体地,基于该接口侧buffer缓存输出模块,在本实施例中进行如下步骤:
第一步,接口侧buffer缓存输出模块用于缓存从memory侧buffer读出的串行数据,编号53rdata,并根据AXI读指令,将AXI反向通道的读数据从接口侧buffer输出到外部总线。编号53rdata经过编号52的mux逻辑单元,该mux逻辑单元受编号51buf_sel信号控制,当buf_sel信号为0时,rdata缓存到编号46buf_0,当buf_sel信号为1时,rdata缓存到编号47buf_1。编号49选择逻辑单元将rdata根据编号48idx_sel信号存入buf_0或buf_1。编号49的idx_sel选择逻辑单元有8个idx(0,1...7),即buf_0、buf_1中可以缓存8个rdata。
第二步,将buf_0,buf_1中的数据输出到AXI总线读数据通道。数据输出,首先要根据AXI读命令通道的araddr,arlen计算出编号43r_idx_sel,编号42r_buf_sel。r_idx_sel用于控制选择从buf中读出数据的索引,r_buf_sel用于选择buf_0或buf_1的数据输出。使用两个buf的优点:两个buf可以缓存较多从memory中读出的数据,如果后续读指令要读取的数据存储在接口buf中,则可以直接从buf输出到总线,而不需要再发出读指令以后再从memory中读出数据,使得读数据更快的输出到外部总线,减少读数据延迟,提高读数据性能。接口buf的个数可以根据实际使用情况适当增加,例如使用更多的buf,(buf0,buf1,...bufn),buf越多,读数据性能越高,但是电路实现复杂度会增大,面积也会增大。
第三步,从接口buf输出到总线的数据需要经过编号40rdata_fifo。因为AXI读数据通道有编号55rready_axi信号进行反压,如果外部输入的rready_axi信号为0,表示外部不能接收返回数据编号54rdata_axi。所以,需要将数据存入rdata_fifo,直到编号57rvalid_axi信号和rready_axi信号握手成功,即外部可以接收rdata_axi,才会从rdata_fifo中将rdata_axi数据读出。
需要说明的是,本专利中的编号40rdata_fifo有bypass功能,即当rdata_fifo为空(即rdata_fifo中没有缓存数据时)且编号55rready_axi信号为高,表示外部可以接收读数据,此时rdata_fifo可以bypass,即编号56buf_data不经过rdata_fifo直接输出。只有当外部反压,需要将编号56buf_data存入rdata_fifo,之后才需要从rdata_fifo中输出数据。当rdata_fifo中有数据时,必须从rdata_fifo中输出数据,不能使用bypass输出数据,否则会导致数据顺序错误。当rdata_fifo读空以后,rready_axi一直为高,就进入bypassrdata_fifo状态,可以将数据不经过rdata_fifo直接输出。此外,还需要说明的是,使用rdata_fifo的另一个原因是为了简化编号55rready_axi反压时的控制逻辑,如果不使用rdata_fifo,外部rready_axi反压,需要同时作用到buf_0,buf_1等多个buf上,会增加控制逻辑的复杂度。
图8是根据本发明实施例的memory读写时钟门控电路的示意图,该memory读写时钟门控电路有利于降低芯片功耗的,基于该memory读写时钟门控电路,可在本实施例中进行如下步骤:
第一步,如图8所示,编号60full_clk为memory控制逻辑的工作时钟,编号61we为full_clk下产生的memory写使能信号。编号62re为full_clk下产生的memory读使能信号,编号63Register0为we信号的采样寄存器,该寄存器的输出为编号65we_reg,即写使能信号的一级寄存器输出。编号64Register1为re信号的采样寄存器,该寄存器的输出为编号66re_reg,即读使能信号的一级寄存器输出。
第二步,we、we_reg、re、re_reg四个信号经过编号67或逻辑门,或逻辑输出为编号68en信号,en信号和编号60full_clk信号输入到编号69Divider_by_2二分频单元,该二分频单元根据en使能信号,将full_clk时钟进行二分频,二分频输出时钟为编号70half_clk,half_clk的时钟频率为full_clk时钟频率的二分之一,且只有en有效时,才会存在half_clk的动态翻转。编号61we,编号62re,编号70half_clk输入memory。we,re作为memory读写使能控制信号,half_clk作为memory的工作时钟。
需要说明的是,由于memory的工作时钟half_clk是在读写使能有效的情况下动态门控产生的时钟,且频率为工作时钟频率的二分之一。因此本发明实施例中的该memory读写时钟门控电路结构有效减少了memory读写时钟的无效翻转,降低了芯片的功耗。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种存储器访问控制电路,其特征在于,包括:
存储器侧缓存电路,用于根据读指令对存储器进行并行访问,并将读出的并行数据缓存至第一缓存单元;
数据并串转换译码电路,输入端与所述存储器侧缓存电路的输出端连接,用于将所述存储器侧缓存电路输出的所述并行数据进行并串转换后输出至接口侧缓存电路。
2.根据权利要求1所述的电路,其特征在于,其中,所述数据并串转换译码电路包括:
译码逻辑单元,用于对访问索引进行译码生成对多个第一数据选择器的选择控制信号并输出,其中,所述访问索引为根据读指令中的读地址和读长度确定的多个比特位;
所述多个第一数据选择器,所述多个第一数据选择器依次级联,前一级第一数据选择器的输出端连接至后一级第一数据选择器的一个输入端,所述多个第一数据选择器的其他输入端并行连接至所述存储器侧缓存电路的输出端,所述多个第一数据选择器的控制端分别连接至所述译码逻辑单元的对应的选择控制信号输出端。
3.根据权利要求2所述的电路,其特征在于,其中,至少一对相邻的第一数据选择器之间设置有一级或多级寄存器,在设置有寄存器的第一数据选择器之后的其他第一数据选择器的控制端均设置有一级或多级寄存器。
4.根据权利要求1所述的电路,其特征在于,其中,所述存储器侧缓存电路包括:
多个第二数据选择器,所述多个第二数据选择器的各输入端分别连接一个存储器单元的输出端,用于在所述多个存储器单元之间选一个所述存储器单元的数据进行输出;
多个第一缓存单元,所述多个第一缓存单元的输入端连接所述多个第二级数据选择器的输出端,用于缓存从所述第二数据选择器输出的数据;
多个第三数据选择器,所述多个第三数据选择器的各输入端分别连接一个所述第一缓存单元的输出端,用于在多个所述第一缓存单元之间选择一个所述第一缓存单元的数据进行输出。
5.根据权利要求1所述的电路,其特征在于,还包括:
读写时钟门控电路,与所述存储器侧缓存电路连接,用于向所述存储器侧缓存电路传输第一工作时钟、写使能控制信号以及读使能控制信号。
6.根据权利要求5所述的电路,其中,所述读写时钟门控电路,包括:
第一寄存器,所述第一寄存器的两个输入端分别连接第二工作时钟和所述写使能控制信号;
第二寄存器,所述第二寄存器的两个输入端分别连接第二工作时钟和所述读使能控制信号;
或门逻辑单元,所述或门逻辑单元的输入端分别连接所述第一寄存器的输出端、所述第二寄存器的输出端、所述写使能控制信号以及所述读使能控制信号;
二分频器,所述二分频器的输入端分别连接所述或门逻辑单元的输出端和第二工作时钟,所述二分频器的输出端连接所述存储器侧缓存电路。
7.根据权利要求1所述的电路,其特征在于,还包括:
接口侧缓存输出电路,用于缓存从所述数据并串转换译码电路中读出的串行数据,并将所述串行数据输出至外部总线。
8.根据权利要求7所述的电路,其特征在于,其中,所述接口侧缓存输出电路包括:缓存电路和与所述缓存电路的输出端相连的先进先出存储器。
9.一种存储器访问控制方法,其特征在于,应用于权利要求1-8任一项中的存储器访问控制电路,包括:
存储器侧缓存电路根据读指令对存储器进行并行访问,并将读出的并行数据缓存至第一缓存单元;
数据并串转换译码电路将所述存储器侧缓存电路输出的所述并行数据进行并串转换后输出至接口侧缓存电路。
10.根据权利要求9所述的方法,其特征在于,还包括:
接口侧缓存输出电路将从所述数据并串转换译码电路中输出的串行数据进行缓存,再将所述串行数据输出至外部总线。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求8中所述的方法的步骤,或者实现权利要求9-10中所述的方法的步骤。
12.一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求8中所述的方法的步骤,或者实现权利要求9-10中所述的方法的步骤。
CN202211058361.2A 2022-08-30 2022-08-30 存储器访问控制电路及存储器访问控制方法 Pending CN117667777A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211058361.2A CN117667777A (zh) 2022-08-30 2022-08-30 存储器访问控制电路及存储器访问控制方法
PCT/CN2023/103733 WO2024045848A1 (zh) 2022-08-30 2023-06-29 存储器访问控制电路及存储器访问控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211058361.2A CN117667777A (zh) 2022-08-30 2022-08-30 存储器访问控制电路及存储器访问控制方法

Publications (1)

Publication Number Publication Date
CN117667777A true CN117667777A (zh) 2024-03-08

Family

ID=90079495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211058361.2A Pending CN117667777A (zh) 2022-08-30 2022-08-30 存储器访问控制电路及存储器访问控制方法

Country Status (2)

Country Link
CN (1) CN117667777A (zh)
WO (1) WO2024045848A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69300523T2 (de) * 1993-11-26 1996-03-14 Sgs Thomson Microelectronics Prozessorschnittstellenschaltung zum Austausch von seriellen digitalen Daten mit einem Peripheriegerät.
CN103219037B (zh) * 2013-04-22 2016-01-20 中国科学院半导体研究所 多端口读写的片内存储器
CN105205012A (zh) * 2014-06-26 2015-12-30 北京兆易创新科技股份有限公司 一种数据读取方法和装置
CN105680871B (zh) * 2016-04-07 2018-09-28 武汉芯泰科技有限公司 用于数据串行传输的并串、串并转换装置
CN106649155A (zh) * 2016-11-14 2017-05-10 山东高云半导体科技有限公司 一种低功耗、高数据吞吐量的sdr sdram控制器及其工作方法
CN107391422A (zh) * 2017-07-19 2017-11-24 上海航天测控通信研究所 多路异步串行通讯数据访问系统及方法
CN111459857B (zh) * 2020-03-31 2022-04-19 西安微电子技术研究所 一种tcm控制器及数据缓存读取方法
CN113535633A (zh) * 2020-04-17 2021-10-22 深圳市中兴微电子技术有限公司 一种片上缓存装置和读写方法

Also Published As

Publication number Publication date
WO2024045848A1 (zh) 2024-03-07

Similar Documents

Publication Publication Date Title
US8688877B1 (en) Multiport memory architecture
KR100468761B1 (ko) 분할된 시스템 데이터 버스에 연결되는 메모리 모듈을구비하는 반도체 메모리 시스템
KR101914350B1 (ko) 동적 메모리 i/o 리사이징을 이용하여 메모리 전력을 절약하기 위한 시스템 및 방법
CN101261575B (zh) 一种实现不等宽数据传输的异步先进先出存储器及方法
US5406518A (en) Variable length delay circuit utilizing an integrated memory device with multiple-input and multiple-output configuration
US20080168325A1 (en) Semiconductor memory device and method for driving the same
CN106502922B (zh) 一种fifo数据缓存器的数据读写方法及数据缓存器
US9696941B1 (en) Memory system including memory buffer
CN115292237B (zh) 一种芯片及其数据传输方法
CN112988647A (zh) 一种TileLink总线到AXI4总线转换系统及方法
US4800535A (en) Interleaved memory addressing system and method using a parity signal
CN111813709B (zh) 一种基于fpga存算一体架构的高速并行存储方法
CN117667777A (zh) 存储器访问控制电路及存储器访问控制方法
US20140089370A1 (en) Parallel bit reversal devices and methods
KR100343831B1 (ko) 반도체메모리
US11169947B2 (en) Data transmission system capable of transmitting a great amount of data
CN105335296A (zh) 一种数据处理方法、装置及系统
JP3096576B2 (ja) メモリ制御回路とその回路を内蔵した集積回路素子
CN111694767B (zh) 累加缓存装置
KR20160109733A (ko) 다수의 클라이언트 데이터를 처리하는 저장 장치 및 방법
US20130100757A1 (en) Dual-Port Memory and a Method Thereof
Long et al. A low-complexity generalized memory addressing scheme for continuous-flow fast Fourier transform
US20240143278A1 (en) Processing-in-memory (pim) devices
US20240220104A1 (en) Memory control system and memory control method
CN118427136A (zh) 直接存储器访问装置及操作方法、数据处理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information

Country or region after: China

Address after: 518055, 2nd Floor, ZTE Industrial Park, No. 2 Chuangyan Road, Xili Community, Xili Street, Nanshan District, Shenzhen City, Guangdong Province, China

Applicant after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: SANECHIPS TECHNOLOGY Co.,Ltd.

Country or region before: China