CN109669879A - 配置直接存储器存取控制器的方法及装置 - Google Patents
配置直接存储器存取控制器的方法及装置 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache 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所述的装置,其特征在于,所述共享内存为不可缓存的存储区域。
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)
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 | 腾讯科技(深圳)有限公司 | 一种流计算系统中的配置方法、装置和系统 |
-
2017
- 2017-10-17 CN CN201710977465.6A patent/CN109669879A/zh active Pending
Patent Citations (6)
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 |