Abstract:
In a multichip shifter, input data is applied to a plurality of rotators which rotate the input data by 2 A  bits. The outputs from the rotators are applied to selectors which select between the rotated outputs. The selected outputs are then shifted in shifters by from 0 to 2 A  -1 bits.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to a shift system, and more particularly to a shift system in which input data is shifted by a multiple of 2 A  and then by 0 to 2 A  -1. 
     2. Description of the Prior Art 
     In general, a data processor comprises a main memory 1, a memory control unit 2, an instruction control unit 3, an execution processing unit 4, a channel unit 5 and a console 6, as shown in FIG. 1. For one of the internal functions of the execution processing unit 4, a shift circuit is provided. 
     The shift circuit shifts input data, by a certain amount, to the right or left for output. For example, as shown in FIG. 2(a), data A to R applied to an input part 7 are shifted by three bits to the right for transfer to an output part 8, from which the shifted data are removed. At this time, three bits of the output data on the left hand side thereof are 0. 
     With this method, however, when the number of data bits is large, it is difficult to get the shift circuit on one chip and it is necessary to use a plurality of chips, for example, I and II as shown in FIG. 2(b). Consequently, an interface is required between the chips I and II, and an increase in the amount of data to be shifted causes a corresponding increase in the amount of data to be interfaced. In the case of FIG. 2(b), three interface lines F--F, G--G and H--H from an input part 7-1 to an output part 8-2 will be necessary. For example, when the data is shifted to right by eight bits an 8 bit interface is required between the chips for each to shift from the input part 7-1 to the output part 8-2; further, if taking into account the need for a left shift, too, 8 bit interface is needed between the chips for each in the left direction to shift from an input part 7-2 to an output part 8-1. In this way, depending on the amount of data shifted and the direction of shift, the number of data interface lines becomes very large and a large number of pins are required to be connected between the chips. 
     When the signals transmited to the output parts 8-1 and 8-2 are outputted as they are, a time lag, caused by the interface does not matter substantially. But when the data A to R are arranged in a 4-bit shift configuration and the data is shifted in a plurality of 4 bit stages, for example, when the data is shifted to the output parts 8-1 and 8-2 by steps of four bits first and then by one bit, the time lag caused by the interface based on a chip-to-chip interface cross in each stage causes a serious degradation of the processing speed. 
     In order to prevent the lowering of the processing speed resulting from the time lag, it is necessary to provide on the chip II another input part for receiving the data from F to R in the case of FIG. 2(b). Therefore, in this case, when taking into consideration the leftward shift and the contruction of the chips I and II the, inputting of all input data A to R to both of the chips I and II involves redundant gates and a lot of input-output pins on the chips. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide a shift system which is free from the above-described defects of the prior art and which is designed to reduce the time loss resulting from a chip-to-chip interface cross. 
     Briefly stated, according to the present invention, in a shift system in which individual divided input data into which input data is divided are transmitted to a plurality of shift means for shifting the divided data, each shift means is provided with a plurality of data rotate parts for rotating the divided input data, an output select part for selectively outputting the outputs produced by the plurality of rotate parts and a shift part for shifting outputs produced by the output select part. The input data is rotated by a multiple of 2 A  bits in the data rotate part and then shifted by 0 to 2 A  -1 bits in the shift part. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram illustrating the arrangement of a general data processing unit; 
     FIG. 2, consisting of a and b, is a diagram illustrating the construction of a conventional shift circuit; 
     FIG. 3 is a diagram illustrating the construction of the shift system of the present invention; 
     FIG. 4 is a diagram illustrating a state of an input to a select output part in the shift system of the present invention; 
     FIG. 5 is a diagram illustrating a shift operation in the shift system of the present invention; 
     FIG. 6 is a diagram illustrating the operation of the select output part in the shift system of the present invention; 
     FIG. 7 is a block diagram illustrating a first embodiment of the shift system of the present invention; 
     FIG. 8 is a diagram illustrating a rightward shift in the first embodiment of FIG. 7; 
     FIG. 9 is a diagram illustrating a leftward shift in the first embodiment of FIG. 7; 
     FIG. 10 is a detailed circuit diagram illustrating examples of the construction of a data rotate part 12-1 and a shift control part 13-1; 
     FIG. 11 is a detailed circuit diagram illustrating examples of the construction of a data rotate part 12-2 and a shift control part 13-2; 
     FIG. 12 is a detailed circuit diagram illustrating examples of the construction of an output select part 14-1, a partition 15-1 of a select output part 11 and a shift part 16-1; 
     FIG. 13 is a detailed circuit diagram illustrating examples of the construction of a select part 14-2, a partition 15-2 of the output select output part 11 and the shift part 16-1; 
     FIG. 14 is a detailed circuit diagram illustrating an example of the construction of a shift control part; 
     FIG. 15 is a detailed circuit diagram illustrating an example of a shift control part 17-2; 
     FIG. 16 is a diagram illustrating the amount of rotational shift in the case of shifting data to left in a stage I and to the right in a stage II; 
     FIG. 17 is a diagram illustrating the select output parts in a second embodiment of the shift system of the present invention; 
     FIG. 18 is a diagram illustrating a select operation in the second embodiment of the shift system of the present invention; 
     FIG. 19 is a diagram illustrating the amounts of rotational shift in a third embodiment of the shift system of the present invention; 
     FIG. 20 is a diagram illustrating the select operation of the select output part in the third embodiment of the shift system of the present invention; 
     FIG. 21 is a diagram illustrating the state of an input to the select output part in the third embodiment of the shift system of the present invention; and 
     FIG. 22 is a diagram showing the state of shift in the shift system of the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     In the following description, reference numerals 9-1 and 9-2 indicate input parts; 10-1 and 10-2 designate rotate output part; 11 identifies a select output part; 12-1 and 12-2 denote rotate parts; 13-1 and 13-2 represent shift control parts; 14-1 and 14-2 show select parts; 15-1 and 15-2 refer to partitions of the select parts; 16-1 and 16-2 incidate shift parts; 17-1 and 17-2 designate second shift parts; and reference characters CI to CIV identify LSI chips. 
     A description will be given, with reference to FIG. 3, of the outline of the shift system of the present invention. The input data A to R are entered in the input parts 9-1 and 9-2 in a state as shown. 
     (1) When the data A to R each has a 1-bit configuration. 
     A description will be given first in connection with the case of shifting the data A to R to the right by three bits. 
     At first, the input data in the input part 9-1 are rotated to right by three bits for output to the rotate output part 10-1 and the input data in the input part 9-2 are rotated to right by three bits for output to the rotate output part 10-2. As a consequence, the data shown in FIG. 3 are transferred to the rotate output parts 10-1 and 10-2. The data thus transferred to the rotate output parts 10-1 and 10-2 are output to the select output part 11, as indicated by the arrows. That is, the data A to E and J to N of the data transferred to the rotate output parts 10-1 and 10-2 are output to the data partitions right below them in FIG. 3, but the data F, G and H in the rotate output part 10-1 are output to the data partitions corresponding to those partitions of the rotate output part 10-2 into which the data P to R are transferred. 
     In this case, the select output part 11 is arranged so that each partition selectively receives one of two inputs indicated by arrows in FIG. 4. For example, a partition 0&#39; of the select output part 11 is selectively supplied with data transmitted from a partition 0 of the rotate output part 10-1 or a partition 8 of the rotate output part 10-2. To a partition F&#39; of the select output part 11 is selectively output data transmitted from a partition 7 of the rotate output part 10-1 or a partition F of the rotate output part 10-2. Accordingly, by selectively outputting data to partitions 8&#39;, 9&#39; and A&#39; of the select output part 11 from the partitions 0, 1 and 2 of the rotate output part 10-1 and by selectively outputting data to partitions 3&#39; to 7&#39; and B&#39; to F&#39; of the select output part 11 from those partitions of the rotate output parts 10-1 and 10-2 which are positioned just above them, the input data entered in the input parts 9-1 and 9-2 in FIG. 3 can be output in a state as shown in the select output part 11 in which the data have been shifted to right by three bits. 
     In this case, since no data transfer takes place between the chips I and II, data transmission can be achieved at high speed. A chip-to-chip interface cross occurs between some partitions of the select output part 11 and some partitions of the rotate output part 10-1, but in this case it is sufficient for the select part 11 to perform only a select operation and its control is very easy unlike the case of a shift operation. 
     (2) When the data A to R each has a 4-bit configuration. 
     The above description has been given for the case where each partition is 1-bit so as to facilitate a better understanding of the present invention. When each partition is 4-bits, the shift is carried out in the manner described below. 
     In this case, since the movement of one partition of the abovesaid rotate output part corresponds to the movement of four bits, the input data is rotated by a multiple of 4 first and then the resulting outputs are selected and shifted by 0 to 3 bits. The amount of rotation and the select means are shown in FIGS. 5 and 6 respectively. 
     This will hereinbelow be described in connection with a specific operative example, in which the data are shifted to the right by 21 bits. As shown in FIG. 8, the input parts 9-1 and 9-2 have entered therein bits numbered 0 to 63. In order to shift the data to the rights by 21 bits, the data are shifted to right by 20 bits; i.e. a multiple of 4, and then further shifted to the right by one bit. Accordingly, for shifting the data to right by 20 bits, it is necessary to rotationally-shift the data five times; the resulting pattern in the rotate output part 10-1 is shown in FIG. 8 and the status of this shift is shown by the item indicated by an amount of shift 20 (0101 in the binary code) in FIG. 5 in which groups of four bits are sequentially represented by &#34;0&#34;, &#34;1&#34;, . . . &#34;7&#34;. The result is such as shown in the rotate output parts 10-1 and 10-2 labelled &#34;Stage I Output&#34; in FIG. 8. It is shown in FIG. 6 which partitions of the rotate part outputs 10-1 and 10-2 are selected, as a Stage I&#39; output, by the select output part 11. Therefore, when the selection indicated in FIG. 6 is made and the amount of rotational shift is 21 bits, data in partitions 5, 6, 7 and D, E and F of the rotate output parts 10-1 and 10-2 are output, as they are, to partitions 5, 6 and 7 and D, E and F (corresponding to 4-bit groups No. 5, 6 and 7 and D, E and F of stage I&#39; shown in FIG. 6) of the select part output. To partitions 8, 9, A, B and C (corresponding to 4-bit groups No. 8, 9, A, B and C of stage I&#39; shown in FIG. 6), however, are output data in partitions 0, 1, 2, 3 and 4 of the rotate part output 10-1. As a result of this, the data in the select output part becomes such as shown in FIG. 8, in which the data have been shifted to right by 20 bits. By further shifting the data to right by one bit into the stage II output, there can be obtained an output in which the input data have been shifted to right by 21 bits. 
     A description will be given, with reference to FIG. 9, of shifting the input data to left by 22 bits. 
     The data input into the input parts 9-1 and 9-2 are shifted to left by 20 bits, that is, rotationally-shifted by an amount of leftward rotation of five partitions in accordance with the table of FIG. 5, by which the data are put into such a state as shown in the rotate output parts 10-1 and 10-2. Then, the selective outputting shown in 20-23 item of a 22-bit left shift in FIG. 6 is carried out by the select output part 11. As a result, partitions 0, 1 and 2 and 8, 9 and A of the select output part 11 output data from partitions 0, 1 and 2 and 8, 9 and A of the rotate part 10-1 and 10-2 as they are. On the other hand, partitions 3, 4, 5, 6 and 7 of the select output part 11 output data from partitions B, C, D, E and F of the rotate part output 10-2. As a consequence, there are transferred to the select output part 11 the input data in the state in which they have been shifted to left by 20 bits, as shown in stage I&#39; output in FIG. 9. By further shifting the data to left by two bits, the input data can be shifted to the left by 22 bits, as shown in stage II output. 
     Such input data shift control can be performed by a shift device in FIG. 7. 
     Included in the rotate part 12-1 are the input part 9-1 and the rotate output part 10-1, whereas included in the rotate part 12-2 are the input part 9-2 and the rotate output part 10-2. The shift control part 13-1 controls the rotate part 12-1 in such a manner as to rotationally-shift the input data in the input part 9-1 in accordance with the direction of shift and the amount of shift. The shift control part 13-2 performs a control operation similar to that of the shift control part 13-1. 
     Included in the select parts 14-1 and 14-2 are select output parts 11. The shift parts 16-1 and 16-2 are to shift the data by 0 to 3 bits which are insufficient with the 4-bit rotation by the rotate parts 12-1 and 12-2. The second shift control part 17-1 controls each partition of the select output part 11 in the select part 14-1 (which partition is shown by 15-1 in FIG. 7) in accordance with the direction of shift and the amount of shift indicated in FIG. 6 and controls the shift part 16-1 for a right or left shift of 0 to 3 bits in accordance with the amount of shift. The second shift control part 17-2 is identical in construction with the shift control part 17-1. In this way, such a predetermined shift as, for example, in FIGS. 8 and 9 is carried out. 
     An example of the detailed construction of each part of the shift device shown in FIG. 7 is illustrated in FIGS. 10 to 15 in which parts corresponding to those in FIG. 7 are identified by the same reference nemerals. FIG. 10 illustrates in detail examples of the arrangements of the rotate part 12-1 and the shift control part 13-1, and FIG. 11 shows in detail examples of the arrangements of the rotate part 12-2 and the shift control part 13-2. Similarly, FIG. 12 illustrates in detail examples of the arrangements of the partition 15-1 of the select output part 11 and the shift part 16-1, FIG. 13 illustrates examples of the arrangements of the select part 14-2 and a partition 15-2 of the select part 14-2, FIG. 14 illustrates an example of the arrangement of the shift control part 17-1, and FIG. 15 an example of the arrangement of the shift control part 17-2. 
     In the example of FIG. 7, the rotate part 12-1 and the shift control part 13-1 comprise an LSI chip CI; the rotate part 12-2 and the shift control part 13-2 are constituted by the LSI chip CII; the select part 14-1, the shift part 16-1 and the second shift control part 17-1 comprise on LSI chip CIII; and the control part 14-2, the shift part 16-2 and the second shift control part 17-2 comprise an LSI chip CIV. In this case, it is possible to use the same LSI chips as those CI and CII and the same LSI chips as those CIII and CIV. 
     In the above example, as described previously in conjunction with FIGS. 8 and 9, the shift by 0 to 3 bits in stage II must be performed by a shift part capable of both right and left shifts. If however, the shift in stage II can be limited only to the right or left shift, then it is possible to greatly reduce the number of gates making up the shift part. 
     In order to restrict the shift in the stage II to the right shift alone, it is sufficient to rotate the data to  the left by four more bits when shifting the data to left in stage II. In other words, when the data are shifted to the left by 22 bits, the data are rotated to left by 24 bits in stage I and then shifted to the right by two bits in stage II. 
     The amounts of rotate-shift in this case are shown in FIG. 16. As is apparent from FIG. 16, the shift operation for a right shift 0(32) is identical with the shift operation for a left shift 28(60) and the shift operation for a right shift 4(36) is identical with the shift operation for a left shift 24(56). The same is true of the other shift operations. Furthermore, it appears that except for a weight bit 32 in the amount of shift represented by the binary code, (the weight bit 32 has no affect on the rotate operation, and the right shift 0 and the right shift 32 are identical with each other.), the left shift operation is identical with the right shift operation which takes a 1&#39;s complement of the amount of shift with weights 16, 8 and 4. This greatly facilitates decoding of the amount of shift in the shift operation of the rotate part and reduces the time for the decoding. 
     To perform this, the output status of the stage I&#39; requires an extra select output part represented by a partition H, as shown in FIG. 17. This select output part is to select either one of the partitions 7 and F of the rotate output part, and the selection made by the select output part including it, in FIG. 17, is as illustrated in FIG. 18. 
     It is also possible to arrange the shift part to shift data of the higher-order half of the input data to right only and shift data of the lower-order half of the input data to left only. Letting the amount of shift S be represented by S=P×2 A  +Q where A, P and Q are integers greater than 1, the right and the left shift can be achieved in the following manner: 
     (1) Right shift 
     In the rotate part supplied with the data of the higher-order half of the input data, the data is rotationally-shifted to the right by P×2 A  and then shifted to the right by Q in the shift part. The data of the lower-order half of the input data is rotate-shifted by (P+1)×2 A  in the rotate part supplied with the data and then shifted by 2 A  -Q in the shift part. 
     (2) Left Shift 
     In the rotate part supplied with the data of higher-order half of the input data, the data is rotated to the left by (P+1)×2 A  and then shifted to right by 2 A  -Q in the shift part. In the rotate part supplied with the data of the lower-order half of the input data, the data is rotated to the left by P×2 A  and then shifted to the left by Q in the shift part. 
     The operation of the rotate part supplied with the data of the higher-order half of the input data is identical in the case of FIG. 16 and the operation of the rotate part supplied with the data of the lower-order half of the input data. 
     In this case, the arrangement of the select output part is such as shown in FIG. 21, in which the select output part on the side of the lower-order half of the input data is larger than in the case of FIG. 12 by one partition, that is, a partition G. The output select mode of this select part output is such as shown in FIG. 20. Now, a description will be given, with reference to FIG. 22, of a 13-bit right shift. 
     The higher-order half of input data 0 to 63 is inputted in the input part 9-1 and the lower-order half in the input part 9-2. In the stage I output, the data inputted in the input part 9-1 is rotated to right by three partitions, that is, 12 bits, by the rotate-shift based on FIG. 16, whereas the data in the input part 9-2 is rotated to right by four partitions, i.e. 16 bits, by the rotate-shift based on FIG. 19. Then, in the stage I&#39; output, the output selection control based on FIG. 15 takes place and, as a result of this, such data as shown in FIG. 22 is input into the select output part. In the stage II output, data in the partitions H to 7 of the select output part (in practice, the partitions H, 0 and 1 are 0) is shifted to right by one bit, and data in the partitions 8 to G of the select output part is shifted to left by three bits. 
     By limiting the shift in the shift part in the stage II to the right or left shift alone, as described above, the number of gates is much reduced as compared with that in the case of performing both of the right and the left shift, so that the structure can be simplified. In the operation diagrams of FIGS. 16 and 19, if RIGHT and LEFT are exchanged and if the bit positions 32 and 63 are changed to 31 and 0 respectively, the operations are exactly identical with each other. Accordingly, in this case the rotate parts can be formed by using the same chip having symmetrical circuit arrangements. In the case where the shift parts in the stage II comprise by two chips into which one chip is split at the center thereof, it is a matter of course that the same chip can be used as is the case with the rotate parts in the stage I. 
     As has been described in the foregoing, according to the present invention, in the case of forming the shift circuit with a plurality of LSI chips, the input data are divided so that the shift circuit may be formed in the same chip, and the shift rotation is mostly performed within the divided range, and the data are selectively taken out, so that the number of circuits with a chip-to-chip interface cross can be greatly reduced and, in addition, the problem of time lag resulting from the chip-to-chip interface cross during data shift can be solved. 
     Moreover, since the direction of rotation in the shift part can be restricted to one direction, the number of gates can be sharply reduced as compared with that in the case where use must be made of a shift part capable of shifting in both directions; consequently, the structure of the shift part can also be simplified. Furthermore, since 1&#39;s complement can be used for controlling the amount of rotation, the control operation is easy. 
     By dividing the shift part into those shifting data in reverse directions, the shift circuit can be formed using several kinds of LSI chips of identical arrangement so that the manufacturing cost can also be reduced. 
     It will be apparent that many modifications and variations may be effected without departing from the scope of the novel concepts of this invention.