CN1639700A - 通过数据总线传输数据的方法 - Google Patents

通过数据总线传输数据的方法 Download PDF

Info

Publication number
CN1639700A
CN1639700A CNA038046814A CN03804681A CN1639700A CN 1639700 A CN1639700 A CN 1639700A CN A038046814 A CNA038046814 A CN A038046814A CN 03804681 A CN03804681 A CN 03804681A CN 1639700 A CN1639700 A CN 1639700A
Authority
CN
China
Prior art keywords
data
storage area
storage
memory
address
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
CNA038046814A
Other languages
English (en)
Inventor
J·巴特尔
D·贝姆
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN1639700A publication Critical patent/CN1639700A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明涉及一种方法,用作通过数据总线(124)特别是PCI总线(124)传输数据。如本发明所述的方法提出,在计算单元的主存储器(120)中设置一个第二附加存储区域(130),在其中存放存储页(128)的所有物理的地址(136、138)。在数据传输过程中独立传输所需要的物理地址。

Description

通过数据总线传输数据的方法
背景技术
标准的个人计算机(PC)以可以例如通过所谓插卡实现的简易的可扩展性为特征,所述的插卡插入在PC的主板上的扩展插接位置上。逐渐地这种扩展用所谓的PCI(PCI:外围部件互连)  总线进行。所述的PCI总线除了定义数据总线的机械特性和电气特性以外还确定总线部件的配置。
由美国专利57 765 008公知一种带有主板的计算机,其中设有扩展卡的插接位置。所述的卡通过PCI总线与主板连接。
在插接位置之一中设有所谓的“升级器卡”,该升级器卡再提供数个插入可能性。以此方式可以在主板中插入许多插卡并且以此实现多种多样的功能。
为了连接在PCI总线上,每个PCI扩展卡都需要一个PCI接口。这可以是特定的独立集成的电路(PCI桥)也可以是用硬件说明语言实施的PCI接口(PCI核心)。后者可以用附加的可自由定义的逻辑电路嵌入在可编程的逻辑电路部件中,譬如FGPA(字段可编程的门阵列)中。
这两种连接在PCI总线上的方案都允许把PCI总线通过该接口部件连接在本地的、可自定义的逻辑电路上,例如连接在本地专用总线上的扩展卡的发展。通过采用基于FGPA的方案可以绝对自由地构成本地逻辑电路。在商用PCI桥的情况下由该电路的制造商定义本地接口。
在PC起动时在成功地进行PCI总线的自配置(插入就能用)以后,必需初始化原来的在扩展卡上本地逻辑电路。在成功地进行初始化以后所述的卡就进行其本身的运行,例如向计算机中输入数据。在扩展卡与PC的运行系统之间的通信(初始化、数据传输)由驱动器负责。在此涉及专门地调准到扩展卡的特定特性并且可以用之正确初始化所述卡的程序(软件)。此外,所述驱动器向扩展板模拟为与扩展卡通信提供的运行系统的标准接口。驱动器把运行系统的数据读取请求和写请求以适当的形式转交给扩展卡。
除了运行系统方的数据传输请求以外,还可能,扩展卡向PC发出需要或者想要送交该数据的信令。从扩展卡方发出的信令通过所谓的间断请求(中断)进行,所述的请求间断PC的正常序列的程序过程。在由扩展卡触发的间断时,用专门地为此给驱动器间断提供的软件例程,即所谓的服务间断例程(ISR)进行。
所述的ISR借助于所述的间断识别间断请求的种类,并且操纵所述的间断请求,其中例如ISR读取从卡发出的数据并且贮存到PC的主存储器中,并且从而把读取的数据提供给应用程序进行进一步的处理。在ISR中的代码应当尽可能地短和紧凑,以使所述的间断最小化,并且从而不无益地影响整个系统的效率。
除了处理器借助于驱动器自动地进行主存储器与扩展卡之间的数据传输的可能性以外,还有一种直接的存储器存取,即所谓的DMA(DMA:直接存储器存取)传输。在所述的DMA传输中扩展卡直接地访问PC主存储器。为此,应当为所述卡从中读取数据或者向其中写入数据的主存储器区域,通过起动地址直接地通知所述的卡。这接着抵达PCI总线(主控)上的控制,并且在通过所述起动地址确定的主存储区域和PCI扩展卡之间独立地传输数据,不对处理器造成负荷。在数据传输结束以后,所述的卡触发间断,以通知驱动器成功进行了数据传输。
现代运行系统,譬如Windows NT/2000或者还有Linux,是所谓的多任务运行系统,这指的是,这些应当同时处理的多个应用程序的系统,提供毫秒范围内的小的定时盘形式的处理时间。通过这种定时盘方法对PC的使用者产生所有启动的应用程序同时工作的印像。因为精神上或者物理上与运行的应用程序数量无关,然而在主存储器上却只能够提供有限的范围,所以现代处理器采用虚拟存储器的概念,以绕过这种限制并且对所有的应用程序提供其所必需的存储器。
虚拟存储器的概念涉及,对全部的应用程序伪装出一个非常大的(虚拟的)主存储器(例如2GB),即使只能够得到相当小的物理存储器(例如128MB)。这是如此地达到的:把所述的存储器划分成许多小的单元,即所谓的页。这样的页的典型的大小为4,096字节。这时如果一个应用程序请求存储器(例如用于数据或者程序编码),就以一定的数量的页的形式向之提供所需要的存储器。把存储器划分成页由所有的现代处理器通过硬件支持。只要应用程序一访问存储器,所谓的存储器管理单元(MMU)就把虚拟的存储器地址翻译成物理的地址。如果应用程序A的定时盘正在运行,并且下一个应用程度B也需要同时刚好由第一应用程序使用的存储器,则就转移第一应用程序A的页,例如转移到硬盘上。以此不丢失应用程序A的数据或者代码,而应用程序B可以使用以前由应用程序A使用的物理存储器。
如果要在PCI扩展卡与PC的主存储器之间传输大量的数据,譬如视频数据,就在PC的主存储器中为这样的数据保留相应地大的区域。如果保留的区域大于一个传感器页(例如4,096字),从而该区域必然地由多个存储器页组成。然后这样的页具有逻辑上相继的虚拟地址。这种虚拟的地址由MMU映射到物理存在的存储器上,其中不必须通过翻译把虚拟的地址也映射到物理上相继的地址上。
与虚拟的页相应的物理的页,从而可以广泛分散地放在PC的物理的主存储器中。与之相反通过PCI总线的数据转移专一地只用存储器的物理地址工作。为了DMA传输按正确的顺序读取汇集在虚拟存储器中的数据,或者这样地写入数据,使数据接着汇集地放在虚拟的存储器中,则虚拟存储器必须访问各个段的随机地分配的物理的存储器地址。这意味在一个传输内总是只能够读或写4,096个字节。
当前这样地解决该问题:驱动器为每个虚拟的存储器页得出物理的地址并且向扩展卡提供。根据现有技术公知两种方法。根据第一方法,扩展卡上的PCI接口含有用于主存储器的页地址的有限的寄存存储器。根据第二方法,扩展卡上的PCI接口含有足够容纳完整的数据组的所有的页地址的寄存存储器。
作为用于阐述的例子,下面从扩展卡向计算机传输带有CCIR分辨率的视频图像着手。
一个CCIR图像由720*576个像点组成。在YCbCr格式中每个像点需要两个字节,由此得出一个CCIR图像的数据量为
720*576*2字节=829,440字节。
该829,440字节在PC的主存储器中占据
829,440/4,096=202,5页,也就是向上取整数为203页。
根据第一方法,扩展卡上的PCI接口含有用于主存储器的页地址的有限的(寄存)存储器。假定扩展卡比如有八个用于存储器地址的寄存器(8*32位=32字节),必须在数据传输开始前用有效的地址初始化该八个寄存器。然后可以由所述的卡独立地向PC的主存储器中每DMA传输最多
8*4,096=32,786字节。
在每个DMA传输以后必须触发一个间断,以通知进行了成功的传输,并且从而请求新的存储器地址。假定要向计算机中每秒传输25个CCIR图像,从而得出:
829,440*25 1/s=20,763,000字节/s
20,736,000字节/秒/32,768字节=632,8 1/秒因此仅为传输一秒的图像数据每秒要有633次间断。
根据第二方法,扩展卡上的PCI接口含有足够容纳完整的CCIR图像的所有的页地址的(寄存)存储器。对于这种应用情况必须至少有203个各32位的寄存器(812字节)。
从而对每个图像只需要一个间断证实成功的数据传输和为下个图像再请求203个(新的)地址。从而在每秒25图像时也产生每秒25个间断。
在上述的第一方法的阐述中,由于大量的间断请求显著地影响了系统性能。每个这样的请求迫使系统间断当时的应用程序,把CPU寄存器值当前的内容缓冲寄存,找出间断的源并且进行相应的ISR。接着在再生旧的CPU寄存器值后恢复以前间断了的应用。
该方法的优点是,由于要存储的页地址的数量很少在扩展卡的PCI接口中的地址寄存器(存储器位置等同芯片面积或者说FPGA资源)的需求少。
与第一方法相反,第二方法提供显著改善的性能,因为系统只必须处理相当地少的间断请求。但这种优点是靠明显高的硬件费用换取的。在所述的例子中硬件费用(芯片面积或者说FPGA资源)是第一方法中的硬件费用的25倍。
本发明的优点
本发明所述的方法用于通过数据总线传输数据,并且是在一个存储装置与一个与所述的存储装置通过数据总线连接的电子单元之间传输数据,所述的存储装置划分成页,其中可以借助于物理的地址访问所述的页。
根据本发明,所述的存储装置包含第一和第二存储区域,其中第一存储区域设置用于存储数据,而所述的第二存储区域含有第一存储区域各页的物理地址或者还有整个存储装置的物理地址。在第二存储区域中的物理地址的顺序在此相应于第一存储区域的虚拟页的顺序。
在数据传输的过程中从第二存储区域独立地向所述电子单元传输所需要的物理地址。以此使所述的电子单元知道物理地址的位置。独立地传输指的是没有指派给存储装置的系统处理器参与的传输。从而所述的方法把电子单元可以独立地并且没有系统处理器参与地从存储装置传输数据的方案还可以扩展到独立地传输地址数据。
从而根据本发明的方法结合了前述两种方法的优点,也就是很少的存储器需要和很小的系统负荷,并且避免其缺点。从而视迄今使用的数据传输方法,本发明的方法或实质上降低间断要求的数量,或者在另一方面大大地降低为实现PCI接口所需要的硬件资源的要求。在此真正的数据传输的方式不受到改变并且从而不受影响。只改变了页地址传输的方式和方法。
用根据本发明的方法从而一方面不再必要把所有为完全的数据传输所需要的地址保持在电子单元中的存储器中。从而消除了所述的第二种方法的缺点,即在电子单元的接口内部的高存储器要求。另一个方面,尽管电子单元不再存储所有的物理地址,也不再,如所述的第一方法那样,按照一定的数量处理的地址以后向系统发送间断请求并且从而触发间断正在运行的应用程序。
根据本发明所述的方法包含PCI接口和驱动器中的硬件实施和软件实施的改变。硬件实施既可以用于标准IC技术中的PCI桥也可以用于硬件说明语言中的PCI核心。所述的软件部分与采用的运行系统无关并且可以用在每种驱动器实施中。
有利地在数据传输的开始向所述的电子单元传输第二存储区域的起动地址。以此电子单元知道存储装置的页的位置,也就是存储装置的页的物理位置、物理地址。
根据本发明的方法不仅适用于把电子单元发出的数据写入存储装置也适用于读取存储在存储装置中的数据。
数据总线采用在PC机中广泛流行的PCI总线。
在本发明的方法的一个方案中,存储装置是在电子计算单元(计算机)的主板上的主存储器。电子单元拟定为插入在所述的主板中的插卡或者说扩展卡。在此情况下电子计算单元的CPU是系统处理器。
典型地将每DMA传输的物理地址向所述的电子单元传输。
根据本发明的存储装置划分成页并且包含第一存储区域和第二存储区域。第一存储区域拟定用于数据,就是说,在该存储区域中存储要读取的数据或者说在该存储区域中写入数据。在第二存储区域中存放第一存储区域的物理地址。这些地址使之能够访问存储在第一存储区域中的数据和/或使能够说明第一存储区域。
据本发明所述的存储装置优选地用作安排在电子计算单元的主板上的主存储器。
根据本发明电子计算单元(计算机)的主板的特征在于,根据本发明的存储装置起主存储器的作用。
据本发明的电子计算单元具有主存储器。主存储器设置为根据本发明的存储装置。计算单元的CPU起系统处理器的作用。主存储器优选地安排在主板上。
据本发明的系统包含一个根据本发明的存储器和一个根据本发明的电子单元。根据本发明的存储器和电子单元通过一种总线,优选地通过PCI总线相互连接以传输数据和地址。
其中电子计算设备或者说CPU、存储装置和电子单元集成为一个器件的根据本发明的电子装置是一种紧凑的系统。所有的部件例如集成在一个卡或者甚至于集成进单一的芯片(所谓的:芯片上的系统)中。
根据本发明的计算机程序具有程序代码工具,用于实施上面说明方法的所有步骤。所述的计算机程序在计算机上或者在计算单元上,特别是在根据本发明的电子计算单元上运行。
根据本发明的计算机程序产品正好包含所述的程序代码工具并且存储在可计算机读取的数据载体上。
本发明其它的优点和方案从说明书和附图中得出。
应当理解,上面所述的和下文中还要说明的特征不仅可以用于相应说明的组合,还可以以其它的组合或者单独地采用,而不脱离本发明的范畴。
附图说明
下面参照附图借助于实施例详细地说明本发明。在附图中:
图1用示意图示出PCI系统的基本结构。
图2示出带有PCI总线的扩展卡。
图3示出虚拟的和物理的地址之间的关系。
图4用示意图示出据本发明的电子计算单元的优选实施方案。
图5示出根据本发明的存储装置与扩展卡的协同作用。
图6用流程图示出根据本发明的方法的优选实施方案。
图1中示出PCI系统的基本结构,总体上用标号10标示出。
在图中有CPU12、所谓的主机桥14、主存储器16、第一PCI卡18、第二PCI卡20和PCI总线22。
第一PCI卡18包含第一PCI接口24和第一本地逻辑电路26。第二PCI卡20相应地具有第二PCI接口28和第二本地逻辑电路30。
PCI卡18和20用接口,即PCI接口24和28,连接在PCI总线22上。由此该本地逻辑电路26和30也连接在PCI-总线22上
CPU12和主存储器16的连接通过主机桥14进行。
图2示出带有槽口片42的扩展卡或者插卡40。
在插卡40上有PCI块44、所述的PCI块44又包含本地逻辑电路46和PCI接口48。如由双向箭头50所示,PCI卡接口48与电子计算单元的主板的PCI总线52连接。
在插卡40上还有第一逻辑电路块54、第二逻辑电路块56和第三逻辑电路块58。此外还示出接插件60,所述的接插件60保证牢固地固定插卡40并且包含数据交换的端接。
本地逻辑电路46通过本地的专用总线62与第一和第二逻辑电路块54和56连接。在本地逻辑电路46和第三逻辑电路块58之间还有第三连接64。
图3中说明虚拟和物理的地址之间的关系。
图中示出存储器的虚拟机构70,在下文中称为虚拟存储器,和存储器的物理机构72,在下文中称为物理存储器。在虚拟存储器70中含有数据元74。用标号76标示出的项0x14、0x13和0x12例如是虚拟地址。例如物理地址0xA9、0x7D和0x05用标号78标出。
物理存储器70中的数据元74包含三个页82,这三个页82用虚拟地址76标出。所述的页82具有逻辑电路上相继的虚拟地址。用标号84标示出物理存储器72中的三个物理的页。箭头86示出从虚拟存储器70向物理存储器72的指派。可以看出,与虚拟页82相应的物理页84广泛地分散在主存储器中。虚拟地址76从MMU映射到物理存在的存储器72上。
在PCI总线上的数据传输只用物理存储器72的物理地址78进行。为了DMA传输按正确的顺序读取虚拟存储器70中关联的数据,或者为了这样的写入数据,使得所述数据接着相关联地存放在虚拟存储器70中,必须在传输的范围内访问随机分布的物理存储器地址。
图4示出本发明的电子计算单元的优选实施形式,总体上用标号100标出。计算单元100例如是计算机或者说PC。图中可看出主板102、在所述主板上安排CPU104和存储装置106、即电子计算单元100的主存储器106。CPU104和主存储器106通过标准总线108相互连接。
主存储器106包含第一存储区域110和第二存储区域112。第一存储区域110拟定用于数据。这就是说,在该区域中存放应当访问的数据,和/或可以例如由插卡40写入在第一存储区域110中的数据。第二存储区域112中含有第一存储区域110或者整个主存储器106的物理地址78。
在图5中示出通过PCI总线124连接的电子计算单元121和扩展卡122之间的相互作用。电子计算单元121包含主存储器120。
用标号126示出划分在页128中的主存储器120的第一存储区域。页128典型地包含4,096字节。
用标号130标示出划分在地址存储位置132中的第二存储区域,即用于地址表的存储区域。
用标号134标示的项(0xE.7000等)是逻辑电路上相继的虚拟地址。项136(0x3.300等)是第一存储区域126的页128的任意分布的物理地址。箭头137示出含在第二存储区域130中的地址表向第一存储区域126的页128的物理地址136安排。就是说在第二存储区域130中,地址表中包含第一存储区域126的物理地址136。
用138标示的项0x1.9020和0x1.9000是第二存储区域130的地址存储位置132的物理地址,其中项0x1.9000再现物理地址,就是说所必需的起动地址。
在PCI扩展卡122中设有寄存存储器140,所述的寄存存储器140包含扩展卡122的本地寄存器。在这些寄存器中存放所必需的第二存储区域130的物理地址138。项0x1.9000代表地址表的基本地址。项0x1.9020例如是八个地址块长的地址表中下一个地址块的基本地址。
在地址存储器142中含有本地的目标地址,就是说第二存储区域130的内容,或者第一存储区域126的物理地址136。在此例中每PCI主DMA通过PCI卡122填充的深度是八个寄存器。从而地址存储器142包含八个页128。在寄存存储器140与地址存储器142之间设有地址管理逻辑电路144。
在初始化时,驱动器在PC的主存储器中设置图像所必需量的第一存储区域126。借助于所述的量驱动器计算占用第一存储区域126的必需的存储页的数量。由此出发设置第二存储区域130、得出第一存储区域126的物理地址136(在图5中0xF.6000、0x0.2000等等),并且存放在第二存储区域130中。驱动器把物理基本地址、标准地址、第二存储区域130中的地址表(在此例是0x1.9000)通知给扩展卡。扩展卡把这些值寄存在本地寄存器中,在此例中是寄存存储器140中。
在开始数据传输时,所述的卡从地址表的基本地址138(0x1.9000)出发从PC的主存储器120每PCI主机DMA读出为数据传输保留的区域(0xF.6000、0x0.2000等)的存储器页128的例如八个基本地址,并且本地存放进142中。随后同样地每PCI主机DMA把数据向以此方式标出的存储器页传输。一传输完8*4,096个数据字节,所述的卡就在另一个PCI主机DMA周期中为下八个存储器页保持该新的基本地址,也就是物理地址136。
PCI控制器的内部逻辑电路必须包含附加于常规的逻辑电路的用作管理地址表的存储器地址的另外的寄存器。与数据存储器的地址管理相似,在此,缓冲存储其存储小区又含有指向下个要使用的存储器页的地址(0x0.C000)的地址(0x1.9020)。取代于触发根据公知的第一方法的间断请求,这时本地的地址寄存器独立地由PCI控制器刷新。
通过根据本发明的方法使之能够,尽管有较低数量的目标地址寄存以及由此节省了硬件资源,但是每数据块却触发一个间断。这样的间断还在很大的程度上与数据块的大小无关。在大于4兆字节的数据块时,必要时采用多个地址表,因为由此地址表本身占有大于一个存储器页,或者通过每数据块一个以上的间断请求请求刷新地址表。
在图6中用流程图表现如本发明所述的方法的优选实施方案。用标号150示出通过驱动器实施的方法步骤。标号152指出在扩展卡上实施的方法步骤。
在步骤154中确定第一存储区域,即数据存储器,而在步骤156中确定地址表或者说第二存储区域。接着在步骤158中得出数据存储器的物理地址并且存放在地址表中。
如用箭头160指出,接着进行扩展卡的初始化和地址表的起动地址的传输。
在开始数据传输时,如用箭头162示出,首先在步骤164中把地址表的第一部分从PC主存储器中读入扩展卡的本地存储器中。接着在步骤166中进行存储器页x+0的(有效)数据的传输。如果还没有完全传输数据块,就在步骤168中进行页x+1的传输。170重复这个过程,直到在步骤172中进行存储器页x+7的数据传输。如虚线的双向箭头174所示,所述的传输按PCI主DMA地进行。
在步骤176中检验是否传输的数据块结束,就是说已经完全地传输了。如果不是这样的情况,流程按箭头178返回方法步骤164。如果完全地传输了该数据块,如箭头180所示,进行一次间断。
接着在步骤182中处理接收的数据,或者准备新的发送数据。
PCI扩展卡能够作为总线主控器,独立地,并且没有系统处理器参与地每DMA从PC的主存储器读取数据或者向之写入数据。然而在此扩展卡需要应当从中读出或者向其中写入的存储器页的物理地址。在对现有技术说明的第二方法中这些地址由驱动器并且从而由系统处理器或者由CPU主动地写入PCI接口的寄存存储器中。
根据本发明的方法扩展按照扩展卡能够独立地、没有CPU参与地进行按DMA的数据传输的该方案,现在也扩展到独立的传输地址。除了用作数据存储器的PC的主存储器中的第一存储区域以外,还设置有第二个,一般地较小的存储区域。在该第二存储区域中现在驱动器存储由之组成第一存储区域的存储器页的所有的物理地址。
在数据传输开始时,现在向扩展卡上的PCI接口只再传输第二存储区域的起动地址。以此扩展卡知道主存储器页的物理地址的位置。在数据传输过程中,现在扩展卡可以视需要独立地把第一存储区域中的数据用的目标地址或者源地址从第二存储区域中取出。以此一方面不再需要在扩展卡上保持存储器中的为完整的数据传输所需要的所有的地址。消除了前述第二方法的缺点,也就是在扩展卡上PCI接口的高的存储器要求。另一方面,尽管扩展卡不再存储所有的物理地址,也不再如同第一方法那样例如在八个处理完的地址以后向系统发送一个间断请求以此触发运行着的应用程序的间断。
所述的卡自己每DMA从第二存储区域向内部的地址寄存器中读取下页地址。由此为每个数据块仅能发一次间断。因此避免了根据第一方法的高数量的间断。因为现在也不再必须在ISR中传输页地址,所以用于处理该例程的时间同样显著地减少了。
在此,地址用的第二存储区域应当尽可能地不超过一个页的大小,也就是例如不超过4,096字节,因为否则还要为保持在第二存储区域中的地址需要多个页地址。然而这在一般地情况下是完全足够的,如以下的计算例所示。
在现代处理器中地址为32位大小,也就是4字节。从而可以在一个存储页中存放
4,096字节/4字节=1024
个(页)地址。以此可以适应1024个页。以此方式可编址的存储区域包含:
1,024*4,096字节=4,194,304字节=4兆字节。
与此无关地,上述的概念却还是可以用于多于一个这样的地址表。从而还可设想传输广泛的数据量。在这样的情况下,要把多个存储器页定义为地址表,并且把其开始地址存放在PCI接口中。

Claims (15)

1.一种传输数据的方法,用于通过数据总线(22、52、124),在一个存储装置(16、106、120)和一个与所述的存储装置(16、106、120)通过数据总线(22、52、124)连接的电子单元(40、122)之间传输数据,所述的存储装置(16、106、120)划分成页(82、84、128)并且包含第一存储区域(110、126)和第二存储区域(112、130),其中可以借助于物理的地址(78、136、138)访问所述的页(82,84,128),并且其中第一存储区域(110、126)设置用于存储数据,而所述的第二存储区域(112、130)含有第一存储区域(110、126)的页(82,84,128)的物理地址(78、136、138),其中在数据传输的过程中从第二存储区域(112、130)独立地向所述电子单元(40、122)传输所需要的物理地址(78、136、138)。
2.如权利要求1所述的方法,其中,在数据传输的开始时向所述电子单元(40、122)传输第二存储区域(112、130)的开始地址(138)。
3.如权利要求1或2所述的方法,其中,在数据传输时,由电子单元(40、122)向存储装置(16、106、120)中写入数据。
4.如权利要求1或2所述的方法,其中,在数据传输时存放在存储装置(16、106、120)的数据由电子单元(40、122)读取。
5.如权利要求1至4之一所述的方法,其中,数据总线(22、52、124)是PCI总线(22、52、124)。
6.如权利要求1至5之一所述的方法,其中,存储装置(16、106、120)是在电子计算单元(100、121)的主板(110)上安置的主存储器(16、106、120),并且将插入在所述的主板(110)的插卡位置(60)中的插卡(40、122)设置为电子单元(40、122)。
7.如权利要求1至6之一所述的方法,其中,每DMA传输地向所述的电子单元(40、122)传输物理地址(78、136、138)。
8.一种存储装置,所述的存储装置划分成页(82、84、128、132)并且包含一个第一存储区域(110、126)和一个第二存储区域(110、130),其中,第一存储区域(110、126)设置用于数据,并且在第二存储区域(112、130)中存放第一存储区域(110、126)的页(82、84,128)的物理地址(78、136、138)。
9.如权利要求8所述的存储装置(16、106、120)用作安排在电子计算单元(100)的主板(110)上的主存储器(16、106、120)的应用。
10.一种电子计算单元(100、121)的主板,其中如权利要求8所述的存储装置(16,104,120)起主存储器(16、106、120)的作用。
11.一种电子计算单元,所述的电子计算单元带主板(110)和安排在主板(110)上的一个主存储器(16、106、120),其中如权利要求8所述的存储装置(16、106、120)设置作为主存储器(16、106、120)。
12.一种系统,所述系统带有如权利要求8所述的存储装置(16、106、120)和通过数据总线(22、52、124)相互连接的电子单元(40、122)。
13.一种电子装置,其中,电子计算装置、如权利要求8所述的存储装置和电子单元集成在一个器件内。
14.一种具有程序代码工具的计算机程序,用于在计算机上或者在相应的计算单元(100、121)特别是在如权利要求11所述的电子计算单元(100、121)上运行所述的计算机程序时实施如权利要求1至7之一所述方法的所有步骤。
15.一种具有程序代码工具的计算机程序产品,该程序代码工具存储在可计算机读取的数据载体上,用于在计算机上或者在相应的电子计算单元(100、121)上特别是在如权利要求11所述的电子计算单元(100、121)上运行所述的计算机程序时实施如权利要求1至7之一所述的方法。
CNA038046814A 2002-02-26 2003-01-20 通过数据总线传输数据的方法 Pending CN1639700A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10208300.2 2002-02-26
DE10208300A DE10208300A1 (de) 2002-02-26 2002-02-26 Verfahren zum Übertragen von Daten über einen Datenbus

Publications (1)

Publication Number Publication Date
CN1639700A true CN1639700A (zh) 2005-07-13

Family

ID=27675005

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA038046814A Pending CN1639700A (zh) 2002-02-26 2003-01-20 通过数据总线传输数据的方法

Country Status (9)

Country Link
US (1) US20050172048A1 (zh)
EP (1) EP1481329B1 (zh)
JP (1) JP2005518607A (zh)
KR (1) KR20040091075A (zh)
CN (1) CN1639700A (zh)
AU (1) AU2003206629A1 (zh)
DE (2) DE10208300A1 (zh)
TW (1) TW200305083A (zh)
WO (1) WO2003073301A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589815B (zh) * 2016-03-04 2018-10-12 北京左江科技股份有限公司 一种存储器间的数据搬移的方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5691928B2 (ja) * 2011-08-05 2015-04-01 富士通株式会社 プラグインカード収容装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4135240A (en) * 1973-07-09 1979-01-16 Bell Telephone Laboratories, Incorporated Protection of data file contents
US5890220A (en) * 1991-02-05 1999-03-30 Hitachi, Ltd. Address conversion apparatus accessible to both I/O devices and processor and having a reduced number of index buffers
US5765008A (en) * 1994-10-14 1998-06-09 International Business Machines Corporation Personal computer with riser card PCI and Micro Channel interface
US5758182A (en) * 1995-05-15 1998-05-26 Nvidia Corporation DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus
US5623692A (en) * 1995-05-15 1997-04-22 Nvidia Corporation Architecture for providing input/output operations in a computer system
US5864876A (en) * 1997-01-06 1999-01-26 Creative Technology Ltd. DMA device with local page table
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6301645B1 (en) * 1998-01-20 2001-10-09 Micron Technology, Inc. System for issuing device requests by proxy
US6092124A (en) * 1998-04-17 2000-07-18 Nvidia Corporation Method and apparatus for accelerating the rendering of images
US6697076B1 (en) * 2001-12-31 2004-02-24 Apple Computer, Inc. Method and apparatus for address re-mapping

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589815B (zh) * 2016-03-04 2018-10-12 北京左江科技股份有限公司 一种存储器间的数据搬移的方法

Also Published As

Publication number Publication date
AU2003206629A1 (en) 2003-09-09
JP2005518607A (ja) 2005-06-23
WO2003073301A1 (de) 2003-09-04
WO2003073301A8 (de) 2004-08-05
US20050172048A1 (en) 2005-08-04
EP1481329A1 (de) 2004-12-01
DE50307369D1 (de) 2007-07-12
DE10208300A1 (de) 2003-09-04
TW200305083A (en) 2003-10-16
EP1481329B1 (de) 2007-05-30
KR20040091075A (ko) 2004-10-27

Similar Documents

Publication Publication Date Title
CN1242330C (zh) 执行并飞“异或”运算的方法和系统
CN1241142C (zh) 在智能卡和主站之间通信的方法
US9934173B1 (en) Pseudo cut-through architecture between non-volatile memory storage and remote hosts over a fabric
CN105453044B (zh) 用于分布式处理任务部分指配的技术
CN1054223C (zh) 用于分级数据超高速缓冲存储器系统中同步化的系统和方法
CN1213374C (zh) 靠近局部输入/输出总线的桥接器中的输入/输出地址转换装置及方法
JP5638069B2 (ja) メモリデバイスによりホストメモリアクセスを制御するための方法およびシステム
CN1143230C (zh) 一种多处理器系统内的分区存储器保护的装置和方法
CN1088216C (zh) 加载在mca适配卡上的pci扩展卡的配置和ram/rom控制
CN1737781A (zh) 改进数据传送的控制器设备和方法
CN101030182A (zh) 执行dma数据传输的设备和方法
JP4879981B2 (ja) メモリのマイクロタイリングによる投機的なリターン
KR20070048797A (ko) 프로세서 내의 dma 컨트롤러를 사용하여 프로세서캐시로 데이터를 전송하는 방법
CN1795437A (zh) 用于块内页面分组的方法及设备
CN1713164A (zh) 可自主处理多事务传输要求的dma控制器及数据传输方法
CN1922598A (zh) 用于支持pci桥中的多功能pci设备的延迟事务的方法与装置
CN1749967A (zh) 数据处理系统
CN1881196A (zh) 利用外部装置通过通用串行总线控制主机的方法及其系统
CN101059791A (zh) 虚拟通用串行总线设备系统及其数据传输方法
CN1218227A (zh) 数据处理系统和微型计算机
TW202040367A (zh) 記憶體裝置、記憶體定址方法與包括非暫時性儲存媒體的物品
CN1926527A (zh) 使用多个存储器设备的便携数据存储设备
CN1851677A (zh) 嵌入式处理器系统及其数据操作方法
CN1262932C (zh) 通过对插入卡的识别来建立数据传送模式的装置和方法
CN1732446A (zh) 存储器控制器和用于对存储器写入的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned