KR20000076653A - 간단한 고성능 메모리 관리 유닛 - Google Patents

간단한 고성능 메모리 관리 유닛 Download PDF

Info

Publication number
KR20000076653A
KR20000076653A KR1020000006731A KR20000006731A KR20000076653A KR 20000076653 A KR20000076653 A KR 20000076653A KR 1020000006731 A KR1020000006731 A KR 1020000006731A KR 20000006731 A KR20000006731 A KR 20000006731A KR 20000076653 A KR20000076653 A KR 20000076653A
Authority
KR
South Korea
Prior art keywords
virtual address
access
address
virtual
address space
Prior art date
Application number
KR1020000006731A
Other languages
English (en)
Other versions
KR100705171B1 (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 KR20000076653A publication Critical patent/KR20000076653A/ko
Application granted granted Critical
Publication of KR100705171B1 publication Critical patent/KR100705171B1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01GHORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
    • A01G17/00Cultivation of hops, vines, fruit trees, or like trees
    • A01G17/04Supports for hops, vines, or trees
    • A01G17/06Trellis-work
    • A01G17/08Tools e.g. clips for attaching hops, vines, or boughs to trellis-work; Tying devices
    • A01G17/085Espalier machines; Tying machines
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01GHORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
    • A01G17/00Cultivation of hops, vines, fruit trees, or like trees
    • A01G17/04Supports for hops, vines, or trees
    • A01G17/12Tree-bands
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Botany (AREA)
  • Environmental Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)

Abstract

본 발명은 컴퓨터 시스템에서의 가상 어드레스를 물리적 어드레스로 변환하는 방법 및 장치를 제공한다. 시스템은 프로그램 명령의 페치나 실행 시의 가상 어드레스를 수신한다. 가상 어드레스가 가상 어드레스 공간의 상부와 하부 중 어느 곳에 위치하는 지를 시스템은 결정한다. 시스템은 가상 어드레스가 가상 어드레스 공간의 하부에 위치하면, 시스템은 물리적 어드레스를 생성하기 위해 제 1 베이스 어드레스에 가상 어드레스를 추가한다. 시스템은 가상 어드레스를 상한값과 또한 비교한다. 가상 어드레스가 상한값보다 큰 값을 가지면, 시스템은 불법적 액세스를 표시한다. 가상 어드레스가 가상 어드레스 공간의 상부에 위치하면, 시스템은 물리적 어드레스를 생성하기 위해 제 2 베이스 어드레스에 가상 어드레스를 추가한다. 시스템은 하한값에 가상 어드레스를 또한 비교한다. 가상 어드레스가 하한값보다 낮은 값을 가지면, 시스템은 액세스가 불법적임을 표시한다. 그러므로, 시스템은 불법적인 메모리 액세스로부터 보호될 수 있다. 본 발명의 한 태양에 따라, 쓰기 액세스로부터 보호되는 가상 어드레스 공간의 부분 내에 가상 어드레스가 위치하는 지를 시스템은 결정한다. 만약 그렇다면, 가상 어드레스에 쓰기 액세스를 실행하는 것을 시스템은 허용하지 않는다. 그러므로, 본 발명은 페이징을 불필요하게 하고, 간단한 부가 작용으로 가상-물리적 어드레스 변환 과정을 감소시킨다. 이는 프로세서 클럭 속도를 증가시키고, 컴퓨터 시스템 설계 및 제작의 비용을 크게 감소시킨다.

Description

간단한 고성능 메모리 관리 유닛{SIMPLE HIGH-PERFORMANCE MEMORY MANAGEMENT UNIT}
본 발명은 컴퓨터 시스템의 가상 메모리를 물리적 메모리로 변환하기 위한 메모리 관리 유닛에 관한 것이다. 특히, 발명은 불법적인 메모리 액세스로부터 보호되면서 가상 어드레스를 물리적 어드레스로 변환하는, 간단하고 효율적이며 신속한 방법 및 장치에 관한 것이다.
현대의 컴퓨터 시스템은 가상 메모리와 페이징과 같은 메모리 관리 기능을 지원하기 위해 하드웨어 및 작동 시스템 메카니즘을 일반적으로 포함한다. 수년동안 이 시스템은 복잡하게 성장하여, 메모리 관리 유닛(MMU)과 변환 루크어사이드 버퍼(TLB)와 같은 하드웨어 구조뿐만 아니라, 가상 메모리 및 페이징을 지원하기 위한 상응하는 작동 시스템 메카니즘을 포함한다.
이 메모리 관리 회로는 컴퓨터 시스템의 연산 회로에 상당한 부분으로 구성된다. 결과적으로, 이 메모리 관리 회로를 설계하는 작업은 상당한 기술적 리소스를 필요로 하고, 이는 컴퓨터 시스템 개발에 소용되는 시간과 비용을 증가시킨다. 더욱이, 이 부가적인 메모리 관리 유닛을 반도체 칩에 집적시키는 것은 칩의 다이 크기를 증가시킨다. 이는 칩 제작 시에 성능을 떨어뜨릴 수 있고, 그 결과 시스템 비용을 증가시킨다. 부가적인 회로는 더 긴 거리를 이동하는 회로 신호(이 거리는 프로세서 클럭 속도를 감소시키고 메모리 액세스를 위한 잠재 시간을 증가시킴)를 필요로 하여, 시스템 성능을 감소시킨다. 이는 메모리 액세스를 위한 잠재시간을 증가시킨다. 기존 메모리 관리 유닛은 상당한 전력을 소비하는 컨텐트 어드레서블 메모리(CAM)를 구현하기 위한 회로를 또한 포함한다.
메모리 관리 기능은 작동 시스템 코드의 상당부를 추가로 포함하고, 이는 작동 시스템을 상당히 복잡하게 한다. 이는 작동 시스템 개발에 소용되는 시간과 비용을 크게 증가시킨다.
더욱이, 현재의 객체 지향 프로그래밍 언어로 쓰여진 프로그램에 대해, 페이징 메카니즘의 성능 이점이 일부 감소한다. 객체 참조는 수많은 페이지에 넓게 분포하는 경향이 있다. 결과적으로, 이러한 객체 지향 프로그램은 낮은 페이징 성능을 보인다.
기존 가상 메모리 페이징 시스템의 복잡성을 제거하는 메모리 관리 메카니즘이 현재 필요하다.
본 발명은 컴퓨터 시스템의 가상 어드레스를 물리적 어드레스로 변환하기 위한 방법 및 장치를 제공한다. 시스템은 프로그램 명령의 페치나 실행 시의 가상 어드레스를 수신한다. 가상 어드레스가 가상 어드레스 공간의 상부와 하부 중 어느 곳에 위치하는 지를 시스템은 결정한다. 시스템은 가상 어드레스가 가상 어드레스 공간의 하부에 위치하면, 시스템은 물리적 어드레스를 생성하기 위해 제 1 베이스 어드레스에 가상 어드레스를 추가한다. 시스템은 가상 어드레스를 상한값과 또한 비교한다. 가상 어드레스가 상한값보다 큰 값을 가지면, 시스템은 불법적 액세스를 표시한다. 가상 어드레스가 가상 어드레스 공간의 상부에 위치하면, 시스템은 물리적 어드레스를 생성하기 위해 제 2 베이스 어드레스에 가상 어드레스를 추가한다. 시스템은 하한값에 가상 어드레스를 또한 비교한다. 가상 어드레스가 하한값보다 낮은 값을 가지면, 시스템은 액세스가 불법적임을 표시한다. 그러므로, 시스템은 불법적인 메모리 액세스로부터 보호될 수 있다. 본 발명의 한 태양에 따라, 쓰기 액세스로부터 보호되는 가상 어드레스 공간의 부분 내에 가상 어드레스가 위치하는 지를 시스템은 결정한다. 만약 그렇다면, 가상 어드레스에 쓰기 액세스를 실행하는 것을 시스템은 허용하지 않는다. 그러므로, 본 발명은 페이징을 불필요하게 하고, 간단한 부가 작용으로 가상-물리적 어드레스 변환 과정을 감소시킨다. 이는 프로세서 클럭 속도를 증가시키고, 컴퓨터 시스템 설계 및 제작의 비용을 크게 감소시킨다.
도 1은 본 발명의 실시예에 따르는 컴퓨터 시스템의 도면.
도 2는 본 발명의 실시예에 따라, 가상 어드레스 공간의 영역이 물리적 어드레스 공간의 상응하는 영역으로 매핑되는 방법을 도시하는 도면.
도 3은 본 발명의 실시예에 따라, 가상 어드레스를 물리적 어드레스로 변환하기 위해 포함된 일부 회로의 도면.
도 4는 본 발명의 실시예에 따라, 불법적 메모리 액세스를 감지하기 위해 포함되는 일부 회로.
도 5는 본 발명의 실시예에 따라, 명령 및 데이터 참조를 안내하기 위한 중복 메모리 관리 유닛을 가지는 컴퓨터 시스템의 도면.
도 6은 본 발명의 실시예에 따라, 가상 어드레스를 물리적 어드레스로 변환하는 과정을 도시하는 순서도.
다음의 내용은 당 분야의 통상의 지식을 가진 자에게 있어 발명을 용이하게 이해하고 사용할 수 있도록 제시되며, 특정 장치 및 그 요구사항을 예로 들어 제공된다. 공개된 실시예에 여러 가지 수정이 가능하고, 본 발명의 정신과 범위를 벗어나지 않으면서 다른 실시예와 장치에, 여기서 정의된 일반적 원칙이 적용될 수 있을 것이다. 그러므로, 본 발명은 도시되는 실시예에 제한되는 것이 아니고, 여기서 공개되는 원리와 특징에 관련된 가장 넓은 범위로 허용되어야 할 것이다.
컴퓨터 시스템
도 1은 본 발명의 실시예에 따르는 컴퓨터 시스템을 도시한다. 이 컴퓨터 시스템은 중앙 처리장치(102), 메모리 관리 유닛(MMU)(106), 캐쉬(116), 버스(113), 메모리(120), 주변 장치(122), 그리고 주변 장치(124)로 구성된다. 일반적으로, 중앙 처리 장치(102)는 연산 작용 실행을 위한 종류의 회로를 포함한다. 이는 메인프레임 컴퓨터, 개인용 컴퓨터, 워크스테이션, 디바이스 컨트롤러, 그리고 스마트 장치(예를 들어 스마트 마이크로 오븐)을 위한 중앙 처리 장치를 포함하지만, 위의 예에 한정되는 것은 아니다.
중앙 처리 장치(102)는 MMU(106)로 가상 어드레스(104)를 공급하고, MMU(016)는 가상 어드레스(104)를 물리적 어드레스(115)로 변환한다. 도시되는 실시예에서, MMU(106)는 6개의 값을 포함한다. 값 "읽기 전용"(109)(1 비트), 상한값(110)(15 비트), 그리고 베이스 어드레스(108)(16 비트)는 가상 어드레스 공간(202)의 하부 영역과 관련된다. 값 "읽기 전용"(111)(1 비트), 하한값(114)(15 비트), 그리고 베이스 어드레스(112)(16 비트)는 가상 어드레스 공간(202)의 상부 영역과 관련된다. 값 "읽기 전용"(109)(1 비트), 상한값(110)(15 비트), 그리고 베이스 어드레스(108)(16 비트)는 제 1 32-비트 레지스터에 들어가고, 값 "읽기 전용"(111)(1 비트), 하한값(114)(15 비트), 그리고 베이스 어드레스(112)(16 비트)는 제 2 32-비트 레지스터에 들어간다. 이 값들을 두 개의 32 비트 레지스터에 묶는 것은 신속한 컨텍스트 스위칭을 용이하게 한다. 상기 6개의 값은 도 2를 참조하여 더욱 상세히 기술될 것이다.
MMU(106)로부터의 물리적 어드레스(115)는 캐쉬(116)에 공급되고, 상기 캐쉬(116)는 메모리(120)로부터 최근 참조된 메모리 아이템의 카피를 저장한다. 캐쉬(116)는 분리된 명령 및 데이터 캐쉬를 포함하여 어떤 종류의 캐쉬 메모리도 가능하다. 도 1에 도시되는 실시예는 물리적으로 어드레싱되는 통일된 명령 및 데이터 캐쉬를 포함한다. 고성능 컴퓨터 시스템은 MMU 작동과 병렬로 캐시 액세스를 시작하기 위해 가상 인덱싱의 물리적 태깅 캐쉬(virtually-indexed physically-tagged cashe)를 포함한다. 그러나, 도시되는 실시예에서, MMU(106)는 전파 지연을 거의 발생시키지 않는 간단한 추가 작동만을 포함하는 매우 간단한 설계를 가진다. 이는, 시스템 성능을 크게 저하시키지 않으면서 캐쉬 루크업 이전에 MMU 작동을 실행시킨다. 본 발명의 다른 하나의 실시예는 MMU(106)와 병렬로 작동하는 가상 인덱싱 캐쉬 메모리를 포함한다.
캐쉬(116)는 버스(113)를 통해 메모리(120)에 연결된다. 버스(113)는 메모리(120)와 마이크로프로세서 칩(100) 사이에서 데이터를 운반하기 위한 통신 채널일 수 있다. 버스(113)는 주변 장치(122, 124)에 마이크로프로세서 칩(100)을 추가적으로 연결한다. 주변 장치(122, 124)는 예를 들어 디스크 드라이브나 키보드와 같이, 컴퓨터 시스템에 부착되는 주변 장치일 수 있다. 선택적인 실시예에서, 주변 장치(122, 124)는 주변 버스를 통해 CPU(102)에 연결되고, 상기 주변 버스는 프로세서로부터 메모리로 연결되는 버스와 분리된다.
메모리 매핑
도 2는 본 발명의 실시예에 따라 가상 어드레스 공간(202)의 영역이 물리적 어드레스 공간(220)의 상응하는 영역에 매핑되는 방법을 도시한다. 이 실시예에서, MMU(106)(도 1 참조)는 두 영역의 가상 어드레스 공간(220)을 물리적 어드레스 공간(220)의 상응하는 영역에 매핑한다.
하부 영역(208)은 가상 어드레스 공간(202)의 바닥 근처에서 시작하여, 상방으로 연장된다. 하부 영역(208)은 물리적 어드레스 공간(220)의 상응하는 영역으로 매핑되고, 상기 상응하는 영역은 물리적 어드레스 공간(220)의 베이스 어드레스(108)로부터 상향으로 확장된다. 하부 영역(208)의 상한은 가상 어드레스 공간(202)의 상한(110)에 의해 정해진다.
상부 영역(204)은 가상 어드레스 공간(202)의 가장 높은 어드레싱 위치에서 시작하여, 하향으로 확장된다. 상부 영역(204)은 물리적 어드레스 공간(220)의 상응하는 영역으로 매핑되고, 상기 상응하는 영역은 물리적 어드레스 공간(220)의 베이스 어드레스(112)로부터 하향으로 연장된다. 상부 영역(204)의 하한은 가상 어드레스 공간(202)의 하한(114)에 의해 정해진다. 특히, 상부 영역(204)은 하부 영역(208)보다 물리적 메모리의 더 하부 영역으로 매핑될 수 있다.
도 1에 도시되는 시스템에서, 각각의 영역은 "읽기 전용 비트"와 연관되고, 이는 영역에 "읽기 전용" 보호를 제공함을 용이하게 한다. 도시되는 실시예에서, 읽기 전용 비트(109, 111)는 하부 영역(208)과 상부 영역(204)에 각각 관련된다. 읽기 전용 비트(109)가 나타날 경우, 가상 어드레스 공간(202)의 하부 영역(208)은 수정될 수 없다. 읽기 전용 비트(109)가 나타나지 않으면, 가상 어드레스 공간(202)의 상부 영역(204)은 수정될 수 있다. 읽기 전용 비트(111)가 나타나면, 가상 어드레스 공간(202)의 상부 영역(204)은 수정될 수 있고, 읽기 전용 비트(111)가 나타나지 않으면, 가상 어드레스 공간(202)의 상부 영역(204)은 수정될 수 있다. 이 읽기 전용 비트들은 시스템으로 하여금 간단한 다이내믹 링크 라이브러리 메카니즘을 지원하게 하고, 이는 라이브러리를 "읽기 전용"으로 하여, 여러 프로그램에 의해 안전하게 공유될 수 있게 한다.
도 1과 도 2에 도시되는 실시예의 한 장점은 변환 입도가 크다는 점이다. 이 입도가 증가함에 따라, 가상 어드레스(104)의 비트들은 가상 어드레스 변환 과정동안의 수정을 크게 필요로 하지 않는다. 이는 크기를 감소시키고, 그래서 변환 과정동안 사용되는 애더의 속도를 향상시킨다. 더욱이, 입도가 증가함에 따라, 가상 어드레스(104)의 더 낮은 차수의 비트들인 캐쉬(116) 내로 즉시 들어와서, 캐쉬 성능을 향상시킨다.
상기 배열이 64K 바이트 바운더리에 재할당되는 것을 주목하라. 두 베이스 어드레스(108, 112)는 두 영역의 물리적 시작 어드레스의 상부(16) 비트를 포함하고, 상응하는 상부 및 하부 바운드(110, 114)는 이 두 영역의 각각의 길이를 포함한다.
본 발명의 한 실시예에서, 이 두 영역 외부의 액세스는 하드웨어 트랩을 유발한다. 이러한 하드웨어 트랩동안, MMU(106)는 자동적으로 정지되어, 매핑되지 않은 메모리에 트랩 조작 "감시자" 코드를 위치시킨다. 필요하다면, 감시자 코드는 메모리 바운드로 확장될 수 있다.
하부 영역(208)이 어드레스 0까지 계속 확장되지는 않는다는 점을 또한 주목해야 한다. 가상 어드레스 공간(202)의 첫 번째 64K 바이트는 널 포인터 영역(210)에 의해 점유된다. 이는 널 포인터의 참조 범위를 확인하는 메카니즘을 제공한다. 어떤 데이터 구조도 그 길이가 64K 바이트를 넘지 않는 한, 이 메카니즘은 정상적으로 작동하고, 이 길이가 일반적인 제한이다. 데이터 구조가 64K 바이트보다 크면, 널 포인터로부터의 큰 오프셋이 하부 영역(208) 내의 유효한 어드레스로 매핑될 수 있다.
어드레스 변환 회로
도 3은 본 발명의 실시예에 따라 가상 어드레스(104)를 물리적 어드레스(115)로 변환하는 회로를 도시한다.
도 3의 좌측부에 도시되는 회로는 가상 어드레스(104)를 발생시킨다. 이 회로는 시프터(306), 멀티플렉서(MUX)(310), 그리고 애더(312)를 포함한다. 애더(312)는 레지스터(304)나 즉시 필드(308)의 내용에 레지스터(302)의 내용을 더한다. 이는, 레지스터(304)나 즉시 필드(308) 내의 어레이 인덱스와 어레이 베이스 어드레스 레지스터(302)를 저장함으로서 어레이 인덱싱을 촉진시킨다.
어레이 인덱스로 명령 필드로부터의 숫자값을 이용하는 것을 즉시 필드(308)는 촉진시킨다는 점을 주목해야 한다. 즉시 필드(308)는 시프터(306)로 옮겨질 수 있고, 상기 시프터(306)는 어레이 엘리먼트 크기에 의해 인덱스를 멀티플라잉하는 데 사용된다. 이는 물론 어레이 엘리먼트의 크기 차수가 2차임을 가정한 결과다. 공통 어레이 엘리먼트 크기는 바이트 크기의 어레이 엘리먼트에 대해서 1 바이트(이동 없음), 반-워드 어레이 엘리먼트에 대해 2 바이트(1비트 이동), 워드 크기 어레이 엘리먼트에 대해서 4 바이트(2비트 이동), 또는 배정도 어레이 엘리먼트에 대해 8 바이트(3비트 이동)일 것이다.
가상 어드레스(104)가 구축되면, 구축된 가상 어드레스(104)는 도 3에 도시되는 회로의 우측부에 전력에 공급된다. 이 회로는 가상 어드레스로부터 물리적 어드레스로 변환을 실행한다. 이 실시예에서, 회로는 더 높은 차수의 16 비트 가상 어드레스(104)와 물리적 어드레스(115)에서만 작동한다. 왜냐하면, 낮은 차수의 16 비트 가상 어드레스(104)와 물리적 어드레스(115)가 변환없이 회로를 간단히 통과할 수 있기 때문이다.
높은 차수의 16 비트 가상 어드레스(104)는 애더(314)를 통해 공급되고, 상기 애더(314)는 베이스 어드레스(108)에 비트를 추가하여, MUX(318)의 입력에 공급되는 가산합을 생성한다.
높은 차수의 16 비트 가상 어드레스(104)는 애더(316)를 통해 추가적으로 공급되고, 상기 애더(316)는 베이스 어드레스(112)에 비트를 추가하여, MUX(318)의 다른 입력에 공급되는 가산합을 생성한다.
가장 높은 차수의 16 비트를 가지는 가상 어드레스(104)(비트 31)는 MUX(318)의 선택 입력에 공급된다. 비트 31은 가상 어드레스 공간(202)의 상부 영역(204)이나 하부 영역(208) 중 어디에 가상 어드레스(104)가 위치하는 지를 나타낸다. 상부 영역(204)에 있다면, 애더(316)의 출력은 MUX(318)의 출력이 될 것이다. 그렇지 않을 경우, 애더(314)의 출력은 MUX(318)의 출력이 될 것이다.
MUX(318)의 출력은 물리적 어드레스(115)의 상부 16 비트가 될 것이다. 가상 어드레스의 하부 16 비트는 회로를 간단히 통과하고 물리적 어드레스(115)의 하부 16 비트가 된다는 점을 다시 생각해보자.
불법적 액세스 감지 회로
도 4는 본 발명의 실시예에 따라 불법적 메모리 액세스를 감지하기 위한 회로를 도시한다. 이 회로는 도 3에 도시되는 회로와 병렬로 작동한다. 도 4에 도시되는 회로는 AND 게이트(404, 412, 416, 415)와 OR 게이트(408, 414, 417)를 포함한다. 회로는 비교 유닛(406, 410)을 추가로 포함한다.
비교 유닛(406, 410)은 가상 어드레스(104)가 하한값(114) 아래에 있는 지, 또는 상한값(110) 위에 있는 지를 각각 결정한다. 비교 유닛(406)은 가상 어드레스(104)가 하한값(114)보다 작은 지를 결정한다. 비교 유닛(410)은 상한값(110)이 가상 어드레스(104)보다 작은 지를 결정한다.
AND 게이트(404, 412)는 불법적인 쓰기 작동을 감지한다. AND 게이트(404)와 함께 도 1의 읽기 전용 비트(111)로 신호(402)를 저장한다. 작동이 쓰기 작동이고 읽기 전용 비트(111)가 설정된 경우, AND 게이트(404)의 출력이 나타난다. 이는 불법적인 액세스를 나타낸다. AND 게이트(412)와 함께 읽기 전용 비트(109)로 신호(402)를 저장한다. 작동이 쓰기 작동이고 읽기 전용 비트(109)가 설정된 경우, AND 게이트(412)의 출력이 나타난다. 이는 불법적인 액세스를 유사하게 나타낸다.
AND 게이트(404, 412)와 비교 유닛(406, 410)의 출력은 AND 게이트(416, 415)와 OR 게이트(408, 414, 417)를 통해 공급되어, 불법적인 액세스 신호(418)를 형성한다. 가상 어드레스(104)가 가상 어드레스 공간(202)의 상부 영역에 있고 AND 게이트(404)나 비교 회로(406)가 나타나는 경우, 불법적인 액세스 신호(418)가 나타난다. 가상 어드레스(104)가 가상 어드레스 공간(202)의 하부 영역에 있고 AND 게이트(412)나 비교 유닛(410)이 나타나면, 불법적인 액세스 신호(418)가 또한 나타난다.
OR 게이트(408)의 출력과 가상 어드레스(104)의 비트 31이 AND 게이트(416)를 통과한다는 점을 주목해보자. 이는, 가상 어드레스(104)가 가상 어드레스 공간(202)의 상부 영역에 있을 경우에만, 도 4의 회로의 상부 반을 활성화시킨다. 마찬가지로, OR 게이트(414)의 출력과 비트 31의 역은 AND 게이트(415)를 통과한다. 이는, 가상 어드레스(104)가 가상 어드레스 공간(202)의 하부에 있는 경우에, 도 4의 회로의 하부 반을 활성화시킨다.
널 포인터 영역(210)을 감지하기 위한 회로가 도시되지 않음을 주목하라. 널 포인터 영역(210)으로의 액세스는 널 포인터 영역(210)의 64K 상부 경계에 대해 가상 어드레스(104)를 비교하는 다른 비교 유닛을 사용함으로서 감지될 수 있다. 가상 어드레스(104)가 이 상부 경계 아래에 있으면, 불법적인 액세스가 나타난다. 널 포인터 영역(210)으로의 액세스가 가상 어드레스(104)의 첫 번째 16 비트를 지나 더 높은 차수의 비트를 검사함으로서 감지될 수 있다. 이 비트들이 모두 0이면, 가상 어드레스(104)는 널 포인터 영역(210) 내에 위치한다.
가상 어드레스 대신에 물리적 어드레스에 대한 경계 확인을 실행할 수 있다. 이는, 불명확한 비동기 메모리 예외에 반해 정확한 메모리 예외를 이끈다.
중복 메모리 관리 유닛
도 5는 본 발명의 실시예에 따라 명령 참조와 데이터 참조를 제공하기 위한 중복 메모리 관리 유닛을 가지는 컴퓨터 시스템을 도시한다. 이 실시예에서, CPU(102) 내의 명령 페치 유닛(502)은 MMU(506)를 통해 명령 캐쉬(510)에 연결된다. 이 경로는 명령 참조를 살핀다. 데이터 참조를 위해, CPU(102) 내의 로드 저장 유닛(504)은 MMU(508)를 통해 데이터 캐쉬(512)에 연결된다.
MMU(508)는 MMU(506)의 정확한 반복이다. 그리고, 이 MMU들은 일관된 상태를 유지한다. 이는 MMU(506)와 MMU(508)가 읽기 전용 비트(109, 111)에서 뿐 아니라, 상한값(110), 하한값(114), 베이스 어드레스(108), 그리고 베이스 어드레스(112)에서도 동일한 값을 포함하는 것을 의미한다.
본 발명의 간단한 MMU 설계는 상당한 양의 반도체 면적을 차지하지 않으면서 MMU를 반복되도록 한다. 또한, 다중 MMU를 제공하는 것은 명령 및 데이터 참조 사이에 어드레스 변환 분쟁을 감소시킨다.
어드레스 변환 과정
도 6은 본 발명의 실시예에 따라 가상 어드레스를 물리적 어드레스로 변환하는 과정을 나타내는 순서도이다. 시스템은 프로그램 명령의 페치나 실행동안 가상 어드레스(104)를 수신함으로서 시작된다(단계 602). 가상 어드레스(104)가 가상 어드레스 공간(202)의 하부와 상부 중 어느 곳에 위치하는 지를 시스템은 결정한다(단계 604). 이는 가장 큰 비트의 가상 어드레스(104)를 검사함으로서 결정될 수 있다. 비트가 나타나면, 가상 어드레스(104)는 상부 영역에 위치한다. 그렇지 않을 경우, 하부에 위치한다.
가상 어드레스(104)가 가상 어드레스 공간(202)의 하부 영역(208)에 위치한다면, 시스템은 물리적 어드레스(115)를 생성하기 위해 베이스 어드레스(108)에 가상 어드레스(104)를 더한다(단계 606). 시스템은 상한값(110)에 대해 가상 어드레스(104)를 또한 비교한다(단계 10). 가상 어드레스(104)가 상한값(110)보다 크다면, 시스템은 불법 액세스 신호(418)를 나타낸다(단계 614). 시스템은 읽기 전용 비트(109)를 또한 검사한다. 가상 어드레스 공간(202)의 하부 영역(208)이 읽기 전용이고 액세스가 저장 작용이면, 시스템은 불법 액세스 신호(418)을 또한 나타낸다(단계 618).
가상 어드레스 공간(202)의 상부 영역(204)에 가상 어드레스(104)가 위치하면, 시스템은 물리적 어드레스(115)를 생성하기 위해 베이스 어드레스(112)에 가상 어드레스(104)를 더한다(단계 608). 시스템은 하한값(114)에 대해 가상 어드레스(104)를 또한 비교한다(단계 612). 가상 어드레스(104)가 하한값(114)보다 작으면, 시스템은 불법 액세스 신호(418)를 나타낸다(단계 616). 시스템은 읽기 전용 비트(111)를 또한 검사한다. 가상 어드레스 공간(202)의 상부 영역(204)이 읽기 전용이고 액세스가 저장 작용이면, 시스템은 불법 액세스 신호(418)를 또한 나타낸다(단계 620).
상부 영역(204)과 하부 영역(208) 모두에 대해 변환 작용은 추가적이다. 상부 영역(204)이 가상 어드레스 공간(202)의 꼭대기에서 시작하기 때문에, 그리고 오프셋이 하향으로 진행되기 때문에, 상부 영역(204)의 변환은 추출 작용을 포함하여 나타날 수 있다. 그러나, 하향 오프셋이 두 보완 수식을 사용하는 애더로 구현될 수도 있다.
도 5에 도시되는 실시예에서, MMU(506)가 모두 "읽기 전용"인 명령을 조작하기 때문에, "읽기 전용"에 대한 테스트는 MMU(506)에 대한 용장도이다.
본 발명은 페이징을 불필요하게 하고, 간단한 부가 작용으로 가상-물리적 어드레스 변환 과정을 감소시킨다. 이는 프로세서 클럭 속도를 증가시키고, 컴퓨터 시스템 설계 및 제작의 비용을 크게 감소시킨다.
발명의 실시예에 대한 앞서의 기술 내용은 도시 및 기술 용도로만 제시된 것이다. 즉, 공개된 형태에 발명을 제한하고자 함이 아니다. 따라서, 수많은 수정과 변화가 당 분양에 통상의 지식을 가진 자에게 있어 명백할 것이다. 또한, 상기 공개 내용은 발명을 제한하고자 함이 아니다. 발명의 범위는 첨부된 청구범위에 의해 정해질 것이다.

Claims (20)

  1. 컴퓨터 시스템에서 가상 어드레스를 물리적 어드레스로 변환하는 방법으로서, 상기 방법은:
    프로그램 명령 페치나 실행동안 가상 어드레스를 수신하고;
    가상 어드레스 공간의 상부와 하부 중 어느 곳에 가상 어드레스가 위치하는 지를 결정하며;
    가상 어드레스가 가상 어드레스 공간의 하부 영역에 위치할 경우,
    물리적 어드레스를 생성하기 위해 제 1 베이스 어드레스에 가상 어드레스를 추가하고, 그리고
    가상 어드레스를 상한값과 비교하며,
    가상 어드레스가 상한값보다 큰 값을 가질 때, 액세스가 불법적임을 표시하고; 그리고
    가상 어드레스가 가상 어드레스 공간의 상부 영역에 위치할 경우,
    물리적 어드레스를 생성하기 위해 제 2 베이스 어드레스에 가상 어드레스를 추가하고, 그리고
    가상 어드레스를 하한값과 비교하며,
    가상 어드레스가 하한값보다 작은 값을 가질 때, 액세스가 불법적임을 표시하는; 이상의 단계로 구성되는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 방법은:
    가상 어드레스가 가상 어드레스 공간의 하부에 위치할 경우, 가상 어드레스 공간의 하부가 쓰기 액세스로부터 보호되는 지를 결정하고, 만약 보호된다면, 가상 어드레스에 쓰기 액세스를 불허하며; 그리고
    가상 어드레스가 가상 어드레스 공간의 상부에 위치할 경우, 가상 어드레스 공간의 상부가 쓰기 액세스로부터 보호되는 지를 결정하고, 만약 보호된다면, 가상 어드레스에 쓰기 액세스를 불허하는; 이상의 단계로 구성되는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 메모리에 작동 시스템이 액세스하는 동나 어드레스 변환을 불허하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 가상 어드레스 공간의 상부가 읽기 전용 라이브러리 루틴을 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 직접 메모리 액세스(DMA) 작용을 위해 컴퓨터 시스템에 캐쉬를 바이패스시키는 명령을 프로그램 명령이 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서, 상기 방법은:
    널 포인터 어드레스의 범위에 대해 가상 어드레스를 비교함으로서 널 포인터를 액세스가 널 포인터를 포함하는 지를 결정하고; 그리고
    가상 어드레스가 널 포인터 어드레스의 범위 내에 있을 경우, 액세스가 불법적임을 나타내는; 이상의 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서, 상기 방법은 마이크로프로세서 칩에 집적되는 메모리 관리 유닛 내에서 수행되는 것을 특징으로 하는 방법.
  8. 컴퓨터 시스템에서 가상 어드레스를 물리적 어드레스로 변환하는 장치로서, 상기 장치는:
    프로그램 명령의 페치나 실행 동안 가상 어드레스를 수신하는 입력;
    가상 어드레스가 가상 어드레스 공간의 하부에 위치할 경우 제 1 베이스 어드레스와 가상 어드레스의 합을 생성하고, 가상 어드레스가 가상 어드레스 공간의 상부에 위치할 경우 제 2 베이스 어드레스와 가상 어드레스의 합을 생성하는. 애더; 그리고
    가상 어드레스가 가상 어드레스 공간의 하부에 위치하고 가상 어드레스가 상한값보다 클 경우 불법적 액세스를 표시하고, 가상 어드레스가 가상 어드레스 공간의 상부에 위치하고 가상 어드레스가 하한값보다 작을 경우 불법적 액세스를 표시하는, 액세스 평가 회로;로 구성되는 것을 특징으로 하는 장치.
  9. 제 8 항에 있어서, 상기 애더는:
    제 1 베이스 어드레스에 가상 어드레스를 더하는 제 1 가산 회로;
    제 2 베이스 어드레스에 가상 어드레스를 추가하기 위한 제 2 가산 회로; 그리고
    제 1 베이스 어드레스의 출력과 제 2 베이스 어드레스의 출력 사이에서 선택하는 선택 회로;로 구성되는 것을 특징으로 장치.
  10. 제 8 항에 있어서,
    가상 어드레스 공간의 하부가 쓰기 액세스로부터 보호되는 지를 결정하도록 액세스 평가 회로가 배치되고,
    만약 보호된다면 가상 어드레스 공간의 하부에 쓰기 액세스를 불허하도록 액세스 평가 회로가 배치되며,
    가상 어드레스 공간의 상부가 쓰기 작용으로부터 보호되는 지를 결정하도록 액세스 평가 회로가 배치되고,
    만약 보호된다면 가상 어드레스 공간의 상부에 쓰기 액세스를 불허하도록 액세스 평가 회로가 배치되는 것을 특징으로 하는 장치.
  11. 제 8 항에 있어서, 메모리에 작동 시스템을 액세스하는 동안 어드레스 변환을 정지시키는 메카니즘을 추가로 포함하는 것을 특징으로 하는 장치.
  12. 제 8 항에 있어서, 가상 어드레스 공간의 상부가 읽기 전용 라이브러리 루틴을 포함하는 것을 특징으로 하는 장치.
  13. 제 8 항에 있어서, 직접 메모리 액세스(DMA) 작동을위해 컴퓨터 시스템의 캐쉬를 바이패스시키는 메카니즘을 추가로 포함하는 것을 특징으로 하는 장치.
  14. 제 8 항에 있어서, 널 포인터 어드레스의 범위에 대해 가상 어드레스를 비교함으로서 액세스가 널 포인터를 포함하는 지를 결정하기 위해 액세스 평가 회로가 배치되고,
    가상 어드레스가 널 포인터 어드레스의 범위 내에 있을 때, 액세스가 불법임을 표시하는 것을 특징으로 하는 장치.
  15. 제 8 항에 있어서, 상기 장치는 마이크로프로세서 칩에 집적되는 것을 특징으로 하는 장치.
  16. 컴퓨터 시스템에서 가상 어드레스를 물리적 어드레스로 변환하는 장치로서, 상기 장치는 한 개의 입력, 한 개의 애더, 그리고 한 개의 액세스 평가 회로로 구성되고,
    상기 입력은 프로그램 명령의 페치나 실행동안 가상 어드레스를 수신하고,
    가상 어드레스가 가상 어드레스 공간의 하부에 위치할 경우, 상기 애더는 가상 어드레스와 제 1 베이스 어드레스의 합을 생성하고, 가사 어드레스가 가상 어드레스 공간의 상부에 위치할 경우, 상기 애더는 가상 어드레스와 제 2 베이스 어드레스의 합을 생성하며,
    상기 애더는 제 1 가산 회로, 제 2 가산 회로, 선택 회로를 포함하고,
    상기 제 1 가산 회로는 제 1 베이스 어드레스에 가상 어드레스를 가산하며,
    상기 제 2 가산 회로는 제 2 베이스 어드레스에 가상 어드레스를 가산하고,
    상기 선택 회로는 제 1 가산 회로의 출력과 제 2 가산 회로의 출력 사이에서 선택하며,
    가상 어드레스가 가상 어드레스 공간의 하부에 위치하고 가상 어드레스가 상한값보다 클 경우, 상기 액세스 평가 회로는 불법적인 액세스를 나타내고,
    가상 어드레스가 가상 어드레스 공간의 상부에 위치하고 가상 어드레스가 하한값보다 작을 경우, 상기 액세스 평가 회로는 불법적인 액세스를 나타내며,
    가상 어드레스 공간의 하부가 쓰기 액세스로부터 보호되는 지를 결정하도록 상기 액세스 평가 회로가 배치되고,
    만약 보호된다면 가상 어드레스 공간의 하부에 쓰기 액세스를 불허하도록 상기 액세스 평가 회로가 배치되며,
    가상 어드레스 공간의 상부가 쓰기 액세스로부터 보호되는 지를 결정하도록 상기 액세스 평가 회로가 배치되고,
    만약 보호된다면 가상 어드레스 공간의 상부에 쓰기 액세스를 불허하도록 상기 액세스 평가 회로가 배치되는 것을 특징으로 하는 장치.
  17. 제 16 항에 있어서, 가상 어드레스를 널 포인터 어드레스의 범위에 대해 비교함으로서 액세스가 널 포인터를 포함하는 지를 결정하기 위해, 액세스 평가 회로가 배치되고, 가상 어드레스가 널 포인터 어드레스의 범위 내에 있으면, 액세스가 불법적임을 나타내는 것을 특징으로 하는 장치.
  18. 하나의 컴퓨터 시스템으로서, 상기 컴퓨터 시스템은 중앙 처리 장치, 메인 메모리, 그리고 제 1 메모리 관리 유닛으로 구성되고,
    상기 메모리 관리 유닛은 중앙 처리 장치와 메인 메모리 사이에 연결되어, 가상 어드레스를 물리적 어드레스로 변환하며,
    상기 제1 메모리 관리 유닛은 애더와 액세스 평가 회로로 구성되고,
    상기 애더는, 가상 어드레스가 가상 어드레스 공간의 하부에 위치할 경우, 제 1 베이스 어드레스와 가상 어드레스의 합을 생성하고,
    상기 애더는, 가상 어드레스가 가상 어드레스 공간의 상부에 위치할 경우, 제 2 베이스 어드레스와 가상 어드레스의 합을 생성하며,
    상기 액세스 평가 회로는, 가상 어드레스가 가상 어드레스 공간의 하부에 위치하고 가상 어드레스가 상한값보다 큰 값을 가질 경우, 불법적 액세스임을 표시하고,
    상기 액세스 평가 회로는, 가사 어드레스가 가상 어드레스 공간의 상부에 위치하고 가상 어드레스가 하한값보다 작은 값을 가질 경우, 불법적 액세스임을 표시하는 것을 특징으로 하는 컴퓨터 시스템.
  19. 제 18 항에 있어서, 상기 컴퓨터 시스템은 중앙 처리 장치와 메인 메모리 사이에 연결되는 캐쉬 메모리를 추가로 포함하고,
    상기 제 1 메모리 관리 유닛은 중앙 처리 장치와 캐쉬 메모리 사이에 연결되는 것을 특징으로 하는 컴퓨터 시스템.
  20. 제 18 항에 있어서, 상기 컴퓨터 시스템은 명령 캐쉬, 데이터 캐쉬, 그리고 제 2 메모리 관리 유닛을 포함하고,
    상기 명령 캐쉬는 중앙 처리 장치와 메인 메모리 사이에 연결되며,
    상기 데이터 캐쉬는 중앙 처리 장치와 메인 메모리 사이에 연결되고,
    상기 제 2 메모리 관리 유닛은 제 1 메모리 관리 유닛과 동일하게 배치되며,
    상기 제 1 메모리 관리 유닛은 중앙 처리 장치와 명령 캐쉬 사이에 연결되고, 제 2 메모리 관리 유닛은 중앙 처리 장치와 데이터 캐쉬 사이에 연결되어, 제 1 메모리 관리 유닛이 명령 액세스를 위한 변환을 수행하고, 상기 제 2 메모리 관리 유닛이 데이터 액세스를 위한 변환을 수행하는 것을 특징으로 하는 컴퓨터 시스템.
KR1020000006731A 1999-03-05 2000-02-14 어드레스 변환 장치 및 방법 KR100705171B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/263,704 1999-03-05
US9/263,704 1999-03-05
US09/263,704 US6233667B1 (en) 1999-03-05 1999-03-05 Method and apparatus for a high-performance embedded memory management unit

Publications (2)

Publication Number Publication Date
KR20000076653A true KR20000076653A (ko) 2000-12-26
KR100705171B1 KR100705171B1 (ko) 2007-04-06

Family

ID=23002909

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000006731A KR100705171B1 (ko) 1999-03-05 2000-02-14 어드레스 변환 장치 및 방법

Country Status (5)

Country Link
US (1) US6233667B1 (ko)
EP (1) EP1035475B1 (ko)
JP (1) JP4499237B2 (ko)
KR (1) KR100705171B1 (ko)
DE (1) DE60039380D1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100497671B1 (ko) * 2002-07-08 2005-07-25 주식회사 인터와이즈 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템
KR100858237B1 (ko) * 2006-11-07 2008-09-12 주식회사 안철수연구소 Tlb를 이용한 메모리 접근 제어 방법
KR20200019670A (ko) * 2017-06-19 2020-02-24 에이알엠 리미티드 한계 확인

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567897B2 (en) * 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US6826671B2 (en) * 2001-10-09 2004-11-30 Sun Microsystems, Inc. Method and device for a context-based memory management system
JP2004334410A (ja) * 2003-05-06 2004-11-25 Hitachi Ltd 情報処理装置及びプロセッサ
US7685389B2 (en) * 2005-10-21 2010-03-23 International Business Machines Corporation Apparatus, system, and method for setting protection states of protected partitions in storage media
US7694096B2 (en) * 2005-10-21 2010-04-06 International Business Machines Corporation Apparatus, system, and method for implementing protected partitions in storage media
US7631161B2 (en) * 2005-10-21 2009-12-08 International Business Machines Corporation Apparatus, system, and method for writing data to protected partitions of storage media
TWI421685B (zh) * 2007-10-16 2014-01-01 Mstar Semiconductor Inc 記憶裝置之定址裝置及方法
JP5473841B2 (ja) * 2010-09-08 2014-04-16 三菱重工業株式会社 中央処理演算装置、及び異常検査方法
JP5464676B2 (ja) * 2012-04-25 2014-04-09 ルネサスエレクトロニクス株式会社 半導体装置
KR20140085756A (ko) * 2012-12-27 2014-07-08 에스케이하이닉스 주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
KR102002900B1 (ko) 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
US9767044B2 (en) * 2013-09-24 2017-09-19 Intel Corporation Secure memory repartitioning
CN104657193B (zh) * 2013-11-21 2018-07-20 华为技术有限公司 一种访问物理资源的方法和装置
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US9921897B2 (en) 2016-01-06 2018-03-20 International Business Machines Corporation Testing a non-core MMU
US10402252B1 (en) * 2016-03-30 2019-09-03 Amazon Technologies, Inc. Alternative event reporting for peripheral devices
US10325341B2 (en) 2017-04-21 2019-06-18 Intel Corporation Handling pipeline submissions across many compute units
US10268596B2 (en) * 2017-04-21 2019-04-23 Intel Corporation Memory access compression using clear code for tile pixels
CN109426739B (zh) * 2017-09-01 2020-10-30 龙芯中科技术有限公司 处理器和空指针攻击检测方法
CN117389912B (zh) * 2023-12-04 2024-03-22 深流微智能科技(深圳)有限公司 地址空间的扩展方法、地址转换器、设备及介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5140772B2 (ko) 1971-07-26 1976-11-05
JPS5821303B2 (ja) * 1975-12-27 1983-04-28 横河電機株式会社 デ−タシヨリソウチ
JPS621048A (ja) * 1985-06-04 1987-01-07 Nec Corp 仮想記憶システム
US4837738A (en) * 1986-11-05 1989-06-06 Honeywell Information Systems Inc. Address boundary detector
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
JPH03144751A (ja) * 1989-10-30 1991-06-20 Casio Comput Co Ltd メモリ誤書き込み防止装置
US5420993A (en) * 1991-06-13 1995-05-30 Unisys Corporation Extended address translation system for pointer updating in paged memory systems
US5687342A (en) 1991-09-18 1997-11-11 Ncr Corporation Memory range detector and translator
US5509131A (en) * 1991-10-22 1996-04-16 Unisys Corporation System for pointer updating across paged memory
US5901246A (en) * 1995-06-06 1999-05-04 Hoffberg; Steven M. Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US6081750A (en) * 1991-12-23 2000-06-27 Hoffberg; Steven Mark Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US5555395A (en) * 1993-05-28 1996-09-10 Dell U.S.A. L.P. System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
US5446854A (en) * 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
US5623636A (en) 1993-11-09 1997-04-22 Motorola Inc. Data processing system and method for providing memory access protection using transparent translation registers and default attribute bits
JP3456768B2 (ja) * 1994-09-28 2003-10-14 株式会社東芝 アドレス変換装置
JP3451595B2 (ja) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5696927A (en) * 1995-12-21 1997-12-09 Advanced Micro Devices, Inc. Memory paging system and method including compressed page mapping hierarchy
FR2766597B1 (fr) 1997-07-23 2004-01-09 Inside Technologies Microprocesseur comportant un chemin d'adresses securise

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100497671B1 (ko) * 2002-07-08 2005-07-25 주식회사 인터와이즈 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템
KR100858237B1 (ko) * 2006-11-07 2008-09-12 주식회사 안철수연구소 Tlb를 이용한 메모리 접근 제어 방법
KR20200019670A (ko) * 2017-06-19 2020-02-24 에이알엠 리미티드 한계 확인

Also Published As

Publication number Publication date
JP4499237B2 (ja) 2010-07-07
DE60039380D1 (de) 2008-08-21
EP1035475B1 (en) 2008-07-09
KR100705171B1 (ko) 2007-04-06
US6233667B1 (en) 2001-05-15
EP1035475A1 (en) 2000-09-13
JP2000276397A (ja) 2000-10-06

Similar Documents

Publication Publication Date Title
KR100705171B1 (ko) 어드레스 변환 장치 및 방법
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US5752275A (en) Translation look-aside buffer including a single page size translation unit
US7089398B2 (en) Address translation using a page size tag
US6321314B1 (en) Method and apparatus for restricting memory access
US5319760A (en) Translation buffer for virtual machines with address space match
US5247639A (en) Microprocessor having cache bypass signal terminal
US6523104B2 (en) Mechanism for programmable modification of memory mapping granularity
US5440710A (en) Emulation of segment bounds checking using paging with sub-page validity
EP2537097B1 (en) Storing secure mode page table data in secure and non-secure regions of memory
US5412787A (en) Two-level TLB having the second level TLB implemented in cache tag RAMs
US4695950A (en) Fast two-level dynamic address translation method and means
EP1471421A1 (en) Speculative load instruction control
JPH08320829A (ja) データ処理装置
JPS6184756A (ja) メモリアクセス制御装置
JPH07191903A (ja) データ処理システムおよび動作方法
US7269825B1 (en) Method and system for relative address translation
EP3746899B1 (en) Controlling guard tag checking in memory accesses
KR910001314B1 (ko) 데이타 처리 시스템에서의 가상 메모리 사용방법
JP2000330867A (ja) 直接および仮想アドレス指定を備えたディジタル信号プロセッサー
US5414821A (en) Method of and apparatus for rapidly loading addressing environment by checking and loading multiple registers using a specialized instruction
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
US6324635B1 (en) Method and apparatus for address paging emulation
KR960008320B1 (ko) 어드레스 변환장치 및 어드레스 변환방법
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: 20130305

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160303

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 13