A method of operating a controller for controlling a memory device comprising a plurality of memory cell blocks (BLK1 to BLKn), the method comprising: providing (S10; S500) a patrol read command (CMD) to the memory device ; determining (S240) based on reliability information for the memory cell blocks (S240), priorities of blocks on which to perform patrol read operations; outputting (S20; 250; S500) block address information (ADDR_Q) in an order of the determined priorities; controlling the memory device to perform (S600) patrol read operations in the order of the determined priorities in response to the patrol read command (CMD) and the block address information (ADDR Q), characterized in that the determining (S240) of priorities based on reliability information for the memory cell blocks comprises determining a retention time and a program-erase count of each of the memory cell blocks (BLK1 to BLKn), and the determining of a retention time and a program-erase count of each of the memory cell blocks (BLK1 to BLKn) comprises setting (S233) a higher weight to the program-erase count than to the retention time in response to a remaining life of the memory device being less than a threshold and when the remaining life of the memory device is equal or greater than said threshold value, the determining of a retention time and a program-erase count of each of the memory cell blocks (BLK1 to BLKn) comprises setting (S232) a higher weight to the retention time than to the program-erase count in response to a proportion of cold cell blocks having been accessed for a number of times smaller than a set number of times, from among the memory cell blocks (BLK1 to BLKn), is equal to or greater than a threshold proportion. providing (S10; S500) a patrol read command (CMD) to the memory device ; determining (S240) based on reliability information for the memory cell blocks (S240), priorities of blocks on which to perform patrol read operations; outputting (S20; 250; S500) block address information (ADDR_Q) in an order of the determined priorities; controlling the memory device to perform (S600) patrol read operations in the order of the determined priorities in response to the patrol read command (CMD) and the block address information (ADDR Q), characterized in that the determining (S240) of priorities based on reliability information for the memory cell blocks comprises determining a retention time and a program-erase count of each of the memory cell blocks (BLK1 to BLKn), and the determining of a retention time and a program-erase count of each of the memory cell blocks (BLK1 to BLKn) comprises setting (S233) a higher weight to the program-erase count than to the retention time in response to a remaining life of the memory device being less than a threshold and when the remaining life of the memory device is equal or greater than said threshold value, the determining of a retention time and a program-erase count of each of the memory cell blocks (BLK1 to BLKn) comprises setting (S232) a higher weight to the retention time than to the program-erase count in response to a proportion of cold cell blocks having been accessed for a number of times smaller than a set number of times, from among the memory cell blocks (BLK1 to BLKn), is equal to or greater than a threshold proportion. <EOS>