KR101121487B1 - 멀티-클래스 데이터 캐시 정책들 - Google Patents
멀티-클래스 데이터 캐시 정책들 Download PDFInfo
- Publication number
- KR101121487B1 KR101121487B1 KR1020090112619A KR20090112619A KR101121487B1 KR 101121487 B1 KR101121487 B1 KR 101121487B1 KR 1020090112619 A KR1020090112619 A KR 1020090112619A KR 20090112619 A KR20090112619 A KR 20090112619A KR 101121487 B1 KR101121487 B1 KR 101121487B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- cache
- cache line
- entry
- tag
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims description 137
- 238000000034 method Methods 0.000 claims description 45
- 239000000872 buffer Substances 0.000 claims description 44
- 230000007246 mechanism Effects 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 112
- 238000005192 partition Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012884 algebraic function Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
Claims (17)
- 삭제
- 삭제
- 하나 이상의 클라이언트 및 외부 메모리에 연결된 중간 캐시(intermediary cache)로부터 데이터를 축출(evict)하기 위한 시스템으로서,하나 이상의 데이터 캐시 유닛;상기 하나 이상의 데이터 캐시 유닛과 관련된 복수의 캐시 라인 각각에 대해 상이한 엔트리를 저장하도록 구성된 태그 저장 유닛 - 각각의 엔트리는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터와 관련된 축출 클래스를 나타내는 태그 및 상기 엔트리에 대응하는 상기 캐시 라인 내의 데이터가 클린(clean) 및 언핀드(unpinned)인지의 여부를 나타내는 상태부를 포함하며, 상기 축출 클래스는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터가 상기 하나 이상의 클라이언트에 의해 재이용될 가능성을 나타냄 - ; 및상기 하나 이상의 데이터 캐시 유닛 및 상기 태그 저장 유닛에 연결되고, 관련된 메모리 어드레스를 포함하는 명령을 클라이언트로부터 수신하고, 상기 메모리 어드레스에 기초하여 상기 명령과 관련된 데이터를 저장하기 위해 상기 하나 이상의 데이터 캐시 유닛 내의 하나 이상의 캐시 라인을 식별하고, 상기 하나 이상의 캐시 라인에 대하여 캐시 미스(cache miss)가 있다고 결정하고, 상기 하나 이상의 캐시 라인 중 적어도 하나의 캐시 라인에 상주하는 데이터가, 상기 적어도 하나의 캐시 라인에 대응하는 태그 저장 유닛 내의 엔트리에 포함된 적어도 하나의 캐시 라인에 저장된 데이터와 관련된 축출 클래스에 기초하여 축출되게 하도록 구성되는 태그 룩업 유닛을 포함하고,상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 태그는, 상기 적어도 하나의 캐시 라인에 저장된 데이터가 축출-우선(evict-first) 클래스에 속한다는 것을 나타내고, 상기 엔트리에 포함된 상태부는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 클린 및 언핀드임을 나타내고, 상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인 내의 데이터가 상기 하나 이상의 캐시 라인 내의 최근에 최소로 사용된, 클린, 언핀드 및 축출-우선 데이터라는 것을 결정하고, 그 다음에 상기 적어도 하나의 캐시 라인 내의 데이터가 축출되게 하도록 구성되는 시스템.
- 하나 이상의 클라이언트 및 외부 메모리에 연결된 중간 캐시로부터 데이터를 축출하기 위한 시스템으로서,하나 이상의 데이터 캐시 유닛;상기 하나 이상의 데이터 캐시 유닛과 관련된 복수의 캐시 라인 각각에 대해 상이한 엔트리를 저장하도록 구성된 태그 저장 유닛 - 각각의 엔트리는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터와 관련된 축출 클래스를 나타내는 태그 및 상기 엔트리에 대응하는 상기 캐시 라인 내의 데이터가 클린 및 언핀드인지의 여부를 나타내는 상태부를 포함하며, 상기 축출 클래스는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터가 상기 하나 이상의 클라이언트에 의해 재이용될 가능성을 나타냄 - ; 및상기 하나 이상의 데이터 캐시 유닛 및 상기 태그 저장 유닛에 연결되고, 관련된 메모리 어드레스를 포함하는 명령을 클라이언트로부터 수신하고, 상기 메모리 어드레스에 기초하여 상기 명령과 관련된 데이터를 저장하기 위해 상기 하나 이상의 데이터 캐시 유닛 내의 하나 이상의 캐시 라인을 식별하고, 상기 하나 이상의 캐시 라인에 대하여 캐시 미스가 있다고 결정하고, 상기 하나 이상의 캐시 라인 중 적어도 하나의 캐시 라인에 상주하는 데이터가, 상기 적어도 하나의 캐시 라인에 대응하는 태그 저장 유닛 내의 엔트리에 포함된 적어도 하나의 캐시 라인에 저장된 데이터와 관련된 축출 클래스에 기초하여 축출되게 하도록 구성되는 태그 룩업 유닛을 포함하고,상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 태그는, 상기 적어도 하나의 캐시 라인에 저장된 데이터가 축출-표준(evict-normal) 클래스에 속한다는 것을 나타내고, 상기 엔트리에 포함된 상태부는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 클린 및 언핀드임을 나타내고, 상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인 내의 데이터가 상기 하나 이상의 캐시 라인 내의 최근에 최소로 사용된, 클린, 언핀드 및 축출-표준 데이터라는 것을 결정하고, 그 다음에 상기 적어도 하나의 캐시 라인 내의 데이터가 축출되게 하도록 구성되는 시스템.
- 하나 이상의 클라이언트 및 외부 메모리에 연결된 중간 캐시로부터 데이터를 축출하기 위한 시스템으로서,하나 이상의 데이터 캐시 유닛;상기 하나 이상의 데이터 캐시 유닛과 관련된 복수의 캐시 라인 각각에 대해 상이한 엔트리를 저장하도록 구성된 태그 저장 유닛 - 각각의 엔트리는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터와 관련된 축출 클래스를 나타내는 태그 및 상기 엔트리에 대응하는 상기 캐시 라인 내의 데이터가 클린 및 언핀드인지의 여부를 나타내는 상태부를 포함하며, 상기 축출 클래스는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터가 상기 하나 이상의 클라이언트에 의해 재이용될 가능성을 나타냄 - ; 및상기 하나 이상의 데이터 캐시 유닛 및 상기 태그 저장 유닛에 연결되고, 관련된 메모리 어드레스를 포함하는 명령을 클라이언트로부터 수신하고, 상기 메모리 어드레스에 기초하여 상기 명령과 관련된 데이터를 저장하기 위해 상기 하나 이상의 데이터 캐시 유닛 내의 하나 이상의 캐시 라인을 식별하고, 상기 하나 이상의 캐시 라인에 대하여 캐시 미스가 있다고 결정하고, 상기 하나 이상의 캐시 라인 중 적어도 하나의 캐시 라인에 상주하는 데이터가, 상기 적어도 하나의 캐시 라인에 대응하는 태그 저장 유닛 내의 엔트리에 포함된 적어도 하나의 캐시 라인에 저장된 데이터와 관련된 축출 클래스에 기초하여 축출되게 하도록 구성되는 태그 룩업 유닛을 포함하고,상기 태그 룩업 유닛은 상기 명령과 관련된 데이터가 축출-최종 클래스에 속하는 것을 결정하도록 구성되고, 상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 태그는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 축출-최종 클래스에 속한다는 것을 나타내며, 상기 엔트리에 포함된 상태부는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 클린 및 언핀드임을 나타내며, 상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인 내의 데이터가 상기 하나 이상의 캐시 라인 내의 최근에 최소로 사용된, 클린, 언핀드 및 축출-최종 데이터라는 것을 결정하고, 그 다음에 상기 적어도 하나의 캐시 라인 내의 데이터가 축출되게 하도록 구성되는 시스템.
- 하나 이상의 클라이언트 및 외부 메모리에 연결된 중간 캐시로부터 데이터를 축출하기 위한 시스템으로서,하나 이상의 데이터 캐시 유닛;상기 하나 이상의 데이터 캐시 유닛과 관련된 복수의 캐시 라인 각각에 대해 상이한 엔트리를 저장하도록 구성된 태그 저장 유닛 - 각각의 엔트리는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터와 관련된 축출 클래스를 나타내는 태그 및 상기 엔트리에 대응하는 상기 캐시 라인 내의 데이터가 클린 및 언핀드인지의 여부를 나타내는 상태부를 포함하며, 상기 축출 클래스는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터가 상기 하나 이상의 클라이언트에 의해 재이용될 가능성을 나타냄 - ; 및상기 하나 이상의 데이터 캐시 유닛 및 상기 태그 저장 유닛에 연결되고, 관련된 메모리 어드레스를 포함하는 명령을 클라이언트로부터 수신하고, 상기 메모리 어드레스에 기초하여 상기 명령과 관련된 데이터를 저장하기 위해 상기 하나 이상의 데이터 캐시 유닛 내의 하나 이상의 캐시 라인을 식별하고, 상기 하나 이상의 캐시 라인에 대하여 캐시 미스가 있다고 결정하고, 상기 하나 이상의 캐시 라인 중 적어도 하나의 캐시 라인에 상주하는 데이터가, 상기 적어도 하나의 캐시 라인에 대응하는 태그 저장 유닛 내의 엔트리에 포함된 적어도 하나의 캐시 라인에 저장된 데이터와 관련된 축출 클래스에 기초하여 축출되게 하도록 구성되는 태그 룩업 유닛을 포함하고,상기 적어도 하나의 캐시 라인에 저장된 데이터는 축출-최종 클래스에 속하며, 상기 태그 룩업 유닛은 상기 데이터를 축출-표준 클래스에 속하는 것으로서 재분류하도록 구성되며, 상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 상태부는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 클린 및 언핀드임을 나타내고, 상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인 내의 데이터가 상기 하나 이상의 캐시 라인 내의 최근에 최소로 사용된, 클린, 언핀드 및 축출-표준 데이터라는 것을 결정하고, 그 다음에 상기 적어도 하나의 캐시 라인 내의 데이터가 축출되게 하도록 더 구성되는 시스템.
- 제3항 내지 제6항 중 어느 한 항에 있어서,상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인에 상주하는 데이터에 대해 클린 통지를 프레임 버퍼 로직으로 전송하고, 상기 명령과 관련된 데이터를 위해 상기 적어도 하나의 캐시 라인을 예약하도록 더 구성되는 시스템.
- 삭제
- 삭제
- 삭제
- 컴퓨팅 디바이스로서,하나 이상의 클라이언트;중간 캐시 - 상기 중간 캐시는,하나 이상의 데이터 캐시 유닛,상기 하나 이상의 데이터 캐시 유닛과 관련된 복수의 캐시 라인 각각에 대해 상이한 엔트리를 저장하도록 구성된 태그 저장 유닛 - 각각의 엔트리는 상기 엔트리에 대응하는 상기 캐시 라인에 저장된 데이터와 관련된 축출 클래스를 나타내는 태그 및 상기 엔트리에 대응하는 상기 캐시 라인 내의 데이터가 클린 및 언핀드인지의 여부를 나타내는 상태부를 포함하며, 상기 축출 클래스는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터가 상기 하나 이상의 클라이언트에 의해 재이용될 가능성을 나타냄 - , 및상기 하나 이상의 데이터 캐시 유닛에 연결된 태그 룩업 유닛을 포함함 -;상기 중간 캐시에 연결된 외부 메모리; 및상기 하나 이상의 클라이언트를 상기 중간 캐시에 연결하는 크로스바 유닛을 포함하며,상기 태그 룩업 유닛은,관련된 메모리 어드레스를 포함하는 명령을 클라이언트로부터 수신하고,상기 메모리 어드레스에 기초하여 상기 명령과 관련된 데이터를 저장하기 위해 상기 하나 이상의 데이터 캐시 유닛 내의 하나 이상의 캐시 라인을 식별하고,상기 하나 이상의 캐시 라인에 대하여 캐시 미스가 있다고 결정하고,상기 하나 이상의 캐시 라인 중 적어도 하나의 캐시 라인에 상주하는 데이터가, 상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 적어도 하나의 캐시 라인에 저장된 데이터와 관련된 축출 클래스에 기초하여 축출되게 하도록 구성되고,상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 태그는, 상기 적어도 하나의 캐시 라인에 저장된 데이터가 축출-우선 클래스에 속한다는 것을 나타내고, 상기 엔트리에 포함된 상태부는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 클린 및 언핀드임을 나타내고, 상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인 내의 데이터가 상기 하나 이상의 캐시 라인 내의 최근에 최소로 사용된, 클린, 언핀드 및 축출-우선 데이터라는 것을 결정하고, 그 다음에 상기 적어도 하나의 캐시 라인 내의 데이터가 축출되게 하도록 구성되는, 컴퓨팅 디바이스.
- 컴퓨팅 디바이스로서,하나 이상의 클라이언트;중간 캐시 - 상기 중간 캐시는,하나 이상의 데이터 캐시 유닛,상기 하나 이상의 데이터 캐시 유닛과 관련된 복수의 캐시 라인 각각에 대해 상이한 엔트리를 저장하도록 구성된 태그 저장 유닛 - 각각의 엔트리는 상기 엔트리에 대응하는 상기 캐시 라인에 저장된 데이터와 관련된 축출 클래스를 나타내는 태그 및 상기 엔트리에 대응하는 상기 캐시 라인 내의 데이터가 클린 및 언핀드인지의 여부를 나타내는 상태부를 포함하며, 상기 축출 클래스는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터가 상기 하나 이상의 클라이언트에 의해 재이용될 가능성을 나타냄 - , 및상기 하나 이상의 데이터 캐시 유닛에 연결된 태그 룩업 유닛을 포함함 -;상기 중간 캐시에 연결된 외부 메모리; 및상기 하나 이상의 클라이언트를 상기 중간 캐시에 연결하는 크로스바 유닛을 포함하며,상기 태그 룩업 유닛은,관련된 메모리 어드레스를 포함하는 명령을 클라이언트로부터 수신하고,상기 메모리 어드레스에 기초하여 상기 명령과 관련된 데이터를 저장하기 위해 상기 하나 이상의 데이터 캐시 유닛 내의 하나 이상의 캐시 라인을 식별하고,상기 하나 이상의 캐시 라인에 대하여 캐시 미스가 있다고 결정하고,상기 하나 이상의 캐시 라인 중 적어도 하나의 캐시 라인에 상주하는 데이터가, 상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 적어도 하나의 캐시 라인에 저장된 데이터와 관련된 축출 클래스에 기초하여 축출되게 하도록 구성되고,상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 태그는, 상기 적어도 하나의 캐시 라인에 저장된 데이터가 축출-표준 클래스에 속한다는 것을 나타내고, 상기 엔트리에 포함된 상태부는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 클린 및 언핀드임을 나타내고, 상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인 내의 데이터가 상기 하나 이상의 캐시 라인 내의 최근에 최소로 사용된, 클린, 언핀드 및 축출-표준 데이터라는 것을 결정하고, 그 다음에 상기 적어도 하나의 캐시 라인 내의 데이터가 축출되게 하도록 구성되는, 컴퓨팅 디바이스.
- 컴퓨팅 디바이스로서,하나 이상의 클라이언트;중간 캐시 - 상기 중간 캐시는,하나 이상의 데이터 캐시 유닛,상기 하나 이상의 데이터 캐시 유닛과 관련된 복수의 캐시 라인 각각에 대해 상이한 엔트리를 저장하도록 구성된 태그 저장 유닛 - 각각의 엔트리는 상기 엔트리에 대응하는 상기 캐시 라인에 저장된 데이터와 관련된 축출 클래스를 나타내는 태그 및 상기 엔트리에 대응하는 상기 캐시 라인 내의 데이터가 클린 및 언핀드인지의 여부를 나타내는 상태부를 포함하며, 상기 축출 클래스는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터가 상기 하나 이상의 클라이언트에 의해 재이용될 가능성을 나타냄 - , 및상기 하나 이상의 데이터 캐시 유닛에 연결된 태그 룩업 유닛을 포함함 -;상기 중간 캐시에 연결된 외부 메모리; 및상기 하나 이상의 클라이언트를 상기 중간 캐시에 연결하는 크로스바 유닛을 포함하며,상기 태그 룩업 유닛은,관련된 메모리 어드레스를 포함하는 명령을 클라이언트로부터 수신하고,상기 메모리 어드레스에 기초하여 상기 명령과 관련된 데이터를 저장하기 위해 상기 하나 이상의 데이터 캐시 유닛 내의 하나 이상의 캐시 라인을 식별하고,상기 하나 이상의 캐시 라인에 대하여 캐시 미스가 있다고 결정하고,상기 하나 이상의 캐시 라인 중 적어도 하나의 캐시 라인에 상주하는 데이터가, 상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 적어도 하나의 캐시 라인에 저장된 데이터와 관련된 축출 클래스에 기초하여 축출되게 하도록 구성되고,상기 태그 룩업 유닛은 상기 명령과 관련된 데이터가 축출-최종 클래스에 속하는 것을 결정하도록 구성되고, 상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 태그는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 축출-최종 클래스에 속한다는 것을 나타내며, 상기 엔트리에 포함된 상태부는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 클린 및 언핀드임을 나타내며, 상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인 내의 데이터가 상기 하나 이상의 캐시 라인 내의 최근에 최소로 사용된, 클린, 언핀드 및 축출-최종 데이터라는 것을 결정하고, 그 다음에 상기 적어도 하나의 캐시 라인 내의 데이터가 축출되게 하도록 구성되는, 컴퓨팅 디바이스.
- 컴퓨팅 디바이스로서,하나 이상의 클라이언트;중간 캐시 - 상기 중간 캐시는,하나 이상의 데이터 캐시 유닛,상기 하나 이상의 데이터 캐시 유닛과 관련된 복수의 캐시 라인 각각에 대해 상이한 엔트리를 저장하도록 구성된 태그 저장 유닛 - 각각의 엔트리는 상기 엔트리에 대응하는 상기 캐시 라인에 저장된 데이터와 관련된 축출 클래스를 나타내는 태그 및 상기 엔트리에 대응하는 상기 캐시 라인 내의 데이터가 클린 및 언핀드인지의 여부를 나타내는 상태부를 포함하며, 상기 축출 클래스는 상기 엔트리에 대응하는 캐시 라인에 저장된 데이터가 상기 하나 이상의 클라이언트에 의해 재이용될 가능성을 나타냄 - , 및상기 하나 이상의 데이터 캐시 유닛에 연결된 태그 룩업 유닛을 포함함 -;상기 중간 캐시에 연결된 외부 메모리; 및상기 하나 이상의 클라이언트를 상기 중간 캐시에 연결하는 크로스바 유닛을 포함하며,상기 태그 룩업 유닛은,관련된 메모리 어드레스를 포함하는 명령을 클라이언트로부터 수신하고,상기 메모리 어드레스에 기초하여 상기 명령과 관련된 데이터를 저장하기 위해 상기 하나 이상의 데이터 캐시 유닛 내의 하나 이상의 캐시 라인을 식별하고,상기 하나 이상의 캐시 라인에 대하여 캐시 미스가 있다고 결정하고,상기 하나 이상의 캐시 라인 중 적어도 하나의 캐시 라인에 상주하는 데이터가, 상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 적어도 하나의 캐시 라인에 저장된 데이터와 관련된 축출 클래스에 기초하여 축출되게 하도록 구성되고,상기 적어도 하나의 캐시 라인에 저장된 데이터는 축출-최종 클래스에 속하며, 상기 태그 룩업 유닛은 상기 데이터를 축출-표준 클래스에 속하는 것으로서 재분류하도록 구성되며, 상기 적어도 하나의 캐시 라인에 대응하는 상기 태그 저장 유닛 내의 엔트리에 포함된 상태부는 상기 적어도 하나의 캐시 라인에 저장된 데이터가 클린 및 언핀드임을 나타내고, 상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인 내의 데이터가 상기 하나 이상의 캐시 라인 내의 최근에 최소로 사용된, 클린, 언핀드 및 축출-표준 데이터라는 것을 결정하고, 그 다음에 상기 적어도 하나의 캐시 라인 내의 데이터가 축출되게 하도록 더 구성되는, 컴퓨팅 디바이스.
- 제11항 내지 제14항 중 어느 한 항에 있어서,상기 상태부는 유효 플래그, 더티(dirty) 플래그, 및 핀드(pinned) 플래그를 포함하는, 컴퓨팅 디바이스.
- 제11항 내지 제14항 중 어느 한 항에 있어서,상기 태그 룩업 유닛은 상기 적어도 하나의 캐시 라인에 상주하는 데이터에 대해 클린 통지를 프레임 버퍼 로직으로 전송하고, 상기 명령과 관련된 데이터를 위해 상기 적어도 하나의 캐시 라인을 예약하도록 더 구성되는, 컴퓨팅 디바이스.
- 제3항 내지 제6항 중 어느 한 항에 있어서,상기 상태부는 유효 플래그, 더티 플래그, 및 핀드 플래그를 포함하는 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/276,154 US8868838B1 (en) | 2008-11-21 | 2008-11-21 | Multi-class data cache policies |
US12/276,154 | 2008-11-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100057516A KR20100057516A (ko) | 2010-05-31 |
KR101121487B1 true KR101121487B1 (ko) | 2012-02-28 |
Family
ID=41565470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090112619A KR101121487B1 (ko) | 2008-11-21 | 2009-11-20 | 멀티-클래스 데이터 캐시 정책들 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8868838B1 (ko) |
JP (1) | JP5229968B2 (ko) |
KR (1) | KR101121487B1 (ko) |
CN (1) | CN101739357B (ko) |
DE (1) | DE102009046847A1 (ko) |
GB (1) | GB2465474B (ko) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101449256B (zh) | 2006-04-12 | 2013-12-25 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
EP2523101B1 (en) | 2006-11-14 | 2014-06-04 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
KR101064178B1 (ko) * | 2010-08-24 | 2011-09-14 | 한국과학기술원 | 버퍼 캐시 관리 시스템 및 방법 |
US10228949B2 (en) | 2010-09-17 | 2019-03-12 | Intel Corporation | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
JP5837507B2 (ja) | 2010-12-03 | 2015-12-24 | 株式会社ディジタルメディアプロフェッショナル | 画像処理装置 |
WO2012135041A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
TWI520070B (zh) | 2011-03-25 | 2016-02-01 | 軟體機器公司 | 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的記憶體片段 |
WO2012135031A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
JP2012203881A (ja) * | 2011-03-28 | 2012-10-22 | Fujitsu Ltd | ストレージ装置及びストレージ制御装置 |
CN103649931B (zh) | 2011-05-20 | 2016-10-12 | 索夫特机械公司 | 用于支持由多个引擎执行指令序列的互连结构 |
WO2012162188A2 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
US9720829B2 (en) * | 2011-12-29 | 2017-08-01 | Intel Corporation | Online learning based algorithms to increase retention and reuse of GPU-generated dynamic surfaces in outer-level caches |
US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
CN103309818B (zh) * | 2012-03-09 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 存储数据的方法及装置 |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9430410B2 (en) | 2012-07-30 | 2016-08-30 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load accesses of a cache in a single cycle |
US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
US9740612B2 (en) | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
US9311251B2 (en) | 2012-08-27 | 2016-04-12 | Apple Inc. | System cache with sticky allocation |
US20140089600A1 (en) * | 2012-09-27 | 2014-03-27 | Apple Inc. | System cache with data pending state |
US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
US9372811B2 (en) * | 2012-12-13 | 2016-06-21 | Arm Limited | Retention priority based cache replacement policy |
CN103092920B (zh) * | 2012-12-26 | 2017-04-12 | 新浪网技术(中国)有限公司 | 半结构化数据的存储方法及存储系统 |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
EP2972836B1 (en) | 2013-03-15 | 2022-11-09 | Intel Corporation | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
WO2014151018A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for executing multithreaded instructions grouped onto blocks |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
CN103336844B (zh) * | 2013-07-22 | 2016-12-28 | 广西师范大学 | 大数据rd分割方法 |
US10152410B2 (en) * | 2014-03-28 | 2018-12-11 | Empire Technology Development Llc | Magnetoresistive random-access memory cache write management |
US9866498B2 (en) * | 2014-12-23 | 2018-01-09 | Intel Corporation | Technologies for network packet cache management |
US10866901B2 (en) | 2018-06-02 | 2020-12-15 | International Business Machines Corporation | Invalidating CKD data tracks prior to unpinning, wherein upon destaging invalid track image from cache to a track of data on storage drive, the track of data on the storage drive is unpinned which enables destages of data from the cache to the track of data on the storage drive going forward |
US11544063B2 (en) | 2018-11-21 | 2023-01-03 | SK Hynix Inc. | Memory system and data processing system including the same |
KR102684940B1 (ko) * | 2018-11-21 | 2024-07-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 |
US11099989B2 (en) | 2019-03-12 | 2021-08-24 | International Business Machines Corporation | Coherency maintenance via physical cache coordinate comparison |
US10831661B2 (en) | 2019-04-10 | 2020-11-10 | International Business Machines Corporation | Coherent cache with simultaneous data requests in same addressable index |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990026501A (ko) * | 1997-09-25 | 1999-04-15 | 구자홍 | 분산 공유 메모리의 캐시 일관성 제어방법 및 장치 |
KR20050000350A (ko) * | 2003-06-23 | 2005-01-03 | 마이크로소프트 코포레이션 | 캐쉬 엔트리를 무효화하기 위한 일반적인 의존성 모델 |
KR100514677B1 (ko) | 2002-10-16 | 2005-09-14 | 인터내셔널 비지네스 머신즈 코포레이션 | 컴퓨터 시스템 및 캐시 라인 대체 방법 |
KR100617663B1 (ko) | 2001-09-14 | 2006-08-28 | 썬 마이크로시스템즈, 인코포레이티드 | 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3236287B2 (ja) | 1990-11-29 | 2001-12-10 | キヤノン株式会社 | マルチプロセッサシステム |
JPH04215151A (ja) | 1990-12-13 | 1992-08-05 | Nec Commun Syst Ltd | キャッシュ制御方式 |
JPH06348595A (ja) * | 1993-06-07 | 1994-12-22 | Hitachi Ltd | キャッシュ装置 |
JPH0728706A (ja) | 1993-07-14 | 1995-01-31 | Sumitomo Electric Ind Ltd | キャッシュメモリ装置 |
US5893920A (en) * | 1996-09-30 | 1999-04-13 | International Business Machines Corporation | System and method for cache management in mobile user file systems |
US6223256B1 (en) * | 1997-07-22 | 2001-04-24 | Hewlett-Packard Company | Computer cache memory with classes and dynamic selection of replacement algorithms |
GB2385174B (en) | 1999-01-19 | 2003-11-26 | Advanced Risc Mach Ltd | Memory control within data processing systems |
JP2002024088A (ja) | 2000-07-07 | 2002-01-25 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JP2002140234A (ja) * | 2000-11-02 | 2002-05-17 | Hitachi Ltd | キャッシュ装置 |
US7027064B2 (en) * | 2002-02-28 | 2006-04-11 | Sun Microsystems, Inc. | Active block write-back from SRAM cache to DRAM |
JP2004145780A (ja) | 2002-10-28 | 2004-05-20 | Mitsubishi Electric Corp | マルチプロセッサ・キャッシュ装置 |
JP2004326187A (ja) * | 2003-04-21 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 情報処理装置およびその制御方法 |
US7024521B2 (en) | 2003-04-24 | 2006-04-04 | Newisys, Inc | Managing sparse directory evictions in multiprocessor systems via memory locking |
US7010649B2 (en) * | 2003-10-14 | 2006-03-07 | International Business Machines Corporation | Performance of a cache by including a tag that stores an indication of a previously requested address by the processor not stored in the cache |
JP2006048447A (ja) * | 2004-08-05 | 2006-02-16 | Matsushita Electric Ind Co Ltd | キャッシュメモリ装置およびそれを用いる集積回路ならびにデータのキャッシュメモリ方法およびプログラム |
US7380065B2 (en) | 2005-03-30 | 2008-05-27 | International Business Machines Corporation | Performance of a cache by detecting cache lines that have been reused |
US7536513B2 (en) * | 2005-03-31 | 2009-05-19 | International Business Machines Corporation | Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state |
US7793049B2 (en) | 2007-10-30 | 2010-09-07 | International Business Machines Corporation | Mechanism for data cache replacement based on region policies |
US8464009B2 (en) | 2008-06-04 | 2013-06-11 | Oracle America, Inc. | Method for memory interleave support with a ceiling mask |
US20100079454A1 (en) | 2008-09-29 | 2010-04-01 | Legakis Justin S | Single Pass Tessellation |
-
2008
- 2008-11-21 US US12/276,154 patent/US8868838B1/en active Active
-
2009
- 2009-11-18 GB GB0920187A patent/GB2465474B/en active Active
- 2009-11-18 DE DE102009046847A patent/DE102009046847A1/de not_active Withdrawn
- 2009-11-20 KR KR1020090112619A patent/KR101121487B1/ko active IP Right Grant
- 2009-11-23 CN CN2009102235138A patent/CN101739357B/zh active Active
- 2009-11-24 JP JP2009266419A patent/JP5229968B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990026501A (ko) * | 1997-09-25 | 1999-04-15 | 구자홍 | 분산 공유 메모리의 캐시 일관성 제어방법 및 장치 |
KR100617663B1 (ko) | 2001-09-14 | 2006-08-28 | 썬 마이크로시스템즈, 인코포레이티드 | 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 |
KR100514677B1 (ko) | 2002-10-16 | 2005-09-14 | 인터내셔널 비지네스 머신즈 코포레이션 | 컴퓨터 시스템 및 캐시 라인 대체 방법 |
KR20050000350A (ko) * | 2003-06-23 | 2005-01-03 | 마이크로소프트 코포레이션 | 캐쉬 엔트리를 무효화하기 위한 일반적인 의존성 모델 |
Also Published As
Publication number | Publication date |
---|---|
US8868838B1 (en) | 2014-10-21 |
CN101739357A (zh) | 2010-06-16 |
JP5229968B2 (ja) | 2013-07-03 |
JP2010123130A (ja) | 2010-06-03 |
CN101739357B (zh) | 2012-08-29 |
GB2465474B (en) | 2011-08-31 |
GB2465474A (en) | 2010-05-26 |
GB0920187D0 (en) | 2010-01-06 |
KR20100057516A (ko) | 2010-05-31 |
DE102009046847A1 (de) | 2010-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101121487B1 (ko) | 멀티-클래스 데이터 캐시 정책들 | |
US8244984B1 (en) | System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy | |
US8949541B2 (en) | Techniques for evicting dirty data from a cache using a notification sorter and count thresholds | |
US8131931B1 (en) | Configurable cache occupancy policy | |
US8060700B1 (en) | System, method and frame buffer logic for evicting dirty data from a cache using counters and data types | |
US9639466B2 (en) | Control mechanism for fine-tuned cache to backing-store synchronization | |
US8700862B2 (en) | Compression status bit cache and backing store | |
KR101086507B1 (ko) | Cpu 트래픽을 스페셜로서 마킹하는 것에 의한 데드락 회피 | |
US9952977B2 (en) | Cache operations and policies for a multi-threaded client | |
US8135926B1 (en) | Cache-based control of atomic operations in conjunction with an external ALU block | |
US8917271B2 (en) | Redistribution of generated geometric primitives | |
US8760460B1 (en) | Hardware-managed virtual buffers using a shared memory for load distribution | |
US8595437B1 (en) | Compression status bit cache with deterministic isochronous latency | |
US8108610B1 (en) | Cache-based control of atomic operations in conjunction with an external ALU block | |
US20140118366A1 (en) | Scheduling cache traffic in a tile-based architecture | |
US8504773B1 (en) | Storing dynamically sized buffers within a cache | |
US8341358B1 (en) | System and method for cleaning dirty data in a cache via frame buffer logic | |
US8234478B1 (en) | Using a data cache array as a DRAM load/store buffer | |
US9697006B2 (en) | Technique for performing memory access operations via texture hardware | |
US8539130B2 (en) | Virtual channels for effective packet transfer | |
US20180322078A1 (en) | Unified cache for diverse memory traffic | |
US20130160021A1 (en) | Signaling, ordering, and execution of dynamically generated tasks in a processing system | |
US9436969B2 (en) | Time slice processing of tessellation and geometry shaders | |
US9720858B2 (en) | Technique for performing memory access operations via texture hardware | |
US8788761B2 (en) | System and method for explicitly managing cache coherence |
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: 20150106 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170102 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180110 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190102 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20200102 Year of fee payment: 9 |