US10025556B2 - Optimized multi-precision division - Google Patents
Optimized multi-precision division Download PDFInfo
- Publication number
- US10025556B2 US10025556B2 US14/479,972 US201414479972A US10025556B2 US 10025556 B2 US10025556 B2 US 10025556B2 US 201414479972 A US201414479972 A US 201414479972A US 10025556 B2 US10025556 B2 US 10025556B2
- Authority
- US
- United States
- Prior art keywords
- precision
- word
- division
- precision division
- iteration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
Definitions
- This disclosure relates generally to techniques for optimizing multi-precision division.
- Modular reduction operations may be expensive computationally, such as where they involve dividing two multi-precision numbers.
- Certain implementations of modular reduction operations may involve multi-precision division to be performed by a Central Processing Unit (CPU) or Arithmetic Logic Unit (ALU), which can consume a large number of clock cycles. A large number of clock cycles can result in reduced speed of cryptographic computations and increased power consumption.
- CPU Central Processing Unit
- ALU Arithmetic Logic Unit
- cryptosystems may be installed on devices with limited power (e.g., smart cards), optimizing modular reduction operations used in cryptographic computations may be beneficial.
- multi-precision numbers A and B are accessed from a storage device (e.g., a memory array), where A is a dividend and B is a divisor.
- a multi-precision division operation is iteratively performed on the numbers A and B including: performing a multi-precision subtraction operation on A and B during a first iteration of the multi-precision division operation; performing a multi-precision addition operation on A and B during a second iteration of the multi-precision division operation as a result of a determination that a final borrow occurred during the subtraction operation; and performing a multi-precision addition operation on A and B after a final iteration of the multi-precision division operation.
- FIG. 1 is a block diagram of an example system that uses optimized multi-precision division.
- FIG. 2 is a block diagram of an example CPU or co-processor of the system of FIG. 1 for performing optimized multi-precision division.
- FIG. 3 is a flow diagram of an example process for performing modular reduction using optimized multi-precision division.
- FIG. 4 is a flow diagram of an example process for optimized multi-precision division.
- FIG. 1 is a block diagram of an example system 100 that uses optimized multi-precision division.
- system 100 can be a cryptosystem or any other system or apparatus for performing multi-precision division, including but not limited to smart cards or smart card readers, smart phones, e-tablets and computer systems.
- System 100 shown in FIG. 1 is a smart card.
- System 100 can include central processing unit (CPU) 102 , optional co-processor 104 , volatile memory 108 and non-volatile memory 110 , 112 (e.g., EEPROM, ROM). These components communicate through internal bus 106 .
- System 100 is an example apparatus. In practice, system 100 can include more or fewer components.
- system 100 can include specific hardware (e.g., ASIC) for performing all or some of the optimized multi-precision division.
- ASIC application specific hardware
- FIG. 2 is a block diagram of an example processor 200 (e.g., CPU 102 or co-processor 104 ) of system 100 of FIG. 1 .
- processor 200 can be a secure processor.
- Processor 200 can include program counter 202 , decoder 203 , Arithmetic Logic Unit (ALU) 204 , accumulator register 206 , multiplexer (MUX) 208 , memory 210 (e.g., RAM 108 ), data bus 212 , control bus 214 and address bus 216 .
- ALU Arithmetic Logic Unit
- MUX multiplexer
- memory 210 e.g., RAM 108
- data bus 212 e.g., control bus 214
- address bus 216 e.g., control bus 214
- processor 200 can include more or fewer components, such as one or more status registers, a clock source, a power source, etc.
- ALU 204 loads data (e.g., numbers A and B) from input registers (not shown) coupled to ALU 204 .
- a control unit e.g., decoder 203 , MUX 208 ) commands/instructs ALU 204 to perform a particular operation on that data (e.g., rotate and shift), and the ALU 204 stores the result of the operation in an output register (e.g., accumulator 206 ).
- the control unit is responsible for moving the processed data on data bus 212 between the input/output registers, ALU 204 and memory 210 .
- decoder 203 decodes an instruction read from instruction register 201 and sends a control signal on control bus 214 to ALU 204 .
- ALU 204 can be configured to perform optimized multi-precision numbers A and B stored in the input registers.
- the numbers A and B are shown in memory 210 (e.g., RAM).
- the numbers A and B can be stored in separate memory arrays in memory 210 that can be indexed.
- the location of the numbers in memory 210 can be determined by an address on address bus 216 .
- the numbers A and B can be read from their respective memory arrays in memory 219 and moved into input registers coupled to ALU 204 .
- the final result of an operation and supporting or intermediate calculations performed by ALU 204 can be stored in an output register (e.g., accumulator 206 ) or memory 210 .
- Accumulator 206 can be divided into High and Low portions.
- the numbers A and B can be 32-bit or 64-bit words.
- An instruction can be used to determine the word width. Some operations can use the accumulator 206 .
- ALU 204 can perform optimized multi-precision division by operating on the numbers in the input and output registers (A, B) in response to a rotate/shift instruction (e.g. barrel shifting) by a specified number of bit positions and checking one or more status registers (e.g., for indicating borrow or carry).
- FIG. 3 is a flow diagram of an example process 300 for performing modular reduction using optimized multi-precision division.
- optimized multi-precision division can be used with a multi-precision modular reduction operation.
- Modular reduction operations (commonly written as A mod (B) or A % B in software nomenclature) are commonly used in cryptographic algorithms (e.g., RSA, DSA).
- process 300 can begin by accessing multi-precision numbers A and B from a storage device, such as registers and/or memory ( 302 ). The accessing can be done by a processor or control unit of a cryptosystem. The numbers can be stored in separate memory arrays that can be indexed using pointers.
- Process 300 can continue by performing modular reduction operations with optimized multi-precision division ( 304 ). Optimized multi-precision division is described in reference to FIG. 4 . Process 300 can continue by storing the result of the modular reduction (e.g., the remainder) in memory or hardware register for further processing by a cryptographic application ( 306 ).
- the conventional multi-precision division set forth above does not address the details of A/B word storage, which requires additional words of memory due to the bit shift operation B ⁇ i. To prevent memory overflow for the additional words, the number of bit positions that B can be shifted without overflowing the B memory is determined and the number of bit shifts modified appropriately. This results in a modification to the conventional multi-precision process as shown below:
- the loop operation shown above requires 2 full walks of the B memory array.
- the compare operation can be eliminated with the following optimized multi-precision division as shown below.
- (B ⁇ n) ⁇ (B ⁇ (n ⁇ 1)) can be simplified to +B ⁇ (n ⁇ 1) and the 1 ⁇ 2 factor is added rather than subtracted.
- FIG. 4 is a flow diagram of an example process 400 for optimized multi-precision division.
- process 400 can be performed by processor 200 , as described in reference to FIG. 2 .
- Process 400 can begin by setting an iterative loop start variable i0 to (msWordA*wordSize+msBitA) ⁇ (msWordB*wordSize+msBitB) ( 401 ) and setting a variable “negative” to zero ( 402 ).
- the variable negative is an integer that can take on the value 0 or 1 to indicate that a negative number resulted from an operation.
- the integer variables msWordA and msWordB are first non-zero words of A and B, respectively, counted from the left or most significant position
- the integer variable msBitA is the most significant bit of A within A[msWordA]
- msBitB is the most significant bit of B within B[msWordB]
- the integer variable wordSize is an arbitrary size of a word (e.g., 4 bytes).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
| //Conventional Multi-Precision Division | ||
| wordSize = 8; // (number of bits in a word) | ||
| Asize = 4; // (number of words in A) | ||
| Bsize = 4; // (number of words in B) | ||
| for (i=Asize*wordSize; i >= 0; i−−) | ||
| { | ||
| if (A>=(B<<i)); |
| A=A−(B<<i); |
| } | ||
| //Modified Conventional Multi-Precision Division |
| find ‘msWordA’= msWord of A; |
| find ‘msBitA’ = msBit of A within A[msWordA]; |
| find ‘msWordB’= msWord of B; |
| find ‘msBitB’= msBit of B within B[msWordB]; |
| set i0 = (msWordA*wordSize + msBitA) − (msWordB*wordSize + |
| msBitB); |
| for (i=i0; i >= 0; i−−) |
| { |
| if (A>=(B<<i)) |
| A=A−(B<<i); |
| } |
| //Optimized Multi-Precision Division |
| find ‘msWordA’= msWord of A; |
| find ‘msBitA’ = msBit of A within A[msWordA]; |
| find ‘msWordB’= msWord of B; |
| find ‘msBitB’= msBit of B within B[msWordB]; |
| negative=0; |
| set i0 = (msWordA*wordSize + msBitA) − (msWordB*wordSize + |
| msBitB); |
| for (i=i0; i >= 0; i−−) |
| { |
| if (negative) |
| A=A+(B<<i); |
| negative = not(final_carry); |
| else |
| A=A−(B<<i); |
| negative = final_borrow; |
| } |
| if (negative) |
| A=A+B; |
| TABLE I |
| One Word Example (15%7) |
| Step | Borrow | Carry | A | B | i | Neg. | Comment |
| 0 | 0 | F(1111) | 7(0111) | — | 0 | ||
| 1 | 0 | 0 | F(1111) | 7(0111) | 1 | 0 | for loop starts with i = 0*4 + 1 |
| 2 | 0 | 0 | F(1111) | 7(0111) | 1 | 0 | if negative takes else clause |
| 3 | 0 | 0 | 1(0001) | 7(0111) | 1 | 0 | A− = (B << 1) |
| 4 | 0 | 0 | 1(0001) | 7(0111) | 1 | 0 | negative = final_borrow |
| 5 | 0 | 0 | 1(0001) | 7(0111) | 0 | 0 | for loop decrements i by 1 |
| 6 | 0 | 0 | 1(0001) | 7(0111) | 0 | 0 | for loop continues with i = 0 |
| 7 | 0 | 0 | 1(0001) | 7(0111) | 0 | 0 | if negative takes else clause |
| 8 | 1 | 0 | A(1010) | 7(0111) | 0 | 0 | A− = (B << 0) (Note: 1 − 7 = −6 but in 4-bit |
| numbers this is −6 + 16 or 10 because | |||||||
| these numbers are modulo 16) | |||||||
| 9 | 1 | 0 | A(1010) | 7(0111) | 0 | 1 | negative = final_borrow |
| 10 | 1 | 0 | A(1010) | 7(0111) | −1 | 1 | for loop decrements i by 1 |
| 11 | 1 | 0 | A(1010) | 7(0111) | −1 | 1 | for loop exits with i = −1 |
| 12 | 1 | 0 | A(1010) | 7(0111) | −1 | 1 | final if (negative) gets taken |
| 13 | 1 | 0 | A(0001) | 7(0111) | −1 | 1 | A+ = B |
| TABLE II |
| Two Word Example (255%7) |
| Step | Borrow | Carry | A | B | i | Neg. | Comments |
| 0 | 0 | F(1111) | F(1111) | 0(0000) | 7(0111) | — | 0 | ||
| 1 | 0 | 0 | F(1111) | F(1111) | 0(0000) | 7(0111) | 5 | 0 | for loop starts with |
| i = 1*4 + 1 | |||||||||
| 2 | 0 | 0 | F(1111) | F(1111) | 0(0000) | 7(0111) | 5 | 0 | if negative takes else |
| clause | |||||||||
| 3 | 0 | 0 | F(1111) | F(1111) | 0(0000) | 7(0111) | 5 | 0 | A− = (B << 5); |
| A− = (0x1110 0x0000) | |||||||||
| −0000 | |||||||||
| 0 | 0 | F(1111) | F(1111) | 0(0000) | 7(0111) | 5 | 0 | A− = (B << 5); | |
| A− = (0x1110 0x0000) | |||||||||
| −1110 | |||||||||
| 0 | 0 | 1(0001) | F(1111) | 0(0000) | 7(0111) | 5 | 0 | A− = (B << 5); | |
| A− = (0x1110 0x0000) | |||||||||
| 4 | 0 | 0 | 1(0001) | F(1111) | 0(0000) | 7(0111) | 5 | 0 | negative = final_borrow |
| 5 | 0 | 0 | 1(0001) | F(1111) | 0(0000) | 7(0111) | 4 | 0 | for loop decrements by i |
| 6 | 0 | 0 | 1(0001) | F(1111) | 0(0000) | 7(0111) | 4 | 0 | for loop continues with i = 4 |
| 7 | 0 | 0 | 1(0001) | F(1111) | 0(0000) | 7(0111) | 4 | 0 | if negative takes else |
| clause | |||||||||
| 8 | 0 | 0 | 1(0000) | F(1111) | 0(0000) | 7(0111) | 4 | 0 | A− = (B << 4); |
| A− = (0x0111 0x0000) | |||||||||
| −0000 | |||||||||
| 0 | 0 | 1(0001) | F(1111) | 0(0000) | 7(0111) | 4 | 0 | A− = (B << 4); | |
| A− = (0x0111 0x0000) | |||||||||
| −0111 | (Note: 1 − 7 = −6 but in 4-bit | ||||||||
| numbers this is −6 + 16 or | |||||||||
| 10 because these numbers | |||||||||
| are modulo 16) | |||||||||
| 1 | 0 | A(1010) | F(1111) | 0(0000) | 7(0111) | 4 | 0 | A− = (B << 4); | |
| A− = (0x0111 0x0000) | |||||||||
| 9 | 1 | 0 | A(1010) | F(1111) | 0(0000) | 7(0111) | 4 | 1 | negative = final_borrow |
| 10 | 1 | 0 | A(1010) | F(1111) | 0(0000) | 7(0111) | 3 | 1 | for loop decrements i by 1 |
| 11 | 1 | 0 | A(1010) | F(1111) | 0(0000) | 7(0111) | 3 | 1 | for loop continues with i = 3 |
| 12 | 1 | 0 | A(1010) | F(1111) | 0(0000) | 7(0111) | 3 | 1 | if negative taken |
| 13 | 1 | 0 | A(1010) | F(1111) | 0(0000) | 7(0111) | 3 | 1 | A+ = (B << 3); |
| A+ = (0x0011 0x1000) | |||||||||
| +1000 | |||||||||
| 1 | 1 | A(1010) | 7(0111) | 0(0000) | 7(0111) | 3 | 1 | ||
| +0011 | (include the carry in this | ||||||||
| add) | |||||||||
| 1 | 0 | E(1110) | 7(0111) | 0(0000) | 7(0111) | 3 | 1 | ||
| 14 | 1 | 0 | E(1110) | 7(0111) | 0(0000) | 7(0111) | 3 | 1 | negative = not(final_carry) |
| 15 | 1 | 0 | E(1110) | 7(0111) | 0(0000) | 7(0111) | 2 | 1 | for loop decrements i by 1 |
| 16 | 1 | 0 | E(1110) | 7(0111) | 0(0000) | 7(0111) | 2 | 1 | for loop continues with i = 2 |
| 17 | 1 | 0 | E(1110) | 7(0111) | 0(0000) | 7(0111) | 2 | 1 | if negative taken |
| 18 | 1 | 0 | E(1110) | 7(0111) | 0(0000) | 7(0111) | 2 | A+ = (B << 2); | |
| A+ = (0x0001 0x1100) | |||||||||
| + 1100 | |||||||||
| 1 | 1 | E(1110) | 3(0011) | 0(0000) | 7(0111) | 2 | 1 | ||
| +0001 | |||||||||
| 1 | 1 | 0(0000) | 3(0011) | 0(0000) | 7(0111) | 2 | 1 | ||
| 19 | 1 | 1 | 0(0000) | 3(0011) | 0(0000) | 7(0111) | 2 | 0 | negative = not(final_carry) |
| 20 | 1 | 1 | 0(0000) | 3(0011) | 0(0000) | 7(0111) | 1 | 0 | for loop decrements i by 1 |
| 21 | 1 | 1 | 0(0000) | 3(0011) | 0(0000) | 7(0111) | 1 | 0 | for loop continues with i = 1 |
| 22 | 1 | 1 | 0(0000) | 3(0011) | 0(0000) | 7(0111) | 1 | 0 | if negative takes else |
| clause | |||||||||
| 23 | 1 | 1 | 0(0000) | 3(0011) | 0(0000) | 7(0111) | 1 | 0 | A− = (B << 1); |
| A− = (0x00000x1110) | |||||||||
| −1110 | |||||||||
| 1 | 1 | 0(0000) | 5(0101) | 0(0000) | 7(0111) | 1 | 0 | ||
| −0000 | |||||||||
| 1 | 1 | F(1111) | 5(0101) | 0(0000) | 7(0111) | 1 | 0 | ||
| 24 | 1 | 1 | F(1111) | 5(0101) | 0(0000) | 7(0111) | 1 | 1 | negative = final_borrow |
| 25 | 1 | 1 | F(1111) | 5(0101) | 0(0000) | 7(0111) | 0 | 1 | for loop decrements i by 1 |
| 26 | 1 | 1 | F(1111) | 5(0101) | 0(0000) | 7(0111) | 0 | 1 | for loop continues with i = 0 |
| 27 | 1 | 1 | F(1111) | 5(0101) | 0(0000) | 7(0111) | 0 | 1 | if negative taken |
| 28 | 1 | 1 | F(1111) | 5(0101) | 0(0000) | 7(0111) | 0 | 1 | A+ = (B << 0); |
| A+ = (0x0000 0x0111) | |||||||||
| +0111 | |||||||||
| 1 | 0 | F(1111) | C(1100) | 0(0000) | 7(0111) | 0 | 1 | ||
| +0000 | |||||||||
| 1 | 0 | (F1111) | C(1100) | 0(0000) | 7(0111) | 0 | 1 | ||
| 29 | 1 | 0 | (F1111) | C(1100) | 0(0000) | 7(0111) | 0 | 1 | negative = not(final_carry) |
| 30 | 1 | 0 | (F1111) | C(1100) | 0(0000) | 7(0111) | −1 | 1 | for loop decrements i by 1 |
| 31 | 1 | 0 | (F1111) | C(1100) | 0(0000) | 7(0111) | −1 | 1 | final if(negative) gets taken |
| 32 | 1 | 0 | (F1111) | C(1100) | 0(0000) | 7(0111) | −1 | 1 | A+ = B; |
| A+ = (0x0000 0x0111) | |||||||||
| +0111 | |||||||||
| 1 | 1 | (F1111) | 3(0011) | 0(0000) | 7(0111) | −1 | 1 | ||
| +0000 | (carry from previous add) | ||||||||
| 1 | 1 | 0(0000) | 3(0011) | 0(0000) | 7(0111) | −1 | 1 | ||
Claims (7)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/479,972 US10025556B2 (en) | 2014-09-08 | 2014-09-08 | Optimized multi-precision division |
| DE102015217062.4A DE102015217062A1 (en) | 2014-09-08 | 2015-09-07 | Optimized multi-precision division |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/479,972 US10025556B2 (en) | 2014-09-08 | 2014-09-08 | Optimized multi-precision division |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20160070539A1 US20160070539A1 (en) | 2016-03-10 |
| US10025556B2 true US10025556B2 (en) | 2018-07-17 |
Family
ID=55358702
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/479,972 Active 2035-11-23 US10025556B2 (en) | 2014-09-08 | 2014-09-08 | Optimized multi-precision division |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10025556B2 (en) |
| DE (1) | DE102015217062A1 (en) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4047011A (en) * | 1974-07-19 | 1977-09-06 | Burroughs Corporation | Modular apparatus for binary quotient, binary product, binary sum and binary difference generation |
| US5825681A (en) * | 1996-01-24 | 1998-10-20 | Alliance Semiconductor Corporation | Divider/multiplier circuit having high precision mode |
| US5969976A (en) * | 1991-06-24 | 1999-10-19 | Hitachi, Ltd. | Division circuit and the division method thereof |
| US6185596B1 (en) * | 1997-05-04 | 2001-02-06 | Fortress U&T Ltd. | Apparatus & method for modular multiplication & exponentiation based on Montgomery multiplication |
| US20080069337A1 (en) * | 2006-08-31 | 2008-03-20 | Intel Corporation | System and method for multi-precision division |
| US20130179664A1 (en) * | 2012-01-06 | 2013-07-11 | Christopher H. Olson | Division unit with multiple divide engines |
-
2014
- 2014-09-08 US US14/479,972 patent/US10025556B2/en active Active
-
2015
- 2015-09-07 DE DE102015217062.4A patent/DE102015217062A1/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4047011A (en) * | 1974-07-19 | 1977-09-06 | Burroughs Corporation | Modular apparatus for binary quotient, binary product, binary sum and binary difference generation |
| US5969976A (en) * | 1991-06-24 | 1999-10-19 | Hitachi, Ltd. | Division circuit and the division method thereof |
| US5825681A (en) * | 1996-01-24 | 1998-10-20 | Alliance Semiconductor Corporation | Divider/multiplier circuit having high precision mode |
| US6185596B1 (en) * | 1997-05-04 | 2001-02-06 | Fortress U&T Ltd. | Apparatus & method for modular multiplication & exponentiation based on Montgomery multiplication |
| US20080069337A1 (en) * | 2006-08-31 | 2008-03-20 | Intel Corporation | System and method for multi-precision division |
| US20130179664A1 (en) * | 2012-01-06 | 2013-07-11 | Christopher H. Olson | Division unit with multiple divide engines |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102015217062A1 (en) | 2016-03-10 |
| US20160070539A1 (en) | 2016-03-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20250117222A1 (en) | Systems, methods, and apparatuses for tile matrix multiplication and accumulation | |
| US20210026634A1 (en) | Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register | |
| US9588766B2 (en) | Accelerated interlane vector reduction instructions | |
| TWI494851B (en) | Functional unit, processor, and method for speculative predicated instructions | |
| US20120216011A1 (en) | Apparatus and method of single-instruction, multiple-data vector operation masking | |
| US20110320765A1 (en) | Variable width vector instruction processor | |
| US20190042254A1 (en) | Systems and methods to load a tile register pair | |
| US20190310847A1 (en) | Complex multiply instruction | |
| US8484443B2 (en) | Running multiply-accumulate instructions for processing vectors | |
| US9588696B2 (en) | Montgomery modular multiplication-based data processing method | |
| BR102013027768A2 (en) | Reduced power consumption in a fused multiplier-summer unit responsive to input data values | |
| US9471324B2 (en) | Concurrent execution of heterogeneous vector instructions | |
| TWI512618B (en) | Method and apparatus for universal logical operations | |
| WO2013187862A1 (en) | A FAST MECHANISM FOR ACCESSING 2n±1 INTERLEAVED MEMORY SYSTEM | |
| US9323531B2 (en) | Systems, apparatuses, and methods for determining a trailing least significant masking bit of a writemask register | |
| EP3238091B1 (en) | Fast vector dynamic memory conflict detection | |
| US8484520B2 (en) | Processor capable of determining ECC errors | |
| US8683178B2 (en) | Sharing a fault-status register when processing vector instructions | |
| US11016731B2 (en) | Using Fuzzy-Jbit location of floating-point multiply-accumulate results | |
| US8892622B2 (en) | Pipelined divide circuit for small operand sizes | |
| US10025556B2 (en) | Optimized multi-precision division | |
| US10289386B2 (en) | Iterative division with reduced latency | |
| US20150363170A1 (en) | Calculation of a number of iterations | |
| US11080054B2 (en) | Data processing apparatus and method for generating a status flag using predicate indicators | |
| US9317283B2 (en) | Running shift for divide instructions for processing vectors |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: ATMEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MELTON, RANDY;REEL/FRAME:033705/0744 Effective date: 20140904 |
|
| AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:ATMEL CORPORATION;REEL/FRAME:034160/0563 Effective date: 20131206 |
|
| AS | Assignment |
Owner name: ATMEL CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:038375/0724 Effective date: 20160404 |
|
| AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNOR:ATMEL CORPORATION;REEL/FRAME:041715/0747 Effective date: 20170208 Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT Free format text: SECURITY INTEREST;ASSIGNOR:ATMEL CORPORATION;REEL/FRAME:041715/0747 Effective date: 20170208 |
|
| AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:046426/0001 Effective date: 20180529 Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:046426/0001 Effective date: 20180529 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:047103/0206 Effective date: 20180914 Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES C Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:047103/0206 Effective date: 20180914 |
|
| CC | Certificate of correction | ||
| AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT, DELAWARE Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INC.;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:053311/0305 Effective date: 20200327 |
|
| AS | Assignment |
Owner name: MICROCHIP TECHNOLOGY INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT;REEL/FRAME:053466/0011 Effective date: 20200529 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT;REEL/FRAME:053466/0011 Effective date: 20200529 Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT;REEL/FRAME:053466/0011 Effective date: 20200529 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT;REEL/FRAME:053466/0011 Effective date: 20200529 Owner name: MICROSEMI CORPORATION, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT;REEL/FRAME:053466/0011 Effective date: 20200529 |
|
| AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, MINNESOTA Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INC.;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:053468/0705 Effective date: 20200529 |
|
| AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT, MINNESOTA Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:055671/0612 Effective date: 20201217 |
|
| AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT, MINNESOTA Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:057935/0474 Effective date: 20210528 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
| AS | Assignment |
Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222 Effective date: 20220218 |
|
| AS | Assignment |
Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059262/0105 Effective date: 20220218 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059262/0105 Effective date: 20220218 |
|
| AS | Assignment |
Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001 Effective date: 20220228 |
|
| AS | Assignment |
Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059863/0400 Effective date: 20220228 |
|
| AS | Assignment |
Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059363/0001 Effective date: 20220228 |
|
| AS | Assignment |
Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: ATMEL CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: MICROSEMI CORPORATION, ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:060894/0437 Effective date: 20220228 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |