Pick a simple everyday activity, like waking up to your alarm clock, or buying breakfast at KAF. Can you identify data and control, maybe multiple instances of data and control, in the activity?
Section 1.2 Data bits and control bits
When we use bits to encode (that is, represent) information— e.g., text, images, music, measurements— we say those bits are encoding data. Data can come from many sources—a camera, a microphone, a thermometer, a keyboard. It can have more or less personal significance: it could be a voicemail with a job offer from that company you want to work for, a letter from a dear friend, an e-card from your sister on your birthday, or… it could be spam. But at the level of bits, it’s all data.
We also use bits to turn lights on and off, to open and close windows, to lock and unlock doors, to start and stop motors. We call these control bits. Control bits also come from a variety of sources. At its simplest, we can flip a switch to assert a control bit (set it to 1). Control bits may also be a result of some processing of data.
- A digital thermostat measures the room temperature (data) and asserts a control bit if the room is too warm (thereby actuating the air conditioner).
- A camera acquires images of the road in front of you (data), and a driver-assist computer uses that data to assert a control signal that sounds an alarm or nudges the steering wheel if it detects you are drifting out of your lane.
This concept of data and control may be familiar from computer programming. Consider the following simple program.
if reset==1 then
x = 0;
else
x = x+1;
end if;
if x > 15 then
alarm = 1;
else
alarm = 0;
end if;
Here, the variable
x is either assigned the value 0 or it is incremented. We consider x to be data. Which operation is performed on the data depends on the input reset, whether it is 1 or 0. Thus, we consider reset to be a control bit. In the second part of the program, x is tested to see if it has exceeded a limiting value, 15. This is a data operation, to determine the status of x. Then, based on the result of the test, an output bit alarm is set to 1 or 0 (asserted or deasserted). Again, x is data, and alarm is a control bit. The example shows that control bits can either be inputs to a system that direct the processing of data (reset), or outputs of a system (alarm), resulting from the processing of data.The “view from 20,000 feet” of a digital processor is a box that takes in data and control bits, and operates on the data to produce new data and control bits (Figure 1.2.1).

Block with inputs and outputs represented by arrows.
The processor contains four broad functions that we’ll develop in detail as we proceed through the course:
- Datapath, consisting of:
- Memory: Where data is stored during computation
- Operations: Arithmetic and logical manipulations of the data
- Controller, which coordinates the operations of the datapath
- Input/Output (I/O), which connect the processor to the outside world via sensors and actuators.
Depending on the system, some functions may be more or less prominent, but you will (almost) always be able to identify them, and they provide a valuable framework for conceptualizing and realizing a design. It is always good practice in digital design to maintain a clear distinction between data signals and control signals, and between data operations and control functions.
Checkpoint 1.2.2.
Checkpoint 1.2.3.
Consider this simple program, There is only the data signal
if x>15 then
x = 0;
else
x = x+1;
end if;
x. Identify the control functions and rewrite the program to use an explicit control signal.Answer.
if x>15 then
reset = 1;
else
reset = 0;
end if;
if reset == 1 then
x = 0;
else
x = x+1;
end if;

