CN117529704A - 一种信号传输控制系统 - Google Patents

一种信号传输控制系统 Download PDF

Info

Publication number
CN117529704A
CN117529704A CN202280040710.XA CN202280040710A CN117529704A CN 117529704 A CN117529704 A CN 117529704A CN 202280040710 A CN202280040710 A CN 202280040710A CN 117529704 A CN117529704 A CN 117529704A
Authority
CN
China
Prior art keywords
data
address
storage space
dma controller
time
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
CN202280040710.XA
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.)
Shenzhen Voxtech Co Ltd
Original Assignee
Shenzhen Voxtech 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 Shenzhen Voxtech Co Ltd filed Critical Shenzhen Voxtech Co Ltd
Publication of CN117529704A publication Critical patent/CN117529704A/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/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
    • 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
    • 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/28DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Bus Control (AREA)

Abstract

本说明书实施例可以提供一种信号传输控制系统,包括第一DMA控制器、处理器以及第二DMA控制器:第一DMA控制器用于将信号写入第一存储空间以形成第一数据;处理器用于分批处理并传输所述第一数据到第二存储空间以形成第二数据;第二DMA控制器,用于从所述第二存储空间的地址中依次读出所述第二数据,其中,在每批第一数据被写入所述第二存储空间时,所述第二DMA控制器在所述第二存储空间的数据读取地址指向所述第一数据被写入地址之前的地址。

Description

一种信号传输控制系统 技术领域
本说明书涉及信号传输和控制领域,特别涉及一种信号传输控制系统。
背景技术
助听器(Hearing Aid),是一种能够供听障者使用以补偿听力损失,从而提高听障者的言语交往能力的扩音装置。
作为实时音频装置,助听器需要对麦克风采集的声音信号进行处理并及时通过扬声器播放给用户。在此过程中,存储空间中数据的读写和处理器对数据的处理往往会导致信号的延迟,而信号延迟的高低直接影响着产品性能的优劣以及用户的使用体验。因此,提供一种能够优化助听器信号的读写机制、减少信号延迟的方法或系统具有重要的意义。
发明内容
本申请实施例提供一种信号传输控制系统,包括第一DMA控制器、处理器以及第二DMA控制器:第一DMA控制器用于将信号写入第一存储空间以形成第一数据;处理器用于分批处理并传输所述第一数据到第二存储空间以形成第二数据;第二DMA控制器,用于从所述第二存储空间的地址中依次读出所述第二数据,其中,在每批第一数据被写入所述第二存储空间时,所述第二DMA控制器在所述第二存储空间的数据读取地址指向所述第一数据被写入地址之前的地址。
在一些实施例中,所述第一DMA控制器以环形缓冲的方式将所述信号周期性地写入所述第一存储器空间。
在一些实施例中,所述第一存储空间的地址和所述第二存储空间的地址具有映射关系,所述处理器根据所述映射关系将处理后的第一数据写入所述第二存储空间。
在一些实施例中,所述第一存储空间的地址具有依次排列的两个或以上分段,所述两个或以上分段中的每个分段与所述分批处理的每个批次对应。
在一些实施例中,所述第二存储空间的地址具有依次排列两个或以上分段,所述映射关系包括:所述第一存储空间的地址的当前分段与所述第二存储空间的地址的下一分段对应。
在一些实施例中,所述处理器进一步用于:向所述第一DMA控制器发送第一指令,用于控制所述第一DMA控制器在第一时间将第一子数据写入所述第一存储空间;向所述第二DMA控制器发送第二指令,用于控制所述第二DMA控制器在第二时间读出所述第二存储空间中与所述第一子数据对应的第二子数据,其中,所述第二时间与所述第一时间的间隔不小于每批第一数据被写入第一存储空间的总时间。
在一些实施例中,所述第二时间与所述第一时间的时间间隔大于或等于所述每批第一数据被写入所述第一存储空间的总时间与所述处理器处理所述每批第一数据的时间之和。
在一些实施例中,所述第二指令可以用于控制所述第二DMA控制器相对于所述第一DMA控制器提前或推迟开始工作的时间。
在一些实施例中,所述处理器可以用于:分别确定所述第一DMA控制器与所述第二DMA控制器开始工作的时间;基于所述第一DMA控制器与所述第二DMA控制器开始工作的时间,确定所述第一存储空间的地址和所述第二存储空间的地址之间的映射关系;以及根据所述映射关系将处理后的第一数据写入所述第二存储空间。
在一些实施例中,在所述每批第一数据被写入所述第二存储空间之前,所述处理器读取所述第二存储空间中当前的数据读取地址,并根据所述当前的数据读取地址, 确定写入所述每批第一数据的写入地址。
在一些实施例中,所述信号包括麦克风获取的声音信号,所述第二DMA控制器将依次读出的所述第二数据传输到扬声器。
在一些实施例中,所述分批处理所述第一数据可以包括对所述第一数据进行A/D转换、放大、编码、译码、打包、缓存等操作中的一个或多个。
在一些实施例中,所述信号可以包括图像获取设备获取的图像,所述第二DMA控制器可以将依次读出的所述第二数据传输到显示器。
在一些实施例中,所述分批处理所述第一数据可以包括对所述第一数据进行滤波、变换、编码、分割、识别、缓存等操作中的一个或多个。
在一些实施例中,所述第二DMA控制器在所述第二存储空间的数据读取地址与所述第一数据被写入地址之间的距离可以不超过每批第一数据的长度。
附加的特征将在下面的描述中部分地阐述,并且对于本领域技术人员来说,通过查阅以下内容和附图将变得显而易见,或者可以通过实例的产生或操作来了解。本说明书的特征可以通过实践或使用以下详细实例中阐述的方法、工具和组合的各个方面来实现和获得。
附图说明
本申请将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本申请一些实施例所示的信号传输控制系统的示意图;
图2是根据本申请一些实施例所示的信号写入和读出的过程示意图;
图3是根据本申请一些实施例所示的信号读写机制示意图;
图4是根据本申请另一些实施例所示的信号读写机制示意图;
图5是根据本申请另一些实施例所示的信号读写机制示意图。
具体实施方式
为了更清楚地说明本说明书的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其他类似情景。应当理解,给出这些示例性实施例仅仅是为了使相关领域的技术人员能够更好地理解进而实现本说明书,而并非以任何方式限制本说明书的范围。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。
在本说明书的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个、三个等,除非另有明确具体的限定。
为了更好地理解本说明书的信号传输控制系统,以下将基于与助听器相关的信 号传输控制过程进行描述。需要注意的是,以下基于与助听器相关信号传输控制过程进行的描述不用于限制本说明书的范围。对于本领域普通技术人员而言,本说明书公开的系统可以应用于需要进行信号和/或数据传输的任何其他系统和/或设备。例如,本申请实施例还可用于图像或视频信息的实时获取、处理以及显示的过程。再例如,本申请实施例还可用于机械信号或电磁信号等任意实时信号的传输过程。
助听器通常包括麦克风(也可以称为传声器或话筒)、放大器以及扬声器(也可以称为受话器或耳机)。其中,麦克风可以接收声音信号并将其转化为电信号(即把声能转化为电能);放大器可以包括放大电路,其可以用于放大电信号;扬声器可以把电信号转化为声音信号(即把电能转化为声能),并输出给用户(例如,听障者)。
在一些实施例中,助听器还可以包括输入一侧的DMA(Direct Memory Access,直接内存访问)、处理器以及输出一侧的DMA。输入一侧的DMA可以周期性地读取麦克风采集的信号,并将其搬运到第一存储空间中的某个位置。处理器可以每隔N个信号时间,从第一存储空间中将m个信号所组成的一帧数据,一次性搬运到第二存储空间中的某个位置。在一些实施例中,N可以与m相等。输出一侧的DMA可以周期性地读取第二存储空间中存储的信号,并将其传输给扬声器。
对于助听器等的实时音频装置而言,信号延迟的高低直接影响着产品性能的优劣以及用户的使用体验。在一些实施例中,输入和输出一侧的DMA在对信号进行写入和读取时通常采用环形缓冲(Circular buffering)的方式,即分别按一定方式依次对信号进行写入和读取,并且,由于信号写入、搬运以及读取的时差问题,可能导致写入输入一侧的信号需要等待较长时间才能被输出一侧的DMA读取,造成较大的信号传输时延。另外,由于在不同信号传输过程中信号写入和读取的时差可能不同,导致信号传输时延存在波动,影响系统的稳定性。而传统技术中对于输入一侧的DMA、处理器以及输出一侧的DMA之间的运作机制并未做出优化,因此,传统助听器在信号延迟方面的性能还有待提升。
针对上述问题,本申请实施例提供一种信号传输控制系统。该系统可以应用于助听器等实时音频装置,通过将输入一侧的DMA、处理器以及输出一侧的DMA之间的运作机制进行耦合,以优化信号的读写机制,改善输出信号的延迟。需要说明的是,本申请实施例所提供的信号传输控制系统可以应用于助听器,但不限于助听器。例如,本申请实施例还可用于图像或视频信息的实时获取、处理以及显示的过程。又例如,本申请实施例还可用于机械信号或电磁信号等任意实时信号的传输过程。
下面结合附图对本申请实施例提供的信号传输控制系统进行详细说明。
图1是根据本申请一些实施例所示的信号传输控制系统的示意图。
参照图1,在一些实施例中,信号传输控制系统100可以包括第一DMA控制器110、处理器120、第二DMA控制器130、第一存储空间140以及第二存储空间150。
第一DMA控制器110可以用于控制外部设备与第一存储空间140之间的数据传输。例如,第一DMA控制器110可以读取外部设备中的输入信号,并将其写入第一存储空间140以形成第一数据。仅作为示例,外部设备可以包括麦克风,输入信号可以包括由麦克风采集的声音信号。第一存储空间140可以为系统内存。在一些实施例中,第一数据可以指声音信号转化为电信号后所得到的数据或信息。在一些实施例中,第一数据可以通过对麦克风采集的声音信号所对应的电信号进行编码得到。在一些实施例中,外部设备可以包括图像获取设备(例如,图像传感器),输入信号可以包括由图像获取设备获取的图像或视频帧数据。在一些实施例中,外部设备可以包括用于获取或生成机械信号或电磁信号的设备,输入信号可以包括机械信号或电磁信号。
在一些实施例中,第一DMA控制器110可以直接控制外部设备与第一存储空 间140之间的数据传输。例如,第一DMA控制器110可以基于DMA技术读取麦克风采集的输入信号,并将其写入与第一存储空间140中的指定位置,形成第一数据。这里的DMA技术可以指外部设备不通过中央处理器(例如,信号传输控制系统100中的处理器120)而直接与系统内存(例如,信号传输控制系统100中的第一存储空间140)交换数据的接口技术。仅作为示例,在进行数据传输时,第一DMA控制器110可以向中央处理器发出申请使用系统总线的DMA请求信号。中央处理器在当前总线周期结束后可以让出系统总线并向第一DMA控制器110发出DMA确认信号,从而使第一DMA控制器110接管系统总线,实现外部设备与第一存储空间140之间的数据传输。第一DMA控制器110还可以判断数据传输过程是否结束并向中央处理器发出DMA结束信号,使中央处理器重新接管系统总线。
在一些实施例中,第一DMA控制器110还可以在处理器120的控制下实现外部设备与第一存储空间140之间的数据传输。例如,第一DMA控制器110可以在处理器120的控制下读取麦克风采集的输入信号,并将该输入信号写入第一存储空间140中的指定位置,形成第一数据。仅作为示例,处理器120可以生成用于控制第一DMA控制器110的指令,通过所述指令控制第一DMA控制器110的数据读取和/或写入过程。例如,所述指令可以用于控制第一DMA控制器110的工作时间,使第一DMA控制器110在指定时间开始数据的读取和/或写入操作。
第一存储空间140可以指用于存储数据和/或其他信息的任意存储装置。在一些实施例中,第一存储空间140可以包括大容量存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。示例性的大容量储存器可以包括磁盘、光盘、固态驱动等。示例性可移动存储器可以包括闪存驱动器、光盘、存储卡、压缩盘、磁带等。示例性的挥发性只读存储器可以包括随机存取内存(RAM)。示例性的RAM可包括动态RAM(DRAM)、双倍速率同步动态RAM(DDR SDRAM)、静态RAM(SRAM)、闸流体RAM(T-RAM)和零电容RAM(Z-RAM)等。示例性的ROM可以包括掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(PEROM)、电子可擦除可编程ROM(EEPROM)、光盘ROM(CD-ROM)和数字通用磁盘ROM等。
在一些实施例中,第一存储空间140中可以包括多个地址,第一DMA控制器110可以在每一个信号时间读取一个输入信号并写入第一存储空间140中的一个地址中。在一些实施例中,第一DMA控制器110可以周期性地将所读取的输入信号写入第一存储器空间140的地址中。例如,第一DMA控制器110可以以环形缓冲的方式将输入信号周期性地写入第一存储器空间140。在所述环形缓冲方式中,第一存储空间140中的多个地址可以头尾相连形成环形地址空间,第一DMA控制器110所读取的输入信号可以依次写入环形地址空间中的每个地址中。在环形地址空间被写满后,可以覆盖已写入数据的地址中的数据,继续依次写入数据,从而实现周期性地将数据写入第一存储器空间140,形成第一数据。
处理器120可以对第一存储空间140中存储的数据进行处理,并将其传输至第二存储空间150,以形成第二数据。例如,处理器120可以读取第一存储空间140中存储的第一数据,对所读取的第一数据进行处理,并将处理后的第一数据写入第二存储空间150。在一些实施例中,为了便于描述,处理器120读取第一数据、处理第一数据以及将处理后的第一数据写入第二存储空间150的总时间可以称为处理器120处理第一数据的时间。在一些实施例中,处理器120可以包括硬件模块和软件模块。仅作为示例,硬件模块可以包括数字信号处理(Digital Signal Processor,DSP)芯片、中央处理器(Central Processing Unit/Processor,CPU)、微控制单元(Microcontroller Unit,MCU)等。在一些实施例中,处理器120对第一存储空间140中存储的数据进行处理的过程可 以包括A/D转换、放大、编码、译码、打包、缓存等操作中的一个或多个。在一些实施例中,处理器120对第一存储空间140中存储的数据进行处理的过程还可以包括图像处理,例如,滤波、变换、编码、分割、识别、缓存等。在一些实施例中,处理器120可以对第一存储空间140中存储的数据进行分批处理。所述分批处理可以指将第一存储空间140中用于存储数据的地址分成两个或以上的分段,将每一个分段中的数据作为一个批次,依次对每一个分段中的数据进行处理。示例性地,在一些实施例中,处理器120可以每隔N个信号时间从第一存储空间中将m(m可以大于或等于1)个信号所组成的一帧数据作为一批数据搬运到第二存储空间150中的某个位置。在一些实施例中,所述m个信号可以是最新写入第一存储空间中的m个信号。在一些实施例中,N可以与m相等。例如,第一DMA控制器110可以每一个信号时间读取麦克风采集的一个输入信号,并将其写入第一存储空间140中的指定位置,则N个信号时间后第一存储空间140中可以写入N个信号,处理器120可以将该N个信号作为一批数据搬运到第二存储空间150中。在一些实施例中,第二数据的数据形式可以与第一数据相同或不同。例如,第二数据可以仅经过对第一数据进行打包得到。又例如,第二数据可以经过对第一数据进行放大后得到。再例如,第二数据可以经过对第一数据进行编码或译码得到。
第二存储空间150可以指用于存储数据和/或其他信息的任意存储装置。示例性的存储装置可以包括大容量存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。在一些实施例中,第二存储空间150可以与第一存储空间140相似。在一些实施例中,第二存储空间150中地址的数量可以与第一存储空间140中地址的数量相同,从而使第一存储空间140与第二存储空间150之间形成映射关系,以便于数据的搬运。例如,第一存储空间140与第二存储空间150可以根据相同的规则进行分段,第一存储空间140中的分段与第二存储空间150中的分段可以一一对应,处理器120可以将一个分段中的数据搬运到与其对应的分段中。
第二DMA控制器130可以用于从第二存储空间150中依次读出第二数据。在一些实施例中,第二DMA控制器130可以直接控制第二存储空间150与外部设备之间的数据传输。例如,第二DMA控制器130可以基于DMA技术从第二存储空间150中依次读出第二数据。在一些实施例中,所述外部设备可以包括扬声器,第二DMA控制器130可以将第二数据输出至扬声器,从而通过扬声器将麦克风采集到的声音传递给用户。在一些实施例中,所述外部设备可以包括显示器,第二DMA控制器130可以将第二数据输出至显示器,从而通过显示器将图像获取设备获取的图像或视频展示给用户。
在一些实施例中,第二DMA控制器130还可以在处理器120的控制下实现第二存储空间150与外部设备之间的数据传输。例如,第二DMA控制器130可以在处理器120的控制下从第二存储空间150中读出第二数据。仅作为示例,处理器120可以生成用于控制第二DMA控制器130的指令,通过所述指令控制第二DMA控制器130的数据读出过程。例如,所述指令可以用于控制第二DMA控制器130的工作时间,使第二DMA控制器130在指定时间开始数据的读出操作。在一些实施例中,第二DMA控制器130可以以环形缓冲的方式从第二存储空间150中读出第二数据。在所述环形缓冲方式中,第二存储空间150中的多个地址可以头尾相连形成环形地址空间,第二DMA控制器130可以依次从环形地址空间中读出第二数据。
在一些实施例中,为了使第一数据在写入第二存储空间150后尽可能快地被读取,可以在每批第一数据被写入第二存储空间150时,使第二DMA控制器130在第二存储空间的数据读取地址指向第一数据被写入地址的附近(例如,前一地址),从而达到缩短信号输出时延的效果。关于使第二DMA控制器130在第二存储空间的数据读取地址指向第一数据被写入地址的附近的更多描述可以参见图4、图5及其相关描述,此 处不再赘述。
图2是根据本申请一些实施例所示的信号写入和读出的过程示意图。
参照图2,在一些实施例中,第一DMA控制器110可以以环形缓冲的方式将信号周期性地写入第一存储空间140。示例性的,在一些实施例中,第一存储空间140可以包括n个存储区域(或地址),依次为Area[1]、Area[2]……、Area[n],其中,每一个区域中可以存储一个或多个字节。第一DMA控制器110获取的输入信号可以依次写入Area[1]、Area[2……、Area[n],再回到Area[1]、Area[2]……、Area[n],如此持续写入,依次覆盖旧数据,形成环形缓冲。例如,当前存储地址为Area[i]时,如果i小于n,则所述环形缓冲中Area[i]的后一个地址为Area[i+1];如果i等于n,则所述环形缓冲中Area[i]的后一个地址可以为Area[1]。再例如,当前地址为Area[i]时,如果i大于1,则所述环形缓冲中Area[i]的前一个地址为Area[i-1];如果i等于1则前一个地址为Area[n]。类似地,当前地址之后的若干个地址、或之前的若干个地址,其寻址方式都可以遵循上述规律。当向前寻址到达存储空间的头部边界(例如,Area[1])时,将跳转至存储空间的尾部边界(例如,Area[n])来继续向前寻址;反之,当向后寻址到达存储空间的尾部边界(例如,Area[n])时,将跳转至存储空间的头部边界(例如,Area[1])继续向后寻址。
需要说明的是,本说明书中所举例的Area[1]、Area[2]、……、Area[n]只用于表示依访问逻辑顺序而编号的地址,其不一定对应实际的物理地址。换言之,在一些实施例中,访问逻辑顺序的编号可以与存储介质(例如,第一存储空间140、第二存储空间150等)的物理地址之间,存在着任意可行的映射关系。示例性地,在一些实施例中,Area[1]~Area[n]可以依次对应于存储介质的物理地址中p[k]~p[k+n-1]的正序;在一些实施例中,Area[1]~Area[n]还可以依次对应于存储介质的物理地址中p[k]~p[k+n-1]的逆序;在一些实施例中,Area[1]~Area[n]还可以对应于存储介质的物理地址中p[j]~p[j+L-1]区段中任意n个地址的某种排列,其中,L≥n。
在一些实施例中,该输入信号可以包括由麦克风获取的声音信号。第一DMA控制器110可以每隔一定时间(例如,1个时钟周期、2个时钟周期等)从麦克风获取一次输入信号,并将其写入第一存储空间140,以形成第一数据。其中,从麦克风获取一次输入信号的时间可以称为一个信号时间。在一些实施例中,该输入信号可以包括由图像获取设备获取的图像或视频帧数据。第一DMA控制器110可以每隔一定时间(例如,1个时钟周期、2个时钟周期等)从图像获取设备获取一次输入信号,并将其写入第一存储空间140,以形成第一数据。其中,从图像获取设备获取一次输入信号的时间可以称为一个信号时间。
在一些实施例中,处理器120可以用于分批处理并传输第一数据到第二存储空间150以形成第二数据。例如,处理器120可以每隔4个信号时间将第一存储空间140中的4个连续信号(例如,存储在Area[1]-Area[4]中的data[1]-data[4],或存储在Area[3]-Area[6]中的data[3]-data[6]等)作为一批数据进行处理,并将处理后的数据传输到第二存储空间150。需要说明的是,以上仅为示例性说明,在一些其他的实施例中,处理器120可以间隔更长或更短的信号时间对第一存储空间140中的第一数据进行分批处理。另外,每一批数据中的信号数量可以不限于4个。例如,在一些实施例中,为了提高数据处理的实时性,处理器120可以每隔2个信号时间将第一存储空间140中存储的两个信号作为一批数据进行处理并传输至第二存储空间150以形成第二数据。
在一些实施例中,第一存储空间140的地址与第二存储空间150的地址具有映射关系,处理器120可以根据该映射关系将处理后的第一数据写入第二存储空间150。例如,第一存储空间140中的Area[1]可以与第二存储空间150中的Area[1]相对应,处 理器120可以将存储在第一存储空间140中Area[1]的数据data[1]按照第一存储空间140与第二存储空间150的映射关系写入第二存储空间150中的Area[1]。又例如,第一存储空间140中的Area[1]-Area[4]可以与第二存储空间150中的Area[1]-Area[4]相对应,处理器120可以将存储在第一存储空间140中Area[1]-Area[4]的数据data[1]-data[4]按照第一存储空间140与第二存储空间150的映射关系写入第二存储空间150中的Area[1]-Area[4]。再例如,第一存储空间140中的Area[1]-Area[4]可以与第二存储空间150中的Area[5]-Area[8]相对应,处理器120可以将存储在第一存储空间140中Area[1]-Area[4]的数据data[1]-data[4]按照第一存储空间140与第二存储空间150的映射关系写入第二存储空间150中的Area[5]-Area[8]。在一些实施例中,处理器120可以设置第一存储空间140的地址与第二存储空间150的地址之间的映射关系,使得每批第一数据被写入第二存储空间150时,第二DMA控制器130在第二存储空间150的数据读取地址指向第一数据被写入地址之前的地址(例如,前一个地址)。在一些实施例中,处理器120可以根据第一DMA控制器110和第二DMA控制器130开始工作的时间设置所述映射关系。在一些实施例中,处理器120可以根据第二存储空间150中当前的数据读取地址设置所述映射关系。在一些实施例中,处理器120还可以先设置第一存储空间140的地址与第二存储空间150的地址之间的映射关系,并根据所述映射关系确定第一DMA控制器110和第二DMA控制器130开始工作的时间。关于设置映射关系的更多描述可以参见图4、图5及其相关描述,此处不再赘述。
继续参照图2,在一些实施例中,第一存储空间140的地址可以包括依次排列的两个或两个以上分段。例如,可以将Area[1]-Area[4]作为第一个分段,将Area[5]-Area[8]作为第二个分段,以此类推。在处理器120对第一存储空间140中的第一数据进行分批处理时,可以将每一个分段中存储的数据作为一批数据。换句话说,即第一存储空间140中的每个分段可以与分批处理的每个批次对应。需要说明的是,不同分段可以具有相同或不同的长度,例如,在一些实施例中,可以将Area[1]-Area[4]作为第一个分段,将Area[5]-Area[6]作为第二个分段,将Area[7]-Area[10]作为第三个分段。在一些实施例中,分段的长度也可以称为写入其中的数据的长度。
在一些实施例中,第二存储空间150的地址也可以包括依次排列的两个或两个以上分段。在一些实施例中,第二存储空间150的地址和第一存储空间140的地址可以按照相同或不同的分段方式进行分段,只要使得第二存储空间150中分段的地址数量与第一存储空间140中分段的地址数量相同即可。在一些实施例中,第二存储空间150和第一存储空间140中相同位次的地址可以对应相同的分段。例如,第二存储空间150和第一存储空间140中均可以将Area[1]-Area[4]作为第一个分段,将Area[5]-Area[8]作为第二个分段。在一些实施例中,第二存储空间150和第一存储空间140中相同位次的地址可以对应不同的分段。例如,第一存储空间140中可以将Area[1]-Area[4]作为第一个分段,而在第二存储空间150中可以将Area[5]-Area[8]作为第一个分段。在一些实施例中,第一存储空间140的地址与第二存储空间150的地址的映射关系可以包括:第一存储空间140的地址的当前分段与第二存储空间150的地址的下一个分段对应。例如,第一存储空间140中的第一个分段可以与第二存储空间150中的第二个分段相对应,第一存储空间140中的第二个分段可以与第二存储空间150中的第三个分段相对应。第一存储空间140中的第三个分段可以与第二存储空间150中的第一个分段相对应。基于所述映射关系,可以将处理后的第一数据写入到第二存储空间150中的特定地址,同时通过控制第一DMA控制器110和/或第三DMA控制器130的工作时间,可以使得在每批第一数据被写入第二存储空间150时,第二DMA控制器130在第二存储空间150的数据读取地址指向该第一数据被写入地址之前的地址(例如,前一个地址)。由此,被写入 第二存储空间150中的第一数据可以在最短的时间内被第二DMA控制器130读取,从而缩短信号输出时延,提高信传输的实时性。
在一些实施例中,输入信号可以包括由麦克风获取的声音信号,当处理器120将第一存储空间140中的第一数据写入第二存储空间150得到第二数据后,第二DMA控制器130可以以环形缓冲的方式从第二存储空间150的地址中读出第二数据,并将依次读出的第二数据传输到扬声器。在一些实施例中,输入信号可以包括由图像获取设备获取的图像或视频帧数据,当处理器120将第一存储空间140中的第一数据写入第二存储空间150得到第二数据后,第二DMA控制器130可以以环形缓冲的方式从第二存储空间150的地址中读出第二数据,并将依次读出的第二数据传输到显示器。
在一些实施例中,为了使第一数据在写入第二存储空间150后尽可能快地被读取,可以在每批第一数据被写入第二存储空间150时,使得第二DMA控制器130在第二存储空间的数据读取地址总是指向第一数据被写入地址之前的地址(例如,前一个地址)。换句话说,即使得第一数据写入第二存储空间150的写入地址总是指向第二DMA控制器130在第二存储空间的数据读取地址之后的地址(例如,后一个地址)。仅作为示例,当第二DMA控制器130在第二存储空间的当前数据读取地址为Area[5]时,可以将第一数据写入第二存储空间150中Area[5]之后距离较近的区域。
在一些实施例中,所述“之前的地址”可以指访问逻辑顺序排列在当前数据读取地址之前的若干个地址。仅作为示例,当前数据读取为Area[i]时,如果i大于1,则Area[i]的前一个地址为Area[i-1];如果i等于1则前一个地址为Area[n]。类似地,当前地址之后的若干个地址、或之前的若干个地址,其寻址方式都可以遵循上述规律。例如,Area[i]之前的地址,可以指{Area[i-1],Area[i-2],…,Area[1],Area[n],Area[n-1],…,Area[k]}有序队列中的前若干个地址所形成的集合的某个子集。在一些实施例中,所述前若干个地址所形成的集合中所包含的总地址数可以小于该存储空间总地址数的一半。
需要说明的是,在一些实施例中,为了使第一数据在写入第二存储空间150后尽可能快地被读取,从而提升系统的运行效率,“之前的地址”可以指在第一数据被写入地址的前一个地址。在一些实施例中,为了提高系统的容错率,从而增强系统的稳定性,“之前的地址”可以指在第一数据被写入地址之前一定范围内的地址。在一些实施例中,为了提高系统的容错率,同时保证系统的运行效率,“之前的地址”与第一数据被写入地址之间的距离可以不超过每批第一数据的长度。仅作为示例,处理器120每隔4个信号时间将第一存储空间140中的4个连续信号作为一批数据进行处理并传输到第二存储空间150,每批第一数据的长度可以为4,则“之前的地址”与第一数据被写入地址之间的距离可以不超过4。例如,“之前的地址”可以指在第一数据被写入地址之前的4个地址之内。再例如,“之前的地址”可以指在第一数据被写入地址之前的3个地址之内。在一些实施例中,为了提高系统的容错率,同时进一步提升系统的运行效率,“之前的地址”与第一数据被写入地址之间的距离可以不超过每批第一数据长度的二分之一。例如,“之前的地址”可以指在第一数据被写入地址之前的2个地址。同理地,术语“之后的地址”可以指在当前数据读取地址的后一地址或当前数据读取地址之后一定范围内的地址。例如,“之后的地址”可以指在当前数据读取地址之后的4个地址之内。再例如,“之后的地址”可以指在当前数据读取地址之后的3个地址之内。再例如,“之后的地址”可以指在当前数据读取地址之后的1个地址。仅作为示例,当第二DMA控制器130在第二存储空间的当前数据读取地址为Area[5]时,其之后的地址可以指Area[6]、Area[6]-Area[10]、Area[7]-Area[11]或Area[8]-Area[13]等的任意一个地址或分段。
在一些实施例中,考虑到第二存储空间150中位于当前数据读取地址之后的存 储区域可能存在尚未被第二DMA控制器130读取的第二数据,此时若直接将第一数据写入当前数据读取地址之后最近的存储区域中,可能会将未读取的数据覆盖掉,造成数据丢失,在一些实施例中,第一数据写入第二存储空间150的写入地址可以位于当前数据读取地址之后的一定范围内,并与当前数据读取地址间隔一定距离。仅作为示例,当第二DMA控制器130在第二存储空间的当前数据读取地址为Area[5]时,可以将第一数据写入第二存储空间150中的Area[7]、Area[8]或Area[7]-Area[11]、Area[8]-Area[13]区域或分段,具体可以根据第一数据的长度来确定。
下面结合图3-图5对本申请实施例所提供的信号传输控制系统的信号传输机制进行详细说明。
图3是根据本申请一些实施例所示的信号读写机制示意图。
如图3所示,第一存储空间140和第二存储空间150可以分别包括8个存储区域Area[1]-Area[8]。第一DMA控制器110可以在每一个信号时间获取一个信号,并以环形缓冲的方式将所获取的信号周期性地依次写入第一存储空间140中的Area[1]-Area[8]。在一些实施例中,第一存储空间140和第二存储空间150中的地址可以分别分为两个分段。其中,第一存储空间140中的第一分段Area[1]-Area[4]可以与第二存储空间150中的第一分段Area[1]-Area[4]相对应,第一存储空间140中的第二分段Area[5]-Area[8]可以与第二存储空间150中的第二分段Area[5]-Area[8]相对应。相应地,在将第一存储空间140中的第一数据分批处理并传输到第二存储空间150时,处理器120可以每隔4个信号时间将存储于第一存储空间140中Area[1]-Area[4]的第一数据作为一批数据进行处理后写入第二存储空间150中的Area[1]-Area[4],并将存储于第一存储空间140中Area[5]-Area[8]的第一数据作为一批数据进行处理后写入第二存储空间150中的Area[5]-Area[8]。
在一些实施例中,第二DMA控制器130在对第二存储空间150中的第二数据进行读取时通常采用环形缓冲的方式,即依次对数据进行读取。由于数据写入和读出的时差问题,可能导致最新写入第二存储空间150的数据需要等待较长时间才能被读取。仅作为示例,第一DMA控制器110可以不通过处理器120而直接控制外部设备(例如,麦克风)与第一存储空间140之间的数据传输,第二DMA控制器130可以不通过处理器120而直接控制第二存储空间150与外部设备(例如,扬声器)之间的数据传输。在开始进行数据传输时(假设t=0),第一DMA控制器110从第一存储空间140中的Area[1]开始写入第一数据,第二DMA控制器130从第二存储空间150中的Area[1]开始读出第二数据。在4个信号时间后(即t=4),处理器120将第一存储空间140中的Area[1]-Area[4]中的第一数据传输到第二存储空间150中的Area[1]-Area[4](假设处理器120处理第一数据的时间为0)。此时,第二DMA控制器130的读出地址在第二存储空间150中的Area[4],并将继续依次读取第二存储空间150中的Area[5]-Area[8]。由此,最新写入第一存储空间140的数据(如t=0时写入第一存储空间140中Area[1]中的数据)需要等待一个循环周期(即t=8时)才能够被读出,造成信号传输时延较长的问题。另外,由于第一DMA控制器110以及第二DMA控制器130可以分别独立工作,导致在不同数据传输过程中,第一DMA控制器110写入数据的时间以及第二DMA控制器130读出数据的时间之间的关系存在各种可能的变化,使得不同数据传输过程的数据写入和读取的时差不同,导致信号传输时延存在波动,从而影响系统的稳定性。
图4是根据本申请一些实施例所示的信号读写机制示意图。
参照图4,为了解决上述信号传输时延较长的问题,在一些实施例中,可以基于第一DMA控制器110和第二DMA控制器130的运行时差,向第一DMA控制器110和第二DMA控制器130发送相应的指令,使得每批第一数据被写入第二存储空间150 时,第二DMA控制器130在第二存储空间150的数据读取地址始终指向第一数据被写入地址之前的地址。
在一些实施例中,处理器120可以向第一DMA控制器110发送第一指令,该第一指令可以用于控制第一DMA控制器110在第一时间将第一子数据写入第一存储空间140。其中,第一子数据可以指麦克风采集的一个信号或多个信号组成的信号段。第一时间可以指系统运行的基准时间(例如,t=0)。
在一些实施例中,处理器120还可以向第二DMA控制器130发送第二指令,该第二指令可以用于控制第二DMA控制器130在第二时间读出第二存储空间150中与前述第一子数据对应的第二子数据。在一些实施例中,第二时间与第一时间的间隔可以大于或等于每批第一数据被写入第一存储空间140的总时间与处理器120处理每批第一数据的时间之和。例如,每批第一数据被写入第一存储空间140后,处理器120可以将该批第一数据传输到第二存储空间150中。另外,处理器120可以通过第二指令控制第二DMA控制器130的工作时间,使得第二DMA控制器130在第二存储空间150的数据读取地址指向该批第一数据被写入地址之前的地址。在一些实施例中,所述之前的地址可以是该批第一数据被写入地址的前一个地址。由此,第二DMA控制器130可以在下一信号时间读取第二子数据,第二时间与第一时间的间隔等于每批第一数据被写入第一存储空间140的总时间与处理器120处理每批第一数据的时间之和。如果处理器120处理第一数据的时间为0(即处理器120仅搬运第一数据),则第二时间与第一时间的间隔可以等于每批第一数据被写入第一存储空间140的总时间。如果处理器120处理第一数据的时间不为0,则第二时间与第一时间的时间间隔可以等于每批第一数据被写入第一存储空间140的总时间与处理器120处理每批第一数据的时间之和。在一些实施例中,为了提高系统的容错率,从而增强系统的稳定性,之前的地址可以是该批第一数据被写入地址之前一定范围内的地址。相应地,第二时间与第一时间的间隔可以大于每批第一数据被写入第一存储空间140的总时间与处理器120处理每批第一数据的时间之和。在一些实施例中,处理器120处理每批第一数据的时间可以指处理器120从第一存储空间140中读取第一数据、处理第一数据以及将处理后的第一数据写入第二存储空间150的总时间。在一些实施例中,处理器120处理每批第一数据的时间可以不超过每批第一数据被写入第一存储空间140的总时间。由此,处理器120可以在下一批第一数据全部写入第一存储空间140之前完成对当前一批第一数据的处理,从而可以及时处理下一批第一数据,进而防止数据处理不及时造成的数据丢失。
在一些实施例中,处理器120可以确定第一存储空间140的地址与第二存储空间150的地址之间的映射关系,基于所述映射关系生成第一指令和第二指令。所述第一指令和第二指令分别用于控制第一DMA控制器110与第二DMA控制器130开始工作的时间,从而使得第一DMA控制器110在第一时间将第一子数据写入第一存储空间140,第二DMA控制器130在第二时间读出第二存储空间150中与前述第一子数据对应的第二子数据,且第二时间与第一时间的间隔不小于每批第一数据被写入第一存储空间140的总时间。在一些实施例中,处理器120可以基于第一存储空间140的地址与第二存储空间150的地址之间的映射关系、每批第一数据被写入第一存储空间140的总时间以及处理器120处理每批第一数据的时间确定第一DMA控制器110与第二DMA控制器130开始工作的时间。例如,基于所述映射关系,处理器120可以通过第二指令控制第二DMA控制器130相对于第一DMA控制器110提前或推迟开始工作的时间,使得每批第一数据被写入所述第二存储空间150时,第二DMA控制器130在第二存储空间150的数据读取地址指向第一数据被写入地址之前的地址。
仅作为示例,如图4所示,第一存储空间140的地址和第二存储空间150的地 址可以分别包括两个分段Area[1]-Area[4]以及Area[5]-Area[8]。处理器120可以确定第一存储空间140中的第一分段Area[1]-Area[4]与第二存储空间150中的第二分段Area[5]-Area[8]对应,且第一存储空间140中的第二分段Area[5]-Area[8]与第二存储空间150中的第一分段Area[1]-Area[4]对应。在进行数据传输控制时,处理器120可以通过第一指令控制第一DMA控制器110在第一初始时间(例如,t=0时刻)开始工作,以在第一时间(例如t=1)将第一子数据data[1]写入第一存储空间140的Area[1],并继续在每个信号时间将从麦克风获取的信号依次写入Area[1]之后的地址。在t=4时刻,处理器120可以基于第一存储空间140的地址和第二存储空间150的地址之间的映射关系,将第一存储空间140的第一分段Area[1]-Area[4]中的数据作为一批第一数据被处理并传输至第二存储空间150中对应的第二分段Area[5]-Area[8]。写入第二存储空间150的Area[5]中的数据即为第二子数据。
处理器120可以根据第一存储空间140和第二存储空间150的地址的映射关系,通过第二指令控制第二DMA控制器130在第二初始时间(例如,t=1时刻)开始工作,以在第二时间(例如,t=5)读出第二存储空间150的Area[5]中的第二子数据。在一些实施例中,第二时间与第一时间的间隔可以等于每批第一数据被写入第一存储空间140的总时间。例如,如图4所示,如果处理器120处理第一数据的时间为0,第一存储空间140中的第一分段Area[1]-Area[4]与第二存储空间150中的第二分段Area[5]-Area[8]对应,则第二指令可以用于控制第二DMA控制器130在t=1时刻开始工作,使得第一子数据被写入第二存储空间150的Area[5]中时,第二DMA控制器130在第二存储空间150的数据读取地址指向Area[4](即第一数据被写入地址的前一地址)。进一步地,在第一子数据被写入第二存储空间150的下一时刻(即第二时刻,t=5),第二DMA控制器130可以读取第二存储空间150的中的第二子数据。由此,在t=1时刻写入第一存储空间140中的第一子数据,可以在t=5时刻从第二存储空间150中读取出来,其时间间隔为4个信号时间,等于每批第一数据被写入第一存储空间140的总时间。在一些实施例中,第二时间与第一时间的间隔可以等于每批第一数据被写入第一存储空间140的总时间与处理器120处理每批第一数据的时间之和。例如,处理器120处理每批第一数据的时间可以为n,第一存储空间140中的第一分段Area[1]-Area[4]与第二存储空间150中的第二分段Area[5]-Area[8]对应,第二指令可以用于控制第二DMA控制器130在t=1+n时刻开始工作,使得第一子数据被处理后写入第二存储空间150的Area[5]中时,第二DMA控制器130在第二存储空间150的数据读取地址指向Area[4](即第一数据被写入地址的前一地址)。由此,在t=1时刻写入第一存储空间140中的第一子数据,可以在t=5+n时刻从第二存储空间150中读取出来,其时间间隔为4+n个信号时间,等于每批第一数据被写入第一存储空间140的总时间与处理器120处理每批第一数据的时间之和。
在一些实施例中,第二时间与第一时间的间隔可以大于每批第一数据被写入第一存储空间140的总时间与处理器120处理每批第一数据的时间之和。例如,考虑到系统波动等原因,为了提高系统的容错率,从而增强系统的稳定性,在每批第一数据被写入第二存储空间150时,第一数据写入第二存储空间150的地址可以指向当前数据读取地址之后的地址,并与当前数据读取地址之间间隔一定的预留地址数。所述预留地址数可以指第一数据写入地址与当前数据读取地址之间间隔的地址数量。例如,第一数据写入地址为Area[5]、当前数据读取地址为Area[3],则预留地址数为1。继续结合图4进行示例性说明,假设处理器120处理每批第一数据的时间为n、预留地址数为d、第一存储空间140中的第一分段Area[1]-Area[4]与第二存储空间150中的第二分段Area[5]-Area[8]对应,第二指令可以用于控制第二DMA控制器130在t=n+d+1时刻开始工作, 使得第一数据写入第二存储空间150的地址与当前数据读取地址之间间隔为d(即第二DMA控制器130在第二存储空间150的数据读取地址指向第一数据被写入地址的前d+1个地址)。由此,在t=1时刻写入第一存储空间140中的第一子数据,可以在t=n+d+5时刻从第二存储空间150中读取出来,其时间间隔为n+d+4个信号时间,等于每批第一数据被写入第一存储空间140的总时间(即4)、处理器120处理每批第一数据的时间(即n)以及预留地址数(即d)三者之和。在一些实施例中,为了保证系统的运行效率,预留地址数可以小于每批第一数据长度的二分之一。例如,每批第一数据长度为4,预留地址数可以小于2,相应地,第一数据写入第二存储空间150的地址与当前数据读取地址之间的距离可以小于或等于2。
作为另一示例,如图3所示,第一存储空间140的地址和第二存储空间150的地址可以分别包括两个分段Area[1]-Area[4]以及Area[5]-Area[8]。处理器120可以确定第一存储空间140中的第一分段Area[1]-Area[4]与第二存储空间150中的第一分段Area[1]-Area[4]对应,且第一存储空间140中的第二分段Area[5]-Area[8]与第二存储空间150中的第二分段Area[5]-Area[8]对应。在进行数据传输控制时,处理器120可以通过第一指令控制第一DMA控制器110在第一初始时间(例如,t=0时刻)开始工作,以在第一时间(例如t=1)将第一子数据data[1]写入第一存储空间140的Area[1]。在t=4时刻,处理器120可以将第一存储空间140的第一分段Area[1]-Area[4]中的数据作为一批第一数据被处理并传输至第二存储空间150中对应的第一分段Area[1]-Area[4]。写入第二存储空间150的Area[1]中的数据即为第二子数据。如果处理器120处理第一数据的时间为0,处理器120可以根据第一存储空间140和第二存储空间150的地址的映射关系,通过第二指令控制第二DMA控制器130在第二初始时间(例如,t=5时刻)开始工作,使得第一子数据data[1]被写入第二存储空间150的Area[1]中时,第二DMA控制器130在第二存储空间150的数据读取地址指向Area[1]的前一地址。进一步地,在第一子数据被写入第二存储空间150的下一时刻(即第二时刻,t=5),第二DMA控制器130可以读取第二存储空间150的中的第二子数据以在第二时间(例如,t=5)读出第二存储空间150的Area[1]中的第二子数据。由此,在t=1时刻写入第一存储空间140中的第一子数据,可以在t=5时刻从第二存储空间150中读取出来,其时间间隔为4个信号时间,等于每批第一数据被写入第一存储空间140的总时间。
作为又一示例,第一存储空间140的地址和第二存储空间150的地址可以分别包括三个分段Area[1]-Area[4]、Area[5]-Area[8]以及Area[9]-Area[12]。处理器120可以确定第一存储空间140中的第一分段Area[1]-Area[4]与第二存储空间150中的第三分段Area[9]-Area[12]对应。在进行数据传输控制时,处理器120可以根据第一存储空间140和第二存储空间150的地址的映射关系,通过第二指令控制第二DMA控制器130在第二初始时间(例如,t=0时刻)开始工作。如果处理器120处理第一数据的时间为0,处理器120可以通过第一指令控制第一DMA控制器110在第一初始时间(例如,t=3时刻)开始工作,以在第一时间(例如t=4)将第一子数据data[1]写入第一存储空间140的Area[1]。在t=7时刻,处理器120可以将第一存储空间140的第一分段Area[1]-Area[4]中的数据作为一批第一数据被处理并传输至第二存储空间150中对应的第三分段Area[9]-Area[12],此时,第二DMA控制器130在第二存储空间150的数据读取地址指向Area[8]。进一步地,在第一子数据被写入第二存储空间150的下一时刻(即第二时刻,t=8),第二DMA控制器130可以读取第二存储空间150的中的第二子数据,即在第二时间(例如,t=8)读出第二存储空间150的Area[9]中的第二子数据。由此,在t=4时刻写入第一存储空间140中的第一子数据,可以在t=8时刻从第二存储空间150中读取出来,其时间间隔为4个信号时间,等于每批第一数据被写入第一存储空间140的总 时间。
在另一些实施例中,处理器120还可以先确定第一DMA控制器110与第二DMA控制器130开始工作的时间,再基于第一DMA控制器110与第二DMA控制器130开始工作的时间确定第一存储空间140的地址与第二存储空间150的地址之间的映射关系,从而使得第一DMA控制器110在第一时间将第一子数据写入第一存储空间140,第二DMA控制器130在第二时间读出第二存储空间150中与前述第一子数据对应的第二子数据,且第二时间与第一时间的间隔不小于每批第一数据被写入第一存储空间140的总时间。在一些实施例中,处理器120可以基于第一DMA控制器110与第二DMA控制器130开始工作的时间、每批第一数据被写入第一存储空间140的总时间以及处理器120处理每批第一数据的时间确定第一存储空间140的地址与第二存储空间150的地址之间的映射关系。
仅作为示例,第一DMA控制器110与第二DMA控制器130可以均在第一初始时间(例如,t=0时刻)开始工作。第一DMA控制器110可以在第一时间(例如t=1)将第一子数据data[1]写入第一存储空间140的Area[1],并在t=4时刻写完第一存储空间140的Area[1]-Area[4]。处理器120可以基于第一DMA控制器110与第二DMA控制器130开始工作的时间,以及Area[1]-Area[4]被处理的时间,确定第一存储空间140的地址与第二存储空间150的地址之间的映射关系。如果处理器120处理第一数据的时间为0,处理器120可以确定第一存储空间140的地址与第二存储空间150的地址之间的映射关系包括:第一存储空间140的Area[1]-Area[4]对应第二存储空间150的Area[6]-Area[9]。由此,在t=4时刻,第一子数据被写入第二存储空间150的Area[6]中,此时第二DMA控制器130的数据读取地址指向Area[5]。进一步地,在第一子数据被写入第二存储空间150的下一时刻(即第二时刻,t=5),第二DMA控制器130可以读取第二存储空间150的中的第二子数据。
根据本说明书所述的方法,通过控制第一DMA控制器110与第二DMA控制器130开始工作的时间和/或第一存储空间140的地址与第二存储空间150的地址之间的映射关系,可以减小由于数据写入、搬运以及读取的时差问题造成的较大的数据传输时延,同时可以使数据传输时延稳定在指定的数值范围内,避免或减小了数据传输时延的波动,提高了系统稳定性。
要注意的是,以上对信号读写机制的描述仅是示例性的目的,而非限制本说明书的范围。对于本领域的技术人员,可以基于本说明书进行任意的变更或修改。在一些实施例中,第一存储空间140和第二存储空间15可以分别包括三个或以上的分段,为了使每批第一数据被写入第二存储空间150时,第二DMA控制器130在第二存储空间150中的数据读取地址指向第一数据被写入地址之前的地址,可以将存储于第一存储空间140的当前分段的数据写入第二存储空间150中的下一分段。例如,将存储于第二存储空间140的第一分段的数据写入第二存储空间150中的第二分段,将存储于第一存储空间140的第二分段的数据写入第二存储空间150中的第三分段,以此类推。在一些实施例中,为了使第一数据在写入第二存储空间150后尽可能快地被读取,从而提升系统的运行效率,“之前的地址”可以指第一数据被写入地址的前一个地址。在一些实施例中,为了提高系统的容错率,从而增强系统的稳定性,“之前的地址”还可以指在第一数据被写入地址之前的一定范围内的地址。相应地,可以通过修改第二指令以修改第二DMA控制器130开始工作的时间,使得第二DMA控制器130在第二存储空间150中的数据读取地址指向第一数据被写入地址之前的其他地址上。
在一些实施例中,在一个传输过程中,处理器120从第一存储空间140读取和/或处理的第一数据与传输到第二存储空间150的第一数据可以为同一批数据。例如, 处理器120从第一存储空间140读取一批第一数据后,可以将其处理(例如,放大、编码等)后立即传输到第二存储空间150。在一些实施例中,在一个传输过程中,处理器120从第一存储空间140读取和/或处理的第一数据与传输到第二存储空间150的第一数据可以为不同批次的数据。例如,处理器120从第一存储空间140读取一批第一数据后,可以将其缓存后再传输到第二存储空间150。仅作为示例,处理器120内部可以具有写入、存储和读出功能。从第一存储空间140读取的一批第一数据可以以环形缓冲的方式存储在处理器120中,并被处理器120处理后以环形缓冲的方式读出并传输到第二存储空间150。由此,在一个传输过程中,处理器120可以将从第一存储空间140读取的当前批次的第一数据缓存,并将在此之前被缓存的其他批次的第一数据传输到第二存储空间150中。
图5是根据本申请另一些实施例所示的信号读写机制示意图。
参照图5,为了解决上述信号延时较长的问题,在一些实施例中,还可以基于第二存储空间150中当前的数据读取地址确定每批第一数据写入第二存储空间150的写入地址。
在一些实施例中,处理器120可以从第二DMA控制器130获取第二存储空间150中当前的数据读取地址,然后根据当前数据读取地址确定每一批第一数据写入第二存储空间150的写入地址。仅作为示例,若第二存储空间150中当前的数据读取地址为Area[x],当前待写入第二存储空间150的一批第一数据包含a个信号,则可以确定当前待写入第二存储空间150的数据在第二存储空间150中对应的写入地址为Area[x+1]-Area[x+a]。由此,也可以在每批第一数据被写入第二存储空间150时,第二DMA控制器130在第二存储空间150的数据读取地址指向第一数据被写入地址的前一地址,从而使信号写入第二存储空间150后立即被读取。例如,如图5所示,处理器120可以与第二DMA控制器130通信并获取到第二存储空间150中当前的数据读取地址为Area[4],此时,处理器120可以将存储在第一存储空间140的Area[1]-Area[4]的第一数据处理并传输到第二存储空间150的Area[5]-Area[8]中,使得第二DMA控制器130可以在下一信号时间读取存储在Area[5]中的数据,从而减少信号传输时延。
在一些实施例中,处理器120将每批第一数据写入第二存储空间150的时间可以大于0。由此,处理器120可以根据当前数据读取地址以及处理器120将每批第一数据写入第二存储空间150的时间确定每一批第一数据写入第二存储空间150的写入地址。仅作为示例,若第二存储空间150中当前的数据读取地址为Area[x],处理器120将每批第一数据写入第二存储空间150的时间为y,当前待写入第二存储空间150的一批第一数据包含a个信号,则可以确定当前待写入第二存储空间150的数据在第二存储空间150中对应的写入地址为Area[x+y+1]-Area[x+y+a]。
在一些实施例中,考虑到第二存储空间150中位于当前数据读取地址之后的存储区域可能存在尚未被第二DMA控制器130读取的第二数据,此时若直接将第一数据写入当前数据读取地址之后最近的存储区域中,可能会将未读取的数据覆盖掉,造成数据丢失,在一些实施例中,当第二存储空间150中当前的数据读取地址为Area[x],处理器120将每批第一数据写入第二存储空间150的时间为y,当前待写入第二存储空间150的一批第一数据包含a个信号时,可以确定当前待写入第二存储空间150的数据在第二存储空间150中对应的写入地址为Area[x+y+2]-Area[x+y+a+1]、Area[x+y+3]-Area[x+y+a+2]等等。
根据本说明书所述的方法,通过基于第二存储空间150中当前的数据读取地址确定每批第一数据写入第二存储空间150的写入地址,可以减小由于数据写入、搬运以及读取的时差问题造成的较大的数据传输时延,同时可以使数据传输时延稳定在指定的 数值范围内,避免或减小了数据传输时延的波动,提高了系统稳定性。
应当注意的是,上述有关信号传输控制系统100的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对信号传输控制系统100进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。例如,在一些实施例中,第一存储空间140和第二存储空间150可以是同一个存储设备的不同部分。又例如,在一些实施例中,处理器120可以采用其他具有数据处理功能的元件进行代替。再例如,在一些实施例中,处理器120在对第一存储空间140中的第一数据进行分批处理时,每一批数据可以具有不同的数量或采用不同的处理方式。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原 则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (16)

  1. 一种信号传输控制系统,其特征在于,包括:
    第一DMA控制器,用于将信号写入第一存储空间以形成第一数据;
    处理器,用于分批处理并传输所述第一数据到第二存储空间以形成第二数据;以及
    第二DMA控制器,用于从所述第二存储空间的地址中依次读出所述第二数据,其中,在每批第一数据被写入所述第二存储空间时,所述第二DMA控制器在所述第二存储空间的数据读取地址指向所述第一数据被写入地址之前的地址。
  2. 根据权利要求1所述的信号传输控制系统,其特征在于,所述第一DMA控制器以环形缓冲的方式将所述信号周期性地写入所述第一存储器空间。
  3. 根据权利要求2所述的信号传输控制系统,其特征在于,所述第一存储空间的地址和所述第二存储空间的地址具有映射关系,所述处理器根据所述映射关系将处理后的第一数据写入所述第二存储空间。
  4. 根据权利要求3所述的信号传输控制系统,其特征在于,所述第一存储空间的地址具有依次排列的两个或以上分段,所述两个或以上分段中的每个分段与所述分批处理的每个批次对应。
  5. 根据权利要求4所述的信号传输控制系统,其特征在于,所述第二存储空间的地址具有依次排列两个或以上分段,所述映射关系包括:
    所述第一存储空间的地址的当前分段与所述第二存储空间的地址的下一分段对应。
  6. 根据权利要求3所述的信号传输控制系统,其特征在于,所述处理器进一步用于:
    向所述第一DMA控制器发送第一指令,用于控制所述第一DMA控制器在第一时间将第一子数据写入所述第一存储空间;
    向所述第二DMA控制器发送第二指令,用于控制所述第二DMA控制器在第二时间读出所述第二存储空间中与所述第一子数据对应的第二子数据,其中,所述第二时间与所述第一时间的间隔不小于每批第一数据被写入第一存储空间的总时间。
  7. 根据权利要求6所述的信号传输控制系统,其特征在于,所述第二时间与所述第一时间的时间间隔大于或等于所述每批第一数据被写入所述第一存储空间的总时间与所述处理器处理所述每批第一数据的时间之和。
  8. 根据权利要求6所述的信号传输控制系统,其特征在于,所述第二指令用于控制所述第二DMA控制器相对于所述第一DMA控制器提前或推迟开始工作的时间。
  9. 根据权利要求2所述的信号传输控制系统,其特征在于,所述处理器用于:
    分别确定所述第一DMA控制器与所述第二DMA控制器开始工作的时间;
    基于所述第一DMA控制器与所述第二DMA控制器开始工作的时间,确定所述第一存储空间的地址和所述第二存储空间的地址之间的映射关系;以及
    根据所述映射关系将处理后的第一数据写入所述第二存储空间。
  10. 根据权利要求2所述的信号传输控制系统,其特征在于,在所述每批第一数据被写入所述第二存储空间之前,所述处理器读取所述第二存储空间中当前的数据读取地址,并根据所述当前的数据读取地址,确定写入所述每批第一数据的写入地址。
  11. 根据权利要求1所述的信号传输控制系统,其特征在于,所述信号包括麦克风获取的声音信号,所述第二DMA控制器将依次读出的所述第二数据传输到扬声器。
  12. 根据权利要求11所述的信号传输控制系统,其特征在于,所述分批处理所述第一数据包括对所述第一数据进行A/D转换、放大、编码、译码、打包、缓存等操作中的一个或多个。
  13. 根据权利要求1所述的信号传输控制系统,其特征在于,所述信号包括图像获取设备获取的图像,所述第二DMA控制器将依次读出的所述第二数据传输到显示器。
  14. 根据权利要求13所述的信号传输控制系统,其特征在于,所述分批处理所述第一数据包括对所述第一数据进行滤波、变换、编码、分割、识别、缓存等操作中的一个或多个。
  15. 根据权利要求1所述的信号传输控制系统,其特征在于,所述第二DMA控制器以环形缓冲的方式从所述第二存储空间的地址中依次读出所述第二数据。
  16. 根据权利要求1所述的信号传输控制系统,其特征在于,所述第二DMA控制器在所述第二存储空间的数据读取地址与所述第一数据被写入地址之间的距离不超过每批第一数据的长度。
CN202280040710.XA 2022-05-18 2022-05-18 一种信号传输控制系统 Pending CN117529704A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/093686 WO2023220996A1 (zh) 2022-05-18 2022-05-18 一种信号传输控制系统

Publications (1)

Publication Number Publication Date
CN117529704A true CN117529704A (zh) 2024-02-06

Family

ID=88834244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280040710.XA Pending CN117529704A (zh) 2022-05-18 2022-05-18 一种信号传输控制系统

Country Status (3)

Country Link
US (1) US20240176753A1 (zh)
CN (1) CN117529704A (zh)
WO (1) WO2023220996A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493755B (zh) * 2009-02-27 2010-08-04 武汉中岩科技有限公司 一种同时读写存储器的方法及数据采集装置
CN111897751B (zh) * 2017-01-26 2024-10-18 华为技术有限公司 一种数据传输的方法、装置、设备和系统
KR20200113480A (ko) * 2019-03-25 2020-10-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법
JP6997235B2 (ja) * 2020-02-19 2022-01-17 株式会社日立製作所 データ転送システム
CN112506437A (zh) * 2020-12-10 2021-03-16 上海阵量智能科技有限公司 芯片、数据搬移方法和电子设备

Also Published As

Publication number Publication date
WO2023220996A1 (zh) 2023-11-23
US20240176753A1 (en) 2024-05-30

Similar Documents

Publication Publication Date Title
US11587560B2 (en) Voice interaction method, device, apparatus and server
JP2019185011A (ja) アプリケーションプログラムをウェイクアップする処理方法、装置及び記憶媒体
WO2019061270A1 (zh) 数据缓存装置及控制方法、数据处理芯片、数据处理系统
WO2018232736A1 (zh) 内存访问技术及计算机系统
CN109582598B (zh) 一种基于外部存储实现高效查找哈希表的预处理方法
US20220091780A1 (en) Memory access method and intelligent processing apparatus
WO2018041074A1 (zh) 一种内存设备的访问方法、装置和系统
JP2020529166A (ja) パケット処理
CN116225990A (zh) 基于fpga的多通道ddr读写仲裁装置
CN107943727B (zh) 一种高效dma控制器
US20190018599A1 (en) Information processing apparatus and information processing system
US7598891B2 (en) Data development device and data development method
AU5248300A (en) Data transfer apparatus, data transfer system, and data transfer method with double buffering
CN113377288B (zh) 硬件队列管理系统、方法、固态硬盘控制器及固态硬盘
CN117529704A (zh) 一种信号传输控制系统
CN111930510B (zh) 电子设备和数据处理方法
CN117130956A (zh) 一种信号传输控制系统
CN110413540B (zh) 一种fpga数据缓存的方法、系统、设备及存储介质
CN118012797A (zh) 总线仲裁方法、总线、电子系统和计算机存储介质
CN117312201A (zh) 一种数据传输方法、装置及加速器设备、主机和存储介质
TW202215261A (zh) 與儲存裝置相關的傳輸控制電路、資料傳輸系統及操作資料傳輸系統的方法
US20010014130A1 (en) Method for solving intermission of streaming data and associated device thereof
CN111435332B (zh) 数据处理方法及设备
WO2021082877A1 (zh) 访问固态硬盘的方法及装置
CN113792179A (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