To: Dr. Winfred P Anakwa
From: Rahul Chopra
Date: October 10, 2001
Subject: Senior Project Functional Description
Title: Reliable Data Processor in VLSI
The Reliable Data Processor in VLSI is a data processor that will carry out various Arithmetic and Logic operations on data bits, encode the output, and forward it to an external reliable chip for reliability testing.
Building this data processor includes designing and fabricating in VLSI a controller, an arithmetic logical processor, and an encoder. In addition, the inputs to the system will be provided by data registers, which will also be built and designed as storage elements in VLSI. The controller will have a user interface which allows the user to pick arithmetic or logical operations to be performed on the inputs. The controller will control the ALU, instructing it to carry out the selected operation. The encoder will encode the output from the ALU and transmit the data to an external reliable data chip for testing. The system will also have feedback capabilities, as the external reliable chip will send a 1-bit flag to the processor. Based on the value of this flag, the processor will be able to detect incorrect data transfer and will resend the data to the external chip.
Fig 1-1 Basic Block Diagram
Output to External Chip
Error Flag from External Chip
Controller User
Figure 1-2. Block Diagram showing Sub-Systems and External
Chip
Register Subsystem:
The register subsystem consists of data registers, storage devices that will supply the ALU of the processor with inputs. The input to the registers will come from an external device. The input to the registers will be in the form of a data stream. The registers will store the data, and output 4 parallel bits to the ALU. Refer to figure 2-1 for a diagram of the Register subsystem showing input/output characteristics
Controller:
The controller controls the ALU. The input to the controller is the users choice. The controller offers the user a choice of arithmetic and logic operations and based on what the users picks, the controller instructs the ALU to carry out those operations. The controller also receives a 1-bit flag input from the reliable chip, which allows the controller to sense incorrect/erroneous data transfer. In case the bits received by the reliable chip are erroneous, the controller instructs the data to be resent.
Refer to figure 3-1 for a diagram of the controller subsystem showing input/output characteristics
ALU:
The ALU or the Arithmetic and Logic Unit performs basic arithmetic and logical operations on the data. Some of the operations include multiplication, AND, OR, NAND, NOR and XOR operations on bits from each of the registers. The ALU receives data from the data bus and instructions on what operations to carry out on the data from the Controller. Upon carrying out the operations, the ALU forwards the 4-bit output to the encoder. Refer to figure 3-2 for a diagram of the ALU subsystem showing input/output characteristics
Encoder:
The encoder receives the 4-bit output from the ALU and adds 3 parity bits to output a 7-bit serial data stream. The encoder then forwards this data stream to the external reliable chip for testing. Refer to figure 3-3 for a diagram of the encoder subsystem showing input/output characteristics
External Reliable Chip:
The reliable chip receives encoded data from the processor and does reliability checks on it after separating the data from the parity bits. In case the data transfer is erroneous, it sends an error flag to the controller, which will then resend the data.
Data
Registers
Fig 2-1 Register Subsystem
8-bit Serial In
Out to ALU
Fig 3-1 Controller Subsystem
Controller
User
In
Instructions to
ALU
Flag
In
(from chip)
Fig 3-2 ALU Subsystem
ALU
Commands
(from ALU) 4-bit Output
To encoder
Data
In
(from Bus)
Fig 3-3 Encoder Subsystem
4-bit In
(from ALU) 7-bit Serial Output