JPH05508497A - Method and apparatus for non-sequential source access - Google Patents
Method and apparatus for non-sequential source accessInfo
- Publication number
- JPH05508497A JPH05508497A JP3514424A JP51442491A JPH05508497A JP H05508497 A JPH05508497 A JP H05508497A JP 3514424 A JP3514424 A JP 3514424A JP 51442491 A JP51442491 A JP 51442491A JP H05508497 A JPH05508497 A JP H05508497A
- Authority
- JP
- Japan
- Prior art keywords
- resource
- request
- tag
- requests
- shared
- 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
Links
- 238000000034 method Methods 0.000 title claims description 52
- 230000004044 response Effects 0.000 claims description 70
- 230000007246 mechanism Effects 0.000 claims description 27
- 238000012795 verification Methods 0.000 claims 2
- 239000000872 buffer Substances 0.000 description 36
- 239000013598 vector Substances 0.000 description 33
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 241000913681 Questa Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000010420 art technique Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000257465 Echinoidea Species 0.000 description 1
- 241000287462 Phalacrocorax carbo Species 0.000 description 1
- MJSPPDCIDJQLRE-YUMQZZPRSA-N S-methionyl-L-thiocitrulline Chemical compound CSCC[C@@H](C(S/C(\N)=N/CCC[C@@H](C(O)=O)N)=O)N MJSPPDCIDJQLRE-YUMQZZPRSA-N 0.000 description 1
- 241001365914 Taira Species 0.000 description 1
- 101000870345 Vasconcellea cundinamarcensis Cysteine proteinase 1 Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011094 buffer selection Methods 0.000 description 1
- PKOMXLRKGNITKG-UHFFFAOYSA-L calcium;hydroxy(methyl)arsinate Chemical compound [Ca+2].C[As](O)([O-])=O.C[As](O)([O-])=O PKOMXLRKGNITKG-UHFFFAOYSA-L 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One dimensional, e.g. linear array, ring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8092—Array of vector units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。 (57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】 非順次資源アクセスのための方法およびその装置技 術 分 野 本発明は、コンピュータおよび電子論理システムのための記憶システムおよび記 憶管理に関する。さらに詳しく言えば、本発明は、要求が発行された順序に対し て順序通りでなく応答が返され得る、共用資源、特にメインメモリに対して要求 を発行することができる非順次記憶アクセスのための方法およびその装置に関す る。[Detailed description of the invention] Methods and device techniques for non-sequential resource access Field The present invention provides storage systems and recording for computers and electronic logic systems. Regarding storage management. More specifically, the present invention provides Requests to shared resources, especially main memory, that can result in out-of-order responses METHODS AND APPARATUS FOR NON-SEQUENTIAL MEMORY ACCESS Ru.
先 行 技 術 共用ハードウェア資源、特にメインメモリにアクセスするための複数リクエスタ システムにおける従来の方法および装置は、そのシステムによるデータまたは命 令に対する上書きまたは不正確なアクセスを防止するために、その共用資源に対 する要求が相互に時間順序的なまたは整列された関係を維持することを必要とし ている。実際、共用資源に対する乱順アクセスの可能性は、通常、データおよび /または命令への不正確なアクセスとみなされ、従来技術では記憶アクセスハザ ードと呼ばれている。Forward technique Multiple requesters for accessing shared hardware resources, especially main memory Conventional methods and apparatus in a system are to prevent overwriting or inaccurate access to the shared resources. requirements that maintain a chronological or ordered relationship with each other. ing. In fact, the possibility of out-of-order access to shared resources is typically or considered as an incorrect access to an instruction, and in the prior art, the memory access hazard It is called a code.
従来技術において、多重プロセッサシステムにおける共用資源へのアクセスを制 御するために使用される一つの技法は、その共用資源への要求を大域的決定アル ゴリズムによって取り扱う中央制御機構を維持することである。その多重プロセ ッサシステムが物理的に小さいシステムで少数のりクエスタおよび少数の共用資 源しか有していない場合、この方法は有効である。多数のりクエスタおよび多数 の共用資源を備えたもっと大規模な多重プロセッサシステムでは、大域的決定ア ルゴリズムを用いた中央may方式は、扱いにくくなり、その決定時間がその多 重プロセッサの全処理性能に影響を及ぼし始める。In the prior art, access to shared resources in multiprocessor systems is restricted. One technique used to control the demand for shared resources is to use a global decision algorithm to The goal is to maintain a central control mechanism that is handled by algorithms. Its multiple processes If the server system is physically small and has a small number of clusters and a small number of shared resources, This method is effective if you only have a source. Many Nori Questa and many In larger multiprocessor systems with shared resources of A central method using algorithms can be cumbersome and the decision time can be It begins to affect the overall processing performance of heavy processors.
別の従来技術の技法は、以前の決定がクリアされている場合にのみ所定の決定が なされるように、各種決定を時間タグによりインタロックすることである。この 方式に伴う問題は、それらの時間タグを更新するシステム内を信号が伝わるため の過渡時間が妨げとなり、やはり、全システム性能が不利に影響を受けるという ことである。Another prior art technique is to make a given decision only if the previous decision has been cleared. Interlocking various decisions with time tags as they occur. this The problem with this method is that signals travel through the system that update those time tags. The transient time of That's true.
本質的に、資源ロックアウトおよび共用資源アクセスの問題は、従来技術のスー パコンピュータでは、各資源をその多重プロセッサシステム全体で順次的にスケ ジュールする中央#i1機構を利用することによって管理されている。この方式 は、システム性能を犠牲にして、記憶アクセスハザードの問題を効果的に回避す る。Essentially, the problem of resource lockout and shared resource access is In a computer, each resource is scheduled sequentially across its multiprocessor system. is managed by utilizing a central #i1 mechanism that processes This method effectively avoids the memory access hazard problem at the expense of system performance. Ru.
多重プロセッサシステムでの共用資源にアクセスするための新規な方法およびシ ステムを設計する際に、考慮すべき4つの問題が存在する。第1の問題は、その 共用資源のスルーブツトをいかにして最大にするかである。A novel method and system for accessing shared resources in multiprocessor systems There are four issues to consider when designing a stem. The first problem is that The question is how to maximize the throughput of shared resources.
第2の問題は、そのプロセッサと共用資源との間のバンド幅をいかにして最大に するかである。第3の問題は、プロセッサと共用資源との間のアクセス時間をい かにして最小にするかである。最後の問題は、資源要求について予測可能な結果 が得られるように、いかにしてアクセスハザードを回避するかである。コンピュ ータ処理システムがこれらの問題の全部に対する最適な解決を得られない場合、 そのシステムの性能は事実上限定される。The second problem is how to maximize the bandwidth between the processor and the shared resources. It's up to you. The third problem is the access time between processors and shared resources. The question is how to minimize it. The final issue is that there are predictable outcomes for resource requirements. The problem is how to avoid access hazards so that access can be achieved. computer If the data processing system does not provide optimal solutions to all of these problems, The performance of that system is effectively limited.
例えば、メインメモリに対して3つの要求を行ったプロセッサの問題を考慮する 。各要求は、結果として3つの個別の論理機構によって処理されることになるメ インメモリの異なる区分に向けられるものとする。従来技術では、これらの要求 のそれぞれは連続している必要があり、以降の要求は、先行する要求が完了する まで開始することができない。この3つの要求の例では、順次アクセスのその要 求条件は、事実上、そのメインメモリに関係する論理の273がアイドル状態と なる結果をもたらす。この制限は、バイブライン化動作として行われるように作 業の安定した流れを処理要素および共用資源に付与することによってその処理要 素および共用資源を継続的にビジー状態に保つことをその目的とする、高性能シ ステムにおいて特に大きな打撃となる。For example, consider the problem of a processor making three requests to main memory. . Each request results in a message being processed by three separate logical mechanisms. shall be directed to different partitions of in-memory. With conventional technology, these requirements Each of the must be consecutive, with subsequent requests completing the preceding request. cannot be started until In this example of three requests, the requirements for sequential access are The requirement is that the logic 273 related to the main memory is in an idle state. bring about results. This restriction is designed to be done as a vibrating operation. Processing requirements are reduced by providing a steady flow of work to processing elements and shared resources. A high-performance system whose purpose is to keep primary and shared resources continuously busy. This is especially hard on the stem.
しばしばスーパコンピュータと称される、そうした高性能コンピュータ処理シス テムの処理速度および柔軟性を向上させる努力において、本発明に対し先に提出 された特許出願である、’C1uster Architecture for a Highly Parallel 5calar/Vector Mul tipr。Such high-performance computer processing systems, often referred to as supercomputers, In an effort to improve the processing speed and flexibility of 'C1uster Architecture for a Highly Parallel 5 calar/Vector Mul tipr.
cessor System“と題する、PCT出願番号PCT/US9010 7665は、複数のプロセッサおよび外部インタフェースが、メインメモリ、大 域レジスタまたは割り込み機構といった共用資源の共通な集合に対して複数かつ 同時の要求を行うことができる、スーパコンピュータ用アーキテクチャを提供し ている。各資源をその多重プロセッサシステム全体で順次的にスケジュールする ために中央制御機構を利用するこの従来技術の技法は、この形式の高度並列多重 プロセッサ用クラスタアーキテクチャにとっては許容できない。従って、全部の 共用資源にわたる全部のりクエスタに対して等しくかつ民主的なアクセスを保証 し、各共用資源が独立した速度でしかもアクセスハザードを回避するように同時 的にデータを処理できるようにすることによって、多重プロセッサシステムにお ける性能を向上させるために、記憶アクセスのための新規な方法および装置が必 要とされ本発明は、複数リクエスタシステムにおける共用資源への非順次アクセ スのための方法および装置を提供する。PCT Application No. PCT/US9010 entitled “cessor System” The 7665 has multiple processors and external interfaces, main memory, large multiple and Provides an architecture for supercomputers that can perform simultaneous requests. ing. schedule each resource sequentially across its multiprocessor system This prior art technique, which utilizes a central control mechanism for This is unacceptable for cluster architectures for processors. Therefore, all Guarantees equal and democratic access to all access points across shared resources simultaneously so that each shared resource has independent speed and avoids access hazards. multiprocessor systems by allowing data to be processed atomically. New methods and devices for memory access are needed to improve memory access performance. Summary of the Invention The present invention provides non-sequential access to shared resources in multiple requester systems. provides a method and apparatus for
これを実現するために、本発明は、データをその宛先で効果的に再順序づけるた めに各種のタグを使用する。最も単純な形態では、このタグは、方向情報に関す る別のタグを位置づけるためのバッファ内の場所へ、または、そのタグに関係す る応答を発するためのバッファまたはプロセッサ(レジスタ)内の場所へ、スイ ッチング論理を方向づける。例えば、メモリからデータをロードするには、その リクエスタが、要求信号、アドレスおよび要求タグを付与することが必要になる 。要求信号は、そのアドレスおよび要求タグの妥当性を検査する。アドレスは、 その要求されたデータのメモリ内の記憶場所を指定する。要求タグは、データが そのプロセッサへ返された時にそのデータを入れるための場所を指定する。To achieve this, the present invention provides a method for effectively reordering data at its destination. Use various tags for this purpose. In its simplest form, this tag concerns directional information. to a location in the buffer to position another tag, or related to that tag. switch to a location in a buffer or processor (register) to issue a response. Orient the changing logic. For example, to load data from memory, its Requires requester to provide request signal, address and request tag . The request signal checks the validity of its address and request tag. The address is Specifies the location in memory of the requested data. The request tag indicates that the data Specifies where to put the data when it is returned to the processor.
本発明に従った非順次共用資源アクセス用装置は、同じくその多重プロセッサシ ステムの共用資源にアクセスすることができる複数のプロセッサおよび複数の入 出力インタフェースを有する多重プロセッサシステムにおいて使用される。好適 な実施例における共用資源は、メインメモリ、大域レジスタおよび割り込み機構 を含む。1クラスタの密結合プロセッサ内での非順次アクセスのために、本発明 は、そのプロセッサからの複数の資源要求を生成するための要求生成資源と、そ の要求生成資源に動作可能に接続されており、それらの資源要求が生成された時 間順序で資源要求を受信し、その資源要求を共用資源へ経路指定するためのスイ ッチング手段と、その要求された資源が使用可能になるとその資源要求にサービ スする共用資源手段とを含む。各資源要求は、要求された共用資源のアドレス、 および、その資源要求が返されるべきリクエスタ内の記憶場所を指定する要求タ グを含む。The device for non-sequential shared resource access according to the invention also comprises a multi-processor system. Multiple processors and multiple inputs that can access the system's shared resources Used in multiprocessor systems with output interfaces. suitable Shared resources in some embodiments include main memory, global registers, and interrupt facilities. including. For non-sequential access within a cluster of tightly coupled processors, the present invention is a request generation resource for generating multiple resource requests from that processor, and its is operably connected to the request-generating resources of the resource when those resource requests are generated. A switch for receiving resource requests in inter-order order and routing the resource requests to shared resources. and servicing the resource request when the requested resource becomes available. shared resource means for Each resource request includes the address of the requested shared resource, and a request tag that specifies the storage location within the requester where the resource request should be returned. Including.
スイッチング手段に関係するスイッチング論理は、その資源要求に関係づけられ た要求タグを格納するためのタグ待ち行列と、そのタグ待ち行列からの個々の要 求タグを資源応答に関係づけるための論理手段と、その資源応答および個々の要 求タグをプロセッサへ返すための手段とを含む。共用資源に関係するスイッチン グ論理は、共用資源との間で要求を経路指定するためのスイッチング手段と、要 求を正しく経路指定するための制御論理と、複数の決定要求を取り扱うための論 理と、要求されている最終データエンティティを格納または検索するための論理 とを含む。The switching logic associated with the switching means is related to its resource requirements. A tag queue for storing requested request tags and individual requests from that tag queue. A logical means for relating request tags to resource responses, and how those resource responses and individual requests can be and means for returning the requested tag to the processor. Switching involving shared resources The switching logic provides the switching means to route requests to and from shared resources and Control logic for correctly routing requests and logic for handling multiple decision requests. the logic for storing or retrieving the final data entity requested. including.
他の実施例において、本発明はまた、プロセッサの密結合クラスタの外部にある 共用資源に対する非順次アクセスも可能にする。この実施例では、クラスタタグ と称する新しいタグを生成するために要求タグに付加的な経路指定情報を付属さ せるために、遠隔クラスタアダプタが論理手段に備わる。このクラスタタグは、 目標クラスタの遠隔クラスタアダプタに渡され、そこで、その要求から取り外さ れ、タグバッファに格納される。目標クラスタの内部で使用されるために新しい 要求タグが生成される。その応答が目標クラスタの遠隔クラスタアダプタに返さ れると、返された要求タグは、タグバッファ内でそれに関係する対応したクラス タタグを位置づけるために使用される。その応答およびクラスタタグはその後、 要求側クラスタに返される。要求側クラスタの遠隔クラスタアダプタで、そのク ラスタタグは、付加的な戻り経路指定情報および要求タグの各部に分解される。In other embodiments, the present invention also provides for It also allows non-sequential access to shared resources. In this example, the cluster tag Attach additional routing information to the request tag to generate a new tag called A remote cluster adapter is provided in the logical means to enable the clustering. This cluster tag is passed to the target cluster's remote cluster adapter, where it is removed from its request. and stored in the tag buffer. new to be used internally in the target cluster A request tag is generated. The response is sent back to the target cluster's remote cluster adapter. , the returned request tag will have its associated corresponding class in the tag buffer. Used to position tags. That response and cluster tag is then Returned to the requesting cluster. The requesting cluster's remote cluster adapter The raster tag is broken down into additional return routing information and request tag parts.
付加的な戻り経路指定部は、その応答および要求タグ部を要求側スイッチング手 段に返すために使用される。The additional return routing section passes the response and request tag sections to the requesting switching Used to return to the stage.
このシステムの特殊な帰結は、制御が局所的に取り扱われ、共用資源に対するア クセスに関する決定が迅速に、かつ、その資源の十分な利用度を保証するために 必要な時間にのみ行われるということである。極めて高いシステムバンド幅と結 合された可能な最高のシステムスルーブツトを維持することによって、本発明は 、リクエスタが最小限のアクセス時間で処理するデータを安定して供給されるこ とを保証し、それにより、システムバンド幅およびスルーブツトパラメータの所 定の集合について多重プロセッサシステムの全性能を向上させる。A special consequence of this system is that control is handled locally and access to shared resources is to ensure that access decisions are made quickly and that resources are fully utilized. This means that it is done only when necessary. Extremely high system bandwidth and By maintaining the highest possible system throughput combined, the present invention achieves , the requester is provided with a steady supply of data to process with minimal access time. system bandwidth and throughput parameters. improve the overall performance of a multiprocessor system for a given set.
本発明の目的は、要求が発行された時間順序に対してその応答が乱順で返され得 る、共用資源に要求を発行することができる非順次記憶アクセスのための方法お よび装置を供することである。It is an object of the invention that the responses may be returned out of order with respect to the chronological order in which the requests were issued. methods and methods for non-sequential storage access that can issue requests to shared resources. and equipment.
本発明の第2の目的は、共用資源システムの各構成要素が同時並行的に、かつ、 潜在的に異なる速度で動作できることを保証することによって、インタリーブト 共用資源システムにおける性能を向上させることができる、記憶アクセスのため の方法および装置を供することである。A second object of the present invention is to enable each component of the shared resource system to simultaneously and Interleave by ensuring that it can operate at potentially different speeds. For memory access that can improve performance in shared resource systems An object of the present invention is to provide a method and apparatus for the invention.
本発明の第3の目的は、その多重プロセッサシステムが多数のりクエスタおよび 多数の共用資源によって機器構成されている場合に、高バンド幅、高スルーブツ トおよび低待ち時間を付与する、多重プロセッサシステム用記憶アクセスシステ ムのための方法および装置を供することである。A third object of the present invention is that the multiprocessor system High bandwidth, high throughput when configured with many shared resources A storage access system for multiprocessor systems that provides high performance and low latency. The object of the present invention is to provide a method and apparatus for the system.
本発明の上述その他の目的は、図面、好適な実施例の詳細な説明および添付され た請求の範囲によって明白となるであろう。The foregoing and other objects of the invention will be further appreciated from the drawings, detailed description of the preferred embodiments, and the accompanying drawings. This will become clear from the following claims.
図面の説明 図1a、lb、lcおよび1dは、傘来技術および本発明のバイブライン化要求 /応答記憶アクセス技法の説明図である。Drawing description Figures 1a, lb, lc and 1d show the conventional technology and the viblining requirements of the present invention. FIG. 2 is an explanatory diagram of a /response storage access technique.
図2は、本発明の好適な実施例の単一の多重プロセッサクラスタのブロック図で ある。FIG. 2 is a block diagram of a single multiprocessor cluster of a preferred embodiment of the present invention. be.
図38および3bは、本発明の好適な実施例の4クラスタ実施例のブロック図で ある。38 and 3b are block diagrams of a four-cluster implementation of the preferred embodiment of the present invention. be.
図4は、好適な実施例のアービトレーションノード手段を示した単一の多重プロ セッサクラスタのブロック図である。FIG. 4 shows a single multi-processor illustrating the arbitration node implementation of the preferred embodiment. FIG. 2 is a block diagram of a processor cluster.
図5aおよび5bは、本発明の好適な実施例における人出力インタフェースの詳 細ブロック図である。Figures 5a and 5b show details of the human output interface in a preferred embodiment of the invention. It is a detailed block diagram.
図6aおよび6bは、プロセッサ内の入出力インタフェースに関係するボートの 詳細ブロック図である。Figures 6a and 6b illustrate the ports involved in the input/output interface within the processor. FIG. 3 is a detailed block diagram.
図7a、7b、7c、7dおよび7eは、本発明の各種要求タグの説明図である 。7a, 7b, 7c, 7d and 7e are illustrations of various request tags of the present invention. .
図8は、外部インタフェースボートのブロック図である。FIG. 8 is a block diagram of the external interface boat.
図9は、要求タグとコマンドブロックワードとの間の対応を示す。FIG. 9 shows the correspondence between request tags and command block words.
図1Oは、本発明の好適な実施例におけるNRCA手段の詳細ブロック図である 。FIG. 1O is a detailed block diagram of the NRCA means in a preferred embodiment of the invention. .
図11gおよび11bは、本発明の好適な実施例におけるMRCA手段の詳細ブ ロック図である。Figures 11g and 11b show detailed blocks of the MRCA means in a preferred embodiment of the invention. It is a lock diagram.
好適な実施例の説明 まず、図1a〜1dによって、従来技術と比較して、本発明のバイブライン化乱 順アクセス機構について説明する。これらの図は、メモリ/共用資源アーキテク チャの各レベルでの要求/応答動作に適用可能である。多重りクエスタシステム において一般にアクセスされる共用資源はメモリであることが理解されるはずな ので、本発明の好適な実施例もメモリへのアクセスに関して説明スることになる が、本発明は、そのアクセスはいずれの形式の共用ハードウェア資源に対して行 われるものと想定している。この意味で、共用ハードウェア資源には、メモリ、 大域レジスタ、割り込み機構の他、ボート、経路、機能単位、レジスタ、待ち行 列、バンクなどを含む。DESCRIPTION OF THE PREFERRED EMBODIMENT First, FIGS. 1a to 1d show that the present invention's vibrating disorder is compared with the prior art. The sequential access mechanism will be explained. These diagrams illustrate the memory/shared resource architecture. It is applicable to request/response operations at each level of the architecture. Multilayer Questa System It should be understood that memory is a commonly accessed shared resource in Therefore, the preferred embodiment of the present invention will also be described in terms of access to memory. However, the present invention does not require that access be made to any form of shared hardware resource. It is assumed that this will occur. In this sense, shared hardware resources include memory, In addition to global registers and interrupt mechanisms, boats, routes, functional units, registers, and wait lines Including columns, banks, etc.
図18は、作来技術のシステムにおいて、一連の要求および応答の流れがどのよ うに取り扱われるがを示している。乱順アクセスまたはストリーム化の機能がま ったくないので、連続した要求はそれぞれ、その次の要求が開始できるまで、そ の関係する応答が完了するのを待たなければならない。図1bについて言えば、 一部の従来技術のベクトルプロセッサは、各応答が返されるのを待つ必要がなく 、ベクトルレジスタのロードまたは書き込みを行う連続した要求を発する能力を 支援している。図1bに示すそうした限られたバイブライン化技法は、メインメ モリにアクセスするベクトルプロセッサに適用されているが、他のシステム資源 には適用されていない。Figure 18 shows how a series of requests and responses flow in a conventional system. It shows that it is treated like a sea urchin. Random access or streaming functionality is now available. each successive request waits until the next request can start. must wait for the related responses to complete. Regarding Figure 1b, Some prior art vector processors do not have to wait for each response to be returned. , the ability to issue successive requests to load or write vector registers. We are supporting. Such a limited vibelining technique, shown in Figure 1b, applied to vector processors that access memory, but other system resources is not applied.
対照的に、図1cは、全部の要求およびそれらの関係する応答が時間順序になっ ているが、応答1は要求nが発行される前に返され得る、インタリーブされた系 列の要求および応答を示している。図1dでは、本発明の乱順アクセス機構の全 能力が、要求およびその関係する応答が時間順序に対するいかなる特殊な関係も 伴わずに生起していることによって例示されている。この図に示された記憶アク セスシステムでは、応答2は、応答1より前に返され得る。図1dに図示された バイブライン技法は、従来技術においては適用されていない。In contrast, Figure 1c shows that all requests and their related responses are in time order. but response 1 can be returned before request n is issued, in an interleaved system. Showing column requests and responses. In Fig. 1d, the entire random order access mechanism of the present invention is shown. The ability to ensure that requests and their associated responses do not have any special relationship to temporal order. This is exemplified by the fact that it occurs unaccompanied. The storage access shown in this diagram In a process system, response 2 may be returned before response 1. Illustrated in Figure 1d The Vibrine technique has not been applied in the prior art.
好適な実施例を説明する上で、以下では、多重プロセッサシステムの好適な実施 例の説明から始め、次に、各種リクエスタおよびそれらの関係するボートの説明 に始まって、その多重プロセッサシステムの共用資源へ話を進め、非順次アクセ スのための方法および装置について説明する。In describing the preferred embodiment, the following describes a preferred implementation of a multiprocessor system. Start with an explanation of the example, then a description of the various requesters and their related boats. Starting with the shared resources of the multiprocessor system, we discuss A method and apparatus for this purpose are described.
図2によって、本発明とともに用いられる多重プロセッサシステムの好適な実施 例の単一の多重プロセッサクラスタのアーキテクチャについて説明する。高度並 列スカシ/多重プロセッサシステム用ステム用のこの好ましいクラスタアーキテ クチャは、共用資源の大規模な集合12(メインメモリ14、大域レジスタ16 、割り込み機構18など)を共用する複数の高速プロセッサ10を支援すること ができる。プロセッサ10は、ベクトルおよびスカラ両方の並列処理が可能で、 アービトレーションノード手段20を介して共用資源12に接続されている。ま た、アービトレーションノード手段20を介して、複数の外部インタフェースポ ート22および入出力コンセントレータ(IOC)24が接続されており、それ らはさらに様々な外部データ送信装置26と接続されている。これらの外部デー タ送信装置26は、高速チャネル30によって入出力コンセントレータ24に連 結された二次記憶システム(SMS)28を含むことができる。 FIG. 2 shows a preferred implementation of a multiprocessor system for use with the present invention. An example single multiprocessor cluster architecture is described. Altitude level This preferred cluster architecture for column cluster/multiprocessor systems A architecture is a large set of shared resources 12 (main memory 14, global registers 16 , interrupt mechanism 18, etc.). Can be done. The processor 10 is capable of both vector and scalar parallel processing, It is connected to the shared resource 12 via arbitration node means 20. Ma In addition, a plurality of external interface points are connected via the arbitration node means 20. 22 and an input/output concentrator (IOC) 24 are connected to it. These are further connected to various external data transmitting devices 26. These external data The data transmitter 26 is connected to the input/output concentrator 24 by a high speed channel 30. A secondary storage system (SMS) 28 may be included.
外部データ送信装置26はまた、1つ以上の標準チャネル34によって入出力コ ンセントレータ24に連結された他の各種周辺装置およびインタフェース32を 含むことができる。これらの周辺装置およびインタフェース32は、ディスク記 憶装置、テープ記憶装置、プリンタ、外部プロセッサおよび通信ネットワークを 含むことができる。プロセッサ10、共用資源12、アービトレーションノード 20および外部インタフェースポート22は、一体として、本発明の好適な実施 例に従った高度並列多重プロセッサシステム用の単一の多重プロセッサクラスタ 40を構成する。External data transmitter 26 also provides input/output control via one or more standard channels 34. various other peripheral devices and interfaces 32 connected to the center 24. can be included. These peripherals and interfaces 32 storage devices, tape storage devices, printers, external processors, and communication networks. can be included. Processor 10, shared resource 12, arbitration node 20 and external interface port 22 together form a preferred implementation of the present invention. Single multiprocessor cluster for highly parallel multiprocessor systems according to example 40.
多重プロセッサクラスタ40の好適な実施例は、プロセッサ10、共用資源12 、アービトレーションノード20および外部インタフェースポート22を1つ以 上のクラスタ40に物理的に編成することによって、現在の共用記憶スーパコン ピュータの直接接続インタフェースの問題を克服する。図3aおよび3bに示す 好適な実施例ではJ40a、40b、40cおよび40dの4つのクラスタが存 在する。これらのクラスタ40a、40b。A preferred embodiment of multi-processor cluster 40 includes processors 10, shared resources 12 , one or more arbitration nodes 20 and external interface ports 22. By physically organizing into clusters 40 on Overcoming problems with computer direct connect interfaces. Shown in Figures 3a and 3b In the preferred embodiment there are four clusters: J40a, 40b, 40c and 40d. Exists. These clusters 40a, 40b.
40cおよび40dのそれぞれは、そのクラスタに関係づけられた自己自身のプ ロセッサ10”+ 10 b。40c and 40d each have their own cluster associated with that cluster. Processor 10” + 10b.
10cおよび10d、共用資源12a、12b、12cおよび12d1および、 外部インタフェースポート22 a、 22 b、 22 cおよび22dの集 合を物理的に有する。クラスタ40 a、 40 b、 40 cおよび40d は、各アービトレーションノード手段20a、20b。10c and 10d, shared resources 12a, 12b, 12c and 12d1, and Collection of external interface ports 22a, 22b, 22c and 22d have a physical presence. Clusters 40a, 40b, 40c and 40d are each arbitration node means 20a, 20b.
20cおよび20dの論理部分である遠隔クラスタアダプタ42によって相互接 続されている。クラスタ40a。20c and 20d are interconnected by remote cluster adapter 42, which is a logical part of 20c and 20d. It is continued. Cluster 40a.
40b、40cおよび40dは物理的に分離されているが、これらのクラスタの 論理的編成および遠隔クラスタアダプタ42による物理的相互接続は、クラスタ 40a。Although 40b, 40c and 40d are physically separated, the The logical organization and physical interconnection by remote cluster adapters 42 40a.
40b、40Cおよび40dの全部にわたる共用資源12g、12b、12cお よび12dの全部に対する所望の対称的アクセスを可能にする。Shared resources 12g, 12b, 12c and 40b, 40c and 40d and 12d.
次に図4によって、単一のクラスタ40のアービトレーションノード手段20の 好適な実施例について説明する。概念的なレベルでは、アービトレーションノー ド手段20は、プロセッサ10および外部インタフェースポート22を、同一の クラスタ40内の共用資源12へ、および、遠隔クラスタアダプタ42を通じて 他のクラスタ40内の共用資源12へ、対称的に相互接続させる、複数のクロス バ−スイッチを含む。通常、フルクロスバ−スイッチは、各リクエスタが各資源 に接続することを可能にするはずである。本発明では、アービトレーションノー ド手段20は、資源より多数のりクエスタが存在する状況において、フルクロス バ−スイッチと同様の結果を得ることを可能にする。好適な実施例では、アービ トレーションノード手段20は、16個のアービトレーションノード44および 遠隔クラスタアダプタ手段42を含む。遠隔クラスタアダプタ手段42は、ノー ド遠隔クラスタアダプタ(N RCA)手段46およびメモリ遠隔クラスタアダ プタ(MRCA)手段48に分割される。Referring now to FIG. 4, the arbitration node means 20 of a single cluster 40 A preferred embodiment will be described. At a conceptual level, arbitration no The code means 20 connects the processor 10 and the external interface port 22 to the same to shared resources 12 within cluster 40 and through remote cluster adapter 42 A plurality of cross-connections symmetrically interconnecting shared resources 12 in other clusters 40. Including bar switch. Normally, a full crossbar switch allows each requester to should allow you to connect to. In the present invention, the arbitration no. The code means 20 performs a full cross operation in a situation where there are more number questers than resources. It makes it possible to obtain similar results with a bar switch. In the preferred embodiment, the arbitrator The arbitration node means 20 includes 16 arbitration nodes 44 and Includes remote cluster adapter means 42. The remote cluster adapter means 42 memory remote cluster adapter (NRCA) means 46 and memory remote cluster adapter (NRCA) means 46; (MRCA) means 48.
NRCA手段46は、アービトレーションノード44が他の全部の多重プロセッ サクラスタ40の遠隔クラスタアダプタ手段42にアクセスできるようにする。The NRCA means 46 allows the arbitration node 44 to The remote cluster adapter means 42 of the server cluster 40 can be accessed.
同様に、MRCA手段48は、他の全部の多重プロセッサクラスタ40の遠隔ク ラスタアダプタ手段42からのそのクラスタ40の共用資源12に対するアクセ スを制御する。Similarly, the MRCA means 48 controls the remote clocks of all other multiprocessor clusters 40. Access to the shared resources 12 of that cluster 40 from the raster adapter means 42 control the
この実施例では、その16個のアービトレーションノード44は、32個のプロ セッサ10および32個の外部インタフェースポート22をメインメモリ14、 大域レジスタ16および割り込み機構18ならびにNRCA手段46と相互接続 させている。各アービトレーションノード44は、8本の双方向並列経路50に よってメインメモリ14と接続されている。単一の並列双方向経路52は、各ア ービトレーションノード44をNRCA手段46に接続させている。好適な実施 例では、各アービトレーションノード44からの同じ経路52も、アービトレー ションノード44を大域レジスタ16および割り込み機構18に接続させるため に使用されているが、この相互接続を実施するために個別の経路が使用できるこ とは理解されるであろう。In this example, the 16 arbitration nodes 44 have 32 arbitration nodes. The processor 10 and 32 external interface ports 22 are connected to the main memory 14, Interconnect with global register 16 and interrupt mechanism 18 and NRCA means 46 I'm letting you do it. Each arbitration node 44 has eight bidirectional parallel paths 50. Therefore, it is connected to the main memory 14. A single parallel bidirectional path 52 connects each The arbitration node 44 is connected to NRCA means 46. good practice In the example, the same route 52 from each arbitration node 44 is also connection node 44 to global register 16 and interrupt mechanism 18; is used in the It will be understood that
各アービトレーションノード44と同様に、MRCA手段48は、8本の双方向 並列経路54によってメインメモリ14と接続されている。同様に、単一の並列 双方向経路56は、MRCA手段48を大域レジスタ16および割り込み機構1 8に接続させている。好適な実施例では、合計6本の並列双方向経路58が、ク ラスタ40を相互接続するために使用されている。例えば、クラスタ40gは、 各クラスタ40b、40cおよび40dと接続する2本の経路58を有する。こ のようにして、MRCA手段48は、他のクラスタ40が、そのクラスタ40の 共用資源12への直接アクセスを行えるようにする。As with each arbitration node 44, the MRCA means 48 has eight bidirectional It is connected to the main memory 14 by a parallel path 54 . Similarly, a single parallel Bidirectional path 56 connects MRCA means 48 to global register 16 and interrupt mechanism 1. It is connected to 8. In the preferred embodiment, a total of six parallel bidirectional paths 58 are connected to the clock. It is used to interconnect rasters 40. For example, cluster 40g is It has two paths 58 connecting each cluster 40b, 40c and 40d. child In this way, the MRCA means 48 detects whether another cluster 40 of that cluster 40 Allows direct access to shared resources 12.
図58および5bに示すように、メモリポート310のそれぞれ、NRCAボー ト312、および、プロセッサポート314.31.5,316および317の それぞれのためのアービトレーションネットワーク303および306は、アー ビトレーションノード44を含む。また、アービトレーションノード44には、 入力ボート待ち行列301、クロスバー302および307、タグ待ち行列30 4およびデータ待ち行列305が含まれる。As shown in Figures 58 and 5b, each of the memory ports 310 ports 312, and processor ports 314.31.5, 316 and 317. Arbitration networks 303 and 306 for each A bitration node 44 is included. In addition, the arbitration node 44 has the following information: Input boat queue 301, crossbars 302 and 307, tag queue 30 4 and a data queue 305.
本願で詳細に説明するように、アービトレーションネットワーク303および3 06は、最旧の参照が最初に処理されるようにするために、先着順サービス複数 リクエスタトグル方式を使用している。同一経過時間の複数の旧参照の場合、公 平アルゴリズムが、そのアービトレーションネットワーク303または306に よってそれぞれ制御されるポート310および312ならびに315゜316お よび317への等しいアクセスを保証する。Arbitration networks 303 and 3, as described in detail herein. 06 uses a first-come, first-served service to ensure that the oldest references are processed first. You are using the requester toggle method. In the case of multiple old references with the same age, the public The Taira algorithm applies to its arbitration network 303 or 306. Therefore, the ports 310 and 312 and 315, 316 and 316 controlled respectively and 317.
他のスーパコンピュータでは、メモリのリターンは、要求が送出された順序と同 順で戻る。従って、データが戻る際にそのデータをどこに入れるかに関してはま ったく曖昧さはないので、そのプロセッサのメモリリターン論理は単純である。In other supercomputers, memory returns are the same as the order in which the requests were sent. Return in order. Therefore, there are no issues as to where to put the data when it returns. Since there is no ambiguity, the processor's memory return logic is simple.
しかし、メモリのリターンを順序通りに制限することは、その順序づけの制約に より共用資源がいずれかの順序の破約を明白に知るまで待たされることになるの で、性能を犠牲にすることも意味し、それゆえ、並行活動の量を低減させること になる。早期の戻りは、その記憶システムの不均質な待ち時間のために、以前に 要求されたリターンよりも短い待ち時間を伴って戻るようなリターンである。リ ターンが、要求が送出された順序と同順で戻るように制限されていない場合、そ れを保証するために、その記憶サブシステムはソート機構を付与しなければなら ない。これは、データを要求する複数のポートお誹びそのデータを返す複数の記 憶部が存在する場合、相当の負担になる。However, restricting memory returns in order is Rather, the shared resource is forced to wait until it explicitly learns of the breaking of either order. , which also means sacrificing performance and therefore reducing the amount of concurrent activity. become. The early return is due to the heterogeneous latencies of that storage system, A return that returns with a shorter latency than the requested return. Li If the turn is not constrained to return in the same order that the requests were sent, then To guarantee this, the storage subsystem must provide a sorting mechanism. do not have. This allows multiple ports to request data and multiple ports to return that data. If a memory department exists, it will be a considerable burden.
本発明では、メモリのデータリターンは、その要求の順序に対して乱順て戻るこ とができる。要求が待ち行列に蓄積した時は常に、その応答は、要求がその待ち 行列に最初に入れられた相対時間に関して乱順て返され得るというのが、その多 重プロセッサ全体の待ち行列およびアービトレーションネットワークの特徴であ る。これは、早期の要求のデータが後期の要求のデータよりも後に戻ることがあ るということを意味する。しかしながら、プロセッサにおける順序づけの制限の ために、早期に着信したデータを使用することが可能ではない場合もある。In the present invention, memory data returns are returned out of order with respect to the order of the request. I can do it. Whenever a request accumulates in the queue, the response is The fact that the matrix can be returned in random order with respect to the relative time initially entered is that is a feature of heavy processor-wide queuing and arbitration networks. Ru. This means that data from earlier requests may return later than data from later requests. It means to be. However, due to ordering limitations in processors, Therefore, it may not be possible to use data that arrives early.
例えば、算術演算に伴うデータは、再現可能な結果が望まれる際には、元のプロ グラムで指定された同じ順序で使用されなければならない。従って、本発明では 、メモリリターンデータは、それがすでに実際に使用できるかどうかにかかわら ず、その最終宛先(ベクトルレジスタ、スカシレジスタ、Lレジスタ、命令キャ ッシュバッファまたは人出力バッファ)に入れられる。そのデータが使用できる かどうかは、以前に発行された要求の応答状態にもとづく。For example, data associated with arithmetic operations may be Must be used in the same order as specified in the gram. Therefore, in the present invention , the memory returns data regardless of whether it is already actually available or not. first, its final destination (vector register, space register, L register, instruction cache) output buffer or human output buffer). that data can be used The decision is based on the response status of previously issued requests.
本発明は、全部のシステム資源が、図1b〜1dに示したようなバイブライン技 法の全部を用いてアクセスされ得る、共用資源アクセスのための方法および装置 を供することである。これを実現するために、本発明は、要求および応答を記録 し、そのデータをその宛先で事実上再び順序づけるために、タグおよび待ち行列 を使用する。The present invention provides that all system resources are Method and apparatus for shared resource access that can be accessed using the full scope of the law It is to provide. To achieve this, the invention records requests and responses. tags and queues to effectively reorder that data at its destination. use.
最も単純な形態では、タグは、方向情報用の別のタグを位置づけるためのそのバ ッファ内の場所、または、そのタグに関係する応答を入れるためのバッファまた はプロセッサ(レジスタ)内の場所を、その論理に知らせる。In its simplest form, a tag uses its base to position another tag for directional information. buffer or location in which to place responses related to that tag. tells its logic its location in the processor (register).
例えば、メモリからデータを要求するには、そのリクエスタが要求信号、アドレ スおよび要求タグを付与することをめる。要求信号は、そのアドレスおよび要求 タグの妥当性を検査する。アドレスは、メインメモリにおける応答データの位置 を指定する。要求タグは、データがプロセッサに返される際にそのデータを入れ る場所を指定する。その好適な実施例の説明を、共用資源にアクセスするための 複数のポートを有するシステムにおいて各プロセッサを備えた多重プロセッサシ ステムの文脈で行ってきたが、本発明が、各プロセッサがメモリにアクセスする ための単一のポートしか持たない、または、メモリにアクセスするための複数の ポートを有する単一プロセッサシステムに対しても等しく適用可能であることは 明らかであろう。For example, to request data from memory, the requester uses a request signal, an address request tags. The request signal indicates the address and request Check the validity of tags. The address is the location of the response data in main memory. Specify. Request tags include data when it is returned to the processor. Specify the location. A description of the preferred embodiment for accessing shared resources. A multiprocessor system with each processor in a system with multiple ports Although we have discussed this in the context of a system, the present invention allows each processor to access memory. have only a single port for accessing memory, or multiple ports for accessing memory. Equally applicable to uniprocessor systems with ports It should be obvious.
以下の節では、好適な実施例のプロセッサ10が、スカシ、ベクトルおよび命令 要求をどのようにして管理するかを詳細に説明する。4つのベクトルロードポー ト、1つのスカシロードボートおよび1つの命令ロードポートが存在する。各ポ ートは、乱順応答を発行するための異なる機構を有する。 In the following sections, the processor 10 of the preferred embodiment will be described as follows: Describe in detail how requests will be managed. 4 vector load ports There is one Skashi load port and one instruction load port. Each port The ports have different mechanisms for issuing random responses.
図6aおよび6bについて説明すれば、ベクトルロードポート724,726, 728および730は、要求信号、アドレス、および、そのデータがベクトルレ ジスタ718に向けられている記憶アクセス用要求タグを付与する。4つのベク トルロードポートが存在し、各ロードポートは、いずれかの所定の時間に2つの 未決のベクトルロードを支援する。ベクトルロードポートは、特定のベクトルレ ジスタ718へのメモリリターンのための可変サイズ要求を行う。各要求群は、 1〜64個の個別の要求から構成することができる。各ポートへのそれら2つの 可能な未決ベクトルロードのうち、一度に一方だけが要求を発行することができ る。しかし、メモリリターンの非順次性のために、第2のロードに関するリター ンの全部が第1のロードのリターンのいずれかより前に着信するということも想 定できる。ベクトルロードポート制御機構732は、データが正しいレジスタに 入れられ、そのレジスタの全部の既発行データが使用されるまではそのデータが 使用されないように保証しなければならない。6a and 6b, vector load ports 724, 726, 728 and 730 are vector registers for request signals, addresses, and their data. A storage access request tag directed to register 718 is attached. four vectors load ports exist, and each load port has two load ports at any given time. Support pending vector loads. A vector load port is a vector load port that Makes a variable size request for memory return to register 718. Each request group is It can consist of 1 to 64 individual requests. those two to each port Only one of the possible pending vector loads can issue a request at a time. Ru. However, due to the non-sequential nature of memory returns, the return on the second load It is also possible that all of the loads arrive before any of the returns of the first load. Can be determined. The vector load port control mechanism 732 ensures that the data is in the correct register. until all published data in that register is used. It must be ensured that it is not used.
図7aに示す通り、ベクトルポートからの各メモリリターンおよびアドレスに伴 う要求タグは、そのメモリリターンの宛先を指示するのに十分な大きさである。As shown in Figure 7a, each memory return from the vector port and address The request tag is large enough to indicate the destination of the memory return.
すなわち、2つの可能なベクトルレジスタのうちのいずれにそのデータを入れる か、および、そのベクトルレジスタのどの記憶場所を使用するかである。要求が 発行されると、ベクトルロードポート制御機構は、正しいタグがその要求および アドレスに続くように保証する。そのベクトルタグの第1の構成要素は、宛先レ ジスタ識別子ビットである。好適な実施例では、そのタグの一部として宛先レジ スタ番号を送信する代わりに、プロセッサは単に、2つのレジスタのうちの一方 を指示する単一のピットを送信する。その特定のレジスタ番号は、命令発行時に 確立され、ロード命令がポートに発行されるごとに異なることができる。タグに は単一の宛先レジスタ識別子しか含まれていないので、いずれかの所定の時間に は2つのロードだけが未決となり得る。一つのポート内でのタグ衝突(同一宛先 レジスタビットの再使用)は、そのタグピットを再使用する前に、各レジスタの 全部の応答が返るのを待つことによって防止される。さらに、各ポートからの連 続したロードは、常に、異なる宛先レジスタタグピットを使用する。各ベクトル レジスタについて(しかし異なるベクトルロードポートにおいて)複数のローフ トルレジスタロードが完了するのを待つことによって避けられる。i.e. put the data into which of two possible vector registers and which storage location of that vector register to use. request is Once issued, the vector load port control mechanism determines that the correct tag is Guaranteed to follow the address. The first component of that vector tag is the destination register identifier bits. The preferred embodiment includes the destination register as part of its tag. Instead of sending the register number, the processor simply registers one of two registers. Send a single pit to direct. That particular register number is established and can be different each time a load instruction is issued to a port. on the tag contains only a single destination register identifier, so at any given time can have only two loads pending. Tag collision within one port (same destination (register bit reuse) This is prevented by waiting for all responses. In addition, communication from each port Subsequent loads always use different destination register tag pits. each vector Multiple loafs for registers (but at different vector load ports) This can be avoided by waiting for the register load to complete.
ベクトルタグの第2の部分は、ベクトルレジスタの要素番号である。これは単に 、所定のレジスタのいずれのワードがその記憶データによって更新されるはずか を指定する。The second part of the vector tag is the vector register element number. This is simply , which word of a given register should be updated by its stored data Specify.
ベクトルレジスタの第3の、そして最後の部分は、そのプロセッサ10に関する ロード要求を事実上破棄する、「取り消し」標識である。しかし、記憶システム にとって、取り消された要求は、ごくわずかな例外を伴って、取り消されていな い要求とまったく同様に扱われる。この例外とは、取り消されたクラスタ外要求 は性能上の理由でクラスタ内に転送されるということである。要求が発行された 後にその要求を取り消すことができるこの能力は、要求を取り扱うプロセッサ1 0およびアービトレーションノード44の部分とアドレスを取り扱うプロセッサ 10およびアービトレーションノード44の部分との間の、時間が決定的である 何らかのハンドシェーキングを削除するので、効果的な記憶待ち時間の低減をも たらす。この実施例では、取り消しビットは、アドレスの妥当性検査および要求 アービトレーションがオーバラップでき、プロセッサ10およびアービトレーシ ョンノード44内で並行して実施されるようにする。すなわち、例えば、アービ トレーションノード44は記憶要求のアービトレーションを進め、同時に、プロ セッサ10内のそのアドレス制御論理はその記憶要求のアドレスが有効な要求で あるかどうか、つまり正しいアドレス範囲内にあるかどうかを判定する。プロセ ッサ10がそのアドレスが範囲外であると判定した場合、取り消しビットが設定 され、その要求はクラスタ内アドレスへ向けられる。The third and last part of the vector registers relates to the processor 10. A "cancel" indicator that effectively discards the load request. However, the memory system For example, a canceled request is, with very few exceptions, a canceled request. It is treated exactly the same as a new request. This exception is a canceled out-of-cluster request. is transferred within the cluster for performance reasons. request was submitted This ability to later cancel the request is provided by the processor 1 handling the request. 0 and a processor that handles parts and addresses of the arbitration node 44. 10 and part of the arbitration node 44, the time is critical. It also effectively reduces memory latency as it removes some handshaking. Tarasu. In this example, the cancellation bit is used for address validation and request Arbitration can overlap, processor 10 and arbitrator and are executed in parallel within the application node 44. That is, for example, The arbitration node 44 proceeds with the arbitration of storage requests and, at the same time, The address control logic within processor 10 indicates that the address of the storage request is a valid request. Determine whether it exists, that is, whether it is within the correct address range. process If the processor 10 determines that the address is out of range, the cancellation bit is set. and directs the request to the intra-cluster address.
ある種の動作では、この取り消し機能は、ループにおいてデータのボトムローデ ィングを可能にすることで有益である。このソフトウェア技法では、記憶待ち時 間の作用は、そのアドレスが有効であるかどうかがわかる前にデータをプリフェ ッチすることによって回避される。In some operations, this undo function can be used to This is beneficial because it allows for With this software technique, when waiting for memory The interaction between Avoided by touching.
好ましい多重プロセッサシステムでは、プログラムは、マツピング例外をオフに し、ランダムなアドレス(そのデータ空間外のアドレスでさえ)で問題なくメモ リにアクセスすることができ、その取り消し機構はそのプログラムが禁止データ にアクセスできないように保証する。On preferred multiprocessor systems, programs should turn off mapping exceptions. and notes with no problem with random addresses (even addresses outside of that data space) The program can access prohibited data and its cancellation mechanism to ensure that it cannot be accessed.
従って、プログラムは、それが使用するアドレスを検査する前にメモリにアクセ スすることができ、ロード命令は、ループの上部ではなく下部に置くことができ る(「ボトムローディング」)。Therefore, a program must access memory before examining the addresses it uses. The load instruction can be placed at the bottom of the loop instead of the top. (“bottom loading”).
再び図68および6bに戻って、スカラ要求タグについて説明する。メモリへの 単一のスカラボート722は、Sレジスタ714およびLレジスタ716への記 憶データの経路を付与する。正しいデータ順序づけを保証するために、スカラポ ートは、ベクトルボートと同様に、各記憶要求およびアドレスに要求タグを付加 する。Returning again to Figures 68 and 6b, the scalar request tag will be described. to memory A single scalar board 722 writes to S register 714 and L register 716. Provide a route for stored data. To ensure correct data ordering, the scara point Similar to vector ports, ports attach request tags to each storage request and address. do.
図7bに示すように、このスカラ要求タグは、宛先レジスタ形式およびレジスタ 番号を指示する。スカラタグの第1の部分は、レジスタ形式である。これは、L レジスタとSレジスタの応答を識別する。スカラタグの第2の部分は、レジスタ 番号である。これは、どちらのレジスタ番号(LまたはS)にリターンデータを 入れるかを指示する。タグ衝突は、レジスタ当たりただ一つの未決の参照を、ま たは、Lレジスタの場合はレジスタ群当たりただ一つの未決の参照を許可するこ とによって防止される。スカラタグの第3の、そして最後の部分は、ユーザプロ グラムが、それらの許可されたアドレス空間外にあるデータにアクセスしないよ うに防ぐ、「取り消し」標識である。この機構については、本願書の各所で説明 されている。As shown in Figure 7b, this scalar request tag includes the destination register format and register Indicate the number. The first part of the scalar tag is in register format. This is L Identify register and S register responses. The second part of the scalar tag is a register It's a number. This indicates which register number (L or S) the return data should be placed in. Instruct whether to enter. Tag collisions result in only one outstanding reference per register, or Or, in the case of L registers, allow only one pending reference per register group. This is prevented by The third and final part of the scalar tag is programs to access data outside their permitted address spaces. It is a "cancelled" sign that prevents This mechanism is explained in various parts of this application. has been done.
図6aおよび6bに示す通り、スカラロードボート722は、Lレジスタ716 またはSレジスタ714のいずれかに向けられたリターンを受け取る。そのリタ ーンタグのL/Sビットは、そのデータがメモリから返った時にいずれの宛先レ ジスタ形式に書き込むかを決定する。As shown in FIGS. 6a and 6b, the scalar load boat 722 is connected to the L register 716. or receive a return directed to either S register 714. That Rita The L/S bit in the element tag indicates which destination level the data will be sent to when it returns from memory. Decide whether to write in register format.
Sレジスタが書き込まれる場合、その要求タグは2つの機能を実行する。まず、 そのレジスタを未予約にさせ、それによりSレジスタファイルの書き込みアドレ スを形成する。Lレジスタが書き込まれる場合、タグは同じ2つの機能を実行す る。しかし、Lレジスタは、個々のレジスタではなく、ブロック単位で予約され たりされながったりする。When an S register is written, its request tag performs two functions. first, causes that register to be unreserved, thereby making the write address of the S register file form a space. When the L register is written, the tag performs the same two functions. Ru. However, L registers are reserved in blocks rather than individual registers. or be ignored.
スカラボート応答について概説した要求タグ方式は、Lレジスタロードが、Sレ ジスタロードなどの高優先順位ロードによって割り込まれることを許す。出方ア ドレスにはいかなる順序づけも課されず、また、入力データストリームにもまっ たく課されないので、一方のレジスタロード(例えば、Lレジスタ)の集合をバ ックグラウンドアクティビティとして扱い、他方の集合(Sレジスタ)を高優先 順位のフォアグラウンドアクティビティとして扱うことが可能である。その後、 正しいソフトウェア支援によって、Lレジスタは、ブロックロードおよびストア によってアクセスされるソフトウェア管理キャッシュとして扱われることができ る。The request tagging scheme outlined for the scalar boat response means that the L register load is Allows to be interrupted by high priority loads such as register loads. How to get out No ordering is imposed on the addresses, and no ordering is imposed on the input data stream. Since one set of register loads (e.g., L registers) is Treated as a background activity, giving high priority to the other set (S register) It can be treated as a ranked foreground activity. after that, With proper software assistance, the L registers can be used for block loads and stores. Can be treated as a software managed cache accessed by Ru.
再び図6aおよび6bに戻って、命令要求タグについて説明する。命令および入 出カポ−ドア20は、メモリから命令キャラシュア10および入出力バッファ7 12への経路を付与する。正しい命令の順序づけを保証するために、この命令ボ ートは、他のボートと同様に、その要求およびアドレスとともに要求タグを付与 する。命令要求タグは、図7cに示す通り、その命令の応答のためのバッファ番 号およびそのバッファ内の要素番号を指示する。Returning again to FIGS. 6a and 6b, the instruction request tag will be described. command and input The output port 20 outputs the command character 10 and the input/output buffer 7 from the memory. Give a route to 12. This instruction box is used to ensure correct instruction ordering. A boat is given a request tag along with its request and address, just like any other boat. do. The instruction request tag contains the buffer number for the response of that instruction, as shown in Figure 7c. and the element number within that buffer.
ベクトルボートレジスタ番号と同様に、この命令ボートバッファ番号標識は、単 一のタグビットで符号化される。これは、未決のバッファ要求の数を2つに制限 するが、命令ロードに関係する制御およびデータ経路を単純にする。命令タグ衝 突は、新しい充填の開始を許可する前に、最旧のバッファ充填が完了するのを待 つことによって回避される。同一バッファへの複数の未決ロードは、キャッシュ 置換方針によって禁止されている。タグの符号化は、リターン宛先が命令キャッ シュバッファ712または入出力応答バッファ710のいずれであるかを指示す る。Similar to the vector boat register number, this instruction boat buffer number indicator is simply Encoded with one tag bit. This limits the number of pending buffer requests to two However, it simplifies the control and data paths involved in instruction loading. command tag The buffer waits for the oldest buffer fill to complete before allowing a new fill to begin. This can be avoided by Multiple pending loads to the same buffer are cached Prohibited by replacement policy. The tag encoding is specified when the return destination is an instruction cache. buffer 712 or input/output response buffer 710. Ru.
各ベクトルロードボート724,726.728および730は、「バック」ビ ットの2つの集合を維持しており、その一方は、そのボートの各可能な未決ベク トルレジスタ用のものである。メモリからリターンが戻ると、そのレジスタおよ び要素番号のバックビットは1に設定され、そのデータはそのベクトルレジスタ に書き込まれる。しかし、制御機構732は、以前の要素を含むそれまでの全部 の要素がメモリから返されるまで、そのデータが使用されないようにする。これ は、応答が乱順て戻っても、ベクトルレジスタの全部の要素が順番に使用される ことを保証する。Each vector load boat 724, 726, 728 and 730 has a "back" boat. It maintains two sets of boats, one for each possible pending vector for that boat. This is for the torque register. When a return is returned from memory, its registers and and the back bit of the element number is set to 1, and the data is stored in that vector register. will be written to. However, the control mechanism 732 controls all of the previous elements, including the previous elements. Prevents the data from being used until the element in is returned from memory. this uses all elements of the vector register in order, even if the response returns out of order. I guarantee that.
ベクトルレジスタの全部の要素がメモリから返されると、その側のバックビット は「ノットバ・ツク」とマークされ、そのバックビットの集合は別のロード命令 に使用可能となる。そのタグが要求が取り消されたことを指示しているベクトル およびスカラロードデータは、非信号のNaN (Not a Number: r非数値」)によって破棄され、交替される。これは、本発明の好適な実施例 が、オペランドマツピング例外を使用可能としないプログラムによるアクセスか ら記憶データを保護する方法である。命令データがメモリ14から返されると、 プロセッサ10は、それを入れるべき場所を決定するためにそのリターンタグを 使用する。命令リターンは、データリターンとは異なり、マツブトモードであれ ば命令マツピング例外が常に使用可能であるので、取り消し機能を使用しない。When all elements of a vector register are returned from memory, the back bit on that side is marked as ``not-backed'' and its set of back bits is another load instruction. It becomes available for use. a vector whose tag indicates that the request was canceled And scalar load data is a non-signal NaN (Not a Number: ``r non-numeric'') is discarded and replaced. This is a preferred embodiment of the invention is accessed by a program that does not enable operand mapping exceptions? This is a method of protecting stored data. When the instruction data is returned from memory 14, Processor 10 uses the return tag to determine where to put it. use. Unlike data return, instruction return is different from data return, even in Matsubuto mode. For example, instruction mapping exceptions are always available, so do not use the cancel function.
非コヒーレント記憶システムに関係するハザードを回避するために、プロセッサ 10および外部インタフェースボート22は、アービトレーションノード44が そのタグ以外の情報を付与することをめる。To avoid the hazards associated with non-coherent storage systems, processors 10 and external interface boat 22, arbitration node 44 It is recommended to add information other than the tag.
この情報は、要求の順序づけ、および、それらの要求が特定の共用資源によって 処理されるためにコミットされる時に関係している。好適な実施例では、コヒー レンシーを保証するために使用されるこの技法は、「データマーク機構」と称す る。このデータマーク機構は、原特許願書においてより詳細に開示されている。This information is used to determine the ordering of requests and how they are handled by specific shared resources. Relevant when committed to be processed. In a preferred embodiment, the coffee This technique used to ensure currency is called a “data mark mechanism.” Ru. This data mark mechanism is disclosed in more detail in the original patent application.
プロセッサ10によって発行される要求に加え、本発明は、外部インタフェース ポート22を介して発行された周辺装置からの資源要求にもサービスすることが できる。外部インタフェースポート22によってメインメモリ14または大域レ ジスタ16からフェッチされたデータは、それが要求された順序とは異なる順序 で戻ることができる。本発明のこの非順次アクセスを実現するために、外部イン タフェースポート22に関係するl0C24およびSMS 28は、外部インタ フェースポート22を通じてなされる資源要求に要求タグを付加する。 In addition to the requests issued by processor 10, the present invention It can also service resource requests from peripheral devices issued through port 22. can. External interface port 22 connects main memory 14 or global memory. Data fetched from register 16 is in a different order than it was requested. You can return with To achieve this non-sequential access of the present invention, external 10C 24 and SMS 28 related to interface port 22 are A request tag is attached to a resource request made through the face port 22.
図8によって、好適な実施例の外部インタフェースポート22の詳細な説明を行 う。外部インタフェースポート22は、クラスタチャネルインタフェース(CC I)120を物理的に接続するメモリボートケーブル(図示せず)によってメイ ンメモリ14からコマンドおよびデータワードのパケットを受け入れる。コマン ドワードはコマンドバッファ350に入れられ、データはデータFIFOバッフ ァ360に経路指定される。コマンドバッファ350にコマンドが存在すると、 外部インタフェースポート22の制御論理370は、アービトレーションノード 44を通じてメモリ14ヘアクセスを要求することになる。コマンドワードのワ ードカウント、コマンド、アドレスおよびmタグフィールドからのデータは、そ の要求が認識される際にアービトレーションノード44へ配信する準備として各 自のレジスタ382,384.386および388ヘロードされる。行われたす べてのワード要求について、新しい要求タグおよびアドレスが計算されなければ ならない。FIG. 8 provides a detailed description of the external interface port 22 of the preferred embodiment. cormorant. The external interface port 22 is a cluster channel interface (CC I) A memory boat cable (not shown) that physically connects the packets of command and data words from the online memory 14; command The word is placed in the command buffer 350 and the data is placed in the data FIFO buffer. 360. If a command exists in the command buffer 350, The control logic 370 of the external interface port 22 is an arbitration node. 44 to request access to the memory 14. command word Data from the code count, command, address and mtag fields are each request in preparation for delivery to the arbitration node 44 upon recognition of the request. It is loaded into its own registers 382, 384, 386 and 388. It was done A new request tag and address must be computed for every word request. No.
フェッチ要求の場合、いかなるデータも送信されないが、アドレスおよび要求タ グは、そのコマンドワードカウントフィールドの内容に等しい要求数について送 信される。要求タグは、0に設定された下位6ビツトに始まり、タグの正しい数 が送信されるまでそのフィールドの内容を増分させて計算される。同様に、要求 のアドレスは、そのコマンドワードに存在するアドレスに始まって、各要求が認 識されるごとにそれを増分させて計算される。For fetch requests, no data is sent, but the address and request tag are The command will be sent for a number of requests equal to the contents of its command word count field. be believed. The request tag starts with the lower 6 bits set to 0 and the correct number of tags. is calculated by incrementing the contents of that field until the field is sent. Similarly, request The addresses of each request are accepted starting with the address present in that command word. It is calculated by incrementing it each time it is recognized.
ストア要求の場合、データFIFO360内の次のワードがアドレス、タグおよ びコマンド情報とともに提示される。ワードカウント値は、各要求後に減分され る。For store requests, the next word in data FIFO 360 contains the address, tag and and command information. The word count value is decremented after each request. Ru.
ワードカウント値が0に達すると、以降の要求はいっさい行われない。FIFO 350および360は、可能であれば必ず、アービトレーションノード44を絶 えずビジー状態にしておくために外部インタフェースポート22でコマンドおよ びデータが常に使用可能であることを保証するようにコマンドおよびデータを保 持するために使用される。Once the word count value reaches 0, no further requests will be made. FIFO 350 and 360 terminate arbitration nodes 44 whenever possible. commands and commands on external interface port 22 to keep it busy. commands and data to ensure they are always available. used to hold
フェッチされたデータは、転送レジスタ390を介して共用資源から戻る。その 要求がなされた時に発行された要求タグは、そのデータとともに返される。転送 レジスタ390の出力は、メインメモリ14に接続されている。外部インタフェ ースボート22を連結するケーブルのデータ線に関係する制御線は、有効データ ワードがCC1120のバスにあることを指示するために挿入されている。Fetched data returns from the shared resource via transfer registers 390. the The request tag issued when the request was made is returned with the data. transfer The output of register 390 is connected to main memory 14 . external interface The control line related to the data line of the cable connecting the baseboard 22 is a valid data line. It is inserted to indicate that the word is on the CC 1120 bus.
入出力要求タグは、IOC24を通じて伝わる際にそのデータパケットに先行す るコマンドワードとともに送信される。タグは、そのデータをrOc 24のい ずれのバッファが受信するかを指示する4ビツトフイールド、および、そのデー タが格納されるそのバッファ内の記憶場所を指示する6ビツトフイールドを含む 。4ビツトのバッファ選択フィールドは、図9に示すようにデコードされる。コ ード1011は、データを2つのSMTCコマンドバッファのうちの一方に方向 づける。残りの6つのタグピットは、その応答データワードがいずれのバッファ およびそのいずれの記憶場所へ格納されるかを指示する。コード1111は、l 0C24によっては使用されない。それは、プロセッサの命令キャッシュフェッ チ動作に予約されている。IOC24は、メモリボートをその命令キャッシュと 共用する。The I/O request tag precedes the data packet as it travels through the IOC 24. is sent with the command word. The tag sends its data to rOc 24. A 4-bit field that indicates which buffer receives the data, and the data Contains a 6-bit field that indicates the location within that buffer where the data is stored. . The 4-bit buffer selection field is decoded as shown in FIG. Ko The board 1011 directs data to one of two SMTC command buffers. Attach. The remaining six tag pits have their response data words assigned to either buffer. and the storage location in which it is stored. Code 1111 is l Not used by 0C24. It is the processor's instruction cache Reserved for touch operation. The IOC 24 uses the memory boat as its instruction cache. Sharing.
6ビツトフイールドは、要求がなされた際に各個別のデータワード要求について 外部インタフェースボートで生成される。要求は、最下位アドレスに始まり順に 行われる。図7dによれば、入出力要求タグ、すなわち、6ビツトワード識別子 および4ビツト宛先識別子は、10ビツトタグフイールドに入れられる。このタ グは、記憶システムによって要求とともに伝わり、データの各ワードとともにI OC24へ返される。その後、要求タグは、そのデータワードを適切なバッファ およびそのバッファの記憶場所へ方向づけるためにIOC24によって使用され る。A 6-bit field is used for each individual data word request when the request is made. Generated by external interface boat. Requests are made in order starting with the lowest address. It will be done. According to FIG. 7d, the input/output request tag, i.e. the 6-bit word identifier and the 4-bit destination identifier are placed in the 10-bit tag field. This type The storage system carries the request along with each word of data. Returned to OC24. The request tag then sends that data word to the appropriate buffer. and is used by the IOC 24 to direct to the memory location of its buffer. Ru.
要求がなされた際の連続順序でタグが生成されるので、宛先バッファの記憶場所 をアドレス指定するためにタグを使用することは、データが、いずれの任意の順 序で戻っても、必ず正しい順序でバッファにロードされることを保証する。従っ て、データをバッファから連続順序で読み出すことは、データが正しい順序で宛 先へ返されることを保証する。Tags are generated in sequential order when requests are made, so the memory location of the destination buffer Using tags to address data, in any arbitrary order This ensures that the buffers are loaded in the correct order, even if you return in the same order. follow Therefore, reading data from the buffer in consecutive order ensures that the data is delivered in the correct order. Guarantee that it will be returned to you.
再び図5aおよび5bに戻って、共用資源の観点から見ると(この場合、経路5 0および52)、各入力要求は、要求アービトレーションネットワーク303に よってアービトレーションが行われる。同様の応答アービトレーションネットワ ーク306は、それらの各自のプロセッサポー)−315,316または317 へ戻る応答データのアービトレーションを行う。入力する要求の場合、入力待ち 行列301が、その要求アービトレーションネットワーク303によって渡され るのを待つ最大16個の要求を保持する。返される応答の場合、データ待ち行列 305が、その応答アービトレーションネットワーク306がそれらの応答デー タを宛先ボート315.316または317へ戻すのを待つ最大64個の応答を 保持する。これらの待ち行列301および305のそれぞれは、リクエスタと共 用資源の間でデータが流れる際のいずれかの制御待ち時間を範囲に収めるように 戦略的に大きさが取られている。また、データが記憶部から返されると、その関 係するタグはタグ待ち行列304から検索され、データおよびタグがデータ待ち 行列305ヘロードされる前に、再び付属される。NRCA経路52による応答 の場合、データおよびその関係するタグはすでに対にされており、NRCAおよ びMRCA手段は関係するデータおよびタグを取り扱う。 Returning again to Figures 5a and 5b, from a shared resource perspective (in this case path 5 0 and 52), each input request is sent to the request arbitration network 303. Therefore, arbitration is performed. A similar response arbitration network ports 306 - 315, 316 or 317 of their respective processor ports. Arbitrates response data back to . For input requests, waiting for input matrix 301 is passed by its request arbitration network 303. Holds up to 16 requests waiting to be completed. For responses returned, the data queue 305 whose response arbitration network 306 up to 64 responses waiting to return data to destination boat 315.316 or 317. Hold. Each of these queues 301 and 305 is to keep any control latency within the range when data flows between resources. It is strategically sized. Also, once the data is returned from storage, its The relevant tag is retrieved from the tag queue 304 and the data and tag are It is attached again before being loaded into matrix 305. Response via NRCA pathway 52 , the data and its related tags are already paired and the NRCA and and MRCA means handle related data and tags.
要求アービトレーションネットワーク303が、入力している要求が使用可能な 資源を要求しており、最高優先順位を有しており、かつ、記憶部へ向けられてい ると判定した場合、その要求のアドレスおよびデータ構成要素は経路50に置か れ、その正しい記憶部へ経路指定される。要求アービトレーションネットワーク 303が、入力している要求が使用可能な資源を要求しており、最高優先順位を 有しており、かつ、NRCA 46へ向けられていると判定した場合、その要求 のアドレス、データおよびタグ構成要素は経路52に置かれ、その正しい共用資 源12へ経路指定される。アービトレーションネットワーク303は、それらの 相互接続配線50および52へのアクセスを事実上制御していることに留意しな ければならない。その要求経路に沿った以降のアービトレーションネットワーク は、他の共用資源へのアクセスを制御する。データは、要求された順序とは異な る順序で要求ボート315,316および317へ返され得る。The request arbitration network 303 determines whether the request being input is usable. is requesting resources, has the highest priority, and is directed to storage. If it is determined that the address and data components of the request are and is routed to its correct storage. request arbitration network 303 indicates that the incoming request requires available resources and has the highest priority. and if it is determined that the request is directed to NRCA 46. address, data and tag components are placed on path 52 and its correct shared resources are source 12. The arbitration network 303 Note that this effectively controls access to interconnect traces 50 and 52. Must be. Subsequent arbitration networks along that request path controls access to other shared resources. Data is in a different order than requested may be returned to request boats 315, 316, and 317 in the order specified.
アービトレーションノード44は、各ロードアドレスとともにタグの集合を受信 し、後の参照のためにそれらを待ち行列に入れる。データがメインメモリから返 されると、それらのタグは対応するデータワードに再び付属され、データおよび タグの両者はその要求側ボートへ返される。プロセッサ10は、そのデータを正 しい宛先へ入れるためにこれらのタグを利用し、それが正しい順序で使用される ように保証する。Arbitration node 44 receives a set of tags with each load address. and queue them for later reference. data returned from main memory Once the tags are attached to the corresponding data word, the data and Both tags are returned to the requesting boat. Processor 10 corrects the data. Use these tags to enter the new destination and make sure they are used in the correct order. We guarantee that.
再び図5aおよび5bに戻って、メモリ参照に関して、各記憶部のスイッチング 論理400は、所定のアービトレーションノード44からのその特定の記憶下位 区分に対する全部の入力要求を収集する各記憶下位区分に下位区分キャッチ待ち 行列401を含む。各アービトレーションノード44は、各記憶部14に自己自 身のキャッチ待ち行列の集合を有する。バンク要求アービトレーションネットワ ーク405は、各サイクルでそのバンク403への未決の要求を有する下位区分 キャッチ待ち行列401のその群の間でアービトレーションを行う。要求が選択 されると、その選択された要求はその宛先バンク403へ発行される。要求がス トアである場合、アドレスおよびデータがそのバンクへ発行される。要求がロー ドである場合、そのアドレスだけがそのバンクへ発行される。要求がロードアン ドフラグである場合、そのアドレスおよびデータがそのバンクへ発行される。ロ ードおよびロードアンドフラグについては、バンク403からのその応答データ は、応答アービトレーションネットワーク407がその記憶部からの出力応答を 許可する前にホールド待ち行列406で保持される。 Returning again to Figures 5a and 5b, with respect to memory references, the switching of each memory Logic 400 determines whether that particular storage subordinate from a given arbitration node 44 Wait for subdivision catch on each storage subdivision to collect all input requests for the partition Contains matrix 401. Each arbitration node 44 stores its own information in each storage unit 14. has its own set of catch queues. Bank request arbitration network Bank 405 is a subdivision that has outstanding requests to that bank 403 each cycle. Arbitration occurs between that group of catch queues 401. request selected Then, the selected request is issued to its destination bank 403. The request is If it is a bank, addresses and data are issued to that bank. request is low If the bank is a bank, only that address will be issued to that bank. request is unloaded If flagged, the address and data are issued to that bank. B for the load and flags, their response data from bank 403. The response arbitration network 407 outputs the output response from its storage section. It is held in a hold queue 406 before being granted.
次に図10について説明する。NRCA手段46の場合、入力待ち行列610ま たは630が入力要求を収集する。入力待ち行列610は、外部インタフェース へ向けられた参照を保持する。アービトレーションネットワーク612は、各サ イクルで外部資源への未決の要求を有するその1群の入力待ち行列610の間で アービトレーションを行う。要求が選択されると、その選択された要求は、アド レス、データ、および、経路58に置かれるその要求タグおよび付加的な情報( 図70参照)から構成されるクラスタタグと称する新しいタグとともに、その宛 先資源へ発行される。入力待ち行列630は、割り込み機構、大域レジスタまた は5ETNレジスタへ向けられた参照を保持する。アービトレーションネット7 −り634は、各サイクルでその資源620.632または633への未決の要 求を有するその1群の入力待ち行列630の間でアービトレーションを行う。そ の要求が許可されると、それはその宛先資源へ発行される。データが大域レジス タ633またはS ETNレジスタ632からアービトレーションノード44へ 返される場合、高優先順位の要求がその出力アービトレーションネットワーク6 15に提示され、それによりそのアービトレーションノードへ戻る出力経路はク リアされることになる。 Next, FIG. 10 will be explained. In the case of NRCA means 46, input queue 610 or or 630 collects input requests. Input queue 610 is an external interface Holds a reference directed to. Arbitration network 612 Among that group of input queues 610 that have pending requests for external resources at a cycle Perform arbitration. Once a request is selected, the selected request is response, data, and its request tag and additional information placed on path 58 ( (see Figure 70), along with a new tag called a cluster tag consisting of Issued to the previous resource. Input queue 630 may include an interrupt mechanism, global registers or holds a reference directed to the 5ETN register. arbitration net 7 - resource 634 requests pending requests to that resource 620, 632 or 633 each cycle. Arbitration is performed between that group of input queues 630 that have requests. So If a request for is granted, it is issued to its destination resource. data is in the global register from the SETN register 633 or S ETN register 632 to the arbitration node 44 If returned, the high priority request is sent to its output arbitration network 6 15, thereby returning the output route to that arbitration node. It will be rearranged.
ボート58を介してMRCA手段48から戻るデータおよびタグは、待ち行列6 14に受信される。大域レジスタ633または5ETNレジスタ632からのデ ータは、事前にアービトレーションが行われ、ただちに、関係するタグとともに 戻り経路52に置かれる。各クロックサイクルにおいて、応答アービトレーショ ンネットワーク615は、ボート52または56の戻りデータ経路についてアー ビトレーションを行う。データ待ち行列614、大域レジスタ633または5E TNレジスタ632から適切なデータが選択され、適切なボート52または56 へ返される。Data and tags returning from MRCA means 48 via boat 58 are sent to queue 6 Received on 14th. Data from global register 633 or 5ETN register 632 The data is pre-arbitrated and immediately sent along with the associated tags. placed on the return path 52. At each clock cycle, the response arbitration The communication network 615 provides an architecture for the return data path of the boat 52 or 56. Perform bitration. Data queue 614, global register 633 or 5E The appropriate data is selected from the TN register 632 and placed in the appropriate boat 52 or 56. will be returned to.
次に図11gおよび11bについて説明すれば、MRCA手段48は、それらを 介して他のクラスタからのストアおよびロード動作が受信される6つのボート5 20が存在する。これらのボートのそれぞれは、受信待ち行列500.タグバッ ファ502、応答待ち行列504、および、ボート制御論理501および503 から構成される。各ボートは、他の全部のボートから独立して動作する。別のク ラスタからボートに着信した全部の動作は、そのクラスタへ返される。これは、 ストアもロードも含む。MRCA手段48の待ち行列およびアービトレーション (506,507,508,509,510,511および512)は、本質的 に、アービトレーションノード44の待ち行列およびアービトレーション(それ ぞれ、301,302,303,304,305,306および307)と同様 に動作する。Referring now to FIGS. 11g and 11b, the MRCA means 48 6 boats 5 through which store and load operations from other clusters are received There are 20. Each of these boats has a receive queue 500 . tag bag response queue 504 and boat control logic 501 and 503 It consists of Each boat operates independently from all other boats. another group All operations arriving at a boat from a raster are returned to that cluster. this is, Includes store and load. MRCA means 48 queuing and arbitration (506, 507, 508, 509, 510, 511 and 512) are essentially In addition, the queue of arbitration node 44 and the arbitration 301, 302, 303, 304, 305, 306 and 307), respectively. works.
ある動作が外部クラスタからMRCAポート520に着信すると、そのデータ、 アドレスおよびタグ情報が、64個の記憶場所の深さを持つ受信待ち行列500 に書き込まれる。この受信待ち行列500に妥当な動作が書き込まれた後、ボー ト制御論理501は、その動作がMRCA手段48に渡され得るかどうかを判定 するために資源検査を実行する。3つの検査される資源が存在する。When an operation arrives at MRCA port 520 from an external cluster, the data, Address and tag information is in a receive queue 500 that is 64 locations deep. will be written to. After a valid operation is written to this receive queue 500, the board The control logic 501 determines whether the operation can be passed to the MRCA means 48. Perform resource checks to There are three resources that are examined.
検査される第1の資源はタグの可用性に関する。動作がMRCA手段48に渡さ れると、その要求とともに着信した元のクラスタタグはタグバッファ502に書 き込まれ、新しい8ビツト要求タグがタグジェネレータ501によって生成され る。その元のタグが書き込まれるタグバッファ502の記憶場所のアドレスは、 その新しい要求タグになる。この要求タグは一意でなければならないので、新し いクラスタタグが生成されMRCA手段48に渡されると、それは、その動作が MRCA手段48′b1らそのボートへ返されるまで、再使用することはできな い。この論理の実施は、要求タグが順に生成されなければならないことを要する 。生成される次の要求タグがMRCA手段48においてまだ未決である場合、そ のボートは、受信待ち行列500から自己の次の動作を発行することができない 。タグバッファ502は256個の記憶場所の深さを持つ。The first resource checked concerns the availability of tags. The operation is passed to MRCA means 48 When the request is received, the original cluster tag that arrived with the request is written to the tag buffer 502. A new 8-bit request tag is generated by tag generator 501. Ru. The address of the memory location in tag buffer 502 where the original tag is written is: That becomes the new request tag. This request tag must be unique, so new Once a new cluster tag is generated and passed to the MRCA means 48, it MRCA means 48'b1 may not be reused until returned to its boat. stomach. Implementation of this logic requires that request tags must be generated in order. . If the next request tag to be generated is still pending in the MRCA means 48, then The boat cannot issue its next operation from the receive queue 500. . Tag buffer 502 is 256 locations deep.
MRCA手段48へ動作が発行できる前に検査されなければならない第2の資源 は、リターン待ち行列504における記憶場所の可用性に関する。MRCA手段 48はアービトレーションノード44に戻り動作を保持させるための機構をまっ たく持っていないので、MRCA手段48は、アービトレーションノード44が ら戻るいずれかの動作を格納するためにリターン待ち行列504に記憶場所が常 に存在するように保証しなければならない。A second resource that must be checked before an operation can be issued to the MRCA means 48 relates to the availability of storage locations in return queue 504. MRCA means 48 completely implements a mechanism for causing arbitration node 44 to maintain return operation. Since the arbitration node 44 does not have many There is always a memory location in the return queue 504 to store any operations that return from must be guaranteed to exist.
このリターン待ち行列504は128個の記憶場所の深さを持つ。リターン待ち 行列504の記憶場所の全部が割り当てられると、記憶場所が使用可能となるま で、他のいかなる動作もMRCA手段48に発行できない。This return queue 504 is 128 locations deep. Waiting for return Once all of the storage locations in matrix 504 have been allocated, the storage locations are ready for use. , no other action can be issued to the MRCA means 48.
MRCA手段48内のボート待ち行列506は、受信待ち行列500からの動作 が発行できる前に検査されなければならない第3の資源である。ボート制御論理 501は、現在の動作の総数をボート待ち行列506に保持する。ボート待ち行 列506が一杯になると、ポート制御論理501は、記憶場所が使用可能となる まで、発行を抑止しなければならない。The boat queue 506 within the MRCA means 48 receives operations from the receive queue 500. This is the third resource that must be examined before it can be issued. boat control logic 501 maintains the current total number of operations in a boat queue 506. waiting for boat Once column 506 is full, port control logic 501 indicates that a storage location is available. Issuance must be suppressed until then.
MRCA手段48から動作が戻ると、データが存在する場合、そのデータは、リ ターン待ち行列504に直接格納される。その動作とともに返される要求タグは 、そのタグバッファにアクセスし、元のクラスタタグ503を回復させるために 使用される。この元のクラスタタグは、タグバッファ502から抽出され、その データとともにリターン待ち行列504に格納される。その後、ポート制御論理 501は、そのクラスタ間経路520の遠端のクラスタについて資源検査を行う 。その遠端クラスタが自己の受信待ち行列に使用可能な記憶場所を有していれば 、リターン待ち行列504はロードされない。記憶場所がなければ、待ち行列の 記憶場所が使用可能となるまで、データは保持される。When the operation returns from the MRCA means 48, the data, if present, is Stored directly in turn queue 504. The request tag returned with that action is , to access its tag buffer and recover the original cluster tag 503. used. This original cluster tag is extracted from the tag buffer 502 and its It is stored in return queue 504 along with the data. Then the port control logic 501 performs a resource check on the cluster at the far end of its intercluster path 520. . if the far-end cluster has storage available for its receive queue , return queue 504 is not loaded. If there is no storage space, the queue Data is retained until a storage location becomes available.
好適な実施例の説明を提示してきたが、本発明の精神を逸脱することなく、各種 変更がなし得ることが想定される。従って、本発明の範囲は、好適な実施例の説 明よりもむしろ、添付請求の範囲によって規定されるべきものと意図する。Although a description of a preferred embodiment has been presented, various modifications may be made without departing from the spirit of the invention. It is assumed that changes may be made. Accordingly, the scope of the invention is limited to the description of the preferred embodiment. It is intended that the scope of the invention, rather than the scope of the invention, be defined by the claims appended hereto.
Fig、 2 Fig、 3a 翫3b Fig、 5 Fig、 Ila 要 約 書 複数リクエスタシステムにおいて共用資源(12)に対する非順次アクセスのた めの方法および装置は、データをその宛先で効果的に再順序づけるために各種の タグを使用する。最も単純な形態では、このタグは、方向情報に関する別のタグ を位置づけるためにバッファ内の場所へ、または、そのタグに関係する応答を発 するためにバッファまたはプロセッサ(レジスタ)内の場所へ、スイッチング論 理を方向づける。例えば、メモリ(14)からデータをロードするには、そのリ クエスタが、要求信号、アドレスおよび要求タグを付与することが必要になる。Fig, 2 Fig, 3a Pole 3b Fig, 5 Fig, Ila Summary book For non-sequential access to shared resources (12) in multiple requester systems The method and apparatus for Use tags. In its simplest form, this tag contains another tag for directional information. to a location in the buffer to locate the tag, or emit a response related to that tag. Switching logic to a location in a buffer or processor (register) to direct the principles. For example, to load data from memory (14), It will be necessary for the questa to provide the request signal, address and request tag.
要求信号は、そのアドレスおよび要求タグの妥当性を検査する。アドレスは、そ の要求されたデータのメモリ(14)内の記憶場所を指定する。要求タグは、デ ータがそのプロセッサへ返された時にそのデータを入れるための場所を指定する 。そのリクエスタのスイッチング論理(44)は、その資源要求に関係する要求 タグを格納するためのタグ待ち行列と、そのタグ待ち行列からの個々の要求タグ を資源応答に関係づけるための論理手段と、その資源応答および個々の要求タグ をり゛クエスタへ返すための手段とを含む。メモリ(14)に関係するスイッチ ング論理(400)は、共用資源との間で要求く経路指定するための制御論理と 、複数の決定要求を取り扱うための論理と、要求されている最終データエンティ ティを格納または検索するための論理とを含む。The request signal checks the validity of its address and request tag. The address is Specifies the storage location in memory (14) of the requested data. The request tag is specifies the location to put the data when it is returned to its processor . The requester's switching logic (44) determines whether the requestor's switching logic (44) A tag queue for storing tags and individual request tags from that tag queue A logical means for relating a resource response to a resource response and its individual request tags. and means for returning the information to the requester. Switches related to memory (14) The routing logic (400) includes control logic for routing requests to and from shared resources. , the logic for handling multiple decision requests and the final data entity being requested. and logic for storing or retrieving the information.
国際調査報告international search report
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/535,786 US5208914A (en) | 1989-12-29 | 1990-06-11 | Method and apparatus for non-sequential resource access |
US535,786 | 1990-06-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05508497A true JPH05508497A (en) | 1993-11-25 |
Family
ID=24135761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3514424A Pending JPH05508497A (en) | 1990-06-11 | 1991-06-10 | Method and apparatus for non-sequential source access |
Country Status (4)
Country | Link |
---|---|
US (1) | US5208914A (en) |
JP (1) | JPH05508497A (en) |
AU (1) | AU8447491A (en) |
WO (1) | WO1991020038A1 (en) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5544337A (en) * | 1989-12-29 | 1996-08-06 | Cray Research, Inc. | Vector processor having registers for control by vector resisters |
US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
US5280619A (en) * | 1990-05-17 | 1994-01-18 | Texas Instruments Incorporated | System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions |
US5598547A (en) * | 1990-06-11 | 1997-01-28 | Cray Research, Inc. | Vector processor having functional unit paths of differing pipeline lengths |
FR2676845B1 (en) * | 1991-05-23 | 1993-09-24 | Sextant Avionique | DEVICE FOR MANAGING MULTIPLE INDEPENDENT WAITING FILES IN A COMMON AND BANALIZED MEMORY SPACE. |
US5428803A (en) * | 1992-07-10 | 1995-06-27 | Cray Research, Inc. | Method and apparatus for a unified parallel processing architecture |
US5448730A (en) * | 1993-12-14 | 1995-09-05 | International Business Machines Corporation | Correlating a response with a previously sent request in a multitasking computer system using pipeline commands |
US5751986A (en) * | 1994-03-01 | 1998-05-12 | Intel Corporation | Computer system with self-consistent ordering mechanism |
CN1191533C (en) * | 1994-08-31 | 2005-03-02 | 国际商业机器公司 | System and method for communication between equipments |
US5692151A (en) * | 1994-11-14 | 1997-11-25 | International Business Machines Corporation | High performance/low cost access hazard detection in pipelined cache controller using comparators with a width shorter than and independent of total width of memory address |
US5699538A (en) * | 1994-12-09 | 1997-12-16 | International Business Machines Corporation | Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor |
US5752264A (en) * | 1995-03-31 | 1998-05-12 | International Business Machines Corporation | Computer architecture incorporating processor clusters and hierarchical cache memories |
US5710703A (en) * | 1995-06-07 | 1998-01-20 | Chrysler Corporation | Method and system for sharing a hardware resource |
US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US6295599B1 (en) * | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US5953241A (en) * | 1995-08-16 | 1999-09-14 | Microunity Engeering Systems, Inc. | Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction |
US5751983A (en) * | 1995-10-03 | 1998-05-12 | Abramson; Jeffrey M. | Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations |
US5778438A (en) * | 1995-12-06 | 1998-07-07 | Intel Corporation | Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests |
US5860126A (en) * | 1996-12-17 | 1999-01-12 | Intel Corporation | Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model |
US5931915A (en) * | 1997-05-13 | 1999-08-03 | International Business Machines Corporation | Method for processing early arrival messages within a multinode asynchronous data communications system |
US5878226A (en) * | 1997-05-13 | 1999-03-02 | International Business Machines Corporation | System for processing early arrival messages within a multinode asynchronous data communications system |
JP3545906B2 (en) * | 1997-05-29 | 2004-07-21 | 富士通株式会社 | File system control method, parallel file system and program storage medium |
US6247101B1 (en) | 1998-07-01 | 2001-06-12 | Lsi Logic Corporation | Tagged access synchronous bus architecture |
US6467012B1 (en) | 1999-07-08 | 2002-10-15 | International Business Machines Corporation | Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors |
US6779036B1 (en) | 1999-07-08 | 2004-08-17 | International Business Machines Corporation | Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system |
US6442597B1 (en) | 1999-07-08 | 2002-08-27 | International Business Machines Corporation | Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory |
US6678838B1 (en) * | 1999-08-23 | 2004-01-13 | Advanced Micro Devices, Inc. | Method to track master contribution information in a write buffer |
US6591348B1 (en) | 1999-09-09 | 2003-07-08 | International Business Machines Corporation | Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system |
US6725307B1 (en) | 1999-09-23 | 2004-04-20 | International Business Machines Corporation | Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system |
US6587930B1 (en) * | 1999-09-23 | 2003-07-01 | International Business Machines Corporation | Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock |
US6457085B1 (en) | 1999-11-04 | 2002-09-24 | International Business Machines Corporation | Method and system for data bus latency reduction using transfer size prediction for split bus designs |
US6542949B1 (en) | 1999-11-08 | 2003-04-01 | International Business Machines Corporation | Method and apparatus for increased performance of a parked data bus in the non-parked direction |
US6523076B1 (en) | 1999-11-08 | 2003-02-18 | International Business Machines Corporation | Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks |
US6535941B1 (en) | 1999-11-08 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants |
US6684279B1 (en) | 1999-11-08 | 2004-01-27 | International Business Machines Corporation | Method, apparatus, and computer program product for controlling data transfer |
US7529799B2 (en) | 1999-11-08 | 2009-05-05 | International Business Machines Corporation | Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system |
US6516379B1 (en) | 1999-11-08 | 2003-02-04 | International Business Machines Corporation | Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system |
US6606676B1 (en) | 1999-11-08 | 2003-08-12 | International Business Machines Corporation | Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system |
US6529990B1 (en) | 1999-11-08 | 2003-03-04 | International Business Machines Corporation | Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system |
US6571332B1 (en) | 2000-04-11 | 2003-05-27 | Advanced Micro Devices, Inc. | Method and apparatus for combined transaction reordering and buffer management |
US6920534B2 (en) * | 2001-06-29 | 2005-07-19 | Intel Corporation | Virtual-port memory and virtual-porting |
US7124410B2 (en) * | 2002-01-09 | 2006-10-17 | International Business Machines Corporation | Distributed allocation of system hardware resources for multiprocessor systems |
US20050172091A1 (en) * | 2004-01-29 | 2005-08-04 | Rotithor Hemant G. | Method and an apparatus for interleaving read data return in a packetized interconnect to memory |
US20060277248A1 (en) * | 2005-05-12 | 2006-12-07 | Baxter Eugene E | Configuration-based application architecture using XML/XSLT |
US8264506B2 (en) * | 2007-09-04 | 2012-09-11 | Lg Electronics Inc. | System and method for displaying a rotated image in a display device |
US10116732B1 (en) * | 2014-12-08 | 2018-10-30 | Amazon Technologies, Inc. | Automated management of resource attributes across network-based services |
FR3096217A1 (en) | 2019-05-15 | 2020-11-20 | Orange | Method for managing the resources of a converged fixed-access and radio-mobile telecommunications network, computer program product and corresponding devices. |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4320451A (en) * | 1974-04-19 | 1982-03-16 | Honeywell Information Systems Inc. | Extended semaphore architecture |
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
FR2469751A1 (en) * | 1979-11-07 | 1981-05-22 | Philips Data Syst | SYSTEM INTERCOMMUNICATION PROCESSOR FOR USE IN A DISTRIBUTED DATA PROCESSING SYSTEM |
US4318173A (en) * | 1980-02-05 | 1982-03-02 | The Bendix Corporation | Scheduler for a multiple computer system |
SE423839B (en) * | 1980-10-02 | 1982-06-07 | Volvo Ab | SET AND DEVICE FOR STEERING A STEERABLE WHEEL VEHICLE |
US4663706A (en) * | 1982-10-28 | 1987-05-05 | Tandem Computers Incorporated | Multiprocessor multisystem communications network |
US4644461A (en) * | 1983-04-29 | 1987-02-17 | The Regents Of The University Of California | Dynamic activity-creating data-driven computer architecture |
US4615001A (en) * | 1984-03-29 | 1986-09-30 | At&T Bell Laboratories | Queuing arrangement for initiating execution of multistage transactions |
US4967342A (en) * | 1984-08-17 | 1990-10-30 | Lent Robert S | Data processing system having plurality of processors and channels controlled by plurality of system control programs through interrupt routing |
US4682284A (en) * | 1984-12-06 | 1987-07-21 | American Telephone & Telegraph Co., At&T Bell Lab. | Queue administration method and apparatus |
US4972314A (en) * | 1985-05-20 | 1990-11-20 | Hughes Aircraft Company | Data flow signal processor method and apparatus |
US4779194A (en) * | 1985-10-15 | 1988-10-18 | Unisys Corporation | Event allocation mechanism for a large data processing system |
US4805107A (en) * | 1987-04-15 | 1989-02-14 | Allied-Signal Inc. | Task scheduler for a fault tolerant multiple node processing system |
US4807111A (en) * | 1987-06-19 | 1989-02-21 | International Business Machines Corporation | Dynamic queueing method |
US5012409A (en) * | 1988-03-10 | 1991-04-30 | Fletcher Mitchell S | Operating system for a multi-tasking operating environment |
US5031089A (en) * | 1988-12-30 | 1991-07-09 | United States Of America As Represented By The Administrator, National Aeronautics And Space Administration | Dynamic resource allocation scheme for distributed heterogeneous computer systems |
-
1990
- 1990-06-11 US US07/535,786 patent/US5208914A/en not_active Expired - Lifetime
-
1991
- 1991-06-10 JP JP3514424A patent/JPH05508497A/en active Pending
- 1991-06-10 AU AU84474/91A patent/AU8447491A/en not_active Abandoned
- 1991-06-10 WO PCT/US1991/004054 patent/WO1991020038A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US5208914A (en) | 1993-05-04 |
AU8447491A (en) | 1992-01-07 |
WO1991020038A1 (en) | 1991-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH05508497A (en) | Method and apparatus for non-sequential source access | |
EP0512007B1 (en) | Cluster architecture for a highly parallel scalar/vector multiprocessor system | |
US5165023A (en) | Parallel processing system with processor array and network communications system for transmitting messages of variable length | |
US4891787A (en) | Parallel processing system with processor array having SIMD/MIMD instruction processing | |
US4873626A (en) | Parallel processing system with processor array having memory system included in system memory | |
US7133981B2 (en) | Prioritized bus request scheduling mechanism for processing devices | |
AU598857B2 (en) | Move-out queue buffer | |
EP0351955B1 (en) | Multiprocessor systems with cross-interrogated store-in-caches | |
US5675736A (en) | Multi-node network with internode switching performed within processor nodes, each node separately processing data and control messages | |
US5418970A (en) | Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content | |
EP0524682A1 (en) | A centralized backplane bus arbiter for multiprocessor systems | |
EP0450233A2 (en) | Bus access for digital computer system | |
JPH05508044A (en) | Communication switching system for multiprocessor systems | |
JPH0642236B2 (en) | Device that executes interlock read command message from commander node in responder node | |
JPH09172460A (en) | Method and apparatus for high-speed transfer slave request in packet switching comuter system | |
US5210828A (en) | Multiprocessing system with interprocessor communications facility | |
JPH04306758A (en) | Compatible packet-switching type memory bus for multiprocessor using common memory | |
JPH0587855B2 (en) | ||
JPH05250293A (en) | Communication equipment and method for using the equipment | |
JPH04333955A (en) | Decision system of packet switching type bus containing bus for memory common multi-processor | |
US5165038A (en) | Global registers for a multiprocessor system | |
US7383336B2 (en) | Distributed shared resource management | |
EP0327203B1 (en) | NxM arbitrating non-blocking high bandwidth switch | |
JPH05242019A (en) | Look-ahead priority mediation system and its method | |
US6789155B2 (en) | System and method for controlling multi-bank embedded DRAM |