맨위로가기

변환 색인 버퍼

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

변환 색인 버퍼(TLB)는 CPU가 가상 주소를 물리 주소로 변환하는 데 사용되는 메모리 캐시이다. TLB는 컴퓨터 아키텍처 발전과 함께 개선되어 왔으며, 다층 구조, 주소 공간 식별자(ASID) 도입 등 복잡하고 효율적인 방식으로 발전했다. TLB는 CPU의 메모리 접근 속도를 향상시키지만, TLB 미스가 발생하면 페이지 테이블을 참조해야 하므로 성능 저하를 초래한다. TLB는 컨텍스트 스위치 및 가상화 환경에서 중요하며, TLB의 종류와 성능에 미치는 영향, TLB 미스 처리 방식, 그리고 TLB 슈트다운에 대해 설명한다.

더 읽어볼만한 페이지

  • 가상 메모리 - 메모리 관리 장치
    메모리 관리 장치(MMU)는 가상 주소를 물리 주소로 변환하여 메모리 접근을 관리하고 보호하는 하드웨어 장치로서, 가상 메모리 시스템에서 독립적인 가상 주소 공간을 제공하고 불법적인 메모리 접근을 차단하며, 페이지 테이블을 통해 외부 단편화 문제를 완화하고 트랜슬레이션 룩어사이드 버퍼(TLB)로 주소 변환 속도를 향상시킨다.
  • 가상 메모리 - 가상 주소 공간
    가상 주소 공간은 운영 체제가 프로세스에 제공하는 논리적인 메모리 공간으로, 실제 물리 메모리 주소와 독립적으로 관리되며, 프로세스는 이 공간을 통해 실행 파일, DLL 파일, 페이지 파일 등을 매핑하고 메모리를 할당받는다.
  • 중앙 처리 장치 - 마이크로컨트롤러
    마이크로컨트롤러는 프로세서, 메모리, 입출력 기능을 단일 칩에 통합하여 임베디드 시스템의 핵심이 되는 부품으로, 프로그램 내장 방식을 통해 소프트웨어만으로 제어 기능 변경이 가능하며, 현재는 32비트 ARM, MIPS 아키텍처 기반 제품이 주를 이루고, 저전력 소모, 소형화, 다양한 기능 통합을 특징으로 다양한 분야에서 활용된다.
  • 중앙 처리 장치 - NX 비트
    NX 비트는 하드웨어 기반 보안 기능으로, 메모리 페이지의 실행 권한을 제어하여 특정 영역에서 코드 실행을 막아 버퍼 오버플로 공격과 같은 보안 위협을 줄이는 데 사용되며, AMD에서 처음 도입 후 다양한 프로세서와 운영체제에서 DEP 등의 이름으로 구현되었다.
  • 컴퓨터 메모리 - 플래시 메모리
    플래시 메모리는 전기적으로 데이터의 쓰기 및 삭제가 가능한 비휘발성 메모리 기술로, 마스오카 후지오 박사가 발명하여 카메라 플래시와 유사한 소거 방식으로 인해 명명되었으며, NOR형과 NAND형으로 나뉘어 각기 다른 분야에 적용된다.
  • 컴퓨터 메모리 - 메모리 계층 구조
    메모리 계층 구조는 CPU 데이터 접근 속도 향상을 위해 레지스터, 캐시, RAM, 보조 기억 장치 등으로 구성되며, 속도, 용량, 비용이 다른 계층들을 통해 효율적인 메모리 관리를 가능하게 한다.
변환 색인 버퍼
기본 정보
종류CPU 캐시, 가상 메모리 시스템
작동 방식최근에 사용한 페이지 테이블 항목을 저장하여 메모리 접근 속도 향상
상세 정보
설명페이지 테이블 항목을 저장하는 캐시
역할가상 주소를 실제 주소로 변환하는 속도 향상
작동 원리CPU가 메모리 접근 시 TLB에서 해당 주소 정보 검색, 없을 경우 페이지 테이블에서 찾아 TLB에 저장
특징TLB 히트 시 빠른 접근, 미스 시 성능 저하
캐시와 유사한 구조
활용대부분의 현대 CPU에서 사용

2. 역사

페이지 테이블의 일부 항목을 미리 저장하는 캐시 메모리의 일종인 TLB는 컴퓨터 아키텍처의 발전과 함께 지속적으로 개선되어 왔다. 초기 TLB는 단순한 구조를 가졌지만, 현대 TLB는 다층 구조, 주소 공간 식별자(ASID) 도입 등 더 복잡하고 효율적인 방식으로 발전하였다.

3. 작동 방식

373x373px


TLB는 페이지 테이블 항목과 세그먼트 테이블 항목을 포함하는 고정된 수의 슬롯을 가지고 있다. 페이지 테이블 항목은 가상 주소를 물리 주소 및 중간 테이블 주소에 매핑하고, 세그먼트 테이블 항목은 가상 주소를 세그먼트 주소, 중간 테이블 주소 및 페이지 테이블 주소에 매핑한다. 가상 메모리는 프로세스에서 보이는 메모리 공간으로, 고정 크기의 페이지 (페이징된 메모리) 또는 가변 크기의 세그먼트 (세분화된 메모리)로 나뉜다.

페이지 테이블은 주로 주 메모리에 저장되며, 가상 페이지가 물리적 메모리에 저장되는 위치를 추적한다. 이 방법은 바이트에 접근하기 위해 두 번의 메모리 접근(페이지 테이블 항목, 바이트)을 필요로 한다. 먼저 페이지 테이블에서 프레임 번호를 찾고, 페이지 오프셋과 프레임 번호를 결합하여 실제 주소를 얻는다. 따라서 가상 메모리 체계는 메모리 접근 시간을 두 배로 늘리는 효과가 있어, TLB를 사용하여 메모리 접근 시간을 줄인다.

TLB는 빠른 조회 하드웨어 캐시로, 각 항목은 태그와 값으로 구성된다. 가상 주소의 태그가 TLB의 태그와 일치하면(TLB 히트) 해당 값이 반환된다. TLB 조회는 명령어 파이프라인의 일부이므로 빠르며 성능 저하가 거의 없다. 그러나 TLB는 작아야 한다.

물리 주소 캐시에서는 캐시 접근과 병렬로 TLB 조회를 수행하는 것이 일반적이다. 각 가상 메모리 참조 시 하드웨어는 페이지 번호가 TLB에 있는지 확인한다. TLB 히트 시 변환이 이루어지고 프레임 번호로 메모리에 접근한다. 페이지 번호가 TLB에 없으면(TLB 미스) 페이지 테이블을 확인해야 한다. CPU에 따라 하드웨어나 운영 체제 인터럽트를 통해 수행될 수 있다. 프레임 번호 획득 후 메모리에 접근하고, 페이지 번호와 프레임 번호를 TLB에 추가하여 다음 참조를 빠르게 한다. TLB가 가득 찬 경우, '가장 최근 사용(LRU)', '선입선출(FIFO)' 등의 교체 방법을 사용한다.

하버드 아키텍처 또는 수정된 하버드 아키텍처에서는 명령어와 데이터에 대해 별도의 가상 주소 공간이나 메모리 접근 하드웨어가 있을 수 있다. 이는 ''명령어 변환 검색 버퍼''(ITLB) 및 ''데이터 변환 검색 버퍼''(DTLB)로 이어질 수 있으며, 별도 TLB는 다양한 이점을 가진다.[4]

3. 1. TLB의 구성 요소

TLB는 고정된 수의 슬롯을 가지며, 가상 주소에서 물리 주소로의 변환을 위한 페이지 테이블 항목을 포함한다. TLB는 페이지 테이블의 캐시 역할을 하며, 페이지 테이블 내용의 일부만 저장한다.

TLB는 일반적으로 태그와 값의 두 부분으로 구성된다. 태그는 가상 주소의 일부를 포함하며, 값은 해당 가상 주소에 대응하는 물리 주소 또는 페이지 프레임 번호를 포함한다.

TLB와 물리적 인덱스 물리적 태그 방식 캐시의 구성 예


TLB에는 물리 메모리 주소가 저장된다. TLB는 CPU와 캐시 메모리 사이, 캐시와 주 기억 장치 사이, 또는 여러 단계의 캐시 사이에 위치할 수 있다. 이는 캐시가 가상 주소를 사용하는지, 물리 주소를 사용하는지에 따라 결정된다. 하버드 아키텍처나 그 계열의 경우, 명령과 데이터에 대해 별도의 TLB가 필요할 수 있다.

3. 2. TLB 미스 처리

현대 아키텍처에서 TLB 미스는 크게 세 가지 방식으로 처리된다.

  • 하드웨어 관리 TLB: CPU가 자동으로 페이지 테이블을 탐색하여 유효한 변환 정보를 찾는다. 예를 들어, x86 아키텍처에서는 CR3 레지스터를 사용한다.[11] 유효한 항목이 발견되면, 해당 정보를 TLB에 가져와 TLB 접근을 다시 시도하여 적중(hit)시킨다. CPU가 페이지 테이블에서 유효한 항목을 찾지 못하면 페이지 폴트 예외를 발생시켜 운영 체제가 처리하도록 한다. 페이지 폴트 처리는 보통 요청된 데이터를 물리적 메모리로 가져오고, 페이지 테이블을 수정하여 가상 주소를 올바른 물리 주소에 매핑한 후, 프로그램을 다시 시작하는 과정을 포함한다.[11] 하드웨어 관리 TLB를 사용하면 TLB 항목의 형식이 소프트웨어에 노출되지 않으므로, 운영 체제의 호환성을 유지하면서 CPU를 변경(최적화)할 수 있다.[11]

  • 소프트웨어 관리 TLB: TLB 미스가 발생하면 ''TLB 미스'' 예외가 발생하고, 운영 체제가 페이지 테이블을 탐색하여 적절한 페이지 테이블 항목을 찾는다.[11] 그런 다음 운영 체제는 해당 항목의 정보를 TLB에 로드하고, TLB 미스를 발생시킨 명령부터 프로그램을 다시 시작한다. 하드웨어 관리 TLB와 마찬가지로, 운영 체제가 페이지 테이블에서 유효한 변환을 찾지 못하면 페이지 폴트가 발생하며, 운영 체제가 이를 처리해야 한다.[11] 소프트웨어 관리 TLB를 사용하는 CPU의 명령어 집합에는 TLB의 모든 슬롯에 항목을 로드할 수 있는 명령어가 있으며, TLB 항목의 형식은 명령어 집합 아키텍처(ISA)의 일부로 정의된다.[11]

  • 펌웨어 관리 TLB: TLB 미스가 발생하면 시스템 펌웨어로 트랩이 발생하고, 펌웨어가 페이지 테이블을 탐색하여 적절한 페이지 테이블 항목을 찾는다.[11] 이는 소프트웨어 관리 TLB의 TLB 미스 처리기와 유사하다. 펌웨어 관리 TLB를 사용하면 TLB 항목의 형식이 시스템 소프트웨어에 표시되지 않으므로, 운영 체제에 대한 호환성을 유지하면서 CPU를 변경할 수 있다.[11]


각 방식에 따른 주요 CPU 아키텍처는 다음과 같다.

TLB 관리 방식CPU 아키텍처 예시
소프트웨어 관리 TLBMIPS 아키텍처[12], SPARC V9 아키텍처 (일부 구현)[13], UltraSPARC 아키텍처[14]
하드웨어 관리 TLBx86, SPARC V9 아키텍처 (일부 구현)[13]
소프트웨어/하드웨어 관리 TLB 선택 가능Itanium 아키텍처[15]
펌웨어 관리 TLBAlpha 아키텍처[16] (운영 체제 대신 PALcode|PAL코드영어 사용)


4. TLB의 종류

CPU는 명령어와 데이터를 위해 별도의 TLB를 가질 수 있는데, 이를 각각 명령어 TLB (ITLB)와 데이터 TLB (DTLB)라고 부른다. 이는 하버드 아키텍처 또는 수정된 하버드 아키텍처에서 흔히 볼 수 있는 구조이다.[4] 인텔 네할렘 마이크로아키텍처는 4KiB 페이지용 64개 항목과 2/4MiB 페이지용 32개 항목을 가진 4방향 집합 연관 L1 DTLB, 4방향 연관성을 사용하는 4KiB 페이지용 128개 항목과 2/4MiB 페이지용 14개의 완전 연관 항목을 가진 L1 ITLB (ITLB의 두 부분이 두 스레드 간에 정적으로 분할됨)[7], 그리고 4방향 연관인 4KiB 페이지용 통합 512개 항목 L2 TLB를 가지고 있다.[8][9]

TLB는 여러 레벨로 구성될 수 있다. 예를 들어, L1 TLB는 매우 작고 빠르지만, L2 TLB는 더 크고 느릴 수 있다. CPU는 여러 개의 TLB를 가질 수 있으며, 명령어 TLB (ITLB)와 데이터 TLB (DTLB)가 사용될 때 CPU는 세 개 (ITLB1, DTLB1, TLB2) 또는 네 개의 TLB를 가질 수 있다.

일부 TLB는 작은 페이지와 큰 페이지에 대한 별도의 섹션을 가질 수 있다. 인텔 스카이레이크 마이크로아키텍처는 1GiB 페이지에 대한 TLB 항목을 4KiB/2MiB 페이지의 항목과 분리한다.[10]

5. 성능에 미치는 영향

TLB(변환 색인 버퍼, Translation Lookaside Buffer)는 페이지 테이블의 일부 항목을 저장하는 캐시 역할을 하여 가상 주소를 물리 주소로 변환하는 속도를 높인다. TLB 히트(hit)는 메모리 접근 시간을 단축시켜 시스템 성능 향상에 기여한다.

TLB는 각 항목마다 태그와 값으로 구성되어 있다. 가상 주소의 태그가 TLB 내 태그와 일치하면 해당 값을 반환하는 방식으로 작동한다.[3] TLB 조회는 명령어 파이프라인의 일부로 빠르게 수행되므로 성능 저하는 거의 발생하지 않는다.

하지만 TLB 미스(miss)는 페이지 테이블 접근을 필요로 하므로 성능 저하를 유발한다. CPU는 페이지 테이블에서 해당 항목을 찾아 프레임 번호를 얻고, 이를 통해 물리 주소를 생성하여 메모리에 접근한다.[6] 이 과정은 여러 번의 메모리 접근을 필요로 하므로 시간이 오래 걸린다.

TLB가 가득 차면 새로운 항목을 저장하기 위해 기존 항목을 교체해야 한다. 이때 ''가장 최근 사용''(LRU), ''선입선출''(FIFO) 등 다양한 교체 방법이 사용된다.
TLB 스래싱(thrashing) 은 빈번한 TLB 미스를 발생시켜 성능을 크게 저하시키는 현상이다. 이는 작업 집합이 TLB 크기보다 커서 자주 사용되는 페이지 정보가 TLB에서 밀려나기 때문에 발생한다. TLB 스래싱은 명령어 캐시나 데이터 캐시 스래싱과 유사하게 작동하며, 심지어 명령어와 데이터 작업 집합이 캐시에 들어맞더라도 발생할 수 있다. 이는 주소 조회가 페이지 단위로 수행되기 때문이다.

TLB의 일반적인 성능 수준은 다음과 같다.[17]

항목
크기12비트 – 4,096개 항목
적중 시간0.5 – 1 클럭 사이클
미스 페널티10 – 100 클럭 사이클
미스율0.01 – 1% (희소/그래프 애플리케이션의 경우 20–40%)



TLB 적중에는 1 클럭 사이클, 미스에는 30 클럭 사이클이 걸리고, 미스율이 1%라고 가정하면, 유효 메모리 접근 시간은 평균 31.29 클럭 사이클이 된다.[18]

6. 컨텍스트 스위치와 TLB

컨텍스트 스위치(프로세스 간 전환, 스레드 간 전환 아님)가 발생하면 가상 주소 공간이 변경되므로, 가상 주소와 물리 주소 간 매핑이 달라져 일부 변환 색인 버퍼(TLB) 항목은 무효화될 수 있다. 초기에는 이 문제를 해결하기 위해 TLB 전체를 플러시하는 간단한 전략을 사용했다. 이 방식은 전환 후 TLB가 비어있게 되어 모든 메모리 참조가 실패하고, TLB가 다시 채워질 때까지 성능 저하를 유발했다.[19]

최근 CPU는 각 TLB 항목이 어떤 프로세스에 속하는지 표시하는 더 효율적인 전략을 사용한다. 이를 통해 짧은 시간 동안 다른 프로세스가 실행된 후 원래 프로세스로 복귀할 때, TLB에 여전히 유효한 항목이 남아있을 수 있어 재로딩 시간을 절약할 수 있다.[19]

컨텍스트 전환 시 TLB 플러싱을 피하는 다른 전략으로는 단일 주소 공간 운영 체제에서 모든 프로세스에 동일한 가상-물리 매핑을 사용하거나, CPU에 프로세스 ID 레지스터를 두어 현재 프로세스 ID와 일치하는 TLB 항목만 사용하도록 하는 방법이 있다.

예를 들어, 알파 21264는 각 TLB 항목에 주소 공간 번호(ASN)를 태그로 지정하고, 현재 작업과 일치하는 ASN을 가진 TLB 항목만 유효한 것으로 간주한다. 인텔 펜티엄 프로는 CR4 레지스터의 페이지 글로벌 활성화(PGE) 플래그와 페이지 디렉토리 또는 페이지 테이블 항목의 글로벌(G) 플래그를 사용하여, 자주 사용되는 페이지의 TLB 항목이 작업 전환 시 자동으로 무효화되는 것을 방지한다. 2010년 웨스트미어 마이크로아키텍처 인텔 64 프로세서는 12비트 프로세스 컨텍스트 식별자(PCID)를 지원하여 여러 선형 주소 공간에 대한 TLB 항목을 유지하고, 현재 PCID와 일치하는 항목만 주소 변환에 사용한다.[20][21]

인텔 80386의 TLB와 같이 일부 하드웨어 TLB는 주소 공간 전환 시 전체 TLB 플러시만 가능하지만, 인텔 80486 및 이후 x86 프로세서, ARM 프로세서의 TLB와 같이 가상 주소로 인덱싱된 TLB에서 개별 항목을 플러시하는 것을 허용하는 하드웨어 TLB도 있다.

TLB 플러싱은 프로세스 간 메모리 격리를 위한 중요한 보안 메커니즘으로, 한 프로세스가 다른 프로세스의 메모리 페이지에 저장된 데이터에 접근하지 못하도록 보장한다. 메모리 격리는 특히 권한을 가진 운영 체제 커널 프로세스와 사용자 프로세스 간 전환 시 중요하며, 멜트다운 보안 취약점에서 강조되었다. 커널 페이지 테이블 격리(KPTI)와 같은 완화 전략은 성능에 영향을 주는 TLB 플러시에 크게 의존하며, PCID와 같은 하드웨어 지원 선택적 TLB 항목 관리를 통해 큰 이점을 얻는다.[22]

7. 가상화와 TLB

가상화 환경에서 변환 색인 버퍼(TLB)는 가상 머신의 성능에 중요한 영향을 미친다. x86 아키텍처는 가상화를 지원하기 위해 TLB를 개선해왔다. 과거에는 x86의 TLB 항목이 특정 주소 공간과 연결되지 않아, 컨텍스트 전환 시 전체 TLB를 플러시해야 했다. x86 TLB는 하드웨어로 관리되며 낮은 지연 시간으로 작동하도록 설계되어, TLB 항목에 주소 공간을 식별하는 태그를 도입하기 어려웠다.[23][24] 2008년, 인텔네할렘에서[25], AMD는 SVM에서[26] TLB 항목에 태그를 도입하고 조회 시 해당 태그를 확인하는 하드웨어를 도입했다. 모든 운영 체제가 이러한 태그를 즉시 사용하지는 않았지만, 리눅스 4.14 버전부터는 최근 사용된 주소 공간 식별을 위해 이를 활용하기 시작했다.[27]

8. TLB 슈트다운

멀티프로세싱 환경에서 특정 가상 주소를 무효화할 때, 해당 가상 주소에서 가져올 수 있는 TLB 엔트리를 모든 CPU에서 무효화하는 처리이다.[42] 일반적인 아키텍처에서는 여러 CPU에 걸쳐 TLB 관리를 지원하지 않기 때문에 필요하다.

TLB 슈트다운은 TLB 관리 처리 중에서도 부하가 높고, 멀티프로세싱 시스템의 성능에 영향을 미치기 쉽다. 이는 가상 메모리 측에서 무효한 주소가 TLB에 남아있는 상태가 TLB의 사양상 허용되지 않고, 그러한 상태를 만들어서는 안 되기 때문이다. 이 요구는 가상 메모리에서 유효한 주소가 TLB에 존재하지 않는 상태가 허용되는 것과는 대조적이다. 이 요구를 충족하기 위해 다른 CPU에서도 유효할 수 있는 가상 주소를 무효화하면 즉시 TLB 슈트다운을 시작하고, 해당되는 모든 CPU에서 TLB를 무효화할 때까지 다른 처리를 하지 않도록 구현하는 것이 일반적이다. 이 "다른 처리"에는 인터럽트 처리도 포함되므로 인터럽트 금지가 필요하며, 응답 지연 등의 부작용이 발생한다. 또한, TLB 슈트다운은 그 대상이 되는 CPU가 모두 동기적으로 처리해야 하므로, 어떤 이유로든 인터럽트를 금지하고 있는 CPU가 있으면 그로 인한 지연이 그대로 TLB 슈트다운의 처리 시간에 더해진다. 이 외에도, TLB 슈트다운과 TLB 미스가 경합하는 경우의 대처 등도 필요하므로, TLB 슈트다운의 구현은 성능과 완전성의 양립이 요구되며, 외부 간섭의 영향을 받기 쉬운 어려운 문제가 된다. 특히, 멀티코어 등으로 병렬도를 극단적으로 높인 시스템에서는 TLB 슈트다운의 존재가 시스템 전체의 성능을 강하게 제한하는 경우가 있다.

IBM System/370이나 ARM 아키텍처 등, 아키텍처가 TLB 슈트다운을 지원하는 경우에는, 어느 하나의 CPU에서 특정 가상 주소의 TLB를 무효화하는 것만으로 다른 CPU에서도 같은 가상 주소에서 가져올 수 있는 TLB를 투명하게 무효화할 수 있다. 이 경우, 소프트웨어 측의 구현은 간단해지지만, 모든 CPU에서의 동기 처리나 TLB 미스와의 경합 등 본질적으로 어려운 문제는 아키텍처 측에서 해결해야 한다.

참조

[1] 간행물 Operating Systems: Three Easy Pieces [Chapter: Faster Translations (TLBs)] http://pages.cs.wisc[...] Arpaci-Dusseau Books 2014
[2] 논문 The PowerPC 604 RISC Microprocessor http://users.ece.gat[...] 1994-10
[3] 서적 Operating Systems Concepts https://archive.org/[...] John Wiley & Sons. INC
[4] 논문 A Simulation Based Study of TLB Performance
[5] 서적 Operating Systems: Internals and Design Principles Pearson
[6] 서적 Fundamentals of Parallel Multicore Architecture Taylor & Francis Group
[7] 웹사이트 Inside Nehalem: Intel's Future Processor and System http://www.realworld[...] Real World Technologies
[8] 웹사이트 Intel Core i7 (Nehalem): Architecture By AMD? http://www.tomshardw[...] Tom's Hardware 2008-10-14
[9] 웹사이트 Inside Nehalem: Intel's Future Processor and System http://www.realworld[...] Real World Technologies
[10] 웹사이트 Runtime Performance Optimization Blueprint: Intel® Architecture Optimization with Large Code Pages https://www.intel.co[...] 2019-11-01
[11] 문서 Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design) Morgan Kaufmann Publishers Inc.
[12] 웹사이트 MIPS r2000/r3000 Architecture http://www.eecs.harv[...]
[13] 서적 The SPARC Architecture Manual, Version 9 http://sparc.org/tec[...] PTR Prentice Hall
[14] 서적 UltraSPARC Architecture 2005 http://www.oracle.co[...] Sun Microsystems
[15] 문서 Virtual Memory in the IA-64 Kernel > Translation Lookaside Buffer http://www.informit.[...]
[16] 서적 Alpha Architecture Handbook http://h18000.www1.h[...] Compaq Computer Corporation
[17] 서적 Computer Organization And Design. Hardware/Software interface. 4th edition Morgan Kaufmann Publishers
[18] 웹사이트 Translation Lookaside Buffer (TLB) in Paging https://www.geeksfor[...] 2019-02-26
[19] 뉴스 Memory part 3: Virtual Memory https://lwn.net/Arti[...] LWN.net 2014-10-09
[20] 웹사이트 Westmere Arrives https://www.realworl[...] Real World Tech 2010-03-17
[21] 서적 Intel 64 and IA-32 Architectures Software Developer's Manual https://software.int[...]
[22] 웹사이트 PCID is now a critical performance/security feature on x86 https://groups.googl[...] 2018-01-08
[23] 논문 Intel Virtualization Technology for Directed I/O
[24] 문서 AMD Secure Virtual Machine Architecture Reference Manual
[25] 논문 Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization
[26] 문서 AMD Secure Virtual Machine Architecture Reference Manual
[27] 웹사이트 Longer-lived TLB Entries with PCID https://kernelnewbie[...] 2017-12-30
[28] 웹사이트 Inside Nehalem: Intel's Future Processor and System http://www.realworld[...] Real World Technologies 2012-03-17
[29] 웹사이트 Intel Core i7 (Nehalem): Architecture By AMD? http://www.tomshardw[...] Tom's Hardware 2010-11-24
[30] 웹사이트 Inside Nehalem: Intel's Future Processor and System http://www.realworld[...] Real World Technologies 2010-11-24
[31] 문서 Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design) Morgan Kaufmann Publishers Inc.
[32] 웹사이트 MIPS r2000/r3000 Architecture http://www.eecs.harv[...] 2008-11-16
[33] 서적 The SPARC Architecture Manual, Version 9 http://www.sparc.org[...] PTR Prentice Hall
[34] 서적 UltraSPARC Architecture 2005 http://docs.huihoo.c[...] Sun Microsystems
[35] 문서 Virtual Memory in the IA-64 Kernel > Translation Lookaside Buffer http://www.informit.[...]
[36] 매뉴얼 Alpha Architecture Handbook http://h18000.www1.h[...] Compaq Computer Corporation
[37] 서적 Computer Organization And Design. Hardware/Software interface. 4th edition Morgan Kaufmann Publishers
[38] 논문 Intel Virtualization Technology for Directed I/O Intel Technology Journal
[39] 간행물 AMD Secure Virtual Machine Architecture Reference Manual Advanced Micro Devices 2008
[40] 논문 Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization Intel Technology Journal
[41] 간행물 Secure Virtual Machine Architecture Reference Manual Advanced Micro Devices 2008
[42] 서적 最前線UNIXのカーネル ピアソン・エデュケーション 2000-05-15
[43] 웹인용 Operating Systems: Three Easy Pieces [Chapter: Faster Translations (TLBs)] http://pages.cs.wisc[...] Arpaci-Dusseau Books 2014



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com