KR19990047097A - How to Manage Disk Cache on High-Speed Parallel Computers - Google Patents

How to Manage Disk Cache on High-Speed Parallel Computers Download PDF

Info

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
Application number
KR1019970065333A
Other languages
Korean (ko)
Inventor
김용연
윤석한
김주만
이해동
Original Assignee
정선종
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정선종, 한국전자통신연구원 filed Critical 정선종
Priority to KR1019970065333A priority Critical patent/KR19990047097A/en
Publication of KR19990047097A publication Critical patent/KR19990047097A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details 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

고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법How to Manage Disk Cache on High-Speed Parallel Computers

본 발명은 입출력 성능을 향상시키기 위해 입출력 처리 노드에서 구동되는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법에 관한 것이다.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)

캐슁된 모든 라인에서 요청한 캐쉬 라인 존재 여부를 파악하여 캐쉬 라인이 존재하지 않으면 즉시 쓰기이고 쓰기 요청인지 확인하는 제 1 단계와,A first step of determining whether the cache line requested from all the cached lines exists, and if the cache line does not exist, to immediately read and write the request; 상기 확인 결과 즉시 쓰기이고 쓰기 요청일 경우에는 쓰기 단위를 블록으로 설정하고 블록 입출력 관리자를 호출하여 종료하는 제 2 단계와,A second step of setting the write unit to a block and calling the block I / O manager when the check result is an immediate write and a write request; 상기 확인 결과 즉시 쓰기가 아닌 경우에는 읽기인지 여부를 확인하여 읽기 요청이면 읽기 단위를 라인으로 설정하고, 블록 입출력 관리자를 호출한 후 라인 및 블록 상태 플래그를 밸리드로 설정하여 종료하는 제 3 단계와,A third step of checking whether it is a read or not if the read result is a read request and setting a read unit as a line, calling a block I / O manager, and setting a line and a block status flag as valid if the read request is completed; 상기 확인 결과 읽기 요청이 아닌 지연 쓰기 요청인 경우에는 지연 쓰기 처리 단계로 진행하여 종료하는 제 4 단계와,A fourth step of, if the check result is a delayed write request instead of a read request, proceeds to the delayed write processing step and ends; 상기 캐슁된 모든 라인에서 요청한 캐쉬 라인 존재 여부를 파악하여 캐쉬 라인이 존재하면 인밸리드 라인 상태 처리 단계로 진행하는 제 5 단계와,A fifth step of determining whether there is a cache line requested from all the cached lines, and if the cache line exists, proceeding to an invalidated line state processing step; 상기 단계로부터 실패 여부를 확인하여 실패이면 상기 제 3 단계로 진행하며, 실패가 아니면 종료하는 제 6 단계를 포함하여 이루어진 것을 특징으로 하는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법.And a sixth step of checking whether there is a failure from the step, and if the failure occurs, proceeding to the third step, and terminating the failure. 제 1 항에 있어서, 상기 인밸리드 라인 상태 처리 단계는2. The process of claim 1 wherein the invalidated line state processing step 라인 상태 플래그가 인밸리드인지 여부를 파악하여 상기 라인 상태 플래그가 인밸리드이면, 실패를 기록하여 종료하는 제 1 단계와,Determining whether the line state flag is invalidated, and if the line state flag is invalidated, recording the failure and ending the first step; 상기 라인 상태 플래그가 인밸리드 아니면 더어티 라인 상태 처리 단계로 진행하는 제 2 단계를 포함하여 이루어진 것을 특징으로 하는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법.And a second step in which the line state flag proceeds to an in-validated or dirty line state processing step. 제 1 항에 있어서, 상기 지연 쓰기 처리 단계는The method of claim 1, wherein the delayed write processing step is 프리 리스트의 라인 할당 여부를 확인하여, 상기 라인을 할당받으면 해당 블록에 쓰기를 수행하고, 라인 상태 플래그, 해당 블록 상태 플래그 및 나머지 블록 상태 플래그들을 프밸리드, 더어티 및 인밸리드로 각각 설정하여 종료하는 제 1 단계와,After checking whether the line is allocated to the free list, if the line is allocated, the block is written to the corresponding block, and the line state flag, the corresponding block state flag, and the remaining block state flags are set as provisional, dirty, and invalidated, respectively. The first step of terminating, 상기 확인 결과 라인을 할당받지 못하면, 현재 캐쉬 라인에서 교체 대상을 선정 및 교체하고, 상기 해당 블록에 쓰기를 반복 진행하는 제 2 단계를 포함하여 이루어진 것을 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법.And a second step of selecting and replacing a replacement target in the current cache line and repeating writing to the corresponding block if the line is not allocated as a result of the checking. 제 2 항에 있어서, 상기 더어티 라인 상태 처리 단계는3. The dirty line state processing step of claim 2, wherein 현재의 라인 상태 플래그가 더어티인지 여부를 확인하여 더어티가 아니면 프밸리드 라인 상태 처리 단계로 진행하고, 더어티이면 현재의 블록 상태 플래그가 더어티인지 여부를 확인하는 제 1 단계와,A first step of checking whether the current line status flag is dirty and proceeding to the provisional line status processing step if it is not dirty, and if dirty, a first step of checking whether the current block status flag is dirty; 상기 확인 결과 더어티이면 쓰기인지 여부를 확인하여, 쓰기가 아닌 읽기이면 캐쉬에서 읽기를 수행 후 종료하는 제 2 단계와,A second step of checking whether it is dirty if the result of the checking is read, and if the read is not a write, the process terminates after reading from the cache; 상기 확인 결과 쓰기이면 블록을 갱신하고, 쓰기 단위를 라인으로 설정한 후, 블록 입출력 관리자(BIOM)을 호출하여 물리적 쓰기를 완료한 다음, 라인 및 블록 상태 플래그를 밸리드로 설정하여 종료하는 제 3 단계와,A third step of updating the block if the check result is written, setting a write unit to a line, calling a block input / output manager (BIOM) to complete a physical write, and then setting the line and block status flags to valid Wow, 상기 제 1 단계의 확인 결과 더어티이면, 현재 블록 상태 플래그가 인밸리드인지 여부를 확인하여, 인밸리드가 아니면 캐쉬 정책 및 요청에 따른 처리 단계에서 처리를 하고 종료하는 제 4 단계와,A fourth step of checking whether the current block status flag is invalidated if the result of the checking in the first step is dirty, and processing and ending in a processing step according to a cache policy and a request if not invalidated; 상기 확인 결과 인밸리드이면, 읽기 단위를 블록으로 설정하여 블록 입출력 관리자(BIOM)을 호출한 후, 블록 상태 플래그를 밸리드로 설정하고 종료하는 제 5 단계를 포함하여 이루어진 것을 특징으로 하는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법.And if the check result is invalidated, calling the block input / output manager (BIOM) with the read unit set to the block, and then setting the block status flag to valid and ending the fifth step. How to manage disk cache. 제 4 항에 있어서, 상기 프밸리드 라인 상태 처리 단계는5. The process of claim 4, wherein the provisional line state processing step 라인 상태 플래그가 프밸리드인지 여부를 확인하여, 프밸리드가 아니면 오류를 기록하여 종료하고, 상기 라인 상태 플래그가 프밸리드이면 블록 상태 플래그가 인밸리드인지 여부를 확인하는 제 1 단계와,A first step of checking whether the line state flag is provisional, if not, recording an error and ending, and if the line state flag is provisional, checking whether the block status flag is invalidated; 상기 확인 결과 블록 상태 플래그가 인밸리드이면 실패를 설정 회귀하여 종료하고, 인밸리드가 아니면 캐쉬 정책 및 요청에 따른 처리 단계를 수행한 후 종료하는 제 2 단계를 포함하여 이루어진 것을 특징으로 하는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법.And a second step of setting and returning failure if the block status flag is invalidated, and ending if the block status flag is invalidated, and performing processing according to a cache policy and a request if not invalidated. How to manage disk cache on your computer. 제 4 항 또는 제 5 항에 있어서, 상기 캐쉬 정책 및 요청에 따른 처리 단계는6. The method of claim 4 or 5, wherein the cache policy and the processing according to the request 즉시 쓰기 정책이고 쓰기 요청인지 여부를 확인하여 즉시 쓰기 정책이고 쓰기 요청이면, 캐쉬 블록을 갱신하고 쓰기 단위를 블록으로 블록 입출력 관리자을 호출하여 즉시 쓰기를 완료하여 종료하는 제 1 단계와,A first step of checking whether it is an immediate write policy and a write request, and if the immediate write policy is a write request, updating the cache block and invoking the block I / O manager with the write unit as a block to immediately complete and terminate the write; 상기 확인 단계에서 즉시 쓰기 정책이고 쓰기 요청이 아니면, 쓰기 여부를 확인하여 쓰기가 아닌 읽기이면 해당 블록을 가져가고 종료하는 제 2 단계와,A second step of taking a block if the read policy is an immediate write policy and the write request is not a write request, and if the read is not a write, the terminal is checked; 상기 확인 결과 쓰기이면 블록을 갱신하고, 라인 상태 플래그가 더어티인지 여부를 확인하여 더어티가 아니면 라인 상태 플래그를 더어티로 설정한 후, 블록 상태 플래그를 더어티로 설정하여 종료하는 제 3 단계와,A third step of updating the block if the check result is written, checking whether the line status flag is dirty, setting the line status flag to dirty if it is not dirty, and ending the process by setting the block status flag to dirty Wow, 상기 라인 상태 플래그가 더어티이면 상기 라인 상태 플래그로 진행하는 제 4 단계로 진행하는 것을 특징으로 하는 고속 병렬 컴퓨터의 디스크 캐쉬 관리 방법.And if the line state flag is dirty, proceed to a fourth step of proceeding to the line state flag.
KR1019970065333A 1997-12-02 1997-12-02 How to Manage Disk Cache on High-Speed Parallel Computers KR19990047097A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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