CN1120424C - 把处理器数据突发传送到i/o装置或反向传送的方法 - Google Patents
把处理器数据突发传送到i/o装置或反向传送的方法 Download PDFInfo
- Publication number
- CN1120424C CN1120424C CN98105843A CN98105843A CN1120424C CN 1120424 C CN1120424 C CN 1120424C CN 98105843 A CN98105843 A CN 98105843A CN 98105843 A CN98105843 A CN 98105843A CN 1120424 C CN1120424 C CN 1120424C
- Authority
- CN
- China
- Prior art keywords
- processor
- cache
- controller
- data
- input
- 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.)
- Expired - Fee Related
Links
Images
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/0877—Cache access modes
- G06F12/0879—Burst mode
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)
- Bus Control (AREA)
- Multi Processors (AREA)
- Record Information Processing For Printing (AREA)
Abstract
一种I/O桥单元用来允许利用正常的可超高速缓存指令在处理器和I/O装置之间进行突发传输,而不必改变处理器或其接口。该I/O桥单元截获处理器向指定存储器页发送的可超高速缓存指令并处理“触发”命令,以执行中间超高速缓存模拟逻辑。最后在超高速缓存模拟缓冲区和处理器或I/O装置之间进行适当字节长度的突发通信。
Description
技术领域
本发明涉及通过I/O总线把处理器数据突发传送到I/O装置或反向传送的方法。
背景技术
计算机系统,诸如计算机工作站由于在至少一个微处理器和各种子系统之间信息传递而能工作。微处理器和子系统之间的通信是通过被称为总线的通信路径进行的。在现代系统中,往往需要输入/输出(I/O)子系统,诸如监视器、图形接口和交互式数据录入(IDE)型装置来通过总线接收来自微处理器的信息或发送信息到微处理器。
今天的计算机系统用速度越来越快的微处理器设计;但是,I/O子系统跟不上步伐。就必须穿过的芯片和总线以及向这些装置编程操作的更大的延迟时间而言,I/O装置离开处理器更远了。当处理器用于发送数据到I/O装置或接收来自I/O装置的数据的应用时,这导致潜在的性能损失。这些应用可以包括利用处理器来控制图形适配器和IDE型装置。
一般说来,这些I/O装置都”映射入”处理器的存储器空间。不是象普通较老式的处理器那样发出输入/输出指令,而是今天的处理器发出存储器型指令(例如,Load(取数)或Store(存数))来发送/接收信息到I/O装置,就象I/O装置是存储器的一部分。但是,这些装置不在存储器内,它们实际上附在I/O总线,诸如接口转换装置(ISA)或包电路接口(PCI)上。这些装置必须映射到处理器存储器的非超高速缓存空间,因为这些装置并不遵循可超高速缓存协议的规则,诸如完全相干性、突发排序(burst ordering)、死锁防止等。因为这些装置处在非超高速缓存的空间中,每一次处理器访问都必须发出到外部总线,而且只能完成很小的数据传输,每一个Load或Store一般只传输1-8字节的数据。因为这些总线运行速度比今天的处理器慢几倍,通过总线结构多次传输(仲裁、穿过异步边界等)产生严重的性能损失。
相反,通过总线一次”突发传输”大量的数据,使处理器发送或接收数据到可超高速缓存或从可高速缓存接收的能力更有效得多。可超高速缓存系统,不是每条指令传输1-8字节,而是一条指令突发传输整个超高速缓存行的数据(一般32,64或128字节)。
在当前先有技术用来完成非超高速缓存取数的方式中,处理器必须等待接收每一个它所请求的来自I/O装置的数据包。通过使处理器能够借助访问超高速缓存(1-2处理器周期)、而不是完成从映射到要求的I/O装置的非超高速缓存的额外的取数(几百处理器周期)、来访问额外的数据,本发明模拟来自I/O装置的超高速缓存行读,有助于克服先有技术系统的这些限制。
本发明这一方面的第二个好处是,它允许处理器利用其超高速缓存,进行传输前或传输后的数据处理,而同时传输额外的数据到I/O装置或传输来自I/O装置的额外数据。这样一种”流水线”特点用当前的编程I/O传输方法是不可能的。
发明内容
本发明涉及一种在计算机系统内突发传输处理器数据到I/O装置或把来自I/O装置的数据突发传输到处理器的方法。当处理器写到或从非超高速缓存的I/O装置读时,本发明方法用来模拟可超高速缓存系统的突发传输能力。这样,本发明方法是针对先有技术系统中发现的许多缺点的,即处理器必须利用直接存储器存取(DMA)方式向非超高速缓存的I/O装置发送数据或从其接收数据。
根据本发明的第一方面,提供一种在输入/输出装置和处理器之间突发传输数据的方法,其特征在于包括下列步骤:
(a)截获处理器的请求与输入/输出装置通信的可超高速缓存命令;
(b)执行中间超高速缓存模拟逻辑,以处理所述处理器命令;以及
(c)在超高速缓存模拟缓冲区和输入/输出装置之间传送数据字符串。
根据本发明的第二方面,提供一种具有处理器和输入/输出装置的计算机系统,其特征在于包括:
(a)截获处理器的请求与输入/输出装置通信的可超高速缓存命令用的装置;
(b)执行中间超高速缓存模拟逻辑、以处理所述处理器命令用的装置;以及
(c)在超高速缓存模拟缓冲区和输入/输出装置之间传送数据字符串的装置。
本发明是在允许信息通过至少一条总线在至少一个微处理器和至少一个I/O装置之间进行传输的计算机工作站系统的环境内实现的。最佳实施例包括模拟超高速缓存行的三种数据传输方式:从处理器向I/O装置WRITE(写);把数据从I/O装置传输到处理器的READ(读);以及把数据从一个I/O装置传输到处理器以外的另一个I/O装置的MOVE(移动)。这些功能是通过在收到从处理器到系统存储器/I/O控制器的”Write Trigger(写触发)”或”Read Trigger(读触发)”命令而起动的。在最佳实施例中,本发明方法的功能是在I/O桥单元内完成的,该单元是存储器/I/O控制器的一部分。收到触发命令时,I/O桥单元引发在I/O装置和内部超高速缓存模拟缓冲区之间传输数据的中间处理过程。本发明方法还把I/O桥单元设置得能够截获对被指定为准备参与本发明体现的模拟超高速缓存行传输方式的页的存储器页进行的处理器可超高速缓存-读和-写命令。这是通过利用存储器/I/O控制器中的寄存器实现的,后者装入准备映射到主存储器空间以外并用作超高速缓存模拟缓冲区的指定存储器页的地址。然后,I/O桥单元可以使处理器可超高速缓存-读和写指令与I/O空间或存储器映射空间中对应的I/O适配器地址相联系。这是通过使用存储器/I/O控制器中的装入了I/O适配器地址的寄存器完成的。
附图说明
下面的书面描述将结合附图解释本发明的前景方面和其他特点。附图中:
图1是可以利用本发明的计算机系统;
图2是描述用于实现本发明方法的各种存储器分配和寄存器的内部存储器映射的示意图;
图3是举例说明本发明方法中微处理器超高速缓存、I/O桥单元和I/O总线之间数据流的方框图;
图4举例说明”触发”命令的格式;
图5是涉及本发明方法WRITE(写)部分的处理器功能的流程图;
图6是涉及本发明方法READ(读)部分的处理器功能的流程图;
图7是在本发明方法中I/O桥单元(“控制器”)操作的流程图;
图8是图7所示流程图的继续,是本发明方法的控制器读触发部分的流程图;及
图9是举例说明涉及本发明方法MOVE(移动)部分的处理器功能的流程图,它允许信息从一个I/O装置到另一个I/O装置的模拟超高速缓存行的突发传输。
具体实施方式
本发明的方法是在带有至少一个微处理器和至少一个I/O装置的能够利用至少一条总线来彼此传输信息的计算机工作站系统的环境下实现的。计算机系统一般都与软件操作系统一起使用,后者控制微处理器和I/O装置之间的通信,这样的计算机系统举例说明于图1。计算机工作站系统是互联组件的结合。例如,微处理器10通过数据链路14连接到数据总线20,并通过数据链路16连接到地址总线22。外加的微处理器10b,10c用类似的方法连接到处理器数据总线20和处理器地址总线22。仲裁器12一般处理处理器要求分配对数据总线20和地址总线22的访问权的请求。尽管最佳实施例包括多个处理器10a,10b,10c,但是作为另一方案的实施例可以只包括一个处理器。单处理器系统不需要仲裁器12。
计算机工作站系统另外还包括至少一个系统存储插件46或存储模块。一旦仲裁器12应处理器10的请求分配对数据总线20和地址总线22的访问权,这样的请求通常是由存储器控制器逻辑通过数据芯片32和地址芯片34来处理的。存储器控制器可以选择性地与I/O总线控制器功能结合成一个称为存储器/I/O总线控制器30的组件。存储器/I/O总线控制器30控制处理器对存储插件46和对I/O中间总线36的访问。I/O中间总线36通过数据链路38连接到一个或多个I/O桥40,后者的功能也可以包括在存储器/I/O总线控制器30内。在最佳实施例中,本发明的方法是在I/O桥40中完成的。应该指出,尽管在最佳实施例中,模拟逻辑是由处在存储器/I/O总线控制器30中的I/O桥完成的,但是某些支持功能必须由处理器10完成。这些处理器功能将在下面讨论图5,6,7时详细描述。
正如后面将要解释的,I/O桥截获触发命令和处理器10与输入/输出装置60通信的请求。然后,I/O桥40处理这些请求,以便允许数据通过I/O总线50到或自I/O装置60的模拟超高速缓存行的突发传输。下面还将在讨论图7时解释这种功能。
图2是描述实现本发明用的各种寄存器和存储器空间分配的内部存储器映射的示意图。超高速缓存行缓冲区地址寄存器(“CLBAR”)100一般含有页地址112用来”映射出”存储器46,并用来把数据传输到I/O装置。CLBAR 100中的地址112对应于映射页108的初始存储器地址。I/O目标地址寄存器(“IOTAR”)102一般含有非超高速缓存的存储器中的I/O适配器地址114。IOTAR中的地址114对应于I/O装置60的存储器映射I/O空间内的初始地址。
与图2相联系,应该指出,最佳实施例含有多个CLBAR寄存器100和多个IOTAR寄存器102。索引X 308用作访问要求的特定CLBAR100/IOTAR 102寄存器对的偏移量。
最后,触发地址空间104是由存储器/I/O总线控制器30用来对触发命令进行译码的地址范围,下面将联系图4解释。
图3是微处理器10、微处理器超高速缓存200、I/O桥40和I/O总线50之间数据流的示意图。若处理器10请求发送或接收来自与指出指定”映射页”108的CLBAR 100的内容112相匹配的地址的数据,则I/O桥控制器40将截获该指令,并进行下面将描述的I/O突发传输模拟逻辑,最后在超高速缓存模拟缓冲区120和I/O装置之间通过I/O总线50传输适当数量的数据。否则,系统将用众所周知的方法进行到存储器46的超高速缓存线操作。
图4是”触发”命令300数据格式的示意图。触发命令300是由处理器10向存储器/I/O控制器30发出的。触发命令300最左段各位302含有落在控制器30用来对触发命令进行译码的触发地址空间104范围内的地址。中段各位304含有数字索引308,它指出哪一对地址CLBAR100/IOTAR 102对用于要求的操作。最右段各位306含有代表在要求的操作中要传输的数据字节数的数值310。
处理器写操作
图5是举例说明起动本发明方法WRITE(写)操作时处理器10执行的步骤400的流程图。首先,在步骤402,处理器试图用存储器页108的实地址112来初始化存储器/I/O控制器30内的索引CLBAR寄存器100。类似地,在步骤404,处理器10还试图用PCI空间106中映射I/O适配器的实地址114来初始化存储器/I/O控制器30中的IOTAR寄存器102。索引X 308用来确定哪一对CLBAR 100/IOTAR 102寄存器对将用于该操作。应该指出,在步骤402,404中的这些初始化请求将由存储器/I/O控制器30接收,参见图7的步骤602。若读或写未决,(参见图7的步骤604),则在步骤402、404的初始化请求被控制器30拒绝(参见图7的606),而且必须由处理器10重试。一旦适当的CLBAR 100/IOTAR 102对初始化成功,接着在步骤406,处理器便在处理器超高速缓存200中分配一行202准备用于写操作。所分配的超高速缓存行是与页108相联系的,该页的地址112编程在索引CLBAR寄存器100上。在步骤408,处理器10将指向超高速缓存行202开始地址的指针(未示出)初始化。内部超高速缓存行的字节计数(未示出)也复位到0。接着,在步骤410,处理器10利用处理器对其地址112已装入当前正在使用的索引CLBAR 100中的存储器页108的Store(存数)指令把目的地是I/O装置60的数据输入超高速缓存行202。内部超高速缓存行指针(未示出)随着每一条处理器Store指令而更新。在步骤412,内部超高速缓存行字节计数寄存器(未示出)也进行更新,以反映存入超高速缓存行202的字节数。
在步骤414,当处理器10为当前写操作完成了向超高速缓存行202的数据输入时,它使出自超高速缓存200的数据以满的超高速缓存行202的突发交易方式送给存储器/I/O控制器30,步骤416。这一动作产生处理器写命令,后者被控制器30截获并处理(参见图7的680)。为了起动超高速缓存模拟缓冲区120的中间处理,在步骤418,处理器以图4所示的格式发出写触发命令300。写触发命令300在最右段各位含有内部超高速缓存行字节计数(未示出)的当前值308,还在中段各位304含有索引X 308。可以重复步骤408至418,以完成额外的I/O写,直至在步骤420处理器再没有数据要送为止。
处理器读操作
图6是举例说明起动本发明方法的READ(读)操作时处理器10执行的步骤500的流程图。首先,在步骤502,用存储器页108的实地址112来初始化存储器/I/O控制器30内的CLBAR寄存器100。类似地,在步骤504,还用PCI空间106中映射I/O适配器的实地址114来初始化存储器/I/O控制器30中的IOTAR寄存器102。索引X 308用来确定哪一对CLBAR 100/IOTAR 102寄存器对将用于该操作。若读或写未决(参见图7的604,606),则初始化步骤502,504将不由存储器/I/0控制器30处理,而必须由处理器10重试。一旦初始化成功,在步骤506,处理器将以图4所示格式发出读触发命令300。触发命令300最右段各位306中的数值310代表准备从I/O装置60传输到处理器超高速缓存200的数据字节数。应该注意,若超高速缓存模拟缓冲区108已经满,则在步骤506由处理器10发出的读触发命令存储器/I/O控制器30将不予处理(见图7的616)。在这样一种情况下,处理器10必须重试读触发命令。
为了避免读”陈旧”数据,在步骤508,处理器首先使处理器超高速缓存行202非法化。处理器10通过向处于索引CLBAR寄存器100内的地址112发出一个”数据超高速缓存非法化”指令来完成这个非法化功能。存储器/I/O控制器30处理在步骤506由处理器10发出的读触发命令,并利用突发传输(参见图8的704,706)从I/O填充超高速缓存行缓冲区120之后,超高速缓存行缓冲区120将准备好读入处理器超高速缓存行202。于是,在步骤510,处理器向已经装入索引CLBAR寄存器100的实地址120发出READ(读)指令。这个操作的功能是超高速缓存行数据块从与索引CLBAR寄存器100中的实地址112相联系的超高速缓存行缓冲区120转储到处理器超高速缓存行202。然后,在步骤512,处理器10便可以进一步处理超高速缓存行202中的数据。处理器可以重复步骤506-512来请求下一个I/O读,直至在步骤514处理器不再请求它们为止。
处理器MOVE(移动)操作
对于某些应用,处理器10可以命令控制器30从I/O装置60把一串数据读入超高速缓存模拟缓冲区120,再对IOTAR 102编程并触发写到另一个I/O装置60,而不再命令把数据传输到处理器超高速缓存120。对于压缩或解压数据、编码数据等,这是一种非常有用的功能。这种功能是本发明的MOVE(移动)部分。与此功能相联系的步骤800示于图9的流程图中。为了起动该操作,处理器10请求802用准备用于MOVE操作的存储器页108的实地址来将索引CLBAR寄存器100初始化。处理器10还请求用PCI空间106中的I/O装置的实地址114来将索引IOTAR寄存器102初始化。该地址114对应于源I/O装置60。就象处理器READ(读)和WRITE(写)功能一样,若读或写未决(见图7的604,505),对初始化步骤802和804存储器/I/O控制器30将不予处理。一旦初始化成功,在步骤806,处理器10便以图4所示的格式发出读触发命令300。(这将使存储器/I/O控制器30在步骤704发出一个读脉冲串到在索引IOTAR 102中发现的I/O地址114,并在步骤706把读数据放入与CLBAR 100中存储器页地址112相联系的超高速缓存模拟缓冲区120中,见图8)。然后在步骤808处理器请求用目标I/O装置60的实地址来初始化索引IOTAR寄存器102。接着,在步骤810,处理器控制器30发出写触发(这将使存储器/I/O控制器30把超高速缓存模拟缓冲区120中的数据送到目标I/O装置60。见图7)。步骤804-810可以一直重复到处理器不再请求MOVE操作为止,步骤812。
存储器控制器的操作
图7是在本发明方法中存储器/I/O控制器(“控制器”)30(具体地说,I/O桥单元40)所完成的功能流程图。控制器30完成4基本类功能:1)分别初始化CLBAR 100和IOTAR 102寄存器的内容112,114;2)处理触发命令300;3)处理来自处理器10的超高速缓存行”读”命令;及4)处理来自处理器10的超高速缓存行”写”命令。图7中用的步骤602-608表示的初始化是比较小的功能;本发明方法控制器30的大部分工作涉及触发命令300、”读”命令和”写”命令的处理;
初始化
当处理器10试图从对应于给CLBAR 100或IOTAR 102分配的地址范围的地址读或写时,这样的试图被控制器30截获。在步骤602,控制器30检查来确定处理器10试图做的读或写的目的地是否就是这些寄存器100,102中的一个。若是,则在步骤604控制器30确定读或写超高速缓存行突发模拟是否正在进行中。(当处理触发命令时,控制器设置这些”未决”指示器,以锁住到/自寄存器100,102的读或写。见图7的步骤614和图8的步骤702)。若是,则控制器30拒绝读或写,使处理器10重试此操作。若无读或写是未决的,则控制器30将正如处理器10所请求的,更新CLBAR 100或IOTAR 102寄存器的内容112,114。
触发命令
模拟的突发超高速缓存行与I/O装置60通信是一个两步过程。为了使最后的步骤(把数据传输到处理器超高速缓存200或传输来自超高速缓存200的数据)能够发生,必须完成中间步骤。对”触发”命令300的处理代表这个中间步骤。这个中间步骤涉及用写操作把数据从内部超高速缓存模拟缓冲区120转储到I/O装置60。对于读操作,这个中间步骤涉及把数据从I/O装置60取入内部超高速缓存模拟缓冲区120。触发命令300向处理器10指出,有多少字节数据310要从或到I/O装置60传输到或从内部超高速缓存模拟缓冲区120,及使用哪一对CLBAR 100/IOTAR 102寄存器。索引IOTAR 102寄存器中的这些地址114向控制器30指出哪一个I/O装置涉及此操作。索引CLBAR 100寄存器中的地址112向控制器30指出哪一个映射页涉及此操作。从处理器10接收到触发命令时,控制器30通过确定最左段各位302含有落在作为触发命令空间104的地址范围内的地址而把它识别为触发命令(610)。这个地址104由控制器30使用来对触发命令300进行解码。若控制器30接收到读触发(命令),则控制器正如下面将联系图8说明的那样完成读触发操作。若控制器30接收到写触发(命令),则控制器完成中间I/O缓冲区转储步骤如下。
首先,在步骤614,控制器30设置写未决锁存器(未示出),以便锁住处理器10读至或写自CLBAR 100或IOTAR 102寄存器的试图。所述写未决锁存器对于控制器30写命令的处理也是关键(见图7的688)。在步骤616,若与索引CLBAR寄存器100中地址112对应的超高速缓存模拟缓冲区120满时,则该缓冲区已经准备好向I/O装置60的传输。于是,在步骤618,控制器30将通过完成向索引IOTAR 102中的地址突发移动(数据),从这样的超高速缓存模拟缓冲区120向I/O装置60送数据。于是,控制器把写触发命令300中指出的数据的字节数310的通过I/O总线50传输到PCI空间160中的适配器。这样的数据传输之后,控制器30将”缓冲区满”指示器(未示出)和写未决锁存器(未示出)复位。用本发明方法的这一部分,控制器30截获超高速缓存行写,并完成向I/O装置60的适当字节长度的突发传输的中间步骤。
应该指出,处理器10可以以任何顺序发出在步骤418的写触发命令和在步骤416的写超高速缓存行。但是,这两个都必须在超高速缓存模拟缓冲区120中的数据能够在步骤618送到I/O装置之前发生。这就是为什么要在步骤616进行检查以核查收到步骤610的写触发命令时缓冲器120已经填满和在步骤688进行检查以核查在步骤680收到写命令时写触发命令已经收到。
若在步骤612读触发已经收到,则控制器30将完成图8所示的步骤700-710。在步骤700,控制器30将确定中间模拟超高速缓存行突发读操作已经未决。若是这样,在步骤710,控制器30拒绝从控制器30发出的读触发传输,使处理器10重试传输。若以前没有中间超高速缓存行突发模拟读正在进行,则控制器30将接受该传输,并在步骤702通过设置”读未决”锁存器(未示出)来启动读模拟。然后,在步骤704,控制器30通过发出读突发到其地址在索引IOTAR 102中的I/O装置60而进行中间读。这一传输过程接收以前由控制器30译码在步骤610、612的读触发命令最右字节305中指出的字节数310的数据。在步骤704的中间I/O读操作过程中接收的数据是储存在与索引CLBAR寄存器100中的地址相联系的超高速缓存模拟缓冲区120中的。然后,在步骤706,控制器30设置”缓冲区满”锁存器(未示出)以便指出中间读步骤已完成,所以,数据已经准备好向处理器超高速缓存200传输。因为中间读步骤已经完成,所以控制器30便将”读未决”锁存器(未示出)复位。
读命令
正如前面联系图6所描述的,在本发明方法READ(读)部分的过程中,处理器10在步骤506发出”读触发”命令来启动步骤508的中间缓冲区的处理,然后在步骤510再向装在索引CLBAR寄存器100中的实地址112发出读指令(“读命令”)。与控制器30处理这个读命令相关的步骤650-660示于图7。
若控制器30确定,读命令是在步骤510由处理器10发向控制器30的,则在步骤652控制器30检查以确定处理器10是否已试图从落在CLBAT寄存器100所分配的地址范围内的地址读。若不是,则在步骤670该读以众所周知的方法作为正常超高速缓存行读操作处理。若该读命令已经对CLBAR 100地址作了尝试,则控制器截获它,并完成下述的步骤654-660。
首先,在步骤654控制器30确定与索引CLBAR 100相关的超高速缓存模拟缓冲区120是否满了,因而向处理器10传输就绪。若是,则在步骤656超高速缓存模拟缓冲区120中的数据用突发方式送到处理器10,这样便完成模拟方法的第二步骤。若超高速缓存模拟缓冲区120不满,则在步骤654控制器30不断查询缓冲区120的状态来等待从I/O装置60填满它(亦即,中间缓冲区填充步骤尚未完成)。若超高速缓存模拟缓冲器120是空的,但是没有中间处理发生,本发明方法的差错检查特征将使控制器30拒绝读命令。在这样的情况下,在步骤658,若控制器30检测到”读未决”锁存器(未示出)已复位(见图8的708),则处理器被强制重试该操作。成功地完成读之后,而且若要从I/O装置60读更多的数据,则本发明方法允许处理器10在步骤506发出另一个读触发命令300,而同时处理以前在步骤656读传输接收的超高速缓存202数据。这种重叠使先有技术I/O通信方式所不可能的有效的”流水线”成为可能。
写命令
正如前面联系图5所描述的,在本发明方法WRITE(写)部分的过程中,在超高速缓存行202填满准备用写操作来传输时,处理器10将试图强制数据送出超高速缓存200(见图5的416)。这个在步骤416的动作产生由存储器/I/O控制器30接收的写命令。控制器30对这样的写命令的处理举例说明于图7中的步骤670-688。
接收写命令时,在步骤682,控制器30确定试图写的存储器地址是在索引CLBAR寄存器100中编程的地址112。若这样,控制器30截获数据,并在步骤684将其存入与索引CLBAR寄存器100相关的缓冲器120。然后,在步骤686控制器30通过设置”缓冲区满”锁存器(未示出)来把与索引CLBAR寄存器100相关的缓冲区120标为已满。
应该指出,处理器10可以以任何顺序发出在步骤418的写触发命令和在步骤416的写超高速缓存行。结果,在步骤680-688在处理来自处理器10的写命令时,控制器30必须保证,写触发命令已经收到。为了这样做,在步骤684,685填满超高速缓存模拟缓冲器之后,处理器10检查688来确定写是否未决(亦即,以前收到了写触发)。请注意,在步骤610在收到写触发命令时,在步骤614控制器30设置写未决锁存器。这样,若1)处理器已经把超高速缓存行202数据写入超高速缓存模拟缓冲区120,而且2)已经收到写触发,则在步骤618控制器30将把来自超高速缓存模拟缓冲区120的数据送到I/O装置,并将使”缓冲区满”锁存器(未示出)和”写未决”锁存器(未示出)复位。当然,在步骤680,若被控制器30截获的写命令不试图写到索引CLBAR寄存器100中的地址,则以众所周知的方法完成正常的超高速缓存行写操作。
从以上的描述和解释可以看到,本发明试图提供一种具有至少一个处理器和至少一个I/O装置的计算机系统。因此,应当指出,所述详细的公开只是作为例子提出的,而不是限制性的。对于本专业的技术人员来说,各种各样的改变、修改和改进是很容易看出的,并且可以在不离开本发明的精神和范围的情况下加以实践。正如所要求的本发明只由下面权利要求书及其同等物限制。
Claims (18)
1.一种在输入/输出装置和处理器之间突发传输数据的方法,其特征在于包括下列步骤:
(a)截获处理器的请求与输入/输出装置通信的可超高速缓存命令;
(b)执行中间超高速缓存模拟逻辑,以处理所述处理器命令;以及
(c)在超高速缓存模拟缓冲区和输入/输出装置之间传送数据字符串。
2.权利要求1的方法,其特征在于还包括:
(d)在所述超高速缓存模拟缓冲区和所述处理器之间完成数据传送。
3.权利要求1的方法,其特征在于:步骤(a)还包括截获来自处理器写触发命令。
4.权利要求1的方法,其特征在于:步骤(a)还包括截获来自处理器读触发命令。
5.权利要求1的方法,其特征在于:步骤(b)还包括在存储器/输入/输出控制器中的输入/输出桥单元内完成模拟逻辑。
6.权利要求5的方法,其特征在于:所述输入/输出桥单元截获处理器向至少一个存储器页发送的可超高速缓存命令。
7.权利要求6的方法,其特征在于:它还包括把准备“映射出”主存储器空间的并用作超高速缓存模拟缓冲区的所述存储器页的地址装入存储器/输入/输出控制器的至少一个寄存器。
8.权利要求7的方法,其特征在于:它还包括把处理器可超高速缓存命令与输入/输出空间或存储器映射输入/输出空间中相应输入/输出适配器的地址相联系。
9.权利要求8的方法,其特征在于:它还包括把输入/输出适配器地址装入存储器/输入/输出控制器的寄存器。
10.权利要求2的方法,其特征在于还包括截获下数据传送长度的命令。
11.权利要求1的方法,其特征在于步骤(a)包括指定一组待启动的模拟逻辑。
12.一种具有处理器和输入/输出装置的计算机系统,其特征在于包括:
(a)截获处理器的请求与输入/输出装置通信的可超高速缓存命令用的装置;
(b)执行中间超高速缓存模拟逻辑、以处理所述处理器命令用的装置;以及
(c)在超高速缓存模拟缓冲区和输入/输出装置之间传送数据字符串的装置。
13.权利要求12的计算机系统,其特征在于还包括:
(d)在所述超高速缓存模拟缓冲区和所述处理器之间进行数据突发传送的装置。
14.权利要求12的计算机系统,其特征在于还包括在存储器/输入/输出控制器中的输入/输出桥单元内执行模拟逻辑的装置。
15.权利要求14的计算机系统,其特征在于:所述输入/输出桥单元截获处理器向至少一个存储器页发送的可超高速缓存命令。
16.权利要求15的计算机系统,其特征在于还包括把准备映射出主存储器空间的并用作超高速缓存模拟缓冲区的所述存储器页的地址装入存储器/输入/输出控制器的至少一个寄存器的装置。
17.权利要求16的计算机系统,其特征在于还包括把处理器可超高速缓存命令与输入/输出空间或存储器映射输入/输出空间中相应的输入/输出适配器的地址相联系的装置。
18.权利要求17的计算机系统,其特征在于还包括把输入/输出适配器地址装入存储器/输入/输出控制器的寄存器的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83718497A | 1997-04-11 | 1997-04-11 | |
US837,184 | 1997-04-11 | ||
US837184 | 1997-04-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1196525A CN1196525A (zh) | 1998-10-21 |
CN1120424C true CN1120424C (zh) | 2003-09-03 |
Family
ID=25273761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98105843A Expired - Fee Related CN1120424C (zh) | 1997-04-11 | 1998-03-20 | 把处理器数据突发传送到i/o装置或反向传送的方法 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0871129A3 (zh) |
JP (1) | JP3251903B2 (zh) |
CN (1) | CN1120424C (zh) |
HK (1) | HK1015048A1 (zh) |
SG (1) | SG70629A1 (zh) |
TW (1) | TW384445B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118523B (zh) * | 2006-08-01 | 2011-10-19 | 飞思卡尔半导体公司 | 存储器访问控制装置及其方法、存储器访问控制器及其方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000315186A (ja) * | 1999-05-06 | 2000-11-14 | Hitachi Ltd | 半導体装置 |
AU2001292819A1 (en) * | 2000-09-20 | 2002-04-02 | Lockheed Martin Corporation | Object oriented framework architecture for sensing and/or control environments |
US8549202B2 (en) | 2010-08-04 | 2013-10-01 | International Business Machines Corporation | Interrupt source controller with scalable state structures |
US20120036302A1 (en) | 2010-08-04 | 2012-02-09 | International Business Machines Corporation | Determination of one or more partitionable endpoints affected by an i/o message |
US9336029B2 (en) | 2010-08-04 | 2016-05-10 | International Business Machines Corporation | Determination via an indexed structure of one or more partitionable endpoints affected by an I/O message |
US8495271B2 (en) * | 2010-08-04 | 2013-07-23 | International Business Machines Corporation | Injection of I/O messages |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0464494A2 (en) * | 1990-06-29 | 1992-01-08 | Bull HN Information Systems Inc. | A high performance pipelined emulator |
US5481751A (en) * | 1990-05-29 | 1996-01-02 | National Semiconductor Corporation | Apparatus and method for storing partially-decoded instructions in the instruction cache of a CPU having multiple execution units |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5579512A (en) * | 1994-12-30 | 1996-11-26 | Compaq Computer Corporation | Systempro emulation in a symmetric multiprocessing computer system |
-
1997
- 1997-11-04 TW TW086116351A patent/TW384445B/zh not_active IP Right Cessation
-
1998
- 1998-03-17 SG SG1998000575A patent/SG70629A1/en unknown
- 1998-03-20 CN CN98105843A patent/CN1120424C/zh not_active Expired - Fee Related
- 1998-03-26 EP EP98302308A patent/EP0871129A3/en not_active Withdrawn
- 1998-04-02 JP JP09034698A patent/JP3251903B2/ja not_active Expired - Fee Related
-
1999
- 1999-01-04 HK HK99100005A patent/HK1015048A1/xx not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5481751A (en) * | 1990-05-29 | 1996-01-02 | National Semiconductor Corporation | Apparatus and method for storing partially-decoded instructions in the instruction cache of a CPU having multiple execution units |
EP0464494A2 (en) * | 1990-06-29 | 1992-01-08 | Bull HN Information Systems Inc. | A high performance pipelined emulator |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118523B (zh) * | 2006-08-01 | 2011-10-19 | 飞思卡尔半导体公司 | 存储器访问控制装置及其方法、存储器访问控制器及其方法 |
Also Published As
Publication number | Publication date |
---|---|
EP0871129A2 (en) | 1998-10-14 |
HK1015048A1 (en) | 1999-10-08 |
TW384445B (en) | 2000-03-11 |
CN1196525A (zh) | 1998-10-21 |
EP0871129A3 (en) | 2002-03-13 |
SG70629A1 (en) | 2000-02-22 |
JP3251903B2 (ja) | 2002-01-28 |
JPH10289197A (ja) | 1998-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5915104A (en) | High bandwidth PCI to packet switched router bridge having minimized memory latency | |
CN103257933B (zh) | 无序处理器中的事务存储器执行的方法、设备和系统 | |
CN101425966B (zh) | 片上网络以及使用片上网络进行数据处理的方法 | |
CN101346692B (zh) | 多处理器系统中的高性能队列实现 | |
EP0734554B1 (en) | Message facility for massively parallel processing systems | |
US8583853B1 (en) | Error-handling for write-distribute command in raid mirroring | |
CN102918515B (zh) | 将数据存储在存储器控制器中的多个缓冲器的任何中 | |
US6823403B2 (en) | DMA mechanism for high-speed packet bus | |
CN1382277A (zh) | 靠近局部输入/输出总线的桥接器中的输入/输出地址转换 | |
CN101008928A (zh) | 用于跟踪命令次序依赖性的方法和设备 | |
CN101278270A (zh) | 在虚拟存储器环境中处理dma请求的设备和方法 | |
US20050144402A1 (en) | Method, system, and program for managing virtual memory | |
CN1330783A (zh) | 把读请求推测地传送到远程处理节点的非均匀存储器访问(numa)数据处理系统 | |
CN1120424C (zh) | 把处理器数据突发传送到i/o装置或反向传送的方法 | |
CN1279790A (zh) | 快速16位分离事务i/o总线 | |
CN1855033A (zh) | 可避免写后读的危险的存储器指令的发出和执行 | |
US7761529B2 (en) | Method, system, and program for managing memory requests by devices | |
CN1279786A (zh) | 用于高速总线的流控制的系统和方法 | |
EP0814408B1 (en) | Bus bridge apparatus | |
CN100447731C (zh) | 冗余存储虚拟化计算机系统 | |
CN1503948A (zh) | 流水线化的ata设备初始化 | |
CN115994115B (zh) | 芯片控制方法、芯片组及电子设备 | |
US9804959B2 (en) | In-flight packet processing | |
CN1924833A (zh) | 具有多阶快取架构的处理模块 | |
CN100583048C (zh) | 传送数据的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |