Method for optimizing memory utilization of a selective call unit

Information

  • Patent Grant
  • 6420960
  • Patent Number
    6,420,960
  • Date Filed
    Monday, September 30, 1996
    28 years ago
  • Date Issued
    Tuesday, July 16, 2002
    22 years ago
Abstract
A selective call unit (SCU) (122) is used for receiving a sequence of interspersed message fragments (FIG. 4) belonging to a plurality of messages transmitted by a messaging system. The SCU (122) receives a message length command from the messaging system indicating a total message length of a message pending transmission from the messaging system. Each message fragment includes a message portion of the plurality of messages and information indicating the length of the message fragment. The SCU (122) then determines whether there is sufficient memory available for receiving the message according to the message length command. The SCU (122) reserves memory space equivalent to the total message length when the total message length is equal to or less than available memory space, and disallows reception of the message when the total message length is greater than available memory space.
Description




FIELD OF THE INVENTION




This invention relates in general to selective call units receiving messages, and particularly to optimizing memory utilization of a selective call unit in one-way messaging system that transmits fragmented messages.




BACKGROUND OF THE INVENTION




Memory reservation is a standard procedure in two-way messaging systems. Before sending a message, the messaging system has the option of sending a query message to a selective call unit to establish that sufficient memory is available for storing a message. If the unit indicates that insufficient memory is available, the messaging system does not send the message. In some cases, the messaging system stores the message for future transmission on the theory that perhaps a few minutes later the selective call unit will have memory available to receive the message after, for example, the user of the unit having read messages and/or discarded messages from memory.




In contrast, sending a query to determine available memory capacity of a selective call unit is not possible in one-way messaging systems. Often one-way messaging systems using message fragmentation will transmit to a selective call unit a sequence of interspersed message fragments belonging to different messages, each message fragment including a portion of one of the messages transmitted, and information indicating the length of the message fragment. Because message fragments do not include information indicating the total length of the message being transmitted, a selective call unit receiving a sequence of interspersed message fragments will not know whether there is sufficient memory available to receive messages.




This leads to the situation where the selective call unit is unable to properly receive messages that could have otherwise been received individually, because memory is exhausted before all the message fragments for any one of the messages has been received. This may often result in the reception of one or more partially decoded messages, which generally is contrary to customer expectations.




Thus, what is needed is a method and apparatus that can improve utilization of memory in selective call units operating in one-way messaging systems that transmit fragmented messages.











BRIEF DESCRIPTION OF THE DRAWINGS





FIG. 1

is an electrical block diagram of a messaging system in which the present invention can be utilized;





FIGS. 2 and 3

are electrical block diagrams of the fixed portion and the selective call unit of

FIG. 1

, respectively;





FIG. 4

is an illustration of a sequence of interspersed message fragments from two messages; and





FIGS. 5 and 6

are flow charts depicting the operation of the controller and the selective call unit of

FIG. 1

, respectively, according to the present invention.











DESCRIPTION OF THE PREFERRED EMBODIMENT





FIG. 1

is an electrical block diagram of a one-way radio messaging system. The messaging system comprises a fixed portion


102


and a portable portion


104


. The fixed portion


102


includes a controller


112


for controlling operation of a plurality of base stations


116


by way of conventional communication links


114


, such as microwave links. The portable portion


104


includes a plurality of SCU's (selective call units)


122


for receiving messages from the base stations


116


under the control of the controller


112


.




The controller


112


receives messages from callers utilizing a conventional; telephone


124


for communicating with a conventional PSTN (public switch telephone network)


110


. The PSTN


110


relays messages to the controller


112


through a conventional telephone line


101


coupled to the controller


112


. Upon receiving messages from the PSTN


110


, the controller


112


processes the messages, and delivers them to the base stations


116


for transmission to designated SCU's


122


.





FIGS. 2 and 3

are electrical block diagrams of the fixed portion


102


and the SCU


122


of

FIG. 1

, respectively. The electrical block diagram of the fixed portion


102


includes the elements of the controller


112


and the base stations


116


. The controller


112


comprises a conventional processing system


210


for controlling operation of the base stations


116


, a conventional caller interface


218


for receiving messages from the PSTN


110


, and a transmitter interface


204


for communicating messages to the base stations


116


. The processing system


210


includes conventional hardware such as a computer system


212


and mass media


214


to perform the programmed operations of the controller


112


. The base stations


116


comprise a conventional RF transmitter


202


coupled to an antenna


201


for transmitting the messages received from the controller


112


.




The SCU


122


comprises a receiver


304


coupled to an antenna


302


, a power switch


308


, a processor


310


, an alerting device


322


, and a user interface


321


. The receiver


304


and antenna


302


are conventional RF elements for receiving messages transmitted by the base stations


116


. The power switch


308


is a conventional switch, such as a MOS (metal oxide semiconductor) switch for controlling power to the receiver


304


under the direction of the processor


310


, thereby providing a battery saving function.




The processor


310


is used for controlling operation of the SCU


122


. Generally, its primary function is to decode and process demodulated messages provided by the receiver


304


, storing them and alerting a user of the received message. To perform this function, the processor


310


comprises a conventional microprocessor


316


coupled to a conventional memory


318


including nonvolatile and volatile memory portions, such as a ROM (read-only memory) and RAM (random-access memory). One of the uses of the memory


318


is for storing messages received from the base stations


116


. Another use is for storing one or more selective call addresses utilized in identifying incoming messages belonging to the SCU


122


.




Once a message has been decoded and stored in the memory


318


, the processor


310


activates the alerting device


322


which generates a tactile and/or audible alert signal to the user. The user interface


321


, which includes, for example, a conventional LCD display


324


and conventional user controls


320


, is utilized by the user for processing the received messages. This interface provides options such as reading, deleting, and locking of messages, as well as, user selectable priority level settings for messages received.




The SCU


122


is also shown coupled to a peripheral device


326


including a memory


328


. This peripheral device


326


can be, for example, a conventional computer that allows attachment of an SCU


122


thereto. This coupling allows the transfer of information (e.g., messages) between the SCU


122


and the peripheral device


326


. This capability will become relevant in the discussions below.




Preferably, the one-way messaging system uses message fragmentation for transmitting messages to the SCU's


122


. One example, of a protocol that transmits messages in fragments is the ReFlex protocol, developed by Motorola, Inc. (ReFlex is a trademark of Motorola, Inc.). The ReFlex protocol is a digital selective call signaling protocol that is presently used by various system operators in the United States and in several other countries. It will be appreciated that, alternatively, other digital signaling protocols that transmit messages in fragments can be used; however, for the discussion below it is assumed that ReFlex is the protocol used.




Generally, message fragmentation involves the process of dividing one or more messages into message fragments, each message fragment comprising a message portion and information indicating the length of the message fragment. Prior to transmitting message fragments, the controller


112


evaluates the existing traffic of the messaging system, and intersperses the transmission of message fragments in a manner that most efficiently utilizes system bandwidth. Improving the efficiency of the utilization of system bandwidth is one of the essential features of protocols that fragment messages.





FIG. 4

is one example of how the controller


112


might designate the transmission of message fragments for two messages, messages


1


and


2


. In this example, messages


1


and


2


each comprise two message fragments, fragments


1


and


2


. Each fragment, as discussed above, includes a portion of the message being transmitting, and message length information that informs the SCU


122


of the expected length of the message portion being received. Note, the message fragments shown in this example are contiguous in time. However, this is not a necessary condition. In fact, in most instances message fragments are transmitted with gaps of time between each fragment. Any time lag of transmission between message fragments remains applicable to the present invention.




Since a protocol that transmits fragmented messages does not inform the SCU


122


of the full length of the message being transmitted, it is not possible for the SCU


122


to know, in this example, whether there will be sufficient memory to receive either or both messages


1


and


2


. As shown in

FIG. 4

, the first fragments of messages


1


and


2


are transmitted in sequence. If these fragments combined are larger in capacity than the available memory capacity of the SCU


122


, the result would be the partial reception of both messages


1


and


2


. This result occurs even if messages


1


or


2


could have been received individually in total. Other combinations of interspersed fragments and fragment lengths could be shown to provide similar results. It is evident that receiving partial messages would be contrary to customer expectations. Thus, what is needed is a method for optimizing memory utilization of the SCU


122


in a manner that avoids partial message decoding.





FIGS. 5 and 6

are flow charts


400


,


500


depicting the operation of the controller


112


and the SCU


122


for solving this problem according to the present invention. Directing attention to

FIG. 5

, flow chart


400


depicts programmed instructions of the controller


112


which are stored in the mass media


214


.




The flow chart


400


begins with step


402


where the controller


112


receives a plurality of messages from at least one caller using the PSTN


110


. The messages are designated for transmission to one or more SCU's


122


in the messaging system as directed by the callers. In step


404


, the controller


112


determines a plurality of message length commands each indicative of a message length of a corresponding one of the plurality of messages. In an alternative embodiment, the controller


112


is further programmed to determine a message priority level for each message to be included as part of the message length command. The example illustrated in

FIG. 5

relates to the case where a plurality of message length commands are transmitted to an SCU


122


corresponding to a plurality of messages. It will be appreciated that a message length command is also transmitted for a single message pending transmission to an SCU


122


.




The priority level can, for example, be set on the basis of the urgency of the message, or can be set by the controller


112


, depending on a priority algorithm selected by the user of the designated SCU


122


. One embodiment of the algorithm can be, for example, setting a high priority level for messages received from callers designated as important by the user, and a low priority level for other messages received from other callers.




Proceeding to step


406


, the controller


112


directs the base stations


116


to transmit the plurality of message length commands to the corresponding SCU's


122


. In an alternative embodiment, each message length command is transmitted in a corresponding one of a plurality of message fragments, each message fragment corresponding to a first message fragment of a corresponding one of the plurality of messages. The remaining portion of each of the plurality of messages is transmitted in the message fragments of step


412


. This embodiment helps to reduce the overhead of sending the plurality of message length commands separate from the message fragments.




In step


407


, the controller


112


subdivides the plurality of messages into message fragments and designates the order of their transmission to make the best use of available system bandwidth. Thereafter, the controller


112


, in step


408


, waits for a predetermined amount of time before transmitting the message fragments in step


412


. The expiration of time is determined in step


410


.




This delay, as will become apparent in flow chart


500


of the SCU


122


, is used to provide the SCU


122


enough time to properly process the message length commands, and in some instances, to provide the user of the SCU


122


time to purge stored messages in order to make room for incoming messages. It will be appreciated that, alternatively, the controller


112


can skip steps


408


and


410


when it is determined that user interaction is not a programmable feature of the SCU


122


, and the SCU


122


operates fast enough to perform memory management before messages are received by it.




Once the predetermined delay has expired, the controller


112


directs the base stations


116


to transmit to designated SCU's a predetermined number of interspersed message fragments, each message fragment corresponding to a portion of the plurality of messages. At this point, the controller


112


has completed its efforts to transmit the plurality of messages to the designated SCU's


122


. The controller


112


then proceeds to step


402


for further processing of messages from callers.




Now directing attention to

FIG. 6

, flow chart


500


depicts programmed instructions of the SCU


122


which are stored in the memory


318


. Flow chart


500


begins with step


502


where the SCU


122


receives at least one message length command from the base stations


116


. Each message length command is indicative of a total message length and a priority level of a message pending transmission from the messaging system. The SCU


122


preferably processes the message length commands in the order they arrive. Each command is processed by the SCU


122


until the capacity of the memory


318


has been exhausted. Once this happens, if any unprocessed commands are present, the SCU


122


will designate messages corresponding to those commands as unstorable, and will therefore disallow decoding of them when they arrive.




In accordance with the alternative embodiment described above for programming step


406


of the controller


112


, the SCU


122


receives the message command in a message fragment which corresponds to a first message portion of the message. This embodiment helps to reduce system overhead. However, in the situation where a large number of first message fragments are received, the SCU


122


may potentially run out of memory to store the first portions of messages transmitted by the messaging system, and an undesirable situation of partial message reception may occur. Hence, in messaging systems with heavy traffic it is preferable to receive the message length commands from the messaging system separate from message fragments of messages.




In step


504


, the SCU


122


determines whether any stored messages have been designated as erasable by the user of the SCU


122


. The SCU


122


further determines, in step


506


, whether there are any stored messages with a lower priority level than the message pending transmission from the messaging system, the priority level preferably being derived from the messaging system which originally transmitted a priority level with the message which is now stored.




Alternatively, the priority level of each stored message can be set by the user of the SCU


122


by way of the user interface


321


based on the type of messages stored, e.g., setting a high priority level for business news messages, and a lower priority level for sports news messages. Such a setting can be programmed by the user once; thereafter, priority levels would be set automatically. Yet another approach would be for the user to set a priority level for designated stored messages such that pending messages always have higher priority. Hence in this embodiment, the designated stored messages would always be deleted, because they have a lower priority level than the pending message(s).




At the completion of steps


504


and


506


, the SCU


122


automatically designates stored messages erasable based on the messages selected in those steps. In step


508


, the SCU


122


makes its first determination of whether there is sufficient memory available to receive the pending message according to the results of steps


504


and


506


. This determination is made from calculating available memory space from the amount of memory freed by stored messages designated as erasable and unused memory space.




If the total message length of the pending message is equal to or less than the available memory space, then the SCU


122


proceeds to step


512


and reserves memory space equivalent to the total message length. Completion of this step represents the deletion of the designated messages. Hence, at this point the user of the SCU


122


will not be capable of retrieving the erased messages for future use. When the message is finally received, it is stored in the memory


318


and the user is alerted, in step


524


. The SCU


122


will at some point between steps


512


and


524


proceed to step


502


if there are further unprocessed message length commands while it is waiting to receive the pending message(s) from the messaging system. This form of parallel functionality is performed by conventional programming techniques applied to the processor


310


performing the programming steps of flow chart


500


.




If in step


510


it is determined that there is insufficient memory space, the SCU


122


proceeds to step


516


where it alerts the user of the SCU


122


, by way of the alerting device


322


, seeking the user's assistance to purge stored messages in order to further free up memory space. The user is given a predetermined time to purge stored messages. This step provides the reason for the controller


112


delaying transmission of the message fragments in steps


408


and


410


. It will be appreciated that, alternatively, the SCU


122


can skip step


516


, and instead be programmed to ignore the reception of messages when steps


504


and


506


fail to provide adequate memory space for storage. In this embodiment, programming steps


408


and


410


of the controller


112


would not be necessary.




In an alternative embodiment, step


516


can be eliminated or accompanied by the step of (not shown in the flow chart


500


) transferring messages to the peripheral device


326


if it is coupled to the SCU


122


at the time the SCU


122


is searching for means to free up memory space. If the peripheral device


326


has sufficient memory to store messages from the SCU


122


, then the SCU


122


will make a transfer of stored messages, and proceed to step


524


for storing the pending message when it arrives. Utilizing the memory


328


of the peripheral device


326


provides the additional feature of protecting the user from the step of deleting stored messages that the user may at a later time find useful.




Assuming this is not the case, the SCU


122


proceeds to step


518


when it detects the arrival of the pending message. In step


520


, the SCU


122


determines whether there, is sufficient memory space to store the message based on the user's interaction in step


516


. If not, the SCU


122


proceeds to step


526


where it ignores the message. Otherwise, the SCU


122


proceeds from step


522


to step


524


where it stores the message and alerts the user. As before, the SCU


122


will at some point between steps


516


and


518


proceed to step


502


if there are further unprocessed message length commands.




As the above discussions illustrate, the present invention provides a method for SCU's


122


to avoid partial message decoding. This is accomplished by transmitting a message length command to the SCU


122


prior to sending a corresponding set of message fragments representative of a message generated by a caller. Although at first glance it may seem that sending message length commands could have an adverse effect on bandwidth utilization, an evaluation of the performance of the SCU's in the aggregate provides a different conclusion. This is primarily due to the reduced need for callers and users (receiving partial decoded messages) having to request retransmission of messages that were not properly received by the SCU's


122


.




By informing the SCU's


122


of the length of a message before it is received, the SCU's


122


can make every attempt possible to provide storage room for the message prior to its reception. Such attempts include, as described above, detection of messages designated as erasable by the user of the SCU


122


, automatically designating as erasable stored messages with a lower priority level than the message pending transmission, and, in the worst case situation, alerting the user to purge stored messages. Only after all these attempts have been exhausted will the SCU


122


ignore reception of a message it cannot store. More often than not, however, the SCU


122


will have memory space available for storing an incoming message after implementing the method of the present invention.



Claims
  • 1. In a selective call unit that receives a sequence of interspersed message fragments transmitted by a messaging system, a method for optimizing memory utilization of the selective call unit, the method comprising in the selective call unit the steps of:receiving a message length command from the messaging system indicating a total message length of a message, said message including a plurality of interspersed message fragments, pending transmission from the messaging system; determining whether there is sufficient memory available in the selective call unit according to the message length command; reserving memory space equivalent to the total message length for receiving the message when the total message length is equal to or less than available memory space; and disallowing reception of the message when the total message length is greater than available memory space.
  • 2. The method as set forth in claim 1, wherein the message length command is included in a first message fragment corresponding to a first message portion of the message.
  • 3. The method as set forth in claim 1, further comprising the step of receiving from a user of the selective call unit a selection of stored messages designated to be erasable.
  • 4. The method as set forth in claim 3, wherein the step of determining available memory space is calculated from an amount of memory freed by stored messages designated as erasable and unused memory space.
  • 5. The method as set forth in claim 1, the message length command further indicating a priority level of the message pending transmission.
  • 6. The method as set forth in claim 5,wherein each message stored in the selective call unit includes a message priority level originally transmitted by the messaging system; the selective call unit further including the steps of: automatically selecting stored messages with a lower priority level than the message pending transmission, and designating selected messages to be erasable; and determining available memory space from an amount of memory freed by stored messages designated as erasable and unused memory space.
  • 7. The method as set forth in claim 5, further comprising the steps of:receiving from a user of the selective call unit a priority level for each message stored in the selective call unit; automatically selecting stored messages with a lower priority level than the message pending, and designating selected messages to be erasable; and determining available memory space from an amount of memory freed by stored messages designated as erasable and unused memory space.
  • 8. The method as set forth in claim 1, further comprising the step of alerting a user of the selective call unit to purge stored messages within a predetermined time to make room for the message pending transmission.
  • 9. The method as set forth in claim 1, the selective call unit further including the step of transferring stored messages in the selective call unit to a peripheral device having memory coupled to the selective call unit to make room for the message when available memory space is insufficient to store the message.
  • 10. In a selective call unit that receives a sequence of interspersed message fragments transmitted by a messaging system, a method for optimizing memory utilization of the selective call unit, the method comprising in the selective call unit the steps of:receiving a message length command from the messaging system indicative of a total message length and a priority level of a message, said message including a plurality of interspersed message fragments, pending transmission from the messaging system; determining whether there is sufficient memory available in the selective call unit according to the total message length and according to stored messages each having a message priority level, the determining step including the steps of: automatically selecting stored messages with a lower priority level than the message, and designating selected messages to be erasable, and determining available memory space from an amount of memory freed by stored messages designated as erasable and unused memory space; reserving memory space equivalent to the total message length for receiving the message when the total message length is equal to or less than available memory space; alerting a user of the selective call unit to purge stored messages within a predetermined time to make room for the message when the total message length is greater than available memory space; and disallowing reception of the message when, after completing the steps of automatically designating stored messages erasable and the user purging stored messages, the total message length is greater than available memory space.
  • 11. A messaging system for transmitting to a selective call unit a sequence of interspersed message fragments, the messaging system comprising:a caller interface for receiving a plurality of messages from a caller communicating with the messaging system, the plurality of messages are designated for transmission to the selective call unit as directed by the caller; a transmitter for transmitting information to the selective call unit; a controller couple to the caller interface and coupled to the transmitter for controlling operations of the messaging system, wherein the controller is programmed to: determine a plurality of message length commands each indicative of a message length of a corresponding one of the plurality of messages; and cause the transmitter to transmit, to the selective call unit, the plurality of message length commands, and a predetermined number of interspersed message fragments corresponding to a portion of the plurality of messages; the selective call unit further comprising: a receiver for receiving a message length command, from the plurality of message length commands, indicative of the message length of a corresponding one of the plurality of messages; a memory for storing messages received from the messaging system; and a processor coupled to the memory and coupled to the receiver for controlling operations of the selective call unit, and for determining whether there is sufficient memory available for receiving the corresponding one of the plurality of message according to the message length command, wherein the processor is programmed to: reserve memory space in the memory equivalent to the total message length for receiving the corresponding one of the plurality of message when the total message length is equal to or less than available memory space, and disallow reception of the message when the total message length is greater than available memory space.
  • 12. A messaging system for transmitting to at least one selective call unit sequence of interspersed message fragments, the messaging system comprising:a caller interface for receiving a plurality of messages from at least one caller communicating with the messaging system, the plurality of messages are designated for transmission to the at least one selective call unit as directed by the at least one caller; a transmitter for transmitting information to the at least one selective call unit; a controller couple to the caller interface and coupled to the transmitter for controlling operations of the messaging system, wherein the controller is programmed to: determine a plurality of message length commands each indicative of a message length of a corresponding one of the plurality of messages; and cause the transmitter to transmit, to the at least one selective call unit, the plurality of message length commands, and a predetermined number of interspersed message fragments corresponding to a portion of the plurality of messages, wherein each message length command is transmitted in a corresponding one of a plurality of message fragments, each message fragment corresponding to a first message fragment of a corresponding one of the plurality of messages, and wherein the predetermined number of interspersed message fragments comprise a subsequent set of message fragments to complete transmission of the plurality of messages.
  • 13. In a messaging system having a transmitter for transmitting to a selective call unit a sequence of interspersed message fragments, a method for optimizing memory utilization of the selective call unit, the method comprising in the messaging system the steps of:receiving a plurality of messages from a least one caller communicating with the messaging system, the plurality of messages pending transmission to the selective call unit; determining a plurality of message length commands each indicative of a message length of a corresponding one of the plurality of messages; and causing the transmitter to transmit, to the selective call unit, the plurality of message length commands, and a predetermined number of interspersed message fragments corresponding to a portion of the plurality of messages, wherein each message length command is transmitted in a corresponding one of plurality of message fragments, each message fragment corresponding to a first message fragment of a corresponding one of the plurality of messages, and wherein the predetermined number of interspersed message fragments comprise a subsequent set of message fragments to complete transmission of the plurality of messages.
  • 14. A selective call unit that receives a sequence of interspersed message fragments transmitted by a messaging system, the selective call unit comprising:a receiver for receiving a message length command from the messaging system indicating a total message length of a message, said message including a plurality of interspersed message fragments, pending transmission from the messaging system; a memory for storing messages received from the messaging system; and a processor coupled to the memory and coupled to the receiver for controlling operations of the selective call unit, and for determining whether there is sufficient memory available for receiving the message according to the message length command, wherein the processor is programmed to: reserve memory space in the memory equivalent to the total message length for receiving the message when the total message length is equal to or less than available memory space, and disallow reception of the message when the total message length is greater than available memory space.
US Referenced Citations (5)
Number Name Date Kind
4868560 Oliwa Sep 1989 A
5225826 DeLuca Jul 1993 A
5412719 Hamamoto May 1995 A
5473320 Deluca et al. Dec 1995 A
5488359 Faris Jan 1996 A