16-bit

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Processors
4-bit 8-bit 12-bit 16-bit 18-bit 24-bit 31-bit 32-bit 36-bit 48-bit 60-bit 64-bit 128-bit
Applications
16-bit 32-bit 64-bit
Data Sizes
nibble   octet   byte   word   dword   qword

In computer architecture, 16-bit integers, memory addresses, or other data units are those that are at most 16 bits (2 octets) wide. Also, 16-bit CPU and ALU architectures are those that are based on registers, address buses, or data buses of that size. 16-bit is also a term given to a generation of computers in which 16-bit processors were the norm.

Contents

[edit] 16-bit architecture

The HP BPC, introduced in 1975, was the world's first 16-bit microprocessor.

Prominent 16-bit processors include the PDP-11, Intel 8086, Intel 80286 and the WDC 65C816. The Intel 8088 was program-compatible with the Intel 8086, and was 16-bit in that its registers were 16 bits long and arithmetic instructions, even though its external bus was 8 bits wide.

A 16-bit integer can store 216 (or 65536) unique values. In an unsigned representation, these values are the integers between 0 and 65535; using two's complement, possible values range from −32768 to 32767. Hence, a processor with 16-bit memory addresses can directly access 64 KiB of byte-addressable memory.

16-bit processors have been almost entirely supplanted in the personal computer industry, but remain in use in a wide variety of embedded applications. For example the 16-bit XAP processor is used in many ASICs.

[edit] The 16/32-bit Motorola 68000 and Intel 386SX

The Motorola 68000 is sometimes called "16-bit" because its data buses were 16 bits wide, however it was 32-bit in that the general purpose registers were 32 bits long and most arithmetic instructions supported 32-bit arithmetic, with up to 16 megabytes of addressable RAM. Thus the 68000 software is 32-bit in nature, and forwards-compatible with other 32-bit processors.

The same analysis applies to Intel's budget CPU called the 386SX which is also a 32-bit processor sitting on a 16-bit external bus. The 68000 processor of the Sega Mega Drive/Genesis was a highly advertised feature of the video game system. Due to the saturation of this advertising, the 1988-1995 era of video game consoles is often called "the 16-bit era".

[edit] 16-bit file format

A 16-bit file format is a binary file format for which each data element is defined on 16 bits (or 2 Bytes). An example of such a format is UTF-16 and the Windows Metafile Format.

[edit] 16-bit memory models

Similar to 64-bit's data models, the 16-bit Intel architecture allows for different memory models—ways to access a particular memory location. The reason for using a specific memory model is the size of the assembler instructions or required storage for pointers. Compilers of the 16-bit era generally had the following typewidth characteristic:

16-bit data model
Data model short int long pointers
IP16L32 (near) 16 16 32 16
I16LP32 (far) 16 16 32 32
Tiny
Code and data will be in the same segment (especially, the registers CS,DS,ES,SS will point to the same segment); “near” pointers are always used. Code, data and stack together cannot exceed 64K.
Small
Code and data will be in different segments, and “near” pointers are always used. There will be 64K of space for code and 64K for data/stack.
Medium
Code pointers will use “far” pointers, enabling access to 1MB. Data pointers remain to be of the “near” type.
Compact
Data pointers will use “far” and code will use “near” pointers.
Large”/“Huge
Code and data pointers will be “far”.[1]

[edit] References

  1. ^ Borland Turbo C++ 1.01 in-program manual