发明名称 Hardware and software methodologies for detecting illegal memory address of a memory access operation
摘要 A system for providing bound checking to insure memory accessed, including indirect object access through pointers, is within a range of defined object bounds is disclosed herein. Embodiments of the present disclosure provide hardware and software methodology for bound checking, where bound checking is performed in hardware and in parallel with the execution of the memory accesses using dedicated hardware. There is reduced overhead associated with the enforcement of bound checking, and hardware is modified to include new registers and/or instructions for bound checking support. An exception is raised when an out of bound violation is detected. According to some embodiments, a compiler extracts bound information from the respective programming language (e.g. C/C++, Java) and generates tables with special APIs known to the hardware that enables both execution of the program and bound checking to be performed simultaneously.
申请公布号 US9535613(B2) 申请公布日期 2017.01.03
申请号 US201414551915 申请日期 2014.11.24
申请人 Futurewei Technologies, Inc. 发明人 Yazdani Reza;Tian Chen
分类号 G06F12/00;G06F3/06;G06F12/02 主分类号 G06F12/00
代理机构 Schwegman Lundberg & Woessner, P.A. 代理人 Schwegman Lundberg & Woessner, P.A.
主权项 1. An apparatus for detecting illegal memory access by a software function, comprising: a register operable to store a reference to a base address of a map table, wherein the map table comprises an object address and a size value of a memory operation of the software function, wherein a legal memory range for the memory operation is computed based on the object address and the size value; a cache operable to store the map table; and a processor operable to execute a memory access involving a value pair comprising a first value and a second value for a declared pointer within the software function, wherein the first value comprises a current address of a memory operation, the second value comprises a reference to the object address and the size value of the map table, and wherein the declared pointer is initialized with a memory address of the value pair, wherein the processor is further operable to perform bound checking based on the legal memory range and the current address, and to signal an interrupt responsive to a memory access being outside of the legal memory range.
地址 Plano TX US