A method of accessing a Solid State Disk, SSD, the SSD comprising: flashes, a cache, N physical channels, and a controller connected to the flashes via the N physical channels and connected to the cache, wherein each of the physical channels is mounted with a separate flash, wherein the flashes are addressed using Logical Block Addresses, LBAs, wherein the cache is to comprise strips with each of the strips comprising N sectors, N being an integer greater than or equal to 3, with each sector corresponding to an LBA, the method performed by the SSD comprising, whenever receiving a data writing command carrying an LBA: determining the first strip and the first sector that correspond to the LBA; determining if said first strip is present in the cache; if said first strip is present in the cache, determining if said first sector is stored in the cache; if it is determined that said first sector is stored in the cache, updating said first sector with the data to be written, otherwise writing the data to be written into the cache as data of said first sector; and if said first strip is absent in the cache, establishing said first strip and writing the data to be written into the cache as data of said first sector; wherein said determining of first strip and first sector comprises: determining an index strip _ index = ⌊ LBA / N 1 ⌋ of the first strip; and determining an identifier sec tor _ id = LBA % N 1 of the first sector; wherein N1 represents a number of sectors for storing user data in a strip, N1 being an integer greater than 1 and less than N; └ ┘ represents a rounding-down operator; and % represents a mod operator, wherein N-N1 of the sectors are to include check data, and wherein said determining of first strip presence in the cache and said determining of first sector stored in the cache, are based on hash buckets maintained in a memory, which store indexes and caching addresses of record information of the strips, with each hash bucket being associated with a bucket identifier as the result of a hash calculation of the strip_index and the number of physical channels, N. flashes, a cache, N physical channels, and a controller connected to the flashes via the N physical channels and connected to the cache, wherein each of the physical channels is mounted with a separate flash, wherein the flashes are addressed using Logical Block Addresses, LBAs, wherein the cache is to comprise strips with each of the strips comprising N sectors, N being an integer greater than or equal to 3, with each sector corresponding to an LBA, the method performed by the SSD comprising, whenever receiving a data writing command carrying an LBA: determining the first strip and the first sector that correspond to the LBA; determining if said first strip is present in the cache; if said first strip is present in the cache, determining if said first sector is stored in the cache; if it is determined that said first sector is stored in the cache, updating said first sector with the data to be written, otherwise writing the data to be written into the cache as data of said first sector; and if said first strip is absent in the cache, establishing said first strip and writing the data to be written into the cache as data of said first sector; determining the first strip and the first sector that correspond to the LBA; determining if said first strip is present in the cache; if said first strip is present in the cache, determining if said first sector is stored in the cache; if it is determined that said first sector is stored in the cache, updating said first sector with the data to be written, otherwise writing the data to be written into the cache as data of said first sector; and if said first strip is absent in the cache, establishing said first strip and writing the data to be written into the cache as data of said first sector; wherein said determining of first strip and first sector comprises: determining an index strip _ index = ⌊ LBA / N 1 ⌋ of the first strip; and determining an identifier sec tor _ id = LBA % N 1 of the first sector; wherein N1 represents a number of sectors for storing user data in a strip, N1 being an integer greater than 1 and less than N; └ ┘ represents a rounding-down operator; and % represents a mod operator, wherein N-N1 of the sectors are to include check data, and wherein said determining of first strip presence in the cache and said determining of first sector stored in the cache, are based on hash buckets maintained in a memory, which store indexes and caching addresses of record information of the strips, with each hash bucket being associated with a bucket identifier as the result of a hash calculation of the strip_index and the number of physical channels, N. determining an index strip _ index = ⌊ LBA / N 1 ⌋ of the first strip; and determining an identifier sec tor _ id = LBA % N 1 of the first sector; wherein N1 represents a number of sectors for storing user data in a strip, N1 being an integer greater than 1 and less than N; └ ┘ represents a rounding-down operator; and % represents a mod operator, wherein N-N1 of the sectors are to include check data, and wherein said determining of first strip presence in the cache and said determining of first sector stored in the cache, are based on hash buckets maintained in a memory, which store indexes and caching addresses of record information of the strips, with each hash bucket being associated with a bucket identifier as the result of a hash calculation of the strip_index and the number of physical channels, N.