Document Number: 002-00833 Rev. *L
Page 10 of 74
S29VS256R
S29VS128R
S29XS256R
S29XS128R
6.1
Data Address and Quantity Nomenclature
A Bit is a single One or Zero data value. A Byte is a group of 8 bits aligned on an 8 bit boundary. A Word is a group of 16 bits aligned
on a 16 bit boundary.
Throughout this document
quantities of data are generally expressed in terms of byte units
. Example: most sectors have 128
Kilo Bytes of data and is written as 128 KBytes or 128 KB.
Addresses are also expressed in byte units
. A 128 KByte sector has
an address range from 00000h to 1FFFFh Byte locations. Byte units are used because most host systems and software for these
systems use byte resolution addresses. Software & hardware developers most often calculate code and data sizes in terms of bytes,
so this is more familiar terminology than describing data sizes in bits or words. In general, data units will not be abbreviated if
possible so that full unit names of Byte, Word, or bit are used. However, there may be cases where capital B is used for byte units
and lower case b is used for bit units, in situations where space is limited such as in table column headers.
In some cases data quantities will also be expressed in word or bit units in addition to the quantity shown in bytes. This may be done
as an aid to readers familiar with prior device generation documentation which often provided only word or bit unit values. Word units
may also be used to emphasize that, in the memory devices described in this documentation, data is always exchanged with the
host system in word units. Each bus cycle transfer of read or write data on the host system bus is a transfer 16 bits of data. A read
bus cycle is always a16 bit wide transfer of data to the host system whether the host system chooses to look at all the bits or not. A
write bus cycle is always a transfer of 16 bits to the memory device and the device will store all 16 bits to a register. In the case of a
program operation all 16 bits of each word to be programmed will be stored in the Flash array.
Because data is always transferred in word units, the memory devices being discussed use only the address signals from the
system necessary to select words. The host system byte address uses system address a0 to select bytes and a1 to select words.
Flash memories with word wide data paths have traditionally started their address signal numbering with A0 being the selector for
words because a byte select input is not needed. So, system address a-maximum to a1 are connected to Flash A-maximum to A0
(the documentation convention here is to use lower case for system address signal numbering and upper case for Flash address
signals). In prior generation Flash documentation, address values used in commands to the flash were documented from the
viewpoint of the Flash device - the bit pattern appearing on Flash address inputs A10 to A0. However, most software is written with
addresses expressed in bytes. This means the address patterns shown in Flash command tables have traditionally been shifted by
one bit to express them as byte address values in Flash control programs. Example: a prior generation Flash data sheet would show
a command write of data value xxA0h to address 555h; this is an address pattern of 10101010101b on Flash address inputs A10 to
A0; but software would define this as a byte address value of AAAh since the least significant address bit is not used by the Flash);
which is 101010101010b on system address bus a11 to a0. Because system a11 to a1 is connected to Flash A10 to A0 the Flash
word address of 555h and the system byte address of AAAh provides the same bit pattern on the same address inputs. Because all
address values are being documented as system byte addresses, that are more familiar to software writers, the command tables
have addresses that are shifted from those shown in prior generation devices.