KR100386348B1 - A circuit for aligning logical sectors with physical sectors in a disk storage system - Google Patents

A circuit for aligning logical sectors with physical sectors in a disk storage system Download PDF

Info

Publication number
KR100386348B1
KR100386348B1 KR10-2000-0033403A KR20000033403A KR100386348B1 KR 100386348 B1 KR100386348 B1 KR 100386348B1 KR 20000033403 A KR20000033403 A KR 20000033403A KR 100386348 B1 KR100386348 B1 KR 100386348B1
Authority
KR
South Korea
Prior art keywords
data stream
logical
data
length
physical
Prior art date
Application number
KR10-2000-0033403A
Other languages
Korean (ko)
Other versions
KR20010007418A (en
Inventor
스틸찰스리
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20010007418A publication Critical patent/KR20010007418A/en
Application granted granted Critical
Publication of KR100386348B1 publication Critical patent/KR100386348B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1232Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc sector, i.e. the minimal addressable physical data unit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1288Formatting by padding empty spaces with dummy data, e.g. writing zeroes or random data when de-icing optical discs

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)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

논리 섹터 포맷과 물리 섹터 포맷 사이의 데이터 변환을 관리하는 회로가 개시된다. 패딩 모드에서, 이 회로는 논리 길이를 갖는 논리 섹터 포맷의 데이터 스트림에 패딩값을 추가함으로써, 물리 길이를 갖는 물리 섹터 포맷의 데이터 스트림을 발생시킨다. 추출 모드에서, 이 회로는 물리 섹터 포맷의 데이터 스트림으로부터 논리 섹터 포맷의 데이터 스트림을 추출해 낸다.A circuit for managing data conversion between a logical sector format and a physical sector format is disclosed. In the padding mode, this circuit generates a data sector in physical sector format having a physical length by adding a padding value to the data stream in a logical sector format having a logical length. In the extraction mode, this circuit extracts the data stream in logical sector format from the data stream in physical sector format.

Description

패딩 데이터 추가 및 추출 회로{A CIRCUIT FOR ALIGNING LOGICAL SECTORS WITH PHYSICAL SECTORS IN A DISK STORAGE SYSTEM}Padding data addition and extraction circuit {A CIRCUIT FOR ALIGNING LOGICAL SECTORS WITH PHYSICAL SECTORS IN A DISK STORAGE SYSTEM}

본 발명은 디스크 저장 시스템에 관한 것으로, 더 구체적으로는 물리 섹터의 경계(boundary of physical sector)에 대해 논리 섹터의 경계(boundary of logical sector)를 맞추기(align) 위해 논리 섹터에 대해 패딩 데이터(padding data)를 추가(appending) 및 추출(extracting)하는 회로에 관한 것이다.The present invention relates to a disk storage system, and more particularly to padding the logical sectors to align the boundaries of the logical sectors with the boundaries of the physical sectors. A circuit for appending and extracting data is provided.

전형적인 디스크 저장 시스템상에서 데이터는 물리 섹터로 편성되는데, 이 때 각각의 물리 섹터는 사전 정의된 개수의 연속적인 바이트를 포함하고 있다. 데이터가 디스크 드라이브에 기록되거나 또는 디스크 드라이브로부터 판독될 때, 전송되는 데이터의 양은 반드시 물리 섹터의 단위로 전송되어야 하고, 모든 데이터 전송은 반드시 물리 섹터의 경계에서 시작 및 종료해야 한다. 예를 들어, 물리 섹터가 514 바이트로 이루어진다면, 데이터 전송은 514 바이트, 1028 바이트, 1542 바이트로 이루어질 수 있다.In a typical disk storage system, data is organized into physical sectors, where each physical sector contains a predefined number of consecutive bytes. When data is written to or read from the disk drive, the amount of data to be transferred must be transmitted in units of physical sectors, and all data transfers must begin and end at the boundary of the physical sector. For example, if the physical sector consists of 514 bytes, the data transfer may consist of 514 bytes, 1028 bytes, 1542 bytes.

프로세서가 디스크 드라이브를 액세스할 때, 예를 들면, 프로세서가 파일을 기록할 때, 프로세서는 아마 정확히 하나의 물리 섹터 또는 그 정수 배의 물리 섹터에 대해 동작할 필요가 없을 것이다. 대신에, 프로세서는 아마도 예를 들어 514 바이트, 1028 바이트, 1542 바이트 등이 아닌 양의 데이터를 필요로 할 것이다.When a processor accesses a disk drive, for example when the processor writes a file, the processor probably does not need to operate on exactly one physical sector or an integer multiple of that sector. Instead, the processor probably needs an amount of data that is not, for example, 514 bytes, 1028 bytes, 1542 bytes, or the like.

프로세서와 데이터 저장 시스템간에 데이터를 전송하는 상황에서, 프로세서에 의해 조작되는 데이터는 논리 섹터로 불린다. 전술한 바와 같이, 논리 섹터의 경계는 통상적으로 물리 섹터의 경계와 일치하지 않는다. 따라서, 데이터 전송은 종종 실제로 프로세서에 의해 이용되는 것보다 더 많은 데이터의 조작을 수반한다.In the situation of transferring data between a processor and a data storage system, the data manipulated by the processor is called a logical sector. As mentioned above, the boundaries of logical sectors typically do not coincide with the boundaries of physical sectors. Thus, data transfer often involves manipulating more data than is actually used by the processor.

디스크 저장 시스템의 설계 목표는 기록 밀도(recording density)와 처리량(throughput)을 최대화하는 것을 포함한다. 기록 밀도는 디스크 저장 시스템의 전체 메모리 용량에 대해 유효 데이터가 점유하는 메모리의 비율(ratio)이다. 처리량은 특정 시간 동안 시스템에 의해 처리되는 전체 작업량의 측정치이다.Design goals for disk storage systems include maximizing recording density and throughput. The write density is the ratio of the memory occupied by the valid data to the total memory capacity of the disk storage system. Throughput is a measure of the overall throughput handled by the system for a particular time.

다음의 특허들은 기록 밀도와 처리량을 최대화하려고 시도한 대표적인 종래 기술이다. 일반적으로, 이들은 디스크 드라이브상의 데이터를 편성하거나 또는 논리 및 물리 섹터 경계들의 불일치(misalignment)를 처리하는 시스템 또는 방법 측면을 다룬다.The following patents are representative prior art attempts to maximize recording density and throughput. In general, they address system or method aspects of organizing data on disk drives or handling misalignment of logical and physical sector boundaries.

발명의 명칭이 "Variable Zone Layout For Information Storage Disk Drive"인 에모 등(Emo et al.)의 미국 특허 제 5,596,458호는 다수의 디스크 표면을 갖는 디스크에 대한 각각의 판독/기록 헤드의 성능 특성을 측정함으로써 기록 밀도를 개선하는 방법 및 시스템을 기술한다. 존(zone) 경계는 성능 특성에 근거하여, 그리고 데이터가 특정 존에 대해 판독 및 기록되는 빈도(frequency)에 근거하여 각각의 디스크 표면에 대해 설정된다. 디스크의 표면상의 존 경계가 반드시 수직적으로 정렬될 필요는 없을 것이다. 기록 밀도는 사전 정의된 수준보다 더 낮은 성능 특성을 갖는 판독/기록 헤드의 판독/기록 빈도를 줄임으로써 개선된다.US Patent No. 5,596,458 to Emo et al., Entitled "Variable Zone Layout For Information Storage Disk Drive," measures the performance characteristics of each read / write head for a disk having multiple disk surfaces. By this, a method and system for improving recording density are described. Zone boundaries are established for each disk surface based on performance characteristics and based on the frequency with which data is read and written for a particular zone. Zone boundaries on the surface of the disk may not necessarily be vertically aligned. The write density is improved by reducing the read / write frequency of the read / write head with lower performance characteristics than the predefined level.

발명의 명칭이 "Multi-Drive Virtual Mass Storage Device And Method Of Operating Same"인 클라인 등(Klein et al.)의 미국 특허 제 5,671,439호는 상이한 물리 장치에 대해 할당되는 블록들로 편성되는 가상의 대용량 저장 장치(virtual mass storage device)를 기술한다. 물리 장치는 가상 장치의 총 전송율을 증가시키기 위해 병렬로 동작한다.US Pat. No. 5,671,439 to Klein et al., Entitled "Multi-Drive Virtual Mass Storage Device And Method Of Operating Same," describes a virtual mass storage organized into blocks that are allocated for different physical devices. Describe a virtual mass storage device. Physical devices operate in parallel to increase the total data rate of the virtual device.

발명의 명칭이 "Changing Page Size In Storage Media Of Computer System"인 맨지스 등(Manges et al.)의 미국 특허 제 5,765,201호는 데이터가 헤더에 의해 정의되는 블록 혹은 섹터에 저장되는 시스템에 적용되는 발명을 기술한다. 메모리 대상과 세그먼트를 정의하고, 물리 메모리에 가상 메모리 어드레스를 지정하기 위해 테이블이 이용된다. 헤더와 테이블은 물리 메모리의 섹터 혹은 페이지내의 모든 데이터를 재기록함이 없이 변경될 수 있다. 따라서, 페이지 사이즈 역시 새로운 시스템 구성 요소를 수용하도록 변경될 수 있다.U.S. Patent No. 5,765,201 to Manges et al., Entitled " Changing Page Size In Storage Media Of Computer System ", applies to a system in which data is stored in blocks or sectors defined by headers. Describe. Tables are used to define memory destinations and segments, and to assign virtual memory addresses to physical memory. Headers and tables can be changed without rewriting all data in sectors or pages of physical memory. Thus, the page size can also be changed to accommodate new system components.

발명의 명칭이 "Hardware Alignment In A Headerless Disk Drive Architecture"인 쿠울 등(Kool et al.)의 미국 특허 제 5,802,584호는 디스크 드라이브의 물리 섹터로의 데이터 전송 및 물리 섹터로부터의 데이터 전송을 제어하는 시스템을 개시한다. 이 시스템은 이벤트 제어 워드(event control word)를 디코딩하는 디스크 콘트롤러(disk controller)와, 판독/기록 헤드가 디스크상에서 섹터를 통과할 때마다 증가하는 카운터(counter)를 포함한다. 카운터는 헤드가 위치되어 있는 데이터 프레임을 표시함으로써 판독/기록 헤드의 위치를 나타낸다. 정렬 프로세서(alignment processor)는 카운터에 의해 표시되는 데이터 프레임에 대응하는 제어 워드를 찾기 위해 제어 워드를 주사(scan)한다. 주사하는 동안, 정렬 프로세서는 또한 판독/기록 헤드의 위치에 의해 표시되는 논리 및 물리 섹터 카운터를 정렬한다. 그 이후, 디스크 콘트롤러는 정렬된 값들을 이용하여 제어 워드를 디코딩하고 데이터 전송을 제어하기 시작한다.U.S. Patent No. 5,802,584 to Kool et al., Entitled "Hardware Alignment In A Headerless Disk Drive Architecture," discloses a system for controlling data transfer to and from data sectors of a disk drive. Initiate. The system includes a disk controller that decodes an event control word and a counter that increments as the read / write head passes through the sectors on the disk. The counter indicates the position of the read / write head by indicating the data frame in which the head is located. An alignment processor scans the control word to find the control word corresponding to the data frame indicated by the counter. During the scan, the alignment processor also aligns the logical and physical sector counters indicated by the position of the read / write head. Thereafter, the disk controller uses the aligned values to begin decoding the control word and controlling the data transfer.

발명의 명칭이 "System And Method For Providing Variable Sector-Format Operation To A Disk Access System"인 머피 등(Murphy et al.)의 미국 특허 제 5,813,025호는 사전 정의된 논리 섹터 포맷과 가변 물리 섹터 포맷 사이에서 I/O 요구를 처리하는 시스템 및 방법을 기술한다. 판독 동작이 물리 섹터의 중앙에서 시작한 경우, 첫 번째 논리 섹터의 앞에 있는 데이터는 폐기되고, 사용자 요청 데이터(user request data)는 사용자 버퍼에 저장된다. 기록 동작이 물리 섹터의 중앙에 위치된 논리 섹터에 대한 것일 경우, 물리 섹터는 논리 섹터에 대한 기록 요구에 따라 판독 및 수정된 뒤, 완전한 물리 섹터로서 디스크에 다시 기록된다. 버퍼는, 디스크에 다시 기록되기 이전에 판독된 뒤 수정되는 데이터를 유지하기 위해 보존된다.Murphy et al., US Pat. No. 5,813,025, entitled "System And Method For Providing Variable Sector-Format Operation To A Disk Access System," describes a pre-defined logical sector format and a variable physical sector format. Describes a system and method for handling I / O requests. When the read operation starts at the center of the physical sector, the data before the first logical sector is discarded, and user request data is stored in the user buffer. If the write operation is for a logical sector located in the center of the physical sector, the physical sector is read and modified in accordance with the write request for the logical sector and then written back to the disk as a complete physical sector. The buffer is preserved to hold data that is modified after being read before being written back to disk.

도 1은 종래 기술에 따른 논리 섹터와 물리 섹터 사이의 관계를 예시한다. 디스크 드라이브상의 데이터 스트림(data stream)은 각각 514 바이트인 물리 섹터1∼128로 편성(organized)되는데, 이것은 각각 2054 바이트인 논리 섹터 #1∼#32를 갖고 있다.1 illustrates a relationship between a logical sector and a physical sector according to the prior art. The data stream on the disk drive is organized into physical sectors 1-128, which are 514 bytes each, which have logical sectors # 1, # 32, which are 2054 bytes each.

논리 섹터 #1∼#32는 연속적인 데이터 스트림으로서 프로세서로부터 디스크 드라이브에 기록된 것으로, 즉, 논리 섹터 사이에 갭(gap)이나 충전 문자(filler)가 없이 기록된 것이다. 이것은 기록 밀도를 개선하기 위해 이용되는 기법으로, 유효한 데이터(valid occurrence of data) 사이에 무효(invalid) 혹은 초과(excess) 데이터의 존재와 같은 요인에 의해 악영향을 받는다.Logical sectors # 1 through # 32 are serial data streams written from a processor to a disk drive, i.e., without gaps or fillers between logical sectors. This is a technique used to improve the recording density, which is adversely affected by factors such as the presence of invalid or excess data between valid occurrences of data.

4개의 물리 섹터는 총 2056 바이트의 길이이고, 각각의 2054 바이트의 논리 섹터를 수용하기 위해서는 4개의 물리 섹터가 요구됨을 유의하자. 예를 들어, 논리 섹터 #1이 물리 섹터 1-4에 존재한다. 2056 바이트 길이의 4개의 물리 섹터는 2054 바이트 길이의 논리 섹터보다 2 바이트 더 크므로, 물리 섹터 4의 끝(end)으로부터 2 바이트 이전에 논리 섹터 #1이 종료하고 논리 섹터 #2가 시작한다. 다음, 논리 섹터 #2는 물리 섹터 8의 끝보다 4 바이트 앞서 종료한다. 즉, 논리 섹터 #2는 물리 섹터 4의 바이트 512에서 시작해서 물리 섹터 8의 바이트 510에서 종료한다. 이러한 2 바이트 차이는 누적되어, 논리 섹터 #32는 물리 섹터 128의 종료 경계로부터 64 바이트(즉, 32 ×2 바이트) 이전에 종료한다.Note that four physical sectors are 2056 bytes in total, and four physical sectors are required to accommodate each 2054 byte logical sector. For example, logical sector # 1 is in physical sectors 1-4. Since four physical sectors of 2056 bytes in length are two bytes larger than a logical sector of 2054 bytes in length, logical sector # 1 ends and logical sector # 2 starts two bytes before the end of physical sector four. Logical sector # 2 then ends 4 bytes ahead of the end of physical sector 8. That is, logical sector # 2 starts at byte 512 of physical sector 4 and ends at byte 510 of physical sector 8. This two-byte difference accumulates so that logical sector # 32 ends 64 bytes (ie, 32 x 2 bytes) before the end boundary of physical sector 128.

32개의 논리 섹터의 데이터 스트림을 디스크 드라이브에 기록할 때, 프로세서는 논리 섹터 #32의 끝에 64 바이트의 패딩 데이터를 추가해야 한다. 기록 동작이 끝나면, 디스크 드라이브는 인터럽트(105)를 프로세서에게 발행한다. 인터럽트(105)를 수신한 후, 프로세서는 32개 논리 섹터로 이루어진 또다른 집합을 디스크 드라이브로 보낸다.When writing a data stream of 32 logical sectors to a disk drive, the processor must add 64 bytes of padding data to the end of logical sector # 32. When the write operation is finished, the disk drive issues an interrupt 105 to the processor. After receiving the interrupt 105, the processor sends another set of 32 logical sectors to the disk drive.

논리 및 물리 섹터간의 관계의 미세한 차이는 디스크 드라이브로부터 데이터를 판독할 때 더욱 더 명확해진다. 예를 들면, 프로세서가 논리 섹터 #2를 판독하고자 하는 것으로 가정하자. 프로세서는 논리 섹터 #2의 어드레스를 결정하고 이것이 물리 섹터 4의 바이트 512에서 시작하여 물리 섹터 8의 바이트 510에서 종료하는 것을 인지해야 한다. 디스크 드라이브는 오로지 물리 섹터의 단위로만 데이터를 전송할 수 있고 모든 데이터 전송은 물리 섹터의 경계에서 시작 및 종료해야 하므로, 디스크 드라이브는 물리 섹터 4∼8에 포함된 모든 데이터를 판독해야만 한다. 그 다음에, 프로세서는 초과 데이터(excess data)를 폐기해야 한다. 특히, 물리 섹터 4의 바이트 1∼511의 데이터와 물리 섹터 8의 바이트 513 및 514의 데이터를 폐기해야 한다. 논리 섹터가 물리 섹터와 정렬되지 않은 도 1에 도시된 것과 같은 시스템이 갖는 문제중 하나는 초과 데이터의 조작이 시스템의 총 처리량을 감소시킨다는 것이다.Minor differences in the relationship between logical and physical sectors become even more apparent when reading data from a disk drive. For example, assume that the processor wants to read logical sector # 2. The processor must determine the address of logical sector # 2 and recognize that it starts at byte 512 of physical sector 4 and ends at byte 510 of physical sector 8. Since the disk drive can only transfer data in units of physical sectors, and all data transfers must start and end at the boundary of the physical sector, the disk drive must read all data contained in the physical sectors 4-8. The processor must then discard the excess data. In particular, data of bytes 1 to 511 of physical sector 4 and data of bytes 513 and 514 of physical sector 8 should be discarded. One of the problems with a system such as that shown in FIG. 1 in which logical sectors are not aligned with physical sectors is that manipulation of excess data reduces the total throughput of the system.

논리 및 물리 섹터 경계의 불일치를 다루는 또 다른 종래 기법은 논리 섹터의 길이가 물리 섹터의 길이까지 확장되도록 각각의 논리 섹터를 패딩하는 것이다. 이런 조작이 비교적 간단하기는 해도, 통상적으로 소프트웨어로 구현되며, 이러한 구현은 이후에 논의되는 결과를 동반한다.Another conventional technique for dealing with inconsistencies in logical and physical sector boundaries is to pad each logical sector so that the length of the logical sector extends to the length of the physical sector. Although this operation is relatively simple, it is typically implemented in software, which implementation is accompanied by the results discussed later.

도 2는 소프트웨어를 이용해 논리 섹터를 패딩하는 것을 예시한다. 디스크 드라이브상의 데이터 스트림은 각각 514 바이트인 물리 섹터 1∼128로 편성되고, 이것은 각각 2054 바이트인 논리 섹터 #1∼#32를 갖는다. 각각 2054 바이트인 논리 섹터를 수용하기 위해서는 총 2056 바이트 길이인 4개의 물리 섹터가 필요하다. 예를 들어, 논리 섹터 #1은 물리 섹터 1∼4에 존재한다. 2056 바이트 길이인 물리 섹터 1∼4는 2054 바이트 길이인 논리 섹터 #1보다 2 바이트 더 크므로, 논리 섹터 #1은 물리 섹터 4의 끝에서부터 2 바이트 앞서 종료한다. 이 2 바이트는 논리 섹터 #1의 끝에 소프트웨어에 의해 추가되는 패딩 데이터(205)로 채워진다. 논리 섹터 #2의 시작은 물리 섹터 5의 시작과 일치한다.2 illustrates padding of logical sectors using software. The data streams on the disk drive are organized into physical sectors 1 through 128, which are each 514 bytes, which have logical sectors # 1 through # 32, which are each 2054 bytes. To accommodate logical sectors that are 2054 bytes each, four physical sectors of 2056 bytes in total are needed. For example, logical sector # 1 exists in physical sectors 1-4. Since physical sectors 1 through 4 that are 2056 bytes long are two bytes larger than logical sector # 1 that is 2054 bytes long, logical sector # 1 ends two bytes from the end of physical sector 4. These two bytes are filled with padding data 205 added by software at the end of logical sector # 1. The start of logical sector # 2 coincides with the start of physical sector 5.

도 2에 표시된 데이터 스트림은 연속적인 데이터 스트림이 아니다. 기록 동작 동안, 프로세서는 논리 섹터 #1을 위해 2054 바이트의 데이터를 준비하고, 2 바이트의 패딩 데이터(205)를 추가한 뒤, 이 데이터를 디스크 드라이브로 보낸다. 기록 동작이 종료하면, 디스크 드라이브는 인터럽트(210)를 프로세서에게 발행한다. 인터럽트(210)를 수신한 후, 프로세서는 데이터(215)가 추가된 논리 섹터 #2를 디스크 드라이브로 보낸다. 이러한 기록 동작을 마치면, 디스크 드라이브는 프로세서에게 인터럽트(220)를 발행한다.The data stream shown in FIG. 2 is not a continuous data stream. During a write operation, the processor prepares 2054 bytes of data for logical sector # 1, adds two bytes of padding data 205, and sends this data to the disk drive. When the write operation ends, the disk drive issues an interrupt 210 to the processor. After receiving the interrupt 210, the processor sends logical sector # 2 to which the data 215 has been added to the disk drive. Upon completion of this write operation, the disk drive issues an interrupt 220 to the processor.

인터럽트 핸들러(interrupt handlers)는 다른 태스크로부터 프로세서를 전용(divert)하며, 종종 인터럽트를 처리하도록 준비하는데 상당한 오버헤드(overhead)를 갖는다. 도 2에 도시한 것처럼, 소프트웨어로 논리 섹터의 끝에 패딩 데이터를 추가하는 시스템이 갖는 문제중 하나는 기록 동작이 종료할 때마다 디스크 드라이브가 프로세서를 인터럽트한다는 것이다.Interrupt handlers divert the processor from other tasks and often have significant overhead in preparing to handle the interrupt. As shown in FIG. 2, one of the problems with systems that add padding data to the end of logical sectors in software is that the disk drive interrupts the processor every time a write operation ends.

따라서, 본 발명의 목적은 디스크 드라이브에 기록할 때 논리 섹터의 끝 경계를 물리 섹터의 끝 경계에 맞추기 위해 논리 섹터에 패딩 데이터를 추가하되, 이것을 하드웨어로 구현하는 개선된 시스템을 제공하는 것이다.Accordingly, it is an object of the present invention to provide an improved system that adds padding data to a logical sector in order to align the end boundary of the logical sector with the end boundary of the physical sector when writing to the disk drive, but implements it in hardware.

본 발명의 다른 목적은 하드 드라이브로부터 데이터를 판독할 때 논리 섹터를 산출하기 위해 물리 섹터로부터 패딩 데이터를 제거하되, 이것을 하드웨어로 구현하는 개선된 시스템을 제공하는 것이다.Another object of the present invention is to provide an improved system for removing padding data from a physical sector to produce a logical sector when reading data from a hard drive, but implementing it in hardware.

본 발명의 또 다른 목적은 가변 길이의 패딩 데이터를 추가 및 추출함으로써 논리 및 물리 섹터가 가변 길이를 갖도록 하되, 이것을 하드웨어로 구현하는 개선된 시스템을 제공하는 것이다.It is yet another object of the present invention to provide an improved system that adds and extracts variable length padding data so that logical and physical sectors have variable lengths, but implements them in hardware.

본 발명에 따르면, 소정의 회로가 논리 섹터 포맷과 물리 섹터 포맷 사이에 데이터의 변환을 관리한다. 패딩 모드에서, 이 회로는 논리 데이터 스트림(이 스트림의 논리 섹터는 소정의 논리 길이를 가짐)에 패딩값을 추가하여, 물리 데이터 스트림(이 스트림의 물리 섹터는 소정의 물리 길이를 가짐)을 만든다. 추출 모드에서는, 이 회로가 물리 데이터 스트림으로부터 논리 데이터 스트림을 추출한다.According to the present invention, a predetermined circuit manages the conversion of data between a logical sector format and a physical sector format. In the padding mode, this circuit adds padding values to the logical data stream (the logical sector of the stream has a predetermined logical length) to create a physical data stream (the physical sector of the stream has a predetermined physical length). . In the extraction mode, this circuit extracts the logical data stream from the physical data stream.

패딩 모드에서, 이 회로는 스위치, 논리 길이 카운터(logical length counter), 물리 길이 카운터(physical length counter), 콘트롤러를 포함한다. 스위치는 논리 데이터 스트림을 수신하는 입력과, 패딩값을 수신하는 입력과, 물리 데이터 스트림을 전송하는 출력을 갖는다. 논리 길이 카운터는 논리 데이터 스트림의 바이트를 계수하고, 물리 길이 카운터는 물리 데이터 스트림의 바이트를 계수한다. 콘트롤러는 논리 길이가 계수될 때까지 논리 데이터 스트림을 선택하도록 스위치를 제어하고, 물리 길이가 계수될 때까지는 패딩값을 선택하도록 스위치를 제어한다.In padding mode, this circuit includes a switch, a logical length counter, a physical length counter, and a controller. The switch has an input for receiving a logical data stream, an input for receiving a padding value, and an output for transmitting a physical data stream. The logical length counter counts bytes of the logical data stream, and the physical length counter counts bytes of the physical data stream. The controller controls the switch to select a logical data stream until the logical length is counted, and the switch to select a padding value until the physical length is counted.

추출 모드에서, 이 회로는 데이터 래치(data latch), 논리 길이 카운터, 물리 길이 카운터를 포함한다. 데이터 래치는 물리 데이터 스트림을 수신하는 입력과, 논리 데이터 스트림을 전송하는 출력을 갖는다. 논리 길이 카운터는 논리 데이터 스트림의 바이트를 계수하고, 물리 길이 카운터는 물리 데이터 스트림의 바이트를 계수한다. 콘트롤러는 논리 길이가 계수될 때까지 데이터 래치가 물리 데이터 스트림을 수신하도록 만들고, 물리 길이가 계수될 때까지는 데이터 래치를 동작 불능으로 만든다.In the extraction mode, the circuit includes a data latch, a logic length counter, and a physical length counter. The data latch has an input for receiving a physical data stream and an output for transmitting a logical data stream. The logical length counter counts bytes of the logical data stream, and the physical length counter counts bytes of the physical data stream. The controller causes the data latch to receive the physical data stream until the logical length is counted and disables the data latch until the physical length is counted.

도 1은 종래의 일치되지 않는 논리 및 물리 섹터를 예시하는 도면,1 illustrates a conventional mismatched logical and physical sector;

도 2는 종래 기술에 따라 소프트웨어로 논리 섹터를 패딩하는 것을 예시하는 도면,2 illustrates padding logical sectors in software according to the prior art;

도 3a 및 도 3b는 본 발명에 따라 하드웨어로 논리 섹터를 패딩하는 것을 보여주는 도면,3A and 3B illustrate padding logical sectors in hardware in accordance with the present invention;

도 4는 본 발명에 따라 논리 섹터에 대해 패딩값을 추가 및 추출하는 논리 회로의 개략도,4 is a schematic diagram of a logic circuit for adding and extracting padding values for a logical sector in accordance with the present invention;

도 5는 본 발명에 따라 논리 섹터에 패딩값을 추가하는 하드웨어에 의한 카운터의 이용을 도시하는 도면,5 illustrates the use of a counter by hardware to add padding values to logical sectors in accordance with the present invention;

도 6은 본 발명에 따라 물리 섹터로부터 논리 섹터를 추출하는 하드웨어에 의한 카운터의 이용을 도시하는 도면.6 illustrates the use of a counter by hardware to extract logical sectors from physical sectors in accordance with the present invention.

도면의 주요 부분에 대한 부호의 설명Explanation of symbols for the main parts of the drawings

404 : 논리 섹터 길이 레지스터 406 : 물리 섹터 길이 레지스터404: logical sector length register 406: physical sector length register

408 : 섹터 레지스터/카운터 410 : 패드값 레지스터408: sector register / counter 410: pad value register

412 : 논리 길이 카운터 414 : 물리 길이 카운터412 logical length counter 414 physical length counter

426, 428, 430 : 0 검출기 424 : 제어 로직426, 428, 430: 0 detector 424: control logic

448, 458, 452, 460 : 데이터 래치 450 : 패드/데이터 다중화기448, 458, 452, 460: data latch 450: pad / data multiplexer

454 : 메모리 인터페이스454 memory interface

본 발명은 물리 섹터의 경계에 대해 논리 섹터의 경계를 정렬하기 위해 논리 섹터로/로부터 패딩 데이터를 추가/추출하는 회로를 개시한다. 먼저, 회로의 개념적인 동작이 도 3a 및 도 3b의 논의에서 설명된다. 그 뒤, 회로 그 자체에 대해서는 도 4 내지 도 6에 대한 논의에서 설명된다.The present invention discloses a circuit for adding / extracting padding data to / from a logical sector to align a logical sector's border with respect to a physical sector's border. First, the conceptual operation of the circuit is described in the discussion of FIGS. 3A and 3B. The circuit itself is then described in the discussion of FIGS. 4 to 6.

도 3a 및 도 3b는 본 발명에 따라 하드웨어로 논리 섹터를 패딩하는 것을 도시한다. 도 3a는 일반적인 경우를, 도 3b는 본 발명의 예시적인 적용을 도시한다.3A and 3B illustrate padding logical sectors in hardware in accordance with the present invention. 3A shows a general case and FIG. 3B shows an exemplary application of the invention.

도 3a에서, 디스크 드라이브상의 데이터 스트림은 물리 섹터 1∼32로 편성되고, 이것은 프로세서로부터 발행된 데이터의 논리 섹터 1∼32를 보유한다. 패딩 데이터는 각각의 논리 섹터의 끝에 추가되어, 다음 논리 섹터의 시작을 다음 물리 섹터의 시작에 맞춘다. 예를 들어, 패딩 데이터(310)가 논리 섹터 #1에 추가되어, 논리 섹터 #2의 시작을 물리 섹터 #2의 시작에 맞춘다. 패딩 데이터는 프로세서와 디스크 드라이브 사이에 동작적으로 위치된 회로에 의해 각각의 논리 섹터에 추가된다.In Fig. 3A, data streams on a disk drive are organized into physical sectors 1 to 32, which hold logical sectors 1 to 32 of data issued from the processor. Padding data is added at the end of each logical sector to align the beginning of the next logical sector with the beginning of the next physical sector. For example, padding data 310 is added to logical sector # 1 to align the beginning of logical sector # 2 with the beginning of physical sector # 2. Padding data is added to each logical sector by circuitry operatively located between the processor and the disk drive.

기록 동작 동안, 프로세서는 논리 섹터 1∼32를 연속 데이터 스트림으로서 준비한다. 프로세서는 이 데이터 스트림을 전술한 회로에 발행한다. 이 회로는 데이터 스트림을 디스크 드라이브로 전송하고, 각각의 논리 섹터의 끝에 패딩 데이터를 추가한다. 디스크 드라이브는 회로로부터 데이터 스트림을 수신하면 이 데이터 스트림을 기록한다. 모든 데이터 스트림을 기록한 후, 디스크 드라이브는 인터럽트(350)를 프로세서에게 발행한다. 그 이후에 프로세서는 회로에 대해 다른 데이터 스트림을 발행할 수도 있다.During the write operation, the processor prepares logical sectors 1 to 32 as a continuous data stream. The processor issues this data stream to the circuit described above. This circuit transfers the data stream to the disk drive and adds padding data to the end of each logical sector. The disk drive writes this data stream when it receives the data stream from the circuit. After writing all the data streams, the disk drive issues an interrupt 350 to the processor. Thereafter, the processor may issue another data stream for the circuit.

본 발명은 프로세서의 소프트웨어가 아닌 회로에 의해 구현되므로, 여러 번의 인터럽트를 처리하는 종래 기술의 문제가 다소 해결되어, 시스템 처리량이 향상된다.Since the present invention is implemented by circuitry rather than software of the processor, the problem of the prior art of handling multiple interrupts is somewhat solved, resulting in improved system throughput.

도 3b는 특정 응용에서 본 발명을 실행하는 것을 예시한다. 디스크 드라이브 상의 데이터 스트림은 각각 514 바이트인 물리 섹터 1∼128로 편성되고, 이것은 각각 2054 바이트인 논리 섹터 #1∼#32를 포함한다. 총 2056 바이트 길이인 4개의 물리 섹터는 각각 2054 바이트인 논리 섹터를 수용하는 것이 요구된다. 예를 들어, 논리 섹터 #1은 물리 섹터 1∼4에 존재한다. 2056 바이트 길이인 물리 섹터 1∼4는 2054 바이트 길이인 논리 섹터 #1보다 2 바이트 더 크므로, 논리 섹터 #1은 물리 섹터 4의 끝에서부터 2 바이트 앞서 종료한다. 본 발명에 따른 회로는 논리 섹터 #1의 끝에 2 바이트의 패딩 데이터를 추가하여, 논리 섹터 #2의 시작이 물리 섹터 #5의 시작과 일치하도록 만든다. 마찬가지로, 논리 섹터 #2는 물리 섹터 8의 끝에서부터 2 바이트 앞서 종료한다. 회로는 논리 섹터 #2의 끝에 2 바이트의 패딩 데이터를 추가하여, 논리 섹터 #3의 시작이 물리 섹터 #9의 시작과 일치하도록 만든다.3B illustrates implementing the invention in a particular application. The data streams on the disk drive are organized into physical sectors 1 through 128, which are 514 bytes each, and include logical sectors # 1 through # 32, which are each 2054 bytes. Four physical sectors totaling 2056 bytes in length are required to accommodate logical sectors of 2054 bytes each. For example, logical sector # 1 exists in physical sectors 1-4. Since physical sectors 1 through 4 that are 2056 bytes long are two bytes larger than logical sector # 1 that is 2054 bytes long, logical sector # 1 ends two bytes from the end of physical sector 4. The circuit according to the present invention adds two bytes of padding data to the end of logical sector # 1 so that the start of logical sector # 2 coincides with the start of physical sector # 5. Similarly, logical sector # 2 ends two bytes ahead from the end of physical sector eight. The circuit adds two bytes of padding data to the end of logical sector # 2 so that the start of logical sector # 3 coincides with the start of physical sector # 9.

기록 동작 동안, 프로세서는 논리 섹터 #1∼#32를 연속 데이터 스트림으로서 마련한다. 프로세서는 이 회로에 데이터 스트림을 발행한다. 회로는 이 데이터 스트림을 디스크 드라이브로 보내고, 각각의 논리 섹터의 끝에 2 바이트의 패딩 데이터를 추가한다. 디스크 드라이브는 회로로부터 수신되는 대로 데이터 스트림을 기록한다. 모든 데이터 스트림을 기록한 후, 디스크 드라이브는 프로세서에게 인터럽트(350a)를 발행한다. 프로세서는 그 이후에 다른 데이터 스트림을 회로로 보낼 수도 있다.During the write operation, the processor prepares logical sectors # 1 to # 32 as a continuous data stream. The processor issues a data stream to this circuit. The circuit sends this data stream to the disk drive and adds two bytes of padding data to the end of each logical sector. The disk drive writes the data stream as it is received from the circuit. After writing all the data streams, the disk drive issues an interrupt 350a to the processor. The processor may then send another data stream to the circuit.

판독 동작은 예시를 통해 가장 잘 설명된다. 프로세서가 논리 섹터 #2를 판독하고자 한다고 가정하자. 프로세서는 논리 섹터 #2의 어드레스를 판정하여, 이 논리 섹터가 물리 섹터 5에서 시작하여, 물리 섹터 8에서 종료한다는 것을 인식해야 한다. 디스크 드라이브는 오로지 물리 섹터의 단위로만 데이터를 전송할 수 있고, 모든 데이터 전송은 물리 섹터의 경계에서 시작하고 종료해야 하므로, 디스크 드라이브는 물리 섹터 4∼8까지 그 속에 포함된 모두를 판독해야 한다.The read operation is best described by way of example. Suppose the processor wants to read logical sector # 2. The processor must determine the address of logical sector # 2 and recognize that this logical sector starts at physical sector 5 and ends at physical sector 8. Since the disk drive can only transfer data in units of physical sectors, and all data transfers must start and end at the boundary of the physical sector, the disk drive must read everything contained in physical sectors 4-8.

디스크 드라이브는 물리 섹터 4∼8을 회로로 보낸다. 물리 섹터 8의 마지막 2 바이트의 데이터는 기록 동안 이 회로에 의해 추가된 패딩 데이터를 포함하고 있다. 판독 동작 동안에는, 회로가 이 2 바이트의 패딩 데이터를 폐기하여, 어떠한 초과 데이터도 갖지 않는 논리 섹터 #2를 프로세서에게 전송할 것이다.The disk drive sends physical sectors 4 through 8 to the circuit. The last two bytes of data in physical sector 8 contain padding data added by this circuit during writing. During a read operation, the circuit will discard this two bytes of padding data and send logical sector # 2 with no excess data to the processor.

도 4는 본 발명에 따라 논리 섹터에 대해 패딩값을 추가 및 추출하는 논리 회로(400)의 개략도이다. 이 회로의 주요 시스템 구성 요소는 제어 로직(424), 논리 길이 카운터(412), 물리 길이 카운터(414), 패드/데이터 다중화기(pad/data multiplexer)(450) 및 데이터 래치(458)이다. 또한, 논리 섹터 길이 레지스터(404), 물리 섹터 길이 레지스터(406), 섹터 레지스터/카운터(408), 패드값 레지스터(410), 0 검출기(zero detects)(426, 428, 430), 버퍼(446, 456, 462), 데이터 래치(448, 452, 460) 및 메모리 인터페이스(454)를 포함한다.4 is a schematic diagram of a logic circuit 400 for adding and extracting padding values for logical sectors in accordance with the present invention. The main system components of this circuit are control logic 424, logic length counter 412, physical length counter 414, pad / data multiplexer 450 and data latch 458. The logical sector length register 404, the physical sector length register 406, the sector register / counter 408, the pad value register 410, the zero detects 426, 428, 430, and the buffer 446 456, 462, data latches 448, 452, 460, and memory interface 454.

프로세서 인터페이스 버스(402)는 프로세서(도시 안됨)로부터 논리 섹터 길이 레지스터(404), 물리 섹터 길이 레지스터(406), 섹터 레지스터/카운터(408) 및 패드값 레지스터(410)로의 신호에 대한 경로를 제공한다. 논리 섹터 레지스터(404)의 출력은 논리 길이 카운터(412)의 입력에 접속된다. 물리 섹터 길이 레지스터(406)의 출력은 물리 길이 카운터(414)의 입력에 접속된다. 패드값 레지스터(410)의 출력은 패드/데이터 다중화기(450)의 입력에 접속된다.Processor interface bus 402 provides a path for signals from a processor (not shown) to logical sector length register 404, physical sector length register 406, sector register / counter 408, and pad value register 410. do. The output of the logical sector register 404 is connected to the input of the logical length counter 412. The output of the physical sector length register 406 is connected to the input of the physical length counter 414. The output of the pad value register 410 is connected to the input of the pad / data multiplexer 450.

논리 길이 카운터(412), 물리 길이 카운터(414), 섹터 레지스터/카운터(408)의 출력들은 0 검출기(zero detects)(426, 428, 430)의 입력에 각각 접속된다. 0 검출기(426, 428, 430)의 출력은 제어 로직(424)의 입력에 접속된다.The outputs of logical length counter 412, physical length counter 414, sector register / counter 408 are connected to the inputs of zero detects 426, 428, 430, respectively. The output of the zero detectors 426, 428, 430 is connected to the input of the control logic 424.

프로세서의 데이터 스트림은 버퍼(446)에 의해 수신되고, 데이터 래치(448)를 통해 패드/데이터 다중화기(450)에 접속된다. 데이터는 패드/데이터 다중화기(450)의 출력으로부터 데이터 래치(452)를 통해 메모리 인터페이스(454)로 진행하는데, 메모리 인터페이스는 데이터를 디스크 드라이브 버퍼(도시 안됨)로 보낸다.The data stream of the processor is received by the buffer 446 and is connected to the pad / data multiplexer 450 through the data latch 448. Data passes from the output of pad / data multiplexer 450 to data interface 454 through data latch 452, which sends data to a disk drive buffer (not shown).

디스크 드라이브 버퍼로부터의 데이터 스트림은 메모리 인터페이스(454)에 의해 수신되어, 데이터 래치(460)로 보내진다. 데이터 래치(460)의 출력은 데이터 래치(458)에 접속된다. 데이터 래치(458)의 출력은 버퍼(456)에 접속되고, 버퍼는 데이터를 프로세서로 보낸다.The data stream from the disk drive buffer is received by the memory interface 454 and sent to the data latch 460. The output of data latch 460 is connected to data latch 458. The output of data latch 458 is connected to buffer 456, which sends data to the processor.

제어 로직(424)은 동작 회로(400)를 제어하기 위한 몇 개의 신호를 발생한다. 인에이블 신호(enable signal)(416)는 섹터 레지스터/카운터(408)의 계수 기능을 동작 가능 상태로 만든다. 로드 신호(load signal)(418)는 논리 섹터 길이 레지스터(404)와 물리 섹터 길이 레지스터(406)로부터 각각 값들을 로딩하도록 논리 길이 카운터(412)와 물리 길이 카운터(414)를 제어한다. 인에이블 신호(420, 422)는 논리 길이 카운터(412)와 물리 길이 카운터(414)의 계수 기능을 각각 동작 가능 상태로 만든다. 메모리 제어 신호(444)는 메모리 인터페이스(454)의 동작을 지시한다. 인에이블 신호(432, 434, 440, 442)는 각각 데이터 래치(458, 448, 460, 452)로의 데이터 로딩을 제어한다. 선택 신호(436)는 데이터 래치(448) 또는 패드값 레지스터(410)로부터 데이터를 입력하기 위해 패드/데이터 다중화기(450)를 제어한다. 제어 로직(424)은 또한 데이터 대기 신호(409)를 발생시키기 위해버퍼(411)를 통해 전송되는 데이터 대기 신호(431)를 발생한다. 데이터 유효 신호(data validation signal)(438)는 버퍼(462)를 통해 전송된다.The control logic 424 generates several signals for controlling the operating circuit 400. An enable signal 416 makes the count function of the sector register / counter 408 operational. Load signal 418 controls logical length counter 412 and physical length counter 414 to load values from logical sector length register 404 and physical sector length register 406, respectively. Enable signals 420 and 422 render the counting functions of logical length counter 412 and physical length counter 414 respectively operable. The memory control signal 444 directs the operation of the memory interface 454. Enable signals 432, 434, 440, and 442 control data loading into data latches 458, 448, 460, and 452, respectively. Select signal 436 controls pad / data multiplexer 450 to input data from data latch 448 or pad value register 410. The control logic 424 also generates a data wait signal 431 that is transmitted through the buffer 411 to generate a data wait signal 409. The data validation signal 438 is transmitted through the buffer 462.

회로(400)는 패딩 모드(padding mode)와 추출 모드(extracting mode)를 갖는다. 패딩 모드에서, 이 회로(400)는 논리 섹터의 데이터 스트림(즉, 논리 데이터 스트림)을 수신하고, 각각의 논리 섹터의 끝에 패딩 데이터를 추가하여 물리 섹터의 데이터 스트림(즉, 물리 데이터 스트림)을 만든다. 추출 모드에서는, 회로(400)가 물리 섹터의 데이터 스트림을 수신하고, 패딩 데이터를 억제하여, 논리 섹터의 데이터 스트림을 추출한다. 이 두 가지 모드의 각각의 동작에 대한 세부 내용은 이하에 설명된다.The circuit 400 has a padding mode and an extracting mode. In padding mode, this circuit 400 receives data streams of logical sectors (i.e., logical data streams) and adds padding data to the end of each logical sector to decode the data streams of physical sectors (i.e., physical data streams). Make. In the extraction mode, the circuit 400 receives the data stream of the physical sector, suppresses the padding data, and extracts the data stream of the logical sector. Details of the operation of each of these two modes are described below.

어떤 시스템 구성 요소의 기능은 패딩 모드의 동작과도 관련이 있고 추출 모드의 동작과도 관련 있다. 각 모드의 동작을 검사하기 전에 이런 시스템 구성 요소의 동작을 먼저 논의한다.The function of some system components is related to the operation of the padding mode and also to the operation of the extraction mode. Before examining the operation of each mode, the behavior of these system components is discussed first.

논리 섹터는 사전 정의된 개수의 바이트의 논리 길이를 갖고, 물리 섹터는 사전 정의된 개수의 바이트의 물리 길이를 갖는다. 논리 길이 및 물리 길이는 프로세서에 의해 프로그램 가능하다. 프로세서 인터페이스 버스(402)를 통해, 프로세서는 논리 길이를 논리 섹터 길이 레지스터(404)에 로딩하고, 물리 길이를 물리 섹터 길이 레지스터(406)에 로딩한다. 프로세서는 섹터의 개수를 섹터 레지스터/카운터(408)에 로딩함으로써 디스크 드라이브로/로부터 전송될 섹터의 개수를 지정한다. 또한 프로세서는 패딩값을 패드값 레지스터(410)에 로딩함으로써 패딩 데이터에 대한 값을 지정한다.The logical sector has a logical length of a predefined number of bytes, and the physical sector has a physical length of a predefined number of bytes. Logical length and physical length are programmable by the processor. Through the processor interface bus 402, the processor loads the logical length into the logical sector length register 404 and the physical length into the physical sector length register 406. The processor specifies the number of sectors to be transferred to / from the disk drive by loading the number of sectors into the sector register / counter 408. The processor also specifies a value for the padding data by loading the padding value into the pad value register 410.

어떠한 동작 모드에서든, 각각의 데이터 섹터를 전송하기 위해서는, 제어 로직(424)이 논리 길이 카운터(412)를 제어하여 논리 섹터 길이 레지스터(404)로부터 논리 길이를 로딩하고, 물리 길이 카운터(414)를 제어하여 물리 섹터 길이 레지스터(406)로부터 물리 길이를 로딩한다. 데이터 전송 동안에 제어 로직(424)은 논리 길이 카운터(412), 물리 길이 카운터(414), 섹터 레지스터/카운터(408)를 동작 가능 상태로 만든다. 논리 길이 카운터(412)는 1 바이트의 데이터가 전송될 때마다 계수를 1씩 줄여나가서, 논리 길이가 모두 계수되면 0에 도달한다. 물리 길이 카운터(414)는 1 바이트의 데이터가 전송될 때마다 계수를 1씩 줄여나가, 물리 길이가 모두 계수되면 0에 도달한다. 마찬가지로, 섹터 레지스터/카운터(408)도 각 섹터의 데이터가 전송될 때마다 계수를 1씩 줄여나가 모든 섹터가 전송 완료되면 0에 도달한다. 0 검출기(426, 428, 430)는 논리 길이 카운터(412), 물리 길이 카운터(414), 섹터 레지스터/카운터(408)의 계수를 각각 감시하여, 각각의 카운터의 계수가 0에 도달하면, 이 사실을 제어 로직(424)에게 통지한다.In any mode of operation, in order to transfer each sector of data, control logic 424 controls logical length counter 412 to load the logical length from logical sector length register 404 and the physical length counter 414. Control to load the physical length from the physical sector length register 406. The control logic 424 makes the logic length counter 412, the physical length counter 414, and the sector register / counter 408 operational during data transfer. The logical length counter 412 decrements the coefficient by one each time one byte of data is transmitted, and reaches zero when the logical length is all counted. The physical length counter 414 decrements the coefficient by one each time one byte of data is transmitted, and reaches zero when the physical length is all counted. Similarly, the sector register / counter 408 decrements the coefficient by one each time data in each sector is transferred and reaches zero when all sectors have been transferred. The zero detectors 426, 428, 430 monitor the coefficients of the logical length counter 412, the physical length counter 414, and the sector register / counter 408, respectively. Notify the control logic 424 of the fact.

제어 로직(424)은 물리 길이 카운터(414)와 섹터 레지스터/카운터(408)의 상태를 각각의 0 검출기(428, 430)를 통해 간접적으로 감시함으로써, 다중 섹터의 전송을 관리한다. 물리 길이 카운터(414)가 0에 도달하면, 하나의 섹터가 전부 전송된 것이다. 그 응답으로, 제어 로직(424)은 인에이블 신호(416)를 통해 섹터 레지스터/카운터(408)의 계수를 1 감소시킨다. 섹터 레지스터/카운터(408)가 아직 0으로 감소되지 않았다면, 더 많은 섹터들이 전송되어야 하며, 로드 신호(418)를 통해 제어 로직(424)은 논리 길이 섹터 레지스터(404)로부터 논리 길이 카운터(412)를 재로딩(reload)하고, 물리 섹터 레지스터(406)로부터 물리 길이 카운터(414)를 재로딩한다.The control logic 424 manages the transmission of multiple sectors by indirectly monitoring the state of the physical length counter 414 and the sector register / counter 408 through their respective zero detectors 428, 430. When the physical length counter 414 reaches zero, one sector has been completely transmitted. In response, control logic 424 decrements the coefficient of sector register / counter 408 by one through enable signal 416. If the sector register / counter 408 has not yet been reduced to zero, more sectors have to be sent, and the load signal 418 allows the control logic 424 to transfer the logical length counter 412 from the logical length sector register 404. Reload and reload the physical length counter 414 from the physical sector register 406.

패딩 모드에서, 제어 로직(424)은 프로세서로부터 논리 데이터 스트림의 전송을 제어하기 위해, 데이터 대기 신호(431)를 관리한다. 이것은 버퍼(411)를 통해 접속되어 데이터 대기 신호(409)를 발생한다. 처음에는 데이터 대기 신호(431)가 설정되지 않는다. 그러므로, 프로세서가 논리 데이터 스트림을 버퍼(446)로 전송하는 것이 허가되고, 데이터는 데이터 래치(448)에 래치된다. 논리 데이터 스트림은 데이터 래치(448)로부터 패드/데이터 다중화기(450)의 입력으로 전송된다.In padding mode, control logic 424 manages data wait signal 431 to control the transmission of the logical data stream from the processor. It is connected through a buffer 411 to generate a data wait signal 409. Initially, the data wait signal 431 is not set. Therefore, the processor is allowed to send the logical data stream to the buffer 446, and the data is latched in the data latch 448. The logical data stream is sent from the data latch 448 to the input of the pad / data multiplexer 450.

제어 로직(424)은 0 검출기(426)를 통해 논리 길이 카운터(412)를 간접적으로 감시하고, 논리 길이 카운터(412)가 0이 될 때까지 데이터 래치(448)로부터의 논리 데이터 스트림을 선택하도록 선택 신호(436)를 통해 패드/데이터 다중화기(450)를 제어한다. 그 이후, 제어 로직(424)은 0 검출기(428)를 통해 물리 길이 카운터(414)를 간접적으로 감시한다. 제어 로직(424)은 데이터 대기 신호(431)를 발행함으로써 프로세서로부터의 데이터 전송을 금지하고, 선택 신호(436)를 통해 패드/데이터 다중화기(450)를 제어함으로써 이 패드/데이터 다중화기가 물리 길이 카운터(414)가 0에 도달할 때까지 패드값 레지스터(410)로부터 패드값을 선택하도록 만든다. 패드/데이터 다중화기(450)의 출력은 물리 데이터 스트림인데, 다시 말해서, 논리 섹터에 패딩 데이터가 부가되어 이루어진 데이터 스트림으로서, 논리섹터와 그의 패딩 데이터가 조합된 길이는 물리 섹터의 길이이기도 하다.Control logic 424 indirectly monitors logical length counter 412 via zero detector 426 and selects a logical data stream from data latch 448 until logical length counter 412 becomes zero. The pad / data multiplexer 450 is controlled via the selection signal 436. Thereafter, the control logic 424 indirectly monitors the physical length counter 414 via the zero detector 428. Control logic 424 prohibits data transfer from the processor by issuing a data wait signal 431 and controlling pad / data multiplexer 450 via select signal 436 so that the pad / data multiplexer has a physical length. And select pad value from pad value register 410 until counter 414 reaches zero. The output of the pad / data multiplexer 450 is a physical data stream, that is, a data stream in which padding data is added to a logical sector, and the length of the logical sector and its padding data combined is also the length of the physical sector.

패드/데이터 다중화기(450)의 물리 데이터 스트림 출력은 데이터 래치(452)로 송출되고, 그 이후에 메모리 인터페이스(454)로 송출된다. 메모리 제어 신호(444)를 통해 제어 로직(424)은 메모리 인터페이스(454)에게 물리 데이터 스트림을 디스크 드라이브 버퍼에게 보낼 것을 지시한다.The physical data stream output of the pad / data multiplexer 450 is sent to the data latch 452 and then to the memory interface 454. Via the memory control signal 444, the control logic 424 instructs the memory interface 454 to send the physical data stream to the disk drive buffer.

추출 모드에서는, 물리 데이터 스트림이 디스크 드라이브 버퍼로부터 메모리 인터페이스(454)를 통해 수신되어, 데이터 래치(460)에 일시 저장된다. 다음, 물리 데이터 스트림은 데이터 래치(460)로부터 데이터 래치(458)로 송출된다.In the extraction mode, the physical data stream is received from the disk drive buffer through the memory interface 454 and temporarily stored in the data latch 460. The physical data stream is then sent from data latch 460 to data latch 458.

제어 로직(424)은 0 검출기(426)를 통해 논리 길이 카운터(412)를 간접적으로 감시하고, 논리 길이 카운터(412)가 0이 될 때까지 인에이블 신호(432)를 통해 데이터 래치(460)로부터 데이터를 입력하도록 데이터 래치(458)를 제어한다. 그 다음에, 제어 로직(424)은 0 검출기(428)를 통해 간접적으로 물리 길이 카운터(414)를 감시하고, 선택 신호(436)를 통해 물리 길이 카운터(414)가 0에 도달할 때까지 데이터 래치(458)를 동작 불능 상태로 만든다. 데이터 래치(458)의 출력은 논리 데이터 스트림인데, 다시 말해서, 물리 섹터가 갖고 있는 패딩값을 억제시킨 이 물리 섹터로부터 추출한 논리 섹터로 이루어진 데이터 스트림이다.The control logic 424 indirectly monitors the logic length counter 412 via the zero detector 426, and through the enable signal 432 through the enable signal 432 until the logic length counter 412 becomes zero. Data latch 458 is controlled to input data from. The control logic 424 then indirectly monitors the physical length counter 414 via the zero detector 428 and the data until the physical length counter 414 reaches zero via the selection signal 436. Make the latch 458 inoperable. The output of the data latch 458 is a logical data stream, that is, a data stream composed of logical sectors extracted from this physical sector in which the padding value held by the physical sector is suppressed.

데이터 래치(458)의 논리 데이터 스트림 출력은 버퍼(456)를 통해 프로세서로 송출된다. 제어 로직(424)은 데이터 래치(458)의 출력이 유효한 논리 데이터 스트림을 전송하는 시간 동안에 데이터 유효 신호(438)를 발생한다. 데이터 유효 신호(438)는 버퍼(462)를 통해 접속되어 전송 데이터 유효 신호(461)로서 프로세서에게 전송된다.The logical data stream output of the data latch 458 is sent to the processor through the buffer 456. Control logic 424 generates data valid signal 438 during the time that the output of data latch 458 transmits a valid logical data stream. The data valid signal 438 is connected through a buffer 462 and transmitted to the processor as a transmit data valid signal 461.

도 5는 논리 섹터에 패딩값을 추가하는 하드웨어 카운터의 이용을 도시한다. 이것은 2054 바이트 길이의 논리 섹터가 프로세서로부터 수신되고 2056 바이트 길이의 물리 섹터가 디스크 드라이브로 전송되는 경우를 도시한다. 논리 길이 카운터(도 4의 도면 부호(412) 참조)와 물리 길이 카운터(도 4의 도면 부호(414) 참조)는 각각 전송중인 데이터 스트림의 각 바이트를 1(one count)로 간주하여 0이 될 때까지 거꾸로 계수(counting down)한다. 단계(505)에서, 논리 길이 카운터(412)는 0이 되어, 하나의 논리 섹터를 계수 완료했음을 나타낸다. 물리 길이 카운터(414)는 카운터의 계수가 0이 되는 단계(515)가 될 때까지 계수를 계속한다. 2 바이트의 패딩 데이터가 데이터 스트림에 추가되어 있음을 유의하자.5 illustrates the use of a hardware counter to add padding values to logical sectors. This illustrates the case where a 2054 byte long logical sector is received from the processor and a 2056 byte long physical sector is transferred to the disk drive. The logical length counter (see 412 in FIG. 4) and the physical length counter (see 414 in FIG. 4) will each be zero (one count) for each byte of the data stream being transmitted. Counting down until In step 505, the logical length counter 412 goes to zero, indicating that one logical sector has been counted. The physical length counter 414 continues to count until step 515, where the counter's count is zero. Note that two bytes of padding data have been added to the data stream.

단계(520)에서, 섹터 레지스터/카운터(도 4의 도면 부호(408) 참조)는 그 값이 1 감소하고, 논리 길이 카운터(412)와 물리 길이 카운터(414)는 다시 로딩된 뒤, 후속 섹터가 전송되는 동안 다시 거꾸로 계수될 수 있게 된다. 당업자라면, 카운터가 최종적으로 0의 값으로 감소하므로, 카운터에는 실제 계수될 바이트 수보다 1이 작은 값이 로딩됨을 이해할 것이다.In step 520, the sector register / counter (see 408 in FIG. 4) decreases by one, and the logical length counter 412 and the physical length counter 414 are reloaded, and then subsequent sectors. Can be counted upside down again during transmission. Those skilled in the art will appreciate that the counter is loaded with a value less than one, which is actually less than the number of bytes to be counted since the counter finally decreases to a value of zero.

도 6은 본 발명에 따른 하드웨어로 물리 섹터로부터 논리 섹터를 추출하기 위한 카운터의 이용을 도시한다. 2056 바이트 길이의 물리 섹터가 디스크 드라이브로부터 수신되어, 2054 바이트 길이의 논리 섹터가 프로세서로 전송된다. 논리길이 카운터(도 4의 도면 부호(412) 참조)와 물리 길이 카운터(도 4의 도면 부호(414) 참조)는 각각 전송중인 데이터 스트림의 각 바이트를 1(one count)로 간주하여 0이 될 때까지 거꾸로 센다. 전송 데이터 유효 신호(도 4의 도면부호(461) 참조)는 유효한 데이터가 프로세서로 전송되는 동안에는 논리 "1"이다. 단계(605)에서, 논리 길이 카운터(412)는 0에 도달하여, 하나의 논리 섹터가 전송되었음을 나타낸다. 단계(610)에서, 데이터 스트림의 패딩값이 디스크 드라이브로부터 수신되는 동안 전송 데이터 유효 신호(461)는 논리 "0"으로 변한다. 물리 길이 카운터(414)는 그 값이 0이 되는 단계(615)까지 계속해서 거꾸로 계수한다.6 illustrates the use of a counter to extract logical sectors from physical sectors in hardware in accordance with the present invention. A 2056 byte long physical sector is received from the disk drive, and a 2054 byte long logical sector is sent to the processor. The logical length counter (see 412 in FIG. 4) and the physical length counter (see 414 in FIG. 4) are each zero, counting each byte of the data stream being transmitted as one (one count). Count upside down. The transmission data valid signal (see 461 of FIG. 4) is a logic "1" while valid data is being sent to the processor. In step 605, the logical length counter 412 reaches zero, indicating that one logical sector has been sent. In step 610, the transmit data valid signal 461 changes to a logic " 0 " while the padding value of the data stream is received from the disk drive. The physical length counter 414 continues counting backwards until step 615 where the value becomes zero.

단계(620)에서, 섹터 레지스터/카운터(도 4의 도면 부호(408) 참조)는 그 값이 1 감소하고, 논리 길이 카운터(412)와 물리 길이 카운터(414)는 다시 로딩된 뒤, 후속 섹터가 전송되는 동안 다시 거꾸로 계수될 수 있게 된다. 전송 유효 데이터 신호(461)는 다시 한번 더 유효한 데이터가 전송되는 것을 나타내기 위해 논리 "1"로 변경된다.In step 620, the sector register / counter (see 408 in FIG. 4) decreases by one, the logical length counter 412 and the physical length counter 414 are reloaded, and then the subsequent sectors. Can be counted upside down again during transmission. The transmission valid data signal 461 is once again changed to a logical " 1 " to indicate that valid data is to be transmitted.

전술한 설명은 단지 본 발명을 예시한 것임을 이해해야 한다. 본 발명을 벗어나지 않고도 당업자에 의해 다양한 대체나 수정이 유도될 수 있다. 예를 들면, 데이터 래치나 버퍼가 회로를 통해 전송되는 데이터의 순서를 변경하도록 구성될 수도 있고, 여러 가지 제어 신호의 타이밍 관계가 수정될 수도 있다. 또한, 전송중인 데이터 스트림이 바이트가 아닌 다른 데이터 단위일 수도 있고, 데이터 전송선이 직렬 링크나 병렬 버스로 구성될 수도 있다. 따라서, 본 발명은 첨부된 특허청구범위의 범주에 속하는 이러한 대체, 수정 및 변형을 모두 포괄하도록 의도된다.It is to be understood that the foregoing description is only illustrative of the invention. Various substitutions or modifications may be made by those skilled in the art without departing from the invention. For example, data latches or buffers may be configured to alter the order of data transmitted through the circuit, and the timing relationship of various control signals may be modified. In addition, the data stream being transmitted may be a data unit other than bytes, and the data transmission line may be configured as a serial link or a parallel bus. Accordingly, the present invention is intended to embrace all such alterations, modifications and variations that fall within the scope of the appended claims.

따라서, 본 발명에 따르면, 물리 섹터의 경계에 대해 논리 섹터의 경계를 정렬하기 위해 논리 섹터에 대해 패딩 데이터를 추가/추출하되, 이것을 하드웨어로 구현함으로써, 기록 밀도(recording density)와 처리량(throughput)을 개선할 수 있게 된다.Therefore, according to the present invention, padding data is added / extracted to the logical sector to align the boundary of the logical sector with the boundary of the physical sector, and implemented in hardware, thereby recording density and throughput. It will be possible to improve.

Claims (21)

논리 길이(logical length)를 갖는 제 1 데이터 스트림에 패딩값(padding value)을 추가하여, 제 2 데이터 스트림―상기 제 2 데이터 스트림은 기록 장치에 기록될 때 상기 기록 장치상에서 상기 기록 장치의 동작 요구에 맞는 정해진 물리 길이(determined physical length)를 점유하고, 상기 논리 길이와 상기 물리 길이는 데이터 단위(data units)로 측정됨―을 발생시키는 회로에 있어서,Adding a padding value to the first data stream having a logical length, thereby providing a second data stream—operation request of the recording device on the recording device when the second data stream is recorded on the recording device. A circuit that occupies a determined physical length that fits and wherein the logical length and the physical length are measured in data units, ① 상기 제 1 데이터 스트림을 수신하는 제 1 입력과, 상기 패딩값을 수신하는 제 2 입력과, 상기 제 2 데이터 스트림을 전송하는 출력을 구비하며, 상기 제 1 입력과 상기 제 2 입력중 어느 하나를 상기 출력으로 송출하는 것을 제어할 수 있는 스위치(switch)와,A first input for receiving the first data stream, a second input for receiving the padding value, and an output for transmitting the second data stream, wherein either one of the first input and the second input A switch capable of controlling sending the output to the output; ② 상기 제 1 데이터 스트림의 데이터 단위를 계수(count)하며, 상기 논리 길이가 계수 완료된 시점을 나타내는 출력을 구비하는 논리 길이 카운터(logical length counter)와,A logical length counter that counts the data units of the first data stream, the logical length counter having an output indicating when the logical length has been counted; ③ 상기 제 2 데이터 스트림의 데이터 단위를 계수(count)하며, 상기 물리 길이가 계수 완료된 시점을 나타내는 출력을 구비하는 물리 길이 카운터(physical length counter)와,A physical length counter that counts the data units of the second data stream, the physical length counter having an output indicating when the physical length has been counted; ④ 상기 논리 길이 카운터와 상기 물리 길이 카운터로부터의 상기 출력에 응답하여, 상기 논리 길이가 계수 완료될 때까지 상기 제 1 데이터 스트림을 선택하도록 상기 스위치를 제어한 뒤, 상기 물리 길이가 계수 완료될 때까지 상기 패딩값을 선택하도록 상기 스위치를 제어하는 콘트롤러(controller)를 포함하는④ in response to the output from the logical length counter and the physical length counter, controlling the switch to select the first data stream until the logical length is counted, and then when the physical length is counted A controller for controlling the switch to select the padding value until 패딩값 추가 회로.Padding value addition circuit. 제 1 항에 있어서,The method of claim 1, 상기 스위치의 상기 출력으로부터 상기 제 2 데이터 스트림을 수신하는 입력과, 상기 제 2 데이터 스트림을 전송하는 출력을 구비하며, 상기 제 2 데이터 스트림을 수신하는 상기 입력을 동작 가능 상태(enable)나 동작 불능 상태(disable)로 제어할 수 있는 데이터 래치(data latch)를 더 포함하는An input for receiving the second data stream from the output of the switch and an output for transmitting the second data stream, wherein the input for receiving the second data stream is enabled or disabled It further includes a data latch that can be controlled as a disable. 패딩값 추가 회로.Padding value addition circuit. 제 1 항에 있어서,The method of claim 1, 상기 제 2 데이터 스트림의 섹터를 계수(count)하며, 상기 섹터가 계수 완료된 시점을 나타내는 출력을 구비하는 섹터 카운터(sector counter)를 더 포함하는And a sector counter for counting sectors of the second data stream, the sector counter having an output indicating when the sector is counted. 패딩값 추가 회로.Padding value addition circuit. 제 1 항에 있어서,The method of claim 1, 상기 논리 길이를 표시하는 값을 보유하는 논리 길이 레지스터(logical length register)를 더 포함하되, 상기 논리 길이 카운터는 상기 논리 길이 레지스터로부터 로딩(load)되는And a logical length register holding a value indicating the logical length, wherein the logical length counter is loaded from the logical length register. 패딩값 추가 회로.Padding value addition circuit. 제 1 항에 있어서,The method of claim 1, 상기 물리 길이를 표시하는 값을 보유하는 물리 길이 레지스터(physical length register)를 더 포함하되, 상기 물리 길이 카운터는 상기 물리 길이 레지스터로부터 로딩(load)되는And a physical length register for holding a value indicating the physical length, wherein the physical length counter is loaded from the physical length register. 패딩값 추가 회로.Padding value addition circuit. 제 1 항에 있어서,The method of claim 1, 상기 패딩값을 보유하는 패딩값 레지스터(padding value register)를 더 포함하되, 상기 스위치의 상기 제 2 입력이 상기 패딩값 레지스터로부터 상기 패딩값을 수신하는And a padding value register for holding the padding value, wherein the second input of the switch receives the padding value from the padding value register. 패딩값 추가 회로.Padding value addition circuit. 제 1 항에 있어서,The method of claim 1, 상기 데이터 단위는 바이트(byte)인The data unit is a byte 패딩값 추가 회로.Padding value addition circuit. 기록 장치의 동작 요구에 맞는 정해진 물리 길이를 갖는 제 2 데이터 스트림으로부터 논리 길이를 갖는 제 1 데이터 스트림―상기 논리 길이와 상기 물리 길이는 데이터 단위로 측정됨―을 추출하는 회로에 있어서,A circuit for extracting a first data stream having a logical length, wherein the logical length and the physical length are measured in data units, from a second data stream having a predetermined physical length that meets an operation request of a recording apparatus. ① 상기 제 2 데이터 스트림을 수신하는 입력과, 상기 제 1 데이터 스트림을 전송하는 출력을 구비하며, 상기 제 2 데이터 스트림을 수신하는 상기 입력을 동작 가능 상태(enable) 또는 동작 불능 상태(disable)로 제어할 수 있는 데이터 래치(data latch)와,(1) has an input for receiving the second data stream and an output for transmitting the first data stream, the input for receiving the second data stream in an enabled or disabled state; Controllable data latches, ② 상기 제 1 데이터 스트림의 상기 데이터 단위를 계수(count)하며, 상기 논리 길이가 계수 완료된 시점을 나타내는 출력을 구비하는 논리 길이 카운터(logical length counter)와,A logical length counter that counts the data units of the first data stream, the logical length counter having an output indicating when the logical length has been counted; ③ 상기 제 2 데이터 스트림의 상기 데이터 단위를 계수(count)하며, 상기 물리 길이가 계수 완료된 시점을 나타내는 출력을 구비하는 물리 길이 카운터(physical length counter)와,A physical length counter that counts the data units of the second data stream, the physical length counter having an output indicating when the physical length has been counted; ④ 상기 논리 길이 카운터와 상기 물리 길이 카운터로부터의 상기 출력에 응답하여, 상기 논리 길이가 계수 완료될 때까지 상기 제 2 데이터 스트림을 수신하는 상기 입력을 동작 가능 상태로 만들도록 상기 데이터 래치를 제어한 뒤, 상기 물리 길이가 계수 완료될 때까지 상기 제 2 데이터 스트림을 수신하는 상기 입력을 동작 불능 상태로 만들도록 상기 데이터 래치를 제어하는 콘트롤러(controller)를 포함하는In response to the output from the logical length counter and the physical length counter, controlling the data latch to make the input operable with receiving the second data stream until the logical length is counted; And a controller for controlling the data latch to render the input receiving the second data stream inoperable until the physical length is counted. 논리 길이를 갖는 데이터 스트림을 추출하는 회로.Circuit for extracting a data stream having a logical length. 제 8 항에 있어서,The method of claim 8, 상기 제 2 데이터 스트림의 섹터를 계수(count)하며, 상기 섹터가 계수 완료된 시점을 나타내는 출력을 구비하는 섹터 카운터(sector counter)를 더 포함하는And a sector counter for counting sectors of the second data stream, the sector counter having an output indicating when the sector is counted. 논리 길이를 갖는 데이터 스트림을 추출하는 회로.Circuit for extracting a data stream having a logical length. 제 8 항에 있어서,The method of claim 8, 상기 논리 길이를 표시하는 값을 보유하는 논리 길이 레지스터(logical length register)를 더 포함하되, 상기 논리 길이 카운터가 상기 논리 길이 레지스터로부터 로딩(load)되는And a logical length register holding a value indicating the logical length, wherein the logical length counter is loaded from the logical length register. 논리 길이를 갖는 데이터 스트림을 추출하는 회로.Circuit for extracting a data stream having a logical length. 제 8 항에 있어서,The method of claim 8, 상기 물리 길이를 표시하는 값을 보유하는 물리 길이 레지스터(physical length register)를 더 포함하되, 상기 물리 길이 카운터가 상기 물리 길이 레지스터로부터 로딩(load)되는And a physical length register for holding a value indicating the physical length, wherein the physical length counter is loaded from the physical length register. 논리 길이를 갖는 데이터 스트림을 추출하는 회로.Circuit for extracting a data stream having a logical length. 제 8 항에 있어서,The method of claim 8, 상기 콘트롤러는 상기 데이터 래치의 상기 출력이 상기 제 1 데이터 스트림을 전송중임을 나타내는 출력을 제공하는The controller provides an output indicating that the output of the data latch is transmitting the first data stream. 논리 길이를 갖는 데이터 스트림을 추출하는 회로.Circuit for extracting a data stream having a logical length. 제 8 항에 있어서,The method of claim 8, 상기 데이터 단위는 바이트(byte)인The data unit is a byte 논리 길이를 갖는 데이터 스트림을 추출하는 회로.Circuit for extracting a data stream having a logical length. 논리 길이(logical length)를 갖는 제 1 데이터 스트림에 패딩값(padding value)을 추가하여, 기록 장치에 기록될 때 상기 기록 장치상에서 상기 기록 장치의 동적 요구에 맞는 정해진 물리 길이(physical length)를 점유할 제 2 데이터 스트림을 발생시키는 패딩 모드(padding mode), 또는 상기 제 2 데이터 스트림으로부터 상기 제 1 데이터 스트림을 추출하는 추출 모드(extracting mode)로 동작할 수 있는 회로―상기 논리 길이와 상기 물리 길이는 데이터 단위(data units)로 측정됨―에 있어서,Adding a padding value to the first data stream having a logical length to occupy a defined physical length on the recording device that meets the dynamic requirements of the recording device when recorded to the recording device. Circuitry capable of operating in a padding mode for generating a second data stream to perform, or in an extracting mode for extracting the first data stream from the second data stream—the logical length and the physical length Is measured in data units-- ① 상기 제 1 데이터 스트림을 수신하는 제 1 입력과, 상기 패딩값을 수신하는 제 2 입력과, 상기 제 2 데이터 스트림을 전송하는 출력을 구비하며, 상기 제 1 입력과 상기 제 2 입력중 어느 하나를 상기 출력으로 송출하는 것을 제어할 수 있는 스위치(switch)와,A first input for receiving the first data stream, a second input for receiving the padding value, and an output for transmitting the second data stream, wherein either one of the first input and the second input A switch capable of controlling sending the output to the output; ② 상기 제 2 데이터 스트림을 수신하는 입력과, 상기 제 1 데이터 스트림을 전송하는 출력을 구비하며, 상기 제 2 데이터 스트림을 수신하는 상기 입력을 동작 가능 상태(enable) 혹은 동작 불능 상태(disable)로 제어할 수 있는 제 1 데이터 래치(data latch)와,(B) having an input for receiving the second data stream and an output for transmitting the first data stream, wherein the input for receiving the second data stream is enabled or disabled; A first data latch that can be controlled, ③ 상기 제 1 데이터 스트림의 상기 데이터 단위를 계수(count)하며, 상기 논리 길이가 계수 완료된 시점을 나타내는 출력을 구비하는 논리 길이 카운터(logical length counter)와,A logical length counter that counts the data units of the first data stream, the logical length counter having an output indicating when the logical length has been counted; ④ 상기 제 2 데이터 스트림의 상기 데이터 단위를 계수(count)하며, 상기 물리 길이가 계수 완료된 시점을 나타내는 출력을 구비하는 물리 길이 카운터(physical length counter)와,A physical length counter that counts the data units of the second data stream, the physical length counter having an output indicating when the physical length has been counted; ⑤ 상기 논리 길이 카운터와 상기 물리 길이 카운터로부터의 상기 출력에 응답하는 콘트롤러(controller)를 포함하되,A controller responsive to said output from said logical length counter and said physical length counter, 상기 콘트롤러는,The controller, ㉠ 상기 패딩 모드에서, 상기 논리 길이가 계수 완료될 때까지 상기 제 1 데이터 스트림을 선택하도록 상기 스위치를 제어한 뒤, 상기 물리 길이가 계수 완료될 때까지 상기 패딩값을 선택하도록 상기 스위치를 제어하고,In the padding mode, control the switch to select the first data stream until the logical length is counted, and then control the switch to select the padding value until the physical length is counted; , ㉡ 상기 추출 모드에서는, 상기 논리 길이가 계수 완료될 때까지 상기 제 2 데이터 스트림을 수신하는 상기 입력을 동작 가능 상태(enable)로 하도록 상기 제 1 데이터 래치를 제어한 뒤, 상기 물리 길이가 계수 완료될 때까지 상기 제 2 데이터 스트림을 수신하는 상기 입력을 동작 불능 상태(disable)로 하도록 상기 제 1 데이터 래치를 제어하는In the extraction mode, controlling the first data latch to enable the input receiving the second data stream until the logical length is counted, and then the physical length is counted. To control the first data latch to disable the input receiving the second data stream until 회로.Circuit. 제 14 항에 있어서,The method of claim 14, 상기 스위치의 상기 출력으로부터 상기 제 2 데이터 스트림을 수신하는 입력과, 상기 제 2 데이터 스트림을 전송하는 출력을 구비하며, 상기 제 2 데이터 스트림을 수신하는 상기 입력을 동작 가능 상태(enable) 혹은 동작 불능 상태(disable)로 제어할 수 있는 제 2 데이터 래치(data latch)를 더 포함하는An input for receiving the second data stream from the output of the switch and an output for transmitting the second data stream, wherein the input for receiving the second data stream is enabled or disabled And further comprising a second data latch that can be controlled in a disabled state. 회로.Circuit. 제 14 항에 있어서,The method of claim 14, 상기 제 2 데이터 스트림의 섹터를 계수(count)하며, 상기 섹터가 계수 완료된 시점을 나타내는 출력을 구비하는 섹터 카운터(sector counter)를 더 포함하는And a sector counter for counting sectors of the second data stream, the sector counter having an output indicating when the sector is counted. 회로.Circuit. 제 14 항에 있어서,The method of claim 14, 상기 논리 길이를 표시하는 값을 보유하는 논리 길이 레지스터(logical length register)를 더 포함하되, 상기 논리 길이 카운터는 상기 논리 길이 레지스터로부터 로딩(load)되는And a logical length register holding a value indicating the logical length, wherein the logical length counter is loaded from the logical length register. 회로.Circuit. 제 14 항에 있어서,The method of claim 14, 상기 물리 길이를 표시하는 값을 보유하는 물리 길이 레지스터(physical length register)를 더 포함하되, 상기 물리 길이 카운터는 상기 물리 길이 레지스터로부터 로딩(load)되는And a physical length register for holding a value indicating the physical length, wherein the physical length counter is loaded from the physical length register. 회로.Circuit. 제 14 항에 있어서,The method of claim 14, 상기 패딩값을 보유하는 패딩값 레지스터(padding value register)를 더 포함하되, 상기 스위치의 상기 제 2 입력이 상기 패딩값 레지스터로부터 상기 패딩값을 수신하는And a padding value register for holding the padding value, wherein the second input of the switch receives the padding value from the padding value register. 회로.Circuit. 제 14 항에 있어서,The method of claim 14, 상기 콘트롤러는 상기 제 1 데이터 래치의 상기 출력이 상기 제 1 데이터 스트림을 전송중임을 나타내는 출력을 제공하는The controller provides an output indicating that the output of the first data latch is transmitting the first data stream. 회로.Circuit. 제 14 항에 있어서,The method of claim 14, 상기 데이터 단위는 바이트(byte)인The data unit is a byte 회로.Circuit.
KR10-2000-0033403A 1999-06-28 2000-06-17 A circuit for aligning logical sectors with physical sectors in a disk storage system KR100386348B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/340,376 1999-06-28
US09/340,376 US6191712B1 (en) 1999-06-28 1999-06-28 Circuit for aligning logical sectors with physical sectors in a disk storage system

Publications (2)

Publication Number Publication Date
KR20010007418A KR20010007418A (en) 2001-01-26
KR100386348B1 true KR100386348B1 (en) 2003-06-02

Family

ID=23333102

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0033403A KR100386348B1 (en) 1999-06-28 2000-06-17 A circuit for aligning logical sectors with physical sectors in a disk storage system

Country Status (4)

Country Link
US (1) US6191712B1 (en)
JP (1) JP3484144B2 (en)
KR (1) KR100386348B1 (en)
SG (1) SG85190A1 (en)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4202658B2 (en) * 2002-02-22 2008-12-24 富士通マイクロエレクトロニクス株式会社 Data writing apparatus and DVD format data generation method
US8321650B2 (en) * 2003-01-13 2012-11-27 Emulex Design & Manufacturing Corporation Alignment-unit-based virtual formatting methods and devices employing the methods
US7634614B2 (en) * 2003-01-13 2009-12-15 Sierra Logic Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves and that support virtual disk formatting
US8289984B2 (en) * 2003-01-13 2012-10-16 Emlilex Design & Manufacturing Corporation Allocation-unit-based virtual formatting methods and devices employing allocation-unit-based virtual formatting methods
US7007114B1 (en) * 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
KR100860985B1 (en) * 2003-05-23 2008-09-30 삼성전자주식회사 Method for recording/reproducing data on a disc using padding information
US20050086249A1 (en) * 2003-10-16 2005-04-21 International Business Machines Corporation Method for logical volume conversions
KR100716972B1 (en) * 2004-02-19 2007-05-10 삼성전자주식회사 Recording/reproducing method
US7183610B2 (en) * 2004-04-30 2007-02-27 Siliconix Incorporated Super trench MOSFET including buried source electrode and method of fabricating the same
US7231545B2 (en) * 2004-08-05 2007-06-12 International Business Machines Corporation Apparatus and method to convert data from a first sector format to a second sector format
US7277986B2 (en) * 2005-03-30 2007-10-02 Emc Corporation Sector-edge cache
US7986480B2 (en) * 2005-11-03 2011-07-26 Hitachi Global Storage Technologies Netherlands B.V. Micro-journaling of data on a storage device
US7725666B2 (en) * 2005-11-03 2010-05-25 Hitachi Global Storage Technologies Netherlands B.V. Micro-journaling of data on a storage device
US7539924B1 (en) 2005-11-15 2009-05-26 Western Digital Technologies, Inc. Disk drive implementing data path protection by encoding large host blocks into sub blocks
KR100781517B1 (en) 2006-02-16 2007-12-03 삼성전자주식회사 Mapping table managing apparatus and method for nonvolatile memory
JP2008159109A (en) * 2006-12-21 2008-07-10 Matsushita Electric Ind Co Ltd Data transfer unit
KR100860990B1 (en) * 2007-01-22 2008-09-30 삼성전자주식회사 Apparatus for recording/reproducing data on a disc using padding information and information storage medium thereof
KR100860998B1 (en) * 2007-11-15 2008-09-30 삼성전자주식회사 Method for recording/reproducing data on a disc using padding information
KR100860999B1 (en) * 2007-11-15 2008-09-30 삼성전자주식회사 Method for recording/reproducing data on a disc using padding information
KR100860997B1 (en) * 2007-11-15 2008-09-30 삼성전자주식회사 Apparatus for recording/reproducing data on a disc using padding information and information storage medium thereof
KR100860996B1 (en) * 2007-11-15 2008-09-30 삼성전자주식회사 Apparatus for recording/reproducing data on a disc using padding information and information storage medium thereof
JP4977583B2 (en) * 2007-11-22 2012-07-18 株式会社日立製作所 Storage control device and control method of storage control device
US9032154B2 (en) * 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
US9106592B1 (en) 2008-05-18 2015-08-11 Western Digital Technologies, Inc. Controller and method for controlling a buffered data transfer device
US8006027B1 (en) 2008-09-11 2011-08-23 Western Digital Technologies, Inc. Method of staging small writes on a large sector disk drive
US8392687B2 (en) * 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US8046533B2 (en) * 2009-03-10 2011-10-25 Emulex Design & Manufacturing Corporation System and method for sector remapping
US8255661B2 (en) * 2009-11-13 2012-08-28 Western Digital Technologies, Inc. Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
US8285965B2 (en) * 2009-11-20 2012-10-09 Western Digital Technologies, Inc. Aligning data storage device partition to boundary of physical data sector
US8397107B1 (en) 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8392689B1 (en) 2010-05-24 2013-03-05 Western Digital Technologies, Inc. Address optimized buffer transfer requests
US8661193B1 (en) 2010-10-29 2014-02-25 Western Digital Technologies, Inc. Disk drive with partial sector management
US8578100B1 (en) 2010-11-08 2013-11-05 Western Digital Technologies, Inc. Disk drive flushing write data in response to computed flush time
US8990493B1 (en) 2011-06-30 2015-03-24 Western Digital Technologies, Inc. Method and apparatus for performing force unit access writes on a disk
US8654619B1 (en) 2011-09-29 2014-02-18 Western Digital Technologies, Inc. Method and apparatus for operating a disk drive
US8671250B2 (en) 2011-12-15 2014-03-11 Western Digital Technologies, Inc. Data storage device generating redundancy for data path protection of a parity sector
US9063838B1 (en) 2012-01-23 2015-06-23 Western Digital Technologies, Inc. Data storage device shifting data chunks of alignment zone relative to sector boundaries
US8996839B1 (en) 2012-01-23 2015-03-31 Western Digital Technologies, Inc. Data storage device aligning partition to boundary of sector when partition offset correlates with offset of write commands

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5813025A (en) 1994-08-10 1998-09-22 Unisys Corporation System and method for providing variable sector-format operation to a disk access system
US5596458A (en) 1994-12-19 1997-01-21 Integral Peripherals, Inc. Variable zone layout for information storage disk drive
US5671439A (en) 1995-01-10 1997-09-23 Micron Electronics, Inc. Multi-drive virtual mass storage device and method of operating same
US5765201A (en) 1995-07-31 1998-06-09 International Business Machines Corporation Changing page size in storage media of computer system
US5802584A (en) 1995-09-01 1998-09-01 Adaptec, Inc. Hardware alignment in a headerless disk drive architecture
US6119201A (en) * 1997-02-19 2000-09-12 International Business Machines Corporation Disk under-run protection using formatted padding sectors
US6092130A (en) * 1997-02-28 2000-07-18 Matsushita Electric Industrial Co., Ltd. Method and apparatus for data padding input data and input significance information which are not synchronized

Also Published As

Publication number Publication date
JP3484144B2 (en) 2004-01-06
US6191712B1 (en) 2001-02-20
KR20010007418A (en) 2001-01-26
JP2001051802A (en) 2001-02-23
SG85190A1 (en) 2001-12-19

Similar Documents

Publication Publication Date Title
KR100386348B1 (en) A circuit for aligning logical sectors with physical sectors in a disk storage system
KR101243005B1 (en) Processing a variable length device command word at a control unit in an i/o processing system
KR100564665B1 (en) Method and apparatus for using crc for data integrity in on-chip memory
US6449666B2 (en) One retrieval channel in a data controller having staging registers and a next pointer register and programming a context of a direct memory access block
US7240139B2 (en) Disk array control device with two different internal connection systems
US5644787A (en) Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter
KR101174997B1 (en) Providing indirect data addressing in an input/output processing system where the indirect data addressing list is non-contiguous
US5797033A (en) Direct memory access for storing and retrieving data based on packet size
EP0164550B1 (en) I/o controller for multiple disparate serial memories with a cache
KR20020064142A (en) Disc drive for achieving improved audio and visual data transfer
US20040123026A1 (en) Control method for storage device controller system, and storage device controller system
JP3895610B2 (en) Image forming apparatus and image forming method
US5813024A (en) Disk control method for use with a data storage apparatus having multiple disks
US20030172229A1 (en) Systems and methods for detecting and compensating for runt block data transfers
KR20060017816A (en) Method and device for transferring data between a main memory and a storage device
JPH01306917A (en) Memory control method and apparatus
JPS5832417B2 (en) Data transfer control method
US7596639B2 (en) Skip mask table automated context generation
JP2006302343A (en) Information recording and reproducing device
US6349348B1 (en) Data transfer method and apparatus
KR100638378B1 (en) Systems and Methods for a Disk Controller Memory Architecture
JP2580998B2 (en) Storage controller
JPH10177764A (en) Optical disk recording device
JPH0430057B2 (en)
JPH1011223A (en) Magnetic disk controller

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060417

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee