CN100524270C - 在多处理器***中使用直接存储器存取传输来进行列表传输的方法及装置 - Google Patents
在多处理器***中使用直接存储器存取传输来进行列表传输的方法及装置 Download PDFInfo
- Publication number
- CN100524270C CN100524270C CNB2006800018526A CN200680001852A CN100524270C CN 100524270 C CN100524270 C CN 100524270C CN B2006800018526 A CNB2006800018526 A CN B2006800018526A CN 200680001852 A CN200680001852 A CN 200680001852A CN 100524270 C CN100524270 C CN 100524270C
- Authority
- CN
- China
- Prior art keywords
- project
- processor
- local storage
- sub
- dmac
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供用于响应于由处理器向直接存储器存取控制器(DMAC)发出的单个DMA命令而在共享存储器和处理器的本地存储器之间传输多个数据块的方法和装置,其中处理器能够与共享存储器有效地通信,并且DMAC可操作耦接到本地存储器。
Description
技术领域
本发明涉及在多处理***中传输数据的方法及装置。
背景技术
实时多媒体应用变得越来越重要。这些应用要求非常快的处理速度,诸如每秒数千兆比特的数据。一些处理***采用单处理器来实现快处理速度,而另一些则利用多处理器结构来实现。在多处理器***中,多个子处理器可以并行(或者至少协调地)操作以获得期望的处理结果。
近年来,由于前沿计算机应用变得越来越复杂,并且对处理***提出了不断增长的需求,所以已经存在无法满足的、对较快计算机处理数据吞吐量的需要。图形应用属于对处理***提出最高需求的那些应用,这是由于它们在相当短的时段内要求大量的数据存取、数据计算、和数据处理,以获得期望的视觉效果。
在一些处理***中,在计算机结构允许在设备和存储器之间直接发送数据而无需使任何(多个)微处理器卷入数据传输中的情况下,采用了直接存储器存取(DMA)技术。该结构通常包括存储器控制器,该存储器控制器从***的(多个)设备接收数据传输命令以产生数据传输。传统的DMA命令可以指定数据块大小、从其中要传输数据/要将数据传输到其中的***存储器内的开始虚拟地址、以及从其中要传输数据/要将数据传输到其中的设备的开始地址。尽管传统的DMA技术与非直接存储器存取技术相比能够提高处理速度,但是它仍然具有局限性。例如,在一些计算应用中,诸如使用多处理***的图形处理中,为了获得期望效果,可能需要来自一个或多个子处理器的许多DMA传输。传统的途径将需要一给定的子处理器来发出许多DMA命令以实现所有的DMA数据传输,其对处理器造成负担并且降低处理能力。
发明内容
本发明的一个或多个实施例可以提供一种改进的DMA技术,该DMA技术将由于发出许多DMA命令而产生的、处理***中处理能力的不利损失最小化。
根据一个或多个实施例,装置包括:处理器,能够与共享存储器有效地通信并包括本地存储器,该本地存储器被适配为执行其中的指令;以及直接存储器存取控制器(DMAC),耦接到处理器的本地存储器,并可操作用来响应于处理器发出的单个DMA命令而使得共享存储器和本地存储器之间的多个数据块的传输便利。
优选地,该处理器可操作用来在本地存储器中建立一列表,其包括多个项目,每个项目至少具有要传输的数据块的开始地址和要传输的数据块的大小。优选地,DMA命令指定该列表中的至少一个项目。DMAC可操作用来使用在列表的至少一个项目中指定的开始地址和大小,以识别要传输的对应数据块并在共享存储器和本地存储器之间传输这样的数据块。
优选地,列表的项目是链接的,使得DMAC可操作用来使用列表中的一个项目来定位列表中的另一项目。列表的项目包括前向指针和后向指针中的至少一个以在项目之间建立链接。
DMA命令可以被适配为指定要将多个数据块从共享存储器拷贝到处理器的本地存储器。DMA命令还可以被适配为指定要将多个数据块从共享存储器的不连续区域拷贝到处理器的本地存储器的连续区域。可选择地或附加地,DMAC可以被适配为通过将多个数据块从共享存储器的不连续区域拷贝到处理器的本地存储器的连续区域而响应DMA命令。
DMA命令可以被适配为指定要将多个数据块从处理器的本地存储器拷贝到共享存储器。DMA命令可以被适配为指定要将多个数据块从处理器的本地存储器的连续区域拷贝到共享存储器的不连续区域。可选择地或附加地,DMAC可以被适配为通过将多个数据块从处理器的本地存储器的连续区域拷贝到共享存储器的不连续区域而响应DMA命令。
依据一个或多个进一步实施例,一种装置包括:多个并行处理器,能够与共享存储器有效地通信,每个处理器包括:被适配为执行其中的指令的本地存储器、和耦接到处理器的本地存储器的直接存储器存取控制器(DMAC);以及主处理器,可操作耦接到所述多个处理器、能够耦接到共享存储器、且可操作用来管理所述多个处理器。每个处理器的DMAC可操作用来响应于处理器发出的单个DMA命令而使得共享存储器和本地存储器之间的多个数据块的传输便利。
依据一个或多个进一步实施例,一种方法包括:响应于处理器向直接存储器存取控制器(DMAC)发出的单个DMA命令而在共享存储器和处理器的本地存储器之间传输多个数据块,其中,处理器能够与共享存储器有效地通信,并且DMAC可操作耦接到本地存储器。
优选地,该方法还包括:在本地存储器内建立一列表,其包括多个项目,每个项目至少具有要传输的数据块的开始地址和要传输的数据块的大小。该方法还包括:使用在列表中的、由DMA命令指定的至少一个项目中指定的开始地址和大小,以识别要传输的对应数据块;并且在共享存储器和本地存储器之间传输这样的数据块。
优选地,该方法还包括:链接列表中的项目,使得可以使用列表中的一个项目来定位列表中的另一项目。列表的项目可以包括前向指针和后向指针中的至少一个,以在项目之间建立链接。
依据一个或多个进一步实施例,一种存储介质包括软件程序,该软件程序可操作用来使得处理器执行包括如下的行为:响应于由处理器向直接存储器存取控制器(DMAC)发出的单个DMA命令而在共享存储器和处理器的本地存储器之间传输多个数据块,其中,处理器能够与共享存储器有效地通信,并且DMAC可操作耦接到本地存储器。
当结合附图对本发明进行描述时,对于本领域技术人员而言,其他方面、特性、优点等将变得明显。
附图说明
为了说明本发明的各方面,用绘图形式示出了当前优选的,然而,应该懂得本发明不仅限于示出的精确布置和手段。
图1是图示可以依据本发明的一个或多个方面适配的处理***的结构的图;
图2是图示直接存储器存取数据块传输列表的图;
图3是图示依据本发明的一个或多个方面的、可以由图1的处理***执行的处理步骤的流程图;
图4是图示可以依据本发明的一个或多个方面适配的具有两个或多个子处理器的多处理***的结构的图;
图5是图示可以被用来实现本发明的一个或多个进一步方面的优选处理器元件(PE)的图;
图6是图示可以依据本发明的一个或多个进一步方面适配的图5的***的示例性子处理单元(SPU)的结构的图;以及
图7是图示可以依据本发明的一个或多个进一步方面适配的图5的***的示例性处理单元(PU)的结构的图。
具体实施方式
参考附图,其中,相似标号表示相似元件,在图1中示出的处理***100,其可以被适配为实施本发明的一个或多个特性。为了简明和清楚的目的,这里将参考图1的方框图并将其描述为说明装置100,然而,应该懂得可以容易地将描述应用于具有相同效力的方法的各方面。
装置100优选地包括处理器102、本地存储器104、共享(***或主)存储器106(例如,DRAM)、以及总线108。***100还可以包括其他设备,诸如设备1、设备2等,它们可以通过总线108使用共享存储器106。
可以利用任何能够从***存储器106请求数据并处理数据以获得期望结果的已知技术来实现处理器102。例如,可以使用任何能够执行软件和/或固件的已知微处理器,包括标准微处理器、分布式微处理器等来实现处理器102。作为示例,处理器102可以是能够请求并处理数据的图形处理器,所述数据是诸如包括灰度信息、色彩信息、纹理数据、多边形信息、视频帧信息等的像素数据。
可注意到,本地存储器104与处理器102位于同一芯片中;然而,本地存储器104优选地不是传统的硬件高速缓存,这是由于没有片上或片外硬件高速缓存电路、高速缓存寄存器、高速缓存控制器等以实现硬件高速缓存功能。由于片上空间可能有限,所以本地存储器104的大小可能比***存储器106小的多。处理器102优选地提供数据存取请求,以通过总线108将数据(其可以包括程序数据)从***存储器106拷贝到本地存储器104以便进行程序执行和数据处理。优选地,利用直接存储器存取控制器DMAC 160来实现使数据存取便利的机制。相对于处理器102和/或本地存储器104,DMAC160可以集成或分离布置。
参考图1-3,DMAC 160优选地可操作用来响应于处理器102发出的单个DMA命令而使共享存储器106和本地存储器104之间的多个数据块的传输便利。为此,处理器102优选地可操作用来在本地存储器104内建立至少一个列表120(并且有可能多个列表120A、120B、120C等),每个列表包括多个项目122A-N。每个项目122优选地至少包括要传输的数据块的开始地址和要传输的数据块的大小。列表中的每个开始地址和大小项目对应于或者限定本地存储器104或共享存储器106内的一数据块。该地址可以是虚拟地址,其需要转换到共享存储器106的物理地址。
DMA命令可以指定至少一个项目,诸如列表120A中的项目122A,使得DMA命令的发出(动作304)允许DMAC160访问这个项目122A并开始数据块传输。作为响应,DMAC 160优选地可操作用来使用在项目122A中指定的开始地址和大小来识别要传输的对应数据块并在共享存储器106和本地存储器104之间传输这一数据块(动作306)。
列表的项目122优选地是链接的,使得DMAC 160可操作用来使用列表中的一个项目来定位列表中的另一项目,从而完成列表120中定义的所有块的传输。例如,在传输了与列表120A的项目122A相关联的数据块之后,DMAC 160可以访问项目122A中的进一步信息以找到列表120A中的下一项目122B。作为示例,列表120的每一项目122可以包括前向指针以与列表120中的另一项目122建立链接。因此,为了讨论的目的,列表120A中的第一项目122A可以包括指向列表120A中的第二项目122B在本地存储器104中所处的位置的指针。类似地,列表120A中的第二项目122B可以包括指向列表120A中的第三项目122C的前向指针。可以重复该过程使得列表120中的每一项目122都以允许DMAC 160访问列表120中的每一项目122的方式链接。在可选择的实施例中,每一项目可以包括后向指针和/或前向指针和后向指针两者,以在项目122之间建立期望的链接。
在一个或多个实施例中,DMA命令可以被适配为指定要将多个数据块从共享存储器106拷贝到处理器102的本地存储器104。在优选实施例中,DMA命令被适配为指定要将多个数据块从共享存储器160的不连续区域拷贝到处理器102的本地存储器104的连续区域。在一个或多个进一步实施例中,DMAC 160可以不要求依赖于DMA命令本身而通过从共享存取器106的不连续区域向本地存储器104的连续区域拷贝来作出响应。
优选地,DMA命令被适配为指定要将多个数据块从处理器102的本地存储器104拷贝到共享存储器106。DMA命令可以被适配为指定从本地存储器104的连续区域到共享区域106的不连续区域地实施这种传输。在一个或多个进一步实施例中,DMAC 160可以不要求依赖于DMA命令来实施从本地存储器104的连续区域到共享区域106的不连续区域的传输。
图4图示被适配为实现本发明的一个或多个进一步实施例的多处理***100A。***100A包括通过总线108相互连接的多个处理器102A-D、相关联的本地存储器104A-D、以及共享存储器106。共享存储器106在这里也可以被称为主存储器或***存储器。尽管作为示例图示了四个处理器102,但是在不偏离本发明范围的精神和前提下可以利用任何数目。每个处理器102可以具有相似结构或具有不同结构。
本地存储器104优选地与它们各自的处理器102位于同一芯片上;然而,本地存储器104优选地不是传统的硬件高速缓存,这是由于没有片上或片外硬件高速缓存电路、高速缓存寄存器、高速缓存控制器等来实现硬件高速缓存功能。
处理器102优选地提供数据存取请求,以通过总线108将数据(其可以包括程序数据)从***存储器106拷贝到它们各自的本地存储器104中以便进行程序执行和数据处理。优选地,利用直接存储器存取控制器(DMAC)(未示出)来实现使数据存取便利的机制。关于本发明的其他特性,每一处理器的DMAC优选地具有与上面描述实质相同的能力。
***存储器106优选地是通过高宽带存储器连接(未示出)来耦接到处理器102的动态随机存取存储器(DRAM)。尽管,***存储器106优选地是DRAM,但是也可以使用其他部件,例如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器、全息存储器等来实现存储器106。
优选地,使用处理流水线(pipeline)来实现每个存储器102,其中以流水线形式处理逻辑指令。尽管可以将流水线分为任何数目的、处理指令的级,但是流水线通常包括:获取一个或多个指令,对指令进行解码,检查指令之间的依赖性,发出指令,以及执行指令。在这点上,处理器102可以包括指令缓冲器级、指令解码电路级、依赖性检测电路级、指令发出电路级、以及执行级。
处理器102的DMAC优选地可操作用来响应处理器102中的一个发出的单个DMA命令而使共享存储器106和本地存储器104中的一个或多个之间的多个数据块的传输便利。为此,处理器102、本地存储器104、DMAC等优选地包括与上面关于图1-3所述的实质上相同的功能。例如,每个处理器可操作用来在其本地存储器104内建立一个或多个列表120,DMA命令可以指定至少一个项目,诸如列表120A中的项目122A,并且DMAC可以访问这一项目122A,并且通过使用在项目122A中指定的开始地址和大小来识别要传输的对应数据块从而开始数据块传输。
再次地,可以将多个数据块从共享存储器106拷贝到处理器102的一个或多个本地存储器104,或者可以将多个数据块从处理器102的一个或多个本地存储器104拷贝到共享存储器106。可以将这样的块传输从共享存储器106的不连续区域拷贝到处理器102的本地存储器104的连续区域。可替换地,可以将这样的传输从本地存储器104的连续区域拷贝到共享存储器106的不连续区域。
在一个或多个实施例中,处理器102、本地存储器104、和DMAC 160可以布置在一个共同的半导体基板上。在一个或多个进一步实施例中,也可以将共享存储器106布置在该共同的半导体基板上或者可以将其分离布置。
在一个或多个可替代实施例中,处理器102中的一个或多个可以操作为可操作耦接到其他处理器102并且能够通过总线108耦接到共享存储器106的主处理器。该主处理器可以调度并指挥其他处理器102进行的数据处理。然而,与其他处理器102不同,该主处理器可以耦接到硬件高速缓存,该硬件高速缓存可操作用来高速缓存从共享存储器106和处理器102的本地存储器104的一个或多个中的至少一个中获得的数据。主处理器可以利用诸如DMA技术的任何已知技术来提供数据存取请求,以通过总线108将数据(其可以包括程序数据)从***存储器106拷贝到高速缓存中,以进行程序执行和数据处理。
现在将提供适于实施这里讨论的一个或多个特性的、多处理器***的优选计算机结构的描述。依据一个或多个实施例,多处理器***可以被实现为可操作为媒体密集型应用(诸如,游戏***、家庭终端、PC***、服务器***以及工作站)的单机和/或分布式处理的单片解决方案。在一些应用中,诸如游戏***和家庭终端,可能必须实时计算。例如,在实时、分布式游戏应用中,必须足够快地执行网络图像解压、3D计算机图形、音频产生、网络通信、物理模拟、以及人工智能处理中的一个或多个,以给用户提供实时体验的幻觉。因此,多处理器***中的每个处理器必须在短的且可预测的时间内完成任务。
为此,依据该计算机结构,利用通用的计算模块(或单元)来构造多处理计算***的所有处理器。该通用的计算模块具有一致的结构并且优选地采用相同指令集结构。可以利用一个或多个客户端、服务器、PC、移动计算机、游戏机、PDA、机顶盒、家用电器(appliance)、数字电视机以及其他使用计算机处理器的设备来构成多处理计算机***。
如果需要的话,多个计算机***也可以是网络成员。一致的模块化结构使得多处理计算机***能够进行应用和数据的有效的高速处理,并且如果利用了网络,则使得能够通过网络进行应用和数据的快速传输。该结构还简化了各种大小和处理能力的网络成员的构造以及由这些成员进行处理的应用准备。
参考图5,基本处理模块是处理器元件(PE)500。PE 500包括I/O接口502、处理单元(PU)504、和多个子处理单元508(即,子处理单元508A、子处理单元508B、子处理单元508C、和子处理单元508D)。本地(或内部的)PE总线512在PU 504、子处理单元508和存储器接口511之间传输数据和应用。本地PE总线512可以具有例如传统结构或者可以被实施为分组交换网络。如果被实现为分组交换网络,尽管需要更多硬件,但是增加了可用带宽。
可以使用用于实现数字逻辑的各种方法来构造PE 500。然而,PE 500优选地被构造为在硅基板上采用互补金属氧化物半导体的单个集成电路。基板的代替材料包括砷化镓、砷铝化镓以及其他所谓的利用许多种掺杂剂的III-B化合物。也可以使用超导材料,例如,快速单磁通量子(RSFQ)逻辑电路来实现PE 500。
PE 500通过高带宽存储器连接516与共享(主)存储器514密切关联。尽管存储器514优选地为动态随机存取存储器(DRAM),但是也可以使用其他部件,例如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器、全息存储器等来实现存储器514。
PU 504和子处理单元508优选地每个耦接到存储器流程控制器(MFC),该存储器流程控制器包括直接存储器存取DMA功能,其与存储器接口511组合、使DRAM 514和PE 500的子处理单元508和PU 504之间的数据交换便利。应该注意,DMAC和/或存储器接口511可以相对于子处理单元508和PU 504集成或分离布置。实际上,DMAC功能和/或存储器接口511功能可以与一个或多个(优选地,所有)子处理单元508和PU 504一起集成。还应该注意,DRAM 514可以相对于PE500集成或分离布置。例如,可以将DRAM514布置在片外,如由所示出的图解所指示的,或者可以以集成的形式将DRAM 514布置在片上。
PU 504可以是,例如能够独立处理数据和应用的标准处理器。在操作中,PU 504优选地调度并指挥子处理单元处理数据和应用。子处理单元优选地是单指令多数据(SIMD)处理器。在PU 504的控制下,子处理器单元以并行且独立的方式执行这些数据和应用的处理。优选地,利用PowerPC核来实现PU 504,PowerPC核是利用精简指令集计算(RISC)技术的微处理器结构。RISC使用简单指令的组合来执行更为复杂的指令。因此,处理器的定时可以基于较简单和较快速的操作,使得微处理器能够在给定的时钟速度下执行更多的指令。
应该注意,可以利用子处理单元508中的起主处理单元作用的一个来实现PU 504,该起主处理单元作用的一个子处理单元调度并指挥子处理单元508进行数据和应用的处理。进一步,可以在处理器元件500内实现多于一个的PU。
依据该模块化结构,特定计算机***采用的PE 500的数目是基于那个***所需要的处理能力的。例如,服务器可以采用四个PE 500,工作站可以利用两个PE 500,PDA可以采用一个PE 500。被分配用来处理特定软件单位(cell)的PE 500的子处理单元的数目取决于该单位之内的程序和数据的复杂度和数量。
图6图示了子处理单元(SPU)508的优选结构和功能。SPU 508结构优选地填补通用处理器(被设计用来在一组范围较广的应用上获得高的平均性能)和专用处理器(被设计用来在单个应用上获得高性能)之间的空白。SPU508被设计用来在游戏应用、媒体应用、宽带***等上获得高性能,用来对实时应用的程序员提供高度控制。SPU 508的一些能力包括:图形几何学流水线(graphics geometry pipeline)/表面剖分(surface subdivision)、快速傅立叶变换、图像处理关键字、流处理、MPEG编码/解码、加密、解密、设备驱动器扩展、建模、游戏物理学(game physics)、内容创建、以及音频合成与处理。
子处理单元508包括两个基本功能单元,即SPU核510A和存储器流程控制器(MFC)510B。SPU核510A执行程序执行、数据处理等,而MFC 510B执行涉及SPU核510A和***的DRAM 514之间的数据传输的功能。
SPU核510A包括本地存储器550、指令单元(IU)552、寄存器554、一个或多个浮点执行级556以及一个或多个定点执行级558。优选地,使用单端口随机存取存储器,诸如SRAM来实现本地存储器550。虽然大多数处理器通过采用高速缓存来降低到存储器的等待时间,但是SPU核510A实现相对小的本地存储器550而不是高速缓存。实际上,为了给实时应用(以及这里提及的其他应用)的程序员提供一致的且可预测的存储器访问等待时间,在SPU 508A内不优选高速缓存结构。高速缓存的高速缓存命中/未命中特性产生在几个周期到几百个周期内变化的易变性存储器存取时间。这种易变性消弱了在例如实时应用编程中期望的存取计时的可预测性。通过将DMA传输与数据计算相重叠,可以在本地存储器SRAM 550中实现等待时间隐藏。这为实时应用编程提供了高度控制。由于与DMA传输相关联的等待时间和指令开支超出维护高速缓存未命中的等待时间的开支,所以当DMA传输大小足够大且足够可预测(例如,可以在需要数据之前发出DMA命令)时,SRAM本地存储器方式有利。
在子处理单元508的给定一个上运行的程序使用本地地址来查阅相关联的本地存储器550,然而,本地存储器550的每个位置也被分配有整个***的存储器映射内的实际地址(RA)。这允许特权软件(privilege software)将本地存储器550映射到处理的有效地址(EA),以使一个本地存储器550和另一本地存储器500之间的DMA传输便利。PU 504也可以直接使用有效地址访问本地存储器500。在优选实施例中,本地存储器550包括556k字节的存储量,以及寄存器552的容量为128×128比特。
优选地,使用处理流水线来实现SPU核504A,在处理流水线中,以流水线形式处理逻辑指令。尽管可以将流水线划分成任何数目的处理指令的级,但是,流水线通常包括:获取一个或多个指令,解码指令,检查指令间的依赖性,发出指令,以及执行指令。鉴于这点,IU 552包括指令缓冲器、指令解码电路、依赖性检查电路、以及指令发出电路。
指令缓冲器优选地包括多个寄存器,该多个寄存器耦接到本地存储器550并且可操作用来在获取指令时临时存储它们。优选地,指令缓冲器操作使得所有指令作为一组离开寄存器,即基本上同时地。尽管指令缓冲器可以是任何大小,但是优选的是其具有不大于大约两个或三个寄存器的大小。
一般,解码电路分解指令并产生执行对应指令功能的逻辑微操作(micro-operation)。例如,逻辑微操作可以指定算法和逻辑运算、到本地存储器550的加载和存储操作、寄存器源操作数和/或立即数操作数。解码电路还可以指示指令使用哪些资源,诸如目标寄存器地址、结构资源、功能单元和/或总线。解码电路还可以供应指示其中需要资源的指令流水线级的信息。优选地,指令解码电路可操作用来基本上同时地解码数目等于指令缓冲器的寄存器数目的指令。
依赖性检查电路包括数字逻辑电路,其执行测试以确定给定指令的操作数是否依赖于流水线中的其他指令的操作数。如果依赖,则在更新这些其他操作数(例如,通过许可其他指令完成执行)之前,不能执行给定指令。优选地,依赖性检查电路确定同时从解码器电路发出的多个指令的依赖性。
指令发出电路可操作用来向浮点执行级556和/或定点执行级558发出指令。
优选地,将寄存器554实现为相对大的统一标准的寄存器文件,诸如128项目的寄存器文件。这允许在没有要求寄存器重命名以避免寄存器不足的情况下的深度流水线的(deeply pipelined)高频实现。重命名硬件通常消耗处理***的相当部分的面积和能力。因此,当软件循环展开或其他交织技术覆盖了等待时间时,则可以实现有利的操作。
优选地,SPU核510A具有超标量结构,使得每个时钟周期发出多于一个指令。优选地,SPU核510A操作为达到对应于从指令缓冲器同时发出的指令的数目、诸如2和3(意味着每个时钟周期发出两个或三个指令)的等级的超标量结构。取决于所需要的处理能力,可以采用或大或小数目的浮点执行级556和定点执行级558。在优选实施例中,浮点执行级556以每秒320亿次浮点运算(32 GFLOPS)的速度操作,以及定点执行级558以每秒320亿次运算(32 GOPS)的速度操作。
优选地,MFC 510B包括总线接口单元(BIU)564、存储器管理单元(MMU)562、以及直接存储器存取控制器(DMAC)560。除DMAC 560以外,MFC 510B优选地以与SPU核510A和总线512相比的一半频率(一半速度)运行,以满足低能耗设计目标。MFC 510B可操作用来处理从总线512进入到SPU 508的数据和指令,为DMAC提供地址转换和为数据一致性提供监听操作(snoop-operation)。BIU 564提供在总线512和MMU 562和DMAC 560之间的接口。因此,SPU 508(包括SPU核510A和MFC 510B)和DMAC 560物理和/或逻辑连接到总线512。
优选地,MMU 562可操作用来将有效地址(从DMA命令取得)转换成用于存储器存取的实际地址。例如,MMU 562可以将有效地址的高阶比特转换成实际地址比特。然而,优选地低阶地址比特为不转换的,并且考虑低阶地址比特为逻辑的和物理的两者,以用于形成实际地址和请求到存储器的存取。在一个或多个实施例中,可以基于64比特存储器管理模型来实现MMU 562,并且MMU 562可以提供264字节的有效地址空间,具有4K-、64K-、1M-和16M-字节页大小和256MB段大小。优选地,MMU 562可操作用来为DMA命令支持高达265字节的虚拟存储器、和242字节(4兆兆字节TeraByte)的物理存储器。MMU 562的硬件可以包括8-项目、完全相联的SLB、256-项目、4路组相联TLB、以及用于硬件TLB未命中处理的TLB的4×4替换管理表(RMT)。
优选地,DMAC 560可操作用来管理来自SPU核510A以及诸如PU 504和/或其他SPU的一个或多个其他设备的DMA命令。存在三类DMA命令:Put(放)命令,操作将数据从本地存储器550移动到共享存储器514;Get(取)命令,操作将数据从共享存储器514移动到本地存储器550;存储控制命令,其包括SLI命令和同步命令。同步命令可以包括原子(atomic)命令、发送信号命令、以及专用阻隔(barrier)命令。响应于DMA命令,MMU 562将有效地址转换成实际地址并将实际地址转到BIU 564。
优选地,SPU核510A使用通道接口和数据接口,以与DMAC 560内的接口进行通信(发送DMA命令、状态等)。SPU核510A通过通道接口向DMAC 560中的DMA队列发出DMA命令。一旦DMA在DMA队列中,就通过DMAC 560内的发出和完成逻辑电路处理它。当结束DMA命令的所有总线事务时,通过通道接口将完成信号发送回SPU核510A。
图7图示PU 504的优选结构和功能。PU 504包括两个基本功能单元,PU核504A和存储器流程控制器(MFC)504B。PU核504A执行程序执行、数据处理、多处理器管理功能等,而MFC 504B执行涉及PU核504A和***100的存储器空间之间的数据传输的功能。
PU核504A可以包括L1高速缓存570、指令单元572、寄存器574、一个或多个浮点执行级576以及一个或多个定点执行级578。L1高速缓存为通过MFC 504B从共享存储器106、处理器102、或存储器空间的其他部分接收到的数据提供数据高速缓存功能。由于优选地将PU核504A实现为超流水线,所以优选地将指令单元572实现为具有许多级(包括获取、解码、依赖性检查、发出等)的指令流水线。优选地,PU核504A也具有超标量配置,由此每时钟周期从指令单元572发出多于一个指令。为了实现高处理能力,浮点执行级576和定点执行级578按流水线配置包括多个级。取决于所需的处理能力,可以采用或多或少数目的浮点执行级576和定点执行级578。
MFC 504B包括总线接口单元(BIU)580、L2高速缓存、不可高速缓存单元(NCU)584、核接口单元(CIU)586、以及存储器管理单元(MMU)588。大多数MFC 504B以与PU核504A和总线108相比的一半频率(一半速度)运行,以满足低能耗设计目标。
BIU 580提供总线108和L2高速缓存582和NCU 584逻辑块之间的接口。为此,BIU 580可以充当为总线108上的主设备以及从设备,从而执行完全一致的存储器操作。作为主设备,其可以代表L2高速缓存582和NCU 584向总线108发出加载/存储请求,以寻求服务。BIU 580还可以实现命令的流程控制机制,其限制可以发送到总线108的命令的总数目。总线108上的数据处理可以被设计为采取八节拍(beat),因此,优选地围绕128字节高速缓存行设计BIU 580,并且一致性和同步粒度为128KB。
优选地,L2高速缓存582(及支持的硬件逻辑电路)被设计用来高速缓存512KB数据。例如,L2高速缓存582可以处理可高速缓存的加载/存储、数据预获取、指令获取、指令预获取、高速缓存操作、以及阻隔操作。优选地,L2高速缓存582为8路组相联***。L2高速缓存582可以包括匹配六(6)个掷出(castout)队列(例如6个RC机器)的六个重新加载队列、以及八个(64-字节宽)存储队列。L2高速缓存582可以操作以提供L1高速缓存570中的一些或所有数据的备份拷贝。有利地,在处理节点被热交换时,这在恢复存储(多个)状态时是有用的。该配置还允许L1高速缓存570用较少端口更快地操作,并允许较快的高速缓存-到-高速缓存传输(由于请求可能止于L2高速缓存582)。该配置还提供用于将高速缓存一致性管理传到L2高速缓存582的机制。
NCU 584与CIU 586、L2高速缓存582、以及BIU 580接口,并且通常在PU核504A和存储器***之间作为用于不可高速缓存的操作的排队/缓冲电路起作用。NCU 584优选地处理不由L2高速缓存582处理的、与PU核504A的所有通信,诸如禁止高速缓存的加载/存储、阻隔操作、以及高速缓存一致性操作。NCU 584优选地以一半速度运行,以满足前述的能耗目标。
CIU 586布置在MFC 504B和PU核504A的边界上,并且充当为来自执行级576、578、指令单元572、以及MMU单元588且去向L 2高速缓存582和NCU 584的请求的路由、仲裁、以及流程控制点。PU核504A和MMU 588优选地以全速运行,而L2高速缓存582和NCU 584可操作用于2:1速度比。因此,在CIU 586中存在频率边界,并且其功能之一是当其在两个频率域之间传递请求和重新加载数据时适当地处理频率交叉。
CIU 586包括三个功能块:加载单元、存储单元以及重新加载单元。另外,CIU 586执行数据预获取功能,优选地该数据预获取功能是加载单元的功能部分。CIU 586优选地可操作用来:(i)从PU核504A和MMU 588接收加载和存储请求;(ii)将请求从全速时钟频率转换成半速(2:1时钟频率转换);(iii)将可高速缓存的请求路由到L2高速缓存582,将不可高速缓存的请求路由到NCU 584;(iv)公平地仲裁到L2高速缓存582和NCU 584的请求;(v)在到L2高速缓存582和NCU 584的分发(dispatch)上提供流程控制,使得在目标窗口内接收请求且避免上溢;(vi)接收加载返回数据并将其路由到执行级576、578、指令单元572或MMU 588;(vii)将监听(snoop)请求传递到执行级576、578、指令单元572或MMU 588;以及(viii)将加载返回数据和监听流量从半速转换为全速。
优选地,MMU 588为PU核540A提供地址转换,诸如利用第二级地址转换工具。优选地,通过可以比MMU 588小得多且快得多的分离的指令和数据ERAT(有效到实际地址转换)阵列,在PU核504A内提供第一级转换。
在优选实施例中,在64比特实现的情况下,PU 504以46GHz、10F04操作。优选地,寄存器为64比特长(但是一个或多个专用寄存器可能较小一些),并且有效地址为64比特长。优选地,利用PowerPC技术来实现指令单元570、寄存器572以及执行级574和576,以实现(RISC)计算技术。
可以在美国专利第6,526,491号中发现关于该计算机***的模块化结构的额外细节,通过引用将其全部内容融入这里。
依据本发明的至少一个进一步的方面,可以利用适合的硬件,诸如在图中图示的硬件,来实现上述方法和装置。可以利用任何已知技术,诸如标准数字电路、可操作用来执行软件和/或固件程序的任何已知处理器、一个或多个可编程数字器件或***(诸如可编程只读存储器(PROM)、可编程逻辑阵列器件(PAL))等来实现这种硬件。此外,尽管图中图示的装置被示出为被划分到某个功能块中,这种块可以利用分离电路来实现和/或组合成一个或多个功能单元。此外,本发明的各个方面可以利用存储在适合于运输和/或分布的存储介质或媒介(诸如软盘、存储器芯片等)的软件和/或固件程序来实现。
尽管在这里已经参考具体实施例描述了本发明,但是应该懂得:这些实施例仅仅是本发明的原理和应用的示意。因此,应该懂得:在不偏离如由所附权利要求书限定的本发明的精神和范围的前提下,可以对示意性实施例作出各种修改并且可以开发出其他的布置。
工业实用性
本发明可应用于在多处理***之内传输数据的技术。
Claims (17)
1.一种信息处理装置,包括:
处理器,能够与共享存储器有效地通信并包括本地存储器,该本地存储器被适配为由该处理器执行在该本地存储器中的指令;以及
直接存储器存取控制器DMAC,可操作耦接到处理器的本地存储器,并可操作用来响应于处理器发出的单个DMA命令使得共享存储器和本地存储器之间的多个数据块的传输便利,其中
在本地存储器中建立一列表,该列表包括多个项目,每个项目至少具有要传输的数据块的开始地址和要传输的数据块的大小,并且所述列表的项目是链接的,从而使用该列表中的一个项目来定位该列表中的另一项目,
DMA命令指定所述列表中的第一项目,
DMAC可操作用来使用由DMA命令指定的第一项目中指定的开始地址和大小,以识别对应于第一项目的第一数据块,并且DMAC可操作用来在共享存储器和本地存储器之间传输第一数据块,并且
DMAC还可操作用来使用与第一项目相关的第二项目中指定的开始地址和大小,以识别对应于第二项目的第二数据块,而不需要与所述DMA命令不同的新DMA命令,并且DMAC可操作用来在共享存储器和本地存储器之间传输第二数据块。
2.如权利要求1所述的信息处理装置,其中,所述列表的项目包括前向指针和后向指针中的至少一个以在项目之间建立链接。
3.如权利要求1或2所述的信息处理装置,其中,DMA命令被适配为指定要将多个数据块从共享存储器的不连续区域拷贝到处理器的本地存储器的连续区域。
4.如权利要求1或2所述的信息处理装置,其中,DMA命令被适配为指定要将多个数据块从处理器的本地存储器的连续区域拷贝到共享存储器的不连续区域。
5.如权利要求1或2所述的信息处理装置,其中,本地存储器不是硬件高速缓存。
6.如权利要求1所述的信息处理装置,进一步包括:
多个子处理单元,每个子处理单元都配备有处理器和DMAC;以及
主处理单元,其可操作作为用来管理所述多个子处理单元的处理器,其中
主处理单元与所述多个子处理单元通过总线连接,
主处理单元包括指令单元、以及用来临时存储指令单元所使用的用于执行的数据的高速缓存,
内置于所述多个子处理单元的每一个中的本地存储器为其中放置DMAC所传输的数据的存储器,
内置于所述多个子处理单元的每一个中的DMAC响应于主处理单元或者所述多个子处理单元之一发出的单个DMA命令,并且使用DMA来将在该子处理单元中使用的、并且存储在共享存储器中的多个数据块传输到本地存储器,而不需要与所述单个DMA命令不同的新DMA命令,并且
所述多个子处理单元的每一个使用由DMA传输到内置本地存储器的所述多个数据块来执行指令。
7.一种信息处理***,包括:
多个并行处理器,能够与共享存储器有效地通信,每个处理器包括:
本地存储器和耦接到处理器的本地存储器的直接存储器存取控制器DMAC,该本地存储器被适配为由该处理器执行在该本地存储器中的指令,其中,
在本地存储器中建立一列表,该列表包括多个项目,每个项目至少具有要传输的数据块的开始地址和要传输的数据块的大小,并且所述列表的项目是链接的,从而使用该列表中的一个项目来定位该列表中的另一项目,
每个处理器的DMAC可操作用来使用由处理器发出的、指定所述列表中的项目的单个DMA命令指定的第一项目中指定的开始地址和大小,以识别对应于第一项目的第一数据块,并且DMAC可操作用来在共享存储器和本地存储器之间传输第一数据块,并且
DMAC还可操作用来使用与第一项目相关的第二项目中指定的开始地址和大小,以识别对应于第二项目的第二数据块,而不需要与所述单个DMA命令不同的新DMA命令,并且DMAC可操作用来在共享存储器和本地存储器之间传输第二数据块。
8.如权利要求7所述的信息处理***,其中,所述处理器、本地存储器、以及DMAC布置在共同的半导体基板上。
9.如权利要求7所述的信息处理***,其中共享存储器通过总线耦接到所述处理器。
10.如权利要求9所述的信息处理***,其中,所述处理器、相关联的本地存储器、DMAC以及共享存储器布置在共同的半导体基板上。
11.如权利要求7至10中任一项所述的信息处理***,进一步包括可操作耦接到所述处理器、能够耦接到共享存储器、并且可操作用来管理所述多个处理器的主处理器。
12.如权利要求7所述的信息处理***,进一步包括:
多个子处理单元,每个子处理单元都配备有处理器;以及
主处理单元,其可操作作为用来管理所述多个子处理单元的处理器,其中
主处理单元与所述多个子处理单元通过总线连接,
主处理单元包括指令单元、以及用来临时存储指令单元所使用的用于执行的数据的高速缓存,
内置于所述多个子处理单元的每一个中的本地存储器为其中放置DMAC所传输的数据的存储器,
内置于所述多个子处理单元的每一个中的DMAC响应于主处理单元或者所述多个子处理单元之一发出的单个DMA命令,并且使用DMA来将在该子处理单元中使用的、并且存储在共享存储器中的多个数据块传输到本地存储器,而不需要与所述单个DMA命令不同的新DMA命令,并且
所述多个子处理单元的每一个使用由DMA传输到内置本地存储器的所述多个数据块来执行指令。
13.一种信息处理***,包括:
多个并行处理器,能够与共享存储器有效地通信,每个处理器包括:不是硬件高速缓存的本地存储器和耦接到处理器的本地存储器的直接存储器存取控制器DMAC,该本地存储器被适配为由该处理器执行在该本地存储器中的指令;以及
主处理器,可操作耦接到所述处理器、能够耦接到共享存储器、并且可操作用来管理所述多个并行处理器,
在本地存储器中建立一列表,该列表包括多个项目,每个项目至少具有要传输的数据块的开始地址和要传输的数据块的大小,并且所述列表的项目是链接的,从而使用该列表中的一个项目来定位该列表中的另一项目,
其中,每个处理器的DMAC可操作用来使用由处理器发出的、指定所述列表中的项目的单个DMA命令指定的第一项目中指定的开始地址和大小,以识别对应于第一项目的第一数据块,并且DMAC可操作用来在共享存储器和本地存储器之间传输第一数据块,并且
DMAC还可操作用来使用与第一项目相关的第二项目中指定的开始地址和大小,以识别对应于第二项目的第二数据块,而不需要与所述单个DMA命令不同的新DMA命令,并且DMAC可操作用来在共享存储器和本地存储器之间传输第二数据块。
14.如权利要求13所述的信息处理***,还包括与主处理器相关联的且可操作用来高速缓存从共享存储器和一个或多个处理器的本地存储器中的至少一个获得的数据的硬件高速缓存。
15.如权利要求13所述的信息处理***,还包括:
多个子处理单元,每个子处理单元都配备有处理器与本地存储器;以及
主处理单元,其可操作作为主处理器,其中
主处理单元与所述多个子处理单元通过总线连接,
主处理单元包括指令单元、以及用来临时存储指令单元所使用的用于执行的数据的高速缓存,
内置于所述多个子处理单元的每一个中的本地存储器为其中放置DMAC所传输的数据的存储器,
内置于所述多个子处理单元的每一个中的DMAC响应于主处理单元或者所述多个子处理单元之一发出的单个DMA命令,并且使用DMA来将在该子处理单元中使用的、并且存储在共享存储器中的多个数据块传输到本地存储器,而不需要与所述单个DMA命令不同的新DMA命令,并且
所述多个子处理单元的每一个使用由DMA传输到内置本地存储器的所述多个数据块来执行指令。
16.一种信息处理方法,适配为控制一种信息处理装置,该信息处理装置包括能够与共享存储器有效地通信的处理器、以及可操作耦接到处理器的本地存储器的直接存储器存取控制器DMAC,在本地存储器中建立一列表,该列表包括多个项目,每个项目至少具有要传输的数据块的开始地址和要传输的数据块的大小,并且所述列表的项目是链接的,从而使用该列表中的一个项目来定位该列表中的另一项目,所述信息处理方法包括:
处理器向DMAC发出单个DMA命令,该单个DMA命令指定所述列表中的第一项目,
DMAC使用由DMA命令指定的第一项目中指定的开始地址和大小,以识别对应于第一项目的第一数据块,并且在共享存储器和本地存储器之间传输第一数据块,以及
DMAC使用与第一项目相关的第二项目中指定的开始地址和大小,以识别对应于第二项目的第二数据块,而不需要与所述DMA命令不同的新DMA命令,并且在共享存储器和本地存储器之间传输第二数据块。
17.如权利要求16所述的信息处理方法,其中所述信息处理装置包括:
多个子处理单元,每个子处理单元都配备有处理器和DMAC;以及主处理单元,其可操作作为用来管理所述多个子处理单元的处理器,其中
主处理单元与所述多个子处理单元通过总线连接,
主处理单元包括指令单元、以及用来临时存储指令单元所使用的用于执行的数据的高速缓存,
内置于所述多个子处理单元的每一个中的本地存储器为其中放置DMAC所传输的数据的存储器,
内置于所述多个子处理单元的每一个中的DMAC响应于主处理单元或者所述多个子处理单元之一发出的单个DMA命令,并且使用DMA来将在该子处理单元中使用的、并且存储在共享存储器中的多个数据块传输到本地存储器,而不需要与所述单个DMA命令不同的新DMA命令,并且
所述多个子处理单元的每一个使用由DMA传输到内置本地存储器的所述多个数据块来执行指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/029,891 | 2005-01-05 | ||
US11/029,891 US7698473B2 (en) | 2005-01-05 | 2005-01-05 | Methods and apparatus for list transfers using DMA transfers in a multi-processor system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101099141A CN101099141A (zh) | 2008-01-02 |
CN100524270C true CN100524270C (zh) | 2009-08-05 |
Family
ID=36641981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006800018526A Active CN100524270C (zh) | 2005-01-05 | 2006-01-05 | 在多处理器***中使用直接存储器存取传输来进行列表传输的方法及装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7698473B2 (zh) |
EP (1) | EP1834245B1 (zh) |
JP (1) | JP4346612B2 (zh) |
KR (1) | KR100938942B1 (zh) |
CN (1) | CN100524270C (zh) |
DE (1) | DE602006007944D1 (zh) |
TW (1) | TWI352905B (zh) |
WO (1) | WO2006073204A2 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156947A1 (en) * | 2005-12-29 | 2007-07-05 | Intel Corporation | Address translation scheme based on bank address bits for a multi-processor, single channel memory system |
JP2007207026A (ja) * | 2006-02-02 | 2007-08-16 | Matsushita Electric Ind Co Ltd | Dma転送装置 |
JP2008071054A (ja) * | 2006-09-13 | 2008-03-27 | Ricoh Co Ltd | データ転送制御方法、データ処理装置及び画像処理装置 |
US8041847B1 (en) | 2007-05-10 | 2011-10-18 | Marvell International Ltd. | Periodic and conditional execution of DMA operations |
KR100959136B1 (ko) | 2008-07-16 | 2010-05-25 | 한국전자통신연구원 | 직접 메모리 접근 제어기 및 직접 메모리 접근 채널의데이터 전송 방법 |
US9128699B2 (en) | 2008-12-22 | 2015-09-08 | Intel Corporation | Method and system for queuing transfers of multiple non-contiguous address ranges with a single command |
JP5423483B2 (ja) * | 2010-03-04 | 2014-02-19 | 株式会社リコー | データ転送制御装置 |
US10678744B2 (en) * | 2010-05-03 | 2020-06-09 | Wind River Systems, Inc. | Method and system for lockless interprocessor communication |
KR101706201B1 (ko) | 2010-12-15 | 2017-02-15 | 한국전자통신연구원 | 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법 |
US9262163B2 (en) | 2012-12-29 | 2016-02-16 | Intel Corporation | Real time instruction trace processors, methods, and systems |
KR102306359B1 (ko) * | 2015-01-28 | 2021-09-30 | 삼성전자주식회사 | 복수의 프로세서들을 이용한 데이터 운용 방법 및 장치 |
WO2020001438A1 (zh) * | 2018-06-27 | 2020-01-02 | 上海寒武纪信息科技有限公司 | 片上代码断点调试方法、片上处理器及芯片断点调试*** |
KR102075086B1 (ko) | 2018-11-13 | 2020-02-07 | 현대오트론 주식회사 | Dma를 활용한 epm 마이크로틱 생성 긴급 중단 방법 |
US11385820B2 (en) * | 2020-03-04 | 2022-07-12 | Micron Technology, Inc. | Command batching for a memory sub-system |
CN113849433B (zh) * | 2021-09-14 | 2023-05-23 | 深圳市昂科技术有限公司 | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 |
CN118226923A (zh) * | 2024-05-23 | 2024-06-21 | 深圳市鼎阳科技股份有限公司 | 一种波形发生器、波形产生方法及存储介质 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2559792B2 (ja) * | 1988-02-17 | 1996-12-04 | 日産自動車株式会社 | Cadスケッチ入力作図方法 |
JPH01293431A (ja) | 1988-05-23 | 1989-11-27 | Toshiba Corp | メモリアクセス方式 |
JPH0736820A (ja) | 1993-07-23 | 1995-02-07 | Oki Electric Ind Co Ltd | I/o制御装置 |
US5617537A (en) * | 1993-10-05 | 1997-04-01 | Nippon Telegraph And Telephone Corporation | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
US5634099A (en) * | 1994-12-09 | 1997-05-27 | International Business Machines Corporation | Direct memory access unit for transferring data between processor memories in multiprocessing systems |
US5644784A (en) * | 1995-03-03 | 1997-07-01 | Intel Corporation | Linear list based DMA control structure |
US5691984A (en) | 1995-08-15 | 1997-11-25 | Honeywell Inc. | Compact, adaptable brouting switch |
JPH1091571A (ja) | 1996-09-19 | 1998-04-10 | Fujitsu Ltd | Dmaコントローラのチェーン外れ検出方法及びdmaコントローラ |
JP3484056B2 (ja) | 1996-10-18 | 2004-01-06 | 松下電器産業株式会社 | データ転送装置及びデータ転送システム |
JP3712842B2 (ja) * | 1997-08-05 | 2005-11-02 | 株式会社リコー | データ転送制御方法、データ転送制御装置及び情報記録媒体 |
US6128674A (en) * | 1997-08-08 | 2000-10-03 | International Business Machines Corporation | Method of minimizing host CPU utilization in driving an adapter by residing in system memory a command/status block a soft interrupt block and a status block queue |
US6782465B1 (en) * | 1999-10-20 | 2004-08-24 | Infineon Technologies North America Corporation | Linked list DMA descriptor architecture |
US6529968B1 (en) * | 1999-12-21 | 2003-03-04 | Intel Corporation | DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces |
JP2002163239A (ja) | 2000-11-22 | 2002-06-07 | Toshiba Corp | マルチプロセッサシステムおよびその制御方法 |
US6779049B2 (en) * | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
US6526491B2 (en) * | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
JP3878508B2 (ja) | 2001-11-08 | 2007-02-07 | 松下電器産業株式会社 | 回路群制御システム |
US6804741B2 (en) * | 2002-01-16 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Coherent memory mapping tables for host I/O bridge |
JP2004094452A (ja) * | 2002-08-30 | 2004-03-25 | Fujitsu Ltd | Dmaコントローラおよびdma転送方法 |
US6981072B2 (en) * | 2003-06-05 | 2005-12-27 | International Business Machines Corporation | Memory management in multiprocessor system |
-
2005
- 2005-01-05 US US11/029,891 patent/US7698473B2/en active Active
-
2006
- 2006-01-05 CN CNB2006800018526A patent/CN100524270C/zh active Active
- 2006-01-05 TW TW095100561A patent/TWI352905B/zh active
- 2006-01-05 WO PCT/JP2006/300237 patent/WO2006073204A2/en active Application Filing
- 2006-01-05 DE DE602006007944T patent/DE602006007944D1/de not_active Expired - Fee Related
- 2006-01-05 EP EP06702532A patent/EP1834245B1/en active Active
- 2006-01-05 KR KR1020077017805A patent/KR100938942B1/ko active IP Right Grant
- 2006-01-05 JP JP2006000923A patent/JP4346612B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US20060149861A1 (en) | 2006-07-06 |
WO2006073204A3 (en) | 2007-02-08 |
WO2006073204A2 (en) | 2006-07-13 |
KR20070098900A (ko) | 2007-10-05 |
US7698473B2 (en) | 2010-04-13 |
TW200641624A (en) | 2006-12-01 |
JP4346612B2 (ja) | 2009-10-21 |
TWI352905B (en) | 2011-11-21 |
DE602006007944D1 (de) | 2009-09-03 |
EP1834245B1 (en) | 2009-07-22 |
JP2006190301A (ja) | 2006-07-20 |
KR100938942B1 (ko) | 2010-01-26 |
EP1834245A2 (en) | 2007-09-19 |
CN101099141A (zh) | 2008-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100524270C (zh) | 在多处理器***中使用直接存储器存取传输来进行列表传输的方法及装置 | |
CN101099140B (zh) | 用于混合dma队列和dma表的方法和装置 | |
CN100409222C (zh) | 使能/禁止控制simd处理器切片的方法和设备 | |
CN100432956C (zh) | 管理多处理器***中的共享存储器的方法和设备 | |
EP1854016B1 (en) | Methods and apparatus for synchronizing data access to a local memory in a multi-processor system | |
JP4805341B2 (ja) | アドレス空間の仮想化のための方法および装置 | |
CN100451996C (zh) | 提供软件实现的超高速缓冲存储器的方法与装置 | |
JP5020181B2 (ja) | タスク共有方法およびマルチプロセッサシステム | |
US7689784B2 (en) | Methods and apparatus for dynamic linking program overlay | |
EP1846820B1 (en) | Methods and apparatus for instruction set emulation | |
CN100549984C (zh) | 用于从外部设备到处理器的存储器的地址翻译的方法和装置 | |
JP2006221639A (ja) | グラフィック処理を用いた粒子操作方法及び装置 | |
JP2006172468A (ja) | システム内部のデータ転送を処理する装置および方法 | |
JP4134182B2 (ja) | タスク変更アプリケーションプログラミングインタフェースを提供する方法及び装置 | |
JP4024271B2 (ja) | マルチプロセッサシステムにおいて命令を処理するための方法と装置 | |
JP4583327B2 (ja) | 分散型のマルチプロセッサシステム内において一貫性管理を行う方法、システムおよび装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |