摘要:
In a data processing system of the type wherein a host processor transfers data to or from a plurality of attachment devices, a cache memory is provided for storing blocks of data which are most likely to be needed by the host processor in the near future. The host processor can then merely retrieve the necessary information from the cache memory without the necessity of accessing the attachment devices. When transferring data to cache from an attachment disk, additional unrequested information can be transferred at the same time if it is likely that this additional data will soon be requested. Further, a directory table is maintained wherein all data in cache is listed at a "home" position and, if more than one block of data in cache have the same home position, a conflict chain is set-up so that checking the contents of the cache can be done simply and quickly.
摘要:
A data processor input/output controller which is particularly useful as a microcontroller for the transfer of data between a host processor and one or more peripheral input/output devices in a digital data processing system. This input/output (I/O) controller is a subchannel controller for offloading a goodly portion of the subchannel control function from the host processor. This I/O controller includes a microprocessor for assisting and supervising the controller internal operations. Also included in the controller is an automatic high-speed data bypass mechanism whereby data may be transferred from the host processor to the I/O device or vice versa without having to pass through the microprocessor and without requiring any intervention on the part of the microprocessor during such automatic transfer. Provision is made for enabling the microprocessor to perform other functions, such as the presentation of interrupts to the host processor and the servicing of additional I/O commands from the host processor concurrently with the transfer of data via the automatic bypass mechanism. This capability is particularly useful where two or more I/O devices are connected to the controller. The automatic bypass mechanism is constructed to communicate with the host processor in a cycle steal mode. A look-ahead mechanism is provided for more quickly issuing the cycle steal requests to the host processor when operating in the automatic bypass mode.
摘要:
In a data processing system, a mechanism provides independent assignment of page locations for a program's instructions and its data and better enables control to be transferred between programs, or portions thereof, that reside at different addresses in different pages of a multiple page instruction store. The initial linkage is established through the use of a Branch And Link instruction. Subsequent linkages are established through the use of Return and Link instructions, each of which transfers control to a previous program, or program segment, while simultaneously establishing the linkage for a subsequent return to this program or program segment.INTRODUCTIONCROSS REFERENCES TO RELATED APPLICATIONSU.S. Patent application of J. D. Dixon, one of the co-inventors herein, Ser. Nos. 866,425, filed Jan. 3, 1978 and 918,223, filed of even date herewith, both assigned to the assignee of the present invention, show and describe, but do not claim, portions of the invention claimed in the present invention.BACKGROUND OF THE INVENTIONThis invention relates to mechanisms for permitting program instructions and data to reside in the same or different pages of storage independently of each other and for facilitating communication between programs, or program segments, in different pages within a data processing system. More particularly, it relates to such a mechanism that is particularly useful in a small microprogrammed controller with insufficient address fields to access all of the storage which it is desired to utilize. An example of this type of small controller is shown and described at pages 3270-3273 of the Technical Disclosure Bulletin, Vol. 19 No. 9, published February, 1977 by the International Business Machines Corporation.The present invention is particularly useful in a microprocessor (or microcontroller) specifically adapted for control of I/O (input-output) devices. In such a controller maximum speed of operation, minimum cycle time is desirable. To optimize cycle time, all instructions are fixed at one processor cycle time--multiple fetches are not permitted. No address calculation is permitted.With these restrictions, paging is required to access memory larger than that defined by the maximum address structure in an instruction. Hardware paging is required for efficient instruction branches from one page to another.Paging mechanisms are known in the art and are often incorporated in processors where the maximum number of bits in the processor's address structure is insufficient to directly address all of the storage which is required for a particular application.Examples of paging structures are shown and described in the Technical Disclosure Bulletin, Volume 19 No. 8, pages 2877, 2878, and Volume 19, No. 9, pages 3266, 3267, published Jan. 1977 and February 1977 respectively, by International Business Machines Corporation.However, to the best of applicant's knowledge, no paging mechanism has been suggested which uses separate page registers, dynamically changeable under program control, for a program's instructions and its data so that the data may reside in the same page as, or a different page, than the instructions, independent of the instructions. With a minimum of hardware and software support, significant paging flexibility is achieved.In the preferred embodiment, the invention is incorporated in a micro-controller in which the instruction fetch and execute functions are overlapped. During the execution of one instruction, the next instruction is being fetched from memory. Care must be taken therefore in Branch and Link Type instructions to assure storing of the correct D/I bits with the current program instruction address bits.In a data processing system, particularly that part of a system which is used as a controller for, for example, a plurality of input/output (I/O) devices, it may be necessary for the system to execute separate control programs substantially concurrently even though they may run at asynchronous rates. In order to accomplish this, there must be a mechanism for transferring control between the two programs.A well known mechanism for accomplishing interaction between programs depends upon a hardware register which preserves, for a limited time, an indication of the memory address of an instruction in a program from which control was transferred. That instruction would typically be a (conditional or unconditional) branch instruction. If there would be a need to return control back to the original program, the contents of this register would have to be saved for subsequent utilization in returning. The saving of the contents of this register used storage (for the save instruction) and time (for the execution of the instruction) while accomplishing no other useful work.Some of the disadvantages of the system described above were overcome in the 1960's by the provision of a computer instruction called "Branch And Link". This instruction was implemented by hardware which, in response to the instruction, caused a branch to a particular address specified by the instruction, and automatically stored in a "link register" an indication of the address from which control was transferred. Subsequently, the execution of another instruction called "Return" would cause control to be transferred to the instruction at the address indicated by the link register. Thus, a programmer was able very easily to cause the exiting from a main stream of coding to a sub-routine, and then return to the main stream, by using two simple instructions with no need to concern himself with storing the contents of any particular registers.The improved paging structure of the present application must interact efficiently during these Branch and Link and Return instructions.SUMMARY OF THE INVENTIONIn the preferred embodiment, a novel paging mechanism is provided for efficient, yet flexible processor operation. A first hardware register I is provided to store the number (address) of the page in which the next instruction of the current program is stored and a second hardware register D stores the number of the page in which the next selected data for that program resides. By the use of Set Data Page (Set D) and Set Instruction Page (SI) instructions, the page numbers in the D/I registers can be changed at will by the programmer to achieve maximum flexibility in locating instructions and data.During instruction fetches, the I register contents are gated to a page decode circuit for selecting the page in which the instruction resides. At the same time, the offset address within the page is gated to a storage address register SAR to select the instruction location within the selected page.During data load and store operations the D register contents are gated to the page decode circuit to select the page in which the data resides; and the offset address within the page is gated to the SAR to fetch or store the desired data.The controller of the preferred embodiment has an overlapped instruction fetch/execution mode of operation. The formation of the address of the next instruction must therefore occur in the early part of the processor cycle. If, during a Set Instruction Page (SI) Instruction, the I register were set to the new page value and then the value were gated to the select circuit concurrent with setting the next address offset bits in the SAR, the SI instruction would in effect cause a branch to the new page; and, because the only offset address bits available are those in the SAR, the branched to address could only be that one offset address in the new page. This results in serious inflexibility.Hence, in the preferred form of the invention, the setting of the I register is delayed until the next instruction fetch is made, which fetch uses the old I bit. This causes fetching of the next sequential instruction after the SI instruction. This next instruction is one of the various Branch type instructions and includes within its branch address field the offset address of the branched to instruction in the new page defined by the new bit in the I register.A Set Data Page Instruction similarly sets the D register late in the execution cycle so that the old page value can be saved in the Link Register if a Branch and Link Instruction follows the Set Data Page Instruction.Another problem arises for the Branch and Link instructions which set the Link Register from the IAR register. For example, during a Branch and Link (BAL) Instruction which follows a SI instruction, the old D/I bits (prior to setting a new I bit in the I register) must be stored in the Link Register during the execution of the BAL instruction. However, during the preceding SI execution the old I bit was destroyed.Hence, in the preferred embodiment of the invention, a Delay register is interposed between the D/I registers and the Link Register. During each instruction execution, the contents of the D/I registers are gated into the Delay register. Upon occurrence of a branch and link instruction, the contents of the Delay Register will contain the old value of the D/I registers. As a result, the old D/I page values are available for storing in the link register whenever a new page value has been set (Set I or Set D) in the instruction cycle immediately preceding a Branch and Link type of instruction.
摘要:
When transferring data to a cache memory from an attachment data storage device, additional unrequested information can be transferred at the same time if it is likely that this additional data will soon be requested. The average quantity of data transferred to the cache memory in each operation can be automatically and continually varied in order to maximize the performance advantage provided by the cache memory. When a record of data is requested by the host processor, data is transferred to the cache memory from an attachment data storage device in increments of fixed-length data blocks each containing a sequence of data records, with the number of transferred blocks being determined by the position of a requested data record in its respective data block, and the average number of blocks transferred in any one operation being varied by adjusting threshold position values at which second or third data blocks are transferred.
摘要:
Serial storage interface apparatus for coupling a serial storage mechanism, such as a charge coupled storage device or a magnetic bubble storage device, to a data processor input/output (I/O) bus. Speed control circuitry is provided for causing the serial storage mechanism to operate at a higher speed when the data processor is responding more rapidly to data transfer requests from the interface apparatus and at a lower speed when the data processor is responding less rapidly to data transfer requests from the interface apparatus. This speed adjustment feature reduces the amount of data buffering required for interfacing a serial storage mechanism to an asynchronous variable response time I/O bus system.
摘要:
In a data processing system, a mechanism for enabling control to be transferred between programs, or portions thereof, that reside at different addresses in an instruction store. The initial linkage is established through the use of a Branch And Link instruction. Subsequent linkages are established through the use of Return And Link instructions, each of which causes the mechanism to transfer control to a previous program, or program segment, while simultaneously establishing the linkage for a subsequent return to this program or program segment.
摘要翻译:在数据处理系统中,用于使得能够在驻留在指令存储器中的不同地址的程序或其部分之间传送控制的机制。 通过使用分支和链接指令来建立初始链接。 后续链接通过使用Return and Link指令建立,每个指令都使机制将控制转移到先前的程序或程序段,同时建立连接以便后续返回到该程序或程序段。
摘要:
In a DASD caching system, in which pages of sectors of data are stored by reading in a desired sector and prefetching a plurality of adjacent sectors for later access, errors in disk storage media cause error signals to be generated. Such errors are handled by storing indications of which sectors have errors and which do not, and accessing such indications in response to later requests for such sectors. Such indications are stored in each page in the cache. Further, a history is maintained of which pages and sectors therein, were placed in the cache in the past.
摘要:
Apparatus for assigning addresses to devices connected to a small computer system interface (SCSI) bus. A second configure bus interconnects address assignable devices on the SCSI bus. The assignable devices may be used in a mixed system where some devices have fixed non-assignable addresses. The master device in the SCSI bus transmits configuration commands over the configuration bus and addresses for assignment over the SCSI bus. Acknowledgements are received back from a device which has accepted an address. Once configured with an address, the device propagates subsequent configuration commands to an adjacent device.
摘要:
An apparatus and method for protecting BIOS stored on a direct access storage device into a personnal computer system. The personal computer system comprises a system processor, a system planar, a random access main memory, a read only memory, a protection means and at least one direct access storage device. The read only memory includes a first portion of BIOS and data representing the type of system processor and system planar I/O configuration. The first portion of BIOS initializes the system and the direct access storage device, and resets the protection means in order to read in a master boot record into the random access memory from a protectable partition on the direct access storage device.
摘要:
A redundant error-detecting addressing code for use in a cache memory. A directory converts logical data addresses to physical addresses in the cache where the data is stored in blocks. The blocks are expanded to include redundant addressing information such as the logical data address and the physical cache address. When a block is accessed from the cache, the redundant addressing is compared to the directory addressing information to confirm that the correct data has been accessed.