KR970011213B1 - 에러 처리법을 갖는 포스트식 기입 디스크 기입 동작의 큐잉 방법 - Google Patents

에러 처리법을 갖는 포스트식 기입 디스크 기입 동작의 큐잉 방법 Download PDF

Info

Publication number
KR970011213B1
KR970011213B1 KR1019890012719A KR890012719A KR970011213B1 KR 970011213 B1 KR970011213 B1 KR 970011213B1 KR 1019890012719 A KR1019890012719 A KR 1019890012719A KR 890012719 A KR890012719 A KR 890012719A KR 970011213 B1 KR970011213 B1 KR 970011213B1
Authority
KR
South Korea
Prior art keywords
sector
write
queue
information
disk
Prior art date
Application number
KR1019890012719A
Other languages
English (en)
Other versions
KR900005326A (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 콤파크 컴퓨터 코오포레이숀
Publication of KR900005326A publication Critical patent/KR900005326A/ko
Application granted granted Critical
Publication of KR970011213B1 publication Critical patent/KR970011213B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

없음.

Description

에러 처리법을 갖는 포스트식 기입 디스크 기입 동작의 큐잉 방법
본 발명은 개선된 에러처리법을 갖는 포스트(post)식 기입 디스크 기입 동작의 큐잉(queuing) 방법에 관한 것이다.
디스크 캐싱(caching)
디스크로의 포스트식 기입법은 디스크로부터의 캐시식 판독법과 어떤 점에서 대충 유사하다. 본 기술분야에 숙련된 자에게는 잘 알려진 바와 같이 디스크 캐싱은 비교적 저속의 기억소자(예컨대, 고정 또는 “하드”디스크)로부터 최종 판독된 정보의 카피(copy)를 훨씬 고속의 판독-기입 랜덤 액세스 메모리(RAM)에 보존하는 방법이다. 이에 의해, 그 데이타에 대한 뒤 이은 요구의 처리가 보다 고속으로 된다.
디스크 캐싱은 응용 프로그램 또는 다른 프로그램들(여기서는 “태스크”라 함)에 의해 판독 동작 요구와 관련하여 동작한다.
일반적으로, 태스크가 판독 동작을 개시할 때 그것은 “버퍼”라 하는 RAM의 어느 부분을 확보해두고 하나 이상의 디스크 섹터내에 저장된 정보가 버퍼에 카피될 것을 요구한다.
일단이 정보가 RAM에 카피되면 태스크는 디스크에서 보다 훨씬 고속으로 그 정보를 처리할 수 있다. 이렇게 할 수 있는 이유중 일부분은, 디시크상의 정보를 처리하는 데에 디스크 드라이브의 기계적 요소들의 작동을 필요로 하는데 반해 RAM에서의 처리는 전반적으로 전자식으로 행해진다는 것이다.
디스크 캐싱이 사용될 경우, 어느 디스크 섹터가 판독되는 것(즉, RAM 안으로 카피되는 것)을 태스크가 요구할 때마다 그 요구된 섹터가 판독될 뿐만 아니라, 또한 어느 인접 섹터가 특수 RAM “캐시 버퍼”안으로 카피된다. 이것은 이러한 디스크 섹터들이 곧 판독될 것으로 추정될시 행해진다.
따라서, 참으로 이러한 인접 섹터들중 하나 이상의 후손 판독 요구의 대상일 경우, 그 요구는 RAM 캐시 버퍼로부터 이행될 수 있다. 비교적 저속의 디스크 드라이브는 작동될 필요가 없고 따라서 요구가 전체적으로 전자식으로 이행되기 때문에, 이 후속 판독 요구는 앞의 것보다 훨씬 고속으로 완료된다.
디스크 캐싱이 인에이블될 때 지정된 디스크 섹터들에 대한 판독 요구가 개시될 때마다, 먼저 소망의 디스크 섹터들이 캐시 버퍼에 이미 판독되었는지의 여부를 알아 보기 위해 캐시 버퍼가 체크된다. 캐시 버퍼에 그 정보가 판독되지 않았다면, 실제 디스크 판독 동작이 개시되고 그후 새로운 정보가 캐시 버퍼에 카피된다. 캐시 버퍼에서의 “이전의”정보는 버퍼로부터 제거되는데, 일반적으로 제거되는 그 정보는 가장 오래된 정보이다.
인터럽트
본 발명의 동작은 “인터럽트”및“인터럽트 처리기”로서 알려진 다수의 컴퓨터 아킷텍취로 설계된 특수능력을 이용한다.
인터럽트는 컴퓨터의 중앙 처리 장치(CPU)로 하여금, 현재 프로그램 명령의 실행을 중지시키게 하고, 특정 “인터럽트 처리기”루틴 또는 명령 세트를 실행하게 하며, 이어서 그 중지된 현재 프로그램 명령의 실행을 그것이 중지시킨 지점에서 다시 시작하게 한다.
인터럽트는 소프트웨어에 의해, 즉 “소프트웨어 인터럽트”로서 알려진 프로그램으로 구성된 특수 명령에 의해 발생될 수 있다. CPU가 관련된 인터럽트 처리기 루틴을 실행하는 가운데서 프로그램중 소프트웨어 인터럽트와 부닥칠 때, 소프트웨어 인터럽트가 구성된 프로그램의 실행으로 복귀한다. 인터럽트 발생 호출부로부터 인터럽트 처리가 루틴으로의 복귀는 인터럽트 복귀, 즉 “IRET”로서 알려져 있다.
인터럽트는 또한 적당히 설계된 하드웨어에 의해 발생될 수 있는데, 다수의 CPU(예컨데, Intel 8086, 8088, 80286 및 80386을 포함한 Intel 8086패밀리)가 컴퓨터 시스템내의 다른 하드웨어 부품들이 특수 신호를 CPU에 전송함으로써 인터럽트를 발생시킬 수 있도록 설계된다.
디스크 기입 인터럽트
인터럽트는 디스크 기입 동작을 개시시키게끔 통상 사용된다. 통상적으로 디스크 기입 동작은 태스크에 의해 사용되는 RAM으로부터 디스크로의 정보 카핑을 수반한다.
디스크 기입 인터럽트는 태스크에 의해 발생될 수 있다. 예를 들어, 스프레드시트(spreadsheet) 프로그램은 사용자의 작업을 세이브시키기 위해 그러한 요구를 개시시킬 수 있다.(이러한 설명에서 컴퓨터 프로그램 자체가 하나 또는 또다른 동작을 수행하는 것으로서 보통 언급되지만, 실제로는 프로그램의 제어하에 동작을 실제로 수행하는 것은 CPU와 같은 하드웨어 부품이다)
ISA BIOS에서의 디스크 기입 인터럽트 처리기
“산업 표준 아킷텍취(ISA)”에서의 통상의 디스크 기입 인터럽트는 특정 인터럽트 처리기(INT 13H로서 알려져 있음)의 실행을 발생시키는데, 이 인터럽트 처리기는 BIOS(기본 입/출력 서비스) 프로그램 부분이다. 산업 표준 아킷텍취의 예로는 IBM PC 및 Compaq Deskpro 286이 있다.
통상 BIOS 프로그램은 ISA 컴퓨터내에 설치된 리드 온리 메모리(ROM)에 기억되며, 따라서 BIOS 프로그램 자체가 간단히 “ROM”으로서 보통 언급된다.
디스크 기입 요구 처리시, INT 13H 인터럽트 처리기는 2가지 경우를 행한다. 이하의 설명은 실시예로서 고정 디스크에 대한 기입동작을 설명하고 있다.
먼저, INT 3H는 디스크(여기서는 “기입 버퍼”로서 언급됨)로 기입될 특정 데이타를 카피하여 특정 디스크 드라이브(예컨대, 디스크 제어기로 설치된 RAM내에 있으며 “주”메모리부분은 아님)와 관련된 디스크 제어기에 제어하에 버퍼한다.
이어서, 디스크 제어기로 하여금 디시크상의 특정 섹터로 그 데이타를 카피하게 한다.
이렇게 행해졌으면, INT 13는 HINT 15H “대기”인터럽트 처리기를 호출한다. 디폴트에 의해 INT 15H “대기”인터럽트 처리기는 간단히 호출 기능으로 복귀하는데, 즉 INT 13H 인터럽트 처기로 복귀한다.
이어서, INT 13H는 대기 루프로 들어간다 : 루프의 각 반복 사이클에서, 고정 디스크 하드웨어 인터럽트가 발생되었다는 것을 나타내기 위해 플래그가 세트되었는지의 여부를 알아보기 위해 체크하고, 플래그가 세트되어 있지 않을 경우 루프는 계속된다. 달리 말하면, CPU는 고정 디스크 하드웨어 인터럽트 발생플래가 세트되기를 현재 비지 대기중이며 태스크 명령 실행을 다시 시작하지 않는다.
디스크 제어기가 기입 동작을 완료했을 때 그것은 하드웨어 인터럽트를 발생시키는데, 이 인터럽트에 의해 CPU가 고정 디스크 하드웨어 인터럽트 발생플래그를 세트시키게 되고 INT15H “포스트”인터럽트 처리기를 실행하게 된다. 이 루틴은 통상 INT 13H 대기 루프로 IRET를 수행한다.
이제 고정 디스크 하드웨어 인터럽트 발생플래그가 세트되었다면, INT 13H 대기 루프는 종료되고, 그후 INT 13H는 플래그를 클리어시키고 그 처리를 종료하며 태스크에 대한 제어를 복귀시키기 위해 IRET를 수행한다.
실제로 INT13H 인터럽트 처리기 루틴을 설계하면, CPU는 디스크 제어기(일단 작동되면 CPU로 하여금 데이타 기입 기능을 수행하도록 할 필요가 없음)가 그것의 작업을 완료할 때까지 유휴상태로 있게 된다.
상술한 설명은 디시크로의 기입에 대한 비교적 간단한 경우에 관한 것이라는 것을 통상의 숙련된 자는 알 수 있으며, 공지된 바와 같이 어느 기입 동작들은 다중 하드웨어 인터럽트를 필요로 하고 이에 의해 다중 “대기”및 “포스트”가 발생된다.
큐(queue)식 기입 동작
기입 큐잉은 일반적으로 문제의 디스크 대신 큐 버퍼에 약간의 디스크 기입 요구나 모든 디스크 기입 요구를 행하게 하는 단계를 포함하며, 태스크로 다시 제어가 주어진다. 디스크로의 실제 물리적 기입은 편리한 대로 이후에 수행되며 따라서 호출 태스크의 재실행에서 지연이 감소된다.
디스크 섹터에 정보 섹터를 기입하기 위한 포스트식 기입 큐잉 프로그램은 특정 형태의 에러 발생시 데이타 손실의 위험을 최소화하기 위해 에러 처리 루틴을 포함한다. 타임 아웃시, 큐잉은 중지되고 큐에 계류중인 모든 정보 섹터가 대응 디스크 섹터로 기입된다. 특정 형태의 기입 에러 발생시, 큐잉은 중지되고 모든 정보 섹터가 대응 디스크 섹터에 반복 기입된다. 잘못된 기입일 경우, 대응 정보 섹터가 큐에 세이브되고, 사용자에 경보가 알려지며, 대응 디스크 섹터에 향해진 뒤이은 판독 또는 기입 요구가 큐에서의 그 세이브된 정보 섹터로부터 서비스된다.
디스크 캐시 설비에서의 포스트식 기입 큐잉
본 발명은 태스크에 의해 발생된 기입 요구를 포스팅 및 큐잉하기 위한 일련의 루틴에 대한 이하 기재에 의해 설명된다. 루틴은 MS-DOS 동작 시스템(버전 3.10 내지 3.39)하에 디스크 캐시 설치 가능 소자 구동기의 일부분으로서 동작한다. 부록 1은 루틴들에 대한 어셈블리 소스 코드의 카피이다.
포스트식 기입 큐잉 루틴은 캐시 버퍼 및 캐시 디렉토리를 유지하는 디스크 캐시 설비와 관련하여 동작한다. 이 설명에서는, 포스트식 기입 큐잉 루틴이 그러한 기입 캐시 설비의 일부분으로서 설명되는데, 이것은 본 발명의 부분이 아니며(특허청구범위에서 청구되는 정도를 제외하고는) 달리 설명하지 않는다.
본 설명은 본 발명을 예시하는 것이지 한정하고자 하는 것은 아니다.
인터럽트 처리기의 대체
BIOS 프로그램에서 몇가지 인터럽트 처리기는 통상의 방식으로 변경된다.(보통 “혹”,“트랩”또는 “그래브(grab)”라 함). 일반적으로 이것은 (a) 로우 메모리에 기억되고 각 인터럽트 처리가와 관련된 벡터들을 세이브하는데, 이들 벡터는 통상 정상의 BIOS 인터럽트 처리기 루틴들의 각 어드레스를 지정하는 단계와; (b) 이들 벡터들에 대체 인터럽트 처리기 루틴들의 어드레스를 지정하는 새로운 벡터들을 중복 기입하는 단계를 포함한다.
특히, INT 13H와 INT 15H“대기”및 INT 15H“포스트”에 대한 그리고 타임 아웃 및 기입 에러에 대한 각 처리기가 대체된다. 부록 2는 대체 루틴들의 의사 코드에 대해 설명하고 있는데, 부록 1에서 상세히 설명된 항목들에 대해 일반적인 관점에서 간단히 설명하고 있다.
통상적으로, 대체 루틴은 본래의 인터럽트 처리기를 호출할 수 있는데, 이것은 그 어드레스가 상술된 중복 기입 처리부분으로서 세이브되었던 본래의 처리기를 간단히 호출함으로써 행해진다. 예를들어, 부록 2는 이것이 INT 13H에 대한 대체 루틴에서 행해진 것을 나타내고 있다.
큐에 대한 메모리 할당
포스트식 기입 큐잉 루틴은 기입 요구를 큐잉하기 위해 주 메모리에서의 8K FIFO(선입 선출) 버퍼를 사용한다. 보다 구체적으로 말하면, 큐는 그것의 설치중에 캐시 구동기에 의해 확보되는 베이스 메모리를 활용한다.
큐는 사용자가 기입이 완료되는 것으로 보고서(실제로는 그렇기 않은데) 컴퓨터를 턴 오프시키는 것으로 인해 데이타 손실이 발생하는 기회를 줄이기 위해 비교식 소규모로 되어 있다.
단일 섹터 기입
디스크 기입 요구에 대한 기입 버퍼가 디스크상의 하나의 섹터만을 점유할 경우(즉, 그 요구가 단일 섹터 기입에 대한 경우), 기입 요구는 완료될 때 큐잉되고 포스팅되며, 제어가 태스크로 복귀된다.
보다 구체적으로 말하면, 대체, INT 13H 루틴은 기입 요구를 큐잉하고“디큐(dequeue)”루틴으로 점프한다. 이어서 “다큐”루틴은 큐를 기입 버퍼로서 지정하는 통상의 INT 13H 기입 요구를 발생시킨다.
통상의 INT13H 인터럽트 처리기가 INT15H “대기”루틴을 호출할 때, 디스크 제어기가 기입 동작의 완료를 보고하지 않았더라도 대체 INT 15H “대기”루틴은 대기조건을 세이브 하고 호출 태스크(그것을 호출한 통상의 INT 13H 루틴 대신에)로 복귀한다. 실제로, 이것은 통상의 INT 13H 루틴을 중지 상태와 같은 상태로 놔둔다
디스크 제어기가 기입동작을 완료할 때 그것은 하드웨어 인터럽트를 발생시키고, 따라서 고정 디스크 하드웨어 인터럽트 발생플래그가 세트되게 되며 INT 15H “포스트”루틴이 호출되게 된다. 대체 INT 15H“포스트”루틴은 앞서 세이브된 대기 조건을 재저장하고 앞서“중지된”통상의 INT 13H 기입 루틴으로 제어를 복귀시켜 실제로 그 루틴을 재작동시킨다.
고정 디스크 하드웨어 인터럽트 발생플래그가 이제 세트되므로, 현재 재작동된 통상의 INT 13H 기입 루틴은 그 인터럽트를 대기하는 대기 루프에 머물러 있지 않는다(상술한 바와 같음). 그 대신 통상의 INT 13H 기입 루틴은 그 처리를 종료하고, 본래 그것을 호출한 “디큐”루틴으로 제어를 복귀시키도록 IRET를 수행한다.
이어서 “디큐”루틴은 기입 요구가 발생되었던 지점에서가 아니라 최종 하드웨어 인터럽트가 발생되었던 지점에서 호출 태스크로 제어를 복귀시킨다.
에러 처리
어느 타임 아웃시에도 큐잉은 중지되고(즉, 더 이상 기입 요구가 큐에 부가되지 않음) 이미 큐잉된 모든 기입 요구가 개별적으로 기입된다. 타임 아웃 에러 논리는 캐시 제어기 고장이 단지 가능한 원인인 비재생 가능 에러만인 것을 보장하기 위해 큐가 비어지게 되거나 채워지지 않게 되는 것을 대기하는 중에 사용된다.
타임 아웃 에러 논리부는 기입 동작이 타임 아웃된 경우를 결정하기 위해 플래그를 사용한다. 이것은 통상의 INT 13H 기입 루틴에 보내진 최종 섹터가 디스크에 실제로 기입되었는지의 여부를 결정하는 것을 도와주고, 또한 타임 아웃이 하드웨어에 의해 발생되었는지(예컨대, 제어기 고장) 또는 소프트웨어에 의해 발생되었는지(예컨대, 콘플릭팅 프로그램)의 여부를 결정하는 것을 도와주고 사용자에게 적당한 에러 메시지를 제공하는 것을 도와준다.
기입 에러를 발견하지 못한 어느 섹터, 즉 어드레스에서도 한번에 하나씩 큐내의 각 섹터를 디스크에 기입하는 시도가 반복된다(예컨대, 5회 디스크 리셋 및 재시도). 어느 주어진 섹터가 기입될 수 없을 경우, 큐잉은 영원히 중지되고(물론 리셋될 때까지) 문제의 섹터가 큐에 세이브된다.
그러한 행위에 이어서(전원이 리셋될 때까지) 각 디스크 판독 요구 및 각 디스크 기입 요구가 어느 요구된 섹터가 큐내에 있는지를 결정하기 위해 체크된다(실제 디스크 섹터가 오래되거나 아마도 액세스 불가능 하기 조차하는 것을 의미함). 그러한 요구는 큐 버퍼로부터 서비스되는데, 문제의 섹터가 기입될 경우 그것은 큐 버퍼에서 갱신된다. 디스크를 백업시키도록 사용자에게 적당한 경보가 알려진다(백업 요구는 큐로부터 부분적으로 서비스됨).
효율 고려
디스크 기입의 큐잉은 단일 섹터 기입에 대해서만 발생한다. 큐가 소규모이고 대부분의 기입이 단일 섹터 또는 대규코 다중 섹터 기입이기 때문에 단일 섹터 기입만이 큐잉된다. 대규코 기입을 수용하기 위해서는 너무 많은 복잡성 및 경비를 필요로 하며, 공통 크기의 기입, 즉 단일 섹터 기입만을 처리하는 것이 보다 효율적인 것으로 간주된다.(부록 1에서 소스 코드는 다중 섹터 기입에 대한 루틴을 포함하고 있다.)
다중 섹터 기입 요구 또는 디스크 판독 요구가 발생될 경우, 요구된 동작이 수행되기 전에 큐가 비워지게 된다(즉, 디스크에 기입되는, 즉 “플러시”됨). 디스크 판독이 캐시될 경우, 판독될 소정의 섹터가 캐시에 존재하지 않을 경우에만 큐가 플러시된다. 이 큐 플러싱은 큐에서 데이타가 항상 현존하는 것을 보장하는 편리한 저 경비 방식이다.
큐에서의 기입 요구에 대한 중복 체크가 수행되지 않는다. 그러한 체크는 여분의 디스크 기입을 이론적으로 배제하지만, 그와 관련된 비용은 수용할만한 가치가 없는 것으로 간주되는데, 왜냐하면 비교적 드물게 큐가 동일 디스크 섹터에 대한 두가지 기입을 포함하기 때문이다.
마찬가지로, 큐가 정렬되지 않는데, 왜냐하면 큐가 소규모이고 대부분의 단일 섹터 기입이 연속적이거나 디스크를 가로질러 크게 변화하기 때문이다. 이동하는 데이타와 관련된 경비(디스크 제어기 버퍼에 대해 정렬하거나 카피하는데 있어서)는 매우 높으며, 따라서 이 실시예에서는 큐가 한번 카피되어 이동되지 않는다.
어느 주어진 시간에서도 큐는 다수의 섹터에 대한 기입 요구를 포함할 수 있다(즉, 기입 요구가 연속적으로 고속으로 태스크에 의해 발생될 경우). 큐에서의 연속 기입 요구가 연속 디스크 섹터로 향해질 경우, 큐로부터의 다중 섹터 기입을 수행함으로써 큐를 비울 때 보다 효율적인 디스크 기입이 수행될 수 있다.
이러한 목적을 위해서, 상술된 실시예에서의 큐는 원형이고 고정 버퍼 위치를 가지며, 또한 머리 및 꼬리 포인터가 큐가 비워질 때 큐의 상부에 위치한다.
부록 3 및 4는 포스트식 기입 큐잉 루틴의 효율적 구성에 관한 추가적 고찰을 대략 나타낸 것이다.
지금까지, 본 발명을 구체적인 실시예와 관련하여 설명하였지만, 본 기술 분야에 숙련된 자에게는 본 발명의 사상과 범위로부터 벗어나지 않고 많은 변형, 수정 및 변화가 가능하겠으며, 이를 부속 청구범위로만 한정하고자 한다.

Claims (4)

  1. 각 대응 디스크 섹터로 어드레스 지정된 정보 섹터가 부가될 수 있고 또한 그로부터 상기 정보 섹터가 상기 각 대응 디스크 섹터에 기입될 수 있는 포스트식 기입 큐를 타임 아웃시 유지하는 방법에 있어서, (a) 상기 큐에 대한 상기 정보 섹터의 부가를 저지하는 단계와, (b) 상기 큐에 이미 부가된 각 정보 섹터를 상기 대응 디스크 섹터에 기입하는 단계를 포함하는 것을 특징으로 하는 타임 아웃시 포스트식 기입 큐 유지 방법.
  2. 각 대응 디스크 섹터로 어드레스 지정된 정보 섹터가 부가될 수 있고 또한 그로부터 상기 정보 섹터가 상기 각 대응 디스크 섹터에 기입될 수 있는 포스트식 기입 큐를 특정 형태의 기입 에러 발생시 유지하는 방법에 있어서, (a) 사익 큐에 대한 상기 정보 섹터의 부가를 저지하는 단계와, (b) 상기 큐에 이미 부가된 각 정보 섹터를 상기 대응 디스크 섹터에 기입 시도록 하는 단계와, (c) 실패한 상기 시도 각각에 대해서는 상기 큐에 상기 정보 섹터를 세이브하는 단계를 포함하는 것을 특징으로 하는 특정 형태의 기입 에러 발생시 포스트식 기입 큐 유지방법.
  3. 각 대응 디스크 섹터로 어드레스 지정된 정보 섹터가 부가될 수 있고 또한 그로부터 상기 정보 섹터가 상기 각 대응 디스크 섹터에 기입될 수 있는 포스트식 기입 큐를 특정형태의 기입 에러 발생시 유지하는 방법에 있어서, (a) 상기 큐에 대한 상기 정보 섹터의 부가를 저지하는 단계와, (b) 상기 큐에 이미 부가된 각 정보 섹터를 상기 대응 디스크 섹터에 기입시도를 하는 단계와, (c) 실패한 상기 시도 각각에 대해서는 상기 큐에 상기 정보 섹터를 세이브하는 단계와, (d) 상기 세이브된 어느 정보 섹터에 대응하는 디스크 섹터로 향해지는 어느 후속 판독 요구 또는 기입 요구를 상기 큐로부터 서비스하는 단계를 포함하는 것을 특징으로 하는 특정형태의 기입 에러 발생시 포스트식 기입 큐 유지방법.
  4. 각 대응 디스크 섹터로 어드레스 지정된 정보 섹터가 부가될 수 있고 또한 그로부터 상기 정보 섹터가 상기 각 대응 디스크 섹터에 기입될 수 있는 포스트식 기입 큐를 관리하는 방법에 있어서, (a) 타임 아웃시 상기 큐에 대한 상기 정보 섹터의 부가를 저지하고, 상기 큐에 이미 부가된 각 정보 섹터를 상기 대응 디스크 섹터에 기입하는 단계와, (b) 특정 형태의 기입 에러 발생시 상기 큐에 대한 상기 정보 섹터의 부가를 저지하는 단계와, (c) 상기 기입 에러 발생에 뒤 이어서, 상기 큐에 이미 부가된 각 정보 섹터를 상기 대응 디스크 섹터에 기입시도를 하는 단계와, (d) 실패한 상기 시도 각각에 대해서는 상기 큐에 상기 정보 섹터를 세이브하는 단계와, (e) 상기 세이브된 어느 정보 섹터에 대응하는 디스크 섹터로 향해지는 어느 판독 요구 또는 기입 요구를 상기 실패한 시도에 뒤 이어서 상기 큐로부터 서비스하는 단계를 포함하는 것을 특징으로 하는 포스트식 기입 큐 관리방법.
KR1019890012719A 1988-09-16 1989-08-31 에러 처리법을 갖는 포스트식 기입 디스크 기입 동작의 큐잉 방법 KR970011213B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US245,865 1988-09-16
US245865 1988-09-16
US07/245,865 US5065354A (en) 1988-09-16 1988-09-16 Queued posted-write disk write method with improved error handling

Publications (2)

Publication Number Publication Date
KR900005326A KR900005326A (ko) 1990-04-14
KR970011213B1 true KR970011213B1 (ko) 1997-07-08

Family

ID=22928407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890012719A KR970011213B1 (ko) 1988-09-16 1989-08-31 에러 처리법을 갖는 포스트식 기입 디스크 기입 동작의 큐잉 방법

Country Status (6)

Country Link
US (1) US5065354A (ko)
EP (1) EP0359384B1 (ko)
JP (1) JPH0293949A (ko)
KR (1) KR970011213B1 (ko)
CA (1) CA1319440C (ko)
DE (1) DE68928542T2 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347648A (en) * 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
GB9026917D0 (en) * 1990-12-11 1991-01-30 Int Computers Ltd Rotating memory system
US5295259A (en) * 1991-02-05 1994-03-15 Advanced Micro Devices, Inc. Data cache and method for handling memory errors during copy-back
JPH06309200A (ja) * 1991-04-10 1994-11-04 Internatl Business Mach Corp <Ibm> ボリュームからオブジェクトを読取る方法、並びに階層式記憶システム及び情報処理システム
EP0510245A1 (en) * 1991-04-22 1992-10-28 Acer Incorporated System and method for a fast data write from a computer system to a storage system
US5388254A (en) * 1992-03-27 1995-02-07 International Business Machines Corporation Method and means for limiting duration of input/output (I/O) requests
US5448719A (en) * 1992-06-05 1995-09-05 Compaq Computer Corp. Method and apparatus for maintaining and retrieving live data in a posted write cache in case of power failure
US5408644A (en) * 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
US5715424A (en) * 1992-12-10 1998-02-03 International Business Machines Corporation Apparatus and method for writing data onto rewritable optical media
WO1994017474A1 (en) * 1993-01-21 1994-08-04 Apple Computer, Inc. Apparatus and method for backing up data from networked computer storage devices
DE69403951T2 (de) * 1993-01-21 1998-01-15 Apple Computer Verfahren und vorrichtung zur datenübertragung und -speicherung in einer hochparallelen rechnernetzwerkumgebung
US6138126A (en) 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
WO1994029796A1 (en) * 1993-06-03 1994-12-22 Network Appliance Corporation A method for allocating files in a file system integrated with a raid disk sub-system
EP1003103B1 (en) * 1993-06-03 2008-10-01 Network Appliance, Inc. Write anywhere file-system layout method and apparatus
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US5675725A (en) * 1993-07-19 1997-10-07 Cheyenne Advanced Technology Limited Computer backup system operable with open files
DK0710375T3 (da) * 1993-07-19 1999-09-20 Cheyenne Advanced Tech Ltd Filsikkerhedskopieringssystem
US5574950A (en) * 1994-03-01 1996-11-12 International Business Machines Corporation Remote data shadowing using a multimode interface to dynamically reconfigure control link-level and communication link-level
US5764903A (en) * 1994-09-26 1998-06-09 Acer America Corporation High availability network disk mirroring system
US5680580A (en) * 1995-02-28 1997-10-21 International Business Machines Corporation Remote copy system for setting request interconnect bit in each adapter within storage controller and initiating request connect frame in response to the setting bit
US6449686B1 (en) * 1997-03-06 2002-09-10 Micron Technology, Inc. Method and apparatus for determining removable magnetic media types in a computer after detection of a read error condition
US7103794B2 (en) 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
AU8061798A (en) * 1997-06-09 1998-12-30 Cacheflow, Inc. Network object cache engine
US6516351B2 (en) 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6366968B1 (en) 1998-06-26 2002-04-02 Intel Corporation Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails
US6587962B1 (en) * 1999-10-20 2003-07-01 Hewlett-Packard Development Company, L.P. Write request protection upon failure in a multi-computer system
US6857001B2 (en) 2002-06-07 2005-02-15 Network Appliance, Inc. Multiple concurrent active file systems
US7302690B2 (en) * 2003-07-31 2007-11-27 International Business Machines Corporation Method and apparatus for transparently sharing an exception vector between firmware and an operating system
US7313720B1 (en) 2004-02-12 2007-12-25 Network Appliance, Inc. Technique for increasing the number of persistent consistency point images in a file system
US20110167197A1 (en) * 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
US20140089646A1 (en) * 2012-09-27 2014-03-27 Texas Instruments Incorporated Processor with interruptable instruction execution
US10649829B2 (en) 2017-07-10 2020-05-12 Hewlett Packard Enterprise Development Lp Tracking errors associated with memory access operations
CN109918024B (zh) * 2019-02-28 2022-07-05 深圳和而泰数据资源与云技术有限公司 存储管理方法、装置、单片机设备和可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5255446A (en) * 1975-10-31 1977-05-06 Toshiba Corp Information transfer control system
US4598357A (en) * 1980-11-14 1986-07-01 Sperry Corporation Cache/disk subsystem with file number for recovery of cached data
US4394733A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem
US4523275A (en) * 1980-11-14 1985-06-11 Sperry Corporation Cache/disk subsystem with floating entry
US4476526A (en) * 1981-11-27 1984-10-09 Storage Technology Corporation Cache buffered memory subsystem
US4454595A (en) * 1981-12-23 1984-06-12 Pitney Bowes Inc. Buffer for use with a fixed disk controller
US4523206A (en) * 1982-03-03 1985-06-11 Sperry Corporation Cache/disk system with writeback regulation relative to use of cache memory
US4527233A (en) * 1982-07-26 1985-07-02 Ambrosius Iii William H Addressable buffer circuit with address incrementer independently clocked by host computer and external storage device controller
US4546430A (en) * 1983-07-13 1985-10-08 Sperry Corporation Control unit busy queuing

Also Published As

Publication number Publication date
EP0359384A3 (en) 1991-07-10
JPH0293949A (ja) 1990-04-04
EP0359384A2 (en) 1990-03-21
KR900005326A (ko) 1990-04-14
US5065354A (en) 1991-11-12
DE68928542T2 (de) 1998-07-23
CA1319440C (en) 1993-06-22
DE68928542D1 (de) 1998-02-19
EP0359384B1 (en) 1998-01-14

Similar Documents

Publication Publication Date Title
KR970011213B1 (ko) 에러 처리법을 갖는 포스트식 기입 디스크 기입 동작의 큐잉 방법
US6185652B1 (en) Interrupt mechanism on NorthBay
JP4792113B2 (ja) プロセッサ間割り込み
US5636374A (en) Method and apparatus for performing operations based upon the addresses of microinstructions
US6314471B1 (en) Techniques for an interrupt free operating system
US8424021B2 (en) Event-based bandwidth allocation mode switching method and apparatus
US5455924A (en) Apparatus and method for partial execution blocking of instructions following a data cache miss
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
EP0955583A2 (en) Context switching technique for processors with large register files
US5752268A (en) Minimum-delay recoverable disk control system using checkpoints and nonvolatile memory
JP2557199B2 (ja) インターフェース・システムおよび方法
JP2000099406A (ja) L1デ―タ・キャッシュ・パリティ・エラ―のための回復方法及びシステム
GB2348306A (en) Batch processing of tasks in data processing systems
TWI401604B (zh) 用以管理多處理器電腦系統內之系統管理中斷的系統與方法
US10545890B2 (en) Information processing device, information processing method, and program
US20180293126A1 (en) Operation of a multi-slice processor implementing exception handling in a nested translation environment
US20060069888A1 (en) Method, system and program for managing asynchronous cache scans
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
US10671453B1 (en) Data storage system employing two-level scheduling of processing cores
US8495261B2 (en) Redispatching suspended tasks after completion of I/O operations absent I/O interrupts
JP2001166994A (ja) 早期データ転送完了を利用してデータ記憶装置性能を改善するデータ記憶装置および方法
US6675238B1 (en) Each of a plurality of descriptors having a completion indicator and being stored in a cache memory of an input/output processor
US5835957A (en) System and method for a fast data write from a computer system to a storage system by overlapping transfer operations
JPH065515B2 (ja) キャッシュ再ロード・オーバーヘッドを減少させる方法およびコンピュータ・システム
US9442859B1 (en) Method for asynchronous population of data caches used with mass storage devices

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070208

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee