KR20160008217A - 크로스-페이지 프리페칭 방법, 장치, 및 시스템 - Google Patents
크로스-페이지 프리페칭 방법, 장치, 및 시스템 Download PDFInfo
- Publication number
- KR20160008217A KR20160008217A KR1020157034158A KR20157034158A KR20160008217A KR 20160008217 A KR20160008217 A KR 20160008217A KR 1020157034158 A KR1020157034158 A KR 1020157034158A KR 20157034158 A KR20157034158 A KR 20157034158A KR 20160008217 A KR20160008217 A KR 20160008217A
- Authority
- KR
- South Korea
- Prior art keywords
- page
- physical
- address
- virtual
- prefetching
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- 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/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- 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/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
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
본 발명의 실시예는 크로스-페이지 프리페칭 방법, 장치, 및 시스템을 제공하며, 프리페칭 장치의 프리페칭 히트율을 향상시키고, 또한 메모리 액세스의 효율을 향상시킬 수 있다. 본 방법은, 캐시에 의해 전송된, 맵핑되는 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하는, 물리 어드레스가 누락되어 있다는 지시 메시지를 수신하는 단계; 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하는 단계; 및 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서, 제1 물리 페이지가 연속적인 것으로 판정되면, 프리페칭 어드레스에 있는 데이터를 프리페치하는 단계를 포함한다. 본 발명은 컴퓨터 분야에 적용될 수 있다.
Description
본 출원은 2013년 5월 2일에 중국 특허청에 출원된 중국 특허 출원 제201310159064.1호 ('크로스-페이지 프리페칭 방법, 장치, 및 시스템')의 우선권을 주장하며 이것은 그 전체가 참조로서 본 명세서 포함된다.
본 발명은 컴퓨터 분야에 관한 것으로, 구체적으로는 크로스-페이지 프리페칭(cross-page prefetching) 방법, 장치, 및 시스템에 관한 것이다.
시대의 발전에 따라 CPU(Central Precessing Unit)와 메모리 사이의 성능 차이가 점차 증가되고 있다. 메모리 액세스의 지연을 감소시키기 위해, 예를 들어 파이프라인이나 멀티스레딩(multithreading)의 사용과 같이 다양한 기술들이 개발되었다.
데이터 프리페칭은, 프로세서가 메모리를 액세스하기 전에, 그 다음에 요구되는 데이터 A를 메모리로부터 미리 페치하여 캐시(Cache) 내에 저장하는 방법이다. 그 후, CPU가 A를 액세스하는 경우, A가 이미 캐시 내에 존재하기 때문에 액세스가 직접 수행될 수 있으며, 이것은 CPU가 메모리를 액세스할 때 A를 탐색함으로써 기인하는 지연을 감소시킬 수 있다.
명령에서 사용된 어드레스 또는 실행 과정 중에 응용 프로그램에 의해 호출되는 데이터는 모두 가상 어드레스(virtual address)이다. 메모리로부터 대응되는 명령이나 데이터를 액세스하기 위해, 가상 어드레스는 대응되는 물리 어드레스(physical address)에 맵핑될 필요가 있다. 그러나, 가상 어드레스와 물리 어드레스 사이의 변환을 실행하는 과정에서, 연속되는 가상 페이지들이 연속되는 물리 페이지에 맵핑될 수 있거나, 또는 연속되지 않은 물리 페이지에 맵핑될 수 있다.
크로스-페이지 프리페칭이 수행될 필요가 있는 것으로 판정하는 경우, 기존의 프리페칭 장치는 프리페칭을 중단하며, 이것은 연속되는 가상 페이지가 연속되지 않은 물리 페이지에 맵핑되는 경우 무효한(invalid) 크로스-페이지 프리페칭을 방지할 수 있다. 그러나, 가상 페이지에 맵핑되는 50% 내지 70%의 물리 페이지는 실제로 연속되지 않는다. 즉, 판정된 프리페칭 어드레스는 유효하다(valid). 종래에 따른 방법에 기초하여, 무효한 크로스-페이지 프리페칭이 금지되는 경우, 유효한 크로스-페이지 프리페칭 또한 금지될 수 있으며, 이로 인해 프리페칭 장치의 프리페칭 히트율(hit ratio)이 낮아지고, 메모리 액세스 효율이 더 줄어든다.
본 발명의 실시예는 크로스-페이지 프리페칭 방법, 장치, 및 시스템을 제공하고, 이는 프리페칭 장치의 프리페칭 히트율을 향상시킬 수 있으며, 또한 메모리 액세스 효율을 향상시킬 수 있다.
전술한 목적을 달성하기 위해, 다음의 기술적 해결수단은 본 발명의 실시예에서 채택된다.
제1 측면에 따르면, 크로프-페이지 프리페칭 방법이 제공되며, 이 방법은,
캐시에 의해 전송된, 물리 어드레스가 누락(miss)되어 있다는 지시 메시지를 수신하는 단계 - 상기 지시 메시지는 맵핑되는 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보(contiguity information)를 운반하고, 상기 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함함 -;
상기 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하는 단계; 및
상기 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 상이하고, 상기 제1 물리 페이지의 상기 연속 정보에 따라서 상기 제1 물리 페이지가 연속적인 것으로 판정되면,
상기 프리페칭 어드레스에 있는 데이터를 프리페치하는 단계를 포함한다.
제1 측면에 따른 제1 가능한 구현 예에서, 상기 캐시에 의해 전송된, 물리 어드레스가 누락(miss)되어 있다는 지시 메시지를 수신하는 단계 후에,
상기 제1 물리 어드레스에 대응되고, 상기 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블에 있는 엔트리 내에, 상기 지시 메시지를 통해 운반되는, 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 저장하는 단계를 더 포함한다.
제1 측면에 따른 제2 가능한 구현 예에서, 상기 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하는 단계 전에,
압축 알고리즘과 상기 제1 물리 어드레스에 따라서 상기 제1 물리 어드레스의 제1 인덱스 정보를 획득하는 단계;
상기 제1 인덱스 정보에 대응되며 상기 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 매칭되는 경우, 상기 프리페칭 장치의 프리페칭 메커니즘의 훈련이 완료되는지의 여부를 판단하는 단계;
상기 프리페칭 메커니즘의 훈련이 완료되는 경우, 상기 프리페칭 어드레스를 획득하는 단계를 실행하는 단계; 및
상기 제1 인덱스 정보에 대응되며 상기 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 상기 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 매칭되지 않는 경우, 상기 제1 물리 페이지의 페이지 번호와 상기 제1 물리 페이지의 상기 연속 정보를 상기 제1 인덱스 정보에 대응되며 상기 프리페칭 정보 테이블 내에 있는 상기 엔트리 내에 저장하는 단계를 포함한다.
제2 가능한 구현 예에 따른 제3 가능 구현 예에서, 상기 제1 물리 어드레스의 상기 제1 인덱스 정보는 구체적으로,
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 페이지 번호;
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 페이지 번호의 압축값; 및
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 페이지 번호의 해시값 중 적어도 하나를 포함한다.
제2 측면에 따르면, 크로스-페이지 프리페칭 방법이 제공되며, 이 방법은,
메모리 공간의 용량 정보를 운반하는, 상기 메모리 공간을 나타내는(apply for) 제1 지시 메시지를 수신하는 단계;
상기 메모리 공간의 상기 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당하는 단계;
상기 가상 메모리 공간과 상기 물리 메모리 공간 사이의 맵핑 관계를 구축하는 단계 - 상기 맵핑 관계는, 상기 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 및 상기 제1 물리 페이지의 연속 정보를 포함하고, 상기 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지가 상기 제1 물리 어드레스에 의해 맵핑되는 상기 제1 가상 어드레스를 포함함 -; 및
메모리가 상기 맵핑 관계를 저장할 수 있도록, 상기 맵핑 관계를 상기 메모리에게 전송하는 단계를 포함한다.
제3 측면에 따르면, 크로스-페이지 프리페칭 방법이 제공되며, 이 방법은,
메모리가, 제1 가상 어드레스에 따라서, 변환 색인 버퍼(translation lookaside buffer, TLB)에게 상기 제1 가상 어드레스에 대응되는 맵핑 관계를 전송할 수 있도록, 상기 제1 가상 어드레스를 운반하는 제2 지시 메시지를 상기 메모리로 전송하는 단계 - 상기 맵핑 관계는 상기 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 및 상기 제1 물리 페이지의 연속 정보를 포함하고, 상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 상기 제1 가상 어드레스를 포함함 -;
상기 메모리에 의해 전송된 상기 맵핑 관계를 수신하는 단계;
상기 맵핑 관계에 따라서, 상기 제1 가상 어드레스에 대응되는 상기 제1 물리 어드레스를 획득하는 단계; 및
상기 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 캐시에게 전송하는 단계를 포함한다.
제4 측면에 따르면, 크로스-페이지 프리페칭 방법이 제공되며, 이 방법은,
변환 색인 버퍼(translation lookaside buffe, TLB)에 의해 전송된, 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 수신하는 단계 - 상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 제1 가상 어드레스를 포함함 -;
캐시가 상기 제1 물리 어드레스의 데이터를 저장하지 않은 경우, 프로세서가 메모리로부터 상기 제1 물리 어드레스의 데이터를 획득할 수 있도록, 상기 제1 물리 어드레스를 상기 메모리에게 전송하는 단계; 및
물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하는 단계
를 포함하고,
상기 지시 메시지는, 상기 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 운반한다.
제5 측면에 따르면, 프리페칭 장치가 제공되며, 이 프리페칭 장치는 수신 유닛, 획득 유닛, 및 프리페칭 유닛을 포함하고,
상기 수신 유닛은, 캐시에 의해 전송된, 물리 어드레스가 누락되어 있다는 지시 메시지를 수신하도록 구성되고, 상기 지시 메시지는 맵핑되는 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며, 상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함하며,
상기 획득 유닛은, 상기 제1 물리 어드레스와 상기 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하도록 구성되며,
상기 프리페칭 유닛은, 상기 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 상이하고, 상기 제1 물리 페이지의 상기 연속 정보에 따라서 상기 제1 물리 페이지가 연속적인 것으로 판정되면, 상기 프리페칭 어드레스에 있는 데이터를 프리페치하도록 구성된다.
제5 측면에 따른 제1 가능한 구현 예에서, 상기 프리페칭 장치는 저장 유닛을 더 포함하고; 그리고
상기 저장 유닛은, 상기 캐시에 의해 전송된, 물리 어드레스가 누락되어 있다는 상기 지시 메시지를 수신한 후에, 상기 제1 물리 어드레스에 대응되고 상기 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블에 있는 엔트리 내에, 상기 지시 메시지를 통해 운반되며 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 저장하도록 구성된다.
제5 측면에 따른 제2 가능한 구현 예에서,
상기 프리페칭 장치는 판단 유닛, 실행 유닛, 및 저장 유닛을 더 포함하고,
상기 획득 유닛은, 상기 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하기 전에, 압축 알고리즘과 상기 제1 물리 어드레스에 따라서 상기 제1 물리 어드레스의 제1 인덱스 정보를 획득하도록 구성되며,
상기 판단 유닛은, 상기 제1 인덱스 정보에 대응되며 상기 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 매칭되는 경우, 상기 프리페칭 장치의 프리페칭 메커니즘의 훈련이 완료되는지의 여부를 판단하도록 구성되고,
상기 실행 유닛은, 상기 프리페칭 메커니즘의 훈련이 완료되는 경우, 프리페칭 어드레스를 획득하는 동작을 실행하도록 구성되며,
상기 저장 유닛은, 상기 제1 인덱스 정보에 대응되며 상기 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 상기 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 매칭되지 않는 경우, 상기 제1 물리 페이지의 페이지 번호와 상기 제1 물리 페이지의 상기 연속 정보를 상기 제1 인덱스 정보에 대응되며 상기 프리페칭 정보 테이블 내에 있는 상기 엔트리 내에 저장하도록 구성된다.
제3 가능한 구현예에서, 상기 제1 물리 어드레스의 상기 제1 인덱스 정보는 구체적으로,
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 페이지 번호;
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 페이지 번호의 압축값; 및
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 페이지 번호의 해시값 중 적어도 하나를 포함한다.
제6 측면에 따르면, 프로세서가 제공되고, 이 프로세서는 수신 유닛, 할당 유닛, 구축 유닛, 및 전송 유닛을 포함하고,
상기 수신 유닛은, 메모리 공간의 용량 정보를 운반하는, 상기 메모리 공간을 나타내는 제1 지시 메시지를 수신하도록 구성되며;
상기 할당 유닛은, 상기 메모리 공간의 상기 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당하도록 구성되고;
상기 구축 유닛은, 상기 가상 메모리 공간과 상기 물리 메모리 공간 사이의 맵핑 관계를 구축하도록 구성되며,
상기 맵핑 관계는, 상기 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 및 상기 제1 물리 페이지의 연속 정보를 포함하고, 상기 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지와 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 상기 제1 가상 어드레스를 포함하며,
상기 전송 유닛은 메모리가 상기 맵핑 관계를 저장할 수 있도록, 상기 맵핑 관계를 상기 메모리에게 전송하도록 구성된다.
제7 측면에 따르면, 변환 색인 버퍼(TLB)가 제공되고, 이 TLB는 제1 전송 유닛, 수신 유닛, 획득 유닛, 및 제2 전송 유닛을 포함하고,
상기 제1 전송 유닛은, 제1 가상 어드레스에 따라서, 메모리가 상기 변환 색인 버퍼(TLB)에게 상기 제1 가상 어드레스에 대응되는 맵핑 관계를 전송할 수 있도록, 상기 제1 가상 어드레스를 운반하는 제2 지시 메시지를 상기 메모리에게 전송하도록 구성되며,
상기 맵핑 관계는 상기 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 및 상기 제1 물리 페이지의 연속 정보를 포함하고, 상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지와 연속적인지의 여부를 지시하는 데 사용되며, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 상기 제1 가상 어드레스를 포함하고,
상기 수신 유닛은, 상기 메모리에 의해 전송된 상기 맵핑 관계를 수신하도록 구성되며,
상기 획득 유닛은, 상기 맵핑 관계에 따라서, 상기 제1 가상 어드레스에 대응되는 상기 제1 물리 어드레스를 획득하도록 구성되고,
상기 제2 전송 유닛은 상기 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 캐시에게 전송하도록 구성된다.
제8 측면에 따르면, 캐시가 제공되고, 이 캐시는 수신 유닛, 제1 전송 유닛, 및 제2 전송 유닛을 포함하고,
상기 수신 유닛은, 변환 색인 버퍼(translation lookaside buffe, TLB)에 의해 전송되는, 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 수신하도록 구성되며,
상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 제1 가상 어드레스를 포함하며;
상기 제1 전송 유닛은, 상기 캐시가 상기 제1 물리 어드레스의 데이터를 저장하지 않은 경우, 프로세서가 메모리로부터 상기 제1 물리 어드레스의 데이터를 획득할 수 있도록, 상기 제1 물리 어드레스를 상기 메모리에게 전송하도록 구성되고,
상기 제2 전송 유닛은 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하도록 구성되며,
상기 지시 메시지는 상기 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 운반한다.
제9 측면에 따르면, 크로스-페이지 프리페칭 시스템이 제공되고, 이 크로스-페이지 프리페칭 시스템은 메모리, 제9 측면에 따른 프리페칭 장치, 제6 측면에 따른 프로세서, 제7 측면에 따른 변환 색인 버퍼(TLB), 및 제8 측면에 따른 캐시를 포함한다.
본 발명의 실시예는 크로스-페이지 프리페칭 방법, 장치, 및 시스템을 제공한다. 이 방법은: 프로세서가, 메모리 공간을 나타내는 제1 지시 메시지를 수신하는 단계; 프로세서가, 제1 지시 메시지를 통해 운반된 메모리 공간의 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당하는 단계; 프로세서가, 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 페이지인 제1 물리 페이지의 페이지 번호, 및 제1 물리 페이지의 연속 정보를 포함하는, 가상 메모리 공간과 물리 메모리 공간 사이의 맵핑 관계를 구축하는 단계 - 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 제1 가상 페이지가 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함함 -; 및 마지막으로, 프로세서가, 맵핑 관계를 메모리에게 전송하는 단계를 포함한다. 이러한 방식으로, 변환 색인 버퍼(TLB)가, 제1 가상 어드레스에 대응되는 맵핑 관계가 누락되어 있다는 제2 지시 메시지를 메모리에게 전송하는 경우, TLB가 제1 물리 페이지의 연속 정보를 포함하는 맵핑 관계를 수신할 수 있도록, 메모리가 제1 물리 페이지의 연속 정보를 포함하고 제1 가상 어드레스에 대응되는 맵핑 관계를 TLB에게 전송할 수 있으며, 제1 가상 어드레스와 제1 물리 어드레스 사이의 변환이 완료된 후, TLB가 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 캐시에게 전송한다. 이러한 방식으로, 물리 어드레스가 캐시에서 누락되어 있는 경우, 프리페칭 메커니즘의 훈련이 완료되고 프리페칭 장치가 프리페칭 어드레스를 획득한 후, 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서, 제1 물리 페이지가 연속적인 것으로 판정되면, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있다. 따라서, 본 발명은 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
본 발명의 실시예 또는 종래 기술에서의 기술적 해결수단을 더욱 명확히 기술하기 위해, 이하에서 그 실시예 또는 종래 기술을 설명할 때 필요한 첨부 도면을 간략하게 소개한다. 분명한 것은, 이어질 설명에서 첨부된 도면은 단지 본 발명의 몇 가지 실시예를 나타내며, 통상의 기술자라면 첨부된 도면으로부터 창작 능력 없이도 다른 도면을 도출해 낼 수 있다는 것이다.
도 1은 프리페칭 장치 내의 프리페칭 구조의 개략 구성도이다.
도 2는 본 발명의 실시예에 따른 크로스-페이지 프리페칭 방법이다.
도 3은 본 발명의 실시예에 따른 프리페칭 메커니즘을 훈련하기 위한 방법이다.
도 4는 본 발명의 실시예에 따른 다른 크로스-페이지 프리페칭 방법이다.
도 5는 본 발명의 실시예에 따른 또 다른 크로스-페이지 프리페칭 방법이다.
도 6은 본 발명의 실시예에 따른 또 다른 크로스-페이지 프리페칭 방법이다.
도 7은 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템이다.
도 8은 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템에 있는 프로세서와 메모리의 상호 연동 구성도이다.
도 9a 및 도 9b는 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템에 있는 메모리, 변환 색인 버퍼, 캐시, 및 프리페칭 장치의 상호 연동 구성도이다.
도 10은 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템 내의 프리페칭 장치의 작업 흐름도이다.
도 11은 크로스-페이지 프리페칭의 예를 나타낸 개략 흐름도이다.
도 12는 본 발명의 실시예에 따른 프리페칭 장치이다.
도 13은 본 발명의 실시예에 따른 다른 프리페칭 장치이다.
도 14는 본 발명의 실시예에 따른 또 다른 프리페칭 장치이다.
도 15는 본 발명의 실시예에 따른 프로세서이다.
도 16은 본 발명의 실시예에 따른 변환 색인 버퍼이다.
도 17은 본 발명의 실시예에 따른 캐시이다.
도 18은 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템이다.
도 1은 프리페칭 장치 내의 프리페칭 구조의 개략 구성도이다.
도 2는 본 발명의 실시예에 따른 크로스-페이지 프리페칭 방법이다.
도 3은 본 발명의 실시예에 따른 프리페칭 메커니즘을 훈련하기 위한 방법이다.
도 4는 본 발명의 실시예에 따른 다른 크로스-페이지 프리페칭 방법이다.
도 5는 본 발명의 실시예에 따른 또 다른 크로스-페이지 프리페칭 방법이다.
도 6은 본 발명의 실시예에 따른 또 다른 크로스-페이지 프리페칭 방법이다.
도 7은 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템이다.
도 8은 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템에 있는 프로세서와 메모리의 상호 연동 구성도이다.
도 9a 및 도 9b는 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템에 있는 메모리, 변환 색인 버퍼, 캐시, 및 프리페칭 장치의 상호 연동 구성도이다.
도 10은 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템 내의 프리페칭 장치의 작업 흐름도이다.
도 11은 크로스-페이지 프리페칭의 예를 나타낸 개략 흐름도이다.
도 12는 본 발명의 실시예에 따른 프리페칭 장치이다.
도 13은 본 발명의 실시예에 따른 다른 프리페칭 장치이다.
도 14는 본 발명의 실시예에 따른 또 다른 프리페칭 장치이다.
도 15는 본 발명의 실시예에 따른 프로세서이다.
도 16은 본 발명의 실시예에 따른 변환 색인 버퍼이다.
도 17은 본 발명의 실시예에 따른 캐시이다.
도 18은 본 발명의 실시예에 따른 크로스-페이지 프리페칭 시스템이다.
이하에서는 본 발명의 실시예에 관한 첨부 도면을 참조하여 본 발명의 실시예의 기술적 해결 수단을 명확하고 상세하게 기술한다. 분명한 것은, 여기 기술된 실시예는 단지 본 발명의 실시예의 일부이며 전부가 아니라는 것이다. 본 발명의 실시예에 기초하여 창작 노력 없이 통상의 기술자에 의해 획득되는 다른 모든 실시예는 본 발명의 보호 범위 내에 포함될 것이다.
프로세서에 의해 명령을 실행하거나 또는 데이터를 획득하는 속도를 개선하기 위해, 프리페칭 기술이 일반적으로 종래 기술에서 사용되며 프로세서에 의해 실행될 명령 또는 프로세서에 의해 획득될 데이터를 메모리로부터 미리 프리페치하여, 캐시 내에 그 명령이나 데이터를 저장한다. 이 프리페칭 기술은 소프트웨어 프리페칭 및 하드웨어 프리페칭으로 분류될 수 있다.
데이터 프리페칭이 소프트웨어를 사용하여 수행되는 경우, 프리페칭 명령은 프로그램 코드에 명시적으로 추가될 필요가 있고 그 후에 사용될 데이터는 명시적으로 프리페치될 필요가 있다.
프리페칭이 하드웨어를 사용하여 수행되는 경우, 프리페칭은 전용 하드웨어에 의해서 구현된다. 하드웨어는, 훈련에 의해서, 현재의 페치 어드레스의 상태와 이전의 페치 어드레스의 상태에 따라서 "프리페칭 메커니즘"의 집합을 획득한다. 그 후, 프리페칭 장치는, 계산에 의해서, "프리페칭 메커니즘"을 사용하고 현재의 페치 어드레스를 참조하여 프리페칭 어드레스를 획득함으로써, 메모리로부터, 프리페칭 어드레스에 있는 데이터를 미리 프리페칭하고 그 프리페칭 어드레스에 있는 데이터를 캐시 내에 저장할 수 있다. 이 과정은 프로그래머 또는 컴파일러(compiler)에게 투명적이다. 도 1은 자주 사용되는 프리페칭 구조이다.
프리페칭 구조가 별도로 분리된 현재의 페치 어드레스(current fetch address), 이전의 페치 어드레스(previous fetch address), 및 프리페칭 어드레스(prefetching address)인 3개의 어드레스를 포함하는 것을 도 1로부터 알 수 있다. 또한, 프리페칭 구조는 스텝 사이즈(step size)와 프리페칭 장치의 프리페칭 상태에 대한 정보를 더 저장한다. 프리페칭 어드레스가 획득되는 경우, 현재의 페치 어드레스와 이전의 페치 어드레스가 스텝 사이즈를 획득하기 위해 먼저 비교된다. 계산된 스텝 사이즈와 스텝 사이즈 유닛에 이전에 저장된 스텝 사이즈가 비교된다. 계산된 스텝 사이즈가 스텝 사이즈 유닛에 이전에 저장된 스텝 사이즈와 일치하는 경우, 프리페칭 어드레스는, 프리페칭 어드레스=이전의 페치 어드레스+스텝 사이즈의 관계에 따라서 계산되어 획득되고; 계산된 스텝 사이즈가 스텝 사이즈 유닛에 이전에 저장된 스텝 사이즈와 일치하지 않는 경우, 스텝 사이즈와 상태는 적절하게 업데이트된다.
주목해야 하는 점은, 프리페칭이 물리 어드레스에 기초한 프리페칭과 가상 어드레스에 기초한 프리페칭으로 분류된다는 점이다. 프리페칭 장치가 가상 어드레스에 기초하여 프리페칭을 수행하는 경우, 크로스-페이지 프리페칭은 가상 어드레스의 연속성에 의해 유효하다. 그러나, 가상 어드레스에 기초한 프리페칭에서, 색인 변환 버퍼(Translation lookaside buffer, TLB)는 가상-물리 변환을 수행하기 위해 탐색될 필요가 있으며, 이로 인해 성능의 대가를 부담하게 된다. 따라서, 본 명세서에 포함된 프리페칭은 물리 어드레스에 기초한 하드웨어 프리페칭이고, 가상 어드레스에 기초한 프리페칭은 본 명세서 내에서 기술하지 않는다.
제1
실시예
본 발명의 실시예는 크로스-페이지 프리페칭 방법을 제공한다. 특히 도 2에 도시된 바와 같이, 본 방법은 다음 단계를 포함한다:
단계 201. 캐시에 의해 전송된, 매핑되는 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보(contiguity information)를 운반하는, 물리 어드레스가 누락(miss)되어 있다는 지시 메시지를 수신하고, 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 제1 가상 페이지가 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
주목해야 하는 점은, 일반적으로, 프로세서가 캐시로부터 명령 또는 데이터를 히트하지 못한 경우, 명령 또는 데이터를 판독하는 속도를 향상시키기 위해서, 캐시는 일반적으로 프로세서에 의해서 액세스되는 명령 또는 데이터의 저장 어드레스에 따라서 메모리로부터 대응되는 명령 또는 데이터를 획득하고, 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치로 전송하며, 프로세서에 의해 액세스될 다음의 명령 또는 다음의 데이터를 메모리로부터 프리페치하도록 프리페칭 장치에게 명령하고, 그리고 프로세서에 의해 액세스될 다음의 명령 또는 다음의 데이터를 캐시 내에 저장한다는 점이다.
프리페칭 장치는, 제1 물리 어드레스에 대응되며 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블 내에 있는 엔트리 내에, 지시 메시지를 통해 운반되며 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 저장할 수 있다.
엔트리의 양을 줄이기 위해서, 제1 물리 어드레스가 프리페칭 장치의 프리페칭 정보 테이블 내에 인덱스 방식으로 저장될 수 있다는 것은 명백하다. 물리 어드레스가 누락되어 있다는 지시 메시지를 수신한 후에, 프리페칭 장치는 먼저 프리페칭 장치의 프리페칭 정보 테이블 내에 저장된 물리 어드레스의 인덱스 방식과 인덱스 알고리즘에 따라서 제1 물리 어드레스에 대응되는 제1 인덱스 정보를 획득한 후, 프리페칭 장치에 저장된 프리페칭 정보 테이블 내에 포함된 제1 인덱스 정보를 탐색하여, 제1 물리 어드레스의 관련 엔트리를 추가로 획득한다. 제1 인덱스 정보는 구체적으로 다음의 정보: 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호의 압축값(compression value), 및 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호의 해시값(hash value) 중 적어도 하나를 포함할 수 있다.
예를 들면 A, 제1 인덱스 정보는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호의 압축값이다:
페치 어드레스가 32비트를 가지며 한 페이지의 크기가 4kb인 것을 가정한다. 즉, 페치 어드레스의 하이(high) 20 비트는 페이지 번호이고, 페치 어드레스의 로우(low) 12 비트는 페이지 오프셋(page offset)인 것을 가정한다. 예를 들면, 제1 물리 어드레스(이진수로 표현됨)가:
1010,1010,1010,1010,1010,0011,0011,0011인 경우,
페이지 번호는 1010,1010,1010,1010,1010이고,
페이지 오프셋은 0011,0011,0011이다.
페이지 번호가 제1 인덱스 정보로서 사용되는 경우, 프리페칭 장치에 저장된 인덱스 정보의 엔트리 양은 2^20이다.
페이지 번호의 몇몇 비트는 압축 알고리즘을 사용하여 페치될 수 있으며 인덱스 정보로서 사용될 수 있다. 예를 들면, 프리페칭 장치에 저장된 인덱스 정보의 엔트리의 양이 단지 128인 경우, 페이지 번호의 첫 번째 7비트가 압축 알고리즘을 사용하여 인덱스 값으로서 사용된다. 즉, 1010101이 페치되어 인덱스 정보로서 사용된다.
예를 들면 B, 제1 인덱스 정보는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호의 해시값이다:
해시값이 공식(1)에 따라서 계산되는 것을 가정한다:
인덱스=물리 페이지의 페이지 번호 % 128 (여기서 %는 REM 동작을 나타냄)(공식 1)
페치 어드레스(이진수로 표현됨)가
1010,1010,1010,1010,1010,0011,0011,0011인 경우,
페이지 번호는 10진수로 변환된 후의 699050과 동일한 1010,1010,1010,1010,1010이다.
공식(1)에 따라서,
인덱스=6990505 % 128=42이다.
즉, 인덱스 정보는 2진수로 표현되는 경우 101010과 동일한 42이다.
본 발명의 실시예는 단순히 제1 인덱스 정보의 여러 표현 방법을 예시적으로 표현한 것이다. 제1 인덱스 정보가 다른 방식으로 추가로 저장할 수 있다는 것은 명백하며, 이것은 본 발명의 본 실시예에서 구체적으로 한정되지는 않는다.
구체적으로, 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블에 있는 엔트리 내에 포함된 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭될 수 없는 경우, 프리페칭 장치는 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 엔트리 내에 저장하고, 프리페칭 메커니즘의 훈련을 다시 수행한다.
예를 들면, 물리 어드레스가 누락되어 있다는 현재 수신된 지시 메시지를 통해 제1 물리 어드레스가 A+B(여기서 A는 물리 페이지 번호를 나타내고 B는 페이지 오프셋을 나타냄)라는 것을 가정하면, 제1 인덱스 정보 M이 인덱스 알고리즘에 따라서 획득된 후, M에 대응되는 엔트리 내에서 물리 페이지의 페이지 번호가 A와 매칭되지 않는 것이 발견되는 경우, M에 대응되는 엔트리 내에 있는 물리 페이지의 페이지 번호가 A로 업데이트되고, 동시에, 물리 페이지의 연속 정보가 업데이트되며, 스텝 사이즈가 0으로 설정되고, 프리페칭 상태는 초기 상태로 업데이트되며, A+B가 이전의 페치 어드레스 엔트리 내에 기록되고, 프리페칭 메커니즘의 훈련이 다시 수행된다.
그러나, 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블 내에 있는 엔트리에서 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭되지만 프리페칭 메커니즘의 훈련이 완료될 수 없는 경우, 프리페칭 메커니즘의 훈련만이 연속적으로 수행될 필요가 있으며, 이것은 프리페칭 장치의 스텝 사이즈, 프리페칭 상태, 및 이전의 페치 어드레스와 같은 정보에 대한 업데이트를 수행하는 것을 포함하지만, 본 발명에서는 그에 대해 일일이 열거하지 않는다.
예를 들면, 전술한 예를 사용하여 계속 설명하면, 프리페칭 장치에 의해 새로 수신된 물리 어드레스가 누락되어 있는 것을 나타내는 지시 메시지를 통해 운반되는 제1 물리 어드레스가 A+B+1(여기서 A는 물리 페이지 번호이고 B+1은 페이지 오프셋임)인 것을 가정하면, 제1 인덱스 정보 M이 인덱스 알고리즘에 따라서 획득된 후, M에 대응되는 제1 엔트리 내의 물리 페이지 번호가 A와 매칭되는 것이 발견되는 경우, 1의 스텝 사이즈가 계산에 의해 얻어지고, 프리페칭 상태는 준비 상태로 갱신되며, 이전의 페치 어드레스는 A+B+1로 업데이트되고, 프리페칭 메커니즘의 훈련이 연속적으로 수행된다.
단계 202. 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득한다.
구체적으로, 단계 301의 설명 부분을 참조하면, 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블에 있는 엔트리 내에서 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭되고, 프리페칭 메커니즘의 훈련이 완료되는 경우, 프리페칭 장치가 프리페칭 장치에 저장된 제1 물리 어드레스와 스텝 사이즈에 따라서 프리페칭 어드레스를 획득할 수 있다.
프리페칭 메커니즘을 훈련하는 과정이 도 3에 도시될 수 있으며, 다음의 단계를 포함한다:
단계 301. 캐시에 의해 전송된, 물리 어드레스가 누락되어 있다는, 지시 메시지를 수신하며, 그 지시 메시지는 매핑된 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하고, 그 중 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
단계 302. 압축 알고리즘과 제1 물리 어드레스에 따라서 제1 물리 어드레스의 제1 인덱스 정보를 획득한다.
단계 303. 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블에 있는 엔트리 내에 포함된 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭되지 않는 경우, 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블에 있는 엔트리 내에 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 저장한다.
구체적으로, 프리페칭 정보 테이블은 프리페칭 장치에 저장된다.
프리페칭 장치의 프리페칭 메커니즘이 훈련을 시작하였기 때문에, 단계 301이 수행된다. 즉, 물리 어드레스가 누락되어 있다는 새로운 지시 메시지가 수신되고, 프리페칭 메커니즘의 훈련이 수행된다.
단계 304. 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블에 있는 엔트리 내에 포함된 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭되는 경우, 프리페칭 장치의 프리페칭 메커니즘의 훈련이 완료되는지의 여부를 판단한다.
단계 305. 프리페칭 메커니즘이 완료되는 경우, 프리페칭 장치에 저장되어 있는 제1 물리 어드레스와 스텝 사이즈에 따라서 프리페칭 어드레스를 획득한다.
프리페칭 메커니즘의 훈련이 완료되지 않은 경우, 단계 301이 수행되어, 프리페칭 메커니즘의 훈련이 완료될 때까지 프리페칭 메커니즘의 훈련이 연속적으로수행될 수 있도록 물리 어드레스가 누락되어 있다는 지시 메시지가 연속적으로 수신된다는 것은 명백하다.
주목해야 하는 점은, 단계 201의 설명 부분에 포함된, 프리페칭 메커니즘의 훈련이 완료되지 않은 두 가지 경우에 대해, 프리페칭 장치는 프리페칭 어드레스를 생성할 수 없으며, 이것은 본 발명의 본 실시예의 설명 범위 내에 포함되지 않는다.
주목해야 하는 점은, 프리페칭 장치에 저장된 제1 물리 어드레스와 스텝 사이즈에 따라서 프리페칭 어드레스를 생성하는 전술한 방법은 단지 예시적인 설명이고, 프리페칭 어드레스를 획득하기 위한 다른 방법이 종래 기술에서 존재할 수 있다는 것이다. 통상의 기술자라면 종래 기술에서 프리페칭 어드레스를 획득하기 위한 또 다른 방법을 이해할 것이며, 이것은 본 발명의 본 실시예에서 일일이 기술되지 않는다.
단계 203. 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서 제1 물리 페이지가 연속적인 것으로 판정되는 경우, 프리페칭 어드레스에 있는 데이터를 프리페치한다.
구체적으로, 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이한 경우, 프리페칭 어드레스가 페이지를 크로스(cross)하는 것을 지시하고, 제1 물리 페이지가 연속적이라는 것이 제1 물리 페이지의 연속 정보에 따라서 판정된 후, 프리페칭 어드레스에 있는 데이터가 프리페치될 수 있다.
주목해야 하는 점은, 본 방법은 크로스-페이지 프리페칭 방법이고, 따라서, 프리페칭 어드레스가 페이지를 크로스하는 경우만이 토의될 것이며, 프리페칭 어드레스가 페이지를 크로스하지 않는 프리페칭 방법은 본 발명의 본 실시예에서 토의되지 않는다는 점이다.
본 발명의 본 실시예에 따르면, 프리페칭 어드레스가 페이지를 크로스하는 경우, 크로스-페이지 프리페칭은 현재의 페치 어드레스의 물리 페이지가 연속적인 페이지를 크로스하는 경우에 추가로 실행되며, 이것은 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
본 발명의 본 실시예는 크로스-페이지 프리페칭 방법을 추가로 제공한다. 도 4에 구체적으로 도시된 바와 같이, 본 방법은 다음 단계를 포함한다:
단계 401. 물리 메모리 공간을 신청하고 메모리 공간의 용량 정보(capacity information)를 운반하는 제1 지시 메시지를 수신한다.
단계 402. 메모리 공간의 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당한다.
구체적으로, 응용 프로그램이 적재(load)되는 경우, 프로세서는 먼저 메모리 공간의 용량 정보를 운반하고 응용 프로그램이 메모리 공간을 나타내는 제1 지시 메시지를 수신한다. 그 후, 프로세서는 메모리 공간의 용량 정보에 따라서 대응되는 물리 메모리 공간과 가상 메모리 공간을 할당한다. 물리 메모리 공간과 가상 메모리 공간이 할당되고 있는 경우, 제1 지시 메시지가 가상 어드레스에 대한 정보를 운반하면, 가상 메모리 공간의 대응되는 사이즈가 가상 어드레스에 따라서 공개되며; 그렇지 않으면, 프로세서는 적절한 가상 메모리 공간을 무작위로 할당하게 되고, 이에 대응하여, 프로세서가 적절한 물리 메모리 공간을 무작위로 할당하게 된다.
주목해야 하는 점은, 메모리 공간을 할당하는 문제는 종래 기술에서의 문제에 속하며, 이것은 본 발명의 본 실시예에 구체적으로 한정되지 않으며, 예시적인 구현 해결수단만이 제공된다.
단계 403: 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 포함하는, 가상 메모리 공간과 물리 메모리 공간 사이의 매핑 관계를 구축하며, 여기서 제1 물리 페이지는 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는, 맵핑되는 제1 물리 어드레스가 속하는 페이지이고, 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 매핑된 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
구체적으로, 종래 기술에서 구축된, 가상 메모리 공간과 물리 메모리 공간 사이의 맵핑 관계는 가상 메모리 공간에 포함된 제1 가상 페이지에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호 정보만을 포함하며; 본 발명의 본 실시예에 따르면, 프로세서에 의해 구축되는 맵핑 관계는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지와 연속적인지의 여부를 지시하는 데 사용되는 제1 물리 페이지의 연속 정보를 추가로 저장하고, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함하며, 연속 정보와 제1 물리 페이지의 페이지 번호는 맵핑 관계 내에 공존한다.
구체적으로, 가상 메모리 공간과 물리 메모리 공간 사이의 맵핑 관계는 맵핑 관계 페이지 테이블을 사용하여 표현될 수 있다. 제1 물리 페이지의 연속 정보는 페이지 테이블의 한 개 비트를 사용하여 판정될 수 있거나, 또는 페이지 테이블의 다수의 비트를 사용하여 판정될 수 있으며, 이것은 본 발명의 본 실시예에서 구체적으로 한정되지는 않는다.
단계 404. 메모리가 맵핑 관계를 저장할 수 있도록, 메모리에게 맵핑 관계를 전송한다.
본 발명의 본 실시예는 크로스-페이지 프리페칭 방법을 추가로 제공한다. 도 5에 구체적으로 도시된 바와 같이, 본 발명은 다음의 단계를 포함한다:
단계 501. 제1 가상 어드레스에 따라서, 메모리가 변환 색인 버퍼(translation lookaside buffer, TLB)에게 제1 가상 어드레스에 대응되는 맵핑 관계를 전송할 수 있도록, 제1 가상 어드레스를 운반하는 제2 지시 메시지를 메모리로 전송하며, 맵핑 관계는 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 포함하고, 제1 물리 페이지는 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 페이지이며, 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
구체적으로, 맵핑 관계는 일반적으로 상기 메모리의 메모리 내에 저장되지만, 그러나, 가상 어드레스와 물리 어드레스 사이의 변환 속도를 향상시키기 위해서, 자주 사용된 매핑 관계 또는 가까운 장래에 사용될 맵핑 관계가 변환 색인 버퍼(TLB) 내에 저장될 수 있다.
메모리가 액세스되는 경우, TLB는 먼저 제1 가상 어드레스를 운반하며 프로세서가 메모리를 액세스하는 지시 메시지를 수신하고, 그 후 TLB는 저장된 맵핑 관계에 따라서 가상 어드레스와 물리 어드레스 사이의 변환을 수행한다. 그러나, TLB가 프로세서가 메모리를 액세스하는 지시 메시지를 수신한 후, 제1 가상 어드레스에 대응되는 맵핑 관계가 TLB 내에 존재하지 않는 경우, TLB는 맵핑 관계가 메모리에서 누락되어 있다는 제2 지시 메시지를 전송하고, 제1 가상 어드레스에 대응되는 맵핑 관계를 위한 메모리를 신청한다. 메모리는 제1 가상 어드레스에 따라서 저장된 맵핑 관계를 탐색하여 TLB에게 제1 가상 어드레스에 대응되는 맵핑 관계를 전송한다.
구체적으로, 가상 메모리 공간과 물리 메모리 공간 사이의 전술한 맵핑 관계가 맵핑 관계 페이지 테이블을 사용하여 표현될 수 있는 경우, 여기에서의 제1 가상 어드레스와 제1 물리 어드레스 사이의 맵핑 관계는 페이지 테이블 내의 페이지 테이블 엔트리를 사용하여 표현될 수 있다.
단계 502. 메모리에 의해 전송된 맵핑 관계를 수신한다.
단계 503. 맵핑 관계에 따라서, 제1 가상 어드레스에 대응되는 제1 물리 어드레스를 획득한다.
단계 504. 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 캐시에게 전송한다.
구체적으로, TLB는 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 캐시에게 전송한다. 물리 어드레스가 캐시에서 누락되어 있는 경우, 프리페칭 메커니즘의 훈련이 완료되고 프리페칭 어드레스가 페이지를 크로스하는 것을 프리페칭 장치가 판정한 후, 연속 정보에 따라서, 현재의 페치 어드레스가 속하는 물리 페이지가 연속적인 것으로 판정되면, 프리페칭 장치가 크로스-페이지 프리페칭을 실행할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있으며, 이것은 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
본 발명의 본 실시예는 크로스-페이지 프리페칭 방법을 추가로 제공한다. 구체적으로 도 6에 도시된 바와 같이, 본 발명은 다음의 단계를 포함한다:
단계 601. 변환 색인 버퍼(TLB)에 의해 전송된, 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 수신하며, 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
단계 602. 캐시가 제1 물리 어드레스의 데이터를 저장하지 않는 경우, 프로세서가 메모리의 메모리로부터 제1 물리 어드레스의 데이터를 획득할 수 있도록, 제1 물리 어드레스를 메모리로 전송한다.
단계 603. 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송한다.
주목해야 하는 점은, 일반적으로, 프로세서가 캐시로부터 명령이나 데이터를 히트하지 못하는 경우, 명령이나 데이터를 판독하는 속도를 향상시키기 위해서, 캐시는 일반적으로, 프로세서에 의해 액세스되는 명령이나 데이터의 저장 어드레스에 따라서 메모리로부터 대응되는 명령이나 데이터를 획득하고, 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하며, 프로세서에 의해 액세될 다음 명령이나 다음 데이터를 메모리부터 페치하도록 프리페칭 장치에게 명령하고, 프로세서에 의해 액세스될 다음 명령이나 다음 데이터를 캐시 내에 저장한다는 점이다.
주목해야 하는 점은, 제1 물리 어드레스를 메모리에게 전송하는 단계 602와 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하는 단계 603은 고정된 시퀀스를 가지지 않고, 단계 602와 단계 603 둘다 제1 물리 어드레스의 데이터가 저장되어 있지 않은 것으로 판정된 후에 실행되는 동작들이라는 점이며, 단계 602와 단계 603의 시퀀스는 본 발명의 본 실시예에서 구체적으로 한정되지는 않는다.
본 발명의 본 실시예는 크로스-페이지 프리페칭 방법을 제공한다. 본 방법은: 프로세서가, 메모리 공간을 나타내는 제1 지시 메시지를 수신하는 단계; 프로세서가, 제1 지시 메시지를 통해 운반된 메모리 공간의 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당하는 단계; 프로세서가, 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 페이지인 제1 물리 페이지의 페이지 번호, 및 제1 물리 페이지의 연속 정보를 포함하는, 가상 메모리 공간과 물리 메모리 공간 사이의 맵핑 관계를 구축하는 단계 - 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 제1 가상 페이지가 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함함 -; 및 마지막으로, 프로세서가, 맵핑 관계를 메모리에게 전송하는 단계를 포함한다. 변환 색인 버퍼(TLB)가, 제1 가상 어드레스에 대응되는 맵핑 관계가 누락되어 있다는 제2 지시 메시지를 메모리에게 전송하는 경우, TLB가 제1 물리 페이지의 연속 정보를 포함하는 맵핑 관계를 수신할 수 있도록, 메모리는 제1 물리 페이지의 연속 정보를 포함하고 제1 가상 어드레스에 대응되는 맵핑 관계를 TLB에게 전송할 수 있으며, 제1 가상 어드레스와 제1 물리 어드레스 사이의 변환이 완료된 후, TLB는 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 캐시에게 전송한다. 물리 어드레스가 캐시에서 누락되어 있는 경우, 프리페칭 메커니즘의 훈련이 완료되고 프리페칭 장치가 프리페칭 어드레스를 획득한 후, 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서, 제1 물리 페이지가 연속적인 것으로 판정되면, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있으며, 이것은 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
제2
실시예
본 발명의 실시예는 크로스-페이지 프리페칭 방법을 제공하고, 구체적인 설명은 도 7에 도시된 크로스-페이지 프리페칭 시스템을 사용하여 수행되며, 크로스-페이지 프리페칭 시스템은 프로세서, 메모리, 캐시, 변환 색인 버퍼, 및 프리페칭 장치를 포함한다.
크로스-페이지 프리페칭을 구현하기 위해서, 먼저, 응용 프로그램이 적재되는 경우, 프로세서는, 메모리에서 그리고 응용 프로그램을 위해, 명령과 프로그램의 데이터를 위한 메모리 공간을 할당하며, 도 8에 구체적으로 도시된 바와 같이, 다음의 단계를 포함한다:
단계 801. 프로세서가 메모리 공간의 용량 정보를 운반하며 물리 메모리 공간을 나타내는 제1 지시 메시지를 수신한다.
단계 802. 프로세서가 메모리 공간의 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당한다.
구체적으로, 응용 프로그램이 적재되는 경우, 프로세서는 먼저 메모리 공간의 용량 정보를 운반하며 응용 프로그램이 메모리 공간을 나타내는 제1 지시 메시지를 수신한다. 그 후, 프로세서는 메모리 공간의 용량 정보에 따라서 대응되는 물리 메모리 공간과 가상 메모리 공간을 할당한다. 물리 메모리 공간과 가상 메모리 공간이 할당되고 있는 경우, 제1 지시 메시지가 가상 어드레스에 대한 정보를 운반하면, 가상 메모리 공간의 대응되는 사이즈가 가상 어드레스에 따라서 공개되며; 그렇지 않으면, 프로세서는 적절한 가상 메모리 공간을 무작위로 할당하게 되고, 이에 대응하여, 프로세서가 적절한 물리 메모리 공간을 무작위로 할당하게 된다.
주목해야 하는 점은, 메모리 공간을 할당하는 문제는 종래 기술에서의 문제에 속하며, 이것은 본 발명의 본 실시예에 구체적으로 한정되지 않으며, 예시적인 구현 해결수단만이 제공된다는 것이다.
단계 803. 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 포함하는, 가상 메모리 공간과 물리 메모리 공간 사이의 매핑 관계를 구축하고, 제1 물리 페이지는 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 페이지이며, 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 매핑된 물리 페이지와 연속적인지의 여부를 지시하는 데 사용되고, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
구체적으로, 종래 기술에서 구축된, 가상 메모리 공간과 물리 메모리 공간 사이의 맵핑 관계는 가상 메모리 공간에 포함된 제1 가상 페이지에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호 정보만을 포함하며; 본 발명의 본 실시예에 따르면, 프로세서에 의해 구축된 맵핑 관계는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되는 제1 물리 페이지의 연속 정보를 추가로 저장하고, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함하며, 연속 정보와 제1 물리 페이지의 페이지 번호는 맵핑 관계 내에 공존한다.
구체적으로, 가상 메모리 공간과 물리 메모리 공간 사이의 맵핑 관계는 맵핑 관계 페이지 테이블을 사용하여 표현될 수 있다. 제1 물리 페이지의 연속 정보는 페이지 테이블의 한 개 비트를 사용하여 판정될 수 있거나, 또는 페이지 테이블의 다수의 비트를 사용하여 판정될 수 있으며, 이것은 본 발명의 본 실시예에서 구체적으로 한정되지는 않는다.
단계 804. 프로세서가 맵핑 관계를 메모리에게 전송한다.
단계 805. 메모리가 프로세서에 의해 전송된 맵핑 관계를 수신한다.
단계 806. 메모리가 맵핑 관계를 저장한다.
프로그램의 적재가 완료되고, 프로세서가, 가상 어드레스와 물리 어드레스 사이의 변환 속도를 향상시키기 위해서, 메모리에서 그리고 응용 프로그램을 위해, 프로그램의 명령 및 데이터를 위한 메모리 공간을 할당한 후, 프로세서는 자주 사용된 매핑 관계 또는 가까운 장래에 사용될 맵핑 관계를 변환 색인 버퍼(TLB) 내에 저장한다. 메모리가 액세스되는 경우, TLB는 먼저 프로세서가 메모리를 액세스하는 지시 메시지를 수신한다. 하기의 단계는 TLB가, 프로세서가 제1 메모리를 액세스하는 지시 메시지를 수신한 후, TLB가 메모리와 캐시와의 상호 교환을 수행하고, 캐시가 프리페칭 장치와 상호 교환하는 예를 사용하여 구체적인 설명을 계속하는 것으로, 도 9a 및 도 9b에 구체적으로 도시된 바와 같이, 다음의 단계를 포함한다:
단계 901. TLB가 제1 가상 어드레스를 운반하며 제1 메모리를 액세스하는 지시 메시지를 수신한다.
주목해야 하는 점은, 제1 메모리에서 "제1"은 특별한 의미를 가지는 것이 아니며, "제1"은 단지 제1 가상 어드레스에 대응되는 제1 물리 어드레스에 의해 지시되는 메모리를 나타낸다는 것이다.
단계 902. TLB가 제1 가상 어드레스에 따라서, 제1 가상 어드레스가 제1 물리 어드레스에 맵핑되는 맵핑 관계를 탐색한다.
단계 903. 맵핑 관계가 존재하지 않는 경우, 제1 가상 어드레스에 따라서, 메모리가 제1 가상 어드레스에 대응되는 맵핑 관계를 변환 색인 버퍼(TLB)에게 전송할 수 있도록, 제1 가상 어드레스를 운반하는 제2 지시 메시지를 메모리에게 전송하고, 맵핑 관계는 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호와 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되는 제1 물리 페이지의 연속 정보를 포함하며, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
단계 904. 메모리가 제2 지시 메시지를 수신한다.
단계 905. 메모리가 제1 가상 어드레스에 따라서 맵핑 관계를 탐색한다.
단계 906. 메모리가 맵핑 관계를 TLB에게 전송한다.
단계 907. TLB가 메모리에 의해 전송된 맵핑 관계를 수신한다.
TLB가 메모리에 의해 전송된 맵핑 관계를 수신한 후, 제1 가상 어드레스와 제1 물리 어드레스 사이의 맵핑 관계가 TLB 내에 존재한다는 것은 명백하다.
단계 908. TLB가 맵핑 관계에 따라서 제1 가상 어드레스에 대응되는 제1 물리 어드레스를 획득한다.
단계 909. TLB가 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 캐시에게 전송한다.
단계 910. 캐시가 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 수신한다.
단계 911. 캐시가 제1 물리 어드레스의 데이터를 저장하지 않은 경우, 프로세서가 메모리의 메모리로부터 제1 물리 어드레스의 데이터를 획득할 수 있도록, 제1 물리 어드레스를 메모리에게 전송한다.
단계 912. 메모리가 캐시에 의해 전송된 제1 물리 어드레스를 수신한다.
단계 913. TLB가 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송한다.
구체적으로, 물리 어드레스가 캐시에서 누락되어 있다는, 프리페칭 메커니즘의 훈련이 완료된 후, 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서, 제1 물리 페이지가 연속적인 것으로 판정되면, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있으며, 이것은 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
주목해야 하는 점은, 제1 물리 어드레스를 메모리에게 전송하는 단계 911과 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하는 단계 913은 고정된 시퀀스를 가지지 않고, 단계 911과 단계 913 둘다 물리 어드레스의 데이터가 저장되어 있지 않은 것으로 판정된 후에 실행되는 동작들이라는 점이며, 단계 911과 단계 913의 시퀀스는 본 발명의 본 실시예에서 구체적으로 한정되지는 않는다.
단계 914. 프리페칭 장치가 캐시에 의해 전송된, 물리 어드레스가 누락되어 있다는 지시 메시지를 수신한다.
구체적으로, 프리페칭 장치가 캐시에 의해 전송된, 물리 어드레스가 누락되어 있다는 지시 메시지를 수신한 후, 프리페칭-장치 측에서의 크로스-페이지 프리페칭 방법이 도 10에 구체적으로 도시되며, 다음의 단계를 포함한다:
단계 1001. 프리페칭 장치가, 캐시에 의해 전송된, 맵핑되는 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며 물리 어드레스가 누락되어 있다는 지시 메시지를 수신하고, 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
단계 1002. 압축 알고리즘과 제1 물리 어드레스에 따라서 제1 물리 어드레스의 제1 인덱스 정보를 획득한다.
단계 1003. 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블에 있는 엔트리 내에 포함된 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭되지 않는 경우, 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블에 있는 엔트리 내에 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 저장한다.
단계 1004. 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블에 있는 엔트리 내에 포함된 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭되는 경우, 프리페칭 장치의 프리페칭 메커니즘의 훈련이 완료되는지의 여부를 판단한다.
단계 1005. 프리페칭 메커니즘이 완료되는 경우, 프리페칭 장치에 저장되어 있는 제1 물리 어드레스와 스텝 사이즈에 따라서 프리페칭 어드레스를 획득한다.
단계 1006. 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서 제1 물리 페이지가 연속적인 것으로 판정되는 경우, 프리페칭 어드레스에 있는 데이터를 프리페치한다.
구체적으로, 프리페칭 장치를 사용하여 수행되는 크로스-페이지 프리페칭 방법에 대해서, 제1 실시예에서의 설명이 참조될 수 있으며, 상세한 것은 본 발명의 본 실시예에서 다시 설명되지 않는다.
결론적으로, 제2 실시예에서, 크로스-페이지 프리페칭 방법은 도 7에 도시된 크로스-페이지 프리페칭 시스템 하에서 상세하게 설명되며, 하기의 단계는 크로스-페이지 프리페칭의 전체 과정을 설명하기 위해 예시적인 조작을 제공하며, 도 11에 구체적으로 도시된 바와 같이, 다음의 단계를 포함한다:
도 11에서, 가상 메모리 내의 4개의 인접한 가상 페이지들이 물리 메모리 내의 물리 페이지 1, 물리 페이지 2, 물리 페이지 3, 및 물리 페이지 5에 분리된 형태로 매핑되어 있으며, 물리 페이지의 연속 정보는 물리 페이지가 연속적이라는 것을 지시하는 "1"과, 물리 페이지가 연속적이지 않다는 것을 지시하는 "0"에 의해 표현된다. 페이지 번호가 1과 2인 물리 페이지들이 연속적이고, 페이지 번호가 3인 물리 페이지가 연속적이지 않다는 것은 도 11로부터 명확하게 알 수 있다.
먼저, 운영 시스템(operating system)은 물리 페이지의 연속 정보를 물리 메모리 내에 저장하고; 그 후, TLB는 물리 페이지의 연속 정보를 TLB 엔트리 내에 저장하며; 마지막으로, 프리페칭 장치는 물리 페이지의 연속 정보를 프리페칭 장치 내에 저장하고, 물리 페이지의 연속 정보에 따라서, 크로스-페이지 프리페칭을 수행할 것인지의 여부를 판단한다.
본 발명의 본 실시예는 크로스-페이지 프리페칭 방법을 제공한다. 본 방법은: 프로세서가, 메모리 공간을 나타내는 제1 지시 메시지를 수신하는 단계; 프로세서가, 제1 지시 메시지를 통해 운반된 메모리 공간의 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당하는 단계; 프로세서가, 가상 메모리 공간과 물리 메모리 공간 사이의 맵핑 관계를 구축하는 단계 - 맵핑 관계는 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 페이지인 제1 물리 페이지의 페이지 번호, 및 제1 물리 페이지의 연속 정보를 포함하고, 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 제1 가상 페이지가 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함함 -; 및 마지막으로, 프로세서가, 맵핑 관계를 메모리에게 전송하는 단계를 포함한다. 변환 색인 버퍼(TLB)가, 제1 가상 어드레스에 대응되는 맵핑 관계가 누락되어 있다는 제2 지시 메시지를 메모리에게 전송하는 경우, TLB가 제1 물리 페이지의 연속 정보를 포함하는 맵핑 관계를 수신할 수 있도록, 메모리가 제1 물리 페이지의 연속 정보를 포함하고 제1 가상 어드레스에 대응되는 맵핑 관계를 TLB에게 전송할 수 있으며, 제1 가상 어드레스와 제1 물리 어드레스 사이의 변환이 완료된 후, TLB가 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 캐시에게 전송한다. 물리 어드레스가 캐시에서 누락되어 있는 경우, 프리페칭 메커니즘의 훈련이 완료되고 프리페칭 장치가 프리페칭 어드레스를 획득한 후, 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서, 제1 물리 페이지가 연속적인 것으로 판정되면, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있으며, 이것은 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
제3
실시예
본 발명의 실시예는 도 12에 구체적으로 도시된 바와 같이, 프리페칭 장치(1200)를 제공하고, 프리페칭 장치(1200)는 수신 유닛(1201), 획득 유닛(1202), 및 프리페칭 유닛(1203)을 포함한다.
수신 유닛(1201)은, 캐시에 의해 전송된, 매핑된 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며 물리 어드레스가 누락되어 있다는 지시 메시지를 수신하도록 구성되고, 그 중 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
획득 유닛(1202)은 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하도록 구성된다.
프리페칭 유닛(1203)은 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서 제1 물리 페이지가 연속적인 것으로 판정되는 경우, 프리페칭 어드레스에 있는 데이터를 프리페치하도록 구성된다.
또한, 도 13에 도시된 바와 같이, 프리페칭 장치는 저장 유닛(1204)을 더 포함한다.
저장 유닛(1204)은, 수신 유닛(1201)이, 캐시에 의해 전송된, 물리 어드레스가 누락되어 있다는 지시 메시지를 수신한 후, 지시 메시지를 통해 운반되며 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 제1 물리 어드레스에 대응되며 프리페칭 장치에 저장된 프리페칭 정보 테이블에 있는 엔트리 내에 저장하도록 구성된다.
선택적으로, 도 14에 도시된 바와 같이, 프리페칭 장치는 판단 유닛(1205), 실행 유닛(1206), 및 저장 유닛(1204)을 더 포함한다.
획득 유닛(1202)은 제1 물리 어드레스와 프리페칭 장치에 저장되어 있는 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하기 전에, 압축 알고리즘과 제1 물리 어드레스에 따라서 제1 물리 어드레스의 제1 인덱스 정보를 획득하도록 구성된다.
판단 유닛(1205)은 제1 인덱스 정보에 대응되며 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭되는 경우, 프리페칭 장치의 프리페칭 메커니즘의 훈련이 완료되는지의 여부를 판단하도록 구성된다.
실행 유닛(1206)은 프리페칭 메커니즘의 훈련이 완료되는 경우, 프리페칭 어드레스를 획득하는 단계를 실행하도록 구성된다.
저장 유닛(1204)은 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 매칭되지 않는 경우, 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 제1 인덱스 정보에 대응되며 프리페칭 정보 테이블 내에 있는 엔트리 내에 저장하도록 구성된다.
또한, 제1 물리 어드레스의 제1 인덱스 정보는 구체적으로 다음의 정보: 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호; 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호의 압축값; 및 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호의 해시값 중 적어도 하나를 포함한다.
구체적으로, 크로스-페이지 프리페칭이 수행되는 경우, 프리페칭 장치의 작업 과정에 대해서, 제1 실시예 및 제2 실시예의 설명이 참조될 수 있으며, 이에 대해 본 발명의 본 실시예에서 중복 설명하지 않는다.
본 발명의 본 실시예는 프리페칭 장치를 제공하고, 이 프리페칭 장치는 수신 유닛, 획득 유닛, 및 프리페칭 유닛을 포함한다. 수신 유닛은, 캐시에 의해 전송된, 매핑된 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며 물리 어드레스가 누락되어 있다는 지시 메시지를 수신하도록 구성되고, 그 중 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함하고; 획득 유닛은 제1 물리 어드레스와 프리페칭 장치에 저장되어 있는 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하도록 구성되며; 그리고 프리페칭 유닛은 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 제1 물리 페이지의 페이지 번호와 상이하고, 제1 물리 페이지의 연속 정보에 따라서 제1 물리 페이지가 연속적인 것으로 판정되는 경우, 프리페칭 어드레스에 있는 데이터를 프리페치하도록 구성된다.
프리페칭 어드레스가 페이지를 크로스하는 경우, 제1 물리 페이지의 연속 정보에 따라서, 제1 물리 페이지가 연속적인 것으로 판정된 후에, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치하기 때문에, 크로스-프리페칭이 판정된 후 프리페칭이 중단됨으로써 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
제4
실시예
본 발명의 실시예는 도 15에 구체적으로 도시된 바와 같이, 프로세서(1500)를 제공하며, 이 프로세서(1500)는 수신 유닛(1501), 할당 유닛(1502), 구축 유닛(1503), 및 전송 유닛(1504)을 포함한다.
수신 유닛(1501)은 메모리 공간의 용량 정보를 운반하며 메모리 공간을 나타내는 제1 지시 메시지를 수신하도록 구성된다.
할당 유닛(1502)은 메모리 공간의 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당하도록 구성된다.
구축 유닛(1503)은 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 페이지인 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 포함하는, 가상 메모리 공간과 물리 메모리 공간 사이의 맵핑 관계를 구축하도록 구성되며, 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
전송 유닛(1504)은 메모리가 맵핑 관계를 저장할 수 있도록, 맵핑 관계를 메모리에게 전송하도록 구성된다.
구체적으로, 크로스-페이지 프리페칭이 수행되는 경우, 프로세서의 작업 과정에 대해서, 제1 실시예 및 제2 실시예의 설명이 참조될 수 있으며, 이에 대해 본 발명의 본 실시예에서 중복 설명하지 않는다.
본 발명의 본 실시예에서 제공된 프로세서에 기초하여, 프로세서에 의해 구축된 맵핑 관계가 맵핑되는 제1 물리 페이지의 연속 정보를 포함하기 때문에, 프로세서가 맵핑 관계를 메모리에게 전송한 후, 메모리 내의 맵핑 관계는 또한 제1 물리 페이지의 연속 정보를 포함하고, 변환 색인 버퍼(TLB)에 의해 메모리로부터 획득된 맵핑 관계도 또한 제1 물리 페이지의 연속 정보를 포함하며; 물리 어드레스가 캐시에서 누락되어 있는 경우, 프리페칭 메커니즘의 훈련이 완료된 후, 프리페칭 장치가 프리페칭 어드레스를 획득하고, 프리페칭 어드레스가 페이지를 크로스하는 것을 판단할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있으며, 제1 물리 페이지의 연속 정보에 따라서, 현재의 페치 어드레스가 속하는 제1 물리 페이지가 연속적인 것으로 판정된 후, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치하도록 하며, 이로써 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
제5
실시예
본 발명의 실시예는 도 16에 구체적으로 도시된 바와 같이, 변환 색인 버퍼(TLB)(1600)를 제공하며, 이 TLB(1600)는 제1 전송 유닛(1601), 수신 유닛(1602), 획득 유닛(1603), 및 제2 전송 유닛(1604)을 포함한다.
제1 전송 유닛(1601)은, 제1 가상 어드레스에 따라서, 메모리가 변환 색인 버퍼(TLB)에게 제1 가상 어드레스에 대응되는 맵핑 관계를 전송할 수 있도록, 제1 가상 어드레스를 운반하는 제2 지시 메시지를 메모리에게 전송하도록 구성되며, 여기서 맵핑 관계는 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 페이지인 제1 물리 페이지의 페이지 번호와 제1 물리 페이지의 연속 정보를 포함하고, 그 중 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
수신 유닛(1602)은 메모리에 의해 전송된 맵핑 관계를 수신하도록 구성된다.
획득 유닛(1603)은, 맵핑 관계에 따라서, 제1 가상 어드레스에 대응되는 제1 물리 어드레스를 획득하도록 구성된다.
제2 전송 유닛(1604)은 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 캐시에게 전송하도록 구성된다.
구체적으로, 크로스-페이지 프리페칭이 수행되는 경우, 변환 색인 버퍼의 작업 과정에 대해서, 제1 실시예 및 제2 실시예의 설명이 참조될 수 있으며, 이에 대해 본 발명의 본 실시예에서 중복 설명하지 않는다.
본 발명의 본 실시예에서 제공된 변환 색인 버퍼(TLB)에서, 맵핑 관계가 누락되어 있는 경우, 메모리로부터 획득된 맵핑 관계가 제1 물리 페이지의 연속 정보를 포함하기 때문에, TLB가, 맵핑 관계에 따라서, 가상 어드레스와 물리 어드레스 사이의 변환을 완료한 후, 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 캐시에게 전송한다. 물리 어드레스가 캐시에서 누락되어 있는 경우, 프리페칭 메커니즘의 훈련이 완료된 후, 프리페칭 장치가 프리페칭 어드레스를 획득하고, 프리페칭 어드레스가 페이지를 크로스하는 것을 판단할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있으며, 제1 물리 페이지의 연속 정보에 따라서, 현재의 페치 어드레스가 속하는 제1 물리 페이지가 연속적인 것으로 판정되고, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치하도록 하며, 이로써 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
제6
실시예
본 발명의 실시예는 도 17에 구체적으로 도시된 바와 같이, 캐시(1700)를 제공하며, 이 캐시(1700)는 수신 유닛(1701), 제1 전송 유닛(1702), 및 제2 전송 유닛(1703)을 포함한다.
수신 유닛(1701)은 변환 색인 버퍼(TLB)에 의해 전송되는, 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 수신하도록 구성되며, 그 중 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
제1 전송 유닛(1702)은 캐시가 제1 물리 어드레스의 데이터를 저장하지 않은 경우, 프로세서가 메모리로부터 제1 물리 어드레스의 데이터를 획득할 수 있도록, 제1 물리 어드레스를 메모리에게 전송하도록 구성된다.
제2 전송 유닛(1703)은 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하도록 구성된다.
구체적으로, 크로스-페이지 프리페칭이 수행되는 경우, 캐시의 작업 과정에 대해서, 제1 실시예 및 제2 실시예의 설명이 참조될 수 있으며, 이에 대해 본 발명의 본 실시예에서 중복 설명하지 않는다.
본 발명의 본 실시예에서 제공된 캐시에서, 물리 어드레스가 누락되어 있는 경우, 한편으로는, 프로세서가 메모리의 메모리로부터, 제1 물리 어드레스의 데이터를 획득할 수 있도록, 제1 물리 어드레스를 메모리에게 전송할 수 있고, 다른 한편으로는, 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하며, 여기서 프리페칭 메커니즘의 훈련이 완료된 후, 프리페칭 장치가 프리페칭 어드레스를 획득하고, 프리페칭 어드레스가 페이지를 크로스하는 것을 판단할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있으며, 제1 물리 페이지의 연속 정보에 따라서, 현재의 페치 어드레스가 속하는 제1 물리 페이지가 연속적인 것으로 판정된 후, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치하며, 이것은 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
제7
실시예
본 발명의 실시예는 도 18에 구체적으로 도시된 바와 같이, 크로스-페이지 프리페칭 시스템(1800)을 제공하며, 이 크로스-페이지 프리페칭 시스템(1800)은 메모리(1801), 프리페칭 장치(1200), 프로세서(1500), 변환 색인 버퍼(TLB)(1600), 및 캐시(1700)를 포함한다.
프로세서(1500)가 제1 물리 페이지의 연속 정보를 포함하는 맵핑 관계를 메모리(1801)에게 전송한 후, 메모리(1801)는 맵핑 관계를 저장한다. 제1 가상 어드레스가 물리 어드레스에 맵핑되는 맵핑 관계가 변환 색인 버퍼(TLB)(1600)에서 발견되지 않는 경우, 맵핑 관계는 메모리로부터 획득되고; 그 후, TLB(1600)는 제1 물리 페이지와 맵핑 관계 내에 있는 제1 물리 페이지의 연속 정보를 캐시(1700)에게 전송하며; 캐시(1700)가 제1 물리 어드레스의 데이터를 저장하지 않은 경우, 제1 물리 어드레스의 데이터가 메모리의 메모리(1801)로부터 획득될 수 있도록, 캐시(1700)가 제1 물리 어드레스를 메모리(1801)에게 전송하고; 게다가, 캐시(1700)는 맵핑되는 제1 물리 어드레스와 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치(1200)에게 전송한다. 제1 물리 어드레스의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 제1 가상 페이지는 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함한다.
프리페칭 장치, 프로세서, 변환 색인 버퍼(TLB), 및 캐시의 구체적인 작업 과정에 대해서, 제1 실시예 및 제2 실시예의 설명이 참조될 수 있으며, 이에 대해 본 발명의 본 실시예에서 중복 설명하지 않는다.
본 발명의 본 실시예에는 크로스-페이지 프리페칭 시스템을 제공하고, 이 크로스-페이지 프리페칭 시스템은 메모리, 제3 실시예에 따른 프리페칭 장치, 제4 실시예에 따른 프로세서, 제5 실시예에 따른 변환 색인 버퍼(TLB), 및 제6 실시예에 따른 캐시를 포함한다. 프로세서에 의해 구축된 맵핑 관계가 맵핑되는 제1 물리 페이지의 연속 정보를 포함하기 때문에, 프로세서가 맵핑 관계를 메모리에게 전송한 후, 메모리 내의 맵핑 관계 또한 제1 물리 페이지의 연속 정보를 포함하고, 변환 색인 버퍼(TLB)에 의해 메모리로부터 획득된 맵핑 관계 또한 제1 물리 페이지의 연속 정보를 포함하며; 물리 어드레스가 캐시에서 누락되어 있는 경우, 프리페칭 메커니즘의 훈련이 완료된 후, 프리페칭 장치가 프리페칭 어드레스를 획득하고, 프리페칭 어드레스가 페이지를 크로스하는 것을 판단할 수 있도록, 연속 정보는 프리페칭 장치가 데이터 흐름을 따르도록 할 수 있으며, 제1 물리 페이지의 연속 정보에 따라서, 현재의 페치 어드레스가 속하는 제1 물리 페이지가 연속적인 것으로 판정된 후, 프리페칭 장치가 프리페칭 어드레스에 있는 데이터를 프리페치하며, 이로써 크로스-페이지 프리페칭이 판정된 후 프리페칭이 중단되기 때문에 프리페칭 장치의 낮은 히트율로 인한 종래 기술의 문제점을 해결하여, 프리페칭 장치의 프리페칭 히트율을 향상시키고 또한 메모리 액세스의 효율을 향상시킨다.
기술된 장치 실시예는 단지 예시적이다. 별개의 요소로 기술된 유닛은 물리적으로 분리된 것일 수도 있고 아닐 수도 있고, 유닛으로 표시된 요소도 물리적 유닛일 수도 있고 아닐 수도 있으며, 한 위치에 배치되어 있을 수도 있고, 또는 복수의 네트워크 유닛에 분산되어 있을 수도 있다. 모듈의 일부 또는 전부는 실시예의 해결수단의 목적을 달성하기 위해 실제 필요에 따라 선택될 수 있다. 게다가, 본 발명에 의해 제공된 장치 실시예의 첨부 도면에서, 모듈 간의 연결 관계는 그 모듈들이 상호 통신 연결을 가지는 것을 나타내며, 이들은 구체적으로 하나 이상의 통신 버스 또는 신호 케이블로서 구현될 수 있다. 통상의 기술자라면 창작 노력없이 본 발명의 실시예를 이해하고 구현할 수 있을 것이다.
전술한 구현 방식의 설명에 기초하여, 통상의 기술자는 본 발명이 소프트웨어와 필수의 범용 하드웨어, 또는 주문형 집적회로, 전용 CPU, 전용 메모리, 전용 구성요소 등을 포함하는 전용 하드웨어로 구현될 수 있다는 것을 확실하게 알 수 있다. 일반적으로, 컴퓨터 프로그램에 의해 수행될 수 있는 임의의 기능은 대응하는 하드웨어를 사용하여 쉽게 구현될 수 있다. 또한, 동일한 기능을 수행하는 데 사용되는 특정 하드웨어 구조는 예를 들어, 아날로그 회로, 디지털 회로, 전용 회로 등과 같은 다양한 형태일 수 있다. 그렇지만, 본 발명에 있어서, 소프트웨어 프로그램에 의한 구현이 많은 경우에 있어서 더 나은 구현 방식이다. 이러한 이해를 바탕으로, 본 발명의 필수적 기술적 해결수단 또는 종래기술에 기여하는 요소는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 플로피 디스크, USB 플래시 드라이브, 휴대형 하드디스크, 리드-온리 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 자기 디스크 또는 컴퓨터의 광디스크와 같은 판독 가능형 저장 매체에 저장되며, 본 발명의 실시예에서 설명된 방법을 수행하도록 컴퓨터 장치(개인용 컴퓨터, 서버, 네트워크 장치 등이 될 수 있음)에 명령하기 위한 수 개의 명령을 포함한다.
전술한 실시예는 단지 본 개시의 구체적인 구현 방식이며, 본 개시의 범위를 한정하려는 것이 아니다. 본 개시가 전술한 실시예와 함께 상세하게 기술되었지만, 통상의 기술자라면 본 개시의 실시예의 기술적 해결 수단의 범위로부터 벗어남이 없이, 전술한 실시예에서의 기술적 해결 수단에 변형을 가할 수 있고 또 그 기술적 해결 수단의 전부 또는 일부를 균등물로 치환할 수 있다는 것을 이해할 것이다. 통상의 기술자가 본 발명에서 개시된 기술적 범위 내에서 생각해 낼 수 있는 변형 또는 대체는 모두 본 발명의 보호 범위 내에 속한다. 따라서, 본 발명의 보호 범위는 청구범위의 보호 범위에 의해 결정되어야 한다.
Claims (15)
- 크로스-페이지 프리페칭(cross-page prefetching) 방법으로서,
캐시에 의해 전송된, 물리 어드레스가 누락(miss)되어 있다는 지시 메시지를 수신하는 단계 - 상기 지시 메시지는 맵핑되는 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보(contiguity information)를 운반하고, 상기 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함함 -;
상기 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하는 단계; 및
상기 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 상이하고, 상기 제1 물리 페이지의 상기 연속 정보에 따라서 상기 제1 물리 페이지가 연속적인 것으로 판정되면,
상기 프리페칭 어드레스에 있는 데이터를 프리페치하는 단계
를 포함하는 크로스-페이지 프리페칭 방법. - 제1항에 있어서,
상기 캐시에 의해 전송된, 물리 어드레스가 누락(miss)되어 있다는 지시 메시지를 수신하는 단계 후에,
상기 제1 물리 어드레스에 대응되고, 상기 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블에 있는 엔트리 내에, 상기 지시 메시지를 통해 운반되는, 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 저장하는 단계를 더 포함하는 크로스-페이지 프리페칭 방법. - 제1항에 있어서,
상기 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하는 단계 전에,
압축 알고리즘과 상기 제1 물리 어드레스에 따라서 상기 제1 물리 어드레스의 제1 인덱스 정보를 획득하는 단계;
상기 제1 인덱스 정보에 대응되며 상기 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 매칭되는 경우, 상기 프리페칭 장치의 프리페칭 메커니즘의 훈련이 완료되는지의 여부를 판단하는 단계;
상기 프리페칭 메커니즘의 훈련이 완료되는 경우, 상기 프리페칭 어드레스를 획득하는 단계를 실행하는 단계; 및
상기 제1 인덱스 정보에 대응되며 상기 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 상기 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 매칭되지 않는 경우, 상기 제1 물리 페이지의 페이지 번호와 상기 제1 물리 페이지의 상기 연속 정보를 상기 제1 인덱스 정보에 대응되며 상기 프리페칭 정보 테이블 내에 있는 상기 엔트리 내에 저장하는 단계
를 포함하는 크로스-페이지 프리페칭 방법. - 제3항에 있어서,
상기 제1 물리 어드레스의 상기 제1 인덱스 정보는 구체적으로,
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 페이지 번호;
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 페이지 번호의 압축값; 및
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 페이지 번호의 해시값
중 적어도 하나를 포함하는 크로스-페이지 프리페칭 방법. - 크로스-페이지 프리페칭 방법으로서,
메모리 공간의 용량 정보를 운반하는, 상기 메모리 공간을 나타내는 제1 지시 메시지를 수신하는 단계;
상기 메모리 공간의 상기 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당하는 단계;
상기 가상 메모리 공간과 상기 물리 메모리 공간 사이의 맵핑 관계를 구축하는 단계 - 상기 맵핑 관계는, 상기 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 및 상기 제1 물리 페이지의 연속 정보를 포함하고, 상기 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지가 상기 제1 물리 어드레스에 의해 맵핑되는 상기 제1 가상 어드레스를 포함함 -; 및
메모리가 상기 맵핑 관계를 저장할 수 있도록, 상기 맵핑 관계를 상기 메모리에게 전송하는 단계
를 포함하는 크로스-페이지 프리페칭 방법. - 크로스-페이지 프리페칭 방법으로서,
메모리가, 제1 가상 어드레스에 따라서 변환 색인 버퍼(translation lookaside buffer, TLB)에게 상기 제1 가상 어드레스에 대응되는 맵핑 관계를 전송할 수 있도록, 상기 제1 가상 어드레스를 운반하는 제2 지시 메시지를 상기 메모리로 전송하는 단계 - 상기 맵핑 관계는 상기 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 및 상기 제1 물리 페이지의 연속 정보를 포함하고, 상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되며, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 상기 제1 가상 어드레스를 포함함 -;
상기 메모리에 의해 전송된 상기 맵핑 관계를 수신하는 단계;
상기 맵핑 관계에 따라서, 상기 제1 가상 어드레스에 대응되는 상기 제1 물리 어드레스를 획득하는 단계; 및
상기 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 캐시에게 전송하는 단계
를 포함하는 크로스-페이지 프리페칭 방법. - 크로스-페이지 프리페칭 방법으로서,
변환 색인 버퍼(translation lookaside buffe, TLB)에 의해 전송된, 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 수신하는 단계 - 상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 제1 가상 어드레스를 포함함 -;
캐시가 상기 제1 물리 어드레스의 데이터를 저장하지 않은 경우, 프로세서가 메모리로부터 상기 제1 물리 어드레스의 데이터를 획득할 수 있도록, 상기 제1 물리 어드레스를 상기 메모리에게 전송하는 단계; 및
물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하는 단계
를 포함하고,
상기 지시 메시지는, 상기 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 운반하는, 크로스-페이지 프리페칭 방법. - 프리페칭 장치로서,
수신 유닛, 획득 유닛, 및 프리페칭 유닛을 포함하고,
상기 수신 유닛은, 캐시에 의해 전송된, 물리 어드레스가 누락되어 있다는 지시 메시지를 수신하도록 구성되고, 상기 지시 메시지는 맵핑되는 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 운반하며, 상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 맵핑되는 제1 가상 어드레스를 포함하며,
상기 획득 유닛은, 상기 제1 물리 어드레스와 상기 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하도록 구성되며,
상기 프리페칭 유닛은, 상기 프리페칭 어드레스가 속하는 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 상이하고, 상기 제1 물리 페이지의 상기 연속 정보에 따라서 상기 제1 물리 페이지가 연속적인 것으로 판정되면, 상기 프리페칭 어드레스에 있는 데이터를 프리페치하도록 구성되는,
프리페칭 장치. - 제8항에 있어서,
상기 프리페칭 장치는 저장 유닛을 더 포함하고,
상기 저장 유닛은, 상기 캐시에 의해 전송된, 물리 어드레스가 누락되어 있다는 상기 지시 메시지를 수신한 후에, 상기 제1 물리 어드레스에 대응되고 상기 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블에 있는 엔트리 내에, 상기 지시 메시지를 통해 운반되며 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 저장하도록 구성되는,
프리페칭 장치. - 제8항에 있어서,
상기 프리페칭 장치는 판단 유닛, 실행 유닛, 및 저장 유닛을 더 포함하고,
상기 획득 유닛은, 상기 제1 물리 어드레스와 프리페칭 장치에 저장된 스텝 사이즈에 따라서 프리페칭 어드레스를 획득하기 전에, 압축 알고리즘과 상기 제1 물리 어드레스에 따라서 상기 제1 물리 어드레스의 제1 인덱스 정보를 획득하도록 구성되며,
상기 판단 유닛은, 상기 제1 인덱스 정보에 대응되며 상기 프리페칭 장치에 저장되어 있는 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 매칭되는 경우, 상기 프리페칭 장치의 프리페칭 메커니즘의 훈련이 완료되는지의 여부를 판단하도록 구성되고,
상기 실행 유닛은, 상기 프리페칭 메커니즘의 훈련이 완료되는 경우, 프리페칭 어드레스를 획득하는 동작을 실행하도록 구성되며,
상기 저장 유닛은, 상기 제1 인덱스 정보에 대응되며 상기 프리페칭 정보 테이블 내에 있는 엔트리에 포함된 상기 물리 페이지의 페이지 번호가 상기 제1 물리 페이지의 페이지 번호와 매칭되지 않는 경우, 상기 제1 물리 페이지의 페이지 번호와 상기 제1 물리 페이지의 상기 연속 정보를 상기 제1 인덱스 정보에 대응되며 상기 프리페칭 정보 테이블 내에 있는 상기 엔트리 내에 저장하도록 구성되는,
프리페칭 장치. - 제10항에 있어서,
상기 제1 물리 어드레스의 상기 제1 인덱스 정보는 구체적으로,
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 페이지 번호;
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 페이지 번호의 압축값; 및
상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 페이지 번호의 해시값
중 적어도 하나를 포함하는, 프리페칭 장치. - 프로세서로서,
수신 유닛, 할당 유닛, 구축 유닛, 및 전송 유닛을 포함하고,
상기 수신 유닛은, 메모리 공간의 용량 정보를 운반하는, 상기 메모리 공간을 나타내는 제1 지시 메시지를 수신하도록 구성되며;
상기 할당 유닛은, 상기 메모리 공간의 상기 용량 정보에 따라서 물리 메모리 공간과 가상 메모리 공간을 할당하도록 구성되고;
상기 구축 유닛은, 상기 가상 메모리 공간과 상기 물리 메모리 공간 사이의 맵핑 관계를 구축하도록 구성되며,
상기 맵핑 관계는, 상기 가상 메모리 공간에 포함된 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 및 상기 제1 물리 페이지의 연속 정보를 포함하고, 상기 제1 물리 페이지의 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지와 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 상기 제1 가상 어드레스를 포함하며,
상기 전송 유닛은 메모리가 상기 맵핑 관계를 저장할 수 있도록, 상기 맵핑 관계를 상기 메모리에게 전송하도록 구성되는,
프로세서. - 변환 색인 버퍼(translation lookaside buffer, TLB)로서,
상기 TLB는 제1 전송 유닛, 수신 유닛, 획득 유닛, 및 제2 전송 유닛을 포함하고,
상기 제1 전송 유닛은, 제1 가상 어드레스에 따라서, 메모리가 상기 변환 색인 버퍼(TLB)에게 상기 제1 가상 어드레스에 대응되는 맵핑 관계를 전송할 수 있도록, 상기 제1 가상 어드레스를 운반하는 제2 지시 메시지를 상기 메모리에게 전송하도록 구성되며,
상기 맵핑 관계는 상기 제1 가상 어드레스에 대응되는 맵핑되는 제1 물리 어드레스가 속하는 제1 물리 페이지의 페이지 번호, 및 상기 제1 물리 페이지의 연속 정보를 포함하고, 상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지와 연속적인지의 여부를 지시하는 데 사용되며, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 상기 제1 가상 어드레스를 포함하고,
상기 수신 유닛은, 상기 메모리에 의해 전송된 상기 맵핑 관계를 수신하도록 구성되며,
상기 획득 유닛은, 상기 맵핑 관계에 따라서, 상기 제1 가상 어드레스에 대응되는 상기 제1 물리 어드레스를 획득하도록 구성되고,
상기 제2 전송 유닛은 상기 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 캐시에게 전송하도록 구성되는,
변환 색인 버퍼. - 캐시로서,
수신 유닛, 제1 전송 유닛, 및 제2 전송 유닛을 포함하고,
상기 수신 유닛은, 변환 색인 버퍼(translation lookaside buffe, TLB)에 의해 전송되는, 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 제1 물리 페이지의 연속 정보를 수신하도록 구성되며,
상기 제1 물리 페이지의 상기 연속 정보는 제1 가상 페이지에 의해 맵핑되는 물리 페이지가 상기 제1 가상 페이지의 다음 연속되는 가상 페이지에 의해 맵핑되는 물리 페이지에 연속적인지의 여부를 지시하는 데 사용되고, 상기 제1 가상 페이지는 상기 제1 물리 어드레스에 의해 맵핑되는 제1 가상 어드레스를 포함하며;
상기 제1 전송 유닛은, 상기 캐시가 상기 제1 물리 어드레스의 데이터를 저장하지 않은 경우, 프로세서가 메모리로부터 상기 제1 물리 어드레스의 데이터를 획득할 수 있도록, 상기 제1 물리 어드레스를 상기 메모리에게 전송하도록 구성되고,
상기 제2 전송 유닛은 물리 어드레스가 누락되어 있다는 지시 메시지를 프리페칭 장치에게 전송하도록 구성되며,
상기 지시 메시지는 상기 제1 물리 어드레스와 상기 제1 물리 어드레스가 속하는 상기 제1 물리 페이지의 상기 연속 정보를 운반하는,
캐시. - 크로스-페이지 프리페칭 시스템으로서,
메모리, 청구항 8 내지 11 중 어느 한 항에 따른 프리페칭 장치, 청구항 12에 따른 프로세서, 청구항 13에 따른 변환 색인 버퍼(translation lookaside buffer, TLB), 및 청구항 14에 따른 캐시를 포함하는,
크로스-페이지 프리페칭 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310159064.1 | 2013-05-02 | ||
CN201310159064.1A CN104133780B (zh) | 2013-05-02 | 2013-05-02 | 一种跨页预取方法、装置及*** |
PCT/CN2014/075588 WO2014176981A1 (zh) | 2013-05-02 | 2014-04-17 | 一种跨页预取方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160008217A true KR20160008217A (ko) | 2016-01-21 |
KR101844521B1 KR101844521B1 (ko) | 2018-04-02 |
Family
ID=51806463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157034158A KR101844521B1 (ko) | 2013-05-02 | 2014-04-17 | 크로스-페이지 프리페칭 방법, 장치, 및 시스템 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9858192B2 (ko) |
EP (1) | EP2993586A4 (ko) |
JP (1) | JP6134962B2 (ko) |
KR (1) | KR101844521B1 (ko) |
CN (1) | CN104133780B (ko) |
WO (1) | WO2014176981A1 (ko) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11126559B2 (en) * | 2013-12-30 | 2021-09-21 | Michael Henry Kass | Translation look-aside buffer and prefetch indicator |
US9740621B2 (en) * | 2014-05-21 | 2017-08-22 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
US10503661B2 (en) | 2014-05-21 | 2019-12-10 | Qualcomm Incorporated | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US9710392B2 (en) * | 2014-08-15 | 2017-07-18 | Advanced Micro Devices, Inc. | Virtual memory mapping for improved DRAM page locality |
US10037280B2 (en) * | 2015-05-29 | 2018-07-31 | Qualcomm Incorporated | Speculative pre-fetch of translations for a memory management unit (MMU) |
US9792224B2 (en) | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
US10191850B2 (en) | 2016-03-31 | 2019-01-29 | Qualcomm Incorporated | Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system |
US9946654B2 (en) * | 2016-09-09 | 2018-04-17 | Cray Inc. | High-bandwidth prefetcher for high-bandwidth memory |
US10176090B2 (en) * | 2016-09-15 | 2019-01-08 | Qualcomm Incorporated | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems |
US20190163642A1 (en) | 2017-11-27 | 2019-05-30 | Intel Corporation | Management of the untranslated to translated code steering logic in a dynamic binary translation based processor |
US11099995B2 (en) | 2018-03-28 | 2021-08-24 | Intel Corporation | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory |
CN111143242B (zh) * | 2018-11-02 | 2022-05-10 | 华为技术有限公司 | 一种缓存预取方法和装置 |
CN110704107B (zh) * | 2019-09-30 | 2022-03-22 | 上海兆芯集成电路有限公司 | 预取器、预取器的运作方法及处理器 |
WO2021066687A1 (en) * | 2019-10-02 | 2021-04-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Entities, system and methods performed therein for handling memory operations of an application in a computer environment |
US11294808B2 (en) | 2020-05-21 | 2022-04-05 | Micron Technology, Inc. | Adaptive cache |
US11422934B2 (en) | 2020-07-14 | 2022-08-23 | Micron Technology, Inc. | Adaptive address tracking |
US11409657B2 (en) | 2020-07-14 | 2022-08-09 | Micron Technology, Inc. | Adaptive address tracking |
CN114253458B (zh) * | 2020-09-21 | 2024-04-26 | 华为技术有限公司 | 内存缺页异常的处理方法、装置、设备及存储介质 |
CN112199400B (zh) * | 2020-10-28 | 2024-07-16 | 支付宝(杭州)信息技术有限公司 | 用于数据处理的方法和装置 |
CN112416436B (zh) * | 2020-12-02 | 2023-05-09 | 海光信息技术股份有限公司 | 信息处理方法、信息处理装置和电子设备 |
CN112416817B (zh) * | 2020-12-02 | 2023-02-17 | 海光信息技术股份有限公司 | 预取方法、信息处理装置、设备以及存储介质 |
CN112416437B (zh) * | 2020-12-02 | 2023-04-21 | 海光信息技术股份有限公司 | 信息处理方法、信息处理装置和电子设备 |
CN112948149A (zh) * | 2021-03-29 | 2021-06-11 | 江苏为是科技有限公司 | 一种远端内存共享方法、装置、电子设备及存储介质 |
JP2022159714A (ja) * | 2021-04-05 | 2022-10-18 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
CN114546488B (zh) * | 2022-04-25 | 2022-07-29 | 超验信息科技(长沙)有限公司 | 一种向量跨步指令的实现方法、装置、设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001084216A (ja) * | 1999-09-16 | 2001-03-30 | Nec Eng Ltd | データプリフェッチシステム、プリフェッチ方法、記録媒体 |
US20060179236A1 (en) * | 2005-01-13 | 2006-08-10 | Hazim Shafi | System and method to improve hardware pre-fetching using translation hints |
US7506105B2 (en) * | 2005-05-02 | 2009-03-17 | Freescale Semiconductor, Inc. | Prefetching using hashed program counter |
JP4160589B2 (ja) | 2005-10-31 | 2008-10-01 | 富士通株式会社 | 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法 |
US7917731B2 (en) | 2006-08-02 | 2011-03-29 | Qualcomm Incorporated | Method and apparatus for prefetching non-sequential instruction addresses |
US8140768B2 (en) * | 2008-02-01 | 2012-03-20 | International Business Machines Corporation | Jump starting prefetch streams across page boundaries |
US8438547B2 (en) | 2009-05-05 | 2013-05-07 | Freescale Semiconductor, Inc. | Address translation trace message generation for debug |
TWI506434B (zh) * | 2010-03-29 | 2015-11-01 | Via Tech Inc | 預取單元、資料預取方法、電腦程式產品以及微處理器 |
US8433852B2 (en) | 2010-08-30 | 2013-04-30 | Intel Corporation | Method and apparatus for fuzzy stride prefetch |
CN102737037A (zh) * | 2011-04-07 | 2012-10-17 | 北京搜狗科技发展有限公司 | 一种网页预读取的方法、装置及一种浏览器 |
US9804969B2 (en) * | 2012-12-20 | 2017-10-31 | Qualcomm Incorporated | Speculative addressing using a virtual address-to-physical address page crossing buffer |
-
2013
- 2013-05-02 CN CN201310159064.1A patent/CN104133780B/zh active Active
-
2014
- 2014-04-17 JP JP2016510923A patent/JP6134962B2/ja active Active
- 2014-04-17 EP EP14791035.0A patent/EP2993586A4/en not_active Withdrawn
- 2014-04-17 KR KR1020157034158A patent/KR101844521B1/ko active IP Right Grant
- 2014-04-17 WO PCT/CN2014/075588 patent/WO2014176981A1/zh active Application Filing
-
2015
- 2015-10-30 US US14/928,635 patent/US9858192B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2014176981A1 (zh) | 2014-11-06 |
JP2016520916A (ja) | 2016-07-14 |
CN104133780A (zh) | 2014-11-05 |
CN104133780B (zh) | 2017-04-05 |
KR101844521B1 (ko) | 2018-04-02 |
US9858192B2 (en) | 2018-01-02 |
EP2993586A4 (en) | 2016-04-06 |
JP6134962B2 (ja) | 2017-05-31 |
US20160055088A1 (en) | 2016-02-25 |
EP2993586A1 (en) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101844521B1 (ko) | 크로스-페이지 프리페칭 방법, 장치, 및 시스템 | |
KR101667772B1 (ko) | 프리페칭을 갖는 변환 색인 버퍼 | |
US9454491B2 (en) | Systems and methods for accessing a unified translation lookaside buffer | |
KR101361945B1 (ko) | 컴퓨터 스레드들의 이종 리소스들로의 맵핑 | |
US9563562B2 (en) | Page crossing prefetches | |
CN112416817B (zh) | 预取方法、信息处理装置、设备以及存储介质 | |
KR102478766B1 (ko) | 디스크립터 링 관리 | |
US20180074957A1 (en) | Method and device for accessing a cache memory | |
JP2020523678A (ja) | 論理ディレクトリを使用したキャッシュ構造 | |
CN113039530A (zh) | 压缩式存储***的空闲空间管理 | |
JP2021534496A (ja) | 階層キャッシュシステムにおけるプリフェッチ管理 | |
KR102482516B1 (ko) | 메모리 어드레스 변환 | |
CN108874691B (zh) | 数据预取方法和内存控制器 | |
US11989136B2 (en) | Methods and systems for translating virtual addresses in a virtual memory based system | |
JP7376019B2 (ja) | 命令キャッシュにおけるプリフェッチの強制終了及び再開 | |
KR20210144656A (ko) | 비연접 백업 물리적 서브페이지에 가상 페이지를 할당하는 방법 | |
WO2019177867A1 (en) | Data structure with rotating bloom filters | |
CN115061955A (zh) | 处理器、电子设备、地址翻译方法以及缓存页表项方法 | |
US11636045B2 (en) | Translating virtual addresses in a virtual memory based system | |
CN114218132B (zh) | 信息预取方法、处理器、电子设备 | |
KR101541737B1 (ko) | 프로세서 장치의 캐시 교체 방법, 프로세서 장치 및 임베디드 시스템 | |
US20200167285A1 (en) | Prefetching data to reduce cache misses | |
US20220334973A1 (en) | Entities, system and methods performed therein for handling memory operations of an application in a computer environment |
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 |