KR20170041837A - 승인 메모리 접근의 검출 방법 및 장치 - Google Patents

승인 메모리 접근의 검출 방법 및 장치 Download PDF

Info

Publication number
KR20170041837A
KR20170041837A KR1020177006430A KR20177006430A KR20170041837A KR 20170041837 A KR20170041837 A KR 20170041837A KR 1020177006430 A KR1020177006430 A KR 1020177006430A KR 20177006430 A KR20177006430 A KR 20177006430A KR 20170041837 A KR20170041837 A KR 20170041837A
Authority
KR
South Korea
Prior art keywords
cache
memory
access
memory block
address information
Prior art date
Application number
KR1020177006430A
Other languages
English (en)
Inventor
쉬롱 왕
Original Assignee
지티이 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지티이 코포레이션 filed Critical 지티이 코포레이션
Publication of KR20170041837A publication Critical patent/KR20170041837A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 승인 메모리 접근의 검출 방법을 공개하고, 캐시를 구축하여 초기화하는 단계와, 검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하는 단계와, 프로그램이 메모리에 접근할 경우, 캐시 총 위치 인덱스에 근거하여 계층 캐시 유닛의 어드레싱을 수행하고 그 계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 있는가를 판단하는 단계와, YES이면, 이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단하는 단계와, NO이면, 계장식 메모리 체크 도구를 이용하여 이번의 접근이 승인을 받은 것인가를 판단하고 접근이 승인을 받은 것일 경우 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입하는 단계를 포함한다. 본 발명에 의하면 상기 방법을 실현하기 위한 장치를 더 제공한다. 본 발명에 의하면, 메모리 접근 승인성의 검측 효율 및 소프트웨어 성능을 효과적으로 향상시킬 수 있다.

Description

승인 메모리 접근의 검출 방법 및 장치{METHOD AND DEVICE FOR DETECTING AUTHORIZED MEMORY ACCESS}
본 발명은 컴퓨터 프로그램 분야에 관한 것으로, 특히 승인 메모리 접근의 검출 방법 및 장치에 관한 것이다.
데이터 배열이 범위외에 있거나, 비 승인 지침의 조작, 에러 메모리 블록의 어드레스 정보의 릴리스 등 메모리의 비 승인 접근은 줄곧 소프트웨어 개발에 있어서 가장 쉽게 발생하고 손해가 가장 크고 가장 해결하기 어려운 문제중의 하나이다.
현재, 널리 이용되고 있는 C/C++ 메모리 접근 승인성의 검측 도구로 주로 계장식(instrumentation-based) 메모리 체크 도구와 동적 이진법 분석 도구의 두가지가 있다.
계장식 메모리 체크 도구의 구체적인 방법은 C/C++ 소스 파일을 편집할 경우, 메모리 할당과 접근 포인트에 감시 함수 계장을 삽입하고 접근된 메모리 블록의 어드레스 정보와 이번의 접근 범위에 근거하여 접근이 승인을 받은 것인가를 식별하는 것이다.
대형 소프트웨어의 메모리 접근을 검측할 경우, 계장식 메모리 체크 도구가 대량의 메모리 정보, 배타적으로 보호하는 전체 자원, 유지 도구의 각종 데이터를 검색하여야 하기 때문에 한번의 승인 메모리 접근의 검출 성능은 상대적으로 낮다. 그리고 통상의 소프트웨어의 메모리 접근은 아주 빈번히 나타나고 접근할때마다 승인성을 검사하여야 함으로 프로그램의 성능에 큰 영향을 주게 되어 계장식 메모리 체크 도구를 산업화 수준의 소프트웨어에 응용할 수 없게 되었다.
상기한 바와 같이, 계장식 메모리 체크 도구의 검측 성능은 저하되지만 통상의 소프트웨어의 대부분 메모리 접근이 승인 접근인 사실에 감안하여, 본 발명은 기존의 메모리 접근 승인성의 검측 기술에 의하면 메모리에 접근할 때마다 계장식 메모리 체크 도구가 승인성 검사를 수행하여야 함으로 성능이 저하되는 기술과제를 해결할 수 있는 승인 메모리 접근의 검출 방법을 제공하는 것을 그 목적으로 한다.
본 발명의 실시예에 있어서,
캐시를 구축하여 초기화하는 단계와,
검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하는 단계와,
프로그램이 메모리에 접근할 경우, 캐시 총 위치 인덱스에 근거하여 계층 캐시 유닛(graded cache unit)의 어드레싱을 수행하고, 그 계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 있는가를 판단하는 단계와,
YES이면, 이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단하는 단계와,
NO이면, 계장식 메모리 체크 도구를 이용하여 이번의 접근이 승인을 받은 것인가를 판단하고, 접근이 승인을 받은 것일 경우 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입하는 단계를 포함하는 승인 메모리 접근의 검출 방법을 제공한다.
상기 검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하는 단계는,
메모리 블록 사이즈에 근거하여 캐시 계층(cache grade)을 선택하는 단계와,
검측하려는 메모리 블록의 어드레스 정보에 근거하여 본 계층에 대응되는 계층 위치 인덱스를 계산하는 단계와,
상기 계층 위치 인덱스를 위치한 계층의 시작 위치에 추가하여 캐시 총 위치 인덱스를 얻는 단계를 포함한다.
상기 이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단하는 단계는,
실제로 접근한 범위가 어드레스 정보에 한정된 범위내에 있을 경우, 이번의 접근이 승인을 받은 것이라고 판단하고 검측된 프로그램을 계속하여 운행하는 단계와,
실제로 접근한 범위가 어드레스 정보에 한정된 범위를 초과하였을 경우, 이번의 접근이 승인을 받은 것이라고 판단할 수 없고 계장식 메모리 체크 도구를 통하여 이번의 접근이 승인을 받은 것인가를 판단하는 단계를 포함한다.
상기 방법은,
메모리 블록이 릴리스될 경우, 계층 캐시 유닛중의 메모리 정보를 정리하는 단계를 더 포함한다.
본 발명의 실시예에 있어서,
캐시를 구축하여 초기화하도록 구성되는 계층 캐시 구축 수단과,
검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하도록 구성되는 캐시 인덱스 계산 수단과,
프로그램이 메모리에 접근할 경우, 캐시 총 위치 인덱스에 근거하여 계층 캐시 유닛의 어드레싱을 수행하고 그 계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 있는가를 판단하도록 구성되는 어드레스 정보 판독 수단과,
계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 있을 경우, 이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단하도록 구성되는 제1 승인성 판단 수단과,
계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 없을 경우, 계장식 메모리 체크 도구에 의하여 이번의 접근이 승인을 받은 것인가를 판단하도록 구성되는 제2 승인성 판단 수단과,
계장식 메모리 체크 도구에 의하여 이번의 접근이 승인을 받은것으로 판단되었을 경우, 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입하도록 구성되는 어드레스 정보 기입 수단을 포함하는 승인 메모리 접근의 검출 장치를 제공한다.
상기 캐시 인덱스 계산 수단은,
메모리 블록 사이즈에 근거하여 캐시 계층을 선택하고,
검측하려는 메모리 블록의 어드레스 정보에 근거하여 본 계층에 대응되는 계층 위치 인덱스를 계산하며,
상기 계층 위치 인덱스를 위치한 계층의 시작 위치에 추가하여 캐시 총 위치 인덱스를 얻도록 구성된다.
상기 제1 승인성 판단 수단은,
실제로 접근한 범위가 어드레스 정보에 한정된 범위내에 있을 경우, 이번의 접근이 승인을 받은 것으로 판단하고 검측된 프로그램을 계속하여 운행하고,
실제로 접근한 범위가 어드레스 정보에 한정된 범위를 초과하였을 경우, 이번의 접근을 승인을 받은 것으로 판단할 수 없고 제2 승인성 판단 수단에 작동하도록 통지하도록 구성된다.
상기 장치는,
메모리 블록이 릴리스될 경우, 계층 캐시 유닛중의 메모리 정보를 정리하도록 구성되는 캐시 정리 수단을 더 포함한다.
본 발명의 실시예에 의하면, 프로그램의 일부성 원리를 이용하여 일정한 구간의 메모리에 대하여 한번 접근을 검사하여 접근이 승인을 받은 것인 후 메모리 어드레스 정보를 캐시링하고 그 다음, 그 구간의 메모리에 재다시 접근할 경우 직접 캐시로부터 메모리 어드레스 정보를 판독함으로서 승인 메모리 접근에 대한 판단을 빠르게 완성할 수 있고 기존의 메모리 접근 승인성 검측 기술에 의하면 메모리에 접근할 때마다 계장식 메모리 체크 도구에 의하여 승인성 검사를 수행하여야 하는 문제를 피면하고 메모리 접근 승인성의 검측 효율 및 소프트웨어 성능을 향상시킬 수 있다.
도 1은 본 발명의 한 바람직한 실시예중의 승인 메모리 접근의 검출 방법의 순서도를 나타낸 도이다.
도 2는 본 발명의 한 바람직한 실시예중의 검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시캐시(cache) 총 위치 인덱스를 계산하는 단계를 나타낸 도이다.
도 3은 본 발명의 한 바람직한 실시예중의 승인 메모리 접근의 검출 장치의 구조를 나타낸 도이다.
도 4는 본 발명의 다른 한 바람직한 실시예중의 승인 메모리 접근의 검출 장치의 구조를 나타낸 도이다.
본 발명의 목적의 실현, 기능 특징, 장점을 실시예를 결합하고 도면을 참조하여 상세하게 설명한다.
여기서, 아래 설명하는 구체적인 실시예는 본 발명을 해석하기 위한 것으로 본 발명을 한정하는 것은 아니다.
본 발명에 있어서 승인 메모리 접근의 검출 방법을 제공하는데, 도 1을 참조하면, 본 발명의 일 실시예에 있어서, 승인 메모리 접근의 검출 방법은 적어도 하기 단계를 포함한다.
캐시를 구축하여 초기화하고(S10), 예를 들어, 통상의 소프트웨어 메모리의 사용 상황에 대한 통계 데이터에 근거하여 7계층의 캐시를 구축하고 각 계층의 캐시의 65536개 유닛은 각각 사이즈가 1 ~ 8, 9 ~ 128, 129 ~ 1K, 1k 이상 ~ 8K, 8k 이상 ~ 64K, 64k 이상 ~ 1M, 1M 이상의 바이트의 메모리 블록에 대응된다.
검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하고, 메모리 정보에 근거하여 계층(grade) 캐시 인덱스를 계산하고, 예를 들어, 우선, 메모리 블록 사이즈에 근거하여 캐시 계급을 선택하고 8바이트 이하의 메모리 블록은 제1계층의 캐시에 속하고 사이즈가 8바이트를 초과하고 128바이트 미만인 메모리 블록은 제2계층의 캐시에 속하며, ……, 기타 메모리 블록의 선택 방식도 유사하다. 그 다음, 검측하려는 메모리 어드레스를 우측으로 몇 바이트 이동시켜 0XFFFF에 AND연산을 수행면 얻은 값이 그 계층의 인덱스이다. 우측으로 이동하는 바이트 수는 위치한 캐시 계층과 관련되고 제1계층으로부터 제7계층까지 차례로 3, 7, 10, 13, 16, 20, 20 바이트 이동한다. 마지막에, 계층 인덱스에 위치한 계층의 시작 위치를 추가하여 캐시 총 위치 인덱스를 얻는다. 캐시 총 위치 인덱스는 캐시중의 한 캐시 유닛을 말한다 (S20).
프로그램이 메모리에 접근할 경우, 캐시 총 위치 인덱스에 근거하여 계층 캐시 유닛의 어드레싱을 수행하고 그 계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 있는가를 판단하고(S30), YES이면 단계S40를 수행하고 NO이면 단계S50를 수행한다.
이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단한다(S40).
계장식 메모리 체크 도구에 의하여 이번의 접근이 승인을 받은 것인가를 판단하고 접근이 승인을 받은 것일 경우, 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입한다(S50).
본 발명의 실시예에 있어서, 메모리 블록의 어드레스 정보는 이번에 접근한 메모리 블록의 시작 어드레스와 종료 어드레스를 말한다. 프로그램이 메모리를 처음으로 접근할 경우, 캐시 유닛에 메모리 블록의 어드레스 정보를 사전에 기억하지 않았기 때문에 판독 결과는 없다. 이때, 접근이 승인을 받은 것인가(예를 들어, 데이터 배열이 범위를 초과하였는가 등)는 통상의 수단(예를 들어, 계장식 메모리 체크 도구 등)을 통하여 완성한다. 계장식 메모리 체크 도구에 의하여 접근이 승인을 받은것으로 판단되었을 경우, 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입한다. 프로그램이 두번째 및 그 다음의 접근을 수행할 경우, 계층 캐시 유닛으로부터 판단한 메모리 블록의 어드레스 정보에 근거하여 이번의 메모리 접근의 범위를 결합하여 이번의 접근이 승인을 받은 것인가를 신속히 판단할 수 있다.
본 발명은 프로그램의 일부성 원리를 이용하여 일정한 구간의 메모리에 대하여 승인 접근을 한번 검사한 후 메모리 어드레스 정보를 캐싱하고 그 다음, 그 구간의 메모리에 재다시 접근할 경우 직접 캐시로부터 메모리 어드레스 정보를 판독함으로서 승인 메모리 접근에 대한 판단을 빠르게 완성할 수 있고 기존의 메모리 접근 승인성 검측 기술에 의하면 메모리에 접근할 때마다 계장식 메모리 체크 도구에 의하여 승인성 검사를 수행하여야 하는 문제를 피면하고 메모리 접근 승인성의 검측 효율 및 소프트웨어 성능을 향상시킬 수 있다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 있어서 상기한 단계S20는 하기 단계를 포함한다.
메모리 블록 사이즈에 근거하여 캐시 계층을 선택하고(S21), 예를 들어 우선, 메모리 블록 사이즈에 근거하여 캐시 계층을 선택하고 8바이트 이하의 메모리 블록은 제1계층의 캐시에 속하고 사이즈가 8바이트를 초과하고 128바이트 미만인 메모리 블록은 제2계층의 캐시에 속하며, ……, 기타 메모리 블록의 선택 방식도 유사하다.
검측하려는 메모리 블록의 어드레스 정보에 근거하여 본 계층에 대응되는 계층 위치 인덱스를 계산하고(S22), 예를 들어, 검측하려는 메모리 어드레스를 우측으로 몇 바이트 이동시켜 0XFFFF에 AND연산을 수행하면 얻은 값이 그 계층의 인덱스이다. 우측으로 이동하는 바이트 수는 위치한 캐시 계층과 관련되고 제1계층으로부터 제7계층까지 차례로 3, 7, 10, 13, 16, 20, 20 바이트 이동한다.
상기 계층 위치 인덱스를 위치한 계층의 시작 위치에 추가하여 캐시 총 위치 인덱스를 얻는다(S23). 예를 들어, 계층 인덱스에 위치한 계층의 시작 위치를 추가하여 캐시 총 위치 인덱스를 얻는다. 캐시 총 위치 인덱스는 캐시중의 한 캐시 유닛을 가리킨다.
본 발명의 일 실시예에 있어서, 상기한 단계S40는 하기 단계를 포함한다.
실제로 접근한 범위가 어드레스 정보에 한정된 범위내에 있을 경우, 이번의 접근이 승인을 받은 것으로 판단하고 검측된 프로그램을 계속하여 운행하고,
실제로 접근한 범위가 어드레스 정보에 한정된 범위를 초과하였을 경우, 이번의 접근이 승인을 받은 것이라고 판단할 수 없고 단계S50를 수행한다.
상기한 바와 같이, 메모리 블록의 어드레스 정보는 이번에 접근한 메모리 블록의 시작 어드레스와 종료 어드레스를 말하고, 시작 어드레스와 종료 어드레스에 의하여 접근 범위가 한정된다. 실제로 접근한 범위가 어드레스 정보에 한정된 범위내에 있을 경우, 접근은 범위를 초과하지 않았고 이번의 접근이 승인을 받은 것으로 판단하고 계장식 검측 도구를 이용하여 검측할 필요가 없고 검측된 프로그램을 계속하여 운행한다. 실제로 접근한 범위가 어드레스 정보에 한정된 범위를 초과하였을 경우, 접근은 범위를 초과하였고 이번의 접근이 승인을 받은 것인가를 판단할 수 없고 계장식 메모리 체크 도구를 이용하여 검측하여야 한다.
메모리 블록이 릴리스될 경우, 지난번의 승인성 판단 프로세스에서 캐시 유닛에 기억한 어드레스 정보로 인한 어드레싱 에러를 피면하기 위하여, 본 발명의 일 실시예에 있어서, 상기한 방법은 하기 단계를 더 포함한다.
메모리 블록이 릴리스될 경우, 계층 캐시 유닛중의 메모리 정보를 정리한다. 메모리 블록이 릴리스될 경우, 대응되는 캐시 유닛중의 메모리 정보 시작 어드레스는 극대 어드레스 값으로, 종료 어드레스는 0으로 설정한다.
본 발명에 있어서 상기 방법을 실현하기 위한 승인 메모리 접근의 검출 장치를 더 제공하는데, 도 3에 도시한 바와 같이 본 발명의 일 실시예에 있어서, 승인 메모리 접근의 검출 장치는,
캐시를 구축하여 초기화하는 계층캐시 구축 수단(10)과, 예를 들어 계층 캐시 구축 수단(10)은 통상의 소프트웨어 메모리의 사용 상황에 대한 통계 데이터에 근거하여 7계층의 캐시를 구축하고 각 계층의 캐시의 65536개의 유닛은 각각 사이즈가 1 ~ 8, 9 ~ 128, 129 ~ 1K, 1k 이상 ~ 8K, 8k 이상 ~ 64K, 64k 이상 ~ 1M, 1M 이상의 바이트의 메모리 블록에 대응되고;
검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하도록 구성되는 캐시 인덱스 계산 수단(20)과, 예를 들어, 캐시 인덱스 계산 수단(20)은 우선 메모리 블록 사이즈에 근거하여 캐시 계층을 선택하고 8바이트 이하의 메모리 블록은 제1계층의 캐시에 속하고 사이즈가 8바이트를 초과하고 128바이트 미만인 메모리 블록은 제2계층의 캐시에 속하며, ……, 기타 메모리 블록의 선택 방식도 유사하고, 그 다음, 검측하려는 메모리 어드레스를 우측으로 몇 바이트 이동시켜 0XFFFF에 AND연산을 수행하면 얻은 값이 그 계층의 인덱스이다. 우측으로 이동하는 바이트 수는 위치한 캐시 계층과 관련되고 제1계층으로부터 제7계층까지 차례로 3, 7, 10, 13, 16, 20, 20 바이트 이동한다. 마지막으로, 계층 인덱스에 위치한 계층의 시작 위치를 추가하여 캐시 총 위치 인덱스를 얻는다. 캐시 총 위치 인덱스는 캐시중의 한 캐시 유닛을 가리킨고;
프로그램이 메모리에 접근할 경우, 캐시 총 위치 인덱스에 근거하여 계층 캐시 유닛의 어드레싱을 수행하고 그 계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 것인가를 판단하도록 구성되는 어드레스 정보 판독 수단(30)과,
계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독하였을 경우, 이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단하도록 구성되는 제1 승인성 판단 수단(40)과,
계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 없을 경우, 계장식 메모리 체크 도구에 의하여 이번의 접근이 승인을 받은 것인가를 판단하도록 구성되는 제2 승인성 판단 수단(50)과,
계장식 메모리 체크 도구에 의하여 이번의 접근이 승인을 받은것으로 판단되었을 경우, 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입하도록 구성되는 어드레스 정보 기입 수단(60)을 포함한다.
본 발명의 실시예에 있어서, 메모리 블록의 어드레스 정보는 이번에 접근한 메모리 블록의 시작 어드레스와 종료 어드레스를 말한다. 프로그램이 메모리를 처음으로 접근할 경우, 캐시 유닛에 메모리 블록의 어드레스 정보를 사전에 기억하지 않았음으로 어드레스 정보 판독 수단(30)이 판독한 결과는 없다. 이때, 접근이 승인을 받은 것인가(예를 들어, 데이터 배열이 범위를 초과하였는가 등)는 제2 승인성 판단 수단(50)(예를 들어, 계장식 메모리 체크 도구 등)에 의하여 완성한다. 제2 승인성 판단 수단(50)에 의하여 접근이 승인을 받은것으로 판단되었을 경우, 어드레스 정보 기입 수단(60)이 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입하고 이번의 접근이 승인을 받은 것이 아니면 이번의 접근이 승인을 받은 것이 아니라는 판단 정보를 출력한다. 프로그램이 두번째 및 그 다음의 접근을 수행할 경우, 계층 캐시 유닛으로부터 판독한 메모리 블록의 어드레스 정보에 근거하여 이번의 메모리 접근의 범위를 결합하여 이번의 접근이 승인을 받은 것인가를 신속히 판단할 수 있다.
본 발명의 일 실시예에 있어서, 캐시 인덱스 계산 수단(20)은,
메모리 블록 사이즈에 근거하여 캐시 계층을 선택하고,
검측하려는 메모리 블록의 어드레스 정보에 근거하여 본 계층에 대응되는 계층 위치 인덱스를 계산하며,
상기 계층 위치 인덱스를 위치한 계층의 시작 위치에 추가하여 캐시 총 위치 인덱스를 얻도록 구성된다.
본 발명의 실시예에 있어서, 제1 승인성 판단 수단(40)은
실제로 접근한 범위가 어드레스 정보에 한정된 범위내에 있을 경우, 이번의 접근이 승인을 받은 것으로 판단하고 검측된 프로그램을 계속하여 운행하고,
실제로 접근한 범위가 어드레스 정보에 한정된 범위를 초과하였을 경우, 이번의 접근이 승인을 받은 것으로 판단할 수 없고 제2 승인성 판단 수단(50)에 작동하도록 통지하도록 구성된다.
상기한 바와 같이, 메모리 블록의 어드레스 정보는 이번에 접근한 메모리 블록의 시작 어드레스와 종료 어드레스를 말하고 시작 어드레스와 종료 어드레스에 의하여 접근 범위가 한정된다. 실제로 접근한 범위가 어드레스 정보에 한정된 범위내에 있을 경우, 접근은 범위를 초과하지 않았고 제1 승인성 판단 수단(40)은 이번의 접근이 승인을 받은 것으로 판단하고 계장식 검측 도구를 이용하여 검측할 필요가 없고 검측된 프로그램을 계속하여 운행한다. 실제로 접근한 범위가 어드레스 정보에 한정된 범위를 초과하였을 경우, 접근은 범위를 초과하였고 이번의 접근이 승인을 받은 것인가를 판단할 수 없고 계장식 메모리 체크 도구를 이용하여 검측하여야 하고 제1 승인성 판단 수단(40)은 제2 승인성 판단 수단(50)에 작동하도록 통지한다.
도 4에 도시한 바와 같이 일 실시예에 있어서, 상기 장치는,
메모리 블록이 릴리스될 경우, 계층 캐시 유닛중의 메모리 정보를 정리하도록 구성되는 캐시 정리 수단(70)을 더 포함한다. 예를 들어, 메모리 블록이 릴리스될 경우, 캐시 정리 수단(70)은 대응되는 캐시 유닛중의 메모리 정보의 시작 어드레스는 극대 어드레스 값으로, 종료 어드레스는 0으로 설정한다.
이상은 본 발명의 바람직한 실시예이고 본 발명의 보호 범위가 이에 한정되는 것은 아니고 본 발명의 명세서 및 도면에 공개된 내용에 기반한 동등 구조 또는 동등 프로세스의 변환, 혹은 기타 관련 기술분야로의 직접 또는 간접적인 응용은 모두 본 발명의 보호 범위에 포함된다.
산업 이용 가능성
상기한 바와 같이, 본 발명의 실시예에서 제공하는 승인 메모리 접근의 검출 방법 및 장치에 의하면 승인 메모리 접근에 대한 판단을 신속히 완성할 수 있고 기존의 메모리 접근 승인성의 검측 기술에 의하면 메모리에 접근할 때마다 계장식 메모리 체크 도구에 의하여 승인성을 검사하여야하는 문제를 피면하고 메모리 접근 승인성의 검측 효율 및 소프트웨어 성능을 향상시키는 효과를 실현할 수 있다.

Claims (8)

  1. 캐시를 구축하여 초기화하는 단계와,
    검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하는 단계와,
    프로그램이 메모리에 접근할 경우, 캐시 총 위치 인덱스에 근거하여 계층 캐시 유닛의 어드레싱을 수행하고, 그 계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 있는가를 판단하는 단계와,
    YES이면, 이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단하는 단계와,
    NO이면, 계장식 메모리 체크 도구를 이용하여 이번의 접근이 승인을 받은 것인가를 판단하고, 접근이 승인을 받은 것일 경우 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입하는 단계를 포함하는 승인 메모리 접근의 검출 방법.
  2. 청구항 1에 있어서,
    상기 검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하는 단계는,
    메모리 블록 사이즈에 근거하여 캐시 계층을 선택하는 단계와,
    검측하려는 메모리 블록의 어드레스 정보에 근거하여 본 계층에 대응되는 계층 위치 인덱스를 계산하는 단계와,
    상기 계층 위치 인덱스를 위치한 계층의 시작 위치에 추가하여 캐시 총 위치 인덱스를 얻는 단계를 포함하는 승인 메모리 접근의 검출 방법.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단하는 단계는,
    실제로 접근한 범위가 어드레스 정보에 한정된 범위내에 있을 경우, 이번의 접근이 승인을 받은 것이라고 판단하고 검측된 프로그램을 계속하여 운행하는 단계와,
    실제로 접근한 범위가 어드레스 정보에 한정된 범위를 초과하였을 경우, 이번의 접근이 승인을 받은 것이라고 판단할 수 없고 계장식 메모리 체크 도구를 통하여 이번의 접근이 승인을 받은 것인가를 판단하는 단계를 포함하는 승인 메모리 접근의 검출 방법.
  4. 청구항 3에 있어서,
    메모리 블록이 릴리스될 경우, 계층 캐시 유닛중의 메모리 정보를 정리하는 단계를 더 포함하는 승인 메모리 접근의 검출 방법.
  5. 캐시를 구축하여 초기화하도록 구성되는 계층 캐시 구축 수단과,
    검측하려는 메모리 블록의 사이즈와 어드레스에 근거하여 캐시 총 위치 인덱스를 계산하도록 구성되는 캐시 인덱스 계산 수단과,
    프로그램이 메모리에 접근할 경우, 캐시 총 위치 인덱스에 근거하여 계층 캐시 유닛의 어드레싱을 수행하고 그 계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 있는가를 판단하도록 구성되는 어드레스 정보 판독 수단과,
    계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 있을 경우, 이번의 메모리 접근의 범위를 결합하여 이번의 접근을 계장식 메모리 체크 도구를 이용하여 검측하여야 하는가를 판단하도록 구성되는 제1 승인성 판단 수단과,
    계층 캐시 유닛으로부터 메모리 블록의 어드레스 정보를 판독할 수 없을 경우, 계장식 메모리 체크 도구에 의하여 이번의 접근이 승인을 받은 것인가를 판단하도록 구성되는 제2 승인성 판단 수단과,
    계장식 메모리 체크 도구에 의하여 이번의 접근이 승인을 받은것으로 판단되었을 경우, 계층 캐시 유닛에 메모리 블록의 어드레스 정보를 기입하도록 구성되는 어드레스 정보 기입 수단을 포함하는 승인 메모리 접근의 검출 장치.
  6. 청구항 5에 있어서,
    상기 캐시 인덱스 계산 수단은,
    메모리 블록 사이즈에 근거하여 캐시 계층을 선택하고,
    검측하려는 메모리 블록의 어드레스 정보에 근거하여 본 계층에 대응되는 계층 위치 인덱스를 계산하며,
    상기 계층 위치 인덱스를 위치한 계층의 시작 위치에 추가하여 캐시 총 위치 인덱스를 얻도록 구성되는 승인 메모리 접근의 검출 장치.
  7. 청구항 5 또는 청구항 6에 있어서,
    상기 제1 승인성 판단 수단은,
    실제로 접근한 범위가 어드레스 정보에 한정된 범위내에 있을 경우, 이번의 접근이 승인을 받은 것으로 판단하고 검측된 프로그램을 계속하여 운행하고,
    실제로 접근한 범위가 어드레스 정보에 한정된 범위를 초과하였을 경우, 이번의 접근을 승인을 받은 것으로 판단할 수 없고 제2 승인성 판단 수단에 작동하도록 통지하도록 구성되는 승인 메모리 접근의 검출 장치.
  8. 청구항 7에 있어서,
    메모리 블록이 릴리스될 경우, 계층 캐시 유닛중의 메모리 정보를 정리하도록 구성되는 캐시 정리 수단을 더 포함하는 승인 메모리 접근의 검출 장치.
KR1020177006430A 2014-08-08 2014-10-23 승인 메모리 접근의 검출 방법 및 장치 KR20170041837A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410390874.2A CN105373488A (zh) 2014-08-08 2014-08-08 合法内存访问的探测方法及装置
CN201410390874.2 2014-08-08
PCT/CN2014/089325 WO2015154431A1 (zh) 2014-08-08 2014-10-23 合法内存访问的探测方法及装置

Publications (1)

Publication Number Publication Date
KR20170041837A true KR20170041837A (ko) 2017-04-17

Family

ID=54287195

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177006430A KR20170041837A (ko) 2014-08-08 2014-10-23 승인 메모리 접근의 검출 방법 및 장치

Country Status (6)

Country Link
US (1) US10210103B2 (ko)
EP (1) EP3179374A4 (ko)
JP (1) JP6419337B2 (ko)
KR (1) KR20170041837A (ko)
CN (1) CN105373488A (ko)
WO (1) WO2015154431A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289570B2 (en) * 2015-12-24 2019-05-14 Mcafee, Llc Detecting data corruption by control flow interceptions
EP3333714B1 (en) * 2016-12-07 2020-02-12 Commissariat A L'energie Atomique Et Aux Energies Alternatives A computer-implemented method and a system for encoding a stack application memory state using shadow memory
CN113918393B (zh) * 2021-09-16 2024-04-23 盾构及掘进技术国家重点实验室 一种功能安全系统内存检测方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731740A (en) * 1984-06-30 1988-03-15 Kabushiki Kaisha Toshiba Translation lookaside buffer control system in computer or virtual memory control scheme
US5581697A (en) * 1994-01-28 1996-12-03 Sun Microsystems, Inc. Method and apparatus for run-time error checking using dynamic patching
US5590329A (en) * 1994-02-04 1996-12-31 Lucent Technologies Inc. Method and apparatus for detecting memory access errors
JP2757777B2 (ja) * 1994-05-26 1998-05-25 住友金属工業株式会社 メモリの不正アクセス検出方法及びシステム
US5761729A (en) * 1996-07-17 1998-06-02 Digital Equipment Corporation Validation checking of shared memory accesses
JP4131789B2 (ja) * 2001-10-25 2008-08-13 富士通株式会社 キャッシュ制御装置および方法
JP2004013556A (ja) 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法
JP3876771B2 (ja) * 2002-06-12 2007-02-07 日本電気株式会社 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法
US7721054B2 (en) 2005-01-18 2010-05-18 Texas Instruments Incorporated Speculative data loading using circular addressing or simulated circular addressing
US8136091B2 (en) * 2007-01-31 2012-03-13 Microsoft Corporation Architectural support for software-based protection
US7861231B2 (en) * 2007-03-09 2010-12-28 International Business Machines Corporation System and method of identification of dangling pointers
US8539455B2 (en) * 2007-03-26 2013-09-17 Rogue Wave Software, Inc. System for and method of capturing performance characteristics data from a computer system and modeling target system performance
US8478948B2 (en) * 2008-12-04 2013-07-02 Oracle America, Inc. Method and system for efficient tracing and profiling of memory accesses during program execution
CN101561775B (zh) * 2009-05-12 2010-09-15 华为技术有限公司 内存监控方法和装置
CN101996085A (zh) * 2009-08-27 2011-03-30 鸿富锦精密工业(深圳)有限公司 Acpi表处理系统及方法
US9471315B2 (en) * 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
CN102650959B (zh) * 2012-03-31 2014-06-04 华为技术有限公司 一种检测内存单元的方法及设备

Also Published As

Publication number Publication date
US10210103B2 (en) 2019-02-19
EP3179374A4 (en) 2017-08-16
WO2015154431A1 (zh) 2015-10-15
EP3179374A1 (en) 2017-06-14
CN105373488A (zh) 2016-03-02
JP2017523544A (ja) 2017-08-17
US20170235684A1 (en) 2017-08-17
JP6419337B2 (ja) 2018-11-07

Similar Documents

Publication Publication Date Title
US7992061B2 (en) Method for testing reliability of solid-state storage medium
KR100873943B1 (ko) 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법
US10261705B2 (en) Efficient data consistency verification for flash storage
US10116436B1 (en) Techniques for preventing memory timing attacks
KR101779992B1 (ko) 데이터 저장 디바이스들에 대한 액세스들의 공간적인 분포에 기초하는 캐싱
US8051337B2 (en) System and method for fast cache-hit detection
CN103116536B (zh) 存储装置的容量检测方法
TWI584118B (zh) 讀取平均化方法及使用讀取平均化方法之記憶體裝置
CN100440163C (zh) 对计算机程序进行运行时分析的方法和系统
US9858289B2 (en) Storage controller and method for managing a solid-state memory
US10643736B2 (en) Method, apparatus and electronic device for read/write speed testing
US8359291B2 (en) Architecture-aware field affinity estimation
US8245084B2 (en) Two-level representative workload phase detection
KR20170041837A (ko) 승인 메모리 접근의 검출 방법 및 장치
CN105304140A (zh) 电子设备的存储器性能的测试方法及装置
KR20170009554A (ko) 테스트 시스템 및 테스트 방법
CN106933750B (zh) 用于多级缓存中数据及状态的验证方法及装置
CN115480697A (zh) 数据处理方法、装置、计算机设备及存储介质
US20100251013A1 (en) Method for processing bad block in redundant array of independent disks
CN104166583B (zh) 一种基于移动设备虚拟化环境的数据存储方法及装置
CN105224254A (zh) 一种数据处理方法及电子设备
TWI620191B (zh) 依記憶體模組之物理位址範圍測試記憶體之系統及方法
Jianxi et al. Adaptive prefetching scheme for storage system in multi-application environment
KR20130040606A (ko) 메모리 관리 장치 및 방법
CN117971721A (zh) 多核处理器的模块验证方法、装置及电子设备

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application