IP Library Granted Patent US 11,023,336
Granted Patent B2
US 11,023,336 · App. 16/512,613 · Granted Jun 1, 2021

Memory-based distributed processor architecture

Inventors: Elad Sity (Kfar Saba, IL); Eliad Hillel (Kfar Saba, IL)
Assignee: NeuroBlade, Ltd.
G06F11/1658G06F9/3001G06F9/3885G06F9/3889G06F9/3895G06F11/102G06F11/1016G06F11/16G06F11/1616G06F13/1657G06F15/8038G06N3/04G11C7/1072G11C11/1655G11C11/1657G11C11/1675G11C11/408G11C11/4076G11C11/4093G06F2015/765
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,023,336
App. No.
16/512,613
Granted
Jun 1, 2021
Kind
B2
Abstract

Distributed processors and methods for compiling code for execution by distributed processors are disclosed. In one implementation, a distributed processor may include a substrate; a memory array disposed on the substrate; and a processing array disposed on the substrate. The memory array may include a plurality of discrete memory banks, and the processing array may include a plurality of processor subunits, each one of the processor subunits being associated with a corresponding, dedicated one of the plurality of discrete memory banks. The distributed processor may further include a first plurality of buses, each connecting one of the plurality of processor subunits to its corresponding, dedicated memory bank, and a second plurality of buses, each connecting one of the plurality of processor subunits to another of the plurality of processor subunits.

Claims (77)

1. A memory device, comprising:

a substrate;

a plurality of memory banks on the substrate;

a plurality of primary logic blocks on the substrate, each of the plurality of primary logic blocks being connected to at least one of the plurality of memory banks, and wherein the plurality of primary logic blocks comprise at least one memory logic block configured to enable read and write operations in the memory bank and at least one business logic block configured to perform in-memory computations;

one or more redundant blocks on the substrate, each of the one or more redundant blocks being connected to at least one of the memory banks, each of the one or more redundant blocks replicating at least one of the plurality of primary logic blocks; and

a plurality of configuration switches on the substrate, each one of the plurality of configuration switches being connected to at least one of the plurality of primary logic blocks or to at least one of the one or more redundant blocks;

wherein upon detection of at least one faulty logic block included in one of the plurality of primary logic blocks:

a first configuration switch of the plurality of configuration switches is configured to disable the one of the plurality of primary logic blocks that includes the detected at least one faulty logic block, and

a second configuration switch of the plurality of configuration switches is configured to enable one of the one or more redundant blocks that replicates the one of the plurality of primary logic blocks that includes the detected at least one faulty logic block.

2. The memory device of claim 1 , wherein

the plurality of configuration switches comprise a plurality of activation switches and a plurality of deactivation switches,

each one of the plurality of activation switches and each one of the plurality of deactivation switches comprise an external input;

each one of the plurality of activation switches is configured so an activation signal in the external input causes a closed switch condition; and

each one of the plurality of deactivation switches is configured so a deactivation signal in the external input causes an open switch condition.

3. The memory device of claim 2 , wherein

each one of the plurality of configuration switches couple at least one of the plurality of primary or redundant logic blocks with at least one of a clock node or a power node.

4. The memory device of claim 1 , wherein

at least one of the plurality of primary logic blocks is connected to a subset of the plurality of memory banks with a first dedicated connection, and

at least one of the one or more redundant blocks, which replicates the at least one of the plurality of primary logic blocks, is connected to the subset of the plurality of memory banks with a second dedicated connection.

5. The memory device of claim 1 , wherein

the at least one business logic block comprises a first business logic block; and

the one or more redundant blocks comprise a second business logic block replicating the first business logic block.

6. The memory device of claim 1 , wherein the plurality of configuration switches comprise at least one of a fuse, an anti-fuse, a non-volatile memory device, or a one-time programmable device.

7. The memory device of claim 1 , wherein each one of the plurality of primary logic blocks and each one of the one or more redundant blocks are connected to an address bus and a data bus.

8. The memory device of claim 1 , wherein at least one of the plurality of primary logic blocks comprise:

at least one local logic unit;

at least one computation unit; and

at least one duplicated unit,

wherein,

the at least one duplicated unit replicates the at least one computation unit, and

the at least one local logic unit has a smaller size than the at least one computation unit.

9. The memory device of claim 8 , wherein the at least one of the plurality of primary logic blocks comprise:

a plurality of local configuration switches, each one of the plurality of local configuration switches being connected to at least one of the at least one computation unit or the at least one duplicated unit,

wherein the local configuration switches are configured to disable the at least one local computation unit and enable the at least one duplicated unit when a fault is detected in the at least one computation unit.

10. The memory device of claim 1 , further comprising

an address manager; and

an address bus coupling the address manager to each one of the plurality of memory banks, each one of the plurality of primary logic blocks, and each one of the one or more redundant blocks,

wherein upon detection of the fault associated with the one of the plurality of primary logic blocks, an invalid address is assigned to the one of the plurality of primary logic blocks and a valid address is assigned to the one of the one or more redundant blocks.

11. The memory device of claim 1 , wherein

the plurality of primary logic blocks are connected in series;

each one of the plurality of primary logic blocks is connected in parallel with a parallel switch; and

upon detection of the fault associated with the one of the plurality of primary logic blocks, the parallel switch connected to the one of the plurality of primary logic blocks is activated to couple two of the plurality of primary logic blocks.

12. The memory device of claim 11 , wherein the parallel switch comprises an anti-fuse.

13. The memory device of claim 11 , wherein the parallel switch comprises a sampling circuit with a selected cycle delay.

14. The memory device of claim 1 , wherein

the plurality of primary logic blocks and the one or more redundant blocks are disposed on the substrate in a two-dimensional grid;

each one of the plurality of primary logic blocks and each one of the one or more redundant blocks are interconnected with connection boxes; and

an input block is disposed in a periphery of each line and each column of the two-dimensional grid.

15. The memory device of claim 1 , wherein the memory chip comprises at least one of a DRAM, a Flash, an SRAM, a ReRAM, a PRAM, or a MRAM memory.

16. The memory device of claim 1 , wherein each one of the plurality of primary logic blocks has equivalent computing capabilities to at least one of the one or more redundant blocks.

17. The memory device of claim 1 , wherein the plurality of primary logic blocks comprise at least one local computing unit and at least one redundant computing unit, the at least one redundant computing unit replicating the at least one local computing unit.

18. The memory device of claim 1 , wherein the first configuration switch is further configured to enable the one of the one or more redundant blocks that replicates the one of the plurality of primary logic blocks.

19. A distributed processor on a memory chip, comprising:

a substrate;

an address manager on the substrate;

a plurality of primary logic blocks on the substrate, each of the plurality of primary logic blocks being connected to at least one of the plurality of memory banks;

a plurality of redundant blocks on the substrate, each of the plurality of redundant blocks being connected to at least one of the plurality of memory banks, each of the plurality of redundant blocks replicating at least one of the plurality of primary logic blocks; and

a bus on the substrate connected to each of the plurality of primary logic blocks, each of the plurality of redundant blocks, and the address manager,

wherein the processor is configured to:

assign running ID numbers to blocks in the plurality of primary logic blocks that pass a testing protocol;

assign illegal ID numbers to blocks in the plurality of primary logic blocks that do not pass the testing protocol; and

assign running ID numbers to blocks in the plurality of redundant blocks that pass the testing protocol.

20. The distributed memory chip of claim 19 , wherein the blocks in the plurality of redundant blocks assigned running ID numbers is equal to, or greater than, the blocks in the plurality of primary logic blocks assigned illegal ID numbers.

21. The distributed memory chip of claim 20 , wherein each one of the plurality of primary logic blocks and each one of the plurality of redundant blocks comprise a fused identification circuit.

22. The distributed memory chip of claim 21 , wherein the bus comprises a command line, a data line, and an address line.

23. A method for configuring a distributed processor on a memory chip, comprising:

testing each one of a plurality of primary logic blocks on the substrate of the memory chip for at least one circuit functionality;

identifying at least one faulty logic block in the plurality of primary logic blocks based on the testing results, the at least one faulty logic block being connected to at least one memory bank disposed on the substrate of the memory chip;

testing at least one redundant block on the substrate of the memory chip for the at least one circuit functionality, the at least one redundant block replicating the at least one faulty logic block and being connected to the at least one memory bank;

disabling the at least one faulty logic block by applying an external deactivation signal to a deactivation switch, the deactivation switch being connected with the at least one faulty logic block and being disposed on the substrate of the memory chip; and

enabling the at least one redundant block by applying an external activation signal to an activation switch, the activation switch being connected with the at least one redundant block and being disposed on the substrate of the memory chip.

24. A method for configuring a distributed processor on a memory chip, comprising:

enabling a plurality of primary logic blocks and a plurality of redundant blocks on the substrate of the memory;

testing each one of the plurality of primary logic blocks on the substrate of the memory chip for at least one circuit functionality;

identifying at least one faulty logic block in the plurality of primary logic blocks based on the testing results, the at least one faulty logic block being connected to at least one memory bank disposed on the substrate of the memory chip;

testing at least one redundant block on the substrate of the memory chip for the at least one circuit functionality, the at least one redundant block replicating the at least one faulty logic block and being connected to the at least one memory bank;

disabling at least one redundant block by applying an external signal to an activation switch, the activation switch being connected with the at least one redundant block and being disposed on the substrate of the memory chip.

Assignments (2)
SECURITY INTEREST Recorded Jan 11, 2021
From: NEUROBLADE LTD.
To: SILICON VALLEY BANK
Reel/Frame 054877/0192 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2019
From: SITY, ELAD; HILLEL, ELIAD
To: NEUROBLADE, LTD
Reel/Frame 049762/0846 →
Continuity (5)
Continuation PCTIB2018000995 · Jul 30, 2018
Provisional Application 62538722 · Jul 30, 2017
Provisional Application 62538724 · Jul 30, 2017
Provisional Application 62548990 · Aug 23, 2017
Related Publication 20190340064A1 · Nov 7, 2019