[发明专利]一种先进先出缓存器及其读写数据的方法有效
申请号: | 201310451428.3 | 申请日: | 2013-09-27 |
公开(公告)号: | CN103488597B | 公开(公告)日: | 2017-02-22 |
发明(设计)人: | 段长江;樊建平;聂泽东 | 申请(专利权)人: | 深圳先进技术研究院 |
主分类号: | G06F13/38 | 分类号: | G06F13/38 |
代理公司: | 深圳市科进知识产权代理事务所(普通合伙)44316 | 代理人: | 沈祖锋,郝明琴 |
地址: | 518055 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 先进 缓存 及其 读写 数据 方法 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种先进先出缓存器及其读写数据的方法。
背景技术
当数据在具有不同传输能力的设备之间进行传输时,数据缓存器用来暂存这些数据。例如,电话线、计算机和串口、计算机的数据总线等,其传输速度均不相同,缓存器在每种部件之间平衡数据流,而允许它们以合适的速率传输数据。
数据缓存器可以分为输入缓存器和输出缓存器两种。输入缓存器的作用是将外设送来的数据暂时存放,以便处理器将它取走;输出缓存器的作用是用来暂时存放处理器送往外设的数据。有了数据缓存器,就可以使高速工作的CPU与慢速工作的外设起协调和缓存作用,实现数据传送的同步。
先进先出数据缓存器与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。
在系统设计中,先进先出数据缓存器被广泛使用以增加数据传输率、处理大量数据流、匹配具有不同传输率的系统,从而提高了系统性能。先进先出数据缓存器一般用于不同时钟域之间的数据传输,同时也可以作为不同宽度数据之间的接口。在嵌入式系统中,很多部件都使用了先进先出缓存器,像UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器),SPI(Serial Peripheral Interface,同步串行外设接口)等。
现有的先进先出缓存器当处于满状态时,就不能继续往里面写入新的数据;如果想要继续往里面写入新的数据,就必须先进行读操作使先进先出缓存器不处于满状态,而读出的数据有时是没有实际用途的,读操作只是为了使先进先出缓存器腾出存储空间来存储新的数据。
如图3所示:在双向通信中,当CPU想读取外设中的数据时,一般CPU首先会发送读数据命令通知外设,然后再进行读数据操作。当CPU发送读数据命令通知外设时,CPU将读数据命令写入到输出先进先出缓存器中,然后通过传输模块输出给外设,同时,传输模块接收输入的数据然后写入到输入先进先出缓存器,不过这些数据并不是外设发送给CPU的有用数据,CPU也不关心这些数据。但是接下来当CPU对外设进行读数据操作时,外设传输的有效数据须要存储到输入先进先出缓存器中,所以输入先进先出缓存器中之前接收到的没有实际用途的数据必须及时被读走,否则当输入先进先出缓存器存满数据后,后面外设输出的有用数据不能存储到输入先进先出缓存器里面,造成有用数据的丢失。
这样,当CPU对外设进行大量读数据操作时,往往会首先发送读数据命令通知外设,然后再进行读数据操作。为了避免在读数据操作时外设发送给CPU的有用数据不能写入到输入先进先出缓存器中,CPU需要在发送读数据命令通知外设后及时将输入先进先出缓存器里面写入的没有实际用途的数据读走。
这样,每次CPU发送读数据命令通知外设后,都需要将输入先进先出缓存器里面没有实际用途的数据读走。这些读输入先进先出缓存器操作将占用CPU更多的操作时间,增加了CPU的负担,降低了CPU的效率。
目前的先进先出缓存器的工作原理如图4所示:先进先出缓存器复位后,写操作地址和读操作地址都为0,先进先出缓存器处于空状态,此时不能对先进先出缓存器进行读操作,只能进行写操作;当不处于满状态时,每写一个数据,写操作地址自动加1;当不处于空状态时,每读取一个数据,读操作地址自动加1;当写操作地址和读操作地址相等时,如果是写操作引起的,则先进先出缓存器处于满状态,相反,如果是读操作引起的,则先进先出缓存器处于空状态。
当先进先出缓存器不处于满状态时,写入的数据将存储到由写操作地址选择的存储单元中;而当先进先出缓存器处于满状态时,此时不允许往先进先出缓存器写入新的数据,只允许从先进先出缓存器读取数据,如果想继续往先进先出缓存器写入新的数据,则必须首先对先进先出缓存器进行读操作使其不处于满状态,这样先进先出缓存器就会有新的存储空间来存储数据。当先进先出缓存器不处于空状态时,读取的数据则由读操作地址选择的寄存器输出。
发明内容
针对现有的先进先出缓存器当处于满状态时,就不能继续向先进先出缓存器里写入新的数据的问题,本发明实施例提供一种先进先出缓存器读写数据的方法,当先进先出缓存器处于满状态时,可继续往里面写入新的数据,其中之前写入的数据会自动被其之后写入的数据覆盖,从而提高了CPU的效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳先进技术研究院,未经深圳先进技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310451428.3/2.html,转载请声明来源钻瓜专利网。