Patent ID: 7966471

Claim:
A storage controller for controlling data input/output between a host computer and a storage device storing data, comprising: a first communication controller, which sends/receives data to/from said host computer, and which sends/receives the data to/from said host computer in first block units, each first block unit having a first size; a first data adder for creating data in second block units, each second block unit having a second size that is larger than said first size by respectively adding a prescribed first data to each of said first block units of data received from said host computer; a second communication controller for sending/receiving data to/from said storage device which stores the data in said first block units; a first memory, which is provided between said first communication controller and said second communication controller, and which manages the data in said second block units; a second memory, which is provided between said first memory and said storage device; and a boundary correction unit, which matches a boundary of a track that is a unit of data management used by said host computer, to a first block unit boundary inside said storage device, and which (1) matches said boundary of the track to said first block unit boundary inside said storage device by adding a prescribed-size second data to data to be transferred from said first memory to said second memory, and (2) matches said boundary of the track to a second block unit boundary inside said first memory by removing said second data from data to be transferred from said second memory to said first memory; wherein said boundary correction unit determines whether a location of a block unit on the track to be updated by said host computer corresponds to any one of: (C1) a first case in which said location on the track is only in a posterior area of the track, which is subsequent to an anterior area of the track from the beginning of said track to a data size determined as the lowest common multiple of said first size and said second size; (C2) a second case in which said location on the track is in both said track anterior area and said track posterior area; (C3) a third case in which said location on the track is only in said track anterior area, and decides a size of data transfer between said second memory and said storage device in accordance with the determined case.