1. A method of processing and buffering data blocks prior to storing them on a tape storage medium, each data block containing unprocessed data elements that are transferred in sequence during a block transfer from a host computer, comprising the following steps: initiating a block transfer of an unprocessed data block from a host computer, the data block having a first size; processing the data block as it is received from the host computer to create processed data elements that form processed data block, the processed data block having a second size that is different from the first size; storing the processed data elements in a memory buffer as they are created; while performing the processing and storing steps, repeatedly determining an amount of free memory in the memory buffer; temporarily suspending the block transfer whenever the amount of free memory in the memory buffer is below a first predetermined threshold; writing the processed data block from the memory buffer to the tape storage medium.