KR100497671B1 - 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템 - Google Patents

메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템 Download PDF

Info

Publication number
KR100497671B1
KR100497671B1 KR10-2002-0039334A KR20020039334A KR100497671B1 KR 100497671 B1 KR100497671 B1 KR 100497671B1 KR 20020039334 A KR20020039334 A KR 20020039334A KR 100497671 B1 KR100497671 B1 KR 100497671B1
Authority
KR
South Korea
Prior art keywords
address
memory access
interrupt
routine
service routine
Prior art date
Application number
KR10-2002-0039334A
Other languages
English (en)
Other versions
KR20040005050A (ko
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 주식회사 인터와이즈
Priority to KR10-2002-0039334A priority Critical patent/KR100497671B1/ko
Publication of KR20040005050A publication Critical patent/KR20040005050A/ko
Application granted granted Critical
Publication of KR100497671B1 publication Critical patent/KR100497671B1/ko

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04FFINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
    • E04F13/00Coverings or linings, e.g. for walls or ceilings
    • E04F13/07Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor
    • E04F13/08Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements
    • E04F13/12Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements of metal or with an outer layer of metal or enameled metal
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04FFINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
    • E04F13/00Coverings or linings, e.g. for walls or ceilings
    • E04F13/07Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor
    • E04F13/08Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements
    • E04F13/0871Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor composed of a plurality of similar covering or lining elements having an ornamental or specially shaped visible surface
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04FFINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
    • E04F2201/00Joining sheets or plates or panels
    • E04F2201/04Other details of tongues or grooves
    • E04F2201/043Other details of tongues or grooves with tongues and grooves being formed by projecting or recessed parts of the panel layers

Abstract

본 발명은 NULL 포인터 참조로 접근 위반이 발생하는 경우에 오정렬 메모리 접근(misaligned memory access)을 이용하여 처리하는 방법을 제공한다. 이러한 본 발명에서는 NULL 포인터의 주소를 오정렬 메모리 접근을 발생시킬 수 있는 주소로 정의한다. 그러면 응용 프로그램의 NULL 포인터를 참조하는 경우에는 오정렬 메모리 접근이 발생하고, 이에 따라 인터럽트가 발생하는 경우에는 인터럽트 벡터 테이블에 지정된 소정의 인터럽트 서비스 루틴이 실행된다. 이러한 인터럽트 서비스 루틴은 접근 위반 처리를 할 수 있는 루틴으로 프로그램의 실행 위치를 변경한다. 이와 같이 하면, 하드웨어적으로 접근 위반 처리를 할 수 없는 시스템에서도 접근 위반이 발생한 경우에 적절하게 처리할 수 있다.

Description

메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템 {METHOD MANAGING FOR MEMORY ACCESS VIOLATION AND COMPUTER SYSTEM THEREFOR}
본 발명은 프로그램의 부적절한 메모리 접근으로 인해 발생하는 접근 위반(access violation)을 처리하는 방법에 관한 것이다.
접근 위반(access violation)은 응용 프로그램이 접근하지 말아야 할 메모리 영역에 접근하는 경우에 발생한다. 예를 들어 NULL 포인터를 참조하는 경우와 같이 실제 메모리가 할당되어 있지 않은 경우 또는 접근이 금지되어 있는 메모리 영역을 참조하는 경우에 접근 위반이 발생한다. 접근 위반이 발생하는 경우에 메모리의 잘못된 사용으로 인해 다른 프로그램에 영향을 주거나 시스템 전체에 영향을 주어 오동작이 발생할 수 있다. 따라서 접근 위반이 발생하는 경우에는 일반적으로 접근 위반이 발생한 프로그램을 종료시키고 미리 정해진 예외 처리를 하여 시스템을 안정화시킨다.
일반적으로 메모리 관리 장치(memory management unit, 이하 MMU라 함)를 내장하고 있는 CPU(central processing unit)를 사용하는 시스템에서는 MMU에서 이러한 접근 위반에 대한 처리를 한다. MMU는 프로그램이 요청한 가상 메모리(virtual memory)를 실제 메모리로 매핑시키는 역할을 한다.
프로그램에서 NULL 포인터로 초기화된 상태로 남아 있는 변수는 가상 메모리 상의 특정 주소(미리 정의된 주소 값으로 일반적으로 0을 사용함)로 치환되고, 이 주소 값은 MMU에 의해 실제 메모리로 변환되는 과정에서 실제 메모리 상에서 접근 불가능한 영역에 속하도록 변환된다. 다시 말해 가상 메모리 상의 NULL 포인터에 대한 접근은 MMU에 의한 실제 메모리 주소로의 변환과정에서 메모리 접근 제한에 저촉되는 결과가 생기게 되는데 이런 상황이 발생하면 MMU는 데이터 중지 인터럽트(data abort interrupt)를 발생시키고 문제가 된 프로그램이 종료하거나 별도의 예외 처리 규정에 따라 처리되게 된다.
그러나 MMU를 내장하고 있지 않은 CPU를 사용하는 시스템에서는 이러한 방법을 이용할 수 없으므로 접근 위반을 소프트웨어적으로 처리하여야 한다. 소프트웨어적으로 처리하기 위해서는 객체를 참조하기 전에 항상 그 객체가 NULL 포인터로 초기화되어 있는지를 검증하는 검증 루틴을 수행하여야 한다. 이와 같이 소프트웨어적으로 접근 위반을 처리하기 위해서는, 프로그램 코드에서 객체를 참조하는 루틴 앞에서 검증 루틴을 추가시켜야 하므로, 프로그램의 크기가 커지며 검증에 따른 오버헤드가 커진다는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 MMU가 내장되지 않은 CPU를 사용하는 시스템에서 접근 위반을 하드웨어적으로 처리하는 방법을 제공하는 것이다.
이러한 과제를 달성하기 위하여 본 발명은 오정렬 메모리 접근을 이용하여 접근 위반을 처리한다.
본 발명에 따르면 오정렬 메모리 접근(misaligned memory access)에 따라 인터럽트를 발생시키는 컴퓨터 시스템에서 메모리 접근 위반(access violation)을 처리하는 방법이 제공된다. 이 방법에 의하면, 먼저 NULL 포인터의 주소를 오정렬 메모리 접근을 발생시킬 수 있는 주소로 정의한다. 그리고 응용 프로그램의 NULL 포인터 참조로 인해 오정렬 메모리 접근이 발생한 경우에 소정의 인터럽트 서비스 루틴을 실행하여 접근 위반 처리를 한다.
이때, NULL 포인터의 주소는 홀수 번지로 정의하는 것이 바람직하다.
본 발명의 메모리 접근 위반 처리 방법에서, 오정렬 메모리 접근에 의해 인터럽트가 발생한 경우에 다음에 실행될 인스트럭션의 주소를 저장한다. 그리고 프로그램 카운터를 인터럽트 서비스 루틴의 위치로 이동시켜, 인터럽트 서비스 루틴을 실행하여 접근 위반 처리를 한다.
본 발명의 메모리 접근 위반 처리 방법에서 인터럽트 서비스 루틴이 실행되면, 먼저 레지스터에 저장되어 있는 현재 실행 중인 프로그램의 스택 정보 및 상태 정보가 복사된다. 다음에 인터럽트 서비스 루틴에서는 지정된 접근 위반 처리 루틴의 주소를 인터럽트 서비스 루틴의 복귀 주소로 지정한다. 그리고 복사된 스택 정보 및 상태 정보를 복구하고 프로그램 카운터를 지정된 접근 위반 처리 루틴으로 이동시킨다.
삭제
본 발명에 따른 컴퓨터 시스템은, 인터럽트가 발생한 경우에 처리할 인터럽트 서비스 루틴의 주소가 지정된 인터럽트 벡터 테이블을 저장하고 있는 메모리와, 오정렬 메모리 접근이 발생한 경우에 인터럽트를 발생시키고, 인터럽트 벡터 테이블에 저장된 주소에 따라 인터럽트 서비스 루틴을 실행시키는 컨트롤러를 포함한다. 그리고 이 컴퓨터 시스템에는 운영 체제가 설치되어, NULL 포인터의 주소를 참조할 경우에 오정렬 메모리 접근이 발생하는 주소로 정의하고, 인터럽트 서비스 루틴의 복귀 주소를 NULL 포인터 접근에 따른 접근 위반 처리를 하는 루틴으로 정의한다.
이때 인터럽트 서비스 루틴은, 레지스터에 저장되어 있는 현재 실행 중인 프로그램의 스택 정보 및 상태 정보를 복사하는 루틴, 접근 위반 처리를 하는 루틴의 주소를 인터럽트 서비스 루틴의 복귀 주소로 저장하는 루틴, 그리고 복사된 스택 정보 및 상태 정보를 복구하는 루틴을 포함하는 것이 바람직하다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
이제 본 발명의 실시예에 따른 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 메모리 접근 위반 처리를 하는 컴퓨터 시스템을 나타내는 도면이며, 도 2는 정렬되지 않은 메모리 접근을 나타내는 도면이고, 도 3은 메모리에 저장된 인터럽트 벡터 테이블을 ARM CPU의 경우를 예로 들어 나타내는 도면이다.
도 1에 나타낸 바와 같이, 본 발명의 실시예에 따른 컴퓨터 시스템은 메모리(100), CPU(200) 및 운영 체제(OS, operating system)(300)를 포함한다.
메모리(100)는 데이터나 명령어가 저장되는 영역(110)과 인터럽트 벡터 테이블이 저장되는 영역(120)을 포함한다. 일반적으로 대다수의 컴퓨터 시스템에서는 메모리 접근의 효율성을 위해 하드웨어에서 지원하는 자료형(character, integer, long integer 등)의 길이의 배수에 해당하는 메모리 번지부터 시작되는 메모리 영역에 데이터나 명령어를 저장한다.
그리고 예를 들어 RISC(reduced instruction set computer) 계열의 컴퓨터 시스템에서는 메모리로부터 데이터를 읽어들일 때 그 자료형에 따라 4바이트 또는 8바이트 단위의 덩어리(chunk)로 읽어들인다. 이 때 읽어들이고자 하는 메모리의 주소는 도 2에서 (A)로 표시한 것처럼 덩어리 길이의 배수로부터 시작되어야 하며, 그렇지 못한 메모리 접근을 오정렬 메모리 접근(misaligned memory access)라 한다.
자세하게 설명하면, 도 2에서 (B)로 표시한 것처럼 덩어리 단위로 나누어진 경계선에 걸리도록 메모리 접근을 하는 경우에 오정렬 메모리 접근이 발생한다. 이러한 오정렬 메모리 접근이 발생한 경우에 CPU(200)는 원래 프로그램의 수행을 멈추고 데이터 중지 인터럽트(data abort interrupt)를 발생시킨다. 데이터 중지 인터럽트가 발생하면 CPU(200)는 도 3에 나타낸 바와 같이 메모리(120)에 저장된 인터럽트 벡터 테이블의 데이터 중지 항목의 내용에 따라 인터럽트 처리를 한다.
인터럽트 벡터 테이블에는 각 인터럽트 유형별로 미리 지정된 32비트 길이의 벡터를 하나씩 가지고 있으며, 이 벡터에는 분기(branch) 명령 또는 프로그램 카운터(PC, program counter) 로드 명령이 기록되어 있다. CPU(200)는 인터럽트가 발생한 경우에 해당하는 벡터에 기록된 내용에 따라 적절한 인터럽트 서비스 루틴을 실행한다.
아래에서는 도 4 내지 도 6을 참조하여 본 발명의 실시예에 따른 접근 위반 처리 방법을 자세하게 설명한다.
도 4는 본 발명의 실시예에 따라 접근 위반 처리를 하는 방법을 나타내는 흐름도이며, 도 5는 본 발명의 실시예에 따라 NULL 포인터를 정의하는 모의(pseudo) 프로그램 코드를 나타내는 도면이다. 도 6은 접근 위반이 발생하는 모의 프로그램 코드를 나타내는 도면이다.
먼저 NULL 포인터를 참조하는 경우에 발생하는 접근 위반을 검출하기 위해서, NULL 포인터를 참조하는 경우에 오정렬 메모리 접근이 발생하도록 한다. 이를 위해서 NULL 포인터의 주소를 이를 참조하는 경우에 오정렬 메모리 접근이 발생하는 주소로 정의한다(S401). 예를 들어 메모리(110)에서 데이터를 읽어들일 때 2바이트 또는 4바이트의 덩어리로 읽어들이는 경우에는, 운영 체제(300)에서 도 5에 나타낸 바와 같이 NULL 포인터의 주소를 홀수 번지(도 5의 예에서는 0x1231번지)로 정의한다. 이러한 NULL 포인터의 주소는 홀수 번지뿐만 아니라 그 주소를 참조하는 오정렬 메모리 접근을 발생할 수 있는 번지라면 모든 번지가 가능하다. NULL 포인터의 주소는 NULL 매크로를 사용하는 프로그램을 컴파일하는 경우에 지정된 번지로 치환된다.
도 6에 나타낸 바와 같은 프로그램에서 pBookCover의 메소드(method)인 getWidth()를 참조하는 경우에는 pBookCover가 NULL 포인터(0x1231번지)로 초기화되어 있으므로 오정렬 메모리 접근이 발생한다(S402). 이와 같이 오정렬 메모리 접근이 발생하면 CPU(200)는 데이터 중지 인터럽트를 발생시킨다(S403). 데이터 중지 인터럽트가 발생하면 CPU(200)는 메모리(120)에 저장된 인터럽트 벡터 테이블의 데이터 중지 영역에 기록된 내용에 따라 데이터 중지 인터럽트 서비스 루틴(data abort interrupt service routine)을 실행시킨다(S404). 이러한 데이터 중지 인터럽트 서비스 루틴의 복귀 주소는 접근 위반을 처리하는 루틴의 주소값으로 한다. 이에 따라 데이터 중지 인터럽트 서비스 루틴이 실행을 마치고 리턴되면 접근 위반에 대한 처리가 실행되고 미리 기록된 내용에 따라 접근 위반을 발생시킨 프로그램이 종료되거나 다른 처리 루틴이 실행된다(S405).
아래에서는 CPU(200)로서 ARM 프로세서를 사용하는 경우를 예로 들어서 데이터 중지 인터럽트 서비스 루틴에 대하여 도 7 및 도 8을 참조하여 자세하게 설명한다.
도 7은 본 발명의 실시예에 따른 데이터 중지 인터럽트 서비스 루틴의 처리 방법을 나타내는 흐름도이며, 도 8은 본 발명의 실시예에 따른 데이터 중지 인터럽트 서비스 루틴의 모의 프로그램 코드이다.
본 발명의 실시예에서는 오정렬 메모리 접근(접근 위반)이 발생한 경우에 데이터 중지 인터럽트 서비스 루틴을 실행시키기 위해서 벡터 테이블의 데이터 중지 영역에 아래와 같이 기록하여 둔다.
LDR pc,[pc,#offset]
여기서 pc는 프로그램 카운터를 나타내며 #offset은 원래 처리 루틴의 주소와 새롭게 설치할 처리 루틴의 주소 사이의 차이다.
그러면 데이터 중지 인터럽트가 발생하면 원래 실행되어야 처리 루틴이 실행되지 않고 #offset만큼 떨어진 주소에 새로 설치된 데이터 중지 인터럽트 서비스 루틴이 실행된다. 이러한 데이터 중지 인터럽트 서비스 루틴의 예로서 도 8에 나타낸 바와 같은 알고리즘을 사용할 수 있다.
데이터 중지 인터럽트가 발생한 경우의 처리 방법에 대해서 자세히 설명하면, 먼저 오정렬 메모리 접근에 의해 데이터 중지 인터럽트가 발생하면 CPU(200)는 이를 발생시킨 인스트럭션(instruction)의 2스텝 다음의 인스트럭션의 주소를 저장한다(S701). 다음에 CPU(200)는 프로그램 카운터(PC)를 인터럽트 벡터 테이블에 지정한 위치로 이동하여 데이터 중지 인터럽트 서비스 루틴이 수행된다(S702).
데이터 중지 인터럽트 서비스 루틴은 도 8에 나타낸 바와 같이 레지스터에 저장되어 있는 현재 프로그램의 스택(stack) 정보와 상태 정보를 별도의 위치(스택)에 복사하고(S703), 프로그램 실행 모드를 인터럽트 처리 모드로 변경하여 다른 인터럽트 발생을 막는다(S704). 단계 S703에 복사하는 정보에는 링크 레지스터(link register, LR)도 포함되어 있다.
그리고 데이터 중지 인터럽트 서비스 루틴은 지정된 인터럽트를 수행하는 데, 도 8에 나타낸 바와 같이 링크 레지스터에 인터럽트 서비스 루틴이 리턴할 raiseAV의 주소를 저장한다(S705). raiseAV는 실제로 접근 위반에 대한 처리를 하는 루틴이며, 이러한 raiseAV로는 접근 위반을 발생시킨 프로그램을 종료시키는 처리 루틴 또는 다른 처리 루틴 등이 될 수 있다. 다음에 복사해 둔 스택 정보와 상태 정보 등을 원래의 위치로 복구시키고 프로그램 카운터(PC)를 단계 S701에서 저장한 인스트럭션의 주소로 이동시킨다(S706).
이와 같이 함으로써 NULL 포인터 참조로 인해서 접근 위반이 발생한 경우에 적절한 처리를 할 수 있다.
이러한 방법은 컴퓨터 프로그램으로 기록되어 적절한 시스템에 탑재될 수 있으며, 특히 ARM 프로세서를 사용하는 이동 통신 단말기의 프로그램으로 기록되어 사용될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
이와 같이 본 발명에 의하면, 하드웨어적으로 접근 위반 처리를 지원하지 않는 시스템에서 응용 프로그램의 잘못된 메모리 참조로 접근 위반이 발생한 경우에 적절한 처리를 할 수 있다.
도 1은 본 발명의 실시예에 따른 메모리에 대한 접근 위반 처리를 하는 컴퓨터 시스템을 나타내는 도면이다.
도 2는 오정렬 메모리 접근을 나타내는 도면이다.
도 3은 메모리에 저장된 인터럽트 벡터 테이블을 ARM CPU의 경우를 예로 들어 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 접근 위반 처리 방법을 나타내는 흐름도이다.
도 5는 본 발명의 실시예에 따라 NULL 포인터를 정의하는 모의(pseudo) 프로그램 코드이다.
도 6은 본 발명의 실시예에 따라 접근 위반이 발생하는 모의 프로그램 코드이다.
도 7은 본 발명의 실시예에 따른 데이터 중지 인터럽트 서비스 루틴의 처리 방법을 나타내는 흐름도이다.
도 8은 본 발명의 실시예에 따른 데이터 중지 인터럽트 서비스 루틴의 모의 프로그램 코드이다.

Claims (8)

  1. 오정렬 메모리 접근(misaligned memory access)에 따라 인터럽트를 발생시키는 컴퓨터 시스템에서 메모리 접근 위반(access violation)을 처리하는 방법에 있어서,
    NULL 포인터의 주소를 오정렬 메모리 접근을 발생시킬 수 있는 주소로 정의하는 제1 단계, 그리고
    응용 프로그램의 NULL 포인터 참조로 인해 오정렬 메모리 접근이 발생한 경우에 소정의 인터럽트 서비스 루틴을 실행하여 접근 위반 처리를 하는 제2 단계
    를 포함하는 메모리 접근 위반 처리 방법.
  2. 제1항에 있어서,
    상기 제1 단계는 NULL 포인터의 주소를 홀수 번지로 정의하는 메모리 접근 위반 처리 방법.
  3. 제1항에 있어서,
    제2 단계는
    오정렬 메모리 접근에 의해 인터럽트가 발생한 경우에, 다음에 실행될 인스트럭션의 주소를 저장하는 제3 단계,
    프로그램 카운터를 상기 인터럽트 서비스 루틴의 위치로 이동시켜, 상기 인터럽트 서비스 루틴을 실행하여 접근 위반 처리를 하는 제4 단계
    를 포함하는 메모리 접근 위반 처리 방법.
  4. 제3항에 있어서,
    상기 제4 단계는
    레지스터에 저장되어 있는 현재 실행 중인 프로그램의 스택 정보 및 상태 정보를 복사하는 단계,
    상기 인터럽트 서비스 루틴이 실행된 이후에 실행될 주소를 지정된 접근 위반 처리 루틴의 주소로 지정하는 단계, 그리고
    상기 복사된 스택 정보 및 상태 정보를 복구하고 상기 프로그램 카운터를 상기 제3 단계에서 지정한 주소로 이동시키는 단계
    를 포함하는 메모리 접근 위반 처리 방법.
  5. 삭제
  6. 오정렬 메모리 접근(misaligned memory access)에 따라 인터럽트를 발생시키는 컴퓨터 시스템에 있어서,
    상기 인터럽트가 발생한 경우에 처리할 인터럽트 서비스 루틴의 주소가 지정된 인터럽트 벡터 테이블을 저장하고 있는 메모리,
    상기 오정렬 메모리 접근이 발생한 경우에 인터럽트를 발생시키고, 상기 인터럽트 벡터 테이블에 저장된 주소에 따라 상기 인터럽트 서비스 루틴을 실행시키는 컨트롤러, 그리고
    NULL 포인터의 주소를 NULL 포인터를 참조하는 경우에 상기 오정렬 메모리 접근이 발생하는 주소로 정의하고, 상기 인터럽트 서비스 루틴의 복귀 주소를 NULL 포인터 접근에 따른 접근 위반 처리를 하는 루틴으로 정의하는 운영 체제
    를 포함하는 컴퓨터 시스템.
  7. 제6항에 있어서,
    상기 인터럽트 서비스 루틴은
    레지스터에 저장되어 있는 현재 실행 중인 프로그램의 스택 정보 및 상태 정보를 복사하는 루틴,
    상기 접근 위반 처리를 하는 루틴의 주소를 인터럽트 서비스 루틴의 복귀 주소로 저장하는 루틴, 그리고
    상기 복사된 스택 정보 및 상태 정보를 복구하는 루틴
    을 포함하는 컴퓨터 시스템.
  8. 제6항에 있어서,
    상기 오정렬 메모리 접근이 발생하는 주소로서 상기 NULL 포인터의 주소를 홀수 번지로 정의하는 컴퓨터 시스템.
KR10-2002-0039334A 2002-07-08 2002-07-08 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템 KR100497671B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0039334A KR100497671B1 (ko) 2002-07-08 2002-07-08 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0039334A KR100497671B1 (ko) 2002-07-08 2002-07-08 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템

Publications (2)

Publication Number Publication Date
KR20040005050A KR20040005050A (ko) 2004-01-16
KR100497671B1 true KR100497671B1 (ko) 2005-07-25

Family

ID=37315423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0039334A KR100497671B1 (ko) 2002-07-08 2002-07-08 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템

Country Status (1)

Country Link
KR (1) KR100497671B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080003789A (ko) 2005-03-09 2008-01-08 더 리전츠 오브 더 유니버시티 오브 캘리포니아 나노복합체막 및 이의 제조 및 사용 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752273A (en) * 1995-05-26 1998-05-12 National Semiconductor Corporation Apparatus and method for efficiently determining addresses for misaligned data stored in memory
KR19990081958A (ko) * 1996-01-24 1999-11-15 올센 케네스 어레이 경계 검사 방법 및 장치와, 이를 포함하는 컴퓨터시스템
KR20000076653A (ko) * 1999-03-05 2000-12-26 썬 마이크로시스템즈, 인코포레이티드 간단한 고성능 메모리 관리 유닛

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752273A (en) * 1995-05-26 1998-05-12 National Semiconductor Corporation Apparatus and method for efficiently determining addresses for misaligned data stored in memory
KR19990081958A (ko) * 1996-01-24 1999-11-15 올센 케네스 어레이 경계 검사 방법 및 장치와, 이를 포함하는 컴퓨터시스템
KR20000076653A (ko) * 1999-03-05 2000-12-26 썬 마이크로시스템즈, 인코포레이티드 간단한 고성능 메모리 관리 유닛

Also Published As

Publication number Publication date
KR20040005050A (ko) 2004-01-16

Similar Documents

Publication Publication Date Title
CN1147775C (zh) 受保护的存储器系统和方法
AU2004218704B2 (en) Lazy flushing of translation lookaside buffers
US8799879B2 (en) Method and apparatus for protecting translated code in a virtual machine
US5303378A (en) Reentrant protected mode kernel using virtual 8086 mode interrupt service routines
CN1258702C (zh) 为不同的指令集结构所编写的固件之间进行通信的方法
JPH07160483A (ja) 指定のプログラムイメージと関連ライブラリプログラムとを実行可能なアプリケーションプログラムイメージに動的にリンクする方法
EP3740872B1 (en) Decoupling trace data streams using cache coherence protocol data
US7506096B1 (en) Memory segment emulation model for virtual machine
CN112015491B (zh) 实现函数跳转的方法、装置及计算机存储介质
US7171546B2 (en) CPU life-extension apparatus and method
WO2019237866A1 (zh) 一种运行时访问控制方法及计算装置
CN116126472B (zh) 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法
Chen et al. Runtime detection of memory errors with smart status
US11907301B2 (en) Binary search procedure for control table stored in memory system
EP4272081A1 (en) Migrating pages of memory accessible by input-output devices
JP4342392B2 (ja) ソフトウェア検証モデル生成方法
KR100497671B1 (ko) 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템
KR100791815B1 (ko) 컴퓨터 시스템 및 컴퓨터 시스템에서 인스트럭션을 실행하는 방법
US20040019768A1 (en) Method and system for using dynamic, deferred operation information to control eager deferral of control-speculative loads
CN108463810B (zh) 存储器地址变换管理
CN117063165A (zh) 迁移由输入-输出设备能够访问的存储器页面
US11216280B2 (en) Exception interception
JP3585510B2 (ja) プログラム実行管理装置及びプログラム実行管理方法
US7290085B2 (en) Method and system for flexible and efficient protocol table implementation
EP0570646A1 (en) Method for processor simulation

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130611

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140613

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150712

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160618

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee