KR960001946B1 - 우선 변환 참조버퍼 - Google Patents

우선 변환 참조버퍼 Download PDF

Info

Publication number
KR960001946B1
KR960001946B1 KR1019910023246A KR910023246A KR960001946B1 KR 960001946 B1 KR960001946 B1 KR 960001946B1 KR 1019910023246 A KR1019910023246 A KR 1019910023246A KR 910023246 A KR910023246 A KR 910023246A KR 960001946 B1 KR960001946 B1 KR 960001946B1
Authority
KR
South Korea
Prior art keywords
address
virtual
page
virtual address
physical
Prior art date
Application number
KR1019910023246A
Other languages
English (en)
Other versions
KR920013132A (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 KR920013132A publication Critical patent/KR920013132A/ko
Application granted granted Critical
Publication of KR960001946B1 publication Critical patent/KR960001946B1/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
    • 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/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

내용 없음.

Description

우선 변환 참조버퍼
제1도는 본 발명에 따라 구성된 우선 변환 참조버퍼를 도시하는 블록도.
제2도는 본 발명의 사용에 의해 절약되는 사이클 수를 도시하는 타이밍도.
본 발명은 컴퓨터 메모리 관리시스템에 관한 것으로 특히 가상 메모리 어드레싱을 이용하는 컴퓨터 메모리 시스템에서 가상 어드레스를 물리 어드레스로 변환하기 위한 방법 및 장치에 관한 것이다.
가상 메모리 시스템은 매우 많은 양의 메모리를 그 메모리의 모두가 컴퓨터 시스템의 주메모리인 것처럼 어드레싱하는 것을 허용하는 것이다. 이런 시스템은 실제의 주메모리가 어드레스부여 가능메모리(addressable memory)보다 실질적으로 더 적은 양의 기억공간으로 구성되더라도 이것을 허용한다. 예를들면 주메모리는 1메가바이트 RAM으로 구성될 수 있지만 64메가바이트의 메모리가 가상 메모리 어드레싱 시스템을 사용하여 어드레스 부여가 가능하다.
가상 메모리 시스템은 가상 메모리 어드레스를 물리 메모리 어드레스로 변환하는 메모리 관리 유니트를 제공함으로써 이런 기교를 달성한다.
특정한 물리 어드레스는 주메모리에 또는 장기간 기억장치에 있을 수 있다. 찾는 정보의 물리 어드레스가 주메모리에 있으면, 정보는 컴퓨터에 의해 악세스되어 이용된다.
물리 어드레스가 장기간 기억장치에 있으면, 정보는(보통 페이지로 지칭되는 블록으로) 정보가 사용될 수 있는 주메모리에 전송된다.
이 전송은 새로운 정보에 대한 공간을 마련해 주기 위해 다른 정보가 주메모리로부터 장기간 메모리로 교체되어 나올 것을 필요로 한다.
그렇다면, 이것은 메모리 관리 유니트의 제어하에 달성된다.
컴퓨터는 가상 메모리 시스템 때문에 매우 큰 어드레스부여가능 공간을 가질 수 있지만, 이것은 컴퓨터가 빠르게 동작하는 것을 보장하지는 않는다.
신속한 동작은 구성부품이 얼마나 빠르게 동작하고 메모리가 얼마나 빠르게 악세스될 수 있는가에 의해 결정된다.
후자는 구성부품의 속도에 달려있지만, 그 보다는 어드레스를 가상으로부터 물리로 변환하여 정보를 메모리로부터 검색하는데 요하는 과정에 달려있다. 기본적인 가상 메모리 배열은 주메모리에 기억되는 조사 테이블(lookup table)을 만든다. 메모리 관리 유니트에 제시되는 가상 어드레스는 악세스할 물리 어드레스를 결정하기 위해 이들 테이블에 기억된 값과 비교된다.
때때로 테이블의 여러 단계(level)가 있고, 비교하는데 많은 시스템 클록시간이 걸린다.
이 지연을 극복하기 위해, 가상 메모리 시스템은 흔히 최근에 사용된 데이터 및 명령을 기억하기 위해 매우 고속의 구성부품을 사용하는 캐시 메모리를 포함한다.
이들 캐시 메모리는 통상적으로 프로세서에 신속하게 악세스될 수 있도록 접속된다. 이들 캐시는 어떤 정보를 찾기 위해 주메모리로 가기전에 프로세서에 의해 의뢰된다.
이들 캐시의 이론은 가장 최근에 사용된 정보는 다른 정보가 요구되기전에 다시 요구되기 쉽다는 것이다. 이 이론은 타당하며, 캐쉬 메모리를 사용하는 많은 시스템은 90퍼센트 이상의 적중률을 갖는다.
그러나, 이들 캐시 메모리도 가상 어드레스를 직접 사용하거나 또는 변환된 물리 어드레스를 통하거나 어떤 방법으로든 어드레스 부여가 되어야만 한다.
가상 어드레스에 의한 어드레스 부여는 정보의 다중복사를 포함하는 실질적인 문제를 제기하는데, 이들 정보의 어떤 것은 사용되지 않아 쓸모없을 수도 있다; 이 문제는 극복하는데 비용이 많이 든다. 결과적으로 물리 어드레스에 의한 캐시 어드레싱은 경제성으로 인해 선호된다.
이 형식의 어드레싱은 캐시 메모리가 악세스될 수 있기 전에 가상 어드레스가 물리 어드레스로 변환될 것을 요하므로, 이들 캐시 메모리를 사용하는 시스템은 페이지 테이블 조사 과정의 모든 단계를 거치지 않고도 물리 어드레스를 신속히 제공하기 위한 배열을 개발하였다.
이 형식의 전형적인 배열은 우선 변환 참조버퍼(TLB)로 불리운다.
TLB는 본질적으로 최근에 사용된 가상 어드레스를 관련된 물리 어드레스와 함께 저장하기 위한 버퍼이다.
이런 어드레스 캐시는 데이터 및 명령을 보유하는 캐시와 같은 원리로 작동하므로, 가장 최근에 사용된 어드레스는 다른 어드레스보다 더 사용되기 쉽다.
TLB에 보유되어 있는 가상 어드레스가 제공될 때, TLB는 그 정보에 대한 물리 어드레스를 제공한다.
그 물리 어드레스가 관련된 캐시에 있으면, 주 메모리에서 페이지 조사 테이블을 조회하는 시간 소비적인 과정을 거칠 필요없이 정보가 즉시 프로세서에 사용될 수 있다.
프로세서가 TLB가 가상 어드레스를 보낼 때 그 어드레스가 TLB에 포함되어 있지 않으면, 메모리 관리 유니트가 주메모리에 있는 조사 테이블을 사용하여 그 어드레스를 검색하여야만 한다.
이것을 달성하기 위해서, 전형적인 메모리 관리 유니트는 테이블의 다른 단계를 가리키는 어드레스를 통상적으로 기억하는 베이스 테이블의 어드레스용 레지스터를 찾는다.
베이스 테이블에서 메모리 관리 유니트는 이 포인터를 검색하고 그것을 다른 레이스터에 놓는다. 메모리 관리 유니트는 테이블의 다음 단계로 가기 위해 이 포인터를 사용한다.
이 과정은 찾는 정보의 물리 어드레스가 찾아질때까지 계속된다.
물리 어드레스가 찾아지면, 다음에 그것이 필요할 때 즉시 사용할 수 있도록 TLB에 가상 어드레스와 함께 기억된다.
정보가 찾아질 때, 정보는 물리 어드레스하에 캐시에 기억된다.
페이지 테이블에서 전형적인 조사는 검색의 각 단계에서 10 내지 15 클록사이클이 걸리지만 TLB 및 캐시를 사용하여 정보를 악세스하는 것은 단지 1 또는 2 클록사이클을 요할 수 있기 때문에 이것은 다음의 정보사용에서 많은 시간을 절약한다.
이런 시스템에 있어서 난점의 하나는 페이지 테이블 조사 과정이 물리 어드레스가 TLB에 있지 않을 때마다 요구된다는 것이다.
이것은 조사단계의 대부분(포인터의 끌어냄)이 특정한 조사 동작전에 몇차례나 발생되었더라도 사실이다.
이것은 페이지 테이블의 다른 단계에 대한 포인터를 기억하는데 사용되는 레지스터가 TLB와 별개의 자원(resource)에 있고 한번에 단 하나의 어드레스 포인터만을 기억할 수 있기 때문에 생길 수 있다.
결과적으로 일단 조사과정이 시작되면, 통과되어야 하는 테이블의 각 단계에 대한 전과정을 밟는 것이 필요하다 ; 즉, 기계는 제1포인터를 찾고 그것을 기억하고, 그 포인터를 사용하여 다음 포인터를 찾고 그것을 기억하고, 그 다음엔 그 포인터를 사용하여(희망적이지만) 어드레스를 찾아야만 한다.
다음번 조사과정으로 이들 모든 포인터가 기록된다.
어드레스 포인터를 기억하기 위한 별도의 캐시가 없는 경제적인 종전 기술의 배열에서는 이런 시간 소비적인 과정을 없애는 방법이 없다.
TLB로부터 페이지 테이블로의 끊임없는 돌림도 문제이지만, 변환되어야 하는 많은 어드레스가 TLB에 전혀 기억되지도 않는다.
예를들면 데이터 및 명령외에도 프로세서는 때때로 입력/출력 정보를 취급한다. 이 정보는 프로세서에 사용될 수도 있지만, 그것은 보통은 입력/출력 프로세서 또는 DMA 유니트와 같은 별도의 어드레싱 수단에 의해 다루어진다.
이와같이, 데이터용 및 명령용의 별도의 캐시를 사용하고 DMA 기능을 갖는 고속의 종전 기술 컴퓨터 시스템은 전형적으로 캐시내의 어드레싱을 제공하기 위해 TLB의 기능을 달성하기 위한, 주메모리의 페이지 테이블에서 조사를 하기 위한 그리고 입력/출력 정보의 어드레싱을 관리하기 위한 개별적인 메모리 관리자원을 요한다.
종전 기술 시스템에서 매우 많은 양의 실리콘이 데이터, 명령 및 입력/출력 기능을 신속하게 어드레싱하기 위한 이들 서로 다른 개별적 배열에 요구되었다. 더욱이, 종전 기술 시스템은 상당한 수의 상황에서 요청되는 어드레스 변환의 속도를 제공할 수 있는 능력이 없다.
따라서 캐시되는 데이터의 증가에 통상적으로 관련된 비용상의 증가없이 확장된 캐시 배열의 사용을 통한 가상 메모리 어드레싱을 사용하여 컴퓨터 시스템의 메모리 관리장치의 동작속도를 증가시키는 것이 본 발명의 목적이다. 데이터 및 명령캐시를 갖는 시스템에서 데이터, 명령, 입력/출력에 대한 어드레스의 변환을 취급할 수 있는 TLB를 제공하는 것이 본 발명의 또다른 특별한 목적이다.
본 발명의 이들 및 다른 목적은 데이터, 명령 및 입력/출력 어드레스를 변환하기 위한 페이지 테이블 엔트리 및 페이지 포인터를 기억하기 위한 설계된 TLB에서 실현된다.
페이지 테이블 엔트리 및 페이지 테이블 포인터 둘다를 기억함으로써, TLB는 특정 가상 어드레스가 TLB에 있지 않더라도 페이지 테이블에서의 전반적인 조사없이 많은 퍼센트의 가상 어드레스를 변환할 수 있다.
본 발명의 이들 및 다른 목적 그리고 특징을 여러 관점에서 같은 소자는 같은 표시로 지칭되는 도면과 함께 다음에 나오는 상세한 설명을 참고함으로써 더 잘 이해될 것입니다.
다음에 나오는 상세한 설명의 어떤 부분은 컴퓨터 메모리내에서 데이터 비트에 대한 연산의 기호적 표현으로 제시되어 있다.
이들 설명과 표현은 해당 분야에 숙련된 다른 사람에게 연구성과의 요점을 가장 효과적으로 전달하기 위한 데이터 처리기술에 숙련된 사람들에 의해 사용되는 수단이다.
연산은 물리량의 물리적 조작을 요하는 것들이다.
보통은 반드시는 아니더라도, 이들 양은 기억, 전송, 결합, 비교 및 다른 면에서 조작될 수 있는 전기 또는 자기 신호의 형태를 취한다.
주로 공용의 이유에서 이들 신호를 비트, 값, 소자, 기호, 문자, 용어, 숫자따위로 지칭하는 것이 때때로 편리하다는 것이 입증되었다.
그러나, 이들 모두 및 유사한 용어는 적절한 물리량과 관련되어져야 하고 이들 양에 적용되는 편리한 표지임에 불과한 것을 염두에 두어야 한다.
또한, 수행되는 조작은 때때로 가산 또는 비교와 같은 용어로 지칭되는데, 이들 용어는 인간에 의해 수행되는 정신적 연산과도 관련된 것이다.
인간의 이런 능력은 본 발명의 일부를 형성하는 여기에서 기술되는 연산의 어느 것에서도 대부분의 경우에 필요하거나 또는 요망되지 않는다; 연산은 기계 연산이다. 본 발명의 연산을 수행하기 위한 유용한 기계는 범용 디지털 컴퓨터 또는 그밖의 유사한 디바이스를 포함한다.
모든 경우에 컴퓨터를 운용하는데 있어서의 방법 운용과 계산 자체의 방법 사이에 구별을 염두에 두어야 한다.
본 발명은 다른 원하는 물리적 신호를 발생하기 위해 전기 또는 다른(예로, 기계적, 화학적) 물리적 신호를 처리하는데 있어서 컴퓨터를 운용하기 위한 장치 및 방법 단계에 관한 것이다.
이제 제1도를 참고하면 발명에 따라서 구성된 TLB(10)의 블록도가 도시되어 있다. TLB(10)는 다른 것중에서 들어오는 가상 어드레스가 비교될 다수의 가상 메모리 어드레스를 기억하는 제1부(12)를 포함한다.
본 발명의 바람직한 실시예에서, 제1부(12)는 완전 연관 개시(associative cache)에 32개의 구별되는 가상 어드레스를 기억하도록 설계되어 있다.
제1부(12)는 또한 가상 어드레스를 기억하는 비트외의 기억부분을 포함한다. 본 발명의 바람직한 실시예에서 이들은 페이지 테이블 검색이 이루어지는 단계(level)를 나타내는 3비트, 콘텍스트(context)를 나타내는 6비트, 슈퍼바이저제어(supervisor control)를 나타내는 1비트, 페이지 테이블 포인터가 TLB(10)에 기억되어 있다는 것을 나타내는 1비트, 및 입력/출력 비트를 포함한다.
본 발명에 의해 요구되지는 않지만, 발명의 바람직한 실시예는 가상 어드레스 비트 및 콘텍스트 테그 비트에 대해 내용주소화메모리(content addressable memory)를 이용하므로 각각에 기억된 값과의 비교는 제1부(12)에 대한 어드레스의 단순한 제시로써 될 수 있다.
또 다르게는 외부 비교기가 찾는 가상 어드레스와 제1부(12)에 기억된 비트와의 비교를 제공하기 위해 제1부(12)와 연관될 수도 있습니다.
어느 경우에나, 찾는 가상 어드레스는 3세트의 입력선(14, 15 또는 16)중 하나에 제시된다.
선(14)상에 제시되는 어드레스는 컴퓨터 시스템의 입력/출력 회로에 의해 제공된다. 선(15)상에 제시되는 어드레스는 컴퓨터 시스템의 정수 프로세서(integer processor)에 의해 제공되는 명령 어드레스이다.
선(16)에 제시되는 어드레스는 컴퓨터 시스템의 정수 프로세서에 의해 제공되는 데이터 어드레스이다.
각각의 경우에 찾는 가상 어드레스의 최상위 20비트는 제1부(12)에 기억된 어드레스와 비교되도록 제1부(12)에 제공된다.
특정한 가상 어드레스는 멀티플렉서(multiplexor)(18)에 의해 찾는 정보의 특정한 형을 지정하는 제어신호에 응답하여 가상 태그부에 제공된다.
예를들면 정수 프로세서에서의 명령은 찾는 정보를 데이터 또는 명령으로 지정하지만 입력/출력 회로는 찾는 정보가 입력/출력 목적용이라는 것을 나타낸다.
가상 어드레스의 상위 비트가 멀티플렉서(18)에 제시됨과 동시에 멀티플렉서(20)는 콘텍스트 태그 비트자리에 있는 값과 비교되는 콘텍스트 태그를 제공한다. 콘텍스트 태그는 콘텍스트 레지스터(19)로부터 제공되며 메모리관리 소프트웨어에 의해 기입되는 값이다.
데이터 어드레스 및 명령어드레스에 대해(슈퍼바이저 모드에 있지 않을 때), 가상 어드레스 태그 및 콘텍스트 태그는 TLB(10)에서 적중(hit)이 있기 위해서는 찾는 비트와 맞아야 한다.
콘텍스트 태그는 시스템이 다른 소프트웨어 프로그램과 사용되는 다수의 다른 군의 페이지 테이블중에서 선택하도록 허용하는 1군의 비트이다.
시스템에서 실행되고 있는 특정한 사용자 프로그램에 대해서, 콘텍스트 태그는 프로그램전반에 걸쳐서 동일하다.
본 발명의 목적을 위해서, 콘텍스트 태그는 추가 어드레서 비트라고 고려될 수 있다.
일반적으로 가상 어드레스 비트와 콘텍스트 비트가 맞을 때(그리고 바람직한 실시예에서 어떤 다른 비트도 맞는다고 가장한다). 물리 어드레스의 상위 비트가 출력으로서 제공된다. 각 물리 어드레스의 이들 상위 비트는 TLB(10)의 부분(22)에서 그들이 변환되어질 가상 어드레스와 동일한 행에 기억된다. 이들 상위 비트는 물리 어드레스가 얻어질 수 있는 물리페이지 번호를 제공한다. 가상 어드레스 및 물리 어드레스의 하위 비트는 동일하고 어느 특정한 페이지내의 바이트 어드레스를 나타낸다.
이와같이 가상 어드레스의 하위 비트는 TLB(10)에 의해 제공되는 물리 페이지 번호와 결합되어 완전한 물리 어드레스를 제공한다.
전술한 모든 것은 매우 간단한 것처럼 보인다.
그러나, 경제적인 시스템을 만들어내기 위해서는 본 발명의 TLB(10)에 기억된 물리 어드레스는 3개의 구별되는 형으로 되어 있다.
기억된 값은 페이지 테이블 엔트리, 입력/출력 페이지 테이블 엔트리 및 페이지 테이블 포인터일 수 있다.
통상의 페이지 테이블 엔트리는 엔트리의 물리 어드레스 및 허가(엔트리를 악세스하는데 요구되는 것)를 제공한다.
페이지 테이블 엔트리는 종전 기술의 TLB에 의해 제공되는 통상의 물리 페이지 어드레스 정보이다. 이 페이지 어드레스는 정보를 얻기 위해 메모리 어드레스를 악세스하는데 사용될 수 있다.
이 어드레스는 적중이 TLB(10)에서 생길 때 멀티플렉서(21)에 의해 하위 가상 어드레스 비트와 결합되고 2개의 물리적으로 어드레스된 캐시의 어느 하나로부터(또는 캐시부재(Cache miss)가 생길 때 메모리로부터) 정보를 얻기 위해 물리 어드레스 레지스터(23)에 놓여진다.
그 반면에 페이지 테이블 포인터는 또다른 페이지 테이블의 베이스 물리 어드레스이다. 이리하여, 지정된 페이지 테이블 포인터는 가상 어드레스의 인덱스와 결합되면 조사가 이루어질 수 있는 또다른 페이지 테이블에 있는 어드레스를 가르킬 것이다.
페이지 테이블 포인터는 주메모리내에서 어드레스를 가리키므로, 그것은(페이지 테이블 엔트리와 같이) 물리 어드레스이다.
그러나, 그것은 찾는 정보를 즉시 얻어내는데 사용되지 않고, 페이지 변환의 또다른 단계의 또다른 물리 어드레스를 얻어내는데 사용된다.
이 다른 어드레스는 또 다른 페이지 테이블 포인터일 수도 있고 또는 페이지 테이블 엔트리(물리 페이지 어드레스)일 수도 있다.
그것이 페이지 테이블 엔트리이면, 물리 어드레스는 원래 찾으려고 한 가상 어드레스에 대해 TLB에 기억되고 찾는 정보를 얻어내기 위해 즉시 사용된다. 그 반면에, 어드레스가 페이지 테이블 포인터이면 물리 어드레스는 다음 페이지 테이블의 물리 베이스 어드레스에 대해 TLB에 기억된다; 그리고 그 값은 그 물리 어드레스가 TLB(10)의 제1부(12)에 있는지를 결정하기 위해 TLB(10)를 악세스하는데 사용된다.
이와같이, 알 수 있는 바와 같이, 물리 어드레스 정보의 이들 2가지 구별되는 형은 일단 얻어내어지면 다르게 취급되어야만 한다; 결과적으로 그들은 TLB(10)에서 분명히 구별되어야만 한다.
이것을 달성하기 위해서, TLB(10)의 제1부(12)에서 이들 2개의 다른 물리값을 가리키는 가상 어드레스는 아래에서 기술되는 방법으로 컴퓨터 시스템에 의해 알맞게 지정되고 사용되어야만 한다.
예를들면, 가상 어드레스를 맞추는데 실제로 사용되는 비트의 수는 페이지 테이블 포인터가 가리키는 페이지 테이블의 단계에 따라 달라질 것이다.
유사한 방법으로 입력/출력 회로에 의해 제공되는 가상 어드레스는(일단 얻어내지면) 물리 어드레스의 다른 2가지 형과 다르게 취급되어야만 하는 정보를 제공한다. 다른 가상 어드레스와 동일한 방법으로, 입력/출력 목적에 사용되는 것들은 컴퓨터 시스템에 의해 사용될 때 알맞게 지정되고 선택되어야만 한다.
제공된 가상 어드레스 비트의 다른 부분을 맞추기 위해, 3개의 필드 비트가 나머지중에서 사용된다. 이들은 특정한 가상 메모리 시스템에서 페이지의 크기를 지정한다.
해당 분야에 능숙한 사람은 이해하겠지만, 메모리의 페이지의 크기는 몇 개의 어드레스 비트가 그 페이지를 지정하는데 필요하고 몇 개의 비트가 페이지내의 바이트를 지정하는데 필요한지를 결정한다.
단 하나의 매우 큰 페이지만 있으면, 모든 비트는 페이지내의 어드레스를 지정하는데 사용되고, 결과적으로 가상 어드레스가 물리 어드레스이다.
반면에 페이지가 작으면 페이지내의 바이트를 지정하는데 더 작은 비트가 필요하나 이용가능한 더 많은 수의 페이지에서 1페이지를 어드레스하는데 더 많은 비트가 필요하다.
이와같이 3개의 필드 비트는 비교가 가상 어드레스의 특정한 수의 상위 비트를 포함하여야 한다는 것을 나타내는데 사용된다.
본 발명의 바람직한 실시예에서 이들 3단계 비트는 페이지 테이블 엔트리의 3개의 가능한 단계를 나타내기 위해 100, 110 또는 111로 코우드된다.
이들 비트는 페이지 테이블 엔트리값이 TLB(10)에 기억될 때마다 적절한 단계에 세트된다.
본 발명의 바람직한 실시예에서 가상 어드레스 비트(31 : 24)는 단계(100)에서 가장 큰 페이지를 어드레스 하는데 사용되고, 가상 어드레스 비트(31 : 18)은 단계(110)에서 다음으로 가장 큰 페이지를 어드레스하는데 사용되고, 가상 어드레스 비트(31 : 12)는 단계(111)에서 가장 작은 페이지를 어드레스하는데 사용된다.
최상위 비트는 엔트리가 TLB(10)에 기입될 때만 이들 단계값의 각각에 대해 1에 세트되므로, 이 비트는 또한 엔트리의 유효성을 나타내는 것으로 생각할 수도 있다.
이것은 TLB(12)의 각 행에서 추가 비트에 대한 필요를 제거한다.
바람직한 실시예에서 사용되는 메모리는 내용주소화 메모리이므로, 이것은 대단한 절약이다.
단계 비트외에 1비트가 시스템의 사용자 제어보다는 슈퍼바이저 제어를 나타내는데 이용된다. 본 발명의 목적을 위해서, 그 비트는 데이터 또는 명령 어드레스 변환이 달성되고 있다는 것을 나타내기 위해 1로 되는 것을 제외하고는 동작과 거의 관계가 없다.
이것은 어드레스 태그의 일부로서 콘텍스트부가 사용되는 것을 허용한다.
TLB에 기억되는 입력/출력 어드레스의 경우에는 비트는 0인채로 남아있다.
단계 및 슈퍼바이저 비트외에 1비트는 페이지 테이블 포함(가상 어드레스이기 보다는 물리 어드레스이다)가 TLB(10)의 제1부(12)의 특정한 행에 기억되어 있다는 것을 나타내는데 이용된다.
이 비트는 이런 포인터가 기억될 때마다 세트되고 다음에 설명되는 방법으로 본 발명의 사용을 용이하게 한다.
페이지 테이블 포인터가 페이지 테이블 포인터(PTP) 비트로 나타낸대로 TLB에 보유될 때 단계 비트는 그 엔트리에 대해서는 반드시 111에 세트된다. 이것은 전체 어드레스 필드가 페이지 테이블 포인터 조사에 대한 입력에 비교되도록 한다. 이것은 제1부(12)에 있는 TLB 태그는 전 가상 및 콘텍스트 태그 어드레스 필드를 사용하는 물리 어드레스이기 때문에 요구된다. 제어상태 기계는 현재의 페이지 테이블 단계를 나타낸다.
입력/출력 어드레스를 처리할 때는 다른 페이지 테이블과는 별도의 단일의 1단계 테이블이 관련된다.
IBAR 레지스터(29)는 베이스 어드레스를 담고 있다.
입력/출력 제어 레지스터는 입력/출력 페이지 테이블이 얼마나 큰가를 나타내며 입력/출력 페이지 테이블내에서 어드레스를 악세스하는데 얼마나 많은 가상 어드레스의 하위 비트가 필요한지를 지정하는 범위 필드를 담고 있다. 물리 어드레스가 얻어지면, 그것은 다음에 특정한 가상 어드레스가 입력/출력 제어기에 제공될 때 즉시 이용가능할 수 있도록 입력/출력 제어기에 의해 발생되는 가상 어드레스와 함께 TLB(10) 다시 놓여진다.
입력/출력 비트는 형을 나타내는데 이런 어드레스와 함께 사용된다.
발명을 더 잘 이해하기 위하여, 가상 어드레스에 응답하는데 있어서 시스템의 동작을 생각해본다.
컴퓨터가 온되었다고 가정하면, 본 발명이 관계되는 한에서 일반적 과정은 운영체제(operating system)가 주메모리에 놓이고, 운영체계의 슈퍼바이저 부분은 페이지 테이블을 만들고 다음에 메모리 제어 기능을 메모리 관리 유니트에 넘겨주는 것이다. 이 시점에서 캐시 또는 TLB(10)에는 아무것도 놓여지지 않았다. 제1가상 어드레스가 비교를 위해 TLB(10)에 제시될 때, 가상 어드레스의 적절한 비트는 제1부(12)에서 콘텍스트 및 가상 태그 필드에 기억된 비트에 비교된다.
거기에는 초기에 기억된 어드레스가 없기 때문에, 캐시 부재가 신호될 것이다.
입력/출력 메모리 관리유니트에 의해 발생되는 가상 어드레스의 경우에, 부재(miss)는 Ibar 레지스터(29)에 기억된 값을 사용하여 베이스 어드레스가 발생되게 한다. 가리키는 어드레스는 입력/출력 어드레싱에 독특한 단일 페이지 테이블의 베이스 어드레스이다. 입력/출력 메모리 관리 유니트의 입력/출력 제어 레지스터는 입력/출력 페이지 테이블의 페이지가 얼마나 큰가를 말하여 주는 필드를 가지고 있다.
이 크기로부터 엔트리 위치를 선택하는데 요하는 하위 가상 어드레스 비트의 수가 결정된다. 레지스터(29)에 있는 이들 하위 비트와 베이스 어드레스는 멀티플렉서(21)를 사용하여 결합되고, 입력/출력 가상 어드레스에 대한 물리 어드레스는 입력/출력 페이지 테이블에서 발견된다.
그의 발생을 야기시키는 이 값 및 가상 어드레스는 가상 어드레스가 다음에 나타내질 때 물리 어드레스가 즉시 이용가능할 수 있도록 TLB(10)에 기억된다.
그 반면에, TLB 부재를 일으킨 가상 어드레스가 명령이나 데이터의 어드레스이면, 이것은 CTPR 레지스터(25)에 기억된 베이스 페이지 어드레스와 콘텍스트 레지스터(CXR)(19)에 기억된 6개 하위 비트의 결합에 의해 베이스 어드레스가 발생되도록 한다. 이 베이스 어드레스는 입력/출력이 아닌 모든 어드레싱에 사용되는 페이지 테이블의 최저 단계 테이블에 있는 워드를 가리킨다. 명령 및 데이터에 대해서는 이 베이스 단계 테이블은 이 단계에서 이용가능한 페이지 크기가 전체 가상 메모리를 에워싸고 있기 때문에 페이지 테이블 포인터만을 보유하도록 된다.
이 단계가 페이지 테이블 엔트리(즉, 찾는 정보의 물리 어드레스)를 보유한다면, 매핑은 물리 메모리로부터 가상 메모리로 직접적인 것이 될 것입니다(각 물리 어드레스는 단일의 독특한 가상 어드레스만에 의해서 나타내어지겠습니다) ; 그리고 가상 메모리를 가질 이유도 없겠습니다.
실제로, 본 발명을 떠나서, 모드 비트는 변환을 효과적으로 바이패스하고 시스템으로 하여금 가상 메모리를 똑같은 물리 메모리에 세트하게 하는 제어 레지스터에서 소프트웨어에 의해 제공된다.
이 시점에서, 가상 어드레스가 주메모리로부터의 페이지 테이블 포인터의 검색을 일으켰다. 이 포인터는 다음 단계 페이지 테이블의 어드레스이다. 이 페이지 테이블 포인터는 TLB(10)에서 부분(22)의 물리 어드레스 필드에 기억된다. 부분(12)에서 TLB(10)의 같은 선에서 CTPR 레지스터(25) 및 콘텍스트 레지스터(19)에 있는 비트로부터 발생되는 베이스 어드레스(물리 어드레스), TLB(12)의 태그부분이 물리 어드레스를 가지고 있다는 PTP 비트에서의 표시, 및 제1부(12)에서 어드레스의 3필드의 완전 비교를 가능하게 하는 단계 비트의 111으로의 세팅이 기억된다.
게다가 슈퍼바이저 비트는 페이지 테이블 포인터가 콘텍스트 부분을 물리 어드레스 태그의 일부로서 사용되도록 하기 위해 TLB(10)의 제1부(12)에 기억될 때 세트된다. 그밖에 입력/출력 변환은 다른 페이지 테이블을 사용하므로 동일한 입력/출력 가상 어드레스는 이 엔트리와 비교될 때 적중하지 않는 것을 보장하기 위해 I/O 비트는 이 엔트리에 대해서 클리어된다.
베이스 어드레스는 아직 물리 어드레스 레지스터(23)에 보유되어 있는데 TLB(10)에 다시 제시된다 ; 그리고 적중이 생긴다.
적중은 물리 어드레스부분 필드(22)에 방금 기억된 포인터를 내놓는다. 이 어드레스는 다음에 물리 어드레스 레지스터(23)에 로우드(load)된다.
물리 어드레스 레지스터(23)의 내용은 다음에 TLB(12)에 비교되고, 부재가 생긴다. 부재를 검출하면, 제어상태 기계에 의해 나타내지는 것처럼 원래의 가상 어드레스의 인덱스 필드와 결합되는 물리 어드레스 레지스터(23)의 내용을 사용하여 주메모리는 악세스된다.
이 새로운 어드레스는 2단계 페이지 테이블을 가리키는데, 2단계 페이지 테이블은 페이지 테이블 엔트리(변환되는 물리 어드레스에 상응하는 실제의 물리 어드레스) 또는 다음 단계 페이지 테이블에 대한 물리 어드레스 포인터를 가지고 있는 페이지 테이블 포인터를 가리킨다.
검색된 엔트리가 페이지 테이블 엔트리였다면, 판독된 어드레스의 내용(보호 정보를 갖는 물리 어드레스)는 TLB(10)의 물리 어드레스부분(22)에 기억된다. 제1부(12)에서 TLB(10)의 동일한 선에는 원래 가상 어드레스(비트[26 : 12])의 20비트, 콘텍스트 레지스터의 현재값, 현재의 페이지 테이블 엔트리가 발견된 단계를 나타내는 단계 비트, IU 기계상태에 따라 세트되는 슈퍼바이저 비트, 및(클리어된) PTP 및 IO 비트가 기억된다.
원래의 변환이 다음에 다시 시도되어 최근에 업데이트된 엔트리에 비교될 때 적중을 내놓는다.
그 반면에 주메모리로부터 판독된 엔트리가 페이지 테이블 포인터이면, 그것은 TLB(10)의 물리 어드레스 부분(22)에 기억된다.
제1부(12)에서 TLB(10)의 동일한 선에는 물리 어드레스 레지스터(23)로부터 판독된 포인터의 물리 어드레스, TLB(10)의 태그부분(12)이 물리 어드레스를 가지고 있다는 PTP 비트에서의 표시, 제1부(12)에 있는 어드레스의 3필드의 완전한 비교를 가능하게 하는 단계 비트의 세팅, 및 페이지 테이블 포인터의 이전 로우딩과 동일한 슈퍼바이저 비트의 세팅이 기억된다.
물리 어드레스 레지스터(23)의 내용은 다음에 TLB(10)의 제1부(12)가 비교되고, 적중이 생긴다. 이 적중은 물리 어드레스 부분(22)의 필드에 방금 기억된 포인터를 내놓는다. 이 시점에서 현재의 페이지 테이블 엔트리를 판독하기 위해서 주메모리가 악세스된다. 이 엔트리는 페이지 테이블 엔트리의 단계 필드가 현재의 페이지 테이블 단계를 반영하는 것 외에는 이전의 페이지 테이블 판독과 유사한 방법으로 처리된다.
본 발명의 바람직한 실시예에서 3개의 페이지 테이블 단계가 지원된다.
이와같이 3째 단계 페이지 테이블은 단지 페이지 테이블 엔트리만을 가지고 있다. 결과적으로 주메모리의 제3악세스는 이전에 논의된 방법으로 TLB(10)에 기억될 페이지 테이블 엔트리의 판독으로 결과된다.
TLB(10)에서의 페이지 테이블 엔트리의 기억에 이어서, 원래의 가상 어드레스가 반드시 재시도되어 그것을 요구하는 캐시에 대한 변환된 어드레스로 결과된다.
찾는 정보의 변환된 어드레스가 일단 찾아지면, 그 어드레스는 찾고 있는 정보가 어드레스 변환을 요구한 캐시에 있는지를 결정하는데 도움이 된다.
이 1엔트리가 찾아진 후 TLB(10)에는 페이지 테이블 엔트리를 갖는 가상 어드레스 뿐만 아니라 물리 포인터를 갖는 베이스 어드레스 및 상응하는 페이지 테이블에 대한2개까지의 추가 물리 포인터가 기억된다는 것을 유의하도록 한다. 실제로 페이지 테이블에 대한 제3포인터를 기억하는 것도 또한 가능하다. 제2가상 어드레스가 이제 TLB(10)에 제시되어 부재를 발생하면, 이것은 다시 베이스 어드레스가 발생되어 제2단계 테이블에 대한 포인터를 내놓기 위해 콘텍스트와 결합되게 한다.
이 어드레스는 TLB(10)에 기억된 어드레스에 비교된다.
이 어드레스는 TLB(10)에 기억된 엔트리중 하나의 가상필드에 존재하므로, 페이지 테이블 전체에 대한 제1워크(walk)에 요하는 10 또는 그 이상의 클록시간이 아니고, 다음 물리 어드레스, 및 페이지 테이블 포인터를 내놓는데 단지 1클록시간이 요구된다.
새로운 페이지 테이블 포인터를 리사이클하고나면, 다음 포인터는 TLB(10)에 또한 기억된 또다른 포인터를 내놓기 쉽다.
왜냐하면 이 시점에서 메모리 페이지의 크기는 16메가바이트의 메모리이기 때문이다. 프로그램은 그 공간보다 더 많은 공간을 취하므로 제2포인터도 어쩌면 TLB(10)에서 찾아내지기 쉽다.
궁극적으로 특정한 페이지 테이블 엔트리가 찾아내져야만 하나, 일반적으로 이것은 주메모리에 있는 페이지 테이블에서 1단계의 검색(search)만을 요한다. 시험은 찾는 포인터가 TLB(10)에 있게 되는 것은 사례중 99퍼센트를 상회하는 것을 보여주었다.
결과적으로 본 발명의 TLB의 동작 속도는 TLB가 연관되는 컴퓨터 시스템의 동작 속도를 크게 향상시켜 주는 것을 알 수 있다.
본 발명의 TLB와 함께 사용되는 명령 캐시는 캐시된 명령이 신속하게 내놓아지도록 TLB 조사와 병행해서 동작되도록 되어 있는 것을 유의하여야 한다. 이 목적을 위해, 본 발명의 바람직한 실시예에서 데이터 및 명령 캐시는 페이지 크기의 것이며 결과적으로 가상 및 물리 어드레스는 결합에 의해 어드레스된다. 바람직한 실시예에서, 가상 어드레스의 최하위 비트는 실제로 특정한 캐시의 행을 정하고 물리 비트는 행에서 비트가 유효한지(올바른 페이지에서 오는지) 또는 그렇지 않은지를 결정한다.
이것을 달성하기 위해, 캐시는 각 엔트리와 함께 태그를 기억하고, 그 태그는 정보가 찾아진 페이지의 물리 어드레스를 포함한다.
이것이 TLB에 의해 제시된 물리 어드레스와 비교되면 캐시 적중이 있다.
이와같이 예를들면, 캐시는 TLB가 물리 어드레스를 결정하는 동안 명령이 존재할 수 있는 특정한 행을 미리 선택할 수 있다. 물리 어드레스의 최상위 비트가 일단 사용가능하면, 정보는 지체없이 사용가능하다.
제2도는 본 발명의 사용에 의해 절약되는 사이클수를 도시하는 타이밍도이다. 제2도는 종전 기술의 전형적인 장치에 사용되는 사이클의 수를 본 발명의 이용하는 장치에 사용되는 사이클의 수와 비교한다.
알 수 있는 바와같이 기계동작 시간의 상당한 양이 본 발명에 의해 절약된다.
본 발명은 바람직한 실시예에 의해 설명되었지만, 수정 및 본 발명의 사상 및 범위를 벗어남이 없이 여러 가지 수정 및 변경이 해당 분야에 능숙한 사람에 의해 이루어질 수 있다고 이해하여야 한다.
그러므로 발명은 뒤따르는 청구범위에 의해 판단되어야 합니다.

Claims (11)

  1. 적어도 제1 및 제2단계의 페이지조사 테이블을 포함하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼에 있어서, 가상 어드레스를 기억하기 위한 수단 및 가상 어드레스의 각각에 연관된 물리 어드레스를 기억하기 위한 수단을 구비하고, 물리 어드레스중 어떤 것은 가상 어드레스에 의해 찾아지는 정보가 존재하는 페이지를 나타내고 물리 어드레스중 다른 것은 가상 어드레스에 의해 찾아지는 정보의 물리 어드레스가 존재하는 페이지를 나타내는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  2. 제1항에 있어서, 물리 어드레스중 추가되는 것은 가상 어드레스에 의해 찾아지는 입력/출력 정보의 물리 어드레스가 존재하는 페이지를 나타내는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  3. 제2항에 있어서, 물리 어드레스가 가상 어드레스에 의해 찾아지는 정보가 입력/출력 정보를 포함하는 페이지를 지정하고 있는지를 나타내는 정보를 각 가상 어드레스와 함께 기억하기 위한 수단을 추가로 구비하는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  4. 제1항에 있어서, 가상 어드레스가 가리키는 페이지 조사 테이블의 크기의 표시를 각 가상 어드레스와 함께 기억하기 위한 수단을 추가로 구비하는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  5. 제1항에 있어서, 물리 어드레스가 가상 어드레스에 의해 찾아지는 정보가 존재하는 페이지를 나타내는지 또는 가상 어드레스에 의해 찾아지는 정보의 물리 어드레스가 존재하는 페이지를 나타내는지를 나타내는 정보를 각 가상 어드레스와 함께 기억하기 위한 수단을 추가로 구비하는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  6. 제5항에 있어서, 가상 어드레스가 가리키는 페이지 조사 테이블의 크기의 표시를 각 가상 어드레스와 함께 기억하기 위한 수단을 추가로 구비하는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  7. 제6항에 있어서, 가상 어드레스가 가리키는 페이지 조사 테이블의 크기의 표시를 각 가상 어드레스와 함께 기억하기 위한 수단은 또한 우선 변환 참조버퍼에 기억되는 정보의 유효성을 나타내는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  8. 제7항에 있어서, 물리 어드레스중 추가되는 것은 가상 어드레스에 의해 찾아지는 입력/출력 정보의 물리 어드레스가 존재하는 페이지를 나타내는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  9. 제8항에 있어서, 물리 어드레스가 가상 어드레스에 의해 찾아지는 정보가 입력/출력 정보를 포함하는 페이지를 지정하는지를 나타내는 정보를 각 가상 어드레스와 함께 기억하기 위한 수단을 추가로 구비하는 것을 특징으로 하는 가상 메모리 시스템과 함께 사용되는 우선 변환 참조버퍼.
  10. 컴퓨터 시스템에서 가상으로부터 물리로의 신속한 어드레스 변환을 제공하는 방법에 있어서, 우선 변환 참조버퍼에서 페이지 테이블 엔트리로 변환되는 가상 어드레스를 연관된 페이지 테이블 엔트리와 함께 기억하기 위한 단계와, 동일한 우선 변환 참조버퍼에서 페이지 테이블 포인터로 변환되는 가상 어드레스를 연관된 페이지 테이블 포인터와 함께 기억하는 단계와, 정보가 찾아지는 가상 어드레스를 우선 변환 참조버퍼에 기억된 가상 어드레스에 비교하는 단계와, 비교에 응답하여 페이지 테이블 엔트리인 물리 어드레스에 페이지 테이블 엔트리로 변환되는 가상 어드레스를 제공하는 단계와, 비교에 응답하여 페이지 테이블 포인터인 물리 어드레스에 페이지 테이블 포인터로 변환하는 가상 어드레스를 제공하는 단계를 구비하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서, 우선 변환 참조버퍼에서 입력/출력 페이지 테이블 엔트리로 변환되는 가상 어드레스를 연관된 입력/출력 페이지 테이블 엔트리와 함께 기억되는 단계를 추가로 구비하는 것을 특징으로 하는 방법.
KR1019910023246A 1990-12-21 1991-12-17 우선 변환 참조버퍼 KR960001946B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63196690A 1990-12-21 1990-12-21
US631,966 1990-12-21

Publications (2)

Publication Number Publication Date
KR920013132A KR920013132A (ko) 1992-07-28
KR960001946B1 true KR960001946B1 (ko) 1996-02-08

Family

ID=24533519

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910023246A KR960001946B1 (ko) 1990-12-21 1991-12-17 우선 변환 참조버퍼

Country Status (7)

Country Link
US (1) US5426750A (ko)
EP (1) EP0492859A3 (ko)
JP (1) JPH0628262A (ko)
KR (1) KR960001946B1 (ko)
CA (1) CA2057494A1 (ko)
GB (1) GB2251102B (ko)
HK (1) HK155995A (ko)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5696925A (en) * 1992-02-25 1997-12-09 Hyundai Electronics Industries, Co., Ltd. Memory management unit with address translation function
US5586283A (en) * 1993-10-07 1996-12-17 Sun Microsystems, Inc. Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
EP0674269B1 (en) * 1994-03-24 2001-12-19 Hewlett-Packard Company, A Delaware Corporation Translation mechanism for input/output addresses
US5535352A (en) * 1994-03-24 1996-07-09 Hewlett-Packard Company Access hints for input/output address translation mechanisms
WO1996027832A1 (en) * 1995-03-03 1996-09-12 Hal Computer Systems, Inc. Parallel access micro-tlb to speed up address translation
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system
US5918050A (en) * 1995-05-05 1999-06-29 Nvidia Corporation Apparatus accessed at a physical I/O address for address and data translation and for context switching of I/O devices in response to commands from application programs
US5623692A (en) * 1995-05-15 1997-04-22 Nvidia Corporation Architecture for providing input/output operations in a computer system
US5640591A (en) * 1995-05-15 1997-06-17 Nvidia Corporation Method and apparatus for naming input/output devices in a computer system
US5924126A (en) * 1995-05-15 1999-07-13 Nvidia Method and apparatus for providing address translations for input/output operations in a computer system
US5721947A (en) * 1995-05-15 1998-02-24 Nvidia Corporation Apparatus adapted to be joined between the system I/O bus and I/O devices which translates addresses furnished directly by an application program
US6067068A (en) * 1996-04-16 2000-05-23 Canon Business Machines, Inc. Scrollable display window
US5928352A (en) * 1996-09-16 1999-07-27 Intel Corporation Method and apparatus for implementing a fully-associative translation look-aside buffer having a variable numbers of bits representing a virtual address entry
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US6108733A (en) * 1998-01-20 2000-08-22 Micron Technology, Inc. Method for extending the available number of configuration registers
US6243775B1 (en) 1998-01-20 2001-06-05 Micron Technology, Inc. System for extending the available number of configuration registers
US6272576B1 (en) 1998-01-20 2001-08-07 Micron Technology, Inc. Method for extending the available number of configuration registers
US6469705B1 (en) * 1999-09-21 2002-10-22 Autodesk Canada Inc. Cache addressing
US6526459B1 (en) * 1999-11-10 2003-02-25 Ati International Srl Allocation of input/output bus address space to native input/output devices
US6366996B1 (en) 2000-01-24 2002-04-02 Pmc-Sierra, Inc. Page memory management in non time critical data buffering applications
US6574689B1 (en) * 2000-03-08 2003-06-03 Intel Corporation Method and apparatus for live-lock prevention
EP1220229B1 (en) * 2000-12-29 2009-03-18 STMicroelectronics S.r.l. An electrically modifiable, non-volatile, semiconductor memory which can keep a datum stored until an operation to modify the datum is completed
US6728859B1 (en) * 2001-07-13 2004-04-27 Mips Technologies, Inc. Programmable page table access
US20040116969A1 (en) * 2002-08-26 2004-06-17 Owen James M. Pulse detection using patient physiological signals
US7451271B2 (en) * 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
US7653802B2 (en) * 2004-08-27 2010-01-26 Microsoft Corporation System and method for using address lines to control memory usage
US7734926B2 (en) * 2004-08-27 2010-06-08 Microsoft Corporation System and method for applying security to memory reads and writes
US7822993B2 (en) * 2004-08-27 2010-10-26 Microsoft Corporation System and method for using address bits to affect encryption
US7444523B2 (en) 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7444493B2 (en) * 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
EP1736887A3 (fr) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
US7986327B1 (en) 2006-10-23 2011-07-26 Nvidia Corporation Systems for efficient retrieval from tiled memory surface to linear memory display
US7805587B1 (en) * 2006-11-01 2010-09-28 Nvidia Corporation Memory addressing controlled by PTE fields
US8006221B2 (en) 2007-09-11 2011-08-23 International Business Machines Corporation System and method for testing multiple processor modes for processor design verification and validation
US8099559B2 (en) * 2007-09-11 2012-01-17 International Business Machines Corporation System and method for generating fast instruction and data interrupts for processor design verification and validation
US7797650B2 (en) * 2007-09-11 2010-09-14 International Business Machines Corporation System and method for testing SLB and TLB cells during processor design verification and validation
US8019566B2 (en) * 2007-09-11 2011-09-13 International Business Machines Corporation System and method for efficiently testing cache congruence classes during processor design verification and validation
US7992059B2 (en) * 2007-09-11 2011-08-02 International Business Machines Corporation System and method for testing a large memory area during processor design verification and validation
US20090070570A1 (en) * 2007-09-11 2009-03-12 Shubhodeep Roy Choudhury System and Method for Efficiently Handling Interrupts
US8429376B2 (en) * 2008-05-21 2013-04-23 Hewlett-Packard Development Company, L.P. Translation look-aside buffer
US8296547B2 (en) * 2008-08-27 2012-10-23 International Business Machines Corporation Loading entries into a TLB in hardware via indirect TLB entries
US8301863B2 (en) * 2008-11-17 2012-10-30 International Business Machines Corporation Recursive logical partition real memory map
JP2013073270A (ja) * 2011-09-26 2013-04-22 Fujitsu Ltd アドレス変換装置、演算処理装置及び演算処理装置の制御方法
US9256550B2 (en) * 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9864699B1 (en) * 2015-04-14 2018-01-09 Marvell International Ltd. Method and apparatus for compressing LUT
US10353826B2 (en) 2017-07-14 2019-07-16 Arm Limited Method and apparatus for fast context cloning in a data processing system
US10489304B2 (en) 2017-07-14 2019-11-26 Arm Limited Memory address translation
US10613989B2 (en) 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
US10592424B2 (en) 2017-07-14 2020-03-17 Arm Limited Range-based memory system
US10534719B2 (en) * 2017-07-14 2020-01-14 Arm Limited Memory system for a data processing network
US10467159B2 (en) * 2017-07-14 2019-11-05 Arm Limited Memory node controller
US10565126B2 (en) 2017-07-14 2020-02-18 Arm Limited Method and apparatus for two-layer copy-on-write
US10884850B2 (en) 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
GB2582362B (en) * 2019-03-21 2021-08-04 Advanced Risc Mach Ltd Page table structure

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3576543A (en) * 1967-05-03 1971-04-27 English Electric Computers Ltd Data handling arrangements
US3781808A (en) * 1972-10-17 1973-12-25 Ibm Virtual memory system
US3938100A (en) * 1974-06-07 1976-02-10 Control Data Corporation Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques
JPS6017130B2 (ja) * 1980-06-06 1985-05-01 日本電気株式会社 アドレス制御装置
JPS5924485A (ja) * 1982-07-30 1984-02-08 Toshiba Corp 入出力ペ−ジング機構
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
JPS6184754A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 拡張アドレス変換装置
JPS61148551A (ja) * 1984-12-24 1986-07-07 Hitachi Ltd アドレス変換方式
US4763250A (en) * 1985-04-01 1988-08-09 Motorola, Inc. Paged memory management unit having variable number of translation table levels
EP0229253A3 (en) * 1985-11-08 1990-03-14 Nec Corporation Data processor with virtual memory management
US4890223A (en) * 1986-01-15 1989-12-26 Motorola, Inc. Paged memory management unit which evaluates access permissions when creating translator
US4763244A (en) * 1986-01-15 1988-08-09 Motorola, Inc. Paged memory management unit capable of selectively supporting multiple address spaces
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

Also Published As

Publication number Publication date
US5426750A (en) 1995-06-20
EP0492859A3 (en) 1993-01-13
EP0492859A2 (en) 1992-07-01
CA2057494A1 (en) 1992-06-22
HK155995A (en) 1995-10-13
KR920013132A (ko) 1992-07-28
GB2251102B (en) 1995-03-15
GB2251102A (en) 1992-06-24
GB9113733D0 (en) 1991-08-14
JPH0628262A (ja) 1994-02-04

Similar Documents

Publication Publication Date Title
KR960001946B1 (ko) 우선 변환 참조버퍼
US5724538A (en) Computer memory address control apparatus utilizing hashed address tags in page tables which are compared to a combined address tag and index which are longer than the basic data width of the associated computer
KR920005280B1 (ko) 고속 캐쉬 시스템
US5918251A (en) Method and apparatus for preloading different default address translation attributes
US4376297A (en) Virtual memory addressing device
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US6014732A (en) Cache memory with reduced access time
US5465337A (en) Method and apparatus for a memory management unit supporting multiple page sizes
CA2021272C (en) Associative map with least recently used (lru) replacement
US4654790A (en) Translation of virtual and real addresses to system addresses
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JPH04352256A (ja) メモリ空間を節約する方法および装置
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
CA2058259C (en) Apparatus for increasing the number of hits in a translation lookaside buffer
WO2018229699A1 (en) Cache structure using a logical directory
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
US5479629A (en) Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address
US4757447A (en) Virtual memory system having identity marking for common address space
EP0173909B1 (en) Look-aside buffer least recently used marker controller
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
JPH0371355A (ja) キヤツシユ検索装置および検索方法
US5649155A (en) Cache memory accessed by continuation requests
EP0206050A2 (en) Virtually addressed cache memory with physical tags
EP0349757B1 (en) Apparatus and method for enhanced virtual to real address translation for accessing a cache memory unit
JP2507785B2 (ja) ペ―ジテ―ブルエントリ無効化装置

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee