KR100404374B1 - 캐시 변수의 자동 갱신을 실행하는 방법 및 장치 - Google Patents
캐시 변수의 자동 갱신을 실행하는 방법 및 장치 Download PDFInfo
- Publication number
- KR100404374B1 KR100404374B1 KR10-2000-0012013A KR20000012013A KR100404374B1 KR 100404374 B1 KR100404374 B1 KR 100404374B1 KR 20000012013 A KR20000012013 A KR 20000012013A KR 100404374 B1 KR100404374 B1 KR 100404374B1
- Authority
- KR
- South Korea
- Prior art keywords
- segment
- variable
- cache
- data
- state
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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
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
본 발명은 캐시 변수의 갱신을 자동으로 실행하기 위한 방법 및 장치를 제공하는 것을 목적으로 한다. 캐시 변수 갱신 하드웨어는 캐시 내의 데이터 세그먼트를 나타내는 복수 개의 변수를 유지한다. 이 복수 개의 변수로는 세그먼트 상태 변수, 세그먼트 시작 어드레스 변수, 세그먼트 길이 변수 및 세그먼트 오프셋 변수가 있다. 캐시 변수 갱신 하드웨어는 캐시와의 데이터 전송을 위한 세그먼트의 선택을 확인하고 또 데이터의 전송을 확인하기 위해 캐시를 감시할 수 있다. 캐시 탐색의 확인에 따라 복수 개의 변수가 초기화된다. 세그먼트 길이 변수는 캐시에 기록되는 데이터 블록에 따라 증가된다. 세그먼트 상태 변수는 데이터 전송의 완료에 응답하여 변경된다.
Description
본 발명은 일반적으로 데이터 처리 분야에 관한 것으로서, 특히 캐시(cache) 변수의 갱신을 자동으로 실행하는 방법 및 장치에 관한 것이다.
컴퓨터는 그 속도가 점점 더 빨라지고 있으며, 컴퓨터의 속도를 향상시키기 위한 여러 가지 방법 중의 하나는 기억 장치 액세스 시간을 최소화하는 방법이다. 데이터 액세스 시간을 단축시키기 위해, 캐시라 불리우는 특수 목적의 정적 랜덤 액세스 메모리(SRAM)인 고속 메모리 영역을 사용하여 현재 사용 중인 데이터를 일시적으로 저장하고 있다. 예를 들어, 프로세서 캐시는 프로세서의 부근에 위치하거나 또는 그 내부에 내장되는 것이 일반적이다. 상위 레벨의 캐시 메모리나 직접 액세스 기억 장치와 같은 이차(보조) 메모리로부터 데이터를 검색하기 위해 정체되거나 대기해야만 하는 것보다는, 캐시에 기억된 데이터가 프로세서에 의해 단지 하나의 프로세서 사이클 내에 액세스되어, 프로세싱을 계속하는 데 필요한 데이터를 검색할 수 있는 것이 유리하다.
기억된 데이터에 대한 액세스 속도를 높이기 위해 기억 장치에 캐시가 사용되는 경우도 가끔 있다. 캐시는 데이터 요청측 장치와의 사이에 전송된 데이터 또는 장차 요청될 가능성이 있는 데이터를 보유한다. 캐시로부터의 데이터를 검색하기 위해, 기억 장치는 캐시 내에서 어떤 데이터가 유효한 지를 나타내는 변수를 유지하고 있어야 한다. 이들 변수는 데이터 전송의 개시 시점 또는 종료 시점에 소프트웨어에 의해 유지되는 것이 통상적이다. 따라서, 전송 도중에는 이들 변수가 세그먼트 내용과 일치되지 않아, 데이터 무결성 노출(data integrity exposure)의 원인이 된다. 이 소프트웨어는 데이터 요청측에 대한 데이터 전송이 완료될 때마다 그 변수를 갱신해 주어야 하며, 따라서 코드 실행 시간에 오버헤드(overhead)가 가해져 성능이 저하되는 문제점이 있다.
본 발명의 주목적은 캐시 변수의 갱신을 자동으로 실행하기 위한 개선된 방법 및 장치를 제공하는 데 있다. 본 발명의 다른 목적은 역효과가 거의 없이 캐시 변수의 갱신을 자동으로 실행하고 종래 기술 구성의 문제점 대부분을 해결하는 방법 및 장치를 제공하는 데 있다.
도 1a는 본 발명의 양호한 실시예의 컴퓨터 시스템을 나타내는 블록도.
도 1b는 도 1a에 도시된 컴퓨터 시스템에 대한 양호한 실시예의 캐시 변수 갱신 하드웨어 기능부에 의해 유지되는 캐시 변수 갱신 하드웨어의 변수를 나타내는 도면.
도 2 내지 도 6은 본 발명의 양호한 실시예의 방법 및 장치를 설명하기 위한 논리 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100: 컴퓨터 시스템
102 : 중앙 처리 장치
104 : 메모리 제어기
106, 108 : 캐시 메모리
110 : 캐시 변수 갱신 하드웨어
112 : 캐시 버퍼 관리 논리 회로
116 : 직접 액세스 기억 장치
120 : 통신용 어댑터
간단히 말해서, 본 발명은 캐시 변수의 갱신을 자동으로 실행하는 방법 및 장치를 제공하는 것이다. 캐시 변수 갱신 하드웨어는 캐시 내의 데이터 세그먼트를 나타내는 복수 개의 변수를 유지하고 있다. 이 복수 개의 변수로는 세그먼트 상태 변수, 세그먼트 시작 어드레스 변수, 세그먼트 길이 변수 및 세그먼트 오프셋 변수가 있다. 상기 캐시 변수 갱신 하드웨어는 캐시를 감시하여, 캐시와의 데이터 전송을 위한 세그먼트의 선택을 확인하고 데이터의 전송을 확인한다. 상기 복수 개의 변수는 캐시 탐색의 확인에 응답하여 변수가 초기화된다. 세그먼트 길이 변수는 캐시에 기록된 데이터 블록에 응답하여 증가되고, 세그먼트 상태 변수는 데이터 전송의 완료에 응답하여 변경된다.
본 발명의 다른 목적과 이점은 첨부된 도면을 참조하여 이하에 기재한 본 발명의 양호한 실시예의 상세한 설명으로부터 충분히 이해될 수 있을 것이다.
먼저, 도 1a를 참조하면, 컴퓨터 시스템(100)이 개괄적으로 도시되어 있다. 이 컴퓨터 시스템(100)은 시스템 버스를 통해 상호 접속된 중앙 처리 장치(CPU) (102), 메모리 제어기(104), 제1 주 캐시 메모리(106) 및 제2 캐시 메모리(108)를 구비한다. 컴퓨터 시스템(100)에는 양호한 실시예의 캐시 버퍼 관리 논리 회로(112)와 함께 사용되는 캐시 변수 갱신 하드웨어(110)가 포함되어 있다. 컴퓨터 시스템(100)에는 디스크 드라이브, 즉 직접 액세스 기억 장치(DASD)(116)에 접속된 제어기(114)와, 호스트 컴퓨터(122)에 접속된 통신용 어댑터(120)가 포함되어 있다. 유의할 것은, 본 발명은 도 1a에 도시된 컴퓨터 시스템(100)에서의 사용에만 국한되지는 않는다는 것이다. 예를 들면, 컴퓨터 시스템(100)에 1개 이상의 CPU(102)와 1개 이상의 메모리(106, 108, 116)가 포함될 수 있다.
본 발명의 특징에 따르면, 캐시 변수 갱신 하드웨어(110)는 캐시 탐색을 위해서나, 또는 데이터 전송, 호스트 컴퓨터와의 데이터 전송 및 기억 매체와의 데이터 전송을 위한 캐시 내의 데이터 세그먼트의 선택을 위해서 캐시 버퍼 관리 논리 회로(112)를 감시한다. 캐시 변수 갱신 하드웨어(110)는, 예컨대 하드 디스크 제어기 모듈 내의 DASD 제어기(114) 또는 메모리 제어기(104)와 함께 단일체로서 구현될 수 있다. 캐시 변수 갱신 하드웨어(110)는 캐시 변수의 자동 갱신을 제공하며, 이는 디스크 드라이브(116)의 성능을 향상시키기 위해 사용하면 유리할 것이다.
본 발명의 특징에 따르면, 캐시 변수 자동 갱신 하드웨어(110)는 소프트웨어에서의 명령어 오버헤드를 감소시킨다. 종래, 캐시 변수는 소프트웨어에 의해 유지되었기 때문에 데이터 전송의 개시 또는 종료 시에 오버헤드가 부가되었다. 이 캐시 변수 갱신의 오버헤드는 프로세서 성능을 향상시켜 오버헤드를 감소시킴으로써 해소되는 것이 일반적이었다. 양호한 실시예의 캐시 변수 갱신 하드웨어(110)를 사용하여 소프트웨어 오버헤드를 감소시킴으로써, 소정의 시간 간격 내에 더 많은 동작이 수행될 수 있게 되며, 이는 기억 장치의 성능을 향상시킨다. 변수들은 실시간으로 갱신되기 때문에, 데이터 무결성 노출(data integrity exposure)이 크게 감소된다. 소프트웨어는 전송의 개시 시점 또는 종료 시점에서 변수를 갱신할 수 있다. 그 결과, 종래의 소프트웨어 구성에 의하면, 캐시 탐색 동작은 활발하게 데이터를 전송하고 있는 세그먼트의 정확한 표시를 행하지 못한다.
도 1b를 참조하면, 캐시 변수 갱신 하드웨어 블록(110)은 각각의 관련된 캐시(106, 108)의 내용을 나타내기 위해 복수 개의 캐시 변수 갱신 변수(130)를 유지하고 있다. 캐시 변수 갱신 변수(130)로는 세그먼트 상태 변수(변수명: Segment_State)(132), 세그먼트 시작 LBA(논리 블록 어드레스) 변수 (Segment_Start_LBA; 134), 세그먼트 길이 변수(Segment_Length; 136) 및 세그먼트 오프셋 변수(Segment_Offset; 138)가 있다. 다중 세그먼트로 된 캐시(106, 108)에 있어서는, 각각의 세그먼트마다 캐시 변수 갱신 변수(130)의 복제본이 유지된다. 상기 세그먼트 상태 변수(Segment_State; 132)는 세그먼트 내에서 현재 수행되고 있는 동작의 유형(type of activity)을 나타내는 플래그를 유지하고 있다. 이 세그먼트 상태 변수(Segment_State; 132)로 나타내는 이들 동작 유형으로는,
세그먼트 판독/기록 상태,
호스트 컴퓨터 작동 상태(active),
디스크 드라이브 작동 상태,
호스트 컴퓨터 대기 상태 및
디스크 드라이브 대기 상태
가 있다.
세그먼트 시작 LBA 변수(Segment_Start_LBA; 134)는 세그먼트 내의 첫번째 유효 데이터 블록을 나타낸다. 세그먼트 길이 변수(Segment_Length; 136)는 세그먼트 내의 유효 블록의 수를 나타낸다. 세그먼트 오프셋 변수(Segment_Offset; 138)는 세그먼트 시작 LBA 변수(Segment_Start_LBA; 134)의 물리적 메모리에 대한 포인터를 나타낸다.
캐시 변수 갱신 하드웨어(110)는 캐시 탐색시, 호스트 컴퓨터와의 데이터 전송시, 디스크 드라이브와의 데이터 전송시, 호스트 컴퓨터와의 데이터 전송 완료시, 그리고 디스크 드라이브와의 데이터 전송 완료시에 변수(132, 134, 136, 138)를 갱신한다. 캐시 탐색시의 경우에는, 캐시와의 데이터 전송을 준비하기 위해 그 세그먼트에 대한 모든 변수가 초기화된다. 호스트 컴퓨터와의 데이터 전송시의 경우에는, 각각의 데이터 블록이 호스트 컴퓨터로부터 캐시 버퍼 세그먼트에 기록될 때 세그먼트 길이 변수(Segment_Length; 136)가 증가된다. 만일, 세그먼트 길이 변수 (Segment_Length; 136)가 최대값에 이르게 되면, 세그먼트 시작 LBA 변수 (Segment_Start_LBA; 134)와 세그먼트 오프셋 변수(Segment_Offset; 138)가 증가된다. 디스크 드라이브와의 데이터 전송시의 경우에는, 각각의 데이터 블록이 기억 매체로부터 캐시 버퍼 세그먼트로 기록될 때 세그먼트 길이 변수(Segment_Length; 136)가 증가된다. 만일, 세그먼트 길이 변수(Segment_Length; 136)가 최대값에 이르게 되면, 세그먼트 시작 LBA 변수(Segment_Start_LBA; 134)와 세그먼트 오프셋 변수(Segment_Offset; 138)가 증가된다. 호스트 컴퓨터와의 데이터 전송 완료시에는, 호스트 컴퓨터에 대한 세그먼트가 휴지(idle) 상태로 설정된다. 디스크 드라이브와의 데이터 전송 완료시에는, 디스크 드라이브에 대한 세그먼트가 휴지 상태로 설정된다.
도 2 내지 도 5를 참조하면, 캐시 변수 갱신 하드웨어(110)에 의한 캐시 변수 자동 갱신을 위한 순차 동작이 나타나 있다. 도 2에는 캐시 탐색 후의 캐시 변수 갱신을 위한 순차 동작이 나타나 있다. 캐시 탐색 출력은 탐색 데이터 논리 블록 어드레스, 즉 탐색 데이터 LBA(Search_Data_LBA), 탐색 유형(Search_Type) (판독/기록), 탐색 히트 세그먼트(Search_Hit_Segment), 탐색 히트 유형 (Search_Hit_Type)을 포함한다(블록 202). 이어서, 탐색 히트 세그먼트 (Search_Hit_Segment)의 세그먼트 상태 변수(Segment_State)가 판독된다(블록 204). 다음에, 세그먼트 상태 변수(Segment_State; 132)가 변경되고, 탐색 히트 세그먼트 변수(Search_Ht_Segment)와 세그먼트 상태 변수(Segment_State)가 기록된다(블록 206). 세그먼트 상태 변수(Segment_State)의 예가 도시되어 있는데, 여기에는 세그먼트가 판독 또는 기록 상태인지, 호스트가 작동 상태인지, 그리고 기억 매체가 휴지, 대기 또는 작동 상태인지가 포함된다(블록 208). 다음으로, 세그먼트 시작 LBA 변수(Segment_Start_LBA; 134)가 기록되고(블록 210), 세그먼트 길이 변수(Segment_Length; 136)가 기록되며(블록 212), 세그먼트 오프셋 변수(Segment_Offset; 138)가 기록된다(블록 214). 이로써, 캐시 탐색 후의 캐시 변수 갱신이 완료된다(블록 216).
도 3을 참조하면, 호스트 데이터 블록이 캐시 버퍼에 기록된 후의 순차적인 캐시 변수 갱신 동작이 나타나 있다. 호스트 데이터 블록은 호스트 DMA 제어기로부터 캐시 버퍼에 기록되고(블록 302), 호스트 컴퓨터 작동 상태 세그먼트로부터 세그먼트 길이 변수(Segment_Length)가 판독되며(블록 304), 세그먼트 길이 변수 (Segment_Length)는 세그먼트당 블록 수 변수(Blocks_per_Segment)와 비교된다(판정 블록 306). 세그먼트 길이 변수(Segment_Length)와 세그먼트당 블록 수 변수 (Blocks_per_Segment)가 동일하다고 판정되면(판정 블록 306), 세그먼트 시작 LBA 변수(Segment_Start_LBA)와 세그먼트 오프셋 변수(Segment_Offset)가 판독된다(블록 308). 그리고, 세그먼트 시작 LBA 변수(Segment_Start_LBA; 134)와 세그먼트 오프셋 변수(Segment_Offset; 138)가 증가된다(블록 310). 이어서, 세그먼트 시작 LBA 변수(Segment_Start_LBA; 134)와 세그먼트 오프셋 변수(Segment_Offset; 138)가 기록된다(블록 312). 이렇게 하여, 호스트 컴퓨터의 데이터 블록이 캐시 버퍼에 기록된 후의 캐시 변수 갱신이 완료된다(블록 314). 세그먼트 길이 변수(Segment_Length)가 세그먼트당 블록 수 변수(Blocks_per_Segment)와 동일하지 않다고 판정되면(판정 블록 306), 세그먼트 길이 변수(Segment_Length)가 증가된다(블록 316). 이어서, 세그먼트 길이 변수(Segment_Length; 136)가 기록된다(블록 318).
도 4를 참조하면, 디스크 드라이브의 데이터 블록이 캐시 버퍼에 기록된 후의 순차적인 캐시 변수 갱신 동작이 나타나 있다. 디스크 드라이브의 데이터 블록은 디스크 드라이브의 DMA 제어기로부터 캐시 버퍼에 기록된다(블록 402). 드라이브 작동상태 세그먼트로부터 세그먼트 길이 변수(Segment_Length)가 판독된다(블록 404). 이 세그먼트 길이 변수 (Segment_Length)는 세그먼트당 블록 수 변수(Blocks_per_Segment)와 비교된다(판정 블록 406). 세그먼트 길이 변수(Segment_Length)가 세그먼트당 블록 수 변수 (Blocks_per_Segment)와 동일하다고 판정되면(판정 블록 406), 세그먼트 시작 LBA 변수(Segment_Start_LBA)와 세그먼트 오프셋 변수(Segment_Offset)가 판독된다(블록 408). 이어서, 세그먼트 시작 LBA 변수(Segment_Start_LBA; 134)와 세그먼트 오프셋 변수(Segment_Offset; 138)가 증가된다(블록 410). 다음에, 세그먼트 시작 LBA 변수(Segment_Start_LBA; 134)와 세그먼트 오프셋 변수(Segment_Offset; 138)가 기록된다(블록 412). 이렇게 하여, 디스크 드라이브의 데이터 블록이 캐시 버퍼에 기록된 후의 캐시 변수 갱신이 완료된다(블록 414). 세그먼트 길이 변수(Segment_Length)가 세그먼트당 블록 수 변수(Blocks_per_Segment)와 동일하지 않다고 판정되면(판정 블록 406), 세그먼트 길이 변수(Segment_Length)가 증가된다(블록 416). 이어서, 세그먼트 길이 변수(Segment_Length; 136)가 기록된다(블록 418). 이로써, 디스크 드라이브의 데이터 블록이 캐시 버퍼에 기록된 후의 캐시 변수 갱신이 완료된다.
도 5를 참조하면, 호스트 컴퓨터와의 데이터 전송 완료 후의 순차적인 캐시 변수 갱신 동작이 나타나 있다. 세그먼트에서의 호스트 컴퓨터와의 데이터 전송 완료는 호스트 컴퓨터의 DMA 제어기로부터 수신된다(블록 502). 호스트 컴퓨터 작동상태 세그먼트로부터 세그먼트 상태 변수(Segment_State; 132)가 판독된다(블록 504). 세그먼트 상태 변수(Segment_State; 132) 내의 호스트 플래그가 변경된다(블록 506). 호스트 컴퓨터 작동상태 세그먼트의 세그먼트 상태 변수(Segment_State; 132)가 기록된다(블록 508). 이로써, 호스트 컴퓨터와의 데이터 전송 완료 후의 캐시 변수 갱신이 완료된다(블록 510).
도 6을 참조하면, 디스크 드라이브와의 데이터 전송 완료 후의 순차적인 캐시 변수 갱신 동작이 나타나 있다. 세그먼트에서의 디스크 드라이브와의 데이터 전송 완료는 디스크 드라이브의 DMA 제어기로부터 수신된다(블록 602). 그리고, 세그먼트 상태 변수(Segment_State; 132)는 드라이브 작동상태 세그먼트로부터 판독된다(블록 604). 세그먼트 상태 변수(Segment_State; 132) 내의 드라이브 플래그가 변경된다(블록 606). 이어서, 드라이브 작동 세그먼트의 세그먼트 상태 변수(Segment_State; 132)가 기록된다(블록 608). 이로써, 드라이브와의 데이터 전송 완료 후의 캐시 변수 갱신이 완료된다(블록 610).
본 발명은 첨부 도면에 도시된 실시예의 상세한 설명을 참조하여 개시하고 있지만, 이 상세한 설명은 특허 청구의 범위에서 청구된 본 발명의 범위를 제한하려는 것은 아니다.
본 발명의 캐시 변수 자동 갱신 방법 및 장치에 의하면, 종래 캐시 변수가 소프트웨어에 의해 유지되어 데이터 전송의 개시 또는 종료에 오버헤드를 발생시켰던 소프트웨어에서의 명령어 오버헤드를 감소시킴으로써, 더 많은 동작이 소정의 시간 간격 내에 수행 가능하고 기억 장치의 성능도 향상시킬 수 있다.
Claims (12)
- 캐시 변수의 자동 갱신을 실행하는 장치에 있어서,a) 캐시와,b) 상기 캐시에 접속된 캐시 변수 갱신 하드웨어를 포함하고,상기 캐시 변수 갱신 하드웨어는 상기 캐시 내의 데이터 세그먼트를 나타내는 복수 개의 변수를 유지하며,상기 복수 개의 변수는 세그먼트 상태 변수, 세그먼트 시작 어드레스 변수, 세그먼트 길이 변수 및 세그먼트 오프셋 변수를 포함하고,상기 캐시 변수 갱신 하드웨어는 상기 세그먼트 상태 변수에 복수 개의 플래그를 유지하고, 상기 플래그는 상기 캐시 내의 상기 데이터 세그먼트에서 수행되고 있는 동작의 유형을 나타내는 것인 캐시 변수 자동 갱신 장치.
- 삭제
- 제1항에 있어서, 상기 캐시 변수 갱신 하드웨어는 상기 캐시 내의 상기 데이터 세그먼트에서 수행되고 있는 동작이 판독인지 기록인지를 나타내는 플래그와, 호스트 컴퓨터가 작동 상태인지 대기 상태인지와 디스크 드라이브가 작동 상태인지 대기 상태인지를 나타내는 플래그를 유지하는 것인 캐시 변수 자동 갱신 장치.
- 제1항에 있어서, 상기 캐시 변수 갱신 하드웨어는 상기 세그먼트의 첫번째 유효 데이터 블록을 나타내기 위해 상기 세그먼트 시작 어드레스 변수를 유지하는 것인 캐시 변수 자동 갱신 장치.
- 제1항에 있어서, 상기 캐시 변수 갱신 하드웨어는 상기 세그먼트의 유효 블록 수를 나타내기 위해 상기 세그먼트 길이 변수를 유지하는 것인 캐시 변수 자동 갱신 장치.
- 제1항에 있어서, 상기 캐시 변수 갱신 하드웨어는 상기 세그먼트 오프셋 변수를 상기 세그먼트에 있는 첫번째 유효 데이터 블록의 물리적 메모리에 대한 포인터로서 유지하는 것인 캐시 변수 자동 갱신 장치.
- 제1항에 있어서, 상기 캐시 변수 갱신 하드웨어는 상기 복수 개의 변수의 갱신을, 호스트 컴퓨터와 상기 캐시 간의 데이터 전송시, 디스크 드라이브와 상기 캐시 간의 데이터 전송시, 및 캐시 탐색 후에 수행하는 것인 캐시 변수 자동 갱신 장치.
- 캐시 변수 갱신 하드웨어에 의해 수행되는, 캐시 변수의 자동 갱신을 실행하는 방법에 있어서,a) 상기 캐시 내의 데이터 세그먼트를 나타내는, 세그먼트 상태 변수, 세그먼트 시작 어드레스 변수, 세그먼트 길이 변수 및 세그먼트 오프셋 변수를 포함한 복수 개의 변수를 유지하고 또 상기 세그먼트 상태 변수에는 상기 캐시 내의 상기 데이터 세그먼트에서 수행되고 있는 동작의 유형을 나타내는 복수 개의 플래그를 유지하는 단계와,b) 상기 캐시와의 데이터 전송을 위한 세그먼트의 선택을 확인하고 또 데이터의 전송을 확인하기 위해 상기 캐시를 감시하는 단계와,c) 캐시 탐색의 확인에 응답하여 상기 복수 개의 변수를 초기화하는 단계와,d) 상기 캐시에 기록되는 데이터 블록에 응답하여 상기 세그먼트 길이 변수를 증가시키는 단계와,e) 데이터 전송의 완료에 응답하여 상기 세그먼트 상태 변수를 변경하는 단계를 포함하는 캐시 변수 자동 갱신 방법.
- 제8항에 있어서, 상기 세그먼트 길이 변수에 대한 최대값임을 확인하는 단계와, 상기 세그먼트 시작 어드레스 변수 및 상기 세그먼트 오프셋 변수를 증가시키는 단계를 더 포함하는 캐시 변수 자동 갱신 방법.
- 제9항에 있어서, 상기 세그먼트 시작 어드레스 변수는 캐시 세그먼트 내의 첫번째 유효 데이터 블록을 나타내는 것인 캐시 변수 자동 갱신 방법.
- 제8항에 있어서, 상기 캐시 내의 데이터 세그먼트를 나타내는 상기 복수 개의 변수를 유지하는 단계는, 상기 데이터 세그먼트에서 수행되고 있는 동작이 세그먼트 판독인지 세그먼트 기록인지를 나타내기 위해 상기 세그먼트 상태 변수의 상기 플래그들을 유지하는 단계를 더 포함하는 것인 캐시 변수 자동 갱신 방법.
- 제11항에 있어서, 상기 데이터 세그먼트에서 수행되고 있는 동작이 작동 상태(active)인지 대기 상태(pending)인지를 나타내기 위해 상기 세그먼트 상태 변수의 상기 플래그들을 유지하는 단계를 더 포함하는 것인 캐시 변수 자동 갱신 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/283,350 US6263408B1 (en) | 1999-03-31 | 1999-03-31 | Method and apparatus for implementing automatic cache variable update |
US09/283,350 | 1999-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010006774A KR20010006774A (ko) | 2001-01-26 |
KR100404374B1 true KR100404374B1 (ko) | 2003-11-05 |
Family
ID=23085624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2000-0012013A KR100404374B1 (ko) | 1999-03-31 | 2000-03-10 | 캐시 변수의 자동 갱신을 실행하는 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6263408B1 (ko) |
KR (1) | KR100404374B1 (ko) |
SG (1) | SG82689A1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7555603B1 (en) * | 1998-12-16 | 2009-06-30 | Intel Corporation | Transaction manager and cache for processing agent |
US6675277B2 (en) * | 2000-07-26 | 2004-01-06 | Tns Holdings, Inc. | Method and apparatus for demand usable adapter memory access management |
US6957300B2 (en) * | 2001-11-30 | 2005-10-18 | Seagate Technology Llc | Reducing delay of command completion due to overlap condition |
US6968423B2 (en) * | 2002-02-05 | 2005-11-22 | Seagate Technology Llc | Dynamic data access pattern detection in a block data storage device |
US20030200386A1 (en) * | 2002-04-19 | 2003-10-23 | Seagate Technology Llc | Data retention prioritization for a data storage device |
US6934802B2 (en) * | 2002-04-19 | 2005-08-23 | Seagate Technology Llc | Band detection and performance optimization for a data storage device |
US6701412B1 (en) * | 2003-01-27 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for performing software sampling on a microprocessor cache |
US20060123194A1 (en) * | 2004-12-02 | 2006-06-08 | Claudio Alex Cukierkopf | Variable effective depth write buffer and methods thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4685082A (en) * | 1985-02-22 | 1987-08-04 | Wang Laboratories, Inc. | Simplified cache with automatic update |
KR940007682A (ko) * | 1992-09-17 | 1994-04-27 | 강진구 | 캐쉬 업데이트 (Cache Update) 장치 및 방법 |
KR970029104A (ko) * | 1995-11-27 | 1997-06-26 | 김광호 | 그룹 적응형 세그먼트 캐시버퍼 구현방법 |
KR970071241A (ko) * | 1996-04-17 | 1997-11-07 | 구자홍 | 다중처리 시스템의 캐시 스테이트 램(ram) 관리방법 |
KR980011510A (ko) * | 1996-07-31 | 1998-04-30 | 문정환 | 캐쉬메모리의 업-데이터장치 및 방법 |
KR19980039208A (ko) * | 1996-11-27 | 1998-08-17 | 정장호 | 캐시메모리의 데이타 갱신방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1325288C (en) * | 1989-02-03 | 1993-12-14 | Ricky C. Hetherington | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system |
US5974508A (en) * | 1992-07-31 | 1999-10-26 | Fujitsu Limited | Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced |
JP3360933B2 (ja) * | 1994-06-01 | 2003-01-07 | 富士通株式会社 | 情報処理システムにおける記憶制御方法および記憶制御装置 |
US5946708A (en) * | 1997-01-24 | 1999-08-31 | Integrated Memory Logic, Inc | Automated cache manager for storage devices |
JPH10334695A (ja) * | 1997-05-27 | 1998-12-18 | Toshiba Corp | キャッシュメモリ及び情報処理システム |
US6141728A (en) * | 1997-09-29 | 2000-10-31 | Quantum Corporation | Embedded cache manager |
US6128717A (en) * | 1998-01-20 | 2000-10-03 | Quantum Corporation | Method and apparatus for storage application programming interface for digital mass storage and retrieval based upon data object type or size and characteristics of the data storage device |
US6009533A (en) * | 1998-06-02 | 1999-12-28 | Via-Cyrix, Inc. | Speculative bus cycle acknowledge for 1/2X core/bus clocking |
-
1999
- 1999-03-31 US US09/283,350 patent/US6263408B1/en not_active Expired - Fee Related
-
2000
- 2000-03-10 KR KR10-2000-0012013A patent/KR100404374B1/ko not_active IP Right Cessation
- 2000-03-20 SG SG200001604A patent/SG82689A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4685082A (en) * | 1985-02-22 | 1987-08-04 | Wang Laboratories, Inc. | Simplified cache with automatic update |
KR940007682A (ko) * | 1992-09-17 | 1994-04-27 | 강진구 | 캐쉬 업데이트 (Cache Update) 장치 및 방법 |
KR970029104A (ko) * | 1995-11-27 | 1997-06-26 | 김광호 | 그룹 적응형 세그먼트 캐시버퍼 구현방법 |
KR970071241A (ko) * | 1996-04-17 | 1997-11-07 | 구자홍 | 다중처리 시스템의 캐시 스테이트 램(ram) 관리방법 |
KR980011510A (ko) * | 1996-07-31 | 1998-04-30 | 문정환 | 캐쉬메모리의 업-데이터장치 및 방법 |
KR19980039208A (ko) * | 1996-11-27 | 1998-08-17 | 정장호 | 캐시메모리의 데이타 갱신방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20010006774A (ko) | 2001-01-26 |
US6263408B1 (en) | 2001-07-17 |
SG82689A1 (en) | 2001-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9858206B2 (en) | Systems and methods for flushing a cache with modified data | |
US4466059A (en) | Method and apparatus for limiting data occupancy in a cache | |
US5778430A (en) | Method and apparatus for computer disk cache management | |
EP0077452B1 (en) | Data promotion in storage subsystems | |
US7171516B2 (en) | Increasing through-put of a storage controller by autonomically adjusting host delay | |
US20070168754A1 (en) | Method and apparatus for ensuring writing integrity in mass storage systems | |
US6473845B1 (en) | System and method for dynamically updating memory address mappings | |
JPH0997230A (ja) | データ転送方法及びシステム | |
US5313602A (en) | Multiprocessor system and method of control over order of transfer of data between buffer storages | |
KR100404374B1 (ko) | 캐시 변수의 자동 갱신을 실행하는 방법 및 장치 | |
JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
EP0835490B1 (en) | Write cache for write performance improvement | |
EP0156179B1 (en) | Method for protecting volatile primary store in a staged storage system | |
US6591336B2 (en) | Technique for maintaining coherency between shared-disk and disk caches | |
US6532513B1 (en) | Information recording and reproduction apparatus | |
US10671537B2 (en) | Reducing translation latency within a memory management unit using external caching structures | |
JPH04336641A (ja) | 処理システムにおける使用のためのデータキャッシュおよび方法 | |
US20060047901A1 (en) | Access control method, disk control unit and storage apparatus | |
US20240111681A1 (en) | Last use cache policy | |
US6397295B1 (en) | Cache mechanism for shared resources in a multibus data processing system | |
US6317857B1 (en) | System and method for utilizing checksums to recover data | |
KR100387576B1 (ko) | 멀티프로세서시스템의캐쉬응집프로토콜처리방법 | |
JPH10198604A (ja) | キャッシュリプレース方式 | |
KR100201671B1 (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템의 캐시 메모리 이용방법 | |
CN118363901A (zh) | PCIe设备、电子组件及电子设备 |
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: 20060904 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |