KR19990047097A - How to Manage Disk Cache on High-Speed Parallel Computers - Google Patents
How to Manage Disk Cache on High-Speed Parallel Computers Download PDFInfo
- Publication number
- KR19990047097A KR19990047097A KR1019970065333A KR19970065333A KR19990047097A KR 19990047097 A KR19990047097 A KR 19990047097A KR 1019970065333 A KR1019970065333 A KR 1019970065333A KR 19970065333 A KR19970065333 A KR 19970065333A KR 19990047097 A KR19990047097 A KR 19990047097A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- line
- write
- cache
- dirty
- Prior art date
Links
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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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
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
본 발명은 입출력 성능을 향상시키기 위해 입출력 처리 노드에서 구동되는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법에 관한 것이다.The present invention relates to a disk cache management method of a high-speed parallel computer running in an input / output processing node to improve the input / output performance.
본 발명인 마이크로 커널 기반의 운영체제(MISIX)는 기능적으로 서버화된 여러 종류의 관리자들이 상호 메시지 통신 방식으로 정합 한다. 사용자 파일을 관리하는 파일 관리자는 디스크 캐쉬 관리자에게 입출력 요청을 위한 메시지를 발행한다. 디스크 캐쉬 관리자는 캐슁 단위로서 라인과 블록으로 구성된 2 단계 캐쉬 관리 방법을 가진다. 라인은 물리적 장치로부터 입출력 수행시 가장 효과적인 단위로 구성되며, 블록은 운영체제 버퍼 캐쉬의 입출력 기본 단위로서 제공한다.In the present invention, a microkernel-based operating system (MISIX) matches various types of administrators functionally serverized by mutual message communication. The file manager managing user files issues messages for input / output requests to the disk cache manager. The disk cache manager has a two-step cache management method consisting of lines and blocks as caching units. The line is composed of the most effective units when performing I / O from the physical device, and the block serves as the basic unit of input / output of the operating system buffer cache.
따라서 본 발명은 인접한 블록들을 디스크 캐쉬에 선반입하여 캐쉬 적중률을 높여주고, 캐쉬 실패에 따른 물리적 입출력에 따른 비용을 최소화하므로서 전체적인 성능을 향상하는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법을 제시한다.Accordingly, the present invention provides a disk cache management method of a high-speed parallel computer that improves overall performance by inserting adjacent blocks into a disk cache to increase the cache hit ratio and minimize the cost of physical I / O due to cache failure.
Description
본 발명은 입출력 성능을 향상시키기 위해 입출력 처리 노드에서 구동되는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법에 관한 것이다.The present invention relates to a disk cache management method of a high-speed parallel computer running in an input / output processing node to improve the input / output performance.
일반적인 컴퓨터 시스템에서 디스크에 저장된 데이터는 주기억장치에 적재되어 사용자의 입출력 요구에 대하여 빠르게 응답한다. 운영체제의 버퍼캐쉬는 이러한 목적으로 사용되었으나, 빈번한 입출력 요구로 인한 버퍼캐쉬의 실패는 물리적인 입출력을 수반하였다. 이러한 물리적인 입출력으로 인하여 OLTP와 같은 입출력 성능을 기대하는 응용분야에서는 심각한 입출력 병목현상을 보임으로써 성능 저하의 근본적 원인이 되었다. 따라서 2차 캐쉬로서 디스크 캐쉬가 사용되었다.In a typical computer system, data stored on a disk is loaded into a main memory to quickly respond to a user's input / output request. The operating system's buffer cache was used for this purpose, but the failure of the buffer cache due to frequent I / O requests involved physical I / O. Due to the physical I / O, applications that expect I / O performance such as OLTP show a serious I / O bottleneck, which is a fundamental cause of performance degradation. Therefore, disk cache was used as the secondary cache.
그러나 이러한 기존의 디스크 캐쉬는 제한된 용량과 운영체제 버퍼 캐쉬와 유사한 관리 방법으로 캐쉬 실패 시와 선반입시 빈번한 물리적 입출력을 야기하여 결국 버퍼 캐쉬의 확장정도의 역활로 인식되었다.However, such a conventional disk cache has a limited capacity and a management method similar to the operating system buffer cache, causing frequent physical I / O at the time of cache failure and fetching, and thus, it is recognized as a role of expansion of the buffer cache.
또한 종래 블록 단위 캐쉬 관리의 선반입은 별도의 입출력 명령을 구동하였으며, 물리적 입출력 단위도 디스크의 섹터 단위이므로 캐쉬 실패로 인한 비용이 증가하였다.In addition, the preloading of the conventional block-based cache management drives a separate I / O command, and since the physical I / O unit is a sector unit of the disk, the cost due to the cache failure increases.
따라서, 본 발명은 입출력 노드에 마이크로 커널 기반의 디스크 캐쉬 관리자를 두어 라인과 블록의 2 단계 캐쉬 관리 방법을 통해 캐쉬 적중률을 높여주고, 효과적인 물리적 입출력 단위를 사용하여 단위 입출력당 디스크 접근 시간을 단축하는데 그 목적이 있다.Accordingly, the present invention provides a microkernel-based disk cache manager at the input / output node to increase the cache hit ratio through a two-step cache management method for lines and blocks, and to reduce the disk access time per unit input / output using an effective physical input / output unit. The purpose is.
상술한 목적을 달성하기 위한 본 발명은 캐슁된 모든 라인에서 요청한 캐쉬 라인 존재 여부를 파악하여 캐쉬 라인이 존재하지 않으면 즉시 쓰기이고 쓰기 요청인지 확인하는 제 1 단계와, 상기 확인 결과 즉시 쓰기이고 쓰기 요청일 경우에는 쓰기 단위를 블록으로 설정하고 블록 입출력 관리자(이하 BIOM라 함)를 호출하여 종료하는 제 2 단계와, 상기 확인 결과 즉시 쓰기가 아닌 경우에는 읽기인지 여부를 확인하여 읽기 요청이면 읽기 단위를 라인으로 설정하고, 블록 입출력 관리자(BIOM)를 호출한 후 라인 및 블록 상태 플래그를 밸리드(이하 VALID라 함)로 설정하여 종료하는 제 3 단계와, 상기 확인 결과 읽기 요청이 아닌 지연 쓰기 요청인 경우에는 지연 쓰기 처리 단계로 진행하여 종료하는 제 4 단계와, 상기 캐슁된 모든 라인에서 요청한 캐쉬 라인 존재 여부를 파악하여 캐쉬 라인이 존재하면 인밸리드(이하 INVALID라 함) 라인 상태 처리 단계로 진행하는 제 5 단계와, 상기 단계로부터 실패 여부를 확인하여 실패이면 상기 제 3 단계로 진행하며, 실패가 아니면 종료하는 제 6 단계를 포함하여 이루어진 것을 특징으로 한다.The present invention for achieving the above object is a first step of determining whether the cache line requested from all cached lines exist, and if the cache line does not exist immediately to determine whether it is a write and write request, and as a result of the check immediately write and write request In this case, the second step of setting the write unit to the block and calling the block I / O manager (hereinafter referred to as BIOM) and ending, and if the read result is not to write immediately, checks whether the read unit is performed. A third step of setting a line, calling a block input / output manager (BIOM), and then setting a line and a block state flag to be valid (hereinafter referred to as VALID) and terminating; The fourth step of proceeding to the delayed write processing step and ending; and the cache line zone requested in all the cached lines. Whether the cache line exists and proceeds to the invalidated line state processing step (hereinafter referred to as INVALID); and if the failure is confirmed from the step, the process proceeds to the third step. Otherwise it comprises the sixth step of terminating.
도 1은 본 발명이 적용되는 고속 병렬 컴퓨터 시스템의 구성도.1 is a block diagram of a high-speed parallel computer system to which the present invention is applied.
도 2는 본 발명이 적용되는 입출력 노드의 구성도.2 is a configuration diagram of an input / output node to which the present invention is applied.
도 3은 본 발명이 적용되는 디스크 캐쉬 정합도.3 is a disk cache matching diagram to which the present invention is applied.
도 4는 본 발명이 적용되는 디스크 캐쉬 주요 흐름도.4 is a main flow diagram of a disk cache to which the present invention is applied.
도 5(a) 내지 (f)는 본 발명이 적용되는 디스크 캐쉬 관리 방법의 전체 흐름도.5 (a) to 5 (f) are an overall flowchart of a disk cache management method to which the present invention is applied.
〈도면의 주요 부분에 대한 부호 설명〉<Description of Signs of Major Parts of Drawings>
101 : X-bar 상호 연결망(Xcent Net) 102 및 201 : 처리기 노드(PN)101: X-bar interconnection network (Xcent Net) 102 and 201: processor node (PN)
103 : 입출력 노드(ION) 104 : 통신 제어 노드(CCN)103: input / output node (ION) 104: communication control node (CCN)
105 : Xcent 네트웍 정합기(XNIF)105: Xcent Network Matcher (XNIF)
106 및 203 : 주변기기 상호 접속 버스(PCI Bus)106 and 203: Peripheral Interconnect Bus (PCI Bus)
107 : 블록장치 제어기(SCSI) 108 : 주변 장치(DEV)107: block device controller (SCSI) 108: peripheral device (DEV)
202: 공유 메모리 301 : 마이크로 커널(MK)202: shared memory 301: micro kernel (MK)
302 : 프로세서 관리자(PM) 303 : 파일 관리자(FM)302: Processor Manager (PM) 303: File Manager (FM)
305 : 디스크 캐쉬 관리자(DCM) 306 : BIOM305: Disk Cache Manager (DCM) 306: BIOM
307 : 사용자 프로세서(User process)307: User process
고속 병렬 컴퓨터(이하 SPAX라 함)는 하나의 노드가 4 개의 Intel P6 처리기(201)와 공유 메모리(202) 및 국부 자원들(204)과 P6 버스(203)에 접속된 대칭 다중 프로세서(Symeritric Multi Processor : 이하 SMP라 함) 구조로서, 엑센트 네트(Xcent Net)(101)에 상호 연결되어 클러스터를 형성하고, 16개의 클러스터로서 전체 시스템을 구성하는 병렬 처리 시스템이다. 각 노드에는 마이크로커널(301)을 기반 하여 여러 가지 기능적으로 모듈화된 관리자(302 및 303)가 탑재되어 운용되며 상호 메시지 전송 방식으로 통신한다.A high-speed parallel computer (hereinafter referred to as SPAX) is a symmetric multiprocessor (Symeritric Multi) with one node connected to four Intel P6 processors 201, shared memory 202, and local resources 204, and a P6 bus 203. Processor (hereinafter referred to as SMP) structure, which is interconnected to an Xcent Net 101 to form a cluster, and is a parallel processing system that constitutes an entire system as 16 clusters. Each node is equipped with various functionally modular managers 302 and 303 based on the microkernel 301 to operate and communicate with each other by way of message transmission.
노드는 기능적으로 처리기 노드(102), 입출력 노드(103) 그리고 통신 제어 노드(104)로 구별하며, 이들은 노드 내부의 PCI 버스(106)에 접속된 장치의 종류에 의하여 논리적으로 구분된다. 입출력 노드(103)는 4개의 PCI 버스에 SCSI 제어기를 장착하며, 통신 제어 노드(104)는 4개의 PCI 버스에 통신 제어기를 장착하여 각각 블록 입출력 장치와 문자 입출력 장치를 관리하는 전용 서버로서 메세지 전송 방식에 의한 정합과 입출력 요청 단위의 처리 방법과 순서를 제어하는 서버 노드이다.The nodes are functionally divided into the processor node 102, the input / output node 103 and the communication control node 104, which are logically divided by the type of devices connected to the PCI bus 106 inside the node. The I / O node 103 mounts SCSI controllers on four PCI buses, and the communication control node 104 mounts communication controllers on four PCI buses to transmit messages as dedicated servers managing block I / O devices and character I / O devices, respectively. A server node that controls the processing and ordering of matching and input / output request units.
따라서 SPAX와 같은 병렬 처리 시스템에서 여러 입출력 노드(103)에 장착된 저장용 장치(108)의 입출력 성능을 향상하기 위하여 캐슁 단위를 라인과 블록으로 된 2 단계 캐쉬 관리 방법을 둔다. 또한 라인 단위를 물리적 입출력 단위로 하므로서 디스크 접근시 준비시간과 탐색(Seek) 및 잠재(Latency) 시간이 전체 접근 시간을 결정하는데 근거하여, 데이터 전송량의 크기에 따른 시간은 일정량까지는 거의 무시되므로 그러한 단위를 결정하여 입출력 하므로서 선 반입효과는 물론 디스크 캐쉬의 적중률을 높여주는 방법을 창안한다.Therefore, in order to improve the input / output performance of the storage device 108 mounted on the various input / output nodes 103 in a parallel processing system such as SPAX, a two-stage cache management method of caching units in lines and blocks is provided. In addition, since the preparation time, seek, and latency time of the disk access determine the total access time by using the line unit as the physical input / output unit, the time according to the size of the data transfer amount is almost ignored until a certain amount. By devising the I / O, we devise a method to increase the hit ratio of the disk cache as well as the prefetching effect.
이하, 첨부한 도면을 참조하여 본 발명의 일 실시예를 상세히 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명이 적용되는 고속 병렬 컴퓨터 시스템의 구성도로서, 4개의 중앙 처리 장치 및 내부 자원들을 가진 처리기 노드(Processing Node : PN)(102), 입출력 노드(Input/Output Node : ION)(103) 및 통신 제어 노드(Communication Control Node : CCN)(104)가 고속 상호 연결망인 엑센트 네트(Xcent Net)(101)에 연결되어 상호 메시지 교환으로 통신하는 병렬 처리 시스템을 나타낸다. 각 노드는 내부 주변기기 상호 접속 버스(Peripheral Component Interconnect Bus : PCI Bus)(106)에 장착된 블록장치 제어기(Small Computer System Interface : SCSI)(107) 및 주변장치(Peripheral Devices : DEV)(108)의 종류로서, 입출력 노드(103) 및 통신 처리 노드(104)로 분류된다.1 is a block diagram of a high-speed parallel computer system to which the present invention is applied, a processing node (PN) 102 having four central processing units and internal resources, an input / output node (ION) ( 103 and a Communication Control Node (CCN) 104 are connected to an Xcent Net 101, which is a high-speed interconnection network, to communicate in a mutual message exchange. Each node is connected to a Block Computer Controller (SCSI) 107 and a Peripheral Devices (DEV) 108 mounted on a Peripheral Component Interconnect Bus (PCI Bus) 106. As a kind, they are classified into the input / output node 103 and the communication processing node 104.
도 2는 본 발명이 적용되는 입출력 노드의 구조도로서, 하나의 노드가 4 개의 Intel P6 처리기(201)와 공유 메모리(202) 및 국부 자원들(204)과 P6 버스(203)에 접속된 대칭 다중 프로세서(SMP) 구조를 나타낸다.2 is a structural diagram of an input / output node to which the present invention is applied, in which one node is connected to four Intel P6 processors 201, shared memory 202, and local resources 204, and a P6 bus 203. A processor (SMP) structure is shown.
프로세서(201)는 인텔의 P6을 사용하고, 4개의 PCI 버스(203)에는 블록장치(SCSI) 제어기(107)를 접속하여 여러 종류의 블록 장치를 연결할 수 있다. 메모리(202)는 1 기가 바이트의 용량을 가지며, 마이크로 커널과 여러 관리자를 포함하는 커널 영역과 디스크 캐쉬를 위해 사용된다.The processor 201 uses Intel's P6, and four PCI buses 203 may be connected to a block device (SCSI) controller 107 to connect various types of block devices. Memory 202 has a capacity of 1 gigabyte and is used for disk caches and kernel regions containing a microkernel and several managers.
도 3은 시스템에서 디스크 입출력이 요청될 때 각 노드간의 제어 흐름을 나타낸다.3 shows a control flow between nodes when disk input / output is requested in the system.
사용자 프로세스(307)에 의하여 커널에 파일 입출력을 요청하면 PN의 프로세서 관리자(Processer Manager : PM)(302)가 주어진 장치 번호를 판별하여 해당 파일 관리자(File Manager : FM)(303)에게 요청한다. 파일 관리자(303)는 파일 입출력을 관장하며, 먼저 자신의 버퍼 캐쉬에서 원하는 파일을 찾아보아 실패하면 자기가 관리하는 디스크 캐쉬 관리자(Disk Cache Manager : DCM)(305)에 원하는 디스크 블록의 입출력 요청을 메시지로 통보한다. 입출력 노드의 디스크 캐쉬 관리자(DCM)(305)는 요청 블록을 라인으로 변환하여 디스크 캐쉬에서 찾아보아 성공하면 요청을 종료하여 회귀하고, 실패하면 BIOM(306)과 인터페이스 하여 제어 및 데이터 메시지를 통하여 물리적 입출력을 요청한다. 이때 물리적 입출력의 단위를 제공하며, 디스크 데이터의 교환 영역을 디스크 캐쉬와 장치로 설정하여 중간 메모리 복사를 없앤다.When a file input / output request is made to the kernel by the user process 307, the processor manager (PM) 302 of the PN determines a given device number and requests the file manager (File Manager: FM) 303. The file manager 303 manages file I / O, and if it fails to find a desired file in its buffer cache, it sends an I / O request of a desired disk block to a disk cache manager (DCM) 305 which it manages. Notify by message. The disk cache manager (DCM) 305 of the I / O node converts the request block into a line and finds it in the disk cache, and if successful, terminates the request, regresses, and if it fails, interfaces with the BIOM 306 to physically control and data messages. Request I / O At this time, the unit of physical input / output is provided, and the intermediate memory copy is eliminated by setting the disk data exchange area to the disk cache and the device.
도 4는 디스크 캐쉬 관리 방법의 주요 처리 흐름도를 나타낸다.4 shows the main processing flow diagram of the disk cache management method.
단계(401)에서 입출력 요청이 메시지로 도착될 때 처리되는 주요 흐름도로서, 단계(402)에서 검색 함수를 호출하여 단계(403)에서 종료한다.This is the main flow diagram that is processed when an input / output request arrives as a message in step 401, calling the search function in step 402 and ending in step 403.
도 5(a) 내지 (f)는 캐쉬 관리 방법의 전체 흐름도를 나타낸다.5 (a) to 5 (f) show an overall flowchart of the cache management method.
도 5(a)는 디스크 캐쉬 검색 주요 흐름도를 나타낸다.Fig. 5A shows the main flow of the disk cache search.
캐슁된 모든 라인에서 요청한 블록에 대한 캐쉬 라인이 존재하는가를 단계(501)에서 파악하여 존재하지 않으면, 단계(502)에서 캐쉬 정책이 즉시 쓰기(Write Through)이고 쓰기 요청인지 파악한다. 즉시 쓰기이고 쓰기 요청이면 단계(503)에서 쓰기 단위를 블록으로 설정하여, 단계(504)에서 물리적 입출력을 위한 BIOM을 호출하여 종료한다.In step 501, it is determined whether there is a cache line for the requested block in all cached lines. If it is not present, in step 502, it is determined whether the cache policy is write-through and write request. If it is an immediate write and a write request, the write unit is set to a block in step 503, and the BIOM for physical input / output is called in step 504 to end.
단계(502)에서 즉시 쓰기가 아니면 단계(505)에서 읽기 요청 여부를 파악한다. 단계(505)에서 읽기 요청이면, 단계(506)에서 읽기 단위를 라인으로 설정하고, 단계(504)에서 BIOM을 호출한 후 단계(507)에서 라인 및 블록 상태 플래그를 VALID로 설정하여 종료한다.If it is not an immediate write in step 502, it is determined whether a read request in step 505. If it is a read request in step 505, the read unit is set to a line in step 506, the BIOM is called in step 504, and the line and block status flags are set to VALID in step 507 to end.
단계(505)에서 지연 쓰기의 쓰기 요청인 경우, 단계(508)에서 새로운 캐쉬 라인을 할당받거나 기존 캐쉬 라인을 교체 처리하는 과정 후에 종료한다.In the case of the write request of the delayed write in step 505, the process terminates after the process of receiving a new cache line or replacing the existing cache line in step 508.
단계(501)에서 캐쉬 라인에 요청한 블록의 라인이 존재하면, 단계(509)에서 라인 상태 플래그에 따라 처리하는 과정을 수행하고, 단계(510)에서 상기 결과가 실패이면 상기 단계(505)로 진행하고, 실패가 아니면 종료한다.If there is a line of the block requested in the cache line in step 501, the process is performed according to the line status flag in step 509, and if the result fails in step 510, the process proceeds to step 505. If it fails, it exits.
도 5(b)는 INVALID 라인 상태 처리 흐름도를 나타낸다.5 (b) shows an INVALID line state processing flowchart.
단계(501)에서 요청한 캐쉬 라인이 존재할 때, 단계(511)에서 라인 상태 플래그가 INVALID인지 여부를 파악하여, 현재의 라인 상태 플래그가 INVALID이면, 단계(510)에서 실패를 기록하여 종료하고, 아니면 단계(512)에서 다음 가능한 라인 상태 플래그를 조사하여 처리하고 종료한다.When the cache line requested in step 501 exists, it is determined in step 511 whether the line status flag is INVALID, and if the current line status flag is INVALID, in step 510 a failure is recorded and terminated. In step 512 the next possible line status flag is examined, processed and terminated.
도 5(c)는 캐쉬 부재시 지연 쓰기의 쓰기 처리 흐름도를 나타낸다.Fig. 5C shows the flow of write processing for delayed write in the absence of a cache.
단계(505)에서 지연 쓰기이면, 단계(513)에서 프리 리스트에서 라인을 할당 여부를 파악하여, 라인을 할당받았으면 단계(514)에서 해당 블록에 쓰기를 수행하고, 단계(515)에서 라인 상태 플래그는 PVALID로, 해당 블록 상태 플래그를 더어팀(DIRTY)로 그리고 나머지 블록 상태 플래그들은 INVALID로 설정하여 종료한다. 라인을 할당받지 못하면, 단계(516)에서 현재 캐쉬 라인에서 교체 대상을 선정하여 교체하고, 단계(514)로 진행한다.If it is a delayed write in step 505, it is determined whether a line is allocated from the free list in step 513, if a line is allocated, a write is performed in the corresponding block in step 514, and a line status flag in step 515. Is set to PVALID, the corresponding block status flag is set to DIRTY, and the remaining block status flags are set to INVALID. If the line is not allocated, a replacement target is selected and replaced in the current cache line in step 516, and the flow proceeds to step 514.
도 5(d)는 더어티(이하 DIRTY라 함) 라인 상태 처리의 흐름도를 나타낸다.Fig. 5 (d) shows a flow chart of dirty (hereinafter referred to as DIRTY) line state processing.
단계(517)에서 현재의 라인 상태 플래그가 DIRTY인지 여부를 파악하여, DIRTY가 아니면 단계(523)로 진행하고, 상기 단계가 DIRTY이면 단계(518)에서 현재의 블록 상태 플래그가 DIRTY인지 조사한다. 상기 단계가 DIRTY이면 단계(524)에서 쓰기인지 여부를 파악하여, 쓰기가 아닌 읽기이면 캐쉬에서 읽기를 수행 후 종료한다. 단계(524)에서 쓰기이면 단계(525)에서 블록을 갱신하고, 단계(526)에서 쓰기 단위를 라인으로 설정한 후, 단계(528)에서 BIOM을 호출하여 물리적 쓰기를 완료한 다음, 단계(528)에서 라인 및 블록 상태 플래그를 VALID로 설정하여 종료한다.In step 517, it is determined whether the current line status flag is DIRTY. If not, it proceeds to step 523. If the step is DIRTY, in step 518, it is checked whether the current block status flag is DIRTY. If the step is DIRTY, it is determined whether it is a write in step 524. If the read is not a write, the read is performed in the cache and ends. If it is a write in step 524, update the block in step 525, set the write unit to a line in step 526, call BIOM in step 528 to complete the physical write, and then step 528 Exit by setting the line and block status flags to VALID.
단계(518)에서 DIRTY가 아니면, 단계(519)에서 현재 블록 상태 플래그가 INVALID인지 여부를 파악하여, 상기 단계가 INVALID가 아니면 단계(529)에서 그에 대한 처리를 하고 종료한다. INVALID이면, 단계(520)에서 읽기 단위를 블록으로 설정하여, 단계(521)에서 BIOM을 호출한 후, 단계(522)에서 블록 상태 플래그를 VALID로 설정하여 종료한다.If it is not DIRTY in step 518, it is determined in step 519 whether the current block status flag is INVALID, and if the step is not INVALID, processing for it is terminated in step 529. If it is INVALID, the read unit is set to block in step 520, the BIOM is called in step 521, and the block status flag is set to VALID in step 522 to end.
도 5(e)는 PVALID 라인 상태 플래그의 처리 흐름도를 나타낸다.5 (e) shows a processing flowchart of the PVALID line status flag.
단계(530)에서 라인 상태 플래그가 PVALID인지 여부를 파악하여, PVALID가 아니면 정의되지 않은 상태 플래그 값이므로 단계(533)에서 오류를 기록하여 종료한다. 단계(530)에서 라인 상태 플래그가 PVALID이면, 단계(531)에서 블록 상태 플래그가 INVALID인지 여부를 파악한다. 현재 블록 상태 플래그가 INVALID이면 단계(532)에서 실패를 설정 회귀하여 종료하고, 단계(534)에서 VALID이면 캐쉬 정책 및 요청에 따른 처리 과정을 수행한 후 종료한다.In step 530, it is determined whether the line status flag is PVALID. If it is not PVALID, it is an undefined status flag value. In step 533, an error is recorded and ends. If the line status flag is PVALID in step 530, it is determined whether the block status flag is INVALID in step 531. If the current block status flag is INVALID, the process returns to set failure in step 532 and terminates. If the current block status flag is VALID in step 534, the process ends according to the cache policy and the request.
도 5(f)는 캐쉬 정책 및 요청 종류에 따른 처리 절차를 수행하는 흐름도를 나타낸다.5 (f) shows a flowchart for performing a processing procedure according to a cache policy and a request type.
단계(531)에서 블록 상태 플래그가 INVALID가 아니면, 단계(535)에서 즉시 쓰기 정책이고 쓰기 요청인지 여부를 파악하여, 즉시 쓰기 정책이고 쓰기 요청이면 단계(536)에서 캐쉬 블록을 갱신하고, 단계(537)에서 쓰기 단위를 블록으로 단계(538)에서 BIOM을 호출하여 즉시 쓰기를 완료하여 종료한다.If in step 531 the block status flag is not INVALID, then in step 535 it is determined whether it is an immediate write policy and a write request; if it is an immediate write policy and a write request, in step 536 the cache block is updated, and In step 537, the BIOM is called in block 538 as the write unit, and the writing is completed immediately.
단계(535)에서 즉시 쓰기 정책이고 쓰기 요청이 아니면, 읽기 요청 또는 지연 쓰기의 쓰기 요청일 때이므로 단계(539)에서 쓰기 여부를 파악한다. 상기 단계에 쓰기가 아닌 읽기이면 해당 블록을 가져가고 종료한다. 쓰기이면 단계(540)에서 블록을 갱신하고, 단계(541)에서 현재 라인 상태 플래그가 DIRTY인지 여부를 파악한다. 라인 상태 플래그가 DIRTY가 아니면 단계(542)에서 DIRTY로 설정하고, 단계(543)에서 블록 상태 플래그를 DIRTY로 설정하여 종료하고, 라인 상태 플래그가 DIRTY이면 단계(543)로 진행한다.If it is an immediate write policy in step 535 and not a write request, it is a read request or a write request of delayed write, so it is determined whether to write in step 539. If it is a read instead of a write, the block is taken and ends. If it is a write, the block is updated at step 540, and at step 541, it is determined whether the current line status flag is DIRTY. If the line status flag is not DIRTY, it is set to DIRTY in step 542, and in step 543, the block status flag is set to DIRTY, and if the line status flag is DIRTY, step 543 is reached.
상술한 바와 같이 본 발명은 블록 장치 입출력시 자료의 무결성을 보장하는 대용량 디스크 캐쉬에 라인 및 블록으로 분리하여 관리하는 2 단계 캐쉬 관리 방법으로 인접한 블록들을 디스크 캐쉬에 선반입하여 캐쉬 적중률을 높여주고, 캐쉬 실패에 따른 물리적 입출력에 따른 비용을 최소화한다. 따라서, 전체적인 성능을 향상하며 아울러 응용 분야에 적응하는 지연 쓰기 및 즉시 쓰기를 운용 중에 선택적으로 사용할 수 있어 사용자의 선택 폭을 넓혀주는데 탁월한 효과가 있다.As described above, the present invention is a two-step cache management method in which a disk and a block are separated into lines and blocks in a large disk cache that guarantees the integrity of data during input / output of a block device. Minimize the cost of physical I / O due to cache failure. Therefore, it is possible to selectively use delayed writes and immediate writes that adapt to application areas while improving overall performance, and thus has an excellent effect on widening user selection.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970065333A KR19990047097A (en) | 1997-12-02 | 1997-12-02 | How to Manage Disk Cache on High-Speed Parallel Computers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970065333A KR19990047097A (en) | 1997-12-02 | 1997-12-02 | How to Manage Disk Cache on High-Speed Parallel Computers |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990047097A true KR19990047097A (en) | 1999-07-05 |
Family
ID=66094898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970065333A KR19990047097A (en) | 1997-12-02 | 1997-12-02 | How to Manage Disk Cache on High-Speed Parallel Computers |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR19990047097A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208810A (en) * | 2021-04-12 | 2022-10-18 | 益思芯科技(上海)有限公司 | Forwarding flow table accelerating method and device, electronic equipment and storage medium |
-
1997
- 1997-12-02 KR KR1019970065333A patent/KR19990047097A/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208810A (en) * | 2021-04-12 | 2022-10-18 | 益思芯科技(上海)有限公司 | Forwarding flow table accelerating method and device, electronic equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7711902B2 (en) | Area effective cache with pseudo associative memory | |
US5434993A (en) | Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories | |
KR100318789B1 (en) | System and method for managing cache in a multiprocessor data processing system | |
KR0163231B1 (en) | Coherency and synchronization mechanisms for i/o channel controller in a data processing system | |
US5878268A (en) | Multiprocessing system configured to store coherency state within multiple subnodes of a processing node | |
US6295582B1 (en) | System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available | |
US6912669B2 (en) | Method and apparatus for maintaining cache coherency in a storage system | |
US7076613B2 (en) | Cache line pre-load and pre-own based on cache coherence speculation | |
US5734922A (en) | Multiprocessing system configured to detect and efficiently provide for migratory data access patterns | |
US9063945B2 (en) | Apparatus and method to copy data | |
US7177987B2 (en) | System and method for responses between different cache coherency protocols | |
US7337281B2 (en) | Storage system and data caching method in the system | |
US20040148360A1 (en) | Communication-link-attached persistent memory device | |
US6654858B1 (en) | Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol | |
US20080270708A1 (en) | System and Method for Achieving Cache Coherency Within Multiprocessor Computer System | |
US20060143406A1 (en) | Predictive early write-back of owned cache blocks in a shared memory computer system | |
GB2460337A (en) | Reducing back invalidation transactions from a snoop filter | |
GB2390710A (en) | Data maintenance of a distributed shared memory system | |
US7552282B1 (en) | Method, computer readable medium, and data storage system for selective data replication of cached data | |
WO2023125524A1 (en) | Data storage method and system, storage access configuration method and related device | |
KR980010819A (en) | Non-Inclusive Memory Access Mechanism | |
CN115203071A (en) | Application of default shared state cache coherency protocol | |
JP2023527735A (en) | Inter-core cache stashing and target discovery | |
CN116414563A (en) | Memory control device, cache consistency system and cache consistency method | |
US6658536B1 (en) | Cache-coherency protocol with recently read state for extending cache horizontally |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |