US 12,373,213 B2
Hardware enforcement of boundaries on the control, space, time, modularity, reference, initialization, and mutability aspects of software
Daniel Shawcross Wilkerson, Berkeley, CA (US)
Assigned to WHOLE SKY TECHNOLOGIES COMPANY, Mill Valley, CA (US)
Filed by WHOLE SKY TECHNOLOGIES COMPANY, Mill Valley, CA (US)
Filed on Aug. 30, 2021, as Appl. No. 17/461,563.
Application 17/461,563 is a continuation in part of application No. PCT/US2020/029406, filed on Apr. 22, 2020.
Claims priority of provisional application 63/071,934, filed on Aug. 28, 2020.
Claims priority of provisional application 62/837,145, filed on Apr. 22, 2019.
Prior Publication US 2021/0389946 A1, Dec. 16, 2021
Int. Cl. G06F 9/30 (2018.01); G06F 8/51 (2018.01); G06F 9/32 (2018.01); G06F 9/34 (2018.01); G06F 9/50 (2006.01); G06F 12/0882 (2016.01); G06F 12/1009 (2016.01); G06F 12/14 (2006.01); G06F 21/52 (2013.01); G06F 21/54 (2013.01)
CPC G06F 9/3005 (2013.01) [G06F 8/51 (2013.01); G06F 9/30054 (2013.01); G06F 9/323 (2023.08); G06F 9/34 (2013.01); G06F 9/5044 (2013.01); G06F 12/0882 (2013.01); G06F 12/1009 (2013.01); G06F 12/14 (2013.01); G06F 21/52 (2013.01); G06F 21/54 (2013.01)] 3 Claims
OG exemplary drawing
 
1. A method for regulating an execution of a program on a computer, said method comprising:
providing said computer with an absolute-pointer, said absolute-pointer comprising a target-address and an object-id, said target-address comprising a target address data-page-index and a target address data-page-offset,
providing said computer with data addresses, said data addresses comprising a data address data-page-index and a data address data-page-offset, some of said data addresses comprising data,
annotating some of said data-page indexes with a data-page meta-datum, at least one of said data-page meta-datum comprising a page-class-id,
annotating at least one of said page-class-ids with a page-class-meta-datum using a page-class-id-map,
annotating at least one page-class-meta-datum with a map-object-metadata-table, said map-object-metadata-table annotating said object-id with an object-metadatum comprised of metadata,
providing at least one said object-metadatum with an object-start and an object-length,
providing said computer with a memory-access instruction which accesses data at said target-address through said absolute-pointer,
when a memory-access instruction attempts to access data at said target-address through said absolute-pointer, performing the following steps:
finding said data-page meta-datum annotated onto said target address data-page-index,
finding said page-class-id of said data-page meta-datum,
finding said page-class-meta-datum annotated onto said page-class-id using said page-class-id-map,
finding said map-object-metadata-table annotated onto said page-class-meta-datum,
finding said object-metadatum annotated by said map-object-metadata-table onto said object-id of said absolute-pointer,
finding said object-start and said object-length of said object-metadatum,
computing an object-end as a sum of said object-start and said object-length,
checking if said target-address of said absolute-pointer is greater than or equal to said object-start,
if said target-address of said absolute-pointer is not greater than or equal to said object-start, raising a fault,
if said target-address of said absolute pointer is greater than or equal to said object start, checking if said target-address of said absolute-pointer plus an access-width is less than or equal to said object-end,
if said target-address of said absolute-pointer plus said access-width is not less than or equal to said object-end, raising a fault.