KR100218617B1 - 변환우선참조 버퍼를 이용하여 메모리를 관리하는 데이터 처리 시스템의 효율적인 메모리 관리 방법 및 시스템과 그를 이용한 데이터 처리 시스템 - Google Patents

변환우선참조 버퍼를 이용하여 메모리를 관리하는 데이터 처리 시스템의 효율적인 메모리 관리 방법 및 시스템과 그를 이용한 데이터 처리 시스템 Download PDF

Info

Publication number
KR100218617B1
KR100218617B1 KR1019960001882A KR19960001882A KR100218617B1 KR 100218617 B1 KR100218617 B1 KR 100218617B1 KR 1019960001882 A KR1019960001882 A KR 1019960001882A KR 19960001882 A KR19960001882 A KR 19960001882A KR 100218617 B1 KR100218617 B1 KR 100218617B1
Authority
KR
South Korea
Prior art keywords
buffer
virtual address
translation
memory
storing
Prior art date
Application number
KR1019960001882A
Other languages
English (en)
Other versions
KR960032197A (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 KR960032197A publication Critical patent/KR960032197A/ko
Application granted granted Critical
Publication of KR100218617B1 publication Critical patent/KR100218617B1/ko

Links

Classifications

    • 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
    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 메모리 관리 유닛을 사용하여 유효 어드레스를 변환 우선참조 버퍼내의 실제 어드레스로 변환하는 데이타 처리 시스템에서의 효율적인 메모리 관리 수행 방법 및 시스템에 관한 것이다. 제 1동작 모드동안 선택된 수의 유효 어드레스 식별자(as elected number of effective address identifiers)가 변환 우선참조 버퍼내에 저장된다. 각각의 가상 어드레스 식별자와 연관하여 단일 메리 블럭에 대한 대응 실제 어드레스 엔트리가 존재한다. 제 1 동작 모드에서 선택된 가상 어드레스는 변환 우선참조 버퍼를 사용하여 대응하는 실제 어드레스로 변환될 수 있다. 제 2 동작 모드에서는, 선택된 수의 가상 어드레스 식별자가 변환 우선참조 버퍼내에 저장되고, 각각의 가상 어드레스 식별자는 연관된 다수의 보호 비트(ppotection bit)를 갖는다. 각 보호 비트는 연관된 가상 어드레스로부터 시작하는 다수의 연속적인 메모리 블럭에 대한 보호 상태(protection bit)를 나타낸다. 제 2 동작 모드에서는 정해진 크기의 변환 우선참조 버퍼를 사용하여 다수의 블럭에 대해 메모리 블럭 보호가 제공될 수 있다.

Description

변환 우선참조 버퍼를 이용하여 메모리를 관리하는 데이터 처리 시스템의 효율적인 메모리 관리 방법 및 시스템과 그를 이용한 데이터 처리 시스템
제1도는 본 발명의 방법 및 시스템을 구현하는데 사용될 수 있는 데이터 처리 시스템의 하이 레벨 블럭도
제2도는 본 발명의 방법 및 시스템의 제 1 모드에 따라 변환 우선참조 버퍼를 이용하여 가상 어드레스를 실제 어드레스로 변환하는 것을 도시한 하이 레벨 블럭도,
제3도는 본 발명에 따른 방법 및 시스템의 제 1 모드에서 동작시 제 2 도에 도시된 변환 우선참조 버퍼의 각 엔트리의 하이 레벌 블럭도,
제4도는 본 발명에 따른 방법 및 시스템의 제 2 모드에서 변환 우선참조 버퍼를 이용하여 다수의 메로리 블럭의 보호 상태를 판정하는 것을 도시한 하이 레벨 블록도,
제5도는 본 발명에 따른 방법 및 시스템의 제 2도 모드에서 동작시 제 4도에 도시된 변환 우선참조 버퍼의 각 엔트리의 하이 레벨 블록도.
*도면의 주요부분에 대한 부호의 설명
10 : 프로세서 12 : 버스 인터페이스 유닛
14 : 4K 인스트럭션 캐시 및 MMU 16 : 4K 데이터 캐시 및 MMU
18 : 인스트럭션 인출 분기 유닛 20 : 디스패치 유닛
22 : 고정 소숫점 유닛 28 : 로드/저장 유닛
30 : 부동 소숫점 유닛 32 : 범용 구조 레지스터 및 재명명 버퍼
36 : 부동 수숫점 구조 레지스터 40 : 완료 유닛
52 : 세그먼트 레지스터 54,58,74 : 레지스터
56,76 : 변환 우선참조 버퍼 70 : 유효 어드레스 레지스터
본 발명은 전반적으로 개선된 데이터 처리 시스템에 관한 것으로, 특히 데이터 처리 시스템에서 효율적인 메로리 관리를 수행하기 위한 개선된 방법 및 시스템에 관한 것이다. 더욱 상세하게는, 본 발명은 데이터 처리 시스템에서 이중 모드 변환 우선참조 버퍼(dual mode translation lookaside buffer)를 이용하여 효율적으로 메모리를 관리하기 위한 개선된 방법 및 시스템에 관한 것이다.
오늘날의 데이터 처리 시스템은 흔히 소위 유효(effective) 혹은 가상(virtual) 어드레스 공간을 이용하여 각각의 애플리케이션이 그의 전용(private) 어드레스 공간을 이용할 수 있게 한다. 따라서, 이러한 시스템은 이들 유효 어드레스 시스템 메모리내의 실제 어드레스로 변환하는 어떤 기법이 필요하다. 물론 당업자라면 여러개의 유효 어드레스가 하나의 실제 어드레스로 매핑될 수 있다는 것을 충분히 이해할 것이다. 따라서 유효 어드레서 공간을 정확히 유지하기 위해, 유효 어드레스로부터 실제 어드레스로 효율적이고 신속하게 변환할 수 있게 하는 기법을 제공하는 것이 반드시 필요하다.
유효 메모리 어드레스에서 실제 메모리 어드레스로의 이러한 매핑은 통상, 유효 어드레스 공간으로부터 실제 어드레스 공간으로의 매핑을 지원하는 메모리 관리 유닛(memory management unit)을 이용하여 성취한다. 이러한 메모리 관리 유닛은 전형적으로, 고속 메모리내에 제공되는 변환 우선참조 버퍼를 이용하여 제한된 수의 유효 어드레스를 실제 메모리 어드레스로 변환한다.
변환을 위한 새로운 유효 어드레스가 요구된 경우, 어느 유효 어드레스가 변환 우선참조 버퍼내에 저장되고 어느 어드레스가 대체될 것인지를 결정하기 위해서, 공지의 알고리즘이 전형적으로 사용된다. 예를 들면, 변환 우선참조 버퍼로서 사용 될 수 있는 고속 메모리의 제한된 양으로 인해, 소위 최소 최근 사용(Least Recently Utilized;LRU) 알고리즘이 흔히 이용된다.
이러한 설계는 표준 일반 프로세싱 애플리케이션에 대해서는 잘 동작하지만, 공지된 변환 우선참조 버퍼의 한정된 용량으로 인해 이들 프로세서에 대한 특수 목적의 애플리케이션에 적용하기에는 어려움이 따른다. 데이터 혹은 인스트럭션을 포함하는 다수의 메모리 블럭이 제어되어야 하는 애플리케이션에서는, 변환 우선참조 버퍼를 계속해서 로딩, 무효화 및 재로딩하는데 수반되는 오버헤드(overhead)가 큰 부담일 수 있다. 또한, 특수 목적 애플리케이션에 대해 변환 우선참조 버퍼의 크기 및 구성을 변화시키는데는 상당히 비용이 소요된다.
따라서 , 데이터 처리 시스템내의 다양한 메모리 관리 시나리오(memory management scenarios)를 효율적으로 관리할 수 있는 개선된 메모리 관리 유닛에 대한 필요성이 존재한다.
따라서, 본 발명의 목적은 개선된 데이터 처리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 데이터 처리 시스템에서 이중 모드 변환 우선참조 버퍼를 이용하여 효율적으로 메모리 관리를 수행하는 개선된 방법 및 시스템을 제공하는데 있다.
본 발명의 또 다른 목적은 데이터 처리 시스템에서 이중 모드 변환 우선참조 버퍼를 이용하여 효율적으로 메모리 관리를 수행하는 개선된 방법 및 시스템을 제공하는 것이다.
전술한 본 발명의 목적은 이하 개시되는 바와 같이 성취될 수 있다.
데이터 처리 시스템에서 메모리 관리 유닛을 이용하여 유효 어드레스를 변환 우선참조 버퍼내의 실제 어드레스로 변환하는 효율적인 메모리 관리 방법 및 시스템이 개시된다. 제 1 동작 모드에서, 선택된 수의 유효 어드레스 식별자(effective address identifiers)가 변환 우선참조 버퍼내에 저장된다. 각각의 가상 어드레스 식별자와 연관하여 단일의 메모리 블럭에 대한 대응하는 실제 어드레스 엔트리가 존재하며, 선택된 가상 어드레스는 변환 우선참조 버퍼를 이용하여 대응하는 실제 어드레스로 변환될 수 있다. 제 2 동작 모드에서, 선택된 수의 가상 어드레스 식별자(virtual address identifiers)가 변환 우선참조 버퍼내에 저장되고, 각각의 가상 어드레스 식별자는 그와 연관하여 저장되는 다수의 보호 비트( protection bit)를 가지며, 각 보호 비트는 연관된 가상 어드레스 식별자부터 시작하는 다수의 연속적인 메모리 블럭에 대한 보호 상태(protection status) 를 나타내고, 고정 크기의 변환 우선참조 버퍼를 이용하여 다수의 메모리 블럭 보호가 제공될 수있다.
전술한 목적 및 추가적인 목적, 특징 및 장점은 이하 개시되는 상세한 설명으로부터 분명해질 것이다.
이하 첨부 도면을 참조하여 본 발명의 실시예를 상세히 기술한다.
제 1도를 참조하면, 본 발명의 바람직한 실시예에 따라 정보를 처리하는 프로세서(10)의 블럭도가 도시되어 있다. 바람직한 실시예에, 프로세서(10)는 단일직접 회로 수퍼스칼라 마이크로프로세서이다. 따라서, 이하 논의되는 바와 같이, 프로세서(10)는 각종 유닛, 레지스터, 버퍼, 메모리 및 다른 섹션을 포함하며, 이 모든 구성요소는 직접 회로에 의해 구현된다. 또한 바람직한 실시예에서, 프로세서(10)는 축소 인스트럭션 세트 컴퓨팅(reduced instruction set computing;RISC) 기법에 따라 동작한다. 제 1 도에 도시된 바와 같이, 시스템 버스(11)는 프로세서(10)의 버스 인터페이스 유닛(bus interfce unit;BIU)(12)에 접속된다. BIU(12)는 프로세서(10)와 시스템 버스(11) 사이의 정보 전송을 제어한다.
BIU(12)는 프로세서(10)의 인스트럭션 캐시(14) 및 데이터 캐시(16)에 접속된다, 인스트럭션 캐시(14) 혹은 데이터 캐시(16)와 같은 고속 캐시는 시스템 메모리로부터 캐시로 이전에 전송된 데이터 혹은 인스트럭션의 서브세트를 비교적 신속하게 액세스할 수 있게 한다. 인스트럭션 캐시(14)는 인스트럭션을 분기 유닛(branch unit)(18)으로 출력한다. 인스트럭션 캐시(14)로부터의 이러한 인스트럭션에 응답하여, 분기 유닛(18)은 인스트럭션을 프로세서(10)의 다른 실행 회로로 선택적으로 출력한다.
시스템 버스(11)에 접속된 시스템 메모리와 데이터 혹은 인스트럭션 캐시 사이의 오퍼랜드 혹은 인스트럭션의 전송은 일반적으로 블럭으로 칭해지는 고정 길이의 유닛으로 행해진다. 데이터 블럭은 잘 알려진 바와 같이 트랙, 섹터, 라인 바이트등과 같은 다양한 길이로 전송될 수 있다. 분기 유닛(18)에 의한 메모리 액세스시 필요한 데이터가 데이터 캐시로부터 검색될 수 있는 경우 이러한 상황은 캐시 '적중(hit)이라 칭해지며, 필요한 데이터가 캐시로부터 검색될 수 없어서 시스템 메모리 혹은 다른 프로세서 캐시로부터 검색되어야 할 경우, 이러한 상황은 실패 (miss)라 칭해진다. 당업자에게 잘 알려진 바와 같이, 인스트럭션 캐시(14) 및 데이터 캐시(l6)는모두 가상 메모리 어드레스를 시스템 메모리내의 실제 메모리 어드레스로 매핑하는 것을 지원하는데 이용되는 메모리 관리 유닛을 구비하고 있다. 이하 상세히 개시되는 바와 같이, 각 메모리 관리 유닛은 바람직하게 변환 우선참조 버퍼를 이용하여 가상 메모리 어드레스를 실제 어드레스로 신속하고 정확하게 변환한다. 본 발명의 중요한 특징에 따르면 각각의 변환 우선참조 버퍼는 두가지의 별도 모드에서 동작될 수 있으며, 이하의 변환 우선참조 버퍼 모드의 동작 설명은 인스트럭션 캐시(14) 및 데이터 캐시(16) 모두에 동일하게 적용 될 수 있다.
바람직한 실시예에서, 프로세서(10)의 실행 회로는 분기 유닛(18)에 부가하여 다수의 실행 유닛, 즉, 고정 소숫점 유닛(fixed point unit;FXU)(22), 로드/저WKD 유닛(Load-Store unit;LSU)(28), 및 부동 소숫점 유닛(floating point unit;FPU)(30)을 포함한다. FXU(22) 및 LSU(28)는 범용 구조 레지스터(general purpose architectural registers;GPR)(32)로부터 그들의 소스 오퍼랜드 정보를 수신한다. FXU(22) 및 LSU(28)는 그들의 연산 결과 (목적 오퍼랜드 정보)를 출력하여 GPR(32)내의 고정 소숫점 재명명 버퍼(fixed point rename buffer)내의 선택된 엔트리에 저장한다.
또한, LSU(28)는 부동 소숫점 구조 레지스터(floating point architectural registers;FPR)(36)로부터 소스 오펴랜드 정보를 수신한다. FPU(30)는 FPR(36) 및 LSU(28)로부터 소스 오펴랜드 정보를 수신한다. LSU(28) 및 FPU(30)는 그들의 연산 결과(목적 오펴랜드 정보)를 출력하여 FPR(36)내의 부동 소숫점 재명명 버퍼내의 선택된 엔트리에 저장한다.
분기 유닛(18)은 인스트럭션 캐시(14)로부터의 인스트럭션 입력에 응답하여 입력된 인스트럭션을 디스패치 유닛(dispatch unit)(20)을 통해 실행 유닛들(22, 28, 30, 32, 36)중 선택된 실행 유닛으로 선택적으로 디스패치한다. 각각의 실행 유닛은 특정 클래스의 인스트럭션들중 하나 이상의 인스트럭션을 실행한다. 예를 들면, FXU(22)는 소스 오펴랜드에 대해 가산, 감산, AND연산, OR연산과 같은 제 1 클래스의 고정 소숫점 수학적 연산을 실행한다. FPU(30)는 소스 오펴랜드에 대해 부동 소숫점 승산 및 제산 연산과 같은 부동 소숫점 연산을 실행한다.
로드(a Load) 인스트럭션에 응답하여, LSU(28)는 데이터 캐시(16)로부터 정보를 수신하고, 입력된 정보를 GPR(32) 및 FPR(36)내의 재명명 버퍼중 선택된 재명명 버퍼 및 /혹은 FPU(30)로 복제한다. 이러한 정보가 데이터 캐시(16)내에 저장되어 있지 않은 경우, 데이터 캐시(16)는 이 정보를 시스템 버스(11)에 접속된 시스템 메모리로부터 BIU(12) 및 시스템 버스(11)를 통해서 수신한다. 또한, 데이터 캐시(16)는 정보를 BIU(12) 및 시스템 버스(11)를 통해서 시스템 버스(11)에 접속된 시스템 메모리로 출력할 수 있다.
분기 유닛(18)으로부터의 저장(a Store) 인스트럭션에 응답하여, LSU(28)는 저장 어드레스를 발생하고, GPR(32) 및 FPR(36)중 선택된 레지스터로부터 데이터를 판독한다. 저장 인스트럭션이 완료될 준비가 된 경우, 저장 어드레스 및 데이터는 데이터 캐시로 기록된다.
GPR(32)내의 재명명 버퍼중 선택된 재명명 버퍼에 정보가 저장될 때, 이 정보는 이 선택된 재명명 버퍼를 할당하는 인스트럭션에 의해 지정되는 저장 위치(예컨대, GPR(32)중 하나의 레지스터)와 연관된다. 재명명 버퍼중 선택된 재명명 버퍼에 저장된 정보는 분기 유닛(18)으로부터의 신호에 응답하여 GPR(32)중 자신과 연관된 레지스터에 복제된다. 분기 유닛(18)은 선택된 재명명 버퍼에 저장된 정보의 이러한 복제를, 이 정보를 발생한 인스트럭션의 완료(완료 유닛(40)에 의해 표시됨)에 응답하여 지시한다. 바람직한 실시예에서, 프로세서(10)는 단일 사이클동안 다수의 인스트럭션을 완료시킬 수도 있다.
정보가 FPR(36)내의 재명명 버퍼중 선택된 재명명 버퍼에 저장될 때, 이 정보는 FPR(36)중 하나의 레지스터와 연관된다. 재명명 버퍼중 선택된 재명명 버퍼에 저장된 정보는 분기 유닛(18)으로부터의 신호에 응답하여 FPR(36)중 자신과 연관된 레지스터에 복제된다. 분기 유닛(18)은 선택된 재명명 버퍼에 저장된 정보의 이러한 복제를, 이 정보를 발생한 인스트럭션의 완료(완료 유닛(40)에 의해 표시됨)에 응답하여, 지시한다. 바람직한 실시예에서, 프로세서(10)는 단일 사이클동안 다수의 인스트럭션을 완료시킬 수도 있다.
프로세서(10)는 실행장치들(22, 28, 30, 32, 36)중 다양한 실행장치에서 다수의 인스트럭션을 동시에 실행하므로써 고성능을 성취한다. 따라서, 각 인스트럭션은 각기 다른 인스트럭션의 단계들과 동시에 실행될 수 있는 일련의 단계들로서 처리된다. 이러한 기법은 파이프라이닝(pipelining)으로 칭해진다. 인스트럭션은 보통 5단계, 즉, 인출(fetch), 디스토/디스패치, 실행(execution), 종료,(finish) 및 완료(completion)로 처리된다.
인출 단계에서, 분기 유닛(18)은 인스트럭션 시퀀스를 저장하고 있는 하나 이상의 메모리 어드레스에서 하나 이상의 인스트럭션을 인스트럭션 캐시(14)로부터 선택적으로 수신한다.
디코드/디스패치 단계에서, 분기 유닛(18)은, 각 디스패치될 인스트럭션 결과(목적 오퍼랜드 정보)에 대해 재명명 버퍼 엔트리를 확보한 후에, 최고 3개의 인출된 인스트럭션을 디코딩하여, 실행 유닛들(22, 28, 30, 32, 36)중에서 디코드 단계에서의 디코딩에 응답하여 선택된 실행 유닛으로 최고의 디코딩된 인스트럭션을 디스패치 한다. 프로세서(10)는 인스트럭션을 그들의 프로그램된 시퀀스 순서로 디스패치 한다. 분기 유닛은 각 인스트럭션에 대해 유일한 태그를 인스트럭션 식별자(instruction identifier;IID)로서 할당한다.
실행 단계에서, 실행 유닛은 오퍼랜드가 준비되는 즉시 그들의 디스패치된 인스트럭션을 실행한다. 종료 단계에서, 실행 유닛은 앞서 논의된 바와 같이 재명명 버퍼내의 선택된 엔트리에 출력 결과(목적 오퍼랜드 정보)를 저장한다. 각각의 실행 유닛은 인스트럭션의 실행이 종료되었음을 분기 유닛에게 신호한다, 실행 유닛은 인스트럭션 상태(insfrudion status)를 IID 와 함께 분기 유닛으로 되전송한다.
제 2도에는, 본 발명에 따른 방법 및 시스템이 제 1 모드에서 변환 우선참조 버퍼를 이용하여 가상 어드레스를 실제 어드레스로 변환하는 것을 나타내는 하이 레벨 블럭도가 도시되어 있다. 도시된 바와 같이, 32 비트 유효 어드레스는 가상 유효 어드레스 레지스터로 연결되며, 4 비트 세그먼트 레지스터 엔트리, 16 비트 유효 페이지 엔트리 및 12 및 비트 바이트 혹은 오프셋 엔트리를 포함한다. 이 32 비트 유효 어드레스는 가상 세그먼트 식별자를 결정하는 세그먼트 레지스터(52)와 결합하여 사용되어 52 비트 가상 어드레스를 생성한다. 52 비트 가상 어드레스는 24 비트 가상 세그먼트 식별자와, 유효 어드레스에서 변경되지 않은 16 비트 페이지 및 12 비트 바이트 혹은 오프셋 값을 포함한다.
다음으로, 본 발명의 중요한 특징에 따르면, 24 비트 가상 세그먼트 식별자 및 16 비트 페이지 식별자가 레지스터(54)로부터 획득되어 변환 우선참조 버퍼(56)를 액세스하는데 사용된다. 변환 우선참조 버퍼(56)는 바람직하게, 32개 엔트리, 2방향 세트 연관 변환 우선참조 버퍼로서, 가상 어드레스 식별자를 20 비트 실제 페이지 번호로 변환하는데 이용될 수 있다. 이 20 비트 실제 페이지 번호는 이후 레지스터(58)내의 12비트 바이트 오프셋과 연쇄되어 32비트 실제 어드레스를 형성한다.
당업자라면, 본 발명의 도시된 실시예에서 32 개의 상이한 가상 세그먼트 식별자가 변환 우선참조 버퍼(56)내에 저장될 수도 있으며, 따라서 변환 우선참조 버퍼(56)내의 각종 어드레스는 통상 알려진 최소 최근 사용 대체 알고리즘을 이용하여 주기적으로 대체될 필요가 있다는 것을 이해할 것이다.
제 3 도에는 본 발명에 따른 방법 및 시스템이 제 1동작 모드에서 동작시에 제 2 도에 도시된 변환 우선참조 버퍼(56)의 구성을 나타내는 하이 레벨 블럭도가 도시되어 있다. 도시된 바와 같이, 제 3 도에서, 변환 우선참조 버퍼(56)내의 각 엔트리는 단일의 유효 엔트리 비트, 1~24 비트의 가상 세그먼트 식별자, 및 25~36 비트의 유효 어드레스를 포함하는 상위 엔트리(62)를 포함한다. 참조 부호(64)로 도시된 바와 같이, 변환 우선참조 버퍼의 하위 엔트리 32 비트는 20 비트 실제 페이지 번호, 두개의 실행 특권 비트(execution privileges bits)(본 발명과 무관하게 실행 특권을 금지하거나 특별 실행 특권을 승인하는데 사용됨), 특정의 데이터 블럭에 대한 캐시 속성을 나타내는 각종 페이지 속성 비트, 및 해당하는 단일의 실제 페이지 번호에 대한 페이지 보호 비트를 포함한다. 이러한 유형의 변환 우선참조 버퍼에서는 통상적인 이러한 방식으로, 가상 어드레스 식별자를 사용하여 어드레스를 신속하고 효율적으로 시스템 메모리 어드레스로 변환할 수 있다. 그러나, 변환 우선참조 버퍼(56)의 한정된 크기로 인해 어떤 주어진 시간에 32 개의 상이한 어드레스로 변환될 수 있는 어드레스의 수는 제한된다
전술한 바와 같이, 프로세서에 대한 어떤 특정 애플리케이션은 대용량 메모리에 대한 제어 및 보호를 요구하며, 이들 동작은 이러한 유형의 프로세서에서 이용되는 전형적인 변환 우선참조 버퍼의 제한된 크기로 인해 상당한 부담이 될 것이다. 따라서, 본 발명의 중요한 특징에 따르면, 제 2 도의 변환 우선참조 버퍼(56)가 제2 동작 모드에서 동작되어, 제 4 도에 예시된 방식으로 다수의 메모리 블럭의 보호 상태를 판정하는데 이용될 수 있다.
전술한 바와 같이, 32 비트 유효 어드레스는 유효 어드레스 레지스터(70)로 연결되며 유효 어드레스의 4 개의 최대 유효 비트 및 페이지 식별자를 이용하여 레지스터(74)내에 20 비트 페이지 식별자를 생성한다. 특정 세그먼트 그룹내의 기본 세그먼트에 대한 가상 세그먼트 식별자를 식별하여, 레지스터(74)내의 페이지 식별자와 더불어 제 2 동작 모드에서 변환 우선참조 버퍼(76)를 액세스하는데 이용되는 24 비트 프로세스 식별자를 제공한다. 이러한 동작 모드에서는 변환 우선참조 버퍼의 애플리케이션이 변경되므로, 변환 우선참조 버퍼(76)는 제 2 도에서 이용된 참조 부호와 상이한 참조 부호로 표시되어 있다.
제 4 도에 도시된 바와 같이, 변환 우선참조 버퍼(76)의 출력은 다수의 메모리 블럭 각각에 대한 단일 보호 비트를 포함한다. 당업자라면 데이터 캐시내에 애플리케이션들에 있어서, 이들 보호 비트는 이 비트와 연관된 메모리 블럭에 사용자가 기입을 수행할 수 있는지의 여부를 판정하는 기입 인에이블(write enable;WE)비트를 구성할 것임을 인식할 것이다. 변환 우선참조 버퍼(76)가 인스트럭션 캐시내에 이용된 경우, 각 보호 비트는 실행 특권 비트를 구성하며, 이 메모리 블럭내에 제공된 인스트럭션이 실행될 수 있는지의 여부를 판정하는데 사용된다.
마지막으로, 제 5 도에는, 본 발명에 따른 방법 및 시스템이 제 2 동작 모드에서 동작시에 제 4 도에 도시된 변환 우선참조 버퍼의 구성을 예시하는 하이 레벨 블럭도가 도시되어 있다. 제 3 도와 관련하여 전술한 바와 같이, 단일 유효 엔트리 비트가 각 변환 우선참조 버퍼 엔트리내에 제공되어 이 엔트리의 유효성(validity)을 표시한다. 다음으로, 참조 부호(82)로 도시된 바와같이, 가상 세그먼트 식별자의 24 비트 및 유효 어드레스의 11비트를 또한 이용하여, 보호 상태가 제어되어야 하는 다수의 메모리 블럭이 시작하는 기본 메모리 블럭을 식별한다. 이후, 참조 부호(84)에 도시된 바와 같이, 본 발명의 중요한 특징에 따라, 32 개의 별도 보호 비트가 제공된다. 각 보호 비트는, 변환 우선참조 버퍼의 상위 엔트리 부분에 식별된 기본 블럭 혹은 페이지에 후속하는 단일의 메모리 블럭 혹은 페이지의 보호 상태를 한다. 전술한 바와 같이, 이들 보호 비트는 인스트럭션의 실행을 방지하거나 혹은 허용하는데 이용될 수 있으며, 또한 각 페이지에 대한 데이타의 기입을 방지하거나 혹은 허용하는데 이용될 수 있다.
따라서, 변환 우선참조 버퍼의 엔트리내에 32 개의 메모리 블럭 각각에 대한 단일의 보호 비트을 제공함으로써, 본 발명의 방법 및 시스템에 따라 128 킬로 바이트의 연속적이 블럭에서 4 킬로바이트의 세분성으로 최고 4메가바이트 공간에 대한 메모리 보호가 제공될 수 있다. 이 시스템은 각각의 128 킬로바이트 메모리 블럭이 연속적이고 변환 우선참조 버퍼의 상위 엔트리 부분내에 제공된 기본 엔트리에서 시작할 것만을 요구하므로, 전체 4 메가바이트 메모리가 모두 연속적일 필요는 없다는 점에서 매우 융통성이 있다. 이러한 방식에 의하면, 변환 우선참조 버퍼의 설계 및 크기를 실질적으로 변경할 필요없이, 대량의 메모리를 액세스 및 보호해야 하는 애플레이케이션에서 변환 우선참조 버퍼가 무효화되고 재로딩되는 횟수를 실질적으로 최소화시킬 수 있다.
전술한 내용을 참조하여, 당업자라면 본 발명에 따른 메모리 관리 유닛이 이중 모드 변환 우선참조 버퍼를 이용함으로써 높은 실패율의 패널티 없이 대량의 메모리 보호를 제공하는 한편, 비용상의 문제로 어드레스 변환을 위해 대량의 고속 메모리가 이용되지 못하는 설계 요건을 충족시킴을 이해할 수 있을 것이다.
이상 본 발명이 바람직한 실시예에 따라 구체적으로 설명되었지만, 본 발명은 전술한 실시예에 한정되는 것은 아니며, 그 사상 및 범주를 이탈하지 않는 범위내에서 형태 및 세부사항에 있어 다양한 변경이 이루어질 수 있음은 물론이다.

Claims (15)

  1. 변환 우선참조 버퍼(a translation lookaside buffer)를 이용하여 가상 어드레스를 실제 어드레스로 변환하는 메모리 관리 유닛을 이용하는 데이터 처리 시스템의 효율적인 메모리 관리 방법에 있어서,
    ① 제 1 동작 모드에서 동작하는 동안, 단일의 메모리 블럭에 대해 연관된 실제 어드레스 엔트리 및 그와 연관하여 저장되는 단일 보호 비트를 제각기 갖는 최고 N개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 단계-선택된 가상 어드레스는 상기 변환 우선참조 버퍼를 이용하여 대응하는 실제 어드레스로 변환될 수 있음-와,
    ② 제 2 동작 모드에서 동작하는 동안, 상기 각 가상 어드레스와 연관하여 저장되는 M개의 보호 비트들을 제각기 갖는 최고 N개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 단계-상기 M개의 보호 비트들은, 상기 변환 우선참조 버퍼가 상기 제 1동작 모드에서 동작중일 때 상기 변환 우선참조 버퍼내에 저장되었던 상기 연관된 실제 어드레스 엔트리 위치에 저장되고, 상기 M은 1보다 크며 상기 보호 비트는 연관된 가상 어드레스 식별자로 시작하는 M 개의 연속하는 메모리 블럭 각각에 대한 보호 상태를 표시하며, 메모리 블럭 보호는 최고 N×M개의 메모리 블럭 대해 제공될 수 있음를 포함하는 메모리 관리 방법.
  2. 제 1항에 있어서, 상기 제 1동작 모드에서 동작하는 동안, 최고 N 개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 상기 단계는, 상기 각 가상 어드레스 식별자와 연관하여, 상기 연관된 실제 어드레스 엔트리에 대한 보호 상태를 나타내 단일의 보호 비트를 저장하는 단계를 더 포함하는 관리 방법.
  3. 제 2 항에 있어서, 상기 제 1동작 모드에서 동작하는 동안, 최고 N 개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장한는 상기 단계는, 상기 각 가상 어드레스 식별자와 연관하여, 상기 연관된 실제 어드레스 엔트리에 대한 캐시 속성을 나타내는 다수의 속성 비트를 저정하는 단계를 더 포함하는메모리 관리 방법.
  4. 제 1 항에 있어서, 상기 각 메모리 블럭은 데이터를 포함하며, 상기 M 개의 보호 비트 각각은 연관된 메모리 블럭에 대한 기입 방지 상태 비트를 포함하는 메모리 관리 방법.
  5. 제 1 항에 있어서, 상기 각 메모리 블럭은 인스트럭션을 포함하며, 상기 M개의 보호 비트 각각은 연관된 메모리 블럭에 대한 실행 방지 상태 비트를 포함하는 메모리 관리 방법.
  6. 변환 우선참조 버퍼를 이용하여 가상 어드레스를 실제 어드레스로 변환하는 메모리 관리 시스템에 있어서,
    ① 제 1 동작 모드에서 동작하는 동안, 단일의 메모리 블럭에 대해 연관된 실제 어드레스 엔트리 및 그와 연관하여 저장되는 단일의 보호 비트를 제각기 갖는 최고 N개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 수단-선택된 가상 어드레스는 상기 변환 우선참조 버퍼를 이용하여 대응하는 실제 어드레스로 변환될 수 있음-과,
    ② 제 2 동작 모드에서 동작하는 동안, 상기 각 가상 어드레스와 연산하여 저장되는 M개의 보호 비트들을 제각기 갖는 최고 N개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 수단-상기 M개의 보호 비트들은, 상기 변환 우선참조 버퍼가 상기 제 1 동작 모드에서 동작중일 때 상기 변환 우선참조 버퍼내에 저장되었던 상기 연관된 실제 어드레스 엔트리 위치에 저장되고, 상기 M은 1보다 크며, 상기 보호 비트는 연관된 가상 어드레스 식별자로 시작하는 M개의 연속하는 메모리 블럭 각각에 대한 보호 상태를 표시하며, 메모리 블럭 보호는 최고 N×M개의 메모리 블럭에 대해 제공될 수 있음을 포함하는 메모리 관리 시스템.
  7. 제 6 항에 있어서, 상기 제 1동작 모드에서 동작하는 동안, 최고 N 개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 상기 수단은, 상기 각 가상 어드레스 식별자와 연관하여, 상기 연관된 실제 어드레스 엔트리에 대한 보호 상태를 나타내는 단일의 보호 비트를 저장하는 수단을 더 포함하는 메모리 관리 시스템.
  8. 제 7 항에 있어서, 상기 제 1동작 모드에서 동작하는 동안, 최고 N 개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 상기 수단은, 각 가상 어드레스 식별자와 연관하여, 상기 연관된 실제 어드레스 엔트리에 대한 캐시 속성을 나타내는 다수의 속성 비트를 저장하는 수단을 더 포함하는 메모리 관리 시스템.
  9. 제 6 항에 있어서, 상기 각 메모리 블럭은 데이터를 포함하며, 상기 M 개의 보호 비트 각각은 연관된 메모리 블럭에 대한 기입 방지 상태 비트를 포함하는 메모리 관리 시스템.
  10. 제 6 항에 있어서, 상기 각 메모리 블럭은 데이터를 포함하며, 상기 M개의 보호 비트 각각은 연관된 메모리 블럭에 대한 실행 방지 상태 비트를 포함하는 메모리 메모리 시스템.
  11. 데이터 처리 시스템에 있어서,
    ① 프로세서와,
    ② 메모리와,
    ③ 상기 데이터 처리 시스템내의 가상 어드레스를 상기 메모리내의 실제 어드레스로 매핑하는 메모리 관리 유닛을 포함하되,
    상기 메모리 관리 유닛은
    ㉮ 변환 우선참조 버퍼와,
    ㉯ 제 1동작 모드에서 동작하는 동안, 단일의 메모리 불럭에 대해 연관된 실제 어드레스 엔트리 및 그와 연관하여 저장되는 단일의 보호 비트를 제각기 갖는 최고 N개의 가상 어드레TMTM 식별자를 상기 변환 우선참조 버퍼내에 저장하는 수단-선택된 가상 어드레스 상기 변환 우선참조 버퍼를 이용하여 대응하는 실제 어드레스로 변환될 수 있음-과,
    ㉰ 제 2 동작 모드에서 동작하는 동안, 상기 각 가상 어드레스와 연관하여 저장되는 M개 보호 비트들을 제각기 갖는 최고 N개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 수단-상기 M개의 보호 비트들은, 상기 변환 우선참조 버퍼가 상기 제 1 동작 모드에서 동작중일 때 상기 변환 우선참조 버퍼내에 저장되었던 상기 연관된 실제 어드레스 엔트리 위치에 저장되고,상기 M은 1보다 크며, 상기 보호 비트는 연관된 가상 어드레스 식별자로 시작하는 M개의 연속하는 메모리 블럭에 대해 제공될 수 있음을 구비하는 데이타 처리 시스템.
  12. 제 11 항에 있어서, 상기 제 1동작하는 동안, 최고 N 개의 가상 어드레스 식별자를 상기 변환 우선LCA조 버퍼내에 저장하는 수단은, 상기 각 가상 어드레스 식별자와 연관하여, 상기 연관된 실제 어드레스 엔트리에 대한 보호 상태를 나타내는 단일의 보호 비트를 저장하는 수단을 더 포함하는 데이타 처리 시스템.
  13. 제 12 항에 있어서, 상기 제 1동작 모드에서 동작하는 동안, 최고 N 개의 가상 어드레스 식별자를 상기 변환 우선참조 버퍼내에 저장하는 상기 수단은, 상기 각 가상 어드레스 식별자와 연관하여, 상기 연관된 실제 어드레스 엔트리에 대한 캐시 속성을 나타내는 다수의 속성 비트를 저장하는 수단을 더 포함하는 데이타 처리 시스템.
  14. 제 11항에 있어서, 상기 각 메모리 블럭은 데이타를 포함하며, 상기 M, 개의 보호 비트 각각은 연관된 메모리 블럭에 대한 기입 방지 상태 비트를 포함한 모든 데이터 처리 시스템.
  15. 제 11 항에 있어서, 상기 각 메모리 블록은 인스특럭션은 포함하며, 상기 M개의 보호 비트 각각은 연관된 메모리 블럭 대한 실행 방지 상태 비트를 포함한는 데이타 처리 시스템.
KR1019960001882A 1995-02-10 1996-01-29 변환우선참조 버퍼를 이용하여 메모리를 관리하는 데이터 처리 시스템의 효율적인 메모리 관리 방법 및 시스템과 그를 이용한 데이터 처리 시스템 KR100218617B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/387,147 1995-02-10
US08/387,147 1995-02-10
US08/387,147 US5715420A (en) 1995-02-10 1995-02-10 Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer

Publications (2)

Publication Number Publication Date
KR960032197A KR960032197A (ko) 1996-09-17
KR100218617B1 true KR100218617B1 (ko) 1999-09-01

Family

ID=23528672

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960001882A KR100218617B1 (ko) 1995-02-10 1996-01-29 변환우선참조 버퍼를 이용하여 메모리를 관리하는 데이터 처리 시스템의 효율적인 메모리 관리 방법 및 시스템과 그를 이용한 데이터 처리 시스템

Country Status (4)

Country Link
US (1) US5715420A (ko)
EP (1) EP0726525A3 (ko)
JP (1) JP3618868B2 (ko)
KR (1) KR100218617B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781922A (en) * 1996-11-19 1998-07-14 International Business Machines Corporation Page boundary caches
US6195746B1 (en) * 1997-01-31 2001-02-27 International Business Machines Corporation Dynamically typed register architecture
US5940587A (en) * 1997-12-12 1999-08-17 Intel Corporation System and method for trap address mapping for fault isolation
KR100924303B1 (ko) * 2008-02-22 2009-11-02 인하대학교 산학협력단 메모리 어드레스의 모니터링 방법 및 장치
US8055876B2 (en) * 2008-06-06 2011-11-08 International Business Machines Corporation Selectively mark free frames as unused for cooperative memory over-commitment
US7971027B2 (en) * 2008-06-09 2011-06-28 International Business Machines Corporation Mark page-out pages as critical for cooperative memory over-commitment
US8312201B2 (en) * 2008-06-09 2012-11-13 International Business Machines Corporation Managing memory allocations loans
US8799892B2 (en) * 2008-06-09 2014-08-05 International Business Machines Corporation Selective memory donation in virtual real memory environment
US8725948B2 (en) * 2010-10-06 2014-05-13 Red Hat Israel, Ltd. Opcode length caching
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4581702A (en) * 1983-01-10 1986-04-08 International Business Machines Corporation Critical system protection
US4580217A (en) * 1983-06-22 1986-04-01 Ncr Corporation High speed memory management system and method
US4794524A (en) * 1984-07-03 1988-12-27 Zilog, Inc. Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
CA2008071A1 (en) * 1989-01-27 1990-07-27 Jeffrey S. Watters Pump bus to avoid indeterminacy in reading variable bit field
US4959860A (en) * 1989-02-07 1990-09-25 Compaq Computer Corporation Power-on password functions for computer system
US5265227A (en) * 1989-11-14 1993-11-23 Intel Corporation Parallel protection checking in an address translation look-aside buffer
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
US5222222A (en) * 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
GB9118312D0 (en) * 1991-08-24 1991-10-09 Motorola Inc Real time cache implemented by dual purpose on-chip memory
US5276878A (en) * 1992-10-07 1994-01-04 International Business Machines Corporation Method and system for task memory management in a multi-tasking data processing system

Also Published As

Publication number Publication date
EP0726525A3 (en) 1997-06-18
JP3618868B2 (ja) 2005-02-09
EP0726525A2 (en) 1996-08-14
US5715420A (en) 1998-02-03
JPH08249232A (ja) 1996-09-27
KR960032197A (ko) 1996-09-17

Similar Documents

Publication Publication Date Title
US6240484B1 (en) Linearly addressable microprocessor cache
US5860107A (en) Processor and method for store gathering through merged store operations
US5963984A (en) Address translation unit employing programmable page size
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
EP0548315B1 (en) Translation buffer for virtual machines with address space match
EP3172673B1 (en) Address translation cache that supports simultaneous invalidation of common context entries
US5854913A (en) Microprocessor with an architecture mode control capable of supporting extensions of two distinct instruction-set architectures
JP4437001B2 (ja) 変換索引バッファのフラッシュフィルタ
US5574936A (en) Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US6119204A (en) Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization
US20080104362A1 (en) Method and System for Performance-Driven Memory Page Size Promotion
US5752274A (en) Address translation unit employing a victim TLB
US5873123A (en) Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
CN111213132B (zh) 用飞行中预取服务于cpu需求请求
US20220335126A1 (en) Microarchitectural mechanisms for the prevention of side-channel attacks
US5682495A (en) Fully associative address translation buffer having separate segment and page invalidation
KR100218617B1 (ko) 변환우선참조 버퍼를 이용하여 메모리를 관리하는 데이터 처리 시스템의 효율적인 메모리 관리 방법 및 시스템과 그를 이용한 데이터 처리 시스템
US6446189B1 (en) Computer system including a novel address translation mechanism
KR100231613B1 (ko) 마이크로프로세서의 온칩 캐시에 내재하는 메모리 저장 장소를 선택적으로 로킹하는 장치 및 그 방법
US6363471B1 (en) Mechanism for handling 16-bit addressing in a processor
US5956503A (en) Method and system for front-end and back-end gathering of store instructions within a data-processing system
US5687350A (en) Protocol and system for performing line-fill address during copy-back operation
US5758141A (en) Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register
US5613081A (en) Method of operating a data processor with rapid address comparison for data forwarding
US7076635B1 (en) Method and apparatus for reducing instruction TLB accesses

Legal Events

Date Code Title Description
A201 Request for examination
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: 20060522

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee