KR940006825B1 - 유닉스 시스템에서의 블록 i/o 드라이버의 동작제어방법 - Google Patents

유닉스 시스템에서의 블록 i/o 드라이버의 동작제어방법 Download PDF

Info

Publication number
KR940006825B1
KR940006825B1 KR1019910011417A KR910011417A KR940006825B1 KR 940006825 B1 KR940006825 B1 KR 940006825B1 KR 1019910011417 A KR1019910011417 A KR 1019910011417A KR 910011417 A KR910011417 A KR 910011417A KR 940006825 B1 KR940006825 B1 KR 940006825B1
Authority
KR
South Korea
Prior art keywords
bpe
command
command packet
queue
board
Prior art date
Application number
KR1019910011417A
Other languages
English (en)
Other versions
KR930002947A (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 KR1019910011417A priority Critical patent/KR940006825B1/ko
Publication of KR930002947A publication Critical patent/KR930002947A/ko
Application granted granted Critical
Publication of KR940006825B1 publication Critical patent/KR940006825B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

내용 없음.

Description

유닉스 시스템에서의 블록 I/O 드라이버의 동작제어방법
제1도는 본 발명의 구성도.
제2도는 본 발명의 체인 테이블 구성도.
제3도는 본 발명 FP 코멘드의 구조를 나타낸 도면.
제4도는 본 발명 BPE의 구조를 나타낸 도면.
제5도는 본 발명 SQ와 FQ의 초기상태를 나타낸 도면.
제6도는 본 발명 코맨드 큐의 수행방식 설명도.
제7도는 본 발명 코맨드 큐의 수행방식에 따른 플로우 챠트.
제8도는 본 발명 블록 I/O의 프로세싱 플로우를 나타낸 도면.
제9도는 본 발명 FP 코맨드의 종류를 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명
1 : 블록I/O드라이버 2 : 유닉스
3 : 다운로드 코드 4 : FP 보드
5 : 콘트롤부
본 발명은 유닉스(Unix) 시스템에서의 블록 I/O 드라이버의 동작제어방법에 관한 것으로, 특히 유닉스와 파일 프로세서 보드(File Processor Board)내의 다운로드 코드(Down Load Code)와의 사이에 적용시킬수 있는 블록 I/O에 적당하도록 한 것이다.
일반적으로 블록 I/O란 유저(USer) I/O 코멘드(예를들어, 리드, 라이트, 카피등)들을 실행할때 전송 바이트수를 일정한 크기의 블록으로 나누어 실행하는 것을 말한다.
또한, 파일 프로세서(이하 FP라 한다)의 주된 일은 SCSI(Small Computer System Interface) 버스에 부착된 하드 디스크를 비롯한 카트리지 테이프 및 마그네틱 테이프등과 같은 각종 디바이스들을 콘트롤하는 것이며, FP의 다운로드 코드는 이러한 SCSI 디바이스들을 호스트가 손쉽게 사용할 수 있도록 하는 코멘드 및 디바이스 구성 인식 체계를 가지고 호스트의 FP에 어떠한 수정도 요구하지 않고 SCSI 인터페이스를 갖는 모든 디바이스들을 사용 가능토록 한다.
즉, 모든 디바이스에 대한 정보는 루트 디바이스(하드 디스크 또는 플로피 디스켓트)의 정해진 영역에 등록하도록 하여 부팅단계에서 디바이스들의 구성 상태를 다운로드 코드에 인식시킨다.
따라서, 디바이스가 바뀌거나 추가되어도 FP 드라이버를 수정할 필요가 없으며, 만일 이러한 역할을 하는 다운로드 코드가 없다면 디바이스의 특성이 바뀌거나 추가될때마다 FP 드라이브를 바뀐 디바이스의 특성에 맞춰서 수정해 주어야 하기 때문에 이러한 성격을 디바이스 디펀던트하다고 한다.
종래의 FP 보드에는 다운로드 코드가 없이 I/O 드라이버에서 디바이스 디펜던트한 부분까지 수행하도록 구성되어 있으며, 드라이버에서 구성하는 코멘드는 직접 디바이스가 처리할 수 있도록 하여 보드가 처리할수 있도록 하였다.
또한, 다운로드 코드와 유사한 간단한 프로그램을 보드가 가지고 있다고 하여도 코멘드 큐를 사용하지 않기 때문에 그 코멘드의 구성이 단순하였다.
따라서, 종래에는 디바이스 디펜던트한 부분들을 블록 I/O 드라이버가 수행함으로써 디바이스 인디펜던시(Independency)를 구현할 수 없으며, 기존의 드라이버에서 보드로 내려보내는 코멘드는 디바이스 디펜던트하다는 약점을 갖는다.
그리고 코멘드 큐를 사용하지 않고 한번에 한 코멘드씩 수행함으로써 전체적인 성능이 저하된다.
본 발명은 이와 같은 종래의 제반 결점을 해결하기 위한 것으로, 코멘드 수행시 큐를 사용함으로써 여러FP(File Processor) 코멘드를 한꺼번에 처리할 수 있도록 함과 아울러 다운코드가 존재한다는 전제 아래 드라이버를 구현하여 이 드라이버로 하여금 최대한의 디바이스-인디펜던시를 얻는 방법을 제공하는데 그목적이 있다.
이하에서 이와 같은 목적을 달성하기 위한 본 발명의 실시예를 첨부된 도면에 의하여 상세히 설명하면 다음과 같다.
먼저 제1도는 본 발명에 따른 시스템의 구성도를 나타낸 것으로, 유닉스와 FP 보드사이의 인터페이스 투핀들인 블록 I/O 드라이버(1)를 가진 유닉스(2)와, 상기 블록 I/O 드라이버(1)로부터 만들어진 코멘드를 VME 버스를 통하여 전달받아 해당 디바이스에 알맞은 코멘드로 변환시키는 다운로드 코드(3)를 가진 FP보드(4)와, 상기 다운로드 코드(3)로 부터의 출력을 SCSI 버스를 통하여 전달받아 이를 하드디스크 마그네틱 테이프 혹은 스트리밍 테이프로 보내는 콘트롤부(5)를 구비하여서 이루어진다.
제2도는 블록 I/O의 종류(싱글 블록 I/O와 체인블록 I/O)중 체인블록 I/O의 구조를 나타낸 것으로, FP코멘드에 의해 실행될 바이트들이 연속된 메모리 영역이 아닌 블록 단위로 떨어진 메모리 영역일 경우 각 블록의 어드레스는 테이블내에 기록되어져 있어야 하는데 이러한 테이블을 체인 테이블이라 하며 이러한 기능은 페이지를 단위로 메모리를 취급하는 시스템에서 유용하다.
제3도는 FP 코멘드의 구조를 나타낸 것으로, 유닉스의 서브루틴들이 블록스위치 테이블을 통해 블록 I/O 드라이버를 부를때 플래그(Flag) 값만이 넘겨지기 때문에 드라이버에서는 이 플래그를 체크해서 수행되어야 할 코멘드를 새로이 구성해 주어야 한다.
이러한 FP 코멘드의 내용을 살펴보면, 디바이스 네임(name)은 타겟 디바이스 네임이고, 피지컬 메모리 어드레스는 보드와 호스트간에 I/O를 위한 버퍼 어드레스를 나타내며, 이는 체인블록 I/O일때 각 블록의 어드레스들의 어레이에 대한 포인터가 된다.
그리고 트랜스퍼 카운트는 보드와 호스트간의 바이트 단위의 전송량이고, 로지컬 블록넘버는 여러조각으로 나뉘어져 있는 하나의 디스크에서 원하는 조각의 스타트 블록 어드레스에 대한 오프셀값을 말하며 에러코드는 보드로부터 리턴되는 코멘드 수행결과의 상태이다.
또한 리시듀얼(Residual : 잔류)은 보드에서 코멘드가 수행될때 에러발생으로 전송되지 않은 데이타의 양이고, 페이지 인덱스는 체인블록 I/O일때 사용되며 BUF 어드레스는 버퍼 헤더의 포인터이고 넥스트 코멘드 포인터는 프리 리스트나 큐에서 넥스트 코멘드에 대한 포인터로 사용되는 것이다.
제4도와 제5도는 코멘드 큐를 효율적으로 수행하기 위하여 큐의 요소를 구성한 BPE(Buffered Pipe Envelope)의 구조와 SQ(Startable Queue) 및 FQ(Finished Queue)의 초기상태를 나타낸 것이다.
제6도는 코멘드 큐의 수행방식을 나타낸 것으로, SQ는 만들어진 코멘드 페킷(Packed)에 대한 포인터를 갖는 BPE들로 이루어지고, FQ는 보드에 의해 실행된 코멘드 페킷에 대한 포인터를 갖는 BPE들로 이루어진다.
여기서, 코멘드 페킷은 제3도와 같은 드라이버에서 만들어진 하나의 코멘드이고 프리 CMDs와 BPEs는 BPE와 코멘드 페킷을 구성하기 위하여 메모리로부터 할당받을 수 있는 빈 영역을 말하는 것으로, 또 이미수행이 끝단 BPE와 CMD는 자신의 영역을 빈 영역(free BPEs, free CMDs)으로 되돌려 보낸다.
또한, 이때의 FBP는 Free BPE Pionter, SQT는 Startable Queue Tail, SQH는 Startable Queue Head, FQT는 Finished Queue Tail, FQH는 Finished Queue Head, FCM은 Free Command를 나타낸다.
이하에서 Fp 코멘드의 수행 방식을 제7도를 참고로 하여 설명하면 다음과 같다.
첫째, SQ와 FQ를 초기상태로 만들고,
둘째, 프리 코멘드 페킷 풀(메모리 공간)로부터 코멘드 페킷을 할당받는다.
셋째, 할당받은 코멘드 페킷에 제3도와 같은 코멘드 내용을 채운다.
넷째, 이 코멘드 페킷에 대한 어드레스를 현재 SQT가 가리키는 BPE의 코멘드 페킷 어드레스 필드에 넣고, BPE 풀로부터 새로운 BPE를 가져와서 넥스트 어드레스 필드를 1로 셋팅한다.
다섯째, 현재 SQT가 가리키는 BPE의 넥스트 BPE 어드레스 필드에 새로 가져온 BPE의 어드레스를 넣는다.
여섯째, SQT를 새로 가져온 BPE로 변경하고,
일곱째, 호스트가 FP 보드에 어텐션 인터럽트를 발생시킨다.
여덟째, 호스트가 FP 보드로부터 인터럽트가 발생되었나를 판단하여 인터럽트가 발생되면,
아홉번째, FQH로부터 처리된 결과를 받지만 인터럽트가 발생되지 않으면 둘째단계로 궤환된다.
열번째, FQH가 가리키는 BPE와 이 BPE가 가리키는 코멘드 페킷을 프리풀에 넣는다.
마지막으로 FQH를 넥스트 BPE로 변경한 후 둘째 단계로 궤환된다.
이때, 호스트는 다른 일을 할 수 있으며 만일 새로운 코멘드가 발생하면 둘째단계로부터 다시 시작한다. 이상에서 설명한 바와 같은 본 발명은 코멘드 수행시 큐를 사용함으로써 다수의 FP 코멘드를 한꺼번에 처리할 수 있기 때문에 처리속도를 향상시킬 수 있으며, CPU가 정지되어 있는 경우를 최대한으로 줄일 수 있어 효율을 증대시킬 수 있을 뿐만 아니라 다운로드가 존재한다는 전제아래 드라이브를 구현했기 때문에 드라이버는 최대한의 디바이스-인디펜던시를 얻을 수 있어 I/O 디바이스가 바뀌더라도 드라이버의 내용을 수정할 필요가 없게 된다.
또한, 유닉스와 파일 프로세서 보드와의 사이에 블록 I/O가 가능함은 물론 싱글 블록 I/O와 체인블록 I/O를 모두 가능하게 할 수 있는 효과를 갖는다.

Claims (1)

  1. 코멘드 큐의 수행 방식은 SQ와 FQ를 초기상태로 만드는 단계와, 프리코멘드 페킷 풀로부터 코멘드 페킷을 할당받는 단계와, 할당받은 코멘드 페킷에 코멘드 내용을 채우는 단계와, 코멘드 페킷에 대한 어드레스를 SQT가 가리키는 BPE의 코멘드 페킷 어드레스 필드에 넣고 BPE 풀로부터 새로운 BPE를 가져와 넥스트 어드레스 필드를 1로 셋팅하는 단계와, 현재 SQT가 가리키는 BPE의 넥스트 BPE 어드레스 필드에 새로 가져온 BPE의 어드레스를 넣는 단계와, SQT를 새로 가져온 BPE로 변경하는 단계와, 호스트가 FP보드에 어텐션 인터럽트를 발생시키는 단계와, 호스트가 FP 보드로부터 인터럽트가 발생되었나를 판단하여 인터럽트가 발생되면 FQH로부터 처리된 결과를 받고 인터럽트가 발생되지 않으면, 상기 SQ와 FQ의 초기화 다음 단계를 궤환하는 단계와, FQH가 가리키는 BPE와 이 BPE가 가리키는 코멘드 페킷을 프리풀에 넣은 단계와, FQH를 넥스트 BPE로 변경한 후 상기 SQ와 FQ의 초기화 다음 단계로 궤환하는 단계를 포함하여서 이루어짐을 특징으로 하는 유닉스 시스템에서의 블록 I/O 드라이버의 동작 제어방법.
KR1019910011417A 1991-07-05 1991-07-05 유닉스 시스템에서의 블록 i/o 드라이버의 동작제어방법 KR940006825B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019910011417A KR940006825B1 (ko) 1991-07-05 1991-07-05 유닉스 시스템에서의 블록 i/o 드라이버의 동작제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019910011417A KR940006825B1 (ko) 1991-07-05 1991-07-05 유닉스 시스템에서의 블록 i/o 드라이버의 동작제어방법

Publications (2)

Publication Number Publication Date
KR930002947A KR930002947A (ko) 1993-02-23
KR940006825B1 true KR940006825B1 (ko) 1994-07-28

Family

ID=19316825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910011417A KR940006825B1 (ko) 1991-07-05 1991-07-05 유닉스 시스템에서의 블록 i/o 드라이버의 동작제어방법

Country Status (1)

Country Link
KR (1) KR940006825B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100571603B1 (ko) * 2004-08-25 2006-04-17 엘에스전선 주식회사 절개 및 찢김 특성이 우수한 시스를 구비한 광케이블

Also Published As

Publication number Publication date
KR930002947A (ko) 1993-02-23

Similar Documents

Publication Publication Date Title
JP6046216B2 (ja) ホストシステム及びホストコントローラ
JP3878851B2 (ja) 連結リストdma記述子アーキテクチャ
EP1922656B1 (en) System and method for performing a search operation within a sequential access data storage subsystem
US6055602A (en) Logical positioning within a storage device by a storage controller
EP0690388A2 (en) Multiple protocol device interface
US7844752B2 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
JP2004185349A (ja) ジャーナルログを利用した更新データ書込方法
JPH065520B2 (ja) 効率的データ転送機能を有するコンピユータ・システムおよび効率的データ転送方法
JPH0750456B2 (ja) 入出力制御システム
JPH07105126A (ja) インターフェース・システムおよび方法
US20050228920A1 (en) Interrupt system using event data structures
US5911077A (en) System for multithreaded disk drive operation in a computer system
US20040210681A1 (en) Streamlining ATA device initialization
KR940006825B1 (ko) 유닉스 시스템에서의 블록 i/o 드라이버의 동작제어방법
CN1795442A (zh) 用于在主存储器和存储装置之间传送数据的方法和设备
US7082445B2 (en) Fast data copy using a data copy track table
KR20020032136A (ko) 메모리를 이용한 대용량 보조기억장치
US20030005182A1 (en) Method and apparatus for period promotion avoidance for hubs
JPH07104830B2 (ja) コンピュータ・システム及びコンピュータ・システムを作動させる方法
CN115129253A (zh) 一种快照处理方法、装置、设备及介质
JPH07210382A (ja) レジスタの内容を変更するための装置および方法
EP0096199A2 (en) Method and apparatus for logging journal data in a computing apparatus
CN112732176A (zh) 基于fpga的ssd访问方法及装置、存储系统及存储介质
CN112711442A (zh) 一种主机命令写入方法、设备、系统及可读存储介质
WO2022193238A1 (zh) 存储器操作的执行方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20060627

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee