CN109669879A - 配置直接存储器存取控制器的方法及装置 - Google Patents

配置直接存储器存取控制器的方法及装置 Download PDF

Info

Publication number
CN109669879A
CN109669879A CN201710977465.6A CN201710977465A CN109669879A CN 109669879 A CN109669879 A CN 109669879A CN 201710977465 A CN201710977465 A CN 201710977465A CN 109669879 A CN109669879 A CN 109669879A
Authority
CN
China
Prior art keywords
dma controller
configuration information
instruction
dma
shared drive
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
CN201710977465.6A
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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai 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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN201710977465.6A priority Critical patent/CN109669879A/zh
Publication of CN109669879A publication Critical patent/CN109669879A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)

Landscapes

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

Abstract

本发明提供一种配置直接存储器存取控制器的方法及装置。所述方法包括:将直接存储器存取控制器的配置信息写入共享内存;在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器,以使所述直接存储器存取控制器从所述共享内存中读取所述配置信息。本发明能够确保处理器与直接存储器存取控制器的访问存储空间一致,避免数据不同步造成的操作错误。

Description

配置直接存储器存取控制器的方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种配置直接存储器存取控制器的方法及装置。
背景技术
CPU指令执行流程分成:获取指令、解析指令、执行指令,现代大多数计算机为了提高性能引入了流水线技术,CPU在取下一条指令的同时译码和执行其他指令,从而提升CPU执行指令的速度。但是指令的流水重叠操作使当前指令对数据使用时间提前了,如果此时前面指令的执行结果还没有完成,可能会造成系统发生紊乱。
例如,ARM处理器对DMA(Direct Memory Access,直接存储器存取)控制器的操作就存在上述问题,DMA数据传输方式能够不经过CPU的处理就直接在存储器或输入输出设备之间进行数据的传输,ARM处理器初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成,而如果指令的流水重叠操作使处理器激活DMA的指令先于初始化DMA的指令的执行,就会造成DMA控制器与ARM处理器访问存储空间的内容不一致,造成操作错误。
发明内容
本发明提供的配置直接存储器存取控制器的方法及装置,能够确保处理器与直接存储器存取控制器的访问存储空间一致,避免数据不同步造成的操作错误。
第一方面,本发明提供一种配置直接存储器存取控制器的方法,所述方法包括:
将直接存储器存取控制器的配置信息写入共享内存;
在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器,以使所述直接存储器存取控制器从所述共享内存中读取所述配置信息。
可选地,所述在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器包括:通过在激活所述直接存储器存取控制器的指令之前设置内存隔离指令,使得在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器。
可选地,所述共享内存为不可缓存的存储区域。
第二方面,本发明提供一种配置直接存储器存取控制器的装置,所述装置包括:
写入单元,用于将直接存储器存取控制器的配置信息写入共享内存;
激活单元,用于在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器,以使所述直接存储器存取控制器从所述共享内存中读取所述配置信息。
可选地,通过在激活所述直接存储器存取控制器的指令之前设置内存隔离指令,使得所述激活单元在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器。
可选地,所述共享内存为不可缓存的存储区域。
本发明实施例提供的配置直接存储器存取控制器的方法及装置,在内存隔离指令之前的写入直接存储器存取控制器配置信息的指令执行完之后,再激活直接存储器存取控制器。与现有技术相比,本发明通过在激活直接存储器存取控制器的指令之前,插入内存隔离指令,确保处理器与直接存储器存取控制器的访问存储空间一致。
附图说明
图1为ARM处理器配置DMA控制器的流程图;
图2为ARM处理器配置DMA控制器的指令执行的示意图;
图3为本发明一实施例配置直接存储器存取控制器的方法的流程图;
图4为本发明一实施例配置直接存储器存取控制器的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以ARM处理器对DMA控制器进行配置为例来进行具体说明,正常情况下,ARM处理器与DMA硬件控制器的流程如图1所示,步骤如下:
步骤一、ARM处理器向共享内存写入DMA控制器的配置信息;
步骤二、通过写寄存器,激活DMA控制器;
步骤三、DMA控制器从共享内存读取配置信息。
ARM处理器与DMA控制器的共享内存为不可缓存的存储空间。因为ARM处理器的Cache(高速缓冲存储器)技术会造成同一地址单元的数据可能在系统中存在多个副本,如果处理器将DMA控制器的配置信息写入到高速缓冲存储器中,由于DMA操作是直接访问存储空间的,可能会访问到错误的地址,造成未知地址的数据的破坏或者产生非法地址访问,因此需要处理器将DMA控制器的配置信息写入到不可缓存的(uncachable)存储区域。但是这样会增加ARM处理器访问这段内存空间的时延,增加指令执行周期,造成ARM处理器访问DMA控制器的寄存器比访问共享内存的效率高,最终导致DMA控制器激活指令先于DMA控制器配置指令的执行。
指令执行示意图如图2所示,第一条指令ldr r2,[r11]为配置指令,用于写入DMA控制器的配置信息,第二条指令move r0,R6为激活指令,用于激活DMA控制器。第一条指令ldr需要进行uncachable数据访问,导致该指令的执行需要好几个时钟周期,ARM处理器识别出这两条指令并没有依赖关系,于是就先执行第二条指令move,而不是等待第一条指令ldr的执行完成。这样DMA控制器就读取了正在配置信息。但是这种推测读取或乱序执行并不是所期望的,因为可能使程序不按预期执行。
本发明提供一种配置直接存储器存取控制器的方法,如图3所示,所述方法包括:
S11、将直接存储器存取控制器的配置信息写入共享内存,所述共享内存为不可缓存的存储区域;
S12、在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器,以使所述直接存储器存取控制器从所述共享内存中读取所述配置信息。
可选地,所述在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器包括:通过在激活所述直接存储器存取控制器的指令之前设置内存隔离指令,使得在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器。
本发明通过在DMA处理器激活指令之前插入内存隔离指令,如DSB(DataSynchronous Isolation,数据同步隔离)指令,可以保证只有当所有在该指令前面的存储器访问操作都执行完毕后,才执行在它后面的指令,即任何指令都要等待存储器访问操作,从而使两个硬件或多个硬件之间的数据同步。对于本发明,只有在内存隔离指令之前的配置指令执行完毕后,才执行DMA处理器的激活指令,能够避免由于流水线技术导致的DMA加速器存储空间访问不一致。
本发明实施例提供的配置直接存储器存取控制器的方法,在内存隔离指令之前的写入直接存储器存取控制器配置信息的指令执行完之后,再激活直接存储器存取控制器。与现有技术相比,本发明通过在激活直接存储器存取控制器的指令之前,插入内存隔离指令,确保处理器与直接存储器存取控制器的访问存储空间一致。
本发明实施例还提供一种配置直接存储器存取控制器的装置,如图4所示,所述装置包括:
写入单元11,用于将直接存储器存取控制器的配置信息写入共享内存;
激活单元12,用于在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器,以使所述直接存储器存取控制器从所述共享内存中读取所述配置信息。
可选地,通过在激活所述直接存储器存取控制器的指令之前设置内存隔离指令,使得所述激活单元在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器。
可选地,所述共享内存为不可缓存的存储区域。
本发明实施例提供的配置直接存储器存取控制器的装置,在内存隔离指令之前的写入直接存储器存取控制器配置信息的指令执行完之后,再激活直接存储器存取控制器。与现有技术相比,本发明通过在激活直接存储器存取控制器的指令之前,插入内存隔离指令,确保处理器与直接存储器存取控制器的访问存储空间一致。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (6)

1.一种配置直接存储器存取控制器的方法,其特征在于,所述方法包括:
将直接存储器存取控制器的配置信息写入共享内存;
在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器,以使所述直接存储器存取控制器从所述共享内存中读取所述配置信息。
2.根据权利要求1所述的方法,其特征在于,所述在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器包括:通过在激活所述直接存储器存取控制器的指令之前设置内存隔离指令,使得在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器。
3.根据权利要求1所述的方法,其特征在于,所述共享内存为不可缓存的存储区域。
4.一种配置直接存储器存取控制器的装置,其特征在于,所述装置包括:
写入单元,用于将直接存储器存取控制器的配置信息写入共享内存;
激活单元,用于在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器,以使所述直接存储器存取控制器从所述共享内存中读取所述配置信息。
5.根据权利要求4所述的装置,其特征在于,通过在激活所述直接存储器存取控制器的指令之前设置内存隔离指令,使得所述激活单元在执行完所述配置信息的写入操作之后,激活所述直接存储器存取控制器。
6.根据权利要求4所述的装置,其特征在于,所述共享内存为不可缓存的存储区域。
CN201710977465.6A 2017-10-17 2017-10-17 配置直接存储器存取控制器的方法及装置 Pending CN109669879A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710977465.6A CN109669879A (zh) 2017-10-17 2017-10-17 配置直接存储器存取控制器的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710977465.6A CN109669879A (zh) 2017-10-17 2017-10-17 配置直接存储器存取控制器的方法及装置

Publications (1)

Publication Number Publication Date
CN109669879A true CN109669879A (zh) 2019-04-23

Family

ID=66141416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710977465.6A Pending CN109669879A (zh) 2017-10-17 2017-10-17 配置直接存储器存取控制器的方法及装置

Country Status (1)

Country Link
CN (1) CN109669879A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091459A1 (en) * 2003-10-23 2005-04-28 Nhon Quach Flexible mechanism for enforcing coherency among caching structures
CN101676887A (zh) * 2008-08-15 2010-03-24 北京北大众志微系统科技有限责任公司 一种基于ahb总线结构的总线监听方法及装置
CN102866971A (zh) * 2012-08-28 2013-01-09 华为技术有限公司 传输数据的装置、系统及方法
US20140025891A1 (en) * 2012-07-20 2014-01-23 Joel James McCormack Relaxed coherency between different caches
CN104063355A (zh) * 2013-03-21 2014-09-24 腾讯科技(北京)有限公司 对服务器集群进行配置的方法及配置中心服务器
CN105320515A (zh) * 2014-07-31 2016-02-10 腾讯科技(深圳)有限公司 一种流计算系统中的配置方法、装置和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091459A1 (en) * 2003-10-23 2005-04-28 Nhon Quach Flexible mechanism for enforcing coherency among caching structures
CN101676887A (zh) * 2008-08-15 2010-03-24 北京北大众志微系统科技有限责任公司 一种基于ahb总线结构的总线监听方法及装置
US20140025891A1 (en) * 2012-07-20 2014-01-23 Joel James McCormack Relaxed coherency between different caches
CN102866971A (zh) * 2012-08-28 2013-01-09 华为技术有限公司 传输数据的装置、系统及方法
CN104063355A (zh) * 2013-03-21 2014-09-24 腾讯科技(北京)有限公司 对服务器集群进行配置的方法及配置中心服务器
CN105320515A (zh) * 2014-07-31 2016-02-10 腾讯科技(深圳)有限公司 一种流计算系统中的配置方法、装置和系统

Similar Documents

Publication Publication Date Title
US10282132B2 (en) Methods and systems for processing PRP/SGL entries
US7533198B2 (en) Memory controller and method for handling DMA operations during a page copy
US6212625B1 (en) General purpose dynamically programmable state engine for executing finite state machines
US20160188780A1 (en) Implementing system irritator accelerator fpga unit (afu) residing behind a coherent attached processors interface (capi) unit
US9317445B2 (en) Rapid memory buffer write storage system and method
US20180341430A1 (en) Methods for Scheduling and Executing Commands in a Flash Memory and Apparatuses Using the Same
KR20150099562A (ko) 영속 저장 장치에서 인접 데이터 블록과 비인접 세트의 논리 어드레스 블록 간에 판독 및 기입
US11216282B2 (en) Multi-die and multi-core computing platform and booting method for the same
US20130151795A1 (en) Apparatus and method for controlling memory
CN106682021B (zh) 数据库迁移方法及装置
CN105389268B (zh) 资料储存系统及其运作方法
US6061772A (en) Split write data processing mechanism for memory controllers utilizing inactive periods during write data processing for other transactions
US8397005B2 (en) Masked register write method and apparatus
CN109614119A (zh) 一种烧录方法、装置、电子设备及介质
US8990741B2 (en) Circuit design support device, circuit design support method and program
CN109669879A (zh) 配置直接存储器存取控制器的方法及装置
CN110825326A (zh) 提升ssd随机读性能的方法、装置、计算机设备及存储介质
US20190362261A1 (en) Machine learning device and machine learning system using the same
CN113031863B (zh) Ssd命令相关性管理方法、装置、计算机设备及存储介质
US8316192B2 (en) Multiple-port memory systems and methods
CN112286863A (zh) 处理暨存储电路
CN109284231B (zh) 内存访问请求的处理方法、装置及内存控制器
CN103186474B (zh) 对处理器的高速缓存进行清除的方法以及该处理器
CN112817534B (zh) 提高ssd读写性能的方法、装置、计算机设备及存储介质
JP2004343158A (ja) コンフィグレーション装置、方法及びプログラム

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190423