KR100326656B1 - 기록재생장치 - Google Patents
기록재생장치 Download PDFInfo
- Publication number
- KR100326656B1 KR100326656B1 KR1019980003899A KR19980003899A KR100326656B1 KR 100326656 B1 KR100326656 B1 KR 100326656B1 KR 1019980003899 A KR1019980003899 A KR 1019980003899A KR 19980003899 A KR19980003899 A KR 19980003899A KR 100326656 B1 KR100326656 B1 KR 100326656B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- command
- segment
- input
- request
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B19/00—Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
- G11B19/02—Control of operating function, e.g. switching from recording to reproducing
- G11B19/06—Control of operating function, e.g. switching from recording to reproducing by counting or timing of machine operations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/102—Programmed access in sequence to addressed parts of tracks of operating record carriers
- G11B27/105—Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/78—Television signal recording using magnetic recording
- H04N5/781—Television signal recording using magnetic recording on disks or drums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
-
- 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
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10629—Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
- G11B2020/10657—Cache memories for random data access, e.g. buffers wherein the data output is controlled by a priority parameter other than retention time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명의 기록재생장치는, 외부기기로부터 입력되는 입출력 실행시간 예측요구가 입력되는 입력수단과, 상기 입출력 실행시간 예측요구에 대하여 입력요구의 실행시간을 예측하는 판정수단을 가지고, 외부기기로부터 입력되는 입출력 실행시간 예측요구에 대하여 입출력요구의 실행시간을 예측하여 외부기기에 통지하도록 구성되어 있다.
Description
본 발명은 자기 디스크장치등의 기록재생장치에 관한 것으로, 특히 기록재생장치에 내장된 일시기억회로를 제어함으로써 동작화상 데이터등의 리얼타임 데이터를 기록재생하는 기록재생장치와 기록재생장치에 대한 입출력제어방법에 관한 것이다.
근래, 자기 디스크장치등의 기록재생장치에 있어서의 기록밀도, 전송속도는, 급속히 향상되어 왔다. 이러한 디스크장치는 다채널의 동작 화상 데이터의 기록재생에도 사용되고 있다.
디스크장치에 있어서 동작 화상 데이터를 소정의 레이트로 연속하여 기록재생하기 위해서는, 디스크장치에 대한 입출력요구를 소정의 시간내에 처리해야 한다. 또한, 복수의 입출력요구를 처리하는 경우에는, 각 입출력요구가 정확한 시간관리가 필요하다.
입출력요구의 시간관리는, 디스크장치를 제어하는 호스트컴퓨터의 소프트웨어처리에 의해 행할 수 있다. 그러나, 입출력요구를 리얼 타임에 시간관리하는 것은 CPU 부하가 커진다고 하는 문제가 있었다. 그 때문에, 일본의 특허공보의 특개평8-171526호공보에 나타낸 바와 같이, 디스크장치와 호스트컴퓨터의 사이에 전용의 인터페이스장치를 접속하여, 입출력요구의 시간관리를 하고 있었다.
또한, 다채널동작 화상 데이터의 기록재생을 하는 경우에는, 디스크장치에 있어서의 시크동작등의 기계적동작에 의한 데이터 전송중단을 흡수하기 위해서 일시기억회로를 마련하여 기록재생성능을 향상시켜 연속기록재생을 보증한다.
종래의 디스크장치는, 예컨대 미국특허 5465343호 공보에 나타내는 바와 같이, 기록재생성능을 향상시키기 위해서 일시기억회로를 마련하여, 이 일시기억회로를 버퍼메모리, 혹은 캐슈메모리로서 사용하고 있다. 또한, 프리페치처리에도 일시기억회로는 사용된다. 프리페치처리는, 시퀀셜 데이터 입출력요구에 대한 성능향상을 목적으로서, 출력요구에 해당하는 데이터를 읽어낸 뒤, 후속하는 데이터를 읽어 내어 일시기억회로에 기억하는 처리이다.
이하, 첨부도면을 참조하면서, 상기 종래의 인터페이스장치와 디스크장치에의한 기록재생장치에 관해서 설명한다.
도 39는 전술의 인터페이스장치와 종래의 디스크장치를 쓴 기록재생장치의 디스크의 전체구성을 나타내는 블럭도이다. 도 39에 도시한 바와 같이, 호스트 컴퓨터(71), 기준 클럭생성부(72)및 인터페이스장치(73)는, 입출력버스(75)에 각각접속되어 있다. 디스크장치(74)는 데이터 버스(76)를 통해 인터페이스장치(73)에 접속되어 있다.
인터페이스장치(73)는 버스인터페이스 제어부(82)(이하, 버스 I/F 제어부(82)라고 약칭), 입출력제어부(84), 스케줄관리부(81), 및 우선도 부착 큐관리부(83)를 구비하고 있다. 인터페이스장치(73)에 있어서, 스케줄관리부(81)는, 입출력요구의 실행순서의 제어를 행하고 있다.
호스트 컴퓨터(71)는 인터페이스장치(73)에 대하여 데이터의 입출력요구를 발행한다. 입출력요구는 입출력 버스(75)를 통하여 인터페이스장치(73)의 버스I/F 제어부(82)에서 수신되어, 코멘드 버스(77)를 통해 우선도 부착 큐관리부(81)에 격납된다. 우선도 부착 큐관리부(83)에서는, 우선도 부착 큐, 펜딩 큐, 및 입출력실행 큐의 관리를 행한다.
기준 클럭발생부(72)에 있어서 생성된 기준 클럭정보는, 입출력 버스(75)를 지나서, 버스 I/F 제어부(82)를 통해 스케줄관리부(81)에 격납된다.
스케줄관리부(81)는, 입출력요구를 우선도 부착 큐관리부(83)내의 우선도 부착 큐에 인도한다. 계속해서, 스케줄관리부(81)는, 우선도 부착 큐내에 입출력요구가 포함되고 있느냐 아니냐를 판정한다.
우선도 부착 큐내에 입출력요구가 포함되고 있는 경우에는, 스케줄관리부(81)는 그 입출력요구를 취득, 처리시간이 규정되어 있는 우선도가 높은 요구인가 아닌가를 판정한다. 스케줄관리부(81)는, 우선도가 높은 경우에는 그 입출력요구를 입출력제어부(84)에 전송하고, 우선도가 낮은 경우에는 펜딩 큐에 추가한다.
우선도 부착 큐내에 입출력요구가 포함되고 있지 않은 경우에는, 펜딩 큐를 체크한다. 펜딩 큐에 입출력요구가 있으면, 그 입출력요구를 취하여, 설정된 처리시간내라면 그 입출력요구를 실행한다. 그 입출력요구가 처리시간을 넘어 타임아웃인 경우에는, 파기 또는 펜딩 큐로 되돌린다.
입출력제어부(84)는 디스크장치(74)를 제어하여, 데이터의 입출력을 지시함 과 동시에, 데이터의 기입 또는 읽어 내기를 실행한다.
도 40은, 디스크장치(314)의 일시기억회로인 버퍼 메모리의 분할제어방법을 도시한 도면이다.
도 40의 (a)의 부분은 적응형 세그먼트분할 방법을 나타낸다. 도 40의 (a)의 부분에 도시하도록, 버퍼 메모리를 복수의 세그먼트에 분할하여, 기입 데이터의 버퍼, 읽어 내기 데이터의 캐쉬에 할당할 수 있다. 또한, 각 세그먼트 사이즈를 기입/읽어 내기 코멘드의 전송 데이터 사이즈에 응해서 변경할 수가 있다.
또한, 도 40의 (b)의 부분은 고정 세그먼트분할방법을 나타내며, 외부기기로부터의 설정 코멘드에 의하여 버퍼 메모리를 복수의 고정 사이즈 세그먼트에 분할할 수가 있다. 예컨대, SCSI-3 (SCSI:Small Computer System Inerface)규격대응의 디스크장치로는 버퍼 메모리의 세그먼트수, 세그먼트 사이즈를 설정할 수가 있다. 각 세그먼트 사이즈는 동일하며, 고정되어 있다.
이상과 같은 종래의 제어방법에 있어서, 디스크장치(74)는 버퍼 메모리를 세그먼트마다 분할하여 사용하고 있다. 이에 따라, 종래의 기록재생장치는, 다채널동작 화상 데이터의 기록재생같은 멀티테스크처리에 해당하여, 기록재생성능을 향상시키고 있다.
이상과같이 구성된 종래의 기록재생장치에 있어서의 문제에 대하여 이하에 설명한다.
우선, 종래의 기록재생장치에 있어서는, 입출력요구의 실행시간관리에 문제가 있었다.
종래의 기록재생장치의 디스크장치에 있어서의 입출력요구의 실행시간은, 목표영역으로의 억세스시간, 즉 시크시간, 회전대기시간 등의 변동과 일시기억회로의 사용상황에 의해서 크게 변동하는 경우가 있었다. 상기 구성의 종래의 기록재생장치에 있어서는, 인터페이스장치 및 외부기기에 있어서, 디스크장치의 억세스시간, 일시기억회로의 사용상황등에 관한 정보를 얻는 수단이 없기 때문에, 실행시간을 정확히 예측할 수가 없었다. 그 때문에, 종래의 기록재생장치에 있어서, 마감시간을 지키도록 시간관리하는 경우에는, 안전을 기대하고 과대한 실행시간을 상정하여 시간관리해야 하며, 처리효율이 저하되는 문제가 있었다.
다음에, 종래의 기록재생장치에 있어서는 입출력요구의 응답에 지연이 발생하고 성능이 저하하는 경우가 있다는 문제가 있었다.
종래의 기록재생장치에 있어서, 제한시간이 부착된 우선도가 높은 입출력요구를 우선적으로 실행하며, 우선도가 낮은 입출력요구를 보류함으로써, 우선도가 높은 동작 화상 데이터를 연속하여 기록재생하고 있었다. 그러나, 우선도가 높은입출력요구가 큐에 존재하지 않고, 우선도가 낮은 입출력요구만이 큐에 존재하는 경우에는, 무조건으로 우선도가 낮은 입출력요구가 실행된다.
그 때문에, 우선순위가 낮은 입출력요구의 실행중에, 호스트 컴퓨터등의 외부기기로부터 우선도가 높은 입출력요구가 입력되더라도, 우선도가 낮은 입출력요구의 실행이 종료되고 나서가 아니면, 우선도가 높은 입출력요구는 실행되지 않았다. 이 경우에 있어서, 외부기기에는 그 우선도가 높은 입출력요구가 실행되지 않은 이유가 통지되지 않고, 그 실행이 종료할 때까지 대기의 상태로 된다.
즉, 종래의 기록재생장치에 있어서는, 입출력요구의 실행시간을 고려한 시간관리가 이루어지지 않고, 우선도가 높은 입출력요구가 입력되더라도, 대기상태가 되는 경우가 있었다.
또한, 제한시간이 없게 우선도가 낮은 랜덤데이터 입출력요구가 큐에 존재하는 상태로, 제한시간이 부착된 우선도가 높은 동작 화상입출력요구가 입력되었을 때, 시간적으로 여유가 있는 경우라도 동작 화상입출력요구가 우선적으로 실행되어, 랜덤데이터 입출력요구에 대한 응답이 현저히 지연되는 경우가 있었다.
또한, 종래의 디스크장치에 있어서는 일시기억회로의 효율적사용에 있어서 문제가 있었다.
디스크장치에 있어서, 전송레이트가 높은 동작 화상 데이터의 연속기록재생을 보증하기위해서는, 많은 일시기억회로를 필요로 하지만, 낮은 전송레이트의 동작 화상 데이터, 혹은 프로그램 데이터등에는 적은 일시기억회로라도 무방하다. 또한, 동작 화상 데이터는 연속적인 시퀀셜 데이터이지만, 프로그램 데이터등은 이상적인 랜덤데이터이고, 버퍼 메모리/캐쉬 메모리의 제어방법은 데이터의 성질에 따라 다르다.
종래의 디스크장치의 일시기억회로 사용방법은, 임의의 데이터에 대응할 수 있도록 구성되어 있지만, 동작 화상 데이터의 연속기록재생 보증 혹은 기록재생 성능향상에 알맞은 사용방법은 아니었다. 예컨대, 동작 화상 데이터의 특수재생인 경우, 쓸데 없는 프리페치처리가 발생하여, 응답이 지연하여 성능이 저하하는 경우도 있었다.
또한, 동작 화상 데이터를 포함하는 다채널 데이터를 기록재생하는 경우, 각 채널의 데이터가 필요한 전송속도, 리얼타임성, 연속성등에 의해서 일시기억회로의 사이즈, 제어방식을 개별로 설정할 필요가 있다.
그렇지만, 종래의 디스크장치로는, 세그먼트을 복수로 분할하는 것이나, 세그먼트 사이즈를 변경할 수 있지만, 다채널 데이터를 채널마다 각 세그먼트에 대응하여 설치할 수 없고, 다른 전송속도, 리얼 타임성, 및 연속성에 따라, 채널마다 세그먼트 사이즈, 제어방식을 설정할 수가 없었다.
도 1은 본 발명의 실시예1에 있어서의 디스크장치의 구성을 나타내는 블록도,
도 2는 실시예1에 있어서의 입출력 코멘드의 처리의 흐름을 나타내는 플로 챠트,
도 3은 실시예1에 있어서의 실행시간 예측 코멘드의 처리의 흐름을 나타내는 플로 챠트,
도 4는 실시예1에 있어서의 기입 코멘드의 실행시간예측처리의 흐름을 나타내는 플로 챠트,
도 5는 실시예1에 있어서의 버퍼 RAM의 각 파라미터를 도시한 도면,
도 6은 실시예1에 있어서의 세그먼트축적량, 데이터잔량, 미전송 데이터량의 일례를 나타내는 그래프,
도 7은 실시예1에 있어서의 읽어 내기 코멘드의 실행시간예측처리의 흐름을 나타내는 플로 챠트,
도 8은 실시예2에 있어서의 전송 데이터전송량요구 코멘드의 처리의 흐름을 동작에 관해서 도 4부터 도 7을 참조하여 설명한다.
도 9는 실시예2에 있어서의 기입 가능 데이터 사이즈예측처리의 흐름을 나타내는 플로우챠트.
도 10은 실시예2에 있어서의 읽어 내기 가능 데이터 사이즈예측처리의 흐름을 나타내는 플로우챠트.
도 11은 실시예3에 있어서의 전송 데이터전송량요구 코멘드의 처리의 흐름을 나타내는 플로우챠트.
도 12는 실시예4에 있어서의 영상처리장치의 개략구성을 나타내는 블럭도.
도 13은 실시예4에 있어서의 버퍼 RAM의 영역분할방법의 설명도.
도 14는 실시예4에 있어서의 영상처리장치의 동작의 흐름을 나타내는 플로우챠트.
도 15는 실시예4에 있어서의 기록재생장치의 기록동작을 설명하는 플로우챠트.
도 16은 실시예4에 있어서의 미리 읽기 데이터관리 테이블의 설명도.
도 17은 실시예4에 있어서의 기록재생장치의 재생동작을 설명하는 플로우 챠트.
도 18은 실시예4에 있어서의 기록재생장치의 데이터검색동작을 설명하는 플로우 챠트.
도 19는 실시예4에 있어서의 파일관리정보의 설명도.
도 20은 실시예4에 있어서의 기록재생장치의 자동 미리 읽기 동작을 설명하는 플로우 챠트.
도 21은 실시예5에 있어서의 기록재생장치의 기록동작을 설명하는 플로우 챠트.
도 22는 실시예5에 있어서의 기록재생장치의 재생동작을 설명하는 플로우 챠트.
도 23은 실시예5에 있어서의 기록재생장치의 프리페치동작을 설명하는 플로우 챠트.
도 24는 실시예6에 있어서의 기록재생장치의 기록재생동작을 설명하는 플로우 챠트.
도 25는 실시예6에 있어서의 요구축적 큐의 설명도.
도 26은 실시예7에 있어서의 디스크장치의 구성을 나타내는 블럭도.
도 27은 실시예7에 있어서의 HDD 제어회로의 구성을 나타내는 블럭도이다.
도 28은 실시예7에 있어서의 버퍼제어회로의 세그먼트설정 레지스터와 버퍼 RAM의 각 세그먼트과의 대응을 도시한 도면이다.
도 29는 실시예7에 있어서의 디스크장치가 세그먼트설정 코멘드를 처리할 때의 동작을 나타내는 플로우 챠트.
도 30은 실시예7에 있어서의 세그먼트설정 코멘드에 의한 세그먼트 설정변경의 예를 나타내는 도면.
도 31은 실시예7에 있어서의 세그먼트의 축적상황과, 호스트전송, 디스크전송에 관계하는 각 파라미터를 도시한 도면.
도 32는 실시예7에 있어서의 외부기기로부터 세그먼트에의 호스트전송처리를 나타내는 플로우 챠트.
도 33은 실시예7에 있어서의 세그먼트로부터 디스크로의 호스트전송처리를 나타내는 플로우 챠트.
도 34는 실시예7에 있어서의 디스크로부터 세그먼트에의 디스크전송처리를 나타내는 플로우 챠트.
도 35는 실시예7에 있어서의 세그먼트로부터 외부기기에의 호스트전송처리를 나타내는 플로우 챠트.
도 36은 실시예8에 있어서의 전송속도설정 코멘드의 처리를 나타내는 플로우 챠트.
도 37은 실시예9에 있어서의 버퍼 RAM의 세그먼트분할과 세그먼트설정 레지스터와의 대응을 도시한 도면.
도 38은 실시예10에 있어서의 버퍼제어회로의 세그먼트설정 레지스터, 버퍼 RAM의 세그먼트분할, 및 디스크상의 각 영역과의 대응을 도시한 도면.
도 39는 종래의 기록재생장치의 디스크구성을 나타내는 블럭도.
도 40은 기록재생장치를 구성하는 종래의 디스크장치의 버퍼메모리의 분할제어방법을 나타낸 도면.
<도면의 주요부분에 대한 부호의 설명>
1,41: 디스크 2,36,51: 인터페이스회로
3,43: 버퍼 RAM 4,44: 읽기/쓰기신호 처리회로
5,45: 헤드·디스크기구 6,46: 헤드기구
6a,46a: 헤드 7,47: 액츄에이터
8,48: 액츄에이터 구동회로 9,49: HDD 제어회로
31: 디스크 장치 32: 영상처리장치
33: 인터페이스·버스 34: 마이크로프로세서
35: 버퍼메모리 37: 영상데이터처리회로
42: CPU 52: CPU 인터페이스회로
53: 버퍼제어회로 54: 제어신호 입출력회로
61,61a: 세그먼트설정레지스터
본 발명의 목적은 전술의 입출력요구의 실행시간 관리의 문제와, 입출력요구의 처리에 지연이 발생한다는 문제를 해결하기 위해서, 외부기기로부터의 각 입출력요구에 대하여 입출력요구의 실행시간을 예측하여 확실한 처리를 보증할 수가 있는 기록재생장치를 제공하는 것이다. 또한, 본 발명의 목적은, 우선도가 높은 동작 화상 데이터등이 확실한 연속기록재생을 보증하여, 우선도가 낮은 입출력요구의 효율적처리를 실현되는 기록재생장치 및 입출력제어방법을 제공하는 것이다. 또한, 본 발명의 목적은, 제한시간에 대하여 시간적으로 여유가 있는 경우에는 우선순위가 낮은 랜덤데이터 입출력요구를 선택하여 실행할 수 있는 기록재생장치를 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명의 기록재생장치는, 외부기기로부터의 입출력실행시간 예측요구가 입력되는 입력수단과, 상기 입출력실행시간 예측요구에 대하여 입출력요구의 실행시간을 예측하는 판정수단을 구비한다.
상기 구성에 의한 본 발명의 기록재생장치는, 입출력요구에 대하여 실행시간을 정확히 예측하여 외부기기에 응답함으로써, 입출력요구의 실행시간을 확보할 수가 있다.
본 발명의 기록재생장치는, 외부기기로부터의 입출력요구에 대하여, 실행시간을 예측하여, 예측된 실행시간이 외부기기로부터 설정된 마감시간내에 실행가능한지 아닌지를 판정하는 판정수단과, 상기 판정수단에 있어서 실행가능하다고 판정된 경우에는 해당 입출력요구를 실행하여, 실행불가능이라고 판정된 경우에는 처리를 종료하여 그 판정결과에 의해 해당 외부기기에 응답하는 입출력요구처리수단을 구비한다.
본 발명의 기록재생장치는, 외부기기로부터의 입출력 데이터 전송량요구에 대하여, 외부기기로부터 설정된 마감시간내에 입출력가능한 데이터 사이즈에 따라 응답하는 판정수단을 구비한다.
상기 구성에 의한 본 발명의 기록재생장치는, 마감시간내에 입출력가능한 데이터 사이즈를 예측하여 응답함으로써 우선도가 높은 요구의 실행시간을 보증한 뒤에 우선도가 낮은 요구에 대하여 최대한의 전송레이트를 제공하여 처리효율의 향상을 꾀할 수 있다. 또한, 본 발명의 기록재생장치에 있어서, 호스트 컴퓨터등의 외부기기는 입출력요구가 마감시간내에 실행가능한지 아닌지를 판정할 수 있기 때문에 각 데이터입출력에 대하여 실행종료시간을 보증할 수가 있고, 입출력요구의 리얼 타임 시간관리를 용이하게 실행할 수가 있다.
본 발명의 기록재생장치는, 입출력요구의 종별에 의해서 복수의 세그먼트로 분할가능한 일시기억회로를 구비하고, 상기 판정수단이, 외부기기로부터의 기입 사이즈요구에 대하여, 해당하는 세그먼트의 간격 사이즈를 기입 가능한 데이터 사이즈로서 응답한다.
본 발명의 기록재생장치는, 입출력요구의 종별에 따라 복수의 세그먼트에 분할가능한 일시기억회로와, 기록매체로부터 지정된 영역을 읽어 내어 해당하는 세그먼트로의 일시기억만을 행하는 미리 읽기 수단을 구비하여, 미리 읽기 사이즈요구에 대하여, 미리 읽기 가능한 데이터 사이즈로서 해당하는 세그먼트의 간격 사이즈를 응답하여 읽어내기 사이즈요구에 대하여, 해당하는 세그먼트의 미리 읽기가 끝난 데이터 사이즈를 읽어내기 가능 데이터 사이즈로서 응답한다.
상기 구성에 의한 본 발명의 기록재생장치는, 기입 데이터 전송량요구에 대하여, 해당하는 세그먼트의 간격 사이즈를 응답하여, 읽어내기 데이터전송량요구에 대하여, 미리 읽기가 끝난 데이터 사이즈를 응답하여, 미리 읽기 데이터전송량요구에 대해서는 해당하는 세그먼트의 간격 사이즈를 응답함으로써, 입출력 데이터를항상 버스트 전송할 수가 있고, 입출력요구의 시간관리를 정확하고 또한 쉽게 할 수 있다. 또한, 본 발명에 의하면, 입출력 버스의 점유시간을 단축할 수 있다는 효과를 얻을 수 있다.
본 발명의 입출력제어방법은, 외부기기로부터의 데이터 전송량요구에 따라, 상기 외부기기와의 사이에서 연속적으로 전송가능한 데이터량을 통지하는 통지수단을 구비하는 기록재생장치에 대한 입출력제어방법으로서, 상기 전송가능 데이터량에 따라 상기 외부기기와 상기 기록재생장치 사이의 데이터 전송방법을 선택하는 것이다. 상기 구성에 의한 본 발명의 입출력제어방법은, 입출력 데이터를 항상 연속적으로 전송할 수가 있다.
본 발명의 기록재생장치는, 축적된 입출력요구의 종류를 판별하여, 입출력요구가 제한시간부착 입출력요구의 경우에는, 제한시간에 따라서 산출한 마감 시간까지의 남은 시간에 따라 우선적으로 처리를 실행하는 입출력요구의 종류를 선택하여 실행한다.
본 발명의 기록재생장치는, 축적된 입출력요구의 제한시간에 따라서 마감 시간까지의 남은 시간을 산출하여, 축적된 입출력요구의 안에서 남은 시간이 최소인 입출력요구를 선택하여, 상기 데이터요구의 남은시간이 소정치보다 작을 경우에는 상기 입출력요구를 실행하고, 상기 조건이 채워지지 않은 경우에는, 각 입출력요구에 해당하는 데이터의 기록위치에 따라서 축적된 입출력요구의 실행순서를 선택하여 실행한다.
상기 구성에 의한, 본 발명의 기록재생장치는, 마감 시간까지의 남은 시간에따라서 실행해야 할 입출력요구를 선택하기 때문에, 동작 화상 데이터등의 연속기록재생을 보증한 뒤에, 랜덤데이터의 기록재생에 처리시간을 할당할 수 있고, 기록재생성능을 향상할 수가 있다.
본 발명의 다른 목적은, 상기한 일시기억회로의 효율적사용에 관한 과제에 비추어, 동작 화상 데이터에 알맞은 일시기억회로의 제어방법에 의해서 동작 화상 데이터를 기록재생하는 기록재생장치를 제공하는 것이다. 또한, 본 발명의 목적은, 필요로 하는 채널수에 따라서 일시기억회로를 복수의 세그먼트로 분할할 수 있고, 채널마다, 전송속도, 리얼타임성에 대응하여, 일시기억회로 사이즈, 일시기억회로제어방식을 설정할 수 있는 기록재생장치를 제공하는 것이다.
상기 목적을 달성하기위해서, 본 발명의 기록재생장치는, 기록매체에 기록된 데이터에 해당한 파일관리정보를 기억하는 관리정보기억수단을 가지고, 외부기기로부터의 자동 미리읽기 요구에 따라 상기 관리정보를 재생하여, 외부기기로 전송해야 할 데이터·블록의 기록매체상의 기록위치를 구하여, 데이터·블록를 미리 읽는다.
본 발명의 기록재생장치는, 외부기기로부터의 복수의 식별자 부착 미리 읽기 요구에 따라 기록매체로부터 데이터·블록를 재생하여 일시기억회로에 전송하는 미리 읽기 수단을 가지며, 외부기기로부터 식별자 부착 입출력요구를 받아들인 경우에는, 식별자에 따라 미리 읽어낸 데이터·블록의 속에서 데이터·블록를 선택하여 상기 외부기기에 전송한다.
본 발명의 기록재생장치는, 축적한 데이터기입 요구의 종류를 판별하여 기록매체에 연속하여 기록하는 데이터량을 선택하여, 기록한다. 또한, 본 발명의 기록재생장치는, 축적한 데이터 읽어내기 요구의 종류를 판별하여 축적하는 요구수를 선택하여, 축적한 요구수에 응하여 기록매체로부터의 데이터재생을 연속하여 행한다.
본 발명의 기록재생장치는, 기록매체로부터 재생한 데이터를 일시기억회로에 전송하는 프리페치수단을 가지고, 외부기기로부터의 입출력요구의 종류를 판별하여, 프리페치하는 데이터량 혹은 프리페치 처리에 요하는 시간이 다른 복수의 프리페치방법 중에서 상기 입출력요구의 종류에 따라 선택하여 실행한다.
상기 구성에 의한 본 발명의 기록재생장치는, 동작 화상 데이터전송에 알맞은 일시기억회로 제어방법을 실현할 수가 있어, 외부기기의 전송처리부하의 저감, 기록재생장치의 데이터기록재생처리의 효율화에 의해 성능향상이 기도된다고 하는 현저한 효과를 갖는다.
상기 목적을 해결하기 위해서, 본 발명의 기록재생장치는, 복수의 세그먼트에 분할가능한 일시기억회로와, 외부기기로부터의 기입/읽어내기 요구의 식별정보에 따라서 세그먼트를 선택하여, 기입/읽어내기 데이터를 선택한 세그먼트에 일시기억하는 일시기억회로 제어수단을 구비하는 것이다.
본 발명의 기록재생장치는, 복수의 세그먼트로 분할가능한 일시기억회로와, 외부기기로부터의 설정정보에 따라서 세그먼트별로 사이즈, 외부기기로부터의 데이터전송방법, 기록매체로의 데이터전송방법을 설정하여, 외부기기로부터의 기입/읽어내기 요구의 식별정보에 따라서 세그먼트를 선택하여, 설정된 전송방법에 의해서, 외부기기와의 데이터전송, 기록매체와의 데이터전송을 제어하는 일시기억회로제어수단을 구비한다.
본 발명의 기록재생장치는, 외부기기로부터의 설정정보에 따라서, 해당하는 세그먼트의 외부기기와의 데이터전송때의 전송개시/정지조건, 기록매체로의 데이터기입 때의 전송개시/정지조건, 기록매체와의 데이터전송의 우선순위, 외부기기로부터의 억세스단위를 설정한다.
본 발명의 기록재생장치는, 외부기기로부터의 설정정보에 따라서, 해당하는 세그먼트의 데이터를 기록매체에 써 넣을 때, 또는 해당하는 세그먼트에 기억하는 데이터를 기록매체로부터 읽어 낼 때의 기록재생영역범위를 설정하는 것이다.
상기 구성에 의한 본 발명의 기록재생장치는, 외부기기로부터의 설정정보에 따라서 세그먼트별로 사이즈 전송방법을 설정하여, 설정된 전송방법에 의해서, 외부기기, 기록매체와의 데이터전송을 제어함으로써, 다른 전송속도, 리얼타임성의 동작 화상 데이터, 혹은 동작 화상 데이터이외의 데이터에 대응하여, 메모리사이즈 제어방식을 설정할 수가 있다.
본 발명의 기록재생장치는, 외부기기로부터의 설정정보에 따라서, 외부기기로부터 세그먼트에 대한 억세스단위를 설정함으로써, 통상의 억세스단위보다 작은 단위로 외부기기로부터 억세스할 수가 있고, 랜덤억세스의 효율을 올릴 수 있다.
본 발명의 기록재생장치는, 외부기기로부터의 설정정보에 따라서, 세그먼트별로, 다른 기록재생영역을 설정함으로써, 기록재생영역과 세그먼트가 1대1로 대응할 수 있고, 각 세그먼트의 데이터와 디스크상의 데이터와의 동일성을 용이하게 보증할 수가 있다.
이하, 본 발명의 기록재생장치의 바람직한 실시예의 디스크장치에 관해서, 첨부의 도면을 참조하면서 설명한다.
<실시예1>
도 1은 실시예1에 있어서의 디스크장치의 구성을 나타내는 블럭도이다.
도 1에 있어서, 디스크장치는, 호스트 컴퓨터등의 외부기기(도시하지 않음)에 입출력 버스를 통해 접속되어 있다. 디스크장치와 외부기기와의 데이터의 송수신은 인터페이스회로(2)에 의해 행하여진다. 도 1에 나타낸 바와 같이 실시예1의 디스크장치는, 인터페이스회로(2)외에, 데이터의 일시기억회로인 버퍼RAM(3), 데이터의 엔코드와 디코드를 하는 읽기/쓰기신호 처리회로(4), 헤드·디스크기구(5), 액츄에이터 구동회로(8) 및 HDD 제어회로(9)를 구비하고 있다. 여기서 RAM은 렌덤억세스 메모리를 가리키며, HDD는 하드 디스크 드라이브를 가리킨다.
헤드·디스크기구(5)는 디스크(1), 헤드기구(6) 및 액츄에이터(7)등을 가지고 있다. 액츄에이터(7)는 액츄에이터 구동회로(8)에 의해 구동되어 있다. 또한, HDD 제어회로(9)는, 외부기기로부터의 각종 코멘드에 따라서, 버퍼 RAM(3), 읽기/쓰기신호처리회로(4),및 액츄에이터구동회로(8)를 제어하고 있다.
인터페이스회로(2)는, 외부기기로부터의 데이터및 요구인 코멘드를 버퍼 RAM(3),및 HDD 제어회로(9)에 각각 출력한다. 또한, 인터페이스회로(2)는, 버퍼 RAM(3)부터의 데이터및 HDD 제어회로(9)부터의 코멘드응답을 외부기기에 출력한다.
읽기/쓰기신호처리회로 버퍼 RAM(3)으로부터의 기입데이터를 엔코드하여, 쓰기신호로서 헤드(6a)에 출력한다. 또한, 읽기/쓰기신호처리회로(4)는, 디스크(1)의 트랙으로부터 헤드(6a)에 의해 읽어 내어지거나 읽기신호를 디코드하여, 읽어 내기 데이터로서 버퍼 RAM(3)에 출력한다.
HDD 제어회로(9)는, 외부기기로부터의 코멘드를 인터페이스회로(2)를 통해 수취, 코멘드를 해석한다. 코멘드를 해석한 HDD 제어회로(9)는, 버퍼 RAM(3), 읽기/쓰기신호처리회로(4) 및 액츄에이터구동회로(8)를 제어하여, 데이터의 기입, 읽어냄을 실행한다. 또한, HDD 제어회로(9)는, 응답을 요하는 코멘드의 경우에는, 인터페이스회로(2)를 통해 외부기기에 코멘드응답을 통지한다.
액츄에이터구동회로(8)는, HDD 제어회로(9)로부터의 액츄에이터제어신호에 따라서, 액츄에이터(7)에 구동신호를 출력한다. 액츄에이터구동회로(8)는, 액츄에이터(7)를 구동제어하여, 헤드기구(6)를 통해 헤드(6a)를 이동시킨다.
[HDD 제어회로의 동작]
이상과 같이 구성된 실시예1의 디스크장치에 있어서의 HDD 제어회로(9)의 동작에 관해서 도 2 및 도 3을 참조하여 설명한다.
도 2는 실시예1에 있어서의 HDD제어회로(9)가 입출력 코멘드를 처리할 때의 동작을 나타내는 플로우 챠트이다.
도 2에 있어서, 입출력 코멘드가 외부기기로부터 인터페이스회로(2)를 통해 HDD 제어회로(9)에 입력되면(스텝 S1), HDD 제어회로(9)는 입력된 입출력 코멘드가 실행시간예측을 하는 코멘드인가 아닌가를 판별한다(스텝 S2).
입력된 입출력 코멘드가 실행시간예측을 하는 코멘드(실행시간예측코멘드)인경우에는, 코멘드 파라미터로서 인도된 입출력동작의 파라미터와 HDD의 내부상태에 의해, 입출력 코멘드의 실행시간을 예측한다(스텝 S3). 다음에, 예측한 실행시간이 코멘드 파라미터로서 인도된, 실행시간의 최대허용시간인 마감시간과 비교된다(스텝 S4). 실행시간이 마감시간이내이면 데이터입출력을 실행한다 (스텝 S5), 실행시간이 마감시간을 오버하면 입출력을 실행하지 않고, 에러종료처리로서 그 판정결과를 외부기기에 통지한다(스텝 S6).
한편, 스텝 S2에 있어서, 입력된 입출력 코멘드가 실행시간예측을 하는 코멘드가 아니라고 판정된 경우에는, 즉, 스텝 S5에 있어서 데이터입출력이 실행된다.
도 3은, 실시예1에 있어서의 HDD 제어회로(9)가 실행시간예측 코멘드를 처리할 때의 동작을 나타내는 플로우 챠트이다.
도 3에 있어서, 실행시간예측 코멘드가 외부기기로부터 HDD 제어회로(9)에 입력되면(스텝 S11), HDD 제어회로(9)는, 코멘드 파라미터로서 인도된 입출력동작의 각 파라미터와, HDD의 내부상태에 따라서 입출력 코멘드의 실행시간을 예측한다(스텝 S12). 예측한 실행시간은 통지처리된다(스텝 S13).
[실행시간예측처리]
다음에, 도 3에 나타내는 실행시간예측처리에 있어서의 스텝 S12의 상세한 동작에 관해서 첨부한 도 4부터 도 7을 참조하여 설명한다.
도 4는, 기입 코멘드의 실행시간, 즉 외부기기로부터 버퍼 RAM(3)으로의 데이터전송이 종료하는 시간을 예측하는 처리의 흐름을 나타내는 플로우 챠트이다.
도 4에 나타낸 바와 같이, HDD 제어회로(9)는, 우선, 세그먼트의 간격 사이즈와 전송해야 할 기입 데이터의 사이즈(전송 데이터 사이즈)를 비교한다(스텝 S21). 스텝 S21에 있어서, 간격 사이즈쪽이 크거나, 같으면, 버스전송속도와 전송 데이터 사이즈로부터 연속전송사이의 전송종료시간을 계산한다(스텝 S27).
한편, 전송 데이터 사이즈쪽이 간격 사이즈보다 클 때, 오버플로우발생의 유무가 판정된다(스텝 S22).
오버플로우의 발생이 없는 경우에는, 버스전송속도와 전송 데이터 사이즈로부터 전송종료시간을 계산한다(스텝 S27). 오버플로우가 발생하는 경우에는, 오버플로우발생때의 미전송 데이터 사이즈를 계산한다(스텝 S23). 다음에, 계산한 미전송 데이터 사이즈로부터 전송종료발생기간을 판정한다(스텝 S24), 그 전송종료발생기간에 의해서 경우에 따른 분류를 한다. 각 경우에서, 미전송 데이터의 전송종료시간이 계산된다(스텝 S25, 또는 S26).
다음에, 실행시간예측처리의 각 처리 스텝의 상세를 도 5 및 도 6을 이용하여 설명한다.
도 5는 실시예1에 있어서의 버퍼 RAM(3)의 각 파라미터를 도시한 도면이다. 도 5에 나타낸 바와 같이, 실시예1에 있어서, 버퍼 RAM(3)에 관한 각 파라미터를 아래와 같이 정의한다.
외부기기로부터 버퍼 RAM(3)에의 전송속도를 Vb(단위: MB/s), 버퍼 RAM(3)로부터 디스크(1)에의 기입 속도를 Vd(단위: MB/s), 기입 코멘드에 할당된 세그먼트 사이즈를 Mb(단위: kB), 전송해야 할 기입 데이터 사이즈를 Mc(단위: kB)로 한다.
또한, 시간 t (단위: ms)의 함수로서, 시점 t 에서의 세그먼트축적량을Ms(t)(단위: kB)로 하여, 세그먼트내의 데이터 내, 시점 t 에서의 이전의 코멘드에서 세그먼트에 전송된 데이터의 잔량을 Md(t)(단위: kB)로 하여, 새롭게 발행하는 코멘드에 의해 전송해야 할 데이터중, 오버플로우발생시점 Tovf 에서의 미전송의 데이터량을 Mu(Tovf) (단위: kB)로 한다.
도 6은 상기 세그먼트축적량 Ms(t), 이전의 코멘드에 의한 데이터의 잔량 Md(t), 새롭게 발행하는 코멘드에 의한 시점 t 에서의 미전송 데이터량 Mu(t)의 시간추이의 일례를 나타내는 그래프이다.
도 6에 나타내는 그래프에서는 각 파라미터를, Vb= 16(MB/s), Vd= 4(MB/s), Mb= 128(kB), Mc= 96(kB), Md(0)=Ms(0)=64(kB)로 설정하고 있다. 또한, 이전의 코멘드에 의한 억세스기간인 Tw1을 Tw1 = 8(ms), 새롭게 발행된 신규 코멘드에 의한 억세스기간인 Tw2를 Tw2 = 12(ms), 이전의 코멘드에 의한 디스크기입기간인 Td1을 Td1 = 16 (ms), 새롭게 발행된 신규 코멘드에 의한 디스크기입 기간인 Td2를 Td2 = 24 (ms)로 설정하고 있다.
도 6에 도시하는 바와 같이, 전송된 데이터가 최종적으로 디스크(1)에 기입되기까지의 기간을 이하의 4개의 기간으로 나누어, 세그먼트축적량 Ms(t) 및 각종 계산을 행한다.
(1) T1기간 : 0 < t ≤ Tw1
T1기간은, 예측시점에서 이전의 코멘드에 의한 헤드 시크 및 회전대기기간이다.
억세스기간 Tw1은, 예측시점의 헤드위치와 목표 헤드위치, 헤드 시크시의 속도 프로필, 디스크의 회전속도로부터 계산된다. 이미 헤드 시크 및 회전대기가 종료되어 있을 때는 억세스기간 Tw1 = 0이다.
(2) T2기간 : Td < t ≤ Tw1 + Td1
T2기간은, 예측시점에서 이전의 코멘드에 의한 데이터의 디스크 기입기간이다.
디스크기입기간 Td1은, 예측시점에서의 데이터잔량 Md(0)과 디스크기입 속도 Vd에서, (1)식으로 계산된다.
Td1 = Md(0)/Vd ----- (1)
(3) T3기간 : Tw1 + Td1 < t ≤ Tw1 + Td1 + Tw2
T3기간은, 이제부터 새롭게 발행하는 신규 코멘드에의한 헤드 시크 및 회상기 대기기간이다.
억세스기간 Tw2는, T2기간종료시점의 헤드위치와 목표 헤드위치, 헤드 시크시의 속도 프로필, 디스크의 회전속도로부터 계산된다.
(4) T4기간 : Tw1 + Td1 + Tw2 < t ≤ Tw1 + Td1 + Tw2 + Td2
T4기간은, 이제부터 새롭게 발행하는 신규의 코멘드에 의한 데이터의 디스크기입 기간이다.
디스크기입 기간 Td2는, 전송해야 할 데이터 사이즈(Mc)와 디스크기입 속도 Vd에서, (2)식으로 계산된다.
Td2 = Mc/Vd ----- (2)
다음에, 도 4에 나타낸 기입 코멘드의 실행시간예측처리에 있어서의 각 스텝을 상세하게 설명한다.
스텝 S21 : 세그먼트간격 사이즈와 전송 데이터 사이즈와의 비교
예측시점의 세그먼트의 간격 사이즈(Mb-Ms(0))와 전송 데이터 사이즈(Mc)를 비교한다.
스텝 S22 : 오버플로우발생의 유무의 판정
전송 데이터 사이즈가 세그먼트 간격 사이즈보다 클 때(Mb-Ms(0)<Mc), 데이터전송중에 세그먼트가 오버플로우할 가능성이 있기 때문에, 세그먼트의 축적량을 계산하여 오버플로우발생의 유무를 판정한다.
이전의 코멘드로 세그먼트로 전송된 데이터의 잔량 Md(t)는 이하의 식으로 주어진다.
T1기간 :
Md(t) = Md(0) ----- (3)
T2기간 :
Md(t) = Md(0)-Vd·(t - Tw1) ----- (4)
이전의 코멘드에 의한 데이터량이 상기 식에 따라서 감소하는 한편, 외부기기로부터 버퍼 RAM(3)에 기입 데이터가 전송되어, 오버플로우가 발생하기 전의 세그먼트축적량 Ms(t)는 (5)식으로 주어진다.
Ms(t)=Md(t)+Vb·t ----- (5)
오버플로우발생의 조건은, 버퍼 RAM(3)에 데이터량(Mc)의 연속전송을 하기 전에 세그먼트축적량 Ms(t)가 세그먼트 사이즈(Mb)를 넘어버리는 것이므로 다음식으로 나타난다. 또, 다음식에 있어서, Tovf는 오버플로우시점을 나타내고, Md(Tovf)는 오버플로우발생시점에서의 남은 데이터량이다.
Md(Tovf) + Vb·Tovf = Mb 또한 Tovf≤Mc/Vb -- (6)
상기(6)식의 Md(t)에 (3) 및(4)식을 대입하여 오버플로우발생시점 Tovf를 구하고, 오버플로우발생의 유무의 판정을 행한다.
스텝 S23 : 오버플로우발생때의 미전송 데이터 사이즈의 계산
오버플로우발생까지 버퍼 RAM(3)에 전송되는 데이터사이즈는, Vb·Tovf로 주어지기 때문에, 오버플로우발생시점에서 미전송의 데이터 사이즈 Mu(Tovf)는, (7)식으로 주어진다.
Mu(Tovf) = Mc - Vb·Tovf ----- (7)
스텝 S24 : 전송종료발생기간의 판정
오버플로우발생후는 버퍼 RAM(3)의 데이터가 디스크(1)에 기입되어 감소한 만큼만 버퍼 RAM(3)으로 전송할 수 있으므로, 오버플로우발생때의 미전송 데이터 사이즈 Mu(Tovf)가 버퍼 RAM(3)으로부터 디스크(1)에 기입된 시점에서 데이터전송은 종료한다.
전송중에, 헤드 시크 및 회전대기가 발생하면 디스크기입이 중단하여, 버퍼 RAM(3)로의 전송도 중단한다. 따라서, 헤드 시크 및 회상대기 기간인 T1 및 T3기간에 전송이 종료하는 일은 없기 때문에, 전송종료는 T2기간 또는 T4기간이 된다. 또한, 신규 코멘드에 의한 헤드 시크 및 회상대기가, 전송중에 발생하지않은 경우에는 T2기간에 전송이 종료하고, 발생하는 경우에는 T4기간에 전송이 종료한다.
신규 코멘드에 의한 헤드 시크및 회상대기가 발생하는지 아닌지는, 오버플로우발생때의 미전송 데이터 사이즈 Mu(Tovf)와 이전의 코멘드에 의한 데이터의 잔량 Md(Tovf)를 비교하고 판정할 수 있다.
미전송 데이터 사이즈 Mu(Tovf)<이전의 코멘드에 의한 데이터잔량 Md(Tovf)일 때 :
버퍼 RAM(3)로의 전송이 종료할 때까지, 이전의 코멘드에 의한 데이터의 기입이 계속하기 때문에, 신규 코멘드에 의한 헤드 시크 및 회상대기가 발생하여 전송이 중단되는 일은 없다. 이 경우의, 미전송 데이터전송 종료시간의 계산을 스텝 S25에서 행한다.
미전송 데이터 사이즈 Mu(Tovf)≥이전의 코멘드에 의한 데이터잔량 Md(Tovf)일 때 :
버퍼 RAM(3)에의 전송이 종료하기 전에, 이전의 코멘드에 의한 데이터기입이 종료하여, 신규 코멘드에 의한 헤드 시크 및 회상대기에 의해서 버퍼 RAM(3)으로의 전송이 중단된다. 이 경우의 미전송 데이터전송 종료시간의 계산을 스텝 S26에서 행한다.
스텝 S25 : 미전송 데이터전송 종료시간의 계산1 (T2기간에 전송종료)
이 경우에는, 전송종료가 T2기간이기때문에, 오버플로우발생때는 T1기간 또는 T2기간이 된다. 오버플로우 발생시점에 의해서, 미전송 데이터의 전송중에, 헤드 시크 및 회상대기에 의한 전송중단기간이 포함되는 경우가 있기때문에, 전송종료시간 Td의 계산식은, 오버플로우 발생시점에 의해서 분리된다.
(1) 오버플로우가 T1기간내에 발생한 경우 :
미전송 데이터의 전송중에, 전송중단기간(Tw1-Tovf)이 포함된다. 전송종료시간Td(단위: ms)는, 오버플로우가 발생하기까지의 시간과 전송중단기간을 가하여, 또한 오버플로우시점까지 전송된 데이터가 디스크에 기입된 시간을 더한 것이다. 이 전송종료시간 Td는 (8)식으로 계산된다.
Td = Tovf + (Tw1-Tovf) + (Mc-Vb·Tovf)/Vd
= Td + (Mc-Vb·Tovf)/Vd ----- (8)
(2) 오버플로우가 T2기간내에 발생한 경우 :
미전송 데이터의 전송중에, 전송중단기간은 포함되지 않는다. 전송종료시간 Td는, (9)식으로 계산된다.
Td = Tovf + (Mc-Vb·Tovf)/Vd ----- (9)
스텝 S26 : 미전송 데이터전송 종료시간의 계산2 (T4기간에 전송종료)
이 경우, 전송종료는 T4기간이기 때문에, 오버플로우발생은 T1기간으로부터 T4기간의 모든 기간내에서 일어나는 경우가 있다.
(1) 오버플로우가 T1기간내에 발생한 경우 :
Td = Tovf + (Tw1-Tovf) + Tw2 + (Mc-Vb· Tovf)/Vd
= Tw1 + Tw2 + (Mc-Vb·Tovf)/Vd ---(10)
(2) 오버플로우가 T2기간내에 발생한 경우 :
Td = Tovf + Tw2 + (Mc-Vb·Tovf)/Vd --- (11)
(3) 오버플로우가 T3기간내에 발생한 경우 :
Td = Tovf + (Tw1+Td1+Tw2-Tovf) + (Mc-Vb·Tovf)/Vd
= Tw1 + Td1 + Tw2 + (Mc-Vb·Tovf)/Vd ---(2)
(4) 오버플로우가 T4기간내에 발생한 경우 :
Td = Tovf + (Mc-Vb·Tovf)/Vd --- (13)
스텝 S27 : 연속전송때의 전송종료시간의 계산
외부기기로부터 버퍼 RAM(3)에 연속하여 전 데이터를 전송할 수 있는 경우에는, 전송종료시간 Td는 (14)식으로 계산된다.
Td = Mc/Vb ---- (14)
다음에, 상기기입 코멘드의 실행시간예측처리의 각 스텝에 있어서 구체적인 전송실행시간을 구하는 예를 이하에 설명한다.
스텝 S21 :
예측시점의 세그먼트 간격 사이즈(Mb-Ms(1)있어 = 64 (kB)
전송 데이터 사이즈(Mc) = 96 (kB)
이며, Mb-Ms(0)<Mc 이기때문에, 오버플로우발생의 가능성이 있다.
스텝 S22 :
이전의 코멘드로 세그먼트에 전송된 데이터의 잔량 Md(t)는, (3) 및 (4)식으로 계산한다.
0 ≤ t < 8 (T1기간) : Md(t) = 64 (kB)
8 ≤ t < 24 (T2기간) : Md(t) = 64-Vd·(t-8) (kB)
상기식과, 오버플로우발생조건의 (6)식보다,
Md(Tovf) + 16·Tovf = 128, 또한 Tovf ≤ 6
이 된다. 이 식에 상기 T1기간의 Md(t) = 64를 Md(Tovf)에 대입하면, Tovf=4를 구할 수 있고, 상기 T2기간의 Md(t) = 64-Vd·(t-8)인 경우에는 해답은 없다.
스텝 S23 :
미전송 데이터 사이즈는, (15)식으로 주어진다.
Mc-Vb·Tovf = 32 ----- (5)
스텝 S24 :
오버플로우발생시점에서의 미전송 데이터 사이즈 = 32, 오버플로우발생시점 이전의 코멘드에 의한 데이터의 잔량 = 64이고, 전송종료는 T2기간이다.
스텝 S25 :
오버플로우발생은 T1기간이니까, 미전송 데이터의 전송종료시간 Td를 (8)식으로 계산한다.
Td = Tw1 + (Mc-Vb·Tovf)/Vd
= 8 + (96-16·4)/4 = 16(ms) ---- (16)
이상의 순서로, 기입 코멘드의 실행시간 즉 전송종료시간을 계산할 수가 있다. 다른 파라미터의 조합인 경우에 있어서도 상기 계산과 같이, 전송종료시간을 구할 수 있다.
도 7은, 읽어 내기 코멘드의 실행시간, 즉 버퍼 RAM(3)으로부터의 데이터전송종료시간을 예측하는 처리의 흐름을 나타내는 플로우 챠트이다.
도 7에 나타내는 바와 같이, HDD 제어회로(9)는, 우선 버퍼 RAM(3)의 미리읽기가 끝난 데이터 사이즈와 전송 데이터 사이즈를 비교한다(스텝 S31). 또, 실시예1에 있어서, 미리 읽기가 끝난 데이터 사이즈란 디스크로부터 일단 일시기억회로에 격납된 데이터 사이즈를 말한다.
스텝 S31에 있어서, 미리 읽기가 끝난 데이터 사이즈쪽이 전송 데이터 사이즈보다 크면, 버스전송속도와 전송 데이터 사이즈로부터 연속전송때의 전송종료시간을 계산한다(스텝 S37).
한편, 스텝 S31에 있어서, 전송 데이터 사이즈쪽이 미리 읽기가 끝난 데이터 사이즈보다 클 때, 언더플로우발생의 유무가 판정된다(스텝 S32).
스텝 S32에 있어서, 언더플로우의 발생이 없다고 판정된 경우에는, 버스전송속도와 전송데이터 사이즈로부터 연속전송때의 전송종료시간을 계산한다(스텝 S37).
한편, 언더플로우가 발생하는 경우에는, 언더플로우발생 때의 미전송 데이터 사이즈를 계산하여(스텝 S33), 계산한 미전송 데이터 사이즈로부터 전송종료발생기간을 판정한다(스텝 S34). 스텝 S34에 있어서, 전송종료발생기간에 의해서 경우를 분류하여 전송종료시간을 계산한다(스텝 S35 또는 스텝 S36).
상기 읽어 내기 코멘드의 실행시간예측처리의 각 스텝의 상세한 것은, 전술한 기입 코멘드에 있어서의 실행시간예측처리의 각 스텝의 경우와 같기때문에 생략한다.
이상과 같이, 실시예1의 디스크장치는 입출력 코멘드의 실행시간을 디스크장치에 있어서 예측함으로써, 실행시간을 정확히 예측할 수가 있다. 또한, 예측한 실행시간과 마감시간인 실행시간의 최대허용시간과 비교하여 입출력 코멘드실행의 가부를 정함으로써, 디스크장치자체가, 입출력 코멘드의 시간관리처리를 하여, 마감 시간을 정확히 규정할 수가 있다.
따라서, 실시예1의 디스크장치는, 실행시간을 고려한 정확한 시간관리가 가능해져, 우선도가 높은 요구의 실행개시가 미루어지는 사태를 방지하여 리얼 타임처리를 할 수 있다.
<실시예2>
다음에, 본 발명의 실시예2에 있어서의 디스크장치에 관해서 설명한다. 또, 실시예2에 있어서의 디스크장치의 구성은, 전술의 제1도에 나타낸 실시예1의 디스크장치의 구성과 실질적으로 같다.
실시예2에 있어서의 HDD 제어회로(9)의 동작에 관해서 첨부의 도 8을 참조하여 설명한다. 도 8은, 실시예2의 디스크장치에 있어서의 HDD 제어회로(9)가 전송 데이터전송량요구 코멘드를 처리할 때의 동작을 나타내는 플로우 챠트이다.
도 8에 나타내는 바와 같이, 전송 데이터 전송량요구 코멘드가 외부기기로부터 HDD 제어회로(9)에 입력되면(스텝 S41), HDD 제어회로(9)는 코멘드 파라미터로서 인도된 목표 어드레스, 버퍼 RAM(3)의 사용상황, 헤드위치로부터, 코멘드 파라미터로서 인도된 마감시간에 입출력가능한 데이터 사이즈가 예측된다(스텝 S42). 다음에, 예측된 데이터 사이즈는, 예컨대 호스트 컴퓨터등의 외부기기에 통지된다(스텝 S43).
[데이터 사이즈예측처리]
이하, 실시예2의 HDD 제어회로(9)에 있어서의 데이터 사이즈예측처리를 첨부의 도 9 및 도 10을 참조하면서 상세하게 설명한다.
도 9는, 마감시간내에 기입 가능한 데이터 사이즈를 예측하는 처리의 흐름을 나타내는 플로우 챠트이다.
도 9에 도시하는 바와 같이, HDD 제어회로(9)는, 우선, 세그먼트의 간격 사이즈와, 최대전송 데이터 사이즈, 즉 마감시간내에 항상 버퍼 RAM(3)에 연속전송한 경우의 전송 데이터 사이즈를 비교한다(스텝 S51).
스텝 S51에 있어서, 간격 사이즈쪽이 최대전송 데이터 사이즈보다 크거나 같을 때, 최대전송 데이터 사이즈를 입출력가능 데이터 사이즈로 한다(스텝 S56).
한편, 스텝 S51에 있어서, 최대전송 데이터 사이즈쪽이 간격 사이즈보다 클 때, 전송중에 오버플로우가 발생하는가 아닌가가 판정된다(스텝 S52). 스텝 S52에 있어서, 오버플로우가 발생하지 않는다고 판정된 경우에는, 최대전송 데이터 사이즈를 입출력가능한 데이터 사이즈로 한다(스텝 S56). 반대로, 오버플로우가 발생한다고 판정된 경우에는, 오버플로우 발생때의 전송 데이터 사이즈의 계산(스텝 S53)으로, 마감시간까지의 남은시간에 있어서의 전송가능한 데이터 사이즈의 계산(스텝 S54)을 실행한다. 그리고, 스텝 S55에 있어서, 오버플로우발생때의 전송 데이터 사이즈와 남은시간에서의 전송 데이터 사이즈를 가산하여 전체 전송 데이터 사이즈를 계산한다.
다음에, HDD 제어회로(9)에 있어서의 데이터 사이즈예측처리의 각 스텝을 상세하게 설명한다. 우선, 데이터 사이즈예측처리에 있어서의 각 파라미터를 아래와같이 정의한다.
외부기기로부터 버퍼 RAM(3)로의 전송속도를 Vb, 버퍼 RAM(3)로부터 디스크(1)에의 기입 속도를 Vd(단위: MB/s), 기입 코멘드에 할당된 세그먼트 사이즈를 Mb, 기입 코멘드의 전송 데이터 사이즈를 Mc(단위: kB), 마감시간을 Tmax(단위: ms)로 한다.
또한, 시간 t (단위: ms)의 함수로서, 시점 t 에서의 세그먼트축적량을 Ms(t)(단위: kB), 시점 t 에서의 이전의 코멘드에 의해 세그먼트에 전송된 데이터의 잔량추이를 Md(t)로 한다(단위: kB).
상술한 실시예1에 있어서의 처리와 같이, 전송된 데이터가 최종적으로 디스크에 기입되기까지의 기간을 이하의 4개의 기간으로 나눠, 세그먼트축적량 및 각종의 계산을 한다.
(1) T1기간 : 0 < t ≤ Tw1
T1기간은, 예측시점보다 이전의 코멘드에 의한 헤드 시크 및 회전대기 기간이다.
(2) T2기간 : Td < t ≤ Tw1 + Td1
T2기간은, 예측시점보다 이전의 코멘드에 의한 데이터의 디스크기입 기간이다.
Td1 = Md(0)/Vd
(3) T3기간 : Tw1 + Td1 < t ≤ Tw1 + Td1 + Tw2
T3기간은, 이제부터 새롭게 발행하는 신규 코멘드에 의한 헤드 시크 및 회전대기 기간이다.
(4) T4기간 : Tw1 + Td1 + Tw2 < t ≤ Tw1 + Td1 + Tw2 + Td2
T4기간은, 이제부터 새롭게 발행하는 신규의 코멘드에 의한 데이터의 디스크기입 기간이다.
T1기간으로부터 T3기간은 전송 데이터 사이즈에 의해서 변화하지 않고, T4기간은 전송 데이터 사이즈에 의해서 변화한다.
이하, 실행시간의 최대허용시간인 마감시간내에 기입 가능한 데이터 사이즈인가 아닌가를 예측하는 처리에 있어서의 각 스텝을 상세하게 설명한다.
스텝 S51 : 세그먼트 간격 사이즈와 최대전송 데이터 사이즈의 비교
예측시점의 세그먼트의 간격 사이즈(Mb-Ms(0))과 최대전송 데이터 사이즈 Mmax를 비교한다. Mmax는 마감시간내에서 항상 버퍼 RAM에 연속전송할 수 있는 바의 전송 데이터 사이즈이며, (17)식으로 주어진다.
Mmax = Vb·Tm ------ (17)
스텝 S52 : 오버플로우발생의 유무의 판정
간격 사이즈 ≤ 최대전송 데이터 사이즈일 때 :
데이터전송중에 세그먼트가 오버플로우할 가능성이 있기때문에, 데이터전송중의 메모리축적량을 계산하여 오버플로우 발생유무를 판정해야 한다.
오버플로우발생의 조건은, 버퍼 RAM(3)에 데이터량 Mmax의 연속전송을 하기 전에 세그먼트축적량 Ms(t)가 세그먼트 사이즈 Mb를 넘어 버리는 것이므로, (18)식으로 나타낸다.
Md(Tovf) + Vb·Tovf = Mb, 또한 Tovf ≤ Mmax/Vb --- (18)
상기 (18)식에 전술의(3) 및 (4)식을 대입하여, 오버플로우시간 Tovf를 구함으로써, 오버플로우발생의 유무를 판정한다.
스텝 S53 : 오버플로우발생 때의 전송 데이터 사이즈의 계산
오버플로우발생시의 전송 데이터 사이즈 Movf는, (19)식으로 주어진다.
Movf = Vb·Tovf ---- (19)
스텝 S54 : 남은 시간의 전송 데이터 사이즈의 계산
오버플로우발생으로부터 마감시간까지의 남은 시간의 사이, 버퍼 RAM(3)으로부터 디스크(1)에 기입한 데이터만큼 외부기기로부터 버퍼 RAM(3)로의 전송이 가능하다.
마감시점과 오버플로우시점이 T1기간으로부터 T4기간중 어느 기간에 있는지에 따라 경우를 분류하여, 오버플로우발생으로부터 마감시점까지의 사이에, 버퍼 RAM(3)로부터 디스크(1)에 기입 가능한 시간을 계산하여, 계산한 기입 가능시간과 기입 속도 Vd로부터 남은시간에 전송가능한 데이터 사이즈 Md를 계산한다.
(1) 마감시점이 T1기간에 있을 때 :
오버플로우발생으로부터 마감시점까지의 남은시간에, 버퍼 RAM(3)로부터 디스크(1)로의 데이터기입은 행하여지지 않기 때문에, 버퍼 RAM(3)는 오버플로우상태 그대로 되어, 전송할 수 없다. 따라서, 남은시간에서의 전송 데이터 사이즈 Md(단위: kB)는 0이다.
Md = 0 ----- (20)
(2) 마감시점이 T2기간내에 있을 때 :
오버플로우발생의 시점이 T1기간 또는 T2기간중 어느 한 경우에 의해서, 남은시간에서의 전송 데이터 사이즈 Md(단위: kB)는 다음 2개의 식에 의해 주어진다.
오버플로우가 T1기간에 발생한 경우 :
Md = Vd·(Tmax-Tw1) ---- (21)
오버플로우가 T2기간에 발생한 경우 :
Md = Vd·(Tmax-Tovf) ----- (22)
(3) 마감시점이 T3기간내에 있을 때 :
오버플로우발생의 시점이 T1기간으로부터 T3기간중 어느 한 경우에 의해서, 남은시간에서의 전송 데이터 사이즈 Md는 다음 3가지의 식, (23), (24) 및 (25)식에 의해 주어진다.
오버플로우가 T1기간에 발생한 경우 :
Md = Vd·Tdl ----- (23)
오버플로우가 T2기간에 발생한 경우 :
Md = Vd·(Tw1+Td1-Tovf) ----- (24)
오버플로우가 T3기간에 발생한 경우 :
Md = 0 ----- (25)
(4) 마감시점이 T4기간내에 있을 때 :
오버플로우발생의 시점이 T1기간으로부터 T4기간중 어느 한 경우에 의해서, 남은시간에서의 전송 데이터 사이즈 Md는 다음 4개의 식, (26), (27), (28) 및(29)식에 의해 주어진다.
오버플로우가 T1기간에 발생한 경우 :
Md = Vd·(Td1+Tmax-Tw1-Tdl-Tw2) ----- (26)
오버플로우가 T2기간에 발생한 경우 :
Md = Vd·(Tmax-Tovf-Tw2) ----- (27)
오버플로우가 T3기간에 발생한 경우 :
Md = Vd·(Tmax-Tw1-Td1-Tw2) ----- (28)
오버플로우가 T4기간에 발생한 경우 :
Md = Vd·(Tmx-Tovf) ----- (29)
스텝 S55 : 전체 전송 데이터 사이즈의 계산
전체 전송 데이터 사이즈 Ma(단위: kB)는 전술의(19)식으로부터 얻어지는 Movf와(20)∼(29)식으로부터 얻어지는 Md의 합을 계산하여 얻어진다.
Ma = Movf + Md ----- (30)
스텝 S56 : 연속전송때의 전체 전송 데이터 사이즈의 계산
Mb - Ms(0) ≥ Mc일 때, 외부기기로부터 버퍼 RAM(3)에 연속하여 전 데이터를 전송할 수 있기때문에, 전체 전송 데이터 사이즈 Ma는 다음식으로 계산된다.
Ma = Vb·Tmax ----- (31)
도 10은, 마감시간내에 읽어 내기 가능한 데이터 사이즈를 예측할 때의 처리의 흐름을 나타내는 플로우 챠트이다.
도 10에 도시한 바와 같이, HDD 제어회로(9)는, 우선, 세그먼트의 미리 읽기가 끝난 데이터 사이즈와, 최대전송 데이터 사이즈, 즉, 마감시간내에 항상 버퍼 RAM(3)로부터 연속하여 읽어 낸 경우의 전송 데이터 사이즈를 비교한다(스텝 S61).
스텝 S61에 있어서, 미리 읽기가 끝난 데이터 사이즈쪽이 최대전송 데이터 사이즈보다 클 때, 최대전송 데이터 사이즈를 입출력가능 데이터 사이즈로 한다 (스텝 S66).
한편, 스텝 S61에 있어서, 최대전송 데이터 사이즈쪽이 미리 읽기가 끝난 데이터 사이즈보다 크거나 또는 같을 때, 전송중에 언더플로우가 발생하는지 아닌지를 판정한다(스텝 S62). 스텝 S62에 있어서, 언더플로우가 발생하지 않는다고 판정된 경우에는, 최대전송 데이터 사이즈를 입출력가능한 데이터 사이즈로 한다(스텝 S66). 반대로, 언더플로우가 발생한다고 판정된 경우에는, 언더플로우발생시점의 전송 데이터 사이즈의 계산(스텝 S63)으로, 마감시점까지의 남은시간에 있어서 전송가능한 데이터 사이즈의 계산(스텝 S64)을 실행한다. 그리고, 언더플로우발생시점의 전송 데이터 사이즈와 남은시간에 있어서의 전송 데이터 사이즈를 가산하여 전체 전송 데이터 사이즈를 계산한다(스텝 S65).
읽어 내기 가능한 데이터 사이즈의 예측처리의 상세한 설명에 있어서는, 전술의 기입 가능한 데이터 사이즈의 예측처리와 마찬가지기 때문에 생략한다.
이상과 같이, 실시예2의 디스크장치는, 마감시간내에 입출력가능한 데이터 사이즈를 디스크장치에 있어서 예측함으로써, 마감시간내에 입출력가능한 데이터 사이즈를 정확히 예측할 수가 있다.
따라서, 실시예2의 디스크장치는, 실행시간을 고려한 시간관리가 가능해져,우선도가 높은 요구의 실행개시가 기다리게 된다는 사태를 방지하여 리얼 타임으로 처리할 수가 있다. 또한, 이 디스크장치에 의하면, 마감시간을 보증한 뒤에 전송가능한 최대 데이터 사이즈를 전송하는 것이 가능해져, 우선도가 높은 요구의 실행시간을 보증한 뒤에, 우선도가 낮은 요구에 대하여 최대한의 전송 레이트를 제공하여, 처리효율을 향상할 수가 있다.
또, 전술의 실시예1 및 실시예2에 있어서는, 기입 코멘드 및 읽어 내기 코멘드에 대하여 각각 세그먼트을 할당하고 있지만, 또한 우선도에 따라서 세그먼트를 분할하여도 무방하다.
또한, 실시예1 및 실시예2에 있어서는, 예측처리시점에서 세그먼트내에 이전에 발행된 코멘드에 의한 데이터가 1개 존재하는 경우에 관해서만 설명하고 있으나, 2개이상의 코멘드에 의한 데이터가 존재하고 있는 경우라도 마찬가지로 실행시간 및 전송가능 데이터 사이즈를 계산할 수 있는 것은 분명하다.
또한, 실시예1 및 실시예2에 있어서는, 예측처리 때마다 코멘드 파라미터로서 마감시간을 HDD에 보내고 있지만, 별도의 코멘드로 미리 설정하여도 무방하다.
<실시예3>
다음에, 본 발명의 실시예3에 있어서의 디스크장치에 관해서 설명한다. 또, 실시예3에 있어서서의 디스크장치의 구성은, 전술의 도 1에 나타낸 실시예1및 실시예2의 디스크장치의 구성과 실질적으로 같다.
실시예3에 있어서의 HDD 제어회로(9)의 동작에 관해서 첨부의 도 11를 참조하여 설명한다.
도 11은 실시예3에 있어서의 HDD 제어회로(9)가 전송 데이터전송량요구 코멘드를 처리할 때의 동작을 나타내는 플로우 챠트이다.
도 11에서 나타낸 바와 같이, 전송 데이터전송량요구 코멘드가 외부기기로부터 HDD 제어회로(9)에 입력되면(스텝 S71), HDD 제어회로(9)는, 입력한 코멘드가 읽어 내기 데이터 사이즈의 요구인가, 미리 읽기 데이터 사이즈의 요구인가, 기입 데이터 사이즈의 요구인가를 판정한다(스텝 S72, S73, S74). 또, 미리 읽기 데이터 사이즈란, 디스크로부터 일시기억회로로 격납되는 데이터 사이즈를 말한다.
입력한 코멘드가 읽어 내기 데이터 사이즈의 요구인 경우에는, 해당하는 세그먼트의 미리 읽기가 끝난 데이터 사이즈를 전송 데이터 사이즈로서 설정한다 (스텝 S75). 입력한 코멘드가 미리 읽기 데이터 사이즈의 요구인 경우에는, 해당하는 세그먼트의 간격 사이즈를 미리 읽기 데이터 사이즈로서 설정한다(스텝 S76). 또한, 입력한 코멘드가 기입 데이터 사이즈의 요구인 경우에는, 해당하는 세그먼트의 간격 사이즈를 전송 데이터 사이즈로서 설정한다(스텝 S77).
최후에, 설정된 각 데이터 사이즈를 외부기기에 통지한다(스텝 S78). 이상과같이, 실시예3의 디스크장치는 전송가능한 데이터 사이즈로서, 디스크장치의 버퍼 RAM을 조사하여, 해당하는 세그먼트의 간격 사이즈 또는 미리 읽기가 끝난 데이터 사이즈를 통지한다. 이 때문에, 외부기기와 디스크장치의 사이는 항상 연속적인 버스트전송으로 데이터전송을 할 수가 있고, 입출력요구의 실행시간을 전송해야 할 데이터 사이즈와 버스의 전송속도만으로도 계산할 수가 있다.
따라서, 실시예3의 디스크장치는, 입출력요구의 실행시간을 정확히 또한 용이하게 계산할 수 있으므로, 시간관리를 용이하게 할 수 있다. 또한, 실시예3의 디스크장치에 의하면, 데이터의 입출력이 항상 버스트전송으로 할 수 있기 때문에 입출력 버스의 점유시간을 삭감할 수 있다는 효과를 얻을 수 있다.
<실시예4>
다음에, 본 발명의 실시예4에 있어서의 디스크장치와 입출력제어방법에 관해서 설명한다. 또, 실시예4에 있어서의 디스크장치의 구성은, 전술한 도 1에 나타낸 실시예1의 디스크장치의 구성과 실질적으로 같다. 실시예4의 디스크장치(31)가 다른 실시예와 다른 것은, HDD 제어회로(9)에 있어서의 제어방법이고, 구체적으로는 처리하는 코멘드의 처리가 다르고, 해당하는 처리순서가 추가되어 있다.
도 12는, 실시예4의 입출력제어방법을 써서 영상신호의 기록재생을 하는 외부기기인 영상처리장치의 구성을 나타내는 블럭도이다.
도 12에 있어서, 영상처리장치(32)는 디스크장치(31)와 인터페이스·버스(33)를 통해 접속되어 있다. 영상처리장치(32)는 마이크로프로세서(34), 일시기억회로인 버퍼 메모리(35), 인터페이스·버스(33)에 대하여 입출력제어를 하는 인터페이스회로(36), 및 영상 데이터를 압축 혹은 신장하는 영상 데이터처리회로(37)를 구비하고 있다.
도 13은, 실시예4에 있어서의 디스크장치(31)의 버퍼 RAM(3)의 분할방법을 도시한 도면이다. 버퍼 RAM(3)는 쓰기 버퍼영역(3a)과 읽기 버퍼영역(3b)으로 분할되어 있다.
이상과같이 구성된 영상처리장치(32)는 디스크장치(31)에 대하여 각종의 요구, 즉 코멘드를 발행한다. 데이터전송을 따르는 코멘드로서는, 데이터의 기입 요구인 쓰기 코멘드 단일의 데이터·블록에 대한 미리 읽기 요구인 프레리드코멘드, 데이터의 읽어내기 요구인 읽기 코멘드및 디스크장치(31)에 의한 자동적으로 미리 읽기를 요구하는 오토리드코멘드가 있다.
또한, 디스크장치(31)는 전송 사이즈요구 코멘드에 대응하고 있으며, 영상처리장치(32)가 전송 사이즈요구 코멘드를 발행하면, 디스크장치(31)는 연속전송가능한 데이터 사이즈를 통지한다.
쓰기 코멘드및 읽기 코멘드를 발행하는 경우에 코멘드종류, 전송 데이터량, 및 데이터기록위치등을 데이터·파라미터로서 디스크장치(31)에 통지한다. 또, 데이터기록위치는, 디스크(1)상에 논리적으로 할당된 논리 어드레스를 써서 지정한다.
전송 데이터사이즈 요구코멘드는, 요구하는 전송 데이터 사이즈의 종별과 함께 디스크장치(31)에 발행되어, 디스크장치(31)는 버퍼 RAM(3)의 축적상태로부터 연속전송가능한 데이터 사이즈를 통지한다. 디스크장치(31)에 있어서의 전송 사이즈요구 코멘드의 처리동작은, 전술의 실시예3의 도 11로 설명한 처리와 마찬가지이다.
또한, 오토리드코멘드는, 영상 데이터를 주기적으로 읽어 내는 경우에 앞서 발행된다. 오토리드코멘드로 사용되는 파일관리정보 테이블은, 영상처리장치(32)가 생성하여, 디스크장치(31)에 전송되어 디스크(1)에 기록된다.
실시예4에 있어서의 파일관리정보 테이블 기록형식을 도 19에 나타낸다. 도19는 실시예4의 파일관리정보를 나타내는 설명도이다. 열 A1, A2 및 A3은, 각각, 디스크(1)에 기록된 영상 파일를 구성하는 플레임데이터의 플레임번호, 논리 어드레스및 데이터량의 각 파라미터를 받아들이는 영역이고, 영상 파일를 구성하는 전플레임에 관해서 상기의 각 파라미터가 기록되어 있다.
이상과같이 구성된 실시예4에 있어서의 영상처리장치(32)및 디스크장치(31)의 동작에 관해서, 각 코멘드마다 이하에 설명한다.
[쓰기 코멘드]
제일 처음에, 도 12에 나타낸 영상처리장치(32)가 쓰기 코멘드를 발행하는 순서를 설명한다.
우선, 마이크로프로세서(34)의 주기적인 요구에 따라, 영상 데이터처리회로(37)가 표시단위마다 영상 데이터를 압축하여 데이터·블록를 생성하여, 버퍼 메모리(35)에 일시기억한다.
다음에, 마이크로프로세서(34)가 하는 입출력제어방법에 관해서 도 14를 이용하여 설명한다. 도 14는 마이크로프로세서(34)에 있어서의 입출력제어동작을 나타내는 플로우 챠트이다.
우선, 처리 스텝 S81에 있어서는, 디스크장치(31)에 전송 데이터 사이즈요구 코멘드를 발행하여, 연속기입 가능 데이터량을 수신한다.
판단 스텝 S82에 있어서는, 연속기입 가능 데이터량과 전송해야 할 데이터량을 비교하여, 블록전송(데이터·블록단위의 연속한 전송)이 가능한지 어떤지를 판단한다. 블록전송이 가능하다면 처리 스텝 S83에 분기하고, 블록전송이 불가능하다면 판단 스텝 S85에 분기한다.
처리 스텝 S83에 있어서는, 데이터·블록에 해당한 쓰기 코멘드를 발행하여, 소정의 순서로 블록전송을 실행한다. 또, 버퍼 메모리(35)에 데이터·블록가 여러개 기억되어 있는 경우에는, 상기의 블록전송처리를 여러번 되풀이한다.
판단 스텝 S84에 있어서는, 버퍼 메모리(35)에 데이터가 잔류하고 있는 지 어떤지를 판단한다. 데이터가 잔류하고 있는 경우에는 판단 스텝 S85에 분기하고, 잔류하지 않는 경우에는 처리를 종료한다.
판단 스텝 S85에 있어서는, 연속기입 가능 데이터량과 미리 설정한 기입 개시최소 데이터량을 비교하여, 연속기입 가능 데이터량이 기입개시 최소 데이터량이상인지 아닌지를 판단한다. 연속기입 가능 데이터량이 기입개시 최소 데이터량이상이라는 조건을 만족시키는 경우에는 처리 스텝 S86에 있어서, 데이터·블록를 분할한다. 그리고, 처리 스텝 S86에 있어서, 분할한 데이터에 대한 쓰기 코멘드를 발행하여, 데이터전송을 실행한다.
한편, 상기 조건을 만족하지 않은 경우에는 그대로 처리를 종료한다. 기입개시최소 데이터량은, 미리 데이터·블록의 반의 데이터량등의 소정치에 적시 설정하면좋다.
다음에, 디스크장치(31)에 있어서의, 영상처리장치(32)부터의 상기 쓰기 코멘드의 처리동작에 관해서 도 1을 참조하면서 설명한다.
인터페이스회로(2)가, 쓰기 코멘드에 해당하는 데이터를 버퍼 RAM(3)에 기억시킨다. HDD 제어회로(9)는, 버퍼 RAM(3)에 기억한 데이터량으로부터 해당하는 세그먼트의 간격 사이즈를 구하여 연속기입 가능 데이터량을 변경한다. 버퍼 RAM(3)에 일시기억된 데이터는, 차례로 디스크(1)에 기록된다.
[코멘드 ID부착 프레리드 코멘드]
이하, 도 12에 나타낸 영상처리장치(32)가 프레리드 코멘드를 발행하는 순서에 관해서 설명한다.
마이크로프로세서(34)로부터의 주기적인 요구에 따라서 인터페이스회로(36)가 코멘드 ID부착 프레리드·코멘드를 발행한다. 코멘드 ID는 프레리드 코멘드의 식별자이고, 코멘드마다 다른 값을 설정한다.
다음에, 디스크장치(31)에 있어서의, 상기 코멘드 ID부착 프레리드 코멘드의 처리동작에 관해서 도 1과 도 15를 참조하면서 설명한다. 도 15는 코멘드 ID부착 프레리드 코멘드처리를 나타내는 플로우 챠트이다.
도 15에 나타낸 처리 스텝 S91에 있어서는, 다음과 같은 일련의 처리를 실행한다.
우선, 도 1에 나타낸 HDD 제어회로(9)는, 영상처리장치(32)로부터 통지된 논리 어드레스에 따라서 데이터를 재생하여, 버퍼 RAM(3)에 미리 읽기 데이터로서 기억한다. 또한, HDD 제어회로(9)는, 버퍼 RAM(3)에 기억한 미리 읽기 데이터량에 따라서, 연속읽어 내기 가능 데이터량을 변경한다.
처리 스텝 S92에 있어서는, 미리 읽어낸 데이터의 관리정보를 도 16에 나타낸 바와 같은 미리 읽기 데이터관리테이블에 기억된다. 도 16은 미리 읽기 데이터관리 테이블의 예를 게시하는 설명도이다. 도 16에 있어서, 열 B1,열 B2및 열 B 3은 각각 코멘드 ID(식별자), 버퍼 RAM(3)상의 기억위치(선두 어드레스), 및 데이터량의 각 파라미터를 받아들이기 위한 영역이고, 코멘드 ID부착 프레리드 코멘드에 의하여, 버퍼 RAM(3)에 미리 읽혀져 있는 각 데이터에 관해서 기록되어 있다.
[코멘드 ID부착 읽기 코멘드]
다음에, 영상처리장치(32)가 코멘드 ID부착 읽기 코멘드를 발행하는 순서에 관해서 도 17을 이용하여 설명한다. 도 17은 코멘드 ID부착 읽기 코멘드의 발행순서를 나타내는 플로우 챠트이다. 읽기 코멘드는, 동일한 데이터에 대한 프레리드 코멘드 후에 발행된다. 또한, 프레리드 코멘드와 동일한 코멘드 ID를 부여하여 디스크장치(31)에 발행된다.
처리 스텝 S101에 있어서는, 디스크장치(31)에 전송 데이터 사이즈요구 코멘드를 발행하여, 연속읽어 내기 가능 데이터량, 즉 미리 읽기 데이터량을 수신한다.
판단 스텝 S102에 있어서는, 연속읽어 내기 가능 데이터량에 따라서 블록단위의 읽어 냄이 가능한가 아닌가를 판단한다. 블록단위의 읽어내기가 가능하다면, 처리 스텝 S103을 실행하고, 불가능하다면 판단 스텝 S105에 분기한다.
처리 스텝 S103에 있어서는, 데이터·블록에 해당한 코멘드 ID부착 리드 코멘드를 발행하여, 소정의 순서로 데이터·블록를 연속하여 읽어 낸다. 또, 버퍼 RAM(3)에 데이터·블록이 여러개 기억되어 있는 경우에는, 상기의 블록전송처리를 여러번 되풀이한다.
판단 스텝 S104에 있어서는, 버퍼 RAM(3)에 데이터가 잔류하고 있는지 아닌지를 판단한다. 잔류하고 있는 경우에는 판단 스텝 S105에 분기하여, 잔류하지 않는 경우에는 처리를 종료한다.
판단 스텝 S105에 있어서는, 연속 읽어내기 가능 데이터량과 미리 설정한 읽어 내기 개시 최소 데이터량을 비교하여, 연속읽어 내기 가능 데이터량이 읽어 내기 개시최소 데이터량이상인지 어떤지를 판단한다. 연속읽어 내기 가능 데이터량이 읽어내기 개시 최소 데이터량이상이라는 조건을 만족시키는 경우에는 처리 스텝 S106을 실행한다. 상기 조건을 채우지 않은 경우에는, 그대로 이 처리를 종료한다. 기입 개시최소 데이터량은, 데이터·블록의 반의 데이터량등의 소정치에 적시 설정하면좋다.
처리 스텝 S106에 있어서는, 데이터·블록를 분할하여, 분할한 데이터에 해당한 코멘드 ID부착 읽기 코멘드를 발행한다. 그리고, 처리 스텝 S106에 있어서, 분할한 데이터는 연속적으로 읽어 내여진다.
계속해서, 디스크장치(31)에 있어서의, 영상처리장치(32)부터의 상기 코멘드 ID부착 읽기 코멘드의 처리동작에 관해서 도 18을 이용하여 설명한다. 도 18은 디스크장치(31)에 있어서의 코멘드 ID부착 읽기 코멘드의 처리동작을 나타내는 플로우 챠트이다.
처리 스텝 S111에 있어서는, 읽기 코멘드의 코멘드ID에 해당한 데이터를 미리 읽기 데이터관리 테이블로부터 검색하여 선택한다.
처리 스텝 S112에 있어서는, 선택한 데이터를 영상처리장치(32)에 출력한다. 처리 스텝 S113에 있어서는, 도 16에 나타낸 바와 같은 미리 읽기 데이터관리 테이블보다 전송을 종료한 데이터에 대한 항목을 삭제한다.
[오토리드 코멘드]
다음에, 영상처리장치(32)에 의한 오토리드 코멘드의 발행처리에 관해서 설명한다.
영상처리장치(32)는, 미리 읽어내야 할 파일의 파일관리정보 테이블의 식별자와, 최초에 미리 읽어내야 할 플레임번호(F0), 미리 읽어내야 할 플레임수(NF),미리 읽어내는 플레임번호의 간격을 나타내는 스킵수(S), 미리 읽기 방향(D)의 각 미리 읽기 파라미터를 결정하여, 코멘드 파라미터로서, 디스크장치(31)에 오토리드 코멘드를 발행한다.
영상 데이터를 일정한 플레임간격으로 표시시키는, 소위 "빨리 감기 재생"을 행하는 경우에는, 스킵수(S)를 소정의 값으로 설정하여 미리 읽기를 실행시킨다. 그리고, 미리 읽혀진 데이터를 기록때와 같은 시간간격으로 읽어 내고 표시한다. 미리 읽기 방향(D)은, 기록순으로 미리 읽는 경우에는 "0"으로 설정하고, 반대순으로 미리 읽는 경우에는 "1"로 설정한다.
또, 오토리드 코멘드에 의해서 버퍼 RAM(3)에 미리 읽혀진 데이터는, 각 플레임에 해당하는 데이터기록위치를 파라미터로서 읽기 코멘드를 차례로 발행함으로써, 디스크장치(31)로부터 영상처리장치(32)로 출력된다.
다음에, 디스크장치(31)에 있어서의 영상처리장치(32)로부터의 상기 오토리드 코멘드의 처리동작에 관해서 도 20을 이용하여 설명한다. 도 20은 디스크장치(31)에 있어서의 오토리드 코멘드의 처리동작을 나타내는 플로우 챠트이다.
우선, 처리 스텝 S121에 있어서, 디스크(1)상의 파일관리정보 테이블로부터 파일관리정보를 재생한다. 처리 스텝 S122에 있어서는, 재생한 파일관리정보에 따라서 미리 읽기 해야 할 플레임를 선택하여, 선택한 플레임에 해당하는 선두 어드레스및 데이터량을 읽어 낸다. 미리 읽기 해야 할 플레임번호(FP)는 다음식으로 결정된다.
FP = FO + (-1)D× S × (N-1)
여기서, N은 처리 스텝 S122의 처리회수이다. D는 상기한 미리 읽기 방향이고, 기록순서일 때 "0", 역순일 때 "1"이다.
처리 스텝 S123에 있어서는, 선택한 플레임에 해당하는 데이터·블록를 재생하여, 버퍼 RAM(3)에 기억한다.
다음에, 판단 스텝 S124에 있어서, 처리회수 N과 미리 읽기 해야 할 플레임수 NF를 비교하여, 미리 읽기가 완료했는지 아닌지를 판단한다. 미리 읽기가 완료하지 않는 경우에는 상기 처리를 계속하여, 완료되어 있는 경우에는 상기 처리를 종료한다.
또, 버퍼 RAM(3)에 데이터가 미리 읽혀지면, 전술한 프레리드 코멘드와 같이, HDD 제어회로(9)는 미리 읽기 데이터량에 따라서 연속읽어 내기 가능 데이터량을 변경한다. 그리고, HDD 제어회로(9)는 영상처리장치(32)부터의 전송 데이터 사이즈요구에 따라 외부기기에 통지한다.
이상과같이, 실시예4의 입출력제어방법에 의하면, 영상처리장치(32)는 디스크장치로부터 연속전송가능 데이터량을 수신하여, 수신한 연속전송가능 데이터량에 따라서 전송을 제어한다. 이것 때문에, 실시예4의 입출력제어방법은, 영상처리장치(32)와 디스크장치(31)와의 사이에서 항상 연속적으로 데이터를 전송하는 것이 가능하게 되어, 실행시간을 정확히 예측관리할 수 있음과 동시에, 영상처리장치의 처리부하를 저감할 수가 있다.
또한, 실시예4의 디스크장치에 의하면, 디스크장치(31)가 내부에 기억한 동작 화상 파일의 파일관리정보에 따라서 자동미리 읽기를 실행한다. 그 때문에, 동작 화상 데이터에 알맞은 미리 읽기 처리를 디스크장치만으로 실행할 수가 있어, 영상처리장치에 있어서의 부하저감과, 버퍼 메모리의 효율적사용을 실현할 수가 있다.
또는, 실시예4의 디스크장치에 의하면, 코멘드ID를 이용하여 미리 읽기 데이터를 직접 지정하여 억세스할 수 있기 때문에, 디스크장치에 있어서의 미리 읽기 데이터의 검색처리를 생략할 수가 있어, 미리 읽기 처리에 해당하는 디스크장치의 처리부하 저감과, 버퍼 메모리의 효율적사용을 실현할 수가 있다.
또, 실시예4에 있어서, 영상 데이터의 파일관리정보 테이블를 영상처리장치가 생성하여, 디스크장치에 통지하고 있지만, 영상 데이터 기입에 있어서, 파일식별자를 지정함으로써, 디스크장치에 있어서 파일관리정보를 생성하여도 무방하다.
또한, 실시예4에 있어서, 오토리드 코멘드에 따라서, 선택한 데이터·블록의 미리 읽기를 차례로 행하여 읽기 코멘드에 의해서 순차 영상처리장치에 출력하고 있지만, 오토리드 코멘드에 의해서 직접 영상처리장치에 출력하여도 무방하다.
<실시예5>
다음에, 본 발명의 실시예5에 있어서의 디스크장치에 관해서 설명한다. 또, 실시예5에 있어서의 영상처리장치는 도 12에 나타낸 영상처리장치의 구성과 실질적으로 같고, 디스크장치는 도 1에 나타낸 디스크장치의 구성과 실질적으로 같다. 실시예5가 다른 실시예와 다른 것은, 영상처리장치(32)가 데이터의 종류에 응해서 6종류의 입출력 코멘드를 발행하여, 디스크장치는 입출력 코멘드의 종류에 따른 처리를 하는 점이다.
실시예5의 영상처리장치(32)는, 시퀀셜·데이터에 대하여, 기입 요구인 시퀀셜·라이트 코멘드, 미리 읽기요구인 시퀀셜·프레리드 코멘드, 읽어 내기 요구인 시퀀셜·리드 코멘드를 발행한다. 또한, 실시예5의 영상처리장치(32)는 랜덤·데이터에 대하여, 기입 요구인 랜덤·라이트 코멘드, 미리읽기 요구인 랜덤·프레리드 코멘드, 및 읽어 내기 요구인 랜덤·리드 코멘드를 발행한다.
상기의 각 코멘드에 해당한 디스크장치(31)의 동작에 관해서 도 21을 이용하여 설명한다. 도 21은 디스크장치(31)의 각 코멘드에 대한 플로우 챠트이다.
처음에 시퀀셜·라이트 코멘드 혹은 랜덤·라이트 코멘드에 해당하는 동작에 관하여 설명한다.
우선 판단 스텝 S131에 있어서 코멘드의 종류를 판별하여, 랜덤·라이트 코멘드인 경우에는 처리 스텝 S132에 있어서 전술의 실시예1와 같은 순서로 기록동작을 하여, 시퀀셜·라이트 코멘드인 경우에는 판단 스텝 S133에 분기한다.
판단 스텝 S133에 있어서는, 버퍼 RAM(3)에 기억된 데이터량이 최대축적가능데이터량보다도 큰지 어떤지를 판단하여, 큰 경우에는 처리 스텝 S134를 실행하여, 작은 경우에는 그대로 처리를 종료한다. 최대축적가능 데이터량은, 다음에 발행되는 시퀀셜·라이트 코멘드에 따라 버퍼 RAM(3)에 기억가능한 데이터량등에 따라서 적시설정하면좋다.
처리 스텝 S134에 있어서는, 버퍼 RAM(3)에 기억된 데이터를 연속하여 디스크(1)에 기록한다. 버퍼 RAM(3)에 기억된 시퀀셜·데이터는 디스크(1)상의 대략 연속된 영역에 기록되기 때문에, 시크동작이나 회전대기등의 낭비시간을 발생시키지 않고, 대량의 데이터를 단시간에 기록할 수 있다.
다음에, 시퀀셜·프레리드 코멘드 또는 랜덤·프레리드 코멘드에 대응하는 동작에 관하여 도 22를 이용하여 설명한다. 도 22는 시퀀셜·프레리드 코멘드 또는 랜덤·프레리드 코멘드에 대한 동작을 나타내는 플로우 챠트이다.
우선 판단 스텝 S141에 있어서 코멘드의 종류를 판별하여, 랜덤·프레라이트코멘드의 경우에는 처리 스텝 S142에 있어서 전술의 실시예1와 같은 순서로 미리 읽기 동작을 하여, 시퀀셜·프리리드 코멘드인 경우에는 처리 스텝 S143에 분기한다.
처리 스텝 S143에 있어서 시퀀셜·프리 리드 코멘드를 축적한다.
판단 스텝 S144에 있어서는, 축적한 시퀀셜·프리 리드 코멘드가 최대축적가능 코멘드이상인지 아닌지를 판정한다. 축적한 시퀀셜·프리 리드 코멘드가 최대축적가능 코멘드수이상이라는 조건을 만족시키는 경우에는, 처리 스텝 S142에 있어서 축적된 복수 코멘드에 해당하는 데이터를 연속하여 재생한다. 한편, 상기 조건을채우지 않은 경우에는 이 처리를 종료한다.
또한, 실시예5에 있어서의 디스크장치(31)는, 내부처리로서 프리페치동작을 행하고 있다.
프리페치동작은, 각 코멘드에 따른 데이터의 기록위치주변의 데이터를, 재생하여 버퍼 RAM(3)에 기억시키는 동작이다. 실시예5에 있어서는, 각 코멘드의 발행시에, 프리페치동작의 가부를 나타내는 파라미터가 디스크장치(31)에 통지된다.
디스크장치(31)에 의한 프리페치동작의 선택순서에 관해서 도 23을 이용하여 설명한다. 도 23은 디스크장치(31)에 있어서의 프리페치동작을 나타내는 플로우 챠트이다.
우선 처리 스텝 S151에 있어서는, 랜덤·프리 리드 코멘드 또는 시퀀셜·프리 리드 코멘드에 해당한 데이터의 미리 읽기를, 전술한 실시예1와 같은 순서로 실행한다.
판단 스텝 S152에 있어서는, 영상처리장치(32)로부터 통지된 파라미터에 따라서 프리페치동작의 가부를 판정한다. 판단 스텝 S152에 있어서 프리페치동작이 허가된 경우에는, 처리 스텝 S153에 있어서 프리 페치동작을 실행한다. 한편, 프리 페치동작이 불허가인 경우에는, 그대로 이 처리를 종료한다. 특히, 영상처리장치(32)가 영상 데이터의 특수재생등을 하는 경우에는, 디스크(1)상의 기록위치가 떨어진 데이터를 순차 재생하는 경우가 많기때문에, 프리 페치동작에 의해서 각 코멘드에 대한 응답이 저하하는 경우가 많다.
또, 프리페치동작후에 랜덤·프리 리드 코멘드가 발행된 경우에는, 우선 해당하는 데이터가 버퍼 RAM(3)에 프리 페치되어 있는지 어떤지를 검색하여, 프리 페치되어 있는 경우에는, 데이터의 읽어 내기가 가능한 것을 영상처리장치(32)에 통지한다.
이상과같이, 실시예5의 디스크장치에 의하면, 코멘드의 종류에 따라서, 디스크에 연속기록하는 데이터 사이즈, 또는 연속읽어내기를 하는 코멘드수를 전환할 수 있다. 이 때문에, 실시예5의 디스크장치에 의하면, 동작 화상 데이터의 처리성능을 향상할 수가 있어, 또한, 버퍼 메모리를 효율적으로 사용할 수가 있다.
또한, 실시예5의 디스크장치에 의하면, 코멘드의 종류에 따라서 프리 페치동작을 선택할 수 있기때문에, 버퍼 메모리를 효율적으로 사용할 수 있다. 또한, 실시예5의 디스크장치에 의하면, 랜덤 데이터 입출력요구에 대한 응답을 향상시킴과 동시에, 시퀀셜 데이터 입출력요구에 대하여 불필요한 프리 페치처리에 의한 응답지연이 발생하는 것을 방지하여, 디스크장치전체의 처리효율을 향상할 수가 있다.
<실시예6>
이하, 본 발명의 실시예6에 있어서의 디스크장치에 관해서 설명한다. 또, 실시예6에 있어서의 영상처리장치는 도 12에 나타낸 영상처리장치의 구성과 실질적으로 같고, 디스크장치는 도 1에서 나타낸 구성과 실질적으로 같다. 실시예6이 다른 실시예와 다른 것은, 영상처리장치가 제한시간첨부 시퀀셜·라이트 코멘드및 제한시간첨부 시퀀셜·프리 리드 코멘드(이하, 양 코멘드의 총칭을 시퀀셜데이터 입출력요구라고 기재)를 발행하여, 디스크장치가 각 코멘드에 해당하는 처리를 행하는 점이다.
한편, 랜덤·라이트 코멘드 및 랜덤·프리 리드 코멘드(이하, 양 코멘드의 총칭을 랜덤 데이터 입출력요구라고 기재)는 제한시간을 마련하지 않은 통상의 입출력 코멘드이다.
상기의 코멘드에 해당한 디스크장치(31)의 동작을 도 24를 이용하여 설명한다. 도 24는 디스크장치(31)에 있어서의 영상처리장치(32)부터의 각 코멘드에 대한 처리를 나타내는 플로우 챠트이다.
우선, 판단 스텝 S161에 있어서 코멘드의 종류를 판별한다. 판단 스텝 S161에 있어서, 코멘드가 시퀀셜 데이터 입출력요구인 경우에는 처리 스텝 S162에 분기하여, 코멘드가 랜덤 데이터 입출력요구인 경우에는 처리 스텝 S163에 분기한다.
처리 스텝 S162에 있어서는, 버퍼 RAM(3)의 빈 용량에 따라서 영상처리장치(32)로부터 통지된 제한시간을 연장한다. 연장시간은, 시퀀셜 데이터입출력요구에 해당한 데이터·블록의 데이터량 및 시퀀셜 데이터입출력요구의 발행주기에 따라, 적시에 선택하면 좋다.
처리스텝 S163에 있어서는, 도 25에 나타낸 요구축적 큐에 코멘드를 축적한다. 도 25는 시퀀셜요구축적큐(a)와, 랜덤요구 축적큐(b)를 나타내는 설명도이다. 열 C1 및 열 D1는 디스크(1)상의 기록위치(LBA)의 격납영역, 열 C2및 열 D2는 데이터량의 격납영역이다. 열 C3에는, 처리 스텝 S162에 있어서 산출한 제한시간에 근거하는 여유시간이 격납되어 있다. 이 여유시간은, 처리에 이용할 수 있는 남은시간을 산출한 것이다. 시퀀셜 데이터 입출력요구축적큐에는, 첫째줄(번호1)에서 차례로 여유시간이 작은 코멘드를 한줄로 세운다. 랜덤 데이터입출력 요구축적 큐에는, 코멘드의 발행순차로 코멘드를 한줄로 세운다.
처리 스텝 S164에 있어서는, 시퀀셜 데이터입출력 요구축적 큐에 요구가 축적되어 있는지 어떤지를 판정한다. 요구가 축적되어 있는 경우에는 판단 스텝 S165에 분기하여, 축적되어 있지 않은 경우에는 처리 스텝 S167에 있어서 랜덤데이터입출력 요구축적큐의 첫째줄의 요구가 실행된다.
판단 스텝 S165에 있어서는, 시퀀셜 데이터 입출력요구축적큐 번호1의 요구를 선택하여, 여유시간이 코멘드 선택기준시간보다도 큰지 어떤지를 판정한다. 여유시간이 소정치보다도 큰 경우에는 판단 스텝 S168에 분기하여, 소정치보다도 작은 경우에는 처리 스텝 S166에 있어서 시퀀셜 데이터 입출력요구축적큐의 첫째줄의 요구를 실행한다. 코멘드 선택기준시간은, 미리 시퀀셜 데이터 입출력요구의 처리에 요하는 시간을 예측하여, 예측한 소요시간에 따라서 적시설정하면좋다.
판단 스텝 S168에 있어서는, 랜덤데이터 입출력요구축적큐에 코멘드가 축적되어 있는지 어떤지를 판단한다. 코멘드가 축적되어 있지 않은 경우에는 처리 스텝 S170에 분기하여, 축적되어 있는 경우에는 처리 스텝 S169로 랜덤데이터 입출력요구축적큐의 첫째줄의 코멘드에 해당한 처리를 실행한다.
처리 스텝 S170에 있어서, 시퀀셜 데이터 입출력요구축적큐의 첫째줄의 코멘드를 실행예정코멘드로서 선택한다. 그리고, 헤드가 현재위치로부터 실행예정 코멘드에 해당한 물리 어드레스에 이동하는 도중에서, 기록재생가능한 코멘드가 검색되어, 검색된 코멘드를 선택예정 코멘드로서 선택한다.
판단 스텝 S171에 있어서는, 실행예정 코멘드의 앞에 선택예정 코멘드를 처리한 경우의 실행예정시간과 실행예정 코멘드의 여유시간을 비교하여, 여유시간내에 실행예정 코멘드의 처리를 완료할 수 있는지 어떤지를 판정한다. 실행예정 코멘드의 처리가 가능한 경우에는 처리 스텝 S172에 있어서 선택예정 코멘드를 시퀀셜 데이터 입출력요구축적큐의 첫째줄에 삽입하고 나서 처리 스텝 S173을 실행한다. 한편, 판단 스텝 S171에 있어서, 실행예정 코멘드의 처리가 불가능한 경우에는, 그대로 처리 스텝 S173에 분기한다.
처리 스텝 S173에 있어서는, 축적큐의 첫째줄에 축적된 요구를 실행한다.
이상과같이, 실시예6의 디스크장치에 의하면, 제한시간과 버퍼 RAM(3)의 빈 용량에 따라서 기록재생처리의 처리순서를 선택한다. 이 때문에, 실시예6의 디스크장치에 의하면, 우선도가 높은 시퀀셜 데이터 입출력요구에 대한 리얼 타임응답을 보증하면서, 랜덤 데이터 입출력요구에 대한 응답을 고속화할 수가 있어, 디스크장치의 처리효율을 향상시킬 수 있다. 이에 따라, 랜덤 데이터 입출력요구에 대한 응답시간이 현저히 지연한다고 하는 과제를 해결할 수가 있다.
또한, 실시예6의 디스크장치에 의하면, 제한시간과 디스크상의 물리 어드레스에 응해서 요구의 처리순서를 선택하기때문에, 요구에 대한 리얼 타임인 응답을 보증함과 동시에, 헤드의 시크동작에 요하는 시간을 저감함으로써, 디스크장치의 처리효율을 향상시킬 수 있다. 또한, 실시예6로서는, 물리 어드레스에 따라서 축적된 요구의 처리순서를 선택하고 있기 때문에, 각 요구의 실행시간을 정확히 예측, 관리하는 것이 가능하다.
<실시예7>
다음에, 본 발명의 실시예7에 있어서의 디스크장치에 관해서 설명한다.
도 26은 실시예7에 있어서의 디스크장치의 구성을 나타내는 블럭도이다.
도 26에 도시한 바와 같이, 실시예7의 디스크장치는, 호스트 컴퓨터등의 외부기기(도시하지 않음)에 호스트입출력 버스(101)에 의해서 접속되어 있다. 실시예7의 디스크장치는, 각 회로를 제어하는 CPU(42), 데이터의일시기억회로인 버퍼 RAM(43), 데이터의 엔코드및 디코드를 하는 읽기/쓰기신호처리회로(44), 헤드·디스크기구(45), 액츄에이터구동회로(48), HDD 제어회로(49),를 구비하고 있다.
헤드·디스크기구(45)는, 디스크(41), 헤드기구(46), 및 액츄에이터(47)등을 갖고 있고, 액츄에이터(47)는 상기 액츄에이터구동회로(48)에 의하여 구동된다. 또한, CPU(42)은 HDD 제어회로(49)를 통해, 버퍼 RAM(43), 읽기/쓰기신호처리회로(44),및 액츄에이터구동회로(48)를 제어하고 있다.
도 27은 HDD 제어회로(49)의 구성을 나타내는 블럭도이다.
도 27에 도시한 바와 같이, HDD 제어회로(49)는, 외부기기와의 인터페이스회로인 호스트 인터페이스회로(51), CPU(42)와의 인터페이스회로인 CPU인터페이스회로(52), 버퍼 RAM(43)을 제어하는 버퍼제어회로(53), 전술한 디스크장치의 읽기/쓰기신호처리회로(44)와 액츄에이터구동회로(48)에 대하여 제어신호를 입출력하는 제어신호입출력회로(54)를 구비하고 있다.
도 28은 버퍼제어회로(53)내의 세그먼트설정 레지스터(61)와 디스크장치의 버퍼 RAM(43)의 각 세그먼트과의 대응을 도시한 도면이다.
도 28에 도시한 바와 같이, 버퍼 RAM(43)는 N개의 세그먼트 세그먼트 #1 ∼#N로 분할되어 있다. 버퍼 RAM(43)의 각 세그먼트는, 세그먼트설정 레지스터(61)의 각 레지스터 REG#1 ∼ #N에 대응하고 있다. 각 레지스터 REG#1 ∼ #N에는, 억세스종별CSN, 세그먼트선두 어드레스 ASN, 세그먼트 사이즈 MSN, 디스크전송우선순위 PDN, 디스크전송 블록 사이즈 MBDN, 호스트전송 블록 사이즈 MBN의 각 설정치를 설정한다. 세그먼트수 N은 세그먼트의 총수이고 가변이다.
억세스종별 CSN은 이 세그먼트에 대한 외부기기로부터의 억세스종별을 설정하는 번호이고, 기입만(1) /읽어내기만(2) /기입 읽어 내기 양쪽(3)의 3가지의 종별을 구별한다. 세그먼트선두 어드레스 ASN은 버퍼 RAM(43)에 있어서의 세그먼트의 선두 어드레스이고, 세그먼트 사이즈 MSN은 세그먼트의 사이즈이고, 모두 섹터단위이다. 여기서 1 섹터는 512 바이트이다.
디스크전송우선순위 PDN, 디스크전송 블록 사이즈 MBDN, 및 호스트전송 블록 사이즈 MBHN은, 외부기기와 세그먼트사이의 호스트전송, 세그먼트과 디스크사이의 디스크전송의 전송개시/정지조건을 설정하는 설정치이다.
디스크전송우선순위 PDN은, 각 세그먼트과 디스크와의 데이터전송의 우선순위를 나타낸다. PDN은 1 ∼ N의 값을 설정한다. 디스크전송 블록 사이즈 MBDN은, 각 세그먼트과 디스크와의 데이터전송에 있어서의 전송단위를 섹터단위로 나타낸다. 호스트전송 블록 사이즈 MBHN은, 각 세그먼트과 호스트와의 데이터전송에 있어서의 전송단위를 섹터단위로 나타낸다.
이하, 도 26, 도 27 및 도 28을 이용하여 디스크장치의 각부의 동작에 관해서 설명한다.
HDD 제어회로(49)의 호스트 인터페이스회로(51)에는, 외부기기로부터의 데이터, 코멘드, 파라미터가 호스트입출력 버스(101)를 통해 입력된다. 호스트 인터페이스회로(51)에 있어서, 데이터는 내부 버스(201)를 통해 버퍼제어회로(53)에 출력할 수 있어, 코멘드, 파라미터는 내부 버스(202)에 각각 출력할 수 있다. 또한, 호스트 인터페이스회로(51)는, 버퍼 RAM(43)으로부터의 읽어 내기 데이터를 버퍼제어회로(53)와 내부 버스(201)를 통해 입력한다. CPU(42)부터의 코멘드응답은, CPU 인터페이스회로(52)와 내부 버스(202)를 통해 호스트 인터페이스회로(51)에 입력된다. 그리고, 이것들의 읽어내기 데이터와 코멘드응답은, 호스트입출력 버스(101)를 통해 외부기기에 출력할 수 있다.
버퍼제어회로(53)는, RAM 입출력 버스(103)를 통해 버퍼 RAM(43)에 접속되어 있고, 버퍼 RAM(43)의 데이터입출력을 세그먼트설정 레지스터(61)에 설정된 각 설정치에 따라서 제어한다. 버퍼 RAM(43)에 대한 데이터입출력에는, 호스트 인터페이스회로(51)를 사이에 세운 외부기기로부터의 데이터입출력과, CPU 인터페이스회로(52)를 사이에 세운 CPU(42)부터의 데이터입출력과, 읽기/쓰기입출력 버스(104)를 사이에 세운 읽기/쓰기신호처리회로(44)부터의 데이터입출력이 있다. 버퍼제어회로(53)의 세그먼트설정 레지스터(61)는, CPU(42)에 의해서 설정된다.
읽기/쓰기신호처리회로(44)(제26도)는, 버퍼 RAM(43)으로부터의 기입 데이터를 HDD 제어회로(49)의 버퍼제어회로(53)를 통해 입력하여, 엔코드한다. 이 엔코드된 기입데이터는, 신호선(107)을 통해 쓰기신호로서 헤드(46a)에 출력할 수 있다.또한, 읽기/쓰기신호처리회로(44)는, 디스크(41)로부터 헤드(46a)에 의해서 읽어 내여진 리드신호를 신호선(107)을 통해 입력하여 디코드한다. 이 디코드된 리드신호는, 읽어 내기 데이터로서 버퍼제어회로(53)를 통해 버퍼 RAM(43)에 출력할 수 있다.
액츄에이터구동회로(48)은, HDD 제어회로(49)의 제어신호 입출력회로(54)부터의 액츄에이터제어신호(106)에 따라서, 액츄에이터(47)에 구동신호(108)를 출력한다. 이 구동신호에 의해, 액츄에이터(47)는 구동되어, 헤드기구(46)를 통해 헤드(46a)가 이동한다.
CPU(42)는, 외부기기로부터의 코멘드 파라미터를 HDD 제어회로(49)의 호스트 인터페이스회로(51), CPU 인터페이스회로(52)를 통해 받아들인다. 그리고, CPU(42)는, 코멘드를 해석하여, 버퍼제어회로(53), 읽기/쓰기신호처리회로(44),및 액츄에이터구동회로(48)를 제어하여, 데이터의 기입, 읽어 내기를 실행한다. 또한, 응답을 요하는 코멘드의 경우, CPU 인터페이스회로(52), 호스트 인터페이스회로(51)를 통해 코멘드응답을 외부기기에 통지한다.
이상과같이 구성된 디스크장치에 있어서의 코멘드처리에 관해서 도면을 참조하여 설명한다.
[세그먼트 설정코멘드]
세그먼트설정 코멘드의 파라미터는, 세그먼트번호, 억세스종별, 세그먼트 사이즈, 디스크전송우선순위, 디스크전송 블록 사이즈, 및 호스트전송 블록 사이즈이다. 세그먼트번호는, 각 세그먼트의 식별번호를 나타내며, 여기서는 세그먼트번호를 K(K= 1 ∼ N)로 한다. 억세스종별, 세그먼트 사이즈, 디스크전송우선순위, 디스크전송 블록 사이즈, 및 호스트전송 블록 사이즈는 세그먼트설정 레지스터의 각 설정치에 각각 해당한다.
도 29는 실시예7의 디스크장치가 세그먼트설정 코멘드를 처리할 때의 동작을 나타내는 플로우 챠트이다.
도 29에 도시한 바와 같이, 외부기기로부터 세그먼트설정 코멘드가 입력되면, CPU(42)(제26도)는, 입력된 세그먼트설정 코멘드의 파라미터로부터 각 설정치를 취득하여(스텝 S181), 취득한 각 설정치가 범위내인가 체크한다(스텝 S182). 범위외의 설정치가 있는 경우, 외부기기에 에러를 통지한다(스텝 S185).
각 설정치가 범위내의 경우, CPU(42)는 세그먼트 #K를 빈 영역으로 하여(스텝 S183), 확보하는 세그먼트 사이즈와 세그먼트할당하여 되어있지 않은 빈 영역 사이즈를 비교한다(스텝 S184). 세그먼트 사이즈가 빈 영역 사이즈보다 클때, 외부기기에 에러를 통지한다(스텝 S185). 세그먼트 사이즈가 빈 영역 사이즈이하일 때, REG #(K+1) ∼ #N의 세그먼트 선두 어드레스를 재계산하여 각 레지스트에 설정하고(스텝 S186), 각 설정치를 REG #K로 설정한다(스텝 S187).
도 30은 세그먼트설정 코멘드에 의한 세그먼트설정변경의 예를 게시하는 설명도이다. 도 30에 나타낸 예는, 버퍼 RAM(43)의 사이즈를 128kB (kB=1024 바이트), 세그먼트총수 N=4로 하여, 세그먼트 #3의 세그먼트 사이즈를 16kB에서 32kB로 변경하는 경우이다. 도 30(a)는 코멘드실행 전, 도 30(b)는 코멘드실행후를 나타낸다.
세그먼트 #3을 빈 영역으로 하면, 빈 영역 사이즈는 48kB가 되어, 설정하는 세그먼트 사이즈 32kB이상이기때문에, 세그먼트 #4의 세그먼트선두 어드레스를 재계산하여, 선두 어드레스 4000H를 5000H에 변경하여 설정을 종료한다.
[세그먼트상황 요구코멘드]
세그먼트상황요구 코멘드가 외부기기로부터 CPU(42)에 입력되면, CPU(42)는, 세그먼트설정 레지스터 REG #1 ∼ #N을 순차로 체크하여, 각 레지스터의 설정치와, 세그먼트할당하여 되어있지 않은 빈 영역 사이즈를 외부기기에 출력한다.
[기입코맨드]
기입 코멘드의 파라미터는, 식별번호, 디스크선두 어드레스, 및 기입 사이즈이다. 식별번호는 세그먼트설정 코멘드로 설정한 세그먼트번호에 해당한다. 여기서는 식별번호를 M(M= 1∼N)으로 한다. 디스크선두 어드레스는 디스크상의 기입 선두 어드레스이고, 기입 사이즈는 기입 데이터 사이즈이고, 각각은 섹터단위로 설정된다.
기입 코멘드가 외부기기로부터 CPU(42)에 입력되면, CPU(42)은, 입력된 코멘드의 파라미터로부터 식별번호 M을 취득하여, 세그먼트설정 레지스터 REG #M 으로 설정된 각 설정치를 읽어낸다.
계속해서 CPU(42)는 호스트 인터페이스회로(51), 버퍼제어회로(53)를 제어하여, 외부기기로부터 세그먼트 #M로의 호스트전송처리를 실행시킨다. 또는 CPU(42)은, 호스트전송처리에 병행하여, 버퍼제어회로(53), 읽기/쓰기신호처리회로(44),및 액츄에이터구동회로(48)를 제어하여, 세그먼트 #M에서 디스크(41)에의 디스크전송처리를 실행시킨다.
도 31은 세그먼트 #M의 축적상황과, 호스트전송, 디스크전송에 관계하는 각 파라미터를 도시한 도면이다. 세그먼트 #M과, 호스트전송처리, 디스크전송처리에 관한 각 파라미터를 아래와같이 정의한다.
세그먼트 사이즈를 MSM, 세그먼트축적량을 MAM, 세그먼트 간격 사이즈를 MFM, 기입 사이즈를 MW, 읽어 내기 사이즈를 MR, 호스트 전송 데이터잔량을 MDH, 및 디스크전송 데이터잔량을 MDD(단위: 바이트)로 한다. 또한, 디스크전송속도를 VD(단위: MB/s)으로 한다.
다음에, 기입 코멘드처리에 있어서의 호스트전송처리의 상세에 관해서 도 32를 참조하면서 설명한다. 외부기기로부터 세그먼트 #M으로의 호스트전송처리는, REG #M으로 설정된 호스트전송 블록 사이즈 MBHM에 따라서, 세그먼트 #M의 세그먼트 간격 사이즈 MFM을 모니터하면서 실행시킨다.
도 32는 외부기기로부터 세그먼트 #M로의 호스트전송처리를 나타내는 플로우 챠트이다.
도 32에 도시한 바와 같이, 호스트전송처리가 기동되면, CPU(42)은 세그먼트 #M의 간격 사이즈 MFM을 버퍼제어회로(53)로부터 취득하여(스텝 S191), 호스트전송 사이즈 MTH를 설정한다(스텝 S192). 호스트전송 사이즈는 호스트전송 블록 사이즈(MBHM×512)으로 호스트전송 데이터잔량 MDH중 어느 하나의 최소치이다.
다음에, CPU(42)는 세그먼트 간격 사이즈 MFM과 호스트전송 사이즈 MTH를 비교하여(스텝 S193), 세그먼트 간격 사이즈가 호스트전송 사이즈이상으로 될 때까지상기 처리를 되풀이한다(S191∼S193). 세그먼트 간격 사이즈가 호스트전송 사이즈이상으로 되면, 외부기기에 전송레디신호를 출력하여(스텝 S194), 외부기기로부터 입력한 호스트전송 사이즈 MTH만큼의 데이터의 세그먼트기입 처리를 실행시킨다(스텝 S195).
세그먼트기입 처리종료후, CPU(42)는 호스트전송 데이터잔량을 계산하여(스텝 S196), 그 호스트전송 데이터잔량이 0인가 아닌가를 체크한다(스텝 S197). 호스트전송 데이터잔량 > 0일 때, 호스트전송처리는 되풀이하여 실행된다. 호스트전송 데이터잔량 = 0일 때, 호스트전송처리는 종료한다.
계속해서, 세그먼트 #M에서 디스크(41)로의 디스크전송처리에 관해서 도 33의 플로우 챠트를 참조하면서 설명한다. 디스크(41)에의 디스크전송처리에 있어서, REG #M으로 설정된 디스크전송 블록 사이즈 MBDM, 및 디스크전송우선순위 PDM을 근거로 하여, 세그먼트 #M의 세그먼트축적량 MAM과 다른 세그먼트의 디스크전송이 모니터하면서 실행된다.
도 33은 세그먼트 #M에서 디스크(1)에의 디스크전송처리를 나타내는 플로우 챠트이다.
도 33에 나타내는 바와 같이, 디스크전송처리가 기동되면, CPU(42)는 세그먼트 #M의 세그먼트축적량 MAM을 버퍼제어회로(53)로부터 취득하여(스텝 S201), 디스크전송 사이즈 MTD를 설정한다(스텝 S202). 디스크전송 사이즈는 디스크전송 블록 사이즈(MBDH×512)로 디스크전송 데이터잔량 MDD중 어느하나의 최소치이다.
다음에, CPU(42)는 세그먼트축적량 MAM과 디스크전송 사이즈 MTD를비교하여(스텝 S203), 세그먼트축적량이 디스크전송 사이즈이상이 될 때까지 상기 처리를 되풀이한다(S201∼S203). 세그먼트축적량이 디스크전송 사이즈이상으로 되면, 다른 세그먼트의 디스크전송을 모니터하여(스텝 S204), 세그먼트 #M의 디스크전송보다 우선순위가 높은 디스크전송이 실행중인가 아닌가를 확인한다 (스텝 S205). 디스크전송을 실행중의 경우, 우선순위가 높은 디스크전송이 종료할 때까지 상기 처리를 되풀이한다(S204∼S205). 우선순위가 높은 디스크전송이 실행중이 아닌 경우, 디스크전송 사이즈분의 데이터의 디스크(41)로의 기입 처리를 실행시킨다(스텝 S206).
디스크기입 처리종료후, CPU(42)는 디스크전송 데이터잔량 MDD를 계산하여 (스텝 S207), 디스크전송 데이터잔량이 0인가 아닌가를 체크한다(스텝 S208). 디스크전송 데이터잔량 > 0일 때, 디스크전송처리는 되풀이하여 실행된다(S201∼S208). 디스크전송 데이터잔량이 0일 때, 디스크전송처리는 종료한다.
[읽어 내기 코멘드]
읽어 내기 코멘드의 파라미터는, 식별번호, 디스크선두 어드레스, 읽어 내기 사이즈이다.
읽어 내기 코멘드가 외부기기로부터 CPU(42)에 입력되면, CPU(42)은, 입력된 코멘드의 파라미터로부터 식별번호(L)를 취득하여, 세그먼트설정 레지스터 REG #L로 설정된 각 파라미터를 읽어 들인다.
계속해서, CPU(42)는 버퍼제어회로(53), 읽기/쓰기신호처리회로(44), 액츄에이터 구동회로(48)를 제어하여, 디스크(41)로부터 세그먼트 #L로의 디스크전송처리를 실행시킨다. 또한, CPU(42)는, 디스크전송처리에 병행하여, 호스트 인터페이스회로(51), 버퍼제어회로(53)를 제어하여, 세그먼트 #L에서 외부기기에의 호스트전송처리를 실행시킨다.
디스크(41)로부터 세그먼트 #L로의 디스크전송처리는, REG #L로 설정된 디스크전송 블록 사이즈 MBDL과 디스크전송우선순위 PDL을 근거로 하여, 세그먼트 #L의 세그먼트 간격 사이즈 MFL과 다른 세그먼트의 디스크전송을 모니터하면서 실행된다.
도 34는 디스크(41)으로부터 세그먼트 #L로의 디스크전송처리를 나타내는 플로우 챠트이다.
도 34에 나타내는 바와 같이, 디스크전송처리가 기동되면, CPU(42)은 세그먼트 #L의 세그먼트 간격 사이즈 MFL을 버퍼제어회로(53)로부터 취득하여(스텝 S211), 디스크전송 사이즈 MTD를 설정한다(스텝 S212). 디스크전송 사이즈는 디스크전송 블록 사이즈(MBDH×512)로 디스크전송 데이터잔량 MDD 중 어느하나의 최소치이다.
다음에, CPU(42)는 세그먼트 간격 사이즈 MFL을 디스크전송 사이즈 MTD와를 비교하여(스텝 S213), 세그먼트 간격 사이즈가 디스크전송 사이즈이상으로 될 때까지 상기 처리를 되풀이한다(S211∼S213). 세그먼트 간격 사이즈가 디스크전송 사이즈이상으로 되면, 다른 세그먼트의 디스크전송을 모니터하여(스텝 S214), 세그먼트 #L의 디스크전송보다 우선순위가 높은 디스크전송이 실행중인가 아닌가를 확인한다(스텝 S215). 디스크전송을 실행중의 경우, 우선순위가 높은 디스크전송이종료할 때까지 상기 처리를 되풀이한다(S214∼S215). 우선순위가 높은 디스크전송이 실행중이 아닌 경우, 디스크전송 사이즈분의 데이터의 디스크(41)부터의 읽어 내기 처리를 실행시킨다(스텝 S216).
디스크 읽어 내기 처리종료후, CPU(42)는 디스크전송 데이터잔량 MDD를 계산하여(스텝 S217), 디스크전송 데이터잔량이 0인가 아닌가를 체크하는(스텝 S218). 디스크전송 데이터잔량 > 0일 때, 디스크전송처리는 되풀이하여 실행된다(S211∼S218). 디스크전송 데이터잔량 > 0일 때, 디스크전송처리는 종료한다.
계속해서, 세그먼트 #L에서 외부기기에의 호스트전송처리를 도 35를 참조하여 설명한다. 도 35는 세그먼트 #L에서 외부기기에의 호스트전송처리를 나타내는 플로우 챠트이다.
세그먼트 #L에서 외부기기에의 호스트전송처리는, REG #L로 설정된 호스트전송 블록 사이즈 MBHL에 근거하여, 세그먼트 #L의 세그먼트축적량 MAL을 모니터하면서 실행된다.
도 35에 나타내는 바와 같이, 호스트전송처리가 기동되면, CPU(42)은 세그먼트 #L의 세그먼트축적량 MAL을 버퍼제어회로(53)로부터 취득하여(스텝 S221), 호스트전송 사이즈 MTH를 설정한다(스텝 S222). 호스트전송 사이즈는 호스트전송 블록 사이즈(MBHH×512)로 호스트전송 데이터잔량 MDH중 어느의 하나의 최소치이다.
다음에, CPU(42)는 세그먼트축적량 MAL과 호스트전송 사이즈 MTH를 비교하여(스텝 S223), 세그먼트축적량이 호스트전송 사이즈이상으로 될 때까지 상기처리를 되풀이한다(S221∼S223). 세그먼트축적량이 호스트전송 사이즈이상으로 되면, 외부기기에 전송레디신호를 출력하여(스텝 S224), 외부기기로부터 입력한 호스트전송 사이즈 MTH만큼의 데이터의 세그먼트 읽어내기 처리를 실행시킨다(스텝 S225).
세그먼트 읽어내기 처리종료후, CPU(42)는 호스트전송 데이터잔량을 계산하여 (스텝 S226), 그 호스트전송 데이터잔량이 0인가 아닌가를 체크한다(스텝 S227). 호스트전송 데이터잔량 > 0일 때, 호스트전송처리는 되풀이하여 실행된다. 호스트전송 데이터잔량 = 0일 때, 호스트전송처리는 종료한다.
이상설명한 바와 같이, 실시예7에 있어서, 외부기기는, 기록재생에 앞서, 세그먼트설정 코멘드, 세그먼트상황요구 코멘드를 사용 하는 것으로, 디스크장치에 대하여 각 채널 데이터에 해당하여 세그먼트 사이즈나, 전송 블록 사이즈, 디스크전송우선순위의 전송개시/정지조건을 설정할 수가 있다.
기록재생시에는 각 채널 데이터에 해당하고 식별번호를 부여한 기입 코멘드/읽어내기 코멘드를 발행함에 의해, 설정한 세그먼트 사이즈, 전송 블록 사이즈, 및 디스크전송우선순위에 따라서, 실시예7의 디스크장치는 각 데이터를 기록재생할 수가 있다.
이상과 같이, 실시예7의 디스크장치는, 외부기기로부터의 세그먼트 설정코멘드를 근거로 하여 세그먼트별로 사이즈, 전송 블록 사이즈, 및 디스크전송우선순위를 설정하여, 설정된 전송방법에 의해서, 호스트전송처리, 디스크전송처리를 제어함으로써, 다채널 데이터기록재생시에 각 채널에 해당한 메모리사이즈, 및 제어방식을 설정할 수가 있다.
실시예7에서는, 세그먼트설정 코멘드에 의해서 세그먼트를 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 기입 데이터에 세그먼트설정정보를 부가하여 디스크장치에 전송하여, 디스크장치로는 기입 데이터/읽어내기 데이터에 포함되는 세그먼트설정정보를 검출하여 세그먼트를 설정하는 구성이라도 무방하다.
실시예7에서는 세그먼트별로 설정하는 전송개시조건으로서, 디스크전송우선순위, 디스크전송 블록 사이즈, 및 호스트전송 블록 사이즈를 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 다른 파라미터를 이용하여, 혹은 다른 파라미터를 추가하여 디스크전송, 호스트전송의 전송개시/정지를 제어하는 구성이라도 좋다.
실시예7에서는 세그먼트별로 세그먼트설정 코멘드를 실행함으로써 각 세그먼트을 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 전 세그먼트을 일괄적으로 설정하는 세그먼트설정 코멘드를 설치하는 구성이라도 무방하다.
실시예7에서는 각 코멘드의 식별정보를 각 코멘드진술하여 파라미터에 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 기입 코멘드/읽어 내기 코멘드의 발행전에 실행하는 전용의 식별정보설정 코멘드를 설치하는 구성이라도 좋다.
<실시예8>
다음에, 본 발명의 실시예8에 있어서의 디스크장치에 관해서 설명한다. 또, 실시예8에 있어서의 디스크장치의 구성은 전술한 도 26, 도 27, 도 28에 나타내는 디스크장치의 구성과 실질적으로 같다. 실시예8의 디스크장치는, 데이터전송속도에 대한 전송속도설정 코멘드의 처리를 하고 있다.
실시예8에 있어서의 디스크장치의 전송속도설정 코멘드의 처리에 관해서 이하에 설명한다.
전송속도설정 코멘드의 파라미터는, 식별번호, 억세스종별, 및 전송속도이다. 전송속도 VCH는 해당하는 채널 데이터의 기록재생에 있어서 보증하는 전송속도이고, 단위는 섹터/s 이다.
도 36은 실시예8에 있어서의 전송속도설정 코멘드의 처리를 나타내는 플로우 챠트이다.
도 36에 나타내는 바와 같이, 전송속도설정 코멘드가 외부기기로부터 CPU(42)에 입력하면, CPU(42)은, 입력된 코멘드의 파라미터로부터 각 설정치를 취득한다(스텝 S231). 설정된 억세스종별, 전송속도와 디스크의 각 성능치로부터, 세그먼트설정 레지스터(61)에 대하여, 억세스종별, 세그먼트 사이즈, 디스크전송우선순위, 디스크전송 블록 사이즈, 및 호스트전송 블록 사이즈의 각 세그먼트설정치를 계산한다(스텝 S232). 그리고, 간격 사이즈확인을 포함해서 각 설정치가 체크된다(스텝 S233). 설정치가 부정인 경우, 외부기기에 에러를 통지한다(스텝 S234). 설정치가 적정한 경우, REG #(K+1) ∼ #N의 세그먼트선두 어드레스를 재계산하여 각 레지스터에 설정하고(스텝 S235), 각 설정치를 REG #K에 설정한다(스텝 S236).
데이터전송속도를 보증하기위해서는, 디스크전송 블록 사이즈, 세그먼트 사이즈를 적절히 설정해야 한다. 실시예8에 있어서의 설정방법에 관해서 이하에 설명한다.
실시예8에 있어서, 디스크장치의 억세스성능, 디스크전송성능에 관한 성능치를 이하의 파라미터로 나타낸다. 최대 시크시간이 TFS, 최대회전대기 시간이 TR(단위: ms), 채널설정속도가 VCH, 디스크전송속도가 VD(단위: 섹터/s)이다.
디스크전송 블록 사이즈 MBDK(단위: 섹터)를 디스크(41)에 기록 또는 디스크(41)로부터 재생할 때의 최대기록재생시간TRW(단위: s)는, 최대 억세스시간과 데이터전송시간의 합계이고, 이하의(32)식으로 주어진다.
TU = TB + TR + MBRK/VD · · · (32)
따라서, 억세스시간을 포함시킨 평균 디스크전송속도의 최악치 VRW(단위: 섹터/s)는, (33)식으로 계산된다.
VRW = MBDK/ (TFS+TR+MBDK/VD) · · · (33)
설정된 채널전송속도 VCH에 대하여, VCH ≤ VRW가 되도록 MBDK를 설정하면 채널전송속도이상으로 전송할 수 있는 것을 보증할 수가 있다. 따라서(32), (33)식에서, (34)식이 계산된다.
MBDK ≥ VCH × (TFS+TR)/(1-VCH/VD) · · · (34)
디스크전송 블록 사이즈 MBDK는, 상기(34)식을 채우고, 또한 8섹터 (4kB)의 정수배의 최소치로 설정한다. 다른 파라미터, 세그먼트 사이즈 MSK, 호스트전송 블록 사이즈 MBHK, 및 디스크전송우선순위는, 이하의 설정방법으로 설정한다.
세그먼트 사이즈 MSK(단위: 섹터)는, MSK ≥ 2 × MBDK를 만족시키고, 또한, 빈 영역 사이즈를 넘지 않은 범위에서, 8섹터 (4kB)의 정수배의 최소치에 설정한다.
호스트전송 블록 사이즈 MBHK (단위: 섹터)는, MBHK= MSK로 설정한다.
디스크전송우선순위는, 채널전송속도가 빠른 순차로 높은 우선순위를 설정한다. 동일속도의 전송속도인 경우, 기입이라는 억세스종별의 세그먼트에 높은 우선순위를 설정한다.
이상의 설정방법에 의해서, 구체적으로 각 세그먼트설정치를 구하는 예를 이하에 설명한다.
VD = 14000(섹터/s), TFS = 0.02 (s), TR = 0.01 (s)
채널수를 4로 하여, 각 채널전송속도를, 아래와같이 설정한다.
VCH1 = 1000(섹터/s), VCH2 = 2000(섹터/s), VCH3 = 1400(섹터/s), VCH4 = 2400(섹터/s)
이 때, (34)식에 의해서, 다음식이 계산된다(소수점이하 반올림).
MBD1 ≥ 1000 × (0.02+0.01)/(1-1000/14000) = 33
MBD2 ≥ 2000 × (0.02+0.01)/(1-2000/14000) = 70
MBD3 ≥ 1400 × (0.02+0.01)/(1-1400/14000) = 47
MBD4 ≥ 2400 × (0.02+0.01)/(1-2400/14000) = 87
상기식에서, 각 파라미터가 계산된다.
디스크전송 블록 사이즈 MBDK (k = 1∼4)
MBD1 = 40(섹터), MBD2 = 72(섹터)
MBD3 = 48(섹터), MBD4 = 88(섹터)
세그먼트사이즈 MSK(k = 1∼4)
MS1 = 80(섹터), MS2 = 144(섹터)
MS3 = 96(섹터), MS4 = 176(섹터)
호스트전송 블록 사이즈 MBHK (k = 1∼4)
MBH1 = 80(섹터), MBH2 = 144(섹터)
MBH3 = 96(섹터), MBH4 = 176(섹터)
디스크전송우선순위 PDK (k = 1∼4)
PD1 = 4, PD2 = 2, PD3 = 3, PD4 = 1
이상설명한 바와 같이, 외부기기가 각 채널의 전송속도를 디스크장치에 설정한다. 이에 따라, 실시예8의 디스크장치는, 장치의 시크성능, 디스크전송속도에 따라서, 전송속도를 보증하기위해 필요한 디스크전송 블록 사이즈를 계산하여 설정할 수가 있다.
이상과같이, 실시예8의 디스크장치는, 외부기기로부터의 각 채널의 데이터전송속도에 따라서, 세그먼트별로 사이즈, 전송방법을 설정할 수가 있어, 필요한 데이터전송속도를 보증할 수가 있다.
실시예8에서는, 전송속도설정코멘드에 따라 각 세그먼트을 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 기입 데이터전송속도설정정보를 부가하여 디스크장치에 전송하여, 디스크장치에는 기입 데이터/읽어 내기 데이터에 포함되는 전송속도설정정보를 검출하여 세그먼트를 설정하도록 구성하여도 무방하다.
실시예8에서는 세그먼트별로 설정하는 전송개시조건으로서, 디스크전송우선순위, 디스크전송 블록 사이즈, 및 호스트전송 블록 사이즈를 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 다른 파라미터를 이용하여 또는 다른 파라미터를추가하여 디스크전송, 호스트전송의 전송개시/정지를 제어하는 구성이라도 좋다.
실시예8에서는 전송속도정보로서, 외부기기로부터 전송속도자체를 설정하였다. 그러나, 본 발명의 기록재생장치는, 미리 설정된 속도종별번호나, 전송속도에 관련되는 화상 데이타 포맷정보를 설정하는 구성이라도 좋다.
실시예8에서는 전송속도정보로부터 세그먼트설정 레지스터의 각 설정치를 구하는 일례를 나타내었다. 본 발명의 기록재생장치는, 설정방법은 이 방법에 한정되는 것이 아니다.
실시예8에서는 세그먼트별로 설정 코멘드를 실행 하는 것으로 각 세그먼트을 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 전 세그먼트을 일괄에 설정하는 설정 코멘드를 마련하는 구성이라도 좋다.
실시예8에서는 각 코멘드의 식별정보를 각 코멘드의 파라미터에 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 기입 코멘드/읽어 내기 코멘드의 발행전에 실행하는 전용의 식별정보설정 코멘드를 마련하는 구성이라도 좋다.
<실시예9>
다음에, 본 발명의 실시예9에 있어서의 디스크장치에 관해서 설명한다. 또, 실시예9에 있어서의 디스크장치의 구성은, 버퍼제어회로(53)의 세그먼트설정 레지스터를 제외하고, 전술의 도 26, 도 27에 나타내는 디스크장치의 구성과 실질적으로 같다.
도 37은 실시예9에 있어서의 버퍼 RAM(43)의 세그먼트분할과 세그먼트설정 레지스터(61a)와의 대응을 도시한 도면이다.
도 37에 나타내는 바와 같이, 실시예9에 있어서의 세그먼트설정 레지스터(61a)에는, 외부기기로부터의 데이터전송단위인 억세스단위 ACK를 설정할 수가 있다. 또한, 이 세그먼트설정 레지스터(61a)로 설정된 억세스단위 ACK에 의해서, 세그먼트에 데이터를 기입/읽어내기 할 수가 있다. 억세스단위 ACK는 바이트단위이고, 512이하의 2제곱승치로부터 선택한다.
실시예9에 있어서의 디스크장치의 코멘드처리에 관해서 이하에 설명한다.
[세그먼트설정코멘드]
세그먼트설정 코멘드의 파라미터는, 세그먼트번호, 억세스종별, 억세스단위, 세그먼트 사이즈, 및 디스크전송우선순위이다. 여기서, 지정된 세그먼트번호는 K 이다.
세그먼트설정 코멘드가 외부기기로부터 CPU(42)에 입력되면, CPU(42)는, 파라미터를 체크한 뒤, 각 세그먼트의 세그먼트선두 어드레스를 재계산하여 레지스에 설정하여, 다른 설정치를 REG #K에 설정한다.
[기입 코멘드/읽어 내기 코멘드]
기입 코멘드, 읽어 내기 코멘드는 전술한 실시예1에서 설명한 기입 코멘드, 읽어 내기 코멘드와 마찬가지다. 선두 어드레스, 기입 사이즈, 및 읽어 내기 사이즈의 설정은 섹터단위이다.
[세그먼트기입코멘드]
세그먼트기입 코멘드의 파라미터는, 식별번호, 및 세그먼트 어드레스, 기입 사이즈이다. 식별번호는 세그먼트설정 코멘드로 설정한 세그먼트번호에 해당한다.여기서는 식별번호를 K (K = 1∼N)로 한다. 세그먼트 어드레스는, 세그먼트내의 기입 어드레스이고, 세그먼트의 선두 어드레스를 0으로 하여, 세그먼트설정 코멘드로 설정한 억세스단위를 단위로서 설정한다. 기입 사이즈도 세그먼트설정 코멘드로 설정한 억세스단위를 단위로서 설정한다.
세그먼트기입 코멘드가 외부기기로부터 CPU(42)에 입력되면, CPU(42)는, 설정된 세그먼트 어드레스, 기입 사이즈에 따라서 외부기기로부터 세그먼트 #K로의 호스트전송을 실행시킨다.
또한, CPU(42)는, 세그먼트 #M에 대하여 실행된 최신의 기입 코멘드 또는 읽어 내기 코멘드에 의해 설정된 디스크상의 선두 어드레스 DA(섹터 단위)로, 세그먼트 #K내의 기입해야할 섹터의 어드레스 SA(세그먼트 선두를 0으로 한다)로부터, 디스크(41)상의 기입할 곳의 어드레스(DA+SA)를 계산한다. 그리고, CPU(42)는, 설정된 디스크전송우선순위에 따라서, 갱신된 데이터의 디스크(41)에의 디스크전송을 실행한다.
[세그먼트 읽어내기 코멘드]
세그먼트 읽어내기 코멘드의 파라미터는, 식별번호, 세그먼트 어드레스, 및 읽어내기 사이즈이다. 세그먼트 어드레스와 읽어 내기 사이즈는, 세그먼트설정 코멘드로 설정한 억세스단위를 단위로서 설정한다.
세그먼트 읽어내기 코멘드가 외부기기로부터 CPU(42)에 입력되면, CPU(42)는, 설정된 세그먼트 어드레스와 기입 사이즈에 따라서 세그먼트 #M에서 외부기기에의 호스트전송을 실행한다.
다음에, 상기 코멘드의 사용방법에 관해서 설명한다.
우선, 외부기기는 세그먼트설정 레지스터를 발행하여, 도 37에 도시하는 바와 같이 세그먼트설정 레지스터(61a)를 설정한다. 워드단위로 랜덤억세스하고 싶은 세그먼트 #K에 대해서는 억세스종별 CSN = 3(기입 읽어내기 양쪽)을 설정하여, 억세스단위 ACK = 2를 설정한다.
다음에, 세그먼트 #K를 지정하여 기입 코멘드 또는 읽어내기 코멘드를 실행하여, 세그먼트 #K에 기입 데이터 또는 읽어내기 데이터를 받아들인다. 이후, 세그먼트 #K의 상기입 력 데이터에 대한 읽어 냄은 세그먼트 읽어내기 코멘드를 발행하여, 입력 데이터의 변경은 세그먼트기입 코멘드를 발행하여 실행한다. 세그먼트 기입 코멘드로 세그먼트 #K에 기입된 데이터는, 디스크장치내의 처리로 디스크(41)상이 해당하는 영역에 기입되고, 세그먼트 #K상의 데이터와 디스크상의 데이터의 동일성은 유지된다.
상기한 바와 같이 설정된 세그먼트 #K에는, 예컨대, FAT(파일 알로케이션 테이블)정보와 같이, 억세스빈도가 높고, 또한 작은 단위로 고쳐 쓰기를 실행하는 빈도가 높은 정보를 최초에 읽어 내기 코멘드로 읽어 내어 격납해 놓는다. 이에 따라, 이후의 억세스는 버퍼 메모리의 세그먼트에 대하여 워드단위로 랜덤억세스됨과 동시에, 디스크 억세스에 의한 대기시간이 발생하지 않기때문에, 다시쓰기 처리속도가 향상한다.
이상과같이, 실시예9의 디스크장치는, 외부기기로부터, 디스크장치의 버퍼 RAM의 세그먼트에 대하여, 설정한 억세스단위로 직접 랜덤억세스할 수가 있다. 이때문에, 실시예9의 디스크장치는 랜덤억세스의 효율을 향상할 수가 있다.
또, 실시예9에서는 세그먼트설정 코멘드에 의해서 세그먼트를 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 기입 데이터에 세그먼트설정정보를 부가하여 디스크장치에 전송하여, 디스크장치로는 기입 데이터/읽어 내기 데이터에 포함되는 세그먼트설정정보를 검출하여 세그먼트를 설정하는 구성이라도 좋다.
실시예9의 세그먼트설정 레지스터에서는 디스크전송 블록 사이즈, 호스트전송 블록 사이즈를 설정하지 않는 구성이다. 그러나, 본 발명의 기록재생장치는, 다른 설정치에 이것들의 설정치를 가하여 실시하는 구성이라도 좋다.
실시예9에서는 세그먼트별로 세그먼트설정 코멘드를 실행함에 의해 각 세그먼트을 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 전 세그먼트을 일괄에 설정하는 세그먼트설정 코멘드를 마련하는 구성이라도 좋다.
실시예9에서는 각 코멘드의 식별정보를 각 코멘드의 파라미터에 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 기입 코멘드/읽어 내기 코멘드의 발행전에 실행하는 전용의 식별정보설정 코멘드를 마련하는 구성이라도 좋다.
<실시예10>
다음에, 본 발명의 실시예10에 있어서의 디스크장치에 관해서 설명한다. 또, 실시예10에 있어서의 디스크장치의 구성은, 버퍼제어회로(53)의 세그먼트설정 레지스터를 제외하고, 전술한 도 26, 도 27에 나타낸 디스크장치의 구성과, 실질적으로 같다.
도 38은 실시예10에 있어서의 버퍼제어회로(53)의 세그먼트설정레지스터(61b), 버퍼 RAM(43)의 세그먼트분할, 및 디스크(41)상의 각 영역과의 대응을 도시한 도면이다.
도 38에 도시하는 바와 같이, 세그먼트설정 레지스터(61b)에는, 억세스종별, 세그먼트선두 어드레스, 세그먼트 사이즈, 디스크선두 어드레스, 디스크영역 사이즈, 및 억세스단위가 설정되어 있다. 각 설정치에 의해서, 버퍼 RAM(43)의 세그먼트 #1는 디스크(41)상의 영역1, 세그먼트 #2은 디스크(41)상의 영역2, 세그먼트 #K은 디스크(41)상의 영역 K에 각각 대응되어 있다. 또한, 외부기기로부터의 데이터전송단위인 억세스단위 ACK를 설정할 수가 있어, 설정된 억세스단위 ACK에 의해서, 디스크장치에 데이터를 기입/읽어내기 할 수가 있다. 억세스단위 ACK는 바이트단위이고, 512이하의 2제곱 승치로부터 선택한다. 여기서는 세그먼트 #K에 대한 억세스단위를 256바이트로 하고있다.
실시예10에 있어서의 디스크장치의 코멘드처리에 관해서 이하에 설명한다.
[세그먼트설정코멘드]
세그먼트설정 코멘드의 파라미터는, 세그먼트번호, 억세스종별, 디스크선두 어드레스, 디스크영역 사이즈, 억세스단위, 및 세그먼트 사이즈이고, 여기서, 지정된 세그먼트번호를 K로 한다. 디스크선두 어드레스와 디스크영역 사이즈는, 디스크(41)상의 영역범위를 섹터단위로 지정하여, 상기영역범위를 세그먼트 #K와 대응하여설치할 수 있다.
[기입코멘드]
기입 코멘드의 파라미터는, 식별번호, 기입 어드레스, 및 기입 사이즈이다.식별번호는 세그먼트설정 코멘드로 설정한 세그먼트번호에 해당한다. 여기서는 식별번호를 K 한다. 기입 어드레스와 기입 사이즈는, 세그먼트설정 코멘드로 설정한 억세스단위로 설정한다. 기입 어드레스는, 디스크상의 영역 K 내의 상기 억세스단위에의한 기입 선 어드레스이고, 영역선두 어드레스를 0으로 한다.
기입 코멘드가 외부기기로부터 CPU(42)에 입력되면, CPU(42)은 외부기기로부터 세그먼트 #K로의 호스트전송을 실행한다. 또한, CPU(42)는, 기입 어드레스 DW와 세그먼트설정 레지스터에 의해서 설정된 디스크(41)상의 영역 K의 선두 어드레스 DA로부터, 디스크(41)상의 기입 선 어드레스(DA+DW)를 계산한다. 그리고, CPU(42)는, 디스크(41)에의 디스크전송을 실행한다.
[읽어 내기 코멘드]
읽어 내기 코멘드의 파라미터는, 식별번호, 읽어 내기 어드레스, 및 읽어 내고 사이즈이다. 읽어 내기 어드레스, 읽어 내기 사이즈는, 및 세그먼트설정 코멘드로 설정한 억세스단위로 설정한다. 읽어 내기 어드레스는, 디스크상의 영역 K 내의 상기 억세스단위에의한 읽어 내기 선 어드레스이고, 영역선두 어드레스를 0으로 한다.
읽어 내기 코멘드가 외부기기로부터 입력되면, CPU(42)는 읽어 내기 어드레스 DR와 세그먼트설정 레지스터에 의해서 설정된 디스크(41)상의 선두 어드레스 DA로부터, 디스크(41)상의 읽어 내기 선 어드레스(DA+DR)를 계산하여, 디스크(41)로부터 세그먼트 #K로의 디스크전송을 실행시킨다. 또한 CPU(42)는 세그먼트 #K에서 외부기기로의 호스트전송을 실행시킨다.
이상 설명한 바와 같이, 외부기기는 디스크장치에 대하여, 세그먼트설정코멘드에 의하여 세그먼트별로 디스크상이 다른 기록재생영역과 외부기기와의 억세스단위를 설정할 수가 있다. 그리고, 외부기기는, 식별번호에 의해서 세그먼트지정한 기입 코멘드 또는 읽어 내기 코멘드를 발행하여, 디스크(41)상의 개별의 영역에 대하여 개별의 억세스단위로 기록재생할 수가 있다.
이상과같이 실시예10의 디스크장치는, 외부기기로부터의 설정정보에 따라서, 세그먼트별로 다른 기록재생영역을 설정함으로써, 기록재생영역과 세그먼트를 1대 1로 대응할 수 있고, 각 세그먼트의 데이터와 디스크상의 데이터와의 동일성을 용이하게 보증할 수가 있다.
외부기기와 디스크장치와의 전송 데이터 사이즈인 억세스단위를 개별로 설정할 수가 있고, 기록재생하는 데이터의 종별에 따라 억세스단위를 설정할 수가 있다.
실시예10의 세그먼트설정 레지스터에서는 디스크전송 블록 사이즈, 호스트전송 블록 사이즈를 설정하지 않는 구성이다. 그러나, 본 발명의 기록재생장치는, 다른 설정치에 이것들의 설정치를 덧붙여 실시하는 구성이라도 좋다.
실시예10에서는 각 코멘드의 식별정보를 각 코멘드의 파라미터에 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 기입 코멘드/읽어 내기 코멘드의 발행전에 실행하는 전용의 식별정보설정 코멘드를 마련하는 구성이라도 좋다.
실시예10에서는 세그먼트별로 세그먼트설정 코멘드를 실행하는 것으로 각 세그먼트을 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 전 세그먼트을 일괄에 설정하는 세그먼트설정 코멘드를 마련하는 구성이라도 좋다.
실시예10에서는, 세그먼트설정 코멘드에 의해서 세그먼트를 설정하고 있다. 그러나, 본 발명의 기록재생장치는, 기입 데이터에 세그먼트설정정보를 부가하여 디스크장치에 전송하여, 디스크장치로는 기입 데이터/읽어 내기 데이터에 포함되는 세그먼트설정정보를 검출하여 세그먼트를 설정하는 구성이라도 좋다.
이상에서와 같이 본 발명은, 외부기기로부터의 각 입출력요구에 대하여 입출력요구의 실행시간을 예측하여 확실한 처리를 보증할 수가 있고, 우선도가 높은 동작 화상 데이터등이 확실한 연속기록재생을 보증하여, 우선도가 낮은 입출력요구의 효율적처리를 실현하며, 적은, 제한시간에 대하여 시간적으로 여유가 있는 경우에는 우선순위가 낮은 랜덤데이터 입출력요구를 선택하여 실행할 수 있다.
또한 본 발명은, 동작 화상 데이터에 알맞은 일시기억회로의 제어방법에 의해서 동작 화상 데이터를 기록재생하고, 필요로 하는 채널수에 따라서 일시기억회로를 복수의 세그먼트로 분할할 수 있으며, 채널마다, 전송속도, 리얼타임성에 대응하여, 일시기억회로 사이즈, 일시기억회로제어방식을 설정할 수 있다.
Claims (10)
- 입출력요구의 종별에 응해서 복수의 세그먼트에 분할가능한 일시기억회로와, 기록매체로부터 지정된 영역을 읽어내어 대응하는 세그먼트로의 일시기억만을 하는 미리 읽기 수단을 구비하고,미리 읽기 사이즈요구에 대하여, 미리 읽기 가능한 데이터 사이즈로서 대응하는 세그먼트의 간격 사이즈를 응답하여, 읽어 내기 사이즈요구에 대하여, 대응하는 세그먼트의 미리 읽기가 끝난 데이터 사이즈를 읽기 가능한 데이터 사이즈로 하여 응답하는 것을 특징으로 하는 기록재생장치.
- 데이터를 일시적으로 기억가능한 일시기억회로,기록매체에 기록된 데이터에 대응한 파일관리정보를 기억하는 관리정보기억수단, 및외부기기로부터의 자동으로 미리 읽고 요구에 응해서 상기 관리정보를 재생하여, 상기 외부기기에 전송해야 할 데이터·블록의 기록매체상의 기록위치를 구하여, 상기 데이터·블록를 미리 읽는 제어회로를 구비하는 것을 특징으로 하는 기록재생장치.
- 제 2 항에 있어서, 관리정보기억수단이, 적어도 데이터·블록번호와 상기 데이터·블록번호에 해당하는 데이터의 기록위치정보를 포함한 파일관리정보를 기억하고,제어회로가, 외부기기로부터의 자동으로 미리 읽고 요구시에 외부기기로부터 데이터·블록번호를 받아, 상기 데이터·블록번호에 대응한 기록위치정보를 파일관리정보 중에서 선택하도록 구성된 기록재생장치.
- 데이터를 일시적으로 기억가능한 일시기억회로,기록매체로부터 재생한 데이터를 상기 일시기억회로에 전송하는 프리 페치수단, 및외부기기로부터의 입출력요구의 종류를 판별하여, 프리 페치하는 데이터량 혹은 프리 페치의 처리에 요하는 시간이 다른 복수의 프리 페치방법중에서 상기 입출력요구의 종류에 응해서 선택하여 실행하는 제어회로를 구비하는 것을 특징으로 하는 기록재생장치.
- 데이터를 일시적으로 기억하는 일시기억회로,기록매체로부터 데이터·블록를 재생하여 일시기억회로에 전송하는 미리 읽기수단, 및상기 외부기기로부터 식별자 부착 입출력요구를 수취, 상기 식별자에 따라서 미리 읽혀진 복수의 데이터·블록 중에서 외부기기에 전송해야 할 데이터·블록을 선택하여 상기 외부기기에 전송하는 제어회로를 구비하는 것을 특징으로 하는 기록재생장치.
- 데이터를 일시적으로 기억하는 일시기억회로, 및외부기기로부터의 데이터기입 요구에 응하여 상기 외부기기로부터의 데이터를 상기 일시기억회로에 기억하여, 데이터기입 요구의 종류를 판별하고, 판별한 종류에 응해서 기록매체에 연속하여 기록하는 데이터량을 선택하는 제어회로를 구비하는 것을 특징으로 하는 기록재생장치.
- 데이터를 일시적으로 기억하는 일시기억회로,외부기기로부터의 데이터 읽어내기 요구를 축적하는 축적수단, 및외부기기로부터의 데이터 읽어내기 요구의 종류를 판별하여, 판별한 종류에 따라 축적하는 데이터 읽어내기 요구수를 선택하여 축적하고, 축적한 요구에 응해서 기록매체부터의 데이터재생을 연속하여 하는 제어회로를 구비하는 것을 특징으로 하는 기록재생장치.
- 데이터를 일시적으로 기억하는 일시기억회로,상기 외부기기로부터의 입출력요구를 축적하는 축적수단, 및축적된 입출력요구의 종류를 판별하여, 상기 입출력요구가 제한시간 부착 입출력요구의 경우에는, 제한시간에 따라서 산출한 마감 시간까지의 남은시간에 따라서 우선적으로 처리를 실행하는 입출력요구의 종류를 선택하여 실행하는 제어회로를 구비하는 것을 특징으로 하는 기록재생장치.
- 제 8 항에 있어서, 외부기기로부터 일시기억회로에 연속하고 기억가능한 데이터량을 전송가능한 데이터로서 검지하는 검지수단, 및축적수단에 축적된 제한시간 부착 입출력요구중에서 제한시간에 따라서 산출한 마감 시간까지의 남은시간이 최소의 입출력요구를 실행예정요구로서 선택하여, 상기 전송가능 데이터량에 응해서 산출한 지연가능시간에 따라서 상기 실행예정요구의 제한시간을 연장하는 제어회로를 구비하는 것을 특징으로 하는 기록재생장치.
- 제 8항에 있어서, 상기 입출력요구를 축적하여, 축적된 입출력 요구의 제한시간에 따라서 마감 시간까지의 남은 시간을 산출하여, 축적된 입출력요구의 중에서 남은 시간이 최소의 입출력요구를 선택하여, 상기 최소의 남은 시간이 소정치보다도 작은 경우에는 상기 입출력요구를 실행하고, 상기 조건이 채워지지 않은 경우에는, 각 입출력요구에 대응하는 데이터의 기록위치에 따라 축적된 입출력요구의 실행순서를 선택하여 실행하는 제어회로를 구비하는 것을 특징으로 하는 기록재생장치.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9026755A JPH10222310A (ja) | 1997-02-10 | 1997-02-10 | 記録再生装置 |
JP26755 | 1997-02-10 | ||
JP97-26755 | 1997-02-10 | ||
JP9045585A JPH10240449A (ja) | 1997-02-28 | 1997-02-28 | 記録再生装置及び記録再生装置に対する入出力制御方法 |
JP45585 | 1997-02-28 | ||
JP141926 | 1997-05-30 | ||
JP9141926A JPH10333984A (ja) | 1997-05-30 | 1997-05-30 | 記録再生装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010021405A Division KR100343005B1 (ko) | 1997-02-10 | 2001-04-20 | 기록재생장치 및 기록재생장치에 대한 입출력제어방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980071241A KR19980071241A (ko) | 1998-10-26 |
KR100326656B1 true KR100326656B1 (ko) | 2002-08-13 |
Family
ID=27285526
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980003899A KR100326656B1 (ko) | 1997-02-10 | 1998-02-10 | 기록재생장치 |
KR1020010021405A KR100343005B1 (ko) | 1997-02-10 | 2001-04-20 | 기록재생장치 및 기록재생장치에 대한 입출력제어방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010021405A KR100343005B1 (ko) | 1997-02-10 | 2001-04-20 | 기록재생장치 및 기록재생장치에 대한 입출력제어방법 |
Country Status (4)
Country | Link |
---|---|
US (2) | US6553476B1 (ko) |
EP (1) | EP0858072A3 (ko) |
KR (2) | KR100326656B1 (ko) |
SG (1) | SG72788A1 (ko) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451448B1 (en) | 1998-08-28 | 2008-11-11 | Oracle International Corporation | Methods for selectively quiescing a computer system |
US7526767B1 (en) | 1998-08-28 | 2009-04-28 | Oracle International Corporation | Methods for automatic group switching according to a resource plan |
US7017156B1 (en) * | 1998-08-28 | 2006-03-21 | Oracle International Corporation | System for computing an estimate execution time by totaling the time value base on an architecture or a software operating environment |
JP2000148604A (ja) * | 1998-11-12 | 2000-05-30 | Hitachi Ltd | 記憶装置の制御方法 |
JP2001067786A (ja) | 1999-08-30 | 2001-03-16 | Matsushita Electric Ind Co Ltd | 記録再生装置 |
JP3431582B2 (ja) * | 2000-06-29 | 2003-07-28 | 株式会社東芝 | デスク記憶装置、及び同装置に適用されるハングアップ発生時の処理方法 |
US6871102B2 (en) * | 2000-12-07 | 2005-03-22 | Lg Electronics Inc. | Apparatus and method for verifying memory coherency of duplication processor |
JP3579395B2 (ja) * | 2001-12-27 | 2004-10-20 | 株式会社東芝 | ディスク記憶装置及びアクセス方法 |
US7133972B2 (en) | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US7117316B2 (en) * | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US6820181B2 (en) | 2002-08-29 | 2004-11-16 | Micron Technology, Inc. | Method and system for controlling memory accesses to memory modules having a memory hub architecture |
JP2004318940A (ja) * | 2003-04-14 | 2004-11-11 | Renesas Technology Corp | 記憶装置 |
KR100503796B1 (ko) * | 2003-06-05 | 2005-07-26 | 삼성전자주식회사 | 액세스 대기신호 오류 검출방법 및 장치 |
US7185167B2 (en) * | 2003-06-06 | 2007-02-27 | Microsoft Corporation | Heap allocation |
US7120727B2 (en) * | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
US7107415B2 (en) * | 2003-06-20 | 2006-09-12 | Micron Technology, Inc. | Posted write buffers and methods of posting write requests in memory modules |
US7260685B2 (en) | 2003-06-20 | 2007-08-21 | Micron Technology, Inc. | Memory hub and access method having internal prefetch buffers |
JP4549038B2 (ja) * | 2003-07-08 | 2010-09-22 | 三洋電機株式会社 | デジタル情報の再生方法及びデジタル情報記録又は再生装置 |
JP2005115600A (ja) * | 2003-10-07 | 2005-04-28 | Hitachi Ltd | 情報処理装置及び方法 |
US7120743B2 (en) | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
JP2005128888A (ja) * | 2003-10-24 | 2005-05-19 | Hitachi Ltd | コマンド処理装置及びコマンド処理装置の制御方法 |
US7330992B2 (en) | 2003-12-29 | 2008-02-12 | Micron Technology, Inc. | System and method for read synchronization of memory modules |
US7188219B2 (en) * | 2004-01-30 | 2007-03-06 | Micron Technology, Inc. | Buffer control system and method for a memory system having outstanding read and write request buffers |
JP2005309980A (ja) * | 2004-04-23 | 2005-11-04 | Hitachi Global Storage Technologies Netherlands Bv | ディスク装置及びリアルタイム処理と非リアルタイム処理の同時実行方法 |
US7162567B2 (en) * | 2004-05-14 | 2007-01-09 | Micron Technology, Inc. | Memory hub and method for memory sequencing |
US7519788B2 (en) | 2004-06-04 | 2009-04-14 | Micron Technology, Inc. | System and method for an asynchronous data buffer having buffer write and read pointers |
EP1761930A1 (en) * | 2004-07-01 | 2007-03-14 | THOMSON Licensing | Device and method for recording multimedia data |
US20060168407A1 (en) * | 2005-01-26 | 2006-07-27 | Micron Technology, Inc. | Memory hub system and method having large virtual page size |
JP4974508B2 (ja) * | 2005-10-28 | 2012-07-11 | キヤノン株式会社 | バスマスタ装置、バス調停装置及びバス調停方法 |
JP2008065908A (ja) * | 2006-09-07 | 2008-03-21 | Toshiba Corp | 情報処理装置、書込み制御方法およびプログラム |
JP2009080690A (ja) * | 2007-09-26 | 2009-04-16 | Nec Corp | 情報記録再生システム,情報記録再生方法及びプログラム |
US8104047B2 (en) * | 2008-05-19 | 2012-01-24 | International Business Machines Corporation | Processing access requests for a disk drive |
US9325583B2 (en) * | 2009-01-27 | 2016-04-26 | Hewlett Packard Enterprise Development Lp | Method and system for optimizing network input/output performance |
US9082127B2 (en) | 2010-03-31 | 2015-07-14 | Cloudera, Inc. | Collecting and aggregating datasets for analysis |
US8239589B1 (en) | 2010-03-31 | 2012-08-07 | Amazon Technologies, Inc. | Balancing latency and throughput for shared resources |
US9081888B2 (en) | 2010-03-31 | 2015-07-14 | Cloudera, Inc. | Collecting and aggregating log data with fault tolerance |
US8874526B2 (en) | 2010-03-31 | 2014-10-28 | Cloudera, Inc. | Dynamically processing an event using an extensible data model |
US9317572B2 (en) | 2010-03-31 | 2016-04-19 | Cloudera, Inc. | Configuring a system to collect and aggregate datasets |
US8661067B2 (en) | 2010-10-13 | 2014-02-25 | International Business Machines Corporation | Predictive migrate and recall |
US8819328B2 (en) * | 2010-12-30 | 2014-08-26 | Sandisk Technologies Inc. | Controller and method for performing background operations |
US8880592B2 (en) | 2011-03-31 | 2014-11-04 | Cloudera, Inc. | User interface implementation for partial display update |
US20120265962A1 (en) * | 2011-04-17 | 2012-10-18 | Anobit Technologies Ltd. | High-performance sas target |
US8935455B2 (en) | 2011-06-20 | 2015-01-13 | International Business Machines Corporation | Storage allocation based on data set size |
JP5852431B2 (ja) * | 2011-12-09 | 2016-02-03 | キヤノン株式会社 | 画像処理装置、その制御方法、及びプログラム |
US9172608B2 (en) | 2012-02-07 | 2015-10-27 | Cloudera, Inc. | Centralized configuration and monitoring of a distributed computing cluster |
US9405692B2 (en) * | 2012-03-21 | 2016-08-02 | Cloudera, Inc. | Data processing performance enhancement in a distributed file system |
US9338008B1 (en) | 2012-04-02 | 2016-05-10 | Cloudera, Inc. | System and method for secure release of secret information over a network |
US9842126B2 (en) | 2012-04-20 | 2017-12-12 | Cloudera, Inc. | Automatic repair of corrupt HBases |
JP5390662B2 (ja) * | 2012-05-31 | 2014-01-15 | 株式会社東芝 | データ転送方法ならびに電子機器 |
US9753954B2 (en) | 2012-09-14 | 2017-09-05 | Cloudera, Inc. | Data node fencing in a distributed file system |
US9298375B2 (en) * | 2013-02-27 | 2016-03-29 | Vmware, Inc. | Method and apparatus for returning reads in the presence of partial data unavailability |
US9342557B2 (en) | 2013-03-13 | 2016-05-17 | Cloudera, Inc. | Low latency query engine for Apache Hadoop |
US9477731B2 (en) | 2013-10-01 | 2016-10-25 | Cloudera, Inc. | Background format optimization for enhanced SQL-like queries in Hadoop |
US9934382B2 (en) | 2013-10-28 | 2018-04-03 | Cloudera, Inc. | Virtual machine image encryption |
US9501128B2 (en) * | 2013-10-30 | 2016-11-22 | Globalfoundries Inc. | Cooperative reduced power mode suspension for high input/output (‘I/O’) workloads |
US9690671B2 (en) | 2013-11-01 | 2017-06-27 | Cloudera, Inc. | Manifest-based snapshots in distributed computing environments |
US9760574B1 (en) * | 2014-06-30 | 2017-09-12 | EMC IP Holding Company LLC | Managing I/O requests in file systems |
US9747333B2 (en) | 2014-10-08 | 2017-08-29 | Cloudera, Inc. | Querying operating system state on multiple machines declaratively |
WO2017043284A1 (ja) * | 2015-09-10 | 2017-03-16 | 富士フイルム株式会社 | 情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体 |
US9747057B1 (en) | 2015-09-13 | 2017-08-29 | Amazon Technologies, Inc. | Storage auto delete |
US9811261B1 (en) * | 2015-09-13 | 2017-11-07 | Amazon Technologies, Inc. | Dynamic buffer size |
WO2018061068A1 (ja) * | 2016-09-27 | 2018-04-05 | 株式会社日立製作所 | ストレージシステム及びストレージシステム管理方法 |
KR20180086817A (ko) * | 2017-01-23 | 2018-08-01 | 에스케이하이닉스 주식회사 | 반도체장치 |
US10216660B1 (en) * | 2017-07-13 | 2019-02-26 | EMC IP Holding Company LLC | Method and system for input/output (IO) scheduling in a storage system |
TWI621021B (zh) * | 2017-08-25 | 2018-04-11 | 慧榮科技股份有限公司 | 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 |
JP6930506B2 (ja) * | 2018-08-08 | 2021-09-01 | 株式会社Jvcケンウッド | データ記録送信装置、データ記録送信方法、及びデータ記録送信プログラム |
US11487592B2 (en) * | 2020-01-22 | 2022-11-01 | EMC IP Holding Company LLC | Dynamic application migration across storage platforms |
US11507294B2 (en) * | 2020-10-22 | 2022-11-22 | EMC IP Holding Company LLC | Partitioning a cache for fulfilling storage commands |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0093239A2 (en) * | 1982-04-30 | 1983-11-09 | International Business Machines Corporation | Lookahead I/O device control subsystem |
EP0712082A1 (en) * | 1994-11-14 | 1996-05-15 | International Business Machines Corporation | Method and apparatus for adaptive circular predictive buffer management |
JPH08171456A (ja) * | 1994-12-20 | 1996-07-02 | Nec Software Ltd | パラレル入出力装置 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4926324A (en) | 1985-02-28 | 1990-05-15 | Hitachi, Ltd. | I/O control system and method |
US5034914A (en) | 1986-05-15 | 1991-07-23 | Aquidneck Systems International, Inc. | Optical disk data storage method and apparatus with buffered interface |
US5247646A (en) | 1986-05-15 | 1993-09-21 | Aquidneck Systems International, Inc. | Compressed data optical disk storage system |
JPH01171045A (ja) | 1987-12-26 | 1989-07-06 | Fujitsu Ltd | 外部記憶装置制御方式 |
JPH01194006A (ja) | 1988-01-29 | 1989-08-04 | Fanuc Ltd | フロッピィディスク駆動用モータの制御装置 |
US5146578A (en) | 1989-05-01 | 1992-09-08 | Zenith Data Systems Corporation | Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests |
JP2558906B2 (ja) | 1990-02-06 | 1996-11-27 | 松下電器産業株式会社 | 情報記録再生装置 |
JP2771683B2 (ja) * | 1990-07-17 | 1998-07-02 | 三菱電機株式会社 | 並列処理方式 |
US5247653A (en) | 1990-08-17 | 1993-09-21 | Seagate Technology, Inc. | Adaptive segment control and method for simulating a multi-segment cache |
CA2105085A1 (en) * | 1991-03-05 | 1992-09-06 | Marvin Lautzenheiser | Cache memory system and method of operating the cache memory system |
JPH0519973A (ja) | 1991-07-09 | 1993-01-29 | Alps Electric Co Ltd | データ転送装置 |
EP0551494A4 (en) | 1991-08-07 | 1995-03-01 | Adaptec Inc | Intelligent hardware for automatically reading and writing multiple sectors of data between a computer bus and a disk drive |
JPH05210468A (ja) | 1991-09-27 | 1993-08-20 | Olympus Optical Co Ltd | データ再生方法及び装置 |
GB2270791B (en) | 1992-09-21 | 1996-07-17 | Grass Valley Group | Disk-based digital video recorder |
US5543844A (en) * | 1992-11-25 | 1996-08-06 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for coding image data |
US5493667A (en) * | 1993-02-09 | 1996-02-20 | Intel Corporation | Apparatus and method for an instruction cache locking scheme |
KR100189230B1 (ko) | 1993-06-03 | 1999-06-01 | 이리마지리 쇼우이치로 | 디스크 재생장치 및 방법, 디스크 기록 방법 및 디스크 |
US5671386A (en) | 1993-09-23 | 1997-09-23 | Philips Electronics North America Corporation | System for storing data and for providing simultaneous plural access to data by connecting each access channel to each and every one of storage arrays |
US5539660A (en) | 1993-09-23 | 1996-07-23 | Philips Electronics North America Corporation | Multi-channel common-pool distributed data storage and retrieval system |
JP3422547B2 (ja) | 1993-12-28 | 2003-06-30 | 松下電器産業株式会社 | 映像記録再生方法 |
FR2721787B1 (fr) * | 1994-06-22 | 1996-07-26 | Thomson Consumer Electronics | Procédé de quantification des coefficients. |
US5768592A (en) * | 1994-09-27 | 1998-06-16 | Intel Corporation | Method and apparatus for managing profile data |
US5566177A (en) * | 1994-10-09 | 1996-10-15 | International Business Machines Corporation | Priority-based arbitrator on a token-based communication medium |
JP2611746B2 (ja) | 1994-12-19 | 1997-05-21 | 日本電気株式会社 | 入出力インタフェース装置及びその制御方法 |
JP3047771B2 (ja) * | 1995-03-05 | 2000-06-05 | 日本電気株式会社 | 分岐命令処理方法及び装置 |
US5787482A (en) | 1995-07-31 | 1998-07-28 | Hewlett-Packard Company | Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window |
US5715457A (en) * | 1995-10-06 | 1998-02-03 | Matsushita Electtic Industrial | Multiprocessor system for determining assignment of task in view of access time to storage resource |
US6400819B1 (en) * | 1996-03-28 | 2002-06-04 | Hitachi, Ltd. | Method and apparatus for executing communication in real-time and data structure for real-time data communication |
JP3462024B2 (ja) * | 1996-12-04 | 2003-11-05 | 株式会社東芝 | ネットワークシステムの伝送制御方法 |
US5901296A (en) * | 1996-12-06 | 1999-05-04 | International Business Machines Corporation | Distributed scheduling for the transfer of real time, loss sensitive and non-real time data over a bus |
US6047351A (en) * | 1997-12-12 | 2000-04-04 | Scenix Semiconductor, Inc. | Jitter free instruction execution |
-
1998
- 1998-02-09 US US09/020,929 patent/US6553476B1/en not_active Expired - Lifetime
- 1998-02-10 KR KR1019980003899A patent/KR100326656B1/ko active IP Right Grant
- 1998-02-10 EP EP98102282A patent/EP0858072A3/en not_active Withdrawn
- 1998-02-10 SG SG1998000281A patent/SG72788A1/en unknown
-
2001
- 2001-04-20 KR KR1020010021405A patent/KR100343005B1/ko active IP Right Grant
-
2002
- 2002-12-04 US US10/309,847 patent/US20030120871A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0093239A2 (en) * | 1982-04-30 | 1983-11-09 | International Business Machines Corporation | Lookahead I/O device control subsystem |
EP0712082A1 (en) * | 1994-11-14 | 1996-05-15 | International Business Machines Corporation | Method and apparatus for adaptive circular predictive buffer management |
JPH08171456A (ja) * | 1994-12-20 | 1996-07-02 | Nec Software Ltd | パラレル入出力装置 |
Also Published As
Publication number | Publication date |
---|---|
US20030120871A1 (en) | 2003-06-26 |
KR100343005B1 (ko) | 2002-07-03 |
US6553476B1 (en) | 2003-04-22 |
EP0858072A2 (en) | 1998-08-12 |
EP0858072A3 (en) | 2000-06-21 |
SG72788A1 (en) | 2000-05-23 |
KR19980071241A (ko) | 1998-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100326656B1 (ko) | 기록재생장치 | |
US5987479A (en) | Large block allocation for disk-based file systems | |
JP3018966B2 (ja) | 記録再生装置 | |
JP5621909B2 (ja) | 情報処理装置、ストレージシステムおよび書き込み制御方法 | |
US5537552A (en) | Apparatus for selectively comparing pointers to detect full or empty status of a circular buffer area in an input/output (I/O) buffer | |
US20010047451A1 (en) | Method and apparatus for disc drive defragmentation | |
WO2005015406A1 (ja) | 半導体メモリカード、アクセス装置及びアクセス方法 | |
US7747144B2 (en) | Information processing apparatus, information processing method, recording medium, control | |
US20170344269A1 (en) | Storage system, control apparatus, and method of transmitting data | |
US7315922B2 (en) | Disk array apparatus, information processing apparatus, data management system, method for issuing command from target side to initiator side, and computer product | |
JPH08263335A (ja) | データ記憶装置 | |
US7620750B2 (en) | Time budgeting by determining status of a streaming buffer during an autonomous non-data transfer operations in drive units | |
JP3421898B2 (ja) | データ記録装置およびデータ管理方法 | |
JP2017049897A (ja) | ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法 | |
US8576675B2 (en) | Data library apparatus, data archive system and server | |
JPH10124352A (ja) | ライブラリ内ファイルの管理方法、及びライブラリ用サーバ装置 | |
JP3127796B2 (ja) | 情報記録再生装置 | |
JP4061563B2 (ja) | 磁気ディスク装置、磁気ディスク装置のディスクアクセス方法、及び磁気ディスク装置用ディスクアクセス制御プログラム記録媒体 | |
JPH10222310A (ja) | 記録再生装置 | |
US6745300B1 (en) | Magnetic disk device and disk access method therefor | |
CN114296644A (zh) | 一种固态硬盘的数据管理方法和装置 | |
US20100241802A1 (en) | Storage unit, data write method and data write program | |
KR20030061948A (ko) | 정보 저장 장치 및 그를 이용한 파일 관리 방법 | |
JPH10333984A (ja) | 記録再生装置 | |
US20060020751A1 (en) | Medium storage device, cache segment switching method for medium storage device, and medium storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
A107 | Divisional application of patent | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130130 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20140204 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20150120 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20160105 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20170103 Year of fee payment: 16 |