KR100497671B1 - 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템 - Google Patents
메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템 Download PDFInfo
- 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
Links
Classifications
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04F—FINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
- E04F13/00—Coverings or linings, e.g. for walls or ceilings
- E04F13/07—Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor
- E04F13/08—Coverings 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/12—Coverings 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
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04F—FINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
- E04F13/00—Coverings or linings, e.g. for walls or ceilings
- E04F13/07—Coverings or linings, e.g. for walls or ceilings composed of covering or lining elements; Sub-structures therefor; Fastening means therefor
- E04F13/08—Coverings 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/0871—Coverings 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
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04F—FINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
- E04F2201/00—Joining sheets or plates or panels
- E04F2201/04—Other details of tongues or grooves
- E04F2201/043—Other 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
본 발명은 프로그램의 부적절한 메모리 접근으로 인해 발생하는 접근 위반(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)
- 오정렬 메모리 접근(misaligned memory access)에 따라 인터럽트를 발생시키는 컴퓨터 시스템에서 메모리 접근 위반(access violation)을 처리하는 방법에 있어서,NULL 포인터의 주소를 오정렬 메모리 접근을 발생시킬 수 있는 주소로 정의하는 제1 단계, 그리고응용 프로그램의 NULL 포인터 참조로 인해 오정렬 메모리 접근이 발생한 경우에 소정의 인터럽트 서비스 루틴을 실행하여 접근 위반 처리를 하는 제2 단계를 포함하는 메모리 접근 위반 처리 방법.
- 제1항에 있어서,상기 제1 단계는 NULL 포인터의 주소를 홀수 번지로 정의하는 메모리 접근 위반 처리 방법.
- 제1항에 있어서,제2 단계는오정렬 메모리 접근에 의해 인터럽트가 발생한 경우에, 다음에 실행될 인스트럭션의 주소를 저장하는 제3 단계,프로그램 카운터를 상기 인터럽트 서비스 루틴의 위치로 이동시켜, 상기 인터럽트 서비스 루틴을 실행하여 접근 위반 처리를 하는 제4 단계를 포함하는 메모리 접근 위반 처리 방법.
- 제3항에 있어서,상기 제4 단계는레지스터에 저장되어 있는 현재 실행 중인 프로그램의 스택 정보 및 상태 정보를 복사하는 단계,상기 인터럽트 서비스 루틴이 실행된 이후에 실행될 주소를 지정된 접근 위반 처리 루틴의 주소로 지정하는 단계, 그리고상기 복사된 스택 정보 및 상태 정보를 복구하고 상기 프로그램 카운터를 상기 제3 단계에서 지정한 주소로 이동시키는 단계를 포함하는 메모리 접근 위반 처리 방법.
- 삭제
- 오정렬 메모리 접근(misaligned memory access)에 따라 인터럽트를 발생시키는 컴퓨터 시스템에 있어서,상기 인터럽트가 발생한 경우에 처리할 인터럽트 서비스 루틴의 주소가 지정된 인터럽트 벡터 테이블을 저장하고 있는 메모리,상기 오정렬 메모리 접근이 발생한 경우에 인터럽트를 발생시키고, 상기 인터럽트 벡터 테이블에 저장된 주소에 따라 상기 인터럽트 서비스 루틴을 실행시키는 컨트롤러, 그리고NULL 포인터의 주소를 NULL 포인터를 참조하는 경우에 상기 오정렬 메모리 접근이 발생하는 주소로 정의하고, 상기 인터럽트 서비스 루틴의 복귀 주소를 NULL 포인터 접근에 따른 접근 위반 처리를 하는 루틴으로 정의하는 운영 체제를 포함하는 컴퓨터 시스템.
- 제6항에 있어서,상기 인터럽트 서비스 루틴은레지스터에 저장되어 있는 현재 실행 중인 프로그램의 스택 정보 및 상태 정보를 복사하는 루틴,상기 접근 위반 처리를 하는 루틴의 주소를 인터럽트 서비스 루틴의 복귀 주소로 저장하는 루틴, 그리고상기 복사된 스택 정보 및 상태 정보를 복구하는 루틴을 포함하는 컴퓨터 시스템.
- 제6항에 있어서,상기 오정렬 메모리 접근이 발생하는 주소로서 상기 NULL 포인터의 주소를 홀수 번지로 정의하는 컴퓨터 시스템.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080003789A (ko) | 2005-03-09 | 2008-01-08 | 더 리전츠 오브 더 유니버시티 오브 캘리포니아 | 나노복합체막 및 이의 제조 및 사용 방법 |
Citations (3)
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 | 썬 마이크로시스템즈, 인코포레이티드 | 간단한 고성능 메모리 관리 유닛 |
-
2002
- 2002-07-08 KR KR10-2002-0039334A patent/KR100497671B1/ko not_active IP Right Cessation
Patent Citations (3)
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 |