KR102294562B1 - 페이지 테이블 데이터 관리 - Google Patents

페이지 테이블 데이터 관리 Download PDF

Info

Publication number
KR102294562B1
KR102294562B1 KR1020157034448A KR20157034448A KR102294562B1 KR 102294562 B1 KR102294562 B1 KR 102294562B1 KR 1020157034448 A KR1020157034448 A KR 1020157034448A KR 20157034448 A KR20157034448 A KR 20157034448A KR 102294562 B1 KR102294562 B1 KR 102294562B1
Authority
KR
South Korea
Prior art keywords
page
write
permission flag
access
write permission
Prior art date
Application number
KR1020157034448A
Other languages
English (en)
Other versions
KR20160007549A (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 에이알엠 리미티드
Publication of KR20160007549A publication Critical patent/KR20160007549A/ko
Application granted granted Critical
Publication of KR102294562B1 publication Critical patent/KR102294562B1/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/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
    • 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
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

메모리 어드레스 공간내의 페이지마다 페이지 테이블 데이터는, 기록 허가 플래그와 더티 비트 변경자 플래그를 포함한다. 그 기록 허가 플래그는, 기록 액세스가 허가되지 않는 것을 나타내는 값으로 초기화된다. 기록 액세스가 일어날 때, 더티 비트 변경자 플래그는, 기록 허가 플래그의 액션이 무효로 되는지 아닌지를 나타낸다. 그 기록 허가 플래그의 액션이 무효로 되는 경우, 상기 기록 액세스가 허가되고 상기 기록 허가 플래그는 그 후 기록 액세스가 허가되는 것을 나타내도록 변경된다. 기록 허가 플래그는 기록이 허가되는 것을 나타내는 페이지는, 더티 페이지다.

Description

페이지 테이블 데이터 관리{PAGE TABLE DATA MANAGEMENT}
본 발명은, 데이터 처리 시스템 분야에 관한 것이다. 보다 구체적으로, 본 발명은 이러한 데이터 처리 시스템내의 페이지 테이블 데이터의 관리에 관한 것이다.
데이터 처리 시스템에, 메모리의 영역들을 관리하는 페이지 테이블 데이터를 제공하는 것이 알려져 있다. 예를 들면, 상기 페이지 테이블 데이터는, 가상 어드레스와 물리 어드레스간의 매핑, 데이터의 페이지에 대한 액세스 허가, 및 그 밖의 데이터의 페이지의 캐시되어도 되는지의 여부와 같은 특성을 특정하기도 한다. 데이터의 페이지가 예를 들면, 하드디스크 드라이브 등의 불휘발성 스토리지로부터, 작업용 메모리에 복사되었으므로 변경되어 있다는 것을 나타내기 위해 페이지 테이블 데이터내에 더티 비트 정보를 포함하는 것이 알려져 있다. 이러한 더티 비트 정보는, 데이터의 페이지를 작업용 메모리로부터 제거하여 원래의 불휘발성 메모리 스토리지에 복사할 때와 같이, 그 페이지의 더티 비트가 변경되어 있지 않다는 것을 나타내면, 그 데이터의 페이지를 원래의 불휘발성 스토리지에 복사할 필요가 없다. 또한, 이러한 더티 비트 정보가 데이터의 새로운 페이지를 페이지 인(page in)(불휘발성 스토리지로부터 작업용 메모리에 복사)을 원하는 경우 페이지 아웃(page out)(작업용 메모리로부터 불휘발성 스토리지에 역으로 복사) 가능성이 있는 후보를 식별하는데 상기 더티 비트 정보를 사용하여도 된다.
이러한 더티 비트 정보를 관리하는 일 방식으로는, 메모리의 그 페이지내의 메모리 어드레스에 제1 기록 액세스를 행할 때 그 메모리의 페이지와 관련된 더티 비트 정보를 갱신하는 능력을 메모리 관리부 하드웨어에 제공하는 방식이 있다. 상기 페이지 테이블 데이터내의 더티 비트 정보의 하드웨어 기반 갱신은 속도에 이점이 있지만, 하드웨어의 복잡성이 증대한다.
상기 메모리 어드레스 공간내의 메모리의 페이지들의 더티 상태의 관리에 대한 다른 해결방법으로는, 소프트웨어 기반 관리를 사용하는 방법이 있다. 이러한 기술에서는, 페이지 인된 각 새로운 페이지를 판독 전용으로서 표시한다. 이 페이지에 기록을 시도하는 경우, 소프트웨어 예외가 발생된다. 그리고, 소프트웨어 예외 처리 프로그램은, 그 페이지가 기록되게 허가될 것인가 아닌가를 판정한다. 기록이 허가될 경우, 상기 페이지의 상태를 기록 허가로 변경하고, 그 페이지를 더티로서 표시한다. 그 페이지에 기록이 허가되지 않은 경우, 일반적으로 기록 허가 실패 예외는 한층 더 처리된다. 상기 소프트웨어 기반 관리기술은, 데이터의 페이지에 대한 제1기록을 트랩핑하는 역할을 하고 그 페이지를 더티로서 표시한다. 그 후, 예외를 발생하지 않고 기록을 허가하도록 상기 페이지를 표시하므로, 추가의 기록동작이 느리지 않을 것이다. 이러한 해결방법의 문제점은, 통상 상기 예외를 기동하는 기록을 발생하는 처리 회로소자가 소프트웨어 예외 처리 요구사항을 실행할 수 있을 필요가 있을 것이다. 상기 예외 처리 코드의 실행을 처리할 수 없었던 처리 회로소자는, 그것을 대행하여 예외 처리를 행할 다른 처리 회로소자에 대한 인터럽트를 기동할 수 있었다. 그렇지만, 이 해결방법은 느리다.
종래기술의 또 다른 문제점은, 상기 더티 상태의 하드웨어 기반 관리와, 동일한 페이지 테이블 데이터를 공유하는 시스템, 예를 들면 공유 가상 메모리 시스템내의 더티 상태의 소프트웨어 기반 관리를 혼합하는 것이 불가능하다는 것이다. 이 하드웨어 기반 해결방법은, 더티 상태에 대한 하드웨어 기반 갱신이 처음부터 허가된 기록으로서 적절하게 표시되는 페이지에 대한 제1기록시에 이루어지면서 그 페이지에 의존한다. 이에 반해서, 소프트웨어 기반 해결방법은, 먼저 작업용 메모리에 배치될 때 허가되지 않은 기록으로서 표시되는 상기 페이지에 의존하고, 이때, 이 상태는 허가된 기록으로서 표시되는 페이지로의 예외와 변경을 기동하는데 사용되고, 상기 더티 상태는 그 페이지에의 제1 액세스시에 설정된다. 따라서, 상기 페이지 테이블 데이터의 이용은 이들 2개의 해결방법간에 양립할 수 없다.
일 측면에서 본 본 발명의 데이터 처리장치는,
메모리 어드레스 공간내에 메모리의 페이지와 관련된 액세스 관리 파라미터들을 특정하는 페이지 테이블 데이터를 관리하는 처리 회로소자를 구비하고,
메모리의 페이지마다, 상기 액세스 관리 파라미터들은,
상기 페이지에 대해 기록 액세스를 허가하는지 아닌지를 나타내는 기록 허가 플래그; 및
상기 기록 허가 플래그가 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 경우, 상기 페이지에 대해 기록 액세스를 허가하기 위해 상기 기록 허가 플래그의 액션이 무효로 되도록 허가되는지 아닌지를 나타내는 더티 비트 변경자(dirty-bit-modifier) 플래그를 포함하고,
상기 처리 회로소자는,
상기 기록 허가 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하고,
상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는지를 판정하고,
상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는 경우, 상기 페이지에 대해 기록 액세스를 허가하는 것을 나타내도록 상기 기록 허가 플래그를 변경한다.
본 기술은, 공유 페이지 테이블 데이터내의 더티 상태의 소프트웨어 기반 관리와 상기 공유 페이지 테이블 데이터내의 더티 상태의 하드웨어 기반 관리의 양쪽을 이용하는 이종 시스템을 지원할 수 있는 욕구를 안다. 이들 양쪽의 해결방법을 동시에 지원하기 위해서, 본 기술에서는, 기록 허가 플래그 자신이 기록 액세스가 허가되지 않는 것을 나타내야 하는 것을 나타내는 역할을 하는 더티 비트 변경자 플래그를 추가하고 나서, 상기 기록 허가 플래그의 액션은, 기록 액세스를 허가하고 나서 그 기록 허가 플래그를 변경하여 기록 액세스를 허가하는 것을 나타내도록 무효로 될 수 있다. 이렇게 하여, 상기 더티 비트 변경자 플래그는, 기록 허가 플래그를 제한하고 기록 허가가 정말로 허가되지 않았는지, 또는 일 페이지에 대해 상기 제1 기록 액세스를 트랩핑함에 따라서 일 페이지의 상기 더티 상태의 소프트웨어 기반 관리를 허가하기 위해 상기 기록 허가가 허가되지 않았는지를 나타낸다.
통상 일 페이지의 상기 더티 상태의 하드웨어 기반 관리를 행하는 메모리 관리 유닛들, 즉, 하드웨어 갱신 메모리 관리 회로소자는, 상기 더티 비트 변경자 플래그를 이용하기 위해서 변경을 필요로 한다. 보다 구체적으로는, 상기 하드웨어 갱신 메모리 관리 회로소자는, 그 기록 허가 플래그에 관련된 상기 더티 비트 변경자 플래그를 판독하여서 기록 액세스가 허가되지 않은 것을 기록 허가가 나타내면서 일 페이지에 대한 기록 액세스의 발생에 응답하고 나서, 상기 더티 비트 변경자 플래그가 상기 기록 허가 플래그의 액션을 무효로 할 수도 있는 것을 나타내면, 실행될 기록 액세스를 허가하고, 하드웨어 제어 연산(즉, 어떠한 소프트웨어 실행도 필요하지 않음)으로서 기록 액세스를 허가하는 것을 나타내기 위해 상기 기록 허가 플래그를 변경하도록, 형성된다.
페이지 테이블 데이터의 무결성을 보호하기 위해서, 하드웨어 갱신 메모리 관리 유닛은, 상기 더티 비트 변경자와 기록 허가 플래그들을 포함하는 상기 페이지 테이블 데이터의 판독과, 기록 허가 플래그가 원자적 연산으로 변경된 페이지 테이블 데이터의 기록을 행하도록, 즉 2개의 액션은 상기 판독과 상기 기록간에 에이전트가 상기 페이지 테이블 데이터를 수정할 수 없도록 함께 완료되도록 구성되는 것이 바람직하다. 예를 들면, 상기 판독 수정 기록 연산을 사용하여 상기 기록 허가 플래그와 상기 더티 비트 변경자 플래그로 이루어진 페이지 테이블 데이터를 갱신하여서, 상기 원자적 연산을 하게 만들기도 한다.
이러한 하드웨어 갱신 메모리 관리 회로소자에 관련되는 상기 처리 회로소자는 아주 다양한 다른 형태를 취할 수 있다는 것을 알 것이다. 상기와 같은 형태의 처리 회로소자의 예들로서는, 소프트웨어 제어하에 처리 연산을 실행하도록 구성되고 또 하드웨어 갱신 관리 회로소자를 사용하여 하드웨어 제어 데이터 관리를 행하도록 구성된, 범용 프로세서가 있다. 그 밖의 예들로서는, 하드웨어 제어 페이지 테이블 데이터 관리를 행하도록 각각 구성된 그래픽 처리 유닛 및/또는 직접 메모리 액세스 유닛이 있다.
그 밖의 실시예는, 상기 하드웨어 갱신 메모리 관리 회로소자, 소프트웨어 갱신 메모리 관리 회로소자의 하나 이상의 인스턴스 대신에, 또는 이를 조합하여 이용하여도 된다. 이러한 소프트웨어 갱신 메모리 관리 회로소자는, 상기 소프트웨어 관리된 예외 처리가 기록 허가 플래그를 변경하는 것을 포함하는 소프트웨어 관리된 예외 처리를 기동하여서 기록 액세스를 허가하지 않는 것을 나타내는 기록 허가 플래그를 갖는 일 페이지에 대한 기록 액세스에 응답한다. 이러한 소프트웨어 관리된 예외 처리는, 상기 기록 허가 플래그가 변경되어야 하는지 아닌지를 나타낼 그 밖의 정보에 대해 상기 소프트웨어가 액세스할 수도 있는 것처럼, 상기 기록 허가 플래그가 변경되어야 하는지 아닌지를 판정하기 위해서 상기 더티 비트 변경자 플래그를 판독할 수도 있거나 판독할 수 없을 수도 있다. 그렇지만, 상기 더티 비트 변경자 플래그의 판독은, 소프트웨어 갱신 관리 회로소자가 상기 기록 허가 플래그를 변경되어야 하고 허가된 기록인지 아닌지를 판정하는 가장 빠른 방식일 것이다. 소프트웨어 갱신 메모리 관리 회로소자는, 적어도 부분적으로는, 기록 허가 플래그를 수정함에 따라서 일 페이지의 더티 상태를 포획하는 것에 관한 페이지 테이블 데이터의 갱신을 관리하는 소프트웨어를 실행하는 범용 프로세서를 구비한다.
일부의 실시예에서, 페이지 테이블 데이터를 관리하는 상기 처리 회로소자는, 상술한 기술에 따라 기록 허가 플래그와 더티 비트 변경자 플래그의 관리 능력을 포함하는 운영체계 프로그램을 실행하기도 한다. 이러한 처리 회로소자는, 소프트웨어 제어하에 소프트웨어 제어된 페이지 테이블 데이터 관리를 포함하는 처리 연산을 행하도록 구성된 범용 프로세서를 구비하기도 한다.
상술한 것처럼, 본 기술은, 하드웨어 갱신 메모리 관리 회로소자의 하나 이상의 인스턴스, 소프트웨어 갱신 메모리 관리 회로소자의 하나 이상의 인스턴스 또는 이들의 혼합물을 포함하는 시스템내에서 이용될 수 있었다. 본 기술을 이용할 때, 가상 메모리 어드레스 공간을 공유함에 따라서 페이지 테이블 데이터를 공유하고 싶은 그 밖의 회로소자와 혼합되기도 하는 다양한 서로 다른 시스템 온 칩 집적회로에 배치되어도 되는 회로 블록의 단일 설계를 하는 것이 바람직하므로 시스템이 이종이 아닌 경우에도(즉, 하드웨어 갱신 메모리 관리 회로소자와 소프트웨어 갱신 메모리 관리 회로소자의 혼합물을 포함하는 시스템) 이점이 있다. 또한, 동종 시스템에서는, 상기 기술은, 이종 시스템과의 소프트웨어 호환성을 향상시킬 수 있다.
본 기술의 특별한 이점은, 양쪽이 동일한 페이지 테이블 데이터를 공유하는 소프트웨어 갱신 메모리 관리 회로소자와 하드웨어 갱신 메모리 관리 회로소자의 조합을 이용하는 실시예들에서 생긴다. 이러한 실시예에서, 소프트웨어 갱신 메모리 관리 회로소자를 이용함에 따라서 프로그램 명령어를 실행할 수 있는 상기 처리 회로소자는, 초기 부트시와 같은 소프트웨어 태스크로서 일반적으로 가장 편리하게 수행되듯이, 공유 메모리내의 페이지 테이블 데이터를 초기화하는 역할을 해야 하는 것이 편리한 경우도 있다.
상기 기록 허가 플래그는, 다양한 서로 다른 형태가 있을 수 있고, 그것이 지닌 의미와 조합된 추가의 정보를 가지기도 한다. 일부의 실시예에서, 상기 기록 허가 플래그는, 일 페이지에 대한 "판독전용" 액세스 허가 또는 일 페이지에 대한 "판독 및 기록" 액세스 허가 중 각기 한쪽을 나타내기도 한다.
본 기술은, 페이지 테이블 데이터를 사용하여 메모리 관리(변환)의 소정의 스테이지, 예를 들면 운영체계 프로그램과, 동등한 하드웨어 기반 제어에서 이용한 스테이지와 관련지어 사용되어도 된다. 본 기술은, 페이지 테이블 데이터의 다수의 스테이지를 이용하는 시스템, 이를테면 하나 이상의 게스트 운영체계에 의해 액세스를 관리하기 위한 하이퍼바이저 페이지 테이블 데이터와, 상기 하나 이상의 게스트 운영체계에서 사용하기 위한 운영체계 페이지 테이블 데이터 모두를 포함하는 시스템내에서 이용되어도 된다.
하이퍼바이저 페이지 테이블 데이터를 이용하는 시스템의 면에서, 하이퍼바이저 페이지 테이블 데이터는, 일 페이지에 대해 판독 액세스가 허가되었는지 아닌지와 관계없이 일 페이지에 기록하도록 허가되었는지 아닌지를 나타내는 역할을 하는 하이퍼바이저 기록 허가 플래그를 포함하기도 한다. 하이퍼바이저의 면에서, 일 페이지에 기록 액세스하지만 그 페이지에 판독 액세스를 하지 않는 것이 적합할지도 모르는 경우들이 있다.
상술한 것처럼, 페이지 테이블 데이터는, 관리중인 데이터의 페이지에 관한 그 밖의 각 종 정보를 제공하는 역할을 하기도 한다. 일부의 실시예에서, 이 페이지 테이블 데이터는, 가상 메모리 어드레스 공간내의 상기 페이지의 가상 어드레스와 물리 어드레스 페이지내의 상기 페이지의 물리 어드레스간의 매핑을 일 페이지에 대해 특정하기도 한다. 이것은, 공유 가상 어드레스 메모리로서 메모리 회로소자를 지원할 때 유용하다.
다른 측면에서 본 본 발명의 데이터 처리장치는,
메모리 어드레스 공간내에 메모리의 페이지와 관련된 액세스 관리 파라미터들을 특정하는 페이지 테이블 데이터를 관리하는 처리수단을 구비하고,
메모리의 페이지마다, 상기 액세스 관리 파라미터들은,
상기 페이지에 대해 기록 액세스를 허가하는지 아닌지를 나타내는 기록 허가 플래그; 및
상기 기록 허가 플래그가 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 경우, 상기 페이지에 대해 기록 액세스를 허가하기 위해 상기 기록 허가 플래그의 액션이 무효로 되도록 허가되는지 아닌지를 나타내는 더티 비트 변경자 플래그를 포함하고,
상기 처리수단은,
상기 기록 허가 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하고,
상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는지를 판정하고,
상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는 경우, 상기 페이지에 대해 기록 액세스를 허가하는 것을 나타내도록 상기 기록 허가 플래그를 변경한다.
또 다른 측면에서 본 본 발명의 데이터 처리 방법은,
메모리 어드레스 공간내에 메모리의 페이지와 관련된 액세스 관리 파라미터들을 특정하는 페이지 테이블 데이터를 사용하여 상기 페이지에 대한 액세스를 관리하는 단계를 포함하고,
메모리의 페이지마다, 상기 액세스 관리 파라미터들은,
상기 페이지에 대해 기록 액세스를 허가하는지 아닌지를 나타내는 기록 허가 플래그; 및
상기 기록 허가 플래그가 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 경우, 상기 페이지에 대해 기록 액세스를 허가하기 위해 상기 기록 허가 플래그의 액션이 무효로 되도록 허가되는지 아닌지를 나타내는 더티 비트 변경자 플래그를 포함하고,
상기 관리하는 단계는,
상기 기록 허가 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하는 단계,
상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는지를 판정하는 단계 및
상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는 경우, 상기 페이지에 대해 기록 액세스를 허가하는 것을 나타내도록 상기 기록 허가 플래그를 변경하는 단계를 포함한다.
본 발명을, 아래의 첨부도면에 도시된 것과 같은 실시예들을 참조하여 예시로만 더 설명하겠다:
도 1은 가상 메모리 어드레스 공간과 공유 페이지 테이블 데이터를 공유하는 처리 회로소자의 다수의 인스턴스를 구비한 데이터 처리 시스템의 개략도;
도 2는 페이지 테이블 데이터 엔트리의 개략도;
도 3은 하드웨어 갱신 메모리 관리 회로소자의 다수의 인스턴스를 포함한 데이터 처리 시스템의 개략도;
도 4는 하이퍼바이저, 게스트 운영체계 및 각각의 페이지 테이블 데이터가 관리한 변환의 다수의 스테이지를 이용하는 시스템에서의 애플리케이션 프로그램간의 관계를 개략적으로 나타내는 도면;
도 5는 하이퍼바이저 페이지 테이블 데이터의 일례의 개략도;
도 6은 소프트웨어 갱신 메모리 관리 회로소자의 동작을 개략적으로 나타내는 흐름도;
도 7은 하드웨어 갱신 메모리 관리 회로소자의 동작을 개략적으로 나타내는 흐름도;
도 8은 일 페이지가 더티인지 아닌지를 문의할 때 수행된 처리를 개략적으로 나타내는 흐름도다.
도 1은 범용 프로세서(4), 직접 메모리 액세스 유닛(6) 및 그래픽 처리 유닛(8)으로 이루어진 처리 회로소자의 다수의 인스턴스를 구비한 데이터 처리 시스템(2)의 개략도다. 상기 범용 프로세서(4), 직접 메모리 액세스 유닛(6) 및 그래픽 처리 유닛(8)은 상기 범용 프로세서(4), 직접 메모리 액세스 유닛(6) 및 그래픽 처리 유닛(8) 각각에 의해, 공유 페이지 테이블 데이터(24)를 사용하여 가상적으로 어드레싱된 작업용 메모리(10)를 공유한다.
범용 프로세서(4)는, 애플리케이션 프로그램(14, 16) 대신에 메모리 어드레스 공간의 페이지들에 대한 액세스를 관리하는 운영체계(12)를 동작시키는 소프트웨어 프로그램 명령어를 실행한다. 범용 프로세서(4)는, 소프트웨어 갱신 메모리 관리 회로소자(18)에 공급된 가상 메모리어드레스 공간내에서 가상 어드레스들을 발생한다. 소프트웨어 갱신 메모리 관리 회로소자(18)는, 수행되는 메모리 액세스에 관하여 허가를 체크할 뿐만 아니라 가상 대 물리 어드레스 변환을 행한다. 이들 허가는, 기록 액세스가 허가되는지 아닌지를 포함할 수 있다. 소프트웨어 갱신 메모리 관리 회로소자(18)는, 작업용 메모리(10)의 물리 어드레스 공간내에 물리 어드레스를 발생하여, 캐시(20)에 보낸다. 메모리 액세스는, 상기 캐시(20)로부터 공급받아도 되거나, 통상의 기술에 따라 메모리(10)로부터 공급받아도 된다. 작업용 메모리(10)는, 불휘발성 스토로지(22), 이를테면, 하드디스크에 접속되어도 되고, 이때 데이터의 페이지는 하드 디스크 드라이브(22)로부터 작업용 메모리(10)의 페이지 인되고 페이지 아웃된다. 작업용 메모리(10)는, 상기 처리 회로소자(4, 6, 8)의 인스턴스 각각에서 공유한 페이지 테이블 데이터(24)를 기억한다.
직접 메모리 액세스 유닛(6)은, 하드웨어 갱신 메모리 관리 회로소자(26)에 의해 물리 어드레스로 변환되는 가상 어드레스를 발생한다. 그래픽 처리 유닛(8)은, 캐시 메모리(30)를 거쳐 작업용 메모리(10)에 보내는 하드웨어 갱신 메모리 관리 회로소자(28)에 의해 물리 어드레스로 변환된 가상 어드레스를 사용하여 메모리 액세스들을 발생한다. 기록 액세스 요구에 응답하여, 하드웨어 갱신 메모리 관리 회로소자(26, 28) 각각은, 후술할 기록 허가 플래그와 더티 비트 변경자 플래그에 관해 원자적 하드웨어 갱신 연산을 행한다. 이러한 원자적 연산은, 상기 연산의 서로 다른 부분들이, 분할 가능하지 않는, 예를 들면, 더티 비트 변경자와 기록 허가 플래그를 포함하는 페이지 테이블 데이터의 판독과 기록 허가 플래그가 변경된 페이지 테이블 데이터의 기록이 원자적 연산으로서 수행되도록, 즉 그 2개의 액션은 에이전트가 상기 판독과 상기 기록간의 페이지 테이블 데이터를 수정할 수 없도록 함께 완료되도록, 수행된 모든 것 또는 수행되지 않은 모든 것 중 어느 한쪽인 연산이다. 이러한 원자적 연산의 구현의 일례는, 판독 수정 기록 연산을 이용할 수 있었다. 하드웨어 갱신 메모리 관리 회로소자(26, 28)는, 기록 허가 플래그와 더티 비트 변경자 플래그를 판독하고, 그 기록 허가 플래그를 수정하고 나서, 반대로 그 기록 허가 플래그를 상기 페이지 테이블 데이터(24)에 기록한다. 이들 처리는 원자적으로 처리되어 상기 판독과 상기 기록간에 페이지 테이블 데이터의 변경 가능성을 피해야 한다.
소프트웨어 갱신 메모리 관리 회로소자(18)는, 기록 액세스가 허가될 때, 관련된 데이터의 페이지에 대한 기록 허가 플래그를 판독한다. 이 기록 허가 플래그를 포함하는 페이지 테이블 데이터는, 작업용 메모리(10)로부터 판독되어도 되거나, 소프트웨어 갱신 메모리 관리 회로소자(18)내에서(이를테면, 변환 색인 버퍼내에서) 캐시되어도 된다. 기록 허가 플래그는 기록 액세스가 허가되지 않은 것을 나타내는 경우, 상기 소프트웨어 갱신 메모리 관리 회로소자(18)는, 상기 범용 프로세서(4)를 기동하여 소프트웨어 관리된 예외 처리를 수행하는 소프트웨어 예외를 발생한다. 그 소프트웨어 관리된 예외 처리는, 상기 기록 액세스가 적절하게 이루어져야 하는, 즉 상기 기록 허가 플래그는 제1 기록 액세스를 트래핑하여 더티 상태를 설정하기 위한 목적으로 기록 액세스를 허가하지 않았던 것을 나타내도록 설정되었었던 것이라고 판정하면, 상기 소프트웨어 관리된 예외 처리는, 기록 허가 플래그를 원자적으로 변경하여 그 후 기록 액세스를 허가하는 것을 나타내고, 관련된 기록 액세스가 진행될 수 있다. 요구된 기록 액세스가 진정으로 진행하지 않아야 하는 것인 경우, 이러한 상황에 대한 통상의 예외 처리 응답이 후속된다. 운영체계(12)는, 상기 예외 처리를 처리하기도 한다. 소프트웨어 관리된 예외 처리는, 상기 더티 비트 변경자 플래그를 이용하여, 상기 기록 허가 플래그의 변경을 진행 기동하기 위해 상기 기록 액세스를 허가하기 위해서 기록 허가 플래그의 액션을 무효로 해도 되는지를 아닌지를 판정한다. 또는, 상기 소프트웨어 관리된 예외 처리는, 그 밖의 데이터 또는 메카니즘을 사용하여 기록 허가 플래그를 겹쳐쓸 수 있는지 없는지를 판정하기도 한다. 더티 비트 변경자 플래그는, 원하는 경우 이러한 표시에 급속한 액세스를 제공한다.
하드웨어 갱신 메모리 관리 회로소자(26, 28)는, 기록 액세스를 찾고 있는 중인 데이터의 페이지의 기록 허가 플래그와 관련된 더티 비트 변경자 플래그를 판독하여서 상기 직접 메모리 액세스 유닛(6)과 그래픽 처리 유닛(8)의 각기 한쪽에 의해 기록 액세스의 발생에 응답한다. 기록 액세스 플래그는 기록 액세스가 허가되지 않을 것을 나타내는 경우, 더티 비트 변경자 플래그용 판독 값은, 그 기록 허가 플래그의 액션을 무효로 해도 되는지 아닌지를 나타낸다. 그 기록 허가 플래그의 액션을 무효로 할 경우, 기록 액세스가 허가되고, 하드웨어 갱신 메모리 관리 회로소자(26, 28)는 기록 허가 플래그를 변경시켜 그 페이지에 대한 차후의 기록 액세스가 허가되는 것을 나타낸다. 이렇게 하여, 상기 더티 비트 변경자 플래그는, 일 페이지에 대한 제1 기록 액세스를 트랩핑함에 따라서 그 페이지의 더티 상태를 나타내기 위한 목적으로 기록이 허가되지 않은 것을 나타내도록 기록 허가 플래그가 설정되어 있는지를 상기 하드웨어 갱신 메모리 관리 회로소자(26, 28)에 대해 나타내는 역할을 하거나, 그래서, 제1 기록 액세스 시도와 그 이후의 모든 기록 액세스 시도시에 상기 기록 허가 플래그가 변경될 때까지 그 페이지에 대해 기록 액세스가 진정으로 허가되지 않기 때문에 설정된다.
상기 페이지 테이블 데이터 내의 상기 기록 허가 플래그와 상기 더티 비트 변경자 플래그의 이용은, 상기 기록 액세스가 소프트웨어 갱신 메모리 관리 회로소자(18)를 거쳐서 또는 하드웨어 갱신 메모리 관리 회로소자(26, 28)를 거쳐서 일어나는지에 관계없이 페이지들의 더티 상태를 추적하여 나타내는 능력을 유지하면서 소프트웨어 갱신 메모리 관리 회로소자(18)와 하드웨어 갱신 메모리 관리 회로소자(26, 28) 양쪽이 상기 데이터 처리 시스템(2)내에서 함께 존재하고 그 페이지 테이블 데이터(4)를 공유하게 허가한다.
도 2는 상기 운영체계(12)에서 초기화한 페이지 테이블 데이터 엔트리의 개략도다. 이 페이지 테이블 데이터 엔트리는, 가상 대 물리 어드레스 매핑 데이터(32)나 액세스 제어 데이터(34) 등의 데이터를 포함한다. 그 액세스 제어 데이터는, 기록 허가 플래그 AP[2]를 포함한다. 이 기록 허가 플래그의 값이 "1"일 경우, 이것은 상기 페이지에 대한 판독전용 액세스를 나타낸다. 이 기록 허가 플래그의 값이 "0"일 경우, 이것은 판독 및 기록 액세스가 상기 페이지에 대해 허가된 것을 나타낸다.
또한, 상기 액세스 제어 데이터(34)는, 더티 비트 변경자 플래그 DBM을 포함한다. 더티 비트 변경자 플래그의 값이 "1"일 경우, 이것은 기록 허가 플래그 AP[2]의 액션이 무효로 되고, 비록 상기 기록 허가 플래그AP[2]의 값이 "1"일지라도 기록 액세스가 허가되기도 하는 것을 나타낸다. 더티 비트 변경자 플래그의 값이 "0"일 경우, 상기 기록 허가 플래그의 액션을 무효로 하는 것은 허가되지 않는다.
도 3은 공유 페이지 테이블 데이터(48)를 갖는 공유 메모리(46)에 대하여 통신을 하는 각각의 하드웨어 갱신 메모리 관리 회로소자(42, 44)를 각각 갖는 범용 프로세서(38, 40) 2개가 있는 데이터 처리 시스템(36)의 개략도다. 본 실시예에서, 메모리의 페이지마다 상기 페이지 테이블 데이터(48)는, 상술한 것처럼 기록 허가 플래그와 더티 비트 변경자 플래그 양쪽을 포함한다. 기록 허가 플래그와 더티 비트 변경자 플래그 양쪽을 포함하는 페이지 테이블 데이터를 이용할 수 있는 다른 형태의 데이터 처리 시스템은, 소프트웨어 갱신 메모리 관리 회로소자만, 하드웨어 갱신 메모리 관리 회로소자만 또는 이 2개의 회로소자의 혼합물을 갖는 것들을 포함한다.
도 4는 하이퍼바이저(50), 2개의 게스트 운영체계(52, 54) 및 각각의 애플리케이션 프로그램(56, 58, 60, 62, 64)간의 관계의 개략도다. 게스트 운영체계(52, 54)는 운영체계 페이지 테이블을 사용하여 각 애플리케이션 프로그램(56 내지 64) 대신에 메모리의 페이지에 대한 액세스를 관리한다. 이 운영체계 페이지 테이블 데이터는, 액세스 허가를 제어하는 데이터와 그 밖의 메모리의 페이지의 특성뿐만 아니라 가상 어드레스를 물리 어드레스로 매핑하는 데이터를 포함하기도 한다.
하이퍼바이저(50)는 하이퍼바이저 페이지 테이블 데이터를 사용하여 각각의 게스트 운영체계(52, 54)의 메모리의 페이지에 대한 액세스를 관리할 수 있다. 이 하이퍼바이저 페이지 테이블 데이터는, 도 5에 도시되어 있고, 운영체계 물리 어드레스를 하이퍼바이저 물리 어드레스로 매핑하는 것으로부터 데이터(66)를 매핑하는 것을 포함하기도 한다. 하이퍼바이저 페이지 테이블 데이터내의 액세스 제어 데이터(68)는, 하이퍼바이저 기록 허가 플래그 HAP[2]를 포함한다. 하이퍼바이저 기록 허가 플래그의 값이 "1"일 경우, 이것은 관련된 페이지에 대해 기록이 허가되는 것을 나타낸다. 하이퍼바이저 기록 허가 플래그의 값이 "0"일 경우, 이것은 상기 페이제에 대해 기록이 허가되지 않는 것을 나타낸다. 하이퍼바이저 기록 허가 플래그 HAP[2]의 액션은 (별도의 플래그로 나타낼 수도 있는) 그 페이지에 대해 판독 액세스가 허가되는지 아닌지에 상관없다. 하이퍼바이저 페이지 테이블 데이터도 상기 하이퍼바이저 기록 허가 플래그에 관한 더티 비트 변경자 플래그 DBM를 포함한다. 그 더티 비트 변경자 플래그의 값이 "1"일 경우, 이것은 하이퍼바이저 기록 허가 플래그의 액션이 무효로 될 수도 있다는 것을 나타낸다. 마찬가지로, 더티 비트 변경자 플래그의 값이 "0"일 경우, 이것은, 하이퍼바이저 기록 허가 플래그의 액션이 무효로 되지 않을 수도 있다는 것을 나타낸다.
도 6은 소프트웨어 갱신 메모리 관리 회로소자(18)의 액션을 개략적으로 나타내는 흐름도다. 단계 70에서, 처리는 페이지에 대한 기록 액세스가 수신될 때까지 대기한다. 그리고, 단계 72는 관련된 데이터의 페이지의 기록 허가 플래그를 판독한다. 단계 74는, 기록 허가 플래그가 기록을 허가한 것을 나타내는지 아닌지를 판정한다. 기록 허가 플래그가 기록을 허가하는 것을 나타내는 경우, 단계 76는 이 기록을 행하고 단계 70의 처리로 되돌아간다. 그 기록 허가 플래그가 기록을 허가하지 않는 것을 나타내는 경우, 단계 78은 소프트웨어 예외를 기동하고, 도 1의 상기 범용 프로로서(4) 등의 상기 관련된 처리 회로소자는 소프트웨어 예외 처리를 행하도록 기동된다. 단계 80에서, 상기 소프트웨어 예외 처리는, 선택사항으로, 단계 72에서 행한 상기 기록 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하여도 된다. 단계 82는, 기록 허가 플래그가 나타낸 기록 허가의 무효가 허가되는지 아닌지를 판정한다. 무효가 허가되지 않은 경우, 단계 84는 표준 기술에 따라 허가 오류로서 처리를 계속한다. 단계 82가 무효가 허가된 것을 나타내는 경우, 단계86은 기록이 허가되는 것을 나타내기 위해 기록 허가 플래그를 변경하는 역할을 하고 상기 기록 액세스를 행하는 단계 76의 처리로 진행한다.
도 6의 처리의 전체 액션은, 상기 페이지 테이블 데이터가 초기화될 때, 그 페이지들에 대해 강제로 판독 전용 액세스를 계속적으로 행하는지 아닌지에 관계없이 페이지 전체에 대한 기록 허가 플래그가 판독하도록만 설정되는 것이다. 제1 기록 액세스가 일 페이지에 대해 일어날 때, 설정된 상기 디폴트 판독전용 허가는 야기될 도 6의 소프트웨어 예외 처리를 기동한다. 이 소프트웨어 예외 처리는, 상기 더티 비트 변경자 플래그(또는 그 밖의 데이터)로부터, 상기 관련된 메모리의 페이지가, 기록 허가를 진정으로 차단하거나, 상기 제1 기록 액세스를 트랩핑하여서 그 페이지를 더티로서(즉, 그 페이지는 적어도 하나의 기록 액세스를 행하게 하였음) 나타내기 위한 목적으로 상기 기록 허가 플래그가 판독전용으로 설정되는 처리다.
도 7은 하드웨어 개인 메모리 관리 회로소자(26, 28, 42, 44)의 액션을 개략적으로 나타내는 흐름도다. 단계 88에서의 처리는, 일 페이지에 대해 기록 액세스를 행할 때까지 대기한다. 단계 90에서는, 그 페이지에 대한 기록 허가 플래그를 판독한다. 단계 92는, 그 페이지에 대해 기록을 허가하는 것을 기록 허가 플래그가 나타내는지 아닌지를 판정한다. 기록이 허가되는 경우, 단계 94는 기록을 행한다. 기록 허가 플래그가 나타낸 것처럼 기록이 허가되지 않는 경우, 단계 94는 상기 페이지에 대해 대응한 더티 비트 수정 플래그를 판독한다. 그리고, 단계 96은, 상기 더티 비트 변경자 플래그에 따라, 기록 허가 플래그의 액션의 무효가 허가되는지 아닌지를 판정한다. 무효가 허가되지 않는 경우, 단계 98에서는, 이를테면, 상기와 같은 진정한 허가 오류를 처리할 수 있는 범용 프로세서에 기록 오류를 기동함으로써 허가 오류를 기동한다.
단계 96에서의 판정이 기록 허가 플래그의 액션을 무효로 하는 것이 허가되는 것일 경우, 단계 100에서는 기록이 허가되는 것을 나타내기 위해 상기 페이지에 대한 기록 허가 플래그를 원자적으로 설정하고 나서, 상기 기록을 행하는 단계 94의 처리로 진행한다. 기록을 허가하는 것을 나타내기 위해 기록 허가 플래그의 원자적 설정은, 더티 비트 변경자 플래그(94)의 판독으로부터 따로따로 행해질 수 없도록 행해진다. 하드웨어 갱신 메모리 관리 회로소자의 액션의 원자적 성질은, 판독 수정 기록 연산을 사용하여서 이루어질 수도 있다.
도 8은 페이지의 더티 상태를 어떻게 판정하는지를 개략적으로 나타내는 흐름도다. 단계 102는 일 페이지의 더티 상태를 문의하는 것에 대한 요구가 수신될 때까지 대기한다. 그리고, 단계 104는 그 페이지에 대한 기록 허가 플래그의 값을 판정한다. 상기 기록 허가 플래그가, 단계 106에서 판정된 것처럼, 기록을 허가하지 않는 것을 나타내는 경우, 단계 108은 그 페이지가 클린인 표시로 되돌아간다. 상기 기록 허가 플래그가, 기록을 허가하지 않는 것을 나타내는 값으로 초기화된 디폴트로서 되므로, 그럼에도 불구하고 그 기록 허가 플래그가 기록을 허가하지 않는 것을 나타내는 어떠한 페이지도 기록할 수 없는 것이다. 일 페이지에 대해 제1 기록을 행할 때마다, 이것은, 기록을 허가하는 것을 나타내는 값으로 기록을 허가하지 않는 것을 나타내는 값으로부터 상기 기록 허가 플래그가 변경되게 한다. 이에 따라, 적어도 하나의 기록이 일어난 어떠한 페이지도 기록을 허가하는 것을 나타내는 기록 허가 플래그를 가지고, 이것은 단계 106에서 판정되고 단계 110에서 보고된다.

Claims (19)

  1. 메모리 어드레스 공간내에 메모리의 페이지와 관련된 액세스 관리 파라미터들을 특정하는 페이지 테이블 데이터를 관리하는 처리 회로소자를 구비하고,
    메모리의 페이지마다, 상기 액세스 관리 파라미터들은,
    상기 페이지에 대해 기록 액세스를 허가하는지 아닌지를 나타내는 기록 허가 플래그; 및
    상기 기록 허가 플래그가 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 경우, 상기 페이지에 대해 기록 액세스를 허가하기 위해 상기 기록 허가 플래그의 액션이 무효로 되도록 허가되는지 아닌지를 나타내는 더티 비트 변경자 플래그를 포함하고,
    상기 처리 회로소자는,
    상기 기록 허가 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하고,
    상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는지를 판정하고,
    상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는 경우, 상기 페이지에 대해 기록 액세스를 허가하는 것을 나타내도록 상기 기록 허가 플래그를 변경하는, 데이터 처리장치.
  2. 제 1 항에 있어서,
    상기 기록 허가 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하고 나서, 또 상기 기록 허가 플래그의 액션을 무효로 하도록 허가하는 것을 상기 더티 비트 변경자 플래그가 나타내는 경우 상기 기록 액세스를 허가하고 하드웨어 제어 연산으로서 상기 기록 허가 플래그의 상기 변경을 행함으로써, 상기 처리 회로소자에 결합되어, 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 기록 허가 플래그를 갖는 페이지에의 상기 처리 회로소자에 의한 기록 액세스의 발생에 응답하도록 구성된, 하드웨어 갱신 메모리 관리 회로소자를 구비하는, 데이터 처리장치.
  3. 제 2 항에 있어서,
    상기 하드웨어 갱신 메모리 관리 회로소자는, 상기 더티 비트 변경자 플래그의 상기 판독과, 원자적 연산으로서 상기 기록 허가 플래그의 변경을 행하도록 구성되는, 데이터 처리장치.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 처리 회로소자는 하드웨어 제어 페이지 테이블 데이터 관리를 행하도록 구성되는, 데이터 처리장치.
  5. 제 2 항 또는 제 3 항에 있어서,
    상기 처리 회로소자는, 소프트웨어 제어하에 처리 연산을 행하고, 하드웨어 제어 페이지 테이블 데이터 관리를 행하도록 구성된 범용 프로세서;
    하드웨어 제어 페이지 테이블 데이터 관리를 행하도록 구성된 그래픽 처리 유닛; 및
    하드웨어 제어 페이지 테이블 데이터 관리를 행하도록 구성된 직접 메모리 액세스 유닛 중 하나인, 데이터 처리장치.
  6. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 처리 회로소자에 의해, 상기 기록 허가 플래그의 상기 변경을 포함하는 소프트웨어 관리 예외 처리를 기동함으로써, 상기 처리 회로소자에 결합되어, 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 기록 허가 플래그를 갖는 페이지에의 상기 처리 회로소자에 의한 기록 액세스의 발생에 응답하도록 구성된, 소프트웨어 갱신 메모리 관리 회로소자를 구비하는, 데이터 처리장치.
  7. 제 6 항에 있어서,
    상기 처리 회로소자는, 상기 기록 허가 플래그와 상기 더티 비트 변경자 플래그를 포함한 상기 페이지 테이블 데이터를 관리하는 운영체계 프로그램을 실행하도록 구성되는, 데이터 처리장치.
  8. 제 6 항에 있어서,
    상기 처리 회로소자는, 소프트웨어 제어 페이지 테이블 데이터 관리를 행하도록 구성되는, 데이터 처리장치.
  9. 제 6 항에 있어서,
    상기 처리 회로소자는, 소프트웨어 제어 페이지 테이블 데이터 관리를 포함한 소프트웨어 제어하에 처리 연산을 행하도록 구성된 범용 프로세서를 구비하는, 데이터 처리장치.
  10. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    제1 처리 회로소자와 제2 처리 회로소자를 포함한 상기 처리 회로소자는,
    상기 처리 회로소자에 의해, 상기 기록 허가 플래그의 상기 변경을 포함하는 소프트웨어 관리 예외 처리를 기동함으로써, 상기 제1 처리 회로소자에 결합되어, 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 기록 허가 플래그를 갖는 페이지에의 상기 처리 회로소자에 의한 기록 액세스의 발생에 응답하도록 구성된, 소프트웨어 갱신 메모리 관리 회로소자; 및
    상기 기록 허가 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하고 나서, 또 상기 기록 허가 플래그의 액션을 무효로 하도록 허가하는 것을 상기 더티 비트 변경자 플래그가 나타내는 경우 상기 기록 액세스를 허가하고 하드웨어 제어 연산으로서 상기 기록 허가 플래그의 상기 변경을 행함으로써, 상기 제2 처리 회로소자에 결합되어, 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 기록 허가 플래그를 갖는 페이지에의 상기 처리 회로소자에 의한 기록 액세스의 발생에 응답하도록 구성된, 하드웨어 갱신 메모리 관리 회로소자를 구비하는, 데이터 처리장치.
  11. 제 10 항에 있어서,
    상기 제1 처리 회로소자와 상기 제2 처리 회로소자가 공유한 공유 메모리를 구비하고, 상기 페이지 테이블 데이터는 상기 공유 메모리 내에 기억되는, 데이터 처리장치.
  12. 제 11 항에 있어서,
    상기 제1 처리 회로소자는, 상기 공유 메모리 내에 상기 페이지 테이블 데이터를 초기화하도록 구성되는, 데이터 처리장치.
  13. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 기록 허가 플래그의 다른 값들은,
    상기 페이지에 대해 판독전용 액세스 허가가 허가되는 것; 및
    상기 페이지에 대해 판독 및 기록 액세스 허가가 허가되는 것 중,
    각각 하나를 나타내는, 데이터 처리장치.
  14. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 페이지 테이블 데이터는, 하나 이상의 운영체계와 상기 하나 이상의 운영체계 각각에 대한 운영체계 페이지 테이블 데이터에 의해, 액세스를 관리하는 하이퍼바이저 페이지 테이블 데이터를 포함하는, 데이터 처리장치.
  15. 제 14 항에 있어서,
    상기 하이퍼바이저 페이지 테이블 데이터는 하이퍼바이저 기록 허가 플래그를 포함하고, 상기 하이퍼바이저 기록 허가 플래그의 다른 값들은,
    상기 페이지에 대해 판독 액세스가 허가되는지 아닌지에 상관없이 상기 페이지에 대해 기록 액세스가 허가되지 않는 것; 및
    상기 페이지에 대해 판독 액세스가 허가되는지 아닌지에 상관없이 상기 페이지에 대해 기록 액세스가 허가되는 것 중,
    각각 하나를 나타내는, 데이터 처리장치.
  16. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 페이지 테이블 데이터는, 가상 메모리 어드레스 공간 내의 상기 페이지의 가상 어드레스와 물리 어드레스 공간 내의 상기 페이지의 물리 어드레스간의 매핑을, 상기 페이지에 대해 특정하는, 데이터 처리장치.
  17. 제 16 항에 있어서,
    공유 가상 어드레스 메모리로서 역할을 하는 메모리 회로소자를 구비하는, 데이터 처리장치.
  18. 메모리 어드레스 공간내에 메모리의 페이지와 관련된 액세스 관리 파라미터들을 특정하는 페이지 테이블 데이터를 관리하는 처리수단을 구비하고,
    메모리의 페이지마다, 상기 액세스 관리 파라미터들은,
    상기 페이지에 대해 기록 액세스를 허가하는지 아닌지를 나타내는 기록 허가 플래그; 및
    상기 기록 허가 플래그가 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 경우, 상기 페이지에 대해 기록 액세스를 허가하기 위해 상기 기록 허가 플래그의 액션이 무효로 되도록 허가되는지 아닌지를 나타내는 더티 비트 변경자 플래그를 포함하고,
    상기 처리수단은,
    상기 기록 허가 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하고,
    상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는지를 판정하고,
    상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는 경우, 상기 페이지에 대해 기록 액세스를 허가하는 것을 나타내도록 상기 기록 허가 플래그를 변경하는, 데이터 처리장치.
  19. 메모리 어드레스 공간내에 메모리의 페이지와 관련된 액세스 관리 파라미터들을 특정하는 페이지 테이블 데이터를 사용하여 상기 페이지에 대한 액세스를 관리하는 단계를 포함하고,
    메모리의 페이지마다, 상기 액세스 관리 파라미터들은,
    상기 페이지에 대해 기록 액세스를 허가하는지 아닌지를 나타내는 기록 허가 플래그; 및
    상기 기록 허가 플래그가 상기 페이지에 대해 기록 액세스를 허가하지 않는 것을 나타내는 경우, 상기 페이지에 대해 기록 액세스를 허가하기 위해 상기 기록 허가 플래그의 액션이 무효로 되도록 허가되는지 아닌지를 나타내는 더티 비트 변경자 플래그를 포함하고,
    상기 관리하는 단계는,
    상기 기록 허가 플래그와 관련된 상기 더티 비트 변경자 플래그를 판독하는 단계,
    상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는지를 판정하는 단계 및
    상기 기록 허가 플래그의 상기 액션이 무효로 되도록 허가되는 경우, 상기 페이지에 대해 기록 액세스를 허가하는 것을 나타내도록 상기 기록 허가 플래그를 변경하는 단계를 포함하는, 데이터 처리방법.
KR1020157034448A 2013-05-13 2014-03-12 페이지 테이블 데이터 관리 KR102294562B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1308507.1A GB2514107B (en) 2013-05-13 2013-05-13 Page table data management
GB1308507.1 2013-05-13
US13/926,140 US9218302B2 (en) 2013-05-13 2013-06-25 Page table management
US13/926,140 2013-06-25
PCT/GB2014/050724 WO2014184515A1 (en) 2013-05-13 2014-03-12 Page table data management

Publications (2)

Publication Number Publication Date
KR20160007549A KR20160007549A (ko) 2016-01-20
KR102294562B1 true KR102294562B1 (ko) 2021-08-27

Family

ID=48672183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157034448A KR102294562B1 (ko) 2013-05-13 2014-03-12 페이지 테이블 데이터 관리

Country Status (10)

Country Link
US (1) US9218302B2 (ko)
EP (1) EP2997477B1 (ko)
JP (1) JP6314212B2 (ko)
KR (1) KR102294562B1 (ko)
CN (1) CN105190571B (ko)
AR (1) AR096255A1 (ko)
GB (1) GB2514107B (ko)
IL (1) IL242154B (ko)
TW (1) TWI603195B (ko)
WO (1) WO2014184515A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015061731A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge
US9785577B2 (en) * 2014-05-28 2017-10-10 Red Hat, Inc. Kernel key handling
US10558375B2 (en) * 2014-11-13 2020-02-11 Netapp, Inc. Storage level access control for data grouping structures
US20160179662A1 (en) * 2014-12-23 2016-06-23 David Pardo Keppel Instruction and logic for page table walk change-bits
US9619396B2 (en) 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
GB2539433B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539428B (en) * 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
US9817976B2 (en) * 2015-12-24 2017-11-14 Intel Corporation Techniques for detecting malware with minimal performance degradation
US10664183B1 (en) 2016-07-25 2020-05-26 Oracle International Corporation Method and apparatus for storing memory attributes
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
GB2554442B (en) * 2016-09-28 2020-11-11 Advanced Risc Mach Ltd Apparatus and method for providing an atomic set of data accesses
GB2563009B (en) * 2017-05-25 2019-12-25 Advanced Risc Mach Ltd An apparatus and method for interpreting permissions associated with a capability
US20190050342A1 (en) * 2017-08-08 2019-02-14 Honeywell International Inc. Selective page tracking for process controller redundancy
CN109144432A (zh) * 2018-10-08 2019-01-04 郑州云海信息技术有限公司 一种非易失性内存储器页分配方法与装置
US10969980B2 (en) 2019-03-28 2021-04-06 Intel Corporation Enforcing unique page table permissions with shared page tables
US11620233B1 (en) * 2019-09-30 2023-04-04 Amazon Technologies, Inc. Memory data migration hardware
US12013791B2 (en) * 2021-06-01 2024-06-18 International Business Machines Corporation Reset dynamic address translation protection instruction
US11593275B2 (en) * 2021-06-01 2023-02-28 International Business Machines Corporation Operating system deactivation of storage block write protection absent quiescing of processors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070126756A1 (en) * 2005-12-05 2007-06-07 Glasco David B Memory access techniques providing for override of page table attributes
US20120072669A1 (en) * 2010-09-21 2012-03-22 Fujitsu Limited Computer-readable, non-transitory medium storing memory access control program, memory access control method, and information processing apparatus

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
JP2586112B2 (ja) * 1988-07-13 1997-02-26 富士通株式会社 アドレス変換テーブルのアクセス制御方式
JP2504137B2 (ja) * 1988-09-27 1996-06-05 日本電気株式会社 メモリ書き込みプロテクト回路
EP0526114A1 (en) * 1991-07-29 1993-02-03 Motorola, Inc. A method and apparatus for performing address translation in a data processor using masked protection indirection page descriptors
US6073243A (en) * 1997-02-03 2000-06-06 Intel Corporation Block locking and passcode scheme for flash memory
DE19735948C1 (de) * 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US6643759B2 (en) * 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US6854046B1 (en) 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
US20040268084A1 (en) * 2003-06-30 2004-12-30 Steve Longerbeam Protected RAM filesystem
US7353361B2 (en) * 2005-06-06 2008-04-01 International Business Machines Corporation Page replacement policy for systems having multiple page sizes
US7818489B2 (en) * 2006-11-04 2010-10-19 Virident Systems Inc. Integrating data from symmetric and asymmetric memory
WO2009063536A1 (ja) * 2007-11-16 2009-05-22 Netcleus Systems Corporation タスク処理装置
US20100162038A1 (en) * 2008-12-24 2010-06-24 Jared E Hulbert Nonvolatile/Volatile Memory Write System and Method
US8516220B2 (en) * 2010-05-11 2013-08-20 Intel Corporation Recording dirty information in software distributed shared memory systems
US8954959B2 (en) * 2010-09-16 2015-02-10 Red Hat Israel, Ltd. Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU
US9256552B2 (en) * 2011-11-21 2016-02-09 Cisco Technology, Inc. Selective access to executable memory
CN102591702B (zh) * 2011-12-31 2015-04-15 华为技术有限公司 虚拟化处理方法及相关装置和计算机系统
US9354916B2 (en) * 2012-11-29 2016-05-31 Red Hat Israel, Ltd. Detection of guest disk cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070126756A1 (en) * 2005-12-05 2007-06-07 Glasco David B Memory access techniques providing for override of page table attributes
US20120072669A1 (en) * 2010-09-21 2012-03-22 Fujitsu Limited Computer-readable, non-transitory medium storing memory access control program, memory access control method, and information processing apparatus

Also Published As

Publication number Publication date
EP2997477B1 (en) 2021-09-01
EP2997477A1 (en) 2016-03-23
TW201502780A (zh) 2015-01-16
TWI603195B (zh) 2017-10-21
IL242154B (en) 2018-10-31
US20140337585A1 (en) 2014-11-13
WO2014184515A1 (en) 2014-11-20
CN105190571A (zh) 2015-12-23
JP6314212B2 (ja) 2018-04-18
JP2016521425A (ja) 2016-07-21
US9218302B2 (en) 2015-12-22
GB2514107B (en) 2020-07-29
KR20160007549A (ko) 2016-01-20
AR096255A1 (es) 2015-12-16
CN105190571B (zh) 2018-10-12
GB201308507D0 (en) 2013-06-19
GB2514107A (en) 2014-11-19

Similar Documents

Publication Publication Date Title
KR102294562B1 (ko) 페이지 테이블 데이터 관리
US7313669B2 (en) Virtual translation lookaside buffer
KR102592377B1 (ko) 보호된 예외 핸들링
US9304915B2 (en) Virtualization system using hardware assistance for page table coherence
US20120072906A1 (en) Memory Overcommit by Using an Emulated IOMMU in a Computer System without a Host IOMMU
JP2015228227A (ja) ページング可能ゲストをサポートするコンピューティング環境のストレージの管理を容易にするためのコンピュータ可読プログラム・コード・ロジック、方法、およびシステム
KR20180019154A (ko) 데이터 처리장치 및 소유권 테이블에 의한 데이터 처리방법
US10592431B2 (en) Independent shared and process virtual address translations
JP2006526203A (ja) ストレージの無効化、バッファ・エントリの消去
JP2001516081A (ja) データ処理装置用の方法
US9547603B2 (en) I/O memory management unit providing self invalidated mapping
US20120072619A1 (en) Memory Overcommit by Using an Emulated IOMMU in a Computer System with a Host IOMMU
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
US10824350B2 (en) Handling contingent and non-contingent memory access program instructions making use of disable flag
KR20220045211A (ko) 캐패빌리티 기입 어드레스 추적
JP2022505011A (ja) メモリ・アクセスを制御するための装置及び方法
JP3674446B2 (ja) 個別アプリケーションパッチ管理装置及び個別アプリケーションパッチ管理方法
US11550651B2 (en) Execution circuits using discardable state
JP7369720B2 (ja) アクションをトリガするための装置及び方法
JPH08305634A (ja) 情報処理方法及び装置
Bhattacharjee et al. Virtual Memory, Coherence, and Consistency
Bhattacharjee et al. The Virtual Memory Abstraction

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant