Count Key Data (CKD) is a disk data architecture. Each physical disk record consists of a count field, an optional key field, and a ("user") data field with error correction/detection information appended to each field and gaps separating each field [1]. Because of the gaps and other information the recorded space is larger than that required for just the count data, key data, or user data.
The principle behind the architecture is that since data record lengths can vary, they all have an associated count field which indicates the size of the key if used and the size of the data.[2]. The count field has the identification of the physical location in cylinder-head-record format, the length of the key, and the length of the data. The key may be omitted or consist of a string of characters. Most often the key is omitted, the record located sequentially or by direct cylinder-head-record addressing. If it is present, the key is typically a copy of the first n bytes of the data record but can be any data which will be used to find the record. The key (and hence the record) is locatable via hardware commands.[3] Since the introduction of IBM's System/360 in 1964 nearly all IBM large and intermediate system DASDs have used the Count Key Data Architecture[4]. Compare to Fixed Block Architecture (FBA).
The advantages of Count Key Data architecture are:
Reduced CPU and memory prices and higher device and interface speeds have somewhat nullified the advantages of CKD, and it is retained only because IBM's flagship operating system z/OS does not support sector-oriented interfaces.
Extended Count Key Data (ECKD) refers to the CCW commands used with cached controllers for IBM DASD. The new commands were introduced on the cached versions of the IBM 3880 and were extended on the IBM 3990. The ECKD channel commands provide improved performance for the obsolete Bus & Tag interface, ESCON (or Enterprise Systems Connection) interface or the newer FICON (Fiber Connectivity) protocol. ECKD allows the programmer to provide the control unit with information on intent and to perform operations in a single channel program that would require multiple channel programms with CKD.