KR100895715B1 - 메모리 관리 유닛, 메모리 관리 유닛을 포함하는 시스템 및어드레스 변환 방법 - Google Patents
메모리 관리 유닛, 메모리 관리 유닛을 포함하는 시스템 및어드레스 변환 방법 Download PDFInfo
- Publication number
- KR100895715B1 KR100895715B1 KR1020067015807A KR20067015807A KR100895715B1 KR 100895715 B1 KR100895715 B1 KR 100895715B1 KR 1020067015807 A KR1020067015807 A KR 1020067015807A KR 20067015807 A KR20067015807 A KR 20067015807A KR 100895715 B1 KR100895715 B1 KR 100895715B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual address
- address
- delete delete
- management unit
- memory management
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
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
본 발명의 몇몇 실시예에 따르면, 메모리 관리 유닛은 가상 어드레스를 수신하고 대응하는 물리적 어드레스를 제공한다. 메모리 관리 유닛은 생성된 가상 어드레스-물리적 어드레스 변환을 저장한다. 특정 가상 어드레스에 대해 가상 어드레스-물리적 어드레스 변환이 이용 가능하다면, 메모리 관리 유닛은 대응하는 물리적 어드레스를 검색한다. 변환이 이용 가능하지 않다면, 메모리 관리 유닛은 가상 어드레스로부터 대응하는 물리적 어드레스를 생성한다. 메모리 관리 유닛은 프로세스 식별자를 이용하여 가상 어드레스를 수정된 가상 어드레스로 변환한 다음, 수정된 가상 어드레스를 이용하여 페이지 테이블 워크(page table walk)를 실행하여 물리적 어드레스를 생성한다.
Description
컴퓨팅 시스템 내의 프로세서는 메모리 매핑(memory mapping)을 이용하여 가상 어드레스를 물리적 어드레스로 매핑한다. 예를 들면, 프로세서의 실행 유닛에 의해 생성된 어드레스 공간은 가상 어드레스 공간으로 지칭된다. 시스템 상에서 이용 가능한 하드웨어 메모리 위치에 대응하는 어드레스는 물리적 어드레스로 지칭된다.
프로세서는 프로세스 또는 컨택스트(context) 스위칭을 위해 추가적인 레벨의 어드레스 리매핑(remapping)을 실행할 수 있다. 컨텍스트와 연관된 프로세스 식별자는 어드레스를 리매핑하는 데 이용될 수 있다. 프로세스 식별자 및 리매핑의 사용은 프로세스 스위치에서 캐시의 제거 또는 무효화의 필요성을 완화한다.
본 발명은 첨부된 도면을 참조함으로써 더 잘 이해될 수 있고, 당업자라면 본 발명의 여러 특징 및 이점이 명확해질 것이다.
서로 다른 도면 내에서 동일한 참조 부호의 사용은 유사하거나 동일한 항목을 나타낸다.
도 1은 본 발명의 일실시예에 따른 컴퓨팅 시스템의 여러 로직 블록을 도시하는 도면.
도 2는 본 발명의 일실시예에 따른 메모리 관리 유닛을 도시하는 블록도.
도 3은 본 발명의 일실시예에 따른 가상 어드레스-물리적 어드레스 변환을 도시하는 흐름도.
도 4는 본 발명의 일실시예에 따른 프로세스 스위칭 흐름을 도시하는 도면.
몇몇 실시예에 따르면, 메모리 관리 유닛은 가상 어드레스를 수신하고 대응하는 물리적 어드레스를 제공한다. 메모리 관리 유닛은 생성된 가상 어드레스-물리적 어드레스 변환(virtual address-to-physical address translations)을 저장한다. 특정 가상 어드레스에 대해 가상 어드레스-물리적 어드레스 변환이 이용 가능하다면, 메모리 관리 유닛은 대응하는 물리적 어드레스를 검색한다. 변환이 이용 가능하지 않다면, 메모리 관리 유닛은 가상 어드레스로부터 대응하는 물리적 어드레스를 생성한다. 메모리 관리 유닛은 프로세스 식별자를 이용하여 가상 어드레스를 수정된 가상 어드레스로 변환한 다음, 수정된 가상 어드레스를 이용하여 페이지 테이블 워크(page table walk)를 실행하여 물리적 어드레스를 생성한다.
이하의 설명에서, 여러 특정한 세부 사항이 제시되어 있다. 그러나, 본 발명의 실시예는 이러한 특정 세부 사항 없이도 실행될 수 있다는 것을 이해할 것이 다. 다른 경우에, 본 명세서에 대한 이해를 명확하게 하기 위해서, 공지된 방법, 구조 및 기법에 대해서는 상세하게 설명하지 않았다.
"일실시예", "실시예", "예시적인 실시예", "여러 실시예" 등에 대한 언급은, 설명되어 있는 본 발명의 실시예(들)가 특정한 특징, 구조 또는 특성을 포함할 수 있다는 것을 나타내지만, 모든 실시예가 필수적으로 그 특정한 특징, 구조 또는 특성을 포함해야 한다는 것을 의미하지는 않는다. 또한, "일실시예에서"라는 문구의 반복된 사용은 동일한 실시예를 참조한다는 것을 나타낼 수 있기는 하지만 반드시 해당 실시예를 참조해야 한다는 것을 나타내지는 않는다.
본 명세서에서 이용된 바와 같이, 별도로 지정되지 않는 한 공통 대상을 설명하기 위해서 "제 1의", "제 2의", "제 3의" 등과 같은 서수 형용사의 사용은 단지 동일한 대상의 다른 사례를 지칭하는 것에 불과하고, 설명되어 있는 해당 대상이 시간적, 공간적, 등급 또는 다른 방식에 따라 주어진 순서대로 나열되는 것을 의미하지는 않는다.
별도로 언급되지 않는 한, 이하의 설명으로부터 명확해지듯이 본 명세서에 걸쳐서 "프로세싱", "컴퓨팅", "계산" 등과 같은 용어를 사용하는 설명은, 전자적 양 등과 같은 물리적 양으로서 표현되는 데이터를 물리적 양으로서 유사하게 표현되는 다른 데이터로 처리 및/또는 변환하는 컴퓨터 또는 컴퓨팅 시스템, 또는 유사한 전자 컴퓨팅 장치의 동작 및/또는 프로세스를 지칭한다는 것을 이해할 것이다.
유사한 방식으로, "프로세서"라는 용어는 레지스터 및/또는 메모리로부터의 전자 데이터를 처리하여, 해당 전자 데이터를 레지스터 및/또는 메모리 내에 저장 될 수 있는 다른 전자 데이터로 변환하는 임의의 장치 또는 장치의 부분을 지칭할 수 있다. "컴퓨팅 플랫폼"은 하나 이상의 프로세서를 포함할 수 있다.
도 1은 본 발명의 일실시예에 따른 컴퓨팅 시스템의 여러 로직 블록을 도시하는 도면이다. 프로세서(100)는 어드레스 생성 유닛(AGU)(102) 및 메모리 관리 유닛(MMU)(104)을 포함한다. AGU(102)는 예를 들면, 데이터 어드레스를 생성하는 연산 로직 유닛(arithmetic logic unit : ALU) 또는 예를 들면, 인스트럭션 어드레스를 생성하는 증분기(incrementor)일 수 있다. AGU(102)에 의해 생성된 어드레스는 가상 어드레스이다. MMU(104)는 가상 어드레스를 물리적 어드레스로 변환한다. 이러한 물리적 어드레스는 예를 들면, 저장부(106)에 기록하거나 판독하는 등의 액세스를 위해 이용된다. 저장부(106)는 프로세서(100) 내부 또는 외부에 배치될 수 있다.
프로세서(100)는 ARM, CISC 또는 RISC 타입 아키텍처를 포함하는 임의의 타입의 아키텍처의 중앙 처리 장치를 나타낸다. 저장부(106)는 데이터를 저장하는 하나 이상의 메커니즘을 나타낸다. 예를 들면, 저장부(106)는 판독 전용 메모리(read only memory : ROM), 랜덤 액세스 메모리(random access memory : RAM), 자기 디스크 저장 매체, 광학 저장 매체 및/또는 플래시 메모리 장치를 포함할 수 있다. 본 발명을 단일 프로세서 컴퓨팅 시스템에서 구현하는 일실시예가 설명되어 있기는 하지만, 본 발명의 실시예는 다중 프로세서 컴퓨팅 시스템에서 구현될 수 있다.
프로세서(100)는 다수의 컴퓨팅 및 통신 시스템 중 어느 하나 내부에 존재할 수 있는데, 이러한 다수의 컴퓨팅 및 통신 시스템은, 몇 개를 열거하자면 메인프레임, 미니 컴퓨터, 서버, 워크스테이션, 퍼스널 컴퓨터, 노트패드, PDA(personal digital assistants), 하나 이상의 안테나(108) 및 송수신기(110)를 포함할 수 있는 여러 무선 통신 장치 및 내장형 시스템을 포함할 수 있지만 이것으로 한정되지는 않는다.
도 2는 본 발명의 일실시예에 따른 메모리 관리 유닛(104)을 도시하는 블록도이다. MMU(104)는 가상 어드레스를 수신하고 대응하는 물리적 어드레스를 제공한다. 먼저, 가상 어드레스에 대한 변환이 저장부, 예를 들면, TLB(translation look-aside buffer)(202) 내에 저장되었는지 여부에 대한 판정이 이루어진다. TLB(202)는 하나 이상의 가상 어드레스-물리적 어드레스 변환을 포함한다. 가상 어드레스에 대한 변환이 TLB(202) 내에 존재하지 않으면, 변환은 TLB 누락 처리(miss handling) 유닛(204)에 의해 생성된다. TLB 누락 처리 유닛(204)은 변환 로직(conversion logic)(206) 및 페이지 테이블 워크 유닛(page table walk unit)(208)을 포함한다. 변환 로직(206)은 가상 어드레스(VA)를 수정된 가상 어드레스(modified virtual address : MVA)로 변환한다. 변환 로직(206)은 예를 들면, 가상 어드레스의 하나 이상의 상위 비트, 예를 들면, 7개의 상위 비트(VA[31:25])가 0과 같은지 여부를 판정하는 판정 로직(210) 및 수정된 가상 어드레스(MVA)의 상위 비트를 선택하는 멀티플렉서(212)를 포함할 수 있다. 예를 들면, 멀티플렉서(212)는 가상 어드레스의 상위 7개의 비트가 0과 같은 경우에 프로세스 식별자(PID[6:0])를 선택하여 가상 어드레스의 상위 7개의 비트를 대체한다. 가상 어 드레스의 상위 7개의 비트가 0과 같지 않으면, 가상 어드레스의 상위 7개의 비트를 선택한다.
프로세스 식별자(PID)는 프로세서(100) 상의 레지스터 내에 저장되고, 특정 프로세스와 연관될 수 있다. 7비트 PID에 있어서, 가상 어드레스는 4기가바이트 어드레스 공간 내의 128개의 "슬롯(slots)" 중 하나에 대해 리매핑될 수 있다. 이러한 프로세스 식별자 리매핑은 동일한 가상 어드레스 공간으로 매핑하는 프로세스의 시스템 관리를 운영하는 데 있어서 유리할 것이다. 이러한 경우에, 가상 매핑된 캐시는 예를 들면, PID 값이 롤-오버(rolls over)하거나, PID 값이 재사용될 때까지는 프로세스 스위치에 대한 무효화(invalidating)를 필요로 하지 않을 것이다. 아직 PID에 의해 수정("PIDified")되지 않은 어드레스는 가상 어드레스(VA)로서 지칭된다. 변환 로직(206)을 통과하였으나, 물리적 어드레스로 변환되지 않은 어드레스는 수정된 가상 어드레스(MVA)로 지칭된다.
페이지 테이블 워크 유닛(208)은 수정된 가상 어드레스를 이용하여 물리적 어드레스를 생성한다. 메모리 어드레싱 기법은 때때로 페이징(paging)을 이용하여 가상 메모리를 구현한다. 페이징을 이용할 때, 가상 어드레스 공간은 페이지(pages)로 지칭되는 고정된 크기의 블록으로 분할될 수 있는데, 각각의 페이지는 임의의 물리적 어드레스로 매핑될 수 있다. 예를 들면, 페이지 테이블 워크 유닛(208)은 페이징 알고리즘에 따라서 페이지 테이블을 이용하여 가상 어드레스-물리적 어드레스에 대한 현재의 매핑을 결정 및 유지한다. 페이지 테이블은 때때로 메인 메모리 내에 존재하고, 이러한 페이지 테이블을 액세스하는 것은 시간 소모적 작업일 수 있다. 페이징 변환을 가속하기 위해서, 생성된 가상 어드레스-물리적 어드레스 변환의 일부는 TLB(202) 내에 저장된다.
이러한 변환된 메모리 어드레스는 본 명세서에서 물리적 메모리 어드레스로 설명되었으나, 다른 실시예에서 이러한 변환된 메모리 어드레스는 다수의 용도로 이용될 수 있다. 예를 들면, 물리적 어드레스를 획득하기 전에 이러한 변환된 메모리 어드레스에 대해 추가적인 변환이 실행될 수 있다. 또한, 일실시예는 가상 메모리 어드레스 공간을 변환하는 것과 관련하여 설명되었으나, 다른 실시예는 본 발명을 이용하여 어떠한 타입의 어드레스의 변환도 촉진할 수 있다.
TLB(202) 내에 저장된 가상 어드레스-물리적 어드레스 변환의 일부 또는 전체는 프로세스 식별자가 업데이트될 때 무효화될 수 있다. 프로세스 식별자는 예를 들면, 프로세스 또는 컨텍스트가 스위칭될 때 업데이트된다. TLB(202)는 널(null) 상위 비트를 갖고, 그에 따라 특정 프로세스로 지정되는 가상 어드레스에 대한 변환을 포함할 수 있으므로, 이러한 변환은 프로세스가 스위칭될 때 무효화되어야 한다. TLB(202) 내에서 변환의 무효화는 소프트웨어에 의해 실행될 수 있다. 이와 다르게, 하드웨어는 변경 사항을 검출하고 자동적으로 무효화를 실행할 수 있다.
도 3은 본 발명의 일실시예에 따라서 가상 어드레스를 그에 대응하는 물리적 어드레스로 변환하고자 하는 요청이 MMU(104)에게 전달될 때 프로세서(100)에 의해 실행되는 프로세스를 도시하는 흐름도이다.
MMU(104)는 프로세스 블록(302)에서 가상 어드레스를 수신한다. 프로세스 블록(304)에서 가상 어드레스에 대한 변환이 예를 들면, TLB(202) 내에 저장되었는지 여부에 대한 판정이 이루어진다. "예'라면, 프로세스 블록(306)에서 물리적 어드레스가 검색된다. "아니오"라면, 프로세스 블록(308)에서 가상 어드레스의 상위 비트, 예를 들면, 상위 7개의 비트가 널(null)인지, 즉 0과 같은지 여부에 대한 판정이 이루어진다. "예"라면, 프로세스 블록(310)에서 상위 비트는 프로세스 식별자(PID)로 대체된다. 다음에, 프로세스 블록(312)에서 PIDified 가상 어드레스, 즉 수정된 가상 어드레스(MVA)를 이용하여, 페이지 테이블 워크를 실행하고 물리적 어드레스를 생성한다. 프로세스 블록(314)에서 TLB(202)는 새로운 가상 어드레스-물리적 어드레스 변환으로 업데이트될 수 있다.
도 4는 본 발명의 일실시예에 따른 프로세스 스위칭 흐름을 도시한다. 프로세스 블록(402)에서 프로세스 식별자(PID)가 업데이트되었는지 여부에 대한 판정이 이루어진다. PID가 업데이트되었다면, 프로세스 블록(404)에서 TLB의 일부분 또는 전체가 무효화된다. 전체 TLB가 무효화될 수도 있다. 이와 다르게, 가상 어드레스의 상위 비트가 널인 변환만이 무효화될 수도 있다.
상술된 기법은 본 발명의 방법을 실행하도록 컴퓨팅 시스템을 구성하는 컴퓨터 판독 가능 매체 내에 구현될 수 있다. 컴퓨터 판독 가능 매체는 시스템(100) 또는 다른 시스템에 대해 영구적으로, 착탈 가능하게 또는 원격으로 결합될 수 있다. 컴퓨터 판독 가능 매체는 그 중 몇 개를 예로 들자면 디스크 및 테이프 저장 매체를 포함하는 자기 저장 매체와, 컴팩트 디스크 매체(예를 들면, CD-ROM, CD-R 등) 및 디지털 비디오 디스크 저장 매체 등과 같은 광학 저장 매체와, 홀로그래 픽(holographic) 메모리와, FLASH 메모리, EEPROM, EPROM, ROM 등과 같은 반도체 기반의 메모리 유닛을 포함하는 비휘발성 메모리 저장 매체와, 강자성 디지털 메모리와, 레지스터, 버퍼 또는 캐시, 메인 메모리, RAM 등을 포함하는 휘발성 저장 매체와, 영구적 및 간헐적(intermittent) 컴퓨터 네트워크, 포인트-투-포인트(point-to-point) 원격 통신 장치, 반송파(carrier wave) 전송 매체, 인터넷을 포함하는 데이터 전송 매체 중 임의의 개수를 포함할 수 있지만, 이것으로 한정되지는 않는다. 본 명세서에 설명된 소프트웨어 모듈을 저장 및/또는 전송하기 위해 다른 새로운 여러 타입의 컴퓨터 판독 가능 매체를 이용할 수 있다. 컴퓨팅 시스템은 몇 개를 열거하자면 메인프레임, 미니 컴퓨터, 서버, 워크스테이션, 퍼스널 컴퓨터, 노트패드, PDA(personal digital assistants), 여러 무선 장치 및 내장형 시스템을 포함하는 여러 형태로 나올 수 있지만 이것으로 한정되지는 않는다. 전형적인 컴퓨팅 시스템은 적어도 하나의 프로세싱 유닛, 연결 메모리 및 다수의 입력/출력(I/O) 장치를 포함한다. 컴퓨팅 시스템은 프로그램에 따라서 정보를 처리하고, I/O 장치를 통해 결과적인 출력 정보를 생성한다.
본 발명에 따른 구현은 특정 실시예와 관련하여 설명되어 있다. 이러한 실시예는 예시적인 것을 의미하고 한정적이지 않다. 여러 변형, 수정, 추가 및 개선이 가능하다. 따라서, 본 명세서에서 단일 개수의 장치로 설명된 부품에 대해 복수의 개수의 장치가 제공될 수 있다. 여러 구성 요소, 동작 및 데이터 저장부들 간의 경계는 다소 임의적이고, 특정 동작은 특정한 예시적인 구성과 관련하여 설명되었다. 다른 기능의 할당이 고려되고, 이하의 청구항의 범주에 속할 수 있다. 마지막으로, 다양한 구성 내의 이산 부품으로서 제시된 구조물 및 기능은 결합된 구조물 또는 부품으로서 구현될 수 있다. 이러한 변형, 수정, 추가 및 개선과 다른 변형, 수정, 추가 및 개선은 이하의 청구항에 정의된 본 발명의 범주 내에 속할 것이다.
Claims (24)
- 삭제
- 가상 어드레스를 수신하고, 그에 대응하는 물리적 어드레스를 제공하도록 구성된 메모리 관리 유닛으로서,하나 이상의 가상 어드레스-물리적 어드레스 변환을 포함하는 저장부와,상기 가상 어드레스로부터 수정된 가상 어드레스를 생성하는 변환 로직(conversion logic)과,상기 수정된 가상 어드레스를 상기 대응하는 물리적 어드레스로 변환하도록 구성된 페이지 테이블 워크 유닛(page table walk unit)을 포함하되,상기 변환 로직은 상기 가상 어드레스의 하나 이상의 비트가 사전 결정된 값을 포함하는 경우에, 상기 가상 어드레스의 상기 하나 이상의 비트를 프로세스 식별자로 대체하도록 구성되는메모리 관리 유닛.
- 제 2 항에 있어서,상기 사전 결정된 값은 0인메모리 관리 유닛.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 안테나, 메모리 및 상기 안테나와 상기 메모리에 결합된 프로세서를 포함하는 시스템으로서,상기 프로세서는어드레스 생성 유닛과,상기 어드레스 생성 유닛으로부터 가상 어드레스를 수신하고, 대응하는 물리적 어드레스를 제공하도록 구성된 메모리 관리 유닛을 포함하고,상기 메모리 관리 유닛은하나 이상의 가상 어드레스-물리적 어드레스 변환을 포함하는 저장부와,상기 가상 어드레스로부터 수정된 가상 어드레스를 생성하는 변환 로직과,상기 수정된 가상 어드레스를 상기 대응하는 물리적 어드레스로 변환하도록 구성된 페이지 테이블 워크 유닛을 포함하며,상기 변환 로직은 상기 가상 어드레스의 하나 이상의 비트가 사전 결정된 값과 동일한 경우에, 상기 가상 어드레스의 상기 하나 이상의 비트를 프로세스 식별자로 대체하도록 구성되는시스템.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 가상 어드레스를 수신하는 단계와,저장부 내에서 상기 가상 어드레스가 물리적 어드레스로의 변환을 갖는지 여부를 판정하는 단계와,상기 판정 결과가 '아니오'라면, 상기 가상 어드레스로부터 수정된 가상 어드레스를 생성하는 단계와,상기 수정된 가상 어드레스를 물리적 어드레스로 변환하는 단계를 포함하되,상기 수정된 가상 어드레스의 생성 단계는, 상기 가상 어드레스의 하나 이상의 비트가 사전 결정된 값과 동일한 경우에, 상기 가상 어드레스의 상기 하나 이상의 비트를 프로세스 식별자로 대체하는 단계를 포함하는방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/773,847 US7519791B2 (en) | 2004-02-06 | 2004-02-06 | Address conversion technique in a context switching environment |
US10/773,847 | 2004-02-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060120242A KR20060120242A (ko) | 2006-11-24 |
KR100895715B1 true KR100895715B1 (ko) | 2009-04-30 |
Family
ID=34826847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067015807A KR100895715B1 (ko) | 2004-02-06 | 2005-01-14 | 메모리 관리 유닛, 메모리 관리 유닛을 포함하는 시스템 및어드레스 변환 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7519791B2 (ko) |
JP (2) | JP2007520014A (ko) |
KR (1) | KR100895715B1 (ko) |
MY (1) | MY140166A (ko) |
TW (1) | TWI295015B (ko) |
WO (1) | WO2005078590A2 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676814B2 (en) * | 2004-03-25 | 2010-03-09 | Globalfoundries Inc. | Four layer architecture for network device drivers |
US20070011431A1 (en) * | 2005-06-27 | 2007-01-11 | Microsoft Corporation | ROM software breakpoints |
US20080005399A1 (en) * | 2006-05-16 | 2008-01-03 | Ati Technologies Inc. | Method and Apparatus for Determining the Status of Bus Requests and Responses |
US8250254B2 (en) * | 2007-07-31 | 2012-08-21 | Intel Corporation | Offloading input/output (I/O) virtualization operations to a processor |
US8140825B2 (en) * | 2008-08-05 | 2012-03-20 | International Business Machines Corporation | Systems and methods for selectively closing pages in a memory |
KR20120083160A (ko) | 2011-01-17 | 2012-07-25 | 삼성전자주식회사 | 메모리 관리 유닛, 이를 포함하는 장치들, 및 이의 동작 방법 |
KR102069273B1 (ko) * | 2013-03-11 | 2020-01-22 | 삼성전자주식회사 | 시스템 온 칩 및 그 동작방법 |
KR101821633B1 (ko) | 2013-03-14 | 2018-03-08 | 삼성전자주식회사 | 메모리 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001057676A1 (en) * | 2000-02-01 | 2001-08-09 | Cirrus Logic, Inc. | Methods for synthesizing translation tables and systems using the same |
US20020062434A1 (en) * | 2000-08-21 | 2002-05-23 | Gerard Chauvel | Processing system with shared translation lookaside buffer |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5460528A (en) * | 1977-10-24 | 1979-05-16 | Hitachi Ltd | Multiple virtual memory control equipment |
JPS54111726A (en) * | 1978-02-22 | 1979-09-01 | Hitachi Ltd | Control unit for multiplex virtual memory |
US6061774A (en) * | 1997-05-23 | 2000-05-09 | Compaq Computer Corporation | Limited virtual address aliasing and fast context switching with multi-set virtual cache without backmaps |
GB2339037B (en) * | 1998-07-03 | 2002-11-20 | Advanced Risc Mach Ltd | Memory address translation in a data processing system |
JP2000067009A (ja) * | 1998-08-20 | 2000-03-03 | Hitachi Ltd | 主記憶共有型マルチプロセッサ |
US6751583B1 (en) * | 1999-10-29 | 2004-06-15 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating a target processor using binary translation |
US6754784B1 (en) * | 2000-02-01 | 2004-06-22 | Cirrus Logic, Inc. | Methods and circuits for securing encached information |
US6907600B2 (en) * | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US6772315B1 (en) * | 2001-05-24 | 2004-08-03 | Rambus Inc | Translation lookaside buffer extended to provide physical and main-memory addresses |
US7103748B2 (en) * | 2002-12-12 | 2006-09-05 | International Business Machines Corporation | Memory management for real-time applications |
-
2004
- 2004-02-06 US US10/773,847 patent/US7519791B2/en not_active Expired - Fee Related
-
2005
- 2005-01-14 JP JP2006551169A patent/JP2007520014A/ja active Pending
- 2005-01-14 KR KR1020067015807A patent/KR100895715B1/ko not_active IP Right Cessation
- 2005-01-14 WO PCT/US2005/001234 patent/WO2005078590A2/en active Application Filing
- 2005-01-19 TW TW094101539A patent/TWI295015B/zh not_active IP Right Cessation
- 2005-02-04 MY MYPI20050444A patent/MY140166A/en unknown
-
2010
- 2010-02-01 JP JP2010020031A patent/JP2010134956A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001057676A1 (en) * | 2000-02-01 | 2001-08-09 | Cirrus Logic, Inc. | Methods for synthesizing translation tables and systems using the same |
US20020062434A1 (en) * | 2000-08-21 | 2002-05-23 | Gerard Chauvel | Processing system with shared translation lookaside buffer |
Also Published As
Publication number | Publication date |
---|---|
TW200534094A (en) | 2005-10-16 |
JP2010134956A (ja) | 2010-06-17 |
WO2005078590A3 (en) | 2006-03-30 |
JP2007520014A (ja) | 2007-07-19 |
TWI295015B (en) | 2008-03-21 |
US7519791B2 (en) | 2009-04-14 |
KR20060120242A (ko) | 2006-11-24 |
MY140166A (en) | 2009-11-30 |
US20050177701A1 (en) | 2005-08-11 |
WO2005078590A2 (en) | 2005-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740249B2 (en) | Maintaining processor resources during architectural events | |
US9645941B2 (en) | Collapsed address translation with multiple page sizes | |
KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
US9208103B2 (en) | Translation bypass in multi-stage address translation | |
US7783859B2 (en) | Processing system implementing variable page size memory organization | |
US7793070B2 (en) | Processing system implementing multiple page size memory organization with multiple translation lookaside buffers having differing characteristics | |
US9934155B2 (en) | Method, system, and apparatus for page sizing extension | |
US8151085B2 (en) | Method for address translation in virtual machines | |
KR101009220B1 (ko) | 캐시된 메모리 데이터를 가진 메모리 속성 표시자의 캐시 | |
US7917725B2 (en) | Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer | |
KR100895715B1 (ko) | 메모리 관리 유닛, 메모리 관리 유닛을 포함하는 시스템 및어드레스 변환 방법 | |
EP0506236A1 (en) | Address translation mechanism | |
US9268694B2 (en) | Maintenance of cache and tags in a translation lookaside buffer | |
US20150089116A1 (en) | Merged TLB Structure For Multiple Sequential Address Translations | |
US10191853B2 (en) | Apparatus and method for maintaining address translation data within an address translation cache | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
US20130262816A1 (en) | Translation lookaside buffer for multiple context compute engine | |
US10083126B2 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
US7779214B2 (en) | Processing system having a supported page size information register | |
US20160283396A1 (en) | Memory management | |
US10740248B2 (en) | Methods and systems for predicting virtual address | |
US8543791B2 (en) | Apparatus and method of reducing page fault rate in virtual memory system | |
US20100106938A1 (en) | Arithmetic processing unit and entry control method | |
JP2001282616A (ja) | メモリ管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment | ||
FPAY | Annual fee payment | ||
LAPS | Lapse due to unpaid annual fee |