Patent ID: 6718429
Filing Date: 2004-04-06
Classification: G06F

Abstract:
A configurable register file with multi-range shift register support containing one data write port, one or more data read ports, one write address port, one or more read address ports, a gated clock input, a â€˜shiftâ€™ input, one or more â€˜range controlâ€™ inputs, two or more registers, the functionality of said register file being defined by two working modes, said two working modes being defined as follows:(a) a first working mode which is active all the time and in which said register file behaves in the same way as a conventional register file, that is: any register of said register file can be selected via the signals applied to the write address port of said register file such that the content of said register can be overwritten with the value applied to the data write port of said register file; one or more registers of said register file can be selected simultaneously via the signals applied to the read address ports of said register file such that the contents which are stored inside said selected registers can be read out of said register file through the data read ports of said register file; said actions of (over)writing and reading contents of registers of said register file usually take place only if the signal applied to said gated clock input of said register file presents some well defined waveform in time (usually a positive or negative edge); (b) a second working mode which is becoming simultaneously active together with said first working mode if and only if the signal applied to said â€˜shiftâ€™ input is set to a specific value (say logical â€˜1â€™) and which is defined as follows: the registers of said register file are configured in such a way as to form one or more separate shift registers, the range of said shift registers being specified by said â€˜range controlâ€™ inputs of said register file; assume that the registers of said register file are labeled by 1 . . . m (m being a positive integer); furthermore assume that said â€˜range controlâ€™ inputs specify that the registers of said register file have to be configured in order to form n (n being a positive integer) shift registers labeled 1 . . . n, the labels of the first and last registers of said shift registers being denoted by fi and li respectively, with 1&lE;i&lE;n; furthermore assume that the register with label j (j being a positive integer) is the register selected by the signals applied to the write address port of said register file and that said register label j belongs to the range of shift register with label k; if the signal applied to said gated clock input presents some well defined waveform in time (usually an positive or negative edge), then only the registers pertaining to the range of said shift register k and having labels j . . . lk are clocked and their contents shifted by one position into the shift direction of said shift register, where lk is the label of the last register of said shift register; all other registers of said register file with labels different from j . . . lk are not clocked and hence do not change their contents; simultaneously to said shifting, said register with label j is (over)written with the value applied to the data write port of said register file; if the signal applied to said â€˜shiftâ€™ input is not set to said specific value, then said second â€˜working modeâ€™ is not active and said register file is only in said first working modes; if the signal applied to said gated clock input is set to another specific value (say logical â€˜0â€™), then no shifting is taking place.