双缓冲装置和双缓冲方法制造方法及图纸

技术编号:2835116 阅读:197 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种双缓冲装置和双缓冲方法,用以传送一笔数据至一第二装置。所述的双缓冲装置包含一控制器控制该笔数据的存取。一第一缓冲器和第二缓冲器耦接控制器,用以暂存该笔资数据。一总线耦接控制器以传送该笔数据。一软件模块通过总线提供该笔数据至这些缓冲器。在一第一模式时,软件模块将该笔数据填入所述的第一缓冲器,控制器接着执行一同步程序,从第一缓冲器将该笔数据复制至第二缓冲器。最后控制器从第二缓冲器将该笔数据传送至该第二装置。在一第二模式时,软件模块将该笔数据同时填入第一缓冲器和第二缓冲器,而控制器从第二缓冲器将该笔数据传送至第二装置。本发明专利技术的架构减少了对系统资源的没有必要的损耗。

【技术实现步骤摘要】

本专利技术是有关于双缓冲技术,尤其是有关于以随机存取存储器实现的双 缓冲装置和双缓冲操作方法。
技术介绍
双缓冲(double buffering)是一种在不同处理速度的装置之间传输数据的 技术。图1为一现有技术的双缓冲架构图,包含一第一缓冲器120和一第二缓 冲器130。 一软件模块HO通过所述的第一缓冲器120和第二缓冲器130提供 数据给一客端模块140。当所述的客端模块140从第二缓冲器130中读取一笔 数据,所述的软件模块110将下一笔数据写入第一缓冲器120。同样的,当所 述的客端模块140读取第一缓冲器120中的数据时,所述的软件模块110同 时将下一笔数据写入所述的第二缓冲器130。这个架构又称为乒乓型双缓冲 (ping-pong)。在某些情况下,数据变动率不高,因此缓冲器不需要频繁的更新。然而 在乒乓型架构下,不论数据是否有异动,每个缓冲器都不断地进行更新。如 此对系统资源是一种没有必要的损耗,所以需要一种改良式的架构。
技术实现思路
本专利技术提供一种双缓冲装置和操作方法,用以传送一笔数据至一第二装 置。该双缓冲装置包含一控制器控制所述的这笔数据的存取。 一第一缓沖器 和第二缓冲器耦接所述的控制器,用以暂存所述的这笔数据。 一总线耦接所 述的控制器以传送所述的这笔数据。 一软件模块通过所述的总线提供所述的这笔数据至所述的这些缓冲器。在一第一模式时,所述的软件模块将所述的 这笔数据填入所述的第一缓冲器,所述的控制器接着执行一同步程序,从所 述的第一缓冲器将所述的这笔数据复制至所述的第二缓冲器。最后所述的控 制器从所述的第二缓冲器将所述的这笔数据传送至所述的第二装置。在一第 二模式时,所述的软件模块将所述的这笔数据同时填入所述的第一缓冲器和 所述的第二缓冲器,而所述的控制器从所述的第二缓冲器将所述的这笔数据 传送至所述的第二装置。其中所述的这笔数据包含复数位,所以所述的控制器执行所述的同步程 序的步骤如下。首先设定一旗标值为一第一值,以表示所述的第一缓冲器和 所述的第二缓冲器处于忙碌状态,接着从所述的第一缓沖器中逐个位地读出 所述的这笔数据。最后将所述的这笔数据逐个位地写入所述的第二缓冲器。 当所述的这笔数据复制完成时,设定所述的旗标值为一第二值。当所述的第二装置发出一数据存取要求,所述的控制器判断所述的同步 程序是否正在进行中。如果所述的同步程序正在迸行中,所述的控制器暂停 所述的同步程序,从所述的第二缓冲器复制所述的这笔数据至所述的第二装 置,在复制完成后恢复所述的同步程序。相对的,如果所述的同步程序并未 在进行中,所述的控制器将所述的旗标值设为所述的第一值,并将所述的第 二缓冲器中的所述的这笔数据复制至所述的第二装置,传送完成后再将所述 的旗标值回复所述的第二值。在所述的第一模式中,所述的软件模块对所述的控制器发出一第一写入 要求,要求对所述的第一缓冲器进行写入。所述的控制器判断所述的旗标值 是否为所述的第一值。如果所述的旗标值为所述的第一值,所述的控制器不 处理所述的第一写入要求,直到所述的旗标值变为所述的第二值。如果所述 的旗标值为所述的第二值,所述的控制器将所述的这笔数据填入所述的第一 缓冲器。在所述的第二模式中,所述的软件模块对所述的控制器发出一第二写入要求,要求对所述的第一和第二缓冲器进行写入。所述的控制器判断所述的 旗标值是否为所述的第一值,如果所述的旗标值为所述的第一值,所述的控 制器不处理所述的第二写入要求,直到所述的旗标值变为所述的第二值。如 果所述的旗标值为所述的第二值,所述的控制器将所述的这笔数据填入所述 的第一和第二缓冲器。同现有技术相比,本专利技术的架构减少了对系统资源的没有必要的损耗。附图说明图1为现有技术的双缓冲架构;图2a和图2b为本专利技术的双缓冲架构;图3为单一存储器架构的缓冲器同步时序图4为本专利技术实施例的一的双缓冲装置;图5为在第二模式下的缓冲器写入时序图6为双存储器架构的缓冲器同步时序图;以及图7为双缓冲操作方法的流程图。附图标号110 软件模块;130~第二缓冲器;400 双缓冲装置;404 总线时钟;410 控制器;120 第一缓冲器; 140 客端模块; 402~总线; 406 装置时钟;420 切换开关。具体实施例方式为让本专利技术的上述和其他目的、特征、和优点能更明显易懂,下文特举 出较佳实施例,并配合附图,作详细说明如下-图2a和图2b为本专利技术的双缓冲架构。在图2a中, 一双缓冲装置包含四个元件,软件模块no,第一缓冲器120,第二缓沖器130和客端模块140。 在第一模式中,所述的软件模块110只对所述的第一缓冲器120写入数据, 而所述的客端模块140只从第二缓冲器130读取数据。写入第一缓冲器120 的数据,会自动地同步至第二缓冲器130中。因此软件模块UO不需要反复 的对第二缓冲器130进行同步作业,借此节省了系统的计算资源。图2b为第 二模式的运作。所述的软件模块UO直接对第二缓冲器130做数据写入,使 得所述的数据可以直接被客端模块140读取。在第二缓沖器130被写入数据 的同时,第一缓冲器120也从第二缓冲器130同步获取所述的数据。从另一 观点来看,第二模式下所述的软件模块等于是同时对所述的第一缓冲器120 和第二缓冲器130进入数据写入。借着第二模式的做法,在第二模式切换回第一模式的时候,所述的软件 模块110不需要再写入全部数据至每一缓冲器中,只有发生变动的部份需要 更新。第一缓冲器120和第二缓冲器130可以由暂存器来实现,然而随着容 量需求的增加,使用随机存取存储器是较佳的办法。在使用暂存器的时候, 第一缓冲器120和第二缓冲器130的同步只需要一个时钟周期。而使用随机 存取存储器的时候,数据同步是逐个位进行的,因此需要复数个时钟周期来 完成。图3为单一存储器架构的缓冲器同步时序图。有N个位要从第一缓冲器 120复制到第二缓沖器130。当一触发信号RAMJX)PY—START启动后,一 计数器RAM—COPY—COUNT开始计算位复制的进度。每一位的数据在一命令 信号RAM—WRITE—SEL和一地址信号RAM_ADDR的控制下依序从第一缓冲 器120写入第二缓冲器130。一旗标值(busy flag)BUS—ACK—READY在同步期 间是处于低电位状态,用以代表第一缓冲器120和第二缓冲器130处于使用 中,不可被其他装置存取。图4为本专利技术实施例的一的双缓冲装置400。该双缓冲装置400耦接一客 端模块140,而数据由图2a和图2b所述的双缓冲装置提供。 一控制器410在第一模式和第二模式之间切换,以控制第一缓冲器120和第二缓冲器130的 运作。在第一模式,软件模块110通过总线402对第一缓冲器120进行数据 写入,而客端模块140通过控制器410存取第二缓冲器130。第一缓冲器120 中有异动更新的数据,被定期的同步至第二缓冲器130,而同步的动作也可以 是被动的进行。在第二模式中,第一缓冲器120和第二缓冲器130同时被软 件模块110写入数据,因此不需要再另外进行数据同步。先前说过,如果第 一缓冲器120和第二缓冲器130是用RAM实现,则数据同步需要耗费复数个 时钟周期。当第一缓冲器120对第二缓本文档来自技高网...

【技术保护点】
一种双缓冲方法,供一第一装置传送一笔数据至一第二装置,其中所述的第一装置耦接至一第一缓冲器和一第二缓冲器,所述的双缓冲方法包含:在一第一模式:将所述的这笔数据填入所述的第一缓冲器;执行一同步程序,从所述的第一缓冲器将 所述的这笔数据复制至所述的第二缓冲器;以及从所述的第二缓冲器将所述的这笔数据传送至所述的第二装置;在一第二模式:将所述的这笔数据同时填入所述的第一缓冲器和所述的第二缓冲器;以及从所述的第二缓冲器将所述的这笔数 据传送至所述的第二装置。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:林孟亭吴正鼎
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1