IP Library Granted Patent US 11,018,864
Granted Patent B2
US 11,018,864 · App. 16/169,836 · Granted May 25, 2021

Method, device, and system for task processing

Inventor: Xiaoyu Zhang (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
H04L9/302G06F7/722G09C1/00H04L9/3249G06F2207/3828H04L2209/12H04L2209/122
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,018,864
App. No.
16/169,836
Granted
May 25, 2021
Kind
B2
Abstract

A number of RSA computing tasks that have different word lengths which are less than a maximum word length of an operand register are processed at the same time by combining a number of different word lengths to be equal to or less than the maximum word length of the operand register.

Claims (36)

1. A computing device for processing multiple bit-sized computing tasks, the computing device comprising:

a plurality of x-bit shift registers coupled in series, a number of the plurality of x-bit shift registers being gated such that an output value of an x-bit shift register is directed to a next-register output or a controller output in response to a gating signal, the next-register output being coupled to a next x-bit shift register in the series;

a first n-bit operand register having a plurality of x-bit operand segments;

a second n-bit operand register having a plurality of x-bit operand segments;

a plurality of modular multipliers coupled to the plurality of x-bit operand segments in the first and second n-bit operand registers such that each of the plurality of modular multipliers has an input coupled to a x-bit operand segment of the plurality of x-bit operand segments of the first n-bit operand register and an input coupled to a corresponding x-bit operand segment of the plurality of x-bit operand segments of the second n-bit operand register;

a controller coupled to the plurality of x-bit shift registers, the first n-bit operand register, the second n-bit operand register, and the plurality of modular multipliers, the controller is configured to:

receive a first task having y bits and a second task having z bits;

divide the y-bit first task into a first plurality of x-bit segments, and the z-bit second task into a second plurality of x-bit segments; and

load the first plurality of x-bit segments into a first group of shift registers of the plurality of x-bit shift registers such that each x-bit segment of the first plurality of x-bit segments is loaded into a corresponding x-bit shift register in the first group of shift registers, and the second plurality of x-bit segments into a second group of shift registers of the plurality of x-bit shift registers such that each x-bit segment of the second plurality of x-bit segments is loaded into a corresponding x-bit shift register in the second group of shift registers.

2. The computing device of claim 1 , wherein the controller is further configured to set a first number of gating signals such that the first group of shift registers are serially connected and only a last shift register of the first group of shift registers is output to the controller, and a second number of gating signals such that the second group of shift registers are serially connected and only a last shift register of the second group of shift registers is output to the controller.

3. The computing device of claim 2 , wherein the controller is further configured to shift the first plurality of x-bit segments in the first group of shift registers, and the second plurality of x-bit segments in the second group of shift registers.

4. The computing device of claim 3 , wherein the controller is further configured to load the output of the last shift register from the first group of shift registers into the first and second n-bit operand registers, and the output of the last shift register from the second group of shift registers into the first and second n-bit operand registers.

5. The computing device of claim 4 , wherein the controller is further configured to output a multiply signal to the plurality of modular multipliers such that each of the plurality of modular multipliers multiplies a x-bit operand segment from the first n-bit operand register with a corresponding x-bit operand segment from the second n-bit operand register.

6. The computing device of claim 4 , further comprising a register file coupled to the controller, wherein the register file is configured to store base numbers, exponents, moduli, and intermediate computing task results.

7. The computing device of claim 4 , wherein n bits include 4096 bits and x bits include 512 bits.

8. A method of operating a computing device for processing multiple bit-sized computing tasks, the method comprising:

receiving a first task having y bits and a second task having z bits;

dividing the y-bit first task into a first plurality of x-bit segments, and the z-bit second task into a second plurality of x-bit segments;

loading the first plurality of x-bit segments into a first group of shift registers of a plurality of x-bit shift registers such that each x-bit segment of the first plurality of x-bit segments is loaded into a corresponding x-bit shift register in the first group of shift registers, and the second plurality of x-bit segments into a second group of shift registers of the plurality of x-bit shift registers such that each x-bit segment of the second plurality of x-bit segments is loaded into a corresponding x-bit shift register in the second group of shift registers;

loading an output from the first group of shift registers into a first and second n-bit operand registers, and an output from the second group of shift registers into the first and second n-bit operand registers; and

outputting a signal to a plurality of modular multipliers such that each of the plurality of modular multipliers multiplies a x-bit operand segment from the first n-bit operand register with a corresponding x-bit operand segment from the second n-bit operand register.

9. The method of claim 8 , further comprising setting a first number of gating signals such that the first group of shift registers are serially connected and only a last shift register of the first group of shift registers is output to the controller, and a second number of gating signals such that the second group of shift registers are serially connected and only a last shift register of the second group of shift registers is output to the controller.

10. The method of claim 9 , further comprising shifting the first plurality of x-bit segments in the first group of shift registers, and the second plurality of x-bit segments in the second group of shift registers.

11. The method of claim 10 , wherein loading the output from the first group of shift registers into the first and second n-bit operand registers, and the output from the second group of shift registers into the first and second n-bit operand registers includes loading the output of the last shift register from the first group of shift registers into the first and second n-bit operand registers, and the output of the last shift register from the second group of shift registers into the first and second n-bit operand registers.

12. The method of claim 8 , further comprises storing base numbers, exponents, moduli, and intermediate computing task results from multiplying x-bit segments.

13. The method of claim 8 , wherein n bits include 4096 bits and x bits include 512 bits.

14. A non-transitory computer-readable storage medium having embedded therein program instructions, which when executed by a processor causes the processor to execute a method of operating a computing device, the method comprising:

receiving a first task having y bits and a second task having z bits;

dividing the y-bit first task into a first plurality of x-bit segments, and the z-bit second task into a second plurality of x-bit segments;

loading the first plurality of x-bit segments into a first group of shift registers of a plurality of x-bit shift registers such that each x-bit segment of the first plurality of x-bit segments is loaded into a corresponding x-bit shift register in the first group of shift registers, and the second plurality of x-bit segments into a second group of shift registers of the plurality of x-bit shift registers such that each x-bit segment of the second plurality of x-bit segments is loaded into a corresponding x-bit shift register in the second group of shift registers;

loading an output from the first group of shift registers into a first and second n-bit operand registers, and an output from the second group of shift registers into the first and second n-bit operand registers; and

outputting a signal to a plurality of modular multipliers such that each of the plurality of modular multipliers multiplies a x-bit operand segment from the first n-bit operand register with a corresponding x-bit operand segment from the second n-bit operand register.

15. The medium of claim 14 , wherein the method further comprises setting a first number of gating signals such that the first group of shift registers are serially connected and only a last shift register of the first group of shift registers is output to the controller, and a second number of gating signals such that the second group of shift registers are serially connected and only a last shift register of the second group of shift registers is output to the controller.

16. The medium of claim 15 , wherein the method further comprises shifting the first plurality of x-bit segments in the first group of shift registers, and the second plurality of x-bit segments in the second group of shift registers.

17. The medium of claim 16 , wherein loading the output from the first group of shift registers into the first and second n-bit operand registers, and the output from the second group of shift registers into the first and second n-bit operand registers includes loading the output of the last shift register from the first group of shift registers into the first and second n-bit operand registers, and the output of the last shift register from the second group of shift registers into the first and second n-bit operand registers.

18. The medium of claim 17 , wherein n bits include 4096 bits and x bits include 512 bits.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2018
From: ZHANG, XIAOYU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 047752/0370 →
Priority Claims (1)
CN 201711015972.8 · Oct 25, 2017 · national
Continuity (1)
Related Publication 20190123902A1 · Apr 25, 2019