JPH01234940A - Preference type queue management - Google Patents

Preference type queue management

Info

Publication number
JPH01234940A
JPH01234940A JP63318660A JP31866088A JPH01234940A JP H01234940 A JPH01234940 A JP H01234940A JP 63318660 A JP63318660 A JP 63318660A JP 31866088 A JP31866088 A JP 31866088A JP H01234940 A JPH01234940 A JP H01234940A
Authority
JP
Japan
Prior art keywords
stack
priority
contents
holding register
queue
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.)
Granted
Application number
JP63318660A
Other languages
Japanese (ja)
Other versions
JPH0570177B2 (en
Inventor
Michael A Sweeney
マイケル・アーサー・スウイニイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH01234940A publication Critical patent/JPH01234940A/en
Publication of JPH0570177B2 publication Critical patent/JPH0570177B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance

Abstract

PURPOSE: To manage the priority queue efficiently by storing entry of the highest priority to a storage register. CONSTITUTION: Every time a new element is written in a queue, the priority of the new element is compared with the priority of an existing element in a storage register 10. When the new element has higher priority, the existing element in the storage register 10 is written at a head of a stack 16. On the other hand, when the element in the storage register 10 has higher priority, the new element is written at a head of the stack. Thus, it is warranted that the storage register 10 has an element with highest priority at all times. Thus, the priority queue is managed efficiently.

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は一般的にはデータ処理アーキテクチャに関し、
さらに詳しくいえば、データ待ち行列のアーキテクチャ
に関する。
DETAILED DESCRIPTION OF THE INVENTION A. Field of Industrial Application This invention relates generally to data processing architectures;
More specifically, it concerns the architecture of data queues.

B、従来技術及びその問題点 多くのデータ処理アプリケーションにおいては、データ
はその操作についての固有の優先度ないし優先順位と関
連付けられている。たとえば、ネットワークに接続され
ている複数のノードが共通資源へのアクセスについて競
合しなければならないようなローカル・エリア・ネット
ワ°−りの競合解決において、データ伝送の要件がネッ
トワークの全体的な動作にとって固有的により重要であ
るようなノードに好適なサービスを提供することは意味
のあることである。典型的には、従来技術はノードによ
って処理される幾つかのセツションを指定する記述子を
優先式待ち行列に優先順位をもって記憶していた。各々
の新しいセツション及び関連する優先順位がノードに割
り当てられるので、そのセツションはそのノードで既存
のセツションの優先順位に対する優先順位でもって編成
しなければならない。従来、これは複数の既存のセツシ
ョンを表わす優先順位付けされた待ち行列の内容を調べ
てその優先度に応じてランク付けされる位置で新しいセ
ツションの記述子をその待ち行列に書き込むことによっ
て行なわれていた。したがって、ノードにおいて新しい
セツションの記述子を優先式待ち行列に書き込んだ後、
待ち行列は新しく割り当てられた優先順位で再編成され
ることとなる。
B. Prior Art and its Problems In many data processing applications, data is associated with an inherent priority for its manipulation. For example, in local area network contention resolution, where multiple nodes connected to the network must compete for access to a common resource, the data transmission requirements are critical to the overall operation of the network. It makes sense to provide preferred services to nodes that are uniquely more important. Typically, the prior art stored descriptors specifying the number of sessions to be processed by a node in a prioritized queue. As each new session and associated priority is assigned to a node, the session must be organized in priority order relative to the priorities of existing sessions at that node. Traditionally, this is done by examining the contents of a prioritized queue representing multiple existing sessions and writing the new session's descriptor to the queue in a position ranked according to its priority. was. Therefore, after writing a new session's descriptor to the priority queue at a node,
The queue will be reorganized with the newly assigned priority.

新しいセツションについての割当ての発生は時間的にラ
ンダムなので、このような動作モードには問題が生じる
。優先式待ち行列に記録すべき新しい事象またはセツシ
ョンが非同期的に発生することから、従来の優先式待ち
行列のメカニズムでは待ち行列への新しいデータのエン
トリに短時間でしかも繰り返して応答することは困難と
なる。というのは、各エントリは優先式待ち行列におけ
る既存のエレメントの優先順位に対する新しいエレメン
トの相対的な優先順位に関する割当てを必要とするから
である。
Problems arise with this mode of operation because the occurrence of assignments for new sessions is random in time. Because new events or sessions to be recorded in a priority queue occur asynchronously, it is difficult for traditional priority queuing mechanisms to quickly and repeatedly respond to entries of new data into the queue. becomes. This is because each entry requires an assignment of the relative priority of the new element to the priority of existing elements in the priority queue.

優先式待ち行列が用いられるようなデータ処理アプリケ
ーションは他にもある。たとえば、多重プログラミング
・アプリケーションである。多重プログラミング式コン
ピュータ・アーキテクチャの1つのタイプは複数のプロ
グラムが各プログラムの実行についてタイム・スライス
・オペレーションを課することによって単一資源CPU
で実行されるような作業ステップ・アーキテクチャであ
る。
There are other data processing applications where priority queuing is used. For example, multiple programming applications. One type of multiprogrammed computer architecture is one in which multiple programs are programmed onto a single resource CPU by imposing time-sliced operations on each program's execution.
The work step architecture is such that it is executed in

時間は複数の期間に分けられて、CPUの実行すべき複
数のプログラムの各々には実行のための相対的な優先順
位が割り当てられる。タイム・スライスされた各期間の
始まりで、各プログラムの優先度が調べられ、最高の優
先順位を有するプログラムがそのタイム・スライスされ
た期間中、実行のために選択される。、プログラムまた
はサブルーチンが事象駆動方式に基づいて割り当てられ
るような場合、実行すべきプログラムを表わす優先式待
ち行列の増加は多重プログラミング・プロセスのタイム
・スライス・オペレーションと非同期的であるようなや
り方で行なわれなければならない。
Time is divided into periods and each of the programs to be executed by the CPU is assigned a relative priority for execution. At the beginning of each time-sliced period, the priority of each program is examined and the program with the highest priority is selected for execution during that time-sliced period. , where programs or subroutines are assigned on an event-driven basis, the growth of priority queues representing programs to be executed is done in such a way that it is asynchronous to the time slicing operations of multiple programming processes. must be

次のサイクルの実行のためにどのプログラムが最高の優
先順位を有するのかを追跡する優先式待ち行列が、新し
いプログラムまたはサブルーチンがその待ち行列に対し
て割り当てられた優先順位を有するたびごとに再編成さ
れなければならないとすれば、優先式待ち行列への新し
いプログラムの割当てに関する高速の繰返しは不可能と
なり、同一時に、次のサイクルの実行のため正確に識別
された最高優先順位のプログラムを利用することもでき
ない。したがって、本発明の目的は従来に比してより効
率的な方法で優先式待ち行列を管理することである。
A priority queue that tracks which program has the highest priority for execution in the next cycle is reorganized each time a new program or subroutine has an assigned priority for that queue. If it had to be done, fast repetition of the assignment of new programs to the priority queue would not be possible, and at the same time the correctly identified highest priority program would be available for execution in the next cycle. I can't even do that. It is therefore an object of the present invention to manage priority queues in a more efficient manner than previously.

本発明の他の目的は従来に比してより高速に優先式待ち
行列を管理することである。
Another object of the present invention is to manage priority queues faster than previously possible.

本発明の他の目的は優先式待ち行列への新しいエレメン
トの非同期的な割当てを従来に比してより高速にできる
ようにすることである。
Another object of the invention is to enable faster asynchronous allocation of new elements to priority queues than previously possible.

本発明の他の目的は優先式待ち行列の先頭のエレメント
をより改善された方法ですぐに利用できるようにするこ
とである。
Another object of the invention is to make the elements at the head of a priority queue readily available in an improved manner.

C9問題点を解決するための手段 この目的を達成するため、データ処理システムにおいて
優先式待ち行列を管理する本発明の方法は、(a)最高
優先順位のデータの要求に応答してデータ部分及び優先
順位部分を有する保持レジスタの内容を読み取るスキッ
プと、(b)各々優先順位部分及びデータ部分を有する
スタック内の複数のエレメントのうちスタック先頭ポイ
ンタによって指示される先頭のエレメントを読み取って
その内容を上記保持レジスタに書き込むステップと、(
c)初期的に上記スタック先頭ポインタと等しくセット
されているスタック探索ポインタによって指示されるス
タック内の最初のエントリを見つけることによってスタ
ック内の複数のエレメントを探索して上記スタック探索
ポインタによって指示されるエントリの内容と上記保持
レジスタの内容とを比較するステップと、(d)上記ス
タック内のエン) IJの内容の優先順位部分が上記保
持レジスタの内容の優先順位部分よりも高いものである
場合に上記スタック探索ポインタによって指示される上
記スタック内のエントリの内容と上記保持レジスタの内
容とをスワップするステップと、(e)新しいデータが
上記スタックに書き込まれるかどうかを判断するステッ
プと、(r)上記新しいデータの優先順位部分が上記保
持レジスタの内容の優先順位部分よりも高いものである
かどうかを判断するため上記スタックに書き込むべき新
しいデータを比較するステップと、(g) 上記新しい
データの優先順位部分が上記保持レジスタの内容の優先
順位部分よりも高いものである場合に上記スタック先頭
ポインタの内容を増分して上記保持レジスタの内容を上
記スタック先頭ポインタによって新たに指示される上記
スタック内のロケーションに書き込み、さらに上記新し
いデータを上記保持レジスタに書き込むステップと、(
h)上記新しいデータの優先順位部分が上記保持レジス
タの内容の優先順位部分よりも高くない場合に上記新し
いデータを上記スタックに書き込むステップと、(i)
上記スタック内のすべてのエントリの比較が完了するま
で上記ステップ(c)以降のステップを繰り返すステッ
プと、を含むことにより最高優先順位のエントリが上記
保持レジスタに記憶されるようにしたことを特徴として
いる。
SUMMARY OF THE INVENTION To achieve this objective, the method of the present invention for managing priority queues in a data processing system includes: (a) processing data portions and queues in response to requests for highest priority data; (b) reading the first element pointed to by the stack top pointer among a plurality of elements in the stack, each having a priority section and a data section, and determining its contents; The step of writing to the above holding register and (
c) traversing the multiple elements in the stack by finding the first entry in the stack pointed to by the stack search pointer, which is initially set equal to the top of stack pointer; (d) comparing the contents of the entry with the contents of the holding register; (e) swapping the contents of an entry in the stack pointed to by the stack search pointer with the contents of the holding register; (e) determining whether new data is to be written to the stack; and (r) (g) comparing the new data to be written to the stack to determine whether the priority portion of the new data is higher than the priority portion of the contents of the holding register; and (g) the priority of the new data. If the priority part is higher than the priority part of the contents of the holding register, the contents of the stack top pointer are incremented and the contents of the holding register are transferred to the contents of the stack newly pointed to by the stack top pointer. writing the new data to the holding register;
h) writing the new data onto the stack if the priority portion of the new data is not higher than the priority portion of the contents of the holding register; and (i)
repeating the steps after step (c) until the comparison of all entries in the stack is completed, so that the entry with the highest priority is stored in the holding register. There is.

以下、本発明の作用を実施例と共に説明する。Hereinafter, the operation of the present invention will be explained along with examples.

D、実施例 はじめに本発明の実施例を概説する。本発明に従って、
優先式待ち行列の処理において、それらのエレメントが
未記憶のスタック内に保存され、最高優先順位のエレメ
ントがその保持レジスタから読み取られた後にのみ次に
高い優先順位を有するエレメントについてこれらのエレ
メントが探索される。本発明はこれを実行することがで
きる。
D. Examples First, examples of the present invention will be outlined. According to the invention,
In processing a priority queue, the elements are stored in an unmemorized stack and are searched for the next highest priority element only after the highest priority element has been read from its holding register. be done. The present invention can do this.

というのは、新しいエレメントがこの待ち行列に書き込
まれるたびに、新しいエレメントの優先度と保持レジス
タに存する既存のエレメントの優先度との比較が行なわ
れるからである。新しいエレメントの方が高い優先度を
有するときは、保持レジスタに存する既存のエレメント
はスタックの先頭に書き込まれる。一方、保持レジスタ
中のエレメントの方が高い優先度を有するときは、新し
いエレメントがスタックの先頭に書き込まれる。したが
って、保持レジスタが最高優先順位を有するエレメント
を常に保有することが保証される。その結果、保持レジ
スタの内容を読み取ることによる優先式待ち行列の読取
りは、最高優先順位のエレメントがそこに存在しかつ待
ち行列のさらなる探索なしにすぐにこれをアクセスでき
ることを保証する。前述のごとく、探索オペレーション
が関与するのは、保持レジスタの内容を読み取った後だ
けである。高速の読取りオペレージジンを提供するため
、はじめにスタックの先頭のエレメントを保持レジスタ
に入れる。次に、優先順位探索オペレージジンが、優先
式待ち行列の残りの各エレメントが保持レジスタの内容
の優先順位と比較される優先順位を持つように実行され
る。保持レジスタ中のエレメントの優先順位が優先式待
ち行列に存するエレメントの優先順位より低いときは、
必ずスワップ・オペレーションが行なわれる。探索オペ
レーションが、スタックの後尾まで行なわれるころまで
には、保持レジスタは最高優先順位を有する待ち行列エ
レメントを含む。
This is because each time a new element is written to this queue, a comparison is made between the priority of the new element and the priority of the existing elements in the holding register. If the new element has a higher priority, the existing element in the holding register is written to the top of the stack. On the other hand, if the element in the holding register has a higher priority, the new element is written to the top of the stack. Therefore, it is guaranteed that the holding register will always contain the element with the highest priority. As a result, reading a priority queue by reading the contents of a holding register ensures that the highest priority element is there and can be accessed immediately without further searching the queue. As previously mentioned, search operations are only involved after reading the contents of the holding register. To provide fast read operations, the top element of the stack is first placed in a holding register. A priority search operation is then performed such that each remaining element of the priority queue has a priority that is compared to the priority of the contents of the holding register. If the priority of the element in the holding register is lower than the priority of the element in the priority queue,
A swap operation is always performed. By the time the search operation reaches the end of the stack, the holding register contains the queue element with the highest priority.

以下、図面を参照して実施例を詳細に説明する。Hereinafter, embodiments will be described in detail with reference to the drawings.

本発明に基づく高速アクセス優先式待ち行列は優先式待
ち行列が読み取られるときについて一定の規則性が存在
するようなデータ処理アプリケーションにおいて動作す
る。このことは、第5図に示すようなローカル・エリア
・ネットワークについて第4図に示すごときタイミング
・フレームで例示的に示されている。第5図に示すよう
なローカル・エリア・ネットワークにおいては、リング
1(以下、「通信媒体」または「通信ネットワーク」と
もいう)のごとき中央通信リンクまたはスター式バスが
複数の通信ノード(たとえばノード3とノード3°)を
論理的に相互接続する。各ノードはネットワーク・イン
ターフェース・ユニット5(以下、「ネットワーク・コ
ントローラ」ともいう)及びローカル装置7を含む。ロ
ーカル装置7は、たとえば、コンピュータ、データ・イ
ンターフェースまたは他のデータ処理通信装置である。
The fast access priority queue according to the present invention operates in data processing applications where there is some regularity as to when the priority queue is read. This is illustratively illustrated in a timing frame such as that shown in FIG. 4 for a local area network such as that shown in FIG. In a local area network such as that shown in FIG. and node 3°) are logically interconnected. Each node includes a network interface unit 5 (hereinafter also referred to as "network controller") and a local device 7. The local device 7 is, for example, a computer, a data interface or other data processing and communication device.

多くのLANアプリケーションにおいては、各ノードは
複数の他のノードとの複数の通信セツションを管理する
ためのネットワーク・コントローラ5を有する。ネット
ワーク・インターフェース・ユニット5で管理すべき各
通信セツションは各自に割り当てられた関連する優先度
の値を有する。この値は、そのノード3によって及びシ
ステム内の他めノード3°によって管理すべき他の通信
セツションに対してその通信セツションが有する固有の
相対的な重要度を示すものである。こうしたアプリケー
ションにおいて本発明は特に有益である。
In many LAN applications, each node has a network controller 5 for managing multiple communication sessions with multiple other nodes. Each communication session to be managed by the network interface unit 5 has an associated priority value assigned to it. This value indicates the inherent relative importance that a communication session has with respect to other communication sessions to be managed by that node 3 and by other nodes 3° in the system. The present invention is particularly useful in such applications.

ネットワークのすべてのノード及びすべてのセツション
に各自の情報を送信する機会を与えるため、時間が一連
のタイム・フレームに分けられる(第4 図参照)。1
つのタイム・フレームは同1t7Jヘツダ、肯定応答部
分及び競合解決部分を有する制御部を含む。このフレー
ムは制御部に続くデータ部を有する。データ部は通信媒
体1を介してシステム内の宛先ノードに伝送される関連
データを有する。典型的には、フレームの制御部はたと
えば40マイクロ秒であり、フレームのデータ部はたと
えば40マイクロ秒から400マイクロ秒までの可変の
期間である。あるノードが第4図のタイム・フレームの
制御部の競合解決部分で対象となりうるセツションを選
択するためには、ネットワーク・インターフェース・ユ
ニット5が優先式待ち行列を保持しなければならない。
In order to give every node and every session of the network an opportunity to transmit their information, time is divided into a series of time frames (see Figure 4). 1
Each time frame includes a control section with the same 1t7J header, an acknowledgment section, and a conflict resolution section. This frame has a data section following a control section. The data part comprises the relevant data to be transmitted via the communication medium 1 to a destination node in the system. Typically, the control portion of the frame is, for example, 40 microseconds, and the data portion of the frame is of variable duration, for example, from 40 microseconds to 400 microseconds. In order for a node to select possible sessions in the contention resolution portion of the time frame control portion of FIG. 4, network interface unit 5 must maintain a priority queue.

優先式待ち行列は2つの部分を有するエントリを含む第
3図に示すような1つのスタックを保有する。第3図の
スタック内の1つのエントリの第1の部分はそのエント
リについての優先度の値であり、競合解決部分の間に他
のセツションについての他の優先度の値色比較すべき優
先度の値である。第3図のスタック内のエントリの優先
順位部分の他に、この優先順位部分に関連するデータ部
分がある。ここで説明する例においては、このデータ部
分は1つのアドレス・ポインタでもよい。このアドレス
・ポインタは、ネットワーク・インターフェース・ユニ
ット5に関連して記憶され、選択されたセツションで伝
送されるデータを指し示すものである。第3図のスタッ
ク16へのエントリのデータ部分は実際のデータであっ
てもよい。たとえば、通信ネットワーク1を介して伝送
すべきメツセージ・パケットの実際のデータ部分でもよ
い。以上のようなタイプのアプリケーションにおいて本
発明は特に有益である。
A priority queue maintains a stack as shown in FIG. 3 containing an entry having two parts. The first part of one entry in the stack of Figure 3 is the priority value for that entry, and during the conflict resolution part the other priority values for other sessions are the priorities to be compared. is the value of In addition to the priority portion of the entries in the stack of FIG. 3, there is a data portion associated with this priority portion. In the example described here, this data portion may be an address pointer. This address pointer is stored in association with the network interface unit 5 and points to the data to be transmitted on the selected session. The data portion of the entry into the stack 16 of FIG. 3 may be actual data. For example, it may be the actual data part of a message packet to be transmitted over the communication network 1. The invention is particularly useful in these types of applications.

第2図は高速アクセス優先式待ち行列のコントローラ9
のアーキテクチャを示す図である。この図かられかるよ
うに、待ち行列コントローラ9は、バス・コントローラ
15及び当該ノードが競合解決の勝者となったときに通
信ネットワーク1に出力されるデータを用いて最高の優
先度のセツションを選択するためメモリ・マネジメント
・プロセッサ11及びセツション・データRAMに相互
接続される。待ち行列コントローラ9は複数のエントリ
を有するスタック16を保持する。各エントリはそのエ
ントリの優先順位及び1つのアドレスポインタを含む。
Figure 2 shows the controller 9 of the fast access priority queue.
FIG. As can be seen from the figure, the queue controller 9 selects the session with the highest priority using the bus controller 15 and the data output to the communication network 1 when the node in question wins the conflict resolution. The memory management processor 11 and the session data RAM are interconnected to each other. Queue controller 9 maintains a stack 16 with multiple entries. Each entry includes the entry's priority and one address pointer.

その待ち行列及び機能選択入力が待ち行列コントローラ
9に最高優先順位エレメントがスタックから読み取られ
かつ出力されるということを指示すると、その最高優先
順位のエレメントは、バス・コントローラ15に供給さ
れる優先順位部分及びメモリ・マネジメント・プロセッ
サ11に供給されるポインタ部分と共にスタックから出
力される。メモリ・マネジメント・プロセッサ11はポ
インタ部分を用いて、競合解決に勝った場合に通信リン
クを介して伝送すべきセツション・データRAM13中
のデータ・セグメントを’B 別する。バス・コントロ
ーラ15は優先度の値を用いて通信ネットワーク1につ
いてのバス競合解決オペレーションに関与する。
If its queue and function select inputs indicate to the queue controller 9 that the highest priority element is to be read from the stack and output, then that highest priority element will be the priority element supplied to the bus controller 15. portion and a pointer portion provided to memory management processor 11 from the stack. Memory management processor 11 uses the pointer portion to identify the data segment in session data RAM 13 that should be transmitted over the communication link if the conflict resolution is won. The bus controller 15 uses the priority values to participate in bus contention resolution operations for the communication network 1.

第2図に示す待ち行列コントローラ9は第1図の流れ図
で示すプロセスを実行する待ち行列状態機械を有する。
The queue controller 9 shown in FIG. 2 has a queue state machine that implements the process shown in the flowchart of FIG.

待ち行列状態機械はスタック先頭ポインタ12、スタッ
ク探索ポインタ14及びRAM制御(これはスタック1
6に接続されている)への出力を有する。待ち行列ポイ
ンタ9はさらに保持レジスタ10、−時レジスタ18、
入力レジスタ22及び比較論理20を含む。
The queue state machine includes a top of stack pointer 12, a stack search pointer 14, and a RAM control (this is stack 1
6). The queue pointer 9 further includes a holding register 10, a -hour register 18,
Includes input register 22 and comparison logic 20.

次に動作を説明する。第3図のスタック16が複数のス
タック・エントリを記憶し、その各々が優先順位部分と
データ部分を含むものと仮定する。
Next, the operation will be explained. Assume that the stack 16 of FIG. 3 stores a plurality of stack entries, each containing a priority portion and a data portion.

スタックの後尾は固定値を有する。たとえばアドレス値
Oでもよい。スタックの先頭はスタック先頭ポインタ1
2の内容(以下、r I ma xJという)によって
示される。第4図のタイム・フレームにおいて、制御部
の肯定応答部分の終了の際、たとえば、待ち行列コント
ローラ9は待ち行列及び機能選択入力ラインを介して、
最高優先順位のエントリがスタック16からアクセスさ
れることを要求する1つの入力を受は取る。このとき、
第1図の流れ図において、現に最高優先順位のエントリ
を含む保持レジスタ10が読み取られ、その値がコント
ローラのI10ドライバから出力されf’−9・バスヲ
介シてバス・コントローラ15及びメモリ・マネジメン
ト・プロセッサ11に供給される。そうして第1図の流
れ図に示すように、スタック先頭ポインタ12によって
指示されるスタックの先頭のところにあるスタックの内
容が読み取られる。その値が保持レジスタ10に新たに
書き込まれるエントリの値である。このとき、スタック
先頭ポインタ12の値は1単位だけ減分され、それはス
タックの先頭が次の下位アドレス値のところにあること
を示す。
The tail of the stack has a fixed value. For example, the address value may be O. The top of the stack is stack top pointer 1
2 (hereinafter referred to as r I max J). In the time frame of FIG. 4, at the end of the acknowledgment portion of the control, for example, the queue controller 9 via the queue and function selection input lines:
The receiver takes one input requesting that the highest priority entry be accessed from stack 16. At this time,
In the flowchart of FIG. 1, the holding register 10 that currently contains the highest priority entry is read and its value is output from the controller's I10 driver to the bus controller 15 and memory management controller via the f'-9 bus. The signal is supplied to the processor 11. Then, as shown in the flowchart of FIG. 1, the contents of the stack at the top of the stack indicated by the stack top pointer 12 are read. This value is the value of the entry newly written to the holding register 10. At this time, the value of the stack top pointer 12 is decremented by one unit, indicating that the top of the stack is at the next lower address value.

保持レジスタ10の内容は本発明に従って待ち行列コン
トローラ9からのアクセスのためにすぐに利用できる。
The contents of holding register 10 are immediately available for access by queue controller 9 according to the invention.

こうして待ち行列コントローラ9はタイム・フレームの
肯定応答部分の終了により待ち行列及び機能選択要求に
対してすぐに応答できたので、待ち行列コントローラ9
は次のタイム・フレームの次の制御部が発生するまで、
待ち時間を有する。スタック16を探索して最高優先順
位のエレメントを識別してこれを保持レジスタ10に置
(のは、この待ち時間の間である。これは第1図の流れ
図に示される1つのループによって遂行される。このル
ープは、スタック先頭ポインタ12と同じ内容を有する
ことでスタックの先頭を指示するスタック探索ポインタ
14によってスタック16を順次的に探索することから
始まる。スタック探索ポインタ14によって指示される
エントリのうちの優先順位部分の内容は保持レジスタ1
0に記憶されたエントリの優先順位の値と比較される。
The queue controller 9 was thus able to respond immediately to the queue and function selection requests due to the end of the acknowledgment portion of the time frame.
until the next control part of the next time frame occurs.
It has a waiting time. It is during this wait time that the stack 16 is searched to identify the highest priority element and placed in the holding register 10. This is accomplished by a single loop as shown in the flowchart of FIG. This loop begins by sequentially searching the stack 16 using the stack search pointer 14, which points to the top of the stack by having the same contents as the stack top pointer 12. The contents of our priority part are held in register 1
It is compared with the priority value of the entry stored as 0.

前者が後者よりも高いものであるききは、スタック探索
ポインタ14によって指示されるロケ−シロンにあるス
タックの内容と保持レジスタ10の内容とをスワップす
るためスワップ・オペレーションを行なわなければなら
ない。これは、スタック探索ポインタ14によって指示
されるエントリの内容を取り出してこれを待ち行列コン
トローラ9の一時レジスタ18に置くことによって行な
われる。次に、保持レジスタ10の内容がスタック探索
ポインタ14によって指示されるロケーションでスタッ
クに書き込まれる。そうして、−時レジスタ18の内容
が保持レジスタ1oに書き込まれる。このスワップ・オ
ペレーシヨンが行なわれると、保持レジスタの内容はス
タック内の任意のエントリについて最高優先順位のエン
トリを有する可能性が萬い。第1図のループが完了し、
スタック内のすべてのエントリについての比較が完了す
るころまでには、保持レジスタの内容はスタック16内
のすべてのエントリが最高優先順位を有することが保証
される。
If the former is higher than the latter, a swap operation must be performed to swap the contents of the holding register 10 with the contents of the stack at the location pointed to by the stack search pointer 14. This is done by taking the contents of the entry pointed to by the stack search pointer 14 and placing it in a temporary register 18 of the queue controller 9. The contents of holding register 10 are then written to the stack at the location pointed to by stack search pointer 14. Then, the contents of the - hour register 18 are written into the holding register 1o. When this swap operation is performed, the contents of the holding register may have the highest priority entry for any entry in the stack. The loop in Figure 1 is completed,
By the time the comparison is completed for all entries in the stack, the contents of the holding registers ensure that all entries in the stack 16 have the highest priority.

第1図の流れ図かられかるように、比較論理20によっ
て実行される比較が、スタック探索ポインタ14によっ
て指示されるスタック内のエントリの内容が保持レジス
タ10の内容より高いものでないことを示す場合、この
プロセスはスタック16に書き込まれるべき新しいエン
トリが待ち行列コントローラ9に入力されたかどうかを
調べるステップに進む。
As can be seen from the flowchart of FIG. The process proceeds to the step of checking whether a new entry to be written to the stack 16 has been entered into the queue controller 9.

上述のスワップ・オペレーションが終了した場合もこの
ステップに進む。第1図に示すごとく、入力レジスタ2
2は任意の新しいデータをスタックに加える準備が完了
しているかどうかについて判断される。入力レジスタ2
2が優先順位部分及びポインタ部分の双方を含む新しい
エントリを有するものと判断された場合は、この新しい
エントリの優先度が保持レジスタ10に含まれるものよ
りも高いかどうかについての比較オペレーションを行な
わなければならない。こうして、比較論理20は入力レ
ジスタ22の内容の優先順位部分と保持レジスタ10の
内容の優先順位部分とを比較して前者が後者よりも高い
ものであるときは、新しいデータが保持レジスタ10に
書き込まれる。
Proceed to this step also if the swap operation described above is completed. As shown in Figure 1, input register 2
2 is determined as to whether any new data is ready to be added to the stack. input register 2
2 is determined to have a new entry containing both a priority part and a pointer part, a comparison operation must be performed as to whether this new entry has a higher priority than that contained in the holding register 10. Must be. Thus, comparison logic 20 compares the priority portion of the contents of input register 22 with the priority portion of the contents of holding register 10 and, if the former is higher than the latter, new data is written to holding register 10. It will be done.

これは次のようにして行なわれる。まず、スタック先頭
ポインタ12の値Imaxが1つだけ増分される。次に
、保持レジスタ10の内容がスタック先頭ポインタ12
によって指示されるスタック内のロケーションに書き込
まれる。その後、入力レジスタ22中の新しいデータは
保持レジスタ10に書き込まれる。このようにして、保
持レジスタがスタック内で任意の値の最高優先順位の値
を有するエントリを含むという可能性が高くなる。
This is done as follows. First, the value Imax of the stack top pointer 12 is incremented by one. Next, the contents of the holding register 10 are transferred to the stack top pointer 12.
is written to the location in the stack pointed to by . The new data in input register 22 is then written to holding register 10. In this way, there is a high probability that the holding register will contain an entry with the highest priority value of any value in the stack.

一方、新しいデータが保持レジスタ10の内容よりも高
いものでない優先順位部分を有するなら、この新しいデ
ータはスタックに書き込まれる。これは次のようにして
行なわれる。スタック先頭ポインタ12の値Imaxが
1つだけ増分される。
On the other hand, if the new data has a priority part that is not higher than the contents of the holding register 10, then this new data is written to the stack. This is done as follows. The value Imax of the stack top pointer 12 is incremented by one.

次に、入力レジスタ22中の新しいデータがスタック先
頭ポインタ12によって指示されるスタック内のロケー
ションに書き込まれる。その後、この流れ図は”B″に
戻る。ポイント″B″は待ち行列コントローラ9への新
しいデータの入力がまったく存在しなかった場合に到達
するポイントである。ポイント”B″では、スタック全
体についてこの比較プロセスが行なわれたがどぅかにつ
いての判断がなされる。スタック探索ポインタ14には
変数名■が与えられる。この流れ図では、■の値がゼロ
であるかどうがが調べられる。とれは、スタックの後尾
に到達したか否かを調べることを意味する。実際にスタ
ックの後尾に到達したときは、流れ図はポイント″A″
に戻り、新しいデータを待ち行列コントローラ9に書き
込む準備が完了するまで、またはタイム・フレームの次
の制御部が発生するまで待機する。一方、スタック探索
ポインタ14のIの値がゼロでないときは、工の値は1
つだけ減分され、スタック16内の次のエントリが保持
レジスタ10よりも高い優先順位の値を有するかどうか
についての判断を行なうことによりループが継続される
。このようにして、ループが完了すると、保持レジスタ
10の内容がスタック16の任意のエントリの優先順位
の値よりも高い優先順位の値を有することが保証される
。保持レジスタ10の内容は、上述のLAN優先順位競
合解決アプリケージUンのようなアプリケーションにと
ってすぐに利用可能である。
The new data in input register 22 is then written to the location in the stack pointed to by stack top pointer 12. The flowchart then returns to "B". Point "B" is the point reached if there were no new data inputs to the queue controller 9. At point "B" a determination is made as to whether this comparison process has been performed on the entire stack. The stack search pointer 14 is given a variable name ■. In this flowchart, it is checked whether the value of ■ is zero. Tore means to check whether the end of the stack has been reached. When we actually reach the tail of the stack, the flowchart is at point “A”
and waits until the new data is ready to be written to the queue controller 9 or until the next control part of the time frame occurs. On the other hand, when the value of I in the stack search pointer 14 is not zero, the value of
The loop continues by making a determination as to whether the next entry in stack 16 has a higher priority value than holding register 10. In this way, upon completion of the loop, it is guaranteed that the contents of holding register 10 will have a higher priority value than the priority value of any entry in stack 16. The contents of holding register 10 are readily available to applications such as the LAN priority conflict resolution application U described above.

第6図は作業ステップ・アーキテクチャに基づくデータ
・プロセッサにおける本発明の他のアプリケーションを
示す図である。作業ステップ・アーキテクチャにおいて
は、多重プログラミング・オペレーションは複数のプロ
グラムまたはプログラム・セグメントの各々に優先順位
の値が与えられ、その時間が一連の等時間間隔に分けら
れるような場合に生じる。各時間間隔の前に、最高優先
順位を有するプログラムまたはプログラム・セグメント
が次の間隔の間で実行のために選択される。作業ステッ
プ・アーキテクチャのオペレーションを実行する例示的
なコンピュータ・アーキテクチャが第6図に示されてい
る。そのCPUは共有データ処理資源であり、待ち行列
制御ディスパッチャに接続される。この待ち行列制御デ
ィスパッチャは、その時間を一連の等時間間隔に分ける
タイマ入力を有する。待ち行列制御ディスパッチャには
前述のスタック16のごとき優先式スタックが接続され
る。待ち行列制御ディスパッチャには、さらに、大規模
なメモリが接続される。このメモリはその接続のための
アドレス入力を有し、待ち行列制御ディスパッチャによ
って最高の優先順位であると識別されたプログラムまた
はプログラム・セグメント(したがって、このプログラ
ムは次の時間間隔における実行のために選択される可能
性がある)を記憶する。第2図の待ち行列フントローラ
9は第6図の待ち行列制御ディスパッチャに含まれる。
FIG. 6 shows another application of the invention in a data processor based on a working step architecture. In a work step architecture, multiple programming operations occur where each of multiple programs or program segments is given a priority value and its time is divided into a series of equal time intervals. Before each time interval, the program or program segment with the highest priority is selected for execution during the next interval. An exemplary computer architecture for performing the operations of the work step architecture is shown in FIG. The CPU is a shared data processing resource and is connected to a queue control dispatcher. The queue control dispatcher has a timer input that divides its time into a series of equal time intervals. A priority stack, such as stack 16 described above, is connected to the queue control dispatcher. A large amount of memory is also connected to the queue control dispatcher. This memory has address inputs for that connection and the program or program segment identified by the queue control dispatcher as having the highest priority (so that this program is selected for execution in the next time interval). be remembered). The queue hunter 9 of FIG. 2 is included in the queue control dispatcher of FIG.

待ち行列コントローラ9は最高の優先順位を有し、次の
時間間隔で実行のために選択される次のプログラムの識
別を要求するための待ち行列機能選択入力を有するとい
う点で、第5図のLANアプリケージeンで説明したも
のと同様にして作動する。第6図の作業ステップ・アー
キテクチャのアプリケーションにおける待ち行列コント
ローラ9のオペレーションは、第5図のLANアプリケ
ーションで説明したのとほとんど同じである。特に、第
6図の待ち行列制御ディスパッチャへの新しいプログラ
ムまたはプログラム・セグメントの割当てが第6図のタ
イマによって設定される一連の時間間隔の発生と非同期
的である場合、待ち行列コントローラ9はこのことに適
応することができる。というのは、待ち行列コントロー
ラ9は各時間間隔の始まりで利用できる最高優先順位の
プログラムの識別を保持レジスタ10において使用可能
にし、しかも待ち行列コントローラ9は、すでに説明し
たように優先式スタック16に新しいエントリを加える
ことに関して常に利用可能だからである。
The queue controller 9 has the highest priority and has a queue function selection input for requesting identification of the next program to be selected for execution in the next time interval. It operates in the same manner as described for the LAN application. The operation of the queue controller 9 in the application of the work step architecture of FIG. 6 is much the same as that described for the LAN application of FIG. In particular, if the assignment of a new program or program segment to the queue control dispatcher of FIG. 6 is asynchronous with the occurrence of a series of time intervals set by the timer of FIG. can be adapted to. This is because the queue controller 9 makes available in the holding register 10 the identification of the highest priority program available at the beginning of each time interval, and the queue controller 9 also makes available in the priority stack 16 the identity of the highest priority program available at the beginning of each time interval. This is because it is always available for adding new entries.

F3発明の詳細 な説明したように、本発明によれば、保持レジスタに最
高優先順位のエントリが記憶されるので、従来に比して
より効率的に優先式待ち行列を管理することができる。
DETAILED DESCRIPTION OF THE F3 INVENTION According to the present invention, priority queues can be managed more efficiently than in the past because the highest priority entry is stored in a holding register.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は、本発明の詳細な説明する流れ図、第2図は、
本発明に基づく装置の実施例を示す図、第3図は、本発
明に基づくスタック及び保持レジスタの例を示す図、第
4図は、本発明を適用しうる典型的なデータ通信のタイ
ム・フレームを示す図、第5図は、本発明に基づいてセ
ツション優先順位管理を行なうことができるようなLA
Nのアーキテクチャを示す図、第6図は、本発明に基づ
いて優先順位の割当ての管理ができるような作業スチッ
プ・データ・プロセッサのアーキテクチャを示す図であ
る。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) 2% l1ai多−1]2トローラ0動イlT 1 口 q時しシスク ズ2ック ア1−レス       イ愛兜禰イ支      テ
゛−タイ14青し・ンス7刀占l°スク、ヮ7第 3 
図 丼(#なテ°−り通信のタイムフレーム算 4 口 ローηルエリアネ1.I゛ワーク イエ業ステウブアーNテクラマと用い3ジグ10で・7
+rう46 図
FIG. 1 is a detailed flow diagram of the present invention, and FIG.
FIG. 3 is a diagram showing an example of a stack and holding register according to the present invention; FIG. 4 is a diagram showing a typical data communication time diagram to which the present invention can be applied. A frame diagram, FIG.
FIG. 6 is a diagram illustrating the architecture of a work chip data processor capable of managing priority assignments in accordance with the present invention. Applicant International Business Machines Corporation Representative Patent Attorney Takashi Tonmiya - (1 other person) 2% l1ai-1]2 Troller 0 Motion lT 1 Talking Shisukuzu2kkua1-Less Lee Aikone I Branch Tie-Tai 14 Aoshi・Nsu 7 Sword Divination l°Sc, ヮ7th 3rd
Figure bowl (#nateri communication time frame calculation 4 Mouth roll η Lueriane 1.I゛ Worker business Steuber N Techrama and use 3 jig 10 ・7
+ru46 figure

Claims (1)

【特許請求の範囲】  データ処理システムにおいて優先式待ち行列を管理す
る方法であって、 (a)最高優先順位のデータの要求に応答してデータ部
分及び優先順位部分を有する保持レジスタの内容を読み
取るスキップと、 (b)各々優先順位部分及びデータ部分を有するスタッ
ク内の複数のエレメントのうちスタック先頭ポインタに
よって指示される先頭のエレメントを読み取ってその内
容を上記保持レジスタに書き込むステップと、 (c)初期的に上記スタック先頭ポインタと等しくセッ
トされているスタック探索ポインタによって指示される
スタック内の最初のエントリを見つけることによってス
タック内の複数のエレメントを探索して上記スタック探
索ポインタによって指示されるエントリの内容と上記保
持レジスタの内容とを比較するステップと、 (d)上記スタック内のエントリの内容の優先順位部分
が上記保持レジスタの内容の優先順位部分よりも高いも
のである場合に上記スタック探索ポインタによって指示
される上記スタック内のエントリの内容と上記保持レジ
スタの内容とをスワップするステップと、 (e)新しいデータが上記スタックに書き込まれるかど
うかを判断するステップと、 (f)上記新しいデータの優先順位部分が上記保持レジ
スタの内容の優先順位部分よりも高いものであるかどう
かを判断するため上記スタックに書き込むべき新しいデ
ータを比較するステップと、(g)上記新しいデータの
優先順位部分が上記保持レジスタの内容の優先順位部分
よりも高いものである場合に上記スタック先頭ポインタ
の内容を増分して上記保持レジスタの内容を上記スタッ
ク先頭ポインタによって新たに指示される上記スタック
内のロケーションに書き込み、さらに上記新しいデータ
を上記保持レジスタに書き込むステップと、 (h)上記新しいデータの優先順位部分が上記保持レジ
スタの内容の優先順位部分よりも高くない場合に上記新
しいデータを上記スタックに書き込むステップと、 (i)上記スタック内のすべてのエントリの比較が完了
するまで上記ステップ(c)以降のステップを繰り返す
ステップと、 を含むことにより最高優先順位のエントリが上記保持レ
ジスタに記憶されるようにしたことを特徴とする優先式
待ち行列管理方法。
Claims: A method for managing a priority queue in a data processing system, comprising: (a) reading the contents of a holding register having a data portion and a priority portion in response to a request for highest priority data; (b) reading the first element pointed to by the stack head pointer among a plurality of elements in the stack, each having a priority portion and a data portion, and writing its contents to the holding register; Search multiple elements in the stack by finding the first entry in the stack pointed to by the stack search pointer, which is initially set equal to the stack top pointer, and search for the entry pointed to by the stack search pointer. (d) comparing the contents of said holding register with the contents of said stack search pointer if the priority portion of the contents of said entry in said stack is higher than the priority portion of said contents of said holding register; (e) determining whether new data is to be written to the stack; (g) comparing new data to be written to the stack to determine whether the priority portion is higher than the priority portion of the contents of the holding register; incrementing the contents of the stack top pointer and writing the contents of the holding register to a location in the stack newly pointed to by the stack top pointer if the content of the holding register is higher than the priority part; further writing the new data to the holding register; (h) writing the new data to the stack if the priority portion of the new data is not higher than the priority portion of the contents of the holding register; (i) repeating the steps from step (c) onward until the comparison of all entries in the stack is completed, so that the entry with the highest priority is stored in the holding register; A priority queue management method characterized by:
JP63318660A 1988-03-11 1988-12-19 Preference type queue management Granted JPH01234940A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/167,265 US4965716A (en) 1988-03-11 1988-03-11 Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
US167265 2002-06-10

Publications (2)

Publication Number Publication Date
JPH01234940A true JPH01234940A (en) 1989-09-20
JPH0570177B2 JPH0570177B2 (en) 1993-10-04

Family

ID=22606645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63318660A Granted JPH01234940A (en) 1988-03-11 1988-12-19 Preference type queue management

Country Status (3)

Country Link
US (1) US4965716A (en)
EP (1) EP0340344A3 (en)
JP (1) JPH01234940A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03156537A (en) * 1989-11-14 1991-07-04 Matsushita Electric Ind Co Ltd Microprocessor

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170474A (en) * 1986-08-27 1992-12-08 Hitachi, Ltd. Method of searching a queue in response to a search instruction
US5163142A (en) * 1988-10-28 1992-11-10 Hewlett-Packard Company Efficient cache write technique through deferred tag modification
DE68920740D1 (en) * 1989-09-20 1995-03-02 Ibm Message queue operation control device in memory.
KR100191336B1 (en) * 1990-01-22 1999-06-15 렌나르트손켄트 Arrangement for a distributed control system
DE69227664T2 (en) * 1991-10-15 1999-04-22 Hewlett Packard Co Hardware-configured operating system core for a multitask processor
FR2683344B1 (en) * 1991-10-30 1996-09-20 Bull Sa MULTIPROCESSOR SYSTEM WITH MICROPROGRAMS FOR THE DISTRIBUTION OF PROCESSES TO PROCESSORS.
DK192491D0 (en) * 1991-11-26 1991-11-26 Stig Magnar George B Harlequin DEVICE FOR PARALLEL COUPLING OF COMPUTERS
US5375223A (en) * 1993-01-07 1994-12-20 International Business Machines Corporation Single register arbiter circuit
US5467473A (en) * 1993-01-08 1995-11-14 International Business Machines Corporation Out of order instruction load and store comparison
CN1069983C (en) * 1994-10-13 2001-08-22 联华电子股份有限公司 Virtual line-up device
USRE38428E1 (en) 1995-05-02 2004-02-10 Apple Computer, Inc. Bus transaction reordering in a computer system having unordered slaves
US5592631A (en) * 1995-05-02 1997-01-07 Apple Computer, Inc. Bus transaction reordering using side-band information signals
US5996036A (en) * 1997-01-07 1999-11-30 Apple Computers, Inc. Bus transaction reordering in a computer system having unordered slaves
US6108735A (en) * 1995-09-29 2000-08-22 Intel Corporation Method and apparatus for responding to unclaimed bus transactions
US5872938A (en) * 1996-06-28 1999-02-16 International Business Machines Corp. Service priority queue implemented with ordered sub-queues and sub-queue pointers pointing to last entries in respective sub-queues
US6408324B1 (en) * 1997-07-03 2002-06-18 Trw Inc. Operating system having a non-interrupt cooperative multi-tasking kernel and a method of controlling a plurality of processes with the system
US6058389A (en) * 1997-10-31 2000-05-02 Oracle Corporation Apparatus and method for message queuing in a database system
US6563836B1 (en) * 1998-03-19 2003-05-13 International Business Machines Corporation Algorithm for dynamic prioritization in a queuing environment
EP1127435A1 (en) * 1998-10-27 2001-08-29 Fujitsu Network Communications, Inc. Frame based quality of service
US7937364B1 (en) 1999-03-09 2011-05-03 Oracle International Corporation Method and system for reliable access of messages by multiple consumers
US6442631B1 (en) * 1999-05-07 2002-08-27 Compaq Information Technologies Group, L.P. Allocating system resources based upon priority
US6771653B1 (en) * 1999-09-23 2004-08-03 International Business Machines Corporation Priority queue management system for the transmission of data frames from a node in a network node
US7287087B1 (en) * 1999-11-01 2007-10-23 General Electric Company Communications network for dynamic reprioritization
FR2804266B1 (en) * 2000-01-20 2002-04-26 Auteuil Participation Et Conse METHOD AND SYSTEM FOR BROADCASTING DATA
US6657632B2 (en) 2001-01-24 2003-12-02 Hewlett-Packard Development Company, L.P. Unified memory distributed across multiple nodes in a computer graphics system
US8218555B2 (en) * 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
US7185339B2 (en) * 2001-08-03 2007-02-27 Oracle International Corporation Victim selection for deadlock detection
US20040064430A1 (en) * 2002-09-27 2004-04-01 Klein Jonathan D. Systems and methods for queuing data
US7629979B2 (en) * 2003-08-20 2009-12-08 Hewlett-Packard Development Company, L.P. System and method for communicating information from a single-threaded application over multiple I/O busses
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
JP2006099731A (en) * 2004-08-30 2006-04-13 Matsushita Electric Ind Co Ltd Resource management apparatus
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
KR101002485B1 (en) * 2004-11-15 2010-12-17 엔비디아 코포레이션 Video processing
US8687008B2 (en) * 2004-11-15 2014-04-01 Nvidia Corporation Latency tolerant system for executing video processing operations
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US8862680B2 (en) * 2006-05-01 2014-10-14 The Boeing Company Methods and systems for data prioritization
US8190561B1 (en) * 2006-12-06 2012-05-29 At&T Mobility Ii Llc LDAP replication priority queuing mechanism
JP2008276638A (en) * 2007-05-02 2008-11-13 Elpida Memory Inc Semiconductor storage device, memory access control system and method for reading data
US8683126B2 (en) * 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) * 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) * 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US20120082142A1 (en) * 2010-10-05 2012-04-05 Electronics And Telecommunications Research Institute Method of allocating radio resource and transmitting data
US8612649B2 (en) 2010-12-17 2013-12-17 At&T Intellectual Property I, L.P. Validation of priority queue processing
WO2013100783A1 (en) 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
US9514170B1 (en) 2013-05-15 2016-12-06 Amazon Technologies, Inc. Priority queue using two differently-indexed single-index tables
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3647348A (en) * 1970-01-19 1972-03-07 Fairchild Camera Instr Co Hardware-oriented paging control system
US3676860A (en) * 1970-12-28 1972-07-11 Ibm Interactive tie-breaking system
JPS6020767B2 (en) * 1975-06-24 1985-05-23 日本電気株式会社 Electronic computer with information search function
SE414087B (en) * 1977-02-28 1980-07-07 Ellemtel Utvecklings Ab DEVICE IN A COMPUTER SYSTEM FOR SENDING SIGNALS FROM A PROCESSOR TO ONE OR MANY OTHER PROCESSORS WHERE PRIORITY SIGNALS ARE SENT DIRECTLY WITHOUT TIME DELAY AND OPRIORATED SIGNALS ORDER ...
US4217638A (en) * 1977-05-19 1980-08-12 Tokyo Shibaura Electric Co., Ltd. Data-processing apparatus and method
US4232294A (en) * 1979-04-30 1980-11-04 Control Data Corporation Method and apparatus for rotating priorities between stations sharing a communication channel
US4271468A (en) * 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
US4358829A (en) * 1980-04-14 1982-11-09 Sperry Corporation Dynamic rank ordered scheduling mechanism
US4488218A (en) * 1982-01-07 1984-12-11 At&T Bell Laboratories Dynamic priority queue occupancy scheme for access to a demand-shared bus
US4530054A (en) * 1982-03-03 1985-07-16 Sperry Corporation Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory
US4530055A (en) * 1982-03-03 1985-07-16 Sperry Corporation Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory
US4482956A (en) * 1982-11-04 1984-11-13 International Business Machines Corporation Parallel queueing method
US4488227A (en) * 1982-12-03 1984-12-11 Honeywell Information Systems Inc. Program counter stacking method and apparatus for nested subroutines and interrupts
GB8329509D0 (en) * 1983-11-04 1983-12-07 Inmos Ltd Computer
US4757440A (en) * 1984-04-02 1988-07-12 Unisys Corporation Pipelined data stack with access through-checking
US4642758A (en) * 1984-07-16 1987-02-10 At&T Bell Laboratories File transfer scheduling arrangement
JPS61112260A (en) * 1984-11-07 1986-05-30 Hitachi Ltd Swapping controller for multi-hierarchy memory system
JP2642332B2 (en) * 1985-04-15 1997-08-20 株式会社日立製作所 Priority level update control method
US4713758A (en) * 1985-04-29 1987-12-15 American Telephone And Telegraph Company, At&T Bell Laboratories Computer testing arrangement
US4773041A (en) * 1986-06-02 1988-09-20 Unisys Corporation System for executing a sequence of operation codes with some codes being executed out of order in a pipeline parallel processor
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03156537A (en) * 1989-11-14 1991-07-04 Matsushita Electric Ind Co Ltd Microprocessor

Also Published As

Publication number Publication date
EP0340344A3 (en) 1991-04-24
EP0340344A2 (en) 1989-11-08
US4965716A (en) 1990-10-23
JPH0570177B2 (en) 1993-10-04

Similar Documents

Publication Publication Date Title
JPH01234940A (en) Preference type queue management
US6577542B2 (en) Scratchpad memory
US7158964B2 (en) Queue management
JP2664663B2 (en) Microcomputer and method of operating simultaneous processes
US7080377B2 (en) Method for effective utilizing of shared resources in computerized system
US7337275B2 (en) Free list and ring data structure management
TWI231125B (en) Transmitting multicast data packets
US5253346A (en) Method and apparatus for data transfer between processor elements
KR20020020186A (en) Multiple logical interfaces to a shared coprocessor resource
JPS61228533A (en) Method for controlling session of electronic computer
US7254687B1 (en) Memory controller that tracks queue operations to detect race conditions
US7257681B2 (en) Maintaining entity order with gate managers
JPH0798663A (en) Asynchronous i/o control system
KR19990050550A (en) Real-Time Task Scheduling Method
JP3849578B2 (en) Communication control device
JPH04330529A (en) Management system for shared resource
JPS6120154A (en) Memory access control device
JPH0395661A (en) Process assignment device for parallel computer
JPH03253952A (en) Buffer managing system
JPH0424828A (en) Multi-task control system
JPH0261728A (en) Shared data processing system between programs
JPH04320537A (en) Synchronous processing method for parallel processing system
JPH027146A (en) Direct memory access control system
JPH07334411A (en) Storage area managing system
JP2004213516A (en) Bus system