接口电路和数据处理装置与方法.pdf

上传人:a1 文档编号:652132 上传时间:2018-03-01 格式:PDF 页数:49 大小:1.42MB
返回 下载 相关 举报
摘要
申请专利号:

CN96193766.1

申请日:

1996.05.07

公开号:

CN1183842A

公开日:

1998.06.03

当前法律状态:

撤回

有效性:

无权

法律详情:

专利申请的视为撤回公告日:1998.6.3||||||公开

IPC分类号:

G06F3/06

主分类号:

G06F3/06

申请人:

软体未来设计股份有限公司;

发明人:

庄司涉; 田渕大介; 中岛一郎

地址:

日本东京

优先权:

1995.05.09 JP 134683/95

专利代理机构:

永新专利商标代理有限公司

代理人:

蹇炜

PDF下载: PDF下载
内容摘要

从外部存储设备(21)中顺序读出将由CPU(11)进行处理的数据,然后将数据交替传输到第一和第二存储器(24,25)中。CPU(11)交替存取第一和第二存储器(24,25)中的一个存储器,对预先读入到存储器中的数据进行处理。

权利要求书

1: 一种数据处理装置,包括: 外部存储设备(21); 第一和第二存储器(24,25); 用于交替存取所述第一和第二存储器以处理数据的数据处理单元(11); 和 与所述第一、第二存储器以及与所述外部存储设备连接的用于根据从所述数 据处理单元得到的指令在所述第一和第二存储器中的一个不是正在被所述数据处 理单元存取的存储器与所述外部存储设备之间传输数据的数据传输单元(26)。
2: 根据权利要求1所述的数据处理装置,其中当所述数据处理单元发出从 所述外部存储设备中读取数据的指令时,所述数据传输单元就根据所述数据处理 单元发出的指令从外部存储设备读出将被所述数据处理单元处理的数据并将所述 数据预先储存到所述第一和第二存储器中的一个不是正在被所述数据处理单元存 取的存储器中。
3: 根据权利要求1所述的数据处理装置,其中当所述数据处理单元发出向 所述外部存储设备写入数据的指令时,所述数据传输单元就根据所述数据处理单 元发出的指令从所述第一和第二存储器中的一个不是正在被所述数据处理单元存 取的存储器中读出被处理过的数据,将所述被处理过的数据传输到所述外部存储 设备中并预先形成一个可以被所述数据处理单元写入数据的区域。
4: 根据权利要求1到3中的任何一条权利要求所述的数据处理装置,其中 所述数据传输单元包括: 用于与所述外部存储设备交换数据的第一传输单元(36); 用于与所述第一和第二存储器交换数据的第二传输单元(38); 用于在所述第一和第二传输单元之间进行数据传输的缓冲存储器(37)。
5: 根据权利要求1到3中的任何一条权利要求所述的数据处理装置,其中 所述数据传输单元包括: 用于与所述外部存储设备(112)交换数据的第一传输单元(124,1 48); 用于与所述第一和第二存储器(RAM A,RAM B)交换数据的第二 传输单元(132); 用于调整所述第一和第二传输单元之间的传输率差别的时间调节电路(13 0)。
6: 一种接口电路,包括: 与外部存储设备连接的接口(31); 第一和第二存储器(24,25); 与用于交替存取所述第一和第二存储器以处理数据的数据处理单元连接的接 口(32); 与所述第一和第二存储器以及与所述外部存储设备连接的用于根据从所述数 据处理单元得到的指令在所述第一和第二存储器中的一个不是正在被所述数据处 理单元存取的存储器与所述外部存储设备之间传输数据的数据传输单元(26)。
7: 一种用于在含有CPU(102)、外部存储器设备(112)和内部 存储器(104)的计算机系统传输数据的系统,它包括: 第一存储器设备(RAM A); 第二存储器设备(RAM B); 与所述第一存储器设备连接的用于决定储存在所述第一存储器设备中的数据 量的第一计数器(136); 与所述第二存储器设备连接的用于决定储存在所述第二存储器设备中的数据 量的第二计数器(138); 用于当储存在所述第一存储器设备中的数据量超过第一预定值时产生一个第 一信号的单元(152); 用于当储存在所述第二存储器设备中的数据量超过第二预定值时产生一个第 二信号的单元(152); 用于与所述外部存储器设备互通数据的第一电路; 用于与所述内部存储器互通数据的第二电路; 用于根据所述第一信号将所述第一存储器设备交替连接到所述第一电路和所 述第二电路中的一个电路上以及根据所述第二信号将所述第二存储器设备交替连 接到所述第一电路和所述第二电路中的一个电路上的数据切换电路(134)。
8: 根据权利要求7所述的系统,其中所述外部存储器设备是一个硬盘,其 中所述第一电路还包括用于控制所述硬盘的工作的控制器(122)。
9: 根据权利要求8所述的系统还包括一个连接在所述第一电路和所述数据 切换电路之间的用于调整所述硬盘与所述第一和所述第二存储器设备之间的传输 率差别的时间调节电路(130)。
10: 根据权利要求7所述的系统,其中所述第二电路包括用于使所述CP U在所述内部存储器与所述第一和所述第二存储器之间传输数据的单元。
11: 根据权利要求10所述的系统,其中所述使CPU传输数据的单元中 含有用于产生控制信号的单元,所述系统还包括一个响应所述控制信号用于在所 述内部存储器与所述第一和所述第二存储器设备之间传输数据的软件例行程序。
12: 根据权利要求7所述的系统,  其中所述第一和所述第二存储器设备是 静态随机存取存储器设备。
13: 一种用于在具有CPU(102)和至少一应用程序在其中执行的计 算机的内部存储器(104)与外部存储器设备(112)之间传输数据的系统, 它包括: 第一存储器设备(RAM A); 第二存储器设备(RAM B); 用于与所述外部存储器设备互通数据的第一电路; 用于根据所述第一和所述第二存储器设备以及所述第一电路的工作情况而产 生状态信号的状态信号电路(152); 用于将所述第一存储器设备交替连接到所述第一电路上或所述内部存储器上 和将所述第二存储器设备交替连接到所述第一电路上或所述内部存储器上的数据 切换电路(134); 一个响应第一个所述状态信号因而使所述CPU在所述外部存储器设备与所 述第一和所述第二存储器设备中的一个存储器设备之间的数据被传输期间的一部 分时间内执行所述至少一个程序的软件例行程序。
14: 根据权利要求13所述的系统,  其中所述软件例行程序响应第二个所 述状态信号而使所述内部存储器与所述第一存储器之间的数据在所述外部存储器 设备与所述第二存储器之间的数据被传输期间的一部分时间内被传输。
15: 根据权利要求14所述的软件还包括用于确定所述CPU是否能用于 在所述内部存储器与所述第一存储器之间传输数据和用于当所述CPU能传输数 据时使所述传输得以进行的单元。
16: 根据权利要求13所述的系统还含有连接到所述第一存储器设备上用 于确定储存在所述第一存储器设备中的数据量的第一计数器(136)和连接到 所述第二存储器设备上用于确定储存在所述第二存储器设备中的数据量的第二计 数器(138),当储存在所述第一存储器设备中的数据量超过第一预定值和当 储存在所述第二存储器设备中的数据量超过第二预定值时所述状态信号电路产生 状态信号。
17: 根据权利要求13所述的系统,其中所述外部存储器设备是一个硬盘, 其中所述第一电路还包括用于控制所述硬盘的工作的控制器(122)。
18: 根据权利要求17所述的系统还包括一个连接在所述第一电路和所述 数据切换电路之间的用于调整所述硬盘与所述第一和所述第二存储器设备之间的 传输率差别的时间调节电路(130)。
19: 一种用于在计算机系统的外部存储器设备与内部存储器之间传输数据 的方法,所述系统还含有至少一个在系统上执行的应用程序、CPU、第一存储 器设备和第二存储器设备,所述方法包括以下步骤: 提供一个所述第一存储器设备与所述外部存储器设备之间的第一可变换数据 传输路径和提供一个所述第二存储器设备与所述外部存储器设备之间的第二可变 换数据传输路径; 用所述第一数据传输路径将所述外部存储器设备连接到所述第一存储器设备 上; 当所述第一存储器设备中的数据量超过第一预定值时切换到所述第二数据传 输路径上使数据在所述外部存储器设备与所述第二存储器设备之间传输; 当所述第二存储器设备中的数据量超过第二预定值时切换到所述第一数据传 输路径上使数据在所述外部存储器设备与所述第一存储器设备之间传输;和 在所述外部存储器设备与所述第一和所述第二存储器设备中的一个存储器设 备之间进行数据通信的一部分时间内执行所述应用程序。
20: 根据权利要求19所述的方法还包括以下步骤: 提供一个所述第一存储器设备与所述内部存储器设备之间的第三可变换数据 传输路径和提供一个所述第二存储器设备与所述内部存储器设备之间的第四可变 换数据传输路径; 仅在所述外部存储器设备经所述第二数据传输路径连接到所述第二存储器设 备上以后才允许用第三数据传输路径在所述内部存储器与所述第一存储器设备之 间进行数据传输;和 仅在所述外部存储器设备经所述第一数据传输路径连接到所述第一存储器设 备上以后才允许用第四数据传输路径在所述内部存储器与所述第二存储器设备之 间进行数据传输。
21: 根据权利要求19所述的方法,其中所述允许在所述内部存储器与所 述第一和所述第二存储器设备的一个存储器设备之间进行数据传输的步骤是在所 述外部存储器设备与所述第二和所述第一存储器设备中的一个存储器设备之间的 数据传输期间的一小部分时间内发生的。

说明书


接口电路和数据处理装置与方法

    本发明的背景

    【发明领域】

    本发明涉及一种能在外部存储设备与CPU(中央处理单元)之间进行快速数据传输的接口电路。

    本发明还涉及一种能高速访问外部存储设备的数据处理装置与方法。

    相关技术说明

    通常的数据处理装置装有象硬盘或CD-ROM之类的处部存储设备,它执行其内部存储器与外部存储设备之间的数据传输以完成数据处理。

    然而与CPU的工作速度相比,外部存储设备的存取时间很慢,这种很低的速度降低了数据处理的吞吐量。特别是在处理大量位图图象数据或类似数据的应用场合需要花费时间与外部设备交换数据的情况下,这种低速度与操作者的想法相违背。

    本发明的概述

    因此,本发明的目的是提供用于在外部存储器设备与计算机内部存储器之间高速传输数据的方法与设备。该高速数据传输设备包括一个第一存储器,一个第二存储器,一用于与外部存储器设备交换数据的第一电路和一个与内部存储器交换数据的第二电路。该设备还包括一个将第一电路交替连接到第一存储器或第二存储器上并同时将第二电路交替连接到第二存储器或第一存储器上的另一个地数据开关电路。当第一电路被连接到第一存储器或第二存储器上时,数据就在外部存储器设备与第一存储器或第二存储器之间传输。当第二电路被连接到第一存储器或第二存储器上时,数据就在内部存储器与第一存储器或第二存储器之间传输。

    以上数据传输设备的一个优点是第一和第二电路能够同时执行不同的数据传输操作。例如,在内部存储器从第二存储器传输数据时外部存储器设备可以向第一存储器传输数据。当第一存储器装满数据时,第二存储器是空的。然后可以将外部存储器连接到第二存储器上。因此,当内部存储器继续从第一存储器传输数据时,外部存储器可以继续向第二存储器传输数据。因此可以在外部存储器设备与内部存储器之间几乎连续地传输数据。

    在一个优选实施例中,第一存储器和第二存储器以及内部存储器都是半导体设备。由于外部存储器设备是一个机械设备,因此数据传输时间较长。这样当外部存储器设备仍在工作时,内部存储器上的数据传输工作早已完成了。由于外部存储器设备是由本发明的数据传输设备控制的,因此计算机上的CPU通常处于闲置状态。本发明的一个方面是一种用于利用CPU闲置时间的方法。

    该数据传输设备还包括用于产生与数据切换有关的状态信号的单元。响应状态信号的软件驱动程序可以使其它软件程序在CPU不做数据传输工作的期间内运行。因此CPU不会处于闲置状态。

    由于本发明的数据传输设备与本发明的软件驱动程序在加快包括外部存储器设备存取在内的程序执行方面协同工作,因此本发明软件可以用来代替通用驱动程序(如IBM个人计算机的BIOS硬盘设备服务程序)。

    从下面对本发明的详细说明以及附图中可以理解上述性能和优点以及获悉其它的一些性能和优点。

    附图简要说明

    图1是一个说明根据本发明第一实施例的数据处理装置结构的原理图。

    图2是一个表示图1所示传输控制器结构的原理图。

    图3是一个说明从硬盘读出数据的时序与处理该读出数据的时序之间的关系的时序图。

    图4是一个用于解释一些构成位图数据的数据块的示意图。

    图5是一具表示在由位图数掘定义的位图上开设的窗口的示意图。

    图6是一个说明位图上窗口运动的示意图。

    图7是一个表示窗口内图象移动的示意图。

    图8A和图8B是表示窗口内图象移动的示意图。

    图9是一个说明改进型数据处理装置的原程图。

    图10是一个包含本发明第二实施例数据传输设备的计算机系统原理图。

    图11是一个表示数据传输设备的工作的流程图。

    图12是一个表示数据传输设备的另一种工作模式的流程图。

    图13示出了在数据传输设备工作期间各工作周期之间的相关时序。

    图14是一个在Windows环境下运行的含有本发明数据传输接口与软件驱动程序的计算机系统的原理图。

    图15是一个说明图14所示系统的工作的流程图。

    优选实施例的详细说明

    第一实施例

    下面说明根据本发明第一实施例的数据处理装置和接口电路。

    图1示出了第一实施例的数据处理装置的结构。如图所示,该数据处理装置包括CPU(中央处理单元)11,ROM13,视频RAM(VRAM)14和用于显示VRAM14中的内容的显示设备15。ROM13和VRAM14通过第一总线12与CPU11连接。CPU11负责对数据进行处理以及对系统进行总的控制。第一总线12是按照例如EISA标准设计的,包括一条数据总线,一条地址总线和一条控制总线。ROM13中储存了由CPU11执行的控制程序和固定数据等。VRAM14储存用于定义显示图象的位图数据。显示设备15由CRT,液晶显示设备或其它类似的设备组成。

    该数据处理装置还包括一个诸如硬盘或CD-ROM之类的外部存储设备(辅助存储设备)21。在本实施例中,外部存储设备21是一个硬盘。符合SCSI(小型计算机系统接口)标准的硬盘21经并行线与SCSI接口22相连接。按照本实施例,光栅型(位图型)图象数据串行储存到硬盘21中以保证快速存取。SCSI接口22被连接到传输接口23上。传输接口23上具有被CPU11访问的第一存储器24和第二存储器25以及传输控制器26。

    第一存储器24和第二存储器25都是由类似双口SRAM存储器的双口快速存储器组成的,第一存储器24和第二存储器25的第一口经第二总线27与CPU11相连接。CPU11通过第一口从存储器24和存储器25读出数据或向它们写入数据,第二总线27符合例如EISA标准。

    传输控制器26与第一存储器24和第二存储器25的第二口,SCSI接口22和第二总线27相连接,在CPU11的控制下它控制硬盘21与存储器24,存储器25之间的数据传输。

    如图2所示,传输控制器26具有一个SCSI口31,一个CPU口32,一个第一口33,一个第二口34,一个寄存器35,一个第一传输电路36,一个FIFO(先入先出存储器)37,一个第二传输电路38,一个第一地址计数器39,一个第二地址计数器40和一个控制器41。

    SCSI口31经互斥线路连接到SCSI接口22上。CPU口32连接到第二总线27上。第一口33经互斥线路连接到第一存储器24的第二口上。第二口34经互斥线路连接到第二存储器25的第二口上。

    由CPU11设置的标志、读写指示数据、首地址等被放置到寄存器35中。

    第一传输电路36在FIFO37与SCSI接口22(硬盘21)之间传输数据。第二传输电路38在FIFO37与第一存储器24或第二存储器25之间传输数据。第一传输电路36和第二传输电路38比如由DMA(直接存储器存取)电路构成。第一传输电路36以比如20MHZ的工作时钟工作,第二传输电路38以比如40MHZ的工作时钟工作。

    FIFO37对第一传输电路36的数据传输率与第二传输电路38的数据传输率之间的差异起缓冲作用,它位于第一传输电路36与第二传输电路38之间用于这两者之间的数据交换。

    第一地址计数器39计算第一存储器24的地址。第二地址计数器40计算第二存储器25的地址

    控制器41控制传输控制器26的内部电路的各部分的工作。

    下面说明传输接口23的基本工作。

    以从硬盘21中读取大量的将被CPU11处理的数据的情况开始。

    CPU11经第二总线27向传输控制器26提供指示数据阅读的指令、提供硬盘21中储存被读数据的区域的首(起始)地址和提供传输请求信号(DMA请求)。传输请求信号(DMA请求)包括指示第一存储器24和第二存储器25中的哪一个的数据应先被储存的数据。

    控制器41设置数据、标志和类似的数据到相关的寄存器35中,这些数据包含在传输请求信号中,设置有关操作模式中的各个部分。控制器41使第一和第二地址计数器39和40初始化。传输请求信号还被传送到SCSI接口22。

    当完成设置工作以后,控制器41向CPU11发出确认信号ACK。该信号ACK使CPU11摆脱数据传输工作并允许CPU11执行其它处理工作。

    响应来自于CPU11的传输请求,SCSI接口22命令硬盘21读数据。根据该指令,硬盘21从首地址开始读数据并将读出的数据经互斥线路传送到SCSI接口22。

    每当数据从SCSI接口22传送时,第一传输电路36向FIFO37发送该数据。接着第二传输电路38获取输入到FIFO37中的数据,并将该数据发送到CPU11指定的存储器,例如第一存储器24。第一存储器24将被提供的数据储存到由第一地址计数器39指定的位置。每当第二传输电路38传输一次数据时,第一地址计数器39就刷新计算值(地址值)。更新值与在一次传输过程中被传输的数据的字节数相一致。

    此后,数据被顺序地从硬盘21读出并被储存到第一存储器24中。

    随着数据传输的进行和预定字节数(例如64K字节)的数据传输的完成,传输控制器26经第二总线27向CPU11发送一个传输结束中断信号INT。CPU11输出一包括下次被读出数据区域的起始位置信息的传输请求信号,和重新激活传输控制器26。这种重新激活使得数据再次被传输。

    随着数据传输的进行和第一存储器24中被装满被传输数据,传输控制器26向CPU11传送中断信号INT。在响应中断信号INT的中断过程中,CPU11向传输控制器26输出一个传输请求信号,该传输请求信号将第二存储器25指定为目标存储器。控制器41将第二地址计数器40的计数值初始化。此后,从硬盘21中读出的数据被顺序地传输到第二存储器25中。

    当数据被储存到第二存储器25中时,CPU11从第一存储器24中读出数据并对此进行处理。

    当向第二存储器25传输数据的数据传输过程和对储存在第一存储器24中的数据进行处理的过程都完成时,CPU11向传输控制器26发出一个指示向第一存储器24传输数据、指示读数位置和指示其它类似信息的传输请求信号。根据该请求信号,控制器41对第一地址计数器39进行初始化。因此,在CPU11对储存在第二存储器25中的数据进行处理期间,已经从硬盘21读出的数据被顺序储存到第一存储器24中。

    此后将重复进行同样的操作。更准确地说,说CPU11交替与重复处理储存在第一和第二存储器24和25中的数据。以及传输控制器26预先将下次被处理的数据传输到除CPU11正在存取的存储器以外的存储器中。当指示传输最后一个被传输数据块的中断信号INT被发送到CPU11时,数据传输就被终止。

    图3说明了上述操作的处理时序。正如从该示意图中明显看到的那样,在处理硬盘21中的数据的请求产生以后CPU11等待被传输数据的时间仅仅是第一存储器24第一次被装满所需的时间。此后,被处理的数据被预先准备在有关存储器中。因此,快速数据处理是可能的而不会受数据传输率的限制。

    当CPU11的处理过程在被处理数据的传输过程结束之前完成时,CPU11执行其它处理工作并根据表示传输过程结束的中断信号INT返回到数据处理过程。当下一次被处理的数据的传输过程在CPU11的处理过程结束之前完成时,传输控制器26等待来自于CPU11的下一个指令。

    现在说明被CPU11处理过的大量数据被顺序传输到硬盘21以便储存于硬盘的情况。

    首先,CPU11执行数据处理以及将数据储存到第一或第二存储器24或25中。当预定数量的数据被产生时,CPU11经第二总线27发送一个指示数据写入的指令和一个传输请求信号。该传输请求信号指定首先应传输第一存储器2 4中的数据,指定写入区的起始地址等。控制器41设置有关模式中的各个部分。CPU11还将写入数据模式和硬盘21中的目标写入区的起始地址传给SCSI接口22。

    当设置过程完成时,控制器41向CPU11发出确认信号ACK。该信号ACK使CPU11摆脱数据传输操作,重新进行数据处理工作和将数据处理过程中产生的数据写入到第二存储器25中。

    根据传输请求信号,第二传输电路38从第一存储器24内由地址计数器39指定的信置上顺序读出数据并将该数据储存到FIFO37中。第一传输电路36从FIFO37上获取数据并将该数据传给SCSI接口22。SCSI接口22从规定的起始地址开始顺序写入被传送的数据。此后同样的操作将被重复执行,这样每当传输一个数据块时,就向CPU11发送一个中断信号INT。作为对中断信号INT的响应,CPU11重新请求数据传输。

    当传输储存在第一存储器24中的数据的传输过程和向第二存储器25中写入数据的过程完成,CPU11将传输存储器切换为第二存储器25以及将写入存储器切换为第一存储器24。第二传输电路38从由第二地址计数器40指定的位置顺序读出数据并将该数掘输入到FIFO37。同时,第一传输电路36从FIFO37中顺序读出数据并将它传送到SCSI接口22。SCSI22将接收到的数据传送到硬盘21并写入硬盘21。

    此后将重复进行同样的操作。

    在写数据过程中,当CPU11正在访问存储器24或25中的一个存储器和正在准备数据时,存储器25或24中的另一个存储器中已准备好的数据被读出并被传输到硬盘21。CPU11因而可以执行数据处理而不会被与硬盘21交换数据所需要的时间所打拢。因此,CPU11能够快速处理象图象数据处理之类的大量数据。

    与磁盘高速缓存不同,在没有进行数据比较的情况下这种数据传输不需要确定是否已进行数据比较或数据是束已更换或其它类似的情况,因而简化了控制系统的结构和提高了操作速度。

    现在参考这种情况(即:在一个类似图象位图上开一个窗口以及将正在位图上移动的窗口显示出来)专门描述数据处理装置的一般操作。

    要注意的是在本实施例中光栅型(位图型)位图数据是被顺序储存到硬盘2 1中的。位图数据被分成许多块,每一块都由512×512位的矩阵组成,如图4所示。每个数据具有8位长度(位数)。

    根据储存在ROM13中的控制程序,CPU11在一个大的由位图数据定义的虚拟位图51上生成一个窗口52,通过窗口52显示一部分位图51。窗口52和窗口52上的位图51被显现成位位图形式并在显示设备15上显示出来。

    在这种情况下,用户发出向右上方滚动(用这种方法窗口向右上方运动而位图显得向左下方移动)的命令,CPU11在每个给定时间内使位图51上的窗口52移动一个预定量,如图6所示。位图51上的窗口52在X和Y方向的移动量用ΔX和ΔY表示。

    随着窗口52的移动,CPU11获取显示位图51所需要的数据块。也就是说,CPU11检测数据块B1到B16是需要的。

    为了从硬盘21中读取那些数据,CPU11经第二总线27向传输控制器26和SCSI接口22发出传输请求信号,该信号指示读出数据、指定数据块B 1的起始地址、指定将读出数据预写入到第一存储器24中以及指定其它一些信息。根据该信息,硬盘21顺序读出数据块B1的数据以及经SCSI接口22将该数据传送到传输控制器26。传输控制器26中的第一传输电路36将从SCSI接口22逐个传送来的位图数据顺序储存到FIFO37中。第二传输电路从FIFO37顺序读出数据,以及将该数据储存到第一存储器24中由第一地址计数器39指定的位置上。

    在数据块B1被从硬盘21传输到第一存储器24期间,CPU11被从数据传输过程中释放出来执行移动VRAM14中的位图数据的处理工作。

    更准确地说,VRAM14中窗口52的各个位的位图数掘被顺序移到这种位置:即X方向上的地址被移-ΔX值和Y方向上的地址被移动-ΔY值,移动后的位图数据相应地被写入VRAM14中,如图7所示,这样窗口被从图8A所示的状态移动到图8B所示的状态。

    在该移动过程中当CPU11接收到来自于传输控制器26上的表示数据块B1的传输过程已经结束的中断信号时,CPU11就执行中断处理以及发出用于读下一个数据块B2的传输请求信号。根据该传输请求信号,传输控制器26和SCSI接口22从硬盘21顺序地读出数据块B2的数据并将该数据写入到第一存储器24中的空区域内。

    当VRAM14中窗口52的位图数据的移动已经完成并且表示传输已结束的中断信号INT已经从传输控制器26上传送出来时,CPU11输出用于读下一个数据块B3的传输请求信号。根据该传输请求信号,传输控制器26和SCSI接口22从硬盘21中顺序地读出数据块B3的数据并将该数据按顺序从起始位置起写入到第二存储器24中。

    在传输控制器26正在读数据期间,CPU11将存到第一存储器24中的数据块B1位图数据中的有用部分(这部分将被显示在窗口52上)切下来并将它写入到VRAM14中的有关区域内。同样,CPU11也将数据块B2中的将被显示的部分写入到VRAM14中的有关区域内。

    此后,将下一次将要被处理的数据块预先读入一个存储器的过程和将被读出的数据的需要部分写入到VRAM14中的另一个存储器的过程是以相同的方式并行与交替执行的。当所有需要的位图数据被读入到第一和第二存储器24和25中时,传输过程就结束了,而当所需数据写入到VRAM14中的窗口52上的过程结束时,那么一次移动操作就完成了。

    在保持位图51上的窗口52移动指令时,上述移动这程是在每一个给定周期内重复执行的。

    在数据块B1到B16中,数据块B11到B16是在以前位置上显示窗口52时所用的数据。因此,当数据块B11到B16储存在第一存储器24或第二存储器25中时,不需要从硬盘21重新读出数据,可以用保持在存储器中的数据执行移动过程。

    现在对这样一种情况进行说明:从硬盘21中读出光栅数据并将它与矢量图象组合成一个新的的光栅图象,再将该新光栅图象写入到硬盘21中。

    在此情况下,例如将光栅图象寄存到第一存储器24中,然后再寄存到第二存储器25中。当光栅图象被寄存到第二存储器25中时,产生与以前储存在第一存储器24中的光栅数据相组合的矢量数据。接着,当第二存储器25中的光栅数据与新产生的矢量图象相组合时,将第一存储器24中的组合数据传送到硬盘21中,然后从硬盘21中读出下一次将被处理的数据。

    根据本实施例,总之需要准备两个存储器以便当CPU正在存取一个存储器时数据可以在另一个存储器与硬盘之间传输,对各个存储器来说数据处理和数据传输是并行交替执行的。因而CPU能够以接近于存取快速存储器的速度存取硬盘中的数据。特别是在高速处理大量图象数据时或类似的情况下这种性能是很有效的。

    存储器的数量不是固定的,可以提供3个或更多个存储器。当CPU11的速度相对于数据传输率来说较低时就应当增加存储器的数量,应当根据每个系统的技术要求使用最佳数量的存储器。每个存储器的容量的确定也是如此。

    尽管上述实施例为了高速操作使用了独立的第一总线12和第二总线27,但两条总线可以用图9所示的一条公用总线来代替。

    如上所述,本发明能保证在外部存储设备与CPU之间进行快速数据传输,从而完成快速数据处理。

    第二实施例

    在第一实施例中,FIFO被安放在第一和第二存储器与外部存储器设备之间。可以对此方案作些修改,即在第一和第二存储器与外部存储器设备之间用时间调节电路传送数据。下面说明使用时间调节电路的第二实施例。

    图10是一表示包括本发明的数据传输设备在内的计算机系统100的原理图。系统100包括一条连接CPU(中央处理单元)102,内部存储器104和数据传输设备110的总线108。在本发明中,总线108涉及一条或几条典型的计算机系统总线,例如系统总线和外围总线(例如:PCI,本地总线、ISA、和EISA总线等典型的IBM兼容制个人计算机总线)。在本发明中,内部存储器104可以是任何经总线108寻址的存储器。例如,存储器104可以是系统存储器(一般被连接到系统总线上)或视频存储器(一般被连接到外围总线上)。数据传输设备110可以被做成外围板或被封装在半导体芯片内。在本发明的一个实施例中,存储器104和CPU102被连接到系统总线上,而设备110作为外接板被连接到ISA总线上。

    计算机系统100还包括一个装载数据的硬盘112。本发明的一个方面是一个用于快速传输硬盘112与存储器104之间的数据的系统。就象下面解释的那样,设备110内的一对标号为RAMA和RAMB的随机存取存储器(RAM)用于暂存在硬盘112与存储器104之间传输的数据。

    现在说明数据传输设备110的结构。设备110含有一个将设备110内的电路连接到总线108上的总线接口106。总线接口106允许数据和控制信号在这些电路与存储器104和CPU102之间进行通信。

    设备110含有一个“小型计算机系统接口”(SCSI)控制器122,该控制器以标准SCSI协议与硬盘112进行数据与控制信息通信。这种控制器的设计技术是公知的,这里不对此进行讨论。SCSI控制器122最好采用半导体芯片结构。

    SCSI控制器122被连接到SCSI处理电路124上。SCSI处理电路124被连接到总线接口106和时间调节电路130上。SCSI处理电路124执行下列操作:(1)经总线接口106接收来自于CPU102的命令与状态信息;(2)根据这些命令与状态信息控制硬盘112(通过SCSI控制器122);(3)与时间调节电路130一起向RAM处理电路132传输数据和传输来自于RAM处理电路132中的数据;(4)经总线接口106向CPU102发送状态信息。例如,SCSI处理电路124能够激活和取消向硬盘112传输数据和从硬盘112读取数据的数据传输工作。由SCSI处理电路124产生的状态信号可以被与数据传输设备110一起工作的软件驱动程序所使用。下面将参考图11和图12详细解释该驱动程序的工作。

    在本发明的这一个实施例中,硬盘112符合SCSI标准。然而本发明同样可应用于符合其它标准的硬盘,如IDE(混和驱动电子设备)或EIDE(增强型混合驱动电子设备)。

    在本发明中,数据并不是直接在硬盘112与计算机系统110的内部RAM104之间传输的,而是暂存在数据传输设备110内的一对随机存取存储器(RAMA和RABB)中。RAMA和RAMB传输数据较快。另一方面,硬盘112传输数据一般比较慢并且不能与RAMA和RAMB的数据传输同步。时间调节电路130用于使硬盘与RAMA和RAMB之间的数据传输协调与内步。

    为了能得到上述功能,SCSI处理电路124含有一个状态处理电路146(用于接收、处理和产生状态信号)和一个数据流向电路148(用于控制向/从硬盘传输数据)。这些电路的设计应当归入电路设计技术专家的技术范围。

    时间调节电路130被连接到RAM处理电路132上。该RAM处理电路132还经总线接口106与CPU102和内部RAM104相连接。另外,RAM处理电路132被连接到数据传输设备110内的RAMA和RAMB上。

    RAM处理电路132包括一个一方面用于将RAMA和RAMB连接到时间调节电路130上另一方面用于将RAM A和RAM B连接到总线接口106上的开关134。特别是当要求在SCSI处理电路124与RAM A或RAM B之间传输数据时,开关134使时间调节电路130连接到合适的存储器上。类似地,如果要求在内部RAM104与RAM A或RAM B之间传输数据时,开关134使总线接口106连接到数据传输设备110中的合适的存储器设备上。应该注意在一给定时间内RAM A可以或者连接到时间调节电路130上或者连接到总线接口106上,但不能同时连到时间调节电路130和总线接口106上。类似地,RAM B在给定时间内可以或者连接到时间调节电路130上或者连接到总线接口106上,但不能同时连接到时间调节电路130和总线接口106上。还有,数据不能直接在时间调节电路130与总线接口106之间传输。下面将说明与数据传输有关的开关134的详细工作。

    为了监视RAM A和RAM B中的数据量,RAM处理电路132含有两字节处理单元。每个单元含有一个计数器和用于匹配RAM A或RAM B与RAM处理单元132之间的电气信号的装置。这些单元将被看作为计数器136和138。RAM处理电路132分别监视来自于/到RAM A和RAM B的数据的传输以及监视计数器136和138的值的减少/增加。因此,计数器136和138的值分别表示储存在RAM A和RAM B中的数据量。

    RAM处理电路132的另一种功能是经总线接口106接收来自于CPU102的命令与状态信息。RAM处理电路132然后根据接收到的命令与状态信息控制内部RAM104与RAM A和RAM B之间的数据传输。RAM处理电路132还可以向CPU102发送状态信号。这些信号可以被使用数据传输设备110的应用软件程序所使用。为实现这些功能,RAM处理电路132中含有状态处理电路152。

    由于要求优化RAM A和RAM B的存取时间,因此最好采用静态RAM。然而,其它类型的RAM(如动态RAM)也可以用,本发明不受RAM的具体形式的限制。

    内部RAM与RAM A和RAM B之间的数据传输可以直接由CPU102控制(例如,通过向CPU发出数据传输指令)或经通用直接存储器存取(DMA)进行控制。对于那些缺少强大的数据传输指令的处理器来说,这种传输由DMA控制最有效。而对于那些具有强大的数据传输功能(例如,成组方式传输和串传输指令)的处理器来说,这种传输由CPU本身控制最有效。

    在本发明的一个实施例中,SCSI处理电路124,RAM处理电路132,时间调节电路130和总线接口106都制作在单个半导体芯片140中。

    硬盘112的一个功能是储存供应用程序或操作系统使用的数据和/或程序。为了在硬盘112与应用程序(或操作系统)之间传输数据时充分利用设备110的优点,软件驱动程序最好用来协调它们之间的工作。该软件驱动程序可以响应由设备110产生的状态信号以及向设备110发送命令。该软件驱动程序还可以向应用软件或操作系统发送信文。

    现在说明计算机系统100的工作。在第一个例子中,应用软件向软件驱动程序发布指令:从硬盘112提取一定量的数据并将这些数据传输到存储器104。图11中的流程图S180用于该例。软件驱动程序向SCSI处理电路124和RAM处理电路132发出初始化命令(步骤S182)。然后SCSI处理电路124对硬盘112进行初始化(通过SCSI控制器122)以便为提取和传输数据作准备。RAM处理电路132将计数器136和138的值设置到零以及将开关134设置到与时间调节电路130与RAMA相连接的位置。RAM处理电路132提取来自于SCSI处理电路124中的数据(被时间调节电路130处理后的)并将这些数据传输给RAM A。因此,从硬盘112中读取数据并被装载到RAM A中(步骤S184)。

    在步骤S184中没有涉及到CPU102。因此CPU102可以完成其它功能,包括运行Windows或其它软件程序。

    RAM处理电路132用计数器136来确定RAM A中的数据量是否已达到预定值(步骤S186)。如果没有达到预定值(即,RAM A有接受其它数据的空间),那么来自SCSI处理电路124(和硬盘112)的数据被时间调节电路130处理以后继续流入到RAM A中(步骤S188)。当RAM A已不能接受数据时,RAM处理电路132使开关134将时间调节电路130与RAM B连接起来。因此,从硬盘112读出数据并被装载到RAM B中(步骤S190。这时RAM处理电路132向软件驱动程序发送状态信息(例如一个中断)通知它可以将RAMA中的数据传输到存储器104中(步骤S192)。在步骤S194中,软件驱动程序确定CPU102是否忙(即还没有准备传输数据)。如果CPU102正忙于执行其它任务,那么软件驱动程序将处于等待状态。如果CPU102可以处理数据,那么软件驱动程序向RAM处理电路132发送命令使开关134将总线接口106与RAM A连接起来(步骤S196)。这时数据可以从RAM A传输到内部存储器104(步骤S198)。要注意上述步骤S190(即,从硬盘112向RAM B传输数据)可以与步骤S192到S198同时进行。一般来说,用于执行步骤S190的时间要比用于执行步骤S192到S198的时间长。当步骤S198(即,从RAM A向内部RAM传输数据)完成时,RAM处理电路132可以向软件驱动程序发送状态信号(步骤S199)。然后软件驱动程序可以执行其它任务(或使其它软件程序块执行其它任务)。

    此后对RAM B进行操作,RAM处理电路132用计数器138来确定RAM B中的数据量是否已达到预定值(步骤S200)。如果没有达到预定值(即,RAM B有接受其它数据的空间),那么继续将硬盘112中的数据装载到RAM B中(步骤S204)。当RAMB已不能接受数据时,RAM处理电路132使开关134又将时间调节电路130与RAM A连接起来。流程图S180经路径S206转到步骤S184,将执行上述有关向RAM A传输数据的步骤。同时,RAM处理电路132向软件驱动程序发送状态信息通知它可以将RAM B中的数据传输到存储器104中(步骤S210)。在步骤S212中,软件驱动程序确定CPU102是否忙(即不能将RAM B中的数据传输出去)。如果CPU102正忙于执行其它工作,那么软件驱动程序将处于等待状态。如果CPU102可以处理数据,那么软件驱动程序向RAM处理电路132发送命令使开关134将总线接口106与RAM B连接起来(步骤S214)。因此,储存在RAM B中的数据可以被传输到内部存储器104(步骤S216)。正如以前所指出的那样,步骤S210到S216可以与从硬盘112向RAMA传输数据的过程同时进行。一般来说。用于从硬盘112向RAM A传输数据的时间要比用于执行步骤S210到S216的时间长。当步骤S216完成时,RAM处理电路132可以向软件驱动程序发送状态信号(步骤S217)。然后软件驱动程序可以执行其它任务(或使其它软件模块执行其它工作)。

    应用软件(通过软件驱动程序)决定从硬盘112向存储器104传输的数据量。上述循环要一直执行到所有要求的数据被传输到内部存储器104为止。

    一般来说,与硬盘数据传输时间相比将储存在RAM A和RAM B中的数据传输到内部存储器104所需的时间非常短。因而RAM A和RAM B总是可以供硬盘数据传输用,因为储存在它们中的数据已经被传输到内部存储器104了。如时RAM A和RAM B都不能供硬盘数据传输用,那么软件驱动程序应当延迟硬盘传输操作,直到其中一个RAM可供硬盘数据传输用。

    在第二个例子中,从内部存储器104提取数据并被储存到硬盘112中。图12中的流程图S230用于该例子。在该例子中,应用软件向软件驱动程序发出从内部存储器104提取数据并将该数据传输到硬盘112的指令。软件驱动程序向SCSI处理电路124和RAM处理电路132发出初始化命令(步骤S232)。然后SCSI处理电路124使硬盘112初始化(通过SCSI控制器122)以便准备提取和传输数据。RAM处理电路132将计数器136和138的值设置为零以及将开关134设置到使总线接口106与RAMA相连接的位置。数据从内部存储器104传输到RAM A(步骤S234)。

    计数器136用于确定RAM A中的数据长度是否已达到预定值(步骤S236)。如果RAM A能接受基它数据,那么将继续从内部存储器104提取数据并将数据储存在RAM A中(步骤S238)。当RAM A不能接受其它数据时,RAM处理电路132使开关134将RAM A与时间调节电路130连接起来。在时间调节电路130的控制下SCSI处理电路124将数据从RAM处理电路传输到硬盘112(步骤S240)。同时,RAM处理电路132确定RAM B是否可供储存数据用(步骤S242)。当RAM B正在被首次存取时,它应当能供储存数据用。然而,以后它或许不能供储存数据用,因为在RAMA装满数据(这是一个快速半导体对半导体的传输过程)之前或许没有足够的时间使储存在RAM B中的数据传输到硬盘112(这是一个相对较慢的处理过程)。如果RAM B不能供储存数据用,那么RAM处理电路132将向软件驱动程序发送有关“无效”的状态信号(步骤S244)。当接收到状态信号时,软件驱动程序通知应用软件(或操作系统)执行其它任务(步骤S246)。如果RAMB可供储存数据,那么RAM处理电路132将向软件驱动程序发送有关“有效”的状态信号(步骤S250)。在步骤S252中,软件驱动程序确定CPU102是否忙(即,不能传输数据)。如果CPU102不能传输数据,那么软件驱动程序将处于等待状态。如果CPU102可以传输数据,那么软件驱动程序向RAM处理电路132发送命令使开关134将总线接口106与RAM B连接起来。数据从内部存储器104传输到RAM B(步骤S254)。

    计数器138用于确定RAM B中的数据长度是否已经达到预定值(步骤S256)。当没有达到预定值(即,RAM B能接受基它数据)时,重复步骤S256以及继续从内部存储器104中提取数据并将数据储存到RAM B中(步骤S260)。当RAM B不能接受其它数据时,RAM处理电路132使开关34将RAM B与时间调节电路130连接起来。SCSI处理电路124在时间调节电路130的控制下向硬盘112传输数据(步骤S262)。RAM处理电路132还确定RAM A此时是否能接受数据(步骤S264)。如果RAMA不能接受数据(例如,由于比较慢的传输率数据还没有被传输到硬盘112),那么RAM处理电路132向软件驱动程序发送一个临时停止传输内部存储器104中的数据的状态信号(步骤S266)。然后软件驱动程序通知应用软件(或操作系统),于是应用系统(或操作系统)就可以执行其它任务,因为不需传输数据(步骤S268)。

    如果或当RAM A准备接受数据时,RAM处理电路132向软件驱动程序发送状态信号(步骤S270)。软件驱动程序确定CPU102是否忙(步骤272)。如果CPU102忙(即,不能传输数据),那么软件驱动程序处于等待状态。如果CPU102不忙,那么RAM处理电路132使开关132再次将总线接口106与RAM A连接起来。于是数据可以被从内部存储器104传输到RAM A。流程图S230转到步骤S234,整个算法又重复进行。从内部存储器向RAM A传输数据的过程与从RAM B向硬盘传输数据的过程可以同时进行。

    应用软件(通过软件驱动程序)决定从存储器104向硬盘112传输的数据量。上述循环要一直持续到所有要求的数据被传输到硬盘112为止。

    本发明的一个特征是从/向硬盘112传输数据的传输过程是由数据传输设备110控制的而不是由CPU102控制的。CPU102只需要向数据传输设备110发出高电平命令(例如,起动和终止传输过程)。CPU102不需要监视和处理数据传输的详细过程。因此,当数据在硬盘112与RAM A或RAMB之间传输时CPU102可以执行其它任务。

    图13示出了图10所示的计算机系统100中的SCSI周期与内部存储器周期之间的相关时序。时序图280表示在硬盘112与RAM A/RAM B之间传输数据的时序。在图13中,参考数282和283对应于在硬盘112与RAM A之间传输数据的时间间隔,而参考数286和287则对应于在硬盘112与RAM B之间传输数据的时间间隔。RAM A与RAM B切换过程的时间间隔用参考数285表示,它比传输数据的时间间隔短得多。这是因为切换过程是用RAM处理电路132中的半导体元件执行的。

    时序图270表示在内部存储器104与RAM A/RAM B之间的传输数据的时序。在图13中,参考数272和273对应于在内部存储器104与RAM A之间传输数据的时间间隔而参考数276和277则对应于在内部存储器104与RAM B之间传输数据的时间间隔。要注意时间间隔272、273、276和277(用于内部存储器数据传输)要比时间间隔282、283、286和287(用于硬盘数据传输)短得多。如上指出的那样,计算机系统100在执行硬盘数据传输的时间间隔内可以完成其它功能(例如,执行操作系统或应用程序)。因此,计算机系统100的吞吐量要比一般系统的吞吐量大得多。

    RAM A和ARM B的容量是性能与价格的函数。对RAM A和RAMB来说,128K字节的存储器容量具有较好的性能/价格比。应当知道RAMA和RAM B可以具有不同的容量以及RAM A和RAM B的容量并不需要用足。例如在图11的步骤S186和S200中的预定值以及在图12的步骤S236和S256中的预定值可以小于RAM A和RAM B的容量(例如128K字节)。

    应当知道RAM A和RAM B并不是高速缓冲存储器。因而不需要包括用于根据瞬时中断频率检测断续和替代一部分存储器的电路,本发明电路既简单又快速。

    已有的系统用缓冲器来提高磁盘传输速度。例如,许多硬盘用半导体存储器作为缓冲器来提高吞吐量。有些计算机系统用一部分自身的系统存储器作为缓冲器。然而这些系统没有采用RAM A/RAM B结构和有关软件驱动程序。所以它们的性能要低于本发明系统的性能。

    本发明的一种应用是供在Windows环境下运行的软件应用程序高速提取储存在硬盘上的图形文件。在许多现代计算机设计中,显示存储器(如视频RAM,或“VRAM”)用于储存那些将被转换成模拟信号并在显示设备(如计算机监视器)显示出来的信息的数字图象。在MS  Windows环境下,应用程序可以在计算机屏幕上作为窗口表示出来。窗口尺寸的范围可以从整个监视器到监视器的一小部分显示区域。因而全部或一小部分显示存储器可以用来储存数字图象。

    用于说明本发明的图形文件是一个含有数兆字节图形数据的大文件。它储存在硬盘中。另一方面,普通计算机系统中的VRAM的容量大约为1兆字节。如果含有图形图象的显示窗口是一小窗口,那么供储存数字图象用的VRAM的数量要比1兆字节少得多。在这两种情况下,硬盘中的图形文件要比VRAM中的数字图象的尺寸大得多。

    如果要求图象在窗口中滚动,那么就需要将储存在硬盘中的图形文件数据下载到显示存储器中。滚动速度通常受图形数据的下载速度限制。因而最好有一个用于在硬盘与显示存储器之间快速传输数据的系统。

    由于系统RAM的可用容量(通常至少4兆字节容许运行MS Windows)可以大于VRAM的容量,因此在以上实施例的一个变更方法中,系统RAM被当作中间储存区。从硬盘中提取的并被装载到系统RAM中的图形数据量可以大于VRAM的容量。当需要显示的图形数据部分与显示窗口上显示的图形数据略有不同时,可以将图形数据从系统RAM传输到VRAM。因此,在这种情况下不需要启动硬盘数据传输。由于RAM到RAM传输在硬件和软件上的额外开销是相当低的因此系统RAM与VRAM之间的图象数据的传输速度很决。所以,这种变更方法在一定程度上可以增加吞吐量。然而,如果滚动速度很快以至于常常需要还没有被装载到系统RAM中的图象数据,那么就不可避免地需要硬盘数据传输。

    在IBM兼容制个人计算机中,硬盘操作是由基于ROM的设备服务例行程序(DSR)提供的。该例行程序是“基本输入/输出系统”(BIOS)软件的一部分,它由操作系统,设备驱动程序和外壳组成。通过调用INT13功能来访问硬盘DSR。DSR连通并控制一个工业标准硬盘控制器。它允许应用程序对硬盘进行包括读、写、初始化、测试、格式化等多种操作。它还向应用程序返回状态信息(如错误码)。

    许多软件应用程序(包括那些在某些MS Windows版本下操作的应用程序)将INT13用在硬盘和系统RAM之间传输数据的用途。然而,这种方法使得数据传输速度很低。一个原因是由于CPU需要花费许多时间周期去执行MS Windows码,因而不可能以其最大能力来驱动硬盘。因此在数据传输期间硬盘不得不暂停下来等待CPU周期。另一个原因是由于INT13和通用硬盘接口要求用多个CPU周期时间来控制数据传输,因而将宝贵的CPU资源用在了基本操作上。由于要与BIOS争夺CPU资源因此应用程序将慢慢运行。为了改进硬盘与系统RAM(或VRAM)之产的数据传输,本发明的数据传输设备可以有益地用在这种系统中。

    图14示出了一个根据本发明设计的MS Windows环境下传输图形数据的计算机系统340示意图。计算机系统340包括一个具有母板(未示出)的个人计算机356,一个监视器(未示出)和一个键盘(未示出)。计算机系统340还包括在操作系统354(如与计算机的BIOS一起工作的MS-DOS)的顶层运行的MS Windows342。操作系统354监视和控制个人计算机356的资源。MS Windows是一个含有许多程序模块和过程调用层的综合软件,在图14中用虚线344到347表示其大概意思。

    系统340还含有连接到通用硬盘接口364上的通用硬盘360。该接口可以是一块接到外围总线(例如,ISA或PCI总线)上的印刷电路板。它含有允许个人计算机356控制和连通硬盘360的电子元件(如硬盘控制器芯片)。通用软件程序366(一般称为硬盘驱动程序)允许应用程序控制和访问硬盘360而无需详细了解硬盘360和硬盘控制器的组织结构。正如以上所指出的那样,硬盘驱动程序可以放在计算机356的BIOS中。但是,硬盘驱动程序也可能是一个独立运行的独立硬盘驱动软件。

    象应用程序380和381那样的应用程序在MS Windows342的顶层运行。在本例子中,用一个象应用程序380这样的应用程序来说明本发明。应用程序380通过MS Windows342和操作系统354中的一系列程序块与硬盘驱动程序366连通。这样在图15中,硬盘驱动程序366被表示为位于虚线344到347下方的一个单元和操作系统354的一部分。正如以前指出的那样,已有技术的硬盘驱动程序向或从硬盘传输数据的效率不高。此外,应用程序380与硬盘驱动程序366之间的通信必须经过MS Windows模块和至少一部分操作系统。因此数据传输速度非常慢。

    本发明的硬盘处理系统包括硬盘370、数据传输接口372、和数据传输驱动程序374。数据传输接口372与图10中的数据传输设备110相对应。在本发明中,要求将数据传输驱动程序374与MS Windows和操作系统354之间的交互减到最小。已经发现由于这种安排几乎不需要辅助操作因而提高了执行速度。在图14中,数据传输驱动程序374位于虚线344的下方。这样,应用程序380在不经过一系列MS Windows模块的情况下就可以访问数据驱动程序374。

    在本系统中,数据传输驱动程序374包括两个程序模块,它们的程序名为FGB.DLL和MDC.DRV。MDC.DRV是一个驱动程序,它直接控制硬盘370。FGB.DLL是一Windows动态连接库模块,它为应用程序380和MDC.DRV之间提供了一接口。在本系统中,MDC.DRV取代了操作系统354中的通用硬盘驱动程序和有关硬盘例行程序,MDC.DRV按照图11和12中的流程图与数据传输接口372交互。

    图15是一个表示应用程序380与硬盘370按照本发明进行交互的流程图S400。在该例子中,假设图11和12中的“预定值”被设置为RAM A和RAM B的满容量值(即,128K字节)。为了说明需要还假设图形数据被直接写入到VRAM而不用象系统RAM之类的中间储存媒介。应用程序380决定MS Windows环境下的显示窗口的大小和决定有关图形数据在硬盘370中的位置(例如,目录/文件名)。应用程度380调用FGB.DLL并给它设置合适的参数(步骤S404)。参数例如有目录/文件名、要求的图形数据的容量、窗口位置等参数。然后FGB.DLL调用MDC.DRV(步骤S406)。如以上指出的那样,MDC.DRV不需要使用操作系统调用就可以直接控制数据传输接口372。

    MDC.DRV向数据传输接口372发送命令来请求从硬盘370获得标题信息(步骤S408)。标题信息一般放置在硬盘370的预定的位置,它含有象目录名、文件名、文件容量和文件的起始地址等信息。标题信息经MDC.DRV传给FGB.DLL(步骤S412)。

    当接收到标题信息时,FGB.DLL确定需要被送到VRAM中的图形数据的位置和容量。在步骤S416,FGB.DLL向MDC.DRV发送命令请求从硬盘370的规定位置上获得所要求的图形数据量。因为RAM A和RAM B的容量都是128K字节,因此MDC.DRV控制数据传输接口372从硬盘370读取128K字节的数掘(步骤S418)。由于该操作需要花费许多CPU周期因此MDC.DRV通知FGB.DLL或MS Windows在MDC.DRV从硬盘370提取数据期间执行其它任务(步骤S420)。因此,数据提取工作可以与其它MS Windows模块或其它应用程序的运行同时进行。

    数据传输接口372继续监视(通过它的计数器)RAM A或RAM B中的数据是否已装满(步骤S422)。如果硬盘提取的数据还不到128K字节,那么CPU资源可以继续被其它软件程序占用。当被提取的数据已达到128K字节,那么数据传输接口372通知MDC.DRV(步骤S424)。MDC.DRV确定是否需要从硬盘370提取更多的数据(步骤S426)。如果需要提取更多的数据,那么MDC.DRV向数据传输接口372发送命令要求再从硬盘370提取128K字节的数据并将数据传输到另一个RAM A/RAM B中(步骤S428)。MDC.DRV将上次提取的128K字节数据(储存在RAMA或RAMB中)传给FGB.DLL(步骤S430),FGB.DLL再将该数据传输到VRAM中(步骤S432)。然后流程图S400转到步骤S420(即,通知让其它软件运行)。

    如果不需要从硬盘370提取其它数据,那么MDC.DRV将上次提取的128K字节数据(储存在RAM A或RAM B中)传给FDB.DLL(步骤S436),FGB.DLL再将该数据传输到VRAM中(步骤S438)。然扣FGB.DLL返回到应用程序380(步骤S440)。

    FGB.DLL与MDC.DRV之间的工作分配可以与以上流程图中说明的有所不同。在上面的例子中,FGB.DLL告诉MDC.DRV所要求的数据量以及当所要求的数据量已经被提取时让MDC.DRV作出终止数据传输的决定。在其它实施例中,可以要求由FGB.DLL来完成这种工作,即FGB.DLL可以作出终止数据传输的决定。这些以及其它变更方法对于程序编制行家来说是很容易做到的。因此这里不再作进一步说明。

    MDC.DRV还可以控制从VRAM或系统RAM到硬盘370的数据传输。对于行家们来说,根据图15的流程图S400和图12的流程图S230中的信息很容易画出这种情况下的流程图。因此,这里不再给出这种流程图。

    从以上说明中可以看出数据传输接口372(硬件)和有关数据传输驱动程序374(软件)协同工作以增加硬盘370与VRAM(或系统RAM)之间数据传输的吞吐量。该硬件本身也能增加数据传输的吞吐量。而该软件驱动程序则使其它软件应用程序和操作系统充分利用计算机的资源。

    以本发明的一个具体的示范性实施例为基础对本发明进行了说明。在本发明的主要思想范围内可以对实施例作出各种改进。例如,本发明可以用在各种计算机中,包括目前已有的计算机和将来发展的计算机,如苹果牌计算机和各种版本的MSWindows(例如,3.1,3.11,NT和Windows95等版本)。因此,所述的技术说明只是为了说明而不能视为任何限制;本发明只受所提出的权利要求的限制。

接口电路和数据处理装置与方法.pdf_第1页
第1页 / 共49页
接口电路和数据处理装置与方法.pdf_第2页
第2页 / 共49页
接口电路和数据处理装置与方法.pdf_第3页
第3页 / 共49页
点击查看更多>>
资源描述

《接口电路和数据处理装置与方法.pdf》由会员分享,可在线阅读,更多相关《接口电路和数据处理装置与方法.pdf(49页珍藏版)》请在专利查询网上搜索。

从外部存储设备(21)中顺序读出将由CPU(11)进行处理的数据,然后将数据交替传输到第一和第二存储器(24,25)中。CPU(11)交替存取第一和第二存储器(24,25)中的一个存储器,对预先读入到存储器中的数据进行处理。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1