KR100297454B1 - 컴퓨터장치 - Google Patents

컴퓨터장치 Download PDF

Info

Publication number
KR100297454B1
KR100297454B1 KR1019940007217A KR19940007217A KR100297454B1 KR 100297454 B1 KR100297454 B1 KR 100297454B1 KR 1019940007217 A KR1019940007217 A KR 1019940007217A KR 19940007217 A KR19940007217 A KR 19940007217A KR 100297454 B1 KR100297454 B1 KR 100297454B1
Authority
KR
South Korea
Prior art keywords
tag
index
page table
field
virtual
Prior art date
Application number
KR1019940007217A
Other languages
English (en)
Other versions
KR940024591A (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 KR940024591A publication Critical patent/KR940024591A/ko
Application granted granted Critical
Publication of KR100297454B1 publication Critical patent/KR100297454B1/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
    • 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
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables

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 도는 프로그램을 실행하는 동안 제공되는 가상 어드레스(virtual address)에 응답하는 종래의 수순을 도시한 도면.
제 2 도는 번역 룩어사이드 버퍼(TLB)중의 엔트리를 액세스하는 종래 방법을 도시한 도면.
제 3 도는 TLB 미스 후 TLB를 갱신하기 위한 물리 페이지 정보를 검색하는 종래 방법을 도시한 도면.
제 4 도는 색인 비트를 해시 태그와 결합시켜 페이지 테이블에 대한 액세스를 제공하는 본 발명의 바람직한 제 1 실시예를 도시한 도면.
제 5 도는 해시 색인 비프를 해시 태그와 결합시켜 페이지 테이블에 대한 액세스를 제공하는 본 발명의 바람직한 제 2 실시예를 도시한 도면.
제 6 도는 해시 태그가 상기 페이지 테이블에 저장되는 본 발명의 바람직한 제 3 실시예를 도시한 도면.
제 7 도는 대체적인 페이지 테이블 포맷을 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
203 : 가상 페이지 번호 401, 415 : 감소 태그
403 : 잔여 색인 405 : 해시 함수
407 : 태그 색인 409 : 페이지 테이블 색인
413 : 페이지 테이블 413 : 물리 페이지
419 : 포인터
본 발명은 가상 메모리를 구비하는 컴퓨터 시스템을 설계하는 것에 관한 것으로서, 특히 가상 어드레스를 물리 어드레스(physical address)로 번역할 때 번역 룩어사이드 버퍼(translation lookaside buffer: TLB)를 이용하는 컴퓨터에 관한 것이다.
종래의 컴퓨터 시스템은 소위 가상 메모리라는 기술을 사용하는데, 이 가상 메모리는 실제 존재하는 메모리보다 더 많은 메모리를 시뮬레이션하므로, 크기에 상관없이 컴퓨터가 몇 개의 프로그램을 동시에 실행할 수 있도록 한다. 동시 사용자 프로그램은 운영체제(operating system)에 의해 할당된 가상 어드레스를 경유하여 메인 메모리 어드레스를 액세스한다. 가상 어드레스의 메인 메모리 즉 물리 어드레스에 대한 매핑은 가상 어드레스 번역으로서 알려진 프로세스이다. 가상 메모리 번역은 프로세서가 메인 메모리내의 원하는 정보를 액세스할 수 있도록 여러가지 방법으로 실행될 수 있다.
가상 어드레스 및 물리 어드레스 공간은 통상 페이지라고 불리우는 통일한 크기의 메모리 블럭으로 나뉘어지고, 페이지 테이블은 가상 어드레스와 물리 어드레스간의 번역을 행한다. 이 페이지 테이블은 다수의 구조로 편성될 수 있다. "포워드-맵(forward-mapped)" 테이블은 상기 번역 정보를 포함하고 있는 테이블 엔트리(table entry)에 대한 포인터(pointer)로서 가상 페이지 번호를 사용하여 가장 쉽게 액세스 되고, "리버스-맵(reverse-mapped)" 테이블은 상기 번역 정보를 포함하고 있는 테이블 엔트리에 대한 포인터로서 물리 페이지 번호를 이용하여 가장 쉽게 액세스 된다. 생각할 수 있는 가상 페이지 번호는 물리 페이지 번호보다 훨씬 많기 때문에, 포워드 맵 테이블은 매우 크고 성긴 형태일 수 있지만 가상 페이지 번호가 주어지면 탐색이 상당히 용이하다. 리버스-맵 테이블은 물리 메모리의 각 페이지마다 각각의 엔트리를 포함하고 있다. 가상 페이지에 비해 물리 페이지의 수는 한정적이기 때문에, 리버스-맵 테이블이 한층 효율적인 저장 구조로 되는 경향이 있지만, 가상 페이지 번호만이 제공되는 경우에는 액세스가 훨씬 어렵다.
각각의 페이지 테이블 엔트리는 통상적으로 가상 어드레스 및/또는 물리 어드레스 포함하고 또한 페이지에 관련된 상태 정보 및 보호 정보를 포함한다. 통상, 상태 정보는 페이지의 액세스 형태에 관한 정보를 포함한다. 예를 들어, 오손(dirty)비트는 해당 페이지내에서 데이터 변경이 있었음을 나타낸다. 상기 페이지 테이블은 보통 크기 때문에, 이들은 메인 메모리에 저장된다. 그러므로, 각각의 정규 메모리 액세스는 실제로는 두번의 액세스 즉 번역을 얻기 위한 액세스와 물리 메모리 위치를 액세스 하기 위한 액세스가 필요하다.
가상 어드레스 번역을 지원하는 대부분의 컴퓨터 시스템은 TLB를 사용한다. 이 TLB는 작고 빠른 연관 메모리로서, 이 메모리는 보통 프로세서 유니트(processor unit)상이나 그 유니트에 근접하게 배치되어, 최근에 사용된 가상 및 물리 어드레스 쌍을 저장한다. TLB는 페이지 테이블내에 번역 서브세트를 포함하고 있으므로 훨씬 빨리 액세스할 수 있다. 프로세싱 유니트는 메인 메모리로부터의 정보를 필요로 할 때 가상 어드레스를 TLB로 보낸다. TLB는 가상 어드레스의 페이지 번호를 받고 페이지 번호를 반송한다. 이 물리 페이지 번호는 하위 어드레스 정보와 조합되어 메인 메모리중의 원하는 바이트 또는 단어를 액세스한다.
대부분의 경우, TLB는 전체 페이지 테이블을 포함할 수 없기 때문에, TLB를 갱신하는 수순을 실행할 필요가 있다. 가상 페이지를 액세스하는 때 그를 위한 번역 정보가 TLB에 없는 경우, 그 페이지 테이블을 액세스하여 그의 가상 페이지 번호로부터 물리 페이지 번호로의 번역을 결정하고 그 정보를 TLB에 입력한다. 페이지 테이블에 대한 액세스는 TLB 액세스 시간보다 20배의 시간이 필요할 수 있으므로, 프로그램 실행 속도는 번역 정보가 TLB에서 이용되도록 유지하는 것에 의해 최적화된다.
오늘날 대부분의 컴퓨터 시스템은 몇 가지 종류의 대용량 기억 장치, 전형적으로는 디스크를 사용하여 컴퓨터내의 물리적 랜덤 액세스 메모리를 증가시킬 수 있다. 이러한 메인 메모리(RAM)를 증가시키면, 메인 메모리만을 이용할 수 있는 경우에 비해 한층 커다란 프로그램도 실행할 수 있다. 또한, 디스크 메모리는 RAM보다 가격이 훨씬 저렴하지만, 처리 속도가 훨씬 느리다. 프로그램 길이에 따라 또한 메인 다른 프로그램과의 메모리에 대한 경쟁에 따라, 어떤 시점에서 프로그램의 일부분은 메인 메모리에 상주할 수도 있고 디스크 메모리에 상주할 수도 있다. 프로그램 중에서 즉시 액세스될 필요가 있는 부분은 메인 메모리로 보내지고 현재 사용되지 않는 부분은 디스크 메모리에 남겨진다.
예로서, 2 메가바이트의 길이를 가진 단일 프로그램이 1 메가바이트의 메모리를 가진 컴퓨터에서 실행되는 경우, 그 프로그램이 이용하는 가상 어드레스는 2메가바이트일 것이다. 메인 메모리는 단지 1 메가바이트의 정보만을 보유할 수 있기 때문에, 나머지 1 메가바이트의 프로그램 정보는 디스크 메모리 시스템내에 저장될 것이다. 따라서, 어떤 시점에서 프로그램의 절반이 이용가능한 물리적 메모리를 채우고 있는 경우, 가상 어드레스의 절반은 메인 메모리내의 프로그램 정보에 맵핑될 수 있고 나머지 절반은 그 프로그램 정보에 맵핑되지 않을 수 있다. 메인 메모리내의 정보에 대한 액세스는 통상적으로 행한다. 즉, 먼저 TLB를 조사하여 그 TLB이 번역 정보를 갖는지를 알아보고, 그 TLB이 번역 정보를 갖지 않는 경우에는 페이지 테이블내의 정보에 의해 TLB를 갱신한 다음에 TLB를 재차 참조하여 번역 정보를 얻는다.
메인 메모리내에 없는 정보에 대한 액세스가 발생하면, 먼저 (존재하지 않을) TLB를 참조하여 번역 정보를 탐색한다. 다음, 페이지 테이블을 참조하여 번역 정보를 얻고 TLB를 갱신한다. 그러나, 페이지 테이블은 단지 메인 메모리내의 정보에 대한 번역만을 가지므로 필요한 번역 정보를 갖고 있지 않을 것이다. 이러한 상태는 페이지 폴트(page fault)라고 불리운다. 페이지 폴트에 응답하여, 참조된 가상 페이지에 물리 페이지가 할당되고 이러한 정보가 페이지 디렉토리내로 삽입된다. 만약 모든 물리 페이지가 이미 다른 가상 페이지와 관련되어 있으면, 페이지 폴트 처리기는 현재 참조하고 있슨 가상 어드레스 페이지에 물리 페이지 중의 어떤 페이지를 재할당할 것인지를 선택할 필요가 있다, 이러한 선택을 위한 알고리즘은 많은데, 그 예로서는 FIFO(first-in-first-out) 및 LRU(least-recently-used) 알고리즘 같은 것들이 있다. 통상적으로, 페이지 폴트 처리기는 소프트웨어로 실시되며, TLB 갱신 프로세스는 당업계에 잘 알려진 바와 같이 소프트웨어 또는 하드웨어로 처리될 수 있다.
제 1 도는 전술한 프로세스를 도시한 것이다. 스텝(112)에서는, 가상 어드레스를 TLB에 제공한다. 만일 그 가상 어드레스에 대한 번역 정보가 TLB에 존재하면(TLB 히트의 경우), 그와 연관된 물리 어드레스가 TLB로부터 도출되어 물리 메모리에 대한 액세스에 사용된다(스텝 114). 그러나, 가상 어드레스에 대한 번역 정보가 TLB에 존재하지 않으면(TLB 미스의 경우), 가상 어드레스에 대한 번역 정보를 페이지 디렉토리/테이블에서 조사한다(스텝 116). 만약 번역 정보가 페이지 디렉토리내에 있으면 이 정보는 TLB로 제공되고(스텝 118), 가상 어드레스는 다시 TLB에 제공된다(스텝 112). 이때, TLB 히트가 발생됨으로써, 그 결과의 물리 어드레스가 물리 메모리를 액세스하는데 사용된다.
만약 가상 어드레스가 어떤 물리 어드레스 페이지와도 연관되지 않는 가상 어드레스 페이지내에 있다면, 페이지 디렉토리내에는 그 페이지에 대한 어떤 엔트리도 없을 것이므로 페이지 폴트가 발생할 것이다. 이런 경우, 소프트웨어 페이지 폴트 처리기(스텝 120)는 가상 페이지에 물리 페이지를 할당하여 페이지 떼이블을 갱신할 것이다. 다음, 상기한 가상 어드레스가 다시 TLB에 제공되지만, TLB는 아직 번역 정보를 갖지 않으므로 TLB 미스가 발생될 것이고 TLB는 페이치 디렉토리에 의해 갱신될 것이다. 그후, 가상 어드레스가 TLB에 다시 제공되면, 이번에는 TLB 히트가 확인되어서 그 결과의 물리 어드레스가 물리 메모리를 액세스하는데 사용된다.
제 2 도는 가상 어드레스의 제공에 응답하여 TLB내의 엔트리를 액세스하는 방법을 간략하게 도시한 것이다. 설명 목적상, TLB가 단지 하나의 엔트리만을 갖는 것으로 도시하였으나 통상적인 TLB는 훨씬 많은 엔트리를 가진다. 가상 어드레스는 레지스터(201)에 로드(load)된다. 이런 가상 어드레스는 2개의 부분 즉 가상 페이지 번호(203)와 물리 오프셋(205)으로 구성된다. 물리 오프셋(205)은 일반적으로 페이지내의 특정한 바이트를 지정하는 어드레스의 하위 12비트(이트11-비트)이다. 레지스터의 나머지 비트는 가상 페이지 번호를 나타낸다.
"페이지 오프셋(page offset)"이란 용어는 이 분야에서 흔히 사용되는 용어로서, 본 발명을 설명하는데 사용되고 있는 "물리 오프셋"과는 동의어이다. 또한, 물리 페이지 번호로의 번역을 독특하게 특정하기 위해 다른 비트들이 종종 사용된다. 이러한 비트로서는, 예를 들어, "어드레스 공간 식별자(address space identifier)" 비트 등이 있다. 그러나, 본 발명의 목적상, 그러한 모든 비트는 가상 페이지 번호의 부분으로 간주될 것이다.
도시된 예의 경우, 가상 페이지 번호는 가상 태그(tag)로 되는데, 이 태그는 TLB 비교기에 제 1 입력을 제공한다(207). TLB(209)는 TLB 태그(211) 및 이와 연관된 가상 페이지 번호(213)의 두개의 연결된 부분을 갖는다. TLB 태그(211) 및 TLB 비교기(207)에 제 2 입력을 제공하고, 그 비교기는 TLB 태그를 가상 태그와 비교한다. 만약 그들 두 태그가 일치하면, 비교기는 TLB 히트를 나타내고 물리 페이지 번호(213)는 물리 오프셋(205)과 조합되어 물리(실제) 메모리 어드레스가 제공된다. 그러나, 만약 두 태그가 일치하지 않으면, 비교기는 TLB 미스를 나타내고 제 1 도에 관련하여 설명한 TLB 미스 프로세스가 상기 TLB를 갱신하기 위하여 채택될 것이다.
제 3 도는 가상 페이지 번호가 주어지는 경우에 물리 페이치 정보를 검색하는 프로세스를 도시한 것으로서, 이 프로세스는 TLB 후의 TLB 갱신에 필요할 것이다. 전술한 바와 같이, 가상-물리 어드레스 맵핑은 페이지 테이블내에 유지된다. 주어진 가상 어드레스를 물리 어드레스로 번역하기 위한 한가지 접근 방식으로서는, 가상 어드레스에 대해 다-대-일 함수(many-to-one) 함수(해시(hash) 함수)를 실행하여 페이지 테이블로의 색인을 형성하는 것이다. 이렇게 하면, 연결된 엔트리 목록에 포인터가 제공된다. 그 다음, 일치 여부의 판단을 위해 엔트리가 조사된다. 일치 여부의 판단을 위해, 가상 페이지 번호가 페이지 테이블내의 엔트리(가상 태그)와 비교된다. 만약 가상 페이지 번호와 엔트리가 동일하면, 그 페이지 테이블 엔트리에 의해 물리 주소 번역 정보가 제공된다.
도시된 예에서, 해시(hash) 함수(30))가 가상 페이지 번호(203)에 대해 수행되어 색인이 형성된다. 이 색인은 페이지 테이블(303)내의 오프셋이다. 도시한 바와 같이, 색인은 0이다. 즉, 색인은 페이지 테이블의 제 1 엔트리(305)를 가리킨다. 페이지 테이블내의 각 엔트리는 다수 부분으로 구성되지만, 통상 적어도 가상 태그(307), 물리 페이지(309) 및 포인터(311)를 포함하고 있다. 만약 가상 페이지 번호(203)가 가상 개그(207)와 동일하면, 물리 페이지(309)는 원하는 물리(실제) 메모리 페이지 어드레스를 제공한다. 만약 가상 태그가 일치하지 않으면, 포인터(311)는 가상 어드레스-물리 어드레스 번역 정보를 포함하고 있는 메모리내의 엔트리 체인을 지정한다. 이 체인에 포항된 부가적인 정보는 둘 이상의 가상 페이지 번호가 동일한 페이지 테이블 엔트리로 해싱할 수 있으므로 필요하다.
도시된 바와 같이, 포인터(311)는 체인 세그먼트(chain segment)(313)를 지정한다. 이 체인 세그먼트는 페이지 테이블과 같은 형태의 정보를 포함하고 있다. 전술한 바와 같이, 가상 페이지 번호(203)를 다음의 가상 태그(315)와 비교하여, 이로부터 일치 여부를 확인한다. 만약 일치하면 그와 연관된 물리 페이지(317)는 원하는 물리 메모리 페이지 주소를 제공한다. 만약 일치하지 않으면, 포인터(319)를 조사하여 다음 체인 세그먼트(존재하는 경우)의 위치를 찾아낸다. 도시한 바와 같이, 포인터(319)가 다른 체인 세그먼트를 지정하지 않으면 페이지 폴트가 발생된다. 그러면, 제 1 도와 관련하여 설명한 바와 같이 페이지 폴트 소프트웨어를 사용하여 상기 페이지 폴트를 갱신한다.
상술한 방법은 가상 태그가 컴퓨터의 기본 데이터경로 크기보다 작은 시스템의 경우 또는 단지 하나의 중앙 처리 장치(central processing unit: CPU)만을 구비한 시스템내의 경우에 효과가 있다. 그러나, 만약 가상 태그가 데이터경로 크기 보다 크면, 가상 태그와 가상 페이지 번호가 동일한지를 검사하기 위해 두개의 비교가 필요하다. 이 부가적인 비교 스텝은 컴퓨터 시스템의 속도를 감소시킨다. 또한, 다수의 CPU를 사용하는 시스템에서는, 한 CPU가 검사하고 있는 동일한 페이지 테이블 엔트리를 다른 CPU가 갱신하지 않도록 상당한 주의가 필요하다. 그렇게 하지 않으면, 제 1 CPU가 페이지 테이블 엔트리를 수정함과 동시에, 제 2 CPU가 그 동일한 페이지 테이블 엔트리에 대해 제 2의 비교 스텝을 수행할 가능성이 있다. 이것은 허용 불가능한 결과이므로, 경합이 발생하지 않기 위해서는 별도의 하드웨어를 추가해야 할 필요성이 생기게 될 것이다.
따라서, 페이지 테이블내의 엔트리를 검사할 때 다수의 비교 스텝을 필요로 하지 않고서도 컴퓨터 시스템의 기본 데이터졍로보다 큰 가상 태그를 사용할 수 있는 방법 및 장치가 당업계에서 요망된다.
본 발명은 다수의 비교 동작을 필요로 하지 않으면서도 기본 컴퓨터 데이터 경로보다 큰 가상 태그를 사용할 수 있는 방법 및 장치를 제공한다. 페이지 테이블 엔트리내에 모든 태그를 저장하는 대신에, 감소 태그(reduced tag)를 저장함으로써 다수의 비교를 피할 수 있다. 감소 태그는 기본 데이터경로 크기 이하의 크기를 가지므로, 단일의 비교 동작만이 필요하다. 이 감소 태그는 가상 어드레스로부터 몇개의 비트를 제거하여 더 작은 태그를 형성함으로써 형성된다. 페이지 테이블의 유일성을 유지하기 위하여, 가상 어드레스로부터 제거된 비트를 이용하여 페이지 케이블에 대한 색인을 형성한다.
바람직한 제 2 실시예에서는, 감소 태그를 형성하는데 사용되지 않은 태그를 가상 어드레스로부터의 다른 비트들과 조합하여 해시 색인을 형성한다. 이 해시 색인에 의해, 페이지 테이블내에 엔트리들을 균등 분배하는 것이 제공된다.
바람직한 제 3 실시예에서는, 해시 태그가 가상 페이지 번호 비트 및 색인 비트로부터 형성된다. 이 해시 태그는 컴퓨터의 기본 데이터 폭 이하의 크기를 가지며, 감소 태그 대신에 페이지 테이블에 저장된다. 페이지 테이블에 대한 색인은 페이지 테이블 엔트리의 유일성을 유지하도록 설계된다.
본 발명의 기본적인 특징은 가상 페이지 번호(203)를 두 부분으로 분할하는 것이다. 분할된 제 1 부분은 감소 태그로 되고, 제 2 부분은 색인으로 사용된다. 감소 태그는 그 태그용으로 사용되는 비트들을 기본 컴퓨터 데이터경로 폭 이하로 제한함으로써 형성된다. 예를 들어, 컴퓨터 시스템이 32비트의 데이터 폭을 가진다면 감소 태그는 32비트의 데이터 폭을 가질 것이다. 감소 태그를 형성하는데 사용되지 않은 비트는 나머지 색인을 형성하는데 사용된다.
제 4 도는 TLB 미스 후 물리 페이지 정보를 검색할 수 있는 본 발명의 바람직한 실시예를 도시한 것이다. 도시된 바와 같이, 가상 페이지 번호(203)는 감소 태그(401) 및 나머지 색인(403)의 두 부분으로 분할된다. 감소 태그(401)는 컴퓨터의 기본 데이터 폭 이하의 비트들로 구성된다. 감소 태그를 형성하는데 사용되지 않은 비트는 나머지 색인(403)을 형성한다. 따라서, 가상 페이지 번호(203)의 길이가 36 비트인 경우, 컴퓨터 데이터 폭을 32비트로 가정하면, 감소 태그(401)는 32비트의 길이를 갖고 나머지 색인(403)은 4 비트의 길이를 가질 것이다.
해시 함수(405)가 감소 태그(401)에 대해 수행되어 태그 색인(407)이 생성된다. 이 태그 색인(407)은 예로서 연결에 의대 나머지 색인(403)파 조합되어 페이지 테이블 색인(409)이 형성된다. 도시한 바와 같이, 페이지 테이블 색인은 1로서, 페이지 테이블(413)의 제 2 엔트리(411)를 지정한다. 페이지 테이블내의 각 엔트리는 제 3 도와 관련하여 설명한 바와 같이 다수의 부분으로 구성된다. 만약 감소 태그(401)가 감소 태그(415)와 동일하면, 물리 페이지(417)는 소망의 물리(실제) 페이지 어드레스를 제공한다. 만약 태그(401)와 태그(415)가 일치하지 않으면, 상술한 바와 같이 포인터(419)를 조사해서 그 체인내의 다음 연결 부분(존재한다면)을 찾는다.
이러한 방법 및 장치는 페이지 테이블이 최소 수의 색인을 가질 것을 필요로 한다. 그 예로서는, 나머지 색인(403)의 크기가 4 비트이므로, 페이지 테이블은 적어도 16개의 엔트리를 가져야 한다. 그러나, 페이지 테이블의 크기는 통상 그 보다 훨씬 더 크므로 그같은 제약에 의해 문제가 생기지 않는다.
제 5 도는 본 발명의 바람직한 제 2 실시예를 도시한 것이다. 전술된 바와 같이, 가상 페이지 번호(203)는 감소 태그(401) 및 나머지 색인(403)으로 분할된다. 감소 태그(401)의 폭은 컴퓨터의 기본 데이터 폭과 같다. 감소 태그를 형성하는데 사용되지 않은 비트는 나머지 색인(403)을 형성한다. 도시한 예의 경우, 나머지 색인(403)은 4 비트의 길이를 가지며, 감소 태그(401)는 32 비트의 길이를 갖는다.
32 비트 감소 태그(401)는 해시 함수에 의해 처리되어 태그 색인(407)이 생성된다. 제 2 해시 함수(501)는 나머지 색인(403)과 가상 태그(401)로부터의 "n"비트(503)에 대해 수행된다. 여기서, "n" 은 0 내지 감소 태그의 최대 비트 수 범위의 값일 수 있다. 제 2 해시 함수(501)의 출력(505)은 예를 들어 연결에 의해 태그 색인(407)과 조합되어, 페이지 테이블 색인(507)이 형성된다.
제 2 해시 함수(501)를 사용하면, 나머지 색인(403) 비트만을 사용하는 경우에 비해 더욱 균등한 분배가 가능하다. 분배는 페이지 테이블로의 제 1색인에 의해 히트 결과가 얻어 지게 하는 것이 이상적이다. 그러나, 페이지 테이블 크기의 제약 때문에, 테이블로의 탐색 길이는 1.1인 것이 더욱 통상적이며 이는 타당한 페이지 테이블 크기를 허용한다.
페이지 테이블(509)의 구조와 기능은 기본적으로 제 3 도 및 제 4 도와 관련하여 설명한 바와 같다. 그러나, 페이지 테이블의 크기는 제 2 캐시 함수의 출력(505)의 비트 수에 의해 결정된다. 최소의 경우, 출력(505)은 나머지 색인(403)내의 비트 수로 구성된다. 나머지 색인(403)의 길이가 4 비트이고 "n"이 0인 최소의 경우, 페이지 테이블은 16개의 엔트리를 가질 것이며 제 4 도와 관련하여 설명한 바와 같이 작용한다. 만약 "n" 이 0보다 크면, 출력(505)은 4 비트를 초과할 것이며, 페이지 테이블은 2m의 엔트리 공간을 가질 것이다. 여기서, m은 출력(505)의 비트 수이다. n과 m간의 직접적인 관계가 반드시 필요한 것은 아닌데, 이는 제 2 해시 함수가 감소 태그로부터 어떤 수의 비트를 취해 한개 이상의 추가 비트를 생성해서 그것을 나머지 색인(403) 비트와 조합시키는 것이 가능하기 때문이다. 출력(505)의 비트 수가 많아질수록 테이블내의 페이지는 더욱 균등하게 분배된다.
감소 태그로부터의 "n" 개 비트는 비트 수 및 사용되는 특정 비트가 소프트웨어에 의해 선택될 수 있도록 소프트웨어로 구성될 수 있다. 따라서, 가상 주소(203)가 데이터경로 크기보다 훨씬 커서 페이지 테이블 크기 제약이 문제로 되는 경우에, 바람직한 컴퓨터 시스템의 적절한 구성이 가능하게 된다.
제 6 도는 본 발명의 또다른 실시예를 도시한 것이다. 페이지 테이블 검색 프로세스는 다음의 예외적인 것을 제외하고는 제 4 도와 연관하여 설명한 것과 기본적으로 동일하다.
페이지 테이블(413)은 제 4 도의 감소 태그 대신에 "해시 태그(hash tags)"(601 및 603)를 포함한다. 이들 해시 태그는 색인 비트(403) 및 가상 페이지 번호 비트(401)를 선택하여 그들 비트에 대해 해시 함수를 실행애서 컴퓨터의 기본 데이터 폭 이하로 되게 하는 것에 의해서 형성된다. 다음, 이러한 해시 결과는 전술한 감소 태그 대신에 페이지 테이블(601 및603)에 저장된다.
동작에 있어서, 페이지 테이블 색인(409)은 전술한 바와 같이 형성된다. 페이지 테이블 색인 형성과 동시에, 해시 결과(605)는 색인 비트(403)와 가상 페이지 번호 비트(401)에 대해 해시 함두(607)를 수행함으로써 형성된다. 이 해시 함수는 페이지 테이블에 저장된 모든 해시 태그를 발생하는데 이용되는 것과 동일한 해시 함수이다. 페이지 테이블 색인은 페이지 테이블(413)중의 엔트리(411)를 지정하고, 해시 태그(603)는 해시 결과(605)와 비교된다(609). 만약 해시 태그(603)와 해시 결과(605)가 일치하면 물리 페이지(417)는 필요한 물리 메모리 페이지 주소를 제공한다. 그러나, 치하지 않으면, 포인터(419)를 조사하여 체인내의 다음 링크(만약 있다면)를 찾는다.
이 페이지 테이블 태그의 생성 방법 및 장치는 컴퓨터 운영체제가 가상 페이지 번호중의 상위 비트들이 제로로 되도록 할 수 있을 때 특히 유용하다. 예를 들어, 만약 가상 주소 공간 전체가 필요하지 않으면, 몇 개의 비트를 항상 제로로 할수 있다. 이 방법 및 장치는 또한 색인(IDX)의 크기가 감소될 수 있도록 하는데, 이것에 의해 페이지 테이블 최소 크기가 감소되기 때문에 페이지 테이블의 효율성이 향상된다.
제 7 도는 본 발명의 범위를 벗어나지 않고서도 생각할 수 있는 많은 유용한 대체적인 페이지 테이블 구성중의 하나를 도시한 것이다. 그 예로서, 한 페이지 테이블중의 하나의 엔트리(701)를 도시하는데, 이 엔트리는 감소 태그 및 물리 페이지로 이루어진 3개의 세트(703, 705 및 707)를 가진다. 이 페이지 테이블의 동작은, 포인터(715)를 조사하여 다음 링크(만약 있다면)를 찾기 전에 3개의 감소 태그(709, 711 및 713)를 가상 페이지 번호(401)와 비교하는 것을 제외하고는, 제 4 도와 연관하여 설명한 것과 기본적으로 동일하다.
상술한 모든 바람직한 실시예는 큰 가상 어드레스가 이용될 수 있게 함과 동시에 다수 비교 스텝의 필요성이 배제되게 하는 장점이 있다. 따라서, 본 발명을 실시한 컴퓨터는 종래의 설계에 연관되는 성능 손실과 문제점을 수반하지 않고서도 어드레스 공간이 크게 된다는 장점을 향유할 수 있다. 이는 공통의 물리 메모리를 각각 액세스하는 다수의 CPU를 채택하고 있는 고성능 컴퓨터 시스템에 있어서 특별히 중요한 장점으로 된다.
당업자라면, 본원 명세서의 상세한 설명 및 여기에 개시한 실시예로부터 본발명의 다른 실시예를 구현할 수 있음을 명백히 알 수 있을 것이다. 따라서, 본원 명세서의 상세한 멀명 및 실시예는 단지 예시적인 것으로만 생각해야 하며, 본 발명의 진정한 사상 및 범주는 특허청구범위에 의해 규정하고자 한다.

Claims (12)

  1. 번역 룩어상드 버퍼(TLB) 및 페이지 테이블을 가진 유형의 물리 메모리/가상 메모리 번역 장치를 구비하고 있는 기본 데이터 폭의 컴퓨터 장치로서,
    상기 컴퓨터 장치는 상기 기본 데이터 폭을 초과하는 비트 수를 가진 가상 태그를 저장하는 제 1 저장 수단을 구비하고 있으며,
    상기 가상 태그는 상기 기본 데이터 폭과 이하의 비트 수를 가진 감소 태그 부분을 갖고 있고,
    상기 가상 태그는 상기 감소 태그 부분으로부터 배제된 가상 태그 비트를 포함하는 색인 부분을 또한 갖고 있으며,
    상기 컴퓨터 장치는 상기 감소 태그 비트들로부터 출력 비트 열을 생성하는 해시 감수를 또한 갖고 있으며,
    상기 컴퓨터 장치는 상기 출력 비트 열의 비트들 및 상기 색인 부분의 비트들을 포함하는 페이지 테이블 오프셋을 또한 갖고 있으며,
    상기 페이지 테이블은 감소 태그인 감소 태그 엔트리 및 이에 연관된 물리 페이지 어드레스를 제각기 포함하는 엔트리 쌍들을 갖고 있으며,
    TLB 미스 후, 상기 페이지 테이블 오프셋은 상기 가상 태그의 상기 감소 태그 부분과 비교될 페이지 테이블의 감소 태그 엔트리를 지정하는
    것을 특징으로 하는 컴퓨터 장치.
  2. 제 1 항에 있어서,
    상기 페이지 테이블은 2I개의 감소 태그 엔트리를 포함하며, 여기서 "I" 는 상기 색인 부분의 비트 수와 동일한 것을 특징으로 하는 컴퓨터 장치.
  3. 제 1 항에 있어서,
    상기 페이지 테이블은 또한 엔트리 체인을 지정하는 포인터 엔트리를 포함하고, 상기 엔트리 체인은 감소 태그 엔트리를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  4. 번역 룩어사이드 버퍼(TLB)내의 정보를 갱신하기 위한 컴퓨터 장치로서,
    감소 태그 필드, 색인 필드 및 물리적 오프셋 필드를 포함하는 가상 어드레스를 저장하는 제 1 저장 수단과,
    상기 감소 태그 필드내의 정보를 해싱하여 태그 색인 출력을 생성하는 해시 함수 수단과,
    상기 태그 색인과 상기 색인 필드내의 정보를 포함하며, 페이지 테이블내의 감소 태그 엔트리를 지정하는 페이지 테이블 색인과,
    상기 감소 태그 엔트리내의 정보와 상기 감소 태그 필드내의 정보를 비교하여, 상기 강소 태그 엔트리내의 정보와 상기 감소 태그 필드내의 정보가 일치하는 경우에, 상기 감소 태그 엔트리에 연관된 물리 페이지 엔트리 및 상기 감소 태그 엔트리에 연관된 가상 어드레스가 상기 TLB에 저장될 수 있게 하는 비교기를 구비하는 것을 특징으로 하는 컴퓨터 장치.
  5. 제 4 항에 있어서,
    상기 감소 태그 필드 및 상기 감소 태그 엔트리의 크기는 그와 연관된 컴퓨터의 기본 데이터 폭 이하이고, 상기 감소 태그 필드와 상기 색인 필드를 합한 크기는 상기 컴퓨터의 기본 데이터 폭보다 큰 것을 특징으로 하는 컴퓨터 장치.
  6. 제 4 항에 있어서,
    상기 페이지 테이블은 상기 태그 색인 및 제 2 해시 함수의 출력을 포함하며,
    상기 제 2 해시 함수에 대한 제 1 입력은 상기 색인 필드내의 모든 정보를 포함하고 상기 제 2 해시 함수에 대한 제 2 입력은 상기 감소 태그 필드로부터의 1비트 정보를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  7. 번역 룩어사이드 버퍼(TLB) 처리용의 컴퓨터 장치로서,
    가상 어드레스를 경유하여 액세스되는 데이터의 페이지를 저장하는 물리 메모리 수단과,
    상기 가상 어드레스를 상기 물리 메모리내의 데이터에 대한 물리 어드레스로 번역하기 위한 어드레스 번역 정보를 저장하는 TLB와,
    상기 TLB에 접속되어 상기 가상 어드레스내의 제 1 필드 - 이 제 1 필드는 관련하는 컴퓨터의 기본 데이터 폭 이하의 크기를 가짐 - 를 해싱하여 태그 색인을 형성하고, 이 태그 색인을 상기 가상 어드레스내의 제 2 필드의 정보와 조합하여 페이지 테이블에 대한 오프셋 포인터를 형성하기 위한 TLB 미스 처리기
    를 구비하며, 상기 TLB 미스 처리기는 또한 상기 오프셋 포인터에 의해 지정된 페이지 테이블 정보를 상기 가상 어드레스내의 상기 제 1 필드의 정보와 비교하여, 그들이 일치하는 경우에 상기 페이지 테이블 정보가 상기 TLB내에 저장하기 위한 것임을 특징으로 하는 컴퓨터 장치.
  8. 제 7 항에 있어서,
    상기 TLB 미스 처리기는 또한 상기 제 2 필드내의 정보와 상기 제 1 필드로 부터의 1비트 정보와의 합을 해싱하여 해시 색인 출력 즉 상기 태그 색인과 조합되어 상기 오프셋 포인터를 형성하는 색인 출력을 형성하기 위한 것임을 특징으로 하는 컴퓨터 장치.
  9. 제 8 항에 있어서,
    상기 페이지 테이블은 2I개의 번역 엔트리를 포함하며, 여기서 "I" 는 상기 해시 색인 부분의 비트 수와 동일한 것을 특징으로 하는 컴퓨터 장치.
  10. 번역 룩어사이드 버퍼(TLB)내의 정보를 갱신하기 위한 컴퓨터 장치로서,
    감소 태그 필드, 색인 필드 및 물리적 오프셋 필드를 포함하는 가상 어드레스를 저장하는 제 1 저장 수단과,
    상기 감소 태그 필드를 해싱하여 태그 색인 출력을 생성하기 위한 제 1 해시 함수와,
    상기 태그 색인 및 상기 색인 필드를 포함하며, 페이지 테이블내의 해싱된 태그 엔트리를 지정하는 페이지 테이블 색인과,
    상기 가상 어드레스를 해싱하여 해시 결과를 생성하기 위한 제 2 해시 함수와,
    상기 해싱된 태그 엔트리를 해시 결과와 비교하여 상기 해싱된 태그 엔트리와 상기 해시 결과가 일치하는 경우에, 상기 해싱된 태그 엔트리에 연관된 물리 페이지 엔트리가 상기 TLB에 저장되도록 하는 비교기
    를 주비하는 것을 특징으로 하는 컴퓨터 장치.
  11. 제 10 항에 있어서,
    상기 페이지 테이블은 2I개의 해싱된 태그 엔트리를 포함하며, 여기서 "I"는 상기 색인 부분의 비트 수와 동일한 것을 특징으로 하는 컴퓨터 장치.
  12. 제 10 항에 있어서,
    상기 해싱된 태그는 그에 연관된 컴퓨터의 기본 데이터 폭과 동일한 것을 특징으로 하는 컴퓨터 장치.
KR1019940007217A 1993-04-08 1994-04-07 컴퓨터장치 KR100297454B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US4485493A 1993-04-08 1993-04-08
US044,854 1993-04-08

Publications (2)

Publication Number Publication Date
KR940024591A KR940024591A (ko) 1994-11-18
KR100297454B1 true KR100297454B1 (ko) 2001-10-24

Family

ID=21934684

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940007217A KR100297454B1 (ko) 1993-04-08 1994-04-07 컴퓨터장치

Country Status (4)

Country Link
US (1) US5724538A (ko)
JP (1) JP3640978B2 (ko)
KR (1) KR100297454B1 (ko)
DE (1) DE4410060B4 (ko)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5787431A (en) * 1996-12-16 1998-07-28 Borland International, Inc. Database development system with methods for java-string reference lookups of column names
US6073226A (en) * 1997-03-19 2000-06-06 Microsoft Corporation System and method for minimizing page tables in virtual memory systems
US6065010A (en) * 1997-06-10 2000-05-16 Daikin Us Corporation Computer implemented method of generating virtual files for sharing information of physical information file
JP3680142B2 (ja) * 1997-12-05 2005-08-10 東京エレクトロンデバイス株式会社 記憶装置及びアクセス方法
US6633922B1 (en) * 1997-12-15 2003-10-14 International Business Machines Corporation Object access mechanism that dynamically switches between multiple distributed access models
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US6393544B1 (en) 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
US8019943B2 (en) * 2000-01-06 2011-09-13 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US6480950B1 (en) * 2000-01-24 2002-11-12 Oracle International Corporation Software paging system
US6671645B2 (en) * 2001-09-28 2003-12-30 Ciena Corporation Method for in-service RAM testing
US7382637B1 (en) 2002-02-01 2008-06-03 Netlogic Microsystems, Inc. Block-writable content addressable memory device
US6934796B1 (en) * 2002-02-01 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with hashing function
US6697276B1 (en) 2002-02-01 2004-02-24 Netlogic Microsystems, Inc. Content addressable memory device
US20030225992A1 (en) * 2002-05-29 2003-12-04 Balakrishna Venkatrao Method and system for compression of address tags in memory structures
US7197620B1 (en) * 2002-12-10 2007-03-27 Unisys Corporation Sparse matrix paging system
US7343477B1 (en) * 2003-12-29 2008-03-11 Sun Microsystems, Inc. Efficient read after write bypass
US7555634B1 (en) 2004-04-22 2009-06-30 Sun Microsystems, Inc. Multiple data hazards detection and resolution unit
US7606994B1 (en) * 2004-11-10 2009-10-20 Sun Microsystems, Inc. Cache memory system including a partially hashed index
JP3894335B1 (ja) * 2005-10-04 2007-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースの整合性を判断する装置、およびその方法
US8464024B2 (en) * 2007-04-27 2013-06-11 Hewlett-Packard Development Company, L.P. Virtual address hashing
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009072101A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8458574B2 (en) * 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8429377B2 (en) * 2010-01-08 2013-04-23 International Business Machines Corporation Optimizing TLB entries for mixed page size storage in contiguous memory
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8812513B2 (en) 2009-12-25 2014-08-19 International Business Machines Corporation Hash pointer checking for hierarchical database logical relationship
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8478740B2 (en) * 2010-12-16 2013-07-02 Microsoft Corporation Deriving document similarity indices
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US8719457B2 (en) * 2011-04-17 2014-05-06 Apple Inc. Efficient connection management in a SAS target
US8996790B1 (en) * 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
WO2013085518A1 (en) * 2011-12-08 2013-06-13 Intel Corporation A method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9081672B1 (en) 2013-05-30 2015-07-14 Richard Michael Nemes Methods and apparatus for information storage and retrieval using a caching technique with external-chain hashing and dynamic resource-dependent data shedding
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9367454B2 (en) * 2013-08-15 2016-06-14 Applied Micro Circuits Corporation Address index recovery using hash-based exclusive or
US9229874B2 (en) * 2013-09-27 2016-01-05 Intel Corporation Apparatus and method for compressing a memory address
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US20150256601A1 (en) * 2014-03-10 2015-09-10 Palo Alto Research Center Incorporated System and method for efficient content caching in a streaming storage
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US10025722B2 (en) * 2015-10-28 2018-07-17 International Business Machines Corporation Efficient translation reloads for page faults with host accelerator directly accessing process address space without setting up DMA with driver and kernel by process inheriting hardware context from the host accelerator
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US11544069B2 (en) * 2018-10-25 2023-01-03 Micron Technology, Inc. Universal pointers for data exchange in a computer system having independent processors
US10846239B2 (en) * 2018-11-29 2020-11-24 Marvell Asia Pte, Ltd. Managing translation lookaside buffer entries based on associativity and page size

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
US4731740A (en) * 1984-06-30 1988-03-15 Kabushiki Kaisha Toshiba Translation lookaside buffer control system in computer or virtual memory control scheme
US5060137A (en) * 1985-06-28 1991-10-22 Hewlett-Packard Company Explicit instructions for control of translation lookaside buffers
JPH083805B2 (ja) * 1985-06-28 1996-01-17 ヒューレット・パッカード・カンパニー Tlb制御方法
US5253353A (en) * 1990-01-02 1993-10-12 Digital Equipment Corporation System and method for efficiently supporting access to I/O devices through large direct-mapped data caches

Also Published As

Publication number Publication date
KR940024591A (ko) 1994-11-18
DE4410060A1 (de) 1994-10-13
DE4410060B4 (de) 2006-02-09
US5724538A (en) 1998-03-03
JPH0749812A (ja) 1995-02-21
JP3640978B2 (ja) 2005-04-20

Similar Documents

Publication Publication Date Title
KR100297454B1 (ko) 컴퓨터장치
JP4268332B2 (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
US6145064A (en) Method of efficiently updating hashed page tables
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5493660A (en) Software assisted hardware TLB miss handler
KR960001946B1 (ko) 우선 변환 참조버퍼
US5956756A (en) Virtual address to physical address translation of pages with unknown and variable sizes
US5465337A (en) Method and apparatus for a memory management unit supporting multiple page sizes
US6052697A (en) Reorganization of collisions in a hash bucket of a hash table to improve system performance
US6014732A (en) Cache memory with reduced access time
US6480950B1 (en) Software paging system
US7493464B2 (en) Sparse matrix
US4774653A (en) Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers
US5060137A (en) Explicit instructions for control of translation lookaside buffers
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
JP2003337834A (ja) サイズ変更可能なキャッシュ・センシティブ・ハッシュ・テーブル
JP2008027450A (ja) キャッシュ効率的なオブジェクトローダ
KR20080063514A (ko) 캐시된 메모리 데이터를 가진 메모리 속성 표시자의 캐시
JPH08212136A (ja) 仮想メモリ変換処理を効率的に共有する方法及び装置
US6553477B1 (en) Microprocessor and address translation method for microprocessor
US5319761A (en) Directory look-aside table for a virtual storage system including means for minimizing synonym entries
EP0212129A2 (en) Method of updating information in a translation lookaside buffer
EP0206050A2 (en) Virtually addressed cache memory with physical tags
KR0165511B1 (ko) 중복 자료 구조 및 해싱 함수와 순차적 링크 리스트를 이용한 고속 정보 접근 방법

Legal Events

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

Payment date: 20070517

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee