IP Library › Granted Patent US 12,210,642
Granted Patent B2
US 12,210,642 · App. 17/954,262 · Granted Jan 28, 2025

Permission control via data redundancy in deterministic streaming system

Inventors: Zefu Dai (Toronto, CA); John Thompson (Minneapolis, MN)
Assignee: GROQ, INC.
G06F21/6218
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 12,210,642
App. No.
17/954,262
Granted
Jan 28, 2025
Kind
B2
Abstract

Embodiments are directed to a computing system with permission control via data redundancy. The computing system includes a memory and a permission control circuit coupled to the memory. The permission control circuit encodes a first data vector by using a bit position register with a first permission control code for a first user, writes the encoded first data vector into the memory, and updates content of the bit position register from the first permission control code to a second permission control code for a second user. The encoded first data vector written into the memory is inaccessible for the second user based on the updated content of the bit position register.

Claims (59)

1. A computing system comprising:

a memory; and

a permission control circuit coupled to the memory, the permission control circuit configured to:

encode a first data vector by using a bit position register with a first permission control code for a first user,

write the encoded first data vector into the memory, and

update content of the bit position register from the first permission control code to a second permission control code for a second user,

wherein the encoded first data vector written into the memory is inaccessible for the second user based on the updated content of the bit position register.

2. The computing system of claim 1 , wherein the encoded first data vector written into the memory is only accessible by the first user prior to updating the content of the bit position register.

3. The computing system of claim 1 , wherein the permission control circuit is further configured to:

encode a second data vector by using the bit position register with the second permission control code; and

write the encoded second data vector into the memory, wherein the encoded second data vector written into the memory is inaccessible for the first user and is accessible only for the second user based on the updated content of the bit position register.

4. The computing system of claim 1 , wherein the first permission control code indicates a position of a bit in the first data vector to be inverted when encoding the first data vector.

5. The computing system of claim 1 , wherein the permission control circuit is further configured to:

invert a bit in the first data vector in accordance with the first permission control code.

6. The computing system of claim 1 , wherein the permission control circuit is further configured to:

read the encoded first data vector from the memory;

decode the first data vector read from the memory by using the bit position register with the second permission control code;

assert an uncorrectable error flag indicating an uncorrectable error in the decoded first data vector;

swap, based on the asserted uncorrectable error flag, the decoded first data vector with a predetermined data vector; and

output the predetermined data vector as read data indicating that the decoded first data vector is inaccessible for the second user.

7. The computing system of claim 6 , wherein:

the first permission control code indicates a first position of a first bit in the first data vector inverted when encoding the first data vector before writing the encoded first data vector into the memory; and

the second permission control code indicates a second position of a second bit in the first data vector read from the memory to be inverted when decoding the first data vector.

8. The computing system of claim 1 , wherein the permission control circuit is further configured to:

read the encoded first data vector from the memory;

prior to updating the content of the bit position register, decode the first data vector by using the bit position register with the first permission control code for the first user;

assert a no-error flag indicating no error in the decoded the first data vector; and

output, based on the asserted no-error flag, the decoded first data vector as read data requested by the first user.

9. The computing system of claim 1 , wherein the permission control circuit is further configured to:

decode the first data vector by inverting a bit in the first data vector read from the memory in accordance with the second permission control code.

10. The computing system of claim 1 , wherein the permission control circuit is further configured to:

encode the first data vector by further using a single-error correcting and double-error detecting code (SECDED).

11. The computing system of claim 1 , wherein the permission control circuit is integrated into a deterministic streaming processor of one or more deterministic streaming processors in the computing system.

12. The computing system of claim 1 , wherein the permission control circuit is shared by a plurality of deterministic streaming processors in the computing system.

13. A method of writing data into a memory, the method comprising:

encoding a first data vector by using a bit position register with a first permission control code for a first user;

writing the encoded first data vector into the memory; and

updating content of the bit position register from the first permission control code to a second permission control code for a second user, wherein the encoded first data vector written into the memory is inaccessible for the second user based on the updated content of the bit position register.

14. The method of claim 13 , wherein the encoded first data vector written into the memory is only accessible by the first user prior to updating the content of the bit position register.

15. The method of claim 13 , further comprising:

encoding a second data vector by using the bit position register with the second permission control code; and

writing the encoded second data vector into the memory, wherein the encoded second data vector written into the memory is inaccessible for the first user and is accessible only for the second user based on the updated content of the bit position register.

16. The method of claim 13 , further comprising:

encoding the first data vector by inverting a bit in the first data vector in accordance with the first permission control code.

17. A method of reading data from a memory, the method comprising:

reading, from the memory, a first data vector that was encoded by using a bit position register with a first permission control code for a first user;

decoding the first data vector by using the bit position register having content updated to a second permission control code for a second user;

asserting an uncorrectable error flag indicating an uncorrectable error in the decoded first data vector;

swapping, based on the asserted uncorrectable error flag, the decoded first data vector with a predetermined data vector; and

outputting the predetermined data vector as read data indicating that the decoded first data vector is inaccessible for the second user.

18. The method of claim 17 , further comprising:

prior to updating the content of the bit position register, decoding the first data vector by using the first permission control code for the first user;

asserting a no-error flag indicating no error in the decoded the first data vector; and

outputting, based on the asserted no-error flag, the decoded first data vector as read data requested by the first user.

19. The method of claim 17 , wherein:

the first permission control code indicates a first position of a first bit in the first data vector inverted when encoding the first data vector before writing the encoded first data vector into the memory; and

the second permission control code indicates a second position of a second bit in the first data vector read from the memory to be inverted when decoding the first data vector.

20. The method of claim 17 , further comprising:

decoding the first data vector by inverting a bit in the first data vector read from the memory in accordance with the second permission control code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2022
From: DAI, ZEFU; THOMPSON, JOHN
To: GROQ, INC.
Reel/Frame 061247/0740 →
Continuity (2)
Provisional Application 63271651 · Oct 25, 2021
Related Publication 20230129113A1 · Apr 27, 2023
References Cited (6)
US 20200213313A1 · Yakan · 2020 [cited by examiner]
US 20200285498A1 · Keeth · 2020 [cited by examiner]
US 20210326218A1 · Rachapudi · 2021 [cited by examiner]
US 20220342573A1 · Cai · 2022 [cited by examiner]
US 20230090508A1 · Yoo · 2023 [cited by examiner]
Kappes, Giorgos, Andromachi Hatzieleftheriou, and Stergios V. Anastasiadis. “Multitenant access control for cloud-aware distributed filesystems.” IEEE Transactions on Dependable and Secure Computing 16.6 (2017): 1070-10… [cited by examiner]