Sensor-network processors using event-driven architecture
First Claim
Patent Images
1. An event-driven processor for executing tasks in response to the occurrence of one or more events, said processor comprising:
- a processor core that includes;
a memory;
at least one execution unit;
an event queue for storing one or more event tokens, each of which contains event identification information that indicates an event that has occurred which requires that a corresponding task is to be executed by said execution unit and a location in said memory where one or more instructions corresponding to the task to be executed by said execution unit is located;
a fetch for sequentially processing each of said event tokens in said event queue by carrying out the processing steps of;
retrieving a first of said event tokens from said queue;
employing said event identification information to locate and fetch one or more instructions from said memory for execution by said execution unit, said instructions corresponding to the task to be executed;
atomically delivering said instructions to said execution unit for execution until a done instruction is fetched from said memory which indicates that all of the instructions for said task have been fetched and delivered to said execution unit; and
when said done instruction is fetched, repeating said processing steps for a next event token if present in said queue, but if said queue is empty, ceasing further fetching of instructions from said memory until another event token is detected in said event queue by said fetch;
—
a message coprocessor for generating external event tokens in response to communications received from one or more external devices and placing said external event tokens in said event queue for processing by said processor core; and
a timer coprocessor for generating an internal event token when a timeout occurs and placing said internal event token in said event queue to cause said fetch to retrieve instructions corresponding to said internal event token from said memory and deliver said instructions to said execution unit for execution;
whereby, said execution unit periodically transitions from an idle state to an active state even when no external event tokens have been placed into said event queue by said message coprocessor.
2 Assignments
0 Petitions
Accused Products
Abstract
Event-driven processor architectures are particularly suited for use in multiple sensor node networks and simulators of such networks. A first variation of the processor is particularly suited for use in a sensor node in a wireless sensor network. Through use of the event-driven architecture and special message and timing coprocessors, this embodiment of the invention is optimized for low energy requirements and data monitoring operations in sensor networks. A second embodiment of the invention includes modifications necessary for use of the processor in a network simulation protocol.
-
Citations
13 Claims
-
1. An event-driven processor for executing tasks in response to the occurrence of one or more events, said processor comprising:
-
a processor core that includes; a memory; at least one execution unit; an event queue for storing one or more event tokens, each of which contains event identification information that indicates an event that has occurred which requires that a corresponding task is to be executed by said execution unit and a location in said memory where one or more instructions corresponding to the task to be executed by said execution unit is located; a fetch for sequentially processing each of said event tokens in said event queue by carrying out the processing steps of; retrieving a first of said event tokens from said queue; employing said event identification information to locate and fetch one or more instructions from said memory for execution by said execution unit, said instructions corresponding to the task to be executed; atomically delivering said instructions to said execution unit for execution until a done instruction is fetched from said memory which indicates that all of the instructions for said task have been fetched and delivered to said execution unit; and when said done instruction is fetched, repeating said processing steps for a next event token if present in said queue, but if said queue is empty, ceasing further fetching of instructions from said memory until another event token is detected in said event queue by said fetch;
—a message coprocessor for generating external event tokens in response to communications received from one or more external devices and placing said external event tokens in said event queue for processing by said processor core; and a timer coprocessor for generating an internal event token when a timeout occurs and placing said internal event token in said event queue to cause said fetch to retrieve instructions corresponding to said internal event token from said memory and deliver said instructions to said execution unit for execution;
whereby, said execution unit periodically transitions from an idle state to an active state even when no external event tokens have been placed into said event queue by said message coprocessor. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An event-driven method for managing events with a processor that includes a memory, at least one execution unit, an event queue, a fetch, a message coprocessor and a timer coprocessor, said method comprising the steps of:
-
generating one or more external event tokens with said message coprocessor, each of which contains event identification information that indicates an external event that has occurred which requires that a corresponding task is to be executed by said execution unit and a location in said memory where one or more instructions corresponding to the task to be executed by said execution unit is located; generating one or more internal event tokens with said timer coprocessor, each of which contains event identification information that indicates an internal timeout event that has occurred which requires that a corresponding task is to be executed by said execution unit and a location in said memory where one or more instructions corresponding to the task to be executed by said execution unit is located; placing each of said event tokens in said event queue; and in response to detection by said fetch that at least one token is present in said event queue, said fetch carrying out the steps of; retrieving a first of said event tokens from said event queue; employing said event identification information to locate and fetch one or more instructions from said memory for execution by said execution unit, said instructions corresponding to the task to be executed; atomically delivering said instructions to said execution unit for execution until a done instruction is fetched from said memory which indicates that said execution unit is done executing all of the instructions for said task; and when said done instruction is fetched, repeating said processing steps for a next event token if present in said queue, but if said queue is empty, ceasing further fetching of instructions from said memory until another event token is detected in said event queue by said fetch. - View Dependent Claims (9, 10, 11, 12, 13)
-
Specification