摘要:
A method for high-speed scheduling and arbitration of events for computing and networking is disclosed. The method includes the software and hardware implementation of a unique data structure, known as a pile, for scheduling and arbitration of events. According to the method, events are stored in loosely sorted order in piles, with the next event to be processed residing in the root node of the pile. The pipelining of the insertion and removal of events from the piles allows for simultaneous event removal and next event calculation. The method's inherent parallelisms thus allow for the automatic rescheduling of removed events for re-execution at a future time, also known as event swapping. The method executes in O(1) time.
摘要:
Arrangement of fields in binary tree nodes provides a minimal storage encoding storing fixed and variable length keys in factored form in a multilevel tree. A locating method, and apparatus embodying that method, directed by an argument key, which may or may not be stored in the tree, traces a path following arcs upward or downward between nodes in said binary tree, starting from the top node or any other node, until it finds either the argument key or the delta arc where said argument key would be inserted into said tree. The novel binary tree encoding also provides for path tracing starting at a data backpointer field, which allows accessing of neighboring data entries in collating sequence order.
摘要:
A method and apparatus for sorting object data, the object data having a data format of a next address and a record. The next address indicates the address of another object data, and the record includes information data which is the subject of the sort. The sorting method and apparatus perform two sorting processes. The first process performs a divisional sort which sorts the object data into blocks of object data; these blocks being sorted with respect to one another. In sorting the object data into these object data blocks, it is unnecessary to actually move the object data within the memory. Instead, only one address of an object data out of all the object data in a block needs to be stored. Use is made of the next address of the object data to link the remaining object data to the single object data stored in an object data block. Then the second sorting process performs a sort of the object data in each block; thus all the object data becomes sorted. By the combination of the two sorting processes, an overall sort of the object data is performed in less time.
摘要:
In a computer system, data records stored in nonvolatile memory are read into a volatile memory and operated on in a sorting operation. A tournament-type sort is applied, with the tree size dynamically reconfigured within the volatile memory as a function of the number of data records to be sorted. The memory space occupied is reduced by the reconfigured tree and sort speed is augmented.
摘要:
In a computer system, data records stored in nonvolatile memory are read into a volatile memory and operated on in a sorting operation. A tournament-type sort is applied, with the tree size dynamically reconfigured within the volatile memory as a function of the number of data records to be sorted. The memory space occupied is reduced by the reconfigured tree and sort speed is augmented.
摘要:
To perform a sort of N records, a two-dimensional tree structure is formed with a tree of subtrees, where each subtree is formed by a plurality of nodes organized in a binary tree. For each leaf node in the tree, there is an ancestor chain of nodes (from child to parent, from parent to grand-parent, from grand-parent to great-grand-parent, . . . and so on) that connects each leaf node to the root node. To perform the sort, the processing unit stores codes representing keys into nodes in the two-dimensional tree and performs a tree sort of the keys using the codes. The codes are accessed in the subtrees and processed to determine the sort order of the keys and therefore the sort order of the corresponding records.
摘要:
A system is provided for sorting binary data records, which includes random access memory means for storing the data records and from which the data records may be retrieved in an ordered sequence. There is no sorting time mode within the system itself, and the system has but two modes of operation, an input mode and an output mode. The time required for sorting the data is dependent only on the rate at which the data records are fed into the system and the rate at which the data records are retrieved out of the system.
摘要:
Record unit addresses, providing access to corresponding record units having keyfields, are stored in a first storage, each under control of the corresponding least significant keyfield bit. Zero keyfield bits cause storage of record unit addresses in sequential locations following a ''''0'''' assigned storage location; ''''1'''' keyfield bits cause storage of record unit addresses in sequential locations following a ''''1'''' assigned storage location. Record unit addresses in the ''''0'''' assigned storage locations of the first storage are then transferred to a second storage in the same manner under control of the next significant keyfield bit. Next, the record unit addresses in the ''''1'''' assigned storage locations of the first storage are so transferred to the second storage. The transfers are repeated under control of all keyfield bits, read-out from ''''0'''' assigned storage locations always preceding read-out from ''''1'''' assigned storage locations.
摘要:
An improved data structure is provided by modifying a public-domain data structure known as a “heap”. When these improvements are applied, the resultant data structure is known as a “pile.” This invention further describes a pipelined hardware implementation of a pile. Piles offer many advantages over heaps: they allow for fast, pipelined hardware implementations with increased throughput, making piles practical for a wide variety of new applications; they remove the requirement to track and update the last position in the heap; they reduce the number of memory reads accesses required during a delete operation; they require only ordinary, inexpensive RAM for storage in a fast, pipelined implementation; and they allow a random mixture of back-to-back insert, remove, and swap operations to be performed without stalling the pipeline.