# Direct-access storage device

A direct-access storage device (DASD) (pronounced /ˈdæzdiː/) is a secondary storage device in which "each physical record has a discrete location and a unique address". The term was coined by IBM to describe devices that allowed random access to data, the main examples being drum memory and hard disk drives. Later, optical disc drives and flash memory units are also classified as DASD.
The term DASD contrasts with sequential access storage device such as a magnetic tape drive, and unit record equipment such as a punched card device. A record on a DASD can be accessed without having to read through intervening records from the current location, whereas reading anything other than the "next" record on tape or deck of cards requires skipping over intervening records, and requires a proportionally long time to access a distant point in a medium. Access methods for DASD include sequential, partitioned, indexed, and direct.
The DASD storage class includes both fixed and removable media.

## Architecture

IBM mainframes access I/O devices including DASD through channels, a type of subordinate mini-processor. Channel programs write to, read from, and control the given device.

### CTR (CHR)

The operating system uses a four byte relative track and record (TTR) for some access methods and for others an eight-byte extent-bin-cylinder-track-record block address, or MBBCCHHR, Channel programs address DASD using a six byte seek address (BBCCHH) and a five byte record identifier (CCHHR).
* M represents the extent number within the allocation
* BB representing the Bin (from 2321 data cells),
* CC representing the Cylinder,
* HH representing the Head (or track), and
* R representing the Record (block) number.
When the 2321 data cell was discontinued in January 1975, the addressing scheme and the device itself was referred to as CHR or CTR for cylinder-track-record, as the bin number was always 0.
IBM refers to the data records programmers work with as logical records, and the format on DASD as blocks or physical records. One block might contain several logical (or user) records or, in some schemes, called spanned records, partial logical records.
Physical records can have any size up to the limit of a track, but some devices have a track overflow feature that allows breaking a large block into track-size segments within the same cylinder.
The queued access methods, such as QSAM, are responsible for blocking and deblocking logical records as they are written to or read from external media. The basic access methods, such as BSAM, require the user program to do it.

#### CKD

CKD is an acronym for Count Key Data, the physical layout of a block on a DASD device, and should not be confused with BBCCH and CCHHR, which are the addresses used by the channel program. CTR in this context may refer to either type of address, depending on the channel command.

### FBA

In 1979 IBM introduced fixed-block architecture (FBA) for mainframes. At the programming level, these devices do not use the traditional CHR addressing, but reference fixed-length blocks by number, much like sectors in mini-computers. More correctly, the application programmer remains unaware of the underlying storage arrangement, which stores the data in fixed physical block lengths of 512, 1024, 2048, or 4096, depending on the device type. As part of the FBA interface IBM introduced new channel commands for asynchronous operation that are very similar to those introduced for ECKD.
For some applications, FBA not only offers simplicity, but an increase in throughput.
FBA is supported by VM/370 and DOS/VSE, but not MVS or successor operating systems in the OS/360 line.

### FCP attached SCSI

Processors with FICON channels can access SCSI drives using Fibre Channel Protocol (FCP). While z/VM and z/VSE fully support FCP, z/OS provides only limited support through IOSFBA.

## Access

Some programming interface macros and routines are collectively referred to as access methods with names ending in Access Method.

### DOS/360 and successors

DOS/360 through z/VSE support datasets on DASD with the following access methods:
* Logical IOCS (LIOCS)
** sequential access method (SAM)
** direct access method (DAM)
** indexed sequential access method (ISAM)
** virtual storage access method (VSAM)
* Physical IOCS (PIOCS)
** Execute channel program (EXCP)

### OS/360 and successors

OS/360 through z/OS support datasets on DASD with the following access methods:
* Basic sequential access method (BSAM)
* Basic indexed sequential access method (BISAM)
* Queued sequential access method (QSAM)
* Queued indexed sequential access method (QISAM)
* Basic partitioned access method (BPAM)
* Basic direct access method (BDAM)
* Virtual storage access method (VSAM)
* Execute Channel Program (EXCP)
* Execute Channel Program in Real Storage (EXCPVR)
In MVS, starting with OS/VS2 Release 2 and continuing through z/OS, all of the access methods including EXCP[VR], use the privileged STARTIO macro.

## Terminology

IBM in its 1964 first version of the "IBM System/360 System Summary" used the term File to collectively described devices now called DASD. Files provided "random access storage'" At the same time IBM's product reference manual described such devices as "direct access storage devices" without any acronym.
An early public use of the acronym DASD is in IBM's March 1966 manual, "Data File Handbook." The earliest non-IBM use of the acronym DASD found by the "Google ngram viewer" to refer to storage devices dates from 1968. From then on use of the term grew exponentially until 1990 after which its usage declined substantially.
Both drums and data cells have disappeared as products, so DASD remains as a synonym of disk, flash and optical devices. Modern DASD used in mainframes only very rarely consist of single disk-drives. Most commonly "DASD" means large disk arrays utilizing RAID schemes. Current devices emulate CKD on FBA hardware.