Routing in Wireless Sensor Networks

21
PALLAVI MEHARIA - M06174001 AARTHI RAGHAVENDRA M06162035 ABHYUDAYA UPADHYAY M06173842 Routing in Sensor Networks 1. Introduction With advancement in technology and electronics enabled us with development of low power, low cost and multifunctional sensor nodes. The advantages of sensors networks is its versatility , their deployment in any kinds of scenarios, can cope with rapid technology changes, and can communicate untethered in short distances. Sensor nodes sense environments, process the data acquired and communicate with other components. So in turn it’s a collaborative effort of a large number of sensor nodes. A sensor network is composed of a large number of sensor nodes, which are densely deployed either inside the phenomenon or very close to it [1]. The advantage of using sensor nodes is that it allows for communication between small devices that are deployed over wireless links using fixed network architecture which need not to be engineered or pre-determined. Sensor nodes have on board processor which processes the raw data from the environment , and after performing some simple computations, it sends the required data. Sensors networks have applications in health, military and security, etc. 1. Military applications Sensor networks forms an integral part of military command, control, communications, computing, intelligence, surveillance, reconnaissance, and target systems because of the self-organizing, and fault tolerance nature. They are also used in monitoring forces of enemy and friendly forces, battle field surveillance, damage assessment etc. [10] 2. Environmental Applications Sensors networks are used for monitoring and tracking various environment phenomenon, and environmental conditions. Because of self- organizing and fault tolerance capabilities, it can be deployed over a large area in

description

This documentation is on Routing in Wireless Sensor Networks. It deals majorly with two protocols, LEACH and Rumor Routing. Both the protocols were simulated in NS2 in the linux environment and have the images of the simulation.

Transcript of Routing in Wireless Sensor Networks

Page 1: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

Routing in Sensor Networks

1. Introduction

With advancement in technology and electronics enabled us with development of low power,

low cost and multifunctional sensor nodes. The advantages of sensors networks is its versatility ,

their deployment in any kinds of scenarios, can cope with rapid technology changes, and can

communicate untethered in short distances. Sensor nodes sense environments, process the data

acquired and communicate with other components. So in turn it’s a collaborative effort of a large

number of sensor nodes. A sensor network is composed of a large number of sensor nodes,

which are densely deployed either inside the phenomenon or very close to it [1]. The advantage

of using sensor nodes is that it allows for communication between small devices that are

deployed over wireless links using fixed network architecture which need not to be engineered or

pre-determined. Sensor nodes have on board processor which processes the raw data from the

environment , and after performing some simple computations, it sends the required data.

Sensors networks have applications in health, military and security, etc.

1. Military applications – Sensor networks forms an integral part of military command,

control, communications, computing, intelligence, surveillance, reconnaissance, and

target systems because of the self-organizing, and fault tolerance nature. They are also

used in monitoring forces of enemy and friendly forces, battle field surveillance, damage

assessment etc. [10]

2. Environmental Applications – Sensors networks are used for monitoring and tracking

various environment phenomenon, and environmental conditions. Because of self-

organizing and fault tolerance capabilities, it can be deployed over a large area in

Page 2: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

randomized fashion. Its application includes forest fire detection, where the technology

can be used to find out the origin of fire and assessment of the damage. Other promising

area is bio-complexity mapping of the environment. Its ability to connect to internet

/networks, allows users to perform various operation remotely.[10]

3. Agriculture and Flood detection , where sensors can be used for monitoring the water

level , temperature , rainfall and weather phenomenon and send the data to a centralized

server , where analysis of the data can be done for providing the accurate conclusions and

formulating a definitive strategy to avoid any undesirable occurrences.[10]

4. Health applications deals with integrated patient monitoring, doing diagnostics and

analysis of various drugs, and their administrations, monitoring the movements and

morphology of various organisms. Some major areas are in tele-monitoring human

physiological data, tracking of patients and doctors in side hospitals. [10]

5. Home and commercial Environment: It deals with automation of all home appliances

i.e. home automation, building up of smart environment inside home and office building

like smoke sensors etc. [10]

Sensor networks consist of many sensors nodes which have many constraints. These constraints

includes fault tolerance , scalability , production costs , operating environments , sensor network

topology , hardware constraints , transmission media and power consumption.

1. Fault tolerance deals with failing or blocking of sensor nodes due to lack of power

consumption, environment interference etc. Regarding sensor nodes, failure of some

sensor nodes should not affect overall task of sensor networks, which defined as fault

tolerance. [10]

Page 3: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

2. Scalability: Depending upon the scenarios, the number of sensor nodes deployed may be

in order of hundreds or thousands. So the nodes should be able to communicate to each

other and at the same time should be able to send the data to the base station or collecting

servers. As we increase the sensor nodes in any area, it will result in increase of data from

the sensors which will be helpful in doing more accurate analysis. [10]

3. Production costs: Cost of single node in sensor networks plays a very important role as

it decides the overall cost of the sensor network deployment. The cost of sensor node

should be feasible and economical too. Along with that, it should also have features like

location finding systems, power generator etc. [10]

4. Hardware constraints: Sensor networks consist of sensing unit, processing unit,

transceiver, and power unit along with power generator. Sensing unit consist of two sub-

units: sensors and analog to digital conversions (ADC), which is provided into the

processing unit consisting of processor and a small storage unit. Sensing unit collaborates

with other sensing unit to carry out the assigned task. In the end, transceiver unit connects

the nodes to the networks. Power unit provide the power for performing all the

operations, and consist of power generator like solar cells. All the above mentioned units

should be of small size, consume extremely low power, operate in high volumetric

densities, have low production costs and be dispensable, should be autonomous, operate

unattended, and be adaptive to the environment.

[10]

Page 4: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

Sensor nodes are restricted in that they have limited transmission range, additionally their

processing and storage capabilities are limited and there is a large overhead on the energy

resources. Given the problems mentioned, it is important to establish efficient communication

links between sinks and nodes. Classically most routing protocols are classified as data-centric,

hierarchical and location based protocols depending on the network structure and applications

[2]. Additionally, routing protocols can be classified into three categories: proactive, reactive and

hybrid. [10]

In this project we aim to execute a simple implementation of two routing protocols: Rumor

Routing and LEACH.

2. Rumor Routing

The rumor routing is flat routing protocol, ensuring the longevity of the networks and increases

robustness in handling network failures. In this, the path is chosen at random, instead of the shortest

path for data transmission. The mechanism employed is either flooded by query flooding or event

flooding. The idea behind rumor routing is to use agents to create paths directed towards events,

on the occurrences of the events, and then route queries along these paths. The first approach is to

execute a random walk in the network in order to determine the path. [10]

The rumor routing deals with high and stringent power constraints with each node having high

SNR sensing range, resulting in distributed large set of nodes. The application of these are in the

areas of environmental monitoring , which deals with deploying of large number of sensors over

an area and performing sensing of the environment , data aggregation , data computation ,

compression and transmission, with configuring the local and global actuators. [8]

An event – deals with the abstraction of anything from the sensor readings to the node’s processing

capabilities, which occur in fixed region as localized phenomenon.

Page 5: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

A query- request for information or order to collect data. Once data reaches the destination, data

begins to flow back to originator. [9]

Considering the amount of data to be transmitted, efforts are made to find the shortest path else

the non-optimal path available to the destination node is considered. The best path are selected

from direct diffusion which leads to flooding the query in the entire network to find the optimum

path. In case of small amount of data transmitted, search of the shortest possible path is not

relevant, and sending it by any non-optimal route should be considered. [9]

Flooding is done on both queries and events. In case of lesser number of events and more number

of queries, it’s always advisable to do the flooding of the events, unless the number of queries and

data generated by that queries are significant. [9]

So in rumor routing, the main objective is to find the tradeoff between the event flooding and query

flooding, so that optimal path can be found with respect to amount of data to be transmitted.

Processes in rumor routing are the following:

1. Query :-

a. In case of query discovers the event path, it can be transmitted using that path. If no

path is discovered, it can again retransmit it or can go for flooding. But flooding is

avoided as far as possible and occur very rarely. Flooding has a very high chance of

finding the destination, but it overloads the sensor networks with redundant data.[8]

b. The agent are long-lived packet, which traverse through network, propagating

information from one node to another. An agent behavior adapts creates a path state

that leads to both or multiple events or creation of the aggregate path that leads to both

the events. Agents performs a path optimization if it finds a shorter path or efficient

path depending upon the parameters of deciding the path. [9]

Page 6: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

In rumor routing, on demand of application, either of event flooding or query flooding can be used,

if the data transmitted is very large. In the case of uniform distribution of the nodes, the total energy

used by the network for the purpose of performing the transmission is directly proportional to the

number of transmissions.

1. Query Flooding: deals with flooding the entire network with query. Let’s assume the case

of N nodes, performing N transmissions per query i.e. N*Q total transmissions. The energy

used for flooding is independent of number of events tracked by the network. It’s the case

when Number of events are way higher than number of queries.[8]

2. Event Flooding: This is performed when the number of events is low as compared to

the number of queries in the network, which results in efficiency. Flooding can happen

as soon a node witness an event. All other nodes forms gradients towards the network,

which is proportional to the number of hops in order to reach the sink. [8]

[8]

Rumor routing tries to find the threshold between the query flooding and event flooding. The

routing mechanism can determined the threshold and make the best use of the available power. In

Page 7: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

case of quality of service is not required, it can make the tradeoff between the quality of service

and the required energy. In this algorithm, nodes are densely distributed with short but symmetric

events.

[8]

The pseudo code for the event deals with the following things:

1. Each node maintains the list of neighbors and its event tables.

2. When a node witnesses an event, it adds it to its event table with distance zero and

generates an agent simultaneously.

3. When a node detects an event

a. Generate an agent

b. Let it travel on a random path

c. The visited node form a gradient to the event

4. An agent is a long-lived packet, which travels the network, propagating information

about local events to distant nodes.

Page 8: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

[8][6]

5. Any node can generate a query, then forward the query in a random direction to find

the path. The query keep going until its TTL expires or it intersects with the agent path

leading it to the destination event.

6. Since all transmissions are effectively broadcasts, so neighboring nodes can hear it as

it moves along its path, which can be used for modifying the event table based on the

information of the agents. After performing the operation, it results in decrementing of

the TTL. [8]

[8]

Page 9: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

7. Routing algorithm uses straightening algorithm for determining the agents’ next hop,

in which agents also have length of recently received nodes. In case of arrival at the

nodes it adds all the neighboring nodes to its event table, which helps in eliminating

the local loops, which could be formed while transmissions.

[8][6]

8. If the node that originated the query determines the query died, it can retransmit, give

up or flood the query.[6]

9. When a sink needs an event

a. Transmit a query

b. The query meets some node which lies on the gradient

c. Route establishment

Page 10: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

Here, every node in the network maintain a list of its neighbors and an event table with the

forwarding information of all predetermined events that is known to it. Once initiated, the neighbor

lists are generated by broadcasting each node’s id and tuning in to the broadcasted signals. If the

events have a limited expiration period, they can be appended with timestamps along with the table

event entry.

2.1 Implementation of Rumor Routing

The protocol will be implemented using NS-2:

Packet headers/rumor_packet.h: There are four header types for rumor routing,

including struct hdr_rumor, struct hdr_rumor_query, struct hdr_rumor_ant, and union

hdr_all_rumor.

Rumor header file/rumor.h: This files serves the purpose of storing the node gradients,

node neighbors, times and the agent. These variables are used to keep track of all the

metrics across the rumor class instances.

Rumor.cc: It contains the implementation of the routing algorithm.

Bitmap module: They are used to store/keep track of visited nodes and is a static

implementation.

OTcl support module: It determines and initiates the events, generates packets and

queries. It is to be noted that ANT and QUERIES are akin to UDP packets and are dropped

if the bandwidth capacity is exceeded.

Page 11: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

Screenshots from NS2 Simulation:

Rumor Routing

NAM simulation for Rumor Routing

Page 12: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

Trace File from NAM Simulation

3. Low-Energy Adaptive Clustering Hierarchy (LEACH)

LEACH is one of the first hierarchical protocols to have been developed. It is a self-organizing,

adaptive clustering protocol in which the sensor nodes will align themselves into local clusters and

assign cluster heads to reduce energy consumption, and improve network lifetime. In LEACH,

there are formation of local clusters. Each cluster consist of cluster head and other nodes. The

function of cluster head is to assemble the data and transmit it to base station. For each round of

operations , a new cluster head is chosen based on stochastic algorithm in order to avoid any of

the sensors to be drawn out of power or result in dying of a single node. In this algorithm, it’s

considered that each node has enough radio power to transmit to the cluster head or the base station,

but using too much power would waste a lot of energy. So a randomized rotation of high energy

cluster head is done in order to avoid the draining of power of a single node.[11]

Page 13: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

[11]

Sensors elect themselves for the local cluster heads by advertising /broadcasting their status at any

given time with a certain probability. The various sensors select their cluster head based on the

minimum number of energy required to communicate with the local cluster head. Once all the

nodes are organized into clusters, each cluster head creates a schedule for nodes in cluster, to

facilitate sending its data to the local cluster head, and be turned off for other duration. This

phenomenon results in minimizing the energy consumption of the nodes. When cluster head

acquires all the data from all nodes in the cluster, it aggregates the data, compresses it and transmit

it to the base station, which is a high energy transmission, and is only referred for few cluster

heads. Moreover the position of cluster heads , are not fixed and topography of clusters change

after every cycle, depending upon who is new .cluster head, which is directly proportional to the

amount of energy left at the node. .[11]

The number of cluster heads are determined by system, which is driven by network topology and

computational cost vs. the communications. The number of cluster heads should be optimal

because if it’s less, then some of the nodes have to transfer the data to the very far node and global

energy consumption will be very large. If cluster head count is large, then more cluster head need

Page 14: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

to transmit the long haul distances to the base station, and the compression performed will also be

less.

Major advantages:

1. The major energy saving of LEACH protocol is from combining the lossy compression

with data routing, which represents the tradeoff between the quality of service and data

compression.[12]

2. LEACH also helps in distributing load from one cluster head by reassigning the new cluster

head for every round of transmission. [12]

3. It also helps in making dynamic changes in the cluster head position, in turn avoid fixed

cluster topology.

[12]

LEACH vs. direct communication, LEACH almost doubles the useful lifetime of nodes and it

takes approximately 8 times longer for a node to die. The dynamic clustering versus static

clustering have its advantages , as in case of any cluster head dying , a new cluster head will be

chosen , but for static clustering , all the nodes in the static cluster will die, and won’t be able to

communicate with other nodes in networks. In LEACH, the nodes usually die in random fashion

in comparison to the fixed fashion in static clustering, as the total power will be used by cluster

head in order to receive, process, compress and transmit the data to the base station.

Page 15: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

[12]

LEACH operation is broken down in terms of rounds, which is further segmented into two phases:

the set-up phase and the steady phase. The duration of the latter is longer than the duration of

the former; this is done to reduce the overhead. The step up phase deals with cluster organization

with selection of the cluster head and steady state phase for data transmission to the base station

and is usually longer than the step up phase.

[12]

The various processes of LEACH algorithm are:

1. Advertisement Phase: During the cluster creation, the system decides the number of the cluster

heads to be made for the current round. The decision is made by system requirement of the

percentage of cluster head for the network and number of times the node has been a cluster head.

While in the set-up phase, the sensor node chooses a random number between 0 and 1. If the

Page 16: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

assumed number is less than the threshold T(n), the sensor node is assigned as the cluster head.

T(n) is calculated as:

𝑇(𝑛) =𝑃

1 − 𝑃 [𝑟 𝑚𝑜𝑑 (1𝑃)]

𝑖𝑓 𝑛 ∈ 𝐺

= 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

Here P is the desired percentage to become a cluster-head, r is the current round and G represents

the set of nodes that have not been selected as a cluster head in the last 1/P rounds [1]. Once the

cluster head is selected, they advertise their assignment to all the nodes in the network topology,

and the same nodes then determine which cluster head they belong to. Using TDMA, the

transmission time between the cluster head and the node is determined. For the cluster head

advertisement, CSMA-MAC is used, and all cluster head transmit using the same energy. The non-

cluster head must keep their receivers on during this phase, to hear the advertisements of all cluster

heads nodes, which in turn helps in deciding which cluster node to select for that specific round,

based on two factors which are minimum signal strength required for the transmission to the cluster

head, and largest signal strength received by the nodes. [12]

While in the steady phase, the nodes begin sensing and transmitting data to the heads, result in

aggregation of data from the nodes before forwarding it to the base station. This is done in a

stochastic manner, with the system re-entering the set-up phase again.

1. Cluster Set up phase: In this phase after choosing of the cluster head operations, all the

non-cluster nodes decide, that it will be member of which cluster. And after that each node

transmit, their information to cluster node using CSMA-MAC protocol, and all the nodes

should be on. [12]

Page 17: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

2. Schedule creation: It used for creation of the schedule, in which each node transmit its

data to the cluster head in a specific time slot of the round, using TDMA Scheduling. The

schedule is transmitted/broadcasted back to all the nodes, which is fixed. It is used to avoid

collisions between data transmission nodes. [12]

3. Data Transmission: As per the schedule created by the cluster head, each node will

transmit its data in the allocated time slot to the cluster head. During this phase, the node

uses minimum energy and after the transmission phase, the nodes are turned off, in order

to save the power. After all the data reception, the cluster head performs the signal

processing functions to compress the data into a single cluster. And after the completion of

the first round, a new cluster head is selected through the set-up phase.

[12]

4. Multiple clusters: For a cluster, not to interfere with other cluster’s transmissions, a

different CSMA code is provided to every cluster , which in turns helps in deciding the

transmission belongs to which cluster. This information is communicated to all the nodes

inside the cluster, called as separating code, and all the transmission is filtered using the

same code.

Page 18: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

3.1 Implementation of LEACH

We use NS2 to simulate the network; the LEACH protocol is loaded on NS2 to implement the

protocol. Additionally we use MATLAB to simulate the method. Before we begin, we make

assumptions to simulate the protocol:

Initial energy of nodes is same.

Nodes are static

Nodes are assumed to have sufficient transmission range to reach other nodes

Homogeneous distribution of nodes.

Nodes always have to send the data.

The parameters taken into consideration for simulation of LEACH are:

Time v/s No of data signals received at BS

Time v/s Start up energy dissipation

Time v/s Total energy dissipation

Time v/s Number of nodes alive

Number of nodes v/s Network Lifetime

Number of clusters v/s Network Lifetime

Base station location v/s Total energy dissipation

Base station location v/s Network Lifetime

Round number v/s Average Latency

Screenshots from NS2 Simulation:

Leach Protocol

Page 19: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

NAM simulation for Leach Protocol

Page 20: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

Trace File from NAM Simulation

4. References

[1] Jennifer Yick, Biswanath Mukherjee, Dipak Ghosal, Wireless sensor network survey,

Computer Networks, Volume 52, Issue 12, 22 August 2008, Pages 2292-2330, ISSN 1389-1286

[2] Rathi, Neha. October 15, 2012. A Review on Routing Protocols for Application in Wireless

Sensor Networks. International journal of distributed and parallel systems

[3] David Braginsky and Deborah Estrin. 2002. Rumor routing algorthim for sensor networks. In

Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications

(WSNA '02)

[4] Guo, Dongfeng (01/01/2013). " Clustering Routing Protocol for WSN" in Proceedings of the

International Conference on Information Engineering and Applications (IEA) 2012 Volume 4 (1-

4471-4852-5, 978-1-4471-4852-4), (p. 153).

Page 21: Routing in Wireless Sensor Networks

PALLAVI MEHARIA - M06174001

AARTHI RAGHAVENDRA – M06162035

ABHYUDAYA UPADHYAY – M06173842

[5] V. Geetha, P.V. Kallapur, Sushma Tellajeera, Clustering in Wireless Sensor Networks:

Performance Comparison of LEACH & LEACH-C Protocols Using NS2, Procedia

Technology, Volume 4, 2012, Pages 163-170, ISSN 2212-017

[6] Rumor Routing Algorithm For Sensor Networks by David Braginsky and Deborah Estrin

[7] Abidi, A.A. Pottie, G.J. Kaiser, W.J. Power-Conscious Design of Wireless Circuits and

Systems. Proceedings of the IEEE, vol. 88, no. 10, pp. 1528-45, October 2000.

[8] Summary of Rumor Routing in Wireless Sensor Networks by Aleksi Ahtiainen Helsinki

University of Technology

[9] D. Braginsky and D. Estrin. Rumor routing algorthim for sensor networks. In WSNA ’02:

Proceedings of the1st ACM international workshop on Wir eless sensor networks and applications,

pages 22–31. ACM Press,2002.

[10] Wireless sensor networks: a survey ,I.F. Akyildiz, W. Su, Y. Sankarasubramaniam, E.

Cayirci

[11] A Security Mechanism for Clustered Wireless Sensor Networks Based on Elliptic Curve

Cryptography , Cheng-Lung Yang1, Wernhuar Tarng1, Kuen-Rong Hsieh2 and Mingteh Chen3

[12] Energy-Efficient Communication Protocol for Wireless Microsensor Networks, Wendi

Rabiner Heinzelman, Anantha Chandrakasan, and Hari Balakrishnan