Sign In to Follow Application
View All Documents & Correspondence

Data Processing Based On Triple Base Numbers

Abstract: The subject matter described herein is directed to a computer implemented method for reducing memory usage. The method includes computing by a processor (102) a first 3-integer which is largest of 3-integers less than or equal to an input data. Further, exponents corresponding to the first 3-integer are in a range of zero to floor of logarithm of the input data in base 5 and stored in a memory (106). Further, a first difference between the input data and the first 3-integer is ascertained. A maximum value for an exponent of each base of a next 3-integer is determined. The method further comprises computing by the processor (102) the next 3-integer nearest to the first difference with exponents corresponding to the next 3-integer in a range of zero to the maximum value of the corresponding base.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
28 June 2011
Publication Number
01-2013
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

TATA CONSULTANCY SERVICES LIMITED
NIRMAL BUILDING, 9TH FLOOR, NARIMAN POINT, MUMBAI 400021, MAHARASHTRA, INDIA

Inventors

1. NATARAJAN, VIJAYARANGAN
TATA CONSULTANCY SERVICES ST. NO. 164181, MODULE: A0-20, NO. 226, RAJIV GANDHI SALAI, KUMARAN NAGAR, SHOLINGANALLUR CHENNAI 600119, INDIA

Specification

FORM 2
THE PATENTS ACT, 1970 (39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
(See section 10, rule 13)
1. Title of the invention: DATA PROCESSING BASED ON TRIPLE-BASE NUMBERS
2. Applicant(s)
NAME NATIONALITY ADDRESS
TATA CONSULTANCY Indian Nirmal Building, 9th Floor, Nariman Point
PERVICES LIMITED Mumbai 400021, Maharashtra, India
3. Preamble to the description
COMPLETE SPECIFICATION
The following specification particularly describes the invention and the manner in which it is to be performed.

TECHNICAL FIELD
The present subject matter, in general, relates to data processing and, in particular,
to data processing based on triple-base numbers.
BACKGROUND
Real-time applications, such as digital signal processing and security applications,
may be computationally complex as they require processing large data. Typically, the processors are configured to process data, such as numerical data, in the form of bits.
Numerical data is generally represented using various number systems. The
number systems provide a unique representation to every number and an algebraic structure for the numbers. Traditional Single-Base Number Systems (SBNS), such as binary, octal, decimal, and hexadecimal systems, include one base only, for example, the base is 2 for binary numbers, 8 for octal numbers, 10 for decimal numbers, and 16 for hexadecimal numbers.
In recent years, Double-Base Number System (DBNS) and Triple-base Number
System (TBNS) have been introduced for various applications which generally involve large numbers and complex calculations. The DBNS takes two bases, whereas the TBNS takes three bases to represent a number. Generally, first few prime numbers (2, 3, 5, 7...and so on) can be chosen as the bases for the DBNS and the TBNS. A typical DBNS representation for integer 127 can be 2233 + 2'32 + 2°3° or 2233 + 243° + 2°3' or 253J + 2°33 + 223°. Similarly, a typical TBNS representation for the integer 127 can be 2°3°53 +2'3°5° or22335°+ 2'325° + 2°305°.
Clearly, these representations are highly redundant as one integer can have
multiple TBNS representations. The TBNS representations with the minimum number sets of 3-^ntegers (2a3b5c) are called optimum TBNS representations as they consume fewer bits. Finding the optimum TBNS representation from various possible TBNS representations may be a time and resource consuming process, for example, integer 127 can have multiple TBNS representations, among which only one is optimum representation, i.e., 2°3°53 + 213°5° having only two 3-integers.
Many theoretical approaches have been proposed for representing a number in the
TBNS representations. One of such approaches involves using lookup tables with a specific addressing scheme. In real-time applications, such as digital signal processing and security

applications, such lookup tables based solutions become unrealistic to implement because the real-time applications generally involve large numbers and complex calculations.
SUMMARY
This summary is provided to introduce concepts related to data processing based
on triple-base numbers. These concepts are further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter nor is it intended for use in determining or limiting the scope of the claimed subject matter.
The subject matter described herein is directed to a computer implemented
method for reducing memory usage. The method includes computing a first 3-integer which is largest of 3-integers less than or equal to an input data. Further, exponents corresponding to the first 3-integer are in a range of zero to floor of logarithm of the input data in base 5, and stored in a memory. Further, a first difference between the input data and the first 3-integer is ascertained. A maximum value for an exponent of each base of a next 3-integer is determined. The method further includes computing the next 3-integer nearest to the first difference with exponents corresponding to the next 3-integer in a range of zero to the maximum value of the corresponding base.
BRIEF DESCRIPTION OF THE DRAWINGS
The detailed description is provided with reference to the accompanying figures.
In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
Fig. 1 illustrates components of a data processing system, in accordance with an
implementation of the present subject matter.
Fig. 2 illustrates a method for processing data, in accordance with an
implementation of the present subject matter.
DETAILED DESCRIPTION
The present subject matter relates to methods and systems for data processing
based on triple-base numbers.

In recent years, the Triple-base Number System (TBNS) has proved to be
efficient in applications involving large numbers and complex calculations, such as digital signal processing (DSP), data security, and data compression. The efficiency of the TBNS is due to the fact that a TBNS representation generally utilizes fewer bits as compared to a traditional Single-Base Number Systems (SBNS) representation of a number or even a Double-Base Number System (DBNS) representation. Thus, processing systems which are based on the TBNS could be preferred for certain complex operations.
In addition, the TBNS has proved to be efficient in executing arithmetic
operations, such as addition, subtraction, and multiplication. Efficiency in executing the arithmetic operations allows the TBNS to be useful for effectively solving mathematical problems, particularly in real-time applications, such as digital signal processing (DSP), data security, and data compression. The arithmetic operations are generally executed by processors provided in various devices running the real-time applications. For example, processors provided in a filter bank of a cellular communication device may be configured to perform the arithmetic operations. However, the processors based on the TBNS generally have high hardware complexity and increased latency in cases of large bit size data.
Recent advances in the DSP require processors capable of high speed processing
of signal data in real-time with a high degree of adaptability. In addition, minimization of energy consumption and chip area are desired for increasing efficiency of the processors required for the real-time applications, such as DSP. Further, the processors execute arithmetic operations, such as multiplication and addition, thus major design requirements relate to enhancement of the processor's capability to execute the arithmetic operations. Additionally, executing the arithmetic operations include, apart from processing numbers, converting the numbers from their standard representation to the TBNS representation before being processed and converting back to the standard representation after being processed, thus increasing the computation time and complexity,
In an implementation, according to the present subject matter, systems and
methods for data processing based on triple-base numbers are described. In one example, the method for data processing may be implemented in a hardware device, such as processors; a data processing program running on a computing system; or a combination thereof. For example, the

method for data processing may be implemented on a computing system for computing elliptic curve cryptography (ECC) scalar multiplication, whereas for filter bank designs in mobile handsets and hearing aids. The method for data processing may be implemented using various hardware components, such as adders, shifters, sign correctors, and generators.
In one implementation, input data is received by a data processing system for
processing. The input data, say an integer, is then converted from its standard representation to the TBNS representation in the form Σ2a3b5c, i.e., as a sum of one or more 3-integers of the form 2a3b5c. Generally, first few prime numbers can be chosen as bases of the TBNS representation. For example, prime numbers 2, 3, and 5 can be chosen as the bases for the TBNS representation.
In an implementation, a first 3-integer which is largest of 3-integers less than or
equal to the input data is computed. The first 3-integer includes exponents in a range from zero to floor of logarithm of the input data in the base 5. Further, the exponents corresponding to the first 3-integer are stored in a memory, such as a stack memory. In mathematics and computer science, the floor function maps a real number to the largest integer not greater than the real number. Consider an example where the input data is 37, then floor of logarithm of the input data 37 in the base 5 is 2, therefore the first 3-integer which is largest of 3-integers less than or equal to the input data 37 will include exponents in a range from zero to 2. In said example, the first 3-integer which is largest of 3-integers less than or equal to the input data 37is2,3'5I, i.e.,30 and exponents {111} will be stored in the memory.
In said implementation, a first difference between the input data and the first 3-
integer is ascertained. In the above mentioned example, the first difference between the input data 37 and the first 3-integer 213151, i.e., 30 is 7.
In said implementation, if the first difference is non-zero, then a maximum value
for an exponent of each base of a next 3-integer of the TBNS representation is determined. The maximum value is defined by a minimum of a stored exponent of corresponding base and floor of logarithm of the first difference in the base 5. Accordingly, the maximum value for exponents of next 3-integer are defined as:
Maximum value of a(n) = min {(a(n-l), Floor [Logs (first difference)]}
Maximum value of b(n) = min {(b(n-l). Floor [Log5 (first difference)]}

Maximum value of c(n) = min {(c(n-l), Floor [Log5 (first difference)]}
Here, a(n), b (n), and c(n) are exponents of base 2, base 3, and base 5 respectively of the next 3-integer. In the above mentioned example, the maximum values of exponents corresponding to the next 3-integer are defined by the stored values {111} and the first difference of 7 as indicated below:
Maximum value of a(n) = min {1,1+ Floor [Log5 7]} = min {1, 1} = 1
Maximum value of b(n) = min {1,1+ Floor [Log5 7]} = min {.1, 1} = 1
Maximum value of c(n) = min {1,1 + Floor [Log57]} = min {1, 1} = 1
In said implementation, if the first difference is non-zero, then the next 3-integer
nearest to the first difference is computed with exponents in a range of zero to the maximum value of the corresponding base. In the above mentioned example, the next 3-integer nearest to the first difference of 7 is 213150 , i.e., 6 with all exponents in range of 0 to 1. The exponents of the next 3-integer are also stored in the memory, such as the previously discussed stack memory. In the above mentioned example, exponents {110} of the next 3-integer 213150 nearest to the difference of 7 are stored in the memory.
In said implementation, a next difference between the first difference and the next
3-integer is ascertained. In the above mentioned example, the next difference between the first
difference 7 and the next 3-integer 21315°. i.e., 6, is 1. When the next difference is non-zero, the
next difference is assigned as the first difference to create a loop that keeps on computing the
next 3-integers till the next difference becomes zero. In the above mentioned example, the next
difference of 1 becomes the first difference and the next 3-integer corresponding to 1 is
computed, which is 2°3°50 based on determined maximum values. Like the previous exponents,
exponents {000} are also stored in the stack memory. In the end, the TBNS representation of the
input data can be obtained from the stack memory. In the above mentioned example, the TBNS
representation for the input data 37 as obtained from the stack memory is {111} {110} {000}. As
can be observed, in the above mentioned example, the systems and methods, according to the
present subject matter, generate triple-base numbers with a decreasing order of exponents, which
are useful in applications like ECC scalar multiplication, Very-large-scale integration (VLSI)
design, Inner-product computation unit, Mobile hardware platforms, etc.

With reduction in bits required to represent numbers, the systems and methods,
according to the present subject matter, can be utilized for encoding and decoding in data compression techniques to compress data into a smaller size and thus achieve a high compression ratio.
The systems and methods, according to the present subject matter, can also be
utilized to design TBNS based processors that can be 8 times smaller than equivalent binary processors. As a result, power consumption can be reduced by at least 50% as compared to binary processors. In one implementation, the power consumption can be reduced by at least 66% as compared to the binary processors. The TBNS based processors can be utilized to improve the performance of filter-bank design in mobile handsets, hearing aid instruments and other similar tiny devices where chip area is a major design consideration.
In applications, such as linear and non-linear filtering and ECC scalar
multiplication, the systems and methods, according to the present subject matter, help in reducing the complexity and time involved in executing the arithmetic operations as the processors now need to execute the arithmetic operations using less number of bits. For example, for multiplying two numbers represented in the form of the TBNS, say 2a3b5c and 2d3e5f, the processors simply need to add exponents corresponding to a common base. In the above example, the processor needs to add 'a' with 'd', 'b'with 'e' and 'c' with 'f' to compute the multiplication as 2a+d3b+c5c+f. Similarly, for dividing two numbers represented in the form of the TBNS, the processors simply need to subtract exponents corresponding to the common base.
Although aspects of the systems and methods for data processing based on triple-
base numbers have been described using examples of prime base 2, 3, and 5. it is to be ^understood that the invention is not necessarily limited to said prime bases only. The invention according the present subject matter can be easily implemented for any other three prime bases, such as prime base 2, 3, and 7, or prime base 2, 3, and 11.
While aspects of systems and methods for data processing based on triple-base
numbers can be implemented in any number of different computing systems, environments, and/or configurations, the implementations are described in the context of the following exemplary system architecture(s).

Fig. 1 illustrates a data processing system 100 in accordance with an
implementation of the present subject matter. Examples of the data processing system 100 include, but are not limited to, computing devices such as mainframe computers, workstations, personal computers, desktop computers, minicomputers, servers, multiprocessor systems, and laptops; cellular communicating devices such as personal digital assistants, smart phones, and mobile phones; DSP based devices, such as hearing aid devices; and the like.
The data processing system 100, hereinafter referred to as the system 100,
includes one or more processor(s) 102, I/O interface(s) 104, and a memory 106 coupled to the processor 102. The processor 102 can be a single processing unit or a number of processing units, all of which could also include multiple computing units. The processor 102 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor 102 is configured to fetch and execute computer-readable instructions and data stored in the memory 106.
Functions of the various elements shown in the figures, including any functional
blocks labeled as "processor(s)", may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term "processor" should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non volatile storage. Other hardware, conventional and/or custom, may also be included. Further, the processor 102 may include various hardware components, such as adders, shifters, sign correctors, and generators required for executing various applications such as arithmetic operations.
The I/O interface(s) 104 may include a variety of software and hardware
interfaces, for example, interface for peripheral device(s), such as a keyboard, a mouse, an

external memory, and a printer. Further, the I/O interface(s) 104 may enable the system 100 to communicate with other computing devices, such as a personal computer, a laptop, and the like,
The memory 106 may include any computer-readable medium known in the art
including, for example, volatile memory such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. The memory 106 also includes modules 108 and data 110.
The modules 108 include routines, programs, objects, components, data
structures, etc., which perform particular tasks or implement particular abstract data types. The modules 108 further include a first 3-integer module 112, a first difference module 114, a maximum value module 116, a next 3-integer module 118, a next difference module 120, and other module(s) 122. The other module(s) 122 may include programs or coded instructions that supplement applications and functions of the system 100.
On the other hand, the data 110, amongst other things, serves as a repository for
storing data processed, received, and generated by one or more of the modules 108. The data 110 includes, for example, input data 124, first 3-integer data 126, first difference data 128, maximum value data 130, next 3-integer data 132, next difference data 134, exponents data 136, and other data 138. The other data 138 includes data generated as a result of the execution of one or more modules in the other module(s) 122.
In one implementation, the system 100 receives the input data. The input data, for
example, in form of a number or combination of numbers, could represent any type of data, such as audio-video data and document data. The system 100, in one example, is configured to process data required in various real-time applications like data security, digital signal processing (DSP), data compression, etc. The system 100 is further configured to provide data based on the TBNS representation to be utilized in the real time applications.
In one implementation, the system 100 may be a cryptography system configured
to process the input data, such as a private key or a public key represented in the form of numbers, to obtain cryptographic data such as digital signatures based on the TBNS representation. Using the TBNS representation, in the cryptography system, reduces

computational time and resources as the TBNS representation utilizes fewer bits to represent data.
In one implementation, the system 100 may be a mobile phone and the processor
102 may be configured to implement a signal processing filter for processing voice data based on the TBNS representation. Using the TBNS representation, in the mobile phones improves its efficiency and response time as the TBNS representation utilizes fewer bits to represent data.
In one implementation, the system 100 may be a system of ECC scalar
multiplication configured to compute an integer multiple of an element in additive group on an elliptic curve, i.e., to compute K*P for any integer K and a point P on the elliptic curve. Using the TBNS representation for ECC scalar multiplication reduces computational complexity involved therein,
In an example, an integer is a 3-integer if all of its prime divisors are among the
first 3 prime numbers, i.e., 2, 3, and 5. The 3-integer is represented as 2a3b5c and is a single summand of a typical TBNS representation given below:
The system 100 processes the input data to provide a TBNS representation in the
form Σ2a3b5c, i.e., as a sum of one or more 3-integers of the form 2a3b5c. In one implementation.
the sequence of exponents (a, b, c) has to satisfy the condition: a1 > a2 > an > 0, b1 > b2 >
...bn> 0, and c1 > c2 > cn > 0. Consequently, (a b c) are the maximum possible values for
any given integer.
The first 3-integer module 112 receives the input data. In one implementation, the
.first 3-integer module 11.2 stores the input data in the input data 124, Further, the first 3-integer module 112 computes the first 3-integer which is largest of 3-integers Jess than or equal to the input data with exponents corresponding to the first 3-integer in a range from zero to floor of logarithm of the input data in the base 5. In one implementation, the first 3-integer module 112 stores the first 3-integer in the first 3-integer data 126. In one implementation, the first 3-integer module 112 is configured to store values of exponents (al, bl, cl) corresponding to the first 3-integer in the exponents data 136.

Since the first 3-integer serves as a largest 3-integer of the TBNS representation,
therefore, keeping the first 3-integer less than or equal to the input data helps in decreasing the memory consumption in small processors. Further, in processors, such as a 64 bit processor, computing the first 3-integer less than the input data will consume less memory as compared to memory consumed by the first 3-integer greater than the input data. For example, a 63-bit integer n = 9223372036854775806 may be expressed as a difference of a 64-bit number (9223372036854775808) and 2, i.e., 9223372036854775808 - 2 = 263 -2. Computing such a representation that exceeds 64 bit computation requires the use of a multi-precision integer arithmetic (MIA) library. However, using the MIA library for computations consumes more memory and power, which may not suitable for tiny hardware processors, such as processors used in hearing aids. Thus, the first 3-integer is always computed as a largest 3-integer less than or equal to the input data.
Consider an example where the input data is 81, then floor of logarithm of the
input data 81 in the base 5 is 2, therefore the first 3-integer which is largest of 3-integers less than or equal to the input data 81 will include exponents in a range from zero to 2. In said example, the first 3-integer which is largest of 3-integers less than or equal to the input data 81 with exponents in the range of zero to 2 is 203152, i.e.,. 75. Further, the exponents {012} are stored in the memory, for example, in the exponents data 136.
Upon computation of the first 3-integer, the first difference module 114 ascertains
the first difference between the input data and the first 3-integer. In one implementation, the first difference module 114 subtracts the first 3-integer from the input data in order to obtain the first difference. For example, the first difference module 114 ascertains a first difference between the input data 81 and the first 3-integer 203l50, i.e., 75 as 6. In one implementation, the first difference module 114 stores the first difference in the first difference data 128.
When the first difference is non-zero, then the maximum value module 116
determines the maximum value for an exponent of each base of the next 3-integer of the TBNS representation. In one implementation, the maximum value module 116 stores the maximum value in the maximum value data 130. In one implementation, the maximum value is defined by a minimum of a stored exponent of corresponding base and floor of logarithm of the first

difference in the base 5. For example, the maximum values for exponents of the next 3-integer are defined as:
Maximum value of a(n) = min {(a(n-l), Floor [Log5 (first difference)]}
Maximum value of b(n) = min {(b(n-l), Floor [Log5 (first difference)]}
Maximum value of c(n) = min {(c(n-l), Floor [Log5 (first difference)]}
Here, a(n), b (n), and c(n) are exponents of base 2, base 3, and base 5 respectively of the next 3-integer. In the above mentioned example, the maximum values of exponents corresponding to the next 3-integer are defined by the stored values {012} and the first difference of 6 as indicated below:
Maximum value of a(n) = min {0, 1 + Floor [Logs 6]} - min {0, 1} = 0
Maximum value of b(n) = min {1,1+ Floor [Logs 6]} = min {1, 1} = 1
Maximum value of c(n) = min {2, 1 + Floor [Logs 6]} = min {2,1} = When the first difference is non-zero, then the next 3-integer module 118
computes the next 3-integer nearest to the first difference with exponents in a range of zero to the maximum value of the corresponding base as provided by the maximum value module 116. In the above mentioned example, the next 3-integer nearest to the first difference of 6 is 2°3°51, i.e., 5 with exponents in range of 0 to 0, 0 to 1, and 0 to 1. In one implementation, the next 3-integer module 118 stores the next 3-integer in the next 3-integer data 132. In one implementation, the next 3-integer module 118 stores exponent of each base of the next 3-integer in the exponents data 136. In the above mentioned example, exponents {001} of the next 3-integer 203051 nearest to the first difference of 6 are stored in the exponents data 136. In one implementation, the next 3-integer module 118 may compute the next 3-integer based on predefined computation rules such as computing 3-integers which are non-repeating, i.e., a set of already stored exponents is not repeated in the TBNS representation of the input data.
Further, the next difference module 120 ascertains the next difference between the
first difference and the next 3-integer. In the above mentioned example, the next difference between the first difference 6 and the next 3-integer 2°3°51, i.e., 5, is 1. In one implementation, the next difference module 120 stores the next difference in the next difference data 134. When the next difference is non-zero, the next difference can be taken as the first difference for

computing the next 3-integer. The cycle is repeated again with the next difference take as the first difference. In the above mentioned example, 1 is assigned as the first difference to create a loop that keeps on computing the next-n integers till the next difference becomes zero. In this way, the TBNS representation with decreasing order of exponents for input data 81 is 2 3 5 + 2°3°51 +203050, i.e., 75+5+1. As can be observed, in the above mentioned example, the systems and methods, according to the present subject matter, generate triple-base numbers with a decreasing order of exponents, which are useful in applications like ECC scalar multiplication. VLSI design, Inner-product computation unit, Mobile hardware platforms, etc.
In an implementation, the TBNS representation can be in the form(2al3bl5cl) +
(2a23b25c2) +. ..(2an3bn5cn). In such a case, sign data (not shown) may be used to keep track of the sign of a 3-integer (2a3b5c) of the TBNS representation. For this purpose, the processor 102 may include a sign corrector (not shown) or the system 100 may include a sign correction module (not shown) in the memory 106.
In one implementation, the next 3-integer can be greater than the first difference.
Consider an example, where the input data is 39, the first 3-integer which is largest of 3-integers less than or equal to 39 with exponents in determined range of 0 to 1 is 213151, i.e., 30; stored exponents are {111; first difference is 9; accordingly maximum allowed exponents for next 3-integer are 0 to 1; the next integer nearest to first difference 9 is 213°51, i.e., 10; and the next difference of 1 is assigned as the first difference. In this example, the first difference of 1 can be represented as 1 itself and thus the next 3-integer is 2°3°50, i.e., 1. In the end, the input data 39 can be represented as 2l3[5l + 2,3°51 -2°3°5°,i.e., 30+10-1.
In one implementation, the sign data may be stored along with the exponents. For
(instance in the example given below, negative sign of the 3-integer 2°3°5° can be stored as the sign data along with the exponents {000} as indicated below:
39 = 30+10-l=2l315I + 2l3°51 -2°3°5°= {111}{101 >-{000}
In an implementation, the other module(s) 122 may include an operations module
(not shown) to execute various arithmetic or other operations required for implementing the real-time applications. Once the TBNS representation of the input data is obtained from the memory 106, the operations module can execute the arithmetic operations, such as the ECC scalar multiplication required for generating digital signatures. For generating a digital signature,

typically a private key is multiplied with data such as identity information. When the TBNS representations for both the private key and the identity information are obtained, the operations module multiplies the private key and the identity information to obtain the digital signature in an efficient manner. Similarly, for the filter bank designs in mobile handsets and other tiny devices such as hearing aids, the operations modules may be configured to perform various operations, such as transmit, receive, generate, and modulate discrete time signals based on the TBNS representations of data involved therein. In another example, for performing data compression, the operations module may perform encoding and decoding of the data based on the TBNS representations.
In one implementation, the operations module is implemented in the processor
102 and may include various components, such as adders and sign shifters for executing the arithmetic operations. For instance, to compute multiplication of the private key 2a3b5c and the identity information 2d3e5, the operations module 'a' with 'd', :b' with :e', and 'c' with 'f' to give the result of multiplication as 2a+d3b+c5c+r. Similarly, for dividing two triple-base numbers, the processors simply need to subtract exponents corresponding to the common base. Using the TBNS representations thus helps in reducing the complexity and time involved in executing the arithmetic operations as the processors now need to execute the arithmetic operations using less number of bits.
In one implementation, the input data is converted such that the TBNS
representation is in decreasing order of exponents without repetition of the 3-integers, for example, integer 37 has a TBNS representation {111}{011}{000} in decreasing order of exponents without repetition of the 3-integers.
Further, computational complexity for converting the input data, say a positive
integer 'n', to the TBNS representation using the system 100 is at most O (log n/log log n). Additionally, converting the input data in the TBNS representation also reduces the memory size and resources required to convert and store the number as compared to the memory and resources utilized by the other number systems, such as the traditional SBNS, as the input data is stored using only bits corresponding to the values of the exponents 'a', 'b' and 'c' Reducing the overall memory space, resources, in turn reduces power required by the system 100.

Fig. 2 illustrates a method 200 for processing data, in accordance with an
implementation of the present subject matter. In one implementation, the method 200 is a TBNS conversion method implemented for converting an input data from a standard representation to a TBNS representation before being processed for real-time applications.
The exemplary method 200 may be described in the general context of computer
executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, and the like that perform particular functions or implement particular abstract data types. The method may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communication network. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
The order in which the method is described is not intended to be construed as a
limitation, and any number of the described method blocks can be combined in any order to implement the method, or an alternate method. Additionally, individual blocks may be deleted from the method without departing from the spirit and scope of the subject matter described herein. Furthermore, the method is not restricted to the present system 100 and can be implemented in any suitable hardware, software, firmware, or combination thereof.
At block 202, a first 3-integer which is largest of 3-integers less than or equal to
an input data is computed with exponents corresponding to the first 3-intger in a range from zero to floor of logarithm of the input data in a base 5. In one example, the exponents corresponding to the first 3-integer are stored in a memory. In one implementation, the input data is received by a data processing system, such as the system 100. Further, the input data may be data required in various real-time applications, such as data security, digital signal processing (DSP), and data compression. For example, for ECC scalar multiplication, the input data may be a private key, a public key, or identity information represented in the form of numbers. Similarly, for applications in DSP, such as for the filter bank design in mobile handsets, the input data may be discrete time signals represented by a sequence of numbers or symbols. In one implementation, exponents of the first 3-integer are stored in a memory, for example in the exponents data 136, for later retrieval. Consider an example where input data is 37, then a first 3-integer which is largest of 3-

integers less than or equal to input data 37 with exponents in a range zero to floor [logs 37], i.e., zero to 2, will be 213151, i.e., 30. In this example, exponents {111} of the first 3-integer 213151 are stored in the exponents data 136.
At block 204, a first difference between the input data and the first 3-integer is
ascertained. In one implementation, the first 3-integer is subtracted from the input data to ascertain the first difference, for example, 213l5l, i.e., 30 is subtracted from the input data 37 to ascertain the first difference equal to 7. In one implementation, the first difference module 114 ascertains the first difference between the input data and the first 3-integer. The first difference module 114 subtracts the first 3-integer from the input data in order to obtain the first difference.
At block 206, if the first difference is non-zero, then a maximum value for
exponent of each base of a next 3-integer of the TBNS representation is determined. The maximum value is defined by a minimum of a stored exponent of corresponding base and floor of logarithm of the first difference in the base 5. In one implementation, the maximum value module 116 determines the maximum value. In one example, for input data equal to 37, the first 3-integer is say, 2131S1, i.e., 30 and thus the first difference is 37-30, i.e., 7, Therefore, the maximum value for exponents of the next 3-integer is defined as:
Maximum value of a(n) = min {(a(n-l), Floor [Logs (first difference)]}
Maximum value of b(n) = min {(b(n-l), Floor [Log, (first difference)]}
Maximum value of c(n) = min {(c(n-l), Floor [Logs (first difference)]}
Here, a(n), b (n), and c(n) are exponents of base 2, base 3, and base 5 respectively of the next 3-integer and are defined by the stored values {111} and the first difference 7 as indicated below:
Maximum value of a(n) = min {1, Floor [Log5 7]} = min {1, 1} = 1
Maximum value of b(n) = min {I, Floor [Log5 7]} = min {1, 1} = 1
Maximum value of c(n) = min {1, Floor [Log5 7)]} = min {I, 1} = 1
At block 208, the next 3-integer nearest to the first difference is computed with
exponents in a range of zero to the maximum value. In this way, the exponents of the next 3-integer are computed in a predetermined range, and hence computation time is significantly reduced. In one implementation, the next 3-integer module 118 computes, if the first difference

is non-zero, the next 3-integer nearest to the first difference with exponents in a range of zero to the maximum value of the corresponding base. In one example, for the input data equal to 37, the first 3-integer is say, 213151, i.e., 30, the first difference is thus 37-30, i.e., 7, and thus exponents are in a range of {0 to 1, 0 to 1, and 0 to 1}. In this example, the next 3-integer nearest to the first difference of 7 and based on predetermined range is 213150, i.e., 6. In addition, exponents of each base of the next 3-integer are stored in the exponents data 136. In the above mentioned example, exponents {110} of the next 3-integer 213150 nearest to the first difference of 7 are stored in the exponents data 136.
In one implementation, the next 3-integer module 118 computes the next 3-integer
132 based on the predefined rules such as computing 3-integers which are non-repeating, i.e., a set of already stored exponents is not repeated in the TBNS representation of the input data. For example, if next 3-Integer nearest to 5 is 203051, i.e., 5 itself, but is already computed or stored. then preference may be given to say 22305 +203 5 , i.e., 4+1. In one implementation, the next 3-integer nearest to the first difference can be greater that the first difference. In said implementation, a sign data may be used to keep track of sign of a 3-integer (2a3b5c) of the TBNS representation. Consider an example, where input data is say 99; the first 3-integer is 21325I, i.e., 90 with exponents in a range 0 to 2; and accordingly maximum allowed exponents for next 3-integer are {111}. In this example, the first difference of 9 can be represented as 10-1 and thus the next 3-integer is 213051, i.e., 10 which is greater than the first difference 9. In the end, input data 99 can be represented as 213251 + 213051-2°3°50, i.e., 90+10-1.
At block 210, a next difference between the first difference and the next 3-integer
is ascertained. If the next difference is non-zero, then this next difference becomes the first difference and a loop is created that keeps on computing the next 3-integer till the next difference becomes zero. In one example, for input data equal to 37, the first 3-integer is say, 213151, i.e.. 30, the first difference is thus 37-30, i.e., 7, range of next exponents is {0 - 1, 0 - 1, 0 - 1}, and the next 3-integer is 213150 equal to 6. In said example, the next difference is 1 between the first difference 7 and the next 3-integer 213150, i.e., 6. In said example, the next difference of 1 becomes the first difference and the next 3-integer corresponding to 1 is computed, which is 2 3 5 based on determined maximum values. Like the previous exponents, exponents {000} are also stored in a memory. The TBNS representation of the input data can be obtained from the

memory. In the above mentioned example, the TBNS representation for the input data 37 as obtained from the memory is {111} {110} {000}.
As can be observed, the method 200 generates triple-base numbers with a
decreasing order of exponents, which are useful in applications like ECC scalar multiplication, VLSI design, Inner-product computation unit. Mobile hardware platforms, etc.
Although implementations for data processing based on triple-base numbers have
been described in language specific to structural features and/or methods, it is to be understood that the invention is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as exemplary implementations for the data processing based on triple-base numbers.

We Claim:
1. A computer implemented method for reducing memory usage comprising:
computing by a processor (102) a first 3-integer, wherein the first 3-integer is largest of 3-integers less than or equal to an input data, and wherein exponents corresponding to the first 3-integer are in a range of zero to floor of logarithm of the input data in base 5;
storing the exponents corresponding to the first 3-integer in a memory (106);
ascertaining a first difference between the input data and the first 3-integer;
determining a maximum value for an exponent of each base of a next 3-integer, wherein the maximum value is a minimum of the stored exponent of corresponding base and floor of logarithm of the first difference in the base 5; and
computing by the processor (102) the next 3-integer nearest to the first difference, wherein exponents corresponding to the next 3-integer are in a range of zero to the maximum value of the corresponding base.
2. The method as claimed in claim 1 further comprising:
storing the exponents corresponding to the next 3-integer in the memory (106);
ascertaining a next difference between the first difference and the next 3-integer; and
assigning the next difference as the first difference when the next difference is nonzero.
3. The method as claimed in claim 1, wherein the exponents corresponding to the next 3-integer include values other than values of the stored exponents.
4. The method as claimed in claim 1, wherein the next 3-integer is greater than the first difference.
5. The method as claimed in claim 1 further comprising executing arithmetic operations based on the stored exponents,
6. The method as claimed in claim 1 further comprising extracting the stored exponents from the memory (106) to represent the input data in a Triple-base Number System (TBNS) representation.
7. A system (100) comprising:
a processor(102); and

a memory (106) coupled to the processor (102), the memory (106) comprising:
a first 3-integer module (112) configured to compute a first 3-integer, wherein the first 3-integer is largest of 3-integers less than or equal to an input data. and wherein exponents corresponding to the first 3-integer are in a range of zero to floor of logarithm of the input data in base 5, and store the exponents corresponding to the first 3-integer in the memory (106);
a first difference module (114) configured to ascertain a first difference between the input data and the first 3-integer;
a maximum value module (116) configured to determine a maximum value for an exponent of each base of a next 3-integer, wherein the maximum value is a minimum of the stored exponent of corresponding base and floor of logarithm of the first difference in the base 5;
a next 3-integer module (118) configured to compute the next 3-integer nearest to the first difference, wherein exponents corresponding to the next 3-integer in a range of zero to the maximum value of the corresponding base, and store the exponents corresponding to the next 3-integer in the memory (106); and
a next difference module (120) configured to ascertain a next difference between the first difference and the next 3-integer, and assign the next difference as the first difference when the next difference is non-zero.
8. The system (100) as claimed in claim 7. wherein the next 3-integer module (118) is further configured to compute the next 3-integer, wherein the next 3-integer is greater than the first difference.
9. The system (100) as claimed in claim 8, wherein the memory (106) further comprises sign data to store a sign of the next difference.
10. The system (100) as claimed in claim 7, wherein the next 3-integer module (118) is further configured to compute non repeating 3-integers.
11. The system (100) as claimed in claim 7, further comprising an operations module configured to execute arithmetic operations based on the stored exponents.
12. The system (100) as claimed in any one of the preceding claims, wherein the system (100) is implemented as at least one of a cryptography system, a data compression

system, a mobile phone, a hearing aid, and an Elliptic Curve Cryptography (ECC) scalar multiplication system. 13, A computer-readable medium having embodied thereon a computer program for executing a method comprising:
computing by a processor (102) a first 3-integer, wherein the first 3-integer is largest of 3-integers less than or equal to an input data, and wherein exponents corresponding to the first 3-integer are in a range of zero to floor of logarithm of the input data in base 5;
storing the exponents corresponding to the first 3-integer in a memory (106);
ascertaining a first difference between the input data and the first 3-integer;
determining a maximum value for exponent of each base of a next 3-integer, wherein the maximum value is a minimum of the stored exponent of corresponding base and floor of logarithm of the first difference in the base 5;
computing by the processor (102) the next 3-integer nearest to the first difference-wherein exponents corresponding to the next 3-integer in a range of zero to the maximum value of the corresponding base;
storing the exponents corresponding to the next 3-integer in the memory (106);
ascertaining a next difference between the first difference and the next 3-integer; and
assigning the next difference as the first difference when the next difference is nonzero.

Documents

Application Documents

# Name Date
1 1878-MUM-2011-OTHERS [29-06-2018(online)].pdf 2018-06-29
1 1878-MUM-2011-Written submissions and relevant documents (MANDATORY) [13-12-2019(online)].pdf 2019-12-13
2 1878-MUM-2011-FER_SER_REPLY [29-06-2018(online)].pdf 2018-06-29
2 1878-MUM-2011-Correspondence to notify the Controller (Mandatory) [19-11-2019(online)].pdf 2019-11-19
3 1878-MUM-2011-HearingNoticeLetter-(DateOfHearing-29-11-2019).pdf 2019-11-05
3 1878-MUM-2011-COMPLETE SPECIFICATION [29-06-2018(online)].pdf 2018-06-29
4 1878-MUM-2011-CLAIMS [29-06-2018(online)].pdf 2018-06-29
5 ABSTRACT1.jpg 2018-08-10
5 1878-mum-2011-abstract.pdf 2018-08-10
6 1878-mum-2011-form 3.pdf 2018-08-10
7 1878-MUM-2011-FORM 26(27-9-2011).pdf 2018-08-10
7 1878-mum-2011-claims.pdf 2018-08-10
8 1878-mum-2011-form 2.pdf 2018-08-10
8 1878-MUM-2011-CORRESPONDENCE(18-8-2011).pdf 2018-08-10
9 1878-MUM-2011-CORRESPONDENCE(27-9-2011).pdf 2018-08-10
10 1878-MUM-2011-CORRESPONDENCE(8-11-2011).pdf 2018-08-10
10 1878-mum-2011-form 2(title page).pdf 2018-08-10
11 1878-mum-2011-correspondence.pdf 2018-08-10
11 1878-MUM-2011-FORM 18(18-8-2011).pdf 2018-08-10
12 1878-mum-2011-description(complete).pdf 2018-08-10
12 1878-mum-2011-form 1.pdf 2018-08-10
13 1878-mum-2011-drawing.pdf 2018-08-10
13 1878-MUM-2011-FORM 1(8-11-2011).pdf 2018-08-10
14 1878-MUM-2011-FER.pdf 2018-08-10
15 1878-mum-2011-drawing.pdf 2018-08-10
15 1878-MUM-2011-FORM 1(8-11-2011).pdf 2018-08-10
16 1878-mum-2011-form 1.pdf 2018-08-10
16 1878-mum-2011-description(complete).pdf 2018-08-10
17 1878-mum-2011-correspondence.pdf 2018-08-10
17 1878-MUM-2011-FORM 18(18-8-2011).pdf 2018-08-10
18 1878-MUM-2011-CORRESPONDENCE(8-11-2011).pdf 2018-08-10
18 1878-mum-2011-form 2(title page).pdf 2018-08-10
19 1878-MUM-2011-CORRESPONDENCE(27-9-2011).pdf 2018-08-10
20 1878-MUM-2011-CORRESPONDENCE(18-8-2011).pdf 2018-08-10
20 1878-mum-2011-form 2.pdf 2018-08-10
21 1878-mum-2011-claims.pdf 2018-08-10
21 1878-MUM-2011-FORM 26(27-9-2011).pdf 2018-08-10
22 1878-mum-2011-form 3.pdf 2018-08-10
23 1878-mum-2011-abstract.pdf 2018-08-10
23 ABSTRACT1.jpg 2018-08-10
24 1878-MUM-2011-CLAIMS [29-06-2018(online)].pdf 2018-06-29
25 1878-MUM-2011-HearingNoticeLetter-(DateOfHearing-29-11-2019).pdf 2019-11-05
25 1878-MUM-2011-COMPLETE SPECIFICATION [29-06-2018(online)].pdf 2018-06-29
26 1878-MUM-2011-FER_SER_REPLY [29-06-2018(online)].pdf 2018-06-29
26 1878-MUM-2011-Correspondence to notify the Controller (Mandatory) [19-11-2019(online)].pdf 2019-11-19
27 1878-MUM-2011-Written submissions and relevant documents (MANDATORY) [13-12-2019(online)].pdf 2019-12-13
27 1878-MUM-2011-OTHERS [29-06-2018(online)].pdf 2018-06-29

Search Strategy

1 SEARCH_STRATEGY_1878MUM2011_07-11-2017.pdf