Patent ID: 8019952

Claim:
A storage device for storing data while compressing same value input data, comprising: an input processing unit; a data storage; a first-in-first-out memory having a read pointer and a write pointer operating independently of each other; and an output processing unit; wherein: the input processing unit, upon receiving an input value, determines whether a data value stored in the data storage at an address location corresponding to the input value is valid, and: if the data value is invalid, the input processing unit stores an initial value at the address location of the data storage and stores the input value in the first-in-first-out memory using the write pointer, and if the data value is valid, the input processing unit performs an arithmetic operation on the data value and stores the operation result in the address location of the data storage corresponding to the input value without storing the input value in the first-in-first-out memory; the output processing unit reads and outputs the input value stored at a head of the first-in-first-out memory using the read pointer, as well as reads and outputs the data value from the address location of the data storage corresponding to the input value, if one or more input values are stored in the first-in-first-out memory and if the data value stored at the address location of the data storage corresponding to the input value is valid, and to update the data value after the output; and wherein the output operation from and the input operation in the first-in-first-out memory are performable simultaneously using the read pointer and the write pointer.