Abstract:
An enhanced mechanism for parallel execution of computer programs utilizes a bidding model to allocate additional registers and execution units for stretches of code identified as opportunities for microparallelization. A microparallel processor architecture apparatus permits software (e.g. compiler) to implement short-term parallel execution of stretches of code identified as such before execution. In one embodiment, an additional paired unit, if available, is allocated for execution of an identified stretch of code. Each additional paired unit includes an execution unit and a half set of registers. This apparatus is available for compilers or assembler language coders to use and allows software to unlock parallel execution capabilities that are present in existing computer programs but heretofore were executed sequentially for lack of a suitable apparatus. The enhanced mechanism enables a variable amount of parallelism to be implemented and yet provides correct program execution even if less parallelism is available than ideal for a given computer program.
Abstract:
A data storage medium having the ability to recover from media errors includes a directory (36) located at any desired region of a data storage area with redundant directory pointers at reserved locations. A unique file token is included in the directory entry (40) for each data file and is also included in each extent list (44) where the locations of parts of a fragmented data file are stored. Multiple extent lists are chained in two directions to facilitate reconstruction of the chain if part of the pointer information is lost.
Abstract:
A data storage medium having the ability to recover from media errors includes a directory (36) located at any desired region of a data storage area with redundant directory pointers at reserved locations. A unique file token is included in the directory entry (40) for each data file and is also included in each extent list (44) where the locations of parts of a fragmented data file are stored. Multiple extent lists are chained in two directions to facilitate reconstruction of the chain if part of the pointer information is lost.
Abstract:
When a request is made to create a new immutable object a check is carried out of existing objects to determine if there is a matching object which already exists. If an identical object does exist then a pointer to that object is returned instead of generating a new object thereby saving memory. In the case of accessing a set of records in a database (72, 74, 76 figure 4) immutable objects are created as required (108-118 figure 5) the number of which is reduced due to the reuse of objects (110 and 112 figure 5).
Abstract:
An apparatus, program product, and method of processing a request to create an immutable object reuse an existing immutable object in appropriate circumstances to represent redundant data without the necessity for creating an additional immutable object. Prior to creating a new object in response to a request to create an immutable object, a determination is made as to whether a matching immutable object already exists that has the same contents as the requested immutable object. If so, creation of a new object is inhibited, and a reference to the matching immutable object is returned in response to the request.
Abstract:
A data storage medium having the ability to recover from media errors includes a directory located at any desired region of a data storage area with redundant directory pointers at reserved locations. A unique file token is included in the directory entry for each data file and is also included in each extent list where the locations of parts of a fragmented data file are stored. Multiple extent lists are chained in two directions to facilitate reconstruction of the chain if part of the pointer information is lost.
Abstract:
The task handling arrangement is provided in a multiprocessor system in which each processor (5) includes a task dispatcher and a signal dispatcher. The signal dispatcher runs in a processor whenever a task dispatching element (TDE) is put on the task dispatching queue (TDQ) as a result of the task running in the processor. The signal dispatcher examines the TDEs enqueued on the TDQ and determines if any task dispatcher should be invoked, i.e. if any processor is running a lower priority task a task switch should occur. If so, it signals the selected processor to invoke its task dispatcher. After completing the task switch, the selected processor must invoke its signal dispatcher to determine if the task it had been performing should now be performed on some other processor in the multiprocessor system.