CN113330428B - 数据样本传输方案及相关系统、方法和设备 - Google Patents

数据样本传输方案及相关系统、方法和设备 Download PDF

Info

Publication number
CN113330428B
CN113330428B CN202080010311.XA CN202080010311A CN113330428B CN 113330428 B CN113330428 B CN 113330428B CN 202080010311 A CN202080010311 A CN 202080010311A CN 113330428 B CN113330428 B CN 113330428B
Authority
CN
China
Prior art keywords
frame
buffer
frame buffer
data
processing
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.)
Active
Application number
CN202080010311.XA
Other languages
English (en)
Other versions
CN113330428A (zh
Inventor
N·拉杰斯威
P·古普塔
M·西蒙斯
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of CN113330428A publication Critical patent/CN113330428A/zh
Application granted granted Critical
Publication of CN113330428B publication Critical patent/CN113330428B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/174Telecommunications system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

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)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

本发明描述了一种缓冲器接口、数据传输方法和计算系统,其中缓冲器接口可被配置用于向和从限定在存储器中的帧缓冲器传送数据样本。可配置的缓冲器接口和帧缓冲器提供与许多应用一起使用的灵活且可扩展的平台。

Description

数据样本传输方案及相关系统、方法和设备
优先权声明
本申请要求于2019年1月25日提交的名称为“Data Samples Transport Scheme,and Related Systems,Methods and Devices”的美国专利申请序列号16/258,171的提交日期的权益,该专利申请的内容和公开内容据此全文以引用方式并入本文。
技术领域
本公开整体涉及数字信号处理,并且一些实施方案更具体地涉及将数据样本移动到数字信号处理器的系统存储器以及从数字信号处理器的系统存储器移动数据样本。
背景技术
数字信号处理器(DSP)是为数字信号处理而优化的微处理器。在典型的使用情况下,源信号从模拟转换为数字,由DSP进行数字处理,然后转换回模拟。对于许多应用,DSP需要对许多数据样本快速执行大量操作(例如,就每秒操作或每秒处理的数据样本而言),并且需要大的存储带宽用于它们的计算。
为了满足特定应用的要求,DSP平台通常针对特定应用或应用类别进行定制。一些应用需要DSP以及微控制器两者,例如马达控制和电源、音频处理、视频处理、无线信号滤波、用于软件定义的无线电调制解调器的预处理信号。每个DSP平台本身可涉及影响数据总线带宽的标准和协议。例如,DSP平台使用多种总线架构和接口协议,诸如APB(高级外设总线)、AMBA(高级微控制器总线架构)、AXI(高级可扩展接口)、AHB(AMBA高性能总线或“AMBA2”)等。此外,应用系列内的DSP通常使用并设计用于某些算法来处理数据样本并使用特定数据帧大小来操作。
使用DSP平台的应用越来越需要与多种系统进行交互。这些系统可使用多种样本宽度和采样率。
附图说明
虽然本公开以特别指出并清楚地要求保护具体实施方案的权利要求书作为结尾,但当结合附图阅读时,通过以下描述可更容易地确定本公开范围内的实施方案的各种特征和优点,在附图中:
图1A为根据本公开的一个或多个实施方案的数据传输系统的功能框图。
图1B为可用于图1A的数据传输方案的计算系统的简化框图。
图1C为根据本公开的一个或多个实施方案的帧缓冲器接口的功能框图。
图2A为根据本公开的一个或多个实施方案的上行链路处理机(handler)的系统的功能框图。
图2B为根据本公开的一个或多个实施方案的下行链路处理机的系统的功能框图。
图3A示出了根据本公开的一个或多个实施方案的用于从不同来源接收的数据样本的上行链路信道处理过程的流程图。
图3B示出了根据本公开的一个或多个实施方案的用于存储在公用存储器中的数据样本组的上行链路信道处理过程的流程图。
图3C示出了用于存储在帧缓冲器中的经处理的数据样本的下行链路信道处理过程的流程图。
图4A示出了根据本公开的一个或多个实施方案的存储器中的帧缓冲器区域的示例性存储器映射。
图4B示出了根据本公开的一个或多个实施方案的上行链路信道配置参数的表,该上行链路信道配置参数可被确定并存储在信道配置寄存器中,然后用于移动数据样本。
图5示出了根据本公开的一个或多个实施方案的设置过程的流程图,该设置过程用于在存储器中分配帧缓冲器并初始化用于缓冲器接口的配置寄存器以处理用于上行链路的数据样本的移动和用于下行链路的经处理的数据样本的移动。
图6示出了存储器中的第一帧缓冲器区域和第二帧缓冲器区域的示例性存储器映射。
图7示出了根据本公开的一个或多个实施方案的在使用帧缓冲器对的上行链路期间移动的示例性数据的时序图。
图8示出了根据本公开的一个或多个实施方案的在存储器的帧缓冲器区域中分配的帧缓冲器区域的链接列表的存储器映射。
图9示出了根据本公开的一个或多个实施方案的被配置用于音频数据传输的音频系统。
具体实施方式
在以下详细描述中,参考了形成其一部分的附图,并且在附图中以举例的方式示出了可实践本公开的具体示例性实施方案。充分详细地描述了这些实施方案,以使本领域的普通技术人员能够实践本公开。然而,可利用其他实施方案,并且可在不脱离本公开的范围的情况下进行结构、材料和过程的变化。
本文所呈现的图示并不旨在为任何特定方法、系统、设备或结构的实际视图,而仅仅是用于描述本公开的实施方案的理想化表示。本文所呈现的附图未必按比例绘制。为了读者的方便,各附图中的类似结构或部件可保持相同或相似的编号;然而,编号的相似性并不意味着该结构或部件在尺寸、组成、配置或任何其他属性方面必须是相同的。
容易理解的是,如本文整体描述的和附图中示出的实施方案的部件可以各种不同的配置来布置和设计。因此,对各种实施方案的以下描述并不旨在限制本公开的范围,而是仅代表各种实施方案。虽然实施方案的各个方面可在附图中呈现,但是附图未必按比例绘制,除非特别指明。
以下描述可包括示例以帮助本领域的普通技术人员实践本发明所公开的实施方案。使用术语“示例性的”、“通过示例”和“例如”是指相关描述是说明性的,虽然本公开的范围旨在涵盖示例和法律等同形式,但使用此类术语并不旨在将实施方案或本公开的范围限制于指定的部件、步骤、特征或功能等。
因此,除非本文另有说明,否则所示出和描述的特定实施方式仅是示例,并且不应被解释为是实施本公开的唯一方式。元件、电路和功能可以框图形式示出,以便不以不必要的细节模糊本公开。相反,所示出和描述的特定实施方式仅为示例性的,并且不应理解为实施本公开的唯一方式,除非本文另外指明。另外,块定义和各个块之间逻辑的分区是特定实施方式的示例。对于本领域的普通技术人员将显而易见的是,本公开可通过许多其他分区解决方案来实践。在大多数情况下,已省略了关于定时考虑等的细节,其中此类细节不需要获得本公开的完全理解,并且在相关领域的普通技术人员的能力范围内。
本文所述的信息和信号可使用各种不同技术和技艺中的任何一种来表示。例如,可在整个说明书中参考的数据、指令、命令、信息、信号、比特和符号可由电压、电流、电磁波、磁场或粒子、光场或粒子或者它们的任何组合来表示。为了清晰地呈现和描述,一些附图可以将信号示出为单个信号。本领域普通技术人员应当理解,信号可表示信号的总线,其中该总线可具有各种位宽度,并且本公开可在任何数量的包括单个数据信号的数据信号上实现。
应当理解,本文中使用名称诸如“第一”、“第二”等对元件的任何提及不限制这些元件的数量或顺序,除非明确说明此类限制。相反,这些名称在本文中用作区分两个或更多个元件或者一个元件的两个或更多个实例的便利方法。因此,对第一元件和第二元件的提及并不意味着只能使用两个元件,或者第一元件必须以某种方式在第二元件之前。而且,除非另有说明,否则一组元件可包括一个或多个元件。同样地,有时以单数形式提及的元件也可包括元件的一个或多个实例。
结合本文公开的实施方案描述的各种例示性逻辑块、模块和电路可用被设计成执行本文所述的功能的通用处理器、专用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件部件或者其任何组合来实现或执行。通用处理器(在本文中也可称为主机处理器或仅称为主机)可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实现为计算设备的组合,诸如DSP和微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器或任何其他此类配置。在通用计算机被配置为执行与本公开的实施方案相关的计算指令(例如,软件代码)时,包括处理器的通用计算机被认为是专用计算机。
而且,应当指出的是,可根据被描绘为流程图、流程图示、结构图或框图的过程来描述实施方案。尽管流程图可将操作行为描述为顺序过程,但是许多这些行为可按另一顺序、并行或基本上同时执行。此外,可重新安排动作的顺序。过程可非限制地对应于方法、线程、函数、规程、子例程或子程序。此外,本文所公开的方法可通过硬件、软件或这两者来实现。如果在软件中实现,这些函数可作为一个或多个指令或代码存储或传输到计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质两者,该通信介质包括有利于将计算机程序从一个位置传递到另一个位置的任何介质。
本公开的发明人已知的一些常规DSP平台使用重采样技术(例如,内插和抽取的组合)来改变数据样本的采样率以便更好地适应数据传输方案,然而,实现在足够采样率范围内操作的一系列重采样滤波器具有缺点。例如,如果在硬件中实现,则重采样滤波器会消耗面积、功率并且还会使原始信号减弱,因为重采样滤波器不能完全地将原始信号从一种采样率重采样到另一种采样率。如果在软件中实现,则仍然存在信号质量的问题;此外,软件实现需要额外的MIPS(即,“没有联锁流水线级的微处理器”)和代码区域来实现这些重采样器。
解决可变性的另一种技术是使用信道缓冲器保持数据样本,然后DSP逐个样本地从信道缓冲器读取数据样本。这种技术的一个缺点是,DSP可能在每次读取样本时被中断。采样率越高,DSP被中断的频率就越高,这会降低其核心信号处理功能的DSP性能。此外,如果传输方案实现缓冲器共享(其中多个信道共享相同的信道缓冲器),则通常必须使用重采样滤波器来匹配所有采样率,然后累积样本以发送到处理器,因为传输方案通常不能处理可变样本宽度。
如本公开所用,“信道”是指在两个或更多个点之间的通信区段、电区段、电磁区段或电区段和电磁区段的组合的路径。
如本公开所用,“上行链路”是指从一个点到一个或多个帧缓冲器的信道的至少一部分。如本公开所用,“下行链路”是指从一个或多个帧缓冲器到一个点的信道的至少一部分。按照惯例,接收数据样本的帧缓冲器在本文中可被称为输入帧缓冲器,并且从其接收经处理的数据样本的帧缓冲器在本文中可被称为输出帧缓冲器。输出帧缓冲器可以是与接收经处理的数据样本的输入帧缓冲器相同(即,分配的存储空间相同)的输入帧缓冲器,或者它可以是与接收经处理的数据样本的输入帧缓冲器不同(即,分配的存储空间不同)的帧缓冲器。
如本公开所用,“宽度”在用于修饰另一个术语例如“样本宽度”、“接口宽度”时是指位宽度。
本公开的一个或多个实施方案整体涉及在处理系统的系统存储器中分配多个帧缓冲器,然后通过缓冲器接口在帧缓冲器与一个或多个数据路径之间移动数据样本,所述缓冲器接口被配置为对帧缓冲器以及一个或多个数据路径进行读取和写入。帧缓冲器对应于处理帧—其大小在以时间测量时在本文中被称为“处理帧持续时间”。处理帧包括用于处理算法的必要数量的样本。缓冲器接口是可配置的和可重新配置的,用于至少部分地基于上行链路配置参数和下行链路配置参数来传送数据样本。
图1示出了根据本公开的一个或多个实施方案的包括N个数据样本源10、N个缓冲器接口20、处理器30、M个缓冲器接口40和M个数据接收器50的数据传输系统1的功能框图。在图1所示的实施方案中,在上行链路侧,数据样本源10以不同的采样率和位宽度操作,并且通过各自的缓冲器接口20将数据样本发送到处理器30。缓冲器接口20以不同的采样率和不同的位宽度接收数据样本,并且以不同的采样率和相同的位宽度输出缓冲的数据样本。缓冲器接口20在从数据样本源10到缓冲器接口20的信道与到处理器30的信道之间执行带宽对齐(即,调整在第一信道处接收的数据样本以用于在第二信道处进行通信,其中第一信道和第二信道具有不同的最大位速率),以及将数据大小(即,位宽度)调整为由处理器30使用的大小。处理器30以不同的采样率和相同的位宽度接收预处理的数据样本。术语“位宽度”并非意在限于并行数据位的情况,并且具体地设想了使用具有字长的串行数据,其中字长为位宽度。
在下行链路侧,处理器30将经处理的数据样本发送到数据接收器50。在该实施方案中,数据接收器50被示出为数模转换器(DAC),但本公开并不限于此。处理器30将经处理的数据样本以不同的采样率和相同的位宽度发送到缓冲器接口40。缓冲器接口40的每个缓冲器接口以采样率和位宽度接收经处理的数据样本,并且以各自不同的采样率和各自不同的位宽度输出经缓冲处理的数据样本。缓冲器接口40在从处理器30到缓冲器接口40的信道与从缓冲器接口40到数据接收器50的信道之间执行带宽对齐,并且将经处理的数据样本的位宽度调整为由各种数据接收器50使用的位宽度。关于系统1的元件的更多细节在本公开的其他地方提供。
图1B是包括主机处理器102、存储器104(例如SRAM)、信道控制器110和直接存储器存取(DMA)控制器112的计算系统100的简化框图。作为非限制性示例,计算系统100可以是微控制器型嵌入式系统、用户型计算机、文件服务器、计算机服务器、笔记本电脑、平板电脑、手持式设备、移动设备、无线耳塞设备或耳机设备、有线耳塞或耳机设备、其他类似的用于执行软件的计算机系统。计算机、计算系统和服务器可在本文中互换使用以指示用于实践本公开的实施方案的系统。计算系统100被配置用于执行包含计算指令的软件程序,并且可包括一个或多个处理器、存储器、存储装置、用户界面元件、一个或多个通信元件以及它们的组合。
主机处理器102是中央处理单元(CPU),其可被配置为执行各种操作系统和应用程序,这些操作系统和应用程序包括用于执行本公开的实施方案的全部或部分的计算指令。主机处理器102可以是单核或多核处理器,并且该一个或多个核可以是被配置和/或被编程为执行本公开中所述的一个或多个功能的专用(例如,DSP)和通用的任何组合。在多核实施方案中,这些核可独立地和相互依赖地(包括但不限于以主从布置)操作。
存储器104可用于保存用于执行各种任务(包括执行本公开的实施方案)的计算机指令、数据结构和其他信息。作为非限制性示例,存储器104可包括同步随机存取存储器(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、闪存存储器等。
存储器104可包括被配置为存储信息的其他类型的存储器设备,包括易失性存储设备或非易失性存储设备。其他类型的存储器的示例包括纳米RAM(NRAM)、基于纳米晶体线的存储器、基于氧化硅的亚10纳米工艺存储器、石墨烯存储器、硅氧化氮氧化硅(SONOS)、电阻随机存取存储器(RRAM)、可编程金属化单元(PMC)、导通桥联RAM(CBRAM)、磁阻式RAM(MRAM)、相变RAM(PCRAM)、相变存储器或其他固态存储介质。
在图1B所示的实施方案中,主机处理器102与互连器106上的存储器104通信,这实现了相对较低延迟的通信。例如,存储器104可以是紧密耦合的存储器(TCM)、高速缓存类型的存储器或TCM存储器和高速缓存存储器的组合(例如,并行实现),并且互连器106可以是主机处理器102与存储器104之间的直接连接或它们两者操作地耦合的数据总线。
主机处理器102和存储器104通过互连器114与DMA控制器112和信道控制器110通信。在图1B所示的实施方案中,互连器114为总线、芯片组、交换机或片上网络,但不限于根据高级可扩展接口(AXI)提供点对点连接。在其他实施方案中,互连器114可被实现为总线,诸如高级系统总线(ASB)、高级外设总线(APB)或高级高性能总线(AHB)。
在图1B所示的实施方案中,存储器104可由主机处理器102和DMA控制器112直接访问,它们均可操作地耦合到互连器114的主类型端口。存储器104可由信道控制器110通过DMA控制器112访问,该DMA控制器可被配置为授予信道控制器110对存储器104的读/写访问权限。存储器104可操作地耦合到互连器114的从属类型端口。
信道控制器110可通过在图1B中标记为信道总线116的多个总线与设备通信。以举例的方式,DMA控制器112和信道控制器110可以硬件、软件或它们的组合(例如,组合逻辑、主机处理器102处的主核的从核,但不限于此)实现。DMA控制器112和信道控制器110可统称为缓冲器接口108。
许多其他系统配置对于本公开的实施方案是可能的,并且对于本领域的普通技术人员而言将是显而易见的。例如,可包括单独的/附加的总线(数据、地址、指令、存储器等)以用于在计算系统100中的设备之间进行通信。
图1C为根据本公开的一个或多个实施方案的帧缓冲器接口120的功能框图,该帧缓冲器接口通常被配置为将数据样本移动到处理系统150的存储器152中定义的帧缓冲器154以及从该帧缓冲器移动数据样本。虽然图1C中示出了处理系统150的元件,但这并不旨在意味着侵占本公开的帧缓冲器接口需要处理系统150的任何元件,包括帧缓冲器154。上行链路处理机126和下行链路处理机122可各自被配置为结合用于上行链路路径和下行链路路径的DMA控制器132操作的控制器,并且还包括缓冲和打包/解包数据样本以填充AXI总线。
在一个或多个实施方案中,缓冲器接口120包括下行链路处理机122、上行链路处理机126、请求管理器130和DMA控制器132。一般来讲,上行链路处理机126接收数据样本136并提供数据样本包140。更具体地讲,上行链路处理机126被配置为在多个信道中的每个信道上收集数据样本136,将数据样本136打包成包,并提供数据样本包140,以及监控帧缓冲器154。
上行链路处理机126可包括多个上行链路信道处理机128,所述多个上行链路信道处理机被配置为处理用于特定上行链路信道的数据样本。上行链路处理机126被配置为通知DMA控制器132数据样本包140准备好被发送并写入存储器152中的一个或多个帧缓冲器154。
在一个或多个实施方案中,DMA控制器132通常被配置为在请求管理器130进行可选仲裁之后,管理对存储器152的读/写访问,并且更具体地讲,DMA控制器132响应于数据移动请求142而管理对存储器152的一个或多个帧缓冲器154的读/写访问,这将在下文进一步描述。在一个实施方案中,数据移动请求142可描述用于数据样本包140的帧缓冲器154的输入帧缓冲器(例如,通过使用地址指针)。在另一个实施方案中,数据移动请求142可描述上行链路信道,并且DMA控制器132被配置为参考将特定输入帧缓冲器与特定上行链路信道相关联并使用各种DMA技术移动样本的表。作为可由DMA控制器132实现的DMA技术的示例,DMA控制器132可被配置为整理来自每个信道(或更具体地,来自上行链路控制器)的样本,然后更具体地执行到处理系统150和帧缓冲器154的脉冲串传输。在使用AXI总线将数据样本移动到处理系统150的情况下,以举例的方式,然后可使用固定脉冲串(即,其中下一个地址指针不变,例如,具有地址固定I/O端口)或递增脉冲串(即,其中下一个地址指针按数据大小递增以指向存储器中的下一个地址位置)。
缓冲器接口120可被配置为将多个信道的数据样本136顺序地或并行地移动到存储器152,只要在上行链路信道处理机128处存在要移动的有效数据。在136处,也可使用输入采样率来控制数据样本必须在每个信道移动的速率。
上行链路信道处理机128可同时或几乎同时为多个上行链路信道请求对存储器152的写入访问。因此,在一个或多个实施方案中,缓冲器接口120可包括请求管理器130,该请求管理器被配置为在从多个信道移动数据样本包140的多个数据移动请求142之间进行仲裁(即,根据优先级从多个请求中选择),并且生成到DMA控制器132的经仲裁的上行链路移动请求144。只要从在上行链路处理机126处接收到数据样本时到在存储器152处的帧缓冲器处接收到数据样本包140时的传输时间发生在可接受的传输时间窗口内(即,为了足够及时地传输以确保数据完整性,个体存储器写入必须在1/采样率内完成),请求管理器130就可响应于任何合适的仲裁算法进行仲裁。
在一个或多个实施方案中,下行链路处理机122通常被配置为将经处理的数据样本158从处理系统150移动到一个或多个目的地数据路径。下行链路处理机122被配置为监控处理系统150(或由处理系统150通知),并且当数据样本已被处理时,经由可选的请求管理器130向DMA控制器132提供下行链路数据移动请求146。
DMA控制器132响应于下行链路数据移动请求146管理对存储器152的读取访问,并且从处理系统150的存储器152读取经处理的数据样本158。下行链路处理机122可顺序地或并行地移动多个信道的数据,因此,与上行链路数据移动请求142一样,请求管理器130可被配置为在多个下行链路数据移动请求146之间进行仲裁,并且生成到DMA控制器132的经仲裁的下行链路移动请求148。
在一个实施方案中,经处理的数据样本158被存储在存储器152的相同帧缓冲器中,其中数据样本在处理之前被接收。在另一个实施方案中,经处理的数据样本158被存储在存储器152的与在处理之前接收数据样本的帧缓冲器不同的帧缓冲器中。除其他优点之外,使用不同的帧缓冲器来接收数据样本并提供经处理的数据样本使得上行链路信道和下行链路信道能够同时处于活动状态—例如,下行链路不必与上行链路协调。用于接收数据样本的帧缓冲器在本文中可表征为“输入帧缓冲器”,并且用于提供经处理的数据样本的帧缓冲器在本文中可表征为“输出帧缓冲器”。
下行链路处理机122可包括一个或多个下行链路信道处理机124,该一个或多个下行链路信道处理机被配置为处理经处理的数据样本158。下行链路信道处理机124可响应于一个或多个下行链路配置参数来处理经处理的数据样本158,该一个或多个下行链路配置参数限定数据样本接收器(诸如数据接收器50)预期的采样率、样本宽度和样本数量中的一者或多者。在一些情况下,下行链路采样率和样本宽度可与生成数据样本的数据样本源相同,但是这些参数不必相同,并且不同的采样率和样本宽度可用于下行链路,而不是用于上行链路。
包括上行链路处理机126和下行链路处理机122的示例性上行链路处理机和示例性下行链路处理机参考图2A和图2B来描述。
图2A为根据本公开的一个或多个实施方案的上行链路信道处理机202、226和238的系统200的功能框图。上行链路信道处理机202、226和238通常可被配置为配置组成输入行缓冲器(例如,输入行缓冲器210、232和244),监控输入帧缓冲器的状态(例如,空的、满的、可访问的、不可访问的等),并且通知处理系统(例如,处理系统150)输入帧缓冲器已满(或接近满)可被处理的数据样本。
在图2A所示的示例性实施方案中,系统200包括N个上行链路信道处理机,更具体地,上行链路信道处理机202、226和238。上行链路信道处理机202包括上行链路控制器204、配置寄存器206和输入行缓冲器210。上行链路信道处理机226包括上行链路控制器228、配置寄存器230和输入行缓冲器232。上行链路信道处理机238包括上行链路控制器240、配置寄存器242和输入行缓冲器244。每个上行链路信道处理机202、226、238被配置为接收数据样本,并且可以可操作地耦合到一个或多个数据源(例如,如图1A所示)。每个上行链路信道处理机202、226和238与不同的上行链路信道相关联。
在一个或多个实施方案中,输入行缓冲器210、232和244通常可被配置为将输入信道(即,用于接收数据样本的信道)的不同带宽与输入帧缓冲器信道(即,用于将数据样本移动到帧缓冲器的信道)的带宽相匹配,以及将到达输入信道的数据样本的大小调整为用于输入帧缓冲器信道和/或在帧缓冲器处接收的数据样本的预期大小。
在图2A所示的示例性实施方案中,每个上行链路信道处理机202、226和238被配置为处理一个输入信道,换句话讲,上行链路信道处理机的数量与上行链路信道的数量(这里为N)之间存在一一对应关系。然而,这不是必需的,并且上行链路信道处理机可被配置为处理多于一个输入信道,例如,上行链路信道处理机可被配置为处理根据特定采样率采样的数据。又如,具体设想了一个实施方案,配置寄存器可存储用于处理多个输入信道的配置参数集,并且一个上行链路信道处理机可被配置为使用这些配置参数集来处理来自多个输入信道(包括数据传输系统中的所有输入信道)的数据样本。
在图2A所示的示例性实施方案中,系统200包括N个输入行缓冲器,包括输入行缓冲器210、输入行缓冲器232和输入行缓冲器244,每个输入行缓冲器分别与信道0、信道1和信道N相关联(即,可操作以耦合数据样本和/或从这些信道接收数据样本)。
每个输入行缓冲器210、232和244通常可被配置为接收、存储和修改数据样本。在一个或多个实施方案中,输入行缓冲器210、232和244可分别包括先进先出(FIFO)缓冲器212、234和246,以及分别包括打包器214、236和244。
打包器214、236和248通常可被配置为执行打包操作,并且更具体地,将分别存储在FIFO 212、234和246处的数据样本的位打包到数据包的帧的一个或多个位位置中。在一个实施方案中,打包器214、236和248可响应于从上行链路控制器204接收的打包参数(例如,打包参数216)来打包数据样本。在另一个实施方案中,上行链路控制器204、228和240可响应于打包参数(例如,打包参数216)分别配置打包器214、236和248。
用于给定信道的打包参数可包括例如至少样本宽度和总线接口宽度。样本宽度可对应于设备的输出宽度,诸如对模拟信号进行采样或者对已经采样的信号进行上/下转换以提供数据样本的模数转换器(ADC)。总线接口宽度可对应于将缓冲器接口可操作地耦合到具有帧缓冲器的存储器(例如,将缓冲器接口120可操作地耦合到图1C的存储器152)的互连器的宽度。例如,对应于数据样本源的ADC的12位输出的12位数据样本可调整为总线接口的16位字宽。以举例的方式,打包器214、236和248可各自为寄存器组,该寄存器组被配置为行缓冲器或线材横杆,该行缓冲器或线材横杆保持数据样本直到被重写。
在其他优点中,在给定特定样本宽度和特定总线接口宽度的情况下,打包数据样本使从输入行缓冲器到帧缓冲器的数据移动的数量最小化。与执行更多数据移动以填充帧缓冲器相比,使填充帧缓冲器的数据移动的数量最小化可优化总线吞吐量和功率消耗。此外,与不使用帧缓冲器和/或使到帧缓冲器的数据移动的数量最小化的数据传输方案相比,与促进更少数量的触发的处理器中断的帧缓冲器结合的打包可优化总线性能以及处理器核心功能的性能。在另一个实施方案中,打包器可将仅特定配置数量的样本组合到一个包中,然后启动数据移动。当在处理器中实现复杂的音频处理功能时,这种控制多少样本可被打包到一个包中和/或样本可到达上行链路信道处理机的速率的灵活性表现为关键灵活性标准。
在一个或多个实施方案中,上行链路控制器204、228和240可被配置为分别从配置寄存器206、230和242检索配置参数。一般来讲,配置寄存器206、230和242可被配置为分别存储用于信道0、1和N中的每一者的配置参数。以举例的方式,配置参数可包括与处理算法预期的处理帧相关的参数(即,处理帧参数)和与用于生成在上行链路信道处理机202、226和238处接收的数据样本的采样相关的参数(即,数据采样参数)中的一者或多者。
通过通常适用于上行链路信道处理机226和238的操作的上行链路信道处理机202的预期操作,当数据样本224到达FIFO 212时,打包器214根据第一总线接口宽度对数据样本224进行打包,以优化在单个移动事务中从输入行缓冲器232移动到第一输入帧缓冲器的数据样本224的样本的数量,该移动可包括但不限于用于移动输入行缓冲器210的内容的存储器事务脉冲串或单个存储器事务。上行链路控制器204可响应于从行缓冲器210接收到指示数据样本包222准备好被移动的数据就绪消息218而提供数据移动请求220。以举例的方式,数据移动请求220可包括第一输入帧缓冲器的存储器中的位置的存储地址或信道0的信道标识符,其可用于(例如,通过图1C的存储器DMA 132)解析与第一输入帧缓冲器相关联的存储器中的位置的存储地址的。
在一个或多个实施方案中,输入行缓冲器210、232和244被配置为通知(例如,数据就绪消息218)上行链路控制器204、228和240数据样本包准备号/可用于发送到适用的输入帧缓冲器。在一个实施方案中,上行链路控制器204、228和240可被配置为针对信道0、1和N对分别从输入行缓冲器210、232和244发送到输入帧缓冲器的数据样本的总数进行计数,并且在计数指示信道的输入帧缓冲器已满(或接近满)时通知处理系统(例如,处理系统150)。
在一个实施方案中,配置寄存器206、230和242存储帧缓冲器大小,并且上行链路控制器204、228和240接收此类帧缓冲器大小(例如,根据要填充输入帧缓冲器或处理帧的样本数量),例如,作为配置参数。
通过通常适用于上行链路控制器228和240的操作的上行链路控制器204的预期操作,上行链路控制器204确定数据样本包222的每个数据包中的数据样本224的数量,并且每次输入行缓冲器210提供数据样本包222的数据包时,上行链路控制器204将样本计数增加存储在数据样本包222的数据包中的数据样本224的数量。上行链路控制器204响应于样本计数来检测输入帧缓冲器何时已满。例如,如果样本计数指示帧缓冲器已满或者如果更多样本存储在输入帧缓冲器处则在输入帧缓冲器处将存在数据溢出,则上行链路控制器204向适用的处理系统发送通知(例如,中断)。
在一个或多个实施方案中,FIFO 212、234和242(以及更一般地,输入行缓冲器210、232和244)可包括足够的备用存储装置以接收附加的数据样本而不会发生数据溢出,例如,在数据样本被存储在输入帧缓冲器处时和/或在等待输入帧缓冲器的内容被处理时。
虽然参考图2A所示和所述的示例性实施方案示出了用于上行链路信道处理机的一个行缓冲器,但本公开并不限于此。实际上,具体地设想上行链路信道处理机(和下行链路信道处理机)可实现多个行缓冲器。例如,上行链路信道处理机可包括两个输入行缓冲器并且以交替方式操作它们以便放宽接口速度。例如,放宽与确保向和从帧缓冲器传输数据样本(和经处理的数据样本)而在行缓冲器处没有数据溢出相关的约束。
图2B为根据本公开的一个或多个实施方案的下行链路信道处理机252、272和284的系统250的功能框图。下行链路信道处理机252、272和284通常可被配置为配置组成输出行缓冲器260、278和290,监控输出帧缓冲器的状态(例如,空的、满的、可访问的、不可访问的等),接收输出帧缓冲器的内容(例如,经处理的数据样本)准备好被移动的通知,并且通知处理系统输出帧缓冲器的内容(例如,经处理的采样日期)已从输出帧缓冲器移动。
在图2A所示的示例性实施方案中,系统250包括M个下行链路信道处理机,并且更具体地,包括下行链路信道处理机252、272和284。下行链路信道处理机252包括下行链路控制器254、配置寄存器256和输出行缓冲器260。下行链路信道处理机272包括下行链路控制器274、配置寄存器276和输出行缓冲器278。下行链路信道处理机284包括下行链路控制器286、配置寄存器288和输出行缓冲器290。每个下行链路信道处理机252、272和284被配置为从(例如,图1C的帧缓冲器154的)输出帧缓冲器接收经处理的数据样本。在一个或多个实施方案中,每个下行链路信道处理机252、272和284可与(例如,图1A的数据接收器50的)输出信道相关联。
在一个或多个实施方案中,输出行缓冲器260、278和290通常可被配置为将输出信道(即,输出行缓冲器与数据接收器之间的信道)的带宽与输出帧缓冲器信道(即,用于从输出帧缓冲器移动经处理的数据样本的信道)的带宽相匹配,以及将到达输出帧缓冲器信道的经处理的数据样本的大小调整为数据接收器的输出信道的预期大小(例如,输出信道的总线接口大小)。在一个或多个实施方案中,输出行缓冲器260、278和290可包括用于由下行链路处理机250处理的M个输出信道中的每个输出信道的行缓冲器。
在图2B所示的示例性实施方案中,每个下行链路信道处理机252、272和284被配置为处理一个输出信道,换句话讲,下行链路信道处理机的数量与输出信道的数量(这里为M)之间存在一一对应关系。然而,与上行链路信道处理机一样,这不是必需的,并且下行链路信道处理机可被配置为处理多于一个输出信道,多达并包括一个下行链路信道处理机,该下行链路信道处理机使用针对每个输出信道存储的配置参数来管理数据传输系统的多达所有输出信道。
在图2B所示的实施方案中,M个输出行缓冲器与M个输出信道相关联,包括分别与输出信道0、输出信道1和输出信道M相关联的输出行缓冲器260、输出行缓冲器278和输出行缓冲器290。
每个输出行缓冲器260、278和290通常可被配置为接收、存储和修改经处理的数据样本。在一个或多个实施方案中,输出行缓冲器260、278和290可分别包括FIFO 262、282和292,以及分别包括解包器264、280和294。
解包器264、280和294通常可被配置为基本上以针对图2A的打包器214、236、248所述的类似方式执行,而是响应于从下行链路信道处理机252、272和284接收的解包参数(例如,解包参数266)或者如由下行链路信道处理机252、272和284所配置的那样对经处理的数据样本进行打包。解包参数可包括例如至少输出样本宽度和总线接口宽度。在一个或多个实施方案中,输出样本宽度是数据接收器预期的宽度。在一个实施方案中,经处理的数据样本可能已经处于输出样本宽度,例如,因为处理器被配置为以等于输出样本宽度的宽度提供经处理的样本数据。然而,这不是必需的,并且经处理的数据样本可到达与样本输出宽度不同的宽度,并且被修改。在一个或多个实施方案中,总线接口宽度是从存储器到下行链路信道处理机的总线的宽度。
在通常适用于下行链路信道处理机272和284的操作的下行链路信道处理机252的预期操作中,在FIFO 262处从输出帧缓冲器接收经处理的数据样本包268时,解包器264以输出样本宽度将所接收的经处理的数据样本包268解包成经处理的样本的帧,并将它们输出为经处理的数据样本296。
在一个或多个实施方案中,下行链路控制器254、274和286可被配置为分别从配置寄存器256、276和288检索配置参数。一般来讲,配置寄存器256、276和288可被配置为存储用于每个输出信道0至M的配置参数。在图2B所示的示例性实施方案中,配置寄存器256、276和288分别与输出信道0、1和M相关联。下行链路信道处理机所使用的配置参数可包括处理帧参数(例如,处理帧持续时间)和数据采样参数(例如,采样率)。
通过结合通常适用于下行链路信道处理机272和284的操作的处理系统150(图1C)的下行链路处理器252的预期操作,假设处理器156已经处理了数据样本,并且此类经处理的数据样本被存储在帧缓冲器154的一个或多个输出帧缓冲器中。响应于从处理器156接收的经处理的数据就绪通知270,下行链路控制器254接收存储在输出帧缓冲器处的经处理的数据样本的一个或多个经处理的数据样本包268。在一个实施方案中,下行链路控制器254可被配置为检查与输出帧缓冲器相关联的标记位,该标记位指示在输出帧缓冲器中可用的有效数据。处理器156在已经将经处理的数据样本移动到输出帧缓冲器中时设置该“有效数据”位。如果下行链路控制器254检查该有效数据位并且其未被设置,则下行链路控制器254可向处理器156发出“无有效数据可用”中断,以通知处理器156它已准备好接收更多有效数据。下行链路控制器254继续检查有效数据位并发出中断,直到有效数据位被设置。这样,处理器156在下行链路信道处理机252正从输出帧缓冲器移动经处理的数据样本时可被通知。
在一个实施方案中,下行链路控制器254可发送数据移动请求(例如,到DMA 132)以访问和启动移动经处理的数据样本到输出行缓冲器260。
当在输出行缓冲器260处接收到经处理的数据样本包268时,下行链路控制器254监控多个所接收的数据样本并检测特定输出帧缓冲器的所有内容何时已被移动。以举例的方式,下行链路控制器254可递增在经处理的数据样本包268中接收的经处理的数据样本的经处理的样本计数,并且当经处理的样本计数指示所有内容被移动时,通知处理器156对于特定输出帧缓冲器所有经处理的数据样本已被移动。
在一个或多个实施方案中,数据接收器可以是经处理的数据样本296的任何接收方,并且可通过下行链路信道可操作地耦合到输出行缓冲器260和缓冲器接口120。以举例的方式,数据接收器可以是处理系统、扬声器、发射器、存储器、数据路径接口(例如,集成IC间声音总线(I2S))、通用异步接收器/发射器(UART)、脉冲代码调制到脉冲密度调制位流转换器(PCM2PDM)、I2C(内部集成电路)或数据路径(例如,编解码器数据路径、数模转换器数据路径、存储器存储数据路径、无线传输数据路径,但不限于此。
具体地设想,在一个实施方案中,一个或多个缓冲器接口可促进上行链路和下行链路,并且在另一个实施方案中,一个或多个缓冲器接口可促进上行链路或下行链路,而不是两者。例如,并且参考图1A,单独的缓冲器接口可用于上行链路和下行链路,或者系统可包括有利于将经处理的数据从帧缓冲器154移动到数据接收器50的缓冲器接口,或者包括有利于将数据样本从数据样本源10移动到帧缓冲器154的缓冲器接口,但不是两者。
在实施方案中的一个中,如果处理机即将启动数据接收传输,但在下行链路帧缓冲器中没有可用的有效数据,则下行链路信道处理机252可向处理器生成中断。这通常称为数据下溢(Data Underflow)。
为简明起见,针对上行链路信道呈现以下对处理来自一个或多个源的样本、设置帧缓冲器、成对定义帧缓冲器以及将其定义为链接表的描述。那些普通技术人员将认识到,这些描述也适用于下行链路信道(具有与数据流的方向相关的微小可识别变化)。
在一个实施方案中,具体地设想数据样本136可从可操作地耦合到包括本公开的缓冲器接口的系统或子系统的多个源提供,例如,监控多个电池的单元、模拟麦克风、数字麦克风、外部编解码器、通信模块(例如,用于以太网、蓝牙、WIFI,但不限于此)等。数据样本源10可以可操作地耦合到例如包括缓冲器接口的嵌入式系统的一个或多个输入/输出引脚。
图3A示出了用于从不同来源接收的数据样本的上行链路信道处理过程300的流程图。在操作302中,接收用于活动上行链路信道的配置参数。在一个实施方案中,配置参数可包括处理帧持续时间、采样率、样本宽度和帧缓冲器指针。在操作304中,当接收到用于活动上行链路信道的数据样本时,响应于样本宽度、总线接口宽度和每包配置的样本数量,对数据样本进行打包。在操作306中,将数据样本包提供给由与上行链路信道相关联的帧缓冲器指针识别的帧缓冲器。在操作308中,按包括在数据样本包中的样本数量递增与帧缓冲器相关联的样本计数。在操作310中,至少部分地基于递增的样本计数和帧缓冲器大小来确定帧缓冲器是否已满,即递增的样本计数指示帧缓冲器已达到最大样本数量,使得如果提供了另一个样本包,则其将使帧缓冲器饱和。如果帧缓冲器已满(换句话讲,处理器具有处理算法所需的数据样本的处理帧值),则在操作312中,通知处理器156数据样本在帧缓冲器154中可用(例如,使用中断、设置标记等),并且数据样本的处理帧值的当前移动已完成。如果帧缓冲器未满,则过程300循环回到操作304,并继续接收数据样本。
图3B示出了用于数据样本组的示例性上行链路信道处理过程320的流程图,其中数据样本处理器跟踪活动数据样本源,即,数据样本不在单独的信道上被接收。在该示例中,上行链路处理机不能容易地区分数据样本的类型,并且应用正确的打包方案以及监控帧缓冲器是否已满,因此至少部分地依赖于外部提供的信息。在操作322中,接收用于活动上行链路信道的配置参数。在该实施方案中,活动上行链路信道是指与所接收的数据样本相关联的上行链路信道。在一个实施方案中,配置参数可包括处理帧持续时间、采样率、样本宽度和帧缓冲器指针。如果当前操作是数据样本的第一移动,则行缓冲器应该是空的或者可以被写入,但是如果不是第一移动,则可能存在应该被发送到由先前帧缓冲器指针指向的帧缓冲器的采样数据。因此,在操作324中,确定这是否是第一移动,并且如果不是第一移动,则将行缓冲器中的任何数据样本提供给由前一帧缓冲器指针识别的帧缓冲器。在操作326中,当接收到数据样本时,响应于样本宽度、总线接口宽度和每包配置的样本数量,对数据样本进行打包。在操作328中,将数据样本包提供给由帧缓冲器指针识别的帧缓冲器。在操作330中,按包括在数据样本包中的样本数量递增样本计数。在操作332中,至少部分地基于样本计数、样本大小和帧缓冲器大小来确定活动帧缓冲器是否已满。在操作334中,如果确定帧缓冲器已满,则通知处理器数据样本在帧缓冲器中可用,并且数据样本的处理帧价值的当前移动完成。然后,处理器检查数据样本是否可从分配给活动上行链路信道的相同或不同的数据样本源获得。如果可从不同的数据样本源获得,则处理器将活动上行链路信道重新分配给数据样本可用于的其他数据样本源中的一个。如果可从相同的数据样本源获得,则处理器不必将活动上行链路信道重新分配给另一个数据样本源,但是出于资源管理原因其仍可这样做。如果所分配的数据样本源已经改变,则过程300循环回到操作322,并且用于所分配的数据样本源的新配置参数用于配置活动上行链路信道。分配可包括但不限于配置具有用于所分配的数据样本源的配置参数的活动上行链路信道。如果没有改变,则过程300循环回到操作326并继续从所分配的数据样本源接收数据样本。
图3C示出了用于存储在帧缓冲器中的经处理的数据样本的示例性下行链路信道处理过程340的流程图。在操作342中,接收用于活动下行链路信道的配置参数。活动下行链路信道是从帧缓冲器到下行链路处理机的信道和从下行链路处理机到数据接收器的信道。
在一个实施方案中,配置参数可包括总线接口宽度、样本宽度和处理帧持续时间。在操作344中,从与活动信道相关联的帧缓冲器请求经处理的数据。在一个实施方案中,请求可包括检查缓冲器是否包含有效数据。例如,可以设置缓冲器有效性位以指示帧缓冲器中有效数据(即,经处理的数据样本)可用,例如,“0”表示无有效数据,并且“1”表示有效数据。此外,如果有效数据检查的结果为“0”或没有有效数据,则可向处理系统提供中断。这种中断尤其可向处理系统指示有效数据是预期的但不可用,或者帧缓冲器可用于数据样本。
在操作346中,当接收到经处理的数据样本时,经处理的数据样本被解包为活动信道的样本宽度和总线接口宽度。在操作348中,将未打包的数据样本提供给与数据接收器的输出信道相关联的总线接口。在操作350中,确定帧缓冲器的所有内容是否已被移动(在本文中也可被称为帧缓冲器是“空的”)。在一个实施方案中,在输出经处理的数据样本时对其进行计数,并且当已对经处理的数据样本的处理结果持续时间值进行计数时,确定输出帧缓冲器的所有内容已被移动。如果确定帧缓冲器的内容已全部被移动,则在操作352中,通知处理系统帧缓冲器的所有内容已被读取并且过程340结束。如果确定帧缓冲器不是空的,则过程340循环回到操作344,从帧缓冲器发出另一个包读取请求并继续接收经处理的数据。在一个或多个实施方案中,一旦过程340结束,就可向处理系统发送通知并且可执行各种簿记任务,包括例如更新下行链路参数,诸如具有有效数据的下一个输出帧缓冲器的地址。
如上所述,在一个或多个实施方案中,在存储器152中在帧缓冲器154处接收数据样本包。每个帧缓冲器154可与处理帧持续时间相关联,该处理帧持续时间是由处理算法使用的所收集的样本的时间窗口。由于每个上行链路信道处的采样率可能不同,因此处理器156以其原始采样率读取/处理每个样本将是低效的。因此,本公开的一个或多个实施方案整体涉及确定处理帧持续时间并将处理帧持续时间与帧缓冲器相关联。因此,与每个帧缓冲器154相关联的存储器的量是原始采样率和位宽度的函数。确定处理帧持续时间并将其与帧缓冲器相关联的一个示例性优点是,处理帧持续时间可根据使用案例/终端应用程序或根据算法要求来配置。此外,由于帧缓冲器是操作粒度
此外,如本文更全面地描述的,帧缓冲器使得处理器能够使用处理核心来对核心信号处理功能起作用。
图4A示出了根据本公开的一个或多个实施方案的存储器中的帧缓冲器区域400的示例性存储器映射。示出了被配置为存储数据样本的三个示例性帧缓冲器,并且每个示例性帧缓冲器与缓冲器接口120的不同上行链路信道相关联。帧缓冲器402与信道1相关联,帧缓冲器404与信道2相关联,并且帧缓冲器406与信道3相关联。每个帧缓冲器402、404和406由存储器中的起始地址和结束地址限定。
每个帧缓冲器402、404和406与处理帧持续时间相关联。在一个实施方案中,处理帧持续时间对应于时间窗口,在该时间窗口期间,在数据样本源处采集样本。持续时间可至少部分地基于期望的样本数量和数据样本源的采样率。以举例的方式,可通过在处理器处实现的处理算法来指定期望的样本数量。在图4A所示的示例中,示例性处理算法需要64个样本,并且信道1-3的数据样本源的采样率分别为16KHz、32KHz和64KHz。因此,信道1、2和3的处理帧持续时间分别为4毫秒、2毫秒和8毫秒,以便捕获期望的样本数量。
在一个或多个实施方案中,帧缓冲器位置、处理帧持续时间和采样率可在设置期间与每个信道相关联。图4B示出了上行链路信道配置参数的示例性表,该上行链路信道配置参数可被确定并存储在信道配置寄存器中,然后用于移动数据样本。每个信道412与分配在存储器中的帧缓冲器(例如,图4A的帧缓冲器402、404和406)的地址414(或指针地址)、采样率416、处理帧持续时间418(其例如可根据时间或样本数量来限定)和采样位宽度420相关联。
图5示出了根据本公开的一个或多个实施方案的设置过程500的流程图,该设置过程用于在存储器中分配帧缓冲器并初始化用于缓冲器接口的配置寄存器以处理用于上行链路的数据样本的移动和用于下行链路的经处理的数据样本的移动。在操作502中,确定两个或更多个上行链路信道的处理帧持续时间。在一个实施方案中,处理帧持续时间是通过将期望采样的数量除以采样率来计算的理想处理帧持续时间—例如,(64个样本)÷(8000个样本/秒)=8毫秒处理帧持续时间。在另一个实施方案中,通过计算理想处理帧持续时间,然后选择将导致至少期望的样本数量的可用处理帧持续时间,从一组可用处理帧持续时间中选择处理帧持续时间。例如,如果期望的样本数量为128,采样率为96KHz,并且可用的处理帧持续时间为1毫秒或2毫秒,则选择2毫秒的处理帧持续时间,因为在2毫秒内接收192个样本>需要128个样本,而在1毫秒内仅接收96个样本。在一个或多个实施方案中,可用帧持续时间可至少部分地基于数据样本的类型和对其采样的终端用户应用程序(例如,音频、视频、功率监测,但不限于此)。
在操作504中,分别为两个或更多个上行链路信道分配帧缓冲器154。每个帧缓冲器154是存储器152中的逻辑区域,该逻辑区域被限定在起始地址与结束地址之间。在一个或多个实施方案中,帧缓冲器的大小(例如,以位为单位)可至少部分地基于期望样本的数量和位宽度。在操作506中,将处理帧持续时间、采样率和采样位宽度与帧缓冲器中的每个帧缓冲器相关联。在操作508中,将每个信道的处理帧持续时间、帧缓冲器地址、采样率和样本宽度存储在配置寄存器206中,以处理两个或更多个上行链路信道上的移动数据样本。
在一些情况下,数据样本处理器诸如图1C的处理器156可被配置为从相同上行链路信道的不同存储器位置读取和处理数据。因此,一个或多个实施方案整体涉及将成对的帧缓冲器分配给每个信道。从总线接口的角度来看,当该对帧缓冲器154中的一个帧缓冲器充满样本时,则可写入另一个帧缓冲器,使得充满待处理的样本的第一帧缓冲器可用于处理器156。类似地,对于下行链路信道,帧缓冲器中的一个可用于处理器156的数据处理,而另一个帧缓冲器154用于到下行链路行缓冲器的数据移动。
值得注意的是,行缓冲器对、上行链路情况下的输入行缓冲器和下行链路情况下的输出行缓冲器可与帧缓冲器对一起实现和使用。例如,上行链路信道处理机可包括被配置为向第一输入帧缓冲器发送数据的第一输入行缓冲器,并且可包括被配置为向第二输入行缓冲器发送数据的第二输入行缓冲器;并且第一输入行缓冲器和第二输入行缓冲器可形成帧缓冲器对。类似地,下行链路信道处理机可包括被配置为从第一输出帧缓冲器接收数据的第一输出行缓冲器,并且可包括被配置为从第二输出行缓冲器接收数据的第二输出行缓冲器;并且第一输出行缓冲器和第二输出行缓冲器可形成帧缓冲器对。
图6示出了存储器中的第一帧缓冲器区域600和第二帧缓冲器区域610的示例性存储器映射。在一个或多个实施方案中,第一帧缓冲器区域600中的帧缓冲器与第二帧缓冲器区域610中的帧缓冲器形成帧缓冲器对。因此,每个上行链路信道具有在存储器中的第一帧缓冲器区域600和第二帧缓冲器区域610中限定的相关联的帧缓冲器对。即,信道1的帧缓冲器对602、612,信道2的帧缓冲器对604、614,以及信道3的帧缓冲器对606、616。
因此,在与信道1相关的预期数据移动的一个示例中,缓冲器接口120的输入指针指向帧缓冲器602,而处理器156的读取指针指向帧缓冲器612。如图6所示,对信道2和信道3执行类似的交替操作。
类似地,对于涉及输出帧缓冲器对的预期数据移动,缓冲器接口输出指针可指向输出帧缓冲器对的第一输出帧缓冲器,其中第一输出帧缓冲器已经处理了待移动的数据样本。处理器写入指针可指向输出帧缓冲器对中的第二输出帧缓冲器,其中经处理的数据样本待被写入或正被写入。此外,缓冲器接口输出指针还可被配置为指向第二输出帧缓冲器以移动存储在其中的经处理的数据样本,并且处理器写入指针可被配置为指向第一输出帧缓冲器并将经处理的数据样本移动到那里。
图7示出了根据本公开的一个或多个实施方案的示例性数据在上行链路期间移动的时序图700,其中帧缓冲器的链路列表用于信道。在图7所示的实施方案中,时间单位为样本(因为样本以几乎一致的时间间隔接收)。图7中示出了用于互连器上的有效数据的时钟边缘702,该互连器将具有限定于其中的帧缓冲器的存储器耦合到缓冲器接口(例如,将存储器104耦合到图1B的缓冲器接口108的互连器114),该缓冲器接口被标记为AXI AWVALID;信道中断704;以及用于与两个信道相关联的帧缓冲器对的帧缓冲器内容。在图7所示的示例中,A和B为用于信道A的帧缓冲器对,并且C和D为用于信道A的新帧缓冲器对,如下所述。
在图7所示的示例中,响应于帧缓冲器A已满而触发中断706,并且因此信道A的数据样本被移动到帧缓冲器B。响应于帧缓冲器B已满而触发中断708。帧缓冲器A仍然是满的,因此分配了新的帧缓冲器对C和D,并且用于信道A的数据样本被移动到帧缓冲器C。响应于帧缓冲器C已满而触发中断710,因此数据样本被移动到帧缓冲器D。响应于帧缓冲器D已满而触发中断712。在一个实施方案中,帧缓冲器对A/B、帧缓冲器对C/D和另外的帧缓冲器对仍然可形成为链接列表,如参考图8所述。
图7仅仅是突出显示读取、写入和中断之间的时序以及示出成对帧缓冲器的使用的一个示例。
在一个或多个实施方案中,当上行链路处理机被配置为使用帧缓冲器对来操作(例如,在填充一个后切换到下一个分配的缓冲器)时,处理器负责使用所接收的样本,或者,在一个实施方案中,根据缓冲器管理过程来构建链路列表,因此数据样本不会丢失(例如,被从上行链路信道处理机接收的新样本覆盖)。
本公开的一个或多个实施方案整体涉及数据到存储器中的“无中断”移动。术语“无中断”的使用并不意味着处理器不执行与数据到存储器中的移动相关的任何操作,例如,预期处理器可管理由上行链路处理机和下行链路处理机使用的输入指针和输出指针。
图8是根据本公开的一个或多个实施方案的在存储器802的帧缓冲器区域中分配的帧缓冲器的帧缓冲器链接列表800的存储器映射。在一个或多个实施方案中,帧缓冲器链接列表800及其组成帧缓冲器(这里为帧缓冲器810、820、830、840和842)与缓冲器接口的输入信道相关联。如图8所示,帧缓冲器810包括内容部分812和链接部分814。内容部分812、822、832、842和852均被配置为存储数据样本的处理帧。链接部分814、824、834、844和854均被配置为存储用于指向帧缓冲器链接列表800的另一个帧缓冲器的位置的指针(这里为816、826、836和846),或者就尾部帧缓冲器(这里为帧缓冲器850)而言,空指针或指示为尾部帧缓冲器的另一个值。普通技术人员应当理解,链接列表可以与该示例中所示不同的方式管理和存储,包括由数据样本处理器单独存储和管理。
在帧缓冲器链接列表800的预期帧缓冲器链接列表分配过程中,帧缓冲器控制器(未示出,但在一个实施方案中为图1C的处理器156)被配置为监控到帧缓冲器810的写入,并且当帧缓冲器810已被写入(例如,完整的处理帧已被写入)时,帧缓冲器控制器将帧缓冲器820分配在存储器中,在帧缓冲器810的链接部分814处将指针816存储到帧缓冲器820。帧缓冲器控制器还可向上行链路控制器提供与帧缓冲器链接列表800相关联的信道的输入指针更新。输入指针更新可包括用于指向帧缓冲器820处的输入位置的信息,使得上行链路控制器写入帧缓冲器820的内容部分822而不是帧缓冲器810的内容部分812。可以类似的方式分配和使用帧缓冲器83、840和850。
因此,通过实施帧缓冲器链接列表800,可连续分配用于信道的帧缓冲器,这尤其避免了在缓冲器接口120处(即,在行缓冲器208处)的缓冲器溢出,等待帧缓冲器可用来被写入。值得注意的是,写入缓冲器帧链接列表的上行链路处理机可在没有中断或信道的帧缓冲器可用来被写入的其他通知的情况下这样做。
在参考图1C的处理系统150的预期读取操作中,当处理器156完成从帧缓冲器810的内容部分812读取数据样本时,处理器156确定是否存在存储在链接部分814处的指针(例如,读取在分配帧缓冲器820时设置的标记)。处理器156识别存储在链接部分814中的指针816,然后响应于存储在帧缓冲器810的链接部分814中的指针816,从帧缓冲器820的内容部分822读取数据样本。
因此,分配帧缓冲器链接列表800的一个优点是,当处理器156准备好时,处理器156可从帧缓冲器链接列表800读取数据,或者另选地,可使其可用于另一设备。此外,不必针对缓冲器接口、帧缓冲器和数据处理器来实现中断、轮询或一些其他通知机制,以便通知处理器数据样本准备好进行处理。
一个或多个实施方案整体涉及一种音频系统(或设备),该音频系统(或设备)实现用于将来自多个音频信道的音频样本移入和移出音频帧缓冲器的音频传输方案,以由处理器(通常为DSP)执行的集成编解码器处理。提供该音频数据传输用途的细节作为本公开的实施方案的用途的一个示例。然而,本公开的实施方案可用于使用数据传输的各种系统。
图9示出了根据本公开的一个或多个实施方案的示例性音频系统900。音频系统900包括若干音频样本源,包括模拟麦克风902、数字麦克风904和外部编解码器906。这些源可操作地耦合到多个数据路径并通过多个数据路径进行通信,所述多个数据路径包括ADC、数据管理接口(DMI)和I2S中的一者或多者,这里标记为ADC/DMI的上行链路信道908和I2Sin的上行链路信道910。根据本公开中描述的一个或多个实施方案(即,使用帧缓冲器),音频缓冲器接口912从上行链路信道908和910接收采样的音频数据并将采样的音频数据移动到音频DSP 914,其中音频DSP 914是处理系统150的一个实施方案。由音频DSP 914处理的音频样本然后在包括DAC/DMI/I2S中的一者或多者的数据路径上移动(这里标记为DAC的下行链路信道916和I2S的下行链路信道920),然后移动到多个目的地中的任一个目的地,包括模拟扬声器918或外部编解码器922。音频系统900使得能够为多个信道配置灵活的数据传输方案,并且因此是可扩展的。
具体地设想,在一个或多个实施方案中,多个接口可被配置为以信道特定的采样率和/或位宽度操作。在此类实施方案中,它们以不相同的采样率和/或位宽度接收和发送样本。帧缓冲器可被配置为以信道特定的采样率和/或位宽度接收样本。处理器可被配置为处理此类样本。
虽然已结合附图描述了某些例示性实施方案,但本领域的普通技术人员将会认识并理解,本公开的范围不限于在本公开中明确示出和描述的那些实施方案。相反,可对本公开所述的实施方案进行许多添加、删除和修改以产生本公开的范围内的实施方案,诸如具体要求保护的那些实施方案,包括法律等同物。另外,来自一个公开的实施方案的特征可与另一个公开的实施方案的特征组合,同时仍然包含在发明人所设想的本公开的范围内。
本公开的附加非限制性实施方案包括:
实施方案1:一种将数据移入和移出存储器的方法,包括:确定与嵌入式系统的活动通信信道相关联的处理帧参数和数据采样参数;响应于所述处理帧参数和所述数据采样帧参数中的一者或多者来分配所述存储器的帧缓冲器区域;将输入行缓冲器配置为通过将所述输入行缓冲器可操作地耦合到所述帧缓冲器区域的互连器进行通信;在由帧缓冲器输入指针指向的输入位置处将数据样本从所配置的输入行缓冲器移动到所分配的帧缓冲器区域;检测所分配的帧缓冲器区域的帧缓冲器已满;以及响应于检测,通知处理系统所移动的数据样本在所述帧缓冲器处可用。
实施方案2:根据实施方案1所述的方法,其中分配所述存储器的帧缓冲器区域包括:分配至少两个帧缓冲器,所述至少两个帧缓冲器包括第一帧缓冲器和第二帧缓冲器;将所述至少两个帧缓冲器与所述活动通信信道中的相应不同通信信道相关联;以及确定并存储所述至少两个帧缓冲器的所述处理帧参数。
实施方案3:根据实施方案1和2中任一项所述的方法,其中确定并存储所述至少两个帧缓冲器的所述处理帧参数包括:计算至少两个处理帧持续时间,所述至少两个处理帧持续时间包括第一处理帧持续时间和第二处理帧持续时间;分配被配置为指向所述第一帧缓冲器的第一帧缓冲器输入指针;分配被配置为指向所述第二帧缓冲器的第二帧缓冲器输入指针;存储所述第一处理帧持续时间、第一帧缓冲器输入指针和第一采样率;以及存储所述第二处理帧持续时间、第二帧缓冲器输入指针和第二采样率。
实施方案4:根据实施方案1至3中任一项所述的方法,其中计算至少两个处理帧持续时间包括响应于第一采样率和目标样本数量来计算所述第一处理帧持续时间,以及响应于第二采样率和所述目标样本数量来计算所述第二处理帧持续时间。
实施方案5:根据实施方案1至4中任一项所述的方法,还包括处理移动到所述帧缓冲器区域的所述数据样本。
实施方案6:根据实施方案1至5中任一项所述的方法,其中在由所述帧缓冲器输入指针指向的输入位置处将所述数据样本从所述输入行缓冲器移动到所述帧缓冲器区域包括:请求对所述帧缓冲器区域处的所述输入位置的写入访问;将所述数据样本和所述输入位置提供给将所述行缓冲器可操作地耦合到所述帧缓冲器区域的所述互连器;以及在所述帧缓冲器区域的所述输入位置处接收所述数据样本。
实施方案7:根据实施方案1至6中任一项所述的方法,其中在由所述输入指针指向的输入位置处将所述数据样本从所述输入行缓冲器移动到所述帧缓冲器区域还包括:将数据样本从所述输入行缓冲器中的第一行缓冲器移动到所分配的帧缓冲器区域的第一帧缓冲器;以及将数据样本从所述输入行缓冲器中的第二行缓冲器移动到所分配的帧缓冲器区域的第二帧缓冲器。
实施方案8:根据实施方案1至7中任一项所述的方法,其中检测所述帧缓冲器区域的至少一个帧缓冲器已满包括:响应于将数据样本从所述输入行缓冲器中的行缓冲器移动到所述至少一个帧缓冲器而递增样本计数;以及检测所述样本计数等于或大于预定义的样本计数。
实施方案9:根据实施方案1至8中任一项所述的方法,其中分配所述存储器的帧缓冲器区域包括:
实施方案10:根据实施方案1至9中任一项所述的方法,还包括在将数据从所述行缓冲器移动到所述第一对帧缓冲器中的一个帧缓冲器的同时,处理所述第一对帧缓冲器中的另一个帧缓冲器的内容。
实施方案11:根据实施方案1至10中任一项所述的方法,其中确定并存储所述至少两对帧缓冲器的配置参数包括:计算至少两个处理帧持续时间,所述至少两个处理帧持续时间包括第一处理帧持续时间和第二处理帧持续时间;分配被配置为指向所述第一对帧缓冲器处的位置的第一对帧缓冲器输入指针;分配被配置为指向所述第二对帧缓冲器处的位置的第二对帧缓冲器输入指针;将所述第一对帧缓冲器与第一对行缓冲器、所述第一处理帧持续时间、所述第一对帧缓冲器输入指针和第一采样率相关联;以及将所述第二对帧缓冲器与第二对行缓冲器、所述第二处理帧持续时间、第二对帧缓冲器输入指针和第二采样率相关联。
实施方案12:根据实施方案1至11中任一项所述的方法,其中在由输入指针指向的输入位置处将数据样本从所述输入行缓冲器移动到所述帧缓冲器区域包括:在由所述第一对帧缓冲器输入指针指向的位置处将数据样本从所述输入行缓冲器移动到所述第一对帧缓冲器中的帧缓冲器;响应于所述第一对帧缓冲器中的所述帧缓冲器已满,指向所述第一对帧缓冲器输入指针以指向所述第一对帧缓冲器中的另一个帧缓冲器处的位置;以及在由所述第一对帧缓冲器输入指针指向的所述另一个帧缓冲器的位置处将数据样本从所述输入行缓冲器移动到所述第一对帧缓冲器中的所述另一个帧缓冲器。
实施方案13:根据实施方案1至12中任一项所述的方法,其中计算至少两个处理帧持续时间包括:响应于第一采样率和目标样本数量来计算所述第一处理帧持续时间,以及响应于第二采样率和所述目标样本数量来计算所述第二处理帧持续时间,并且其中所述第一处理帧持续时间用于处理存储在所述第一对帧缓冲器中的样本,并且所述第二处理帧持续时间用于处理存储在所述第二对帧缓冲器中的样本。
实施方案14:根据实施方案1至13中任一项所述的方法,其中将所述行缓冲器配置为通过将所述行缓冲器可操作地耦合到所述帧缓冲器区域的所述互连器进行通信包括配置所述行缓冲器以将数据样本的位打包到数据帧的位位置中。
实施方案15:根据实施方案1至14中任一项所述的方法,还包括:将输出行缓冲器配置为通过可操作地耦合到所述输出行缓冲器的一个或多个互连器进行通信;在由输出指针指向的输出位置处将经处理的数据样本从所述帧缓冲器区域移动到所述输出行缓冲器;以及将经处理的数据样本提供给所述一个或多个互连器。
实施方案16:一种数据样本处理系统,包括:存储器;以及处理器,所述处理器包括一个或多个处理核心,所述处理器被配置为:在所述存储器处分配至少两个帧缓冲器,所述至少两个帧缓冲器包括第一帧缓冲器和第二帧缓冲器;计算至少两个处理帧持续时间,所述至少两个处理帧持续时间包括第一处理帧持续时间和第二处理帧持续时间;分配被配置为指向所述第一帧缓冲器处的位置的第一帧缓冲器输入指针;分配被配置为指向所述第二帧缓冲器处的位置的第二帧缓冲器输入指针;将所述第一帧缓冲器与所述第一处理帧持续时间、第一帧缓冲器输入指针和第一采样率相关联;以及将所述第二帧缓冲器与所述第二处理帧持续时间、第二帧缓冲器输入指针和第二采样率相关联。
实施方案17:根据实施方案16所述的系统,其中所述处理器被配置为响应于采样率和样本数量目标来计算所述至少两个处理帧持续时间。
实施方案18:根据实施方案16和17中任一项所述的系统,其中所述处理器被配置为:响应于处理算法和所述第一处理帧持续时间来处理存储在所述第一帧缓冲器处的数据样本;以及响应于处理算法和所述第二处理帧持续时间来处理在所述第二帧缓冲器处的数据样本,其中所述第一帧缓冲器和所述第二帧缓冲器被配置为存储相同数量的样本。
实施方案19:根据实施方案16至18中任一项所述的系统,还包括用于在互连器上通信以与帧缓冲器接口可操作地耦合的接口,第一接口被配置为启用/禁用对所述至少两个帧缓冲器的读/写访问。
实施方案20:一种系统,包括:第一接口,所述第一接口用于在第一互连器上通信以用于与两个或更多个数据样本源可操作地耦合;第二接口,所述第二接口用于在互连器上通信以用于与限定在处理系统的存储器中的帧缓冲器区域可操作地耦合;输入行缓冲器和输出行缓冲器,所述输入行缓冲器和所述输出行缓冲器包括打包器和先进先出(FIFO)缓冲器;接口控制器,所述接口控制器用于将数据样本从所述输入行缓冲器和所述输出行缓冲器移动到限定在所述存储器中的所述帧缓冲器区域,所述接口控制器被配置为:配置所述输入行缓冲器以用于根据所述第二接口进行通信;配置所述互连器以将所述输入行缓冲器处的数据样本的帧移动到由输入指针指向的所述帧缓冲器区域处的输入位置,所述输入位置对应于帧缓冲器;检测所述帧缓冲器中的至少一个帧缓冲器已满;以及响应于检测而通知所述处理系统在所述至少一个帧缓冲器处数据样本可用。
实施方案21:根据实施方案20所述的系统,其中所述接口控制器被配置为响应于配置参数来配置所述输入行缓冲器和所述输出行缓冲器以用于在所述第二接口处进行通信,其中所述配置参数包括样本宽度和所述第二接口的接口宽度。
实施方案22:根据实施方案20和21中任一项所述的系统,其中所述接口控制器被配置为配置所述互连器,以通过请求对由所述输入指针指向的地址的写入访问,将所述输入行缓冲器处的所述数据样本的帧移动到由所述输入指针指向的位置。
实施方案23:根据实施方案20至22中任一项所述的系统,其中所述接口控制器被配置为检测所述帧缓冲器区域的至少一个帧缓冲器已满包括:响应于将数据样本从所述输入行缓冲器中的行缓冲器移动到所述至少一个帧缓冲器而递增样本计数;以及检测所述样本计数等于或大于预定义的样本计数。
实施方案24:根据实施方案20至23所述的系统,其中所述接口控制器被配置为:配置所述输出行缓冲器以用于在所述第二接口处进行通信;以及将经处理的数据样本从所述帧缓冲器区域的输出位置移动到所述输出行缓冲器。
实施方案25:一种系统,包括:处理系统,所述处理系统用于使用处理帧持续时间来处理使用不同采样率采样的数据样本;第一接口,所述第一接口用于在第一互连器上通信以用于以第一数据宽度与数据样本源可操作地耦合;第二接口,所述第二接口用于在第二互连器上通信以用于以第二数据宽度与数据接收器可操作地耦合;总线接口,所述总线接口用于在互连器上通信以用于以第三数据宽度与所述处理系统可操作地耦合;以及缓冲器接口,所述缓冲器接口包括上行链路信道处理机和下行链路信道处理机,其中:所述上行链路信道处理机被配置为以第一数据宽度从所述第一接口接收数据样本,并且以所述第三数据宽度将所述数据样本提供给所述总线接口;并且所述下行链路信道处理机被配置为以第三数据宽度从所述总线接口接收经处理的数据样本,并且以第二数据宽度将经处理的数据样本提供给所述第二接口。
实施方案26:根据实施方案25所述的系统,其中所述上行链路信道处理机被配置为:接收以第一采样率采样的第一数据样本;将所述第一数据样本提供给所述总线接口;以及响应于检测到提供了对应于处理帧持续时间的所述第一数据样本的数据样本数量,将处理帧就绪消息提供给所述总线接口。
实施方案27:根据实施方案25和26所述的系统,其中所述下行链路信道处理机被配置为:从所述总线接口接收对应于处理帧持续时间的第一数量的第一处理数据样本;以第一数据速率将所述第一处理数据样本提供给所述第二接口;从所述总线接口接收对应于所述处理帧持续时间的第二数量的第二处理数据样本;以及以第二数据速率将所述第二处理数据样本提供给所述第二接口,所述第一数据速率和所述第二数据速率不同。
实施方案28:一种将数据移入和移出存储器的方法,包括:确定与嵌入式系统的活动通信信道相关联的处理帧参数和数据采样参数;响应于所述处理帧参数和数据采样帧参数中的一者或多者来分配所述存储器的帧缓冲器区域;将输出行缓冲器配置为通过将所述输出行缓冲器可操作地耦合到所述帧缓冲器区域的互连器进行通信;在由输出指针指向的输出位置处将经处理的数据样本从所述帧缓冲器区域移动到所述输出行缓冲器;检测所述帧缓冲器区域的至少一个帧缓冲器的所有内容已被移动;以及通知处理系统所述帧缓冲器区域的所述至少一个帧缓冲器已被读取。
实施方案29:根据实施方案28所述的方法,还包括:将所述输出行缓冲器配置为通过将所述输出行缓冲器可操作地耦合到数据接收器的一个或多个互连器进行通信;以及将经处理的数据样本提供给所述一个或多个互连器。

Claims (29)

1.一种将数据移入和移出存储器的方法,包括:
确定与嵌入式系统的活动通信信道相关联的处理帧参数和数据采样参数;
响应于所述处理帧参数和所述数据采样参数中的一者或多者来分配所述存储器的帧缓冲器区域;
将输入行缓冲器配置为通过将所述输入行缓冲器可操作地耦合到所述帧缓冲器区域的互连器进行通信;
在由帧缓冲器输入指针指向的输入位置处将数据样本从所配置的输入行缓冲器移动到所分配的帧缓冲器区域;
检测所分配的帧缓冲器区域的帧缓冲器已满;以及
响应于所述检测,通知处理系统所移动的数据样本在所述帧缓冲器处可用。
2.根据权利要求1所述的方法,其中分配所述存储器的帧缓冲器区域包括:
分配至少两个帧缓冲器,所述至少两个帧缓冲器包括第一帧缓冲器和第二帧缓冲器;
将所述至少两个帧缓冲器与所述活动通信信道中的相应不同通信信道相关联;以及
确定并存储所述至少两个帧缓冲器的所述处理帧参数。
3.根据权利要求2所述的方法,其中确定并存储所述至少两个帧缓冲器的所述处理帧参数包括:
计算至少两个处理帧持续时间,所述至少两个处理帧持续时间包括第一处理帧持续时间和第二处理帧持续时间;
分配被配置为指向所述第一帧缓冲器的第一帧缓冲器输入指针;
分配被配置为指向所述第二帧缓冲器的第二帧缓冲器输入指针;
存储所述第一处理帧持续时间、第一帧缓冲器输入指针和第一采样率;以及
存储所述第二处理帧持续时间、第二帧缓冲器输入指针和第二采样率。
4.根据权利要求3所述的方法,其中计算至少两个处理帧持续时间包括响应于第一采样率和目标样本数量来计算所述第一处理帧持续时间,以及响应于第二采样率和所述目标样本数量来计算所述第二处理帧持续时间。
5.根据权利要求2所述的方法,还包括处理移动到所述帧缓冲器区域的所述数据样本。
6.根据权利要求1所述的方法,其中在由所述帧缓冲器输入指针指向的输入位置处将所述数据样本从所述输入行缓冲器移动到所述帧缓冲器区域包括:
请求对所述帧缓冲器区域处的所述输入位置的写入访问;
将所述数据样本和所述输入位置提供给将所述行缓冲器可操作地耦合到所述帧缓冲器区域的所述互连器;以及
在所述帧缓冲器区域的所述输入位置处接收所述数据样本。
7.根据权利要求6所述的方法,其中在由所述输入指针指向的输入位置处将所述数据样本从所述输入行缓冲器移动到所述帧缓冲器区域还包括:
将数据样本从所述输入行缓冲器中的第一行缓冲器移动到所分配的帧缓冲器区域的第一帧缓冲器;以及
将数据样本从所述输入行缓冲器中的第二行缓冲器移动到所分配的帧缓冲器区域的第二帧缓冲器。
8.根据权利要求1所述的方法,其中检测所述帧缓冲器区域的至少一个帧缓冲器已满包括:
响应于将数据样本从所述输入行缓冲器中的行缓冲器移动到所述至少一个帧缓冲器而递增样本计数;以及
检测所述样本计数等于或大于预定义的样本计数。
9.根据权利要求1所述的方法,其中分配所述存储器的帧缓冲器区域包括:
分配两对帧缓冲器,所述两对帧缓冲器包括第一对帧缓冲器和第二对帧缓冲器;以及
确定并存储至少两对帧缓冲器的配置参数。
10.根据权利要求9所述的方法,还包括在将数据从所述行缓冲器移动到所述第一对帧缓冲器中的一个帧缓冲器的同时,处理所述第一对帧缓冲器中的另一个帧缓冲器的内容。
11.根据权利要求9所述的方法,其中确定并存储所述至少两对帧缓冲器的配置参数包括:
计算至少两个处理帧持续时间,所述至少两个处理帧持续时间包括第一处理帧持续时间和第二处理帧持续时间;
分配被配置为指向所述第一对帧缓冲器处的位置的第一对帧缓冲器输入指针;
分配被配置为指向所述第二对帧缓冲器处的位置的第二对帧缓冲器输入指针;
将所述第一对帧缓冲器与第一对行缓冲器、所述第一处理帧持续时间、所述第一对帧缓冲器输入指针和第一采样率相关联;以及
将所述第二对帧缓冲器与第二对行缓冲器、所述第二处理帧持续时间、第二对帧缓冲器输入指针和第二采样率相关联。
12.根据权利要求9所述的方法,其中在由输入指针指向的输入位置处将数据样本从所述输入行缓冲器移动到所述帧缓冲器区域包括:
在由所述第一对帧缓冲器输入指针指向的位置处将数据样本从所述输入行缓冲器移动到所述第一对帧缓冲器中的帧缓冲器;
响应于所述第一对帧缓冲器中的所述帧缓冲器已满,指向所述第一对帧缓冲器输入指针以指向所述第一对帧缓冲器中的另一个帧缓冲器处的位置;以及
在由所述第一对帧缓冲器输入指针指向的所述另一个帧缓冲器的位置处将数据样本从所述输入行缓冲器移动到所述第一对帧缓冲器中的所述另一个帧缓冲器。
13.根据权利要求12所述的方法,其中计算至少两个处理帧持续时间包括:
响应于第一采样率和目标样本数量来计算第一处理帧持续时间,以及响应于第二采样率和所述目标样本数量来计算第二处理帧持续时间,并且
其中所述第一处理帧持续时间用于处理存储在所述第一对帧缓冲器中的样本,并且所述第二处理帧持续时间用于处理存储在所述第二对帧缓冲器中的样本。
14.根据权利要求12所述的方法,其中将所述行缓冲器配置为通过将所述行缓冲器可操作地耦合到所述帧缓冲器区域的所述互连器进行通信包括配置所述行缓冲器以将数据样本的位打包到数据帧的位位置中。
15.根据权利要求1所述的方法,还包括:
将输出行缓冲器配置为通过可操作地耦合到所述输出行缓冲器的一个或多个互连器进行通信;
在由输出指针指向的输出位置处将经处理的数据样本从所述帧缓冲器区域移动到所述输出行缓冲器;以及
将经处理的数据样本提供给所述一个或多个互连器。
16.一种数据样本处理系统,包括:
存储器;和
处理器,所述处理器包括一个或多个处理核心,所述处理器被配置为:
在所述存储器处分配至少两个帧缓冲器,所述至少两个帧缓冲器包括第一帧缓冲器和第二帧缓冲器;
计算至少两个处理帧持续时间,所述至少两个处理帧持续时间包括第一处理帧持续时间和第二处理帧持续时间;
分配被配置为指向所述第一帧缓冲器处的位置的第一帧缓冲器输入指针;
分配被配置为指向所述第二帧缓冲器处的位置的第二帧缓冲器输入指针;
将所述第一帧缓冲器与所述第一处理帧持续时间、第一帧缓冲器输入指针和第一采样率相关联;以及
将所述第二帧缓冲器与|所述第二处理帧持续时间、第二帧缓冲器输入指针和第二采样率相关联。
17.根据权利要求16所述的系统,其中所述处理器被配置为响应于采样率和样本数量目标来计算所述至少两个处理帧持续时间。
18.根据权利要求16所述的系统,其中所述处理器被配置为:
响应于处理算法和所述第一处理帧持续时间来处理存储在所述第一帧缓冲器处的数据样本;以及
响应于所述处理算法和所述第二处理帧持续时间来处理在所述第二帧缓冲器处的数据样本,
其中所述第一帧缓冲器和所述第二帧缓冲器被配置为存储相同数量的样本。
19.根据权利要求16所述的系统,还包括用于在互连器上通信以用于与帧缓冲器接口可操作地耦合的接口,第一接口被配置为启用/禁用对所述至少两个帧缓冲器的读/写访问。
20.一种用于数据样本处理的系统,包括:
第一接口,所述第一接口用于在第一互连器上通信以用于与两个或更多个数据样本源可操作地耦合;
第二接口,所述第二接口用于在互连器上通信以用于与限定在处理系统的存储器中的帧缓冲器区域可操作地耦合;
输入行缓冲器和输出行缓冲器,所述输入行缓冲器和所述输出行缓冲器包括打包器和先进先出FIFO缓冲器;
接口控制器,所述接口控制器用于将数据样本从所述输入行缓冲器和所述输出行缓冲器移动到限定在所述存储器中的所述帧缓冲器区域,所述接口控制器被配置为:
配置所述输入行缓冲器以用于根据所述第二接口进行通信;
配置所述互连器以将所述输入行缓冲器处的数据样本的帧移动到由输入指针指向的所述帧缓冲器区域处的输入位置,所述输入位置对应于帧缓冲器;
检测所述帧缓冲器中的至少一个帧缓冲器已满;以及
响应于所述检测而通知所述处理系统在所述至少一个帧缓冲器处数据样本可用。
21.根据权利要求20所述的系统,其中所述接口控制器被配置为响应于配置参数来配置所述输入行缓冲器和所述输出行缓冲器以用于在所述第二接口处进行通信,其中所述配置参数包括样本宽度和所述第二接口的接口宽度。
22.根据权利要求20所述的系统,其中所述接口控制器被配置为配置所述互连器,以通过请求对由所述输入指针指向的地址的写入访问,将所述输入行缓冲器处的所述数据样本的帧移动到由所述输入指针指向的位置。
23.根据权利要求20所述的系统,其中所述接口控制器被配置为检测所述帧缓冲器区域的至少一个帧缓冲器已满包括:
响应于将数据样本从所述输入行缓冲器中的行缓冲器移动到所述至少一个帧缓冲器而递增样本计数;以及
检测所述样本计数等于或大于预定义的样本计数。
24.根据权利要求20所述的系统,其中所述接口控制器被配置为:
配置所述输出行缓冲器以用于在所述第二接口处进行通信;以及
将经处理的数据样本从所述帧缓冲器区域的输出位置移动到所述输出行缓冲器。
25.一种用于数据样本处理的系统,包括:
处理系统,所述处理系统用于使用处理帧持续时间来处理使用不同采样率采样的数据样本;
第一接口,所述第一接口用于在第一互连器上通信以用于以第一数据宽度与数据样本源可操作地耦合;
第二接口,所述第二接口用于在第二互连器上通信以用于以第二数据宽度与数据接收器可操作地耦合;
总线接口,所述总线接口用于在互连器上通信以用于以第三数据宽度与所述处理系统可操作地耦合;和
缓冲器接口,所述缓冲器接口包括上行链路信道处理机和下行链路信道处理机,其中:
所述上行链路信道处理机被配置为以第一数据宽度从所述第一接口接收数据样本,并且以所述第三数据宽度将所述数据样本提供给所述总线接口;并且
所述下行链路信道处理机被配置为以第三数据宽度从所述总线接口接收经处理的数据样本,并且以第二数据宽度将经处理的数据样本提供给所述第二接口。
26.根据权利要求25所述的系统,其中所述上行链路信道处理机被配置为:
接收以第一采样率采样的第一数据样本;
将所述第一数据样本提供给所述总线接口;以及
响应于检测到提供了对应于处理帧持续时间的所述第一数据样本的数据样本数量,将处理帧就绪消息提供给所述总线接口。
27.根据权利要求25所述的系统,其中所述下行链路信道处理机被配置为:
从所述总线接口接收对应于处理帧持续时间的第一数量的第一处理数据样本;
以第一数据速率将所述第一处理数据样本提供给所述第二接口;
从所述总线接口接收对应于所述处理帧持续时间的第二数量的第二处理数据样本;以及
以第二数据速率将所述第二处理数据样本提供给所述第二接口,所述第一数据速率和所述第二数据速率不同。
28.一种将数据移入和移出存储器的方法,包括:
确定与嵌入式系统的活动通信信道相关联的处理帧参数和数据采样参数;
响应于所述处理帧参数和数据采样帧参数中的一者或多者来分配所述存储器的帧缓冲器区域;
将输出行缓冲器配置为通过将所述输出行缓冲器可操作地耦合到所述帧缓冲器区域的互连器进行通信;
在由输出指针指向的输出位置处将经处理的数据样本从所述帧缓冲器区域移动到所述输出行缓冲器;
检测所述帧缓冲器区域的至少一个帧缓冲器的所有内容已被移动;以及
通知处理系统所述帧缓冲器区域的所述至少一个帧缓冲器已被读取。
29.根据权利要求28所述的方法,还包括:
将所述输出行缓冲器配置为通过将所述输出行缓冲器可操作地耦合到数据接收器的一个或多个互连器进行通信;以及
将经处理的数据样本提供给所述一个或多个互连器。
CN202080010311.XA 2019-01-25 2020-01-10 数据样本传输方案及相关系统、方法和设备 Active CN113330428B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/258,171 2019-01-25
US16/258,171 US11221976B2 (en) 2019-01-25 2019-01-25 Allocation of buffer interfaces for moving data, and related systems, methods and devices
PCT/US2020/013213 WO2020154117A1 (en) 2019-01-25 2020-01-10 Data samples transport scheme, and related systems, methods and devices

Publications (2)

Publication Number Publication Date
CN113330428A CN113330428A (zh) 2021-08-31
CN113330428B true CN113330428B (zh) 2024-03-08

Family

ID=69528990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080010311.XA Active CN113330428B (zh) 2019-01-25 2020-01-10 数据样本传输方案及相关系统、方法和设备

Country Status (4)

Country Link
US (2) US11221976B2 (zh)
CN (1) CN113330428B (zh)
DE (1) DE112020000518T5 (zh)
WO (1) WO2020154117A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220179392A1 (en) * 2020-12-04 2022-06-09 Machinemetrics, Inc. System and method for continuous machine monitoring at a khz-scale
US11726928B2 (en) * 2021-06-24 2023-08-15 Xilinx, Inc. Network interface device with bus segment width matching
CN114333930B (zh) * 2021-12-23 2024-03-08 合肥兆芯电子有限公司 多通道存储器存储装置、控制电路单元及其数据读取方法
CN114691392A (zh) * 2022-03-28 2022-07-01 声呐天空资讯顾问有限公司 终端的信息传输方法及装置、存储介质及终端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996035172A1 (en) * 1995-05-03 1996-11-07 Apple Computer, Inc. Controller for providing access to a video frame buffer in a split-bus transaction environment
US5696947A (en) * 1995-11-20 1997-12-09 International Business Machines Corporation Two dimensional frame buffer memory interface system and method of operation thereof
CN1825295A (zh) * 2005-02-25 2006-08-30 恩益禧电子股份有限公司 数据传输控制装置、图像处理装置和数据传输控制方法
US7302396B1 (en) * 1999-04-27 2007-11-27 Realnetworks, Inc. System and method for cross-fading between audio streams
CN102033728A (zh) * 2009-09-25 2011-04-27 Arm有限公司 图形处理系统
CN102792260A (zh) * 2010-03-17 2012-11-21 高通Mems科技公司 用于以交替的定向进行帧缓冲器存储及检索的系统及方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763203A (en) 1985-10-17 1988-08-09 Ampex Corporation Time base corrector with accurate timing corrector control
CA2032955A1 (en) 1990-01-16 1991-07-17 Brian A. Clebowicz Bursted and non-bursted data router
US6021132A (en) * 1997-06-30 2000-02-01 Sun Microsystems, Inc. Shared memory management in a switched network element
US6643746B1 (en) * 1997-12-24 2003-11-04 Creative Technology Ltd. Optimal multi-channel memory controller system
US6327249B1 (en) * 1999-08-04 2001-12-04 Ess Technology, Inc Data communication device
US6888550B2 (en) * 2001-07-19 2005-05-03 International Business Machines Corporation Selecting between double buffered stereo and single buffered stereo in a windowing system
US6745315B2 (en) * 2001-08-14 2004-06-01 Motorola Inc. Generation of address pattern through employment of one or more parameters to store information at parts of storage that are employable with multiprocessing
US6975322B2 (en) * 2002-03-12 2005-12-13 Sun Microsystems, Inc. Dynamically adjusting a number of rendering passes in a graphics system
US20060034301A1 (en) * 2004-06-04 2006-02-16 Anderson Jon J High data rate interface apparatus and method
US20150026309A1 (en) * 2011-09-29 2015-01-22 Avvasi Inc. Systems and methods for adaptive streaming control
TWI528790B (zh) * 2013-12-13 2016-04-01 瑞昱半導體股份有限公司 多媒體系統之視窗偵測裝置與方法
US9756268B2 (en) * 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US10048878B2 (en) * 2015-06-08 2018-08-14 Samsung Electronics Co., Ltd. Nonvolatile memory module and storage system having the same
JP2017009663A (ja) * 2015-06-17 2017-01-12 ソニー株式会社 録音装置、録音システム、および、録音方法
JP6729587B2 (ja) * 2015-07-21 2020-07-22 ソニー株式会社 先入れ先出し制御回路、記憶装置、および、先入れ先出し制御回路の制御方法
US10885921B2 (en) * 2017-07-07 2021-01-05 Qualcomm Incorporated Multi-stream audio coding
WO2019057731A1 (en) * 2017-09-19 2019-03-28 Universiteit Gent VIRTUALIZATION OF COMMUNICATION EQUIPMENT

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996035172A1 (en) * 1995-05-03 1996-11-07 Apple Computer, Inc. Controller for providing access to a video frame buffer in a split-bus transaction environment
US5696947A (en) * 1995-11-20 1997-12-09 International Business Machines Corporation Two dimensional frame buffer memory interface system and method of operation thereof
US7302396B1 (en) * 1999-04-27 2007-11-27 Realnetworks, Inc. System and method for cross-fading between audio streams
CN1825295A (zh) * 2005-02-25 2006-08-30 恩益禧电子股份有限公司 数据传输控制装置、图像处理装置和数据传输控制方法
CN102033728A (zh) * 2009-09-25 2011-04-27 Arm有限公司 图形处理系统
CN102792260A (zh) * 2010-03-17 2012-11-21 高通Mems科技公司 用于以交替的定向进行帧缓冲器存储及检索的系统及方法

Also Published As

Publication number Publication date
CN113330428A (zh) 2021-08-31
US20220092006A1 (en) 2022-03-24
US20200242055A1 (en) 2020-07-30
DE112020000518T5 (de) 2021-11-04
WO2020154117A1 (en) 2020-07-30
US11221976B2 (en) 2022-01-11
US11698872B2 (en) 2023-07-11

Similar Documents

Publication Publication Date Title
CN113330428B (zh) 数据样本传输方案及相关系统、方法和设备
CN110462599B (zh) 用于循环缓冲器的自主硬件管理的设备和方法
CN114443529B (zh) 内存直接访问架构、系统、方法、电子设备和介质
EP1430405B1 (en) Method and apparatus for distributed direct memory access for systems on chip
EP1775897A1 (en) Interleaving in a NoC (Network on Chip) employing the AXI protocol
US11985078B2 (en) Packet arbitration for buffered packets in a network device
EP2539823A1 (en) Time multiplexing at different rates to access different memory types
TW201741887A (zh) 用於具有可重配置多端口的快捷外設互聯標準儲存系統的服務品質感測輸入輸出管理的方法、系統及設備
US11734221B2 (en) Processing system comprising a queued serial peripheral interface, related integrated circuit, device and method
JP2018513451A (ja) ユニバーサルシリアルバス用のプロトコルアダプテーションレイヤデータフロー制御
CN113448902A (zh) 有排队串行外围接口的处理系统、集成电路、设备和方法
EP1891503B1 (en) Concurrent read response acknowledge enhanced direct memory access unit
US11671382B2 (en) Technologies for coordinating access to data packets in a memory
CN105307207B (zh) 无线联网装置中的数据传输的方法和无线联网装置
US8996772B1 (en) Host communication device and method with data transfer scheduler
KR20220082563A (ko) 스토리지 장치 및 이의 동작 방법
US20230107105A1 (en) Managing hazards in a memory controller
US8347258B2 (en) Method and apparatus for interfacing multiple dies with mapping for source identifier allocation
JP2012205142A (ja) データ転送装置、データ転送方法および情報処理装置
CN116569128A (zh) 存储器热点识别

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
GR01 Patent grant
GR01 Patent grant